Você está na página 1de 189

Apuntes IIC1253 - Matematicas Discretas

Examen de Ttulo 2014

Gabriel Dieguez Franzani

Seleccion de diapositivas de
Gonzalo Daz, Nicolas Rivera y Marcelo Arenas

23 de diciembre de 2013
Contenidos I
1 Induccion
Principios de Induccion
Induccion Estructural
2 Logica proposicional
Introduccion
Sintaxis
Semantica
Tablas de verdad
Satisfacibilidad
Formas normales
Conectivos funcionalmente completos
Consecuencia logica
3 Logica de Primer Orden
Introduccion
Sintaxis
Semantica
Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas
Contenidos II
Satisfacibilidad
Consecuencia logica
4 Teora de Conjuntos
5 Relaciones
6 Funciones y Cardinalidad
7 Teora de numeros y Criptografa
Teora de numeros
Criptografa
Protocolo RSA
8 Grafos
9 Analisis de algoritmos
Introduccion
Correccion
Complejidad
Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas
1. Induccion

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Induccion

Consideraremos que los numeros naturales (N) empiezan en el 0.


Los tres principios de induccion presentados a continuacion son
equivalentes, y no necesitan demostracion (de ah el nombre
principio), pues son inherentes a la definicion de los numeros
naturales.

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Induccion Simple

Principio Simple de Induccion


Sea P(n) una propiedad (predicado) definido para los numeros
naturales. Si se cumple que:
i) P(0),
ii) n N(P(n) P(n + 1)),
entonces se cumple:
n N(P(n)).
Nota: La condicion (i) se llama base de la induccion, (ii) es el
paso inductivo, dentro del cual la expresion P(n) es la hipotesis
inductiva (HI) y la expresion P(n + 1) es la tesis inductiva (TI).

Gonzalo Daz Matematicas Discretas 5 / 18


Ejercicio
Demuestre que para todo n N se cumple que:

n(n + 1)
1 + + n = .
2

Gonzalo Daz Matematicas Discretas 6 / 18


Induccion Simple
B.I. Tomando n = 0, tenemos que 0 = 0(0+1)2 .
H.I. Suponemos que para n se cumple que 1 + . . . + n = n(n+1)
2 .
(n+1)((n+1)+1)
T.I. Debemos demostrar que 1 + . . . + n + (n + 1) = 2 .
n(n+1)
Por H.I., sabemos que 1 + . . . + n = 2 , y luego
n(n+1)
1 + . . . + n + (n + 1) = 2 + (n + 1)

n(n+1)+2(n+1)
1 + . . . + n + (n + 1) = 2

(n+2)(n+1)
1 + . . . + n + (n + 1) = 2

(n+1)(n+2)
1 + . . . + n + (n + 1) = 2

(n+1)((n+1)+1)
1 + . . . + n + (n + 1) = 2 

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Induccion fuerte

Principio Fuerte de Induccion


Sea P(n) una propiedad (predicado) definida para los numeros
naturales. Si n N se cumple que:
i) k < n (P(k)) P(n),
entonces se cumple:
n N(P(n)).

Gonzalo Daz Matematicas Discretas 7 / 18


Principio del Buen Orden

Principio del Buen Orden


Dado S N tal que S 6= , se cumple que S tiene un menor
elemento, es decir:

m S, x S(m x).

Gonzalo Daz Matematicas Discretas 8 / 18


Induccion Estructural

Los principios anteriores se aplican todos a los numeros naturales.


Esto se debe a que N es un conjunto que se puede construir a partir
de un elemento base y un operador.
En este caso, el elemento base es el 0 y el operador el sucesor.
Esta construccion a partir de elementos base y operadores es lo que se
conoce como una definicion inductiva.
Intuitivamente, en el caso de N podemos obtener todo natural a
partir de sumarle 1 a otro natural (excepto el 0).

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Induccion Estructural

Formalmente, tenemos la siguiente definicion inductiva de N:


Definicion
N es el menor conjunto que cumple las siguientes reglas:
1 0N
2 Si n N, entonces n + 1 N

Es importante la afirmacion de menor conjunto, dado que existen


otros que cumplen las reglas.
Notamos que esta definicion esta estrechamente relacionada con los
principios de induccion: la propiedad debe demostrarse para el 0
(elemento base y primera regla), y luego usando el operador (segunda
regla).

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Induccion Estructural
Esta nocion de definicion inductiva se puede usar para definir otros
conjuntos.
Podremos usar induccion para demostrar propiedades sobre tales
conjuntos.
Podremos definir nuevos objetos (funciones, operaciones, etc.) usando
la definicion inductiva del conjunto.

Definicion Inductiva
Para definir inductivamente un conjunto necesitamos:
1 Establecer que el conjunto es el menor que cumple las reglas.
2 Un conjunto (no necesariamente finito) de elementos base, que se
supondra que inicialmente pertenecen al conjunto que se quiere
definir.
3 Un conjunto finito de reglas de construccion de nuevos elementos del
conjunto a partir de elementos que ya estan en el.
Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas
Induccion Estructural: un ejemplo

Ejemplo
Queremos definir el conjunto EN de todas las expresiones aritmeticas sobre
los numeros naturales que se pueden construir usando los smbolos
+, , (, ). Por ejemplo,

(5 + 3 4) 10
7
1+2+3+4

son expresiones en EN .

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Induccion Estructural: un ejemplo

Definicion de EN
EN es el menor conjunto tal que:
1 Si k N, entonces k EN .
2 Si E1 , E2 EN , entonces E1 + E2 EN .
3 Si E1 , E2 EN , entonces E1 E2 EN .
4 Si E EN , entonces (E) EN .

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Induccion Estructural: un ejemplo

Podemos definir operadores sobre EN valiendonos de su definicion


inductiva:
Dada una expresion, el operador #L : EN N entrega la cantidad de
parentesis izquierdos de ella.
Definicion de #L
1 #L (k) = 0 para todo k N.
2 #L (E1 + E2 ) = #L (E1 ) + #L (E2 ) para todas E1 , E2 EN .
3 #L (E1 E2 ) = #L (E1 ) + #L (E2 ) para todas E1 , E2 EN .
4 #L ((E)) = 1 + #L (E) para toda E EN .

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Induccion Estructural: demostraciones

La induccion estructural nos permite ademas demostrar propiedades sobre


los conjuntos y operadores definidos inductivamente, usando induccion tal
como en los numeros naturales.
Ejercicio
Defina el operador #R que entrega la cantidad de parentesis derechos de
una expresion en EN , y demuestre que para toda E EN , se cumple que
#L (E) = #R (E).

Desarrollo en Ejercicios Resueltos.

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


2. Logica proposicional

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Por que necesitamos la Logica?

Necesitamos un lenguaje con una sintaxis precisa y una semantica


bien definida.

Queremos usar este lenguaje en matematicas.


- Definicion de objetos matematicos: conjunto, numeros naturales,
numeros reales.
- Definicion de teoras matematicas: teora de conjuntos, teora de los
numero naturales.
- Definicion del concepto de demostracion.

Tambien queremos usar este lenguaje en computacion. Por que?

IIC1253 Logica Proposicional 10 / 64


Por que necesitamos la Logica en computacion?

Algunas aplicaciones:

- Bases de datos: Lenguajes de consulta, lenguajes para restricciones


de integridad.
- Inteligencia artificial: Representacion de conocimiento, razonamiento
con sentido comun.
- Ingeniera de software: Especificacion de sistemas (lenguaje Z ),
verificacion de propiedades.
- Teora de la computacion: complejidad descriptiva, algoritmos de
aproximacion.
- Criptografa: verificacion de protocolos criptograficos.
- Procesamiento de lenguaje natural.
- ...

IIC1253 Logica Proposicional 11 / 64


Logica Proposicional: Sintaxis

Tenemos los siguientes elementos:

- Variables proposicionales (P): p, q, r , . . .


- Conectivos logicos: , , , ,
- Smbolos de puntuacion: (, )

Cada variable proposicional representa una proposicion completa e


indivisible, que puede ser verdadera o falsa.

Ejemplo
P = {socrates es hombre, socrates es mortal }.

IIC1253 Logica Proposicional 12 / 64


Logica Proposicional: Sintaxis

Conectivos logicos son usados para construir expresiones que


tambien pueden ser verdaderas o falsas.

Ejemplo

socrates es hombre socrates es mortal


socrates es hombre ( socrates es mortal )

Smbolos de puntuacion son usados para evitar ambiguedades.

IIC1253 Logica Proposicional 13 / 64


Sintaxis de la Logica Proposicional: Definicion

Dado: Conjunto P de variables proposicionales.

Definicion
L(P) es el menor conjunto que satisface las siguientes reglas:
1. P L(P).
2. Si L(P), entonces () L(P).
3. Si , L(P), entonces ( ) L(P), ( ) L(P),
( ) L(P) y ( ) L(P).

Ejercicio
Verifique que ((p) (q r )) es una formula.

IIC1253 Logica Proposicional 14 / 64


Sintaxis de la Logica Proposicional: Definicion

La naturaleza de la definicion es inductiva.

- Permite construir programas recursivos para chequear si una


formula esta bien construida.
- Permite definir inductivamente conceptos asociados a las formulas.
- Permite demostrar inductivamente propiedades de las formulas.

IIC1253 Logica Proposicional 15 / 64


Induccion en la logica proposicional: Ejercicios

1. Defina v () como el numero de ocurrencias de variables


proposicionales en .

2. Demuestre que para cada formula proposicional que no


contiene el smbolo se tiene que la() 4 v ()2 .

Que sucede si contiene el smbolo ?

Que sucede si las formulas de la forma (()) no son


permitidas?

3. Demuestre que un prefijo propio de una formula no es una


formula.

