Generalized Widening
|
|
|
- Augustine Eaton
- 9 years ago
- Views:
Transcription
1 Generalized Widening Tristan Cazenave Abstract. We present a new threat based search algorithm that outperforms other threat based search algorithms and selective knowledge-based for open life and death problem solving in the game of Go. It generalizes the Iterative Widening algorithm which consists in iteratively increasing the threat searched at the root. The main idea of Generalized Widening is to perform Iterative Widening at all max nodes of the search tree instead of performing it only at the root. Experimental results show it can be three times faster than selective knowledge-based using the same knowledge, and eight times faster than simple Iterative Widening. The performance against can possibly be greatly enhanced by adding more knowledge in the selection of moves during the verification of the threats. 1 INTRODUCTION Generalized Widening (gw) is an improvement on current search algorithms to solve games. It improves on threat based search algorithms such as Generalized Threats Search (gts) [6], and it is a generalization of the Iterative Widening (iw) optimization [4]. The basic idea is to apply Iterative Widening at all max nodes of the search tree instead of applying it only at the root of the search tree. Another goal of the paper is to show the applicability of threat based search algorithms to open life and death problems in the game of Go. The game of Go is a challenging game for AI, it is the only classical board game where humans are still clearly superior to machines despite lot of efforts [2, 10]. Open life and death problem solving is an important part of a Go program. Section 2 presents the problem of life and death in the game of Go. Section 3 presents algorithms that are related to Generalized Widening. Section 4 explains the Generalized Widening algorithm. Section 5 details its application to open life and death problems in the game of Go. Section 6 details experimental results. Section 7 gives hints for future work. 2 LIFE AND DEATH IN THE GAME OF GO Assessing the life of groups is an important subgame of the game of Go. For strong human players, improving their level in life and death problem solving is considered as a good way to improve their overall reading abilities and their level at Go. For completely enclosed life and death problems, GoTools [14] is the best program. It can compete with high dan level players. Unfortunately, it is not able to solve open problems as those commonly arising in real games. It is restricted to completely enclosed problems with thirteen or fewer intersections. In open problems from real games, the boundaries are not well defined and the number of possible moves can easily be twenty. Some of the best Go programs use Laboratoire d Intelligence Artificielle, Université Paris 8, Saint Denis, France [email protected] static heuristics to evaluate the life and death property in real games [7, 8] while others rely on selective pattern based search [3]. 3 RELATED ALGORITHMS In this section we start with presenting Generalized Threats Search which is an algorithm that selectively chooses the nodes to expand based on the verification of threats, then we present the Iterative Widening optimization for selective search algorithms, and the last subsection deals with Df-pn which relates to Generalized Widening in the sense that it also performs multiple iterative deepening and selects nodes to expand. 3.1 Generalized Threats Search Generalized Threats Search tries to verify a threat at min nodes. It stops search when the threat is not verified. A threat at a min node always starts with a max move. Moves in a generalized threats are associated to an order. The order of a position is the number of moves in a row by the same player that are required to win the game. Moves of order are moves associated to positions of order less or equal to. An example of a threat is the (6, 3, 2, 0) threat. Six is the number of order one moves allowed in the verification of the threat, three the number of order two moves and two the number of order three moves. Only threats that have less moves than specified in the vector for each order are verified at min nodes. If no threat is verified at a min node, the node is cut and returns the value which is the lowest non terminal value. Generalized Threats Search is able to solve some games much faster than. Examples of games it can solve faster are 11x11 Philosopher s Football, 6x6 Ponnuki Go, and the capture game of Go. 3.2 Iterative Widening Iterative Widening is an optimization of selective search algorithms which has been used with success in the capture game of Go [4]. It has also recently worked for endgame play in Scrabble [13]. The idea is to iteratively increase the sets of moves that will be considered by the search. For threat based algorithms, it can consist in increasing the threats. The algorithm starts with trying a full iterative deepening search with the smallest threat, and if it does not work, it continues to perform full iterative deepening searches with the following threats until the last available threat. 3.3 Df-pn The PN* algorithm [12] is a depth first version of the Proof-Number search algorithm [1]. Proof number search uses proof numbers and disproof numbers at each node. A proof number is the minimal number of leaves under a node that need to be expanded in order to prove
2 a win for the node. A disproof number is the minimum number of leaves that need to be expanded to prove a loss. PN* uses iterative deepening search at all max nodes, it stops when the threshold for the proof number is reached or when the node is proved or disproved. Df-pn [11, 9] goes further than PN* by performing iterative deepening at all nodes, and having thresholds both for proof numbers and for disproof numbers. 4 GENERALIZED WIDENING The idea of Generalized Widening is to perform Iterative Widening at all max nodes of the search tree. In this section we start by stating what is multiple iterative widening, then we state what is multiple iterative deepening, the third subsection details the use of transposition tables in Generalized Widening, and the fourth subsection gives and explains some pseudo-code for the max nodes search. 4.1 Multiple Iterative Widening At max nodes, the algorithm starts with the smallest threat and increases the threat until the threat associated to the node is searched or the time is elapsed or the node is won or the node is lost. Threats are ordered and represented by an indice. For example the threat number 0 is usually (1,0), meaning that only min nodes where a single max move threatens a direct win will be developed. The threat number 1 is usually (2,1,0) which is the simplest threat of order Multiple Iterative Deepening Multiple iterative deepening consists in performing an iterative deepening search at all max nodes of the search tree. For threats that are less than the threat associated to the node, Generalized Widening performs a complete iterative deepening search until the result of the search is terminal or the time is elapsed. For the threat associated to the node, it performs an iterative deepening search that stops at the depth associated to the node. 4.3 Use of transposition tables Beside the usual information, a transposition table entry for Generalized Widening contains the number of the threat used to search the position. Each entry in the transposition table contains information on the score of the position, the depth it was searched, a flag for determining if the score is exact, is a lower bound or is a higher bound, the threat used, the best move and the forced moves. We give below the code used to detect transpositions. The function returns 1 when a transposition is successful, and 0 when the position has to be searched again. The alpha, beta and res variables are passed by reference. transpo (d, alpha, beta, res, t) { if (score == Won) { res = Won else if (score == Lost) { res = Lost if (depthtranspo >= d) { if (flag == ExactScore) { res = score if (t <= threattranspo) else { if ((flag == MinScore) && (t <= threattranspo)) alpha = max (alpha, score) else if ((flag == MaxScore) && (t <= threattranspo)) beta = min (beta, score) if (alpha >= beta) { res = score return Algorithm for max nodes The Generalized Widening algorithm performs at each max node complete iterative deepening searches for all threats lower than the threat associated to the node. The multiple iterative deepening for these threats continues until the overall maximum possible depth is reached or the position has the maximum possible evaluation ( or if a ko has been taken back before) or the search returns (meaning that the threat has to be increased to possibly find a win) or or. Concerning the threat associated to the node, the multiple iterative deepening stops at the depth of the node. The threats less than the maximum threat for the node are searched possibly deeper than the maximum threat for the node. This means that the lower threats work as quiescence searches of the main threat search. The pseudo-code for the algorithm is: MaxNode (alpha, beta, threat, depth) { eval = evaluation (); if (isterminal (eval) (depth == 0)!moreTime ()) return eval if (transpo (depth, alpha, beta, res, threat)) return res Generate max moves // Multiple Iterative Widening for (t = 0; ((t <= threat) && (res < MaxEval ()) && (res > MinEval ()) && moretime ()); t++) { res = eval // Multiple Iterative Deepening currentdepth = MaxDepth
3 if (t == threat) currentdepth = depth for (d = 1; ((d <= currentdepth) && (res > NoThreat) && (res < MaxEval ()) && moretime ()); d++) { res = MinEval () alphatemp = alpha betatemp = beta for all max moves if (alphatemp < betatemp) { play move r = MinNode (alphatemp, betatemp, t, d-1) if (r > res) { res = r if (res > alphatemp) alphatemp = res undo move return res 5 APPLICATION TO LIFE AND DEATH In this section we present the features of the program specific to Life and Death. We start with explaining how groups are built. The second subsection describes how some properties of the group are evaluated. The third subsection deals with the selection of moves. The fourth subsection details the evaluation function. 5.1 Construction of the Group A fundamental task of an open life and death solver is to list all the strings that will be considered as related concerning their life and death. The set of related strings is called a group, this terminology comes from Go. In order to build the group, the program start from a string and iteratively adds all the strings that share a liberty with a string already in the group, it also adds strings that are adjacent to opponent strings that can be captured in a ladder, if the opponent string is itself adjacent to a string of the group. The set of strings of the group is updated incrementally during the search. 5.2 Properties of the Group Once a group is built, we can compute properties of the group such as its skin and the list of possible eye points. These properties are useful to evaluate the life of the group. The skin of a group is a set of strings and empty points that surround the group. The skin includes the opponent strings that have one or two liberties and that are adjacent to the group, the strings adjacent to these adjacent strings that have less liberties than the adjacent strings. It also includes the liberties of all the strings of the groups, as well as the empty intersections adjacent to these liberties. Moreover, it includes the adjacent opponent strings that have four liberties or less and that are completely enclosed by the group. False eye points are intersections that cannot possibly be transformed in eyes. An intersection of the skin is a false eye if it has a neighbor of the color of the opponent which is not part of the skin, or if it has two empty neighbors that are neighbors of opponent strings that are not part of the skin, or if it is empty and has at least one enemy neighbor, or if it is on the first line and it has at least one diagonal owned by the opponent, or if it is on the first line and it has two empty diagonals that the opponent can own in one move, or if the number of empty diagonals that the opponent can own in one move divided by two plus the number of diagonals owned by the opponent is strictly greater than one. The set of possible eye points of a group is its skin minus the false eye points. 5.3 Selection of moves The program uses two specialized functions to select moves at max and min nodes. The max nodes moves are the moves that try to make the group alive. The possible moves for the max player are the liberties of opponent strings adjacent to the group that can be captured in a ladder, and the liberties of the friend strings adjacent to the opponent string and which have less liberties than the opponent string, moves that threaten to capture an adjacent opponent string in a ladder, moves on the liberties of the strings of the group and on the empty intersections neighboring these liberties. The possible moves for the min player are roughly the same as the move for the max player, except for moves that escape a ladder of an opponent string instead of moves that capture the ladder. Move of order one are only moves that make an eye, a special function is called to select this kind of moves. Moves of order one are used in the evaluation function to detect if the group can live in one move. In our implementation, the move selection functions are the same for the and for the threat based algorithms. More selective move selection functions of order two and three can be written for threat based move selection and can improve by much the behavior of threat based search algorithms. 5.4 Evaluation function The group is considered alive if two different eyes are recognized on two different liberties of the same string and if the two eyes do not share a non protected intersection (this last condition tests the non-dependence of the two eyes). The group is not dead if there are at least two possible eye points that are not neighbors, otherwise it is considered dead and the evaluation function returns or if a ko has been taken back earlier. The evaluation function returns values that are ordered as follow:. The value means that the current threat has not been verified at a min node, it is different from the value which means that the threat to live has been verified, and that one of the min moves has lead to a dead group. At max nodes, the evaluation function tests if there is an order one living move, if so it returns or depending on the ko status of the node.
4 6 EXPERIMENTAL RESULTS Table 1. Different algorithms with different time constraints. The test suite consists of fifty life problems. In some problems the goal is to find a move that makes the group live, while in the others the goal is to prove the group is alive whatever the opponent plays. The problems are taken from games between computers, or from games between human and computers. They are representative of the kind of open problems that a life and death solver has to deal with in real games. The threat number 0 is the (1,0) threat, number 1 is (2,1,0), number 2 is (6,5,0) and number 3 is (6,3,2,0). The algorithm is a generalized widening algorithm that reverts to usual when all the threats in [0,t-1] have failed. Instead of stopping the increase of threats when the higher threats returns NoThreat as in the gw algorithm, the considers all the min moves for threat number t without verifying any threats (as in the usual ). This can also be understood as an with a Generalized Widening algorithm for quiescence search. The algorithm is an with multiple iterative deepening at each max node. The uses the same knowledge as the other algorithms for move generation and evaluation. The window search for all the algorithms has been set to [ - 1, ] as they all try to prove the life of the groups. The machine used is a 1.7 GHz Pentium with 100 Mb of memory. The transposition table contains entries. All the algorithms use the transposition move, two killer moves and the history heuristic, in this order, at all nodes, so as to have a good move ordering. uses iterative deepening. Table 1 gives the number of problems solved and the total time used for the fifty problems under different time constraints. For each algorithms, three different time constraints have been tested. The thresholds used are 0.1 second, 1 second and 10 seconds. All algorithm stop search as soon as the time threshold is reached, or before the threshold when the result is not modifiable. The 0.1 second threshold per problem fits well for Go programs based on a global selective search where many positions including some life and death problems have to be evaluated for deciding a move[7]. The 1 second threshold is better associated to program based on the evaluate and play architecture, which allocates more time for the accurate evaluation of the position [3]. The 10 seconds threshold is given to show the behaviour of the algorithms with more time. gts(0) does not figure in the table 1 because it is equivalent to iw(0). The result of 250 seconds for with 25 problems solved, may seem strange, but it is due to one problem quickly solved by the but incorrectly labeled as won, whereas it is won by ko. The 24 other unsolved problems account for 240 seconds, the other 10 seconds is the time used for the 25 solved problems and the incorrectly assessed one. For all algorithms, only one problem is incorrectly labeled by all the algorithms, the other unsolved problems are all due to a lack of problem solving time and not to an incorrect answer. The incorrectly labeled problem is due to the evaluation function that does not recognize ko, not to the search algorithm which can handle kos. The results of the table 1 show that for all threats, the Iterative Widening algorithm is better than the Generalized Threats Search (it solves more problems in less time). The Generalized Widening algorithm is clearly better than the Iterative Widening algorithm (except for small occasional overheads, gw usually solves more problems in less time than iw for all threats). Especially, solves more! "#$ %& # '"(#$ %& )# '"#$ % )# *,+ *,+.-0/213 *,+.-0/4.3 *,+.-0/5.3 *,+.-0/ 3 *,+.-0/ 3.-6/&4.3.-6/&5.3.-6/ 3.-6/ 3-0/4.3-0/5.3-0/ 3-0/ 3. /&4.3. /&5.3. / problems in less time than and 7. The 8 generalized widening algorithm appears to be the algorithm of choice, it solves more problems than in less time for all time constraints. The %9 algorithm has been tested because it is the extension of the algorithm. The same threats as in the algorithm are used in the same order, but when no threats work, it reverts to instead of stopping the search. It is interesting to note that 8 %9: performs slightly worse than for the ten seconds threshold. It might be the case that the overhead of verifying the threat number 3 (i.e. the (6,3,2,0) threat) is too large for the unsolved problem compared to simply searching all the moves selected by the. The choice of using high order threats versus the choice of using all the moves selected by the is driven by two factors. The first factor is the selectivity obtained in the move generation for the. In the case of open life and death problem, we have designed a quite selective move generator, therefore the difference between the set of moves generated by the high order threats and the one generated by the selective move generator is not so large. The second factor is the time needed to verify the high order threats, which is the overhead of using threat based move selection. We have not used abstract knowledge related to the threats for the move generation in the threat verification, therefore the threat based move selection is relatively slow. The combination of these two factors might explain why using higher order threats does not always improve the 8 algorithm, and particularly in the case of the (6,3,2,0) threat. In the experiments of table 1, the total time is dominated by the unsolved problems. This is realistic for approximating the behaviour of the algorithms in a Go program. It is less relevant to compare the merits of the different algorithms. So we did another experiment which consisted in restricting the problems to the 27 solvable problems, and then comparing the time and number of moves used by the different algorithms to solve these problems. For each algorithm, we ran it with a time limit of 100 seconds. The number of moves for threat based algorithms includes the moves played in the main search, the moves used to verify the threats, the moves played to generate possible moves, and the moves played in the evaluation function. Concerning the number of moves includes the same numbers as for threat based algorithms except that it does not verify threats. Table 2 shows that Generalized Widening is superior to Iterative Widening, which is in turn superior to simple Generalized Threats
5 Figure 1. Some problems of the test suite Table 2. Timing the different algorithms. & : '"(#$ %& )#0 "# *,+.-0/4.3.-0/ *,+ &-0/ / The current approach tests all possible max moves at max nodes, and cuts min nodes if the threat is not verified. It is interesting to test for threats to kill at max nodes, and to test Generalized Widening also at min nodes on the threats to kill. The program currently heuristically selects min moves in the. This heuristic function for selecting min moves is also used to select min moves in the threats. The selectivity of min moves can be safely improved by only selecting the min moves associated to the trace of the verified threat. Another possible improvement concerns the evaluation function. Life can be detected earlier by recognizing larger eyes and using patterns. The selectivity of max nodes moves can also be improved. For example, in the threat based search, except for order one moves, the max nodes moves are the same as the max nodes moves of the. It is possible to be more selective for order two moves, only considering eye making moves and moves threatening to make an eye near a string that already has an eye. More generally, it is possible to be more selective in the threat based move generation by increasing the knowledge about the abstract properties of the game. Abstract game knowledge about moves generated in the threats and in the main search has been shown to be an important factor for the speed of threat based search algorithms [5]. It can give a large speed-up for,, 7 and to give this knowledge to the program. The combination of Generalized Widening with the idea of Df-pn search could also lead to substantial improvements. Testing Generalized Widening in other games also looks promising. Search. It also shows the superiority of Generalized Widening on with the same knowledge: solves the problems three times faster than. This result is obtained without giving any special abstract knowledge to the threat based algorithm, which is remarkable as giving it such knowledge in other games gave speed-ups of an order of magnitude [5]: the potential of the threat-based algorithms is underestimated in these experiments. The gw(3) algorithm is also much faster than with the same knowledge, but it fails to solve one problem because in this problem, the opponent can find moves that lead to min nodes where the (6,3,2,0) threat is not verified, and the result for this problem is therefore NoThreat. The gts(3) algorithm only solves 23 problems because 3 problems reach the 100 seconds time limit without finding the solution. Given more time it would solve 26 problems as the iw(3) and the gw(3) algorithm. 7 FUTURE WORK 8 CONCLUSION We have shown that Generalized Widening can be associated to the algorithm to improve problem solving for open life and death problems in the game of Go. The resulting algorithm is faster and solves more problems in less time than alone and that other related threat-based algorithms. REFERENCES [1] L.V. Allis, M. van der Meulen, and H. J. Herik, Proof-number search, Artificial Intelligence, 66(1), , (1994). [2] B. Bouzy and T. Cazenave, Computer Go: An AI-Oriented Survey, Artificial Intelligence, 132(1), , (October 2001). [3] D. Bump, G. Farneback, et al., gnugo, web page, Free Software Fondation, ( ). [4] T. Cazenave, Iterative Widening, in Proceedings of IJCAI-01, Vol. 1, pp , Seattle, (2001). [5] T. Cazenave, Admissible moves in two-player games, in SARA 2002, volume 2371 of Lecture Notes in Computer Science, pp , Kananaskis, Alberta, Canada, (2002). Springer. [6] T. Cazenave, A Generalized Threats Search Algorithm, in Computers and Games 2002, volume 2883 of Lecture Notes in Computer Science, pp , Edmonton, Canada, (2002). Springer. [7] K. Chen and Z. Chen, Static analysis of life and death in the game of Go, Information Sciences, 121, , (1999). [8] D. Fotland, Static eye analysis in The many faces of Go, ICGA Journal, 25(4), , (2002). [9] A. Kishimoto and M. Müller, Df-pn in Go: an application to the oneeye problem, in Advances in computer games 10, pp , (2003). [10] M. Müller, Computer go, Artificial Intelligence, 134(1-2), , (2002). [11] A. Nagai, Df-pn algorithm for searching AND/OR trees and its applications, Phd thesis, Department of Information Science, University of Tokyo, (2002). [12] M. Seo, The C* algorithm for AND/OR tree search and its application to a tsume-shogi program, Master s thesis, Departement of Information Science, University of Tokyo, (1995). [13] B. Sheppard, Endgame play in scrabble, ICGA Journal, 26, , (September 2003). [14] T. Wolf, Forward pruning and other heuristic search techniques in tsume go, Information Sciences, 122, 59 76, (2000).
Counting the Score: Position Evaluation in Computer Go
Counting the Score: Position Evaluation in Computer Go Martin Müller Department of Computing Science, University of Alberta Edmonton, Canada T6G 2E8 [email protected] Abstract Position evaluation
Improving Depth-first PN-Search: 1 + ε Trick
Improving Depth-first PN-Search: 1 + ε Trick Jakub Pawlewicz, Łukasz Lew {pan,lew}@mimuw.edu.pl Institute of Informatics, Warsaw University Banacha 2, 02-097 Warsaw, Poland Abstract. Various efficient
FIRST EXPERIMENTAL RESULTS OF PROBCUT APPLIED TO CHESS
FIRST EXPERIMENTAL RESULTS OF PROBCUT APPLIED TO CHESS A.X. Jiang Department of Computer Science, University of British Columbia, Vancouver, Canada [email protected] M. Buro Department of Computing
Monte-Carlo Tree Search (MCTS) for Computer Go
Monte-Carlo Tree Search (MCTS) for Computer Go Bruno Bouzy [email protected] Université Paris Descartes Séminaire BigMC 5 mai 2011 Outline The game of Go: a 9x9 game The «old» approach (*-2002)
A search based Sudoku solver
A search based Sudoku solver Tristan Cazenave Labo IA Dept. Informatique Université Paris 8, 93526, Saint-Denis, France, [email protected] Abstract. Sudoku is a popular puzzle. In this paper we
Acknowledgements I would like to thank both Dr. Carsten Furhmann, and Dr. Daniel Richardson for providing me with wonderful supervision throughout my
Abstract Game orientated application programming interfaces (API), built using Java, are intended to ease the development of Java games, on multiple platforms. Existing Java game APIs, tend to focus on
Introduction Solvability Rules Computer Solution Implementation. Connect Four. March 9, 2010. Connect Four
March 9, 2010 is a tic-tac-toe like game in which two players drop discs into a 7x6 board. The first player to get four in a row (either vertically, horizontally, or diagonally) wins. The game was first
A Constraint Programming Application for Rotating Workforce Scheduling
A Constraint Programming Application for Rotating Workforce Scheduling Markus Triska and Nysret Musliu Database and Artificial Intelligence Group Vienna University of Technology {triska,musliu}@dbai.tuwien.ac.at
Monte-Carlo Tree Search Solver
Monte-Carlo Tree Search Solver Mark H.M. Winands 1, Yngvi Björnsson 2, and Jahn-Takeshi Saito 1 1 Games and AI Group, MICC, Universiteit Maastricht, Maastricht, The Netherlands {m.winands,j.saito}@micc.unimaas.nl
Chess Algorithms Theory and Practice. Rune Djurhuus Chess Grandmaster [email protected] / [email protected] October 3, 2012
Chess Algorithms Theory and Practice Rune Djurhuus Chess Grandmaster [email protected] / [email protected] October 3, 2012 1 Content Complexity of a chess game History of computer chess Search trees
Chess Algorithms Theory and Practice. Rune Djurhuus Chess Grandmaster [email protected] / [email protected] September 23, 2014
Chess Algorithms Theory and Practice Rune Djurhuus Chess Grandmaster [email protected] / [email protected] September 23, 2014 1 Content Complexity of a chess game Solving chess, is it a myth? History
Load Balancing. Load Balancing 1 / 24
Load Balancing Backtracking, branch & bound and alpha-beta pruning: how to assign work to idle processes without much communication? Additionally for alpha-beta pruning: implementing the young-brothers-wait
Game playing. Chapter 6. Chapter 6 1
Game playing Chapter 6 Chapter 6 1 Outline Games Perfect play minimax decisions α β pruning Resource limits and approximate evaluation Games of chance Games of imperfect information Chapter 6 2 Games vs.
AI Techniques Used in Computer Go
AI Techniques Used in Computer Go Jay Burmeister and Janet Wiles Schools of Information Technology and Psychology The University of Queensland, Australia [email protected] http://www.psy.uq.edu.au/~jay/
Measuring the Performance of an Agent
25 Measuring the Performance of an Agent The rational agent that we are aiming at should be successful in the task it is performing To assess the success we need to have a performance measure What is rational
CS91.543 MidTerm Exam 4/1/2004 Name: KEY. Page Max Score 1 18 2 11 3 30 4 15 5 45 6 20 Total 139
CS91.543 MidTerm Exam 4/1/2004 Name: KEY Page Max Score 1 18 2 11 3 30 4 15 5 45 6 20 Total 139 % INTRODUCTION, AI HISTORY AND AGENTS 1. [4 pts. ea.] Briefly describe the following important AI programs.
Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:
CSE341T 08/31/2015 Lecture 3 Cost Model: Work, Span and Parallelism In this lecture, we will look at how one analyze a parallel program written using Cilk Plus. When we analyze the cost of an algorithm
Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows
TECHNISCHE UNIVERSITEIT EINDHOVEN Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows Lloyd A. Fasting May 2014 Supervisors: dr. M. Firat dr.ir. M.A.A. Boon J. van Twist MSc. Contents
Improved Single and Multiple Approximate String Matching
Improved Single and Multiple Approximate String Matching Kimmo Fredriksson Department of Computer Science, University of Joensuu, Finland Gonzalo Navarro Department of Computer Science, University of Chile
A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation
PLDI 03 A Static Analyzer for Large Safety-Critical Software B. Blanchet, P. Cousot, R. Cousot, J. Feret L. Mauborgne, A. Miné, D. Monniaux,. Rival CNRS École normale supérieure École polytechnique Paris
Beating Roulette? An analysis with probability and statistics.
The Mathematician s Wastebasket Volume 1, Issue 4 Stephen Devereaux April 28, 2013 Beating Roulette? An analysis with probability and statistics. Every time I watch the film 21, I feel like I ve made the
M. Sugumaran / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (3), 2011, 1001-1006
A Design of Centralized Meeting Scheduler with Distance Metrics M. Sugumaran Department of Computer Science and Engineering,Pondicherry Engineering College, Puducherry, India. Abstract Meeting scheduling
Classification - Examples
Lecture 2 Scheduling 1 Classification - Examples 1 r j C max given: n jobs with processing times p 1,...,p n and release dates r 1,...,r n jobs have to be scheduled without preemption on one machine taking
NP-Completeness I. Lecture 19. 19.1 Overview. 19.2 Introduction: Reduction and Expressiveness
Lecture 19 NP-Completeness I 19.1 Overview In the past few lectures we have looked at increasingly more expressive problems that we were able to solve using efficient algorithms. In this lecture we introduce
Alok Gupta. Dmitry Zhdanov
RESEARCH ARTICLE GROWTH AND SUSTAINABILITY OF MANAGED SECURITY SERVICES NETWORKS: AN ECONOMIC PERSPECTIVE Alok Gupta Department of Information and Decision Sciences, Carlson School of Management, University
On the Laziness of Monte-Carlo Game Tree Search in Non-tight Situations
Technical Report On the Laziness of Monte-Carlo Game Tree Search in Non-tight Situations September 8, 2008 Ingo Althofer Institute of Applied Mathematics Faculty of Mathematics and Computer Science Friedrich-Schiller
Analysis of Micromouse Maze Solving Algorithms
1 Analysis of Micromouse Maze Solving Algorithms David M. Willardson ECE 557: Learning from Data, Spring 2001 Abstract This project involves a simulation of a mouse that is to find its way through a maze.
Contributions to Gang Scheduling
CHAPTER 7 Contributions to Gang Scheduling In this Chapter, we present two techniques to improve Gang Scheduling policies by adopting the ideas of this Thesis. The first one, Performance- Driven Gang Scheduling,
Distributed Dynamic Load Balancing for Iterative-Stencil Applications
Distributed Dynamic Load Balancing for Iterative-Stencil Applications G. Dethier 1, P. Marchot 2 and P.A. de Marneffe 1 1 EECS Department, University of Liege, Belgium 2 Chemical Engineering Department,
Chapter 13: Binary and Mixed-Integer Programming
Chapter 3: Binary and Mixed-Integer Programming The general branch and bound approach described in the previous chapter can be customized for special situations. This chapter addresses two special situations:
SARTRE: System Overview
SARTRE: System Overview A Case-Based Agent for Two-Player Texas Hold em Jonathan Rubin and Ian Watson Department of Computer Science University of Auckland, New Zealand [email protected], [email protected]
A Mathematical Programming Solution to the Mars Express Memory Dumping Problem
A Mathematical Programming Solution to the Mars Express Memory Dumping Problem Giovanni Righini and Emanuele Tresoldi Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano Via Bramante
Analysis of Algorithms I: Optimal Binary Search Trees
Analysis of Algorithms I: Optimal Binary Search Trees Xi Chen Columbia University Given a set of n keys K = {k 1,..., k n } in sorted order: k 1 < k 2 < < k n we wish to build an optimal binary search
Single machine models: Maximum Lateness -12- Approximation ratio for EDD for problem 1 r j,d j < 0 L max. structure of a schedule Q...
Lecture 4 Scheduling 1 Single machine models: Maximum Lateness -12- Approximation ratio for EDD for problem 1 r j,d j < 0 L max structure of a schedule 0 Q 1100 11 00 11 000 111 0 0 1 1 00 11 00 11 00
arxiv:1112.0829v1 [math.pr] 5 Dec 2011
How Not to Win a Million Dollars: A Counterexample to a Conjecture of L. Breiman Thomas P. Hayes arxiv:1112.0829v1 [math.pr] 5 Dec 2011 Abstract Consider a gambling game in which we are allowed to repeatedly
1 Introduction. Linear Programming. Questions. A general optimization problem is of the form: choose x to. max f(x) subject to x S. where.
Introduction Linear Programming Neil Laws TT 00 A general optimization problem is of the form: choose x to maximise f(x) subject to x S where x = (x,..., x n ) T, f : R n R is the objective function, S
Revenue Management for Transportation Problems
Revenue Management for Transportation Problems Francesca Guerriero Giovanna Miglionico Filomena Olivito Department of Electronic Informatics and Systems, University of Calabria Via P. Bucci, 87036 Rende
Binary Search Trees. A Generic Tree. Binary Trees. Nodes in a binary search tree ( B-S-T) are of the form. P parent. Key. Satellite data L R
Binary Search Trees A Generic Tree Nodes in a binary search tree ( B-S-T) are of the form P parent Key A Satellite data L R B C D E F G H I J The B-S-T has a root node which is the only node whose parent
A Content based Spam Filtering Using Optical Back Propagation Technique
A Content based Spam Filtering Using Optical Back Propagation Technique Sarab M. Hameed 1, Noor Alhuda J. Mohammed 2 Department of Computer Science, College of Science, University of Baghdad - Iraq ABSTRACT
Smart Graphics: Methoden 3 Suche, Constraints
Smart Graphics: Methoden 3 Suche, Constraints Vorlesung Smart Graphics LMU München Medieninformatik Butz/Boring Smart Graphics SS2007 Methoden: Suche 2 Folie 1 Themen heute Suchverfahren Hillclimbing Simulated
Previous Lectures. B-Trees. External storage. Two types of memory. B-trees. Main principles
B-Trees Algorithms and data structures for external memory as opposed to the main memory B-Trees Previous Lectures Height balanced binary search trees: AVL trees, red-black trees. Multiway search trees:
Theorem (informal statement): There are no extendible methods in David Chalmers s sense unless P = NP.
Theorem (informal statement): There are no extendible methods in David Chalmers s sense unless P = NP. Explication: In his paper, The Singularity: A philosophical analysis, David Chalmers defines an extendible
Optimizing Generation of Object Graphs in Java PathFinder
Optimizing Generation of Object Graphs in Java PathFinder Milos Gligoric, Tihomir Gvero, Steven Lauterburg, Darko Marinov, Sarfraz Khurshid JPF Workshop 1.5.8 Bugs Six Decades Ago 1947: Harvard Mark II
SIGMOD RWE Review Towards Proximity Pattern Mining in Large Graphs
SIGMOD RWE Review Towards Proximity Pattern Mining in Large Graphs Fabian Hueske, TU Berlin June 26, 21 1 Review This document is a review report on the paper Towards Proximity Pattern Mining in Large
FUZZY CLUSTERING ANALYSIS OF DATA MINING: APPLICATION TO AN ACCIDENT MINING SYSTEM
International Journal of Innovative Computing, Information and Control ICIC International c 0 ISSN 34-48 Volume 8, Number 8, August 0 pp. 4 FUZZY CLUSTERING ANALYSIS OF DATA MINING: APPLICATION TO AN ACCIDENT
Laboratory work in AI: First steps in Poker Playing Agents and Opponent Modeling
Laboratory work in AI: First steps in Poker Playing Agents and Opponent Modeling Avram Golbert 01574669 [email protected] Abstract: While Artificial Intelligence research has shown great success in deterministic
Understanding Proactive vs. Reactive Methods for Fighting Spam. June 2003
Understanding Proactive vs. Reactive Methods for Fighting Spam June 2003 Introduction Intent-Based Filtering represents a true technological breakthrough in the proper identification of unwanted junk email,
Classifying Large Data Sets Using SVMs with Hierarchical Clusters. Presented by :Limou Wang
Classifying Large Data Sets Using SVMs with Hierarchical Clusters Presented by :Limou Wang Overview SVM Overview Motivation Hierarchical micro-clustering algorithm Clustering-Based SVM (CB-SVM) Experimental
Go-Moku and Threat-Space Search
Go-Moku and Threat-Space Search L.V. Allis H.J. van den Herik M.P.H. Huntjens University of Limburg Vrije Universiteit P.O. Box 616 De Boelelaan 1081 6200 MD Maastricht, The Netherlands 1081 HV Amsterdam,
Merkle Hash Trees for Distributed Audit Logs
Merkle Hash Trees for Distributed Audit Logs Subject proposed by Karthikeyan Bhargavan [email protected] April 7, 2015 Modern distributed systems spread their databases across a large number
Feature Selection with Monte-Carlo Tree Search
Feature Selection with Monte-Carlo Tree Search Robert Pinsler 20.01.2015 20.01.2015 Fachbereich Informatik DKE: Seminar zu maschinellem Lernen Robert Pinsler 1 Agenda 1 Feature Selection 2 Feature Selection
Best-First and Depth-First Minimax Search in Practice
Best-First and Depth-First Minimax Search in Practice Aske Plaat, Erasmus University, [email protected] Jonathan Schaeffer, University of Alberta, [email protected] Wim Pijls, Erasmus University,
Lecture 4 Online and streaming algorithms for clustering
CSE 291: Geometric algorithms Spring 2013 Lecture 4 Online and streaming algorithms for clustering 4.1 On-line k-clustering To the extent that clustering takes place in the brain, it happens in an on-line
How To Play Go Lesson 1: Introduction To Go
How To Play Go Lesson 1: Introduction To Go 1.1 About The Game Of Go Go is an ancient game originated from China, with a definite history of over 3000 years, although there are historians who say that
A COOL AND PRACTICAL ALTERNATIVE TO TRADITIONAL HASH TABLES
A COOL AND PRACTICAL ALTERNATIVE TO TRADITIONAL HASH TABLES ULFAR ERLINGSSON, MARK MANASSE, FRANK MCSHERRY MICROSOFT RESEARCH SILICON VALLEY MOUNTAIN VIEW, CALIFORNIA, USA ABSTRACT Recent advances in the
Informatica e Sistemi in Tempo Reale
Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)
Application of Adaptive Probing for Fault Diagnosis in Computer Networks 1
Application of Adaptive Probing for Fault Diagnosis in Computer Networks 1 Maitreya Natu Dept. of Computer and Information Sciences University of Delaware, Newark, DE, USA, 19716 Email: [email protected]
Predicting the Stock Market with News Articles
Predicting the Stock Market with News Articles Kari Lee and Ryan Timmons CS224N Final Project Introduction Stock market prediction is an area of extreme importance to an entire industry. Stock price is
6.207/14.15: Networks Lecture 15: Repeated Games and Cooperation
6.207/14.15: Networks Lecture 15: Repeated Games and Cooperation Daron Acemoglu and Asu Ozdaglar MIT November 2, 2009 1 Introduction Outline The problem of cooperation Finitely-repeated prisoner s dilemma
A Simultaneous Solution for General Linear Equations on a Ring or Hierarchical Cluster
Acta Technica Jaurinensis Vol. 3. No. 1. 010 A Simultaneous Solution for General Linear Equations on a Ring or Hierarchical Cluster G. Molnárka, N. Varjasi Széchenyi István University Győr, Hungary, H-906
Distributed Computing over Communication Networks: Maximal Independent Set
Distributed Computing over Communication Networks: Maximal Independent Set What is a MIS? MIS An independent set (IS) of an undirected graph is a subset U of nodes such that no two nodes in U are adjacent.
Network (Tree) Topology Inference Based on Prüfer Sequence
Network (Tree) Topology Inference Based on Prüfer Sequence C. Vanniarajan and Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology Madras Chennai 600036 [email protected],
THE BENEFITS OF SIGNAL GROUP ORIENTED CONTROL
THE BENEFITS OF SIGNAL GROUP ORIENTED CONTROL Authors: Robbin Blokpoel 1 and Siebe Turksma 2 1: Traffic Engineering Researcher at Peek Traffic, [email protected] 2: Product manager research
The Role of Size Normalization on the Recognition Rate of Handwritten Numerals
The Role of Size Normalization on the Recognition Rate of Handwritten Numerals Chun Lei He, Ping Zhang, Jianxiong Dong, Ching Y. Suen, Tien D. Bui Centre for Pattern Recognition and Machine Intelligence,
Analysis of Algorithms I: Binary Search Trees
Analysis of Algorithms I: Binary Search Trees Xi Chen Columbia University Hash table: A data structure that maintains a subset of keys from a universe set U = {0, 1,..., p 1} and supports all three dictionary
Decentralized Utility-based Sensor Network Design
Decentralized Utility-based Sensor Network Design Narayanan Sadagopan and Bhaskar Krishnamachari University of Southern California, Los Angeles, CA 90089-0781, USA [email protected], [email protected]
Notes from Week 1: Algorithms for sequential prediction
CS 683 Learning, Games, and Electronic Markets Spring 2007 Notes from Week 1: Algorithms for sequential prediction Instructor: Robert Kleinberg 22-26 Jan 2007 1 Introduction In this course we will be looking
VDM vs. Programming Language Extensions or their Integration
VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,
Loop Invariants and Binary Search
Loop Invariants and Binary Search Chapter 4.3.3 and 9.3.1-1 - Outline Ø Iterative Algorithms, Assertions and Proofs of Correctness Ø Binary Search: A Case Study - 2 - Outline Ø Iterative Algorithms, Assertions
Solving the Vehicle Routing Problem with Multiple Trips by Adaptive Memory Programming
Solving the Vehicle Routing Problem with Multiple Trips by Adaptive Memory Programming Alfredo Olivera and Omar Viera Universidad de la República Montevideo, Uruguay ICIL 05, Montevideo, Uruguay, February
On the Unique Games Conjecture
On the Unique Games Conjecture Antonios Angelakis National Technical University of Athens June 16, 2015 Antonios Angelakis (NTUA) Theory of Computation June 16, 2015 1 / 20 Overview 1 Introduction 2 Preliminary
GAMES WITH ONE DIE Games where you only use a single die can be plenty exciting indeed. Here are two good examples of this!
[TACTIC rules for dice games] Here are 21 different dice games, with one, two, three or even more dice. We wish you lots of enjoyment! GAMES WITH ONE DIE Games where you only use a single die can be plenty
Chapter 6: Episode discovery process
Chapter 6: Episode discovery process Algorithmic Methods of Data Mining, Fall 2005, Chapter 6: Episode discovery process 1 6. Episode discovery process The knowledge discovery process KDD process of analyzing
Practical Guide to the Simplex Method of Linear Programming
Practical Guide to the Simplex Method of Linear Programming Marcel Oliver Revised: April, 0 The basic steps of the simplex algorithm Step : Write the linear programming problem in standard form Linear
Predicting borrowers chance of defaulting on credit loans
Predicting borrowers chance of defaulting on credit loans Junjie Liang ([email protected]) Abstract Credit score prediction is of great interests to banks as the outcome of the prediction algorithm
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
Improving Knowledge-Based System Performance by Reordering Rule Sequences
Improving Knowledge-Based System Performance by Reordering Rule Sequences Neli P. Zlatareva Department of Computer Science Central Connecticut State University 1615 Stanley Street New Britain, CT 06050
Efficient Iceberg Query Evaluation for Structured Data using Bitmap Indices
Proc. of Int. Conf. on Advances in Computer Science, AETACS Efficient Iceberg Query Evaluation for Structured Data using Bitmap Indices Ms.Archana G.Narawade a, Mrs.Vaishali Kolhe b a PG student, D.Y.Patil
Scheduling Single Machine Scheduling. Tim Nieberg
Scheduling Single Machine Scheduling Tim Nieberg Single machine models Observation: for non-preemptive problems and regular objectives, a sequence in which the jobs are processed is sufficient to describe
Multi-core real-time scheduling
Multi-core real-time scheduling Credits: Anne-Marie Déplanche, Irccyn, Nantes (many slides come from her presentation at ETR, Brest, September 2011) 1 Multi-core real-time scheduling! Introduction: problem
Solution of Linear Systems
Chapter 3 Solution of Linear Systems In this chapter we study algorithms for possibly the most commonly occurring problem in scientific computing, the solution of linear systems of equations. We start
How I won the Chess Ratings: Elo vs the rest of the world Competition
How I won the Chess Ratings: Elo vs the rest of the world Competition Yannis Sismanis November 2010 Abstract This article discusses in detail the rating system that won the kaggle competition Chess Ratings:
Lecture Notes on Linear Search
Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is
A Dynamical Systems Approach for Static Evaluation in Go
Konrad-Zuse-Zentrum für Informationstechnik Berlin Takustraße 7 D-14195 Berlin-Dahlem Germany THOMAS WOLF 1 A Dynamical Systems Approach for Static Evaluation in Go 1 Department of Mathematics, Brock University,
Dynamic programming formulation
1.24 Lecture 14 Dynamic programming: Job scheduling Dynamic programming formulation To formulate a problem as a dynamic program: Sort by a criterion that will allow infeasible combinations to be eli minated
Bootstrapping Big Data
Bootstrapping Big Data Ariel Kleiner Ameet Talwalkar Purnamrita Sarkar Michael I. Jordan Computer Science Division University of California, Berkeley {akleiner, ameet, psarkar, jordan}@eecs.berkeley.edu
An Empirical Study of Two MIS Algorithms
An Empirical Study of Two MIS Algorithms Email: Tushar Bisht and Kishore Kothapalli International Institute of Information Technology, Hyderabad Hyderabad, Andhra Pradesh, India 32. [email protected],
Applied Algorithm Design Lecture 5
Applied Algorithm Design Lecture 5 Pietro Michiardi Eurecom Pietro Michiardi (Eurecom) Applied Algorithm Design Lecture 5 1 / 86 Approximation Algorithms Pietro Michiardi (Eurecom) Applied Algorithm Design
A Defensive Strategy Combined with. Threat-Space Search for Connect6
A Defensive Strategy Combined with Threat-Space Search for Connect6 k 2005 2006 ICGA Kagami ICGA Abstract The study of k-in-a-row games has produced a number of interesting results, and one of its sub-category
Artificial Intelligence Exam DT2001 / DT2006 Ordinarie tentamen
Artificial Intelligence Exam DT2001 / DT2006 Ordinarie tentamen Date: 2010-01-11 Time: 08:15-11:15 Teacher: Mathias Broxvall Phone: 301438 Aids: Calculator and/or a Swedish-English dictionary Points: The
Classification/Decision Trees (II)
Classification/Decision Trees (II) Department of Statistics The Pennsylvania State University Email: [email protected] Right Sized Trees Let the expected misclassification rate of a tree T be R (T ).
FPGA area allocation for parallel C applications
1 FPGA area allocation for parallel C applications Vlad-Mihai Sima, Elena Moscu Panainte, Koen Bertels Computer Engineering Faculty of Electrical Engineering, Mathematics and Computer Science Delft University
P vs NP problem in the field anthropology
Research Article P vs NP problem in the field anthropology Michael.A. Popov, Oxford, UK Email [email protected] Keywords P =?NP - complexity anthropology - M -decision - quantum -like game - game-theoretical
