ALGORITMOS DE KRUSKAL Y PRIM

Download Report

Transcript ALGORITMOS DE KRUSKAL Y PRIM

ALGORITMOS
DE KRUSKAL Y
PRIM
JULIÁN RICARDO CÁRDENAS
FERNANDO PEREZ TORRES
ELKIN YAMITH BARRERA
GRAFOS
 Un
grafo es un conjunto de puntos
(vértices) en el espacio, que están
conectados por un conjunto de líneas
(aristas).
Terminología de Grafos










Una arista se representa por los vértices que conecta. La arista 3
conecta los vértices b y d, y se representa por A(b,d).
Algunos vértices pueden conectar un nodo consigo mismo; por
ejemplo, el vértice d tiene el formato V(d,d). Estas aristas se
denominan bucles
Al número de vértices que tiene un grafo se le llama orden del
grafo
Un grafo nulo es un grafo de orden 0
Dos vértices son adyacentes si hay un arco que los une.
Un camino es una secuencia de uno o más arcos que
conectan 2 nodos.
Un grafo es dirigido cuando los arcos tienen dirección.
Un grafo es no-dirigido cuando los arcos no tienen dirección.
La longitud de un camino es el nº de arcos que comprende.
Un camino simple es, si todos los vértices usados son distintos
excepto el1ero y el último que se permite sean idénticos.
Tipos de Grafos



Existen dos tipos de grafos los no dirigidos y los
dirigidos.
• No dirigidos: son aquellos en los cuales los lados
no están orientados (No son flechas). Cada lado se
representa entre paréntesis, separando sus vértices
por comas, y teniendo en cuenta (Vi,Vj)=(Vj,Vi).
• Dirigidos: son aquellos en los cuales los lados están
orientados (flechas). Cada lado se representa entre
ángulos, separando sus vértices por comas y
teniendo en cuenta <Vi ,Vj>!=<Vj ,Vi>. En grafos
dirigidos, para cada lado <A,B>, A, el cual es el
vértice origen, se conoce como la cola del lado y
B, el cual es el vértice destino, se conoce como
cabeza del lado.
ÁRBOLES DE
EXPANSIÓN MÍNIMOS

es aquel que obtenemos en un grafo conexo y sin ciclos. Árbol
de máximo alcance cuyo valor es mínimo, es decir, la suma de
sus aristas es mínima.






Árbol es un grafo en el que existe un único nodo desde el que
se puede acceder a todos los demás y cada nodo tiene un
único predecesor, excepto el primero, que no tiene ninguno.
También podemos definir un árbol como:
Un grafo conexo y sin ciclos.
Un grafo sin ciclos y con n-1 aristas, siendo n el número de
vértices.
Grado de un nodo en un árbol es el número de subárboles de
aquel
nodo.
Denominamos hojas en un árbol a los nodos finales (v3, v5 y v6).
Un árbol de máximo alcance
ROBERT PRIM


Nació en 1921, Sweetwater, (Estados Unidos)
es un matemático e ingeniero informático.
Robert Prim en 1957 descubrió un algoritmo
para la resolución del problema del Árbol de
coste total mínimo(minimum spanning tree MST). Este problema es un problema típico de
optimización
combinatoria,
que
fue
considerado originalmente por Otakar Boruvka
en 1926 mientras estudiaba la necesidad de
electrificación rural en el sur de Moravia en
Checoslovaquia. Este problema también fue
resuelto por Joseph B. Kruskal en 1956.
Joseph KRUSKAL


Joseph B. Kruskal investigador del Math
Center (Bell-Labs), que en 1956 descubrió su
algoritmo para la resolución del problema del
Árbol de coste total mínimo (minimum
spanning tree - MST) también llamado árbol
recubridor euclídeo mínimo.
El objetivo del algoritmo de Kruskal es
construir un árbol (subgrafo sin ciclos)
formado
por
arcos
sucesivamente
seleccionados de mínimo peso a partir de un
grafo con pesos en los arcos.
 El
