I made this package to help me on my learning journey through the AIMA book and contains all algorithms I build whilst learning through the book
Project description
aima_toolkit
aima_toolkit is my personal implementation of algorithms and problems from Artificial Intelligence: A Modern Approach (4th edition).
It serves as both a learning project and a reusable package that I can import into other projects without copy–pasting code.
🎯 Why I built this
While studying AIMA, I quickly realized that each chapter builds on a shared set of abstractions (problems, nodes, queues, heuristics, etc.).
Copying files around between my “Chapter 3 search agents” and my “Chapter 4 local search” projects became repetitive and messy.
This package solves that by:
- Providing a central library of reusable AI building blocks.
- Letting me install it locally (or eventually from PyPI) and just
import aima_toolkit. - Forcing me to design my code as modular, tested, and reusable software rather than scattered scripts.
📦 What it contains
The package is organized following the structure of AIMA:
- Problems
- Classic AI problems: 8-queens, Romania map search, simple tree problems.
- SearchProblemPackage
- Uninformed Search: BFS, DFS, Depth-limited, Iterative Deepening, Uniform Cost.
- Informed Search: A*.
- Local Search: Hill Climbing, Stochastic Hill Climbing, Simulated Annealing, Local Beam, Genetic Algorithms.
- Nondeterministic, Online, and Partially Observable Search (scaffolding for future chapters).
- Sampling
- Utilities like reservoir sampling.
- Core utilities
Node,Problem,Queue,expandfunctions, etc.
Tests are included under tests/ to ensure correctness.
🚀 Goals
This isn’t just about getting AIMA exercises done—it’s about pushing myself to:
- Write library-quality code
- Consistent API
- Clear separation of subpackages
- MIT licensed for others to learn from.
- Cover the book’s progression
- Start with search (Chapters 3–4)
- Move into CSPs (Chapter 5), games (Chapter 6), logic (Chapters 7–10), planning (Chapter 11), uncertainty (Chapters 12–16), machine learning (Chapters 19–23), and beyond.
- Make it reusable for my own projects
- Example: using the same
Problemabstraction for both toy textbook problems and custom agents (like N-puzzle solvers or experimental planners).
- Example: using the same
🔧 Installation
For now (local development):
git clone <this-repo>
cd aima_toolkit
python -m pip install -e .
Then in Python:
from aima_toolkit.SearchProblemPackage.SearchAlgorithms.InformedSearch.a_star_search import astar
🛠️ Roadmap
- ✅ Chapter 3: Uninformed search
- ✅ Chapter 4: Local search & optimization
- 🔜 Chapter 5: CSPs (backtracking, inference, local search)
- 🔜 Chapter 6: Adversarial search & games
- 🔜 Chapter 7+: Logic, Planning, Uncertainty, ML, RL…
My long-term goal is to have a complete, working reference implementation of all core algorithms in AIMA 4e, with clean Python packaging and tests.
📜 License
MIT License — free to use, modify, and learn from, with attribution.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aima_toolkit-1.0.2.tar.gz.
File metadata
- Download URL: aima_toolkit-1.0.2.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c974c9eb5667fe06ea5424d998bba98fe82286ec0e272cc41cf2da39320b0ad9
|
|
| MD5 |
c8a4119932a376688676df330b0dd8db
|
|
| BLAKE2b-256 |
def606abbd8a84e362700cbda085704c5011d1da8df481206cd0089d63a0f2a4
|
File details
Details for the file aima_toolkit-1.0.2-py3-none-any.whl.
File metadata
- Download URL: aima_toolkit-1.0.2-py3-none-any.whl
- Upload date:
- Size: 20.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1be6812726b3ee07b5971d83066e19fc3c400c807c3ac27766a31c48f70706fe
|
|
| MD5 |
8c2c9e88a11ce061f5dda949c7a55792
|
|
| BLAKE2b-256 |
f25963aaf78280dbf392faf9168dd2284db74849b59b2723e10748b409ce477e
|