El Álgebra de Boole dentro de los módulos SIMM y

Anuncio
El Álgebra de Boole dentro de los módulos SIMM y SIMR de los ciclos de
grado superior ASI y DAI
Isabel López López
I.E.S Villablanca. Villablanca,79 (28032 Madrid)
E-mail: isabel.lopezlopez@educa.madrid.org
Resumen. Se propone la impartición del Álgebra de Boole como nexo entre los sistemas de numeración
y los fundamentos de sistemas informáticos dentro de los módulos Sistemas Informáticos Monousuario
y Multiusuario (SIMM) y Sistemas Informáticos Multiusuario y en Red (SIMR) pertenecientes a los
ciclos de grado superior Administración de Sistemas Informáticos (ASI) y Desarrollo de Aplicaciones
Informáticas (DAI). Con ello se pretende justificar la necesidad del estudio de los diferentes sistemas de
numeración, especialmente el binario, y hacer comprender al alumno cómo es posible procesar la
información expresada en código binario empleando circuitos de conmutación, de manera que el
ordenador pueda ejecutar instrucciones lógicamente y realizar cálculos aritméticos sencillos.
Palabras clave. Álgebra de Boole, Puertas lógicas, ASI (Administración de Sistemas Informáticos),
DAI (Desarrollo de Aplicaciones Informáticas), SIMM (Sistemas Informáticos Monousuario y en Red),
SIMR (Sistemas Informáticos Multiusuario y en Red), Programación Didáctica, Unidad de Trabajo.
1 Introducción
La universalización de la informática demanda en la actualidad una nueva clase de técnicos no titulados
sin los cuales no es posible desarrollar de manera eficaz y eficiente los procesos productivos, ya sea de
pequeñas y medianas empresas (PYMES), o de grandes empresas.
Como respuesta a esta demanda real del mercado de trabajo, surgen los ciclos de grado superior
en informática, dedicados a proporcionar la formación que requieren estos nuevos perfiles profesionales.
De esta manera, la formación profesional cumple la misión encargada por la sociedad de proporcionar
profesionales que garanticen la productividad y la competencia; permitiendo, asimismo, que aquellos
alumnos con clara vocación profesional informática puedan competir con éxito para conseguir su
inserción laboral.
Los ciclos formativos de grado superior Administración de Sistemas Informáticos, ASI, (R.D.
1660/1994; R. D. 1675/1994) y Desarrollo de Aplicaciones Informáticas, DAI, (R. D. 1661/1994; R. D.
1676/1994) tienen una vocación eminentemente práctica, siendo su objetivo formar profesionales técnicos
en informática, que sean capaces de configurar, montar, mantener y administrar sistemas informáticos
(ASI); y capaces, también, de afrontar tareas de programación como desarrolladores (DAI).
La formación práctica debe ser un objetivo prioritario, si se piensa en las tareas a las que se
enfrentará el alumno una vez finalizados sus estudios. Sin embargo, el carácter de la informática obliga a
que algunos aspectos del currículum del técnico deban ser, forzosamente, de carácter conceptual. Si ello
1
se descuidara, en aras de una actuación puramente procedimental, la operatividad de los técnicos así
formados no iría más allá de la última versión de software instalada en las aulas de informática del centro.
El presente trabajo se dirige a replantear la impartición de uno de los aspectos arriba señalados,
dentro de los módulos de Sistemas Informáticos Monousuario y Multiusuario SIMM, y Sistemas
Informáticos Multiusuario y en Red, SIMR, de los ciclos formativos de grado superior ASI y DAI.
Concretamente, el objetivo es estructurar los contenidos introduciendo unas pequeñas nociones de
Álgebra de Boole que permitan explicar el funcionamiento básico de las puertas lógicas, ya que éstas son
los “ladrillos” con los que se construyen los sistemas de conmutación de la Unidad Central de Proceso
(CPU) del ordenador.
De este modo, la conexión entre los contenidos de los módulos SIMM (Muñoz, 2006; Raya y
otros, 2007) y SIMR (Muñoz, 2006; Raya y otros, 2007) dedicados a “fundamentos de sistemas
informáticos” y los relativos a “sistemas de numeración”, queda perfectamente justificada; sobre todo, en
lo que respeta al sistema binario. Pero más importante es que el alumno llegue a comprender por qué la
codificación binaria de la información permite al ordenador realizar tanto juicios lógicos como cálculos
numéricos.
También se propone complementar los nuevos contenidos teóricos con el diseño de actividades
prácticas (Ballesta, 1996; Recio y otros, 2005) a realizar en el laboratorio docente o en el aula de
informática, con el objetivo de que el alumno simule virtualmente y construya dispositivos de
conmutación.
2 Álgebra de Boole y puertas lógicas: ¿Por qué son digitales los ordenadores?
Históricamente, desde Aristóteles (384-322 a.C.) hasta Leibniz (1646-1717), siempre se creyó que sería
posible operar con los razonamientos lógicos siguiendo un formalismo puramente matemático. Hubo que
esperar a que el matemático inglés George Boole (1815-1864) publicara en 1854 su obra “Investigación
sobre las leyes del pensamiento” (Boole, 1982), para poder establecer lo que, en sus propias palabras, era
“un razonamiento universal expresado en formas simbólicas y regido por leyes, las cuales tienen su
último acomodo en la mente humana” (discurso pronunciado en el Queen’s Collage en 1851). Es
evidente, desde la perspectiva actual, que dicha sistematización del razonamiento humano ha permitido
que los ordenadores puedan “razonar lógicamente”.
Como ejemplo de los avances anteriores al trabajo de Boole se puede mostrar cómo Leibniz
expresaba matemáticamente el silogismo:
“Si todo x es y, y todo y es z, entonces todo x es z”.
Si la expresión “todo x es y” se formaliza como el cociente “ x / y ”, el silogismo se obtiene como resultado
del álgebra de los números racionales. En efecto:
x y x
⋅ =
y z z
(1)
Sin embargo, Leibniz no consiguió avanzar más allá de estas tentativas iniciales. La idea de Boole fue
2
introducir el “producto” y la “suma” de proposiciones con unas leyes algebraicas diferentes a las de los
números racionales, de manera que los razonamientos pudiesen formalizarse como operaciones
matemáticas. De este modo, esa nueva álgebra de proposiciones, actualmente denominada Álgebra de
Boole, permitiría construir razonamientos “calculando” de manera análoga al álgebra de los números
racionales. Al proceder de este modo, Boole introduce de manera implícita el concepto moderno de
estructura algebraica.
El silogismo arriba considerado fue resuelto por Boole proponiendo que “todo x es y” se expresase
como el producto booleano “ x = xy ”, y que dicho producto fuese asociativo. De este modo, en lugar de la
ecuación (1) se tiene:
x = xy = x ( yz ) = ( xy ) z = xz
(2)
es decir, “ x = xz ”; o lo que es lo mismo, “todo x es z”.
Además, el Álgebra de Boole se aplica a proposiciones lógicas, y éstas son verdaderas o falsas de
manera excluyente. Por tanto, aplicando las leyes booleanas, se podrán construir nuevos enunciados
lógicos que serán verdaderos o falsos en función de la verdad o falsedad de las proposiciones que los
integren.
Fijándose en este hecho, el matemático estadounidense Claude Shannon (1916-2001) estableció,
en 1939, el paralelismo entre las reglas de conmutación de los circuitos compuestos de relés
electromecánicos, y las operaciones formales con elementos lógicos. Un relé opera como un conmutador
(interruptor) que puede estar “cerrado” o “abierto”. La idea era considerar un relé cerrado como un
elemento lógico verdadero, y uno abierto como falso (siendo arbitrario el convenio: cerrado-verdadero y
abierto-falso). De este modo se pudo establecer la analogía entre los estados de conmutación de los
sistemas de relés y las tablas de verdad que definen las operaciones booleanas.
Para ilustrar dicha analogía considérese, por ejemplo, la sentencia “y” enunciada como:
“El coche es blanco y tiene motor diésel”
Esta sentencia está formada por la conjunción de la proposición “x1”:
“El coche es blanco”
y la proposición “x2”:
“El coche tiene motor diésel”
En la actualidad las operaciones booleanas producto y suma se denotan como “⋅” y “+”, respectivamente.
El producto expresa la conjunción lógica; y la suma, la disyunción. Por tanto, la sentencia “y” es el
resultado de la operación booleana
y = x1 ⋅ x2
Asimismo, la operación lógica y = x1 ⋅ x2 es equivalente al sistema de conmutación que se
muestra en la Fig. 1, donde un “1” representa la aplicación de cierta tensión eléctrica aplicada en
cualquiera de las entradas x1 o x2, y un “0” la ausencia de tensión. Por tanto, un “1” o un “0” como valores
de “y” indican, respectivamente, tensión o ausencia de tensión en la salida del dispositivo.
3
Fig. 1 Circuito de conmutación para la operación booleana y = x1 ⋅ x2 .
En efecto, si se examina la validez lógica del enunciado “y”, se observa que sólo será verdadero si el
coche es blanco (“x1” verdadero) y su motor es diésel (“x2” verdadero). Por tanto, si “1” equivale a
verdadero y “0” a falso, sólo se tendrá y = 1 cuando simultáneamente x1 = 1 y x2 = 1 ; y se tendrá y = 0
cuando x1 = 0 y x2 = 0 , x1 = 1 y x2 = 0 , y viceversa.
Un dispositivo de conmutación como el de la Fig. 1 recibe el nombre de puerta lógica. Se
denomina tabla de verdad de la puerta lógica a la tabla de estados de conmutación que define
completamente el funcionamiento de la puerta lógica (véase la Fig.1).
En la actualidad, las puertas lógicas no se construyen con relés electromecánicos, sino con
transistores de estado sólido, generalmente integrados en microchips; y. los estados “1” y “0” se
corresponden con ciertos valores fijos de tensión eléctrica en las entradas y salidas. Por ejemplo: 5 voltios
indican un “1” y voltaje nulo indica un “0”.
Desde un punto de vista puramente matemático, el producto booleano “⋅” es una operación
definida en el conjunto B = {0,1} (conjunto de Boole) de acuerdo a la tabla operacional que se muestra
en la Fig. 1. Como allí puede observarse, la regla booleana para la multiplicación es la misma que la de
los números naturales.
El Álgebra de Boole además incluye la operación “+” o “suma booleana”, equivalente a una
disyunción lógica. En efecto, siguiendo con el ejemplo del coche, la frase “El coche es blanco o tiene
motor diésel”, sería una proposición “z” cuya expresión booleana sería z = x1 + x2 . Ahora z será cierta
cuando se dé una de las siguientes condiciones: x1 es cierta y x2 es falsa, x1 es falsa y x2 es cierta, o
ambas son ciertas.
La puerta lógica asociada a la suma booleana se muestra en la Fig. 2, donde se puede observar la
correspondiente tabla de verdad. En dicha tabla se puede apreciar que la suma booleana es una operación
definida en el conjunto de Boole que no sigue la regla de la suma de números naturales, ya que “1+1=1”.
4
Fig.2 Circuito de conmutación para la operación booleana y = x1 + x2 .
Para recoger el hecho lógico de que toda proposición puede ser negada, se introduce la operación
booleana denominada complementación. Formalmente, si x es cierta proposición, por ejemplo “hoy es
lunes”, su negación “hoy no es lunes” se denota por x . La puerta lógica correspondiente se muestra en la
Fig. 3.
Fig. 3 Circuito de conmutación para la complementación lógica.
En las figuras 1, 2 y 3 se han representado gráficamente las puertas lógicas siguiendo el convenio
internacionalmente más extendido (ANSI 432.14, IEEE Std. 91), debiendo tenerse en cuenta la
posibilidad de que otros autores utilicen símbolos diferentes.
En el contexto técnico, las puertas lógicas de las figuras 1, 2 y 3 reciben los nombres de puerta
AND, puerta OR y puerta NOT, respectivamente. También es habitual decir que dichas puertas
implementan funciones lógicas: función AND (producto booleano), función OR (suma booleana) y
función NOT (complementación).
Aunque no poseen el mismo carácter fundamental que las anteriores, también suelen introducirse
las puertas NAND, NOR y OR-Exclusiva (Fig. 4). La función NAND implementa la negación del
producto lógico y la NOR, la negación de la suma. La puerta OR-Exclusiva aplica la disyunción estricta:
“O el coche es blanco, o tiene motor diésel”, que será verdadera si se cumple solamente uno de los
términos de la disyunción.
Fig. 4 Puertas lógicas NAND, NOR y OR-Exclusiva.
Los sistemas de conmutación pueden reproducir esquemas de la lógica deductiva, lo que permite
implementar en los ordenadores operaciones de razonamiento que son básicas para el control de su
funcionamiento. Dichos sistemas de conmutación constituyen el corazón de la Unidad Lógica incluida en
la CPU.
5
Asimismo, la posibilidad de expresar los números en forma binaria y la flexibilidad del álgebra
booleana permiten implementar, por medio de puertas lógicas, las operaciones matemáticas en la Unidad
Aritmética de la CPU ordenador. Por ejemplo: para sumar dos números, se pueden combinar varios
circuitos de conmutación cuyas entradas sean “1” o “0” según los dígitos binarios de los sumandos, y
cuyas salidas entreguen una sucesión binaria que codifique el resultado de la operación.
El Álgebra de Boole, por tanto, proporciona las reglas que deben guiar la construcción de las
redes de conmutación del ordenador para que éste pueda operar con lógica y realizar cálculos aritméticos.
Podría decirse que las leyes booleanas constituyen el “software básico”, en tanto que estructura lógicomatemática; mientras que los transistores de conmutación serían el “hardware básico”, al ser los
componentes físicos elementales.
3 Funciones lógicas y circuitos de conmutación
Desde el punto de vista informático, los axiomas y teoremas del Álgebra de Boole permiten codificar
funciones lógicas de gran complejidad para implementar procedimientos de razonamiento o cálculos
aritméticos por medio de la conmutación de los millones de transistores que integran la CPU. Buscando la
analogía con los lenguajes de alto nivel, las funciones lógicas serían producto del “lenguaje de
programación” definido por los axiomas y teoremas booleanos.
Como toda teoría matemática bien establecida, el Álgebra de Boole se define por una serie de
axiomas relativos a las operaciones internas “+” y “⋅” definidas en el conjunto B = {0,1} . Dichos
axiomas se recogen en la Tabla 1
Tabla 1 Axiomas del Álgebra de Boole
Axioma 1
∀a , b ∈ B , a + b = b + a y a ⋅ b = b ⋅ a
(Conmutatividad: las disyunciones o conjunciones no dependen del orden en que se expresen.)
Axioma 2
El “0” es el elemento identidad de la suma: ∀a ∈ B, a + 0 = 0 + a = a
(Si un término es falso, el otro determina la verdad o falsedad de una disyunción.)
El “1” es el elemento identidad del producto: ∀a ∈ B, a ⋅1 = 1 ⋅ a = a
(Si un término es verdadero, el otro determina la verdad o falsedad de una conjunción.)
Axioma 3
∀a, b ∈ B, a + ( b ⋅ c ) = ( a + b ) ⋅ ( a + c ) y a ⋅ ( b + c ) = ( a ⋅ b ) + ( a ⋅ c )
(Propiedad distributiva de la disyunción respecto de la conjunción y viceversa.)
Axioma 4
∀a ∈ B, existe un elemento a , denominado complemento de a , tal que: a + a = 1 y a ⋅ a = 0
( a + a = 1 indica que toda proposición o es cierta o es falsa, y a ⋅ a = 0
que toda proposición no puede ser cierta y falsa simultáneamente)
Partiendo de los axiomas del cuadro anterior y siguiendo el correspondiente proceso deductivo, se
6
obtienen los teoremas fundamentales del Álgebra de Boole que se muestran en la Tabla 2.
Tabla 2 Teoremas fundamentales del Álgebra de Boole
Teorema 1. Idempotencia
∀a ∈ B, a = a + a y a = a ⋅ a
Teorema 2.Identidad
∀a ∈ B, a + 1 = a y a ⋅ 0 = 0
Teorema 3. Absorción
∀a, b ∈ B, a + a ⋅ b = a y a ⋅ (a + b) = a
Teorema 4. Asociatividad
∀a, b, c ∈ B, a + ( b + c ) = ( a + b ) + c y a ⋅ ( b ⋅ c ) = ( a ⋅ b ) ⋅ c
Teorema 5. Unicidad del complementario
∀a ∈ B, a es único.
Teorema 6. Leyes de Morgan
∀x1 , x2 ,..., xn ∈ B, x1 + x2 + ... + xn = x1 ⋅ x2 ⋅ ... ⋅ xn
y x1 ⋅ x2 ⋅ ... ⋅ xn = x1 + x2 + ... + xn
Con estos elementos deductivos se pueden manejar formalmente expresiones algebraicas del tipo:
y = f ( x1 , x2 ,..., xn )
(3)
donde y es el elemento de B resultado de aplicar la función lógica f (⋅) sobre los n elementos
x1 , x2 ,..., xn . Por ejemplo, sea la función lógica
f ( x1 , x2 , x3 ) = x1 ⋅ x3 + x2 ⋅ x3
(4)
Si se aplica el axioma 3 (distributividad), puede manipularse formalmente la expresión (4), consistente en
una suma cuyos sumandos son sendos productos, y obtenerse la siguiente función lógica equivalente:
f ( x1 , x2 , x3 ) = ( x1 + x2 ) ⋅ x3
(5)
formada por el producto lógico de dos términos, siendo uno de ellos una suma. En cualquier caso, una
función lógica f (⋅) es una función matemática definida sobre el conjunto B = {0,1} . Por tanto, a medida
que las variables independientes booleanas x1 , x2 ,..., xn vayan tomando valores 0 ó 1, se irán obteniendo
los diferentes valores, 0 ó 1, de la variable dependiente y . Como ejemplo, en la Tabla 3 se muestra la
tabla de verdad de la función lógica (4). Dicha tabla es también la de la función lógica (5), por ser (4) y
(5) expresiones equivalentes.
7
Tabla 3 Tabla de verdad de f ( x1 , x2 , x3 ) = x1 ⋅ x3 + x2 ⋅ x3
En la práctica, para diseñar un circuito de conmutación que permita a un ordenador realizar una
operación lógica o un cálculo aritmético binario, debe comenzarse por establecer la función lógica
correspondiente. Para escribir dicha función puede bastar una formalización algebraica, o puede partirse
de una tabla de verdad de la que se acaba obteniendo la expresión correspondiente.
Una vez se dispone de la expresión algebraica de la función lógica, se puede dibujar el esquema
del circuito de conmutación traduciendo las operaciones booleanas elementales de suma, producto y
complementación en términos de asociación de puertas lógicas OR, AND y NOT. Por ejemplo, la función
lógica (4) se traduce en el circuito (a) que se muestra en la Fig. 5.
Fig. 5 (a) y (b) implementan las funciones (4) y (5) respectivamente.
Como ya se ha visto, la aplicación de la propiedad distributiva permite transformar la función
lógica (4) en su equivalente (5). Esta operación formal conduce al circuito lógico (b) que se muestra en la
Fig. 5. Es interesante observar que ambos circuitos, (a) y (b), son constructivamente distintos, pero
lógicamente equivalentes. Lo que indica un paso más en la aplicación del Álgebra de Boole: la
optimización del diseño de los circuitos de conmutación. Véase cómo el circuito (b) de la Fig. 6 se
construye con tres puertas lógicas (una puerta NOT, una AND y una OR), mientras el (a) necesita cuatro
(una puerta NOT, dos AND y una OR).
4 El Álgebra de Boole en los módulos SIMM y SIMR de los ciclos ASI y DAI
Dentro de los ciclos de grado superior de ASI y de DAI, se incluyen, respectivamente, los módulos:
SIMM, y SIMR. Ambos módulos tienen como objetivo dar una base de conocimiento y aplicaciones en lo
referente a los sistemas operativos y las redes informáticas. En el caso del ciclo ASI, se tratan los
diferentes tipos de sistemas operativos mono y multiusuario; y en el ciclo DAI, sólo los sistemas
8
operativos multiusuario, incluyendo también los sistemas operativos en red.
En dichos módulos se enseña a los alumnos los diferentes sistemas de codificación de la
información, con especial atención a la expresión de cantidades numéricas en diferentes sistemas de
numeración, haciendo hincapié en el sistema binario. Sin embargo, en ningún momento se justifica el
porqué de tal interés, más allá de invocar vagamente que el funcionamiento interno de los ordenadores se
reduce básicamente a “unos y ceros”. De hecho, un alumno inquisitivo podría cuestionar la necesidad de
abordar el estudio de una materia tan aparentemente desconectada del resto del temario; ya que, tras el
código binario, se suele comenzar con los aspectos de aplicación concreta tanto de hardware como de
software.
Alguien podría defender que la codificación en diferentes sistemas de numeración es necesaria
para definir variables numéricas en ciertos lenguajes de programación de alto nivel, pero ello no
justificaría el énfasis dado a la codificación binaria como “lenguaje último” del ordenador.
La tesis en torno a la que gira el presente trabajo es que la introducción de un tema de Álgebra de
Boole implementada con puertas lógicas, después de haberse estudiado la codificación binaria, hace ver al
alumno de manera patente cómo se procesan de manera automática los “unos y ceros” para que el
ordenador pueda ejecutar sentencias lógicas elementales o realizar operaciones aritméticas sencillas. Es
decir, no sólo el Álgebra de Boole permite entender la base de la lógica interna con la que el ordenador
puede llegar a construir complicadas instrucciones de control, sino que también permite entender cómo un
procedimiento basado en una lógica de dos estados (“V”, verdadero; “F”, falso) conduce a un algoritmo
de cálculo aritmético, si los números se codifican en binario y los dígitos “1” y “0” se hacen corresponder
con los estados “V” y “F”, respectivamente.
Por un lado, el Álgebra de Boole permite aplicar criterios lógicos de verdad o falsedad
traduciendo dichos estados a valores numéricos y las inferencias lógicas a operaciones matemáticas
abstractas. Por otro lado, el Álgebra de Boole también permite efectuar operaciones aritméticas, si
previamente se traducen los números naturales a código binario. En síntesis: los ordenadores “razonan” y
calculan gracias a flujos de bits (“unos y ceros”) que discurren por la CPU gobernados por el Álgebra de
Boole.
Además de las razones anteriores, el conocimiento del Álgebra de Boole aporta una visión
unificada y coherente de los “operadores booleanos”, operadores que el alumno deberá conocer y aplicar
en otros contextos que van desde los lenguajes de programación a las opciones de búsqueda avanzada en
Internet, pasando por las consultas a bases de datos.
Para conseguir los objetivos cognitivos arriba expuestos, se propone incluir en la una Unidad de
Trabajo denominada “Álgebra de conmutación”, dentro de la Programación Didáctica de los módulos
SIMM y SIMR de los ciclos de grado superior ASI y DAI. Dicha unidad se estructura en: Conceptos,
Procedimientos, Actividades de enseñanza y aprendizaje, Actividades complementarias, y Criterios de
evaluación.
Conceptos
9
1. Introducción
Presentación del contexto de aplicación del Álgebra de conmutación dentro de los módulos
SIMM y SIMR, y breve exposición histórica para ubicar el Álgebra de conmutación en
relación con otros hitos cruciales del avance de la Informática.
2. Puertas lógicas: AND, OR, NOT, NAND, NOR y OR-Exclusiva
Descripción de los sistemas de conmutación como combinaciones de elementos discretos
denominados puertas lógicas. Descripción de los componentes físicos discretos de los
sistemas de conmutación. Exposición de la evolución de la tecnología: del acoplamiento de
relés electromecánicos a la integración a gran escala de transistores de estado sólido en los
microprocesadores.
3. Álgebra de Boole: axiomas y teoremas
Exposición de las reglas del Álgebra de Boole como herramienta práctica para especificar el
funcionamiento de los sistemas de conmutación.
4. Funciones lógicas: Tablas de verdad y términos canónicos
Aplicación de las funciones lógicas para especificar las relaciones entre las entradas y la
salida de cualquier circuito lógico. Obtención de la función lógica de un circuito complejo a
partir de su tabla de verdad.
5. Simplificación de expresiones booleanas
Aplicación sistemática de los teoremas del Álgebra de Boole y del método de Karnaugh para
simplificar funciones lógicas. Consecuencias prácticas: la importancia de dicha
simplificación para optimizar la realización y el funcionamiento de circuitos lógicos
complejos.
6. Circuitos multifunciones: operaciones aritméticas
Descripción de los circuitos lógicos de salida múltiple: esquemas de conmutación con más
de una variable de salida. Aplicación de los circuitos lógicos multifunción para implementar
operaciones aritméticas sencillas.
7. Bibliografía
E. Muñoz. Circuitos electrónicos. Digitales II. Departamento de Publicaciones de la ETSIT,
Universidad Politécnica de Madrid. (1978)
J. Millman. Microelectrónica. Circuitos y sistemas analógicos y digitales. Editorial Hispano
Europea, S.A. (1984)
Procedimientos
•
Representar circuitos lógicos por medio de funciones booleanas.
•
Identificar los términos canónicos de una función lógica a partir de tablas de verdad.
•
Simplificar funciones lógicas aplicando los teoremas del Álgebra de Boole.
•
Simplificar funciones lógicas empleando diagramas de Karnaugh.
•
Representar circuitos lógicos de salida múltiple por medio de multifunciones.
10
Actividades de enseñanza y aprendizaje
•
Interpretación, codificación y transformación de las diferentes funciones booleanas.
•
Codificación y transformación de tablas de verdad mediante sus términos canónicos.
•
Representación de funciones y multifunciones empleando diagramas de Karnaugh.
Actividades complementarias
Las prácticas complementarias consisten en trabajos prácticos que se deben realizar en el laboratorio
docente o en el aula de informática. Dos son los objetivos: emplear software de simulación y construir
pequeños dispositivos de conmutación.
Actividad 1. Simulación de circuitos lógicos
El software libre actualmente disponible (Manual de Electronic Work Bench; Simulador
Logicly) para diseñar circuitos booleanos permite la simulación virtual del funcionamiento
de sistemas de conmutación basados en puertas lógicas, y constituye una herramienta
docente que permite al alumno observar el funcionamiento de los circuitos desde un punto
de vista empírico, complementándose el estudio teórico previamente desarrollado.
Actividad 2. Construcción de circuitos lógicos sencillos
La construcción y posterior verificación del funcionamiento de circuitos lógicos sencillos
montados por el alumno empleando componentes comerciales le permite acceder a la
materialización de los sistemas abstractos que previamente ha estudiado.
Evaluación
La evaluación debe centrarse en la resolución de casos prácticos en los que se interpreten, codifiquen y
transformen diferentes funciones lógicas, haciendo hincapié en dos tipos principales de problemas:
•
Diseño de circuitos de conmutación obteniendo las correspondientes funciones lógicas a partir de sus
tablas de verdad.
•
Simplificación de funciones lógicas aplicando los teoremas del Álgebra de Boole.
•
Representación y simplificación de funciones lógicas empleando diagramas de Karnaugh.
5 Ejemplo de ejercicios prácticos: Sistema de alarma y Sumador binario
Se proponen dos casos prácticos sencillos que ilustran la aplicación del Álgebra de Boole a los circuitos
de conmutación. El primer caso, “Sistema de alarma”, muestra cómo un circuito de conmutación puede
responder “con lógica” a estímulos externos. El segundo, “Sumador binario”, ilustra cómo los circuitos
lógicos pueden realizar operaciones aritméticas con números binarios.
Sistema de alarma. Se supone que una habitación tiene una puerta y una ventana, y se desea establecer un sistema
de alarma para vigilar posibles intrusiones. Para ello se montan sensores de apertura en la puerta y la ventana, así
como un sensor de presencia. Se sabe que cada sensor puede dispararse en falso con cierta probabilidad. Cómo
debería diseñarse un circuito lógico para que indique la presencia de un intruso y a la vez disminuya la
probabilidad de falsas alarmas.
11
Para plantear el circuito de conmutación debe considerarse una función lógica de tres variables:
A = f ( p , v, s )
(6)
donde p y v corresponden, respectivamente, a los sensores de apertura de la puerta y la ventana, y s al
sensor de presencia. Dichas variables toman el valor 1 cuando se disparan los sensores, y el valor 0 en
caso contrario. La alarma por intrusión se dará cuando la función A tome el valor 1.
La solución trivial sería que A = 1 cuando alguna de las variables p, v ó s tomase el valor 1, y que
A = 0 sólo cuando las tres variables de entrada tomasen el valor 0 simultáneamente. Sin embargo, la
incidencia de las falsas alarmas sería máxima, puesto que el disparo accidental de cualquiera de los
sensores daría lugar a una alarma.
La solución correcta es suponer que se dé por cierta una intrusión sólo cuando el sensor de presencia
indique algo y a la vez se haya abierto la puerta o la ventana. Es decir, si alguien ha entrado, ha debido
hacerlo por la puerta o la ventana, y será detectada su presencia. Entonces, A = 1 cuando se dispare el
sensor de la puerta o el de la ventana y a la vez lo haga el sensor de presencia, y A = 0 si sólo se dispara
un sensor, o no se dispara ninguno, o no se dispara el sensor de presencia. De este modo, un solo disparo
accidental no daría lugar a una alarma, tendría que dispararse accidentalmente el sensor de la puerta o la
ventana y conjuntamente el sensor de presencia, lo que es un suceso mucho menos probable.
Del párrafo anterior se sigue que la condición para indicar una alarma se expresa en términos lógicos
con disyunciones y conjunciones, por tanto, se podrá formalizar fácilmente empleando el Álgebra de
Boole. En efecto:
A = f ( p , v, s ) = p ⋅ v ⋅ s + p ⋅ v ⋅ s + p ⋅ v ⋅ s
(7)
ya que, si p = v = s = 1 , entonces A = 1 ; si p = 0 y v = s = 1 , entonces A = 1 ; y si v = 0 y p = s = 1 ,
entonces A = 1 .
En la explicación para el alumno, para hacer más explícita la obtención de la función lógica
f ( p, v, s ) debe recurrirse a su tabla de verdad, donde se presentan de manera exhaustiva las diferentes
posibilidades de disparo de los sensores.
Antes de diseñar el circuito de conmutación empleando puertas lógicas, debe simplificarse la
expresión (7) aplicando las leyes del Álgebra de Boole. Aplicando el axioma 3 (propiedad distributiva):
A = f ( p , v, s ) = p ⋅ v ⋅ s + p ⋅ v ⋅ s + p ⋅ v ⋅ s = v ⋅ s ⋅ ( p + p ) + p ⋅ v ⋅ s
(8)
Por el axioma 4 se sabe que p + p = 1 , luego v ⋅ s ⋅ ( p + p ) = v ⋅ s ⋅1 . Teniendo en cuenta el axioma 2,
v ⋅ s ⋅1 = v ⋅ s . Así se obtiene:
A = f ( p, v, s ) = v ⋅ s + p ⋅ v ⋅ s
(9)
Aplicando de nuevo el axioma 3 (propiedad distributiva), la función lógica se simplifica finalmente:
A = f ( p , v , s ) = s ⋅ (v + p ⋅ v )
(10)
Una vez se ha obtenido la función booleana simplificada (10), su implementación con puertas lógicas
conduce al circuito de conmutación que se muestra en la Fig. 6.
12
Fig. 6 Circuito de conmutación del sistema de alarma.
La resolución anterior se fundamenta en la aplicación directa de las reglas del Álgebra de Boole para
formular y simplificar la función lógica del circuito deseado. Sin embargo, puede abordarse también la
resolución definiendo la función lógica con su tabla de verdad y obteniendo el esquema de
implementación por medio de un diagrama de Karnaugh. En la impartición debe hacerse hincapié en que
este segundo método no añade ninguna idea fundamental nueva, más allá de permitir la implementación
sistemática a partir de tablas de verdad.
Sumador binario. Diseñar un circuito de conmutación que sea capaz de sumar dos números binarios de una cifra.
En este caso debe considerarse un circuito multifunción, ya que la suma de dos números binarios de una
cifra puede dar un número de una o dos cifras. (De la misma manera que al sumar, en base 10, dos
números naturales de una cifra puede obtenerse un número de una o dos cifras.) En esos casos surge el
concepto de “acarreo”, es decir: “nueve más ocho son siete y me llevo una”. Por eso el sumador binario
que se va a construir suele denominarse en la literatura técnica “sumador con acarreo”.
Si los sumandos son números binarios de una cifra, se pueden expresar en términos de sendas
variables booleanas A y B. Como la suma puede tener una o dos cifras, se expresará empleando dos
variables booleanas C0 y C1 . Es decir:
A ⋅ 20 + B ⋅ 20 = C1 ⋅ 21 + C0 ⋅ 20
(11)
Por tanto deben diseñarse dos circuitos, uno para la función lógica C0 = f ( A, B ) y otro para
C1 = f ( A, B ) . De estas dos funciones, la más sencilla de escribir en términos lógicos es la del dígito de
acarreo C1 . En efecto: C1 debe ser 1 sólo si A = B = 1 , y debe ser 0 en caso contrario; lo que coincide
con la definición del producto booleano A ⋅ B . Por tanto: C1 = A ⋅ B . Para obtener C0 debe tenerse en
cuenta que sólo puede valer 1 cuando uno de los sumandos sea 1 y el otro cero, ya que cuando ambos
sumandos son 1 o son cero, el valor de C0 debe ser 0. Así que: C0 = A ⋅ B + A ⋅ B .
Dada la sencillez de las expresiones booleanas de C0 y C1 , se pueden implementar directamente con
puertas lógicas sin necesidad de simplificación. El resultado se muestra en la Fig. 7.
13
Fig. 7 Circuito de conmutación del sumador binario.
Al igual que en el ejemplo anterior, en la explicación para el alumno pueden obtenerse las funciones
lógicas a partir de una tabla de verdad de doble salida aplicando el método de Karnaugh.
Este ejercicio muestra de manera explícita cómo el Álgebra de Boole, que sólo puede actuar sobre
“unos y ceros” de acuerdo a las reglas de la lógica, es capaz de sumar dos números naturales gracias a que
éstos se han expresado en código binario.
6 Conclusiones
Se propone introducir el Álgebra de Boole dentro de los módulos Sistemas Informáticos Monousuario y
Multiusuario (SIMM) y Sistemas Informáticos Multiusuario y en Red (SIMR) pertenecientes a los ciclos
de grado superior Administración de Sistemas Informáticos (ASI) y Desarrollo de Aplicaciones
Informáticas (DAI).
Para ello se debe incluir una Unidad de Trabajo denominada “Álgebra de conmutación” donde se
explique cómo es posible diseñar sistemas de conmutación para procesar automáticamente la información
operando con criterios lógicos similares a los del pensamiento humano, y cómo esos mismos esquemas de
procesamiento son capaces de realizar operaciones aritméticas elementales con números binarios. Siendo
esto último de importancia capital a la hora de mostrar al alumno el nexo entre las unidades de trabajo
“Sistemas de numeración” y “Fundamentos de los sistemas informáticos”.
Además se han expuesto los aspectos principales del Álgebra de Boole como una introducción
sugerente para aquéllos docentes que puedan interesarse en su impartición. De este modo, dicha
exposición constituye una primera guía para la elaboración de los contenidos teóricos sobre los que el
docente pueda fundamentar su actuación en el aula.
Finalmente, como guía para la praxis, se sugieren dos supuestos prácticos para exponer las dos
principales líneas de aplicación del Álgebra de Boole a los circuitos de conmutación, a saber: el diseño de
un sistema de alarma doméstico, como muestra de un circuito que toma decisiones lógicas en función de
estímulos externos; y la implementación de un sumador de números binarios, como ejemplo de circuito
lógico capaz de realizar cálculos aritméticos sencillos.
14
Agradecimientos
La autora desea agradecer la disponibilidad y espíritu de colaboración de los equipos docentes de los
centros I.E.S. Europa de Rivas-Vaciamadrid (Madrid) e I.E.S. Francisco de Quevedo de Madrid, en los
que las ideas expuestas en este artículo fueron llevadas a la práctica con éxito durante los cursos
académicos 2005/06, 2006/07 y 2007/08. Y, sobre todo, a los alumnos: por su receptividad y por
contagiar a la autora el entusiasmo necesario para escribir el presente artículo a partir de las experiencias
acumuladas durante la impartición de aquellas clases.
Referencias
BALLESTA PAGÁN J. (1996). Función didáctica de los materiales curriculares. Píxel-Bit, Revista de
Medios y Comunicación, Nº 6.
BOOLE G. (1982) Investigación sobre las leyes del pensamiento. Madrid, Paraninfo. 11-164.
Manual de Electronic Work Bench. http://www.uclm.es/gsee/aie/circuitos/EWB.pdf
MUÑOZ LÓPEZ F. J. (2006). Sistemas Informáticos Multiusuario y en Red. Madrid. McGraw Hill.
MUÑOZ LÓPEZ F. J. (2006). Sistemas Informáticos Monousuario y Multiusuario. Madrid. McGraw
Hill.
RAYA GONZÁLEZ L., RODRIGO RAYA V., SANTOS GONZÁLEZ M., MARTÍNEZ RUIZ M. A.
(2007). Sistemas Informáticos Multiusuario y en Red. Madrid. Ra-Ma.
RAYA GONZÁLEZ L., RODRIGO RAYA V., SANTOS GONZÁLEZ M., MARTÍNEZ RUIZ M. A.
(2007). Sistemas Informáticos Monousuario y Multiusuario. Madrid. Ra-Ma.
RECIO SAUCEDO M. A., CABERO ALMENARA J. (2005). Enfoques de aprendizaje, rendimiento
académico y satisfacción de los alumnos en formación en entornos virtuales. Píxel-Bit, Revista de
Medios y Comunicación, Nº 25. 93-115.
R.D. 1660/1994, de 22 de julio, por el que se establece el título de Técnico en Administración de
Sistemas Informáticos y las correspondientes enseñanzas mínimas.
R. D. 1661/1994, de 22 de julio, por el que se establece el título en Técnico de Desarrollo de Aplicaciones
Informáticas y las correspondientes enseñanzas mínimas.
R. D. 1675/1994, de 22 de julio, por el que se establece el currículo del ciclo formativo de grado superior
correspondiente al título de Técnico de Administración de Sistemas Informáticos.
R. D. 1676/1994, de 22 de julio, por el que se establece el currículo del ciclo formativo de grado superior
correspondiente al título de Técnico de Desarrollo de Aplicaciones Informáticas.
Simulador Logicly. http://www.tecnologiadiaria.com/2009/05/simulador-online-circuitoselectricos.html/
15
Descargar