Matematicas Discretas

También podría gustarte

Está en la página 1de 387

Matem aticas discretas

Favio E. Miranda
Elisa Viso G.
Facultad de Ciencias, UNAM

Indice general
I L ogica Matem atica 1
1. Introducci on 3
1.1. Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Mecanismos formales para descripci on de expresiones . . . . . . . . . . . 6
1.3. Gram aticas y arboles de derivaci on . . . . . . . . . . . . . . . . . . . . . . 10
2. L ogica proposicional 19
2.1. El lenguaje de la l ogica proposicional . . . . . . . . . . . . . . . . . . . . 19
2.1.1. Argumentos l ogicos . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2. Proposiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.3. Sintaxis de la l ogica proposicional . . . . . . . . . . . . . . . . . . 24
2.1.4. Sem antica de la l ogica proposicional . . . . . . . . . . . . . . . . . 26
2.1.5. Tautologas y contradicciones . . . . . . . . . . . . . . . . . . . . 35
2.1.6. Argumentos correctos . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2. Evaluaci on de expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.1. Estados y evaluaci on . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.2. Precedencia y asociatividad . . . . . . . . . . . . . . . . . . . . . 44
2.2.3. Sustituci on textual . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3. An alisis sint actico de expresiones l ogicas . . . . . . . . . . . . . . . . . . 50
2.3.1. Esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.3.2. Rango y conectivo principal . . . . . . . . . . . . . . . . . . . . . 53
2.3.3. An alisis de proposiciones compuestas . . . . . . . . . . . . . . . . 55
2.3.4. Tautologas y sustituci on . . . . . . . . . . . . . . . . . . . . . . . 57
2.4. Equivalencia l ogica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.4.1. Razonamiento ecuacional . . . . . . . . . . . . . . . . . . . . . . 63
2.4.2.

Algebra de equivalencias l ogicas . . . . . . . . . . . . . . . . . . . 68
2.5. Conceptos sem anticos importantes . . . . . . . . . . . . . . . . . . . . . . 74
2.5.1. Interpretaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.5.2. Consecuencia l ogica . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.6. An alisis de argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.6.1. Tablas de Verdad . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.6.2. Uso de interpretaciones . . . . . . . . . . . . . . . . . . . . . . . . 82
2.6.3. Derivaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.7. Tableaux en c alculo proposicional . . . . . . . . . . . . . . . . . . . . . . 98
2.7.1. El concepto de tableau . . . . . . . . . . . . . . . . . . . . . . . . 98
2.7.2. Eliminaci on de ramas del tableau . . . . . . . . . . . . . . . . . . 103
2.7.3. Reglas para los tableaux . . . . . . . . . . . . . . . . . . . . . . . 105
2.7.4. Modelo de una f ormula . . . . . . . . . . . . . . . . . . . . . . . . 107
2.7.5. Algoritmos para la l ogica proposicional . . . . . . . . . . . . . . . 108
3. L ogica de predicados 113
3.1. Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.1.1. Predicados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.1.2. Variables y cuanticadores . . . . . . . . . . . . . . . . . . . . . . 116
3.2. Sintaxis de la l ogica de predicados . . . . . . . . . . . . . . . . . . . . . . 118
3.2.1. T erminos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.2.2. F ormulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.2.3. F ormulas cuanticadas . . . . . . . . . . . . . . . . . . . . . . . . 121
3.2.4. Variables libres y ligadas . . . . . . . . . . . . . . . . . . . . . . . 123
3.3. Especicaci on formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.3.1. Juicios aristot elicos . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.3.2. Negaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.3.3. Contando objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.3.4. Micromundos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.4. Sem antica informal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
3.4.1. Dominios de interpretaci on . . . . . . . . . . . . . . . . . . . . . . 139
3.4.2. Noci on informal de verdad . . . . . . . . . . . . . . . . . . . . . . 142
3.4.3. Verdad en micromundos . . . . . . . . . . . . . . . . . . . . . . . 144
3.4.4. Algunas equivalencias l ogicas . . . . . . . . . . . . . . . . . . . . 147
3.4.5. Algunos argumentos correctos . . . . . . . . . . . . . . . . . . . . 155
3.5. Predicados y tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
II Inducci on y recursi on 161
4. Inducci on y recursi on 163
4.1. Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
4.2. Los n umeros naturales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
4.2.1. Axiomas de Peano . . . . . . . . . . . . . . . . . . . . . . . . . . 165
4.3. Inducci on en los n umeros naturales . . . . . . . . . . . . . . . . . . . . . . 166
4.3.1. Cambio de la base de la inducci on . . . . . . . . . . . . . . . . . . 170
4.3.2. Inducci on completa . . . . . . . . . . . . . . . . . . . . . . . . . . 172
4.4. Deniciones recursivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
4.4.1. Denici on de funciones recursivas . . . . . . . . . . . . . . . . . . 181
4.5. Inducci on estructural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
4.5.1. Inducci on en listas . . . . . . . . . . . . . . . . . . . . . . . . . . 187
4.5.2. Inducci on en f ormulas . . . . . . . . . . . . . . . . . . . . . . . . 190
4.5.3. Inducci on en arboles . . . . . . . . . . . . . . . . . . . . . . . . . 192
III Teora de Gr acas 199
5. Conceptos de teora de gr acas 201
5.1. Motivaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
5.1.1. Tiempo para completar un proyecto . . . . . . . . . . . . . . . . . 203
5.1.2. Asignaci on optima de recursos . . . . . . . . . . . . . . . . . . . . 210
5.2. Conceptos y formalizaci on . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.3. Representaci on de gr acas para su manipulaci on . . . . . . . . . . . . . . 228
5.3.1. Matriz de adyacencias . . . . . . . . . . . . . . . . . . . . . . . . 228
5.3.2. Matriz de incidencias . . . . . . . . . . . . . . . . . . . . . . . . . 230
5.3.3. Listas de adyacencias . . . . . . . . . . . . . . . . . . . . . . . . . 231
5.3.4. Listas de incidencias . . . . . . . . . . . . . . . . . . . . . . . . . 233
5.4. Isomorsmo entre gr acas . . . . . . . . . . . . . . . . . . . . . . . . . . 236
6. Exploraci on en gr acas 243
6.1. Circuitos eulerianos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
6.2. Trayectorias hamiltonianas . . . . . . . . . . . . . . . . . . . . . . . . . . 261
6.3. Distancias en una gr aca . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
6.4. Trayectorias m as cortas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
6.5. N umero de caminos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
6.5.1. Matrices de adyacencias . . . . . . . . . . . . . . . . . . . . . . . 284
6.5.2. Colof on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
7. Modelado con gr acas 295
7.1. Coloraci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
8.

Arboles 311
8.1. Caracterizaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
8.2.

Arboles generadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
8.3. B usqueda en profundidad (DFS) . . . . . . . . . . . . . . . . . . . . . . . 322
8.4.

Arboles generadores de peso mnimo . . . . . . . . . . . . . . . . . . . . . 328
8.4.1. Algoritmo de Prim para arboles de peso mnimo . . . . . . . . . . 329
8.4.2. Algoritmo de Kruskal para arboles de peso mnimo . . . . . . . . . 346
9. Multigr acas y gr acas dirigidas 353
9.1. Multigr acas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
9.2. Gr acas dirigidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
9.3. Circuitos eulerianos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
9.4. Distancias en una gr aca dirigida . . . . . . . . . . . . . . . . . . . . . . . 366
9.4.1. BFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
9.4.2. Algoritmo de Dijkstra para trayectorias dirigidas m as cortas . . . . 367
9.4.3. N umero de caminos . . . . . . . . . . . . . . . . . . . . . . . . . 368
9.4.4.

Arboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369

Indice 375
Parte I
L ogica Matem atica
Introducci on
1
El libro est a dividido fundamentalmente en tres partes: L ogica Matem atica, Inducci on
y Recursi on, y Teora de Gr acas . De la inducci on y recursi on tal vez no hemos odo
pero de l ogica y gr acas s, cuando por ejemplo hemos hecho gr acas desde la secundaria
(aunque esta interpretaci on de gr acas no es la que vamos a atacar en este curso) y el
t ermino l ogica lo usamos de manera bastante liberal en nuestra vida diaria en frases como
las que siguen:
No es l ogico lo que est as diciendo.
No entiendo la l ogica de este asunto.
Presentas un argumento que no es coherente.
Es falso lo que est as suponiendo.
Todos nosotros sabemos que existe m as precisi on cuando estamos en el terreno ma-
tem atico que cuando estamos hablando de experiencias de la vida com un. Realmente, en
el lenguaje natural
1
dejamos mucho a la subjetividad de los hablantes y al contexto que se
supone conocen ambos. Decimos que este tipo de lenguaje es informal mientras que el len-
guaje que se usa en matem aticas o los lenguajes de programaci on son lenguajes formales.
Distinguimos entre un objeto informal y uno formal porque este ultimo est a claramente
denido y especicado por un conjunto de reglas. Uno de los atractivos del formalismo es
el poder expresar ideas de forma concreta, breve y precisa. Pero no nada m as nos interesan
estos aspectos del formalismo sino su aplicaci on, la cual nos obliga a formalizar nuevas
1
Llamaremos as al lenguaje que habla cualquier ser humano, en nuestro caso el espa nol.
4 Introducci on
ideas o experiencias y, en este proceso, precisar y encontrar contradicciones que pudieran
causar mucho da no, como en el caso de un programa de computadora que pudiese contener
ambig uedades.
Si nos referimos a un objeto de manera formal, podemos construir un modelo de ese
objeto. Algunas de las ventajas de los modelos matem aticosson las siguientes:
Un modelo matem atico es, por lo general, m as preciso, entendible, conciso y riguroso
que una descripci on informal escrita en lenguaje natural.
A trav es de un modelo matem atico podemos calcular directamente respuestas a pro-
blemas sobre el objeto modelado.
Las matem aticas, y en particular la l ogica, nos proporcionan m etodos de razona-
miento: para manipular objetos, para demostrar propiedades de y sobre objetos, y
para obtener resultados nuevos a partir de resultados ya conocidos, lo cual genera
una extensi on del conocimiento.
Este ultimo punto es, tal vez, uno de los aspectos m as importantes de los modelos ma-
tem aticos, que tiene una enorme utilidad en ciencias de la computaci on: tener la seguridad
cientca de que algo funciona como esperamos; poder extender las posibilidades de una
computadora, un lenguaje de programaci on o un algoritmo para usos distintos que para los
que fue creado; en n, para poder continuar con el impresionante desarrollo que han tenido
las ciencias de la computaci on en este siglo.
1.1. Expresiones
La l ogica, y en particular la l ogica matem atica, juega un papel muy importante en el
desarrollo de las matem aticas en general y de las ciencias de la computaci on en particular.
En el ambito de las ciencias de la computaci on es importante poder distinguir entre argu-
mentos v alidos o inv alidos, es decir, entre aquellos que son s olidos l ogicamente hablando
y los que no lo son.
La l ogica presenta ciertos elementos de estudio que no son tan distintos a los que esta-
mos acostumbrados en matem aticas. Durante muchos a nos hemos manipulado expresiones
num ericas con inc ognitas, es decir, ecuaciones con variables y constantes, para obtener un
resultado nal. Mientras que en el algebra estamos trabajando con n umeros fundamental-
mente, en l ogica trabajamos con proposiciones l ogicas o simplemente proposiciones. Al
igual que en algebra, utilizamos variables (smbolos que nos sirven para representar a los
objetos elementales), constantes (true, false) y operadores, que tambi en son smbolos pero
con un signicado especial.
Cuando tenemos una expresi on aritm etica hablamos de los operadores y operandos,
entendiendo a los operadores como operaciones que se tienen que realizar, utilizando para
1.2 Mecanismos formales para descripci on de expresiones 5
ello a los operandos. Los operadores pueden ser unarios, cuando utilizan o act uan sobre
un unico operando; binarios cuando act uan sobre dos operandos y, en general, n-arios
2
cuando act uan sobre n operandos. Entre los operadores unarios aritm eticos que conocemos
est a el signo de menos y en algunas ocasiones tambi en podemos considerar el signo de
m as + (nos tendremos que poner de acuerdo antes de empezar a cu al aceptamos y a cu al
no). Entre los operadores binarios podemos mencionar a la multiplicaci on (que la podemos
representar con , o con como se acostumbra en los lenguajes de programaci on),
la divisi on ( , / ). Un ejemplo de operador ternario puede ser entre(a, b, c) que decide
cu al de los tres n umeros a, b, c se encuentra entre los otros dos o el operador races(a, b, c)
que devuelve las races del polinomio cuadr atico ax
2
+bx + c.
Hay tres estilos para escribir expresiones, los cuales se distinguen por c omo se coloca al
operador en relaci on a sus operandos. Si el operador es unario o n-ario unicamente tenemos
dos opciones:
Notaci on preja: El operador se coloca antes del operando
a (+ a b c)
Notaci on suja o polaca: El operador se coloca despu es del operando
a (a b )
apuntador en Pascal
Si el operador es binario, adem as de estas dos formas tenemos la que es m as usual:
Notaci on inja: Es aquella donde el operador se encuentra entre sus operandos.
a + b 3 (7 + 5)
Las diferencias entre estas tres notaciones no son nada m as de forma, pues cada una de
ellas tiene propiedades particulares que veremos despu es. Por lo pronto, trabajaremos con
la notaci on inja que, como ya mencionamos, es la m as usual.
Estas maneras de escribir expresiones tienen que ver con su sintaxis, t ermino que se
reere a la forma que deben tener las cadenas de letras y smbolos para que caliquen
como expresiones bien construidas. A un no hemos hablado del signicado de una expre-
si on, aunque pronto lo haremos. Los aspectos relacionados con el signicado conforman la
sem antica de las expresiones.
2
Se lee enario.
6 Introducci on
1.2. Mecanismos formales para descripci on de expresiones
Cuando describimos una expresi on aritm etica podemos hacerlo de varias maneras. Una
de ellas es dando tantos ejemplos como podamos y dejando al lector que encuentre patrones
que describan al mayor n umero posible de expresiones. Es claro que con este m etodo no
vamos a poder describir a todas las expresiones aritm eticas posibles, ya que tenemos un
n umero innito de ellas. Una segunda manera es dando reglas para construir expresiones
aritm eticas correctas. Estas reglas de formaci on pertenecen, queremos insistir, a la sintaxis
de las expresiones aritm eticas.
A continuaci on formalizamos reglas para construir expresiones aritm eticas sencillas,
para posteriormente contrastar con lo que es una expresi on l ogica:
Denici on 1.1 Una expresi on aritm etica es alguna de las que siguen:
1. Un objeto elemental: un n umero (una constante ) o una variable .
2. Si E es una expresi on aritm etica, (E) es una expresi on aritm etica.
3. Si es un operador unario y E es una expresi on aritm etica, entonces E
es una expresi on aritm etica.
4. Si es un operador binario injo y E y F son dos expresiones aritm eticas,
entonces E F es una expresi on aritm etica.
5. Si es un operador n-ario y E
1
, E
2
, . . . , E
n
son expresiones aritm eticas, en-
tonces (E
1
, E
2
, . . . , E
n
) es una expresi on aritm etica.
6.

Estas y s olo estas son expresiones aritm eticas v alidas.
A primera vista esta denici on parece incorrecta pues en algunas partes se utiliza el
mismo concepto de expresi on que se est a deniendo. Esta clases de deniciones, llamadas
deniciones recursivas, son omnipresentes en ciencias de la computaci on. M as adelante
las estudiaremos con detalle. Estamos suponiendo que sabemos cu ales son los operado-
res unarios: + (positivo), (negativo); cu ales los binarios: (resta), + (suma), , ,
(multiplicaci on), , (, exponenciaci on); y conocemos algunos n-arios: f(x
1
, x
2
, . . .),
max(. . .), min(. . .) . . ..
Veamos a continuaci on algunos ejemplos de construcci on de expresiones aritm eticas
enfatizando su proceso de construcci on.
Ejemplo 1.1. Cada uno de los siguientes es un objeto elemental:
a i x 3.0 1
1.2 Mecanismos formales para descripci on de expresiones 7
Por lo tanto tambi en son expresiones aritm eticas.
Ejemplo 1.2. Consid erese los siguientes operadores unarios, que representan el signo de un n umero
en aritm etica: + y :
17 reemplaza y 17 es una expresi on, por ser un n umero.
+a + reemplaza a y a es una expresi on, por ser una variable.
Podemos tambi en ir encerrando en cuadrados contenidos uno dentro del otro, con una
anotaci on de la regla a la que corresponden, a las distintas expresiones que conforman la
expresi on original. Cada rect angulo encierra a una expresi on.Veamos a continuaci on:
1
17
3

1
a
3
+
Ejemplo 1.3. Consid erese los operadores binarios y .
a (2 b) y son operadores binarios; a y (2 b) son expresiones.
a + (b) + es un operador binario; a y (b) son expresiones.
a
2 b
( )
1 1 1
4

2
4
a + (
b
)
1 1
3
2
4
8 Introducci on
Ejemplo 1.4. Supongamos que tenemos dos operadores, m ax y mnn.
m ax(a b, a + (b), a b) m ax es un operador n-ario con n = 3; a b es una expre-
si on; a + (b) es una expresi on. a b es una expresi on.
a b , a + ( b m ax( ) , a b )
1 1 1 1 1 1
3
2
4
4 4
5
mn(1, m ax(a + b, a b, 3)) mn es un operador n-ario con n = 2, es decir, binario; 1
es una expresi on; m ax(a + b, a b, 3) es una expresi on.
mn( ) 1 a + b , , a b , 3
1 1 1 1 1 1
4 4
5
Ejemplo 1.5. La expresi on (a + (b c)) es una expresi on aritm etica porque:
Como b y c son expresiones, por ser variables y es un operador binario, entonces
b c es una expresi on.
Como b c es una expresi on, entonces (b c) es una expresi on.
Como a y (b c) son expresiones y + es un operador binario entonces a + (b c) es
una expresi on.
Como a + (b c) es una expresi on, entonces (a + (b c)) es una expresi on.
Como (a + (b c)) es una expresi on y es un operador unario, entonces
(a + (b c)) es una expresi on.
( a + ( b c ) )
1 1 1
4
2
4
2
3
1.3 Gram aticas y arboles de derivaci on 9
Ejemplo 1.6. Observemos la expresi on (a b) (4 a cot b 2 b).
a y b son variables, por lo que a su vez son expresiones.
es un operador binario, por lo que, junto con el inciso anterior, a b es una expresi on.
Como a b es una expresi on, tambi en lo es (a b).
Como 4 es una constante y a una variable, 4 a es una expresi on.
Hasta ac a vamos bien. Pero ninguna de nuestras reglas indica que cot sea un operador
binario y no existe la posibilidad de que haya una sucesi on de variables sin nada entre ellas.
Por lo que esta no es una expresi on aritm etica bien construida.
Ejemplo 1.7. La expresi on a + b es una expresi on aritm etica que utiliza el uso de las siguientes
reglas para su construcci on:
a es una expresi on
b es una expresi on
+b es una expresi on pues b es una expresi on y + es un operador unario.
+ b es una expresi on pues +b es una expresi on y es un operador unario.
a + b es una expresi on pues tanto a como + b son expresiones y es un opera-
dor binario.
4
1 1
3
3
a + b
Ejemplo 1.8. La sucesi on de smbolos +a b no es una expresi on aritm etica correcta , pues no
se puede obtener a partir de las reglas anteriores. Por qu e?
De los ejemplos anteriores se observa que para mostrar que una sucesi on dada de smbo-
los s es una expresi on aritm etica, debemos identicar cada uno de sus componentes y aso-
ciarlos con alguna de las reglas de formaci on de expresiones. Este m etodo puede resultar
demasiado tedioso de aplicar por lo que debemos buscar m etodos m as sencillos y suscep-
tibles de ser automatizados.
10 Introducci on
1.3. Gram aticas y arboles de derivaci on
Otra manera de mostrar c omo se construyen las expresiones es mediante lo que se
conoce como una gram atica formal, que es un mecanismo sencillo de especicaci on de
reglas de construcci on, llamadas producciones o reglas de reescritura, con las cuales se
pueden generar expresiones de un lenguaje. Las formas que pueden tomar estas reglas de
rescritura son muy variadas, pero nos ocuparemos s olo de una de estas. Lass reglas de
reescritura de las que nos ocuparemos tienen la siguiente forma:
smbolo ::= cadena
El smbolo ::= se lee se puede reescribir como y al aplicar una regla particular sus-
tituimos el lado izquierdo de este smbolo por la cadena que se encuentra del lado derecho.
Para las expresiones aritm eticas, por ejemplo, tendramos las reglas de reescritura que
aparecen en la tabla 1.1. En ellas, los smbolos que aparecen en gris o azul (con este tipo de
letra) son aquellos que ya no pueden ser reescritos, pues no aparecen del lado izquierdo de
ninguna regla de reescritura. A estos smbolos les llamamos smbolos terminales, pues son
los que terminan las cadenas de reescritura. A los smbolos que pueden ser reescritos les
llamamos no terminales o variables. El smbolo [ juega el papel de separador de opciones,
para ahorrar trabajo.
Tabla 1.1 Reglas de reescritura para expresiones aritm eticas
S ::=E (1.1)
E ::=var (1.2)
E ::=const (1.3)
E ::= E (1.4)
E ::=E E (1.5)
E ::=(E) (1.6)
var ::=a [ b [ . . . (1.7)
const ::=0 [ 1 [ 2 [ 17 [ 3.5 [ . . . (1.8)
::=+[ (1.9)
::=+[ [ [ (1.10)
A una colecci on de reglas de reescritura como la anterior le llamamos gram atica por-
que nos describe la forma o reglas sint acticas que deben tener las expresiones aritm eticas
bien construidas. Para producir oraciones (cadenas, palabras, expresiones) correctas de
acuerdo a las reglas de la gram atica, empezamos con el smbolo a la izquierda del ::= de la
1.3 Gram aticas y arboles de derivaci on 11
primera regla, y utilizamos las reglas de reescritura, que nos dicen que en cualquier momen-
to podemos sustituir parte de (o toda) la expresi on, si en ella localizamos una subexpresi on
3
que corresponda al lado izquierdo de cualquiera de las reglas y la sustituimos por el lado
derecho. Cada vez que hacemos una sustituci on, encontramos en la frase el primer smbo-
lo desde el extremo izquierdo que aparece a la izquierda de ::= de alguna de las reglas y
lo sustituimos por la cadena a la derecha de ::= en esa regla. En cada paso unicamente
sustituimos a un smbolo. Decimos entonces que estamos haciendo una sustituci on por la
izquierda. Es importante mencionar que el orden en que se hagan las sustituciones no es
obligatoriamente por la izquierda y no afecta el resultado nal, aunque es bueno convenir
en hacerlo por la izquierda en aras de obtener un m etodo unico de construcci on, es decir un
m etodo determinista. Veamos algunos ejemplos en la gura 1.1 a continuaci on.
Figura 1.1 Proceso de generaci on de expresiones aritm eticas (1/2)
(a (b + c))
Frase Regla usada
S inicio ()
E S ::= E (1.1)
E E ::= E (1.4)
E ::= (1.9)
(E) E ::=(E) (1.6)
(E E) E ::= E E (1.5)
(var E) E ::= var (1.2)
(var E) ::= (1.10)
(var (E)) E ::=(E) (1.6)
(var (E E)) E ::= E E (1.5)
(a (E E)) var ::=a (1.7)
(a (var E)) E ::= var (1.2)
(a (var+ E )) ::=+ (1.10)
(a (var+ var)) E ::= var (1.2)
(a (b+ var)) var ::=b (1.7)
(a (b + c)) var ::=c (1.7)
Gram atica:
S ::= E (1.1)
E ::= var (1.2)
E ::= const (1.3)
E ::= E (1.4)
E ::= E E (1.5)
E ::= (E) (1.6)
var ::= a | b | . . . (1.7)
const ::= 0 | 1 | 2 | 17 | 3.5 | . . . (1.8)
::= +| (1.9)
::= +| | | (1.10)
3
Una subexpresi on es una expresi on que aparece dentro de otra. Esto implica que debe estar bien cons-
truida.
12 Introducci on
Figura 1.1 Proceso de generaci on de expresiones aritm eticas (2/2)
a
Frase Regla usada
S inicio ()
E S ::= E (1.1)
var E ::= var (1.2)
a var ::= a (1.7)
(3.0 + 21)
Frase Regla usada
S inicio ()
E S ::= E (1.1)
(E ) E ::=(E) (1.6)
(E E) E ::= E E (1.5)
(const E ) E ::= const (1.3)
(const + E ) ::=+ (1.10)
(const + const ) E ::= const (1.3)
(3.0+ const ) const ::=3.0 (1.8)
(3.0 + 21) const ::=21 (1.8)
Una secuencia de aplicaci on de reglas de reescritura, como las que se muestran en la
gura 1.1 se conoce como una derivaci on de una expresi on; esta expresi on es la que gura
en el ultimo de sus renglones. Estas derivaciones pueden presentarse as o gr acamente
utilizando un arbol. Un arbol es una gr aca que remeda a un arbol biol ogico, excepto
que elegimos pintarlo de cabeza. Nuestro arbol tiene un nodo inicial llamado raz, que
corresponde al origen de las sustituciones, y va creciendo de la siguiente manera:
Cada nodo tiene un smbolo asociado.
Para que de un nodo salgan echas (o simplemente lneas o aristas, ya que la direc-
ci on es siempre hacia abajo) se requiere que el smbolo que est a en ese nodo aparezca
del lado izquierdo de alguna producci on.
Las echas (o lneas) apuntan a cada uno de los smbolos que aparecen del lado
derecho de la producci on utilizada.
Es importante observar que un nodo tiene un unico smbolo asociado.
Si el smbolo en un nodo se reescribe en una sucesi on de tres smbolos, entonces
deber an salir tres lneas de el, una por cada smbolo.
Aquellos nodos de los que no salen lneas les llamamos hojas.
Para determinar cu al es la expresi on que corresponde a un determinado arbol, vamos
listando las hojas del arbol de izquierda a derecha. A la cadena que se obtiene de esta
manera le vamos a llamar el resultado del arbol.
En el arbol se pierde el orden en que se hacen las sustituciones; en cada nivel se mues-
tran las sustituciones elegidas, de entre las posibles, en la frase que se encuentra en ese
1.3 Gram aticas y arboles de derivaci on 13
nivel. Aquellos elementos que aparecen en gris (o en azul o con este tipo de letra) son los
que no aparecen del lado izquierdo de ninguna regla y se encuentran colocados en las hojas
del arbol. A estos smbolos les llamamos smbolos terminales y son los unicos que pueden
aparecer en una expresi on correcta. Los niveles intermedios no corresponden a expresio-
nes, sino a descripciones de lo que puede convertirse en una expresi on si se hacen los
reemplazos necesarios. Veamos este proceso en las guras 1.2 en esta p agina y 1.3 en la
siguiente.
Figura 1.2 Ejemplos de arboles de derivaci on
(a) a
S
E
var
a
(b) (3.0 + 21)
S
E
(
E
const
3.0

+
E
const
21
)
En este contexto, decimos que una expresi on aritm etica est a bien construida o que es
correcta si podemos construir el arbol que representa a su derivaci on. Este proceso de
construcci on consiste de las sustituciones que fuimos realizando en cada nivel hasta llegar
a un arbol donde todas sus hojas son smbolos terminales. En otras palabras, una expresi on
aritm etica es v alida si es el resultado de alg un arbol de derivaci on.
Una vez que tenemos bien escrita una expresi on aritm etica, queremos obtener su valor.

Este se obtiene reemplazando cada una de las variables que aparecen en la expresi on por
alg un valor permitido y realizando las operaciones correspondientes. Si la expresi on es
14 Introducci on
aritm etica, el resultado consistir a de alg un n umero.
Figura 1.3 Otro ejemplo de arbol de derivaci on
(a) (a (b + c))
S
E

E
(
E
E
var
a

E
(
E
E
var
b

+
E
var
c
)
)
Expresiones de par entesis balanceados
Como otro ejemplo del uso de gram aticas y arboles de derivaci on presentamos las ex-
presiones de par entesis balanceados. Este lenguaje es parte esencial de cualquier lenguaje
de programaci on. La gram atica que lo dene se encuentra en la tabla 1.2.
Tabla 1.2 Gram atica que dene a par entesis bien balanceados
E ::=() (1.11)
E ::=(E) (1.12)
E ::=EE (1.13)
1.3 Gram aticas y arboles de derivaci on 15
Obs ervese que esta gram atica produce expresiones que constan unicamente de par ente-
sis balanceados, no hay n umeros ni otra clase de objetos que no sean par entesis. La regla
1.11 corresponde a la expresi on m as simple de par entesis balanceados () mientras que la
regla 1.12 corresponde a encerrar entre par entesis una expresi on anterior. Por otra parte la
regla 1.13 representa la generaci on de una nueva expresi on con par entesis balanceados al
pegar o concatenar dos expresiones previas. Veamos un par de ejemplos.
Figura 1.4 Expresiones de par entesis balanceados
(())
Frase Regla usada
E inicio ()
(E) E ::=(E ) (1.12)
(()) E ::=() (1.11)
(()())
Frase Regla usada
E inicio ()
(E) E ::= (E) (1.12)
(EE ) E ::= EE (1.13)
(()E) E ::= () (1.11)
(()()) E ::= () (1.11)
Figura 1.5 Ejemplos de arboles de derivaci on para expresiones de par entesis balanceados
(a) (())
E
(
E
( )
)
(b) ((())())
E
(
E
E
(
E
( )
)
E
( )
)
16 Introducci on
Ejercicios
1.3.1.- Dadas las producciones para construir expresiones aritm eticas, para cada una de
las siguientes expresiones decir si se pueden o no construir con esas producciones.
Justica tu respuesta.
a) +a
b) 2(b b)
c)
1
2
(a + b)
1.3.2.- Usando la gram atica que dimos para expresiones aritm eticas, dibujar los arboles
que corresponden a cada una de las expresiones que siguen:
a) a b + c
b) (b + (b b 4 a c)) (2 a)
c) a +b
1.3.3.- Dadas las expresiones aritm eticas del ejercicio 1.3.2, da la secuencia de produccio-
nes que usas, haciendo siempre la sustituci on por la izquierda.
1.3.4.- Dada las siguientes producciones:
S ::= aSb (1.14)
S ::= ab (1.15)
S ::= bSa (1.16)
S ::= ba (1.17)
Da 3 expresiones que se puedan derivar de esta gram atica.
1.3.5.- Para cada uno de los arboles de la gura 1.6, da las producciones que tuvieron que
utilizarse para construirlos:
1.3 Gram aticas y arboles de derivaci on 17
Figura 1.6 Ejercicio 1.3.5
(a) 01001
S
0 S
1 S
0 S
0 S
1
(b) 145 541
C
1 C
4 C
5 C

5
4
1
(c) Juan y Pedro van al cine
orac
suj
sust
Juan
conj
y
sujto
sust
Pedro
verbo
van
compl
prep
a
fs
art
el
sust
cine
1.3.6.- Para cada uno de los arboles del ejercicio 1.3.5, da otras dos expresiones o frases
distintas a la dada que se puedan construir usando las mismas producciones.
L ogica
proposicional
2
2.1. El lenguaje de la l ogica proposicional
En esta secci on nos dedicamos a denir la sintaxis y sem antica del lenguaje formal de
la l ogica proposicional, empezando con una discusi on acerca de argumentos l ogicos.
2.1.1. Argumentos l ogicos
Uno de los aspectos m as importantes de la l ogica matem atica es el decidir si un ar-
gumento es correcto o no. Entre nuestros objetivos est a el de utilizar la l ogica como una
herramienta para evidenciar o (deducir) la solidez o correctud de un argumento l ogico.
Pero para empezar debemos contestar qu e es un argumento l ogico? En general un argu-
mento o argumentaci on se da en lenguaje natural presentando ciertos hechos alegatos,
verdades, situaciones as como una conclusi on que, si la argumentaci on es correcta, de-
be ser evidente de los hechos anteriores a los cuales llamamos premisas. Veamos algunos
ejemplos:
Si llueve, me quedo en casa. Si me quedo en casa, leo un libro. Por
lo tanto, si llueve, leo un libro
20 L ogica proposicional
Si me gusta el curso, pongo atenci on; si pongo atenci on, entiendo
el material. Luego entonces, si me gusta el curso, entiendo el
material
x es mayor o igual que y o bien x es menor que y. x no es mayor o
igual que y. De manera que x es menor que y
Ahora bien, c omo distinguimos entre las premisas y la conclusi on del argumento? Esto
depende de ciertas frases del lenguaje natural que nos dan la pauta para hacer la distinci on,
frases como por lo tanto, luego entonces, de manera que, etc.
Una vez identicadas la conclusi on y las premisas se puede reescribir el argumento de
una forma estructurada omitiendo ciertas frases del lenguaje natural, como en los siguientes
ejemplos:
(a) 1. Si llueve, me quedo en mi casa
2. Si me quedo en mi casa, leo un libro
3. Si llueve, leo un libro
(b) 1. Si me gusta el curso, pongo atenci on
2. Si pongo atenci on, entiendo el material
3. Si me gusta el curso, entiendo el material
(c) 1. x es mayor o igual que y o bien x es menor que y
2. x no es mayor o igual que y
3. x es menor que y
(d) 1. Los libros son baratos o son caros
2. Los libros no son caros
3. Los libros son baratos
(e) 1. Este programa funciona mal o los datos son incorrectos
2. Los datos son correctos
3. Este programa funciona mal
Obs ervese que la conclusi on est a separada de las premisas mediante una lnea hori-
zontal. Adem as, de acuerdo a nuestra intuici on, todos los argumentos anteriores parecen
correctos, pero formalmente cu ando un argumento es correcto? o c omo decidimos si
un argumento es correcto?. Para responder a esta pregunta nos serviremos de la l ogica
matem atica, la cual nos proporcionar a un conjunto de reglas operacionales, que en parti-
cular permitir an obtener deducir, encontrar, conformar, derivar un nuevo hecho a partir
de ciertos hechos dados. Un argumento l ogico ser a correcto o s olido si la verdad de sus
premisas causan necesaria y obligatoriamente la verdad de su conclusi on, lo cual puede
2.1 El lenguaje de la l ogica proposicional 21
mostrarse mediante las reglas l ogicas de operaci on.
Arist oteles fue el primero que para poder manipular argumentos l ogicos opt o por asig-
narles letras a ciertas frases consideradas de estructura l ogica simple, llamadas proposicio-
nes o f ormulas at omicas. De esta manera podemos ver en forma concisa los argumentos
l ogicos. Procedamos a hacer esto con los argumentos anteriores para poderlos mostrar a la
manera aristot elica.
(a) p llueve
q me quedo en mi casa
r leo un libro
1. Si p, q
2. Si q, r
3. Si p, r
(c) p x es mayor y
q x es igual a y
r x es menor que y
1. p o q o r
2. no (p o q)
3. r
(b) p Me gusta el curso
q pongo atenci on
r entiendo el material
1. Si p, q
2. Si q, r
3. Si p, r
(d) p Los libros son baratos
q Los libros son caros
1. p o q
2. no q
3. p
(e) p Este programa funciona mal
q Los datos son correctos
1. p o no q
2. q
3. p
Se observa que el uso de letras deja ver patrones o esquemas comunes, aunque a un te-
nemos algunas palabras del espa nol. Para deshacernos de ellas y formalizar completamente
el estudio de argumentos l ogicos introducimos ahora el lenguaje formal de la l ogica propo-
sicional. Observen que en el inciso (c), cuando decimos no (p o q) estamos manifestando
ni p ni q.
2.1.2. Proposiciones
De manera similar a como construimos expresiones aritm eticas, vamos ahora a denir
y construir expresiones l ogicas. Empecemos por ver cu ales son los objetos elementales
de la l ogica. En la aritm etica tenamos valores num ericos (constantes) y de forma similar
22 L ogica proposicional
la l ogica tiene constantes, pero s olo dos: 0 (falso) y 1 (verdadero). Estas constantes se
conocen como valores l ogicos o booleanos. Usar los valores de 0 y 1 como sin onimos de
falso y verdadero es una libertad que nos damos las personas dedicadas a computaci on.
Tambi en podemos hablar de los valores F y T (false y true respectivamente), aunque a lo
largo de este texto usaremos 0 y 1 pues es as como se van a representar en la computadora.
Las expresiones l ogicas se conocen tambi en como proposiciones y son enunciados u
oraciones a las que les podemos asociar un valor l ogico (tienen valor de 0 o 1). En general
las proposiciones se dan en lenguaje natural; un enunciado es una proposici on solamente si
se puede decir, en un contexto dado, si es falso o verdadero. En el ejemplo (a) que acabamos
de dar, la proposici on p=llueve es falsa o verdadera dependiendo del momento en que se
diga, de si en ese momento est a lloviendo o no.
Cuando decimos que una proposici on es falsa o verdadera, estamos determinando el
valor de dicha proposici on. De manera similar para las expresiones aritm eticas, podemos
hablar del valor de la expresi on aritm etica, que nos va a dar una constante num erica cal-
culada a partir de los valores de cada una de las variables y constantes involucradas en la
expresi on. A este conjunto de valores le llamamos el estado en el que se eval ua la expre-
si on a lo que anteriormente llamamos el contexto de una proposici on . Podemos denir
entonces un estado como un conjunto de parejas, donde cada pareja tiene el nombre de
una variable y el valor de esa variable. Un ejemplo de c omo especicamos un estado se
encuentra a continuaci on.
estado =
_
(x, 5), (y, 7), (p, falso)
_
En este estado tenemos los valores para tres variables, dos num ericas y la tercera l ogica.
Cada elemento del conjunto es una pareja ordenada, donde primero se da el nombre de la
variable y despu es el valor de esa variable en el estado.
Regresando a las expresiones l ogicas, son proposiciones:
Est a lloviendo
Juan es m as grande que Pedro
x z
El libro es rojo
Roberto es el asesino
Esta materia es f acil
No son proposiciones:

Mario, ll evate esto!

Est as seguro?

x +y

Ni modo
2.1 El lenguaje de la l ogica proposicional 23

Viva Pancho Villa!


Intuitivamente a las proposiciones se les puede evaluar, es decir, decidir si son falsas o
verdaderas. Pero como mencionamos antes, este valor depende del estado que tomen sus
variables. Por ejemplo, la tercera proposici on de la lista que dimos es verdadera si el estado
es (x, 5.6), (z, 3.0). En este estado particular, la proposici on tiene el valor de verdadero.
Evaluada en el estado (x, 2.3), (y, 4.0) la proposici on tiene el valor de falso. La cuarta
proposici on tendr a el valor de verdadero en el caso de que el libro de que estemos hablando
sea rojo, es decir cuando estemos en el estado (color del libro, rojo).
M as adelante hablaremos formalmente de estados y del proceso de evaluaci on. Por
ahora sigamos con el estudio de las proposiciones
Denici on 2.1 Una proposici on es un enunciado que puede calicarse como falso (0) o verdadero
(1), dependiendo del estado en que se eval ue.
Decimos que una proposici on es at omica si no puede subdividirse en proposiciones
m as simples. Las proposiciones anteriores son todas at omicas. En contraste, las siguientes
proposiciones no son at omicas:

Juan y Pedro est an hambrientos

Est a nublado, por lo que va a llover, entonces no saldremos

0 x 10

El libro es rojo o azul


Estas proposiciones se llaman compuestas pues cada una de ellas se puede descomponer
en dos o m as proposiciones at omicas como a continuaci on se muestra:
Juan y Pedro est an hambrientos
Juan est a hambriento
y
Pedro est a hambriento
Est a nublado, por lo que va a llover; entonces no saldremos
Est a nublado,
por lo que
va a llover
entonces
no saldremos
24 L ogica proposicional
0 x 10
0 x
y
x 10
El libro es rojo o azul
el libro es rojo
o
el libro es azul
Las proposiciones at omicas son aquellas que est an a continuaci on de y hasta el
nal del rengl on. Encerramos en un marco a la palabra o frase que relaciona a la primera
proposici on at omica con la siguiente y as sucesivamente. A estas palabras les llamamos
conectivos.
A continuaci on vamos a pasar de las proposiciones en lenguaje natural al estudio de
un lenguaje formal de expresiones l ogicas. En el proceso de traducci on o especicaci on de
lenguaje natural al formal se acostumbra asociar identicadores (letras) a las proposiciones
at omicas, para poder escribir de manera m as uida y as representar y manipular adecua-
damente a las proposiciones. Obs ervese que esto ya lo hicimos en la semi formalizaci on de
argumentos en la introducci on de este captulo. A estos identicadores se les conoce como
variables proposicionales. Ya tenemos entonces variables, pero para construir expresiones
m as complejas necesitamos de constantes y operadores l ogicos y que corresponden estos
ultimos a las frases en lenguaje natural que hemos llamado conectivos.
2.1.3. Sintaxis de la l ogica proposicional
En esta secci on denimos un lenguaje formal para la l ogica proposicional mediante una
gram atica para expresiones l ogicas.
Las reglas para construir proposiciones son las siguientes:
2.1 El lenguaje de la l ogica proposicional 25
P ::=V arProp (2.1)
P ::= ConstLog (2.2)
P ::= P (2.3)
P ::= P P (2.4)
P ::= (P) (2.5)
V arProp ::=a, b, . . . p, q, . . . variables proposicionales (2.6)
ConstLog ::=false, true constantes l ogicas (2.7)
::= negaci on (not) (2.8)
(2.9)
::=, y, adem as, pero (and) (2.10)
, o (or) (2.11)
, implica, (2.12)
si . . . entonces, por lo que,
de. . . se sigue (implies)
si y s olo si, sii, syss, iff (2.13)
(if and only if)
Veamos ahora el paso del espa nol al lenguaje formal de proposiciones mediante algunos
ejemplos. Consid erese la siguiente asignaci on de signicados a variables proposicionales:
Proposici on at omica Variable proposicional
Juan est a hambriento a
Pedro est a hambriento b
est a nublado c
va a llover d
saldremos e
0 < x p
x < 10 q
el libro es rojo r
el libro es azul s
Las proposiciones no at omicas de los ejemplos anteriores son representadas de la si-
guiente manera:
Juan y Pedro est an hambrientos
a b
Est a nublado por lo que va a llover; entonces no saldremos
26 L ogica proposicional
(c d) e
0 < x < 10
p q
El libro es rojo o el libro es azul
r s
Veamos ahora el arbol de derivaci on para alguna de estas expresiones, digamos
(c d) e, en la gura 2.1.
Figura 2.1 Derivaci on de (c d) e
P
P
(
P
P
V arProp
c

P
V arProp
d
)

P
V arProp
e
Nuevamente, los smbolos terminales est an en distinto tipo y color.
2.1.4. Sem antica de la l ogica proposicional
Una vez que hemos discutido informalmente qu e es una proposici on as como la sinta-
xis de un lenguaje formal para proposiciones, es momento de hablar de su signicado. Los
aspectos relacionados con el signicado de cualquier clase de expresiones forman lo que
se conoce como la sem antica del lenguaje. En nuestro caso ya conocemos el signicado
intuitivo de las proposiciones, de hecho le hemos dado a los operadores l ogicos un nombre
relativo a su signicado. Por ejemplo la proposici on p se lee no p y representa a la
negaci on de la informaci on especicada por p. En analoga a las expresiones aritm eticas
cuyo signicado es un n umero, calculado al hacer las operaciones dadas en la expresi on
de acuerdo a un estado particular de sus variables, cada proposici on tiene como signicado
2.1 El lenguaje de la l ogica proposicional 27
un valor booleano que depende tanto del valor particular de sus variables proposicionales
como del signicado de las constantes y operadores l ogicos. De manera que para poder
entender el signicado de una proposici on debemos empezar por denir el signicado o
funcionamiento de cada constante u operador l ogico. El signicado de las constantes l ogi-
cas debe ser claro, la constante true signica verdadero (1) y la constante false signica
falso (0). La manera m as f acil para denir el signicado de un operador l ogico es mediante
lo que se conoce como tablas de verdad. En lo que sigue se usan may usculas para deno-
tar proposiciones que pueden ser compuestas. A continuaci on analizamos cada operador
l ogico.
La negaci on
La negaci on de una proposici on P se denota de alguna de las siguientes formas:
P, P, P, P

Nosotros usaremos P exclusivamente.


Su signicado en espa nol es:
P
no P
no es cierto que P
es falso que P
Su tabla de verdad es:
negaci on
P P
1 0
0 1
Este tipo de tablas merece algunas observaciones. Para calcular la tabla de verdad de
una proposici on cualquiera E es necesario considerar todos los estados posibles de los
operandos de la expresi on E. Cada operando puede estar en uno de dos estados posibles, 1
para verdadero y 0 para falso. Cada rengl on de la tabla corresponde a un estado particular
de los operandos. En este caso nuestra expresi on es P, que tiene como unico operando a
P, que independientemente de que sea una proposici on at omica o no, s olo puede estar en
dos estados posibles, por lo que la tabla de verdad s olo tiene dos renglones. En esta tabla,
la primera columna es la que indica el estado del operando P mientras que la segunda nos
indica el resultado de la evaluaci on de la expresi on deseada, en este caso P. Como se ve
en la tabla anterior, el operador lo que hace es invertir o negar el valor original de la
proposici on dada.
Veamos a continuaci on la sem antica de los operadores l ogicos binarios.
28 L ogica proposicional
La conjunci on
La conjunci on de dos proposiciones P y Qse denota de alguna de las siguientes formas:
P Q, P &Q, P Q, PQ
Nosotros usaremos P Q exclusivamente. Su signicado en espa nol es:
P Q
P y Q
P adem as de Q
P pero Q
Puede observarse aqu cierta incapacidad de la l ogica para representar al espa nol: cier-
tamente al usar la palabra pero se le est a dando cierta intensi on a una armaci on que no
corresponde a la simple conjunci on, como en la frase Te llevo al cine, pero haces la tarea,
la cual s olo puede representarse con una conjunci on que corresponde a Te llevo al cine y
haces la tarea. Desafortunadamente, en l ogica la unica posibilidad para representar un pero
es la conjunci on.
Su tabla de verdad es:
P Q Conjunci on
P Q
1 1 1
1 0 0
0 1 0
0 0 0
En esta ocasi on, al haber dos operandos (P y Q), tenemos cuatro posibles estados para
el sistema:
Que ambas proposiciones valgan 1
Que P valga 0 y Q valga 1
Que P valga 1 y Q valga 0
Que ambas proposiciones valgan 0
2.1 El lenguaje de la l ogica proposicional 29
La disyunci on
La disyunci on de dos proposiciones P y Qse denota de alguna de las siguientes formas:
P Q, P [ Q, P + Q
Nosotros usaremos P Q exclusivamente.
Su signicado en espa nol es:
P Q
P o Q
o P o Q
Su tabla de verdad es:
P Q Disyunci on
P Q
1 1 1
1 0 1
0 1 1
0 0 0
Observando el primer rengl on de la tabla de verdad nos damos cuenta de que este uso
de la disyunci on es inclusivo, es decir, la disyunci on es cierta tambi en en el caso en que
ambos operandos sean ciertos.
La implicaci on
La implicaci on o condicional de dos proposiciones P y Q se denota de alguna de las
siguientes formas:
P Q, P Q, P Q
Nosotros usaremos P Q exclusivamente. Su signicado en espa nol es:
30 L ogica proposicional
P Q
si P entonces Q
P implica Q
P es (condici on) suciente para Q
Q, si P
P s olo si Q
Q se sigue de P
Q es (condici on) necesaria para P
Su tabla de verdad es la que sigue:
P Q Implicaci on o condicional
P Q
1 1 1
1 0 0
0 1 1
0 0 1
Nos sorprende en esta tabla la evaluaci on del primer y segundo renglones, pues parece,
a primera vista, contrario a la intuici on. Veamos un ejemplo:
Ejemplo 2.1.
p es una botella contiene acido
q es la botella tiene una calavera en la etiqueta
p q es si una botella tiene acido,
entonces tiene una calavera en la etiqueta
Como se ve en este ejemplo, la verdad de p (que la botella contenga acido) nos permite
garantizar la verdad de q (que hay una calavera en la etiqueta). Pero si la botella no contiene
acido, pudiera ser que la botella contenga alg un otro compuesto venenoso y que de todos
modos tenga una calavera en la etiqueta, estado representado por el tercer rengl on de la
tabla; pero tambi en pudiera ser que la botella no tenga acido y que no tenga calavera en la
etiqueta, estado representado por el ultimo rengl on de la tabla. Lo que no puede suceder
(el resultado es 0) es que la botella, conteniendo acido no tenga una calavera en la etiqueta,
estado representado por el segundo rengl on de la tabla.
2.1 El lenguaje de la l ogica proposicional 31
Veamos otro ejemplo, esta vez en matem aticas. Consid erese la siguiente proposici on
1
:
((x > y) (y > z)) (x > z)
Evaluemos esta expresi on en el estado (x, 8), (y, 6), (z, 4). En este estado, el antece-
dente de la implicaci on es verdadero
_
(8 > 6) y (6 > 4)
_
, por lo que podemos garan-
tizar que x > z, pues en efecto, 8 > 4. Sin embargo, veamos que sucede en el estado
(x, 7), (y, 8), (z, 6). En este caso el antecedente es falso pero el consecuente es verdade-
ro. El valor de la proposici on es, de acuerdo a la denici on en su tabla de verdad, verdadero.
Otro estado que ilustra el primer caso es (x, 4), (y, 6), (z, 5). Tambi en este estado hace
que la proposici on se eval ue a verdadero, porque una vez que el antecedente es falso, el
estado del consecuente puede ser cualquiera. Por otra parte, si el antecedente es verdade-
ro, no puede suceder que el consecuente sea falso, es decir, no existe un estado en el cual
(x > y) y (y > z) y que sin embargo tengamos (x z).
Los valores de verdadero y falso de la implicaci on simplemente nos dicen cu ales esta-
dos pueden presentarse y cu ales no. En el primer ejemplo que dimos, si llueve es seguro
que me quedo en casa, pero si no llueve, el estado del consecuente puede ser cualquie-
ra. Recordemos que s olo hay dos estados posibles para las proposiciones l ogicas, falso o
verdadero.
Cada implicaci on P Q tiene asociadas otras implicaciones que involucran a las mis-
mas proposiciones P y Q que a continuaci on denimos:
La recproca o inversa de P Q es la f ormula Q P.
La contrapositiva de P Q es la f ormula Q P.
La contrarrecproca de P Q es la f ormula P Q
Ejemplo 2.2. Consid erese la oraci on si tengo un tri angulo entonces tengo un polgono, formalizada
como t p. Sus implicaciones asociadas son:
Recproca: p t que signica si tengo un polgono entonces tengo un tri angulo.
Contrapositiva: p t que signica si no tengo un polgono entonces no tengo un
tri angulo.
Contrarrecproca: t p que signica si no tengo un tri angulo entonces no tengo
un polgono
M as adelante veremos la relaci on existente entre una implicaci on y sus implicaciones
asociadas.
1
Usamos aqu tantos par entesis como se requieran para denir sin ambig uedades la estructura de la ex-
presi on l ogica.
32 L ogica proposicional
La equivalencia
La equivalencia o bicondicional de dos proposiciones P y Q se denota de alguna de las
siguientes formas:
P Q, P Q, P Q
Nosotros usaremos P Q exclusivamente.
Su signicado en espa nol es:
P Q
P si y s olo si Q
P es equivalente a Q
P es (condici on) necesaria y suciente para Q
Su tabla de verdad es:
P Q Equivalencia o bicondicional
P Q
1 1 1
1 0 0
0 1 0
0 0 1
En este caso, la equivalencia es verdadera si ambas proposiciones se eval uan a lo mis-
mo: ambas se eval uan a falso o ambas se eval uan a verdadero.
Tablas de verdad para proposiciones compuestas
Al conocerse el signicado de cada conectivo l ogico mediante su tabla de verdad es po-
sible obtener el signicado de cualquier f ormula mediante una tabla de verdad que combine
las tablas de cada subf ormula componente de la f ormula original. Veamos un ejemplo.
2.1 El lenguaje de la l ogica proposicional 33
P Q R (P Q) (Q R) (P R)
1 1 1 0 0 0 1 0
1 1 0 0 1 1 1 1
1 0 1 1 1 0 0 0
1 0 0 1 1 0 1 1
0 1 1 1 1 0 1 1
0 1 0 1 1 1 0 0
0 0 1 1 1 0 1 1
0 0 0 1 1 0 0 0
Como se observa, las tablas de verdad crecen tanto en columnas como en renglones, al
volverse m as compleja la f ormula en cuesti on. Cu antos renglones tiene la tabla de verdad
de una f ormula que tiene n variables proposicionales?
Propiedades de los conectivos l ogicos
Vimos en las secciones anteriores lo que constituye una proposici on, as como el signi-
cado de los principales operadores o conectivos l ogicos. De conocer las tablas de verdad
para estos conectivos, podemos observar algunas de sus propiedades importantes.
Conmutatividad: Esta propiedad nos dice que el orden en que aparecen las proposicio-
nes relacionadas por el conectivo l ogico no afecta el resultado de la operaci on. Por
ejemplo, la evaluaci on de p q da siempre el mismo resultado que la evaluaci on de
q p. Esta propiedad la tienen asimismo los operadores aritm eticos de suma y multi-
plicaci on. De las expresiones aritm eticas sabemos, por ejemplo, que ni la resta ni la
divisi on son operadores conmutativos: No es lo mismo 7 5 que 5 7; tampoco se
eval ua a lo mismo 8 2 que 2 8. Tambi en en el caso de los conectivos l ogicos no
todos son conmutativos. Los conectivos , , son conmutativos pues:
El valor de: es el mismo que el de:
p q q p
p q q p
p q q p
De su tabla de verdad es f acil ver que la implicaci on () no es conmutativa.
Asociatividad: En aritm etica es claro que (a + b) + c = a + (b + c). Decimos entonces
que la suma es asociativa. En el caso de los conectivos l ogicos no todos tienen esta
34 L ogica proposicional
propiedad llamada asociatividad. Mientras que en la aritm etica la suma y la multi-
plicaci on son asociativos, esto no es as con la resta y la divisi on. Por ejemplo, en el
estado (a, 5), (b, 7), (c, 3), a (b c) =1, mientras que (a b) c =5. Tam-
bi en, (a b) c =5/21 0.24, mientras que a (b c) =15/7 2.1. En el caso
de la l ogica matem atica los conectivos que son asociativos son la conjunci on (),
la disyunci on () y la equivalencia (). Nuevamente, la condicional () tampoco
presenta esta propiedad.
El valor de: es el mismo que el de:
(p q) r p (q r)
(p q) r p (q r)
(p q) r p (q r)
Elemento identidad: En general, un elemento identidad para un operador es aquel valor
que al operarlo con una expresi on el resultado es esa misma expresi on, es decir e es
una identidad para si e x = x = x e para cualquier expresi on x. (Noten que
estamos suponiendo la conmutatividad del operador con respecto al elemento iden-
tidad y cualquier otro elemento.) En el caso de la suma, el elemento identidad es el
0 puesto que a + 0 = a = 0 + a, mientras que en el caso de la multiplicaci on el
elemento identidad es el 1 ya que a 1 = a = 1 a. Como se ve, el elemento iden-
tidad va a depender del operador o conectivo particular. En el caso de los conectivos
l ogicos, los elementos identidad de cada operador se dan a continuaci on. Para ver
que, en efecto, son elementos identidad, sugerimos desarrollar las tablas de verdad
correspondientes.
Operador Identidad El valor de es el valor de
true p true p
false p false p
true p true p
Elemento neutro: Tambi en conocido como dominante, es aquella constante que al operar
con cualquier otro valor, el resultado es la constante misma. Es decir, e es un elemento
neutro para el operador si x e = e = e x para cualquier expresi on x. En el caso
de la aritm etica, el 0 (cero) con el producto tiene ese efecto. Hay que notar que la
suma, la resta y la divisi on no tienen elemento neutro (el elemento nulo tiene que ser
el mismo para todos los valores que puedan participar en la operaci on). En el caso
de las proposiciones l ogicas, el elemento neutro de la disyunci on () es la constante
true y de la conjunci on () es la constante false.
2.1 El lenguaje de la l ogica proposicional 35
El valor de: es el valor de:
p true true
p false false
Idempotencia: Esta propiedad habla de un operador que al tener dos operandos iguales
el resultado es el operando mismo. Por ejemplo, si tenemos la proposici on p p
podemos observar de la tabla de verdad, que su valor es el mismo que el de p. Los
operadores y son idempotentes:
p p p p p
1 1 1
0 0 0
Para la implicaci on hay otras proposiciones interesantes que vale la pena notar. Se ca-
racterizan porque al operar con la constante false o true dan siempre como resultado el
valor de 1:
p false p p true
1 1 1
0 1 1
2.1.5. Tautologas y contradicciones
Las tablas de verdad nos permiten observar el valor de una f ormula en todos sus posibles
estados. Esto nos permite clasicar a las f ormulas de la siguiente manera:
tautologas Aquellas f ormulas que se eval uan a verdadero en
todos los estados posibles
contradicciones Aquellas f ormulas que se eval uan a falso en todos
los posibles estados
f ormulas contingentes o
contingencias
Aquellas f ormulas que no son ni tautologas ni
contradicciones
Conocemos ya varias tautologas, como es el caso de pp , ppq , ppp.
Para convencernos, veamos sus tablas de verdad en la siguiente p agina:
36 L ogica proposicional
p q p p p p q p p p

1 1 1 0 1 1 1 1
1 0 1 0 1 1 1 1
0 1 1 1 1 1 0 1
0 0 1 1 1 0 0 1
Como las tautologas son muy importantes, se elige una notaci on especial para repre-
sentarlas. Para ello utilizamos un metalenguaje, el cual nos sirve para decir algo respecto
al lenguaje formal que estamos utilizando. Ya nos encontramos con metalenguajes con
anterioridad. Por ejemplo, nuestras gram aticas con sus producciones corresponden a un
metalenguaje, ya que si bien nos describen perfectamente lo que es una expresi on, las pro-
ducciones en s no son expresiones. Podemos pensar tambi en en los esquemas de f ormula
que utilizamos (E, P Q, A B, etc.) como metaexpresiones , ya que los usamos para
describir a objetos de nuestro lenguaje particular, pero ellos no forman parte del lenguaje.
M as adelante hablaremos de esquemas con m as detalle.
Volviendo al c alculo proposicional, si A es una proposici on que es tautologa, escribi-
mos |= A. Insistimos en que el smbolo |= no es un operador de la l ogica proposicional y
la expresi on [= P no es una proposici on, sino que nos habla acerca de la proposici on P,
dici endonos que P es una tautologa.
Como ejemplos de tautologas de gran importancia tenemos:
p p Ley del tercero excluido, nos dice que toda proposici on tiene
que evaluarse a falso o verdadero, que no hay ning un otro valor
posible.
false p Falso implica cualquier cosa. Cuando el antecedente es falso,
se puede concluir cualquier proposici on.
p true Cuando el consecuente es verdadero, cualquier proposici on lo
implica (lo justica).
Contradicciones
Una contradicci on es una expresi on que se eval ua a falso en todos los estados posibles.
Podemos cotejar que una expresi on es una contradicci on utilizando para ello tablas de
verdad, como en el caso de las tautologas. Por ejemplo, P P y P P son ambas
contradicciones, como se muestra en las tablas de verdad correspondientes.
2.1 El lenguaje de la l ogica proposicional 37
P P P P P P
1 0 0 0
0 1 0 0
Las contradicciones est an ntimamente relacionadas con las tautologas. Si A es una
tautologa, entonces A es una contradicci on y viceversa.
2.1.6. Argumentos correctos
Una vez que hemos denido la sintaxis y la sem antica de las f ormulas de la l ogica
proposicional, as como el concepto de tautologa, podemos dar la denici on formal de
argumento l ogico e introducir formalmente la noci on de argumento correcto.
Denici on 2.2 Un argumento l ogico es una sucesi on de f ormulas A
1
, . . . , A
n
llamadas premisas y
una f ormula B llamada conclusi on. Dicha sucesi on se escribe usualmente como
A
1
.
.
.
A
n
B
o bien A
1
, . . . , A
n
/ B
Nuestro problema fundamental es decidir cu ando un argumento es correcto o v alido,
lo cual suceder a, como ya mencionamos anteriormente, si y s olo si suponiendo que sus
premisas son verdaderas, entonces necesariamente la conclusi on tambi en lo es. Obs ervese
que esta denici on corresponde a los llamados argumentos deductivos. En contraste, en
un argumento inductivo se aceptan como v alidas conclusiones basadas en observaci on o
probabilidad. Nosotros nos dedicaremos s olo a los argumentos deductivos.
Como ya tenemos a nuestra disposici on la denici on de tautologa, nos servimos de
esta para dar una denici on formal de argumento correcto.
Denici on 2.3 El argumento
A
1
, A
2
, . . . , A
n
/ B
es correcto si y s olo si
[= A
1
A
2
. . . A
n
B.
A la f ormula A
1
A
2
. . . A
n
B se le llama f ormula asociada al argumento l ogico.
38 L ogica proposicional
Por lo tanto, vericar la correctud de un argumento es equivalente a vericar que su
f ormula asociada es tautologa, para lo cual basta construir su tabla de verdad.
Veamos algunos ejemplos
Ejemplo 2.3. El argumento p q, p/ q, es correcto. La f ormula a analizar es p (p q) q.
p q p (p q) q
1 1 1 1 1 1 1
1 0 1 0 0 1 0
0 1 0 0 1 1 1
0 0 0 0 1 1 0
Como muestra la tabla, tenemos una tautologa y el argumento es correcto.
Ejemplo 2.4. Analizar el siguiente argumento.
Si hoy es viernes entonces ma nana es s abado; ma nana es s abado, por
lo tanto hoy es viernes.
Frases como por lo tanto, as que, luego entonces, de forma que, entre otras,
se nalan la conclusi on del argumento.
La representaci on formal del argumento es:
v s
s
v
De manera que el argumento es correcto si y s olo si [= (v s) s v. La tabla de
verdad es:
v s (v s) s v
1 1 1 1 1 1 1
1 0 0 0 0 1 1
0 1 1 1 1 0 0
0 0 1 0 0 1 0
El tercer rengl on de la tabla muestra que la f ormula no es una tautologa por lo que el
argumento es incorrecto.
2.1 El lenguaje de la l ogica proposicional 39
Ejemplo 2.5. Mostrar la correctud del siguiente argumento:
p q r
p
q r
La tabla de verdad de la f ormula asociada al argumento es:
p q r (p q r) p (q r)
1 1 1 1 1 1 1 1
1 1 0 0 0 1 1 0
1 0 1 1 1 1 1 1
1 0 0 1 1 1 1 1
0 1 1 1 0 0 1 1
0 1 0 1 0 0 1 0
0 0 1 1 0 0 1 1
0 0 0 1 0 0 1 1
Por lo que [=
_
(p q) r
_
p (q r) y el argumento es correcto.
El ejemplo anterior deja ver que el m etodo de tablas de verdad para mostrar la correctud
de un argumento puede resultar complicado al crecer el n umero de variables involucradas
en el mismo. Por esta raz on resulta mandatorio buscar m etodos alternativos, cosa que ha-
remos m as adelante.
Ejercicios
2.1.1.- Cu ales de las siguientes oraciones son proposiciones at omicas, cu ales proposicio-
nes no at omicas y cu ales no son proposiciones? Justica tu respuesta.
a) El cielo est a nublado
b) Por favor ven a verme
c)
b

b
2
4ac
2a
d) 0 x 10
e) Juan y Pedro van al cine
f ) Estoy a dieta porque es necesario para bajar de peso
40 L ogica proposicional
2.1.2.- Expresa los siguientes enunciados en el lenguaje de la l ogica proposicional:
a) Un tri angulo equil atero tiene sus tres angulos iguales.
b) Siempre que come fresas le da alergia.
c) 0 x y 15
d) Todo n umero par es divisible entre 2.
e) Para que vayas al cine tienes que hacer tu tarea.
2.1.3.- Usa variables proposicionales p, q y r para formalizar los siguientes argumentos
l ogicos. Lista c omo asignas las variables a las proposiciones at omicas.
a) Si hay ex amenes cada semana, los estudiantes se quejan; y si no hay ex amenes
cada semana, los estudiantes se quejan; de cualquier forma los estudiantes se
quejan.
b) Si n es n umero primo, no puede ser divisible entre 2; sabemos que 24 es divisi-
ble entre 2, por lo que no es n umero primo.
c) Si lo mat o, fue un crimen pasional; y si es un crimen pasional, el asesino sale
corriendo; sabemos que ella no sali o corriendo; entonces no lo mat o.
d) No hay otra manera de pasar la materia m as que estudiando.
e) Hay que llegar temprano para agarrar buen lugar.
2.1.4.- Usando las variables proposicionales y s para denotar a las proposiciones at omi-
cas Juan es muy listo y Juan est a satisfecho respectivamente, denota con estas varia-
bles proposicionales y los conectivos l ogicos a las siguientes proposiciones:
a) Juan es muy listo y est a satisfecho.
b) Si Juan no fuera listo, no estara satisfecho.
c) Juan es listo o est a satisfecho.
d) Juan est a satisfecho unicamente si es listo.
e) Si Juan es listo entonces est a satisfecho.
f ) Juan es listo pero no est a satisfecho.
2.1.5.- En los siguientes enunciados, identica las proposiciones at omicas y asgnales va-
riables proposicionales. Una vez hecho esto, convierte los enunciados a proposicio-
nes l ogicas.
a) Si Juan fue al cine, seguro que Lupe fue tambi en.
b) Las noticias no son buenas.
c) Te dar an clave para la red s olo si est as inscrito en el curso.
d) Si asisti o a las clases, debi o pasar la materia.
e) El asesino era de tez blanca o clara.
2.1.6.- Formaliza las siguientes implicaciones y construye sus implicaciones asociadas.
a) Si un n umero es divisible entre 2 entonces es par.
b) Si Elke es austriaca entonces es europea.
2.1 El lenguaje de la l ogica proposicional 41
c) Una condici on necesaria para que Lourdes lleve el curso de algoritmos es que
apruebe matem aticas discretas.
d) El programa es legible s olo si est a bien estructurado.
e) La audiencia dormir a si el ponente diserta sobre l ogica medieval.
2.1.7.- Para el siguiente enunciado, asigna variables proposicionales a las proposiciones
at omicas y escribe la proposici on completa usando esas variables proposicionales.
(a) Mara fue al teatro el lunes en la noche s olo en el caso de que no tuviera clase
el martes temprano.
(b) Si Juan llev o su Mustang al desle es porque le cambi o el amortiguador el da
anterior.
(c) Si los tres lados de un tri angulo son congruentes, entonces los tres angulos del
tri angulo son congruentes.
(d) Si x es mayor que 3 entonces tambi en es mayor que 2.
(e) Nunca ha nevado en Cuernavaca.
(f) Si n es un entero, entonces n
3
n es par.
2.1.8.- Para cada pareja de enunciados que se listan, escribe las f ormulas para la disyunci on
de ambos y la conjunci on de ambos. Para cada f ormula, indica si es verdadera o no.
(a) p : Uno es un entero par q : Nueve es un entero positivo
(b) p : Chihuahua est a en la frontera
con EEUU
q : Brasil est a en

Africa
(c) p : La naranja es una fruta q : La papa es una verdura
(d) p : Los p ajaros tienen cuatro patas q : Los conejos vuelan
(e) p : Los cardenales son rojos q : Los ruise nores son azules
2.1.9.- Para cada uno de los siguientes enunciados, asigna variables proposicionales y es-
cribe la f ormula o argumento l ogico correspondiente al enunciado.
(a) Si hoy es viernes, ir e al cine.
(b) Si termino la tarea voy a tomar un descanso.
(c) Si Pepito compite en nataci on va a ganar el primer lugar. Si Juanito compite en
nataci on va a ganar el primer lugar. Alguno de los dos no va a quedar en primer
lugar en la competencia de nataci on. Por lo tanto o Pepito no compite o Juanito
no compite.
(d) Los perros son mamferos. Los mamferos no tienen agallas. Por lo tanto los
perros no tienen agallas.
42 L ogica proposicional
(e) Voy a comer tacos o quesadillas. Decid no comer quesadillas. Entonces co-
mer e tacos.
2.1.10.- Elabora la tabla de verdad para el operador nand , donde p nand q est a denido
como (p q).
2.1.11.- Elabora las tablas de verdad para pp, p p, pp, ptrue, pfalse, ptrue y
p false. Observa cada una de estas tablas de verdad y di la relaci on que tienen con
la variable p original.
2.1.12.- Construye la tabla de verdad para cada una de las siguientes f ormulas, clasicando
si se trata de una tautologa, contradicci on o contingencia.
a) (p q) (r q)
b) (p (r q)) r
c) ((p q) q) p
d) (s t) (s t)
e) (r s) t
f ) (q p) (p q)
2.1.13.- Analizar mediante tablas de verdad la correctud de los siguientes argumentos.
a) p, q / p q
b) q, r, s / q t
c) p q, q / p
d) p q r, q / p r
e) p q, p / q
2.2. Evaluaci on de expresiones
Si bien el proceso de evaluaci on de una expresi on nos queda intuitivamente claro y en
muchos casos es un proceso mental completamente autom atico, vamos a formalizarlo en
esta secci on. El objetivo de esta formalizaci on radica principalmente en la necesidad de la
misma para un estudio en abstracto de la evaluaci on y sus propiedades mediante el cual se
podr a automatizar el proceso de evaluaci on m as f acilmente.
2.2.1. Estados y evaluaci on
Regresamos al concepto de estado que, como dijimos en la secci on anterior, est a ntima-
mente relacionado con la evaluaci on de expresiones (o, en nuestro caso, de proposiciones).
2.2 Evaluaci on de expresiones 43
Denici on 2.4 Un estado es una funci on que asigna a una variable dada x un valor v elegido de
entre aquellos que pueden asignarse a esa variable. Un estado se representa usualmente
mediante un conjunto de parejas ordenadas (x, v) (o bien x = v), donde en cada pareja el
primer elemento x es una variable y el segundo elemento v es un valor.
Denici on 2.5 La evaluaci on de una expresi on E en un cierto estado se logra reemplazando todas
las variables en E por los valores que estas tienen en ese estado y calculando despu es el
valor de la expresi on resultante, dictada por el signicado de los operadores que guran en
la expresi on.
Esta denici on, si bien debe ser intuitivamente clara, no es completamente formal; m as
adelante deniremos formalmente qu e signica reemplazar una variable por un valor o una
expresi on. Veamos algunos ejemplos en la siguiente p agina.
Expresi on Estado Evaluaci on
mn { m = 63, n = 7} 9
mn { m = 8, n = 48}
1
6
i = 1 { i = 2, j = 1} 0
i = 1 { i = 1} 1
i = 1 { j = 1} i = 1
a + (b c) { a = 3, b = 5, c = 2} 13
a + (b c) { a = 4, b = 5, c = 7, d = 8} 39
a + (b c) { a = 13, b = 11, d = 2} 13 + (11 c)
(p q) r { p = 0, q = 1, r = 1 } 1
(p q) r { p = 1, q = 0, r = 0 } 0
(p q) r { p = 0, q = 0, r = 0 } 0
(p q) r { p = 1, q = 0, r = 0 } 1
44 L ogica proposicional
Si sucede que hay variables en la expresi on que no aparecen en el estado (es decir, que
no tienen un valor asignado), entonces la evaluaci on de la expresi on incluir a presencias de
esas variables a las que no les podemos asignar valor (quedar an con inc ognitas, como les
hemos llamado a este tipo de variables). En estos casos lo m as com un es que la expresi on
obtenida mediante esta evaluaci on parcial interact ue m as adelante con otro estado para
terminar su evaluaci on. Sin embargo, en algunos casos se puede evaluar completamente
una expresi on aun cuando el valor de alguna de sus variables no est e denido en el estado.
Estos casos son aquellos en los que el valor de la expresi on no depende de dicha variable.
Por ejemplo, si llegamos a una expresi on como 0 (a + b) es irrelevante el valor ya sea de
a o de b, porque esta expresi on se eval ua a 0 (cero); lo mismo para las expresiones 0p o
bien p1, pues sabemos que el resultado de ambas expresiones es verdadero (1). Es util,
entonces, para ahorrarnos algo de trabajo, conocer las propiedades de los operadores y de
algunas expresiones en las que est an involucradas constantes.
2.2.2. Precedencia y asociatividad
Hemos utilizado par entesis en expresiones. Los par entesis nos indican agregaci on. Por
ejemplo, en la expresi on 3+(4 5) los par entesis agregan la expresi on 4 5 como el segundo
operando de la suma para indicar que la operaci on que queremos realizar es la suma de
3 con el producto de 4 y 5, cuyo resultado es 23. Si la expresi on tuviera los par entesis
(3 +4) 5, se estara agregando la suma de 3 y 4 como operando del producto, dando como
resultado 35. Para reducir el n umero de par entesis en una expresi on se asignan precedencias
a los operadores. En particular, los lenguajes de programaci on hacen esto, pues el uso
excesivo de par entesis resulta ser una carga para el programador y obscurece el signicado
de la expresi on para el lector humano. Si el operador op
1
tiene mayor precedencia que el
operador op
2
, eso quiere decir que primero evaluamos la operaci on de op
1
y despu es la de
op
2
. Por ejemplo, como usualmente la multiplicaci on tiene mayor precedencia que la suma,
en la expresi on 3 + 4 7 se debe evaluar primero el producto 4 7, y ese resultado usarlo
para la suma con 3. En otras palabras, es como si los par entesis aparecieran alrededor del
producto, 3 + (4 7) y, de hecho, una vez denido el orden de precedencia, es posible
restaurar los par entesis originales siguiendo este orden.
Otro concepto, que se relaciona en particular con el orden de evaluaci on de una ex-
presi on, es el de asociatividad. Esta propiedad nos permite decidir, si tenemos al mismo
operador m as de una vez en una expresi on y en ausencia de par entesis para indicar el orden
de evaluaci on, cu al de las presencias del operador debe evaluarse primero. Por ejemplo, en
la expresi on p q r, cu al de los dos debe evaluarse primero, el de la izquierda o el de
la derecha? El resultado de la evaluaci on es distinta, dependiendo de la asociatividad que
tengamos:
2.2 Evaluaci on de expresiones 45
p q r (p q) r V alor p (q r) V alor
0 0 0 1 0 0 0 1 1
Como se puede ver, tanto la precedencia como la asociatividad determinan, en ausencia
de par entesis, el orden de evaluaci on de las subexpresiones. Los par entesis se usan, co-
mo ya dijimos, para alterar la precedencia y asociatividad natural o bien para que quede
explcita la precedencia y asociatividad que deseamos. A continuaci on damos una tabla de
precedencias y asociatividades de los operadores aritm eticos y l ogicos m as comunes. En el
orden en que aparecen, la precedencia va de mayor a menor. Los operadores que tienen la
misma precedencia aparecen en el mismo rengl on de la tabla.
Operador Descripci on Asociatividad
+ operadores unarios prejos izquierda
exponenciaci on derecha
/ mod gcd producto, divisi on, m odulo y m aximo
com un divisor
izquierda
+ suma y resta binarias izquierda
= < > comparadores izquierda
conjunci on y disyunci on izquierda
implicaci on derecha
bicondicional izquierda
Como podemos observar de la tabla anterior, en ausencia de par entesis la evaluaci on
de p q r debe realizarse asociando p (q r), ya que el operador asocia a la
derecha. Esto quiere decir que evaluamos de derecha a izquierda, como si hubiera par entesis
alrededor de q r. En el caso de la expresi on 3 + 4 7, la precedencia de es mayor que
la de + binario, por lo que se eval ua a 31
_
3 + (4 7)
_
. Sin embargo, esta tabla no nos
ayuda a determinar los par entesis implcitos en expresiones como P Q R, ya que
y tienen la misma precedencia, pero no son el mismo operador, por lo que no podemos
utilizar la asociatividad para dirimir el conicto. En este tipo de expresiones es costumbre
poner siempre par entesis para indicar la precedencia, ya que de otra manera la evaluaci on
de la expresi on es ambigua. Por lo tanto debemos escribir (P Q) R o bien P (QR),
dependiendo de cu al es la precedencia deseada.
46 L ogica proposicional
Puede haber estados en los que la evaluaci on sea la misma. Veamos la evaluaci on de
estas dos asociatividades en un estado en el que no se obtiene el mismo valor, para corro-
borar que en ese estado no producen el mismo resultado y por lo tanto las dos expresiones
no son equivalentes.
P Q R (P Q) R valor P (Q R) valor
0 0 1 0 1 1 1 0 0 1 0
Insistimos en que el concepto de asociatividad s olo se puede aplicar cuando se trata de
dos o m as presencias consecutivas del mismo operador; no son los niveles de precedencia
los que denen la asociatividad.
2.2.3. Sustituci on textual
Supongamos que tenemos dos expresiones
2
E y R, y sea x una variable (usualmente
presente en E). Usamos la notaci on E[x := R] o E
x
R
para denotar la expresi on que es
la misma que E, pero donde cada presencia (ocurrencia) de x en la expresi on E ha sido
sustituida por la expresi on (R). Llamamos sustituci on textual al acto de sustituir todas las
presencias de x en E por (R). Cu al de las dos notaciones utilizar no es relevante, excepto
que se debe elegir una de ellas y mantener esa elecci on. La notaci on E[x := R] es m as
apropiada para computaci on, pero la notaci on E
x
R
es la utilizada por los profesionales de
la l ogica matem atica.
Tabla 2.4 Ejemplos de sustituci on textual (1/2)
Expresado como Expresado como
Resultado
E[x := R] E
x
R
1. a + b[a := x + y] a + b
a
x+y
a + b
2. (a + b)[a := x + y] (a + b)
x
x+y
((x + y) + b)
3. (x y)[x := z + 2] (x y)
x
z+2
((z + 2) y)
2
Nos referimos a expresiones de cualquier tipo.
2.2 Evaluaci on de expresiones 47
Tabla 2.4 Ejemplos de sustituci on textual (2/2)
Expresado como Expresado como
Resultado
E[x := R] E
x
R
4. (4 a b)[a := b] (4 a b)
a
b
(4 (b) b)
5. (p q)[p := 0] (p q)
p
0
((0) q)
6. (p p q)[p := p q] (p p q)
p
pq
((p q) (p q) q)
7. (5 x)[x := 2 + 6] (5 x)
x
2+6
(5 (2 + 6))
Es conveniente notar que la sustituci on textual es una operaci on y podemos considerar
a [x := R], o bien
x
R
, como el operador. En este caso no es una operaci on de n umeros a
n umeros como la suma y el producto, o de proposiciones a proposiciones como la negaci on
o conjunci on, sino que se trata de una operaci on de expresiones cualesquiera en expresiones
cualesquiera. A este operador se le asigna la precedencia m as alta de todos los operadores
y su asociatividad es a la izquierda. Esto debe tomarse en cuenta cuando veamos a cu al
expresi on es a la que afecta la sustituci on: no es lo mismo a + b[a := x + y] (a + b
a
x+y
)
que (a + b)[a := x + y]
_
(a + b)
a
x+y
_
, pues en el primer caso la unica expresi on a la que
se reere la sustituci on es b, mientras que en el segundo caso es (a + b). En ambos casos,
y dado que la sustituci on textual es lo primero que se va a ejecutar, toma como operando
al grupo que se encuentra a su izquierda, que en el primer caso consiste unicamente de b
mientras que en el segundo caso, dado que se usaron par entesis, consiste de (a + b).
Podemos ver algunos ejemplos en la tabla 2.4 de la p agina anterior, utilizando ambas
notaciones por el momento, aunque despu es usaremos la que indicamos como la m as ade-
cuada para computaci on.
Deseamos hacer hincapi e sobre los siguientes puntos:
Debe quedar claro el porqu e la sustituci on se dene poniendo entre par entesis a R
dentro de E: si no lo hici esemos as corremos el riesgo de alterar los par entesis
implcitos de la expresi on. En la sustituci on 7 del ejemplo, si evaluamos la expresi on
resultante obtenemos 40, pero si no pusi eramos los par entesis alrededor de 2 + 6, la
expresi on se evaluara a 16, de acuerdo con la precedencia de los operadores en la
expresi on resultante.
R, la expresi on por la que vamos a sustituir, puede o no tener presencias de x, la
variable a la que vamos a sustituir.
Si E no tiene ninguna presencia de x, la expresi on queda exactamente igual a como
estaba, es decir E[x := R] = E.
48 L ogica proposicional
Si hay varias presencias de x en E, como es el caso del ejemplo 6, se piensa en la
sustituci on hecha simult aneamente a cada presencia de x en E. Es como si marc ara-
mos las posiciones de x en E, despu es ponemos una caja en lugar de la variable y
despu es colocamos en esas cajas a (R). Si es que x aparece en R, no regresamos a
sustituir estas presencias de x en el resultado.
Es com un que en el resultado queden par entesis que no aportan nada, por ejemplo
aquellos que rodean a una variable sola. En este caso, y cuando la eliminaci on de
los par entesis no afecte la precedencia y asociatividad del resultado, estos pueden
eliminarse. Esto tambi en se reere a los par entesis que utilizamos para rodear a la
expresi on sobre la que queremos hacer la sustituci on. En adelante mantendremos
los par entesis s olo en aquellos casos en que sean estrictamente necesarios, es decir,
cuando quitarlos altere la precedencia y asociatividad de la expresi on resultante.
Si tenemos una lista de variables x : x
1
, x
2
, . . . , x
n
distintas y una lista de expresiones
R : R
1
, R
2
, . . . , R
n
(no forzosamente distintas), podemos denir la sustituci on textual si-
mult anea E[x := R]
_
E
x
R
_
como el reemplazo simult aneo de cada una de las variables
de la lista x por su correspondiente expresi on en la lista R. Esto es, x
1
se reemplaza con
R
1
, x
2
con R
2
, y as sucesivamente. Por ejemplo, (p q)[p, q := 1, 0] es
_
(1) (0)
_
, cuyo
valor es 0, mientras que (p q)[p, q := 1, p] es (1 p), ya que no se puede regresar a
hacer la sustituci on textual de la variable x que aparece en la expresi on R, en la expresi on
resultante.
Un punto mucho muy importante a notar es que la sustituci on textual se utiliza unica-
mente para sustituir presencias de variables, no de expresiones ni de constantes.
Como ya mencionamos, la asociatividad de la sustituci on textual es izquierda, por lo
que E[x := R][z := S] se asocia
_
E[x := R]
_
[z := S], donde E, R y S son expresiones y
x y z son variables; esta operaci on se dene como una copia de E en la que las presencias
de x fueron sustituidas por R, y en esa copia las presencias de z fueron sustituidas por S. Es
importante notar que, en general, E[x := R][z := S] es distinto a E[x, z := R, S], como
se puede ver en las siguientes sustituciones:
(p p q)[p := q][q := p] es p p p
(p p q)[p, q := q, p] es q q p
Variables escondidas en la sustituci on textual
Es usual asignar una variable a una expresi on para que sea m as sencillo manipularla.
Por ejemplo, podemos decidir
Q :
b +

b
2
4 a c
2 a
2.2 Evaluaci on de expresiones 49
y utilizar esta asociaci on para, en lugar de escribir
x = (b +

b
2
4 a b)/(2 a)
podamos escribir x = Q. Pero entonces Q tiene tres variables escondidas, a, b y c, y una
sustituci on de la forma Q[a := 3] se debe interpretar como
_
( b +

b
2
4 a b )/(2 a)
_
[a := 3]
cuyo resultado es (b +

b
2
4 3 b )/(2 3) = (b +

b
2
12 b )/6
Queremos hacer notar que la evaluaci on de una expresi on consiste en, simplemente,
hacer una sustituci on textual en la expresi on, donde por cada variable denida en el estado
en que se desea evaluar a la expresi on se le sustituye por el valor de la variable en ese
estado. Despu es, si es posible, se ejecutan las operaciones necesarias para obtener el valor
de la expresi on en ese estado.
Ejercicios
2.2.1.- Coloca los par entesis en las siguientes expresiones de acuerdo a la precedencia y
asociatividad de los operadores, sin preocuparte por la evaluaci on de la expresi on:
a) b +b 2 4 a c/2 a
b) p q r s p q
c) a < b b < c a < b
d) a b < a c a > 0 b > c
2.2.2.- Para cada expresi on que se da a continuaci on, eval ua la expresi on en cada uno de los
estados que se proporcionan:
Expresi on Estados Evaluaci on
a) a
2
+ (b c) {a = 5, b = 3, c = 6}
{a = 2, b = 1, c = 11, d = 3}
{d = 3, b = 4, c = 10}
{a = 3, b = 0}
b) p q q r {p = 1, q = 0, r = 1}
{p = 0, r = 1}
{p = 1, r = 0}
{p = 1, q = 1, r = 1}
50 L ogica proposicional
2.2.3.- Ejecuta las siguientes sustituciones textuales, j andote bien en la colocaci on de los
par entesis. Quita los par entesis que no sean necesarios.
a) x[x := b + 2]
b) (x + y x)[x := b + 2]
c) (x + x 2)[y := x y]
d) (x + x y + x y z)[x := x +y]
2.2.4.- Ejecuta las siguientes sustituciones textuales simult aneas, j andote bien en la colo-
caci on de los par entesis. Quita los par entesis que no sean necesarios.
a) x +y x[x, y := b + 2, x + 2]
b) (x + y x)[x, y := x y, x y]
c) (x + y 2)[y, x := x y, x x]
d) (x + x y + x y z)[x, y := y, x]
2.2.5.- Ejecuta las siguientes sustituciones textuales, j andote bien en la colocaci on de los
par entesis. Quita los par entesis que no sean necesarios.
a) x +y x[x := y + 2][y := y x]
b) (x + y x)[x := y + 2][y := y x]
c) (x + x 2)[x, y := x, z][x := y]
d) (x + x y + x y z)[x, y := y, x][y := 2 y]
2.2.6.- Expresa la evaluaci on de las expresiones en la pregunta 2.2.2 utilizando sustituci on
textual simult anea.
2.3. An alisis sint actico de expresiones l ogicas
En general, una expresi on es una cadena o palabra construida mediante smbolos de un
alfabeto dado. Sin embargo no todas las cadenas que construyamos simplemente pegando
smbolos van a ser expresiones utiles, sino unicamente aquellas construidas de acuerdo
a una gram atica dise nada con ese prop osito particular. El proceso de evaluaci on descrito
anteriormente requiere que la expresi on a evaluar sea sint acticamente v alida; por ejemplo,
no podemos ni debemos intentar evaluar una cadena de smbolos como pq, puesto que
esta no es una expresi on v alida y el intento de evaluarla fracasar a.
En nuestro caso a las expresiones generadas de manera legtima por la gram atica de la
l ogica proposicional les llamamos expresiones l ogicas, proposiciones o bien f ormulas. Por
ejemplo, P Q es una f ormula si es que garantizamos que P y Q son, a su vez, f ormulas.
El proceso de evaluaci on de una expresi on debe ser precedido por el proceso de reconocer
cu ando una cadena de smbolos es una f ormula bien construida o formada; este proceso
se conoce como an alisis sint actico. En nuestro caso particular la pregunta que nos interesa
responder es cu ando una cadena de smbolos es una expresi on l ogica? Hasta ahora la
2.3 An alisis sint actico de expresiones l ogicas 51
unica manera de responder es derivando dicha cadena mediante las reglas de la gram atica;
sin embargo, este proceso puede ser largo y tedioso, y si bien esta es la manera usual de
implementar el proceso de an alisis sint actico, nos gustara tener un proceso m as simple
y directo para nuestro uso. A continuaci on nos serviremos de la operaci on de sustituci on
textual para vericar cu ando una cadena de smbolos es una f ormula bien formada.
2.3.1. Esquemas
En matem aticas es com un asociar identicadores a ciertas expresiones con el prop osito
de abreviar su escritura; podemos escribir por ejemplo A para denotar a la f ormula p q.
Sin embargo, A no es una variable proposicional, pues para obtener su valor es necesario
evaluar la f ormula p q, a partir de los valores de las variables proposicionales p y q. Un
identicador es entonces una especie de variable informal, conocida entre los l ogicos como
metavariable. A continuaci on jamos una denici on de esquema.
Denici on 2.6 Un esquema es una expresi on construida de manera similar a las f ormulas pero
usando, en algunos casos, identicadores en vez de variables proposicionales.
Si bien esta denici on es informal pues el concepto de identicador no ha sido denido
con precisi on, con ella nos basta.
Ejemplo 2.6. Si A y B son identicadores, entonces A B es un esquema.
Ejemplo 2.7. La expresi on (A B) es un esquema, y si A = (p q) y B = (p q) entonces nos
proporciona una forma m as concisa de escribir
_
(p q) (p q)
_
Ejemplo 2.8. Si p es una variable proposicional y A = (p q), la f ormula (p A) es un
esquema que proporciona una forma m as concisa de escribir
_
p (p q)
_
.
La sustituci on textual en combinaci on con el concepto de esquema proporcionan una
manera simple para decidir si una expresi on es una f ormula bien formada. Por ejemplo,
c omo podemos vericar si la expresi on p q r s es una implicaci on?; basta ver que
dicha f ormula se obtiene a partir del esquema de implicaci on A B, en el caso particular
en que los identicadores se sustituyan (instancien) con A = p q y B = r s.
52 L ogica proposicional
Denici on 2.7 Instanciar un esquema consiste en hacer una sustituci on textual simult anea de ce-
ro o m as identicadores en el esquema, por f ormulas bien construidas, que pueden o no
involucrar a identicadores que aparecen originalmente en el esquema.
Un esquema tiene tantas instancias como f ormulas bien formadas podamos usar en la
sustituci on textual simult anea, esto es, un n umero innito de instancias. Todo esquema
es una instancia de s mismo, ya que resulta de la sustituci on textual simult anea de cero
identicadores en el esquema o, visto de otra manera, donde cada identicador que aparece
en el esquema es sustituido por s mismo.
Si bien existen una innidad de esquemas, basta identicar con nombre a los siguientes,
llamados b asicos:
Llamamos a una expresi on de la forma
1. negaci on ( A)
2. conjunci on (A B)
3. disyunci on (A B)
4. condicional (A B)
5. equivalencia (A B)
Obs ervese que toda f ormula debe ser at omica, o bien corresponder a una o varias susti-
tuciones textuales simult aneas de uno de estos cinco esquemas.
Ahora veamos ejemplos de f ormulas bien construidas. Utilizaremos par entesis para pre-
sentar las distintas f ormulas y procederemos a comprobar que est an bien construidas me-
diante esquemas. Haremos uso de la precedencia y asociatividad para eliminar par entesis,
cuando esto no afecte el signicado de la f ormula.
Ejemplo 2.9. La expresi on ((p q) (p q)) es una condicional. Para ver por qu e se le asigna
este nombre, veamos la sucesi on de sustituciones textuales que se fueron realizando:
(p q)[p, q := p q, p q] = ((p q) (p q))
que quitando los par entesis superuos queda
p q p q.
Como el esquema original del que partimos es el de la implicaci on, la instanciaci on
dada es por ende una implicaci on.
Ejemplo 2.10. El esquema A P Q es una condicional, porque al restaurar los par entesis
implcitos en la expresi on, dada la precedencia y asociatividad de los distintos operadores
2.3 An alisis sint actico de expresiones l ogicas 53
que aparecen, obtenemos ((A) (P Q)).
(P Q)[P, Q := A, P Q][A := A] =
= ((A) (P Q)[A := A]
= ((A) (P Q)),
donde quitando los par entesis superuos, queda A P Q.
Como el esquema original del que partimos es una condicional, decimos que el esquema
A P Q tambi en es una condicional.
Ejemplo 2.11. La f ormula (p q) (r p) (p q) (r q) es una equivalencia.
Nuevamente veamos los par entesis implcitos, de acuerdo a las reglas de precedencia y
asociatividad:
_
_
(p q) (r p)
_

_
(p q) (r q)
_
_
y veamos la sucesi on de sustituciones textuales a partir del esquema (A B).
(A B)[A, B := P Q, P R][P, Q, R := p q, r p, r q] =
= ((P Q) (P R))[P, Q, R := p q, r p, r q]
= (((p q) (r p)) ((p q) (r q))),
donde quitando los par entesis superuos, nos lleva a:
(p q) (r p) (p q) (r q).
Obs ervese que en este ejemplo primero transformamos el esquema b asico de impli-
caci on en un esquema m as cercano a la f ormula original, para despu es instanciar con las
f ormulas adecuadas y obtener el resultado deseado.
Del ultimo ejemplo podemos concluir que el proceso de an alisis mediante sustituciones
textuales empieza a resultar complicado, por lo que nos gustara dar una denici on del
proceso, susceptible de aplicarse mec anicamente, algo que desarrollamos a continuaci on.
2.3.2. Rango y conectivo principal
Para mecanizar el proceso de an alisis sint actico de una expresi on nos serviremos, adem as
de la sustituci on textual y el uso de esquemas, de un proceso de descomposici on en expre-
siones sint acticamente m as simples, las cuales son m as sencillas de analizar. Dicha des-
composici on utiliza los conceptos de rango de un conectivo l ogico y conectivo principal de
una f ormula que a continuaci on denimos.
54 L ogica proposicional
Denici on 2.8 El concepto de rango o alcance de un conectivo en una f ormula o esquema E se
dene, con base en los esquemas b asicos, como sigue:
Si E es instancia de A, entonces el rango de en E es A.
Si E es instancia de uno de los esquemas b asicos binarios A B, donde es un
conectivo l ogico binario, entonces el conectivo en E tiene un rango izquierdo que
es A y un rango derecho que es B.
Obs ervese que el rango o rangos de un conectivo (operador) en una expresi on corres-
ponden a los operandos; en caso de que no est en explcitamente indicados se obtienen
tomando en cuenta las reglas de asociatividad y precedencia ya estudiadas. Por ejemplo:
En el esquema AB el rango del operador es unicamente el identicador A. Si
queremos que el rango sea A B debemos encerrar este esquema entre par entesis,
obteniendo (A B).
En la f ormula A B C el rango izquierdo del segundo conectivo es la f ormula
(A B), ya que como no hay par entesis, las reglas de precedencia y asociatividad
hacen que la colocaci on de los par entesis implcita de la f ormula sea ((AB) C).
Otro concepto importante es el de conectivo principal. Si una expresi on E resulta ser ins-
tancia de uno de los esquemas b asicos, entonces el conectivo que observamos en el esquema
correspondiente ser a tambi en el conectivo principal de E. Por ejemplo, si E = (pq) C,
entonces el conectivo principal de E es , puesto que E = (A B)[A, B := p q, C].
Veamos un ejemplo m as elaborado.
Ejemplo 2.12. Consideremos el esquema (AB C) (A B C). El an alisis sint actico de
este esquema es el siguiente:
Para el esquema original:
El conectivo principal es .
El rango izquierdo es (A B C).
El rango derecho es (A B C).
Para el rango izquierdo:
Los par entesis implcitos son
_
(A B) C
_
.
El conectivo principal es el segundo .
El rango izquierdo corresponde a (A B).
El rango derecho corresponde a C.
Para el rango derecho, podemos observar que:
2.3 An alisis sint actico de expresiones l ogicas 55
Los par entesis implcitos son
_
A (B C)
_
.
El conectivo principal es el primer .
El rango izquierdo es A.
El rango derecho es (B C).
Este proceso puede seguir hasta que ya tengamos esquemas o f ormulas que no correspon-
dan a los esquemas b asicos, es decir esquemas que consistan de un unico identicador
o bien variables proposicionales, en las que no tienen ning un signicado los conceptos
de conectivo principal o rango. Estos casos corresponden al n del proceso de an alisis
sint actico. Como toda f ormula consiste de una combinaci on de conectivos y proposiciones
at omicas, la descomposici on en rangos no puede durar para siempre.
2.3.3. An alisis de proposiciones compuestas
Existen dos clases de m etodos para el an alisis de una expresi on, los m etodos generado-
res que construyen la expresi on deseada a partir de smbolos o esquemas iniciales utilizando
ciertas reglas u operaciones; y los m etodos analticos que consisten en partir de la supuesta
expresi on dada y realizar un proceso de descomposici on hasta llegar a expresiones b asicas,
donde el proceso de an alisis es directo. Los m etodos de gram aticas y arboles de derivaci on
y de instanciaci on de esquemas b asicos son generadores.
A continuaci on veremos un m etodo analtico basado en la descomposici on de una ex-
presi on utilizando su conectivo principal y rangos correspondientes. Haremos explcita esta
descomposici on usando un arbol, cuya raz consistir a de la f ormula completa. En cada nivel
que bajemos del arbol, identicaremos al conectivo principal de la f ormula y procederemos
a colgar de la f ormula al conectivo y a su(s) rango(s). La idea principal es que si E es una
expresi on compuesta, los rangos del conectivo principal son expresiones, a las que les po-
demos aplicar el mismo procedimiento. Veamos un ejemplo:
Ejemplo 2.13. Si el equipo mexicano llega a cuartos de nal del Mundial, todo mundo lo admi-
rar a y los jugadores se volver an ricos; pero si no llega, nada pasar a.
Hagamos una asignaci on a variables proposicionales:
p: el equipo mexicano llega a cuartos de nal
q: todo mundo admira al equipo mexicano
r: los jugadores se vuelven ricos
s: nada pasar a
Hagamos la traducci on a una f ormula con par entesis:
((p (q r)) (( p) s))
56 L ogica proposicional
y veamos c omo queda el arbol producto del an alisis sint actico de esta f ormula en la gu-
ra 2.2 de la siguiente p agina.
En este caso hemos elegido presentar el arbol con las frases en espa nol de manera que
se pueda observar la descomposici on directamente con enunciados m as simples. Obs ervese
que las hojas de este arbol corresponden a proposiciones at omicas que ya no pueden des-
componerse.
El proceso de analizar una expresi on es un proceso recursivo, que consiste de los si-
guientes pasos:
1. Si la proposici on es at omica, el an alisis termina.
2. Si la proposici on no es at omica:
a) Denir el conectivo principal
b) Si el conectivo es unario, analizar la proposici on que corresponde al rango
derecho.
c) Si el conectivo es binario, analizar la proposici on que corresponde al rango
izquierdo y la proposici on que corresponde al rango derecho.
Figura 2.2 An alisis de proposici on compuesta
Si el equipo mexicano llega a cuartos de nal del Mundial,
todo mundo lo admirar a y los jugadores se volver an ricos;
pero si no llega, nada suceder a
Si el equipo mexicano llega a
cuartos de nal del Mundial,
todo mundo lo admirar a y los
jugadores se volver an ricos
El equipo
mexicano llega a
cuartos de nal
entonces
todo mundo los
admira y los
jugadores se
volver an ricos
todo mundo lo
admira
y
los jugadores se
volver an ricos
pero
si no llega, nada suceder a
No llega
no llega
entonces nada suceder a
Veamos otro ejemplo, esta vez sin remitirnos en el arbol a las frases en espa nol.
Ejemplo 2.14. Si el anuncio tiene exito, toda la producci on se va a vender y el due no se volver a ri-
co; pero si el anuncio no tiene exito, la inversi on se habr a perdido.
2.3 An alisis sint actico de expresiones l ogicas 57
Variables proposicionales:
p: el anuncio tiene exito
q: toda la producci on se vende
r: el due no se vuelve rico
s: la inversi on se pierde
Podemos ver el arbol, usando las variables proposicionales y los conectivos l ogicos, en
la gura 2.3, que se encuentra en la siguiente p agina.
Figura 2.3 An alisis de una proposici on
(p (q r)) (p s)
p (q r)
p q r
q
r

p s
p

q
s
En este momento resulta claro que dada una expresi on sint acticamente v alida, se pue-
de construir el arbol de an alisis sint actico partiendo directamente de ella; si la expresi on
est a completamente expresada con par entesis (todos los par entesis que denen precedencia
y asociatividad son explcitos), el proceso es inmediato, mientras que si no es as habr a que
usar los criterios de precedencia y asociatividad. Los niveles del arbol se van construyendo
de adentro hacia afuera (de abajo hacia arriba) y de izquierda a derecha para aquellos ope-
radores que asocien a la izquierda, y de derecha a izquierda para aquellos que asocien a la
derecha.
M as a un, el proceso de an alisis sint actico facilita el proceso de evaluaci on puesto que
una vez construido el arbol, las hojas corresponden a f ormulas at omicas, las cuales se pue-
den evaluar directamente continuando el proceso de evaluaci on seg un lo dictado por las
tablas de verdad de los conectivos principales.
2.3.4. Tautologas y sustituci on
Hasta ahora la unica manera de vericar si una f ormula dada A es una tautologa es
construyendo su tabla de verdad. Sin embargo, al crecer el n umero de variables la tabla de
58 L ogica proposicional
verdad contiene cada vez m as renglones y su construcci on se vuelve complicada, ineciente
y eventualmente imposible. Como ejemplo consid erese el esquema A B B. Es f acil
ver mediante una tabla de verdad de cuatro renglones que [= A B B. Por otra parte
consid erese la expresi on p
1
p
2
. . . p
99
p
100
p
100
, c omo mostrar que se trata de una
tautologa? La tabla de verdad tendr a 2
100
renglones, as que resulta imposible construirla.
Afortunadamente la operaci on de sustituci on permite generar m as tautologas a partir de
tautologas conocidas.
Una vez que se conoce que [= A, no importa si en A sustituimos cualquier variable
proposicional por una expresi on, el resultado va a seguir siendo una tautologa. Esto se
formaliza en el siguiente teorema, cuya demostraci on omitimos.
Teorema 2.1 (Propiedad de sustituci on) Sea A una f ormula o esquema tal que [= A y sean
p
1
, p
2
, . . . , p
n
variables proposicionales. Si B
1
, B
2
, . . . , B
n
son expresiones l ogicas o es-
quemas arbitrarios, entonces
[= A[p
1
, p
2
, . . . , p
n
:= B
1
, B
2
, . . . , B
n
];
es decir, las sustituciones textuales en tautologas generan tautologas.
Usando este resultado y observando que
(A B B)[A, B := p
1
p
2
. . . p
99
, p
100
] = p
1
p
2
. . . p
100
p
100
concluimos que [= p
1
p
2
. . . p
100
p
100
.
Veamos otros ejemplos.
Ejemplo 2.15. Demostrar que [= (p q) (p q).
Identicamos en el ejemplo una disyunci on de una expresi on y su negaci on, por lo que
buscamos alg un esquema tautol ogico que tenga esta misma forma. Sabemos que p p
es una tautologa. Entonces
(p p)[p := p q] = (p q) (p q)
por lo que esta expresi on es tambi en una tautologa.
Ejemplo 2.16. Demostrar que [= R (P Q) R.
Debemos buscar un esquema para deshacer las sustituciones que se hayan hecho. En
el nivel m as alto el esquema es
A B.
Busquemos ahora una tautologa que involucre implicaci on y que en el rango derecho tenga
una conjunci on, sabemos que [= p pq es una tautologa (mostramos su tabla de verdad
2.3 An alisis sint actico de expresiones l ogicas 59
al inicio de la secci on). Como la disyunci on tiene la propiedad de conmutatividad, tenemos
que p p q es lo mismo que p q p. Por el Teorema de sustituci on, tenemos:
(p q p)[p, q := q, p] = q p q.
Este ultimo esquema tautol ogico nos sirve, pues lo que buscamos es que el rango derecho
de la disyunci on coincida con el rango izquierdo de la condicional.
A continuaci on observamos que el rango izquierdo de la disyunci on es una subexpre-
si on compuesta, no nada m as una f ormula at omica, por lo que ah tambi en se llev o a cabo
una sustituci on textual, que si la deshacemos queda como sigue:
(q p q)[q, p := R, P Q] =
= (R) (P Q) (R)
= R (P Q) R
Reglas de inferencia
Una vez que se ha mostrado la correctud de un argumento l ogico, este se convierte en un
esquema de argumento que sigue siendo correcto al sustituir algunos de sus identicadores
por f ormulas arbitrarias, puesto que el esquema correspondiente a su f ormula asociada es
una tautologa, que se preserva bajo sustituciones como lo asegura el teorema 2.1. En tal
caso hablamos ya no de un argumento correcto sino de una regla de inferencia.
Denici on 2.9 Una regla de inferencia es un esquema de argumento correcto.
Por ejemplo, dado que los argumentos de los ejemplos 2.3 y 2.5 el primero conocido
como modus ponens son correctos podemos enunciarlos como esquemas:
A B
A
B
A B C
A
B C
Obs ervese que una vez que un argumento correcto se transforma en regla de inferencia,
al ser correcto, el smbolo desaparece en la conclusi on.
60 L ogica proposicional
Ejercicios
2.3.1.- Clasica a las siguientes proposiciones en alguna de las siguientes categoras, jus-
ticando la respuesta mediante el uso de esquemas:
(a) negaci on (b) disyunci on
(c) conjunci on (d) condicional
(e) bicondicional
F ormula Categora
P Q
P Q (P Q) (Q P)
Q P Q P
(P Q) ( P Q) Q
P Q Q P
2.3.2.- Para las siguientes proposiciones, di a cu al esquema b asico corresponden, rehacien-
do las sustituciones textuales que se hayan llevado a cabo. En caso de ambig uedad
respecto a la asociatividad de dos operadores distintos con la misma precedencia, se
debe asociar desde la izquierda.
(a) p q q p
(b) r q r q
(c) p q r
(d) p q p q q q
(e) (p q p)
(f) p q
(g) (p q)
(h) p ( p q)
_
p (p q)
_
2.3.3.- De los siguientes enunciados, dene el conectivo principal. Para cada operador: si
el operador es binario especica su rango izquierdo y su rango derecho; si el operador
es unario, especica su rango (derecho).
(a) p ( p q) p q
(b) (p q p q)
2.4 Equivalencia l ogica 61
(c) p (q p) q
(d) (p q) p q q
(e) (p q r)
2.3.4.- Da el arbol de an alisis sint actico de cada una de los siguientes esquemas:
a) P Q R P
b) P Q Q P
c) P Q R S P
d) P Q R S P S
2.3.5.- Construye el arbol de an alisis sint actico para cada una de las siguientes f ormulas
a) p q s s p q
b) p q p q p q p q
c) p q p q p q
2.4. Equivalencia l ogica
El concepto de expresiones equivalentes es imprescindible para todo tipo de razona-
miento. Decimos que dos expresiones son equivalentes si y s olo si en todos y cada uno de
sus posibles estados se eval uan a lo mismo.
Por ejemplo, podemos comprobar usando una tabla de verdad, que las expresiones
P y P son equivalentes:
P P ( P)
1 0 1
0 1 0
Lo que debemos observar es que, rengl on por rengl on, el valor correspondiente a P
es el mismo que el valor correspondiente a P. No se interprete esta denici on como
que estamos exigiendo tener el mismo valor en todos los renglones, esto es, que todos los
renglones valieran 0 o todos los renglones valieran 1.
En el caso de expresiones l ogicas el concepto de equivalencia est a relacionado con un
tipo particular de tautologa. Si tenemos una bicondicional (A B) que es una tautologa,
entonces decimos que tenemos una equivalencia l ogica :
62 L ogica proposicional
Denici on 2.10 (Equivalencia l ogica) Sean A, B dos f ormulas. Si A B es una tautologa,
entonces decimos que A y B son l ogicamente equivalentes y lo denotamos por A B.
Esto es lo mismo que decir
A B si y s olo si [= A B.
La tabla 2.5 resume algunas equivalencias l ogicas de importancia, las cuales pueden
comprobarse mediante el uso de tablas de verdad.
Tabla 2.5 Leyes de equivalencia de la l ogica proposicional
Asociatividad: (P Q) R P (Q R) (2.14)
(P Q) R P (Q R) (2.15)
Identidad: P false P (2.16)
P true P (2.17)
Idempotencia: P P P (2.18)
P P P (2.19)
Dominaci on P true true (2.20)
(o elemento nulo): P false false (2.21)
Conmutatividad: P Q Q P (2.22)
P Q Q P (2.23)
Tercero excluido: P P true (2.24)
Contradicci on: P P false (2.25)
Doble negaci on: P P (2.26)
Distributividad: P (Q R) (P Q) (P R) (2.27)
P (Q R) (P Q) (P R) (2.28)
De Morgan: (P Q) P Q (2.29)
(P Q) P Q (2.30)
Eliminaci on de P Q P Q (2.31)
operadores: P Q ( P Q) (P Q) (2.32)
P Q (P Q) ( P Q) (2.33)
P Q (P Q) (Q P) (2.34)
2.4 Equivalencia l ogica 63
A continuaci on mostraremos el uso de equivalencias l ogicas en particular como herra-
mienta auxiliar imprescindible en el an alisis de un argumento l ogico.
2.4.1. Razonamiento ecuacional
Consideremos la igualdad aritm etica x +y +x +z = y + 2x +z. Probablemente nin-
guno de nosotros dudara de su validez, debido a la experiencia con n umeros que tenemos
desde nuestra educaci on b asica. M as a un, si se nos pidiera una demostraci on formal tal vez
daramos la siguiente:
x + y +x +z = y +x +x +z = y + 2x + z;
y si se nos pidiera nuevamente una justicaci on tal vez apelaramos a las igualdades
x + y = y +x y x +x = 2x.
Este tipo de razonamiento se conoce como razonamiento ecuacional y ser a parte importante
del proceso de an alisis de un argumento l ogico.
Por lo general las fases de razonamiento ecuacional nos son tan familiares que no se
mencionan explcitamente dentro del an alisis de un argumento; de hecho, nosotros respeta-
remos esta costumbre. Sin embargo, en nuestro curso nos conciernen no s olo los aspectos
puramente matem aticos de un tema, sino tambi en el proceso de implementaci on, el cual
es esencialmente sint actico dado que las computadoras no entienden de signicados ni
son capaces de razonar como nosotros. A continuaci on discutimos las propiedades de la
igualdad, en particular la llamada regla de Leibniz que involucra a la sustituci on textual, y
que nos brindar a una manera posible de implementar el razonamiento ecuacional.
Si consideramos a la igualdad como un operador (cuyo resultado es 0 o 1), podemos
observar que tiene las siguientes propiedades:
Reexividad X = X
Conmutatividad
X = Y
Y = X
Transitividad
X = Y
Y = Z
X = Z
Las ultimas dos propiedades las dimos como reglas de inferencia, puesto que correspon-
den a argumentos correctos. Finalmente, veamos una propiedad, conocida con el nombre
de regla de Leibniz, que nos va a permitir sustituir expresiones iguales en expresiones que
64 L ogica proposicional
resultar an iguales nuevamente y proporciona una manera de implementar nuestro razona-
miento ecuacional usual.
X = Y
E[z := X] = E[z := Y ]
Leibniz
Lo que esta regla de inferencia nos dice es que si suponemos que X = Y, entonces es
posible tomar dos copias de la expresi on E (en la que tenemos presencias de una variable
z), en una de ellas sustituir a la variable z por la expresi on X, y en la otra copia sustituir
a la misma variable z por la expresi on Y , obteniendo que las expresiones E[z := X]
y E[z := Y ] son iguales nuevamente. Es decir, la sustituci on de expresiones iguales en
expresiones iguales genera expresiones iguales.
Es importante notar que en el caso de expresiones l ogicas el concepto de igualdad que
se utiliza es el de equivalencia l ogica, es decir, si decimos que dos expresiones l ogicas A y
B son iguales, queremos decir que A B. De manera que en este caso podemos reescribir
el argumento de Leibniz de la siguiente forma:
X Y
E[z := X] E[z := Y ]
Leibniz
Veamos unos ejemplos de la aplicaci on de esta regla de inferencia.
Ejemplo 2.17. Supongamos que b + 3 = c + 5, y sea E la expresi on aritm etica d + e. Entonces,
tenemos la siguiente instancia de la regla de Leibniz:
b + 3 = c + 5
(d +e)[e := b + 3] = (d + e)[e := c + 5]
,
lo que nos permite concluir que d +(b +3) = d +(c +5) es verdadero en aquellos estados
en los que b + 3 = c + 5 se eval ue a verdadero. Como la suma es asociativa y podemos
eliminar par entesis superuos, esto es lo mismo que decir d +b + 3 = d +c + 5.
Las situaciones en las que usualmente se usa la regla de Leibniz se dan como sigue:
Tenemos una expresi on E[z := X] = G. Esto quiere decir que dada una expresi on
cualquiera G, localizamos en ella una subexpresi on a la que denotamos con X. Esta
subexpresi on puede aparecer m as de una vez, ya que la variable original z tambi en
puede ocurrir m as de una vez en E.
Buscamos una expresi on Y que nos convenga, tal que X = Y .
Podemos entonces obtener una nueva expresi on G

= E[z := Y ].
2.4 Equivalencia l ogica 65
La regla de Leibniz nos permite concluir que G = G

A continuaci on discutimos el ejemplo introductorio de esta secci on.


Ejemplo 2.18. Sabemos que
x + y = y +x (2.35)
x + x = 2 x (2.36)
Sea E = x +y +x +z. Si deseamos simplicar esta expresi on, debemos poder aplicar
los dos hechos que sabemos equivalencias (2.35) y (2.36) . Por lo pronto, unicamente
podemos aplicar la equivalencia (2.35), con dos lugares (en la expresi on que queremos
manipular) donde podemos hacerlo, considerando que tratamos de localizar a cualquiera
de los dos lados de la igualdad:
x+y +x +z (primer acomodo)
x + y+x +z (segundo acomodo)
Si utilizamos el primer acomodo, entonces X = x + y e Y = y + x, y sustituimos lo
que est a en la caja por la expresi on equivalente:
y+x +x +z
Pero ahora tenemos la siguiente expresi on, en la que, nuevamente, podemos localizar
varias subexpresiones:
y+x +x +z (tercer acomodo)
y + x+x +z (cuarto acomodo)
Pero si elegimos el tercer acomodo, regresamos a donde est abamos, por lo que no nos
conviene. Mejor elegimos el cuarto acomodo, utilizando la equivalencia (2.36) y tenemos
X = x +x, Y = 2 x, qued andonos nuestra expresi on de la siguiente forma:
y + 2 x +z
El lector puede comprobar que tambi en eligiendo el segundo patr on que reconocimos en la
expresi on original hubi esemos podido llegar al mismo resultado.
Veamos otro ejemplo aritm etico en detalle.
Ejemplo 2.19.
Supongamos que queremos demostrar
(a +b) b = a
66 L ogica proposicional
y que conocemos las siguientes equivalencias:
(x +y) z = x + (y z) (2.37)
y y = 0 (2.38)
x + 0 = x (2.39)
Entonces, podemos pensar en la siguiente demostraci on, utilizando la propiedad de
sustituci on (teorema 2.1), la regla de Leibniz, y lo que ya conocemos. Como queremos
demostrar que (a + b) b = a, y dado que el lado izquierdo de la igualdad presenta m as
estructura, lo indicado es salir de ese lado y tratar, mediante la aplicaci on de la propiedad
de sustituci on y la regla de Leibniz, llegar a a. Es obvio que cada vez que pasamos a una
nueva instancia de una regla de inferencia cualquiera, estamos utilizando la propiedad de
transitividad para encadenar las igualdades:
Paso 1: Aplicar el Teorema 2.1.
_
(x +y) z = x + (y z)
_
[x, y, z := a, b, b] =
=
_
(a +b) b = a + (b b)
La propiedad que estamos utilizando es la de sustituci on: sabemos que la premisa es
una igualdad v alida, una tautologa,
_
(x+y)z = x+(yz)
_
y elegimos las sustituciones
que necesitamos para obtener la expresi on con la que queremos trabajar
_
(a + b) b
_
. De
la regla de inferencia tenemos lo siguiente:
E es (x +y) z = x + (y z)
E[x, y, z := a, b, b] es (a +b) b = a + (b b)
Tambi en utilizamos este mismo teorema de sustituci on para pasar de la expresi on que
tenemos (y y = 0) a la forma que queremos (b b = 0).
Paso 2: Volver a aplicar el Teorema 2.1.
y y = 0
(y y = 0)[y := b]
Y como
(y y = 0)[y := b] es (b b = 0),
tenemos ya:
2.4 Equivalencia l ogica 67
(a +b) b = a + (b b) (por la aplicaci on del paso 1)
b b = 0 (por la aplicaci on del paso 2)
Podemos ahora utilizar la regla de Leibniz de la siguiente manera:
Paso 3: Aplicar la regla de Leibniz.
b b = 0
a + (b b) = a + 0
donde:
X es b b
Y 0
E a +z
E[z := X] (a + z)[z := b b] = (a + (b b))
E[z := 0] (a + z)[z := 0] = (a + (0)),
que cuando quitamos los par entesis superuos nos dejan
a + (b b) = a + 0
Tambi en sabemos que x + 0 = x es una igualdad v alida. Entonces podemos aplicarle
sustituci on textual y seguir teniendo una igualdad v alida:
Paso 4: x + 0 = x
(x + 0 = x)[x := a]
.
Pero como (x + 0 = x)[x := a] es a + 0 = a, tenemos la siguiente sucesi on de
igualdades v alidas:
(a +b) b = a + (b b)
b b = 0
a + (b b) = a + 0
a + 0 = a
(a +b) b = a
Decimos entonces que hemos demostrado que (a +b) b = a es una igualdad v alida.
68 L ogica proposicional
2.4.2.

Algebra de equivalencias l ogicas
An alogamente al hecho de que el razonamiento aritm etico ecuacional es la base del
algebra que conocemos desde hace tiempo, en el caso de las expresiones l ogicas se genera
un algebra que manipula variables y constantes que representan valores de verdad; en parti-
cular podemos emplear equivalencias l ogicas para deducir o simplicar nuevas expresiones
a partir de otras ya conocidas. Ilustremos esto mediante algunos ejemplos.
Ejemplo 2.20. Sabemos que
P P P (2.40)
P Q Q P (2.41)
Supongamos que queremos simplicar la siguiente expresi on:
q r q s
Para poder aplicar el argumento de Leibniz, hagamos primero sustituci on textual sobre las
variables, para tener los mismos t erminos:
(q r q s)[q, r, s := P, Q, R] = P Q P R.
Ahora tratemos de identicar alguno de los lados de las equivalencias dentro de la expresi on
que tenemos. Existen dos posiciones que podemos reconocer:
P Q P R lado izquierdo de (2.41)
P Q P R lado derecho de (2.41)
Si aplicamos a la primera elecci on la igualdad, X = Y con X = P Q y Y = Q P, la
regla de Leibniz nos lleva a la expresi on:
P Q Q P
P Q P R Q P P R
.
Enseguida localizamos el otro esquema que corresponde a la equivalencia dada en (2.40),
al principio de esta secci on, donde X=P P y Y =P. La sustituci on se hace como sigue:
P P P
Q P P R Q P R
,
2.4 Equivalencia l ogica 69
por lo que terminamos con la siguiente expresi on:
Q P R P Q R;
de las dos aplicaciones de Leibniz y usando la regla de transitividad podemos concluir que
P Q P R P Q R.
Si nos quedamos con la expresi on de la derecha y hacemos la sustituci on de las variables
de regreso a q, r y s, tenemos:
(P Q R)[P, Q, R := q, r, s] = q r s
y esta ultima es la simplicaci on nal de la original.
Ejemplo 2.21. Consideremos ahora la siguiente expresi on l ogica (P Q) Q. El objetivo es
simplicarla lo m as posible. Tenemos que:
1. (A B) C A (B C) Propiedad asociativa de
2. (P Q) Q P (Q Q) Sustituci on textual en 1)
3. P P false X=P P e Y = false
4. P (Q Q) P false Leibniz
y como
P false false Elemento nulo
ya terminamos.
De esta manera hemos demostrado que (P Q) Q false, con la siguiente sucesi on
de equivalencias, utilizando la propiedad de transitividad de la equivalencia l ogica:
(P Q) Q P (Q Q)
P false
false
70 L ogica proposicional
En la tabla 2.5 (p agina 62) mostramos la lista inicial de equivalencias que vamos a
utilizar para nuestro razonamiento ecuacional. Sin embargo existen muchas otras equiva-
lencias que se pueden derivar de las anteriores y son de gran importancia. A continuaci on
obtenemos algunas de ellas.
Leyes de absorci on:
P (P Q) P (2.42)
P (P Q) P (2.43)
Leyes de simplicaci on:
(P Q) ( P Q) Q (2.44)
(P Q) ( P Q) Q (2.45)
Debemos demostrar estas nuevas leyes, ya que no aparecen en nuestro conjunto inicial
de equivalencias. Lo haremos con cuidado y detalle en uno de los casos, dejando el otro
como ejercicio.
Ejemplo 2.22. Absorci on frente a : P (P Q) P.
Utilizaremos el m etodo de tomar a uno de los equivalentes y derivar, a partir de el,
al otro. Como el de la izquierda tiene m as estructura, es el que tomamos como punto de
partida.
Punto de partida. Localizaremos este esquema en al-
guno de los axiomas o teoremas que ya hayamos de-
mostrado. En este momento unicamente contamos con
(2.14) a (2.33).
P (P Q)
Usando Identidad (2.17) y Leibniz.
P P true
P (P Q) (P true) (P Q)
(P true) (P Q)
Distributividad de (2.28)
(P Q) (P R) P (Q R)
Usando sustituci on [Q, R := true, Q] tenemos: P (true Q)
(Contin ua en la siguiente p agina)
2.4 Equivalencia l ogica 71
(Contin ua de la p agina anterior)
(de la p agina anterior) P (true Q)
Usando dominaci on (2.20) y Leibniz:
Q true true
P (Q true) P true
P true
Usando identidad de (2.17) P
Ejemplo 2.23. Simplicaci on: (P Q) ( P Q) Q.
Nuevamente tenemos que demostrar una equivalencia l ogica, por lo que trataremos de
transformar a uno de los equivalentes en el otro. Como el equivalente de la izquierda tiene
mayor estructura, partiremos de el. Dado que el n umero que le corresponde a este teorema
es el (2.44), podemos utilizar en este caso las leyes
_
(2.14) a (2.43)
_
.
Punto de partida. Localizaremos este esquema en al-
guno de los axiomas o teoremas que ya hayamos de-
mostrado. Vemos un esquema similar en el rango de-
recho de (2.28):
(P Q) (P Q)
Usando Conmutatividad (2.22).
(P Q) ( P Q) (Q P) (Q P) (Q P) (Q P)
Instanciando (2.28)
(P Q) (P R) P (Q R)
(Q P) (Q P) Q (P P)
Q (P P)
Contradicci on: (2.25)
P P false Q false
(Contin ua en la siguiente p agina)
72 L ogica proposicional
(Contin ua de la p agina anterior)
(de la p agina anterior) Q false
Identidad: (2.16)
Q false Q Q
Se deja como ejercicio la demostraci on de (2.43).
En todos los ejemplos de esta secci on marcamos e hicimos explcitos todos los usos de
las reglas. Sin embargo, en la pr actica muchas de estas reglas se usan de manera implcita.
Acontinuaci on damos algunos atajos que se pueden tomar al hacer algebra de equivalencias
l ogicas.
1. La Ley de Conmutatividad se aplica directamente, sin avisar.
2. La Ley de Asociatividad se aplica directamente, sin avisar.
3. Se puede desechar directamente lo siguiente:
a) Copias duplicadas de una subexpresi on en una expresi on que es
una disyunci on o una conjunci on (Ley de Idempotencia).
b) La constante true en una conjunci on (Ley de Identidad para ).
c) La constante false en una disyunci on (Ley de Identidad para ).
4. De igual manera, se puede simplicar haciendo lo siguiente:
a) Sustituir el esquema A A por false (Ley de Contradicci on).
b) Sustituir el esquema A A por true (Ley del Tercero Excluido).
c) Sustituir el esquema A por A (Ley de Doble Negaci on).
En esta secci on hemos mostrado c omo es posible justicar formalmente el razonamien-
to ecuacional usual. Esta justicaci on, que se hizo apelando al uso de la regla de Leibniz,
adem as de proporcionar un fundamento matem atico formal a un razonamiento al que esta-
mos acostumbrados desde hace mucho, nos da una pauta para una posible automatizaci on
del proceso.
En adelante el uso de razonamiento ecuacional ser a, por lo general, intuitivo, sin reque-
rir el uso explcito de la regla de Leibniz.
Para terminar probaremos la equivalencia l ogica entre una implicaci on y su contraposi-
tiva, usando algunos de los atajos anteriores. Esto justica el m etodo de demostraci on por
contrapositivo, usual en Matem aticas.
Ejemplo 2.24. Contrapositiva: P Q Q P. Usaremos la ley de eliminaci on de la
2.4 Equivalencia l ogica 73
implicaci on mediante disyunci on, as como las leyes de De Morgan.
P Q P Q
(P Q)
((Q P))
Q P
Q P
Ejercicios
2.4.1.- Para las siguientes expresiones E, dadas z, X e Y , obtener E[z := X] y E[z := Y ].
z E X Y
(a) p p p q q p
(b) p (p q) (p r) true p p
(c) p p p p p q p q p
(d) q p ( p q) p (q r) (p q) (p r)
2.4.2.- La regla de Leibniz se reere a cualquier combinaci on de expresiones E, X e Y
y a cualquier variable z. A continuaci on damos varios razonamientos que siguen el
patr on de Leibniz y que est an incompletos. El orden no es forzosamente el dado por
la expresi on, esto es, abajo de X no forzosamente est a E[z := X]. Llena las partes
que faltan y escribe en qu e consiste la expresi on E. Los ultimos dos ejercicios tienen
tres respuestas. Dalas todas.
a)
p p 0
p 0 q ?
b)
7 = y + 1
7 x + 7 y = ?
74 L ogica proposicional
c)
p q q p
p q p ?
e)
x + 1 = y
3 (x + 1) + 3 x + 1 = ?
g)
x = y
x +x = ?
d)
x = b +c
x + y +w = ?
f )
b c = y + w
x + y +w = ?
2.4.3.- El objetivo de este ejercicio es reforzar las habilidades en el uso del argumento de
Leibniz para demostrar que dos expresiones son iguales. Vamos a dar las expresiones
E[z := X] y E[z := Y ] y deber as localizar respectivamente a X y a Y .
E[z := X] E[z := Y ]
(a) (x +y) (x + y) (x + y) (y +x)
(b) (x +y) (x + y) (y +x) (y +x)
(c) x +y +w +x x +y w + x
(d) x y x (y +w) y x
(e) x y x y x x
2.4.4.- Elimina los operadores y de cada una de las siguientes proposiciones:
a) (P Q R) ((R S) (Q S))
b) (P Q) (Q R)
c) P Q
d) (P Q) ((P Q) Q)
2.5. Conceptos sem anticos importantes
Una vez que hemos estudiado el an alisis sint actico de una f ormula l ogica pasamos a
estudiar ciertos conceptos de importancia relacionados con su sem antica.
2.5 Conceptos sem anticos importantes 75
2.5.1. Interpretaciones
La noci on de interpretaci on presentada en esta secci on ser a de gran importancia para
evitar el uso de tablas de verdad en las pruebas de correctud.
Denici on 2.11 Un estado de las variables proposicionales es una funci on 1 que asigna a cada
variable proposicional el valor de falso o verdadero:
1 : V ariables proposicionales 0, 1
Cada estado genera una funci on de interpretaci on sobre todas las f ormulas, denida
como se explica a continuaci on.
Denici on 2.12 Cada estado 1 determina una interpretaci on de las f ormulas denotada tambi en
por 1 denida como sigue:
1(true) = 1
1(false) = 0
1(P) = 1 si y s olo si 1(P) = 0
1(P Q) = 0 si y s olo si 1(P) = 0 = 1(Q)
1(P Q) = 1 si y s olo si 1(P) = 1 = 1(Q)
1(P Q) = 0 si y s olo si 1(P) = 1 e 1(Q) = 0
1(P Q) = 1 si y s olo si 1(P) = 1(Q)
Si 1(P) = 1 entonces decimos que
1 satisface a P, o bien
P es satisfacible en 1, o bien
P se satisface en 1, o bien
1 es un modelo de P.
Ejemplo 2.25. Si tenemos la f ormula A = p q r, la siguiente asignaci on de estado
1
1
(p) = 1, 1
1
(q) = 0, 1
1
(r) = 0,
hace 1
1
(p q r) = 0, por lo que 1
1
no es un modelo para la f ormula. Por otro lado, el
estado
1
2
(p) = 1, 1
2
(q) = 0, 1
2
(r) = 1
76 L ogica proposicional
hace que 1
2
(p q r) = 1, por lo que s es un modelo para la f ormula.
Dada una f ormula P podemos preguntarnos cu antas interpretaciones hacen verdadera
a P? Las posibles respuestas llevan a las siguientes deniciones:
Denici on 2.13 Sea P una f ormula. Entonces
Si 1(P) = 1 para toda interpretaci on 1, decimos que P es una tautologa o f ormula
v alida y escribimos [= P.
Si 1(P) = 1 para alguna interpretaci on 1, decimos que P es satisfacible, que P es
verdadera en 1 o que 1 es modelo de P y escribimos 1 [= P
Si 1(P) = 0 para alguna interpretaci on 1, decimos que P es falsa o insatisfacible en
1 o que 1 no es modelo de P y escribimos 1 ,[= P
Si 1(P) = 0 para toda interpretaci on 1, decimos que P es una contradicci on o
f ormula no satisfacible.
Similarmente, si es un conjunto de f ormulas decimos que:
es satisfacible si tiene un modelo, es decir, si existe una interpretaci on 1 tal que
1(P) = 1 para toda P , lo cual denotamos a veces, abusando de la notaci on, con
1() = 1.
es insatisfacible o no satisfacible si no tiene un modelo, es decir, si no existe una
interpretaci on 1 tal que 1(P) = 1 para toda P .
Para el ultimo ejemplo se cumple lo siguiente, de acuerdo a la denici on anterior, 1
1
,[=
A, 1
2
[= A, ,[= /. Veamos otro ejemplo.
Ejemplo 2.26. Sean
1
= p q, r s, s,
2
= p q, (q s), s p. Entonces
Si 1(s) = 1(r) = 1(p) = 0, entonces 1(
1
) = 1 por lo que
1
es satisfacible.

2
resulta insatisfacible pues sup ongase que existe una interpretaci on 1 tal que 1(
2
) =
1. Entonces, se tiene que 1((q s)) = 1 por lo que 1(q) = 1(s) = 1. Adem as
como 1(p q) = 1 entonces 1(p) = 0 puesto que el antecedente de la implicaci on
es falso. De esto ultimo se tiene 1(s) = 1 dado que 1(s p) = 1. De manera que
se tiene 1(s) = 1 = 1(s) lo cual es imposible. Por lo tanto no puede existir una
interpretaci on 1 que satisfaga a
2
Con respecto a las tablas de verdad tenemos las siguientes observaciones:
2.5 Conceptos sem anticos importantes 77
Una f ormula P es satisfacible si en alguna lnea de la tabla de verdad, P toma el
valor 1. En caso contrario, es decir si en todas las lneas toma el valor 0, entonces es
insatisfacible (contradicci on).
Un conjunto de f ormulas es satisfacible si existe alguna lnea de la tabla de verdad
en la que todas las f ormulas de toman el valor 1.
2.5.2. Consecuencia l ogica
La denici on matem atica formal de argumento deductivo correcto se sirve del concepto
de consecuencia o implicaci on l ogica que discutimos aqu.
Denici on 2.14 (consecuencia l ogica) Sean = A
1
, . . . , A
n
un conjunto de f ormulas y B
una f ormula. Decimos que B es consecuencia l ogica de si toda interpretaci on 1 que
satisface a tambi en satisface a B. Es decir, si todo modelo de es modelo de B. En tal
caso escribimos [= B.
N otese que la relaci on de consecuencia l ogica est a dada por una implicaci on de la forma
Si 1() = 1 entonces 1(B) = 1.
De manera que no se arma nada acerca de la satisfacibilidad del conjunto , sino
que simplemente se supone que es satisfacible y, en tal caso, se prueba que la f ormula B
tambi en lo es con la misma interpretaci on.
Obs ervese la sobrecarga del smbolo [= que previamente utilizamos para denotar satis-
facibilidad 1 [= A y tautologas [= A.
Ejemplo 2.27. Considerese el siguiente conjunto = q p, p t, t s, s r. Muestre
que [= q r. Sea 1 un modelo de . Tenemos que demostrar que 1(q r) = 1. Si
1(q) = 0 entonces 1(q r) = 1 y terminamos. En otro caso se tiene 1(q) = 1 de donde
1(p) = 1 pues 1(q p) = 1. Entonces se tiene 1(t) = 1, pues 1 es modelo de p t, de
donde 1(s) = 1 dado que I tambi en es modelo de t s. Finalmente, como 1(s r) = 1
e 1(s) = 1 entonces 1(r) = 1. Por lo tanto 1(q r) = 1.
Para terminar la secci on discutimos algunas propiedades importantes de la relaci on de
consecuencia l ogica.
Proposici on 2.1 La relaci on de consecuencia l ogica cumple las siguientes propiedades:
(a) Si A entonces [= A.
(b) Principio de refutaci on: [= A si y s olo si A es insatisfacible.
(c) [= A B si y s olo si A [= B.
78 L ogica proposicional
(d) Insatisfacibilidad implica trivialidad: Si es insatisfacible entonces [= A
para toda f ormula A.
(e) Si [= false entonces es insatisfacible.
(f) A B si y s olo si A [= B y B [= A.
(g) [= A(es decir Aes tautologa) si y s olo si [= A(es decir Aes consecuencia l ogica
del conjunto vaco).
Demostraci on.
Procedemos a justicar algunos de los incisos:
(a) Si 1() = 1 quiere decir que existe un modelo para y, por lo tanto, para cada una
de las f ormulas de , en particular para A.
(b) Supongamos que toda interpretaci on que satisface a tambi en satisface a A (deni-
ci on de [= A). Si una interpretaci on satisface a , dado que satisfaca tambi en a A,
entonces no satisface a A. Por lo tanto, es imposible satisfacer a y a A al mismo
tiempo, lo cual implica que A es insatisfacible.
En sentido contrario, supongamos que A es insatisfacible. Para mostrar que
[= A, consideremos 1 una interpretaci on cualquiera tal que 1() = 1. En tal caso,
necesariamente tenemos que 1(A) = 1 puesto que de lo contrario 1(A) = 0, por lo
que 1(A) = 1 y as A sera satisfacible mediante 1, lo cual por hip otesis
no puede suceder.
(c) Supongamos [= A B. Por la denici on de consecuencia l ogica, tenemos que
si 1() = 1 entonces 1(A B) = 1. Para mostrar que A [= B sea 1 una
interpretaci on tal que 1(A) = 1; en esta interpretaci on se tiene que 1(A) = 1;
como adem as 1(A B) = 1 por hip otesis, porque estamos suponiendo 1() = 1,
entonces por denici on de la interpretaci on de una implicaci on, dado que para el
antecedente A se tiene 1(A) = 1, entonces necesariamente 1(B) = 1. Por lo tanto
A [= B.
En sentido contrario, supongamos que A [= B. Esto es que si 1( A) =
1 entonces 1(B) = 1. Sea 1 una interpretaci on tal que 1() = 1. Tenemos los
siguientes casos:
1(A) = 1. Entonces 1(B) = 1, pues se cumple que 1( A) = 1; con lo
que 1(A B) = 1 y tenemos que [= A B.
1(A) = 0. En este caso, independientemente de cu al sea el valor de 1(B),
tenemos 1(A B) = 1, por lo que nuevamente [= A B.
Por lo tanto, [= A B si y s olo si A [= B.
(d) Si es insatisfacible, quiere decir que para toda interpretaci on 1, se tiene 1() = 0.
Si esto es as, se cumple trivialmente que si 1() = 1 entonces 1(A) = 1. Es decir
[= A.
2.5 Conceptos sem anticos importantes 79
(e) Si [= false, por la denici on de consecuencia l ogica tenemos que 1() = 1 implica
1(false) = 1. Sin embargo, 1(false) = 0 siempre sucede; por lo que, como [= false
tenemos necesariamente que 1() = 0 para toda posible interpretaci on de , es decir,
es insatisfacible.
Se deja la justicaci on de los incisos restantes al lector.
Es importante disponer de m etodos algortmicos para decidir la consecuencia l ogica,
que nos permitir an, en particular, analizar argumentos del lenguaje natural y establecer su
correctud formalmente. En las siguientes secciones presentaremos algunos de estos m eto-
dos.
Ejercicios
2.5.1.- Para cada una de las f ormulas que siguen, determina si son o no satisfacibles. Si lo
son, muestra un modelo para cada una de ellas.
(a) p q p q
(b) ( p q) p
(c) p q p
(d) (p q) (q p)
2.5.2.- Usa interpretaciones para determinar si las siguientes f ormulas son tautologas, con-
tradicciones o contingentes. Si son contingentes, da una interpretaci on en la que la
f ormula no se eval ua a verdadero.
(a)
_
_
(p q) r
_

_
p (q r)
_
_
p q
(b)
_
p (q r)
_

_
p (q r)
_
(c) p q p r
(d)
_
p (p q)
_
p
2.5.3.- Decide si los siguientes conjuntos son satisfacibles.
a) = (q r) p q, p r
b) = p q, (q p), (q p) q p
c) = q r s, (q r), (r s), (s q)
d) = (p q) (p r), q r, (p r)
e) = p q, q s, p, s
80 L ogica proposicional
2.5.4.- Demuestra la consecuencia l ogica en cada caso.
a) p, q [= p q
b) p, q [= (p q)
c) p q p r, q r [= r
d) p q, p q [= p
e) r s t, t [= t q
f ) q r, r p, p q [= q r
2.6. An alisis de argumentos
En esta secci on aplicamos todos los conocimientos previos de l ogica matem atica estu-
diados hasta ahora para cumplir con nuestro prop osito fundamental: el an alisis de correctud
de un argumento l ogico proposicional.
2.6.1. Tablas de Verdad
Como ya discutimos antes, un argumento es correcto si y s olo si su f ormula asociada es
una tautologa; para decidir esta situaci on podemos construir la tabla de verdad correspon-
diente tal y como lo hicimos en la secci on 2.1.6. Veamos un ejemplo m as.
Ejemplo 2.28. El argumento P Q, QR/ P R es correcto.
Basta ver que [= (P Q) (QR) (P R) . La tabla de verdad se muestra en la
tabla 2.8 a continuaci on.
Tabla 2.8 P Q, Q R/ P R
P Q R (P Q) (Q R) (P R)
1 1 1 1 1 1 1 1
1 1 0 1 0 0 1 0
1 0 1 0 0 1 1 1
1 0 0 0 0 1 1 0
0 1 1 1 1 1 1 1
0 1 0 1 0 0 1 1
0 0 1 1 1 1 1 1
0 0 0 1 1 1 1 1
2.6 An alisis de argumentos 81
Como se observa de los valores en la quinta columna, en negritas, la f ormula es una
tautologa, por lo que este argumento, conocido como silogismo hipot etico, es correcto.
Este ejemplo, junto con los de la secci on 2.1.6, deja ver que la tabla de verdad se
vuelve m as complicada al aumentar el n umero de variables proposicionales involucradas.
La construcci on de la tabla de verdad completa, aunque plausible desde el punto de vista
te orico, es de fuerza bruta. En la pr actica pues nos obliga, en los casos interesantes y no
triviales, a evaluar un n umero muy grande de estados para determinar si tenemos o no una
tautologa (o una contradicci on). Aun si lo hici esemos con una computadora, y suponiendo
que a la computadora le llevara un milisegundo evaluar cada estado, si la expresi on es muy
grande tenemos el crecimiento en el n umero de estados que vemos en la tabla 2.9.
Tabla 2.9 Crecimiento en el n umero de estados con respecto a n umero de variables
N umero de N umero de Tiempo
variables estados (segundos)
1 2 .002
2 4 .004
3 8 .008
.
.
.
.
.
.
.
.
.
10 1, 024 1
11 2, 048 2
.
.
.
.
.
.
.
.
.
20 1, 048, 576 1, 048
(= 17min)
.
.
.
.
.
.
.
.
.
Como se puede observar en la tabla 2.9, cada vez que se agrega una variable a la expre-
si on, el tiempo que lleva calcular todos sus estados se duplica, siguiendo, como ya men-
cionamos, a la funci on 2
n
, donde n es el n umero de variables
3
. Esta ineciencia surge en
la pr actica, por ejemplo, en problemas de calendarizaci on o b usqueda de rutas donde cier-
tas f ormulas l ogicas involucradas tienen usualmente cientos de variables. Para estimar la
ineciencia consid erese una f ormula con 500 variables, cuya tabla de verdad tendr a 2
500
renglones, n umero aproximadamente igual a 10
150
, los cuales, de acuerdo a nuestra suposi-
ci on anterior respecto a la velocidad de la computadora, se calcularan en 10
147
milisegun-
dos. Dado que en un a no hay 3.1536 10
10
milisegundos, la tabla terminara de calcularse
en aproximadamente 3.2 10
139
a nos; considerando que la edad de nuestro planeta es
3
Cuando tenemos este tipo de c alculo, decimos que la funci on crece con 2
n
, o que tiene un crecimiento
exponencial. Este tipo de c alculos, en la pr actica, no pueden ser evaluados en una computadora cuando la n
no es peque na.
82 L ogica proposicional
aproximadamente 10
9
a nos, podemos corroborar que el tiempo estimado del m etodo es
inadmisible.
Dada esta situaci on, vamos a utilizar tablas de verdad unicamente para vericar expre-
siones peque nas y cuando no podamos recurrir a otras t ecnicas.
Obs ervese que el m etodo de tablas de verdad puede evitarse al usar esquemas: una vez
que se prueba que un argumento es correcto, el mismo genera un esquema, llamado regla
de inferencia y cada instancia de estaregla ser a, a su vez, un argumento correcto.
Ejemplo 2.29. Mostrar la correctud del argumento
r s t
(r s t) p (q w)
p (q w)
La tabla de verdad para este an alisis tendra 2
6
= 64 renglones, dado que tenemos seis
variables. Sin embargo, no es necesario el an alisis puesto que el argumento corresponde al
esquema del modus ponens que ya mostramos que es correcto. Formalmente tenemos que
_
P(P Q) Q
__
P, Q := r s t, p (q w)

=
= ((r s t)
_
(r s t) (p (q w)) (p (q w))
y como [= P (P Q) Q podemos concluir que
[= ((r s t)
_
(r s t) (p (q w)) (p (q w)).
Este m etodo es util en algunos casos en los que ya se conoce de antemano un esquema
de argumento correcto; sin embargo no es siempre efectivo ni f acil de implementar.
2.6.2. Uso de interpretaciones
Ya estamos convencidos de que el uso de una tabla de verdad para analizar la correctud
de un argumento es una muy mala idea en general.
Construir la tabla de verdad para una f ormula de la forma A
1
. . . A
n
B, en su
totalidad, resulta, en la mayora de los casos, innecesario. Por ejemplo, al observar nueva-
mente la tabla 2.8, podemos darnos cuenta de que s olo nos interesa la mitad de esta, a saber
los renglones donde la conjunci on de las premisas es verdadera. El resto de la tabla pue-
de desecharse puesto que si la conjunci on de las premisas no es verdadera, la implicaci on
ser a verdadera autom aticamente. El concepto de consecuencia l ogica toma en cuenta esta
observaci on al suponer que las premisas son ciertas y bajo este supuesto mostrar que, bajo
la misma interpretaci on, la conclusi on tambi en lo es.
2.6 An alisis de argumentos 83
Para mostrar la correctud del argumento l ogico A
1
, . . . , A
n
/ B mediante el uso
de interpretaciones, nos servimos de la siguiente proposici on cuya demostraci on dejamos
como ejercicio.
Proposici on 2.2 El argumento A
1
, . . . , A
n
/ B es l ogicamente correcto si y s olo si
A
1
, . . . , A
n
[= B,
es decir, si la conclusi on es consecuencia l ogica de las premisas.
De acuerdo a las propiedades de la consecuencia l ogica, existen b asicamente dos formas
para demostrar la correctud de un argumento, el m etodo directo y el indirecto.
M etodo directo: Probar la consecuencia A
1
, . . . , A
n
[= B. Para esto se supone la existen-
cia de una interpretaci on 1 que sea modelo de todas las premisas y se argumenta,
usando esta informaci on y la denici on de interpretaci on, que la conclusi on B tam-
bi en se satisface con 1.
M etodo indirecto (refutaci on o contradicci on): Probar que es insatisfacible el conjun-
to A
1
, . . . , A
n
, B. Para esto se supone que hay una interpretaci on 1 que hace
verdaderas a todas las premisas y a la negaci on de la conclusi on B o bien, equiva-
lentemente, hace falsa a la conclusi on B. Apelando a este supuesto y a la denici on
de interpretaci on, se trata de mostrar que tal interpretaci on no puede existir; esto se
logra mostrando que cierta f ormula est a forzada a ser verdadera y falsa al mismo
tiempo.
Es de importancia observar que estos m etodos son la base de los m etodos usuales de
demostraci on en matem aticas. En un curso cualquiera de matem aticas, cuando se dice que
la demostraci on de un teorema de la forma A B es directa es porque estamos probando
la consecuencia A [= B con el m etodo directo. Similarmente si hablamos de una demos-
traci on indirecta o por contradicci on o reducci on al absurdo es porque estamos probando
A [= B con el m etodo indirecto.
Veamos algunos ejemplos.
Ejemplo 2.30. Mostrar la correctud del argumento p, s s, p q, q r/ r.
Sean = p, s s, p q, q r; debemos mostrar que [= r, para lo cual
tomamos una interpretaci on 1 tal que 1 es modelo de . Debemos mostrar que 1(r) = 1.
Como 1 es modelo de entonces 1(p)=1 e 1(p q) =1, de donde 1(q) =1 puesto
que 1(p) =0. Como 1(q) =1 e 1(q r) =1 entonces 1(r) =0, de donde nalmente se
obtiene 1(r) =1. Obs ervese que la prueba no determina un valor para s ya que con esta
interpretaci on el argumento es correcto independientemente del valor de s. En particular,
la unica f ormula que involucra a s es la tautologa s s.
84 L ogica proposicional
Este m etodo puede resultar tedioso o intrincado pero puede escribirse de manera m as
clara enunciando cada paso de razonamiento, como en el siguiente ejemplo.
Ejemplo 2.31. Mostrar la correctud del argumento p q, q/ p, conocido como Modus
Tollens, al que se hace referencia m as adelante.
Para lograr esto mostramos la consecuencia l ogica p q, q [= p.
1. 1(p q) =1 Hip otesis
2. 1(q) =1 Hip otesis
3. 1(q) =0 por 2, ya que 1(q) = 1
4. 1(p) =0 por 1 y 3, ya que si 1(p q) = 1 e 1(q) = 0,
1(p) no puede ser 1.
De manera que el argumento es correcto. El razonamiento paso a paso permite una
mayor claridad en el proceso de an alisis. Por supuesto que cada paso debe tener una justi-
caci on exacta. El an alisis termin o aqu al llegar a que la conclusi on es verdadera, por lo
que se prob o la consecuencia l ogica de manera directa.
Ejemplo 2.32. Si hoy tirila y Chubaka es kismi entonces Chubaka es borogrove y si hoy no tirila
entonces hay fefos. M as a un sabemos que no hay fefos y que Chubaka es kismi, luego
entonces Chubaka es borogrove.
La formalizaci on es:
Variable Proposicional Enunciado
t hoy tirila
k Chubaka es kismi
b Chubaka es borogrove
f hay fefos
y el argumento queda como sigue:
t k b Si hoy tirila y Chubaka es kismi entonces Chubaka es
borogrove
t f si hoy no tirila entonces hay fefos
f k sabemos que no hay fefos y que Chubaka es kismi
b de donde Chubaka es borogrove
Queremos demostrar que t k b, t f, f k [= b.
2.6 An alisis de argumentos 85
1. 1(t k b) = 1 Hip otesis.
2. 1(t f) = 1 Hip otesis.
3. 1(f k) = 1 Hip otesis.
4. 1(b) = 0 Refutaci on.
5. 1(k) = 1 por 3, 1(p q) = 1 si y s olo si 1(p) = 1 e
1(q) = 1
6. 1(t k) = 0 por 4 y 1. Como 1(b) = 0 y la implicaci on en
1 es verdadera, entonces la unica posibilidad
para t k es que valga 0.
7. 1(t) = 0 por 5 y 6. Por 5, 1(k) = 1; si 1(t k) = 0
(por 6) es porque 1(t) = 0
8. 1(t) = 1 por 7.
9. 1(f) = 1 por 2 y 8. Como el antecedente es verdadero
en (2), para que la implicaci on sea verdadera
el consecuente tiene que serlo.
10. 1(f) = 1 por 3, Tenemos que 1(f k) = 1 y esta
interpretaci on exige 1(f) = 1 e 1(k) = 1.
11. 1(f) = 0 por 10, lo que nos lleva a una contradicci on
con 9.
Los pasos 9 y 11 generan una contradicci on explcita, de manera que por el principio
de refutaci on el conjunto b es insatisfacible y el argumento es correcto.
Ejemplo 2.33. Mostrar la correctud del siguiente argumento conocido como dilema constructivo
simple: p r, p r/ r.
1. 1(p r) = 1 Hip otesis
2. 1(p r) = 1 Hip otesis
3. 1(r) = 0 Refutaci on
4. 1(p) = 0 por 3 y 1. Como 1(p r) = 1 e 1(r) = 0,
1(p) tiene que ser 0.
5. 1(p) = 0 por 3 y 2, argumento similar a 4
6. 1(p) = 1 por 5, pero hay contradicci on con 4
Por lo tanto el argumento es correcto.
Es importante observar lo siguiente acerca del uso del m etodo de interpretaciones para
analizar argumentos:
86 L ogica proposicional
Si se usa el m etodo directo, el an alisis termina una vez que se logra asignar a la
conclusi on el valor de verdadero.
Si se usa el m etodo indirecto, el an alisis termina una vez que se logre forzar a que
una f ormula tome los dos valores posibles de verdad. Esta f ormula es generalmente
una variable proposicional, aunque esto no es la unica opci on.
Forzar un valor v para una f ormula A signica que, de acuerdo a la denici on de
interpretaci on y a los valores previamente obtenidos de variables o f ormulas, el valor
para A es necesariamente y sin lugar a dudas el valor v, que puede ser 1 o 0. Por
ejemplo, si sabemos que 1(pq)=1 e 1(q)=0, entonces necesariamente 1(p)=0,
puesto que si tuvi esemos 1(p)=1, la denici on de interpretaci on para la implicaci on
nos llevara a 1(p q) =0, lo cual sabemos que no sucede. De esta manera el valor
de p est a forzado a ser 0.
Es error com un asignar valores que no est an forzados; por ejemplo, si s olo sabemos
que 1(r s)=1, entonces es un error decir que el valor 1(s) = 0 est a forzado puesto
que no hay suciente informaci on para descartar la posibilidad de que 1(r)=0, en
cuyo caso s podra ser verdadero sin afectar el valor conocido de r s.
Si al usar el m etodo indirecto no es posible hallar una contradicci on o si en el m etodo
directo no se forz o a que la conclusi on sea verdadera, entonces el argumento resul-
ta incorrecto y la interpretaci on asignada ser a un contraejemplo a la correctud del
argumento, puesto que las premisas ser an ciertas y la conclusi on falsa.
Analizaremos ahora un par de argumentos incorrectos.
Ejemplo 2.34. Analizar el argumento q p, r s/ r p.
Procedemos directamente:
1. 1(q p) = 1 Hip otesis
2. 1(r s) = 1 Hip otesis
En este momento no hay manera de forzar ning un valor puesto que tanto la implicaci on
como la disyunci on son verdaderas en tres estados. Esta libertad nos permite asignar valores
que causen que la conclusi on sea falsa, lo que sucede como sigue:
3. 1(r) = 1 Supuesto
4. 1(p) = 0 Supuesto
A un no terminamos, puesto que debemos dar valores a q y s, los cuales pueden obtenerse
como sigue:
5. 1(q) = 0 por 1 y 4
6. 1(s) = 0 Supuesto
2.6 An alisis de argumentos 87
De manera que la interpretaci on dada por 1(p) = 1(q) = 1(s) = 0 e 1(r) = 1 es un
contraejemplo al argumento, pues con esta interpretaci on 1(r p) = 0, ya que 1 0 es
0. Esto es, en el estado p = 0, q = 0, s = 0, r = 1, tenemos que
((q p) (r s)) (r p)
se eval ua a 0.
(2) (3) (1) (5) (4)
p q r s q p r s r p
0 0 1 0 1 1 1 0 0
Obs ervese que s tambi en pudo haber sido verdadero, lo cual habra generado otro contra-
ejemplo.
El m etodo indirecto puede ser de m as ayuda en algunos casos, pues obliga desde el
principio a forzar algunos valores como en el siguiente ejemplo.
Ejemplo 2.35. Analizar el argumento q p, r p/ r s.
Procedemos indirectamente:
1. 1(q p) = 1 Hip otesis
2. 1(r p) = 1 Hip otesis
3. 1(r s) = 0 Refutaci on
4. 1(r) = 0 por 3
5. 1(s) = 0 por 3
Obs ervese que falta asignar los valores de p y q. Puede ser que con la asignaci on 1(r) = 0
ya aseguramos que la segunda premisa se mantiene cierta, por lo que el valor de p est a libre.
Asimismo, el valor de q s olo afecta a la primera premisa y puede elegirse libremente. Un
contraejemplo es entonces 1(r) = 1(s) = 1(q) = 1(p) = 0. Con estos valores aseguramos
que las premisas son verdaderas pero que la conclusi on es falsa, por lo que el argumento
no es correcto. Otro contraejemplo es 1(r) = 1(s) = 1(q) = 0, 1(p) = 1, como se puede
vericar de manera muy sencilla.
Algunas observaciones son pertinentes.
Al usar valores supuestos no forzados no es posible armar la correctud del argu-
mento al llegar al valor verdadero para la conclusi on o al llegar a una contradicci on.
En este caso esto s olo indica que el valor supuesto debe reconsiderarse. Si se lle-
ga al mismo resultado para todos los posibles valores supuestos entonces podremos
armar la correctud del argumento y s olo hasta ese momento.
88 L ogica proposicional
En el caso de llegar a un contraejemplo con un valor supuesto, con este basta. No es
necesario reconsiderar valores supuestos pues el contraejemplo ya est a construido.
El m etodo de interpretaciones, si bien es m as eciente en general que el uso de tablas
de verdad, requiere de una gran interacci on con el usuario, por lo que se antoja difcil de
automatizar; es un m etodo muy cercano al razonamiento humano. M as a un, los pasos de
razonamiento no siempre son unicos, por ejemplo al usar supuestos, lo cual a nade una
dicultad m as, la elecci on o no determinismo.
La noci on de consecuencia l ogica es un concepto sem antico de gran importancia que
permite analizar argumentos l ogicos y adem as puede generalizarse a otros sistemas l ogicos,
en contraste con las tablas de verdad. M as a un, el uso de interpretaciones proporciona la
base para la b usqueda de contraejemplos a argumentos incorrectos. Sin embargo, no es un
m etodo eciente para encontrar consecuencias dado un conjunto de premisas. Para este
prop osito es m as conveniente construir pruebas o derivaciones de manera sint actica, es
decir, sin apelar al concepto de interpretaciones. Haremos esto en la siguiente secci on.
2.6.3. Derivaciones
Muchos argumentos l ogicos correctos pueden obtenerse mediante composici on de otros
argumentos correctos previamente obtenidos, en el sentido de que la conclusi on de un argu-
mento previo puede servir como premisa para un siguiente argumento, y as sucesivamente,
hasta llegar a una conclusi on deseada. Obs ervese que esta composici on de argumentos es
un mecanismo puramente sint actico, al no apelar a la noci on de verdad o interpretaci on.
Veamos un par de ejemplos.
Ejemplo 2.36. Queremos demostrar que el siguiente fragmento de programa deja el valor de la
variable x de tal forma que despu es de la ejecuci on es imposible que x > Max, esto es
(x > Max) false.
i f x > Max t hen x : = Max;
Formalizamos con las siguientes variables proposicionales:
p : x > Max antes de la ejecuci on
q : x = Max despu es de la ejecuci on
r : x > Max despu es de la ejecuci on
Tenemos que distinguir entre x > Max antes y despu es de la ejecuci on, pues la asigna-
ci on modica el valor de la variable x, es decir, x tiene un valor distinto antes y despu es de
la ejecuci on del programa.
Vamos a hacer primero un an alisis intuitivo del problema: hay dos casos, correspondien-
tes a p y p. Si p sucede entonces la asignaci on se lleva a cabo y q se vuelve v alida, es decir
la implicaci on p q se cumple. Adem as, si q es v alida entonces r tambi en, pues si los dos
2.6 An alisis de argumentos 89
n umeros x y Max son iguales entonces x > Max es falso, as que la implicaci on q r es
v alida. Por otro lado, si p es v alida, entonces la asignaci on no se lleva a cabo y claramente
r es cierta, pues en este caso p es equivalente a r, por lo que la implicaci on p
r es v alida. Formalmente queremos concluir que r, lo cual es posible usando como
hip otesis las implicaciones anteriores y aplicando los esquemas de silogismo hipot etico
(SH) y dilema constructivo simple (DCS), (ver ejemplos 2.4 y 2.33. Procedemos paso a
paso como sigue:
F ormula Justicaci on Comentario
1. p q Hip otesis Si x > Max antes de la ejecuci on entonces
x = Max despu es de la ejecuci on
2. q r Hip otesis Si x = Max despu es de la ejecuci on entonces
x > Max no es cierta despu es de la ejecuci on.
3. p r Hip otesis Si x > Max no es cierta antes de la ejecuci on
entonces tampoco despu es de la ejecuci on
4. p r SH 1,2 Si x > Max antes de la ejecuci on entonces
x > Max no es cierta despu es de la ejecuci on.
5. r DCS 3,4 Por lo tanto, sin importar si x > Max es cierta
o falsa antes de la ejecuci on, despu es de la
ejecuci on x > Max es falsa.
Se observa que el paso 4, que es la conclusi on de una instancia del silogismo hipot etico,
fue usado adem as como premisa para lograr una instancia del dilema constructivo simple.
M as a un, en ning un momento se apela a la noci on de interpretaci on.
Ejemplo 2.37. Uno de los m as reconocidos pensadores l ogicos es Sherlock Holmes, el detective
creado por Arthur Conan Doyle. Veamos una de sus argumentaciones m as famosas, que
aparece en el libro Estudio en Escarlata:
Y ahora llegamos a la gran pregunta del motivo. El robo no fue la raz on del
asesinato, ya que nada fue sustrado. Entonces, fue la poltica o fue una mu-
jer? Esta es la pregunta a la que me enfrent e. Me inclin e desde un principio a
la segunda suposici on. Los asesinos polticos hacen su trabajo lo m as r apido
posible y huyen en cuanto terminan. Este asesinato, en cambio, fue hecho de
manera deliberada y el asesino dej o sus huellas en todo el cuarto, mostrando
que permaneci o ah mucho tiempo.
Para expresar esta cita, utilizaremos las siguientes variables proposicionales:
90 L ogica proposicional
r: fue un robo
s: algo fue sustrado
p: fue la poltica (motivos polticos)
m: fue una mujer
h: el asesino huy o inmediatamente
c: el asesino dej o sus huellas en todo el cuarto
Veamos la derivaci on que llev o a cabo Sherlock Holmes, y que lo llev o a concluir que
fue una mujer, en la tabla 2.11.
Tabla 2.11 An alisis dado por Sherlock Holmes
Derivaci on Regla Comentario
1. r s Premisa Si fue un robo entonces algo debi o ser sus-
trado
2. s Premisa Nada fue sustrado
3. r Modus Tollens 1, 2 No fue un robo
4. r p m Premisa Si no fue un robo, debi o ser motivo poltico
o una mujer
5. p m Modus Ponens 3, 4 Fue motivo poltico o una mujer
6. p h Premisa Si fue motivo poltico, el asesino de-
bi o huir inmediatamente
7. c h Premisa Si el asesino dej o huellas en todo el cuarto,
no huy o inmediatamente
8. c Premisa El asesino dej o huellas en todo el cuarto
9. h Modus Ponens 7, 8 El asesino no huy o inmediatamente
10. p Modus Tollens 6, 9 El motivo no fue poltico
11. m Silogismo Disyun- Por lo tanto debi o ser una mujer
tivo 5, 10
La secuencia de argumentos utilizados se muestra en la lista a continuaci on. En ella se
puede observar claramente como las conclusiones que se van obteniendo de los argumentos,
se pueden utilizar como premisas en argumentos sucesivos.
2.6 An alisis de argumentos 91
1. r s
2. s
3. r
Modus Tollens
3. r
4. r p m
5. p m
Modus Ponens
7. c h
8. c
9. h
Modus Ponens
6. p h
9. h
10. p
Modus Tollens
5. p m
10. p
11. m
Silogismo Disyuntivo
Las secuencias de composici on de argumentos que acabamos de mostrar en los ejem-
plos anteriores se llaman derivaciones , pruebas o deducciones formales. A continuaci on
las estudiamos de manera formal.
Sistemas para derivaciones
Los aspectos de la l ogica relacionados con el estudio de las derivaciones conforman
lo que se llama teora de la demostraci on en contraste con los aspectos sem anticos cuyo
estudio se conoce como teora de modelos. En esta secci on describimos formalismos para
desarrollar pruebas o derivaciones en l ogica proposicional de manera sistem atica, los cuales
se conocen como c alculos deductivos o sistemas para derivaciones.
Aunque existen diversos sistemas para desarrollar derivaciones, todos tienen las si-
guientes caractersticas en com un:
1. Hay un conjunto de argumentos l ogicos admisibles, que denimos ya como reglas de
inferencia. Nos referiremos a este conjunto con /. Formalmente cada elemento de /
es en realidad un esquema de argumento, el cual debe ser un argumento correcto. En
algunos casos se aceptan argumentos sin premisas los cuales se llaman axiomas.
92 L ogica proposicional
2. La derivaci on es en s misma una lista de expresiones l ogicas. Originalmente, la lista
est a vaca y una expresi on puede agregarse a la lista si es una premisa, o si se puede
obtener como conclusi on de alguna de las reglas de inferencia de / a partir de expre-
siones que se encuentran previamente en la lista. Este proceso contin ua hasta que se
llega a la f ormula B que se desea obtener como conclusi on. En tal caso decimos que
la lista completa es una derivaci on de B.
Estas caractersticas describen el conocido m etodo axiom atico introducido por Euclides
en sus Elementos donde est an las bases de la geometra euclideana.
La siguiente denici on es de importancia.
Denici on 2.15 Sean = A
1
, . . . , A
n
un conjunto de f ormulas. Si existe una derivaci on de B
a partir de , es decir, donde las premisas son f ormulas del conjunto , entonces decimos
que B es derivable a partir de y escribimos
L
B, o simplemente B si el conjunto
de reglas de inferencia v alidas ya es conocido.
Por lo general el conjunto de reglas de inferencia / est a jo desde un principio, de
manera que unicamente pueden usarse reglas de inferencia que guran en el. En nuestro
caso no seremos tan estrictos y permitiremos usar cualquier regla previamente derivada,
aunque esencialmente usaremos las siguientes:
Tabla 2.13 Principales reglas de inferencia (1/2)
Regla Nombre Notaci on
A B / A B Introducci on de I
A B / B Eliminaci on de E
A B / A Eliminaci on de E
A /A B Introducci on de I
B / A B I
A A B / B Modus Ponens MP
B A B / A Modus Tollens MT
A B B C / A C Silogismo Hipot etico SH
(Contin ua en la siguiente p agina)
2.6 An alisis de argumentos 93
Tabla 2.14 Principales reglas de inferencia (2/2)
(Contin ua de la p agina anterior)
Regla Nombre Notaci on
A B A / B Silogismo Disyuntivo SD
A B B / A SD
A B A B / B Casos simple CS
A B / A B Eliminaci on de equivalencia E
A B / B A E
A B B A / A B Introducci on de Equivalencia I
A, A / B Inconsistencia Inc
Es momento de desarrollar algunos ejemplos.
Ejemplo 2.38. Mostrar la correctud del siguiente argumento:
p r, r s, t s, t u, u/ p.
Vamos a desarrollar una derivaci on de p con premisas
= p r, r s, t s, t u, u.
Derivaci on:
1. p r Premisa
2. r s Premisa
3. t s Premisa
4. t u Premisa
5. u Premisa
6. p s (SH) Silogismo hipot etico con 1, 2
7. t (SD) Silogismo disyuntivo con 4, 5
8. s (SD) Silogismo disyuntivo con 7, 3
9. r (MT) Modus tollens con 2, 8
10. p (MT) Modus tollens con 9, 1
Ejemplo 2.39. Mostrar la correctud del siguiente argumento
p q, q r s, r t u, p t/ u
94 L ogica proposicional
1. p q Premisa
2. q r s Premisa
3. r t u Premisa
4. p t Premisa
5. p r s SH 1,2
6. p E 4
7. r s MP 5,6
8. r E 7
9. t u SD 8,3
10. t E 4
11. u SD 9,10
Ejemplo 2.40. Mostrar la correctud del siguiente argumento:
Si la banda no puede tocar cumbia o las cervezas no llegan temprano, enton-
ces la esta de n de semestre se cancelara y Menelao montara en c olera.
Si la esta se cancela, hay que devolver las entradas. No se devolvieron las
entradas. Luego entonces la banda pudo tocar cumbia.
Se asignan las siguientes variables proposicionales:
b: La banda pudo tocar cumbia
c: Las cervezas llegan temprano
f: La esta se cancela
m: Menelao monta en c olera
d: Hubo que devolver el dinero
El argumento a vericar es: b c f m, f d, d/ b.
1. b c f m Premisa
2. f d Premisa
3. d Premisa
4. f MT 2, 3
5. f m I 4
6. (f m) RE 5
7. (b c) MT 6,1
8. b c RE 7
9. b c RE 8
10. b E 9
2.6 An alisis de argumentos 95
Se observa en los pasos 6, 8 y 9 el uso de razonamiento ecuacional (RE); muchas veces
este se da por sobreentendido y no se menciona, por lo que podramos haber pasado del
paso 5 al 7 o del paso 7 al 9 directamente.
Estrategias para la construcci on de derivaciones
En esta secci on presentamos algunas estrategias o m etodos para la derivaci on de ar-
gumentos correctos. La meta es construir una derivaci on B. De acuerdo al conecti-
vo principal de la conclusi on B de un argumento, podemos simplicar la derivaci on del
mismo.
Conjunci on
Para derivar una conjunci on PQ basta derivar ambos operandos por separado. Es
decir,
Si P y Q, entonces P Q
Esta propiedad es inmediata de la regla de inferencia (I). Obs ervese que la armaci on
recproca tambi en es cierta.
Disyunci on
De acuerdo a la regla de introducci on de la disyunci on (I), para mostrar P Q
basta mostrar alguno de los dos operandos. Es decir,
Si P o bien Q, entonces P Q.
En este caso la armaci on recproca no es necesariamente cierta; por ejemplo, tenemos
p q p q pero no es posible derivar p q p ni p q q.
Implicaci on
Cuando tratamos de derivar una implicaci on basta suponer como premisa adicional el
antecedente y derivar a partir de ello el consecuente. Esto se debe a que para mostrar la
verdad de una implicaci on basta examinar aquellos casos en que el antecedente es verdade-
ro y corroborar que de ese antecedente se inere el consecuente; si el antecedente es falso,
la implicaci on es verdadera no importando el valor del consecuente. Esto se expresa en la
siguiente propiedad conocida como el metateorema de la deducci on :
96 L ogica proposicional
Si , P Q entonces P Q.
Obs ervese que esta regla se usa pr acticamente siempre en las demostraciones matem ati-
cas en general.
Ejemplo 2.41. Supongamos que deseamos demostrar
P P Q
Utilizando la propiedad anterior basta encontrar una derivaci on
P P Q
la cual es inmediata de la regla de introducci on de la disyunci on (I).
Equivalencia
Para derivar una equivalencia P Q basta probar ambas implicaciones.
Si P Q y Q P, entonces P Q.
Nuevamente esta propiedad es muy com un en demostraciones matem aticas.
Negaci on
Para derivar una negaci on no hay estrategia general. En algunos casos podemos usar
equivalencias l ogicas, por ejemplo si deseamos (P Q) entonces basta mostrar
P Q; para demostrar esto ultimo podemos usar la estrategia para la disyunci on y
probar alguna de P o bien Q.
Un sistema de derivaci on / debe ser tal que no se puedan derivar resultados que no son
s olidos. Esto es, / no debe contener ninguna falacia, una regla de inferencia que permite
concluir algo que no est a implicado por las premisas y que por lo tanto no es v alido.
Un sistema de derivaci on tambi en debe ser completo, esto es, que sea posible derivar
absolutamente a todas las conclusiones que se puedan inferir de las premisas. Por ejemplo,
la tabla 2.13 no nos da un sistema completo, pues hay leyes, como la del Tercero Excluido,
que no se puede derivar de ellas. Y como no hay forma de derivar esta ley a partir de las
que se dan en la tabla, debemos agregarla como premisa:
P P
2.6 An alisis de argumentos 97
Ejercicios
2.6.1.- Usa los identicadores P y Q para formalizar los siguientes argumentos. Adem as
indica de cu al de las reglas de inferencia son instancia.
a) Si 10 es primo, 10 no puede ser igual a 2 veces 5. 10 es 2 veces 5. Por lo tanto,
10 no puede ser primo.
b) Si llueve frecuentemente, los agricultores se quejan; si no llueve frecuentemen-
te, los agricultores se quejan. En conclusi on, los agricultores se quejan.
2.6.2.- Para los siguientes argumentos decide si son correctos y en caso de no serlo da un
interpretaci on que haga verdaderas a las premisas y falsa a la conclusi on.
(a) (p q) (p r)/ q r
(b) p q r, s p, s/ r
(c) p q, (p r), q/ r s
(d) p q, p r, (r s)/ (p q) (q s)
2.6.3.- Da un ejemplo, en espa nol, para cada uno de las siguientes reglas de inferencia
a) Silogismo hipot etico.
b) Silogismo disyuntivo.
c) Eliminaci on de .
d) Introducci on de .
e) Inconsistencia.
2.6.4.- Identica qu e regla de inferencia corresponde a los siguientes argumentos en es-
pa nol.
a) Si vamos al cine, nos desvelamos. No me quiero desvelar. Entonces no vamos
al cine.
b) Me pagas la deuda o te quito la televisi on! No me pagaste la deuda. Entonces
te quito la televisi on.
c) Si el n umero de visitas es a lo m as 15, estar an todos en la sala. Hay visitas en
la rec amara. Es porque vinieron m as de 15.
d) Ese muchacho se llama Juan o Pedro. No se llama Juan. Entonces se llama
Pedro.
98 L ogica proposicional
2.6.5.- Construye las siguientes derivaciones
(a) p q, r s, q s p r
(b) p (p q r)
(c) p ( p q) p q
(d) (p q) (p q q)
(e) ( p ( p q)) (p (p q)) ( p q) (p q)
2.7. Tableaux sem anticos para el c alculo proposicional
Una de las preocupaciones de la l ogica proposicional (y de la de predicados que vere-
mos m as adelante) es la de determinar si una f ormula bien formada
4
(fbf ) es o no razona-
ble. Esto ultimo quiere decir que deseamos determinar si existe alg un estado en el que la
f ormula se eval ue a verdadero; o dicho de otra manera, si hay alguna asignaci on posible a
las variables proposicionales que participan en la f ormula de tal manera que esta se eval ua
a verdadera (dicho de una tercera forma, si la f ormula tiene modelo).
Uno de los mecanismos que podemos utilizar para determinar si una f ormula es ra-
zonable es la de elaborar la tabla de verdad de la misma. Sin embargo, como ya hemos
mencionado, la tarea de elaborar tablas de verdad cuando estamos hablando de f ormulas
de m as de tres o cuatro variables se vuelve un problema intratable, ya que tendremos que
examinar 2
n
posibles estados.
Un mecanismo que permite de manera eciente y segura determinar si una f ormula es
tautologa, contradicci on o contingencia, y encontrar un estado para el cual la f ormula se
eval ua a verdadera son los tableaux.
2.7.1. El concepto de tableau
Un tableau corresponde a un arbol cuya funci on es buscar una interpretaci on para deter-
minada f ormula. Los tableaux toman la forma de un arbol, parecido a los arboles de deriva-
ci on. Las f ormulas que van a ser representadas en un tableau deben consistir unicamente de
conjunciones y disyunciones de literales, que son f ormulas at omicas (true, false, p, q, r, . . .)
o negaciones de ellas (true, false, p, q, r, . . .). Estas f ormulas no pueden tener nin-
g un otro operador, pero esto no nos debe preocupar ya que vimos que es posible eliminar la
implicaci on y la bicondicional sustituy endolas por disyunciones y conjunciones. Tambi en
podemos eliminar la negaci on de una f ormula disyuntiva o conjuntiva ((pq)) utilizando
4
En ingl es well-formed formula (wff )
2.7 Tableaux en c alculo proposicional 99
las leyes de De Morgan
_
(p q) pq
_
. Es importante, sin embargo, mantener la
asociatividad de los operadores dada por la f ormula original (preservar la precedencia ori-
ginal o sea trabajar con f ormulas donde todos los par entesis que indican precedencia son
explcitos).
La construcci on de tableaux tiene realmente muy pocas reglas. Ve amoslas:
1. La f ormula para la que deseamos construir el tableau aparece como raz del arbol.
2. Si el esquema de la f ormula es una disyunci on (A B), de la raz del sub arbol se
abren dos ramas, una para la f ormula A y otra para la f ormula B, como podemos ver
en la gura 2.4.
Figura 2.4 Construcci on de tableau para la disyunci on
(a)
(p q) (p q)
(p q)
p q
(b)
A B
A B
(c)
p q r
p q r
Como el operador es conmutativo y asociativo, se pueden intercambiar el orden de
las ramas de los arboles. Tambi en utilizamos la propiedad asociativa de la disyunci on
en el caso de la f ormula del tableau 2.4(c) y decidimos abrir primero la segunda
disyunci on.
Por lo pronto, dejamos a los tableaux desarrollados unicamente en el primer nivel,
lo que deja ramas que deben ser expandidas en el primer y tercer caso. M as adelante
veremos cu ando y c omo conviene extender un tableau. Conforme se avanza en la
f ormula, se va componiendo con el arbol que se tiene hasta ese momento. Lo que
debe quedar claro es que en la f ormula 2.4(a) no podemos extender, tal como est an,
a ninguna de las f ormulas en el segundo nivel del arbol, ya que no corresponden a
esquemas de disyunci on o conjunci on; en esta expresi on, la f ormula de la izquierda
corresponde a un esquema de negaci on, mientras que la segunda es una condicio-
nal; as que por lo pronto posponemos su extensi on hasta que demos las reglas de
transformaci on para tableaux. En cambio, en la f ormula 2.4(c) s tenemos en la rama
izquierda un esquema de disyunci on, por lo que ya podemos expandirla, quedando el
100 L ogica proposicional
tableau como se muestra en la gura 2.5.
Figura 2.5 Desarrollo completo del tableau de la f ormula 2.4(c)
p q r
p q
p q
r
3. Si el esquema de la f ormula es una conjunci on (A B) se pone a uno de los operan-
dos como hijo del otro (como el operador es conmutativo, el orden no importa).
Podemos ver tres ejemplos en las guras 2.6 a 2.8.
En la f ormula de la gura 2.6 tenemos un esquema de conjunci on, donde cada uno
de los operandos es una variable proposicional.
Figura 2.6 Primer ejemplo de tableau para representar conjunciones
p q
p
q
2.7 Tableaux en c alculo proposicional 101
En la f ormula de la gura 2.7 abajo, tenemos un esquema de conjunci on donde cada
operando es, a su vez, una disyunci on. Entonces, listamos los dos operandos, uno
abajo del otro (el orden no importa) y procedemos a construir el tableau para uno de
ellos, en este caso el primero. Una vez que tenemos en el tableau como hojas uni-
camente variables proposicionales que ya no pueden descomponerse m as, colgamos
de cada una de las ramas al otro operando y procedemos a abrirlo. Mostramos en el
tableau de la gura 2.7(b) el nivel intermedio para la f ormula r q, aunque esto no
es necesario, sino que podramos haber colgado directamente la conjunci on, como se
ve en el tercer tableau de esta f ormula.
Figura 2.7 Segundo ejemplo de tableau para representar conjunciones
(a)
(p q) (r q)
p q
r q
p q
(b)
(p q) (r q)
p q
r q
p
r q
r
q
q
r q
r
q
(c)
(p q) (r q)
p q
r q
p
r
q
q
r
q
Para la tercera f ormula tenemos tambi en un esquema de conjunci on. Como la con-
junci on es asociativa, podemos asociar
_
(pq)( q r)
_
(pr), que es como
lo hicimos, o pudi eramos usar tambi en la conmutatividad de este operador. Listamos
los tres operandos uno abajo del otro y desarrollamos el tableau del ultimo ( p r)
como primer paso. A continuaci on colgamos de todas las ramas de este tableau al
segundo operando ( q r) y lo tachamos ya no pusimos la subf ormula original
explcitamente en el arbol . Una vez que tenemos unicamente variables proposicio-
nales como hojas del tableau, como tercer paso colgamos de cada una de las ramas a
la primera f ormula ( p q). El tableau construido de esta manera es el ultimo en la
gura 2.8.
102 L ogica proposicional
Figura 2.8 Tercer ejemplo de tableaux con disyunci on
(p q) (q r) (p r)
(a)
p q
q r
p r
p
r
(b)
p q
q r
p r
p
q
r
r
q
r
(c)
p q
q r
p r
p
q
p q
r
p q
r
q
p q
r
p q
Este caso es, claramente, un poco m as complicado que el caso de la bifurcaci on.
La intenci on con la que se construyeron los arboles (tableaux) es la de que, como
se trata de una conjunci on, cualquier camino en el arbol debe contemplar a todos
los operandos de la conjunci on. En el primer ejemplo, simplemente tenemos dos
variables proposicionales, por lo que las ponemos en el arbol a una de ellas como
descendiente de la otra. En el segundo ejemplo, desarrollamos uno de los operandos
de la disyunci on y de cada hoja, en la que hay unicamente variables proposicionales,
colgamos a la otra proposici on desarrollada como tableau. Como el tableau para
r q es un tableau con dos ramas, este se cuelga tanto de p como de q.
El tercer ejemplo consiste de dos operadores (tres operandos). En el primer nivel
colocamos (es arbitraria esta elecci on) al tercer operando. Una vez que lo desarro-
llamos completo, colgamos de cada una de las ramas el segundo operando, a su vez
desarrollado ya en un tableau; por ultimo, tenemos que colocar el operando que nos
falta, pq, colg andolo de cada una de las ramas que llevamos hasta el momento. El
orden no es importante, siempre y cuando hayamos incluido para desarrollar a todas
las subf ormulas en la manera en que indicamos.
Dado que unicamente tenemos reglas de construcci on para la disyunci on y la conjun-
ci on, debemos decidir qu e hacer con aquellas f ormulas que involucren otros operadores.
Tenemos dos opciones: transformar la f ormula antes de construir el tableau, usando pro-
piedades de los operadores, asociatividad, conmutatividad y las Leyes de De Morgan, y
2.7 Tableaux en c alculo proposicional 103
proceder despu es a desarrollar el tableau de la f ormula resultante. Otra opci on es ir trans-
formando las subf ormulas durante la construcci on del tableau. Esta estrategia nos puede
ahorrar trabajo por razones que no tardaremos en explicar. Adem as, es la que m as se bene-
cia del uso de tableaux.
2.7.2. Eliminaci on de ramas del tableau
Como dijimos antes, vamos a utilizar los tableaux para determinar si una f ormula es
satisfacible o no. Por como est an construidos, si seguimos un camino dentro del tableau
vamos a tener la conjunci on de variables proposicionales. Por ejemplo, en el caso del ta-
bleau de la gura 2.6 simplemente tenemos que el unico camino en el arbol es salir de p y
llegar a q. Pero en el caso del tableau de la gura 2.7, el camino (pq)(rq) nos indica
la subf ormula q q, que es una contradicci on, por lo que siguiendo esa rama ya no va a
satisfacer a la f ormula (la conjunci on ser a evaluada a falso). Cada vez que encontramos, en
un camino (una rama) dentro del arbol, una literal y su literal complementaria
5
, podemos
cerrar esa rama y ya no extenderla m as, pues no importa qu e f ormulas le colguemos a ese
camino tendremos una conjunci on con falso, lo que hace a la f ormula representada por ese
camino falsa. Denotamos que un camino est a cerrado colocando el smbolo . En la gura
2.7 se habra eliminado una rama, como se puede observar en la gura 2.9.
Figura 2.9 Cierre de ramas en la gura 2.7
p q
p
r
q
q
r
q

Por ejemplo, el tableau de la gura 2.8 no presenta ninguna rama cerrada que nos ahorre
trabajo ver gura 2.10 .
5
La literal complementaria de una literal dada L se dene como A si L es A y como A, si L es A.
104 L ogica proposicional
Figura 2.10 Cierre de ramas en un tableau
p r
p
q
p q

r
p q
r
q
p q

r
p q
Sin embargo, hasta ahora unicamente hemos podido cerrar ramas que ya est an total-
mente desarrolladas, y lo que queremos es ahorrar trabajo, esto es, cerrar ramas lo antes
posible. Si hubi esemos seguido otro orden en la doble conjunci on en la f ormula de la gu-
ra 2.8, buscando que aparezcan lo antes posible una literal y su complementaria, habramos
podido llevar a cabo menos trabajo. Por ejemplo, si el orden en que colgamos del tableau
es ( p q), ( q r) y por ultimo ( p r), tenemos lo antes posible la contradicci on,
como se muestra en la gura 2.11.
Figura 2.11 Orden de armado del tableau para cerrar lo m as pronto posible
p r
q r
p q
p
q
p
r
r
p
r
q
q

r
p
r
Las ramas que cerremos ya no tiene sentido seguir expandi endolas y eso nos va a aho-
rrar trabajo. Si todas las ramas quedan cerradas la f ormula es una contradicci on; sin em-
2.7 Tableaux en c alculo proposicional 105
bargo, el que todas las ramas queden abiertas no signica que tenemos una tautologa.
Como ejemplo veamos la f ormula de la gura 2.6, donde todas sus ramas (exactamente
una) quedaron abiertas y, sin embargo, esta f ormula s olo ser a verdadera en el caso en que
1(p) = 1(q) = 1; en caso de que algunas ramas queden abiertas y otras cerradas se trata
de una f ormula contingente . Para determinar si una f ormula es tautologa tenemos que
construir el tableau para su negaci on; si en este tableau se cierran todas las ramas, tenemos
que la negaci on de la f ormula es contradicci on y por lo tanto la original es tautologa.
2.7.3. Reglas para los tableaux
Vamos a optar por ir abriendo las f ormulas conforme las vamos incluyendo en el
tableau; la raz on para ello es que si nos encontramos con ramas cerradas antes de agregar
alguna conjunci on, nos ahorramos el trabajo de transformar la regla. Como en el caso del
razonamiento ecuacional y de la sustituci on textual, es muy importante determinar cu al es
el esquema principal que estamos procesando: cu al es el operador que domina. Las reglas
que podemos usar para transformar las f ormulas y poderlas agregar al tableau en desarrollo
se encuentran a continuaci on.
-reglas:
1. De A B se deduce A y B. (1)
2. De (A B) se deduce A y B. (2)
3. De (A B) se deduce A y B. (3)
-reglas:
1. De A B se deduce A y, en una rama separada, B. (1)
2. De (A B) se deduce A y, en una rama separada, B. (2)
3. De A B se deduce A y, en una rama separada, B. (3)
-reglas:
1. De A se deduce A. (1)
2. De false se deduce true. (2)
3. De true se deduce false. (3)
Las reglas son auxiliares y pueden evitarse usando razonamiento ecuacional.
Reglas de cierre:
1. Cerrar cualquier rama que tenga A y A (para cualquier A),
o bien tenga true, o false. (cierre)
Veamos algunos ejemplos de construcci on de tableaux.
106 L ogica proposicional
Ejemplo 2.42.
Demostrar
_
_
(p q) p
_
p
_
, construyendo el tableau correspondiente a su
negaci on. De lo anterior, usando (3) tenemos:

_
_
(p q) p
_
p
_
=
_
_
(p q) p
_
p
_
,
por lo que pasamos a desarrollar el tableau de esta conjunci on en la gura 2.12.
Figura 2.12 Construcci on del tableau para el ejemplo 2.42

_
_
(p q) p
_
p
_

_
_
(p q) p
_
p
_
F ormula:
Regla usada:
(3)
(1)
(3)
(3)
cierre
cierre
_
(p q) p
_
p
_
(p q) p
_
(p q) p
(p q)
p q
p

Vemos que no queda ninguna rama abierta, lo que denota a una contradicci on. Como el
tableaux se arm o para la negaci o n de la f ormula original y tenemos una contradicci on para
esta f ormula, podemos deducir que la f ormula original es una tautologa.
Ejemplo 2.43. Demostrar que el silogismo hipot etico es una tautologa:
_
_
(P Q) (Q R)
_
(P R)
_
Para demostrar que esta f ormula es tautologa trabajamos con su negaci on:

_
_
(P Q) (Q R)
_
(P R)
_
Ver gura 2.13 en la siguiente p agina para el desarrollo del tableau correspondiente.
2.7 Tableaux en c alculo proposicional 107
Figura 2.13 Construcci on del tableau para el ejemplo 2.43
F ormula:
Regla usada:
_
(P Q) (Q R)
_
(P R)
(P R)
P R
P
R
P

Q
Q

(3)
(P R) a P R (3)
P Q a P Q (3)
Q R a Q R (3)
Como todas las ramas est an cerradas la f ormula es una contradicci on y, por lo tanto, la
f ormula original es tautologa (lo que ya sabamos).
2.7.4. Modelo de una f ormula
Al desarrollar un tableau para una f ormula dada trataremos de trabajar lo menos posible,
esto es, abrir el menor n umero de ramas posibles. Ya vimos que una rama cerrada no tiene
sentido seguirla extendiendo; las estrategias usadas deber an ir en la direcci on de cerrar lo
antes posible una rama. Estas estrategias las podemos resumir de la siguiente manera:
1. Descomponer primero las f ormulas que no abran ramas; es decir, usar las -reglas y
las -reglas antes que las -reglas.
2. Dar prioridad a la descomposici on de f ormulas que cierren ramas.
3. Parar cuando el problema est e resuelto (para demostrar satisfacibilidad basta con
encontrar una rama abierta completa).
4. Cuando no sirvan las estrategias anteriores, empezar por las f ormulas m as complejas
(habr a luego menos ramas en las que desarrollar la f ormula compleja).
108 L ogica proposicional
El tableau de una f ormula tambi en nos proporciona una interpretaci on para la f ormula
que es modelo de la misma. De hecho, cada rama completa que queda abierta corresponde
a una interpretaci on de la f ormula. Por lo tanto, para encontrar un modelo de una f ormula
basta encontrar una rama abierta completa. La interpretaci on que corresponde a esa rama
es como sigue:
1. Las variables que aparecen negadas en esa rama se les asigna el valor 0.
2. Las variables que aparecen sin negar en esa rama se les asigna el valor 1.
3. Aquellas variables que aparecen en la f ormula pero no en esa rama pueden tener
cualquier asignaci on.
N otese que no puede haber ninguna variable a la que se tuviera que asignar 0 y 1 en
una misma rama, porque esto querra decir que aparece negada y sin negar, en cuyo caso la
rama se habra cerrado.
2.7.5. Algoritmos para la l ogica proposicional
Los tableaux son muy utiles en l ogica proposicional pues proporcionan diversos algo-
ritmos de decisi on, algunos de los cuales enunciamos a continuaci on.
Es A una tautologa?
Objetivo: Denir si A es tautologa.
Entrada: A.
Salida: La decisi on de si A es o no tautologa.
M etodo:
Construir el tableau T para A.
Si T se cierra entonces A es tautologa.
En otro caso existe una rama abierta y completa en T la cual genera un
modelo de , por lo que no es tautologa.
Para saber si una f ormula es tautologa (o para demostrarlo), construimos el tableau
de la negaci on de la f ormula; si este tableau corresponde a una contradicci on, enton-
ces la f ormula es tautologa. Este algoritmo se puede adaptar f acilmente para obtener
uno que decida si Aes una contradicci on, observando que una f ormula es una contra-
dicci on si y s olo si todas las ramas de su tableau se cierran. Sin embargo, obs ervese
que no podemos decir que una f ormula es tautologa si todas sus ramas quedan abier-
tas, porque pudiera haber interpretaciones que no fueran modelo. Por ejemplo, la
f ormula p q, cuyo tableau aparece a continuaci on,
2.7 Tableaux en c alculo proposicional 109
p q
p q
es un tableau (muy simple) en el que todas las ramas quedaron abiertas y sin embargo
no es tautologa. Lo unico que podemos concluir, respecto a interpretaciones, es que
1
1
(p) = 1 e 1
2
(q) = 1 son modelos de esta f ormula (la variable que no se menciona
en cada una de las interpretaciones puede tomar cualquier valor).
Si se desea clasicar una f ormula en tautologa, contradicci on o contingencia se usa
el siguiente algoritmo.
Objetivo: Clasicar una f ormula A.
Entrada: Una f ormula A que deseamos clasicar como tautologa, contradicci on o
contingencia.
Salida: El dictamen de si la f ormula es tautologa, contradicci on o contingencia.
M etodo:
Construir el tableau T de A.
Si T se cierra entonces A es contradicci on.
En otro caso, existe una rama abierta y completa en T que proporciona un
modelo 1 de A.
Construir el tableau T

para A.
Si T

se cierra entonces A es tautologa.


En otro caso T

tiene una rama abierta y completa que proporciona un


modelo 1

de A.
Las interpretaciones 1 e 1

muestran que A es contingente.


Con respecto a conjuntos de f ormulas tenemos los siguientes algoritmos.
Satisfacibilidad de un conjunto de f ormulas .
Objetivo: Decidir la satisfacibilidad de un conjunto de f ormulas
Entrada: Un conjunto de f ormulas = A
1
, . . . , A
n
.
Salida: La decisi on de si es o no satisfacible.
M etodo:
Construir el tableau T para A
1
A
2
. . . A
n
.
Si T se cierra entonces es insatisfacible.
En otro caso existe una rama abierta y completa en T , la cual genera un
modelo de , por lo que este conjunto es satisfacible.
Es A consecuencia l ogica de ?
110 L ogica proposicional
Objetivo: Decidir la consecuencia l ogica [= A.
Entrada: Un conjunto de f ormulas y una f ormula A.
Salida: La decisi on de si A es consecuencia l ogica de (s o no).
M etodo:
Construir el tablero T para el conjunto A.
Si T se cierra entonces la consecuencia l ogica [= A se da y el argumento
que representa es correcto.
En otro caso, existe una rama abierta y completa en T por lo que la con-
secuencia es inv alida y se genera un modelo de las premisas donde la
conclusi on A es falsa.
Como ya se ha visto, los tableaux son un mecanismo para derivaci on de f ormulas y
demostraci on de teoremas que resulta mucho m as econ omico, en t erminos de trabajo, que
el razonamiento ecuacional, por interpretaciones o mediante derivaciones; adicionalmente,
es algortmico, ya que siempre termina y no hay que ser creativos en el orden de abrir los
tableaux; en el peor de los casos, haremos un poco m as de trabajo, pero est a garantizado
que terminamos con la respuesta correcta.
Ejercicios
2.7.1.- Construye el tableau correspondiente a cada una de las f ormulas, sin cerrar ramas.
Para poder hacerlo, primero transforma a la f ormula para que tenga unicamente con-
junciones y disyunciones de literales.
(a)
_
(p q) (r p)
_
(r q)
(b)
_
(p q) p
_
(q p)
(c)
_
(p q) (p r)
_
p
(d)
_
(p q) (q r)
_
( r p)
(e)
_
(r s) t
_
((p q) ( q p)
_
(f)
_
(p q) (q p)
_
(g) (p q) r
2.7.2.- Usando tableaux, determina cu al de las siguientes f ormulas es tautologa, contra-
dicci on o contingente.
(a)
_
_
(p q) r
_

_
p (q r)
_
_
p q
(b)
_
p (q r)
_

_
p (q r)
_
2.7 Tableaux en c alculo proposicional 111
(c) p q p r
(d)
_
p (p q)
_
p
2.7.3.- Demuestra que las siguientes f ormulas son tautologas usando tableaux:
(a) (p q) ( r s) ( q s) p r
(b) p (p q r)
(c) p ( p q) p q
(d) (p q) (p q q)
(e) ( p ( p q)) (p (p q)) ( p q) (p q)
2.7.4.- Para los ejercicios 2.7.2 y 2.7.3, usando los tableaux construidos, da un modelo para
las f ormulas y para sus negaciones en el caso de que sean contingentes, as como un
modelo contraejemplo para los argumentos incorrectos.
2.7.5.- Determinar si los siguientes conjuntos de f ormulas son satisfacibles en cuyo caso
dar un modelo.
a) = p q, (r p q) r, (r p)
b) = r (p q),
_
(p r) (q r)
_
r, (q q)
c) = (p r) (r q), (q r) (q r), p q r
d) = p q r, (p q) r, r q r
e) = q r, p, (q p) q, r p, s q, r p
2.7.6.- Usando tableaux, determina la correctud de los siguientes argumentos.
(a) (p q) (p r)/ q r
(b) p q r, s p, s/ r
(c) p q, (p r), q/ r s
(d) p q, p r, (r s)/ (p q) (q s)
2.7.7.- Por qu e es que se pueden cerrar ramas si es que aparece una literal y la literal
complementaria en un camino dentro del tableau?
2.7.8.- Explica en tus propias palabras por qu e los tableaux no se pueden construir para
f ormulas que tienen otros operadores que no sean la conjunci on y la disyunci on.
L ogica de
predicados
3
3.1. Introducci on
Hemos utilizado f ormulas de la l ogica proposicional siempre que se trata de representar
proposiciones en espa nol, esto es, enunciados que son falsos o verdaderos. Analicemos los
siguientes enunciados:
Todo pl atano es amarillo.
Algunas especies de p ajaros migran.
Todos los vaqueros usan sombrero.
Ning un perro ma ulla.
Baja California Sur es el unico estado de la Rep ublica Mexicana con mar en tres de
sus cuatro bordes.
Se puede observar que todos y cada uno de los enunciados anteriores es una propo-
sici on pues tiene un valor de falso o verdadero. Sin embargo dieren de las estudiadas
anteriormente pues no reconocemos en los enunciados palabras correspondientes a conec-
tivos l ogicos, por lo que la unica manera que tenemos, por el momento, de formalizarlos es
simplemente con una sola variable proposicional asignada a todo el enunciado.
El lenguaje de la l ogica proposicional estudiado en el captulo anterior no tiene sucien-
te poder expresivo para analizar proposiciones y argumentos que requieren de una clase de
114 L ogica de predicados
enunciados como los anteriores, que contienen referencias a colectividades de objetos.
Consid erese por ejemplo el siguiente razonamiento:
Algunas personas van al teatro. Todos los que van al teatro se
divierten. De manera que algunas personas se divierten.
La intuici on dice que el argumento es correcto. Sin embargo la representaci on corres-
pondiente en l ogica proposicional es:
p, q / r Incorrecto!
Esta situaci on nos permite concluir unicamente que el argumento en l ogica proposicional
es incorrecto en el sentido de que la conclusi on no es consecuencia l ogica de las premisas.
Sin embargo, a partir de este hecho no es posible concluir que el argumento en lenguaje
natural sea incorrecto, pues podra ser que lo sea en base a ciertos principios l ogicos m as
fuertes. Tal posibilidad requiere el desarrollo de un lenguaje de especicaci on formal m as
poderoso, as como una l ogica adecuada al mismo, llamada l ogica de predicados.
3.1.1. Predicados
Consideremos los siguientes enunciados:
Cualquier empleado tiene un jefe.
Algunos programas usan ciclos.
Hay una lista que est a ordenada.
Como acabamos de argumentar, para representar a cada uno de estos enunciados la
unica forma de hacerlo, con las herramientas que tenemos hasta el momento, es mediante
f ormulas proposicionales at omicas, es decir, mediante una simple variable proposicional
para cada una de ellos. De los dos ejemplos anteriores vemos que esta representaci on no es
adecuada, ya que no es capaz de reejar la estructura interna del enunciado, algo de lo que
no debemos sustraernos. Buscamos una herramienta l ogica que tome en cuenta, de alguna
manera, a esa estructura interna. Por ejemplo, el enunciado algunos programas usan ciclos
trata acerca de programas, ciclos y la acci on de usar. Estas componentes de la estructura
interna de un enunciado se clasican como individuos (u objetos) y propiedades (o relacio-
nes) atribuibles a los individuos; a estas ultimas es a las que llamamos predicados. Tanto
los individuos como los predicados se denen en un contexto particular dependiendo del
problema que queramos representar. Este contexto se conoce como universo de discurso,
el cual es una colecci on de todas las personas, ideas, cosas, estructuras de datos, etc etera,
necesarios para analizar una f ormula o argumento l ogico.
Veamos algunos ejemplos para hacer la distinci on entre predicados e individuos en uni-
versos de discurso. En cada caso los individuos se encuentran encerrados en una caja y los
predicados son las partes del enunciado que describen las relaciones entre ellos, as como
las acciones que los individuos llevan a cabo; por ejemplo, ser colegas; ser padre de; ser
canario; ser la suma de; usar; visitar; ir; jugar; etc etera.
3.1 Introducci on 115
El universo de discurso son personas:
Isabel y Mara son colegas.
Pedro es el padre de Juan .
El universo de discurso son los animales:
Pioln es un canario.
Claudio es un gallo.
El universo son n umeros:
La suma de 2 y 3 es 5 .
El producto de 10 y -2 es negativo.
El universo consta de lenguajes de programaci on, algoritmos y programas:
Haskell es un lenguaje funcional con el que se puede escribir el algoritmo
quicksort en una lnea.
Este programa en Java usa clases .
El universo puede constar de diversas clases de individuos, como en el caso de que
los siguientes enunciados se usen en un mismo contexto:
La infanta Christina visita museos .
El teatro al que la condesa Karla Michelle fue ayer tiene asientos c omodos.
Su majestad Martha Elena III y el perro imperial Bu juegan en el jardn
de palacio.
En el caso de estos enunciados, el universo tiene al menos personas, animales y
lugares.
Aunque parezca que podemos utilizar l ogica proposicional para representar a los in-
dividuos y relaciones, esto no es as. Por ejemplo, no tiene sentido decir que el primer
enunciado se formaliza como p q donde p signica Isabel es colega y q signica Mara
es colega, ya que la conjunci on de estos dos enunciados no consigue explicar la relaci on de
colegas entre Isabel y Mara.
En l ogica de predicados utilizamos la notaci on
P(t
1
, t
2
, . . . , t
n
)
para describir que la propiedad o relaci on P se da entre los individuos t
1
, t
2
, . . . , t
n
. Expre-
semos algunos de los ejemplos que dimos arriba con esta nueva notaci on:
116 L ogica de predicados
Colegas(Isabel,Mara), con P =ser colegas, t
1
=Isabel y t
2
=Mara.
Padre(Pedro,Juan), con P = padre de, t
1
=Pedro y t
2
=Juan.
Canario(Pioln), con P = ser canario y t
1
= Pioln.
Suma(2, 3, 5), con P = suma, t
1
= 2 y t
2
= 3 son los sumandos y t
3
= 5 es el
resultado.
Podemos ver de estos ejemplos que cada predicado P recibe un n umero distinto de ar-
gumentos de entrada t
1
, . . . , t
n
escribimos el nombre de los predicados con may usculas
para distinguirlos de las funciones . Al n umero de argumentos de un predicado le llama-
mos el ndice o aridad del predicado. Tambi en vemos que el orden, en muchos de ellos,
es importante. Por ejemplo, el predicado Padre tiene un signicado muy distinto si cam-
biamos el orden de los argumentos, lo mismo que el predicado Suma. Una vez que se ha
denido un predicado con un determinado ndice, queda prohibido cambiarle el ndice pos-
teriormente. Por ejemplo, en el primer predicado, Colegas, el ndice es 2, lo cual impide
formar expresiones como Colegas(Juan, Lupe, Rosa), aun cuando esto tenga sentido desde
nuestra intuici on. Si se desea utilizar un n umero de argumentos distinto al denido inicial-
mente por el ndice, es necesario denir otro predicado, por ejemplo Colegas

(Juan, Lupe,
Rosa). Los predicados de ndice uno, es decir de un solo argumento, reciben el nombre
especco de propiedades.
3.1.2. Variables y cuanticadores
Hasta ahora el uso de predicados en lugar de variables proposicionales podra parecer
simplemente otra manera de escribir enunciados. Por ejemplo, la proposici on
Anastasia recita poesa n ordica,
se representa con predicados como Recita(Anastasia, poesa n ordica), lo cual parece ser
simplemente una manera distinta de escribir el mismo enunciado en espa nol. La principal
diferencia es que el predicado puede cambiar de argumentos, como en
Recita(Licantro, odas en s anscrito).
M as a un, podemos sustituir individuos por variables, como en Recita(x, y). De esta manera
podemos denir predicados de manera m as formal, como los que siguen:
F(x, y) signica que x es padre de y.
E(x) signica que x es un estudiante
J(x, y) signica que x es m as joven que y.
3.1 Introducci on 117
Es de importancia remarcar que los nombres de las variables no importan siempre y
cuando se usen de forma consistente. Sin embargo, obs ervese que las expresiones anterio-
res no corresponden a proposiciones, puesto que los valores de x e y est an indeterminados,
por lo que resulta imposible vericar si el predicado Recita se cumple. Las variables jue-
gan el papel de representantes de valores concretos, como un estudiante, un n umero o un
programa particular. Obs ervese entonces que un mismo predicado puede representar un
n umero potencialmente innito de proposiciones, una por cada individuo que pueda tomar
el lugar de cada una de las variables del predicado.
Consideremos ahora los siguientes enunciados:
Hay un gato rayado.
Algunas personas van al teatro.
Todos los programas en Java usan clases.
Todos los estudiantes trabajan duro.
Algunos estudiantes se duermen en clase.
Ocho de cada diez gatos lo preeren.
Nadie es m as tonto que yo.
Al menos seis estudiantes est an despiertos.
Hay una innidad de n umeros primos.
Hay m as computadoras PC que Mac.
Todos estos enunciados tienen en com un el hecho de que no involucran a ning un in-
dividuo en particular. Aun cuando tenemos predicados a nuestra disposici on, necesitamos
un mecanismo para formalizar las partes de los enunciados que se reeren a una cantidad,
como todos, algunos, hay, nadie, cualquiera, . . . . A estas cantidades es a lo que llamamos
cuanticadores.
Por ejemplo, para el enunciado Todos los estudiantes son m as j ovenes que alg un pro-
fesor, entendiendo que el universo de discurso son las personas de la Facultad de Ciencias,
sera inoperante escribir todos los posibles predicados para estudiante, profesor y ser m as
joven, E(Karla), E(Hugo), . . . , P(Elisa), P(Favio), J(Karla,Favio),. . . . M as a un, en algu-
nos casos esto resulta imposible, como con la frase hay una innidad de n umeros primos.
Este problema se soluciona al emplear operadores de cuanticaci on sobre individuos
indeterminados, (se lee para todo) y (se lee existe), los cuales siempre van seguidos de
una variable que representa a los individuos de la colectividad que se est a especicando.
Por ejemplo, para decir todos hablan espa nol escribimos xE(x) donde E(x) signica que
x habla espa nol. Similarmente, si C(x) signica que x es cuervo, entonces para especicar
que hay un cuervo escribimos xC(x). M as a un, usando cuanticadores en combinaci on
con la l ogica proposicional, podemos representar enunciados m as complejos, como por
ejemplo todos los estudiantes son m as j ovenes que alg un profesor cuya especicaci on es
118 L ogica de predicados
como sigue:
x(E(x) y(P(y) J(x, y))),
donde queda claro que P(x) signica x es profesor; E(x) signica que x es estudiante y
J(x, y) signica que x es m as joven que y.
A continuaci on vamos a denir el lenguaje formal de la l ogica de predicados que inclu-
ye todos los elementos discutidos hasta ahora, para despu es volver al tema de especicaci on
formal.
3.2. Sintaxis de la l ogica de predicados
En esta secci on denimos formalmente lo que se conoce como un lenguaje de la l ogica
de predicados de primer orden, el cual, a diferencia del caso proposicional, vara dependien-
do del universo de discurso particular y de las relaciones y propiedades de los individuos
que se deseen especicar.
3.2.1. T erminos
Los t erminos son la categora sint actica que representa individuos del universo de dis-
curso.
Denici on 3.1 Un t ermino es una constante, una variable o bien un smbolo de funci on aplicado a
otros t erminos.
Los t erminos se generan mediante la siguiente gram atica. En los casos en que aparezca
una coma (,), esta es parte de la sintaxis. El metasmbolo . . . signica m as de los
anteriores y no forma parte de los smbolos terminales de la gram atica.
term ::= var (3.1)
term ::= const (3.2)
term ::= func(lista-de-term) (3.3)
var ::= x (3.4)
var ::= y (3.5)
var ::= z (3.6)
var ::= . . . (3.7)
const ::= a (3.8)
const ::= b (3.9)
const ::= c (3.10)
const ::= . . . (3.11)
func ::= f (3.12)
func ::= g (3.13)
func ::= h (3.14)
func ::= . . . (3.15)
lista-de-term ::= term (3.16)
lista-de-term ::= term, lista-de-term (3.17)
3.2 Sintaxis de la l ogica de predicados 119
Cada smbolo de la categora func tiene asociado un n umero jo de argumentos (el
ndice o aridad del smbolo). A veces escribimos f
(n)
para indicar que el smbolo f tiene
ndice n.
Veamos a continuaci on algunos ejemplos.
Ejemplo 3.1. Supongamos que el universo consta de los pases del mundo.
Las variables x e y denotan a pases cualesquiera.
La constante a denota a Alemania y la constante b a Brasil.
El smbolo funcional f de ndice 1 denota a la operaci on que recibe un pas y de-
vuelve su ciudad capital. Es decir, f(x) es la capital de x. Esto es posible dado que
cada pas tiene una unica capital de manera que dicha asociaci on es funcional. En
particular f(a) denota a Berln y f(b) a Brasilia.
Ejemplo 3.2. Si el universo consta de n umeros naturales, entonces:
La constante a denota al individuo 0 y la constante b al individuo 1.
Los t erminos funcionales f
(2)
(x, y) y g
(2)
(x, y) denotan a los individuos x+y y xy
respectivamente.
En tal caso, los individuos 2 y 4 se representan mediante f(b, b) y g(f(b, b), f(b, b))
respectivamente.
3.2.2. F ormulas
Una vez denidos los t erminos podemos construir las f ormulas del lenguaje, las cua-
les representan a las relaciones entre individuos, as como a los enunciados generales del
lenguaje. Empecemos con las f ormulas m as simples, las at omicas.
Denici on 3.2 Una f ormula at omica es una expresi on de la forma P(t
1
, . . . , t
n
), donde P es un
smbolo de predicado de ndice n y t
1
, . . . , t
n
son t erminos.
Ejemplo 3.3. Denimos los smbolos de predicado P
(2)
, R
(3)
, Q
(1)
, los smbolos de funci on f
(1)
y
g
(2)
y las constantes a, b y c. Las siguientes son f ormulas at omicas:
P(b, f(y))
Q(g(f(a), c))
R(z, f(g(a, c)), b)
120 L ogica de predicados
Ahora que tenemos f ormulas at omicas, podemos combinarlas con los conectivos pro-
posicionales para obtener f ormulas m as complejas.
Ejemplo 3.4.
En el universo de discurso de los n umeros naturales, si a + b = c +b entonces a = c.
Denimos las constantes a, b, c y los siguientes smbolos de funci on:
f(x, y) para representar x +y
igual(x, y) para representar x = y
Y la especicaci on queda como sigue:
igual(f(a, b), f(c, b)) igual(a, c)
Ejemplo 3.5.
En la expresi on Bomb on es un gato que ara na tenemos lo siguiente:
a) El universo de discurso son los animales (los mamferos, los felinos, cualquier con-
junto, raza o familia que incluya a los gatos).
b) Los predicados que denimos son:
G(x) x es un gato
A(x) x ara na
Siendo Bomb on uno de los individuos concretos del universo de discurso, estar a represen-
tado por una constante, su propio nombre. La expresi on l ogica queda como sigue:
G(Bomb on) A(Bomb on)
Otros ejemplos son:
Perro(x) Tienecola(x)
Madre(x, y) Madre(x, z) Hermanos(y, z)
Calif(x) x 0 x 10
Obs ervese que en el ultimo ejemplo los predicados , se usan de manera inja como
es usual en matem aticas. Cual es el universo de discurso en cada caso?
De los ejemplos anteriores se observa que las f ormulas con predicados se generan de la
misma manera que las f ormulas de la l ogica proposicional, s olo que las f ormulas at omicas
3.2 Sintaxis de la l ogica de predicados 121
han cambiado de simples variables proposicionales a predicados que involucran t erminos.
Veamos la gram atica formal, en la que usamos el metasmbolo [ para separar alternativas
de sustituci on para un mismo smbolo no terminal de manera abreviada, y el metasmbolo
. . . para denotar m as como los anteriores.
E ::= pred(lista-de-term) (3.18)
E ::= E (3.19)
E ::= E E (3.20)
E ::= E E (3.21)
E ::= E E (3.22)
E ::= E E (3.23)
E ::= (E) (3.24)
pred ::= P [ Q[ R[ . . . (3.25)
lista-de-term ::= term (3.26)
lista-de-term ::= term, lista-de-term (3.27)
Nuevamente cada smbolo de la categora pred tiene asociado un n umero jo de argu-
mentos.
3.2.3. F ormulas cuanticadas
Finalmente denimos las f ormulas que involucran cuanticadores, las cuales propor-
cionan una gran expresividad al lenguaje.
Denici on 3.3 Sea E una f ormula. La expresi on xE es la cuanticaci on universal de E con res-
pecto a x y representa al enunciado para todo x se cumple E. An alogamente, la expresi on
xE es la cuanticaci on existencial de E con respecto a x y representa al enunciado existe
un x que cumple E. En ambos casos la f ormula E se conoce como el alcance de la cuanti-
caci on y la variable que gura inmediatamente despu es del cuanticador se conoce como
variable del cuanticador.
Una pregunta com un es el porqu e en la cuanticaci on universal se preere el formato
P(x, . . .) Q(x, . . .), mientras que en la cuanticaci on existencial se preere la forma
P(x) Q(x). Cuando tenemos una cuanticaci on universal, examinaremos a todo el uni-
verso de discurso para comprobar que todo aquel que cumple P(x, . . .), tambi en cumple
Q(x, . . .). Si el individuo que estamos examinando no cumple P(x, . . .) no nos interesa
qu e pasa con Q(x, . . .), por lo que queremos que la cuanticaci on sea verdadera j ando-
nos unicamente en aquellos individuos que cumplen P(x, . . .). Si us aramos el esquema
122 L ogica de predicados
P(x, . . .) Q(x, . . .), la cuanticaci on sera falsa si en el universo de discurso hubiese
individuos que no cumplen con P(x, . . .).
En el caso de la cuanticaci on existencial deseamos encontrar en el universo de dis-
curso al menos a un individuo que cumpla con P(x, . . .) y Q(x, . . .). Su usamos la f ormu-
la P(x, . . .) Q(x, . . .), al examinar al primer individuo que no cumpla con P(x, . . .)
daramos por buena la cuanticaci on, pues en el caso de que el antecedente sea falso, la
condicional es verdadera; no seguiramos revisando el universo de discurso para ver si
encontramos a un individuo que cumpla con P(x, . . .); la cuanticaci on se evaluara a ver-
dadero aun cuando no existiese ning un individuo como el que queremos. Con la conjunci on
garantizamos que tiene que existir al menos un individuo que cumpla con ambos predica-
dos.
Pasemos a ver algunos ejemplos.
Ejemplo 3.6. Supongamos que el universo de discurso es el universo astron omico. Sea S(x) el
predicado ser sol y P(x) el predicado ser planeta. Vamos a traducir algunos enunciados
sencillos que involucran cuanticadores.
Todo es un sol: xS(x)
Todo es un planeta: yP(y)
Existe un planeta y un sol: xy(P(x) S(y))
Cualquiera es sol o planeta: z(P(z) S(z))
En la secci on 3.3 discutiremos el proceso de especicaci on m as ampliamente. A conti-
nuaci on ejemplicamos el concepto de alcance.
Ejemplo 3.7. Veamos un ejemplo de los alcances de cuanticaciones. Encerraremos en un cuadro
los alcances, marcando a la variable de las cuanticaciones correspondientes.
x
_
_
x > i i > j
_
ij
_
x > i x > j
_
_
x
i, j
El recuadro de guiones marca el alcance de la cuanticaci on x mientras que el recua-
dro de lnea s olida marca el alcance de las cuanticaciones i y j.
Agregamos a la gram atica que acabamos de dar para la l ogica de predicados las reglas
que describen a la cuanticaci on universal y existencial como f ormulas l ogicas:
E ::= var E (3.28)
E ::= var E (3.29)
3.2 Sintaxis de la l ogica de predicados 123
con lo cual nuestra gram atica para f ormulas de la l ogica de predicados queda completa.
3.2.4. Variables libres y ligadas
Consideremos el enunciado todos son blancos; si deseamos especicarlo formalmente,
primero debemos denir un predicado B(x) cuyo signicado es x es blanco, para despu es
cuanticar universalmente, obteniendo la f ormula xB(x). Ahora bien, consideremos la
f ormula yB(y), qu e enunciado en espa nol se especica ahora? F acilmente nos damos
cuenta de que su signicado es nuevamente todos son blancos, es decir, el nombre particu-
lar de la variable utilizada, en este caso x o y, es irrelevante para entender el signicado de
la f ormula. Por esta raz on a la variable de un cuanticador se le conoce tambi en como va-
riable articial o monigote
1
, porque unicamente marca el lugar o la posici on. En contraste,
consideremos las f ormulas B(x) y B(y), y supongamos que el universo son los n umeros
naturales, siendo B el predicado ser par. Con esta informaci on no es posible entender el
signicado
2
de estas f ormulas, pues hace falta saber el valor de sus variables. Por ejemplo,
si x es 3 entonces B(x) signica 3 es par, mientras que si y vale 8 entonces B(y) signica
8 es par, de donde claramente B(x) y B(y) no signican lo mismo, pues su signicado
depende del valor particular de sus variables. La pregunta inmediata es: cu ando es rele-
vante el valor particular de una variable para conocer el signicado y valor de verdad de
una f ormula? Para responderla introducimos los conceptos de variable libre y ligada.
Denici on 3.4 Se dice que una presencia especca de una variable x en una f ormula A est a li-
bre si no es la variable articial de un cuanticador ni gura dentro del alcance de una
cuanticaci on cuya variable articial tambi en es x.
En la siguiente tabla presentamos algunas f ormulas y la lista de variables libres de cada
una de ellas.
Cuanticaci on Variables libres
x
_
(x > i i > j) (x > j)
_
i, j
x
_
x > i i > j) i, j
ij
_
(x > i i > j) (x > j)
_
x
i
_
(x > i i > j) (x > j)
_
x, j
ij
_
x > i i > j) x
j
_
x > i i > j) i, x
Las variables que no guran libres en una f ormula se denominan ligadas o acotadas.
Veamos una denici on m as detallada.
1
En ingl es dummy
2
El valor de verdadero o falso
124 L ogica de predicados
Denici on 3.5 Decimos que una presencia determinada de una variable x en una f ormula A es liga-
da o acotada si x es una variable articial de Ao cae dentro del alcance de un cuanticador
con la misma variable articial x.
Los enunciados en espa nol se formalizan mediante f ormulas que no tienen variables
libres, a las cuales llamamos tambi en enunciados, sentencias o f ormulas cerradas.
Denici on 3.6 Un enunciado es una f ormula A que no contiene presencias libres de variables.
Ejemplo 3.8. En la expresi on
(1)
i > 0
(2)
i (0
(3)
i x
(4)
i = 0)
tenemos cuatro presencias de i. La primera presencia de i, anotada con (1), es una presencia
libre, pues no se encuentra dentro de ninguna cuanticaci on. El valor que contribuya a la
expresi on depender a del estado en el que se la eval ue. La segunda presencia es la variable
articial de un cuanticador por lo que es ligada. Las otras dos presencias de i tambi en son
ligadas, el valor de la cuanticaci on no depende del valor particular que tenga i. Finalmente,
la presencia de x es una presencia libre y su contribuci on a la expresi on depender a tambi en
del estado en el que se eval ue la expresi on.
Ejemplo 3.9. En la expresi on
(
(1)
k
+
(2)
j ) > 0
(3)
j (0
(4)
j 5
(5)
k
<
(6)
j )
las presencias (1) y (5) de k son presencias libres, pues en el primer caso la k se encuentra
fuera de la cuanticaci on y aunque en el segundo caso se encuentra dentro de una cuanti-
caci on, la variable articial es j, no k.
La presencia (2) de j es distinta que las presencias (3), (4) y (6), pues mientras la
primera se encuentra fuera de una cuanticaci on y es, por lo tanto, presencia libre, las otras
tres se encuentran dentro de una cuanticaci on donde la variable articial es ella misma,
por lo que son presencias acotadas.
El valor de esta f ormula depender a del estado en el que se evaluen los valores libres de
j y k.
Puede suceder que el usar una misma variable (j en el ejemplo anterior) para dos pape-
les distintos el papel de presencia libre en (2) y de presencia acotada en (4) y (6) lleve al
lector a confusi on. En estos casos es recomendable cambiar el nombre a todas las presen-
cias ligadas de la variable en cuesti on que participan directamente en la cuanticaci on para
eliminar confusiones. De hacer esto, la expresi on que dimos arriba quedara como sigue:
(
(1)
k
+
(2)
j ) > 0
(3)
i (0
(4)
i 5
(5)
k
<
(6)
i )
3.2 Sintaxis de la l ogica de predicados 125
El concepto de variables libres o acotadas es similar al que presentan los lenguajes de
programaci on con estructura de bloques. En ellos tenemos la posibilidad de anidar pedazos
de c odigo de la siguiente manera:
1 var i : i nt eger ;
2 procedure p( var x : i nt eger ) ;
3 var i : i nt eger ;
4 begin
5 i : = x
*
x ;
6 x : = 2
*
i ;
7 end
La presencia de i en la lnea 1 es libre, ya que no se encuentra dentro de un bloque.
La presencia de x en 2 es ligada y hace el papel de una declaraci on, pues le da nombre
a una variable articial. Las presencias de x en 5 y 6, as como las presencias de i dentro
del procedimiento son acotadas (lneas 5 y 6), ya que estos identicadores s olo tienen
signicado dentro del procedimiento. Si cambi aramos los identicadores de x a y en todas
las presencias acotadas, y de i a k tambi en en las presencias acotadas, el procedimiento
obtenido es
1 var i : i nt eger ;
2 procedure p( var y : i nt eger ) ;
3 var i : i nt eger ;
4 begin
5 k : = y
*
y ;
6 y : = 2
*
k ;
7 end
y hace exactamente lo mismo que el original.
Para terminar esta secci on deseamos hacer hincapi e en lo siguiente:
Al trabajar con predicados es muy importante que el universo de discurso est e bien
denido y sea claro.
Los t erminos y las f ormulas son ajenos, es decir ning un t ermino es f ormula y ninguna
f ormula es t ermino.
Los t erminos denotan exclusivamente a individuos u objetos.
Las f ormulas at omicas (predicados) denotan unicamente proposiciones o propieda-
des acerca de los t erminos.


Unicamente los individuos u objetos son cuanticables. Esta caracterstica justica
la denominaci on primer orden que se le da a la l ogica de predicados que estamos
estudiando.
126 L ogica de predicados
Ejercicios
3.2.1.- Sean f
(2)
y g
(3)
smbolos de funci on y d una constante. Cu ales de las siguientes
expresiones son t erminos? Justica tu respuesta.
a) g(d, d)
b) f(x, g(y, z), d)
c) g(x, f(y, z), d)
d) f(d, x)
e) g(d, g(x, y, f(z, d)), f(f(d, x), w))
f ) g(g(y, y, f(d, d)), f(w, g(d, x, y)))
3.2.2.- Sean a una constante, f
(1)
un smbolo de funci on y P
(2)
, Q
(2)
y R
(1)
smbolos de
predicado. Cu ales de las siguientes expresiones son f ormulas? Justica tu respuesta.
a) P(a, x)
b) Q(a, f(a))
c) f(a)
d) Q(Q(a, x), x)
e) R(Q(x, x))
f ) P(f(y), a)
g) R(f(w))
h) Q(R(x), w)
i) P(x, y) zQ(z, y)
j) fQ(f(y), y)
k) R(f(z)) Q(a, f(w))
l) xyQ(x, y) R(w)
3.2.3.- Sean c y d constantes, f
(1)
, g
(2)
y h
(3)
smbolos de funci on y P
(3)
y R
(2)
smbolos de
predicado. Cu ales de las siguientes expresiones son f ormulas? Justica tu respuesta.
a) Q(c, d, c)
b) xP(f(d), h(g(c, x), d, y))
c) xP(f(d), h(R(y, y), d))
d) wP(g(h(x, f(d), x), g(w, w)), h(x, x, x), c)
3.2 Sintaxis de la l ogica de predicados 127
e) u(Q(z, z, z) R(y, y))
f ) xy(g(x, y) P(x, y, x))
3.2.4.- Para cada una de las siguientes f ormulas, clasica todas las presencias de variables
en libres o ligadas. Adem as da el alcance de cada cuanticador.
a) R(x, y) L(y)
b) xR(x, f(y, z)) L(y)
c) R(f(x, y), z) yR(f(y, x), z) wI(x, y)
d) x(C(x, z) R(f(y, x), f(x, y))) C(y, z)
e) xyR(x, y) C(x, y)
f ) C(f(x, y), z) yC(f(y, x), z) x(L(x) L(y) I(x, y))
g) yC(x, y) zR(x, z)
h) x
_
L(x) R(f(x, a), x) C(f(x, a), a)
_
i) yC(a, y) L(a)
j) y
_
I(f(x, y), f(y, x)) D(r(x))
_
.
k) D(f(x, y)) zC(z, r(y)).
l) y
_
C(x, f(y, z)) D(y) xI(z, r(y))
_
.
m) xzI(z, r(x)) C(z, y) D(y).
3.2.5.- Para cada una de las siguientes f ormulas, clasica todas las presencias de variables
en libres o ligadas. Adem as da el alcance de cada cuanticador.
a) xz
_
Q(z, y) yR(x, f(x))
_
b) P(x, a, y) y(P(x, y, a) R(a, z))
c) W(f(x, a), g(y)) xyS(f(x, a), g(z))
d) R(f(x, x), w, g(x)) xyT(x, y, g(z))
e) wT(w, x, g(y)) zR(x, f(w, y))
3.2.6.- Construye para cada inciso una f ormula A que cumpla las condiciones dadas.
a) A es un enunciado que es una cuanticaci on de una implicaci on donde el con-
secuente es una f ormula existencial.
b) A es un enunciado y es una cuanticaci on existencial de una conjunci on.
c) A es una f ormula que incluye cuanticadores pero tiene al menos tres presen-
cias libres de exactamente dos variables.
128 L ogica de predicados
d) A es un enunciado y una disyunci on de un enunciado at omico con una f ormula
existencial cuyo alcance es un predicado ternario.
e) Aes una f ormula que no es un enunciado y tiene dos cuanticadores universales
con variables distintas, un cuanticador existencial y adem as se convierte en un
enunciado al cuanticarla universalmente.
3.3. Especicaci on formal
El proceso de especicaci on o traducci on del espa nol a la l ogica formal no es siempre
sencillo. Algunas frases del espa nol no se pueden traducir de una manera completamente
el a la l ogica de predicados, como veremos en algunos ejemplos. Sin embargo, el pro-
ceso es de gran importancia pues es la base de muchos m etodos de especicaci on formal
utilizados en inteligencia articial o ingeniera de software (como ejemplo tenemos el len-
guaje de especicaci on Z). A continuaci on presentamos algunos consejos, observaciones y
ejemplos que pretenden facilitar la especicaci on del espa nol en t erminos de la l ogica.


Unicamente podemos especicar armaciones o proposiciones; no es posible tradu-
cir preguntas, exclamaciones, ordenes, invitaciones, etc etera.
La idea b asica es extraer predicados a partir de los enunciados dados en espa nol, de
manera que el enunciado completo se construya al combinar f ormulas at omicas me-
diante conectivos y cuanticadores. Por ejemplo, la frase me gustan los tacos y las
pizzas debe traducirse como me gustan los tacos y me gustan las pizzas. An aloga-
mente ir e de vacaciones a la playa o a la monta na signica ir e de vacaciones a la
playa o ir e de vacaciones a la monta na.
La conjunci on y se traduce como . La palabra pero tambi en, aunque el sentido
original del espa nol se pierde. Por ejemplo te doy dulces pero haces la tarea s olo
puede traducirse en Te doy dulces y haces la tarea, lo cual es diferente en el lenguaje
espa nol.
La disyunci on es incluyente: comeremos pollo o vegetales incluye el caso en que se
coman ambos.
Con la implicaci on hay que ser cautelosos, sobre todo en el caso de frases de la
forma A s olo si B lo cual es equivalente con Si no B entonces no A, que a su vez
es equivalente con Si A entonces B. Es un error com un intentar traducir dicha frase
inicial mediante B A.
Si en el espa nol aparecen frases como para todos, para cualquier, todos, cualquiera,
los, las, debe usarse el cuanticador universal .
3.3 Especicaci on formal 129
Si en el espa nol hay frases como para alg un, existe un, alguno, alguna, uno, una,
alguien, generalmente se usa el cuanticador existencial .
Importante: En ciertas ocasiones, frases en espa nol que involucran alguien, algo
deben especicarse con un cuanticador universal y no un existencial. Por ejemplo,
el enunciado si hay alguien demasiado alto entonces se pegar a con el marco de la
puerta se puede reescribir en espa nol como cualquiera demasiado alto chocar a con
el marco de la puerta, lo cual nos lleva a x(A(x) C(x)). El lector debe conven-
cerse de que no es posible traducir esta oraci on usando un cuanticador existencial.
Pronombres como el, ella, eso no se reeren a un individuo particular sino que se
usan como referencia a algo o alguien mencionado previamente, por lo que obtienen
signicado del contexto particular. Cuando un pronombre aparezca en un enunciado
debe uno averiguar primero a qui en o qu e se reere. Por ejemplo, en el enuncia-
do Martha es amiga de Lupita pero ella no es amiga de Karla debe traducirse como
Martha es amiga de Lupita y Lupita no es amiga de Karla. Similarmente, cuando ne-
cesitamos de variables, como en hay un perro con manchas y el ladra en las ma nanas
es un error tratar de traducir por separado hay un perro con manchas y el ladra en
las ma nanas puesto que lo que existe est a ligado con lo que ladra por la conjunci on,
de manera que debe utilizarse una variable que modele esta conexi on.
Las variables no se mencionan en espa nol sino que son s olo un formalismo para
representar individuos. Por ejemplo, la f ormula x(M(x) T(x)) puede traducirse
como Cualquier minotauro es troyano y no como para cualquier x, si x es minotauro
entonces x es troyano. Enunciados de esta forma s olo sirven como pasos intermedios
en el proceso de traducci on pues no forman parte del espa nol correcto ni de la l ogica
formal. A este mismo respecto es pr acticamente imposible que en una traducci on del
espa nol guren variables libres.
Los esquemas x(A B) y x(A B) son de gran utilidad y bastante comunes.
Menos comunes, aunque tambi en adecuados, son los esquemas x(AB), x(AB)
y x(AB) .
El esquema x(AB), si bien es una f ormula sint acticamente correcta, es extrema-
damente raro que gure en una traducci on del espa nol.
El hecho de que se usen dos o m as variables distintas no implica que estas representen
a elementos distintos del universo, de manera que para especicar dos individuos
distintos no es suciente contar simplemente con variables distintas. Las f ormulas
xP(x) y xy(P(x)P(y)) expresan ambas lo mismo, a saber que algo cumple P.
Se debe agregar explcitamente que x e y tienen la propiedad de ser distintos, es decir
x ,= y.
130 L ogica de predicados
3.3.1. Juicios aristot elicos
Una gran parte de las especicaciones en lenguaje natural pueden formalizarse median-
te instancias de alguno de los cuatro juicios aristot elicos b asicos, los cuales se reeren a dos
relaciones y expresan las posibilidades de que estas se cumplan o no en ciertos individuos.
Ejemplo 3.10. Tomemos como universo de discurso al reino animal. Vamos a construir los llamados
juicios aristot elicos fundamentales a partir de las propiedades ser perico y ser feo. Primero
denimos los predicados necesarios:
P(x) x es perico
F(x) x es feo
(a) Juicio universal armativo: Todos los pericos son feos,
x(P(x) F(x)).
(b) Juicio existencial armativo: Algunos pericos son feos,
x(P(x) F(x)).
(c) Juicio existencial negativo: Algunos pericos no son feos,
x(P(x) F(x)).
(d) Juicio universal negativo: Ning un perico es feo, lo cual es equivalente a decir que
cualquier perico no es feo o bien todos los pericos no son feos; de manera que las
dos siguientes especicaciones son correctas:
x(P(x) F(x)),
x(P(x) F(x)).
En el siguiente ejemplo nos servimos de juicios aristot elicos para obtener especica-
ciones m as complejas.
Ejemplo 3.11. Tenemos los siguientes predicados en el universo de discurso de los habitantes de
la Ciudad de M exico:
I(x) x es inteligente
E(x) x es estudiante de la Facultad de Ciencias
M(x) a x le gusta la m usica
Especicar con cuanticaciones los siguientes enunciados:
Todos los estudiantes de la Facultad de Ciencias son inteligentes.
x(E(x) I(x))
3.3 Especicaci on formal 131
A algunos estudiantes inteligentes les gusta la m usica.
x(E(x) I(x) M(x))
Todo aquel a quien le gusta la m usica es un estudiante que no es inteligente.
x(M(x) E(x) I(x))
Ejemplo 3.12. En este ejemplo observamos el signicado de las distintas combinaciones de dos
cuanticaciones. Sea Q(x, y) el predicado x quiere a y.
Todos quieren a alguien: xyQ(x, y)
Alguien quiere a todos: xyQ(x, y)
Alguien es querido por todos: xyQ(y, x)
Todos se quieren, o bien, todos quieren a todos: xyQ(x, y)
Algunos se quieren entre s, o bien alguien quiere a alguien: xyQ(x, y)
Alguno no es querido por nadie: xyQ(y, x)
Alguien no quiere a nadie: xyQ(x, y)
Todos no quieren a alguien: xyQ(x, y)
Nadie quiere a todos: xyQ(x, y)
Nadie quiere a nadie: xyQ(x, y)
3.3.2. Negaciones
Con frecuencia necesitaremos traducir la negaci on de una cuanticaci on, lo cual ejem-
plicamos a continuaci on.
Ejemplo 3.13. La negaci on de una cuanticaci on puede obtenerse simplemente anteponiendo el
operador de negaci on, por ejemplo:
No todos son leones se traduce como xL(x).
No existen leones se traduce como xL(x).
Sin embargo, estas traducciones no proporcionan informaci on suciente y pueden me-
jorarse usando equivalencias intuitivas del espa nol, como sigue:
No todos son leones es lo mismo que existe algo que no es le on cuya traducci on es:
xL(x)
132 L ogica de predicados
No existen leones es lo mismo que cualquiera no es le on cuya traducci on es:
xL(x)
Por supuesto que en los dos casos ambas traducciones deben ser equivalentes en la
l ogica pues lo son en espa nol. Analizaremos esto con m as detalle en la subsecci on 3.4.4.
Veamos un ejemplo m as elaborado.
Ejemplo 3.14. Traducir el enunciado no todos los planetas tienen una luna. Denimos los predi-
cados P(x), L(x), T(x, y) para ser planeta, ser luna y x tiene a y respectivamente.
Lo m as simple es especicar primero la cuanticaci on universal y anteponer la ne-
gaci on, obteniendo
x
_
P(x) y(L(y) T(x, y))
_
.
Otra opci on es transformar la frase a una equivalente en espa nol que permita una
estructura l ogica que nos d e m as informaci on. En este caso el enunciado original es
equivalente a existe un planeta que no tiene lunas, cuya especicaci on es:
x
_
P(x) y(L(y) T(x, y))
_
.
Es posible renar a un m as la traducci on si observamos que la frase no existe una luna
tal que x la tenga se puede reescribir como para toda luna, x no la tiene, obteniendo
as la especicaci on m as renada posible.
x
_
P(x) y(L(y) T(x, y))
_
.
3.3.3. Contando objetos
Como ya mencionamos al principio de esta secci on, el hecho de usar variables diferen-
tes no implica que se reeran necesariamente a individuos distintos, de manera que para
representar cantidades particulares se requiere especicar explcitamente que ciertos indi-
viduos no son iguales. Veamos algunos ejemplos.
Ejemplo 3.15. En las siguientes especicaciones se utiliza el predicado binario de igualdad = de
manera inja. Adem as las f ormulas del esquema (t = s) se escriben como t ,= s, como
es usual en matem aticas.
Hay al menos una luna, esto resulta equivalente a hay una luna:
xL(x).
3.3 Especicaci on formal 133
Hay m as de una luna, es decir, existen al menos dos lunas:
xy(L(x) L(y) x ,= y).
Obs ervese que se hace explcito el hecho de que las lunas denotadas por x e y son
diferentes.
Hay al menos tres lunas. De manera similar al enunciado anterior usamos tres varia-
bles y hacemos explcito el hecho de que denotan a tres individuos diferentes:
xyz(L(x) L(y) L(z) x ,= y x ,= z y ,= z).
En general es posible denir el enunciado hay al menos n objetos de manera an aloga.
Sin embargo es imposible especicar que existe una innidad de objetos. Por qu e?
Existe un unico sol. Lo usual aqu es especicar que hay un sol y que cualesquiera
dos soles en realidad son iguales:
x
_
S(x) yz(S(y) S(z) y = z)
_
.
Este esquema es de gran utilidad en matem aticas y suele abreviarse como ! xP(x)
para cualquier predicado P.
Hay a lo m as un sol, lo cual es equivalente a Cualesquiera dos soles son el mismo.
xy(S(x) S(y) x = y).
Obs ervese que esta especicaci on incluye el caso en que no haya soles. Otra posibi-
lidad es especicar que No es cierto que existen al menos dos soles.
3.3.4. Micromundos
En inteligencia articial un micromundo es un modelo articialmente simple de una si-
tuaci on real; por ejemplo, si se desea programar un robot para que mueva objetos de manera
inteligente, basta modelar los movimientos deseados sin tomar en cuenta sus dimensiones
reales ni la cantidad total de objetos en juego, para lo cual basta considerar una idealizaci on
del mundo real con pocos objetos. A continuaci on especicamos algunas descripciones pa-
ra dos micromundos similares a los utilizados en inteligencia articial.
El micromundo de cubos
En este micromundo hay cubos de color amarillo, azul o rojo. Un cubo puede estar
sobre otro o en el piso. Denimos los predicados S(x, y) representando que el cubo x
134 L ogica de predicados
est a sobre el cubo y; A(x), Az(x) y R(x) que representan que un cubo puede ser de color
amarillo, azul o rojo respectivamente; L(x) signica que el cubo x est a libre, es decir que
ning un cubo est a sobre el cubo x; y la constante p representa al piso. Veamos algunas
especicaciones.
Ning un cubo amarillo est a libre:
x(A(x) L(x)).
Hay un cubo azul libre y un cubo rojo libre:
xy
_
Az(x) L(x) R(y) (y)
_
.
Cualquier cubo amarillo tiene un cubo sobre el:
x
_
A(x) y
_
S(y, x) x ,= y
_
_
.
No todos los cubos azules est an libres:
x(Az(x) L(x)) .
Hay un cubo azul sobre el piso con un cubo amarillo sobre el y un cubo rojo sobre el
amarillo:
xyw
_
Az(x) A(y) R(w) S(x, p) S(y, x) S(w, y)
_
.
Un mundo de tri angulos, crculos y cuadrados
El micromundo consta de una cuadrcula de cualquier tama no donde en cada cuadro
puede haber guras que son crculos, cuadrados o tri angulos, las cuales pueden ser pe-
que nas, medianas o grandes. Tambi en se tienen las relaciones dadas por la posici on: sur,
norte, este, oeste; y las relaciones dadas por estar en la misma columna y en el mismo
rengl on. Los predicados para las guras son: T(x), C(x) y S(x) para tri angulo, crculo y
cuadrado respectivamente; para tama no tenemos P(x), M(x) y G(x) para peque no, me-
diano y grande. Para la posici on tenemos Su(x, y), N(x, y), E(x, y) y O(x, y); por ejemplo
N(x, y) signica x est a al norte de y. Finalmente tenemos Co(x, y) y R(x, y) para indi-
car que x est a en la misma columna o rengl on que y, respectivamente. Hagamos algunas
descripciones para este micromundo.
Hay crculos medianos y cuadrados grandes:
x
_
C(x) M(x)
_
y
_
S(y) G(y)
_
.
3.3 Especicaci on formal 135
No hay cuadrados peque nos:
x
_
S(x) P(x)
_
.
Hay un tri angulo al sur de todos los crculos:
x
_
T(x) y
_
C(y) Su(x, y)
_
_
.
No hay dos tri angulos en el mismo rengl on:
yx
_
T(x) T(y) R(x, y)
_
.
Hay un crculo tal que todos los crculos al oeste de el son grandes:
x
_
C(x) y
_
C(y) O(y, x) G(y)
_
_
.
Con esto terminamos esta secci on y a continuaci on nos ocupamos brevemente de al-
gunos aspectos sem anticos de la l ogica de predicados. Regresaremos a los micromundos
despu es de revisar algunos conceptos relacionados.
Ejercicios
3.3.1.- Para los siguientes predicados prop on un universo de discurso adecuado:
(a) A(x) x tiene los p etalos amarillos
(b) menor(x, M

INIMO) x es menor que el mnimo


(c) P(x, y) x es padre de y
(d) R(x) x ruge
(e) mayor(x, 0) x es mayor que 0
3.3.2.- Considera los siguientes enunciados donde se usan predicados. Determina cu ales
son los predicados necesarios y escribe cada uno de los enunciados en c alculo de
predicados. El universo de discurso es el conjunto de todas las personas.
(a) Los enemigos de mis enemigos son mis amigos.
(b) Los amigos van y vienen; los enemigos se acumulan.
(c) Juan aprecia a Mara y Mara aprecia a Lupita; entonces Juan aprecia a Lupita.
(d) Juan es familiar de Rosa; Rosa es familiar de Guillermo; entonces Juan es fa-
miliar de Guillermo.
136 L ogica de predicados
3.3.3.- Considera los siguientes enunciados donde se usan predicados. Determina cu ales
son los predicados necesarios y escribe cada uno de los enunciados en c alculo de
predicados. El universo de discurso es el conjunto de todos los animales.
(a) Los leones comen carne cruda.
(b) S olo los leones rugen.
(c) El piquete de abejas duele mucho.
(d) La boa constrictora no es venenosa.
(e) La vbora de cascabel es venenosa.
(f) No hay mamferos venenosos.
3.3.4.- Considera los siguientes enunciados donde se usan predicados. Determina cu ales
son los predicados necesarios y escribe el argumento l ogico us andolos. El universo
de discurso son los animales de la selva.
(a) Los leones son feroces.
(b) Los elefantes asustan a los leones.
(c) Los ratones asustan a los elefantes.
(d) De esto, los ratones asustan a animales feroces.
3.3.5.- Considera los siguientes enunciados donde se usan predicados. Determina cu ales
son los predicados necesarios y escribe el argumento l ogico us andolos. El universo
de discurso son las computadoras asignadas a Ciencias de la Computaci on.
(a) La computadora x ha sido invadida (hackeada) desde la computadora y.
(b) La computadora x funciona con el sistema operativo Linux.
(c) La computadora x funciona con el sistema operativo Windows.
(d) El servidor del taller de Lenguajes de Programaci on, que funciona con Linux,
no fue hackeado.
(e) El servidor del taller de Ingeniera de Software, que funciona con Windows,
s fue hackeado.
(f) Si una computadora tiene el sistema Linux no puede ser hackeada.
3.3.6.- Traduce los siguientes enunciados a cuanticaciones universales y (o) existenciales,
donde el universo de discurso son los das de la semana y suponiendo los predicados
y constantes que siguen:
S(x) el da x est a soleado
N(x) el da x est a nublado
L la constante Lunes
M la constante Martes
3.3 Especicaci on formal 137
(a) Todos los das est an soleados.
(b) Algunos das no est an nublados.
(c) Todo da que est a soleado no est a nublado.
(d) Algunos das est an soleados y nublados.
(e) Ning un da es al mismo tiempo soleado y nublado.
(f) Siempre est a soleado s olo si est a nublado.
(g) Ning un da es soleado.
(h) El lunes estuvo soleado, por lo que todos los das estar an soleados.
(i) Se nubl o el lunes y el martes.
(j) Si alg un da est a nublado, entonces todos los das estar an soleados.
3.3.7.- Escribe las f ormulas con cuanticadores de los siguientes enunciados, suponiendo
que el universo de discurso son las personas y usando la siguiente asignaci on para
los predicados:
J(x) x es juez
A(x) x es abogado
M(x) x es mujer
Q(x) x es qumico
R(x, y) x respeta a y
(a) Hay algunas abogados mujeres que son qumicos.
(b) Ninguna mujer es abogado y qumico.
(c) Algunos abogados s olo respetan jueces.
(d) Los jueces respetan s olo a los jueces.
(e) Todas las abogados mujeres respetan a alg un juez.
(f) Algunas mujeres no respetan a ning un abogado.
3.3.8.- Sea T(x, y) el predicado x puede tomarle el pelo a y, donde el dominio consiste de
todos los seres humanos. Usa cuanticadores para expresar cada uno de los siguientes
enunciados:
(a) Todo mundo puede tomarle el pelo a Juan.
(b) Mara puede tomarle el pelo a cualquiera.
(c) Cualquiera puede tomarle el pelo a alguien.
(d) Nadie puede tomarle el pelo a cualquiera.
(e) Siempre hay alguien que le puede tomar el pelo a cualquiera.
(f) Hay exactamente una persona a quien cualquiera puede tomarle el pelo.
138 L ogica de predicados
(g) Hay alguien que puede tomarle el pelo a exactamente una persona distinta de
s mismo.
3.3.9.- Sea S(x) el predicado x es un estudiante, P(x) el predicado x es un maestro y
Q(x, y) el predicado x le hace una pregunta a y, donde el dominio consiste de to-
da la comunidad de la Facultad de Ciencias. Traduce los siguientes enunciados a
cuanticaciones:
(a) Luisa le pregunt o al Profesor Miguel una pregunta.
(b) Cada estudiante le hizo una pregunta al Profesor Garca.
(c) Todo profesor ha hecho una pregunta al Profesor L opez o bien el Profesor P erez
les ha hecho una pregunta.
(d) Alg un estudiante no le ha hecho preguntas a ning un profesor.
(e) Hay un profesor a quien ning un estudiante le ha hecho nunca ninguna pregunta.
(f) Un estudiante le ha hecho preguntas a todos los profesores.
(g) Hay un profesor que le ha hecho preguntas a cada uno de los profesores.
(h) Hay un estudiante al que ning un profesor le ha hecho preguntas.
3.3.10.- Hacer las siguientes traducciones, deniendo previamente el universo de discurso
y los predicados necesarios.
(a) Los perros muerden a los carteros.
(b) Existe un perro que muerde a los carteros.
(c) Existe un cartero que es mordido por todos los perros.
(d) Hay un perro que no muerde carteros.
(e) Hay un cartero que no es mordido por perros.
(f) Hay un perro que es cartero y se muerde a s mismo.
3.3.11.- Traduce las siguientes oraciones a f ormulas, donde el universo de discurso son las
novelas, usando los siguientes predicados:
S(x) x es una novela de espas
M(x) x es una novela de misterio
L(x) x es larga
M(x, y) x es mejor que y
(a) Todas las novelas de espas son largas.
(b) No todas las novelas de misterio son una novela de espas.
(c) S olo las novelas de misterio son largas.
(d) Algunas novelas de espas son de misterio.
(e) Las novelas de espas son mejores que las de misterio.
3.4 Sem antica informal 139
(f) S olo las novelas de espas son mejores que las de misterio.
3.3.12.- Traduce los siguientes argumentos a la l ogica de predicados. Especica el universo
de discurso y explica el signicado de cada predicado usado.
(a) A algunos pacientes les caen bien todos los doctores. A ning un paciente le cae
bien una enfermera. Por lo tanto ning un doctor es enfermera.
(b) Todos los empleados de la empresa INC deben de saber usar Cobol. Todos los
empleados de INC que escriben aplicaciones deben de saber Excel. Roxana
trabaja para la empresa INC, pero ella no sabe Excel. Ingrid sabe Excel pero
no Cobol. Por lo tanto Roxana no escribe aplicaciones e Ingrid no trabaja para
INC.
3.3.13.- Expresa las siguientes especicaciones de un sistema de c omputo usando l ogica
de predicados. Declara previamente los predicados que vas a utilizar.
(a) Si hay menos de 30 megabytes libres en el disco duro, se enva un mensaje de
advertencia a todos los usuarios.
(b) Ning un directorio puede abrirse ni ning un archivo puede cerrarse si se han de-
tectado errores en el sistema.
(c) El sistema de archivos no puede respaldarse si hay alg un usuario con sesi on
activa.
(d) Pueden recibirse archivos de video cuando hay al menos 8 megabytes de me-
moria disponible y la velocidad de conexi on es al menos de 56 kilobits por
segundo.
3.4. Sem antica informal
En esta secci on nos dedicaremos a dar ciertas ideas acerca de la sem antica de la l ogica
de predicados. Lo haremos de manera informal e intuitiva, dado que la sem antica formal
requiere de mecanismos matem aticos sosticados que caen fuera del alcance de este libro.
3.4.1. Dominios de interpretaci on
Antes de poder determinar cu ando una f ormula de la l ogica de predicados es verdadera
debemos formalizar el concepto de universo de discurso; eso se hace mediante un dominio
de interpretaci on, el cual es un conjunto no vaco en el que se denir an matem aticamente
los signicados de los smbolos de constante, predicado y funci on usados en las especica-
ciones formales, de manera que un smbolo de constante ser a un individuo y los predicados
y funciones ser an operadores entre elementos del universo, que devuelven otro elemento
140 L ogica de predicados
del universo en el caso de una funci on, o bien un valor booleano en el caso de un predicado.
Veamos algunos ejemplos.
Tabla 3.1 Distintos universos y dominios
Con: Se representa a Operadores Comentarios:
N Los n umeros
naturales
0, 1
+

mod
div
>, <,
par?,
primo?
Los n umeros naturales tienen denidas
la suma y el producto. Tambi en tienen
residuo entero (mod) y cociente entero
(div). Como interpretaci on de constantes
tenemos la identidad 1 y elemento nulo
0, as como los operadores de decisi on
para orden, par y primo que correspon-
den a predicados.
Z Los enteros +

mod
div
neg?, [
Los operadores para los n umeros natura-
les siguen siendo v alidos y agregamos la
operaci on de resta, el operador de deci-
si on ser negativo y el operador de divisi-
bilidad.
Q N umeros
racionales
,
num
den
simp
etc.
Aqu ya es posible usar la divisi on; tene-
mos adem as operadores que devuelven el
numerador o denominador de un racio-
nal y el operador de simplicaci on que
elimina factores comunes.
R Los n umeros
reales



rac?

e
Agregamos las operaciones de raz cua-
drada (v alida s olo para reales positivos),
mayor entero menor o igual, menor ente-
ro mayor o igual, el predicado ser racio-
nal y las constantes y e
B Los booleanos
1, 0
,
,

B es el tipo booleano, que recibe su nom-


bre del matem atico ingl es George Boole
(1815-1864) que cre o las bases algebrai-
cas para la l ogica. Los operadores son los
mismos denidos en el captulo dos.
Contin ua en la siguiente p agina
3.4 Sem antica informal 141
Tabla 3.1 Distintos universos y dominios Contin ua de la p agina anterior
Con: Se representa a Operadores Comentarios:
/B Micromundo de
cubos
piso
azul?
verde?
libre?
sobre?
arriba?
mover
etc.
El universo es heterog eneo pues tiene al
piso. Aqu se tienen predicados para los
colores; si se desea tener una funci on que
devuelva el color de un objeto es necesa-
rio a nadir los colores al dominio y tam-
bi en predicados para decidir si un indivi-
duo es color o cubo.
H Los seres vivos
que pertenecen al
reino Fungi
comestible?
venenoso?
=-familia?
mismo?
etc.
Si se desean operaciones que devuel-
van lugar de origen o dimensiones, por
ejemplo, el dominio debe volverse hete-
rog eneo para incluir lugares y n umeros.
Tc La Facultad de
Ciencias
inscribir
estudiar
calicar
estudiante?
profesor?
reprueba?
etc.
Un dominio donde hay personas, salo-
nes, clases, n umeros de cuenta, libros,
apuntes, etc..
/T Micromundo de
guras
cuadrado?
crculo?
tri angulo?
peque no?
al-norte?
etc.
En este dominio s olo hay guras pero no
es completamente homog eneo pues las
guras son de tres clases diferentes, por
lo que necesitamos de los predicados pa-
ra cuadrado, crculo y tri angulo. Sin em-
bargo, y a diferencia de otros mundos he-
terog eneos, el dominio est a claramente
partido en tres clases distintas de objetos.
MiBiblio Una biblioteca elegir
prestar
ordenar
est a?
etc.
El dominio es heterog eneo y debe conte-
ner libros, libreros, personas, etc.
142 L ogica de predicados
3.4.2. Noci on informal de verdad
Si el dominio de interpretaci on (universo de discurso) que est e en uso es nito, entonces
podemos asignar el valor de falso o verdadero a cada predicado analizando todas las posi-
bles combinaciones de individuos en dicho universo de discurso. Por ejemplo, si tenemos
el predicado > (mayor que) y nuestro universo de discurso consiste de los enteros 1, 2, 3
y 4, entonces podemos hacer una tabla que asigne los valores de falso o verdadero a cada
pareja de individuos, como podemos observar en la tabla 3.2 en la siguiente p agina.
Tabla 3.2 Asignaci on para el predicado > (mayor que)
> 1 2 3 4
1 0 0 0 0
2 1 0 0 0
3 1 1 0 0
4 1 1 1 0
Por supuesto que esto resulta m as complicado si el universo es demasiado grande, como
en el caso en que el universo conste de los enteros 1, . . . , 1000. Por otra parte, si el universo
en cuesti on consta de todos los n umeros naturales, resulta imposible construir la tabla pues
tendra un n umero innito de columnas y un n umero innito de renglones:
> 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 . . . . . . . . .
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . . . . . . . . .
2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . . . . . . . . .
3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . . . . . . . . .
4 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
Si el ndice de un predicado es uno o dos y el universo nito, tambi en es f acil ver la
asignaci on en una tabla. Sin embargo, si el ndice es tres o m as, aunque el universo sea
relativamente peque no, ya no es f acil visualizar dicha asignaci on. De manera que el uso de
3.4 Sem antica informal 143
tablas de verdad para la l ogica de predicados es inadecuado. Esto es de esperarse, ya que la
noci on de verdad en l ogica de predicados es mucho m as complicada puesto que depende de
un mundo en particular, al contrario de lo que suceda en la l ogica de proposiciones, donde
en el fondo el unico mundo o universo de discurso es el de los valores booleanos cierto o
falso. En esta nueva l ogica, el universo de discurso puede incluir literalmente cualquier co-
sa: n umeros, conjuntos, piedras, ores, arboles, palabras, galaxias, etc etera. De manera que
la noci on de verdad depender a del mundo que hayamos jado de antemano. Por supuesto
que al cambiar este, el valor de verdad de una f ormula tambi en puede hacerlo.
Antes de dar una denici on de verdad analicemos el caso de los cuanticadores con un
ejemplo sencillo en el micromundo de guras:
Todos son crculos: xC(x). Esto ser a cierto si y s olo si al revisar cada objeto del
micromundo, el objeto resulta ser un crculo. Si suponemos que hay n objetos, de-
notados por las constantes a
1
, . . . , a
n
, entonces xC(x) ser a cierto si y s olo si C(a
1
)
es cierta y C(a
2
) es cierta y . . . y C(a
n
) es cierta; es decir, si y s olo si la conjunci on
C(a
1
) . . . C(a
1
) es cierta. Obs ervese que esto no puede ser una denici on, pues
en el caso en que el universo sea innito es imposible formar la conjunci on de todos
los objetos.
Existe algo peque no: xP(x). Similarmente a la cuanticaci on universal, esta f ormu-
la es cierta si y s olo si alguno de los objetos a
1
, . . . , a
n
resulta ser peque no, es decir,
si la disyunci on P(a
1
) . . . P(a
n
) es cierta.
Esta idea intuitiva nos lleva a una denici on informal de verdad para cualquier f ormula
de la l ogica de predicados, la cual damos a continuaci on.
Denici on 3.3.16 Dada una f ormula A de la l ogica de predicados, denimos cu ando A es verda-
dera en un mundo o universo de discurso dado /, de acuerdo a su forma sint actica, como
sigue:
Si A es una f ormula at omica, digamos P(t
1
, . . . , t
n
), entonces A es verdadera en /
si y s olo si los valores de los t erminos t
1
, . . . , t
n
como individuos de / est an en la
relaci on del universo denida por P.
Si A es una f ormula proposicional
3
, entonces usamos los criterios de verdad de la
l ogica proposicional.
Si A = xB es una f ormula universal, entonces A es verdadera en /si y s olo si B
es verdadera en /para todos los posibles valores de x como individuo de /.
Si A = xB es una f ormula existencial, entonces A es verdadera en / si y s olo si
B es verdadera en /para alg un valor de x como individuo de /.
3
Es decir una f ormula que pertenece a alg un esquema de la l ogica proposicional, con predicados en lugar
de variables proposicionales
144 L ogica de predicados
Esta denici on es informal puesto que en el caso en que el universo de discurso sea
innito, no queda claro en general c omo mostrar que la f ormula xB es cierta para todos
los valores posibles de x.
3.4.3. Verdad en micromundos
A continuaci on regresamos a nuestros dos micromundos particulares empezando con
el mundo de los cubos para ejemplicar la denici on informal de sem antica que acaba-
mos de enunciar. Nos referiremos al mundo particular que se encuentra en la gura 3.1, a
continuaci on.
Figura 3.1 Micromundo de cubos
rojo amarillo azul
Queremos ahora determinar la sem antica de algunas f ormulas en este micromundo.
Cualquier cubo rojo est a libre:
x
_
R(x) L(x)
_
.
Verdadero, pues los cubos rojos en la primera y cuarta torre, que son todos los cubos
rojos en este micromundo, est an libres.
Todos los cubos sobre el piso son azules:
x
_
S(x, p) Az(x)
_
.
Falso, pues la primera y segunda torre tienen cubos amarillos sobre el piso, por lo
que no todos los cubos sobre el piso son azules.
Cualquier cubo que est e sobre un cubo amarillo es rojo o azul:
x
_
y(A(y) S(x, y)) R(x) Az(x)
_
.
Cierto, ya que los cubos amarillos de la primera y cuarta torre tienen a un cubo rojo
encima; y el cubo amarillo de la segunda torre tiene encima a un cubo azul.
3.4 Sem antica informal 145
Hay un cubo rojo sobre un cubo rojo:
xy
_
R(x) R(y) S(x, y)
_
.
Falso. Los dos cubos rojos, en la primera y cuarta torre, son libres, por lo que no
tienen encima a ning un cubo, en particular a uno rojo.
Hay un cubo amarillo libre sobre el piso:
x
_
A(x) L(x) S(x, p)
_
.
Falso. No hay ning un cubo libre sobre el piso, en particular que sea amarillo, por lo
que la f ormula es falsa.
Ning un cubo est a sobre el piso:
x S(x, p) .
Falso, pues el cubo amarillo en la primera torre s est a sobre el piso.
Hay un cubo amarillo que est a sobre uno azul y hay un cubo azul sobre el:
xy
_
A(x) Az(y) S(x, y) w
_
Az(w) S(w, x)
_
_
.
Falso. No hay una torre que contenga una secuencia de cubo azul, cubo amarillo y
cubo azul.
Todos los cubos est an sobre algo:
xyS(x, y).
Verdadera. Todos los cubos est an o sobre el piso o sobre alg un otro cubo.
Veamos ahora un micromundo particular de guras geom etricas, en la gura 3.2 de la
siguiente p agina, con los predicados que ya denimos para los mundos de guras geom etri-
cas, y decidamos cu ales de las f ormulas que le siguen son falsas o verdaderas. Arriba del
mundo observamos los tres tama nos de guras disponibles. Adem as usaremos coordenadas
para rengl on y columna como un auxiliar para se nalar cada cuadro en particular.
Hay crculos medianos y cuadrados grandes:
x
_
C(x) M(x)
_
y
_
S(y) G(y)
_
.
Falso, pues no hay ning un crculo mediano.
No hay cuadrados peque nos:
x
_
S(x) P(x)
_
.
En (R3C2) hay un cuadrado peque no, por lo tanto la f ormula es falsa.
146 L ogica de predicados
Figura 3.2 Mundo particular de guras geom etricas
R1
R2
R3
R4
R5
C1 C2 C3 C4 C5 C6 C7 C8 C9
Ning un cuadrado est a al norte de un crculo grande:
x
_
S(x) y
_
C(y) G(y) N(x, y)
_
_
.
Falso, pues el cuadrado en (R3C5) s est a al norte del crculo grande en (R2C3).
Todos los crculos medianos est an al oeste de un mismo tri angulo grande:
x
_
T(x) G(x) y
_
C(y) M(y) O(y, x)
_
_
.
Como s hay un tri angulo grande en (R4C5) pero no hay crculos medianos, la impli-
caci on tiene antecedente falso y la f ormula se eval ua a verdadera.
Todos los cuadrados peque nos est an al sur de cualquier tri angulo:
x
_
S(x) P(x) y
_
T(y) Su(x, y)
_
_
Los cuadrados peque nos est an en (R3), pero no est an al sur del tri angulo en (R2C8),
por lo que la f ormula es falsa.
Si dos cuadrados est an en el mismo rengl on, entonces cualquier tri angulo al sur de
ambos es mediano:
xy
_
S(x) S(y) R(x, y) z
_
T(z) Su(z, x) Su(z, y) M(z)
_
_
.
La f ormula es falsa pues para los dos cuadrados en (R3), ninguno de los tri angulos al
sur es mediano.
3.4 Sem antica informal 147
No hay dos tri angulos medianos en la misma columna; y si un tri angulo es grande,
entonces hay un circulo peque no al este de el:
xy
_
T(x)T(y)Co(x, y)
_
z
_
T(z)G(z) w
_
C(w)P(w)E(w, z)
_
_
.
El primer operando de la conjunci on es verdadero, porque como no hay tri angulos
medianos, cualquier cosa que se diga de ellos es verdadera; tanto para el tri angulo
grande en (R4C5) como el de (R1C3), hay dos crculos peque nos, (R4C7) y (R3C8),
que se encuentran al este de cualquiera de ellos. Por lo tanto, el segundo operando de
la conjunci on es verdadero y la f ormula completa tambi en.
3.4.4. Algunas equivalencias l ogicas
Con frecuencia un enunciado en espa nol puede reescribirse de manera que la estruc-
tura l ogica sea m as clara, tal como lo hicimos en algunos ejemplos de la secci on 3.3. En
este caso ambos enunciados deben ser equivalentes, en el sentido de que cualquier conclu-
si on obtenida con uno de ellos debe seguir siendo v alida usando el otro. Esta situaci on se
formaliza mediante el concepto de equivalencia l ogica, que ya estudiamos para la l ogica
proposicional, y que en la l ogica de predicados tiene el mismo signicado: dos f ormulas
A y B son l ogicamente equivalentes, denotado A B, si y s olo si ambas son verdaderas
exactamente en los mismos mundos o interpretaciones. A continuaci on discutimos algunas
equivalencias l ogicas de utilidad.
Equivalencias proposicionales
Todas las equivalencias l ogicas para la l ogica proposicional siguen siendo v alidas en la
l ogica de predicados y pueden usarse tambi en dentro de una cuanticaci on.
Ejemplo 3.17. Las siguientes f ormulas son equivalentes debido al uso de una ley proposicional de
equivalencia l ogica.
Hay un crculo grande es equivalente a hay alguna gura grande que es crculo:
x
_
C(x) G(x)
_
x
_
G(x) C(x)
_
.
Cualquier gura o es tri angulo o es mediana equivale a que toda gura que no es
tri angulo es mediana:
x
_
T(x) M(x)
_
x
_
T(x) M(x)
_
.
No es cierto que hay un cuadrado y que todas las guras sean peque nas signica lo
mismo que o bien no hay cuadrados o bien no todas las guras son peque nas:

_
xS(x) yP(y)
_
xS(x) yP(y).
148 L ogica de predicados
Si todas las guras son cuadrados entonces no hay guras grandes equivale a si
existen guras grandes entonces no todas son cuadrados:
xS(x) yG(y) yG(y) xS(x).
Negaci on de cuanticadores
Volviendo a la idea de que una cuanticaci on puede entenderse como una conjunci on o
disyunci on en el caso de un universo nito, podemos analizar de qu e forma interact uan los
cuanticadores con la negaci on. Por ejemplo, la f ormula xC(x) (no todos son crculos)
es cierta si y s olo si la negaci on de la conjunci on de todos los objetos del universo, dada
por
_
C(a
1
) . . . C(a
1
)
_
, es cierta; es decir, usando las leyes de De Morgan, C(a
1
)
. . . C(a
1
) es cierta, lo cual equivale a la f ormula existencial xC(x); o lo que es lo
mismo, a existe algo que no es crculo. Similarmente podemos analizar la negaci on de una
f ormula existencial. Por esta raz on es que las leyes de negaci on, que enunciamos enseguida,
tambi en se conocen como leyes de De Morgan generalizadas.
Leyes de negaci on:
xA x A (3.30)
xA x A (3.31)
Obs ervese que estas equivalencias permiten mover una negaci on hacia el alcance de un
cuanticador, intercambiando cuanticadores.
Ejemplo 3.18. Mostramos aqu el uso de las leyes de negaci on para transformar una f ormula de
manera que la negaci on se aplique unicamente a predicados.
No es cierto que si hay un tri angulo entonces todas los guras son medianas.

_
xT(x) yM(y)
_
xT(x) yM(y)
xT(x) yM(y).
Hay un tri angulo y no todas las guras son medianas, lo que equivale asimismo a
hay un tri angulo y hay una gura que no es mediana.
En lo que sigue, el dominio de interpretaci on son los habitantes de la Ciudad de M exico,
los lapsos de tiempo y los ex amenes; utilizaremos los siguientes predicados:
F(x) : x es estudiante de la Facultad de Ciencias I(x) : x es inteligente
A(x) : x es alumno T(x) : x es un tiempo
E(x, y) : x estudia en el tiempo y R(x) : x reprueba
C(x) : el examen x fue calicado P(x) : x es un examen
3.4 Sem antica informal 149
No es cierto que todos los estudiantes de la Facultad de Ciencias sean inteligentes:
x
_
F(x) I(x)
_
x
_
F(x) I(x)
_
x
_
F(x) I(x)
_
Hay un estudiante inscrito en la Facultad de Ciencias que no es inteligente.
No hay alumnos que estudien todo el tiempo:
x
_
A(x) y
_
T(y) E(x, y)
_
_
x
_
A(x) y
_
T(y) E(x, y)
_
_
x
_
A(x) y
_
T(y) E(x, y)
_
_
x
_
A(x) y
_
T(y) E(x, y)
_
_
x
_
A(x) y
_
T(y) E(x, y)
_
_
x
_
A(x) y
_
T(y) E(x, y)
_
_
Para cualquier alumno hay un tiempo en el que no estudia.
No es cierto que o alg un examen no se calic o o todos los alumnos reprobaron el
curso:

_
x
_
P(x) C(x)
_
y
_
A(y) R(y)
_
_
x
_
P(x) C(x)
_
y
_
A(y) R(y)
_
x
_
P(x) C(x)
_
y
_
A(y) R(y)
_
x
_
P(x) C(x)
_
y
_
A(y) R(y)
_
x
_
P(x) C(x)
_
y
_
A(y) R(y)
_
Todos los ex amenes se calicaron y alg un alumno no reprob o.
Distributividad
Una vez que hemos visto como interact uan los cuanticadores con la negaci on, resul-
ta natural preguntarse qu e sucede con los dem as conectivos proposicionales frente a los
cuanticadores. Para esto presentamos algunas leyes distributivas entre cuanticadores y
conectivos.
x(A B) xA xB (3.32)
150 L ogica de predicados
El lado izquierdo nos dice que para todo objeto x se cumple AB, lo cual equivale a que
para todo individuo se cumplen tanto A como B. Qu e sucede si cambiamos la conjunci on
por disyunci on?
Para el cuanticador existencial tenemos la siguiente equivalencia:
x(A B) xA xB (3.33)
Si un individuo cumple AB, entonces o cumple Ao cumple B, de donde la disyunci on
de la derecha es v alida. Qu e sucede si cambiamos la disyunci on por conjunci on?
Cuanticaci on vacua
Consideremos el siguiente enunciado: para cualquier individuo, Berln es la capital
de Alemania, el cual se especica como xC(b, a); consideremos tambi en el enunciado
existe un individuo tal que todos son leones, representado con xyL(y) o inclusive con
xxL(x), donde la variable x de la cuanticaci on existencial es ocultada por la de la cuan-
ticaci on universal, lo que hace que L(x) haga referencia a la variable de la cuanticaci on
universal. Este tipo de cuanticaciones, donde la variable cuanticada no gura libre en el
alcance de la cuanticaci on, se conoce como cuanticaci on vacua o nula. Con respecto a su
valor de verdad, de acuerdo a nuestra denici on, xC(b, a) es verdadera si y s olo si C(b,a)
es verdadera para cualquier valor de x como un individuo particular, pero como x no gura
en C(b, a), basta mostrar la verdad de esta ultima f ormula, es decir, la cuanticaci on no
aporta nada a la evaluaci on de la f ormula original y por lo tanto puede eliminarse mediante
las siguientes equivalencias:
Cuanticadores vacuos: si x no gura libre en A entonces
xA A, (3.34)
xA A, (3.35)
donde A puede ser, a su vez, una cuanticaci on con la misma variable cuanticadora o con
una distinta. En particular estas equivalencias permiten eliminar cuanticadores m ultiples,
puesto que xxA xA y xxA xA.
Prenexaci on
El proceso de prenexaci on permite manipular un esquema proposicional binario, donde
uno de los operandos es una cuanticaci on y la variable cuanticada en este operando no
gura libre en el otro operando. El objetivo de la manipulaci on es factorizar el cuan-
ticador, sumergiendo al operando proposicional en la cuanticaci on, de manera que la
f ormula resultante ya no corresponde a un esquema proposicional sino a un esquema de
cuanticaci on. Las equivalencias para el proceso de prenexaci on son:
3.4 Sem antica informal 151
Prenexaci on de cuanticadores: si x no gura libre en A entonces,
A xB x(A B) (3.36)
A xB x(A B) (3.37)
A xB x(A B) (3.38)
A xB x(A B) (3.39)
Prenexaci on de cuanticadores: si x no gura libre en A entonces,
A xB x(A B) (3.40)
A xB x(A B) (3.41)
Prenexaci on de cuanticadores: si x no gura libre en B entonces,
xA B x(A B) (3.42)
xA B x(A B) (3.43)
Veamos un ejemplo del proceso de prenexaci on.
Ejemplo 3.19.
Para cualquier objeto, es azul o M unchen es la capital de Baviera :
x(A(x) C(m, b)) xA(x) C(m, b).
Todos los objetos son azules o M unchen es la capital de Baviera.
Hay algo tal que los gorriones son bonitos y ese algo es la capital de Francia:
x(y(G(y) B(y)) C(x, f)) y(G(y) B(y)) xC(x, f).
Los gorriones son bonitos y algo es la capital de Francia.
Ejercicios
3.4.1.- Si P(x) denota al enunciado x > 4, di cu al es el valor de
(a) P(0) (b) P(4) (c) P(6)
3.4.2.- Sea C(x, y) el enunciado x es la capital de y. Di cu al es el valor de verdad de:
(a) C(Toluca, M exico) (b) C(Grenoble, Francia)
(c) C(Quito, Bolivia) (d) C(Cd. Ju arez, Nuevo Le on)
152 L ogica de predicados
3.4.3.- Encuentra el valor de verdad de las siguientes f ormulas si el universo son los n ume-
ros reales R y los predicados se interpretan como sigue:
Q(x) x es un n umero par
P(x) x es un n umero primo
R(x) x es divisible por 6
G(x) x es menor o igual a 5
L(x, y) x es menor que y
(a) x
_
R(x) P(x)
_
(b) xR(x) xP(x)
(c) x
_
P(x) Q(x)
_
(d) x
_
R(x) y
_
L(x, y) R(y)
_
_
(e) xy
_
L(x, y) L(y, x)
_
(f) xP(x) x
_
P(x) R(x)
_
3.4.4.- Da un micromundo de tri angulos, cuadrados y crculos donde todas las f ormulas
l ogicas que siguen sean verdaderas:
xyz
_
T(x) C(y) S(z)

_
(G(x) G(y) G(z))
(M(x) M(y) M(z))
(P(x) P(y) P(z))
_
R(x, y) R(y, z)
_
.
xy
_
C(x) P(x) C(y) M(y) E(x, y)
_
.
x y z
_
T(x) P(x) T(y) M(y) T(z) G(z)
_
.
3.4.5.- Para cada una de las siguientes f ormulas, da un micromundo de guras donde estas
f ormulas sean verdaderas o, en su defecto, justicar por qu e no existe tal mundo.
(a) xy
_
T(x) S(y) O(x, y)
_
.
(b) xy
_
C(x) (T(y) S(y)) (Co(x, y)
_
.
(c) xy
_
R(x, y) Co(x, y)
_
.
(d) xyz
_
C(x) M(x) N(z, x) O(y, x)
_
.
3.4 Sem antica informal 153
(e) xyN(y, x) zC(z).
3.4.6.- Para cada f ormula da dos micromundos de guras, uno donde la f ormula sea ver-
dadera y otro donde sea falsa.
(a) x(C(x) G(x)) z(P(z) y(T(y) O(y, z)).
(b) xy
_
T(x) C(y) N(x, y) z(S(z) P(z) Z(z, x) Z(y, z))
_
.
(c) w(S(w) G(w)) x
_
T(x) M(x) yZ(y, x) z(G(z) N(z, x)
_
.
(d) w
_
G(w) y(P(y) N(y, w))
_
xz
_
T(z) M(x) O(z, x)
_
.
(e) x
_
T(x) y(N(y, x) P(y) S(y))
_
w
_
C(w) y(G(y) E(y, w)
_
.
3.4.7.- Da un micromundo de cubos donde las siguientes f ormulas sean verdaderas al mis-
mo tiempo.
x y z
_
Az(x) L(x) A(y) L(y) R(z) L(z)
_
.
x y z
_
Az(x) S(x, p) A(y) S(y, p) R(z) S(z, p)
_
.
xy
_
Az(x) A(y) S(x, y)
_
xy
_
R(x) Az(y) S(x, y)
_
.
3.4.8.- Considera las siguientes f ormulas e interpretaciones para los predicados:
F(x) x est a fuera de servicio
O(x) x est a ocupada
P(x) x se ha perdido
C(x) x est a en la cola
I(x) x es impresora
T(x) x es trabajo
Construye micromundos de impresoras y trabajos que hagan verdaderas a las f ormu-
las. La descripci on de un micromundo puede ser mediante constantes y tablas de
verdad para predicados.
(a) x(I(x) F(x) O(x)) y(T(y) P(y)).
(b) x(I(x) O(x)) y(T(y) C(y)).
(c) y(T(y) C(y) P(y)) y(I(y) F(y)).
(d) x(I(x) O(x)) y(T(y) C(y)) z(T(z) P(z)).
3.4.9.- Da las negaciones de las siguientes cuanticaciones de manera que el smbolo de
negaci on s olo afecte a predicados. Por ejemplo, la negaci on de x
_
P(x) Q(x)
_
es
x
_
P(x)Q(x)
_
, donde puedes notar que no hay negaci on frente al cuanticador
ni frente a una f ormula que consista de m as de un predicado.
154 L ogica de predicados
(a) x(x
2
> x).
(b) x(x
2
= x).
(c) x
_
P(x) Q(x)
_
.
(d) x
_
x
3
< x x < 0
_
.
(e) x
_
P(x) Q(x) R(x)
_
.
3.4.10.- Para los siguientes enunciados, di cu al o cu ales son las negaciones correctas de
los predicados:
(a) A todo el mundo le gusta el helado.
i. A nadie le gusta el helado
ii. A todo mundo le disgusta el helado
iii. Alguien no adora el helado
(b) Algunas fotografas est an viejas y deslavadas.
i. Todas las fotografas ni est an viejas ni est an deslavadas
ii. Algunas fotografas no est an viejas o deslavadas
iii. Todas las fotografas no son viejas ni deslavadas
3.4.11.- Muestra que x
_
P(x) Q(x)
_
y x
_
P(x)
_
x
_
Q(x)
_
son l ogicamente equiva-
lentes.
3.4.12.- Muestra que x
_
P(x) Q(x)
_
y x
_
P(x) Q(x)
_
son l ogicamente equiva-
lentes.
3.4.13.- Transforma las siguientes f ormulas mediante equivalencias l ogicas, de manera que
las negaciones s olo guren frente a predicados.
(a) xyzw(P(x, w) Q(z, y)) vuR(u, v)
(b) xywz
_
P(x, y) Q(x) wT(a, w)
_
(c) xywz
_
P(x, y) Q(x) wT(x, w)
_
(d)
_
xy
_
T(y) R(z, x) G(x, z)
_
wvP(v, a, w)
_
(e)
_
xw
_
P(a, x) R(c, w)
_
zy
_
T(b, z) Q(y, a)
_
_
3.4 Sem antica informal 155
3.4.5. Algunos argumentos correctos
Ya hemos mencionado con anterioridad que nuestro prop osito principal para estudiar
l ogica consiste en obtener m etodos formales para mostrar la correctud de argumentos l ogi-
cos. Si bien podemos generalizar algunos de los m etodos estudiados en la l ogica de proposi-
ciones para la l ogica de predicados, estos m etodos no son infalibles, debido a un importante
resultado de la L ogica Matem atica, demostrado por Alonzo Church, que nos dice que no
puede existir un algoritmo para decidir si un argumento dado es correcto o no. A pesar
de este resultado, el problema de analizar un argumento de la l ogica de predicados para
intentar decidir su correctud sigue siendo de gran importancia en la pr actica, puesto que la
l ogica de predicados es una herramienta de gran importancia para la especicaci on formal
en computaci on.
Si bien no hay un algoritmo general, la correctud de un argumento puede decidirse en
muchos casos mediante m etodos sint acticos o sem anticos que quedan fuera del alcance de
este libro. Sin embargo, dado que el proceso de argumentaci on es relevante en la pr actica
tanto en matem aticas como en ciencias de la computaci on, enunciamos a continuaci on
algunos argumentos correctos de la l ogica de predicados, los cuales surgen naturalmente
en matem aticas.
Generalizaci on Universal: Sea A una f ormula y x una variable que no gura libre en
la argumentaci on actual. Entonces el siguiente argumento es correcto:
A
xA
Este argumento permite concluir la validez de la f ormula xA al mostrar la validez
de A, cercior andonos de que x no gura libre en ninguna de las premisas usadas
para llegar a A. Esta restricci on implica que en la argumentaci on no se us o ninguna
propiedad particular de x, por lo que esta denota a cualquier individuo posible del
universo de discurso, lo cual permite realizar la generalizaci on. Este argumento es
indispensable en pruebas por inducci on, como se ver a en el siguiente captulo.
Instanciaci on Universal:
xA
A[x := t]
La correctud de este argumento es intuitivamente clara: si la f ormula xA se supone
verdadera, entonces uno debera poder concluir A[x := t] para cualquier individuo
particular del universo de discurso, denotado por el t ermino t. Sin embargo, hay que
156 L ogica de predicados
tener cuidado, puesto que en A pueden gurar otros cuanticadores y en t otras va-
riables, se corre el peligro de capturar alguna variable de t, que por supuesto estaba
libre, mediante alg un cuanticador de A causando un problema sem antico importan-
te. Es por esta raz on que la sustituci on en l ogica de predicados no es una sustituci on
textual como la estudiada antes en este libro, sino que debe vigilar no cambiar pre-
sencias libres por ligadas y viceversa.
Generalizaci on Existencial:
A[x := t]
xA
Nuevamente, la correctud de este argumento es intuitivamente clara: si sabemos que
un individuo particular t cumple la propiedad A entonces podemos concluir que al-
guien cumple A, es decir, podemos concluir xA.
Instanciaci on Existencial: Sea Auna f ormula y c una constante nueva en la argumen-
taci on actual. Entonces el siguiente argumento es correcto:
xA
A[x := c]
Este argumento permite concluir la validez de A para un individuo particular c del
universo de discurso a partir de la verdad de xA. La restricci on acerca de que c sea una
constante nueva se debe al hecho de que no es posible saber cu al individuo particular es el
que cumple A a partir de la unica informaci on que tenemos, que es xA.
3.5. Predicados y tipos
Frecuentemente un dominio de interpretaci on se compone de diversas clases bien de-
terminadas de objetos, por ejemplo crculos y cuadrados, alumnos y profesores, animales
y vegetales. En estos casos, cuando se quiere especicar algo acerca de todos los indivi-
duos de cierta clase de objetos del universo, es conveniente hacer explcita su pertenencia
a dicha clase particular mediante el uso de predicados llamados calicadores o tipos, los
cuales denotan clases de objetos. Para expresar propiedades de un tipo especco de objeto
se usa un juicio universal armativo. Por ejemplo, si el universo son los mamferos y que-
remos hablar de una propiedad universal P(x) de los felinos, como pudiese ser maullar o
ser cuadr upedo, la especicaci on xP(x) no da la suciente informaci on y es preferible
usar un tipo F(x) para felinos, con lo que la especicaci on sera x(F(x) P(x)). Si-
milarmente, si la especicaci on es existencial, utilizamos un juicio existencial armativo,
como en algunos felinos beben leche que se formaliza con x
_
F(x) BL(x)
_
.
3.5 Predicados y tipos 157
El uso de tipos permite restringir o dirigir el rango de valores de una variable dada
mediante el uso de un juicio armativo. Sin embargo, dado que su uso resulta muy frecuente
y util, es conveniente introducir una notaci on especial para tipos como sigue:
x: A. P(x) en lugar de x(A(x) P(x))
x: A. P(x) en lugar de x(A(x) P(x))
A esta notaci on la denominamos de tipos abreviados. Por ejemplo, si el universo son
los n umeros reales, el enunciado para todo n umero real existe un natural mayor que el
puede expresarse como sigue:
Sin tipos: xy(x < y) (inconveniente pues no da suciente informaci on).
Con juicios armativos: x
_
R(x) y
_
N(y) x < y
_
_
.
Con tipos abreviados: x : R.y : N.x < y.
Cuando un lenguaje tiene reglas sint acticas que manejen los tipos de las variables de-
cimos que tenemos un lenguaje fuertemente tipicado o tipado. Entre los lenguajes de
programaci on que son fuertemente tipicados tenemos a Pascal, C++, Java, C#, C y Has-
kell. En general, un lenguaje fuertemente tipicado nos da reglas muy estrictas respecto a
c omo podemos combinar distintos tipos en una misma expresi on. Otros lenguajes, como
Lisp, Prolog y Scheme, son lenguajes que no observan el concepto de tipo, de manera que
las variables pueden tener distintos tipos durante la ejecuci on, dependiendo del estado de
las mismas.
El concepto de tipo que se presenta corresponde unicamente a los tipos primitivos de un
lenguaje. La l ogica de predicados que estudiamos aqu es una l ogica sin tipos en el sentido
de que los smbolos funcionales y de predicado, que se interpretan como operadores o
relaciones, no tienen tipos explcitos. En nuestro caso, el uso de tipos es un mecanismo de
ayuda y simplicaci on en la escritura de ciertas especicaciones.
Terminamos esta secci on con otros ejemplos.
Ejemplo 3.20. Vamos a especicar el tipo de los n umeros naturales N(x) con sus operaciones m as
comunes.
El cero es un n umero natural: N(0) o bien 0:N
El sucesor de un natural es un natural: x:N.
_
N
_
s(x)
_
_
o bien x:N.
_
s(x):N
_
La suma de dos naturales es un natural: x:N.y:N.
_
N(x +y)
_
El producto de dos naturales es un natural: x:N.y:N.
_
N(x y)
_
El sucesor es una funci on inyectiva: x:N.y:N.
_
s(x) = s(y) x = y
_
Hay un natural menor o igual que todos los
naturales.
y:N.x:N.y x
158 L ogica de predicados
Por ultimo un ejemplo m as cercano a las especicaciones usuales en computaci on.
Ejemplo 3.21. Se desean especicar propiedades de un sistema de archivos de computadora.
Consideremos que el universo consta de archivos y directorios para lo cual denimos los
tipos A(x) y D(x) (o simplemente A y D), con el predicado C(x, y) como el objeto x
est a contenido en el objeto y y la funci on n(x) que devuelve el nombre del objeto.
Ning un directorio se contiene a s mismo:
x:D. C(x, x)
Si un directorio est a contenido en otro, entonces el segundo no puede estar contenido
en el primero (es decir, no hay directorios cclicos):
x:D.y:D.
_
C(x, y) C(y, x)
_
Existe un directorio que no est a contenido en ning un otro directorio (el directorio
raz):
x:D. y:D. C(x, y)
Existe un directorio vaco:
x:D. yC(y, x)
Todo archivo est a contenido en alg un directorio:
x:A. y:D. C(x, y)
Si dos archivos est an en el mismo directorio entonces deben tener nombres distintos.
x:A. y:A.
_
z:D.
_
C(x, z) C(y, z)
_
n(x) ,= n(y)
_
Ejercicios
3.5.1.- Formaliza las siguientes especicaciones acerca de un tipo A(x) y el tipo de listas
de elementos de A, denotado L(x). Debes agregar cualquier predicado, funci on o
constante necesaria.
(a) La lista vaca es una lista de elementos de A.
(b) La operaci on de agregar un elemento de A al inicio de una lista dada es nueva-
mente una lista.
3.5 Predicados y tipos 159
(c) La concatenaci on de dos listas es nuevamente una lista.
(d) La cabeza de una lista es un elemento de A.
(e) La cola de una lista es nuevamente una lista.
(f) La longitud de una lista es un n umero natural.
3.5.2.- Formaliza las siguientes especicaciones acerca de un tipo A(x) y el tipo de pilas
de elementos de A, denotado P(x). Debes agregar cualquier predicado, funci on o
constante necesaria.
(a) Hay una pila vaca.
(b) La operaci on de agregar un elemento de A al tope de una pila es una pila.
(c) El tope de la pila es un elemento de A.
(d) La operaci on de eliminar el elemento en el tope de la pila devuelve una pila.
Parte II
Inducci on y recursi on
Inducci on y
recursi on
4
4.1. Introducci on
Existen muchos universos o dominios que contienen un n umero ilimitado de elementos
que sin embargo pueden ser contados. Por ejemplo, el universo de n umeros naturales, el
dominio de expresiones l ogicas (tomadas con las variables proposicionales de un alfabeto)
y el dominio de programas escritos en ciertos lenguajes de programaci on. Estos universos
se conocen como conjuntos innitos numerables y son de gran utilidad en Ciencias de la
Computaci on y Matem aticas Discretas. Numerable en este caso signica que se pueden
contar en el sentido de que dado un elemento del conjunto, es posible determinar cu al es el
elemento siguiente. Sin embargo, por ser innitos, no es posible describirlos elemento por
elemento pues nunca terminaramos, ni tampoco podemos probar alguna propiedad acerca
de ellos tratando de mostrarla para cada elemento particular. En este captulo tratamos dos
t ecnicas muy relacionadas entre s, la inducci on y la recursi on, las cuales sirven para probar
y denir propiedades sobre dominios innitos numerables.
Iniciamos el captulo deniendo de manera formal a los n umeros naturales, mostrando
algunas deniciones recursivas de funciones sobre los mismos y discutiendo el llamado
m etodo de inducci on matem atica y algunas de sus variantes. Posteriormente nos ocupare-
mos de las deniciones recursivas de conjuntos y funciones en un ambito m as general. Estas
deniciones recursivas son generalizaciones de las utilizadas en n umeros naturales a cual-
164 Inducci on y recursi on
quier dominio innito numerable y que adem as est e bien fundado
1
. En la ultima secci on
nos ocupamos en generalizar el principio de inducci on matem atica mediante la llamada in-
ducci on estructural en algunas estructuras de datos muy necesarias en programaci on como
son arboles y cadenas o listas nitas.
4.2. Los n umeros naturales
El conjunto de n umeros naturales
2
N = 0, 1, 2, . . . es quiz as el ejemplo m as senci-
llo de un conjunto innito numerable, pero siendo innito, c omo podemos justicar su
construcci on y manejo en computaci on?
Empecemos con su construcci on. En la vida diaria utilizamos los smbolos 0, . . . , 9 para
representar los primeros diez n umeros naturales, llamados dgitos, mientras que los si-
guientes n umeros se denen a partir de los dgitos mediante ciertas reglas. Formalmente
s olo utilizaremos el dgito 0 ya que los dem as n umeros se construir an utilizando la funci on
sucesor. El sucesor de un n umero n, escrito s(n), es simplemente el n umero que le sigue
a n en la sucesi on de n umeros naturales o, equivalentemente, s(n) = n + 1, pero como
a un no denimos la suma evitaremos su uso. Obs ervese que la funci on sucesor es general
y no depende del dominio de los n umeros naturales; por ejemplo los das y meses tienen
sucesor.
La denici on de n umeros naturales ser a nuestro primer ejemplo de denici on recursiva.
0 es un n umero natural.
Si n es un n umero natural, entonces s(n) es un n umero natural.


Estos y s olo estos.
Esta denici on es recursiva pues en la segunda cl ausula se est a usando a n, que supo-
nemos es un natural, para poder concluir que s(n) tambi en lo es, es decir, estamos usando
lo denido en la misma denici on; en la siguiente secci on trataremos con detalle este tipo
de deniciones. La tercera cl ausula puede parecer extra na y con frecuencia se omite en las
deniciones. Sin embargo es necesaria para garantizar que un objeto es un n umero natural
unicamente si fue construido usando las cl ausulas anteriores. Esto es necesario para que
funcionen los principios de inducci on.
Seg un la denici on anterior el conjunto de n umeros naturales es
N = 0, s(0), s(s(0)), . . .
De esta manera hemos construido un conjunto innito en el sentido de que siempre
podremos construir cualquier n umero de sus elementos y en particular cualquier elemento.
1
dominio bien fundado se reere, en t erminos muy generales, a que podemos encontrar un primer ele-
mento
2
La inclusi on del 0 en los naturales no es aceptada universalmente, especialmente por matem aticos; sin
embargo, aquellos acad emicos que cultivan la investigaci on en l ogica, postulan que 0 N.
4.2 Los n umeros naturales 165
Diferencia entre sintaxis y sem antica
Estructuralmente es claro que el conjunto de n umeros naturales reci en denido es in-
nito; sin embargo, si le damos cierto signicado a la funci on sucesor pudiera darse el caso
de que los elementos s(s(. . . s(n) . . .)) no sean todos distintos. Por ejemplo, si hablamos
de los das de la semana,
s(s(s(s(s(s(s(s(lunes)))))))) = lunes.
Para indicar que el conjunto es innito es necesario postular dos propiedades m as que
garanticen que todos los naturales son distintos.
n(s(n) ,= 0).
nm(s(n) = s(m) n = m).
Estas dos propiedades aseguran que el 0 no es sucesor de nadie y que la funci on sucesor
es inyectiva.
A continuaci on nos gustara denir las operaciones b asicas suma y producto; esto se
har a nuevamente usando recursi on. Para la suma tenemos la siguiente denici on:
n(n + 0 = n).
nm(m+s(n) = s(m+n)).
La importancia de una denici on recursiva es que podemos extraer de ella un programa
para calcular dicha funci on; veamos un ejemplo sencillo:
3 + 2 = s(s(s(0))) +s(s(0))
= s
_
s(s(s(0))) +s(0)
_
= s
_
s
_
s(s(s(0))) + 0
__
= s
_
s
_
s(s(s(0)))
__
= 5
Finalmente, el producto de dos naturales se dene recursivamente como sigue:
n(n 0 = 0).
nm(n s(m) = n m+n).
M as adelante daremos m as ejemplos de funciones denidas recursivamente.
4.2.1. Axiomas de Peano
Las f ormulas l ogicas denidas anteriormente constituyen los llamados axiomas de
Peano; estos fueron propuestos por el matem atico italiano Giuseppe Peano en 1889 y cons-
166 Inducci on y recursi on
tituyen una denici on abstracta del conjunto de los n umeros naturales. A continuaci on los
resumimos.
0 es un n umero natural. (P-1)
Si n es un n umero natural entonces s(n) es un n umero natural. (P-2)
n(s(n) ,= 0). (P-3)
mn
_
_
s(n) = s(m)
_

_
n = m
_
_
. (P-4)
Tambi en contamos, en este mismo formato, con las deniciones recusivas de las opera-
ciones de suma y producto de los n umeros naturales reci en discutidas y que recapitulamos
a continuaci on:
m(m+ 0 = m). (D-1)
mn
_
m+s(n) = s(m+n)
_
. (D-2)
n(n 0 = 0). (D-3)
mn
_
ms(n) = mn +m
_
. (D-4)
El ultimo axioma de Peano es el llamado axioma de inducci on y nos dice que para
cualquier predicado P la siguiente expresi on es v alida:
P(0) n
_
P(n) P
_
s(n)
_
_
n
_
P(n)
_
. (P-5)
Esta expresi on formaliza el principio de inducci on para n umeros naturales. Este prin-
cipio es muy conocido y de gran importancia en matem aticas discretas y ciencias de la
computaci on y, en general, en todas las matem aticas. A continuaci on discutimos su validez
y desarrollamos algunos ejemplos de su uso.
4.3. Inducci on en los n umeros naturales
Dada una propiedad P acerca de n umeros naturales, tal que P(n) ha sido probada para
un natural cualquiera n, es f acil cerciorarse de la validez de la propiedad para el siguien-
te n umero, es decir la validez de P(s(n)); si adem as podemos probar P(0), entonces el
axioma (P-5) nos permite concluir que nuestra propiedad es v alida para todos los n umeros
naturales. Esto se justica al existir para cada n umero natural n
0
una derivaci on de P(n
0
)
construida como sigue, usando 1, 2, 3, . . . en lugar de s(0), s(s(0)), . . .:
4.3 Inducci on en los n umeros naturales 167
1. P(0) Hip otesis.
2. n(P(n) P(s(n))) Hip otesis.
3. P(0) P(1) Instanciaci on n := 0 en 2.
4. P(1) Modus Ponens 1, 3.
5. P(1) P(2) Instanciaci on n := 1 en 2.
6. P(2) Modus Ponens 4, 5.
7. P(2) P(3) Instanciaci on n := 2 en 2.
8. P(3) Modus Ponens 6, 7.
.
.
.
k. P(n
0
)
Estas derivaciones generan la siguiente regla de inferencia, la cual tambi en se deriva
del axioma (P-5):
P(0)
n(P(n) P(s(n))
n(P(n))
donde P es un predicado acerca de n umeros naturales.
Veamos algunos ejemplos de su uso:
Ejemplo 4.1. Mostrar que 0 es identidad por la izquierda de la suma; esto es
n(0 + n = n).
Demostraci on.
Base: Demostrar P(0): (0 + 0) = 0.
Esto se cumple por (D-1).
Hip otesis de inducci on: Suponemos P(n): 0 + n = n.
Paso inductivo: Demostrar P(s(n)): 0 + s(n) = s(n).
(0 + s(n)) = s(0 + n) (D-2)
= s(n) (hip otesis de inducci on)
Ejemplo 4.2. Mostrar que la suma es conmutativa, esto es:
m(n(n +m = m+ n)).
Demostraci on. Demostrar n + m = m+n.
Haremos inducci on sobre m (no se puede hacer sobre ambas variables).
168 Inducci on y recursi on
Base: Demostrar P(0): 0 + n = n + 0.
0 + n = n (ejemplo (4.1))
= n + 0 (D-1)
Hip otesis de inducci on: Suponemos P(m): m+n = n + m.
Paso inductivo: Demostrar P
_
s(m)
_
: s(m) + n = n +s(m).
Tomando el lado derecho:
n +s(m) = s(n +m) (D-2)
= s(m+n) (hip otesis de inducci on)
Quisi eramos que el siguiente paso fuera
s(m+n) = s(m) + n.
Pero esto no es consecuencia de los axiomas ni de resultados anteriores. Por lo tanto,
lo tenemos que demostrar. Lo haremos usando inducci on natural sobre n ahora.
Base: Demostrar P(0): s(m+ 0) = s(0 + m) = 0 +s(m) = s(m) + 0.
Esto se cumple porque ambos lados son iguales a s(m).
Hip otesis de inducci on: Suponemos P(n): s(m+ n) = s(m) + n.
Paso inductivo: Demostrar P
_
s(n)
_
: s(m+s(n)) = s(m) + s(n).
s(m+ s(n)) = s(s(m+n)) (D-2)
= s(s(m) + n) (hip otesis de inducci on)
= s(m) + s(n) (D-2)
Generalizaci on Universal: n(s(m+ s(n)) = s(m) + s(n)
Generalizaci on universal sobre m: m(n(m+ n = n +m)).
Ejemplo 4.3. Sea H
n
= 0 para n = 0, y H
n+1
= 1+2H
n
para n > 0. Demostrar que H
n
= 2
n
1.
Demostraci on. Vericamos primero para la base, que en este caso es 0:
Base: Demostrar, usando la denici on dada, P(0): H
0
= 0 = 2
0
1.
H
0
=2
0
1 (por la denici on de H
n
con n = 0 )
=1 1 (por aritm etica)
=0

Hip otesis de inducci on: Suponemos P(n): H
n
= 1 + 2H
n1
= 2
n
1.
4.3 Inducci on en los n umeros naturales 169
Paso inductivo: Vericar que H
n+1
= 2
n+1
1.
H
n+1
= 1 + 2H
n
(denici on de H
n+1
)
= 1 + 2(2
n
1) (hip otesis de inducci on)
= 1 + 2 2
n
2 1 (aritm etica)
= 1 + 2
n+1
2 (aritm etica)
= 2
n+1
1 (aritm etica)

Ejemplo 4.4. Muestra que para toda n, 2(n + 2) (n + 2)


2
.
Demostraci on.
Base: Para n = 0,
2(0 + 2) = 2 + 2 = 4 4 = 2
2
= (0 + 2)
2
Hip otesis de inducci on: Suponemos P(n): 2(n + 2) (n + 2)
2
.
Paso inductivo: Corroborar que se cumple P(n + 1):
2((n + 1) + 2) = 2n + 2 + 4 (denici on y aritm etica)
= 2(n + 2) + 2 (aritm etica)
< (n + 2)
2
+ 2 (hip otesis de inducci on)
= n
2
+ 4n + 4 + 2 (aritm etica)
Buscamos acercarnos al lado derecho: (n + 3)
2
= n
2
+ 6n + 9
< n
2
+ 4n + 6 + 2n + 3 n > 0 (por lo que al agregarlo se
mantiene la desigualdad)
= (n + 3)
2
(aritm etica)
= ((n + 1) + 2)
2

Ejemplo 4.5. Demuestra que n
3
+ 2n es divisible por 3.
Demostraci on.
Que n
3
+2n sea divisible entre 3 quiere decir que se puede expresar como n
3
+2n = 3 k
para alg un entero k.
Base: Para n = 0, 0
3
+ 2n = 0 + 0 = 0 = n, por lo que n
3
+ 2n es divisible por 3.
Hip otesis de inducci on: Suponemos P(n): n
3
+ 2n = 3k para alguna k.
Paso inductivo: Tomemos n + 1 y veamos c omo se expresa (n + 1)
3
+ 2(n + 1).
170 Inducci on y recursi on
(n + 1)
3
+ 2(n + 1) = n
3
+ 3n
2
+ 3n + 1 + 2n + 2 ( algebra)
= (n
3
+ 2n) + 3n
2
+ 3n + 3 (asociatividad y
conmutatividad)
= 3k + 3(n
2
+n + 1) (hip otesis de inducci on)
sea k

= n
2
+ n + 1
= 3(k +k

) (factorizaci on)
Conclusi on: De esto, n(n
3
+ 2n es m ultiplo de 3).
4.3.1. Cambio de la base de la inducci on
En algunos casos la base de la inducci on no es necesariamente el cero o el uno; esto no
es una falla en el m etodo de inducci on, sino que la propiedad utilizada es v alida a partir
de cierto numero n
0
, lo cual genera un principio similar, presentado aqu como regla de
inferencia:
P(n
0
)
n
_
n n
0
P(n) P
_
s(n)
_
_
n
_
n n
0
P(n)
_
Ejemplo 4.6. Mostrar que 2
n
< n!, para n 4.
Demostraci on.
Base: P(4): 2
4
= 16 < 24 = 4!.
Hip otesis de inducci on: Suponer P(n): 2
n
< n!.
Paso inductivo: Demostrar P(n + 1): 2
n+1
< (n + 1)!.
2
n+1
= 2 2
n
(aritm etica)
< 2 n! (hip otesis de inducci on)
< (n + 1) n! 2 < n + 1, (pues n 4)
= (n + 1)! (denici on de (n + 1)! )
Ejemplo 4.7. Mostrar que cualquier cantidad mayor a 3 pesos puede pagarse usando unicamente
monedas de 2 y 5 pesos.
4.3 Inducci on en los n umeros naturales 171
Demostraci on.
Base: P(4): 4 = 2 2 de manera que $4 puede pagarse con dos monedas de $2.
Hip otesis de inducci on: P(n): Suponemos que $n pueden pagarse con monedas de $2
y $5.
Paso inductivo: P(n +1): Demostrar que $(n +1) pueden pagarse con monedas de $2 y
$5.
Por la hip otesis de inducci on tenemos que $n = k 2 + m 5. Es decir, $n se pagan
con k monedas de $2 y m monedas de $5. Tenemos dos casos:
m = 0. Es decir, $n se pagaron solamente con monedas de $2. En este caso,
n + 1 = k 2 + 1 = (k 2) 2 + 2 2 + 1 = (k 2) 2 + 5.
de donde si $n se pagaron con k monedas de $2, tenemos que $(n + 1) se
pagan con k 2 monedas de $2 y una moneda de $5. Obs ervese que estamos
separando dos monedas de $2 para completar $5; esto puede hacerse debido a
que k 2 ya que n 4.
m > 0. Es decir, $n se pagaron con al menos una moneda de $5.
n+1 = k 2 +m 5 +1 = k 2 +(m1) 5 +5 +1 = (k +3) 2 +(m1) 5
de donde $(n + 1) se pagan con k + 3 monedas de $2 y m1 monedas de $5.
Obs ervese que separamos una moneda de $5 para obtener $6 que se pagan con
tres monedas de $2; esto puede hacerse pues m 1.
De los ejemplos anteriores podemos obtener un esquema general para una prueba por
inducci on:
1. Enunciar el uso del principio de inducci on. De esta manera el lector comprender a de
qu e tipo de prueba se trata.
2. Denir un predicado apropiado P(n), de manera que la meta a probar sea nP(n).
Con frecuencia este predicado puede extraerse de la armaci on en espa nol que se
desea probar.
3. Mostrar que la base de la inducci on P(0) (o P(n
0
)) es cierta.
4. Enunciar la hip otesis de inducci on P(n).
5. Probar la implicaci on P(n) P(n + 1); esto se conoce como paso inductivo.
6. Invocar el principio de inducci on y concluir que nP(n).
Cualquier prueba por inducci on debe tener todos estos pasos y en este orden.
172 Inducci on y recursi on
4.3.2. Inducci on completa
Si pensamos en una prueba por inducci on de acuerdo al principio original (P-5) y a
la derivaci on l ogica dada en la p agina 167 para justicar el m etodo, al probar P(m) para
un n umero cualquiera m tuvimos que probar antes P(0), P(1), . . . , P(m 1), es decir, la
propiedad P tuvo que vericarse para todos los n umeros anteriores a m. Esta informaci on
podra ser util y necesaria para probar P(m + 1), ya que en algunos casos no basta con la
informaci on inmediata anterior P(m). Esta observaci on da lugar al principio de inducci on
fuerte o completa que enunciamos aqu como regla de inferencia.
n
_
m
_
m < n P(m)
_
P(n)
_
n
_
P(n)
_
Obs ervese que en este caso no hay una base explcita de la inducci on. Si instanciamos
n = 0 entonces la premisa de la regla resulta equivalente a P(0), puesto que la f ormu-
la m(m < 0 P(m)) es cierta al tratarse de una implicaci on con antecedente falso
(m < 0) con mN. Al probar el paso inductivo para n = 0 no hay hip otesis disponible
para usarse, por lo que P(0) debe ser probado como en casos anteriores. Sin embargo, esto
no es necesario en la mayora de los casos.
Este principio permite partir la prueba del paso inductivo en dos o m as casos m as pe-
que nos, cualesquiera que estos sean.
Ejemplo 4.8. Sea d el cero del operador , es decir x(x d = d x = d). Mostrar que cualquier
expresi on que contenga una o m as presencias de d debe ser igual a d.
Sea P(n) la proposici on de que cualquier expresi on con n presencias de y al menos una
presencia de d es igual a d.
Base: Veamos las posibles expresiones con una presencia de y al menos una presencia
de d:
(a) x d (b) d x.
Por la denici on del operador tenemos
x(x d = d x = d).
por lo que P(1) se cumple.
Hip otesis de inducci on: Supongamos P(m) para m < n. Es decir, cualquier expresi on
con m < n presencias de y al menos una presencia de d es igual a d.
4.3 Inducci on en los n umeros naturales 173
Paso inductivo: Sea x una expresi on con n > 0 operadores que contiene al menos una
presencia de d; entonces x = x
1
x
2
donde x
1
, x
2
son expresiones con menos de
n operadores y alguna de x
1
, x
2
contiene una presencia de d, digamos que es
x
1
. En tal caso, por la hip otesis de inducci on se tiene x
1
= d, de donde tenemos
x = x
1
x
2
= dx
2
. Como dx tiene menos de n presencias de (eliminamos todas
las presencias de en x
1
) presencia de d, tenemos que dx
2
= d, lo cual comple-
ta el paso inductivo. Obs ervese que la prueba es totalmente an aloga si es x
2
quien
contiene una presencia de d.
Ejemplo 4.9. Demostrar que cualquier n 2 es primo o es producto de primos.
Sea P(n) la proposici on: n es primo o producto de primos. Queremos probar que
n(n 2 P(n)).
Base: P(2): Para n = 2 tenemos que 2 es primo, por lo que se cumple P(2).
Hip otesis de inducci on: Supongamos P(m) para m < n. Es decir, cualquier n umero
m < n es primo o producto de primos.
Paso inductivo: Si n es primo hemos terminado. Si no lo es, n se puede escribir como
n = mq con 1<m, q <n y por la hip otesis de inducci on, ambos, m y q, son pri-
mos o producto de primos, de donde n = mq tambi en lo es.
Obs ervese que en este ejemplo se combinan la inducci on completa y el cambio de base
al iniciar en n = 2.
Ejercicios
4.3.1.- Demuestra, usando las deniciones de suma y producto dadas al inicio de esta sec-
ci on, que s(0) es la identidad para la multiplicaci on; esto es
m
_
ms(0) = m
_
4.3.2.- Demuestra las siguientes propiedades de la suma y el producto:
Asociatividad de la suma: mnk
_
m+ (n +k) = (m+n) + k
_
.
Asociatividad del producto: mnk
_
m(n k) = (mn) k
_
.
Neutro izquierdo del producto: n
_
0 n = 0
_
.
Conmutatividad del producto: mn
_
mn = n m
_
.
174 Inducci on y recursi on
4.3.3.- Demuestra, usando las deniciones de suma y producto dadas al inicio de esta sec-
ci on, que
mn
_
s(m) s(n) = mn +s(m) + n
_
4.3.4.- Demuestra que para toda n,
n

k=1
k =
n(n + 1)
2
.
4.3.5.- Demuestra que para toda n,
n

k=1
k
3
=
_
n(n + 1)
2
_
2
.
4.3.6.- Demuestra que para toda n, 5+8+11+ +(3n+2) =
1
2
_
3n
2
+ 7n
_
.
4.3.7.- Usa inducci on as como las leyes de conmutatividad y asociatividad para demostrar
que
a
1
+ (a
2
+ (a
3
+ . . . + (a
n1
+a
n
) . . .)) = a
n
+ (a
n1
+ (. . . + (a
2
+a
1
) . . .))
4.3.8.- Sea n > 3 un n umero natural. Sea m el entero mayor que es menor o igual que
(n + 2)/2
_
o sea, m = (n + 2)/2
_
. Veamos una peque na tabla con los valores de
n y m:
n (n +2)/2 m
2 2 2
5 3.5 3
6 4 4
7 4.5 4
Entonces, dados m as de m enteros en el conjunto 1, 2, . . . , n, tres de los enteros
en este conjunto tienen la propiedad de que alguno de los tres es la suma de los otros
dos.
4.3.9.- Demuestra que para toda n 0,
n

k=0
9 10
k
= 10
n+1
1.
4.3.10.- Usa inducci on matem atica para demostrar que para todo entero n, n < 2
n
.
4.3.11.- Demuestra que para todo entero positivo n existe un entero positivo con n dgitos
que es divisible entre 5
n
y tal que todos sus dgitos son impares. Que un entero p sea
4.3 Inducci on en los n umeros naturales 175
divisible entre otro entero q, denotado p [ q, quiere decir que al dividir p entre q, el
residuo es 0, o dicho de otra manera:
Dados p, q Z
+
, p[q m Z
+
tal que p = q m
Veamos algunos ejemplos de la proposici on:
n Entero con n dgitos p = q m
P(1) 5 5 = 5
1
(1)
P(2) 75 75 = 5
2
(3) = 25 3
P(3) 375 375 = 5
3
(3) = 125 3
P(4) 9375 5
4
(15) = 625 15
4.3.12.- Demuestra que para todo entero n 0 y z ,= 1,
n

k=0
z
k
=
z
n+1
1
z 1
4.3.13.- Demostrar que para todo entero n > 6, 3
n
< n!.
4.3.14.- Para todo natural n,
n

k=1
k(k!) = (n + 1)! 1
4.3.15.- Los aut omatas nitos son un modelo muy util para dispositivos en software o hard-
ware. Un aut omata nito es un dispositivo que se puede encontrar, en un momento
dado, en un n umero nito de estados. El objetivo de los estados es recordar una por-
ci on relevante de la historia del sistema. Como s olo hay un n umero nito de estados,
la historia completa no puede ser registrada, por lo que se deber a dise nar con cuidado
para recordar los aspectos relevantes.
En cada estado, el aut omata recibe posibles se nales, que lo pueden hacer cambiar de
estado. El aut omata inicia siempre en un estado designado como inicial, y depen-
diendo del estado en el que est a, puede emitir una se nal.
Podemos modelar un apagador muy sencillo con un aut omata nito. El aut omata
tiene dos estados, el de apagado y el de prendido, que es lo que el aut omata tiene
que recordar. Cuando se oprime el apagador, dependiendo en cu al de los dos estados
est e, va a pasar al otro: Si est a en apagado pasa a prendido y si est a en prendido pasa
a apagado. El estado inicial es apagado. Podemos modelar el aut omata con lo que se
conoce como un diagrama de transiciones, como se muestra en la gura 4.1. Como
se puede ver en esta gura, los estados est an representados por crculos, mientras que
el resultado de oprimir el apagador, que corresponde a una transici on, se representa
176 Inducci on y recursi on
con una echa que va de un estado al otro. El estado inicial es al que llega la echa
identicada con inicio.
Figura 4.1 Aut omata correspondiente a un apagador
A P
oprimir
oprimir
inicio
Debemos demostrar que los siguientes enunciados para describir el comportamiento
del aut omata se cumplen:
S
1
(n) : El aut omata est a en el estado A (de apagado) despu es de haber oprimido
el bot on n veces, si y s olo si n es par.
S
2
(n) : El aut omata est a en el estado P (de prendido) si y s olo si n es impar.
Se tiene que hacer una demostraci on doble de inducci on, ya que hay que hacer in-
ducci on sobre los dos casos posibles de la denici on.
4.3.16.- Un poliomin o es una pieza formada por cuadrados iguales unidos entre s por al
menos una arista (se excluyen los que est en unidos s olo por un v ertice). Los poli-
omin os se clasican seg un el n umero de cuadrados que los forman; as, tenemos los
monomin os son aqu ellos formados por un cuadrado, los domin os por dos cuadra-
dos, trimin os por tres, tetramin os por cuatro, pentamin os con cinco, los hexamin os
con seis, los heptamin os con siete, . . . . En ciencias de la computaci on a este tipo de
uniones donde se requiere que cuadrados adyacentes compartan un lado se conoce
tambi en como 4-conectividad.
Al n umero de cuadrado que tiene el poliomin o se le llama el orden de la gura. Seg un
el n umero de cuadrados en el poliomin o tendremos un n umero distinto de guras
con ese n umero de cuadrados. En la siguiente tabla consideraremos el n umero de
poliomin os libres, donde dos poliomin os son diferentes si uno no es el reejo, la
rotaci on o la traslaci on del otro. En la tabla 4.1 en la siguiente p agina mostramos los
poliomin os libres de orden 1 a 5.
Tabla 4.1 Poliomin os libres de orden 1 a 5
Nombre N umero Figuras
monomin o 1
(Contin ua en la siguiente p agina)
4.4 Deniciones recursivas 177
Tabla 4.1 Poliomin os libres de orden 1 a 5 (Contin ua de la p agina antereior)
Nombre N umero Figuras
domin os 1
trimin os 2
tetramin os 5
pentamin os 12
Consideremos el trimin o en forma de L. Consideremos un tablero de 2
n
2
n
cuadros
en el que eliminamos un cuadro. Demostrar que el resto del tablero puede ser cubierto
con trimin os en forma de L.
178 Inducci on y recursi on
4.4. Deniciones recursivas
Una denici on recursiva es aquella en la cual el concepto denido gura en la deni-
ci on misma. Esto puede parecer problem atico y de hecho introduce problemas matem ati-
cos profundos si dicho uso o autoreferencia se utiliza sin cuidado. Sin embargo, usado bajo
ciertas restricciones, este principio de autoreferencia, al que llamaremos en adelante recur-
si on, proporciona un m etodo de denici on sumamente util tanto en matem aticas como en
ciencias de la computaci on. En particular, todos los tipos de datos usuales en programa-
ci on como listas o arboles, as como diversas funciones sobre los mismos, pueden denirse
recursivamente.
Para que una denici on recursiva sea v alida, en el sentido de que genere tipos de datos o
funciones que no causen ciclos innitos de evaluaci on, debe constar de dos partes:
Un conjunto de casos base, los cuales son casos simples donde la denici on se da
directamente, es decir, sin usar autoreferencia.
Un conjunto de reglas recursivas donde se dene un nuevo elemento de la denici on
en t erminos de anteriores ya denidos.
Adem as de estas dos partes, la denici on debe constar de una cl ausula que asegure que
las dos anteriores son las unicas formas de obtener el concepto, objeto o funci on denida.
Esta cl ausula puede omitirse en el entendido de que siempre est a presente.
La denici on en los casos base nos da un punto de partida al proporcionar una denici on
directa, mientras que las reglas recursivas nos permiten construir nuevos casos a partir de
los b asicos de una manera iterativa.
Es muy importante observar que las unicas deniciones recursivas que consideramos
v alidas son aquellas donde las reglas recursivas se denen en t erminos de elementos ante-
riores. Por ejemplo, la siguiente denici on de una funci on
f(0) = 1
f(n + 1) = f(n + 2)
no es v alida, puesto que la denici on en n + 1 est a dada en t erminos de un elemento
posterior a n + 1, a saber n + 2. En particular, f resulta indenida en cualquier valor
distinto de cero. Deniciones como la anterior se llaman recursivas generales y por lo
general causan ciclos innitos en programaci on.
Ya hemos visto deniciones recursivas del conjunto de n umeros naturales, as como de
algunas funciones sobre este mismo tipo de datos como la suma o el producto. Veamos
algunos ejemplos m as
Ejemplo 4.10. Dada una persona x, la relaci on ser descendiente de x en el dominio de las personas
se dene como sigue:
4.4 Deniciones recursivas 179
i. Si y es hijo de x entonces y es descendiente de x.
ii. Si y es descendiente de x y z es hijo de y entonces z es descendiente de x.
iii. Nadie m as es descendiente de x.
Ejemplo 4.11. Dados dos n umeros naturales n y m, la relaci on n es menor que m, denotada
n < m, se dene como sigue:
i. 0 < s(k).
ii. s(n) < s(k), si n < k
iii. Ning un otro par de n umeros est a en la relaci on <.
Obs ervese que en el ejemplo anterior la recursi on se hace sobre el n umero n dejando a
m jo y declar andolo explcitamente como un n umero sucesor s(k), puesto que la relaci on
n < 0 no sucede nunca.
Ejemplo 4.12. El conjunto de f ormulas bien construidas de la l ogica proposicional se dene como
sigue:
i. Una variable proposicional es una f ormula bien construida.
ii. Las constantes l ogicas true y false son f ormulas bien construidas.
iii. Si Ay B son f ormulas bien construidas, entonces ( A), (AB), (AB) y (A B)
son f ormulas bien construidas.
iv. Ninguna expresi on que no sea construida con estas reglas es una f ormula bien cons-
truida.
Ejemplo 4.13. El conjunto de expresiones aritm eticas se dene como sigue:
i. Todos los enteros y todos los nombres de variables son expresiones aritm eticas.
ii. Si A y B son expresiones aritm eticas entonces (A), (A+B), (AB), (AB) y
(A/B) son expresiones aritm eticas.
iii. S olo estas son expresiones aritm eticas.
Ejemplo 4.14. El tipo de datos de listas nitas [a
1
, . . . , a
n
] con elementos a
i
en un conjunto A se
dene de la siguiente forma:
i. La lista vaca es una lista y se denota por [ ].
ii. Si a A y es una lista entonces cons(a, ) es una lista. A a se le llama la cabeza y
a la cola de la lista.
iii. S olo estas son listas.
Frecuentemente se usa la notaci on (a : ) para cons(a, ). Por ejemplo, si consideramos
al conjunto A = 1, 3, 6, 10, 15, 21, 28, la lista [10, 6, 1, 6] que contiene a los elementos
10, 6, 1, 6 en ese orden, se representa de la siguiente manera:
( 10 : ( 6, ( 1, ( 6, [ ] ) ) ) )
180 Inducci on y recursi on
Es conveniente notar que en las listas se admiten repeticiones, a diferencia de lo que sucede
con los conjuntos.
Tenemos varias opciones para representar a una lista con un unico elemento. cons(a, [ ])
corresponde a una lista con un primer elemento a y donde la cola de la lista es la lista vaca.
Tambi en podemos denotar a una lista con un solo elemento, de manera abreviada, como [a],
cosa que haremos m as adelante.
Ejemplo 4.15. El tipo de datos de arboles binarios con todos los nodos etiquetados por elementos
de un conjunto A se dene como sigue:
i. Un arbol vaco es un arbol binario y se denota por void.
ii. Si T
1
y T
2
son arboles binarios y a es un elemento de A, entonces tree(T
1
, c, T
2
) es
un arbol binario, donde T
1
es el sub arbol izquierdo y T
2
es el sub arbol derecho. Al
nodo etiquetado con c se le llama la raz del arbol.
iii. Nada m as es un arbol binario.
Por ejemplo, la expresi on tree(T
1
, c, T
2
) corresponde a la siguiente gura
c
T
1
T
2
A qu e expresi on corresponde cada uno de los siguientes arboles?
c
d f
e
a
b
d
e
c
f
Los ejemplos anteriores muestran deniciones recursivas de tipos de datos usuales en
computaci on como n umeros naturales, expresiones l ogicas o aritm eticas, listas o arboles, o
bien de relaciones como el orden usual entre n umeros. En la siguiente secci on mostramos
deniciones recursivas de funciones que involucran a los tipos de datos recien denidos.
4.4 Deniciones recursivas 181
4.4.1. Denici on de funciones recursivas
La denici on recursiva de tipos de datos permite denir funciones sobre los mismos
utilizando la t ecnica de casamiento o apareamiento de patrones
3
: cada cl ausula de la de-
nici on del tipo de datos introduce un patr on, el cual es un esquema sint actico bien denido
que se utiliza para denir un caso de la funci on en cuesti on. Listamos a continuaci on los
patrones b asicos de cada tipo de datos denido previamente:
N umeros naturales: 0, s(n).
Expresiones l ogicas: p, true, false, A, A B, A B, A B
Expresiones aritm eticas: n, x, (A), (A +B), (A B), (A B) y (A/B)
Listas: [ ], (a : )


Arboles binarios: void, tree(T
1
, c, T
2
)
De esta manera, para denir, por ejemplo, una funci on f sobre las listas, es suciente
denir los casos para f([ ]) y para f((a : )).
Veamos a continuaci on algunos ejemplos de funciones denidas sobre los tipos de datos
reci en denidos y cuyas implementaciones se dan mediante apareamiento de patrones. En
cada caso se da primero una especicaci on que proporciona una denici on directa, seguida
de una implementaci on mediante una funci on recursiva f denida mediante patrones. En
algunos ejemplos nos puede resultar claro que la denici on recursiva de f cumple con la
especicaci on dada en cada caso. Sin embargo, debemos mostrar esto formalmente para
cada ejemplo, proceso que discutiremos en la siguiente secci on.
Ejemplo 4.16. Exponenciaci on de n umeros naturales.
Especicaci on: pot(n, m) = n
m
Implementaci on recursiva:
f(n, 0) = 1
f(n, s(m)) = f(n, m) n
Ejemplo 4.17. Factorial de un n umero natural.
Especicaci on: fac(n) = n (n 1) . . . 2 1, donde adem as fac(0) = 1.
3
En ingl es pattern matching
182 Inducci on y recursi on
Implementaci on recursiva:
f(0) = 1
f(s(n)) = s(n) f(n)
Ejemplo 4.18.
Especicaci on: suma de los elementos de una lista de n umeros.
suml ( [a
1
, . . . , a
n
] ) = a
1
+a
2
+ . . . + a
n
Implementaci on recursiva:
f([ ]) = 0
f((a : )) = a +f()
Ejemplo 4.19.
Especicaci on: producto de los elementos de una lista de n umeros.
prodl ( [a
1
, . . . , a
n
] ) = a
1
a
2
. . . a
n
Implementaci on recursiva:
f([ ]) = 1
f((a : )) = a f()
Ejemplo 4.20.
Especicaci on: longitud de una lista.
long([a
1
, . . . , a
n
]) = n
Implementaci on recursiva:
f([ ]) = 0
f((a : )) = 1 +f()
4.4 Deniciones recursivas 183
Ejemplo 4.21.
Especicaci on: el operador binario devuelve la concatenaci on de dos listas.
[a
1
, . . . , a
k
] [b
1
, . . . , b
j
] = [a
1
, . . . , a
k
, b
1
, . . . , b
j
]
Implementaci on recursiva:
f([ ],
2
) =
2
f((a :
1
),
2
) =
_
a : f(
1
,
2
)
_
Ejemplo 4.22.
Especicaci on: reversa de una lista.
rev([a
1
, . . . , a
k
]) = [a
k
, . . . , a
1
]
Implementaci on recursiva:
f([ ]) = [ ]
f((a : )) = f() [a]
En algunos casos, la especicaci on de una funci on no puede darse de forma directa
mediante una ecuaci on como en los casos anteriores, sino que tiene que darse con palabras
como en los siguientes ejemplos.
Ejemplo 4.23.
Especicaci on: nc es la funci on que calcula el n umero de conectivos en una f ormula de la
l ogica proposicional. Por ejemplo nc(p q r) = 3.
Implementaci on recursiva:
f(p) = 0
f(true) = f(false) = 0
f(A) = 1 +f(A)
f(A B) = 1 +f(A) + f(B)
f(A B) = 1 +f(A) + f(B)
f(A B) = 1 +f(A) + f(B)
184 Inducci on y recursi on
Ejemplo 4.24.
Especicaci on: ccd es la funci on que recibe una f ormula proposicional A y devuelve la
f ormula obtenida a partir de Aal intercambiar los conectivos y en A. Por ejemplo
ccd(p q r s) = p q r s.
Implementaci on recursiva:
f(p) = p
f(true) = true
f(false) = false
f(A) = f(A)
f(A B) = f(A) f(B)
f(A B) = f(A) f(B)
f(A B) = f(A) f(B)
Ejemplo 4.25.
Especicaci on: at es la funci on que calcula el n umero de presencias de f ormulas at omicas
que guran en una f ormula. Por ejemplo:
at(q p r p) = 4.
at(q (true (r false t))) = 5.
Implementaci on recursiva:
f(p) = 1
f(true) = f(false) = 1
f(A) = f(A)
f(A B) = f(A) + f(B)
f(A B) = f(A) + f(B)
f(A B) = f(A) + f(B)
El ejemplo en la siguiente pagina involucra a dos tipos de datos, el de las f ormulas
proposicionales y el de listas de f ormulas.
4.4 Deniciones recursivas 185
Ejemplo 4.26.
Especicaci on: sf es la funci on que devuelve la lista de subf ormulas de una f ormula pro-
posicional A. Por ejemplo,
sf((p q) r) = [(p q) r, (p q), p q, p, q, r].
sf(p (p s)) = [p (p s), p, (p s), p s, p, s]
Implementaci on recursiva:
f(p) = [p]
f(true) = [true]
f(false) = [false]
f(A) = (A : f(A))
f(A B) =
_
(A B) : (f(A) f(B)
_
f(A B) =
_
(A B) : (f(A) f(B)
_
f(A B) =
_
(A B) : (f(A) f(B)
_
Ejemplo 4.27.
Especicaci on: nn es la funci on que recibe un arbol binario t y calcula el n umero de nodos
que hay en t.
Implementaci on recursiva:
f(void) = 0
f(tree(T
1
, c, T
2
)) = 1 +f(T
1
) + f(T
2
)
Ejemplo 4.28.
Especicaci on: la profundidad o altura de un nodo x en un arbol binario T se dene como
la distancia (n umero de lineas) existente entre x y la raiz de T en la representaci on
gr aca de T. La profundidad o altura de un arbol T se dene como la altura m axima
de un nodo de T m as uno. ht es la funci on que calcula la profundidad de un arbol
binario.
Implementaci on recursiva:
f(void) = 0
186 Inducci on y recursi on
f(tree(T
1
, c, T
2
)) = 1 + m axf(T
1
), f(T
2
)
Como ya mencionamos, en cada caso debemos cerciorarnos formalmente que la de-
nici on recursiva dada por f realmente cumple con la especicaci on dada. Para el caso de
funciones que involucren a los n umeros naturales esto puede lograrse mediante el principio
de inducci on matem atica. Como ejemplo, veamos que la denici on recursiva del factorial
en verdad cumple la especicaci on.
Ejemplo 4.29. La denici on recursiva de f en el ejemplo 4.17 calcula a la funci on factorial. Es
decir, para todo n umero natural n, se cumple f(n) = fac(n).
Base: n = 0. Tenemos f(0) = 1 = fac(0).
Hip otesis de inducci on: f(n) = fac(n).
Paso inductivo: queremos demostrar que f(s(n)) = fac(s(n)).
f(s(n)) = s(n) f(n) (denici on de f)
= s(n) fac(n) (hip otesis de inducci on)
= (n + 1) n (n 1) . . . 2 1 (denici on de fac(n))
= fac(s(n)) (denici on de fac(s(n)))
En conclusi on f(n) = fac(n) para todo n umero natural n.
Ahora bien, para el caso de funciones denidas sobre otro tipo de datos C omo pode-
mos probar que la especicaci on se satisface con la implementaci on recursiva?
De las deniciones y pruebas por inducci on de las operaciones de suma y producto,
as como de la prueba del ejemplo anterior, se observa una fuerte relaci on entre el principio
de inducci on matem atica y las deniciones recursivas que involucran n umeros naturales.
Cada propiedad de la denici on recursiva, como cumplir con una especicaci on dada, pue-
de mostrarse mediante el principio de inducci on. Esta relaci on puede generalizarse a dis-
tintas estructuras o tipos de datos denidos recursivamente, lo que haremos a continuaci on.
4.5. Inducci on estructural
Para demostrar propiedades acerca de estructuras denidas recursivamente en el sentido
descrito en la p agina 178, es posible recurrir a la inducci on matem atica, deniendo una
medida en la estructura en cuesti on, lo que se hace mediante un n umero natural. Entre
4.5 Inducci on estructural 187
las medidas que podemos mencionar est an la longitud de una lista, la profundidad de un
arbol o el n umero de conectivos en una f ormula proposicional. Esto es posible debido a
que las reglas recursivas de la denici on en cuesti on se dan en t erminos de elementos
estructuralmente m as simples, por lo que su medida ser a menor y la hip otesis de inducci on
podr a emplearse. Sin embargo, en la mayora de los casos, el uso de una medida complica
las pruebas, adem as de que la elecci on de una medida incorrecta podra resultar en una
prueba fallida. Otra posibilidad es generalizar el principio de inducci on completa mediante
la denici on de un orden en los tipos de datos, el cual debe ser bien fundado, es decir, no
debe contener sucesiones descendentes innitas. Sin embargo, el problema de decidir si
una estructura particular es bien fundada no siempre es f acil de resolver.
En lugar de las alternativas anteriores es posible utilizar los llamados principios de
inducci on estructural, basados en las reglas base y recursivas de la denici on de un tipo de
datos, as como en el an alisis de los patrones b asicos introducidos por estas.
El esquema general del principio de inducci on estructural es el siguiente: Sean A un
conjunto o tipo de datos denido recursivamente y P una propiedad acerca de los elementos
de A. Para probar que P(x) es v alida para todo elemento de Adeben seguirse los siguientes
pasos:
Base de la inducci on: Si a es un elemento de A generado por una regla b asica,
entonces debemos probar directamente la validez de P(a).
Si x es un elemento de A construido mediante alguna regla recursiva a partir de
elementos anteriores
4
x
1
, . . . , x
n
, entonces procedemos como sigue:
Hip otesis de inducci on: Suponer P(x
1
), . . . , P(x
n
).
Paso inductivo: Probar P(x).
En este caso, el principio de inducci on estructural permite concluir que xP(x).
Este principio debe adaptarse a cada conjunto o tipo de datos en particular. En las
siguientes secciones lo ejemplicamos para los casos de listas, arboles y f ormulas proposi-
cionales.
4.5.1. Inducci on en listas
El tipo de datos lista es uno de los m as com unes en ciencias de la computaci on. Este
tipo de datos se deni o recursivamente en el ejemplo 4.14, y genera el siguiente principio
de inducci on estructural:
Sea P una propiedad acerca de listas; si se desea probar P(xs) para toda lista xs, basta
proceder como sigue:
Base de la inducci on: Probar P([ ]) directamente.
4
Es decir, elementos estructuralmente m as simples.
188 Inducci on y recursi on
Hip otesis de inducci on: Suponer P(xs) .
Paso inductivo: Probar P((a : xs)).
Si este es el caso, el principio de inducci on para listas permite concluir P(xs) para cual-
quier lista xs.
Para ilustrar el uso de la inducci on en listas probamos enseguida algunas propiedades
de las operaciones en listas.
Proposici on 4.1 La funci on recursiva f dada en el ejemplo 4.21 calcula la concatenaci on de
dos listas. Es decir, para cualesquiera listas xs, ys, f(xs, ys) = xs ys.
Demostraci on. Inducci on sobre xs.
Base de la inducci on: xs = [ ]. Tenemos [ ] ys = ys = f([ ], ys).
Hip otesis de inducci on: f(xs, ys) = xs ys.
Paso inductivo: Debemos mostrar que f((a : xs), ys) = (a : xs) ys.
(a : xs) ys = a : (xs ys) (razonamiento directo)
= a : f(xs, ys) (hip otesis de inducci on)
= f((a : xs), ys) (denici on recursiva de f)
En conclusi on f(xs, ys) = xs ys para cualesquiera listas xs, ys.
De manera similar podemos probar la correctud de todas deniciones recursivas dadas
en los ejemplos de la secci on 4.4.1.
Como ya probamos que la implementaci on de la concatenaci on es correcta, podemos
usarla de ahora en adelante, como en el caso de la siguiente proposici on.
Proposici on 4.2 La operaci on de concatenaci on en listas cumple las siguientes propiedades:
Asociatividad: xs (ys zs) = (xs ys) zs
Longitud: long(xs ys) = long(xs) + long(ys)
Demostraci on. Probamos la asociatividad mediante inducci on sobre la lista xs.
Sea P(xs) la propiedad xs (ys zs) = (xs ys) zs
4.5 Inducci on estructural 189
Base de la inducci on: xs = [ ], debemos mostrar que
[ ] (ys zs) = ([ ] ys) zs
[ ] (ys zs) = ys zs (def. rec. de )
= ([ ] ys) zs (ys = [ ] ys)
Hip otesis de inducci on: xs (ys zs) = (xs ys) zs.
Paso inductivo: sea a un elemento de A, debemos mostrar que
(a : xs)
_
ys zs
_
=
_
(a : xs) ys
_
zs
(a : xs)
_
ys zs
_
= a :
_
xs (ys zs)
_
(def.rec. de )
= a :
_
(xs ys) zs
_
(hip otesis de inducci on)
=
_
a : (xs ys)
_
zs (def.rec. de )
=
_
(a : xs) ys
_
zs (def.rec. de )
As que por el principio de inducci on para listas, concluimos que la operaci on app es
asociativa.
La propiedad de longitud se demuestra similarmente.
Proposici on 4.3 La operaci on reversa rev en listas cumple las siguientes propiedades:
Longitud: long(rev(xs)) = long(xs)
Concatenaci on: rev(xs ys) = rev(ys) rev(xs)
Idempotencia: rev(rev(xs)) = xs
Demostraci on. Mostramos la propiedad de idempotencia mediante inducci on sobre la lista xs,
dejando las restantes como ejercicio.
Base de la inducci on: xs = [ ]. Como rev([ ]) = [ ] entonces
rev(rev([ ])) = rev([ ]) = [ ].
Hip otesis de inducci on: rev(rev(xs)) = xs
190 Inducci on y recursi on
Paso inductivo: Sea a un elemento de A; mostraremos que
rev(rev((a : xs))) = (a : xs).
rev(rev((a : xs))) = rev
_
rev(xs) [a]
_
(denici on recursiva de rev)
= rev([a]) rev(rev(xs) (proposici on anterior)
= rev([a]) xs (hip otesis de inducci on)
= [a] xs (rev([a]) = [a])
= (a : [ ]) xs ([a] = (a : [ ]))
= a : ([ ] xs) (denici on recursiva de )
= (a : xs) (denici on recursiva de )
Conclusi on: As que por el principio de inducci on para listas se cumple
rev(rev(xs)) = xs para toda lista xs.
Pasamos ahora a ilustrar la inducci on estructural en f ormulas proposicionales.
4.5.2. Inducci on en f ormulas
El conjunto de f ormulas de la l ogica proposicional se deni o ya mediante una gram ati-
ca, as como mediante la denici on recursiva del ejemplo 4.12. Esta ultima forma de de-
nirlo habilita un principio de inducci on estructural de gran utilidad en l ogica matem atica.
El principio de inducci on estructural para f ormulas es el siguiente:
Sea P una propiedad acerca de f ormulas proposicionales. Si se desea probar P(A) para
toda f ormula A, basta proceder como sigue:
Base de la inducci on: probar P(q) directamente para cada variable proposicional q; pro-
bar P(true) y probar P(false)
Hip otesis de inducci on: suponer P(A) y P(B).
Paso inductivo: probar P(A), P(A B), P(A B) y P(A B).
Conclusi on: En tal caso el principio de inducci on para f ormulas permite concluir P(A)
para cualquier f ormula A.
En este caso, debido a nuestros conocimientos de equivalencias l ogicas, el paso induc-
tivo puede simplicarse a probar P(A) y alguno de los casos para un operador binario, el
cual se elige dependiendo de la propiedad P particular.
Demostramos a continuaci on algunas propiedades de las f ormulas proposicionales.
4.5 Inducci on estructural 191
Proposici on 4.4 Sea comp la siguiente funci on recursiva:
comp(p) = p (i)
comp(true) = false (ii)
comp(false) = true (iii)
comp(A) = comp(A) (iv)
comp(A B) = comp(A) comp(B) (v)
comp(A B) = comp(A) comp(B) (vi)
Entonces, para toda f ormula C, se cumple comp(C) C.
Demostraci on. Inducci on sobre las f ormulas.
Base: C es at omica. Si C = p entonces hay que mostrar comp(p) p.
comp(p) = p (por (i))
p (reexividad de )
Los casos para C = true y C = false son similares.
Hip otesis de inducci on Supongamos que comp(A) A y comp(B) B.
Paso inductivo: Dado nuestro conocimiento de las equivalencias l ogicas, basta mostrar la
propiedad para A y A B.
comp(A) = comp(A) (por (iv))
A (hip otesis de inducci on y equivalencia l ogica)
comp(A B) = comp(A) comp(B) (por (vi))
A B (hip otesis de inducci on y equivalencia l ogica)
(A B) (De Morgan)
Conclusi on: Por el principio de inducci on para f ormulas, podemos concluir que
comp(C) C, para cualquier f ormula C.
Por ultimo demostramos una propiedad que relaciona a las funciones denidas en los
ejemplos 4.20, 4.23 y 4.25.
Proposici on 4.5 Si Aes una f ormula proposicional, entonces la longitud de la lista de subf ormu-
las de A es igual a la suma del n umero de presencias de variables proposicionales de A
con el n umero de conectivos que guran en A. Es decir,
long(sf(A)) = at(A) + nc(A)
192 Inducci on y recursi on
Demostraci on. Inducci on sobre la f ormula A.
Base de la inducci on: Sea A = p. Tenemos en A una presencia de la f ormula at omica p
y ning un conectivo. Por lo tanto,
long(sf(p)) = long([p]) = 1 = 1 + 0 = at(p) + nc(p)
Para A = true o A = false, la prueba es similar.
Hip otesis de inducci on: Supongamos que
long(sf(A)) = at(A) + nc(A) long(sf(B)) = at(B) + nc(B).
Paso inductivo: Probamos la propiedad para A y A B.
long(sf(A)) = long
_
(A : sf(A))
_
(denici on de sf)
= 1 +long(sf(A)) (denici on recursiva de long)
= 1 + (at(A) + nc(A)) (hip otesis de inducci on)
= at(A) + (1 +nc(A)) (aritm etica)
= at(A) + (1 +nc(A)) (denici on recursiva de at)
= at(A) + nc(A) (denici on recursiva de nc)
long(sf(A B)) = long
_
((A B) : sf(A) sf(B))
_
(denici on de sf)
= 1 +long(sf(A) sf(B)) (denici on recursiva de long)
= 1 +long(sf(A)) + long(sf(B)) (proposici on de )
= 1 + (at(A) + nc(A)) + (at(B) + nc(B)) (hip otesis de inducci on)
= (at(A) + at(B)) + (1 +nc(A) + nc(B)) (aritm etica)
= at(A B) + (1 +nc(A) + nc(B)) (denici on recursiva de at)
= at(A B) + nc(A B) (denici on recursiva de nc)
Conclusi on: Por lo tanto, por el principio de inducci on para f ormulas, para cualquier
f ormula A se cumple
long(sf(A)) = at(A) + nc(A)
Para nalizar este captulo discutimos el principio de inducci on para arboles binarios.
4.5.3. Inducci on en arboles
La denici on recursiva del tipo de datos de arboles binarios dada en el ejemplo 4.15
genera la siguiente versi on del principio de inducci on estructural:
4.5 Inducci on estructural 193
Sea P una propiedad acerca de arboles binarios. Si se desea probar P(T) para todo
arbol T, basta proceder como sigue:
Base de la inducci on: Probar P(void) directamente.
Hip otesis de inducci on: Suponer P(T
1
) y P(T
2
).
Paso inductivo: Probar P(tree(T
1
, c, T
2
)).
Conclusi on: En tal caso el principio de inducci on para arboles permite concluir P(T) para
cualquier arbol T.
Veamos a continuaci on un par de ejemplos de pruebas mediante este principio de in-
ducci on.
Proposici on 4.6 Cualquier arbol binario T con n nodos contiene exactamente n+1 sub arboles
vacos.
Demostraci on. Inducci on sobre T.
Base: T = void. El n umero de nodos de T es 0, y el n umero de sub arboles vacos es
0 + 1 = 1, pues T mismo es un sub arbol binario vaco.
Hip otesis de inducci on: Si los arboles binarios T
1
y T
2
tienen n
1
y n
2
nodos respectiva-
mente, entonces tienen n
1
+ 1 y n
2
+ 1 sub arboles vacos respectivamente.
Paso inductivo: Sea T = (T
1
, c, T
2
) un arbol binario no vaco. El n umero de nodos de T
es 1 + n
1
+n
2
. Queremos demostrar que T tiene n
1
+n
2
+ 2 arboles vacios.
Es claro que los sub arboles vacos de T son sub arboles de T
1
o de T
2
, por lo que se
tiene que el n umero de sub arboles vacos de T es igual a la suma de los n umeros de
sub arboles vacos de T
1
y de T
2
; pero por la hip otesis de inducci on dicha suma es
igual a (n
1
+ 1) + (n
2
+ 1) = n
1
+n
2
+ 2.
Conclusi on: Todos los arboles binarios con n nodos tienen n + 1 sub arboles vacos.
Una hoja a de un arbol es aquel nodo del que cuelgan unicamente arboles vacos, repre-
sentado por tree(void, a, void). Denimos la altura de un arbol general como uno m as de
la distancia de la raz a la hoja m as lejana, donde la distancia es el n umero de aristas que se
tienen que recorrer desde la raz para llegar al nodo en la representaci on gr aca del arbol.
Proposici on 4.7 Si T es un arbol binario con altura n, entonces tiene a lo m as 2
n
1 nodos.
Es decir, nn(T) 2
n
1
Demostraci on. Inducci on sobre T.
Base: T = void. En este caso la altura de T es 0 y nn(T) = 0 pues T no tiene nodos ; por
otro lado, 2
0
1 = 1 1 = 0, con lo que queda demostrada la base de la inducci on.
Hip otesis de inducci on: Si el arbol T
i
tiene altura n
i
entonces tiene a lo m as 2
n
i
1
nodos, donde i = 1, 2.
194 Inducci on y recursi on
Paso inductivo: Sea T = tree(T
1
, c, T
2
). Recordemos que la altura de T es igual a 1 +
m axn
1
, n
2
, por lo que debemos demostrar que el m aximo n umero de nodos en T
es 2
1+max{n
1
n
2
}
1, es decir que nn(T) 2
1+max{n
1
n
2
}
1.
nn(T) = nn(T
1
) + nn(T
2
) + 1 (Denici on recursiva de nn)
2
n
1
1 + 2
n
2
1 + 1 (hip otesis de inducci on)
2
max{n
1
,n
2
}
1 + 2
max{n
1
,n
2
}
1 + 1 (aritm etica)
= 2 2
max{n
1
,n
2
}
1 (aritm etica)
= 2
1+max{n
1
,n
2
}
1 (leyes de exponentes)
Este resultado particular es muy utilizado en computaci on.
Ejercicios
4.5.1.- Para cada ejemplo de la secci on 4.4.1 demuestra mediante el principio de inducci on
estructural correspondiente que la funci on especicada cumple con la implementa-
ci on recursiva.
4.5.2.- Considera las siguientes especicaciones de dos funciones spar y simp cuyo do-
minio y codominio son los n umeros naturales.
spar(n) = 2 + 4 + 6 + . . . + 2n simp(n) = 1 + 3 + 5 + . . . + (2n + 1)
a) Propone implementaciones recursivas f y g para spar y simp, respectivamente.
b) Muestra que f(n) = n(n + 1)
c) Muestra que g(n) = (n + 1)
2
.
4.5.3.- Denimos al conjunto de cadenas a
m
ba
m
de la siguiente manera:
i. b, la cadena representada por a
0
ba
0
, est a en el conjunto.
ii. Si w es una cadena en este conjunto, entonces awa tambi en est a en el conjunto.
iii.

Estas son las unicas formas de construir cadenas que cumplan con ser a
m
ba
m
.
Demuestra que todas las cadenas que pertenecen a este conjunto tienen un n umero
impar de car acteres, utilizando los siguientes m etodos:
a) Inducci on sobre la longitud de las cadenas.
b) Deniendo y utilizando un principio de inducci on estructural adecuado.
4.5.4.- Considera la denici on recursiva de las expresiones aritm eticas dada en el ejem-
plo 4.13. Enuncia el principio de inducci on estructural correspondiente y utilzalo
para demostrar que toda expresi on aritm etica tiene el mismo n umero de par entesis
izquierdos que derechos.
4.5 Inducci on estructural 195
4.5.5.- Una cadena de caracteres es palndroma si es de la forma ww
R
, donde w
R
es w
escrita de atr as hacia adelante. Algunos ejemplos son 0110 y aabaabaa. Dene al
conjunto de las cadenas palndromas en forma recursiva y demuestra mediante in-
ducci on estructural que todas las cadenas palndromas de este tipo tiene un n umero
par de smbolos.
4.5.6.- Demuestra mediante inducci on para listas lo siguiente:
a) La propiedad de longitud enunciada en la proposici on 4.2
b) Las propiedades de concatenaci on e idempotencia para la reversa, enunciadas
en la proposici on 4.3
4.5.7.- La funci on snoc en listas se dene como sigue:
snoc c [x
1
, . . . , x
n
] = [x
1
, . . . , x
n
, c]
a) Da una denici on recursiva para snoc.
b) Demuestra que:
snoc c (xs ys) = xs (snoc c ys)
c) Demuestra la siguiente propiedad que relaciona a snoc con la operaci on reversa
rev:
rev (snoc c xs) = c : (rev xs)
4.5.8.- Considera la siguiente funci on misteriosa mist:
mist [ ] ys = ys
mist (x : xs) ys = mist xs (x : ys)
a) Qu e hace mist?
b) Muestra que rev xs = mist xs [ ]
4.5.9.- Este ejercicio concierne a la operaci on de sustituci on textual para las f ormulas de
la l ogica proposicional.
a) Dene recursivamente la operaci on de sustituci on textual A[p := B].
b) Demuestra las siguientes propiedades mediante inducci on para f ormulas:
Si p no gura en A, entonces A[p := B] = A.
Si p ,= q y p no gura en C, entonces
A[p := B][q := C] = A[q := C]
_
p := B[q := C]

.
196 Inducci on y recursi on
Si p ,= q y p no gura en B, entonces
A[q, p := B, C] = A[q := B][p := C].
4.5.10.- Sea Auna f ormula de la l ogica proposicional cuyos unicos conectivos son , , .
Construimos la f ormula dual de A, denotada A
D
, intercambiando con , y reem-
plazando cada variable p por su negaci on p. Por ejemplo, si A = (r p) q,
entonces A
D
= (r p) q.
Dene recursivamente una funci on dual tal que dual(A) = A
D
.
Muestra que A A
D
mediante inducci on sobre las f ormulas.
4.5.11.- Dene recursivamente al conjunto de t erminos de la l ogica de predicados y enun-
cia el principio de inducci on estructural correspondiente.
4.5.12.- Dene recursivamente al conjunto de f ormulas de la l ogica de predicados y enun-
cia el principio de inducci on estructural correspondiente. Observa que este principio
debe incluir al dado en la secci on 4.5.2 para la l ogica de proposiciones.
4.5.13.- Dene recursivamente las siguientes funciones para t erminos de la l ogica de pre-
dicados:
a) ctes(t) que devuelva el conjunto de constantes que guran en t. Por ejemplo,
ctes(f(a, g(x, b)) = a, b
b) vars(t) que devuelva el conjunto de variables que guran en t. Por ejemplo,
var(g(x, f(y), h(b))) = x, y.
c) func(t) que devuelva el conjunto de smbolos de funci on que guran en t. Por
ejemplo, func(f(a, g(x, b)) = f, g.
4.5.14.- La operaci on de sustituci on textual puede extenderse a los t erminos de la l ogica
de predicados. Si t y r son t erminos y x es una variable entonces t[x := r] denota
a la sustituci on textual de x por r en t. Por ejemplo f(a, x, g(y, x))[x := h(w)] =
f(a, h(w), g(y, h(w))). Realiza lo siguiente:
a) Formula una denici on recursiva de t[x := r].
b) Muestra que si x / vars(t), entonces t[x := r] = t.
c) Muestra que:
vars(t[x := r]) = (vars(t) x) vars(r).
4.5.15.- Dene recursivamente las siguientes funciones para f ormulas de la l ogica de pre-
dicados:
a) fv(A) que devuelva el conjunto de variables libres de A. Por ejemplo,
fv(xP(x, y) wQ(z, w)) = y, z
4.5 Inducci on estructural 197
b) bv(A) que devuelva el conjunto de variables ligadas de A. Por ejemplo,
bv(xP(x, y) wQ(z, w)) = x, w
c) nq(A) que devuelva el n umero de cuanticadores que guran en A. Por ejem-
plo, bv(xyP(x, y) wzQ(z, w)) = 4
4.5.16.- Demuestra que el mnimo n umero de nodos en un arbol de altura n es n.
4.5.17.- Demuestra que el n umero m aximo de hojas en un arbol de altura n es 2
n1
y que
el m aximo n umero de nodos internos es 2
n1
1
4.5.18.- Demuestra que el siguiente recorrido en un arbol binario reporta a todos los nodos
del arbol y siempre termina.
Reglas para reportar un arbol binario.
a) Si el arbol es un arbol vaco, reporta void y regresa.
b) Si el arbol es tree(A, c, B), donde A y B son arboles binarios, entonces:
i. Reporta c.
ii. Reporta A.
iii. Reporta B.
iv. Termina.
4.5.19.- Dene recursivamente una funci on aplana que tome un arbol binario y devuelva
la lista de sus nodos empezando por la raz y siguiendo con los nodos del sub arbol
izquierdo y derecho recursivamente.
Por ejemplo, si T = tree(tree(hoja(1), 6, hoja(2)), 5, tree(hoja(4), 9, void)), don-
de hoja(n) = tree(void, n, void), entonces aplana(T) = [5, 6, 1, 2, 9, 4].
Muestra que para cualquier arbol t, se cumple nn(t) = long (aplana(t)).
4.5.20.- Queremos representar arboles binarios cuyas unicos nodos etiquetados son las
hojas. Para eso tenemos la siguiente denici on:
Si a A, entonces hoja(a) es un arbol.
Si t
1
, t
2
son arboles, entonces mk(t
1
, t
2
) es un arbol.
Son todos.
Observa que en esta denici on no existe el arbol vaco.
a) Dene funciones recursivas nh, nni que calculen el n umero de hojas y el
n umero de nodos internos de un arbol (es decir los nodos que no son hojas).
b) Enuncia el principio de inducci on estructural correspondiente y utilzalo para
mostrar que:
nh(t) = nni(t) + 1.
Parte III
Teora de Gr acas
Conceptos de
teora de gr acas
5
5.1. Motivaci on
Una de las actividades m as importantes de todo cientco, y en particular de los de-
dicados a Computaci on es la del modelado. Modelar un problema quiere decir traducirlo
del lenguaje natural a un lenguaje matem atico en el que podamos expresar de manera m as
precisa las caractersticas de lo que estamos modelando, y poder manipularlo tambi en de
manera precisa y v alida.
Hemos estado manejando ya modelos cuando trabajamos con C alculo Proposicional y
con C alculo de Predicados, tratando de modelar estados de la vida real. Pasaremos ahora a
modelar otro tipo de problemas.
Una vez que tenemos un modelo apropiado, podemos usar la computadora para mani-
pularlo. En general, estamos preocupados con tres problemas:
i. Existe una soluci on para el problema? Nos interesa una soluci on que pueda ser
calculada (o encontrada) por una computadora en un tiempo razonable.
ii. Existe una soluci on optima para el problema? Esto es, podemos calcular una solu-
ci on que sea mejor que cualquier otra soluci on dada para ese problema.
iii. Por ultimo, Cu antas soluciones distintas existen para el problema dado?
Veamos algunos ejemplos.
202 Conceptos de teora de gr acas
Existencia de soluci on: Cuatro parejas casadas juegan tenis de dobles mixtos en dos can-
chas cada domingo en la noche. Juegan durante dos horas, pero intercambian parejas
y oponentes al nal de cada perodo de media hora. Existe una programaci on de
tal manera que cada hombre juegue con y contra cada mujer exactamente una vez, y
juega contra cada hombre al menos una vez?
Contar el n umero de soluciones: Un grupo de inversionistas decide rotar los puestos de
presidente y tesorero cada a no. Cu antos a nos van a transcurrir antes de que tenga
que repetir alguno de los socios en alguna de las dos posiciones?
Optimizaci on: Un empresario tiene tres empleados, Patty, Enrique y Roque, a quienes les
paga $60, $70 y $80 pesos la hora respectivamente. El empresario tiene tres trabajos
por asignar. La siguiente tabla muestra cu anto tiempo requiere cada trabajador para
hacer cada uno de los trabajos. Cu al es la manera de asignar el trabajo para que
salga tan barato como sea posible?
Patty Enrique Roque
Trabajo 1 7.5 hr. 6 hr. 6.5 hr
Trabajo 2 8 hr. 8.5 hr. 7 hr.
Trabajo 3 5 hr. 6.5 hr. 5.5 hr.
Estos tres problemas, de alguna manera, tienen que ver con combinatoria, las distintas
maneras que se tienen de resolver el problema y c omo elegir la mejor de ellas. La soluci on
para muchos de estos problemas est a dada por algoritmos. Un algoritmo es un m etodo de
soluci on que cumple con:
Entradas: El algoritmo trabaja a partir de cero o m as datos. Cuando son cero datos, es
porque trabaja a partir de constantes. Por ejemplo, tenemos un algoritmo que elabora
una tabla de senos, y empieza a producir valores empezando con un valor constante.
Salidas: El algoritmo produce un resultado.
Finitud: El n umero de pasos del algoritmo es nito.
Denici on: Cada paso est a bien denido y susceptible de ser ejecutado por un hombre con
papel y l apiz.
Terminaci on: El algoritmo siempre debe terminar.
No para todos los problemas hay algoritmos que los resuelvan. M as adelante, en su con-
tacto con las ciencias de la computaci on estudiar an que hay m as problemas que algoritmos,
por lo que algunos problemas se tendr an que quedar sin soluci on algortmica.
En este captulo nos haremos las tres preguntas que acabamos de plantear, revisando
aquellos problemas que se pueden modelar con gr acas, donde una gr aca es un modelo
matem atico.
5.1 Motivaci on 203
5.1.1. Tiempo para completar un proyecto
El problema:
La Sociedad Mexicana de Ciencias de la Computaci on est a organizando un Encuentro
para llevarse a cabo a principios del mes de marzo, y tiene que mandar propaganda (un
folleto de 8 p aginas) para avisar del evento. Esta propaganda debe ser enviada al menos 10
das antes de la fecha del evento para que sea efectivo, pero se deben hacer varias tareas
y tomar algunas decisiones antes de elaborar el folleto. El comit e organizador del evento
debe decidir que temas se van a tratar en el encuentro, y el comit e acad emico debe decidir a
quienes invitar para que sean arbitros de los trabajos. Entonces un comit e local debe decidir
a qui en invitar para conferencias magistrales sobre los temas decididos.
El comit e organizador debe preparar dibujos alusivos a los temas a tratar, y alguien tiene
que redactar las descripciones cortas de las conferencias magistrales. Finalmente se junta
toda la informaci on y se elabora la propaganda requerida, para que se enve por correo.
El comit e de propaganda elabora una lista de correo de a quienes enviar la propaganda.
Una vez hecho esto se elaboran las etiquetas para los sobres a enviar. Una vez que se
termina de imprimir el folleto, se le pega a cada uno una etiqueta, se organizan por c odigo
postal y se llevan a la ocina de correos.
Todas estas actividades toman un cierto tiempo; algunas de ellas se pueden llevar a cabo
de manera simult anea, pero otras tienen que esperar a que actividades previas se terminen.
La SMCC quiere saber cu al es el tiempo que requiere para preparar el encuentro, para saber
cu al es la fecha m as tarde en la que pueden empezar las distintas tareas.
Para calcular el tiempo total del proyecto necesitamos dos tipos de informaci on: el tiem-
po, en das, que se toma cada actividad, y las actividades que tienen que estar terminadas
para que esta se pueda llevar a cabo. En la tabla 5.1 se encuentra esa informaci on.
Este problema se presta para modelarlo con una gr aca dirigida (o digr aca). Una
digr aca es un conjunto de v ertices o nodos y una relaci on entre ellos, que llamamos los
arcos de la digr aca. Si u y v son nodos de la digr aca, decimos que (u, v) (u v) es un
arco que sale del nodo u y llega al nodo v y que se representa de alguna de las siguientes
formas:
u v
u

v
u v
En nuestro problema particular, el arco (u, v) signica que la actividad u se tiene que
terminar antes de que inicie la actividad v.
En cada v ertice colocaremos el tiempo requerido para que la actividad se lleve a cabo,
adem as del identicador de la actividad. El resultado se puede observar en la gura 5.1.
204 Conceptos de teora de gr acas
Tabla 5.1 Tiempos requeridos y predecesores por actividad
Id. Tarea Tiempo Tareas precedentes
A. Elegir temas. 3 ninguna
B. Elegir arbitros 2 ninguna
C. Elegir conferencias magistrales 2 A y B
D. Dibujos alusivos 4 C
E. Redacci on de res umenes 3 C
F. Elaborar el folleto 2 D, E
G. Elaborar la lista de correo 3 C
H. Imprimir las etiquetas 1 G
I. Imprimir el folleto 5 F
J Pegar las etiquetas 2 H, I
K Repartir la propaganda 10 J
Figura 5.1 Digr aca que corresponde a la organizaci on del encuentro
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
Tratemos de calcular cu al es el mnimo tiempo requerido para ejecutar todas las tareas
y terminar lo antes posible.
Si simplemente tomamos la suma de los tiempos que se requieren para terminar todas
las tareas, obtendremos un tiempo total de 47 das. Sin embargo, muchas de esas tareas se
pueden hacer de manera simult anea. C omo determinar, entonces, cu al es el menor tiempo
en el que todas las tareas pueden ser completadas?
5.1 Motivaci on 205
En 1958 se desarroll o una t ecnica, llamada PERT (Program Evaluation and Review
Technique), que calcula, entre otras cosas, lo que se conoce como ruta crtica. Una ruta
crtica consiste de ordenar en el tiempo los eventos que se tienen que llevar a cabo y encon-
trar una programaci on de dichos eventos, de tal manera que se desarrollen todos ellos en
el menor tiempo posible, respetando las precedencias especicadas. El algoritmo para ruta
crtica es muy sencillo y consiste de lo siguiente.
1. Programar a todas las tareas que no tienen ninguna tarea que las preceda. Esto quiere
decir asignarles como tiempo de programaci on (o terminaci on) igual al tiempo que
se lleva la tarea.
2. Mientras queden tareas por programar:
a) La tarea t se programa si todas las tareas que preceden a t ya est an programadas.
b) Su tiempo de programaci on se calcula como la suma del tiempo que se lleva
la tarea t m as el m aximo tiempo de programaci on de entre las tareas que la
preceden.
3. El tiempo total mnimo que se lleva el proceso es el m aximo asignado a cualquiera
de los nodos.
Si trabajamos sobre la digr aca de la gura 5.1, podemos ver la ejecuci on de cada uno
de los pasos. Colocamos encima del nodo el valor asignado para la programaci on.
El Paso 1 nos indica que localicemos a las tareas que no tienen predecesores, y que son
la tarea A y la B. Procedemos a asignarles como tiempo de programaci on el que corres-
ponde a su tiempo de ejecuci on.
Figura 5.2 Programaci on de los eventos A y B de la digr aca 5.1
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
Al entrar a la iteraci on del algoritmo, el unico nodo que cumple con las condiciones
dadas es el nodo etiquetado con C, al que le corresponde el valor de 5, que es el m aximo
para programaci on de sus predecesores (3) sumado al tiempo que toma C (2).
206 Conceptos de teora de gr acas
Figura 5.3 Programaci on del evento C de la digr aca
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
5
Como C es el unico predecesor de G, D y H, estamos en condiciones de resolver el
tiempo requerido, desde el inicio del proyecto, para estas tres tareas:
Figura 5.4 Programaci on de los eventos D, G y E de la digr aca
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
5
8
9
8
La siguiente capa es la que corresponde a las tareas H y F, cuyos antecesores ya est an
resueltos:
5.1 Motivaci on 207
Figura 5.5 Programaci on de los eventos F y H de la digr aca
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
5
8
9
8
9
11
A continuaci on resolvemos el evento I, al que le asignamos un valor de 15, y con este
evento, y con el evento H podemos resolver el evento J y a continuaci on el evento K. Los
tiempos quedan asignados como se muestra en la gura 5.6.
Figura 5.6 Programaci on del resto de los eventos de la digr aca
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
2
3
5
8
9
8
9
11 13 15 25
De manera similar podemos obtener el tiempo de inicio de cada proyecto mediante el
siguiente algoritmo:
1. Marcar con 1 a todas las tareas que no tienen otra tarea que las preceda.
2. Se asigna tiempo de inicio a la tarea t si todas las tareas que la preceden tienen ya
tiempo de inicio asignado, usando la siguiente f ormula:
Inicio(t) = m axInicio(p) + Tiempo(p) con p predecesor de t
3. Termina cuando no haya tareas sin tiempo inicial asignado.
208 Conceptos de teora de gr acas
Colocaremos el tiempo inicial antes del tiempo nal, separ andolos con una diagonal,
en la gura 5.7.
Figura 5.7 Tiempos de inicio/n de cada tarea
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
1/2
1/3
4/5
6/8
6/9
6/8
9/9
10/11 12/13 14/15 16/25
A continuaci on queremos obtener aquellas tareas que son crticas para el proyecto, esto
es, que deben iniciar exactamente en cuanto sus predecesores terminan de ac a viene el
nombre de ruta crtica para este problema. Para ello, procedemos de la ultima tarea, la
que le da el tiempo total al proyecto, y regresamos marcando a las tareas que aportaron el
m aximo. Conforme vamos regresando, marcamos los arcos de la digr aca con lnea doble,
para identicar la ruta, y los nodos tambi en con lnea doble. El resultado se puede ver en la
gura 5.8.
Figura 5.8 Una de las rutas crticas del proyecto
A
3
C
2
D
4
F
2
I
2
J
2
K
10
B
2
E
3
G
3
H
1
1/2
1/3
4/5
6/8
6/9
6/8
9/9
10/11 12/13 14/15 16/25
5.1 Motivaci on 209
Otra informaci on que podemos sacar de esta digr aca es aquellas actividades que tienen
tiempo de sobra para empezar sus actividades. Es claro que las actividades que est an
sobre la ruta crtica no pueden perder tiempo y deben empezar exactamente cuando se les
tiene programadas, pues son las que m as tiempo se llevan. Pero aquellas actividades que no
est an en la ruta crtica pudiesen tener alguna holgura en su tiempo de inicio. Por ejemplo,
la actividad B podra no empezar el primer da, sino hacerlo hasta el segundo sin retrasar
el tiempo nal del proyecto. La actividad H, asimismo, pudiera empezar el noveno da o
bien esperarse hasta el da 13, y con eso estar lista en el da 14, que es cuando la actividad
J necesita que la actividad H est e terminada. Este tiempo de holgura lo podemos calcular
como el menor tiempo de inicio de sus sucesores. El c alculo empieza en las tareas que no
tienen sucesores y va hacia atr as. En la gura 5.9 se muestra a continuaci on del tiempo de
inicio, mediante el siguiente algoritmo:
1. Calcula el m aximo tiempo de inicio de las tareas que no tienen sucesores como el
tiempo de inicio qee tienen ya marcado.
2. El m aximo tiempo de inicio de una tarea que tiene sucesores se calcula como:
mInicio(t) = m

inInicio(s) Tiempo(t) con s tarea sucesora de p


Figura 5.9 Tiempos de inicio/ ultimo-inicio/n de cada tarea
B
2
A
3
C
2
E
3
G
3
D
4
H
1
F
2
I
2
J
2
K
10
1/1/2
1/2/3
4/4/5
6/10/8
6/6/9
6/7/8
9/13/9
10/10/11 12/12/13 14/14/15 16/16/25
En la tabla 5.2 en la siguiente p agina ponemos el ultimo da en que cada actividad puede
empezar.
210 Conceptos de teora de gr acas
Tabla 5.2 Margen de tiempos para el inicio de las actividades
Id. Tarea Tiempo Tareas precedentes Da 1 Da ult.
A. Elegir temas. 3 ninguna 1 1
B. Elegir arbitros 2 ninguna 1 2
C. Elegir conferencias magistrales 2 A y B 4 4
D. Dibujos alusivos 4 C 6 6
E. Redacci on de res umenes 3 C 6 7
F. Elaborar el folleto 2 D y E 10 10
G. Elaborar la lista de correo 3 C 6 10
H. Imprimir las etiquetas 1 G 9 13
I. Imprimir el folleto 2 F 12 12
J Pegar las etiquetas 2 H, I 14 14
K Repartir la propaganda 10 J 16 16
5.1.2. Asignaci on optima de recursos
Supongamos que tenemos una aerolnea que vuela a 7 distintas ciudades y cuenta con 7
pilotos. Cada piloto tiene sus preferencias respecto a d onde quiere volar. Cu al es la manera
de asignar a cada piloto a un vuelo, de tal manera que todos los pilotos vuelen a alguna
ciudad de su preferencia? A este problema se le conoce con el nombre de apareamiento
perfecto o acoplamiento perfecto (perfect matching en ingl es) y se representa tambi en con
una gr aca que se conoce como bipartita.
Veamos las preferencias de los pilotos respecto a las ciudades a las que quieren volar
en la tabla 5.3.
Tabla 5.3 Relaci on entre ciudades y pilotos
Ciudad Pilotos:
Monterrey Torres, Ju arez, Robles
Guadalajara Albarr an, Torres, Tamariz, Zepeda
Londres Torres, Tamariz, Zepeda
Manzanillo Albarr an, Tamariz, Robles, Ramrez
Canc un Ju arez, Zepeda, Robles
Huatulco Ju arez, Ramrez
Acapulco Torres, Robles, Ramrez
5.1 Motivaci on 211
Una gr aca bipartita es aqu ella en la que los v ertices est an partidos en dos conjuntos
ajenos y las aristas van siempre de v ertices en un conjunto a v ertices en el otro. En el caso
de acoplamiento, es natural que un conjunto sea, por ejemplo, el de los pilotos, mientras
que el otro conjunto es el de las ciudades a las que deben volar. La gr aca que corresponde
a la tabla 5.3 se encuentra en la gura 5.10
Figura 5.10 Gr aca bipartita que corresponde a la tabla 5.3
To Ju Ro Al Ta Ze Ra
Mo Gu Lo Ma Ca Hu Ac
No todos los problemas de asignaci on optima de recursos tienen soluci on. Por ejemplo,
si se limita a que cada elemento de una de las partes quede relacionado unicamente con
s olo uno de la otra parte, empezamos por pedir que el n umero de v ertices en una partici on
sea el mismo que en la otra. Aun as podra no tener soluci on.
Un algoritmo nos dice que tratemos de encontrar un camino que toque a cada v ertice
exactamente una vez y da otras pistas de d onde iniciar y cu ales son las caractersticas que
debe tener la gr aca bipartita para intentar armar el camino.
Habiendo dado ya una idea de por qu e las gr acas son un mecanismo de modelado util,
pasamos a explorar este concepto.
Ejercicios
5.1.1.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura (slack en ingl es) para cada una de las
actividades del proyecto. Indica tambi en cu al es el evento que se puede llevar a cabo
el primero y cu al es el ultimo evento en llevarse a cabo.
212 Conceptos de teora de gr acas
A
6
B
3
C
1
D
8
E
2
F
4
5.1.2.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura para cada una de las actividades del
proyectos. Indica tambi en cu al es el evento que se puede llevar a cabo el primero y
cu al es el ultimo evento en llevarse a cabo?
A
2
B
3
C
2
D
4
E
3
F
1
5.1.3.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura para cada una de las actividades del
proyectos. Indica tambi en cu al es el evento que se puede llevar a cabo el primero y
cu al es el ultimo evento en llevarse a cabo?
A
2
B
3
C
1
D
4
E
2
F
1
G
3
H
2
5.1 Motivaci on 213
5.1.4.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura para cada una de las actividades del
proyectos. Indica tambi en cu al es el evento que se puede llevar a cabo el primero y
cu al es el ultimo evento en llevarse a cabo?
S
2
A
3
B
4
E
4
C
3
D
7
F
2
H
3
G
5
T
3
J
5
I
17
5.1.5.- Encuentra la ruta crtica en la siguiente digr aca. Para ello, elabora la tabla de las
dependencias dadas por la digr aca y anota en dicha tabla el tiempo de inicio, el
tiempo nal y el tiempo disponible de holgura para cada una de las actividades del
proyectos. Indica tambi en cu al es el evento que se puede llevar a cabo el primero y
cu al es el ultimo evento en llevarse a cabo?
S
3
C
2
B
4
D
3
E
3
I
2
F
3
G
1
J
2
K
5
H
3
L
5
M
2
N
12
T
3
5.1.6.- En un taller de herrera se cuenta con dos m aquinas de tipo A, una m aquina de tipo
B y tres m aquinas de tipo C. El taller cuenta con 7 empleados con distinto manejo de
cada una de las m aquinas, como se muestra en la tabla siguiente:
214 Conceptos de teora de gr acas
Empleado Num. Sabe usar m aquina(s):
1 A
2 A,C
3 C
4 A,B
5 A,B,C
6 B
7 B,C
Construye la gr aca bipartita correspondiente a la tabla anterior.
5.1.7.- Da una asignaci on posible para el problema anterior que ocupe el mayor n umero
de m aquinas, un trabajador por m aquina. Cu antos turnos tendran que cubrirse para
que todos los trabajadores trabajen el mismo n umero de turnos en las m aquinas? Da
la organizaci on necesaria para que esto ultimo suceda.
5.1.8.- La siguiente gr aca es bipartita, aunque no se note. Dib ujala de tal manera que se
vea a simple vista que es bipartita.
A B
C D
E F
G H
5.1.9.- Dada la siguiente gr aca, argumenta por qu e NO es bipartita.
5.2 Conceptos y formalizaci on 215
A B
C D E
F G
5.1.10.- Dada la siguiente gr aca, decide si es bipartita o no. Si es bipartita, da la partici on
de los v ertices y si no lo es, explica por qu e esa partici on no se puede dar.
A
B
C
D
E
F G
5.2. Conceptos y formalizaci on
Como ya vimos, las gr acas nos sirven para modelar un sinfn de problemas de la vida
real, como lo son la programaci on de eventos, el si se puede llegar de una ciudad a otra, los
mapas, las relaciones presentes entre personas de un cierto grupo, la asignaci on de tareas,
y muchos m as. En este captulo revisaremos con m as cuidado el concepto matem atico de
gr aca y algunos de sus usos.
Denici on 5.1 Una gr aca G = (V, E) es una pareja que consiste de un conjunto no vaco de
puntos V, llamados los v ertices o nodos de la gr aca, y un segundo conjunto E de aristas,
que corresponden a una relaci on de parejas entre los v ertices, subconjunto de V V .
Los elementos de E reciben nombres, dependiendo de la forma que toma la pareja:
Denici on 5.2 Una arista es una pareja no ordenada de v ertices e = uv. Los v ertices u y v son los
extremos de la arista e y la representamos como uv = vu.
216 Conceptos de teora de gr acas
Denici on 5.3 Un lazo es una arista cuyos extremos son el mismo v ertice (uu).
Denici on 5.4 Un arco es una pareja ordenada, que representamos como uv,

uv o, simplemente,
(u, v). En el caso que estemos trabajando con arcos, al subconjunto del producto cartesiano
lo identicamos con A.
Denici on 5.5 Decimos que una gr aca tiene aristas m ultiples si es que hay m as de dos aristas con
los mismos extremos.
Podemos asignar nombres a las aristas o arcos. Dependiendo de las restricciones que
pudiese tener E (o A), las gr acas se clasican de la siguiente manera:
Denici on 5.6 Una gr aca simple es aquella que no tiene aristas m ultiples ni lazos.
Denici on 5.7 Una multigr aca es aquella que permite aristas m ultiples y lazos.
Denici on 5.8 Una gr aca dirigida o digr aca es aquella que se dene como G = (V, A), donde
el subconjunto del producto cartesiano V V corresponde a arcos; en este caso es claro
que (u, v) ,= (v, u).
Los t erminos gr aca simple o multigr aca se pueden aplicar a digr acas, sustituyendo
simplemente a las aristas por arcos. Utilizaremos el t ermino gen erico de gr aca cuando
no distingamos entre gr acas simples o multigr acas; en el mismo sentido utilizaremos
digr acas cuando hablemos de los distintos tipos de gr acas dirigidas.
Solemos representar a las gr acas pintando un punto o crculo peque no por cada v ertice
y una lnea que une a dos de estos para las aristas. Podemos ver distintas representaciones de
gr acas en la gura 5.11. En ella se muestran tres de las posibles variaciones que podemos
darle a la representaci on, que incluyen nombrar o no a las aristas o v ertices de la gr aca y
la manera como elegimos representar a los v ertices.
Figura 5.11 Algunas representaciones con guras (visuales) de gr acas (1/2)
(a)
v
1
v
2
v
3
v
4
v
5
V = v
1
, v
2
, v
3
, v
4
, v
5
,
E =
_
v
1
v
3
, v
1
v
5
, v
1
v
2
,
v
2
v
4
, v
2
v
5
, v
4
v
5
,
v
3
v
5
_
(b)
A
B
C
D
E
V = A, B, C, D, E,
E =
_
AC, AB, AE,
BD, BE, CE, DE
_
5.2 Conceptos y formalizaci on 217
Figura 5.11 Algunas representaciones con guras (visuales) de gr acas (2/2)
(c)
A
B
C
D
E
e
1
e
2
e
3
e
4
e
5
e
6
e
7
V = A, B, C, D, E,
E = e
1
, e
2
, e
3
, e
4
, e
5
, e
6
, e
7

El que la pareja sea no ordenada quiere decir que las parejas uv y vu representan
a la misma arista, pues aparecen los mismos v ertices, no importa en qu e orden. En la
gura 5.11, tenemos a las aristas sin nombre en las gr acas de las guras 5.11(a) y 5.11(b),
mientras que las aristas en la subgura 5.11(c) s tienen nombre (en los tres casos est an
listadas abajo de la gr aca).
Denici on 5.9 Dos v ertices u y v son adyacentes si la arista e = uv E; dicho de otra manera, si
existe una arista en E cuyos extremos son u y v.
En las gr acas de la gura 5.11 los v ertices A y B, por ejemplo, son adyacentes, lo
mismo que los v ertices A y C; y A y E. Los v ertices B y C, en cambio, no son adyacentes
ya que no hay ninguna arista que los conecte.
Denici on 5.10 Una arista e es incidente en un v ertice v si v es uno de los extremos de la arista.
En la gr aca de la gura 5.11(c) la arista e
4
es incidente en los v ertices B y D.
En la gura 5.12 presentamos distintas maneras de dibujar una digr aca. En el caso de
las digr acas los arcos se representan en los dibujos como echas con la direcci on deseada.
La relaci on entre aristas y v ertices est a dada por el grado de un v ertice:
Denici on 5.11 El grado de un v ertice, denotado por grado(v), es el n umero de aristas incidentes
en el v ertice.
En la gr aca de la gura 5.11(c) el grado del v ertice A es 3, que corresponde a las
aristas e
1
, e
2
y e
3
, mientras que el grado del v ertice D es 2 que corresponde a las aristas e
4
y e
7
.
En digr acas hablamos del exgrado(v) e ingrado(v) que corresponde, respectivamente,
al n umero de arcos que salen de v y al n umero de arcos que entran a v.
218 Conceptos de teora de gr acas
Figura 5.12 Representaci on de gr acas dirigidas
(a)
v
1
v
2
v
3
v
4
v
5
V = v
1
, v
2
, v
3
, v
4
, v
5
,
E = v
1
v
4
, v
4
v
5
, v
2
v
1
,
v
4
v
3
, v
3
v
2
, v
3
v
5

(b)

A
B
C
D
E
V = A, B, C, D, E,
E = AD, DE, BA,
DC, CB, CE
(c)
A
B
C
D
E
a
1
a
2
a
3
a
4
a
5
a
6
V = A, B, C, D, E,
A = a
1
, a
2
, a
3
, a
4
, a
5
, a
6

El n umero de aristas de una gr aca est a ntimamente relacionado con el grado de los
v ertices. Esta relaci on se presenta en el teorema 5.1.
Teorema 5.1 En una gr aca, la suma de los grados de los v ertices es igual a dos veces el n umero de
aristas:

vV
grado(v) = 2 [E[
donde [E[ denota al n umero de elementos de E, la cardinalidad de E.
5.2 Conceptos y formalizaci on 219
Demostraci on. Cada arista incide en dos v ertices, por lo que si se cuentan los v ertices en los que inciden
las aristas
_
grados
_
, cada arista ser a contada dos veces.
Otra demostraci on de este teorema, y que utiliza la inducci on estructural que ya vimos
y que es muy com un en teora de gr acas, se plantea como sigue:
(a) Demostramos primero el caso para una gr aca con 1 v ertice y 0 aristas (ver en la
gura 5.13 el caso G = (v, )). El grado de este v ertice es 0; el n umero de aristas
tambi en es 0, por lo que se cumple
0 = 2 [E[ =

vV
grado(v) = 0
Figura 5.13 G = (v, )
v
(b) Observemos una gr aca con n 2 v ertices. Quit emosle un v ertice (con todas las
aristas que inciden en el) ver gura 5.14 .
Figura 5.14 Inducci on estructural en gr acas
La gr aca resultante (encuadrada con lnea punteada) cumple con la hip otesis de
inducci on de que la suma de los grados de los v ertices es dos veces el n umero de
aristas. Repongamos el v ertice que quitamos, junto con sus aristas. Por cada arista
que agregamos, dos v ertices ven incrementado sus grados en una unidad el que
estamos reinsertando y aquel al que llega la arista . Supongamos que el grado del
v ertice reinsertado es k. Entonces tenemos
n

i=1
grado(v
i
) =
_
n1

i=1
grado(v
i
)
_
+ 2 k = 2 ([E[ k) + 2 k = 2 [E[
220 Conceptos de teora de gr acas
Teorema 5.2 En una gr aca cualquiera, existe un n umero par de v ertices de grado impar.
Demostraci on. Por el teorema anterior sabemos que

vV
grado(v) = 2[E[. Separemos esta suma
entre los v ertices de grado par y los de grado impar:
Sea V
p
= v V [grado(v) es par
y V
i
= v V [grado(v) es impar
Entonces

vV
grado(v) =

vVp
grado(v) +

vV
i
grado(v) = 2[E[
La suma total es par; la suma de pares es par (de la primera parte) y, para que el resultado
sea par, la segunda parte tambi en tiene que ser par. Si el n umero de v ertices de grado
impar fuera impar, el resultado sera impar, por lo que el n umero de v ertices de grado
impar tiene que ser par.
Tenemos ciertos tipos de gr acas que tienen una determinada relaci on entre sus v ertices
y sus aristas.
Denici on 5.12 Una gr aca completa con n v ertices, denotada por K
n
, es aqu ella donde cada v erti-
ce es adyacente a cualquier otro v ertice de la misma gr aca.
En la gura 5.15 vemos algunos ejemplos de gr acas completas.
Figura 5.15 Ejemplos de gr acas completas
(a) K
4
v
1
v
2
v
3
v
4
(b) K
6
v
1
v
2
v
3
v
4
v
5
v
6
5.2 Conceptos y formalizaci on 221
Otro tipo de gr acas distinguidas son aquellas que forman una especie de anillo, donde
cada v ertice tiene grado 2 y se puede llegar de cualquier v ertice a cualquier otro simple-
mente recorriendo el anillo. A estas gr acas se les conoce como C
n
, donde la C est a por
ciclo y la n denota el n umero de v ertices. En la gura 5.16 se muestran varias de estas
gr acas.
Figura 5.16 Ejemplos de ciclos
(a) C
3
v
1
v
2
v
3
(b) C
6
v
1
v
2
v
6
v
3
v
5
v
4
(c) C
4
v
1
v
2
v
4
v
3
Las gr acas C
n
presentan tambi en algunas propiedades, como son que el grado de todos
sus v ertices es 2 y que el n umero de aristas en una gr aca C
n
es n.
Cuando denamos lo que es un camino entre dos v ertices regresaremos brevemente a
las gr acas C
n
.
Otro tipo de gr aca que ya vimos y que resulta muy importante para toda una clase de
problemas, la optimizaci on de asignaci on de recursos, son las gr acas bipartitas.
Denici on 5.13 (Gr aca bipartirta) Una gr aca bipartita es aquella en la que podemos partir al
conjunto de los v ertices en dos subconjuntos ajenos, de tal manera que todas las aristas van
de v ertices de un conjunto a v ertices del otro subconjunto (esto es, no hay aristas entre los
v ertices de un mismo subconjunto).
De esta denici on queda claro que no importa c omo se dibuje la gr aca, siempre se pue-
de redibujar de tal manera que tengamos dos hileras de v ertices, una por cada subconjunto.
En la gura 5.17 se muestran varias gr acas bipartitas.
Figura 5.17 Gr acas bipartitas (1/2)
(a)
b
a
e
d
c
g
f
h
a
b f
g
c
d
e
h
222 Conceptos de teora de gr acas
Figura 5.17 Gr acas bipartitas (2/2)
(b)
a
b
c
d
e
b
c
d
e
a
(c)
a
b
c
d
e
f
g
h
a c
d
e f
h
b
g
Tambi en entre las gr acas bipartitas podemos tener gr acas completas y se representan
como K
m,n
, donde la m y la n nos denotan el n umero de v ertices en cada subconjunto. En
el caso de gr acas bipartitas, lo completo se reere a que cada v ertice de un subconjunto es
adyacente a todos los v ertices del otro subconjunto. En la gura 5.18 podemos ver algunas
gr acas bipartitas completas.
Figura 5.18 Gr acas bipartitas completas (1/2)
(a) /
3,2
a
b
c
d
e
(b) /
4,4
a
b
c
d
e f
g
h
5.2 Conceptos y formalizaci on 223
Figura 5.18 Gr acas bipartitas completas (2/2)
(c) /
6,2
a
b
c
d
e
f
g
h
(d) /
2,2
a
b
c
d
a
b
c
d
Denimos tambi en lo que es una subgr aca, concepto que utilizaremos ampliamente
en el resto de este captulo.
Denici on 5.14 (Subgr aca) Sea G = (V, E) una gr aca. Una subgr aca G

= (V

, E

) de G es
una gr aca tal que V V

y E E

. En otras palabras, se eliminan cero o m as v ertices


y cero o m as aristas de la gr aca original. Entre las aristas que se eliminan tienen que estar
aquellas aristas incidentes en los v ertices eliminados.
Esto es, una subgr aca G

de una gr aca G es aquella que resulta de quitar de la gr aca


original algunos v ertices, junto con todas las aristas que inciden en estos v ertices, y algunas
aristas m as. Ya utilizamos el concepto de subgr aca en la demostraci on por inducci on
estructural del teorema 5.1. En la gura 5.19 presentamos varias gr acas y a su derecha
algunas de sus subgr acas.
Figura 5.19 Gr acas con algunas de sus subgr acas (1/2)
(a)
a
b
c
d
e
f
g
h
a
b
c
e
g
a
b
c
f
g
h
224 Conceptos de teora de gr acas
Figura 5.19 Gr acas con algunas de sus subgr acas (2/2)
(a)
v
1
v
2
v
3
v
4
v
5
v
6
v
1
v
2
v
3
v
5
v
6
v
1
v
2
v
5
v
6
Nos van a interesar ciertos tipos de subgr acas, que denimos a continuaci on:
Denici on 5.15 Una subgr aca de una gr aca G inducida por un subconjunto de v ertices A es
aquella que resulta de eliminar algunos v ertices de la gr aca y, junto con esos v ertices,
eliminar exclusivamente las aristas incidentes en los v ertices eliminados; se denota como
G[A] (o m as raramente GA)). Similarmente, una subgr aca inducida por un subconjun-
to de aristas es aquella que resulta de eliminar algunas aristas y, junto con esas aristas,
aquellos v ertices que resultan no ser adyacentes a ning un otro v ertice de la gr aca una vez
eliminadas las aristas seleccionadas.
En la gura 5.20 presentamos varias gr acas y a su derecha algunas de sus subgr acas
inducidas. En la subgura 5.20(a) vemos subgr acas generadas por un subconjunto de
los v ertices originales. Se eliminan exclusivamente las aristas incidentes en los v ertices
eliminados. En la subgura 5.20(a) vemos subgr acas inducidas por un subconjunto de
aristas, donde se eliminan aquellos v ertices que quedan sin ninguna arista incidente en
ellos.
Figura 5.20 Gr acas con algunas de sus subgr acas inducidas (1/2)
(a) Subgr acas inducidas por subconjuntos de v ertices
a
b
c
d
e
f
g
h
b
d
e
g
a
b
c
f
g
h
5.2 Conceptos y formalizaci on 225
Figura 5.20 Gr acas con algunas de sus subgr acas inducidas (2/2)
(a) Subgr acas inducidas por subconjuntos de aristas
v
1
v
2
v
3
v
4
v
5
v
6
e1
e2
e3
e4
e5
e6 e7
e8
e9
e10
e11
v
1
v
2
v
3
v
4
v
5
v
6
v
1
v
2
v
5
v
6
En la segunda gr aca de la subgura 5.20(a), al eliminar a las aristas e
3
, e
6
, e
10
y e
11
,
ning un v ertice queda aislado, por lo que no se elimina ninguno de la subgr aca. En cambio,
en la tercera gr aca de esta misma subgura, al eliminar a todas las aristas incidentes en v
3
y v
4
, se eliminan tambi en estos dos v ertices.
Otro concepto importante relacionado con el de subgr acas es el de subgr aca genera-
dor
1
que se dene como sigue:
Denici on 5.16 (Subgr aca generadora) Sea G = (V, E) una gr aca no dirigida. Una subgr a-
ca generadora es una subgr aca G

= (V, E

) de G tal que contiene a todos los v ertices de


G y E

E.
La idea con una subgr aca generadora es que est en presentes todos los v ertices de
la gr aca original. En la gura 5.21 podemos ver a una gr aca con dos de sus gr acas
generadoras.
Figura 5.21 Gr aca con subgr acas generadoras
(a)
v
1
v
2
v
3
v
4
v
5
v
6
(b)
v
1
v
2
v
3
v
4
v
5
v
6
(c)
v
1
v
2
v
3
v
4
v
5
v
6
1
En ingl es spanning subgraph.
226 Conceptos de teora de gr acas
Ejercicios
5.2.1.- Dada la siguiente gr aca, especica cu ales son sus conjuntos V y E.
a
b
c
d
e f
g
5.2.2.- Dada la siguiente gr aca, especica cu ales son sus conjuntos V y E.
v
1
v
2
v
3
v
4
v
5
v
6
5.2.3.- Dada la siguiente gr aca dirigida, especica cu ales son sus conjuntos V y A.
A
B
C
D
E
F
G
H
I
5.2 Conceptos y formalizaci on 227
5.2.4.- Dados los siguientes conjuntos, dibuja la gr aca a la que corresponden.
V =
_
v
1
, v
2
, v
3
, v
4
, v
5
, v
6
_
E =
_
v
1
v
2
, v
2
v
4
, v
2
v
5
, v
2
v
3
, v
2
v
6
,
v
4
v
3
, v
6
v
3

5.2.5.- Dibuja una gr aca tal que [V [ = 5 y [E[ = 6.


5.2.6.- Dibuja una gr aca dirigida tal que [V [ = 6 y [A[ = 9.
5.2.7.- Determina el grado de cada v ertice en las siguientes gr acas:
(a)
v
1
v
2
v
3
v
4
v
5
v
6
(b)
v
1
v
2
v
3
v
4
v
5
v
6
5.2.8.- Determina el exgrado e ingrado de cada v ertice en las siguientes gr acas dirigidas:
(a)
v
1
v
2
v
3
v
4
v
5
v
6
(b)
v
1
v
2
v
3
v
4
v
5
228 Conceptos de teora de gr acas
5.2.9.- Explica por qu e no puede haber una gr aca con un n umero impar de v ertices, cada
uno de ellos con grado impar.
5.2.10.- Dibuja las gr aca que corresponden a K
2
, K
3
y K
5
.
5.2.11.- Usando la propiedad de que los v ertices en las gr acas C
n
, n > 2, tienen todos
grado 2, demuestra que el n umero de aristas en una gr aca C
n
es n.
5.2.12.- Dada la siguiente gr aca, dibuja dos subgr acas generadoras distintas.
a
b
c
d
e
f
g
h
5.3. Representaci on de gr acas para su manipulaci on
En esta secci on trabajaremos unicamente con gr acas simples y nos referiremos a ellas
simplemente como gr acas. Para poder manipular las gr acas desde alguna aplicaci on en
una computadora tenemos que contar con alguna representaci on m as descriptiva que la de
los dibujos. Si bien los dibujos funcionan muy bien para el ojo humano, las computadoras
no trabajan bien con im agenes de conjunto. La denici on matem atica de lo que es una
gr aca resulta ser mucho m as manejable. En esta secci on presentaremos varias opciones de
representaci on que se prestan bien para la manipulaci on de gr acas a trav es de algoritmos.
5.3.1. Matriz de adyacencias
La matriz de adyacencias para una gr aca con n v ertices es una matriz cuadrada de
nn, tal que el elemento m
i,j
de la matriz, que denota al rengl on i, columna j, est a denido
5.3 Representaci on de gr acas para su manipulaci on 229
de la siguiente manera:
m
i,j
=
_
1 si e = v
i
v
j
E
0 si e = v
i
v
j
/ E
Veamos en la gura 5.22 una gr aca con su correspondiente matriz de adyacencias.
Figura 5.22 Representaci on de gr acas con matriz de adyacencias
(a)
0 1 1 1 0 0 0
1 0 1 0 0 0 0
1 1 0 0 1 1 0
1 0 0 0 1 0 0
0 0 1 1 0 0 1
0 0 1 0 0 0 1
0 0 0 0 1 1 0
v
1
v
2
v
3
v
4
v
5
v
6
v
7
v
1
v
2
v
3
v
4
v
5
v
6
v
7
( )
(b)
1 2
3
4 5
6
7
Esta representaci on particular presenta propiedades que pudiesen contestar r apidamente
a preguntas que quisi esemos hacernos respecto a una gr aca particular.
Teorema 5.3 La suma de las entradas en el rengl on i de una matriz de adyacencias corresponde al
grado del v ertice v
i
.
Demostraci on.
Observemos el rengl on de cualquier v ertice, digamos v
i
. Cada 1 que aparece es porque el
v ertice de la columna j, v
j
, es adyacente a el. Por lo tanto, el n umero de 1s en el rengl on
i indica el n umero de v ertices distintos de v
i
que son adyacentes a el. Como cada entrada
vale 1, la suma de estas entradas es precisamente el n umero de v ertices adyacentes a el,
o sea grado(v
i
).
La matriz de adyacencias de una gr aca presenta las siguientes propiedades:
Denici on 5.17 Decimos que una matriz es cuadrada si tiene el mismo n umero de renglones que
de columnas.
Las matrices de adyacencias son cuadradas porque tienen un rengl on para cada v ertice
y una columna para cada v ertice, por lo que el n umero de renglones es el mismo que el n
umero de columnas.
230 Conceptos de teora de gr acas
Denici on 5.18 Decimos que una matriz es sim etrica si
i, j, 0 i, j < [V [, m
i,j
= m
j,i
.
Para que una matriz sea sim etrica debe ser cuadrada.
Denici on 5.19 La diagonal principal de una matriz (cuadrada) es el vector que corresponde a los
elementos m
i,i
de la matriz.
Como estamos trabajando con gr acas simples, la diagonal principal de una matriz de
adyacencias es de ceros, ya que no tenemos ning un lazo en la gr aca. Tambi en es importan-
te notar que las matrices de adyacencias son siempre sim etricas: si tenemos una arista que
va del v ertice i al v ertice j (m
i,j
= 1), tambi en tendremos a esa misma arista (recordemos
que estamos trabajando con gr acas simples) que va del v ertice j al v ertice i (por lo que
m
i,j
= m
j,i
= 1).
Es conveniente mencionar que, dada esta simetra en las matrices de adyacencias, el
teorema 5.3 se cumple tambi en si sustituimos columna donde dice rengl on.
5.3.2. Matriz de incidencias
En esta representaci on tenemos tambi en una matriz, pero ahora es de n = [V [ renglones
por m = [E[ columnas, donde en cada posici on (i, j) se anota si la arista j es incidente en
el v ertice i. Las ventajas que tiene esta representaci on es que podemos tener m as de una
arista entre dos v ertices (multigr aca). Las entradas de la matriz quedan de la siguiente
forma:
m
i,j
=
_
0 si e
j
no incide en v
i
1 si e
j
incide en v
i
Si le ponemos nombres a las aristas de la gr aca anterior, la matriz de incidencias quedara
como se ve en la gura 5.23.
Figura 5.23 Representaci on de gr acas con matriz de incidencias
(a)
1 1 1 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0
0 1 0 1 1 0 1 0 0
0 0 1 0 0 1 0 0 0
0 0 0 0 1 1 0 1 0
0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 1 1
a
b
c
d
e f
g
h i
v
1
v
2
v
3
v
4
v
5
v
6
v
7
( )
(b)
v
1
v
2
v
3
v
4
v
5
v
6
v
7
a
b
c
d
e
f
g
h
i
5.3 Representaci on de gr acas para su manipulaci on 231
En esta representaci on es un poco m as complicado conocer cu ales son los v ertices adya-
centes a un v ertice dado. Si queremos saber, por ejemplo, cu ales son los v ertices adyacentes
al v ertice v
3
, observamos cada columna del rengl on correspondiente a v
3
en la que haya un
1, indicando que la arista e
j
es incidente en ese v ertice. Las columnas correspondientes son
la b, d, e y g. A continuaci on revisamos cada una de estas columnas y aquel rengl on distinto
del correspondiente a v
3
en el que haya un 1, corresponde a un v ertice adyacente al v ertice
v
3
; en la columna b es v
1
; en la columna d es v
2
; en la columna e es v
5
y en la columna g es
v
8
.
Sin embargo, a la pregunta de si una arista es o no incidente en un v ertice la respuesta
se obtiene simplemente revisando la entrada correspondiente de la matriz.
De esta representaci on obtenemos r apidamente la informaci on respecto al grado de un
v ertice, ya que corresponde al n umero de aristas incidentes en el.
Lema 5.1 En una gr aca representada por una matriz de incidencias, el grado del v ertice v
i
est a da-
do por la suma de las entradas del rengl on i en la matriz.
La demostraci on de este lema se deja como ejercicio.
El n umero de aristas en la gr aca tambi en se obtiene de manera inmediata de esta
representaci on, ya que corresponde al n umero de columnas de la matriz.
5.3.3. Listas de adyacencias
Cuando representamos a una gr aca a trav es de una matriz, sea esta de adyacencias
o incidencias, se tiene la sensaci on de que se desperdicia mucho lugar en la matriz. Por
ejemplo, si los v ertices, en general, tienen un grado menor a la mitad del n umero de v ertices
(v V, grado(v) < [V [), la matriz va a tener m as ceros que unos. Si estamos hablando
de una matriz de incidencias, cada columna tiene a lo m as dos entradas con 1 y el resto con
0. Las entradas que realmente tienen informaci on son las que tienen 1, por lo que decimos
que la densidad de la matriz es baja (a matrices con esta distribuci on de informaci on se les
conoce como matrices ralas y a las gr acas correspondientes tambi en se les llama gr acas
ralas porque tienen pocas aristas).
Si en lugar de una posici on para cada combinaci on posible, listamos unicamente aque-
llas entradas que sean distintas de 0, y si la matriz es rala, podemos ahorrar muchsimo es-
pacio. Por ejemplo, si la gr aca tiene 1,000 v ertices que representan, digamos, a todos los
pueblos por los que pasan todas las carreteras del pas, pero cada pueblo est a conectado a,
digamos, un m aximo de 6 pueblos distintos a el, con las listas de adyacencias ocuparamos
algo as como 12,000 lugares
2
, mientras que con la matriz de adyacencias ocuparamos
1,000,000 de lugares.
2
En una lista se ocupan dos espacios por cada elemento, uno para el elemento mismo y otro como refe-
rencia al que sigue en la lista.
232 Conceptos de teora de gr acas
La representaci on con listas de adyacencias es como sigue: se usan n = [V [ listas,
una para cada v ertice. Estas listas pueden estar en un vector, de tal manera que la lista
correspondiente al i- esimo v ertice se encuentre a partir de la posici on i del vector. A partir
de ah, vamos colocando en la lista del v ertice i a cada uno de los v ertices adyacentes a
el. Para que el tama no de cada lista pueda ser variable, cada elemento de la lista tiene una
referencia (apuntador, liga) al siguiente v ertice adyacente, o bien una referencia nula si este
es el ultimo v ertice de la lista.
Figura 5.24 Representaci on de gr acas con listas de adyacencias
(a)
v
1
v
2
v
3
v
4
v
2
v
1
v
3
v
3
v
1
v
2
v
5
v
6
v
4
v
1
v
5
v
5
v
3
v
4
v
7
v
6
v
3
v
7
v
7
v
5
v
6
(b)
1 2
3
4 5
6
7
a
b
c
d
e
f
g
h
i
En el caso de la gr aca que nos ocupa, para cada v ertice v
i
, armamos una sucesi on (una
lista) con todos los v ertices que son adyacentes a el. Nuevamente utilizamos a la gr aca de
la gura 5.23 para construir la lista de adyacencias en la gura 5.24.
Esta representaci on resulta apropiada para recorrer gr acas, pues se pueden ir elimi-
nando de las listas para cada v ertice a aquellos v ertices que se van alcanzando. Asimismo,
es f acil recorrer aristas pues se va de v ertice en v ertice de manera pr acticamente directa.
Las respuestas a las preguntas relacionadas con los grados de los v ertices se obtienen
de manera muy eciente, pues se cuentan los elementos presentes en cada una de las listas.
Averiguar si dos v ertices son o no adyacentes puede ser un poco m as costoso, pues hay que
recorrer toda la lista de uno de los v ertices antes de decidir que el otro v ertice no aparece en
esa lista, mientras que en la representaci on de matriz de adyacencias la respuesta se obtiene
simplemente viendo la entrada correspondiente de la matriz.
Esta representaci on es la preferida para la mayora de los algoritmos que pretenden
explorar una gr aca.
5.3 Representaci on de gr acas para su manipulaci on 233
5.3.4. Listas de incidencias
En la representaci on de gr acas mediante listas de incidencias seguimos una l ogica
parecida a la que usamos para las listas de adyacencias: unicamente vamos a listar, para
cada v ertice, aquellas aristas que son incidentes a ese v ertice. La diferencia principal es
que en lugar de que aparezcan los v ertices adyacentes aparecen las aristas incidentes.
En la gura 5.25 mostramos la codicaci on de la gr aca que hemos estado manejando.
Figura 5.25 Representaci on de gr acas con listas de incidencias
(a)
v
1 a
b
c
v
2 a
d
v
3 b d
e
g
v
4 c f
v
5 e f
h
v
6
g
i
v
7 h i
(b)
1 2
3
4 5
6
7
a
b
c
d
e
f
g
h
i
Nuevamente en esta representaci on obtenemos informaci on de manera eciente respec-
to a los grados de los v ertices de la gr aca. Para saber cu ales son los v ertices adyacentes
a un v ertice dado deberemos contar con otra estructura de datos que nos indique cu ales
son los extremos de las aristas listadas. Si bien esto requiere de m as espacio, el tiempo
requerido para responder a esta pregunta tambi en es constante, por lo que se considera una
operaci on eciente.
Cada una de estas representaciones tiene ventajas y desventajas. Es claro que la elecci on
de representaci on va a depender del tama no de la gr aca (podemos pensar en gr acas con
un n umero muy grande de v ertices), de qu e tan conectados est en los v ertices entre s (si
hay una gran cantidad de conexiones entre los v ertices o la gr aca es completa, la matriz
resultar a densa y por lo tanto con poco desperdicio), de cu ales sean las preguntas que nos
hagamos respecto a ella y, nalmente, de cu ales son los algoritmos que queramos ejecutar
sobre la gr aca.
234 Conceptos de teora de gr acas
Ejercicios
5.3.1.- Demuestra el lema 5.1.
5.3.2.- Cuenta el n umero de observaciones que se tienen que hacer en una gr aca repre-
sentada por una matriz de adyacencias para determinar el grado de cada uno de los
v ertices de la gr aca.
5.3.3.- Explica c omo se obtienen los extremos de una arista dada en cada una de las repre-
sentaciones que dimos.
5.3.4.- Para la siguiente gr aca, da su representaci on como matriz de adyacencias, matriz
de incidencias, listas de adyacencias y listas de incidencias.
v
4
v
5
v
3
v
1
v
2
a
b
c
d
e
f g
h
5.3.5.- Explica por qu e las listas de adyacencias y las listas de incidencias tienen exacta-
mente el mismo n umero de elementos rengl on por rengl on.
5.3.6.- Con cu al de las codicaciones se pueden representar lazos, o sea aristas que salen
y llegan al mismo v ertice?
5.3.7.- Dada las siguientes listas de adyacencias, dibuja una gr aca que corresponda a estas
listas.
Listas de adyacencias:
v
1
v
2
v
5
v
6
v
2
v
1
v
3
v
6
v
3
v
2
v
4
v
6
v
4
v
3
v
5
v
6
v
5
v
1
v
4
v
6
v
6
v
1
v
2
v
3
v
4
v
5
5.3 Representaci on de gr acas para su manipulaci on 235
5.3.8.- Dada la siguiente matriz de adyacencias, dibuja una gr aca que tenga a esa matriz
como representaci on.
_
_
_
_
_
_
_
_
_
_
1 1 1 0 0 0
1 1 0 1 0 0
1 0 0 0 1 0
0 1 0 0 0 1
0 0 1 0 1 1
0 0 0 1 1 1
_
_
_
_
_
_
_
_
_
_
5.3.9.- Dibuja una gr aca que corresponda a la siguiente matriz de adyacencias:
_
_
_
_
_
_
_
_
0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
_
_
_
_
_
_
_
_
5.3.10.- C omo identicas en una matriz de adyacencias a una gr aca C
n
?
5.3.11.- C omo identicas en una matriz de adyacencias a una gr aca K
n
?
5.3.12.- En una gr aca no dirigida bastara con registrar la mitad de la matriz de adyacen-
cias, ya que la matriz es sim etrica: lo que est a bajo la diagonal se repite arriba de la
diagonal. Justica esta aseveraci on.
5.3.13.- C omo identicas en una matriz de adyacencias una gr aca que tiene al menos un
lazo?
5.3.14.- En las listas de incidencias que corresponde a una gr aca no dirigida, cu antas
veces aparece cada arista?
5.3.15.- Qu e cambios hay que hacer a una matriz de adyacencias para poder representar
a una gr aca dirigida?
5.3.16.- Dada la siguiente matriz de adyacencias que corresponde a una gr aca dirigida,
dibuja una gr aca que corresponda a esta matriz.
236 Conceptos de teora de gr acas
_
_
_
_
_
_
_
_
_
_
0 1 0 1 0 0
1 1 0 1 1 0
0 0 1 0 0 1
1 0 1 0 1 0
0 0 1 0 0 1
0 0 0 1 0 0
_
_
_
_
_
_
_
_
_
_
5.3.17.- Dadas las siguientes listas de incidencias, dibuja una gr aca dirigida que corres-
ponda a estas listas.
arco v ertice v ertice
origen destino
a v
1
v
2
b v
2
v
4
c v
1
v
4
d v
4
v
7
e v
1
v
3
f v
3
v
1
g v
2
v
5
h v
5
v
4
i v
3
v
6
j v
6
v
4
v
1
v
2
v
3
v
4
v
5
v
6
v
7
a c e
b
g
f i
d
h
j
5.3.18.- Revisa cada una de las representaciones posibles y discute la manera en que se
logra invertir la direcci on de todos los arcos en la gr aca dirigida del ejercicio 17.
5.4. Isomorsmo entre gr acas
Como pudimos observar en los ejercicios de la secci on anterior, hay m as de una manera
de dibujar una misma gr aca recordemos que el t ermino gr aca corresponde al ente ma-
tem atico . C omo podemos determinar que dos dibujos corresponden a la misma gr aca?
Por qu e el inter es de determinar esto?
Muchas veces tenemos dos problemas aparentemente distintos, pero que denotan a
gr acas similares (o a la misma gr aca). En estos casos, la soluci on a uno de los problemas
5.4 Isomorsmo entre gr acas 237
de manera autom atica nos proporciona la soluci on a todos los problemas que tengan a la
misma gr aca, aunque sus gr acas respectivas est en dibujadas o especicadas de manera
distinta. Revisemos un caso donde esto sucede.
Por ejemplo, supongamos que tenemos cinco materias en la carrera de Ciencias de
la Computaci on; de cada materia se reciben cuatro solicitudes cada semestre y existen
colisiones entre los profesores que desean impartir estas materias, como se muestra en la
tabla 5.4:
Tabla 5.4 Grupos para las materias de CC
Materia Profesores:
Matem aticas Discretas Macas Hern andez Guerrero Reyes
Teora de la Computaci on Viso Reyes Macas Hern andez
Lenguajes de Programaci on Solsona Ramrez Viso Oktaba
ICC1 Solsona Pel aez Hern andez L opez
Bases de datos Garca L opez Ramrez Sugawara
Podemos pensar en una gr aca donde cada v ertice es una de las materias o uno de
los profesores; la materia a es adyacente al profesor B si es que el profesor B solicita la
materia a. La gr aca queda como se muestra en la gura 5.26.
Figura 5.26 G
1
para las materias de CC
Guerr Maca Viso Oktab Ramr
Sugaw
Reyes
Hern a Pel ae Solso L opez
Garc
MD TC ICC1 LP BD
Es conveniente notar que no hay aristas entre profesores, ya que, como est a dibujado,
las materias y los profesores corresponden a categoras distintas.
238 Conceptos de teora de gr acas
Tambi en en matem aticas se consideran cinco materias y las solicitudes para ellas. La
relaci on est a dada por la tabla 5.5 y la gr aca correspondiente se encuentra en la gura 5.27.
La gr aca que corresponde a esta tabla se encuentra en la gura 5.27.
Tabla 5.5 Materias en Matem aticas
Materia Profesores:

Algebra Superior I G omez Magidin Miranda Tom e

Algebra Superior II Lascur ain S aenz Rosas Tom e


Geometra Analtica I Guerrero Hern andez Torres Lascur ain
Geometra Analtica II Barrera Guerrero Lascur ain Torres
C alculo Dif e Int I Abrn G omez Hern andez Rosas
Figura 5.27 Gr aca correspondiente a las materias de matem aticas
Magidin ASI Miranda
S aenz Tom e Rosas G omez
AS II Hern andez CDI-I Abrn
Lascur ain
Geometra I Barrera
Guerrero
Geometra II
Torres
Aunque estas dos gr acas, a simple vista, no se parecen, podemos encontrar, por ejem-
plo, que las podramos dibujar igual. En general, podemos encontrar que el n umero de
v ertices y aristas es el mismo, y que por cada v ertice con grado k en una de las gr a-
cas existe un v ertice con el mismo grado en la otra. Si vericamos otra condici on m as, que
consiste en que las relaciones de adyacencia se mantengan, decimos entonces que podemos
denir un isomorsmo entre ambas gr acas.
Denici on 5.20 Una gr aca G
1
= (V
1
, E
1
) es isomorfa a una gr aca G
2
= (V
2
, E
2
) si es que
podemos hacer una correspondencia 1 a 1 entre los v ertices (una funci on biyectiva de los
v ertices de G
1
a los v ertices de G
2
), f : V
1
V
2
de tal manera que
uv E
1
f(u)f(v) E
2
5.4 Isomorsmo entre gr acas 239
Es f acil corroborar que existen el mismo n umero de v ertices y de aristas en las dos
gr acas de las guras 5.26 y 5.27; asimismo, tambi en se preserva el n umero de v ertices
con grado 1, 2 y as sucesivamente, como se puede ver en la tabla 5.6.
Tabla 5.6 Condiciones necesarias para que haya isomorsmo entre gr acas
Gr aca N umero de v ertices: N umero de aristas:
G
1
17 20
G
2
17 20
Gr aca grado=1 grado=2 grado=3 grado=4 Total de v ertices
G
1
5 6 1 5 17
G
2
5 6 1 5 17
Dado que se cumplen las condiciones b asicas, no podemos descartar que haya un iso-
morsmo entre estas dos gr acas. Deberemos vericar, sin embargo, que las relaciones de
adyacencia se mantengan. Para ello denimos un isomorsmo para este caso en la tabla 5.7.
Tabla 5.7 Isomorsmo entre las gr acas de las guras 5.26 y 5.27
f(MD) = Geometra II
f(TC) = Geometra I
f(ICC1) =

Algebra Superior II
f(LP) = C alculo I
f(BD) =

Algebra Superior I
f(Sugawara) = Magidin
f(Garca) = Miranda
f(Pel aez) = S aenz
f(L opez) = Tom e
f(Solsona) = Rosas
f(Ramrez) = G omez
f(Viso) = Hern andez
f(Oktaba) = Abrn
f(Reyes) = Torres
f(Guerrero) = Barrera
f(Macas) = Guerrero
f(Hern andez) = Lascur ain
240 Conceptos de teora de gr acas
Podemos vericar que esta funci on preserva la adyacencia entre v ertices en una gr aca
y la imagen de esos v ertices en la otra. Por ejemplo, en la primera gr aca tenemos las
siguientes aristas:
(MD,Guerrero), (LP,Ramrez), (ICC1,Pel aez)
que en la segunda gr aca, bajo el isomorsmo, tenemos:
(f(MD),f(Guerrero)) (Geometra II, Barrera)
(f(LP),f(Ramrez)) (C alculo I, G omez)
(f(ICC1),f(Pel aez)) (

Algebra Superior II, S aenz)


que como podemos vericar con la gr aca, est an todas presentes en la segunda gr aca. El
lector puede vericar que la relaci on de adyacencia se preserva dada esta asociaci on. Sin
embargo, no es la unica asociaci on posible.
Ejercicios
5.4.1.- Determina si las dos gr acas que se encuentran a continuaci on son isomorfas. Si lo
son, da el isomorsmo que mantiene las relaciones de adyacencia. Si no son isomor-
fas, explica qu e es lo que hace que no lo sean.
(a) (b)
5.4 Isomorsmo entre gr acas 241
5.4.2.- Determina si las dos gr acas que se encuentran a continuaci on son isomorfas. Si lo
son, da el isomorsmo que mantiene las relaciones de adyacencia. Si no son isomor-
fas, explica qu e es lo que hace que no lo sean.
(a) (b)
5.4.3.- Determina si las dos gr acas que se encuentran a continuaci on son isomorfas. Si lo
son, da el isomorsmo que mantiene las relaciones de adyacencia. Si no son isomor-
fas, explica qu e es lo que hace que no lo sean.
(a)
1 2
3
4
5
6
(b)
D
A
E
B C
F
5.4.4.- Determina si las dos gr acas que se encuentran a continuaci on son isomorfas. Si lo
son, da el isomorsmo que mantiene las relaciones de adyacencia. Si no son isomor-
fas, explica qu e es lo que hace que no lo sean.
242 Conceptos de teora de gr acas
(a)
1 2
3
4
5
6
7
(b)
D
A
E
B C
F
G
5.4.5.- Di si es posible un isomorsmo entre las siguientes dos gr acas. Si es posible,
prop on uno; si no es posible denir un isomorsmo, explica por qu e.
(a)
D
A
C
B
E
(b)
4
1
3
2
5
5.4.6.- Di si es posible un isomorsmo entre las siguientes dos gr acas. Si es posible,
prop on uno; si no, explica por qu e.
(a)
D
A
C
B
E
(b)
4
1 2
5
3
Exploraci on en
gr acas
6
6.1. Circuitos eulerianos
Una exploraci on en una gr aca implica recorrerla de alguna manera para descubrir
propiedades de la misma. Para explorar una gr aca debemos visitar los v ertices de la misma
usando las aristas para pasar de un v ertice a otro; en otras palabras, denimos caminos en
ellas. Visitaremos primero la exploraci on en gr acas no dirigidas (o simplemente gr acas).
Denici on 6.1 (camino) Un camino en una gr aca es una sucesi on de v ertices intercalados con
aristas, donde el primero y ultimo elemento de la sucesi on son v ertices. Si el primer v ertice
de la sucesi on es u y el ultimo v ertice es v, decimos que tenemos un camino de u a v. Pode-
mos denotar a ese camino con una letra may uscula (usualmente P) y damos los v ertices u
y v en sus extremos, u
P
v (o u
P
v); o si no le ponemos nombre al camino, simplemente
lo denotamos con uv.
Por ejemplo, observemos la gr aca de la gura 6.1. En esta gr aca tenemos los siguien-
tes caminos entre el v ertice v y el v ertice t:
P
1
=vawbugt
P
2
=vdscubwavkugtf xjugt
P
3
=vawbujxf thyit
244 Exploraci on en gr acas
y muchos m as. Noten que los nombres de los v ertices corresponden a letras cerca del -
nal del alfabeto mientras que los nombres de las aristas corresponden a letras cerca del
principio del alfabeto. En ambos casos usaremos letras min usculas.
Figura 6.1 Gr aca no dirigida con caminos denidos
v w
s u
y
t
x
a
d b
c
g
j
f
k
h
i
Si es que no hay confusi on (que la gr aca no tenga m as de una arista entre cualesquiera
dos v ertices) el camino puede representarse unicamente por la sucesi on de v ertices. En
cualquier caso un camino est a totalmente representado por la sucesi on de aristas.
Los primeros dos caminos que dimos pueden ser representados por sus v ertices o aris-
tas. El tercero no puede ser representado por la sucesi on de v ertices, pues no quedara claro
cu al arista fue la utilizada entre los v ertices y y t.
P
1
= v, w, u, t = a, b, g
P
2
= v, s, u, w, v, u, t, u, t = d, c, b, a, k, g, f, j, g
P
3
= v, w, u, x, t, y, t = a, b, j.f, h, i
Podemos observar en estos tres caminos que algunas veces regresamos a un v ertice
ya visitado o a una arista ya recorrida. Nos interesa el camino m as sencillo que podamos
encontrar, donde sencillo lo interpretamos como con el menor n umero de v ertices o aristas
que llevan del v ertice inicial al nal.
Denici on 6.2 Una trayectoria entre u y v (uv) es aquella en el que no se repiten v ertices y por
lo tanto tampoco se repiten aristas .
6.1 Circuitos eulerianos 245
La unica trayectoria que dimos en la gr aca de la gura 6.1 es P
1
. Otras trayectorias en
esa misma gr aca son v, u, t y v, s, u, x, t.

Intimamente relacionado con el concepto de trayectoria es el de una trayectoria


cerrada.
Denici on 6.3 (Trayectoria cerrada) Una trayectoria cerrada es una sucesi on de v ertices y aris-
tas intercalados, donde el primer y ultimo v ertice son el mismo v ertice.
Denici on 6.4 (Ciclo) Un ciclo es una trayectoria cerrada.
Al igual que con caminos, podemos tener un ciclo dentro de otro ciclo. Por ejemplo, en
la gura 6.2 tenemos los siguientes ciclos, con ciclos dentro de ellos:
C
1
=a, b, i, k, d, c, a C
2
=d, f, e, h, f, g, d
C
3
=a, b, d, g, f, d, c, a P =g, d, f, g, n, o, q, n, o, p
En el caso de C
1
tenemos un ciclo que empieza y termina en el v ertice a. En C
2
podemos
identicar el ciclo externo que empieza y termina en el v ertice d. Dentro de ese ciclo
podemos identicar otro ciclo, el que corresponde a f, e, h, f. En C
3
tambi en tenemos al
ciclo d, g, f, d contenido en el ciclo exterior que empieza y termina en el v ertice a. Por ulti-
mo, en P, que no es un ciclo, podemos encontrar el ciclo n, o, q, n contenido en el camino;
tambi en podemos encontrar el ciclo o, q, n, o que se intersecta con el ciclo n, o, q, n.
Figura 6.2 Ciclos en una gr aca
a
b
c
d
e f
g
h
i j
k
m
n o p
q
Regresando a caminos en general, nos interesa, por supuesto, comparar qu e tan grande
es un camino con respecto a otro:
Denici on 6.5 La longitud de un camino P, denotada por [P[, es el n umero de aristas en el camino
(uno menos que el n umero de v ertices).
246 Exploraci on en gr acas
En la gr aca de la gura 6.1, el camino P
1
tiene longitud 3; el camino P
2
tiene longitud
9; y el camino P
3
tiene longitud 6:
[P
1
[ = 3; [P
2
[ = 9; [P
3
[ = 6.
Por denici on, todo v ertice tiene un camino a s mismo de longitud 0.
Teorema 6.1 Todo camino entre u y v (camino uv) contiene a una trayectoria.
Demostraci on.
Si el camino uv es una trayectoria, se contiene a s misma y queda demostrado el teo-
rema.
Supongamos que el camino uv no es una trayectoria y veamos la sucesi on de v ertices
que lo denotan (anotando la posici on que ocupa cada uno de ellos):
v
1
, v
2
, . . . , v
n
Como no es trayectoria existe alg un v ertice en esta sucesi on que se repite. Si u = v
(se sale y llega al mismo v ertice), eliminamos toda la sucesi on y dejamos unicamente el
primer v ertice, que tiene una trayectoria de tama no cero a s mismo.
Supongamos que u ,= v. Entonces tenemos dos v ertices en la sucesi on, digamos en las
posiciones i y j, que son el mismo v ertice (v
i
= x = v
j
). Por lo tanto, tenemos un
camino de la siguiente forma:
u v
2
. . . v
i
(x) v
i+1
. . . v
j
(x) v
j+1
. . . v
u v
1
v
2
. . .
x
v
j+1
. . .
v
v
j1
v
i+1
Si procedemos a quitar del camino el subcamino
x = v
i
v
i+1
. . . v
j1
v
j
= x,
nos quedaremos con el camino m as corto dado por
u v
2
. . . v
i
v
j+1
. . . v.
Si este camino todava no es trayectoria, volvemos a hacer lo mismo hasta que ya no
queden v ertices repetidos en la sucesi on.
6.1 Circuitos eulerianos 247
Queremos explorar cu al es la relaci on entre los v ertices de una gr aca, como por ejem-
plo si hay alg un camino entre ellos. Esto nos lleva a la siguiente denici on:
Denici on 6.6 Una gr aca G = (V, E) es conexa si para cualesquiera dos v ertices u y v V existe
un camino entre ellos.
Denici on 6.7 Una gr aca que no es conexa est a compuesta por dos o m as componentes conexas,
donde en cada componente hay un camino entre cualesquiera dos v ertices.
En la gura 6.3 mostramos una gr aca conexa y una que no lo es. Si bien hasta el momento
hemos trabajado casi exclusivamente con gr acas conexas, es importante notar que la gr a-
ca en 6.3(b) cumple perfectamente con la denici on que dimos para una gr aca: conjunto
de v ertices y conjunto de aristas denotadas por la relaci on entre los v ertices.
En la gura 6.3(a) tenemos una gr aca donde no importa qu e pareja de v ertices tome-
mos, siempre hay una trayectoria entre ellos. En cambio, en la gura 6.3(b) tenemos dos
componentes conexas, pero no hay trayectoria entre alg un v ertice en una de las componen-
tes y un v ertice en la otra componente.
Figura 6.3 Conexidad en gr acas
(a) Gr aca conexa (b) Gr aca no conexa
Otro tipo de gr aca que no hemos introducido en este captulo, y que ser a importante
en el futuro, son los arboles .
Denici on 6.8 (

Arbol) Un arbol es una gr aca acclica y conexa.


Daremos m as adelante varias deniciones equivalentes de lo que es un arbol y demos-
traremos propiedades que nos ser an muy utiles. Por lo pronto nos conformamos con esta
denici on, que se ilustra en las gr acas de la gura 6.4.
248 Exploraci on en gr acas
Figura 6.4 Gr acas que son arboles
(a)
a
b
c
d
e
f
g
(b)
a
b
c
d
e f
(c)
a
b
c
d
e f
g
Circuitos eulerianos
Los problemas relacionados con caminos en gr acas se aplican a muchas situaciones
en la vida real. El primero de ellos (considerado como el problema fundador de la teora de
gr acas) fue planteado por Leonhard Euler en 1736 y surge como la soluci on a un problema
sencillo, conocido hoy en da como circuito euleriano .
Figura 6.5 Problema de los Puentes de K onigsberg
c
/
B
T
c
d g
e
f
b
a
c
B
/ T
e
c
d
a
b
f
g
Euler naci o el 15 de abril de 1707 en Basilea, Suiza. En la d ecada de 1730 a sus manos
lleg o un problema relativo a la ciudad de K onigsberg en Prusia (actualmente la ciudad se
llama Kaliningrado y se encuentra en Rusia); esta ciudad bordeaba al ro Pregel e inclua
dos grandes islas que estaban conectadas entre s y a tierra rme por siete puentes
1
. El
acertijo consista en denir un paseo por esa parte del ro de tal manera de recorrer cada
puente exactamente una vez y regresar al punto desde el que se inici o el paseo. Euler
model o este problema con lo que conocemos hoy en da como una multigr aca, donde
las aristas eran los puentes y haba un v ertice por cada posici on de tierra. No se debera
6.1 Circuitos eulerianos 249
llegar a una isla m as que recorriendo alguno de los puentes y todos los puentes deberan
ser recorridos de extremo a extremo. El problema consista en encontrar si la gr aca tena
un paseo de este tipo. La gr aca resultante fue la que se muestra en la gura 6.5.
Denici on 6.9 (Circuito euleriano) Un circuito euleriano sobre una gr aca (o multigr aca) es
aquel ciclo en la gr aca donde cada arista aparece exactamente una vez.
Similar a este problema se deni o el de encontrar si una gr aca tiene un paseo euleria-
no, que se dene como sigue:
Denici on 6.10 (Paseo euleriano) Un paseo euleriano en una gr aca (o multigr aca) es una
trayectoria que incluye a cada arista de la gr aca exactamente una vez, empezando y ter-
minando en v ertices distintos.
No s olo pudo Euler dar respuesta a esta pregunta, sino que caracteriz o a aquellas gr a-
cas que s tienen un circuito euleriano de la siguiente forma:
Teorema 6.2 Una gr aca conexa G = (V, E) tiene un circuito euleriano si y s olo si todos los v ertices
tienen grado par. Gtiene un paseo euleriano si y s olo si todos los v ertices de Gtienen grado
par, excepto exactamente dos v ertices que tienen grado impar.
Demostraci on.
Supongamos que la gr aca tiene un circuito euleriano y supongamos que iniciamos el
circuito en un cierto v ertice v
0
recorriendo una arista. v
0
tiene al menos grado 1 porque
la gr aca es conexa. A cada v ertice que llegamos por una arista volvemos a salir por otra,
por lo que cada v ertice tiene un n umero par de artistas incidentes: aquella por la que se
llega y aquella por la que se sale. Cuando ya terminamos de recorrer todas las aristas
regresamos a v
0
, por lo que le sumamos 1 al grado (impar hasta ahora) de v
0
. De donde
todos los v ertices tienen grado par.
Supongamos ahora que en G = (V, E) todos los v ertices tienen grado par. Elegimos a
un v ertice v como origen del circuito y vamos recorriendo aristas. A cada v ertice que
llegamos podemos salir, pues el grado es par. Como unicamente hemos utilizado un
n umero impar de aristas incidentes en v (por la que salimos m as dos por cada vez que
pasemos por v), tenemos que usar una ultima arista que regrese a v y ya no podremos
salir de el. Tomamos entonces cualquier arista que no ha sido recorrida y cualquiera de
los v ertices en uno de sus extremos, digamos u. Volvemos a repetir el ejercicio hasta que
tengamos un circuito que empiece y termine en u. Como la gr aca es conexa, existe un
camino entre cualquier arista no usada todava y alg un v ertice en el circuito construido
hasta el momento, por lo que el ultimo circuito se conecta al anterior en un v ertice. Esto
es, toda arista es nalmente incluida en el circuito.
Para el caso de paseos eulerianos, se sigue el mismo razonamiento, excepto que el v ertice
del que se sale y al que se llega nalmente no son el mismo.
1
Desgraciadamente los puentes fueron destruidos durante la Segunda Guerra Mundial.
250 Exploraci on en gr acas
En el algoritmo 6.1 se formalizan las ideas dadas en la demostraci on, en cuanto a que
si el grado de cada v ertice es par, tenemos un circuito euleriano.
Este algoritmo construye el circuito euleriano correctamente, si es que la gr aca cum-
ple con las condiciones necesarias para ello (grado par en todos sus v ertices). Veamos un
ejemplo:
Listado 6.1 Algoritmo para obtener un circuito euleriano
1 Sea c = [ x ] , x V ;
2 Sea c = E;
3 Mi ent r as ( haya ar i s t as si n usar en c )
4 Sea v un v e r t i c e a r b i t r a r i o en c que t i ene al guna
5 ar i s t a di sponi bl e .
6 Sea P = [ v ]
7 Sea u = v ;
8 Mi ent r as ( e = ux di sponi bl e )
9 c = c e ;
10 P = P +e +x;
11 u = x;
12 /
*
Ci c l o : Mi ent r as ( e = ux d i s p o n i b l e )
*
/
13 Su s t i t u i r a v por P en c ;
14 /
*
Ci c l o : Mi ent r as ( haya a r i s t a s s i n us ar en c )
*
/
15 C es el c i r c u i t o eul er i ano ;
Ejemplo 6.1.
Tenemos la siguiente gr aca que cumple con las condiciones necesarias y sucientes
para tener un circuito euleriano. Representamos a la gr aca con listas de adyacencia. A la
derecha de la lista de adyacencias se encuentra la lista de aristas, identicadas en orden
alfab etico, esto es, el primer v ertice es el nombre menor. Cada arista aparece en esta lista
unicamente una vez.
f
a
e
g
b
d
c
Listas de adyacencias
a f
g

b
c
g

c
b
g

d
e f
e
d
g

f a
d

g
a
b
c e
Aristas
a f
a
g
b
c
b
g
c
g
d
e
d
f
e
g
Procedemos a construir un circuito euleriano siguiendo el algoritmo dado. Elegimos al
6.1 Circuitos eulerianos 251
azar cualquiera de los v ertices. El v ertice natural a elegir es el primero, a.
Inicializaci on
1 c = [a];
2 c = af, ag, bc, bg, cg, de, df, eg;
Entramos al ciclo de la lnea 3 porque c tiene todava aristas sin usar. Tomamos al v ertice
a en las lneas 4 y 5.
4 v = a;
6 T = [a];
7 u = a;
Entramos al ciclo de la lnea 8, ya que la lista de adyacencias del v ertice a no est a vaca,
y elegimos al primer v ertice adyacente al que se alcanza con la arista e = af, por lo
que eliminamos a esta arista de c y agregamos a la arista y al v ertice en el otro extremo al
camino que estamos construyendo.
9 c = ag, bc, bg, cg, de, df, eg;
10 T = [ a, af, f ];
11 u = f;
Como usamos la arista e = af = fa, eliminamos a f de la lista de adyacencias de a
y a a de la lista de adyacencias de f:
f
a
Listas de adyacencias
a
g

b
c
g

c
b
g

d
e f
e
d
g

f
d

g
a
b
c e
Seguimos en el ciclo de la lnea 8 tomando a la siguiente arista disponible desde f que es
fd = df, ya que d es el primer v ertice en la lista de adyacencias de f.
8 e = fd;
9 c = ag, bc, bg, cg, de, eg;
10 T = [ a, af, f, fd, d ];
11 u = d;
Como usamos la arista e = fd = df, eliminamos a d de la lista de adyacencias de f
y a f de la lista de adyacencias de d:
252 Exploraci on en gr acas
f
a
d
Listas de adyacencias
a
g

b
c
g

c
b
g

d
e
e
d
g

f
g
a
b
c e
Seguimos en el ciclo de la lnea 8 pues d tiene todava v ertices en su lista de adyacencias,
el primero de los cuales es e; as que tomamos la arista de = ed.
8 e = de;
9 c = ag, bc, bg, cg, eg;
10 T = [ a, af, f, fd, d, de, e ];
11 u = e;
Como usamos la arista e = de = ed, eliminamos a d de la lista de adyacencias de e y
a e de la lista de adyacencias de d:
f
a
e
d
Listas de adyacencias
a
g

b
c
g

c
b
g

d

e
g

f
g
a
b
c e
Seguimos en el ciclo de la lnea 8 pues e tiene todava v ertices en su lista de adyacencias,
el primero de los cuales es g, as que tomamos la arista eg = ge.
8 e = eg;
9 c = ag, bc, bg, cg;
10 T = [ a, af, f, fd, d, de, e, eg, g ];
11 u = g;
Eliminamos a e de la lista de adyacencias de g y a g de la lista de e:
6.1 Circuitos eulerianos 253
f
a
e
g
d
Listas de adyacencias
a
g

b
c
g

c
b
g

d

e
f
g
a
b
c
Seguimos en el ciclo de la lnea 8 pues g tiene todava v ertices en su lista de adyacencias,
el primero de los cuales es a, por lo que tomamos la arista ga = ag.
8 e = ga;
9 c = bc, bg, cg;
10 T = [ a, af, f, fd, d, de, e, eg, g.ga, a ];
11 u = a;
Eliminamos a a de la lista de adyacencias de g y a g de la lista de a:
f
a
e
g
d
Listas de adyacencias
a
b
c
g

c
b
g

d

e
f
g
b
c
Como el v ertice a ya no tiene a ning un v ertice en su lista de adyacencias, no volvemos a
entrar en el ciclo de la lnea 8 y pasamos a ejecutar la lnea 13. En esa lnea tenemos que v
es a, por lo que sustituimos a a en c por todo el camino T que se construy o:
c = [ a ] antes
c = [ a, af, f, fd, d, de, e, eg, g, ga, a ] despu es
y regresamos a la iteraci on de la lnea 3. Como c todava tiene aristas, elegimos un v ertice
en c que tenga aristas disponibles; este es el caso del v ertice g, por lo que la ejecuci on se
da como sigue:
4 v = g;
6 T = [g];
7 u = g;
254 Exploraci on en gr acas
Llegamos nuevamente a la lnea 8 del algoritmo, donde el primer v ertice en la lista de
adyacencias de g es b, por lo que elegimos a la arista e = gb = bg y procedemos a
ejecutar la iteraci on:
8 e = gb;
9 c = bc, cg;
10 T = [ g, gb, b ];
11 u = b;
Eliminamos a g de la lista de adyacencias de b y a b de la de g:
f
a
e
g
d
g
b
Listas de adyacencias
a
b
c
c
b
g

d

e
f
g
c
Regresamos a la lnea 8 y como tenemos a c en la lista de adyacencias de b, entramos
nuevamente a la iteraci on:
8 e = bc;
9 c = cg;
10 T = [ g, gb, b, bc, c ];
11 u = c;
Eliminamos a b de la lista de adyacencias de c y a c de la de b:
f
a
e
g
d
g
b
c
Listas de adyacencias
a
b

c
g

d

e
f
g
c
6.1 Circuitos eulerianos 255
Regresamos a vericar la condici on en la lnea 8 y vemos que en la lista de adyacencias
de c est a el v ertice g, por lo que tomamos la arista e = cg = ge y entramos al ciclo
nuevamente.
8 e = cg;
9 c = ;
10 T = [ g, gb, b, bc, c, cg, g ];
11 u = g;
Eliminamos a g de la lista de adyacencias de c y a c de la de g:
f
a
e
g
d
g
b
c
Listas de adyacencias
a
b

c
d

e
f
g

Al regresar a la lnea 8 vemos que ya no hay ning un v ertice en la lista de adyacencias de g,
por lo que pasamos a ejecutar la lnea 13 del algoritmo. En esa lnea tenemos que v es g,
por lo que sustituimos a g en c por todo el camino T que se construy o:
c = [ a, af, f, fd, d, de, e, eg, g , ga, a ] antes
c = [ a, af, f, fd, d, de, e, eg, g, gb, b, bc, c, cg, g ,
ga, a ] despu es
y regresamos a la iteraci on de la lnea 3. Como c ya est a vaca, salimos de la iteraci on en
la lnea 15 y damos el circuito euleriano.
f
a
e
g
d
g
b
c
Listas de adyacencias
a
b

c
d

e
f
g

256 Exploraci on en gr acas
Si deseamos que el algoritmo construya un paseo euleriano, suponiendo que la gr aca
tiene grado par en todos sus v ertices excepto en exactamente dos, tenemos que modicar
ligeramente el algoritmo para que el primer v ertice seleccionado en las lneas 4 y 5 sea uno
de los de grado impar. De otra manera va a tratar de construir un circuito que no existe.
Veamos un ejemplo.
Ejemplo 6.2. Obtener el paseo euleriano de la siguiente gr aca.
d
a
e
b
c
Vericamos primero que la gr aca cumpla con la condici on necesaria y suciente para
que tenga un paseo euleriano y as es. En esta ocasi on unicamente iremos dibujando el
paseo que se va formando. Lo mostraremos en la gura 6.6. Tenemos que empezar con el
v ertice b o con el e porque son los que tienen grado impar. Empezaremos en el v ertice b.
Suponemos que las listas de adyacencias est an ordenadas lexicogr acamente, por lo que la
primera arista que vamos a agregar al paseo es bc.
Figura 6.6 Construcci on de un paseo euleriano
(a)
b
c
(b)
e
b
c
(c)
a
e
b
c
(d)
d
a
e
b
c
(e)
d
a
e
b
c
(f)
d
a
e
b
c
Exactamente hay dos v ertices, b y e que tienen grado impar; el resto de los v ertices
tiene grado par. El camino empieza en el v ertice b, que es uno de los que tiene grado impar;
6.1 Circuitos eulerianos 257
recorre todas las aristas exactamente una vez; termina en el v ertice e, que es el otro v ertice
con grado impar.
Podemos notar que el algoritmo que construye el circuito euleriano (paseo euleriano)
le asigna una orientaci on a las aristas por el orden en que las va usando. La eciencia del
algoritmo va a depender de la representaci on interna de la gr aca y de c omo determinemos
que una arista ya fue usada: quitarla de ambas listas de adyacencias no es muy eciente
y tal vez convendra m as tener una lista de aristas en la que marc aramos aquellas que ya
fueron usadas y no se pueden volver a usar.
El algoritmo del listado 6.1 obtiene un circuito euleriano. Si se le da una gr aca que
no cumpla con los requisitos de tener grado par en todos sus v ertices el algoritmo de todos
modos va a trabajar, pero no va a encontrar un circuito euleriano. Veamos el siguiente
ejemplo para ilustrar este aspecto.
Ejemplo 6.3. Tomemos la siguiente gr aca, que no cumple con tener grado par en todos sus
v ertices, por lo que no tiene un circuito euleriano; tampoco tiene exactamente dos v ertices
con grado impar, por lo que tampoco tiene un paseo euleriano.
b
a
c
d
e
f
h
g
Veremos el progreso del paseo en la gura 6.7. Tomamos como primer v ertice a uno de los
que tienen grado impar, por ejemplo a, y de ah continuamos eligiendo aristas disponibles.
Figura 6.7 Construcci on incorrecta de un paseo euleriano 1/2
(a)
a
b
(b)
b
a
c
(c)
b
a
c
d
(d)
b
a
c
d
258 Exploraci on en gr acas
Figura 6.7 Construcci on incorrecta de un paseo euleriano 2/2
En este momento ya no podemos seguir con el mismo paseo, as que la guardamos y
tomamos al v ertice c que es el unico en el camino actual que tiene aristas disponibles.
(e)
b
a
c
d
c e
(f)
b
a
c
d
c e
f
(g)
b
a
c
d
c e
f
g
(h)
b
a
c
d
c e
f
h
g
(i)
b
a
c
d
c e
f
h
g
(j)
b
a
c
d
c e
f
h
g
En este punto ya no tenemos aristas disponibles en g por lo que debemos intentar juntar
esta trayectoria a la primera; tenemos lo siguiente:
c =a, ab, b, bc, c , cd, d, db
T =c, ce, e, ef, f, fg, g, gh, h, he, e, eg, g
Sin embargo, si tratamos de sustituir al v ertice c en c por la trayectoria T, nos vamos a
6.1 Circuitos eulerianos 259
encontrar que lo que resulta no es un camino:
. . . bc, c, ce, . . . , e, eg, g, cd . . . ;
esto se debe a que el primer paseo euleriano que construimos termina en un v ertice de grado
impar (b), pero entonces requerimos que lo que se construya para ocupar el lugar de c sea
un circuito euleriano que empiece y termine en c, lo que no sucede, pues en esa subgr aca
tenemos tres v ertices de grado impar. Si bien se recorrieron todas las aristas exactamente
una vez, lo que construimos fueron dos caminos ajenos, no un paseo euleriano.
Ejercicios
6.1.1.- En las gr acas que siguen, di cu antas trayectorias distintas hay entre los v ertices a
y d.
(a)
d
a
b
c
e f
(b)
a
b
c
d
e
f
g
6.1.2.- Para las siguientes gr acas, determina si son gr acas conexas.
(a)
a
b
d
c
e
(b)
a
b
c
d
e
f
g
h
(c)
a
b
c
e
d
f
260 Exploraci on en gr acas
6.1.3.- Cu ales de las siguientes gr acas tienen circuito/paseo euleriano? Si es que tie-
nen alguno de los dos, aplicar el algoritmo 6.1 para encontrarlo, dando c omo se va
armando el circuito/paseo durante la aplicaci on del algoritmo.
(a)
a
b
c
d
e
f
(b)
a
b
c
d
e
f
g
h
(c)
c
a
d
b
e
(d)
d
a
e
b
f
c
(e)
a
b
c
d
e
(f)
a
b
c
d
e
f
6.1.4.- Para cada una de las siguientes gr acas, que no tienen circuito euleriano ni paseo
euleriano, di cu antas aristas tendras que agregar y d onde para que la gr aca tuviera
un circuito euleriano, si es que esto es posible. Di cu antas aristas tendras que agregar
y d onde para que la gr aca tuviera un paseo euleriano, si es que esto es posible.
(a)
a
b
c
d
e
f
(b)
a
b
c
d
e
f
g
h
6.2 Trayectorias hamiltonianas 261
(c)
a
b
c
d
e
f
g
h
(d)
a
b
c
d
e
f
(e)
a
b
c
d
f
g
e
(f)
a
b
c
d
e
f
g
h
i
6.2. Trayectorias hamiltonianas
Veamos ahora un problema muy parecido, el de explorar una gr aca con la restricci on
de que cada v ertice sea visitado exactamente una vez. Bajo visitado queremos decir llegar
y salir de el. Tenemos la restricci on adicional de empezar y terminar el ciclo en el mismo
v ertice en el que empezamos. A este tipo de recorrido es a lo que se conoce como ciclo
hamiltoniano.
El problema es, entonces, dada una gr aca conexa determinar si existe o no un ciclo
hamiltoniano en la gr aca. A pesar del gran parecido entre este y el problema de los ciclos
(o paseos) eulerianos, mientras que las condiciones necesarias y sucientes para que exista
un ciclo euleriano est an perfectamente denidas, este no es el caso de los ciclos hamilto-
nianos. Inclusive, mientras que para construir el ciclo euleriano existe un algoritmo muy
eciente, para el ciclo hamiltoniano la unica manera conocida de obtenerlo es calculando
todos los posibles ciclos y ver cu al de ellos es hamiltoniano.
Sin embargo s existen algunos resultados que nos pueden ayudar a determinar si una
gr aca pudiese tener un ciclo o trayectoria hamiltoniana. Una condici on suciente para ello
262 Exploraci on en gr acas
se enuncia en el teorema 6.3, que se debe a Dirac.
Teorema 6.3 (Teorema de Dirac) Sea G = (V, E) una gr aca conexa tal que [V [ = n, n > 2. Si
grado(v)
n
2
, v V , entonces G tiene un ciclo hamiltoniano.
Demostraci on.
Si n = 3, como estamos pidiendo grado(v)
n
2
= 2, G tiene que ser K
3
y tiene un
ciclo hamiltoniano que empieza en cualquiera de los v ertices y prosigue al siguiente.
Veamos que pasa con n 4. Construyamos una trayectoria P tan larga como sea posible.
v
1
v
2
v
k
v
k+1
Observemos lo siguiente:
Tenemos como hip otesis que grado(v
1
)
n
2
.
No puede haber otro v ertice fuera de P adyacente a v
1
, porque hara una trayectoria
P

mayor que P, y lo mismo sucede con v


k+1
, y supusimos que P era la m as larga
(o que no hay en G una trayectoria m as larga).
v
1
v
2
v
k
v
k+1
w
w

Quiere decir que todos los v ertices a los que es adyacente v


1
est an en P (lo mismo
para v
k+1
).
Por lo que en P debe haber al menos
n
2
+ 1 v ertices, donde al menos
n
2
son los
v ertices adyacentes a v
1
distintos de v
1
.
6.2 Trayectorias hamiltonianas 263
Si todos los v ertices de V est an en P, ya terminamos, pues P los toca a todos exacta-
mente una vez.
Si no es as, procedemos de la siguiente manera. Supongamos ahora que en P existe un
v ertice v
i
, 2 i k + 1, tal que v
i
es adyacente a v
1
y v
i1
es adyacente a v
k+1
. Si esto
es as, tenemos el siguiente ciclo:
v
1
v
2
v
i1
v
i
v
k
v
k+1
Demostraremos por contradicci on que v
i
y v
i1
deben existir con estas caractersticas.
Supongamos que para toda i 2 tal que v
i
es adyacente a v
1
, tenemos que v
i1
no
es adyacente a v
k+1
.
Como grado(v
1
)
n
2
y ya demostramos que no puede haber ning un v ertice adya-
cente a v
1
que no est e en P, hay al menos
n
2
v ertices adyacentes a v
1
en P; para cada
uno de estos v ertice adyacentes a v
1
hay un v ertice que lo precede; como estamos
demostrando por contradicci on, estamos suponiendo que ninguno de estos v ertices
v
i1
es adyacente a v
k+1
. Por lo tanto en P hay
n
2
+1 v ertices no adyacentes a v
k+1
(los inmediatos anteriores a v
i
junto con v
k+1
).
Tambi en demostramos que todos los v ertices adyacentes a v
k+1
tienen que es-
tar en P.
Como la gr aca tiene n v ertices, de los cuales n 1 no son v
k+1
, si contamos los
v ertices que quedan en P y que pueden ser adyacentes a v
k+1
nos vamos a encontrar
con que son n (
n
2
+ 1) =
n
2
1 <
n
2
. Por lo que tenemos:
grado(v
k+1
)
n
2
1.
Pero esto es una contradicci on respecto a que grado(v)
n
2
. Por lo que s existen v
i
y v
i1
.
Dada esta situaci on, podemos construir un ciclo
C = v
1
, v
2
, . . . , v
i1
, v
k+1
, v
k
, . . . , v
i
, v
1
,
que contiene a todos los v ertices de P. Si P contiene a todos los v ertices de V , este ciclo
nos da el ciclo hamiltoniano. Y debe ser as.
264 Exploraci on en gr acas
Supongamos que no y que existe un v ertice w / P. A lo m as hay
n
2
1 v ertices de G
fuera de P. Como grado(w)
n
2
, w tiene que ser adyacente a alg un v ertice de P. Sea
ese v ertice v
j
.
v
1
v
2
v
i1
v
i
v
j1
v
j
w
v
k
v
k+1
Pero entonces, la trayectoria
P

= w, v
j
, v
j+1
, . . . , v
k
, v
k+1
, v
i1
, . . . , v
2
, v
1
, v
i
, . . . , v
j1
es una trayectoria de longitud mayor que P (tiene una arista m as, ya que sustituimos la
arista v
i1
v
i
por las dos aristas v
i1
v
k+1
y v
1
v
i
; tambi en sustituimos a la arista v
j1
v
j
por la arista wv
j
), a quien supusimos de longitud m axima. Por lo que no puede haber
v ertices de V fuera de P.
Veamos un ejemplo sencillo de gr acas que cumplen con la condici on del teorema 6.3
y que, por lo tanto, tiene un ciclo hamiltoniano, en la gura 6.8.
Figura 6.8 Algunas gr acas con ciclos hamiltonianos que cumplen la condici on de Dirac
(a)
a
b
c
d
e
f
(b)
a
d
b
e
c
f
(c)
d
c
e
b
a
Si bien el teorema 6.3 garantiza la existencia de un ciclo hamiltoniano si el grado de
cada v ertice es mayor o igual a la mitad del n umero de v ertices, el teorema no nos dice
c omo encontrar ese camino. Esto fue evidente al construir los ciclos hamiltonianos de las
primeras dos gr acas de la gura 6.8. En cambio, en el caso de los ciclos eulerianos, al
demostrar el teorema dimos un m etodo de construcci on del ciclo. Es claro que todas las
6.2 Trayectorias hamiltonianas 265
gr acas completas tienen un ciclo hamiltoniano pues cumplen con la condici on dada por el
teorema.
Esta es una condici on suciente; esto es, podemos tener gr acas que no cumplan esta
condici on y que sin embargo s tengan ciclos hamiltonianos, como las que se muestran en
la gura 6.9.
Figura 6.9 Gr acas con ciclo hamiltoniano que no cumplen con la condici on de Dirac
(a)
a
b
c
d
e
f
g
(b)
a
d
b
e
c
f
(c)
d
c
e
b
a
En estas tres gr acas hay v ertices con grado menor a
n
2
y sin embargo s tienen un ciclo
hamiltoniano. Las dos primeras, de hecho, tienen m as de uno.
Otro teorema que da condiciones sucientes para que una gr aca tenga un ciclo hamil-
toniano, pero que no demostraremos ac a, es el Teorema de Ore:
Teorema 6.4 (Teorema de Ore) Si G es una gr aca con n v ertices, n 3, tal que para todo par de
v ertices no adyacentes u y v en G, grado(u) + grado(v) n, entonces G tiene un ciclo
hamiltoniano.
Nuevamente este teorema nos da una condici on suciente. Ninguna de las gr acas de la
gura 6.9 cumple con la condici on de Ore y sin embargo todas tienen un ciclo hamiltoniano.
De manera similar a como denimos un paseo euleriano podemos denir una trayecto-
ria hamiltoniana como aquella que recorre a cada v ertice exactamente una vez, pero a dife-
rencia de un ciclo hamiltoniano, empieza y termina en distintos v ertices. Es claro que toda
gr aca que tiene un ciclo hamiltoniano tiene, asimismo, una trayectoria hamiltoniana: sim-
plemente no usamos la ultima arista recorrida para el ciclo hamiltoniano. Pero podramos
tener una trayectoria hamiltoniana y que no hubiera arista entre el primer v ertice de la tra-
yectoria y el ultimo. En la gura 6.10 tenemos varias gr acas que tienen una trayectoria
hamiltoniana.
266 Exploraci on en gr acas
Figura 6.10 Gr acas con trayectorias hamiltonianas
(a)
a
b
c
d
e
f
(b)
d
a
c
b
e f
(c)
d
a
c
b
e
Ejercicios
6.2.1.- El matem atico irland es, Sir William R. Hamilton, a quien se debe la introducci on
del concepto de ciclo hamiltoniano, trat o de comercializar un juego que consista
de un dodecaedro hecho de madera, donde cada esquina representaba a una ciudad
famosa. El juego consista en encontrar una ruta que visitara todas las ciudades exac-
tamente una vez y regresara a la ciudad de origen o, lo que es lo mismo, encontrar un
ciclo hamiltoniano en el dodecaedro. En el plano, el juego se pinta como sigue:
1
2
3
4 5
15 9
7
13 11
6 8
10
12
14
19
20
16 17
18
Encontrar un ciclo hamiltoniano (o todos) en el dodecaedro.
6.2.2.- De las siguientes gr acas di cu ales tienen un ciclo hamiltoniano o una trayectoria
hamiltoniana. Si tiene alguno de estos dos, dib ujalo.
6.2 Trayectorias hamiltonianas 267
(a)
b
c
d
e
a
(b)
a
b
c
d
e
f
(c)
a
b
c
d
e f
g
h i
(d)
a
b
c
d
e f
g
h
(e)
a
b
c
d
e f
g
h i
(f)
a
b
c
d
e f
6.2.3.- La siguiente gr aca, conocida como la gr aca de Petersen, no tiene un ciclo ha-
miltoniano, pero si se le quita cualquiera de sus v ertices y las aristas incidentes en
el, la subgr aca as obtenida s tiene un ciclo hamiltoniano. Muestra que estas dos
aseveraciones son verdaderas.
a
b
c
d
e
f
g
h i
j
6.2.4.- Un caballo es una pieza de ajedrez que se puede mover dos cuadros horizontales
y uno vertical, o un cuadro horizontal y dos verticales. Esto es, un caballo en el
268 Exploraci on en gr acas
cuadro (x, y) puede moverse a cualquiera de las siguientes posiciones (x 2, y
1), (x 1, y 2), si estos cuadrados se encuentran en el tablero. Veamos un ejemplo
en un tablero de 6 6. La posici on del caballo la mostraremos con y las posibles
posiciones a las que se puede mover con .

Un paseo equino es una secuencia de movimientos legales de un caballo que em-


pieza en alguna posici on y visita cada cuadro del tablero exactamente una vez. Un
paseo equino es reentrante si hay un movimiento legal que lleva al caballo desde
el ultimo cuadro del paseo a donde inici o el mismo. Podemos modelar paseos equi-
nos usando una gr aca que tiene un v ertice para cada cuadro en el tablero, con una
arista entre dos v ertices si el caballo se puede mover legalmente entre los cuadrados
representados por estos v ertices.
(a) Dibuja la gr aca que representa los movimientos v alidos de un caballo en un
tablero de 3 3.
(b) Dibuja la gr aca que representa los movimientos v alidos de un caballo en un
tablero de 3 4.
(c) Muestra que encontrar un paseo equino en un tablero de m n es equiva-
lente a encontrar una trayectoria hamiltoniana en la gr aca que representa los
movimientos legales del caballo en el tablero.
(d) Muestra que encontrar un paseo equino reentrante en un tablero de m n es
equivalente a encontrar un ciclo hamiltoniano en la gr aca que representa los
movimientos legales del caballo en el tablero.
6.2.5.- Se dice que una gr aca es euleriana (hamiltoniana) si tiene un ciclo euleriano (ha-
miltoniano, respectivamente). Da un ejemplo de gr aca que exactamente sea
(a) euleriana y hamiltoniana,
(b) euleriana y no hamiltoniana,
6.3 Distancias en una gr aca 269
(c) no euleriana y hamiltoniana,
(d) no euleriana y no hamiltoniana.
6.3. Distancias en una gr aca
En esta secci on exploraremos una gr aca para obtener caminos entre v ertices y ver
cu al es su longitud. Primero veremos gr acas no dirigidas sencillas, donde suponemos que
todas las aristas tienen un costo (o peso) uniforme de una unidad. En la siguiente secci on
exploraremos el concepto de una gr aca con pesos, que es aquella donde cada arista tiene
un costo asociado. A continuaci on denimos el concepto de distancia, que es el que nos
ocupar a por lo pronto.
Denici on 6.11 (distancia) Sea G = (V, E) una gr aca no dirigida. La distancia entre dos v erti-
ces u y v en V , denotada por (u, v), es la longitud de la trayectoria m as corta entre u y v.
Denimos (u, v) = si no existe trayectoria entre u y v.
Hay tres modalidades bajo las cu ales podemos querer obtener distancias en una gr aca:
i. Trayectoria m as corta entre dos v ertices s y t.
ii. Trayectoria m as corta desde un v ertice origen a todos y cada uno de los v ertices en
la gr aca.
iii. Trayectorias m as cortas entre todas las posibles parejas de v ertices u y v en una
gr aca.
El algoritmo que presentaremos a continuaci on ejecuta una exploraci on en amplitud
(Breadth First Search) y por esta caracterstica se le conoce como BFS. El algoritmo elige
a un v ertice como origen de la exploraci on, y cuelga la gr aca de ese v ertice, obteniendo
la distancia desde el a todos y cada uno de los v ertices a los que se puede llegar desde s.
Una vez elegido (o determinado) el v ertice origen s, procede a avanzar de un v ertice a otro
por capas de adyacencia: primero a los v ertices adyacentes a s que est an a una arista de s
deniendo una primera capa de v ertices a distancia 1; despu es a los que est an adyacentes
a los v ertices de la primera capa y que no se encuentran ya en ella y que est an a distancia
2; y as sucesivamente. Al ir calculando las distancias registra tambi en la trayectoria m as
corta que lleva a ese v ertice mediante un atributo que se reere al v ertice desde el cual se
le visit o por primera vez.
Al construir estas capas de adyacencia, la distancia desde s a un v ertice est a dada por
la capa que le corresponde la primera vez que se le alcanza (cuando se le descubre).
270 Exploraci on en gr acas
Esta exploraci on calcula naturalmente la distancia del v ertice seleccionado como origen
a cada uno de los v ertices de la gr aca, por lo que resuelve la primera y segunda modalidad.
Para resolver la tercera modalidad deberamos ejecutar BFS desde cada uno de los v ertices
de la gr aca.
En los algoritmos que siguen usaremos notaci on orientada a objetos para referirnos a
los distintos atributos (campos) que queremos tenga cada arista o v ertice de la gr aca. As,
para referirnos a la distancia del v ertice v al origen, lo denotaremos con v..
Denici on 6.12 (V ertice alcanzable) Un v ertice v V es alcanzable desde u si es que existe
alguna trayectoria entre u y v.
En una componente conexa todos los v ertices son alcanzables desde cualquier otro
v ertice, mientras que si tenemos m as de una componente conexa en una gr aca, ning un
v ertice de una de las componentes es alcanzable desde cualquier v ertice en una componente
conexa distinta.
Algoritmo BFS
Objetivo: Dada una gr aca G = (V, E) y un v ertice s V , encontrar v., que corres-
ponde a la distancia del v ertice s a v. Dejar marcada en la gr aca la trayectoria que
corresponde a c omo se obtuvo esa distancia.
Datos: La gr aca G = (V, E) y s V .
Salida: v V , tal que haya una trayectoria s v, reportar v. y s v.
Estructuras de datos:
i. La gr aca estar a representada por listas de adyacencias.
ii. Cada v ertice tendr a un atributo v. que indica cu al es el v ertice predecesor y un
atributo v. que indica cu al es la distancia a s.
M etodo: Se encuentra en el listado 6.2.
Listado 6.2 Algoritmo BFS ((s, v), v V alcanzable desde s) (1/2)
rstnumber
1 /
*
( I n i c i a l i z a c i on : )
*
/
2 v V : v. nulo ; v.
3 s. 0; s. nulo
4 C s)
6.3 Distancias en una gr aca 271
Listado 6.2 Algoritmo BFS ((s, v), v V alcanzable desde s) (2/2)
5 /
*
( Pr oces ar al que e s t e al f r e n t e de l a c ol a . )
*
/
6 Mi ent r as C ,= ,
7 u = frente(C)
8 v u.adyacencias :
9 v si gui ent e v e r t i c e en l a l i s t a de adyacenci as de u
10 Si v. == /
*
Pri mera vez que s e l l e g a a e l
*
/
11 v. u. + 1
12 v. u
13 C C + v
14 /
*
Fi n : v. ==
*
/
15 /
*
Ci c l o : v u.adyacencias
*
/
16 CCu /
*
Se saca a u de l a c ol a
*
/
17 /
*
Ci c l o : Mi ent r as C ,=
*
/
18 /
*
Se r e por t an l o s r e s u l t a d o s
*
/
19 v V
20 /
*
( Repor t a d i s t a n c i a : )
*
/
21 Escr i be : "La distancia a v es " + v.
22 /
*
( Repor t a cami no )
*
/
23 Repi t e :
24 Reporta v
25 v v.
26 hast a que v == nulo
27 /
*
Ci c l o : v V
*
/
Ejemplo 6.4. Si seguimos el algoritmo BFS en la gr aca de la gura 6.11, veremos que los v ertices
de la gr aca van llegando a la cola C en el orden en que se muestra en esa misma gura.
Este orden es el que dene la exploraci on.
Podemos observar en esta gura c omo se van deniendo las distancias de los v ertices.
En la subgura 6.11(a) se calculan las distancias de p, el origen de la exploraci on, a
r y w y se determina que su distancia es 1.
En ese momento al frente de la cola se encuentra r, que es adyacente a u y v. Se
calcula la distancia para estos dos v ertices (2) y se quita de la cola a r.
En ese momento se encuentra w al frente de la cola, con sus dos aristas sin usar que
van a u y v; pero como estos dos v ertices ya fueron alcanzados antes (su atributo
es distinto de ), estas aristas no se incluyen en la subgr aca que estamos armando.
Quitamos a w del frente de la cola y surge u al frente de la misma. Las aristas de u
que no han sido usadas son las que van a t y a q. A ambos v ertices se les anota la
distancia, se meten a la cola y se saca a u.
Queda v al frente de la cola, pero como ya fueron exploradas sus aristas a u y a w,
simplemente se saca de la cola a v.
272 Exploraci on en gr acas
A continuaci on queda t al frente de la cola y tiene dos aristas sin usar, la que va a s
y la que va a q. La que va a q se desecha porque a q se le asign o ya su distancia; se
registra la distancia a s, que es 4, y se mete a s a la cola.
Se saca a t de la cola, quedando q al frente de la cola. La unica arista que tiene q sin
usar es la que va a s, que ya fue procesado, por lo que simplemente se quita a q de la
cola. Llega s al frente de la cola y como ya no tiene aristas incidentes sin usar, se le
saca de la cola y la cola queda vaca.
Figura 6.11 Exploraci on BFS de una gr aca conexa desde el v ertice p
(a) C = p, r, w) en lneas 6, 15(2)
p
r
v
w
u
q
t
s
0
1
1
(b) C = r, w, u, v) en lnea 25, 15 (2)
p
r
v
w
u
q
t
s
0
1
1
2
2
(c) C = u, v, t, q) en lnea 25 (2),15 (2)
p
r
v
w
u
q
t
s
0
1
1
2 3
2
3
(d) C = t, q, s) en lnea 25 (2),15, 25(3)
p
r
v
w
u
q
t
s
0
1
1
2 3 4
2
3
Una caracterstica de la exploraci on BFS en gr acas no dirigidas es que determina si
la gr aca tiene o no ciclos. Si durante el recorrido alguna arista que se est a explorando
termina en un v ertice que ya fue visitado, quiere decir que la gr aca contiene un ciclo. Esto
se puede ver claramente porque hay dos trayectorias distintas que llevan desde el v ertice
origen hasta el v ertice de que se trata. Por ejemplo, en la gr aca de la gura 6.11, cuando
6.3 Distancias en una gr aca 273
se tiene en la cabeza de la cola al v ertice w, al tratar de explorar la arista hacia u, encuentra
este v ertice ya marcado se descubri o desde el v ertice r . Podemos ver que la trayectoria
urpw formara una trayectoria que se cerrara formando un ciclo si se agregara la arista
wu.
Podemos observar que la subgr aca generadora de la gr aca (incluye a todos los v erti-
ces) que se construye durante la ejecuci on de BFS es un arbol, pues es una subgr aca
conexa y no tiene ciclos.
Cada recorrido BFS genera una subgr aca generadora G

= (V

, E

), que contiene a
todos los v ertices de la gr aca original, si es que esta es conexa (V

corresponde a todos
los v ertices alcanzables desde el v ertice origen).
En el caso del recorrido BFS nunca se tiene que deshacer una trayectoria encontrada,
pues este queda determinado por la primera arista que descubra a un v ertice.
Veamos algunos ejemplos m as en la gura 6.12. En las gr acas de esta gura damos
direcci on a las aristas para mostrar el sentido de la exploraci on.
Figura 6.12 Ejemplos de recorridos BFS
(a) Orden: u, v, y, z, w, x, t
y
u
z
v
x
t
w
0 1
1 1
2
2
2
(b) Orden: a, b, c, d, e
a
b
c
d
e
0
1
1 1
1
(c) Orden: a, b, e, c, d
a
b
c
d
e
0
1
2 2
1
Ejercicios
6.3.1.- Demostrar que la distancia denida para gr acas cumple con las tres propiedades
que debe cumplir una medida de distancia y que son, a saber:
No negatividad: (x, y) 0; (x, y) = 0 si y s olo si x = y.
simetra: (x, y) = (y, x)
Desigualdad del tri angulo: (x, z) (x, y) + (y, z).
274 Exploraci on en gr acas
6.3.2.- Tenemos la siguiente gr aca, con su codicaci on en listas de adyacencias a su de-
recha. Da el recorrido BFS de la gr aca que se produce usando el algoritmo del
listado 6.2 y la representaci on dada para la gr aca en listas de adyacencias.
a
b
c
d
e
f
g
h
i
a
b
c
d
e
f
g
h
i
b
c
d
a e
d
a
d
f
a
b
c e f
g
b d
g
h
c
d
g
i
e f
h i d
e
g
i
h
f
g
6.3.3.- Dado el recorrido BFS marcado con aristas s olidas (el resto de las aristas son pun-
teadas), determinar las listas de adyacencias que hicieron posible este recorrido.
a
b
c
d
e
f
g
h
0
2
1
2
2
2
2
3
6.3.4.- Da las distancias de cada uno de los v ertices al v ertice a, en las gr acas que siguen.
(a)
a
b
c
d
e
f
g
h
i
j
(b)
a
b
c
d
e
f
(c)
a
b
c
d
e
f
g
6.4 Trayectorias m as cortas 275
(d)
a
b
c
d
e
f
g
h
(e)
a
b
c
d
e
f
(f)
a
b
c
d
e
f
g
h
i
6.3.5.- La siguiente gr aca representa una ciudad en la que existen dos dep ositos de gas,
marcados con los smbolos X e Y . El due no de los dep ositos desea saber desde cu al
dep osito puede alcanzar a todos los clientes, representados por v ertices, al menor
costo posible. Las aristas representan caminos entre los tanques de gas que se deben
llenar. Proporciona al due no del dep osito la respuesta.
X
a
b
c
d
e
f
Y
6.4. Trayectorias m as cortas
Muchas veces las aristas de una gr aca tienen costos asociados, como pudiera ser la
distancia entre dos ciudades, el tiempo que se lleva recorrerla o el precio que hay que pagar
por acceder a ella. En este caso tenemos lo que se conoce como una gr aca con pesos (en
ingl es, weighted graph) G = (V, E; w), donde w es una funci on que asigna a cada arista (o
arco) un valor. Este valor puede ser entero, real, o cualquier otro tipo que se pueda agregar.
Cuando este es el caso, la distancia entre el v ertice u y el v ertice v se dene como la menor
suma posible de los pesos de las aristas de las trayectorias entre u y v.
Sin embargo, como w puede ser cualquier valor, podramos encontrarnos con un caso
como el que se muestra en la Figura 6.13.
276 Exploraci on en gr acas
Figura 6.13 Ciclos negativos en una gr aca con pesos
s u
x
y
v r
-5 1
2 1
6
En el caso de esta gr aca con pesos, la distancia de u a r, por el camino u, x, v, r es
2; por el camino u, y, v, r es 9. Sin embargo, si tomamos el camino u, x, v, y, u, x, v, r la
distancia es 1. Si recorremos el ciclo n veces la distancia se va acortando, y no hay una
cota inferior para ello. Decimos entonces que no podemos calcular la distancia de u a r y
le asignamos el valor .
Tenemos algoritmos que logran detectar si existe alg un ciclo negativo en la gr aca y
entonces no calculan las distancias. En el caso del algoritmo de Dijkstra para trayectorias
m as cortas, el algoritmo supone que la gr aca no tiene ning un ciclo negativo; m as a un, que
todas las aristas tienen pesos positivos o cero. Si se presentan pesos negativos en las aristas,
aunque no excluyen por s solos que la distancia entre los v ertices est e denida, no es po-
sible demostrar la correctud del algoritmo de Dijkstra, demostraci on que no enfrentaremos
en este texto.
Algoritmo de Dijkstra para trayectorias m as cortas
El algoritmo de Dijkstra para trayectorias m as cortas encuentra la distancia entre un
v ertice origen s y todos aquellos v ertices alcanzables desde s. Como acabamos de mencio-
nar, este algoritmo trabaja unicamente con gr acas cuyas aristas tengan pesos no negativos.
Es un algoritmos bastante eciente, conocido como glot on o avido (greedy), ya que en cada
momento toma la decisi on local m as conveniente. Para ello mantiene lo que se conoce co-
mo una cola de prioridades, manteniendo a la cabeza de la cola aquel v ertice ya descubierto
cuya distancia al origen sea la menor de entre los que se encuentran en la cola. De cierta
manera trabaja muy parecido al algoritmo BFS, pues va estableciendo capas de v ertices a
una cierta distancia del v ertice origen. La diferencia principal es que mientras que en BFS
el n umero de aristas determina la distancia, en el algoritmo de distancias de Dijkstra lo que
determina las distancias es la suma de los pesos de las aristas. De esta manera, un v ertice
que pudiese estar adyacente al origen, este camino bien pudiera pesar m as que uno que es-
tuviese a dos aristas del origen. A continuaci on se encuentra el algoritmo para trayectorias
m as cortas de Dijkstra.
Objetivo: Dada una gr aca G = (V, E; w) tal que todos los pesos en las aristas son no
negativos, y un v ertice origen s, determinar v., la distancia del v ertice origen a cada
uno de los v ertices alcanzables desde s.
6.4 Trayectorias m as cortas 277
Datos: La gr aca G = (V, E; w) y s V .
Salida: El valor de v., v V tal que s v..
Estructuras de datos: Las mismas que para BFS, excepto que cada arista tiene asociado
un peso. La cola ahora es una cola de prioridades (C
P
), donde podemos elegir al que
tenga la mayor prioridad (la menor distancia anotada).
M etodo: Se encuentra en el listado 6.3.
Listado 6.3 Algoritmo de Dijkstra para distancias
1 /
*
I n i c i a l i z a c i on :
*
/
2 v V :
3 v.
4 v. nulo
5 /
*
Ci c l o : v V :
6 s. 0
7 C
P
s)
8 /
*
Pr oces ar al que e s t e al f r e n t e de l a c ol a .
*
/
9 Mi ent r as C ,=
10 u v t a l que v. x. , para t oda x C
11 v l i s t a de adyacenci as de u :
12 v u.primero; w (u, v).peso
13 Si v. ==
14 v. u. + w
15 v. u
16 C
P
C
P
+ v
17 /
*
Fi n : v. ==
*
/
18 Si v. > u. + w
19 v. u. + w
20 v. = u
21 /
*
Fi n : v. > u. + w
*
/
22 /
*
Ci c l o : v l i s t a de ady ac e nc i as de u
*
/
23 C
P
= C
P
u
24 /
*
Ci c l o : Mi ent r as C ,=
*
/
25
26 /
*
Repor t a Re s ul t ados :
*
/
27 v V
28 /
*
( Repor t a d i s t a n c i a )
*
/
29 Escr i be "Distancia de "+ s+" a " +v+" es "+v.
30 /
*
( Repor t a cami no )
*
/
31 Repi t e :
32 Reporta v
33 u u.
34 hast a que u == nulo
35 /
*
Ci c l o : v V
*
/
278 Exploraci on en gr acas
Ejemplo 6.5. Apliquemos el algoritmo a la gr aca de la gura 6.14 cuya representaci on con listas
de adyacencias se encuentra en la tabla 6.1.
Figura 6.14 Algoritmo de Dijkstra para trayectorias m as cortas
s
o
t
q
u
p
v
r
w
3 1
3 2
1
3
1
3
4
1
2 2
1 3
5
2
Tabla 6.1 Listas de adyacencias para la gr aca en la gura 6.14
v ertice v ertices adyacentes: (peso(u, v), v)
s (3, o) (1, t) (2, q)
o (3, s) (1, t) (2, u) (3, p)
t (1, o) (1, s) (3, q)
q (2, s) (3, t) (3, u) (4, r)
u (2, o) (3, q) (1, p) (1, r)
p (3, o) (2, v) (5, w)
v (2, p) (1, r) (2, w)
r (4, q) (1, u) (1, v) (3, w)
w (5, p) (2, v) (3, r)
En la gura 6.15 mostramos a la derecha de la gr aca, arriba, el signicado del tipo
de lnea que une a dos v ertices y, abajo, en una tabla, la distancia con la que qued o cada
v ertice, medida desde el v ertice s, y el orden en que fue llegando cada v ertice al frente de
la cola de prioridades. Este orden depende del orden de los v ertices (o aristas) en las listas
de adyacencias (incidencias) de cada v ertice.
6.4 Trayectorias m as cortas 279
Figura 6.15 Distancias con el algoritmo de Dijkstra
s
o
t
q
u
p
v
r
w
3 1
3 2
1
3
1
3
4
1
2 2
1 3
5
2
0
2
1
4
4
5
6
5
8
aristas usadas no incluidas
aristas incluidas y quitadas
aristas que dan la distancia
v
i
s o t q u p r w v
0 3, 2 1 2 4 5 6, 5 10, 8 7, 6
orden 1 3 2 4 5 6 7 9 8
Las aristas se van tomando en el orden en que est an en la lista de adyacencias de cada
v ertice cuando este llega al frente de la cola de prioridades. La gr aca resultante es producto
de este orden y el peso especco de las aristas.
En ocasiones podemos tener otra gr aca como resultado y esta situaci on se da cuando
se puede llegar a un v ertice desde dos v ertices distintos pero con la misma distancia. Si
las aristas se toman en orden distinto o cambiamos el orden de selecci on entre v ertices
que tienen la misma distancia y esta los coloca al frente de la cola, podemos terminar
con trayectorias del mismo tama no pero que visitan diferentes v ertices. Esto sucede, por
ejemplo, si al elegir entre o y q, ambos con distancia 2, se elige al v ertice que no se eligi o en
una ejecuci on anterior. Tambi en sucede entre los v ertices p y r.
Veamos algunos ejemplos m as del uso del algoritmos de distancias de Dijkstra. La cola
de prioridades aparecer a en orden de prioridad, no en el orden en que ingresaron los v ertices
a la misma. Las listas de adyacencias se van a considerar ordenadas alfab eticamente.
Ejemplo 6.6. En la gura 6.16 de la siguiente p agina vemos nuevamente la ejecuci on del algoritmo
de Dijkstra para trayectorias m as cortas.
280 Exploraci on en gr acas
Figura 6.16 Trayectorias m as cortas
(a)
a
e
c
d
b
f
4
9
3
6
4
15
10
3
0
C = (a, 0))
(b)
a
e
c
d
b
f
4
9
0
4
9
3
6
4
15
10
3
C = (a, 0); (c, 4); (e, 9))
(c)
a
e
c
d
b
f
4
9
3
15
4
0
4
9
7
8
19
6
10
3
C = (c, 4); (e, 9); (b, 7); (f, 19); (d, 8))
(d)
a
e
c
d
b
f
4
9
3
4
6
0
4
9
7
8
13
6
10
3
15 15
C = (b, 7); (d, 8); (e, 9); (f, 13))
(e)
a
e
c
d
b
f
4
9
3
4
6
0
4
9
7
8
13
6
10
3
15 15
C = (d, 8); (e, 9); (f, 13))
(f)
a
e
c
d
b
f
4
9
3
4
3
0
4
9
7
8
12
6
10
15 15
6
C = (e, 9); (f, 12))
6.4 Trayectorias m as cortas 281
Figura 6.16 Trayectorias m as cortas (contin ua. . . )
(g)
a
e
c
d
b
f
4
9
3
4
3
0
4
9
7
8
12
6
10
15 15
6
C = (f, 12))
(h)
a
e
c
d
b
f
4
9
3
4
3
0
4
9
7
8
12
6
10
15 15
6
C =
En la gura 6.16 mostramos el progreso del algoritmo de Dijkstra para trayectorias m as
cortas.
(a) En la subgura 6.16(a) se encuentra el estado de la gr aca y la cola de prioridades
al iniciarse el ciclo, despu es de la inicializaci on. El v ertice a, que es el origen, se
encuentra como unico elemento de la cola y su distancia es 0.
(b) Los v ertices c y e entran a la cola de prioridades ya que son descubiertos desde a.
Entran a la cola con su distancia a a. Esto se muestra en la subgura 6.16(b).
(c) Se elimina a a de la cola y queda c al frente de la cola, ya que es el v ertice con la
distancia menor registrada que se encuentra en la cola. Desde c se descubre a b, d y
f, que entran a la cola con sus distancias al v ertice a, pero pasando por el v ertice c.
Este estado se muestra en la subgura 6.16(c).
(d) En la subgura 6.16(d) se muestra la salida del v ertice c de la cola porque ya fue
procesado; el v ertice al frente de la cola es b, porque es el que presenta la menor
distancia al v ertice a de entre los que se encuentran en la cola; como el camino desde
a a f que pasa por b es m as corto que el que pasa por c, se corrige la distancia a f y
la trayectoria m as corta hasta el momento de a a f.
(e) Se elimina a b de la cola y queda como primero en la misma el v ertice d. No se descu-
bre a ning un v ertice que no est a ya en la cola, ni cambia ninguna de las trayectorias.
(f) Se elimina a d de la cola, quedando al frente de la misma el v ertice e. La trayectoria
de a a f que pasa por d es m as corta que la que pasa por b, por lo que se corrige la
distancia a f y la trayectoria, obligando a que ahora pase por e.
(g) Sale e de la cola, quedando f al frente de la misma y como unico elemento. Desde f
no hay ninguna trayectoria que corregir y no queda ya ning un v ertice por descubrir
que sea adyacente a f, por lo que en esta iteraci on no se hace nada.
282 Exploraci on en gr acas
(h) Se saca a f de la cola, quedando esta vaca, por lo que ya no se vuelve a entrar al
ciclo.
A diferencia del algoritmo BFS, el algoritmo de Dijkstra para trayectorias m as cortas
s debe deshacer trabajo ya hecho. Sin embargo, este trabajo no es signicativo, pues el
peor caso se va a presentar si cada arista que se explora obliga a cambiar las distancias
y la trayectoria. Pero tanto la distancia como la trayectoria representan un cambio en los
campos y de cada v ertice, por lo que la construcci on de la trayectoria y la denici on de
la distancia unicamente involucra, en el peor caso, dos pasos por cada arista en la gr aca.
Pero notar an que en cada ciclo se tiene que salir del mismo con la cola de prioridades
actualizada, esto es, con el v ertice de menor distancia al frente. Podemos pensar en man-
tener la lista ordenada, pero esto es muy costoso, por lo que nos vamos a conformar con
mover al v ertice con la menor distancia al frente de la cola. Hay algoritmos ecientes que
logran esto y depende de la estructura de datos que se elija para almacenar a la cola de prio-
ridades. De cualquier forma, al costo de procesar los caminos y las distancias le debemos
agregar el costo de mantener la cola de prioridades, que puede ser tan bajo como nlog n.
Por lo que el costo de encontrar el camino con pesos en las aristas es m as costoso que el
problema similar con pesos homog eneos en las aristas.
Es importante notar tambi en que una vez que un v ertice llega al frente de la cola es
porque ya alcanz o su trayectoria m as corta. Por lo tanto, ninguna iteraci on va a modicar
su distancia. Esto se demuestra en un curso de an alisis de algoritmos (y es la raz on por la
que los pesos en las aristas deben ser no negativos).
Ejercicios
6.4.1.- Si alguna de las aristas tuviese peso negativo, en qu e punto fallara el algoritmo de
Dijkstra para trayectorias m as cortas?
6.4.2.- En las siguientes gr acas, encuentra las trayectorias m as cortas dadas por el algo-
ritmo de Dijkstra para distancias.
(a)
a
b
c
d
e f
5
2
4
1
1
2
6
3
7
2
(b)
a
b
c
d
e
f
3
4
2
2
2
2
1
4
1
3
6.4 Trayectorias m as cortas 283
(c)
a
b
d
f
c
e
3
9 8
3
3
5
3 9
4
6
(d)
a
e
b
f
i
c
g
j
d
h
4
3 2 5
4 5
1
1
2
3
1
4
2
6
6.4.3.- Modica el algoritmo de distancias de Dijkstra para que produzca la distancia entre
dos v ertices dados en una gr aca con pesos en las aristas.
6.4.4.- Dado el siguiente arbol de distancias de Dijkstra que corresponde a una gr aca
con pesos en las aristas, reconstruye las listas de adyacencias que fueron usadas al
ejecutarse el algoritmo.
a
d
b
c
e
f 3
2 2
2
3
3
1
6.4.5.- Supongamos que queremos movernos en el sistema de transporte p ublico de la
ciudad. Describe a la gr aca con pesos en las aristas que modelan a los siguientes
problemas:
(a) Cu al es el menor tiempo requerido para viajar entre dos puntos?
(b) Cu al es la menor distancia que se tiene que recorrer para viajar de un punto a
otro?
(c) Suponiendo que cada uno de los tipos de transporte tiene un costo distinto, cu al
es la manera m as econ omica de llegar de un punto a otro de la ciudad?
6.4.6.- Se podra modicar el algoritmo de Dijkstra para que encuentre la trayectoria m as
larga entre cualesquiera dos puntos? Justica tu respuesta.
284 Exploraci on en gr acas
6.4.7.- Si tenemos aristas con pesos negativos en una gr aca con pesos en las aristas, pero
de tal manera que no haya ciclos negativos, podemos modicar la gr aca de al-
guna manera para poder usar el algoritmo de Dijkstra para distancias? Justica tu
respuesta.
6.5. N umero de caminos
Queremos saber el n umero de caminos de una cierta longitud que hay entre cualesquiera
dos v ertices o, simplemente, si existen caminos de una cierta longitud entre dos v ertices.
Esta informaci on es importante cuando queremos operar sobre una red y deseamos saber
qu e tan conectados est an unos v ertices con otros.
6.5.1. Matrices de adyacencias
El siguiente teorema nos dice c omo obtener el n umero de caminos de una cierta longitud
entre dos v ertices cualesquiera.
Teorema 6.5 Sea G = (V, E) con [V [ = n y los v ertices etiquetados v
1
, v
2
, . . . , v
n
. Sea A la matriz
de adyacencias de G, con a
i,j
la entrada que corresponde a los v ertices i y j. Entonces, el
n umero de caminos de longitud m entre los v ertices v
i
y v
j
est a dado por a
i,j
en A
m
, donde
A
m
corresponde a la multiplicaci on de la matriz A por s misma m veces.
Demostraci on.
Demostraremos el teorema por inducci on sobre m.
Base: Para m = 1, el n umero de caminos entre el v ertice v
i
y el v ertice v
j
de tama no uno
es 0 o 1, dependiendo de si hay una arista entre v
i
y v
j
. Esta es precisamente la denici on
de matriz de adyacencias.
Hip otesis de inducci on: Supongamos que la matriz A
m1
contiene para cada pareja i, j
el n umero de caminos distintos entre v
i
y v
j
de tama no m1.
Paso inductivo: Veamos qu e y c omo se calcula A
m
, represent andola como a
m
i,j
.
a
m
i,j
=
n

k=1
a
i,k
a
m1
k,j
a
i,k
nos dice si hay un camino de longitud 1 de v
i
a v
k
, y a
m1
k,j
nos dice cu antos caminos
hay de v
k
a v
j
de longitud m 1. Para calcular el n umero de caminos de longitud m
tratamos de extender los caminos de longitud m1, de la siguiente manera:
6.5 N umero de caminos 285
Para ir de v
i
a v
j
con un camino de longitud m, vemos cu ales v ertices v
k
tienen caminos
de longitud m 1 hacia v
j
, y aumentamos el camino con todos los v ertices v
k
que
tienen caminos de longitud 1 desde v
i
. Si no hay arista de v
i
a v
k
el camino no puede ser
extendido. Si hay, vamos a sumar todos los posibles caminos que cumplan con esto.
En A
m
queda el n umero de caminos de longitud m entre cualesquiera dos v ertices.
Ejemplo 6.7. Fij emonos en la gura 6.17, donde la matriz A
1
corresponde simplemente a la matriz
de adyacencias de la gr aca.
Debemos notar que esta forma de calcular el n umero de caminos entre cualesquiera dos
v ertices de una gr aca tambi en nos puede llevar a decidir f acilmente si existe un camino
entre cualesquiera dos v ertices.
Para este ultimo punto, podemos observar que si una gr aca tiene n v ertices, lo m as
alejados que pueden estar dos v ertices entre s es por n 1 aristas; por lo tanto, si tenemos
una gr aca G = (V, E) con n v ertices y la matriz de adyacencias A para esa gr aca, la
pregunta de si la gr aca es o no conexa se puede resolver obteniendo sucesivamente A
k
,
para k = 1, 2, . . . n1, lo que nos dara, para cada k, si existen o no caminos de longitud k
entre dos v ertices. Como a lo m as tenemos que calcular la potencia n1, si alguna entrada
de la matriz se mantiene en 0 en todas estas matrices, quiere decir que esos v ertices no
est an conectados.
Ejemplo 6.8. Si bien la matriz A
k
(la matriz de adyacencias multiplicada por s misma k veces)
nos da el n umero de caminos de longitud k, pudiera ser que para una pareja particular
de v ertices no existiera ning un camino de longitud 2, por ejemplo, pero que s existieran
caminos de longitud 1 y 3. Tal es el caso de los v ertices v
1
y v
2
en la gr aca de la gura 6.18.
Para obtener si hay una trayectoria cualquiera entre dos v ertices hay que obtener, de
alguna manera, la suma de todas estas matrices. Por ejemplo, Anos dice si est an conectados
por un camino de longitud 1, A + A
2
nos indica si hay caminos de longitud 2 o menores
entre cualesquiera dos v ertices; A+A
2
+A
3
si hay alg un camino de longitud menor o igual
a 3; y as sucesivamente. Podramos denir a estas matrices de la siguiente forma:
A
1
=A;
A
n
=A
n1
+A
n
;
donde A
n
tiene el signicado que le dimos en los p arrafos anteriores. De esta manera, la
entrada (i, j) de la matriz A
n
(m
n
ij
) nos indicara el n umero de caminos de longitud menor
o igual a n entre los v ertices v
i
y v
j
de la gr aca.
286 Exploraci on en gr acas
Figura 6.17 N umero de caminos de longitud 3
v
4
v
1
v
2
v
3
v
1
v
2
v
3
v
4
v
1
0 1 1 1
v
2
1 0 1 1
v
3
1 1 0 0
v
4
1 1 0 0
( )
A
1
:
_
_
_
_
_
_
_
_
0 1 1 1
1 0 1 1
1 1 0 0
1 1 0 0
_
_
_
_
_
_
_
_
A
2
:
_
_
_
_
_
_
_
_
0 1 1 1
1 0 1 1
1 1 0 0
1 1 0 0
_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_
3 2 1 1
2 3 1 1
1 1 2 2
1 1 2 2
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
3 2 1 1
2 3 1 1
1 1 2 2
1 1 2 2
_
_
_
_
_
_
_
_
A
3
:
_
_
_
_
_
_
_
_
0 1 1 1
1 0 1 1
1 1 0 0
1 1 0 0
_
_
_
_
_
_
_
_

_
_
_
_
_
_
_
_
4 5 5 5
5 4 5 5
5 5 2 2
5 5 2 2
_
_
_
_
_
_
_
_
Las matrices para este caso (corroborar si se desea) seran las que se encuentran en la
gura 6.19.
Figura 6.18 No existe camino de longitud 2 entre 1 y 2
1 2
3 4
6.5 N umero de caminos 287
Figura 6.19 Resultado de multiplicar matrices de adyacencias por s mismas
0 1 1 0
1 0 0 1
1 0 0 1
0 1 1 0
( )
A
1
:
2 0 0 2
0 2 2 0
0 2 2 0
2 0 0 2
( )
A
2
:
0 4 4 0
4 0 0 4
4 0 0 4
0 4 4 0
( )
A
3
:
Ejemplo 6.9. Veamos la gr aca de la gura 6.20. Vamos a tratar de determinar si la gr aca es
conexa, aplicando la suma y multiplicaci on de las matrices de adyacencias.
Figura 6.20 Conexidad en gr acas mediante n umero de caminos
a
b
c
d
e
f
g
h
a b c d e f g h
a
b
c
d
e
f
g
h
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0 1 1 0 0 0 0 0
1 0 1 1 0 0 0 0
1 1 0 1 1 0 0 0
0 1 1 0 1 1 0 0
0 0 1 1 0 0 1 0
0 0 0 1 0 0 1 1
0 0 0 0 1 1 0 1
0 0 0 0 0 1 1 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
El n umero de caminos de longitud 2 entre cualesquiera dos v ertices est a dado por la
matriz de adyacencias multiplicada por s misma, mientras que el n umero de caminos de
longitud 3 entre cualesquiera dos v ertices est a dado por A
3
:
A
2
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
2 1 1 2 1 0 0 0
1 3 2 1 2 1 0 0
1 2 4 2 1 1 1 0
2 1 2 4 1 0 2 1
1 2 1 1 3 2 0 1
0 1 1 0 2 3 1 1
0 0 1 2 0 1 3 1
0 0 0 1 1 1 1 2
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
A
3
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
2 5 6 3 3 2 1 0
5 4 7 8 3 1 3 1
6 7 6 8 7 3 2 2
3 8 8 4 8 7 2 2
3 3 7 8 2 2 6 2
2 1 3 7 2 2 6 4
1 3 2 2 6 6 2 4
0 1 2 2 2 4 4 2
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
288 Exploraci on en gr acas
Revisemos algunas parejas de v ertices para ver que, en efecto, el n umero de caminos
dado por las potencias de la matriz es correcto. Por ejemplo, el n umero de caminos de
longitud 2 que salen de a y regresan a a est a dado por la entrada m
2
aa
= 2, y corresponden
a aba y aca. S olo hay un camino de longitud 2 entre d y e, que corresponde a dce.
Cualquier otro camino entre d y e es de longitud distinto a 2.
Para los caminos de longitud 3, especicados en la matriz A
3
, podemos observar que
hay 3 caminos de longitud 3 entre c y f, a saber, cbdf, cedf y cegf. Cualquier
otro camino tiene longitud distinta a 3.
Mostramos a continuaci on las matrices obtenidas de las distintas potencias. Lo unico
realmente interesante es que en A
3
todava no hay camino entre a y h (m
3
ha
= m
3
ah
= 0),
aunque en A
4
deberemos poder ya alcanzar todos los v ertices desde cualquier otro v ertice,
pues el camino simple m as largo entre dos v ertices tiene longitud 4.
A
4
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
11 11 13 16 10 4 5 3
11 20 20 15 18 12 5 4
13 20 28 23 16 12 12 5
16 15 23 31 14 8 17 9
10 18 16 14 21 16 6 8
4 12 12 8 16 17 8 8
5 5 12 17 6 8 16 8
3 4 5 9 8 8 8 8
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
A
5
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
24 40 48 38 34 24 17 9
40 46 64 70 40 24 34 17
48 64 72 76 63 40 33 24
38 70 76 60 71 57 31 25
34 40 63 71 36 28 45 22
24 24 40 57 28 24 41 25
17 34 33 31 45 41 22 24
9 17 24 25 22 25 24 16
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
A
4
dice que hay 3 caminos de longitud 4 entre a y h. Ellos son: abdfh, acegh
y acdfh. Como vemos en A
3
, A
2
y A, no hay caminos de longitud menor a 4; como
vemos de A
5
hay 9 caminos de longitud 5. Estos 9 caminos se obtienen cuando, para cada
uno de los caminos de longitud 4 (que son 3) en lugar de seguir hacia h pasamos al v ertice
de enfrente. Tomemos el camino acegh por ejemplo. De este camino obtenemos 3
de longitud 5, si desde c subimos a b y seguimos hacia h (acbdfh), desde e subimos
a d (acedfh) o desde g subimos a h ((acegfh).
En resumen, si nos interesa saber si hay alguna trayectoria entre dos v ertices tenemos
que observar si para alguna de las potencias de la matriz hay una entrada distinta de cero
en esa posici on de la matriz. No obtenemos esta informaci on simplemente de observar
A
k
, pues pudiese haber caminos de longitudes distintas a k, pero ninguno exactamente de
longitud k.
Para obtener la informaci on de si hay o no camino, o de cu antos caminos hay de cual-
quier longitud (menores a n) hay que sumar las entradas de las potencias de las matrices.
Por ejemplo, para saber si dos v ertices est an conectados por alg un camino de longitud me-
nor a 3, basta sumar A, A
2
y A
3
. Podemos denotar con S
3
al resultado de sumar A+A
2
+A
3
6.5 N umero de caminos 289
y con s
3
ij
al elemento en el rengl on i columna j de S
k
. Cada s
k
ij
, i = 1, . . . , n, j = 1, . . . , n
se calcula como sigue:
s
r
ij
= m
ij
+m
2
ij
+. . . +m
r
ij
=
_

_
s
r1
ij
+

n
k=1
m
r1
ik
m
kj
si r > 1
m
ij
si r = 1
Ejemplo 6.10. Apliquemos esta operaci on a la gr aca de la gura 6.20.
A +A
2
+ A
3
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
4 6 7 5 4 2 1 0
6 7 9 9 5 2 3 1
7 9 10 10 8 4 3 2
5 9 10 8 9 7 4 3
4 5 8 9 5 4 6 3
2 2 4 7 4 5 7 5
1 3 3 4 6 7 5 5
0 1 2 3 3 5 5 4
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
En esta matriz podemos observar que no hay camino, de longitud menor o igual que 3,
entre a y h. Por ejemplo, entre los v ertices d y f no hay caminos de longitud 2, pero s de
longitud 1 y 3. Al observar la matriz de las sumas vemos que en la matriz que representa a
las sumas, la posici on M
df
es distinta de cero.
Si unicamente queremos saber si hay alg un camino entre dos v ertices, podemos modi-
car ligeramente el algoritmo y hacer una operaci on l ogica de disyunci on en lugar de la
suma. Llamemos a esta matriz C
r
y a cada elemento de la misma c
r
ij
. La f ormula para el
c alculo de esta matriz queda como sigue:
c
r
ij
= m
ij
m
2
ij
. . . m
r
ij
=
_

_
c
r1
ij

_
n
k=1
m
r1
ik
m
kj
si r > 1
m
ij
si r = 1
La interpretaci on de corresponde al resultado de hacer una disyunci on l ogica, interpre-
tando a 0 como falso y a 1 como verdadero. El signicado de la f ormula es que va a haber
un camino entre el v ertice v
i
y el v ertice v
j
, si es que para alguna k existe un camino entre
290 Exploraci on en gr acas
el v ertice v
i
y el v ertice v
k
y hay una arista entre el v ertice v
k
y el v ertice v
j
. En este tipo
de c alculo s olo se verica si hay o no camino.
Para saber si tenemos una gr aca conexa obtenemos A
k
, donde A es la matriz de adya-
cencias y k = 1, . . . , n1. Como ya vimos, si es que hay alg un camino entre dos v ertices,
v
i
y v
j
, este camino tiene que ser de longitud menor o igual a n 1. Como C
r
nos indica
si hay alg un camino de longitud menor o igual a r, este algoritmo, que se debe a Warshall
de quien toma su nombre, nos indicar a en C
n1
si hay alg un camino entre cualesquiera dos
v ertices de la gr aca.
Ejemplo 6.11. Veamos la matriz de adyacencias de la gr aca en la gura 6.20 y trabajemos con el
algoritmo de Warshall para saber en cu al iteraci on se determina que la gr aca es conexa.
C
1
= A =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0 1 1 0 0 0 0 0
1 0 1 1 0 0 0 0
1 1 0 1 1 0 0 0
0 1 1 0 1 1 0 0
0 0 1 1 0 0 1 0
0 0 0 1 0 0 1 1
0 0 0 0 1 1 0 1
0 0 0 0 0 1 1 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
C
2
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1 1 0 0 0
1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 0
1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1
0 1 1 0 1 1 1 1
0 0 1 1 0 1 1 1
0 0 0 1 1 1 1 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
C
3
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
C
4
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
6.5 N umero de caminos 291
C
5
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
C
6
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
De los productos obtenidos del algoritmo de Warshall podemos observar lo siguiente:
i. En C
3
la entrada para c
ah
= c
ha
es 0, lo que quiere decir que no hay ning un camino
de longitud menor o igual a 3 entre los v ertices a y h, lo que podemos observar
directamente en la gr aca.
ii. En C
4
podemos observar que todas las entradas en la matriz son 1, lo que quiere decir
que hay alg un camino de longitud menor o igual a 4 entre cualesquiera dos v ertices.
iii. A partir de C
4
el contenido de la matriz ya no cambia, pues ya se encontr o un camino
entre cualesquiera dos v ertices. No mostramos ya C
7
para ahorrar espacio, aunque
es claro que va a ser igual a las tres matrices anteriores.
6.5.2. Colof on
El algoritmo de Warshall es lo que se conoce como un algoritmo de punto jo, esto
es, a partir de una determinada iteraci on el resultado de la ejecuci on ya no cambia. En el
caso de este algoritmo, la iteraci on corresponde, a m as tardar, a una menos que el n umero
de v ertices, aunque como ya vimos, esto puede suceder antes. Nos vamos a encontrar con
muchos algoritmos de punto jo en ciencias de la computaci on. Este atributo es importante
porque nos garantiza que el algoritmo va a terminar.
Es claro que la representaci on m as conveniente de una gr aca va a depender de los pro-
cesos que queramos aplicarle o de las preguntas que deseamos hacer respecto a la gr aca.
Si la pregunta se reere a la conexidad de una gr aca, podemos aplicar cualquiera de los
algoritmos de exploraci on que vimos (BFS o ciclos eulerianos) y en un n umero relativa-
mente bajo de operaciones (proporcional a la suma del n umero de v ertices con el n umero
292 Exploraci on en gr acas
de aristas) determinar si existe un camino desde alguno de los v ertices a cualquier otro. Al
nal del algoritmo simplemente tenemos que observar si todos los v ertices quedaron con
una distancia denida, y si es as la gr aca es conexa. Si alg un v ertice qued o con distancia
indenida (), entonces no hay camino a el desde el v ertice origen. Si usamos el algoritmo
BFS podemos averiguar la distancia entre el v ertice origen y cualquiera de los otros v erti-
ces en la gr aca, pero para saber la distancia entre cualesquiera dos v ertices tendramos que
ejecutar el algoritmo tomando como origen a cada uno de los v ertices de la gr aca, lo que
nos llevara un n umero de operaciones proporcional a n
2
, donde n es el n umero de v ertices
en la gr aca. El algoritmo de Warshall ejecuta n
2
operaciones para obtener cada matriz de
caminos, por lo que ejecuta un n umero de operaciones proporcional a n
3
para obtener la
conexidad de la gr aca. Sin embargo, como estamos hablando de matrices sim etricas, se
pueden usar representaciones especcas para matrices triangulares y disminuir el n umero
de operaciones a ejecutar.
Encontrar el n umero de caminos de determinada longitud en una gr aca representada
por listas, ya sea de adyacencias o incidencias, se ve bastante m as complicado. Habra
que seguir todos los posibles caminos para ver si alguno llega al v ertice deseado, lo que
supondra muchos caminos fallidos. Tambi en es difcil responder ecientemente en esta
representaci on a la pregunta de si existe alg un camino entre dos v ertices cualesquiera. Esto
se deber a repetir para cualquier pareja de v ertices y no sirve el trabajo hecho para otra
pareja cualquiera. En cambio, con la matriz de adyacencias, todos los caminos se calculan
simult aneamente.
En contrapartida, ejecutar un algoritmo como BFS o DFS sobre una gr aca represen-
tada en una matriz involucra revisar todo el rengl on o la columna correspondiente para
encontrar el siguiente v ertice a explorar, o para determinar si quedan aristas sin usar. Esto
agregara muchas operaciones, por cada operaci on que se realiza en una lista de adyacen-
cias.
Si representamos una relaci on de equivalencia con una gr aca no dirigida, el algoritmo
de Warshall encuentra lo que se conoce como la cerradura transitiva de la relaci on, esto
es, cu ales v ertices est an relacionados, usando transitividad y simetra.
Para terminar con este tema deseamos remarcar que cuando se va a procesar una gr aca
usando una computadora es importante tener claro el tipo de preguntas que se desean hacer,
ya que de ello depende la representaci on interna que se le d e a la gr aca y que va a llevar a
procesos m as ecientes si esta representaci on es la adecuada.
Ejercicios
6.5.1.- Supongamos que tenemos una gr aca con pesos en las aristas sin ciclos negativos.
El algoritmo de Floyd trabaja de manera similar a como lo hace el algoritmo de
Warshall; lo presentamos a continuaci on:
6.5 N umero de caminos 293
Algoritmo de Floyd para distancias
Objetivo: Encontrar la distancia entre cualesquiera dos v ertices para una gr aca con
pesos en las aristas.
Datos: La gr aca representada con una matriz de pesos, esto es, en cada entrada de
la matriz se encuentra el peso de la arista que conecta a esos v ertices. Para el
caso de que no haya arista, se registra como distancia .
Salida: Una matriz D donde en la entrada d
ij
= d
ji
se encuentra la distancia entre
los v ertices v
i
y v
j
.
M etodo: Se multiplica la matriz por s misma; en cada operaci on se selecciona la
trayectoria m as corta hasta el momento. El algoritmo se encuentra en el lista-
do 6.4.
Listado 6.4 Algoritmo para distancias de Floyd
1 /
*
I n i c i a l i z a c i on
*
/
2 i = 1, . . . , n
3 j = 1, . . . , n
4 d
ij
= matriz
ij
5 i = 1, . . . , n
6 j = 1, . . . , n
7 k = 1, . . . , n
8 dist = d
ik
+ d
kj
9 i f dist < d
ij
10 d
ij
= dist
Supongamos que la gr aca de la gura 6.20 tenga pesos homog eneos en sus aristas
(pensemos que es 1).
(a) Cu al es la matriz inicial de distancias?
(b) Cu al es el resultado de aplicar el algoritmo de Floyd a esta gr aca?
6.5.2.- Calcula el n umero de caminos de longitud menor o igual a 3 en cada una de las
siguientes gr acas:
(a)
v
1
v
2
v
3
v
4
v
5
(b)
v
1
v
2
v
3
v
4
v
5
v
6
(c)
v
1
v
2
v
3
v
4
v
5
v
6
v
7
v
8
294 Exploraci on en gr acas
6.5.3.- Para cada una de las gr acas del ejercicio anterior determina las distancias entre
todas las parejas de v ertices.
6.5.4.- Encuentra las distancias entre cualquier pareja de v ertices en la siguiente gr aca:
a
d
b
c
3
2
7
6
5
4
6.5.5.- Determina cu al es la trayectoria m as corta que hace que todos los v ertices de la
siguiente gr aca queden conectados, usando para ello la versi on adecuada del algo-
ritmo de Warshall.
e
a
b
c
d
6.5.6.- Prueba que el elemento a
ii
de la matriz A
2
, donde A es la matriz de adyacencias de
una gr aca, contiene el grado del v ertice i.
Modelado con
gr acas
7
7.1. Coloraci on
Supongamos que tenemos que organizar el calendario de ex amenes nales para los
estudiantes de primer semestre. Tenemos el problema que mientras que los cursos unica-
mente se llevan una hora al da (dos para C alculo), los ex amenes nales tienen que durar
dos horas. Se desea que el examen inicie a la hora que le corresponde al curso. Deseamos
tambi en, de preferencia, que a los alumnos de un semestre dado no les toque en un mismo
da dos ex amenes del mismo semestre. Por lo tanto, debemos evitar que cursos llevados
por el mismo estudiante tengan como fecha de examen nal perodos o salones que se
intersecten.
Podemos modelar este problema con gr acas: cada curso corresponde a un v ertice de la
gr aca; existe una arista entre dos v ertices si y s olo si esas materias se intersectan en hora-
rio. El m aximo n umero de materias para las tres carreras del departamento de matem aticas
es cinco, por lo que si repartimos las materias en los cinco das no debera haber problemas.
La restricci on debiera ser que dos materias que est an relacionadas entre s por el horario no
les toque el mismo da.
Veamos el primer semestre para la carrera de Ciencias de la Computaci on. La lista de
materias que se llevan en primer semestre, con los horarios, se encuentra en la tabla 7.1. La
gr aca que corresponde a estas incompatibilidades se encuentra en la gura 7.1.
Lo que debemos hacer es asignar das distintos a v ertices adyacentes; a cada da lo
296 Modelado con gr acas
podemos pensar como un color distinto y pintar (colorear) los v ertices de la gr aca de tal
manera que no haya dos v ertices adyacentes con el mismo color. En general, si contamos
con un n umero innito de colores podramos dar a cada v ertice su propio color, pero esto
no es as: contamos con un n umero nito de colores, muchas veces acotado como es este
caso en que los ex amenes se deben realizar todos en 5 das por lo que el problema en
realidad se puede describir como la coloraci on de una gr aca con el menor n umero posible
de colores.
Tabla 7.1 Incompatibilidades en ex amenes nales
V ertice Materia Grupos Horario
A1

Algebra Superior I 4000 7-9
A2

Algebra Superior I 4001 8-10
A3

Algebra Superior I 4002 a 4007 9-11
A4

Algebra Superior I 4008 a 4012 12-14
C1 C alculo Diferencial e Integral I 4018 8-10
C2 C alculo Diferencial e Integral I 4019 a 4029 10-12
G1 Geometra Analtica I 4037 a 4042 9-11
G2 Geometra Analtica I 4043 a 4048 12-14
M1 Matem aticas Discretas 7000 9-11
M2 Matem aticas Discretas 7001 13-15
Figura 7.1 Gr aca de incompatibilidades para ex amenes
A1
C1
A2
M1
A3
G1
C2
G2
A4
M2
Tratemos de asignar colores de izquierda a derecha. A A1 le podemos asignar cualquie-
ra de los colores, digamos rojo. A continuaci on, a C1 y A2 no les podemos asignar rojo,
7.1 Coloraci on 297
porque son adyacentes a A1, ni tampoco el mismo color a ambos porque son adyacentes
entre s; por lo tanto, asign emosles amarillo y verde respectivamente.
En el siguiente nivel, podemos volver a asignar a M1 el rojo, pero como tenemos dispo-
nibles todava 2 colores sin usar, asignemos el negro; podemos usar el rojo para G1 o A3,
y como A1 es la misma materia que A3, se lo asignamos a A3. A G1 le podemos asignar
el quinto color que tenemos todava disponible, el azul.
A C2 no le podemos asignar ninguno de negro, rojo o azul; de igual manera en que lo
hicimos con A1 y A3 le asignamos amarillo, que es el color asignado a C1 que corresponde
a la misma materia.
Para los tres v ertices del componente del lado derecho, bajo el razonamiento que hemos
dado hasta ahora, asignamos rojo a A4, azul a G2 y negro a M2. Con esto terminamos de
colorear la gr aca y queda como se muestra en le gura 7.2.
Figura 7.2 Coloraci on de la gr aca de incompatibilidades para ex amenes
Muestra de colores (tonos de gris) a utilizar
lunes: rojo martes: amarillo mi ercoles: verde
jueves: negro viernes: azul
C1
A2
G1
C2
G2
M1
A3
A1
A4
M2
Prevalece la pregunta de si 5 es el menor n umero de colores con el que se puede colorear
esta gr aca. Si revisamos con cuidado esta gr aca veremos que no se puede colorear con
menos de 5 colores, ya que M1, por ejemplo, es adyacente a 4 v ertices, que son adyacentes
dos a dos entre s, por lo que no se puede repetir ning un color entre ellos ni con M1.
Veamos otro ejemplo. Supongamos que estamos tratando de programar presentaciones
de libros en la Feria Internacional del Libro. Cada compa na editora tiene un determinado
n umero de libros que presentar, y los autores de los libros deben estar presentes, as como
el representante de la editorial. Aunque no es com un, podramos tener m as de un libro por
autor, por lo que un mismo autor no puede estar en dos presentaciones a la vez.
Para modelar este problema tendremos un v ertice por cada libro a presentar, y habr a una
arista entre dos v ertices si es que son de la misma editorial, del mismo autor o tienen
298 Modelado con gr acas
presentadores en com un. La lista de libros a presentar se encuentra en la tabla 7.2.
Tabla 7.2 Presentaciones de libros en la Feria del libro
V ertice Autor Editorial
v
1
Magidin Trillas
v
2
Dehesa Siglo XXI
v
3
Viso Trillas
v
4
Miranda Fondo de Cultura
v
5
Galaviz Fondo de Cultura
v
6
L opez Trillas
v
3
Viso Fondo de Cultura
v
7
Kuri Siglo XXI
v
2
Dehesa Fondo de Cultura
v
7
Kuri Trillas
La gr aca que corresponde a este problema se encuentra en la gura 7.3.
Figura 7.3 Relaci on entre autores y editoriales
v
3
v
4
v
5
v
1
v
2
v
6
v
7
Veamos cu al es el menor n umero de colores que requerimos para colorear esta gr aca.
Si asignamos a v
3
un color, tenemos que asignar a v
4
y v
5
colores distintos entre s y
distintos del primero. Para v
2
requerimos tambi en un cuarto color, ya que v
2
es adyacente
a los tres v ertices anteriores. Por otro lado, v
1
o v
6
pueden ser coloreados con el mismo
color que v
2
, pero no el mismo para ambos. Como v
6
no es adyacente a v
5
podra recibir el
mismo color, lo mismo que v
7
. Con esto, la gr aca quedara coloreada como se muestra en
la gura 7.4.
En este caso si hubi esemos usado un color por v ertice (un horario distinto para ca-
da presentaci on) hubi esemos requerido de 7 horarios. De esta manera, s olo requerimos 4
horarios distintos.
7.1 Coloraci on 299
Figura 7.4 Coloraci on de la gr aca correspondiente a la Feria del Libro
v
3
v
4
v
5
v
1
v
2
v
6
v
7
Como se habr a notado el problema de coloraci on de gr acas es importante y se presenta
sucientemente seguido como para que se trate de encontrar un algoritmo para que asigne
los colores de manera eciente. Tal algoritmo no existe, pero tenemos algunos resultados
que nos pueden ayudar en esta asignaci on. Precisemos primero algunos conceptos:
Denici on 7.1 (n umero crom atico) El n umero crom atico de una gr aca es el n umero mnimo de
colores que se requieren para colorearla, de forma tal que cualquier par de v ertices adya-
centes reciban distinto color; el n umero crom atico de una gr aca G se denota con (G).
Supongamos que tenemos un subconjunto de v ertices V
i
V pintados todos del mismo
color. Entonces, la subgr aca inducida por este subconjunto (G[V
i
]) no contiene ninguna
arista, pues no puede haber aristas entre v ertices pintados del mismo color.
El problema es, entonces, determinar el n umero crom atico de distintas gr acas. A con-
tinuaci on mencionamos algunas propiedades que conocemos acerca del n umero crom atico
de una gr aca.
Lema 7.1 (G) = 1 si y s olo si G no tiene aristas, esto es G = (V, ).
Demostraci on.
: Por contrapositivo, supongamos que G = (V, E), con E ,= . Entonces existe
e = uv E tal que el v ertice u es adyacente al v ertice v (y viceversa). Si esto es as,
u y v tienen que estar coloreados con distinto color, por lo que (G) es al menos 2
_
((G) = 1) ((G) ,= 1)
_
.
: Supongamos ahora que G = (V, ). En este caso no hay ning un par de v ertices que
sean adyacentes, por lo que todos los v ertices pueden estar coloreados con el mismo
color; esto es, (G) = 1.
300 Modelado con gr acas
Lema 7.2 ((C
n
)) El n umero crom atico de un ciclo con n v ertices y n par es 2; si n es impar entonces
(C
n
) = 3:
(C
n
) =
_
2 si n es par
3 si n es impar
Demostraci on.
Caso n par: Tomemos un v ertice cualquiera del ciclo y lo coloreamos con color 1; el si-
guiente v ertice (en cualquier direcci on) lo coloreamos con color 2; el siguiente con 1 y
as sucesivamente. A los v ertices pares se les asigna 1 y a los v ertices impares 2. El ulti-
mo v ertice es impar y el primero par, por lo que no se asigna el mismo color a v ertices
adyacentes ver gura 7.5.
Figura 7.5 Coloraci on de crculo con un n umero par de v ertices
Caso n impar: En cambio, si el n umero de v ertices en el ciclo es impar, necesitaremos
al menos 3 colores. Si asignamos los colores de la misma forma que lo hicimos en el
ciclo de longitud par, al llegar al ultimo v ertice por colorear va a resultar que es par, lo
mismo que el primero; si le asignamos el color 1 estar a coloreado igual que el primero,
que es adyacente a el; si le asignamos el color 2 estar a coloreado igual que el ultimo
que coloreamos, que tambi en es adyacente a el. Por lo tanto, debemos colorearlo con un
nuevo color.
Ejemplo 7.1. Veamos la siguiente gr aca, que consiste de un ciclo con 6 v ertices:
v
1
v
2
v
3
v
4
v
5
v
6
v
1
v
2
v
3
v
4
v
5
v
6
7.1 Coloraci on 301
N otese que la gr aca est a pintada como si fuera una gr aca bipartita. De hecho, cualquier
gr aca que se puede colorear con exactamente dos colores corresponde a una gr aca bipar-
tita.
Tambi en tenemos resultados referentes a las gr acas completas, /
n
:
Lema 7.3 El n umero crom atico de /
n
es n.
Demostraci on.
Como todas y cada uno de los v ertices de /
n
tiene n 1 vecinos, y cada uno de ellos
es vecino de todos y cada uno de los otros v ertices, no se puede asignar el mismo color
a ning un par de v ertices vecinos del primero, ya que son vecinos entre s. Por lo tanto
necesitamos que cada v ertice tenga su propio color.
Ejemplo 7.2. Veamos la coloraci on de la gr aca /
6
. Como cada v ertice es adyacente a todos los
otros v ertices de la gr aca, ninguna pareja de v ertices puede estar pintado del mismo color.
De esto, el n umero crom atico es precisamente n, usando un color distinto para cada v ertice.
1
2
3
4
5
6
Si tenemos una gr aca que no tiene ciclos, entonces su n umero crom atico ser a 2, como
lo enuncia el lema 7.4.
Lema 7.4 El n umero crom atico de una gr aca sin ciclos es 2.
Demostraci on.
Ejecutamos en la gr aca BFS y asignamos los colores de la siguiente manera: a los
v ertices que est an a distancia impar de s les asignamos el color 1, y a los que est an a
distancia par les asignamos el color 2. Como no hay ciclos en la gr aca, ning un v ertice
a distancia impar es adyacente a otro v ertice a distancia impar, por lo que la coloraci on
es correcta.
302 Modelado con gr acas
Veamos un ejemplo en la gr aca de la gura 7.6, donde la distancia al v ertice origen se
encuentra dentro del v ertice.
Figura 7.6 Coloraci on de gr aca sin ciclos usando BFS
1
2 3
4 4
2
0 1
2 3
2
3 4
Podemos decir algo respecto al n umero crom atico que tiene que ver con los distintos
grados de los v ertices de la gr aca. Podemos notar que si un v ertice tiene grado k, a lo m as
requerimos de k + 1 colores distintos. Esto es una cota superior para el n umero crom atico,
ya que si los v ertices vecinos no son adyacentes entre s bastara con dos colores.
Teorema 7.1 El n umero crom atico de una gr aca no excede el m aximo grado de sus v ertices m as 1.
Demostraci on.
Supongamos que tenemos una gr aca cualquiera cuyo grado m aximo es k. Por lo tanto
contamos con los colores C
0
, C
1
, . . . , C
k
. Tomemos al primer v ertice v y lo coloreamos
con cualquiera de los colores.
Tomamos cualquier v ertice u que no ha sido coloreado; como grado(u) k, hay al
menos 1 color que no ha sido usado en ninguno de sus vecinos (pudieran ser m as o que
los vecinos no est en coloreados todava); usamos ese color para colorear a u. Continua-
mos de esa manera hasta que no quede ning un v ertice sin colorear. En ning un momento
requerimos de m as de k + 1 colores.
Ejemplo 7.3. Veamos la gr aca en la gura 7.7. La manera sencilla de colorear la gr aca es
empezando con un color arbitrario para el v ertice de mayor grado, que en este caso es v
6
,
al que coloreamos de rojo. Despu es usamos el resto de los colores para colorear a cada uno
de los v ertices adyacentes a v
6
. En este punto hemos coloreado a todos los v ertices menos
a v
3
, que no es adyacente a v
6
, por lo que lo podemos colorear con el mismo color que a
v
6
, o sea rojo.
7.1 Coloraci on 303
Figura 7.7 Coloraci on siguiendo el grado mayor
v
1
v
2
v
3
v
4
v
5
v
6
v
7
Sin embargo, podemos colorear esta gr aca con menos colores, de la siguiente manera:
Empezamos con el v ertice v
6
, que es el de mayor grado.
Observamos que los v ertices adyacentes a v
6
no son todos adyacentes entre s, as que
aprovechamos esta situaci on para asignar colores alternados, siguiendo el ciclo
v
6
v
7
v
1
v
2
v
6
. Como es un ciclo de longitud par, bastara con dos colores para
colorearlo. Sin embargo, tenemos la arista v
1
v
6
que cierra dos ciclos impares, por
lo que requerimos tres colores distintos para v
6
, v
7
y v
1
, digamos rojo, verde y azul
respectivamente. v
2
tambi en forma parte de un ciclo impar, pero no es adyacente a
v
7
, por lo que lo podemos colorear tambi en con verde.
Pasamos a ver el ciclo formado por v
2
, v
3
y v
4
, que tambi en es de longitud impar,
por lo que hay que colorear los v ertices en el ciclo con tres colores distintos; v
4
no
puede ser verde ni rojo, pues es adyacente a v ertices con estos colores, por lo que le
asignamos azul. v
3
no puede ser verde ni azul, por lo que le asignamos rojo.
Por ultimo s olo nos falta v
5
, que tambi en conforma un ciclo impar con v
6
y v
4
, por lo
que tiene que pintarse de verde.
v
1
v
2
v
3
v
4
v
5
v
6
v
7
Si bien la primera coloraci on es correcta no hay dos v ertices adyacentes con el mismo
color el n umero crom atico de la gr aca es menor, como lo pudimos constatar con la
segunda coloraci on que dimos. Esta segunda coloraci on corresponde al n umero crom atico
de la gr aca.
304 Modelado con gr acas
Ejemplo 7.4. Observemos, sin embargo, una gr aca muy similar a la anterior, con el mismo grado
m aximo:
v
1
v
2
v
3
v
4
v
5
v
6
v
7
v
8
En este caso, colorando de manera simple, al terminar de pintar los v ertices adyacentes
a v
6
nos quedan dos v ertices sin colorear, v
3
y v
8
, a los que no podemos colorear con el
mismo color, pues son adyacentes entre s. Conviene en este caso simplemente asignar co-
lores siguiendo la estrategia dada para el v ertice de mayor grado, par andose en los v ertices
adyacentes a los que quedaron sin asignar color, trabajando uno por uno. Una coloraci on
m as eciente se logra siguiendo el critero de los ciclos impares que dimos en el ejemplo
anterior, cuidando a los v ertices adyacentes en ciclos distintos.
Otro tipo de gr acas muy f aciles de colorear son las gr acas bipartitas. Al respecto
enunciamos un resultado en el teorema 7.2.
Teorema 7.2 Sea G = (V, E) una gr aca. Entonces (G) = 2 si y s olo si G es bipartita.
Demostraci on.
Supongamos que G = (V, E) es bipartita. Por la denici on de gr aca bipartita, sabemos
que V = V
1
V
2
con V
1
V
2
= . Tambi en sabemos que no hay ninguna arista entre
cualesquiera dos v ertices de V
1
(y lo mismo para cualquier pareja de v ertices en V
2
). Por
lo tanto, si asignamos un color a los v ertices de V
1
y otro color a los de V
2
, no tendremos
ninguna pareja de v ertices adyacentes pintados con el mismo color y s olo requerimos
de 2 colores, por lo que (G) = 2 (una gr aca con al menos una arista tiene n umero
crom atico al menos 2).
Ahora supongamos que (G) = 2. Sea V
1
el conjunto de v ertices pintados con uno
de los colores y V
2
el de los v ertices pintados con el otro color. Ning un v ertice en V
1
es adyacente a otro en el mismo subconjunto, porque si as fuera no tendramos una
coloraci on correcta. Lo mismo sucede para cualesquiera dos v ertices en V
2
. De esto,
tenemos que V = V
1
V
2
; V
1
V
2
= , pues ning un v ertice puede estar pintado con los
dos colores; ning un v ertice es adyacente a otro v ertice en el mismo subconjunto: por la
7.1 Coloraci on 305
denici on de n umero crom atico, cada una de las subgr acas inducidas G[V
i
](i = 1, 2)
no contiene aristas. Por lo tanto, todas las aristas en G tienen un v ertice en V
1
y otro
v ertice en V
2
. De donde G es bipartita.
Teorema 7.3 Sea G = (V, E) una gr aca conexa tal que [V [ 3. Entonces G es bipartita si y s olo
si G no contiene ciclos de longitud impar.
Demostraci on.
Sea G = (V
1
, V
2
, E) una gr aca bipartita. Si G contiene un ciclo C, los v ertices de C
alternan entre los conjuntos V
1
y V
2
, por lo que el n umero de v ertices es par y por lo
tanto tambi en el n umero de aristas; de donde C es de longitud par.
En sentido inverso, supongamos que G no contiene ciclos de longitud impar. Demostra-
remos que podemos partir a V en dos conjuntos ajenos, tales que toda arista vaya de un
v ertice en uno de los conjuntos a un v ertice en el otro.
Elegimos un v ertice arbitrario u en V y ejecutamos el algoritmo BFS con u como origen.
A los v ertices que est an a distancia impar los asignamos a un conjunto V
1
, mientras que a
los v ertices que est an a distancia par (incluyendo a u que est a a distancia 0) los asignamos
a un conjunto V
2
. Es claro que V
1
V
2
= y que, si G es conexa, V = V
1
V
2
, pues
todos los v ertices ser an alcanzados.
Debemos demostrar ahora que no hay aristas entre v ertices del mismo conjunto. Consi-
deremos los siguientes cuatro casos:
Caso 1. Sea x V
2
tal que x ,= u. Como x est a a distancia par de u, existe una trayectoria
P de longitud par de u a x. Sea 2n la longitud de P. Si la arista ux E, tenemos un ciclo
de longitud impar la longitud de u
P
x
xu
u es 2n + 1 lo que contradice la hip otesis
de que G no contiene ning un ciclo de longitud impar. Por lo que ux no puede estar en E.
u x
P
Caso 2. Sean y, w V
1
, con y ,= u y w ,= u. Supongamos que yw E. Sea P la
trayectoria entre u e y, y Q la trayectoria entre u y w, y supongamos que P y Q no
tienen ning un v ertice en com un:
u
y
w
P
Q
306 Modelado con gr acas
Como BFS encuentra las distancias entre el v ertice u y cualquier otro v ertice en G,
sabemos que P y Q son trayectorias lo m as cortas posibles, con P de longitud 2m y Q
de longitud 2n. Si yw E, el ciclo
u
P
y
yw
w
Q
u
tiene longitud impar (2m + 2n + 1 = 2(m + n) + 1), lo que contradice la hip otesis de
que G no contiene ciclos de longitud impar, por lo que yw , E.
Supongamos ahora que las trayectorias se intersectan en un v ertice x, con
P

= x y y Q

= x w.
Adem as, P

y Q

no tienen ning un otro v ertice en com un adem as de x:


u x
y
w
P P

QQ

Como tanto P como Q son trayectorias m as cortas, P P

y Q Q

tienen la misma
longitud: si por ejemplo PP

tuviera menor longitud que QQ

, entonces la trayectoria
u
PP

x
Q

w sera una trayectoria m as corta que Q, contradiciendo el hecho de que BFS


encuentra trayectorias m as cortas. Por lo tanto, si suponemos que la longitud de P P

(QQ

) es r, la longitud de P

es 2mr y la longitud de Q

es 2nr. Por lo tanto, el ciclo


que se forma, si es que yw E, es de longitud 2mr+2nr+1 = 2m+2n2r+1 =
2(m + n r) + 1 que es impar, otra vez contradiciendo la hip otesis de que no existe
ning un ciclo de longitud impar en G, por lo que yw , E.
Caso 3. Tanto y como w est an a distancia impar, con y, w V
1
, y ,= u y w ,= u.
Nuevamente sean P y Q trayectorias de longitud m as corta entre u e y y entre u y w
respectivamente (tenemos un diagrama como el del caso 2). En este caso, las longitudes
de P y Q son ambas impares, por lo que podemos expresarlas como 2m 1 y 2n 1
respectivamente. Si yw E, el ciclo formado por u
P
y
yw
w
Q
u tiene longitud
2m1 +2n 1 +1 = 2m+2n 2 +1 = 2(m+n 1) +1 que es un n umero impar,
nuevamente contradiciendo la hip otesis de que G no contiene ciclos de longitud impar,
por lo que yw , E. El caso de que P y Q se intersecten en alg un v ertice distinto de u
sigue el mismo razonamiento que en el caso 2, por lo que ya no lo presentamos.
Caso 4. No hay ning un v ertice distinto de u en V
1
. Si este es el caso, todos los v ertices en
V
2
son adyacentes a u y est an a distancia 1 como no hay ning un v ertice a distancia par
de u, en particular a distancia 2, ning un camino que empiece en u puede tener longitud
mayor que 1 .
7.1 Coloraci on 307
u
w
x
y
Si hubiese alguna arista entre dos v ertices de V
2
, por ejemplo xw E, tendramos el
ciclo uxwu, que sera un ciclo impar, contradiciendo la hip otesis de que G no tiene
ciclos de longitud impar, por lo que xw , E.
Si bien una de las hip otesis de estos dos teoremas es que G es conexa, se puede aplicar
el mismo razonamiento para cada componente conexa de una graca, lo que resulta en el
siguiente corolario:
Corolario 7.4 Sea G una gr aca. Entonces (G) = 2 si y s olo si G no contiene ciclos de
longitud impar.
Se deja la demostraci on como ejercicio.
Con lo anterior hemos dado algunas pistas de c omo proceder a colorear una gr aca,
identicando qu e tipo de gr aca es y asignando el menor n umero de colores posibles. Hay
que aclarar, sin embargo, que fuera de las gr acas que est an plenamente identicadas, no
hay receta (algoritmo) para colorear una gr aca.
Para terminar esta secci on enunciaremos un teorema muy famoso, conocido como el
Teorema de los cuatro colores, que hasta 1976 segua como una conjetura. Para enunciarlo
requerimos del concepto de una gr aca plana:
Denici on 7.2 Una gr aca plana es aquella que se puede pintar en el plano sin que se crucen aristas.
Tomemos un mapa donde todos los pases est an totalmente contenidos en una sola
regi on; cada pas est a representado por un v ertice y hay una arista entre un pas y otro si
y s olo si los pases tienen una frontera en com un que corresponda a alg un segmento de
recta (si la frontera es unicamente en un punto, no se consideran adyacentes). Este tipo
de gr acas son planas pues nunca hay fronteras en com un que brinquen por encima de
otras fronteras. Las aristas siempre aparecen como radios que salen de un pas a los pases
con frontera com un y se pueden ir dibujando de izquierda a derecha y de norte a sur. La
especicaci on original del Teorema de los cuatro colores, planteado como conjetura a mitad
308 Modelado con gr acas
del siglo XIX; fue demostrado por Appel y Haken en 1976, haciendo un estudio caso por
caso, usando para ello una computadora
1
. Pasamos a enunciar el teorema:
Teorema 7.5 (Teorema de los cuatro colores) El n umero crom atico de una gr aca plana no
excede a 4.
Ejercicios
7.1.1.- Demuestra el corolario 7.4.
7.1.2.- Colorea las siguientes gr acas de acuerdo a su n umero crom atico. Justica el n ume-
ro crom atico determinado.
(a)
a
b
c
d
e
f
g
(b)
a
b
c
d
e
f
g
(c)
a
b
c
d
e f
g
(d)
e
a
b
d
c
7.1.3.- Programa los ex amenes nales para C alculo I, C alculo II, C alculo III, C alculo IV,
Discretas, ICC1, ICC2 y Probabilidad y Estadstica, usando el mnimo n umero de
horarios y considerando que no hay estudiantes cursando al mismo tiempo
2
:
1
Por el hecho de que el teorema fue demostrado con la ayuda de una computadora, para listar los casos
posibles, muchos matem aticos sostienen que esta no es una demostraci on matem atica elegante. Inclusive, hay
matem aticos que sostienen que ni siquiera es una demostraci on.
2
A este tipo de consideraciones se les llama incompatibilidades.
7.1 Coloraci on 309
C alculo I y Probabilidad y Estadstica;
C alculo II y Probabilidad y Estadstica;
C alculo IV y Discretas;
C alculo IV e ICC1;
C alculo I y C alculo II;
C alculo III y C alculo IV;
pero hay estudiantes comunes en cualquier otra combinaci on de cursos.
7.1.4.- Cu al es el menor n umero de policas que debemos apostar en las escuelas de una
colonia para cubrir a todas las escuelas de la zona, si no podemos poner policas que
est en a menos de 15 cuadras de distancia, porque entonces se juntan y se ponen a
platicar, descuidando la vigilancia?
E1 E2 E3 E4 E5 E6
E1 8 17 20 5 10
E2 8 12 17 10 16
E3 17 12 10 20 25
E4 20 17 10 21 22
E5 5 10 20 21 10
E6 10 16 25 22 10
7.1.5.- Podemos observar que /
3,3
y /
5
no son gr acas planas, pues no hay manera de
dibujarlas sin cruzar aristas. El Teorema de Kuratowski nos dice que si una gr aca
contiene alguna subgr aca isomorfa a /
3,3
o a /
5
entonces la gr aca no es plana el
Teorema de Kuratowski es m as fuerte e incluye el concepto de homeomorsmo que
no es parte de este texto, por lo que s olo veremos esta versi on de este teorema . En
las siguientes gr acas, usando este teorema, determina si las gr acas son planas o
no. Si lo son, dib ujalas como gr acas planas.
(a)
a
e
b
c
d
(b)
a
b
c
d
e f
g
h
(c)
a
b
c
d
e
f
310 Modelado con gr acas
7.1.6.- Usando todos los resultados presentados en esta secci on, determina el n umero
crom atico de las siguientes gr acas y colorea las gr acas de acuerdo al n umero
crom atico determinado.
(a)
a
b
c
d
e
f
g
h
(b)
g
h
i
a
b
c
d
e
f
(c)
a
b
c
d
e f
g
h
(d)
a
b
c
d
e f

Arboles
8
8.1. Caracterizaci on
Los arboles son gr acas que modelan adecuadamente diversos problemas. En particular
son muy utiles cuando queremos cubrir a un conjunto de nodos de la manera m as ecien-
temente posible, con el menor n umero posible de conexiones. Por ejemplo, si queremos
poner un conjunto de tel efonos que comuniquen a un cierto n umero de comunidades pero
queremos tener la menor cantidad de lneas posibles; y estamos dispuestos a canalizar lla-
madas aunque no sea directamente, la manera m as econ omica de hacerlo es mediante un
arbol. Supongamos que tenemos cinco pueblos y queremos que todos est en comunicados
con cualquier otro. La gr aca que deseamos tener es una gr aca completa (K
5
), pero sin
que tengamos que tener a todas las aristas presentes.
Figura 8.1 Gr aca completa K
5
U
V W
X Y
a
b
j
k
c
f
g
d
e
h
312

Arboles
Podemos encontrar varios conjuntos de aristas tales que cubramos con ellas a todas las
ciudades, como se muestra en las gr acas de la gura 8.2. Lo que podemos notar en estas
tres gr acas es que todas son conexas y no tienen ciclos.
Denici on 8.1 ( arbol) Un arbol es una gr aca conexa y acclica.
Figura 8.2 Maneras de cubrir a todos los v ertices de K
5
(a)
U
V W
X Y
a
b
j
k
(b)
U
V W
X Y
a
c
d
h
(c)
U
V W
X Y
a
e
h
c
Las gr acas de la gura 8.3 son todas ellas arboles, mientras que las de la gura 8.4 no
lo son.
Figura 8.3 Gr acas que son arboles
(a) (b)
8.1 Caracterizaci on 313
Figura 8.4 Gr acas que no son arboles
(a) No es conexa (b) Tiene ciclos
Teorema 8.1 Sean u y v v ertices en un arbol T con al menos dos v ertices. Entonces hay exactamente
una trayectoria de u a v.
Demostraci on.
Como un arbol es una gr aca conexa, existe al menos un camino entre u y v en T; por
el teorema 6.1 este contiene a una trayectoria entre u y v. Ahora mostraremos que no
puede haber m as de una.
Supongamos que hay m as de una trayectoria entre u y v al menos dos ; si el arbol
tiene s olo dos v ertices, la unica trayectoria entre ellos es la arista que los une, y como
no permitimos aristas m ultiples, esa es la unica trayectoria entre los dos v ertices. Supon-
gamos entonces [V [ 3 y hay m as de una trayectoria entre dos de esos v ertices, u y v;
tenemos la situaci on que se muestra en la gura 8.5.
Figura 8.5 Existencia de m as de una trayectoria entre dos v ertices en un arbol
u w x v
P
1
P
2
314

Arboles
Supongamos que las dos trayectorias comparten una porci on inicial y nal, uw y
xv (w pudiera ser u y x pudiera ser v). Sean esas dos trayectorias P
1
y P
2
. Pero
entonces, la trayectoria wP
1
xP
2
w forma un ciclo, lo que contradice que T
es un arbol (conexo y acclico). De donde no puede haber dos trayectorias entre dos
v ertices.
Teorema 8.2 En un arbol T con m as de un v ertice hay al menos dos v ertices de grado 1.
Demostraci on.
Como T es conexa con m as de un v ertice, hay al menos una trayectoria con dos v erti-
ces distintos. Tomemos una pareja de v ertices u y v cuyo camino entre ellos sea tan
grande como cualquier otra trayectoria entre dos v ertices en T (de tama no m aximo). Es-
ta trayectoria tiene un n umero m aximo de aristas respecto a cualquier trayectoria en T.
Aseveramos que tanto u como v tienen grado uno. Si u tiene grado mayor que uno, como
T no tiene ciclos, existira una trayectoria m as larga en T; lo mismo para v. De donde u
y v tienen grado uno.
Teorema 8.3 Un arbol con n v ertices tiene exactamente n 1 aristas.
Demostraci on.
Haremos la demostraci on por inducci on en n, el n umero de v ertices en T.
Para n = 1, el unico arbol con un solo v ertice no puede tener ninguna arista, pues como
no hay ciclos no podemos tener lazos. Por lo que se cumple que el arbol con un v ertice
tiene cero aristas.
Nuestra hip otesis de inducci on es que todo arbol con k < n v ertices tiene k 1 aristas.
Supongamos ahora un arbol con n v ertices. Como tenemos al menos dos de ellos con
grado 1, quitemos uno de ellos y su correspondiente arista. Esta gr aca tambi en es un
arbol (sigue siendo conexa y acclica). Nos queda una gr aca con n 1 v ertices que,
por la hip otesis de inducci on, tiene n 2 aristas. Por lo que al agregarle el v ertice que
quitamos con su arista correspondiente, tendremos n v ertices con n 1 aristas.
Teorema 8.4
a. Cuando se elimina una arista de un arbol, la gr aca se desconecta y deja de ser
arbol.
b. Cuando se agrega una arista a un arbol (sin agregar v ertices) la gr aca resultante
tiene exactamente un ciclo y por lo tanto deja de ser arbol.
Demostraci on.
a. Sea T un arbol con n v ertices. Por el teorema 8.3, T tiene n 1 aristas y existe
exactamente una trayectoria entre cualesquiera dos v ertices. Supongamos que qui-
tamos la arista uv. Esta arista era la unica trayectoria entre u y v, por lo que al
quitar la arista ya no hay trayectoria entre u y v y la gr aca queda desconectada.
8.1 Caracterizaci on 315
b. Nuevamente, como T es un arbol, existe exactamente una trayectoria entre cuales-
quiera dos v ertices. Si la gr aca unicamente tiene dos v ertices y una arista, la unica
arista que podemos agregar es un lazo, lo que hace un ciclo, o una arista m ultiple,
lo que tambi en formara un ciclo. De esto, T dejara de ser acclica y por lo tanto
arbol.
Supongamos que [V [ > 2 y tomemos dos v ertices u y v que no son adyacentes en
T. Como T es arbol, existe una trayectoria entre u y v. Al agregarle la arista uv
se forma exactamente un ciclo, por lo que T deja de ser arbol.
Teorema 8.5 Los siguientes enunciados respecto a una gr aca T son equivalentes:
(a) T es un arbol.
(b) T es conexa y el n umero de v ertices es uno m as que el n umero de aristas.
(c) T es acclica y el n umero de v ertices es uno m as que el n umero de aristas.
(d) Existe una unica trayectoria entre cualesquiera dos v ertices de T.
(e) T es conexa y al quitar cualquier arista T se desconecta.
(f) T es acclica y al agregar cualquier arista se forma un ciclo.
Demostraci on.
Para demostrar estas equivalencias, tenemos que seguir el siguiente orden en las demos-
traciones:
a b c d e f
a b Sea T un arbol (gr aca acclica y conexa). Por denici on, es conexa, por lo que
la primera parte del inciso (b) ya est a. Tambi en demostramos en el teorema 8.3 que
un arbol con n v ertices tiene n 1 aristas, que corresponde a la segunda parte del
inciso (b).
b c Que el n umero de v ertices es uno m as que el n umero de aristas est a en el antece-
dente, por lo que est a en el consecuente. Nos falta demostrar que es acclica.
Como es conexa, existe una trayectoria entre cualesquiera dos v ertices. Por con-
tradicci on, supongamos que existe un ciclo con k v ertices en la gr aca. Como es
un ciclo, hay el mismo n umero de v ertices que de aristas en el. Fuera del ciclo
se encuentran n k v ertices y, como la gr aca es conexa, debemos poderlos al-
canzar desde cualquier v ertice del ciclo. Pero necesitamos al menos n k aristas
para alcanzar a esos v ertices, lo que nos da un total de al menos n aristas; y por
el antecedente sabemos que la gr aca tiene exactamente n 1 aristas; de donde la
suposici on de que existe al menos un ciclo no se cumple, por lo que la gr aca es
acclica.
316

Arboles
c d Sabemos que T es acclica y con n v ertices y n 1 aristas. Debemos demostrar
que es conexa. Como no hay ciclos no hay m as de una trayectoria entre cualesquiera
dos v ertices. Ahora tenemos que demostrar que al menos hay una.
Haremos la demostraci on por inducci on en el n umero de v ertices. Si el n umero de
v ertices es uno, T es conexa y acclica y tiene cero aristas. Por vacuidad se cumple
que hay una trayectoria entre cualesquiera dos v ertices distintos.
Supongamos que se cumple para gr acas con 2 k < n v ertices y veamos para n
v ertices.
Tomemos la gr aca con n v ertices. Como es acclica, tiene al menos dos v ertices
de grado 1. Quitemos a uno de ellos y a la arista que lo conecta con la gr aca. En
la subgr aca que nos queda tenemos un v ertice menos, una arista menos y no hay
ciclos. Por la hip otesis de inducci on, en esta gr aca existe una unica trayectoria
entre cualesquiera dos v ertices. Ahora le agregamos el v ertice que le quitamos,
junto con su arista. La unica trayectoria a este v ertice es pasando por la arista que
lo une al resto de la gr aca, por lo que se cumple para toda la gr aca que exista una
unica trayectoria entre cualesquiera dos v ertices.
d e Sabemos que existe exactamente una trayectoria entre cualesquiera dos v ertices,
que es la denici on de que T es conexa. Como esa trayectoria es unica, al quitar
cualquier arista deja de haber trayectoria entre los extremos de esa arista.
e f Como T es conexa, quiere decir que hay una trayectoria entre cualesquiera dos
v ertices. Si hubiese alg un ciclo, podramos quitar una arista de ese ciclo sin que la
gr aca se desconectara, pero no es as, ya que en el antecedente decimos que si se
quita una arista se desconecta. De donde es acclica. Si agregamos una arista entre
cualesquiera dos v ertices, como ya haba una trayectoria entre ellos, se forma una
nueva trayectoria, y por lo tanto un ciclo.
f a Debemos demostrar que T es acclica y conexa, suponiendo que es acclica y
que al agregarle cualquier arista se forma un ciclo. Que es acclica ya est a.
Si al agregar una arista xy, para x e y cualesquiera, se forma un ciclo, quiere decir
que ya haba una trayectoria entre x e y. Y la denici on de que es conexa es que
para cualesquiera dos v ertices haya siempre una trayectoria enrtre ellos.
Con este teorema dejamos ya varias caracterizaciones de arboles con las que podemos
jugar para encontrar otros resultados.
Ejercicios
8.1.1.- Demuestra directamente que d c.
8.1.2.- Cu antas aristas hay en un arbol con 15 v ertices?
8.1.3.- Cu antos v ertices hay en un arbol con 20 aristas?
8.1 Caracterizaci on 317
8.1.4.- Determina si las siguientes gr acas son o no arboles. Justica tu respuesta.
(a)
a
(b)
a
b
c
d
e
(c)
a
b
c
d
e f
g
h
(d)
a
b
c
d
e
f
g
h
(e)
a
b
c
d
e f
g
8.1.5.- La Secretara de comunicaciones quiere construir una red ferroviaria que una a va-
rias comunidades madereras en el estado de Oaxaca para que puedan transportar la
madera a la Ciudad de Oaxaca. Los puntos de acopio van a estar situados equidistan-
tes y se pueden ver en el siguiente mapa. Dise na las lneas del ferrocarril para que se
construya lo m as econ omico posible. Hay una unica soluci on?
O
1
2
3
4
5
6 7
Oaxaca
318

Arboles
8.1.6.- Dibuja una gr aca que no sea un arbol para la cual el n umero de v ertices es uno
m as que el n umero de aristas.
8.1.7.- Dibuja una gr aca que no sea un arbol que tenga exactamente dos v ertices de
grado 1.
8.1.8.- Cu al es el m aximo n umero de v ertices en una gr aca conexa con n aristas?
8.1.9.- Cu al es el mnimo n umero de v ertices en una gr aca conexa con n aristas?
8.2.

Arboles generadores
Recordemos la denici on 5.14 de la p agina 223, que repetimos ac a:
Denici on 8.2 (subgr aca) Una gr aca G

= (V

, E

) es subgr aca de una gr aca G = (V, E)


si es que V

V y E

E.
Es claro que toda gr aca es subgr aca de s misma.
Muchas veces queremos conectar un conjunto de puntos entre s de la manera m as
econ omica posible. Es decir, queremos encontrar una subgr aca de la gr aca original cuyas
aristas toquen todos los v ertices y que no tenga ciclos. Los ciclos, de cierta manera, son un
gasto redundante porque tenemos m as de una manera de alcanzar a los v ertices en el ciclo.
Denici on 8.3 ( arbol generador) Un arbol generador de una gr aca G = (V, E) es una subgr a-
ca conexa y acclica de G, T = (V

, E

), tal que V

= V , E

E.
Veamos las gr acas en las guras 8.6 y 8.7.
En la gr aca de la gura 8.6, la subgr aca 8.6(b) corresponde a un arbol generador de
la gr aca en 8.6(a), ya que es conexa, acclica y cubre todos los v ertices de 8.6(a). Las dos
gr acas de la gura 8.7, en cambio, no corresponden a arboles generadores de la gr aca
8.6(a) en la gura 8.6.
La gr aca 8.7(a) no es acclica y por lo tanto no es arbol. La gr aca 8.7(b), aunque es
acclica, no es conexa, por lo que tampoco corresponde a un arbol generador.
Hay varias maneras de construir un arbol generador. Si la gr aca no tiene pesos, por
ejemplo, podemos usar el algoritmo que dimos para BFS para determinar un arbol gene-
rador de la gr aca. Recuerden que en la subgr aca de distancias resultante, cada v ertice
tiene unicamente un predecesor, que es el padre en el arbol generador. No tiene ciclos, pues
cuando se llega a un v ertice y no es la primera vez, esta arista nos dene una trayectoria
al v ertice en cuesti on, distinta de la que se haba determinado antes; pero esta arista no se
8.2

Arboles generadores 319
Figura 8.6

Arbol generador en una gr aca G
(a) G = (V, E) (b) T = (V, E

)
Figura 8.7 Subgr acas que no son arboles generadores de G
(a) Tiene ciclos (b) No es conexa
incluye en el arbol, por lo que no se cierra el ciclo. Este arbol incluye a todos los v ertices
de la gr aca, si la gr aca originalmente es conexa, pues llega a los v ertices adyacentes al
inicio, a los adyacentes a estos, y as sucesivamente. Y es conexa ya que siempre estamos
recorriendo caminos desde el origen. En la gura 8.8 en la siguiente p agina mostramos un
recorrido BFS en una gr aca y el arbol generador que produce. Las aristas est an etiquetadas
con el ordinal en que fueron usadas.
Si la gr aca tiene pesos, lo mismo podemos decir del algoritmo de Dijkstra, que cons-
truye un arbol generador de trayectorias m as cortas. Hay otros algoritmos que tambi en son
muy famosos, como el algoritmo de exploraci on en profundidad (Depth First Search, DFS)
320

Arboles
que tambi en determinan arboles generadores de las gr acas sobre las cuales se ejecutan.
Lo veremos en la siguiente secci on.
Figura 8.8

Arbol generador determinado por BFS, con origen en el v ertice A
(a) Gr aca original conexa
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
(b)

Arbol generador con v ertice origen A
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
1
2
3
4
5 6
9
10
12
14
15
19 20
21
22
24
27
17 8
7 11 16
18
26
30
29
28
23
13
25
(c) Gr aca mostrada como un arbol
A
0
C
1
B
2
D
2
E
3
F
1
G
2
K
2
Q
3
P
4
R
3
I
1
H
2
J
1
N
2
M
3
8.3 B usqueda en profundidad (DFS) 321
Ejercicios
8.2.1.- Cu antas aristas se tienen que eliminar de una gr aca conexa con n v ertices y m
aristas para producir un arbol generador?
8.2.2.- Para las siguientes gr acas, dibuja un arbol generador para cada una de ellas.
(a)
a
b
c
d
e
(b)
a
b
c
d
e f
g
h
i j
(c)
a
b
c
d
e f
g
h i
(d)
a
b
c
d
e f
g
h
i j
k l
8.2.3.- Supongamos que tenemos dos arboles generadores para una misma gr aca. Estos
arboles tienen alg un v ertice en com un? Si s, justica. Si no, da un contraejemplo.
8.2.4.- Cu antos arboles generadores distintos hay para un ciclo con n v ertices, n 3?
Cu antos hay si consideramos arboles isomorfos entre s?
8.2.5.- Muestra que una arista que al removerla desconecta a una gr aca conexa forma
parte de todo arbol generador de la gr aca.
8.2.6.- Dibuja el arbol generador que se forma aplicando el algoritmo BFS a /
n
.
322

Arboles
8.3. B usqueda en profundidad (DFS)
Supongamos que tenemos un laberinto del que queremos salir y este laberinto est a re-
presentado en una gr aca de la siguiente manera:
i. Habr a un v ertice para la entrada del laberinto y uno para la salida.
ii. Cada esquina donde se pueda optar por m as de un camino la representamos con un
v ertice.
iii. Cada punto en el que ya no se pueda continuar corresponde tambi en a un v ertice.
iv. Las aristas corresponden a los senderos dentro del laberinto.
Tenemos que tener una disciplina de c omo recorrer el laberinto para salir lo antes po-
sible. Si sigui eramos la estrategia BFS no ganaramos mucho, pues si la salida est a a la
m axima distancia posible desde la entrada, habramos revisado todos los v ertices en capas
anteriores antes de llegar a ella. Otra estrategia, que es la que sigue DFS, es bajar por un
camino hasta que ya no se pueda seguir por el; marcamos cada v ertice por el que vamos
pasando y si vamos hacia adelante, nunca vamos a un v ertice que ya ha sido marcado (visi-
tado). Cuando llegamos a un punto ciego todos los v ertices adyacentes ya est an marcados
regresamos al v ertice desde el que se explor o esta arista y tratamos de tomar otro camino.
Si no podemos, porque ya no haya aristas sin usar o porque todas las aristas llevan a v erti-
ces ya visitados, regresamos otro nivel. La exploraci on termina cuando, habiendo regresado
a la raz, ya no quedan aristas sin usar, o alcanzamos la salida del laberinto. En la gura
8.10 mostraremos la ejecuci on de DFS sobre la gr aca en la gura 8.9. Cada subgura nos
ir a mostrando el recorrido hasta que se encuentre un punto ciego.
Figura 8.9

Arbol generador determinado por DFS, con origen en el v ertice A
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
8.3 B usqueda en profundidad (DFS) 323
Figura 8.10

Arbol generador determinado por DFS, con origen en el v ertice A
(a)
B
3
C
2
H
4
I
5
A
1
O P
Q
R
D E
L M N
F
J
G
K
5
6 7 1
2
3
4 5
6 7
12
15
16 18 20
22
24
26
29
30
T : A C B H I
punto ciego
(b)
B
3
C
2
H
4
I
5
A
1
O
13
P
12
Q
11
L
6
M
7
N
8
J
9
K
10
R
D E
F G
12
15
5
6 7
16 18 20
1
2
3
4
8
9 10
11
13
14
17 19
5
6 7
12
15
16 18 20
22
24
26
29
30
T : A C B H L MN J K
Q
P O
punto ciego
(c)
B
3
C
2
H
4
I
5
A
1
O
13
P
12
Q
11
L
6
M
7
N
8
J
9
R
14
K
10
D E
F G
12
15
5
6
22
7
16 18 20
1
2
3
4
8
9 10
11
13
14
17 21 19
5
6 7
12
15
16 18 20
22
24
26
29
30
T : A C B H L MN J K
Q
R
punto ciego
(d)
B
3
C
2
H
4
I
5
A
1
O
13
P
12
Q
11
L
6
M
7
N
8
J
9
R
14
K
10
D
16
E
17
F
15
G
18
12
15
5
6
22
7
16 18 20
24
26
30
29
1
2
3
4
8
9 10
11
13
14
17 21 19
23
25
27
28
T : A C B H L MN J K F D E G
punto ciego
324

Arboles
Como ya mencionamos, en la gura 8.10 mostramos la ejecuci on del algoritmo DFS.
Cada subgura corresponde al avance de la exploraci on hasta que se encuentra un v ertice
por el que ya no se puede continuar marcado al nal de la lista . En este punto, retrocede
marcado con echa punteadas en gris claro hasta un v ertice desde el que pueda volver
a salir.
Durante el recorrido iremos colocando a los v ertices una etiqueta que corresponder a al
orden en que el v ertice fue descubierto. Tambi en anotaremos en las aristas el orden en el
que fueron consideradas. Asimismo, mantendremos un conjunto con aquellos v ertices que
ya han sido visitados y otro con las aristas que se van eligiendo para el arbol generador.
Para decidir el orden en que se van visitando los v ertices usaremos lo que se conoce
como una pila: es una estructura en la que el ultimo que entra es el primero que sale (Last
In First Out, LIFO), que llamaremos T. Las operaciones v alidas en una pila son pop, que
elimina al ultimo v ertice que se agreg o, push(v) que ingresa al v ertice v en la pila y top
que informa cu al es el elemento que se encuentra en el tope, el ultimo que fue agregado. Si
al buscar v ertices adyacentes sin marcar hay varios v ertices que se pueden seleccionar, se
elegir a al que tenga la etiqueta menor en orden alfab etico.
El arbol generado por este recorrido se encuentra en la gura 8.11. Procederemos a
explicar cada una de las subguras que representan al recorrido.
Figura 8.11

Arbol generado por DFS en la gr aca de la gura 8.11
A
1
C
2
B
3
H
4
I
5
L
6
M
7
N
8
J
9
K
10
Q
11
P
12
O
13
R
14
F
15
D
16
E
17
G
18
En la gr aca de la subgura 8.10(a), se recorre desde A hasta llegar al v ertice I; para
este v ertice, todas las aristas tienen como destino a un v ertice ya visitado, por lo que es un
punto ciego. Se retrocede hasta el v ertice H que tiene todava aristas disponibles.
En la gr aca de la subgura 8.10(b), se recorre desde H hasta el v ertice O, siguiendo
siempre el orden dado por el alfabeto. En este punto, la unica arista disponible de O va
hacia L, que ya fue visitado, por lo que O es un punto ciego y se procede a regresar. En P
8.3 B usqueda en profundidad (DFS) 325
sucede lo mismo, esto es, que la unica arista disponible es a un v ertice ya visitado, por lo
que se contin ua el retroceso. En Q, si bien dos de sus aristas disponibles son a v ertices ya
visitados (M y N), la artista hacia R a un no ha sido usada y R no ha sido descubierto, por
lo que la exploraci on se contin ua desde Q.
En la gr aca de la subgura 8.10(c), se recorre la arista que va de Q a R, pero como
la unica arista disponible de R es hacia K que ya fue descubierto, R corresponde a un
punto ciego, por lo que hay que retroceder para encontrar alg un v ertice que tenga aristas
disponibles a v ertices a un no descubiertos. Este retroceso se hace sobre la pila, en orden
inverso a como fueron ingresando los v ertices, y nos deja en el v ertice K que a un tiene
aristas disponibles a v ertices que todava no han sido visitados.
En la gr aca de la subgura 8.10(d) se encuentra la pila, antes de retroceder. Como ya
todas las aristas fueron usadas y los v ertices visitados, el retroceso se lleva a cabo hasta que
se llega al v ertice origen, que es el v ertice A, que ya no tiene aristas disponibles.
Veamos a continuaci on m as detenidamente el algoritmo.
Algoritmo de b usqueda a profundidad (DFS)
Objetivo: Dada una gr aca G = (V, E) conexa y un v ertice de salida s, construir un arbol
generador para G, que realice la exploraci on a profundidad.
Datos: La gr aca G = (V, E) representada por su lista de adyacencias y un v ertice s
que pertenezca a G, que ser a el v ertice inicial en la exploraci on.
Salida: Una gr aca G

= (V, E

) que corresponda a un arbol generador de G. Esta gr aca


deber a tener anotado lo siguiente:
(a) El orden en que los v ertices son alcanzados (v.etiq).
(b) Una referencia al vertice desde el que se les alcanz o por primer vez (v.).
(c) La marca de que ya fueron alcanzados (v.visitado).
Estructuras de datos:
1. La gr aca representada con listas de incidencia.
2. Una pila T para dar el orden en que se usan los v ertices.
3. Cada v ertice quedar a apuntando a su predecesor y de esta forma se va armando
el arbol.
4. La lista de aristas donde se marcar a a cada una cuando ya haya sido usada.
M etodo: Se encuentra en el listado 8.1.
Listado 8.1 Algoritmo de b usqueda a profundidad (DFS) 1/2
1 /
*
I n i c i o :
*
/
2 v V :
3 v.visitado no
4 v.
5 v.etiq 0
6 e E
7 e.usada no
326

Arboles
Listado 8.1 Algoritmo de b usqueda a profundidad(DFS) 2/2
8 /
*
Marcar al v e r t i c e i n i c i a l
*
/
9 s.etiq 1
10 s.visitado ya
11 k 2 / / i n i c i a r e l cont ador
12 T.push(s)
13 /
*
Et i q u e t a r e l r e s t o de l o s v e r t i c e s
*
/
14 Mi ent r as que T , = :
15 x T.tope
16 Mi ent r as haya al g un v e r t i c e v adyacente a x si n marcar :
17 v.visitado ya
18 T.push(v)
19 e = xv
20 e.usada ya
21 v. x
22 v.etiq k + +
23 x T.tope
24 /
*
Fi n c i c l o Mi ent r as haya v e r t i c e s . . .
*
/
25 /
*
Ya no hay v e r t i c e s ady ac e nt e s a x s i n v i s i t a r
*
/
26 T.pop
27 / / Ya s e pr oces ar on t odos l o s v e r t i c e s a l c a n z a b l e s des de s
28 Todos l os v e r t i c e s est an marcados :
29 El ar bol generador est a dado por l as r ef er enci as a
30 v. y tenemos un ar bol generador de G
31 No t odos l os v e r t i c e s est an marcados :
32 G no es conexa y no t i ene ar bol generador
Es interesante observar (en la gura 8.11) la forma que toma el arbol generador cons-
truido por DFS. Notemos que las ramas son mucho m as profundas que en BFS; por eso
este algoritmo recibe el nombre de b usqueda en profundidad.
Ejercicios
8.3.1.- Para las siguientes gr acas, siguiendo los algoritmos respectivos, construye los
arboles generadores dados por BFS y DFS.
8.3 B usqueda en profundidad (DFS) 327
(a)
A
C
B
D
F
E
G
(b)
A
B
C
D
E
F
(c)
A
B
C
D
E
F
G
8.3.2.- Encuentra el arbol generador DFS de las siguientes gr acas:
(a)
A
B C
D E F
G H
(b)
A
B
C
D
E
F
G
H
8.3.3.- Explica por qu e en el ejercicio anterior, a pesar de que son gr acas isomorfas entre
s, el arbol generado por DFS no es el mismo.
8.3.4.- Usando el algoritmo DFS en los dos ejercicios anteriores, para cada una de las
gr acas lista las aristas hacia atr as que se van generando.
8.3.5.- El Jefe de Gobierno de la Ciudad de M exico tiene identicada una colonia en la que
las calles son muy angostas, pero tienen tr aco en ambos sentidos. Quiere hacer las
calles de un solo sentido pero no sabe c omo asignar los sentidos de tal manera que
se pueda llegar de cualquier lugar a cualquier otro siguiendo el sentido de las calles.
A continuaci on se encuentra un mapa de las calles de la colonia.
328

Arboles
A
B
C
D E I
F G J K
H L M
N O
Un estudiante de ciencias de la computaci on le coment o al Jefe de Gobierno que se
poda asignar direcci on a las calles usando DFS. Determina la direcci on de las calles
usando este algoritmo y ve si es posible llegar de cualquier punto a cualquier otro
usando esta direcci on. Nota: se tiene que asignar direcci on tambi en a las aristas que
cierran ciclos, aunque se lleve a cabo el regreso al v ertice desde el que se explora una
arista que lleva a un v ertice ya descubierto.
8.3.6.- C omo caracterizaras a la gr aca que produce DFS para poder determinar que se
puede llegar de cualquier v ertice a cualquier otro?
8.3.7.- Para una misma gr aca, pueden coincidir los arboles generadores creados por DFS
y BFS? Cu ales son las condiciones en las que esto sucede?
8.4.

Arboles generadores de peso mnimo
Al ver exploraci on en gr acas, en particular los algoritmos BFS y de Warshall, revi-
samos tambi en el caso de gr acas con peso en las aristas y vimos varios algoritmos para
resolver este caso. Tanto BFS como DFS construyen un arbol generador de la gr aca. Pa-
samos ahora a observar arboles generadores sobre gr acas con peso en las aristas. Cabe
aclarar que el arbol de distancias que construye el algoritmo de Dijkstra es tambi en un
arbol generador. La diferencia con los arboles generadores de peso mnimo es que en este
ultimo caso lo que buscamos minimizar es la suma total de pesos de las aristas que confor-
man el arbol y no el peso de la unica trayectyoria a cada uno de los v ertices. Este algoritmo
8.4

Arboles generadores de peso mnimo 329
es muy util, por ejemplo, si tratamos de conectar una red de computadoras buscando que el
costo total de la red sea mnimo.
En el caso de BFS por ejemplo, donde todas las aristas tienen peso uniforme, el arbol
construido por BFS (o para el caso, tambi en por DFS) es un arbol de peso mnimo, ya
que el peso total es n 1. Sin embargo, en el caso del algoritmo de Dijkstra el arbol de
trayectorias m as cortas construidas puede no ser un arbol de pesos mnimos, como se puede
observar en la gr aca de la gura 8.12, que se encuentra abajo.
Cabe notar que el arbol de peso mnimo tiene un peso mayor que la trayectoria del
origen al destino. Esto se debe a que en la trayectoria m as corta pueden no incluirse todos
los v ertices, mientras que en el arbol generador de peso mnimo s tienen que aparecer
todos los v ertices. Adicionalmente, en el arbol de peso mnimo no importa cu al es el origen
de la exploraci on.
En la gr aca de la gura 8.12 se contrastan un arbol de trayectorias m as cortas con
uno de peso mnimo. El peso del arbol en la gr aca 8.12(a) es 18, mientras que el arbol
de peso mnimo tiene peso total 11. En cambio, la longitud de la trayectoria de t a s en la
gr aca 8.12(a) es 5, mientras que en la gr aca 8.12(b) es 10. Se puede ver que cada arbol
generador cumple su cometido, aunque pudiera darse el caso de que coincidieran.
Figura 8.12

Arbol generador de trayectorias m as cortas vs. de peso mnimo
(a) (t, s) = 5; peso(T) = 18
x
7
y
6
z
4
v
4
w
4
s
6
t
0
u
1
1
2
3 3
4 4
1
4
3
1
2 2
(b) (t, s) = 10; peso(T) = 11
x y z
v w
s t u
1
2
3 3
4 4
1
4
3
1
2 2
8.4.1. Algoritmo de Prim para arboles de peso mnimo
El algoritmo de Prim para arboles de peso mnimo es un algoritmo avido (greedy) que
toma decisiones localmente. Inicia con un v ertice cualquiera de la gr aca y mete a una
cola de prioridades a las aristas incidentes en ese v ertice que conecten con un v ertice que
todava no est e en la cola, con el orden dado por el peso de la arista. En todo momento se
encuentra al frente de la cola aquel v ertice con la arista con la que se lleg o a el que
tenga el menor peso asociado a la arista. Toma al v ertice al frente de la cola e inserta a la
cola de prioridades todos aquellos v ertices en el extremo opuesto de cada arista incidente
al v ertice elegido de la cola. Una vez incluidos los nuevos v ertices, saca al que acaba de ser
330

Arboles
el centro de acci on. Prosigue con este proceso hasta que no haya ya v ertices sin incluir en
la cola.
Conforme se revisan los v ertices adyacentes, se sustituyen aristas si es que se encuentra
alguna de menor peso que incida en alg un v ertice que todava est a en la cola.
Se puede demostrar, aunque no es materia de este material, que este algoritmo construye
un arbol generador (incluye a todos los v ertices en la lista) y que este es de peso mnimo.
El algoritmo formal se encuentra a continuaci on.
Objetivo: Dada una gr aca G = (V, E; w), encontrar un arbol generador de peso mni-
mo T = (V, E

E; w), esto es, si T

= (V, E

E; w) es cualquier otro
arbol generador de G, tenemos

eE

w(e)

eE

w(e)
Datos: La gr aca G = (V, E; w).
Salida: El arbol generador de peso mnimo.
Estructuras de datos:
1. La gr aca, representada con listas de adyacencia.
2. Una tabla donde apuntaremos, para cada v ertice, qui en es su predecesor y cu al
es la arista que lo incluy o.
3. Una lista donde iremos colocando las aristas que van conformando el arbol.
4. Una cola de prioridades donde iremos colocando los v ertices conforme los va-
mos alcanzando. Ingresa a la cola un v ertice con el peso de la arista que lo hizo
ingresar. La cola es una cola de prioridades, donde podemos elegir al que tenga
la mayor prioridad (el menor peso para la arista). Conforme se van examinando
aristas, si se encuentra una de peso menor para un v ertice en la cola, se modica
este peso. Se elige al v ertice que tiene el menor peso anotado.
M etodo: El algoritmo como se describi o al inicio de esta secci on se encuentra en el lista-
do 8.2 de la siguiente p agina.
8.4

Arboles generadores de peso mnimo 331
Listado 8.2 Algoritmo de Prim para arbol generador de peso mnimo
1 /
*
I n i c i a l i z a c i on :
*
/
2 v V :
3 v. nulo
4 v.peso
5 v.arista nulo;
6 s.peso 0; s. nulo
7 c
p
s)
8
9 /
*
Pr oces ar al que e s t e al f r e n t e de
10 l a c ol a de p r i o r i d a d e s
*
/
11 Mi ent r as c
p
,=
12 u c
p
.frente
13 Si u.arista ,= nulo
14 T T u.arista
15 Mi ent r as u.listaAdy ,=
16 v u.listaAdy.siguiente
17 e = uv
18 w e.peso
19 u.listaAdy u.listaAdy v
20 Si v.peso =
21 c
p
c
p
+v
22 Si v.peso > w
23 v.peso w
24 v. u
25 v.arista e
26 /
*
Fi n u.listaAdy ==
*
/
27
28 c
p
c
p
u
29 /
*
c
p
==
*
/
30 Si [T[ = [V [ 1 : entonces T es el ar bol generador de G
31 de peso mnimo
32 Si no : l a gr a f i c a no es conexa .

Este es un algoritmo sencillo de implementar y corresponde, como ya dijimos, a un


algoritmo glot on. Veamos la ejecuci on del algoritmo sobre la misma gr aca que hemos
utilizado hasta ahora para ver arboles generadores, pero con pesos asignados a las aristas.
332

Arboles
Figura 8.13

Arbol generador de peso mnimo (algoritmo de Prim)
(a) Gr aca original conexa
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
5 3 2
4
1
6
3 4 7
5
3
2
1
2
4
3
4
4
7
6
3
2
1
2
3 4 5
6 7
8
(b)

Arbol de peso mnimo
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
2
1
3 2
4
3
2
2
2
1
3
1
4
3
5
3
3
4
7
6
8
4
6
7
5
4
6
5
4
7
Veamos paso a paso la ejecuci on del algoritmo. Para no extendernos demasiado mostra-
remos la cola a intervalos regulares. Empezamos con la cola de prioridades con el v ertice
D y agregamos a ella todos los v ertices adyacentes a D con el peso de la arista anotado:
Figura 8.14

Arbol generador de peso mnimo (algoritmo de Prim) (1/8)
(a) Centro de acci on: D
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
D
5
4
1
6
3 4 7
5
3
2
2
4
3
4
4
7
6
3
2
1
2
3 4 5
6 7
8
3 2
1 Cola de prioridades
desde:peso
v
orden/salida
D
:0
1
F
D:1
2
E
D:2
3
C
D:3
4
8.4

Arboles generadores de peso mnimo 333
Figura 8.14

Arbol generador de peso mnimo (algoritmo de Prim) (2/8)
(b) Centro de acci on: F
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
F
D
5
4
1
6
3 4 7
5
3
2
4
3
4
6
3
2
1
2
3 4 5
6 7
8
3 2
7
4
2
1 Cola de prioridades
desde:peso
v
orden/salida
F
D:1
2
E
D:2
3
A
F:2
4
C
D:3
5
K
F:4
6
G
F:7
7
(c) Centro de acci on: E
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
E D
F
5
1
6
3 4 7
5
3
2
4
3
4
6
3
2
1
2
3 4 5
6 7
8
3 2
4
2
1 4
7
Cola de prioridades
desde:peso
v
orden/salida
E
D:2
3
A
F:2
4
C
D:3
5
K
F:4
6
G
E:4
7
334

Arboles
Figura 8.14

Arbol generador de peso mnimo (algoritmo de Prim) (3/8)
(d) Centro de acci on: A
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
A
D
F
E
5
1
6
3 4 7
5
3
2
3
4
6
3
2
1
2
3 4
7
8
3 2
4
4
2
1
6
4
7
5
Cola de prioridades
desde:peso
v
orden/salida
A
F:2
4
C
D:3
5
K
F:4
6
G
E:4
7
J
A:4
8
I
A:6
9
(e) Centro de acci on: C
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
C D
F
E
A
1
6
3 4 7
5
3
2
3
4
6
3
2
1
2
3
7
8
4
3 2
4
4
5
2
1
4
7
6
5
Cola de prioridades
desde:peso
v
orden/salida
C
D:3
5
K
F:4
6
G
E:4
7
J
A:4
8
I
C:4
9
B
C:5
10
8.4

Arboles generadores de peso mnimo 335
Figura 8.14

Arbol generador de peso mnimo (algoritmo de Prim) (4/8)
(f) Centro de acci on: K
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J KK
D
F
E
A
C
3 4 7
5
3
2
3
4
3
2
1
2
3
7
1
3 2
4
5
2
1
4
6 8
4
4
7
6
6
5
Cola de prioridades
desde:peso
v
orden/salida
K
F:4
6
G
K:1
7
J
A:4
8
I
C:4
9
B
C:5
10
R
K:6
11
Q
K:8
12
El siguiente centro de acci on es G, pero como no tiene aristas sin usar inci-
dentes en el, simplemente se le saca de la cola, as que el siguiente centro de
acci on es el v ertice J.
(g) Centro de acci on: J
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K J
D
F
E
A
C
K
G
3 4 7
5
3
2
4
3
2
1
2
3
7
1
3 2
4
5
2
1
4
3
6 8
4
4
7
6
6
5
Cola de prioridades
desde:peso
v
orden/salida
J
A:4
8
N
J:3
9
I
C:4
10
B
C:5
11
R
K:6
12
Q
K:8
13
336

Arboles
Figura 8.14

Arbol generador de peso mnimo (algoritmo de Prim) (5/8)
(h) Centro de acci on: N
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
N
D
F
E
A
C
K J
G
3 4 7
5
3
2
3
2
2
3
7
1
3 2
4
4
5
2
1
4
3
6
1
4
4
7
6
8
6
5
Cola de prioridades
desde:peso
v
orden/salida
N
J:3
9
M
N:1
10
I
C:4
11
Q
N:4
12
B
C:5
13
R
K:6
14
(i) Centro de acci on: M
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
M
D
F
E
A
C
K J
N
G
3 4 7
5
3
2 3
7
1
3 2
4
3
2
2
5
2
1
4
3
6
1
4
4
7
6
8
4
6
5
Cola de prioridades
desde:peso
v
orden/salida
M
N:1
10
Q
M:2
11
P
M:2
12
L
M:3
13
I
C:4
14
B
C:5
15
R
K:6
16
8.4

Arboles generadores de peso mnimo 337
Figura 8.14

Arbol generador de peso mnimo (algoritmo de Prim) (6/8)
(j) Centro de acci on: Q
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
Q
D
F
E
A
C
K J
N M
G
7
5
3
2 3
7
1
3 2
4
3
2
2
5
2
1
4
3
1
4
3
4
7
6
8
4
6
6
5
4
Cola de prioridades
desde:peso
v
orden/salida
Q
M:2
11
P
M:2
12
L
M:3
13
R
Q:3
14
I
C:4
15
B
C:5
16
(k) Centro de acci on: P
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
P
D
F
E
A
C
K J
N M
Q
G
5
3
2 3
7
1
3 2
4
7
3
2
2
5
2
1
4
3
1
4
3
4
7
6
8
4
6
6
5
4
Cola de prioridades
desde:peso
v
orden/salida
P
M:2
12
L
M:3
13
R
Q:3
14
I
C:4
15
B
C:5
16
O
P:7
17
338

Arboles
Figura 8.14

Arbol generador de peso mnimo (algoritmo de Prim) (7/8)
(l) Centro de acci on: L
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
L
D
F
E
A
C
K J
N M
Q
P
G 2 3
7
1
3 2
4
3
2
2
5
2
1
4
3
1
4
3
5
3
4
7
6
8
4
6
7
6
5
4
Cola de prioridades
desde:peso
v
orden/salida
L
M:3
13
R
Q:3
14
H
L:3
15
I
C:4
16
B
C:5
17
O
L:5
18
El siguiente centro de acci on es R, pero como ya no tiene aristas disponibles,
simplemente se le saca de la cola y queda H al frente de la cola.
(m) Centro de acci on: H
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
H
D
F
E
A
C
K J
N M
Q
P
L
R
G 3 2
1
3 2
4
3
2
2
2
1
4
3
1
4
3
5
3
4
7
6
8
4
6
7
5
6
5
4
7
Cola de prioridades
desde:peso
v
orden/salida
H
L:3
15
B
H:2
16
I
C:4
17
O
L:5
18
8.4

Arboles generadores de peso mnimo 339
Figura 8.14

Arbol generador de peso mnimo (algoritmo de Prim) (8/8)
(n) Centro de acci on: B
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
B D
F
E
A
C
K J
N M
Q
P
L
R
H
G 2
1
3 2
4
3
2
2
2
1
3
1
4
3
5
3
3
4
7
6
8
4
6
7
5
4
6
5
4
7
Cola de prioridades
desde:peso
v
orden/salida
B
H:2
16
I
B:3
17
O
L:5
18
El siguiente centro de acci on es I, pero como ya no hay aristas disponibles no
modica ya nada en el arbol; lo mismo sucede cuando O es centro de acci on.
En este momento se vaca la cola de prioridades y el algoritmo de Primtermina.
En todas las subgr acas se present o sombreado el centro de acci on, que es aquel v ertice
que se encuentra al frente de la cola de prioridades y desde el que se van a explorar aquellas
aristas que no hayan sido ya exploradas. La simbologa que se utiliz o es la siguiente:
Arista a un no considerada.
Arista del arbol generador de peso mnimo.
Arista incluida y despu es eliminada.
Arista no incluida en el arbol generador de peso mnimo.
La gr aca, presentada como arbol y unicamente con las aristas que quedaron en el
mismo, queda como se ve en la gura 8.15 (en la siguiente p agina) y tiene un peso total de
44 unidades.
Es importante mencionar que este no es el unico arbol posible de peso mnimo, ya que
existen otras combinaciones posibles para arboles en los cuales la suma de los pesos de las
340

Arboles
Figura 8.15

Arbol generador de peso mnimo (Prim)
D
F
A
j
N M
L
O
5
H B I
3 2
3
3
P
2
Q
R
3
2
1 3 4
2
K G
1
4
1
E
2
C
3
Peso total del arbol = 44
aristas tambi en d e el mnimo de 44 unidades. Esto depende en gran medida del algoritmo
que se utilice para mantener la cola de prioridades. Cuando en la cola de prioridades se
encuentran dos v ertices con el mismo peso, el algoritmo puede respetar el orden en que
entraron a la cola; puede optar por el v ertice con el nombre lexicogr acamente menor; o
simplemente elegir aleatoriamente cu al de los v ertices con peso igual colocar al frente de
la cola. En el ejemplo que vimos se eligi o el criterio de respetar el orden de llegada a la
cola, adem as de que cuando se modic o el peso de un v ertice para moverlo hacia el frente
de la cola, se le colocaba despu es de cualquier otro v ertice que ya tuviera ese mismo peso.
Un ejercicio interesante es observar c omo se comparan un arbol generador de peso
mnimo y uno de distancias, generado por el algoritmo de Dijkstra. Para hacer esta compa-
raci on mostramos en la gura 8.16 el arbol generador de distancias de Dijkstra aplicando
el algoritmo a la misma gr aca. Como se puede ver, los arboles son muy distintos, aun
teniendo el mismo v ertice como origen. Inmediatamente se puede observar que el arbol
de distancias es m as bajo y ancho, porque, precisamente, el algoritmo de Dijkstra busca
minimizar la distancia desde la raz a cualquiera de los v ertices de la gr aca: busca que
todas las trayectorias sean lo m as cortas posibles. Por ejemplo, la distancia del v ertice D
al v ertice I es de 7, mientras que si seguimos la trayectoria dada por el arbol generador de
peso mnimo, la longitud de la trayectoria del v ertice D al v ertice I es de 22 unidades.
Otro comentario interesante es el hecho de que aunque consideremos otro v ertice ori-
gen para el arbol generador de peso mnimo, existir a un arbol generador de peso mnimo
con origen en D que contenga a las mismas aristas. Esto es, si le quitamos la direcci on a
las aristas del arbol generador de peso mnimo, podemos usar a cualquier otro v ertice y
colgar de ah el arbol. Eso, en cambio, no sucede con el arbol de distancias, pues estas
est an determinadas para un origen particular.
8.4

Arboles generadores de peso mnimo 341
Figura 8.16

Arbol generador de trayectorias m as cortas (algoritmo de Dijkstra)
(a) Gr aca original conexa
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
5 3 2
4
1
6
3 4 7
5
3
2
1
2
4
3
4
4
7
6
3
2
1
2
3 4 5
6 7
8
(b)

Arbol de distancias de Dijkstra
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
5 3 2
4
1
6
3 4 7
5
3
2
1
2
4
3
4
4
7
6
3
2
1
2
3 4 5
6 7
8
(c)

Arbol generador de Dijkstra
D
0
C
3
B
8
H
10
L
13
O
18
5 3 2
5
I
7
4
3
F
1
A
3
J
7
N
10
M
11
P
13
2 1 3 4
2
K
5
Q
13
8
R
11
6
G
6
1
4
1
E
2
2
342

Arboles
Como ya mencionamos, el arbol de trayectorias m as cortas tiene menor profundidad
que el de peso mnimo, mientras que este tiene mayor amplitud que aqu el. Es importante
notar que el peso total del arbol es de 56 unidades, bastante m as que el arbol de peso
mnimo. Sin embargo, el v ertice m as lejano del origen, est a a una distancia de 18 unidades
(O), mientras que ese mismo v ertice est a a distancia de 19 unidades del origen en el arbol
generador de peso mnimo.
El algoritmo de Prim para arboles generadores de peso mnimo es bastante eciente.
El unico costo es, realmente, el de mantener la cola de prioridades, ya que siempre debe
tener al frente al v ertice al que se llega con la arista de menor peso. Veamos paso a paso la
ejecuci on del algoritmo de Prim con una gr aca m as sencilla que las que hemos visto en
esta secci on.
Ejemplo 8.1. Apliquemos el algoritmo de Prim para arboles generadores de peso mnimo en la
gr aca de la gura 8.17. Usaremos como v ertice origen al v ertice u.
Figura 8.17 Otro ejemplo para el algoritmo de Prim
u v
z
w x
e
1
e
2
e
3
e
4
e
5
e
6
e
7
e
8
Pasos 2 a 7:
v v. v.peso v.arista lista de adyacencias
u nulo 0 nulo v z w
v nulo nulo u z x
w nulo nulo u z x
x nulo nulo v z w
z nulo nulo u v w x
c
p
= (u, 0, ))
Uso e
i
u v e.peso
e
1
u v 1
e
2
u w 4
e
3
u z 2
e
4
v z 3
e
5
v x 3
e
6
w z 3
e
7
w x 1
e
8
x z 2
8.4

Arboles generadores de peso mnimo 343
Pasos 12 a 14
v
z
w x
u
e
4
e
5
e
6
e
7
e
8
e
1
e
2
e
3
Pasos 16 a 27 para v, z y w
v v. v.peso v.arista lista de adyacencias
u nulo 0 nulo
v u 1 e
1
u z x
w u 4 e
2
u z x
x nulo nulo v z w
z u 2 e
3
u v w x
c
p
= (u, 0, ), (v, 1, u), (z, 2, u), (w, 4, u))
Uso e
i
u v e.peso

e
1
u v 1

e
2
u w 4

e
3
u z 2
e
4
v z 3
e
5
v x 3
e
6
w z 3
e
7
w x 1
e
8
x z 2
Paso 28
c
p
= (v, 1, u), (z, 2, u), (w, 4, u))
Pasos 12 a 14 (v, 1) est a al frente de la cola, por lo que tenemos:
z
w x
v u
e
6
e
7
e
8
e
1
e
2
e
3
e
5
e
4
344

Arboles
Pasos 15 a 27 2 veces Tomamos los dos v ertices adyacentes a v con aristas que no han
sido usadas, y las estructuras de datos quedan como sigue:
v v. v.peso v.arista lista de adyacencias
u nulo 0 nulo
v u 1 e
1

w u 4 e
2
u z x
x v 3 e
5
v z w
z u 2 e
3
u v w x
c
p
= (v, 1, u), (z, 2, u), (x, 3, v), (w, 4, u))
Uso e
i
u v e.peso

e
1
u v 1

e
2
u w 4

e
3
u z 2

e
4
v z 3

e
5
v x 3
e
6
w z 3
e
7
w x 1
e
8
x z 2
Terminamos la lista de adyacencias de v, lo quitamos de la cola y queda z al frente
de la cola.
Pasos 12 a 14 Quitamos a v de la cola y queda z al frente de la misma.
c
p
= (z, 2, v), (x, 3, v), (w, 4, u))
Pasos 15 a 27 para las aristas e
8
y e
6
Con z como centro de acci on vericamos a la arista
a w (e
6
) y a x (e
8
). Como la arista e
8
pesa menos que e
5
, cambia los atributos de x y
la sustituye en el arbol; lo mismo que pasa con la arista e
6
a w, que pesa menos que
e
2
, por lo que tambi en corrige los atributos de w.
v v. v.peso v.arista lista de adyacencias
u nulo 0 nulo
v u 1 e
1

w z 3 e
6
u z x
x z 2 e
8
v z w
z u 2 e
3

c
p
= (z, 2, u), (x, 2, z), (w, 3, z))
Uso e
i
u v e.peso

e
1
u v 1

e
2
u w 4

e
3
u z 2

e
4
v z 3

e
5
v x 3

e
6
w z 3
e
7
w x 1

e
8
x z 2
w x
z
u v
e
7
e
1
e
6
e
3
e
8
e
2
e
5
e
4
8.4

Arboles generadores de peso mnimo 345
Pasos 12 a 14 con x al frente de la cola: La unica arista que queda por explorar es e
7
, que
lleva a w con peso 1; como este peso es menor que el que tena w, se sustituye a la
arista e
6
por e
7
y se ajusta a w para que sea alcanzado por esta arista. Las estructuras
de datos quedan como sigue:
v v. v.peso v.arista lista de adyacencias
u nulo 0 nulo
v u 1 e
1

w x 1 e
7

x z 2 e
8

z u 2 e
3

c
p
= (x, 2, z), (w, 1, x))
Uso e
i
u v e.peso

e
1
u v 1

e
2
u w 4

e
3
u z 2

e
4
v z 3

e
5
v x 3

e
6
w z 3

e
7
w x 1

e
8
x z 2
w x
u v
z
e
1
e
3
e
8
e
7
e
2
e
5
e
6
e
4
Paso 28 Se quita a x de la cola, quedando ya unicamente w.
c = (w, 1, x))
Pasos 15 a 28 Como w ya no tiene ninguna arista sin usar, no entra al ciclo y en la lnea 28
saca a w de la cola y deja la cola vaca. Esto hace que ya no vuelva a entrar al ciclo
en la lnea 11 y salta hasta la lnea 30.
Pasos 30 a 32 Como T = e
1
, e
3
, e
8
, e
7
), que consiste de 4 aristas, una menos que el n ume-
ro de v ertices, la gr aca original es conexa y T es un arbol generador de peso mnimo.
u v
z
w x
e
1
e
3
e
7
e
8
e
2
e
4
e
5
e
6
346

Arboles
El algoritmo de Primpara arboles generadores de peso mnimo es un algoritmo eciente
donde el unico problema es mantener la cola de prioridades de tal manera que siempre se
pueda elegir f acilmente al siguiente v ertice que va a ser el centro de acci on desde el que
se van a explorar aristas que no han sido usadas. Como los valores que dan la prioridad
pueden cambiar en cada paso, la cola debe actualizarse constantemente. Si esto no se hace
de manera adecuada, el costo de elegir el v ertice con mayor prioridad en la lnea 12 puede
subir el costo del algoritmo de manera notoria.
8.4.2. Algoritmo de Kruskal para arboles de peso mnimo
Otro algoritmo que tambi en obtiene un arbol generador de peso mnimo es el algoritmo
de Kruskal. En el, las aristas se ordenan por peso y se van tomando en orden (de menor
a mayor para peso mnimo). A los v ertices se les coloca a cada uno en un conjunto que
contiene unicamente a ese v ertice. Para cada arista que se va tomando (en orden) se verica
si sus extremos est an o no en el mismo conjunto. Si es as, al agregar la arista se estara
cerrando un ciclo, por lo que la arista se desecha. Si los v ertices no est an en el mismo
conjunto, entonces se agrega la arista al arbol que se est a construyendo. De esta manera,
los v ertices en un conjunto forman una subgr aca conexa y acclica. Al terminar, si todos
los v ertices quedaron en el mismo subconjunto, esas aristas conforman el arbol generador
de peso mnimo.
Supongamos que la arista e = uv es la siguiente sin usar en la lista con menor peso
de entre las que quedan en ella. Si u y v est an en el mismo conjunto, quiere decir que
hay un camino entre ellos, y la arista se descarta, pues al agregarla se formara un ciclo.
Si u y v est an en distintos conjuntos, entonces se agrega la arista y se construye un nuevo
conjunto que es la uni on del conjunto que contiene a u y el que contiene a v. En el caso
en que la gr aca sea conexa, el algoritmo termina cuando todos los v ertices est an en un
unico conjunto, pues al agregar cualquier otra arista se formara un ciclo. Si la gr aca no es
conexa, el algoritmo alcanzar a un punt6o jo en el que ya no ser a posible agregar aristas y
quedar an tantos subconjuntos como componentes conexas tenga la gr aca. En el listado 8.3
se encuentra a detalle el algoritmo de Kruskal.
Algoritmo de Kruskal
Objetivo: Encontrar el arbol generador de peso mnimo de una gr aca usando el algoritmo
de Kruskal.
Datos: Una gr aca representada por la lista de sus aristas. Cada arista tiene los siguientes
atributos: v ertices en los extremos y peso.
Salida: El arbol generador de peso mnimo de la gr aca, si es que la gr aca original es
conexa.
8.4

Arboles generadores de peso mnimo 347
Estructuras de datos:
i. Una lista de las aristas ordenadas por peso.
ii. Subconjuntos de v ertices, donde inicialmente cada v ertice pertenece a un sub-
conjunto que s olo lo contiene a el.
M etodo: El algoritmo va tomando arista por arista en el orden en que vienen por peso. Si
los extremos de la arista se encuentran en conjuntos ajenos, se incluye la arista en el
arbol generador y se hace la uni on de los subconjuntos que contienen a los v ertices.
Si ambos v ertices se encuentran en el mismo conjunto, entonces la arista se desecha.
Dos v ertices se encuentran en el mismo subconjunto si hay un camino en el arbol
generador de uno al otro. Si en ese momento se agrega la arista que se est a inspec-
cionando, se formara un ciclo. Los pasos precisos se encuentran en el listado 8.3.
Listado 8.3 Algoritmo de Kruskal para arbol generador de peso mnimo
1 /
*
I n i c i o : or denar l i s t a de a r i s t a s
*
/
2 c = l i s t a ordenada de ar i s t as )
3 /
*
Co n s t r u i r l o s s ubc onj unt os para cada v e r t i c e
*
/
4 v V c ons t r ui r S
v
5 /
*
I n i c i a r e l ar bol gener ador
*
/
6 T =
7 /
*
Pr oces ar l a s a r i s t a s en orden
*
/
8 Mi ent r as c ,= y [T[ < [V [ 1
9 e ar i s t a al f r ent e de l a col a
10 c c e
11 Sean e = uv
12 Si S
u
,= S
v
/ / Si e s t an en d i s t i n t o s ubc onj unt o
13 S
uv
S
u
S
v
14 T T e
15 /
*
. . . Mi ent r as
*
/
16 Si [T[ = [V [ 1
17 T es el ar bol generador de peso mnimo
18 Si no
19 G no es conexa .
348

Arboles
Ejemplo 8.2. Veamos el arbol generador que se forma con el algoritmo de Kruskal en la gr a-
ca con la que hemos estado trabajando. Mostraremos tambi en c omo se van formando los
conjuntos.
Figura 8.18 Lista ordenada de aristas al empezar
D F
,
1
G K
,
1
M N
,
1
B H
,
2
M P
,
2
A F
,
2
M
Q
,
2
D E
,
2
C D
,
3
B I
,
3
Q
R
,
3
J N
,
3
L M
,
3
H L
,
3
C I
,
4
E K
,
4
P
Q
,
4
A J
,
4
N
Q
,
4
B C
,
5
L O
,
5
A C
,
5
A I
,
6
J K
,
6
K R
,
6
F G
,
7
H I
,
7
O P
,
7
K
Q
,
8
Formemos cada v ertice en su propio conjunto y veamos el resultado de incluir al arbol
todas las aristas con peso 1. como se muestra en la gura 8.19:
Figura 8.19 Inclusi on de aristas con peso 1
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
1
1
1
Ahora agreguemos las aristas de peso 2 que no cierren ciclos, como se muestra en la
gura 8.20 de la siguiente p agina.
8.4

Arboles generadores de peso mnimo 349
Figura 8.20 Inclusi on de aristas con peso 2
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
1
1
1
2
2
2
2
2
Agregamos ahora las aristas de peso 3 que no cierren ning un ciclo, como se muestra en
la gura 8.21. Los subconjuntos est an formados por cada una de las componentes conexas.
Figura 8.21 Inclusi on de aristas con peso 3
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
3 2
1
3
3
2
1
2
3
3
2
1
2
3
Agregamos ahora aquellas aristas de peso 4 que no cierren ciclos. Marcaremos con lnea
350

Arboles
punteada las que no pueden ser agregadas porque cierren un ciclo. El resultado se puede
ver en la gura 8.22.
Figura 8.22 Inclusi on de aristas con peso 4
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
3 2
4
1
3
3
2
1
2
4
3
3
2
1
2
3
4
4
4
4
Agreguemos ahora las aristas de peso 5, sin incluir aquellas que cierran ciclos, como se
muestra en la gura 8.23.
Figura 8.23 Inclusi on de aristas con peso 5
B
O
C
P
D
Q
E
R
H
L
I
M
A
N
F G
J K
3 2
4
1
3
3
2
1
2
4
3
3
2
1
2
3
5
4
4
4
4
5
8.4

Arboles generadores de peso mnimo 351
La ultima arista que incluimos es OL, pues al agregarla se completa el n umero de aristas
necesarias para el arbol. El resto de las aristas ni siquiera se revisan. El peso total del arbol
es de 44 unidades, exactamente el mismo peso que el obtenido con el algoritmo de Prim.
Aunque pudiera suponerse que el arbol generador producido por el algoritmo de Krus-
kal fuese, si no id entico, casi id entico al obtenido por el algoritmo de Prim, esto no es
forzosamente cierto, sobre todo si existen m as de un arbol generador de peso mnimo para
una gr aca. Si no son el mismo ser a porque se sustituyen aristas por otras de exactamente
el mismo peso. Por ejemplo, mientras que con el algoritmo de Prim tenamos el subcamino
F KG con peso total de 5 unidades, en el arbol construido por el algoritmo de Kruskal
tenemos a Gcolgando de E y a K colgando de G, lo que da un costo tambi en de 5 unidades
para incluir a G y K al arbol.
Deseamos insistir en que hemos utilizado hasta ahora aristas con pesos positivos. En
especial el algoritmo de Dijkstra no puede utilizarse si hay pesos negativos, porque no
podramos garantizar que una vez que un v ertice est a al frente de la cola de prioridades es
porque ya se le alcanz o por el camino m as corto. Las aristas con peso negativo pudiesen
encontrar un camino m as corto aun despu es de haberse terminado de procesar al v ertice.
Los algoritmos de Prim y Kruskal no se ven afectados por esta situaci on.
Ejercicios
8.4.1.- Puede el algoritmo de Kruskal producir m as de un arbol generador distinto para
una misma gr aca? Si es as, cu ando se podra dar esta situaci on?
8.4.2.- Para las gr acas que siguen construye los arboles generadores bajo el algoritmo de
Prim y despu es bajo el algoritmo de Kruskal. En el caso del algoritmo de Prim, cada
vez que haya m as de una opci on para elegir al siguiente v ertice que ser a el centro de
acci on, deber as elegir en orden lexicogr aco.
(a)
a
b
c
d
e f
g
h
i j
k l
2
3
3
1
1
2 5
4
4
3
2
3
4 3
3 3 1
(b)
a
b
c
d
e f
g
h
i j
k l
1
3
3
2
2
2 4
3
1
5
1
4
1 4
4 2 3
352

Arboles
(c)
a
b
c
d
e f
g
h
i j
k l
m n o p
1
3
3
2
2
2 4
3
1
5
1
4
1 4
4
3
2
4
3
3 2
2 2 3
2
2
2 2
(d)
a
b
c
d
e f
g
h i
4 5
6 5 3 3 3
1
4 4
7
3 8 6
2 4
8.4.3.- Construye una gr aca simple con pesos en las aristas con el menor n umero posible
de aristas que tenga al menos dos arboles generadores de peso mnimo distintos.
8.4.4.- Un bosque generador de peso mnimo es un conjunto de arboles, donde cada arbol
es un arbol generador de peso mnimo para la componente conexa de la gr aca.
Habr a tantas componentes conexas como arboles generadores de peso mnimo. Ex-
plica c omo modicaras los algoritmos de Prim y Kruskal para que pudieran calcular
el bosque generador de peso mnimo de una gr aca cualquiera, con posiblemente
m as de una componente conexa.
8.4.5.- Argumenta por qu e una arista que tiene el peso mnimo de entre los pesos presentes
en la gr aca debe estar presente en el arbol generador de peso mnimo.
8.4.6.- Supongamos que deseamos un arbol generador de peso mnimo para una gr aca,
pero hay ciertas aristas que, independientemente de su peso, tienen que estar presen-
tes en el arbol. C omo sugieres que esto se pueda hacer?
Multigr acas y
gr acas dirigidas
9
Hasta ahora hemos trabajado exclusivamente con gr acas donde entre dos v ertices a
lo m as hay una arista excepto cuando revisamos la formalizaci on dada por Euler para
el problema de los Puentes de K onigsberg y no hemos admitido aristas de la forma uu,
conocidas como lazos
1
. Tampoco hemos trabajado con gr acas dirigidas (llamadas digr a-
cas). En esta secci on abordaremos ambos temas.
9.1. Multigr acas
Una multigr aca es, como ya mencionamos, una gr aca que admite varias aristas entre
dos v ertices llamadas aristas paralelas y lazos. En realidad una gr aca es un caso
particular de una multigr aca, por lo que todos los conceptos que vimos en las gr acas
se aplican a multigr acas. La diferencia fundamental es que los extremos de una arista
ya no determinan unvocamente a la arista. Por ello se usa identicar a las aristas de una
multigr aca asociando nombres para cada arista. Veamos una multigr aca en la gura 9.1.
En el caso de multigr acas las trayectorias especicar usando los nombres de las aris-
tas, no las parejas de v ertices, ya que esto ultimo lleva a confundir de cu al arista se trata.
Podemos observar, por ejemplo, que la gr aca del problema de los Puentes de K onigsberg
es una multigr aca. Por lo tanto encontrar un ciclo euleriano o un paseo euleriano se apli-
ca tambi en a multigr acas. o de componente conexa de una gr aca, que se interpreta de
1
En ingl es loop.
354 Multigr acas y gr acas dirigidas
manera directa para una jultigr aca.
Figura 9.1 Ejemplo de multigr aca
R
U
V W
Z
Y
X
g
h
b

c
i
m
e
f
d
k
a
j
n
La representaci on de multigr acas en matrices de adyacencias no es posible, pues no
tendramos la noci on de cu al de las aristas es la que est a en juego. Lo mismo podemos
decir de las listas de adyacencias. En cambio, las matrices o listas de incidencias son una
representaci on adecuada que preserva la distinci on entre las aristas m ultiples.
Ejemplo 9.1. Veamos la matriz de incidencias y las listas de incidencias para la gr aca en la
gura 9.1.
R
U
V
W
X
Y
Z
a b c d e f g h i j k m n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0 0 0 0 0 0 1 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0 1 0 0
1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 0 0 0 1 0 1 1
0 0 0 0 1 1 0 0 0 0 0 1 1 1
0 0 0 1 1 0 0 0 1 1 0 0 0 0
0 0 0 0 0 1 0 1 1 1 0 0 0 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
R
g
h
U
a
b l
V
a
b
c
W
c
d k
m n
X
e f
l
m n
Y d
e
i
j
Z
f
h i
j
Matriz de incidencias Listas de incidencias
9.2 Gr acas dirigidas 355
Ejercicios
9.1.1.- Demuestra que una multigr aca siempre tiene una subgr aca simple que preserva
adyacencias.
9.1.2.- En las siguientes gr acas determina si la gr aca es o no una multigr aca. Justica
tu respuesta.
(a)
a
b
(b)
a
b
c
d
e
(c)
a
b
c
d
e
f
9.1.3.- Lista los lazos y las aristas m ultiples en las siguientes multigr acas.
(a)
u v
b
a c
(b)
u v
w
x
b
d
e
c a
f
(c)
v w x
t u
y z
b
c
d
e
f
h i j
k
m
g
a
n
9.1.4.- Dibuja ejemplos de multigr acas que satisfagan cada una de las siguientes condi-
ciones:
(a) Hay exactamente dos ciclos.
(b) Hay un ciclo de tama no 1.
(c) Hay un ciclo de tama no 2.
356 Multigr acas y gr acas dirigidas
9.2. Gr acas dirigidas
Como mencionamos al principio de este captulo, una gr aca dirigida o digr aca
D = (V, A) es una pareja compuesta por un conjunto de v ertices, como en el caso de
las gr acas, y un conjunto de arcos que consisten de parejas ordenadas de v ertices. Recor-
damos que a las parejas ordenadas de v ertices se les conoce como arcos para subrayar el
hecho de que el orden de los v ertices en la pareja importan: (u, v) ,= (v, u). En el caso de
las digr acas, podemos tener tambi en multigr acas dirigidas, aunque el concepto de arco
m ultiple entre dos v ertices se aplica unicamente a la presencia m as de una vez de la mis-
ma pareja de v ertices ordenados. Es frecuente la presencia de lazos en el caso de gr acas
dirigidas.
Ejemplo 9.2. En la gura 9.2 vemos la ilustraci on de algunas digr acas.
Figura 9.2 Ejemplos de digr acas
(a)
a
b
c
d
(b)
a
b
c
d
(c)
a
b
c
d
e
En la digr aca de la gura 9.2(a) podemos observar que aunque hay dos arcos entre a
y c, uno corresponde a la pareja ordenada (a, c) mientras que el otro corresponde a (c, a),
por lo que no hay posibilidad de confundirlos. En la gura 9.2(b) podemos observar que
no hay manera de llegar del v ertice a al v ertice c, siguiendo la direcci on de los arcos. En
cambio, en la 9.2(c) se puede llegar desde cualquier v ertice a cualquier otro siguiendo la
direcci on de los arcos.
En el caso de digr acas, al denir uns trayectoria deberemos exigir que la direcci on de
los arcos sea la correcta:
Denici on 9.1 (trayectoria dirigida) Una trayectoria dirigida en una digr aca es una sucesi on
de arcos a
1
, a
2
, . . . , a
k
tal que a
i
= (u, v), a
i1
= (x, u) y a
i+1
= (v, y), 2 i k 1.
9.2 Gr acas dirigidas 357
Ejemplo 9.3. En la digr aca de la gura 9.2(a) la sucesi on (a, c), (c, d), (d, a), (a, b), (b, c), (c, a)
forman una trayectoria dirigida; pero la sucesi on (c, a), (c, d), (d, a), (a, b), (b, c), (c, a) no
corresponde a una trayectoria dirigida, pues no coinciden el segundo elemento de la primera
pareja con el primer elemento de la segunda pareja.
En ocasiones es conveniente observar una digr aca sin tomar en cuenta la direcci on de
sus arcos. Tenemos entonces el concepto de gr aca subyacente:
Denici on 9.2 (gr aca subyacente) La gr aca subyacente de una digr aca D es la que resulta
de quitar la direcci on a los arcos de la digr aca; esto es, considerar a las parejas de v ertices
que representan a los arcos como parejas no ordenadas.
Si consideramos a las subgr acas subyacentes, tenemos la siguiente denici on:
Denici on 9.3 (trayectoria no dirigida) Uns trayectoria no dirigida en una digr aca D es aque-
lla que es una trayectoria en la gr aca subyacente.
Otro tipo de caminos que podemos identicar son los caminos antidirigidos:
Denici on 9.4 (trayectorias antidirigidas) Una trayectoria antidirigida es una sucesi on de ar-
cos o echas que alternan direcciones.
Veamos dos deniciones m as relacionadas con digr acas:
Denici on 9.5 (exgrado) El exgrado de un v ertice v V denotado por d
+
(v) corresponde al
n umero de arcos que salen de v, aqu ellos en los que el primer componente es v.
Denici on 9.6 (ingrado) El ingrado de un v ertice v V denotado por d

(v) corresponde al
n umero de arcos que llegan o entran a v, aqu ellos cuya segunda componente es v.
Ejemplo 9.4. Veamos los ingrados y exgrados de las gr acas de la gurea 9.2.
gr aca 9.2(a) gr aca 9.2(b) gr aca 9.2(c)
v d
+
d

v d
+
d

v d
+
d

a 3 3 a 2 1 a 1 1
b 1 1 b 1 1 b 2 2
c 3 3 c 2 0 c 1 1
d 1 1 d 0 3 d 1 2
e 2 1
358 Multigr acas y gr acas dirigidas
En cuanto a la representaci on de las gr acas dirigidas lo haremos de la misma manera
que lo hicimos con gr acas en general, siempre y cuando no se repita ninguna pareja or-
denada de v ertices. Cabe mencionar que en este caso las matrices de adyacencias no van
a ser sim etricas, ya que el arco (u, v) se registra unicamente en el rengl on u, columna v.
Por otro lado, las matrices de incidencias no nos van a dar informaci on respecto al ingrado
o exgrado de los v ertices, ya que si, para un v ertice dado, registramos si es extremo de un
arco, de la matriz, y sin ver a la pareja que conforma al arco, no sabemos si el arco sale o
llega al v ertice. Tampoco tenemos realmente forma de representar a un lazo en las matrices
de incidencias. Una opci on es la de anotar con 1 los v ertices a los que llega esa arista y con
1 los v ertices de los que sale, pero esta representaci on tampoco nos va a dar oportunidad
de representar lazos.
Para el caso de las listas de adyacencias seguiremos la regla de colocar en la lista de un
v ertice dado s olo aquellos v ertices a los que se puede llegar desde ese v ertice recorriendo
un unico arco; similarmente, para las listas de incidencias unicamente registraremos en la
lista de un v ertice a aquellos arcos que salen de ese v ertice.
Ejemplo 9.5. Veamos las distintas representaciones para la digr aca de la gura 9.2(a), a la que le
agregamos nombres a los arcos:
a
b
c
d
a
1
a
2
a
3
a
4
a
5
a
6
a
8
a
7
Matriz de adyacencias
a
b
c
d
a b c d
_
_
_
_
_
_
1 1 1 0
0 0 1 0
1 0 1 1
1 0 0 0
_
_
_
_
_
_
Matriz de incidencias
a
b
c
d
a
1
a
2
a
3
a
4
a
5
a
6
a
7
a
8
_
_
_
_
_
_
1 0 0 1 1 1 1 0
1 1 0 0 0 0 0 0
0 1 1 0 1 1 0 1
0 0 1 1 0 0 0 0
_
_
_
_
_
_
Listas de adyacencias
a a
b d
b
c
c c a
d
d
a
Listas de incidencias
a
b
c
d
a
1
a
5
a
7
a
2
a
3
a
6
a
8
a
4
El concepto de conexidad en gr acas se traslada a digr acas de manera un poco distinta.
Por un lado tenemos el concepto de digr aca fuertemente conexa , donde se exige que haya
9.2 Gr acas dirigidas 359
un camino dirigido entre cualesquiera dos v ertices. Aunque en ocasiones esta exigencia
resulta demasiado fuerte, es com un que se desee una digr aca con estas caractersticas
para garantizar el acceso de cualquier v ertice desde cualquier otro. El concepto de digr aca
(d ebilmente) conexa es un poco m as relajado e involucra a la gr aca subyacente. Entonces,
decimos que una digr aca es conexa si su gr aca subyacente es conexa.
Ejemplo 9.6. Si bien en la digr aca de la gure 9.2(b) no hay trayectorias dirigidas entre cuales-
quiera dos v ertices de la digr aca por ejemplo, no se puede llegar desde el v ertice d al
v ertice a la gr aca subyacente es conexa, como se puede observar en la gura.
a
b
c
d
Pasemos a ver algunas de las propiedades que vimos en gr acas simples y que, de
alguna manera, se adaptan a gr acas dirigidas.
Lema 9.1 En una gr aca dirigida D = (V, A), las siguientes cantidades son iguales:

vV
d
+
(v) =

vV
d

(v) = [A[
Demostraci on.
Claramente por cada unidad en el ingrado de un v ertice que corresponde a un arco que
llega al v ertice, este arco proviene de alg un (otro) v ertice, donde corresponde, a su vez, a
una unidad en el exgrado de ese v ertice. Por lo que por cada unidad en el ingrado, existe
una unidad en el exgrado y la primera igualdad se cumple. Ahora, el n umero de arcos
los podemos contar ya sea cuando salen de un v ertice (el exgrado) o cuando llegan a un
v ertice, que corresponde al ingrado. Por lo tanto, el n umero total de arcos corresponde a
la suma de los ingrados o bien a la suma de los exgrados.
Ejercicios
9.2.1.- Para las siguientes matrices de adyacencias, dibuja las gr acas dirigidas correspon-
dientes.
360 Multigr acas y gr acas dirigidas
(d)
_
_
_
_
_
_
_
_
0 1 0 0 0 0
0 0 1 0 1 0
0 0 0 0 0 1
1 1 0 0 0 0
0 0 1 1 0 0
0 0 0 0 1 0
_
_
_
_
_
_
_
_
(e)
_
_
_
_
_
_
_
_
0 1 0 1 0 0
0 0 1 1 0 0
0 0 0 0 0 1
0 0 1 0 1 0
0 0 1 0 0 1
0 0 0 0 0 0
_
_
_
_
_
_
_
_
(f)
_
_
_
_
_
_
_
_
1 1 1 1 1 0
0 1 1 1 1 1
1 0 1 1 1 1
1 1 0 1 1 1
1 1 1 0 1 1
1 1 1 1 0 1
_
_
_
_
_
_
_
_
9.2.2.- Para las siguientes gr acas dirigidas, construye las matrices de adyacencias y las
listas de adyacencias e incidencias correspondientes.
(a)
a
b
c
d
e
f
g
(b)
a
b
c
d
e f
g
h
(c)
a
b
c
d
e
(d)
a
b
c
d
e f
9.2.3.- Hay alguna caracterstica que determine, a priori, que una gr aca dirigida no tenga
caminos desde un v ertice origen a cualquiera de los v ertices de la gr aca?
9.2.4.- Da un algoritmo para determinar si desde cualquier v ertice se puede llegar a un
v ertice dado en una gr aca dirigida.
9.3 Circuitos eulerianos 361
9.2.5.- Escribe una denici on de lo que es un isomorsmo entre gr acas dirigidas.
9.2.6.- Determina si las gr acas dirigidas a continuaci on son o no isomorfas.
a
b
c
d
u v
w x
9.3. Circuitos eulerianos
Para el caso de digr acas, se denen condiciones un poco distintas para que haya un
circuito euleriano dirigido (en adelante abreviamos a circuito euleriano simplemente); b asi-
camente, se exige que a cada v ertice al que se llega mediante un arco dirigido hacia el,
haya un arco que salga de el para poder abandonarlo. Esta condici on queda clara en el
teorema 9.1.
Teorema 9.1 Una digr aca D = (V, A) cuya gr aca subyacente es conexa, tiene un circuito eule-
riano dirigido si y s olo si para cada v V , d
+
(v) = d

(v).
Demostraci on.
= Supongamos que D = (V, A) tiene un circuito euleriano. Mantengamos la cuenta de
d
+
(v) y d

(v), v V . Sea v
0
el v ertice en el que iniciamos; sumamos 1 a d
+
(v
0
). A
partir de ese momento, a cada v ertice al que llegamos, salimos de el, de donde por cada
arco que llega tenemos un arco que sale del v ertice, por lo que incrementamos en 1 tanto
a d
+
(v) como a d

(v). Pero para el ultimo v ertice en el circuito unicamente tenemos el


arco que llega. Pero ese v ertice es v
0
, el mismo desde el cual iniciamos, por lo que ese
ultimo arco se aparea con el que se us o para empezar e incrementa a d

(v) en 1.
v V, d
+
(v) = d

(v)
= Supongamos ahora que v V, d
+
(v) = d

(v). Seguimos el algoritmo dado para


gr acas no dirigidas, pero en cada v ertice elegimos alg un arco que salga y que no haya
sido todava utilizado; como en el caso de digr acas

d
+
(v)=

(v)
vV vV
, cada uno de
estos arcos, llega a otro v ertice. Como tenemos para cada v ertice que d

(v) = d
+
(v),
cada vez que llegamos a un v ertice, tenemos uno libre por el cual salir. Por lo que si
seguimos el algoritmo 6.1, pero eligiendo para salir un arco que tenga como primer
362 Multigr acas y gr acas dirigidas
componente al v ertice del que deseo salir, construiremos un circuito euleriano.
En cuanto a los paseos eulerianos dirigidos (en adelante, paseos eulerianos simple-
mente), tambi en podemos pensar en condiciones similares. Mientras que en gr acas no
dirigidas se exiga que hubiese exactamente dos v ertices de grado impar y el resto de grado
par, en el caso de digr acas debemos pedir que exactamente un v ertice tenga un arco m as
de salida que los que tiene de entrada, mientras que exactamente un v ertice tenga un arco
m as de entrada que los que tiene de salida. El resto de los v ertices tendr a que cumplir la
condici on de que su exgrado sea igual a su ingrado. El paseo euleriano debe iniciar en el
v ertice de exgrado mayor al ingrado y debe terminar en el v ertice con ingrado mayor a su
exgrado.
Ejemplo 9.7. Dada la gr aca dirigida de la gura 9.3, decidir si la digr aca tiene o no un paseo
euleriano, y si lo tiene, encontrarlo.
Figura 9.3 Digr aca para paseo dirigido euleriano
s
u
v
w
x
y
z
t
Respuesta: La digr aca tiene una trayectoria dirigida euleriana porque d
+
(v) = d

(v),
v V , excepto para s que tiene d

(s) = 1 mientras que d


+
(s) = 2, lo que indica
que se debe empezar en ese v ertice. Para el v ertice donde se debe terminar tenemos
d

(v) = 2 y d
+
(v) = 1; de donde los v ertices cubren las condiciones necesarias y
sucientes para que la gr aca tenga un paseo euleriano euleriana.
En la gr aca de la gura 9.4 anotamos los arcos con el orden en que pueden recorrerse
para obtener un paseo euleriano.
9.3 Circuitos eulerianos 363
Figura 9.4 Digr aca con el paseo euleriano
s
u
v
w
x
y
z
t
13
14
1 8
7
2
9
12
6
11
3 4
10
5
Ejemplo 9.8. Examinemos las digr acas que presentamos en la gura 9.2 para ver si tienen o no
circuito o paseo euleriano.
(a) En la digr aca de esta gura, la gr aca subyacente es conexa y nos encontramos con
que para todos los v ertices se cumple que su ingrado sea igual a su exgrado, por lo
que tiene un circuito euleriano. A continuaci on mostramos la digr aca con las aristas
anotadas con el orden en que son tomadas para el circuito euleriano.
a
b
c
d
5 6
3 4
2
8
7 1
Hay muchos otros posibles circuitos eulerianos en esta digr aca. Invitamos al lector
a encontrarlos.
(b) En esta digr aca tres de los cuatro v ertices tienen distintos su ingrado y su exgrado,
por lo que no hay posibilidad ni de circuito euleriano ni de paseo euleriano.
(c) En esta digr aca vemos que se cumplen las condiciones para un paseo euleriano,
empezando en el v ertice e que es el que tiene el exgrado mayor a su ingrado, y
terminando en el v ertice d que es el que tiene el ingrado mayor que el exgrado. Un
paseo euleriano posible se muestra a continuaci on.
364 Multigr acas y gr acas dirigidas
a
b
c
d
e
6
7 4
3
2
1
5
Hay al menos otro paseo euleriano sobre esta misma digr aca. Invitamos al lector a
encontrarlo.
Como se puede observar, la unica diferencia entre los algoritmos que se aplican a gr a-
cas no dirigidas o a digr acas, en el caso de paseos eulerianos, es que hay que cuidar de
cu al de los dos v ertices se sale; la representaci on m as util para manipular digr acas va a
ser la de listas de adyacencias porque esta representaci on es la que nos va a dar m as infor-
maci on. Sin embargo, si queremos saber, por ejemplo, el ingrado de un v ertice, tendremos
que contar las veces que ese v ertice aparece en las distintas listas, lo que tiene un costo
proporcional al n umero de arcos.
Ejercicios
9.3.1.- Para las digr acas del ejercicio 9.3.2, determina si tienen circuito euleriano, paseo
euleriano o ninguno de los dos. Si es alguno de los primeros dos casos, encuentra un
circuito euleriano o un paseo euleriano, seg un corresponda.
9.3.2.- Queremos modelar con una digr aca las preferencias de un profesor para impartir
cursos en la carrera de Ciencias de la Computaci on. El profesor ha establecido su
preferencia entre cada dos materias de cinco Matem aticas discretas (MD), An ali-
sis l ogico (AL), Teora de la computaci on (TC), Complejidad computacional (CC),
Lenguajes de programaci on (LP) que el puede impartir. Las preferencias son las
siguientes:
Su materia favorita es TC.
Preere dar AL que cualquier otra materia excepto TC.
Preere dar CC que LP.
Preere dar MD que CC o LP.
Dibuja la gr aca dirigida que corresponde a estas preferencias. Existe alg un orden
en estas materias que reeje estas preferencias? Cu antos posibles ordenamientos
9.4 Distancias en una gr aca dirigida 365
existen?
(Este problema se asemeja un poco al de trayectorias hamiltonianas, pues nos pide
un camino que visite a todos los v ertices exactamente una vez, siguiendo la direcci on
de los arcos, donde hay un arco del v ertice u al v ertice v si es que u debe ir antes que
v en la lista ordenada.)
9.3.3.- Un torneo es una digr aca que se obtiene asignando direcci on a cada arista de una
gr aca completa no dirigida. Es decir, un torneo es una digr aca en la que cada pareja
de v ertices est a conectado por un solo arco. En un torneo, el exgrado de un v ertice nos
indica el marcador (n umero de juegos que gan o). El rey del torneo es aquel v ertice
con marcador mayor. En los siguientes torneos encuentra al rey del torneo y muestra
que hay una trayectoria dirigida de longitud 1 o 2 desde ese v ertice a cualquier otro:
(a)
a
b
c
d
(b)
a
b
c
d
e
(c)
a
b
c
d
e
f
9.3.4.- Puede un torneo tener dos equipos que siempre pierdan?
9.3.5.- En un torneo con 4 equipos, Am erica, Pumas, Chivas y Cruz Azul, cada uno de los
equipos juega contra el resto exactamente una vez. El resultado de los juegos es el
siguiente:
i. Los Pumas les ganaron al resto de los equipos.
ii. Las Chivas perdieron contra el resto de los equipos.
iii. El Am erica les gan o a todos menos a los Pumas.
Puedes asignar lugares a cada uno de los equipos? Cu antos posibles ordenes hay?
9.3.6.- Escribe el algoritmo para encontrar un circuito euleriano en una digr aca.
366 Multigr acas y gr acas dirigidas
9.4. Distancias en una gr aca dirigida
Adaptamos el concepto de distancia entre dos v ertices u y v (u, v) en una digr aca
a que sea la longitud de la trayectoria dirigida simple m as corta que va de u a v, o bien
(u, v) = si tal trayectoria dirigida no existe. Nuevamente, el orden de los v ertices es
importante, pues en una digr aca puede haber una trayectoria dirigida de u a v y que no
haya una de v a u.
9.4.1. BFS
Para encontrar (u, v) para todo v ertice v en V , usamos el algoritmo BFS, excepto que
las listas de adyacencias respetan la direcci on de los arcos ver el algoritmo BFS en la
p agina 270.
Similarmente, si deseamos encontrar la distancia entre cualquier pareja de v ertices o
entre dos v ertices (u, v), usamos el algoritmo BFS con las listas de adyacencias respetando
la direcci on de los arcos. Debemos tener claro que aunque la gr aca subyacente sea conexa,
pudiese suceder que no haya trayectoria entre dos v ertices dados, ya que esta depende
del v ertice origen y que los arcos se encuentren en la direcci on correcta para seguir una
trayectoria. Veamos, por ejemplo, la misma gr aca que se us o para ejemplicar BFS en la
gura 9.5, pero con direcci on denida para los arcos.
Figura 9.5 Exploraci on BFS de una gr aca dirigida desde el v ertice p
p
r
v
w
u
q
t
s
0
1
3
2 3 5
2
4
C = p, r, u, v, t, w, q, s)
Si la distancia se mide desde el v ertice p, entonces todos los v ertices quedan con la
distancia denida (< ). En cambio, si intentamos medir la distancia desde el v ertice u
nos vamos a encontrar que unicamente la parte derecha de la gr aca es alcanzable, mientras
que la parte izquierda no; esto sucede a pesar de que la gr aca subyacente es conexa ver
gura 9.6.
9.4 Distancias en una gr aca dirigida 367
Figura 9.6 Exploraci on BFS de una gr aca dirigida desde el v ertice u
p
r
v
w
u
q
t
s

0 1 3

2 C = u, t, q, s)
arcos usados no incluidos
arcos no explorados
arcos que dan la distancia
9.4.2. Algoritmo de Dijkstra para trayectorias dirigidas m as cortas
Tambi en en el caso del algoritmo de Dijkstra para trayectorias dirigidas m as cortas,
todo sucede igual que en el caso de gr acas no dirigidas, excepto que los arcos se toman
con la direcci on adecuada ver p agina 276 donde en cada v ertice se pregunta por los
arcos no usados que salen de ese v ertice.
En el caso de este algoritmo, cuando se utilizan arcos en lugar de aristas las cosas
pueden cambiar mucho, pues aunque la gr aca subyacente sea conexa, en ocasiones no
habr a trayectoria dirigida entre dos v ertices. Veamos la misma gr aca de la gura 6.14
pero con direcci on en las aristas, para ver c omo se denen las distancias, en la gr aca de la
gura 9.7.
Figura 9.7 Algoritmo de Dijkstra para trayectorias dirigidas m as cortas con origen en s
s
o
t
q
u
p
v
r
w
1
1
3 2 3
2
1
3
1 3
1 2 5 3
0
2
1
4
4
16
6
5
8
arcos usados no incluidos
arcos incluidos y quitados
arcos que dan la distancia
v
i
s o t q u r v w p
0 3, 2 1 4 7 8 9 11 16
orden 1 3 2 4 5 6 7 8 9
368 Multigr acas y gr acas dirigidas
Sin embargo, si el v ertice origen es, por ejemplo, u, no todos los v ertices van a tener
una distancia denida, como se puede ver en la gura 9.8.
Figura 9.8 Algoritmo de Dijkstra para trayectorias dirigidas m as cortas con origen en u
s
o
t
q
u
p
v
r
w
3
1
1
3 2 3
2
1 1 3
5
3
1 2
2 9
2
0
4
1

arcos usados no incluidos


arcos no explorados
arcos que dan la distancia
v
i
u o r v w p
0 2 1 2 4 9
orden 1 3 2 4 5 6
9.4.3. N umero de caminos
Nuevamente utilizamos el m etodo de multiplicar las matrices de adyacencias, excepto
que estas matrices deben reejar la direcci on de los arcos. En A
k
encontraremos el n umero
de caminos dirigidos del v ertice u al v ertice v de tama no k.
Veamos lo que pasa con la matriz de adyacencias de la gr aca en la gura 9.8 sin pesos
en las aristas. Obtendremos unicamente los caminos de longitud 2, s olo para ilustrar.
o
p
q
r
s
t
u
v
w
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
o p q r s t u v w
0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 1 1 0
0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 1 1
1 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_

o p q r s t u v w
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 1 1 0
0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 1 1
1 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
o p q r s t u v w
0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0
2 0 0 1 0 1 0 0 0
0 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0
0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 1 1 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
A A
A
2
9.4 Distancias en una gr aca dirigida 369
En la matriz correspondiente a A
2
, tenemos que hay dos caminos del v ertice q al v er-
tice o. En efecto, en la gr aca de la gura 9.8 podemos observar que esos dos caminos
son q u o y q s o. El camino de longitud 2 que va del v ertice t al v ertice s es
t q s. El resto de los caminos los puede vericar el lector de as desearlo.
9.4.4.

Arboles
En el caso de arboles dirigidos los cambios que se presentan son m as signicativos que
para el resto de los algoritmos que vimos. Por falta de espacio y tiempo hemos decidido no
revisarlo en esta ocasi on.
Ejercicios
9.4.1.- Escribe la versi on del algoritmo BFS para encontrar las distancias en una gr aca
dirigida.
9.4.2.- Usa el algoritmo BFS para encontrar el arbol de distancias de las siguientes digr a-
cas.
(a)
s a
b
c
d
e f
g
h i
j
k l
m t
(b)
s
a
b
c
d
e f
g
h
i j
k
l
m n o p
q r t u
9.4.3.- Encuentra los arboles de distancias para las gr acas dirigidas con pesos en los arcos
que se encuentran a continuaci on.
370 Multigr acas y gr acas dirigidas
(a)
s a
b
c
d
e f
g
h i
j
k l
m t
2
4 2
3
2 1
2
1
5
2
3
2
1
3
2
3
2
3
4
3
(b)
s
a
b
c
d
e f
g
h
i j
k
l
m n o p
q r t u
2
2
3
3
4
4
3
2 1
1
2
3 4 4
3 2 1
1
2
3
4
4
3
2 1
1 2 3
4
9.4.4.- Encuentra la trayectoria dirigida m as corta del v ertice s al v ertice a en las siguientes
digr acas utilizando el algoritmo de Dijkstra.
(a)
s
c a
d
e
b
f
g
5
3
2
2
2 4 7
3
2
4
1
6
1
1
(b)
s
c
f
g
d
h
b
a
e
i
5
1 8
4
2 3
2 3
1
1
9
1 2
3 1
(c)
s
c
d
e f a
g
h b
i
4
2
3
2
3 1 1 1
1 1
2
1 1
2
2
1 1
3
9.4.5.- Explica por qu e para una digr aca T donde V = v
1
, v
2
, . . . , v
n
con su matriz
de adyacencias A, el n umero de caminos dirigidos de tama no m desde v
i
hasta v
j
est a dado por la entrada [i, j] de A
m
.
9.4.6.- Da una denici on de digr acas isomorfas con pesos en sus arcos. Da un ejemplo de
9.4 Distancias en una gr aca dirigida 371
dos digr acas con pesos en sus arcos que no sean isomorfas, aun cuando sus gr acas
subyacentes s lo son.
9.4.7.- Muestra que todo torneo tiene una trayectoria dirigida hamiltoniana.
9.4.8.- Para la siguiente gr aca determina el n umero de caminos de tama no 1, 2, 3 y 4
desde a hasta d y desde d hasta a.
a
b
c
d
Bibliografa
[1] K. Doets and J. van Eijck. The Haskell Road to Logic, Maths and Programming. Kings
Coll. Pub., London, 2004.
[2] John A. Dossey, Albert D. Otto, Lawrence E. Spence, and Charles Vanden Eynden.
Discrete Mathematics. Pearson/Addison-Wesley, 5-th edition, 2006.
[3] Judith L. Gersting. Mathematical Structures for Computer Science. Computer Science
Press, W.H. Freeman and Company, third edition, 1993.
[4] Winifried Karl Grassman and Jean-Paul Tremblay. LOGIC AND DISCRETE MATHE-
MATICS, A Computer Science Perspective. Prentice-Hall Inc., 1996.
[5] David Gries and Fred B. Schneider. A Logical Approach to Discrete Mathematics.
Springer-Verlag, 1994.
[6] Jerold W. Grossman. DISCRETE MATHEMATICS, an introduction to concepts, met-
hods and applications. Macmillan Publishing Company, 1990.
[7] Thomas Koshy. Discrete Mathematics with Applications. Elsevier Academoc Press,
2004.
[8] K.H. Rossen. Discrete Mathematics and its Applications. McGraw Hill, 6-th edition,
2006.

Indice
::=, 10
acoplamiento perfecto, 210
adyacencia
en v ertices, 217
preservaci on, 240
alcance, 54, 122
alcanzable
vertice, 270
algoritmo, 202
BFS, 269
circuito euleriano, 250
de Dijkstra, 276
en digr acas, 367
de Floyd, 292
de Prim, 329
de Warshall, 290
DFS, 322
glot on o avido, 276
para clasicar f ormulas, 109
para consecuencia l ogica, 110
para ruta crtica, 205
para satisfacibilidad, 109
para tautologas, 108
an alisis sint actico, 50
apareamiento perfecto, 210
arbol, 12, 247, 312, 315
binario, 180, 197
de distancias, 340, 369
de peso mnimo, 339
generador, 318
de peso mnimo, 328
por BFS, 320
por DFS, 322, 326
por Dijkstra, 328
por Prim, 330
resultado, 12
archivo
directorio, 158
arco, 203, 216, 356
argumento
correcto, 37, 77, 155
deductivo, 37
inductivo, 37
l ogico, 19, 37
aridad, 119
arista, 215, 216
direcci on, 257
m ultiple, 216
aristas
hacia atr as, 327
paralelas, 353
asociatividad, 34, 44
aut omatas nitos, 175
avido
algoritmo de Prim, 329
axioma, 91
de inducci on, 166
de Peano, 165
BFS
algoritmo, 269
en digr acas, 366
exploraci on en digr aca, 366
gr acas dirigidas, 369
bicondicional, 32, 61
busqueda
en profundidad, 322
b usqueda
en profundidad, 322
376

INDICE
cadenas, 10
c alculos deductivos, 91
camino, 243
longitud o tama no, 245
casaci on de patrones, 181
cerradura transitiva, 292
(G), 299
ciclo, 245
BFS, 272
hamiltoniano, 261, 266
circuito
euleriano, 248, 249, 362364
algoritmo, 250
dirigido, 361
C
n
, 221
ciclo, 221
cola
de prioridades, 276, 329
estructura de datos, 276
coloraci on, 295, 296
BFS, 302
ciclos, 299, 301
gr aca
bipartita, 304
completa, 301
colorear, 296
completo, 96
componente
conexa, 270
conclusi on, 19, 37
condicional, 29
conectivo, 24
principal, 54
conexidad
digr acas, 358
conjunci on, 28
conjuntos innitos numerables, 163
conmutatividad, 33, 63
consecuencia l ogica, 77, 82, 88
constante, 4
contingencia, 35
contradicci on, 35, 36, 76
contraejemplo, 86, 88
contrapositiva, 31
contrarrecproca, 31
correcto, 20
cuanticaci on
alcance, 121
existencial, 121
universal, 121
vacua, 150
variable de la, 121
cuanticador, 117
cuatro colores
teorema de los, 307
deducci on formal, 91
denici on
recursiva, 178
de funciones, 181
general, 178
(u, v)
distancia en digr acas, 366
derivable, 92
derivaci on, 12, 91
descendiente
relaci on, 178
DFS
algoritmo, 325
ejecuci on, 323
diagonal principal, 230
digr aca, 203, 216, 353, 356
conexa, 359
d ebilmente conexa, 359
fuertemente conexa, 358
listas de adyacencias, 358
matriz de adyacencias, 358
matriz de incidencias, 358
Dijkstra
algoritmo de, 276
dilema constructivo simple, 85, 89
Dirac
teorema de, 262

INDICE 377
direcci on
asignar, DFS, 327
distancia, 269
en digr acas, 366
distributividad
en l ogica de predicados, 149
disyunci on, 29
d
+
(v)
exgrado, 357
d

(v)
ingrado, 357
dominante, 34
dominio
bien fundado, 164
de interpretaci on, 139
E
x
R
, 46
E[x := R], 46
elemento identidad, 34
elemento neutro, 34
eliminaci on
de , 93
de , 92
emparejamiento de patrones, 181
enunciado, 124
equivalencia, 32, 61
l ogica, 61, 147
algebra de, 72
esquema, 51
b asico, 55
instanciar un, 52
estado, 22, 42, 75
evaluaci on en un, 43
evaluaci on
de una expresi on, 42, 49
exgrado, 217, 227, 357, 362, 363
exploraci on, 243
expresi on
aritm etica, 6, 179
l ogica, 50
extremo
de una arista, 215
f
(n)
, 119
factorial, 181
falacia, 96
Floyd
algoritmo de, 292
f ormula, 50
at omica, 21
bien construida, 179
cerrada, 124
cuanticada, 121
insatisfacible, 76
no satisfacible, 76
razonable, 98
v alida, 76
f ormula at omica
con predicados, 119
fuertemente tipicado, 157
funci on sucesor, 164
G[V
i
], 299
generalizaci on
existencial, 156
universal, 155
grado, 217
gr aca, 202, 215
acclica, 247, 315, 318
bipartita, 210, 221
completa, 222
completa, 220
coloraci on, 301
componente de una, 247
con pesos, 275, 319
conexa, 247, 313, 315, 318
digr aca, 203
dirigida, 203
exploraci on, 243
generadora
BFS, 273
isomorsmo, 236
multigr aca, 216
378

INDICE
n umero de caminos, 284
plana, 307
rala, 231
simple, 216
subyacente, 357, 359
gram atica, 10
de la l ogica
de predicados, 121, 122
proposicional, 24
de los t erminos, 118
formal, 10
hojas, 12
holgura, 209, 211
slack, 211
homeomorsmo, 309
1, 75
idempotencia, 35
identicador, 51
implicaci on, 29
contrapositiva, 31
contrarrecproca, 31
recproca, 31
incidencia
en v ertices, 217
inc ognitas, 44
ndice, 119
inducci on, 163
cambio de base, 170
completa, 172
en f ormulas, 190
en listas, 187
en arboles, 192
estructural, 186
fuerte, 172
matem atica, 163
inferencia
regla de, 59
ingrado, 217, 227, 357, 362, 363
instanciaci on
existencial, 156
universal, 155
instanciar
un esquema, 52
interpretaci on, 75, 82, 88
funci on de, 75
introducci on
de , 92
de , 92
inversa, 31
isomorsmo
de digr acas, 361
de digr acas con pesos, 371
de gr acas, 238
juicio
armativo, 157
aristot elico, 130
existencial
armativo, 130, 156
negativo, 130
universal
armativo, 130, 156
negativo, 130
/
5
, 309
K
m,n
bipartita completa, 222
K
n
, 220
Kruskal
algoritmo de, 346
arbol de peso mnimo, 346
subgr aca conexa acclica, 346
/
3,3
, 309
Kuratowski
teorema de, 309
/, 91
laberinto
DFS, 322
lazo, 216, 230, 353
Leibniz
regla de, 63, 72

INDICE 379
lenguaje
de la l ogica
de predicados, 118
de la l ogica
proposicional, 19
formal, 3
fuertemente tipicado, 157
natural, 3
LIFO
pila, 324
lista
concatenaci on, 183
de adyacencias, 231
de incidencias, 233
en multigr acas, 354
nita, 179
longitud, 182
reversa, 183
tipo, 158
literal, 98, 103
complementaria, 103
l ogica
de predicados de primer orden, 118
proposicional, 21
mapa, 307
matriz
cuadrada, 229
de adyacencias, 228
de distancias, 293
de incidencias, 230
en multigr acas, 354
de pesos, 293
rala, 231
sim etrica, 230
triangular, 235
metaexpresi on, 36
metalenguaje, 36
m etodo
analtico, 55
generador, 55
micromundo, 133
de cubos, 133
de guras geom etricas, 134
modelo, 4, 75, 98
matem atico, 4
[=, 36
modus
ponens, 59, 82
tollens, 84
multiarco, 356
multigr aca, 230, 248, 249, 353
ciclo euleriano en, 353
componente conexa, 354
paseo euleriano en, 353
trayectoria en, 353
nand, 42
naturales
denici on recursiva, 164
exponenciaci on, 181
producto, 165
suma, 165
negaci on, 27
en l ogica de predicados, 131
notaci on
inja, 5
preja, 5
suja o polaca, 5
numerable, 163
n umero
crom atico, 299
en gr aca plana, 308
de caminos, 368
n umeros naturales, 163
operador, 4
binario, 5
de cuanticaci on, 117
n-ario, 5
unario, 5
Ore
teorema de, 265
380

INDICE
T, 324
palabras, 10
palndroma, 195
paseo
equino, 268
reentrante, 268
euleriano, 249, 256, 362364
dirigido, 362
patr on, 181
Peano
axioma de inducci on, 166
axiomas de, 165
PERT, 205
pesos
homog eneos, 293
Petersen
gr aca de, 267
pila, 324
tipo, 159
poliomin o, 176
pop, 324
precedencia, 44
predicado, 114
calicador, 156
tablas para, 142
premisa, 19, 37
prenexaci on, 150
producciones, 10
propiedades, 116
proposici on, 4, 22, 50
at omica, 21, 23
compuesta, 23, 55
denici on, 23
l ogica, 4
prueba, 91
punto ciego, 322
en DFS, 324
punto jo
en algoritmos, 291
push, 324
raz, 12
rama
de un tableau, 103
rango, 54
razonamiento
ecuacional, 63, 72
recproca, 31
recursi on, 163
reexividad, 63
regla
de reescritura, 10
recursiva, 178
sint actica, 10
regla de inferencia, 59
, 105
, 105
casos simple, 93
de Leibniz, 64
eliminaci on
de , 93
de , 92
generalizaci on
existencial, 156
universal, 155
inconsistencia, 93
instanciaci on
existencial, 156
universal, 155
introducci on
de , 92
de , 92
introducci on de , 93
modus
ponens, 92
tollens, 92
para tableaux, 105
, 105
silogismo
disyuntivo, 93
hipot etico, 92
ruta crtica, 205
satisface, 75

INDICE 381
satisfacible, 75
sem antica, 5, 26, 74, 165
silogismo
disyuntivo, 93
hipot etico, 81, 89, 92
smbolo
no terminal, 10
terminal, 10, 13
sintaxis, 5, 165
s olido, 20
subconjuntos
de aristas, 346
subexpresi on, 11
subgr aca, 223, 318
generadora, 225
inducida, 224
sustituci on
por la izquierda, 11
propiedad de, 58
textual, 46, 63
variables escondidas en, 48
tablas de verdad, 27
tableaux, 98
algoritmos con, 108
contradicci on, 104
f ormula contingente, 105
sem anticos, 98
tautologa, 105, 108
tautologa, 35, 57, 61, 76
teorema
de la deducci on, 95
de los cuatro colores, 307
teora
de la demostraci on, 91
de modelos, 91
tercero excluido, 36
t ermino, 118
tipado, 157
tipo, 156
abreviado, 157
top, 324
torneo
digr acas, 365
transitividad, 63
trayectoria, 244
antidirigida, 357
cerrada, 245
dirigida, 356
m as corta, 367
en multigr acas, 353
hamiltoniana
en digr acas, 365
m as corta, 293
no dirigida, 357
universo
de discurso, 114, 139
valor, 22
forzar un, 86
variable, 4, 10
acotada, 124
libre, 123
ligada, 123
proposicional, 24
verdad
noci on de, 143
v ertice, 203, 215
alcanzable, 270
Warshall
algoritmo de, 290

También podría gustarte