Eploación de gafo Análii y Dieño de Algoitmo Eploación de gafo Gafo Recoido obe gafo Búqueda pimeo en pofundidad Búqueda pimeo en anchua Backtacking ( uelta atá ) Decipción geneal Epacio de olucione Implementación Ejemplo Banch & Bound ( amificación y poda ) Decipción geneal Etategia de amificación Implementación Ejemplo 1
Gafo Gafo G = (V,E) V: Conjunto de étice o nodo del gafo. E VV: Conjunto de aita o aco. Tipo de gafo Gafo no diigido: Aita (no oientada). (,) = (,,) Gafo diigido: : Aco (con diección). (,) (,) 2 Gafo Ejemplo: US Biotech Induty 3
Gafo - Definicione Gafo no diigido Gado de un étice: Númeo de aita que lo contienen. Gafo diigido Gado de alida de un étice : Númeo de aco cuyo étice inicial e. Gado de entada de un étice : Númeo de aco cuyo étice final e. 4 Gafo - Definicione Nodo/étice adyacente: Vétice conectado po una aita (o un aco). Aita/aco adyacente: Aco/aita con un étice común. u Bucle: Aco/aita cuyo étice inicial y final coinciden. 5
Gafo - Definicione Camino [path]: Suceión de aco adyacente tal que el étice final de cada aco coincide con el inicial del iguiente. Secuencia ( 1, 2,..., k ) V tal que ( 1, 2 ), ( 2, 3 ),..., ( k-1, k ) E. Longitud del camino: Númeo de aco del camino (k-1). Cicuito (o ciclo): Camino que empieza y acaba en el mimo étice. 6 Gafo - Definicione Gafo coneo: Un gafo no diigido e un gafo coneo i paa todo pa de nodo u y eite una camido de u a. Componente conea: Cada uno de lo conjunto maimale coneo. 7
Gafo - Definicione Tipo de gafo Gafo etiquetado: Cada aita y/o étice tiene aociada una etiqueta/alo. Gafo pondeado = Gafo con peo: Gafo etiquetado en el que eite un alo numéico aociado a cada aita o aco. Multigafo: Gafo en el que e pemite que ente do étice eita má de una aita o aco. 8 Gafo - Definicione Ábol: Gafo coneo que no contiene ciclo. Teoema Sea G un gafo de n nodo. Cualquie paeja de la iguiente afimacione implica la tecea: G e coneo. G no contiene ciclo. G tiene n-1 aita. 9
Gafo - Repeentación Repeentación mediante matice de adyacencia 1 2 3 4 5 6 7 8 1 0 1 1 0 0 0 0 0 2 1 0 1 1 1 0 0 0 3 1 1 0 0 1 0 1 1 4 0 1 0 1 1 0 0 0 5 0 1 1 1 0 1 0 0 6 0 0 0 0 1 0 0 0 7 0 0 1 0 0 0 0 1 8 0 0 1 0 0 0 1 0 Matiz de adyacencia de tamaño V V A[u][] = 1 i (u, ) E. A[u][] = 0 i (u, ) E. 10 Gafo - Repeentación Repeentación mediante matice de adyacencia Ventaja: Acceo eficiente a una aita, Θ(1). Inconeniente: Θ( V 2 ) en identifica toda la aita. Epacio popocional a V 2 (e depedicia memoia i el gafo e poco deno). 11
Gafo - Repeentación Repeentación mediante lita de adyacencia 1 2 3 2 3 1 3 4 5 1 2 5 7 8 4 2 5 5 6 2 3 4 6 5 7 3 8 8 3 7 Aay de lita enlazada de nodo adyacente. 12 Gafo - Repeentación Repeentación mediante lita de adyacencia Ventaja: Epacio popocional a V + E. (epeentación adecuada paa gafo poco deno). Θ( V + E ) en identifica toda la aita. Inconeniente: Se tada O(gado(u)) en compoba i (u,) E. Ineficiente paa enconta lo aco que llegan a un nodo (olución: ua etuctua de lita múltiple). 13
Recoido obe gafo Se pate de un nodo dado y e iitan lo étice del gafo de manea odenada y itemática, paando de un étice a oto a taé de la aita del gafo. Tipo de ecoido: Búqueda pimeo en pofundidad: Equialente al ecoido en peoden de un ábol. Búqueda pimeo en anchua: Equialente al ecoido de un ábol po niele. 14 Recoido obe gafo Búqueda pimeo en pofundidad [DFS: Depth-Fit Pila S={} y Pila S={} Pila S={,} 15
Recoido obe gafo Búqueda pimeo en pofundidad [DFS: Depth-Fit Pila S={,,} y t Pila S={,} u Pila S={t,,} 16 Recoido obe gafo Búqueda pimeo en pofundidad [DFS: Depth-Fit Pila S={u,t,,} y t Pila S={y,u,t,,} u y Pila S={,y,u,t,,} 17
Recoido obe gafo Búqueda pimeo en pofundidad [DFS: Depth-Fit E neceaio llea la cuenta de lo nodo iitado (y no iitado). El ecoido no e único: : depende del étice inicial y del oden de iita de lo étice adyacente. El oden de iita de uno nodo puede intepetae como un ábol: ábol de epanión en pofundidad aociado al gafo. 18 Recoido obe gafo Búqueda pimeo en pofundidad [DFS: Depth-Fit función DFS (Gafo G(V,E)) { fo (i=0; i<v.length; i++) iitado[i] = fale; } fo (i=0; i<v.length; i++) if (!iitado[i]) DFS(G,i); 19
Recoido obe gafo Búqueda pimeo en pofundidad [DFS: Depth-Fit función DFS (Gafo G(V,E), int i) { iitado[i] = tue; } foeach ([j] adyacente a [i]) if (!iitado[j]) DFS(G,j); O( V + E ) i uamo la epeentación baada en lita de adyacencia. 20 Recoido obe gafo Búqueda pimeo en anchua [BFS: Beadth-Fit L 1 L 2 L n-1 Eploación dede po niele: L 0 = { }. L 1 = Nodo adyacente a L 0. L 2 = Nodo adyacente a L 1 que no petenecen ni a L 0 ni a L 1. L i+1 i+1 = Nodo que, in petenece a ningún niel anteio, etán conectado con L i a taé de una aita. Teoema: L i contiene todo lo nodo que etán a ditancia i de. 21
Recoido obe gafo Búqueda pimeo en anchua [BFS: Beadth-Fit y Cola Q={} Cola Q={,} Cola Q={,} 22 Recoido obe gafo Búqueda pimeo en anchua [BFS: Beadth-Fit Cola Q={,t,} y Cola Q={t,} t u Cola Q={,u} 23
Recoido obe gafo Búqueda pimeo en anchua [BFS: Beadth-Fit Cola Q={u,y} y Cola Q={y} t u y Cola Q={} 24 Recoido obe gafo Búqueda pimeo en anchua [BFS: Beadth-Fit Empezando en un nodo : Pimeo e iita. Luego e iitan todo u étice adyacente. A continuación, lo adyacente a éto y aí uceiamente. El algoitmo utiliza una cola de étice. 25
Recoido obe gafo Búqueda pimeo en anchua [BFS: Beadth-Fit función BFS (Gafo G(V,E)) { fo (i=0; i<v.length V.length; i++) iitado[i] = fale; } fo (i=0; i<v.length; i++) if (!iitado[i]) BFS(G,i); 26 Recoido obe gafo Búqueda pimeo en anchua [BFS: Beadth-Fit O( V + E ) i uamo la epeentación baada en lita de adyacencia función BFS (Gafo G(V,E), int ) { Cola Q; iitado[]=tue; Q.add(); } hile (!Q.empty()) { } = Q.etact(); foeach ([y] adyacente a []) if (!iitado[y]) { iitado[y]=tue; Q.add(y); } 27
Recoido obe gafo Aplicacione de lo ecoido obe gafo Compoba i un gafo e bipatito: Un gafo no diigido G=(V,A) e bipatito i u étice e pueden epaa en do conjunto dijunto V 1 y V 2 (V=V 1 V 2, V 1 V 2 = ) de tal foma que toda la aita de G unen étice de un conjunto con étice de oto. Detección de la componente fuetemente conea de un gafo: Una componente fuetemente conea de un gafo G=(V,A) e el máimo conjunto de étice U V tal que paa cada pa de étice u, U, eiten camino en G dede u hata y iceea. 28 Recoido obe gafo Aplicacione de lo ecoido obe gafo Flood fill (coloeado po inundación) 29