algoritmos y estructura de datos - lectura 2

8
 Materia: Algoritmos y Estructuras de Datos 2 Profesor: Claudio Ochoa - 1 - Lectura 2: Definiciones y Conceptos Relacionados a Grafos Temas: 2.1 Grafos y digrafos 2.2 Adyacencia 2.3 Grado de un vértice 2.4 Ciclos y caminos 2.5 Grafos simples y multigrafos 2.6 Grafos densos y dispersos 2.7 Bucle 2.8 Grafos conexos 2.9 Grafos completos 2.10 Ejemplo de propiedades de grafos Bibliografía: - Estructuras de Datos en Java, Mark Weiss, Addison Wesley, 2000, capítulo 14 2.1 Grafos y digrafos Como mencionamos en la lectura anterior, un grafo es un una tupla <V, E>, donde  V: conjunto de vértices (nodos)  E: conjunto de aristas (arcos) y cada arista es un par (v,w), donde v,w  V. Los grafos pueden ser dirigidos (o dígrafos) , y en ese caso (v,w) se trata un par ordenado.  Algunas vece s las aristas tiene n un peso o costo asociado (v,w,p), v,w  V, p  R . Por ejemplo, en el grafo de la Figura 1, se observa un conjunto de ciudades, donde las distancias entre ellas están determinada s por los pesos de cada arista. Este grafo puede ser utilizado para encontrar el camino más corto (en kilómetros) que lleva de una ciudad a otra.

Upload: sergio

Post on 09-Jan-2016

214 views

Category:

Documents


0 download

DESCRIPTION

Siglo 21

TRANSCRIPT

7/17/2019 Algoritmos y Estructura de datos - Lectura 2

http://slidepdf.com/reader/full/algoritmos-y-estructura-de-datos-lectura-2 1/7

 

Materia: Algoritmos y Estructuras de Datos 2

Profesor: Claudio Ochoa - 1 -

Lectura 2: Definiciones y Conceptos Relacionados a

Grafos

Temas:2.1 Grafos y digrafos2.2 Adyacencia2.3 Grado de un vértice2.4 Ciclos y caminos2.5 Grafos simples y multigrafos

2.6 Grafos densos y dispersos2.7 Bucle2.8 Grafos conexos2.9 Grafos completos2.10 Ejemplo de propiedades de grafos

Bibliografía:

- Estructuras de Datos en Java, Mark Weiss, Addison Wesley, 2000, capítulo 14

2.1  Grafos y digrafos

Como mencionamos en la lectura anterior, un grafo es un una tupla <V, E>, donde

  V: conjunto de vértices (nodos)

  E: conjunto de aristas (arcos)

y cada arista es un par (v,w), donde v,w  V.

Los grafos pueden ser dirigidos (o dígrafos), y en ese caso (v,w) se trata un par ordenado.

 Algunas veces las aristas tienen un peso o costo asociado (v,w,p), v,w  V, p  R . Por ejemplo, en

el grafo de la Figura 1, se observa un conjunto de ciudades, donde las distancias entre ellas están

determinadas por los pesos de cada arista. Este grafo puede ser utilizado para encontrar el

camino más corto (en kilómetros) que lleva de una ciudad a otra.

7/17/2019 Algoritmos y Estructura de datos - Lectura 2

http://slidepdf.com/reader/full/algoritmos-y-estructura-de-datos-lectura-2 2/7

 

Materia: Algoritmos y Estructuras de Datos 2

Profesor: Claudio Ochoa - 2 -

Figura 1. Grafo de distancia entre ciudades

2.2  Adyacencia

Decimos que un vértice w es adyacente a un vértice v si existe una arista (v,w) en E. En el caso

de grafos no dirigidos, si w es adyacente a v, entonces v es adyacente a w. En el caso de

dígrafos, esto no se cumple, a no ser que tanto (v,w) y (w.v) sean aristas del grafo.

2.3  Grado de un vértice

Se considera grado de un vértice a la cantidad de aristas que llegan o salen de él. Para el caso de

grafos no dirigidos, el grado de un vértice es simplemente la cantidad de aristas incidentes a estevértice.

En el caso de grafos dirigidos, podemos definir un grado de entrada y un grado de salida. El grado

de entrada está determinado por el número de aristas que llegan al grafo, mientras que el grado

de salida está determinado por el número de aristas que salen de él. Por ejemplo, en la siguiente

figura el grado de salida de V 2  es 2, mientras que el grado de entrada de V 2  es 1.

Bogotá

Brasilia

Lima

Santiago

Buenos Aires

Asunción

1.500

800

900

2.000

200

500

120

 

230

 

201

 

320

 

280

 1900

250

 

160

 

210

 

7/17/2019 Algoritmos y Estructura de datos - Lectura 2

http://slidepdf.com/reader/full/algoritmos-y-estructura-de-datos-lectura-2 3/7

 

Materia: Algoritmos y Estructuras de Datos 2

Profesor: Claudio Ochoa - 3 -

Figura 2. Grafo dirigido

 A un vértice del que sólo salen aristas se le denomina fuente  (en el ejemplo anterior, el vértice V 4 ),

mientras que a aquellos vértices a los que sólo llegan aristas se les denomina sumidero  (en el

caso anterior, el vértice V 5 ); tiene grado positivo 0.

2.4  Ciclos y caminos

Un camino es secuencia de vértices w1,..,wN donde (wi,wi+1)  E, para 1 i < N. Se define como la

longitud de un camino al número de aristas en el camino. Por ejemplo, la longitud del camino

w1,..,wN es N-1. Cuando las aristas tienen peso, se define su longitud como la suma de los pesos

