C# 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.
Here is a table of algorithms, the figure, name of the code in the book, and the file where they are implemented in the code. This chart was made for the third edition of the book and needs to be updated for the upcoming fourth edition. Empty implementations are a good place for contributors to look for an issue. The aima-pseudocode project describes all the algorithms from the book.
Fig | Page | Name (in book) | Code |
---|---|---|---|
2 | 34 | Environment | Environment |
2.1 | 35 | Agent | Agent |
2.3 | 36 | Table-Driven-Vacuum-Agent | |
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 | |
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 | |
3.14 | 84 | Uniform-Cost-Search | |
3 | 85 | Depth-first Search | |
3.17 | 88 | Depth-Limited-Search | |
3.18 | 89 | Iterative-Deepening-Search | |
3 | 90 | Bidirectional search | |
3 | 92 | Best-First search | |
3 | 92 | Greedy best-First search | |
3 | 93 | A* Search | |
3.26 | 99 | Recursive-Best-First-Search | |
4.2 | 122 | Hill-Climbing | |
4.5 | 126 | Simulated-Annealing | |
4.8 | 129 | Genetic-Algorithm | |
4.11 | 136 | And-Or-Graph-Search | |
4 | 147 | Online search problem | OnlineSearchProblem |
4.21 | 150 | Online-DFS-Agent | OnlineDFSAgent |
4.24 | 152 | LRTA*-Agent | LRTAStarAgent |
5.3 | 166 | Minimax-Decision | |
5.7 | 170 | Alpha-Beta-Search | |
6 | 202 | CSP | |
6.1 | 204 | Map CSP | |
6.3 | 209 | AC-3 | |
6.5 | 215 | Backtracking-Search | |
6.8 | 221 | Min-Conflicts | |
6.11 | 224 | Tree-CSP-Solver | |
7 | 235 | Knowledge Base | |
7.1 | 236 | KB-Agent | KBAgent |
7.7 | 244 | Propositional-Logic-Sentence | Sentence |
7.10 | 248 | TT-Entails | |
7 | 253 | Convert-to-CNF | |
7.12 | 255 | PL-Resolution | |
7.15 | 258 | PL-FC-Entails? | |
7.17 | 261 | DPLL-Satisfiable? | |
7.18 | 263 | WalkSAT | |
7.20 | 270 | Hybrid-Wumpus-Agent | |
7.22 | 272 | SATPlan | |
9 | 323 | Subst | |
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 | |
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 | |
13 | 487 | Probability-Distribution | |
13 | 490 | Full-Joint-Distribution | |
14 | 510 | Bayesian Network | |
14.9 | 525 | Enumeration-Ask | |
14.11 | 528 | Elimination-Ask | |
14.13 | 531 | Prior-Sample | |
14.14 | 533 | Rejection-Sampling | |
14.15 | 534 | Likelihood-Weighting | |
14.16 | 537 | GIBBS-Ask | |
15.4 | 576 | Forward-Backward | |
15 | 578 | Hidden Markov Model | |
15.6 | 580 | Fixed-Lag-Smoothing | |
15 | 590 | Dynamic Bayesian Network | |
15.17 | 598 | Particle-Filtering | |
16.9 | 632 | Information-Gathering-Agent | --- |
17 | 647 | Markov Decision Process | |
17.4 | 653 | Value-Iteration | |
17.7 | 657 | Policy-Iteration | |
17.9 | 663 | POMDP-Value-Iteration | --- |
18.5 | 702 | Decision-Tree-Learning | |
18.8 | 710 | Cross-Validation-Wrapper | --- |
18.11 | 717 | Decision-List-Learning | |
18.24 | 734 | Back-Prop-Learning | |
18.34 | 751 | AdaBoost | |
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 | |
21.4 | 837 | Passive-TD-Agent | |
21.8 | 844 | Q-Learning-Agent | |
22.1 | 871 | HITS | |
23.5 | 894 | CYK-Parse | |
25.9 | 982 | Monte-Carlo-Localization |
Here is a table of the implemented data structures, the figure, name of the implementation in the repository, and the file where they are implemented.
Figure | Name (in repository) | File |
---|---|---|
3.2 | romania_map | |
4.9 | vacumm_world | |
4.23 | one_dim_state_space | |
6.1 | australia_map | |
7.13 | wumpus_world_inference | |
7.16 | horn_clauses_KB | |
17.1 | sequential_decision_environment | |
18.2 | waiting_decision_tree |