SlideShare uma empresa Scribd logo
1 de 17
ALGORITMOS DE KRUSKAL Y PRIM<br />JULIÁN RICARDO CÁRDENAS PALACIOS<br />FERNANDO PEREZ TORRES<br />ELKIN YAMITH BARRERA<br />INGENIERO LEONARDO BERNAL ZAMORA<br />UNIVERSIDAD DE BOYACÁ<br />FACULTAD DE CIENCIAS E INGENIERÍA<br />INGENIERÍA DE SISTEMAS<br />TUNJA <br />2010<br />TABLA DE CONTENIDO<br />Introducción<br />Objetivos<br />Grafos<br />Árboles De Expansión Mínimos<br />Algoritmo de Prim<br />Robert Prim<br />Algoritmo de Kruskal<br />Joseph Kruskal<br />Web grafía<br />INTRODUCCIÓN<br />Los algoritmos devoradores son algoritmos que toman decisiones, partiendo de los datos que tienen disponibles, ignorando las consecuencias quo tales decisiones pueda tener. Esta característica los hace sencillos de diseñar e implementar. Poseen los siguientes elementos característicos:<br />Conjunto de candidatos: Son los posibles elementos que pueden ser considerados. Algunos de ellos serán seleccionados mientras que otros rechazados.<br />Función de solución: Verifica si con los elementos seleccionados ya se ha completado la solución.<br />Función de factibilidad: verifica si hay posibilidad de completar la solución apoyándose en los elementos seleccionados.<br />Función de selección: permite elegir el candidato más prometedor. Generalmente existe una relación directa con la función objetivo relacionada con la función objetivo.<br />Los Algoritmos Voraces, se emplean en problemas de optimización en los cuales se pretende maximizar o minimizar algún valor. La codificación de un algoritmo voraz se caracteriza por tener un bucle, denominado bucle voraz.<br />Algunos algoritmos voraces:<br />El algoritmo de Kruskal.<br />El algoritmo de Prim.<br />OBJETIVOS<br />GENERAL<br />Realizar un estudio sobre los algoritmos de Kruskal y Prim<br />ESPECÍFICOS<br />Estudiar y  analizar  el algoritmo de Prim<br />Estudiar y  analizar el algoritmo de Kruskal<br />Explorar la ruta o camino óptimo con estos algoritmos para la solución del problema <br />GRAFOS<br />Un grafo es un conjunto de puntos (vértices) en el espacio, que están conectados por un conjunto de líneas (aristas). Otros conceptos básicos son:<br />Terminología de Grafos<br />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).<br />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<br />Al número de vértices que tiene un grafo se le llama orden del grafo <br />Un grafo nulo es un grafo de orden 0<br />Dos vértices son adyacentes si hay un arco que los une.<br />Un camino es una secuencia de uno o más arcos que conectan 2 nodos.<br />Un grafo es dirigido cuando los arcos tienen dirección.<br />Un grafo es no-dirigido cuando los arcos no tienen dirección.<br />La longitud de un camino es el nº de arcos que comprende.<br />Un camino simple es, si todos los vértices usados son distintos excepto el1ero y el último que se permite sean idénticos.<br />Tipos de Grafos<br />Existen dos tipos de grafos los no dirigidos y los dirigidos.<br />• 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).<br />• 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.<br />ÁRBOLES DE EXPANSIÓN MÍNIMOS<br />Árbol de máximo alcance cuyo valor es mínimo, es decir, la suma de sus aristas es mínima.<br />Á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.<br />También podemos definir un árbol como:<br />Un grafo conexo y sin ciclos.<br />Un grafo sin ciclos y con n-1 aristas, siendo n el número de vértices.<br />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 es aquel que obtenemos en un grafo conexo y sin ciclos.<br />Un grafo ponderado o grafo con pesos es un grafo G(V, E), en el que a cada arista se le asigna un valor real no negativo o peso. Sobre el conjunto de aristas se introduce una función peso . El peso de un subgrafo de un grafo ponderado es la suma  de los pesos de todas sus aristas.<br />Dado el grafo con pesos:<br />El peso total del grafo es<br />El peso del subgrafo H formado por los vértices a, b, c, d seria W(H)=8+2+12+6=28.<br />3.1 ARBOL GENERADOR<br />Supongamos que a cada arista se le asocia un número positivo (su peso). Un árbol generador se dice de peso mínimo si la suma de los pesos de las aristas que lo componen es lo menor posible <br />Para calcular el árbol de peso mínimo existen 2 algoritmos:<br />Kruskal: Se van escogiendo las aristas de menor peso hasta conseguir un árbol de peso mínimo<br />Prim: Consiste en ir borrando las aristas de mayor peso posible y que no sean aristas de separación.<br />Puede haber más de un árbol generador de peso mínimo, pero todos deben tener el mismo peso.<br />ALGORITMO DE PRIM<br />4 .1 ROBERT PRIM<br />Nació en 1921, Sweetwater, (Estados Unidos) es un matemático e ingeniero informático.<br />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.<br />En los años 60 estos científicos del HYPERLINK quot;
http://cm.bell-labs.com/cm/ms/quot;
  quot;
