You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
What's the policy on 3rd versus 4th edition? #1188
The README says "This chart was made for the third edition of the book and is being updated for the upcoming fourth edition." Now the fourth edition is out; the files seem to come in pairs like agents.py, agents4e.py; and the README chart only points to third-edition files. There are differences between the files in each pair, though as I'm just starting I'm not sure yet how far the updates have gone.
Are the third-edition versions meant to be developed further, or should all new work go into the fourth? Are (any of) the fourth-edition versions up to date with the book, and if so shouldn't we update the README chart to point to them?
We've all been sidetracked with other things, and I'm focused on the AIMA exercises more than the code, but I will, later today, post all the pseudo-code algorithms here.
The policy should be: We're not going to try to maintain two branches. All work should go into switching over to 4e.
Another policy point: We should upgrade to 3.7. I'll open that as a separate issue.
Thanks for spurring me into action, and for your continued support!
The policy is now documented (commit 09b3079), restating @norvig's decision above: the 4th edition is canonical, we don't maintain two parallel editions, and all new work targets 4e. Added an Edition policy section to the README and a matching note in CONTRIBUTING; the algorithm-chart note is updated too.
Current reality, for transparency: 9 modules still come in X.py (3e-named, the primary tested/used base) + X4e.py (4e ports / 4e-specific algorithms) pairs, plus several 4e-only modules. The agreed next step is converging on a single version per module. That migration is large and will be done incrementally; keeping this issue open to track it.
Resolved: the project has converged on the 4th edition and there is now a single version per module — no *4e.py files remain. The 3e/4e pairs were merged (canonical implementation kept, genuinely-new 4e algorithms folded in, zero algorithm loss verified by an AST diff), the 4e-only modules were de-suffixed, and the standalone *4e.ipynb notebooks were unified into the base ones. Everything now lives in an importable aima package (from aima.search import ...), the README algorithm index points at the aima/ modules, and the docs/CONTRIBUTING reflect the 4e-only policy. Shipped in #1340 (plus follow-ups). So: all new work goes into the single 4e version. Closing — thanks for raising it; it shaped the whole convergence.
Activity
norvig commentedon Jun 9, 2020
Hi Darius, great to bring this up.
We've all been sidetracked with other things, and I'm focused on the AIMA exercises more than the code, but I will, later today, post all the pseudo-code algorithms here.
The policy should be: We're not going to try to maintain two branches. All work should go into switching over to 4e.
Another policy point: We should upgrade to 3.7. I'll open that as a separate issue.
Thanks for spurring me into action, and for your continued support!
Document the 3rd-vs-4th edition policy (#1188)
dmeoli commentedon Jun 27, 2026
The policy is now documented (commit
09b3079), restating @norvig's decision above: the 4th edition is canonical, we don't maintain two parallel editions, and all new work targets 4e. Added an Edition policy section to the README and a matching note in CONTRIBUTING; the algorithm-chart note is updated too.Current reality, for transparency: 9 modules still come in
X.py(3e-named, the primary tested/used base) +X4e.py(4e ports / 4e-specific algorithms) pairs, plus several 4e-only modules. The agreed next step is converging on a single version per module. That migration is large and will be done incrementally; keeping this issue open to track it.Stage 2a: remove orphan 3e/4e duplicate modules (agents4e, logic4e, r…
Stage 2b: converge 7 of 9 module pairs into the canonical modules (#1188
Stage 2c: converge the 4e ML cluster (utils + learning), completing #…
Drop all remaining 4e suffixes: one unsuffixed module per topic (#1188)
Restructure into the `aima` package (`aima/` + `notebooks/` + `tests/…
dmeoli commentedon Jun 28, 2026
Resolved: the project has converged on the 4th edition and there is now a single version per module — no
*4e.pyfiles remain. The 3e/4e pairs were merged (canonical implementation kept, genuinely-new 4e algorithms folded in, zero algorithm loss verified by an AST diff), the 4e-only modules were de-suffixed, and the standalone*4e.ipynbnotebooks were unified into the base ones. Everything now lives in an importableaimapackage (from aima.search import ...), the README algorithm index points at theaima/modules, and the docs/CONTRIBUTING reflect the 4e-only policy. Shipped in #1340 (plus follow-ups). So: all new work goes into the single 4e version. Closing — thanks for raising it; it shaped the whole convergence.