Este projeto foi desenvolvido como trabalho da matéria de Inteligência Artificia I do professor Luis Fernando de Almeida na UNITAU.
Planejamento de abastecimento linha
- Objetivo: Rotas de trens logísticos atendendo múltiplas estações sob janelas de tempo
Esta API implementa algoritmos de busca em grafos para calcular rotas ferroviárias otimizadas, permitindo o planejamento de abastecimento considerando múltiplas estações e restrições de janelas de tempo.
Os dados utilizados foram obtidos do site oficial do governo.
Data de coleta: 8 de outubro de 2025
Os dados estão localizados na pasta dados-brasil/ e incluem:
BaseFerro.csv- Base de dados das estações ferroviáriasgrafo_bitola_Larga.json- Grafo da bitola larga (1,60m)grafo_bitola_Metrica.json- Grafo da bitola métrica (1,00m)grafo_bitola_Standart.json- Grafo da bitola padrão (1,435m)linhas_ferroviarias.geojson- Linhas ferroviárias em formato GeoJSON
- Python 3.8+ instalado
- Terminal
- Abra o terminal na pasta
locomotiva-api - Execute:
python -m venv venv - Execute:
venv\Scripts\activate(Windows) ousource venv/bin/activate(Mac/Linux) - Execute:
pip install -r requirements.txt
- Execute:
uvicorn main:app --reload - A API estará rodando em
http://localhost:8000
A documentação interativa da API está disponível em:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
POST /mapa-rota- Busca uma rota entre duas cidades e retorna dados completos para montar o mapaPOST /coordenadas-cidades- Obtém as coordenadas de múltiplas cidades de uma vezGET /coordenadas-cidade/{cidade}- Obtém as coordenadas de uma cidade específicaGET /cidades/{bitola}- Lista todas as cidades disponíveis para uma bitolaGET /rotas/{bitola}- Lista todas as rotas de uma bitola
- A API roda na porta 8000 por padrão
- O CORS está habilitado para permitir requisições do frontend
- Os dados são carregados em memória na inicialização da API