INTRODUCCION Podríamos definir la IA como una disciplina tecnológica que tiene por objeto el diseño y la construcción de máquinas y programas capaces de realizar complejas tareas con pericia igual o mayor que la de un ser humano. Teniendo en cuenta que aquellas tareas que parecen más simples, por ejemplo, hablar, ver, escuchar, son precisamente las más complejas de realizar. El computador es una poderosa herramienta por su capacidad para representar cualquier sistema discreto de símbolos físicos. Pero la meta final no es para esta "ciencia cognoscitiva" el computador o sus programas, sino el estudio de la conducta inteligente y, en particular, de la conducta humana. Este es el motivo por el cual la IA enlaza con tantas otras ciencias. Así, en el estudio de la conducta humana intervienen ciencias naturales como la neurofísiología y ciencias humanas como la psicología; en el estudio de los procesos de aprendizaje, la pedagogía; en otros aspectos importantes, como el reconocimiento del lenguaje natural, la lingüística; y en la realización práctica de los modelos, la informática y en todo su entorno. EVOLUCION HISTORICA Prehistoria de la IA Así como de alguna forma los soportes mecánicos para la automatización de cálculos aritméticos se sitúan en la prehistoria de los computadores, la prehistoria de la inteligencia artificial abarca desde los primeros tiempos de nuestra civilización hasta mediados del siglo veinte. En este período se producen hechos que podemos agrupar en dos líneas: Una de ellas, directamente relacionada con al construcción de autómatas que simulaban desde el punto de vista externo el comportamiento humano o animal, y que solían funcionar en ayuda de su amo. La otra línea, referente a la información y automatización del razonamiento lógico y matemático. En relación con los autómatas, siempre se ha relacionado la inteligencia con los aparatos mecánicos complejos. Los hombres, intuitivamente, han comparado la complejidad del funcionamiento de una máquina con su propia vida mental. La tradición judía creó el mito del "golem", figura humanoide hecha de arcilla a la que un rabino podía insuflar vida propia, convirtiéndola en un perfecto criado. Sin embargo, se requería la intervención divina para conseguir estos espectaculares resultados. Al llegar el relacionista siglo XVIII, el siglo de los autómatas por antonomasia, las cosas fueron muy diferentes. Como es sabido, Descartes había defendido la tesis del "animal−máquina": los seres vivos, salvo el hombre, son meros mecanismos. El escritor Capek difunde en 1920 una palabra destinada a tener gran éxito: "robot". En su obra "RUR" aparecen unos seres creados para realizar las tareas que el hombre no quiere hacer, que acaban siendo más poderosos que el mismo hombre, llegando a poner en peligro su existencia. Hasta la llegada de los ordenadores electrónicos no dispusieron los científicos y técnicos de una herramienta que permitiera la ejecución de tareas más complejas por parte de dispositivos mecánicos; que hiciera posible, por así decir, la construcción de golems y robots. La automatización del conocimiento: Al llegar al siglo XIX, los matemáticos sienten por su parte la necesidad de abandonar la institución como fundamento de su ciencia y buscar para su razonamiento más sólidas bases. La aparición de las paradojas lleva al desarrollo de los sistemas formales y de lógica matemática. Las escuelas 1 de Rusell o de Hilbert reducen el razonamiento a la manipulación abstracta de cadenas de símbolos. Las teorías de la computabilidad y de los autómatas proporcionaron el vínculo entre la formalización del razonamiento y las máquinas que estaban a punto de surgir tras la Segunda Guerra Mundial. En este ambiente, no es extraño que la aparición de las primeras máquinas electrónicas de computo fuera seguida inmediatamente por los intentos de aplicarlas a la que hoy llamamos IA. Un último elemento importante es la cibernética. Esta influyó en muchos campos debido a su naturaleza fundamentalmente interdisciplinaria, ligado entre sí la fisiología neuronal. Las ideas de los creadores de la cibernética llegaron a ser parte del espíritu del tiempo, e influyeron fuertemente en los primeros investigadores de la IA. El nacimiento de la IA El fracaso de la mayoría de los problemas que intentaban resolver eran demasiado complicados, tanto teórica como tecnológicamente. La lógica teórica fue considerada como el primer programa de IA y usada para resolver problemas de búsqueda heurística. Durante el decenio de 1950 se celebraron congresos, proliferaron los grupos de investigación y en 1954 uno de ellos afirmó haber creado un programa que traducía del ruso al inglés. La verdad es que los resultados prácticos fueron descorazonadoramente escasos. De todas formas, el resultado más espectacular de este período fue el programa de Samuel para Jugar a las damas, que se presentó en 1961 y era capaz de aprender de su experiencia, es decir, tener en cuenta sus errores y éxitos pasados, para determinar sus jugadas en la partida posterior. Los años difíciles Tales habían sido las expectativas levantadas por la IA, y tantos sus fracasos, que el desánimo sucedió al optimismo inicial. El mundo exterior se desentendió de los trabajos de investigación, y la financiación de muchos proyectos se volvió problemática, tanto en América como en Europa. No obstante, la IA se fue consolidando y, aprendiendo de sus fracasos, buscó nuevos enfoques para los viejos problemas. En el año 1964 se publicó una tesis doctoral sobre el sistema STUDENT, que es un programa de lenguaje natural que comprende y resuelve problemas elevados de álgebra. Es en 1966 cuando se publica, en Comunicaciones de la Asociación para Máquinas Calculadoras, un programa de ordenador para el estudio de comunicación hombre−máquina mediante lenguaje natural interactivo, ELIZA, que fue creado como un programa de psicología que simula respuestas de un terapista en dialogo interactivo con un paciente. Las personas que dialogaban con ELIZA creían que hablaban con un psicólogo auténtico. A partir de 1970, el énfasis se trasladó de las reglas y procedimientos generales de deducción a la acumulación de conocimientos concretos acerca de un campo bien delimitado en la realidad. El célebre programa SHRDLU era una parte de un proyecto de comprensión del lenguaje natural capaz de comprender y ejecutar correctamente órdenes dadas en inglés acerca de un "mundo de bloques". Ello era posible porque el programa tenía todos los conocimientos necesarios acerca de su limitado y simplificado mundo. Los sistemas expertos alcanzaron una sorprendente efectividad a la hora de responder a complicadas cuestiones de diagnóstico médico o prospección minera. Esto se conseguía limitando el razonamiento a un 2 ámbito restringido del mundo real, acumulando en el programa una gran cantidad de conocimientos. En esta época, una de las principales actividades fue el diseño de sistemas expertos. La llamada Ingeniería del conocimiento fue acumulando técnicas y herramientas para la representación, recolección y empleo de conocimiento experto en un campo dado. Los trabajos hasta 1973, tuvieron como herramientas básicas de trabajo los conceptos de tiempo compartido en ordenadores y procesamiento de palabra. La investigación más normal incluye: visón con ordenador, todas las áreas de la robótica, sistemas expertos, lenguaje natural y arquitectura de ordenadores. Se lanzaron ataques contra la IA basándose en la introspección, afirmó que ciertos aspectos del pensamiento humano son esencialmente inimitables por parte de los ordenadores, dando varias razones de apoyo a esta tesis: de una parte, los ordenadores son máquinas discretas, mientras que el pensamiento aparece en nuestra introspección como continuo; además, los ordenadores carecen de "corporeidad", por lo que no pueden relacionarse como nosotros con el espacio físico; por último, los ordenadores no comparten nuestras experiencias, nuestro contexto humano, por lo que no pueden ser como los seres humanos. En cualquier caso, las controversias no desanimaron a los investigadores, que empezaban a alcanzar resultados tangibles. En esto les ayudaba grandemente el acelerado progreso del soporte material, con la aparición de los circuitos y el aumento consiguiente de capacidad y potencia de cálculo. También el soporte lógico empezaba a adaptarse a las necesidades de la IA. La aparición de lenguajes declarativos fue un paso importante para la IA. El desarrollo actual Las instituciones públicas y los gobiernos percibieron los grandes adelantos que, calladamente, había realizado la IA en el decenio de los años setenta. Las empresas y organizaciones se vieron seducidas por las posibilidades que los sistemas expertos y la "ingeniería del conocimiento" tenían para aumentar su eficiencia. Por todo ello, la IA volvió a ser tema de moda, y el impulso definitivo vino de Japón. En 1979, el Ministerio de Industria y Comercio Internacional del Japón decidió desarrollar una nueva generación de ordenadores que cumplieran las necesidades previsibles para la década de los noventa. Aquel mismo año se creó un grupo de trabajo para estudiar la cuestión. En 1981 se publicaba el informe elaborado con las contribuciones de unas 150 personas, aprobando el gobierno japonés los créditos presupuestarios para los que se llamó el Proyecto de la Quinta Generación de Computadores. Los demás países respondieron con escepticismo al desafío japonés. Los americanos, conscientes de su adelanto de varios años y de su mayor potencia económica y científica, no parecieron muy preocupados. La firma IBM no ha mostrado en los últimos tiempos un interés excesivo por la IA; aunque acaso esté reconsiderando su postura. Investigación y desarrollo en áreas de la IA Las aplicaciones tecnológicas en las que los métodos de IA usados han demostrado con éxito que pueden resolver complicados problemas de forma masiva, se han desarrollado en sistemas que: • Permiten al usuario preguntar a una base de datos en cualquier lenguaje que sea, mejor que un lenguaje de programación. • Reconocen objetos de una escena por medio de aparatos de visión. • Generar palabras reconocibles como humanas desde textos computarizados. • Reconocen e interpretan un pequeño vocabulario de palabras humanas. • Resuelven problemas en una variedad de campos usando conocimientos expertos codificados. 3 Los países que han apadrinado investigaciones de IA han sido: EEUU. , Japón, Reino Unido y la CEE; y lo han llevado a cabo a través de grandes compañías y cooperativas de riesgo y ventura, así como con universidades, para resolver problemas ahorrando dinero. Las aplicaciones más primarias de la IA se clasifican en cuatro campos: sistemas expertos, lenguaje natural, robótica y visión, sistemas censores y programación automática. LOS PROBLEMAS DE LA IA REQUIEREN METODOS DE RESOLUCION NO CONVENCIONALES Procesamiento simbólico frente al cálculo convencional En el cálculo convencional, un programador crea un programa de instrucciones para el computador, que sigue un camino de solución para cada solución; este camino está completamente planeado por el programador. Cualquier sorpresa en el transcurso del proceso es un error que debe ser eliminado. Este método convencional de usar pasos predecibles puede ser muy potente, ya que capacita para resolver problemas que requieren el procesamiento de una gran cantidad de datos y la repetición de muchos pasos. A lo largo de los años se han hecho procesos en el cálculo convencional. Primero, se puede ejecutar rápidamente con el hardware disponible. Segundo, se han reducido el tiempo y los esfuerzos requeridos para escribir los programas por el desarrollo de conjuntos de instrucciones y lenguajes de programación que requieren del programador escribir pocas líneas de código. Sin embargo, muchos problemas importantes no se resuelven fácilmente por el cálculo convencional, aunque la velocidad de ejecución sea muy rápida. Estos problemas incluyen decisiones basadas en la interacción compleja de muchos factores que deben ser considerados como un todo, más que como una serie de pasos. Para la IA utiliza una técnica que es útil en la solución de estos problemas complejos: El procesamiento simbólico. Los símbolos procesados por los programas de IA a menudo representan entidades del mundo real, y en lugar de ejecutar simplemente cálculos, los programas de IA manipulan o "piensan" sobre las relaciones entre los símbolos. En el procesamiento de datos tradicional, el sistema procesa el contenido de variables. Los sistemas de IA pueden hacer esto, pero pueden también manipular símbolos independientemente de sus valores. Esto hace posible resolver un problema cuando el valor de una variable no se conoce hasta el momento antes de que la respuesta sea necesaria. Por ejemplo, un automóvil que se está construyendo debe tener un color pero dicho color no es importante hasta que se entregue. En proceso de datos, es el programador, no la máquina quien determina todas las relaciones entre los símbolos. Pero en el procesamiento de símbolos, en un sistema basado en IA, el programa puede determinar las relaciones entre los símbolos que no estaban establecidas explícitamente por el programador. Esta manipulación de relaciones entre parte de los datos es una característica importante de la programación en IA. El aspecto distintivo de la IA es el énfasis en el almacenamiento y manipulación de las relaciones entre símbolos. Así, la tecnología de la IA tiene que ver con la preservación, no exactamente de datos, sino más bien con el conocimiento encarnado en las relaciones entre los datos. Las sentencias que expresan áreas particulares de conocimiento son tratadas como datos en un programa de IA. La IA hace uso de sistemas prototipo En la resolución de la mayor parte de los problemas de la IA el diseño de la solución no puede ser conocido de antemano. En lugar de eso, se recurre a una programación exploratoria, usando varias técnicas de resolución e intentando producir una solución prototipo para una pequeña parte del problema de manera rápida. Mejorando continuamente la capacidad del prototipo, el diseñador moldea el diseño para un sistema que por fin acaba haciendo lo que se pensaba. En el transcurso de este proceso, los sucesivos prototipos proporcionan un beneficio adicional : El sistema es útil en el paso intermedio, estando lejos del sistema convencional de 4 partida. Un sistema experto cuidadosamente construido, por ejemplo, puede ser útil al 30−50% del nivel final. Los resultados del uso del sistema permiten a los usuarios proporcionar realimentación en la ejecución del trabajo. La realimentación se usa entonces para mejorar la ejecución, y el proceso continúa hasta que el sistema alcanza el nivel deseado. Un beneficio adicional del último prototipo es que el sistema es capaz de mostrar sus utilidades y limitaciones potenciales, antes de que una gran cantidad de recursos se haya puesto en juego. Un proyecto que no va a producir claramente los resultados pedidos, puede ser detenido antes de que consuma una mayor cantidad de recursos. DESARROLLO DE LOS SISTEMAS DE IA El mejor método de desarrollo de un prototipo al que se le pueden aplicar las técnicas de IA es determinar la estructura del problema y las herramientas disponibles. Las herramientas consisten básicamente en varios métodos de representación del conocimiento y operadores, estructuras de control, lenguajes de IA, utilidades integradas (editores, depuradores, herramientas de gestión de pruebas, etc.) y hardware. Representación del conocimiento Desde el principio, los esfuerzos de la IA apuntaban a descubrir un pequeño conjunto de técnicas de razonamiento potentes que pudieran resolver muchos problemas. Algunos investigadores están todavía interesados en encontrar principios de este tipo. Mientras tanto, otros han optado por encontrar maneras eficientes y eficaces de presentar gran cantidad de conocimientos para reducir la búsqueda requerida por un programa. Estos métodos de representación del conocimiento son combinaciones de estructuras de datos para almacenar conjuntos de procedimientos de interpretación, para hacer inferencias sobre los datos almacenados. La representación del conocimiento proporcional al computador una descripción de cómo interactúan los distintos grupos de información. Las investigaciones de la IA han creado una variedad de representaciones diferentes para los distintos tipos de conocimiento y no una simple, cerrada y definitiva representación. El objetivo es elegir una representación que facilite el trabajo en una tarea particular. Esto se puede extender para combinar diferentes representaciones dentro de un solo sistema o desarrollar una nueva representación o una variación de algún existente si se ajusta al dominio del problema. El problema mismo se puede solucionar usando representación, varios operadores y estrategias de control. Reglas de producción A menudo, es conveniente representar la naturaleza dinámica de una aplicación de la IA por un conjunto de reglas hechas de condiciones y acciones. Las reglas de producción son un tipo de regla "Si...entonces...", basada en condiciones y acciones. Una de las reglas que hace que las acciones de la regla a ejecutar den lugar a nuestras descripciones producen más acciones (de aquí el nombre de "reglas de producción"), así hasta que el sistema encuentre la solución o se detenga. Un sistema consistente en un conjunto de reglas de producción, son los operadores en el sistema, es decir, las que se usan para manipular las bases de datos. Los lenguajes de estos sistemas de producción, tales como OPS5, facilitan la representación del conocimiento en reglas de producción. Cada una de estas reglas está embebitada en una pieza de conocimiento que puede ser añadida o quitada del sistema según las necesidades. La parte "SI..." y la parte "entonces..." pueden estar compuestas de más de una frase por ejemplo, "Si es diciembre y estás en el norte del circulo antártico, entonces necesitas un buen abrigo... y ...una linterna día y noche". El formato "Si... Entonces..." de las reglas de producción hace relativamente fácil codificar los sistemas expertos del conocimiento, pero frecuentemente pensamos sobre la experiencia de una manera: "Si... Entonces...". 5 Las reglas de producción en sistemas expertos escritas en el OPS5 no necesitan acogerse a un orden particular por que el control de flujo en un programa no está determinado por el orden en el que el programador ha codificado las reglas. En lugar de eso las reglas son candidatas a actuar cuando los elementos "Si..." son satisfactorios por el estado actual del sistema, que continuamente cambia al ir actuando las reglas. Explícitamente las estructuras de control en algunos programas pueden también limitar la aplicabilidad de alguna regla en algún momento. La capacidad para añadir o quitar reglas de producción en algún punto del sistema sin considerarlas por orden ayuda a desarrollar el trabajo más fácilmente. Arboles de Búsqueda en las Representaciones Espacio−Estado Un estado es un conjunto de condiciones o valores que describen un sistema en una punta específico durante el proceso. Una representación Espacio−Estado es aquella en la que los operadores usan un nuevo estado, y solo uno, en la base de datos, cada vez que se emplean. Las representaciones Espacio−Estado, que utilizan varios métodos de búsqueda a través de la base de datos para alcanzar soluciones, han sido usadas por juegos de ajedrez, sistemas para encontrar rutas y problemas que incluyan muchos operadores y muchos posibles estados. La búsqueda de un camino de solución a través del Espacio−Estado se puede ilustrar gráficamente mediante nodos y enlaces de conexión. Cada nodo representa un estado del sistema y los enlaces representan la acción de un operador para cambiar el sistema de un estado a otro. Los nodos pueden tener punteros que señalen al nodo origen de forma que cuando se alcance la solución podamos conocer su camino. En algunos métodos de búsqueda los punteros también se usan para marcar los caminos "falsos2. Los gráficos son dibujos generalmente como arboles o redes. Un árbol es un gráfico que empieza por la cima con un nodo raíz, de manera que los nodos de un nivel tienen un solo origen (un solo padre). Esta estructura presenta solamente un camino desde el nodo raíz a otro nodo cualquiera. Los enlaces o conexiones entre nodos de un árbol se llaman ramas (ramificaciones). Los nodos en la parte inferior del árbol se denominan nodos terminales (hojas). Los nodos en los gráficos de árbol se denominan algunas veces padres e hijos (descendientes). Hay potencialmente un árbol de un espacio−estado que representa cada posible estado del sistema y otro árbol mas limitado del camino que puede ser construido si el programa busca la respuesta eficientemente. Puede ser importante encontrar un modo eficiente de búsqueda porque el espacio potencial de búsqueda puede ser infinito o, al menos, tan grande que haga el proceso no viable. Métodos de Búsqueda • Búsqueda hacia en fondo: En esta búsqueda el orden de expansión de los nodos es desde el nodo inicial descendiendo en un camino dado hasta que se encuentre la respuesta, o hasta que la búsqueda llegue a un determinado limite de profundidad. Si la búsqueda excede del limite o del fin de ese camino el sistema retrocede y la búsqueda continua en el nodo más cercano. La búsqueda "hacia el fondo" es particularmente eficaz cuando hay muchos caminos largos que conducen a una solución. • Búsqueda a lo ancho: En esta búsqueda todos los nodos en un mismo nivel son expandidos antes de bajar a cualquiera de los que están en un nivel inferior. Si en esta búsqueda debemos bajar hacia un nivel inferior el proceso comienza desde un lado y moviéndose horizontalmente. La besuqueada hacia lo ancho se adapta perfectamente a sistemas que tiene unos pocos caminos de solución evitando mal gastar tiempo. • Búsqueda trepando a la cima: Este método empieza de la misma forma que el de "Búsqueda hacia el fondo", pero la elección de que nodos descendientes serán alcanzados se hace estimando cual es el más cercano a la meta. Esto es suficiente cuando hay alguna manera de medir distancias a la meta; sin embargo hay condiciones engañosas en las que la distancia real no esta clara. El método de " Búsqueda trepando a la cima" proporciona un sistema con medios para superar tales condiciones, tal 6 como retornar y ensayar un camino que fue abandonado antes o aplicar mas de una regla antes de evaluar el resultado en orden a saltar a una parte diferente del espacio de búsqueda. OTRAS TECNICAS Y DISPOSITIVOS USADOS EN LOS SISTEMAS DE IA Abstracción. Los métodos de abstracción se usan para examinar minuciosamente características entre muchos detalles. Esto es particularmente útil en los sistemas visuales y de lenguaje natural, en los que demasiados detalles pueden hacer la representación ininteligible. El proceso de abstracción ese usa también en otras aplicaciones. Una versión simplificada de un problema arroja luz frecuentemente sobre como resolver otro análogo, pero más complejo. Herencia. La herencia es la capacidad que permite a un sistema pasar valores a través de las relaciones "Enlace" y "Ventana". Puede proporcionar ventanas con valores por omisión lo que incrementa la eficacia de la programación. La herencia simplifica la programación porque algunas relaciones se pueden deja implícitas en lugar de escribirlas en reglas. Se espera que los sistemas estructurados que se aprovechen de la herencia, de manera que un valor en un nodo descendente pueda heredar las características de un nodo padre. Encadenamiento. El movimiento, o encadenamiento, a lo largo de caminos a buscar en un espacio de estados, o en el proceso de producción de reglas en un sistema experto puede avanzar o retroceder. Algunos sistemas usan ambos movimientos. Tanto los encadenamientos Hacia adelante también llamados procesamientos "hacia en fondo" como el razonamiento antecedente, y la estrategia de conducción de datos proceden manipulando datos o antecedentes en el conocimiento base para producir un estado modificado del sistema. Este modo de proceder es útil en sistemas constructivos que se dirigen por síntesis como en la producción o en un examen de preguntas "Que... Sí". El encadenamiento hacia atrás, también llamado procesamiento arriba−abajo (Razonamiento consecuente o estrategia dirigida a la meta), divide el enunciado meta en submetas y trabaja hacia atrás para ver si los antecedentes necesarios insuficientes que podrían satisfacer la meta están presentes en la base de datos. Algunos sistemas basados en reglas pueden correr hacia delante o hacia atrás. Facilidades de explicación Muchos sistemas de IA siguen caminos complicados explorando mucho estado, usando muchas reglas, etc., y no es inmediatamente obvio para el usuario la forma en que razonó el sistema su camino de búsqueda. Por eso es útil preparar el sistema para que explique o justifique su razonamiento. Entonces, el usuario puede evaluar si el sistema esta trabajando fiablemente o necesita alguna revisión. Esta es una característica muy importante de muchos sistemas expertos. La mayoría de las explicaciones consisten en un sistema de pasos a través del espacio−problema y muchos incluyen la razón por la que se tomaron aquellos pasos. Estrategias de control Las estrategias de control se usan para activar sistemáticamente procedimientos en el sistema. Los procedimientos tienen varios propósitos. Algunos ejecutan operaciones sobre los datos, otros preparan un método para ejecutar operaciones y otros que muestran que ninguno de los objetivos anteriores se puede encontrar. Los procedimientos controlan algunas veces otros procedimientos; esto es, un procedimiento para llamar a otros procedimientos, si es necesario. O el control puede ser atribuido a objetos que apuntan a los procedimientos para usarlos con esos objetos. El control puede manejarse permitiendo procedimientos 7 voluntarios en respuesta a demandas del sistema, siendo elegido el más apropiado. Una manera de comunicación entre los procedimientos es el método de la pizarra. Una pizarra actúa en el sistema como un foco central donde los procedimientos pueden dejar instrucciones para, y recibir resultados de, otros procedimientos. El método de la pizarra puede ser especializado de forma que cada procedimiento tiene una marca reservada para los mensajes enviados o recibidos, o hay marcas especiales dedicadas a diferentes tipos de tareas, que cualquier procedimiento puede usar. Los dispositivos de control tales como pizarras son idóneos para planning. Típicamente los planning dividen los problemas en dos sub−problemas que son más fáciles de resolver que el problema original. Dispositivos tales como las pizarras son útiles para manejar interacciones entre los sub−problemas durante el procesamiento. Otra forma para que los procedimientos hablen entre sí es por medio del envío de mensajes. Un procedimiento puede hacer una solicitud o comunicación de que alguna acción se ha terminado. En la programación orientada al objeto, los datos objeto almacenan sus propias interpretaciones de direcciones. Se pueden enviar diferentes objetos al mismo mensaje−comando, y los arrastran en el camino diseñado específicamente para ellos. Factores de confianza Los factores de confianza o certeza que se usan son un sistema experto para proporcionar un índice de la solidez con la que el sistema experto soporta su conclusión final. Los factores de confianza se expresan generalmente como una fracción decimal entre 0 y 1, inclusive; eso estima como definitiva una parte de información usada por el sistema. A menudo, el tipo de factor de confianza se deriva y se propaga en un sistema experto, de manera que puede ser tan fiable como las predicciones del tiempo a largo plazo. Sin embargo, donde se asignan valores de confianza creíbles y razonables, se aplican algoritmos bien entendidos; estos factores se pueden usar para ayudar a guiar al proceso de búsqueda, tanto como para evaluar la fuerza de la conclusión obtenida por el sistema de IA. La cuestión importante a formularse al mirar un sistema que use factores de confianza o cálculo probabilístico, es lo susceptible que es la capacidad de solución de un problema a los valores elegidos. LOS LENGUAJES DE LA INTELIGENCIA ARTIFICIAL Los programas de IA se depuran primeramente con procesamiento simbólico mejor que con cálculo numérico; por eso se puede esperar que los lenguajes para trabajar en IA tendrán características de las que usan tradicionalmente para procesamiento de datos. Y aunque es posible trabajar en IA con estos últimos, los investigadores han desarrollado lenguajes especiales que facilitan la programación en IA. Las características que hacen que algunas aplicaciones se procesen eficientemente son improcedentes en otras y en algunas contraproducentes. También los programadores tienen distintos criterios para la elección de un lenguaje óptimo, dependiendo de sus estilos personales. Además exigen a aquellos que faciliten la manipulación de listados, para poder acomodar una amplia variedad de tipos de datos con modos de operación interactivos, así como ajustes de modelos y con métodos de inferencia que pueden ser programados automáticamente para deducir y tomar decisiones automáticas para almacenar posteriormente los resultados. Los lenguajes que se mencionan a continuación se consideran ahora obsoletos: • IPL II, que fue el primero para procesamiento de listados. • SAIL, derivado del Algol, soporta una memoria asociada que es útil en accesos rápidos relacionados con más de un indexado. Se desarrollo con vistas a usarlo en visión y sistemas de lenguaje. 8 • CONNIVER, es el desarrollo de un lenguaje anterior, el PLANNER, para usarse en un contexto de bases de datos. • KRL, usa ajustes de modelos en investigaciones sobre razonamientos. Por otra parte, los lenguajes especializados que se citan a continuación, se usan en Robótica pero en ninguna otra área de la IA. • BASIC, para máquinas inteligentes: es una revisión aumentada y avanzada del BASIC. • RAIL fue desarrollado para ajustar aplicaciones de visión, así como funciones generales de programación. • AL, calcula las posiciones y movimientos de un robot en el espacio. • VAL, Se introdujo en 1979. Es un lenguaje de programación diseñado para robots industriales. • AML (un lenguaje de Fabricación), fue escrito y diseñado para programadores de programación y de ingería aplicada; incluye facilidades para usar información y modificar el comportamiento del sistema por caminos pre−programados. CASOS APLICADOS Nuestro Primer caso aplicado es una herramienta llamada ZEBAL, crada por un joven llamado Jordi Perez. Zebal es un programa para Windows 95/98/Me/2000 con el que podrás mantener una conversación, más o menos inteligente, simulando como lo harías con una persona. Tus preguntas las entras por teclado y Zebal te contestará por pantalla o por voz, a través de un sintetizador de voz. Zebal dispone de posibilidades de conexión a los canales de IRC. Con la conexión de Zebal a IRC podrás conectar a Zebal a Internet para que hable con gente de los canales de IRC, sin necesidad de ningún programa de IRC. La combinación de las frases que tiene pregrabadas Zebal, del diccionario de términos al que tiene acceso y su utilización de sinónimos en las respuestas, forman una combinación que da como resultado una frase que cuesta trabajo saber como la ha elaborado Zebal. Algunas de la característica de ZEBAL son: • Zebal distingue entre varios usuarios. • Memoriza palabras para utilizarlas en conversaciones posteriores. • Salva conversaciones en formatos DBF, ASCII o ANSI. • Edición de las conversaciones por parte del usuario. • Edición de la base de datos de usuarios que conoce Zebal. • Respuestas de Zebal por pantalla, Voz (sintetizador de voz), Internet o portapapeles (Clipboard). • Preguntas a Zebal por teclado, Internet o portapapeles (Clipboard). • Sistema integrado de conexión de Zebal a servidores de IRC (no necesita ningún programa externo de IRC). • Edición de la mente de Zebal para personalizar el sistema (sólo versión registrada). • Preguntas y respuestas de Zebal orientadas a diálogos en IRC. • Control de frases y palabras que son nuevas para Zebal. • Interpretación de varios 'smiles' tipo :). • Adaptado para una resolución de 800x600. • Sistema de conexión a IRC's, que permite: −Conectar a Zebal a los canales de IRC o a personas individualmente. 9 −Guarda en el disco duro listas de canales de distintos servidores para examinarlas sin estar conectado a Internet. −Este módulo de IRC también se puede utilizar como un programa normal para acceder al IRC. Conversaciones ejemplo de ZEBAL en canales de IRC, es larga pero esta muy entretenida. La gente habla con el programa sin saber que es un robot, pero al final la gente lo empieza a ver un poco raro... El nick del programa es ZombieX −> Inicio Canal/Usuario #filosofia Fecha:14/08/98 Hora:00:13:24 ZombieX>> Ya estoy aqui ZombieX>> saludos a todos {Mamen}> el universo es infinito ZombieX>> ¿ como te afecta a ti que sea infinito ?. por favor, hablame mas de ese universo que me decias Papageno_> ¿cual es la pregunta? ZombieX>> no, me parece que no es la pregunta. pero siento curiosidad por saber mas acerca de esa pregunta de la que me hablaste Daemion> holas ZombieX>> buenas noches daemion Necromant> si es finito o infinito ZombieX>> ¿ desde cuando es finito o infinito ? Daemion> propaganda de la huelga: ZombieX>> ¿ y tu crees que es normal hablar aqui de la rapidez ?, por lo visto a ' pini' le parece de lo mas estimulante Necromant> una de las dos ha de ser ZombieX>> el serlo o no, no veo que importe demasiando necromant Papageno_> Es finito ZombieX>> ¿ como te afecta a ti que sea finito ? Alastor> si es finito, es perfectamente posible el eterno retorno ZombieX>> ¿ lo es ? Daemion> el 3 de septiembre, huelga de telefonos caidos ZombieX>> pero siento curiosidad por saber mas acerca de esa huelga de la que me hablaste Aries> Supongo que no hay forma empírico de demostrar que es finito o no, no creeis? ZombieX>> si, es probable que sea finito o no no creeis Daemion> visitad: ZombieX>> ¿ visitad ?. ¿ a que te refieres ? Necromant> es por hablar de un tema joder, es un canal de filosofos ZombieX>> si diciendo insultos te desahogas, adelante Necromant> no es practico ZombieX>> pues dime tu, ¿ que es practico ? Daemion> http://www.lanzadera.com/lahuelga ZombieX>> no entiendo lo que me dices, escribe mejor por favor Daemion> y si no os enterais, preguntad en el canal #la_huelga ZombieX>> yo no lo afirmaria Necromant> filosofar es una actividad no practica, naces con esa tara ZombieX>> ¿ y que, si no practica naces con esa tara ?. una cosa, ¿ a que te referias con la actividad ? Papageno_> Si por universo entendemos los límites de la materia y la radiación, es finito ZombieX>> ¿ solo esos ?, creo que son pocos. ¿ y en que te afecta a ti la materia a la que me hiciste referencia ? 10 Alastor> pero creo que a efectos prácticos es como creer en Dios, no te afecta para nada ZombieX>> yo no creo que sea como creer en dios no me afecta para nada Papageno_> El universo es finito y no hay nada que discutir al respecto ZombieX>> ¿ es que quieres que haya nada que discutir al respecto ? Alastor> no está demosrado ZombieX>> no comprendo como puedes decir que no esta demosrado Papageno_> Es así y ya está. Lo dicen los físicos, que son lo que saben del tema ZombieX>> ¿ y esos son muchos ? Aries> No creo tampoco que debamos considerar el Universoi sólo la materia... que hay de Dios, el alma.. los conceptos, no forman parte del Universo ZombieX>> ¿ que quieres decir con que debamos considerar el universoi solo la materia que hay de dios el alma los conceptos no forman parte del universo ? Alastor> zombie, escribes demasido rápido ZombieX>> por favor, hablame mas de ese eterno retorno que me decias Necromant> si nos situasemos en el limite del universo y tirasemos una flecha ¿que haria esta? ZombieX>> ¿ que estas preguntandome realmente ? Alastor> sospecho un robotillo por ahí ZombieX>> ok, alastor, pero estaba pensando y no acabo de comprender lo que me dijiste del robotillo Necromant> rebotaria ? hay algo entonces ZombieX>> es muy impreciso algo entonces villalong> los fisicos "solo" son cientificos ZombieX>> ¿ quien te ha dicho que lo son ?. ¿ que querias decir cuando me comentaste lo de los fisicos ? Necromant> desapareceria? ZombieX>> no entiendo muy bien la pregunta. ¿ puedes elaborarla un poco mas ? orion> zombiex, escribes MUY rápido!! Necromant> ¿donde? ZombieX>> esa es una pregunta un poco ingenua. ¿ como es esa flecha de la que me hablaste ? Papageno_> MENUDA CANTIDAD DE CHORRADAS QUE ESTAIS DICIENDO ZombieX>> ¿ como quieres que me crea que estais diciendo ? Alastor> zombie tiene conectado un robot ZombieX>> creo que no te conducira a nada el preocuparte por un robotillo del tipo que me comentaste orion> tú crees alastor? ZombieX>> ¿ que te impulso a decir eso sobre mi ? orion> es que es algo raro ZombieX>> ampliame ese 'algo' un poco mas Necromant> si lanzas una flecha en el limite hipotetico del universo ¿que haria Papageno? ZombieX>> ahora mismo no se que haria papageno. si pero ¿ que es un limite para ti ? Aries> Como puede ZombieX escribir a tales velocidades, no sospechais nada? orion> claro aries ZombieX>> para mucha gente eso no esta tan claro Necromant> yo sospecho mucho ZombieX>> tienes algun problema con la gente cuando dices que sospecho mucho orion> además dice cosas sin sentido ZombieX>> ya veo.. pero por favor continua Necromant> si ZombieX>> si, es posible orion> veis? ZombieX>> a que te refieres cuando preguntas "¿ veis ?" orion> jajajaa ZombieX>> pues yo no le veo la gracia Papageno_> NO HAY LÍMITE DEL UNIVERSO 11 ZombieX>> ¿ que cambiaria si hubiese limite del universo ?. hablame un poco mas sobre esa pregunta que me comentaste Alastor> es un robot ZombieX>> probablemente no es un robot Necromant> si ZombieX>> pues yo creo que no orion> qué bueno ZombieX>> ¿ que esta bueno ? orion> no ZombieX>> vale, pero explicame porque no orion> si ZombieX>> yo no estaria tan seguro de ello orion orion> si ZombieX>> lo afirmas muy rotundamente orion Necromant> decir si todo el tiempo a ver que hace ZombieX>> ¿ y que si hace ? Papageno_> si el universo es cerrado ZombieX>> ¿ estas seguro que es cerrado ?. hablame un poco mas sobre esa radiacion que me comentaste Alastor> si ZombieX>> ¿ si ?, si tu lo dices, asi sera Dr. Abuse 6.02 Otro caso aplicado es Dr. Abuse; Dr. Abuse es un programa de Inteligencia Artificial que demuestra apariencia humana. Se trata de un robot de charla con el que puedes mantener una conversación divertida y más o menos inteligente. Dr. Abuse ha sido entrenado en cientos de conversaciones con usuarios humanos o robóticos a través de Internet y otros medios. Al utilizar este programa quedarás gratamente sorprendido por la agudeza de sus respuestas y llegarás a dudar si las máquinas piensan o no. Dr. Abuse: − Es un robot de charla que piensa que es realmente humano. − Utiliza técnicas de comprensión del lenguaje natural. − Tiene una potente base de conocimientos. − Recuerda datos sobre el usuario y otros temas tratados anteriormente. − Permite al usuario conversar sobre temas serios utilizando el Modo Autoayuda. − Responde mediante Síntesis de voz utilizando cualquier motor Text−To−Speech compatible SAPI. − Ejecuta programas, navega por la Red y envía e−mail mediante la Ejecución de órdenes. 12 DISTINCIONES Y PREMIOS − PC WORLD, nº 170, noviembre 2000, incluye Dr. Abuse 6.01. − HomePC, nº 43, septiembre 2000, incluye Dr. Abuse 6.00. − Windows NT Actual, nº 10, 1999, incluye Dr. Abuse 5.10. − Hot Shareware, nº 45, junio 1999, recomienda e incluye Dr. Abuse 5.10. − ReD, nº 21, junio 1999, recomienda Dr. Abuse 5.10. − PC WORLD, nº 155, junio 1999, incluye Dr. Abuse 5.10. − CD Shareware, nº 28, enero 1999, recomienda e incluye Dr. Abuse 5.00. − CD Shareware, nº 28, enero 1999, incluye Dr. Abuse 4.20. − PCmanía, nº 73, noviembre 1998, incluye Dr. Abuse 5.00. − Hot Shareware, nº 37, octubre 1998, incluye Dr. Abuse 5.00. − Hot Shareware, nº 6, marzo 1996, recomienda e incluye Dr. Abuse 3.00. − CD Ware Multimedia, nº 17, marzo 1996, incluye Dr. Abuse 3.00. − Calificado MB! (¡Muy Bueno!) en Softonic.com. − Reseñado en BotSpot. − Reseñado en The Simon Laven Page. CONCLUSIÓN La hipótesis es que en la medida en que los ordenadores más mimeticen comportamientos inteligentes humanos, nos aportarán información relevante sobre el propio sistema cognitivo humano. Y también podría decirse lo contrario, que en la medida en que se develen los principios cognitivos del procesador humano, se podrán elaborar mejores programas de Inteligencia Artificial. Podríamos decir entonces que el ordenador (computadora) es similar al sujeto, que puede hacer lo mismo que éste y hasta llegar a superarlo en muchos casos? Estamos acostumbrados a escuchar que las máquinas son mucho más rápidas que los seres humanos y que por lo tanto pueden suplantar a muchos hombres, son más eficaces y eficientes. Pero hasta qué punto la máquina es más que 1000 hombres?. 13 "El ordenador es un producto del psiquismo humano, pero solo se plasma como código operante; no produce ni conceptos ni significantes, sólo reproduce lo que el ser conceptual delimita como código en él. El ordenador no puede reproducir íntegramente entes semejantes, a la manera como lo hace el cuerpo humano; no conforma entonces un orden maquinal; no es productor, sino solamente reproductor de lo que el ser humano instancia en él" BIBLIOGRAFÍA Inteligencia Artificil, Un Enfoque Moderno. Stuart Rusel. http://www.ctv.es/USERS/jboronat/drabuse.html http://www.readysoft.es/home/coding/zebal/ http://www.unitec.edu.co/biblioteca/ia/tm42ia.html Lenguaje Natural Escrito 1 14