Grafos en sage

Post on 21-Jun-2015

4.901 views 0 download

Transcript of Grafos en sage

1

Algorithmic Graph TheoryDavid Joyner, Minh Van Nguyen, Nathann Cohen

Version 0.3

RESUMEN DEL CAPÍTULO 1 Y 2 PREPARADO POR:KENNETH ROBLES RAMOS

OSVALDO MEDINA IRIZARRYHÉCTOR L. RODRÍGUEZ TORO

PARA LA CLASE: MATH-5500 MATEMÁTICAS DISCRETAS AVANZADAS

• Dado el mapa de Königsberg, con el río Pregolya dividiendo el plano en cuatro regiones distintas, que están unidas a través de los siete puentes, ¿es posible dar un paseo comenzando desde cualquiera de estas regiones, de modo de recorrerlas todas pasando sólo una vez por cada puente, y regresando al mismo punto de origen?

INTRODUCCIÓN A LA TEORÍA DE GRAFOS

• El trabajo de Leonhard Euler, en 1736, sobre el problema de los puentes de Königsberg es considerado el primer resultado de la teoría de grafos. También se considera uno de los primeros resultados topológicos en geometría (que no depende de ninguna medida). Este ejemplo ilustra la profunda relación entre la teoría de grafos y la topología.

¿QUÉ ES UN GRAFO?

• Un grafo G es un conjunto de objetos o par ordenado G = (V,E), donde: V es un conjunto de vértices o nodos, y E es un conjunto de arcos o aristas, que relacionan estos nodos.

• Desde un punto de vista práctico, los grafos permiten estudiar las interrelaciones entre unidades que interactúan unas con otras. Por ejemplo, una res de computadoras puede representarse y estudiarse mediante un grafo, en el cual los vértices representan terminales y las aristas representan conexiones (las cuales, a su vez, pueden ser cable o conexiones inalámbricas).

• Prácticamente cualquier problema puede representarse mediante un grafo, y su estudio trasciende a las diversas áreas de las ciencias exactas y las ciencias sociales.

• G=(V,E)• V={v1, v2, v3, v4, v5,… vn}• E={e1, e2, e3, e4, e5, e6,… en}

TIPOS DE GRAFOS

• Grafos simple - Un grafo es simple si sólo1 arista une dos vértices cualesquiera. Esto es equivalente a decir que una arista cualquiera es la única que une dos vértices específicos.

GRAFO DIRIGIDO

• En un grafo dirigido las aristas están formadas por flechas que indican la dirección de la arista.

GRAFOS NO DIRIGIDO

• Grafos no dirigido- e = (v,w) o (w,v)

GRAFOS NO SIMPLE

• Este es un grafo no dirigido que tiene lazos y aristas paralelas. Un grafo que no es simple se denomina Multigráfica o Grafo múltiple.

GRAFO PONDERADO

• Se presentan los pesos de cada arista y se puede determinar la longitud de una ruta, que es la suma de todos los pesos de las aristas.

GRAFOS COMPLETO

GRAFOS DE SIMILITUD

• Son aquellos grafos de los cuales se derivan otros grafos

GRADO DE UN VÉRTICE

• Comprende el número de aristas que inciden en el vértice.

þa = 2þb = 3þc = 4þd = 3þe = 2þf = 2 lazoþg = 0

CAMINO O TRAYECTORIA• Es el recorrido desde un vértice inicial hasta

un vértice final.

þa,b,c,d,e,fþa,c,b,d,e,fþa,b,e,c,d,fþa,c,d,b,e,fþ…þ…

MATRIZ DE ADYACENCIA• Se colocan en las filas y en las columnas los

vértices del grafo para determinar si los vértices son adyacentes

MATRIZ DE INCIDENCIA• Se determina la incidencia de las aristas con los

vértices

Isomorfismo de Grafos

Dos grafos G y H son isomorfos si existe unafunción f uno a uno, sobre los vértices de G alos vértices de H y una función g uno a unosobre las aristas de G a las aristas de H, demanera que si una arista e incide en v y w enG, si y sólo si la arista g(e) es incidente enf(v) y f(w) en H.

Continuación

En otras palabras, un grafo G es isomorfo aun grafo H si puede ser etiquetado de maneratal que si u y v son adyacentes en G,entonces su contraparte en V(H) son tambiénadyacentes en H. Para verificar si dos grafosson isomorfos hay que verificar si sonestructuralmente equivalentes.