_blankquot;
Math Center (Bell Labs) fueron los pioneros de la moderna teoría de secuenciación, particularmente en el análisis de algoritmos de aproximación y en secuenciación multiprocesador (Ed Coffman, Ron Graham, David Johnson y Mike Garey). En las siguientes tres décadas, se añadieron multitud de contribuciones que mejoraron la teoría general.<br />El algoritmo de Prim encuentra un árbol de peso total mínimo conectando nodos o vértices con arcos de peso mínimo del grafo sin formar ciclos.<br />Al igual que el algoritmo de Kruskal, el de Prim también ha sido aplicado para hallar soluciones en diversas áreas (diseño de redes de transporte, diseño de redes de telecomunicaciones - TV por cable, sistemas distribuidos, interpretación de datos climatológicos, visión artificial - análisis de imágenes - extracción de rasgos de parentesco, análisis de clusters y búsqueda de superestructuras de quasar, plegamiento de proteínas, reconocimiento de células cancerosas, y otros). También se ha utilizado para encontrar soluciones aproximadas a problemas NP-Hard como el del 'viajante de comercio'.<br />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.<br />El árbol recubridor mínimo está completamente construido cuando no quedan más vértices por agregar.<br />Objetivo de Algoritmo prim<br />Encontrar el árbol recubridor más corto<br />Requisitos<br />—  Ser un grafo conexo<br />—  Ser un grafo sin ciclos<br />—  Tener todos los arcos etiquetados.<br />El algoritmo de Prim es un algoritmo perteneciente a la teoría de los grafos para encontrar un árbol recubridor mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas.<br />En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman un árbol con todos los vértices, donde el peso total de todas las aristas en el árbol es el mínimo posible. Si el grafo no es conexo, entonces el algoritmo encontrará el árbol recubridor mínimo para uno de los componentes conexos que forman dicho grafo no conexo.<br />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:<br />Paso 1. Se elige un vértice u de G y se considera el árbol S={u}<br />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<br />Paso 3. Si el nº de aristas de T es n-1 el algoritmo termina. En caso contrario se vuelve al paso 2<br />ALGORITMO DE KRUSKAL<br />5.1 Joseph KRUSKAL<br />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. Este problema es un problema típico de optimización combinatoria, que fue considerado originalmente por Otakar Boruvka(1926) mientras estudiaba la necesidad de electrificación rural en el sur de Moravia en Checoslovaquia.<br />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.<br />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. En un principio cada nodo está en un digamos grupo distinto, al elegir una arista de la lista miraremos si no están los nodos conectados ya en el mismo grupo, de no estarlo fusionamos ambos grupos y comprobamos si hemos encontrado ya la solución, para devolver el resultado.<br />Sea G un grafo con m nodos y e aristas, donde cada arista tiene un peso W(e) asignado.<br />Para todo grafo conectado G es posible asociar un árbol que contenga todos los vértices del grafo, denominado árbol de cobertura.<br />Todo árbol de cobertura que a su vez tiene la sumatoria mínima de los valores de las aristas se denomina árbol de cobertura mínima.<br />El algoritmo de Kruskal nos permite encontrar el árbol de cobertura mínima, para un grafo cuyas aristas han sido ordenadas de la forma:<br />/*aacm = aristas árbol de cobertura mínima*/<br />/*ag = aristas grafo*/<br />/*aciclico() = función booleana que determina si aacm forma un<br />ciclo con ag[j]*/<br />For (j=1; j<=n; j++){<br />if(aciclico(aacm,ag[j])){<br />aacm[i] = ag[j];<br />i++;<br />}<br />}<br />El algoritmo de Kruskal permite hallar el árbol minimal de cualquier grafo valorado (con capacidades). Hay que seguir los siguientes pasos: <br />Se marca la arista con menor valor. Si hay más de una, se elige cualquiera de ellas. <br />De las aristas restantes, se marca la que tenga menor valor, si hay más de una, se elige cualquiera de ellas. <br />Repetir el paso 2 siempre que la arista elegida no forme un ciclo con las ya marcadas.<br />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. <br />Ejemplo<br />Determinar el árbol de mínima expansión para el siguiente grafo:<br />Siguiendo el algoritmo de Kruskal, tenemos: <br />Elegimos, por ejemplo, la arista (5, 6) = 1 (menor valor) y la marcamos.<br />Elegimos la siguiente arista con menor valor (1, 3) = 1 y la marcamos.<br />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. <br />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.<br />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. <br />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. <br />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.<br />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). <br />Por tanto el árbol de mínima expansión resultante sería:<br />WEBGRAFÍA <br /> <br />http://www.mitecnologico.com/Main/TiposDeGrafos<br />http://personales.upv.es/arodrigu/grafos/Prim.htm<br />http://www.matediscreta.8k.com/grafos.htm<br />www.ganimides.ucm.cl/haraya/doc/GRAFOS.ppt<br />http://eisc.univalle.edu.co/materias/Matematicas_Discretas_2/pdf/cobertor_arbol_03.pdf<br />http://www.matap.uma.es/profesor/magalan/MatDis/material/ArbolesTema6_2_MatDiscreta.pdf<br />http://www.inf.ucv.cl/~rsoto/cursos/INF245/Cap2_Parte3_2ppt_INF245.pdf<br />http://lear.inforg.uniovi.es/ioperativa/TutorialGrafos/minimaexp/minimaexp.htm<br />
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo dijkstra
Algoritmo dijkstraAlgoritmo dijkstra
Algoritmo dijkstra
 
