Teor´ıa de grafos. Notas de clase (versión

Anuncio
Teorı́a de grafos. Notas de clase
(versión preliminar)
Raúl Gómez Marı́n
Andrés Sicard Ramı́rez
Universidad EAFIT
1999
2
Capı́tulo 1
Grafos
Es un hecho conocido que la teorı́a de grafos tiene sus raı́ces en un artı́culo del matemático suizo Leonhard Euler, publicado en el año de 1736. Las
ideas básicas de la teorı́a las desarrolló Euler en torno al problema conocido como el problema de los siete puentes de Köningsberg. Recientemente la
teorı́a ha conocido nuevos desarrollos y ha realizado extensiones métodicas
en las ciencias de la computación, la quı́mica y la investigación de operaciones, entre otras. En el caso particular de las ciencias de la computación, la
teorı́a de grafos juega un papel importante en áreas tales como la teorı́a de
la conmutación y diseño lógico, la inteligencia artificial, lenguajes formales,
sistemas operativos, compiladores, telemática y análisis de algoritmos, entre
otras.
La presente lección tiene como objetivo desarrollar, con cierto grado de formalización los objetos y propiedades de la teorı́a de grafos. Antes de comenzar nuestro proceso de formalización presentamos, a manera de introducción
y motivación, el siguiente ejemplo:
Ejemplo 1.1. En varias aplicaciones de la ciencias de la computación es
conveniente modelar (representar) los algoritmos o programas de computador mediante grafos. Un ejemplo de este tipo de aplicación es el que surge
en el contexto de la generación de casos de prueba para un módulo de algún
programa. Se llega a estas pruebas mediante el análisis de la estructura de
un módulo de programa en lo tocante al flujo de control. El flujo de control
de un módulo se modela mediante un grafo de flujo. Cada vértice del grafo
de flujo representa una o más sentencias de procedimientos. Una sucesión
de sentencias de procedimientos seguida por una sentencia condicional, tal
como pueda ser una sentencia while o una sentencia case se corresponde
3
4
CAPÍTULO 1. GRAFOS
con un único nodo. Los arcos (aristas dirigidas) del grafo de flujo representan el flujo de control.
Secuencia
If − then − else
W hile
◗
♠♠♠ ◗◗◗◗◗
◗V◗◗
♠♠
◗◗◗
♠
♠
♠
◗◗(
v♠
◗♠
◗◗◗
♠♠
♠
♠
◗◗◗
♠♠♠
◗◗◗
♠♠♠
◗◗◗
♠
♠
◗( v♠♠
c
T ♠♠♠♠
Repeat − U ntil
c
F
V
V
F
Case
♠♠ ❯❯❯❯❯❯❯
❯❯❯❯
♠♠♠
♠
♠
❯❯❯❯
♠♠
♠
❯❯❯❯
♠
♠♠
❯*
♠◗
v◗
✐
◗◗◗
✐✐✐✐
✐
✐
◗◗◗
✐
◗◗◗
✐✐✐✐
◗◗◗ ✐✐✐✐✐✐
✐
( t✐
Figura 1.1: Notación de grafos de flujo para distintas estructuras
Cualquier módulo que se haya especificado en algún lenguaje de procedimientos se podrá traducir a un grafo de flujo. Por ejemplo, la figura 1.1
muestra las representaciones en forma de grafo de flujo correspondientes a
algunas estructuras familiares, que suelen estar disponibles en la mayorı́a de
los lenguajes de procedimientos. El rótulo V que aparece en algunas aristas
denota que se ejecuta la opción Verdadero, y la F denota que se ejecuta la
opción Falso.
Para evitar complejidades innecesarias, se supone que todas las condiciones
son atómicas, esto es, que no contienen operadores lógicos tales como and
y or.
Los módulos de programa contienen una secuencia de estructuras del lenguaje que proceden de un conjunto base tal como el que se da en la figura
5
procedure Loquesea(. . . )
begin
while (. . . ) do
begin
s1;
if Indicador1 = 0
then begin
s2;
s3;
s4
end
else begin
if Indicador2 = 0
then s5;
else s6;
s7
end;
end;
end ;
Figura 1.2: Esqueleto de un módulo
1.2. En la figura 1.3 aparece un ejemplo de grafo de flujo correspondiente
al esqueleto de módulo de la figura 1.2, en donde los nodos 1 y 9 denotan,
respectivamente, el nodo inicial y final del módulo. Las sentencias s1 a s7
de la figura 1.2 se consideran sentencias que no ejercen control, tales como
las sentencias de asignación.
Para poder pensar y representar formalmente el objeto que denominados
grafo, es imprescindible realizar múltiples distinciones al interior del concepto. En una primera intancia necesitamos introduccir una distinción que
nos permita pensar el grafo bien como objeto matemático o bien como objeto
geométrico.
6
CAPÍTULO 1. GRAFOS
condición
while
6
V
F
s1 , cláusula❚if
❚❚❚❚
④④
❚❚F
❚❚❚❚
④④
④
❚❚❚❚
④
④
)
V ④④
④
cláusula
④
❖if
❖❖❖
④④
❥❥❥
❥
❥
④
❖❖F❖
V
❥
❥
④
❥
❥
❖❖❖
④
❥❥
④
❥
❥
❖❖❖
④
❥
❥
④
}
❥
❥
'
s2 , s3 ,❉s4
s5 ❚t❥❚❚
s6
♥
❚
♥
❚❚❚❚
❉❉
♥♥
♥
❚❚❚❚
❉❉
♥
♥♥
❚❚❚❚
❉❉
♥♥♥
❚❚❚❚
❉❉
♥
♥
* s w♥
❉❉
❉❉
❥❥❥ 7
❥
❥
❉❉
❥
❥❥❥
❉❉
❥❥❥❥
❉❉
❥
❥
❥
!
t❥❥
fin while
~
fin procedimiento
Figura 1.3: Modelado de un módulo mediante un grafo de flujo
1.1.
Definiciones de Grafo
Antes de introducir las diferentes definiciones de una grafo, presentamos
algunas definiciones auxiliares.
Definición 1.1 (Lenguaje de la lógica de predicados). Un lenguaje de la
lógica de predicados de primer orden está definido por:
L = {{Pi , i ∈ I}, {Fj , j ∈ J}, {Ck , k ∈ K}} donde:
{Pi , i ∈ I}: Conjunto de sı́mbolos de predicado
{Fj , j ∈ J}: Conjunto de sı́mbolos de funciones
{Ck , k ∈ K}: Conjunto de sı́mbolos de constantes
Definición 1.2 (Modelo). Sea L un lenguaje de la lógica de primer orden,
un modelo para L está definido por:
U =< A, k > donde:
7
1.1. DEFINICIONES DE GRAFO
A: Conjunto no vacı́o, llamado dominio del modelo
k: Es una función biyectiva de interpretación tal que:
k-1 Cada sı́mbolo Pin , de predicado de aridez n, es interpretado por una
relación n-ádica R, es decir:
k(Pin ) = R ⇐⇒ R ⊆ An .
k-2 Cada sı́mbolo Fjm , de función de aridez m, es interpretado por una
función m-ádica, es decir:
k(Fjm ) = f ⇐⇒ f : Am → A.
k-3 Cada sı́mbolo de constante Ck es interpretado por un elemento fijo de
A, es decir:
k(Ck ) = t ⇐⇒ t ∈ A.
Definición 1.3 (Cardinalidad de modelos). Sean L un lenguaje de la lógica
=
=
de primer orden y U =< A, k > un modelo para L. U = A, es decir, el
cardinal del modelo U es el cardinal del dominio del modelo.
1.1.1.
El grafo como objeto matemático
Un grafo, en tanto objeto matemático o estructura relacional, nos obliga
a reforzar su distinción entre grafo no dirigido (o simplemente grafo) y grafo
dirigido (o simplemente digrafo).
Definición 1.4 (Digrafo: Como objeto matemático). Un digrafo G, es un
modelo de un lenguaje L = {P 2 }, donde P 2 es un sı́mbolo de predicado
de aridez dos. En otros términos, un digrafo es una estructura G = (V, R),
donde:
V : Conjunto no vacı́o cuyos elementos llamamos vértices.
R: Relación binaria definida sobre V (R ⊂ V × V ).
Cada digrafo G~ = (V, R) puede ser representado por medio de un diagrama,
en donde cada vértice v ∈ V se representa por medio de un circulo etiquetado
con el sı́mbolo v, y cada (vi , vj ) ∈ R se representa por medio de un arco del
vértice vi al vértice vj .
8
CAPÍTULO 1. GRAFOS
Ejemplo 1.2. Los siguientes objetos matemáticos son digrafos infinitos:
G~1 = (N, <)
G~2 = (Z, R), donde, R = {(x, y) | x2 ≥ y}
Ejemplo 1.3. Los siguientes objetos matemáticos son digrafos finitos:
G~1 = ({1, 2, 3, 4}, {(1, 2), (2, 3), (3, 4)}), representado por la figura 1.4.
/()*+
/ .-,
2
()*+
/.-,
1
/()*+
/ .-,
3
/()*+
/ .-,
4
Figura 1.4: Ejemplo digrafo finito (1).
G~2 = ({0, 2, 5, 7, 8}, ≥), representado por la figura 1.5.
/.-,
()*+
8L
(
/.-,
()*+
7L
& /.-,
()*+
65
"(
/.-,
()*+
8 2L
&
/()*+
0R
</ .-,
Figura 1.5: Ejemplo digrafo finito (2).
G~3 = ({v1 }), representado por la figura 1.6.
0123
7654
v1
Figura 1.6: Ejemplo digrafo finito (3).
G~4 = ({0, 1, 3, 4, 6, 8, 9}, R), donde, R(a, b) ssi a | b.
G~5 = (A, R), donde, A = {x ∈ N | x es divisor de 128} y
R(a, b) ssi (a − b) es divisor de 64.
Definición 1.5 (Lazo o bucle). Sea G = (V, R) un digrafo. La pareja ordena
(v, v) ∈ R tal que v ∈ V se denomina un lazo o bluce.
Ejemplo 1.4. Para el digrafo G~2 = ({0, 2, 5, 7, 8}, ≥) representado por la figura 1.5, las parejas ordenas (0, 0), (2, 2), (5, 5), (7, 7) y (8, , 8) pertenecientes
a la relación ≥, son lazos.
9
1.1. DEFINICIONES DE GRAFO
Aunque un grafo G = (V, R) también es un modelo de un lenguaje L = {P },
donde P es un sı́mbolo de predicado de aridez dos, la diferencia entre un
digrafo y un grafo, consiste en que este último debe satisfacer un axioma no
exigido al primero.
Definición 1.6 (Grafo: Como objeto matemático). Un grafo G = (V, R)
es un modelo de un lenguaje L = {P 2 }, tal que G satisface el axioma de
simetrı́a para la relación R, es decir,
G |= ∀x∀y((x, y) ∈ R =⇒ (y, x) ∈ R).
Cada grafo G = (V, R) puede ser representado por medio de un diagrama en
donde cada vértice v ∈ V se representa por medio de un circulo etiquetado
con el sı́mbolo v y cada par de elementos (vi , vj ), (vj , vi ) ∈ R se representan
por medio de una arista del vértice vi al vértice vj .
Ejemplo 1.5. Los siguientes objetos matemáticos son grafos (algunos infinitos, otros finitos):
G1 = (Z, R), donde, R(x, y) ssi (x = 1 + y ∨ x = y − 1).
G2 = ({A, B, C, D}, R), donde,
R = {(A, A), (A, B), (B, A), (C, D), (D, C), (A, C), (C, A), (B, D), (D, B)}.
El grafo G2 es representado por la figura 1.7.
/.-,
()*+
A
7654
0123
B
7654
0123
C
7654
0123
D
Figura 1.7: Ejemplo grafo no dirigido finito.
Nuestra definición de grafo (digrafo), como objeto matemático, no permite
representar grafos cuya estructura relacional presenta aristas (arcos) tales
como los indicados por la figura 1.8. La situación anterior hace necesario
introducir una distinción adicional que nos permita ampliar nuestra noción
de grafo, de forma tal que nos permita capturar objetos tales como el representado por la figura 1.8.
10
CAPÍTULO 1. GRAFOS
'&%$
!"#
a
()*+
/.-,
b
Figura 1.8: No grafo (como objeto matemático).
1.1.2.
El grafo como objeto geométrico
Desde el punto de vista geométrico podemos pensar un grafo como un
esquema situado en el espacio R2 y constituido por vértices y lados. Lo
denotamos por G = (V, E).
Definición 1.7 (Digrafo: Como objeto geométrico). Un digrafo, en tanto
objeto geométrico, es un esquema G~ = (V, E), representado en el espacio R2 ,
donde:
V : Conjunto no vacı́o cuyos elementos llamamos vértices.
E: Conjunto de elementos ei = (va , vb ) llamados lados.
Cada digrafo G~ = (V, E) puede ser representado por medio de un diagrama
en donde; cada vértice v ∈ V se representa por medio de un circulo etiquetado con el sı́mbolo v, y cada ei = (vi , vj ) ∈ E se representa por medio de
un arco del vértice vi al vértice vj etiquetado con el sı́mbolo e1 .
Ejemplo 1.6. El siguiente objeto es un ejemplo de un grafo dirigido:
G~1 = ({a, b, c, d, f }, {e1 , e2 , e3 , e4 , e5 , e6 , e7 }), representado por la figura 1.9,
donde:
e1 = (b, c),
e2 = (c, a),
e3 = (c, d),
e4 = (a, b),
e5 = (a, f ),
e6 = (d, b),
e7 = (f, d).
Definición 1.8 (Grafo: Como objeto geométrico). Un grafo, en tanto objeto geométrico, es un esquema G = (V, E) representado en el espacio R2 ,
donde:
V : Conjunto no vacı́o cuyos elementos llamamos vértices.
E: Conjunto de elementos ei = {va , vb } llamados lados. Se observa que los
11
1.1. DEFINICIONES DE GRAFO
e1
()*+
/.-,
&%$
c❂
@ b ◆g ◆◆♣♣♣/ '!"#
◆◆◆ ❂❂
♣
♣
e4
♣
◆
♣
◆◆ ❂❂e3
♣♣♣e2
e6 ◆◆◆❂❂
♣
♣
◆◆❂
♣♣
'&%$
!"#
/.-,
()*+
a ❂w♣❂
♣8 d
♣
♣
❂❂
e7 ♣♣♣
❂❂e5
♣♣
❂❂
♣
♣
❂ ♣♣♣
♣
0123
7654
f
Figura 1.9: Ejemplo grafo dirigido.
lados del grafo no tienen orientación. Para el caso especial en que el lado ei represente un lazo, es decir, ei = {va , va }, se seguirá la convención
matemática usual que determina que {va , va } = {va }.
Cada grafo G = (V, E) pude ser representado por medio de un diagrama en
donde, cada vértice v ∈ V se representa por medio de un circulo etiquetado
con el sı́mbolo v, y cada e = (vi , vj ) ∈ E se representa por medio de una
arista del vértice vi al vértice vj etiquetada con el sı́mbolo e.
Ejemplo 1.7. Los siguientes objetos son ejemplos de grafos.
G1 = ({5, 7, 8, 9}, {e1 , e2 , e3 , e4 , e5 }), representado por la figura 1.10, donde:
e1 = {5, 7},
e2 = {8, 5},
e3 = {7, 9},
e4 = {8, 9},
e5 = {5}.
/.-,
()*+
5
e1
e3
e2
/.-,
()*+
8
/.-,
()*+
7
e4
/.-,
()*+
9
Figura 1.10: Ejemplo grafo no dirigido (1).
12
CAPÍTULO 1. GRAFOS
G2 = ({1, 2, 3}, {e4 , e5 , e6 }), representado por la figura 1.11.
e4
/.-,
()*+
1 ❃❃
❃❃ e5 e6
❃❃
❃❃
/.-,
()*+
3
/.-,
()*+
2
Figura 1.11: Ejemplo grafo no dirigido (2).
G3 = ({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, {e1 , . . . , e9 }), representado por la figura 1.12.
()*+
/.-,
5
/.-,
()*+
7
e1
e3
()*+
/.-,
1 ❃❃
❃❃ e5 e8
❃❃
❃❃
/.-,
()*+
3
e4
e2
()*+
/.-,
8
e9
/.-,
()*+
2
/.-,
()*+
4
e7
/.-,
()*+
0
e6
/.-,
()*+
9
Figura 1.12: Ejemplo grafo no dirigido (3).
En un grafo, visto como objeto geométrico, es posible que existan al menos
dos vértices conectados por dos o más lados diferentes. En este caso se hace
necesario introducir otra distinción, llamando a tal grafo: multigrafo.
Definición 1.9 (Lados paralelos (grafos)). Sea G = (V, E) un grafo. Dos
lados son llamados paralelos si ei = {va , vb } y ej = {va , vb } para i 6= j.
Definición 1.10 (Multigrafo (grafos)). Un grafo G = (V, E) es un multigrafo si y sólo si G tiene lados paralelos.
Ejemplo 1.8. Los siguientes objetos son ejemplos de multigrafos.
G1 = ({a, b}, {e1 , e2 , e3 }), representado por la figura 1.13.
G2 = ({1, 4, a, c}, {e1 , . . . , e8 }), representado por la figura 1.14.
Los lados e2 , e3 son lados paralelos de G1 ; e1 , e2 y e4 , e5 , e6 lo son de G2 .
13
1.1. DEFINICIONES DE GRAFO
e1
'&%$
!"#
a
e3
e2
/.-,
()*+
b
Figura 1.13: Multigrafo (1).
()*+
/.-,
1
e4
e7
'&%$
!"#
c
e1 e2
e3
'&%$
!"#
a
e6
/.-,
()*+
4
e5
e8
Figura 1.14: Multigrafo (2)
No existe un consenso actual acerca de la definición de un grafo. Algunos
autores sólo los consideran desde el punto de vista geométrico o desde el punto de vista matemático. Otros autores por su parte no admiten los grafos
con lazos ni los multigrafos. Nuestro objetivo en la presentación que hemos
realizado del concepto de grafo, está el de presentar el concepto de grafo
como una estructura matemt́ica de modelamiento con la mayor capacidad
de representación posible.
Los temas siguientes serán ofrecidos para un presentación de grafo en particular (como objeto matemático o como objeto geométrico) o para alguna
clase en particular de grafo o para ambas (grafo no dirigido o grafo dirigido).
Nuestras convenciones serán las siguientes:
1. Sea G~ = (V, R) un digrafo . . .
En este caso estamos hablando de un digrafo como un objeto matemático.
2. Sea G = (V, R) un grafo . . .
En este caso estamos hablando de un grafo como un objeto matemático.
3. Sea G = (V, R) un grafo (digrafo) . . .
14
CAPÍTULO 1. GRAFOS
En este caso estamos hablando de un grafo o de un digrafo como un
objeto matemático.
4. Sea G~ = (V, E) un digrafo . . .
En este caso estamos hablando de un digrafo como un objeto geométrico.
5. Sea G = (V, E) un grafo . . .
En este caso estamos hablando de un grafo como un objeto geométrico.
6. Sea G = (V, E) un grafo (digrafo) . . .
En este caso estamos hablando de un grafo o de un digrafo como un
objeto geométrico.
1.2.
Representación de Grafos
El análisis de un grafo, mediante un computador, requiere representaciones diferentes al esquema geométrico. Veamos algunas de ellas.
1.2.1.
Matriz de adyacencia
Sea G = (V, R) un grafo (digrafo) finito. Podemos representar al grafo G
mediante una matriz booleana, llamada su matriz de adyacencia.
Definición 1.11 (Matriz de adyacencia). Sea G = (V, R) un grafo (digrafo)
finito cualquiera. Podemos asociar a G, la matriz booleana (matriz cuyos
elementos son uno o cero) M [R], llamada su matriz de adyacencia y, tal
=
que, si V = n, entonces:
M [R] = (Xi,j )n×n ⇐⇒ Xi,j =
(
1 ssi
0 ssi
(vi , vj ) ∈ R,
(vi , vj ) ∈
/ R.
Ejemplo 1.9. Dado el grafo representado en la figura 1.15, obtenemos la
matriz M [R] = (Xi,j )4×4 representada por la tabla 1.1.
Observe que los vértices han sido ordenados alfabéticamente: v1 = A, v2 =
B, v3 = C y v4 = D.
Además; X3,4 = 1, ya que (v3 , v4 ) ∈ R y X1,4 = 0, ya que (v1 , v4 ) ∈
/ R.
Ejemplo 1.10. Un fabricante para producir juguetes requiere seis pasos,
los cuales obligatoriamente deben realizarse de acuerdo al siguiente orden
parcial. Primero los procesos A o B, luego el proceso C. A continuación
15
1.2. REPRESENTACIÓN DE GRAFOS
/.-,
()*+
Ao
) 7654
0123 u
/ 7654
0123
⑦> C
⑦
⑦⑦
⑦⑦
⑦
⑦
⑦
7654
0123
DL
B
Figura 1.15: Grafo para obtener la matriz de adyacencia representada por
la tabla 1.1.
M [R]
v1
v2
v3
v4
v1
0
1
0
1
v2
1
0
1
0
v3
0
1
0
1
v4
0
1
1
1
Cuadro 1.1: Matriz de adyacencia para el grafo de la figura 1.15.
los procesos D, E o F . Modelizado por un grafo dirigido, obtenemos el
grafo G representado por la figura 1.16 (Diagrama de Hasse) y su matriz de
adyacencia M [R] representada por la tabla 1.2.
0123
7654
0123
7654
0123
7654
D `❅❅
EO
⑦? F
❅❅
⑦
⑦
❅❅
⑦⑦
❅❅
❅ ⑦⑦⑦
0123
7654
♥7 C Pg PPP
PPP
♥♥♥
♥
♥
PPP
♥
♥
♥
PPP
♥♥
♥
PP
♥
♥
♥
/.-,
()*+
0123
7654
A
B
Figura 1.16: Diagrama de Hasse.
Ejemplo 1.11. Para el grafo representado en la figura 1.17, obtenemos la
matriz M [R] = (Xi,j )6×6 representada por la tabla 1.3.
Algunas observaciones con respecto a la matriz de adyacencia
M [R]:
La matriz M [R] es una matriz booleana, lo cual permite optimizar el
espacio para almacenarla y el tiempo para manipularla.
16
CAPÍTULO 1. GRAFOS
M [R]
A
B
C
D
E
F
A
0
0
0
0
0
0
B
0
0
0
0
0
0
C
1
1
0
0
0
0
D
0
0
1
0
0
0
E
0
0
1
0
0
0
F
0
0
1
0
0
0
Cuadro 1.2: Matriz de adyacencia para el grafo de la figura 1.16.
0123
7654
0123
7654
0123
7654
D ❅❅
E
⑦F
❅❅
⑦
⑦
❅❅
⑦⑦
❅❅
❅ ⑦⑦⑦
0123
7654
♥♥ C PPPPP
♥
♥
PPP
♥♥♥
PPP
♥♥♥
PPP
♥
♥
♥
P
♥
♥
/.-,
()*+
7654
0123
A
B
Figura 1.17: Grafo para obtener la matriz de adyacencia representada por
la tabla 1.3.
La matriz M [R] permite representar lazos.
La matriz M [R] no permite representar lados paralelos (debido a que
opera sobre la definición matemática de grafo (digrafo)).
La matriz M [R] es simétrica en el caso de los grafos, por ello no es un
modo muy eficiente de representación.
La matriz M [R] no es simétrica en el caso de los digrafos.
1.2.2.
Matriz de incidencia
Si el grafo (digrafo) está definido como un esquema geométrico G =
(V, E), podemos representarlo por medio de una matriz, llamada matriz de
incidencia. Es necesario que presentemos dos definiciones para la matriz de
incidencia, una para grafos y la otra para digrafos; situación que no se presentó, como pudimos observar, en la presentación de la matriz de adyacencia.
Antes de presentar la matriz de incedencia para grafos, es necesaria la siguiente definición:
17
1.2. REPRESENTACIÓN DE GRAFOS
M [R]
A
B
C
D
E
F
A
0
0
1
0
0
0
B
0
0
1
0
0
0
C
1
1
0
1
1
1
D
0
0
1
0
0
0
E
0
0
1
0
0
0
F
0
0
1
0
0
0
Cuadro 1.3: Matriz de adyacencia para el grafo de la figura 1.17.
Definición 1.12 (Vértices incidentes). Sea G = (V, E) un grafo, si e =
{vi , vj } es un lado de G, entonces se dice que los vértices vi , vj son vértices
incidentes al lado e.
Definición 1.13 (Matriz de incidencia (grafo geométrico)). Sea G = (V, E)
un grafo finito cualquiera. Podemos asociar a G, la matriz M [E], llamada
=
=
su matriz de incidencia y, tal que, si V = n y E = m, entonces:
M [E] = (Xi,j )n×m ⇐⇒ Xi,j =
(
1 ssi
0 ssi
vi es incidente al lado ej ,
vi no es incidente al lado ej .
Ejemplo 1.12. Dado el grafo representado en la figura 1.18, obtenemos la
matriz M [E] = (Xi,j )5×7 representada por la tabla 1.4.
'&%$
!"#
a
e1
/.-,
()*+
b ❃❃
❃❃ e3
❃❃
e2
❃❃
e4
'&%$
!"#
c
e5
e7
'&%$
!"#
e
e6
/.-,
()*+
d
Figura 1.18: Grafo para obtener la matriz de incidencia representada por la
tabla 1.4.
Algunas observaciones acerca de la matriz de incidencia M [E]:
18
CAPÍTULO 1. GRAFOS
M [E]
a
b
c
d
e
e1
1
0
0
0
0
e2
1
1
0
0
0
e3
0
1
1
0
0
e4
1
0
1
0
0
e5
0
0
1
1
0
e6
0
0
0
1
1
e7
1
0
0
0
1
Cuadro 1.4: Matriz de incidencia para el grafo de la figura 1.18.
La matriz M [E] permite representar lazos.
La matriz M [E] permite representar lados paralelos.
Antes de presentar la matriz de incidencia para digrafos, necesitamos algunas
definciones adicionales.
Definición 1.14 (Extremos, vértice inicial, vértice final). Sea G~ = (V, E)
~ entonces los vértices vi , vj son
un digrafo, si e = (vi , vj ) es un lado de G,
llamados los extremos del lado e. El vértice vi es llamdo el vértice inicial del
lado e y el vértice vj es llamado el vértice final del lado e.
Definición 1.15 (Matriz de incidencia (digrafo geométrico)). Sea G~ =
~ la matriz M [E],
(V, E) un digrafo finito cualquiera. Podemos asociar a G,
=
=
llamada su matriz de incidencia y, tal que, si V = n y E = m, entonces:
M [E] = (Xi,j )n×m ⇐⇒ Xi,j


si
1
= −1 si


0
si
vi es el vértice inicial del lado ej ,
vi es el vértice final del lado ej ,
vi no es extremo del lado ej .
Ejemplo 1.13. Dado el grafo representado en la figura 1.19, obtenemos la
matriz de incidencia M [E] = (Xi,j )4×7 :
Observe que la posición Xa,e7 tiene el valor ±1, esto debido a que un lazo
tiene como extremo inicial y extremo final el mismo vértice.
19
1.3. CONECTIVIDAD
e1
/ .-,
'&%$
!"#
/()*+
aMO ^❃❃
bO
❃❃
❃❃
❃❃
❃❃ e3
e4
e5 e❃6❃
❃❃
❃❃
❃
e2
/ '!"#
&%$
/.-,
()*+
c
d
e7
Figura 1.19: Digrafo para obtener la matriz de incidencia representada por
la tabla 1.5.
M [E]
a
b
c
d
e1
1
−1
0
0
e2
0
0
−1
1
e3
0
−1
1
0
e4
−1
0
0
1
e5
−1
0
1
0
e6
0
1
0
−1
e7
±1
0
0
0
Cuadro 1.5: Matriz de incidencia para el grafo de la figura 1.19.
1.3.
1.3.1.
Conectividad
Caminos y circuitos
Inicialmente realizaremos la formalización de ciertos conceptos vinculados con la noción de conectividad, los cuales seran de importancia en los
temas subsiguientes. Comenzamos presentando las definiciones de camino y
circuito para un digrafo como objeto geométrico.
Definición 1.16 (Enlace (digrafo geométrico)). Sea G~ = (V, E) un digrafo. La relación de enlace entre dos lados de un digrafo, representada por
Ed (ei , ej ), está definida por:
Sean ei = (xi , yi ) y ej = (xj , yj ) entonces,
Ed (ei , ey ) ⇐⇒ (yi = xj ).
def.
Definición 1.17 (Camino (digrafo geométrico)). Sea G~ = (V, E) un digrafo
cualquiera. Un camino finito denotado por Π es una sucesión finita de lados
enlanzados, es decir,
20
CAPÍTULO 1. GRAFOS
Π = < s1 , s2 , . . . , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (Ed (si , si+1 ))).
Un camino finito del vértice a al vértice b denotado por Π(a, b), definido
por:
Π(a, b) =Π =
< s1 , s2 , . . . , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (Ed (si , si+1 ))) ∧
((s1 = (a, y1 ) ∧ sn = (xn , b))).
Definición 1.18 (Circuito (digrafo geométrico)). Sea G~ = (V, E) un digrafo
cualquiera. Un circuito denotado por Π(a) es un camino del vértice a al
vértice a en el cual no es posible repetir lados, es decir:
Π(a) =Π(a, a) =
< s1 , s2 , . . . , sn−1 , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (Ed (si , si+1 ))) ∧
((s1 = (a, y1 ) ∧ sn = (xn , a))) ∧
(∀i ∀j ∈ {1, 2, . . . , n} (i 6= j =⇒ si 6= sj )).
Para las definiciones de camino y circuito para el caso de los grafos como
objetos geométricos, es necesario utilizar una nueva relación de enlace entre
los lados de un grafo no dirigido.
Definición 1.19 (Enlace (grafo geométrico)). Sea G = (V, E) un grafo. La
relación de enlace entre lados de un grafo, representada por End (ei , ej ), está
definida por:
Sean ei = {xi , yi } y ej = {xj , yj } entonces,
End (ei , ey ) ⇐⇒ ((xi = xj ) ∨ (xi = yj ) ∨ (yi = xj ) ∨ (yi = yj )).
def.
1.3. CONECTIVIDAD
21
Definición 1.20 (Camino (grafo geométrico)). Sea G = (V, E) un grafo
cualquiera. Un camino finito denotado por Π es una sucesión finita de lados
enlanzados, es decir,
Sea si = xi , yi un lado, entonces:
Π = < s1 , s2 , . . . , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (End (si , si+1 ))) ∧
(∀i ∈ {1, 2, . . . , n − 1} ((xi ∈ si−1 ∧ yi ∈ si+1 ) ∨ (xi ∈ si−1 ∧ yi ∈ si+1 ))).
Un camino finito del vértice a al vértice b denotado por Π(a, b), es un camino
Π =< s1 s2 . . . sn > definido por:
Sean s1 = {a, y1 }, s2 = {x2 , y2 }, sn−1 = {xn−1 , yn−1 } y sn = {b, yn }, entonces:
Π(a, b) =Π =
< s1 , s2 , . . . , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (End (si , si+1 ))) ∧
(∀i ∈ {1, 2, . . . , n − 1} ((xi ∈ si−1 ∧ yi ∈ si+1 ) ∨ (xi ∈ si−1 ∧ yi ∈ si+1 ))) ∧
((y1 = x2 ∨ y1 = y2 ) ∧ (xn−1 = xn ∨ yn−1 = xn )).
Definición 1.21 (Circuito (grafo geométrico)). Sea G = (V, E) un grafo
cualquiera. Un circuito denotado por Π(a) es un camino del vértice a al
vértice a en el cual no es posible repetir lados, es decir:
Sean s1 = {a, y1 }, s2 = {x2 , y2 }, sn−1 = {xn−1 , yn−1 } y sn = {a, yn }, entonces:
Π(a) =Π(a, a) =
< s1 , s2 , . . . , sn−1 , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (End (si , si+1 ))) ∧
(∀i ∈ {1, 2, . . . , n − 1} ((xi ∈ si−1 ∧ yi ∈ si+1 ) ∨ (xi ∈ si−1 ∧ yi ∈ si+1 ))) ∧
((y1 = x2 ∨ y1 = y2 ) ∧ (xn−1 = xn ∨ yn−1 = xn )) ∧
(∀i ∀j ∈ {1, 2, . . . , n} (i 6= j =⇒ si 6= sj )).
22
CAPÍTULO 1. GRAFOS
Definición 1.22 (Longitud de un camino (grafo o digrafo geométrico)). Sea
G~ = (V, E) un grafo (digrafo) cualquiera y Π(a, b) =< s1 , s2 , . . . , sn−1 , sn >
un camino del vértice a al vértice b. La longitud del camino Π(a, b) denotada
por l(Π(a, b)) está definida por:
l(Π(a, b)) = l(< s1 , s2 , . . . , sn−1 , sn >)
= n.
Dado que es posible considerar todo grafo (digrafo) matemático como un
grafo (digrafo) geométrico, es posible pensar que no es necesario ofrecer las
definiciones de camino, longitud de un camino y circuito para los grafos (digrafos) como objetos matemáticos, ya que se realizaron dichas definiciones
para los grafos (digrafos) como objetos geométricos. Sin embargo como se
observará en las secciones posteriores, las definiciones y en particular algunas demostraciones relacionadas con la conectividad entre los vértices de
una grafo, son mucho mejor presentadas si se trabaja con los grafos (digrafos) como objetos matemáticos. Por esta razón presentamos las definiciones
mencionadas para los grafos (digrafos) como objetos matemáticos.
Definición 1.23 (Camino (grafo o digrafo matemático)). Sea G = (V, R) un
grafo (digrafo) cualquiera. Un camino finito denotado por Π es una sucesión
finita de vertices enlazados, es decir,
Π = < s1 , s2 , . . . , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (R(si , si+1 ))).
Aunque denotamos las sucesiones de vértices enlazados y lados enlazados
con los mismos sı́mbolos (< s1 , s2 , . . . , sn >), el contexto aclarará a cual de
ellos corresponde.
Un camino finito del vértice a al vértice b denotado por Π(a, b), es un camino
Π =< s1 , s2 , . . . , sn > definido por:
Π(a, b) =Π =
< s1 , s2 , . . . , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (R(si , si+1 ))) ∧
(a = s1 ∧ b = sn ).
1.3. CONECTIVIDAD
23
Definición 1.24 (Circuito (digrafo matemático)). Sea G~ = (V, R) un digrafo cualquiera. Como vimos en la definición de un circuito para una digrafo
como objeto geométrico, un circuito denotado por Π(a) es un camino del
vértice a al vértice a en el cual no es posible repetir lados. La sucesión que
constituye un circuito para un digrafo como objeto matemático, es un sucesión de vértices, por la tanto, la no repetición de lados se traduce en que
no se pueden repetir parejas de vértices en la sucesión, por lo que el circuito
está definido por:
Π(a) =Π(a, a)
=< s1 , s2 , . . . , sn−1 , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (R(si , si+1 ))) ∧
(a = s1 ∧ a = sn ) ∧
(∀i ∀j ∈ {1, 2, . . . , n − 1} ((i < j ∧ si = sj ) =⇒ (si+1 6= sj+i )).
Definición 1.25 (Circuito (grafo matemático)). Sea G = (V, R) un grafo
cualquiera. Como acabamos de observar, la definición de un circuito para
una digrafo como objeto matemático, no admite la existencia de parejas de
vértices repetidas en la sucesión de vértices que componen el circuito. En el
caso de una grafo, es necesario añadir que si los vértices vi , vj están contiguos
en la sucesión, no es posible admitir posteriormente la existencia de nuevo
de los vértices vj , vi contiguos en la sucesión, por la cual la definición de un
circuito está dada por:
Π(a) =Π(a, a)
=< s1 , s2 , . . . , sn−1 , sn > ∧
(∀i ∈ {1, 2, . . . , n − 1} (R(si , si+1 ))) ∧
(a = s1 ∧ a = sn ) ∧
(∀i ∀j ∈ {1, 2, . . . , n − 1} ((i < j ∧ si = sj ) =⇒ (si+1 6= sj+i )) ∧
(∀i ∀j ∈ {1, 2, . . . , n − 1} ((i < j ∧ xi = xj+1 ) =⇒ (xi+1 6= xj )).
Definición 1.26 (Longitud de un camino (grafo o digrafo matemático)).
Sea G = (V, R) un grafo (digrafo) cualquiera y Π(a, b) =< a, s2 , . . . , sn−1 , b >
un camino del vértice a al vértice b. La longitud del camino Π(a, b) denotada
por l(Π(a, b)) está definida por:
24
CAPÍTULO 1. GRAFOS
l(Π(a, b)) = l(< a, s2 , . . . , sn−1 , b >)
= n − 1.
Ejemplo 1.14. La figura 1.20, nos modeliza la estructura de un cierto tipo
de elecciones de acciones a realizar.
/.-,
()*+
AO W
0123
7654
B
/.-,
()*+
✁@ 5 ❄❄❄
✁
❄❄
✁✁
❄❄
✁✁
❄
✁
✁
/.-,
()*+
/4
/()*+
/ 7654
0123
/ .-,
CO
⑧2O
✁
⑧
✁
✁
⑧⑧
✁✁
⑧⑧
✁
⑧
✁
⑧
/.-,
()*+✁
/.-,
()*+⑧
/()*+
/ .-,
3
7
8
Figura 1.20: Grafo para seleccionar algunos caminos y circuitos sobre él.
De la figura, descubrimos caminos de longitud especificadas, e igualmente
~
circuitos sobre G.
Π1 (A, 8) =< A, 4, 5, C, 2, 7, 8 >, l(Π1 ) = 6
Π2 (A) =< A, 4, 3, A >, l(Π2 ) = 3
Π3 (C) =< C, 2, 7, C >, l(Π3 ) = 3
Π4 (B) =< B, A, B >, l(Π4 ) = 2
Π5 (3, 7) =< 3, A, 4, C, 2, 7 >, l(Π5 ) = 5
Observemos que no existe Π(5), es decir, no exite un circuito que se origine a partir del vértice 5.
1.3.2.
Relación de n-conectividad Rn
Presentamos a continuación la relación de n-conectividad sobre un digra~ esta relación nos representa los caminos de longitud n sobre el digrafo.
fo G,
Definición 1.27 (Relación de n-conectividad). Sea G~ = (V, R) un digrafo
25
1.3. CONECTIVIDAD
y n un entero positivo. Definimos en V la relación de n-conectividad denota
por Rn , como sigue:
Rn (x, y) ⇐⇒ (∃Π)(Π(x, y) ∧ l(Π) = n).
def.
~ representado por la figura
Ejemplo 1.15. Consideremos el grafo dirigido G,
1.21:
- '&%$
!"#
a
()*+
/.-,
✁@ d
✁
✁
✁✁
✁
✁✁
/ '!"#
&%$
c ❃❃
❃❃
❃❃
❃❃
!"#
'&%$
e
()*+
// .-,
b
Figura 1.21: Digrafo para obtener la relación de 2-conectividad
Observemos que:
R2 (a, c), puesto que: R(a, b) ∧ R(b, c), luego (∃Π)(Π(a, c) ∧ l(Π) = 2);
R2 (b, c), puesto que: R(b, c) ∧ R(c, d), luego (∃Π)(Π(b, d) ∧ l(Π) = 2);
R2 (a, a), puesto que: R(a, a) ∧ R(a, a), luego (∃Π)(Π(a, a) ∧ l(Π) = 2).
Es posible observar además que, R2 = {(a, a), (a, b), (a, c), (b, d), (b, e), (c, e)}.
Esta relación R2 sobre V = {a, b, c, d, e} nos define una nuevo grafo <
V, R2 >, grafo dado por los vértices y las relaciones que indican los vértices
que están conectados por caminos de longitud 2. Este nuevo grafo, para el
ejemplo, lo representamos por la figura 1.22.
- '&%$
!"#
a
/.-,
()*+
/b
'&%$
!"#
c
/ '!"#
&%$
e
/.-,
()*+
/d
Figura 1.22: Grafo definido por la relación R2 .
26
CAPÍTULO 1. GRAFOS
Para presentar algunos teoremas importantes de la teorı́a de grafos, necesitamos previamente definir algunas operaciones booleanas, operaciones que
operan sobre las matrices booleanas.
Definición 1.28 (Operaciones booleanas). Como mencionamos anteriormente, una matriz booleana es una matriz cuyos elementos son cero o uno.
Las tablas 1.6 y 1.7 definen las operaciones booleanas ⊕ y ⊗ respectivamente.
⊕
0
1
0
0
1
1
1
1
Cuadro 1.6: Operación booleana ⊕.
⊗
0
1
0
0
0
1
0
1
Cuadro 1.7: Operación booleana ⊗.
Como el lector puede observar, las operaciones ⊕ y ⊗ corresponden la disyunción (∨) y a la conjunción (∧) lógicas, respectivamente.
Sean Am×p y Bp×n dos matrices booleanas. Se define el producto booleano
de matrices A ⊙ B por:
A ⊙ B = (Xi,j )m×n
= Xi,j = (ai,1 ⊗ b1,j ) ⊕ (ai,2 ⊗ b2,j ) ⊕ · · · ⊕ (ai,p ⊗ bp,j ).
Es decir, el producto booleano de matrices es similar al producto de matrices,
excepto que se cambian las operaciones de suma y multiplicación ordinarias
por las operaciones ⊕ y ⊗ respectivamente.
27
1.3. CONECTIVIDAD
Teorema 1.1. Sea G~ = (V, R) un digrafo finito y sea G~2 = (V, R2 ) el digrafo
obtenido mediante la relación de 2-conectividad R2 , entonces:
M [R2 ] = M [R] ⊙ M [R]
Demostración. Sean M [R]n×n , Xi,j ∈ M [R2 ] Yi,k ∈ M [R] y Yk,j ∈ M [R].
Probemos que Xi,j = 1 ⇐⇒ R(vi , vk ) ∧ R(vk , vj ). Es decir, probemos que
existe un camino de longitud 2 del vértice i al vértice j si y solo si existe algun vértice k, tal que, exista un camino de longitud 1 del vértice i al vértice
k y exista un camino de longitud 1 del vértice k al vértice j. Ası́:
①
R(vi , vk ) ∧ R(vk , vj )
②
Yi,k = 1 ∧ Yk,j = 1
③
④
⑤
Yi,k ⊗ Yk,j = 1
Xi,j = (Yi,1 ⊗Y1,j )⊕· · ·⊕(Yi,k ⊗Yk,j )⊕· · ·⊕(Yi,n ⊗Yn,j ) = 1
M [R2 ] = M [R] ⊙ M [R]
Hipótesis
auxiliar
Definición
de M [R]
Podemos extender el teorema 1.1 a la relación de n-conectividad.
Teorema 1.2. Sea G~ = (V, R) un digrafo finito y sea G~n = (V, Rn ) el digrafo
obtenido mediante la relación de n-conectividad Rn , entonces para n ≥ 1:
M [Rn ] = M [R] ⊙ M [R] ⊙ · · · ⊙ M [R]
{z
}
|
n veces
Demostración. Por inducción finita:
1. Para n = 1
Como R1 = R entonces M [R1 ] = M [R]
2. Hipótesis inductiva: Supongamos para n = k válido el teorema
3. Probemos la validez del teorema para n = k + 1 (con ayuda de la
hipótesis inductiva).
Sea M [R]n×n , Xi,j ∈ M [Rk+1 ] y Zi,j ∈ M [Rk ] ⊙ M [R].
28
CAPÍTULO 1. GRAFOS
Probemos que Xi,j = 1 ⇐⇒ Zi,j = 1
①
Xi,j = 1
②
③
④
⑤
∃Π(Π(vi , vj ) ∧ l(Π) = k + 1
∃Π′ (Π′ (vi , vk ) ∧ R(vk , vj ) ∧ l(Π′ ) = k)
Rk (vi , vk ) ∧ R(vk , vj )
Yi,k = 1 ∧ Wk,j = 1,
Yi,k ∈ M [Rk ] ∧
Wk,j ∈ M [R]
Yi,k ⊗ Wk,j = 1,
Zi,j = (Yi,1 ⊗ W1,j ) ⊕ · · · ⊕ (Yi,k ⊗ Wk,j ) ⊕ · · · ⊕
(Yi,n ⊗ Yn,j ) = 1
M [Rn ] = M [R] ⊙ M [R] ⊙ · · · ⊙ M [R]
|
{z
}
⑥
⑦
⑧
Hipótesis auxiliar
n veces
Por principio
de inducción
completa
El retorno Zi,j = 1 =⇒ Xi,j = 1 es inmediato de la demostración anterior.
1.3.3.
Relación de conectividad general R∞
~ nos representa
La relación de conectividad general sobre un digrafo G,
todos los caminos posibles sobre el digrafo.
Definición 1.29 (Relación de conectividad general). Sea G~ = (V, R) un
digrafo cualquiera, definimos en V la relación de conectividad general denotada por R∞ :
R∞ (x, y) ⇐⇒ (∃Π)(Π(x, y)).
def.
Es decir, R∞ (x, y) si y sólo si existe un camino que va de x a y.
Ejemplo 1.16. Para el grafo representado por la figura 1.21 podemos observar que: R∞ = {(a, a), (a, b), (a, c), (a, d), (a, e), (b, c), (b, d), (b, e), (c, d), (c, e), (d, e)}.
=
Teorema 1.3. Sea G~ = (V, R) un digrafo tal que, V = n, entonces
R∞ = R1 ∪ R2 ∪ · · · ∪ Rn =
n
[
i=1
donde ∪ denota la unión de conjuntos.
Ri ,
29
1.3. CONECTIVIDAD
Demostración. Ejercicio.
Ejemplo 1.17. Consideremos el grafo del ejemplo 1.16, para el cual

1
0

M [R] = 
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0

0
0

1
.
1
0
Por el teorema 1.2 (o por el teorema 1.1), M [R2 ] = M [R] ⊙ M [R].

1
0

M [R2 ] = 
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
 
0
1
0
0
 

1
 ⊙ 0

0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
 
0
1
0
0
 

1
 = 0

0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0

0
1

1
.
0
0
Observemos, del ejemplo 1.15, que M [R2 ] es efectivamente la matriz de adyacencia de R2 :
Observe que si X3,5 ∈ M [R2 ] entonces X3,5 = 1, ya que,
X3,5 = (0 ∧ 0) ∨ (0 ∧ 0) ∨ (0 ∧ 1) ∨ (1 ∧ 1) ∨ (1 ∧ 0) = 1.
Igualmente X2,3 = 0 ya que,
X2,3 = (0 ∧ 0) ∨ (0 ∧ 1) ∨ (1 ∧ 0) ∨ (0 ∧ 0) ∨ (0 ∧ 0) = 0.
Para calcular R∞ por metodos matriciales usaremos la suma booleana, pero
postergamos este método, hasta una sección posterior en donde estudiaremos
un método más óptimo de realizarlo, conocido como algoritmo de Warshall.
1.3.4.
Grafos conexos
Definición 1.30 (Grafo asociado). Sea G~ = (V, R) un digrafo finito. El
grafo obtenido al eliminar las direcciones de los lados de G~ lo llamamos su
grafo (no dirigido) asociado.
30
CAPÍTULO 1. GRAFOS
Definición 1.31 (Grafo conexo). Sea G = (V, R) un grafo. G es conexo si
y sólo si, dados dos vértices diferentes cualesquiera, existe un camino entre
ellos.
G es conexo ⇐⇒ (∀va ∀vb )(va , vb ∈ V ∧ va 6= vb =⇒ R∞ (va , vb )).
def.
Definición 1.32 (Digrafo conexo). Sea G~ un grafo dirigido, G~ es conexo si
y sólo si su grafo asociado es conexo.
Ejemplo 1.18. Consideremos los grafos: G1 representado por la figura 1.23,
G~2 representado por la figura 1.24, G3 representado por la figura 1.25 y G~4
representado por la figura 1.26.
'&%$
!"#
c
'&%$
!"#
a
()*+
/.-,
b
/.-,
()*+
d
Figura 1.23: Grafo no conexo.
/()*+
/ '!"#
&%$
'&%$
!"#
/ .-,
z
a ❄_ ❄
b
⑧?
❄❄
⑧
⑧
❄❄
⑧
❄❄
⑧⑧
❄ ⑧⑧⑧
0123
7654
⑧B ❄❄❄
⑧
❄❄
⑧
❄❄
⑧⑧
⑧
❄❄
⑧
⑧

!"#
/.-,
()*+
'&%$
e
d
Figura 1.24: Grafo conexo.
Observemos que de acuerdo a nuestras definiciones los grafos G1 y G3 son no
conexos (inconexos), mientras que los grafos G~2 y G~4 son conexos.
31
1.3. CONECTIVIDAD
()*+
/.-,
1
✕✕ ✕
✕
✕✕ ✕
✕✕
✕✕ ✕
✕✕
✕✕ ✕
✕
✕✕ ✕
()*+
/.-,
3
'&%$
!"#
a
/.-,
()*+
2✮
✮✮
✮✮
✮✮
✮✮
✮✮
✮✮
✮✮
✮✮
✮✮
✮✮
/.-,
()*+
b
'&%$
!"#
c
/.-,
()*+
4
Figura 1.25: Grafo no conexo.
0123
7654
0123
7654
D
⑦B
✍
⑦
✍
⑦
⑦⑦
✍✍
⑦⑦
✍✍ ✍
⑦
7654
0123
✍
E ❅❅
✍✍
❅❅
✍
❅❅
✍
❅❅ ✍✍
✍
0123
7654
0123
7654
C
F
0123
7654
H
/.-,
()*+
J
Figura 1.26: Grafo conexo.
1.3.5.
Grafos simplemente conexos y relación de conectividad simple
Consideremos un grafo G = (V, R). Podemos definir sobre G una nueva
relación llamada relación de conectividad simple, que nos particiona el grafo
de acuerdo a las relaciones de conectividad entre sus vértices.
Definición 1.33 (Relación conectividad simple). Sea G = (V, R) un grafo, o
si G~ es dirigido su grafo asociado. Definimos en V la relación de conectividad
simple (también llamada relación de accesibilidad), denotada por RC , como
sigue:
RC (va , vb ) ⇐⇒ (va = vb )
def.
∨
R∞ (va , vb ).
Antes de probar que RC es una relación de equivalencia; es necesario introducir la noción de composición de caminos en un grafo.
Definición 1.34 (Composición de caminos). Sean Π1 (a, b), Π2 (b, d) dos caminos en un grafo G, luego
32
CAPÍTULO 1. GRAFOS
Π1 ◦ Π2 =< a, . . . , b, . . . , d > es un camino en G. Esto es,
si Π1 =< a, x1 , x2 , . . . , xn−1 , b > y Π2 =< b, y1 , y2 , . . . , ym−1 , d > es decir,
l(Π1 ) = n y l(Π2 ) = m, entonces Π1 ◦Π2 =< a, x1 , x2 , . . . , xn−1 , b, y1 , y2 , . . . , ym−1 , d >
es un camino de a hasta b, y de longitud n + m.
Teorema 1.4. La relación de conectividad simple RC , definida sobre G es
una relación de equivalencia.
Demostración. Demostremos que RC satisface los axiomas de la teorı́a de
relaciones de equivalencia.
1. Reflexividad:
Para todo v ∈ V tenemos
① v=v
② (v = v) ∨ R∞ (v, v)
③ RC (v, v)
2. Simetrı́a:
Sean v1 , v2 ∈ V tales que
① RC (v1 , v2 )
② (v1 = v2 ) ∨ R∞ (v1 , v2 )
③ (v1 = v2 ) ∨ (∃Π)(Π(v1 , v2 ))
④ (v2 = v1 ) ∨ (∃Π)(Π(v2 , v1 ))
⑤
⑥
(v2 = v1 ) ∨ R∞ (v2 , v1 )
RC (v2 , v1 )
Hipótesis auxiliar
Definición de RC
Definición de R∞
G es no dirigido, o el grafo asociado de un grafo dirigido
Definición de R∞
Definición RC
3. Transitividad:
Sean v1 , v2 , v3 ∈ V tales que RC (v1 , v2 ) ∧ RC (v2 , v3 ). De acuerdo a la
definición de la relación RC se obtiene que:
((v1 = v2 ) ∨ R∞ (v1 , v2 )) ∧ ((v2 = v3 ) ∨ R∞ (v2 , v3 )),
de donde surgen cuatro posibles casos:
a) caso
①
②
③
1
(v1 = v2 ) ∧ (v2 = v3 )
v1 = v3
RC (v1 , v3 )
Hipótesis auxiliar
Transitividad de la igualdad
Definición RC
33
1.3. CONECTIVIDAD
b) caso
①
②
③
2
(v1 = v2 ) ∧ R∞ (v2 , v3 )
R∞ (v1 , v3 ))
RC (v1 , v3 )
Hipótesis auxiliar
Por ①
Definición RC
c) caso
①
②
③
3
R∞ (v1 , v2 ) ∧ (v2 = v3 )
R∞ (v1 , v3 ))
RC (v1 , v3 )
Hipótesis auxiliar
Por ①
Definición RC
d ) caso
①
②
③
④
4
R∞ (v1 , v2 ) ∧ R∞ (v2 , v3 )
∃Π1 (v1 , v2 ) ∧ ∃Π2 (v2 , v3 )
∃(Π1 ◦ Π2 )(v1 , v3 )
RC (v1 , v3 )
Hipótesis auxiliar
Definición de R∞
Composición de caminos
Definición RC
El teorema 1.4 nos garantiza que la relación RC clasifica o particiona un
grafo G en tipos o clase de subgrafos denominados componentes simplemente
conexas. La clase módulo RC , definida por:
cl(v) = {vi ∈ V /RC (vi , v)},
representa el todos los vértices de V que están conectados con el vértice
v ∈V.
Definición 1.35 (Componente simplemente conexa). El subgrafo de G dado
por < cl(v), RC > es llamado componente simplemente conexa.
Definición 1.36 (Grafo simplemente conexo). Un grafo G es simplemente
conexo o también denominado conexo si y sólo si, G/RC (la partición de G
inducida por la relación RC ) es un conjunto unitario.
Ejemplo 1.19. Para el grafo de la figura 1.27 tenemos:
cl(1) = {1, 2, 3} = cl(2) = cl(3);
cl(0) = {0, 4, 5};
G/RC = {cl(0), cl(1)}.
Las componentes simplementes conexas son los grafos: G1 = (cl(1), RC ),
representado por la figura 1.28, y G2 = (cl(0), RC ), representado por la figura 1.29.
34
CAPÍTULO 1. GRAFOS
/.-,
()*+
1 ❃❃
❃❃
❃❃
❃❃
/.-,
()*+
2
/.-,
()*+
3
/.-,
()*+
4
/.-,
()*+
0
/.-,
()*+
5
Figura 1.27: Grafo para obtener sus componentes simplemente conexas.
/.-,
()*+
1 ❃❃
❃❃
❃❃
❃❃
/.-,
()*+
2
/.-,
()*+
3
Figura 1.28: Componente simplemente conexa (1).
1.3.6.
Grafos fuertemente conexos y relación de conectividad
fuerte
Consideremos de nuevo un grafo G = (V, R). Podemos definir sobre G
una nueva relación llamada relación de conectividad fuerte, de manera que
nos particione el grafo de acuerdo a las circuitos presentes en él.
Definición 1.37 (Relación de conectividad fuerte). Sea G = (V, R) un
grafo (digrafo) cualquiera. Definimos en G la relación de conectividad fuerte,
denotada por RF , como sigue:
RF (va , vb ) ⇐⇒ (va = vb )
def.
∨
(∃v)(∃Π)(Π(v) ∧ va , vb ∈ Π(v)).
Es decir, va = vb o existe un circuito que contiene a va y vb como vértices.
Ejemplo 1.20. Para el grafo de la figura 1.30 vemos que:
(a, b) ∈ RF , (a, d) ∈ RF , (d, a) ∈ RF , y
35
1.3. CONECTIVIDAD
/.-,
()*+
4
/.-,
()*+
0
/.-,
()*+
5
Figura 1.29: Componente simplemente conexa (2).
'&%$
!"#
a
()*+
/.-,
b
/.-,
()*+
d
()*+
/.-,
h
'&%$
!"#
c
Figura 1.30: Grafo para obtener algunas relaciones de conectividad fuerte.
(a, c) ∈
/ RF , (b, h) ∈
/ RF , (d, c) ∈
/ RF .
Además RF = {(a, a), (a, b), (a, d), (b, a), (b, b), (b, d), (c, c), (d, a), (d, b), (d, d), (h, h)}.
Teorema 1.5. Sea G = (V, R) un grafo cualquiera. La relación de conectividad fuerte RF , particiona a G en componentes o subgrafos llamados fuertemente conexos.
Demostración. Es necesario demostrar que RF es una relación de equivalencia en G. La demostración de este teorema se deja como ejercicio.
La partición enunciada por el teorema 1.5 es el conjunto cociente G/RF ,
donde, cada clase módulo RF es de la forma:
cl(v) = {vi ∈ V /(∃a ∈ V ) ∧ (∃Π(a))(v, vi ∈ Π(a))},
es decir, cl(v) = {vi ∈ V / existe un circuito Π(a) tal que, v, vi ∈ Π(a)}.
Definición 1.38 (Componente fuertemente conexa). El subgrafo de G determinado por < cl(v), RF > se denomina componente fuertemente conexa
(o sea, un tipo especı́fico de circuito del grafo G).
36
CAPÍTULO 1. GRAFOS
/.-,
()*+
'&%$
!"#
c ❃o
kO
✏✏G ❃❃❃
❃
❃❃
✏✏
❃❃
✏✏✏
/.-,
()*+
✏✏
A
✏✏✏
✏
✏✏
/.-,
()*+
'&%$
!"#
e
do
/.-,
()*+o
✁@ bO
✁
✁✁
✁✁
✁
✁✁
'&%$
!"#
a
Figura 1.31: Grafo para obtener sus componentes fuertemente conexas.
Ejemplo 1.21. Para el grafo dirigido G~ definido por la figura 1.31 tenemos:
cl(a) = {a, b};
cl(c) = {c, d, e, A, k};
~ F = {cl(a), cl(c)}.
G/R
Las componentes fuertemente conexas son los grafos: G~1 = (cl(a), RF ), representado por la figura 1.32, y G~2 = (cl(c), RF ), representado por la figura 1.33.
/.-,
()*+
?b
'&%$
!"#
a
Figura 1.32: Componente fuertemente conexa (1).
/.-,
()*+
'&%$
!"#
cG ❃o ❃
kO
✏✏✏ ❃❃❃
❃❃
❃❃
✏✏
✏✏✏
/.-,
()*+
A
✏✏
✏✏
✏
✏✏
o
'&%$
!"#
/.-,
()*+
e
d
Figura 1.33: Componente fuertemente conexa (2).
37
1.3. CONECTIVIDAD
Definición 1.39 (Grafos fuertemente conexo). Un grafo G se dice fuertemente conexo si y sólo, si la partición G/RF es un conjunto unitario.
Ejemplo 1.22. El grafo G de la figura 1.34 es un grafo fuertemente conexo.
'&%$
!"#
a
'&%$
!"#
c
/.-,
()*+
d
0123
7654
f
Figura 1.34: Grafo fuertemente conexo.
cl(A) = {A, C, D, F };
G/RF = {cl(a)}.
El grafo G del ejemplo 1.20 y el grafo G~ del ejemplo 1.21 no son fuertemente conexos.
1.3.7.
Circuito de Euler
Como mencionamos en la introducción, se afirma que la teorı́a de grafos
es una de las pocas ramas de la matemáticas que tiene un fecha de nacimiento exacta. El matemático suizo Leonard Euler (1707-1783) publicó el
primer artı́culo sobre teorı́a de grafos (1736), enunciando en este, la solución
a uno de los problemas matemáticos que hasta la fecha, no tenı́a solución,
conocido como el Problema de los puentes de Könisgberg.
La ciudad de Könisgberg (hoy llamada Kaliningrado), en Prusia Oriental,
está situada sobre las riberas y sobre dos islas del rı́o Prégel. Las distintas
partes de la ciudad se hallan conectadas por siete puentes. El Problema de
los puentes de Könisgberg consiste en: ¿Será posible salir a dar un paseo
desde algún punto de la ciudad, cruzar los siete puentes exactamente una
vez y regresar al punto de partida?
Desde la lente de la teorı́a de grafos, se puede considerar cada parte de
la ciudad como un vértice de un grafo y cada puente como un lado de dicho
grafo, tal grafo está representado por la figura 1.35.
Euler demostró que en este grafo no se puede construir lo que se denomina
38
CAPÍTULO 1. GRAFOS
/.-,
()*+
A ❅❅
❅❅
❅❅
❅❅
❅
0123
7654
0123
7654
B
⑦C
⑦
⑦⑦
⑦⑦
⑦
⑦⑦
0123
7654
D
Figura 1.35: Grafo para los puentes de Könisgberg.
actualmente un circuito de Euler. De allı́, que el recorrido de la ciudad,
pasando por cada puente una y sola una vez, y regresando al punto de
partida, no es posible.
Definición 1.40 (Circuito de Euler). Sea G =< V, E > un grafo cualquiera.
Un circuito CE se dice circuito de Euler si y sólo si CE es un circuito que
pasa por cada lado e ∈ E, una y sola una vez.
Antes de presentar un teorema que nos permite saber si en un grafo existe o
no un circuito de Euler, es necesario que presentemos algunas definiciones.
Definición 1.41 (Lado incidente). Sea G =< V, E > un grafo cualquiera.
Si e = {v1 , v2 } ∈ E, se dice que e es un lado incidente en los vértices v1 y
v2 .
Definición 1.42 (Grado o valencia de un vértice). Sea G =< V, E > un
grafo cualquiera. Sea v ∈ V un vértice de G. Llamamos grado o valencia de
v, denotado por λ(v), al número de lados incidentes en v, luego:
λ(v) = m
ssi
m es el número de lados incidentes en v.
Ejemplo 1.23. Para el grafo representado por la figura 1.36 tenemos:
/.-,
()*+
A
0123
7654
B
7654
0123
C
Figura 1.36: Grafo para obtener la valencia de sus vértices.
39
1.4. SUBGRAFOS
λ(A) = 4;
λ(B) = λ(C) = 1.
Observe que un lazo, incide dos veces sobre el vértice.
Para el grafo que esquematiza la ciudad de Könisgberg (figura 1.35) tenemos que:
λ(A) = λ(C) = λ(D) = 3 y
λ(B) = 5.
Presentamos sin demostración el teorema que nos permite determinar si
existe un circuito de Euler en un grafo G.
Teorema 1.6. Un grafo G tiene un circuito de Euler ssi es conexo y todos
sus vértices tienen valencia par.
Ejemplo 1.24. El grafo representado por la figura 1.37 es conexo y todos
sus vértices tiene valencia par, entonces tiene un circuito de Euler. El circuito
de Euler está dado por: CE =< v1 , v2 , v3 , v1 >.
/ 0123
7654
0123
7654
v
v1 ❇`
❇❇
⑤ 2
⑤
❇❇
⑤
❇❇
⑤⑤
❇❇ ⑤⑤⑤
⑤
~
7654
0123
v3
Figura 1.37: Grafo con un circuito de Euler
De acuerdo al ejemplo 1.23 el grafo que esquematiza la ciudad de Könisgberg
(figura 1.35) no tiene un circuito de Euler porque todos sus vértices tienen
valencia impar.
1.4.
Subgrafos
Definición 1.43 (Subgrafo). Sean G = (V, R) y G ′ = (V ′ , R′ ) dos grafos
(digrafos) cualquiera. Decimos que el grafo G ′ es un subgrafo del grafo G ssi
(V ′ ⊆ V ) ∧ (R′ ⊆ R).
40
CAPÍTULO 1. GRAFOS
Sean G = (V, E) y G ′ = (V ′ , E ′ ) dos grafos (digrafos) cualquiera. Decimos
que el grafo G ′ es un subgrafo del grafo G ssi (V ′ ⊆ V ) ∧ (E ′ ⊆ E).
Ejemplo 1.25. El grafo representado por la figura 1.39 es un subgrafo del
grafo representado por la figura 1.38.
'&%$
!"#
a
✡ ✹✹✹
✡
✡
✹✹
✡✡
✹✹
✡
✡ ()*+
✹
/.-,
✡
1
❃❃ ✹✹
✡
✡
❃
❃❃ ✹✹✹
✡✡
❃❃ ✹✹
✡
❃ ✹
✡✡
✡
()*+
/.-,
()*+
✡ /.-,
2
3 ❄❄✹✹✹
✡
⑧
✡
❄❄✹✹
✡ ⑧⑧⑧
❄❄✹✹
✡
⑧
✡⑧
❄❄✹
✡
⑧
✡
0123
7654⑧
0123
7654
B
C
Figura 1.38: Grafo del cual se obtuvo el subgrafo de la figura 1.39.
/.-,
()*+
2
/.-,
()*+
1 ❃❃
❃❃
❃❃
❃❃
/.-,
()*+
3
Figura 1.39: Subfrafo del grafo de la figura 1.38.
1.5.
Cerraduras
Sea G =< V, R > un grafo (digrafo). Si R no posee las propiedades de
algún tipo de relación (en particular reflexividad, simetrı́a y transitividad),
es deseable adicionar a R las parejas ordenadas que hacen falta para poseer
la propiedad en cuestión. Naturalmente se desea adicionar tan pocas parejas
ordenadas como sea posible, es decir, se necesita encontrar la más pequeña
relación R′ ⊂ V × V que contenga a R y que posea la propiedad deseada.
R′ es llamada la cerradura (o clausura) de R con respecto a la propiedad en
cuestión.
Suponemos en está sección ya conocidas por el lector las propiedades de
las relaciones binarias.
41
1.5. CERRADURAS
Definición 1.44 (Relación identidad). Sea G =< V, R > un grafo (digrafo).
La relación de identidad, denotada por Ri , está definida por:
Ri = {(v, v)/v ∈ V }.
Definición 1.45 (Relación inversa). Sea G =< V, R > un grafo (digrafo).
La relación inversa de R, denotada por R−1 , está definida por:
R−1 = {(vj , vi )/(vi , vj ) ∈ R}.
Definición 1.46 (Cerradura reflexiva de R). La cerradura reflexiva de R,
denotada por Re , es la relación definida por:
Re = R ∪ Ri ,
es decir, es la relación que resulta de poner unos en la diagonal principal
de la matriz de adyacencia M [R] del grafo G (es añadir los bucles o lazos
necesarios hasta que todos los vértices estén conectados a si mismos con un
bucle).
El grafo (digrafo) resultante G e =< V, Re > es el cierre reflexivo del grafo
(digrafo) G =< V, R >, es decir G e es el menor grafo (digrafo) reflexivo que
contiene a G como subgrafo.
Definición 1.47 (Cerradura simétrica de R). La cerradura simétrica de R,
denotada por R←→ , es la relación definida por:
R←→ = R ∪ R− 1.
El grafo resultante G ←→ =< V, R←→ > es el cierre simétrico del grafo (digrafo) G =< V, R >, es decir, G ←→ es el menor grafo simétrico que contiene
a G como subgrafo.
Ejemplo 1.26. Para el grafo representado por la figura 1.40 tenemos:
R = {(1, 1), (1, 3), (2, 3), (2, 4), (3, 5), (4, 5)}.
Ri (identidad) = {(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)}.
R−1 (inversa) = {(2, 1), (3, 1), (3, 2), (4, 2), (5, 3), (5, 4)}.
42
CAPÍTULO 1. GRAFOS
/.-,
()*+
2
/.-,
()*+
1 ❃❃
❃❃
❃❃
❃❃
/.-,
()*+
/3
/.-,
()*+
4
/()*+
/ .-,
5
Figura 1.40: Grafo para obtener las relaciones Ri , Re , R←→ y R+ .
Re (cerradura reflexiva) = R ∪ Ri =.
{(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (1, 2), (1, 3), (2, 3), (2, 4), (3, 5)(4, 5)}.
R←→ (cerradura simétrica) = R ∪ R−1 =
{(1, 2), (1, 3), (2, 3), (2, 4), (3, 5)(4, 5), (2, 1), (3, 1), (3, 2), (4, 2), (5, 3), (5, 4)}.
Definición 1.48 (Cerradura transitiva de R (definición 1)). Sea G =<
V, R > un grafo (digrafo) cualquiera. El cierre transitivo de G, denotado por
G + =< V, R+ >, está definido por la menor relación R+ sobre V que sea
transitiva y que contenga a R como subgrafo, es decir:
1. R+ es transitiva.
2. R ⊆ R+ .
3. S transitiva y R ⊆ S =⇒ R+ ⊆ S.
Teorema 1.7. Sea G = (V, R) un grafo (digrafo), G es transitivo si y sólo
si, Rn ⊆ R.
Demostración. =⇒
Probemos que se cumple para todo n ≥ 1.
43
1.5. CERRADURAS
①
②
③
④
⑤
⑥
⑦
⑧
⑨
Sea (x, y) ∈ Rn
G es transitivo
∃Π(Π(x, y) ∧ l(Π) = n)
Sea Π =< x, x2 , . . . , xn−1 , y >
∧
(∀i
∈
{1, 2, . . . , n −
1} (R(xi , xi+1 )))
(∀i ∈ {1, 2, . . . , n − 1} (R(xi , xi+1 )))
R(x, x1 )∧R(x1 , x2 )∧· · ·∧R(xn−1 , y)
R(x, y)
Luego (x, y) ∈ R
Rn ⊂ R
Hipótesis auxiliar
Hipótesis
Por ①
Definición de caminio
Simplificación de ④
Expansión de ⑤
Por ② (R es transitiva)
Por ⑦
La demostración reciproca se deja como ejercicio.
Teorema 1.8. Sea G = (V, R) un grafo (digrafo) cualquiera, entonces R+ =
R∞ . Es decir, la clausura transitiva es igual a la relación de conectividad
general sobre G = (V, R).
Demostración.
1. R∞
①
②
③
④
es una relación transiva
(x, y) ∈ R∞ ∧ (y, z) ∈ R∞
(∃Π1 )(Π1 (x, y)) ∧ (∃Π2 )(Π2 (y, z))
(∃Π3 )(Π3 = Π1 ◦ Π2 ∧ Π3 (x, z))
R∞ (x, z)
Hipótesis auxiliar
Por ①
Por ②
Por ③
2. R ⊆ R∞ . Por definición de R∞ .
3. R∞
①
②
③
④
⑤
⑥
⑦
es la menor relación que contiene a R y es transitiva
Sea S una relación transitiva
Hipótesis auxiliar
R⊆S
Hipótesis auxiliar
R∞ ⊆ S ∞
Todo camino en R, es
un camino en S
Sn ⊂ S
Teorema 1.7
SV=
Por ④
n=1 Sn ⊆ S
=
S
S ∞ ⊆ S, S ∞ = Vn=1 Sn
Teorema 1.3
R∞ ⊆ S
Por ③ y ⑥
Luego R∞ es la menor relación transitiva que contiene a R y, por ende,
R+ = R∞ . Ası́: G + =< V, R∞ >.
44
CAPÍTULO 1. GRAFOS
Con base en el teorema anterior podemos ofrecer una definición alternativa
para la cerradaura transitiva.
Definición 1.49 (Cerradura transitiva de R (definición 2)). La cerradura
transivita de R, denotada por R+ , es la relación definida por:
R+ =
V
[
Rn ,
n≥1
donde Rn es la relación de n-conectividad.
Es decir, el cierre transitivo del grafo (digrafo) G =< V, R > es el grafo
(digrafo) transitivo G + =< V, R+ >, donde R+ es el menor conjunto de parejas ordenadas que se obtienen de tomar los extremos de todos los caminos
(sin importar su longitud).
Intuitivamente es claro que si G =< V, R > es un grafo transitivo y si
existe un camino de longitud n > 1 de vi a vj , entonces existe un camino de
longitud n = 1 de vi a vj , es decir, R(vi , vj ).
Existe un procedimiento mecánico llamado algoritmo de Warshall para el
cálculo de la cerradura transitiva de un grafo. Este algoritmo lo presentaremos en una próxima sección.
Ejemplo 1.27. Para el grafo representado por la figura 1.40 tenemos:
R = {(1, 1), (1, 3), (2, 3), (2, 4), (3, 5), (4, 5)}.
R1 = R.
R2 = R ⊙ R = {(1, 3), (1, 4), (1, 5), (2, 5)}.
R3 = R ⊙ R2 = {(1, 5)}.
R4 = R ⊙ R3 = ∅.
R5 = R ⊙ R4 = ∅.
R+ (cerradura transitiva) =
SV
n≥1 Rn
= R ∪ R2 ∪ R3 ∪ R4 ∪ R5 =
45
1.6. ISOMORFISMO DE GRAFOS
{(1, 2), (1, 3), (2, 3), (2, 4), (3, 5)(4, 5), (1, 3), (1, 4), (1, 5), (2, 5), (1, 5)}.
1.6.
Isomorfismo de Grafos
Sabemos que la relación de isomorfismo es un relación entre estructuras
cuya función esencial es reconocer y clasificar aquellas que son estructuralmente identicas. Igualmente sabemos que toda propiedad o fórmula que
satisfaga una estructura debe satisfacer la la otra. Tales propiedades las
denominamos invariantes.
Definición 1.50 (Isomorfismo de grafos). Sean G = (V, R) y G ′ = (V ′ , R′ )
dos grafos (digrafos). Decimos que G es isomorfo a G ′ si y sólo si, existe una
función biyectiva φ: V → V ′ , tal que:
(v1 , v2 ) ∈ R ⇒ (ψ(v1 ), ψ(v2 )) ∈ R′ ;
para todo v1 , v2 ∈ V .
La función ψ: V → V ′ se denomina isomorfismo de grafos. Escribimos ψ:
G ⋍ G ′ para indicar que G es isomorfo a G ′ .
Ejemplo 1.28. Los grafos G1 = (V1 , R1 ) y G2 = (V2 , R2 ), representados por
las figuras 1.41 y 1.42 respectivamente, son isomorfos.
=
=
G1 ⋍ G2 , ya que, V1 = V2 = 4; además podemos definir la función ψ: V1 → V2
tal que ψ(1) = 2, ψ(2) = b, ψ(3) = c y ψ(4) = d. Entonces, (1, 2) ∈ R1 y
(ψ(1), ψ(2)) ∈ R2 ; (1, 4) ∈ R1 y (ψ(1), ψ(4)) ∈ R2 ; igualmente para las
parejas restantes.
/.-,
()*+
/.-,
()*+
1 ❃❃
2
❃❃
❃❃
❃❃
/.-,
()*+
/.-,
()*+
3
4
Figura 1.41: G1 isomorfo al grafo de la figura 1.42.
Teorema 1.9. Dos grafos G1 y G2 son isomorfos si y sólo, si para algún
orden establecido sobre sus vértices y lados las matrices de incidencia son
iguales.
46
CAPÍTULO 1. GRAFOS
'&%$
!"#
/.-,
()*+
a ❂❂
b
❂❂ ✁✁✁
✁❂✁❂
✁✁ ❂❂
✁
✁
/.-,
()*+
'&%$
!"#
c
d
Figura 1.42: G2 isomorfo al grafo de la figura 1.41.
En el trabajo con grafos, un aspecto importante es el concerniente con la
determinación de grafos que no son isomorfos. Aunque existen algoritmos
que pueden determinar en buena medida si dos pares de grafos son isomorfos,
una forma de determinar que no lo son consiste en buscar una invariante
que no se preserve (por ejemplo: número de lados, grado o valencia de los
vértices, longitudes de caminos, etc.)
Ejemplo 1.29. Los grafos G1 y G2 , representados por las figuras 1.43 y 1.44
respectivamente, no son isomorfos puesto que G1 tiene siete lados y G2 tiene
ocho lados.
'&%$
!"#
a
/.-,
()*+
b
'&%$
!"#
e
'&%$
!"#
c
/.-,
()*+
d
Figura 1.43: G1 no isomorfo al grafo de la figura 1.44.
()*+
/.-,
0
()*+
/.-,
1
()*+
/.-,
2
()*+
/.-,
3
/.-,
()*+
4
Figura 1.44: G2 no isomorfo al grafo de la figura 1.43.
47
1.7. ALGORITMO DE WARSHALL
Ejemplo 1.30. Los grafos Ga y Gb , representados por las figuras 1.45 y 1.46
respectivamente, no son isomorfos.
El vértice b en Ga es adyacente a dos vértices, luego le podriamos asociar
el vértice 6 de Gb . Igualmente el vértice q de Ga se podria corresponder con
el el vértice 1 de Gb . En Ga no existen más vértices de grado dos, y en Gb
existe todavı́a el vértice 3. Luego no podriamos construir una biyección que
preserve las adyacencias.
/.-,
()*+
'&%$
!"#
a
d❂
✏ ❂❂❂
✁✁
✁
✏
❂❂
✁✁
✏✏
❂❂
✁✁
✏
✁
✏
✁
✏
/.-,
()*+
/.-,
()*+
q
b ❃❃
✏✏
❃❃
✏
✏
❃❃
❃❃ ✏✏
✏
'&%$
!"#
'&%$
!"#
c
e
Figura 1.45: Ga no isomorfo al grafo de la figura 1.46.
/.-,
()*+
()*+
/.-,
2 ❃❃
1 ❃❃
❃❃
❃❃
❃❃
❃❃
❃❃
❃❃
/.-,
()*+
()*+
/.-,
5
4 ❃❃
❃❃
❃❃
❃❃
/.-,
()*+
6
/.-,
()*+
3
Figura 1.46: Gb no isomorfo al grafo de la figura 1.45.
1.7.
Algoritmo de Warshall
Nos proponemos en esta sección fundamentar el algoritmo ideado por
Warshall para calcular de forma efectiva la clausura transitiva R+ = R∞
(por el teorema 1.8).
Definición 1.51 (Vértice interior). Sea G =< V, R > un grafo (digrafo) y
Π =< a, a1 , a2 , . . . , b > un camino. Los vértices diferentes de los extremos a
y b los denominamos vértices interiores.
48
CAPÍTULO 1. GRAFOS
Inicialmente es necesario construir una sucesión finita de matrices M0 , M1 , . . . Mn
tal que M0 = M [R] y Mn = M [R∞ ].
La matriz Mk , para 0 < k ≤ n se construye como sigue:
aki,j = 1, expresa que existe un 1 en la posición de la fila i-ésima y de la
columna j-ésima de la matriz Mk .
aki,j = 1 ssi
∃Π(Π =< vi x1 x2 . . . xp vj > ∧ x1 , x2 , . . . , xp ∈ {v1 , v2 , . . . vk }.
Es decir los vértices interiores del camino Π son de indice menor o igual que
k, ordenando y diferenciando los vértices del camino por indices.
=
Como V = n y k ≤ n entonces se ve que Mn = M [R∞ ] porque cualquier
camino debe tener como vértices interiores el conjunto V = {v1 , v2 , . . . , vn }.
Teorema 1.10. Para la sucesión de matrices M0 = M [R], M1 , . . . Mk =
k = w k−1 ⊕ (w k−1 ⊗ w k−1 )
M [R∞ ], si 0 ≤ i, j, k ≤ n entonces wi,j
i,j
k,j
i,k
Demostración. =⇒
k = 1 ssi w k−1 = 1 ó w k−1 = w k−1 = 1.
Demostremos que wi,j
i,j
i,k
k,j
k = 1.
① wi,j
Hipótesis
② (∃Π(Π =< vi , x1 , x2 , . . . , xp , vj )) ∧ {x1 , x2 , . . . , xp } ⊂ {v1 , v2 , . . . , vk }.
③ Supongamos que respecto al subı́ndice los vértices xi son diferentes.
④ Puede ocurrir que vk sea o no vértice interior de Π.
a) Si vk ∈
/ {x1 , x2 , . . . , xp } entonces p ≤ k − 1 y
k−1
b) wi,j
= 1.
⑤ Si vk ∈ {x1 , x2 , . . . , xp }, entonces, sean
a) Π1 (vi , vk ) y Π2 (vk , vj ), luego
b) los vértices interiores xi son tales que i ≤ k − 1.
k−1
k−1
c) Luego wi,k
= 1 y wk,j
= 1.
k−1
k−1
d ) wi,k
∧ wk,j
= 1.
49
1.7. ALGORITMO DE WARSHALL
k−1
k−1
k−1
e) Luego wi,j
= 1 ∨ (wi,k
= 1 ∧ wi,j
= 1).
Demostración. ⇐=
k−1
k−1
k−1
= 1 ∧ wi,j
= 1).
① wi,j
= 1 ∨ (wi,k
Hipótesis
② Es inmediato que en cualquiera de las dos condiciones se cumple que
k = 1, ya que los indices de los vértices interiores no superan a
wi,j
(k − 1), luego tampoco a k.
Ejemplo 1.31. Sea G~ = (V, R) el grafo de la figura 1.47
()*+
/.-,
1h
(
/.-,
()*+
2
/()*+
/ .-,
3
/.-,
()*+
4
Figura 1.47: Grapo para aplicar el algoritmo de Warshall.
Como n = 4

0
1
M [R] = 
0
0
1
0
0
0
0
1
0
0

0
0

1
0
Sea M0 = M [R]
Para hallar M1 :
Transferimos todos los unos de M0 a M1


1
1
1 

M1 = 

1
Para localizar los nuevos unos aplicamos el teorema anterior, como k = 1,
50
CAPÍTULO 1. GRAFOS
buscamos los lugares (columnas (i, k) y filas (k, j)) donde existe unos en la
matriz M0 .
Como k = 1, vemos que a12,1 y a11,2 = 1 luego a12,2 = 1, ası́:

0
1
M1 = 
0
0
1
1
0
0
0
1
0
0

0
0

1
0
Para hallar M2 :
Como k = 2 escribimos a11,2 = a12,1 = 1 y a11,2 = a12,3 = 1, luego a21,1 = 1 y
a21,3 = 1. Transportando los unos ya existentes en M1

1
1
M2 = 
0
0
1
1
0
0
1
1
0
0

0
0

1
0
Para hallar M3 (procediendo de forma similar):
Como k = 3, existen unos en a21,3 y a23,4 , luego en a31,4 = 1; existen unos en
a22,3 y a23,4 , luego en a32,4 = 1

1
1
M3 = 
0
0
1
1
0
0
1
1
0
0

1
1

1
0
Finalmente, para k = 4, puesto que no hay unos en la cuarta fila de M3 ,
entonces no existen nuevos unos en M4 , ası́ que M3 = M [R∞ ].
En la figura1.48 presentamos esquematizado el algoritmo de Warshall.
1.8.
Árboles y Arborescencias
En esta sección presentaremos aspectos básicos de un cierto tipo de grafo
que llamaremos árbol. Los árboles y arborescencias son herramientas importantes para el diseño de problemas, máquinas abstractas y lenguajes.
1.8. ÁRBOLES Y ARBORESCENCIAS
51
Warshall(M [R])
{
cerradura = M[R];
FOR k = 1 TO n
FOR j = 1 TO n
FOR i = 1 TO n
cerradura[i][j] = cerradura[i][j] ∨
(cerradura[i][k] ∧ cerradura[k][j]);
}
Figura 1.48: Algoritmo de Warshall.
Presentaremos, en primera instancia, la noción de árbol libre o arborescencia.
Definición 1.52 (Árbol libre o Arborescencia). Un árbol o libre o arborescencia es un grafo T = (V, R) tal que
1. T es antirreflexivo, es decir, no existen bucles en T . Simbólicamente,
∀x(x ∈ V ⇒ ¬R(x, x)).
2. Para todo par de vértices existe un y śolo un camino en el cual no se
repiten lados. Simbólicamente,
∀x∀y(x, y ∈ V ⇒ ∃!Π(Π(x, y) ∨ Π(y, x))).
Ejemplo 1.32. El grafo de la figura 1.49 representa geométricamente a un
árbol libre.
Definición 1.53 (Árboles con raı́z). Un árbol con raı́z, T = (V, R), es un
digrafo con un vértice distinguido v0 ∈ V tal que, para todo v 6= v0 existe
un único camino de v0 hasta v. Es decir,
∀v(v ∈ V ∧ v 6= v0 ⇒ ∃!Π(Π(v0 , v))).
Representaremos el árbol con raı́z, por medio de la estructura T = (V, R, v0 )
donde v0 representa la raı́z del árbol.
52
CAPÍTULO 1. GRAFOS
'&%$
!"#
a
'&%$
!"#
c ❃❃
❃❃
❃❃
❃❃
/.-,
()*+
✁b
✁
✁✁
✁✁
✁
✁
/.-,
()*+
d
()*+
/.-,
m
'&%$
!"#
e
()*+
/.-,
g
Figura 1.49: Árbol libre.
r
v4
④ ❈❈❈
❈❈
④④
④
❈❈
④④
❈!
④
④
}
v1 ❇
v2
v3
❇❇
⑤
⑤
❇
❇❇
⑤⑤
❇❇
⑤⑤
~⑤
⑤
v5
Figura 1.50: Árbol con raı́z (1).
Ejemplo 1.33. Los grafos de las figuras 1.50 y 1.51 son ejemplos de árboles
con raı́z.
Teorema 1.11. Sea T = (V, R, v0 ) un árbol con raı́z finito, entonces:
1. T es conexo.
2. T no tiene circuitos.
3. Todo vértice v 6= v0 tiene una y sólo una entrada.
=
4. T tiene n − 1 lados, donde V = n.
Demostración.
1. T es
①
②
③
④
conexo.
T es árbol
Sea T ′ el grafo asociado de T
∃!Π(v0 , v), para todo v ∈ V
T es conexo
Hipótesis
T es un digrafo
Definición de árbol
1.8. ÁRBOLES Y ARBORESCENCIAS
@ABC
GFED
= 100
③
③
③
③③
③③
③
③
0123
7654
10
G✏ ❉❉❉
❉❉
✏✏
❉❉
❉❉
✏✏✏
!
@ABC
GFED
✏✏✏
101
✏
✏✏✏
✏
✏✏
/.-,
()*+
1✳
✳✳
✳✳
✳✳
✳✳
@ABC
GFED
110
✳✳
③=
✳✳
③
③
✳✳
③③
✳ ③③③
③
0123
7654
11❉❉
❉❉
❉❉
❉❉
❉!
@ABC
GFED
111
Figura 1.51: Árbol con raı́z (2).
2. T no tiene circuitos (demostración indirecta).
① (∃v ∈ V )((∃Π1 )(Π1 (v)))
Hipótesis indirecta
② (∃!Π2 )(Π2 (v0 , v))
Definición de árbol, v 6= v0
③ (Π2 ◦ Π1 )(v0 , v)
Composición de caminos
④ Π2 ◦ Π1 6= Π2
Contradicción
⑤ Luego, no hay circuitos
3. Todo vértice v 6= v0 tiene una y sólo una entrada.
a) Todo vértice tiene una entrada.
① Sea v 6= v0 un vértice cualquiera.
② ∃Π(Π =< v0 , v1 , . . . , vk , v > ∧(R(vo , v1 ) ∧ · · · ∧ R(vk , v))).
③ R(vk , v).
④ vk es una entrada en v.
b) Unicidad.
53
54
CAPÍTULO 1. GRAFOS
②
③
③
Supongamos que x1 6= x2 6= v0 son dos
entradas de v
R(x1 , v) ∧ R(x2 , v)
∃Π1 (Π1 (vo , x1 )) ∧ ∃Π2 (Π2 (vo , x2 ))
Π1 ◦ (x1 , v) =< v0 , . . . , x1 , v >
④
Π2 ◦ (x2 , v) =< v0 , . . . , x2 , v >
⑤
⑥
Luego, existen dos caminos de v0 a v
Entonces la entrada en v es única
①
Hipótesis auxiliar
Parte (a)
T es un árbol
Composición
de caminos
Composición
de caminos
Contradicción
=
4. T tiene n − 1 lados, donde V = n. Demostración por inducción sobre
n.
a) n = 1. Luego existe un vértice y cero lados (n − 1).
b) Supongamos que para n = k existen (k − 1) lados.
=
c) Probemos que es válido para n = k + 1 o sea V = k + 1.
① T es conexo y sin circuitos.
② Sea Π un camino de longitud máxima (T es un árbol finito).
③ (∃x ∈ V )((x ∈ Π) ∧ δ(x) = 1).
④ Sea T1 =< V − {x}, R, v0 >. Entonces V − {x} = k.
⑤ Como T1 = k entonces T1 tiene (k − 1) lados (hipótesis inductiva).
⑥ Luego T tiene (k − 1) + 1 lados. Es decir T tiene k lados y
(k + 1) vértices.
=
d ) Luego, si V = n por principio de inducción finita, T tiene (n − 1)
lados.
En la teorı́a de árboles es de suma importancia la noción de árbol de ramificación finita y el teorema de Köning, pero antes de presentar la definición de
árbol de ramificación finita, necesitamos contar con la definición de sucesor
inmediato.
Definición 1.54 (Sucesor inmediato). Sea G = (V, R) un grafo *digrafo).
Un vértice vj , es un sucesor inmediato del vérice vi , ssi (vi , vj ) ∈ R. El
55
1.8. ÁRBOLES Y ARBORESCENCIAS
conjunto de sucesores inmediatos de un vértice vi , denotado por S(vi ), está
definido por:
S(vi ) = {v ∈ V | (vi , v) ∈ R}.
Definición 1.55 (Árbol de ramificación infinita). Sea T = (V, R) un árbol
con raı́z. T es un árbol de ramificación finita si y sólo, todo vértice v ∈ V
tiene un número finito de sucesores inmediatos.
Ejemplo 1.34. Sea T = ({0, 1}∗ , L), donde:
{0, 1}∗ : Conjunto de sucesiones finitas de ceros y unos, incluyendo la sucesión
vacı́a.
L: Orden lexicográfico sobre {0, 1}∗ .
El árbol de ramificación finita T = ({0, 1}∗ , L) es representado por la figura
1.52.
00
✂
✂✂
✂
✂✂
..
.. ✂ ✂
.
.
♥♥ Λ PPPPP
PPP
♥♥♥
♥
♥
PPP
♥
♥
♥
PPP
♥♥
♥
P'
♥
♥
w
0 ❅❅
1❅
❅❅
⑦⑦
⑦⑦ ❅❅❅
⑦
⑦
❅❅
❅❅
⑦
⑦
❅❅
❅❅
⑦⑦
⑦⑦
⑦⑦
⑦⑦
01
✁✁
✁✁
✁
✁✁
..
.. ✁✁
.
.
10
..
.
..
.
11
✁✁
✁✁
✁
✁✁
..
.. ✁✁
.
.
Figura 1.52: Árbol de ramificación finita.
Presentamos ahora un teorema muy importante conocido como el teorema
de König.
Teorema 1.12 (Teorema de Köning). Sea T un árbol infinito (conjunto de
vértices infinito) de ramificación finita, entonces T tiene un camino infinito.
Antes de demostrar el teorema de Köning analicemos intuitivamente la necesidad o suficiencia de sus hipótesis. Las hipótesis del teorema de Köning
son:
H-1 El árbol T = (V, R) es infinito.
56
CAPÍTULO 1. GRAFOS
H-2 El árbol T = (V, R) es de ramificación finita.
Ejemplo 1.35. El árbol del ejemplo 1.34 (figura 1.52) satisface la hipótesis
H1 y la hipóteis H2. Es posible “observar” en la figura la existencia de por
lo menos un camino de longitud infinita.
Ejemplo 1.36. El árbol T = (V, R) representado por la figura 1.53 satisface
la hipótesis H1 pero no satisface la hipóteis H2. Es posible “observar” en la
figura que no existe ningún camino de longitud infinita.
◗◗◗
♠♠ r ❉
♠♠③♠③③③ ❉❉❉◗❉◗◗◗◗
♠
♠
❉❉ ◗◗◗◗
♠♠ ③
◗◗◗
❉!
♠♠♠ }③③③
◗(
v ♠♠
♠
v1
v2
vn
. . .
...
Figura 1.53: Árbol sin camino de longitud infinita (1).
Ejemplo 1.37. El árbol T = (V, R) representado por la figura 1.54 no
satisface la hipótesis H1 pero si satisface la hipóteis H2. De nuevo es posible
“observar” en la figura que no existe ningún camino de longitud infinita.
v1
r❈
④④ ❈❈❈
④
❈❈
④
❈❈
④④
④
}④
!
v2
v3
Figura 1.54: Árbol sin camino de longitud infinita (2).
Demostración. Procedamos a demostrar el teorema de Köning
① Desde r (raı́z) salen infinitos caminos de longitud finita (H1).
② S(r) (sucesores inmediatos de r)= {a1 , a2 , . . . , an } es finito (H2).
③ Existe por lo menos un vértice ai ∈ S(r) tal que ai genera infinitos
caminos de longitud finita. De no ser ası́, sólo habrı́a un número finito
de caminos que parten desde r.
④ Sea b1 ∈ V tal vértice.
⑤ b1 tiene un número finito de sucesores inmediatos y
1.9. EJERCICIOS
57
⑥ de uno de ellos parten infinitos caminos de longitud finita.
⑦ Sea b2 ∈ V tal vértice. Sucesivamente podemos formar la sucesión
b1 , b2 , . . . , bn .
⑧ Podemos garantizar por inducción sobre n ∈ Z+ que de bn se sigue
bn+1 , sucesor inmediato de bn y
⑨ que de cada nuevo bn , parten infinitos caminos de longitud finita.
⑩ Luego < b1 , b2 , . . . , bn , bn+1 , · · · > es un camino de longitud infinita.
Pensemos ahora en la validez del inverso del teorema de Köning es decir
pensemos si en un árbol T = (V, R) existe un camino de longitud infinita,
entonces T = (V, R) es un árbol infinito y es un árbol de ramificación finita.
Como contraejemplo presentamos el siguiente árbol:
Ejemplo 1.38. El árbol T = (N+ , R) donde R = {(x, y) | y = xp con p primo}
tiene un camino de longitud infinita definido por Π =< 20 , 21 , 22 , . . . , 2n , · · · >.
Este árbol satisface la hipótesis H1, pero no satisface la hipótesis H2, es decir, el árbol es un árbol de ramificación no finita.
1.9.
Ejercicios
Ejercicio 1.1. Explique por qué la definición matemática de grafo (digrafo)
no permite que éstos contengan lados paralelos.
Ejercicio 1.2. Siete ciudades a, b, c, d, e, f y g están conectadas por un sistema de autopistas como sigue: (1) I − 22 va de a a c, pasando por b; (2)
I − 33 va de c a d y entonces pasa por b y continúa hacia f ; (3) I − 44 va de
d por e hacia a; (4) I −55 va de f a b, pasando por g; y (5) I −66 va de g a d.
Use los vértices para las ciudades y los arcos para los tramos de autopista
que las unen, y dibuje un grafo dirigido que modele esta situación.
Ejercicio 1.3. Dado el conjunto A y la relación R:
a. Determine el tipo de grafo matemático definido por la relación R.
b. Determine la cardinalidad del grafo.
58
CAPÍTULO 1. GRAFOS
c. Construya (si es posible) su diagrama.
d. Construya (si es posible) la matriz de adyacencia para el grafo.
1. A = {a, b, c, d}, R = {(a, a), (a, b), (c, d), (d, c)}.
2. A = {a, b, c, d}, R = {(a, a), (a, b), (b, a), (c, d), (d, c)}. .
3. A = {0, 1, 2, 3, 4}, R = {(x, y) | x = y}. .
4. A = {0, 1, 3, 4, 6, 8, 9}, R(a, b) ⇔ a | b. .
5. A = N, R(a, b) ⇔ a | b. .
6. A = N, R =≤. .
7. A = {x ∈ N | x es divisor de 128}, R(a, b) ⇔ (a − b) es divisor de 64. .
Ejercicio 1.4. Para los siguientes diagramas:
a. Determine el tipo de grafo geométrico representado por el diagrama.
b. Construya la matriz de incidencia para el grafo.
'&%$
!"#
a
'&%$
!"#
ah
e1
e2
e1
e2
/.-,
()*+
b
'&%$
!"#
a
(
/.-,
()*+
b
'&%$
!"#
a
e1
e2
e1
e2
(
/.-,
()*+
6b
(
/.-,
()*+
b
Ejercicio 1.5.
Otra forma de representar un digrafo es por medio de su diccionario de precedentes y siguientes.
Sea G~ = (V, R) un digrafo. El vértice vi es un vértice precedente de vj
si (vi , vj ) ∈ R. El conjunto de vértices precedentes de un vértice, denotado
por P (vj ), está definido por: P (vj ) = {v ∈ V (v, vj ) ∈ R}. El vértice vj es un
vértice siguiente de vi si (vi , vj ) ∈ R. El conjunto de vértices siguientes de un
59
1.9. EJERCICIOS
vértice, denotado por S(vi ), está definido por: S(vi ) = {v ∈ V (vi , v) ∈ R}.
=
~ V = n) está definido
El diccionario de precedentes y siguientes del grafo G(
por:
V
v1
..
.
P (V )
P (v1 )
..
.
S(V )
S(v1 )
..
.
vn
P (vn )
S(vn )
Sea G~ = (V, R) un grafo, donde:
V = {1, 2, 3, 4, 5, 6, 7, 8, 9} y
R = {(x, y) | x es divisor de y}.
~
Construya el diccionario de siguientes y precedentes de G.
Ejercicio 1.6. Para los grafos 1, 2, 2, 4 y 7 del ejercicio 1.3; hallar:
1. Ri (relación identidad).
2. R−1 (relación inversa).
3. R2 (relación de 2-conectividad).
4. R3 (relación de 3-conectividad).
5. Re (cerradura reflexiva).
6. R←→ (cerradura simétrica).
7. R+ (cerradura transitiva).
Ejercicio 1.7. Para el grafo G~ representado por la figura:
/.-,
()*+
@2
/ .-,
/()*+
3V
()*+
/.-,
1 ❃o ❃
❃❃
❃❃
❃❃
/.-,
()*+
6
/.-,
()*+
@4
/.-,
()*+
5
60
CAPÍTULO 1. GRAFOS
1. Liste todos los caminos de longitud 1.
2. Liste todos los caminos de longitud 2 comenzando en el vértice 2.
3. Liste todos los caminos de longitud 3 comenzando en el vértice 3.
4. Encuentre un circuito que comienze en el vértice 2.
5. Encuentre un circuito que comienze en el vértice 6.
6. Liste todos los caminos de longitud 2.
7. Liste todos los caminos de longitud 3.
~ R2 >.
8. Dibuje el diagrama de < G,
~ R2 >.
9. Halle la matriz de adyacencia para < G,
10. Encuentre R∞ .
~ R∞ >.
11. Halle la matriz de adyacencia para < G,
Ejercicio 1.8. Para el grafo G~ representado por la figura:
c W ❖❖❖
7 !"#
♦'&%$
❖❖❖
♦♦♦
♦
♦
❖❖❖
♦
♦
♦
❖❖❖
♦
♦
♦
❖❖'
♦
♦
'&%$
!"#
/.-,
()*+
'&%$
!"#
a ❁❁
e
d
❂
^
❁❁
✁✁
✂✂ ❂❂❂
✁
✂
❁❁
❂❂
✁✁
✂✂
❁❁
❂❂ ✁✁✁
❁ ✂✂✂
✁
0123
7/ 654
/.-,
()*+
f
bL
1. Liste todos los caminos de longitud 1.
2. Liste todos los caminos de longitud 2 comenzando en el vértice c.
3. Liste todos los caminos de longitud 3 comenzando en el vértice a.
4. Encuentre un circuito que comienze en el vértice c.
5. Encuentre un circuito que comienze en el vértice d.
6. Liste todos los caminos de longitud 2.
7. Liste todos los caminos de longitud 3.
61
1.9. EJERCICIOS
~ R2 >.
8. Dibuje el diagrama de < G,
~ R2 >.
9. Halle la matriz de adyacencia para < G,
10. Encuentre R∞ .
~ R∞ >.
11. Halle la matriz de adyacencia para < G,
Ejercicio 1.9. Sean R y S relaciones sobre un conjunto G. Demuestre que
M [R ∪ S] = M [R] ⊕ M [S].
Ejercicio 1.10. Sean R una relación sobre un conjunto G de n elementos.
Demuestre que M [RC ] = M [R∞ ] ⊕ In , donde In es la matriz identidad de
n × n.
Ejercicio 1.11. Para el grafo G~ representado por la figura:
/.-,
()*+
/2
/()*+
/ @.-,
3
()*+
/.-,
/.-,
()*+
/4
7 ❃^ ❃
O
❃❃
❃❃
❃❃
/.-,
()*+
6
/.-,
()*+
35
()*+
/.-,
1
1. Si Π1 =< 1, 2, 4, 3 > y Π2 =< 3, 5, 6, 4 >. Encuentre la composición
de caminos Π1 ◦ Π2 .
2. Si Π1 =< 1, 7, 5 > y Π2 =< 5, 6, 7, 4, 3 >. Encuentre la composición
de caminos Π1 ◦ Π2 .
Ejercicio 1.12. Demuestre el teorema 1.3.
Ejercicio 1.13. Para el grafo G~ representado por la figura:
()*+
/.-,
1o
/.-,
()*+
3H N a
/.-,
()*+
2
()*+
/.-,
4L
' /.-,
()*+
5L
62
CAPÍTULO 1. GRAFOS
1. Halle RC .
2. Halle las clases módulo RC .
3. Determinar las componentes simplemente conexas.
4. ¿Es G~ un grafo simplemente conexo?
Ejercicio 1.14. Para el grafo G~ representado por la figura:
/.-,
()*+
/.-,
()*+
/@4
/.-,
()*+
/ 3❃
()*+
/.-,
/ 2❃
1 ❃^ ❃
❃❃
❃❃
❃❃
❃❃
❃❃
❃❃
❃❃
❃❃
❃
❃ ❃
❃
()*+
/.-,
/.-,
()*+
/.-,
()*+
/.-,
()*+
5
6
7o
8
1. Halle RF .
2. Halle las clases módulo RF .
3. Determinar las componentes fuertemente conexas.
4. ¿Es G~ un grafo fuertemente conexo?
Ejercicio 1.15. Demuestre el teorema 1.5.
Ejercicio 1.16. Demuestre que si una relación R es reflexiva y transitivita,
entonces Rn = R para toda n.
Ejercicio 1.17. Demostrar la segunda parte del teorema 1.7.
Ejercicio 1.18. Sea G = (V, E) un grafo. G se dice plano si y sólo si, se
puede trazar su diagrama en un mismo plano con sus aristas intersectandose
únicamente en los vértices.
Sea V 6= ∅ un conjunto finito de vértices. Podemos definir sobre V una
relación tal que genere un grafo no dirigido, sin lazos y tal que dos vértices
cualesquiera esten conectados o relacionados. Tal grafo denotado por Cn si
V = n, se denomina grafo completo en V .
Construya los grafos completos C1 , C2 , C3 , C4 y C5 y determine cuales de
ellos, son grafos planos.
63
1.10. NOTAS BIBLIOGRÁFICAS
Ejercicio 1.19. Para el árbol libre T representado por la figura:
/.-,
()*+
3
()*+
/.-,
1
()*+
/.-,
6
/.-,
()*+
2 ❃❃
❃❃
❃❃
❃❃
/.-,
()*+
4
()*+
/.-,
7 ❃❃
❃❃
❃❃
❃❃
/.-,
()*+
8
/.-,
()*+
5
/.-,
()*+
6
1. El v́ertice 1 se toma como la raı́z. ¿Cuáles son los hijos del vértice 2?
¿Los ancestros del vértice 2?. ¿Los descendientes del vértice 2?
2. El v́ertice 5 se toma como la raı́z. ¿Cuáles son los hijos del vértice 2?
¿Los ancestros del vértice 2?. ¿Los descendientes del vértice 2?
3. El v́ertice 1 se toma como la raı́z. ¿Cuáles es el nivel de cada vértice
del árbol? ¿Cuál es la altura del árbol?
4. El v́ertice 5 se toma como la raı́z. ¿Cuáles es el nivel de cada vértice
del árbol? ¿Cuál es la altura del árbol?
Ejercicio 1.20. Trace el árbol que muestre que los resultados posibles de
“pase el equipo que gane tres de cinco juegos” en las eliminatorias de baloncesto.
Ejercicio 1.21. Trace el árbol que muestre que los resultados posibles de
un partido de tennis modificado en el que el vencedor es quien “gana tres
de cinco”, en el que para ganar el partido es necesario ganar dos juegos
consecutivos o tres juegos de cinco.
Ejercicio 1.22. Trace un esquema del árbol presentado en el ejemplo 1.38.
1.10.
Notas Bibliográficas
Las definiciones de lenguaje de primer orden, modelo de un lenguaje de
primer orden y cardinalidad de un modelo fueron tomadas de [9]. El ejemplo
64
CAPÍTULO 1. GRAFOS
1.1 presentado en la introducción, fue tomado de [5]. Algunos autores presentan los grafos (digrafos) únicamente como objetos geométricos [7]; otros,
únicamente presentan los digrafos como objetos matemáticos [8]; otros, únicamente presentan los grafos como objetos matemáticos y otros, presentan
los grafos como objetos mátematicos y geométricos [3]; por otra parte, algunos autores ([4], [5]) ofrecen definiciones diferentes para el concepto de
grafo (digrafo) geométrico, en las que además del conjunto de vértices y el
conjunto de lados, existe una función con caracterı́ticas especiales. El concepto de multigrafo es presentado por [3] y [1]. La matriz de adyacencia
es presentada por [7] y [8]; la matriz de incidencia es presentada por [7];
algunos autores ([10], [11]) realizan una representación de los grafos desde
un punto de vista más informático, utilizando para ello, listas entrelazadas,
entre otros elementos. El circuito de Euler es presentado por [7] y [1], estos
autores presentan además un tipo de circuito, conocido como circuito de
Hamilton, el cuál presenta interes debido al tipo de complejidad algorı́tmica
de su implementación. La relación de n-conectividad y la relación de conectividad general son presentadas por [8]; la relación de conectividad simple, la
relación de conectividad fuerte, las componentes simplemente conexas y las
componentes fuertemente conexas son presentadas por [3]. Las cerraduras
son presentadas por [8] y [3]. Los isomorfismos entre grafos son presentados
por [4], [6] y [1]. El algortimo de Warshall es presentado por [8]. Los árboles
y arborescencias son presentados por [8], [5] y [7]; el teorema de Köning es
presentado por [2].
Bibliografı́a
[1] Kenneth P. Bogart. Matemáticas Discretas. Editorial Limusa S.A. de
C.V., 1996.
[2] Xavier Caicedo. Elementos de Lógica y Calculabilidad. Una empresa
docente. Universidad de los Andes, 2 edition, 1990.
[3] Decoroso Crespo. Informática teórica. Primera parte. Departamento
de Publicaciones de la Facultad de Informática. Universidad Politécnica
de Madrid, 1983.
[4] Narsing Deo. Graph Theory with Application to Engineering and Computer Science. Prentice-Hall, Inc., 1974.
[5] Karl Grassman and Jean-Paul Tremblay. Matemáticas Discretas y Lógica: Una Perspectiva desde la Ciencia de la Computación. Prentice Hall,
1997.
[6] Ralph P. Grimaldi. Matemáticas Discreta y Combinatoria. AddisonWesley Iberoamericana, 3 edition, 1997.
[7] Richard Johnsonbaugh. Matemáticas Discretas. México D.F.: Grupo
Editorial Iberoamérica, S.A., 1988.
[8] Bernard Kolman and Robert Busby. Discrete Mathematical Structures
for Computer Sciencs. Prentice-Hall Inc., 1984.
[9] León López López and Rául Gómez Marı́n. Matemáticas Básicas para
la Informática. Volumen I. Universidad EAFIT, 1993.
[10] James A. McHuhg. Algorithmic Graph Theory. Prentice Hall, Inc.,
1990.
[11] Jean-Paul Tremblay and Ram Manohar. Matemáticas Discretas. Compañı́a Editorial Continental, S.A. (CECSA), 1996.
65
Descargar