Este projeto consiste em um sistema que auxilia os usuários na navegação pelo metrô de Munique, fornecendo informações sobre o trajeto mais rápido entre duas estações desejadas. O sistema utiliza o algoritmo de Bellman-Ford para encontrar o caminho mais curto entre as estações, além de permitir a visualização do mapa das estações e caminhos disponíveis.
- Python: Linguagem de programação utilizada para o desenvolvimento do sistema.
- Tkinter: Biblioteca padrão do Python para criação de interfaces gráficas.
- NetworkX: Biblioteca para manipulação de estruturas de redes, utilizada para visualizar o grafo das estações e caminhos.
- Matplotlib: Biblioteca para criação de gráficos e visualização de dados, utilizada em conjunto com o NetworkX para exibir o mapa das estações.
- CSV: Formato de arquivo utilizado para armazenar os dados das estações e caminhos do metrô de Munique.
Para executar o projeto, siga os passos abaixo:
-
Certifique-se de ter o Python instalado em seu sistema. Você pode baixá-lo aqui.
-
Clone este repositório para o seu ambiente local:
git clone https://github.com/rafaelmourato/algoritimos.git
- Navegue até o diretório do projeto:
cd algoritmos
- Instale as dependências do projeto utilizando o pip (gerenciador de pacotes do Python):
pip install matplotlib networkx
Para sistemas Windows, o tkinter geralmente é instalado junto com o Python. No entanto, se você estiver enfrentando problemas, siga estas etapas:
- Verifique se o tkinter está disponível digitando o seguinte comando no prompt de comando:
python -m tkinter
- Se o tkinter não estiver disponível, você pode instalar o Python novamente usando o instalador oficial do Python (disponível em python.org). Durante a instalação, certifique-se de marcar a opção para instalar o tkinter.
Para sistemas macOS, o tkinter também é incluído na maioria das distribuições do Python. No entanto, se você estiver tendo problemas, siga estas etapas:
- Verifique se o tkinter está disponível digitando o seguinte comando no terminal:
python3 -m tkinter
- Se o tkinter não estiver disponível, você pode instalar o Python novamente usando o Homebrew (um gerenciador de pacotes para macOS) e garantir que o tkinter seja instalado. Primeiro, instale o Homebrew se ainda não o tiver:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Em seguida, instale o Python com o suporte ao tkinter usando o Homebrew:
brew install python-tk
Para sistemas Linux, o tkinter geralmente não é incluído por padrão e precisa ser instalado separadamente. Aqui está como fazer isso em diferentes distribuições Linux:
- Abra um terminal e atualize o índice de pacotes:
sudo apt update
- Instale o pacote do tkinter:
sudo apt install python3-tk
Após a instalação das dependências, execute o projeto com o seguinte comando:
python main.py
Isso abrirá a interface gráfica do sistema, onde você poderá inserir a estação de origem e destino desejada para encontrar o menor caminho no metrô de Munique. Como também, visualizar as estações do metrô de Munique e caminho mais curto em formato de grafo.
O desenvolvimento deste projeto seguiu os seguintes passos:
-
Análise de Requisitos: Compreensão dos requisitos do projeto, incluindo funcionalidades necessárias e tecnologias a serem utilizadas.
-
Estruturação do Projeto: Definição da estrutura de diretórios e arquivos do projeto, incluindo a separação por módulos (Classes, Funções, Bellman Ford, Visualizar, Main).
-
Implementação dos Módulos: Desenvolvimento das classes, funções e algoritmo de Bellman-Ford para manipulação dos dados e cálculo do menor caminho.
-
Interface Gráfica: Implementação da interface gráfica utilizando a biblioteca Tkinter, incluindo a entrada de dados pelo usuário e exibição dos resultados.
-
Visualização do Grafo: Desenvolvimento da visualização do grafo das estações e caminhos utilizando as bibliotecas NetworkX e Matplotlib.
-
Testes e Depuração: Realização de testes para garantir o funcionamento correto do sistema e correção de eventuais erros ou bugs.
-
Documentação: Elaboração da documentação do projeto, incluindo este arquivo README.md e comentários nos códigos para facilitar a compreensão e manutenção do sistema.
Este projeto está licenciado sob a Licença MIT.