Download t06.2013.algebra com(...).

Document related concepts

Lógica binaria wikipedia , lookup

Cálculo simbólico wikipedia , lookup

Álgebra abstracta wikipedia , lookup

Álgebra de Boole wikipedia , lookup

Álgebra de Cantor wikipedia , lookup

Transcript
6. álgebra computacional
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
CONTENIDO
Definición de álgebra [G8.1]. Estructuras
algebraicas: monoides, semigrupos,
grupos, [G8.1], anillos, cuerpos
[H10.1]. Subgrupos, isomorfismo entre
grupos [G8.1]. Álgebras concretas y
abstractas [H10.3]. Álgebras cocientes
y homomorfismos canónicos [H10.5].
Álgebras de Boole [G7.1]. Circuitos
digitales [H10.2].
bibliografía
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
GERSTING, JUDITH L. “Mathematical
Structures for Computer Science: A Modern
Approach to Discrete Mathematics”. W H
Freeman & Co, 2006.
HEIN, JAMES. Discrete Structures, Logic
and Computability. Jones and Bartlett
Publishers. 1995 – 2001
álgebra
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Un álgebra es una estructura
consistente de un conjunto no vacío
junto con una o mas operaciones
definidas sobre dicho conjunto.
Ejemplos
„
„
„
„
„
„
álgebra
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
[R;+,- ,*,/]
[Q;+,-,*,/]
[R;+,- ,*,/,1,0]
[N;succ,0]
[℘(S); ∪, ∩]
[R[x];+,*,0,1]
En la literatura se puede encontrar una
definición más general de álgebra:
Un álgebra es una estructura
consistente de uno o más conjuntos no
vacíos junto con una o mas
operaciones definidas sobre dichos
conjuntos.
Ejemplo
El álgebra vectorial: [R,Rn;*,+] donde * se
define de R X Rn → Rn
estructuras algebraicas
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Sea S un conjunto y sea • una operación
binaria sobre S.
„ La operación es asociativa si
(∀x)(∀y)(∀z)[x • (y • z) = (x • y) • z]
„ La operación es conmutativa si
(∀x)(∀y)(x • y = y • x)
„ [S, •] tiene elemento identidad si
(∃i)(∀x)(x • i = i • x = x)
„ Si [S, •] tiene un elemento identidad i,
entonces se dice que cada elemento en S
tiene un inverso con respecto a i si
(∀x)(∃x−1)(x • x−1 = x−1 • x = i )
estructuras algebraicas
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
[S, •] es un grupo si S es un conjunto no
vacío y • es una operación binaria
sobre S tal que
1.
2.
3.
• es asociativa
existe un elemento identidad (en S)
cada elemento en S tiene inverso (en S)
con respecto a •
Un grupo en el cual la operación es
conmutativa se llama grupo
conmutativo.
estructuras algebraicas
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Ejemplo
Sea R+ el conjunto de los números
reales positivos y sea • la operación de
multiplicación sobre reales positivos.
Entonces [R+, •] es un grupo
conmutativo:
estructuras algebraicas
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
conmutativa.
ƒ El número real positivo 1 sirve de
identidad x • 1 = 1 • x = x.
ƒ Todo x en R+ tiene inverso en R+
1/x, porque x • 1/x = 1/x • x = 1
estructuras algebraicas
álgebra
computacional
[S, •] es un semigrupo si S es un
conjunto no vacío y • es una
operación binaria sobre S tal que
1.
LENGUAJES
FORMALES
Y
AUTÓMATAS
Ejercicio
Mostar que el conjunto de los enteros
positivos pares con multiplicación es
un semigrupo conmutativo. Mostrar
que no es monoide.
álgebra
computacional
Un conjunto S con una operación binaria
satisface la ley de cancelación a
derecha si para x, y, z ∈ S, x • z = y •
z implica x = y.
Satisface la ley de cancelación a
izquierda si z • x = z • y implica x = y.
Ejercicio
Probar que todo grupo [G, •] satisface las
leyes de cancelación a izquierda y a
derecha.
existe un elemento identidad (en S)
Ejercicios
Probar las siguientes propiedades:
1.
En cualquier grupo (o monoide) [G, •], el
elemento identidad i es único.
2.
Para cada x en un grupo [G, •], x−1 es
único.
3.
Dados x e y miembros de un grupo [G, •],
(x • y) −1 = y−1 • x−1.
estructuras algebraicas
estructuras algebraicas
LENGUAJES
FORMALES
Y
AUTÓMATAS
• es asociativa
2.
resultados básicos sobre grupos
álgebra
computacional
• es asociativa
1.
Ejercicio
Mostar que el conjunto de cadenas
formadas por los símbolos a y b con
la operación binaria de concatenación
es un monoide.
ƒ La multiplicación es asociativa y
LENGUAJES
FORMALES
Y
AUTÓMATAS
[S, •] es un monoide si S es un conjunto
no vacío y • es una operación binaria
sobre S tal que
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Un anillo es un álgebra [A;+, •] donde
[A;+] es un grupo conmutativo,
[A; •] es un monoide, y
la operación • es distributiva (a izquierda y
a derecha) sobre +.
Ejemplos
„ [Z;+,*]
„ [R[x];+,*]
„ [Mn(R); +,*]
estructuras algebraicas
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Un cuerpo es un anillo [A;+, •] donde
además se satisface que [A-{0}; •] es
un grupo conmutativo, donde 0 es la
identidad para [A,+].
Ejemplos
„ [Q,+,*]
„ [N5,+5,*5]
subgrupos
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Sea [G, •] un grupo y A ⊆ G. Entonces
[A, •] es un subgrupo de [G, •] si [A, •] es
un grupo.
Sea [G, •] un grupo con identidad i y A ⊆ G,
[A, •] es un subgrupo de [G, •] si:
ƒ A es cerrado bajo •.
ƒ i ∈ A.
ƒ Todo x ∈ A tiene inverso en A.
álgebras de Boole
homomorfismos e isomorfismos
LENGUAJES
FORMALES
Y
AUTÓMATAS
Sean [S, •] y [T, +] grupos.
Un mapeo f: S → T es un homomorfismo
de [S, •] a [T, +] si para todo x, y ∈ S,
f (x • y) =f (x) + f (y).
álgebra
computacional
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Sean [S, •] y [T, +] grupos.
Un mapeo f: S → T es un isomorfismo de
[S, •] a [T, +] si
1.
2.
x+y=y+x
(x+y)+z=x+(y+z)
x+(y•z)=(x+y)•(x+z)
x+0=x
x+x’=1
la función f es una biyección.
para todo x, y ∈ S, f (x • y)= f (x) + f (y).
álgebras de Boole
LENGUAJES
FORMALES
Y
AUTÓMATAS
„
álgebra
computacional
„
La formalización de una estructura de
álgebra de Boole nos ayuda a
focalizarnos en las características
esenciales comunes a todos los
ejemplos de álgebras de Boole,
permitiéndonos utilizar estas
características para probar otras
características.
Denotaremos a las algebras de Boole
[B, +, •,’, 0, 1].
Un álgebra de Boole es un conjunto B sobre
el cual están definidas dos operaciones
binarias: + y •, una operación unaria ’, y se
distinguen dos elementos 0 y 1 tal que las
siguientes propiedades se verifican para
todo x, y, z ∈ B:
x • y=y • x
(x • y) • z=x•(y • z)
x•(y+z)=(x•y)+(x•z)
x • 1=x
x • x’=0
conmutativa
asociativa
distributiva
identidad
complemento
álgebras de Boole
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Ejercicio
Considere los siguientes conjuntos
S1 = {1,2,3,5,6,10,15,30}
S2 = ℘({1,2,3})
S3 = ℘({P1, P2, P3, P4}) donde las Pi ’s
son sentencias (proposiciones).
Proponer operaciones binarias, unarias y
elementos 0 y 1 para definir álgebras
de Boole en base a los conjuntos S1, S2
y S3.
álgebras de Boole
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Ejercicios
„ Probar que la propiedad de
idempotencia, es decir x + x = x, se
verifica para toda álgebra de Boole.
„ Para un elemento x de un álgebra de
Boole el elemento x’ se denomina el
complemento de x. El complemento de
x satisface: x + x′ = 1 y x • x′ = 0.
Probar que en un álgebra de Boole el
complemento de x es único.
elementos lógicos básicos
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
inversor
compuerta OR
expresiones booleana
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Una expresión booleana con n variables,
x1, x2, ... , xn, es una cadena finita de
símbolos formada aplicando las
siguientes reglas:
1.
2.
Una compuerta lógica (logic gate) es
un dispositivo electrónico que es la
expresión física de un operador
booleano.
compuerta AND
redes y expresiones
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
x1, x2, ... , xn son expresiones boolenas
Si P y Q son expresiones booleanas,
también lo son (P + Q), (P • Q), y (P′).
Combinando compuertas AND, OR e
inversores, podemos construir una red
lógica que represente cualquier
función.
Ejemplo
Red lógica para la expresión Booleana
x1x′2 + x3:
Ejemplos
x3, (x1 + x2)′x3, (x1x3 + x′4)x2, y
(x′1x2)′x1
redes y expresiones
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Ejemplo
Red lógica para la expresión Booleana
(x1x2 + x3)′ + x3
redes y expresiones
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Ejercicio
Dar la expresión Booleana para la
siguiente red lógica:
formas canónicas
LENGUAJES
FORMALES
Y
AUTÓMATAS
Suma de productos
suma
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
álgebra
computacional
half-adder
full-adder
LENGUAJES
FORMALES
Y
AUTÓMATAS
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
álgebra
computacional
otros elementos lógicos
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Compuerta NAND.
Expresión para suma de dígitos binarios
(s=suma, c= acarreo)
s = x′1x2 + x1x′2 (s = (x1 + x2)(x1x2)′)
c = x1x2
Un full-adder está formado por dos half-adders
y una compuerta OR adicional.
otros elementos lógicos
LENGUAJES
FORMALES
Y
AUTÓMATAS
álgebra
computacional
Las compuertas NAND son suficientes para
expresar cualquier función de verdad
otros elementos lógicos
LENGUAJES
FORMALES
Y
AUTÓMATAS
Compuerta NOR
álgebra
computacional
Ejercicio
Mostrar que las compuertas NOR son suficientes
para expresar cualquier función de verdad.