36
Capítulo 1 Grafos 1.1. Conjuntos y relaciones Consideraremos un conjunto como una colección cualquiera de objetos. Un con- junto queda definido por los objetos que a él pertenecen; dichos objetos son los ele- mentos o miembros del mismo. Si x es un miembro del conjunto A, escribimos x A y decimos que x pertenece a A; en caso contrario, escribimos x 6A y decimos, aná- logamente, que x no pertenece a A. Si cada elemento x de un conjunto A es también miembro de otro conjunto B , decimos que A es un subconjunto de B , o que A está incluído en B , y escribimos A B . Dos conjuntos A y B son iguales si y solamente si A B y B A; es decir, si constan exactamente de los mismos elementos. En ese caso, escribimos A = B . A veces se emplea también la notación A B para la relación de inclusión, y el símbolo se reserva para la inclusión propia, que ocurre cuando A B pero A 6= B . En general, la relación de inclusión propia aparece con menos frecuencia, y usaremos el símbolo más sencillo para la relación más frecuente, de modo que “” significará siempre para nosotros “está incluido en o es igual a”. En lo sucesivo nos ocuparemos predominantemente de conjuntos finitos, que pue- den denotarse convenientemente enumerando todos sus elementos. El número de ele- mentos de un conjunto finito A se denomina también a veces su cardinal, y se escri- be | A|. 1.1.1. Producto cartesiano El producto cartesiano de dos conjuntos A y B se define como el conjunto formado por todos los pares ordenados posibles cuyo primer elemento es un miembro de A y cuyo segundo elemento es un miembro de B . En notación conjuntista A × B ={(a, b) | a A, b B } Si los conjuntos involucrados son finitos, es evidente que | A × B |=| A|·| B |. Por ejemplo, si A es el conjunto de todos los hombres y B el de todas las mujeres, A× B es el conjunto de todas las parejas (heterosexuales) posibles que pueden formarse entre ellos. En particular, si no existiesen hombres, A × B sería vacío, y todo bastante aburrido. 1

Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

Capítulo 1

Grafos

1.1. Conjuntos y relaciones

Consideraremos un conjunto como una colección cualquiera de objetos. Un con-junto queda definido por los objetos que a él pertenecen; dichos objetos son los ele-mentos o miembros del mismo. Si x es un miembro del conjunto A, escribimos x ∈ Ay decimos que x pertenece a A; en caso contrario, escribimos x 6∈ A y decimos, aná-logamente, que x no pertenece a A.

Si cada elemento x de un conjunto A es también miembro de otro conjunto B,decimos que A es un subconjunto de B, o que A está incluído en B, y escribimosA ⊂ B. Dos conjuntos A y B son iguales si y solamente si A ⊂ B y B ⊂ A; es decir,si constan exactamente de los mismos elementos. En ese caso, escribimos A = B.

A veces se emplea también la notación A ⊆ B para la relación de inclusión, y elsímbolo⊂ se reserva para la inclusión propia, que ocurre cuando A ⊆ B pero A 6= B.En general, la relación de inclusión propia aparece con menos frecuencia, y usaremosel símbolo más sencillo para la relación más frecuente, de modo que “⊂” significarásiempre para nosotros “está incluido en o es igual a”.

En lo sucesivo nos ocuparemos predominantemente de conjuntos finitos, que pue-den denotarse convenientemente enumerando todos sus elementos. El número de ele-mentos de un conjunto finito A se denomina también a veces su cardinal, y se escri-be |A|.

1.1.1. Producto cartesiano

El producto cartesiano de dos conjuntos A y B se define como el conjunto formadopor todos los pares ordenados posibles cuyo primer elemento es un miembro de A ycuyo segundo elemento es un miembro de B. En notación conjuntista

A × B = {(a, b) | a ∈ A, b ∈ B}

Si los conjuntos involucrados son finitos, es evidente que |A× B| = |A| · |B|.Por ejemplo, si A es el conjunto de todos los hombres y B el de todas las mujeres,

A×B es el conjunto de todas las parejas (heterosexuales) posibles que pueden formarseentre ellos. En particular, si no existiesen hombres, A × B sería vacío, y todo bastanteaburrido.

1

Page 2: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

Siguiendo con el ejemplo, el producto cartesiano A × B contiene todas las parejasconcebibles, no necesariamente las que existen en la realidad. Consideremos solamenteaquellas parejas hombre-mujer que constituyan un matrimonio. El conjunto R de pareshombre-mujer (h, m) donde h es un hombre, m es una mujer y h está casado con mes un subconjunto de A × B. Además, la inclusión R ⊂ A × B es casi seguramentepropia, excepto en una sociedad polígama y extremadamente promiscua. En cualquiercaso, R contiene toda la información que necesitamos sobre el matrimonio en general:nos dice exactamente quién está casado con quién.

1.1.2. Relaciones

Definimos una relación entre dos conjuntos A y B como un subconjunto R delproducto cartesiano A × B; en símbolos, R ⊂ A × B. El hecho de que (a, b) ∈ R sesuele expresar diciendo que a está relacionado con b, y, de forma abreviada, se sueleescribir como a R b. La negación de a R b se escribe a 6R b

Una relación binaria en un conjunto A se define como un subconjunto R del pro-ducto A × A. El conjunto en el que se establece R suele denominarse dominio de larelación.

Algunos ejemplos de relaciones binarias son los siguientes:

La relación de igualdad= entre números reales.

La relación “ser hermano de” en el conjunto de los seres humanos.

La relación de orden ≤ entre números reales.

La relación “ser progenitor de” en el conjunto de los seres humanos. Esta relacióncontendría todas las parejas (p, h) de personas cuyo segundo elemento fuese hijodel primero.

La relación “ser hijo de” en el conjunto de los seres humanos. Esta relación con-tendría todas las parejas (h, p) de personas cuyo segundo elemento fuese padredel primero. Es evidente que esta relación se obtiene de la anterior invirtiendo elorden de todos los pares: se dice que son inversas.

La relación “ser divisor de” entre números naturales, que suele denotarse por elsímbolo |. Por ejemplo, 6 | 24, pero 6 6 | 31. La relación inversa de ésta tambiéntiene un nombre común: “ser múltiplo de”.

1.1.3. Propiedades de las relaciones

Hay cuatro propiedades de una relación que nos van a interesar especialmente: quesea reflexiva, simétrica, transitiva o antisimétrica. Discutiremos primero el significadode las definiciones y daremos al final un resumen formal de las mismas.

Decimos que una relación R es reflexiva si a R a para todo miembro a del dominiode R. Por ejemplo, la igualdad= y el orden≤ son relaciones reflexivas. También lo esla relación “vivir en el mismo domicilio”.

Una relación R es simétrica si para todo par de elementos a, b del dominio de Rse verifica que, si a R b, entonces b R a. Por ejemplo, “ser hermano de” es unarelación simétrica (es muy difícil ser hermano de alguien sin que éste sea hermano deuno), lo mismo que “estar casado con”. También la igualdad = entre números realeses una relación simétrica; sin embargo, el orden ≤ no lo es. De modo más interesante,

2

Page 3: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

“x ama a y” (comoquiera que se defina) no es una relación simétrica: un amor no tienepor qué ser correspondido (aunque puede serlo). Basta con que haya un solo amor nocorrespondido para que esta relación deje de ser simétrica.

Tampoco es simétrica la paternidad entre seres humanos: x es padre de y no implicaque y sea padre de x (de hecho, en general, lo impide). Notemos la diferencia entre lapaternidad y el amor: mientras que “x ama a y” no implica el recíproco, no lo impide (ypuede amar a x). En cambio, la paternidad difícilmente puede ser recíproca en ningúncaso: si x es padre de y, no es posible que y sea padre de x . Decimos que una relación Res antisimétrica si, para cualquier par de miembros a, b del dominio, a R b y b R a sedan simultáneamente sólo cuando a = b.

Por último, otra propiedad muy importante es la transitividad. Decimos que Res transitiva si para cualquier terna a, b, c de miembros del dominio, las relacionesa R b y b R c obligan necesariamente a que a R c. Por ejemplo, si R es la relaciónde amistad entre seres humanos, es bastante evidente que no es transitiva: a puede seramigo de b y b puede serlo de c, mientras que a puede considerar a c muy poco reco-mendable. Si R fuese transitiva, sería cierto el refrán “los amigos de mis amigos sonmis amigos”.

Sí es transitiva, en cambio, la relación “ser antepasado de”: los antepasados de misantepasados son mis antepasados. En cambio, la paternidad no lo es: si x es el padre dey e y es el padre de z, esto no obliga en absoluto a que x sea el padre de z.

Resumiendo, si R es una relación binaria en el conjunto A, decimos que R es

reflexiva si a R a, para todo a ∈ A

simétrica si a R b→ b R a, para todos a, b ∈ A

transitiva si a R b y b R c→ a R c, para todos a, b, c ∈ A

antisimétrica si a R b y b R a→ a = b, para todos a, b ∈ A

Una relación R se dice que es una relación de equivalencia si es reflexiva, simétricay transitiva. El ejemplo por excelencia es la igualdad, pero existen otros ejemplos sig-nificativos. Por ejemplo, la relación “ser hermano de” es una relación de equivalencia,si admitimos el hecho de que uno es hermano de sí mismo.

Dado un elemento a ∈ A del dominio de una relación de equivalencia R, se definesu clase de equivalencia como el conjunto [a] = {x ∈ A | a R x}, es decir, elconjunto de los elementos relacionados con a en virtud de R. En el ejemplo anterior,R = “ser hermano de”, la clase de equivalencia de un individuo es el conjunto de todossus hermanos (incluyéndolo a él mismo). Obsérvese que las clases de equivalencia deesta relación son las progenies de cada familia, y toda la humanidad está dividida enclases disjuntas de hermanos. Este hecho no es casual.

La propiedad más importante de las relaciones de equivalencia la proporciona elsiguiente

Teorema 1 Sea R una relación de equivalencia en un conjunto A. Las clases de equi-valencia de R forman una partición de A, es decir, A es la unión de dichas clases deequivalencia, y dos clases de equivalencia son o iguales o disjuntas.

DEMOSTRACIÓN Obviamente, cada elemento a ∈ A es miembro de una clase de equi-valencia: la suya propia. Ello es así porque la relación es reflexiva, de modo que a R ay, por tanto, a ∈ [a]. Se deduce que A ⊂ ∪a∈A[a], es decir, A es unión de clases deequivalencia.

3

Page 4: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