IIC1253 Logica Proposicional 20 / 64


Semantica de la logica proposicional

Como podemos determinar si una formula es verdadera o falsa?

Este valor de verdad depende de los valores de verdad asignados a


las variables proposicionales y de los conectivos utilizados.

Valuacion (asignacion): : P {0, 1}.

Ejemplo
(socrates es hombre) = 1 y (socrates es mortal ) = 0.

IIC1253 Logica Proposicional 28 / 64


Semantica: Definicion
Dado : P {0, 1}, queremos extender :

: L(P) {0, 1}.

Definicion
Dado L(P),
- Si = p, entonces () := (p).
- Si = (), entonces
!
1 si () = 0
() =
0 si () = 1

- Si = ( ), entonces
!
1 si () = 1 o () = 1
() =
0 si () = 0 y () = 0

IIC1253 Logica Proposicional 29 / 64


Semantica: Definicion (continuacion)

- Si = ( ), entonces
!
1 si () = 1 y () = 1
() =
0 si () = 0 o () = 0

- Si = ( ), entonces
!
1 si () = 0 o () = 1
() =
0 si () = 1 y () = 0

- Si = ( ), entonces
!
1 si () = ()
() =
0 si () &= ()

Por simplicidad vamos a usar en lugar de .


IIC1253 Logica Proposicional 30 / 64
Semantica: Ejemplos

Supongamos que (socrates es hombre) = 1 y


(socrates es mortal ) = 0.

Entonces:

((socrates es hombre socrates es mortal )) = 0


((((socrates es hombre socrates es mortal )
socrates es hombre) socrates es mortal )) = 1

IIC1253 Logica Proposicional 31 / 64


Tablas de verdad

Cada formula se puede representar y analizar en una tabla de


verdad.

p q p pq pq pq pq
0 0 1 0 0 1 1
0 1 1 1 0 1 0
1 0 0 1 0 0 0
1 1 0 1 1 1 1

Ejercicio
Suponga que P contiene n variables. Cuantas tablas de verdad distintas
existen para L(P)?

IIC1253 Logica Proposicional 32 / 64


Conectivos ternarios

Queremos definir el conectivo logico: si p entonces q si no r .

p q r si p entonces q si no r
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1

Como se puede representar este conectivo usando , y ?

IIC1253 Logica Proposicional 35 / 64


Conectivos ternarios (continuacion)

Solucion: (p q) ((p) r ).

p q r si p entonces q si no r (p q) ((p) r )
0 0 0 0 0
0 0 1 1 1
0 1 0 0 0
0 1 1 1 1
1 0 0 0 0
1 0 1 0 0
1 1 0 1 1
1 1 1 1 1

Por que el conectivo es equivalente a la formula?


! Porque tienen la misma tabla de verdad

IIC1253 Logica Proposicional 36 / 64


Satisfaccion de una formula

Definicion
Una formula es satisfacible si existe una valuacion tal que () = 1.

Ejemplo
Las siguientes formulas son satisfacibles:
(p q) r
p p

Las siguientes formulas no son satisfacibles:


p p
(p q) (p q)

IIC1253 Logica Proposicional 41 / 64


Tautologas y contradicciones

Si una formula no es satisfacible, entonces decimos que un contradiccion.


! p p es una contradiccion

Definicion
Una formula es una tautologa si para toda valuacion se tiene que
() = 1.

Ejemplo
Las siguientes formulas son tautologas:
p p
pp

IIC1253 Logica Proposicional 50 / 64


Equivalencia de formulas

Definicion
Dos formulas , son equivalentes, denotado como , si para toda
valuacion se tiene que () = ().

Una definicion alternativa de la nocion de equivalencia:

, son equivalentes si es una tautologa.

Ejercicio
1. Demuestre que las definiciones anteriores coinciden.
2. Defina la nocion de equivalencia usando tablas de verdad.
! Que pasa si las formulas no usan las mismas variables? Puede
ocurrir esto?

IIC1253 Logica Proposicional 51 / 64


Algunas equivalencias utiles

Ley de la doble negacion:


()

Leyes de De Morgan:
( ) () ()
( ) () ()

Leyes de conmutatividad:

IIC1253 Logica Proposicional 52 / 64


Algunas equivalencias utiles

Leyes de asociatividad:
( ) ( )
( ) ( )

Leyes de distributividad:
( ) ( ) ( )
( ) ( ) ( )

Ley de implicancia:
()

Ley de doble implicancia:


( ) ( )

IIC1253 Logica Proposicional 53 / 64


Formas normales: DNF

Decimos que una formula esta en forma normal disyuntiva


(DNF) si es de la forma:
m "#
! ni $
li ,j ,
i =1 j=1

donde cada li ,j es un literal, es decir, una variable proposicional o


la negacion de una variable proposicional.

Ejemplo
(p q) (p r s)

IIC1253 Logica Proposicional 55 / 64


Formas normales: DNF

Teorema
Toda formula es equivalente a una formula en DNF.

Ya demostramos este teorema, cierto?

IIC1253 Logica Proposicional 56 / 64


Formas normales: CNF

Decimos que una formula esta en forma normal conjuntiva


(CNF) si es de la forma:
m "!
# ni $
li ,j ,
i =1 j=1

donde cada li ,j es un literal.

Ejemplo
(p q) (p r s) (r s)

IIC1253 Logica Proposicional 57 / 64


Formas normales: CNF

Teorema
Toda formula es equivalente a una formula en CNF.

Ejercicio
Haga dos demostraciones del teorema.
! En la primera solo utilice las leyes de equivalencia. Que leyes
necesita utilizar?
! En la segunda utilice el resultado de que toda formula es
equivalente a una formula en DNF. Que leyes de equivalencia
necesita utilizar en este caso?

IIC1253 Logica Proposicional 58 / 64


Conectivos funcionalmente completos

Definicion
Un conjunto de conectivos es funcionalmente completo si es
posible definir cada formula usando solo estos conectivos.

Ya demostramos que {, , } es funcionalmente completo. Son


{, } y {, } funcionalmente completos?

Ejercicio
1. Demuestre que {, } es funcionalmente completo.
2. Demuestre que {} no es funcionalmente completo.
3. Es {, , , } funcionalmente completo?

IIC1253 Logica Proposicional 59 / 64


La nocion de consecuencia logica

Una valuacion satisface un conjunto de formulas si para cada


, se tiene que () = 1.
Notacion: () = 1.

Cuando decimos que una formula se deduce desde ?

Definicion
es consecuencia logica de si para cada valuacion tal que
() = 1, se tiene que () = 1.

Notacion: |=

IIC1253 Logica Proposicional 62 / 64


La nocion de consecuencia logica: Ejemplos

Modus ponens:
{p, p q} |= q

Demostracion por partes:

{p q r , p s, q s, r s} |= s

Ejercicio
1. Demuestre que si |= , entonces |= y |= .
2. Es cierto que si |= , entonces |= o |= ?

IIC1253 Logica Proposicional 63 / 64


3. Logica de Primer Orden

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Logica de primer orden

Dos de los objetivos de la logica proposicional:


! Poder modelar el proceso de razonamiento.
! Poder formalizar la nocion de demostracion.

Podemos expresar el siguiente argumento en logica proposicional?


Todos los hombres son mortales.
Socrates es hombre.
Por lo tanto, Socrates es mortal.

Podemos demostrar que para el conjunto de los numeros


naturales es cierto que todo numero es par o impar?

IIC1253 Logica de Primer Orden 2 / 28


Logica de primer orden

El poder expresivo de la logica proposicional es limitado.


! Por que usamos esta logica?

Vamos a introducir una logica mas expresiva.


! Tiene algunas de las buenas propiedades de la logica
proposicional, pero no todas.

Para expresar el argumento mostrado al principio necesitamos


cuantificadores: para todo y existe.

IIC1253 Logica de Primer Orden 3 / 28


Logica de primer orden: Vocabulario
Una formula en logica de primer orden esta definida sobre algunas
constantes, funciones y predicados.

Notacion
Un vocabulario L es la union de tres conjuntos:
constantes : {c1 , . . . , c! , . . .},
funciones : {f1 , . . . , fm , . . .},
relaciones : {R1 , . . . , Rn , . . .}.

Notacion
La aridad de una funcion f (relacion R) es el numero de
argumentos de f (de R).
! Cada funcion tiene una aridad mayor a 0.
! Cada relacion tiene una aridad mayor o igual a 0.

IIC1253 Logica de Primer Orden 4 / 28


Logica de primer orden: Vocabulario

Ejemplo
Para los numeros naturales L es la union de
constantes : {0, 1},
funciones : {s, +, },
relaciones : {<}.

s es una funcion unaria, + y son funciones binarias y < es una


relacion binaria.

IIC1253 Logica de Primer Orden 5 / 28


Logica de primer orden: Sintaxis

Las formulas de la logica de primer orden se construyen usando:


! Conectivos logicos: , , , y .
! Parentesis: ( y ).
! Relacion binaria =.
! Variables.
! Cuantificadores: y .

Veamos algunos ejemplos, antes de introducir formalmente la


sintaxis de la logica de primer orden.

IIC1253 Logica de Primer Orden 6 / 28


Sintaxis de la logica de primer orden: Ejemplos

Ejemplo
Sea L = {0, 1, s, +, , <}.

! 1 = s(0).
Para la igualdad usamos notacion infija: No escribimos
= (1, s(0)).

! x x < s(x).
Usamos notacion infija para funciones y relaciones comunes.

! xy x = y + y .

! xy (s(x) = s(y ) x = y ).

IIC1253 Logica de Primer Orden 7 / 28


Sintaxis de la logica de primer orden: Terminos

Desde ahora en adelante: Suponemos dada una lista infinita de


variables.

