-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path__init__.py
More file actions
76 lines (63 loc) · 2.16 KB
/
__init__.py
File metadata and controls
76 lines (63 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
"""
Algorithm Recommender System
============================
A research-grade algorithm recommendation system that automatically selects
the optimal algorithm for sorting, array searching, and graph searching
problems based on instance-level feature extraction and machine learning.
Key Features:
- Automatic feature extraction from raw input (no precomputed features needed)
- ML-based algorithm selection using RandomForest classifiers
- Strict correctness constraints for searching algorithms
- Human-readable explanations for all recommendations
- Modular, extensible architecture
Domains Supported:
1. SORTING: Insertion, Selection, Merge, Quick, Heap Sort
2. ARRAY SEARCHING: Linear, Binary, Jump, Exponential Search
3. GRAPH SEARCHING: BFS, Dijkstra, Bellman-Ford, A*
Quick Start:
from algorithm_recommender import AlgorithmRecommender
recommender = AlgorithmRecommender()
recommender.train_all() # Or load_models() if pre-trained
# Sorting
result = recommender.recommend_sorting([5, 2, 8, 1, 9])
print(result['algorithm'], result['explanation'])
# Array search
result = recommender.recommend_array_search([1, 2, 3, 4, 5])
# Graph search
graph = {0: [(1, 1.0)], 1: [(2, 1.0)], 2: []}
result = recommender.recommend_graph_search(graph)
Author: Algorithm Recommender Research Team
Version: 1.0.0
License: MIT
"""
__version__ = '1.0.0'
__author__ = 'Algorithm Recommender Research Team'
from .unified_interface import AlgorithmRecommender
# Make key classes easily accessible
from .sorting import (
SortingRecommender,
SortingFeatureExtractor,
SORTING_ALGORITHMS
)
from .searching.array_search import (
ArraySearchRecommender,
ArraySearchFeatureExtractor,
ARRAY_SEARCH_ALGORITHMS
)
from .searching.graph_search import (
GraphSearchRecommender,
GraphSearchFeatureExtractor,
GRAPH_SEARCH_ALGORITHMS
)
__all__ = [
'AlgorithmRecommender',
'SortingRecommender',
'SortingFeatureExtractor',
'SORTING_ALGORITHMS',
'ArraySearchRecommender',
'ArraySearchFeatureExtractor',
'ARRAY_SEARCH_ALGORITHMS',
'GraphSearchRecommender',
'GraphSearchFeatureExtractor',
'GRAPH_SEARCH_ALGORITHMS'
]