TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 1



Documentos relacionados
Teoría de redes y optimización en redes

Flujos de redes (Network Flows NF)

Teoría de grafos y optimización en redes

Introducción. Königsberg, s.xviii A

Pasos en el Método Simplex

4. Método Simplex de Programación Lineal

3. Métodos clásicos de optimización lineal

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

315 M/R Versión 1 Integral 1/ /1 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA

Trayectorias y circuitos Eulerianos y Hamiltonianos,

Hamilton, Euler y Dijkstra

PREPARANDO EL MODELO PARA ADAPTARLO AL MÉTODO SIMPLEX. a21 x1 + a22 x a2n xn = b2... am1 x1 + am2 x amn xn = bm x1,...

Algebra Matricial y Teoría de Grafos

Definición de problemas de programación lineal. Método gráfico. Método del SIMPLEX. Método de las dos fases. Análisis de sensibilidad y problema dual

Aplicaciones de la programación

PASO 1: Poner el problema en forma estandar.

Un GRAFO O GRAFO NO ORIENTADO es una terna G = {V, A,ϕ } conv

PROGRAMACIÓN LINEAL ENTERA

Francisco J. Hernández López

Conjuntos disjuntos (Relaciones de equivalencia)

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

Matemáticas Discretas

La programación lineal hace referencia al uso eficiente o distribución de recursos limitados, para alcanzar unos objetivos determinados.

Matemáticas Discretas

Problemas de transporte, asignación y trasbordo

UNIDAD UNO PROGRAMACIÓN LÍNEAL Parte 3

Fundamentos de Investigación de Operaciones Modelos de Grafos

UNIVERSIDAD DE MANAGUA Al más alto nivel

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

Desarrollo de las condiciones de optimalidad y factibilidad. El problema lineal general se puede plantear como sigue:

Capítulo 5 Introducción a la teoría de grafos

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

PROGRAMACION ENTERA. M. en C. Héctor Martínez Rubin Celis 1

Planaridad. Algoritmos y Estructuras de Datos III

Los elementos de V son los vértices (o nodos) de G y los elementos de A son las aristas (o arcos) de G.

CLAVE: MIS 206 PROFESOR: MTRO. ALEJANDRO SALAZAR GUERRERO

Modelado y Optimización de Proyectos

Programación Lineal. Unidad 1 Parte 2

EL MÉTODO SIMPLEX. los redondos. Por último, a los manteles rectangulares se les deben colocar cuatro esquineros de refuerzo.

Grafos eulerianos. Introducción a los grafos eulerianos GRAFOS EULERIANOS. Contenido. Contenido Introducción a los grafos eulerianos

Sistemas de Ecuaciones Lineales

Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel?

Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel?

En el siguiente capítulo se hará un repaso de algunas propiedades básicas de conjuntos convexos, para después explicar el método simplex.

Matemáticas Discretas L. Enrique Sucar INAOE. Teoría de Grafos. Problema de los puentes de Königsberg [Euler]

2007 Carmen Moreno Valencia

MÉTODO SIMPLEX. PROFESORA: LILIANA DELGADO HIDALGO Estandarización Tradicional

Tema 5 Árboles y Grafos.

GRAFOS. 1. La matriz de adyacencia del grafo G es

EJEMPLO DE SIMPLEX PARA PROBLEMA DE PROGRAMACIÓN LINEAL CASO DE MAXIMIZAR Prof.: MSc. Julio Rito Vargas Avilés

Vectores y Matrices. Tema 3: Repaso de Álgebra Lineal Parte I. Contenidos

MÉTODO SIMPLEX MÉTODO DE SOLUCIÓN GRÁFICO

UNIVERSIDAD NACIONAL DE INGENIERÍA UNI RUACS ESTELI

Representación y manipulación de grafos: caminos, expansión, cortes y flujos

Modelos de Redes: Árbol. M. En C. Eduardo Bustos Farías

Números enteros. Dado cualquier número natural, éste siempre será menor que su sucesor, luego los naturales son ordenados.