Definicion
El conjunto de L-terminos es el menor conjunto que satisface las
siguientes condiciones:
! Cada constante c en L es un L-termino.
! Cada variable x es un L-termino.
! Si t1 , . . ., tn son L-terminos y f es una funcion n-aria en L,
entonces f (t1 , . . . , tn ) es un L-termino.

Ejemplos
0, s(s(s(1))) y s(0) s(x)

IIC1253 Logica de Primer Orden 8 / 28


Sintaxis de la logica de primer orden: Formulas

Definicion
El conjunto de L-formulas es el menor conjunto que satisface las
siguientes condiciones:
! Si t1 y t2 son L-terminos, entonces t1 = t2 es una L-formula.
! Si t1 , . . ., tn son L-terminos y R es una relacion n-aria en L,
entonces R(t1 , . . . , tn ) es una L-formula.
! Si y son L-formulas, entonces (), ( ), ( ),
( ) y ( ) son L-formulas.
! Si es una L-formula y x es una variable, entonces (x ) y
(x ) son L-formulas.

Notacion
t1 = t2 y R(t1 , . . . , tn ) son llamadas formulas atomicas.

IIC1253 Logica de Primer Orden 9 / 28


Induccion en la logica de primer orden

Principio de induccion: Para cada subconjunto A del conjunto de


L-formulas tal que

Caso base : para cada par t1 , t2 de L-terminos, t1 = t2 A


: para cada predicado n-ario R y cada secuencia
de L-terminos t1 , . . ., tn , R(t1 , . . . , tn ) A
Caso inductivo : si , A, entonces () A y ( " ) A,
donde " {, , , }
: si A y x es una variable, entonces (x )
A y (x ) A

se tiene que A es igual al conjunto de L-formulas

IIC1253 Logica de Primer Orden 13 / 28


Logica de primer orden: Semantica

Notacion
Omitimos parentesis si no se produce una ambiguedad.

Es xy x = y + y cierta en L = {0, 1, s, +, , <}?


! Si pensamos en los numeros naturales es falsa.
! Pero L tambien puede usarse como vocabulario para los
numeros reales, y en este conjunto la formula es cierta.

El valor de verdad de una formula depende de la interpretacion


que se da a las constantes, funciones y relaciones.
! Tenemos que introducir la nocion de estructura.

IIC1253 Logica de Primer Orden 14 / 28


Semantica de la logica de primer orden: Estructuras

Una L-estructura interpreta todos los componentes de L en un


dominio.

Definicion
Una L-estructura A contiene:
! Un dominio A no vaco.
! Para cada constante c L, una interpretacion c A A de c.
! Para cada funcion m-aria f L, una interpretacion
f A : Am A de f .
! Para cada relacion n-aria R L, una interpretacion R A An
de R.

Notacion
A = *A, c A , . . . , f A , . . . , R A , . . .+

IIC1253 Logica de Primer Orden 15 / 28


Algunos ejemplos de estructuras

Ejemplo
Los numeros naturales son representados por la estructura:

N = *N, 0N , 1N , s N , +N , N , <N +.

Los numeros reales son representados por la estructura:

R = *R, 0R , 1R , s R , +R , R , <R +.

Ahora podemos decir que N no satisface xy x = y + y y que R


si satisface esta formula.

IIC1253 Logica de Primer Orden 17 / 28


Semantica de la logica de primer orden: Variables libres

Necesitamos introducir la nocion de variable libre.


El conjunto de variables de un L-termino t se define como:
! Si t = c es una constante, entonces V (t) = .
! Si t = x es una variable, entonces V (t) = {x}.
! Si t = f (t1 , . . . , tn ), entonces V (t) = V (t1 ) V (tn ).

Ejemplo
V (f (g (x, y ), s(0))) = V (g (x, y )) V (s(0))
= V (x) V (y ) V (0)
= {x} {y }
= {x, y }

IIC1253 Logica de Primer Orden 18 / 28


Semantica de la logica de primer orden: Variables libres
El conjunto de variables de una L-formula se define como:
! Si = t1 = t2 , entonces V () = V (t1 ) V (t2 ).
! Si = R(t1 , . . . , tn ), entonces V () = V (t1 ) V (tn ).
! Si = (), entonces V () = V ().
! Si = ( " ) (" {, , , }), entonces V () = V () V ().
! Si = (x ) o = (x ), entonces V () = {x} V ().

Ejemplo
V ((x P(x)) (y Q(s(y )))) = V (x P(x)) V (y Q(s(y )))
= {x} V (P(x)) {y } V (Q(s(y )))
= {x} V (x) {y } V (s(y ))
= {x} {x} {y } V (y )
= {x, y }

IIC1253 Logica de Primer Orden 19 / 28


Semantica de la logica de primer orden: Variables libres

Definicion
El conjunto de variables libres de una L-formula se define como:
! Si es una formula atomica, entonces VL() = V ().
! Si = (), entonces VL() = VL().
! Si = ( " ) (" {, , , }), entonces
VL() = VL() VL().
! Si = (x ) o = (x ), entonces VL() = VL() \ {x}.

Variable libre: No aparece cuantificada.

IIC1253 Logica de Primer Orden 20 / 28


Semantica de la logica de primer orden: Variables libres

Ejemplo
VL(P(x) y Q(x, y )) = {x}
VL(P(z) z R(z)) = {z}

Notacion
! Si es una formula, entonces usamos (x1 , . . . , xk ) para
indicar que VL() = {x1 , . . . , xk }.
! Decimos que es una oracion si VL() = .

IIC1253 Logica de Primer Orden 21 / 28


Semantica de la logica de primer orden: Definicion

Si una formula contiene variables libres, entonces no podemos


decir directamente que es verdadera o falsa en una estructura.
! Es x < s(0) cierta en N?

El valor de verdad de una formula con variables libres depende de


los valores dados a estas variables.
! Si x es 0, entonces x < s(0) es cierta en N. Pero si x es 1,
entonces es falsa.

IIC1253 Logica de Primer Orden 22 / 28


Semantica de la logica de primer orden: Definicion

Dada una estructura A con dominio A, una asignacion es una


funcion que asigna a cada variable un valor en A.

Extendemos para dar valores a los terminos:


! Si t = c es una constante, entonces (t) = c A .
! Si t = x es una variable, entonces (t) = (x).
! Si t = f (t1 , . . . , tn ), entonces (t) = f A ((t1 ), . . . , (tn )).

IIC1253 Logica de Primer Orden 23 / 28


Semantica de la logica de primer orden: Definicion

Ejemplo
Si (x) = 7 es una asignacion para N, entonces

(s(1) s(x)) = (s(1)) N (s(x))


= s N ((1)) N s N ((x))
= s N (1N ) N s N ((x))
= 2 N s N (7)
= 2 N 8
= 16

Por simplicidad, usamos en lugar de .

IIC1253 Logica de Primer Orden 24 / 28


Semantica de la logica de primer orden: Definicion

Vamos a definir la semantica de la logica de primer orden.

Dado: Un vocabulario L, una L-estructura A con dominio A y una


asignacion para A.

Definicion
Decimos que (A, ) satisface una L-formula , denotado como
(A, ) |= , si y solo si:
! = t1 = t2 y (t1 ) = (t2 )
! = R(t1 , . . . , tn ) y ((t1 ), . . . , (tn )) R A
! = () y no es cierto que (A, ) |=
! = ( ), y (A, ) |= o (A, ) |=

IIC1253 Logica de Primer Orden 25 / 28


Semantica de la logica de primer orden: Definicion

! = ( ), (A, ) |= y (A, ) |=
! = ( ), y (A, ) .|= o (A, ) |=
! = ( ), y ambos (A, ) |= , (A, ) |= , o ambos
(A, ) .|= , (A, ) .|=
! = (x ) y existe a A tal que (A, [x/a]) |= , donde
"
a y =x
[x/a](y ) =
(y ) y .= x

! = (x ) y para todo a A se tiene que (A, [x/a]) |=

Nota: Si es una oracion, podemos decir que A |= .

IIC1253 Logica de Primer Orden 26 / 28


Formulas satisfacibles

Decimos que una L-formula es satisfacible si existe una


L-estructura A y una asignacion para A tal que (A, ) |= .
! Si es oracion, entonces es satisfacible si existe A tal que
A |= .

Si una formula no es satisfacible, entonces decimos que es una


contradiccion.
Ejercicio
Construya formulas satisfacibles y otras contradictorias.

IIC1253 Logica de Primer Orden 29 / 35


Formulas validas

Decimos que una L-formula es valida si para toda L-estructura


A y toda asignacion para A se tiene que (A, ) |= .
! Si es oracion, entonces es valida si para todo A se tiene
que A |= .

Ejercicio
Construya formulas validas.

IIC1253 Logica de Primer Orden 30 / 35


Equivalencia de formulas

Definicion
Dos L-formulas , son equivalentes, denotado como , si para
toda L-estructura A y todo asignacion para A, se tiene que:

(A, ) |= si y solo si (A, ) |=

Si en la definicion anterior , son oraciones, entonces son equivalentes


si para toda L-estructura A:

A |= si y solo si A |=

IIC1253 Logica de Primer Orden 31 / 35


Algunas equivalencias utiles

Todas las equivalencias para la logica proposicional siguen siendo


validas en este contexto.
! doble negacion, leyes de De Morgan, conmutatividad de y ,
asociatividad de y , distributividad de sobre y de sobre ,
implicancia, doble implicancia, . . .

Tenemos nuevas equivalencias utiles:

x (x )
x (x )
x ( ) (x ) (x )
x ( ) (x ) (x )

IIC1253 Logica de Primer Orden 32 / 35


La nocion de consecuencia logica

Sea un conjunto de L-oraciones. Una estructura A satisface si para


cada se tiene que A |= .
Notacion: A |=

Definicion
Una L-oracion es consecuencia logica de un conjunto de L-oraciones
si para cada L-estructura A:

si A |= , entonces A |=

Notacion: |=

IIC1253 Logica de Primer Orden 34 / 35


4. Teora de Conjuntos

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Teora de Conjuntos

I Un conjunto es una coleccion de elementos. Un elemento


puede pertenecer a un conjunto o no.
I Un conjunto A puede definirse por extension, es decir,
enumerando sus elementos explcitamente.

Ejemplo
Definimos el siguiente conjunto por extension:

A = {1, 2, 3}.

Gonzalo Daz Matematicas Discretas 3 / 18


I Un conjunto se puede definir por comprension.
Notacion: Definimos un conjunto A por comprension de la
siguiente forma:
A = {x U | P(x)} .
Lease: A es el conjunto formado por los elementos x en U, tales
que P(x). Aqui, U representa un conjunto universo.

Entonces, dada la definicion anterior, la siguiente proposicion es


verdadera:
x(x A P(x)).

Gonzalo Daz Matematicas Discretas 4 / 18


Ejemplo
A = {x N | m N(2m = x)}

Definicion
Dados dos conjuntos A y B, A es subconjunto de B (A B) si y
solo si:
x(x A x B).

Ejercicio
Demuestre que A B, dado lo siguiente:

A = {m Z | r Z(m = 6r + 12)} ,
B = {n Z | s Z(n = 3s)} ,

Gonzalo Daz Matematicas Discretas 5 / 18


Definicion
Dos conjuntos A y B son iguales si y solo si A B y B A. Se
escribe A = B.
Pregunta: Que propiedades tiene la siguiente proposicion?

A = B (A B) (A B).

Ejercicio
Demuestre que los siguientes conjuntos son iguales:

A = {m Z | a Z(m = 2a)} ,
B = {n Z | b Z(n = 2b 2)} ,

Gonzalo Daz Matematicas Discretas 6 / 18


Definicion
Definimos el conjunto vaco como el conjunto que no tiene
elementos. Por extension:

= {} .

Ejercicio
I Dado un conjunto A, determine si A.
I Dado un conjunto A, determine si A A.

Gonzalo Daz Matematicas Discretas 8 / 18


Operaciones sobre conjuntos

Definicion
Dados dos conjuntos A y B, definimos los siguientes conjuntos:
I El conjunto union:

A B = {x | x A x B} ,

I El conjunto interseccion:

A B = {x | x A x B} ,

I El conjunto diferencia:

A B = A\B = {x | x A x 6 B} .

Gonzalo Daz Matematicas Discretas 10 / 18


Operaciones sobre conjuntos

Definicion
Dados dos conjuntos A y B, definimos el siguiente conjunto:
I El conjunto potencia:

P(A) = {x | x A} .

Ejercicio
Dado A = {1, {2, 3} , 4}, escriba P(A).

Gonzalo Daz Matematicas Discretas 11 / 18


Definicion
Un universo U es un conjunto dentro del cual enmarcamos una
discusion. En este caso, se asume que todos los elementos
pertenecen a U.

Definicion
Dado un universo U y un conjunto A (entonces A U), definimos
el conjunto complemento de A:

Ac = {x U | x 6 A} ,

Gonzalo Daz Matematicas Discretas 12 / 18


Diagramas de Venn

B A AB

AB Ac

Gonzalo Daz Matematicas Discretas 13 / 18


Leyes de la Teora de Conjuntos

A continuacion vemos una serie de propiedades de las operaciones


entre conjuntos:

Teorema
Dado un universo U, tenemos la ley del doble complemento:

(Ac )c = A.

Teorema
Las leyes de Morgan:

(A B)c = Ac B c ,
(A B)c = Ac B c .

Gonzalo Daz Matematicas Discretas 14 / 18


Teorema
Las leyes de conmutatividad:

A B = B A,
A B = B A.

Teorema
Las leyes de asociatividad:

A (B C ) = (A B) C ,
A (B C ) = (A B) C .

Gonzalo Daz Matematicas Discretas 15 / 18


Teorema
Las leyes de distributividad:

A (B C ) = (A B) (A C ),
A (B C ) = (A B) (A C ).

Teorema
Las leyes de idempotencia:

A A = A,
A A = A.

Gonzalo Daz Matematicas Discretas 16 / 18


Teorema
Las leyes de elemento neutro:

A = A,
A U = A.

Teorema
Las leyes de elemento inverso:

A Ac = U,
A Ac = .

Gonzalo Daz Matematicas Discretas 17 / 18


Teorema
Las leyes de dominacion:

A U = U,
A = .

Teorema
Las leyes de absorcion:

A (A B) = A,
A (A B) = A.

Gonzalo Daz Matematicas Discretas 18 / 18


Definicion
Dos conjuntos A y B se dicen disjuntos ssi A B = .

Definicion
Los conjuntos A1 , . . . , An se dicen mutuamente disjuntos ssi:

Ai Aj = i 6= j.

Definicion
Sea P = {A1 , . . . , An } un conjunto de conjuntos no-vacos y sea A
un conjunto cualquiera. P es una particion A ssi:
I A1 , . . . , An son mutuamente disjuntos,
S
I A = ni=1 Ai .

Gonzalo Daz Matematicas Discretas 4 / 17


5. Relaciones

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Par ordenado

Queremos definir un par ordenado de la forma (a, b). Dos pares


ordenados (a, b) y (c, d) deberan ser iguales ssi (a = c) (b = d).

Definicion
Un par ordenado (a, b) es un conjunto:

(a, b) = {{a} , {a, b}} .

Teorema
Dos pares ordenados p = (a, b) y q = (c, d) son iguales ssi
(a = c) (b = d)

Gonzalo Daz Matematicas Discretas 6 / 17


Ejercicio
Si definimos un par ordenado de la siguiente forma:
(a, b) = {a, {b}}, muestre que no se cumple el teorema anterior.

Definicion
Una n-tupla se define de la siguiente forma:

(a1 , a2 , . . . , an ) = ((a1 , a2 ), a3 ), . . .), an ).

