Skip to content

aimacode/aima-java

AIMA3e
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
December 18, 2016 15:34
June 12, 2023 11:47
June 12, 2023 11:47
July 24, 2018 15:14
September 7, 2016 17:51
March 12, 2015 14:43
June 16, 2021 12:35

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.

Index of Implemented Algorithms

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

Index of implemented notebooks

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:

  1. Open a new issue with the following heading: **Notebook: Chapter Name - Version **. Check that the issue is not assigned to anyone.
  2. Mention a topics list of what you will be implementing in the notebook for that particular chapter. You can iteratively refine the list once you start working.
  3. Start a discussion on what can go in that particular notebook.

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