Skip to main content

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, expand functions, 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:

  1. Write library-quality code
    • Consistent API
    • Clear separation of subpackages
    • MIT licensed for others to learn from.
  2. 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.
  3. Make it reusable for my own projects
    • Example: using the same Problem abstraction for both toy textbook problems and custom agents (like N-puzzle solvers or experimental planners).

🔧 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aima_toolkit-1.0.2.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aima_toolkit-1.0.2-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

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

Hashes for aima_toolkit-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c974c9eb5667fe06ea5424d998bba98fe82286ec0e272cc41cf2da39320b0ad9
MD5 c8a4119932a376688676df330b0dd8db
BLAKE2b-256 def606abbd8a84e362700cbda085704c5011d1da8df481206cd0089d63a0f2a4

See more details on using hashes here.

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

Hashes for aima_toolkit-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1be6812726b3ee07b5971d83066e19fc3c400c807c3ac27766a31c48f70706fe
MD5 8c2c9e88a11ce061f5dda949c7a55792
BLAKE2b-256 f25963aaf78280dbf392faf9168dd2284db74849b59b2723e10748b409ce477e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page