Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- CONJUNTOS
5.1.- PAR ORDENADO (PO)
5.1.1.- DEFINICIN DE PO
Se llama Par Ordenado o dupla cuyo smbolo es (x y) al conjunto cuyos elementos son a su vez otros dos
conjuntos :
1.- el conjunto {x y} que es un par simple
2.- el conjunto {x} de un nico elemento
Def:
(x y) := { {x y} {x} }
(x y) : Par Ordenado (PO)
x : Primer elemento del PO (Primera componente del PO)
y : Segundo elemento del PO (Segunda componente del PO)
Obs 1: PO es un par de conjuntos (es un Conjunto de Conjuntos) donde
{x y} (x y)
162
5.1.3.- IGUALDAD DE PO
La igualdad de PO es simplemente un caso particular de la Igualdad de Conjuntos.
T.-
(x y) = (a b) { {x y} {x} } = { {a b} {a} }
La igualdad de conjuntos cumple con el teorema siguiente T1:
La igualdad de dos PO es condicin necesaria y suficiente de la igualdad de las componentes homlogas es decir
de las primeras componentes entre si y las segundas componentes entre si.
Esto justifica, como la definicin de PO distingue ambos elementos.
163
5.1.4.- TEOREMAS DE PO
T1.-
TCR T1.D.- [ ]
x = a
(x y) = (a b)
y = b
(x y) (a b) x a y b
Se pasa a la demostracin del Teorema directo .
Por Hiptesis
x=a y=b
Entonces
{x} = {a}
{x y} = {a b}
{{x y} {x}} = {{a b} {a}}
Por Def. PO queda
(x y) = (a b)
[ ] Partiendo de
(x y) = (a b)
Recordando Def. PO
{{x y} {x}} = {{a b} {a}}
Se presentan 2 opciones que se llamarn I y II
I.-
{x y} = {a b}
{x} = {a}
xa
y para satisfacer el sistema I tambin debe resultar
yb
II.-
{x y} = {a}
{x} = {a b}
xa y b
que satisface el sistema II.
De ambas opciones I , II se llega a
x a y b
T2.TCR T2.D1.-
(x y) = (y x) x y
(x y) (y x) x y
Caso particular de T1
D2.- [ ]
xy
{x} = {y}
{x y} = {y x}
{{x y} {x}} = {{y x} {y}}
Por la Def. PO
(x y) = (y x)
164
[ ]
(x y) = (y x)
{{x y} {x}} = {{y x} {y}}
Hay 2 Opciones I y II
I.-
{x y} = {y x}
{x} = {y}
xy
que satisface el sistema I
II.-
{x y} = {y}
{x} = {y x}
xy
que satisface el sistema II. El resultado de las opciones I y II es el mismo. Por lo tanto la Tesis es
xy
xy
y muestra la diferencia esencial entre los PO y los pares simples que cumplen en todos los casos
{x y} = {y x}
T3.-
Def PO (x x) = {{x}}
D.-
(x x) := {{x x} {x}}
= {{x} {x}}
= {{x}}
Def:
(x y z) := { {x y z} {x y} {x} }
(x y z) : Terna
x : Primer elemento de la terna
y : Segundo elemento de la terna
z : Tercer elemento de la terna
Obs : Si se hubiera definido la terna por la proposicin
(x y z) := ((x y) z)
( definicin no vlida )
165
5.1.5.2.- NUPLAS
Def:
(x1 x2 xn ) := { { x1 x2 xn } .. { x1 x2 } { x1} }
(x1 x2 xn ) : Nupla
xi : i-esimo componente de la nupla
Def:
(x) := {{x}}
Obs : Ntese que del T3 resulta
(x x) := {{x}}
= (x)
166
AxB := { (x y): xA yB }
Def:
Blanco
Williams
(Azul
(Rojo
(Blanco
(Verde
(Negro
(Metalizado
Verde
Lotus }
Honda)
Honda)
Honda)
Honda)
Honda)
Honda)
Negro
Metalizado }
(Azul
Williams)
(Rojo
Williams)
(Blanco
Williams)
(Verde
Williams)
(Negro
Williams)
(Metalizado Williams)
(Azul
(Rojo
(Blanco
(Verde
(Negro
(Metalizado
Lotus )
Lotus )
Lotus )
Lotus )
Lotus )
Lotus ) }
Un Producto Cartesiano puede ser representado grficamente en un baco cartesiano. De all su nombre:
B
L
W
H
F
AxB
x
x
x
x
a
x
x
x
x
r
x
x
x
x
b
x x x
x x x
x (nh) x
x x x
v n m
5.2.2.- TEOREMAS DE PC
T1.TCR T1.D.- [ ]
[ ]
I.-
AxB = BxA A = B
AxB BxA A B
A=B
AxB = BxA
AB
Se presentan 2 opciones I y II
x: xA xB
(xy): (x y)AxB (x y)BxA
AxB BxA
167
II.-
T2.-
x: xA xB
(xy): (x y)AxB (x y)BxA
AxB BxA
AxB =
A= B=
Def:
A1x A2 x x An := { (x1 x2 xn ) : xi Ai }
A1x A2 x x An : Producto Cartesiano A1 por A2 por por An
Ai : Conjunto i-simo del Producto Cartesiano
Es comn el Producto Cartesiano de un conjunto por si mismo dos o mas veces, en ese caso la notacin se
abrevia:
Def:
E2 := ExE
En := ExEx .. xE
{ n veces }
Ejemplos : R2 := RxR
Rn := RxRx ... xR
{ n veces }
168
5.3.- RELACIN
Se llama Relacin en AxB a todo Subconjunto no vaco del Producto Cartesiano AxB
Def:
Def:
D(R) := { x: xA (x y)R }
I(R) := { y: yB (x y)R }
D(R) : Dominio de R(AxB)
I(R) : Imagen de R(AxB)}
Una representacin de R(AxB) sobre el Producto Cartesiano es:
B
AxB
Relacin
V
U
T
S
x
x
x
x
a
X
X
X
X
B
x
x
x
x
c
x
x
x
x
d
x
x
(et)
x
e
x
x
x
x
f
Otra representacin de una relacin R(AxB) es por Grficas como las que se muestran a continuacin:
Los Conjuntos Ay B y sus elementos se representan por Diagramas de Venn y los PO que componen la Relacin por
segmentos orientados (flechas).
A={abcdef}
B={stuv]
Grfica (R) = { (a t) (b t) (c t) (c u) (c v) (d u) (d v) }
Dominio (R) = { a b c d }
Imagen (R) = { t u v }
169
R Unvoca :=
( xy ) R
( xz ) R
y z
AxB
Relacin no unvoca
AxB
Relacin unvoca
x
x
t
s
x
x
a
x
x
b
x
x
c
x
x
d
(et) x
x x
e f
t
s
x
x
a
x
x
b
x
x
c
x
x
d
(et) x
x x
e f
En la representacin de una relacin univoca por segmentos orientados se caracteriza por la condicin que de
los elementos del dominio sale una flecha sola o ninguna.
R Unvoca
Obs: En una Relacin Unvoca de cada Elemento del Conjunto de Partida A sale una flecha o ninguna . {0,1}.
Con respecto al Conjunto de Llegada B no existen restricciones.
170
5.5.- FUNCIN
5.5.1.- DEFINICIN DE FUNCIN
Una funcin es una relacin que cumple 2 condiciones:
1.- Estar definida para todo elemento del Conjunto de Partida A. Es decir que el Dominio de la Relacin f es
el Conjunto de Partida: A = D
2.- Ser Unvoca
Def:
f : A B
x y
x A ( xy ) f
(xy) f
f Unvoca := (xz) f
:=
y z
D(f) := { x: xA (x y) f } = A
I(f) := { y: yB (x y) f }
f(AxB) := { (x y) : (x y) f }
f : funcin
A : Conjunto de Partida o Primer Conjunto del Producto Cartesiano Dominio de la funcin
B : Conjunto de Llegada o Segundo Conjunto del Producto Cartesiano Codominio de la funcin
f(AxB) :Grfica de la funcin
I(f) :Imagen de f(AxB)
Obs 1: Ntese que el smbolo [ AB ] representa al Producto Cartesiano AxB y el smbolo [ xy]
representa al PO (x y). Es decir que las dos flechas tienen significado diferente , y es por ello que la flecha que
seala al PO a veces se la indica con una colita [ x + y ] para diferenciarla de la flecha que seala el PC. Esto se
obvia si no hay confusin posible.
f : A B
x y
:=
f : AxB
( xy )
Una primera forma de representar una funcin es con un grfico Cartesiano donde puede observarse las 2
proposiciones que hacen a la definicin de funcin:
1.- El estar definida para todo elemento del Dominio A = D.
2.- Ser Relacin Unvoca.
AxB
funcin
t
s
x
x
a
x
x
b
x
x
c
x
x
d
(et) x
x x
e f
171
A={abcdef}
B={stuv]
Grfica (f) = { (a t) (b t) (c u) (d v) (e u) (f t) }
Dominio (f) = { a b c d e f } = A
Imagen (f) = { t u v }
Obs 1: En una funcin de cada elemento del Conjunto de partida A sale una flecha y solo una {1}. Con respecto
al Conjunto de Llegada B no existen restricciones.
Obs 2: En la definicin de funcin existen 4 elementos, el primero de los cuales es su nombre, y los otros 3
elementos son 3 conjuntos el Dominio, el Codominio y la Grfica, de las cuales depende la funcin. Cambiando
cualquiera de estos 3 Conjuntos cambia la funcin. Se plantean un ejemplo:
Ejemplo: Sea el Conjunto de pares ordenados
G := {(x y) : y = x1/2 }
1.- Este Conjunto G carece de sentido si no se aclara que son x e y . Pueden ser elementos de cualquier
conjunto genrico ( que significara y = x1/2 ? ), o nmeros reales o complejos etc. Esto muestra que debe definirse el
PC AxB sobre el cual se quiere trabajar.
Suponiendo que AxB = RxR entonces G sera la Grfica siguiente:
172
5.- Pero tambin se podra haber elegido arbitrariamente a A = [ 0 2 ] y los siguientes subconjuntos de G:
x [0 1[
x [1 2]
y = + x1/2
y = x1/2
lo cual permite definir otra funcin que se llamar f2 diferente por supuesto de la anterior RazCuad:
f2: [ 0 2] R+ {0}
y = +x1/ 2
x
1/ 2
y = x
x [ 0 1[
x [ 1 2]
todo este anlisis muestra como una funcin depende no solamente de su Grfica, sino tambin de sus Conjuntos
de Partida y de Llegada.
x A
x = y f(x) = f(y)
Por otro lado la importancia de la definicin de funcin resulta de su gran aplicacin. Algunas funciones
matemticas entre las ms usuales:
Tipo
Sucesiones
Matrices
Leyes de Composicin Interna
Leyes de Composicin Externa
Productos Hermticos
Polinomios
funcin
S:NB
M:N2B
T:ExEE
T:KxEE
T:ExEK
P:R2R2
n
a x
i
i =0
173
P:RR
P:RnR
P:R2R2
B C
Teorema
f : A B
x y
g :C D
yz
BC
gof : A D
x z = g( f ( x ))
( yz ) g
( yz' ) g
yB (yz) g
( yz ) g
( yz' ) g
z = z
g : C D := yC (yz) g
como
( xy ) f
( xy' ) f
y = y
z = z
xA (xy) f
B C
se tiene
por lo tanto se puede se puede definir una relacin sobre AxD que para todo elemento de A tenga un par en la
relacin y adems sea unvoca:
( xz ) gof
gof : A D := xA (xz)gof
z = z
( xz' ) gof
Existe entonces una funcin llamada compuesta gof que se define como:
gof : A D
x z = g( f ( x ))
174
5.5.4.2.- TEOREMAS
T1.-
Def
gof = g(f)
175
f Inyectiva :=
( xy ) f
( zy ) f
x z
Obs: A cada elemento del Codominio llega una flecha o ninguna {0,1}.
f Suryectiva :=
yB (xy) f
Obs: A todo elemento del Codominio llega por lo menos una flecha. {1,n}.
f Biyectiva :=
f Inyectiva
f Suryectiva
Obs: A todo elemento del Codominio llega una flecha y solo una {1}.
176
g:B A
yx
:=
f : A B
x y =: (xy) f
y B ( yx ) g
(yx) g
g Unvoca :=
(zx) g
y z
g: funcin inversa de f
La notacin habitual de la funcin inversa es
f- 1 := g
5.5.6.2.- TEOREMAS
T1.- g : g funcin inversa de f f Biyectiva
D.- []
( xy ) f
( zy ) f
x z
yB (xy) f
La relacin g es entonces:
1.- Unvoca porque f es inyectiva
2.- Est definida para todo el conjunto B por ser f suryectiva
por lo tanto es g funcin
[]
177
T2.-
g funcin inversa de f
g 1 = ( f 1) 1 = f
T3.-
g funcin inversa de f
g biyectiva
f biy
g biy
g: A A
xx
gof biy
funcin identidad
f = f 1
178
R Reflexiva := xA
(x x)R
AxA
A
Rel. Reflexiva
e
d
c
b
a
x
x
x
x
x
a
x
x
x
x
x
b
x
x
x
x
x
c
x
x
x
x
x
d
x
x
x
x
x
e
Obs : La relacin es Reflexiva si contiene toda la diagonal Principal del Producto Cartesiano AxA.
R Simtrica :=
(x y)R
(y x)R
AxA
Rel. Simtrica
e
d
c
b
a
x
x
x
x
x
a
x
x
x
x
x
b
x
x
x
x
x
c
x
x
x
x
x
d
x
x
x
x
x
e
Obs: La relacin es Simtrica si los pares ordenados del Producto Cartesiano AxA son Simtricos respecto
de la Diagonal Principal.
Teorema
R Simtrica :=
(x y)R
(y x)R
179
A
Rel. Transitiva
e
d
c
B
A
x x x
(ad) (bd) x
x x x
(ab) x x
x x x
a b c
x
x
x
x
x
d
X
X
X
X
X
e
Obs: La relacin es Transitiva cuando: dado dos pares (x,y) y (y,z) de la relacin R, existe un tercer par
(x, z) que tambin pertenece a la relacin. Este ltimo es el par que est en la misma columna del primero y fila del
segundo. (jaque de torres)
A
Rel Reflexiva
Simtrica
Transitiva
e
d
c
b
a
x
x
x
x
x
a
x
x
x
x
x
b
x
x
x
x
x
c
Rel Equiv.
x
x
x
x
x
d
x
x
x
x
x
e
Independencia
A
AxA
AxA
Rel No Reflexiva
Simtrica
Transitiva
AxA
Rel. Reflexiva
No Simtrica
Transitiva
Rel. Reflexiva
Simtrica
No Transitiva
e
d
x
x
x
x
X
X
x
x
x
x
e
d
x
x
x
x
x
x
x
x
x
x
e
d
x
x
x
x
x
x
c
b
a
x
x
x
a
x
x
x
B
X
X
X
C
x
x
x
d
x
x
x
e
c
b
a
x
x
x
a
x
x
x
b
x
x
x
c
x
x
x
d
x
x
x
e
c
b
a
x
x
x
a
x
x
x
b
x
x
x
c
180
x
x
x
x
x x
x x
x x
d e
A
(b c) (c a) / (b
Las relaciones Reflexivas, Simtrica y Transitiva son compatibles e independientes como se demuestra en
los ejemplos expuestos.
Sin embargo hay una aparente demostracin de que la condicin de relacin Simtrica y Transitiva implica la
de Reflexiva . Esta demostracin es falsa , a pesar de lo que parecera en un primer anlisis:
(x y)R (y x)R
y por ser R una relacin Transitiva
( x , y ) R
(x, x)R
( y , x ) R
La proposicin demostrada no es vlida para todos los elementos x del conjunto A por lo tanto la condicin de
simetra y transitividad no aseguran la reflexividad.
Def:
R Equivalencia := R Simtrica
R Transitiva
AxA
Rel Reflexiva
Simtrica
Transitiva
e
d
c
b
a
x
x
x
x
x
a
x
x
x
x
x
b
x
x
x
x
x
c
x
x
x
x
x
d
181
Rel Equiv.
x
x
x
x
x
e
5.6.2.3.- TEOREMAS
T1.X := { x }
Y := { y }
f : X Y
: f biyectiva
RE
CE ( x ) := { y : ( xy ) RE }
182
R A-Reflexiva := R Reflexiva
:= /xA (x x)R
:= xA (x x)R
Obs: La relacin es A-Reflexiva si no contiene a Toda la Diagonal Principal del Producto Cartesiano AxA.
R A-Simtrica := R Simtrica
:= (x y)R / (y x)R
:= (x y)R (y x)R
Obs: La relacin es A-Simtrica si existe algn par ordenado de la relacin no Simtrico respecto de la
Diagonal Principal del Producto Cartesiano AxA.
R A-Transitiva := R Transitiva
( x , y ) R
:=
/ (x, z)R
( y, z ) R
Def:
R Antisimtrica /RE
RE Equivalencia
( xy ) R
( yx ) R ( xy ) RE
:=
AxA
Rel Antisimtrica
d
c
b
a
x
x
x
x
a
x
x
x
x
b
x
x
x
x
c
x
x
x
x
d
x
x
x
x
e
183
Obs 1: La definicin de la Relacin Antisimtrica significa que no coexisten en la relacin pares simtricos
salvo los (x x) que estn en la diagonal principal.
RE Equivalencia
( xy ) RE [( xy ) R ( yx ) R ]
:=
Obs 2: Las relaciones Antisimtricas son independientes y compatibles con las relaciones Simtricas y ASimtricas, es decir las pueden ser simultneas, como lo prueban los siguientes ejemplos:
A
AxA
AxA
Rel Simtrica
Antisimtrica
Rel. Simtrica
No-Antisimtrica
b
a
x
x
a
x
x
b
x
x
c
x
x
d
x
x
e
b
a
x
x
a
x
x
b
x
x
c
x
x
d
x
x
e
e
d
c
b
a
x
x
x
x
x
a
AxA
Rel A-Simtrica
Antisimtrica
x
x
x
x
x
b
e
d
c
b
a
x
x
x
x
x
c
x
x
x
x
x
d
x
x
x
x
x
e
184
AxA
Rel. A-Simtrica
No-Antisimtrica
x
x
x
x
x
a
x
x
x
x
x
b
x
x
x
x
x
c
x
x
x
x
x
d
x
x
x
x
x
e
R A Simtrica
R Orden Estricto :=
R Transitiva
A
AxA
Rel
e
d
c
b
a
A-Simtrica
Transitiva
x
x
x
x
x
a
x
x
x
x
x
b
x
x
x
x
x
c
x
x
x
x
x
d
ROE
x
x
x
x
x
e
Def:
R Re flexiva
AxA
Rel Reflexiva
Antisimtrica/RE ROA
Transitiva
e
d
c
b
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
a
x
b
x
c
x
d
x
e
185
xRy
(x y) R . Se ha
Def:
R Orden Total /A := xA
(x y) R (y x) R
186
5.6.5
5.6.7
Entonces, sea cual sea la aplicacin f, si n >k hay al menos dos elementos de X, x1 y x2 (x1 x2)
tales que f(x1) = f(x2).
O, en trminos mas generales, si n > kr, para cierto r 1, hay al menos r + 1 elementos distintos de X, x1, x2, . . ., xr, tales que
f(x1) = f(x2) = = f(xr) .
En el lenguaje zoolgico usado antes, los elementos de X seran las palomas, los de Y los nidos, y la
aplicacin f es aquella que indica en qu nido duerme cada paloma. Diramos entonces que si hay n
palomas y k nidos, donde n > kr, entonces habra, con seguridad, al menos r + 1 palomas durmiendo en el mismo nido. El caso r = 1 es el principio del palomar habitual.
1
Que podemos formular en general como: en un cierto sistema, si es suficientemente grande, siempre existen subsistemas no pequeos que satisfacen una cierta propiedad.
187
Por supuesto, la dificultad a la hora de aplicar el principio del palomar ser identificar en cada problema qu desempea el papel de nidos y de palomas, y describir la aplicacin f.
Ejemplo 1
Comprobemos que si en un cuadrado de diagonal 3 marcamos al azar 10 puntos, entonces siempre
tenemos al menos dos puntos que estn a distancia no mayor que 1.
Dividimos el cuadrado en 9 cuadraditos de diagonal 1 (incluyendo sus bordes):
Sean X = {x1, x2,..., x10} el conjunto de puntos y Y = {C1,
C9} el de cuadraditos, y construyamos la aplicacin
f : X ----->Y
Xj |----->Y f(x) = cuadrado Ck en el que est x
C2,...,
Si x estuviera en mas de un cuadrado, elegimos uno cualquiera; digamos que el que menor
subndice tenga (esto es, si est entre C5 y C8, elegimos el C5). Aplicando el principio del
palomar, sea cual sea la aplicacin concreta f (la distribucin de puntos), debern existir al
menos dos puntos con la misma imagen, es decir, que estn en el mismo cuadradito. Y como los
cuadraditos tienen diagonal 1, esos dos puntos distaran como mucho una unidad.
Ejemplo 2
Probemos que si X es un conjunto arbitrario de 20 nmeros naturales, entonces hay al menos dos
elementos de X cuya diferencia es un mltiplo de 19.
En un lenguaje que ya manejamos bien, buscamos dos elementos de X cuya diferencia sea congruente con 0 mdulo 19. As que consideremos la aplicacin f: X > {0, 1,..., 18} que a cada n
X le asigna f(n) = n mdulo 19.
Por el principio del palomar, al menos dos elementos de X, digamos n1 y n2, tienen la
misma imagen: f(n1) = f(n2). Pero entonces n1 = n2 mdulo 19. Y, por tanto, n1 n2 = 0
mdulo 19, que es lo que queramos.
A veces no podemos aplicar directamente el principio del palomar, y se requiere una preparacin
inicial.
Ejemplo 3
Supongamos que en una reunin hay n personas y nos preguntamos por el nmero de personas que
conoce cada una. Convenimos que si una persona conoce a otra, sta tambin conoce a la primera;
y que nadie se conoce a s mismo2. Comprobemos que hay al menos dos personas que tienen el
mismo nmero de conocidos.
Sea X = {x1,..., xn} al conjunto de personas; cada una de ellas tendr un cierto nmero de conocidos,
y este nmero estar en el conjunto Y = {0,..., n - 1}. Construimos la aplicacin
f : X > Y
xj |----> f(xj) = #{conocidos de xj}.
Aparentemente, no podemos aplicar el principio del palomar, porque X y Y tienen el mismo nmero
de elementos, n. Pero vamos a ver que, en realidad, la aplicacin f nunca puede cubrir todo Y. Distinguimos dos posibilidades:
Supongamos que existe una persona x con f(x) = 0 (es decir, que no conoce a nadie). Entonces f
no puede tomar el valor n - 1 (si existiera una persona que conociera a todas, debera conocer
tambin a x). As que f toma valores en el conjunto {0,1,... , n - 2}, que tiene n - 1 elementos.
2
"Olvidndonos del nosce te ipsum (concete a ti mismo) del prtico del templo de Apolo en Delfos.
188
Aplicando el principio del palomar, concluimos que, en este caso, al menos dos personas tienen
el mismo nmero de conocidos.
Si no existe esa persona que no conoce a nadie, entonces f no toma el valor 0, y acabamos aplicando de nuevo el principio del palomar.
Podemos deducir de aqu lo que queremos? Si ocurriera que T1 contiene a T2 (o al revs), es fcil
comprobar que si. Pero recordemos que el principio del palomar no nos dice nada sobre cmo son
estos subconjuntos T1 y T2, slo que existen; as que este no parece ser el camino.
Lo que debemos hacer es escoger ms cuidadosamente los subconjuntos: empecemos ordenando
los elementos de S, digamos de menor a mayor,
S = {a1 < < an}
Vamos a considerar los subconjuntos {a1}, {a1, a2}, {a1, a2, a3}, etc. Construyamos la funcin
2 : { 1 , . . . , n} {0, ... , n - 1}
La funcin 2 devuelve los valores (mdulo n) de las sucesivas sumas a1, a1+ a2, a1+a2 + a3, etc.,
que podemos formar. Como ambos conjuntos, el de partida y el de llegada, tienen n elementos, tendremos que distinguir dos casos:
Si existe un i con 2( i ) = 0, habremos terminado, porque tendramos que
Si, por el contrario, no existe tal i, entonces la aplicacin 2 slo tomara valores en {1,..., n 1}. El principio del palomar nos dira entonces que existen i < j tales que 2(i) = 2(j). Esto es,
Como vemos, la aplicacin del principio del palomar a la resolucin de problemas suele requerir
algo de ingenio. Los ejercicios del final de la seccin son un buen entrenamiento que recomendamos al lector.
Ejemplo 5
Comprobemos que en una reunin de seis personas, o bien tres de ellas se conocen entre s, o bien
tres de ellas no se conocen entre s.
Seguimos con la convencin del ejemplo 3: si una persona conoce a otra, al revs tambin, y nadie
se conoce a s mismo. Llamemos {a, b, c, d, e, f} al conjunto de personas y fijmonos en una de
ellas, digamos a. Situamos a las otras cinco personas en dos cajas, segn conozcan o no a a. El
principio del palomar nos dice que una de las cajas contendr (al menos) a tres personas.
Digamos que estamos en el caso de que sea la caja con conocidos la que tiene al menos
tres personas (un argumento anlogo funciona en el otro caso). La persona a conoce, por ejemplo, a
las personas b, c y d. Ahora nos fijamos en este grupo: si alguno de ellos se conoce entre s, digamos b y c, ya tendramos un grupo de tres amigos (a, b y c, en este caso).
Pero si no es as, estaramos en la segunda opcin del enunciado: b, c y d formaran un grupo
de (tres) desconocidos.
5.7.1.1 Otras versiones del principio del palomar
La siguiente versin probabilstica del principio del palomar nos dice que, en un conjunto de n
nmeros naturales, no puede ocurrir que todos ellos estn por encima (o por debajo de la media).
Proposicin 2 Dados n nmeros naturales x 1 , . . . , x n tales que su suma vale S, alguno de ellos ha
de ser mayor o igual que S/n.
Demostracin. Si no fuera as, todos los xi serian menores que S/n, y entonces
Demostracin. Estamos aqu utilizando la notacin habitual para nombrar el conjunto de pre imgenes del elemento y Y :
Por ser f una aplicacin (cada elemento de X tiene una nica imagen), se tendra que
Y
190
de Y tal que
Como el nmero de la izquierda es un entero, entonces ha de ser mayor o igual que 2, el principio
del palomar habitual. Y en general, si |X| > r|Y| para cierto nmero natural r, entonces existir un y
Y tal que
esto es,
Pero podramos abordar el problema utilizando el principio del palomar. Con las 7 personas podemos formar (73) = 35 triples distintos. Pero cada persona aparecer en (62) = 15 triples (basta decidir
que dos personas le acompaan). Entonces se cumplir que
Como hay 35 triples distintos, la suma de las edades de alguno de ellos ha de ser mayor o igual que
Ejemplo 7
Un conjunto X de 100 elementos se parte en 14 bloques. Prubese que hay dos bloques con el mismo nmero de elementos.
Llamemos xi al tamao del bloque i-simo. Entonces
tos, entonces tendramos que
Pero esto no puede ocurrir, as que al menos dos han de ser iguales.
Finalicemos con una ltima versin del principio del palomar, en el que el conjunto de palomas
es infinito; de nuevo, el enunciado es bastante obvio: se dispone de una cantidad infinita de objetos
que se han de repartir en un conjunto finito de cajas. Entonces, al menos una caja contiene un nmero infinito de objetos
191
__________________
1
Un algoritmo resuelve un problema, pero dado un problema hay ms de un algoritmo que lo resuelve.
A lo largo de este tema, se podra pensar en traducir la palabra dificultad por complejidad; pero, se pretende diferenciar entre la
dificultad de resolver un problema y la complejidad del algoritmo que lo resuelva: es decir, cuando se dice que los problemas X y Y son
igual de difciles de resolver, es porque sus mejores algoritmos conocidos tienen una complejidad similar. Por purismo, o por mera
deformacin profesional (tanto leer en ingls tiene consecuencias perniciosas sobre el vocabulario propio), se mantiene dificultad.
2
192
193
194
Definiciones bsicas
____________________________________
3
Es decir, encontrar una solucin eficiente para cualquier problema de esa clase es igual de difcil que encontrar una solucin eficiente
para ese problema especial.
195
Clases de complejidad
196
197
198
__________________
5
Por ahora?
199
200
201
202
203
204
205
PROBLEMAS PROPUESTOS
206
207
INTRODUCCIN
En las Ciencias de la Computacin cuando se dice que un problema tiene solucin,
significa que existe un algoritmo susceptible de implantarse en una computadora,
capaz de producir la respuesta correcta para cualquier instancia del problema en
cuestin.
Para ciertos problemas es posible encontrar ms de un algoritmo capaz de resolverlos,
lo cual nos enfrenta al problema de escoger alguno de ellos. La tarea de decidir cul
de ellos es el mejor debe basarse en criterios acordes a nuestros intereses. En la
mayora de los casos la eleccin de un buen algoritmo est orientada hacia la
disminucin del costo que implica la solucin del problema; bajo este enfoque es
posible dividir los criterios en dos clases:
a) Criterios orientados a minimizar el costo de desarrollo: claridad, sencillez y
facilidad de implantacin, depuracin y mantenimiento.
b) Criterios orientados a disminuir el costo de ejecucin: tiempo de procesador y
cantidad de memoria utilizados.
Si el programa que implanta el algoritmo se va a ejecutar unas cuantas veces, el costo
de desarrollo es dominante, en este caso se debe dar ms peso a los primeros criterios.
Por el contrario, si el programa se va a utilizar frecuentemente, dominar el costo de
ejecucin, y por ende, se debe elegir un algoritmo que haga uso eficiente de los
recursos de la computadora, es decir, se le debe evaluar prioritariamente bajo los
criterios de la segunda clase. En cualquier caso, ninguno de los criterios de
evaluacin debe eliminarse por completo; pues, por ejemplo, si se implanta un
sistema con algoritmos muy
208
ecientes pero confusos, puede suceder que despus no sea posible darle el
mantenimiento adecuado.
Los recursos que consume un algoritmo pueden estimarse mediante herramientas tericas y constituyen, por lo tanto, una base conable para la
eleccin de un algoritmo. En las Ciencias de la Computacin, la actividad
dedicada a determinar la cantidad de recursos que consumen los algoritmos
se le denomina anlisis de algoritmos.
La primera seccin de este captulo presenta los conceptos que nos permitirn introducir despus, en secciones posteriores, las tcnicas utilizadas para
la medicin de los recursos que consume un algoritmo y las bases tericas
sobre las que estas se fundamentan.
x log(0)
o
x (10 o 35)/3
x 2 + 8, mensaje Une('Hola','Mundo')
son efectivas, mientras que
x cardinalidad(nmeros naturales)
209
no lo es.
Si un conjunto de instrucciones tiene todas las caractersticas de un algoritmo, excepto ser nito en tiempo se le denomina proceso computacional.
Los sistemas operativos son el mejor ejemplo de proceso computacional, pues
estn diseados para ejecutar tareas mientras las haya pendientes, y cuando
stas se terminan, el sistema operativo entra en un estado de espera, hasta
que llegan ms, pero nunca termina.
Se asume que un problema tiene solucin algortmica si adems de que el
algoritmo existe, su tiempo de ejecucin es razonablemente corto. Por ejemplo, es posible disear un algoritmo para jugar ajedrez que triunfe siempre: el
algoritmo elige la siguiente tirada examinando todas las posibles secuencias
de movimientos desde el tablero actual hasta uno donde sea claro el resultado
y elige la tirada que le asegure el triunfo; el pequeo inconveniente de este
algoritmo es que dicho espacio de bsqueda se ha estimado en 100040 tableros
por lo que puede tardarse miles de aos en tomar una decisin. Por lo tanto,
para nes prcticos se considera que si un problema tiene una solucin que
toma aos en computar, dicha solucin no existe.
Considrese ahora el problema de ordenar un conjunto de valores, si el
conjunto tiene 2 elementos es ms fcil resolverlo que si tiene 20, anlogamente un algoritmo que resuelva el problema tardar ms tiempo mientras
ms grande sea el conjunto y requerir una cantidad de memoria mayor para
almacenar los elementos del conjunto.
En general la cantidad de recursos que consume un algoritmo para resolver un problema se incrementa conforme crece el tamao del problema.
Dependiendo del problema en particular, uno o varios de sus parmetros ser
elegido como tamao del problema. Haciendo una cuidadosa observacin, es
relativamente fcil efectuar una eleccin atinada.
En la Figura 1 se presenta una serie de problemas y una sugerencia acerca
del parmetro que se puede elegir como tamao del problema.
1.2.
Complejidad de algoritmos
210
PROBLEMA
b)
Indica la cantidad de tiempo que requiere un algoritmo para resolver un problema de tamao n; viene a
ser una medida de la cantidad de CPU que requiere el algoritmo.
La cantidad de memoria que utiliza un algoritmo depende de la implantacin, no obstante, es posible obtener una medida del espacio necesario con la
sola inspeccin del algoritmo. Para obtener esta cantidad es necesario sumar
todas las celdas de memoria que utiliza. En general se requerirn dos tipos
de celdas de memoria:
a)
Celdas estticas. Son las que se utilizan en todo el tiempo que dura la
b)
211
una variable simple, sin importar el tipo al que pertenezca. Las variables que
tengan valores de un tipo simple ocuparn una celda de memoria, mientras
que a las variables de tipos compuestos se les asignan tantas celdas como
requieran los elementos que las componen.
El tiempo que emplea un algoritmo en ejecutarse reeja la cantidad de
trabajo realizado, as, la complejidad temporal da una medida de la cantidad
de tiempo que requerir la implantacin de un algoritmo para resolver el
problema, por lo que se le puede determinar en forma experimental. Por
ejemplo, para encontrar el valor de la funcin complejidad de un algoritmo
A que se codica un lenguaje de programacin L, se compila utilizando el
compilador C y se ejecuta en la mquina M, damos algunas entradas al
programa y medimos el tiempo de procesador empleado para resolver los
casos del problema.
Proceder de esta manera presenta, entre otros, el inconveniente de que
los resultados obtenidos dependen de:
a) las entradas proporcionadas,
b) la calidad del cdigo generado por el compilador utilizado, y
c) de la mquina en que se hagan las corridas.
Para evitar que estos factores se reejen en el clculo de la funcin complejidad, el anlisis temporal (y el espacial) se har nicamente con base al
algoritmo escrito en pseudocdigo. Como el pseudocdigo no se puede ejecutar para medir la cantidad de tiempo que consume, la complejidad temporal
no se expresar en unidades de tiempo, sino en trminos de la cantidad de
operaciones que realiza. Cada operacin requiere cierta cantidad constante
de tiempo para ser ejecutada, por esta razn si se cuenta el nmero de operaciones realizadas por el algoritmo se obtiene una estimacin del tiempo
que le tomar resolver el problema.
Dado un algoritmo, se puede determinar que tipos de operaciones utiliza
y cuantas veces las ejecuta para una entrada especca. Observemos este
procedimiento en el siguiente ejemplo.
212
func
BsquedaLineal(V alor, A, n)
comienza
i 1;
(i n) (A[i] = V alor)
i i + 1;
zah;
BsquedaLineal i;
mientras
haz
termina.
Algoritmo 1:
Bsqueda lineal
Posteriormente, cuando se introduzca el concepto de orden, se dir que ambas cantidades son del mismo orden
213
Ejemplo 2
El Algoritmo 2 obtiene el producto de los dos valores ms grandes contenidos en un arreglo A de n enteros. Tomaremos este problema para
ejemplicar la eleccin de la operacin bsica con miras a hacer el anlisis
del algoritmo.
En este algoritmo se realizan las siguientes operaciones:
a) Comparacin entre mayor1 , mayor2 y los elementos del arreglo.
b) Asignaciones a mayor1 y mayor2
c) Asignacin al ndice i
d) Asignacin a la funcin
e) Producto de los mayores
f ) Incremento al ndice i
g) Comparacin entre el ndice i y la longitud del arreglo n
Las operaciones (c), (f) y (g) no se consideran por realizarse entre ndices, las operaciones (d) y (e) se ejecutan una sola vez y no son proporcionales al nmero total de operaciones. Entonces, se tiene que las operaciones
que se pueden considerar para hacer el anlisis son: las comparaciones entre
mayor1 , mayor2 y los elementos del arreglo y las asignaciones a los elementos
mayores.
214
func
Producto2Mayores (A, n)
comienza
si
entonces
mayor1 A[1];
mayor2 A[2];
otro
mayor1 A[2];
mayor2 A[1];
is
i 3;
i n haz
A[i] > mayor1 entonces
mayor2 mayor1;
mayor1 A[i];
otrosi A[i] > mayor2 entonces
mayor2 A[i];
mientras
si
is
i i + 1;
zah
PROBLEMA
OPERACIN BSICA
215
Ejemplo 3
A = [2, 7, 4, 1, 3]
n = 5.
ft (5) = 1
ft (5) = 3
ft (5) = 5
216
a) Peor caso
b) Mejor caso
ft (n) = max({O1 , O2 , O3 , . . . , Ok })
ft (n) = mn({O1 , O2 , O3 , . . . , Ok })
c) Caso medio
ft (n) =
k
Oi P (i)
i=1
217
P (i) =
1
n+1
n+2
1
(n + 1)(n + 2)
ft (n) =
=
i=
n + 1 i=1
2(n + 1)
2
Ejemplo 5
n+1
Problema:
n =nmero
Operacin bsica:
de elementos en el arreglo.
y los mayores.
Anlisis Temporal
i) Mejor caso: ocurre cuando el arreglo est ordenado ascendentemente
(en cada iteracin slo hace la primera comparacin)
ft (n) = 1 + (1 (n 2)) = n 1
ii) Peor caso: el arreglo est ordenado de manera descendente (se hacen
dos comparaciones por iteracin en el ciclo)
ft (n) = 1 + (2 (n 2)) = 2n 3
iii) Caso medio: en este problema se tienen
|U |
n
n!
casos, donde
es
218
comparaciones.
Es importante mencionar que no todos los algoritmos presentan casos, y
resulta interesante tener una herramienta para detectar cundo se particionar el anlisis en casos; por el momento la nica ayuda con la que se cuenta
es la intuicin y preguntarse: se puede resolver el problema de manera trivial
para alguna instancia especca? Si la respuesta es armativa el algoritmo
tendr casos, por lo que el problema de deteccin se reduce a contestar esta
simple pregunta.
Con lo expuesto en esta seccin y con habilidades (formales e informales)
de conteo, se puede estimar la cantidad de recursos que un algoritmo consume; pero el objetivo no slo es conocer dicha cantidad, sino, ms an, poder
comparar el comportamiento de distintos algoritmos, con el n de decidir
cul de ellos utilizar bajo circunstancias especcas. En la siguiente seccin
se dan las bases tericas para tomar de manera conable la decisin.
219
1.3. Ejercicios
Ejercicio 1.1 La regla para multiplicar las matrices A y B
2 2,
de dimensin
Ejercicio 1.2 El algoritmo 3 encuentra la representacin binaria de un entero decimal positivo. El algoritmo se basa en divisiones sucesivas por 2. As,
para un entero positivo N se calcula:
N = 2q0 + r0
q0 = 2q1 + r1
q1 = 2q2 + r2
..
.
qk1 = 2qk + rk
220
proc RepresentacinBinaria(N,N2)
comienza
y N;
i 0;
mientras (y = 0) haz
si par (y) entonces
otro
is
r[i] 0
r[i] 1;
y y1
y y/2;
i i + 1;
zah
k i 1;
N 2 r[0...k];
termina.
Ejercicio 1.3
log N
+1.
10
3
x1 , x2 , . . . , xn ,
usando el algoritmo 4.
Ejercicio 1.4
Ejercicio 1.5
221
b X[1];
para j 2 a n haz
si (X[j] < b) entonces
b X[j];
(* b = min{x1 , x2 , . . . , xn } *)
is
zah
termina.
Ejercicio 1.7 Dada una lista ordenada con representacin ligada sencilla,
escriba un algoritmo para insertar un elemento y obtenga la complejidad temporal del mismo.
222