Java implementation of algorithms from Norvig and Russell's Artificial Intelligence - A Modern Approach 3rd Edition.
We're loooking for one student sponsored by Google Summer of Code (GSoC) to work on this project; if you want to be that student, make some good contributions here (by looking through the "Issues" and resolving some, or by looking at the table of algorithms below and implementing a missing one, or by looking at the pseudocode of algorithms from the book and adding or improving one), and submit your application. (And we're always looking for solid contributors who are not affiliated with GSoC.)
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.
-
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 | --- |