Skip to main content

AutoTuner: A Self-Optimizing Algorithm Engine

Project description

๐Ÿ”ง 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

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

autotuner_core-0.1.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autotuner_core-0.1.1-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file autotuner_core-0.1.1.tar.gz.

File metadata

  • Download URL: autotuner_core-0.1.1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for autotuner_core-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6236ced30a5d57709e5e90e943aac9d5d17564a4e1caaaaa4b21fdf40cf1294b
MD5 f61079818d6cd84fa7af9710eaa38031
BLAKE2b-256 d3f580fd15f9f2146a9a27f0f1136e9d037847168664e4a1a11afe7339d3f5c5

See more details on using hashes here.

File details

Details for the file autotuner_core-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: autotuner_core-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for autotuner_core-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c35d88f0b563ae7b87716354f143ced375a0c9dedbdd171ee807130bd0e2051d
MD5 ec80fb13e21c8c5b553901e509ae6c5d
BLAKE2b-256 d499d6ceb410e954326ef390ab6dff22662755e27e7e844f47b6104f77955a5f

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