TEMA IV TEORÍA DE GRAFOS

Lección 5.1: Matrices y determinantes. Primeros conceptos. Objetivos de esta lección

A5 Introducción a la optimización en redes

Módulo Programación lineal. 3 Medio Diferenciado

Ejemplo : PROGRAMACIÓN LINEAL

Inteligencia Artificial Resolver problemas mediante búsqueda

Matemática Discreta. Tijani Pakhrou

Es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre

UNIVERSIDAD TECNOLOGICA DE PEREIRA PROGRAMA DE TECNOLOGIA ELECTRICA

Si el objetivo es maximizar, entonces se tiene la forma estándar de maximización y, si el objetivo es minimizar, la forma estándar de minimización.

UNIVERSIDAD DE MANAGUA Al más alto nivel

Estructura de Datos Página 1 de 13 ESTRUCTURA DE DATOS

TEMA I. Teoría de Circuitos

Algoritmo de Fleury. por. Ramón Espinosa Armenta

CONVEXIDAD: CONCEPTOS BÁSICOS

Teoría de Grafos Introducción Grafos isomorfos

NIVEL 17: ESTRUCTURAS NO LINEALES

GRAFOS. All about. Términos Básicos A B E E. Arista >> Relación entre dos vértices de un grafo. Grafo Dirigido Grafo no Dirigido.

Separadores minimales de vértices de grafos dualmente cordales y caracterizaciones

TEORIA DE GRAFOS. Estructuras Discretas Ing. Jenny Paredes Aguilar

Tema 2. Grupos. 3. El conjunto de matrices de orden 2 con coeficientes enteros (o reales) con la suma es un grupo conmutativo.

Programación Lineal. Optimización de la combinación de cifras comerciales en una red lineal de distribución de agua.

METODO SIMPLEX ANALISIS DE SENSIBILIDAD Y DUALIDAD

Capítulo 4: Grafos Clase 2: Caminos, Circuitos Eulerianos y Hamiltonianos

Para que un problema pueda ser solucionado por el método de transporte, este debe reunir tres condiciones:

Conceptos básicos en la Teoría de Grafos

PROGRAMACIÓN LINEAL. 1. Introducción

Algoritmos y Estructuras de Datos III

Dualidad 1. 1 Formas simétricas. 2 Relación primal-dual. 3 Dualidad: el caso general. 4 Teoremas de dualidad. 5 Condiciones de holgura complementaria.

Algoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. Dept. de Computación, Universidade da Coruña

GRAFOS I. Antonio Luis Rodríguez López-Cañizares y Ceferino Ruiz Garrido

TEMA III MÉTODO SIMPLEX. CONCEPTOS BÁSICOS

Instituto tecnológico de Minatitlán. Investigación de operaciones Ing. Erika Lissette Minaya mortera Unidad 3: programación no lineal

1. CIRCUITO. a) Irene se dio un paseo por este circuito y salió convertida en el 17. Qué itinerario siguió y qué número era al principio?

Tema 2.TEORIA Y APLICACIONES DE LA TEORÍA DE GRAFOS.

Tema 5: Grafos. CIS - UABJB - Estructura de Datos II Ing. Freddy Melgar Algarañaz 1

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc.

Complementos de Matemáticas, ITT Telemática

Grafos. Algoritmos y Estructuras de Datos III

Caminos. Sobre los problemas de encontrar caminos en grafos. Complexity D.Moshkovitz

Teoría de Grafos I. 2. Describa tres situaciones prácticas en las cuales un grafo pueda ser útil.

Pruebas de Acceso a Enseñanzas Universitarias Oficiales de Grado (PAEG) Matemáticas aplicadas a las Ciencias Sociales II - Junio Propuesta B

Práctica 2 Métodos de búsqueda para funciones de una variable

GLOSARIO DE ANÁLISIS DE REDES SOCIALES

Transcripción:

Optimización en redes. Fluos en redes (Network Flows NF) Andrés Ramos Universidad Pontificia Comillas http://www.iit.comillas.edu/aramos/ Andres.Ramos@comillas.edu TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 1