Gonzalo Daz Matematicas Discretas 7 / 17


Definicion
Dados los conjuntos A y B, se define el producto cartesiano
como el siguiente conjunto:

A B = {(a, b) | (a A) (b B)} .

Definicion
Dados los conjuntos A1 , . . . , An , se define el producto cartesiano
n-dimensional:

A1 . . . An = {(a1 , . . . , an ) | (a1 A1 ) . . . (an An )} .

Gonzalo Daz Matematicas Discretas 8 / 17


Relaciones

Definicion
Una relacion binaria R sobre los conjuntos A y B es un
subconjunto de A B.

Ejemplo
Considerando N y E del ejemplo anterior, si para cada alumno de
este curso definimos el par (nombre, edad), el conjunto de estos
pares ordenados es una relacion sobre N y E . Llamemos
ALUMNOS a esta relacion.

Gonzalo Daz Matematicas Discretas 10 / 17


Definicion
Dados los conjuntos A1 , . . . , An , una relacion n-aria R sobre
A1 , . . . , An es un subconjunto de A1 . . . An .

Ejemplo
Podemos redefinir la operacion + como una relacion 3-aria llamada
R+ sobre N, N, N, de la siguiente forma. Sean a, b, c N,

(a, b, c) R+ a + b = c +(a, b) = c.

Asi, la relacion R+ contiene 3-tuplas como:

R+ = {(1, 0, 1), (3, 15, 18), (0, 109, 109), . . .} ,

y no contiene tuplas como:

(1, 0, 16), (5, 15, 18) 6 R+ .

Gonzalo Daz Matematicas Discretas 11 / 17


Relaciones binarias
Dado: conjunto A

R es una relacion binaria sobre A si R A A.


I Para indicar que a, b 2 A estan relacionados a traves de R usamos
las notaciones: R(a, b) y aRb

Ejemplo
Si A = N, las siguientes son relaciones binarias sobre A:

R1 = {(i, j) 2 N N | i = j}
R2 = {(i, j) 2 N N | i < j}

En este captulo solo vamos a considerar relaciones binarias, usamos el


termino relacion para referirnos a ellas.

IIC1253 Relaciones 2 / 32
Propiedades de las relaciones

Definicion
Una relacion R sobre A es:
I Refleja: Para cada a 2 A, se tiene R(a, a)
I Irrefleja: Para cada a 2 A, no se tiene R(a, a)

Ejercicio
De ejemplos de relaciones reflejas e irreflejas sobre N.

IIC1253 Relaciones 3 / 32
Propiedades de las relaciones

Definicion
Una relacion R sobre A es:
I Simetrica: Para cada a, b 2 A, si R(a, b) entonces R(b, a)
I Asimetrica: Para cada a, b 2 A, si R(a, b) entonces no es
cierto R(b, a)
I Antisimetrica: Para cada a, b 2 A, si R(a, b) y R(b, a),
entonces a = b

Ejercicio
De ejemplos de relaciones simetricas, asimetricas y antisimetricas
sobre N.

IIC1253 Relaciones 4 / 32
Propiedades de las relaciones

Definicion
Una relacion R sobre A es:
I Transitiva: Para cada a, b, c 2 A, si R(a, b) y R(b, c),
entonces R(a, c)
I Conexa: Para cada a, b 2 A, se tiene R(a, b) o R(b, a)

Ejercicio
De ejemplos de relaciones transitivas y conexas sobre N.

IIC1253 Relaciones 5 / 32
Relaciones de equivalencia

Definicion
Una relacion R sobre A es una relacion de equivalencia si R es
refleja, simetrica y transitiva.

Ejemplo
Sea A = N N y una relacion definida de la siguiente forma:

(a, b) (c, d) , a + d = c + b