Algoritmo de dijkstra
Algoritmo de dijkstraAlgoritmo de dijkstra
Algoritmo de dijkstra
 
Algoritmo de dijkstra final
Algoritmo de dijkstra finalAlgoritmo de dijkstra final
Algoritmo de dijkstra final
 
Algoritmo De Dijkstra
Algoritmo De DijkstraAlgoritmo De Dijkstra
Algoritmo De Dijkstra
 
Dijkstra
DijkstraDijkstra
Dijkstra
 
Algoritmo de dijkstra
Algoritmo de dijkstraAlgoritmo de dijkstra
Algoritmo de dijkstra
 
Algoritmo dijkstra
Algoritmo dijkstraAlgoritmo dijkstra
Algoritmo dijkstra
 
Recursividad
RecursividadRecursividad
Recursividad
 
Tema_7.pdf
Tema_7.pdfTema_7.pdf
Tema_7.pdf
 
Mate derivadas
Mate derivadasMate derivadas
Mate derivadas
 
Kruskal
KruskalKruskal
Kruskal
 
Transformada rápida de Fourier
Transformada rápida de FourierTransformada rápida de Fourier
Transformada rápida de Fourier
 
Tensor metrico
Tensor metricoTensor metrico
Tensor metrico
 
RKHS, teoría y aplicaciones con machine learning
RKHS, teoría y aplicaciones con machine learningRKHS, teoría y aplicaciones con machine learning
RKHS, teoría y aplicaciones con machine learning
 
Castigliano
CastiglianoCastigliano
Castigliano
 
Pratica9 y 10 carlos romero_orlandofernandez
Pratica9 y 10 carlos romero_orlandofernandezPratica9 y 10 carlos romero_orlandofernandez
Pratica9 y 10 carlos romero_orlandofernandez
 
Jfmartinc
JfmartincJfmartinc
Jfmartinc
 
Ecuación de Euler-Lagrange: Deducción utilizando Cálculo Básico
Ecuación de Euler-Lagrange: Deducción utilizando Cálculo BásicoEcuación de Euler-Lagrange: Deducción utilizando Cálculo Básico
Ecuación de Euler-Lagrange: Deducción utilizando Cálculo Básico
 
El problema de la ruta más corta. Dijkstra
El problema de la ruta más corta. DijkstraEl problema de la ruta más corta. Dijkstra
El problema de la ruta más corta. Dijkstra
 

Semelhante a Algoritmos

Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y primfher969
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y primfher969
 
