By Galina Vitkova
Computer science or computing science (sometimes abbreviated CS) is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems. It concerns the systematic study of algorithmic processes that describe and transform information. Computer science has many sub-fields. For example, computer graphics, computational complexity theory (studies the properties of computational problems), programming language theory (studies approaches to describing computations), computer programming (applies specific programming languages to solve specific problems), and human-computer interaction (focuses on making computers universally accessible to people) belong to such very important sub-fields of computer science.
Game theory has come to play an increasingly important role in computer science. Computer scientists have used games to model interactive computations and for developing communication skills. Moreover, they apply game theory as a theoretical basis to the field of multi-agent systems (MAS), which are systems composed of multiple interacting intelligent agents (or players). Separately, game theory has played a role in online algorithms, particularly in the k-server problem.
Interactive computation is a kind of computation that involves communication with the external world during the computation. This is in contrast to the traditional understanding of computation which assumes a simple interface between a computing agent and its environment. Unfortunately, a definition of adequate mathematical models of interactive computation remains a challenge for computer scientists.
(For example, selection sort requires that the entire list be given before it can sort it, while insertion sort doesn’t.) As the whole input is not known, an online algorithm is forced to make decisions that may later turn out not to be optimal. Thus the study of online algorithms has focused on the quality of decision-making that is possible in this setting.
The Canadian Traveller Problem exemplifies the concepts of online algorithms. The goal of this problem is to minimize the cost of reaching a target in a weighted graph where some of the edges are unreliable and may have been removed from the graph. However, the fact that an edge was removed (failed) is only revealed to the traveller when she/he reaches one of the edge’s endpoints. The worst case in study of this problem is simply a situation when all of the unreliable edges fail and the problem reduces to the usual Shortest Path Problem. This
problem concerns detecting a path between two vertices (or nodes) of the graph such that the sum of the weights of its edges is minimized. An example is finding the quickest way to get from one location to another on a road map. In this case, the nodes represent locations, the edges represent segments of road and are weighted by the time needed to travel that segment.
The k-server problem is a problem of theoretical computer science in the category of online algorithms. In this problem, an online algorithm must control the movement of a set of k servers, represented as points in a metric space, and handle requests that are also given in the form of points in the space. As soon as a request arrives, the algorithm must determine which server to be moved to the requested point. The goal of the algorithm is to keep the total distance all servers move small, relative to the total distance the servers could have moved by an optimal adversary who knows in advance the entire sequence of requests.
The problem was first posed in 1990. The most prominent open question concerning the k-server problem is the so-called k-server conjecture. This conjecture states that there is an algorithm for solving the k-server problem in an arbitrary metric space and for any number k of servers. The special case of metrics in which all distances are equal is called the paging problem because it models the problem of page replacement algorithms in memory caches. In a computer operating system that uses paging for virtual memory management, page replacement algorithms decide which memory pages to page out (swap out, write to disk) when a page of memory needs to be allocated. Paging happens when a page fault occurs and a free page cannot be used to satisfy the allocation, either because there are none, or because the number of free pages is lower than a set threshold.
Subscribe with BlogLines
Pages of the blog