Caminos y Flujos optimales. Introducción a la Investigación de Operaciones 2007

Documentos relacionados
Tema: Los Grafos y su importancia para la optimización de redes.

Introducción a la Investigación de Operaciones

Algebra Matricial y Teoría de Grafos

Tema 5 Árboles y Grafos.

Matemáticas Discretas

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

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Hamilton, Euler y Dijkstra

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

GLOSARIO DE TÉRMINOS BÁSICOS

Algoritmos y Estructuras de Datos III

Matemáticas Discretas

Definiciones y ejemplos.

Teoría de Grafos. Herramientas de programación para procesamiento de señales

Caminos y Flujos optimales. 2da y 3er clase 2007

TEMA IV TEORÍA DE GRAFOS

Un grafo G = (V, E) se dice finito si V es un conjunto finito.

Algoritmos y Estructuras de Datos III

UNIVERSIDAD NACIONAL DE INGENIERÍA UNI-RUACS. Investigación de Operaciones

A5 Introducción a la optimización en redes

Gráficas : teoría, aplicaciones e interacciones : II

Grafos. Algoritmos y Estructuras de Datos III

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

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

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

2007 Carmen Moreno Valencia

Teoría de grafos y optimización en redes

Trayectorias y circuitos Eulerianos y Hamiltonianos,

CIRCUITOS DE EULER Y HAMILTON

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

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

TEMA 5 El tipo grafo. Tipo grafo

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Grafos

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

Análisis y Diseño de Algoritmos. Teoría de Gráficas

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

NP-Completitud. Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem ELO320 1

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

Capítulo 4: Grafos Clase 4: Árboles

El origen: Los puentes de Königsberg. Grafos. Algoritmos y Estructuras de Datos III. Leonhard Euler ( )

Introducción a la Teoría de Grafos

Grafos. 19 de diciembre de 2013

Sesión 4: Teoría de Grafos

Teoría de redes y optimización en redes

Deseamos interconectar entre si todos los ordenadores de un edificio

INDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS.

Conceptos básicos en la Teoría de Grafos

Algoritmo de Fleury. por. Ramón Espinosa Armenta

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

Francisco J. Hernández López

Capítulo 3: Grafos Clase 1: Grafos: Modelos, tipos, representación e isomorfismo

3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS.

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.

Teoría de Grafos Introducción Grafos isomorfos

TEORIA DE GRAFOS. Estructuras Discretas Ing. Jenny Paredes Aguilar

Coloreo de vértices Definiciones: Coloreo de Grafos. Cotas para χ Proposición: Si H es un subgrafo de G entonces χ(h) χ(g).

Grafos: Fundamentos Representaciones, etc. Jose Aguilar

5.4 Caminos mínimos: Algoritmo de Dijkstra

LAS CIENCIAS DE LA PLANIFICACIÓN

Algoritmos voraces (greedy)

Grafos. Amalia Duch Brown Octubre de 2007

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

CLAVE V

Tema 15: GRAFOS Algoritmos y estructuras de datos I - Tema 15 1

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

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

Instituto de Matemática y Física Taller de Matemática 2009 Estudiantes de Enseñanza Media

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

Tema 2: Grafos y Árboles. Algoritmos y Estructuras de Datos 3

ARBOLES GENERADORES. Orlando Arboleda Molina. 16 de septiembre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

Guía práctica de estudio 7

Escuela de algoritmos de aproximación

Taller de grafs: rutes, mapes i xarxes socials

Algoritmo de Kruskal

Árboles. no es un árbol porque no es conexo. Sin embargo, cada componente conexa es un árbol y, este tipo de grafo se llama bosque.

Raúl E Gutiérrez de Piñerez R. Carlos Andres Delgado

En la fig. 1 se representa el grafo, G=(V,A) donde: V = {1, 2, 3, 4, 5, 6} A = { {1,2}, {1,3}, {1,5}, {3}, {3,4}, {4,5}, {5,6} }

Coloreo de Grafos. Algoritmos y Estructuras de Datos III

Matemáticas discretas II

Capítulo 4: Grafos Clase 3: Grafos planares y Colorabilidad de Grafos

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

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

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

Inteligencia Artificial

Tema: Algoritmos para la ruta más corta en un Grafo.