Por otro lado, sean [x] e [y] dos clases de equivalencia. Si no son disjuntas, existeun elemento común a ∈ [x] ∩ [y]. Se deduce que

a R x y que a R y (pertenencia a [x] e [y])

x R a y a R y (simetría)

x R y (transitividad)

Por tanto, si z ∈ [x]

x R z y x R y (definición de [x])

z R x y x R y (simetría)

z R y, o sea, y R z (transitividad y simetría)

z ∈ [y] (definición de [y])

y se concluye que [x] ⊂ [y]. Se prueba del mismo modo que [y] ⊂ [x], y por tanto,que [x] = [y].

Otro tipo de relación de especial interés es la relación de orden (parcial). Se llamaasí a una relación que es reflexiva, antisimétrica y transitiva. Como ejemplos típicosde relaciones de orden tenemos la relación ≤ entre números reales, o la relación dedivisibilidad entre números naturales (“ser divisor de”, denotada por |). Esta última esrelación de orden, puesto que

para todo entero a, se verifica que a|a (reflexividad)

para todo par de enteros a, b, se verifica que si a|b y b|a, entonces existen nú-meros k y l con a = kb = kla y kl = 1, de forma que a = b (antisimetría)

para todo trío de enteros a, b, c, si se dan las relaciones a|b y b|c, existen ciertosnaturales k y l que cumplen c = kb = kla, de modo que a|c (transitividad)

La divisibilidad es un buen ejemplo de una relación de orden parcial. En un ordenparcial R no es preciso que una de las dos relaciones a R b o bien b R a se dé. Porejemplo, ni 7|69 ni 69|7. Se dice que los elementos en cuestión no son comparables.Una relación de orden en la que para todo par de elementos a, b del dominio se verificaque a R b o bien b R a (o ambas) se dice que es de orden total. La relación de ordenhabitual entre números,≤, es un ejemplo de orden total.

Una representación muy conveniente de las relaciones de orden en conjuntos finitoses su diagrama de Hasse, que definiremos en la sección 1.4.

1.1.4. Clausura transitiva

Vimos en la sección 1.1.3 que la relación “ser ancestro de” es transitiva, pero la pa-ternidad no lo es: el padre de mi padre no es mi padre (suele denominarse abuelo mío).Sin embargo, existe una vinculación interesante entre la paternidad y la ancestralidad:los antepasados se obtienen, por lo general, remontándose hacia atrás una o más vecesen la relación de paternidad (un ancestro mío es, o bien mi padre, o bien el padre de mipadre, o el padre de mi padre de mi padre, etc.)

Del mismo modo, la relación “ser sucesor de” definida sobre el conjunto de losenteros no es transitiva: 5 es el sucesor de 4, y 6 es el sucesor de 5, pero 6 no es sucesorde 4. Como mucho, es mayor que cuatro, y esta relación de orden sí que es transitiva.

4

Page 5: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

La relación transitiva que se obtiene por repetición a partir de otra aparece confrencuencia, lo que motiva la siguiente definición.

Sea R una relación en un conjunto A. Definimos la clausura transitiva de R (aveces denotada por R∗) como la menor relación transitiva que contiene a R. Más ex-plícitamente,

a) R ⊂ R∗ ⊂ A × A (es decir, R∗ es una relación binaria en A).

b) R∗ es transitiva.

c) Si R ⊂ S ⊂ R∗ ⊂ A × A y además S es transitiva, entonces S = R∗.

Esta definición es muy poco intuitiva, y generalmente utilizaremos esta otra: dire-mos que a R∗b si existe una sucesión {ai} de elementos de A que verifica

a R a1 R a2 R a3 R · · · R an R b

es decir, si a está relacionado con un elemento, que está relacionado con otro, que. . . yasí sucesivamente hasta llegar a b. Por ejemplo, la clausura transitiva de la relación depaternidad es “ser antepasado de”.

1.2. Grafos

1.2.1. Grafo dirigido y no dirigido

Un grafo (específicamente, grafo simple no dirigido) es un par G = (V, E) =

(V (G), V (E)), donde V es un conjunto finito no vacío de elementos llamados vérticesy E es un conjunto de pares desordenados de elementos distintos de V llamados aristas.Es decir, una arista e ∈ E tiene la forma {u, v}, donde u, v ∈ V y u 6= v.

La terminología en teoría de grafos varía muchísimo: prácticamente no hay dostextos que adopten la misma. En paticular, los vértices de un grafo también reciben aveces el nombre de nodos, y las aristas arcos, ejes o líneas.

Obsérvese que, en un grafo no dirigido conforme con esta definición, los buclesestán excluídos. Por convenio, en grafos no dirigidos designaremos las aristas con lanotación (u, v) que usamos para los pares ordenados de vértices; se sobreentiende queen las aristas de grafos no dirigidos no importa el orden, es decir, (u, v) = (v, u).

Un grafo se representa por medio de puntos o círculos, que designan los vértices, ylíneas que los unen, que representan las aristas. Por ejemplo, en la figura 1.1(b) tenemosun ejemplo de grafo no dirigido con conjunto de vértices V = {1, 2, 3, 4, 5, 6} y aristasE = {(1, 2), (2, 5), (1, 5), (3, 6)}.

Un grafo dirigido o digrafo G es un par (V, E), donde V es un conjunto finito novacío y E es una relación binaria en V , es decir, un conjunto de pares ordenados deelementos de V . Los elementos de V reciben el nombre de vértices. El conjunto E esel conjunto de aristas de G.

Por ejemplo, en la figura 1.1(a) tenemos un grafo dirigido que, de acuerdo conla definición, tiene seis vértices (V = {1, 2, 3, 4, 5, 6}) y ocho aristas (E = {(1, 2),

(2, 2), (2, 4), (2, 5), (4, 1), (4, 5), (5, 4), (3, 6)}). Las flechas apuntan del primer ele-mento de cada par al segundo.

Obsérvese que es posible que una arista puede partir de un vértice y llegar a él denuevo. Una arista de esta clase, es decir, de la forma e = (v, v), recibe el nombre debucle o lazo.

5

Page 6: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

1 2 3

4 5 6

789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(a)

PSfrag replacements

1 2 3

4 5 6

789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(b)

Figura 1.1: Ejemplos de (a) grafo dirigido, y (b) no dirigido

Tipo de grafo Dirigido Simple LazosGrafo No Sí NoMultigrafo No No NoPseudografo No No SíGrafo dirigido (digrafo) Sí Sí SíMultigrafo dirigido Sí No Sí

Cuadro 1.1: Cadro resumen de los diferentes tipos de grafos

Cuando el sentido de las flechas no nos interesa (o, dicho de forma más técnica, larelación que el grafo representa es simétrica), es más conveniente el concepto de grafono dirigido.

Existen numerosas variantes de las definiciones que acabamos de dar. Por ejem-plo, un multigrafo es un grafo no dirigido en el que permitimos la existencia de variasaristas conectando los mismo vértices y la aparición de bucles. Específicamente, unmultigrafo queda definido por medio de una tríada G = (V, E, f ), donde V y Eson conjuntos y f : E → V × V asigna a cada arista e ∈ E un par desordena-do f (e) = {u, v} de vértices diferentes de V (los vértices extremos de la arista e).Un multigrafo dirigido se define de forma exactamente igual, excepto que el recorri-do de f está formado por pares ordenados de vértices. Por último, si permitimos laexistencia de bucles o lazos en un grafo no dirigido, tenemos un pseudografo: se tratade una terna G = (V, E, f ), donde f : E → V × V asigna a cada arista un par noordenado de vértices (posiblemente iguales).

Dado que esta terminología no es estándar, siempre es conveniente en cada casoespecificar claramente si el grafo objeto de nuestra consideración es dirigido o no; si seadmiten múltiples aristas entre un par cualquiera de vértices (es decir, si el grafo es ono simple); y si se admiten bucles o lazos. En el cuadro resumen 1.1 se esquematizanlos valores de estos parámetros para las definiciones recién dadas.

1.2.2. Incidencia y grado

Si (u, v) es una arista de un grafo dirigido, decimos que incide desde o sale de elvértice u, que será su vértice inicial, y que incide hacia o entra en el vértice v, que serásu vértice final. Si estamos en un grafo no dirigido, decimos que (u, v) simplementeincide en los vértices u y v, que serán sus vértices extremos.

Por ejemplo, en la figura 1.1(a), hay tres aristas que salen del vértice 2: son (2, 2),

6

Page 7: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

(2, 4) y (2, 5). En el grafo no dirigido de la figura 1.1(b), la arista (3, 6) incide en losvértices 3 y 6.

Si (u, v) es una arista de un grafo, decimos que el vértice v es adyacente al vérti-ce u. En un grafo no dirigido, la relación de adyacencia es simétrica; no es así necesa-riamente en un digrafo. Por ejemplo, en la figura 1.1(a), el vértice 5 es adyacente al 2(pero el 2 no es adyacente al 5). En cambio, en el grafo de la figura 1.1(b), los vértices1 y 2 son adyacentes entre sí.

El grado de un vértice en un grafo no dirigido es número de aristas incidentes conél. Por ejemplo, el vértice 5 de la figura 1.1(b) tiene grado 2. En un digrafo, el gradode salida de un vértice es el número de aristas que salen de él, y el grado de entradaes el número de aristas que entran en él. El grado es la suma de los grados de saliday entrada. En el grafo dirigido de la figura 1.1(a), el vértice 2 tiene grado de salida 3,grado de entrada 2 y grado 5.

1.2.3. Representación como estructuras de datos

Nuestro interés en los grafos radica en su aplicación a la informática, y exige quepodamos representarlos en nuestros programas como estructuras de datos que podamosmanejar, crear, modificar y consultar. Existen tres representaciones usuales de los gra-fos que permiten su manipulación como objetos en nuestros programas: las represen-taciones por medio de matrices de adyacencia, de listas de adyacencia y de matricesde incidencia.

En la representación por matrices de adyacencia, un grafo G = (V, E) cuyo con-junto de vértices sea V = {a1, a2, . . . , an} se representa por una matriz booleana M ,cuadrada, de dimensión igual al número de vértices n, y cuyos elementos se definenpor

Mi j =

