Java implementation of algorithms from Russell and Norvig's Artificial Intelligence - A Modern Approach 3rd Edition. You can use this in conjunction with a course on AI, or for study on your own. We're looking for solid contributors to help.
-
Download the latest official (but outdated) version = 1.9.1 (Dec 18 2016).
-
Latest Maven Information (for integration as a third party library)
<dependency> <groupId>com.googlecode.aima-java</groupId> <artifactId>aima-core</artifactId> <version>3.0.0</version> </dependency>
Figure | Page | Name (in 3rd edition) | Code | Test | Notebook |
---|---|---|---|---|---|
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.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 | AbstractBacktrackingSolver | ||
6.8 | 221 | Min-Conflicts | MinConflictsSolver | ||
6.11 | 224 | Tree-CSP-Solver | TreeCspSolver | ||
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.6 | 338 | 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 | GraphPlan | ||
11.5 | 409 | Hierarchical-Search | HierarchicalSearchAlgorithm | ||
11.8 | 414 | Angelic-Search | --- | ||
13.1 | 484 | DT-Agent | 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 | InformationGatheringAgent | ||
17 | 647 | Markov Decision Process | MarkovDecisionProcess | ||
17.4 | 653 | Value-Iteration | ValueIteration | ||
17.7 | 657 | Policy-Iteration | PolicyIteration | ||
17.9 | 663 | POMDP-Value-Iteration | POMDPValueIteration | ||
18.5 | 702 | Decision-Tree-Learning | DecisionTreeLearner | ||
18.8 | 710 | Cross-Validation-Wrapper | CrossValidation | ||
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 | CurrentBestLearning | ||
19.3 | 773 | Version-Space-Learning | VersionSpaceLearning | ||
19.8 | 786 | Minimal-Consistent-Det | MinimalConsistentDet | ||
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 | HITS | ||
23.5 | 894 | CYK-Parse | CYK | ||
25.9 | 982 | Monte-Carlo-Localization | MonteCarloLocalization |
Here is a table of the data structures yet to be implemented.
Fig | Page | Name (in book) | Code |
---|---|---|---|
9.8 | 341 | Append | --- |
10.1 | 369 | AIR-CARGO-TRANSPORT-PROBLEM | --- |
10.2 | 370 | SPARE-TIRE-PROBLEM | --- |
10.3 | 371 | BLOCKS-WORLD | --- |
10.7 | 380 | HAVE-CAKE-AND-EAT-CAKE-TOO-PROBLEM | --- |
11.1 | 402 | JOB-SHOP-SCHEDULING-PROBLEM | --- |
11.4 | 407 | REFINEMENT-HIGH-LEVEL-ACTIONS | --- |
23.6 | 895 | SENTENCE-TREE | --- |
29.1 | 1062 | POWERS-OF-2 | --- |