INTRODUCCION

Para nadie es novedad observar en la vida cotidiana: carreteras, líneas telefónicas, líneas de televisión por cable, el transporte colectivo metro, circuitos eléctricos de nuestras casas, automóviles, y tantas cosas más; lo que no pensamos frecuentemente es que estos forman parte de algo que en matemáticas se denomina como grafos. En este trabajo se tratará brevemente de explicar lo que son los grafos, sus tipos, y algunas derivaciones de ellos, así como su representación gráfica y en algunos casos, su representación en algún programa informático, así como en la memoria.

1

 Problema del viajante de comercio. llamados aristas (edges en inglés) que pueden ser orientados o no. G. es un par ordenado de V y A. Un vértice puede tener 0 o más aristas. pero toda arista debe unir exactamente a dos vértices.  Dígrafos etiquetados. Un grafo puede representar varias cosas de la realidad cotidiana. Un grafo. a estos también se les llama arcos o ejes del grafo. Problemas de Existencia El problema de los siete puentes de Königsberg: Existe una trayectoria cerrada que cruce cada uno de los siete puentes exactamente una vez?  El problema del Caballo de Ajedrez: Existe una secuencia de los movimientos del caballo tal que visite cada cuadrado de un tablero de ajedrez exactamente una vez y regresando a la posición de partida?  El problema de los Cuatro Colores: Puede colorearse todo mapa con cuatro colores de modo que los países vecinos tengan colores diferentes?  Problemas de Construcción  Determinar si un grafo dado es euleriano y construir un camino euleriano (algoritmo de Fleury).TEORÍA DE GRAFOS Y SU APLICACIONES En matemáticas y en ciencias de la computación. 2 . Los grafos representan conjuntos de objetos que no tienen restricción de relación entre ellos. de objetos llamados vértices (o nodos) y una selección de pares de vértices. un grafo se representa mediante una serie de puntos (los vértices) conectados por líneas (las aristas). 2. etc. circuitos eléctricos. Un grafo es un conjunto. donde V es el conjunto de vértices o nodos del grafo y A es un conjunto de pares de vértices.  Árboles etiquetados. Típicamente. a continuación se tratara de explicar con mayor detalle y a través de ejemplos. Problemas de Optimización  Problema de encontrar el camino mínimo entre dos vértices en dígrafo pesado. APLICACIÓN A PROBLEMAS DE VIDA REAL La mayor parte de los problemas de la teoría de grafo pueden ser aplicados a: 1. GRAFOS Para tener claro el concepto de grafos. 4. no vacío. 3. vías férreas. la teoría de grafos (también llamada teoría de las gráficas) estudia las propiedades de los grafos (también llamadas gráficas). tales como mapas de carreteras. Problemas de Enumeración  Grafos etiquetados.

Los grafos se constituyen principalmente de dos partes: las aristas. Si la arista carece de dirección se denota indistintamente o .La notación se utiliza comúnmente para identificar un grafo. vértices y los caminos que pueda contener el mismo grafo. Llamaremos grado de un vértice al número de aristas de las que es extremo. los vértices son mientras que las aristas son Las aristas e2 y e7 se llaman aristas paralelas porque unen un mismo par de vértices. Aristas Paralelas: Se dice que dos aristas son paralelas si vértice inicial y el final son el mismo. Aristas Son las líneas con las que se unen las aristas de un grafo y con la que se construyen también caminos. a los vértices a y b se les llama sus extremos. Cruce: Son dos aristas que cruzan en un punto. Aristas Cíclicas: Arista que parte de un vértice para entrar en el mismo. En los grafos anteriores. La arista se llama lazo o bucle porque une un vértice consigo mismo. siendo a y b los vértices que une. Si es una arista.     Aristas Adyacentes: Se dice que dos aristas son adyacentes si convergen en el mismo vértice. Se dice que un vértice es `par' o `impar' según lo sea su grado. 3 . Vértices Son los puntos o nodos con los que está conformado un grafo.

