|
|
--- |
|
|
license: mit |
|
|
tags: |
|
|
- tsp |
|
|
- traveling-salesman-problem |
|
|
- combinatorial-optimization |
|
|
- ant-colony-optimization |
|
|
- metaheuristics |
|
|
- rust |
|
|
library_name: aprender-tsp |
|
|
pipeline_tag: other |
|
|
--- |
|
|
|
|
|
# aprender-tsp POC Models |
|
|
|
|
|
Pre-trained TSP (Traveling Salesman Problem) optimization models using Ant Colony Optimization, built with [aprender-tsp](https://github.com/paiml/aprender). |
|
|
|
|
|
## Models Included |
|
|
|
|
|
| Model | Instance | Cities | Optimal | Achieved | Gap | Tier | |
|
|
|-------|----------|--------|---------|----------|-----|------| |
|
|
| berlin52-aco.apr | berlin52 | 52 | 7,542 | 7,687 | 1.92% | Good | |
|
|
| att48-aco.apr | att48 | 48 | 10,628 | 11,085 | 4.30% | Acceptable | |
|
|
| eil51-aco.apr | eil51 | 51 | 426 | 443 | 4.07% | Acceptable | |
|
|
|
|
|
All models achieve < 5% gap from TSPLIB optimal solutions. |
|
|
|
|
|
## Quick Start |
|
|
|
|
|
```bash |
|
|
# Install aprender-tsp |
|
|
cargo install aprender-tsp |
|
|
|
|
|
# Download a model |
|
|
huggingface-cli download paiml/aprender-tsp-poc berlin52-aco.apr |
|
|
|
|
|
# Solve a new instance using the model |
|
|
aprender-tsp solve -m berlin52-aco.apr your-instance.tsp |
|
|
|
|
|
# View model info |
|
|
aprender-tsp info berlin52-aco.apr |
|
|
|
|
|
# Benchmark against known optimal |
|
|
aprender-tsp benchmark berlin52-aco.apr --instances berlin52.tsp |
|
|
``` |
|
|
|
|
|
## Training Parameters |
|
|
|
|
|
All models trained with identical ACO parameters for reproducibility: |
|
|
|
|
|
| Parameter | Value | Description | |
|
|
|-----------|-------|-------------| |
|
|
| Algorithm | ACO (Ant Colony Optimization) | Uses core aprender::AntColony | |
|
|
| Iterations | 2000 | Number of optimization iterations | |
|
|
| Ants | 20 | Number of artificial ants | |
|
|
| Alpha (α) | 1.0 | Pheromone importance | |
|
|
| Beta (β) | 2.5 | Heuristic importance | |
|
|
| Rho (ρ) | 0.1 | Evaporation rate | |
|
|
| Seed | 42 | Random seed for reproducibility | |
|
|
|
|
|
## Instance Sources |
|
|
|
|
|
Models are trained on standard TSPLIB benchmark instances: |
|
|
|
|
|
- **berlin52**: 52 locations in Berlin, Germany (Groetschel) |
|
|
- **att48**: 48 state capitals of the contiguous USA (Padberg/Rinaldi) |
|
|
- **eil51**: 51-city problem (Christofides/Eilon) |
|
|
|
|
|
Reference: [TSPLIB](http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/) |
|
|
|
|
|
## File Format |
|
|
|
|
|
Models use the `.apr` binary format: |
|
|
- Magic bytes: `APR\0` |
|
|
- Version: 1 |
|
|
- CRC32 checksum for integrity |
|
|
- Compact size: ~77 bytes per model |
|
|
|
|
|
## Solution Quality Tiers |
|
|
|
|
|
| Tier | Gap from Optimal | |
|
|
|------|------------------| |
|
|
| Optimal | < 0.1% | |
|
|
| Excellent | < 1% | |
|
|
| Good | < 2% | |
|
|
| Acceptable | < 5% | |
|
|
| Poor | >= 5% | |
|
|
|
|
|
## Train Your Own |
|
|
|
|
|
```bash |
|
|
# Train on your instance |
|
|
aprender-tsp train your-instance.tsp -o your-model.apr --algorithm aco --iterations 2000 --seed 42 |
|
|
|
|
|
# Or use other algorithms |
|
|
aprender-tsp train your-instance.tsp -o model.apr --algorithm tabu # Tabu Search (2-opt) |
|
|
aprender-tsp train your-instance.tsp -o model.apr --algorithm ga # Genetic Algorithm |
|
|
aprender-tsp train your-instance.tsp -o model.apr --algorithm hybrid # GA + Tabu + ACO |
|
|
``` |
|
|
|
|
|
## Citation |
|
|
|
|
|
```bibtex |
|
|
@software{aprender, |
|
|
title = {Aprender: Machine Learning in Pure Rust}, |
|
|
author = {PAIML}, |
|
|
url = {https://github.com/paiml/aprender}, |
|
|
year = {2025} |
|
|
} |
|
|
``` |
|
|
|
|
|
## License |
|
|
|
|
|
MIT License - see LICENSE file. |
|
|
|