algoritmos y estructuras de datos iii (segunda parte) 1er cuatrimestre 2010 min chih lin irene...

31
Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Upload: enriqueta-vidal

Post on 23-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Algoritmos y Estructuras de Datos III(segunda parte)

1er cuatrimestre 2010

Min Chih Lin

Irene Loiseau

Page 2: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

GRAFOS

Qué es un modelo matemático?

• Problemas que pueden modelarse usando grafos.

• La noción de grafos fue planteada independientemente por varios científicos de diferentes disciplinas.

Page 3: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Historia

“Graph Theory: 1736-1936”, Biggs,Lloyd, Wilson, Oxford University Press, 1976.

Page 4: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Euler (1736): Problema de los puentes de Konigsberg.

• Modelo usando grafos

Primer teorema de teoría de grafos: Hay un circuito que pasa por todas las “líneas” del grafo una y sólo una vez si y sólo si cada punto tiene un número par de “líneas” incidentes.

Euler planteó el teorema, pero sólo probó que la condición es necesaria.

Page 5: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• Wiener, 1873, Laberintos.

• Vandermonde, 1771, Problema de los caballos en un tablero de ajedrez.

• Kirkman, 1856, circuitos en poliedros, pionero en formular el problema de encontrar un circuito que pase por todos los nodos de un grafo.

Page 6: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Hamilton, 1858 : juego: dar la vuelta “al mundo” sin pasar dos veces por la misma ciudad.

• Pasar por todos los vértices de un dodecaedro una y sólo una vez y volver a la ciudad de origen.

• Generalización: circuitos hamiltonianos.

• Problema del Viajante de Comercio

• Problema “computacionalmente no resuelto” en el caso general.

Page 7: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Leyes de Kirschhoff (1847)

• Introdujo el concepto de árboles para resolver el sistema de ecuaciones lineales que describen el flujo de la corriente eléctrica en cada rama de cada circuito en una red eléctrica.

• Modeló la red compuesta de resistencias, condensadores, inductancias, etc, con un grafo.

• No todas las ecuaciones son necesarias porque el sistema no es independiente. Solo es necesario un sistema fundamental de circuitos que se puede obtener a partir de un árbol generador.

Page 8: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Cayley, 1857: Isómeros Químicos.

Cuántos compuestos químicos diferentes pueden corresponder a una misma fórmula?

Ejemplo : isómeros de CnH2n+2 (parafinas)

• Se pueden modelar como árboles con nodos de grado 4 y nodos de grado 1 hay.

• Se quiere contar cuantos árboles “distintos” de ese tipo hay.

Page 9: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Ejemplo: para n = 4 dos de los compuestos son:

Butano

Isobutano

Page 10: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Problema de los cuatro colores: se puede pintar cualquier mapa con cuatro colores sin que dos países que tengan como frontera una línea tengan el mismo color?.

• Origen vago. Primer planteo conocido:De Morgan 1852. Antecedentes de 1840.

• Primera “supuesta” demostración, Kempe 1879• Error descubierto por Heawood, 1890, que

demostró el Teorema para 5 colores.

Page 11: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Problema abierto por más de 100 años

• Avances de la teoría de grafos alrededor de este problema.

• Demostración en 1976, Appel y Haken.• Uso de la computadora en esta demostración.• Demostraciones posteriores.

Page 12: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Aplicaciones actuales

• Redes de comunicaciones, diseño, ruteo.

• Problemas de distribución y ruteo de vehículos.

• Planificación de la producción.

• Redes de tráfico

• Demostración de teoremas.

• Correctitud de programas

• VLSI

• Descifrado de Códigos

• Ingeniería de Software

• Bases de datos

• Biología Computacional

• etc..etc., etc.,etc…,etc.,etc, etc., etc., etc., etc., etc…...

Page 13: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Definiciones

• Un grafo G = (V,X) es un par de conjuntos, donde V es un conjunto de puntos o nodos y X es un subconjunto del conjunto de pares no ordenados de elementos distintos de V .

• Los elementos de X se llamas aristas o ejes o arcos.

• Dados v, w V, si e = (v,w) X se dice que v y w son adyacentes y que e es incidente a v y a w.

Notación: n= | V | m = | X |

Page 14: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• El grado de un nodo es la cantidad de ejes incidentes a v.

• Notación: d(v) = grado de v.

• Teorema: La suma de los grados de los nodos de un grafo es 2 veces el número de ejes, o sea:

i=1,n d (vi) = 2 m

Page 15: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• Un grafo se dice completo si todos los nodos son adyacentes entre si.

Notación: Kn grafo completo de n nodos.