Objetivos formativos de Matemática Discreta. Tema 1: Conjuntos, aplicaciones y relaciones

Estructuras de Datos y Algoritmos

5.6 Árbol generador de un grafo

Fundamentos y aplicaciones de la teoría de grafos. Grafos eulerianos y hamiltonianos. Diagramas en árbol. (2ª Parte)

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

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.

Tema: Recorrido de Grafos. Ruta más corta

Definiciones: conjuntos, grafos, y árboles. Agustín J. González ELO 320: Estructura de Datos y Algoritmos. 2002

Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios

Programación Lineal. Modelo de Redes. Alcance de las aplicaciones. Curso: Investigación de Operaciones Ing. Javier Villatoro

Digrafos fuertemente conexos minimales (MSD) vs árboles

MATROIDES Y EL ALGORITMO VORAZ

1. GRAFOS : CONCEPTOS BASICOS

Transcripción:

Caminos y Flujos optimales Introducción a la Investigación de Operaciones 2007

Contenido Definiciones básicas. Conexidad. Clausura transitiva. Esqueletos y caminos optimales. Redes. Flujos. Algoritmo de flujo optimal.

Bibliografía Hillier &Lieberman, Introducción a la I.O. Mc Graw Hill,. Baase Sara, Computers Algorithms Adisson Wesley,. Tucker, A. Applied Combinatorics. J. Wiley & Sons, (1980). Otros.

Introducción GRAFO G: herramienta de modelado y análisis de sistemas, conjunto de elementos, relación(es) definida entre pares de elementos, nivel de abstracción, clara representación de relaciones de orden, precedencia, vecindad.

Introducción Sistema: organigrama de una empresa. conjunto de elementos X (empleados,gerentes, secretarias), relación definida entre pares de elementos. (x i,x k ) = x i inmediatamente superior a x k ( o inmediatamente inferior)

Introducción. Definiciones Un grafo G es una dupla G = (X, U), X : conjunto finito y no vacío de vértices, x 1, x 2, x 3,..., x n y se representan como puntos. x1 u4 x4 u1 u5 u'2 u2 u3 x2 x3 U : familia de pares de elementos tomados de X llamados aristas. u 1, u 2, u 3,..., u m se dibujan como líneas. Orden de G es el número de vértices del grafo. Es el cardinal del conjunto X de vértices. X =n.

Introducción. Definiciones Grafo orientado G*, cuando existe una relación de precedencia entre los elementos. Los elementos de X se llaman nodos, y los de U, arcos. U XxX = { u i = (x k,x j ): 1 i U, 1 j, k X, x k, x j X} Todos los grafos son orientados. x1 x2 Todo concepto no orientado en un grafo G = (X,U), deber ser considerado como aplicable de hecho, en un grafo orientado G* al que le corresponde la orientación en los dos sentidos de cada arista. x3

Introducción Problema: Puentes de Konigsberg. 1730, Euler. Modelo: Grafo G Grafo G: estructura que admitimos adecuada, en cuanto a propiedades que nos interesan. Problemas combinatorios. A B D C

Introducción El problema: dado un multigrafo, encontrar un camino que recorra el grafo pasando por cada arista exactamente una vez. Solución: G conexo y de grado par. Condición suficiente para que exista un ciclo euleriano. A B C D

Introducción Otra aplicación: buscar el camino a seguir por un cobrador. Debe pasar por todas las casas una sola vez. Se conocen las distancias entre pares de casas. Solución: encontrar Camino Hamiltoniano óptimo. Problema NP. NOTA: la búsqueda de un Ciclo Euleriano 0(n) polinomial de orden n.

Ejemplo El siguiente grafo representa una red de comunicaciones. Estamos interesados en la vulnerabilidad respecto a interrupciones accidentales. a b c d e f Problema1: Identificar líneas y centros de conexiones que deben permanecer en servicio para evitar la desconexión de la red. No existe ninguna línea que eliminada desconecte la red. El vértice d, si no comunica, desconecta la red.

Problema 2: Encontrar un conjunto minimal de aristas necesarias para conectar los 6 vértices. Hay varios conjuntos mínimos posibles. Uno de ellos es conjunto minimal: {(a,b),(b,c),(c,d),(d,e),(d,f)}. Resultado general: Sea un grafo G de n vértices, el conjunto mínimo de conexión de G (si existe) siempre tiene n-1 aristas. b e a d c f

