Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

MrBElga/primAlgorithm

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algoritmo de Prim - Árvore Geradora Mínima (AGM)

Este projeto implementa o Algoritmo de Prim para encontrar a Árvore Geradora Mínima de um grafo não direcionado. O grafo é lido a partir de um arquivo texto, e a saída inclui o custo total e a árvore geradora mínima.

📜 Descrição

O Algoritmo de Prim é um método guloso utilizado para encontrar a árvore geradora mínima de um grafo. Ele funciona expandindo uma árvore a partir de um vértice inicial, conectando-a aos vértices ainda não incluídos, sempre escolhendo a aresta de menor peso.

⚙️ Funcionamento do Algoritmo

  1. Entrada:
    • Um arquivo texto contendo:
      • O número de vértices n e o número de arestas m.
      • Uma lista de arestas, cada uma no formato: vértice1 vértice2 peso.
  2. Saída:
    • O custo total da árvore geradora mínima.
    • A lista de arestas que compõem a árvore geradora mínima.

📥 Exemplo de Entrada

Arquivo grafo1.txt: 5 7 0 1 2 0 3 6 1 2 3 1 3 8 1 4 5 2 4 7 3 4 9

shell Copiar código

📤 Exemplo de Saída

Custo Total 16

Árvore Geradora Mínima [(0, 1), (1, 2), (1, 4), (0, 3)]

markdown Copiar código

🚀 Execução

Pré-requisitos

  • Python 3.x instalado.

Instruções

  1. Clone o repositório ou faça o download do código.
  2. Crie um arquivo texto de entrada com o formato especificado.
  3. No terminal, execute o script da seguinte forma:
python prim.py

Quando solicitado, insira o nome do arquivo de entrada (ex: grafo1.txt). Estrutura de Arquivos bash Copiar código

├── prim.py # Script principal contendo o algoritmo de Prim ├── grafo1.txt # Exemplo de arquivo de entrada ├── LICENSE.md # Licensa do MIT └── README.md # Este arquivo

🛠️ Explicação do Código

ler_arquivo(filename): Lê o arquivo de entrada e converte-o em uma lista de adjacência para ser usada no algoritmo. prim(n, n_out): Executa o algoritmo de Prim, utilizando uma fila de prioridade para selecionar as arestas de menor peso. heapq: Utilizado para gerenciar a fila de prioridade de maneira eficiente.

💡 Exemplo de Uso

Considere o seguinte grafo com 5 vértices e 7 arestas. A partir dele, o algoritmo de Prim encontra a árvore geradora mínima com um custo total de 16.

2       3

0 ------ 1 ----- 2 | / |
6 8 5 7 | / |
3 -- 4 ---- 9

Grafo de Entrada (grafo1.txt)

Copiar código
5 7
0 1 2
0 3 6
1 2 3
1 3 8
1 4 5
2 4 7
3 4 9
Saída

saida

Custo Total

16

Árvore Geradora Mínima

[(0, 1), (1, 2), (1, 4), (0, 3)]

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.