de las aristas en el camino. Un camino simple es un camino en el que todos los vértices son

distintos, con excepción del primero y el último.

Un ciclo es un camino w1,..,wN donde w1 y wN son el mismo vértice. Un ciclo hamiltoniano tiene,

además, que recorrer todos los vértices exactamente una vez (excepto el vértice del que parte y al

cual llega). La Figura 3 muestra un ciclo hamiltoniano.

Por ejemplo, en un museo grande (al estilo del Louvre), lo idóneo sería recorrer todas las salas

una sola vez, esto es buscar un ciclo hamiltoniano en el grafo que representa el museo (los

vértices son las salas y las aristas los corredores o puertas entre ellas).

V0

V2 V3

V1

V6V5

V4

1

8 45

2

4

1

2

2

10

3

6

7/17/2019 Algoritmos y Estructura de datos - Lectura 2

http://slidepdf.com/reader/full/algoritmos-y-estructura-de-datos-lectura-2 4/7

 

Materia: Algoritmos y Estructuras de Datos 2

Profesor: Claudio Ochoa - 4 -

Se habla también de camino hamiltoniano si no se impone regresar al punto de partida. Por

ejemplo, un caballo puede recorrer todas las casillas de un tablero de ajedrez sin pasar dos veces

por la misma: es un camino hamiltoniano.

Hoy en día, no se conocen métodos generales para hallar un ciclo hamiltoniano en tiempo

polinómico, siendo la búsqueda por fuerza bruta de todos los posibles caminos u otros métodos

excesivamente costosos. Existen, sin embargo, métodos para descartar la existencia de ciclos o

caminos hamiltonianos en grafos pequeños.

El problema de determinar la existencia de ciclos hamiltonianos, entra en el conjunto de los NP-

completos.

Figura 3. Ciclo hamiltoniano

Fuente: http://es.wikipedia.org/wiki/Archivo:Hamiltonian_path.svg

Si un grafo no contiene ciclos, decimos que el grafo es acíclico.

2.5  Grafos simples y multigrafos

Un grafo es simple  si a lo sumo 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.

7/17/2019 Algoritmos y Estructura de datos - Lectura 2

http://slidepdf.com/reader/full/algoritmos-y-estructura-de-datos-lectura-2 5/7

 

Materia: Algoritmos y Estructuras de Datos 2

Profesor: Claudio Ochoa - 5 -

Un grafo que no  es simple se denomina multigrado

2.6  Grafos densos y dispersos

Si un grafo tiene un gran número de aristas, decimos que se trata de un grafo denso. En el caso

de los grafos dirigidos, podemos ser mas precisos diciendo que es denso si  |E|  (|V|2). Si |E|  

(|V|) decimos que el grafo es disperso. En la mayoría de las aplicaciones los grafos son

dispersos.

Nótese que puede haber grafos que no sean ni densos ni dispersos.

2.7  Bucle

Un bucle es una arista (v,v), es decir, una arista que sale y llega al mismo nodo. En la figura 4,

vemos un bucle, donde una arista sale y llega al nodo A

Figura 4. Bucle

2.8  Grafos conexos

Un grafo es conexo si cada par de vértices está conectado por un camino, es decir, si para

cualquier par de vértices (a, b), existe al menos un camino posible desde a  hacia b .

Un grafo es fuertemente conexo si cada par de vértices está conectado por al menos dos caminos

disjuntos, es decir, es conexo y no existe un vértice tal que al sacarlo el grafo resultante sea

disconexo.

A

7/17/2019 Algoritmos y Estructura de datos - Lectura 2

http://slidepdf.com/reader/full/algoritmos-y-estructura-de-datos-lectura-2 6/7

 

Materia: Algoritmos y Estructuras de Datos 2

Profesor: Claudio Ochoa - 6 -

Es posible determinar si un grafo es conexo usando un algoritmo Búsqueda en anchura (Breadth

First Search , o BFS) o Búsqueda en profundidad (Depth First Search , o DFS).

Figura 5. Grafos conexos y no conexos

Fuente: http://es.wikipedia.org/wiki/Archivo:GrafoConexo.jpg 

2.9  Grafos completos

Un grafo es completo  si existen aristas uniendo todos  los pares posibles de vértices, es decir, todo

par de vértices (a, b) debe tener una arista e  que los une.

Un grafo completo de n  vértices tiene exactamente aristas.

2.10  Ejemplo de propiedades de grafos

7/17/2019 Algoritmos y Estructura de datos - Lectura 2

http://slidepdf.com/reader/full/algoritmos-y-estructura-de-datos-lectura-2 7/7

 

Materia: Algoritmos y Estructuras de Datos 2

Profesor: Claudio Ochoa - 7 -

Figura 6. Grafo de ejemplo 

En el grafo de la figura 6:

  Los nodos c y e tienen grado 4, y los demás nodos tienen grado 5

  Existe un lazo o bucle en el nodo d

  Es multigrafo ya que existen dos aristas que unen los vértices a y b

  Existen varios caminos que unen el nodo a y el nodo d

o  Por ejemplo, a-b-c-d, a-e-d , a-d o a-c-d

  El camino a-c-d-a es un ciclo

  El camino a-c-d-a es un camino simple, mientras que a-c-b-d-c-a no lo es 

  Es un grafo conexo, ya que todos los nodos tienen al menos un camino a otro nodo

  Es un grafo completo, ya que existen aristas para todo par de vértices

  Es un grafo denso, ya que |E|=12, si fuera dirigido |E|=23  |V|2=25

a

ec

b

d