jueves, 25 de abril de 2013

Inteligencia artificial





La finalidad de la inteligencia artificial consiste en crear teorías y modelos que muestren la organización y funcionamiento de la inteligencia. Actualmente, el mayor esfuerzo en la búsqueda de la inteligencia artificial se centra en el desarrollo de sistemas de procesamientos de datos que sean capaces de imitar a la inteligencia humana, realizando tareas que requieran aprendizaje, solución de problemas y decisiones. A veces llamada inteligencia de máquina, la inteligencia artificial o AI (Artificial Intelligence) cubre una vasta gama de teorías y prácticas.
1.1 La base de la inteligencia artificial
La inteligencia artificial se basa en dos áreas de estudio: el cuerpo humano y el ordenador electrónico. Puesto que la meta es copiar la inteligencia humana, es necesario entenderla. Sin embargo, a pesar de todos los progresos en Neurología y Psicología, la inteligencia del hombre se conoce poco, exceptuando sus manifestaciones externas. Muchos estudiosos de la inteligencia artificial se han vuelto – para obtener su modelo de inteligencia – hacia el estudio de la Psicología cognoscitiva, que aborda la forma de percibir y pensar de los seres humanos.. Después comprueban sus teorías programando los ordenadores para simular los procesos cognoscitivos en el modelo. Otros investigadores intentan obtener teorías generales de la inteligencia que sean aplicables a cualquier sistema de inteligencia y no solo al del ser humano.
1.2 ¿Pueden pensar las máquinas?
En 1950 el matemático inglés Alan M. Turing publicó un ensayo que comenzaba así: “Quiero proponer una pregunta: ¿Pueden pensar las máquinas?.” Como la pregunta era demasiado vaga (¿Qué entendemos por “pensar”?), Turing desarrolló un experimento basado en un juego de salón en el que una persona formula a dos jugadores escondidos (un hombre y una mujer) preguntas que le servirán para descubrir cuál de los dos es la mujer. Turing propuso sustituir uno de los dos jugadores escondidos por una máquina inteligente capaz de conversar. Si el examinador, que se servía de un teletipo para comunicarse, no podían distinguir cuál de los dos jugadores era la máquina, ello evidenciaría – según Turing – que la máquina podía pensar. En la actualidad, este experimento de Turing podría ser superado, en situaciones limitadas, por muchos programas de ordenador estudiados para dialogar con el usuario.
Investigaciones acerca de la inteligencia artificial realizadas en la Universidad de Yale (EE.UU.) han llevado al desarrollo de programas de ordenador mediante los cuales éstos pueden aprender y razonar. Otros estudiosos de la inteligencia artificial están poniendo a punto sistemas para dotar a los ordenadores de capacidad visual y auditiva. Una importante área de investigación es la del lenguaje normal, que permite a los ordenadores comunicarse mediante lenguaje humano en lugar de hacerlo en lenguaje de máquina. Es decir, la mayoría de los ordenadores están programados para recibir e interpretar instrucciones de este tipo: S#DYR=48-56, LOC=AS NOT SW, EN=RALSTON”. Únicamente personas preparadas son capaces de comunicarse eficazmente de esta forma. Pero si un ordenador programado para gestionar la documentación de una compañía petrolífera pudiese entender la orden dactilografiada (traducción de la anterior) “Encuéntrame toda la documentación relativa a las perforaciones de los pozos de Arabia Saudita entre 1948 y 1956, pero únicamente la de los pozos en que trabajó Ralston, no los de la zona surocciodental del país”, muchas personas podrían utilizarlo.

1.3 Los fines de la IA

Las primeras investigaciones acerca de la inteligencia artificial estaban principalmente dirigidas al hallazgo de una técnica universal para la solución de problemas. Este intento a gran escala ha sido abandonado y las investigaciones actuales están dirigidas al diseño de numerosos programas para ordenadores capaces de imitar los procesos de toma de decisiones de expertos, como médicos, químicos, basados en los conocimientos de especialistas en cada materia, son ahora utilizados para diagnosticar enfermedades, identificar moléculas químicas, localizar yacimientos de minerales e incluso diseñar sistemas de fabricación. Investigaciones acerca de la percepción han sido aplicadas a los robots y se han diseñado algunos capaces de “ver”. La meta final consiste en crear un sistema capaz de reproducir todas las facetas de la inteligencia humana.


La Inteligencia Artificial "nació" en 1943 cuando Warren McCulloch y Walter Pitts propusieron un modelo de neurona del cerebro humano y animal. Estas neuronas nerviosas abstractas proporcionaron una representación simbólica de la actividad cerebral.
Más adelante, Norbert Wiener elaboró estas ideas junto con otras, dentro del mismo campo, que se llamó "cibernética"; de aquí nacería, sobre los años 50, la Inteligencia Artificial.
Los primeros investigadores de esta innovadora ciencia, tomaron como base la neurona formalizada de McCulloch y postulaban que:
“El cerebro es un solucionador inteligente de problemas, de modo que imitemos al cerebro”.
Pero si consideramos la enorme complejidad del mismo esto es ya prácticamente imposible, ni que mencionar que el hardware de la época ni el software estaban a la altura para realizar semejantes proyectos.
Se comenzó a considerar el pensamiento humano como una coordinación de tareas simples relacionadas entre sí mediante símbolos. Se llegaría a la realización de lo que ellos consideraban como los fundamentos de la solución inteligente de problemas, pero lo difícil estaba todavía sin empezar, unir entre sí estas actividades simples.
Es en los años 50 cuando se logra realizar un sistema que tuvo cierto éxito, se llamó el Perceptrón de Rossenblatt. Éste era un sistema visual de reconocimiento de patrones en el cual se asociaron esfuerzos para que se pudieran resolver una gama amplia de problemas, pero estas energías se diluyeron enseguida.
Fue en los años 60 cuando Alan Newell y Herbert Simon, que trabajando la demostración de teoremas y el ajedrez por ordenador logran crear un programa llamado GPS (General Problem Solver: solucionador general de problemas). Éste era un sistema en el que el usuario definía un entorno en función de una serie de objetos y los operadores que se podían aplicar sobre ellos. Este programa era capaz de trabajar con las torres de Hanoi, así como con criptoaritmética y otros problemas similares, operando, claro está, con microcosmos formalizados que representaban los parámetros dentro de los cuales se podían resolver problemas. Lo que no podía hacer el GPS era resolver problemas ni del mundo real, ni médicos ni tomar decisiones importantes. El GPS manejaba reglas heurísticas (aprender a partir de sus propios descubrimientos) que la conducían hasta el destino deseado mediante el método del ensayo y el error.
En los años 70, un equipo de investigadores dirigido por Edward Feigenbaum comenzó a elaborar un proyecto para resolver problemas de la vida cotidiana o que se centrara, al menos, en problemas más concretos. Así es como nació el sistema experto.
El primer sistema experto fue el denominado Dendral, un intérprete de espectrograma de masa construido en 1967, pero el más influyente resultaría ser el Mycin de 1974. El Mycin era capaz de diagnosticar trastornos en la sangre y recetar la correspondiente medicación, todo un logro en aquella época que incluso fueron utilizados en hospitales (como el Puff, variante de Mycin de uso común en el Pacific Medical Center de San Francisco, EEUU).
Ya en los años 80, se desarrollaron lenguajes especiales para utilizar con la Inteligencia Artificial, tales como el LISP o el PROLOG. Es en esta época cuando se desarrollan sistemas expertos más refinados, como por el ejemplo el EURISKO. Este programa perfecciona su propio cuerpo de reglas heurísticas automáticamente, por inducción.
Desarrollo Histórico (según Jackson, 1986)
1950-1965 Periodo “clásico”
  • Gestación (McColluck y Pitts, Shannon, Turing)
  • Inicio - reunión de Darmouth College en 1956 (Minsky, McCarthy)
  • Redes neuronales, robótica (Shakey)
  • Búsqueda en un espacio de estados, Heurísticas, LISP
  • Solucionador general de problemas (GPS) (Newell, Simon)
  • Juegos, prueba de teoremas
  • Limitaciones de pura búsqueda, explosión combinatoria.
1965-1975 Periodo “romántico”
  • Representación “general” del conocimiento.
  • Redes semánticas (Quillian)
  • Prototipos (frames) (Minsky)
  • Perceptrón (Minsky y Papert)
  • Lógica (Kowalski)
  • Mundo de bloques (SHDRLU) (Winograd)
  • Compresión de lenguaje, visión, robótica.
  • Dificultades de representación “general”, problemas de “juguete”.
1975-Hoy Periodo “moderno”. Inteligencia “especifica” vs. “general”
  • Representación explícita del conocimiento específico del dominio.
  • Sistemas expertos o basados en conocimiento.
  • Regreso de redes neuronales (Hopfield, Rumelhart, Hinton), algoritmos genéticos (Holland, Goldberg) Reconocimiento de voz (HMM), incertidumbre (RB, Lógica difusa), planeación, aprendizaje. Aplicaciones “reales” (medicina, finanzas, ingeniería, exploración, etc.).
  • Limitaciones: conocimiento “superficial”
Desarrollo Histórico (según Russell y Norvig, 1995):
Gestación (1943-1956):
Entusiasmo y grandes expectativas (1952-1969):
  • Samuel - checkers (1952)
  • McCarthy (1958): LISP: time sharing, Programs with common sense.
  • Minsky y McCarthy en MIT moldearon mucho del área.
·         Minsky, Evans, Student, Waltz, Winston, Winograd, etc.
·         Trabajo en RN: Hebb, Widrow, Rosenblatt
Dosis de realidad (1966-1974):
  • Simon predecía que en 10 años se tendría una máquina inteligente.
  • Predicciones similares en traducción automática y ajedrez.
  • Teoría de NP- completness.
  • Experimentos en machine evolution (ahora algoritmos genéticos; estaban bien fundados pero no produjeron nada.) (Friedberg, 1958)
  • Minsky y Papert Perceptrons (1969) (aunque irónicamente el mismo año se descubrió backpropagation (Bryson y Ho))
Sistemas basados en conocimiento (1969-1979):
  • Dendral, Mycin, HPP, Prospector, Winograd, SHDRLU, Shank (no hay sintáxis), frames, Prolog, Planner
