Ir a Página de Inicio
 
  Sistema Binario - Bits

El sistema binario, como su nombre lo indica, es un sistema numérico compuesto por dos dígitos: el "0" y el "1". El sistema usual es el decimal, que tiene como base los diez dígitos habituales: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a partir de los cuales se combinan todos los otros números. Comparativamente, tenemos la tabla:

Decimal
Binario
Decimal
Binario
Decimal
Binario
0
0
7
111
14
1110
1
1
8
1000
15
1111
2
10
9
1001
16
10000
3
11
10
1010
.
4
100
11
1011
.
5
101
12
1100
.
6
110
13
1101
167
10100111

Esta notación presenta un particular interés, en lo que se refiere a la ciencia de los computadores, basada en el almacenamiento de información en bits

Un "bit" es la mínima unidad de información. Abreviatura de "dígito binario", un bit puede representar cualquier estado o su negación. Sí o no. Verdadero o falso:

¡Los famosos 0s y 1s!

Las leyes de la lógica binaria están en la base de la computación tal cual la conocemos hoy. Para representar un bit de información en los microprocesadores se utiliza la ausencia o presencia de miles de millones de electrones en un diminuto transistor.
Luego 1 byte = 8 bits


1 kB = 1 kilo byte = 1.000 bytes
1 MB = 1 mega byte = 1.000.000 bytes
1 GB = 1 guiga byte = 1.000.000.000 bytes
1 TB = 1 tera byte = 1.000.000.000.000 bytes


De esta manera, la secuencia de un dispositivo como el de Turing, se presenta de la manera siguiente:

1 La máquina se encuentra en cierto estado interno.
2 Llega el input por la derecha, la máquina lee en la cinta un "0" o un "1".
3 Esto le indica conservar o pasar a un nuevo estado interno, rescribir y desplazarse de un solo cuadrado a la izquierda o la derecha.
4 La máquina se encuentra entonces en el mismo o un nuevo estado interno.
5 La máquina lee en la cinta otro "0" o otro "1".
6 Esto le indica un nuevo estado interno, reescritura y desplazamiento, a la izquierda o la derecha.
7 Continua así, hasta que reconoce (en caso que sea posible) una orden de detención que significaría que terminó el cálculo, que se leería en este caso a la izquierda.

Los estados internos de una máquina de Turing, si bien pueden ser grandes, no dejan de ser finitos, por lo tanto numerables y para efectos de simplificación dichos estados internos serán representados (o enumerados) por secuencias de 0s y 1s, según el famoso esquema binario. El input igualmente, cual sea su tamaño, será finito y por lo tanto numerable y entonces codificable a su vez en notación binaria. No obstante, la codificación presenta algunas complicaciones, por lo cual se utiliza una variación del sistema binario simple a uno llamado extendido que presenta la ventaja de insertar en el input, no sólo números, sino también operaciones u otros símbolos, pero esto no presenta ninguna complicación en el concepto.

Por ejemplo, la secuencia:
"5,13,0,1,1,4,"
equivale a la secuencia binaria simple:
"101,1101,0,1,1,100,"
que equivale a su vez a la secuencia binaria extendida:

"...000010010110101001011001101011010110100011000..."

que es aquella que nos importará a continuación y donde:

"0" es representado por 0
"1" es representado por 10
"," es representado por 110


Ejemplo: programa que multiplica por dos un número entero cualquiera:

Máquina de Turing: " x 2 "
Si el estado interno es:
Y si lee en el cuadrado:
entonces debe pasar al estado interno:
reescribir en el mismo cuadrado:
luego moverse a la izquierda o la derecha:
0
0
0
0
D
0
1
1
0
D
1
0
0
1
D
1
1
10
0
D
10
0
11
1
D
11
0
0
1
D (Stop)

Si le damos a la máquina el número "3," por ejemplo ("11,") en binario simple, es decir: "...0000101011000..." en binario expandido y donde 110 indica la "," o fin de la codificación del número "3"·- los ceros adelante y atrás dan cuenta de la "infinitud" de la cinta simplemente - entonces:

