Anda di halaman 1dari 26

GRAFOS

2/2/13

GRAFOS:
Un grafo es una estructura de datos que almacena datos de dos tipos:

Vrtices o nodos, con un valor almacenado.

Haga clic para modificar elconecta a subttulo del patrn y puede tener un Aristas o arcos, cada una estilo de un vrtice con otro,

valor almacenado . Una arista es una par de vrtices (V,E)


-

Si el par est ordenado, se dice que el grafo es dirigido o que es un

dgrafo Los grafos, constituyen estructuras de datos en las que se pueden

expresar relaciones de conexin entre diversos elementos denominados vrtices. Cada conexin se representa por un dato llamado arista . Los grafos tienen gran cantidad de aplicaciones; por ejemplo:
q

Representacin de circuitos electrnicos analgicos y digitales Representacin de caminos o rutas de transporte entre localidades Representacin de redes de computadoras.

2/2/13 los problemas ms importantes en los grafos es el de encontrar Uno de

ADYACENTE: Se dice que E es adyacente a V si existe la arista (V,E). - Es un grafo dirigido, no es lo mismo que V sea adyacente a E que al revs.
Haga clic para modificar el estilo de subttulo del patrn

CAMINO: secuencia de vrtices tales que cada uno sea adyacente al anterior. PESO O COSTE: Las aristas pueden contener datos y uno de ellos puede ser el coste o peso asociados a esta arista. -Se usa para determinar el coste de recorrer el camino. LONGITUD DEL CAMINO: N de aristas que tiene. COSTE DE UN CAMINO: La suma de los pesos de sus aristas. CAMINO SIMPLE: Es aquel en que todos los vrtices son distintos, excepto quizs el primero y el ultimo. 2/2/13

Ejemplos:
Haga clic para modificar el estilo de subttulo del patrn

Grafo Completo

2/2/13

Multgrafo

2/2/13

Ejemplo: Camin repartidor


Un camin repartidor debe visitar diferentes puntos de la ciudad para dejar su producto. Ciudad = grafo
Vrtices 0 puntos de la ciudad Arcos = tiempo que toma en ir de un punto a otro

2/2/13

Clasificacin de Grafos
Existen dos tipos de grafos los no dirigidos y los dirigidos. No dirigidos: son aquellos en los cuales los lados no estn orientados (No son flechas). Cada lado se representa entre parntesis, separando sus vrtices por comas, y teniendo en cuenta (Vi,Vj)=(Vj,Vi).

Dirigidos: son aquellos en los cuales los lados estn orientados (flechas). Cada lado se representa entre ngulos, separando sus vrtices por comas y teniendo en cuenta <Vi ,Vj>!=<Vj ,Vi>. En grafos dirigidos, para cada lado <A,B>, A, el cual es el vrtice origen, se conoce como la cola del lado y B, el 2/2/13 cual es el vrtice destino, se conoce como cabeza del

Tipos de grafos
Grafo regular:
Aquel con el mismo grado en todos los vrtices

Grafo bipartito Es aquel con cuyos vrtices pueden formarse dos conjuntos disjuntos de modo que no haya adyacencias entre vrtices pertenecientes al mismo conjunto

2/2/13

Tipos de grafos
Grafo completo Aquel con una arista entre cada par de vrtices

Grafo nulo Se dice que un grafo es nulo cuando los vrtices que lo componen no estn conectados, esto es, que son vrtices aislado

2/2/13

Tipos de Grafos

Grafos Isomorfos
Dos grafos son isomorfos cuando
2/2/13

Grafos Platnicos Son los Grafos formados por los vrtices y aristas de los cinco slidos regulares (Slidos Platnicos), a saber, el tetraedro, el cubo, el octaedro, el dodecaedro y el icosaedro

Tipos de grafos
Grafos Dirigido
Grafo que contiene aristas dirigidas, como en el siguiente caso

2/2/13

Representacin de Grafos:formas de representar un Existen varias

