You are on page 1of 20

P. Universidad Católica de Chile Dpto.

de Ciencia de la Computación
MAT1253 Matemáticas Discretas

Resumen
Segundo Semestre 2021
Alumno: Cristóbal Rojas Brito
: carojas37@uc.cl

1. Inducción Conjunto definido inductivamente

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

Tablas de verdad 7. Absorción


α ∧ (α ∨ β) ≡ α
p ¬p p q p→q
0 1 0 0 1 α ∨ (α ∧ β) ≡ α
1 0 0 1 1
8. Implicancia
1 0 0
1 1 1 α → β ≡ (¬α) ∨ β

p q p∧q 9. Doble implicancia


0 0 0 p q p↔q α ↔ β ≡ (α → β) ∧ (β → α)
0 1 0 0 0 1
1 0 0 0 1 0 Operadores generalizados
1 1 1 1 0 0
1 1 1
n
^
αi = α1 ∧ α2 ∧ . . . ∧ αn
i=1
p q p∨q p q XOR _n
0 0 0 0 0 0 αi = α1 ∨ α2 ∨ . . . ∨ αn
0 1 1 0 1 1 i=1
1 0 1 1 0 1
1 1 1 1 1 0 Teorema 2
Podemos representar cualquier tabla de verdad con una
Equivalencia lógica ≡ fórmula. Ademas, podemos representar cualquier tabla
Dos fórmulas α, β ∈ L(P ) son lógicamente de verdad con una fórmula que sólo usa ¬, ∧ y ∨.
equivalentes (denotado como α ≡ β) si para toda
valuación σ se tiene que σ(α) = σ(β). Conectivos funcionalmente completos
Un conjunto de conectivos se dice ası́ si toda fórmula
Leyes de equivalencia en L(P ) es lógicamente equivalente a una fórmula que
1. Doble negación sólo usa esos conectivos. Ejemplos:

¬(¬α) ≡ α ♦ {¬, ∧, ∨} ♦ {¬, ∨}


2. De Morgan ♦ {¬, ∧} ♦ {¬, →}
¬(α ∧ β) ≡ (¬α) ∨ (¬β)
¬(α ∨ β) ≡ (¬α) ∧ (¬β) Satisfacibilidad
Una fórmula α es satisfacible si existe una valuación
3. Conmutatividad
σ tal que σ(α) = 1.
α∧β ≡β∧α
α∨β ≡β∨α Contradicción

4. Asociatividad Una fórmula α es una contradicción si no es


satisfacible; es decir, para toda valuación σ se tiene
α ∧ (β ∧ γ) ≡ (α ∧ β) ∧ γ
que σ(α) = 0.
α ∨ (β ∨ γ) ≡ (α ∨ β) ∨ γ
Tautologı́a
5. Distributividad
α ∧ (β ∨ γ) ≡ (α ∧ β) ∨ (α ∧ γ) Una fórmula α es una tautologı́a si para toda valuación
σ se tiene que σ(α) = 1.
α ∨ (β ∧ γ) ≡ (α ∨ β) ∧ (α ∨ γ)

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

Forma Normal Disyuntiva (DNF) Conjunto satisfacible


Una fórmula α está en DNF si es una disyunción de Un conjunto de fórmulas Σ es satisfacible si existe una
conjunciones de literales (variable proposicional o su valuación σ tal que σ(Σ) = 1. En caso contrario, Σ es
negación); osea, si es de la forma inconsistente.

B1 ∨ B2 ∨ . . . ∨ Bk Teorema 6

donde cada Bi es una conjunción de literales, Bi = Σ |= α si y sólo si Σ ∪ {¬α} es inconsistente.


(li1 ∧ . . . ∧ liki ).
Teorema 7
Forma Normal Conjuntiva (CNF) Un conjunto de fórmulas Σ es inconsistente si y sólo si
Una fórmula α está en CNF si es una conjunción de Σ |= □, con □ una cláusula vacı́a.
disyunciones de literales; osea, si es de la forma
Equivalencia lógica para conjuntos
C1 ∧ C2 ∧ . . . ∧ Ck
Dos conjuntos de fórmulas Σ1 y Σ2 son lógicamente
equivalentes (Σ1 ≡ Σ2 ) si para toda valuación σ se
donde cada Ci es una disyunción de literales, Ci =
tiene que σ(Σ1 ) = σ(Σ2 ). También diremos que Σ es
(li1 ∨ . . . ∨ liki ).
lógicamente equivalente a una fórmula α si Σ ≡ α.
♦ Una disyunción de literales se llama cláusula.
Conjuntos y conjunción
Teorema 4 Todo conjunto de fórmulas Σ es equivalente a la
conjunción de sus fórmulas.
Toda fórmula es equivalente a una fórmula en DNF.
^
Σ≡ α
Teorema 5 α∈Σ

Toda fórmula es equivalente a una fórmula en CNF. Teorema 8


Todo conjunto de fórmulas Σ es equivalente a un
Propiedad formas normales
conjunto de cláusulas.
Toda fórmula α ∈ L(P ) en DNF con a lo más n
disyunciones es lógicamente equivalente a una fórmula Resolución para consecuencia lógica
β en CNF (α ≡ β).
Para resolver el problema de consecuencia lógica (es
decir, determinar si Σ |= α) tenemos que determinar si
Consecuencia lógica |= un conjunto de cláusulas Σ′ construido desde Σ ∪ {¬α}
Una fórmula α es consecuencia lógica de Σ si para cada es tal que Σ′ |= □.
valuación σ tal que σ(Σ) = 1, se tiene que σ(α) = 1. Se
denota como Σ |= α. Resolución proposicional

Regla de resolución Regla de factorización


Consecuencias lógicas clásicas
♦ Modus ponens C1 ∨ l ∨ C2
C3 ∨ l ∨ C2 C1 ∨ l ∨ C2 ∨ l ∨ C3
{p, p → q} |= q C1 ∨ C2 ∨ C3 ∨ C4 C1 ∨ l ∨ C2 ∨ C3
♦ Modus tollens Dado un conjunto Σ de cláusulas, una demostración
{¬q, p → q} |= ¬p por resolución de que Σ es inconsistente es una
secuencia de cláusulas C1 , . . . , Cn tal que Cn = □ y
♦ Demostración por partes para cada i = 1 . . . n se tiene que
{p ∨ q ∨ r, p → s, q → s, r → s} |= s
♦ Ci ∈ Σ o
♦ Resolución ♦ Ci se obtiene de dos cláusulas anteriores en la
{p ∨ q, ¬q ∨ r} |= p ∨ r secuencia usando la regla de resolución, o

