/aima-java

Java implementation of algorithms from Russell And Norvig's "Artificial Intelligence - A Modern Approach"

Primary LanguageJavaMIT LicenseMIT

AIMA3e-Java (JDK 8+) Build Status Binder

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.

Getting Started Links

Index of Implemented Algorithms

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

"---" indicates algorithms yet to be implemented.

Index of data structures

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 ---