IA como industria (1980-1988):
  • R1/XCON, proyecto de la quinta generación, shells y máquinas de LISP.
Regreso de redes neuronales (1986-presente):
  • Hopfield, Rumelhart y Hinton y descenso de los SE
Eventos recientes (1987-presente):
  • Cambio gradual hacia los técnicos y lejos de los rudos (implica cierto grado de madurez y estabilidad) ej., reconocimiento de voz (HMM), incertidumbre (Bayes), planeación (Tweak), robótica, aprendizaje (PAC), etc.


3. CARACTERÍSTICAS DE LA INTELIGENCIA ARTIFICIAL
1.     Una característica fundamental que distingue a los métodos de Inteligencia Artificial de los métodos numéricos es el uso de símbolos no matemáticos, aunque no es suficiente para distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases de datos, también procesan símbolos y no se considera que usen técnicas de Inteligencia Artificial.
  1. El comportamiento de los programas no es descrito explícitamente por el algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el problema particular presente. El programa especifica cómo encontrar la secuencia de pasos necesarios para resolver un problema dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explícitamente, cómo encontrar las variables de salida para cualquier variable dada de entrada (programa de procedimiento).
  2. El razonamiento basado en el conocimiento, implica que estos programas incorporan factores y relaciones del mundo real y del ámbito del conocimiento en que ellos operan. Al contrario de los programas para propósito específico, como los de contabilidad y cálculos científicos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dándole la capacidad de explicar discrepancias entre ellas.
  3. Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolución de conflictos en tareas orientadas a metas como en planificación, o el diagnóstico de tareas en un sistema del mundo real: con poca información, con una solución cercana y no necesariamente exacta.
La Inteligencia Artificial incluye varios campos de desarrollo tales como: la robótica, usada principalmente en el campo industrial; comprensión de lenguajes y traducción; visión en máquinas que distinguen formas y que se usan en líneas de ensamblaje; reconocimiento de palabras y aprendizaje de máquinas; sistemas computacionales expertos.
Los sistemas expertos, que reproducen el comportamiento humano en un estrecho ámbito del conocimiento, son programas tan variados como los que diagnostican infecciones en la sangre e indican un tratamiento, los que interpretan datos sismológicos en exploración geológica y los que configuran complejos equipos de alta tecnología.
Tales tareas reducen costos, reducen riesgos en la manipulación humana en áreas peligrosas, mejoran el desempeño del personal inexperto, y mejoran el control de calidad sobre todo en el ámbito comercial.
3.1 Programa fijo y programa modificado por el procesamiento
Existen grandes diferencias entre el funcionamiento de las máquinas y el del cerebro: algunas son evidenciadas en el esquema bajo estas líneas. Las máquinas y el cerebro se diferencian en muchos aspectos: el primero es ligado a la arquitectura del sistema de memoria y a la elaboración realizada por la inteligencia natural, que influye en los programas sucesivos al ser almacenada en la memoria que mantiene disponibles todos los hechos que se han ido acumulando a lo largo del tiempo. Abajo a la izquierda se muestra el esquema de funcionamiento de un sistema artificial: procesa datos que recibe del exterior y que le son presentados ya seleccionados. Los procesa mediante un programa fijo, siempre elegido y construido por el hombre, es decir, desde el exterior.












Este programa es sencillo comparado con los utilizados por el cerebro humano. A lo largo del tiempo, un mismo programa que procese los mismos datos obtendrá siempre los mismos resultados. Sin embargo, este sistema es muy veloz cuando se le piden secuencias de operaciones. Contrariamente, el cerebro humano es capaz de procesar al mismo tiempo todas las informaciones contenidas en una imagen, y el resultado de dicho procesamiento puede servir para modificar el programa, que para posteriores utilizaciones será más completo.  La observación de una imagen  muestra la diferencia fundamental entre el modo de procesar los datos del cerebro humano y el de la máquina. El cerebro humano no actúa teniendo en cuenta un programa prefijado, sino más bien uno de naturaleza variable en el tiempo; las variaciones dependen de los resultados procedentes. De hecho, el cerebro tiene la propiedad de recordar imágenes similares; una vez vista la figura, extrae de su memoria imágenes similares previamente almacenadas y los resultados de los análisis realizados sobre ellas. Estos resultados sirven para mejorar el programa según el cual sacará conclusiones aplicadas al examen de la figura.






Diferentes teorías:
1.     Construir réplicas de la compleja red neuronal del cerebro humano (bottom-up).
  1. Intentar imitar el comportamiento del cerebro humano con un computador (top-down).
4.1 Símbolos vs. Métodos Numéricos
El primer período de la Inteligencia Artificial, llamado sub-simbólico, data de aproximadamente 1950 a 1965. Este período utilizó representaciones numéricas (o sub-simbólicas) del conocimiento. Aunque la mayor parte de los libros de Inteligencia Artificial enfatizan el trabajo realizado por Rosenblatt y Widrow con redes neuronales durante este período, la realidad es que otra importante escuela sub-simbólica data también de la misma época y estos son los algoritmos evolutivos.
La escuela clásica dentro de la Inteligencia Artificial, utiliza representaciones simbólicas basadas en un número finito de primitivas y de reglas para la manipulación de símbolos. El período simbólico se considera aproximadamente comprendido entre 1962 y 1975, seguido por un período dominado por los sistemas basados en el conocimiento de 1976 a 1988. Sin embargo, en este segundo período las representaciones simbólicas (por ejemplo, redes semánticas, lógica de predicados, etc.) siguieron siendo parte central de dichos sistemas.
La Programación Lógica tiene sus orígenes más cercanos en los trabajos de J. A. Robinson que propone en 1965 una regla de inferencia a la que llama resolución, mediante la cual la demostración de un teorema puede ser llevada a cabo de manera automática.
La resolución es una regla que se aplica sobre cierto tipo de fórmulas del Cálculo de Predicados de Primer Orden, llamadas cláusulas y la demostración de teoremas bajo esta regla de inferencia se lleva a cabo por reducción al absurdo.
Otros trabajos importantes de esa época que influyeron en la programación lógica, fueron los de Loveland, Kowalski y Green, que diseña un probador de teoremas que extrae de la prueba el valor de las variables para las cuales el teorema es válido.
Estos mecanismos de prueba fueron trabajados con mucho entusiasmo durante una época, pero, por su ineficiencia, fueron relegados hasta el nacimiento de Prolog, que surge en 1971 en la Universidad de Marsella, Francia.
La Lógica de Primer Orden, es uno de los formalismos más utilizados para representar conocimiento en Inteligencia Artificial. La Lógica cuenta con un lenguaje formal mediante el cual es posible representar fórmulas llamadas axiomas, que permiten describir fragmentos del conocimiento y, además consta de un conjunto de reglas de inferencia que aplicadas a los axiomas, permiten derivar nuevo conocimiento.
4.2 Alfabeto del Lenguaje de la Lógica de Primer Orden
Contiene dos tipos de símbolos:
a.     Símbolos lógicos, entre los que se encuentran los símbolos de constantes proposicionales true y false; los símbolos de operadores proposicionales para la negación, la conjunción, la disyunción y las implicaciones (=>, <=); los símbolos de operadores de cuantificación como el cuantificador universal; el cuantificador existencial; y los símbolos auxiliares de escritura como corchetes [,], paréntesis (,) y coma.
  1. Símbolos no lógicos, agrupados en el conjunto de símbolos constantes; el conjunto de símbolos de variables individuales; el conjunto de símbolos de funciones n-arias; y el conjunto de símbolos de relaciones n-arias.
A partir de estos símbolos se construyen las expresiones válidas en el Lenguaje de Primer Orden: los términos y las fórmulas.
Un término es cualquiera de las tres expresiones siguientes: una constante, por ejemplo, el número "100", la palabra "alfredo" y la letra "c"; o una variable, por ejemplo, "X" o bien una expresión de la forma "f(t1,...,tn)" donde "f" es un símbolo de función n-aria y t1,...,tn son términos. Ejemplos de funciones son: f(100,X), padre(Y) y sucesor(X).
Las fórmulas atómicas o elementales son expresiones de la forma R(t1,...,tn) donde R es un símbolo de relación n-aria y t1,...,tn son términos.
Ejemplos de fórmulas son:
positivo(3),not(igual(4,doble(2))), recetar(X,aspirina)<=tiene(X,fiebre), tiene(X,cefalea).
Esta última establece una regla que dice que, si X tiene fiebre y cefalea (dolor de cabeza), X debe tomar una aspirina.
El Lenguaje de Primer Orden posee un amplio poder de expresión, los términos permiten nombrar los objetos del universo, mientras que las fórmulas permiten afirmar o negar propiedades de éstos o bien establecen las relaciones entre los objetos del universo.
Puede decirse que la Programación Lógica utiliza la Lógica de Primer Orden como lenguaje de programación. Prolog es un ejemplo de lenguaje basado en la Lógica de Primer Orden y aunque toma su nombre de este término ("PROgramming in LOGic"), no abarca toda la riqueza de la Lógica de Primer Orden para resolver problemas, pues está restringido al uso de cierta clase de fórmulas denominadas cláusulas definidas o cláusulas de Horn.
Un programa lógico está formado por un conjunto finito de cláusulas de programa que son hechos o reglas. Por ejemplo:
padre(luis,miguel). hecho
padre(miguel,jose). hecho
padre(jose,juan). hecho
abuelo(X,Y):-padre(X,Z), padre(Z,Y). regla
Este programa está formado por cuatro cláusulas de programa, las tres primeras son del tipo hecho y definen la relación padre/2 y la cuarta una regla que define la relación abuelo/2. Nótese el uso de las variables X,Y y Z en esta cláusula, las cuales permiten definir de manera general en Prolog la relación "ser abuelo de", pues la lectura declarativa de dicha cláusula es la siguiente: "Para cualesquiera X,Y,Z se cumple que: X abuelo de Y, si X padre de Z y Z padre de Y".
En Prolog es posible hacer preguntas sobre objetos y relaciones del dominio y estas preguntas se formulan como objetivos o metas, que son evaluadas por el intérprete de Prolog utilizando su mecanismo de inferencia interno, el cual determina si la meta a demostrar es una consecuencia lógica del programa, aplicando reglas de deducción para obtener la respuesta.
Por ejemplo, del programa anterior, utilizando la cláusula de tipo meta ?abuelo(X,juan), para preguntar ¿quién es el abuelo de Juan? o bien ¿quiénes son los abuelos de Juan?, es posible deducir que Luis es abuelo de Juan, aunque implícitamente no existe en el programa ningún hecho que así lo afirme.


