@@ -24,58 +24,57 @@ When complete, this project will have Python code for all the pseudocode algorit
2424
2525Here is a table of algorithms, the figure, name of the code in the book and in the repository, 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] ( https://github.com/aimacode/aima-pseudocode ) project describes all the algorithms from the book.
2626
27-
2827| ** Figure** | ** Name (in 3<sup >rd</sup > edition)** | ** Name (in repository)** | ** File**
2928| :--------| :-------------------| :---------| :-----------|
30- | 2.1 | Environment | ` Environment ` | [ ` agents.py ` ] ( ../master/ agents.py ) |
31- | 2.1 | Agent | ` Agent ` | [ ` agents.py ` ] ( ../master/ agents.py ) |
32- | 2.3 | Table-Driven-Vacuum-Agent | ` TableDrivenVacuumAgent ` | [ ` agents.py ` ] ( ../master/ agents.py ) |
33- | 2.7 | Table-Driven-Agent | ` TableDrivenAgent ` | [ ` agents.py ` ] ( ../master/ agents.py ) |
34- | 2.8 | Reflex-Vacuum-Agent | ` ReflexVacuumAgent ` | [ ` agents.py ` ] ( ../master/ agents.py ) |
35- | 2.10 | Simple-Reflex-Agent | ` SimpleReflexAgent ` | [ ` agents.py ` ] ( ../master/ agents.py ) |
36- | 2.12 | Model-Based-Reflex-Agent | ` ReflexAgentWithState ` | [ ` agents.py ` ] ( ../master/ agents.py ) |
37- | 3 | Problem | ` Problem ` | [ ` search.py ` ] ( ../master/ search.py ) |
38- | 3 | Node | ` Node ` | [ ` search.py ` ] ( ../master/ search.py ) |
39- | 3 | Queue | ` Queue ` | [ ` utils.py ` ] ( ../master/ utils.py ) |
40- | 3.1 | Simple-Problem-Solving-Agent | ` SimpleProblemSolvingAgent ` | [ ` search.py ` ] ( ../master/ search.py ) |
41- | 3.2 | Romania | ` romania ` | [ ` search.py ` ] ( ../master/ search.py ) |
42- | 3.7 | Tree-Search | ` tree_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
43- | 3.7 | Graph-Search | ` graph_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
44- | 3.11 | Breadth-First-Search | ` breadth_first_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
45- | 3.14 | Uniform-Cost-Search | ` uniform_cost_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
46- | 3.17 | Depth-Limited-Search | ` depth_limited_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
47- | 3.18 | Iterative-Deepening-Search | ` iterative_deepening_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
48- | 3.22 | Best-First-Search | ` best_first_graph_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
49- | 3.24 | A\* -Search | ` astar_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
50- | 3.26 | Recursive-Best-First-Search | ` recursive_best_first_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
51- | 4.2 | Hill-Climbing | ` hill_climbing ` | [ ` search.py ` ] ( ../master/ search.py ) |
52- | 4.5 | Simulated-Annealing | ` simulated_annealing ` | [ ` search.py ` ] ( ../master/ search.py ) |
53- | 4.8 | Genetic-Algorithm | ` genetic_algorithm ` | [ ` search.py ` ] ( ../master/ search.py ) |
54- | 4.11 | And-Or-Graph-Search | ` and_or_graph_search ` | [ ` search.py ` ] ( ../master/ search.py ) |
55- | 4.21 | Online-DFS-Agent | ` online_dfs_agent ` | [ ` search.py ` ] ( ../master/ search.py ) |
56- | 4.24 | LRTA\* -Agent | ` LRTAStarAgent ` | [ ` search.py ` ] ( ../master/ search.py ) |
57- | 5.3 | Minimax-Decision | ` minimax_decision ` | [ ` games.py ` ] ( ../master/ games.py ) |
58- | 5.7 | Alpha-Beta-Search | ` alphabeta_search ` | [ ` games.py ` ] ( ../master/ games.py ) |
59- | 6 | CSP | ` CSP ` | [ ` csp.py ` ] ( ../master/ csp.py ) |
60- | 6.3 | AC-3 | ` AC3 ` | [ ` csp.py ` ] ( ../master/ csp.py ) |
61- | 6.5 | Backtracking-Search | ` backtracking_search ` | [ ` csp.py ` ] ( ../master/ csp.py ) |
62- | 6.8 | Min-Conflicts | ` min_conflicts ` | [ ` csp.py ` ] ( ../master/ csp.py ) |
63- | 6.11 | Tree-CSP-Solver | ` tree_csp_solver ` | [ ` csp.py ` ] ( ../master/ csp.py ) |
64- | 7 | KB | ` KB ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
65- | 7.1 | KB-Agent | ` KB_Agent ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
66- | 7.7 | Propositional Logic Sentence | ` Expr ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
67- | 7.10 | TT-Entails | ` tt_entials ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
68- | 7.12 | PL-Resolution | ` pl_resolution ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
69- | 7.14 | Convert to CNF | ` to_cnf ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
70- | 7.15 | PL-FC-Entails? | ` pl_fc_resolution ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
71- | 7.17 | DPLL-Satisfiable? | ` dpll_satisfiable ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
72- | 7.18 | WalkSAT | ` WalkSAT ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
29+ | 2.1 | Environment | ` Environment ` | [ ` agents.py ` ] [ agents ] |
30+ | 2.1 | Agent | ` Agent ` | [ ` agents.py ` ] [ agents ] |
31+ | 2.3 | Table-Driven-Vacuum-Agent | ` TableDrivenVacuumAgent ` | [ ` agents.py ` ] [ agents ] |
32+ | 2.7 | Table-Driven-Agent | ` TableDrivenAgent ` | [ ` agents.py ` ] [ agents ] |
33+ | 2.8 | Reflex-Vacuum-Agent | ` ReflexVacuumAgent ` | [ ` agents.py ` ] [ agents ] |
34+ | 2.10 | Simple-Reflex-Agent | ` SimpleReflexAgent ` | [ ` agents.py ` ] [ agents ] |
35+ | 2.12 | Model-Based-Reflex-Agent | ` ReflexAgentWithState ` | [ ` agents.py ` ] [ agents ] |
36+ | 3 | Problem | ` Problem ` | [ ` search.py ` ] [ search ] |
37+ | 3 | Node | ` Node ` | [ ` search.py ` ] [ search ] |
38+ | 3 | Queue | ` Queue ` | [ ` utils.py ` ] [ utils ] |
39+ | 3.1 | Simple-Problem-Solving-Agent | ` SimpleProblemSolvingAgent ` | [ ` search.py ` ] [ search ] |
40+ | 3.2 | Romania | ` romania ` | [ ` search.py ` ] [ search ] |
41+ | 3.7 | Tree-Search | ` tree_search ` | [ ` search.py ` ] [ search ] |
42+ | 3.7 | Graph-Search | ` graph_search ` | [ ` search.py ` ] [ search ] |
43+ | 3.11 | Breadth-First-Search | ` breadth_first_search ` | [ ` search.py ` ] [ search ] |
44+ | 3.14 | Uniform-Cost-Search | ` uniform_cost_search ` | [ ` search.py ` ] [ search ] |
45+ | 3.17 | Depth-Limited-Search | ` depth_limited_search ` | [ ` search.py ` ] [ search ] |
46+ | 3.18 | Iterative-Deepening-Search | ` iterative_deepening_search ` | [ ` search.py ` ] [ search ] |
47+ | 3.22 | Best-First-Search | ` best_first_graph_search ` | [ ` search.py ` ] [ search ] |
48+ | 3.24 | A\* -Search | ` astar_search ` | [ ` search.py ` ] [ search ] |
49+ | 3.26 | Recursive-Best-First-Search | ` recursive_best_first_search ` | [ ` search.py ` ] [ search ] |
50+ | 4.2 | Hill-Climbing | ` hill_climbing ` | [ ` search.py ` ] [ search ] |
51+ | 4.5 | Simulated-Annealing | ` simulated_annealing ` | [ ` search.py ` ] [ search ] |
52+ | 4.8 | Genetic-Algorithm | ` genetic_algorithm ` | [ ` search.py ` ] [ search ] |
53+ | 4.11 | And-Or-Graph-Search | ` and_or_graph_search ` | [ ` search.py ` ] [ search ] |
54+ | 4.21 | Online-DFS-Agent | ` online_dfs_agent ` | [ ` search.py ` ] [ search ] |
55+ | 4.24 | LRTA\* -Agent | ` LRTAStarAgent ` | [ ` search.py ` ] [ search ] |
56+ | 5.3 | Minimax-Decision | ` minimax_decision ` | [ ` games.py ` ] [ games ] |
57+ | 5.7 | Alpha-Beta-Search | ` alphabeta_search ` | [ ` games.py ` ] [ games ] |
58+ | 6 | CSP | ` CSP ` | [ ` csp.py ` ] [ csp ] |
59+ | 6.3 | AC-3 | ` AC3 ` | [ ` csp.py ` ] [ csp ] |
60+ | 6.5 | Backtracking-Search | ` backtracking_search ` | [ ` csp.py ` ] [ csp ] |
61+ | 6.8 | Min-Conflicts | ` min_conflicts ` | [ ` csp.py ` ] [ csp ] |
62+ | 6.11 | Tree-CSP-Solver | ` tree_csp_solver ` | [ ` csp.py ` ] [ csp ] |
63+ | 7 | KB | ` KB ` | [ ` logic.py ` ] [ logic ] |
64+ | 7.1 | KB-Agent | ` KB_Agent ` | [ ` logic.py ` ] [ logic ] |
65+ | 7.7 | Propositional Logic Sentence | ` Expr ` | [ ` logic.py ` ] [ logic ] |
66+ | 7.10 | TT-Entails | ` tt_entials ` | [ ` logic.py ` ] [ logic ] |
67+ | 7.12 | PL-Resolution | ` pl_resolution ` | [ ` logic.py ` ] [ logic ] |
68+ | 7.14 | Convert to CNF | ` to_cnf ` | [ ` logic.py ` ] [ logic ] |
69+ | 7.15 | PL-FC-Entails? | ` pl_fc_resolution ` | [ ` logic.py ` ] [ logic ] |
70+ | 7.17 | DPLL-Satisfiable? | ` dpll_satisfiable ` | [ ` logic.py ` ] [ logic ] |
71+ | 7.18 | WalkSAT | ` WalkSAT ` | [ ` logic.py ` ] [ logic ] |
7372| 7.20 | Hybrid-Wumpus-Agent | | |
74- | 7.22 | SATPlan | ` SAT_plan ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
75- | 9 | Subst | ` subst ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
76- | 9.1 | Unify | ` unify ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
77- | 9.3 | FOL-FC-Ask | ` fol_fc_ask ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
78- | 9.6 | FOL-BC-Ask | ` fol_bc_ask ` | [ ` logic.py ` ] ( ../master/ logic.py ) |
73+ | 7.22 | SATPlan | ` SAT_plan ` | [ ` logic.py ` ] [ logic ] |
74+ | 9 | Subst | ` subst ` | [ ` logic.py ` ] [ logic ] |
75+ | 9.1 | Unify | ` unify ` | [ ` logic.py ` ] [ logic ] |
76+ | 9.3 | FOL-FC-Ask | ` fol_fc_ask ` | [ ` logic.py ` ] [ logic ] |
77+ | 9.6 | FOL-BC-Ask | ` fol_bc_ask ` | [ ` logic.py ` ] [ logic ] |
7978| 9.8 | Append | | |
8079| 10.1 | Air-Cargo-problem | |
8180| 10.2 | Spare-Tire-Problem | |
@@ -87,36 +86,36 @@ Here is a table of algorithms, the figure, name of the code in the book and in t
8786| 11.5 | Hierarchical-Search | |
8887| 11.8 | Angelic-Search | |
8988| 11.10 | Doubles-tennis | |
90- | 13 | Discrete Probability Distribution | ` ProbDist ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
91- | 13.1 | DT-Agent | ` DTAgent ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
92- | 14.9 | Enumeration-Ask | ` enumeration_ask ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
93- | 14.11 | Elimination-Ask | ` elimination_ask ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
94- | 14.13 | Prior-Sample | ` prior_sample ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
95- | 14.14 | Rejection-Sampling | ` rejection_sampling ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
96- | 14.15 | Likelihood-Weighting | ` likelihood_weighting ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
97- | 14.16 | Gibbs-Ask | ` gibbs_ask ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
98- | 15.4 | Forward-Backward | ` forward_backward ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
99- | 15.6 | Fixed-Lag-Smoothing | ` fixed_lag_smoothing ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
100- | 15.17 | Particle-Filtering | ` particle_filtering ` | [ ` probability.py ` ] ( ../master/ probability.py ) |
89+ | 13 | Discrete Probability Distribution | ` ProbDist ` | [ ` probability.py ` ] [ probability ] |
90+ | 13.1 | DT-Agent | ` DTAgent ` | [ ` probability.py ` ] [ probability ] |
91+ | 14.9 | Enumeration-Ask | ` enumeration_ask ` | [ ` probability.py ` ] [ probability ] |
92+ | 14.11 | Elimination-Ask | ` elimination_ask ` | [ ` probability.py ` ] [ probability ] |
93+ | 14.13 | Prior-Sample | ` prior_sample ` | [ ` probability.py ` ] [ probability ] |
94+ | 14.14 | Rejection-Sampling | ` rejection_sampling ` | [ ` probability.py ` ] [ probability ] |
95+ | 14.15 | Likelihood-Weighting | ` likelihood_weighting ` | [ ` probability.py ` ] [ probability ] |
96+ | 14.16 | Gibbs-Ask | ` gibbs_ask ` | [ ` probability.py ` ] [ probability ] |
97+ | 15.4 | Forward-Backward | ` forward_backward ` | [ ` probability.py ` ] [ probability ] |
98+ | 15.6 | Fixed-Lag-Smoothing | ` fixed_lag_smoothing ` | [ ` probability.py ` ] [ probability ] |
99+ | 15.17 | Particle-Filtering | ` particle_filtering ` | [ ` probability.py ` ] [ probability ] |
101100| 16.9 | Information-Gathering-Agent | |
102- | 17.4 | Value-Iteration | ` value_iteration ` | [ ` mdp.py ` ] ( ../master/ mdp.py ) |
103- | 17.7 | Policy-Iteration | ` policy_iteration ` | [ ` mdp.py ` ] ( ../master/ mdp.py ) |
101+ | 17.4 | Value-Iteration | ` value_iteration ` | [ ` mdp.py ` ] [ mdp ] |
102+ | 17.7 | Policy-Iteration | ` policy_iteration ` | [ ` mdp.py ` ] [ mdp ] |
104103| 17.7 | POMDP-Value-Iteration | | |
105- | 18.5 | Decision-Tree-Learning | ` DecisionTreeLearner ` | [ ` learning.py ` ] ( ../master/ learning.py ) |
106- | 18.8 | Cross-Validation | ` cross_validation ` | [ ` learning.py ` ] ( ../master/ learning.py ) |
107- | 18.11 | Decision-List-Learning | ` DecisionListLearner ` | [ ` learning.py ` ] ( ../master/ learning.py ) |
108- | 18.24 | Back-Prop-Learning | ` BackPropagationLearner ` | [ ` learning.py ` ] ( ../master/ learning.py ) |
109- | 18.34 | AdaBoost | ` AdaBoost ` | [ ` learning.py ` ] ( ../master/ learning.py ) |
104+ | 18.5 | Decision-Tree-Learning | ` DecisionTreeLearner ` | [ ` learning.py ` ] [ learning ] |
105+ | 18.8 | Cross-Validation | ` cross_validation ` | [ ` learning.py ` ] [ learning ] |
106+ | 18.11 | Decision-List-Learning | ` DecisionListLearner ` | [ ` learning.py ` ] [ learning ] |
107+ | 18.24 | Back-Prop-Learning | ` BackPropagationLearner ` | [ ` learning.py ` ] [ learning ] |
108+ | 18.34 | AdaBoost | ` AdaBoost ` | [ ` learning.py ` ] [ learning ] |
110109| 19.2 | Current-Best-Learning | |
111110| 19.3 | Version-Space-Learning | |
112111| 19.8 | Minimal-Consistent-Det | |
113112| 19.12 | FOIL | |
114- | 21.2 | Passive-ADP-Agent | ` PassiveADPAgent ` | [ ` rl.py ` ] ( ../master/rl.py ) |
115- | 21.4 | Passive-TD-Agent | ` PassiveTDAgent ` | [ ` rl.py ` ] ( ../master/rl.py ) |
116- | 21.8 | Q-Learning-Agent | ` QLearningAgent ` | [ ` rl.py ` ] ( ../master/rl.py ) |
117- | 22.1 | HITS | ` HITS ` | [ ` nlp.py ` ] ( ../master/ nlp.py ) |
118- | 23 | Chart-Parse | ` Chart ` | [ ` nlp.py ` ] ( ../master/ nlp.py ) |
119- | 23.5 | CYK-Parse | ` CYK_parse ` | [ ` nlp.py ` ] ( ../master/ nlp.py ) |
113+ | 21.2 | Passive-ADP-Agent | ` PassiveADPAgent ` | [ ` rl.py ` ] [ rl ] |
114+ | 21.4 | Passive-TD-Agent | ` PassiveTDAgent ` | [ ` rl.py ` ] [ rl ] |
115+ | 21.8 | Q-Learning-Agent | ` QLearningAgent ` | [ ` rl.py ` ] [ rl ] |
116+ | 22.1 | HITS | ` HITS ` | [ ` nlp.py ` ] [ nlp ] |
117+ | 23 | Chart-Parse | ` Chart ` | [ ` nlp.py ` ] [ nlp ] |
118+ | 23.5 | CYK-Parse | ` CYK_parse ` | [ ` nlp.py ` ] [ nlp ] |
120119| 25.9 | Monte-Carlo-Localization| |
121120
122121
@@ -126,16 +125,32 @@ Here is a table of the implemented data structures, the figure, name of the impl
126125
127126| ** Figure** | ** Name (in repository)** | ** File** |
128127| :-----------| :-------------------------| :---------|
129- | 3.2 | romania_map | [ ` search.py ` ] ( ../master/ search.py ) |
130- | 4.9 | vacumm_world | [ ` search.py ` ] ( ../master/ search.py ) |
131- | 4.23 | one_dim_state_space | [ ` search.py ` ] ( ../master/ search.py ) |
132- | 6.1 | australia_map | [ ` search.py ` ] ( ../master/ search.py ) |
133- | 7.13 | wumpus_world_inference | [ ` logic.py ` ] ( ../master/login.py ) |
134- | 7.16 | horn_clauses_KB | [ ` logic.py ` ] ( ../master/ logic.py ) |
135- | 17.1 | sequential_decision_environment | [ ` mdp.py ` ] ( ../master/ mdp.py ) |
136- | 18.2 | waiting_decision_tree | [ ` learning.py ` ] ( ../master/ learning.py ) |
128+ | 3.2 | romania_map | [ ` search.py ` ] [ search ] |
129+ | 4.9 | vacumm_world | [ ` search.py ` ] [ search ] |
130+ | 4.23 | one_dim_state_space | [ ` search.py ` ] [ search ] |
131+ | 6.1 | australia_map | [ ` search.py ` ] [ search ] |
132+ | 7.13 | wumpus_world_inference | [ ` logic.py ` ] [ logic ] |
133+ | 7.16 | horn_clauses_KB | [ ` logic.py ` ] [ logic ] |
134+ | 17.1 | sequential_decision_environment | [ ` mdp.py ` ] [ mdp ] |
135+ | 18.2 | waiting_decision_tree | [ ` learning.py ` ] [ learning ] |
137136
138137
139138# Acknowledgements
140139
141140Many thanks for contributions over the years. I got bug reports, corrected code, and other support from Darius Bacon, Phil Ruggera, Peng Shao, Amit Patil, Ted Nienstedt, Jim Martin, Ben Catanzariti, and others. Now that the project is on GitHub, you can see the [ contributors] ( https://github.com/aimacode/aima-python/graphs/contributors ) who are doing a great job of actively improving the project. Many thanks to all contributors, especially @darius , @SnShine , and @reachtarunhere .
141+
142+ <!-- -Reference Links-->
143+ [ agents ] :../master/agents.py
144+ [ csp ] :../master/csp.py
145+ [ games ] :../master/games.py
146+ [ grid ] :../master/grid.py
147+ [ learning ] :../master/learning.py
148+ [ logic ] :../master/logic.py
149+ [ mdp ] :../master/mdp.py
150+ [ nlp ] :../master/nlp.py
151+ [ planning ] :../master/planning.py
152+ [ probability ] :../master/probability.py
153+ [ rl ] :../master/rl.py
154+ [ search ] :../master/search.py
155+ [ utils ] :../master/utils.py
156+ [ text ] :../master/text.py
0 commit comments