Todos los Pares de Rutas más Cortas (All-Pairs Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE
|
|
- Carlos Lagos Castillo
- hace 5 años
- Vistas:
Transcripción
1 Todos los Pares de Rutas más Cortas (All-Pairs Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE
2 Problema de Encontrar todos los Pares de Rutas más Cortas 2 Encontrar las rutas más cortas entre todos los pares de vértices de un grafo Es el problema para hacer una tabla de distancias entre todos los pares de ciudades en un Atlas de carreteras Partimos de un grafo pesado y dirigido G = (V, E) con una función de pesos w : E R que mapea arcos a pesos con valores reales Encontrar para cada par de vértices u, v V Una ruta más corta (con menor peso) de u a v Donde el peso de la ruta es la suma de los pesos de sus arcos Salida en forma tabular Entrada en renglón u y columna v es el peso de la ruta más corta entre u y v
3 Problema de Encontrar todos los Pares de Rutas más Cortas Podemos resolver el problema ejecutando el algoritmo de rutas más cortas con una sola fuente V veces, una para cada vértice como la fuente Si todos los pesos son no-negativos, podemos utilizar el algoritmo de Dkstra Con un arreglo lineal implementando una priority-queue podemos tener un tiempo de O(V 3 +VE) = O(V 3 ) Con min-heap binario para priority-queue, O(VElgV) Mejora para grafos poco densos Con Fibonacci-heap para priority-queue O(V 2 lgv+ve) 3
4 Problema de Encontrar todos los Pares de Rutas más Cortas Si hay pesos negativos ya no podemos utilizar Dkstra 4 Entonces utilizaríamos Bellman-Ford (aunque más lento), una vez para cada vértice O(V 2 E), que para un grafo denso se convierte en O(V 4 ) Estos tiempos se pueden mejorar con otros algoritmos Algunos algoritmos utilizan representación de matriz de adyacencia y no la de lista de adyacencia como en los algoritmos de una sola fuente
5 Modelado del Problema Grafo dirigido y pesado, G = (V, E) Representación de matriz de adyacencia Pesos: W =(w ) 0 si i = w = el peso del arco dirigido (i, j) si i si i Se permiten arcos con peso negativo El grafo de entrada no contiene ciclos con peso negativo 5 j, j j y (i, y (i, j) E, j) E
6 Modelado del Problema Salida tabular de todos los pares de rutas más cortas Matriz de n x n, D = (d ) 6 d contiene el peso de una ruta más corta del vértice i al j δ(i,j) denota el peso de la ruta más corta del vértice i al j En la terminación del algoritmo d = δ(i,j) También calculamos una matriz de predecesores Π = (π ), con valor NIL si i = j o si no hay ruta de i a j y en otro caso π es el predecesor de j para alguna ruta más corta desde i
7 Subgrafo predecesor Modelado del Problema 7 El subgrafo inducido por el i-ésimo renglón de la matriz Π debe ser un árbol de rutas más cortas con raíz en i El subgrafo predecesor de G para i se define como G π,i = (V π,i, E π,i ), donde V π,i = {j V : π NIL} {i}, y E π,i = {(π, j) : j V π,i {i}}.
8 Imprimir Ruta más Corta de i a j 8 Dada la matriz de predecesores Π podemos imprimir la ruta más corta de i a j
9 Rutas más Cortas y Multiplicación de Matrices Solución con programación dinámica para el problema de todos los pares de rutas más cortas con un grafo dirigido G = (V, E) Invoca operación parecida a multiplicación de matrices Primer algoritmo Θ(V 4 ) Mejora en Θ(V 3 lgv) 9
10 4 pasos Recordando Programación Dinámica Caracterizar la estructura de la solución óptima 10 Definir recursivamente el valor de una solución óptima Calcular el valor de la solución óptima de manera bottomup Construir la solución óptima con la información calculada
11 Estructura de la Ruta más Corta, con Lema Prueba al lema 24.1 Descomponemos la ruta p en: Tenemos entonces que: Asumimos que hay una ruta p de v i a v j con peso: Entonces la ruta de v 1 a v k que pasa por p : Con peso: Tiene un peso menor a w(p) Contradice lo que asumimos, que p es una ruta más corta de v 1 a v k. v w + p i p pjk 1 1 vi v j ( p) = w( p1 i ) + w( p ) w( p jk w ( p' ) < w( p ) v p1i 1 v i p' v j pjk w ( p 1i ) + w( p' ) + w( p jk ) v ) v k k
12 Solución Recursiva para Todos los Pares de Rutas más Cortas 12 Sea l (m) el mínimo peso de una ruta del vértice i al j que tiene al menos m arcos Cuando m = 0, hay una ruta más corta de i a j sin arcos sí y solo si i = j, entonces (0) l 0 = Para m 1, calculamos l (m) como el mínimo de l (m-1) y el mínimo peso de la ruta de i a j con a lo más m arcos Con todos los posibles predecesores k de j l l ( m) ( m) = min( l = min( l 1 k n ( m 1) ( m 1) ik Los pesos de la ruta más corta están dados por δ(i,j) =l (n-1) = l (n) = l (n+1) =. si i = j, si i Hay a lo más n-1 arcos en la ruta más corta de i a j asumiendo que no hay ciclos con peso negativo j., min{ l 1 k n + w kj ) ( m 1) ik + w kj })
13 Calculando los Pesos de la Ruta más Corta Bottom-UP Tomamos como entrada la matriz W = (w ) Calculamos las matrices 13 L (1), L (2),, L (n-1), donde para m = 1, 2,, n-1 tenemos que L (m) = (l (m) ) La matriz final tiene los pesos de las rutas más cortas l (1) = w para todos los vértices i, j V, entonces L (1) = W
14 Algoritmo Dadas las matrices L (m-1) y W regresa L (m) 14 Extiende las rutas más cortas obtenidas hasta ahora con un arco
15 Algoritmo El algoritmo se basa en la ecuación recursiva Tiempo de ejecución Θ(n 3 ) por los ciclos anidados Parecido a multiplicación de matrices 15
16 Algoritmo Algoritmo para encontrar todos los pares de rutas más cortas Basado en Extend-Shortest-Paths Este algoritmo se ejecuta en un tiempo de Θ(n 4 ) 16
17 Ejemplo 17
18 Algoritmo más Rápido 18 No queremos calcular L (m) porque el resultado lo tenemos desde L (n-1) asumiendo que no hay ciclos con peso negativo, L (m) = L (n-1) para todos los enteros m n-1 Podemos calcular L (n-1) en ceiling(lg(n-1)) con la secuencia: L (1) = W L (2) = W 2 = W W L (4) = W 4 = W 2 W 2 L (8) = W 8 = W 4 W 4 L (2 lg(n-1) ) = W 2 lg(n-1) = W 2 lg(n-1) -1 W2 lg(n-1) -1 Continuamos hasta L (2 lg(n-1) ) Proceso conocido como técnica de repeating squaring Requiere solo lg(n-1) productos de matrices, llamadas a Extend
19 Algoritmo más Rápido Tiempo de ejecución Θ(n 3 lg n) 19
20 Algoritmo Floyd-Warshall Utiliza un enfoque diferente de programación dinámica 20 Tiempo de ejecución de Θ(V 3 ) Puede haber vértices con peso negativo pero no ciclos con peso negativo Seguimos el proceso de programación dinámica para desarrollar el algoritmo
21 Algoritmo Floyd-Warshall Considera los vértices intermedios de una ruta más corta Si p = <v 1, v 2,, v l > v 2 v l-1 son los vértices intermedios 21 El algoritmo Floyd-Warshall trabaja reduciendo sucesivamente el número de vértices intermedios que pueden ocurrir en una ruta más corta y sus subrutas Sea el grafo G = (V, E) con vértices V numerados de 1...n, V = {1, 2,, n}, y considerando un subconjunto {1, 2,, k} para algún k Sea p el mínimo peso de ruta desde el vértice i al vértice j para el que los vértices intermedios son tomados de {1, 2,, k}, puede ocurrir una de dos situaciones:
22 Algoritmo Floyd-Warshall 1) k no es un vértice intermedio de p i p j Contiene los vértices de {1, 2,, k-1} 2) k es un vértice intermedio de p i p1 k p2 j Contiene los vértices de {1, 2,, k-1} p 1 es la ruta más corta desde 1 a k p 2 es la ruta más corta desde k a j Esto por el lema
23 Solución Recursiva Sea d (k) el peso de la ruta más corta desde i a j con todos los vértices intermedios en {1, 2,, k} Como para cada ruta, los vértices intermedios están en el conjunto {1, 2,, n}, la matriz D (n) = (d (n) ) contendrá la solución final δ(i,j) para cada i, j V. Recurrencia: d D ( k ) ( n) w min( d ( n) ] 23 = ( k 1) ( k 1) ( k 1), dik + dkj = [ d = [ δ ( i, j)], n = V ) si si k k = 0 1
24 Algoritmo Calcula valores d (k) en orden creciente de los valores de k Entrada, matriz nxn W Regresa D (n) con los pesos de las rutas más cortas 24 Tiempo de ejecución es Θ(n 3 ), mejor que los anteriores con O(n 3 lgn) y O(n 4 )
25 Ejemplo 25
26 Ejemplo 26
27 Ejemplo 27
28 Ejemplo 28
29 Construcción de la Ruta más Corta Hay varios métodos de construir las rutas con el algoritmo Floyd-Warshall 29 Construir la matriz D de pesos de rutas más cortas y luego la matriz de predecesores Π a partir de D Construir la matriz de predecesores en línea, conforme el algoritmo Floyd-Warshall construye las matrices D (k) π π (0) ( k ) = = NIL i ( π ( π k 1) k 1) kj si i = j ó w si i j y w si d si d ( k 1) ( k 1) d > d =,. ( k 1) ik ( k 1) ik + + d d ( k 1) kj ( k 1) kj
30 Ejercicio Ejecute el algoritmo de Floyd Warshall para el siguiente grafo
Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE
Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) 1 DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problema de Encontrar la Ruta más Corta 2 Se requiere llegar de
Más detallesFrancisco J. Hernández López
Francisco J. Hernández López fcoj23@cimat.mx Estructura de datos no lineales donde cada componente o nodo puede tener uno o más predecesores (a diferencia de los árboles) y sucesores Un grafo esta formado
Más detallesGrafos: algunas definiciones
Grafos: algunas definiciones Un grafo dirigido G es un par (V, E), donde V es un conjunto finito de nodos (o vértices) y E es una relación binaria sobre V. Un grafo no dirigido G es un par (V, E), donde
Más detallesAlgoritmos para caminos más cortos (2) comp-420
lgoritmos para caminos más cortos (2) comp-420 lgoritmo * escrito totalmente en 1968 por Peter art, Nils Nilsson y ertram Raphael. n 1964 Nils Nilsson inventó un método que utiliza una heurística para
Más detallesProgramación dinámica: un último ejemplo
Programación dinámica: un último ejemplo Dado: matrices A m n, B n r, C r s de números enteros Para calcular A m n B n r el algoritmo usual realiza m n r multiplicaciones de números enteros Cuántas multiplicaciones
Más detallesAnálisis de Algoritmos
Análisis de Algoritmos Profesor: M.C. Cuauhtemoc Gomez Suarez Tarea 06: Para calificación de examen. Sección: 503 Manuel Alejandro Salazar Mejía. Matrícula: 0300704C 11 de enero de 2011 1 Tarea: a) Programar
Más detallesAlgoritmos Elementales de Grafos DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE
Análisis álii y Diseño de Algoritmos Algoritmos Elementales de Grafos DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción Buscar en un grafo significa sistemáticamente seguir las aristas
Más detallesTema: Recorrido de Grafos. Ruta más corta
PED104. Guía N 12 Página 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación con Estructuras de Datos Tema: Recorrido de Grafos. Ruta más corta Competencia Desarrolla sistemas de información
Más detallesAnálisis y Diseño de Algoritmos Árboles de Mínima Expansión (Minimum Spanning Trees) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE
Análisis y Diseño de Algoritmos Árboles de Mínima Expansión (Minimum Spanning Trees) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problema de Cableado de Circuitos Electrónicos 2 Diseño
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Algoritmos Voraces DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción Siempre toman la mejor opción en cada momento (punto de decisión del algoritmo)
Más detallesTema: Algoritmos para la ruta más corta en un Grafo.
Programación IV. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos para la ruta más corta en un Grafo. Objetivos Específicos Definir el concepto de camino
Más detallesCaminos más cortos en gráficas. comp-420
Caminos más cortos en gráficas comp-40 Caminos más cortos en gráficas Dado un grafo con peso y dirigido G = (V, E) con una función de peso w : E R que transforma aristas a valores reales de peso. El peso
Más detallesAlgoritmos para determinar Caminos Mínimos en Grafos
Problemas de camino mínimo Algoritmos para determinar Caminos Mínimos en Grafos Algoritmos y Estructuras de Datos III DC, FCEN, UBA, C 202 Problemas de camino mínimo Dado un grafo orientado G = (V, E)
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Introducción: El Rol de los Algoritmos en Computación DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Temario 2 1. Introducción 2. Notación Asintótica 3. Recurrencias
Más detallesAlgoritmos voraces (greedy)
Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 21 de marzo de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Algoritmos voraces 21 de marzo de 2018 1 / 45 1 Algoritmos voraces (greedy) Aplicaciones de
Más detallesApuntes de Teórico PROGRAMACIÓN 3
Apuntes de Teórico PROGRAACIÓN Programación Dinámica Versión. Índice Índice... Introducción... Principio de optimalidad...5 Ejemplo: Camino de menor costo...6 Ejemplo: problema de la mochila...6 Aplicación
Más detallesProgramación Dinámica
Programación Dinámica Adaptado de Algorithm Design Goodrich and Tamassia Programación Dinámica 1 Calculando la serie de Fibonacci 1,1,2,3,5,8,13,21,. fib(n) = 1 si n = 0,1 fib(n 1) + fib(n 2) o.c. Programación
Más detallesPARTE II: ALGORÍTMICA
Programa de teoría Parte I. Estructuras de Datos.. Abstracciones y especificaciones.. Conjuntos y diccionarios.. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica.. Análisis
Más detallesMáximo Flujo (Maximum Flow) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE
Máximo Flujo (Maximum Flow) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Flujo Máximo También podemos utilizar un grafo dirigido para modelar una red de flujo Se produce un material que
Más detallesTema: Algoritmos para la ruta más corta en un Grafo.
Programación IV. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos para la ruta más corta en un Grafo. Objetivos Específicos Definir el concepto de camino
Más detalles259. El número de combinaciones de m objetos entre un conjunto de n, denotado por n, para n 1 y 0 m n, se puede definir recursivamente por: m
258. Aplicar el algoritmo de programación dinámica para el problema del cambio de monedas sobre el siguiente ejemplo: n = 3, P = 9, c = (1, 3, 4). Qué ocurre si multiplicamos P y c por un valor constante,
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Ordenamiento Heapsort y Quicksort DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Heaps Un Heap es una estructura de datos binaria Un arreglo que representa
Más detallesMatemáticas Discretas
Coordinación de Ciencias Computacionales - INAOE Matemáticas Discretas Cursos Propedéuticos 2016 Ciencias Computacionales INAOE Dr. Enrique Muñoz de Cote jemc@inaoep.mx http://ccc.inaoep.mx/~jemc Oficina
Más detallesPrograma de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás
Programa de teoría Algoritmos y Estructuras de Datos II 1. Análisis de algoritmos 2. Divide y vencerás 3. Algoritmos voraces 4. Programación dinámica 5. Backtracking 6. Ramificación y poda A.E.D. II 1
Más detallesTeoría de redes y optimización en redes
Teoría de redes y optimización en redes Pedro Sánchez Martín Contenidos Definiciones básicas Árbol generador mínimo de expansión Camino mínimo Algoritmo Dkstra Algoritmo Bellman-Ford Fluo máximo Fluo de
Más detallesGráficas. Las relaciones que resultan de estas conexiones nos llevan a preguntas como:
GRÁFICAS Gráficas Muchas aplicaciones computacionales involucran no solo un conjunto de elementos sino también conexiones entre pares de elementos. Las relaciones que resultan de estas conexiones nos llevan
Más detallesAlgoritmos y Estructuras de Datos III Apunte Teórico Primer cuatrimestre
Algoritmos y Estructuras de Datos III Apunte Teórico 2018 Primer cuatrimestre Índice 1. Grafos 2 1.1. Conceptos básicos.......................... 2 1.2. Árboles................................ 6 1.3. Camino
Más detallesAnálisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera
Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera Estrategia 5 Programación dinámica Técnica utilizada para eliminar el trabajo redundante almacenando en un área de memoria especial las soluciones
Más detallesMatemáticas Discretas
Coordinación de Ciencias Computacionales - INAOE Matemáticas Discretas Cursos Propedéuticos 2011 Ciencias Computacionales INAOE Dr. Enrique Muñoz de Cote jemc@inaoep.mx http://ccc.inaoep.mx/~jemc Oficina
Más detallesDefinición de las operaciones con matrices
Definición de las operaciones con matrices Ejercicios Objetivos Aprender a hacer las operaciones aritméticas con matrices Aprender las definiciones formales de operaciones con matrices Requisitos Operaciones
Más detallesTeoría de grafos y optimización en redes
Teoría de grafos y optimización en redes José María Ferrer Caja Universidad Pontificia Comillas Definiciones básicas Grafo: Conjunto de nodos (o vértices) unidos por aristas G = (V,E) Ejemplo V = {,,,,
Más detallesUnidad 2: Problemas de camino mínimo
Representación Recorrido de grafos Camino mínimo Unidad 2: Problemas de camino mínimo Representación Matriz de adyacencia Matriz de incidencia Listas de vecinos Recorrido de grafos Estructuras de datos
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Recurrencias DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción 2 Cuando un algoritmo se llama a sí mismo Su tiempo de ejecución se puede describir
Más detallesProgramación Dinámica
Programación Dinámica Es aplicada típicamente a problemas de optimización, donde puede haber muchas soluciones, cada una tiene un valor asociado y prentendemos obtener la solución con valor óptimo. Al
Más detallesDiseño de algoritmos
Diseño de algoritmos Programación Dinámica Jesús Bermúdez de Andrés Universidad del País Vasco/Euskal Herriko Unibertsitatea (UPV/EHU) Curso 2008-09 1 Programación Dinámica Definición de la técnica Funciones
Más detalles1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila 0/1 para los siguientes casos:
PROGRAMACIÓN DINÁMICA RELACIÓN DE EJERCICIOS Y PROBLEMAS 1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila /1 para los siguientes casos: a. Mochila de capacidad W=15:
Más detallesProgramación dinámica
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Programación dinámica Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas
Más detallesProgramación II Sesión 4: Inmersión, desplegado-plegado, transformación recursivo-iterativo
Programación II Sesión 4: Inmersión, desplegado-plegado, transformación recursivo-iterativo Diego R. Llanos Ferraris UNED, Centro Asociado de Palencia Nota: Estos apuntes son la guía utilizada por el Profesor
Más detallesÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES
ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOL Un árbol es un grafo no dirigido, conexo, sin ciclos (acíclico), y que no contiene aristas
Más detallesProgramación Dinámica
Programación Dinámica La técnica de programación dinámica se aplica en general a problemas de optimización. l igual que "dividir y conquistar", el problema es dividido en subproblemas de tamaños menores
Más detallesMatemáticas Discretas L. Enrique Sucar INAOE. Teoría de Grafos. Problema de los puentes de Königsberg [Euler]
Matemáticas Discretas L. Enrique Sucar INAOE Teoría de Grafos Problema de los puentes de Königsberg [Euler] Teoría de Grafos Definición y terminología Tipos de grafos Trayectorias y circuitos Isomorfismo
Más detallesProgramación Dinámica 1
Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir
Más detallesRepresentación y manipulación de grafos: caminos, expansión, cortes y flujos
Un grafo G es un par de conjuntos G =(V,E) Representación y manipulación de grafos: caminos, expansión, cortes y flujos V = un conjunto de n vértices u, v, w V E = un conjunto de m aristas V = n, E = m
Más detallesCentro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Lógica y Estructuras Discretas Tutor: Antonio Rivero Cuesta Tema 5 Teoría de Grafos Conceptos Básicos Un grafo consta de: Grafo Un conjunto de nodos, Un conjunto de aristas
Más detalles5.4 Caminos mínimos: Algoritmo de Dijkstra
81 5.4 Caminos mínimos: Algoritmo de Dijkstra Al observar nuestro mapa de carreteras se pueden considerar las distancias en km que hay entre las ciudades, a cada arista se le asigna el valor correspondiente
Más detallesEjemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013
Técnicas de diseño de algoritmos Algoritmos y Estructuras de Datos III Segundo cuatrimestre 2013 Técnicas de diseño de algoritmos Algoritmos golosos Backtracking (búsqueda con retroceso) Divide and conquer
Más detallesCapítulo 5 Introducción a la teoría de grafos
Capítulo 5 Introducción a la teoría de grafos 5.1. Terminología básica y tipos de grafos Una primera aproximación a la teoría de grafos la tenemos cuando observamos un mapa de carreteras: ciudades (vértices)
Más detallesEstructuras de Datos Orientadas a Objetos. Pseudocódigo y aplicaciones en C#.NET. Capítulo 9.- Grafos
Capítulo 9.- Grafos Cuestionario 9.1 Se pueden representar los nodos de un grafo como un conjunto de elementos 9.2 Se pueden representar los arcos de un grafo como un conjunto de tuplas 9.3 Los grafos
Más detalles4.2. El número de combinaciones de m objetos entre un conjunto de n, denotado por n, para n 1 y 0 m n, se puede definir recursivamente por: m
4.1. Aplicar el algoritmo de programación dinámica para el problema del cambio de monedas sobre el siguiente ejemplo: n = 3, P = 9, c = (1, 3, 4). Qué ocurre si multiplicamos P y c por un valor constante,
Más detallesTeoría y Complejidad Algorítmica
Teoría y Complejidad Algorítmica Practica 3 Eduardo Viciana Gámez Contiene documentación y código fuente de la práctica 2 Descripción de la Práctica En esta práctica se van a comparar dos algoritmos que
Más detallesAlgebra Matricial y Teoría de Grafos
Algebra Matricial y Teoría de Grafos Unidad 3: Nociones de teoría de grafos Luis M. Torres Escuela Politécnica del Litoral Quito, Enero 2008 Maestría en Control de Operaciones y Gestión Logística p.1 Contenido
Más detallesTema: Programación Dinámica.
Programación IV. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir el concepto de programación dinámica. Interpretar
Más detallesApuntes de Teórico de Programación 3. Apuntes de Teórico PROGRAMACIÓN 3. Greedy. Versión 1.1
Apuntes de Teórico PROGRAMACIÓN 3 Greedy Versión 1.1 1 Índice Índice... Introducción... 3 Ejemplo 1 (problema de las monedas)... 3 Ejemplo (problema de la mochila)... 4 Aplicaciones del método Greedy a
Más detallesTema: Programación Dinámica.
Programación IV. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir el concepto de programación dinámica. Interpretar
Más detallesCaminos y Flujos optimales. 2da y 3er clase 2007
Caminos y Flujos optimales 2da y 3er clase 2007 ESQUELETOS OPTIMALES (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,
Más detallesTécnicas para el Diseño de Algoritmos
Técnicas para el Diseño de Algoritmos Algoritmos Algoritmos voraces Divide y conquista Programación dinámica Backtracking Algoritmos Voraces Algoritmos Voraces Algoritmos que implementan una búsqueda miope
Más detallesDeseamos interconectar entre si todos los ordenadores de un edificio
Teoría de grafos Deseamos interconectar entre si todos los ordenadores de un edificio Tres problemas de conexión: Conectar una serie de ordenadores por pares Procurar que la distancia por cable entre dos
Más detallesProgramación Dinámica
Programación Dinámica Agustín Santiago Gutiérrez Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Septiembre 2014 Agustín Gutiérrez (UBA) Programación Dinámica Septiembre 2014 1 / 10
Más detallesDivide-y-vencerás, backtracking y programación dinámica
Divide-y-vencerás, backtracking y programación dinámica Diseño y Análisis de Algoritmos Cátedra de Programación Carrera de Ingeniería de Sistemas Prof. Isabel Besembel Carrera Noviembre, 2012 Prof. Isabel
Más detalles1. GRAFOS : CONCEPTOS BASICOS
1. GRAFOS : CONCEPTOS BASICOS Sea V un conjunto finito no vacio y sea E V x V. El par (V, E) es un grafo no dirigido, donde V es un conjunto de vértices o nodos y E es un conjunto de aristas. Denotaremos
Más detallesTema 6.2: Camino de Menor Valor. CMV: Objetivo. CMV: ejemplo. Ejemplo. Camino de menor valor
Tema.: Camino de Menor Valor Modelización Matemática Máster en Ingeniería de Caminos, Canales y Puertos Camino de menor valor Algoritmos Algoritmo de Dijkstra Algoritmo de Bellman-Ford Ignacio Montes Departamento
Más detallesFormulación del problema de la ruta más corta en programación lineal
Formulación del problema de la ruta más corta en programación lineal En esta sección se describen dos formulaciones de programación lineal para el problema de la ruta más corta. Las formulaciones son generales,
Más detallesBacktracking: Esquema General
Backtracking Idea: Técnica para recorrer sistemáticamente todas las posibles configuraciones de un espacio asociado a soluciones candidatos de un problema computacional. Se puede pensar este espacio tiene
Más detallesIntroducción Aplicaciones Primer Algoritmo Segundo Algoritmo - Algoritmo de Fortune. Diagrama de Voronoi. Jose Luis Bravo Trinidad 1 / 29
1 / 29 Definición Propiedades geométricas Índice 1 Introducción Definición Propiedades geométricas 2 Análisis de recursos Triangulaciones Robótica Diseño 3 Implementación 4 Segundo - de Fortune 2 / 29
Más detallesUn grafo G = (V, E) se dice finito si V es un conjunto finito.
1 Grafos: Primeras definiciones Definición 1.1 Un grafo G se define como un par (V, E), donde V es un conjunto cuyos elementos son denominados vértices o nodos y E es un subconjunto de pares no ordenados
Más detallesTema 2, 3 y 4 GRUPO 82 - INGENIERÍA INFORMÁTICA. Bernardo D Auria. 3 Diciembre Departamento de Estadística. Universidad Carlos III de Madrid
Bernardo D Auria Departamento de Estadística Universidad Carlos III de Madrid GRUPO 82 - INGENIERÍA INFORMÁTICA Diciembre 2008 Ejercicio T2-JN12 Comprueba que el problema lineal min x x 1 + x 2 2x x +
Más detallesEl problema de localización del árbol de concentradores
El problema de localización del árbol de concentradores I. Contreras 1 E. Fernández 1 A. Marín 2 1 Departmento de Estadística e I.O. Universidad Politécnica de Cataluña 2 Departmento de Estadística e I.O.
Más detallesCaminos más cortos: Jose Aguilar
Caminos más cortos: algoritmo de Dijkstra, algoritmo de Bellman-Ford, Caminos más cortos en grafos dirigidos, algoritmo de Floyd-Warshall y algoritmo de Johnson. Jose Aguilar Caminos más cortos Coste de
Más detallesEste material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios
CLASE GRAFOS 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 libros por lo que está prohibida su impresión
Más detallesAlgoritmos mas complejos. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A.
Algoritmos mas complejos Divide y Vencerás Técnica empleada en cosas dispares. También en el diseño de algoritmos. (ordenación: Quicksort; Mergesort). Consiste básicamente en dividir un problema original
Más detallesMultiplicación de matrices simétricas
Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =
Más detallesAlgoritmos y Estructuras de Datos II, Segundo del Grado de Ingeniería Informática, Test de Programación Dinámica, 4 de mayo 2017
Algoritmos y Estructuras de Datos II, Segundo del Grado de Ingeniería Informática, Test de Programación Dinámica, 4 de mayo 2017 Para cada uno de los dos problemas siguientes, hay que explicar cómo se
Más detallesEstructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Práctico 3: Grafos (Finalización: 06/09) Ing. en Computación - Ing. en Informática - Prof. en Computación Año 2018 Ejercicio 1: Dado el siguiente p-digrafo: 5 b 6 d 11
Más detallesGrafos. Algoritmos y Estructuras de Datos III
Grafos Algoritmos y Estructuras de Datos III Grafos Un grafo G = (V, X ) es un par de conjuntos, donde V es un conjunto de puntos o nodos o vértices y X es un subconjunto del conjunto de pares no ordenados
Más detallesTeoría de Grafos y Árboles.
Estructuras Discretas Teoría de Grafos y Árboles. Prof. Miguel Fagúndez www.geocities.com/mfagundez4 1 www.geocities.com/mfagundez4 www.geocities.com/mfagundez4 3 Grafos: Definición Un grafo no es mas
Más detallesÁ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.
ÁRBOLES Árboles Un grafo conectado que no contiene circuitos simples. Utilizados desde 1857, por el matemático Ingles Arthur Cayley para contar ciertos tipos de componentes químicos. Un árbol es un grafo
Más detallesAlgoritmos en Teoría de Grafos
Algoritmos en Teoría de Grafos Jesús García López de Lacalle Algoritmos en Teoría de Grafos 1. Introducción 2. Conectividad 3. Caminos mínimos y distancias 4. Planificación y optimización de tareas 5.
Más detallesMinimum Spanning Tree (Árbol de Expansión Mínima) Agustín J. González ELO320: Estructura de datos y Algoritmos
Minimum Spanning Tree (Árbol de Expansión Mínima) Agustín J. González ELO320: Estructura de datos y Algoritmos 1 Introducción Lo que realmente se minimiza es el peso del árbol obtenido. No se minimiza
Más detallesProgramación: Sistemas unitriangulares inferiores
Programación: Sistemas unitriangulares inferiores Objetivos. Programar en el lenguaje de MATLAB el método de la sustitución hacia adelante para resolver sistemas de ecuaciones lineales con matrices unitriangulares
Más detallesCapítulo 4: Grafos Clase 4: Árboles
Capítulo 4: Grafos Clase 4: Árboles Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 4: Grafos 1 / 12 Árboles Los árboles son una clase particular de grafos que
Más detallesMatemáticas Discretas
Coordinación de Ciencias Computacionales - INAOE Matemáticas Discretas Cursos Propedéuticos 2011 Ciencias Computacionales INAOE Dr. Enrique Muñoz de Cote jemc@inaoep.mx http://ccc.inaoep.mx/~jemc Oficina
Más detallesAlgoritmos Voraces. Diseño y Análisis de Algoritmos
Algoritmos Voraces Diseño y Análisis de Algoritmos Contenidos Contenidos 1 Introducción 2 Ejemplos básicos 3 Cambio de monedas 4 Problema de la mochila 5 Problemas de planificación de tareas 6 Patrones
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Ordenamiento en Tiempo Lineal DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Ordenamiento por Comparación (Comparison Sorts) Tiempo de ejecución HeapSort y
Más detallesDiseño de algoritmos
Diseño de algoritmos Algoritmos de Vuelta Atrás Jesús Bermúdez de Andrés Universidad del País Vasco/Euskal Herriko Unibertsitatea (UPV/EHU) Curso 2008-09 1 Algoritmos de vuelta atrás El coloreado de mapas
Más detallesARBOLES GENERADORES. Orlando Arboleda Molina. 16 de septiembre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle
ARBOLES GENERADORES Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 16 de septiembre de 2008 Contenido Árboles generadores Algoritmo búsqueda por profundidad
Más detallesTécnicas de diseño de algoritmos Programación dinámica
Técnicas de diseño de algoritmos Programación dinámica Luis Javier Rodríguez Fuentes Amparo Varona Fernández Departamento de Electricidad y Electrónica Facultad de Ciencia y Tecnología, UPV/EHU luisjavier.rodriguez@ehu.es
Más detallesAlgoritmos de fuerza bruta
Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 29 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Algoritmos de fuerza bruta 29 de enero de 2018 1 / 26 1 Algoritmos de fuerza bruta Introducción
Más detallesDiseño y Análisis de Algoritmos
1. Recursividad 2. "Dividir para Reinar" 3. Recursividad y Tabulación (Programación Dinámica) 4. Métodos Matemáticos Funciones discretas Notación O Ecuaciones de recurrencia 5. Casos de Estudio Breve descripción
Más detallesFundamentos de Programación Entera. A. Revisión. Carlos Testuri Germán Ferrari
Fundamentos de Programación Entera A. Revisión Carlos Testuri Germán Ferrari Departamento de Investigación Operativa Instituto de Computación Facultad de Ingeniería Universidad de la República 2012-2018
Más detallesParte de Algoritmos de la asignatura de Programación Master de Bioinformática. Grafos
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Grafos Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas a partir
Más detallesSesión 4: Teoría de Grafos
Modelos Gráficos Probabilistas L. Enrique Sucar INAOE Sesión 4: Teoría de Grafos Problema de los puentes de Königsberg [Euler] Teoría de Grafos Definición y terminología Tipos de grafos Trayectorias y
Más detallesMODULARIDAD Y ESTRUCTURA DE COMUNIDADES EN REDES MATI
MODULARIDAD Y ESTRUCTURA DE COMUNIDADES EN REDES MATI María Isabel Cardeñosa Sánchez Abraham Peña Hoyos 1 Modularidad y estructura de comunidades en redes Introducción Muchos sistemas de interés científico
Más detallesDividir-conquistar y podar-buscar
Técnicas de diseño de algoritmos Dividir-conquistar y podar-buscar Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL DC y PB p. 1 Diseño de algoritmos La meta: encontrar una manera eficiente
Más detalles95.12 Algoritmos y Programación II Práctica 7: árboles
Notas preliminares 95.12 Algoritmos y Programación II Práctica 7: árboles El objetivo de esta práctica es introducir distintas clases de estructuras de datos arbóreas y algoritmos para manipularlas. Los
Más detallesTema 1: Introducción a la Teoría de Grafos
Tema 1: Introducción a la Teoría de Grafos MATEMÁTICA A DISCRETA Nociones básicas Subgrafos. Operaciones con grafos Formas de definir un grafo Isomorfismo de grafos Tema 1: 1 Nociones básicas: Grafo: G
Más detallesOptimización combinatoria Flujo en redes. Investigación Operativa, Grado en Estadística y Empresa, 2011/12
Optimización combinatoria Flujo en redes Prof. José Niño Mora Investigación Operativa, Grado en Estadística y Empresa, 2011/12 Esquema Optimización combinatoria: definición y formulación de PE El problema
Más detallesAnálisis de algoritmos
Tema 10: Algoritmos ávidos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Introducción Algoritmos ávidos Forma general de un
Más detalles