Download - Grafos definiciones, Presentacion
![Page 1: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/1.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
NIVEL 17: ESTRUCTURAS NO LINEALES
Grafos, definiciones y tipos de problemas
1
![Page 2: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/2.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
2
![Page 3: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/3.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
¿Qué son?
• Los grafos:
• Son estructuras de datos más generales que los árboles.
• Permiten modelar relaciones no necesariamente jerárquicas entre elementos de un conjunto.
• Se utilizan para representar mapas de rutas, organización de procesos, espacios de búsqueda para juegos, circuitos lógicos, etc.
3
![Page 4: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/4.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
¿Qué son?
• Ejemplos de grafos
4
Vértices: elementos del conjunto
Arcos: relaciones entre los elementos del conjunto
![Page 5: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/5.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
5
![Page 6: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/6.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Formalismo abstracto de un grafo dirigido• G = ( V, A )
• V = { v1, …, vn }• V: Conjunto de vértices
• A: Conjunto de arcos
• Un arco es una tripleta de la forma:• ( vi, vk, cik )
• Establece: • Una relación entre los vértices vi y vk de V
• Un sentido de la relación (vi vk)
• Un valor o peso asociado (cik )
• Puede tener una información asociada
6
![Page 7: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/7.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Formalismo abstracto de un grafo dirigido
• Gráficamente, un arco es:
• A = { ( x, y, c ) | x, y V, x y, x e y están relacionados con un valor c }
7
cikVi Vk
![Page 8: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/8.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Formalismo abstracto de un grafo dirigido
• Ejemplo : Camión repartidor• Un camión repartidor debe visitar diferentes
puntos de la ciudad para dejar su producto.
• Ciudad = grafo• Vértices = puntos de la ciudad
• Arcos = tiempo que toma ir de un punto a otro
8
3min5min
6min
5min
10min
7min2min
1min
9min
12min
3min
![Page 9: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/9.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Sucesor y Predecesor:
• Se dice que un vértice B es sucesor de un vértice A si existe un arco entre A y B talque A es el vértice origen y B el vértice destino. En éste mismo caso se dice que A es un predecesor de B.
9
cA B
![Page 10: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/10.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
10
![Page 11: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/11.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Cada vértice Vi del grafo tiene asociados dos valores:
• Identificador: lo distingue como elemento único de V.
• Información asociada con el elemento
11
![Page 12: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/12.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Restricción en un grafo dirigido:
• No puede haber más de un arco entre cualquier par de vértices en cada uno de los dos sentidos.
12
vi vk
cik
cki
vi vk
cik
cki
![Page 13: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/13.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Orden de un grafo:
• Número de elementos = Cardinalidad del conjunto de vértices.
• Grafo vacío:
• Grafo de orden cero.
• Fuente:
• Vértice que no tiene predecesores.
• Sumidero:
• Vértice que no tiene sucesores.
13
![Page 14: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/14.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
14
![Page 15: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/15.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Ejemplo: Red de distribución de agua
• Modelar una red de distribución de agua entre N ciudades de una región.
• Cada ciudad tiene:
• Nombre
• Capacidad máxima de almacenamiento
• Estado actual
• Cada tubo tiene:
• Capacidad de transporte por minuto
15
![Page 16: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/16.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Ejemplo: Red de distribución de agua
Modelo del grafo
• V = { v1, …, vn | vi es una ciudad}
• A = { ( x, y, c ) | hay un tubo entre x e y, con capacidad de transporte por minuto c }
• vi = [idCiudadi, infoCiudadi]
• infoCiudadi = [nombrei, capacidadi, actuali]
16
![Page 17: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/17.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Ejemplo: Red de distribución de agua
• Representación Gráfica:
• El orden del grafo es 5
• No hay fuentes ni sumideros
• Los sucesores de v1
son v2 y v5 y su único predecesor es v4.
17
ciudad1100.00080.000
ciudad32.0002.000
ciudad53.0002.000
ciudad25.0001.000
ciudad4500200
v1 v2
v3v4v5
50
55
10105
3
![Page 18: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/18.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Ejemplo: Red de distribución de agua
• Información asociada:
• G = ( V, A )
• V = { v1, v2 , v3 , v4 , v5 }
• A = { (v1, v2 , 50 ), (v2, v3 , 5 ), (v3, v2 , 5 ), (v4, v2 , 10 ), (v4, v1 , 10 ), (v5, v4 , 3 ), (v1, v5 , 5 ) }
• V1 = [ idv1, infov1 ]
• infov1=[“ciudad1”, 100.000, 80.000]
• V2 = [ idv2, infov2 ]
• infov2=[“ciudad3”, 2.000, 2.000]
18
![Page 19: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/19.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Ejemplo: Red de distribución de agua
• Información asociada:
• V3 = [ idv3, infov3 ]
• infov3=[“ciudad4”, 500, 200]
• V4 = [ idv4, infov4 ]
• infov4=[“ciudad2”, 5.000, 1.000]
• V5 = [ idv5, infov5 ]
• infov5=[“ciudad5”, 3.000, 2.000]
19
![Page 20: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/20.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
20
![Page 21: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/21.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
• Camino entre un vértice v1 y un vértice v2:
• Secuencia de vértices <x1, …, xn>, con las siguientes características:
• xi V, 1 <= i <= n
• x1 = v1, xn = v2
• xi xi+1, 1 <= i <= n
• v1 = origen
• V2 = destino
• El camino pasa por los vértices x2, …, xn-1
21
![Page 22: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/22.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
• Longitud = n-1
• Existe camino de longitud 0: parte de cualquier vértice y termina en él mismo.
• Existen caminos infinitos: repiten un ciclo indefinidamente
22
![Page 23: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/23.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
• Camino simple:
• Todos los vértices por los cuales pasa son diferentes entre sí y diferentes del origen y del destino.
• Puede comenzar y terminar en el mismo vértice, pero NO puede pasar dos veces por un mismo vértice.
23
V
c
Vértice con caminos < v, v > y < v >
![Page 24: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/24.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
• Costo de un camino C:
• Suma de los valores asociados con los arcos que lo componen.
• Si los arcos tienen un valor asociado 1:
• Costo = Longitud
• Ciclo simple:
• Camino simple, de longitud mayor o igual a 1, que comienza y termina en el mismo vértice.
24
![Page 25: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/25.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
• Ciclo:
• Camino de longitud diferente de 0, cuyo origen y destino son iguales
• Grafo acíclico:
• No contiene ciclos
25
![Page 26: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/26.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
Camino Costo Longitud
Caminos no simples
Caminos simples
Ciclos simples
Ciclos no simples
Camino más corto de v1 a v3
Camino más barato de v1 a v3
Camino simple más largo
26
• Ejemplo de caminos:4
23
7 4
6
2
5
1
7
V6 V1
V5 V4
V2
V3
![Page 27: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/27.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
Conceptos:
• Camino hamiltoniano: • Camino que pasa exactamente una vez por cada
uno de los vértices de un grafo.
• No siempre existe.
• No siempre es único.
• Ciclo hamiltoniano:• Ciclo que pasa exactamente una vez por cada uno
de los vértices de un grafo.
27
![Page 28: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/28.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
Conceptos:
• Camino de euler: • Camino que pasa exactamente una vez por cada
uno de los arcos de un grafo.
• Ciclo de euler:• Ciclo que pasa exactamente una vez por cada uno
de los arcos de un grafo.
28
![Page 29: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/29.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
• Ejemplo de camino Hamiltoniano:
• < v5, v3, v1, v2, v4>
29
v1
v5
v3v2
v4
![Page 30: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/30.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
• Ejemplo de ciclo Hamiltoniano:
• < v1, v2, v5, v4, v3, v1 >
30
v1
v5
v3v2
v4
![Page 31: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/31.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Caminos y Ciclos
• Ejemplo de camino de Euler:
• < v5, v3, v2, v5, v4, v3, v1, v2, v4 >
31
v1
v5
v3v2
v4
![Page 32: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/32.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
32
![Page 33: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/33.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Cadenas
Conceptos:
• Vértices adyacentes:
• Existe en el grafo por lo menos un arco entre los dos, sin importar el sentido.
• Cadena:
• Secuencia < x1, …, xn > de vértices de V, tal que cualesquiera dos vértices consecutivos son adyacentes.
33
![Page 34: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/34.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Cadenas
• Ejemplo de cadena:
• < v1, v2, v3, v4, v5 >
34
v1
v5
v3v2
v4
![Page 35: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/35.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
35
![Page 36: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/36.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Tipos de grafos
• Grafo completo:
• Dos vértices diferentes cualesquiera del conjunto V son adyacentes.
36
v1
v5
v3v2
v4
![Page 37: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/37.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Tipos de grafos
• Grafo conexo:
• Para cualquier par de vértices v, w del conjunto V, existe una cadena que los une.
• Grafo fuertemente conexo:
• Para cualquier par de vértices v, w del conjunto V, existe una camino que vaya de v a w.
37
![Page 38: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/38.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Tipos de grafos
• Ejemplos
38
v1
v5
v3v2
v4
v1
v5
v3v2
v4
Grafo NO conexo Grafo fuertemente conexo
![Page 39: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/39.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Tipos de grafos• Grafo planar:
• Es posible dibujarlo en un plano sin que se crucen los arcos.
• Problema típico:
• 3 casas y 3 servicios.
• Se trata de establecer si es posible llevar las tuberías de agua, gas y electricidad, sobre un mismo plano, a 3 casas vecinas.
• El problema se reduce a determinar si el grafo que representa la solución es planar.
• Vértices: casas y servicios.
• Arcos: tuberías.
39
![Page 40: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/40.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Tipos de grafos
• Ejemplo:
40
GAS AGUA ELECTRICIDAD
Se pueden dibujar sin cruces 8 de los arcos, pero está demostrado que es imposible poner los 9
![Page 41: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/41.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Tipos de grafos
• Grafos isomorfos:
• Tienen la misma estructura, aunque tengan diferentes contenidos y/o identificadores de los vértices.
41
v1
v3
v2
v4
v3 v1 v4
v2
![Page 42: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/42.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
42
![Page 43: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/43.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño
• Diagrama de clases del análisis
43
![Page 44: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/44.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño
• Operaciones críticas:
• Retornar un vértice dado su id.
• Retornar un arco dados los ids de los dos vértices.
• Retornar los arcos que llevan a los sucesores de un vértice, dado su id.
• Retornar los arcos que llevan a los predecesores de un vértice, dado su id.
44
![Page 45: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/45.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño
• Operaciones críticas:
• Agregar un vértice al grafo, dado un id y la información relacionada con el vértice.
• Eliminar un vértice del grafo, dado su id.
• Agregar arco, dados los ids de los vértices y la información relacionada con el arco.
• Eliminar arco, dado los ids de los vértices.
• Dar el orden del grafo.
45
![Page 46: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/46.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño• Identificación de la genericidad
46
K
![Page 47: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/47.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño• Identificación de la genericidad
47
![Page 48: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/48.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño• Identificación de la genericidad
48
![Page 49: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/49.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño• Identificación de la genericidad
49
![Page 50: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/50.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño• Cálculo de complejidades:
• Retornar un vértice dado su id.
• Retornar un arco dados los ids de los dos vértices.
• Retornar los arcos que llevan a los sucesores de un vértice, dado su id.
• Retornar los arcos que llevan a los predecesores de un vértice, dado su id.
50
![Page 51: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/51.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Del análisis al diseño• Cálculo de complejidades:
• Agregar un vértice al grafo, dado un id y la información relacionada con el vértice.
• Eliminar un vértice del grafo, dado su id.
• Agregar arco, dados los ids de los vértices y la información relacionada con el arco.
• Eliminar arco, dado los ids de los vértices.
• Dar el orden del grafo.
51
![Page 52: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/52.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
52
![Page 53: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/53.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Trabajo sobre un casoEnunciado del problema:
• Se desea realizar una aplicación para el calcular los movimientos de las tropas de soldados deun ejército. El ejército tiene divididas las tropas en diferentes ciudades estratégicas, y en casode guerra o problema interno, es necesario transportar las tropas hacia una ciudad específica,en un número de días dados.
• Para poder realizar esto, es necesario tener en cuenta que las ciudades tienen una capacidadmáxima de soldados que no puede ser sobrepasada, y que los medios de conexión entreciudades son únicamente vías férreas dirigidas (solo hacia una dirección), con una capacidadmáxima de pasajeros diarios. Se puede asumir que la ciudad destino de todo el movimientotiene capacidad infinita.
• La aplicación debe recibir por medio de un archivo XML (especificado en la sección ArchivoXML de éste documento), la información de las ciudades con sus capacidades y cantidad desoldados inicial y las vías férreas entre las ciudades con su capacidad diaria de transporte, yluego debe preguntar al usuario la ciudad destino y los días que se tienen para llevar lastropas.
• Al finalizar los cálculos, la aplicación debe mostrar en pantalla el resultado del movimiento delas tropas, informando en datos consolidados la cantidad de soldados que se pudo llevar a laciudad, y un resumen detallado con el estado de cada una de las ciudades para cada día de lasimulación.
53
![Page 54: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/54.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Trabajo sobre un caso• Clases empleadas en la solución
54
![Page 55: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/55.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda• ¿Qué son?
• Formalismo abstracto de los grafos dirigido
• Conceptos
• Ejemplo: Red de distribución de agua
• Caminos y Ciclos
• Cadenas
• Tipos de grafos
• Del análisis al diseño
• Trabajo sobre un caso
• Implementación en Cupi2Collections
55
![Page 56: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/56.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Grafo
56
Llave de tipo K Valor de tipo Vertice
![Page 57: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/57.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Vértice• La información del vértice es un objeto de tipo V
57
![Page 58: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/58.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Vértice• Los predecesores son un ArrayList de objetos de tipo Arco
58
![Page 59: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/59.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Vértice• Los sucesores son un ArrayList de objetos de tipo Arco
59
![Page 60: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/60.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Vértice• Se declara un atributo para verificar si el vértice está
marcado
60
![Page 61: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/61.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Vértice
• Métodos empleados:• public K darId( )
• public V darInfoVertice( )
• public ArrayList<Arco<K, V, A>> darSucesores( )
• public ArrayList<Arco<K, V, A>> darPredecesores( )
• public Arco<K, V, A> darArco( K idDestino )
• public void eliminarArco( K idDestino )
• private void eliminarArcoPredecesor( Arco<K, V, A> arco )
• public void agregarArco( Arco<K, V, A> arco )
• private void agregarArcoPredecesor( Arco<K, V, A> arco )
• public void eliminarArcos( )
• public boolean esSucesor( K idDestino )
• public int darNumeroSucesores( )
• public int darNumeroPredecesores( )
61
Clase Vértice - Métodos
![Page 62: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/62.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Arco• El vértice origen es de tipo Vertice
62
![Page 63: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/63.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Arco
• El vértice destino es de tipo Vertice
63
![Page 64: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/64.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Arco• La información del arco es de tipo A
64
![Page 65: Grafos definiciones, Presentacion](https://reader034.vdocuments.co/reader034/viewer/2022051416/55cf9bb8550346d033a72313/html5/thumbnails/65.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Clase Arco
• Métodos empleados:• public A darInfoArco( )
• public Vertice<K, V, A> darVerticeDestino( )
• public Vertice<K, V, A> darVerticeOrigen( )
• public int darPeso( )
65