Mapa mental Grafos (Gaby Assouad)
Mapa mental Grafos (Gaby Assouad)Mapa mental Grafos (Gaby Assouad)
Mapa mental Grafos (Gaby Assouad)gabyassouad
 
TRABAJO DE GRAFOS
TRABAJO DE GRAFOSTRABAJO DE GRAFOS
TRABAJO DE GRAFOSOsirysRock
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafosozilricardo
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafosozilricardo
 
Teoría de las redes
Teoría de las redesTeoría de las redes
Teoría de las redesDiego Gomez
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuelamiguel perez
 
Grafos (angel)[1]
Grafos (angel)[1]Grafos (angel)[1]
Grafos (angel)[1]ozilricardo
 
Diapo teoria de grafos
Diapo teoria de grafosDiapo teoria de grafos
Diapo teoria de grafosGera Lopez
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionalesguest91086e
 
Tema 5 diapositivas de la teoría de grafos.pptx
Tema 5 diapositivas de la teoría de grafos.pptxTema 5 diapositivas de la teoría de grafos.pptx
Tema 5 diapositivas de la teoría de grafos.pptxAndreFurios
 

Semelhante a Algoritmos (20)

Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y prim
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y prim
 
Mapa mental Grafos (Gaby Assouad)
Mapa mental Grafos (Gaby Assouad)Mapa mental Grafos (Gaby Assouad)
Mapa mental Grafos (Gaby Assouad)
 
Flujo en redes
Flujo en redesFlujo en redes
Flujo en redes
 
Floyd Prim y Kruscal
Floyd Prim y KruscalFloyd Prim y Kruscal
Floyd Prim y Kruscal
 
Arbol de costo_minimo
Arbol de costo_minimoArbol de costo_minimo
Arbol de costo_minimo
 
TRABAJO DE GRAFOS
TRABAJO DE GRAFOSTRABAJO DE GRAFOS
TRABAJO DE GRAFOS
 
Grafos
GrafosGrafos
Grafos
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafos
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafos
 
Teoría de las redes
Teoría de las redesTeoría de las redes
Teoría de las redes
 
Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuela
 
Grafos
GrafosGrafos
Grafos
 
Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
Grafos (angel)[1]
Grafos (angel)[1]Grafos (angel)[1]
Grafos (angel)[1]
 
Diapo teoria de grafos
Diapo teoria de grafosDiapo teoria de grafos
Diapo teoria de grafos
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
Tema 5 diapositivas de la teoría de grafos.pptx
Tema 5 diapositivas de la teoría de grafos.pptxTema 5 diapositivas de la teoría de grafos.pptx
Tema 5 diapositivas de la teoría de grafos.pptx
 

Último

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOBRIGIDATELLOLEONARDO
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 

Último (20)

Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 