En este ejemplo de análisis de oraciones, podemos observar de qué manera se analiza una oración ingresada por el usuario y cómo el ordenador lo traduce en un lenguaje lógico de primer orden.
En este caso la ejecución del programa, para dicha meta, arrojaría como resultado que X=luis.
El método de deducción utilizado por Prolog, para dar respuesta a los objetivos planteados, se basa en el uso de una única regla de inferencia: el Principio de Resolución.
Los primeros trabajos de prueba automática de teoremas utilizaban la resolución, aplicada a cláusulas cualesquiera, pero el problema de las deducciones con cláusulas generales es el gran número de combinaciones posibles para llevar a cabo las resoluciones.
Por ello Prolog restringe el conjunto de cláusulas, lo que le permite llevar a cabo una prueba dirigida y, en la mayoría de los casos, con un universo de posibilidades explorable en tiempo de ejecución.


5.1 Tipos de Algoritmos Utilizados
Cuando una tarea se realiza por medio de un algoritmo perfectamente definido de almacenamiento, clasificación o cálculo, lo puede hacer un computador. Este concepto de algoritmo, secuencial, fijo y de determinadas operaciones, es incapaz de manejar problemas donde el camino del razonamiento es variable y donde deben afrontarse situaciones diversas sin haber sido especificadas.
La Inteligencia Artificial hace uso de un tipo de lenguaje diferente como es el caso de LISP y PROLOG.
En 1932, Cannon visualizó la evolución natural como un proceso de aprendizaje. Alan Turing reconoció, en 1950, que debe haber una conexión obvia entre el aprendizaje de máquina y la evolución, y señaló que se podrían desarrollar programas para jugar ajedrez usando esta técnica. Campbell conjeturó en 1960 que en todos los procesos que llevan a la expansión del conocimiento, se involucra un proceso ciego de variación y supervivencia selectiva.
Los primeros intentos de aplicar de manera formal la teoría de la evolución, a problemas prácticos de ingeniería, apareció en las áreas de control de procesos estadísticos, aprendizaje de máquina y optimización de funciones. Tal vez el primer intento serio de este tipo se dio en el trabajo que realizaron Box y sus colegas en 1957, en el desarrollo de una técnica que denominaron operación evolutiva, la cual se aplicó a una planta de manufactura, y que se implanto sobre la base de los votos de un comité de jefes técnicos. Bajo este esquema, la calidad del producto avanzaba a través de mutaciones aleatorias y la selección era determinada por el comité.
Por su parte, Friedberg intentó, en 1958, hacer que un programa en lenguaje máquina se mejorara a sí mismo, seleccionando instrucciones que se asociaran más frecuentemente con un resultado exitoso. Aunque Friedberg nunca mencionó explícitamente estar simulando la evolución natural, esa es la interpretación más comúnmente aceptada de su trabajo, y a pesar de que tuvo cierto éxito evolucionando manipuladores de bits y determinando las interconexiones de una caja negra de 1400 terminales, la comunidad de Inteligencia Artificial de la época prestó poca atención a su trabajo. Por ejemplo, Minsky lo criticó duramente, argumentando que una búsqueda puramente aleatoria era mucho mejor que el algoritmo de Friedberg.
El trabajo de Bremermann, en 1958, se enfocó más a la optimización, introduciendo el importante manejo de un valor de aptitud, y definiendo a un individuo como una cadena de símbolos binarios (unos y ceros). Bremermann advirtió, acertadamente, que la mutación jugaba un papel importante en la evolución, pues impedía el estancamiento en mínimos locales. Aunque muchas de sus ideas se usan hoy en día, Bremermann cometió el error de tratar de optimizar funciones lineales y convexas, obteniendo resultados decepcionantes, pues sus algoritmos evolutivos tenían que ser complementados con otras heurísticas para converger en una solución. Hoy sabemos que los algoritmos evolutivos difícilmente pueden competir con las técnicas tradicionales de optimización en esos dominios.
Barricelli ofreció, en 1954, una de las primeras simulaciones que usaba principios evolutivos, utilizando los mismos procedimientos generales que se usan hoy en día en la disciplina conocida como vida artificial. Sin embargo, en este trabajo, así como el que Reed realizó posteriormente en 1967, se concluyó que la cruza no parecía mejorar la velocidad de la adaptación selectiva, y el operador primordial era la mutación.
Fue Fogel el que introdujo la primera técnica evolutiva que realmente funcionó más o menos dentro de los lineamientos actuales de la computación evolutiva. Su programación evolutiva consistía en hacer evolucionar autómatas de estados finitos por medio de mutaciones. Fogel introdujo los importantes conceptos de población y selección, y aunque las revisiones iniciales de su trabajo fueron favorables, algunos investigadores, como Solomonoff, enfatizaron que el método de Fogel no debía verse en su estado actual (en 1966) como algo particularmente útil para resolver problemas, a excepción de los más simples posibles. Solomonoff vio a la programación evolutiva como una especie de búsqueda escalando la colina modelada mediante autómatas, y otros investigadores como Holland, Kieras, Rada y Lenat compartieron esa opinión.
Otra técnica evolutiva dirigida particularmente a la optimización de funciones continuas de alta complejidad se desarrolló en Alemania, en 1965, por Rechenberg y Schwefel. Esta técnica, llamada estrategia evolutiva, se utilizó inicialmente para resolver problemas de ingeniería que desafiaban a los métodos de optimización tradicionales, como el gradiente conjugado, y se basa en la modificación sistemática de un vector de números reales (representando las variables de decisión del problema) mediante operadores probabilísticos, usando ciertos criterios para decidir en qué dirección dirigir la búsqueda. La estrategia evolutiva utiliza como operador principal a la mutación, y en su versión más reciente usa la cruza como operador secundario.
Aunque el australiano Fraser propuso, desde fines de los 50, un procedimiento muy similar al que John Holland llamó planes evolutivos a fines de los 60, es al segundo al que se le suele atribuir la creación de la técnica que se conoce como algoritmo genético, a raíz de que Holland publicara el libro "Adaptation in Natural and Artificial Systems" en 1975.
5.1.1 Algoritmo Genético
La principal diferencia del algoritmo genético con las técnicas antes mencionadas, es que utiliza la cruza como operador principal y a la mutación como operador secundario (e incluso opcional). El algoritmo genético, al igual que las redes neuronales, funciona como una caja negra que recibe ciertas entradas y produce (tras una cantidad de tiempo indeterminada) las salidas deseadas. Sin embargo, a diferencia de éstas, los algoritmos genéticos no necesitan entrenarse con ejemplos de ningún tipo, sino que son capaces de generar sus propios ejemplos y contraejemplos que guíen la evolución a partir de poblaciones iniciales totalmente aleatorias.
Los mecanismos de selección del más apto y de reproducción sexual del algoritmo genético, son los encargados de preservar las características más adecuadas de cada individuo a fin de hacer converger a la población en soluciones óptimas.
Los algoritmos genéticos se distinguen también por no quedar atrapados fácilmente en mínimos locales, como la mayor parte de las técnicas de búsqueda clásicas, además de usar operadores probabilísticos más robustos que los operadores determinísticos, que las otras técnicas suelen usar.
No obstante, siendo una heurística, tampoco pueden garantizar encontrar siempre la solución óptima, si bien la experiencia acumulada hasta la fecha parece demostrar que, cuando se utilizan apropiadamente, pueden proporcionar soluciones muy aceptables y, en la mayoría de los casos, superiores a las encontradas con otras técnicas de búsqueda y optimización.
Aunque aún atacados por algunos sectores de la comunidad de Inteligencia Artificial, los algoritmos genéticos, al igual que las redes neuronales, se han ido ganando poco a poco, y sobre la base de la efectividad de sus resultados en aplicaciones prácticas, el reconocimiento de los investigadores como una técnica efectiva en problemas de gran complejidad, como lo demuestra un número creciente de conferencias y publicaciones especializadas alrededor del mundo, en los últimos años.
5.2 Sistemas Basados en Conocimiento
Los métodos generales desarrollados para la resolución de problemas y técnicas de búsqueda al inicio de la era de la Inteligencia Artificial demostraron no ser suficientes para resolver los problemas orientados a las aplicaciones, ni fueron capaces de satisfacer los difíciles requerimientos de la investigación.
A este conjunto de métodos, procedimientos y técnicas, se lo conoce como Inteligencia Artificial Débil. La principal conclusión que se derivó de este trabajo inicial fue que los problemas difíciles sólo podrían ser resueltos con la ayuda del conocimiento específico acerca del dominio del problema.
La aplicación de estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en Conocimiento (Knowledge Based Systems) y al aparecimiento de la Ingeniería Cognoscitiva, como una rama de la Inteligencia Artificial, que estudia los sistemas basados en el conocimiento. La definición de un sistema basado en conocimiento puede ser la siguiente:
Componentes: software de interfaz, base de datos, programa computacional.
Una relativamente nueva categoría de sistemas de información orientada al servicio es el sistema experto, llamado así porque su base de datos guarda una descripción de habilidades en la toma de decisiones de experiencias humanas en un estrecho dominio de procedimientos, tales como interpretación médica de imagen, impuestos, diseño de piping, configuración de hardware en un sistema de computadores, equipamiento para reparar malfuncionamientos o, en la preparación de cerveza.
La motivación para construir sistemas expertos es el deseo de replicar el escaso, in estructurado y quizás el pobremente documentado conocimiento empírico de especialistas que de este modo puede ser rápidamente usado por otros.
Un programa computacional que usa inteligencia artificial resuelve problemas en un dominio especializado que ordinariamente requiere experiencia humana.
El primer sistema experto fue desarrollado en 1965 por Edward Feigenbaum y Joshua Lederberg de la Universidad de Standford en California, EEUU, y se lo llamó Dendral. Fue diseñado para analizar componentes químicos.
Dado que cada condición que puede ser encontrada puede ser descrita por una regla, los sistemas expertos basados en reglas no pueden manejar eventos no anticipados, pero pueden evolucionar con el uso, y permanece limitado a un estrecho dominio de problemas.
Otra variante de sistemas expertos, uno que no posee esta limitación, emplea una base de conocimiento que consiste de descripciones estructuradas de situaciones, de problemas del mundo real y de decisiones actualmente hechas por expertos humanos.
En medicina, por ejemplo, el registro de un paciente contiene descripciones de datos personales, exámenes físicos y de laboratorio, diagnóstico clínico, tratamiento propuesto, y los resultados de tales tratamientos.
Dada una gran base de datos con tales registros en una especialidad médica, el médico puede indagar acerca de eventos análogos a los relacionados con el paciente. Esto en contraste con el sistema que idealmente intenta reemplazar al ser humano, ya que en casos como estos sólo podría usarse este tipo de conocimiento como una herramienta que ayuda en la toma de decisiones.
El software requerido para este tipo de sistemas se ha ido complicando con el tiempo ya que su desarrollo demanda tiempo, un buen equipo de programadores y un buen producto final.
Se percibe este trabajo como una tarea para el ingeniero y consiste de:
·         Identificación y análisis de los requerimientos del usuario.
·         Desarrollo de las especificaciones del sistema (software y hardware).
·         Diseño del software.
·         Implementación
·         Testeo
·         Mantenimiento
Tareas típicas para sistemas expertos involucran clasificación, diagnóstico, monitoreo, diseño, inventario y planificación para esfuerzos especializados.
5.2.1 Niveles de conocimiento
A pesar de no disponerse de un modelo general comúnmente aceptado, existe unanimidad en cuanto a la aprobación de tres niveles distintos de conocimientos, a los que corresponde tres fases diferentes de estudio y sobre los que se basa, en general, la concepción de un sistema experto. Esos niveles son el de estructuración, el conceptual y el cognoscitivo. El primero es el que define el mecanismo que genera la certeza. Este mecanismo varía según el campo al que se aplique el sistema experto, ya que las evidencias asociadas a cada campo no son idénticas. La determinación del nivel de estructuración permite definir un formalismo de representación del conocimiento así como un mecanismo adecuado de deducción. El nivel conceptual es el que determina el conjunto de los conceptos que emplea el experto humano en la materia; cada uno de ellos corresponde a un nudo del razonamiento del experto. Se le asocia un descriptor que se experimenta con el formalismo correspondiente al nivel de estructuración. Finalmente, el nivel cognoscitivo corresponde al conjunto de los conocimientos que el experto humano pone en práctica para la resolución del problema planteado. Este conjunto de conocimientos debe poder traducirse al lenguaje definido mediante el formalismo de representación del conocimiento adoptado. En cuanto al desarrollo actual de la investigación en el campo de los sistemas expertos, la primera fase corresponde al desarrollo de sistemas y programas que traten directamente el lenguaje natural, si bien persisten todavía dos escollos importantes. Por un lado, el problema de cómo emplear de un modo eficaz una gran cantidad de información sin necesidad de echar mano de la combinatoria; es decir, cómo conseguir un sistema dotado de conocimientos (metaconocimientos) que le permitan utilizar los conocimientos del sistema y que, a su vez, le permitan deducir automáticamente nuevos conocimientos, ya que no cabe pensar en la reunión de todos los conocimientos necesarios en casos de campos tan sumamente vastos como el del diagnóstico en la medicina.
5.3 Sistemas Expertos
Los sistemas expertos se basan en la simulación del razonamiento humano. El razonamiento humano tiene para ellos, un doble interés: por una parte, el del análisis del razonamiento que seguiría un experto humano en la materia a fin de poder codificarlo mediante el empleo de un determinado lenguaje informático; por otra, la síntesis artificial, de tipo mecánico, de los razonamientos de manera que éstos sean semejantes a los empleados por el experto humano en la resolución de la cuestión planteada.
Estos dos campos de interés han conducido a los investigadores que trabajan en el campo de la inteligencia artificial (de la cual los sistemas expertos son un campo preferente) a intentar establecer una metodología que permita verificar el intercambio con los expertos humanos y aislar los diversos tipos de razonamiento existentes (inductivo, deductivo, formal, etc.), así como construir los elementos necesarios para modelizarlos. Los sistemas expertos son, por lo tanto, intermediarios entre el experto humano, que transmite sus conocimientos al sistema, y el usuario de dicho sistema, que lo emplea para resolver los problemas que se le plantean con la competencia de un especialista en la materia y que, además, puede adquirir una destreza semejante a la del experto gracias a la observación del modo de actuar de la máquina. Los sistemas expertos son, pues, simultáneamente, un sistema de ejecución y un sistema de transmisión del conocimiento. Asimismo, los sistemas expertos se definen mediante su arquitectura; obtienen, por lo tanto, una realidad palpable. Mientras que en las operaciones de programación clásicas se diferencia únicamente entre el propio programa y los datos, en el caso de los sistemas expertos se diferencian tres componentes principales. Son los siguientes:
La base de conocimientos aloja la totalidad de las informaciones específicas relativas al campo del saber deseado. Está escrita en un lenguaje específico de representación de los conocimientos que contiene y en el cual el experto puede definir su propio vocabulario técnico.
A la inversa de lo que sucede en los programas clásicos, en la base de conocimientos las informaciones entran tal como llegan, ya que el orden no influye en los resultados obtenidos. Sucede así porque cada elemento de conocimiento es comprensible por sí mismo tomado de forma aislada y, por lo tanto, no es necesario referirse al contexto en el cual está inserto. La información se representa, por regla general, mediante reglas de producción o redes semánticas. Las reglas de producción constituyen el método más utilizado para construir bases de conocimientos en los sistemas expertos. Llamadas también implicaciones lógicas, su estructura es la siguiente: para unas ciertas causas, unos efectos; o, para determinadas condiciones, ciertas consecuencias. Junto a cada regla, se almacena también su porcentaje en forma de probabilidad. Éste indica, mediante un tanto por ciento, el grado de certeza de las consecuencias que se obtienen como resultado de la aplicación de la regla de producción. En cuanto a las redes semánticas, se trata de un método de construcción de bases de conocimientos en el cual los conocimientos se muestran mediante un grafo en el que los vértices representan los conceptos u objetos y las aristas indican las relaciones entre ellos.
Además el sistema dispone de la llamada base de hechos, que alberga los datos propios correspondientes a los problemas que se desea tratar con la ayuda del sistema. Asimismo, a pesar de ser la memoria de trabajo, la base de hechos puede desempeñar el papel de memoria auxiliar. La memoria de trabajo memoriza todos los resultados intermedios, permitiendo conservar el rastro de los razonamientos llevados a cabo. Puede, por eso, emplearse para explicar el origen de las informaciones deducidas por el sistema en el transcurso de una sesión de trabajo o para llevar a cabo la descripción del comportamiento del propio sistema experto. Al principio del período de trabajo, la base de hechos dispone únicamente de los datos que le ha introducido el usuario del sistema, pero, a medida que va actuando el motor de inferencias, contiene las cadenas de inducciones y deducciones que el sistema forma al aplicar las reglas para obtener las conclusiones buscadas.
El último elemento, el motor de inferencias, es un programa que, mediante el empleo de los conocimientos puede resolver el problema que está especificado. Lo resuelve gracias a los datos que contiene la base de hechos del sistema experto. Por regla general, el tipo de reglas que forman la base de conocimientos es tal que, si A es válido, puede deducirse B como conclusión. En este caso, la tarea que lleva a cabo el motor de inferencias es la de seleccionar, validar y activar algunas reglas que permiten obtener finalmente la solución correspondiente al problema planteado.
El sistema experto establecido se compone, por lo tanto, de dos tipos bien diferenciados de elementos, los propios del campo de los expertos relacionados con el problema concreto (es decir, la base de conocimientos y la base de hechos) y el que se puede aplicar de forma general a una gran variedad de problemas de diversos campos (como el caso del motor de inferencias). Sin embargo, el motor de inferencias no es un mecanismo universal de deducción, ya que hay dos tipos diverso: los que emplean el razonamiento aproximativo (para el cual el resultado puede ser erróneo) y aquellos que emplean un tipo de razonamiento capaz de obtener un resultado (si llegan a él), con toda seguridad, verdadero.
5.3.1 Fases del proceso
Sin embargo, a pesar de no existir una metodología generalmente aceptada en cuanto a la concepción de los sistemas expertos, se admite por regla general un esquema que consta de tres fases. En la primera fase, la discusión con el experto o los expertos humanos en la cual se intenta, por un lado, delimitar el problema a resolver y, por el otro, los modos de razonamiento que se emplearán para su solución. La segunda fase comprende el desglose del formalismo de expresión del conocimiento y la determinación del motor de inferencias adecuado a dicho formalismo. Por último, la tercera etapa, corresponde a la creación de la base de conocimientos (en colaboración con los expertos humanos), así como a la comprobación y ajuste del funcionamiento del sistema experto mediante el empleo de ejemplos.