Optimización en redes. Fluos en redes (Network Flows NF) 1. Terminología 2. Camino mínimo 3. Árbol generador mínimo 4. Fluo máximo 5. Fluo de coste mínimo 6. Algoritmos de recorrido de grafos TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 2

Terminología 1 2 3 4 Red Nodos Vértices Nudos Grafo Arcos Aristas Ramas N = {1, 2, 3, 4} A = {(1, 2), (1, 3), (1, 4), (3, 4)} Arco dirigido Red dirigida Camino Camino dirigido (camino) Camino NO dirigido (cadena) Ciclo aquél que permite el fluo en un solo sentido conunto de nodos unidos por arcos dirigidos secuencia de arcos que conectan nodos secuencia de arcos dirigidos en el sentido del nodo final secuencia de arcos cuyo sentido puede ser hacia o desde el nodo final camino que empieza y acaba en el mismo nodo TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 3

1 3 2 5 4 Camino dirigido (camino) (1, 2) (2, 5) (5, 3) (3, 4) Camino NO dirigido (cadena) (1, 2) (2, 5) (5, 4) Ciclo dirigido (circuito) (5, 3) (3, 4) (4, 5) Ciclo NO dirigido (ciclo) (1, 2) (2, 5) (5, 3) (3, 1) Nodos conexos dos nodos son conexos si la red contiene al menos una cadena entre ellos Red conexa red donde cada parea de nodos es conexa Árbol red conexa sin ciclos Árbol generador red conexa sin ciclos que tiene exactamente n-1 arcos para recorrer todos los n nodos Capacidad de un arco máximo fluo por un arco Nudo de generación aquél cuyo fluo saliente excede al entrante Nudo de demanda aquél cuyo fluo entrante excede al saliente Nudo de transbordo (conexión) aquél que conserva el fluo TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 4

Representación de un grafo (i) Matriz de incidencia: filas nodos, columnas aristas, 1 si el nodo i pertenece a la arista elementos bi = 0 otro caso Grafo dirigido: -1 nodo inicial, +1 nodo final. Dos elementos por columna. Matriz unimodular. Matriz de adyacencia: filas nodos, columnas nodos, 1 si existe un arco (arista) del nodo i al elementos ai = 0 otro caso Matriz simétrica en caso de redes no dirigidas. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 5

Representación de un grafo (ii) 1 2 4 3 1 0 0 1 0 1 1 0 0 1 B = 0 1 1 0 0 0 0 1 1 1 Matriz de incidencia 0 1 0 1 1 0 1 1 A = 0 1 0 1 1 1 1 0 Matriz de adyacencia TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 6

Representación de un grafo (iii) 1 2 4 3 B 1 0 0 1 0 1 1 0 0 1 = 0 1 1 0 0 0 0 1 1 1 Matriz de incidencia 0 1 0 0 0 0 1 0 A = 0 0 0 1 1 1 0 0 Matriz de adyacencia TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 7

Problema del camino mínimo Hipótesis: Red conexa no dirigida Cada arco no dirigido lleva asociada una distancia no negativa Otras posibilidades: Redes dirigidas Restricciones en los caminos Obetivo: Encontrar la distancia (coste, tiempo, etc.) mínima entre el origen y el resto de nodos TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 8