{

1 si (ai , a j ) es una arista de G

0 en caso contrario

Es decir, la matriz M representa la relación de adyacencia. Habrá un uno en la fila i ,columna j , si hay una arista que va del vértice ai al vértice a j .

Obsérvese que la matriz no será simétrica, en general, si el grafo es dirigido. Encambio, la matriz de adyacencia de un grafo no dirigido siempre será simétrica. Lasaristas múltiples no quedan bien representadas en la matriz de adyacencia, pero sí losbucles o lazos, que provocan la presencia de unos en la diagonal principal.

Para el grafo de la figura 1.1(a), la matriz de adyacencia se representa en la figu-ra 1.2(a).

La representación por matrices de adyacencia tiene un inconveniente serio paragrafos grandes: el tamaño de la matriz es proporcional al cuadrado del número devértices. Si el número de aristas |E E| es comparativamente pequeño en relación a |V |2,se desperdicia una cantidad enorme de espacio. La mayoría de los grafos se encuentraen este caso: son grafos dispersos, donde |E| � |V |2.

La representación por listas de adyacencia es mucho más conveniente en esta ma-yoría de casos. Un grafo G = (V, E) se representará por un vector de listas. El vectortiene |V | posiciones, una por cada vértice; en la posición i -ésima se almacena la listade los vértices adyacentes a ai . En la figura 1.2(b) representamos el grafo de la figu-ra 1.1(a) por medio de listas de adyacencia.

Podemos ver que el tamaño de esta representación es proporcional al número |E|de aristas del grafo. Esto lo hace mucho más conveniente en casi todos los casos. Sola-

7

Page 8: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

M =

0 1 0 0 0 00 1 0 1 1 00 0 0 0 0 01 0 0 0 1 00 0 0 1 0 00 0 1 0 0 0

(a)

Vértice Adj(V )

1 {2}2 {2, 4, 5}3 {}

4 {1, 5}5 {4}6 {3}

(b)

Figura 1.2: Representación del grafo de la figura 1.1(a) por medio de a) matriz deadyacencia b) listas de adyacencia

mente en el caso de grafos densos (en los que |E| y |V |2 son comparables) es razonableconsiderar la matriz de adyacencia como representación alternativa.

La matriz de incidencia de un grafo G = (V, E), donde |V | = n y |E| = m sedefine como una matriz booleana n × m en la que

(Minc)i j =

