Professional Documents
Culture Documents
Resumen 1
Resumen 1
de Ciencia de la Computación
MAT1253 Matemáticas Discretas
Resumen
Segundo Semestre 2021
Alumno: Cristóbal Rojas Brito
: carojas37@uc.cl
Principio del Buen Orden (PBO) 1. El conjunto es el menor que cumple las reglas.
A ̸= ∅, A ⊆ N ⇒ ∃x ∈ A tal que ∀y ∈ A, x ≤ y
2. Definir conjunto de elementos base.
Principio de Inducción Simple (PIS)
3. Definir conjunto finito de reglas de construcción de
♦ Primera formulación: Si nuevos elementos en base a los elementos iniciales.
1. 0 ∈ A (base inductiva).
2. Si n ∈ A (hipótesis inductiva), entonces n + 1 ∈ A Inducción estructural
(tesis inductiva).
Si
entonces A = N.
♦ Segunda formulación: Si 1. Todos los elementos base de A (conjunto definido
inductivamente) cumplen la propiedad P
1. P (0) es verdadero
2. Si P (n), entonces P (n + 1) (cada vez que n cumple
2. Para cada regla de construcción, si la regla se aplica
P , n + 1 también la cumple)
sobre elementos en A que cumplen la propiedad
entonces todos los elementos de N cumplen la P , entonces los elementos producidos por la regla
propiedad P. también cumplen la propiedad P
♦ Tercera formulación: Si entonces todos los elementos en A cumplen la propiedad
1. P (n0 ) es verdadero P.
2. Si P (n), entonces P (n + 1) (cada vez que n cumple
P , n + 1 también la cumple)
entonces todos los elementos de N a partir de n0
2. Lógica proposicional
cumplen la propiedad P.
Sintaxis
Principio de Inducción por Curso de Valores Sea P un conjunto de variables proposicionales. El
(PICV) conjunto de todas las fórmulas de lógica proposicional
♦ Primera formulación: Si sobre P , denotado por L(P ), es el menor conjunto que
cumple las siguientes reglas:
{0, 1, . . . , n − 1} ⊆ A ⇒ n ∈ A
1. Si p ∈ P , entonces p ∈ L(P ).
entonces A = N.
♦ Segunda formulación: Si 2. Si α ∈ L(P ), entonces (¬α) ∈ L(P ).
∀k ∈ N, k < n, P (k) es verdadero
3. Si α, β ∈ L(P ), entonces (α ∧ β) ∈ L(P ), (α ∨ β) ∈
⇒ P (n) es verdadero
L(P ), (α → β) ∈ L(P ) y (α ↔ β) ∈ L(P ).
entonces P es verdadero para todos los elementos de
N.
Semántica
Teorema 1
Una valuación o asignación de verdad para las
Los 3 principios de inducción (PBO, PIS y PICV) son variables proposicionales en un conjunto P es una
equivalentes. función σ : P → {0, 1}, donde 0 = falso y 1 = verdadero.
1
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
6. Idempotencia Teorema 3
α∧α≡α Dos fórmulas α, β ∈ L(P ) son lógicamente
α∨α≡α equivalentes si α ↔ β es una tautologı́a.
2
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
B1 ∨ B2 ∨ . . . ∨ Bk Teorema 6
3
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
donde x es la variable cuantificada y y1 , . . . , yn son Sea α(x), β(x) fórmulas con x su variable libre, entonces:
las variables libres. Para b1 , . . . , bn en D, definimos la
valuación: ¬∀x(α(x)) ≡ ∃x(¬α(x))
P ′ (b1 , . . . , bn ) = 1 ¬∃x(α(x)) ≡ ∀x(¬α(x))
si para todo a en D se tiene que P (a, b1 , . . . , bn ) = 1, ∀x(α(x) ∧ β(x)) ≡ ∀x(α(x)) ∧ ∀x(β(x))
y 0 en otro caso. ∃x(α(x) ∨ β(x)) ≡ ∃x(α(x)) ∨ ∃x(β(x))
4
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
Una fórmula α es consecuencia lógica de un conjunto Para cada subdominio C1 , . . . , Cn demostramos que:
de fórmulas Σ:
Σ |= α ∀x(P (x) → Q(x))
Suponemos que existe un n tal que P (n) es verdadero En otras palabras, A es subconjunto de B si cada
y Q(n) es falso e inferimos una contradicción. elemento de A está tambien en B.
5
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
6
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
7
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
Números enteros
Relaciones de equivalencia
Una relación R sobre A es una relación de equivalencia El conjunto de los números Z se define como el conjunto
si es refleja, simétrica y transitiva. cuociente de N2 respecto a ↓:
Z = N/ ↓= {[(0, 0)], [(0, 1)], [(1, 0)], [(0, 2)], [(2, 0)], . . .}
Clase de equivalencia
Sea ∼ una relación de equivalencia sobre un conjunto ♦ [(0, 0)] será el entero 0.
A y un elemento x ∈ A. La clase de equivalencia de x
bajo ∼ es el conjunto ♦ [(0, i)] sera el entero i.
8
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
Composición de funciones
♦ En tal caso, se tiene que |A| = [n]≈ .
♦ Por simplicidad, diremos que |A| = n.
Dadas funciones f de A en B y g de B en C, la
composición g ◦ f es una función de A en C. ♦ También podemos decir que A tiene n elementos.
9
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
Sean A y B dos conjuntos finitos tales que A ∩ B = ∅. Dados conjuntos A y B, diremos que A ≺ B (A es
Entonces, |A ∪ B| = |A| + |B|. menos numeroso que B) si A ⪯ B pero A ̸≈ B.
♦ Esta noción con funciones se define de tal forma que
Teorema 16 existe una función inyectiva f : A → B, pero no existe
una función biyectiva g : A → B.
Sea A un conjunto finito. Entonces, se cumple que
|P (A)| = 2|A| . ♦ Si A ≺ B, diremos que |A| < |B|.
♦ Esto implica que si A es un conjunto finito, entonces ♦ Corolario: |N| < |P(N)|.
su cardinalidad es estrictamente menor que la de
su conjunto potencia. Teorema 20 (Cantor, menos numeroso)
A es menos numeroso que su conjunto potencia, es decir
Conjunto enumerable
|A| < |P(A)|
Un conjunto A se dice enumerable si |A| = |N|.
8. Análisis de algoritmos
Teorema 17 (Schröder-Bernstein)
Algoritmo
A ≈ B si y sólo si existen funciones inyectivas f : A → B
y g : B → A. Es un método para convertir un input en un output.
A estos métodos les exigiremos ciertas propiedades:
Relación ⪯ entre conjuntos ♦ Instrucciones usuales como if, while, return, ...
Dados conjuntos A y B, diremos que A ⪯ B (A no ♦ Notaciones cómodas para arreglos, conjuntos, etc.
es más grande que B), si existe una función inyectiva
Consideraremos que los algoritmos tienen:
f : A → B.
♦ Precondiciones: representan el input del programa.
♦ ⪯ no es una relación de orden.
♦ Postcondiciones: representan el output del
♦ Si A ⪯ B, diremos que |A| ≤ |B|. programa, lo que hace el algoritmo con el input.
10
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
Debemos demostrar dos cosas: ♦ El recorrido será el tiempo necesario para ejecutar el
algoritmo.
♦ Corrección parcial: si el algoritmo se detiene, se
cumplen las postcondiciones. Sea f : N → R+ , entonces
O(f ) = {g : N → R+ | (∃c ∈ R+ )(∃n0 ∈ N)(∀n ≥ n0 ) :
♦ Terminación: el algoritmo se detiene.
g(n) ≤ c · f (n)}
Demostración Diremos que g ∈ O(f ) es a lo más de orden f o que es
O(f ).
Para demostrar la corrección parcial, buscamos un
invariante I(k) para los loops: Ω(f ) = {g : N → R+ | (∃c ∈ R+ )(∃n0 ∈ N)(∀n ≥ n0 ) :
♦ Una propiedad I que sea verdadera en cada paso k g(n) ≥ c · f (n)}
de la iteración. Diremos que g ∈ Ω(f ) es al menos de orden f o que es
Ω(f ).
♦ Debe relacionar a las variables presentes en el
Θ(f ) = O(f ) ∩ Ω(f )
algoritmo.
Diremos que g ∈ Θ(f ) es exactamente de orden f o que
♦ Al finalizar la ejecución, debe asegurar que las es Θ(f ).
postcondiciones se cumplan.
Una vez encontramos una invariante, demostramos la Teorema 21
corrección del loop inductivamente: Si f (n) = ak · nk + ak−1 · nk−1 + . . . a2 · n2 + a1 · n + a0
con ai ∈ R y ak > 0, entonces f es Θ(nk ).
♦ Base: las precondiciones deben implicar que I(0) es
verdadero.
Teorema 22
♦ Inducción: para todo natural k > 0, si G e I(k) son
Si f (n) = loga (n) con a > 1, entonces para todo b > 1
verdaderos antes de la iteración, entonces I(k + 1) es
se cumple que f es Θ(logb (n)).
verdadero después de la iteración.
♦ Corrección: inmediatamente después de terminado Funciones más usadas
el loop (i.e. cuando G es falso), si k = N e I(N ) es
Las funciones más usadas para los órdenes de notación
verdadero, entonces las postcondiciones se cumplen.
asintótica tienen nombres tı́picos.
Y para demostrar terminación, debemos mostrar
que existe un k para el cual G es falso. Notación Nombre
Θ(1) Constante
Algoritmos recursivos Θ(log(n)) Logarı́tmico
Θ(n) Lineal
En el caso de los algoritmos recursivos, no necesitamos Θ(n log(n)) n log(n)
dividir la demostración en corrección parcial y Θ(n2 ) Cuadrático
terminación. Θ(n3 ) Cúbico
Θ(nk ) Polinomial
♦ Basta con demostrar por inducción la propiedad
Θ(mk ) Exponencial
(corrección) deseada.
Θ(n!) Factorial
♦ En general, la inducción se realiza sobre el tamaño
del input. con k ≥ 0 y m ≥ 2.
11
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
♦ Para encontrar T , contamos las instrucciones ♦ Peor caso: k no esta en A. La lı́nea 2 se ejecutará
ejecutadas por el algoritmo. tantas veces como elementos en A, y entonces T (n)
es Θ(n).
♦ A veces contaremos cierto tipo de instrucciones que
son relevantes para un algoritmo particular.
♦ Diremos entonces que el algoritmo BÚSQUEDA(A, n, k)
es de complejidad Θ(n) o lineal en el peor caso y
Consideremos el siguiente algoritmo de búsqueda de Θ(1) o constante en el mejor caso.
arreglos: En general, nos conformaremos con encontrar la
BÚSQUEDA(A, n, k) complejidad del peor caso.
Donde: ♦ Es la que más interesa, al decirnos qué tan mal se
puede comportar un algoritmo en la práctica.
♦ Input: un arreglo de A = [a0 , . . . , an−1 ], un natural
n > 0 correspondiente al largo del arreglo A y un Además, a veces puede ser difı́cil encontrar una notación
entero k. Θ.
12
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
13
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
Considere un grafo GP P P
n = (Vn , En ), donde
Un grafo bipartito completo es un grafo bipartito en
que cada vértice es adyacente a todos los de la otra
VnP = {v1 , . . . , vn } partición.
EnP = {(vi , vj ) | i ∈ {1, . . . , n − 1} ∧ j = i + 1} A la clase de equivalencia de los grafos bipartitos
completos la llamaremos Kn,m , donde n y m son los
Un camino (de n vértices) es un grafo isomorfo a GP
n. tamaños de las particiones.
Conjunto independiente
VnC = {v1 , . . . , vn }
EnC = {(vi , vj ) | i ∈ {1, . . . , n − 1} ∧ j = i + 1} ∪ {(vn , v1 )} Dado un grafo G = (VG , EG ), un conjunto
independiente en G es un conjunto de vértices K ⊆ VG
tal que
Un ciclo (de n vértices) es un grafo isomorfo a GP
n. ∀ u, v ∈ K. (u, v) ∈
/ EG
A la clase de equivalencia [GC
n ]∼
= la llamaremos Cn : los
ciclos con n vértices. Complemento
Dado un grafo G = (VG , EG ), el complemento de G es el
grafo G = (VG , EG ), donde (u, v) ∈ EG ↔ (u, v) ∈
/ EG .
Grafo completo
14
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
♦ Cada fila de la matriz representará un vértice, y cada Corresponde a la cantidad de aristas que lo componen.
columna a una arista. Si está compuesto por un único vértice (sin aristas),
diremos que tiene largo 0.
♦ Cada posición de la matriz tendra un 1 si la arista de
la columna incide en el vértice de al fila. Vértices conectados
Por ejemplo, si V = {1, 2, 3, 4} y E = {(1, 2), Dos vértices x e y en un grafo G estan conectados si
(1, 4), (2, 1), (2, 3), (2, 4), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)}, existe un camino en G que empieza en x y termina en
entonces y.
1 1 0 0 0
1 0 1 1 0 Nota: Que dos vértices “estén conectados” implica una
AG = 0 0 1 0 1
relación de equivalencia.
0 1 0 1 1
Componente conexa
Grado de un grafo
Dado un vértice v de un grafo G, su clase de equivalencia
Dado un grafo G y un vértice v de él, el grado de v bajo la relación “estar conectados” es una componente
(denotado como δG (v)) es la cantidad de aristas que conexa de G.
inciden en v.
En general, diremos que la componente conexa tambien
Vecindad de un grafo contiene a las aristas entre los vértices de ella.
Dado un grafo G y un vértice v de él, la vecindad de v
Grafo conexo
es el conjunto de vecinos de v:
Un grafo G se dice conexo si todo par de vértices
NG (v) = {u | (v, u) ∈ E} x, y ∈ V está conectado. En otro caso, G es disconexo.
En un grafo simple, δG (v) = |NG (v)|
En otras palabras, esta definición es equivalente a decir
que G tiene sólo una componente conexa.
Teorema 27 (Handshaking lemma)
Si G = (V, E) es un grafo sin rulos, entonces Teorema 28
Un grafo G con n vértices y k aristas tiene al menos
X
δG (v) = 2|E|
v∈V
n − k componentes conexas.
Es decir, la suma de los grafos de los vértices es dos ♦ Corolario: Si un grafo G con n vértices es conexo,
veces la cantidad de aristas. tiene al menos n − 1 aristas.
15
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
16
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
17
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
18
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
19
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación
Dados dos problemas de decisión π = (Iπ , Lπ ) y El hecho de que ∝ sea un preorden nos permite
π ′ = (Iπ′ , Lπ′ ), diremos que π ′ se reduce desde π si dada establecer una jerarquı́a en cuanto a la dificultad de los
una instancia w ∈ Iπ existe una función A : Iπ → Iπ′ problemas.
polinomial en |w| tal que
Sea π un problema de decisión. Diremos que π es NP-
w ∈ Lπ ↔ A(w) ∈ Lπ′ hard si para todo π ′ ∈ N P se tiene que π ′ ∝ π.
♦ En general aplicamos la restricción de 3 literales al Sea π un problema de decisión. Diremos que π es NP-
conjunto que representa a cada cláusula. completo si:
♦ π ∈ NP.
♦ Por lo tanto, no pueden repetirse literales en la misma
cláusula. ♦ π ∈ NP-hard.
Dado que cualquier problema en NP se puede reducir a
SAT-3CNF uno NP-completo, podemos concluir que los problemas
NP-completos son los más difı́ciles de la clase NP.
Definimos SAT-3CNF como
Teorema 45 (de Cook)
ISAT-3CNF = α ∈ L(P ) en 3-CNF
LSAT-3CNF = {α ∈ L(P ) en 3-CNF | α es satisfacible} SAT-CNF es NP-completo.
En este caso, diremos que SAT-3CNF es por lo menos Problema de decisión: Clique
tan difı́cil como SAT-3CNF.
ICLIQUE = Todos los grafos no dirigidos.
Teorema 44 LCLIQUE = {(G, k) | G tiene un clique de tamaño k ∧ k > 2}
20