Pr
ologo
Escrib este libro con el fin de ofrecer una introduccion de los Fundamentos
Matem
aticos para la Ciencia de la Computaci
on, que estimula a pensar que las
Matem
aticas no son solo una deducci
on de teoremas, sino tambien una metodologa de modelamiento.
Por lo tanto, la cuestion es de artcular matematicamente el fenomeno de
la Computaci
on. Se que esta es una tarea compleja, que demanda reflexiones
a prop
osito del fenomeno de la computacion y de la metodologa matematica;
comprensiones difciles, que en gran medida a
un deben ser elaboradas; pero
que hoy, cuando la computacion precisa una Ingeniera de corte cientfico, son
ineludibles.
El termino Matematicas Discretasse utiliza extensamente para describir
un tipo de Matem
aticas donde no tiene cabida propiedades tales como cercana
y suavidad, ideas fundamentales del c
alculo. Se trata de un curso hbrido, cuyo
contenido fundamental es de matematicas, aunque muchas de sus aplicaciones
pertenecen a la Ciencia de la Computaci
on.
Para la comprensi
on integral de la ciencia de la computacion se requiere
comprender muchos t
opicos de Matem
aticas Discretas, entre los cuales, en un
nivel de introduccion, creo que los mas adecuados son: algoritmos, conjuntos,
induccion matematica, relaciones y estructuras de orden.
Agradezco a la Universidad Catolica San Pablo por su incondicional apoyo.
Fue Luis Daz Basurco, quien sugirio en primer lugar que debera escribir un
texto de Matem
aticas Discretas para estudiantes del segundo semestre del Programa Profesional de Ingeniera Informatica de la USP que el entusiastamente
dirige. Una vez puesta en marcha mi proyecto (por su puesto) duro mas de lo
que se esperaba. La composicion final fue efectuada por Abigail Parisaca Vargas y Liliana Mamani S
anchez, que trabajaron en LaTeX apoyados por Jes
us
Mena Chalco en la composicion de graficos. A todos ellos mi mas sincero agradecimiento, agradecimiento que hago extensivo a todos mis alumnos que han debera decir sufrido o disfrutado? - de mis cursos de Matem
aticas Discretas y
que han contribudo decisivamente a su depuracion y mejora.
Indice general
1. L
ogica de predicados
1.1. Componentes sint
acticos de la
1.2. Interpretaci
on y validez . . .
1.3. Derivaciones . . . . . . . . . .
1.4. Teorema de deducci
on . . . .
1.5. L
ogica de ecuaciones . . . . .
1.5.1. Regla de sustituci
on .
1.6. Forma normal PRENEX . . .
1.7. Lista de ejercicios . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
12
17
19
24
25
28
30
2. Razonamiento: L
ogico - Matem
atico
2.1. Introduccion . . . . . . . . . . . . . . . . .
2.2. Algoritmos . . . . . . . . . . . . . . . . .
2.3. Conjuntos . . . . . . . . . . . . . . . . . .
2.4. Conjuntos en la Programacion . . . . . . .
2.5. Inducci
on . . . . . . . . . . . . . . . . . .
2.5.1. Principio de Induccion Matem
atica
2.5.2. Principio de Induccion Matem
atica
2.6. Inducci
on en la verificacion de programas
2.7. Lista de Ejercicios . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
Generalizada
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
33
35
43
48
51
54
57
59
63
3. Relaciones
3.1. Relaciones . . . . . . . . . . . . . .
3.2. Manipulacion de relaciones . . . .
3.2.1. Relacion Inversa . . . . . .
3.2.2. Composicion de Relaciones
3.3. Trayectorias . . . . . . . . . . . . .
3.4. Propiedades de las relaciones . . .
3.5. Particiones . . . . . . . . . . . . .
3.6. Cerradura de las relaciones . . . .
3.6.1. Algoritmo de Warshall . . .
3.7. Lista de ejercicios . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
72
72
73
78
79
81
85
87
89
4. Estructuras de Orden
4.1. Conjuntos Parcialmente ordenados
4.2. L
atices . . . . . . . . . . . . . . . .
4.3. Algebras
Booleanas . . . . . . . . .
4.4. Redes L
ogicas . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
93
. 93
. 98
. 104
. 105
L
ogica de
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Predicados
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
.
.
.
.
.
.
.
.
INDICE GENERAL
6
4.5. Aplicaciones . . . . . . . . . . . . . . . . . . . . .
4.5.1. Arreglos logicos programables . . . . . . .
4.5.2. Un circuito para sumar n
umeros binarios
4.5.3. Otros componentes logicos . . . . . . . . .
4.5.4. Construyendo funciones booleanas . . . .
4.6. Minimizacion . . . . . . . . . . . . . . . . . . . .
4.7. Lista de ejercicios . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
113
113
115
117
118
120
130
Captulo 1
L
ogica de predicados
1.1.
Componentes sint
acticos de la L
ogica de
Predicados
Observaci
on 1.1.1. Observemos los siguientes items:
a) El desarrollo del c
alculo proposicional se basa en entidades matematicas
representativas de unidades de informacion, cuya estructura se contempla
como un todo, sin diferenciar sus componentes. Este planteamiento nos
permite representar matematicamente determinadas estructuras deductivas, que sin embargo son correctas en el lenguaje usual. Como ejemplo
considere las siguientes frases:
Antonio no es tonto.
S
olo los tontos se dejan enga
nar por los vendedores ambulantes.
Antonio se deja enga
nar por Juan.
De estas frases uno debera poder concluir que Juan no es vendedor ambulante.
b) Los predicados se utilizan para describir ciertas propiedades o relaciones
existentes o individuos existentes, las entidades que se relacionan de esta
forma se denominan terminos. Ademas de terminos y predicados se usan
los cuantificadores.
c) La veracidad de la frase: Antonio no es tonto, solo se puede ponderar en
un cierto contexto.
Definici
on 1.1. El universo de discurso o dominio es la colecci
on de todas las
personas, ideas, smbolos, estructuras de datos y dem
as que afectan al argumento logico que se esta considerando. Los elementos del dominio se denominan
terminos.
La verdad de una frase puede depender del dominio seleccionado.
Para evitar las cosas triviales se considera que el dominio es diferente del
vaco.
7
CAPITULO 1. LOGICA
DE PREDICADOS
Bonita (t1 )
Plaza
Bonita (x1 )
Variable
est
a entre
est
a entre
t2 y t3
y
a) P (U, O, S) .
b) P (X, M, D), Se puede cuantificar.
c) P (X, M, D), No se puede cuantificar.
d) x P (X, M, D).
e) x P (X, M, D).
bLa aparici
on de x como libre en los casos d y c puede entenderse en dos sentidos:
1. En el sentido general (caso b), x representa un elemento generico del dominio, en este sentido b y d tienen el mismo contenido de informacion.
2. En el sentido condicional (caso c), x es una forma de denominar en elemento inc
ognito del dominio. En este sentido x representa un elemento
u
nico desconocido.
Observaci
on 1.1.3. El nombre de un predicado seguido por una lista de terminos se denomina una formula atomica. Las formulas atomicas pueden combinarse
mediante conexiones logicas como si fuesen proposiciones. x y x, deben tratarse como conexiones unarias los cuantificadores tienen una propiedad superior
a la de todas las conexiones binarias.
CAPITULO 1. LOGICA
DE PREDICADOS
10
Definici
on R1.3. Se dice que una expresionR es una variante de xA si tiene la
x
x
forma de y y A. Analogamente xA y y y son variantes una de otra.
xP (x) xP (x)
Dos cosas solo seran identicas si ambas se tratan identicamente. Esto implica que si una variable aparece tanto libre como ligada, tenemos de hecho
dos variables que casualmente poseen el mismo nombre.
Podemos considerar que las variables ligadas son locales para el ambito
del cuantificador.
Ejemplo 1.1.8. Para el presente ejemplo:
Considere la frase: Y tiene madre
Dominio: Conjunto de todas las personas
M (t1 , t2 ) = t1 es madre de t2
xM (x, y)
No se puede particularizar cuando la variable esta ligada.
Z
x
y
xM (x, y) = M (y, y)
Esto se llama una colisi
on de variables
Y es madre de y (absurdo)
Observaci
on 1.1.4. En logica de predicados
a) Si todos los argumentos de un predicado son constantes individuales, entonces la forma atomica resultante debe ser o bien verdadero o bien falso.
b) Todo metodo que asigne valores de verdad a todas las posibles combinaciones de individuos de un predicado se denomina una Asignaci
on del
Predicado.
Ejemplo 1.1.9. La tabla mostrada a continuacion es una asignacion para
el predicado M (t1 , t2 )
M (t1 , t2 )
DAVID
JUANA
MARIA
PABLO
DAVID
F
F
F
F
JUANA
F
F
F
F
MARIA
F
V
F
F
PABLO
F
V
F
F
CAPITULO 1. LOGICA
DE PREDICADOS
12
M (J, M ) es verdadero
Observaci
on 1.1.5. Si todas las apariciones de x en una expresion A est
an
ligadas, diremos que A no contiene a x libre. Si A no contiene a x libre, entonces
el valor de verdad de A no cambia si x se particulariza con una constante
individual. En este sentido A es independiente de x.
P (x)
P (Oscar)
1.2.
Interpretaci
on y validez
Observaci
on 1.2.1. Observemos que
a) Una interpretaci
on de una frase debe contener informacion suficiente para
determinar si la frase es V o F .
b) Una interpretaci
on de una expresion logica contiene los siguientes componentes.
Tiene que haber un universo de discurso (dominio)
Para cada individuo, tiene que haber una constante individual que
se refiera exclusivamente a ese individuo y a ning
un otro.
Hay que asignar a cada variable libre una constante individual exclusiva. Tiene que haber una para cada predicado que se utilice en la
expresion, incluyendo los predicados de aridad cero, una proposicion
tienen aridad cero.
Ejemplo 1.2.1.
Luis es estudioso
Luis es estudioso
P
E(L)
aridad cero
aridad uno
Llueve
L()
aridad cero
FRANCO
V
MONTERREY
F
ALEMAN
V
Y VALIDEZ
1.2. INTERPRETACION
13
P (x) xP (x)
Ejemplo 1.2.3. Consideremos la frase Hay alguien que admira a todo el
mundo.
El dominio consta de 3 personas: Rosa, Eduardo, Lourdes.
A(t1 , t2 ) = t1 admira a t2
xyA(x, y)
Supongamos la siguiente asignacion:
R
E
L
yA(x, y)
yA(x, y)
R
V
F
F
F
V
E
V
F
V
F
V
L
F
V
F
F
V
yA(x, y)
F
F
F
F
V
yA(x, y)
V
V
V
Por lo tanto:
xyA(x, y)
Existe alguien que admire a todo el mundo: F
Observe que las proposiciones
xyA(x, y)
yxA(x, y)
yxA(x, y)
xyQ(x, y) yxQ(x, y)
CAPITULO 1. LOGICA
DE PREDICADOS
14
Observaci
on 1.2.2. Notemos lo siguiente:
a) Una expresion es valida si es verdadera en todas las interpretaciones. Una
se denota con |= A.
b) Todas las tautologas son expresiones validas
c) Una expresion A no es valida si existe una sola interpretaci
on que haga a
A falsa y no A verdadera.
d) Si B es una expresion, entonces que toda interpretaci
on que haga que B
produzca verdadero, satisface B. Toda interpretaci
on que satisface a B se
denomina un modelo de B. Si B tiene un modelo, entonces se dice que b
es viable. Por tanto una expresion A no es valida si A es viable
e) Una expresion B que no tenga ning
un modelo se denomina CONTRADICTORIA.
f) Sean A y B expresiones, decimos que A es logicamente equivalente a B
si A B es valida, en este caso escribiremos A B o A B. Ademas
decimos que A implica a B si A B es valida y escribimos A B.
g) Tal como en el c
alculo proposicional, escribiremos A1 , A2 , . . . , An que en
conjunto implica logicamente a C.
h) Principales reglas de inferencia en logica proposicional
A, B |= A B
A B |= B
AA B
A, A B |= B
Ley de combinaci
on (LC)
Ley de simplificaci
on (LS)
Ley de Adici
on (LA)
Modus Ponens (MP)
A B, B C |= A C
A B, A |= B
A B, B A |= A B
A, A |= B
A B, A B |= B
A B |= A B
Y VALIDEZ
1.2. INTERPRETACION
15
V AA
F AV
= V xQ(x)
=V
= F xQ(x)
No es valida
CAPITULO 1. LOGICA
DE PREDICADOS
16
P (a) V
xP (x) V
P (b) F
P (x) V
entonces:
xP (x) F
no es valida
P (t1 , t2 ) = t1 es madre de t2
absurdo
d) El problema de demostrar si una expresion es o no valida es indecible.
Ejemplo 1.2.6. Demostrar que es valida la siguiente expresion:
xP (x) xP (x)
Demostraci
on.
A B es valida (A B)
(A B)
A B
no es valida
no es valida
Falsa
17
1.3. DERIVACIONES
1.3.
Derivaciones
Rx
La expresion xA t A es valida si la sustitucion x = t no da a lugar una colisi
on de variables. En otras palabras t no debe transformarse
en una variable ligada de ning
un cuantificador que pudiera quedar. Esta
implicacion se puede convertir en una regla de inferencia en la siguiente
forma:
RxA
x
t A
Que llamaremos particularizacion universal (P.U)
Demostraci
on.
H(t1 ) = t1 es humano
M (t1 ) = t1 es mortal
1. x(H(x) M (x))
Premisa
4. M (s)
MP (2,3)
2. H(s)
3. H(s) M (s)
Supuesto
P.U (1)
CAPITULO 1. LOGICA
DE PREDICADOS
18
Premisa
2. Hija (P, D)
3. xPadre (D, x) Hijo (x, D) Hija (x, D)
Premisa
Premisa
Z
PU (3)
Premisa
Premisa
Z x
P.U (1)
Zxx
P.U (2)
x
M.P (3,4)
G.U.(5)
1.4. TEOREMA DE DEDUCCION
19
Demostraci
on.
1. xyP (x, y)
2. yP (x, y)
3. P (x, y)
Premisa
Z x
PU (1)
Zxy
PU (2)
y
4. xP (x, y)
5. yxP (x, y)
1.4.
GU (3)
GU (4)
Teorema de deducci
on
ha estudiado
ha aprobado
CAPITULO 1. LOGICA
DE PREDICADOS
20
1. x(E(x) A(x))
premisa
4. E(x)
5. A(x) E(x)
M T (2,3)
T. de la deducci
on (3,4)
2. E(x) A(x)
3. A(x)
PU (1)
Suposicion
6. x(A(x) E(x))
GU (5)
Observaci
on 1.4.1. Notemos que
a) Es frecuente omitir cuantificadores universales por ejemplo en la afirmaci
on x+y = y+x, tanto x como y tienen implcitamente una cuantificacion
universal.
Esto da a lugar a problemas cuando se utilizan estas apreciaciones como
premisas, porque de acuerdo con nuestra reglas toda variable que aparezca libre en una premisa es fija , en el sentido de que a lo largo de toda
la demostracion estar
a asociada a un u
nico individuo. Para soslayar esta
dificultad, aislamos ciertas variables en las premisas e indicamos explcitamente que estas variables no son fijas y se denominan variables verdaderas.
Una variable se puede generalizar si y solo si es una variable verdadera.
b) Al utilizar variables verdaderas, se pueden omitir los cuantificadores universales. Ademas de ahora en adelante permitiremos que cualquier variable
verdadera se puede particularizar como cualquier termino.
Rx
c) En vez de usar y usaremos x := y
Ejemplo 1.4.2. Sea P (t1 , t2 , t3 ) = t1 + t2 es igual a t3 Demostrar que:
P (x, y, z) P (y, x, z)
P (x, 0, x)
P (0, x, x)
Soluci
on
Demostraci
on. Observar que x, y, z son variables verdaderas
1. P (x, y, z) P (y, x, z)
2. P (x, 0, x)
Premisa.
Premisa.
3. P (x, 0, x) P (0, x, x)
PU y := 0, z := x
4. P (0, x, x)
MP (2, 3)
1.4. TEOREMA DE DEDUCCION
21
Definici
on 1.4. Se dice que dos expresiones se unifican si existen particularizaciones legales que hagan identicos a las expresiones en cuestion. El acto
de unificarlas se denomina unificacion. La particularizacion que unifica a las
expresiones en cuestion se denomina un unificador.
Ejemplo 1.4.3. Q(a, y, z) y Q(y, b, c) son expresiones que aparecen en
lneas diferentes. Mostrar que estas dos expresiones se unifican y dar un unificador.
Observar que en realidad y representa diferentes variables.
Q(a, y, z),
Q(y1 , b, c),
Q(a, y, z) y Q(y, b, c)
{y := b, z := c, y1 := a} Unificador
se unifica en Q(a, b, c)
H(t1 , t2 ) t1 es la hermana de t2 .
T (t1 , t2 ) t1 es la ta de t2 .
Premisa
Premisa
3. H (L, J)
4. M (J, B) H(L, J)
Premisa
LC (2, 3)
Definici
on 1.5. La regla de inferencia
Rx
A
xA
t
se denomina Generalizaci
on Existencial (G.E)
CAPITULO 1. LOGICA
DE PREDICADOS
22
Ejemplo 1.4.5. Demostrar:
1. x(G(x) R(x))
2. G(M )
Premisa
Premisa
3. G(M ) R(M )
4. R(M )
PU(1), x := M
MP (2,3)
5. xR(x)
GE (4)
Observaci
on 1.4.2. Si es cierto que existe un x que verifica A entonces tiene
que haber alg
un termino t que satisfaga A. El problema es que no sabemos para
que termino. Para hacer esto, seleccionamos una nueva variable, digamos b para
denotar este individuo desconocido. Esto da a lugar a la regla de inferencia
RxA
x
A
b
Premisa
2. x(G(x) R(x))
3. G(b)
Premisa
PE (1)x := b
4. G(b) R(b)
5. R(b)
PU (2)x := b
MP (3,4)
6. xR(b)
G.E. (5)
1.4. TEOREMA DE DEDUCCION
23
Por el absurdo
Demostraci
on.
1. xP (x)
Suposicion
2. xP (x)
3. P (b)
Premisa
P.E (1) x := b
4. P (b)
5. P (b) P (b)
P.U (2) x := b
L.C (3,4) Contradiccion!, Se rechaza la suposicion
6 xP (x)
Observaci
on 1.4.3. Ve
amos lo siguiente
a) Si A es una expresion, es posible sustituir cualquier sub-expresi
on B de A
por una Sub expresion C; siempre y cuando B y C sean equivalentes.
b) Equivalencias que implican cuantificadores
1. xA A
1d. xA A
si x no es libre en A
si x no es libre en A
2. xA y
2d. xA y
3. xA
3d xA
si y no es libre en A
si y no es libre en A
Zt x
t
A xA
A xA
4. x(A B) A xB
4d. x(A B) A xB
5. x(A B) xA xB
si x no es libre en A
si x no es libre en A
5d. x(A B) xA xB
6. xyA yxA
6d. xyA yxA
7. xA xA
7d. xA xA
CAPITULO 1. LOGICA
DE PREDICADOS
24
Ejemplo 1.4.9.
Ley de Morgan
Observaci
on 1.4.4. Observemos claramente que:
a) Resulta ventajoso eliminar los cuantificadores universales. Sin embargo los
cuantificadores universales no se pueden eliminar a no ser que se encuentren el principio de la expresion.
b) Las equivalencias siguientes resultan de especial interes.
x(P (x) yQ(y) xy(P (x) Q(y))
x(B A) xB A
x(B A)
x(B A)
xB A
xB A
xB A
x no esta libre en A
equivalencia de
(4)
(7)
equivalencia de
Considere la frase:
si alguien habla, ma
nana estar
a en los periodicos
Habla (t1 ) t1 habla
P ma
nana estar
a en los periodicos
x habla (x) P x(habla (x) P )
1.5.
L
ogica de ecuaciones
Observaci
on 1.5.1. No olvidemos que
a) La igualdad tambien es importante en logica, en particular para indicar
que solamente existe un elemento que satisfaga una cierta propiedad.
b) Dos terminos t y r se dicen iguales si hacen alusi
on al mismo individuo y
para expresar esto, se escribe t = r.
Por ejemplo: Superman = Clark Kent
c) Una forma de decidir la igualdad es mediante una asignacion explcita. En
lugar de una asignacion explcita, se da un cierto n
umero de axiomas que
deben satisfacer el predicado igual.
Ejm. Igual (t, r) t = r
d) x(x = x) se denomina axioma de la reflexividad.
1.5. LOGICA
DE ECUACIONES
25
R(3)xy (x = x) x = y
1.5.1.
Regla de sustituci
on
Axioma reflexividad
2. x = y
3. x = x
Supuesto
PU (1) x := x
4. y = x
R(1)xy (x = x)
5. x = y y = x
Teorema de la Deduccion
1. x = y y = z
2. x = y
Premisa
L.S (1)
3. y = z
4. x = z
L.S (1)
R(1)yx (y = z) del ejemplo anterior es conmutativa
5. x = y y = z x = z
ABC
A, B C
A, B C
T. Deduccion
ABC
CAPITULO 1. LOGICA
DE PREDICADOS
26
Premisa
2. i = 10
Premisa
3. s > 3x10
1.5. LOGICA
DE ECUACIONES
27
CAPITULO 1. LOGICA
DE PREDICADOS
28
1.6.
Definici
on 1.6. La forma PRENEX constituye una estructura de formulas en
c
alculo de predicados caracterizada por las siguientes propiedades:
a) Todas los cuantificadores aparecen en cabeza de una expresion a la que
afectan en su totalidad.
b) La expresion afectada por el conjunto de cuantificadores se denomina matriz de la forma y esta constituida por predicados y conectivas, de esta
u
ltimas solo aparecen conjunci
on, disyuncion y negaci
on, esta u
ltima aplicada solo a predicados atomicos.
Ejemplo 1.6.1.
xyz (A(x, y, z) (R(x, w) P (x, w))
Teorema 1.1. Dada una formula (expresi
on cualquiera A) en l
ogica de
predicado existe otra formula F P (A) tal que A F P (A).
Prueba Es suficiente definir un procedimiento que se aplique sucesivamente incorporando caractersticas de la forma normal Prenex.
Eliminacion de la condicional ()
A B = A B
Eliminacion del signo a formulas compuestas
(A B) A B
(A B) A B
xA(x) xA(x)
xA(x) xA(x)
29
1 La f
ormula parcial conectada no contiene libre la variable cuantificada:
A xP (x) x(A P (x))
A xP (x) x(A P (x))
CAPITULO 1. LOGICA
DE PREDICADOS
30
1.7.
Lista de ejercicios
31
32
CAPITULO 1. LOGICA
DE PREDICADOS
Captulo 2
Razonamiento: L
ogico Matem
atico
2.1.
Introducci
on
El Paradigma por Procedimiento Tambien conocido como paradigma imperativo, representa el enfoque tradicional del proceso de programacion. El paradigma por procedimiento define al proceso de programacion como el desarrollo
de procedimientos que, al seguirse, manipulan los datos para producir el resultado deseado. As, el paradigma por procedimientos nos dice que abordemos un
problema tratando de hallar un metodo para resolverlo.
33
34
Funcional
Lisp
ML
Scheme
C++
Simula
Orientado a Objetos
SmallTalk
Primeros lenguajes
Fortran
de m
aquina
Cobol
Basic
Algol
GPSS
APL
C
Pascal
Prolog
Declarativo
2.2. ALGORITMOS
35
dicha cantidad. De hecho, un rasgo primordial de los lenguajes orientados a objetos es la capacidad de representar definiciones de objeto a modo de esqueletos
que pueden usarse una y otra vez para construir nuevos objetos con prop
ositos
similares.
Es evidente que la creacion de Lenguaje de Programacion es un proceso
contnuo, y nuevos lenguajes evolucionan al tiempo que buscamos formar mas
conveniente de comunicarnos con las maquinas. Por tanto, es inevitable que los
lenguajes de programacion que hoy representan la frontera del conocimiento
seran criticados en el ma
nana por ser arcaicos.
2.2.
Algoritmos
Definici
on 2.1. Un algoritmo es una secuencia finita de pasos ejecutables que,
de seguirla, debe terminar en un momento.
El empleo del termino no ambiguo, significa que, en cada paso, la accion
que debe realizarse a continuacion debe quedar determinada de manera
u
nica por la construcci
on por s sola debe bastar para determinar la accion
deseada.
El requisito de que todos los pasos del algoritmo sean ejecutables descarta la posibilidad de que un algoritmo contenga pasos cuya ejecuci
on sea
imposible. Los cientficos de la computacion emplean el termino efectivo
para capturar este concepto de ser ejecutable.
El requisito de que una secuencia de pasos terminara no es superfl
uo pues
que la lista de instrucciones contenga solo un n
umero finito de pasos no
significa necesariamente que la tarea concluir
a alguna vez si se siguen las
instrucciones.
El concepto de calcular la solucion de un problema implica la capacidad
de reconocer cuando ya se obtuvo la solucion, para entonces terminar
el proceso de c
omputo. As pues, en este sentido, solo nos interesan los
procesos de c
omputo que tarde o temprano terminan.
Observaci
on 2.2.1. Recuerde que
a) Un algoritmo en si es algo puramente conceptual, de modo que para comunicar un algoritmo a una persona o a un computador debemos de hallar
una forma de representarlo.
b) La distincion entre sintaxis y semantica es primordial en el tema de la
representacion de algoritmos. El termino sintaxis se refiere a la representacion, en tanto que sem
antica se refiere al concepto que se representa.
La estructura sint
actica aires
olo un conjunto de letras; pero el objeto
representado, la semantica, es una sustancia gaseosa que rodea el planeta.
Un objetivo importante de la representacion de algoritmos es asegurar
que la sintaxis refleje con precisi
on la semantica deseada. Otro aspecto
importante es que la sintaxis debe reflejar la semantica subyacente de
manera accesible. La b
usqueda de estructuras sint
acticas para representar
algoritmos de manera accesible y no ambigua es una labor continua en las
ciencias de la computacion.
36
if (condicion)
actividad - verdadero
else
actividad -falso
1
2
while (condicion)
repetir-actividad
2.2. ALGORITMOS
37
38
Procedure-Maximo(n1 , n2 , n3 )
1 max := n1
2 if n2 > max
3
max := n2
4 if n3 > max
5
max := n3
6 return (max)
Ejemplo 2.2.2. El siguiente algoritmo calcula el area de un triangulo de
lados a, b, c Entrada: a, b, c
Salida: Area
Procedure Area-Triangulo(a, b, c)
1 p := (a + b + c)/2 // Semipermetro
2 if (p > a) and (p > b) and (p > c)
3
Area := (a (p a) (p b) (p c))1/2
4 else
5
print (Datos no forman un triangulo)
6 return (Area)
7 end Area-Triangulo
Ejemplo 2.2.3. El siguiente algoritmo calcula el cuadrado de un n
umero
entero positivo N por adiciones sucesivas.
Entrada: n
Salida: x
Procedure Cuadrado(n)
1 x := n
2 i := 1
3 while (i 6= n)
4
x := x + n
5
i := i + 1
6 return (x)
7 end Cuadrado
Ejemplo 2.2.4. El siguiente algoritmo hace exactamente lo mismo que
cuadrados
olo que utiliza UNTIL.
2.2. ALGORITMOS
39
Procedure Cuadrado2(N )
1 x := n
2 i := 1
3 until (i < n)
4
x := x + n
5
i := i + 1
6 return (x)
7 end Cuadrado2
Ejemplo 2.2.5. El siguiente
algoritmo determina la suma de los primeros
P
Nterminos de la serie: n=1 1/(8n + 1)
Entrada: n
Salida: Sum
Procedure Suma(n)
1 Sum := 0
2 for i := 1 to n
3
Sum := Sum + 1/(8 i + 1)
4 return (Sum)
5 end Suma
Ejemplo 2.2.6. El siguiente algoritmo muestra el metodo de ordenaci
on
burbuja.
Entrada: A
Salida: El arreglo A con elementos ya ordenados.
Procedure Ordenacion-Burbuja(A)
1 for i := 1 to length(A) 1
2
for j := 1 to length(A) i
3
if A[j] > A[j + 1]
4
intercambiar A[j] con A[j + 1]
5 end Ordenacion-Burbuja
Ejemplo 2.2.7. El algoritmo siguiente describe el metodo de b
usqueda
lineal :
Entrada: x (Dato que desea encontrar en el arreglo), A (Lista con elementos).
Salida: Posicion de x en la lista.
Procedure Busqueda-Lineal (A, x)
1 i := 1
2 while i n and x 6= A[i]
3
i := i + 1
4 if i n
5
pos := 1
6 else
7
pos := 0
8 return (pos)
9 end Busqueda-Lineal
40
2.2. ALGORITMOS
41
42
b b2 4ac
R1 , R2 =
2a
2
donde el discriminante = b 4ac determina como son las races:
Si > 0, races reales diferentes.
43
2.3. CONJUNTOS
2.3.
Conjuntos
A = {a, b, c}
B = {x/x es la capital del Per
u}
N = {0, 1, 2, 3, 4, . . .}
Z = {. . . , 3, 2, 1, 0, 1, 2, 3, . . .}
Z+ = {1, 2, 3, 4, . . .}
Q = Conjunto de todos los n
umeros racionales.
R = Conjunto de todos los n
umeros reales.
C = Conjunto de todos los n
umeros comlejos.
= {} Conjunto vaco.
Si A es un conjunto, a A, significa que a es un elemento de A. Escribimos
a
/ A cuando a no sea un elemento de A. Dos conjuntos son iguales si contienen
los mismos elementos.
Si A y B son dos conjuntos, A B significa que todos los elementos de
A pertenecen tambien a B; y se lee A subconjunto de B. La notaci
on A B
significa que A B y que A = B y se lee A subconjunto propio de B.
44
Si A, B P (U ) se define la:
A B = {x U/x A x B}
A B = {x U/x A x B}
A = {x U/x A 6 A}
AB = AB
A B = (A B) (B A)
Uni
on
Interseccion
Complemento
Diferencia
Diferencia simetrica
A B = (A B) (A B)
Las operaciones definidas para realizarse con conjuntos satisfacen las siguientes propiedades:
Propiedades Idempotentes
AA
AA
= A
= A
Propiedades Conmutativas
AB
AB
= BA
= BA
Propiedades Asociativas
A (B C)
A (B C)
= (A B) C
= (A B) C
Propiedades Distributivas
A (B C)
A (B C)
= (A B) (A C)
= (A B) (A B)
= A
= U
=
= U
=
Leyes de Morgan
AB
AB
= AB
= AB
Leyes de Morgan
=
=
U
A
45
2.3. CONJUNTOS
A
A
= A
=
Propiedades de Absorci
on
A (A B) =
A (A B) =
A
A
Observe que los nombres y las formas de estas propiedades son muy parecidas
con las equivalencias logicas de la logica de proposiciones. Veremos mas adelante
que esta semejanza no es una coincidencia.
El producto cartesiano de dos conjuntos A y B, representado por A B,
es el conjunto de todos los pares ordenados de la forma (a, b), donde a A y
b B, observe que por lo general, A B 6= B A ya que la disposicion de los
componentes de un par ordenado es significativa.
Es posible generalizar el concepto del producto cartesiano de conjuntos para obtener el producto de mas de dos conjuntos. Por ejemplo, A B C =
{(a, b, c)/a A, b B, c C}. Es com
un utilizar la abreviatura A2 para representar A A. As, de manera general An representar
a la colecci
on de todas las
n-tuplas de elementos de A.
Dados los conjuntos A y B, una funci
on de A en B es un subconjunto de
AB, tal que cada elemento de A aparece como el primer elemento de uno y solo
uno de los pares ordenados de la funci
on. Si f es una funci
on de A en B diremos,
que A es el dominio de f . El conjunto de elementos que aparece como la segunda
componente de los pares ordenados de una funci
on se denomina contradominio
o rango de f . Si cada elemento de B se halla en el rango de f , diremos que f es
una funci
on sobreyectiva. Si cada miembro del rango de f est
a asociado a solo
un elemento del dominio, diremos que f es una funci
on inyectiva. Las funciones
que sean inyectivas y sobreyectivas las llamaremos biyectivas.
Por lo general, los elementos del dominio de una funci
on se consideran como
entradas para la funci
on y los elementos del rango como los valores de salida.
Este concepto de entrada y salida origina la notaci
on f : A B, lo cual
representa una funci
on f de A en B. Dada una funci
on f : A B, representamos
como f (x) al valor de salida asociado a la entrada x. Por ejemplo, suponga que
f : N N es la funci
on que consiste en los pares ordenados de la forma (n, n2 ),
2
es decir f (n) = n para cada n N . Esta funci
on es inyectiva pero no es
sobreyectiva.
Consideremos ahora el concepto intuitivo del n
umero de elementos en un
conjunto.
Es obvio que el conjunto (a, b, c) tiene 3 elementos y que la gente dira
que el conjunto N tiene una infinidad de elementos, pero esto, para nuestros
prop
ositos, es demasiado simplista. Pues, como veremos enseguida los conjuntos
con una infinidad de elementos, llamados conjuntos infinitos, no contienen la
misma cantidad de elementos. El n
umero de elementos de los conjuntos infinitos
pueden variar, al igual que el n
umero de elementos de los conjuntos finitos. Por
esto, existen varios niveles de infinidad, donde algunos conjuntos infinitos son
mayores que otros.
Ya que nuestro sistema contable tradicional no existen n
umeros que representen el n
umero de elementos de un conjunto infinito, es necesario ampliar
nuestro sistema para tener en cuenta estos conjuntos. En este sistema ampliado
nos referimos al n
umero de elementos de un conjunto como su cardinalidad. La
46
47
2.3. CONJUNTOS
El conjunto N es contable; no as su conjunto potencia, pues
| Z+ |=| N | (| P (N |))
1/2
2/2
3/2
4/2
..
.
1/3
2/3
3/3
4/3
..
.
1/4
2/4
3/4
4/4
..
.
1/5
2/5
3/5
4/5
..
.
...
...
...
...
..
.
Estas
son algunas de las preguntas que trata directa o indirectamente las ciencias de la computacion?
48
2.4.
Conjuntos en la Programaci
on
S[2]
S[3]
S[4]
S[5]
...
S[N ]
2.4. CONJUNTOS EN LA PROGRAMACION
fA (x) =
49
si
xA
si
x 6 A
1 si
fA fB =
0 si
xAyxB
=
x 6 A o x 6 B
entonces
si
x (A B)
si
x 6 (A B)
fAB = fA fB
Si x A entonces :
fAB (x) = 1
Si x B entonces :
fAB (x) = 1
Six 6 A y x 6 B entonces :
Entonces
fAB (x) = 0
fA (x) + fB fA fB (x) = 0 + 0 0 = 1
fAB = fA + fB (fB fA fB )
Para representar conjuntos en una computadora, debe disponerse los elementos del conjunto Universal en una sucesion. La sucesion particular seleccionada
no tiene importancia alguna. Por ejemplo, si:
U
A =
B =
{a, c, e, i, m, t}
{c, e, m, t}
{a, i, m}
entonces:
fA corresponde a la sucesion 0, 1, 1, 0, 1, 1
50
fB corresponde a la sucesion 1, 0, 0, 1, 1, 0
Este hecho permite representar nuestros conjuntos como arreglos:
U= 1
A= 0
B= 1
y recprocamente, el arreglo:
C= 1
2.5. INDUCCION
puntero al inicio
51
nombre puntero
2.5.
Inducci
on
52
13 = 1
= 12
13 + 23 = 9
= 32
13 + 23 + 33 = 36 = 62
13 + 23 + 33 + 43 = 100 = 102
13 + 23 + 33 + 43 + 53 = 225 = 152
No podemos convencernos inductivamente que la suma de los cubos de los n
umeros enteros positivos es siempre un cuadrado perfecto. Resulta en este caso que
el razonamiento inductivo proporciona una ley correcta. Si todava somos mas
perceptivos quiz
a nos demos cuenta de que esta suma de cubos es precisamente
el cuadrado de la suma de los primeros n
umeros enteros positivos.
En contraste, se observa que, la expresion de todos los das no puede haber
convencido inductivamente que siempre es posible ingresar una persona mas en
un autob
us. Pero unos instantes de pensamiento nos muestra que la regla es
absurda.
Como ejemplo mas matematico, de induccion incorrecta considerese el polinomio:
p(n) = n2 + n + 41
y observe que:
p(0) =
p(1) =
41 Es un n
umero primo
43 Es un n
umero primo
p(2) =
p(3) =
47 Es un n
umero primo
53 Es un n
umero primo
p(4) =
p(5) =
61 Es un n
umero primo
71 Es un n
umero primo
p(6) =
83 Es un n
umero primo
p(7) =
p(8) =
97 Es un n
umero primo
113 Es un n
umero primo
p(9) =
p(10) =
131 Es un n
umero primo
151 Es un n
umero primo
2.5. INDUCCION
53
54
es igualmente necesario para demostrarlas, o a veces para demostrar su falsedad. Ninguna de estas tecnicas puede ocupar el lugar de la otra. La deducci
on
solo es suficiente para las matem
aticas muertaso congeladas, tal como los elementos de Euclides (que quizas sea el mayor monumento de la historia a las
matematicas deductivas, cuando no cabe duda de que gran parte de su material
fue descubierto por razonamiento inductivo). Pero se necesita la induccion para
mantener vivas a las matematicas.
Tal como Polya dijo una vez las matem
aticas presentadas sin rigor son una
ciencia deductiva sistem
atica, pero las matem
aticas que se est
an haciendo son
una ciencia inductiva experimental.
Por u
ltimo, anecdoticamente una de las tecnicas deductivas mas u
tiles que
est
an disponibles en matematicas tiene la mala fortuna de llamarse induccion
matematica. Esta terminologa resulta confusa, pero tenemos que vivir con ella.
Para ilustrar el uso de esta tecnica, imagine que usted est
a subiendo en una
escalera sin fn. Como usted puede saber si sera capaz de alcanzar una grada
arbitrariamente alta. Suponga que usted tiene las siguientes afirmaciones sobre
sus habilidades de subir escaleras:
1. Usted puede alcanzar la primera grada
2. Si usted puede alcanzar una grada, usted puede siempre pasar a la grada
siguiente
Si la sentencia 1 como la condicional 2 son verdaderas, por la sentencia 1
usted puede llegar a la primera grada y por la sentencia 2 usted puede llegar a la
segunda; nuevamente por 2 usted puede llegar a la tercera y as sucesivamente,
usted puede subir tan alto como usted quiera. En esta caso, ambas aserciones
son necesarias. Si apenas la sentancia 1 es verdadera, usted no tiene garantas
de que podra ir mas alla de la primera grada y si apenas la segunda sentencia es
verdadera, usted no podra llegar a la primera grada a fin de iniciar el proceso
de subida de la escalera.
A este tipo particular de deducci
on, en general se le llama principio de Inducci
on Matem
atica; que de manera formal enunciamos a continuacion:
2.5.1.
Principio de Inducci
on Matem
atica
2.5. INDUCCION
55
5
1
10
2
15
4
20
8
25
16
30
32
2961
295
56
12
23
34
45
Al seguir estos c
alculos el razonamiento inductivo nos hace conjeturas:
P (n) = 2 + 4 + 6 + 8 + . . . + 2n = n(n + 1), n Z+
que demostraremos por el principio de induccion:
Demostraci
on. P (n) = 2 + 4 + 6 + 8 + . . . + 2n = n(n + 1), n Z+
Paso Base
P (1) = 2 = 1(1 + 1) , es verdadera
Paso Inductivo
Supongamos que para alg
un valor fijo k > 1
P (k) = 2 + 4 + 6 + 8 + ... + 2k = k(k + 1), es verdadera
Ahora debemos demostrar que P(k+1) es verdadera:
P (k + 1) = 2 + 4 + 6 + 8 + . . . + 2k + 2(k + 1) = 2 + 4 + 6 + 8 + ... + 2(k + 1)
= (2 + 4 + 6 + ... + 2k) + 2(k + 1)
= k(k + 1) + 2(k + 1) , por H.I
= (k + 1)(k + 2)
= (k + 1)((k + 1) + 1)
Es decir, P (k + 1) es verdadera.
Por lo tanto por el principio de induccion
2 + 4 + 6 + 8 + . . . + 2n = n(n + 1) n Z+
25 < 5!
26 < 6!
23 > 3!
24 < 4!
27 < 7!
28 < 8!
2.5. INDUCCION
57
entonces P (k + 1) es verdadera.
Por lo tanto P (n), n 4 es verdadera.
El principio de induccion descrito hasta el momento es adecuado para demostrar muchas afirmaciones interesantes. Existen casos, sin embargo, en los cuales
es preferible un principio algo mas potente, llamado Principio de Inducci
on
Matem
atica Generalizada. La situaci
on se ilustra mediante el siguiente ejemplo:
supongamos que se desea demostrar, por el principio de induccion, que para
todo entero positivo n 2, n es un n
umero primo o es el producto de primos.
Si saltamos directamente al paso inductivo, cuando se intenta demostrar que
k+1 se puede expresar como un producto de n
umeros primos (suponiendo que
sea producto de n
umeros primos), la hipotesis de induccion sera que tambien
se puede descomponer en producto de n
umeros primos el n
umero k.
Sin embargo, no podremos encontrar algo en la decomposicion de k en n
umeros primos que pueda ser u
til o relevante para la descomposicion de k+1 en primos. Lo que se necesita realmente es una hipotesis mas fuerte, consistente en que
todo n
umero que es producto de primos menos que k+1 se puede dscomponer
en un producto de n
umeros primos.
Al formalizar estos conceptos se tiene el principio de Induccion Matem
atica
Generalizada lo que enumeramos a continuacion:
2.5.2.
Principio de Inducci
on Matem
atica Generalizada
58
b. P(k) es verdadera par todo n K < n implica que P (n) sea verdadera
Entonces nP (n) es verdadera.
Ejemplo 2.5.4. Mostraremos como el principio de induccion matematica
generalizada permite concluir que:
Demostraci
on. P(n) = n es un n
umero primo o es el producto de n
umeros primos, n Z+
Paso Base
P(1) = 1 es un n
umero primo, es verdadera.
Paso Inductivo
Supongamos que para todo k, 1 k < n, P (k) es verdadera.
Ahora debemos demostrar queP (n) es verdadera.
Si n es primo, P (n) es verdadera:
Si no n es primo, entonces n es un n
umero compuesto y puede ser escrito
como n = a b, donde a < n y b < n entonces por hipotesis de induccion a y b
son primos o producto de primos. Luego n es el producto de n
umeros primos,
entonces P (n) es verdadera.
Ejemplo 2.5.5. Consideremos un grupo de n personas, n 1.
Observemos que:
n=
n=
n=
n=
11
0 apretones de manos de saludo, es verdadera
EN LA VERIFICACION
DE PROGRAMAS
2.6. INDUCCION
59
Induccion matematica
Inducci
on matematica
Principio del buen orden
=
=
2.6.
Inducci
on en la verificaci
on de programas
La construcci
on de programas se basa en argumentos relacionales y por lo
tanto parece razonable aplicar tecnicas de comprobaci
on formales que demuestren si un programa funciona correctamente. Las tecnicas formales que se utilizan para demostrar que los programas son correctos y son rentables, pues reduce
el n
umero de errores lo que a su vez reduce el esfuerzo que se necesita en la depuraci
on. Lo esencial en la verififcacion de programas son las precondiciones y
postcondiciones. Las precondicones indican las condiciones que deben satisfacer
los datos de entrada para que el programa pueda cumplir su tarea. Las postcondiciones, indican que condiciones de salida son aceptables como soluciones
correctas del problema en cuestion. Por ejemplo, en el programa que calcule
una raz cuadrada: la precondici
on es que el argumento de la raz cuadrada no
debe ser negativo y la postcondici
on que el resultado final sea la raz cuadrada
deseada.
Se utilizara la palabra c
odigo o partes de un c
odigo para designar cualquier
parte de un c
odigo, desde una simple sentencia hasta el programa entero.
Para demostrar que las diferentes partes del c
odigo funcionan correctamente, se deben asociar las precondiciones y las postcondiciones que corresponden a
cada parte del c
odigo. Despus se debe demostrar que las precondiciones y postcondiciones de todas las partes del c
odigo son compatibles entre s y a su vez,
con las precondiciones y postcondiciones de todo el programa. De hecho, cuando
el programa es ejecutado, las postcondiciones de cada parte del c
odigo deben
incluir en esencia las precondiciones de la siguiente parte. Esto debe realizarse
sin importar lo largas que resulten las partes del c
odigo.
60
EN LA VERIFICACION
DE PROGRAMAS
2.6. INDUCCION
61
{P } se denomina precondici
on de C si {P } solo implica el estado inicial. Cualquier aserci
on {Q} se denomina postcondici
on si {Q} solo implica el estado
final. Si C tiene como precondici
on a {P } y como postcondici
on a {Q}, se escribe {P }C{Q}. La terna {P }C{Q} se denomina Terna de Hoare.
Ejemplo 2.6.1. Consideremos el c
odigo que consiste en una sola sentencia
x := 1/y.
Una precondici
on de esta sentencia es {y} y una postcondici
on es {x := 1/y}.
Ejemplo 2.6.2. La sentencia a:=b, determina la terna de Hoare: {} a := b
(a=b) Donde la aserci
on vaca {}, se puede leer como verdadero para todos los
estados posibles.
Definici
on 2.3. Si C es un c
odigo en la precondicion {P } y la postcondici
on
{Q}, entonces {P }C{Q} se dice que es parcialmente correcto si el estado final
de C satisface {Q} siempre que el estado inicial satisfaga {P }. C tambien sera
parcialmente correcto si no hay estado final debido a que el programa no termina. Si {P }C{Q} es parcialmente correcto y C termina, entonces se dice que
{P }C{Q} es totalmente correcto.
En otras palabras, un c
odigo no es totalmente correcto si existen algunos
estados iniciales que satisfacen P que conducen a un bucle infinito. Sin embargo
tales programas pueden ser parcialmente correctos. El c
odigo sin bucles siempre
termina y la correccion parcial entonces implica una correccion total. De ah que
la distincion entre correccion parcial y total sea solo esencial en c
odigos que
contengan bucles o procedimientos recursivos.
Como se ha indicado anteriormente, las precondiciones y postcondiciones
son importantes para realizar verificaciones. Sin embargo, la importancia de
estas condiciones es a
un mas general. Estas
le ayudan a uno a clarificar los
objetos del c
odigo que se esten investigando. Ademas insertando precondiciones
y postcondiciones a las partes del c
odigo de un programa, la verficacion se puede
realizar de un manera mas sistem
atica: si se han satisfecho las precondiciones de
alg
un c
odigo, pero sin haberse cumplido las postcondiciones, entonces el error
debe haberse producido dentro de ese c
odigo de cuestion. Eso permite simplificar
la b
usqueda de errores.
Ahora explicaremos c
omo verificar un c
odigo que contenga una sentencia
while. Primero solo estudiaremos la correccion parcial. En otras palabras, demostraremos que si el c
odigo termina su estado final satisface la postcondici
on.
Las caractersticas que no varan son capturadas por un invariante, el invariante del bucle.
La negaci
on de la condicion de entrada es la condicion de salida. Una vez que
se ha satisfecho la condicion de salida, el bucle termina. La variante del bucle
es una expresion que mide el progreso realizado hasta satisfacer la condicion de
salida.
Para ilustrar los conceptos principales, consideremos el c
odigo del siguiente
algoritmo.
Entrada: m, n enteros no negativos.
Salida: x
62
Procedure Producto(m, n)
1 j := 1
2 x := n
3 while (j < n)
4
x := x + n
5
j := j + 1
6 return (x)
7 end producto
La condicion de entrada de este bucle es J 6= M . Si esta expresion es falsa
al comienzo del bucle termina. Por esta raz
on a la negaci
on de la condicion
de entrada se le llama condicion de salida. En nuestro caso, la condicion de
salida es (J 6= M ) o J = M . Al final de la parte del c
odigo, X = M N ,
y esta condicion es la postcondici
on. Durante cada iteraci
on se progresa hasta
la postcondici
on. Al final de cada iteraci
on, se tiene X = J N , esta asercion
resulta ser la invariante del bucle.
La variante del bucle es M-J. La variante del bucle decrece con cada iteraci
on
y tan pronto como llega a cero el bucle termina. A la salida del bucle, J=M y
J*N = M*N.
Por lo tanto, despues de su terminaci
on X=M*N que es la postondicion. La
regla de inferencia para demostrar la correccion de los bucles while se puede
representar de un modo mas formal en el cuadro siguiente:
{I}C{I}
{I} while D do C{ D I}
Donde I es el invariante de un c
odigo C; D es la condicion de entrada y D
es la condicion de salida.
Para utilizar esta regla, primero se tiene que demostrar que I es verdadera
al final de cada iteraci
on, esto es demosrtar: {I}C{I}. En este punto es que la
induccion entra en escena. Demostraremos con f(n) la sentencia f: y debemos
demostrar que la invariante del ciclo es verdadera para n-iteraciones de ciclo.
Como no sabemos necesariamente cuantas iteraciones de ciclo puede ejecutarse
(o sea por cuantos pasos la condicion D permanece verdadera), nosotros debemos
demostrar que I(n) es verdadera para todo n 0.
Por lo tanto, el bucle no termina hasta que la condicion de entrada D no
sea falsa al final de una iteraci
on, ya que I se cumple al final de cada iteraci
on
incluyendo la iteraci
on que provoca la terminaci
on (demostrada previamente por
induccion), tanto I como D deben mantenerse cuando el bucle haya terminado.
Esto demuestra la validez de la regla while.
No demostremos el hecho que el ciclo while tenga un fin de ejecuci
on. Lo
que demostraremos es su correccion parcial: el programa produce el resultado
deseado, suponiendo que su ejecuci
on llega al fn.
Demostraci
on. I(n) = Xn = Jn N, n 0
Paso Base
I(0) = X0 = 0
= J0 N es verdadera
63
Xk + N
=
=
Jk + 1 N
2.7.
Lista de Ejercicios
1. Describa un algoritmo que calcule las suma de todos los enteros de una
lista.
2. Describa un algoritmo que tenga como entrada una lista de n enteros
distintos y devuelva la posicion del mayor entero par de la lista o devuelva
0 si no hay enteros pares.
3. Escriba un algoritmo en pseudoc
odigo cuya salida sea el menor elemento
de la sucesion a1 , a2 , . . . , an
4. Un palndromo es una cadena que se lee igual de izquierda a derecha
que al reves. Describa un algoritmo para determinar si una cadena de n
caracteres es un palndromo.
5. Describa un algoritmo para calcular xn , donde x es un n
umero real y n es
un entero. (indicaci
on: primero desarrolle un procedimiento para calcular
xn cuando n no es negativo mediante multiplicaciones sucesivas de x,
comenzando por 1. Luego extiende el procedimiento y utiliza el hecho de
que xn = 1/xn para calcular xn cuando n es negativo.)
6. Describa un algoritmo que intercambie los valores de las variables x e y
utilizando solo asignaciones. Cual es el n
umero mnimo de asignaciones
necesarias?
64
10. Describa un algoritmo que cuente los bits 1 que aparecen en una cadena
de bits examinando cada bit para determinar si es o no un 1.
11. El algoritmo b
usqueda ternaria localiza elementos en una lista de
enteros dados en orden creciente dividiendo sucesivamente la lista en tres
sublistas de igual tama
no (o de tama
no tan parecido como sea posible) y
restringiendo la b
usqueda al fragmento apropiado. Especifique los pasos
de este algoritmo.
12. Describa un algoritmo que obtenga todos los terminos de una sucesion
finita de enteros que sean mayores que la suma de todos los terminos
previos.
13. Utilice el metodo de la burbuja para ordenar d, f, k.m.a, b mostrando las
listas obtenidas en cada caso.
14. Escriba un algoritmo en pseudoc
odigo que determine el maximo de tres
n
umeros.
15. Escriba un algoritmo en pseudoc
odigo que determine el maximo de una
sucesion finita.
16. Escriba un algoritmo en pseudoc
odigo que verifique si un entero positivo
es primo.
17. Escriba un algoritmo en pseudoc
odigo que determine un primo mayor que
un entero dado
18. Escriba un algoritmo en pseudoc
odigo cuya salida sea el ndice de la u
ltima
ocurrencia del elemento maximo de la sucesion a1 , a2 , . . . , an .
19. Escriba un algoritmo que invierta la sucesion a1 , a2 , . . . , an
20. Suponga que el arreglo A consta de los n
umeros reales A[1], A[2], . . . , A[n]
y que el arreglo B consta de los n
umeros reales B[1], B[2], . . . , B[n]. Escriba un algoritmo en pseudoc
odigo que calculeA[1]B[1] + A[2]B[2] + . . . +
A[n]B[n]
21. Sea A[1], A[2],. . ., A[n] el arreglo asociado a los coeficientes a1 , a2 , . . . , an
PN
de un polinomio i a1 xi . Escriba un algoritmo en pseudoc
odigo con el
arreglo A y las variables n y x como entradas y como salida proporcione
el valor del polinomio en x.
65
22. Sean A y B arreglos de longitud N con ceros y unos, y suponga que representan subconjuntos, que tambien llamaremos A y B, de alg
un conjunto
universal U con N elementos. Escriba un algoritmo en pseudoc
odigo para
especificar el arreglo C que represente al conjunto C = A (A B)
23. Obtenga una f
ormula para la suma de los n primeros enteros positivos
pares.
24. Use la induccion matematica para demostrar la formula obtenida en el
problema anterior.
25. Sea n un entero positivo. Dibujar un crculo y marcar n puntos espaciados
regularmente alrededor de la circunferencia. Ahora dibujar una cuerda
dentro del crculo entre cada pareja de puntos. En el caso n=1 no hay
parejas de puntos y por tanto no se dibuja ninguna cuerda. Denotaremos
con c(n) el n
umero de secciones que se construyen as dentro del crculo.
a. Hallar c(1), c(2), c(3), y c(4)
b. Por induccion, cu
al cree usted que sera la formula general para
c(n)?
c. Determine c(5) dibujando y contando. Era correcta la formula
hallada inductivamente? Vuelva a intentarlo con c(6)
d. Que pasa si se permite que los puntos se espacien irregularmente?
e. Determinar la f
ormula correcta para c(n), y demostrar que es correcta.
26. Demuestre por induccion matematica la validez de las siguientes conjeturas:
a) 20 + 21 + 22 + 23 + + 2n = 2n+1 1; n N
b) 12 + 32 + 52 + + (2n 1)2 =
c) 1 + a + a2 + + an1 =
an 1
a1
d) a + ar + ar2 + + arn1 =
n(2n+1)(2n1)
3
; n Z+
; n Z+
a(1r n )
1r
e) 1 + 2n < 3n ; n 2
; r 6= 1 ; n Z+
f) n < 2n ; n > 1
g) 1 + 2 + 3 + n <
(2n+1)2
8
h) 3n < n! ; n 6
i) n! < nn ; n Z+
n1
j) 12 22 + 32 + (1)
k) 1 +
1
4
1
9
+ +
; n Z+
1
n2
<2
1
n
n1 n(n+1)
2
n2 = (1)
;n>1
; n Z+
66
n
T
Ai
i=1
Ai .
i=1
n
S
Ai
i=1
Ai .
i=1
i=1
(Ai
B).
S
Tn
B=
Ai
i=1
q) Si p es un n
umero primo y p|an para n 1 , entonces p|a .
67
68
Captulo 3
Relaciones
3.1.
Relaciones
Los elementos de un conjunto o los elementos de conjuntos diferentes frecuentemente presentan comparaciones especiales entre si, que pueden ser descritas
como una relaci
on.
Definici
on 3.1. Una relaci
on binaria R del conjunto A en el conjunto B es un
subconjunto de A B.
Si R es una relaci
on binaria en AB, entonces R consistir
a en un conjunto
de pares ordenados de la forma (a, b) y escribiremos R : A B.
si (a, b) R diremos que a esta relacionada con b bajo la relacion R y
escribiremos aRb.
la relaci
on R A B define dos subconjuntos, uno de A y otro de B,
estos son:
Dom(R) = {a/a A, (a, b) R para alg
un b B}
Ran(R) = {b/b A, (a, b) R para alg
un a A}
y se conocen como el dominio y rango de R, respectivamente.
la relaci
on de uno a uno (o inyectiva o biunvoca) si cada primer componente a y cada segunda componente b aparecen a lo sumo una vez en la
relaci
on. La relaci
on es uno para varios si alguna primera componente a
aparece mas de una vez, es decir, si a fuera par con mas de un b. La relacion
es varios para uno (o unvoca) si alguna segunda componente b fuera par
con mas de una a. Finalmente la relacion es llamada varios para varios si
por lo menos un b fuera par con mas de un a.
La figura 3.1 ilustra esas cuatro posibilidades.
69
CAPITULO 3. RELACIONES
70
B
b
b
b
b
b
b
b
b
b
b
b
uno a uno
B
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
Entonces:
Dom(R) = {5, 7, 9}
Dom(S) = {2, 5, 7}
Dom(T ) = {7, 2, 9}
Ran(R) = {3, 5}
Ran(S) = {4, 5, 3}
Ran(S) = {4, 5, 3}
Observemos que R es varios para uno, S es uno a uno y T varios para varios
Definici
on 3.2. Una relacion n aria en los conjuntos A1 , A2 , . . . , An es un
subconjunto de A1 A1 . . . A1
Una relaci
on n aria es un conjunto de n tuplas. Estas relaciones se utilizan
en todas las bases de datos relaciones para el almacenamiento y acceso a
datos.
71
3.1. RELACIONES
Aqu nos concentraremos en las relaciones binarias. De aqu en adelante, la palabra relaci
on, cuando sea utilizada, se referir
a por defecto a las
relaciones binarias.
Existen muchos metodos para representar relaciones binarias. Los metodos gr
aficos son particularmente u
tiles para visualizar relaciones. Por otra
parte, es frecuente que para realizar operaciones matematicas que incluyan
relaciones sea mas conveniente representarla como matrices. Por supuesto,
las relaciones son conjuntos, y los metodos para representar conjuntos se
pueden utilizar tambien para representar relaciones.
Por ejemplo, suponga que A es el conjunto de proveedores y B es el conjunto de productos. Especficamente A = {a, b} y B = {p, q, r}. Ahora se
puede definir una relaci
on B : A B afirmando que: xRy x tiene en
existencia al producto y.
R = {(a, p), (a, r), (b, q), (b, r)}
Significa (en particular) que el proveedor a tiene existencia del producto
p.
Esta Relacion queda definida plenamente por la tabla.
R
a
b
p
1
0
q
0
1
r
1
1
El n
umero 1 de una celda particular de la tabla indica que el suministrador
tiene el producto, mientras que un 0 indica que no lo tiene. las tablas est
an
estrechamente relacionadas con las matrices, para convertir una tabla en
una matriz, simplemente se eliminan los encabezamientos. En nuestro caso
esto produce
1
Mr =
0
0 1
1 1
1, si ai Rbj ;
0, si ai 6 Rbj .
CAPITULO 3. RELACIONES
72
p
a
q
b
r
Figura 3.2: Digrafo de R
Una relaci
on R de A en A se denomina una relacion en A. El hecho de
que R est
a sobre A hace posible dibujar el digrafo de R como sigue:
Cada elemento de A se representa mediante un nodo, y dos nodos cualesquiera est
an conectados por un arco si (x, y) R. Considere, por ejemplo,
la relaci
on en A = {1, 2, 3, 4}, que se representa por el siguiente digrafo
3.2.
Manipulaci
on de relaciones
3.2.1.
Relaci
on Inversa
Definici
on 3.3. Si R : A B es una relacion inversa R1 : B A se define
1
por aR b bRa. Todas las propiedades de conjuntos pueden aplicarse a las
relaciones, Para ser formal presentamos la siguiente definicion.
DE RELACIONES
3.2. MANIPULACION
73
Definici
on 3.4. sean R y S relaciones de A en B, entonces la relacion:
a) Complemento R : A B y puede expresarse:
aRb a 6 Rb
b) Uni
on R S : A B y puede expresarse:
a(R S)b aRb aSb
c) Interseccion R S : A B y puede expresarse:
a(R S)b aRb aSb
Ejemplo 3.2.1. Sea A = {, , , } y B = {1, 2, 3}
Sean:
R = {(, 1), (, 2), (, 2), (, 3), (, 2), (, 1)}
S = {(, 2), (, 3), (, 2), (, 2)}
Entonces:
R1 = {(1, ), (2, ), (2, ), (3, ), (2, ), (1, )}
3.2.2.
Composici
on de Relaciones
Definici
on 3.5. Sea R una relaci
on de A en B y sea S una relacion de B en C.
La composicion de relaciones R con S es la relacion R S de A en C definida
por:
a(R S)c b B/aRb y bSc
.
Ejemplo 3.2.2. Si A = {1, 2, 3, 4, 5}, B = {a, b, c, d}, C = {x, y, z},
R = {(1, b), (2, d), (4, c), (5, d)}, S = {(b, x), (d, y), (b, z)},
entonces:
R S = {(1, x), (1, z), (2, y), (5, y)}
Observaci
on 3.2.1. En las relaciones:
a) Las matrices m n cuyas entradas son cero y uno se denominaran booleanas, y en ellas es natural definir operaciones booleanas que tiene aplicaciones u
tiles en la manipulaci
on de realaciones.
b) Si A = [aij ] y B = [bij ] son matrices booleanas m n, se define:
CAPITULO 3. RELACIONES
74
Conjunci
on de matrices booleanas.
A B = C = [cij ]
(
1, si aij = bij = 1;
cij =
0, si aij = 0 bij = 0.
Disyunci
on de matrices booleanas.
A B = D = [dij ]
dij =
1, si aij = 1 bij = 1;
0, si aij = bij = 0.
0 0 1
0 1
1
1
0
A=
, B= 1 1
1 0 0
1 0
se tiene:
0
A B = 1
1
0
A B = 1
1
1
A B = 1
0
Observaci
on 3.2.2. Podemos notar:
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
a) El c
alculo de operaciones con matrices booleanas se puede efectuar facilmente haciendo comparaciones en las posiciones adecuadas a cada operaci
on.
b) Si A, B y C son matrices booleanas de tama
nos compatibles, se tiene las
propiedades:
1) Conmutatividad
AB =BA
AB =BA
DE RELACIONES
3.2. MANIPULACION
75
2) Asociatividad
A (B C) = (A B) C
A (B C) = (A B) C
3) Distributividad
A (B C) = (A B) (A C)
A (B C) = (A B) (A C)
4) Asociatividad
A (B C) = (A B) C
5) (AT )T = A
6) (A B)T = AT B T
7) (A B)T = AT B T
8) (A B)T = B T AT
1 1 0 1
0
MR = 0 0 0 1 , MS = 1
1 1 1 0
1
Entonces,
0
1
0
CAPITULO 3. RELACIONES
76
1
MS = 0
0
0 0
1 1
0 1
1
0
1
S = {(1, a), (1, d), (2, b), (2, c), (3, c), (3, d)}
MRS
0
= 0
1
1 0
0 0
1 0
0
1
0
R S = {(1, a), (1, b), (1, c), (1, d), (2, a), (2, d), (3, a), (3, b), (3, c)}
MR1
1
1
T
= (MR ) =
0
1
0
0
0
1
1
1
1
0
R1 = {(a, 1), (a, 3), (b, 1), (b, 3), (c, 3), (d, 1), (d, 2)}
Ejemplo 3.2.5. Sean las relaciones:
RS
1
b
2
c
Figura 3.4: R, S y R S
Observe que:
MRS = MR MS
Ademas, es claro que:
R S = {(a, o), (b, m), (b, n), (c, m), (c, n), (c, o)}
Teorema 3.1. Sean R y S relaciones de A en B, entonces:
a)
R S R1 S 1
DE RELACIONES
3.2. MANIPULACION
77
b)
RSSR
c)
(R S)1 = R1 S 1
(R S)1 = R1 S 1
d)
(R S) = R S
(R S) = R S
Presentaremos la demostracion de la parte 3.1-a, las dem
as se dejan para el
lector.
Demostraci
on.
(b, a) R1 = (a, b) R
= (a, b) S
= (b, a) S
(por hipotesis)
= (MR MS ) MT
= MR (MS MT )
= MR MST
= MR(ST )
(R S) T = R (S T )
b)
M(RS)1 = (MRS )T
= (MR MS )T
= (MS )T (MR )T
= MS 1 MR1
= MS 1 R1
(R S)1 = S 1 R1
CAPITULO 3. RELACIONES
78
Observaci
on 3.2.4. En casos futuros:
3.3.
Trayectorias
Definici
on 3.7. Sea R unaQ
relacion en A. Una trayectoria de de longitud n de
a a b, es una sucesion finita
= a, x1 , x2 , . . . , xn1 , b; que inicia en a y termina
en b, tal que:
aRx1 , x1 Rx2 , . . . , xn1 Rb
Observaci
on 3.3.1. Una trayectoria de longitud n involucra (n+ 1) elementos,
aunque no necesariamente distintos.
Ejemplo 3.3.1. Con respecto a la relacion asociada al siguiente digrafo:
Definici
on 3.8. Una trayectoria que se inicia y termina en el mismo vertice se
le llama circuito.
Definici
on 3.9. Para cada entero positivo n, se define la relacion Rn en A de
acuerdo con:
79
= a, x1 , x2 , . . . , xn1 , b, y1 , y2 , . . . , ym1 , c
= b, xn1 , . . . , x2 , x1 , a
Observaci
on 3.3.2. El inverso de una trayectoria en R no necesariamente esta
en R.
3.4.
Definici
on 3.12. Diremos que una relacion de R en A es:
a) Reflexiva aRa, a A
b) Irreflexiva a 6 Ra, a A
c) Transitiva ( aRb bRc = aRc)
d) Simetrica aRb = bRa)
e) Asimetrica (aRb = b 6 Ra)
f)
Antisimetrica (aRb bRa a = b)
(a 6= b = a 6 Rb b 6 Ra)
CAPITULO 3. RELACIONES
80
Observaci
on 3.4.1. Es facil notar:
R es reflexiva
1 3 6
1 1 1 1
3
0 1 1
MR = 6
0 0 1
9 0 0 0
12 0 0 0
9
1
1
0
1
0
12
1
1
0
1
Demostraci
on. MR tiene unos en toda su diagonal principal.
R no es irreflexiva
Contraejemplo
m11 = 1
R no es simetrica
Contraejemplo
81
3.5. PARTICIONES
m12 = 1 no implica que m21 = 1
R no es asimetrica
Contraejemplo
m22 = 1
R es antisimetrica
Demostraci
on. Haciendo una inspeccion en MR , se constata que:
i 6= j = mij = 0 mji = 0
3.5.
Particiones
Una partici
on o conjunto cociente de un conjunto no vaco A es la colecci
on
de subconjuntos no vacios {A1 , A2 , . . . , An } de A tal que
a) Ai Aj = i 6= 1
b)
n
[
Ai = A
i=1
A1
=A
A2
A3
CAPITULO 3. RELACIONES
82
R es reflexiva
2|0 2|(a a)
a a(mod 2)
aRa
R es simetrica
aRb a b(mod 2)
2|(a b)
2| (a b)
2|(b a)
b a(mod 2)
bRa
, a Z
, a Z
, a Z
83
3.5. PARTICIONES
R es transitiva
aRb y bRc a b(mod 2) b c(mod 2)
2|(a b) 2|(b c)
k1 , k2 Z tal que
2k1 = a b 2k2 = b c
k3 = k1 + k2 Z tal que
2(k1 + k2 ) = a c
2|(a c)
a c(mod 2)
aRc
R es una relaci
on de equivalencia.
b)
[0] = {. . . , 4, 2, 0, 2, 4, . . .}
[1] = {. . . , 5, 3, 1, 1, 3, 5 . . .}
Observe que:
[0] = [2] = [4] = . . .
[1] = [3] = [5] = . . .
Determine [2] en Z4 ?
Teorema 3.3. Sean R y S relaciones en A, entonces:
CAPITULO 3. RELACIONES
84
R = R1
Para f:
(R1 )1 = R
= R1
(a, b) R2 (a, b) S 2
(a, b) (R2 S 2 )
Las dem
as demostraciones se dejan como ejercicio para el lector.
85
3.6.
R R
R = R R2 R3 . . .
R es la relaci
on transitiva mas peque
na que contiene a R
Suponga que existe una relaci
on transitiva S tal que R S, entonces S n
d
Figura 3.7: Digrafo de R
CAPITULO 3. RELACIONES
86
Rc = R
Rc = {(a, c), (a, d), (b, a), (b, c), (b, d), (c, d)}
M
etodo 2:
Rc = R
R = R R2 R3 R4 R5 . . .
Luego:
0
1
MR =
0
0
0
0
M R2 =
0
0
0
0
M R3 =
0
0
0
0
M R4 =
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
M R5 = M R4
..
.
M Rc = M R M R2 M R3 M R4 M R5 . . .
= M R M R2
= M R M R2
0 0 1
1 0 1
=
0 0 0
0 0 0
1
1
1
0
Rc = {(a, c), (a, d), (b, a), (b, c), (b, d), (c, d)}
Teorema 3.5. Sea A un conjunto finito con |A| = n y sea R una relaci
on en
A. Entonces:
R = R R2 . . . Rn
87
Demostraci
on.
(a, b) R una trayectoria de a a b en R
= 1 2 . . . p
una trayectoria de a a b
que es la de menor longitud (quitando los ciclos)
si a 6= b la longitud de
es a lo mas n 1
y si a = b la longitud de es a lo mas n
R = R R2 . . . Rn
Observaci
on 3.6.1. El metodo gr
afico no es practico no sistem
atico para relaciones grandes. El metodo matricial puede usarse en general y es lo suficientemente sistem
atico para programarlo en computadora, pero es ineficiente y con
matrices grandes su costo seria prohibitivo. A continuacion presentaremos un
algoritmo eficiente para calcular R .
3.6.1.
Algoritmo de Warshall
0
1
W0 = MR =
0
0
0
0
0
0
1
1
0
0
0
0
1
0
CAPITULO 3. RELACIONES
88
0
1
W1 =
0
0
0
1
W2 =
0
0
0
1
W3 =
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
W4 = W3
0
0
1
0
0
0
1
0
1
1
1
0
Observaci
on 3.6.2. Notemos:
a) En el ejemplo anterior W4 = MR , este resultado se ratifica en general,
es decir. Si |A| = n entonces Wn = MR
(k)
b) Si Wk = [wij ] entonces
(k)
(k1)
wij = wij
(k1)
(wik
(k1)
wkj
esta ecuaci
on muestra que:
(k1)
(k)
(k)
I ReI S
I (R S) (R S)
I (R S)
(R S) es reflexiva
89
(R S)1 = R1 S 1 = R S
(R S) es simetrica
todas las trayectorias en (R S)
son en ambas direcciones
(R S) es simetrica
3.7.
Lista de ejercicios
1 1 0 0
0 0 0 1
de c
0
1
1
0
1
y MS = 0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
.
1
0
CAPITULO 3. RELACIONES
90
Calcule:
a) MR2 , MRS
b) MR , MR1
1 1
0 0
MR =
0 0
0 1
1 0
0 0 0
1 1 0
0 1 1
1 0 0
0 0 0
8. Sea A = {1, 2, 3, 4, 5, 6, 7} y R = {(1, 2), (1, 4), (2, 3), (2, 5), (3, 6), (4, 7)}.
Calcule las restricciones de R a B para el subconjunto de A dado.
(a) B = {1, 2, 3, 4}
(b) B = {2, 3, 4, 6}
0
1
MR =
0
1
1
0
1
1
0
1
0
0
1
1
0
0
91
1 0 0 0 0
0 1 1 0 0
MR =
0 1 1 0 0
0 0 0 1 1
0 0 0 1 1
1 1 0 0 0
1 1 0 0 0
MS =
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
14. Sea A = {a, b, c, d, e}
1 0 0 0
0 1 1 0
MR =
0 1 1 0
0 0 0 1
0 0 0 1
1 1 0 0
1 1 0 0
MS =
0 0 1 0
0 0 0 1
0 0 0 0
0
0
1
1
0
0
0
1
Hallar la relaci
on transitiva mas peque
na que contenga a R y S
92
CAPITULO 3. RELACIONES
Captulo 4
Estructuras de Orden
4.1.
Definici
on 4.1. Una relaci
on R en A que sea reflexiva, transitiva y a su vez
antisimetrica, es llamada de orden parcial y el par ordenado (A, R) es llamado
conjunto parcialmente ordenado o poset (partially ordered set).
Ejemplo 4.1.1. Es sencillo comprobar que los siguientes son conjuntos
parcialmente ordenados.
a) (, )
b) (P(u),)
c) (N, |), donde a|b significa a divide a b.
Observaci
on 4.1.1. Podemos aseverar lo siguiente:
a) Es sencillo demostrar que si R es un orden parcial en A, entonces R1
tambien lo es, y al conjunto parcialmente ordenado (A, R1 ) lo denominaremos el dual de (A, R) y recprocamente.
b) Denotaremos un conjunto arbitrario parcialmente ordenado con (A, ),
pues un orden parcial arbitrario R tiene un significado analogo a , y por
lo tanto el orden parcial dual es .
Definici
on 4.2. Sea (A, ) un conjunto parcialmente ordenado. Los elementos
a, b de A se denominan comparables si y solo si a b o b a.
Ejemplo 4.1.2. Los n
umeros 2 y 8 son comparables en (N, /) pero 3 y 7 no
lo son en (N, /). As la palabra parcialen (N, /) significa que existen elementos
que no son comparables.
Definici
on 4.3. Si cada par de elementos en (A, ) son comparables, se dice
que (A, ) es un conjunto linealmente ordenado (totalmente) ordenado.
Teorema 4.1. El orden parcial (A, ) no tiene ciclos de longitud n 2.
93
94
Demostraci
on. Supongamos que en (A, ) existen ciclos en R de longitud n 2,
entonces existen:
ai1 , ai2 , . . . , aim todos diferentes tales que:
ai1 ai2 . . . ain ai1
ai1 aim
aim ai1
pues es transitiva
entonces ai1 = aim
Porque es antisimetrica, lo cual es una contradiccion al hecho de que ai1 , ai2 , . . . , aim
son diferentes, por lo tanto no existen ciclos de longitud n 2.
Observaci
on 4.1.2. El teorema 4.1 nos permite realizar la siguiente conversi
on:
{a, b}
{a}
{a, c}
b
{b}
b
{b, c}
{c}
{}
Figura 4.2: Representacion mediante un diagrama de Hasse de P(u)
95
e
d
b
(A, )
(A, )
c
b
b
b
96
4
b
5
b
3
b
1
b
3
1
b
2
b
(A, )
(A, )
4
b
8
b
5
b
6
b
b
b
97
98
g
b
(A, )
Figura 4.7: Conjunto parcialmente ordenado con 9 elementos
Elemento M
aximo
Elemento Mnimo
:i
: no existe
4.2.
Inf B = a b
L
atices
Definici
on 4.7. Un conjunto parcialmente ordenado (L; ) tal que todo par
de elementos de L tenga supremo e nfimo se denomina retcula o latice. 1
Ejemplo 4.2.1. Los siguientes son ejemplos de latices comunes y muy
utilizados en computacion
a) (P(u), ) es una latice, pues: si A, B P(u) entonces A B = A B,
AB = AB
b) Si W es un conjunto de todas las relaciones de equivalencia en A1 (W,
) es una latice pues: si R1 , R2 W entonces R1 R2 = (R1 R2 ) ,
R1 R2 = R1 R2
c) Sea n un entero positivo y sea Dn el conjunto de todos los divisores positivos de n (Dn , /) es una latice.
1 En este libro denominaremos l
aticea las retculas, usando el nombre original del ingles
evitaremos diferentes confusiones.
4.2. LATICES
99
Observaci
on 4.2.1. Sean (L1 , 1 ) y (L2 , 2 ) latices. Si para (a, b), (c, d)
L = L1 L2 definimos el orden parcial producto con:
(a, b) (c, d) a 1 c b 2 d
tendremos que (L, ) es tambien una latice pues:
(a, b) (c, d) = (a 1 c, b 2 d)
(a, b) (c, d) = (a 1 c, b 2 d)
(2, 2)
(1, 8)
b
(2, 4)
b
(2, 1)
2
b
(1, 2)
b
(1, 4)
b
(1, 1)
(D2 , /1 )
(D8 , /2 )
(L, /2 )
Figura 4.8: D2 , D8 y L = D2 D8
Definici
on 4.8. Sea (L, ) una latice. Un subconjunto no vaco S de L se denomina una sublatice si y solo si a b S, a b S, a, b S
Ejemplo 4.2.3. Para la figura 4.9
e
b
b
b
d
b
b
b
(L, )
(S1 , )
b
b
(S2 , )
100
Definici
on 4.9. Sean (L, ) y (L , ) latices.
a) Una funci
on biyectiva f : L L si a, b L se verifica que:
1. f (a b) = f (a) f (b)
2. f (a b) = f (a) f (b)
ab=a
por (a)
f (a) f (b)
Esto significa que dos latices son isomorfas si y solo si el diagrama de Hasse
de una de ellas se puede obtener a partir de la otra reetiquetando los vertices.
Ejemplo 4.2.4. Seran isomorfas las latices (D30 , /) y (P(u), )?, donde
u = {a, b, c}
Soluci
on:
Analizando (D30 , /) y (P(u), ),
{a, b, c}
30
6
b
10
b
15
{a, b}
b
3
2
b
{a}
{a, c}
b
{b}
b
{}
(D30 , /)
{b, c}
b
{c}
(P(u), )
4.2. LATICES
101
b ab
b) a b a
abb
c) Si a c y b c entonces a b c
d) Si c a y c b entonces c a b
e) a a = a
aa=a
Idempotencia
f) a b = b a
ab =ba
Conmutativa
g) a (b c) = (a b) c
a (b c) = (a b) c
Asociativa
h) a (a b) = a
a (a b) = a
Absorci
on
102
a
a
b
b
b
c
b
(L1 , )
(L2 , )
Figura 4.11: L
atices no distributivas
Observaci
on 4.2.3. Una latice no es distributiva si contiene una sublatice que
sea isomorfa con una de las latices L1 o L2 del ejemplo anterior.
Definici
on 4.12. Sea (L, ) una latice acotada. Un elemento a L se llamara el complemento de a L si y solo si a a = I y a a = 0.
Observaci
on 4.2.4. Se puede notar lo siguiente:
a) En una latice arbitraria los elementos maximos y mnimos cumplen:
01=1 y 01=0
entonces 0 = 1 y 1 = 0
b) La latice (P(u), ) es acotada, 1 = u y 0 = entonces para A (P(u))
tenemos:A = A pues:
A A = U
A A =
4.2. LATICES
103
a
b
0
(L2 , )
Figura 4.12: L
atice no distributiva
I
a
b
c
c
0
=
=
=
=
=
=
0
c
c
a
b
I
a a = 1
a a = 0
luego:
a = a 0
= a (a a )
= (a a) (a a )
= 1 (a a )
= a a . . . . . . 1
a = a 0
= a (a a )
= (a a) (a a )
= 1 (a a )
= a a . . . . . . 2
104
4.3.
Algebras
Booleanas
Definici
on 4.14. Un
algebra booleana es una latice complementada, distributiva con al menos dos elementos
Ejemplo 4.3.1. (P(u), ) es un algebra booleana.
Definici
on 4.15. Dos
algebras booleanas son isomorfas, si lo son como latices
(Definici
on 3.9) y si ademas se cumple que:
f (a ) = (f (a))
Si u es un conjunto finito, con |u| = n, se puede demostrar que un algebra
booleana arbitraria es isomorfa con el algebra booleana (P(u), ), para alg
un u
especialmente escogido, es decir que las algebras booleanas tienen 2n elementos.
Teorema 4.5. Si L, es un
algebra booleana, y si a, b L entonces se cumple:
a) (a ) = a
b)
Involuci
on
(a b) = a b
(a b) = a b
Leyes de Morgan
(a b) (a b ) = 0
Entonces (a b) = a b
Tambien
(a b) (a b ) = 1
(a b) (a b ) = 0
4.4. REDES LOGICAS
105
(1, 0)
(B, )
(0, 1)
(0, 0)
(B 2 , )
Observaci
on 4.3.1. Mencionaremos algunas observaciones importantes
sobre
algebras booleanas:
a) En
algebras booleanas analogas a las del ejemplo anterior denotaremos el
supremo con +, el nfimo con y el complemento con , esto debido
a sus aplicaciones en la electronica.
b) Si a = (a1 , a2 , . . . , an ) y b = (b1 , b2 , . . . , bn ) son elementos del algebra
booleana (B n , ), es claro que:
a + b = (a1 + b1 , a2 + b2 , . . . , an + bn )
a b = (a1 b1 , a2 b2 , . . . , an bn )
0B n = (0, 0, . . . , 0)
1B n = (1, 1, . . . , 1)
c) Una variable x se denomina variable booleana si x solo toma valores en
Bn
4.4.
Redes L
ogicas
106
Supongamos ahora que llaves mecanicas pueden ser usadas a fin de que se obtiene
la se
nal 1 cuando la llave esta cerrada y se obtiene la se
nal 0 con la llave abierta.
x=1
x=0
llave cerrada
llave abierta
x1 = 0
x1 = 0
0
x2 = 0
x2 = 1
x1 = 1
x1 = 1
1
x2 = 0
1
x2 = 1
x2
0
1
0
1
x1 + x2
0
1
1
1
Por tanto, podemos pensar de este circuito de conmutacion, como un dispositivo electronico que realiza la operaci
on booleana +. Otros circuitos de conmutaci
on realizan las operaciones booleanas y . Por ahora, vamos a ignorar
4.4. REDES LOGICAS
107
detalles de la implementacion de estos dispositivos; es suficiente decir que la tecnologa avanzo de llaves mecanicas a tubos de vaco y de estos a transistores para
circuitos integrados. Simplemente, aceptamos que los circuitos e conmutacion
se pueden costrur mediante dispositivos de estado solido, llamados compuertas,
que puedan intercambiar los niveles de voltaje (bits)2 , las compuertas b
asicas
son:
X1
X1 + X2
X2
Figura 4.16: Compuerta Or
x1
0
0
1
1
x2
0
1
0
1
x1 + x2
0
1
1
1
X1
X1 X2
X2
Figura 4.17: Compuerta And
x1
0
0
1
1
x2
0
1
0
1
x1 x2
0
0
0
1
X1
X1
x1
1
0
108
Definici
on 4.16. Una espresi
on o polinomio booleano en nvariables x1 , x2 , . . . , xn
se define como sigue:
a) x1 , x2 , . . . , xn son todos polinomios booleanos.
b) Los smbolos 0 y 1 son polinomios booleanos.
c) Si p(x1 , x2 , . . . , xn ) y q(x1 , x2 , . . . , xn ) son polinomios booleanos, entonces
tambien lo son: p + q, p q y p
Ejemplo 4.4.1. Los siguientes son polinomios booleanos:
p(x, y, z) = (x + y) z
q(x, y, z) = x + y z + x (y + 1)
Observaci
on 4.4.1. En la logica proposicional, los conectivos logicos: conjunci
on, disyuncion y complemento son ejemplos de polinomios booleanos, entonces
las proposiciones compuestas tambien son ejemplos de polinomios booleanos
Definici
on 4.17. Una funci
on booleana es una funci
on f : B n B para
alg
un entero positivo n.
Ejemplo 4.4.2. La tabla de verdad para la operaci
on booleana + describe
la funci
on booleana:
f : B n B con f (0, 0) = 0, f (0, 1) = 1, f (1, 0) = 1, f (1, 1) = 1.
Observaci
on 4.4.2. Cualquier polinomio booleano define una u
nica funci
on
booleana de la misma forma que los polinomios booleanos:
p(x, y) = x + y
q(x, y) = x y
r(x) = x
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
f (x, y, z)
0
1
0
1
1
1
0
1
Observaci
on 4.4.3. Combinando las compuertas AND, OR y NOT, podemos
construir una red logica que representa determinado polinomio booleano.
Ejemplo 4.4.4. El polinomio booleano p(x, y, z) = (xy + z)z se puede
representar por la red logica:
4.4. REDES LOGICAS
109
Observaci
on 4.4.4. Las redes logicas son llamadas tambien redes combinatorias. Ellas tienen diversos aspectos que debemos percibir. Primero, las lineas
de entrada o de salida no se cruzan, excepto al pasar por las compuertas. Por
lo tanto las lineas pueden ser divididas a fin de establecer entradas para mas
de una compuerta. No hay lazos donde la salida de un componente sirva como
entrada para este mismo componente. Finalmente, la salida de una red es una
funci
on instant
anea de la entrada, es decir que cada entrada produce una u
nica
salida. Esta situaci
on hasta ahora establece que:
Red logica
Circuito de conmutaci
on
Polinomio booleano
Funci
on booleana
Figura 4.19: Diagrama para producir una funci
on booleana
Podemos ir de una funci
on booleana a un polinomio booleano?. Un algoritmo para resolver este problema es explicado en el siguiente ejemplo.
Ejemplo 4.4.5. Sea la funci
on booleana f : B 3 B descrita por la tabla
de verdad.
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
f (x, y, z)
0
1
0
0
1
1
0
1
( )
( )
110
b Bn
b Bn
b Bn
Observaci
on 4.4.6. A continuacion presentamos diez leyes que son consecuencias importantes de las definiciones de las propiedades de las algebras boleanas.
1. f = f
2.
f +g
f g
= f g
= f + g
Leyes de Morgan
3.
f +g
f g
= g+f
= gf
Leyes conmutativas
4.
f + (g + h) =
f (g h) =
5.
f +gh =
f (g + h) =
6.
f +f
f f
= f
= f
Leyes de indempotencia
7.
f +0
f 1
= f
= f
Leyes de identidad
(f + g) + h
(f g) h
(f + g) (f + h)
f g+f h
Leyes asociativas
Leyes distributivas
4.4. REDES LOGICAS
111
8.
f + f =
f f =
1
0
Leyes de inversos
9.
f +1 =
f 0 =
1
0
Leyes de dominacion
10.
f +f g =
f (f + g) =
f
f
Leyes de absorci
on
Ley de identidad
Ley de inversos
= wx
y z + wx
y z
Ley distributiva
wy z = w 1 y z
Ley de identidad
= w (x + x
) y z
= wxy z + w
xy z
Ley de inversos
Ley distributiva
xy = 1 x y 1
= (w + w)
x y (z + z)
Ley de identidad
Ley de inversos
+ wxy
z
Ley distributiva
entonces
xy z + wxyz + wxy z + wxyz
+ wxy
z (5)
f (w, x, y, z) = wx
y z + wx
y z + wxy z + w
por la ley de idempotencia (6) se tiene la fnd,
f (w, x, y, z) = wx
y z + wx
y z + wxy z + w
z y z + wxyz + wxyz
+ wxy
z
Observaci
on 4.4.7. En las
algebras booleanas:
a) Si acordamos enumerar los elementos del algebra boolena B n veremos que
los valores x1 , x2 , . . . , xn en cualquier fila determina un n
umero binario,
como puede apreciarse en la siguiente tabla para f : B 3 B.
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
fila
1
2
3
4
5
6
7
8
binario
000 (=0)
001 (=1)
010 (=2)
011 (=3)
100 (=4)
101 (=5)
110 (=6)
111 (=7)
f (x, y, z)
0
1
0
0
1
1
0
1
112
f (w, x, y, z) = wx
y + wy z + xy
xy z + wxyz + wxyz
+ wxy
z
f (w, x, y, z) = wx
y z + wxyz + wxy z + w
(fnd)
wxy
z
Observaci
on 4.4.8. En las algebras booleanas se cumple:
a) El dual de una afirmaci
on relacionada con expresiones booleanas, se obtiene reemplazando 0 por 1, 1 por 0, + por y por +.
b) El dual de un teorema relativo a algebras booleanas tambien es un teorema.
c) El dual de una conjunci
on fundamental l1 l2 . . . ln es una disyuncion
fundamental l1 + l2 + . . . + ln de literales que llamaremos maxterminos.
d) El dual de fnd es la Forma Normal Conjuntiva (fnc), que es un producto
de maxterminos.
Ejemplo 4.4.8. Hallar la fnc para f : B 3 B definida por la tabla
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
f (x, y, z)
0
1
0
1
1
1
0
1
soluci
on:
Aplicando el concepto de dualidad, se tiene que:
f (x, y, z) = (x + y + z)(x + y + z)(
x + y + z)
en forma compacta se escribe:
(f nc)
113
4.5. APLICACIONES
f=
donde M significa maxterminos.
M (0, 2, 6)
Ley de identidad
Ley de inversos
x + y + z = 0 + x + y + z
= ww + x + y + z
Ley de identidad
Ley de inversos
= (w + x + y + z)(w + x + y + z)
Ley distributiva
= (w + x + y + z)(w
+ x + y + z)
Ley distributiva
w + y = w + 0 + y + 0
= w + x
x + y + z z
por (7)
por (8)
= (w + x + y)(w + x
+ y) + z z
= (w + x + y + z z)(w + x
+ y + z z)
por (5)
por (5)
= (w + x + y + z)(w + x + y + z)(w + x
+ y + z)(w + x
+ y + z) por (5)
de donde
f (w, x, y, z) = (w + x + y + z)(w + z + y + z)(w + x + y + z)
(w
+ x + y + z)(w + x + y + z)(w + x + y + z)
(w + x
+ y + z)(w + x
+ y + z)
por la ley de idempotencia (6) se tiene la fnc,
f (w, x, y, z) = (w + x + y + z)(w + z + y + z)
(w
+ x + y + z)(w + x + y + z)
(w + x + y + z)(w + x
+ y + z)(w + x
+ y + z)
que en forma compacta se escribe como:
Q
f = M (0, 1, 2, 3, 6, 7, 10)
4.5.
4.5.1.
Aplicaciones
Arreglos l
ogicos programables
Un circuito integrado, es una red logica que representa una o mas funciones
booleanas, como si algunas compuertas logicas estuviesen debidamente interligadas en un paquete. Estos circuitos integrados son entonces combinados a fin
114
de obtener el resultado deseado. Los chips cuadrados de silicio en los cuales los
circuitos integrados son constrdos, no pueden tener mas de 6 milmetros de
lado, sin embargo pueden contener el equivalente a medio millon de transistores
que implementan funciones booleanas.
En vez de proyectar un chip dedicado a implementar algunas funciones booleanas en particular, podemos usar un PLA (Programable Logic Array). El PLA
es un chip que contiene un arreglo de compuertas AND, OR, NOT. Una vez que
tengamos determinada la forma de suma de productos de las funciones booleanas deseadas, los elementos correspondientes al PLA son activados. A pesar de
que este chip no es muy eficiente, y ser practico apenas para circuitos logicos de
peque
na escala, el PLA puede ser producido en masa y apenas es una peque
na
cantidad de tiempo y dinero.
Ejemplo 4.5.1. La siguiente figura muestra un PLA para tres entradas
x, y, z. Existen cuatro lineas de salida de forma que podemos programar cuatro
funciones en este PLA. Cuando el PLA es programado, la linea horizontal que
sirve de entrada para una compuerta AND, recibe ciertas entradas y la compuerta AND realiza el producto de tales entradas. La linea vertical que entra en
una compuerta OR permitira, cuando este programada, que la compuerta OR
realice la suma de ciertos productos.
f1 f2 f3 f4
115
4.5. APLICACIONES
f1 f2 f3 f4
4.5.2.
Para dise
nar una red logica que sume n
umeros binarios, operacion b
asica que
un computador precisa saber realizar, primero dise
nemos la suma de dos bits
(dgitos binarios), que dan como resultado las funciones booleanas resumidas en
las siguientes tablas.
x
0
0
1
1
y
0
1
0
1
Suma en binario
0
1
1
10
x
0
0
1
1
y
0
1
0
1
Suma S
0
1
1
0
x
0
0
1
1
y
0
1
0
1
Acarreo C
0
0
0
1
= x
y + x
y
= xy
,
= (x + y)xy
= xy
116
La figura 4.22 es una red de compuertas con dos salidas. Este dispositivo,
por motivos que se aclaran mas adelante, es llamado semisumador (SS).
x+y
S = x + y(xy)
x
xy
xy
y
C = xy
Figura 4.22: Semisumador (SS)
Si usamos dos semisumadores y una compuerta OR, construmos el sumador
completo (SC) que se muestra en la figura 4.23
Ci1
Si = xi yi
xi
yi
S.S.
S.S.
Si = Si Ci1
Ci1 (xi yi )
Ci = xi yi
Ci = xi yi + Ci1 (xi yi )
Figura 4.23: Sumador completo SC
117
4.5. APLICACIONES
x0
y0
x1
y1
x2
y2
S.S.
S0
S1
C0
S.C.
C1
S2
S.C.
C2
4.5.3.
Otros componentes l
ogicos
y
0
1
0
1
xy
1
1
1
0
118
X1 X2
X2
Figura 4.25: Compuerta NAND
A su vez tenemos la compuerta NOR que produce:
x
0
0
1
1
y
0
1
0
1
xy
1
0
0
0
X1 + X2
X2
Figura 4.26: Compuerta NOR
Teorema 4.6. El conjunto {NAND} es un conjunto funcionalmente completo.
Demostraci
on. Primero observamos que, x y = xy, entonces
x
x+y
= xx
= xx
= x + y
y
= x
= x y
= (x x) (y y)
Estas ecuaciones muestran que OR y NOT se pueden escribir en terminos de
NAND, entonces por el ejemplo anterior {NAND} tambien lo es funcionalmente
completo.
Observaci
on 4.5.1. Muchos de los circuitos b
asicos utilizados actualmente en
las computadoras digitales se construyen mediante compuertas NAND
4.5.4.
Sabemos como escribir una expresion booleana y construir una red a partir
de una funci
on booleana. En general, la funci
on booleana propiamente dicha
precisa, antes ser deducida a partir de la descripcion de alg
un problema en
cuestion
119
4.5. APLICACIONES
x
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
f (w, x, y, z)
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
Ejemplo 4.5.4. Una ley del corredor es controlada por dos interruptores,
uno en cada extremo. La tabla de verdad que permite que la luz sea prendida y
apagada en ambos interruptores es:
x
0
0
1
1
y
0
1
0
1
f (x, y)
0
1
1
1
120
4.6.
Minimizaci
on
p1 (w, x, y, z) = wx
y z + wx
y z + wxyz
+ w
xyz + w
xyz + w
xyz
al aplicar propiedades del algebra booleana se tiene que:
p1 (w, x, y, z) = wx
(
y z + yz + yz) + w
x(
y z + yz + yz)
= wx(
y (
z + z) + yz) + w
x(
y (
z + z) + yz)
= wx(
y 1 + yz) + w
x(
y 1 + yz)
= wx(
y + yz) + w
x(
y + yz)
= wx((
y + y)(
y + z)) + w
x((
y + y)(
y + z))
= wx(1
(
y + z)) + w
x(1 (
y + z))
p2 (w, x, y, z) = wx
(
y + z) + w
x (
y + z)
p3 (w, x, y, z) = wx
y + wxz
+ w
xy + w
xz
Es claro que los polinomios booleanos:
p1 (w, x, y, z)
fnd de f
p2 (w, x, y, z)
p3 (w, x, y, z)
son equivalentes.
Las siguientes figuras muestran la red logica para cada uno de estos polinomios booleanos respectivamente. A partir de ahora consideramos una entrada
de la forma w
como una entrada exacta, que no ha pasado por compuerta alguna, en vez de considerarla como el resultado de introducir w y pasarla por un
inversor.
4.6. MINIMIZACION
121
x
y
z
wx
yz
x
y
z
wxyz
w
x
y
z
w
xyz
w
x
y
z
w
xyz
w
x
y
z
w
xyz
x
y
z
f (w, x, y, z)
wx
y z
x
z
wxz
x
y
wx
y
w
x
y
w
xy
w
x
z
w
xz
f (w, x, y, z)
122
x
y
z
wx(
y + z)
f (w, x, y, z)
w
x
Nivel 1
w
x(
y + z)
Nivel 2
Nivel 3
4.6. MINIMIZACION
123
de una funci
on booleana, puede tener muchos terminos, lo que dificulta la
localizacion de dos conjunciones que difieren apenas en una literal. Para
ayudar en esta b
usqueda, podemos usar el mapa de Karnaugh, que es una
representacion visual de la funci
on booleana que permite la identificacion
rapida de las localidades de una fnd que solo difieran en una sola literal y
que llamaremos adyacentes.
b) Podremos usar el mapa de Karnaugh con funciones booleanas de modo
que f : B n B, si n no es demasiado grande. Se ilustrara con ejemplos
el caso que n = 2, 3, 4. Si n es grande o si se desea utilizar un algoritmo
programable, son preferibles otras tecnicas.
Ejemplo 4.6.2. En la figura siguiente, la funci
on booleana f : B 2 B es
representada por su tabla de verdad y mapa de Karnaugh.
x
0
0
1
1
y
0
1
0
1
f (x, y)
0
1
0
1
0
1
1
1
124
Soluci
on:
YZ
X
00
01
11
10
1
f (x, y, z) = x
z + yz + xyz
b) f =
m(0, 2, 4, 6)
xyz + x
y z = yz
xy z + xy z = z
yz + y z = z
YZ
X
00
01
11
10
f (x, y, z) = z
4.6. MINIMIZACION
c) f =
125
m(0, 1, 2, 3)
YZ
X
0
00
01
11
10
f (x, y, z) = x
d) f =
YZ
01
11
10
00
f (x, y, z) = y + z
Ejemplo 4.6.5. Hallar la suma minimal de productos para las funciones
booleanas:
P
a) f = m(0, 1, 2, 3, 8, 9, 10)
P
b) f = m(3, 4, 5, 7, 9, 13, 14, 15)
Soluci
on
a) f =
m(0, 1, 2, 3, 8, 9, 10)
YZ
WX
00
00
01
11
10
01
11
10
f (w, x, y, z) = w
x + xy + w
x
126
YZ
WX
00
01
11
10
00
1
11
10
11
10
01
YZ
WX
00
01
00
01
1
1
11
10
4.6. MINIMIZACION
127
Por u
ltimo, presentaremos un ejemplo relacionado con el concepto dual, fnc.
Ejemplo 4.6.6. Hallar el producto minimal de sumas, para :
f (w, x, y, z) =
Soluci
on:
Aplicando el Concepto de dualidad, se tiene
YZ
WX
00
01
11
00
01
11
10
10
0
0
g(w, x, y, z) = (
x + z)(y + z)(w + y + z)
Observaci
on 4.6.4. Las siguientes sugerencias de uso de los Mapas de Karnaugh se basan en los hechos hasta ahora
a) Recordemos que el punto b
asico para la reduccion de una fnd a una suma
minimal es el reconocimiento de las adyacencias. En el mapa de Karnaugh
determinamos donde existen esas adyacencias. Un segundo metodo para
minimizar, es el procedimiento de Quine McCluskey 3 , que organiza la fnd
en una tabla a fin de simplificar la b
usqueda de adyacencias.
b) El procedimiento es un proceso de dos pasos que se asemejan al mapa
de Karnaugh. Primero encontramos localidades agrupables (como las adyacencias en el mapa de Karnaugh); en seguida, eliminamos los grupos
redundantes y hacemos marcas para los terminos que pueden pertenecer
a diversos grupos. Ilustramos este procedimiento en el siguiente ejemplo.
Ejemplo 4.6.7. La funci
on booleana a minimizar es representada en la
siguiente tabla.
3 Quine
McCluskey
128
w
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
x
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
f (w, x, y, z)
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
Las ocho 4-uplas de ceros y unos producen el valor 1 son listadas en una
tabla, que es separada en cuatro grupos, de acuerdo con el n
umero de unos.
N
umero de 1s
Tres
Dos
Uno
Cero
w
1
0
0
0
0
0
1
0
x
0
0
1
1
0
0
0
0
y
1
1
0
1
1
1
0
0
z
1
1
1
0
1
0
0
0
Comparamos el primer termino 1011, con cada uno de los tres terminos del
segundo grupo a fin de encontrar terminos adyacentes. Un termino de este tipo
es 0011, que determina que variable w es eliminada. Escribimos este termino
reducido con un trago en la posicion w en dos terminos 1011 y 0011 en la
tabla original con un ndice 1; este ndice es un puntero que indica la linea
del termino reducido que es formada por esos dos elementos (numerar estas
localidades equivale a trazar los grupos en un mapa de Karnaugh).
Continuamos este proceso con todos los terminos. Un termino numerado
puede ser usado otras combinaciones, de la misma forma que podemos agrupar
un termino ya agrupado en un mapa de Karnaugh. Cuando hayamos terminado
se obtendr
a las siguientes tablas.
N
umero de 1s
Tres
Dos
Uno
Cero
w
1
0
0
0
0
0
1
0
x
0
0
1
1
0
0
0
0
y
1
1
0
1
0
1
0
0
z
1
1
1
0
1
0
0
0
1
1,2,3
4
5
2,4,6
3,5,7
8
6,7,8
4.6. MINIMIZACION
129
Tabla (a)
N
umero de 1s
Dos
Uno
w x y z
- 0 1 1
0 0 - 1
0 0 1 0 - 0 1
0 - 1 0
Cero
0 0 0 0 0 - 0
- 0 0 0
Tabla (b)
Repetimos este proceso en la tabla (b)
N
umero de 1s
Dos
Uno
Cero
w x
- 0
0 0
0 0
0 0 0 0
0 0
- 0
Tabla (c)
N
umero de 1s w x
cero
0 0
Tabla (d)
y
1
1
0
1
0
0
z
1
1
1
0
0
0
y
-
1
1
z
-
Observe que el proceso de reduccion no puede ser continuado. Los terminos que
no fueron numerados son irreductibles, de forma que representan los minterminos.
El segundo paso del proceso, consiste en comparar los terminos irreductibles.
Una marca en la tabla de comparaci
on (Tabla (a)) indica que el termino original
en una columna acaba por llevar al termino irreductible a esta linea, o que puede
ser determinado siguiendo los punteros.
-011
0-01
0-10
-000
00
1011
3
0011
3
0101
0110
0001
0010
1000
3
3
Tabla(e)
3
3
0000
3
3
Si una columna en la Tabla (e) tiene una marca en apenas una fila, el termino
irreductible de esta fila es el u
nico que cubre al termino original, de forma que
el es un termino esencial y precisa aparecer en la forma final de suma minimal
de productos. Por tanto, vemos en la Tabla (e) que los terminos -011, 0-01,
0-10, -000, son esenciales y precisan ser parte de la expresion final. Tambien
percibimos que todas las columnas con marcas en la fila 5 tambien son marcas
130
4.7.
Lista de ejercicios
1. Sea n un entero positivo y sea Dn el conjunto de todos los divisores positivos de n. As, n = 20 se tiene D20 = {1, 2, 4, 5, 10, 20}
a) Hacer los diagramas de Hasse de D20 y D30 bajo el orden parcial de
divisibilidad.
b) Determinar si D20 , D30 y D60 son lattices.
c) Determinar si D20 , D30 y D60 son algebras booleanas.
2. Determinar si las relaciones siguientes son de orden parcial en A = N
a) aRb a b + 1
3. Una lattice es modular si, para a, b, c, a <= b implica a(ac) = (ab)c
a) Muestre que una lattice distributiva es modular.
b) Muestre que la lattice de la figura es una lattice no distributiva que
es modular.
I
b
a
b
b
b
131
132
14. Dise
ne una red de compuertas logicas de dos niveles para como suma
minimal de productos. Utilice diagramas de Karnaugh
a) f (x, y, z) = 1 si y solo si al menos dos variables tienen el valor 1.
P
b) f (w, x, y, z) = m(0, 2, 5, 7, 8, 10, 13, 15)
Bibliografa
[Kolman, Busgy, Ross, 1997] Estructuras de Matem
aticas Discretas para la
Computaci
on Prentice Hall, Mexico
[R Grimaldi, 1997] Matem
aticas Discreta y Combinatoria Addison Wesley
Iberoamericana, USA
[W. Grassmann, J. Tremblay, 1997] Matem
atica Discreta y L
ogica Prentice
Hall, Espa
na
[Richrad Johnsonbaugh, 1999] Matem
aticas Discretas Prentice Hall, Mexico
[J. Gersting, 1987] Fundamentos Matem
aticos para a Ciencia da Computac
ao ABDR, Rio de janeiro
[Ricardo Pea Mar, 1998] Dise
no de Programas: Formalismo y Abstracci
on
Prentice Hall, Espa
na
[Kenneth A. Ross, Charles R.B. Wright, 1990] Matem
aticas Discretas Prentice Hall, Mexico
[Edward R. Scheinerman] Matem
aticas Discretas Thomson, Mexico
[G. Brassard, P. Bratley, 1997] Fundamentos de Algoritmia Prentice Hall,
Espa
na
[J. Glenn Brookshear, 1995] Introducci
on a las Ciencias de la Computaci
on
Addison Wesley Iberoamericana, USA
133