• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Grafos en sage
 

Grafos en sage

on

  • 4,802 views

 

Statistics

Views

Total Views
4,802
Views on SlideShare
4,802
Embed Views
0

Actions

Likes
4
Downloads
77
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Grafos en sage Grafos en sage Presentation Transcript

    • Algorithmic Graph Theory David Joyner, Minh Van Nguyen, Nathann Cohen Version 0.3 RESUMEN DEL CAPÍTULO 1 Y 2 PREPARADO POR: KENNETH ROBLES RAMOS OSVALDO MEDINA IRIZARRY HÉCTOR L. RODRÍGUEZ TORO PARA LA CLASE: MATH-5500 MATEMÁTICAS DISCRETAS AVANZADAS 1
    • 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ólo 1 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 una función f uno a uno, sobre los vértices de G a los vértices de H y una función g uno a uno sobre las aristas de G a las aristas de H, de manera que si una arista e incide en v y w en G, si y sólo si la arista g(e) es incidente en f(v) y f(w) en H.
    • Continuación En otras palabras, un grafo G es isomorfo a un grafo H si puede ser etiquetado de manera tal que si u y v son adyacentes en G, entonces su contraparte en V(H) son también adyacentes en H. Para verificar si dos grafos son isomorfos hay que verificar si son estructuralmente equivalentes.
    • Ejemplo:
    • Propiedad de Invariante Un concepto importante en la teoría de grafos es la propiedad de invariante. Una propiedad P es invariante siempre que G y H sean grafos isomorfos. Si G tiene una propiedad P, entonces H también tiene la propiedad P.
    • Continuación Así que si G y H son isomorfos tienen el mismo número de vértices y aristas, por lo que los vértices y las aristas son un ejemplo de la propiedad invariante.
    • Ejemplo: ¿Son isomorfos los siguientes grafos? G H No son isomorfos porque G tiene 7 aristas y H tiene 6 aristas
    • Matrices de adyacencia Los grafos G y H son isomorfos si y sólo si para algún orden de su vértices sus matrices de adyacencia son iguales. Esto implica que la clase de permutación de la matriz de adyacencia es un ejemplo de invariante.
    • Ejemplo de la matriz de adyacencia
    • Invariantes Revisados La siguiente lista contiene algunos elementos para comprobar que dos grafos no son isomorfos. Ambos grafos deben tener el mismo número de aristas. Ambos grafos deben tener el mismo número de vértices. El grado de los vértices.
    • Unión e intersección de grafos Unión de grafos Para dos grafos G = (V1, E1) y H = (V2, E2), su unión está definida de la siguiente manera: G U H = (V1, U V2 , E1 U E2 )
    • Intersección de grafos La intersección de dos grafos está definida de la siguiente manera: Para dos grafos G = (V1, E1) y H = (V2, E2), G I H = (V1, I V2 , E1 I E2 )
    • Ejemplo:
    • Diferencia simétrica En un grafo la diferencia simétrica es definida de la siguiente forma: Si G = (V1, E1) y H = (V2, E2), entonces GDH = (V , E ) donde V = V1D V2 y E = E1DE 2 {uv u Î V1 I V2 o v Î V1 I V2 }
    • Continuación Cuando V1 = V2 entonces G DH es simplemente el gráfico vacío. Ejemplos
    • Supresión de vértices El subgrafo de supresión de vértices de G se denota como G - {v}. Éste se obtiene suprimiendo de G un vértice v y toda las aristas que incidan en el mismo.
    • Ejemplo:
    • Supresión de aristas Si G = (V, E) con al menos una arista, entonces la supresión de arista de subgrafo obtenida de G se denota G {e}. Donde se elimina la arista e ,pero no los vértices incidentes en ella.
    • Ejemplo:
    • Capítulo 2 Algorítmos para Grafos Los algorítmos de grafos se pueden usar en aplicaciones para encontrar la ruta más corta 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ás corta son de los más importantes en la teoría de algorítmos de grafos. 37
    • Sección 2.1 Búsqueda de Grafos Breadth-First search Breadth-First search (BFS) es una estrategia para recorrer un grafo a través de los nodos. Supongamos que queremos contar el número de vertices (o edges) que satisfacen una propiedad P. (por ejemplo: contar todo vértice cuya distancia hacia un vértice a sea de dos o más edges.) El siguiente algoritmo nos muestra un ejemplo para encontrar la distancia desde un vértice v0 a cualquier otro vértice. 38
    • Sección 2.1 Búsqueda de Grafos Breadth-First search 39
    • #============================================================================ # 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: break D.sort() print Q, T return D 40
    • 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.