Algoritmo de Kruskal que resuelve
la misma clase de problema que el
de Prim, salvo que en esta ocasión
no partimos desde ningún nodo
elegido al azar. Para resolver el
mismo problema lo que hacemos es
pasarle a la función una lista con las
aristas ordenada de menor a
mayor, e iremos tomando una para
formar el ARM.
ALGORITMO DE PRIM

El algoritmo incrementa continuamente el
tamaño de un árbol, comenzando por un
vértice inicial al que se le van agregando
sucesivamente vértices cuya distancia a los
anteriores es mínima. Esto significa que en cada
paso, las aristas a considerar son aquellas que
inciden en vértices que ya pertenecen al árbol.

El árbol recubridor mínimo está completamente
construido cuando no quedan más vértices por
agregar.
Objetivo de Algoritmo prim
 Encontrar
el árbol recubridor más corto
Requisitos
—
Ser
un grafo conexo
—
Ser
un grafo sin ciclos
—
Tener
todos los arcos etiquetados.
 La
idea básica consiste en añadir, en
cada paso, una arista de peso mínimo a
un árbol previamente construido. Más
explícitamente:
 Paso 1. Se elige un vértice u de G y se
considera el árbol S={u}
 Paso 2. Se considera la arista e de mínimo
peso que une un vértice de S y un vértice
que no es de S, y se hace S=S+e
 Paso 3. Si el nº de aristas de T es n-1 el
algoritmo termina. En caso contrario se
vuelve al paso 2
ALGORITMO DE KRUSKAL

El algoritmo de Kruskal permite hallar el árbol
minimal de cualquier grafo valorado (con
capacidades). Hay que seguir los siguientes
pasos:
1. Se marca la arista con menor valor. Si hay
más de una, se elige cualquiera de ellas.
2. De las aristas restantes, se marca la que
tenga menor valor, si hay más de una, se
elige cualquiera de ellas.
3. Repetir el paso 2 siempre que la arista
elegida no forme un ciclo con las ya
marcadas.
4.
El proceso termina cuando tenemos todos los
nodos del grafo en alguna de las aristas
marcadas, es decir, cuando tenemos marcados
n-1 arcos, siendo n el número de nodos del grafo
Ejemplo


Determinar el árbol de mínima expansión
para el siguiente grafo:
Siguiendo el algoritmo de Kruskal, tenemos:
Ejercicio








Elegimos, por ejemplo, la arista (5, 6) = 1 (menor valor) y la
marcamos.
Elegimos la siguiente arista con menor valor (1, 3) = 1 y la
marcamos.
Elegimos la siguiente arista con menor valor (5, 7) = 2 y la
marcamos, ya que no forma ciclos con ninguna arista de
las marcadas anteriormente.
Elegimos la siguiente arista con menor valor (1, 2) = 3 y la
marcamos, ya que no forma ciclos con ninguna arista de
las marcadas anteriormente.
Elegimos la siguiente arista con menor valor (6, 7) = 4 y la
desechamos, ya que forma ciclos con las aristas (5, 7) y (5,
6) marcadas anteriormente.
Elegimos la siguiente arista con menor valor (2, 5) = 5 y la
marcamos, ya que no forma ciclos con ninguna arista de
las marcadas anteriormente.
Elegimos la siguiente arista con menor valor (4, 5) = 6 y la
marcamos, ya que no forma ciclos con ninguna arista de
las marcadas anteriormente.
FIN. Finalizamos dado que los 7 nodos del grafo están en
alguna de las aristas, o también ya que tenemos
marcadas 6 aristas (n-1).
Por tanto el árbol de mínima expansión
resultante sería:
WEBGRAFÍA







http://www.mitecnologico.com/Main/TiposDeGraf
os
http://personales.upv.es/arodrigu/grafos/Prim.htm
http://www.matediscreta.8k.com/grafos.htm
www.ganimides.ucm.cl/haraya/doc/GRAFOS.ppt
http://eisc.univalle.edu.co/materias/Matematicas
_Discretas_2/pdf/cobertor_arbol_03.pdf
http://www.matap.uma.es/profesor/magalan/Ma
tDis/material/ArbolesTema6_2_MatDiscreta.pdf
http://www.inf.ucv.cl/~rsoto/cursos/INF245/Cap2_
Parte3_2ppt_INF245.pdf