serrodcal-data-scientist / DEAP_Python_PoC

Proof of concept about DEAP in Python in order to solve TSP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DEAP_Python_PoC

Build Status Coverage Status Code Health

This project is a proof of concept about DEAP in Python developed by Fernando Jiménez and Sergio Rodríguez.

Goals

  • Learn DEAP library.
  • Learn Artificial Intelligence techniques.
  • Learn genetic algorithm.
  • And the most important, have fun.

The problem

A company needs to solve the Travelling salesman problem or TSP. It needs to know the shortest route to deliver orders daily. This problem is NP-hard, so the company wants us to solve this problem using some artificial intelligence technique.

Its headquarter is located in Seville, and they deliver orders for Andalusia. Simplify, is able to go from any point to any other point using the Euclidean distance.

Note, that this problem is focused as local search or optimization problem. And, it is not necessary to start deliveries from the company's headquarter.

First, a dictionary with the provinces and their coordinates is provided:

andalusia = {
                  "Almeria": (409.5,93),
                  "Cadiz": (63,57),
                  "Cordoba": (198,207),
                  "Granada": (309,127.5),
                  "Huelva": (3,139.5),
                  "Jaen": (295.5,192),
                  "Malaga": (232.5,75),
                  "Seville": (90,135)
              }

Please, use any CI technology with coverage and code quality, and complete more section in README.md like solution section and how to execute the solution.

The solution

Two ways of solving this problem are proposed:

  1. Using DEAP to implement a classic Genetic Algorithm.
  2. Using proprietary implementation of the Simulated Annealing algorithm.

How to execute it?

Technologies

In progress.

Prerequisites

In progress.

Run by console

In progress.

Do you prefer docker?

In progress.

About

Proof of concept about DEAP in Python in order to solve TSP

License:MIT License


Languages

Language:Python 100.0%