Você está na página 1de 2

Primeiro, devemos definir o que seria uma árvore geradora minima, então temos que uma árvore

geradora ela só é minima se os o somatório dos pesos de seus arcos (e temos que esses pesos podem
ser tanto negativo quanto positivo) for menor do que qualquer outra árvore geradora. Essas árvores
geradora mínimas tbm são chamadas de MINIMUM SPANNIG TREE, ou MST. A quantidade de arestas
possíveis de serem percorridas sem que haja um ciclo seria que, dado um grafo G, que possui uma
quantidade de arestas E, ela seria uma arvore geradora minima com E -1 arestas.

Um dos algoritmos que possuem propriedades de uma Arvore geradora mínima seria o Algoritmo de
Kruskal. Esse algoritmo faz com que seja criada uma floresta geradora até que ela se torne conexa. E a
cada iteração do algoritmo, ela irá começar com uma floresta geradora F de G, e conforme o
processso vai iterando, e enquanto existir uma aresta externa iremos assumir que:
Ela irá escolher uma aresta externa que tenha custo mínimo, isso porque o Algoritmo de Kruskal se
qualifica como um algoritmo guloso, já que em cada etapa ele irá adicionar uma aresta com o menor
peso possivel. Feito isso Seja a uma aresta que iremos assumir que será escolhida, ao ser escolhida ela
será acrescentada a F.

Então como seria implementado esse código? Devemos considerar que o princípio do algoritmo é a
geração de uma floresta, antes de ser gerado uma árvore geradora mínima, e essa floresta nada mais
é do que um grafo não orientado acíclico. E para isso ela faz a busca por uma aresta segura, e o que
seria essa aresta segura? a aresta segura seria uma aresta que entre todas as arestas que conectam 2
árvores quaisquer presentes nessa floresta, essa aresta tenha o peso minimo.
Então, vendo esse pseudocódigo nós temos que a principio, o conjunto que guarda as arestas da
arvore geradora minima é vazio, na nossa linha dois, temos que para cada vertice V do nosso grafo vai
ser criado uma arvore, então o metodo make-set irá criar uma árvore de cada vertice. Além disso nós
tbm iremos ordenar essas arestas, todas essas arestas do grafo em ordem crescente por peso. Depois,
para cada aresta em E

Em cada iteração, o algoritmo escolhe uma aresta (u,v) de menor


peso que liga vertices de componentes ( que seriam essas árvores)
distintos
Ele acrescenta (u,v) ao conjunto A e começa outra iteração até que
A seja uma arvore geradora

KRUSKAL

O algoritmo de Kruskal faz crescer uma floresta geradora até que ela se torne conexa. Uma
subfloresta de um grafo não-dirigido G é qualquer floresta que seja subgrafo não-dirigido de G. Uma
floresta geradora de G é qualquer subfloresta que tenha o mesmo conjunto de vértices que G. Uma
aresta a de G é externa a uma floresta geradora F se a não pertence a F e o grafo F + a é uma
floresta, ou seja, um grafo sem circuitos. Portanto, uma aresta é externa a F se tem uma ponta em
uma componente conexa de F e outra ponta em outra componente.

Cada iteração do algoritmo de Kruskal começa com uma floresta geradora F de G. O processo
iterativo é muito simples: enquanto existe alguma aresta externa,
1. escolha uma aresta externa que tenha custo mínimo;
2. seja a a aresta escolhida;
3. acrescente a a F.

No início da primeira iteração, cada componente conexa da floresta F tem apenas um vértice. No fim
do processo iterativo, F é conexa, uma vez que G é conexo e não há arestas externas a F.

GULOSO
Um algoritmo guloso escolhe, em cada iteração, o objeto mais apetitoso que vê pela frente. (A
definição de apetitoso é estabelecida a priori, antes da execução do algoritmo.) O objeto escolhido
passa a fazer parte da solução que o algoritmo constrói.

Um algoritmo guloso é míope: ele toma decisões com base nas informações disponíveis na iteração
corrente, sem olhar as consequências que essas decisões terão no futuro. Um algoritmo guloso jamais
se arrepende ou volta atrás: as escolhas que faz em cada iteração são definitivas.

LINKS

https://drive.google.com/drive/folders/119VFZP60BdEnFDRdYNbsWJXm5iRALurz

https://en.wikipedia.org/wiki/Kruskal%27s_algorithm
https://drive.google.com/file/d/1G6MNy4PGn0wu70vLW7CHa0_1MflceYC0/view

https://sameer9247.wordpress.com/2016/11/15/minimum-spanning-tree/
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/mst.html
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/kruskal.html
https://www.ime.usp.br/~pf/analise_de_algoritmos/aulas/guloso.html
https://www.ft.unicamp.br/~magic/analisealgo/apoalgoritmos_ceset_magic.pdf
https://edisciplinas.usp.br/pluginfile.php/5371024/mod_resource/content/2/10.%20%C3%81rvores
%20geradoras%20m%C3%ADnimas.pdf
http://www.facom.ufms.br/~marco/analise2007/aula1718-4.pdf
https://www.inf.ufrgs.br/~mrpritt/lib/exe/fetch.php?media=cmp155:notas-10619.pdf

https://livrozilla.com/doc/752663/%C3%A1rvores

Você também pode gostar