grafo, una representacin simple se da por una lista adyacente que especfica todos los vrtices adyacentes a cada vrtice del grafo. Esta lista puede implementarse como una tabla, en cuyo caso se llama representacin en estrella. Ejemplo:

2/2/13

Grafos y Multgrafos
Un grafo G consiste en dos cosas: (1) Un conjunto V de elementos llamados nodos (o puntos o vrtices) (2) Un conjunto E de aristas tales que cada arista e de E esta identificada por un nico (desordenado) par [u,v] de nodos de V, denotado por e-[v,u]. A veces denotamos un grafo escribiendo G=(V,E) Suponga que e =[u,v]. entonces los nodos u y v se llaman extremos de e, y u y v se dice que son nodos adyacentes o vecinos. El grado de un nodo u, escrito grad(u), es el nmero de artistas que contienen a u.si grad(u)= 0, o sea, si u no pertenece a ninguna arista--- entonces se dice que u es un nodo aislado. Un camino P de longitud n desde un nodo u se define como la secuencia de n +1 nodos. P=( v 0 i , v 1 i , v 2 i , . . . . v m ) 2/2/13

Ciclos de Grafos
Existen todava algunas familias de grafos que se derivan del concepto de grafos conexos. Este es el caso de los grafos eulerianos y los grafos hamiltonianos. Estas familias de grafos nos permiten resolver el famoso problema de los puentes de Knigsberg: cundo es posible hacer un recorrido de una figura (en este caso de un grafo mltiple) sin pasar dos veces por la misma lnea o por el mismo vrtice?. Tenemos dos grafos G1 y G2; es posible recorrer uno de ellos sin repetir ninguna lnea, pero el otro no. Cul es cul? Es evidente que el grafo G1 no puede ser recorrido sin repetir alguna de sus lneas, mientras que el grafo G2 s.

2/2/13

Grafos Eulerianos
Recorrido cerrado
Cubre todas las lneas de un grafo, comenzando y terminando en un mismo vrtice, recorriendo sin repeticin y en forma continua todas las lneas de un grafo G cualquiera. Cuando tal recorrido existe, se denomina euleriano y un grafo que se puede trazar mediante un recorrido euleriano se llama grafo euleriano. En la fig. 3.11, G1 es obviamente un grafo euleriano; G2 no lo es, a pesar de que se puede trazar continuamente, ya que el recorrido comienza y termina en vrtices distintos; finalmente, G3 no es un grafo euleriano, porque no se puede trazar continuamente.

2/2/13

Grafos Hamiltonianos
Cundo es posible hacer un recorrido en un grafo que pase por cada vrtice exactamente una vez y termine en el vrtice original?. O en otras palabras, cundo un grafo tiene un ciclo cerrado que contenga a todos sus vrtices? Cuando existe tal ciclo, lo llamaremos ciclo hamiltoniano y un grafo que posea un ciclo hamiltoniano se llama grafo hamiltoniano. Un ciclo puro Cp es evidentemente hamiltoniano; el grafo de la imagen tambin. En efecto, el ciclo v1v2... v7v1 representa un ciclo hamiltoniano del grafo G.

2/2/13

Recorridos de Grafos (Programacin) Recorrer un grafo significa tratar de alcanzar todos los nodos que

estn relacionados con uno que llamaremos nodo de salida. Existen bsicamente dos tcnicas para recorrer un grafo: DFS: recorrido en profundidad ( Depth First Search). Generalizacin del recorrido en pre orden de un rbol. BFS: recorrido en anchura (Breath First Search). Generalizacin de recorrido por niveles de un rbol.

2/2/13

hasta que ya no es posible avanzar ms. Cuando ya no puede avanzarse ms sobre el camino elegido, se vuelve atrs en busca de caminos alternativos, que no se estudiaron previamente. La bsqueda en profundidad empieza por un vrtice V. Del grafo G; V no visitado; as hasta que no haya ms vrtices adyacentes no visitados .
v

Recorrido en Profundidad DFS: Tratan de buscar los caminos que parten desde el nodo de salida