3
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

♦ Ci se obtiene de una cláusula anterior en la secuencia Cuantificador existencial ∃


usando la regla de factorización.
Sea P (x, y1 , . . . , yn ) un predicado compuesto con
Si existe tal demostración, escribimos Σ ⊢ □. dominio D. Definimos el cuantificador existencial:

P ′ (y1 , . . . , yn ) = ∃x(P (x, y1 , . . . , yn ))


Teorema 8
Dado un conjunto de cláusulas Σ, se tiene que: donde x es la variable cuantificada y y1 , . . . , yn son
las variables libres. Para b1 , . . . , bn en D, definimos la
Correctitud: Si Σ ⊢ □, entonces Σ |= □ (Σ es valuación:
inconsistente). P ′ (b1 , . . . , bn ) = 1
Completitud: Si Σ |= □, entonces Σ ⊢ □.
si existe a en D tal que P (a, b1 , . . . , bn ) = 1, y 0 en
♦ Corolario 1: Si Σ es un conjunto de cláusulas, otro caso.
entonces Σ |= □ si y sólo si Σ ⊢ □. Dicho de otra
manera, un conjunto de cláusulas Σ es inconsistente Interpretaciones I
si y sólo si existe una demostración por resolución de
que es inconsistente. Una interpretación I para P1 , . . . , Pn está compuesta
de:
♦ Corolario 2: Dados un conjunto de fórmulas Σ y
una fórmula α cualesquiera, ♦ un dominio D que denotaremos I(dom) y

Σ |= α si y sólo si Σ′ ⊢ □ ♦ un predicado PiD que denotaremos por I(Pi ) para


cada sı́mbolo Pi .
donde Σ′ es un conjunto de cláusulas tal que Σ ∪
{¬α} ≡ Σ′ .
Satisfacibilidad para interpretaciones
I |= α(a1 , . . . , an )
3. Lógica de predicados
si α(a1 , . . . , an ) es verdadero al interpretar cada sı́mbolo
Predicado en α según I. Si I no satisface α sobre a1 , . . . , an en
I(dom) lo denotamos como I ⊭ α(a1 , . . . , an ).
Un predicado n-ario P (x1 , . . . , xn ) es una afirmación
con n variables, cuyo valor de verdad depende de los
objetos en el cual es evaluado. Equivalencia lógica para predicados

♦ P es el sı́mbolo del predicado. Sean α(x1 , . . . , xn ) y β(x1 , . . . , xn ) dos fórmulas en


lógica de predicados. Decimos que α y β son
♦ Todos los predicados están restringidos a un dominio lógicamente equivalentes:
de evaluación.
α≡β
♦ Para un predicado P (x1 , . . . , xn ) diremos que
x1 , . . . , xn son variables libres de P . si para toda interpretación I y para todo a1 , . . . , an en
I(dom) se cumple:
♦ Un predicado 0-ario es un predicado sin variables
y tiene valor de verdadero o falso sin importar la I |= α(a1 , . . . , an ) si y sólo si I |= β(a1 , . . . , an )
valuación.
♦ Caso especial: Si α y β son oraciones (no tienen
Cuantificador universal ∀ variables libres), entonces:
Sea P (x, y1 , . . . , yn ) un predicado compuesto con
I |= α si y sólo si I |= β
dominio D. Definimos el cuantificador universal:

P ′ (y1 , . . . , yn ) = ∀x(P (x, y1 , . . . , yn )) Teorema 9

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

Consecuencia lógica para predicados Por casos

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))

si para toda interpretación I y a1 , . . . , an en I(dom) se ♦ Aquı́, dividimos el dominio de la interpretación I


