Este projeto implementa um Algoritmo Genético, técnica de Inteligência Artificial e Machine Learning, para resolver problemas de otimização de rotas (semelhante ao Problema do Caixeiro Viajante). A aplicação gera conjuntos de pontos com distribuições uniforme ou circular, evolui populações de rotas e salva gráficos do progresso e da melhor solução.
-
Geração de pontos aleatórios:
- Distribuição uniforme
- Distribuição circular
-
Implementação completa de Algoritmo Genético:
- Seleção por torneio
- Crossover por ordenamento de subtour
- Mutação por troca de genes
-
Cálculo de fitness baseado na distância total da rota
-
Visualização:
- Gráfico da melhor rota
- Gráfico da evolução da distância ao longo das gerações
-
Salvamento automático de gráficos com nomes incrementais e informações de tempo de execução
-
Python 3.7+
-
Bibliotecas:
numpy(cálculo numérico)matplotlib(visualização)random,os,time(suporte)
- Python 3.7 ou superior
numpyematplotlibinstalados:
pip install numpy matplotlib- Clone o repositório e navegue até a pasta do projeto:
git clone https://github.com/enzoconsulo/Python.IA-OtimizacaoRotas.git
cd Python.IA-OtimizacaoRotas/
── genetic2.py # Implementação do Algoritmo Genético
── distribuida/ # Imagem gerada com pontos e resultados para distribuição uniforme
── circular/ # Imagem gerada com pontos e resultados para distribuição circular
─ README.md # Documentação do projeto
A seguir, alguns exemplos de gráficos gerados automaticamente pelo Algoritmo Genético:
- Distribuição Circular:
Gráfico da melhor rota para pontos dispostos em círculo e evolução da distância ao longo das gerações.
- Distribuição Uniforme:
Gráfico da melhor rota para pontos distribuídos uniformemente em um espaço 2D e progresso do algoritmo.

