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 — Artificial Intelligence Algorithms in Python

The AIMA Toolkit is a personal project that re-implements and extends the algorithms described in Artificial Intelligence: A Modern Approach (4th Edition) by Russell & Norvig — written entirely from scratch in Python.

It serves as a modular foundation for AI experimentation, algorithm benchmarking, and educational purposes.
The package is now published on PyPI and will continue to expand over time with detailed documentation and advanced examples.

📘 Note: As of now, there is no documentation available since this is a solo projects. But I will make one as I continue to make progress in the development of this repository


📦 Installation

Available on PyPI:

pip install aima-toolkit

🧩 Current Capabilities

The AIMA Toolkit currently supports a growing suite of intelligent agents, search algorithms, and problem-solving paradigms.

🤖 Search Agents

Supports the creation of both simple and advanced agents, including:

  • Sensorless Search Agents
  • Partially Observable Agents
  • Fully Observable Agents
  • Deterministic and Non-Deterministic Agents
  • Online and Offline Agents
  • Informed & Uninformed Search Variants

Each agent type can be combined with search strategies such as A*, BFS, DFS, Uniform-Cost, Greedy Best-First, Iterative Deepening, and much more.


🔢 Constraint Satisfaction Problems (CSP)

The toolkit includes a fully modular CSP framework, allowing easy definition and solving of different constraint types:

  • Variable and domain registration
  • AllDiff, Binary, and Custom constraints

🧮 Local Search

Implements a wide range of local search algorithms, including:

  • Hill Climbing (with and without random restarts)
  • Simulated Annealing
  • Stochastic Beam Search
  • Genetic Algorithms (planned extension)

These algorithms are designed for optimization, learning, and CSP problems where global solutions are infeasible to compute directly.


🧠 Demonstration Projects

To showcase the toolkit’s power, I’ve developed two full-featured projects based entirely on this framework:

Project Description Repository
🧩 N-Puzzle Solver A Disjoint Pattern Database (PDB) enhanced N-Puzzle solver built on top of the AIMA Toolkit’s A* infrastructure. 🔗 View on GitHub
🔢 Sudoku All-in-One A comprehensive Sudoku CSP solver supporting Classic, Diagonal, Kropki, and German Whispers variants — using advanced constraint propagation from AIMA Toolkit. 🔗 View on GitHub

These serve as live examples of the toolkit’s modularity and its use in building powerful AI applications.


🧬 Project Philosophy

This project aims to create a comprehensive, modular, and educational AI framework that remains close to theoretical foundations while being practical for modern Python environments.

Core principles:

  • 🧩 Readable and modular implementations
  • 🧠 Faithful to algorithmic definitions from AIMA (4th Ed.)
  • ⚙️ Designed for learning, experimentation, and scalability

💬 Author

Emre Arapčić-Uevak
📍 Bosnia & Herzegovina
🎓 Computer Science & Engineering — International University of Sarajevo
🔗 GitHub Profile


🪶 License

This project is licensed under the MIT License.
See LICENSE for details.

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-2.1.2.tar.gz (30.1 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-2.1.2-py3-none-any.whl (42.6 kB view details)

Uploaded Python 3

File details

Details for the file aima_toolkit-2.1.2.tar.gz.

File metadata

  • Download URL: aima_toolkit-2.1.2.tar.gz
  • Upload date:
  • Size: 30.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for aima_toolkit-2.1.2.tar.gz
Algorithm Hash digest
SHA256 1bb6c04f15975059d1cd26c4fe6e69ae6755dde85335d9d76b78d19f197ce054
MD5 ca9ffa535b3da1fc02ddb9a17f27c12d
BLAKE2b-256 90564533504d800f5ada23b2630ddda818593f9b3ae2aaea803b16b27cb8a40d

See more details on using hashes here.

File details

Details for the file aima_toolkit-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: aima_toolkit-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 42.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for aima_toolkit-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1796978e0dbcea08cc8c1936f29ddf32fc89110a391dbc3c610cc05dd59afcc7
MD5 a73ae4cce9b929dee389dc30d658c765
BLAKE2b-256 ac3d41f114ecbc061d87bb35ea0e42a87d7c6475b6c0d2b1ade457d684197957

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