Logo Lanfrica

reyhanehhashemi/Genetic-Algorithm-TSP-Solver

Record type:

software
Creator:
rey
Host:
Genetic Algorithm implementation to solve the Traveling Salesperson Problem (TSP) using real-world geographic coordinates (Djibouti dataset). # Genetic-Algorithm-TSP-Solver Genetic Algorithm implementation to solve the Traveling Salesperson Problem (TSP) using real-world geographic coordinates (Djibouti dataset). # TSP Genetic Algorithm A Python implementation of a Genetic Algorithm for solving the Traveling Salesman Problem (TSP). ## Overview This project provides a complete genetic algorithm framework specifically designed for solving TSP instances. The algorithm includes multiple selection, crossover, and mutation strategies that preserve permutation integrity - essential for TSP solutions. ## Features ### Genetic Algorithm Components - **Selection Strategies**: Tournament, Roulette Wheel, Rank-based selection - **Crossover Methods**: One-point, Two-point, Uniform crossover (permutation-preserving) - **Mutation Operators**: Swap, Inversion, Scramble mutations - **Customizable Parameters**: Population size, generations, mutation/crossover rates ### TSP-Specific Functionality - Distance matrix calculation from city coordinates - Route distance computation with closed tour handling - Fitness function as inverse of total distance - Visualization tools for routes and algorithm performance ## Project Structure ``` ├── genetic.py # Core genetic algorithm implementation ├── utils.py # TSP utilities (distance calc, population generation, plotting) ├── main.py # Example usage and execution script ├── .gitignore # Python and development environment ignores └── data/ # Directory for TSP dataset files ``` ## Usage 1. Place TSP dataset files in the `data/` directory 2. Configure parameters in `main.py`: - Dataset filename - Population size - Number of generations - Genetic operator rates and strategies 3. Run the algorithm: ```bash python main.py ``` ## Key Functions - `GeneticAlgorithm`: Main algorithm class with configurable operators - `read_dataset()`: Reads TSP instance files - `create_distance_matrix()`: Precomputes pairwise distances - `genera …