Cadena (concepto no orientado) Es una secuencia de aristas de G, tal que cada arista de la secuencia tiene un extremo común con el arco precedente y otra con el siguiente. Largo de una cadena, es el número de aristas de la secuencia. Cadena elemental : no repite vértices. Cadena simple: no repite aristas. Introducción. Recorridos

Introducción. Recorridos Camino (concepto orientado) Es una cadena µ = {u 1, u 2,..., u q } en la que para todo u i (con i < q, que no sea el último) el extremo terminal de u i coincide con el extremo inicial de u i+1. Largo de un camino, camino elemental y simple son definiciones análogas a las de cadenas, (con la salvedad de la orientación). Sendero, es un camino elemental ( no repite nodos). Vía, es un camino cuyos arcos se pueden recorrer en su sentido directo o contrario.

Problema del camino entre dos puntos Supongamos que un hombre debe pasar a la otra orilla de un río llevando consigo una oveja, un repollo y un lobo. El inconveniente que se le plantea es que sólo puede cruzar con uno de ellos a la vez y sospecha que si deja solos a la oveja con la repollo ó con el lobo, la oveja se comerá al repollo ó el lobo se comerá a la oveja. Modelamos la estructura de este sistema mediante un grafo y solucionamos

HLRO HLR HLO HRO HO LR L R O Nadie H: Hombre. L: lobo. R: Repollo. O: Oveja. Estado inicial - HLCO Estado final - NADIE

Definiciones Grafo Conexo: para cada par de vértices de G, existe una cadena que los une. En grafos orientados se definen 2 conceptos: a) Débilmente conexo: si existe una cadena (sin tener en cuenta la orientación) que une cada par de nodos distintos. b) Fuertemente conexo: si para cada par ordenado de nodos x e y, existe un camino de x a y. Una componente conexa de G, es un subgrafo engendrado por aquellos vértices que pueden unirse a un vértice x i dado, mediante una cadena (puede ser todo G).

Conexo Fuertemente conexo Debilmente conexo

Ciclos y Circuitos Ciclo: cadena simple, cuyos dos vértices extremos, inicial y terminal, coinciden. Circuito: ciclo donde para todo arco u i (con i < q) el extremo terminal de u i coincide con la extremo inicial del u i+1, entonces, es un camino donde el extremo final del último arco coincide con el extremo inicial del primero. Se extienden los conceptos de elemental, simple.

Cadena Euleriana: cadena simple Ciclo Euleriano: ciclo simple A B C TEOREMA D Un multigrafo (no orientado) G = (X,U) posee un ciclo Euleriano s s i G es conexo y todos sus vértices tienen grado par.

a c d e f g b G conexo y vértices grado par existe ciclo euleriano k h i j l m a n b o C1= a-d-j-n-o-k-l-h-f-e-b-a. d j n k e o f l h

a b c d e f g h k i j l m n o C1= a-d-j-n-o-k-lh-f-e-b-a. C2= d-c-i-j-k-e-d C3= h-g-m-h. C = C1 U C2 UC3 d j n a k b e o f l h c d e i j k h m g

a b c d e f g k h i j l m n o a-d-c-i-j-k-e-d-j-n-o-k-l-h-g-m-h-f-e-b-a,

TEOREMA Ciclo Euleriano ==> G conexo y vértices grado par. Dem Existe cadena que visita todos los vértices por lo menos una vez (conexo). No repite aristas, por lo tanto cada vez que entra y sale de un vértice lo hace por aristas distintas, (grado par) G conexo y vértices grado par ==> existe Ciclo Euleriano. Dem. Por construcción generalizando el procedimiento anterior.

c Corolario E.2: Un multigrafo posee una cadena Euleriana, si y solo si es conexo y tiene exactamente dos vértices de grado impar. Se demuestra observando lo que sucede al agregarle una arista cuyas extremidades sean los dos vértices de grado impar. El concepto de ciclo Euleriano es utilizado en la planificación de redes de alta tensión entre varias ciudades d e b a

Arboles y Algoritmos de Búsqueda. Arbol: es un grafo finito, conexo, sin ciclos y con por lo menos 2 vértices Teorema T.1: Un árbol con n vértices tiene n-1 aristas. Arborescencia, es un árbol dirigido con un nodo llamado raiz, tal que existe un único camino desde la raiz a cualquier otro nodo del árbol.

