vfg7 / optimization

Problema da tentativa de otimização do TSP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problema da tentativa de otimização do TSP

O caso O caso foi o retirado da página:http://www.math.uwaterloo.ca/tsp/world/countries.html

Os desafios do caso:

  • O TSP (traveling salesperson problem) é um algoritmo famoso conhecido por sua complexidade fazendo com que sua otimização, por si só, já seja um desafio. (Pra mais infos: https://en.wikipedia.org/wiki/Travelling_salesman_problem)

  • Para tentar contornar a complexidade do TSP, foi usado o caso de menor tamanho, o exemplo do Saara Ocidental, cujo mapeamento consta apenas 29 cidades.

O algoritmo de otimização utilizado foi o algoritmo da têmpera simulada (simulated annealing). A calibração do algoritmo envolveu:

  • estudar os dados do problema e escolher valores da temperatura para garantir uma função de resfriamento compatível com comportamento do problema
  • já é sabido que percorrer todas as combinações até achar o caminho mais curto vai levar tempo exponencial. Então, para tentar melhorar as chances do algoritmo acertar o caminho ótimo, foi adicionado um fator para tentar gerar escolhas aleatórias (não-determinísticas)

Documentação O projeto foi feito em Python, versão 3.7.0

Foram usadas as bibliotecas:

  • math
  • random

O projeto foi feito no pycharm, então, clonar este repositório e abrir como um novo projeto na referida IDE deve ser o bastante para sua reprodução

Próximos passos

  • Por mais que esteja comentado, reconheço que o código precisa de uma refatoração, seja para reescrever alguns métodos de forma mais sucinta, seja para ajudar na legibilidade do código

  • Muitas funções foram implementadas do zero e não busquei bibliotecas para o problema, deixando o código em baixo nível. Enquanto considero que há notáveis vantagens em implementar seu código, também reconheço que o uso de bibliotecas e funções pode facilitar a resolução do problema.

About

Problema da tentativa de otimização do TSP


Languages

Language:Python 99.6%Language:Tcl 0.4%Language:PowerShell 0.0%Language:Batchfile 0.0%