A GRASP for graph planarization. Resende, Ribeiro Meta heurísticas Agustín Pecorari
Descripción del problema Un grafo se dice plano si se lo puede dibujar en un plano de forma que no se crucen las aristas. K 3,3 y K 5 no son planos. Problema de optimización: encontrar el subgrafo plano máximo. NP-Hard. Se utiliza para resolver problemas de layout de circuitos, maquinaría entre otros problemas.
Algoritmos disponibles Jayakumar et al. Dos algoritmos de O(|V| 2 ). 1.Construye un subgrafo plano de expansión. Tomando de a un nodo, el que agrega la cantidad máxima de aristas que no conducen a un grafo no plano. 2.Empieza desde subgrafo plano de expansión biconectado y construye el subgrafo plano maximal contenido en él. Cai, Han y Tarjan. Algoritmo de O(|E|.log|V|). Di Battista y Tamassia. Algoritmo de O(|E|.log|V|).
Algoritmos disponibles Cimikowski, heurística. Para cada componente biconectado de un grafo no plano, encuentra árboles de expansión aristas-disjuntos cuya unión sea plana. Bajo ciertas condiciones llega a por lo menos 2/3 del óptimo. Jünger y Mutzel. Exact branch-and-cut. Desigualdades que definen facetas. Takefuji y Lee. Redes neuronales. Parten de un secuenciamiento arbitrario de los nodos y determinan dos conjuntos de aristas que pueden ser representadas sin que se crucen respectivamente por encima o debajo de la línea central. Mejorado por Goldschmidt y Takvorian.
Heurística de dos fases Goldschmidt y Takvorian Fase 1. –Determinar secuencia ∏ de los vértices. π(a)=1 π(b)=2 π(c)=3 π(d)=4 –Supongamos e 1 =(a,b) y e 2 =(c,d). Por ejemplo: –Se dice que e 1 y e 2 están cruzados si: π(a) < π(c) < π(b) < π(d) π(c) < π(a) < π(d) < π(b)
Heurística de dos fases. Cont. Goldschmidt y Takvorian Fase 2. –Particionar el conjunto E en B, R y P. –| B + R | sea grande (máximo posible). –De manera tal que ningún par de aristas se “cruce”, estando las dos en B o las dos en R. Goldschmidt y Takvorian muestran que si ∏ corresponde a un ciclo Hamiltoniano en un subgrafo H de G o en algún edge-augmentation plano de H => el subgrafo plano que produce contiene por lo menos ¾ de la cantidad de aristas que el máximo subgrafo plano.
Heurística de dos fases. Cont. Goldschmidt y Takvorian El algoritmo intenta utilizar ordenes ∏ relacionados a ciclos Hamiltonianos. Estos ciclos se buscan con un procedimiento aleatorio. O un algoritmo greedy determinístico. –El primer vértice es el de grado mínimo. –El vértice v k+1 es elegido entre los adyacentes a v k. Se toma el que tenga grado mínimo en el grafo G k inducido por V \{v 1...v k }. –Si no hubiese ningún vértice adyacente a v k, entonces se elije el de grado mínimo en G k.
Heurística de dos fases. Cont. Goldschmidt y Takvorian Sea H=(E, I): –Los vértices corresponden a aristas de G. –e 1 y e 2 de H están conectados si las correspondientes aristas de G están cruzadas respecto de ∏. H se llama Overlap graph si: –Sus vértices pueden tener una correspondencia biunívoca con una familia de intervalos en una línea. –Dos intervalos se solapan si se cruzan y ninguno está contenido en el otro. –Dos vértices de H están conectados por una arista sii sus correspondientes intervalos se solapan.
Heurística de dos fases. Cont. Goldschmidt y Takvorian Ejemplo: G ∏H
Heurística de dos fases. Cont. Goldschmidt y Takvorian La segunda fase consiste en colorear con Rojo ( R ) o Azul ( B ) el máximo número de vértices de H, de forma tal que formen un conjunto independiente (estable). Equivale a buscar un subgrafo bipartido con la mayor cantidad de vértices. NP-hard. Usan algoritmo greedy para generar subgrafo maximal. Genera un conjunto independiente máximo B cE de H, reduce H sacando los vértices en B y las aristas incidentes a B.
Heurística de dos fases. Cont. Goldschmidt y Takvorian Ahora busca el conjunto independiente máximo R c E \ B. Este procedimiento es polinomial (no encuentra el óptimo necesariamente) O(|E| 3 ). GT no produce el óptimo y bajo simples def. de vecindad tampoco óptimos locales.
GRASP procedure GRASP(ListSize, MaxIter, RdmSeed) InputInstance(); do k=1,…..MaxIter ConstructGreedyRandomizedSolution(ListSize, RdmSeed) LocalSearch(BestSolutionFound); UpdateSolution(BestSolutionFound); od; return BestSolutionFound end GRASP
GRASP. Generación secuencia ∏. procedure ConstructGreedyRandomSolution(α,seed,V,E, ∏) 1 d = min vЄV {deg G (v)}; đ = max vЄV {deg G (v)}; 2 RCL = {vЄV : d ≤ deg G (v) ≤ α (đ - d) +d}; 3 v 1 = random(seed, RCL); 4 V = V \ {v 1 }; G 1 = grafo inducido en G por V ; 5 do k=2,…,|V| 6 d = min vЄ V {deg Gk-1 (v)}; đ = max vЄ V {deg Gk-1 (v)}; 7 if ADJ Gk-1 (v k-1 ) ≠ Ø 8 RCL = {v Є ADJ Gk-1 (v k-1 ) : d ≤ deg Gk-1 (v) ≤ α (đ - d) +d}; 9 else 10 RCL = {v Є V : d ≤ deg Gk-1 (v) ≤ α (đ - d) +d}; 11 fi; 12 v k =random(seed, RCL); 13 V = V \ {v k }; G k = grafo inducido en G por V ; 14 od; 15 return ∏=(v 1,v 2,…,v |V| ) end ConstructGreedyRandomSolution
GRASP. Búsqueda Local procedure LocalSearch(V,E, ∏) 1 do ∏ no es óptima 2 encontrar ∏’ Є N (∏) tal que X (∏’) < X (∏); 3 ∏ = ∏’; 4 od 5 return ∏=(v 1,v 2,…,v |V| ) end LocalSearch Siendo X (∏) cantidad de pares de aristas cruzadas. Y N (∏) vecindad formada por todo ∏’ con 2 pos ≠.
GRASP procedure GRASPforGP(α,seed,MaxIter,V,E, ∏*, B *, R *) 1 do k=1,2,…,MaxIter 2 ConstructGreedyRandomSolution(α,seed,V,E, ∏) 3 LocalSearch(V,E, ∏) 4 SecondPhaseGT(V,E, ∏, B, R ) 5 UpdateSolution(∏, B, R, ∏*, B *, R *) 6 od; 7 return ∏*, B *, R * end GRASPforGP
procedure EnlargePlanar( B, R, P,V) 1 do p Є P 2 Bp = Ø; 3 do b Є B 4 if p y b se cruzan 5 B p = B p U {b}; 6 do r Є R 7 if r y b se cruzan goto 12 fi; 8 od; 9 fi; 10 od; 11 ( B,R,P ) = ( B U {p} \ Bp, R U Bp, P \ {p}); 12 od; 13 return B,R end EnlargePlanar GRASP. Post-procesamiento.
Conclusiones Se probó un gran conjunto de problemas test standard y en la mayoría de ellos la nueva heurística iguala o mejora los resultados anteriores. En algunos casos encuentra soluciones óptimas antes desconocidas.