Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grafos eulerianos
Deniciones: Un circuito C en un grafo (o multigrafo) G es un circuito euleriano si C pasa por todos las aristas de G una y slo una o vez. Un grafo euleriano es un grafo que tiene un circuito euleriano (o multigrafo).
Grafos eulerianos
Deniciones: Un circuito C en un grafo (o multigrafo) G es un circuito euleriano si C pasa por todos las aristas de G una y slo una o vez. Un grafo euleriano es un grafo que tiene un circuito euleriano (o multigrafo). Teorema (Euler 1736): Un grafo (o multigrafo) conexo es euleriano si y slo si todos sus nodos tienen grado par. o A partir de la demostracin del teorema de Euler se puede escribir o un algoritmo para construir un circuito euleriano para un grafo que tiene todos sus nodos de grado par.
Grafos eulerianos
u4 u1 u6 u3 u5
u2
u7
u8
Grafos eulerianos
u4 u1 u6 u3 u5
u2
u7
u8
Grafos eulerianos
u4 u1 u6 u3 u5
u2
u7
u8
Grafos eulerianos
u4 u1 u6 u3 u5
u2
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 Z mientras exista e X \ Z hacer elegir w tal que existe (w , u) Z y (w , z) X \ Z desde w construir un ciclo D con D Z = Z := unir Z y D por medio de w n mientras retornar Z
Grafos eulerianos
Deniciones: Un camino euleriano en un grafo (o multigrafo) G es un camino que pasa por cada arista de G una y slo una vez. o Un grafo orientado o digrafo, se dice euleriano si tiene un circuito orientado que pasa por cada arco de G una y slo una o vez.
Grafos eulerianos
Deniciones: Un camino euleriano en un grafo (o multigrafo) G es un camino que pasa por cada arista de G una y slo una vez. o Un grafo orientado o digrafo, se dice euleriano si tiene un circuito orientado que pasa por cada arco de G una y slo una o vez. Teorema: Un grafo (o multigrafo) conexo tiene un camino euleriano si y slo si tiene exactamente dos nodos de grado impar. o
Grafos eulerianos
Deniciones: Un camino euleriano en un grafo (o multigrafo) G es un camino que pasa por cada arista de G una y slo una vez. o Un grafo orientado o digrafo, se dice euleriano si tiene un circuito orientado que pasa por cada arco de G una y slo una o vez. Teorema: Un grafo (o multigrafo) conexo tiene un camino euleriano si y slo si tiene exactamente dos nodos de grado impar. o Teorema: Un digrafo conexo es euleriano si y slo si para todo o nodo v de G se verca que din (v ) = dout (v ).
Grafos hamiltonianos
Deniciones: Un circuito en un grafo G es un circuito hamiltoniano si pasa por cada nodo de G una y slo una vez. o Un grafo se dice hamiltoniano si tiene un circuito hamiltoniano.
Grafos hamiltonianos
Deniciones: Un circuito en un grafo G es un circuito hamiltoniano si pasa por cada nodo de G una y slo una vez. o Un grafo se dice hamiltoniano si tiene un circuito hamiltoniano. No se conocen buenas caracterizaciones para grafos hamiltonianos.
Grafos hamiltonianos
Deniciones: Un circuito en un grafo G es un circuito hamiltoniano si pasa por cada nodo de G una y slo una vez. o Un grafo se dice hamiltoniano si tiene un circuito hamiltoniano. No se conocen buenas caracterizaciones para grafos hamiltonianos. Cmo intentar construir un circuito hamiltoniano? o
Grafos hamiltonianos
Deniciones: Un circuito en un grafo G es un circuito hamiltoniano si pasa por cada nodo de G una y slo una vez. o Un grafo se dice hamiltoniano si tiene un circuito hamiltoniano. No se conocen buenas caracterizaciones para grafos hamiltonianos. Cmo intentar construir un circuito hamiltoniano? o No se conocen algoritmos polinomiales para decidir si un grafo es hamiltoniano o no.
Grafos hamiltonianos
Teorema (condicin necesaria): Sea G un grafo conexo. Si o existe W V tal que G \ W tiene c componentes conexas con c > |W | entonces G no es hamiltoniano. Es cierta la rec proca de este teorema?
Grafos hamiltonianos
Teorema (condicin necesaria): Sea G un grafo conexo. Si o existe W V tal que G \ W tiene c componentes conexas con c > |W | entonces G no es hamiltoniano. Es cierta la rec proca de este teorema? Teorema (Dirac) (condicin suciente): Sea G un grafo con o n 3 y tal que para todo v V se verica que d(v ) n/2 entonces G es hamiltoniano. Es cierta la rec proca de este teorema?
Metaheur sticas
Heur sticas clsicas. a Metaheur sticas o heur sticas modernas. Cundo usarlas? a Problemas para los cuales no se conocen buenos algoritmos exactos. Problemas dif ciles de modelar. Cmo se evalan? o u Problemas test. Problemas reales. Problemas generados al azar. Cotas inferiores.
Para INSERTAR el nodo v elegido: Sea cvi vj es el costo o la longitud de la arista (vi , vj ). Elegimos dos nodos consecutivos en el circuito vi , vi+1 tal que cvi v + cvvi+1 cvi vi+1 sea m nimo. Insertamos v entre vi y vi+1 .
Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que: v sea el nodo ms prximo a un nodo que ya est en el a o a circuito.
Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que: v sea el nodo ms prximo a un nodo que ya est en el a o a circuito. v sea el nodo ms lejano a un nodo que ya est en el circuito. a a
Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que: v sea el nodo ms prximo a un nodo que ya est en el a o a circuito. v sea el nodo ms lejano a un nodo que ya est en el circuito. a a v sea el nodo ms barato, o sea el que hace crecer menos la a longitud del circuito.
Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que: v sea el nodo ms prximo a un nodo que ya est en el a o a circuito. v sea el nodo ms lejano a un nodo que ya est en el circuito. a a v sea el nodo ms barato, o sea el que hace crecer menos la a longitud del circuito. v se elige al azar.
Podemos ELEGIR el nuevo nodo v para agregar al circuito tal que: v sea el nodo ms prximo a un nodo que ya est en el a o a circuito. v sea el nodo ms lejano a un nodo que ya est en el circuito. a a v sea el nodo ms barato, o sea el que hace crecer menos la a longitud del circuito. v se elige al azar.
En el caso de grafos euclideanos (por ejemplo grafos en el plano o R 2 ), se puede implementar un algoritmo de insercin: Usando la cpsula convexa de los nodos como circuito inicial. a Insertando en cada paso un nodo v tal que el ngulo formado a por las aristas (w , v ) y (v , z), con w y z consecutivos en el circuito ya construido, sea mximo. a Hay muchas variantes sobre estas ideas.
encontrar un rbol generador mnimo T de G a duplicar las aristas de T armar un circuito euleriano E con los ejes de T y sus duplicados recorrer E usando DFS y armar un circuito hamiltoniano de G
Teorema: Si las distancias del grafo G cumplen la desigualdad triangular, la heur stica del rbol generador es un algoritmo a aproximado con una perfomance en el peor caso dada por l(C H )/l(C ) = X H (G )/X (G ) 2 O sea, si las distancias son euclideanas hay algoritmos polinomiales para el problema del TSP aproximado.
Si las distancias de G son euclideanas se puede probar que valen las siguientes cotas para la perfomance en el peor caso:
Vecino ms prximo a o Insercin del ms prximo o a o Insercin del ms lejano o a Insercin del ms barato o a
mientras sea posible hacer elegir (ui , ui+1 ) y (uk , uk+1 ) H tal que cui ui+1 + cuk uk+1 > cui uk + cui+1 uk+1 H := H \ {(ui , ui+1 ), (uk , uk+1 )} {(ui , uk ), (ui+1 , uk+1 )} n mientras
Cundo para este algoritmo? Se obtiene la solucin ptima del a o o TSP de este modo?
En vez de elegir para sacar de H un par de aristas cualquiera que nos lleve a obtener un circuito de menor longitud podemos elegir, entre todos los pares posibles, el par que nos hace obtener el menor circuito (ms trabajo computacional). a Esta idea se extiende en las heur sticas k-opt donde se hacen intercambios de k aristas. Es decir, en vez de sacar dos aristas, sacamos k aristas de H y vemos cual es la mejor forma de reconstruir el circuito. En la prctica se usa slo a o 2-opt o 3-opt.
elegir una solucin inicial s S o repetir 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 )
Cmo determinar las soluciones vecinas de una solucin s o o dada? Qu se obtiene con este procedimiento? Sirve? e
Cmo determinar las soluciones vecinas de una solucin s o o dada? Qu se obtiene con este procedimiento? Sirve? e Optimos locales y globales
Cmo determinar las soluciones vecinas de una solucin s o o dada? Qu se obtiene con este procedimiento? Sirve? e Optimos locales y globales Espacio de bsqueda u
Tabu Search
Objetivo: minimizar una funcin f sobre un conjunto de o soluciones S. Metaheur stica que gu una heur a stica de bsqueda local para u explorar el espacio de soluciones evitando los ptimos locales. o Iterativamente se mueve de una solucin a otra hasta que se o cumple algn criterio de terminacin. u o Cada s S tiene asociada una vecindad N(s) S y cada solucin s N(s) es alcanzada desde s realizando o movimientos.
Tabu Search
Explorar todo N(s) puede ser impracticable computacionalmente. Restringe la bsqueda a V N(s) con |V | u Usa memoria para denir V . Permite moverse de s a s aun si f (s ) > f (s) para salir de un o ptimo local. Se pueden generar ciclos. Lista tab: memoriza soluciones y vecindades consideradas en u iteraciones anteriores. |N(s)|.
Memoria a corto plazo. Tamao y permanencia en T . n Almacenar atributos o movimientos es ms efectivo. a Puede hacer que soluciones no visitadas sean tab. u Funcin de aspiracin: o o
cuando con un movimiento tab se obtiene una solucin mejor u o que la mejor hasta ese momento, se permite elegirla. cuando todos los movimientos o vecinos posibles son tab, se u elige alguno de ellos (el menos tabu).
Tabu Search
Qu hay que hacer para usar este esquema? e Determinar el conjunto de soluciones factibles S. Determinar la funcin objetivo f . o Dar un procedimiento para generar los elementos de N(s). Decidir el tamao del conjunto V N(s) que n ser considerado en cada iteracin. a o Denir la lista Tab T y su tamao. u n De ser posible denir una cota inferior para la funcin objetivo o f. Denir la funcin de aspiracin A(z) y el umbral de o o aceptacin. o Denir criterios de parada.
Tabu Search
Los criterios de parada ms simples son: a Se encontr una solucin ptima (si es posible saberlo). o o o {s N(s0 ) : s no es tabu o A(s) A(s )} = . Se alcanz el nmero mximo de iteraciones permitidas. o u a El nmero de iteraciones realizadas sin modicar s es mayor u que un nmero mximo determinado. u a Cualquier combinacin de los anteriores. o
Uso de la memoria a largo plazo: Frecuencia: guarda la frecuencia de ocurrencias de atributos en las soluciones visitadas para penalizar o premiar (segn u convenga) movimientos que usan atributos muy usados en el pasado. Intensicacin: intensica la bsqueda en alguna regin de S o u o porque es considerada buena bajo algn criterio. u Diversicacin: explora nuevas regiones de S no exploradas. o Camino de soluciones entre dos soluciones prometedoras. Etc.
Solucin inicial: dada por alguna heur o stica o al azar. Espacio de soluciones: permutaciones de (1, 2, . . . , n). Tamao del espacio: (n 1)!/2. n Movimientos: k intercambios, por ejemplo k = 2. Cardinal de N(s), |N(s)|: n(n 1)/2. Es fcil generar vecinos al azar y actualizar el costo. a Con estas deniciones se puede usar el esquema bsico. a