Java implementation of algorithms from Norvig and Russell's Artificial Intelligence - A Modern Approach 3rd Edition.
NOTE: While we would like to complete the set of algorithms on the AIMA3e branch (the current default) we are planning on focussing most of our efforts on the new AIMA4e branch going forward. This is a complete rewrite of the algorithms from the AIMA3e branch and will be updated to reflect any changes in the yet to be published 4th edition of the book.
NOTE: If you would like to get involved and contribute to the project, please email me (Ciaran) at ctjoreilly@gmail.com so I can assist and coordinate efforts.
-
Latest Maven Information (for integration as a third party library)
<dependency> <groupId>com.googlecode.aima-java</groupId> <artifactId>aima-core</artifactId> <version>0.11.1</version> </dependency>
| Fig | Page | Name (in book) | Code |
|---|---|---|---|
| 2 | 34 | Environment | Environment |
| 2.1 | 35 | Agent | Agent |
| 2.3 | 36 | Table-Driven-Vacuum-Agent | TableDrivenVacuumAgent |
| 2.7 | 47 | Table-Driven-Agent | TableDrivenAgentProgram |
| 2.8 | 48 | Reflex-Vacuum-Agent | ReflexVacuumAgent |
| 2.10 | 49 | Simple-Reflex-Agent | SimpleReflexAgentProgram |
| 2.12 | 51 | Model-Based-Reflex-Agent | ModelBasedReflexAgentProgram |
| 3 | 66 | Problem | Problem |
| 3.1 | 67 | Simple-Problem-Solving-Agent | SimpleProblemSolvingAgent |
| 3.2 | 68 | Romania | SimplifiedRoadMapOfPartOfRomania |
| 3.7 | 77 | Tree-Search | TreeSearch |
| 3.7 | 77 | Graph-Search | GraphSearch |
| 3.10 | 79 | Node | Node |
| 3 | 79 | Queue | Queue |
| 3.11 | 82 | Breadth-First-Search | BreadthFirstSearch |
| 3.14 | 84 | Uniform-Cost-Search | UniformCostSearch |
| 3 | 85 | Depth-first Search | DepthFirstSearch |
| 3.17 | 88 | Depth-Limited-Search | DepthLimitedSearch |
| 3.18 | 89 | Iterative-Deepening-Search | IterativeDeepeningSearch |
| 3 | 90 | Bidirectional search | BidirectionalSearch |
| 3 | 92 | Best-First search | BestFirstSearch |
| 3 | 92 | Greedy best-First search | GreedyBestFirstSearch |
| 3 | 93 | A* Search | AStarSearch |
| 3.26 | 99 | Recursive-Best-First-Search | RecursiveBestFirstSearch |
| 4.2 | 122 | Hill-Climbing | HillClimbingSearch |
| 4.5 | 126 | Simulated-Annealing | SimulatedAnnealingSearch |
| 4.8 | 129 | Genetic-Algorithm | GeneticAlgorithm |
| 4.11 | 136 | And-Or-Graph-Search | AndOrSearch |
| 4 | 147 | Online search problem | OnlineSearchProblem |
| 4.21 | 150 | Online-DFS-Agent | OnlineDFSAgent |
| 4.24 | 152 | LRTA*-Agent | LRTAStarAgent |
| 5.3 | 166 | Minimax-Decision | MinimaxSearch |
| 5.7 | 170 | Alpha-Beta-Search | AlphaBetaSearch |
| 6 | 202 | CSP | CSP |
| 6.1 | 204 | Map CSP | MapCSP |
| 6.3 | 209 | AC-3 | AC3Strategy |
| 6.5 | 215 | Backtracking-Search | BacktrackingStrategy |
| 6.8 | 221 | Min-Conflicts | MinConflictsStrategy |
| 6.11 | 224 | Tree-CSP-Solver | --- |
| 7 | 235 | Knowledge Base | KnowledgeBase |
| 7.1 | 236 | KB-Agent | KBAgent |
| 7.7 | 244 | Propositional-Logic-Sentence | Sentence |
| 7.10 | 248 | TT-Entails | TTEntails |
| 7 | 253 | Convert-to-CNF | ConvertToCNF |
| 7.12 | 255 | PL-Resolution | PLResolution |
| 7.15 | 258 | PL-FC-Entails? | PLFCEntails |
| 7.17 | 261 | DPLL-Satisfiable? | DPLLSatisfiable |
| 7.18 | 263 | WalkSAT | WalkSAT |
| 7.20 | 270 | Hybrid-Wumpus-Agent | HybridWumpusAgent |
| 7.22 | 272 | SATPlan | SATPlan |
| 9 | 323 | Subst | SubstVisitor |
| 9.1 | 328 | Unify | Unifier |
| 9.3 | 332 | FOL-FC-Ask | FOLFCAsk |
| 9.3 | 332 | FOL-BC-Ask | FOLBCAsk |
| 9 | 345 | CNF | CNFConverter |
| 9 | 347 | Resolution | FOLTFMResolution |
| 9 | 354 | Demodulation | Demodulation |
| 9 | 354 | Paramodulation | Paramodulation |
| 9 | 345 | Subsumption | SubsumptionElimination |
| 10.9 | 383 | Graphplan | --- |
| 11.5 | 409 | Hierarchical-Search | --- |
| 11.8 | 414 | Angelic-Search | --- |
| 13.1 | 484 | DT-Agent | --- |
| 13 | 484 | Probability-Model | ProbabilityModel |
| 13 | 487 | Probability-Distribution | ProbabilityDistribution |
| 13 | 490 | Full-Joint-Distribution | FullJointDistributionModel |
| 14 | 510 | Bayesian Network | BayesianNetwork |
| 14.9 | 525 | Enumeration-Ask | EnumerationAsk |
| 14.11 | 528 | Elimination-Ask | EliminationAsk |
| 14.13 | 531 | Prior-Sample | PriorSample |
| 14.14 | 533 | Rejection-Sampling | RejectionSampling |
| 14.15 | 534 | Likelihood-Weighting | LikelihoodWeighting |
| 14.16 | 537 | GIBBS-Ask | GibbsAsk |
| 15.4 | 576 | Forward-Backward | ForwardBackward |
| 15 | 578 | Hidden Markov Model | HiddenMarkovModel |
| 15.6 | 580 | Fixed-Lag-Smoothing | FixedLagSmoothing |
| 15 | 590 | Dynamic Bayesian Network | DynamicBayesianNetwork |
| 15.17 | 598 | Particle-Filtering | ParticleFiltering |
| 16.9 | 632 | Information-Gathering-Agent | --- |
| 17 | 647 | Markov Decision Process | MarkovDecisionProcess |
| 17.4 | 653 | Value-Iteration | ValueIteration |
| 17.7 | 657 | Policy-Iteration | PolicyIteration |
| 17.9 | 663 | POMDP-Value-Iteration | --- |
| 18.5 | 702 | Decision-Tree-Learning | DecisionTreeLearner |
| 18.8 | 710 | Cross-Validation-Wrapper | --- |
| 18.11 | 717 | Decision-List-Learning | DecisionListLearner |
| 18.24 | 734 | Back-Prop-Learning | BackPropLearning |
| 18.34 | 751 | AdaBoost | AdaBoostLearner |
| 19.2 | 771 | Current-Best-Learning | --- |
| 19.3 | 773 | Version-Space-Learning | --- |
| 19.8 | 786 | Minimal-Consistent-Det | --- |
| 19.12 | 793 | FOIL | --- |
| 21.2 | 834 | Passive-ADP-Agent | PassiveADPAgent |
| 21.4 | 837 | Passive-TD-Agent | PassiveTDAgent |
| 21.8 | 844 | Q-Learning-Agent | QLearningAgent |
| 22.1 | 871 | HITS | --- |
| 23.5 | 894 | CYK-Parse | --- |
| 25.9 | 982 | Monte-Carlo-Localization | --- |