Demuestre que es una relacion de equivalencia.

IIC1253 Relaciones 7 / 32
Clases de equivalencia

Definicion
Dada una relacion de equivalencia R sobre A y un elemento b 2 A,
la clase de equivalencia de b bajo R se define como:

[b]R = {c 2 A | R(b, c)}

Ejercicio
Suponga que es definida como en la transparencia anterior. Para
cada (a, b) 2 A, que representa [(a, b)] ?

IIC1253 Relaciones 8 / 32
Ordenes parciales y totales

Dado: Relacion R sobre un conjunto A

Definicion
R es un orden parcial sobre A si R es refleja, antisimetrica y transitiva. Si
R es ademas conexa, entonces en un orden total sobre A.

Ejercicio
De ejemplos de ordenes parciales y totales.

IIC1253 Relaciones 17 / 32
6. Funciones y Cardinalidad

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Captulo 2: Conjuntos, relaciones y funciones.

Recordando

Definicion
Una relacion f A B es llamada una funcion de A en B
(denotada f : A B) si, dado x A existe un unico y B tal
que (x, y ) f . (Denotamos por f (x) al unico y B tal que
(x, y ) f ).

Al conjunto A solemos llamarle dominio de f , al conjunto


{f (x) : x A} solemos llamarle el recorrido de f . Ademas, note
que f = g ssi x A : f (x) = g (x)

Nicolas Rivera Matematicas Discretas


Captulo 2: Conjuntos, relaciones y funciones.

Mas recuerdos

Una funcion f : A B es
Inyectiva (1-1) si, dados x, y A,

f (x) = f (y ) x = y .

Epiyectiva (sobre) si dado y B existe x A tal que


f (x) = y .
Biyectiva si es inyectiva y epiyectiva.
f : R R definida por f (x) = e x es inyectiva. g : R R definida
por g (x) = x 3 + x 2 es epiyectiva. h : R R definida poe
h(x) = x 3 es biyectiva.

Nicolas Rivera Matematicas Discretas


Cardinalidad

Definicion
Dos conjuntos A y B tienen igual cardinalidad (o bien son
equinumerosos) si y solo si existe una biyeccion entre ellos,
i.e. existe una funcion f : A B que es uno-a-uno y sobre.

Se define la relacion de equinumerosidad entre conjuntos de la


siguiente forma: A B si y solo si A y B tienen la misma
cardinalidad.

Teorema
La relacion es una relacion de equivalencia.

Gonzalo Daz Matematicas Discretas 4/7


Definicion
Un conjunto A se dice finito si y solo si existe un natural n tal que
A n.

Alternativamente, A se dice finito si y solo si existe un n N tal


que el conjunto {1, 2, . . . , n} es equinumeroso con A.

Definicion
Un conjunto A que no es finito se dice infinito.

Gonzalo Daz Matematicas Discretas 6/7


Definicion
Un conjunto equinumeroso con N se dice numerable.

Ejemplo
El conjunto P de numeros naturales pares es numerable. Considere
la funcion f : N P:
f (n) = 2n
Se debe demostrar que f es una biyeccion.

Gonzalo Daz Matematicas Discretas 7/7


Un teorema mas general

Definicion
Un conjunto A es menos numeroso que un conjunto B si:
I existe una funcion inyectiva f : A ! B; y
I no existe una biyeccion g : A ! B

Ejemplo
En las transparencias anteriores demostramos que N es menos
numeroso que R.

IIC1253 Cardinalidad 17 / 25
Teorema de Cantor
Sea A un conjunto cualquiera. No existe una biyeccion entre A y
P(A).

Ejercicio
Demuestre el Teorema de Cantor.

Gonzalo Daz Matematicas Discretas 9/9


7. Teora de numeros y Criptografa

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Divisibilidad

Definicion
Dados dos numeros naturales, d, n N, d | n (d divide a n) si y
solo si:
k N(n = dk).

Teorema
Dado cualquier entero n y entero positivo d, existen enteros unicos
q y r tales que
n = dq + r 0 r < d.
A q se le dice el cuociente y a r se le dice el resto.

Gonzalo Daz Matematicas Discretas 9 / 18


Definicion
Sea n Z y d N {0}. Se define n % d o bien n mod d como
el resto de la division entre n y d.

Ejemplo
5 % 3 = 2 ya que 5 = 3k + 2 (con k = 1).

Gonzalo Daz Matematicas Discretas 10 / 18


Congruencia Modulo n

Definicion
Sean a, b, n Z con n > 1. a mod n b (a y b soncongruentes
modulo n) si y solo si:

a mod n = b mod n.

Definicion
En la definicion anterior se habla de mod n como un operador.
Ahora definimos un predicado asociado:

mod n (a, b) a mod n b,

y una relacion binaria, mod n Z Z:

(a, b) mod n a mod n b,

Gonzalo Daz Matematicas Discretas 11 / 18


Teorema
Sean a, b, n Z con n > 1. Las siguientes afirmaciones son
equivalentes:
I a mod n b,
I n | (a b),
I k Z(a = b + kn),
I a y b tienen el mismo resto r cuando son divididos por n.
I a mod n = b mod n.

Ejemplo
Sea n = 7. Se cumple, entonces:

5 mod n 12 7 | (5 12) k(5 = 12 + 7k)


5 y 12 tienen mismo resto al dividirse por 7
5 mod 7 = 12 mod 7.

Gonzalo Daz Matematicas Discretas 12 / 18


Teorema
La congruencia modulo n, mod n , es una relacion de equivalencia.
Notacion: Sea n Z con n > 1. Dado un a Z, la clase de
equivalencia de a se escribe [a]n :

[a]n = [a]mod n ,

es decir,
[a]n = {m Z | m mod n a} .

Gonzalo Daz Matematicas Discretas 13 / 18


Definicion
Un entero d es una combinacion lineal de los enteros a y b si y
solo si: 
s, t Z d = as + bt .

Definicion
Un entero d es el maximo comun divisor de a y b
(d = mcd(a, b)) ssi:
I d es divisor de a y de b (a mod d = b mod d = 0).
I c Z, si c es divisor de a y de b, entonces c d.

Teorema
 
a, b Z {0} d = mcd(a, b) s, t Z(d = as + bt) .

Con palabras: a, b enteros, distintos de cero, si d = mcd(a, b)


entonces existen enteros s y t tales que d = as + bt.
Gonzalo Daz Matematicas Discretas 2 / 12
Teorema
 
a, b Z {0} d = mcd(a, b) s, t Z(d = as + bt) .

Finalmente, c = d = mcd(a, b) = as + bt.

Lema
Dados a, b Z distintos de cero, y si q y r son enteros que
cumplen a = bq + r , entonces:

mcd(a, b) = mcd(b, r ).

Ejercicio
Estudiar la desmostracion (Lema 4.8.2, Epp).

Gonzalo Daz Matematicas Discretas 6 / 12


Calculo de maximo comun divisor

De lo anterior, concluimos la siguiente identidad:


!
a b=0
MCD(a, b) =
MCD(b, a mod b) b > 0

Podemos usar esta identidad para generar un algoritmos recursivo para


calcular el maximo comun divisor.
! Este algoritmo puede ser extendido para calcular s y t tales que
MCD(a, b) = s a + t b
! Vamos a usar este algoritmo para calcular los coeficiente d y e
usados en RSA.

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 28 / 38


Inverso modular

Definicion
b es inverso de a en modulo n si a b 1 mod n

Para el caso de RSA: d es inverso de e en modulo (N)


! En el ejemplo: 37 es inverso de 13 en modulo 60

Todo numero tiene inverso modular?


! No: 2 no tiene inverso en modulo 4

Bajo que condiciones a tiene inverso en modulo n?


! Como podemos calcular este inverso?

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 34 / 38


Inverso modular: Existencia

Teorema
a tiene inverso en modulo n si y solo si MCD(a, n) = 1

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 35 / 38


Criptografa
Es el estudio de metodos para enviar y recibir mensajes en privado.
Algoritmo
Cifrado Cesar (Caesar cipher): un ejemplo de algoritmo
criptografico.

Input: Letra M {0, . . . , 26}


C (M + 3) mod 26

Ejemplo
Dado el texto holamundo, interpretado como 9 mensajes
consecutivos, tendremos:

M[0..9] = krodpxqgr.
Notacion: Aunque un mensaje consista en muchos mensajes
consecutivos, se denotara el conjunto como un solo mensaje: M.
Gonzalo Daz Matematicas Discretas 2 / 17
En criptografa se habla de un agente A que desea comuncarse con
un agente B. Usualmente a A se le conoce tambien como Alice y a
B como Bob.
Ejemplo
Alice desea enviar el mensaje M = holamundo a Bob. Para eso,
Alice selecciona el numero d = 3, tal que:

C = (M + d) mod 26.

Con eso, Alice obtiene el texto C = krodpxqgr.


Nota: Aqu se abusa de la notacion, usando M y C tanto para
cada letra individual como para el texto completo.

Gonzalo Daz Matematicas Discretas 3 / 17


Definiciones informales
Considerando el ejemplo anterior, definimos lo siguiente:
I Al texto M se le conoce como texto plano (plaintext).
I Al texto C se le conoce como texto cifrado (ciphertext).
I A la variable d se le conoce como llave (key).

Ejemplo (continuacion)
Bob recibe el texto cifrado C = krodpxqgr.

C = (M + d) mod 26.

Con eso, Alice obtiene el texto C = krodpxqgr

Gonzalo Daz Matematicas Discretas 4 / 17


I Bob recibe el texto cifrado C = krodpxqgr. Que necesita
para recuperar el texto plano?

Gonzalo Daz Matematicas Discretas 5 / 17


