NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos...

65
ISIS1206 Estructuras de Datos http://cupi2.uniandes.edu.co NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1

Transcript of NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos...

Page 1: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

NIVEL 17: ESTRUCTURAS NO LINEALES

Grafos, definiciones y tipos de problemas

1

Page 2: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Del análisis al diseño

• Diagrama de clases del análisis

43

Page 44: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Del análisis al diseño• Identificación de la genericidad

46

K

Page 47: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Del análisis al diseño• Identificación de la genericidad

47

Page 48: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Del análisis al diseño• Identificación de la genericidad

48

Page 49: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Del análisis al diseño• Identificación de la genericidad

49

Page 50: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Trabajo sobre un caso• Clases empleadas en la solución

54

Page 55: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Clase Grafo

56

Llave de tipo K Valor de tipo Vertice

Page 57: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Clase Arco• El vértice origen es de tipo Vertice

62

Page 63: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Clase Arco

• El vértice destino es de tipo Vertice

63

Page 64: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

ISIS1206 – Estructuras de Datos

http://cupi2.uniandes.edu.co

Clase Arco• La información del arco es de tipo A

64

Page 65: NIVEL 17: ESTRUCTURAS NO LINEALES · NIVEL 17: ESTRUCTURAS NO LINEALES Grafos, definiciones y tipos de problemas 1. ... •Son estructuras de datos más generales que los árboles.

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