Cuántos ejes tiene un grafo completo de n nodos?.

Page 16: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• Un camino en un grafo es una sucesión de ejes

e1 e2.......ek tal que un extremo de ei coincide con uno de ei-1 y el otro con uno de ei+1.

Hay otras formas de describir un camino…

• Un camino simple es un camino que no pasa dos veces por el mismo nodo.

• Un circuito es un camino que empieza y termina en el mismo nodo.

• Un circuito simple es un circuito de 3 o más nodos que no pasa dos veces por el mismo nodo.

Page 17: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• La longitud de un camino es la cantidad de ejes que tiene ese camino.

• La distancia d(v,w) entre dos nodos v y w de un grafo se define como la longitud del camino más corto entre ambos.

Si no existe camino entre v y w decimos que d(v,w) =

Page 18: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Proposición: la función distancia cumple las siguientes propiedades para todo v, u y w pertenecientes a V:

i) d(u,v) 0, d(u,v) = 0 si y sólo si u= v

ii) d (u,v) = d(v, u)

iii) d(u,w) d(u,v) + d(v,w)

Page 19: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• Un grafo se dice conexo si existe un camino entre todo par de nodos.

• Dado un grafo G = (V,X) un subgrafo de G es un grafo H = ( V´, X´) tal que

V´ V y X´ X ( V´x V´)

• Una componente conexa de un grafo G, es un subgrafo conexo maximal de G.

Page 20: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• Un grafo orientado o digrafo G= (V,X) es un par de conjuntos V y X, donde V es un conjunto de puntos o nodos y X es un subconjunto del conjunto de pares ordenados de elementos distintos de V .

• El grado de entrada din(v) de un nodo de un grafo orientado es la cantidad de ejes que “llegan” a v, es decir la cantidad de ejes que tienen a v como su segundo elemento.

• El grado de salida dout(v) de un nodo de un grafo orientado es la cantidad de ejes que “salen” de v, es decir la cantidad de ejes que tienen a v como su primer elemento

Page 21: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• Un camino orientado en un grafo orientado es una sucesión de ejes e1 e2.......ek tal que el primer

elemento del par ei coincide con el segundo de ei-1

y el segundo elemento de ei con el primero de ei+1.

• Un circuito orientado en un grafo orientado es un camino orientado que empieza y termina en el mismo nodo.

• Un digrafo se dice fuertemente conexo si entre para cualquier par de nodos (v,u) hay un camino orientado de v a u.

Page 22: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• Multigrafo: grafo en el que puede haber varios ejes entre cada par de nodos distintos.

• Seudografo: grafo en el cual puede haber varios ejes entre cada par de nodos y también puede haber ejes (loops) que unan a un nodo con si mismo.

(definiciones de acuerdo a la nomenclatura del libro de Harari)

Page 23: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Un grafo G = (V,X) es bipartito si existen dos subconjuntos V1 y V2 del conjunto de nodos V tal que:

V = V1 V2 , V1 V2 = , V1 V2

y tal que todos los ejes de G tienen un extremo en V1 y otro en V2.

Page 24: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Teorema:

Un grafo G es bipartito si y sólo si todos sus circuitos tienen longitud par

Page 25: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Dos grafos G = (V,X) y G´= (V´, X´) se dicen isomorfos si existe una función biyectiva

f: V -------------> V´

tal que para todo v, w V

(v,w) X si y sólo si (f(v), f(w)) X´

Page 26: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Proposición:

Si dos grafos G y G´ son isomorfos:

i) tienen el mismo número de nodos

ii) tienen el mismo número de ejes

iii) para todo k, 0 k n-1 tienen el mismo número de nodos de grado k.

iv) tienen el mismo número de componentes conexas

vi) para todo k, tienen el mismo número de caminos simples de longitud k.

Page 27: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

• Es cierta la recíproca de esta proposición?

• Hay condiciones necesarias y suficientes fácilmente verificables para ver si dos grafos son isomorfos?

Page 28: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Representación de grafos en la computadora

• Matrices

• Listas

Page 29: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Matriz de Adyacencia de un grafo G

A Rnxn , donde los elementos aij de A se definen como:

aij = 1 si G tiene un eje entre i y j

0 si no

Page 30: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Matriz de Incidencia de un grafo G

B Rmxn , donde los elementos bij de B se definen como:

bij = 1 si el eje i es incidente al nodo j

0 si no

Page 31: Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau

Teorema: Si A es la matriz de adyacencia del grafo G, el elemento aij

k de la matriz Ak , es igual a la cantidad de caminos de longitud k entre i y j.

Corolario: aii2 = d (vi)