Sí Input = 3, = "...0000101011000..."

1 La máquina siempre se encuentra inicialmente en el estado interno "0". Mientras lee 0 y se encuentra en 0, el programa le indica desplazarse a la derecha, sin cambiar de estado y sin cambiar el valor 0 del cuadrado de lectura.

2 La máquina en su estado interno 0 se encuentra finalmente con un 1, lo cual le indica cambiar al estado interno 1, reemplazar el 1 leído por un 0 en el mismo cuadrado y luego desplazarse a la derecha:
"...0000001011000..."

3 Ahora la máquina, en su estado interno 1, lee 0 en la cinta, lo que le indica pasar al estado interno 0, inscribir 1 por encima del 0 y luego desplazarse a la derecha.

"...0000011011000..."

4 Estado interno 0, lectura 1, se le indica pasar al estado interno 1 e inscribir 0 y desplazarse a la derecha
"...0000010011000..."

5 Estado interno 1, lectura 0, se le indica pasar al estado interno 0 e inscribir 1 y desplazarse a la derecha
"...0000010111000..."

6 Estado interno 0, lectura 1, se le indica pasar al estado interno 1 e inscribir 0 y desplazarse a la derecha

"...0000010101000..."

7 Estado interno 1, lectura 1, se le indica pasar al estado interno 10 e inscribir 0 y desplazarse a la derecha
"...0000010100000..."

8 Estado interno 10, lectura 0, se le indica pasar al estado interno 11 e inscribir 1 y desplazarse a la derecha
"...0000010100100..."

9 Estado interno 11, lectura 0, se le indica pasar al estado interno 0 e inscribir 1 y desplazarse a la derecha y parar.
"...0000010100110..."

Entonces Output = 6, = "...0000010100110..."

Es decir "110," en binario simple.
Es decir "6," y ¡6 = 3x2!

Una vez que nos hemos familiarizado con la construcción de tales máquinas, no resulta difícil convencerse de que muchas operaciones aritméticas pueden ser igualmente llevadas a este concepto, y en realidad mucho más. Se pueden construir máquinas de Turing para las que no se especifica por adelantado la operación a llevar al cabo, sino que las instrucciones vienen dadas en la cinta, operaciones lógicas y otros tipos de tareas más complicadas de naturaleza algorítmica. Incluso, se puede construir una máquina de Turing para cualquier operación mecánica. Por lo que resulta incluso razonable definir una operación mecánica en matemáticas, como una operación que puede ser llevada a cabo por una máquina de Turing, interpelando términos como: algoritmo, computable, recursivo y efectivo.

Más sorprendente aun, es el concepto de máquina universal de Turing, el cual se basa en que toda lista de instrucciones de una máquina "particular" de Turing es codificable en una secuencia de 0s y 1s en una cinta que puede ser leída por otra máquina de Turing, más general. De esta manera, esta máquina general aprendería a comportarse como cualquier máquina particular de Turing. Así, si U es la máquina universal de Turing, entonces tenemos por ejemplo:

"101011011010010110101001110100101101011110100001110100101011101000101110
10100011010010110110101010101101010101101010100"
es la codificación de la máquina de Turing que le suma 1 a un número entero cualquiera,
y que puede ser leída por U, es decir, ¡un software para U!
Un programa que indica a U como sumarle 1 a cualquier número natural.

A partir de este concepto matemático, Turing logró demostrar que ¡no puede existir un algoritmo general para decidir todas las cuestiones matemáticas! Es decir que el problema planteado por Hilbert no tiene solución. Aún si no parece tan evidente, este resultado tiene importantes consecuencias en relación con la Inteligencia Artificial.

Pero: ¿Qué es la Inteligencia Artificial ? - IA