imetro: Subway best route calculator (http://www.iit.comillas.edu/imetro/) TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 9

Procedimiento del problema del camino mínimo Algoritmo de Dikstra PASO 0: INICIO, SE ETIQUETAN LOS NODOS CON LA LONGITUD DEL ARCO QUE LOS UNE CON EL ORIGEN 1 0 u =, u d1 2,..., n = =. P = { 1}, T { 2,.., n} =, pred( ) = 1, = 2,..., n PASO 1: DESIGNAR LA ETIQUETA PERMANENTE DE LA ITERACIÓN: VÉRTICE CON MENOR VALOR DE LA ETIQUETA TRANSITORIA Buscar k T tal que uk min{ u } Si T =, parar. =. Hacer P = P { k} y T T { k} T PASO 2: REVISAR LAS ETIQUETAS TRANSITORIAS =. T calcular u = min { u, uk + dk}, si se modifica poner pred( ) = k. Volver al PASO 1. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 10

Procedimiento del problema del camino mínimo Algoritmo de Bellman-Ford Utilizar sólo para el caso de arcos con distancia negativa m u longitud del camino mínimo del vértice 1 al vértice usando a lo sumo m arcos PASO 1: INICIAR CON LONGITUDES DE LOS ARCOS DEL NODO 1 A LOS DEMÁS NODOS 1 1 u 1 = 0, u = d1 = 2,..., n. Poner m = 1 PASO 2: CALCULAR LAS DISTANCIAS MÍNIMAS USANDO A LO SUMO m + 1 ARCOS { } Calcular m + 1 u min m,min{ m u uk dk} Si m 1 m u u = +. k + =, parar. Si no, poner m = m + 1 y volver al paso 2. 1 1 Obsérvese que para m= n seguro se cumplirá u u n n 1 = ya que se trata de construir un árbol. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 11

Problema del árbol generador mínimo Aplicaciones: Redes de telecomunicación, de distribución o de transporte Hipótesis: Red conexa no dirigida Distancia no negativa en cada arco Obetivo: Encontrar la cadena de longitud mínima que recorre todos los nodos sin ciclos (es decir, el árbol generador de mínimo peso). TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 12

Procedimiento del problema del árbol generador mínimo Algoritmo de Prim 1. Selección arbitraria de cualquier nodo y conexión al nodo diferente más cercano Hacer C 0 =, C0 = V. Elegir un vértice cualquiera i V y hacer C = { i}, C = V { i}. Sea k = 2 y T =. 2. Selección del nodo no conectado más cercano a cualquier nodo conectado y establecimiento de un arco nuevo. * Seleccionar, un nodo no conectado tal que se une a algún vértice ya conectado Ck 1 (de Ck 1) con la arista de menor peso k 1 { } T = T e k 1. Si k = n, parar. Si no, poner k = k + 1 y repetir el paso 2. e. Hacer C { * k = Ck 1 }, C { * k Ck 1 } 1 1 = y TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 13

Los empates se pueden solucionar de manera arbitraria sin pérdida del óptimo. Indican la posible existencia de múltiples soluciones óptimas. La distancia óptima no depende de la elección del nodo inicial. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 14

Problema de fluo máximo Hipótesis: Red conexa dirigida sin bucles Nodos origen y destino, el resto son de transbordo Cada arco tiene una capacidad asociada Obetivo: Maximizar el fluo total desde el origen al destino Métodos de resolución: Programación lineal Algoritmo del camino de aumento (Ford-Fulkerson) TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 15

Fluo compatible Aquél que verifica: El fluo no supera la capacidad de ningún arco ( ϕ c ( i, ) ) Verifica la ley de conservación de fluo: i i i s, t ϕ ϕ = 0 i /(, i) U /( i, ) U i ( 5 ) ( 4 ) 2 1 2 ( 5 ) s 3 ( 5 ) 2 ( 6 ) 3 ( 2 ) 2 4 t 5 4 ( 7 ) 3 4 ( 5 ) 3 ( 6 ) Problema de fluo máximo: determinar el fluo compatible que transporta la mayor cantidad de fluo de la fuente (origen) al sumidero (destino). TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 16

Método del camino de aumento (Ford-Fulkerson) Basado en tres conceptos principales: red residual, camino de aumento y corte Capacidad residual de un arco: Se indica como un número unto al nodo para su fluo saliente. Asignar una cantidad en un arco es incrementar en un sentido y decrementar en el otro. A 3 7 B Red residual: Indica el fluo sobrante de cada arco para asignarle fluo adicional sin violar su capacidad. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 17

Camino de aumento: Camino dirigido del origen al destino en la red residual con todos sus arcos con capacidad residual estrictamente positiva. Capacidad residual del camino de aumento: Mínimo de las capacidades residuales de los arcos. Corte: Partición de la red en dos subredes (componentes) cualesquiera, conteniendo una el origen y otra el destino. Capacidad del corte: Suma de las capacidades de los arcos que unen ambas subredes (cruzan el corte) en el sentido de origen a destino. Fluo por un corte: Suma de los fluos que atraviesan el corte cada uno con su sentido. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 18

Teorema de máximo fluo mínimo corte: Para una red conexa dirigida con un origen y un destino el valor del fluo máximo es igual al valor mínimo de las capacidades de corte de cualquier corte de la red. En el óptimo no existen caminos de aumento en la red residual y se obtiene un corte con capacidad de corte cero en la red residual. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 19

Algoritmo de Ford-Fulkerson 1. Obtención de la red residual a partir de la red inicial 3 A B A 3 2. Identificar un camino de aumento Si no existe tal camino de aumento los fluos son óptimos 3. Calcular la capacidad residual del camino de aumento c* 4. Disminuir en c* la capacidad residual de cada arco de dicho camino en el sentido de origen a destino. Incrementar en c* las capacidades residuales en el sentido opuesto Procedimiento para encontrar un camino de aumento en redes de gran tamaño. 1. Etiquetar todos los nodos alcanzables desde el origen con un solo arco con capacidad residual estrictamente positiva. 2. Repetir recursivamente el proceso para los nodos anteriores hasta etiquetar todos. 0 B TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 20

Algoritmo de Ford-Fulkerson PASO 1: COMENZAR CON UN FLUJO COMPATIBLE Y OBTENER LAS CAPACIDADES RESIDUALES DE LOS ARCOS Poner fluo 0 ϕ i = 0 ( i, ) U y capacidades residuales Etiquetar s (, ) c = c ( i, ) U. PASO 2: OBTENER UN CAMINO DE AUMENTO, INCLUSO REDIRECCIONANDO FLUJO ANTERIORMENTE ASIGNADO Sea i V un nodo ya etiquetado y sea V un nodo sin etiquetar tal que existe el arco ( i, ) o el arco (, i ). Hacer según el caso: a) Si ( i, ) V y la capacidad residual no es 0 ( c * i > 0) puede aumentar fluo, calcular el mínimo de la capacidad residual de los arcos anteriores y este arco y etiquetar el nodo, es decir, calcular δ min {, * = δi ci} y etiquetar el nodo con ( i+, δ ). b) Si (, i) V y se está enviando fluo por ese arco ( ϕ i > 0) se puede redireccionar parte de ese fluo (se puede disminuir en ese arco), entonces calcular δ = min { δi, ϕ i} y etiquetar el nodo con ( i, δ ). * i i TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 21

