Dra. Elisa Schaeffer · los vértices son “puertas” V ={1,2,...,n} las etiquetas están...

Post on 26-Jul-2020

2 views 0 download

Transcript of Dra. Elisa Schaeffer · los vértices son “puertas” V ={1,2,...,n} las etiquetas están...

Análisis de Algoritmos

Lógica e información digital

Dra. Elisa Schaeffer

elisa.schaeffer@gmail.com

PISIS / FIME / UANL

Logica e informacion digital– p. 1

Demostraciones

Hechos universales = axiomas

Logica e informacion digital– p. 2

Demostraciones

Hechos universales = axiomas

Definición = fijar el sentido de algún formalismo,notación o terminología

Logica e informacion digital– p. 2

Demostraciones

Hechos universales = axiomas

Definición = fijar el sentido de algún formalismo,notación o terminología

La meta: derivar de los axiomas y las definiciones,algunos teoremas

Logica e informacion digital– p. 2

Demostraciones

Hechos universales = axiomas

Definición = fijar el sentido de algún formalismo,notación o terminología

La meta: derivar de los axiomas y las definiciones,algunos teoremas

Teoremas auxiliares se llaman lemas

Logica e informacion digital– p. 2

Demostraciones

Hechos universales = axiomas

Definición = fijar el sentido de algún formalismo,notación o terminología

La meta: derivar de los axiomas y las definiciones,algunos teoremas

Teoremas auxiliares se llaman lemas

Demostracion: una cadena de pasos que establecenque un teorema sea verdad

Logica e informacion digital– p. 2

Inducción matemática

Primero se establece que una condicion inicial c1 esválida y verdadera (el paso base)

Paso inductivo: deriva que si ck es válida y verdadera,también ck+1 lo es

Logica e informacion digital– p. 3

Lógica booleana

Un conjunto X = {x1, x2, . . .}. de variables (también:átomos)

Logica e informacion digital– p. 4

Lógica booleana

Un conjunto X = {x1, x2, . . .}. de variables (también:átomos)

Una variable se interpreta a tener el valor “verdad” ⊤ o“falso”⊥.

Logica e informacion digital– p. 4

Lógica booleana

Un conjunto X = {x1, x2, . . .}. de variables (también:átomos)

Una variable se interpreta a tener el valor “verdad” ⊤ o“falso”⊥.

La negación de una variable xi se denota con ¬xi:

¬xi =