cumple que: con que trabajamos en una cantidad finita de casos
C1 , . . . , Cn , tal que:
si I |= Σ(a1 , . . . , an ) entonces I |= α(a1 , . . . , an )
n
[
I(dom) = Ci
Reglas de inferencia para predicados i=1

♦ Especificación universal Doble implicación


∀x(α(x)) Por demostrar: ∀x(P (x) ↔ Q(x)).
α(a) para cualquier a
Aquı́, se deben demostrar ambas direcciones por
♦ Generalización universal separado. En términos formales:
α(a) para un a arbitrario ∀x(P (x) → Q(x)) ∧ ∀x(Q(x) → P (x))
∀x(α(x))

♦ Especificación existencial Contra-ejemplo

∃x(α(x)) Por demostrar: ¬(∀x(P (x))).


α(a) para algún a (nuevo)
Aquı́, hay que encontrar un elemento n (cualquiera) tal
♦ Generalización existencial que P (n) es falso.

α(a) para algún a


Existencial
∃x(α(x))
Por demostrar: ∃x(P (x)).

4. Demostraciones Aquı́, debemos demostrar que existe un elemento n tal


que P (n) es verdadero (nótese que NO es estrictamente
Método directo necesario mostrar n explı́citamente).
Por demostrar: ∀x(P (x) → Q(x)).

Suponemos que P (n) es verdadero para un n arbitrario 5. Teorı́a de conjuntos


y demostramos que Q(n) también es verdadero.
Conjunto

Contrapositivo Es una colección bien definida de objetos. Estos objetos


se llaman elementos del conjunto, y diremos que
Por demostrar: ∀x(P (x) → Q(x)). pertenecen a él.

Suponemos que Q(n) es falso para un n arbitrario y


demostramos que P (n) también es falso. Subconjunto

Sean A y B conjuntos. Diremos que A es subconjunto


Contradicción de B, denotado por A ⊆ B, si

Por demostrar: ∀x(P (x) → Q(x)). ∀x(x ∈ A → x ∈ B)

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

Igualdad de conjuntos Operaciones


Dos conjuntos A y B son iguales si y sólo si A ⊆ B y ♦ Unión: A ∪ B = {x | x ∈ A ∨ x ∈ B}
B ⊆ A. Otra definición equivalente es
♦ Intersección: A ∩ B = {x | x ∈ A ∧ x ∈ B}
∀A∀B A = B ↔ ∀x(x ∈ A ↔ x ∈ B) ♦ Diferencia: A\B = {x | x ∈ A ∧ x ∈
/ B}
♦ Este es el axioma de extensión. ♦ Conjunto potencia: P(A) = {X | X ⊆ A}

♦ Observación: Los conjuntos no pueden tener Algunas observaciones:


elementos repetidos. {x, x} = {x}.
• ∅ ∈ P(A) • A⊆A∪B
Subconjunto propio • A ∈ P(A) • A∩B ⊆A
Diremos que A es un subconjunto propio de B, detonado
por A ⊊ B, si Complemento
Sea A ⊆ U (siendo U un conjunto universal fijo) un
A ⊆ B ∧ A ̸= B, o alternativamente, A ⊆ B ∧ B ⊈ A conjunto cualquiera. El complemento de A (relativo a
U) es el conjunto
♦ Corolario: B ⊈ A si y sólo si ∃x ∈ B tal que x ∈
/ A.
Ac = U\A = {x | x ∈ U ∧ x ∈
/ A}
Axioma del conjunto vacı́o
Teorema 12
∃X tal que ∀x, x ∈
/ X. Lo denotaremos por ∅ o {}.
Si A, B y C son conjuntos cualquiera (subconjuntos de
U), entonces se cumplen las siguientes leyes:
Teorema 10
♦ Asociatividad
Para todo conjunto A se tiene que ∅ ⊆ A.
A ∪ (B ∪ C) = (A ∪ B) ∪ C
A ∩ (B ∩ C) = (A ∩ B) ∩ C
Teorema 11
♦ Conmutatividad
Existe un único conjunto vacı́o.
A∪B =B∪A
A∩B =B∩A
Formas de definir un conjunto
♦ Idempotencia
♦ Por extensión (listando sus elementos):
A∪A=A
Z5 = {0, 1, 2, 3, 4} A∩A=A
♦ Absorción
♦ Por comprensión:
A ∪ (A ∩ B) = A
Z5 = {x | x ∈ N ∧ x < 5} A ∩ (A ∪ B) = A
♦ Elemento neutro
Axioma de abstracción
A∪∅=A
Si α es una propiedad sobre objetos, entonces A = A∩U =A
{x | α(x)} es un conjunto.
♦ Distributividad
Axioma de separación A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)
A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)
Si α es una propiedad y C es un conjunto “sano”,
entonces A = {x | x ∈ C ∧ α(x)} es un conjunto. ♦ Leyes de De Morgan
♦ Un conjunto sano es uno el cual no fue creado (A ∪ B)c = Ac ∩ B c
usando el axioma de abstracción. (A ∩ B)c = Ac ∪ B c

6
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

♦ Elemento inverso Relación