Repetir hasta que el sumidero esté etiquetado e ir al paso 3 o hasta que no sea posible etiquetar más nodos (que se habrá acabado) e ir al paso 4. PASO 3: AUMENTAR EL FLUJO EN EL CAMINO OBTENIDO Y RECALCULAR LAS CAPACIDADES RESIDUALES Recorrer el camino de nodos etiquetados aumentando el fluo en los arcos etiquetados positivamente y disminuyéndolo en los etiquetados negativamente en la cantidad con que se etiquetó el sumidero δ t (capacidad residual del camino). Recalcular las capacidades residuales (disminuir en los arcos positivos y aumentar en los negativos). Borrar las etiquetas, excepto la de la fuente, y volver al paso 2. PASO 4: PARAR, NO ES POSIBLE AUMENTAR EL FLUJO El fluo obtenido es máximo y el corte de capacidad mínima viene dado por los nodos etiquetados en una componente y los no etiquetados en otra (es decir, el corte son los arcos que vayan de una componente a otra). TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 22

Hipótesis: Red conexa dirigida con n nodos Al menos un origen y un destino Problema de fluo de coste mínimo Variables xi 0 fluo a través del arco i i, Parámetros c coste unitario del fluo i i u capacidad del arco i i b fluo neto generado en el nodo i i b i > 0 nodo generador. b i < 0 nodo consumidor. b i = 0 nodo de transbordo. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 23

