Separata de Matematica Discreta
Separata de Matematica Discreta
Separata de Matematica Discreta
Lima-Perú
2019
Conjunto ordenado de símbolos llamados dígitos, con reglas para realizar operaciones
aritméticas. La Base b del sistema numérico indica la cantidad total de dígitos (símbolos)
permitidos en dicho sistema.
Decimal (b=10)
Binario (b=2)
Octal (b=8)
Hexagesimal (b=16)
Cualquier número en un sistema dado puede tener una parte entera y una parte fraccionaria.
1.1.1.-Notación posicional
Los dígitos de un número N tienen asignado un peso o valor según su lugar que ocupa,
todo número N representa en el sistema por una sucesión de dígitos en base b.
Ejemplos
1.1.2.-Notación Polinomial
Dónde:
1.2.-Sistema binario
1.2.1.- El bit
Es el acrónimo de Binary Digit (dígito binario). Un bit es la unidad mínima de información empleada
en informática. Representa un uno o un cero (abierto o cerrado, blanco o negro, cualquier sistema de
codificación sirve). A través de secuencias de bits, se puede codificar cualquier valor discreto como,
por ejemplo, números, palabras e imágenes.
1.2.2.-El byte
Se suelen escribir los números binarios como una secuencia de grupos de cuatro bits, también
conocidos como NIBBLES. Según el número de estas agrupaciones los números binarios se clasifican
como:
Los computadores personales con el sistema operativo MS DOS utilizaban palabras de 16 BITS. Los
sistemas operativos actuales sobre los que corre AutoCAD 2000 utilizan Palabras de 32 BITS.
yotta Y 280 = 1 208 925 819 614 629 174 706 176
Los números octales pueden construirse a partir de números binarios agrupando cada tres dígitos
consecutivos de estos últimos (de derecha a izquierda) y obteniendo su valor decimal.
Por ejemplo, el número binario para 74 (en decimal) es 1001010 (en binario), lo agruparíamos como
1 001 010. De modo que el número decimal 74 en octal es 112.
Es posible que la numeración octal se usara en el pasado en lugar de la decimal, por ejemplo, para
contar los espacios interdigitales o los dedos distintos de los pulgares.
45.328 ó 45.32octal
Representación Octal
Como se ha planteado, son fácilmente transformables, basta reagrupar 3 cifras binarias de derecha a
izquierda y convertirlas a su equivalente octal, como se puede apreciar a continuación:
011011001112 = 15478
Nótese como en el dígito de la izquierda pueden faltar bits, sustituyéndolos por cero(s).
Para realizar el proceso inverso, transformar de octal a binario, basta sustituir cada cifra en octal por
las tres equivalentes en binario, como se muestra a continuación:
34208 = 0111000100002
Como veremos en la unidad de Hardware, el procesador 80386 hace ya más de una década
manipulaba sin problemas números de 32 bits. Un humano necesita manejarlo de otra manera y por
eso se inventó el sistema hexadecimal, con 16 símbolos, ya que si uno agrupa cuatro bits obtiene 16
combinaciones posibles (24 = 16).
Esto tiene una razón. Nuestro sistema decimal no se corresponde en la cantidad de dígitos con el
binario en cambio, el hexadecimal si, porque cada cuatro bits representan un dígito hexadecimal
exacto.
Cada trozo de información recibe un nombre propio según la cantidad de bits que posea:
1C6E.316 = 1C6E.3hexadecimal
Representación hexadecimal.
3
N10 ai 16 i 1 *16 3 12 *16 2 6 *161 14 *16 0 3 *16 1 32 5 3 / 8 2 / 64 37.40625
i 1
= 7278.1875
Nótese como hay que hacer las sustituciones basándose en las igualdades:
El método de conversión de binario a hexadecimal es semejante al de binario a octal, sólo que ahora
se agrupan de 4 en 4 bits de derecha a izquierda, así:
01011011010.10112 = 2DA.B16
En la conversión de hexadecimal a binario se sustituye cada cifra del sistema hexadecimal por las
correspondientes cuatro cifras que la identifican en el sistema binario como puede apreciarse en el
siguiente ejemplo:
23E.F16 = 001000111110.11112
Para transformar del sistema numérico decimal a cualquier otro sistema hay que trabajar por
separado con la parte entera y la parte fraccionaria.
Parte entera
Para transformar la parte entera del número decimal se divide por la base del sistema al que
se quiere transformar tantas veces como sea necesario hasta que el último cociente sea cero.
El primer resto obtenido (r0) constituye la cifra menos significativa (la de menor peso) del
número que se busca, mientras que el último resto (rn-1, donde n es el número de divisiones
a ejecutar o el número de cifras del sistema destino) constituye la cifra más significativa (la
de mayor peso) del número en cuestión.
Ejemplos:
Como se realizan sucesivas divisiones entre la base del sistema destino, se dividirá entre 2
(base del sistema binario):
125 / 2 = 62 resto 1 r1
62 / 2 = 31 resto 0 r2
31 / 2 = 15 resto 1 r3
15 / 2 = 7 resto 1 r4
7 / 2 = 3 resto 1 r5
3 / 2 = 1 resto 1 r6
r7 r6 r5 r4 r3 r2 r1 r0 = 111110102
25010 = 111110102
En el ejemplo al número 250 la primera potencia de dos que se le puede restar es 128( la
próxima de mayor orden es 256 que supera el número) por lo que la cifra del número binario
que posea ese peso debe ser seteada, 250-128=122 y a 122 la próxima potencia de dos que
se le puede restar es 64, la sustracción puede ser realizada por lo que la cifra binaria cuyo
peso sea 64 debe ser seteada; así se continúa hasta que el resulta sería:
Número binario: 1 1 1 1 1 0 1 0
Se realiza, para la conversión exigida, sucesivas divisiones entre la base del sistema octal (8).
20 / 8 = 2 resto 4 r1
La solución sería:
r2 r1 r0 = 2408
Por tanto:
16010 = 2408
Una forma más sencilla de convertir de decimal a binario es a través del sistema octal, que al
tener mayor base, se necesitan menos divisiones y una vez que tenga el valor en octal,
transferirlo a binario.
31 / 8 = 3 resto 7 r1
3 / 8 = 0 resto 3 r2
Tenemos pues:
25010 = 3728
Basta entonces transferir el valor octal a binario de manera directa y como ya conocemos,
utilizando la tabla:
3728 = 0111110102
Como la base del sistema hexadecimal es 16, se realizan sucesivas divisiones entre esta base.
r1 r0 = 9B16
Por lo tanto:
15510 = 9B16
155 / 8 = 19 resto 3
19 / 8 = 2 resto 3
2/8 =0 resto 2
15510 = 2338
2338 = 0100110112
Osmar A. Bermeo Carrasco Página 12
El valor binario a hexadecimal:
0100110112 = 9B16
Por lo que 15510 = 9B16, lo que puede ser comprobado según el resultado del ejemplo 4.
Un mismo número decimal convertido a los distintos sistemas numéricos estudiados ilustra
lo expresado anteriormente, de que mientras mayor es la base, menor número de cifras para
representar un número. El valor 15510 posee 8 cifras en el sistema binario (base 2), 3 cifras
en el sistema octal (base 8), 3 cifras en el sistema decimal (base 10) y 2 cifras en el sistema
hexadecimal (base 16).
Parte fraccionaria
0.p1 p2 p3 p4 ... pm
Ejemplos:
0.32*8=2.56 (p1=2)
0.56*8=4.48 (p2=4)
0.48*8=3.84 (p3=3)
0.84*8=6.72 (p4=6)
0.72*8=5.76 (p5=5)
. . .
. . .
0.4210 = 0.24365...8
Como la base del sistema binario es 2, ahora las multiplicaciones sucesivas serán por este
término:
0.250*2=0.500 (p2=0)
0.500*2=1.000 (p3=1)
0.000*2=0.000 (p4=0)
0.12510 = 0.0012
Un método más rápido puede ser el transformar la fracción decimal a octal y posteriormente
a binario. En el ejemplo:
0.125*8=1.000 (p1=1)
0.12510 = 0.18
Y de octal a binario:
0.18=0.0012
a) Suma binaria
Las tablas 1.1a y b muestran las tablas de suma y multiplicación, respectivamente, para el
sistema numérico binario. Las tablas son muy pequeñas ya que sólo hay dos dígitos, o bits,
en el sistema. En consecuencia, la aritmética binaria es muy sencilla. Observe que la suma
1 + 1 produce un bit se suma de 0 y un bit de acarreo de 1. El acarreo debe sumarse a la
siguiente columna de bits para realizar la suma en el patrón normal, de derecha a izquierda.
+ 0 1 * 0 1
0 0 1 0 0 0
1 1 10 1 0 1
Tabla 1.1 a Tabla 1.1 b
b) Resta Binaria
La resta se puede visualizar como el inverso de la suma. Las reglas para la resta binaria se
derivan directamente de la tabla de suma binaria y son:
1-0=1
1-1=0
0-0=0
0 - 1 = 1 tomando prestado 1, o 10 - 1 = 1
La última regla muestra que si se resta un bit 1 de un bit 0, hay que tomar prestado un 1 de
la siguiente columna más significativa. Los préstamos se propagan hacia la izquierda de
columna en columna, como se ilustra a continuación.
Ejemplos
1.-Restar los dos números binarios (1001101)2 y (10111)2
10
10 - 1 = 1 0 1 10 0 0 10
100 - 1 = 11 1 0 0 1 1 0 1
1000 - 1 = 111 1 0 1 1 1 -
0 1 1 0 1 1 0
c) Multiplicación Binaria
La multiplicación binaria se realiza en forma similar a la multiplicación decimal, excepto que las
operaciones de multiplicación binaria son mucho más sencilla. No obstante, se debe tener mucho
cuidado al sumar los productos parciales, como se ilustra en el siguiente ejemplo.
Ejemplo
Observe que hay un producto parcial por cada bit del multiplicador. Este procedimiento puede
realizarse con mayor eficiencia si sólo recorremos una columna a la izquierda, en vez de anotar un
producto parcial con ceros para un bit 0 del multiplicador. Este ejemplo nos sirve para ver lo sencillo
de este procedimiento.
d) División Binaria
1.9.-Representación de Datos
Los datos pueden ser numéricos y alfanuméricos
Sin signo
Numéricos: Enteros: Con signo
BCD(Decimal codificado en binario)
Punto Fijo
Reales: Punto flotante y Normalizado
z- z+
R
0
Dado que ningún ordenador puede almacenar los enteros se han desarrollado dos categorías
de representación que se detallara a continuación, que en efecto para hacerlo requerimos
un número infinito de bits, lo cual significa tener un ordenador con capacidad infinita.
NUMEROS ENTEROS
CON SIGNO
SIN SIGNO
Los números sin signo se representan en binario, si se dispone de “n” bits se puede
codificar 2n números (combinaciones).
Ejemplo.
N Binario
0 → 0000
1 → 0001
2 → 0010
3 → 0100
. . .
. . .
. . .
15 → 1111
En general el rango es 0 ≤ 𝑁 ≤ 2𝑛 − 1
Bit de signo
0: Positivo
1:Negativo
Ejemplo 1
-5 se representa por: 1101
5 se representa por: 0101
Ejemplo 2
Interpretar 101110112 en el sistema decimal si el número se almacena como un entero de
signo y magnitud.
1 0111011 = -59
S M N
-27 1 0011011
+27 0 0011011
d) Complemento a uno
Ejemplo
e) Complemento a dos
Ejemplo 1
Ejemplo 2
Ejemplo
+5 + 24−1 = 5 + 8 = 13 → 1101
−4 + 24−1 = −4 + 8 = 4 → 0100
−8 + 24−1 = −8 + 8 = 0 → 0000
Suma y resta
Ejemplo
Al realizar una suma de números enteros es posible que el resultado exceda el rango de
representación. En este caso se dice que no hay resultado o que el resultado no es
representable.
Ejemplo 1
Ejemplo 2
+3 → 0011 +6 → 0110
+4 → 0100 +5 → 0101
----- ------- ----- -------
+7 0111 +11 1011
Obs
Al sumar:
– Cuando los operandos tienen el mismo signo y se obtiene un resultado con signo
contrario.
Al restar:
Extensión de signo
En algunos casos es necesario operar datos con diferentes tamaños. Para aumentar el
número de bits con que se representa un dato se realiza la operación llamada extensión de
signo. En el caso de la representación en complemento a dos, la extensión de signo se
realiza replicando el bit de signo.
Al modelar problemas es usual encontrar variables que pueden tomar múltiples valores, se
denomina codificación al proceso de convertir esas variables en señales binarias. La
elección adecuada del código puede conducir a redes lógicas más simples.
Consideremos, por ejemplo, el estado de un semáforo: éste puede tomar uno de tres valores:
verde, amarillo o rojo. Una posible codificación es considerar cada color como una señal
binaria; así si la variable color toma valor rojo, estará en nivel alto la señal rojo y el resto de
las señales (la verde y amarilla) serán ceros.
Es un código que se utiliza 4 bits para codificar directamente los diez primeros números
decimales, se emplea para ingresar datos numéricos enteros a un sistema digital y también
para representar resultados directamente en decimal.
0010+
0110
-----------
1000
i) BCD natural
Código
Decimal BCD Natural BCD exceso tres BCD Aiken (2421)
Este sistema está ligado al código BCD natural, como se podrá apreciar a continuación
Cuarteto de bits de zona.-Los bits son todos uno, excepto en el último digito del número a
representar donde toma la representación 1100 si el número es positivo y 1101 si el número
es negativo.
Cuarteto de bits de digito.- Estos cuatro bits representa el digito decimal codificado en
BCD
1 1 1 signo
Ejemplo
i) +1992
ii) -1992
Ejemplo
0 1
9 9
2 +
El formato BCD (Binary Coded Digit) consiste en utilizar 4 bits para representar los números del 0
al 9 (010 = 00002 y 910 = 10012). Dado que los microcontroladores trabajan en bloques de 8 bits (1
byte), hay dos representaciones: BCD empaquetado y BCD desempaquetado. La idea del BCD
empaquetado es utilizar 1 byte para representar 2 dígitos BCD, mientras que en BCD desempaquetado
se utiliza 1 byte para cada digito BCD.
Ejemplo 1: 4710 = 0100 0111 BCD Empaquetado = 0000 0100 0000 0111 BCD Desempaquetado
b) 27984
Código ASCII (del inglés de American Standard Code for Information Interchange - Código
Estándar Estadounidense para el Intercambio de Información), pronunciado generalmente
[áski], es un código de caracteres basado en el alfabeto latino, tal como se usa en inglés
moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense
de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares
Nacionales o ANSI) como una evolución de los conjuntos de códigos utilizados entonces en
telegrafía. En 1967 se incluyeron las minúsculas y se redefinieron algunos códigos de control
para formar el código conocido como US - ASCII.
ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última
vez en 1986. En la actualidad define códigos para 33 caracteres no imprimibles, de los cuales
la mayoría son caracteres de control obsoletos que tienen efecto sobre cómo se procesa el
texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por
el carácter espacio). Casi todos los sistemas informáticos actuales utilizan el código ASCII o
una extensión compatible para representar textos y para el control de dispositivos que
manejan texto como el teclado.
Nota: Es conveniente tener a mano el conjunto de símbolos sin las letras del teclado.
Donde
Ejemplo
s: (-) M: 37625 r: 10 e: 2
s: (-) M: 100101101 r: 2 e: 6
Mantisa.-Es un número real con el punto decimal implícito a la izquierda de sus bits, se
codifica normalmente en el formato signo-magnitud.
Los computadores no almacenan los números con precisión infinita sino de forma
aproximada empleando un número fijo de bits (apócope del término inglés Binary Digit) o
bytes (grupos de ocho bits). Prácticamente todos los computadores permiten al programador
elegir entre varias representaciones o 'tipos de datos'. Los diferentes tipos de datos pueden
diferir en el número de bits empleados, pero también (lo que es más importante) en cómo el
número representado es almacenado: en formato fijo (también denominado 'entero') o en
punto flotante (denominado 'real'). Es decir
-Punto fijo
- Precisión doble
-IEEE-754
Ejemplo
00000000000011001.0010000000000000
En esta representación, el punto que separa la parte entera de la parte fraccionaria, siempre
se ubica en una posición fija y de allí el nombre de esta representación. Un numero se
puede codificar en S-M, complemento a 1 o complemento a 2
b) Tipos de formatos
Precisión simple
Emplea un campo de 32 bits, 1 bits para el signo, 8 bits para el exponente, y 23 bits para la
matinsa.
Ejemplo
Ahora codificando
Signo: 1
Precisión doble
Emplea un campo de 64 bits, 1 bits para el signo, 11 bits para el exponente, y 52 bits para la
matinsa.
c) Formato normalizado
Ejemplo 1
i) N=1.5
Codificando
0 01111111 10000000000000000000000
1 bits 8 bits 23 bits
ii) N=0.375
Codificando
0 01111101 10000000000000000000000
1 bits 8 bits 23 bits
Ejemplo 2
Restar los números 1.5 y 0.375 en IEEE-574, dar el resultado en el mismo formato.
Pasos seguir
Paso 2: Elegir la mantisa del menor número, luego se desplazar a la derecha la mantisa una
cantidad de dígitos de acuerdo al resultado de la resta de exponentes polarizados, es decir
El menor numero
Paso 3: Restar las mantisas del número mayor con la mantisa desplazada, es decir
1.100 (-)
0.011
1.001
Paso 4: Normalizando
Finalmente codificando
0 01111111 00100000000000000000000
1 bits 8 bits 23 bits
Para sumar o restar dos números representados en punto flotante se debe seguir los
siguientes pasos.
1.- seleccionar el número con menor exponente y desplazar su mantisa a la derecha, tantos
pasos como la diferencia en valor absoluto de los exponentes de los operandos.
2.1.1.-Razonamiento
Razonamiento es un proceso mental que se caracteriza porque en él se produce el paso de uno
o más enunciados (las denominadas premisas) a otro posterior (lo que denominamos
conclusión) que se deriva necesariamente de aquellos.
2.1.2.-Las premisas
Por ejemplo:
2.2.-Proposición.- Una proposición es todo enunciado al que se le puede asignar uno y sólo
uno de los valores de verdad, que son verdadero (V) o falso (F).
Por lo general, las proposiciones se representan con las letras minúsculas del alfabeto,
desde la letra p en adelante, es decir, p, q, r, s, t, ... etc.
Ejemplo
p y q
Se observan dos proposiciones simples. La primera, p, nos afirma que Pitágoras era griego
y la segunda, q, que Pitágoras era geómetra.
Ejemplo
Sea la función proposicional p(x): 2x-5 = 3. Si se remplaza x por 4 y x por 2, se obtienen,
respectivamente, los siguientes valores de verdad: p(4) = V y p(2) = F
Tablas de verdad
V V V V V V F
V F F V F F V
F V F V V F V
F F F F V V F
2.5.-Proposiciones compuestas
Si al evaluar una fórmula lógica, resulta que todos los valores de verdad son siempre
verdaderos para cualquier combinación de los valores de verdad de las proposiciones
componentes, se dice que dicha fórmula es una Tautología o Ley lógica.
Ejemplo
p ~p p ~p
V F V
F V V
2.5.2.-Proposicion de contradicción
Si al estudiar una fórmula lógica, a diferencia de los ejemplos anteriores resulta que para
cualquier valor de verdad de las proposiciones intervinientes el resultado de dicha fórmula
es siempre falso, se dice que dicha fórmula es una Contradicción.
Ejemplo
p ~p p ~p
V F F
F V F
2.5.3.-Proposicion condicional
p q p q ~p ~q ~q ~p
V V V F F V
V F F F V F
F V V V F V
F F V V V V
Equivalencias lógicas
c) ( p q) (q p) a) ( p q) ( p q ) (q p )
4. Leyes asociativas: b) ( p q) ( p q) ( q p)
a) p (q r ) ( p q) r c) ( p q) ( p q) ( p q)
b) p (q r ) ( p q) r
2.6.- Cuantificadores
La negación de p es:
Equivalentemente:
En símbolos:
2.7.-Metodos de demostración
2.7.1.-Metodo directo
(𝑝1∧ 𝑝2 ∧ 𝑝3 ∧ … . .∧ 𝑝𝑛)→𝑞
2) 𝑝2 justificación
3) 𝑝3 justificación
m) q
Ejemplo
P: n es par
q: n2 es par
n es par → n2 es par
Demostración
1.-n es par
3.- n2=(2k)2=4k2
4.- n2=(2k)2=2(2k2)
5.- n2 es par
Se basa en la equivalencia
p⇒q≡ ∼ 𝒒 ⇒∼ 𝒑
Esquema
1) ∼ 𝒒
2) 𝑝2 justificación
3) 𝑝3 justificación
m) ∼ 𝒑
Ejemplo
Demostración
2.-x+y>100
3.-𝑥 + 𝑦 ≠ 100
Se basa en (𝒑 ⇒ 𝒒) ∧ (𝒑 ⇒∼ 𝒒) ≡∼ 𝒑
(𝒑 ≡∼ 𝒑 → 𝑭)
Esquema
2) 𝑝2
3) 𝑝3
m) 𝐹
Queda demostrado p
Ejemplo
p: √2 no es racional
∼ 𝑝: √2 es racional
1.- √2 es racional, negación de lo que se quiere demostrar
𝑎
2.- √2 = 𝑏 para algún entero a y algún entero b, sin factores comunes
𝑎2
3.- 2 = 𝑏2
4.- 𝑎2 = 2𝑏 2
5.- 𝑎2 es par
6.- a es par
7.- a=2k para algún entero k
8.- (2k)2=2b2
9.-
4k2=2b2
10.-
2k2=b2
11.- b2 es par
12.- b es par
13.- a y b tienen factor común
14.- a y b no tienen factor común ∧ a y b tienen factor común
15.-F
Queda demostrado que √2 no es racional
2.8.-Predicados
Un predicado es un enunciado que expresa una propiedad entre ciertos objetos. Un predicado se
denota con el símbolo p(x) (también usamos q(x), s(x), P(x), Q(x), etc.) donde p representa la
propiedad en cuestión, y x es una variable que representa a los objetos a los que se refiere el
predicado p. En general, si un predicado se refiere a n objetos, entonces escribimos p(x1, ..., xn).
Usamos predicados para representar propiedades de un solo objeto, o bien propiedades y relaciones
entre diversos objetos.
1.- 𝑃(𝑥): 𝑥 2 − 6𝑥 + 8 = 0
i) Cuantificador existencial
∃ 𝑋: 𝐷(𝑋) ∶ 𝑃(𝑋)
Ejemplo
( ∃ 𝑋, 𝑋 ,entero ∧ 0 < 𝑋 ≤ 3: 𝑋 2 ≥ 9 )
Para 𝑋 = 3 que cumple 𝐷(𝑋), se cumple 𝑃(𝑋)
ii) Cuantificador universal
∀ 𝑋: 𝐷(𝑋) ∶ 𝑃(𝑋)
Afirma que para todo X que cumple 𝐷(𝑋), se cumple 𝑃(𝑋)
Sera verdadero, si se demuestra que para todo 𝑋, que cumple 𝐷(𝑋), 𝑃(𝑋) es verdadero.
Sera falso, si se encuentra algun 𝑋, cumple que 𝐷(𝑋), 𝑃(𝑋) es falsa.
2.9.-Induccion Matemática
Ejemplo 1
1 + 3 + 5 +………………..+(2𝑛 − 1) = 𝑛2
Solución
𝑘 2 + (2(𝑘 + 1) − 1) = 𝑘 2 + 2𝑘 + 1
𝑘 2 + (2(𝑘 + 1) − 1) = (𝑘 + 1)2
Ejemplo 2
El orden de los elementos en un conjunto no interesa, por ejemplo: dados A = {1, 2} y B = {2, 1},
representan el mismo conjunto; o sea que para ser iguales nos importa únicamente que los conjuntos
contengan los mismos elementos, sin importar el orden en que éstos se enumeren.
Definamos un nuevo concepto: Un par ordenado consiste en dos componentes, de los cuales a uno
se le designa como el primer componente, y al otro, como el segundo. Dado un par ordenado donde
a es el primer componente y b es el segundo, ésta se escribe (a, b).
De lo expuesto, se deduce entonces que, dadas dos pares ordenados: (a, b) y (c, d) son iguales si y
solo si se cumple que a = c y b = d .
El concepto de par ordenado se puede extender para el caso de tres componentes (a, b, c) donde a es
el primer componente de la terna, b el segundo y c el tercero. En general se puede extender el
concepto para n componentes (n-tuplas).
Dados dos conjuntos A y B, llamamos producto cartesiano al conjunto de todos los pares posibles
de elementos, tomando el primer elemento del par del conjunto A y el segundo elemento del par
del conjunto B. Por esta razón decimos que los pares son ordenados. Simbólicamente expresamos:
A x B = {(x, y) / x A, y B}
Los conjuntos A y B pueden ser un único conjunto, en cuyo caso tendremos A x A qué se puede
expresar con A2 . En consecuencia: A x B B x A, dado que el par (x, y) no es igual al par (y,
Ejemplos
Queda claro que los conjuntos tienen elementos (pares ordenados) distintos.
A x B = {(a, 1), (a, 2), (a, 3), (a, 4), (b, 1), (b, 2), (b, 3), (b, 4), (c, 1), (c, 2), (c, 3), (c, 4)}
Se puede representar gráficamente por medio de puntos en un plano, como se muestra a continuación.
Cada punto P representa una pareja ordenada (a, b) de valores y viceversa. En el eje horizontal
representamos los elementos del primer conjunto y en el vertical los valores del segundo conjunto.
A
a b c
Otra manera de visualizar, es a través de una representación gráfica, donde se destaquen los
elementos que pertenecen al conjunto A y los que pertenecen a B (diagrama de VENN). Se trazan
flechas que indican la relación que existe entre cada elemento del conjunto A y su pareja en el
conjunto B.
A B
1
a
2
b
3
c
4
4
a
1
2
b
3
1
c
2
4
3.2. Relaciones binarias
Dados dos conjuntos A y B, definimos una relación entre los elementos de estos dos conjuntos,
cuando damos una propiedad que vinculen elementos del primer conjunto con elementos del
segundo. Así por ejemplo, si
B = {cursos de la carrera de Ingeniería Industrial por ciclo}= {1, 2, 3,..., 10}, podemos definir una
relación "x tiene por ciclo y", donde x representa uno cualquiera de los estudiantes mencionados e
Como se ve una relación entre los elementos de dos conjuntos A y B es un conjunto de pares
Ejemplo
Sean los conjuntos A = {a, b, c}, B = {1, 2, 3, 4} y R = {(a, 2), (b, 2), (b, 3), (b, 4)}
Dígrafos
Matriz booleana
Los elementos del conjunto se representan como vértices y los pares ordenados como flechas.
Ejemplo
Si tenemos una relación R entre los elementos de un mismo conjunto A, podemos enunciar las
siguientes propiedades:
Reflexiva: Cuando todo elemento del conjunto está relacionado con sí mismo.
- Simbólicamente: a A a R a.
Simétrica: Cuando cada vez que un elemento está relacionado con otro, éste segundo también está
relacionado con el primero.
- Simbólicamente: a A y b A (a≠b), si a R b b R a.
R = {(-2, 3), (1, 2), (1, 3), (2, 1), (2, 3), (3, -2), (3, 1), (3, 2)}
Transitiva: Cuando cada vez que un elemento está relacionado con otro, y éste está relacionado
con un tercero, el primer elemento está relacionado con el tercero.
- Simbólicamente: a A, b A y c A distintos, si a R b y b R c a R c.
Antireflexiva:
Cuando todo elemento del conjunto no está relacionado con sí mismo.
- Simbólicamente: a A a R a.
R = {(-2, 1), (-2, 2), (-2, 3), (1, 2), (1, 3), (2, 3)}
Antisimétrica: Cuando cada vez que un elemento está relacionado con otro, éste segundo no está
relacionado con el primero.
- Simbólicamente: a A y b A (a≠b), si a R b b R a.
(También se puede decir que: a A y b A si a R b y b R a a = b)
R = {(-2, 1), (-2, 2), (-2, 3), (1, 2), (1, 3), (2, 3)}
Relación Inversa
Dados dos conjuntos A y B, y una relación R entre ellos, se denomina relación inversa de R, y se
representa por R -1, a la correspondencia que asocia a los elementos del conjunto final con los del
conjunto inicial de R; es decir, tiene como Dominio el conjunto Imagen de R, y como conjunto Imagen
el Dominio de R.
Relación compuesta
Sea 𝑅 es una relación entre A y B, S una relación entre B y C, se define la relación compuesta de R
y S como el conjunto
𝑛: numero de elementos de A
𝑚: numero de elementos de B
Ejemplo
Sean los conjuntos A = {a, b, c}, B = {1, 2, 3, 4} y la relación R = {(a,2), (b,2), (b,3), (b,4)}, la
matriz asociada a la relación R estará dado por.
B
1 2 3 4
A
a 0 1 0 0
b 0 1 1 1
c 0 0 0 0
𝐶 = 𝐴 ∨ 𝐵 = [𝑐𝑖𝑗 ]
1, 𝑠𝑖 𝑎𝑖𝑗 = 1 𝑜 𝑏𝑖𝑗 = 1
donde 𝐶𝑖𝑗 = {
0, 𝑠𝑖 𝑎𝑖𝑗 , 𝑦 𝑏𝑖𝑗 𝑠𝑜𝑛 𝑎𝑚𝑏𝑜𝑠 𝑐𝑒𝑟𝑜𝑠
Ejemplo.
1 0 0 1 1 1
𝐴 = [0 0 1] y 𝐵 = [1 1 1]
1 0 1 1 0 0
1 1 1
Entonces 𝐴 ∨ 𝐵 = [1 1 1]
1 0 1
𝐷 = 𝐴 ∧ 𝐵 = [𝑑𝑖𝑗 ]
Ejemplo.
1 0 0 1 1 1
𝐴 = [0 0 1] y 𝐵 = [1 1 1]
1 0 1 1 0 0
1 0 0
Entonces 𝐴 ∧ 𝐵 = [0 0 1]
1 0 0
Sean las matrices booleanas 𝐴 = [𝑎𝑖𝑗 ] de orden 𝑚𝑥𝑝 y 𝐵 = [𝑏𝑖𝑗 ] de orden 𝑝𝑥𝑛, se define la
operación, 𝐸 = 𝐴 ⊙ 𝐵 = [𝑒𝑖𝑗 ]
Ejemplo.
1 0 0 1 1 1
𝐴 = [0 0 1] y 𝐵 = [1 1 1]
1 0 1 1 0 0
1 0 0 1 1 1 1 1 1
Entonces 𝐴 ⊙ 𝐵 = [0 0 1] ⊙ [1 1 1] = [1 0 0]
1 0 1 1 0 0 1 1 1
Donde
𝑒11 = (1 ∧ 1) ∨ (0 ∧ 1) ∨ (0 ∧ 1) = 1 ∨ 0 ∨ 0 = 1
.
.
.
p q 𝑝∧𝑞 𝑝∨𝑞
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
a) 𝐴 ∨ 𝐵 = 𝐵 ∨ 𝐴
b) 𝐴 ∧ 𝐵 = 𝐵 ∧ 𝐴
c) 𝐴 ∨ (𝐵 ∨ 𝐶) = (𝐴 ∨ 𝐵) ∨ 𝐶
d) 𝐴 ∧ (𝐵 ∧ 𝐶) = (𝐴 ∧ 𝐵) ∧ 𝐶
e) 𝐴 ∨ (𝐵 ∧ 𝐶) = (𝐴 ∨ 𝐵) ∧ (A ∨ 𝐶)
f) 𝐴 ∧ (𝐵 ∨ 𝐶) = (𝐴 ∧ 𝐵) ∨ (A ∧ 𝐶)
g) 𝐴 ∨ (𝐵 ∨ 𝐶) = (𝐴 ∨ 𝐵) ∨ 𝐶
Relacion de equivalencia
Reflexiva
Simetrica
Transitiva
Ejemplo 1
Consideremos un conjunto de rectas incluidas en un plano con la relacion
𝐿1 𝑅𝐿2 ↔ 𝐿1 , 𝑒𝑠 𝑝𝑎𝑟𝑎𝑙𝑒𝑙𝑎 𝑎 𝐿2
1 3
5
2
4
Figura 1
i) Reflexiva
ii) Simetría
iii) Transitiva
.
.
.
.
(5,5) ∧ (5,2) → (5,2) ∈ 𝑅
Las clases de equivalencia determinan una partición en el conjunto donde se define la relación dado
que:
Dada una relación R en un conjunto A, se llama cociente de A respecto a R, al conjunto formado por
todas sus clases de equivalencia y se representa por A / R.
𝑨/𝑹 = {[𝒂]/𝒂 ∈ 𝑨}
Ejemplo:
[1] = {1}
[2] = {2, 3}
[3] = {2, 3}
[4] = {4, 5}
[5] = {4, 5}
En definitiva, dado que se repiten [2] con [3] y [4] con [5], las clases de equivalencia son:
{1} {2, 3} {4, 5}
Es decir que A / R = {[1], [2], [4]} ={[1], [2], [4]} = {{1}, {2, 3}, {4, 5}}
a) 𝐴𝑖 ∩ 𝐴𝑗 = ∅, 𝑠𝑖 𝐴𝑖 ≠ 𝐴𝑗
b) 𝐴𝑖 ∪ … … … 𝐴𝑗 = 𝐴
Reflexiva
antisimétrica
transitiva.
Una relación de orden amplio es aquella que cumple las propiedades reflexiva, antisimétrica y
transitiva.
Ejemplo:
Una relación de orden estricto es aquella que cumple con las propiedades antireflexiva, antisimétrica
y transitiva
Ejemplo:
Si cada par de elementos de un conjunto parcialmente ordenado A son comparables se dice que A es
un conjunto ordenado, y al orden parcial se le llama orden total.
Ejemplo 1
1.- Demostrar que la relación “mayor o igual que” (≥) es un orden parcial en el conjunto de los
enteros
i) Reflexiva
ii) Antisimetrica
iii) Transitiva
Por lo tanto ≥ es orden parcial en el conjunto de los enteros y (𝑍, ≥) es un conjunto parcialmente
ordenado.
Ejemplo 2
i) Reflexiva
ii) Antisimetrica
iii) Transitiva
Ahora veamos si R es de orden total, usando la definición observamos que (2,4) no son
comparables.
Es un diagrama simplificado para representar una relación orden. Para trazar el diagrama de hasse se
borran todos los lazos, porque la relación es reflexiva, se eliminan las aristas que están implicadas
por la propiedad transitiva, los vértices se remplazan por puntos.
𝑅 = {(1,1), (1,2), (1,3), (1,4), (2,2), (2,4), (3,3), (4,4)}, es un orden parcial y (𝐴, 𝑅) es un conjunto
parcialmente ordenado.
2 4
1 3 2
a) Elemento máximo
b) Elemento mínimo
Ejemplo
0
c) Elemento maximal
d) Elemento minimal
Teoremas
1.-Un conjunto parcialmente ordenado tiene a lo más un elemento máximo y a lo más un elemento
mínimo.
Ejemplo
𝑎2 𝑎3
𝑎1 𝑏3 𝑏5
𝑏4
𝑏2
𝑏1 𝑑4
𝑑2 𝑑3
𝑑1
Elementos minimales: 𝑑1 , 𝑑2 , 𝑑3
Elemento maximo: ∄
Elemento minimo: ∄
e) Supremos e ínfimos
Cota superior
Cota inferior
Supremo
Es la mínima cota superior de B
Infimo
Es la mínima cota superior de B
Ejemplo
Consideremos el conjunto parcialmente ordenado 𝐴 = {𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔, ℎ}, cuyo diagrama
de Hasse se muestra en la figura. Determine las cotas superiores e inferiores de los siguientes
subconjuntos de A. h
a) 𝐴1 = {𝑎, 𝑏} a) 𝐴2 = {𝑐, 𝑑, 𝑒}
g
f
a) cotas superiores de 𝑨𝟏 : c, d,e,f,g,h
Cotas inferiores de 𝑨𝟏 : no existe e
d c
b) cotas superiores de 𝑨𝟐 : f,g,h
Cotas inferiores de 𝑨𝟐 : a, b ,c a b
Infimo de 𝑨𝟏 : no existe
c) Supremo de 𝑨𝟐 : no existe
Infimo de 𝑨𝟐 : c
Teoría de graficas
4.1. Grafo
Un grafo es un par G = (V, A), donde V es un conjunto finito no vacío (a cuyos elementos
llamaremos vértices o nodos) y A es una familia finita de pares no ordenados {u, v} de vértices de V
(a cuyos elementos llamaremos aristas o arcos).
La arista uv es incidente con los vértices u y v (también diremos que uv une los vértices u y v).
Los vértices u y v son incidentes con la arista uv (también diremos que u y v son extremos de uv).
Ejemplo Sea un grafo G = (V, A) con V = {a, b, c, d, e, f} y con A = {ab, ad, bc, bf, cd, cf} se puede
representar gráficamente como en la siguiente figura:
b c
a d
f e
Figura: un grafo
De este grafo podemos decir, por ejemplo, que los vértices a y b son adyacentes y son incidentes
con (o son extremos de) la arista ab, que la arista ab es incidente con (o une) los vértices a y b, que
4.1.2. Multígrafo
El grafo G = (V, A), es un multígrafo si acepta más de una arista entre dos vértices cualesquiera.
Una arista que aparece repetida en A se llama arista múltiple.
Ejemplo
La siguiente figura se representa un grafo que tiene tres aristas múltiples cuyos extremos son los
vértices a y d, un bucle sobre el vértice c y dos bucles sobre el vértice b. Estos dos últimos bucles
son también aristas múltiples.
a b
d c
4.1.4. Subgrafo
Un subgrafo de G = (V, A) es otro grafo H = (V’, A’) tal que V’ V y A’ A. Si V’ = V, se dice que
H es un subgrafo generador.
Osmar A. Bermeo Carrasco Página 70
El subgrafo inducido por un subconjunto de vértices W V es el grafo cuyo conjunto de vértices es
W y cuyas aristas son todas las de G cuyos extremos están en W.
un grafo G
un subgrafo generador G2 de G
a b c a b c a b c
G G1 G2
d e f e d e f
Ejemplo
Para el multígrafo que se muestra en siguiente figura, tendremos los siguientes grados
a b
𝑔𝑟𝑎𝑑(𝑎) = 4
𝑔𝑟𝑎𝑑(𝑏) = 2
𝑔𝑟𝑎𝑑(𝑐) = 1
𝑔𝑟𝑎𝑑(𝑑) = 5
d c
Figura: Multígrafo
Un grafo G = (V, A), es regular si todos sus vértices tienen el mismo grado. Si 𝑔𝑟𝑎𝑑(𝑣) = 𝑘
Sea el grafo G = (V, A), mostrado en la siguiente figura, donde se observa que cada vértice tiene
grado 3, en consecuencia diremos que el grafo es 3-regular
a b
d c
b) Grafo completo
Un grafo G = (V, A), es completo si existen aristas uniendo todos los pares posibles de vértices. Es
decir, todo par de vértices (a, b),(𝑎 ≠ 𝑏) debe tener una arista e que los une.
Ejemplo
c) Grafo conexo
Un grafo G = (V, A), es conexo si para cada par de vértices u y v existe un camino de u a v. En caso
contrario se dirá que el grafo es no conexo (o disconexo).
Sea G = (V, A), un grafo o multígrafo entonces ∑𝑣∈𝑉 𝑔𝑟𝑎𝑑(𝑣) = 2|𝐸|. Es decir la sumatoria de los grados
de todos los vértices es igual al doble del número de aristas.
Ejemplo.
V5
Sea el grafo mostrado en la siguiente figura V6 V4
𝑔𝑟𝑎𝑑(𝑣1 ) = 2 , 𝑔𝑟𝑎𝑑(𝑣5 ) = 3
𝑔𝑟𝑎𝑑(𝑣2 ) = 3 , 𝑔𝑟𝑎𝑑(𝑣6 ) = 3
V2
𝑔𝑟𝑎𝑑(𝑣3 ) = 1 , ∑𝑣∈𝑉 𝑔𝑟𝑎𝑑(𝑣) = 14 = 2|𝐸| = 2(7) V1 V3
𝑔𝑟𝑎𝑑(𝑣4 ) = 2 ,
Sea G = (V, A), un grafo de n-vértices, la matriz de adyacencia de G es la matriz de orden 𝑛𝑥𝑛 con
entradas 𝐴 = 𝑎𝑖𝑗 donde.
𝒂𝒊𝒋 = 𝟏, 𝒔𝒊 {𝒊, 𝒋} ∈ 𝑮
{
𝒂𝒊𝒋 = 𝟎, 𝒆𝒏 𝒄𝒖𝒂𝒍𝒒𝒖𝒊𝒆𝒓 𝒐𝒕𝒓𝒐 𝒄𝒂𝒔𝒐
En donde para poder armarla se empiezan a colocar los nodos o vértices como columnas y filas.
Ejemplo
V4
V3 V5
V1 V6
V2
V1 V2 V3 V4 V5 V6
V1 0 1 1 0 0 0
V2 1 0 1 1 0 0
V3 1 1 0 1 0 0
V4 0 1 1 0 1 0
V5 0 0 0 1 0 1
V6 0 0 0 0 1 0
0 1 1 0 0 0
1 0 1 1 0 0
1 1 0 1 0 0
La matriz adyacente del grafo es A= 0 1 1 0 1 0
0 0 0 1 0 1
0 0 0 0 1 0
Sea 𝑚 un entero positivo, 𝑚 > 1, la relación 𝑅 = {(𝑎, 𝑏)/𝑎 ≅ 𝑏(𝑚𝑜𝑑(𝑚)} se denomina relación
de equivalencia modulo, la cual se define por.
𝑎−𝑏
𝑎 ≅ 𝑏(𝑚𝑜𝑑(𝑚) ↔ = 𝑘, 𝑘 𝑒𝑛𝑡𝑒𝑟𝑜
𝑚
(𝑎𝑅𝑏 ↔ 𝑎 𝑦 𝑏 𝑑𝑎𝑛 𝑒𝑙 𝑚𝑖𝑠𝑚𝑜 𝑟𝑒𝑠𝑖𝑑𝑢𝑜 𝑟 𝑎𝑙 𝑠𝑒𝑟 𝑑𝑖𝑣𝑖𝑑𝑖𝑑𝑜𝑠 𝑒𝑛𝑡𝑟𝑒 𝑚) (Definición)
Las clases de equivalencia en este caso, cada elemento a ∈ Z define la clase de equivalencia: [a]m =
{x ∈ Z : x ≡ a (mod m)} = {. . . , a – 2k, a − k, a, a + k, a + 2k, . . . } quedando Z dividido en m
clases de equivalencia correspondientes a los posibles m restos de dividir un número cualquiera
entre m : [0]m, [1]m, [2]m, . . . , [m − 2]m, [m − 1]m
Ejemplos.
Para m = 2 el conjunto Z queda dividido en las clases [0] y [1] que se corresponden con los
números pares y los impares respectivamente.
Ejemplo 1
Si 𝑅 es una relación de equivalencia determinar las clases de equivalencia [0] y [1] donde 𝑅: 𝑧 →
𝑧
Solución
Sea 𝑧 ≅ 𝑦(𝑚𝑜𝑑(4), 𝑧, 𝑦 ∈ 𝑍
𝑧 − 𝑦 = 4𝑘, 𝑘 𝑒𝑛𝑡𝑒𝑟𝑜 → 𝑧 = 𝑦 + 4𝑘
[0]: 𝑎 = 0 + 4𝑘
[1] = { } 𝑎 = 𝑏 + 4𝑘 𝑎 = 1 + 4𝑘
Ejemplo
Solucion
𝑐 ≅ 𝑟(𝑚𝑜𝑑(2), es decir los tres dan el mismo residuo al ser divididos entre dos. En consecuencia
𝑎 ≅ 𝑐(𝑚𝑜𝑑(2), congruencia de modulo 2.
4.4. Trayectorias
4.4.1. Definiciones
Camino simple (o trayectoria).- Es una sucesión finita de aristas de V a W sin vértices repetidos.
Ciclo simple.-Es ciclo de V a W sin vértices repetidos, excepto por los vértices inicial y final que
son iguales.
Ejemplo
Ciclo: 2, 6, 5, 2, 4, 3, 2
Camino simple: 5, 6, 2, 5
Los problemas de graficas nos permiten establecer aplicaciones dentro del contexto real utilizando
las trayectorias, circuitos, donde se puede empezar en un determinado vértice y terminar no
necesariamente en el mismo vértice, por ejemplo la distancia más corta en un determinado circuito
o trayectoria. Para este tipo de casos consideramos las siguientes definiciones y teoremas.
Es una trayectoria que incluye a cada una de las aristas solo una vez
4.4.5. Teorema
a) Si una gráfica G tiene un vértice de grado impar, entonces no puede existir un circuito de Euler
en G.
b) Si G es una gráfica conexa y todos sus vértices tienen grado par, entonces existe un circuito de
Euler en G
4.4.6. Teorema 2
a) Si una gráfica G tiene más de dos vértices de grado impar, entonces no puede existir una
trayectoria de Euler en G.
b) Si G es una gráfica conexa y tiene exactamente dos vértices grado impar, entonces existe una
trayectoria de Euler en G
Ejemplos
1.- En la siguiente figura existe una trayectoria de Euler, ya que tiene dos vértices de grado impar.
Trayectoria de Euler: A, B, D, A, C, D, E, G, D, F, G
2.- En la siguiente figura existe un circuito de Euler, ya que el grado es par en todos los vértices.
Isomorfismos de graficas
Definición 1.- Las gráficas isomorfas son aquellas que tienen forma diferente, pero representas las
mismas gráficas.
Definición 2.-Las graficas 𝐺1 y 𝐺2 son isomorfas si existe una función biyectiva f de los vértices
de 𝐺1 a los vértices de 𝐺2 y una función biyectiva g de las aristas de 𝐺1 a las aristas de 𝐺2 . De
manera que una arista 𝑒 es incidente en V y W en 𝐺1 si y solo si la arista g(e) es incidente en f(v) y
f(w) en 𝐺2 .
Ejemplo
i. G es un árbol.
ii. G tiene n-1 arcos y es conexo.
iii. G tiene n-1 arcos y no tiene ciclos.
5.3.Subárbol
Definición.- Sea G = (V, E) 𝑦 𝐺1 = (𝑉1 , 𝐸1 ) dos árboles, se dice que 𝐺1 es subárbol de 𝐺 si y solo
si 𝑉1 ⊆ 𝑉, 𝐸1 ⊆ 𝐸.
Árbol G Subárbol de G
Un árbol con raíz es un árbol en el que un vértice específico se designa como raíz.
Ejemplo
i) Altura de un árbol con raíz.- La altura de un árbol se define como la altura de la raíz.
ii) La profundidad de un nodo.- se define como la longitud del camino (único) que comienza en
la raíz y termina en el nodo. La profundidad de la raíz es cero, y la profundidad de un nodo se
puede calcular como la profundidad de su padre más uno.
iii) Nivel de un nodo.- A la profundidad de un nodo también se la denomina nivel del nodo en el
árbol.
Raíz
Nivel=1
Nivel=2
Vértice
Interno
Ancestro
Descendiente Hoja o
Padre Vértice terminal
Hijo
Altura=3+1
Ejemplo
Ejemplo
2
3
4
5 6 7
8 9
5.7.1.Definición.-Es un árbol en el que cada nodo tiene cero o dos hijos. Además se denomina
árbol binario total, a aquél que tiene presentes todas las hojas en el menor nivel. La raíz es de nivel
cero, los hijos de la raíz están en nivel 1; y así sucesivamente.
Deduciremos, de manera inductiva la altura de las hojas en función del número de nodos. El caso
más simple de un árbol completo tiene tres nodos, un nivel y altura dos. Hemos modificado
levemente la definición de altura, como el número de nodos que deben ser revisados desde la raíz a
las hojas, ya que la complejidad de los algoritmos dependerá de esta variable.
Árbol de nivel 1.
Nodos = 3 = 22 -1
Altura = 2
Árbol de nivel m.
Nodos = n = 2h -1
Altura = h = m+1
Hojas = 2m
Nodos internos = n – Hojas
5.8.1. Definición.-Es aquel que a cada arista se le asigna un número llamado peso.
Ejemplo
Arbol binario completo etiquetado
0 A
1
B
0 C
1 1
0
D
E
F G
Ejemplos
2.- Sea el conjunto 𝐹 = {1, 00, 01, 000, 0001} no es un código prefijo
𝑎: 01 𝑒: 0 𝑛: 101 𝑟: 10 𝑡: 1
Si transmitimos el mensaje “ata” se enviara la sucesión binaria 01101 pero también se puede
transmitir los mensajes con esta sucesión 𝒆𝒕𝒏, 𝒂𝒕𝒆𝒕, 𝒂𝒏 en consecuencia no es código prefijo
Raiz
0
1
𝑒: 0 0 1
𝑡: 100 1
0
𝑎: 111
1
0
𝑛: 1100
𝑟: 1101
5.9.2.Codificación de Huffman
Es una técnica para comprensión de datos. Este algoritmo le asigna secuencias binarias (códigos) a
los símbolos del alfabeto de manera de utilizar la menor cantidad de bits posibles
La idea del algoritmo del algoritmo de Huffman es que los datos a ser comprimidos, contienen
símbolos que aparecen con mayor frecuencia y otros muy poco, asignándoles el código mas corto a
los que más aparecen.
A continuación los pasos a seguir
Paso 1.
Se coloca los caracteres en orden creciente de acuerdo a la frecuencia de repetición
Paso 2.
Fusionar los nodos de menor frecuencia hasta obtener un solo árbol manteniendo el ordenamiento
creciente
Paso 3.
En el árbol obtenido en el paso 2 las hojas representan los símbolos o caracteres, los caminos o
trayectorias de la raíz a las hojas se codifica con 0 a la izquierda y con 1 a la derecha
Paso 4.
Finalmente de árbol se obtiene el código prefijo
a b c d e f
Frecuencia 45 13 12 16 9 5
( en miles )
Solución
Fase 1. : Caracteres colocados en orden creciente de frecuencia.
14 d:16 25 a:45
0 1 0 1
f:5 e:9 c:12 b:13
a:45 55
0 1
25 30
0 1 0 1
c:12 b:13 14 d:16
0 1
f:5 e:9
5.10.Árboles generadores
G T F
Dado un grafo 𝐺 = (𝑉, 𝐸), no dirigido ponderado. Un árbol de expansión mínima es un árbol
compuesto por todos los vértices y cuya suma de los pesos las aristas sea mínimo. El árbol
generador mínimo de un grafo, no necesariamente es único.
Ejemplo 1
Para el grafo G de la siguiente figura existen dos árboles generadores mínimos T1 y T2:
G T1 T2
1 1 1
2 2 2
5 3 3 5 3 5 3
4
6
Ejemplo 2
B
6
D
5
20
7
30
E
A
20 C 8
50 F
15 10
40
16
16
G 12
H
Determinar cuál sería la ruta del mensaje óptimo
6
D
5
E
A
C 8
F
15 10
G 12
H
Los algoritmos que permiten hallar un árbol de expansión mínima son el algoritmo de PRIM y el
algoritmo de KRUSKAL
El algoritmo de Prim es un algoritmo perteneciente a la teoría de los grafos para encontrar un árbol
recubridor mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas.
En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman un árbol con todos
los vértices, donde el peso total de todas las aristas en el árbol es el mínimo posible. Si el grafo no es
conexo, entonces el algoritmo encontrará el árbol recubridor mínimo para uno de los componentes
conexos que forman dicho grafo no conexo.
El algoritmo fue diseñado en 1930 por el matemático Vojtech Jarnik y luego de manera
independiente por el científico computacional Robert C. Prim en 1957 y redescubierto por Dijkstra
en 1959. Por esta razón, el algoritmo es también conocido como algoritmo DJP o algoritmo de Jarnik.
Paso 1.- Se elige un vértice 𝑣 de G y formamos 𝑉0= {𝑣}, donde en este paso el conjunto de aristas
𝐴0 = 𝜙 .
Paso 2.-Se examina todas las aristas que tienen a 𝑣 como uno de sus extremos y de entre ellas
seleccionamos la que tenga un peso menor. Consideremos la arista 𝑎 y sea el vértice 𝑤 su otro
extremo de la arista donde se forman los conjuntos 𝑉1 = {𝑣, 𝑤} y 𝐴1 = {𝑎}
Paso 3.- Repetimos el paso 2 hasta construir los conjuntos 𝑉𝑖−1 con 𝑖-vertives y 𝐴𝑖−1 con 𝑖 − 1 aristas
Paso 4.-Finalmente si en el paso 𝑡 no se puede encontrar una arista para continuar el procedimiento
el algoritmo acaba y la salida es el grafo 𝐺𝑡 = (𝑉𝑡−1 , 𝐴𝑡−1 ).
Ejemplo 1
La siguiente figura muestra cómo se construye, paso a paso, un árbol generador mínimo aplicando el
algoritmo.
Ejemplo 2
Consideremos que el grafo que se muestra en la figura representa un pequeño distrito, que no
cuenta con agua potable donde los vértices 𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹 representas las viviendas y las aristas
representan la separación entre las viviendas medida en kilómetros
Osmar A. Bermeo Carrasco Página 91
A
1 6
2
B
C
3 2
5
D
1 E
2
4
Determine la ruta que tenga el mínimo costo de habilitación de agua potable para el distrito
Construyendo la ruta de mínimo costo de habilitación se obtendrá el siguiente árbol que se muestra
en la siguiente figura, donde se observa que es de 8 kilómetros.
A
1
C
B
2
E
D
1
2 F
El algoritmo de Kruskal consiste en la obtención de un árbol cuyas aristas al ser sumados sus pesos
el valor obtenido es el mínimo, tomando el nombre de algoritmo voraz. El algoritmo está basado en
una propiedad de los árboles que permite estar seguros de sí un arco debe pertenecer al árbol o no, y
usar esta propiedad para seleccionar cada arco. Se debe tener en cuenta en el algoritmo que siempre
que se añade una arista, ésta será siempre la conexión más corta (menor peso) alcanzable desde el
nodo que se parte al resto del grafo.
Paso 2.- Seleccionar la arista con menor valor de toda la red incluyendo los nodos que la conforman
Paso 3.- Los dos pasos anteriores se lo debe hacer con todo el grafo y cuando se empiezan a formar
ciclos, estos se deben eliminar.
Paso 4.-El algoritmo finalizara cuando todos los arcos o aristas estén conectados
Ejemplo 1
La siguiente figura muestra cómo se construye, paso a paso, un árbol generador mínimo aplicando el
algoritmo. Nótese que antes de añadir la última arista, de peso 6, se encuentra una arista de entre las
no incorporadas hasta el momento de peso 5; sin embargo, esta arista no se añade debido a que forma
un ciclo con dos aristas incorporadas previamente (concretamente con las dos aristas cuyos pesos son
4 y 2, respectivamente).
Figura 1. Grafo G
3.-Los dos pasos anteriores se lo debe hacer con todo el grafo y cuando se empiezan a formar
Solución 1
Solución 2
Solución 2
1.-El algoritmo PRIM va creando un árbol en todo el proceso de las iteraciones, en cambio el
algoritmo de KRUSKAL, crea uno o varios árboles en cada iteración, en ambos casos finaliza
con solo árbol de expansión mínima.
4.- En ambos casos se pueden generar más de un árbol de expansión mínima. En el caso de que
todos los pesos fueran diferentes se genera como solución un único árbol de expansión
mínima. Pero si hubiera al menos dos aristas o arcos con pesos iguales existe la posibilidad
de generar dos soluciones óptimas, es decir dos árboles de expansión mínima.
En 1847, George Boole desarrolla el álgebra, que lleva su nombre, como un análisis matemático.
Su objetivo era describir las operaciones mentales mediante las cuales se realizan razonamientos.
Desarrollo un método sistemático para resolver problemas de lógica en su obra las leyes del
pensamiento.
El sistema ideado por Boole se utilizó símbolos para el desarrollo de las operaciones lógicas
𝑨𝟏 .-Elementos únicos
a+0=a
a. 1 = a
Si a y b pertenecen a B:
a+b=b+a
a. b = b. a
𝑨𝟑 .-Asociatividad
Si a, b y c pertenecen a B:
a + (b + c) = (a + b) + c
a. (b. c) = (a. b). c
𝑨𝟒 .-Distributividad
Si a, b y c pertenecen a B:
a + (b. c) = (a + b)(a + c)
a. (b + c) = (a. b) + (a. c)
𝑨𝟒 .-Complementariedad
a + 𝑎̅ = 1
a. 𝑎̅ = 0
𝑨𝟓 .-Igualdad
Dos expresiones son iguales si una puede ser substituida por la otra.
1̅ = 0
0̅ = 1
𝑎̿ = 𝑎
a+a=a
a. a = a
Demostración
6.1.7. Teorema
a+1=1
a. 0 = 0
Demostración
a + a. b = a
a. (a + b) = a
Demostración
𝑎 + 𝑎. 𝑏 = 𝑎. 1 + 𝑎. 𝑏 = 𝑎(1 + 𝑏) = 𝑎. 1 𝑎. (𝑎 + 𝑏) = 𝑎. 𝑎 + 𝑎. 𝑏 = 𝑎
=𝑎
̅̅̅̅̅̅̅
𝑎 + 𝑏 = 𝑎. ̅ 𝑏̅
̅̅̅ = 𝑎̅ + 𝑏̅
𝑎𝑏
Demostración
̅̅̅ = 𝑎̅ + 𝑏̅
i) 𝑎𝑏
̅̅̅ = 1
𝑎𝑏 + 𝑎𝑏 ̅̅̅̅̅ = 0
(𝑎𝑏). (𝑎𝑏) (*)
(𝑎𝑏) + (𝑎̅ + 𝑏̅) = (𝑎̅ + 𝑏̅) + (𝑎𝑏) = ((𝑎̅ + 𝑏̅) + 𝑎) ((𝑎̅ + 𝑏̅) + 𝑏)
ii) ̅̅̅̅̅̅̅ ̅ 𝑏̅
𝑎 + 𝑏 = 𝑎.
(𝑎 + 𝑏) + ̅̅̅̅̅̅̅
𝑎+𝑏 =1 ̅̅̅̅̅̅̅̅
(𝑎 + 𝑏). (𝑎 + 𝑏) = 0 (*)
(𝑎 + 𝑏)(𝑎̅. 𝑏̅) = (𝑎̅ + 𝑏̅) + (𝑎𝑏) = (𝑎. 𝑎̅. 𝑏̅) + (𝑏. 𝑎̅. 𝑏̅) = 0 (***)
̅̅̅̅̅̅̅
(𝑎 + 𝑏) + 𝑎 + 𝑏 = (𝑎 + 𝑏) + (𝑎̅. 𝑏̅)
̅̅̅̅̅̅̅̅
(𝑎 + 𝑏). (𝑎 + 𝑏) = (𝑎 + 𝑏)(𝑎̅. 𝑏̅)
A continuación veremos que el uso de tablas de verdad permite corroborar la demostración de los
teoremas del algebra de Boole.
̅̅̅̅̅̅̅
𝑎 + 𝑏 = 𝑎.̅ 𝑏̅
̅̅̅
𝑎𝑏 = 𝑎̅ + 𝑏̅
a b 𝑎̅ 𝑏̅ ̅̅̅
𝑎𝑏 𝑎̅ + 𝑏̅ a b 𝑎̅ 𝑏̅ ̅̅̅̅̅̅̅
𝑎+𝑏 𝑎̅. 𝑏̅
0 0 1 1 1 1 0 0 1 1 1 1
0 1 1 0 1 1 0 1 1 0 0 0
1 0 0 1 1 1 1 0 0 1 0 0
1 1 0 0 0 0 1 1 0 0 0 0
6.2. Definiciones
𝑓: 𝐵 𝑛 → 𝐵
La función puede definirse de manera que dando los valores de verdad toma cada posible
combinación de entradas. Esta representación se llama tabla de verdad.
Ejemplo
a b b 𝑓(𝑎, 𝑏, 𝑐) = 𝑐(𝑎 + 𝑏)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Sea la función 𝑓: 𝐵 2 → 𝐵
0 , 𝑠𝑖 𝑎 = 0 , 𝑏 = 0
𝑓(𝑎, 𝑏) = 𝑎 + 𝑏 = {
1 , 𝑒𝑛 𝑐𝑢𝑎𝑙𝑞𝑢𝑖𝑒𝑟 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜
Sea la función 𝑓: 𝐵 2 → 𝐵
1 , 𝑠𝑖 𝑎 = 1 , 𝑏 = 1
𝑓(𝑎, 𝑏) = 𝑎𝑏 = {
0 , 𝑒𝑛 𝑐𝑢𝑎𝑙𝑞𝑢𝑖𝑒𝑟 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜
Sea la función 𝑓: 𝐵 → 𝐵
1 , 𝑠𝑖 𝑎 = 1
𝑓(𝑎) = 𝑎̅ = {
0 , 𝑠𝑖 𝑎 = 0
Para describir una función booleana donde nos proporcionan los valores de salida parta todas las
combinaciones de las entradas es necesario los postulados y teoremas del algebra de Boole.
Ejemplo
a b 𝑓(𝑎, 𝑏)
0 0 0
0 1 1
1 0 1
1 1 0
𝑓(𝑎, 𝑏) = 𝑎̅. 𝑏 + 𝑎. 𝑏̅
Si analizamos los postulados veremos que los mismos se presentan de a pares y en tal forma que
uno de la pareja se obtiene de otro cambiando "0" por "1" junto con las operaciones "+" por "."
( y viceversa). Esto asegura que cada propiedad que se demuestre en esta Álgebra tiene una
Ejemplos
Postulado Dualidad
𝑎 + 𝑎̅=1 𝑎. 𝑎̅ = 0
a.0=0 𝑎+1=1
0+0=0 1.1=1
Es un grupo de expresiones que se encuentran relacionadas entre sí, por el termino AND que
Ejemplo
𝐴. 𝐵, 𝐶. 𝐴, 𝑥̅ . 𝑦. 𝑧
Es un grupo de expresiones que se encuentran relacionadas entre sí, por el termino OR que indica
suma (+).
Ejemplo
𝐴 + 𝐵, 𝐶 + 𝐴, 𝑥̅ . 𝑦 + 𝑦𝑧
Es aquel término que es exactamente uno de cada uno de los literales o expresiones de las
funciones booleanas.
6.4.5.Termino normal
Termino normal es aquel termino producto o termino suma en el que un literal no aparece más
de una vez.
Es un producto booleano en la que cada variable aparece sólo una vez; es decir, es una expresión
lógica que se compone de variables y los operadores lógicos AND y NOT.
Ejemplo
X.Y.Z y 𝑋. 𝑌̅. 𝑍
6.4.7. Maxtérmino
Es una expresión lógica que se compone de variables y los operadores lógicos OR y NOT.
Ejemplo
X+Y+Z y 𝑋 + 𝑌̅ + 𝑍
Es aquella forma que está constituida por términos normales, puede estar en la forma suma de
términos producto o producto de términos suma.
Ejemplo
i) 𝑓(𝑥, 𝑦, 𝑧) = 𝑥̅ . 𝑦. 𝑧 + 𝑥̅ . 𝑦. 𝑧̅
Es aquella forma constituida exclusivamente por términos canónicos que aparecen una sola vez.
Ejemplo
Ejemplo
𝑓(𝑥, 𝑦, 𝑧) = (𝑥̅ . 𝑦̅. 𝑧) + (𝑥. 𝑦̅. 𝑧̅) + (𝑥. 𝑦̅. 𝑧) + (𝑥. 𝑦. 𝑧̅) + (𝑥. 𝑦. 𝑧)
𝑓(𝑥, 𝑦, 𝑧) = ∑ (1,4,5,6,7)
𝑚
Ejemplo
𝑓(𝑥, 𝑦, 𝑧) = ∏ (0,2,3)
𝑀
Resumen para cada mintermino que se asocia con la combinación de entradas de la tabla de
verdad, la función producirá una salida de 1, y para maxtermino que se asocia con la combinación
de entradas de la tabla de verdad, la función producirá una salida de 0, a continuación se ilustrara
en la siguiente tabla.
𝑓(𝑥, 𝑦, 𝑧) = 𝑥 + 𝑦̅. 𝑧
Solución
i) Establecer la tabla de verdad de la expresión, luego tomar los minterminos, es decir se evalúa
la función para todas las combinaciones de entrada, luego se toma los minterminos, para la cual
la función tiene como salida 1
𝑓(𝑥, 𝑦, 𝑧) = 𝑥.
̅ 𝑦.
̅ 𝑧 + 𝑥. 𝑦.
̅ 𝑧̅ + 𝑥. 𝑦.
̅ 𝑧 + 𝑥. 𝑦. 𝑧̅ + 𝑥. 𝑦. 𝑧
ii) Aplicando los teoremas de expansión canónica para las variables faltantes
6.6. Teorema
Para obtener la forma canónica de una función suma de productos (minterminos), se multiplica
por un término de la forma (𝑎 + 𝑎̅), donde falta un literal para que el término sea canónico.
En efecto
̅ + 𝑦̅. 𝑧. (𝑥 + 𝑥̅ )
𝑓(𝑥, 𝑦, 𝑧) = 𝑥. (𝑦 + 𝑦̅). (𝑧 + 𝑧)
̅ + 𝑦̅. 𝑧. 𝑥 + 𝑦̅. 𝑧. 𝑥̅
𝑓(𝑥, 𝑦, 𝑧) = (𝑥. 𝑦 + 𝑥. 𝑦̅). (𝑧 + 𝑧)
𝑓(𝑥, 𝑦, 𝑧) = 𝑥 + 𝑦̅. 𝑧
Solución
De igual manera que el caso anterior hay dos formas de resolver el problema
i) Establecer la tabla de verdad de la expresión, luego tomar los maxterminos, es decir se evalúa
la función para todas las combinaciones de entrada, luego se toma los maxterminos, para la
cual la función tiene como salida 0
ii) Aplicando los teoremas de expansión canónica para las variables faltantes
6.7. Teorema
Para obtener la forma canónica de una función productos sumas (maxterminos), se suma un
término de la forma (𝑎. 𝑎̅), donde falta un literal para que el término sea canónico.
En efecto
𝑓(𝑥, 𝑦, 𝑧) = (𝑥 + 𝑦̅). (𝑥 + 𝑧)
Se ha definido anteriormente que una función lógica es una combinación de operaciones lógicas
aplicadas sobre variables que sólo pueden tomar valores 0 ó 1. Dichas variables pueden
representar el estado de un sistema tal como: apagado o encendido, funcionando o sin funcionar,
sí o no, etc. En cualquier caso, tomamos 1 como un estado cualquiera y 0 como el estado
contrario. Una puerta lógica es el dispositivo que realiza una determinada operación lógica
elemental.
La decisión tomada por una puerta lógica consiste en situar su salida en 0 ó en 1, dependiendo
del estado de sus entradas y de la función lógica para la cuál ha sido diseñada.
Dentro de la electrónica son dispositivos cuyo funcionamiento se basa en las operaciones lógicas
suma, producto y complementación (OR, AND, NOT). Los elementos básicos con los que se
construyen puertas lógicas son componentes semiconductores, como el diodo y el transistor.
a) Puerta OR (suma)
Comportamiento:
Símbolo
a
Puerta dos 𝑓(𝑎, 𝑏) = 𝑎 + 𝑏
entradas b
a b 𝑓(𝑎, 𝑏) = 𝑎 + 𝑏
0 0 0
0 1 1
1 0 1
1 1 1
Comportamiento:
Símbolo
a
Puerta dos 𝑓(𝑎, 𝑏) = 𝑎. 𝑏
entradas b
Tabla de verdad
a b 𝑓(𝑎, 𝑏) = 𝑎. 𝑏
0 0 0
0 1 0
1 0 0
1 1 1
Comportamiento:
Tabla de verdad
a 𝑓(𝑎) = 𝑎̅
0 1
1 0
Comportamiento:
Símbolo
a
Puerta dos 𝑓(𝑎, 𝑏) = ̅̅̅̅̅̅̅
𝑎+𝑏
entradas b
Tabla de verdad
a b 𝑓(𝑎, 𝑏) = ̅̅̅̅̅̅̅
𝑎+𝑏
0 0 1
0 1 0
1 0 0
1 1 0
Comportamiento:
Símbolo
a
̅̅̅
𝑓(𝑎, 𝑏) = 𝑎𝑏
Puerta dos
entradas b
Tabla de verdad
a b ̅̅̅
𝑓(𝑎, 𝑏) = 𝑎𝑏
0 0 1
0 1 1
1 0 1
1 1 0
Comportamiento:
Si el número de entradas en alto es impar, la salida será alta. De otra manera será baja.
Símbolo
a
Puerta dos 𝑓(𝑎, 𝑏) = 𝑎̅𝑏 + 𝑎𝑏̅ = 𝑎 ⊕ 𝑏
entradas b
0 0 0
0 1 1
1 0 1
1 1 0
Comportamiento:
Símbolo
a
̅̅̅̅̅̅ = (𝑎 + 𝑏̅)(𝑎̅ + 𝑏) = 𝑎 ⊙ 𝑏
𝑓(𝑎, 𝑏) = 𝑎⨁𝑏
Puerta dos
entradas b
Tabla de verdad
a b ̅̅̅̅̅̅ = (𝑎 + 𝑏̅)(𝑎̅ + 𝑏) = 𝑎 ⊙ 𝑏
𝑓(𝑎, 𝑏) = 𝑎⨁𝑏
0 0 1
0 1 0
1 0 0
1 1 1
Ejemplo 1
Determine la salida booleana del siguiente circuito y escribir una tabla de vedad para el mismo
Escribiendo sobre el diagrama la salida de cada puerta lógica tenemos la función logica
𝑓(𝐴, 𝐵) = ̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝐴̅. 𝐵 + ̅̅̅̅̅
𝐴. 𝐵
Tabla de verdad
A B 𝑓(𝐴, 𝐵) = ̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝐴̅. 𝐵 + ̅̅̅̅̅
𝐴. 𝐵
0 0 0
0 1 0
1 0 0
1 1 1
Ejemplo 2.-Determine la salida booleana del siguiente circuito y escribir una tabla de vedad para
el mismo
Escribiendo sobre el diagrama la salida de cada puerta lógica tenemos la función logica
𝑓(𝐴, 𝐵) = 𝐴. 𝐵̅ + ̅̅̅̅̅
𝐴̅. 𝐵 + ̅̅̅̅̅̅̅̅
𝐴+𝐵
Tabla de verdad
A B ̅̅̅̅̅
𝑓(𝐴, 𝐵) = 𝐴. 𝐵̅ + 𝐴 ̅. 𝐵 + ̅̅̅̅̅̅̅̅
𝐴+𝐵
0 0 1
0 1 0
1 0 1
1 1 1
Métodos de simplificación
Este método consiste en la aplicación analítica de los axiomas y teoremas de algebra de Boole.
F (A, B, C) = A’B’+C
Una función booleana expresada en forma algebraica puede aparecer de muchas formas
diferentes, sin embargo, la representación con una tabla de verdad es única. Se pueden utilizar
los postulados y teoremas booleanos para simplificar una función booleana expresada en forma
algebraica, pero no existe un mecanismo específico utilizando este método.
El método de mapas representa una forma simple y directa de minimizar las funciones booleanas
expresadas en su tabla de verdad. El mapa es un diagrama compuesto por cuadros, cada uno de
los cuales representa un minitérmino. La cantidad de celdas del mapa es 2𝑛 ; donde n representa
la cantidad de variables
Sea f una función de dos variables 𝑓: 𝐵 2 → 𝐵, para este caso se forma un mapa de
A B Mintermino
0 0 𝐴̅. 𝐵̅ = 𝑚0
0 1 𝐴̅. 𝐵 = 𝑚1
1 0 𝐴. 𝐵̅ = 𝑚2
1 1 𝐴. 𝐵 = 𝑚3
a b Mintermino
0 0 𝑎̅. 𝑏̅ = 𝑚0
0 1 𝑎. 𝑏 = 𝑚1
1 0
1 1 𝑎. 𝑏 = 𝑚3
𝑓(𝑎, 𝑏) = ∑ (0,1,3) = 𝑚0 + 𝑚1 + 𝑚3
𝑚
𝑓(𝑎, 𝑏) = (𝑎̅ + 𝑏)(𝑏̅ + 𝑏) = (𝑎̅ + 𝑏), por tanto la función simplificada sera
𝑓(𝑎, 𝑏) = (𝑎̅ + 𝑏)
a 0 ≈ 𝑎̅ 1≈𝑎
b
0 ≈ 𝑏̅ 𝑚0 𝑚2
1 0
1≈𝑏 𝑚1 𝑚3
1 1
𝑓(𝑎, 𝑏) = (𝑎̅ + 𝑏)
Sea f una función de tres variables 𝑓: 𝐵 3 → 𝐵, para este caso se forma un mapa de
Es importante colocar las variables en el orden indicado de más a menos significativo (𝐴, 𝐵, 𝐶),
ya que de otra forma el valor decimal será diferente.
A B C Mintermino
0 0 0 𝐴̅. 𝐵̅ . 𝐶̅
= 𝑚0
0 0 1 𝐴̅. 𝐵̅ . 𝐶
= 𝑚1
0 1 0 𝐴̅. 𝐵. 𝐶̅
= 𝑚2
0 1 1 𝐴̅. 𝐵. 𝐶
= 𝑚3
1 0 0 𝐴. 𝐵̅ . 𝐶̅
= 𝑚4
Cabe resaltar que en las columnas AB no se sigue el orden progresivo de valores, 00, 01, 10 y
11; sino 00, 01, 11 y 10. Esto se debe a que el proceso de minimización depende de la
ubicación de las celdas en el mapa; ya que, entre una celda y otra (en forma horizontal o en
forma vertical) sólo debe cambiar 1 variable (adyacencia lógica).
Ejemplo 1
A B C Mintermino
0 0 0 𝐴̅. 𝐵̅ . 𝐶̅ = 𝑚0
0 0 1 𝐴̅. 𝐵̅ . 𝐶 = 𝑚1
0 1 0 𝐴̅. 𝐵. 𝐶̅ = 𝑚2
0 1 1
1 0 0 𝐴. 𝐵̅ . 𝐶̅ = 𝑚4
1 0 1
1 1 0 𝐴. 𝐵. 𝐶̅ = 𝑚6
1 1 1
𝑓(𝑎, 𝑏, 𝑐) = ∑ (0,1,2,4,6) = 𝑚0 + 𝑚1 + 𝑚2 + 𝑚4 + 𝑚6
𝑚
𝑓(𝑎, 𝑏, 𝑐) = 𝑚0 + 𝑚1 + 𝑚2 + 𝑚4 + 𝑚6
00 01 11 10
0
1 (0) 1 (2) 1 (6) 1 (4)
1
1 ( 1)
𝑓(𝑎, 𝑏) = 𝑎̅. 𝑏̅ + 𝑐̅
Simplificar la función booleana expresada en la siguiente tabla de verdad por medio del método
de mapas de karnaugh
x y z ∑𝑚 𝑚𝑖 (Minterminos)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
Resolución
𝑓(𝑥, 𝑦, 𝑧) = ∑𝑚(1,3,4,5,7)
i) Sí agrupamos los términos donde la salida es igual 1, de dos en dos minterminos, como se
muestra en la siguiente tabla
𝑓(𝑥, 𝑦, 𝑧) = 𝑥̅ 𝑧 + 𝑥𝑦̅ + 𝑥𝑧
ii) Sí agrupamos los términos donde la salida es igual 1, de 4 y 2 minterminos, como se muestra
en la siguiente tabla
𝑓(𝑥, 𝑦, 𝑧) = 𝑥𝑦̅ + 𝑧
Sea f una función de cuatro variables 𝑓: 𝐵 4 → 𝐵, para este caso se forma un mapa de
Las filas siguen el mismo orden de las columnas (00, 01, 11 y 10) para que haya adyacencia
lógica.
Ejemplo
𝑓(𝐴, 𝐵, 𝐶, 𝐷) = ∑ (1,5,7,9,13,15)
𝑚
𝑓(𝐴, 𝐵, 𝐶, 𝐷) = 𝐴̅𝐵̅ 𝐷
̅ 𝐸 + 𝐴̅𝐵𝐷
̅ 𝐸 + 𝐴̅𝐵𝐶𝐸 + 𝐴𝐵̅ 𝐶̅ 𝐷 + 𝐴𝐵𝐶̅ 𝐷 + 𝐴𝐵𝐶𝐷
Resolución
El mapa de karnaugh de acuerdo a los minterminos estará dado por la siguiente tabla
00 01 11 10
00
01
1 1 1 1
11
1 1
10
𝑓(𝐴, 𝐵, 𝐶, 𝐷) = 𝐶̅ 𝐷 + 𝐵𝐷
Sea f una función de cinco variables 𝑓: 𝐵 5 → 𝐵, 𝑓(𝐴, 𝐵, 𝐶, 𝐷, 𝐸), para este caso se forma un
mapa de 25 = 32 , 𝑛 = 5 , minterminos (celdas), como se muestra el siguiente tabla.
ABC
Ejemplo
𝑓(𝐴, 𝐵, 𝐶, 𝐷, 𝐸) = ∑ (0,2,4,7,10,12,13,18,23,26,28,29)
𝑚
El mapa de karnaugh de acuerdo a los minterminos estará dado por la siguiente tabla
ABC
00 11 11 11 11
01 11 11
11 11 11
10 11 11 1 1 11
ABC
00 0 4 12 8 24 28 20 16
01 1 5 13 9 25 29 21 17
11 3 7 15 11 27 31 23 19
10 2 6 14 10 26 30 22 18
a. Algebraicamente
b. Cada término se define encontrando las variables que hay en común en dicho rectángulo
a. Para simplificar la expresión, se agrupan los 1’s de celdas adyacentes en bloques cuadrados o
rectangulares de 2, 4, 8, 16,…, 2𝑛 . Estos se llaman implicantes primos.
b. Si alguno de los rectángulos contiene algún 1 que no aparece en ningún otro rectángulo,
entonces es un implicante primo esencial, los cuales deben aparecer de manera obligatoria en el
resultado final.
NOTA:
Cuando se desea obtener una “suma de productos”, entonces se agrupan los 1’s.
Cuando se desea obtener un “producto de sumas”, entonces se agrupan los 0’s.
Aunque las expresiones resultantes no son iguales, son lógicamente equivalentes.
Una estructura matemática es una serie de objetos matemáticos con la definición de las
operaciones que se realizan con estos y las propiedades que las acompañan, también llamado un
sistema matemático, para matemática discreta se estudian únicamente las estructuras
matemáticas discretas.
Ejemplos
La colección de los conjuntos con las operaciones, unión, intersección y complemento, y las
operaciones relacionadas, es una estructura matemática discreta. S e denota esta estructura por
[𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜𝑠,∪,∩, − ].
cerradura
Una estructura es cerrada con respecto de una operación si esa operación produce otro elemento
de la colección de objetos.
Ejemplo
La estructura de los números enteros impares con las operaciones suma y multiplicación
[𝑒𝑛𝑡𝑒𝑟𝑜𝑠 𝑖𝑚𝑝𝑎𝑟𝑒𝑠, +,∗]
La estructura no es cerrada con respecto a la adición, dado que la suma de dos enteros impares
es un entero par.
La estructura es cerrada con respecto a la multiplicación, dado que el producto de dos enteros
impares es un número impar.
Ejemplo
i) La unión y la conjunción para las matices booleanas son operaciones conmutativas, es decir
Asociativa
La propiedad asociativa es aquella donde los objetos matemáticos se pueden asociar sin que
cambie el resultado
Ejemplo
Distributiva
Si una estructura matemática tiene dos operaciones binarias entonces la distribución de los
objetos matemáticos no cambia el resultado.
Ejemplo
a + (b. c) = (a + b)(a + c)
a. (b + c) = (a. b) + (a. c)
Observación
Una operación que combina dos objetos matemáticos es una operación binaria
Una operación que requiere solo un objeto matemático en una operación unaria
Las leyes son aplicables para algunas estructuras matemáticas pero no en general.
Ejemplo
̅̅̅̅̅̅̅
𝑎 + 𝑏 = 𝑎. ̅ 𝑏̅
̅̅̅ = 𝑎̅ + 𝑏̅
𝑎𝑏
ii) La estructura [𝑛𝑢𝑚𝑒𝑟𝑜𝑠 𝑟𝑒𝑎𝑙𝑒𝑠, +,∗ , √ ], no satisface las leyes de Morgan, ya que
√𝑥 + 𝑦 ≠ √𝑥 ∗ √𝑦
∗ ∶ 𝐴𝑥𝐴 → 𝐴
(𝑎1 , 𝑎2 ) → 𝑎1 ∗ 𝑎2
Donde como una operación binaria es una función entonces solo se le asigna un elemento de A
a cada pareja ordenada.
Ejemplos
2−3≠3−2
7.5. Semigrupo
Un semigrupo es un subcojunto no vacio A con una operación binaria asociativa (*) definida en
en A. se denota el semigrupo como (S,*).
Ejemplo
𝑒∗𝑎=𝑎∗𝑒=𝑎
Ejemplo
(𝑍, . ), y (𝑍, +)
7.5.2. Monoide
Ejemplo
7.5.3. Isomorfismo
Sean (𝑆;∗) y (𝑇;∗! ), dos semigrupos, una función 𝑓: 𝑆 → 𝑇es un isomorfismo de (𝑆;∗) a (𝑇;∗! )
si es una correspondencia biyectiva de S a T y si
Ejemplo
Sea T el conjunto de todos los enteros pares, probar que los semigrupos (𝑍; +) y (𝑇; +) son
isomorfos.
Prueba
a) Inyectividad
b) suryectividad
𝑏
Sea b un entero par 𝑏 ∈ 𝑇, entonces consideremos 𝑎 = 2 ∈ 𝑍 entonces
𝑏
𝑓(𝑎) = 2𝑎 = 2 (2) = 𝑏, por lo tanto f es sobreyectiva
7.5.4. Homomorfismo
Sean (𝑆;∗) y (𝑇;∗! ) dos semigrupos, una función 𝑓: 𝑆 → 𝑇 definida para todo punto, es un
homomorfismo de (𝑆;∗) a (𝑇;∗! ) si
Ejemplo
Donde
+ 0 1
0 0 1
1 1 0
En efecto
𝑓(0) = 0, 𝑓(1) = 1
7.5.5. Teorema
Demostración
𝑏 = 𝑏 ∗! 𝑓(𝑒) …….𝛼
De manera análoga si 𝑎 = 𝑒 ∗ 𝑎
𝑏 = 𝑓(𝑒) ∗! 𝑏………𝛽
𝑏 = 𝑏 ∗! 𝑓(𝑒) = 𝑓(𝑒) ∗! 𝑏
7.5.6. Teorema
Demostración
Si 𝑓 es un homomorfismo entonces
Consideremos 𝑎 = 𝑒
Finalmente de (1) y (3), obtenemos que 𝑓(𝑒) ∗! 𝑓(𝑏) = 𝑓(𝑏) ∗! 𝑓(𝑒) lo que significa que 𝑓(𝑒) =
𝑒 !∎
7.5.7. Teorema
Demostración
𝑥1 ∗! 𝑥2 = 𝑥2 ∗! 𝑥1
7.6.1. Grupo
Definición.- Sea (𝐺;∗), un monoide entonces (𝐺;∗) es un grupo si cumple las siguientes
condiciones.
1.- ∀ 𝑎, 𝑏 ∈ 𝐺 , 𝑎 ∗ 𝑏 ∈ 𝐺 (cerradura)
2.- ∀ 𝑎, 𝑏, 𝑐 ∈ 𝐺 , 𝑎 ∗ (𝑏 ∗ 𝑐) = (𝑎 ∗ 𝑏) ∗ 𝑐 (asociatividad)
𝑒 ∗ 𝑎 = 𝑎 ∗ 𝑒 = 𝑎, ∀𝑎 ∈ 𝐺
Ejemplo
Sea (𝑅;∗), donde 𝑅 es el conjunto de los números reales diferentes de cero, y definimos la
operación (∗) como
𝑎𝑏
𝑎∗𝑏 = 2
1.-Sea 𝑎, 𝑏 ∈ 𝑅 entonces 𝑎 ∗ 𝑏 ∈ 𝑅
2.-Sea 𝑎, 𝑏, 𝑐 ∈ 𝑅 entonces 𝑎 ∗ (𝑏 ∗ 𝑐) = (𝑎 ∗ 𝑏) ∗ 𝑐
𝑏𝑐 𝑎(𝑏𝑐) 𝑎𝑏 𝐶
En efecto 𝑎 ∗ ( 2 ) = = ( 2 ) . 2 = (𝑎 ∗ 𝑏) ∗ 𝑐
4
𝑎.𝑒
Luego por definición del operador 𝑎 ∗ 𝑒 = =𝑎→𝑒=2∈𝑅
2
𝑎.𝑎−1
En efecto si 𝑎−1 ∈ 𝑅, entonces 𝑎 ∗ 𝑎−1 = 𝑒 → = 𝑒, además si 𝑒 = 2, tendremos
2
4
Que el elemento será 𝑎−1 = 𝑎 ∈ 𝑅
𝑎𝑏 𝑏𝑎
𝑎∗𝑏 = = = 𝑏∗𝑎
2 2
7.7. Teorema
Prueba
Sean 𝑎,
̅ 𝑎̿ , inversos de 𝑎, entonces 𝑎. 𝑎̅ = 𝑒, 𝑎. 𝑎̿ = 𝑒
7.8. Teorema
a) Si 𝑎𝑏 = 𝑎𝑐 entonces 𝑏 = 𝑐
b) Si 𝑏𝑎 = 𝑐𝑎 entonces 𝑏 = 𝑐
Prueba
a)Si 𝑎𝑏 = 𝑎𝑐 y dado que (𝐺,∗) es un grupo tiene elemento inverso 𝑎−1 , luego
7.9. Teorema
a) (𝑎−1 )−1 = 𝑎
b) (𝑎𝑏)−1 = 𝑏 −1 . 𝑎−1
Prueba
a) Dado que (𝐺,∗) es un grupo, 𝑎, 𝑎−1 ∈ 𝐺 entonces existe un elemento inverso para 𝑎−1
Es decir (𝑎−1 )(𝑎−1 )−1 = 𝑒 → 𝑎(𝑎−1 )(𝑎−1 )−1 = 𝑎. 𝑒 → (𝑎. 𝑎−1 )(𝑎−1 )−1 = 𝑎. 𝑒
b) Dado que (𝐺,∗) es un grupo, 𝑎𝑏, (𝑎𝑏)−1 ∈ 𝐺 entonces existe un elemento inverso para (𝑎𝑏)−1,
es decir ((𝑎𝑏)−1 )((𝑎𝑏)−1 )−1 = 𝑒 → ((𝑎𝑏)−1 )𝑎𝑏 = 𝑒
Prueba
a) Dado que (𝐺,∗) es un grupo, si 𝑎−1 , 𝑏 ∈ 𝐺 → 𝑎−1 . 𝑏 ∈ 𝐺, luego 𝑥 = 𝑎−1 . 𝑏 es una solución
de la ecuación 𝑎𝑥 = 𝑏, es decir 𝑎(𝑎−1 𝑏) = (𝑎𝑎 −1 )𝑏 = 𝑏
7.11. Subgrupo
2.- Si 𝑎, 𝑏 ∈ 𝐻 entonces 𝑎 ∗ 𝑏 ∈ 𝐻
1.-𝐻 ≠ ∅
2.-𝐻 ⊆ 𝐺
3.-∀ 𝑎, 𝑏 ∈ 𝐻 → 𝑎 ∗ 𝑏 ∈ 𝐻
Dados dos subgrupos (𝐻1,*), (𝐻2 *) e un mismo grupo (𝐺,∗) , entonces la intersección de los
subgrupos 𝐻 = 𝐻1 ∩ 𝐻2, es también otro subgrupo del mismo grupo (𝐺,∗).
En efecto
Dado que tenemos como hipótesis que (𝐻1,*), (𝐻2 *) son subgrupos por lo tanto en cada uno
está el elemento neutro de grupo, es decir 𝑒 ∈ 𝐻1 , 𝑒 ∈ 𝐻2
(𝑎 ∈ 𝐻1 ∧ 𝑏 ∈ 𝐻1 ) ∧ (𝑎 ∈ 𝐻2 ∧ 𝑏 ∈ 𝐻2 )
(𝑎 ∈ 𝐻1 ∧ 𝑏 ∈ 𝐻1 ) ∧ (𝑎 ∈ 𝐻2 ∧ 𝑏 ∈ 𝐻2 ) → ((𝑎 ∗ 𝑏) ∈ 𝐻1 ) ∧ ((𝑎 ∗ 𝑏) ∈ 𝐻2 )
(𝑎 ∗ 𝑏) ∈ (𝐻1 ∩ 𝐻2 ) → (𝑎 ∗ 𝑏) ∈ 𝐻
7.12.1. Teorema
Sean (𝐺1 ,∗1 ) y (𝐺2 ,∗2 ) dos grupos con elementos identidad 𝑒1 , 𝑒2 , respectivamente. En el conjunto
𝐺1 𝑥𝐺2 se define la operación ∗ talque
(𝑎, 𝑏) ∗ (𝑐, 𝑑) = (𝑎 ∗1 𝑐; 𝑏 ∗2 𝑑) , entonces (𝐺1 𝑥𝐺2 ;∗) es un grupo y se denomina grupo producto.
Sea 𝑅 una relación de congruencia sobre el grupo (𝐺,∗). Entonces el semigrupo (𝐺/𝑅,⊛) es un
grupo, donde la operación ⊛ se define en 𝐺/𝑅 como
8.1.1. Codificación
Ejemplo 4.1.1. Supongamos que un centro de control marítimo debe transmitir a los barcos la ruta
que deben seguir para llegar a puerto utilizando un canal binario cuya probabilidad de transmitir
incorrectamente un bit es del uno por mil, uno de cada mil bits se recibirá mal. El alfabeto fuente
consta de 4 símbolos {Norte, Sur, Este, Oeste}, cada uno de ellos significa navegar una milla
náutica en esa dirección. Si usamos como código el conjunto de pares binarios C = {00, 01, 10,
11} y se codifica Norte por 00, Oeste por 01, Este por 10 y Sur por 11, la distancia mínima del
código es 1 (no detecta errores). Si la ruta que se desea enviar es NNOO
quedaría codificada como 00 00 01 01, para facilitar su lectura se insertan espacios entre las
palabras. Supongamos que por efecto de las interferencias es recibida como 00 01 01 11, lo que
sería interpretado como la ruta NOOS. La probabilidad de que un símbolo fuente sea interpretado
correctamente es la misma que la probabilidad de que su palabra correspondiente sea recibida
correctamente; para este caso, es del 99, 8001 por ciento; aproximadamente dos de cada mil
palabras serán erróneas, lo cual no parece mucho. Sin embargo, si pensamos que el mensaje
completo consta de cien símbolos fuente, la probabilidad de que ´este sea recibido correctamente
en su totalidad es del 81, 865 por ciento.
Si se utiliza el código C = {000, 011, 101, 110}, codificando Norte por 000, Oeste por 011, Este
por 101 y Sur por 110, la distancia mínima es 2 (detecta errores simples), la ruta quedaría
codificada como 000 000 011 011. Si se recibe la transmisión 000 010 011 111 se detecta que la
segunda y la cuarta palabra son incorrectas, pidiéndose una retransmisión del mensaje. La
probabilidad de que una palabra se reciba correctamente es de 99, 7003 por ciento y la de una
recepción correcta de un mensaje de cien símbolos fuente desciende hasta un 74, 071 por ciento;
pero en un 25, 907 por ciento de los casos se detectara que el mensaje es incorrecto; pidiendo su
repetición. En consecuencia, la probabilidad de interpretar mal la recepción de un mensaje baja
del 18, 135 por ciento a menos de 0, 025 por ciento. En el caso de que no fuese posible pedir la
retransmisión de la ruta, sería preferible la utilización de un código corrector de errores simples;
por ejemplo, C = {00000, 01101, 10110, 11011}, codificando Norte por 00000, Oeste por 01101,
Este por 10110 y Sur por 11011, la ruta quedaría codificada como 00000 00000 01101 01101. Al
recibir la transmisión 00000 01000 01101 11101, de nuevo las palabras segunda y cuarta se
Osmar A. Bermeo Carrasco Página 146
detectan como incorrectas, pero debido a las capacidades del código son substituidas por 00000 y
01101 respectivamente, obteniendo la ruta correcta. Un símbolo fuente se interpretara
correctamente siempre que la palabra correspondiente se reciba correctamente o con un error
simple, lo que ocurre en un 99, 999 por ciento de los casos. A costa de incrementar el número de
bits transmitidos, la probabilidad de que un mensaje de cien símbolos fuente sea correctamente
interpretado aumenta hasta el 99, 9 por ciento.
8.1.2. Definición.-Un código (bloque) C para un alfabeto fuente S y un alfabeto del canal B es
una aplicación inyectiva, 𝐶: 𝑆 → 𝐵 𝑛 . La imagen de la aplicación C se denomina conjunto de
palabras código, y sus elementos son las palabras código. El valor n es la longitud del código, y
el número de palabras código, que coinciden con el número de símbolos fuente, es el tamaño del
código. Un código de longitud n y tamaño M se denomina un [n, M]-código. Un código sobre el
alfabeto B = {0, 1} se llama código binario, si el alfabeto es A = {0, 1, 2} se llama código ternario.
También suele denominarse código al conjunto de palabras código, denotándolo igualmente por
C.
En la codificación binaria es necesario conocer, el sistema binario, la teoría del algebra de Boole,
estructuras matemáticas y los teoremas.
⊕ 0 1
0 0 1
1 1 0
Sea 𝑒: 𝐵 𝑚 → 𝐵 𝑛 una función, diremos que 𝑒 es una función de codificación si representa cada
palabra en 𝐵 𝑚 , como una palabra en 𝐵 𝑛 . Es decir si 𝑏 ∈ 𝐵 𝑚 entonces 𝑒(𝑏) es la palabra
codificada que representa a 𝑏, y su notación es dado por 𝑒(𝑚. 𝑛).
𝑏 ∈ 𝐵𝑚 𝑥 = 𝑒(𝑏) ∈ 𝐵𝑛 𝑥𝑡 ∈ 𝐵𝑛
𝑒: Medio de transmisión
(canal)
Función de codificación
Ejemplo
Ejemplo
a) 𝑥 = 11100 b) 𝑦 = 00000
Ejemplo
𝐶 = {011,101,110}
Ejemplo
𝑒: 𝑒1 (00) = 00000
𝑒2 (01) = 01110
𝑒3 (10) = 00111
𝑒4 (11) = 11111
Hallar la distancia mínima de la función de codificación
Solución
Realizando las operaciones con el operador suma directa y la definición, obtenemos los siguientes
resultados que se muestran a continuación
Ejemplo
𝑒: 𝑒1 (000) = 00000000
𝑒2 (001) = 10111000
𝑒3 (010) = 00101101
𝑒4 (011) = 10010101
𝑒5 (100) = 10100100
𝑒6 (101) = 10001001
𝑒7 (110) = 00011100
𝑒8 (111) = 00110001
Cuantos errores detecta la función de codificación
Solución
i) Hallando la distancia mínima entre las 28 distintas parejas de palabras codificadas obtenemos
que la distancia mínima igual 3.
ii) Por el teorema la función de codificación detecta 𝑘 o menos errores si y solo si su distancia
mínima es al menos 𝑘 + 1, entonces de acuerdo al dato de i) y teorema tenemos.
𝑘+1≤3→𝑘 ≤2
Sean 𝑥, 𝑦 palabras códigos en 𝐵 𝑛 . La distancia de Hamming denotada por 𝑑(𝑥, 𝑦), entre 𝑥 y 𝑦 es
el peso |𝑥 ⊕ 𝑦| de 𝑥 ⊕ 𝑦. Así la distancia entre 𝑥 = (𝑥1 , 𝑥2 … … . . 𝑥𝑚 ) y 𝑦 = (𝑦1 , 𝑦 … … . . 𝑦𝑚 ) es
el número de los valores 𝑖 talque 𝑥𝑗 ≠ 𝑦𝑗 , es decir el número de posiciones que difieren 𝑥, y 𝑦.
a) 𝑥 = (110110), 𝑦 = (000101)
b) 𝑥 = (001100), 𝑦 = (010110)
Solución
a) 𝑥 ⊕ 𝑦 = 110011 → |𝑥 ⊕ 𝑦| = 4
b) 𝑥 ⊕ 𝑦 = 011010 → |𝑥 ⊕ 𝑦| = 3
a) 𝑑(𝑥, 𝑦) = 𝑑(𝑦, 𝑥)
b) 𝑑(𝑥, 𝑦) ≥ 0, 𝑥, 𝑦 ∈ 𝐵 𝑛
c) 𝑑(𝑥, 𝑦) = 0 ↔ 𝑥 = 𝑦
Consideremos que (𝐵𝑛 ,⊕) sea un grupo, luego utilizando la propiedad de 𝐵 𝑛 definimos lo
siguiente.
a) La identidad de 𝐵 𝑛 es también de 𝑁
b) si 𝑥 y 𝑦 pertenecen a 𝑁, entonces 𝑥 ⊕ 𝑦 ∈ 𝑁
𝑒: 𝑒1 (000) = 000000
𝑒2 (001) = 001100
𝑒3 (010) = 010011
𝑒4 (011) = 011111
𝑒5 (100) = 100101
𝑒6 (101) = 101001
𝑒7 (110) = 110110
𝑒8 (111) = 111010
Probar que la función de codificación es un grupo de código
Prueba
𝑁 = {000000,001100,010011,011111,100101,101001,110110,111010} es un subgrupo
de 𝐵 6.
b) si 𝑥, 𝑦 ∈ 𝑁 → 𝑥 ⊕ 𝑦 ∈ 𝑁
En efecto haciendo todas las operaciones de cerradura con el operador ⊕ obtenemos que
cumple que para todos los elementos 𝑥, 𝑦 ∈ 𝑁, 𝑥 ⊕ 𝑦 ∈ 𝑁
8.8. Teorema
Ejemplo
1 0 1 1 1 1 0 1
𝐷 = [0 1 1 0] 𝐸 = [1 1 0 1]
1 0 0 1 0 1 1 1
Hallar la matriz 𝐷 ⊕ 𝐸
0 1 1 0
𝐷 ⊕ 𝐸 = [1 0 1 1]
1 1 1 0
Definición.-Sean las matrices booleanas 𝐷 = [𝑑𝑖𝑗 ] de orden 𝑚𝑥𝑝, y 𝐸 = [𝑒𝑖𝑗 ] de orden 𝑝𝑥𝑛
se define el producto modulo 𝐷⨀𝐸 como la matriz booleana 𝐹 = [𝑓𝑖𝑗 ] de orden 𝑚𝑥𝑛 y
Ejemplo
1 0
1 1 0
𝐷=[ ] 𝐸 = [1 1 ]
0 1 1
0 1
Hallar la matriz 𝐷 ⊕ 𝐸
0 1
𝐷⨀𝐸 = [ ]
1 0
8.9. Teorema
Sean 𝐷 𝑦 𝐸 matrices booleanas de orden 𝑚𝑥𝑝 y 𝐹 una matriz booleana de orden 𝑝𝑥𝑛 entonces
(𝐷 ⊕ 𝐸) ∗ 𝐹 = (𝐷 ∗ 𝐹) ⊕ (𝐸 ∗ 𝐹), es decir una propiedad distributiva es válida para ⊕ 𝑦 ∗
Sean 𝑚 𝑦 𝑛 enteros no negativos con 𝑚 < 𝑛, 𝑟 = 𝑛 − 𝑚, y sea 𝐻 una matriz booleana de orden
𝑛𝑥𝑟. Entonces la función 𝑓𝐻 : 𝐵 𝑛 → 𝐵 𝑟 , definida por
𝑓𝐻 (𝑥) = 𝑥 ∗ 𝐻, 𝑥 ∈ 𝐵 𝑛
Prueba
𝑓𝐻 (𝑥 ⊕ 𝑦) = (𝑥 ⊕ 𝑦) ∗ 𝐻
𝑓𝐻 (𝑥 ⊕ 𝑦) = 𝑓𝐻 (𝑥) + 𝑓𝐻 (𝑦)
8.11.1. Definición.- Diremos que 𝐻 es una matriz de paridad si está definida por
𝑥 = 𝑒𝐻 (𝑏) = 𝑏1 𝑏2 … … . . 𝑏𝑚 𝑥1 𝑥2 … … … . 𝑥𝑟
Donde
8.11.3. Corolario
Es un subgrupo de 𝐵 𝑛 .
Ejemplo
1 1 0
0 1 1
𝐻= 1 0 0
0 1 0
[0 0 1]
Determine el grupo de código 𝑒𝐻 : 𝐵 2 → 𝐵 5
Solución
𝐵 2 = {00,01,10,11} . Entonces
𝑒(00) = 00𝑥1 𝑥2 𝑥3
Donde
𝑥1 = (00)(10) = 0
𝑥2 = (00)(11) = 0
𝑥3 = (00)(01) = 0
Donde
9.1. Alfabeto
A= {a, b, c} B = {0,1}.
9.1.2. Palabra
9.1.3. Definición.- Una palabra sobre el alfabeto 𝐴 es una sucesión finita de elementos de 𝐴.
Ejemplo
9.2. Cadena
9.2.1. Definición.- Una cadena o palabra es una serie arbitrariamente larga de símbolos unidos
por concatenación que representamos disponiendo los diferentes símbolos que la componen en
el orden deseado; por ejemplo: aaabbbccc, es una cadena. Como la definición de cadena es
recursiva, podemos referirnos, si es necesario, a una cadena completa o a una subcadena que
forme parte de una cadena mayor con las letras finales del alfabeto u, v, w, x, y y z. Por tanto,
aaaw o, simplemente, w también son cadenas. Denotamos la cadena vacía con el símbolo ε. La
cadena vacía es el elemento de identidad de la operación de concatenación, de tal modo que
9.3.1. Definición.- La clausura del alfabeto 𝐴 denotado por 𝐴∗ , el conjunto de todas las palabras
sobre un alfabeto 𝐴, también llamado clausura de kleene.
𝐴∗ =∪ 𝐴𝑖 , 𝑖 = 1,2,3 … … ..
Ejemplo
𝐵0 = {𝜀}
𝐵1 = {0,1}
𝐵2 = {00,01,10,11}
𝐵3 = {000,001,010,011,100,101,110,111}
.
.
Por ejemplo, 01101 tiene una longitud de 5. Es habitual decir que la longitud de una cadena es
igual al “número de símbolos” que contiene; esta proposición está aceptada coloquialmente, sin
embargo, no es estrictamente correcta. Así, en la cadena 01101 sólo hay dos símbolos, 0 y 1,
aunque tiene cinco posiciones para los mismos y su longitud es igual a 5. Sin embargo,
generalmente podremos utilizar la expresión “número de símbolos” cuando realmente a lo que
se está haciendo referencia es al “número de posiciones”. La notación estándar para indicar la
longitud de una cadena w es |w|. Por ejemplo,|011|= 3y| ε |= 0.
(𝐿1 )𝑅 = 𝑎𝑛 … … … . 𝑎1
9.5. Lenguaje
9.5.2. Definición.- (Teoría de lenguajes formales). La Teoría de los lenguajes formales estudia
los lenguajes prestando atención únicamente a sus propiedades estructurales, definiendo clases
de complejidad estructural y estableciendo relaciones entre las diferentes clases.
b) 𝐿1 . 𝜀 = 𝜀𝐿1 = 𝐿1
𝐿0 = {𝜀}
𝐿1 = 𝐿1
𝐿2 = 𝐿1 . 𝐿1
.
.
.
𝐵𝑘 = 𝐿1 . 𝐿1 . 𝐿1 . 𝐿1 … … … 𝐿1 (k-veces)
Ejemplo
Los lenguajes regulares sobre un alfabeto dado 𝐴 son todos los lenguajes que se pueden formar
a partir de los lenguajes básicos 0, {𝜀}, {a} 𝑎 ∈ 𝐴 , por medio de las operaciones de unión,
concatenación y estrella de Kleene (clausura de 𝐴)
b) 𝐿1 ∩ 𝐿2 = {𝑤 ∈ 𝐴∗ /𝑤 ∈ 𝐿1 𝑦 𝑤 ∈ 𝐿2 }
c) 𝐿1 − 𝐿2 = {𝑤 ∈ 𝐴∗ /𝑤 ∈ 𝐿1 𝑦 𝑤 ∉ 𝐿2 }
d) ̅̅̅
𝐿1 = {𝑤 ∈ 𝐴∗ / 𝑤 ∉ 𝐿1 } = 𝐴∗ − 𝐿1
Ejemplo
Calcular
a) 𝐿1 ∪ 𝐿2 c) 𝐿1 − 𝐿2 e) ̅̅̅
𝐿1
b) 𝐿1 ∩ 𝐿2 d) 𝐿1 . 𝐿2
Solución
Una máquina de estados finitos en un modelo abstracto para la manipulación de símbolos, nos
permiten saber si una cadena pertenece a un lenguaje o nos pueden generar otro conjunto de
símbolos como resultado.
S
I O
f g
S0 = {estado inicial}
𝑓: 𝐼𝑥𝑆 → 𝑆 , es la función de transición o función de estado siguiente y para un par del conjunto
𝐼𝑥𝑆 devuelve un estado perteneciente al conjunto 𝑆
𝑔: 𝐼𝑥𝑆 → 𝑂, es la función de salida y para un par del conjunto 𝐼𝑥𝑆 devuelve un símbolo de salida
del conjunto 𝑂
Ejemplo
𝑠1 𝑠1 𝑠1 1 0
𝑓(𝑠0 , 𝑎) = 𝑠0 𝑔(𝑠0 , 𝑎) = 0
𝑓(𝑠0 , 𝑏) = 𝑠1 𝑔(𝑠0 , 𝑏) = 1
𝑓(𝑠1 , 𝑎) = 𝑠1 𝑔(𝑠1 , 𝑎) = 1
𝑓(𝑠1, 𝑏) = 𝑠1 𝑔(𝑠1 , 𝑏) = 0
Es un método grafico para describir una máquina de estado finito. Es análogo a un dígrafo.
Ejemplo
𝑠1 𝑠2 𝑠1 1 1
𝑠2 𝑠2 𝑠0 0 1
𝑓(𝑠0 , 0) = 𝑠1 𝑔(𝑠0 , 0) = 0
𝑓(𝑠1 , 0) = 𝑠2 𝑔(𝑠1 , 0) = 1
𝑓(𝑠2 , 0) = 𝑠2 𝑔(𝑠2 , 0) = 0
𝑓(𝑠0 , 1) = 𝑠0 𝑔(𝑠0 , 1) = 0
𝑓(𝑠1 , 1) = 𝑠1 𝑔(𝑠1 , 1) = 1
𝑓(𝑠2 , 1) = 𝑠0 𝑔(𝑠2 , 1) = 1
Estado Salida
Supongamos que una máquina expendedora tiene dos tipos de productos A y B. El precio de cada
producto es de 10 céntimos. La máquina admite únicamente monedas de 5 y 10 céntimos y
devuelve el cambio necesario. Dispone de un botón rojo que expide el producto A y uno verde
que hace lo mismo con el producto B. Elena quiso comprar el producto A y para ello introdujo
consecutivamente dos monedas de 5 céntimos. Luego apretó el botón rojo y obtuvo el producto
deseado. Representemos el proceso con una tabla, donde 𝑡0 es el instante inicial cuando inserta
su primera moneda y 𝑡𝑖 con 𝑖 = 1,2,3, son los instantes posteriores:
𝑡0 𝑡1 𝑡2 𝑡3
Estado 𝑠0 𝑠1 𝑠2 𝑠0
Entrada 5 5 R
Salida nada nada A
La máquina está en un estado de espera en el estado 𝑠0 . Espera que un cliente comience a insertar
monedas hasta un total de 10 céntimos o más y oprima el botón para obtener el producto deseado.
Si en cualquier momento del proceso, el total de monedas insertadas supera los diez céntimos, la
máquina devuelve el cambio necesario antes de que el cliente oprima el botón correspondiente.
En el instante 𝑡0 , Elena inserta su primera moneda de 5 céntimos. No recibe nada pero en el
instante siguiente (𝑡1 ) la máquina está en el estado 𝑠1 (tiene almacenados cinco céntimos). En
este instante 𝑡1 , la máquina no devuelve nada pero, al depositar una nueva moneda de 5 céntimos,
en el instante 𝑡2 , la máquina se encuentra en un nuevo estado 𝑠2 (tiene almacenados diez
céntimos). Elena todavía no recibe nada puesto que la máquina no sabe qué tipo de producto
quiere. Al oprimir el botón rojo en el instante 𝑡2 , la máquina expide el producto A y en el instante
siguiente 𝑡3 se coloca de nuevo en el estado inicial 𝑠0 (ningún céntimo almacenado). Las
principales características de esta máquina son:
En un instante dado, la máquina sólo puede estar en un estado de un conjunto finito de estados
internos posibles.
La máquina sólo acepta un número finito de entradas (en el ejemplo, monedas de cinco y diez
céntimos, botones rojo y verde).