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
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-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bb6c04f15975059d1cd26c4fe6e69ae6755dde85335d9d76b78d19f197ce054
|
|
| MD5 |
ca9ffa535b3da1fc02ddb9a17f27c12d
|
|
| BLAKE2b-256 |
90564533504d800f5ada23b2630ddda818593f9b3ae2aaea803b16b27cb8a40d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1796978e0dbcea08cc8c1936f29ddf32fc89110a391dbc3c610cc05dd59afcc7
|
|
| MD5 |
a73ae4cce9b929dee389dc30d658c765
|
|
| BLAKE2b-256 |
ac3d41f114ecbc061d87bb35ea0e42a87d7c6475b6c0d2b1ade457d684197957
|