{

1 si la arista j incide en el vértice i

0 en caso contrario

Esta representación es solamente válida para grafos no dirigidos, puesto que el sen-tido de las aristas no puede ser representado de esta forma. Puede resultar útil pararepresentar multigrafos, pero su interés fundamental es más bien teórico.

1.2.4. Caminos y ciclos

Un camino de longitud k entre el vértice u y el vértice u ′ del grafo G = (V, E) esuna sucesión de aristas {e1, e2, . . . , ek} tales que ei = (vi−1, vi ) para i = 2, 3, . . . , k,con lo que cada arista tiene por vértice inicial el vértice final de la anterior. Para hacerexplícito este hecho, a veces un camino se denota también con los vértices intercala-dos: C = {v0, e1, v1, . . . , en, vn}. Si no hay ambigüedad, un camino puede denotarseexclusivamente por la sucesión de vértices que visita: C = {v0, v1, . . . , vk}. Esto puedehacerse, por ejemplo, cuando los grafos con los que trabajamos son simples.

La longitud del camino, según la definición dada arriba, es el número de aristas quelo constituyen. El vértice inicial de C = {v0, e1, . . . , ek, vk} es v0, y el vértice final esvk .

Un camino es simple si todas sus aristas son distintas. En ocasiones se llama simplea un camino que no visita dos veces el mismo vértice. La segunda definición es másrestrictiva que la primera, puesto que un camino puede pasar dos veces por un mismovértice sin visitar ninguna arista más de una vez.

Un camino (v0, e1, v1, . . . , ek, vk) forma un ciclo si v0 = vk y el camino contieneal menos una arista. El ciclo es simple si, además, las aristas que lo forman son todasdistintas. Por ejemplo, un lazo es un ciclo de longitud unidad.

8

Page 9: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

1.3. Accesibilidad y conexión

Decimos que un vértice u′ de un grafo es accesible (o alcanzable) desde otro vér-tice u si existe un camino de u a u ′.

Es fácil ver que la relación de accesibilidad es transitiva: si w es accesible desde v

y v es accesible desde u, es evidente que w es accesible desde u. Además, todo nodoes accesible desde sí mismo (por medio de un camino de longitud cero). En un grafono dirigido, la relación también es simétrica; en un digrafo ya no tiene por qué ser así(en la figura 1.1(a), el vértice 3 es accesible desde 6, pero no al contrario).

Un grafo no dirigido es conexo si cada par de vértices está conectado por un camino(es decir, todos los vértices son mutuamente accesibles). Las componentes conexas deun grafo son las clases de equivalencia de los vértices bajo la relación de accesibilidad.El grafo de la figura 1.1(b) no es conexo, ya que, por ejemplo, 6 es inaccesible desde 1.Hay tres componentes conexas en el grafo: {1, 2, 5}, {3, 6} y {4}.

En una componente conexa, todos los vértices son mutuamente accesibles; es evi-dente, por tanto, que un grafo es conexo si y solamente si tiene una única componenteconexa. Intuitivamente, las componentes son los diferentes “trozos” conexos en que elgrafo se descompone.

Un grafo dirigido es fuertemente conexo si cualquier vértice es accesible desdecualquier otro. Las componentes fuertemente conexas de un digrafo son las clases deequivalencia de los vértices bajo la relación “ser mutuamente accesibles”.

Es algo menos intuitivo visualmente el extraer las componentes fuertemente cone-xas de un digrafo. Por ejemplo, en el grafo de la figura 1.1(a), tenemos tres componen-tes: {1, 2, 4, 5}, {3} y {6}. Los cuatro vértices que residen en la primera componenteson mutuamente accesibles entre sí (basta usar el ciclo (1, 2, 5, 4) para desplazarse deun vértice a otro); pero 3 y 6 no son mutuamente accesibles (solamente 3 es accesibledesde 6, pero no a la inversa), y por consiguiente residen en componentes distintas.

1.4. Relaciones y grafos

Existe una conexión muy íntima entre las relaciones binarias en un conjunto y losgrafos. De hecho, hemos definido un grafo dirigido como una relación, y el uso quehacemos de los grafos en informática es para representar relaciones.

Sea A un conjunto finito y R una relación binaria de dominio A. Al ser A finito,podremos enumerar sus elementos:

A = {a1, a2, a3, . . . , an}

Definimos el grafo asociado a R (o grafo que representa R) como un grafo cuyosvértices son los elementos de A, siendo (ai , a j ) una arista del grafo si y solamentesi ai R a j . De hecho, según la definición de digrafo que dimos en la sección 1.1(b), lapropia relación es un grafo.

Como ejemplo, consideremos la relación binaria R definida entre números enteroscomo sigue

a R b si y solamente si b = pa con p primo

y estudiemos su restricción al conjunto A = {1, 2, 3, 4, 6, 9, 12, 18, 36} formado porlos divisores de 36. El grafo asociado a la relación será el que se muestra en la figu-ra 1.3(a). En cambio, el grafo de la relación ≤ entre los números {3, 4, 6, 9} puedeverse en la figura 1.3(b).

9

Page 10: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

1

2 3

4 6 9

12 18

36

C1C2C3

C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(a)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

12

3 4 6 9

121836C1C2C3

C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(b)

Figura 1.3: (a) Retículo de divisores de 36 y (b) Relación de orden entre 3, 4, 6, 9

Algunas propiedades de estas relaciones son directamente observables a partir delgrafo. Por ejemplo, en ninguna de las figuras encontramos flechas dirigidas en sentidoscontrarios entre ningún par de nodos. Esto se debe a que las relaciones representadasson antisimétricas. La relación de orden de la figura 1.3(b) es, además, obviamentereflexiva: la presencia de un bucle o lazo en todos y cada uno de los nodos lo prueba.

Observemos que 2 R 6 y que 6 R 12, pero que, sin embargo, 2 6R 12. Esto se debea que la relación R no es transitiva. En cambio,≤ sí es una relación transitiva; veremosenseguida en qué se traduce esto en términos de grafos.

Un ejemplo de grafo que se vincula a una relación de manera algo diferente esel diagrama de Hasse de una relación de orden. El diagrama de Hasse se obtienerepresentando la relación por un grafo, y suprimiendo

todos los lazos

todas las aristas que se puedan deducir por transitividad de otras dos

En la figura 1.3(a) tenemos un ejemplo de un tal diagrama para la relación de divisibi-lidad en el conjunto de los divisores de 36.

La matriz de adyacencia del grafo asociado a una relación R se denomina simple-mente matriz de la relación; es una matriz cuadrada binaria MR , de dimensión igual alcardinal del dominio de R. El elemento (MR)i j de la matriz vale uno o cero según quelos elementos ai y a j estén relacionados o no. En símbolos,

(MR)i j =

{

1 si ai R a j

0 en caso contrario

Veamos cómo se plasman en términos de grafos y de matrices de relaciones lascuatro propiedades estudiadas en 1.1.3.

reflexividad R es reflexiva sii a R a para todo a ∈ A. Por lo tanto, si cada vértice delgrafo posee un lazo, R es reflexiva; si algún vértice carece de lazo, la relación noes reflexiva. En términos de matrices, cada elemento de la diagonal principalde MR debe ser un uno.

10

Page 11: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112

K4

K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.4: Grafos completos de cuatro, cinco y seis vértices

simetría R es simétrica sii a R b ⇒ b R a, para todo par de a, b ∈ A. Por lo tanto,si hay una flecha de un vértice v a otro w, la flecha contraria también debe estarpresente; y si no la hay en un sentido, la contraria tampoco puede existir. Entérminos matriciales, (MR)i j = (MR) j i para todo par de índices i, j ; o, másbrevemente, MR es simétrica: M t

R = MR

transitividad R es transitiva si y solamente si a R b junto con b R c implica necesa-riamente que a R c. En términos de grafos, la existencia de una arista entre losvértices a, b y otra entre b, c implica la existencia de la arista (a, c). El par dearistas (a, b), (b, c) forma un camino de longitud dos entre los vértices a y c, demodo que la condición de transitividad puede formularse así: la accesibilidad deorden dos implica adyacencia. En términos matriciales, (MR)2

i j = 1 implicará

siempre que (MR)i j = 1 o, abreviando, M2R ⊂ MR : elevar al cuadrado la matriz

de la relación no introduce unos que no existieran ya en MR .

1.5. Algunos grafos especiales

1.5.1. Grafos completos

Un grafo completo es un grafo no dirigido en que todos los vértices son adyacentesentre sí. Para cada número de vértices n, existe esencialmente un solo grafo completo(todos son isomorfos entre sí), que se designa por Kn . Por ejemplo, en la figura 1.4tenemos algunos grafos completos.

Teorema 2 El grafo completo de n vértices Kn tiene(n

2

)

= n(n − 1)/2 aristas.

Hay varias formas de demostrar esto:

1. El número de aristas de Kn es el número de pares desordenados en un conjuntode n objetos, es decir, el de combinaciones de n elementos tomados de dos endos.

2. Cada vértice del grafo está unido a los n − 1 restantes. Si contamos las aristasincidentes en cada uno de los n vértices, obtenemos n(n − 1), pero, al obrarasí, estamos contando cada arista dos veces (puesto que tiene dos extremos). Portanto, el número total de aristas es exactamente la mitad, n(n − 1)/2.

11

Page 12: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

Propiedad Definición Grafo Matriz

Reflexiva ∀a a R a

PSfrag replacements123456789

101112K4K5K6

ABCDuwvxyzp

p′v1v2v3v4v5v6vd

...vm

vm+1vn123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+∗5+6

12χ(K5) = 5

χ(K3,3) = 2χ(C7) = 3

χ(esto) = 4χ(esto otro) = 4 (MR)ii = 1 ∀i

Simétrica ∀a, b a R b⇒ b R a

PSfrag replacements123456789

101112K4K5K6

ABCDuwvxyzp

p′v1v2v3v4v5v6vd

...vm

vm+1vn123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+∗5+6

12χ(K5) = 5

χ(K3,3) = 2χ(C7) = 3

χ(esto) = 4χ(esto otro) = 4 M t

R = MR

Antisimétrica ∀a, b a R b y b R a ⇒ a = b

PSfrag replacements123456789

101112K4K5K6

ABCDuwvxyzp

p′v1v2v3v4v5v6vd

...vm

vm+1vn123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+∗5+6

12χ(K5) = 5

χ(K3,3) = 2χ(C7) = 3

χ(esto) = 4χ(esto otro) = 4 (MR)i j 6= (MR) j i ∀i 6= j

Transitiva ∀a, b, c a R b y b R c⇒ a R c

PSfrag replacements123456789

101112K4K5K6

ABCDuwvxyzp

p′v1v2v3v4v5v6vd

...vm

vm+1vn123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

ZapateroZorrilla

ABCDEFGHIJ3+∗5+6

12χ(K5) = 5

χ(K3,3) = 2χ(C7) = 3

χ(esto) = 4χ(esto otro) = 4 M2

R ⊂ MR

Cuadro 1.2: Cuadro resumen de las propiedades de las relaciones

12

Page 13: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

1 2

3 4

56

789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.5: Torneo de seis vértices

3. Numeremos los vértices de 1 a n. En el vértice 1 inciden n − 1 aristas:

(1, 2), (1, 3), (1, 4), . . . (1, n)

En el vértice 2 inciden también n − 1 aristas, pero una ya ha sido contada ante-riormente, de modo que sólo aparecen aquí n − 2 nuevas:

(2, 3), (2, 4), . . . (2, n)

Si proseguimos así el recuento, llegamos a que el número total de aristas es lasuma de una progresión aritmética:

|E| = (n − 1)+ (n − 2)+ · · · + 2+ 1 = (n − 1)(n − 1)+ 1

2

De este teorema deducimos que un grafo simple no dirigido de n vértices tendrá, alo sumo,

(n2

)

aristas.

1.5.2. Torneos

Un torneo (tournament) es un grafo dirigido cuya versión no dirigida es un grafocompleto. Podemos decir que un torneo puede obtenerse a partir de un grafo completoasignando orientaciones a cada una de las aristas. En la figura 1.5 podemos ver unejemplo de torneo con seis vértices.

En el torneo de la figura podemos ver que el camino simple (1, 2, 4, 6, 3, 5) pasapor todos los vértices. Un camino así se denomina camino hamiltoniano. En el teore-ma 8 veremos que siempre es posible encontrar uno en cualquier torneo.

1.5.3. Grafos bipartitos

Un grafo bipartito es un grafo no dirigido G = (V, E) cuyo conjunto de vérticesV es unión de dos conjuntos disjuntos V1 y V2 de forma que (u, v) ∈ E implica que,o bien u ∈ V1 y v ∈ V2, o bien u ∈ V2 y v ∈ V1. Es decir, todas las aristas tienen unextremo en cada uno de los conjuntos V1 y V2.

Recordemos que V1 y V2 forman una partición de V si son disjuntos y su uniónes V .

13

Page 14: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4

C5

C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.6: Camino P6 y ciclos C7 y C5

Teorema 3 Un grafo es bipartito si y solamente si carece de ciclos de longitud impar

DEMOSTRACIÓN Sea G bipartito y C = (v0, v1, . . . , vn) un ciclo de G. Como cadaarista (vi−1, vi ) une un elemento de V1 con uno de V2, se deduce que vértices conse-cutivos de C pertenecen a lados distintos de la partición, de forma que los vértices desubíndice par están todos en un lado y los de subíndice impar en el contrario. Comov0 = vn , se deduce que n tiene la misma paridad que 0, es decir, es par.

Recíprocamente, supongamos que el grafo G carece de ciclos de longitud impar.En primer lugar, es obvio que bastará probar que cada componente de G es bipartita,así que podemos suponer G conexo. Sea v0 ∈ V (G) un vértice cualquiera, y definamosV1 = {v ∈ V (G) | existe un camino de longitud impar entre v0 y v}, y V2 = V − V1.Por definición, los caminos entre v0 y cualquier vértice de V2 serán todos de longitudpar. Además, V1 y V2 forman una partición de V . Ahora, si dos vértices v, w de V1son adyacentes, los caminos de longitud impar que los unen con v0, más las arista(v, w), constituyen un ciclo impar, contra la hipótesis. Por lo tanto, no hay ningún parde vértices adyacentes en V1. Para V2, el mismo razonamiento es válido, de forma quecualquier arista une algún vértice de V1 con alguno de V2.

1.5.4. Caminos y ciclos

El camino de longitud n es el grafo Pn = (V, E), donde V = {v0, v1, . . . , vn}

y E = {(v0, v1), (v1, v2), . . . , (vn−1, vn)}. El ciclo de longitud n es el grafo Cn =

(V, E), donde V = {v1, . . . , vn} y E = {(vn, v1), (v1, v2), . . . , (vn−1, vn)}. En lafigura 1.5.4 podemos ver ejemplos de estos complicadísimos conceptos.

1.5.5. Grafos cúbicos Qn

Los grafos Qn son la representación de la red de vértices y aristas de un cubo n-dimensional. El cubo de dimensión cero Q0 consta, por definición, de un solo vértice.A partir de ahí, se obtiene Qn uniendo por medio de aristas los vértices correlativos dedos copias de Qn−1. En la figura 1.7 podemos ver los primeros grafos cúbicos, hasta elde dimensión 4.

1.6. Arboles

Un árbol es un grafo no dirigido, conexo y acíclico. Un grafo no dirigido que esacíclico, pero posiblemente no conexo, se denomina bosque.

14

Page 15: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0

Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(a)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0

Q1

Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(b)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1

Q2

Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(c)

� �� �

� �� �

� �� �

� �� � � �

� �

� �

� �� �

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

Cm

Q0Q1Q2

Q3

Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(d)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

Cm

Q0Q1Q2Q3

Q4

Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(e)

Figura 1.7: Grafos Qn , para n = 0, . . . , 4

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(a)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(b)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(c)

Figura 1.8: (a) Un árbol. (b) Un bosque. (c) Un grafo que no es ni un árbol ni un bosque

15

Page 16: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

La figura 1.8(a) muestra un árbol, y en 1.8(b) vemos un bosque que no es un árbol,al no ser conexo. El grafo de 1.8(c) no es un árbol ni un bosque, pues contiene un ciclo.

Antes de demostrar un importante teorema sobre árboles precisamos los dos lemassiguientes, cuyas demostraciones son prácticamente idénticas.

Lema 1 Sea G un grafo no dirigido con n vértices y e aristas. Si G es conexo, severifica que e ≥ n − 1.

DEMOSTRACIÓN Por inducción sobre el número de vértices. El teorema es trivialmentecierto para n = 1. Supongamos entonces que la desigualdad se verifica en todos losgrafos conexos con menos de n vértices.

Consideremos un vértice cualquiera v ∈ V (G) de grado d como el que mostra-mos en la figura 1.9, siendo sus vértices adyacentes v1, v2, . . . , vd . El grafo G − v

obtenido al suprimir v y sus aristas adyacentes posee n − 1 vértices, e − d aristas yes posiblemente inconexo; al suprimir v, G puede divirse a lo sumo en d componen-tes conexas (¿por qué?). Sean entonces esas componentes los subgrafos Ci de G, coni = 1, 2, . . . , m ≤ d.

Cada componente Ci es un grafo conexo con menos de n vértices. Por tanto, porhipótesis de inducción, sus números de vértices ni y aristas ei satisfacen la desigualdad

ei ≥ ni − 1 i = 1, 2, . . . m

Sumando estas desigualdades sobre todas las componentes

m∑

i=1

ei ≥

m∑

i=1

(ni − 1) =

(

m∑

i=1

ni

)

− m

Ahora, el primer sumatorio es el número de aristas de G−v, es decir, e−d, y el últimoes el de vértices, n − 1. Como el número de componentes m no supera el grado d

e − d ≥ n − 1− m es decir e ≥ n − 1+ d − m ≥ n − 1

como se quería demostrar.El lema dual del recién probado cambia la conexión por la aciclicidad, con lo que

el sentido de la desigualdad se invierte.

Lema 2 Sea G un grafo no dirigido con n vértices y e aristas. Si G es acíclico, e ≤n − 1.

DEMOSTRACIÓN Por inducción sobre el número de vértices. El teorema es trivialmentecierto para n = 1. Supongamos entonces que la desigualdad se verifica en todos losgrafos acíclicos con menos de n vértices.

Consideremos un vértice cualquiera v ∈ V (G) de grado d como el que mostramosen la figura 1.9, siendo sus vértices adyacentes v1, v2, . . . , vd . Al suprimir el vértice v

y obtener G − v, resulta ahora un grafo acíclico que, a diferencia del lema anterior,posee al menos d componentes conexas (¿por qué?). Es decir, m ≥ d.

Ahora cada componente es un subgrafo acíclico y, por hipótesis de inducción

ei ≤ ni − 1 i = 1, 2, . . . m

Sumandom∑

i=1

ei ≤

m∑

i=1

(ni − 1) =

(

m∑

i=1

ni

)

− m

16

Page 17: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1

v2

v3

v4

v5

v6

vd

...

vmvm+1

vn

123469

121836

C1

C2

C3

C4

C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.9: Demostración de los lemas 1 y 2

En el presente caso, rige la desigualdad m ≥ d y se tiene entonces

e − d ≤ n − 1− m es decir e ≥ n − 1+ d − m ≤ n − 1

como se quería demostrar.Existen numerosas formulaciones equivalentes de la definición de árbol; el teorema

siguiente resume las fundamentales.

Teorema 4 Sea G = (V, E) un grafo no dirigido. Las siguientes afirmaciones sonequivalentes.

1. G es un árbol

2. Dos vértices cualesquiera de G están conectados por un único camino simple

3. G es conexo, pero si se le suprime una arista cualquiera, deja de serlo.

4. G es conexo y |E| = |V | − 1

5. G es acíclico y |E| = |V | − 1

6. G es acíclico, pero si se le añade una arista, deja de serlo

DEMOSTRACIÓN 1⇒ 2) Sean u, v ∈ V . Como G es conexo, existe un camino simpleentre ellos. Si existen dos caminos simples distintos entre ambos vértices, se dará lasituación de la figura 4: los caminos p y p′ divergen por primera vez en el vértice w

y vuelven a converger en el vértice z, pasando por vértices diferentes x e y. Comoresultado, es posible construir un ciclo, contra la hipótesis. Por tanto, no pueden existirdos caminos simples distintos entre u y v.

2⇒ 3) Evidentemente, G es conexo. Si se suprime la arista (u, v) de G, los vérticesu y v quedan desconectados, pues, por hipótesis, dicha arista era el único camino simpleque los conectaba.

