22
ALGORITMOS DE KRUSKAL Y PRIM JULIÁN RICARDO CÁRDENAS FERNANDO PEREZ TORRES ELKIN YAMITH BARRERA

ALGORITMOS DE KRUSKAL Y PRIM

  • Upload
    jackie

  • View
    97

  • Download
    1

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: ALGORITMOS DE KRUSKAL Y PRIM

ALGORITMOS DE KRUSKAL Y PRIM

 JULIÁN RICARDO CÁRDENAS FERNANDO PEREZ TORRESELKIN YAMITH BARRERA

Page 2: ALGORITMOS DE KRUSKAL Y PRIM

GRAFOS

Un grafo es un conjunto de puntos (vértices) en el espacio, que están conectados por un conjunto de líneas (aristas).

Page 3: ALGORITMOS DE KRUSKAL Y PRIM

Terminología de GrafosUna 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 buclesAl número de vértices que tiene un grafo se le llama orden del grafo Un grafo nulo es un grafo de orden 0Dos 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.

Page 4: ALGORITMOS DE KRUSKAL Y PRIM

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.

Page 5: ALGORITMOS DE KRUSKAL Y PRIM

Á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

Page 6: ALGORITMOS DE KRUSKAL Y PRIM

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.

Page 7: ALGORITMOS DE KRUSKAL Y PRIM

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.

Page 8: ALGORITMOS DE KRUSKAL Y PRIM

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.

Page 9: ALGORITMOS DE KRUSKAL Y PRIM

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.

 

Page 10: ALGORITMOS DE KRUSKAL Y PRIM

Objetivo de Algoritmo prim Encontrar el árbol recubridor más corto

Page 11: ALGORITMOS DE KRUSKAL Y PRIM

Requisitos

—  Ser un grafo conexo  —  Ser un grafo sin ciclos  —  Tener todos los arcos etiquetados.

Page 12: ALGORITMOS DE KRUSKAL Y PRIM

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

Page 13: ALGORITMOS DE KRUSKAL Y PRIM
Page 14: ALGORITMOS DE KRUSKAL Y PRIM
Page 15: ALGORITMOS DE KRUSKAL Y PRIM

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

Page 16: ALGORITMOS DE KRUSKAL Y PRIM
Page 17: ALGORITMOS DE KRUSKAL Y PRIM
Page 18: ALGORITMOS DE KRUSKAL Y PRIM

Ejemplo Determinar el árbol de mínima expansión

para el siguiente grafo: Siguiendo el algoritmo de Kruskal, tenemos:

Page 19: ALGORITMOS DE KRUSKAL Y PRIM

Ejercicio

Page 20: ALGORITMOS DE KRUSKAL Y PRIM

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).

Page 21: ALGORITMOS DE KRUSKAL Y PRIM

Por tanto el árbol de mínima expansión resultante sería:

Page 22: ALGORITMOS DE KRUSKAL Y PRIM

WEBGRAFÍAhttp://www.mitecnologico.com/Main/TiposDeGrafoshttp://personales.upv.es/arodrigu/grafos/Prim.htmhttp://www.matediscreta.8k.com/grafos.htmwww.ganimides.ucm.cl/haraya/doc/GRAFOS.ppthttp://eisc.univalle.edu.co/materias/Matematicas_Discretas_2/pdf/cobertor_arbol_03.pdfhttp://www.matap.uma.es/profesor/magalan/MatDis/material/ArbolesTema6_2_MatDiscreta.pdfhttp://www.inf.ucv.cl/~rsoto/cursos/INF245/Cap2_Parte3_2ppt_INF245.pdf