min x i= 1 = 1 i n n c x i i Balance o conservación del fluo en cada nudo i n n x x = b i = 1,, n i ki i = 1 k = 1 x u arco i 0 i i Se supone que la oferta es igual a la demanda del producto n i= 1 b i = 0 Propiedad de soluciones enteras: Si b i y u i son enteros todas las variables básicas en cada solución básica son enteras. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 24

Casos particulares del problema de fluo de coste mínimo Problema de transporte Problema de asignación de tareas Número de nodos de generación (personas) = número de nodos de demanda (tareas) Demanda en cada nodo consumidor = 1 Generación en cada nodo generador = 1 Problema de transbordo Problema de fluo de coste mínimo sin restricciones de capacidad en los arcos. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 25

Problema de camino mínimo Origen: nodo generador con generación = 1 Destino: nodo consumidor con demanda = 1 Red no dirigida: red dirigida con arcos en ambos sentidos Distancia: coste por unidad de fluo independiente del sentido Arcos no acotados (acotados con límite 1) Problema de fluo máximo Anular los costes del fluo c i de los arcos existentes Seleccionar una cantidad F (cota superior del máximo fluo posible) y asignarlo como generación en el nudo origen y demanda en el nodo destino Añadir un arco entre O y D con coste c i elevado y capacidad ilimitada La minimización del coste hace que se envíe la mayor cantidad posible de fluo por los arcos de la red existente TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 26

Problema de fluo compatible con coste mínimo En este problema se incorpora un nuevo elemento en la red, el coste. Se supone asociado a cada arco un coste unitario de envío de fluo a través del arco, d i. El problema consiste en enviar una cantidad de fluo conocida, θ, a través de la red desde la fuente (origen) al sumidero (destino), con coste total mínimo. min ( i, ) U i/( s, i) U i/( i, t) U d i i i i/(, i) U i/( i, ) U i 0 ϕ c ( i, ) U i ϕ ϕi = θ ϕ = θ ϕ ϕ = 0 s, t i i TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 27

Algoritmos de recorridos en grafos Recorren los vértices y aristas de un grado con ciertas condiciones 1. Ciclo y camino euleriano Problema del cartero chino 2. Ciclo hamiltoniano Problema del viaante TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 28

Ciclo y camino euleriano Ciclo euleriano: ciclo que pasa por todos los nodos y atraviesa exactamente una vez cada arista. Camino euleriano: camino entre dos nodos que pasa por todos los vértices y atraviesa exactamente una vez cada arista. Teorema de Euler: Sea G = ( V, E) un grafo o multigrafo. G posee un ciclo euleriano si y sólo si G es conexo y todos sus vértices son de grado par (número de aristas que inciden en el vértice). Un grafo G tiene un camino euleriano si y sólo si es conexo y tiene a lo sumo dos vértices de grado impar (que serían inicio y final del camino). TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 29

Determinar un ciclo euleriano Idea: Determinar todos los ciclos posibles de un grafo y unirlos entre sí. Algoritmo: Sea A = ( a i ) la matriz de adyacencia del grafo G = ( V, E). PASO 1: CONDICIÓN DE EXISTENCIA Si existe un vértice de grado impar ( i V tal que a no es par ), parar ya que no existe ciclo euleriano. En otro caso, poner p = 0 e ir al paso 2. PASO 2: CONSTRUCCIÓN DE UN CICLO Poner p = p + 1. Elegir k una fila no nula de la matriz A y buscar un ciclo de la siguiente forma: a) Definir n = k y C = { v k } b) Buscar m tal que a nm > 0 (es decir, que todavía sea posible ir del vértice v n al vérticev m. c) Incluir el vértice v m en C ( C = C { v m }) y hacer anm = amn = 0 (eliminar la existencia de esa arista pues no puede volver a ser utilizada). i TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 30