6. LA VIDA ARTIFICIAL
La Vida Artificial se puede considerar como la parte de la Inteligencia Artificial que pretende reproducir los procesos y comportamientos típicos de los seres vivos. También podemos definirla como el intento de crear vida, o algo parecido a la vida, mediante la combinación de símbolos (datos) y procesos de símbolos (programas) independientemente del soporte físico de estos símbolos y procesos.
Por una parte están los intentos "hardware" de emulación de vida. Por ejemplo, es posible construir un pequeño robot con aspecto de ratón capaz de encontrar la salida de un laberinto.
Por otra parte están las simulaciones "software". Éstas tienen la ventaja de que permiten construir un gran número de seres vivos y entornos en los que estos existen, de manera que es más fácil estudiar comportamientos sociales.
Podemos construir los seres artificiales con el objetivo de solucionar los problemas que a nosotros nos interesen, y que aprendan o colaboren entre ellos hasta conseguir el resultado deseado.
De esta forma, se puede considerar la Vida Artificial (VA) como un paso más allá después de la Programación Orientada a Objetos (POO), y sin embargo, siendo la VA un caso particular de la POO. Es decir, si un objeto es un elemento que encapsula datos y procedimientos, una entidad artificial es un elemento que encapsula un objetivo, unos sentidos, unas acciones y unas creencias. A esto le podemos llamar Programación Orientada a Agentes.
En muchos campos de estudio se plantea la posibilidad de realizar simulaciones para intentar predecir o ayudar a la toma de decisiones acerca de ciertos aspectos del mundo real. Hay dos formas de enfocar estas simulaciones.
La primera de ellas se basa en la observación de la realidad, centrando la atención en los aspectos "a más alto nivel", es decir, precisamente en los que se pretenden predecir o modificar, y también en aquellos que aparentemente están más relacionados con éstos. El cerebro humano elabora una teoría acerca de cómo todos estos aspectos varían. Esta teoría se formaliza en fórmulas, reglas o algo parecido, y se simula en un ordenador ante diversas condiciones iniciales. Se observa si el modelo, ante datos históricos del pasado, ofrece salidas (resultados) que se ajustan a lo esperado según los datos históricos, y en ese caso, se utiliza para la toma de decisiones en el futuro, ajustando continuamente el modelo según el error obtenido. En caso de obtener resultados muy alejados de la realidad, se revisa la teoría inicial, reescribiéndola por completo, ajustando ciertos aspectos o detallando con mayor nivel de profundidad los que parecen ser generalizaciones excesivas.
La segunda de ellas se basa en la observación de la realidad, centrando la atención en los aspectos "a más bajo nivel" del problema, buscando los aspectos más sencillos y a la vez con una alta multiplicidad. Es decir, el cerebro humano identifica aquellas características sencillas que están presentes en muchas entidades del problema. Mediante fórmulas, reglas o algo parecido, se define un tipo genérico de entidad que admita estas características, y en un ordenador se realiza una simulación basada en la generación de un alto número de estas entidades capaces de interactuar entre sí, con la esperanza en que de esta interacción emerja el comportamiento complejo que se pretende estudiar. Inicialmente los agentes genéricos se definen tan sencillos como sea posible sin dejar de ajustarse al problema. Se observa si el modelo, ante datos históricos del pasado, ofrece salidas (resultados) que se ajustan a lo esperado según los datos históricos, y en ese caso, se utiliza para la toma de decisiones en el futuro, ajustando continuamente el modelo según el error obtenido. En caso de obtener resultados muy alejados de la realidad, se deduce que la definición del agente genérico (más su entorno, etc.) es demasiado sencilla y se va complicando, añadiendo detalles hasta ajustarse suficientemente a la realidad.
6.1 Cuestión Filosófica de la Vida Artificial