La inteligencia artificial (IA) tiene por objetivo el estudio y el análisis del comportamiento humano en los ámbitos de la comprensión, de la percepción, de la resolución de problemas y de la toma de decisiones con el fin de poder reproducirlos con la ayuda de un computador. De esta manera, las aplicaciones de la IA se sitúan principalmente en la simulación de actividades intelectuales del hombre. Es decir, imitar por medio de máquinas, normalmente electrónicas, tantas actividades mentales como sea posible, y quizás llegar a mejorar las capacidades humanas en estos aspectos.

Un programa de IA manipula informaciones simbólicas bajo la forma de conceptos, de objetos o reglas. En computación clásica solo se tratan datos de tipo numérico, mientras que los sistemas de IA utilizan métodos heurísticos ("heurística: arte de inventar", pequeño Larousse 1995) contrariamente a los métodos algorítmicos clásicos. La utilización de heurísticos permite abordar problemas sin solución algorítmica tales como la percepción, la concepción o la toma de decisiones y los problemas cuya solución algorítmica es muy compleja (como por ejemplo el juego de ajedrez).


Para ilustrar un poco las intenciones de la IA, imaginemos la construcción de un dispositivo, un robot, que llevara la contabilidad de lo que "le gusta" y de lo que "no le gusta" (en un contador digital) y que actuara en función de su puntuación, según algunos criterios de programación. Contaría positivo cuando se recarga, cuando detecta la presencia de algún dispositivo similar o luz, y contaría negativo en la medida en que se va descargando, que se va oscureciendo o que acumula tiempo de soledad.

En tal caso: ¿podríamos asegurar que siente placer o felicidad cuando su puntuación es "positiva" y dolor o hambre en caso contrario? El punto de vista de la inteligencia artificial (u operacional) diría que juzgamos esto simplemente a partir del modo en que se comporta el dispositivo. La "razonabilidad" de tal definición, derivaría del hecho de que esta es precisamente la forma en que reacciona un ser humano en relación con sentimientos de placer o dolor. De esta manera, la IA proporcionaría una vía hacia un tipo de entendimiento de las cualidades mentales tales como felicidad, dolor o hambre.

El cuerpo es un hardware y el espíritu un sorftware - Inteligencia Artificial Fuerte

Existe un punto de vista, conocido como la IA fuerte, que atribuye, además de ser inteligentes y de tener mentes, un cierto tipo de cualidades mentales al funcionamiento lógico de cualquier dispositivo computacional, incluso los dispositivos mecánicos más simples. Según sus defensores, la relación entre el espíritu y el cerebro es del mismo orden que aquella que existe entre el Software y el Hardware. Esta teoría es notablemente defendida por Daniel C. Dennett, en su libro "Consciousness Explained" (La conciencia Explicada, Black Bay/Little, Brown ed., 1995).

Hardware y Software

En la jerga científica de la ciencia de los computadores se utiliza el término de hardware para designar la maquinaria real de un computador (circuitos impresos, transistores, cables, memorias magnéticas, etc.), incluyendo la especificación completa del modo en que está todo interconectado. En correspondencia, el término de software se refiere a los diversos programas que pueden ser ejecutados en la máquina.

Uno de los notables descubrimientos al respecto se debe a Alan Turing, el cual enuncia que en realidad, cualquier máquina para la que el hardware ha alcanzado un cierto grado de complejidad y flexibilidad, es equivalente a cualquier otra máquina semejante. Esta equivalencia debe tomarse en el sentido de que para dos de estas máquinas, A y B, existirá un software específico tal que si se le proporciona a la máquina A, esta actuaría exactamente como si fuera la máquina B, y viceversa.


La teoría computacional del espíritu más influyente al respecto, es aquella donde el espíritu no es más que un programa computacional, contrariamente a la concepción que pretende que el computador es solo una herramienta útil para efectuar simulaciones del funcionamiento del espíritu o, en los términos del filósofo americano John Searl, Inteligencia Artificial Débil.

Can a Machine think ? - El Test de Turing

