1. CARACTERÍSTICAS Y BASES La inteligencia artificial (IA) es algo que fascina a muchas personas, especialmente aquellos que creen que los computadores serán capaces de concebir por sí mismos lo que para los humanos algunas veces es complejo: la planeación, la toma de decisiones, el razonamiento abstracto, eleiminación de juicios subjetivos, etc.; y una vez hecho esto, el paso al autoaprendizaje sería la meta. Pero por la evolución de la tecnología y el creciente incremento de capacidad en los ordenadores personales, comienza a ser realidad programas que muestran características de inteligencia. La posibilidad de construir una máquina que pueda rivalizar o superar la capacidad de razonamiento del cerebro humano potencia la imaginación del ser humano. Los esfuerzos de la IA se enfocan hacia la comprensión y construcción de entes que presenten inteligencia; es decir, construir sistemas o agentes inteligentes que desarrollen actividad mentales, solucionen problemas complejos y provean explicaciones amplias; en otras palabras, se busca construir máquinas que hagan aquello que, al parecer de otros, es tener inteligencia. La IA utiliza herramientas teóricas y experimentales de las ciencias de la computación para estudiar el fenómeno del comportamiento inteligente y el desarrollo de los sistemas respectivos. La IA comenzó como resultado de investigación en sicología cognitiva y lógica matemática. Se ha enfocado sobre la explicación del trabajo mental y construcción de algoritmos para solucionar problemas de propósito general1. La eficiente utilización del computador está limitada tanto al conocimiento y aplicabilidad de los lenguajes de programación como al paradigma de comunicación hombre-máquina, esta limitación busca superarse desarrollando herramientas que permitan una comunicación en lenguaje natural, con una representación de conocimiento y procesamiento no algorítmico y paralelo. Sin embargo, una aplicación es desarrollar programas computacionales que solucionen problemas a partir de una continua interacción entre la máquina y el hombre, que las máquinas "aprendan" de los hombres para realizar mejor su labor. Para que una máquina aprenda, debe poder representar lo que entiende. El conocimiento deberá estar integrado en algún tipo de mecanismo: estructura de datos, bases de datos, bases de conocimiento, árboles de decisión, estructuras lógicas, etc. La idea de construir máquinas que ejecuten tareas percibidas simbólicas de la inteligencia humana es un atractivo2. Las tareas estudiadas 1 En el anexo A se muestran con mayor claridad los resultados que se han dado en las investigaciones en IA, como las perspectivas. 2 Aunque muchas preguntas nos inquietan y nos incitan a investigar, otras llevan a soñar, a pensar, a Inteligencia artificial incluyen juegos, traducción y comprensión de idiomas, diagnóstico de fallas, cognición, asesoría experta en diversos temas. Las compañías requieren expertos en muchos campos para solucionar problemas, plantear desarrollos tecnológicos o técnicos, gestionar conocimiento, tomar decisiones, realizar planes, ... pero ellos son escasos, no se hallan alrededor; tienen poco tiempo o cuestan demasiado. Para solucionar el problema del recurso humano, se ha hecho imprescindible construir sistemas capaces de almacenar millones de hechos de experiencia, proveer su recuperación por procedimientos que generen conocimiento, den explicaciones del porqué, cómo, qué, cuándo, y sepan distinguir cualidades que presentan los objetos. Hasta 1981 muchos centros desarrollaban investigación en el campo de la IA con los recursos propios. Esto cambió cuando el gobierno japonés lideró una investigación para identificar los requerimientos para la década del 90. Aprovechando el temor a un posible dominio por parte de los Japoneses, empresas e investigadores obtuvieron apoyo. La investigación japonesa3 planteó que debía buscarse cuatro metas fundamentales: 1. 2. 3. 4. Incrementar la productividad en áreas poco productivas como: a. Procesamiento de documentos. b. Administración de oficinas. c. Administración y toma de decisiones. Competir y contribuir internacionalmente. Contribuir al ahorro de energía y recursos. Hacer frente a una sociedad envejecida. Esto es, buscar una efectiva educación y en particular proveer por medio del computador el aprendizaje continuo. A partir de ello surgieron proyectos para el desarrollo de sistemas computacionales, lenguajes y herramientas de mayor poder. Revolución que llevó al procesamiento de conocimiento, realización de programas para Instrucción Asistida por Computador (IAC), generación de Sistemas Expertos (SE), creación de Máquinas Inteligentes que trabajen con lenguaje natural y tengan características humanas: decidan, piensen, buscar nuevas estrategias y hasta imaginar estados futuristas, todo por las capacidades que posee el cerebro humano. De hecho, parece que la naturaleza compensó con creces la aparente ineptitud física humana con la capacidad de razonar, imaginar, pensar y comprender mejor que cualquierotra especie. ¿Qué pasaría cuando una máquina piense? ¿Llegarán a construirse máquinas con capacidades superiores al ser humano? 3 La investigación se desarrolla principalmente en tres campos: hardware, software y aplicaciones. En el campo de hardware se concentra en una arquitectura de computadores caracterizada por inferencia secuencial y/o paralelo y el desarrollo de máquinas para bases de datos afines. El grupo de software investiga sobre el lenguaje que sea flexible, versatil; esto incluye sistema operativo, lenguaje natural y representación del conocimiento. El tercer grupo combina los resultados de los dos primeros grupos en la labor sobre sistemas de gestión de bases de datos y sistemas expertos para conseguir validar las teorías propuestas. Luis Carlos Torres Soler 4 Características y bases hablen, oigan, vean, se muevan4; a trabajar en vida artificial y computación evolutiva, neuronal o molecular. El campo de la inteligencia artificial es diverso y multifacético al enfrentar problemas científicos profundos y complejos y, al mismo tiempo, desarrollar tecnologías de uso práctico. Científicos de diversas disciplinas incursionan gradualmente en la IA, aportando conocimiento para solucionar problemas en su área a partir de técnicas y métodos computacionales con razgos de inteligencia. La solución de la mayor parte de los problemas puede considerarse una actividad intelectual de generación y selección de soluciones alternativas, dentro de una gama de soluciones posibles. Inspirándose en el modelo mental, la Inteligencia artificial persigue metas como la del razonamiento simbólico. Puesto que una inferencia corresponde a una etapa elemental de razonamiento, la capacidad de razonamiento de un ordenador de este tipo se mide en Lips (Logical Inference per Second) y en sus múltiplos (Klips, Mlips), de modo que un Lips es una inferencia silogística por segundo. Se estima habitualmente que una operación de inferencia necesita de cien a mil pasos, de modo que un Lips equivale a 100-1.000 instrucciones por segundo. Para hacer frente a estas exigencias técnicas y a sus velocidades, ha sido menester renovar las arquitecturas de los ordenadores. Al razonamiento secuencial corresponde el flujo electrónico lineal en la máquina. Pues las arquitecturas paralelas, que conectan varias máquinas capaces de efectuar muchas operaciones en paralelo en una misma red de comunicación, rompen la relativa lentitud inherente al proceso secuencial, que realiza sus operaciones una después de otra. La inteligencia artificial (IA) es una disciplina que analiza los comportamientos humanos en la percepción, comprensión y resolución de los problemas, con el objetivo de reproducirlos mediante máquinas. Como conjunto de facultades, resulta más pertinente la definición de Shallis, al especificar que la inteligencia artificial es la capacidad de aparentar conciencia a través del procesamiento de información racional o lógica. Las bases de la inteligencia artificial residen en: 1) el conocimiento sobre los procesos 4 El ordenador de quinta generación tendría capacidad para el proceso de datos numéricos y no numéricos (incluyendo, por lo tanto, el lenguaje natural, la escritura, los grafismos y las imágenes icónicas). Supone por lo tanto, un paso definitivo desde una cuantificación (numerización) del mundo a una visión que, junto a las cantidades, admite ciertas categorías cualitativas. Además, este ordenador estaría capacitado para los procesos de aprendizaje, inferencia y asociación, capacidades muy sofisticadas del ser humano. De conseguirse plenamente tales capacidades no sería descabellado afirmar que el hombre habría sido capaz de construir un neocórtex órbito-frontal electrónico, culminando con ello su ingeniería de simulacros antropomórficos. Logros hallados ha sido una máquina basada en el conocimiento, llamada Delta que comprende un sistema de inferencia, un sistema de conocimiento, un sistema de software y un sistema para el desarrollo de prototipos de software. Universidad Nacional de Colombia 5 Inteligencia artificial mentales del ser humano; 2) el conocimiento acerca de cómo seleccionar y utilizar el mismo conocimiento (llamado metaconocimiento). Con estas bases, el objetivo fundamental de la IA es reproducir las funciones de la inteligencia humana, mediante las estrategias utilizadas para cumplir diversas funciones y de las que el hombre, incluso el científico o el intelectual, es muy raramente consciente. No existe una definición que posea amplia aceptación entre los investigadores por los diferentes enfoques que se presentan, pero, algunas definiciones dadas de IA son: La interesante tarea de lograr que los computadores piensen... máquinas con mente, en su amplio sentido literal (Haugeland). Disciplina científico técnica que trata de crear sistemas artificiales capaces de un comportamiento que, de ser realizado por seres humanos, se diría que requiere de inteligencia. La automatización de actividades vinculadas con procesos de pensamiento humano, actividades tales como toma de decisiones, resolución de problemas, aprendizaje... (Bellman). El arte de crear máquinas con capacidad de realizar funciones que efectuadas por personas requieren inteligencia (Kurzweil). El estudio de cómo lograr que los computadores realicen tareas que, por el momento, los humanos hacen mejor (Rich & Knight). El estudio de las facultades mentales mediante el uso de modelos computacionales (Charniak & McDermott). El estudio de los procesos que permiten percibir, razonar y actuar al ser humano (Winston). Estudio de los mecanismos de la inteligencia y las tecnologías que los sustentan (Newell). Intento de reproducir (modelar) la manera en que las personas identifican, estructuran y resuelven problemas difíciles (Pople). Un campo de estudio que se enfoca a la explicación y emulación de la conducta inteligente en función de procesos computacionales (Schalkoff). La rama de la ciencia de la computación que se ocupa de la automatización de la conducta inteligente (Luger & Stubblefield). La IA es la disciplina científica que se ocupa del estudio de las ideas que permiten ser inteligentes a los ordenadores (Winston). 6 Luis Carlos Torres Soler Características y bases Todas estas definiciones, como puede apreciarse, presentan enfoques diferentes, cada una es válida en su contexto, pero no necesariamente satisfacen los requerimientos en un amplio campo. No es posible dar una definición universalmente aceptable de IA, lo cual no es de extrañar ya que tampoco existe una definición aceptada en forma general de inteligencia [humana]. Pero los procesos y mecanismos en desarrollo buscan que el computador llegue a ser inteligente. La definición de IA en este documento es: rama de la computación que se encarga, entre otras cosas, de los problemas de percepción, razonamiento y aprendizaje en sistemas artificiales, y que tiene como áreas complementarias: sistemas expertos y de conocimiento, robótica, lenguajes naturales, redes neuronales, lógica difusa, entre otras. "El grado de inteligencia que se atribuye al comportamiento de algo está determinado tanto por nuestro propio estado mental y nuestra capacitación como por las propiedades del objeto que se analiza" Alan Turing. 0Figura 1.1. Ciencias y áreas para la inteligencia artificial. Una de las características de los métodos de la IA es el uso de símbolos. Además, que el comportamiento en los programa no es descrito por algoritmos, se trata de un conjunto de pasos necesarios para resolver un problema dado sin definirse cuál es la secuencia. El razonamiento dependiente del conocimiento, implica programas que incorporan factores y relaciones del mundo real y del ámbito del conocimiento en que Universidad Nacional de Colombia 7 Inteligencia artificial opera. La IA es una combinación de la ciencia de la computación, fisiología, sicología y filosofía, tan general y amplia como eso, reuniendo varios campos (robótica, sistemas expertos, ...), todos teniendo en común la creación de máquinas que puedan "pensar"5 (ver figura 1.1). Cada ciencia con su propio método de trabajo y de verificación ha logrado escalar peldaños muy importantes, liderando continuamente los paradigmas que las sustentan. Con el advenimiento de las ciencias de la información (informática) y la mecanización de la misma, nace la IA. Es un reto a la propia creatividad y un medio ejemplar para refinar el conocimiento humano. La sicología y la filosofía se ocupan de la inteligencia humana; la IA se encamina tanto a la construcción de entidades, agentes o sistemas inteligentes6, como a su comprensión. La IA difiere mucho de la sicología dado que aplica con énfasis la computación, y difiere mucho de las ciencias de la computación por la atención que presta a la percepción, al razonamiento y a la acción. La filosofía tiene una relación amplia con la IA, ya que buscan formalizar el sentido común: 1. 2. 3. 4. 5. 5 Construir una visión del mundo en un programa no le da la habilidad al programa de expresar explícitamente esa visión. El sentido común requiere de una formulación científica. Se requiere una formalización, pero la estructura fundamental del mundo todavía no se conoce; por tanto, exige formulaciones imprecisas y a veces inconsistentes. Se requieren conceptos que tienen sentido sólo en teorías aproximadas. Se necesita un formalismo que permita ir mas allá de las aseveraciones hacia un siguiente nivel de aproximación cuando sea posible y necesario. Existen dos formas genéricas de hacer programas: i) empíricamente (teorías que concretan datos con acciones); ii) realísticamente (hechos que existen independientemente del programa y que la realidad no es sólo lo que interactúa con el programa). Ésta última es el interés de la IA. Para clasificar una máquina de "pensante", es necesario determinar elementos de la inteligencia que impliquen resolver problemas complejos, hacer generalizaciones o relaciones, percibir, entender o comprender. 6 Un agente o entidad inteligente es algo capaz de percibir y actuar. Entender algún lenguaje natural, reconocer imágenes, encontrar la mejor manera de resolver un problema, encontrar la ruta óptima para llegar a un objetivo específico, etcétera, actividades inherentes al razonamiento humano y que podría realizar un agente inteligente. Luis Carlos Torres Soler 8 Características y bases La lingüística ofrece teorías sobre la estructura y significado de los lenguajes naturales y de la computación. Durante siglos de la matemática han surgido teorías formales relacionadas con la lógica, la probabilidad, la toma de decisiones, la computación y otras que facilitan la solución de gran cantidad de problemas, que en general, para su solución se requiere inteligencia. La robótica estudia el desarrollo de máquinas capaces de realizar procesos mecánicos repetitivos y tareas manuales que efectúa el hombre. La robótica es la conexión inteligente entre la percepción y la acción [Brady M.]. Es una síntesis entre la automática y la informática. La IA sería centrarse únicamente en habilidad mental humana, mientras que la robótica dirige sus esfuerzos a producir comportamientos físicos animados. La IA tiene aplicación en la robótica cuando se requiere que un robot "piense" y tome una decisión entre dos o más opciones; entonces, ambas ciencias comparten algo en común. El robot se define: "un agente artificial, activo, cuyo entorno es el mundo físico"7. Con el término activo se descarta de la definición a los objetos inanimados; con el término artificial se descarta a los seres vivos; con el término físico se descarta a los agentes constituidos únicamente por software. La robótica es un área de investigación multidisciplinaria8. El diseño de robots requiere conocer estructuras, materiales, cinemática, dinámica, actuadores, sensores, control y programación, entre otros. Los sensores son las herramientas de la percepción de los robots porque les permite, al igual que los humanos, saber dónde se localizan los objetos y qué acciones tomar según el entorno.9 Isaac Asimov propuso en sus obras de 7 La palabra robot procede del término checo robota (trabajador, siervo) utilizada por el escritor checo Karel Capek en 1920. En la actualidad, el término se aplica a todos los ingenios mecánicos, accionados y controlados electrónicamente, capaces de llevar a cabo secuencias simples que permiten realizar operaciones tales como carga y descarga, accionamiento de máquinas; ensamble, soldadura, torno, pintura, ... 8 Importante aclarar que existe una gran diferencia entre robótica y cibernética. La cibernética es una ciencia interdisciplinaria que trata la comunicación y el control en organismos vivos, máquinas u organizaciones. El término es una derivación del vocablo griego kybernetes que significa gobernador o piloto, y fue aplicado por primera vez en 1948 a la teoría del control de mecanismos por el matemático americano Norbet Wiener. En el cuerpo humano, el cerebro y el sistema nervioso funcionan para coordinar la información, la cual es utilizada para determinar el futuro curso de una acción; controlar los mecanismos para la autocorrección en máquinas que sirven con un propósito similar. Este principio se conoce como retroalimentación, el cual es fundamental en la automatización. La cibernética se aplica en la sicología, servomecanismo, economía, neuropsicología, ingeniería en sistemas y al estudio de sistemas sociales. 9 Se entiende por robot industrial a un dispositivo de maniobra destinado a ser utilizado en la industria y dotado de uno o varios brazos, fácilmente programable para cumplir operaciones diversas con varios grados de libertad y destinado a sustituir la actividad física del hombre en las tareas repetitivas, monótonas, desagradables o peligrosas. Robot Institute of America (RIA) define al robot como "un manipulador multifuncional reprogramable, diseñado para mover materiales, partes, herramientas o Universidad Nacional de Colombia 9 Inteligencia artificial ciencia ficción las siguientes leyes para un robot: Ley cero: un robot no puede atentar contra la humanidad o, por inacción, permitir que la humanidad sea lastimada. Ley uno: un robot no lastimará a un ser humano, o por inacción, permitir que un humano sea lastimado, a menos que éste viole una ley de mayor jerarquía. Ley dos: un robot debe obedecer órdenes dadas por humanos, excepto cuando estas órdenes entran en conflicto con una ley de mayor jerarquía. Ley tres: un robot debe proteger su propia existencia si no entra en conflicto con una ley de mayor jerarquía. Muchos problemas se encuentran en la intersección de la IA y la robótica, que sólo combinando técnicas de ambos campos se logra diseñar máquinas inteligentes. Hay igualmente áreas de conocimiento y estudio común: La visión (percepción): estudia la identificación, inspección, localización y verificación de objetos. Para el robot, es una necesidad poder "ver". Las máquinas serán capaces de reaccionar a su entorno por influencias recibidas a travéz de sensores y dispositivos de interacción con el exterior. Entre los grandes retos perceptivos que se plantea resolver el de la visión artificial o visiónica, cuyo órgano pionero fue el Perceptrón (1958) de Frank Rosenblatt, el cual utilizó una red de neuristores, circuitos eléctricos destinados a modelizar neuronas. Los sensores utilizados para la visión artificial suelen ser cámaras, cuya señal de vídeo es digitalizada para poder ser tratada con métodos informáticos. El gran problema de la visión artificial es un problema semántico, es decir, el del reconocimiento de las formas visuales, que tiene que basarse, como el aprendizaje visual humano, en la clasificación categorial de la información por sus rasgos más pertinentes y definitorios. La meta de la visiónica es que la visión de la cámara de vídeo, como simulacro de la mirada humana, sea capaz de interpretar y reconocer las formas gracias a su conexión con un ordenador. La visión artificial, como prótesis óptica de la máquina, supone un dispositivos especializados a través de movimientos variables programados para la performance de una variedad de labores". Esta definición indudablemente no abarca todas las posibilidades de aplicación presente y futuras de los robots, sin embargo, hoy día los robots realizan un conjunto de movimientos previamente programados y la sucesión deellos están en función del fin que se persigue, siendo fundamental el almacenamiento de las secuencias correspondientes a los diversos movimientos. Se presenta el caso en que las piezas o partes a ser manipuladas no poseen posiciones prefijadas, en este caso el robot debe reconocer la posición de la pieza y actuar u orientarse para operar sobre ella en forma correcta, es decir, posee un sistema de control adaptativo. Si bien no existen reglas acerca de la forma que debe tener un robot industrial, la tecnología incorporada a él está perfectamente establecida y en algunos casos esta procede de las aplicadas a las máquinas. Luis Carlos Torres Soler 10 Características y bases universo visual y un imaginario del que el hombre está excluido, a menos que conecte a la máquina una pantalla de visualización para espiarla. Desde ahora, la memoria icónica ya no es privilegio exclusivo de los seres vivos. Los juegos (razonamiento): estudia aquellos problemas cuya resolución no necesita explicación y justificación, sino que deben cumplir un conjunto de reglas. El habla: busca identificar la voz de quién está comunicándose, como proveer sonidos que simulen la voz a fin de "conversar" con el usuario. Las tecnologías del habla se encuentran en desarrollo e introducción en nuestro entorno cotidiano. El habla, medio de comunicación por excelencia entre los seres humanos, comienza a ser utilizada como medio de comunicación entre máquinas y seres humanos. Dentro de esta tecnología se engloban entre otros los procesos: a. b. c. d. e. f. Codificación de voz. Comprensión de la información de la señal de voz para trasmitirla o almacenarla en forma digital. Síntesis de voz. Proveer sonidos sintéticos de una señal para trasmitir un mensaje desde una máquina. Reconocimiento automático del habla. Extraer el mensaje transportado por una señal de voz. Verificación e identificación de la persona. Verificar o identificar la identidad de una persona por el habla. Traducción automática. Reconocer el mensaje de una persona hablando en un idioma y traducir el mensaje a otro idioma. Identificación del lenguaje. Identificar el idioma que utiliza una persona hablante. El movimiento: capacidad por poseer brazos y piernas a fin de desplazarse de un lugar a otro. Procesamiento de lenguaje natural (PLN): estudia el uso del lenguaje natural como medio de comunicación con las máquinas; intervienen procesos como: comprensión del lenguaje, el habla, la traducción y la síntesis. Uno de los rasgos más marcados en los humanos es el del lenguaje; la cultura afecta el pensamiento y la actuación de una persona y a partir de ello, el individuo realiza una representación del mundo y estructura modelos de la realidad. Con base en estos argumentos, la IA ha centrado gran parte de sus esfuerzos en la comunicación en lenguaje natural con la máquina. Sin duda, lo más preocupante es la comunicación hombre-máquina en lenguaje natural para que el usuario determine soluciones a un problema de una manera clara y directa, provea conocimiento y no datos, y que la máquina sea capaz de realizar inferencia sobre lo que el usuario dice. El reconocimiento del lenguaje natural, a través de la palabra hablada, presenta algunas dificultades complejas, pues implica un reconocimiento de los sonidos de la voz (y la Universidad Nacional de Colombia 11 Inteligencia artificial eventual identificación de su emisor), del vocabulario y de las leyes gramaticales, lo que conduce a la meta final de descifrar su sentido. Pero el problema de los diferentes contextos socioculturales en que se produce la emisión verbal, que determinan diferentes sentidos, así como el de los giros o locuciones atípicas, ambiguas, coloquiales, dialectales, metáforas, juegos de palabras, etc., plantean enormes problemas al automatismo de la interpretación semántica. Aprendizaje: por lo general, la inteligencia que posee un agente es algo que le ha dado su diseñador, pero los procesos dados no son el mejor método ya que el mundo físico no es lineal y además es poco predecible; es decir, existen variables que no pueden determinarse con facilidad. Cuando el diseñador del agente desconoce el ambiente en el que va a interactuar, el único camino que dispondrá el agente es el del aprendizaje. El aprendizaje del agente utilizaría la experiencia buscando autonomía y alto desempeño en el dominio. El aprendizaje se produce como resultado de la interacción entre el agente y el mundo, y de la observación por el agente de sus propios procedimientos de toma de decisiones. El aprendizaje está en la memorización de experiencias, la creación de procesos, teorías y reglas. Redes neuronales: están constituidas por nodos o unidades, comunicadas mediante conexiones. A cada conexión se le asigna un peso numérico. Los pesos constituyen el principal recurso de memoria de la red neuronal y el aprendizaje se realiza usualmente con la modificación de estos pesos. Los pesos son modificados de manera que la conducta de entrada-salida de la red esté acorde con la del ambiente que produce las entradas. Algunas unidades se encuentran conectadas con el medio externo, y son llamadas unidades de entrada, encargadas de percibir los estímulos y emitir los estímulos o unidades de salida producto del procesamiento de la entrada. Las principales características que diferencian a las redes neuronales de otras tecnologías de inteligencia artificial son: a. b. c. 12 Capacidad de aprendizaje a partir de la experiencia. Normalmente, para la elaboración de un programa informático es necesario un estudio detallado de la tarea por realizar para después codificarla en un lenguaje de programación. Las redes neuronales se entrenan para efectuar una determinada tarea sin necesidad de un estudio a fondo del problema, ni de programarlas, además, pueden ser reentrenadas para ajustarse a nuevas necesidades de la tarea que van realizar, sin tener que reescribir o elaborar el código, cosa que sí es muy frecuente en programas tradicionales. Velocidad de respuesta una vez concluido el entrenamiento. Se comportan como lo hace el cerebro: los seres humanos no necesitamos pensar mucho para reconocer un objeto, una palabra,... una vez que hemos aprendido a hacerlo. Robustez, en el sentido que el conocimiento adquirido se reparte por toda la red, de forma que si se lesiona una parte se continúa generando cierto número de respuestas correctas. Luis Carlos Torres Soler Características y bases Sistemas difusos: la lógica difusa es la rama que analiza y estructura información del mundo real en una escala entre falso y verdadero. La lógica difusa toma conceptos básicos como caliente o húmedo y les permite a los ingenieros construir televisores, acondicionadores de aire, lavadoras y otros dispositivos que juzgan información difícil de definir. Cuando los matemáticos carecen de algoritmos para representar un sistema que debe responder a ciertas entradas, la lógica difusa es una herramienta para controlar o describir el sistema usando reglas de sentido común que se refieren a cantidades no determinadas. Los sistemas difusos frecuentemente tienen reglas tomadas de expertos; cuando no hay experto, los sistemas difusos adaptivos (adaptativos) aprenden las reglas observando cómo se manipulan sistemas reales. Sistemas expertos (SE): son programas de computador que buscan simular los procesos intelectuales de los expertos humanos como: la interpretación, el diagnóstico, la monitorización, el control, la predicción, la planificación, el diseño y la enseñanza, entre otros. Una interesante orientación que caracterizan los sistemas en IA es llamado principio de generalidad: Al tener una estructura lógica básica necesaria para solucionar un problema, entonces, en principio, puede usarse la potencia del computador para hallar la solución. Este principio acepta que hay un método general para expresar y solucionar problemas con conocimiento común. Hoy día, los SE o sistemas basados en el conocimiento (SBC) son base para desarrollar sistemas inteligentes directamente asociados con la representación de conocimiento y procesos de razonamiento. La idea de la construcción de los SBC se simplifican en dos: a. b. La adquisición, la representación y el uso de conocimiento especializado. El reconocimiento que los sistemas, además de resolver problemas, puedan poseer atributos propios de expertos humanos10 como: * Capacidad para adquirir nuevo conocimiento. * Capacidad para justificar sus conclusiones. * Capacidad de hacer preguntas y explicar por qué las hacen. * Capacidad conversacional. 10 Lo que diferencia específicamente a una persona experimentada (experto) en una área del saber de otra que no lo sea, radica tanto en el conocimiento concreto sobre el área en cuestión y en la capacidad general para resolver problemas. Universidad Nacional de Colombia 13 Inteligencia artificial "Es imposible hacer algo a prueba de tontos, porque los tontos son demasiado ingeniosos" Roger Berg. Algunas definiciones de SE11 según grandes investigadores de este campo son las siguientes: Programa de computador que reemplaza a un experto humano [Forsyth, 1986]. Sistema en que se ha incorporado conocimiento de forma que es capaz de responder, explicar y justificar sus respuestas como una persona experta. Un sofisticado programa de computador con capacidad de deducir y/o simular la inteligencia humana usualmente escrito en algún lenguaje orientado a IA. Sofisticados programas de computador que manipulan conocimiento para resolver problemas eficiente y efectivamente en un área reducida [Hayes, 1983]. Programas de computador que reproducen el comportamiento humano en un estrecho ámbito del conocimiento. Programas de computador que, apoyados en conocimiento y razonamiento, desarrollan tareas difíciles que usualmente sólo las hacen expertos (humanos). Un programa diseñado para replicar el proceso de toma de decisiones de un experto humano. Los métodos generales desarrollados para la solución de problemas y técnicas de búsqueda al inicio de la era de la IA demostraron no ser suficientes para resolver los problemas orientados a 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. 11 Los SE actuales en general no son capaces de obtener conocimiento por sí solos mediante la experiencia, así pues no son realmente expertos, y es más correcto denominarlos Sistemas Basados en el Conocimiento (Knowledge Based System), sin embargo se difundió la denominación de SE, y aquí continuamos llamándolos así pese a la incorrección que se cometa. Una de las críticas a los SE, es que sus programas van dirigidos a tareas específicas y carece, por tanto de la universalidad que caracteriza a la auténtica inteligencia. Luis Carlos Torres Soler 14 Características y bases 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 IA, que estudia los sistemas basados en el conocimiento. La definición de un sistema basado en conocimiento puede ser la siguiente: Es un sistema computarizado capaz de resolver problemas en el dominio en el cual posee conocimiento específico. La solución es esencialmente la misma que hubiera dado un ser humano confrontado con idéntico problema, aunque no necesariamente el proceso seguido por ambos puede ser igual. El simple concepto dado, puede causar confusión ya que muchos sistemas basados en programas convencionales podrían ser incorrectamente categorizados como sistemas basados en conocimiento. Esta inconsistencia puede ser aclarada, sobre la base de tres conceptos fundamentales que distinguen a los sistemas basados en conocimiento de los programas algorítmicos convencionales y de los programas generales basados en búsqueda: a. La separación del conocimiento y el modo en que es usado. b. La naturaleza del conocimiento empleado (heurística antes que algorítmica). c. El uso de conocimiento específico de un determinado dominio. Las características principales de los SBC son: * Fácil modificación del conocimiento. * Respuestas coherentes. * Disponibilidad casi completa. * Conservación del conocimiento. * Capacidad de resolver problemas disponiendo de información incompleta. * Capacidad de explicar los resultados y la forma de obtenerlos. Los principales problemas asociados a los SBC en su desarrollo y ejecución son: * Las soluciones no siempre son las mejores. * Conocimiento limitado frente al dominio de un experto. * Carecen del sentido común o criterio que puede tener un experto. * Es difícil extraer todo el conocimiento que maneja un experto. El proceso de construir un SE se estudia en la ingeniería del conocimiento12. La 12 La ingeniería del conocimiento es una especialidad que emplea los modernos métodos de la IA. Algunos aspectos importantes del conocimiento son intangibles e inexplicables; el trabajo de los ingenieros del conocimiento consiste, en parte, extraer conocimiento de los expertos humanos y, en parte, codificar el conocimiento obteniendo, de manera que pueda ser procesado por un sistema. El problema es que el ingeniero del conocimiento no es un experto en el campo que intenta programar, mientras que el Universidad Nacional de Colombia 15 Inteligencia artificial ingeniería del conocimiento, llamada también del saber o cognitiva nació en la década del 80 como rama que estudia procesos para los sistemas basados en conocimiento. La construcción típicamente involucra una especial forma de interacción entre el constructor del SE, llamado ingeniero del conocimiento (IC), uno o más expertos en el área del problema y los usuarios: • • • El IC diseña las estructuras computacionales adecuadas para la organización y representación del conocimiento (bases de datos de conocimiento -BDC-, o bases de conocimiento -BC-). Los expertos comunican su conocimiento directa o indirectamente para construir el sistema. Los usuarios usan el sistema para resolver problemas o para aprender una vez que el sistema ha sido desarrollado e implantado. El IC debe entender ampliamente el mecanismo de inferencia del SE y poseer excelente habilidad de comunicación interpersonal para extraer de un experto el conocimiento necesario. Los IC son analistas de sistemas y "técnicos sicólogos" quienes deducen cómo manejan el conocimiento y la información los expertos; entienden cómo un experto desarrolla y aplica teorías, deducciones, lógicas, procesos; llega a las reglas básicas y hechos no obvios que el experto manipula; traslada la información a alguna estructura para que el sistema la entienda (por ejemplo, ¿cómo el sistema entenderá una explicación de horticultura para plantar semillas y hallar la mayor tasa de crecimiento en el menor tiempo?; ¿cómo el sistema explicaría cuál es la mejor composición vitamínica a darle a un paciente?). Reglas de expertos en el trabajo por un buen número de años, llamadas heurísticas, se derivan al realizar una exhaustiva observación en esas personas expertas. Junto con el conocimiento general (hechos), las reglas disponibles en libros y las heurísticas se almacenan en una base de conocimiento (hechos y reglas) y el software especializado se encarga de aplicar dichas reglas para deducir conocimiento. Por esta razón, el IC debe poseer adecuados conceptos, teorías y habilidades para localizar y estructurar conocimiento en el computador, manejo de las estructuras y lenguajes computacionales para desarrollar efectivos SE. Los rasgos principales del IC son: * * * Experiencia en representación y adquisición de conocimiento y procesamiento del pensamiento. Conocimiento de las implicaciones sicológicas de tomar decisiones y solucionar problemas. Gran experiencia en intervención e interpretación. experto en el tema no tiene experiencia programando, y en cualquier otro caso este último usa muchas veces su conocimiento de manera subconsciente, por lo que es incapaz de proporcionar la información de manera voluntaria aunque lo desee. Luis Carlos Torres Soler 16 Características y bases * Una grata y persistente personalidad orientada a escuchar. Un IC debe desarrollar suficiente experiencia en un campo para conversar con expertos, entender lo que dicen y extrapolar la información. El nivel de experiencia es determinado por lo que el experto le cede al IC. Muchos IC afirman que un experto13 es quien: * * * * * Ha adquirido un amplio conocimiento en un campo específico (habilidad para usar 50.000-100.000 diferentes ítem de información, práctica hallada en un período de 10 a 20 años). Posee suficiente conocimiento en muchos campos relacionados. Conoce cómo buscar conocimiento base rápidamente para llegar a una razonable y segura conclusión. Puede solucionar eficiente y efectivamente con facilidad problemas que para muchas personas resultan demasiado complejos. Tiene autoridad en el campo del conocimiento que maneja (ranking). Características de los sistemas expertos. Como todo sistema, los SE tienen características14 que pueden resumirse en: a. b. c. d. El conocimiento es explícito y organizado; el conocimiento se completa poco a poco. El conocimiento es su corazón. Provee un alto nivel de experiencia para ayudar a solucionar problemas. Posee potencia para producir modelos. El sistema puede actuar como un procesador de información teórica o por modelos para solucionar problemas en un dominio, dar las respuestas de acuerdo con la situación y realizar cambios cuando existen nuevas situaciones. Son programas muy rentables y productivos dada la característica de no envejecer y adaptarse a las necesidades, criterios, políticas,... de cada momento o situación. Ventajas de los sistemas expertos. Los sistemas expertos ofrecen ventajas como: a. b. c. Ayudar a la capacitación y prestar asesoría. Encargarse de tareas rutinarias. Las personas se concentran en actividades más importantes. Almacenar y combinar conocimiento de varios expertos. Por estas y muchas razones más, los SE tienen ventajas sobre los humanos. La tabla 13 "Es una persona que cada vez sabe más cosas, sobre menos cosas" (N. Butler). "Es una persona que ha dejado de pensar, sabe" (F. Lloyd Wright). "Es un sabio práctico, hábil, que tiene experiencia en una ciencia o arte" (Real Academia de la Lengua Española). 14 La medición de los resultados de un SE es difícil porque no se sabe cómo cuantificar el uso del conocimiento. Universidad Nacional de Colombia 17 Inteligencia artificial 1.1 muestra diferencias entre expertos y SE. Tabla 1.1. Diferencias entre expertos y SE. {PRIVADO }EXPERTOS SISTEMAS EXPERTOS Un experto muere. Depende de la actividad mental y física para solucionar problemas. Constantemente debe practicar para mantener la eficiencia. Cualquier período significativo de desuso puede afectar seriamente el desarrollo de la mente. Los sistemas recuperación. Transferir conocimiento de un humano a otro es un proceso laborioso, lento y costoso, llamado educación. Documentar la experiencia humana es extremadamente difícil y consume tiempo. poseen mecanismos de La transferencia de conocimiento entre sistemas es un proceso trivial de copiar unos programas y/o archivos de datos. Documentar un sistema es relativamente fácil. Se realiza un mapeo entre la experiencia representada en el sistema y el lenguaje natural de descripción de dicha representación. Un experto puede tener diferentes decisiones en idénticas situaciones por factores síquicos, biológicos y físicos. Producen resultados consistentes y reproducible, no son afectados por el medio. Un experto es muy escaso. Demanda un gran salario. Sólo son costosos en su desarrollo pero baratos para operar. Adquiere el conocimiento en forma teóricopráctica. La adquisición del conocimiento es teórico. Estructura y manejo del conocimiento. El conocimiento usado por un SE y más por un sistema inteligente, necesita representarse en formas que puedan utilizarse para un razonamiento. El conocimiento en un SE es organizado, separado del dominio del problema y del resto del sistema: del mecanismo para solucionar un problema, de la interfaz del usuario. El conocimiento está representado en diferentes formas, dependiendo de las relaciones causales consideradas. Hay conocimiento superficial que manipula solamente información utilizada en situaciones específicas; conocimiento amplio que representa estructuras internas y causales del sistema y considera las interacciones entre sus componentes fundamentales. Cualquier método que se emplee para representar conocimiento debe incluir múltiples estructuras y procesos para describir, relacionar y organizar un conjunto de conceptos elementales o entidades. Nos referiremos a conceptos genéricos o entidades usadas en el sistema de representación de conocimiento como objetos. El proceso de representar conocimiento lleva a la creación de esquemas (representación) diferentes pero muy aproximadas la una de otra. El tipo de representación del conocimiento apropiada, en una situación, depende de la cantidad de conocimiento y cómo va a aplicarse. La representación más común es: relaciones de 18 Luis Carlos Torres Soler Características y bases objeto atributo valor (OAV), redes semánticas o conceptuales, representación formal (lógica de predicados o proposicional), sistemas de producción (reglas IF-THENELSE), marcos, guiones, árboles o tablas de decisión y otras formas simples o complejas. La red semántica es una colección de nodos encadenados por relaciones. Un nodo puede incluir entidades físicas (sombreros, capas, perros), entidades conceptuales (lugares, números) o descriptores (agotado, viejo, matrona), que forman un conjunto de relaciones OAV. La representación formal lleva a tener el conocimiento en forma simple, mediante reglas lógicas que expresan teorías, conceptos y relación de objetos con atributos establecidos y planteando la lógica que usa un experto para hacer sus decisiones. Por ejemplo: (∀x) pájaro(x) => tiene_alas(x) Para todo x que es pájaro, entonces x tiene alas. (∀w) petirrojo(w) => pájaro(w) Para todo objeto w que es petirrojo, entonces w es pájaro Un sistema puede concluir: (∀z) petirrojo(z) => tiene_alas(z) Para todo z petirrojo, entonces z tiene alas. En los SE puede tenerse: razonamiento monotónico, no monotónico15 o analógico. Monotónico es aquel razonamiento en que hechos verdaderos, en un momento dado, permanecen así todo el proceso. Los sistemas crecen continuamente porque se adiciona conocimiento. No monotónico es aquel razonamiento en que hechos verdaderos, en un tiempo particular, pueden no serlo en otro tiempo. Analógico, a través de la experiencia, se forma un modelo "mental" de algunos conceptos; luego, el razonamiento ayuda a entender alguna situación u objeto, buscando analogías e indagando similitudes y diferencias. El proceso para solucionar problemas se halla en las heurísticas16 definidas y en el 15 Los seres humanos con frecuencia aumentan la verdad absoluta con suposiciones que están dispuestas al cambio dada una mayor información. Un sistema para cada una de las creencias tentativas mantiene un registro de dependencia que sigue la trayectoria versus su justificación, los hechos e inferencias que son empleados para generar tendencias tentativas. 16 Una heurística es un proceso que a partir de un conjunto de operaciones lógicas resuelve una clase de Universidad Nacional de Colombia 19 Inteligencia artificial motor de inferencia (MI) (ver figura 1.2). La interfaz, las bases de datos o dispositivos (sensores) son adicionales al SE (ver figura 1.3). 0Figura 1.2. Estructura de un sistema experto. En adición a los esquemas de representación del conocimiento, el proceso de razonamiento del sistema incluye métodos de inducción y/o deducción de acuerdo con el conocimiento y el mismo sistema. La deducción examina hechos en las reglas, decide cuál regla aplicar, y la encadena para llegar a una conclusión; es relativamente simple en el diseño y consiste básicamente en buscar estrategias. Una regla se usa para una decisión cuando las premisas de la regla son verdaderas, es decir, hacer que el sistema determine la conclusión como válida. El MI contiene un interpretador que decide cómo aplicar las reglas para inferir el nuevo conocimiento; y un administrador que decide el orden en el cual las reglas serán aplicadas. En otras palabras, selecciona, decide, interpreta y aplica conocimiento de la BC con el fin de obtener soluciones17. Un MI está separado del conocimiento; por tanto, puede ser base de varios SE en diferentes campos del conocimiento. Hoy día, en el mercado se consigue fácilmente Shell (concha, un SE con la BC vacía), en la cual se involucran reglas y hechos (construir la BC), según la estructura predefinida y a utilizar. El control en la deducción provee maneras para manejar problemas separadamente: problemas. Algoritmo es un conjunto de pasos lógicos predefinidos para hallar la solución de una clase de problemas. 17 Existen reglas, llamadas metarreglas, cuya función es indicar en la ejecución en que condiciones debe considerarse una regla y no otra. Luis Carlos Torres Soler 20 Características y bases cuándo iniciar y cómo resolver conflictos. Para proveer esas soluciones, una variedad de técnicas pueden usarse, solas o en combinación: a) Encadenamiento hacia atrás (regresiva). Cuando el valor resultado es conocido y se buscan potenciales premisas. b) Encadenamiento hacia adelante (progresiva). Consiste en tener hechos iniciales e ir aplicando reglas buscando deducir una conclusión lógica. Figura 1.3. Estructura de un sistema inteligente. Estos procedimientos son muy sencillos, puesto que van recorriendo las reglas desde la primera hasta llegar a una que pueda aplicarse. El proceso continúa, se aplica una nueva regla; se recorren las reglas hasta hallar un objetivo buscado o hasta cuando ya no existen reglas que produzcan alguna conclusión. Al ampliar el número de reglas, como consecuencia se tendrá mayor conocimiento. Los sistemas con técnicas y estructuras de IA deben construirse de tal forma que faciliten escribir y desarrollar procesos de búsqueda de soluciones o metas, lo cual es posible si muestran en mayor grado la separación entre los componentes estándares de computación: datos, operación y control. Esto es, los sistemas tienen apropiados niveles en los que se identifica una entidad central que está compuesta por: una o más bases de conocimiento (BC); un conjunto de reglas (operaciones bien definidas) y una estrategia de control. La importancia de identificar un apropiado nivel de descripciones ayuda mucho porque un sistema inteligente puede consistir de muchas BC, operaciones y controles interactuando en una compleja forma computacional (ver figura 1.3). Un SE no sería muy útil, si el usuario no puede comunicarse con él. Ésta comunicación se diseña bidireccionalmente para que el usuario pueda describir su problema al SE, y éste, a su vez, estar en la capacidad de responder presentando las alternativas posibles y las explicaciones pertinentes. Los sistemas y las herramientas computacionales han ido desarrollándose como lo muestra la figura 1.4. El primer SE comercial, el R1, inició sus actividades en Digital Equipment Corporation (McDermont, 1982). El Universidad Nacional de Colombia 21 Inteligencia artificial programa se utiliza en la elaboración de pedidos de nuevos sistemas de computación. Los tipos de experiencia que son de interés en los SBC o SE, pueden ser clasificados en tres categorías: asociativa, motora y teórica. Los SBC son excelentes para representar conocimiento asociativo. Este tipo de experiencia refleja la habilidad heurística o el conocimiento que es adquirido mayoritariamente, a través de la observación. Figura 1.4. Desarrollo de los sistemas. Puede ser que no se comprenda exactamente lo que ocurre al interior de un sistema (caja negra), pero se pueden asociar entradas o estímulos con salidas o respuestas, para resolver problemas que han sido previamente conocidos. La experiencia motora es más física que cognitiva. La habilidad se adquiere fundamentalmente a través del ejercicio y la práctica física constante. Los sistemas basados en conocimiento no pueden emular fácilmente este tipo de experiencia, principalmente por la limitada capacidad de la tecnología robótica; quizás lo que más interesa es generar conocimiento y no habilidades psicomotoras. La experiencia teórica y el conocimiento amplio permite que los humanos puedan resolver problemas que no se han visto antes, es decir, no existe una posibilidad asociativa. El conocimiento teórico y profundo se adquiere a través de estudio y entrenamiento formal, así como por medio de la resolución continua de problemas. Debido a su naturaleza teórica, el conocimiento se olvida fácilmente, a no ser que se use en forma continua. Al momento, los sistemas convencionales basados en 22 Luis Carlos Torres Soler Características y bases conocimiento tienen muchas dificultades para duplicar la experiencia. Sin embargo, los Sistemas de Razonamiento Basado en Modelos representan un notable intento de encapsular el conocimiento y razonar con él. La arquitectura de un sistema basado en conocimiento de alguna manera refleja la estructura cognitiva y los procesos humanos. La primera parte es la memoria a largo plazo, en la que guarda los hechos y reglas de conocimiento (Base de Conocimiento) acerca del dominio en el que tiene experiencia. Las ventajas en los sistemas expertos es la modularidad, no hay un solo camino para responder a un problema y son fáciles de leer, lo que simplifica comprobar su consistencia. La representación del conocimiento es esencial en inteligencia artificial y es la base de la construcción de un SE o SBC. Ideas básicas en el área de inteligencia artificial La IA no se limita sólo a imitar la inteligencia, el razonamiento o lograr una simulación de éstos, sino que desea llegar a crear máquinas que tengan mente y/o memoria en su sentido pleno18. La IA se basa en que la actividad de pensar, que es una actividad intelectual, es esencialmente una manipulación racional de símbolos o ideas con procesamiento simbólico; por tanto, la IA siempre trata de: a. b. c. d. Representar apropiadamente el problema de acuerdo con los requerimientos del usuario y a través de comunicación natural. Determinar restricciones del problema dado. Explorar las alternativas de solución y los procesos de control. Solucionar el problema. Para esto se recurre a: generar y probar, ejemplos, casos, técnicas automáticas de demostración, métodos de aprendizaje, procesos de razonamiento, algoritmos de optimización. Sin embargo, desde los comienzos hasta la actualidad, la IA ha tenido que hacer frente a una serie de problemas: a. Los computadores no entienden los significados. b. Los computadores no tienen autoconciencia (emociones, sociabilidad, ...) c. Un computador sólo hace aquello para lo cual está programado. d. Las máquinas no pueden pensar realmente. La IA generalmente se divide en dos partes: a. La parte epistemológica: i) qué hechos del mundo son observables, ii) cómo pueden representarse y, iii) qué reglas permiten derivar conclusiones legítimas 18 Un sistema que tiene memoria es un sistema que genera estímulos a partir de eventos que han ocurrido anteriormente. Universidad Nacional de Colombia 23 Inteligencia artificial de esos hechos. La parte heurística: cómo buscar espacios de posibilidades y aparear patrones. b. La solución a un problema epistemológico puede servir para muchos problemas, soportar diferentes enfoques heurísticos; sin embargo, es difícil formalizar hechos de conocimiento común. Para la solución de problemas, en IA se tiene en cuenta los procesos de deducción e inducción que realiza el ser humano. La deducción permite obtener conclusiones de reglas cuyas premisas son comprobadas. La inducción produce reglas a partir de observaciones parciales. La inducción en el ser humano puede darse al comparar situaciones que son casi similares, con parámetros desconocidos en una situación dada asignándole los valores que existen en una situación de referencia. Las estrategias para el razonamiento pueden hacer uso de la especialización, la reducción al absurdo, de la eliminación de caminos poco prometedores y de la reducción de las diferencias. Desde el punto de vista de los objetivos, la IA puede considerarse como parte de la ingeniería o de la ciencia: a. b. El objetivo ingenieril de la IA es resolver problemas reales, actuando como un armamento de ideas de cómo representar y utilizar el conocimiento, y de cómo ensamblar sistemas. El objetivo científico de la IA es explicar varios tipos de inteligencia. Determinar las ideas sobre la representación del conocimiento, del uso que se le da a éste, y del ensamblaje que explican distintas clases de inteligencia. Semejanzas y diferencias entre bases de datos y bases de conocimiento Aunque las BD y las BC no son lo mismo, tienen algunas características comunes; pues ambas persiguen el mismo objetivo; almacenar símbolos (datos, información o conocimiento) para reflejar el estado del mundo. Entre las características pueden mencionarse: 1) hay una separación entre los datos del problema específico y el módulo que los maneja; 2) los datos deben ser entendibles, modulares y mantenibles; 3) hay una separación entre los datos y las aplicaciones, con lo cual se permite su utilización en muchas aplicaciones. En las BD es necesario poseer maneras de organizar y almacenar datos, así como también herramientas para analizarlos. Las BC permiten la recuperación rápida del conocimiento; además, el rendimiento de las operaciones de inferencia lógica son tan rápidas como los cálculos por operaciones aritméticas. También se utiliza paralelismo tanto a nivel de estructuras de programación como en hardware para aumentar la velocidad; la interfaz usuario-máquina permite la utilización del lenguaje natural e imágenes. 24 Luis Carlos Torres Soler Características y bases La gran diferencia entre BD y BC se explica por medio del siguiente caso. Los visitantes de un enfermo en una clínica pueden enterarse de la droga que está administrándosele, a las horas que debe hacerse y el posible mal que padece, a través de la historia clínica que se halla a los pies de la cama. Pero no es posible interpretar la situación, por ejemplo, para continuar la terapéutica establecida en el diagnóstico y el plan de recuperación, ya que para ello se necesita conocimiento médico. Este conocimiento consta de hechos, prevenciones, comportamientos, información y procesos heurísticos. La información en la historia clínica es una BD, la BC está en el médico que tiene al cuidado el enfermo. El conocimiento adquirido mediante procesos heurísticos constituye una forma distinta de llegar a conocer, en la cual tiene aplicabilidad la lógica-matemática. (Con la informática y el automatismo moderno las heurísticas descubren nuevas y valiosas formas de encontrar y analizar fenómenos que abren y amplían el mundo del conocimiento). Otro ejemplo. Si visitamos un vecindario en compañía de un niño, él podrá explicarnos cómo se usan los edificios, descifrar y/o describir varias actividades de la gente que encontramos en el camino, indicarnos los diferentes vidrios que se hallan, como responder a otras preguntas. El computador de la alcaldía puede proporcionarnos hechos y cifras sobre materiales de una construcción, el avalúo, quién es el dueño, pero no ofrecerá ni una fracción del conocimiento que da el niño. El cerebro humano, aunque no es bueno para recordar muchos hechos, es excelente para manipular conocimiento, los computadores son mejores para manejar datos19. Lenguajes de programación En principio, cualquier lenguaje de programación puede ser utilizado para desarrollar mecanismos para la IA. Es decir, cualquier lenguaje sirve para programar un sistema experto. Atendiendo la forma de estructurar sus instrucciones, se los puede dividir en: Imperativos: PASCAL, C/C++. Funcionales: LISP. Declarativos: PROLOG, CHIP, OPS5.20 Orientados a objetos: SmallTalk, Hypercard, CLOS.21 19 Todo lo que sucede en la parte biológica esta conectado con el cerebro, pero el cerebro tiene una función maravillosa que es pensar. ¿Cómo lograr medir o indicar la forma como se piensa? ¿Todas las personas piensan igual? ¿El medio ambiente o entorno afecta el pensamiento? 20 La declaración se basa en que para resolver un problema simplemente hay que describirlo y definir ciertas reglas para obtener una solución. Los lenguajes declarativos tienen la ventaja (y desventaja) que en ellos no se controlan detalles como posiciones de memoria, compactación del código para mejorar eficiencia, etc., pues son de mayor nivel, aunque suelen ser menos eficientes en la interactividad. 21 Los lenguajes orientados a objetos se basan en unos entes (los objetos) que contienen atributos (datos) y código que trabaja con esos datos con la particularidad que los objetos son independientes unos de otros. Los objetos tienen la ventaja de ser lo más parecido al mundo real, pues en el mundo real hay Universidad Nacional de Colombia 25 Inteligencia artificial Tradicionalmente LISP y PROLOG han sido los lenguajes que se han utilizado para la programación de sistemas inteligentes. Estos lenguajes ofrecen características especialmente diseñadas para manejar problemas basados en símbolos. Por este motivo se les conoce como lenguajes de inteligencia artificial. Una de las principales características que comparten los lenguajes LISP y PROLOG, como consecuencia de su respectiva estructura, es que se utilizan para escribir procesos capaces de examinar a otros programas, incluyendo a ellos mismos. Esta capacidad se requiere, por ejemplo, para hacer que el programa explique las conclusiones que ha dado. Esto puede hacerse porque se permite al programa examinar su propio modo de operación. LISP Su nombre se deriva de LISt Processor. LISP fue el primer lenguaje para procesamiento simbólico. John McCarthy lo desarrolló en 1958, en el Instituto de Tecnología de Massachusetts (MIT), inicialmente como un lenguaje de programación con el cual los investigadores pudieron implementar eficientemente programas de computador capaces de razonar. Rápidamente LISP se hizo popular por su capacidad de manipular símbolos y fue escogido para el desarrollo de muchos sistemas de IA. Actualmente, LISP es utilizado en varios dominios que incluyen la escritura de compiladores, sistemas para diseño VLSI, sistemas para diseño mecánico asistido por computador (AUTOCAD), animaciones gráficas y sistemas basados en conocimiento. PROLOG PROgramming in LOGic (PROLOG), es un lenguaje de programación ampliamente utilizado en IA. PROLOG se desarrolló en Francia, en 1973 por Alain Colmenauer y su equipo de investigación en la Universidad de Marsella. Inicialmente fue utilizado para el procesamiento de lenguaje natural, pero posteriormente se popularizó entre los desarrolladores de aplicaciones de IA por su capacidad de manipulación simbólica. Utilizando los resultados del grupo francés, Robert Kowalski de la Universidad de Edimburgo, en Escocia, desarrolló la teoría de la programación lógica. La sintaxis propuesta en Edimburgo, se considera el estándar de facto del PROLOG. A partir de 1981 tuvo una importante difusión en todo el mundo, especialmente porque los japoneses decidieron utilizar PROLOG para el desarrollo de sus sistemas de computación de quinta generación. Actualmente existen varios dialectos del PROLOG para diferentes plataformas. OPS5 Official Production System 5 (OPS5), es un lenguaje para ingeniería cognoscitiva que soporta el método de representación del conocimiento en forma de reglas. Incorpora un objetos con características y no sólo estructuras de datos. Además, con la orientación a objetos es más fácil la reutilización de las clases (generalidades de los objetos) y se generan nuevos objetos heredando las características más sobresalientes. Luis Carlos Torres Soler 26 Características y bases módulo unificador, un intérprete que incluye un mecanismo de encadenamiento progresivo, y herramientas para edición y depuración de los programas. OPS5 es un miembro de la familia de lenguajes de programación desarrollados en la Universidad Carnegie - Mellon. Varias compañías han desarrollado implementaciones comerciales de OPS5, para diferentes plataformas. Resumen La importancia de la IA es innegable, y es un campo de investigación de trabajo fértil y productivo. La IA estudia la construcción de programas que exhiban comportamiento inteligente; mecanismos que aprenden (basados en lo que sabe y no sabe); programas que hacen inducción y extrapolación, búsquedas heurísticas para alcanzar un objetivo al menor coste posible (por ejemplo: búsqueda en espacios de estados, robots). Analiza la adquisición y representación del conocimiento. Se emplea para mejores sistemas inteligentes la lógica difusa, estrategias evolutivas y lenguajes declarativos o funcionales. El interés por construcción de mecanismos que exhiban comportamiento inteligente abarca el estudio de esquemas para la representación del conocimiento, en especial marcos (frame), redes semánticas, lógica de predicados, sistemas de producción. Se desarrollan teorías, fundamentos; lenguajes y estructuras matemáticas asociadas. Desde mediados de la década del 60, cuando se desarrollaron los primeros SE, se ha adelantado mucho en su construcción. De los últimos SE puede deducirse: a. b. c. En los sistemas con éxito, el conocimiento está ampliamente definido, aunque se refiere sólo a una área en particular. La cantidad de conocimiento depende de las tareas por realizar. La transferencia de conocimiento de los expertos al sistema requiere invertir grandes esfuerzos. Por lo tanto existen dos puntos importantes en los programas que utilizan técnicas de IA: * * Métodos para la representación y uso del conocimiento. Métodos para realizar búsquedas y/o solucionar problemas. Estos dos puntos interactúan fuertemente. La representación del conocimiento determina el método que ha de aplicarse para solucionar problemas. Por ejemplo, si el conocimiento se representa mediante lógica de predicados, entonces puede usarse resolución para hallar inferencia. Si el conocimiento se representa por reglas, la solución puede efectuarse mediante búsqueda hacia adelante o hacia atrás. Si el conocimiento se representa mediante redes semánticas o árboles, entonces es útil búsquedas gráficas. Universidad Nacional de Colombia 27 Inteligencia artificial El papel crucial que el conocimiento desempeña en los programas con técnicas de IA es el mensaje fundamental de este texto. El conocimiento cumple dos importantes funciones: 1) definir qué puede hacerse para solucionar problemas y qué significado tiene el haber resuelto el problema; 2) aconsejar la mejor solución o la mejor forma de solucionarlo. Las técnicas de computación neuronal, de computación evolutiva, los planteamientos de lógica difusa permitirán implementar métodos de aprendizaje, evolución y razonamiento aproximado, entre otras. El interés del ser humano por llegar a simular los procesos inteligentes del cerebro humano es muy grande, ¿será posible que las máquinas razonen como el ser humano? 28 Luis Carlos Torres Soler