La Vida Artificial también nos ofrece una "visión privilegiada" de nuestra realidad. No hace falta que las simulaciones por ordenador sean todavía más complejas, para poder tener el derecho a preguntarnos acerca de si nuestro propio mundo no será también una "simulación dentro de un cosmo-ordenador". De hecho, esta pregunta se ha planteado, desde tiempos remotos, de infinidad de maneras.
Si los ordenadores son capaces de simular universos artificiales poblados por organismos que mediante la reproducción, las mutaciones y la selección natural, evolucionan y se hacen cada vez más inteligentes y conscientes, podríamos interpretar nuestro propio mundo como un "superordenador" donde nosotros mismos somos los "seres artificiales" que lo habitan, siguiendo el curso de evolución que El Programador ha deseado.
En el caso de que existiera un creador y una intencionalidad, es decir, si El Programador que nos ha creado lo ha hecho con algún objetivo, no sería extraño que ese mismo programador hubiera implementado mecanismos para que sus "entidades" (nosotros) no escapen a su control. Por ejemplo, podría haber marcado límites a su movimiento (¿la velocidad de la luz? ¿la gravedad?) en su ordenador (nuestro universo) ...¿O tal vez el límite de 300.000 km/seg corresponde con los MHz del ordenador en el que vivimos?.
Pero las limitaciones que el programador fija para controlar a sus entidades pueden no ser suficientes. Algunos programadores de Vida Artificial quedan a menudo gratamente sorprendidos por el inesperado comportamiento de sus pequeñas creaciones, más inteligentes y capaces de lo que cabría esperar en un primer momento.
Además, los "bugs" (errores) en programación son probablemente una constante en todos los universos, dimensiones y realidades posibles, así que tal vez el "programador" haya dejado algún hueco por donde podamos colarnos; es decir, que es posible que en nuestro mundo existan acciones, comportamientos, o razonamientos con efectos maravillosos, que están ahí, accesibles, pero que aún nadie ha realizado, ya sea por ignorancia, mala suerte, o porque provocan la muerte a quien llega a adquirirlos. Un ejemplo de esto último se encuentra en "Creced y Multiplicaos", de Isaac Asimov.
6.2 Perspectivas Futuras de la Vida Artificial
Con poco más de diez años de antigüedad, la Vida Artificial se ha convertido en un punto de referencia sólido de la ciencia actual.
En septiembre de 1987, 160 científicos en informática, física, biología y otras disciplinas se reunieron en el Laboratorio Nacional de Los Álamos para la primera conferencia internacional sobre Vida Artificial. En aquella conferencia se definieron los principios básicos que han marcado la pauta desde entonces en la investigación de esta disciplina.
Un concepto básico dentro de este campo es el de comportamiento emergente. El comportamiento emergente aparece cuando se puede generar un sistema complejo a partir de reglas sencillas. Para que se dé este comportamiento se requiere que el sistema en cuestión sea reiterativo, es decir, que el mismo proceso se repita de forma continua y además que las ecuaciones matemáticas que definen el comportamiento de cada paso sean no lineales.
Por otra parte, un autómata celular consiste en un espacio n-dimensional dividido en un conjunto de celdas, de forma que cada celda puede encontrarse en dos o más estados, dependiendo de un conjunto de reglas que especifican el estado futuro de cada celda en función del estado de las celdas que le rodean.
Hay dos posturas dentro de la Vida Artificial: la fuerte y la débil.
Para los que apoyan la postura débil, sus modelos son solamente representaciones simbólicas de los síntomas biológicos naturales, modelos ciertamente muy útiles para conocer dichos sistemas, pero sin mayores pretensiones.
Para los que defienden la versión fuerte, dicen que se puede crear vida auténtica a partir de un programa de ordenador que reproduzca las características básicas de los seres vivos.
Desde este punto de vista, la vida se divide en vida húmeda, que es lo que todo el mundo conoce como vida, vida seca, formada por autómatas físicamente tangibles, y vida virtual, formada por programas de computador. Las dos últimas categorías son las que integran lo que genéricamente se conoce como Vida Artificial.
Para defender un punto de vista tan radical, los defensores de la postura fuerte, aluden a un conjunto de reglas que comparten las tres categorías anteriores:
·         La biología de lo posible: La Vida Artificial no se restringe a la vida húmeda tal como la conocemos, sino que "se ocupa de la vida tal como podría ser". La biología ha de convertirse en la ciencia de todas las formas de vida posibles.
·         Método sintético: La actitud de la Vida Artificial es típicamente sintética, a diferencia de la biología clásica, que ha sido mayoritariamente analítica. Desde este punto de vista, se entiende la vida como un todo integrado, en lugar de desmenuzarlo en sus más mínimas partes.
·         Vida real (artificial): La Vida Artificial es tal porque son artificiales sus componentes y son artificiales porque están construidos por el hombre. Sin embargo, el comportamiento de tales sistemas depende de sus propias reglas y en ese sentido es tan genuino como el comportamiento de cualquier sistema biológico natural.
·         Toda la vida es forma: la vida es un proceso, y es la forma de este proceso, no la materia, lo que constituye la esencia de la vida. Es absurdo pretender que sólo es vida genuina aquella que está basada en la química del carbono, como es el caso de la vida húmeda.
·         Construcción de abajo hacia arriba: la síntesis de la Vida Artificial tiene lugar mejor por medio de un proceso de información por computador llamado programación de abajo hacia arriba. Consiste en partir de unos pocos elementos constitutivos y unas reglas básicas, dejar que el sistema evolucione por sí mismo y que el comportamiento emergente haga el resto. Poco a poco el sistema se organiza espontáneamente y empieza a surgir orden donde antes sólo había caos.
Esta clase de programación contrasta con el principio de programación en la Inteligencia Artificial. En ella se intenta construir máquinas inteligentes hechos desde arriba hacia abajo, es decir, desde el principio se intenta abarcar todas las posibilidades, sin dejar opción a que el sistema improvise.
El principio de procesamiento de información en la Vida Artificial se basa en el paralelismo masivo que ocurre en la vida real. A diferencia de los modelos de Inteligencia Artificial en los que el procesamiento es secuencial, en la Vida Artificial es de tipo paralelo, tal y como ocurre en la mayoría de fenómenos biológicos.


7. LAS REDES NEURONALES