3 ⇒ 4) Una vez más, la conexión de G es parte de la hipótesis. Por otro lado, Ges acíclico, puesto que si tuviese un ciclo, podría suprimírsele una arista sin perder laconexión. Por tanto, de los lemas precedentes de deduce que |E| = |V | − 1.

17

Page 18: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCD

u w

vx

y

z

p

p′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.10: Demostración de la implicación 1⇒ 2 en el teorema 4

PSfrag replacements

1 2

3 4 5

6

7

8 9

10 11 12

K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.11: Arbol de doce nodos enraizado en el nodo 7

4 ⇒ 5) Si suprimimos una arista de G, deja de verificarse la desigualdad |E| ≥|V | − 1; por tanto, de la implicación anterior se sigue que G es acíclico. La igual-dad |E| = |V | − 1 es parte de la hipótesis.

5 ⇒ 6) Al añadir una arista a G, se viola la desigualdad |E| ≤ |V | − 1 y elcontrarrecíproco del lema 2 implica que G deja de ser acíclico.

6 ⇒ 1) Sean u y v dos vértices distintos de G (si no los hay la implicación estrivial). Si existe una arista (u, v), los dos vértices son mutuamente accesibles; si no, laadición de (u, v) a E(G) provoca la aparición de un ciclo C del que dicha arista es ob-viamente miembro. Suprimiendo (u, v) de C obtenemos un camino que conecta u y v.

1.6.1. Arboles enraizados

Un árbol enraizado es un árbol en el que marcamos uno de los vértices comovértices disinguido. Dicho vértice se denomina raíz del árbol. Por ejemplo, el árbol dela figura 1.11 tiene por raíz el nodo 7. Como puede verse, en los árboles enraizados esmás común llamar nodos a los vértices

Consideremos un nodo cualquiera v de un árbol enraizado de raíz r . Existe un únicocamino entre r y v; cualquier nodo presente en ese camino es un ancestro o antecesorde v. Si w es un ancestro de v, decimos que v es un descendiente de w. Todo nodoes, por definición, ancestro de sí mismo; un ancestro de v diferente a él es un ancestropropio. Un descendiente propio se define de forma análoga.

El subárbol con raíz en v es el subárbol inducido por los descendientes de dichovértice.

18

Page 19: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

Abad

Abascal Álvarez

Bastardo

CobasCazorla Dehesa

González Guzmán

Herrero

Lebrel

Zapatero Zorrilla

ABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.12: Buscando al abonado Dehesa

Supongamos que la última arista del (único) camino entre la raíz y un nodo v

es (w, v). En ese caso, decimos que w es el padre de v, y que v es hijo de w. Dosnodos que tienen el mismo padre son hermanos. Un nodo sin hijos es una hoja o nodoexterno; en caso contrario, es un nodo interno. El número de hijos de un nodo es sugrado; obsérvese que, en este contexto, el grado de un nodo es una unidad inferior a lodefinido en la sección 1.2.2. Si todos los nodos de un árbol tienen grado a lo sumo m,el árbol es m-ario. Así, en un árbol ternario cada nodo tiene, a lo sumo, tres hijos;posiblemente, menos.

Definimos la profundidad de un nodo v como la longitud del camino de la raíz a v.La altura de un árbol es el máximo de las profundidades de sus nodos. El árbol de lafigura 1.11 tiene altura 3, puesto que los nodos 1 y 2 tienen ambos dicha profundidad.El subárbol con raíz en el nodo 9 tiene altura uno.

Un árbol enraizado en el que los hijos de cada nodo tienen asignado un orden esun árbol ordenado. Esto significa que si un nodo tiene k hijos, hay un primer, segundo,. . . , k-ésimo hijo.

El interés de los árboles reside en su uso como estructuras de datos para clasificarinformación. Por ejemplo, el árbol de la figura 1.6.1 codifica un índice de una base dedatos de abonados telefónicos. El árbol es ordenado y cuaternario; tiene, además, lapropiedad de que los datos residentes en una rama son siempre anteriores a los datosque residen en ramas situadas a su derecha. Esto lo convierte en un árbol de búsqueda.Para localizar al abonado Dehesa, es suficiente encontrar qué hijo del nodo raíz locontiene, lo que se determina de inmediato. Prosiguiendo recursivamente de esta forma,llegamos a encontrar al abonado en un número de pasos igual, a lo sumo, a la altura delárbol de búsqueda.

¿Cuál podría ser esa altura en el caso de tener un millón de abonados?

Teorema 5 Sea T un árbol m-ario de altura h. Entonces, el número de nodos n delárbol satisface la desigualdad

n ≤mh+1 − 1

m − 1

19

Page 20: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

Dicho de otro modo, un árbol m-ario de n nodos tiene que tener altura mínima dadapor

h ≥ −1+ logm((m − 1)n + 1)

En particular, un árbol binario satisface las desigualdades siguientes

n ≤ 2h+1 − 1

h ≥ −1+ log2(n + 1)

DEMOSTRACIÓN Si cada nodo tiene a lo sumo m hijos, habrá a lo sumo un nodo denivel 0 (el nodo raíz); m nodos de nivel 1 (sus hijos); m2 nodos de nivel 2 (sus nietos);m3 nodos de nivel 3 (sus bisnietos); y, en general, el nivel k tendrá una poblaciónmáxima de mk nodos. Por lo tanto, el número total de nodos será inferior a

1+ m + m2 + m3 + · · · + mh =mh+1 − 1

m − 1

que es lo que se quería demostrar. Las demás desigualdades se obtienen despejando laaltura y particularizando para m = 2.

Como ejemplo, en el caso de un millón de abonados, tendríamos un árbol de alturamínima

h ≥ −1+ log4(3·106 + 1) = 9,758

luego un árbol de altura h = 10 podría albergar nuestro millón de abonados, si está co-rrectamente equilibrado. En esta hipótesis, nuestra búsqueda concluiría tras la lecturade once registros de nuestra base de datos a lo sumo, lo que no está nada mal.

1.6.2. Arboles binarios

Aunque podríamos definir estos árboles a partir de lo estudiado en las seccionesanteriores, seguiremos otra vía mucho más conveniente. Un árbol binario T es unaestructura definida en un conjunto finito de nodos, que, o bien

no contiene nodos, o bien

contiene tres conjuntos distintos de nodos: un nodo raíz, un árbol binario llamadoel subárbol izquierdo y otro llamado el subárbol derecho.

Observemos que está permitido que un árbol binario sea vacío: se trata del árbolvacío o árbol nulo. Dado un árbol binario de raíz r , si el subárbol izquierdo no esvacío, su raíz es el hijo izquierdo de r ; el hijo derecho de define análogamente. Esposible, pues, que un hijo izquierdo o derecho estén ausentes (cuando sea vacío elcorrespondiente subárbol).

Es preciso hacer notar que un árbol binario no es simplemente un árbol ordenado enque cada nodo tiene a lo sumo dos hijos. En tal caso, no podríamos decidir, para un nodocon un solo hijo, si éste es el izquierdo o el derecho. El árbol binario, pues, proporciona“más estructura” que un simple árbol ordenado. Un nodo puede tener solamente un hijoizquierdo o solamente un hijo derecho.

1.7. Recorridos de grafos

Un recorrido de un grafo es un procedimiento que origina una enumeración or-denada de sus vértices. Comenzaremos nuestro estudio de los recorridos por el casoparticular de los árboles binarios

20

Page 21: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PREORDEN(T )

1 if T = NIL

2 then no hacer nada3 else VISITA(T )

4 PREORDEN(T .i z)5 PREORDEN(T .de)

POSTORDEN(T )

1 if T = NIL

2 then no hacer nada3 else POSTORDEN(T .i z)4 POSTORDEN(T .de)5 VISITA(T )

INORDEN(T )

1 if T = NIL

2 then no hacer nada3 else INORDEN(T .i z)4 VISITA(T )

5 INORDEN(T .de)

Figura 1.13: Pseudocódigo de los recorridos de un árbol binario

1.7.1. Recorridos de árboles binarios

Recordemos que un árbol binario se define como

un grafo vacío, o bien

un nodo raíz más dos árboles binarios que constituyen el subárbol izquierdo y elderecho

Esta definición recursiva es de especial interés cuando recorremos el árbol. Pode-mos definir tres maneras de visitar todos y cada uno de los vértices según se ve en lafigura 1.13. Aplicando estos procedimientos al árbol de la figura 1.14(a), se obtienenlas secuencias que se muestran en la tabla adjunta 1.14(b).

Estos tres tipos de recorrido se relacionan con tres notaciones usuales para las ex-presiones algebraicas

infija La notación del álgebra corriente exige que los operadores vayan en medio desus dos operandos. Por ejemplo, la expresión

3+ 5 ∗ (6+ 12)

está en notación infija.

postfija Se obtiene colocando cada operador binario a continuación de sus operan-dos. Al contrario que la infija, no requiere paréntesis ni reglas de precedenciapara resolución de la ambigüedad. La expresión anterior, en notación posfija seconvierte en