c
A∪A =U Dados conjuntos A1 , . . . , An , diremos que R es una
A ∩ Ac = ∅ relación sobre tales conjuntos si R ⊆ A1 × . . . × An .
♦ Dominación ♦ La aridad de una relación R es el tamaño de las
tuplas que la componen. Ası́, diremos que R es una
A∪U =U
relación n-aria.
A∩∅=∅
Relación binaria
Unión generalizada
Dados conjuntos A y B, diremos que R es una relación
Siendo S un conjunto de conjuntos, la unión binaria de A en B si R ⊆ A × B.
generalizada representa a la unión de todos los conjuntos
componentes de S; es decir, contiene a todos los ♦ Podemos tener una relación sobre un solo conjunto,
elementos que pertenecen a algún conjunto de S. es decir, dado un conjunto A, diremos que R es una
[ [ relación binaria sobre A si R ⊆ A × A = A2 .
S = {x | ∃A ∈ S tal que x ∈ A} = A
A∈S
♦ Cuando tengamos productos cartesianos entre un
mismo conjunto, usaremos una notación de potencia:
Intersección generalizada (n−2veces)
A× ··· × = An
Siendo S un conjunto de conjuntos, la intersección
generalizada representa a la intersección de todos los Relación binaria: Divide a |
conjuntos componentes de S; es decir, contiene a todos
los elementos que pertenecen a todos los conjuntos de Esta relación sobre los naturales sin el 0, es una tal que
S. a está relacionado con b si y sólo si b es múltiplo de a:
\ \
S = {x | ∀A ∈ S se cumple que x ∈ A} = A a | b si y sólo si ∃k ∈ N tal que b = ka
A∈S
Relación binaria: Equivalencia módulo n ≡n
6. Relaciones Esta relación sobre los naturales, es una tal que a está
relacionado con b si y sólo si |a − b| es múltiplo de n:
Par ordenado
Sean a, b ∈ U (donde U es un conjunto universal). a ≡n b si y sólo si ∃k ∈ N tal que |a − b| = kn
Definimos el par ordenado (a, b) como
Propiedades de las relaciones
(a, b) = {{a}, {a, b}}
Una relación es
♦ Propiedad: (a, b) = (c, d) si y sólo si a = c ∧ b = d ♦ Refleja si para cada a ∈ A se tiene que R(a, a).
n-tupla ♦ Irrefleja si para cada a ∈ A no se tiene que R(a, a).
Sean a1 , . . . , an ∈ U. Definimos una n-tupla como: ♦ Simétrica si para cada a, b ∈ A, si R(a, b) entonces
R(b, a).
(a1 , . . . , an ) = ((a1 , . . . , an−1 ), an )
♦ Asimétrica si para cada a, b ∈ A, si R(a, b) entonces
Producto cartesiano no es cierto que R(b, a).

Dados dos conjuntos A y B, definimos el producto ♦ Antisimétrica si para cada a, b ∈ A, si R(a, b) y


cartesiano entre A y B como R(b, a), entonces a = b.

A × B = {(a, b) | a ∈ A ∧ b ∈ B} ♦ Transitiva si para cada a, b, c ∈ A, si R(a, b) y R(b, c),


entonces R(a, c).
Se puede extender esta noción a más conjuntos. Dados
conjuntos A1 , . . . , An , definimos el producto cartesiano
♦ Conexa si para cada a, b ∈ A, se tiene que R(a, b) o
entre los Ai como R(b, a).

A1 × . . . × An = {(a1 , . . . , an ) | a1 ∈ A1 ∧ . . . ∧ an ∈ An } En lógica de predicados (para demostrar):

7
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

♦ Refleja: ∀x(R(x, x)) Teorema 14


♦ Irrefleja: ∀x(¬R(x, x)) Si ∼ es una relación de equivalencia sobre un conjunto
A, entonces A/ ∼ es una partición de A.
♦ Simétrica: ∀x∀y(R(x, y) → R(y, x))
♦ Asimétrica: ∀x∀y(R(x, y) → ¬R(y, x)) Relación ↓
♦ Antisimétrica: ∀x∀y((R(x, y) ∧ R(y, x)) → x = y) Esta relación sobre N × N se define como:
♦ Transitiva: ∀x∀y∀z((R(x, y) ∧ R(y, z)) → R(x, z))
(m, n) ↓ (r, s) ↔ m+s=n+r
♦ Conexa: ∀x∀y(R(a, b) ∨ R(b, a))

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.

[x]∼ = {y ∈ A | x ∼ y} ♦ [(i, 0)] será el entero −i.

Teorema 13 Nota: “−1” es sólo un nombre para la clase de


equivalencia [(1, 0)]. El sı́mbolo “−” no significa nada
Sea ∼ una relación de equivalencia sobre un conjunto por sı́ solo.
A. Entonces:
1. ∀x ∈ A, x ∈ [x] Suma sobre Z
2. x ∼ y si y sólo si [x] = [y] [(m, n)] +↓ [(r, s)] = [(m + r, n + s)]
3. Si [x] ̸= [y] entonces [x] ∩ [y] = ∅
Producto sobre Z
Conjunto cuociente
[(m, n)] ·↓ [(r, s)] = [(m · s + n · r, m · r + n · s)]
Sea ∼ una relación de equivalencia sobre un conjunto
A. El conjunto cuociente de A con respecto a ∼ es el
conjunto de todas las clases de equivalencia de ∼:
7. Funciones
A/ ∼= {[x] | x ∈ A}
Función
Índice Sea f una relación binaria de A en B; es decir, f ⊆ A×B.
Es la cantidad de clases de equivalencia que induce. Es Diremos que f es una función de A en B si dado
decir, la cantidad de elementos de su conjunto cuociente. cualquier elemento a ∈ A, si existe un elemento b ∈ B
tal que af b, este es único:
Partición
af b ∧ af c → b = c
Sea A un conjunto cualquiera, y S una colección de
subconjuntos de A (S ⊆ P(A)). Diremos que S es una Si af b, escribimos b = f (a).
partición de A si cumple que:
♦ b es la imagen de a.
1. ∀X ∈ S, X ̸= ∅
2.
S
S=A
♦ a es la preimagen de b.

3. ∀X, Y ∈ S si X ̸= Y entonces X ∩ Y = ∅ ♦ Notación: f : A → B

8
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

Función total Teorema 14


Una función f : A → B se dice total si todo elemento Si f : A → B es biyectiva, entonces la relación inversa
en A tiene imagen, es decir f −1 es una función biyectiva de B en A.
♦ Si f es biyectiva, entonces es invertible.
♦ Para todo a ∈ A existe b ∈ B tal que b = f (a).
Teorema 15
♦ Una función que no sea total se dice parcial.
Dados dos funciones f : A → B y g : B → C:
♦ Toda función será total a menos que se diga lo
♦ Si f y g son inyectivas, entonces g ◦ f también lo es.
contrario.
♦ Si f y g son sobreyectivas, entonces g ◦ f también lo
es.
Inyectividad
Una función f : A → B es inyectiva (o 1 − 1) si Principio del palomar
para cada par de elementos x, y ∈ A se tiene que
Se tienen m palomas y n palomares, con m > n.
f (x) = f (y) → x = y. Es decir, no existen dos
Entonces, si se reparten las m palomas en los n
elementos distintos en A con la misma imagen.
palomares, necesariamente existirá un palomar con más
de una paloma.
Sobreyectividad
Principio del palomar (matemático)
Una función f : A → B es sobreyectiva (o sobre) si cada
elemento b ∈ B tiene preimagen. Es decir, para todo Si se tiene una función f : Nm → Nn , con m >
b ∈ B existe un a ∈ A tal que b = f (a). n, la función f no puede ser inyectiva. Es decir,
necesariamente existirán x, y ∈ Nm tales que x ̸= y,
pero f (x) = f (y).
Biyectividad
Una función f : A → B es biyectiva si es inyectiva y Principio del palomar (sobreyectividad)
sobreyectiva a la vez.
Si se tiene una función f : Nm → Nn , con m < n, la
función f no puede ser sobreyectiva.
Relación inversa
Conjunto equinumeroso
Dada una relación R de A en B, una relación inversa
de R es una relación de B en A definida como Sean A y B dos conjuntos cualesquiera. Diremos que A
es equinumeroso con B (o que A tiene el mismo tamaño
R−1 = {(b, a) ∈ B × A | aRb} que B) si existe una función biyectiva f : A → B. Lo
denotamos como
A≈B
Función invertible
Esta es una relación de equivalencia.
Dada una función f de A en B, diremos que f es
invertible si su relación inversa f −1 es una relación Cardinalidad
de B en A.
La cardinalidad de un conjunto A es su clase de
equivalencia bajo ≈:
Composición de relaciones
|A| = [A]≈
Dadas relaciones R de A en B y S de B en C, la
composición de R y S es una relación de A en C definida Conjunto finito
como
Diremos que A es un conjunto finito si A ≈ n, para
S ◦ R = {(a, c) ∈ A × C | ∃b ∈ B tal que aRb ∧ bSc} algún n ∈ N. Es decir, si existe una función biyectiva
f : A → n = {0, . . . , n − 1}.

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

Lema 1 Conjunto menos numeroso

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:

Conjunto enumerable (alternativa) ♦ Precisión: cada instrucción debe ser planteada de


forma precisa y no ambigua.
Un conjunto A es enumerable si y sólo si todos sus
elementos se pueden poner en una lista infinita; es decir, ♦ Determinismo: cada instrucción tiene un único
si existe una sucesión infinita comportamiento que depende sólo del input.

(a0 , a1 , a2 , . . . , an , an+1 , . . .) ♦ Finitud: el algoritmo está compuesto por un


conjunto finito de instrucciones.
tal que todos los elementos de A aparecen en la sucesión
una única vez cada uno. Objetivos
El análisis de algoritmos tiene dos objetivos:
Teorema 18 (Cantor)
♦ Estudiar cuándo y por qué los algoritmos son
El intervalo real (0, 1) ⊆ R es infinito pero no correctos (es decir, hacen lo que dicen que hacen).
enumerable.
♦ Estimar la cantidad de recursos computacionales
que un algoritmo necesita para su ejecución.
Teorema 19
Pseudo-código
(0, 1) ≈ R ≈ P(N)
Se usa pseudo-código para escribir algoritmos:

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

Corrección de algoritmos Notación asintótica


Un algoritmo es Lo que nos interesa luego de determinar cuando un
algoritmo es correcto, es su comportamiento a medida
♦ correcto, si para todo input válido, el algoritmo se que crece el input, ya que el hecho de que un algoritmo
detiene y produce un output correcto. sea correcto no implica que sea útil en la práctica: hay
♦ incorrecto, si existe un input válido para el cual que determinar su tiempo de ejecución.
el algoritmo no se detiene o produce un output
Vamos a ocupar funciones de dominio natural (N) y
incorrecto.
recorrido real positivo (R+ )
Algoritmos iterativos ♦ El dominio será el tamaño del input de un algoritmo.

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

Complejidad algoritmos iterativos ♦ Estimaremos entonces el tiempo para el peor caso


(cuando el input hace que el algoritmo se demore la
Queremos encontrar una función T (n) que modele el
mayor cantidad de tiempo posible) y el mejor caso
tiempo de ejecución de un algoritmo.
(lo contrario) para un tamaño de input n.
♦ Donde n es el tamaño del input. En nuestro ejemplo:
♦ No queremos valores exactos de T para cada n, sino ♦ Mejor caso: a0 = k. Aquı́ la lı́nea 2 se ejecuta una
que una notación asintótica para ella. vez, y luego T (n) es Θ(1).

♦ 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. Θ.

♦ Output: el ı́ndice de k en A, −1 si no está.


♦ Nos basta y es suficiente con una buena estimación
O, tanto para el mejor y el peor caso.
1 f o r i = 0 t o n − 1 do ♦ Nos da una cota superior para el tiempo de ejecución
2 i f ai = k then del algoritmo.
3 return i
4 r e t u r n −1 Complejidad algoritmos recursivos
¿Qué instrucción(es) contamos? En este caso, el principio es el mismo: contar
instrucciones.
♦ Deben ser representativas de lo que hace el problema.
♦ Buscamos alguna(s) instrucción(es) representativa(s).
♦ En este caso, por ejemplo 3 y 4 no lo son.
♦ Contamos cuántas veces se ejecuta en cada ejecución
♦ La instrucción 2 si lo serı́a, y más especı́ficamente la del algoritmo.
comparación.
Tenemos que considerar las llamadas recursivas del
• Las comparaciones estan entre las instrucciones que algoritmo.
se cuentan tı́picamente, sobre todo en búsqueda y ♦ Esto hara que aparezcan fórmulas recursivas que
ordenación. deberemos resolver.
¿Respecto a qué parámetro buscamos la notación Por ejemplo, podemos encontrar una función T (n) para
asintótica? la cantidad de comparaciones que realiza un algoritmo
en el peor caso, en función del tamaño del arreglo.
♦ En el ejemplo, es natural pensar en el tamaño de Este tipo de funciones se denomina ecuación de
arreglo n. recurrencia.
En conclusión: queremos encontrar una notación
asintótica (ojalá Θ) para la cantidad de veces que se Notación asintótica condicional
ejecuta la comparación de la lı́nea 2 en función de n. Sea P ⊆ N. Luego,
Llamaremos a esta cantidad T (n).
O(f | P ) = {g : N → R+ | (∃c ∈ R+ )(∃n0 ∈ N)
Ahora, ¿T (n) depende solo de n? (∀n ≥ n0 )(n ∈ P → g(n) ≤ c · f (n))}
♦ El contenido del arreglo influye en la ejecución del Las notaciones Ω(f | P ) y Θ(f | P ) se definen de manera
algoritmo. análoga.

12
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

Función asintóticamente no decreciente Aristas paralelas


Una función f : N → R+ se denomina ası́ si cumple que Dos aristas (x, y) ∈ E y (z, w) ∈ E son paralelas si
x = w e y = z. Es decir, si conectan a los mismos
(∃n0 ∈ N)(∀n ≥ n0 )(f (n) ≤ f (n + 1)) vértices.

Por ejemplo, las funciones log2 (n), n, nk y 2n son


ası́ntoticamente no decrecientes. Grafo no dirigido
Un grafo G = (V, E) es no dirigido si toda arista tiene
Función b-armónica una arista paralela. Alternativamente, G es no dirigido
si E es simétrica. En estos grafos se dibuja con trazos
Dado un natural b > 0, una función f : N → R+ se
en lugar de flechas.
denomina b-armónica si f (b · n) ∈ O(f ).

Teorema 23 Grafo simple

Sean f, g : N → R+ , un natural b > 1 y Un grafo no dirigido G = (V, E) es simple si no tiene


rulos. Alternativamente, G es simple si E es irrefleja.
P OT EN CIAb = {bi | i ∈ N}

Si f, g son asintóticamente no decrecientes, g es b- Convención sobre grafos


armónica y f ∈ O(g | P OT EN CIAb ), entonces f ∈ De ahora en adelante (a menos que se explicite
O(g). otra cosa), cuando hablemos de grafos estaremos
refiriéndonos a grafos simples, no dirigidos, no vacı́os
Teorema 24 (Maestro) y finitos.
Si a1 , a2 , b, c, c0 , d ∈ R+ y b > 1, entonces para una ♦ V ̸= ∅ y |V | = n, con n ∈ N.
recurrencia de la forma
( ♦ E es simétrica e irrefleja.
c0 0 ≤ n < n0
T (n) =
a1 · T (⌈ nb ⌉) + a2 · T (⌊ nb ⌋) + c · nd n ≥ n0
Vértices adyacentes o vecinos
se cumple que Dado un grafo G = (V, E), dós vértices x, y ∈ V son
 adyacengtes o vecinos si (x, y) ∈ E.
d
Θ(n )

 a1 + a2 < bd
T (n) ∈ Θ(nd · log(n)) a1 + a2 = bd
 Isomorfismo
Θ(nlogb (a1 +a2 ) ) a1 + a2 > bd

Dos grafos G1 = (V1 , E1 ) y G2 = (V2 , E2 ) son
isomorfos si existe una función biyectiva f : V1 → V2
9. Teorı́a de grafos tal que (x, y) ∈ E1 si y sólo si (f (x), f (y)) ∈ E2 . En tal
caso:
Grafo
♦ Diremos que f es un isomorfismo entre G1 y G2 .
Un grafo G = (V, E) es un par donde V es un conjunto,
cuyos elementos llamaremos vértices o nodos, y E es Escribiremos G1 ∼
♦ = G2 .
una relación binaria sobre V (es decir, E ⊆ V × V ),
cuyos elementos llamaremos aristas.
Teorema 25
Para representar un grafo, usamos puntos o cı́rculos para
dibujar vértices, y flechas para dibujar aristas. Cada La relación de isomorfismo ∼ = es una relación de
arista será una flecha entre los nodos que relaciona. equivalencia (es decir, es refleja, simétrica y transitiva).
Estos son los llamados grafos dirigidos.
Camino (informal)
Rulo (loop)
Un camino es un grafo cuyos vértices pueden dibujarse
Es una arista (x, y) ∈ E tal que x = y. Es decir, es una en una lı́nea tal que dos vértices son adyacentes si y
arista que conecta un vértice con sı́ mismo. sólo si aparecen consecutivos en la lı́nea.

13
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

Camino (formal) Grafo bipartito completo

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.

A la clase de equivalencia [GP


n ]∼
= la llamaremos Pn : los Subgrafo
caminos con n vértices.
Dado un grafo G = (VG , EG ), un grafo H = (VH , EH ) es
un subgrafo de G (denotado como H ⊆ G) si VH ⊆ VG ,
Ciclo (informal) EH ⊆ EG y EH sólo contiene aristas entre vértices de
VH .
Un ciclo es un grafo cuyos vértices pueden dibujarse en
un cı́rculo tal que dor vértices son adyancentes si y sólo
Clique
si aparecen consecutivos en él.
Dado un grafo G = (VG , EG ), un clique en G es un
conjunto de vértices K ⊆ VG tal que
Ciclo (formal)
∀ v1 , v2 ∈ K. (v1 , v2 ) ∈ EG
Considere un grafo GC C C
n = (Vn , En ), donde

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

Un grafo completo es un grafo en el que todos los pares Grafo autocomplementario


de vértices son adyacentes.
Un grafo G se dice autocomplementario si G ∼
= G.
A la clase de equivalencia de los grafos completos de n
vértices la llamaremos Kn . Teorema 26
Dado un grafo G = (V, E), un conjunto V ′ ⊆ V es un
clique en G si y sólo si es un conjunto independiente en
Grafo bipartito
G.
Un grafo G = (V, E) se deice bipartito si V se puede
particionar en dos conjuntos no vacı́os V1 y V2 tales que Matriz de adyacencia
para toda arista (x, y) ∈ E, x ∈ V1 e y ∈ V2 , o x ∈ V2 e
Dado un grafo G = (V, E), como E es una relación
y ∈ V1 .
binaria podemos representarla en una matriz, llamada
Es decir, matriz de adyacencia de G.

Por ejemplo, si V = {1, 2, 3, 4} y E = {(1, 2),


♦ V = V1 ∪ V2
(1, 4), (2, 1), (2, 3), (2, 4), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)},
entonces
V1 ∩ V2 = ∅

 
0 1 0 1
1 0 1 1
♦ Cada arista une a dos vértices en conjuntos distintos MG =  0 1 0 1

de la partición. 1 1 1 0

14
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

♦ Si el grafo es simple, la diagional sólo contiene ceros. Caminos y ciclos


T Un camino es un grafo es una caminata en la que no
♦ Si el grafo es no dirigido, entonces MG = MG .
se repiten aristas.
Matriz de incidencia
Un ciclo en un grafo es una caminata cerrada en la que
Además de la matriz de adyacencia, podemos usar una no se repiten aristas.
matriz de incidencia AG :
♦ Etiquetamos las aristas de G. Largo de una caminata, camino o ciclo

♦ 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.

♦ Corolario: En un grafo sin rulos siempre hay una Arista de corte


cantidad par de vértices de grado impar.
Una arista de corte en un grafo G es una arista tal
Caminatas que al eliminarla aumenta la cantidad de componentes
conexas de G.
Una caminata en un grafo G = (V, E) es una secuencia
de vértices (v0 , v1 , v2 , . . . , vk ), con v0 , . . . , vk ∈ V , tal Vértice de corte
que (vi−1 , vi ) ∈ E, con i entre 1 y k.
Un vértice de corte en un grafo G es un vértice tal que
Una caminata cerrada en un grafo es una caminata al eliminarlo (junto con todas sus aristas incidentes)
que empieza y termina en el mismo vértice: v0 = vk . aumenta la cantidad de componentes conexas de G.

15
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

Teorema 29 Ciclo Hamiltoniano

Una arista en un grafo G es de corte si y sólo si no Un ciclo Hamiltoniano en un grafo G es un ciclo en G


pertenece a ningún ciclo en G. que contiene a todos sus vértices una única vez cada
uno (excepto por el inicial y el final).
Lema 2 ♦ Diremos que G es un grafo Hamiltoniano si contiene
un ciclo Hamiltoniano.
En un grafo simple G, toda caminata cerrada de largo
impar contiene un ciclo de largo impar. ♦ No hay ninguna relación entre grafos Eulerianos y
Hamiltonianos.
Teorema 30

Un grafo simple conexo G es bipartito si y sólo si no Árbol


contiene ningún ciclo de largo impar. Un grafo T = (V, E) es un árbol si para cada par de
vértices x, y ∈ V existe un único camino entre ellos. Por
Multigrafo lo tanto, siempre es conexo.

Sea V un conjunto de vértices, E un conjunto de aristas


y S ⊆ P(V ) tal que Bosque
Un grafo T = (V, E) es un bosque si para cada par de
S = {{u, v} | u ∈ V ∧ v ∈ V } vértices x, y ∈ V , si existe un camino entre ellos, este
es único. Un bosque es un conjunto de árboles.
Un multigrafo G = (V, E, f ) es un trı́o ordenado donde
f : E → S es una función que asigna un par de vértices
a cada arista en E. Árboles con raı́z
Distinguimos uno de los vértices r ∈ V , al que
Ciclo Euleriano llamaremos la raı́z del árbol. Los vértices de grado
menor o igual a 1 se llaman hojas. Los dibujamos con
Un ciclo euleriano en un (multi)grafo G es un ciclo que la raı́z arriba y los demás vértices hacia abajo.
contiene a todas las aristas y vértices de G.

♦ Es un ciclo, por lo tanto no puede repetir aristas. Definiciones alternativas de árbol


Hay muchas definiciones equivalentes para los árboles:
♦ Pueden repetirse vértices.
1. Un grafo T = (V, E) es un árbol si y sólo si es conexo
♦ Iremos que G es un grafo Euleriano si contiene un y acı́clico.
ciclo Euleriano.
2. Un grafo T = (V, e) es un árbol si y sólo si es conexo
Teorema 31 y todas sus aristas son de corte.

Un (multi)grafo sin rulos es Euleriano si y sólo si es


Teorema 33
conexo y todos sus vértices tienen grado par.
Todo árbol es un grafo bipartito.
Camino Euleriano
Teorema 34
Un camino Euleriano en un (multi)grafo G es un camino
no cerrado que contiene a todas las aristas y vértices de Si T es un árbol y v es una hoja de él, entonces el grafo
G. T − v (el grafo que resulta de quitar el vértice y sus
aristas incidentes) es un árbol.
Teorema 32
Otra definición útil de árbol
Un (multi)grafo tiene un camino Euleriano si y sólo si
es conexo y contiene exactamente dos vértices de grado Un grafo T = (V, E) con n vértices es un árbol si y
impar. sólo si es conexo y tiene exactamente n − 1 aristas.

16
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

Profundidad, altura, ancestros, padre, hijos y 10. Teorı́a de números


hermanos
Recordando la relación |
Sea T = (V, E) un árbol con raı́z r y x un vértice
cualquiera. La relación divide a, denotada por |, sobre los enteros
sin el 0, es una relación tal que a está relacionado con b
♦ La profundidad de x es el largo del camino que lo si y sólo b es múltiplo de a:
une con r (r tiene profundidad 0).
a|b si y sólo si ∃k ∈ Z tal que b = ka
♦ La altura o profundidad del árbol es el máximo de
las profundidades de sus vértices. Recordando la relación ≡n
La relación equivalencia módulo n, denotada por ≡n ,
♦ Los ancestros de x son los vértices que aparecen en sobre los enteros, es una relación tal que a está
el camino entre él y r. Note que x es ancestro de sı́ relacionado con b si y sólo si n|(b − a):
mismo.
a ≡n b si y sólo si n|(b − a)
♦ El padre de x es su ancestro (propio) de mayor
a ≡n b si y sólo si ∃k ∈ Z tal que (b − a) = kn
profundidad. Diremos que x es hijo de su padre.
♦ La relación ≡n es una relación de equivalencia.
♦ Dos vértices x e y con el mismo padre son hermanos.
♦ Podemos tomar el conjunto cuociente generado por
ella sobre Z.
Árboles binarios
♦ Usando las clases de equivalencia, definimos la suma
Un árbol con raı́z se dice binario si todo vértice tiene y la multiplicación.
grafo a lo más 3; o equivalentemente, si todo vértice
tiene a lo más dos hijos. Podemos distinguir entre hijos
izquierdos y derechos. Suma y multiplicación
Dado n ∈ N, n > 0, definimos
Teorema 35 Zn = Z/ ≡n
La cantidad de vértices sin hijos de un árbol binario es
y sus operaciones
la cantidad de vértices con exactamente dos hijos más
1. [i] + [j] = [i + j]
[i] · [j] = [i · j]
Árbol binario completo
Operación módulo n
Un árbol binario completo es un árbol binario tal
que: La operación módulo n entrega el resto de la división
por n. Se escribe a mod n o a % n.
1. Todas las hojas están a la misma profundidad.
Con esta operación podemos redefinir la suma y
2. Todos los vértices que no son hojas tienen multiplicación en Zn :
exactamente dos hijos.
[i] + [j] = (i + j) mod n
[i] · [j] = (i · j) mod n
Teorema 36
♦ Una observación importante es que siempre se cumple
1. Un árbol binario completo de altura H tiene
que
exactamente 2H hojas.
0 ≤ a mod n < n
2. Un árbol binario completo de altura H tiene
exactamente 2H+1 − 1 vértices. Teorema 37
a ≡n b si y sólo si a mod n = b mod n.
3. Si H es la altura de un árbol binario completo con
n vértices, entonces H ≤ log2 (n). ♦ Corolario: a ≡n a mod n.

17
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

Teorema 38 Algoritmo extendido del M CD (alternativa)


Si a ≡n b y c ≡n d, entonces Sea a ≥ b.

(a + c) ≡n (b + d) 1. Definimos una sucesión {ri } como:


(a · c) ≡n (b · d)
r0 = a, r1 = b, ri+1 = ri−1 mod ri
♦ Corolario:
2. Definimos sucesiones {si }, {ti } tales que:
(a + b) mod n = ((a mod n) + b mod n) mod n
a · b mod n = ((a mod n)(b mod n)) mod n s0 = 1, t0 = 0
s1 = 0, t1 = 1
   
ri−1 ri−1
Teorema 39 (Fermat) si+1 = si−1 − · si , ti+1 = ti−1 − · ti
ri ri
Si p es un numero primo, para cualquier entero a se
cumple que ap ≡p a. 3. Calculamos estas sucesiones hasta un k tal que
rk = 0.
♦ Corolario: Si p es un número primo y a es un entero
que no es múltiplo de p, entonces ap−1 ≡p 1. 4. Entonces, M CD(a, b) = rk−1 = sk−1 · a + tk−1 · b.

Máximo común divisor (informal) Inverso


Dados dos números a y b, su máximo común divisor, b es inverso de a en módulo n si a · b ≡n 1. Se puede
denotado como M CD(a, b), es el máximo natural n tal denotar como a−1 . Ojo: no es lo mismo que a1 .
que n|a y n|b.
Teorema 41
Teorema 40
a tiene inverso en módulo n si y sólo si M CD(a, n) = 1.
Si b > 0, entonces M CD(a, b) = M CD(b, a mod b). Si se cumple esto, diremos que a y n son primos
( relativos o coprimos.
a b=0
M CD(a, b) =
M CD(b, a mod b) b > 0 Método para calcular el inverso
La demostración del teorema 41 nos da un método para
Calculando enteros con M CD calcular el inverso:
Con el algoritmo (ecuación) anterior, se puede calcular ♦ Usamos el algoritmo extendido del máximo común
s, t ∈ Z sabiendo que
divisor para encontrar s y t tales que 1 = s · a + t · n.
M CD(a, b) = s · a + t · b ♦ s será el inverso de a en módulo n.

Algoritmo extendido del M CD Dados a, b, n ∈ Z, si a ≡n b tambien podemos escribir:


Sea a ≥ b. a ≡ b (mod n)
1. Definimos una sucesión {ri } como:
Esta es la notación más usada en la literatura.
r0 = a, r1 = b, ri+1 = ri−1 mod ri
Congruencia lineal
2. Definimos sucesiones {si }, {ti } tales que:
Una congruencia lineal es una ecuación de la forma
s0 = 1, t0 = 0
ax ≡ b (mod n)
s1 = 0, t1 = 1
ri = si · a + ti · b donde n ∈ N − {0}, a, b ∈ Z y x es una variable.

3. Calculamos estas sucesiones hasta un k tal que Corolario teorema 41


rk = 0.
Si a y n son primos relativos, entonces ax ≡ b (mod n)
4. Entonces, M CD(a, b) = rk−1 = sk−1 · a + tk−1 · b. tiene solución en Zn .

18
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

Teorema 42 (Chino del Resto) Clase de complejidad DTIME


Sean m1 , m2 , . . . , mn con mi > 1 tal que mi , mj son La clase de complejidad DTIME(T (n)) es el conjunto
primos relativos con i ̸= j. Para a1 , a2 , . . . , an ∈ Z, el de problemas para los cuales existe un algoritmo que lo
sistema de ecuaciones: resuelve de complejidad O(T (n)), donde n es el tamaño
x ≡ a1 (mod m1 ) del input:
x ≡ a2 (mod m2 ) DTIME(T (n)) = {π | π es un problema de decisión para
.. el cual existe un algoritmo A que lo resuelve y que para
.
todo w ∈ Iπ corre en O(T (|w|))}.
x ≡ an (mod mn )
n Los ejemplos anteriores pertenecen a las clases de
complejidad:
Y
tiene una única solución en Zm con m = mi
i=1
♦ PRIMO ∈ DTIME(10n )
Lema 3
Sean m1 , m2 > 1 coprimos y u, v ∈ Z. Si u ≡
♦ EULERIANO ∈ DTIME(n2 )
v (mod m1 ) y u ≡ v (mod m2 ), entonces
♦ SAT ∈ DTIME(2n )
u ≡ v (mod m1 · m2 )
Este lema se puede generalizar para n coprimos. Clase de complejidad PTIME

La clase de complejidad PTIME o simplemente P se


11. Complejidad computacional define como

Problemas de decisión (informal) [
P= DTIME(nk )
Son los problemas para los cuales sus respuestas posibles k=0
son SI o NO.
La clase PTIME contiene a todos los problemas que
pueden resolverse en tiempo polinomial. En general
Problemas de decisión (formal)
diremos que estos problemas son tratables. Por ejemplo,
Un problema de decisión π se compone de un conjunto EULERIANO ∈ P.
de instancias Iπ y un lenguaje Lπ ⊆ Iπ , y se define
como
Clase de complejidad NP
Dado un elemento w ∈ Iπ , determinar si w ∈ Lπ
Como definición informal, la clase de complejidad NP
Ejemplos: contiene a todos los problemas de decisión para los
♦ PRIMO: cuales es posible verificar una solución al problema
de forma eficiente. Sin embargo, no necesariamente
• IPRIMO = N encontrar la solución es fácil.
• LPRIMO = {p ∈ N | p es primo}
En una vı́a más formal, la clase de complejidad NP
♦ EULERIANO: contiene a todos los problemas de decisión π para los
• IEULERIANO = {G | G es un grafo} cuales se cumple lo siguiente:
• LEULERIANO = {G | G es un grafo con ciclo euleariano} Si w ∈ L , entonces existe un certificado c(w), de
π
♦ SAT: tamaño polinomial respecto a w, tal que existe un
algoritmo que usando c(w) puede determinar en tiempo
• ISAT = L(P ) polinomial si w ∈ Lπ .
• LSAT = {α ∈ L(P ) | α es satisfacible}
Un algoritmo A resuelve un problema de decisión π si Teorema 43
para cada input w ∈ Iπ , el algoritmo A responde SI
cuando w ∈ Lπ , y responde NO cuando w ∈ Iπ − Lπ P ⊆ NP. Este teorema nos permite establecer una
(en este caso diremos que w ∈
/ Lπ ). primera cota para las clases P y NP.

19
P. Universidad Católica de Chile Dpto. de Ciencia de la Computación

Reducciones polinomiales NP-hard

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 otras palabras, los problemas NP-hard son por lo


En este caso diremos que π ′ es por lo menos tan
menos tan difı́ciles como todos los problemas en NP.
difı́cil como π y lo denotaremos como π ∝ π ′ .
NP-completo
Fórmula en 3-CNF
El único problema con la definición de NP-hard es
Decimos que una fórmula α está en 3-CNF si es una que no nos dice nada sobre las cotas superiores de los
conjunción de cláusulas de exactamente 3 literales cada problemas. La siguiente definición logra capturar la
una. verdadera complejidad de la clase NP:

♦ 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}

∝ es un preorden (refleja y transitiva). CLIQUE es NP-completo.

20

You might also like