Si se pudieran explicar los procesos cognitivos superiores de una manera intrínseca, es decir, si se pudiera demostrar que los procesos mentales inteligentes que realiza el hombre se producen a un nivel superior (o intermedio) con independencia de las capas subyacentes que existen hasta la constitución física del ente inteligente, se demostraría que es posible crear -mediante un sistema de símbolos físicos-, una estructura artificial que imite perfectamente la mente humana mediante una arquitectura de niveles, ya que se podría construir dicho nivel superior mediante la combinación de elementos que no necesariamente han de ser los que forman el nivel inferior en los humanos (que por ejemplo, podemos suponer que son las neuronas).
En cambio, si sólo se pudieran explicar los procesos cognitivos superiores mediante una descripción al más bajo nivel (comportamiento neuronal), sólo se podría imitar la inteligencia humana mediante la construcción de neuronas artificiales. Para ser exactos, esta afirmación está condicionada por la certeza de la suposición (bastante común) según la cual el neuronal es el más bajo de los niveles relevantes para la formación de los procesos cognitivos. Arbitrariamente, se podría haber elegido otro nivel aún más bajo (moléculas, átomos). Llevado al extremo, se podría reescribir la afirmación, sustituyendo "neuronas" por "la más pequeña partícula de nuestro universo", si este fuera discreto (no infinitamente divisible).
Las denominaciones "nivel superior" y "nivel inferior" son arbitrarias en cuanto a que parece que se puede encontrar con facilidad un nivel que esté aún más bajo que el que hemos llamado "nivel inferior" -el nivel atómico es inferior al neuronal- y lo simétrico respecto al nivel superior -la conciencia colectiva es superior a la individual-. La existencia de una conciencia colectiva capaz de comunicarse a un nivel superior al del individuo parece evidente en los estudios sobre el comportamiento de algunos insectos, siempre que hagamos el esfuerzo de no interpretar el término "conciencia colectiva" desde nuestro punto de vista subjetivo como individuos. ¿Cómo conseguir esto? No es difícil, si se usa una analogía bajando un nivel. Imaginemos dos células (concretamente, dos neuronas) de nuestro cuerpo charlando amistosamente acerca de la posibilidad de que el conjunto de células forme una "conciencia colectiva". Las neuronas podrían hablar sobre esta "conciencia colectiva", ponerla en duda o intentar argumentar su existencia, pero difícilmente podrían llegar a comprenderla, no puede ser un concepto familiar para ellas.
Una Red Neuronal es usada para aprender patrones y relaciones de datos. Los datos pueden ser el resultado del esfuerzo de una investigación de mercado, el resultado de un proceso de producción dando variación a las condiciones de operación, o las decisiones de un prestamista dado un conjunto de aplicaciones de préstamo, utilizando una Red Neuronal es una salida considerable parecida a un enfoque tradicional. Tradicionalmente un programador o un analista especifican “códigos” de cada faceta del problema en orden para la computadora pueda “entender” la situación. Redes Neuronales no requieren el código explícito del problema. Por ejemplo, para generar un modelo que lleve acabo un pronóstico de ventas, una Red Neuronal solo necesita que le den los datos sin preparar relacionados con el problema. Los datos sin preparar podrían consistir en: historias de ventas pasadas, precios, precios de la competencia y otras variables económicas. La Red Neuronal escoge entre esta información y produce un acuerdo de los factores que influyen en las ventas. El modelo puede entonces ser llamado para dar una predicción de ventas futuras dado un pronóstico de los factores claves. Estos adelantos son debidos a la creación de reglas de aprendizaje de una Red Neuronal, que son los algoritmos usados para “aprender” las relaciones de los datos. Las reglas de aprendizaje habilitan a la red para “ganar conocimiento” desde datos disponibles y aplica ese conocimiento para asistir al gerente para hacer decisiones claves.
Aunque su estructura varía según el tipo de red, lo más usual es que haya tres capas de neuronas, una de entrada, que recoge los estímulos, otra oculta, que procesa la información, y otra de salida, que ejecuta la respuesta. La figura siguiente muestra esta disposición:


7.1 Red Neuronal Artificial
Las Redes Neuronales Artificiales son el resultado de investigaciones académicas que utilizan fórmulas matemáticas para modelar operaciones del sistema nervioso, es decir, es un modelo de procesamiento de información que es inspirado por el modo de un sistema nervioso biológico, tal como el cerebro procesa información. El elemento clave de este paradigma es la estructura original del sistema de procesamiento de información. Este se compone de un gran número de elementos interconectados procesando y trabajando en armonía para resolver problemas específicos. Las Redes Neuronales Artificiales, como la gente, aprenden con ejemplos. Una Red Neuronal Artificial es configurada para una aplicación específica, tal como el reconocimiento de patrones o clasificación de datos, a través de un proceso de aprendizaje. Aprender en sistemas biológicos implica ajustes para las conexiones sinópticas que existen entre las neuronas. Esto lo hace una Red Neuronal Artificial.
También, las Redes Neuronales Artificiales se han aplicado a un gran número de problemas reales de complejidad considerable. Su ventaja más importante está en resolver problemas que son demasiado complejos para tecnologías convencionales, problemas que no tienen un algoritmo de solución o que su algoritmo de solución es muy difícil de encontrar. En general, a causa de su abstracción del cerebro biológico, las Redes Neuronales Artificiales son aptas para resolver problemas que la gente puede resolver, pero las computadoras no pueden. Estos problemas incluyen reconocimiento de patrones y pronósticos (los cuales requieren el reconocimiento de tendencias de datos).
El hecho de suponer que el comportamiento inteligente en el hombre se produce a un nivel superior con independencia de los niveles inferiores está íntimamente relacionado con el debate entre holismo o creencia en que "el todo es más que la suma de sus partes" y el reduccionismo, o creencia en que "un todo puede ser comprendido completamente si se entienden sus partes, y la naturaleza de su suma."
Los esfuerzos desarrollados en Arquitecturas Generales de Inteligencia son puramente reduccionistas. Por el contrario, el holismo subyacente en los modelos conexionistas como las Redes Neuronales Artificiales, sugiere el aspecto de la interdependencia entre algunos niveles, o lo que es lo mismo, la imposibilidad de sustituir un nivel (las conexiones neuronales, como sistema sub-simbólico) por otro que realice sus mismas funciones (sistema simbólico). Sin embargo, también las Redes Neuronales Artificiales pueden ser consideradas reduccionistas si tenemos en cuenta otros niveles aún más bajos.
7.2 Modelos de Redes Neuronales
Los modelos de redes neuronales también conocidos como modelos de procesamiento distribuido en paralelo ó sistemas neuromorfológicos tienen su principio de funcionamiento basado en la interconexión de alta densidad de elementos sencillos de cómputo. La estructura de las redes neuronales ha sido desarrollada de acuerdo a nuestra comprensión del sistema nervioso biológico. Estos modelos de redes han tenido gran auge en áreas como el reconocimiento de imágenes y sonido, ya que dichas redes procesan simultáneamente varias hipótesis a través de redes paralelas compuestas de elementos de cómputo conectados a las variables ponderables. Los elementos de cómputo o nodos utilizados en las redes neuronales son generalmente no lineales y analógicos, además están caracterizados por un umbral y offset interno. Algunas de las no linealidades más comunes son: los limitadores lógicos del umbral y las no linealidades sigmoidales. Los nodos más complejos incluyen temporal y otras operaciones matemáticas más complejas. Los módulos de redes neuronales son especificados de acuerdo a la topología de la red, las características de los nodos y las reglas de entrenamiento o aprendizaje. Estas reglas indican un grupo inicial de valores y como deben modificarse esos valores para obtener un mejor resultado. La mayoría de los algoritmos de las redes neuronales realizan lecturas de los valores a analizar a lo largo del tiempo para obtener bases en resultados actuales, valores más confiables. Esto con el propósito que el aprendizaje y la adaptación sean lo más óptimo posible. Para este fin se utilizan clasificadores, los cuales tienen un grado de robustez determinado por la capacidad de adaptabilidad de la red, mayor que los clasificadores estadísticos. Mediante la utilización de las redes neuronales constituidas por una gran cantidad de circuitos simples de procesamiento operando en paralelo se ha logrado obtener la capacidad de procesamiento requerida hoy en día.
7.3 Granja de Evolución
La evolución en la naturaleza fue la clave para mejorar los organismos y desarrollar la inteligencia. Michael Dyer, investigador de Inteligencia Artificial de la Universidad de California, apostó a las características evolutivas de las redes neuronales y diseñó Bio-Land.
Bio-Land es una granja virtual donde vive una población de criaturas basadas en redes neuronales.
Los biots pueden usar sus sentidos de la vista, el oído e incluso el olfato y tacto para encontrar comida y localizar parejas. Los biots cazan en manadas, traen comida a su prole y se apiñan buscando calor.
Lo que su creador quiere que hagan es hablar entre ellos, con la esperanza de que desarrollen evolutivamente un lenguaje primitivo.
A partir de ese lenguaje, con el tiempo podrían surgir niveles más altos de pensamiento.


8.1 Principales Ramas de la IA
·         Lógica difusa: Consiste en una nueva forma de entender la lógica, en la que los enunciados dejan de ser cien por cien verdaderos o falsos, para tomar valores fraccionarios. En el campo concreto de la IA esto supone evitar las paradojas lógicas que pueden bloquear el sistema, y hacer que el ajuste entre las variables sea más fino.
·         Robótica: Hoy por hoy, el mayor problema consiste en conseguir que la supervivencia de las máquinas sea superior a unas horas. Por otra parte, su coeficiente intelectual sólo les permite realizar tareas simples, como salvar obstáculos y recoger objetos del suelo.
·         Realidad virtual: En los últimos tiempos han surgido sistemas de realidad virtual, que simulan comportamiento inteligente, a un coste mucho menor que el de los robots. Como ejemplo está Homer, un submarino virtual creado por Steven A. Vere, del Centro de Inteligencia Artificial de Lockheed, en Palo Alto. Homer es capaz de evitar obstáculos en su deambular por el ciberespacio e informar sobre lo que ve. Como conclusión, todavía no disponemos de respuesta a la pregunta con que empezamos el artículo. Cuanto más se complican los sistemas de IA, más compleja se nos revela la capacidad intelectual humana. Del mismo modo que el agua se alejaba del sediento Tántalo, cada vez que éste se aproximaba a ella, también el sueño de un sistema artificial inteligente se ve más lejano cuanto más nos acercamos a él. En cualquier caso esta complejidad ha de tener un límite por fuerza, por lo que es de esperar que antes o después la IA alcanzará sus máximos objetivos.
8.2 Jugadores inteligentes
Esta rama dentro de la IA es la de los programas jugadores de juegos inteligentes. En una fecha tan temprana como 1946, Arthur Samuel desarrolló un programa que no sólo jugaba a las damas, sino que mejoraba su juego a medida que jugaba.
La historia de este programa no tiene desperdicio, en la medida que su autor protagonizó una de las versiones más chocantes del cuento de la lechera. Por aquellos años, Samuel deseaba que su facultad adquiriese un ordenador, pero su presupuesto resultaba insuficiente. Ni corto ni perezoso elaboró el siguiente plan: construiría un pequeño ordenador, y a partir de éste un programa capaz de jugar a las damas, que vencería sin dificultad el campeonato mundial de damas; la publicidad que obtendría sería suficiente como para garantizarle una subvención estatal que le permitiría la adquisición de su querido ordenador. Si Samuel escogió las damas fue porque lo consideró un juego sencillo de programar. Al fin y al cabo, hay un único tipo de ficha, que se mueve de la misma forma. Pese a esta aparente simplicidad, la gran cantidad de estrategias que se pueden plantear a partir de una posición dada complican notablemente el problema. El resultado de su sueño fue más que previsible: cuando llegó la fecha del campeonato no estaba concluido ni el ordenador ni el programa.
  