{

⊤, si xi = ⊥,

⊥, si xi = ⊤.

Logica e informacion digital– p. 4

Expresiones

Expresiones básicas: literales xi y ¬xi

Conectivos: ∨ (“o”), ∧ (“y”) — también ¬ se considera unconectivo

Si φ1 y φ2 son expresiones booleanas, también (φ1 ∨ φ2),(φ1 ∧ φ2) y ¬φ1 lo son

Logica e informacion digital– p. 5

Simplificación de expresiones

n∨

i=1

ϕi significa ϕ1 ∨ · · · ∨ ϕn

n∧

i=1

ϕi significa ϕ1 ∧ · · · ∧ ϕn

φ1 → φ2 significa ¬φ1 ∨ φ2

φ1 ↔ φ2 significa (¬φ1 ∨ φ2) ∧ (¬φ2 ∨ φ1).

→ = implicación↔ = equivalencia

Logica e informacion digital– p. 6

Precedencia

De la más fuerte al más débil: ¬, ∨, ∧, →, ↔.

Por ejemplo ¬x1 ∨ x2 → x3 ↔ ¬x4 ∧ x1 ∨ x3 debería serinterpretada como

((((¬x1) ∨ x2) → x3) ↔ ((¬x4) ∧ (x1 ∨ x3))).

Logica e informacion digital– p. 7

Asignación de verdad

Denota por X(φ) el conjunto de variables booleana queaparezcan en una expresión φ.

Una asignacion de valoresT : X ′ → {⊤,⊥} esadecuada para φ si X(φ) ⊆ X ′.

Escribimos xi ∈ T si T (xi) = ⊤ y xi /∈ T si T (xi) = ⊥.

Logica e informacion digital– p. 8

Expresión satisfactible

T satisface a φ = T |= φ

(I) Si φ ∈ X ′, T |= φ si y sólo si T (φ) = ⊤

(II) Si φ = ¬φ′, T |= φ si y sólo si T 6|= φ′

(III) Si φ = φ1 ∧ φ2, T |= φ si y sólo si T |= φ1 y T |= φ2

(IV) Si φ = φ1 ∨ φ2, T |= φ si y sólo si T |= φ1 o T |= φ2

φ es satisfactible si existe una T que es adecuada para φ yT |= φ.

Logica e informacion digital– p. 9

Tautología

Una expresión booleana φ es válida si para toda Timaginable aplica que T |= φ. En este caso, la expresiónes una tautología y se lo denota por |= φ.

En general aplica que |= φ si y sólo si ¬φ es nosatisfactible.

Logica e informacion digital– p. 10

Equivalencia lógica

Dos expresiones φ1 and φ2 son lógicamente equivalentessi para toda asignación T que es adecuada para las dosexpresiones aplica que

T |= φ1 si y sólo si T |= φ2.

La equivalencia lógica se denota por φ1 ≡ φ2.

Logica e informacion digital– p. 11

Formal normales

La forma normal conjuntiva CNF utiliza puramente elconectivo ∧ y literales

La forma normal disyunctiva DNF utiliza puramente elconectivo ∨ y literales

Una conjunción de literales se llama un implicante y unadisyunción de literales se llama una cláusula.

Asumimos que ninguna cláusula ni implicante sea repetido en

una forma normal, y tampoco se repiten literales dentro de las

cláusulas o los implicantes.

Las expresiones en forma normal pueden en el peor caso tenerun largo exponencialen comparación con el largo de laexpresión original.

Logica e informacion digital– p. 12

Transformaciones

Reemplazar φ1 ↔ φ2 con (¬φ1 ∨ φ2) ∧ (¬φ1 ∨ φ2)

Reemplazar φ1 → φ2 con ¬φ1 ∨ φ2

Mover los ¬ a las variables para formar literales:reemplazar

¬¬φ con φ

¬(φ1 ∨ φ2) con ¬φ1 ∧ ¬φ2

¬(φ1 ∧ φ2) con ¬φ1 ∨ ¬φ2.

Logica e informacion digital– p. 13

CNF

Mover los ∧ afuera de los disyunciones:

φ1 ∨ (φ2 ∧ φ3) es equivalente a (φ1 ∨ φ2) ∧ (φ1 ∨ φ3)

(φ1 ∧ φ2) ∨ φ3 es equivalente a (φ1 ∨ φ3) ∧ (φ2 ∨ φ3).

Logica e informacion digital– p. 14

DNF

Mover los ∨ afuera de los conjunciones:

φ1 ∧ (φ2 ∨ φ3) es equivalente a (φ1 ∧ φ2) ∨ (φ1 ∧ φ3)

(φ1 ∨ φ2) ∧ φ3 es equivalente a (φ1 ∧ φ3) ∨ (φ2 ∧ φ3).

Logica e informacion digital– p. 15

Función booleana

Una función booleana de n-dimensiones f es unmapeo de {⊤,⊥}n al conjunto {⊤,⊥}

Logica e informacion digital– p. 16

Función booleana

Una función booleana de n-dimensiones f es unmapeo de {⊤,⊥}n al conjunto {⊤,⊥}

¬ corresponde a una función unariaf¬ : {⊤,⊥} → {⊤,⊥}

Logica e informacion digital– p. 16

Función booleana

Una función booleana de n-dimensiones f es unmapeo de {⊤,⊥}n al conjunto {⊤,⊥}

¬ corresponde a una función unariaf¬ : {⊤,⊥} → {⊤,⊥}

∨, ∧, → y ↔ definen cada uno una función binariaf : {⊤,⊥}2 → {⊤,⊥}

Logica e informacion digital– p. 16

Funciones booleanas y expresiones

Cada expresión booleana se puede interpretar como unafunción booleana con la dimensión n = |X(φ)|

φ expresauna función f si cada n-eada de valores deverdad τ = (t1, . . . , tn) aplica que

f(τ) =

{

⊤, si T |= φ,

⊥, si T 6|= φ,

donde T es tal que T (xi) = ti para todo i = 1, . . . , n.

Logica e informacion digital– p. 17

Circuitos booleanos

Grafos dirigidos no ciclicos

los vértices son “puertas” V = {1, 2, . . . , n}

Logica e informacion digital– p. 18

Circuitos booleanos

Grafos dirigidos no ciclicos

los vértices son “puertas” V = {1, 2, . . . , n}

las etiquetas están asignadas (por sorteo topológico) así

que para cada arista 〈i, j〉 ∈ E aplica que i < j

Logica e informacion digital– p. 18

Circuitos booleanos

Grafos dirigidos no ciclicos

los vértices son “puertas” V = {1, 2, . . . , n}

las etiquetas están asignadas (por sorteo topológico) así

que para cada arista 〈i, j〉 ∈ E aplica que i < j

una puerta = una xi, una valor ⊤ o ⊥ o un conectivo

Logica e informacion digital– p. 18

Circuitos booleanos

Grafos dirigidos no ciclicos

los vértices son “puertas” V = {1, 2, . . . , n}

las etiquetas están asignadas (por sorteo topológico) así

que para cada arista 〈i, j〉 ∈ E aplica que i < j

una puerta = una xi, una valor ⊤ o ⊥ o un conectivo

las que corresponden a variables o los valores de verdad

tienen grado de entrada cero

Logica e informacion digital– p. 18

Circuitos booleanos

Grafos dirigidos no ciclicos

los vértices son “puertas” V = {1, 2, . . . , n}

las etiquetas están asignadas (por sorteo topológico) así

que para cada arista 〈i, j〉 ∈ E aplica que i < j

una puerta = una xi, una valor ⊤ o ⊥ o un conectivo

las que corresponden a variables o los valores de verdad

tienen grado de entrada cero

las de tipo negación tienen grado de entrada uno

Logica e informacion digital– p. 18

Circuitos booleanos

Grafos dirigidos no ciclicos

los vértices son “puertas” V = {1, 2, . . . , n}

las etiquetas están asignadas (por sorteo topológico) así

que para cada arista 〈i, j〉 ∈ E aplica que i < j

una puerta = una xi, una valor ⊤ o ⊥ o un conectivo

las que corresponden a variables o los valores de verdad

tienen grado de entrada cero

las de tipo negación tienen grado de entrada uno

las de ∧ o ∨ tienen grado de entrada dos

Logica e informacion digital– p. 18

Circuitos booleanos

Grafos dirigidos no ciclicos

los vértices son “puertas” V = {1, 2, . . . , n}

las etiquetas están asignadas (por sorteo topológico) así

que para cada arista 〈i, j〉 ∈ E aplica que i < j

una puerta = una xi, una valor ⊤ o ⊥ o un conectivo

las que corresponden a variables o los valores de verdad

tienen grado de entrada cero

las de tipo negación tienen grado de entrada uno

las de ∧ o ∨ tienen grado de entrada dos

la última puerta n es la salida del circuitoLogica e informacion digital– p. 18

¿Porqué circuitos?

Los valores de verdad de las distintas puertas sedetermina con un procedimiento inductivo así que sedefine el valor para cada puerta todas las entradas de lacual ya están definidos.

Los circuitos pueden ser representaciones mascompactasque las expresiones: en un circuito se puedecompartir subcircuitos.

Logica e informacion digital– p. 19

Lógica proposicional

La lógica de primer orden es una lógica donde secuantifica variables individuales.

∃ para la cuantificación existencial(= por lo menos uno)

∀ para la cuantificación universal (= todos)

Logica e informacion digital– p. 20

Información digital: bit

El bit es la unidad básica de información digital: tiene dosvalores posibles que se interpreta como los valores lógicos“verdad” (1) y “falso” (0).

Logica e informacion digital– p. 21

Información digital: bit

El bit es la unidad básica de información digital: tiene dosvalores posibles que se interpreta como los valores lógicos“verdad” (1) y “falso” (0).

La cantidad b de bits requeridos para representar un valorx ∈ Z

+ está el exponente de la mínima potencia de dosmayor a x,

b = mınk∈Z

{

k | 2k > x}

.

Logica e informacion digital– p. 21

Información digital: byte

El byte es la unidad básica de capacidadde memoriadigital: es una sucesión de ocho bits, por lo cual el númeroentero más grande que se puede guardar en un solo bytees 28 − 1 = 255.

Logica e informacion digital– p. 22

Información digital: byte

El byte es la unidad básica de capacidadde memoriadigital: es una sucesión de ocho bits, por lo cual el númeroentero más grande que se puede guardar en un solo bytees 28 − 1 = 255.

Un kilobyte es 1024 bytes, un megabyte es 1024 kilobytes(1048576 bytes) y un gigabyte es 1024 megabytes(1073741824 bytes).

Logica e informacion digital– p. 22

Información digital: byte

El byte es la unidad básica de capacidadde memoriadigital: es una sucesión de ocho bits, por lo cual el númeroentero más grande que se puede guardar en un solo bytees 28 − 1 = 255.

Un kilobyte es 1024 bytes, un megabyte es 1024 kilobytes(1048576 bytes) y un gigabyte es 1024 megabytes(1073741824 bytes).

Normalmente el prefix kilo implica un mil, pero como mil noes ningún potencia de dos, eligieron la potencia máscercana, 210 = 1024, para corresponder a los prefixes.

Logica e informacion digital– p. 22

Representación de punto flotante

Para representar números reales por computadora, hay quedefinir hasta que exactitud se guarda los decimales del número.

Punto flotante: la representación se adapta al ordenmagnitud del valor x ∈ R por trasladar la coma decimalhacia la posición de la primera cifra significativa de xmediante un exponente γ:

x = m · bγ,

donde m se llama la mantisa y contiene los dígitossignificativos de x. El parámetro b es la base del sistemade representación, mientras γ ∈ Z determina el rango devalores posibles (por la cantidad de memoria que tienereservada).

Logica e informacion digital– p. 23

Función piso

⌊x⌋ = maxy∈Z

{y | x ≤ y}

Por definición, ∀x ∈ R

⌊x⌋ ≤ x < ⌊x+ 1⌋

x− 1 < ⌊x⌋ ≤ x

∀k ∈ Z y x ∈ R aplica

⌊k + x⌋ = k + ⌊x⌋

Logica e informacion digital– p. 24

Función techo

⌈x⌉ = mıny∈Z

{y | x ≤ y}

Aplica por definición que

x ≤ ⌈x⌉ < x+ 1.

Logica e informacion digital– p. 25

Función parte entera

Consideramosfloat a = 3.76;int b = (int)a;donde la regla de asignar un valor a b es la función [x]:

Denota el valor de la variable a por a. Si a ≥ 0, se asigna ab el valor ⌊a⌋, y cuando a < 0, se asigna a b el valor ⌈a⌉.

El redondeo típico de x ∈ R al entero más próximo esequivalente a [x+ 0,5].

Logica e informacion digital– p. 26

Advertencia

Hay que tener mucho cuidado con la operación de parteentera en programación, como implica pérdida de datos.

Por ejemplo, por intentarfloat a = 0.6/0.2; int b = (int)a;puede resultar en b asignada al valor 2, porque por larepresentación binaria de punto flotante de 0,6 y 0,2, sudivisión resulta en 2,999999999999999555910790149937.

Logica e informacion digital– p. 27

Tareas para entregar el martes

Demuestra que para x > 0, x ∈ R que

x

2< 2⌊log2 x⌋ ≤ x y x ≤ 2⌈log2 x⌉ < 2x.

Examina sistemáticamente si las expresiones φ1 y φ2 sonequivalentes:

φ1 : (¬x1 ∧ ¬x2 ∧ x3) ∨ (¬x1 ∧ x2 ∧ ¬x3) ∨ (¬x1 ∧ x2 ∧ x3) ∨ (x1 ∧ ¬x2 ∧ x3)

φ2 : (x1 ∨ x2 ∨ x3) ∧ (¬x1 ∨ x2 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ ¬x3)

Logica e informacion digital– p. 28