/kruskal

Algoritmo Kruskal

Primary LanguageJupyter Notebook

Kruskal

Contexto do problema

Era o ano de 1985 e o jovem Pedro Manhãs estava em busca de um disco de jazz com as músicas favoritas da sua mãe. Ela tinha acabado de completar 50 anos e era uma grande amante da música. Pedro queria presentear sua mãe com algo especial e sabia que esse disco seria perfeito. No entanto, ele também era muito cuidadoso com seu dinheiro e queria comprar o disco pelo menor preço possível. Assim, ele decidiu visitar todas as 1000 lojas que vendiam disco de jazz do estado para encontrar o disco pelo melhor preço e garantir que sua mãe ficasse feliz e satisfeita. O desafio era encontrar o menor caminho possível para percorrer todas essas lojas. Pedro passou dias planejando sua rota, estudando mapas e decidiu utilizar uma tópico que ele havia acabado de aprender na faculdade, o algoritmo de Kruskal. Então, ele criou um grafo com cada loja sendo um vértice, formou milhares de arestas entre duas lojas, a distância de duas lojas sendo o peso e programou o algoritmo de Kruskal para lhe informar o menor caminho possível para ele. Depois de muito esforço, ele finalmente conseguiu ter a rota que passava por todas as lojas que vendiam disco de jazz no estado percorrendo a menor distância possível. Com sua rota definida, ele partiu em sua busca pelo disco de jazz. Ele visitou cada loja com cuidado, perguntando aos vendedores sobre o disco que procurava e comparando preços em cada uma das lojas. Após visitar todas as 1000 lojas, Pedro finalmente encontrou o disco pelo menor preço em uma pequena loja no centro da cidade. Ele comprou o disco e correu para casa para dar o presente para sua mãe. Ela ficou extremamente feliz e agradecida pelo esforço do seu filho em encontrar um presente tão especial. Pedro sentiu-se muito feliz e satisfeito em ter feito sua mãe feliz e em ter completado o desafio de visitar todas as lojas que vendiam disco de jazz do estado percorrendo a menor distância possível. Com esse projeto, ele aprendeu a importância de perseverar e buscar seus objetivos, mesmo que isso envolva um grande desafio. Ele também aprendeu a valorizar o tempo e esforço investidos na realização de um projeto importante e significativo.

Implementação

Algoritmo utilizado:

Algoritmo de Kruskal - Árvore geradora mínima

Desenvolvimento:

Primeiramente foi escolhida uma base de dados para realizar o projeto. Após isso, foi iniciado o desenvolvimento do algoritmo de Kruskal. Feita a parte principal, que era resolver o problema mst, partimos para a visualização do grafo gerado a partir do algoritmo utilizando as bibliotecas networkx e matplotlib. Para finalizar, foi desenvolvido uma interface gráfica com pysimplegui que permite a visualização do projeto construído.

Bibliotecas utilizadas:

Foram usados networkx, matplotlib para criar o grafo mst e PySimpleGUI para criar a interface gráfica