Durante las últimas décadas, la tecnología de computadores electrónicos ha hecho enormes progresos. Más aun, en las próximas se verán nuevos avances en velocidad, capacidad y diseño lógico. Los computadores ya pueden realizar tareas que hasta ahora habían estado reservadas exclusivamente al pensamiento humano, con una velocidad y precisión que superan con mucho a lo que un ser humano puede lograr.

Imaginemos la aparición de un nuevo computador, que sea además superior en tamaño de memoria de almacenamiento y de unidades lógicas, que el mismo cerebro humano ¿en qué nos deberíamos basar para decidir si nuestro "amigo" piensa o no realmente, dada la complejidad del mundo de sus circuitos integrados? ¿Bastaría simplemente pidiéndole que se comporte como lo haría un ser humano? ¿Qué significa comportarse como un ser humano? ¿Cómo se podría medir dicho comportamiento?

En 1950, Alan M. Turing ("computing machinery and intelligence", revista filosófica "mind", 1950) propone, en su famoso artículo: "Can a machine think?", la definición de una experiencia que permitiría calificar a una máquina de inteligente. La experiencia consiste en que un computador y algún voluntario humano se ocultan a la vista de algún (perspicaz) interrogador. El interrogador tiene que tratar de decidir cual de los dos es el computador y cual el ser humano, planteando preguntas a cada uno de ellos. Si en el curso de una serie de pruebas semejantes el experimentador es incapaz de determinar con exactitud la naturaleza de su interlocutor, se considera que el computador ha superado el test.

Es decir, en este caso, el que dé respuestas casi-humanas a cualquier pregunta que le podamos plantear o que las responda de una forma indistinguible a la de un ser humano ¿significa que podríamos estar de acuerdo en que realmente piensa?

Uno de los problemas que se plantean aquí, es el de la distinción entre la sintáctica y la semántica. En efecto, la lectura y la comprensión de una frase pasan por el reconocimiento de los caracteres y por la identificación de las palabras en su forma conjugada. Luego, el análisis sintáctico permite determinar cuales son las funciones gramaticales de cada palabra y la semántica interviene para decidir el sentido de toda la frase. Por ejemplo, observemos las frases siguientes:

1 El profesor mandó el alumno al Director porque quería portarse mal.
2 El profesor mandó el alumno al Director porque quería paz y tranquilidad.
3 El profesor mandó el alumno al Director porque quería verlo.

Claramente, ninguna de estas frases plantea problemas de comprensión. Sin embargo, en cada una de ellas el verbo conjugado "quería" puede referirse a cualquiera de los tres sujetos: alumno, profesor o director. Lo importante aquí es que ni la gramática, ni el sentido de las palabras es lo que nos obliga a vincular "quería" con "alumno", "profesor" o "director", sino que el conocimiento que tenemos del mundo real en el cual vivimos.

Imagínese el Siguiete Diálogo:

Interrogadora
"Esta mañana oí que un rinoceronte iba volando por el Mississipi en un globo rosa"
¿Que piensas de eso?
Computador
"Eso me suena bastante ridículo"
Interrogadora
¿De veras? mi tío lo hizo una vez, solo que era blanco con rayas
¿Que hay de ridículo en eso?

Sin una correcta comprensión, el computador se delataría con algo como: "los rinocerontes no pueden volar" o "los rinocerontes no tienen rayas".
(Penrose 1989)


¿Es concebible que un computador pueda llegar a superar dichas pruebas?
y si fuera así:

¿se podría concluir que dicho computador piensa, siente, comprende…?

Penrose resume el problema del test de Turing de la manera simple siguiente: "Creo que pedir al computador que imite a un ser humano de una forma tan fiel que resulte indistinguible en los aspectos relevantes es, en verdad, pedir al computador mas de lo necesario. Todo lo que yo pediría seria que nuestra perspicaz interrogadora se sintiera realmente convencida, por la naturaleza de las replicas del computador, de que hay una presencia consciente, aunque posiblemente extraña, subyacente a esta replicas. Aun si esto esta sometido a la subjetividad de la interrogadora"(Penrose 1989).