Ejemplo (continuacion)
Bob recibe el texto cifrado C = krodpxqgr. Usa la llave d para
obtener el mensaje original:

M = (C d) mod 26.

Con eso, Alice obtiene el texto C = krodpxqgr

Ejercicio
Demuestre que para cualquier mensaje cifrado
C = (M + d) mod 26, el mesaje recuperado
M 0 = (C d) mod 26 coincide con el mensaje original: M 0 = M.

Gonzalo Daz Matematicas Discretas 6 / 17


I Como puede Alice hacerle llegar a Bob la llave?

Gonzalo Daz Matematicas Discretas 7 / 17


Definicion informal
Una llave publica es una llave que debe ser compartida para ser
usada.
Ademas de Alice y Bob, introducimos un tercer agente al
problema: Eve (del ingles eavesdropper, que es una persona que
escucha una conversacion ajena).

En principio, debemos suponer que Eve tiene acceso a toda la


informacion que es compartida pubilcamente. En el caso del
cifrado de Cesar, esto incluye el texto cifrado C y la llave publica d.

Gonzalo Daz Matematicas Discretas 8 / 17


I Suponiendo que Eve no tiene la llave d. Puede recuperar el
texto plano M?

Gonzalo Daz Matematicas Discretas 9 / 17


Si Eve tiene un texto cifrado suficientemente largo, puede analizar
la frecuencia de las letras (imagen tomada de
http://en.wikipedia.org/wiki/Caesar cipher):

Gonzalo Daz Matematicas Discretas 10 / 17


Motivacion: Criptografa de clave publica

Se tiene dos funciones E y D:


! E sirve para encriptar y D para desencriptar: D(E (M)) = M
! E no puede usarse para desencriptar: E (E (M)) != M
! E y D estan relacionadas, pero es difcil descubrir D a partir
de E

Vamos a ver un ejemplo de este tipo de sistemas: RSA

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 2 / 38


El sistema criptografico RSA

Algoritmo:
1. Adivine dos numeros primos distintos P y Q
2. Sean N = P Q y (N) = (P 1) (Q 1)
3. Sean e y d dos numeros tales que (e d) mod (N) = 1
4. Entonces:
E (M) = M e mod N
D(M) = M d mod N

Decimos que (e, N) es la clave publica y (d, N) es la clave privada

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 3 / 38


El sistema criptografico RSA

Ejemplo
Sean P = 7 y Q = 11
! Se tiene que N = 77 y (N) = 60

Sean e = 13 y d = 37
! Se tiene que (13 37) mod 60 = 1

Entonces: E (M) = M 13 mod 77 y D(M) = M 37 mod 77

Para M = 5:
E (5) = 513 mod 77 = 26
D(E (5)) = 2637 mod 77 = 5

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 4 / 38


Por que funciona RSA?

Que propiedades debemos demostrar que son ciertas?


! D(E (M)) = M para todo M {0, . . . , N 1}

Que problemas debemos demostrar que pueden ser resueltos de manera


eficiente?
! Generar primos P y Q: Verificar si un numero es primo
! Generar numeros e y d tales que (e d) mod (N) = 1
! Calcular funciones E y D

Que problemas no pueden ser resueltos de manera eficiente?


! Dado (e, N) calcular d: Encontrar los divisores de N

Vamos a estudiar algunos conceptos de Teora de Numeros necesarios para


mostrar que RSA funciona y puede ser implementado.

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 5 / 38


RSA funciona correctamente
Sean E y D construidas como fue mencionado en las transparencias
anteriores.
! N = P Q, E (M) = M e mod N y D(M) = M d mod N

Teorema (Rivest-Shamir-Adleman)
Para cada M {0, . . . , N 1}, se tiene que D(E (M)) = M.

Demostracion: Sabemos que

D(E (M)) = (M e mod N)d mod N


= (M e )d mod N
= M ed mod N

Por lo tanto, tenemos que demostrar que M ed M mod N

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 16 / 38


RSA funciona correctamente: Demostracion

Sabemos que e d 1 mod (N)


! Por lo tanto: e d = k (N) + 1

Tenemos que demostrar que M k(N)+1 M mod N


! El siguiente lema es fundamental para la demostracion

Lema
M k(N)+1 M mod P y M k(N)+1 M mod Q

Demostracion: Primero suponemos que P|M.

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 17 / 38


RSA funciona correctamente: Demostracion

Entonces: M k(N)+1 mod P = (M mod P)k(N)+1 mod P


= 0k(N)+1 mod P
= 0

Por lo tanto: M k(N)+1 M mod P

En segundo lugar, suponemos que P $ |M.


! Sea R = M mod P

Dado que R {1, . . . , P 1}, por teorema de Fermat:


R P1 1 mod P

Por lo tanto, dado que R M mod P:


M P1 1 mod P
IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 18 / 38
RSA funciona correctamente: Demostracion

De esto concluimos que:

M k(N)+1 mod N = ((M P1 )k(Q1) M) mod P


= ((M P1 mod P)k(Q1) M) mod P
= (1k(Q1) M) mod P
= M mod P

Concluimos que M k(N)+1 M mod P


! De la misma forma se demuestra que M k(N)+1
M mod Q

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 19 / 38


RSA funciona correctamente: Demostracion

Del lema concluimos que:


M k(N)+1 M = P
M k(N)+1 M = Q

Por lo tanto: P = Q

Entonces, dado que P y Q son primos distintos tenemos que P|


! = P

Concluimos que M k(N)+1 M = P Q


! Vale decir: M k(N)+1 M mod N

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 20 / 38


RSA: Autentificacion y firma digitales
Escenario usual para RSA:
EB EA

M ! = EB (M)
A B

EA , DA EB , DB

EA , EB

Dos preguntas a responder:


! Autentificacion: Como puede saber A si EB es efectivamente la clave
publica de B?
! Firma digital: Como puede saber B si el mensaje M ! fue efectivamente
enviado por A?

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 21 / 38


RSA: Autentificacion y firma digitales

Una propiedad fundamental de RSA: E (D(M)) = M


! Usamos esta propiedad para resolver los problemas de
autentificacion y firma digital

Autentificacion: Suponemos que existe una organizacion


certificadora I
! Todos tienen acceso seguro a EI

Como puede ser implementada la organizacion certificadora?


! Por que podemos suponer que tenemos acceso seguro a EI ?

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 22 / 38


RSA: Autentificacion

Organizacion certificadora funciona de la siguiente forma:

EI CertificadoB = DI (EB + datos de B)

A B
CertificadoB

EA , DA EB , DB

Tenemos entonces el siguiente protocolo:


! I entrega a B un certificado CertificadoB
! Para saber la clave publica de B (y los datos relevantes de B), A
utiliza EI (CertificadoB )

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 23 / 38


RSA: Firma digital

Envo de mensajes firmados: A enva tanto el mensaje M ! como una


firma F :

A B
M ! = EB (M), F = DA (M ! )

EA , DA EB , DB

B recibe M ! y F :
! Verificacion: Es cierto que M ! = EA (M ! )?
! Mensaje a leer: DB (M ! )

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 24 / 38


Calculo de exponentes e y d en RSA

Recuerde que en RSA: N = P Q y (N) = (P 1) (Q 1)


! Tenemos que generar e y d tales que e d 1 mod (N)

Tenemos los ingredientes necesarios para generar e y d:


genere al azar un numero e
while MCD(e, (N)) > 1 do
genere al azar un numero e
calcule s y t tales que 1 = s (N) + t e
sea d {0, . . . , (N) 1} tal que d t mod (N)
return (e, d)

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 37 / 38


RSA: Implementacion (continuacion)

Como mencionamos anteriormente, para poder implementar RSA


necesitamos algoritmos eficientes para los siguientes problemas:
(1) Generar primos P y Q
(2) Generar numeros e y d tales que (e d) mod (N) = 1
(3) Calcular funciones E y D

Ya resolvimos (2) y (3), nos falta resolver (1).


! Lamentablemente, esto esta fuera del alcance de este curso ...

IIC1253 Una introduccion a la teora de numeros (y a la criptografa) 38 / 38


8. Grafos

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Definiciones
Un grafo no dirigido (o simplemente un grafo) G es un par
(V , E ) donde V es un conjunto (cuyos elementos son
llamados vertices) y E es otro conjunto (cuyos elementos son
llamados aristas) y los elementos de E son de la forma
e = {x, y } donde x, y V .
Una arista de la forma e = {x, x} es llamado un loop. Un
grafo sin loop es llamado un grafo simple.

En este curso asumiremos que todos los grafos son simples, a


menos que se indique lo contrario (por lo tanto grafo significa
grafo no dirigido y simple). Tambien asumiremos que todo grafo es
finito, es decir la cardinalidad de V y de E es finita. Ademas
asumiremos que V 6= .

Nicolas Rivera Matematicas Discretas


Dibujito
Un dibujito ayuda a representar y entender bien las
cosas.V = {1, 2, ..., 50}

Nicolas Rivera Matematicas Discretas


Definiciones
Dos vertices x e y son adyacentes, denotado x y , si
e = {x, y } E , ademas diremos que x e y son los extremos
de la arista e.
Definimos la vecindad de x V , denotada N(x), como

N(x) = {y V : x y },

ademas a |N(x)| le llamamos el grado de x, denotado por


d(x).

Lema: Handshaking Lemma


Dado un grafo G = (V , E ) se tiene que
X
d(x) = 2|E |
xV

Demostracion: Pizarra
Nicolas Rivera Matematicas Discretas
Consecuencias del Lema

El resultado anterior, a pesar de lo simple, tiene algunos resultados


importantes.
Consecuencias del Lema
n(n1)
1 Todo grafo de n vertices puede tener a lo mas 2 aristas.
2 Todo grafo tiene una cantidad par de vertices de grado impar.
3 Un grafo G de n vertices se dice k-regular si todos los vertices
tienen grado k. Un grafo k-regular tiene nk2 aristas.
4 Si G es un grafo k-regular de n vertices entonces nk tiene que
ser par.

Nicolas Rivera Matematicas Discretas


Definiciones
Una caminata es una lista x1 , x2 , ..., xk donde {xi , xi+1 } E
para todo i {1, .., k 1}. Decimos que la caminata empieza
en x1 y termina en xk .
Decimos que x e y estan conectados si existe una caminata
que empieza en x y termina en y . Ademas decimos que cada
vertice esta conectado con el mismo.
Un grafo es conexo si para todo par x, y V estan
conectados. En otro caso se dice disconexo.
Un subgrafo es un subconjunto de un grafo G = (V , E ) es un
grafo G 0 = (V 0 , E 0 ) donde V 0 V y E 0 E para e E 0 se
tiene que e V . Denotamos H G
Una componente conexa H es un subgrafo de G tal que H es
conexo y es maximal, es decir para todo H H 0 G H 0 es
disconexo.

Nicolas Rivera Matematicas Discretas


Definicion
Dado un grafo no dirigido G = (V , E ), un conjunto de vertices
C V es un clique de G ssi u, v C ((u, v ) E ).

Definicion
Dado un grafo G = (V , E ), un conjunto de vertices C V es un
conjunto independiente de G ssi u, v C ((u, v ) 6 E ).

Gonzalo Daz Matematicas Discretas 5 / 11


Definicion
Dado un grafo G = (V , E ), un camino de largo n en G es una
n-tupla c = (u1 , . . . , un ) V n donde para todo 1 i n 1 se
cumple que (ui , ui+1 ) E .

Definicion
Dado un grafo G = (V , E ), un camino simple es un camino
c = (u1 , . . . , un ) para el cual se cumple que:

i, j {1, . . . , n} i 6= j ui 6= uj .

Gonzalo Daz Matematicas Discretas 6 / 11


Definicion
Dado un grafo G = (V , E ), un camino c = (u1 , . . . , un ) es un
ciclo si y solo si u1 = un .

Definicion
Dado un grafo G = (V , E ) y dos nodos u, v V , v es alcanzable
desde u si y solo si existe un camino en G que comienza en u y
termina en v .

Gonzalo Daz Matematicas Discretas 7 / 11


Definicion
Dado un grafo G = (V , E ), una n-coloracion c de G es una
funcion c : V {1, . . . , n} que cumple la siguiente condicion:

u, v V (u, v ) E c(u) 6= c(v ) .

Definicion
un grafo G = (V , E ) se dice n-colorable si existe una n-coloracion
de G .

Gonzalo Daz Matematicas Discretas 8 / 11


Grafos

Mas definiciones
Grafo completo: un grafo en que todos los nodos estan conectados
con todos los demas; equivalentemente, cada par de nodos
esta conectado por una arista; o tambien, cada nodo tiene grado
n 1.
Grafo bipartito: un grafo G = (V, E) cuyos nodos pueden ser
divididos en dos conjuntos disjuntos U y V tales que toda arista en E
conecta a un nodo en U con uno en V ; i.e., U y V son conjuntos
independientes. Un grafo bipartito no tiene ciclos de largo impar, y es
2-coloreable (mas aun, un grafo que no es bipartito no es
2-coloreable).

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Muchas veces, los elementos de V no importan (en realidad en
todo lo que hemos hecho no importa que es V (si es un conjunto
de numero o vacas, da lo mismo). Para formalizar esta idea
definimoslo que es ser isomorfo:
Definicion
Dos grafos G = (V , E ) y G 0 = (V 0 , E 0 ) son isomorfos si existe una
biyeccion f : V V 0 tal que {x, y } E ssi {f (x), f (y )} E 0 .

Demostrar que dos grafos son isomorfos es difcil y en general hay


que dar la biyeccion. Pero lo importante es el concepto de que el
nombre de los vertices no importa para estudiar ciertas
propiedades.
Ejercicio: Muestre que ser isomorfos es relacion de equivalencia.

Nicolas Rivera Matematicas Discretas


Nombres

Algunas clases de isomorfismo importantes.


1 Pn (camino de largo n) es un grafo conexo de n vertices en
que todos los vertices tienen grado 2 excepto dos vertices que
tienen grado 1, llamados extremos.
2 Cn (ciclo de largo n) es un grado de conexo de n vertices en
que todos los vertices tienen grado 2.
3 Kn (Grafo completo de tamano n) es un grafo de n vertices en
que todos los vertices tienen grado n 1.
4 Kn,m (Grafo bipartito completo) Sean V1 y V2 dos conjuntos
disjuntos cardinalidad n y m respectivamente. Kn,m es el grafo
que se forma considerando V = V1 V2 y
E = {{x, y } : x V1 , y V2 }.

Nicolas Rivera Matematicas Discretas


Arboles

Los arboles son importantes en la vida y en las matematicas


discretas.
Definiciones
Un grafo sin ciclos se llama acclico
Sea G un grafo acclico. Si G tiene mas de una componente
se llama un bosque, si G tiene exactamente una componente
se llama un arbol.

Nicolas Rivera Matematicas Discretas


Definicion
Sea T = (V , E ) un arbol. Un vertice v V se dice una hoja si
d(v ) = 1.

lema
Todo arbol T con mas de un arista tiene al menos dos hojas.

Nicolas Rivera Matematicas Discretas


Los arboles pueden ser descritos de muchas formas. Ejercicio:
Suponga que T es un grafo con n vertices. Muestre que las
siguientes proposiciones son todas equivalentes:
1 T es un arbol.
2 T es acclico y tiene exactamente n 1 aristas.
3 T es conexo y tiene n 1 aristas.
4 T es conexo y eliminar cualquier arista desconecta T .
5 Dados dos vertices de T existe exactamente un camino que
los conecta

Nicolas Rivera Matematicas Discretas


Arboles

Definicion: Arbol con raz


Un arbol con raz es un arbol T = (V, E) en que uno de sus vertices
r V se ha distinguido de los demas, y se le llama raz del arbol.

Definiciones
El largo del unico camino entre r y un vertice x se llama profundidad
de x.
El maximo de las profundidades de los vertices de T es la altura del
arbol.
El conjunto de vertices que aparecen en el unico camino de r a x se
llaman ancestros de x.
El padre de x es su ancestro de mayor profundidad. Analogamente, x
es hijo de su padre.

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Arboles

Definicion: Arbol binario


Un arbol con raz T = (V, E) es un arbol binario si todo vertice tiene
grado a lo mas 3, o equivalentemente, si todo vertice tiene a los mas 2
hijos. Si todo vertice que no es hoja tiene exactamente 2 hijos, es un arbol
binario completo.

Teorema
Un arbol binario de altura h tiene a lo mas 2h hojas.
Un arbol binario completo de altura h tiene exactamente 2h hojas.

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


9. Analisis de algoritmos

Gabriel Dieguez Franzani Apuntes IIC1253 - Matematicas Discretas


Captulo 4.

Que es el Analisis de Algoritmos?


Es una disciplina de la Ciencia de la Computacion que tiene
basicamene dos objetivos:
Entender porque los algoritmos terminan y al final de su
ejecucion obtenemos el resultado que decian hacer (correcion)
Estimar la cantidad de recursos que el algoritmo necesita para
su ejecucion. (complejidad)

Nicolas Rivera Matematicas Discretas


Captulo 4.

Por que es importante el Analisis de Algoritmos?


porque nos ayuda a entender bien los algoritmos para poder
reutilizarlos parcial o totalmente.
porque nos sirve para saber que mejorar de un algoritmo o
como implementarlo de forma mas eficiente.

Nicolas Rivera Matematicas Discretas


Un programa o algoritmo tiene:
I Precondiciones: Representan el input del programa.
I Postcondiciones: Representan el output del programa.

Ejemplo
Para un programa que multiplica dos numeros, podriamos tener:
I Pre: m, n N.
I Post: p = mn.

Gonzalo Daz Matematicas Discretas 2/9


Correccion de algoritmos

Para demostrar que un algoritmo es correcto, se deben demostrar


dos cosas:
I Que el algoritmo se detiene.
I Que la ejecucion del algoritmo causa que las postcondiciones
sean verdaderas.

Gonzalo Daz Matematicas Discretas 4/9


Correccion de un loop

while( G )
cuerpo del loop
end while

Definicion
Para un loop, se define la invariante del loop I (n) como un
predicado que es verdadero en cada paso de la iteracion.

Definicion
Para un loop, se define la condicion del loop G como un predicado
que debe ser verdadero para ejecutar la siguiente iteracion.

Gonzalo Daz Matematicas Discretas 5/9


Correccion de un loop

La correccion de un while se hace por induccion:


I Propiedad de base: La precondicion del loop debe implicar
que I (0) es verdadero.
I Propiedad inductiva: Para todo natural k > 0, si G y I (k)
son verdaderos antes de la iteracion, entonces I (k + 1) es
verdadero despues de la iteracion.
I Termino finito: Existe un k para el cual G es falso.
I Correccion: Inmediatamente despues de terminado el loop
(G es falso), para k = N si I (N) es verdadero, entonces las
postcondiciones son verdaderas.

Gonzalo Daz Matematicas Discretas 6/9


Ejercicio
Sin usar el operador producto, escriba un algoritmo que multiplica
dos numeros naturales:
I Pre: n, m N.
I Post: p = nm.
Luego, demuestre que el algoritmo se detiene y que es correcto.
Respuesta: Consideramos el siguiente algoritmo:

i 0, p 0
while (i 6= m)
p p+n
i i +1
end while

Gonzalo Daz Matematicas Discretas 7/9


i 0, p 0
while (i 6= m)
p p+n
i i +1
end while

Ahora, definimos la invariante del loop I (k) : (i = k) (p = kn).


Propiedad base: I (0) : (i = 0) (p = 0) es verdadero.
Propiedad inductiva: Debemos demostrar que si G I (k) es
verdadero al iniciar una iteracion, entonces (k + 1) es verdadero
despues de la iteracion.
Sabemos que i 6= m, p = kn y i = k.
Hacemos:

p p + n = kn + n = (k + 1)n,
i i + 1 = k + 1.

Gonzalo Daz Matematicas Discretas 8/9


Complejidad de un algoritmo

Definicion
Dado un algoritmo A se define la complejidad de A como una
funcion TA : N N. La funcion TA (n) recibe el tamano n del
input y retorna la cantidad de pasos que debe realizar A para
terminar, en el peor caso.
Nota: Usualmente no es importante la forma especifica de la
funcion TA , sino que el conjunto asintotico en el que esta.

Gonzalo Daz Matematicas Discretas 3 / 11


Notacion asintotica

En muchos casos, nos interesa conocer el orden de un algoritmo en lugar


de su complejidad exacta.
I Queremos decir que un algoritmo es lineal o cuadratico, en lugar de
decir que su complejidad es 3n2 + 17n + 22

Vamos a desarrollar notacion para hablar del orden de un algoritmo.

Vamos a considerar funciones de la forma f : N ! R+


0 , donde
R+ = {r 2 R | r > 0} y R+0 = R +
[ {0}
I Incluyen a las funciones definidas en las transparencias anteriores, y
tambien sirven para modelar el tiempo de ejecucion de un algoritmo

IIC1253 Analisis de Algoritmos 5 / 20


La notacion O(f )

Sea f : N ! R+
0

Definicion
O(f ) = {g : N ! R+ +
0 | (9c 2 R )(9n0 2 N)
(8n n0 ) (g (n) c f (n))}

Ejercicio
Demuestre que 3n2 + 17n + 22 2 O(n2 )

IIC1253 Analisis de Algoritmos 6 / 20


Las notaciones (f ) y (f )

Definicion
(f ) = {g : N ! R+ +
0 | (9c 2 R )(9n0 2 N)
(8n n0 ) (c f (n) g (n))}
(f ) = O(f ) \ (f )

Ejercicios
1. Demuestre que 3n2 + 17n + 22 2 (n2 )

2. Demuestre que g 2 (f ) si y solo si existen c, d 2 R+ y


n0 2 N tal que para todo n n0 : c f (n) g (n) d f (n)

IIC1253 Analisis de Algoritmos 7 / 20


Ejemplo
Un algoritmo de busqueda lineal puede correr en tiempo
TA (n) = 2n + 2 (en peor caso!). Entonces, se dice que su
complejidad es TA (n) = 2n + 2. Sin embargo, usualmente basta
con notar que TA (n) O(n).

Se dice, entonces, que la complejidad del algoritmo de busqueda


lineal esta en O(n). A veces, se dice que la complejidad de A es
O(n) (menos preciso). Por ultimo, a veces se dice que el algoritmo
es lineal.

Gonzalo Daz Matematicas Discretas 4 / 11


Ecuaciones de recurrencia

Suponga que tiene una lista ordenada (de menor a mayor) L de


numeros naturales
I L tiene n elementos, para referirnos al elemento i-esimo
(1 i n) usamos la notacion L[i]

Como podemos verificar si un numero a esta en L?

IIC1253 Analisis de Algoritmos 9 / 34


Ecuaciones de recurrencia: Busqueda binaria

Para verificar si un numero a esta en L usamos el siguiente algoritmo:


encontrar(a, L, i, j)
if i > j then return no
else if i = j then
if L[i] = a then return i
else return no
else
p = b i+j
2
c
if L[p] < a then return encontrar(a, L, p + 1, j)
else if L[p] > a then return encontrar(a, L, i, p 1)
else return p

Llamada inicial al algoritmo: encontrar(a, L, 1, n)

IIC1253 Analisis de Algoritmos 10 / 34


Ecuaciones de recurrencia: Busqueda binaria

Cual es la complejidad del algoritmo?


I Que operaciones vamos a considerar?
I Cual es el peor caso?

Si contamos solo las comparaciones, entonces la siguiente expresion


define la complejidad del algoritmo:
(
1 n=1
T (n) =
T (b n2 c) + 1 n > 1

Esta es una ecuacion de recurrencia.

IIC1253 Analisis de Algoritmos 11 / 34


Ecuaciones de recurrencia: Busqueda binaria

Como podemos solucionar una ecuacion de recurrencia?


I Tecnica basica: sustitucion de variables

Para la ecuacion anterior usamos la sustitucion n = 2k .


I Vamos a resolver la ecuacion suponiendo que n es una potencia de 2
I Vamos a estudiar condiciones bajo las cuales el resultado para una
potencia de 2 puede ser extendido a todo n
I Estas condiciones van a servir para cualquier potencia

IIC1253 Analisis de Algoritmos 12 / 34


Ecuaciones de recurrencia: sustitucion de variables

Si realizamos la sustitucion n = 2k en la ecuacion:


(
1 n=1
T (n) = n
T (b 2 c) + 1 n > 1

obtenemos:
(
1 k=0
T (2k ) =
T (2k 1) +1 k>0

IIC1253 Analisis de Algoritmos 13 / 34


Ecuaciones de recurrencia: sustitucion de variables

Extendiendo la expresion anterior obtenemos:

T (2k ) = T (2k 1
)+1
k 2
= (T (2 ) + 1) + 1
k 2
= T (2 )+2
k 3
= (T (2 ) + 1) + 2
k 3
= T (2 )+3
=

Deducimos la expresion general para k i 0:


k k i
T (2 ) = T (2 )+i

IIC1253 Analisis de Algoritmos 14 / 34


Ecuaciones de recurrencia: sustitucion de variables

Considerando i = k obtenemos:
T (2k ) = T (1) + k
= 1+k

Dado que k = log2 n, obtenemos que T (n) = log2 n + 1 para n


potencia de 2.
I Vamos a definir notacion para decir esto de manera formal

IIC1253 Analisis de Algoritmos 15 / 34


Notaciones asintoticas condicionales

Sea P un predicado sobre los numeros naturales.

Definicion
O(f | P) = {g : N ! R+ +
0 | (9c 2 R )(9n0 2 N)
(8n n0 ) (n 2 P ! g (n) c f (n))}

Las notaciones (f | P) y (f | P) son definidas de manera


analoga.

IIC1253 Analisis de Algoritmos 16 / 34


Busqueda en una lista ordenada: complejidad del algoritmo

Sea POTENCIA2 = {2i | i 2 N}

Para la funcion T que define la complejidad del procedimiento


encontrar, tenemos que:

T 2 (log2 n | POTENCIA2 )

Podemos concluir que T 2 (log2 n)?


I Vamos a estudiar este problema, pero antes vamos a ver un
segundo ejemplo.

IIC1253 Analisis de Algoritmos 17 / 34


Ordenamiento de una lista

Ahora queremos ordenar una lista L de numeros naturales


I Utilizamos el algoritmo mergesort

Si contamos solo las comparaciones, entonces la siguiente


expresion define la complejidad de mergesort:
(
0 n=1
T (n) = n n
T (d 2 e) + T (b 2 c) + (n 1) n > 1

IIC1253 Analisis de Algoritmos 18 / 34


Orden de mergesort

Nuevamente utilizamos la sustitucion n = 2k , obteniendo:


(
k 0 k=0
T (2 ) =
2 T (2k 1 ) + (2k 1) k > 0

Desarrollando esta expresion obtenemos:

T (2k ) = 2 T (2k 1
) + (2k 1)
k 2 k 1
= 2 (2 T (2 ) + (2 1)) + (2k 1)
2 k 2 k k
= 2 T (2 )+2 2+2 1
= 22 T (2k 2
) + 2 2k (1 + 2)
2 k 3 k 2
= 2 (2 T (2 ) + (2 1)) + 2 2k (1 + 2)
= 23 T (2k 3
) + 2k 22 + 2 2k (1 + 2)
= 23 T (2k 3
) + 3 2k (1 + 2 + 22 )
=

IIC1253 Analisis de Algoritmos 19 / 34


Orden de mergesort

Deducimos la expresion general para k i 0:


i 1
X
T (2k ) = 2i T (2k i ) + i 2k 2j
j=0

= 2i T (2k i ) + i 2k 2i + 1

Considerando i = k obtenemos:
T (2k ) = 2k T (1) + k 2k 2k + 1
= k 2k 2k + 1

Dado que k = log2 n, concluimos que:


T 2 (n log2 n | POTENCIA2 )

IIC1253 Analisis de Algoritmos 20 / 34


Teorema Maestro
El teorema maestro es una de las principales herramientas para
encontrar solucion a las recurrencias que aparecen en algoritmos
del tipo Dividir para Conquistar.
Teorema
Sean a1 , a2 , b, c, d constantes reales positivas y supongamos que
T (n) satisface la ecuacion de recurrencia:
(
b
c0 , si 0 n < b1
T (n) =
a1 T (d bn e) + a2 T (b bn c) + cnd , b
si n b1
entonces, llamando a = a1 + a2 se tiene.

d si a < b d ,
(n ),

T (n) (nd log(n)), si a = b d ,


(nlogb (a) ), si a > b d

Nicolas Rivera Matematicas Discretas


Apuntes IIC1253 - Matematicas Discretas
Examen de Ttulo 2014

Gabriel Dieguez Franzani

Seleccion de diapositivas de
Gonzalo Daz, Nicolas Rivera y Marcelo Arenas

23 de diciembre de 2013