2/2/13

Recorrido en Anchura BFS: Supone recorrer el grafo, a partir de un nodo dado, en

niveles, es decir, primero los que estn a una distancia de un arco del nodo de salida, despus los que estn a dos arcos, y as sucesivamente hasta alcanzar todos los nodos a los que se pudiese llegar desde el nodo de salida. Este mtodo comienza visitando el vrtice de partida A, para continuacin visitar los adyacentes que no estuvieron ya visitados. As sucesivamente con los adyacentes. Este mtodo utiliza una cola como estructura auxiliar en la que se mantienen los vrtices que se vayan a procesar posteriormente.
v

2/2/13

Deteccin de Ciclos
Muchos algoritmos se basan en deteccin de ciclos en los grafos. Un algoritmo para deteccin de ciclos se obtiene al utilizar directamente de depthFirstSearch(). Para la ubicacin de grafos indirectos, son necesarias pequeas modificaciones en DFS(v) con el fin de detectar los ciclos y reportarlos.

Algoritmo: cycleDetectionDFS(v) num(v) = i++; for todo los vrtices u adyacentes a v if num (u) es 0 aade edge (uv) a edges; cycleDetectionDFS(u);

2/2/13 else if edge (vu) no esta en edges

Arboles de Expansin
Debe quedar claro que el nmero mnimo de conexiones forma un rbol porque surgen trayectorias alternas como resultado de los ciclos en los grafos. Por consiguiente, para crear el numero mnimo de conexiones debe de crearse un rbol de expansin y este rbol de expansin es el producto derivado de depthFirssearch(). Se considera el grafo que representa las 2/2/13

Conectividad
En muchos problemas estamos interesados en encontrar una trayectoria en el grafo desde un vrtice a cualquier otro vrtice. Para los grafos no dirigidos, esto significa que no hay piezas separadas, o subgrafos, del grafo, para un dgrafo, esto significa que existen algunos lugares en el grafo a los cuales podemos llegar de algunas direcciones pero no necesariamente son capaces de regresar a los puntos de inicio.

Conectividad en los grafos no dirigidos Un grafo no dirigido se llama conectado cuando existe una trayectoria entre dos vrtices cualesquiera del grafo. El algoritmo de bsqueda primero en profundidad puede utilizarse para reconocer si un grafo se conecta, siempre en el encabezado del bucle se elimine. Entonces, despus de que el algoritmo se termina, tenemos que revisar si la lista de edges incluye todo los vrtices del grafo o simplemente revisar si i es igual al nmero de vrtices.
2/2/13

While exista un vrtice v tal que num (v) ==0

La conectividad viene en grados: un grafo puede estar ms o menos conectado, y depende del nmero de trayectorias diferentes entre sus vrtices. Un tipo especial de grafo es un 2 conectado, o biconexo, grafo para el que existen cuando menos 2 trayectorias que no se trasladan entre dos vrtices que siempre deba incluirse en la trayectoria entre cuando menos dos vrtices a y b.
2/2/13

Ordenacin Topolgica
En muchas ocasiones Hay un conjunto a tareas a realizar para algunos pares de tareas importa cual tarea se realiza primero mientras que para otros pares de tareas el orden de las ejecucin es irrelevante. Una ordenacin topolgica lineariza un dgrafo; es decir, etiqueta todos sus vrtices con los nmeros 1, ,[V] de 2/2/13

el resumen del algoritmo de ordenacin topolgica es el siguiente; topologicaSort(digraph) for i = 1 a [v] encuentra un vrticemnimo v; mun (v) = i; elimina de digraph el vrtice v y todas las aristas incidentes con v;

2/2/13

GRUPO N 03
Haga clic para modificar el estilo de subttulo del patrn

INTEGRANTES:

PINEDA PORRAS, CYNTHIA CABALLERO TRISTAN, GUILLERMO DIONICIO CAMACA JORGE LUIS GAMARRA ASMAT, CARLOS

2/2/13

Anda mungkin juga menyukai