El conjunto de vértices es: b. Hallar las aristas paralelas. c. V) y si tenemos un arista que los une. El conjunto de aristas es: c. es el único lazo. No hay vértices aislados. Vértice Aislado: Es un vértice de grado cero. Escribir el conjunto de aristas. entonces U y V son vértices adyacentes y se dice que U es el vértice inicial y V el vértice adyacente. d. d. Vértice Terminal: Es un vértice de grado 1. e. Otro Ejemplo 4 . b. Hallar los lazos. Hallar los vértices aislados. Solución a.   Vértices Adyacentes: si tenemos un par de vértices de un grafo (U. Ejemplo 1 Para el grafo siguiente: a. e. Escribir el conjunto de vértices. y son aristas paralelas.

donde. que es un número par. donde A es el número de aristas de G. grad (v1) = 1. c. El único grafo es: 5 . grad (v2) = 1. Entonces la suma de los grados de todos los vértices de G es igual a dos veces el número de aristas en G.Teorema Sea G un grafo con vértices . porque grad (v1)+grad (v2) + grad (v3) = 4. grad (v2) = 0. grad (v3) = 4 Solución a. que es un número par. grad (v2) = 2. grad (v3) = 1 c. Sí. debe ser par. a. No es posible porque la suma de los grados de los vértices es 5 que el un número impar. b. Así. grad (v1) = 2. el número de vértices de grado impar. Como consecuencia del teorema anterior se tiene que para cualquier grafo. 2A es el total de la suma de los grados de los vértices de G. grad (v3) = 2 b. Es decir: . grad (v1) = 0. porque grad (v1) + grad (v2) + grad (v3) = 4. Ejemplo ¿Se puede dibujar un grafo G con tres vértices v1 v2 y v3. Sí. El número de aristas es 2.

una lista dinámica con los nodos a los que se puede acceder desde él. Representación listas: mediante En las listas de adyacencia lo que haremos será guardar por cada nodo. Entonces la matriz de incidencia de G es la matriz M(G) = [mij] donde mij es el número de veces que la arista ej incide en el vértice vi.1 ó 2 (2 en el caso que la arista sea un lazo). e". esta es una matriz V×V A(G)[aij]. . . . al igual que antes. A continuación damos un ejemplo de un grafo con su correspondiente matriz de incidencia y matriz de adyacencia. . los valores son 0. La información de los nodos se puede guardar en un vector. además de la información que pueda contener el propio nodo. vº y las aristas por e1. en donde aij es el numero de aristas que van de vi hasta vj. e2. v2. o en otra lista dinámica. . que llamaremos de adyacencia. entonces le corresponde una matriz denominada la matriz de incidencia de G. Si denotamos los vértices de G por v1. Esta relación entre índices se puede guardar en una matriz. . . Sea G = (V. 6 . .E) un grafo con “v” vértices y “e” aristas. Otra matriz asociada a G es la matriz de adyacencia. de manera que los arcos entre los nodos se pueden ver cómo relaciones entre los índices.REPRESENTACIÓN DE GRAFOS EN PROGRAMAS Representación mediante matrices: La forma más fácil de guardar la información de los nodos es mediante la utilización de un vector que indexe los nodos.

. Grafo dirigido (dígrafo) Dado un grafo dirigido o dígrafo D = (V.(4. v2) y (v2. 2.5)} La matriz de adyacencia de un dígrafo no es simétrica. 5.(4.CLASIFICACION DE GRAFOS I. vn} su matriz de adyacencia es la matriz de orden n×n. 4.(3. de forma que los pares (v1. A3) V3 = {1. En un grafo dirigido cada arco está representado por un par ordenado de vértices.6).(3. 3.3).. Es una matriz binaria.(5.2). .1). Ejemplo G3 = (V3. 7 .2). E) con n vértices {v1.5).6} A3 = { (1. El número de unos que aparecen en una fila es igual al grado de salida del correspondiente vértice y el número de unos que aparecen en una determinada columna es igual al grado de entrada del correspondiente vértice.1).(6. A(D)=(aij) donde aij es el número de arcos que tienen a vi como extremo inicial y a vj como extremo final.(3. v1) representan dos arcos diferentes..

Ejemplo Dado el dígrafo siguiente: 8 . Ejemplo La matriz de adyacencia de un grafo es simétrica. Por lo tanto. Si el grafo es simple entonces la matriz de adyacencia contiene solo ceros y unos (matriz binaria) y la diagonal esta compuesta sólo por ceros. Si cada arista en G tiene una dirección.II. v2) y (v2. el grafo que se obtiene se llama grafo subyacente de G. v1) representan el mismo arco. A(G)=(aij) donde aij es el número de aristas que unen los vértices vi y vj. Si un vértice es aislado entonces la correspondiente fila (columna) esta compuesta sólo por ceros. entonces G se llama grafo dirigido o dígrafo y sus aristas se llaman arcos. El vértice donde empieza un arco se llama punto inicial y el vértice donde termina se llama punto Terminal. Grafo no dirigido En un grafo no dirigido el par de vértices que representa un arco no está ordenado. Grafos Dirigidos o Grafos Orientados (Dígrafo) 1. Cuando no se consideran las direcciones de las aristas en G. S u matriz de adyacencia es la matriz de orden n×n. los pares (v1. Sea G un grafo. III.

el grado de entrada de v. Arco e1 e2 e3 e4 e5 b. Vértice v1 v2 v3 Grado entrada 1 2 2 Grado salida 2 1 2 9 . Sea v un vértice de un dígrafo G. Solución a. Dar los puntos inicial y Terminal de cada arco. Ejemplo En el ejemplo anterior. los grados de entrada y de salida de cada vértice se detallan en la siguiente tabla. El grado de salida de v. denotado por gradent (v) es el numero de arcos en G cuyo punto terminal es v. denotado por gradsal (v) es el número de arcos en G cuyo punto inicial es v. b. La tabla siguiente detalla todos los arcos con sus puntos inicial y Terminal. El grafo subyacente es: Punto Inicial v1 v2 v3 v3 v1 Punto Terminal v2 v1 v2 v3 v3 2. Dibujar el grafo subyacente.a.

Ejemplo El siguiente dígrafo es fuertemente conexo. v1 no es asequible desde ningún vértice porque gradent (v1) =0 v3 es asequible desde cualquier otro vértice. En este dígrafo cada vértice es asequible desde cualquier otro vértice. entonces se dice que G es débilmente conexo. Ejemplo Considérese el dígrafo siguiente: Una trayectoria dirigida de v2 a v5 es: v2 e2 v3 e3 v4 e4 v5.3. Si el grafo subyacente de G es conexo. Una trayectoria dirigida en un dígrafo G es una sucesión de vértices y aristas de modo que el punto Terminal de un arco es el punto inicial del siguiente. entonces el dígrafo se denomina fuertemente conexo. Sea G un dígrafo. Si en G existe una trayectoria orientada que va del vértice vi al vértice vk entonces se dice que vk es asequible a partir de vi . 4. Si cada vértice en G es asequible a partir de cualquier otro vértice en G. 10 .

11 . El peso (o longitud de un camino en un grafo ponderado G se define como la suma de los pesos de las aristas del camino. G es un grafo ponderado si a cada arista e de G se le asigna un numero no negativo w(e) denominado peso o longitud de e. En particular.IV. Un importante problema en teoría de grafos es encontrar el camino más corto (liviano). Un grafo G es un grafo etiquetado si sus aristas y/o vértices tienen asignado alguna identificación. esto es. Grafos Etiquetados y Ponderados Aunque ya hemos usado los grafos etiquetados. el camino con el peso (longitud) mínimo entre dos vértices dados. damos una definición en esta sección.

. Grafos regulares de grado 3. Grafos regulares de grado 2. c) Grafo bipartido. b) El grafo completo de orden n. V1 ∩ V2 = a conjunto vacío y cada arista de E une un vértice de V1 y otro de V2. Un grafo completo de n vértices tiene exactamente aristas. es el grafo que tiene n vértices y cada vértice está unido a los demás por exactamente una arista. 12 .E) diremos que es un grafo bipartido si se puede dividir el conjunto de vértices en dos subconjuntos V = V1 U V2. tales que son disjuntos.Es aquel con cuyos vértices pueden formarse dos conjuntos disjuntos de modo que no haya adyacencias entre vértices pertenecientes al mismo conjunto es decir un grafo G = (V.TIPOS DE GRAFOS a) Es un grafo regular de grado n si todos sus vértices tienen grado n. que se denota por Kn.

