Giter VIP home page Giter VIP logo

genetic-tsp's Introduction

Genetic-TSP

A genetic algorithm to find solutions to the Travelling Salesman Problem (TSP)

Cost over many generations: Alt_Text

Comparison of Gene pool sizes: Alt_Text

Running:

p = TestSetup()
Simulate(p,250,1500)

This will generate a random graph and evolve for 250 generations with 1500 genes, alter to custom settings if desired.

Custom graph

graph = Graph()

#To Add a city
graph.Add_City(City_Name)

#To add a road (all cities must be connected to all other cities). The cities do not need to be in order, a road between CityA and CityB is also a road between CityB and CityA.
graph.Add_Road(CityA,CityB,Cost)

#To create the population
population = Population(graph)

#To add a gene
population.Add_Gene() #Creates random gene
population.Add_Gene(Gene) # Add a custom gene , must be of form [CityW,CityX...]

#To run
results = population.Evaluate()
population.Evolve(Pass_Mark,results,New_Population_Size) # Where Pass_Mark is the largest length a 'fit' gene may have.
population.Add_Gene(Gene) # Optional

It is recommended to use a smaller population size and a high generations count in order to converge on the solution in a shorter period of time. The closer one wants to get to the optimum the larger the population should be however, as smaller populations tend to get stuck in local minima.

genetic-tsp's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.