d) Ponern = m. Si n k (no se ha cerrado el ciclo) volver al paso 2b). Si no, almacenar el ciclo C haciendo C = C e ir al paso 3. PASO 3: CONDICIÓN DE PARADA p Si existe alguna arista sin utilizar ( 0) volver al paso 2. Si no, ir al paso 4. a i PASO 4: FORMACIÓN DEL CICLO EULERIANO A PARTIR DE LOS CICLOS ALMACENADOS Buscar dos ciclos almacenados C i y C con al menos un vértice común, v k. Eliminar el vértice de uno de ellos, C i, y sustituirlo por el otro ciclo, C. Eliminar este último, C, del almacén de ciclos. Repetir el proceso hasta que quede un único ciclo, que será un ciclo euleriano. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 31

Problema del cartero chino Dado un grafo no dirigido G = ( V, E) conexo con distancias en las aristas, determinar un recorrido que pase al menos una vez por cada arista y cuya longitud sea mínima. Corresponde al problema de un cartero que tiene que pasar por todas las calles de una red para repartir el correo recorriendo la menor distancia posible. Si el grafo tiene un ciclo euleriano es evidente que ese ciclo será la solución al problema. Si no lo tiene (algún vértice es de grado impar), alguna o algunas aristas han de ser recorridas más de una vez. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 32

Ciclo y camino hamiltoniano Sea G = ( V, E) un grafo no dirigido o un multigrafo. G tiene un ciclo hamiltoniano si existe un ciclo elemental (no repite vértices) que contiene todos los vértices del grafo. Un camino hamiltoniano es un camino elemental que contiene todos los vértices deg. Dado un ciclo hamiltoniano, la eliminación de cualquier arista da un camino hamiltoniano. Al revés, sin embargo, no siempre es factible. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 33

Problema del viaante Consiste en encontrar el circuito hamiltoniano de longitud mínima en un grafo valorado, exigiendo que visite cada vértice exactamente una vez o que se visite al menos una vez. Grafo no dirigido: problema del viaante simétrico. Grafo dirigido: problema del viaante asimétrico. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 34

Algoritmo bioptimal para el TSP simétrico sobre el grafo G Paso previo: construir el grafog, es decir, un grafo completo con distancias entre los nodos las distancias mínimas entre esos dos nodos en el grafo original. PASO 1: INICIO Seleccionar un nodo origens. Elegir otro nodot, que sea el de distancia mínima desde el origen ( d( s, t) d( s, ) t ). Poner l = t y guardar los nodos s y l como visitados. PASO 2: CONSTRUCCIÓN DEL RECORRIDO INICIAL MEDIANTE ESTRATEGIA GREEDY Seleccionar t entre los nodos no visitados de modo que sea el de menor distancia al nodo l de los visitados. Añadir t al final del recorrido y ponerl = t. Si hay nodos que no están en el recorrido repetir el paso 2, en otro caso, añadir s al recorrido e ir al paso 3. PASO 3: GUARDAR EL RECORRIDO Y CALCULAR SU LONGITUD El recorrido será {,,...,, } x x x x y su longitudl. Poneri = 1. 1 2 n 1 PASO 4: INICIAR EL CAMBIO DE LIGADURAS DEL RECORRIDO Poner = i + 2. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 35

PASO 5: EVALUAR EL CAMBIO DE LIGADURAS Considerar el recorrido { x1,..., xi, x, x 1,..., xi 1, x 1,..., x1} + + creado por el intercambio de ligaduras (ver en la figura adunta el recorrido inicial en trazo liso y el nuevo recorrido en trazo punteado) y obtener su longitudl. Si L < L (es meor este recorrido), considerar el nuevo recorrido como base para hacer los cambios y volver al paso 3. En otro caso ir al paso 6. x 2 x 1 x i x + 1 x x i + 1 PASO 6: CONDICIÓN DE PARADA O VUELTA A INTERCAMBIAR LIGADURAS Poner = + 1. Si n, ir al paso 5. Si no, poneri = i + 1. Sii n 2, ir al paso 4. Si no, parar. TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 36