Se denota por Kr.s al grafo bipartido completo donde V1 tiene r vértices y V2 tiene s vértices e) Grafo nulo: Se dice que un grafo es nulo cuando los vértices que lo componen no están conectados. que son vértices aislados. f) son Grafos Isomorfos: Dos grafos isomorfos cuando existe una correspondencia biunívoca (uno a uno). 13 . esto es. entre sus vértices de tal forma que dos de estos quedan unidos por una arista en común.d) Un grafo bipartido completo si V=V1∪V2 y dos vértices de V están unidos por una arista de E si y solo si un vértice está en V1 y el otro en V2.

sin aristas y se denota por vi ó vj. vj en G. se llama trayectoria simple. Si el grafo es simple y con n vértices y si tiene más de ((n-1)/2) aristas. Sí vi = vj entonces la trayectoria es trivial. b. Otra definición que dejaría esto más claro sería: un grafo conexo es un grafo no dirigido de modo que para cualquier par de nodos existe al menos un camino que los une. c. Sí una trayectoria o camino de vi a vj no tiene vértices repetidos. Un circuito o ciclo es una trayectoria o camino que empieza y termina en el mismo vértice y no tiene aristas repetidas.GRAFOS CONEXOS CONECTIVIDAD Un grafo se puede definir como conexo si cualquier vértice V pertenece al conjunto de vértices y es alcanzable por algún otro. 14 . El circuito se llamará simple si no tiene aristas ni vértices repetidos. Teorema. Definición. entonces el grafo es conexo. Ejemplo ¿Cuál de los grafos siguientes es conexo? Solución: a. Sean vi y vj dos vértices de un grafo G. existe una trayectoria entre vi y vj. Sea G un grafo. Entonces G debe tener al menos n -1 aristas. Sea G un grafo conexo con n vértices. Una trayectoria o camino de vi a vj es una sucesión alternada de vértices y aristas de G que comienza en vi y termina en vj. Definición. Se dice que G es un grafo conexo si para cada par de vértices vi. Definición. excepto el primero y el último. Conexo Conexo No es conexo. TRAYECTORIAS O CAMINOS Y CIRCUITOS O CICLOS.

