Una gran variedad de situaciones en IO que se pueden modelar como redes (nodos conectados por arcos) Ejemplos: Diseo de una red de gasoductos Encontrar la ruta ms corta entre ciudades o puntos sobre una red de caminos Determinar la capacidad mxima de una red de tuberas para transportar petrleo Determinar el programa de flujo de costo mnimo desde pozos a refineras a travs de una red de oleoductos Determinacin del cronograma de las actividades en la ejecucin de un proyecto
Estos problemas pueden modelarse como PLE, sin embargo los algoritmos basados en redes (grafos) son mucho ms eficientes que R&A o el mtodo simplex para resolverlos rbol de mnima expansin Algoritmo de la ruta ms corta Algoritmo de flujo mximo Algoritmo de red capacitada de costo mnimo Algoritmo de la ruta crtica Definiciones para redes Una red (N,A) consiste de una serie de nodos (N) conectados con arcos (A) Ej: N = {1,2,3,4,5}, A ={(1,2), (1,3), (2,3), (2,5), (3,4), (3,5), (4,2), (4,5)}
Cada red se asocia con algn tipo de flujo (ej. productos, petrleo, vehculos, personas) El flujo est limitado por la capacidad de los arcos (finita o infinita) Un arco es dirigido (orientado) si permite un flujo positivo en una direccin y flujo cero en la direccin opuesta Una red dirigida tiene todos sus arcos dirigidos. Una ruta es una sucesin de arcos distintos que unen dos nodos pasando por otros nodos, independiente de la direccin de flujo de cada arco. Una ruta forma un ciclo si conecta un nodo consigo mismo, pasando por otros nodos. Un ciclo es dirigido si consiste en una ruta dirigida. Una red conectada es aquella en que cada par de nodos distintos estn enlazados al menos por una ruta Un rbol es una red conectada que puede contener slo un subconjunto de todos los nodos de ella, donde no se permiten ciclos. Un rbol de expansin es un rbol que contiene todos los nodos de la red, sin permitir ciclos.
ejemplo Determine una ruta, un ciclo, un ciclo dirigido, un rbol (con 4 nodos) y un rbol de expansin
Algoritmo de rbol de mnima expansin En una red se busca establecer conectividad (directa o indirecta) para todos sus nodos, asegurando la mnima longitud de los arcos conectores Ej: construccin de una red de carreteras para unir varias ciudades, tendido de una red de comunicaciones Se requieren n-1 arcos, que no formen un ciclo y aseguren el menor costo combinado. Procedimiento Sea N el conjunto de nodos de la red Se definen dos conjuntos: C k = conjunto de nodos que ya se han conectado en forma permanente en la iteracin k C k = conjunto de nodos que todava se deben conectar En cada iteracin se escoge un nodo de C k y se agrega a C k conectndose a la red parcial ya construida. Paso 0. Haga C 0 = f y C 0 = N
Paso 1. Comience en cualquier nodo i del conjunto C 0 y haga C 1 = {i}, C 1 = N {i}. Iguale k=2
Paso general k. Seleccione un nodo j* en el conjunto C k-1
que produzca el arco ms corto a un nodo del conjunto conectado C k-1 . Enlazar j* en forma permanente con C k-1 y sacarlo de C k-1 , es decir C k = C k-1 + {j*} y C k = C k-1 - {j*} Si el conjunto C k de nodos no conectados es vaco, detenerse. En otro caso igualar k = k+1 y repetir el paso ejemplo Una empresa de TV cable desea proveer servicio a nuevas reas residenciales. La red representa posibles tendidos de cables (distancia en millas). Determine la red de conexin de costo mnimo
Problema de la ruta ms corta Consiste en encontrar la ruta de menor distancia entre un nodo origen y un destino en una red de caminos Existen otras situaciones no relacionadas a caminos donde es posible usar el mismo modelo. Ejemplo: reemplazo de equipo Una empresa de arriendo de vehculos est desarrollando un plan de reposicin de su flotilla de automviles para un horizonte de 4 aos. Al iniciar cada ao se toma la decisin si un auto se debe mantener en operacin o se debe sustituir. Un vehculo debe estar en servicio durante un ao como mnimo y 3 aos como mximo El costo de reposicin en funcin del ao de adquisicin y antigedad del vehculo son: Se puede formular como una red de 5 nodos representando el inicio de cada ao. Un arco desde el nodo i al j representa la renovacin del vehculo a comienzos del ao i y su uso hasta el comienzo del ao j (donde se toma una nueva decisin La longitud de un arco es igual al costo de reposicin Cualquier ruta desde el nodo 1 al 5 representa una secuencia de decisiones de reemplazo Su distancia representa el costo de las decisiones Ej: 1-2-3-4-5, $4000+$4300+$4800+$4900= $13000 equivale a reemplazar el vehculo cada ao. Hay rutas ms cortas que esa?
Ejemplo: ruta ms segura La red muestra las diferentes vas con la probabilidad de no ser detenido en cada segmento La probabilidad de no ser multado en una ruta es el producto de las probabilidades de no ser detenido en cada segmento Ej ruta 1-3-5-7, P (no ser detenido) = 0.9 x 0.3 x 0.25 = 0.0675 Se busca la ruta que maximice la probabilidad de no ser multado Es posible hacer una transformacin logartmica que convierta el producto de probabilidades en una suma P = P1 x P2 x x Pk Log P = log P1 + log P2 + + log Pk La maximizacin de P ik equivale a la maximizacin de log P ik
Adems la maximizacin de log Pik equivale a la minimizacin de log P ik Entonces la red de ruta ms corta final asociada es:
Ruta 1-3-5-7, longitud 1.1707 (-log P 17 ) que equivale a una probabilidad P 17 = 0.0675 Ejemplo: acertijo de las 3 jarras Una jarra de 8 litros se llena con lquido. Se cuenta con jarras de 5 y 3 litros y se quiere dividir el contenido en dos partes iguales (de 8 lts) usando slo los 3 jarrones. Cul es la cantidad mnima de vertidos necesarios para lograr este resultado?
Defina un nodo representando la cantidad de lquido en cada jarra (de 8, 5 y 3 lts, respectivamente): inicialmente (8,0,0) y se desea llegar a (4,4,0) Nodos conectados significa una operacin de vertido factible El costo de cada arco es 1 vertido Se desea llegar desde el nodo (8,0,0) al (4,4,0) con la menor distancia recorrida
Algoritmos de ruta ms corta Algoritmos de etiquetamiento iterativo Asignan etiquetas a los nodos en la medida que se van encontrando rutas Algoritmo de Dijkstra Distancia ms corta desde un nodo origen a cualquier otro nodo destino (todos) Algoritmo de Floyd Distancia ms corta entre todos los pares de nodos origen-destino Algoritmo de Dijkstra Etiqueta de un nodo j: [u j , i] u j es la distancia ms corta encontrada hasta ahora desde el nodo origen hasta el nodo j i es el nodo predecesor de j en la ruta desde el nodo origen Se cumple que [u j , i] = [u i + dij, i], donde dij es la distancia desde el nodo i al nodo j Etiqueta del nodo origen; [0,-] Dos tipos de etiquetas: Temporales: si no hay certeza de que el camino desde el nodo origen al nodo actual sea el ms corto Permanentes: hay certeza de ser el camino ms corto
Se debe hacer permanente la etiqueta del nodo r seleccionado en el paso i ejemplo
Iteracin 2: vecinos de nodo 3: 4 y 5
Iteracin 3: vecinos de 4: 2 y 5 grficamente ejemplo Encuentre la ruta ms corta desde el nodo 1 a cada otro nodo Algoritmo de Floyd Permite encontrar la ruta ms corta entre cualquier par de nodos de la red. Las etiquetas se convierten en dos matrices cuadradas de n x n: una matriz de distancias D y otra de secuencias S Para matriz D el elemento (i,j) expresa la distancia (directa) del nodo i al nodo j (infinita si no hay conexin directa) La clave del algoritmo es chequear si para un par de nodos (i,j) es preferible hacer el viaje a travs de otro nodo k (pivote)
d ik + d kj < d ij ?
ejemplo Encuentre la ruta ms corta entre cada par de nodos