Los Numeros y la Logica Booleana

Anuncio
Los Números y La Lógica Booleana de las Computadoras - Hoja 1
LOS NÚMEROS, EL CERO Y LA LÓGICA BOOLEANA
DE LAS COMPUTADORAS
Dr. Hernán Doval
La escritura de los números
¿Cuándo y donde los hombres empezaron a contar?
Por supuesto no conocemos los detalles, pero la historia de los “números”
como la de la “escritura” está subordinada a la necesidad práctica de dejar
“registrado”, por un tiempo al menos, lo que los hombres hablan y lo que
contabilizan.
Como en el nacimiento de la escritura, que fue precedida por la
comunicación gestual y oral, antes del surgimiento del cálculo numérico
existió la necesidad de “enumerar” y “contabilizar”.
Las primitivas maneras de contar fueron “gestuales” y no habladas, por lo
tanto pueden comprenderla tanto un chino como un argentino. Mostrar dos
dedos para pedir dos cafés, es tan comprensible expresado por un argentino
a un mozo chino de Hong Kong, como por un cliente chino a un argentino
en un bar de Buenos Aires. Podemos conocer cuántas personas ha
asesinado un pistolero arquetipo del Oeste, contando las muescas por cada
enemigo muerto en las cachas de su Colt. Pero el pastor que realizaba
muescas en su bastón de madera o juntaba piedras en un recipiente de
barro por cada oveja que poseía, para así poder “contabilizar” su ganado,
no podía saber si poseía diez o veinte animales; sólo sabía que tenía tantos
como incisiones había hecho en su vara o como piedras había apartado en
la vasija, pues el no estaba nombrando el número de sus piezas de ganado.
Si el contar fue gestual al comienzo, todo lleva a pensar que los hombres
contaron primero sirviéndose de los dedos (de una mano, de las dos manos,
o incluso de las manos y de los píes); algunos han denominado a esto
“inventario por medio del esqueleto”.
Es por ello, que aún actualmente los papúes de Nueva Guinea cuentan del
“1” (con el meñique derecho) al “22” (el meñique izquierdo), pasando por
las articulaciones de la muñeca, del codo, del hombro, las orejas, los ojos,
la nariz, la boca, etc. De esta manera el “nombre” de cada número estaba
asociado al nombre de cada dedo y de la mano. En el Amazonas ecuatorial,
por ejemplo, los jíbaros denominan jimiar (“par de dedos”) al número dos,
uwej (“mano”) al cinco, nawe (“pie”) al diez, etc. Es una verdadera práctica
mnemotécnica, en la que se combina una serie de “gestos” (mostrar uno,
dos o tres dedos) con una serie fonética (el nombre de los dedos).
Miremos comparativamente las tres primeras cifras en español y en algunas
otras lenguas indoeuropeas.
español
francés
italiano
inglés
holandés
ruso
latín
uno
un
uno
one
een
adin
unus
dos
deux
due
two
twee
dva
duo
tres
trios
tre
three
drie
tri
tres
Los Números y La Lógica Booleana de las Computadoras - Hoja 2
Todas estas expresiones se asemejan porque vienen de ciertas raíces del
tronco indoeuropeo: oin (expresa la idea de único), dwi, tre; aunque no nos
es conocido el origen del sentido de estas palabras antes que comenzaran a
designar estos números, tal vez fueran empleadas para referirse a ciertas
partes del cuerpo.
Si sólo dispusiéramos de las diferentes partes del cuerpo para poder contar,
rápidamente entraríamos en dificultades para nombrar cantidades
importantes. El próximo paso fue pensar en alguna estructura que tuviera
una “base cíclica”, es decir que se pudiera volver sobre si misma muchas
veces para simplificar los inventarios. El esqueleto permitía ese juego al
contabilizar como una unidad los cinco dedos de una mano, los diez dedos
de ambas manos, o aún los veinte dedos de las manos y los pies.
Reconocido esto, desde ese momento ya se podía contar multiplicando por
la base, por ejemplo en un sistema de base cinco (tomando como unidad
los 5 dedos de una mano), dos manos tienen el valor de diez y cuatro
manos el valor de veinte (cinco multiplicado por cuatro).
Los griegos utilizaban estas nociones para contar, utilizando un contador o
ábaco con el mismo principio que aún se utiliza en el jardín de infantes.
Tenían una especie de caja dividida en columnas, donde ponían piedritas
(se la llamaban “cálculos”, en latín “calculus”), cada diez piedras había que
pasar a la columna siguiente; así si llenábamos dos veces la primera
columna esta se encontraba vacía, pero la columna siguiente tenía dos
piedritas y esto indicaba el número veinte utilizando un contador de base
diez (como es nuestro actual sistema numérico decimal). Digresión al
margen, ahora podemos comprender porque la palabra “cálculo” significa un
procedimiento aritmético como también la presencia de una “concreción”
(litiasis o piedra) en el sistema ureteral (cálculo renal), en la vesícula
(cálculo biliar) o en la vejiga (cálculo vesical).
Sin embargo para la escritura de los números los griegos no utilizaron estas
nociones, porque desde los tiempos homéricos los griegos escribían decenas
y centenas con las iniciales de su nombre o concediendo a las letras del
alfabeto valores numéricos; del 1 al 4 hacían la anotación ayudándose con
barras verticales, para continuar con 5, 10, 100 etc., sirviéndose de siglas:
P (pi) para penta (pende, “cinco”), D (delta) para deca (deka, “diez”), H
(eta) para hecatón (hekaton, “cien”).
Paralelamente a este sistema, cometieron un error fatal al llegar al siglo de
Pericles, porque comenzaron a utilizar las 24 letras del alfabeto griego en su
orden habitual, para escribir los números: “A” o “a” (alfa) para 1, “B” o “b”
(beta) para 2, “G” o “g” (gama) para 3, “D” o “d” (delta) para 4, etc. Así, 10
pasó a ser “i”, la décima letra, y entonces “11” se escribía “ia”, la décima
más la primera.
Este sistema no era muy útil, porque los números se podían confundir con
palabras, aún cuando para diferenciar las letras de los números a estos se
les colocaba una raya encima. Por ejemplo, 318 se escribe “tíe” que en
griego significa “¿por qué?”. Algo parecido nos sucede cuando leemos las
nuevas patentes alfanuméricas (combinación de letras y números) que dan
lugar a combinaciones como: “SEX 069”, “FMI 148”, “DGI 121”, “UCR 111”,
“OPA 303”, “USA 909”, que muchas veces disgusta al dueño del auto.
Los Números y La Lógica Booleana de las Computadoras - Hoja 3
De esta manera las palabras podían tener valores numéricos, lo que quizás
sirviera de base para interpretaciones esotéricas o para la magia cabalística.
Los hebreos que tomaron prestado este sistema de numeración de los
griegos, no escribían nunca el número 15 utilizando la suma de 10+5, sino
utilizando en su lugar 9+6; ya que el conjunto 10+5 (es decir yod que sería
10 y he que indicaría 5) configura las letras del nombre de Dios: Yahvé...
Los romanos también emplearon letras en la trascripción de las cifras.
Utilizaron barras verticales para los primeros tres números, una barra para
el número 1, dos barras para el 2 y tres barras para el 3, como ya vimos
antes que era usual entre los griegos y otras numerosas culturas. Un caso
diferente es el signo V (para el 5) y el X (para el 10). Cuando se utilizan
barras para las anotaciones no se pueden disponer de muchas soluciones
gráficas, además de las incisiones verticales (para los números del 1 al 3),
se pueden realizar cruces con dos barras que pueden tener la forma de un
signo más (+) o de una equis (x). Los romanos escogieron la “X” para la
notación del número 10, en el lugar donde los griegos se sirvieron de la
“sigla” D (delta) por razones no conocidas. De esta “X” que indica 10 se
deriva la “V” como la mitad de la “X” (el signo “X” partido en dos) y que por
lo tanto denota 5. De esta manera se pueden comprender las tres primeras
cifras romanas, I, V, X.
Para las cifras 50, 100 y 1000, utilizaron respectivamente las letras “L”, “C”
y “M”. Evolucionaron de tres letras griegas que no corresponden a ningún
sonido de la lengua latina. El signo griego ψ evolucionó a “L” (50), θ a “C”
(100) y φ a “M” (1000). En Roma cuando se colocaba un número de menor
valor a la izquierda de uno de mayor valor, este último disminuía su valor
por lo indicado en el número más pequeño, por ejemplo “IV” indica 4 (5-1),
“XC” 90 (100-10); y colocado a la derecha aumenta el valor, por ejemplo
“VI” significa 6 (5+1) y “CX” 110 (100+10). Así el número decimal “1999”
se escribe: MCM XC IX, como si fueran varias columnas.
Como los ejércitos romanos colonizaron gran parte de Europa, el norte de
África y el cercano Oriente, esta forma de notación numérica se utilizaría en
el mundo occidental hasta el siglo X después de Cristo, porque recién por
primera vez aparecen cifras “árabes”, en lugar de las habituales cifras
romanas, en el manuscrito Codex Vigilanus del año 976.
Lo que caracteriza a todas las numeraciones de la antigüedad, pasando
desde los sumerios, egipcios y chinos a los griegos y romanos, es que las
cifras disponen “siempre” del mismo valor: el número 221 se escribía entre
los sumerios, que tenían base sexagesimal, 3 veces sesenta + 4 veces diez
+ uno (utilizaban 8 números en lugar de tres en el sistema decimal actual),
y por los chinos, dos + cien + dos + diez + uno (5 cifras en lugar de tres),
los romanos escribían CC XXI (también 5 signos).
La invención del “cero”
El verdadero cambio revolucionario de las notaciones numéricas actuales, es
el concepto según el cual el lugar en donde se encuentra colocado un
número determina su valor, en el ejemplo anterior de la cifra 221 el primer
2 vale 200 y el segundo 2 vale 20. Para que pueda suceder que el mismo
número se transforme en valores diferentes según su posición, tiene que
inventarse el “cero”. Desde este momento los números según su posición se
Los Números y La Lógica Booleana de las Computadoras - Hoja 4
convierten en “cifra”, palabra árabe que significa “cero” o “vacío”; y este
concepto inicialmente indicaba la ausencia (“vacío”) de unidades en cierto
orden numérico.
Gracias a la invención del “cero” y de la “numeración posicional”, de aquí en
adelante solamente iban a ser necesarios un número muy limitado de
signos para hacer la notación de cualquier número, por elevado que fuera
este. Sólo 10 signos numéricos (del 0 al 9) en nuestra habitual numeración
“decimal”, o únicamente 2 signos numéricos (“0” o “1”) en la numeración
“binaria” que utilizan nuestra computadoras para realizar complejos
cálculos.
La notación decimal es también llamada “números arábicos”, pero no
significa que este sistema haya sido creado por los árabes. Por lo que
conocemos el “cero” nació con los sumerios, simplemente para resolver
dificultades de cálculo, aunque no lo utilizaron para una numeración
posicional. Se lo apropiaron los griegos del ejército de Alejandro Magno en
su paso por Babilonia en el año 331 antes de Cristo y lo llevaron a la India
hasta donde llegaron sus soldados. O mejor dicho intelectuales como Pirrón
y otros expertos en astronomía y matemáticas, que hicieron conocer a los
indios la obra de Herón, Pappus y Diofanto. Allí el “cero” se quedó por
varios siglos –existe una tabla del año 876 donde “270” aparece escrito
“270”. De allí lo tomaron los árabes, apareciendo en Bagdad en el año 773,
pasando de Damasco a la Córdoba morisca y de allí al resto de Europa.
El árabe Al Khwarizmi hizo entrar en la historia el sistema decimal cuando
en 825 escribió un tratado llamado Al Gebar, introduciendo como dice su
título el “álgebra”. Muy pronto los “números arábigos” y los cálculos que con
ellos se hacían, fueron conocidos como “algorismos”. A pesar que eran
necesarios para utilizarlos en la contabilidad cada vez mayor del desarrollo
incipiente de la burguesía comerciante de las villas (burgos), no todos
aceptaron las cuentas “por algorismo”, ya que lo consideraban poco
confiable. Aún en 1299 el gobierno de Florencia puso fuera de la ley a los
que utilizaban libros contables que contenían “algorismos”, y en Padua
exigían que los precios de los libros estuvieran en letras, como garantía de
lealtad comercial (como aún se pide en la confección de cheques bancarios).
Sin embargo al transcurrir el siglo XV la victoria de los “números arábigos”
fue total. En un grabado de Gregor Reisch que ilustra la Margarita
Philosophica de 1503, la musa Aritmética mira displicentemente a Boecio
que terminó un certamen de cálculo, utilizando el nuevo sistema decimal,
contra Pitágoras que seguía calculando con su ábaco.
Sin el “cero” no sólo no existiría el sistema decimal actual, sino que no
conoceríamos los números negativos y ni siquiera los decimales, tampoco
los logaritmos, y probablemente no hubieran aparecido Descartes, Newton o
Einstein.
La notación decimal utiliza solamente 10 signos numéricos (0 a 9) y el valor
depende en la posición en que se encuentren. Como en el ábaco cada 10
signos numéricos pasamos a la posición siguiente, por lo tanto las
posiciones que ocupa cada número van a estar indicados por la potencia de
n
10, la fórmula genérica sería (0-9)*10 (figura 1).
Los Números y La Lógica Booleana de las Computadoras - Hoja 5
Por lo tanto en el número “237” de la figura 1, el “2” indica “200” y se
puede escribir 2*102 (donde la potencia “2” de base “10” indica 200 y
obviamente la colocación de dos ceros a la derecha del “2”), el “3” indica
“30” (3*101) y el “7” representa la unidad (7*100). La suma de 200 + 30 +
7 = 237.
Observe, para comparar, como se escribía 237 en romano en la figura 1 (CC
XXX VII).
Figura 1
Notación “decimal” y “romana”
237
10
200
30
7
237
2
2*10
1
3*10
0
7*10
237
CC XXX VII
(0-9)*10
n
Ahora nos vamos a introducir a otro tipo de notación numérica, la llamada
“binaria” que utiliza la potencia de base “2” (“0” o “1”).
Números “binarios” y la computadora digital
Todas las computadoras digitales que utilizamos operan con números
binarios y un circuito lógico (que más adelante veremos que es una lógica
booleana). Todos reconocemos que las computadoras superan al cerebro
humano en la velocidad de procesamiento y en la capacidad de
almacenamiento de su memoria permanente.
Pero para desmitificar el trabajo sorprendente que realiza esta “caja negra”,
vamos a examinar las operaciones internas sencillas que realiza, pero eso
sí, de manera incesante y repetidas velozmente.
La célula de memoria más elemental de una computadora puede solo
almacenar una variable con dos valores, el llamado “binary digit” o más
conocido como bit, que representa una pieza de información ya sea
numérica como “0” o “1”, o lógica como “Falsa” o “Verdadera”. Esto se
realiza electrónicamente con una corriente baja o alta, o un voltaje negativo
o positivo, o una magnetización débil o fuerte, que representan
Los Números y La Lógica Booleana de las Computadoras - Hoja 6
respectivamente el “0” o “Falso” y “1” o “Verdadero”. Esto termina
expresando una numeración o lógica binaria.
El número de veces por segundo que la computadora es capaz de cambiar,
leer o escribir la corriente, el voltaje o la magnetización y el número de
operaciones paralelas determina su velocidad.
¿Cómo almacena y usa los números la computadora?. Por supuesto no en la
forma decimal (0 a 9) que nosotros conocemos, sino en la forma binaria (0
o 1), que es la única forma en que puede almacenar una computadora
digital. Cuando el usuario utiliza la computadora no le interesa que ella
transforma los números decimales que introduce a números binarios, o que
los resultados de las operaciones aritméticas con los números binarios
(suma, resta, multiplicación y división) se transformen en números
decimales en la pantalla. Pero aún así, es útil tener una idea básica de estas
operaciones internas de transformación de la computadora, aunque sea
para desmitificar este instrumento creado por el hombre.
Vamos a utilizar un número pequeño como el “11” para realizar la
transformación de la notación “decimal” a la “binaria”.
En notación decimal 1110 se escribiría ((0-9)*10n); o sea 1*101 + 1*100 =
11 (figura 1). En notación binaria debemos escribir (0-1)*2n (figura 2).
Por lo tanto el primer número binario que utilizaremos es el “1” con la
potencia de base “2” que más próxima se encuentre al número decimal
“11”. Calculemos empezando por el menor, 1*21 = 2, 1*22 = 4, 1*23 = 8,
1*24 = 16. O sea “1” multiplicado por la potencia de “2” que no se pasa del
número decimal “11” es la tercera (1*23 = 8) (figura 2).
Colocamos el número “1” con tres ceros de posición a la derecha = “1000” y
descontamos (restamos) “8” de “11” y nos queda el número decimal “3” (11
– 8 = 3) (figura 2).
La próxima posición descendente en los números binarios es 1*22 = 4,
como sobrepasa al número decimal “3” en esa posición ponemos cero (0*22
= 0), o sea el número binario “0” con dos ceros a la derecha = “000” (figura
2).
La siguiente posición en los números binarios es 1*21 = 2, que lo restamos
al “3” decimal y queda “1”, y al mismo tiempo colocamos el “1” con un cero
a la derecha = “10” (figura 2).
Al final en la unidad ponemos el “1” (1*20) = “1” (figura 2).
El número binario resultante de 1000 + 000 + 10 + 1 = 1011, es la forma
en que la computadora digital almacena el número decimal “11”. O sea
“1110” decimal (1*101 + 1*100 = 11) se transforma en “10112” binario
(1*23 + 0*22 + 1*21 + 1*20).
Los Números y La Lógica Booleana de las Computadoras - Hoja 7
Figura 2
Transformación
“decimal”
11
(0-1)*2
10
Paso 1 -8
1*2
3
Paso 2 -0
0*2
3
Paso 3 -2
1*2
3
2
1
n
“binario”
1011 2
1000
2
000 2
10 2
1
Paso 4 -1
1*2
0
12
0
¿Cómo se suman y restan los números binarios?. Las reglas para adicionar
o sustraer los “números binarios” son exactamente las mismas que se
utilizan para sumar y restar con los “números decimales”.
Vamos a mostrar un ejemplo de cómo se suman los números decimales
“43” y “78” (43 + 78 = 121) y sus homólogos números binarios “000 101
011” (compruebe que es la transformación del número decimal 43) y “001
001 110” (compruebe que es el número decimal 78) respectivamente
(figura 3).
Para mayor comprensión visual el número “43” se descompone como 4*101
+ 3*100 y el “78” como 7*101 + 8*100.
Compruebe el los cálculos realizados en la figura 3, que de la misma
manera que se “transportan” en los números decimales las cifras 10 o
mayor a la posición siguiente y queda el resto (o cero) en la misma
posición; con los números binarios se “transportan” las cifras de 2 o mayor
a la posición siguiente y queda el resto (o cero) en la misma posición.
Los Números y La Lógica Booleana de las Computadoras - Hoja 8
Figura 3
Base
101
100
43
4
3
+ 78
+7
+8
11
11
12110
+1
12
“se lleva”
1
o 12110
Los mismos números en la forma “binaria” son:
000
101
011
= 4310
+001
001
110
= 7810
102
121
001
1
001
111
1
001
“se lleva”
= 12110
La misma técnica sencilla, similar a la decimal, se utiliza para la resta de los
números binarios.
Introducción a la Lógica Booleana
Vamos a introducirnos en la “lógica Booleana” para conocer como
funcionan los programas “cualitativos” de las computadoras digitales, en
la mayoría de los programas de apoyo o toma de decisiones.
Los programas de apoyo para tomar decisiones heurísticas operan con
expresiones lógicas (E), que a su vez están compuestos por elementos
de decisión binarios. Estos elementos de decisión binarios se utilizan, por
ejemplo, para probar si algún síntoma de la enfermedad esta presente, o si
tenemos una variable continúa (ej. glucemia), para conocer si la medición
está por encima de cierto nivel umbral (glucemia >120 mg%). Estas
"expresiones lógicas” son las “operaciones lógicas” binarios que ya
discutimos como: VERDADERO (V) o FALSO (F), “1” 0 “0”, YES (Y) o NOT
(N), SI (S) o NO (N).
Los Números y La Lógica Booleana de las Computadoras - Hoja 9
La matemática es una rama de la lógica, que tiene un origen filosófico, o al
revés como quieren algunos matemáticos. Es muy útil y funcional para las
computadoras digitales, porque todos sus circuitos operan con reglas
basadas en una lógica binaria. El fundamento de la “lógica matemática”
apareció en el siglo XIX, cuando en 1847 Boole publicó su libro “El Análisis
Matemático de la Lógica”. Por lo tanto la lógica matemática es también
llamada “lógica booleana”; pero también se la conoce con otros nombres
como: “lógica combinatoria”, “lógica simbólica”, o “lógica proposicional”.
Figura 4
LOGICA BOOLEANA (diagrama de Venn)
A
‘A
‘A A
B
‘B
‘A A
B
‘B
E = NOT A
1)
2)
3)
4)
A
V
V
F
F
B
V
F
V
F
E = ‘A
A
V
F
‘A
F
V
A AND B
E = A AND B E = A.B 1) V
2) 3) 4) F
‘A A
B
‘B
E = A OR B
A OR B
E = A+B 1) 2) 3) V
4) F
Operadores Lógicos
Existen un número finito de “operadores lógicos”, de los cuales los más
importantes son el “operador unitario” NOT (opera solamente con una
variable lógica), la expresión lógica se escribe E = NOT A. Los
“operadores binarios” AND y OR (ambos operan con dos variables
lógicas), las expresiones lógicas se escriben E = A AND B y E = A OR B
respectivamente.
Vamos a mostrar como funcionan los “operadores lógicos” utilizando un
diagrama de Venn. Un diagrama de Venn es una representación gráfica de
todos los objetos posibles que pertenecen a cierta “clase de objetos”. El
rectángulo en el diagrama de Venn representa el dominio de cierta clase
de objetos.
La operación NOT
En la figura 4 el rectángulo podría, por ejemplo, representar una clase de
objetos que podrían ser “animales”. Si ahora querríamos representar un
grupo de “mamíferos” dentro de la clase de animales, lo pondríamos dentro
Los Números y La Lógica Booleana de las Computadoras - Hoja 10
del Círculo A, todos los animales fuera del círculo A serían también
animales pero “no mamíferos”, por lo tanto la expresión se escribiría:
E = NOT A
O como en la lógica booleana, utilizando el apóstrofe en lugar de NOT:
E = ‘A
Esta expresión (el área fuera del círculo de la figura 4) es VERDADERA (V)
si A es FALSA (F), y FALSA (F) si A es VERDADERA (V). En el primer
diagrama de Venn de la figura 4, a la derecha se puede ver una tabla con
esta dos opciones opuestas.
Por lo tanto una expresión como: A = “este animal es un mamífero” debería
estar en el círculo A que es V, si estuviera fuera del círculo en ‘A, sería F.
La operación AND
Si ahora, además del rectángulo (animales) y del círculo A (mamíferos), de
manera similar dibujamos un nuevo círculo B, de manera que B
representara: B = “este animal vive en el océano”. Los dos círculos A y B
estarán parcialmente sobrepuestos, la intersección de los dos círculos estará
constituido por el subgrupo de “mamíferos que viven en el océano”.
Esta superposición de los dos círculos permite 4 posibilidades de verdadero
o falso de la relación del grupo A y B, los dos verdaderos, los dos falsos,
uno falso y otro verdadero o viceversa (ver Tabla de la figura 4). Por lo
tanto el área sombreada (la intersección), se escribe como:
E = A AND B
En el álgebra booleana se coloca un “punto”, representando la operación
AND o el producto lógico, de una manera similar a la multiplicación
algebraica, por lo tanto:
E = A . B,
De manera que esta expresión lógica será VERDADERA, únicamente si
ambas A y B son VERDADERAS. Por lo tanto, la expresión “la ballena es un
mamífero que vive en el océano” será VERDADERA, si tanto A (mamífero)
como B (vive en el océano) son VERDADERAS.
La operacion OR
La expresión lógica:
E = A OR B
es únicamente FALSA si ambos, A (mamíferos) y B (viven en el océano) son
FALSOS, en cualquier otra situación la expresión es VERDADERA.
El área sombreada de la unión de A y B del último diagrama de la figura 4
la operación OR en un diagrama de Venn. La expresión una “cucaracha” es
un mamífero o vive en el océano es FALSA porque A y B son FALSAS. En el
álgebra booleana:
E=A+B
Con el signo “más” representando la operación lógica OR o adición lógica
(figura 4), la cual es totalmente diferente a la suma algebraica.
Los Números y La Lógica Booleana de las Computadoras - Hoja 11
Figura 5
MÉTODO CUALITATIVO O SIMBÓLICO
Características de un valor por encima de un umbral (U)
E = “x > U”
o es Verdadero (V) o es Falso (F)
Característica de la expresión, puede ser un Síntoma (S)
E = “ síntoma S está presente”
o es V o es F
Características más complejas, varios síntomas o valores
E = “relación Q/R > 1/3 AND duración de Q >0.03 s en
D1 o V6”
Ecuación 10 del código de Minnesota
El valor de “E” se utiliza para comenzar otra “unidad de
decisión” (próxima), o realizar alguna “acción” (final)
IF “E” THEN (acción 1) ELSE (acción 2)
Expresiones lógicas
Una “expresión lógica puede ser:
• una “variable lógica”,
• una “declaración verbal” que puede ser VERDADERA o FALSA, o
• variables lógicas
lógicos.
y
declaraciones
combinadas
por
operadores
Cuando la expresión lógica es una “declaración verbal”, usualmente se
coloca entre comillas.
Colocaremos algunas declaraciones verbales simples:
E1= “8 es un número primo”.
E2 = “relación Q/R > 1/3 AND duración de Q >0.03 seg en D1 o V6”
(ecuación 10 del código de Minnesota).
E3 = “9 + 6 = 15”.
Cada expresión lógica puede ser VERDADERA o FALSA, en los ejemplos
anteriores es evidente que la expresión E1 es FALSA, y que la E3 es
VERDADERA. Además la expresión E2 tiene dos declaraciones verbales
combinadas con un operador lógico. (figura 5)
En la implicación nosotros relacionamos dos expresiones lógicas A y B una
con la otra, diciendo que si A es VERDAD, entonces B es también VERDAD.
La expresión se escribe:
E=A→B
Esto anotación significa que “A implica B”, u otra manera que se escribe en
el lenguaje de las computadoras digitales, “IF A THEN B (acción 1) ELSE C
Los Números y La Lógica Booleana de las Computadoras - Hoja 12
(acción 2)”. Esta relación lógica se utiliza en los sistemas expertos de los
programas de las computadoras (figura 5).
Estos sistemas que realizan deducciones sobre métodos simbólicos
utilizando operadores lógicos, de la manera que lo hace un sistema de
apoyo de decisiones que usa un razonamiento basado en reglas, para
concluir un diagnóstico basado en un caso modelo, es llamado
popularmente el método heurístico; como es utilizado en el razonamiento
clínico habitual.
Estas decisiones individuales se realiza sobre la presencia de un síntoma:
E = “síntoma S está presente”
O en su defecto, si una “medición” es mayor que algún “valor umbral”, si en
el resultado de una prueba el valor de “x” es mayor que el umbral “U”. De
esta forma estos datos continuos se convierten en datos binarios, donde el
valor lógico de la expresión E puede ser VERDADERO o FALSO. Se escribe:
E = “x > U” (figura 5)
Un formalismo de expresiones complejas es el código de Minnesota, que
es utilizado para clasificar el electrocardiograma en diferentes categorías de
diagnóstico
electrocardiográficos
de
enfermedades,
y
se
usa
fundamentalmente como “screening” poblacional. Este código tiene muchas
micro-decisiones lógicas incorporadas, muchas veces, en expresiones (E)
bastantes largas. Ya hemos visto como se escribe la “expresión lógica” de la
ecuación 10:
E = “relación Q/R > 1/3 AND duración de Q >0.03 s en D1 o V6”
El valor de E de esta expresión puede ser utilizada para comenzar alguna
otra unidad de decisión elemental o realizar alguna acción. Por lo tanto la
expresión más general en el razonamiento heurístico es:
IF E THEN (acción 1) ELSE (acción 2).
Figura 6
SECUENCIA de las MICRODECISIONES
La “secuencia de las microdecisiones” va a depender del
conocimiento de la enfermedad, los pasos que se deben
realizar en el proceso de “toma de decisiones”, y el
“objetivo” propuesto en el proceso de toma de decisiones
Generalmente se siguen 3 estrategias diferentes en la
toma de decisiones “heurística” con computadoras:
1. Uso de todas las microdecisiones simultáneamente
(tablas de decisión o tablas de verdad)
2. Uso de las microdecisiones secuencialmente (hojas de
flujo o arboles de decisión)
3. Uso de las microdecisiones expresadas en reglas de
acción (basada en reglas o razonamiento cualitativo)
Los Números y La Lógica Booleana de las Computadoras - Hoja 13
La “secuencia de las microdecisiones”, como se realizan en un programa,
dependen del conocimiento que se tiene de la enfermedad, los pasos a
realizar en la “toma de decisiones” y el “objetivo” que se propone (figura 6).
De manera más general, se utilizan tres estrategias diferentes cuando se
toman decisiones “heurísticas” con computadoras (figura 6):
1. Utilización “simultánea” de todas las microdecisiones (tablas de
decisión o tablas de verdad)
2. Utilización “secuencial” de las microdecisiones (hojas de flujo o
árboles de decisión)
3. Utilizar las microdecisiones expresadas en “reglas de acción “
(basada en reglas o razonamiento cualitativo)
Mostraremos algunos ejemplos con los tres métodos.
Tablas de Decisión o Verdad
Una Tabla de Verdad o Decisión toma todas las expresiones lógicas (Ek) en
forma simultánea o de una sola vez. Una ecuación general de una Tabla de
Verdad es:
D = E (E1, E2, ... Ek)
Figura 7
TABLAS de DECISION o VERDAD
Toma en cuenta todas las expresiones lógicas Ek en una vez
Var.
E1
E2
E3
E4
E5
E6
E7
E8
E9
E 10
E 11
E 12
Expresión lógica
Todos los RR son regulares
Todos los QRS son idénticos
QRS dura > 120 msec
Frec. card. > 100 lat/min
Las ondas P están presentes
Frec. Card. < 40 lat/min
P neg. en DII y pos. en aVR
No. P/QRS < 1.1
No. P/QRS > 1.1
Intervalos PR regulares
Intervalo PR > 200 ms
P además de DII y aVR
D = E {E1,E2,....Ek}
. AND
+ OR
.’E NEGACION
Expresiones lógicas
E usada como
Elementos en la
Tabla de Verdad
para el diagnóstico
de Arritmias
diag. “ritmo nodal”
D=E1.E2.’E3.’E5.
’E12+E1.E2.’E3.E5.
E7,
Un ejemplo concreto de “tabla de verdad” es un programa de computación
para el reconocimiento de algunas arritmias, diseñado por J. Wartak, que
utiliza “expresiones lógicas” donde se consideran las formas de las
ondas y el intervalo RR del electrocardiograma (ECG). En la figura 7 se
pasan lista a las 12 diferentes expresiones lógicas.
Los Números y La Lógica Booleana de las Computadoras - Hoja 14
A su vez en la figura 8 se da la “tabla de verdad”. La combinación de las 12
expresiones lógicas en las “reglas” que se establecieron del 1 la 9, nos
permite conocer el “diagnóstico” (D) de las diferentes arritmias.
Por principio, este método de apoyo en la decisión diagnóstica evaluaría
todas las líneas (las reglas diagnósticas) de la tabla de verdad (en el caso
de la figura 8 las nueve líneas en forma completa) antes de llegar a una
decisión diagnóstica definitiva.
Tomemos como ejemplo las expresiones lógicas para el diagnóstico del
ritmo nodal (figura 8). El diagnóstico se realiza aplicando las reglas 3 y 4,
de manera que podemos escribir:
D = E1 . E2 . ‘E3 . ‘E5 . ‘E12 + E1 . E2 . ‘E3 . E5 . E7,
En esta ecuación el “punto” indica el operador lógico AND, el signo “más”
el operador lógico OR y el “apóstrofe” la negación lógica NOT.
Esta expresión diagnóstica significa que en ambas declaraciones (+ o OR),
es VERDAD que “todos los intervalos RR son regulares” (E1) y “todos los
complejos QRS son idénticos” (E2), y es FALSO “que la duración de los QRS
es mayor de 120 mseg” (‘E3). Además en la primera parte, es FALSO que
“las ondas P están presentes” (‘E5) y “las ondas P están presentes en
derivaciones distintas de DII y aVR” (‘E12). En la segunda parte es VERDAD
que “las ondas P están presentes” (E5) y que presentan “P negativa en DII y
positiva en aVR” (E7) (figura 8).
Figura 8
Tabla de Verdad para el Diagnóstico
de Arritmias (Wartak J.)
R.
E1
E2
E3
E4
E5
E6
E7
E8
E9 E10 E11 E12 D expr. Diag
1
V
V
V
V
F
N
N
N
N
N
N
N
Taq. Ventr.
2
V
V
V
F
N
V
N
N
N
N
N
N
R. Idioventr.
3
V
V
F
N
F
N
N
N
N
N
N
F
R.Nodal
4
V
V
F
N
V
N
V
N
N
N
N
N
R.Nodal
5
V
V
F
N
V
N
F
V
N
N
N
N
AV 1° Grado
6
V
V
F
N
V
N
F
V
N
F
N
N
Disoc. A-V
Wenckebach
Mar.Errante
7
V
V
F
N
V
N
F
F
V
N
N
N
AV 2° Grado
8
V
V
F
N
V
N
F
F
F
N
N
N
AV 3° Grado
9
V
V
N
N
V
F
F
V
F
V
F
F
R.Sinusal
Como se puede ver con este ejemplo diseñado por J. Wartak, de tabla de
verdad para el diagnóstico de arritmias, las tablas de verdad pueden
incorporar fácilmente decisiones complejas sobre muchas enfermedades.
Los Números y La Lógica Booleana de las Computadoras - Hoja 15
Sin embargo, optimizar una tabla de verdad es dificultosa, y solamente si se
“valida” la tabla de verdad diseñada por un evaluador o prueba
independiente, esta puede confirmar un rendimiento aceptable.
Hoja de flujo
El sistema de una “hoja de flujo” utiliza, en principio, la misma lógica
booleana de las decisiones micro que las tablas de verdad, la diferencia
entre ambas es que una “hoja de flujo” contiene más conocimiento e
información que una tabla de verdad. Esto se debe a que en la hoja de flujo
las reglas no son evaluadas simultáneamente (como en la tabla de verdad),
sino de manera secuencial como condiciona la estructura jerárquica que
establece la hoja de flujo.
En una hoja de flujo la “unidad elemental de decisión” se dibuja como un
rombo, y tiene una “entrada” en la parte superior y dos o más “salidas” en
la parte inferior del rombo (figura 9).
La “entrada” conecta ese nodo de decisión con la “unidad elemental de
decisión" que la precede, y las “salidas” son las decisiones lógicas binarias
excluyentes de VERDADERO o falso.
Figura 9
FLUJOGRAMA (árbol de decisión)
El “flujograma puede ser considerado como un “árbol
de decisión colocado cabeza abajo, con las raíces en la
parte superior y las ramas y las hojas desplegándose
hacia abajo. Se toman las microdecisiones en los
llamados “nodos”, que es una figura romboidal con una
entrada en la parte superior y dos o más salidas en la
inferior.
F
V
La entrada está conectada a la unidad de decisión
elemental precedente, y las salidas son las decisiones
binarias VERDADERO (V) o FALSO (F).
El árbol sigue una vía que va de la raíz y finaliza en las
hojas, donde comienza alguna actividad o se va a otro
flujograma.
Se puede considerar que el diseño y construcción de una “hoja de flujo”, es
similar a las de un “árbol de decisión” colocado cabeza abajo; es decir con
las “raíces” en la parte superior y las “ramas” y las “hojas” creciendo hacia
abajo.
La decisiones que se toman en dicho “árbol”, viajan de la “raíz” y termina
en algunas de sus “hojas”, con lo que se espera sea una decisión correcta.
Al llegar al final de la hoja, expresada en una regla similar a la que se
Los Números y La Lógica Booleana de las Computadoras - Hoja 16
usaban en la tabla de verdad, se toma una acción, que puede ser el
comienzo de alguna actividad o ir a alguna otra “hoja de flujo”.
La figura 10 muestra un ejemplo de una “hoja de flujo”, basada en las
mismas decisiones elementales y expresiones lógicas que se presentaron en
la “tabla de verdad” de la figura 8.
Una gran ventaja de la hoja de flujo con respecto a la tabla de verdad, es
que en ésta el procesamiento de la información es mucho más eficiente, ya
que no es necesario que se evalúen todas las entradas de combinaciones
posibles. Pero la principal desventaja es que el proceso de toma de
decisiones es muy rígido, una vez que se comete un error y se entra en un
camino de decisión equivocado, no existe un retorno posible al camino
verdadero.
Es por ello, que aún más que en una tabla de verdad, la “hoja de flujo”
debe ser probada muchas veces de manera exhaustiva antes de poner en
aplicación en la práctica clínica.
Figura 10
Flujograma de Diagnóstico de las Arritmias
Inicio
F
E1
V
F
E2
V
F
E3
V F
E4
V V
E5
F
TV
F
E5
F
E12
V
E6
V
E7
RIV
F
RN
F V
E8
F
AV1
F
E9
F
V
E10
WB
V
AV2
AV3
Debe recordarse que cuando se construye tanto una tabla de verdad como
una hoja de flujo, la clave para que sea exitosa o sea, que permita con
seguridad un resultado, depende de su construcción empírica de ensayo y
error con pruebas múltiples y extensa de campo; ya que no existen
formalismos matemáticos, tal como se utilizan en los modelos estadísticos,
para asegurar la ausencia de errores de construcción.
Se utiliza la técnica de “algoritmo de partición no paramétrica” para la
construcción de una hoja de flujo. Esta indica que se debe tomar primero en
consideración a la “característica más discriminante” y comenzar la
construcción del primer “nodo elemental” de decisión en la “raíz” del
Los Números y La Lógica Booleana de las Computadoras - Hoja 17
“árbol”. Hecho esto, se busca la “característica más discriminante” siguiente
para cada rama del primer nodo de decisión, y se prosigue de esta manera
hasta agotar todas las características del grupo de decisiones que tenemos
listadas. Una vez terminado nos daremos cuenta que nos ha salido un árbol
muy extenso y “frondoso” para poder utilizarlo en la toma de decisión
clínica, así que este va a ser el momento de “podar” algunas de las ramas
poco utilizadas.
A diferencia de una clasificación estadística, para probar que construimos el
mejor árbol de decisión posible para el problema de decisión que teníamos
entre manos, su rendimiento en la realidad debería ser evaluado por un
grupo de pruebas independientes (expertos del tema, otras reglas de
decisión, etc.).
Razonamiento “basado en reglas”
En los dos métodos anteriores, cuando ocurren nuevas pruebas
diagnósticas, respuesta terapéuticas y por lo tanto cambios en la toma de
decisiones, toda la tabla de verdad o la hoja de flujo deben ser
condicionadas por dichos cambios.
Por este motivo se han diseñado sistemas que independicen el conocimiento
contenido en las reglas de expresión lógica que hemos venido discutiendo,
de la estructura del propio “modelo de decisión”; esto se trató de resolver
con el sistema de razonamiento “basado en reglas” (figura 11).
Figura 11
Razonamiento Basado en Reglas
Las “reglas” que contienen un conocimiento del tipo
IF “E” THEN (acción 1) ELSE [acción 2] , forman lo
que se llamaría una “base de conocimiento”
Por ejemplo: IF {E1.E2.’E3.’E5.’E12} THEN R. N.
IF {E1.E2.’E3.E5.E7} THEN R.N.
Base de
conocimiento
Métodos de
Inferencia
Base de datos
de pacientes
Conocimiento
Explicación
Hist. Clínica
Las reglas en las cuales está contenido el conocimiento de las expresiones
lógicas, forma una base de conocimiento, la cual es similar a una “base
de datos”, pero en este caso no contiene simplemente datos sino en su
lugar “sentencias lógicas” que en situaciones posibles, definida por los datos
Los Números y La Lógica Booleana de las Computadoras - Hoja 18
reales de un determinado paciente, se relacionan con las conclusiones
posibles alcanzadas cuando se toman en consideración dichos datos (figura
11).
En este sistema subyace el “conocimiento heurístico” del razonamiento
clínico, en el cual de un lado tenemos la “base de datos del paciente” y del
otro la “base de conocimiento”, y es posible razonar acerca de los dos y
sacar una conclusión, que siempre utilizará un “método de inferencia” con
un pensamiento original similar a lo que sucede en la mente de un clínico
formado.
Para el mecanismo de inferencia que utilizan los sistemas de
razonamiento basado en reglas, existen diferentes estrategias, estas son
conocidas como razonamiento hacia delante y razonamiento hacia
atrás. En ambos estrategias de inferencia, los datos del paciente
seleccionan una o más reglas de conocimiento que pueden razonar con
dichos datos; la ejecución de dichas reglas puede llevar por mecanismos de
inferencia a preguntar por más datos del paciente o a aplicar
automáticamente una o más reglas adicionales. Como el mecanismo de
inferencia puede llevar a invocar una regla después de otra, a menudo se
refieren a la “base de conocimiento” como reglas de producción, porque
producen automáticamente “cadenas de razonamiento” durante la
resolución de un problema.
Razonamiento hacia delante
En el “razonamiento hacia adelante”, el dato seleccionado de la “base de
datos del paciente” se confronta con las “reglas de producción” de la “base
de conocimiento para hacer “inferencias”. La conclusión se puede ejecutar o
agregar al grupo de datos, para de esta manera desencadenar nuevas
conclusiones si existen reglas que se ajusten a esos nuevos datos. Por lo
tanto, al “razonamiento hacia delante” también se lo llama razonamiento
manejado por los datos.
Una vez que una o más reglas son evocadas por los datos primarios o por
las conclusiones, el programa se detiene.
Razonamiento hacia atrás
En el “razonamiento hacia atrás” el proceso se inicia cuando el mecanismo
de “inferencia” selecciona las “reglas” de la “base de conocimiento” y
controla si hay datos disponibles en la “base de datos” del paciente para
poder realizar la inferencia.
Si al utilizar la “regla elegida” no existen las premisa en la “base de dato”
del paciente, en el “razonamiento hacia atrás” se determina si las otras
reglas tienen aplicación para los datos de ese paciente. Por eso este tipo de
razonamiento, también llamado razonamiento manejado por el
objetivo, continúa cíclicamente ya sea hasta que se prueba que la regla
elegida es falsa o se reconoce que todas las premisas de la regla elegida
son verdaderas.
Algunos mecanismos combinan ambos sistemas de razonamiento, hacia
delante y hacia atrás. Cuando existen pocos datos, es mejor empezar con
Los Números y La Lógica Booleana de las Computadoras - Hoja 19
los datos primarios (razonamiento hacia delante), porque esos datos
pueden elegir selectivamente la regla correspondiente de la “base de
conocimiento”. Cuando existen muchos datos del paciente que estamos
considerando, no deseamos desencadenar una interminable cadena de
reglas de producción si utilizáramos el razonamiento hacia delante, en esta
situación empezar con las reglas de la “base de conocimiento”
(razonamiento hacia atrás) es mucho más eficiente.
El razonamiento basado en reglas es también conocido como un
sistema basado en el conocimiento; en la vieja literatura se lo llamaba
sistema experto, porque el sistema contenía conocimiento de los expertos
y podía resolver los problemas de una manera semejante al razonamiento
de los expertos.
Cuando un no experto utiliza estos sistemas de apoyo para tomar
decisiones, muchas veces no comprende porque el sistema llega a ciertas
conclusiones. Para mantener la decisión final en manos del médico, los
nuevos sistemas de conocimiento se comportan como si fueran sistemas
críticos, que suministran información adicional para justificar su consejo y
se comportan mucho más como sistemas explicatorios.
En estas situaciones el usuario del sistema propone un “plan de acción”, y el
sistema ofrece una crítica de la conducta planeada. Pero no siempre esta
dando guías y consejos, que terminan por abrumar y molestar al usuario.
En realidad, como dijimos, el usuario toma las decisiones y solamente en
las dos circunstancias siguientes, se presenta una aviso del sistema:
1. Cuando en situaciones poco comunes el usuario necesita un consejo
o quiere conocer si su decisión es razonable.
2. Cuando el usuario toma una decisión que se encuentra fuera del
rango que se considera permisible para los expertos que
desarrollaron el sistema. En esa situación el sistema da una “alerta”,
pero el sistema no se sobrepone al médico en su decisión ni
prescribe la acción que debería realizar el usuario.
Aunque estos sistemas basados en el conocimiento (sistemas expertos) se
han desarrollado bastante, no son los únicos. Solo a fines de ejemplo
informativo, mencionaremos las redes semánticas, que utilizan grupos de
conceptos que se relacionan de una manera jerárquica.
Por lo tanto, debemos mantener los ojos abiertos, para reconocer los
rápidos desarrollos en los métodos que estructuran la base del
conocimiento, de una forma que la hacen cada vez más utilizable.
Descargar