Lo anterior quiere decir que un circuito euleriano es una trayectoria que empieza y termina en el mismo vértice. para todo vi. Si G tiene un ciclo de euler. Sea vi el vértice donde comienza el circuito de euler. Un recorrido cerrado. sea G=(V. Entonces G es conexo. se dice que es un camino simple.Dado un camino de extremos v y w en un grafo no dirigido (V. el circuito ha pasado por dos aristas nuevas con él o por un lazo de él. G contiene un circuito euleriano sí y sólo sí:   G es conexo. Si el único vértice que se repite es el extremo se dice Ciclo o camino simple cercado. Así. Este criterio lo proporciona el siguiente teorema. vj ε V existe una trayectoria que hace parte del ciclo. un recorrido tal que v=w será un circuito. un recorrido que recorra las aristas de E se llama recorrido auleriano. GRAFOS EULERIANOS Un camino euleriano se define de la manera más sencilla como un camino que contiene todos los arcos del grafo. Un circuito que contiene todas las aristas de G recibe el nombre de circuito euleriano. En cada caso se añade 2 al grado de ese vértice.. pasa por cada vértice al menos una vez y sólo una vez por cada arista.E) un grafo no dirigido. sino se repite ninguna arista diremos que es un recorrido.E). partirá de ese vértice. Cada vértice de G es de grado par. Teorema. Sea G un grafo. es decir. Existe un criterio preciso para saber cuando un grafo admite un circuito euleriano.Definición. 15 . cada vez que el ciclo llegue allí. Para cualquier otro vértice vk de G. Cuando ningún vértice del grafo se repite en un camino.