Ejemplo:

Propiedad de Invariante

Un concepto importante en la teoría degrafos es la propiedad de invariante. Unapropiedad P es invariante siempre que G y Hsean grafos isomorfos.

Si G tiene una propiedad P, entonces Htambién tiene la propiedad P.

Continuación

Así que si G y H son isomorfos tienen elmismo número de vértices y aristas, por loque los vértices y las aristas son un ejemplode la propiedad invariante.

Ejemplo:

¿Son isomorfos los siguientes grafos?

No son isomorfos porque G tiene 7 aristasy H tiene 6 aristas

G H

Matrices de adyacencia

Los grafos G y H son isomorfos si y sólo sipara algún orden de su vértices sus matricesde adyacencia son iguales.

Esto implica que la clase de permutación dela matriz de adyacencia es un ejemplo deinvariante.

Ejemplo de la matriz de adyacencia

Invariantes Revisados

La siguiente lista contiene algunos elementospara comprobar que dos grafos no sonisomorfos.

• Ambos grafos deben tener el mismonúmero de aristas.• Ambos grafos deben tener el mismonúmero de vértices.• El grado de los vértices.

Unión e intersección de grafos

Para dos grafos G = (V1, E1) y H = (V2, E2),su unión está definida de la siguientemanera:

1, 2 1 2( , )G H V V E E=U U U

Unión de grafos

La intersección de dos grafos está definidade la siguiente manera:Para dos grafos G = (V1, E1) yH = (V2, E2),

1, 2 1 2( , )G H V V E E=I I I

Intersección de grafos

Ejemplo:

En un grafo la diferencia simétrica esdefinida de la siguiente forma:Si G = (V1, E1) y H = (V2, E2), entonces

( , )G H V E∆ =

Diferencia simétrica

donde y1 2V V V= ∆

1 2 1 2 1 2\ { \ }E E E uv u V V o v V V= ∆ ∈ ∈I I

Cuando entonces es simplemente el gráfico vacío.

G H∆Continuación

1 2V V=

Ejemplos

El subgrafo de supresión de vértices de G sedenota como G - {v}. Éste se obtienesuprimiendo de G un vértice v y toda lasaristas que incidan en el mismo.

Supresión de vértices

Ejemplo:

Si G = (V, E) con al menos una arista,entonces la supresión de arista de subgrafoobtenida de G se denota G – {e}. Donde seelimina la arista e ,pero no los vérticesincidentes en ella.

Supresión de aristas

Ejemplo:

37

Capítulo 2 – Algorítmos para Grafos

• Los algorítmos de grafos se pueden usar en aplicaciones para encontrar la ruta máscorta entre dos ciudades o la más barata, donde el vértice representa la ciudad y la línea la distancia más corta o el costo de viajar de una ciudad a otra.

• Los algorítmos para encontrar la ruta máscorta son de los más importantes en la teoría de algorítmos de grafos.

38

Sección 2.1 – Búsqueda de Grafos“Breadth-First search”

• “Breadth-First search” (BFS) es una estrategiapara recorrer un grafo a través de los nodos.

• Supongamos que queremos contar elnúmero de vertices (o edges) quesatisfacen una propiedad P. (por ejemplo:contar todo vértice cuya distancia hacia unvértice ‘a’ sea de dos o más edges.)

• El siguiente algoritmo nos muestra un ejemplopara encontrar la distancia desde un vértice “v0’’ acualquier otro vértice.

39

Sección 2.1 – Búsqueda de Grafos“Breadth-First search”

40

#============================================================================# Breadth-first search algorithm to find the distance from a fixed vertex “v0” to any other vertex. =# INPUT: =# G - a connected graph =# v0 - a vertex =# OUTPUT: =# D - a list of distances to every other vertex =#============================================================================def graph_distance(G, v0):

V = G.vertices()Q = [v0]T = [ ]D = [ ]while Q<>[ ] and T< >V:

for v in Q:if not(v in T):

D.append([v,G.distance(v0,v)])if v in Q:

Q.remove(v)T.append(v)T = list(Set(T))Q = Q+[x for x in G.neighbors(v) if not(x in T+Q)]if T == V:

breakD.sort()print Q, Treturn D

41

Referencia:Joiner, D., Nguyen, M., & Cohen, N. (2010). Algorithmic graph theory

Johnsonbaugh, R., (2005). Matemáticas discretas. (6ta ed.). México: Pearson Prentice Hall.