3 5 6 12+ ∗+

La notación postfija (también llamada polaca inversa es muy adecuada para suinterpretación por máquinas, lo que no es de extrañar a la luz del ejemplo ante-rior. Es muy sencillo escribir un programa que interprete de forma directa expre-siones postfijas empleando una pila como estructura de datos auxiliar

pretfija Se obtiene colocando los operadores binarios como prefijos de los operandos.Así:

+ 3 ∗ 5+ 6 12

No es de mucho uso, pero aún pervive en el lenguaje Lisp, donde el cálculoanterior se escribiría como

(+ 3 (* 5 (+ 6 12)))

21

Page 22: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

c b j

a

e

g

f

hd

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(a) Árbol binario

Tipo ResultadoInorden c a b e j g h f dPreorden e a c b g j f h dPostorden c b a j h d f g e

(b) Recorridos

Figura 1.14: Recorridos de un árbol binario

a pesar de que tampoco son precisos paréntesis ni reglas de precedencia pararesolución de ambigüedades (el uso de paréntesis en Lisp tiene un significadodistinto).

Las tres notaciones resultan de recorrer en in-, pre- y postorden un árbol sintácticode la expresión, como puede comprobarse en la figura 1.7.1.

1.7.2. Recorridos eulerianos

El problema que estudiamos a continuación se encuentra en el origen mismo de lateoría de grafos y de otra importante rama de la Matemática: la topología. Se trata delcélebre problema de los puentes de Königsberg.

La ciudad de Königsberg, capital de Prusia y patria del célebre filósofo ImmanuelKant, es atravesada por el río Pregel. En medio del río encontramos dos islas que seencuentran comunicadas con las orillas y entre sí por siete puentes, como se muestraen la figura 1.16.

Los habitantes de Königsberg se plantearon si era posible dar un paseo que recorrie-se los siete puentes sin repetir ninguno (y, naturalmente, sin mojarse). Tras numerososintentos infructuosos, la solución de este divertido problema combinatorio fue aporta-da por el matemático suizo Leonhard Euler en 1736. Euler no solamente demostró laimposibilidad del pretendido paseo, sino que, además, dio un sencillo criterio generalpara resolver cualquier problema del mismo tipo.

Si prescindimos de detalles anecdóticos, es fácil ver que la búsqueda de un paseopor los puentes equivale a encontrar un camino que recorra todas las aristas del grafode la figura 1.17 sin repetir ninguna (naturalmente, los vértices pueden repetirse). O,

22

Page 23: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ

3

+

5

+

+

6 12

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(a)

Recorrido ExpresiónInorden 3+ 5 ∗ 6+ 12Postorden 3 5 6 12+ ∗+Preorden +3 ∗ 5+ 6 12

(b)

Figura 1.15: a) Árbol sintáctico y b) notaciones infija, prefija y postfija para la expresión3+ 5 ∗ (6+ 12)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5

C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

Zorrilla

A

B

C

D

EFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.16: Los puentes de Königsberg

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

Zorrilla

A

B

C

D

EFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.17: Los puentes de Königsberg

23

Page 24: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

como suele formularse en las revistas de matemática recreativa, dibujar la figura de unsolo trazo sin levantar el lápiz del papel.

Sea G un grafo no dirigido. Denominamos recorrido euleriano de G a un ca-mino que pasa por todas las aristas de G exactamente una vez. Es decir, si C =(v1, v2, . . . , vn), la sucesión de aristas (v1, v2), (v2, v3), (v3, v4), . . . , (vn−1, vn) con-tiene cada arista de G exactamente una vez. Si además C es cerrado, denominamos alrecorrido un circuito euleriano

El grafo del problema de los puentes no es un grafo dirigido en el sentido de ladefinición dada en 1.2.1, sino un multigrafo, en el que permitimos que haya más deuna arista distinta entre dos vértices. Aunque no hemos definido rigurosamente estosobjetos, todo lo que probaremos en la presente sección se extiende a ellos sin dificultad.

Decimos que un grafo es euleriano si posee un recorrido euleriano. Obviamente,un grafo euleriano tiene que ser conexo. Pero, además, se necesitarán condiciones adi-cionales para garantizar la existencia de recorridos eulerianos. Tras bastantes ensayoscon el grafo de los puentes, parece claro que no podemos encontrar una solución.

La razón está en la paridad de los vértices del grafo. Decimos que un vértice v deun grafo no dirigido G es par (respectivamente, impar) si su grado es un entero par(resp. impar). Por ejemplo, en el grafo de la figura 1.17, todos los vértices son impares.Ahora bien, si intentamos dibujarlo de un solo trazo, cada vez que pasemos por un vér-tice, entraremos en él por una arista y saldremos por otra; ambas quedarán inutilizadaspara su recorrido posterior. Excepto los vértices inicial o final de la trayectoria, todoslos demás (vértices de paso) tendrán tantas aristas de entrada como de salida; por tanto,un número par de ellas, y su grado será par. Esto nos lleva al teorema de Euler.

Teorema 6 Sea G un grafo conexo no dirigido. Entonces, G posee un circuito eule-riano si y solamente si G carece de vértices impares.

DEMOSTRACIÓN

Supongamos primero que G posee un circuito euleriano dado por la sucesión devértices C = (v0, v1, v2, . . . , vn). Por definición, cada arista del grafo aparece en lasucesión (v0, v1), . . . , (vn−1, vn) exactamente una vez, y al ser el recorrido cerrado,v0 = vn .

Sea v un vértice cualquiera de G. Si v es el único vértice de G, no hay nada quedemostrar. Si no es así, v tendrá alguna arista incidente puesto que G se supone conexo,y esto obliga a que v aparezca cierto número de veces en el camino C .

En cada aparición de v, éste figura dos veces; si, por ejemplo, está en la posiciónk-ésima de C , v = vk y tenemos dos aristas (vk−1, vk) y (vk , vk+1) incidentes en vk .Como estas aristas solamente figuran una vez en el recorrido, obtenemos que el númerode aristas incidentes en v es igual al doble del número de apariciones de v en C , y, comotodas las aristas son visitadas por C , el grado de v es forzosamente un número par.

La única excepción de este argumento se encuentra en los extremos: cuando k =0, n, las dos aristas (vn, v0) y (v0, v1) se añaden al recuento de aristas incidentes en v0según el argumento anterior, de modo que también v0 = vn debe ser par.

La implicación contraria se demuestra por inducción sobre el número de vértices.De hecho, vamos a demostrar esta implicación para multigrafos dirigidos.

Supongamos que G es un multigrafo conexo todos cuyos vértices son de grado par.En el caso de un grafo de un solo vértice, el circuito euleriano se obtiene de formatrivial. Así pues, sea |V | = n y supongamos que todo multigrafo conexo de menosde n vértices, todos pares, posee un circuito euleriano.

Sea v un vértice cualquiera de G; por hipótesis de conexión, el grado d de v debe serun número par estrictamente mayor que cero. Consideremos los vérticesi v1, v2, . . . , vd

24

Page 25: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1

v2

v3

v4

v5

v6

vd

...

vmvm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(a)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1

v2

v3

v4

v5

v6

vd

...

vmvm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(b)

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1

v2

v3

v4

v5

v6

vd

...

vmvm+1

vn

123469

121836C1C2C3C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

(c)

Figura 1.18: Demostración del teorema de Euler: (a) antes de suprimir v. (b) Suprimi-do v y añadidas las aristas auxiliares, el grafo resultante posee un circuito euleriano.(c) Construcción del circuito euleriano para G

25

Page 26: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

adyacentes a v, como se muestran en la figura 1.18(a). Si suprimimos v y las aristasincidentes en él, obtenemos el grafo G − v; la supresión de las aristas indicadas semuestra en gris en la figura 1.18(b). Ahora, los vértices vi resultan ser todos imparestras la supresión. Adjuntando las aristas (v1, v2), (v3, v4), . . . , (vd−1, vd) obtenemosun nuevo grafo en el que todos los vértices vuelven a ser de grado par; no obstante,el número de vértices es ahora n − 1. Además, el nuevo grafo es obviamente conexo(obsérvese que, por la adjunción de las nuevas aristas, podemos obtener un multigrafo).Por lo tanto, se aplica la hipótesis de inducción, y deducimos que existe un recorridoeuleriano. El paso por las aristas auxiliares de dicho circuito se produce en sentidosimprevisibles que indicamos con flechas en 1.18(b).

Queda convertir este circuito euleriano en uno para G. Para ello, basta obser-var que la nueva arista (vi−1, vi ) siempre puede ser reemplazada por el recorrido de(vi−1, v), (v, vi ) (y en sentido contrario si es necesario), como se muestra en la figu-ra 1.18(c). Con esto obtenemos un circuito euleriano de G y el teorema queda demos-trado.

De este teorema se deduce un interesante corolario.

Corolario 1 Sea G un grafo conexo no dirigido. Si G tiene exactamente dos vérticesimpares, G posee un recorrido euleriano. Recíprocamente, si G posee un recorrido eu-leriano, sus vértices extremos son los únicos vértices impares de G (si son diferentes).

DEMOSTRACIÓN Sean v y w los vértices impares en cuestión, y añadamos a G laarista (v, w) (observemos que, una vez más, de esta adjunción puede resultar un mul-tigrafo). Con esto, obtenemos un grafo en las hipótesis del teorema anterior, que poseeun circuito euleriano. Forzosamente, el circuito para por la arista (v, w) exactamenteuna vez. Suprimiéndola del circuito obtenemos un recorrido del grafo G. Recíproca-mente, un recorrido euleriano de vértices extremos v y w se completa, añadiendo laarista (v, w), obteniendo un circuito euleriano del multigrafo resultante. Por lo tanto,éste tiene todos sus vértices pares, de lo que se deduce que los vértices v y w eranimpares al principio.

Por lo tanto, un grafo tiene un recorrido euleriano si y solamente si el número devértices impares es cero o dos. Que dicho número no pueda ser la unidad es consecuen-cia del siguiente

Teorema 7 Sea G un grafo no dirigido. El número de vértices impares de G es siemprepar.

DEMOSTRACIÓN Sean {v1, v2, . . . , vn} los vértices de G y d1, d2, . . . , dn sus respecti-vos grados. El número de extremos que poseen las aristas de G es, evidentemente, 2|A|,puesto que cada arista tiene dos extremos. Ahora bien, podemos contar dicho númerode extremos sumando los grados de todos los vértices, puesto que dichos grados son elnúmero de extremos de aristas que confluyen en un vértice dado. De modo que se tiene