El circuito v1 e1 v2 e2 v1 es euleriano. El circuito v3 e3 v1 e1 v2 e2 v3 es euleriano. por tanto se tiene que el grado de vi también es par. c. cuales admiten circuitos eulerianos? Solución a. Ejemplo En los grafos siguientes. No lo admite porque cualquier ciclo utilizará la arista e1 dos veces. No lo admite porque v4 es un vértice aislado. e. En el vértice inicial vi. 16 .Como este vértice vk no es punto inicial se añade 2 cada vez que el ciclo pasa por vk. f. No admite ningún circuito euleriano. la primera arista del ciclo debe ser distinta de la última. y de cualquier otra que pase por vi. d. de modo que el grado de vk es par. b. v1 e1 v2 e2 v3 e3 v4 e4 v2 e5 v5 e6 v1 es un circuito euleriano.

esto es buscar un ciclo hamiltoniano en el grafo que representa el museo (los vértices son las salas. Si se empieza en v5. v2. v3. El razonamiento es el siguiente: Si se empieza en v1. Un ciclo hamiltoniano es: 17 . Ejemplo ¿Cuál de los grafos siguientes admite un circuito hamiltoniano? Solución a. no tiene aristas repetidas y pasa por cada vértice una sola vez. se debe regresar a v5. y donde se regresa al punto inicial. Un circuito o ciclo hamiltoniano es un ciclo simple que contiene todos los vértices de G. en el v5 se estará dos veces. por lo que se pasa tres veces por él. v4 y si se está en los demás vértices. se tendrá que pasar de nuevo por v5 (puesto que se empezará en v5). Por ejemplo. lo idóneo sería recorrer todas las salas una sola vez. donde no se recorre dos veces la misma arista. Lo anterior quiere decir que un circuito hamiltoniano es una trayectoria que empieza y termina en el mismo vértice. No admite circuitos hamiltonianos. en un museo grande. y las aristas los corredores o puertas entre ellas). Definición. Para completar el circuito.CAMINOS HAMILTONIANOS Un ciclo es un camino. 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). para luego ir a los vértices v1 o v4 ó a v3 o v2 respectivamente. b. es decir una sucesión de aristas adyacentes.

18 . RECORRIDO DE UN GRAFO Recorrer un grafo significa tratar de alcanzar todos los nodos que estén relacionados con uno que llamaremos nodo de salida. indicando además la ruta a seguir para ir de la primera ciudad a la segunda. y así sucesivamente hasta alcanzar todos los nodos a los que se pudiese llegar desde el nodo salida. Este es uno de los problemas más interesantes que se pueden resolver con algoritmos de grafos.Teorema. después los que están a dos arcos de distancia. y el recorrido en profundidad. Si la suma de los grados de cada par de vértices no adyacentes es mayor o igual a n. se vuelve atrás en busca de caminos alternativos. Recorrido en anchura: El recorrido en anchura supone recorrer el grafo. Cuando ya no puede avanzarse más sobre el camino elegido. donde n≥3. es decir. primero los que están a una distancia de un arco del nodo de salida. entonces G tiene un circuito hamiltoniano. a partir de un nodo dado. ALGORITMO DE FLOY WARSHALL El problema que intenta resolver este algoritmo es el de encontrar el camino más corto entre todos los pares de nodos o vértices de un grafo. Sea G un grafo conexo con n vértices. Recorrido en profundidad: el recorrido en profundidad trata de buscar los caminos que parten desde el nodo de salida hasta que ya no es posible avanzar más. Esto es semejante a construir una tabla con todas las distancias mínimas entre pares de ciudades de un mapa. que no se estudiaron previamente. en niveles. Existen básicamente dos técnicas para recorrer un grafo: el recorrido en anchura.