Tres años después, el investigador Claude Shannon, famoso por su teoría de la información, escribía la primera obra sobre programación del ajedrez. De esta manera, se daba el pistoletazo de salida a una carrera cuya máxima meta era la creación de un programa que conquistara el título mundial de ajedrez; cosa que aún dista mucho de conseguirse.
            ¿Cómo funciona un programa capaz de jugar a un juego de inteligencia, tal como el ajedrez o las damas?
La palabra clave es programación en árbol. La figura 1 muestra una hipotética situación. Las letras A, B y C representan sendas fichas. Para cada una tenemos uno o varios movimientos, que a su vez provocarán movimientos en las piezas de nuestro contrincante. Los números representan la puntuación de cada jugada. Para calcular la jugada óptima se toman cada una de las jugadas propias y a su puntuación se le resta la de la jugada del oponente. Por ejemplo, una jugada de la pieza A nos reporta 9 puntos, pero a continuación la del contrincante le puede suponer 11 puntos, de forma que quedan -2 puntos globales. Por otra parte, una jugada de la figura C nos supone sólo 2 puntos, pero al restarle los -2 de la jugada más óptima del contrincante nos da una ganancia neta de 4 puntos. De esta manera, se puede encontrar la mejor jugada en aquella que proporciona una puntuación neta mayor.


Con sólo dos niveles de profundización se tiene un nivel de juego comparable al de un niño de seis años. Ampliando el número de niveles se puede ir mejorando el nivel de juego, a costa de un mayor tiempo de cómputo. Por ello, se han desarrollado técnicas para "podar" el árbol, y eliminar aquellas ramas que a priori se puede saber que no van a dar puntuaciones altas.
8.3 Programas que razonan
Esta rama es la encargada de desarrollar sistemas con capacidad real o aparente de dialogar de forma inteligente y, consecuentemente, de razonar. Desde siempre ha supuesto la máxima aspiración de los investigadores en este campo (como botón de muestra se puede repasar la definición de ordenador de quinta generación en la introducción al artículo), y coincide con la idea de que la mayor parte de la gente tiene de un sistema inteligente. Sin embargo, es importante destacar que, fieles a la filosofía del test de Turing, los investigadores no se preocupan en nuestros días por la cuestión de si tal sistema comprende realmente lo que se le dice o si tiene conciencia de sí mismo, sino de que nosotros podamos comprender lo que él nos dice.
Dentro de este apartado, destacan tres programas que han supuesto auténticos hitos en el proceso de desarrollo de la IA. Por orden cronológico son el programa Eliza, el programa Shrdlu y el programa Racter.

ELIZA
Corría el año de 1966 cuando Joseph Weizenbaun, a la sazón profesor de informática del MIT, daba los últimos toques a su programa Eliza. Durante dos años había trabajado en él, con el único objetivo de crear un programa que parodiase a los psiquiatras de la escuela de Carl Rogers. Estos psiquiatras son los que aparecen con frecuencia en las películas norteamericanas, y que practican una terapia basada en el diálogo de libre asociación de los pacientes, propio del psicoanálisis no directivo.
El programa simula una sesión con un psiquiatra rogeliano; al ejecutarlo, tenemos que introducir unas frases, a las que el programa tiene que dar respuesta. Para lo cual busca en la cadena alfanumérica que se le introduce algunas frases clave, para las que tiene una batería de respuestas estándar, de las que selecciona una al azar. Caso de no encontrar una frase clave busca una palabra clave y, en función de ésta, vuelve a seleccionar al azar una de las respuestas que tiene programadas. Si tampoco encontrase una palabra clave, mira a ver si tiene almacenada una frase dicha con anterioridad por el usuario, y en función de ésta construye su respuesta.
Por ejemplo, supongamos que en un momento dado se introduce la frase "Mi mujer me odia". El programa toma la frase que viene a continuación de Mi y la almacena tras intercambiar las personas de pronombres y posesivos. Cuando más adelante el programa no encuentre una frase o palabra clave puede recuperar la frase almacenada y contestar algo así como: "¿Tiene eso que ver con el hecho de que su mujer le odia?". Finalmente, si tampoco tiene almacenada ninguna frase el programa, selecciona al azar una frase del tipo "Eso es muy interesante" u otras similares, para mantener la conversación.
SHRDLU
Creado en 1971 por Terry Winograd, un investigador del MIT. A diferencia de Eliza, Shrdlu no se limita a seleccionar respuestas al azar ante cada entrada, sino que lleva a cabo un auténtico proceso de razonamiento. En el mundo de Shrdlu existen tan sólo las figuras geométricas de diferentes colores, figuras que se pueden disponer con distinto orden. Cuando el usuario da las órdenes oportunas mediante un lenguaje coloquial, el programa lleva a cabo las transformaciones que se le piden, e informa de la nueva situación creada.
Fragmento de conversación entre un usuario y el programa:
Humano: ¿Quieres, por favor, apilar los dos bloques rojos, por un lado, y un cubo verde o una pirámide, por otro?
Shrdlu: De acuerdo
Humano: ¿Qué cubo descansa sobre la mesa?
Shrdlu: El cubo grande verde que soporta a la pirámide roja
Humano: ¿Hay algún bloque grande detrás de una pirámide?
Shrdlu: Sí, hay tres: uno grande rojo, un cubo grande verde y el azul
            Aunque el diálogo prosigue, este fragmento es suficiente para captar la neta superioridad de este programa frente al de sus antecesores; no sólo parece comprender correctamente las órdenes que se le dan, sino que en todo momento tiene una idea clara de las relaciones espaciales entre los bloques que maneja. ¿Cómo consigue tal cosa? Parafraseando a Dewdney, en el artículo comentado antes "La organización interna de Shrdlu..., está formada por subsistemas que analizan gramaticalmente, interpretan y construyen frases, llevan a cabo búsquedas en un diccionario, efectúan análisis semánticos y deducciones lógicas. Todos estos subsistemas están estrechamente entretejidos, en modo sumamente estructurado, cuyo efecto conjunto nos da la impresión de una verdadera inteligencia que analizara el mundo de bloques depositados en el tablero".
RACTER
Creado en 1980 por Thomas Etter, un programador-analista de San Francisco y William Chamberlain, un escritor neoyorquino. La intención de ambos era crear un programa que crease cuentos. Posteriormente, lo modificaron para permitirle mantener conversaciones con seres humanos, veamos un extracto de una conversación entre Racter y Chamberlain.
Racter: ¿Hemos hablado antes?
Chamberlain: No
Racter: ¿De qué sexo eres?
Chamberlain: Masculino
Racter: ¿Cuál es tu nombre completo?
Chamberlain: Bill Chamberlain
Racter: ¿Qué eres?
Chamberlain: Cronorreflectometrista
Racter: ¿De dónde eres?
Chamberlain: De la ciudad de Nueva York
Racter: Ya veo. Así que cronorreflectometrista, ¿verdad? Escucha. Gritemos juntos con decisión. Me gusta la cautivadora música italiana. ¿Qué clase de música te gusta a ti?
Chamberlain: el jazz
Racter: El jazz está bien. ¿qué me dices de la clásica?
Chamberlain: Me gusta la música clásica
Racter: ¿Y de qué nacionalidad?
Chamberlain: También me gusta la música italiana
Racter: A mí, personalmente, Palestrina me inflama. Además de Italia, otros países produjeron en el siglo XVII embelesados músicos. Sewall fue un importante y furibundo maestro del Renacimiento. América fue su nación. Yo saco de la música amoroso placer.
El diálogo prosigue por similares derroteros, mezclando sin pudor Bach con el rodaballo y las lechugas. Al comparar este diálogo con el que yo mismo he mantenido con el programa Doctor se aprecia una diferencia; el diálogo de Racter es mucho más rico y fluido que el de Doctor, si bien es bastante más disparatado.
En el test de Turing Racter podría pasar por un humano con una marcada tendencia a la divagación. ¿Cuál es el funcionamiento de Racter? Al principio de la conversación hace una serie de preguntas a su interlocutor, cuyas respuestas va almacenando en una base de datos. En cuanto juzga que dispone de suficiente información empieza a elaborar frases, en las que combina los elementos de que dispone en su memoria con aquellos que ha recibido de su interlocutor, con lo que logra implicarlo en la conversación. Para construir las frases sigue un mismo esquema gramatical, en el que los sustantivos, adjetivos y verbos se eligen al azar entre una amplia variedad que pertenecen a una misma categoría, y los artículos se adecuan a la forma gramatical correspondiente. Esto hace que las frases sean sintácticamente correctas, pero en tanto los sustantivos, adjetivos y verbos se escogen al azar el sentido suele ser disparatado.
8.4 Sistemas históricos y sistemas actuales
Sistemas históricos
GPS - Newell, Shaw y Simon
Perceptron - Minsky y Papert Chekers - A. Samuel
MACSYMA AM - D. Lenat
ELIZA - Weisenbaum
Shakey - SRI
SHDRLU - Winogard
MYCIN - E. Shortliffe
Prospector - Duda, Hart
Hearsay II - Erman, Hayes-Roth, Lesser, Reddy
CYC - D. Lenat, R. Guha
Sistemas actuales
PEGASUS - Hace reservas de transporte por teléfono (Zue et al. ´94)
MARVEL - Sistema experto en tiempo real que maneja la información de Voyager y ayuda a diagnosticar fallas (Schwuttke ´92)
MYCIN - Sistema de diagnóstico de medicina interna con capacidad de explicar sus razones a los expertos (Heckerman, 1991)
NAVLAB - Vehículo autónomo que viaja en forma automática de un extremo a otro de EEUU (Pomerlau, 1993)
Sistema de visión que monitorea el tráfico en Paris y reconoce accidentes con los cuales llama a servicios de emergencia (Koller, 1994)
DEEP BLUE - máquina paralela que juega ajedrez y primera en derrotar al campeón mundial (IBM 1997)

