Java implementation of algorithms from Norvig and Russell's Artificial Intelligence - A Modern Approach
Latest Official version = 0.95. This is available from the downloads section.
Number Of Unit Tests = 604
The bleeding edge code is in the svn repository.
Index of Implemented Algorithms
Names in italics indicate algorithms that have been completed but have not made their way into a formal release. These will probably be subject to rapid change. If you need these, please checkout the latest code from svn (vs downloading the zip file)
| Fig | Page | Name (in book) | Code |
| 2 | 32 | Environment | Environment |
| 2.1 | 33 | Agent | Agent |
| 2.3 | 34 | Table-Driven-Vacuum-Agent | TableDrivenVacuumAgent |
| 2.7 | 45 | Table-Driven-Agent | TableDrivenAgent |
| 2.8 | 46 | Reflex-Vacuum-Agent | ReflexVaccumAgent |
| 2.10 | 47 | Simple-Reflex-Agent | SimpleReflexAgentProgram |
| 2.12 | 49 | Reflex-Agent-With-State | ReflexAgentWithStateProgram |
| 3.1 | 61 | Simple-Problem-Solving-Agent | SimpleProblemSolvingAgent |
| 3 | 62 | Problem | Problem |
| 3.2 | 63 | Romania | SimplifiedRoadMapOfPartOfRomania |
| 3 | 69 | Node | Node |
| 3.7 | 70 | Tree-Search | TreeSearch |
| 3 | 71 | Queue | AbstractQueue |
| 3.9 | 72 | Tree-Search | TreeSearch |
| 3 | 73 | Breadth-first search | BreadthFirstSearch |
| 3 | 75 | Uniform-cost-search | UniformCostSearch |
| 3 | 75 | Depth-first search | DepthFirstSearch |
| 3.13 | 77 | Depth-Limited-Search | DepthLimitedSearch |
| 3.14 | 78 | Iterative-Deepening-Search | Iterative Deepening Search |
| 3 | 79 | Bidirectional-Search | BidirectionalSearch |
| 3.19 | 83 | Graph-Search | GraphSearch |
| 4 | 95 | Best-First-Search | BestFirstSearch |
| 4 | 97 | A*-Search | AStarSearch |
| 4.5 | 102 | Recursive-Best-First-Search | RecursiveBestFirstSearch |
| 4.11 | 112 | Hill-Climbing | HillClimbingSearch |
| 4.14 | 116 | Simulated-Annealing | SimulatedAnnealingSearch |
| 4.17 | 119 | Genetic-Algorithm | GeneticAlgorithm |
| 4.20 | 126 | Online-DFS-Agent | OnlineDFSAgent |
| 4.23 | 128 | LRTA*-Agent | LRTAStarAgent |
| 5 | 137 | CSP | CSP |
| 5.3 | 142 | Backtracking-Search | (method)-backtrackingSearch() |
| 5.7 | 146 | AC-3 | --- |
| 5.8 | 151 | Min-Conflicts | (method)-mcSearch() |
| 6.3 | 166 | Minimax-Decision | (method)-makeMiniMaxMove() |
| 6.7 | 170 | Alpha-Beta-Search | -(method)-makeAlphaBetaMove() |
| 7 | 195 | KB | KnowledgeBase |
| 7.1 | 196 | KB-Agent | --- |
| 7.7 | 205 | Propositional-Logic-Sentence | Sentence |
| 7.10 | 209 | TT-Entails | TTEntails |
| 7 | 215 | Convert-to-CNF | CNFTransformer |
| 7.12 | 216 | PL-Resolution | PLResolution |
| 7.14 | 219 | PL-FC-Entails? | PLFCEntails |
| 7.16 | 222 | DPLL-Satisfiable? | (method)-dpllSatisfiable(String) |
| 7.17 | 223 | WalkSAT | WalkSAT |
| 7.19 | 226 | PL-Wumpus-Agent | --- |
| 9 | 273 | Subst | SubstVisitor |
| 9.1 | 278 | Unify | Unifier |
| 9.3 | 282 | FOL-FC-Ask | FOLFCAsk |
| 9.6 | 288 | FOL-BC-Ask | FOLBCAsk |
| 9 | 295 | CNF | CNFConverter |
| 9 | 297 | Resolution | FOLTFMResolution |
| 9 | 304 | Demodulation | Demodulation |
| 9 | 304 | Resolution | Paramodulation |
| 9.14 | 307 | Otter | FOLOTTERLikeTheoremProver |
| 11.2 | 380 | Airport-problem | --- |
| 11.3 | 381 | Spare-Tire-Problem | --- |
| 11.4 | 383 | Three-Block-Tower | --- |
| 11 | 390 | Partial-Order-Planner | --- |
| 11.11 | 396 | Cake-Problem | --- |
| 11.13 | 399 | Graphplan | --- |
| 11.15 | 403 | SATPlan | --- |
| 12.1 | 418 | Job-Shop-Problem | --- |
| 12.3 | 421 | Job-Shop-Problem-With-Resources | --- |
| 12.6 | 424 | House-Building-Problem | --- |
| 12.10 | 435 | And-Or-Graph-Search | --- |
| 12.22 | 449 | Continuous-POP-Agent | --- |
| 12.23 | 450 | Doubles-tennis | --- |
| 13.1 | 466 | DT-Agent | --- |
| 13 | 469 | Discrete-Probability-Distribution | ProbabilityDistribution |
| 13.4 | 477 | Enumerate-Joint-Ask | EnumerateJointAsk |
| 14.10 | 509 | Elimination-Ask | --- |
| 14.12 | 512 | Prior-Sample | (method)-getPriorSample() |
| 14.13 | 513 | Rejection-Sampling | (method)-rejectionSample(String X, Hashtable evidence,int numberOfSamples, Randomizer r) |
| 14.14 | 515 | Likelihood-Weighting | (method)-likelihoodWeighting() |
| 14.15 | 517 | MCMC-Ask | (method)-mcmcAsk |
| 15.4 | 546 | Forward-Backward | (method)-forwardbackWard() |
| 15.6 | 552 | Fixed-Lag-Smoothing | FixedLagSmoothing |
| 15.15 | 566 | Particle-Filtering | (method)-filter() |
| 16.8 | 603 | Information-Gathering-Agent | --- |
| 17.4 | 621 | Value-Iteration | (multiple overloaded methods) |
| 17.7 | 624 | Policy-Iteration | (method)-policyIteration |
| 18.5 | 658 | Decision-Tree-Learning | DecisiontreeLearner |
| 18.10 | 667 | AdaBoost | AdaBoostLearner |
| 18.14 | 672 | Decision-List-Learning | DecisionListLearner |
| 19.2 | 681 | Current-Best-Learning | --- |
| 19.3 | 683 | Version-Space-Learning | --- |
| 19.8 | 696 | Minimal-Consistent-Det | --- |
| 19.12 | 702 | FOIL | --- |
| 20.21 | 742 | Perceptron-Learning | PerceptronLearning |
| 20.25 | 746 | Back-Prop-Learning | StandardBackPropogation |
| 21.2 | 768 | Passive-ADP-Agent | PassiveADPAgent |
| 21.4 | 769 | Passive-TD-Agent | PassiveTDAgent |
| 21.8 | 776 | Q-Learning-Agent | QLearningAgent |
| 22.2 | 796 | Naive-Communicating-Agent | --- |
| 22.7 | 801 | Chart-Parse | --- |
| 23.1 | 837 | Viterbi-Segmentation | --- |
| 24.21 | 892 | Align | --- |