n∑

i=1

di = 2|A|

Ahora bien, esto significa que la suma de los grados de los vértices es par. Como lasuma de dos números impares es siempre par, el número de d ′is no puede ser impar,puesto que el resultado de la suma sería impar en ese caso. Por tanto, hay un númeropar de vértices impares.

26

Page 27: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.19: El puzzle de Hamilton

Es decir, un grafo nunca podrá tener un solo vértice impar (ni tres, ni cinco. . . ). Esteteorema se conoce a veces como “lema del apretón de manos”, porque puede ponerseen la siguiente forma: en una fiesta, el número de personas que estrechan la mano a unacantidad impar de gente tiene que ser necesariamente par. Es una consecuencia directade que en un apretón siempre intervienen dos manos.

1.7.3. Caminos hamiltonianos

Un problema de enunciado análogo, pero cuya simplicidad es tremendamente en-gañosa, es la determinación de si un grafo posee un camino hamiltoniano.

Sea G un grafo (dirigido o no). Un camino C en G se dice que es hamiltoniano siC pasa por cada vértices del grafo exactamente una vez. Un ciclo que pasa exactamenteuna vez por cada vértice (excepto el vértice inicial, que aparece también como final),se denomina ciclo hamiltoniano

Al contrario que en el caso euleriano, aquí no precisamos recorrer todas las aris-tas; simplemente nos interesa visitar cada vértice exactamente una vez. Aunque no semenciona explícitamente, los caminos hamiltonianos son siempre simples, lo que sededuce directamente de la definición.

El nombre de este tipo de recorrido deriva de un puzzle ideado por Sir WilliamRowan Hamilton (1805–1865). Básicamente, Hamilton pedía encontrar un ciclo ha-miltoniano en un grafo isomorfo al retículo de vértices de un dodecaedro. La soluciónes bastante sencilla. Sin embargo, dado un grafo arbitrario, no resulta fácil determinarsi posee un ciclo hamiltoniano o no.

De hecho, no se conoce ninguna caracterización fácil de los grafos hamiltonianos, yes probable que nunca se conozca ninguna. La razón de ello es que el problema del ciclohamiltoniano es NP-completo. No es sencillo definir esta propiedad; baste mencionarque una solución eficiente del problema del ciclo hamiltoniano permitiría resolver degolpe una vasta familia de problemas computacionales enormemente difíciles, y existensospechas muy fundadas de que tal solución eficaz no puede existir.

Esto no implica que, para determinados grafos de tipos muy particulares, no sea po-sible determinar la existencia de caminos hamiltonianos (no necesariamente cerrados).Un ejemplo de ello lo constituyen los torneos definidos en la sección 1.5.2.

Teorema 8 Todo torneo posee un camino hamiltoniano

DEMOSTRACIÓN Por inducción sobre el número de vértices n = |V |. El teorema estrivial para n = 1.

27

Page 28: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1

v2

v3

v4v5v6vd

...

vmvm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ3+

5+

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.20: Construcción de un camino hamiltoniano en un torneo.

Consideremos entonces un torneo G de n vértices y supongamos que todo torneode n − 1 vértices posee un camino hamiltoniano. Sea v = v1 un vértice de G y con-sideremos el grafo G − v que se obtiene suprimiendo v y todas las aristas que entrano salen de dicho vértice. El grafo resultante tiene n − 1 vértices y, por hipótesis deinducción, posee un camino hamiltoniano. Sea éste C = (v2, v3, . . . , vn); numeramoslos vértices en el orden que dicho camino nos proporciona, por conveniencia. Nuestranotación implica, naturalmente, que el camino supuesto por hipótesis va de v2 a vn , noen sentido contrario.

Ahora pueden darse tres posibilidades:

1. El torneo posee una arista (v1, v2). En ese caso, puede completarse el camino Cañadiéndole al principio esta arista y obteniéndose un camino hamiltoniano C ′ =(v1, v2, . . . , vn) para G, con lo que el teorema quedaría demostrado.

2. El torneo posee una arista (vn, v1). En ese caso, puede completarse el camino Cañadiéndole al final esta arista y obteniéndose un camino hamiltoniano C ′ =(v2, . . . , vn, v1) para G, con lo que el teorema quedaría demostrado.

3. Si ninguna de las circunstancias anteriores se da, la definición de torneo obligaa que G posea las aristas (v2, v1) y (v1, vn). Para cada vértice vk , con 2 ≤ k ≤n, debe existir una arista ak con ak = (v1, vk) o ak = (vk , v1), puesto queasí lo exige el hecho de que G sea un torneo. Esta situación se describe en lafigura 1.7.3.

Consideremos entonces la sucesión de aristas a2, a3, a4, . . . , an. En nuestro caso,la primera arista entra en v1 y la última sale de v1. Por lo tanto, tiene que haberuna última arista que entre en v1 en esa sucesión, antes de llegar a an. Sea dichaarista am . Entonces, si reemplazamos la arista vm, vm+1 de C por el par de aristasam y am+1 obtenemos

C ′ = (v2, v3, . . . , vm , v1, vm+1, vm+2, . . . , vn)

que constituye el deseado camino hamiltoniano, y el teorema también es ciertopara G en este caso.

28

Page 29: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

1 2

4

7 8 9

10

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3

C4C5C7P6

Cm

Q0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ

3

+

5

+

6

12χ(K5) = 5

χ(K3,3) = 2χ(C7) = 3

χ(esto) = 4χ(esto otro) = 4

(a) Grafo ejemplo

Vértice Adyacentes1 {2, 4}2 {1, 3, 5}3 {2, 5}4 {1, 5, 7, 8}5 {2, 3, 4, 6, 8, 9}6 {5}7 {4, 8, 10}8 {4, 5, 7, 9, 10}9 {5, 8}

10 {7, 8}

(b) Lista de adyacencia

Figura 1.21: Datos de partida para recorridos en anchura y profundidad

1.7.4. Recorridos en anchura y profundidad

Los algoritmos clásicos de teoría de grafos se basan en dos procedimientos bá-sicos de recorrido denominados recorrido en anchura (breadth-first) y recorrido enprofundidad (depth-first). Aunque admiten muchas formulaciones (por ejemplo, co-mo algoritmos de búsqueda en árboles), aquí estableceremos su funcionamiento en elcaso de grafos no dirigidos; para otros contextos funcionan exactamente igual con lasmodificaciones obvias.

Consideremos el grafo de la figura 1.21(a), en la cual mostramos además su re-presentación por listas de adyacencia (1.21(b)). Vamos a enunciar y ejecutar dos al-goritmos que producen una enumeración ordenada de cada vértice del árbol. En cadaalgoritmo, procedemos visitando cada vértice y añadiendo sus vecinos a una lista devértices pendientes. La visita de un vértice consiste en marcarlo como visitado y, siprocede, tratar la información que contiene y emitir su nombre o algún otro dato comoresultado de la visita. Hecho esto, seguimos tratando los vértices que queden pendien-tes.

A grandes rasgos, los algoritmos de recorrido se describen en pseudocódigo en lafigura 1.22. El recorrido en profundidad admite una formulación recursiva muy sim-ple, mientras que el recorrido en anchura debe formularse en términos de una colade vértices pendientes de visitar. En la cola, que inicialmente contiene sólo el vérticede partida, los vértices se mantienen en orden; se extraen del principio con la opera-ción SACAPRIMERO y se añaden al final con la operación ENCOLA. Los vértices yavisitados no se introducen en la cola en dicha operación.

En la tabla de la figura 1.23(a) podemos observar la operación del algoritmo derecorrido en anchura. En cada paso, se toma el primer elemento de la cola, que se anotacomo visitado, y se examina su lista de adyacencia. Los vecinos que no hayan sidoya visitados se añaden al final de la cola antes de proceder a la siguiente iteración.

29

Page 30: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

DEPTH-FIRST(G, v)

1 VISITA(v)

2 for each w in Ad j (v)

3 do DEPTH-FIRST(G, w)

(a) En profundidad

BREADTH-FIRST(G, v)

1 Q← [v]2 while Q 6= ∅3 do w← SACAPRIMERO(Q)

4 VISITA(w)

5 ENCOLA(Ad j (w))

(b) En anchura

DEPTH-FIRST-NR(G, v)

1 S← vacio2 PUSH(v)

3 while S 6= ∅4 do w← POP(S)

5 if w no visitado6 then7 VISITA(w)

8 next ← Ad j (w)

9 next ← next − VISITADOS(next)10 PUSH(next)11

(c) En profundidad, no recursivo

Figura 1.22: Recorridos en anchura (a) y en profundidad (b, c); pseudocódigos

Como resultado de este proceso, obtenemos que el recorrido construye un árbol comoel mostrado en 1.23(b). Cada nodo figura en este árbol como hijo del nodo “culpable”de su ingreso en la cola Q. Un árbol de esta forma es un árbol abarcador (spanningtree): cubre todos los vértices del grafo.

El recorrido de los vértices en profundidad es más difícil de visualizar al ser recur-siva la formulación natural del algoritmo 1.22(a). La idea consiste en visitar en cadapaso cualquiera de los nodos vecinos aún no visitados, hasta que llegamos a un callejónsin salida (es decir, no hay más vecinos inmediatos sin visitar). En ese caso es precisovolver atrás y reiniciar nuestro paseo en el último punto en el que dejamos sin exploraralguna posibilidad.

Una forma menos vaga de expresar este procedimiento es la forma no recursivadel recorrido en profundidad que se esboza en el algoritmo de la figura 1.22(c). Enesta versión se emplea una pila S, en la que se almacenan los vértices pendientes deser recorridos. La operación de una pila es inversa a la de una cola: los elementos seintroducen en ella por delante (con la operación PUSH) y se sacan de ella también delprincipio (POP).

Inicialmente introducimos en la pila sólo el vértice de partida. Mientras la pila no sevacíe, tomamos el primer elemento de la pila (que es el último introducido, al revés queen una cola); si no está marcado como visitado ya, lo visitamos; y finalmente apilamossu lista de adyacentes (salvo los que estén marcados como visitados, que no se añaden).

30

Page 31: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

Visitados Cola Q– 11 2 31 2 4 5 31 2 4 5 3 7 81 2 4 5 3 7 8 6 91 2 4 5 3 7 8 6 91 2 4 5 3 7 8 6 9 101 2 4 5 3 7 8 6 9 101 2 4 5 3 7 8 6 9 101 2 4 5 3 7 8 6 9 101 2 4 5 3 7 8 6 9 10 –

