🔧 AutoTuner: Intelligent Algorithm Recommender
AutoTuner is a smart algorithm recommendation engine that analyzes input data (arrays or graphs) and selects the most efficient algorithm based on structural and statistical features. It is designed to assist developers, educators, and learners in choosing optimal algorithms without manual trial and error.
⚠️ Note: This is a beta release of Version 1.0 intended for testing.
🐞 Please report any bugs or provide feedback to help improve stability and performance.
🚀 Key Features
📊 Sorting Engine
Selects the most suitable sorting algorithm based on data features such as size, value range, and sortedness.
Algorithms supported:
- Insertion Sort
- Merge Sort
- Quick Sort
- Counting Sort
- TimSort
🕸️ Graph Engine
Analyzes the graph's structure and properties to recommend ideal algorithms for traversal, shortest path, or cycle detection.
Algorithms supported:
- BFS
- DFS
- Dijkstra (Heap/Matrix)
- Topological Sort
- Cycle Detection
- Union-Find Cycle Check
Graph features detected:
- Directed/Undirected graphs
- Weighted/Unweighted edges
- Cycles
- Density and connectivity
💻 CLI Tools
autotuner-sort— Recommends and runs the best sorting algorithmautotuner-graph— Detects graph type and runs the most suitable graph algorithm- Accepts JSON input for graphs
- Supports graph visualizations via
networkxandmatplotlib
📦 Installation
git clone https://github.com/koushik-mahamkali/autotuner
cd autotuner-engine
pip install -e .
⚙️ Usage Examples
✅ Sorting Example
autotuner-sort --input "[10, 3, 5, 1, 2]"
Expected Output:
✅ Recommended Algorithm: Quick Sort
➡️ Sorted Output: [1, 2, 3, 5, 10]
🧠 Graph Analysis Example
Create a file named graph.json with the following content:
{
"directed": true,
"weighted": false,
"nodes": 4,
"edges": [[0, 1], [1, 2], [2, 3]]
}
Then run:
autotuner-graph --input graph.json
Expected Output (example):
🔍 Graph Analysis Complete
➡️ Detected: Directed, Unweighted, Acyclic
✅ Recommended Algorithm: Topological Sort
🧠 Behind the Scenes
AutoTuner uses a combination of feature extractors and rule-based heuristics to:
- Score array "sortedness"
- Detect graph density, direction, cycles, and edge weights
- Route the input to the optimal algorithm with explainability
📂 Project Structure
autotuner/
├── autotuner/
│ ├── sort_engine.py
│ ├── graph_engine.py
│ ├── graph_features/
│ ├── sort_features/
│ ├── visualizers/
│ └── logger.py
├── cli/
│ ├── autotuner_sort.py
│ └── autotuner_graph.py
├── examples/
├── tests/
├── README.md
📊 Visualization
AutoTuner generates clean and interpretable graph visualizations using:
networkxmatplotlib
✅ Why Use AutoTuner?
- ⚙️ Automation — No need to guess; AutoTuner picks the best-fit algorithm
- 📈 Efficiency — Decisions are based on key data features
- 👨🏫 Educational — Understand why a specific algorithm fits your input
- 🧩 Extensible — Add new algorithms or decision rules easily
🤝 Contributing
Contributions are welcome!
If you find bugs or want to enhance the engine, feel free to open an issue or submit a pull request.
📄 License
This project is licensed under the MIT License.
📬 Contact
Krishna Koushik Mahamkali
📧 LinkedIn
📁 GitHub Portfolio
Metadata
Release files for autotuner-core 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| autotuner_core-0.1.1.tar.gz | 15.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| autotuner_core-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.5 kB
Release files / autotuner_core-0.1.1.tar.gz
| Download URL | autotuner_core-0.1.1.tar.gz |
|---|---|
| Size | 15.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6236ced30a5d57709e5e90e943aac9d5d17564a4e1caaaaa4b21fdf40cf1294b
|
|
BLAKE2b-256 checksum How to use checksums |
d3f580fd15f9f2146a9a27f0f1136e9d037847168664e4a1a11afe7339d3f5c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / autotuner_core-0.1.1-py3-none-any.whl
| Download URL | autotuner_core-0.1.1-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c35d88f0b563ae7b87716354f143ced375a0c9dedbdd171ee807130bd0e2051d
|
|
BLAKE2b-256 checksum How to use checksums |
d499d6ceb410e954326ef390ab6dff22662755e27e7e844f47b6104f77955a5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|