Grafos Eulerianos y Hamiltonianos

Embed Size (px)

Citation preview

  • Grafos Eulerianos y Hamiltonianos

    Algoritmos y Estructuras de Datos III

  • Grafos eulerianos

    Definiciones:

    I Un circuito C en un grafo (o multigrafo) G es un circuitoeuleriano si C pasa por todos las aristas de G una y solo unavez.

    I Un grafo euleriano es un grafo que tiene un circuitoeuleriano (o multigrafo).

    Teorema (Euler 1736): Un grafo (o multigrafo) conexo eseuleriano si y solo si todos sus nodos tienen grado par.

    A partir de la demostracion del teorema de Euler se puede escribirun algoritmo para construir un circuito euleriano para un grafo quetiene todos sus nodos de grado par.

  • Grafos eulerianos

    Definiciones:

    I Un circuito C en un grafo (o multigrafo) G es un circuitoeuleriano si C pasa por todos las aristas de G una y solo unavez.

    I Un grafo euleriano es un grafo que tiene un circuitoeuleriano (o multigrafo).

    Teorema (Euler 1736): Un grafo (o multigrafo) conexo eseuleriano si y solo si todos sus nodos tienen grado par.

    A partir de la demostracion del teorema de Euler se puede escribirun algoritmo para construir un circuito euleriano para un grafo quetiene todos sus nodos de grado par.

  • Grafos eulerianos

    u1

    u2

    u3

    u4

    u5

    u6

    u7 u8

  • Grafos eulerianos

    u1

    u2

    u3

    u4

    u5

    u6

    u7 u8

  • Grafos eulerianos

    u1

    u2

    u3

    u4

    u5

    u6

    u7 u8

  • Grafos eulerianos

    u1

    u2

    u3

    u4

    u5

    u6

    u7 u8

  • Grafos eulerianos

    Entrada: G = (V ,X ) conexo con todos los nodos de grado par.

    comenzar por cualquier nodo v y construir un ciclo Zmientras exista e X \ Z hacer

    elegir w tal que existe (w , u) Z y (w , z) X \ Zdesde w construir un ciclo D con D Z = Z := unir Z y D por medio de w

    fin mientrasretornar Z

    Cual es la complejidad de este algoritmo?

  • Grafos eulerianos

    Definiciones:

    I Un camino euleriano en un grafo (o multigrafo) G es uncamino que pasa por cada arista de G una y solo una vez.

    I Un grafo orientado o digrafo, se dice euleriano si tiene uncircuito orientado que pasa por cada arco de G una y solo unavez.

    Teorema: Un grafo (o multigrafo) conexo tiene un caminoeuleriano si y solo si tiene exactamente dos nodos de grado impar.

    Teorema: Un digrafo conexo es euleriano si y solo si para todonodo v de G se verfica que din(v) = dout(v).

  • Grafos eulerianos

    Definiciones:

    I Un camino euleriano en un grafo (o multigrafo) G es uncamino que pasa por cada arista de G una y solo una vez.

    I Un grafo orientado o digrafo, se dice euleriano si tiene uncircuito orientado que pasa por cada arco de G una y solo unavez.

    Teorema: Un grafo (o multigrafo) conexo tiene un caminoeuleriano si y solo si tiene exactamente dos nodos de grado impar.

    Teorema: Un digrafo conexo es euleriano si y solo si para todonodo v de G se verfica que din(v) = dout(v).

  • Grafos eulerianos

    Definiciones:

    I Un camino euleriano en un grafo (o multigrafo) G es uncamino que pasa por cada arista de G una y solo una vez.

    I Un grafo orientado o digrafo, se dice euleriano si tiene uncircuito orientado que pasa por cada arco de G una y solo unavez.

    Teorema: Un grafo (o multigrafo) conexo tiene un caminoeuleriano si y solo si tiene exactamente dos nodos de grado impar.

    Teorema: Un digrafo conexo es euleriano si y solo si para todonodo v de G se verfica que din(v) = dout(v).

  • Problema del cartero chino (Guan, 1962)

    Definicion: Dado un grafo G = (V ,X ) con longitudes asignadas asus aristas, l : X R0, el problema del cartero chino consisteen encontrar un circuito que pase por cada arista de G al menosuna vez de longitud mnima.

    I Si G es euleriano, un circuito euleriano es la solucion delproblema del cartero chino.

    I Hay algoritmos polinomiales para el problema del carterochino cuando G es orientado o no orientado.

    I Pero no se conocen algoritmos polinomiales (el problema noesta computacionalmente resuelto) si el grafo es mixto(algunas aristas orientados y otros no).

  • Problema del cartero chino (Guan, 1962)

    Definicion: Dado un grafo G = (V ,X ) con longitudes asignadas asus aristas, l : X R0, el problema del cartero chino consisteen encontrar un circuito que pase por cada arista de G al menosuna vez de longitud mnima.

    I Si G es euleriano, un circuito euleriano es la solucion delproblema del cartero chino.

    I Hay algoritmos polinomiales para el problema del carterochino cuando G es orientado o no orientado.

    I Pero no se conocen algoritmos polinomiales (el problema noesta computacionalmente resuelto) si el grafo es mixto(algunas aristas orientados y otros no).

  • Grafos hamiltonianos

    Definiciones:

    I Un circuito en un grafo G es un circuito hamiltoniano sipasa por cada nodo de G una y solo una vez.

    I Un grafo se dice hamiltoniano si tiene un circuitohamiltoniano.

    No se conocen buenas caracterizaciones para grafos hamiltonianos.

    Como intentar construir un circuito hamiltoniano?

    No se conocen algoritmos polinomiales para decidir si un grafo eshamiltoniano o no.

  • Grafos hamiltonianos

    Definiciones:

    I Un circuito en un grafo G es un circuito hamiltoniano sipasa por cada nodo de G una y solo una vez.

    I Un grafo se dice hamiltoniano si tiene un circuitohamiltoniano.

    No se conocen buenas caracterizaciones para grafos hamiltonianos.

    Como intentar construir un circuito hamiltoniano?

    No se conocen algoritmos polinomiales para decidir si un grafo eshamiltoniano o no.

  • Grafos hamiltonianos

    Definiciones:

    I Un circuito en un grafo G es un circuito hamiltoniano sipasa por cada nodo de G una y solo una vez.

    I Un grafo se dice hamiltoniano si tiene un circuitohamiltoniano.

    No se conocen buenas caracterizaciones para grafos hamiltonianos.

    Como intentar construir un circuito hamiltoniano?

    No se conocen algoritmos polinomiales para decidir si un grafo eshamiltoniano o no.

  • Grafos hamiltonianos

    Definiciones:

    I Un circuito en un grafo G es un circuito hamiltoniano sipasa por cada nodo de G una y solo una vez.

    I Un grafo se dice hamiltoniano si tiene un circuitohamiltoniano.

    No se conocen buenas caracterizaciones para grafos hamiltonianos.

    Como intentar construir un circuito hamiltoniano?

    No se conocen algoritmos polinomiales para decidir si un grafo eshamiltoniano o no.

  • Grafos hamiltonianos

    Teorema (condicion necesaria): Sea G un grafo conexo. Siexiste W V tal que G \W tiene c componentes conexas conc > |W | entonces G no es hamiltoniano.

    Es cierta la recproca de este teorema?

    Teorema (Dirac) (condicion suficiente): Sea G un grafo conn 3 y tal que para todo v V se verifica que d(v) n/2entonces G es hamiltoniano.

    Es cierta la recproca de este teorema?

  • Grafos hamiltonianos

    Teorema (condicion necesaria): Sea G un grafo conexo. Siexiste W V tal que G \W tiene c componentes conexas conc > |W | entonces G no es hamiltoniano.

    Es cierta la recproca de este teorema?

    Teorema (Dirac) (condicion suficiente): Sea G un grafo conn 3 y tal que para todo v V se verifica que d(v) n/2entonces G es hamiltoniano.

    Es cierta la recproca de este teorema?

  • Metaheursticas

    I Heursticas clasicas.I Metaheursticas o heursticas modernas.

    Cuando usarlas?

    I Problemas para los cuales no se conocen buenos algoritmosexactos.

    I Problemas difciles de modelar.

    Como se evaluan?

    I Problemas test.I Problemas reales.I Problemas generados al azar.I Cotas inferiores.

  • Problema del viajante de comercio (TSP)

    Definicion: Dado un grafo G = (V ,X ) con longitudes asignadas alas aristas, l : X R0, queremos determinar un circuitohamiltoniano de longitud mnima.

    I No se conocen algoritmos polinomiales para resolver elproblema del viajante de comercio.

    I Tampoco se conocen algoritmos -aproximados polinomialespara el TSP general (si se conocen cuando las distancias soneuclideanas).

    I Es el problema de optimizacion combinatoria mas estudiado.

  • Heursticas y algoritmos aproximados para el TSPHeurstica del vecino mas cercano

    elegir un nodo vorden(v) := 0S := {v}i := 0mientras S 6= V hacer

    i := i + 1elegir la arista (v ,w) mas barata con w / Sorden(w) := iS := S {w}v := w

    fin mientrasretornar orden

    Cual es la complejidad de este algoritmo?

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    C := un circuito de longitud 3S := {nodos de C}mientras S 6= V hacer

    ELEGIR un nodo v / SS := S {v}INSERTAR v en C

    fin mientrasretornar C

    Como ELEGIR?

    variantes de la heurstica de insercion

    Como INSERTAR?

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    C := un circuito de longitud 3S := {nodos de C}mientras S 6= V hacer

    ELEGIR un nodo v / SS := S {v}INSERTAR v en C

    fin mientrasretornar C

    Como ELEGIR?

    variantes de la heurstica de insercion

    Como INSERTAR?

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    C := un circuito de longitud 3S := {nodos de C}mientras S 6= V hacer

    ELEGIR un nodo v / SS := S {v}INSERTAR v en C

    fin mientrasretornar C

    Como ELEGIR? variantes de la heurstica de insercion

    Como INSERTAR?

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    Para INSERTAR el nodo v elegido:

    I Sea cvivj es el costo o la longitud de la arista (vi , vj).

    I Elegimos dos nodos consecutivos en el circuito vi , vi+1 tal que

    cviv + cvvi+1 cvivi+1sea mnimo.

    I Insertamos v entre vi y vi+1.

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que:

    I v sea el nodo mas proximo a un nodo que ya esta en elcircuito.

    I v sea el nodo mas lejano a un nodo que ya esta en el circuito.I v sea el nodo mas barato, o sea el que hace crecer menos la

    longitud del circuito.

    I v se elige al azar.

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que:

    I v sea el nodo mas proximo a un nodo que ya esta en elcircuito.

    I v sea el nodo mas lejano a un nodo que ya esta en el circuito.

    I v sea el nodo mas barato, o sea el que hace crecer menos lalongitud del circuito.

    I v se elige al azar.

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que:

    I v sea el nodo mas proximo a un nodo que ya esta en elcircuito.

    I v sea el nodo mas lejano a un nodo que ya esta en el circuito.I v sea el nodo mas barato, o sea el que hace crecer menos la

    longitud del circuito.

    I v se elige al azar.

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que:

    I v sea el nodo mas proximo a un nodo que ya esta en elcircuito.

    I v sea el nodo mas lejano a un nodo que ya esta en el circuito.I v sea el nodo mas barato, o sea el que hace crecer menos la

    longitud del circuito.

    I v se elige al azar.

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que:

    I v sea el nodo mas proximo a un nodo que ya esta en elcircuito.

    I v sea el nodo mas lejano a un nodo que ya esta en el circuito.I v sea el nodo mas barato, o sea el que hace crecer menos la

    longitud del circuito.

    I v se elige al azar.

  • Heursticas y algoritmos aproximados para el TSPHeursticas de insercion

    En el caso de grafos euclideanos (por ejemplo grafos en el planoR2), se puede implementar un algoritmo de insercion:

    I Usando la capsula convexa de los nodos como circuito inicial.

    I Insertando en cada paso un nodo v tal que el angulo formadopor las aristas (w , v) y (v , z), con w y z consecutivos en elcircuito ya construido, sea maximo.

    Hay muchas variantes sobre estas ideas.

  • Heursticas y algoritmos aproximados para el TSPHeurstica del arbol generador

    encontrar un arbol generador mnimo T de G

    duplicar las aristas de T

    armar un circuito euleriano E con los ejes de T ysus duplicados

    recorrer E usando DFS y armar un circuitohamiltoniano de G

    Cual es la complejidad de este algoritmo?

  • Heursticas y algoritmos aproximados para el TSPHeurstica del arbol generador

    Teorema: Si las distancias del grafo G cumplen la desigualdadtriangular, la heurstica del arbol generador es un algoritmoaproximado con una perfomance en el peor caso dada por

    l(CH)/l(C ) = XH(G )/X (G ) 2

    O sea, si las distancias son euclideanas hay algoritmos polinomialespara el problema del TSP aproximado.

  • Heursticas y algoritmos aproximados para el TSPPerfomance de otros algoritmos aproximados en el peor caso

    Si las distancias de G son euclideanas se puede probar que valenlas siguientes cotas para la perfomance en el peor caso:

    Vecino mas proximo XH(G )/X (G ) 1/2(dlog ne+ 1)

    Insercion del mas proximo XH(G )/X (G ) 2

    Insercion del mas lejano XH(G )/X (G ) 2 log n + 0,16

    Insercion del mas barato XH(G )/X (G ) 2

  • Heursticas y algoritmos aproximados para el TSPHeursticas de mejoramiento - Algoritmos de busqueda local

    Como podemos mejorar la solucion obtenida por alguna heursticaconstructiva como las anteriores?

    Heurstica 2-opt de Lin y Kernighan

    obtener una solucion inicial Hpor ejemplo con alguna de las heursticas anteriores

    mientras sea posible hacerelegir (ui , ui+1) y (uk , uk+1) H tal que

    cuiui+1 + cukuk+1 > cuiuk + cui+1uk+1H := H \ {(ui , ui+1), (uk , uk+1)} {(ui , uk), (ui+1, uk+1)}

    fin mientras

    Cuando para este algoritmo? Se obtiene la solucion optima delTSP de este modo?

  • Heursticas y algoritmos aproximados para el TSPHeursticas de mejoramiento - Algoritmos de busqueda local

    I En vez de elegir para sacar de H un par de aristas cualquieraque nos lleve a obtener un circuito de menor longitudpodemos elegir, entre todos los pares posibles, el par que noshace obtener el menor circuito (mas trabajo computacional).

    I Esta idea se extiende en las heursticas k-opt donde se hacenintercambios de k aristas. Es decir, en vez de sacar dosaristas, sacamos k aristas de H y vemos cual es la mejorforma de reconstruir el circuito. En la practica se usa solo2-opt o 3-opt.

  • Algoritmos de descenso o busqueda localEsquema general

    S = conjunto de solucionesN(s) = soluciones vecinasde la solucion sf (s) = valor de la solucion s

    elegir una solucion inicial s Srepetir

    elegir s N(s) tal que f (s) < f (s)reemplazar s por s

    hasta que f (s) > f (s) para todos los s N(s)

  • Algoritmos de descenso o busqueda local

    I Como determinar las soluciones vecinas de una solucion sdada?

    I Que se obtiene con este procedimiento? Sirve?

    I Optimos locales y globales

    I Espacio de busqueda

  • Algoritmos de descenso o busqueda local

    I Como determinar las soluciones vecinas de una solucion sdada?

    I Que se obtiene con este procedimiento? Sirve?

    I Optimos locales y globales

    I Espacio de busqueda

  • Algoritmos de descenso o busqueda local

    I Como determinar las soluciones vecinas de una solucion sdada?

    I Que se obtiene con este procedimiento? Sirve?

    I Optimos locales y globales

    I Espacio de busqueda

  • Algoritmos de descenso o busqueda local

    I Como determinar las soluciones vecinas de una solucion sdada?

    I Que se obtiene con este procedimiento? Sirve?

    I Optimos locales y globales

    I Espacio de busqueda

  • Tabu Search

    I Objetivo: minimizar una funcion f sobre un conjunto desoluciones S .

    I Metaheurstica que gua una heurstica de busqueda local paraexplorar el espacio de soluciones evitando los optimos locales.

    I Iterativamente se mueve de una solucion a otra hasta que secumple algun criterio de terminacion.

    I Cada s S tiene asociada una vecindad N(s) S y cadasolucion s N(s) es alcanzada desde s realizandomovimientos.

  • Tabu Search

    I Explorar todo N(s) puede ser impracticablecomputacionalmente.

    I Restringe la busqueda a V N(s) con |V | |N(s)|.

    I Usa memoria para definir V .

    I Permite moverse de s a s aun si f (s ) > f (s) para salir de unoptimo local.

    I Se pueden generar ciclos.

    I Lista tabu: memoriza soluciones y vecindades consideradas eniteraciones anteriores.

  • Tabu Search - Lista Tabu

    I Memoriza las |T | ultimas soluciones visitadas.I Memoriza movimientos reversos asocidos con los movimientos

    hechos.

    I Clasifica como tabu ciertos atributos de las soluciones.

    I Memoria a corto plazo.I Tamano y permanencia en T .I Almacenar atributos o movimientos es mas efectivo.I Puede hacer que soluciones no visitadas sean tabu.I Funcion de aspiracion:

    I cuando con un movimiento tabu se obtiene una solucion mejorque la mejor hasta ese momento, se permite elegirla.

    I cuando todos los movimientos o vecinos posibles son tabu, seelige alguno de ellos (el menos tabu).

  • Tabu Search - Esquema general

    elegir una solucion inicial s0 Sinicializar la lista tabu Tinicializar la funcion de aspiracion Amientras no se verifique el criterio de parada hacer

    generar V {s N(s0) : s no es tabu o A(s) A(s)}elegir s0 V tal que f (s0) f (s) s V actualizar la funcion de aspiracion Aactualizar la lista tabu Tsi f (s0) < f (s) entonces

    s := s0fin si

    fin mientrasretornar s

  • Tabu Search

    Que hay que hacer para usar este esquema?

    I Determinar el conjunto de soluciones factibles S .I Determinar la funcion objetivo f .I Dar un procedimiento para generar los elementos de N(s).I Decidir el tamano del conjunto V N(s) que

    sera considerado en cada iteracion.

    I Definir la lista Tabu T y su tamano.I De ser posible definir una cota inferior para la funcion objetivo

    f .

    I Definir la funcion de aspiracion A(z) y el umbral deaceptacion.

    I Definir criterios de parada.

  • Tabu Search

    Los criterios de parada mas simples son:

    I Se encontro una solucion optima (si es posible saberlo).

    I {s N(s0) : s no es tabu o A(s) A(s)} = .

    I Se alcanzo el numero maximo de iteraciones permitidas.

    I El numero de iteraciones realizadas sin modificar s es mayorque un numero maximo determinado.

    I Cualquier combinacion de los anteriores.

  • Tabu Search - Mejoras

    Uso de la memoria a largo plazo:

    I Frecuencia: guarda la frecuencia de ocurrencias de atributosen las soluciones visitadas para penalizar o premiar (segunconvenga) movimientos que usan atributos muy usados en elpasado.

    I Intensificacion: intensifica la busqueda en alguna region de Sporque es considerada buena bajo algun criterio.

    I Diversificacion: explora nuevas regiones de S no exploradas.I Camino de soluciones entre dos soluciones prometedoras.I Etc.

  • Tabu Search - Ejemplo: Viajante de comercio

    Solucion inicial: dada por alguna heurstica o al azar.

    Espacio de soluciones: permutaciones de (1, 2, . . . , n).

    Tamano del espacio: (n 1)!/2.Movimientos: k intercambios, por ejemplo k = 2.

    Cardinal de N(s), |N(s)|: n(n 1)/2.

    Es facil generar vecinos al azar y actualizar el costo.

    Con estas definiciones se puede usar el esquema basico.