j] = mínimo(A[i. j<n. i<n.Function(n.j]. i++){ for (j=0. j. k++){ for (i=0. k<n.matriz[]) Para k = '0' hasta n hacer Para i = '0' hasta n hacer Para j = '0' hasta n hacer // ALGORITMO ORGINAL DE WARSHALL // A[i. float dist. } } } } 19 .k] + matriz[k.k] + A[k.j]) si matriz[i][j] > matriz[i.j] then matriz[i][j] = matriz[i. j++){ if (matriz[i][j] > matriz[i][k] + matriz[k][j]) matriz[i][j] = matriz[i][k] + matriz[k][j].j] Fin de si Fin de para Fin de para Fin de para CODIGO EN C++ // Programa Floyd Warshall void warshall(int n. int matriz[20][20]){ int i. k.A[i. for (k=0.k] + matriz[k.

43 :34 6:0./48 .:7..8 2J32.:94.234 2E8.7  572074 48 6:0 089E3 .70. 8:2.008  08 /0..47924080/003.9.3.03908 08 2.43897:7 :3.3.34         # ## &#   #0.08  9030 :3 .9073.80:75.148            %   .48  6:0 34 80 089:/..3. .8 /89. /89..7.:7./.:7.9. 3  03943.8 03970 5.7 /0 .4397. 5..  890 08 :34 /0 48  574-02.. /0 -:8.14  894 08 8020.5./.-.8 .6:0..477/4035741:3//. 80:3/.7 48 ..3908 6:0 80 5:0/03 7084.20390/489F.479248 /0 7.4304 . .7903/08/0034/4/08.2943.14 .7084..  $0. 57207. /0 48 7.4 /0 34/4 /0 8..7 /0 .8J 8:.20390 .7./.  :3 7. .0.3. :3./02E8.4770707. /0 :3 .../   #0.../.20390      #%  #$    574-02.08 /0 :3 7.   .43 3 . 9.708 /0 34/484 .8 2E8 390708.2348 6:0 5.7802E884-70 0 .07 .70.6:039039.3.477/403./48 /0 .F79.070890.97E8 03 -:8.7.89.7:9.89.:/./08 /0 :3 2..708 /0 .7 94/48 48 34/48 6:0 089F3 70. ./.9./ .48 /0 /89.47 7 /403 5741:3//.43 94/.70..7 /0.  3/..3/4./ 0 70.7/08/0034/48.3/4. 97.390 ./.F79.7024834/4/08./4  03 3.3..8:543070. 8903-E8..797/0:3 34/4 /.477/4 03 5741:3//.08 34 ./ 97. /0 .%04702. .43.794/484834/48.3.47707 :3 7.   #0.2348 ..3.5.F79. /48 .08  /43/0 3_  $ .47 4 :.3.08...2.47 7 /403..234 00/4  80 ..85.43 ....4794 03970 94/4848 5.47707 :37.:/.3..743570.72E8 :.3408548-0.:0.7.486:0805:/0800.14070.477/403.070. 345:0/0.14 .7.  /085:F8 48 6:0 089E3 .3..14 831.

07 !.943 3 2. .89.3.97(  !.7.89. ..7.7.. .:3.89..3.3.07 !.07  .

.

 #%  ##$ .

.

97((2.97 (9032.7.97((2. 3/05. (2J324  (  (  (  82.97 ( 3/08 3/05.97 ( 2.         . 3/05.7.7.97 ( 2.

.

!747.97((2. .97(( < < < <    %   .97((2.78.97(( 2.97(( 2.9/89 147  3  147  3  147  3  1 2.97 ( (  39   14.78.4/. 393 392.97((  2.4/.2.

Sign up to vote on this title
UsefulNot useful