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-0.0.2.dev6.tar.gz (14.8 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-0.0.2.dev6-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

Details for the file aima_toolkit-0.0.2.dev6.tar.gz.

File metadata

  • Download URL: aima_toolkit-0.0.2.dev6.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aima_toolkit-0.0.2.dev6.tar.gz
Algorithm Hash digest
SHA256 53df2d7f648010a038b13c0c0d0cb6078c5e2192664c4d465b46750c36d4b097
MD5 6e9a745955bc93377e4f22daa8fe3b72
BLAKE2b-256 b4931369d8108c3b5547a56d12314082d8b9ddea1decb61c70fd362d91ea34f7

See more details on using hashes here.

File details

Details for the file aima_toolkit-0.0.2.dev6-py3-none-any.whl.

File metadata

File hashes

Hashes for aima_toolkit-0.0.2.dev6-py3-none-any.whl
Algorithm Hash digest
SHA256 feff3c95821c77b1df9835866833461685f1297a47a2e1a2f5f6f737ed7edcfc
MD5 24db82ea2dee933793c1c5a2a7de2330
BLAKE2b-256 a479868e5debab9279cee168929e7965d09f283023b4f3eea602c6e821fa4c85

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