Algoritmos

  • 1. ALGORITMOS DE KRUSKAL Y PRIM<br />JULIÁN RICARDO CÁRDENAS PALACIOS<br />FERNANDO PEREZ TORRES<br />ELKIN YAMITH BARRERA<br />INGENIERO LEONARDO BERNAL ZAMORA<br />UNIVERSIDAD DE BOYACÁ<br />FACULTAD DE CIENCIAS E INGENIERÍA<br />INGENIERÍA DE SISTEMAS<br />TUNJA <br />2010<br />TABLA DE CONTENIDO<br />Introducción<br />Objetivos<br />Grafos<br />Árboles De Expansión Mínimos<br />Algoritmo de Prim<br />Robert Prim<br />Algoritmo de Kruskal<br />Joseph Kruskal<br />Web grafía<br />INTRODUCCIÓN<br />Los algoritmos devoradores son algoritmos que toman decisiones, partiendo de los datos que tienen disponibles, ignorando las consecuencias quo tales decisiones pueda tener. Esta característica los hace sencillos de diseñar e implementar. Poseen los siguientes elementos característicos:<br />Conjunto de candidatos: Son los posibles elementos que pueden ser considerados. Algunos de ellos serán seleccionados mientras que otros rechazados.<br />Función de solución: Verifica si con los elementos seleccionados ya se ha completado la solución.<br />Función de factibilidad: verifica si hay posibilidad de completar la solución apoyándose en los elementos seleccionados.<br />Función de selección: permite elegir el candidato más prometedor. Generalmente existe una relación directa con la función objetivo relacionada con la función objetivo.<br />Los Algoritmos Voraces, se emplean en problemas de optimización en los cuales se pretende maximizar o minimizar algún valor. La codificación de un algoritmo voraz se caracteriza por tener un bucle, denominado bucle voraz.<br />Algunos algoritmos voraces:<br />El algoritmo de Kruskal.<br />El algoritmo de Prim.<br />OBJETIVOS<br />GENERAL<br />Realizar un estudio sobre los algoritmos de Kruskal y Prim<br />ESPECÍFICOS<br />Estudiar y analizar el algoritmo de Prim<br />Estudiar y analizar el algoritmo de Kruskal<br />Explorar la ruta o camino óptimo con estos algoritmos para la solución del problema <br />GRAFOS<br />Un grafo es un conjunto de puntos (vértices) en el espacio, que están conectados por un conjunto de líneas (aristas). Otros conceptos básicos son:<br />Terminología de Grafos<br />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).<br />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<br />Al número de vértices que tiene un grafo se le llama orden del grafo <br />Un grafo nulo es un grafo de orden 0<br />Dos vértices son adyacentes si hay un arco que los une.<br />Un camino es una secuencia de uno o más arcos que conectan 2 nodos.<br />Un grafo es dirigido cuando los arcos tienen dirección.<br />Un grafo es no-dirigido cuando los arcos no tienen dirección.<br />La longitud de un camino es el nº de arcos que comprende.<br />Un camino simple es, si todos los vértices usados son distintos excepto el1ero y el último que se permite sean idénticos.<br />Tipos de Grafos<br />Existen dos tipos de grafos los no dirigidos y los dirigidos.<br />• 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).<br />• 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.<br />ÁRBOLES DE EXPANSIÓN MÍNIMOS<br />Árbol de máximo alcance cuyo valor es mínimo, es decir, la suma de sus aristas es mínima.<br />Á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.<br />También podemos definir un árbol como:<br />Un grafo conexo y sin ciclos.<br />Un grafo sin ciclos y con n-1 aristas, siendo n el número de vértices.<br />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 es aquel que obtenemos en un grafo conexo y sin ciclos.<br />Un grafo ponderado o grafo con pesos es un grafo G(V, E), en el que a cada arista se le asigna un valor real no negativo o peso. Sobre el conjunto de aristas se introduce una función peso . El peso de un subgrafo de un grafo ponderado es la suma de los pesos de todas sus aristas.<br />Dado el grafo con pesos:<br />El peso total del grafo es<br />El peso del subgrafo H formado por los vértices a, b, c, d seria W(H)=8+2+12+6=28.<br />3.1 ARBOL GENERADOR<br />Supongamos que a cada arista se le asocia un número positivo (su peso). Un árbol generador se dice de peso mínimo si la suma de los pesos de las aristas que lo componen es lo menor posible <br />Para calcular el árbol de peso mínimo existen 2 algoritmos:<br />Kruskal: Se van escogiendo las aristas de menor peso hasta conseguir un árbol de peso mínimo<br />Prim: Consiste en ir borrando las aristas de mayor peso posible y que no sean aristas de separación.<br />Puede haber más de un árbol generador de peso mínimo, pero todos deben tener el mismo peso.<br />ALGORITMO DE PRIM<br />4 .1 ROBERT PRIM<br />Nació en 1921, Sweetwater, (Estados Unidos) es un matemático e ingeniero informático.<br />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.<br />En los años 60 estos científicos del HYPERLINK quot; http://cm.bell-labs.com/cm/ms/quot; quot; _blankquot; Math Center (Bell Labs) fueron los pioneros de la moderna teoría de secuenciación, particularmente en el análisis de algoritmos de aproximación y en secuenciación multiprocesador (Ed Coffman, Ron Graham, David Johnson y Mike Garey). En las siguientes tres décadas, se añadieron multitud de contribuciones que mejoraron la teoría general.<br />El algoritmo de Prim encuentra un árbol de peso total mínimo conectando nodos o vértices con arcos de peso mínimo del grafo sin formar ciclos.<br />Al igual que el algoritmo de Kruskal, el de Prim también ha sido aplicado para hallar soluciones en diversas áreas (diseño de redes de transporte, diseño de redes de telecomunicaciones - TV por cable, sistemas distribuidos, interpretación de datos climatológicos, visión artificial - análisis de imágenes - extracción de rasgos de parentesco, análisis de clusters y búsqueda de superestructuras de quasar, plegamiento de proteínas, reconocimiento de células cancerosas, y otros). También se ha utilizado para encontrar soluciones aproximadas a problemas NP-Hard como el del 'viajante de comercio'.<br />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.<br />El árbol recubridor mínimo está completamente construido cuando no quedan más vértices por agregar.<br />Objetivo de Algoritmo prim<br />Encontrar el árbol recubridor más corto<br />Requisitos<br />—  Ser un grafo conexo<br />—  Ser un grafo sin ciclos<br />—  Tener todos los arcos etiquetados.<br />El algoritmo de Prim es un algoritmo perteneciente a la teoría de los grafos para encontrar un árbol recubridor mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas.<br />En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman un árbol con todos los vértices, donde el peso total de todas las aristas en el árbol es el mínimo posible. Si el grafo no es conexo, entonces el algoritmo encontrará el árbol recubridor mínimo para uno de los componentes conexos que forman dicho grafo no conexo.<br />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:<br />Paso 1. Se elige un vértice u de G y se considera el árbol S={u}<br />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<br />Paso 3. Si el nº de aristas de T es n-1 el algoritmo termina. En caso contrario se vuelve al paso 2<br />ALGORITMO DE KRUSKAL<br />5.1 Joseph KRUSKAL<br />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. Este problema es un problema típico de optimización combinatoria, que fue considerado originalmente por Otakar Boruvka(1926) mientras estudiaba la necesidad de electrificación rural en el sur de Moravia en Checoslovaquia.<br />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.<br />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. En un principio cada nodo está en un digamos grupo distinto, al elegir una arista de la lista miraremos si no están los nodos conectados ya en el mismo grupo, de no estarlo fusionamos ambos grupos y comprobamos si hemos encontrado ya la solución, para devolver el resultado.<br />Sea G un grafo con m nodos y e aristas, donde cada arista tiene un peso W(e) asignado.<br />Para todo grafo conectado G es posible asociar un árbol que contenga todos los vértices del grafo, denominado árbol de cobertura.<br />Todo árbol de cobertura que a su vez tiene la sumatoria mínima de los valores de las aristas se denomina árbol de cobertura mínima.<br />El algoritmo de Kruskal nos permite encontrar el árbol de cobertura mínima, para un grafo cuyas aristas han sido ordenadas de la forma:<br />/*aacm = aristas árbol de cobertura mínima*/<br />/*ag = aristas grafo*/<br />/*aciclico() = función booleana que determina si aacm forma un<br />ciclo con ag[j]*/<br />For (j=1; j<=n; j++){<br />if(aciclico(aacm,ag[j])){<br />aacm[i] = ag[j];<br />i++;<br />}<br />}<br />El algoritmo de Kruskal permite hallar el árbol minimal de cualquier grafo valorado (con capacidades). Hay que seguir los siguientes pasos: <br />Se marca la arista con menor valor. Si hay más de una, se elige cualquiera de ellas. <br />De las aristas restantes, se marca la que tenga menor valor, si hay más de una, se elige cualquiera de ellas. <br />Repetir el paso 2 siempre que la arista elegida no forme un ciclo con las ya marcadas.<br />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. <br />Ejemplo<br />Determinar el árbol de mínima expansión para el siguiente grafo:<br />Siguiendo el algoritmo de Kruskal, tenemos: <br />Elegimos, por ejemplo, la arista (5, 6) = 1 (menor valor) y la marcamos.<br />Elegimos la siguiente arista con menor valor (1, 3) = 1 y la marcamos.<br />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. <br />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.<br />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. <br />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. <br />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.<br />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). <br />Por tanto el árbol de mínima expansión resultante sería:<br />WEBGRAFÍA <br /> <br />http://www.mitecnologico.com/Main/TiposDeGrafos<br />http://personales.upv.es/arodrigu/grafos/Prim.htm<br />http://www.matediscreta.8k.com/grafos.htm<br />www.ganimides.ucm.cl/haraya/doc/GRAFOS.ppt<br />http://eisc.univalle.edu.co/materias/Matematicas_Discretas_2/pdf/cobertor_arbol_03.pdf<br />http://www.matap.uma.es/profesor/magalan/MatDis/material/ArbolesTema6_2_MatDiscreta.pdf<br />http://www.inf.ucv.cl/~rsoto/cursos/INF245/Cap2_Parte3_2ppt_INF245.pdf<br />http://lear.inforg.uniovi.es/ioperativa/TutorialGrafos/minimaexp/minimaexp.htm<br />