(a) Traza

1 2

4

7 8 9

10

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ

3+

5+

6

12χ(K5) = 5

χ(K3,3) = 2χ(C7) = 3

χ(esto) = 4χ(esto otro) = 4

(b) Arbol abarcador

Figura 1.23: Funcionamiento del algoritmo BREADTH-FIRST: (a) Traza del algoritmo,con la historia de vértices visitados y el estadode la cola en cada iteración, (b) árbolabarcador resultante del recorrido

Un ejemplo de ejecución de este proceso aparece en la tabla de la figura 1.24(a),donde vamos viendo la historia de los contenidos de la pila y los elementos que vanvisitándose en sucesión. Como resultado del proceso obtenemos también el diagra-ma 1.24(b), que es otro árbol abarcador del grafo inicial. Una vez más, las aristas delgrafo relacionan cada vértice con el “culpable” de su inclusión en la pila de pendientes.Las flechas grises indican los momentos en que se produjo vuelta atrás (backtracking)al haberse encontrado un callejón sin salida.

1.7.5. Caminos mínimos, MST y demás

Los algoritmos de recorrido de la sección 1.7.4 son la base de los algoritmos clá-sicos de teoría de grafos que se estudian en la teoría de Estructuras de Datos y Algo-rítmica. De hecho, la estructura de datos básica subyacente a las búsquedas en anchuray profundidad (cola o pila) puede reemplazarse por una estructura más general deno-minada cola de prioridad, en la que los elementos son recuperados de acuerdo conun valor de prioridad que se asocia a cada uno. Con valores adecuados de la priori-dad, se obtienen búsquedas en anchura, en profundidad o recorridos que conducen aalgoritmos para encontrar caminos mínimos o árboles abarcadores.

Estos conceptos se relacionan con el concepto de red. Una red se define como ungrafo a cada una de cuyas aristas se ha asociado un número real, denominado su pesoo coste. En la figura 1.25 tenemos un ejemplo de red. El coste asociado a un caminose obtiene de la forma obvia: sumando los pesos de las aristas que lo componen, y lomismo puede definirse para un subárbol de la red correspondiente.

Se denomina camino mínimo (o camino más corto) entre dos vértices v y w alcamino de peso menor que une los dos vértices. En la red de la figura 1.25, el caminomás corto entre los vértices 1 y 8 es el marcado en línea de trazos. El algoritmo paraencontrar este tipo de caminos es el algoritmo de Dijkstra y se estudiará con profusiónen la asignatura de Estructuras de Datos.

31

Page 32: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

Pila Visitado1 12 4 42 8 7 5 52 8 7 2 3 6 8 82 8 7 2 3 6 9 7 10 102 8 7 2 3 6 9 7 7 72 8 7 2 3 6 9 7 –2 8 7 2 3 6 9 92 8 7 2 3 6 62 8 7 2 3 32 8 7 2 22 8 7 –2 8 –2 –

(a) Evolución del stack

1 2

4

7 8 9

10

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ

3+

5+ 6

12χ(K5) = 5

χ(K3,3) = 2χ(C7) = 3

χ(esto) = 4χ(esto otro) = 4

(b) Arbol abarcador

Figura 1.24: Funcionamiento del algoritmo DEPTH-FIRST: (a) Traza del algoritmo,con la historia de vértices visitados y el estado de la pila en cada iteración, (b) árbolabarcador resultante del recorrido. Las flechas grises indican los procesos de backtracking.

Las aristas marcadas con trazo grueso en la misma figura (de pesos 3, 6, 5, 13, 14,17 y 25) constituyen un árbol abarcador mínimo (en inglés, minimum spanning treeo MST. Se trata de un árbol que cubre todos los vértices del grafo teniendo el pesomenor posible. Existen dos algoritmos clásicos para encontrar tal MST, los algoritmosde Kruskal y Prim; serán también objeto de estudio en el futuro.

32

Page 33: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

1

2

8

7

4

8

32

15

24

69

25

17

18

21

1314

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3

v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerreroLebrel

Zapatero

ZorrillaABCDEFGHIJ

3 3

+

5

5

+

6

612

χ(K5) = 5χ(K3,3) = 2

χ(C7) = 3χ(esto) = 4

χ(esto otro) = 4

Figura 1.25: Una red con el camino más corto entre 1 y 8 y su MST

33

Page 34: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

21

2

12

1

1

2

1

4

1

2

4

1

1

1

2

2

2

2

1

2

12

1

12

4

4

2

2

1

1

PSfrag replacements

123456789

101112K4K5K6

ABCDuw

v

xyzpp′

v1v2v3v4v5v6vd

...vm

vm+1

vn

123469

121836C1C2C3C4C5C7P6

CmQ0Q1Q2Q3Q4Q5

AbadAbascalÁlvarez

BastardoCobas

CazorlaDehesa

GonzálezGuzmánHerrero

LebrelZapatero

ZorrillaABCDEFGHIJ

3

3

3

3

3

3

3

3

+

5

+

612

χ(K5) = 5 χ(K3,3) = 2 χ(C7) = 3

χ(esto) = 4 χ(esto otro) = 4

Figura 1.26: Algunos grafos y sus números cromáticos

1.8. Planaridad y coloreado

Se dice que un grafo G = (V, E) (simple, no dirigido y sin bucles) es colo-reable con n colores, o simplemente n-coloreable, si existe una función f : V →{1, 2, . . . , n} tal que si u y v son vértices adyacentes, f (u) 6= f (v). Intuitivamente,esta definición implica que, disponiendo de n colores distintos, podemos colorear losvértices del grafo de modo que los vértices vecinos se distingan por el color. El menornúmero n de colores que resulta suficiente para colorear un grafo G se denomina sunúmero cromático, y se denota por χ(G).

En la figura 1.26 mostramos algunos ejemplos de grafos con diferentes númeroscromáticos.

Vamos a dar algunos teoremas que nos permiten estimar un número de coloressuficiente para el coloreado de ciertos grafos

Teorema 9 Dado un grafo G, las siguientes afirmaciones son equivalentes: a) G es2-coloreable, b) G es bipartito, y c) G carece de ciclos de longitud impar.

DEMOSTRACIÓN La equivalencia de b) y c) fue el contenido del teorema 3; nos queda,pues, probar la (casi trivial) equivalencia de a) y b).

Si un grafo G admite un coloreado con dos colores, llamémoslo f : G → {1, 2},denotemos

V1 = {v ∈ V (G) | f (v) = 1}

V2 = {v ∈ V (G) | f (v) = 2}

es decir, los conjuntos V1 y V2 contienen los vértices de color 1 y color 2, respecti-vamente. Obviamente, estos conjuntos forman una partición de los vértices de V . Al

34

Page 35: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

ser f un 2-coloreado, vértices adyacentes tienen colores distintos: dicho de otro modo,cada arista va de V1 a V2, y el grafo es, por tanto, bipartito.

Si G es bipartito, con aristas entre dos conjuntos V1 y V2 exclusivamente, bastaasignar el primer color a los vértices de V1 y el segundo a los de V2.

El caso de los grafos bipartitos es bastante especial. Un teorema algo más general,aunque no demasiado potente, nos da una cota superior para el número de colorespreciso en un grafo cualquiera G.

Teorema 10 Si1(G) = max {deg(v) | v ∈ V (G)}

es el mayor de los grados de los vértices de G, entonces

χ(G) ≤ 1(G)

Dicho de otra manera, si el vértice de mayor grado de G tiene grado d, bastan d + 1colores para colorear G.

DEMOSTRACIÓN Por inducción sobre el número de vértices. Si el grafo tiene unsolo vértice, su grado será cero y el grafo es trivialmente 1-coloreable, o sea que

χ(G) = 1 ≤ 1 = 1(G)+ 1

Supongamos ahora que G tiene un número cualquiera |V | de vértices, y que el teoremaque queremos probar es cierto para todos los grafos con menos vértices que |V |. Seav un vértice de máximo grado de G, i.e., deg(v) = 1(G). Suprimamos v y todas lasaristas en él incidentes, obteniendo el grafo G ′ = G − v. Evidentemente, G ′ tiene unvértice menos, y está claro que 1(G ′) ≤ 1(G), así que G ′ es (1(G)+ 1)-coloreable,por hipótesis de inducción. Ahora bien, si consideramos un (1(G) + 1)-coloreado deG′, podemos extenderlo a un coloreado de G asignando algún color a v. Como el gradode v es 1(G), alguno de los 1(G)+ 1 colores no se ha utilizado en teñir a los vecinosde v, y ese color podrá utilizarse para teñir a v, con lo que también G será (1(G)+1)-coloreable.

Obsérvese que este teorema proporciona un número de colores suficiente, pero pue-de ser bastante mayor que el mínimo necesario. Por ejemplo, para K3,3 (véase la figu-ra 1.26) el teorema dice que cuatro colores bastan, y es así, porque de hecho bastandos. El caso del último grafo de la misma figura es especialmente significativo: hay unvértice de grado 8, luego el teorema garantiza que nueve colores bastan. Sin embargo,en la práctica vemos que con cuatro es posible colorear el grafo.

El último teorema sobre coloreado que veremos no se demostrará: sería realmentedifícil, por las razones que después veremos.

Definimos un grafo plano como uno que es factible representar en el plano de formaque sus aristas no tengan intersecciones (salvo en los extremos, claro). Por ejemplo, lafigura 1.26 representa tres grafos planos. Los dos primeros no lo son: aunque no esobvio, K5 y K3,3 son imposibles de dibujar en un plano sin que alguna arista se crucecon otra.

Una propiedad curiosa de los grafos planos es la siguiente, que enunciamos sindemostrar:

Teorema 11 Si G es un grafo plano, el número C de regiones conexas en que su re-presentación divide al plano satisface la relación

C − A + V = 2

siendo A y V los números de aristas y vértices, respectivamente.

35

Page 36: Grafos - UIS - Facultad de Cienciasciencias.uis.edu.co/lenguajes/doc/ApuntesGrafos.pdf · Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles,no

El teorema al que hacíamos referencia antes es el

Teorema 12 (de los cuatro colores) Todo grafo plano es 4-coloreable

La interpretación geométrica de este enunciado es que cualquier mapa puede co-lorearse con cuatro colores de forma que países fronterizos se distingan por el color.Por complejo que sea el mapa, cuatro colores serán siempre suficientes. El teoremade los cuatro colores se demostró en 1976, tras más de un siglo de intentos fallidos yla comprobación exhaustiva por computador de miles de configuraciones a las que lademostración se reduce.

36