Esqueleto de G (árbol de cubrimiento - spanning tree) es un subgrafo que es un árbol y que contiene todos los vértices de G. Procedimientos de Construcción: (en el práctico) 1- por Búsqueda Primero en Profundidad: BPP (depth -first search: DFS) 2.- por Búsqueda Primero a lo Ancho: BPA (breadth-first-search: BFS). Importante : si el grafo no es conexo, entonces NO existe esqueleto que lo recorra.

Algoritmo para verificar que un grafo es conexo (en el práctico) 1) Use BPP ( o BPA) para tratar de construir un esqueleto del grafo. 2) Si todos los vértices del árbol son alcanzados en la búsqueda, entonces se ha encontrado un esqueleto del grafo y por lo tanto el grafo es conexo. 3) Si la búsqueda no recorrió todos los vértices, entonces el grafo no es conexo.

Esqueletos: en el práctico Algoritmo de Búsqueda Primero en Profundidad Sea G = (X,U), x, v pertenecen al conjunto X DFS(x) Visite y marque x Mientras exista un vértice v no marcado adyacente a x DFS(v) fin mientras fin

Esqueletos: en el práctico Algoritmo de Búsqueda Primero a lo Ancho Sea G = (X,U), x, v, s pertenecen al conjunto X, Q es una cola o lista FIFO. BFS(x) Visite y marque x. Inserte x en Q Mientras Q no esté vacía realice Saco el primer elemento s de Q Para cada vértice v no marcado adyacente a s visite y marque v inserte v en Q fin para fin mientras fin

MEDIDA DE CONEXION DE GRAFOS Cuerda de un esqueleto en un grafo conexo G cualquier arista de G que no pertenece al esqueleto E. Afirmación: Cualquier subgrafo compuesto por el esqueleto y una cuerda contiene un ciclo cuerda esqueleto

Número ciclomático v(g) de un grafo G, número de cuerdas de cualquier esqueleto en G. Proposición: Sea un grafo G, m el número de aristas, n el número de vértices y c el número de componentes conexas, entonces v(g) = m - n + c. v(g) = 9-7 + 1= 3. Medida de conexión cuerda esqueleto

ESQUELETOS OPTIMALES (mínimo) Sea G = (X, U, W) grafo ponderado de orden n, Esqueleto mínimo es aquel de valor mínimo. Permiten, por ejemplo, calcular el costo mínimo de conexión de un grafo.

A 1 B 7 C 3 D 2 H 8 I 4 P 4 3 5 G 2 F 1 6 2 3 J 4 K 10 2 5 7 O 8 N 8 5 7 3 E L M

A 1 B 7 C 3 D 2 H 8 I 4 P 4 3 5 G 2 F 1 6 2 3 J 4 K 10 2 5 7 O 8 N 8 5 7 3 E L M

ESQUELETOS OPTIMALES (mínimo) Los algoritmos de Kruskal y Prim encuentran un esqueleto mínimo en G. Se demuestra que estos algoritmos construyen esqueletos MINIMOS.

Esqueleto Mínimo Esqueleto de G =(X,U) es un subgrafo que es un árbol y que contiene todos los vértices de G. Esqueleto Mínimo de G = (X, U, W) de orden n, es aquel esqueleto de valor mínimo.

ALGORITMO DE KRUSKAL Repita los siguientes pasos hasta que el conjunto T tenga (n-1) aristas ( T = = n-1): 1) Al comenzar T = (vacío) 2) Agregue a T las aristas de menor valor que no formen un ciclo con las aristas que ya están en T.

ALGORITMO DE PRIM Repita hasta que el árbol T tenga (n-1) aristas: 1) Al comienzo tome cualquier arista que tenga el menor valor asignado. 2) Agregue a T la arista de valor mínimo, conformada por un vértice en T y otro vértice que no pertenezca a T.

Optimalidad Se demuestra que estos algoritmo encuentran el óptimo. La validez y complejidad de los algoritmos propuestos se debe demostrar.

A 1 B 7 C 3 D 2 H 8 I 4 P 4 3 5 G 2 F 1 6 2 3 J 4 K 10 2 5 7 O 8 N 8 5 7 3 E L M Valor: 46