Skip to main content

🔧 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 algorithm
  • autotuner-graph — Detects graph type and runs the most suitable graph algorithm
  • Accepts JSON input for graphs
  • Supports graph visualizations via networkx and matplotlib

📦 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:

  • networkx
  • matplotlib

✅ 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)

Source distribution for autotuner-core 0.1.1
File Size Uploaded
autotuner_core-0.1.1.tar.gz 15.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for autotuner-core 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page