MYCIN
El MYCIN (desarrollado entre 1972 y 1980, Universidad de Stanford) es un sistema interactivo experto que ayudaba a los físicos en la selección de un apropiada terapia antimicrobiana para los pacientes de los hospitales con bacteremia, meningitis e infecciones de cistitis. El sistema diagnosticaba la causa de la infección usando el conocimiento relativo a la infección de los microorganismos con historiales de pacientes, síntomas y los resultados de los test de laboratorio. El sistema recomendaba un tratamiento de medicinas (tipo y dosificación) acorde a los procedimientos seguidos por la experiencia de los físicos en las terapias.
El sistema MYCIN fue desarrollado originalmente en la consulta y diagnosis de una terapia para infecciones. Desde el principio, en el proyecto se habían impuesto una serie de obligaciones
- Tenía que ser funcional (esto implicaba competencia y consistencia). El área de uso era elegido según una necesidad demostrada. (Por ejemplo, a principios de los 70 a una cuarta parte de la población de USA se le recetaba penicilina, el 90 % de esas prescripciones eran innecesarias).
- El programa tenía que ser diseñado con un énfasis de sus soportes de roles como una utilidad para un físico, a pesar de reemplazar sus propios procesos de razonamiento.
- El programa debía albergar una cantidad ingente de información técnica.
- El sistema tenía que interactuar mediante diálogos, tenía que dar una explicación concreta de su razonamiento para llegar a la solución propuesta.
- Velocidad, accesibidad y facilidad de uso.
¿Cómo de éxitoso fue MYCIN? ¿Qué nuevos conceptos de desarrollo se realizaron?
MYCIN introducía nuevas formas las cuales procedían de los mejores sistemas expertos hasta el momento. Primero, su base de conocimiento consistía en cientos de reglas. Segundo, esas reglas eran probabilísticas. MYCIN era lo bastante robusto como para determinar correctamente conclusiones cuando algunas evidencias eran incompletas o incorrectas. Tercero, MYCIN podía explicar sus propios procesos de razonamiento. El usuario (un físico) podía preguntar de muchas formas - preguntando, porque al realizar una cuestión concreta o como había llegado a una determinada conclusión, por ejemplo. Fue uno de los primeros sistemas genuinamente amigables. Cuarto, y crucial, MYCIN actualmente funciona. El trabajo que realiza supone para un humano muchos años de entrenamiento.
MYCIN se extendió la noción de base de conocimiento separadamente del motor de inferencia, y su base de reglas y motor de inferencia fueron construidos mediante retro-chaining, o "goal-directed", estrategia de control.
¿Fue MYCIN comercialmente exitoso o se introdujo por pura rutina?
MYCIN produjo resultados de alta calidad; su forma igualaba a la de los especialistas. Aunque MYCIN debía ser usado por físicos, hizo aparecer numerosos clones de diagnósticos médicos, que eran utilizados rutinariamente.
¿Qué otros sistemas nacieron a partir del MYCIN?
Del MYCIN partió TEIRESAS (explicaba fácilmente los conceptos), EMYCIN (primer intérprete), PUFF, CENTAUR, VM, GUIDON (tutorial inteligente), SACON y hasta ONCOCIN y ROGET.
GPS
Después del Teórico de Lógica, Newell y Simon llevaron a cabo juntos otro proyecto, proyecto que concluyó en 1957. Esta vez no trataron de investigar el posible funcionamiento del cerebro humano, sino que se apretaron a la potencia (de aquel entonces) ofrecida por los ordenadores y las matemáticas. Así nació el GPS (General Problem Sover) [Solucionador General de Problemas]. Se trataba de un programa, al que se le podían ofrecer pequeños problemas (como el típico del mono que debe coger un plátano que se encuentra colgado del techo), y este (el programa) deberá describir todos los pasos que realiza hasta conseguir su fin, es decir, completar el problema positivamente (en este caso llegar a una altura que le permita coger el plátano). Se puso en practica el análisis medios-fines, un principio de la retroalimentación de Wiener llevado a un mayor nivel de abstracción. El análisis medios-fines consiste en detectar las diferencias entre un objetivo deseado y la situación actual y reducir después esas diferencias. También se aplicó por primera vez el Backtracking [vuelta atrás] (probar si funciona y si no, volver atrás y probar otra cosa) que se convirtió desde aquel momento en una herramienta básica de la I.A.



10. LA INTELIGENCIA ARTIFICIAL EN LA ARGENTINA
“Si la Argentina la impulsase, podría ganar 300 millones de dólares por año en exportaciones gracias a la inteligencia artificia”, dice Juan Chamero, ingeniero electromecánico, uno de los disertantes en una conferencia que se realizó los primeros días de abril de este año en el Centro Argentino de Ingenieros.
La conferencia contó con la presencia de profesores y estudiantes universitarios en ingeniería y medicina, y psicólogos sociales, entre otros. Sirvió para explicar en qué consiste la inteligencia artificial, que se define como "la comprensión científica de los mecanismos subyacentes al pensamiento y comportamiento inteligente y su integración en máquinas".
En la Argentina, el área de inteligencia artificial y sus aplicaciones es incipiente, según comentó el ingeniero Chamero. Sin embargo, enfatizó en que podría pegar un salto. “Hay más de 5.000 programadores y equipamiento actualizados. Por lo cual, están dadas las condiciones para que se incentiven desarrollos en inteligencia artificial”.
Las aplicaciones de la inteligencia artificial —que trata de conseguir que los ordenadores simulen en cierta manera la inteligencia humana— son variadas. Por ejemplo, se usa en robots, en sistemas de administración de conocimiento y en buscadores. En el mundo, el mercado de la inteligencia artificial ya factura 40 mil millones de dólares al año.
Como expositores, también estuvieron los ingenieros Raimundo Osvaldo D'Aquila y Osvaldo Aníbal Pérez Guzmán y el licenciado Alejandro de Montmollin.
Para continuar con la difusión de la inteligencia artificial, se dio un seminario que empezó en mayo en el Centro Argentino de Ingenieros. Se desarrolló en 80 horas, incluyendo una práctica que fue asistida por los profesores que dictaron el seminario a través de una red sobre Internet.
Los asistentes al seminario pudieron realizar las prácticas en sus propias empresas, instituciones o estudios y con temas de aplicación local inmediata.


11. EL CINE Y LA INTELIGENCIA ARTIFICIAL

En el mundo de la ciencia-ficción, a veces no tan ciencia, a veces no tan ficción, se han tratado con amplia gama de variedades las interrelaciones entre hombre e inteligencias artificiales (I.A.). El cine ha copiado, imitado, e incluso fagocitado esta variedad.
El mundo del cine está lleno de referencias a la inteligencia artificial, ordenadores o máquinas que aprenden y crecen como Hall de "2001". El superordenador de "Terminator" que adquiere conciencia y con ella la terrorífica idea, para nosotros, de la amenaza que suponen los hombres para su subsistencia, decisión que comparte la más estúpida de "Juegos de Guerra", que hace tablas consigo mismo a tres en raya. Otros ordenadores de I.A. deciden enamorarse cono en "Electrical Dreams". Algunos son menos I.A. y más textura humana y compuesto robótico, como las tres versiones que aparecen en la saga de "Alien", el primero fiel seguidor de las directrices que le da la compañía. El 2º más humanizado, más perfeccionado como el mismo se califica. La 3ª, la extraña y pequeña Wynnona, que es una I.A. sentimental y un poco enfadada.
Terminator II El día del juicio final
Uno de los favoritos, de los más impresionantes, de los más conseguidos en la historia del cine son los replicantes de "Blade Runner", capaces de sentir emociones como el amor, el odio y el miedo a la muerte. Y finalmente capaces de PERDONAR, amando más a la vida que a cualquier otra cosa. Por su parte, quien no recuerda el único anhelo de Hall, que sabiendo que va a ser destruido, solo quiere saber si soñará en la segunda parte "2010", a fin de cuentas, desde su punto de vista es lo único que le falta para ser humano. Del mismo modo, el autodestructivo de "Electrical Dreams" y su peculiar sentido del humor, se enamora de la rubia estupenda (Virginia Madsen) y antepone la felicidad de ésta a la suya, y en cierto modo una extraña amistad con su dueño.

Robocop, mente humana
y cuerpo de máquina,
¿nos quedaremos limitados a esto?

En ocasiones una nave espacial es el punto de partida. Voyager hace un largo y extraño viaje hasta convertirse en un I.A. en "Star Treck", donde se habla de un planeta de máquinas donde modifican al Voyager. Y en una reciente cinta, "Horizonte Final" quien tiene vida propia es precisamente la nave.
A veces son simplemente robots, aunque aprenden y tienen hasta algo de psicosis, "mieditis" y humor, como la sin par pareja R2D2 y su compañero C3PO de la espectacular "La Guerra de las Galaxias".
Hay quien considera que el día, cada vez más cercano, en que estas I.A. existan, bastará con que se cumplan las tres leyes de Asimov. La pregunta es si un I.A. con conciencia de sí mismo no es en cierto modo un ser humano, ya que adquiere "CONCIENCIA". Quizás simplemente queremos crear (¿qué hay de los clones de los que tanto se habla ahora?), queremos tener el poder de un dios, creando no sólo animales sino también vida inteligente.
Como último apunte, posiblemente todo esto tiene en parte su origen en la película "Metrópolis" primera en que aparece un I.A. y no me resisto a hacer un pequeño homenaje al primer chistoso de las máquinas pre-I.A., Charlot en "Tiempos Modernos".
Algunos de los más olvidados son el autogenerativo de "Superman III", que tuvo un "hijo" en un capítulo de "Expediente X", éste con mayor éxito o suerte pues sobrevive.