Java implementation of algorithms from Russell And Norvig's "Artificial Intelligence - A Modern Approach"
MIT License
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.
Demo Applications that can be run from your browser (unfortunately not up to date)
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 |
---|---|---|---|
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 | SimplifiedRoadMapOfRomania |
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 | 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 |
Chapter No | Name | Status (in 3rd edition) | Status (in 4th edition) |
---|---|---|---|
3 | Solving Problems by Searching | In Progress | Not started |
6 | Constraint Satisfaction Problems | In Progress | --- |
12 | Knowledge Representation | Done | --- |
13 | Quantifying Uncertainty | Done | --- |
14 | Probabilistic Reasoning | In Progress | --- |
Before starting to work on a new notebook:
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 | --- |