9qf6 - 148.206.53.231

71
/lNGENlERÍA DE SISTEMAS BASADOS EN CONOCIMIENTOS “Un nuevo concepto de diseAo de Sistemas Computacionales de apoyo a las actividades que requieren un alto nivel de conocimiento, “expértise” y razonamiento para su realización. Es el desarrollo de un proceso lngenieríl computacional, directamente relacionado con los procesos de planeación estratégica, resolución de problemas, transferencia detecnologíaytomadedecisiones,en los que se maneja un alto gradode incertidumbre, vaguedad,poco o nada de estructuración y subjetividad, sobre comportamientos propios de escenarios estratégicos y de alta competitividad”. E Freddy Gómez-Humarán Rivera. 1 9qf6 c

Transcript of 9qf6 - 148.206.53.231

Page 1: 9qf6 - 148.206.53.231

/lNGENlERÍA DE SISTEMAS

BASADOS EN CONOCIMIENTOS

“Un nuevo concepto de diseAo de Sistemas Computacionales de apoyo a las actividades que requieren un alto nivel de conocimiento, “expértise” y razonamiento para su realización. Es el desarrollo de un proceso lngenieríl computacional, directamente relacionado con los procesos de planeación estratégica, resolución de problemas, transferencia de tecnología y toma de decisiones, en los que se maneja un alto grado de incertidumbre, vaguedad, poco o nada de estructuración y subjetividad, sobre comportamientos propios de escenarios estratégicos y de alta competitividad”.

E Freddy Gómez-Humarán Rivera.

1 9qf6

c

Page 2: 9qf6 - 148.206.53.231

ANTECEDENTES:

En la actualidad el área de IJ!!ELIGENClA ARTlFlCllA se ha convertido en un medio eficiente, accesible y de alta ventaja competitiva, para la resolución de problemas que usualmente han sido clasificados por los especialistas (utilizando métodos convencionales) como “imposibles de resolver, imprácticos y/o poco económicos”.

El objetivo principal de este proyecto es el de orientar a especialistas de diferentes áreas organizacionales con la nueva tecnología computacional emergente, de tal forma, que su transferencia y adaptación a los procesos de toma de decisiones, planeación y resolución de problemas a niveles estratégicos en conjunto con los niveles funcionales y operativos de la organización, sea una realidad.

Entre los beneficios potenciales de esta tecnología están el de mejorar la calidad de las decisiones, incrementar la distribución de la experiencia del personal altamente calificado en la organización, y en general, aumentar la productividad mediante la utilización de la computación moderna.

El propósito terminal aquí propuesto es el de diseñar y desarrollar sistemas computacionales efectivos de apoyo al incremento de la productividad de los expertos. No con el desarrollo de SISTEMAS EXPFRTOS como Único medio para hacerlo, sino de sistemas INTEGRADOS que permitan resolver problemas en forma inteligente y efectiva.

OBJETIVOS:

La computación o el más integral término de informática, ha evolucionado substancialmente y de iniciarse como una manipuladora de números, datos e información; actualmente se encuentra en la etapa de planeación, diseño, construcción y administración en forma óptima y efectiva de actividades relacionadas con el “conocimiento”.

Toda esta premisa nos conduce a estructurar una metodología híbrida para atacar por medios computacionales problemas o situaciones que se presentan tanto a niveles organizacionales, sociales o individuales. Por lo que se trata de realizar una metodología en la toma de decisiones en el ámbito financiero. Pudiendo quedar como los objetivos terminales a establecer el concepto de Ingeniería de sistemas basados en conocimientos como una nueva herramienta de “diseño” útil y trascendente dentro del ambiente del desarrollo de sistemas computacionales.

Page 3: 9qf6 - 148.206.53.231

. ..

Objetivos Particulares:

1. Ubicar lo más objetivamente posible el área de ingeniería del conocimiento dentro de las aplicaciones administrativas, ingenieriles y de manufactura- producción de una empresa.

2. Ubicar el concepto general de la Inteligencia Artificial y sus ramificaciones dentro de un contexto de la industria computacional que afecta económicamente a la sociedad.

3. Como me se mencionó anteriormente el “proceso de toma de decisiones” es quizá el que en la actualidad puede aprovechar más esta nueva tecnología.€/ propósito terminal es introducir nuevas estrategias de diseño para generar un técnica integrada que satisfaga completamente /as necesidades de los usuarios expertos mediante el uso óptimo de herramientas computacionales apropiadas.

JUSTIFICACI~N:

Previendo que el área de la Inteligencia Artificial es muy amplia y escabrosa se llevará a cabo una investigación de la utilidad que podría tener esta en la organización de una empresa como lo es en la toma de decisiones. Pudiendo ser estas administrativas ó financieras, lo cual dejaría ó seguiría un camino de investigación para la Universidad Autónoma Metropolitana.

METODOLOGíA:

El conocimiento acerca de la Inteligencia Artificial se obtendrá por medio de una amplia y detallada investigación sobre esta, que es?, i y cual podría ser una utilidad para cumplir los objetivos arriba mencionados, además se requieren conocimientos sobre RE-INGENIERíA (toma de decisiones) y ORGANIZACION de una empresa, para el diseño del programa se requerirá conocimientos de C++. Y cualquier otro lenguaje de la quinta generación como lo es “LISP”, “PROLOG”, etc.

El trabajo de investigación, an&lisis, diseño y programación se estima que se llevara a cabo en dos trimestres (el primero para la investigación, el análisis , y el segundo para el diseño y la programación).

El proyecto Terminal I se evaluará con la investigación y el análisis que involucra la toma de decisiones y la inteligencia artificial para satisfacer los objetivos arriba mencionados.

Page 4: 9qf6 - 148.206.53.231

En el proyecto Terminal II se disefiara y se programará un programa que pueda llevar a cabo dicho objetivo.

RECURSOS HUMANOS:

El proyecto será elaborado por un sólo alumno, con la ayuda del asesor, quienes proporcionarán la información necesaria para llevar a cabo la investigación, análisis y diseño de un sistema de computo.

RECURSOS MATERIALES:

El centro de computo avanzado proporcionará el equipo de cómputo, al alumno para la elaboración del proyecto, además de la Bibliografía necesaria, incluyendo manuales que será proporcionada por el asesor.

Page 5: 9qf6 - 148.206.53.231

X N T R O D U C i G X O N

Page 6: 9qf6 - 148.206.53.231

OBJETIVOS Y METAS I

El sentido común no es suficiente para pensar mls efectiva y eficazmente. Pensar mejor no consiste en tener mls conocimientos. Entonces, ¿ en que consiste el pensar mls eficientemente ? La diferencia este en el metodo de pensar. . . en pensar en una forma sistemltica, disciplinada y efectiva acerca de una situaci6n en especial . . .

R.Descartes, 1637 " Eassy on the Discourse of the Method "

El esfuerzo de la nueva computación se está concentrando en áreas de representación y adquisición del Conoclmlento, validación y análisis de sensibilidad de la información adquirida por otros medios, así como de amplificacibn del potencial de I' relacionar '' conceptos e ideas con actividades estructuradas y bien identificables.

. .

Este potencial de la computación de relacionar el conocimiento con la preparación ylo experiencia del individuo, así como su intuición, hace que en con'unto se genere un proceso de I' creatividad 'I, orientada a incrementar en forma e c ectiva la productividad del recurso humano involucrado en las diferentes áreas de actividad humana.

EVOLUCIóN DE LA TECNOLOGIA

Los nuevos avances en la tecnología computacional no son producto de una generación espontánea, éstos son resultado de una bien definida tendencia evolutiva.

El software implementado durante los últimos 20 años se ha utilizado básicamente para el manejo de grandes cantidades de datos en el área comercial, lo que ha conformado paulatinamente los MIS's ( MANAGEMENT INFORMATION SYSTEMS ). Estos sistemas tradicionales han producido información que la gerencia ha utilizado en el control y supervisibn de las operaciones de la organización.

Inicialmente se manej6 la información sobre el concepto de archivos y ha ido evolucionando, hasta los actuales " manejadores de- base de datos " ( DBMS ) sobre estructuras de informacibn más sofisticadas.

Page 7: 9qf6 - 148.206.53.231

Sin embargo, estos sistemas por sí solos no dan un apoyo eficaz, y en general, carecen de una estructura de razonamiento para apoyar efectivamente al usuario.

Posteriormente se integraron a los MIS y DBMS los ambientes que directamente iban ligados con la información y el proceso, &tos llegaron a convertirse en generadores de aplicaciones y actividades semi-estructuradas de decisión para llegar a tener los actuales DSS's ( DECISION SUPPORT SYSTEM ), que son practicamente una liga entre las ciencias administrativas y los MIS para apoyar los procesos administrativos más eficientemente.

De esta forma, la computación se ha concentrado cada vez más en integrar procesos intelectuales y en apoyar el aumento de la productividad del recurso humano integrante de la planta productiva y estratégica de una organización.

Para efectuar estos procesos efectivamente, no han sido suficientes los sistemas convencionales de MIS, DBMS o DSS y ha habido la necesidad de establecer una nueva familia de sistemas que integren además de los tres ambientes anterioresd d ' i r e g ? & a oraang.agonc

* . . . i divi . - . I

Esta familia de sistemas tiene como predecesora los GPPS's (GENERAL PURPOSE PROBLEM SOLVER ) y forman lo que llamaremos IDSS's (INTELLIGENT DSS's ) en los que la lngenieria del Conocimiento,los sistemas basados en el Conocimiento y los nuevos conceptos de la Modelación Cualitativa ofrecen una muy prometedora solución factible.

Esta integración requiere por lo tanto que estén presentes los siguientes conceptos

Manejo y administración de Bases de Datos y de Sistemas de Gran Escala.

Manejo interactivo de gráficas, video, voz y en general, sistemas de multimedios.

Procesamiento y explotación de textos.

Evaluación de funciones matemáticas

Manejo de comunicaciones inter-sistemas, compartición de ideas geográficamente distribuidas.

Posibilidad de formar micromundos y juegos de simulación.

Posibilidad de interactuar con otras bases de información y de explotarlas eficientemente.

Page 8: 9qf6 - 148.206.53.231

QUE DEBEN DE OFRECER LOS SISTEMAS "INTELIGENTES" DE APOYO 3

En resumen, las siguientes son algunas de las características que requieren estar presentes en los sistemas que se denominan "inteligentes" .

RELACION INTERACTIVA ENTRE EL USUARIO Y EL MIS

De tal forma que el usuario pueda desarrollar cuestionamientos del razonamiento utilizado en la elaboración de estrategias, por ejemplo del tipo que ocurre, si . . . ( what if de analisis de sensibilidad cualitativa e impacto con sus sistemas de información ya implementados.

. .

INTEGRACION Y COMUNICACION DE LOS SISTEMAS

Ya no es suficiente tener modelos o sistemas aislados para tomar decisiones. Hay que integrar, en forma inteligente y efectiva por medio de redes computacionales los diferentes sistemas que conforman la base estrategica organizacional. Un caso similar ocurre con los sistemas CIM ( COMPUTER INTEGRATED MANUFACTURING ) para llegar a lo que se conoce como Sistemas Flexibles de Manufactura : Unión de CAD,CAE,CAM, Control Automático Directo, CAPP y Rob6tica.

POSIBILIDAD DE INTERACTUAR EN EL TIEMPO.

Actualmente la planeación se hace sobre modelos dinámicos de información de gran escala. Los proyectos se envuelven en innumerables factores propios de un entorno económico más integral, dinámico, complejo y de grandes magnitudes en las que el factor I' tiempo I' es crítico, valorizado y difícil de manipular.

EVALUACION Y MANEJO DE INCERTIDUMBRE Y VAGUEDAD DE LA INFORMACION

Ya no es suficiente el manejo de números, datos o información de estadísticas aisladas y bien estructuradas. Se requiere asociar ciertos conceptos de incertidumbre, pertenencia, prioridad, vaguedad o difusibilidad a la información útil para la toma de decisiones, así como razonamientos lógicos inteligentes. Esto implica tambien tener procedimientos de validación de la información que se incorpora a los sistemas computacionales conocidos.

FINALIDAD

Formacidn de una nueva generación de " lnaenieros del Conoclmlento " que estén capacitados para utilizar en forma óptima y eficaz los conceptos de la nueva ciencia y tecnología computacionales en el desempeAo de sus actividades de análisis, diseño y desarrollo de sistemas computacionales basados en

. .

Page 9: 9qf6 - 148.206.53.231

conocimientos, y como consecuencia del ambiente en que se encuentra operando la Ingeniería del Conocimiento, se tratara de establecer los beneficios potenciales de los Sistemas Basados en el Conocimiento como " f a m d o r e s de la

sferencla o rnubpllcaclon de la presencia del experto v preservacm del acervo intelectual de la or-

.. . . . I . * - ' II

Page 10: 9qf6 - 148.206.53.231
Page 11: 9qf6 - 148.206.53.231

CONCEPTOS BASICOS DE LA INTELIGENCIA ARTIFICIAL Y DE LAS CIENCIAS DEL CONOCIMIENTO ARTIFICIAL

. . . " No tiene sentido definir conceptos que no tienen restricciones ancestrales; IA ( inteligencia artifiacial ) fue lo que quiso que fuera, cuando nadie fue lo suficientemente inteligente para especificar algo mejor que pudiera ser. . . Es f k i l decir que no fue IA; no es ese tipo de tutifruti interdisciplinario que va y viene en las universidades ... " IA tiene que ver con desarrollos en los que una persona requiere inteligencia para analizar acciones. . .

M.Minsky ( comunicacibn informal 1982 ).

CONCEPTOS BASICOS DE INTELIGENCIA ARTIFICIAL

ANTECEDENTES

El concepto de la Inteligencia Artificial ( IA término formulado por J.McCarthy en la conferencia de Dartmouth en 1956 ) se concentra básicamente en una serie de técnicas necesarias para lograr un cierto nivel de inteligencia en las computadoras.

En la actualidad, la tecnología va disminuyendo las limitaciones impuestas por el Perceptron. Las redes neuronales han adquirido un nuevo reconocimiento y un potencial incalculable. Se prevee una gran Industria basada en neurocomputadoras.

INTELIGENCIA

Antes de adoptar una definición del concepto de inteligencia "Artificial" (IA), hay que establecer debidamente el término de inteligencia.

i QUE ES INTELIGENCIA ?

nck viene del latín : entre-ligare : unir, relacionar. O sea, es : /Luis A. =do I' La revolución de la inteligencia 'I/

La aptitud para encontrar relaciones y para relacionar

Page 12: 9qf6 - 148.206.53.231

O Es la facultad de relacionar pensamientos para producir nuevos O Es la capacidad de entender, comprender e inferir O Es la habilidad de razonar,adquirir,ampliar y aplicar conocimiento.

Hay que evitar la confusión de tratar de hacer que las computadoras razonencomQ los humanos en lugar de que razonen en una forma entendible por los humanos.

Este proceso de "relacionar" es el que hay que perfeccionar para lograr transmitir esa inteligencia a la máquina. O sea, que m8s que establecer una definición, hay que establecer cuál es el proceso que se articula en un producto de IA.

Este proceso se puede resumir en la siguiente premisa :

El hombre tiene una idea sobre la que genera una operación manual o sobre la que ejecuta una actividad manualmente para desarrollarla. Con tiempo, preparación (capacitacih) y más conocimiento inventa una máquina para realizar la accibn m: O económicamente O rápidamente 0 efectivamente 0 precisamente Pero menos dependiente de la actividad humana.

Esta independencia es la que se logra al generar sistemas de IA.

DEFINICIONES DE IA

Despues de esta breve exposición de los términos, podemos definir el concepto de IA de acuerdo a varios autores de la siguiente forma :

0 IA es el estudio de las ideas que capacitan a los computadores a ser inteligentes. /P Winston/

0 IA es el estudio de cómo hacer que los computadores hagan cosas que, por el momento, la gente hace mejor. /E. Rich/

0 La IA es una técnica que manipula "conocimiento" que debe ser representado en tal forma que :

a) pueda captar la generalidad de las situaciones b) pueda ser entendido por la(@ persona@) que lo proyectaron c) pueda ser modificado para corregir errores y reflejar cambios

Page 13: 9qf6 - 148.206.53.231

d) pueda ser usado en una gran variedad de situaciones aún si no esta totalmente terminado o no es preciso. /E. Rich/

O una definición integrada a las Ciencias de Conocimiento :

0 IA es el estudio de facultades mentales a través del uso de modelos y técnicas computacionales. /E.Charniak, D. Mc.DermoW

La siguiente definición de /Naylor/ es bastante completa, y refleja el espíritu del concepto de inteligencia maquinal.

Un algoritmo de aprendizaje que busca una mejora continua y adaptiva del rendimiento de un sistema computacional a lo largo del tiempo como resultado de la experiencia.. ."

Este algoritmo debe tener alguna o todas de las siguientes características :

0 Cubrir un amplio rango de posibilidades. 0 Desarrollar soluciones más amplias. 0 Obtener respuestas más eficientes. 0 Simplificar la representación del conocimiento. 0 Ser amigable y comunicarse eficientemente.

PENSAMIENTO HUMANO E INTELIGENCIA ARTIFICIAL

Las computadoras pensantes sobrehumanas de la ciencia-ficción no existen. No obstante la ciencia ficción-tiende a convertirse en ciencia-realidad. Actualmente los cientificos estan buscando la manera para lograr que las computadoras resuelvan problemas no estructurados. Estos son los tipos de problemas que las personas resuelven probando varios enfoques y aprendiendo de sus errores.

Hasta ahora, solo la inteligencia humana lo podía hacer, pero existen programas inteligentes que comienzan a competir con ella.

Los trabajos que buscan diseñar sistemas de cómputo con las características que se asocian con la inteligencia humana, se agrupan bajo el nombre deinteligencia artificial. Con base en conceptos de disciplinas tales como la psicología, lingüistica y computacih, los investigadores estan aprendiendo a preparar programas o construir sistemas que lleven a cabo tareas que ninguna máquina ha realizado antes en forma automática.

Page 14: 9qf6 - 148.206.53.231

¿SON CAPACES DE PENSAR LAS COMPUTADORAS?

Mucho se ha escrito afirmando y negando la posibilidad de programar las computadoras para que "piensen" y "aprendan". La controversia se debe principalmente a 1) la falta de conocimiento de los procesos que participan en el pensamiento y aprendizaje humanos y 2) la falta de definiciones aceptables de las palabras "pensar" y "aprender".

Un juego propuesto por Alan Turing, matemático británico, se convirtió en una prueba para averiguar si puede considerarse que una computadora posee inteligencia y la capacidad de pensar. El juego requiere dos participantes que contesten, un humano y una mhquina, y un inquisidor humano que trate de determinar cuál de los dos participantes que le contestan (a los cuales no puede ver) es el humano. Se utilizan terminales de comunicaciones para responder a las preguntas que hace el inquisidor. La máquina trata de engañar al inquisidor con respecto a su identidad verdadera mientras que el humano trata de convencerlo. La inteligencia y la capacidad de pensar quedarán demostradas, según laprueba de Turing, si la máquina logra engañar al inquisidor.

¿Adónde es probable que conduzcan las investigaciones actuales sobre inteligencia artificial? Nadie lo sabe. Los investigadores utilizan el termino heurlstica para describir la parte que se relaciona con el juicio o sentido común en la resolución de problemas. Es decir, describe la parte de la resolución de problemas que maneja: la definición del problema, la elección de estrategias razonables a seguir y la formulación de hipótesis y corazonadas. Actualmente, los seres humanos son muy superiores a las computadoras en el área heurística del trabajo intelectual. No obstante, cuando se conozcan mejor los procesos de pensamiento y aprendizaje humanos, sera posible desarrollar programas nuevos y mAquinas con facultades heuristicas avanzadas. Varios investigadores muy capaces están trabajando en este objetivo y pueden ya hacer alarde de algunos logros impresionantes.

Por ejemplo, los investigadores están dando los primeros pasos en la construcción de computadoras de red neuronal, es decir, máquinas cuyos circuitos siguen el patrón de las complejas interconexiones que existen entre las neuronas o cklulas nerviosas del cerebro; las computadores de red neuronal, cuentan ya con cientos de miles de elementos de proceso (o "neuronas" simuladas) y existen miles o hasta millones de interconexiones entre estos elementos. En comparación, los seres humanos cuentan con cerca de diez mil millones de neuronas en la parte del cerebro que se utiliza para pensar, y existen por lo menos 100 billones de interconexiones entre las células nerviosas. En vista de la enorme superioridad reticular del cerebro, nadie está sugiriendo que las máquinas que simulan esta red esten ni remotamente cercanas a duplicar la capacidad del cerebro, de hecho, algunos científicos en el &rea de la computación alegan que, en vista de lo poco que se sabe sobre el funcionamiento real del cerebro, no tiene caso tratar de construir una máquina con ese órgano como modelo. Pero otros científicos

Page 15: 9qf6 - 148.206.53.231

igualmente respetados, que trabajan hoy día con modelos similares al cerebro, están convencidos de que sus labores pueden conducir a alguna forma de inteligencia de silicio para mediados del siglo X X I .

APLICACIONES ACTUALES DE LA INTELIGENCIA ARTIFICIAL: PROGRAMAS PARA LENGUAJE NATURAL Y SISTEMAS EXPERTOS.

Ad6mas de los avances en el equipo electrónico, algunos trabajos previos sobre la resolución heurística de problemas han conducido ya a la realización de algunos productos comerciales de programación.

Programas para lenguaje natural

Permiten a los usuarios sustituir los complicados comandos de programa en la jerga de las computadoras por órdenes en espariol común (o inglés, franc& u otro lenguaje natural). Por ejemplo, las interfaces de lenguaje natural permiten a los usuarios consultar sistemas de bases de datos y enterarse de cuál es la información que necesitan para apoyar sus decisiones. Los programas de lenguaje natural son de dos tipos: Aquellos que permiten a los usuarios escoger palabras que aparecen en menús sucesivos hasta formar un comando que puede entender el programa, y aquellos que permiten a los usuarios teclear preguntas y comandos directamente con sus propias palabras.

En ambos casos, los programas de lenguaje natural interpretan las partes del lenguaje y el significado de un enunciado para después traducir éste a comandos de aplicación que la computadora puede aceptar y procesar. Los programas de lenguaje natural incluyen tres elementos. Un elemento es el analizador sintktico (parser), que es el componente del programa que determina cómo está formado un enunciado a partir de sustantivos, verbos y otros fragmentos. Un segundo elemento es el analizador semántico, que utiliza un diccionario integrado para interpretar el significado de las palabras del enunciado. Casi siempre se realizan al mismo tiempo el análisis sintáctico y el semántico. El tercer elemento es el generador de código que traduce el enunciado del usuario a códigos en lenguaje de mdquina aceptables para la computadora. Es probable que estos tres componentes del programa se incluyan tarde o temprano en casi todos los tipos de programas con el fin de que los usuarios puedan dialogar con sus mdquinas en lenguaje ordinario.

SISTEMAS EXPERTOS

Page 16: 9qf6 - 148.206.53.231

SISTEMAS EXPERTOS

Un " sistema experto : (SE) I' es un sistema computacional que manipula conocimientos organizados sobre algún campo específico de expertos humanos y es programado para trabajar convincentemente como un asesor en el campo dado, con capacidad para explicar su razonamiento si 6ste es solicitado.

Una definición que expone de otra forma la filosofía de los SE's es la que Naylor propone en su libro :

". . . Un sistema computacional compuesto de una base de conocimiento (KB) extraída de un(os) experto@) de tal forma que el sistema pueda ofrecer un 'I

consejo inteligente 'I o pueda tomar una "decisión inteligente" acerca del desarrollo de una actividad. Este sistema deberá justificar su propia línea de razonamiento lógico de una forma directamente intelegible por el usuario . . . "

Analizando 6stas y otras definiciones se obtiene que un buen sistema experto debe proveer :

1. Experiencia cuando la experiencia humanano estd disponible . O sea transferir conocimiento a donde y cuando se requiera.

2. Experiencia más uniforme v rápida que la de un humano experto, así como consejo y/o tutoreo inteligente.

3. Ayuda a expertos a tomar decisiones que involucran factores complejcs no estructurados o inciertos.

4. Bancos de conoclmlentos y procedimientos expertos y su forma de accesarlos. . .

5. Banco común para Conoclmlentos que se reproducen dindmicamente y que se

O sea, " emular al experto humano 'I en un campo específico del

. . requieren frecuentemente.

conocimiento.

Otro ejemplo de la inteligencia artificial en accibn es el uso de sistemas expertos. Un sistema experto es un conjunto de programas que intentan codificar los conocimientos y reglas de decisión de los especialistas humanos, de manera que

Page 17: 9qf6 - 148.206.53.231

los usuarios puedan aprovechar esta pericia al tomar sus propias decisiones. Un paquete completo de sistema experto incluye dos componentes. En primer lugar está una base de conocimientos almacenada que puede llenarse con reglas del tipo "si-entonces" (por ejemplo: "si la bomba tiene fugas, entonces es posible que el empaque est6 agrietado, desensa'mblese la brida, cámbiese el empaque, vuelvase a ensamblar la brida y apriétense los pernos"). En segundo lugar, hayun integrador se sistema experto (o maquina de inferencia) de mecanismos lingüísticos y de razonamientos que pueden consultar la base de conocimientos para llegar a conclusiones y recomendar soluciones a problemas específicos.

Aunque hace tiempo sólo se disponía de unos cuantos sistemas expertos, docenas de casas de programación han anunciado recientemente sus productos integradores, que son sistemas expertos gen6ricos cuyo contenido de datos o base de conocimientos se ha dejado en blanco. Los individuos o las organizaciones pueden insertar datos y reglas de decisión en estos productos integradores y asi desarrollar sus propios sistemas expertos. por ejemplo, se está utilizando un integrador de Micro Data Base Systems, Inc,. llamado Guru para diseñar un sistema experto de microcomputadora con 3000 reglas que ayudan a los empleados de la compañía de seguros Allstate a procesar las reclamaciones de compesación de los trabajadores. Es probable que en el futuro muchas otras organizaciones desarrollen este tipo de sistemas.

¿Para qu6 desearía una organizaci6n desarrollar un sistema experto? Un objetivo es preservar conocimientos que se perderían si se retira, renuncia o muere un experto de la compañía. Otro propósito es "copiar" la pericia de un experto con el fin de adiestrar a los trabajadores nuevos en diferentes localidades, de manera que puedan trabajar como lo hace el experto. A fin de desarrollar el componente de base de conocimientos de un sistema experto, los investigadores en inteligencia artificial y los "ingenieros de conocimientos" dedican varios meses a analizar las mentes de especialistas para extraer y estructurar los conocimientos que son la base de su pericia. Esta es la parte más difícil y tardada de la creación de un sistema experto. Una vez elaborada, los sistemas expertos se crean de diferentes maneras, pero todos tienen dos componentes : una base de conocimientos y un integrador del sistema, o máquina de inferencia. La base de conocimiento contiene los hechos y reglas generales que se obtienen de expertos humanos. El integrador del sistema contiene mecanismos lingüísticos y de razonamiento que permiten al paquete realizar busqueda de encadenamiento hacia adelante y hacia at& en los datos y reglas de la base de conocimientos. Durante el encadenamiento hacia adelante, el paquete avanza de una posición "si" a una posición entonces ' I , es decir, trata de razonar a partir de una situación y hacia una respuesta. Durante el encadenamiento hacia atrás, se sigue un proceso inverso : el paquete razona a partir de una respuesta u objetivo buscado ( posición 'I entonces 'I ) hacia las condiciones ( "si 'I ) subyacentes.

Page 18: 9qf6 - 148.206.53.231

ANALISIS COMPARATIVO DE SISTEMAS EXPERTOS CLASICOS Y SUS AREAS DE APLICACION

Los siguientes son los tipos de familias a las que pueden asociarse estos productos con respecto a su propósito funcional : /A.Waterman/

- Interpretadores - Diagnosticadores - Disenadores - Predictores - Instructores - Planeadores - Monitores - Descubridores

INTERPRETADORES.- su propósito es inferir cuSl es la situación de un proceso a partir de los datos recolectados de la operación del mismo. Esto generalmente se hace vía sensores o de una recoleccih de datos estadísticos resultados de un proceso.

Ejemplos :

- Interpretar datos de muestras de material para detectar yacimientos (PROSPECTOR).

- Inferir la estructura molecular de un compuesto a partir de los datos del espectrt5metro de masas (DENDRAL)

- Interpretar los datos de un mapa de densidad de electrones para inferir la estructura tridimensional de una proteína (CRYSALIS)

- Otros : REACTOR, SPE, HASBIAP.

DIAGNOSTICADORES.- Su propósito es detectar las causas de mal funcionamientos de un sistema en base a observaciones o síntomas.

Ejemplos :

- Localizar las causas de fallas en redes telefónicas(ACE) - Diagnosticar las causas de enfermedades infecciosas de un

- Encontrar fallas en los sistemas de enfriado de reactores paciente (MYCIN)

nucleares.(REACTOR) - Otros : PUFF

DISEÑADORES.- su propósito es desarrollar configuraciones, dado un conjunto de especificaciones, restricciones y limitaciones.

Page 19: 9qf6 - 148.206.53.231

Ejemplos : - Diseñador y probador de nuevos circuitos de tipo VLSI.

- Generador de complejos compuestos químicos. SECS - Configurador de un sistema computacional.XCON

PALLA DIO.

PREDICT0RES.- su prop6sito es predecir las más probables consecuencias razonables de una situaci6n dada.

Ejemplos :

- Predecir los posibles lugares de conflictos amados(l&q - Estimar daños potenciales de plagas sobre plantíos(PLAN7J - Estimar los requerimientos de manufactura del producto.

(PTRANS).

TUTORES.- su prop6sito es ensefiar dirigiendo de manera tutorial al estudiante. Proporcionar simulaciones del comportamiento de ciertos problemas y verificar decisiones. Actuar sobre el proceso de enseñanza-aprendizaje.

Ejemplos :

- Enseriar a estudiantes de medicina a diagnosticar y

- Capacitar sobre el cómo detectar fallas en circuitos

- Instruir al estudiante en la operación de una planta de

recetar a pacientes con infecciones bacteriales. (GUIDON)

el6ctricos. (SOPHIE)

propulsión por vapor. (STEAMER)

PLANEADORES.- su propbsito es diseñar y refinar alternativas para decidir las acciones a realizar en una situacibn con el objetivo de lograr una meta específica.

Ejemplos :

- Asistir en la planeación de ataques abreos (KNOBS) - Asistir en la planeacih de diseño de experimentos de

- Generar planes de manufactura y distribucidn de

- Planificación estrat6gica organizacional (PLANNER)

laboratorio en biología molecular (SPEX)

productos (PTRAN)

MONITORES.- su propósito es comparar el estado de un proceso real con el estado esperado, para detectar desviaciones y sugerir las correcciones.

Ejemplos : - Controlar y monitorear las funciones de un sistema

- Monitorear el estado de un paciente en una sala de operativo computacional (YESLMVS)

Page 20: 9qf6 - 148.206.53.231

cuidado intensivo, a partir de la captacidn de datos, tales como presidn sanguínea, pulso cardiaco, etc. (VM)

- Monitorear los procesos de un reactor nuclear. (REACTOR)

DESCUBRIDORES.- su propósito es la generación de nuevos conceptos valido bajo reglas y principios consistentes, así como el descubrimiento de relaciones entre datos que pueden formalizarse.

Ejemplos :

- Descubrimiento de reglas desconocidas sobre la conducta de algunos compuestos en el espectrómetro de masas.

- Descubrimiento de yacimientos de molibdeno que expertos ignoraron durante 60 años. (PROSPECTOR)

- Formulación de conceptos y conjeturas sobre la teoria de números (A M).

(META-DENDRAL)

QUE NO ES UN SISTEMA EXPERTO

Hay una gran cantidad de sistemas que se denominan expertos pero que no lo son. Los siguientes sistemas computacionales no se pueden actualmente clasificar dentro de una familia formal de sistemas expertos. La razón se adiciona.

* Diagn6stico m6dico basado en métodos y datos estadísticos o análisis simple de casos existentes.

En el caso de algunos diagnosticadores médicos que se basan sólo en estadísticas descriptivas para hacer sus diagn6sticos, muchas veces se olvidan o le restan importancia al proceso pregunta-respuesta al evaluar signos del paciente, ambientes, síntomas e historial clínico, circunstancias en las que ocurrieron los accidentes, etc.

* SISTEMAS DE AYUDA COMPUTACIONAL

Muchos sistemas de información y paquetes comerciales introducen instrucciones o procedimientos de ayuda dentro de sus repertorios; sin embargo, estas peticiones son s610 llamadas a listas de despliegues de procedimientos o instrucciones que muchas veces sólo listan todo lo que tiene de cierto tópico, sin siquiera preguntarle al usuario para qué es que quiere la ayuda, o si éste esta teniendo respuestas a su petición.

Page 21: 9qf6 - 148.206.53.231

HERRAMIENTAS EXPERTAS ( " SHELLS " ) PARA LA GENERACION DE APLICACIONES ( HEGA's )

CARACTERISTICAS IMPORTANTES DE UN LENGUAJE DE INTELIGENCIA ARTIFICIAL.

Previamente al desarrollo de cualquier actividad de diseño e implementaci6n de una aplicaci6n experta artificial es necesario conocer cuál va a ser la herramienta que se va a utilizar para su desarrollo y que mejor se adecúe a los requerimientos del problema en particular.

¿ Que debe de tener el lenguaje para que se pueda utilizar para desarrollar propiamente sistemas inteligentes ?

a. - capacidad de manejar optimamente estructuras de listas.

b.- capacidad de manejar eficientemente diferentes "tipos de datos" en sistemas de información de naturaleza variada y de muy extenso volumen.

c.- habilidad de descomponer sistemas mayores en pequeños subsistemas, de tal forma que se puedan hacer modificaciones modulares sin degradar significativamente el sistema completo.

d.- poseer estructuras de control que permitan utilizar ya sea recursión o paralelismo en el desarrollo de actividades internas.

e.- capacidad de poder interactuar eficientemente con el usuario y con otras unidades del sistema.

f.- poder generar un cddigo eficiente de tal forma que, la función del sistema sea optimizable y viable de operar en condiciones de tiempo-real.

9.- facilidades para realizar deducciones automaticas y para manejar un base de datos de aseveraciones que forman la base de las deducciones. Hay dos tipos de Idgicas para realizar este tipo de deducciones. La lógica monothica es aquella en la que nuevos hechos (axiomas) pueden invalidar deducciones hechas previamente : o sea que el conjunto de hechos sólo se incrementa. La lógica no- monofónica permite hacer suposiciones y cuando es necesario retraerse y hacer de nuevo inferencias, permite modificaciones sobre la marcha.

h.- capacidad de construir estructuras complejas de conocimiento con la finalidad para manejar objetos tales como "cuadros" o redes semánticas.

i.- tener la capacidad de controlar estructuras que facilifen el manejo de ambientes dirigidos a metas ( top-down ) o a dafos (bottom-up).

j.- la habilidad de mezclar procedimientos y estructuras de datos de la mejor forma para atacar tareas particulares.

Page 22: 9qf6 - 148.206.53.231

k. facilidad para enriquecer las bases de conocimiento y si es posible de auto- adaptarse a nuevos conocimientos generados por el usuario.

Estas herramientas se pueden clasificar en varias familias así :/Hu/

a.-

a.1

a.2

Lenguajes de propósito general

Lenguajes orientados a problemas * C * PASCAL * Ada

Lenguajes de manipulación de símbolos * LISP ( COMMON LISP, etc. ) * PROLOG (TURBO-PROLOG,M-Prolog, etc) * SMALLTALK

LISP.-(List Processing Languaje). El segundo mas antiguo lenguaje de programacibn después del FORTRAN. En LISP los programas o estructuras de control y las estructuras de datos esthn expresados por la misma forma y procedimiento recursivo. Es un lenguaje 'I orientado a procedimientos 'l. Por ejemplo para expresar una función factorial se tiene : (DEFUN FACTORIAL (n) (Cond ((zerop n) 1) (t ( times n (FACTORIAL ( sub 1 n )))))). Con esta expresión recursiva tan sencilla se realiza toda la representación simbólica de la función. Actualmente hay cerca de 12 LISP's, siendo el esthndar m& comercial, el COMMON-LISP

PROLOG : (Programming in Logic). lmplementado por A.Colmerauer en Marsella

Esta basado en el concepto teórico de programación lógica (R.Kowalski) sobre objetos y sus relaciones.

(1 972-73).

SMALLTALK.- Es un lenguaje orientado a objetos. En este lenguaje cada objeto lleva consigo sus propias operaciones y mensajes que representan la interacción entre componentes. Tiene la habilidad de agregar nuevas clases de objetos, sin modificar el código existente en forma modular. Es un lenguaje de gran potencial sobre todo en la actualidad en la que la teoría y la practica de la metodología de la programación por objetos se esta desarrollando.

BI. Sistemas de ayuda a la generación de SBC's :

82. Sistemas de adquisición del conocimiento dedicados a la extracción del mismo (KC)

B3. Sistemas dedicados al diseiio, construcción y control de Sistemas Expertos. (KEE,KES,PC-Plus,EXSYS,GURU)

Page 23: 9qf6 - 148.206.53.231

Estas herramientas pueden clasificarse por métodos de programacibn y representacih así:

Basados en reglas : M. 7 , EMYCIN, EXISYS Basados en "frames": SRL Orientados a procedimientos : LISP Orientados a objetos : SMALLTALK Basados en I6gica : PROLOG Orientados a transacciones o accesos : LOOPS

Page 24: 9qf6 - 148.206.53.231

REFERENCIAS

O Waterman Expert System

O P.Winston Artificial Intelligence

O E. Charniak, Mc. Dermott Artificial Intelligence

0 E. Rich Artificial Intelligence

0 Luis A. Machado La Revoluci6n de la Inteligencia

O “Reverse Engineering the Brain” J. K. Stevens. Byte Abril 1985.

O Rule Master Product Flier

0 Naylor Building Expert System

Page 25: 9qf6 - 148.206.53.231
Page 26: 9qf6 - 148.206.53.231

METODOLOGIA PARA LA CONSTRUCCION DE APLICACIONES EXPERTAS UTILIZANDO HERRAMIENTAS PARA EL DESARROLLO (Shells)

"En las limitaciones se distingue al maestro [Goethe]"

METODOLOGIA PARA EL DESARROLLO DE APLICACIONES

Descripcih de la Metodología.

Nos concentraremos en la "Ingeniería" o la estrategia necesaria para elaborar aplicaciones que compitan efectivamente y que tengan un alto valor agregado a los procesos, ya sea de toma de decisiones en forma inteligente (IDSS), de resolución de problemas (PSS's) con ayuda computacional o a los procesos de diseno por medios computacionales (CDx).

Este m6todo esta constituido por las siguientes fases :

FASE 1 Factibilidad e identificación de especificaciones.

FASE 2 Extracción del conocimiento y transferencia de la experiencia ( expértice ) del experto al SBC.

FASE 3 Construcción de la base de conocimientos.

FASE 4 Diseño y desarrollo incremental en base a prototipos.

FASE 5 Refinamiento e implementación del Sistema Experto.

FASE 6 Implantación del concepto de SBC en la organización.

FACTlBlLlDAD E IDENTIFICACION DE ESPECIALIDADES

OBJETIVO :

Establecer y/o decidir si un sistema basado en conocimientos (SBC) es una soluci6n apropiada al problema. Si lo es, entonces establecer las especificaciones de diseño del sistema.

Debido a la orientación del concepto, se estima que un producto terminal como lo es el sistema experto (SE) debe de tener las siguientes características :

Tener la flexibilidad en su interaccih con el usuario Poseer facilidades en explicación de la línea de razonamiento.

Page 27: 9qf6 - 148.206.53.231

Ser un sistema que ofrece mdposibilidades que los sistemas convencionales en

Manejar como base de operaci&n fundamental porciones de conocimiento m& su flexibilidad y

que informaci&n.

REGLAS BASICAS PARA LA GENERACION DE DIALOGOS HOMBRE- SISTEMA EXPERTO.

La siguiente es una lista de reglas básicas para la ejecución de diálogos. Estas esthn catalogadas en cuatro categorías /B.curtid,J.Miller/

a) Las reglas que se relacionan con el &disis y desarrollo de sistemas, b) Las que se dedican a la adaptaci6n del usuario al sistema c) Las que se dedican a minimizar la carga mental del usuario d) Las que están dirigidas a la detección-correcci6n de errores

A.

1. 2. 3. 4.

B.

5. 6. 7.

a. C.

9. 1 o. 11.

12.

13.

ANALISIS Y DESARROLLO DE SISTEMAS

Introducir una idea o concepto a través de la experiencia Utilizar el modelo del usuario :terminal Mantener la etapa de diseño durante todo el ciclo de interfase Utilizar el sistema computacional como bitácora de rendimiento para fines de anhiisis y desarrollo

ADAPTACION DEL USUARIO AL SISTEMA

El usuario termial será quien modele el sistema El usuario (experto o terminal) deberá dominar al computador Deberhn evitarse casualidades en el proceso pregunta-respuesta: debe ser un ambiente causa-efecto y no efecto-causa. Permitir al usuario una máxima flexibilidad en el tipo de respuestas. MINIMIZAR LA CARGA MENTAL DEL USUARIO

Debe de estructurarse en un marco de uniformidad y consistencia Utilizar intensivamente los "quieres" o razonamiento bien estructurado. Los manuales del usuario deben estar basados casi completamente en el diálogo que se desarrolló para el sistema o simplemente su no existencia ... Entrenar gradualmente : Llevar en forma gradual desde lo más simple del sistema hacia conceptos avanzados para expertos. No hay necesidad de hacer 2 o 3 tipos de diálogos para diferentes niveles de expertos, es suficiente un sólo nivel que permita avanzar desde lo básico hasta lo general en forma escalonada. También hay que permitirsaltos para avanzar al paso en caso de poseer cierta experiencia previa. Hacer que el dihlogo sea observable hacia adelante/ hacia atrás

Page 28: 9qf6 - 148.206.53.231

D.

14.

15.

16. 17.

DETECCION-CORRECCION DE ERRORES

Validar los datos de entrada : Hacer que el usuario participe antes de actuar sobre lo producido. Proveer un mecanismo de reset : Para evitar loops o ciclajes innecesarios, permitir abortos no catastróficos. Poder ir a los menús padres,generar check-points para evaluación de estatus en el proceso de ejecución. Proveer una facilidad que permita el backtracking de reserva. Hacer correcciones a través de re-entredas y re-runs ( re-corrida ) : Apuntar a campos modificables y traer información anterior para ser cambiada.

LA INTELIGENCIA ARTIFICIAL Y EL FUTURO

Gran parte de los primeros trabajos sobre sistemas expertos se realizó en Estados Unidos, pero Japón planea gastar cientos de millones de dólares en la próxima decada a fin de desarrollar computadoras avanzadas que estén enfocadas específicamente a las aplicaciones de la inteligencia artificial. ( Algunos opinan que desde la decada de 1940 se han desarrollado cuatro generaciones de computadoras. El esfuerzo de los japonese$ se ha definido como un intento de producir maquinas de la ” quinta generacióq ‘I.) Los japoneses esperan alcanzar antes del ano 2000 el liderazgo en la tecnología de inteligencia artificial con una supercomputadora capaz de almacenar una base de conocimientos de hasta 2000 reglas y 100 millones de elementos de información.

En un esfuerzo por no quedar a la zaga, la Defense Advance Projects Research Agency (DARPA, agencia de investigaciohes en proyectos avanzados para la defensa ) del gobierno de Estados Unidos est6 gastando tambih cientos de millones de dólares en un programa llamado Strategic Computing Initiative ( iniciativa estretbgica de cómputo ) cuyo objetivo es lograr grandes avances en microelectrchica, arquitectura de computafloras e inteligencia artificial. Estas investigaciones se estan realizando en arrlbientes académicos e industriales y muchos las consideran como la respuesta de Estados Unidos ante la amenaza competitiva japonesa. Es probable que esto$ esfuerzos de investigaciones a nivel mundial ayuden a determinar la forma cdmo las generaciones futuras van a interactuar y emplear a las computadoras. Aun ahora, en una escala mucho menor, están apareciendo paquetes para computadoras personales que proporcionan a los usuarios consejos financieros y legales, así como ayuda en otras categorías. Estos sistemas se hubieran considerado sueiios imposibles hace una generación.

En un futuro previsible, empero, es probable que la funci6n de la computadora siga siendo la de un amplificador de la inteligencia, un aliado de la humanidad. Esta alianza combina la superioridad actual del: cerebro humano en cuestiones que requieren creatividad, juicio e intuición con la superioridad de la computadora en cuanto á velocidad de procesamiento, almacenar grandes volúmenes de información, exactitud e inalcansable atencibn a los detalles. La palabrasinergia se refiere a la facultad de dos entidades de’ lograr juntas lo que son incapaces de lograr solas.

-- “ . -yI~ .. ”” , . ~” ,.. .- . .“--””““““““I._.

Page 29: 9qf6 - 148.206.53.231

FUTURO DE LOS SISTEMAS BASADOS EN CONOCIMIENTOS

FUTURO DE LOS SBC's

Esta seccibn tiene dos propósitos. Primero, el mostrar que los SBC no son una tecnologia más, sino que está apoyada por una base econbmica considerable y segundo, que se estima van a establecer una nueva, prometedora y perdurable era en la computacibn moderna.

Los SBC son más una evolución que una revolución y están bien fundamentados y soportados por las ciencias computacionales, del conocimiento,, de la información, asi como de las tbcnicas de Ingeniería de Software.

A continuación se presentan algunos datos y comentarios que muestran la tendencia de la "Industria" de los sistemas basados en conocimiento.

EFECTO DE LAS COMPUTADORAS SOBRE LA PERSONA

La computadora es una de las fuerzas más poderosas de la sociedad actual. Se están utilizando en todos lados - en los hogares y en organizaciones de todos tamailos - y nadie puede dudar que este uso está teniendo un considerable efecto sobre muchas personas. La computadora es la fuerza motriz detrás de una revolucibn inform6tica y, como en cualquier revolución, es posible que algunos inocentes resulten perjudicados.

LAS COMPUTADORAS EN LA CIENCIA, INGENIERIA Y NEGOCIOS

Las computadoras del mundo procesan diariamente miles de aplicaciones científicas. Una de estas actividades diarias es el pronóstico del tiempo. Los meteorblogos han sabido desde hace anos que si a las ecuaciones matemáticas se les suministran datos a nivel mundial sobre la presión del aire, temperatura, humedad y otros valores, la solución de estas ecuaciones producirá una prediccibn exacta de los valores que tendrán estas variables en diversas localidades una hora o un día despubs. En la década de 1960 una computadora fue capaz de utilizar 2000 mediciones como datos de entrada para hacer una predicción relativamente burda con anticipación de un día.

Los programas de pronbsticos que se emplean actualmente utilizan ecuaciones m& detalladas para producir predicciones más precisas. Sin embargo, todavía se pueden mejorar mucho. De hecho, los programas actuales que ponen a prueba la

Page 30: 9qf6 - 148.206.53.231

capacidad de las computadoras más grandes del mundo son modelos burdos de los que usarían los meteorólogos si se contara con computadoras más poderosas. Las supercomputadoras de hoy no son lo bastante super.

EL PROCESAMIENTO DE DATOS LUCHA CONTRA LA INVASION DE LA INTELIGENCIA ARTIFICIAL

Existen ciertos temas que hacen que el personal de procesamiento de datos esboce un gesto de dolor : los recortes de presupuesto son uno de ellos ; el apoyo a clientes es otro y otro más es la inteligencia artificial.

¿ Por qu& la inteligencia artificial ? Como tecnología tiene la capacidad de hacer que las computadoras funcionen como nunca antes lo hacieron, pero los informhticos ya estan disponiendo de las defensa contra este extrano invasor. Ni las mujeres ni los ninos ni las computadoras personales nadie esta seguro.

Casi todas las ideas falsas acerca de la inteligencia artificial aparecen simplemente porque son muchos los que han oído hablar de ella, pero pocos los que la han visto. Sigue siendo algo encerrado en los oscuros laboratorios de las principales instalaciones academicas y de investigación de Estados Unidos. Sin embargo, si se debe ver para creer, convendría examinar algunos de los productos existentes para tener idea de lo que se está haciendo en el campo de la inteligencia artificial para resolver los problemas en el mundo del procesamiento de datos.

Una lista de datos que contenga más de diez millones de nombres de personas a las que se van a enviar catálagos de compras por correo u ofertas de tarjetas de cr6ditos. Cada vez que se envía material promocional, se dirige a la mayoría de las personas de la lista sin saber generalmente cuáles de las semillas van a caer en suelo fbrtil.

Considerada como una solución, la inteligencia artificial presenta algunas posibilidades reales en la lucha contra los problemas a que se enfrentan todos los usuarios de computadoras, no solamente el personal profesional de procesamiento de datos. Tecnologías de inteligencia artificial como son las interfaces de lenguaje natural y la reestructuración automática de cbdigo, podrían evitar muchos sufrimientos en situaciones en las que la computación tradicional se vuelve demasiado laboriosa y costosa.

Hace treinta años, los programas que juegan ajedrez se hubieran considerado como inteligencia artificial. Hace quince años, no se le hubiera llamado inteligencia artificial a cualquier programa que tuviera el descaro de hablar mediante una voz humana sintetizada. En la actualidad, sin embargo, las computadoras que juegan ajedrez no se compran en Cray research o IBM: se compran en un juguetería. Por otro lado, los automdviles, cajas registradoras y cámaras más nuevos hablan hasta por los codos.

Page 31: 9qf6 - 148.206.53.231

La Inteligencia artificial ya se usa en el ambiente de procesamiento de datos.

Si se ponen las cosas en perspectiva, ya existen productos de inteligencia artificial que tienen posibilidades en el procesamiento de datos y que de hecho ya se emplean con frecuencia en ese ambiente. A despecho de la forma como se les llame, estos productos son partes importantes de una tecnología dirigida a mejorar la eficiencia y las interfaces en computación. Actualmente, todos provienen de fabricantes que por lo general no sobresalen de entre las demás compafiías dedicadas a la inteligencia artificial.

Algunas de estas compailías estan tratando de borrar esta imagen, ya que la presencia de la inteligencia artificial en el procesamiento de datos goza de tanta popularidad como la adquisición de enfermedades raras y contagiosas. Todavía no es posible comprar productos de inteligencia artificial a ' Cullinet Software o McCormack & Dodge, pero no falta mucho para que aun estas casas de programación integren técnicas y productos de inteligencia artificial en sus programas, a tal grado que lo que en un tiempo se consideró inteligencia artificial será completamente transparente para el usuario.

La fábrica del mañana probablemente será una instalación defabricación integrada con computadoras. Los elementos que se encuentran en una instalación es evidente que la computadora juega un papel vital. La fábrica Fanuc en el monte Fuji, en Japón, ha sido llamada prototipo de la "fábrica del futuro". Se producen cerca de 250 piezas de productos Fanuc en lotes de cinco a veinte unidades, Los materiales se transfieren de un almackn automatizado a las estaciones de trabajo mediante camiones robots. Una vez que los robots y demás máquinas terminan su trabajo, el sistema de manejo de materiales toma otra vez las riendas del proceso. Los camiones almacenan automáticamente las piezas terminadas y transportan otros materiales a su siguiente destino. El ensamblado de piezas para formar máquinas completas todavía no está del todo automatizado, pero muchas otras operaciones de la fábrica Fanuc se lleva a cabo sin intervención humana.

AREAS DE TRABAJO EN LA ACTUALIDAD

- Simulación cualitativa: Integración de SE's y modelos de simulación cuantitativa ( o sea combinación de conocimiento cualitativo y ( cuantitativo )-

- Manejadores expertos de bases de datos, así como de herramientas inteligentes de explotación de textos y bases de información en forma stand-alone y distribuida.

- Representacih de fen6menos gspeci-, dependientes del tiempo, inciertos y modelación del usuario (más que el experto), así como nuevas tkcnicas de diseno inteligente.

Page 32: 9qf6 - 148.206.53.231

- Adquisición automhtica más eficiente. Adquisición por ejemplos o casos. Sistemas estructurados de conocimientos. Conocimiento de varios dominios. Bases de sentido común. Redes neuronales.

- Modelos inteligentes de soporte a la decisión (IDSS) hasta llegar a los apoyos ejecutivos (ESS:Executive Support Systems) Sistemas que resuelvan multi-

Integración de paquetes de simulación "data bases" y redes de objetivos.

comunicación.

- Desarrollo de interfases de lenguaje natural.

Pero sobre todo, se está generando una nueva filosofía que por vez primera esta tratando de despejar ciertas incógnitas que en la Epistemología, la Psicología educativa, la Lingüistica y en las Ciencias del Conocimiento habían permanecido por largo tiempo. Disciplinas, estas son las que se han visto complementadas por la introducción de nuevas tecnologías computacionales.

AVANCES, PREDICCIONES Y REALIDADES DE LA INDUSTRIA DE LA IA.

En los conocimientos de los 80 las grandes compañías comenzaron a interesarse en el Brea de IA.

Actualmente sus departamentos de investigación están produciendo tanto como las propias universidades.

Las empresas que se interesaron a los comienzos de los 80's y que actualmente tiene más que productos de desarrollo, productos terminados aplicados a la industria correspondiente son : Westinghouse, General Electric, Schulmberger, Xerox, Di ita1 Equipment, Texas Instruments, Fairchild e IBM.

HAR 9, WARE COMERCIAL DE SOPORTE AL DESARROLLO DE SBC's.

HARDWARE DE SOPORTE AL DESARROLLO DE SBC's.

En este capítulo se presentarán varias arquitecturas computacionales propias para el desarrollo de sistemas en el ambiente de Inteligencia Artificial.

Se dividirán las arquitecturas en dos tipos. Primeramente arquitecturas comerciales que se han especializado en el manejo de estructuras de datos simbólicos y lenguajes propios de IA, corno LISP y PROLOG.

Page 33: 9qf6 - 148.206.53.231

LISP, en especial, es un lenguaje que ha venido en progreso constante y muy significativo en cuanto su integración al hardware convencional. Este tipo de hardware especializado pero no basado enteramente en tecnologias simbólicas, es el más común.

El segundo tipo de arquitectura es la especialmente dirigida al manejo simbólico del conocimiento. Son máquinas basadas principalmente en Sistemas Operativos, escritos usualmente el LISP o un lenguaje equivalente de Programación ibgica.

SISTEMAS DE PLANEACION BASADOS EN CONOCIMIENTO PARA ENSAMBLE MECANICO UTILIZANDO ROBOTS.

Actualmente, la automatización de ensamble mecánico es de gran importancia econ6mica para la industria. La automatización se divide en dos clases :

0 La primera clase de automatización extensiva, con máquinas especializadas para cada ensamble y esta diseñada para altos volumenes de producción.

0 La segunda clase utiliza una automatización flexible en la cual las mequinas son controladas por computadoras y pueden ejecutar varias operaciones de ensamble.

Existen dos técnicas principales para llevar a cabo esta clase de automatización.

1) Programas para aprender : Programas que permiten a la mequina estructurar sus operaciones de ensamble.

2) Programación textual : Ofrece al sistema el plan de ensamble en términos de operaciones a través del lenguaje natural.

EL APRENDIZAJE DE LA MAQUINA

Ir en curso estrecho con la inteligencia es aprender. De hecho la inteligencia no podría existir sin la habilidad de aprender, por que aprender significa adquirir nuevos conocimientos. Aprender permite que tu mismo te adaptes, y uses ese aprendizaje en ventaja ante varias situaciones y acontecimientos, de ese modo, la habilidad para aprender es una herramienta poderosa.

Page 34: 9qf6 - 148.206.53.231

No es sorprendente que algunos programadores quieran crear un programa que pueda utilizar esta herramienta en la forma en que lo hace la gente. El programa que pudo hacer esto, pretende en teoría ser el último programa que se haya escrito ya que este pudo aprender a realizar varias tareas, simplemente por que as¡ se le ensefió.

DOS FORMAS DE APRENDER

Una paradoja sorprendente es que es muy fácil al igual que extremadamente dificil para la computadora aprender. La razón de esto es que hay dos diferentes tipos de aprendizaje : APRENDIZAJE DE MEMORIA Y APRENDIZAJE COGNOSITIVO. A este punto tuviste que desafiarlo para indicar que hay otros varios tipos de aprendizaje, como el APRENDIZAJE POR ANALOGIA, POR EJEMPLOS, POR OBSERVACION. Como sea, esto se refiere a métodos por los que el conocimiento se puede adquirir y no por actuales mecanismos que permitan que el aprendizaje ocurra. Estas son las bases para aprender que ese es el foco de esta sección.

APRENDIZAJE DE MEMORIA

Mucho de lo que aprendes es simplemente llevado a cabo por hechos que tu adquieres a través de la memorización o repetición. Este proceso es llamado aprendizaje de memoria. Algunos ejemplos de hechos que tu tienes que aprender por este método serian : que 1+1=2, o que la distancia de Nueva York a Chicago es de 1500 millas. Pero el aprendizaje de memoria no se limita solo a hechos, también puede ser aplicado para secuencia de acciones, tal como una tarea. Un empleado de fdbrica, por ejemplo, puede aprender a apartar las cajas rojas y amarillas en la línea de montaje y colocarlas en la sección correspondiente. La secuencia de memorización es como sigue :

La misma idea se aplica a la forma en que a los niños se les enseña a dividir o multiplicar. Cada niño memoriza la secuencia específica de acciones y las aplica a la secuencia requerida.

7) LEVANTAR CAJAS ROJAS O AMARILLAS 2) COLOCARLAS EN LA SECCION APROPIADA

Lo principal del aprendizaje de memoria es la especificación. Por necesidad, todas las cosas que tu puedes aprender de memoria son específicas. La distancia entre Nueva York y Chicago es específica, tal como las tareas de un empleado de fábrica y los métodos usados para resolver una multiplicación.

Aunque como método debi6 ser aplicado a una extensa variedad de problemas, la actual secuencia de pasos que determinan una tarea no es generalizable. De este modo las secuencias aprendidas de memoria son más propiamente llamadas procedimientos.

Page 35: 9qf6 - 148.206.53.231

Una computadora puede más facilmente aprender cualquier cosa de las que tu puedas aprender de memoria. De hecho esta es la manera en que opera una computadora : ELLA ES PROGRAMADA I desde entonces las computadoras son muy buenas para seguir instrucciones, ellas fácilmente siguen un procedimiento o acumulan algún artículo de información en una base de datos. Por ejemplo; a un estudiante se le enseña que el agua es un líquido entre los 32 y los 212 grados, de esta manera tu puedes introducir la misma informaci6n dentro de un programa de base de datos y cuando tu preguntes que es el agua, tanto el estudiante como la computadora responderán en la misma forma.

En resumen aprendiendo las cosas de memoria involucra la memorización de hechos específicos o procedimientos. No se requiere hacer alguna generalización o algún pensamiento profundo. Ya que las computadoras pueden aprender de memoria, en la siguiente sección observarás otra manera de aprender.

CONOCIMIENTO COGNOSITNO

La forma más importante en que tu prendes, y la cual es la más difícil de implementar es el conocimiento cognositivo. En esta forma de aprendizaje utilizas tu raciocinio para analizar, organizar, y correlacionar piezas específicas del conocimiento. El producto de este esfuerzo mental es la creación de descripciones de clases. Una descripción de clase es una simple generalización que se deriva del examen de unos pocos ejemplos específicos.

Por ejemplo a traves del conocimiento de unos perros específicos, eres capaz de crear un concepto generalizado del perro lo que permite conocer virtualmente a cada perro específico entre varios perros. El punto es que tu has aprendido la descripción de clase de un perro. Generalmente una descripción de clase define todos los objetivos de cierto tipo. Esto concentra que tan rapid0 puedes aprender una generalización. Tambikn puedes formar descripciones de clases por este procedimiento. Tu puedes entonces adaptar este procedimiento generalizado a una variedad de situaciones similares, por ejemplo, tu puedes conocer el procedimiento general para barrer un piso con cualquier tipo de escoba, posteriormente tu puedes fAcilmente manejar tu carro en cualquier camino aunque tu jamás lo hayas visto antes. Tu puedes hacer este tipo de tareas por que puedes generalizar los elementos básicos del procedimiento que definen estas tareas. Esta habilidad de generalizar los procedimientos es la que separa a los humanos de los robots. Un robot puede conocer una tarea específica pero no es capaz de generalizar.

Tu habilidad para aprender a clasificar no está limitada para objetos o procedimientos, pues puede aplicarse también a ideas y conceptos.

Por ejemplo la mayoría de los filósofos y religiosos intentan dar a sus seguidores un código generalizado de conductas y creencias que les permita la interpretación específica de los eventos, de acuerdo con ese código se considera el concepto de bueno y malo. Estas clasificaciones generales que se usan para describir eventos

Page 36: 9qf6 - 148.206.53.231

específicos; estos conceptos representan descripciones de clases de ciertas acciones específicas con implicaciones morales.

Claramente la habilidad de aprender las descripciones de clases es fundamental para la creación de que una computadora piense igual que un ser humano, es la simulación de este tipo de conocimiento del que trata este capítulo.

El profesor Patrick Henry Winston, director del laboratorio deinteligencia artificial del Instituto de Tecnología de Massachusetts realizó el mejor avance científico hacia el entendimiento del aprendizaje cognositivo, éI es una de las principales autoridades en el mundo sobre IA, y su libro "ARTIFICIAL INTELLIGENCE", se recomienda ser leído por estudiantes que se dediquen seriamente al estudio de la inteligencia artificial. Su método de aprendizaje sobre descripción de clases algunas veces es llamado HIT-AND-NEAR-MISS ( pegar y casi fallar ) por razones que pronto verás.

EJEMPLOS Y NEAR-MISSES ( CASI FALLAR )

Para ayudarle a entender el proceso HIT-NEAR-MISS, tendrá que saber que el estudio de ejemplos tradicionales aquí ilustrados son el punto clave. Imagine que est6 enseñando a alguien a que reconozca un arco que se construyó con bloques. Primero lo construyes como lo muestra la figura No. 1; después le dices a la persona que esa estructura es un arco, en el paso siguiente tu mueves el bloque de arriba e inmediatamente colocas los otros dos bloques como muestra la figura No.2 y para informacibn del estudiante eso no es un arco.

Eso implica que un arco debe tener un bloque en lo alto, tu próxima construcción de un arco es como lo muestra la figura No.3 y dile a la persona que eso es un arco. Después construyes la estructura que muestra la figura No.4 y dile a la persona que eso no es un arco . Esto implica que los soportes laterales no deben tocarse entre sí. Finalmente construyes un arco como lo muestra la figura No.5, la cual tiene un cilindro instalado sobre los bloques, e indica a la persona que eso sigue siendo un arco. De esta manera el estudiante tendrá estas clases de descripciones de arco; también debe tener un bloque o un cilindro en lo alto de otros dos bloques que no se tocan entre sí, y los bloques de soporte deberán mantenerse de pie o acostados. Estos ejemplos ilustran el punto clave : tu puedes crear una clase de descripción usando ejemplos de objetos seleccionados ( o conceptos, ideas o acontecimientos ) cualquiera de ellos son parte de una clase o bien sólo difieren en algunas formas. Mientras el estudiante dice cuales objetos forman parte de una clase o cuales objetos son NEAR-MISSES, el puede construir una clase de descripción por medio de la observación de similitudes y diferencias que están asociadas a cada ejemplo.

Como la clase de descripción es el desarrollo, el papel que se juega en ejemplos correctos es diferente al que se juega por NEAR-MISSES. Cada ejemplo correcto causa una descripción común que será ampliada o generalizada, por ejemplo, en el caso del arco, cuando tu muestras a los estudiantes el arco con los bloques de soporte acostados, el estudiante debe

Page 37: 9qf6 - 148.206.53.231

generalizar la descripción de qué arco se aceptará para comprobar el hecho de que eso es un arco. Estos ejemplos también son verdaderos cuando los estudiantes ven el arco con un cilindro.

Como sea cada NEAR-MISS causa una descripción en desarrollo para ser coacción, cuando se presentó el hecho de que la estructura en la figura No. 2 no es un arco, el estudiante tuvo que determinar la diferencia entre esa estructura y la clase de estructura admitida.

La única diferencia obvia fue que el tercer bloque no es tan largo para lo alto como los otros dos. De ahí que el estudiante agregue a la descripción la coacci6n de que todos los arcos deben de tener un bloque en lo alto.

El estudiante sigue el mismo proceso cuando se enfrenta con el NEAR-MISS en el cual los bloques se tocan entre sí : la coacción es agregar a esta clase de descripción que los lados no deben tocarse entre sí.

Ten en mente que como una descripción de clase se desarrollan, entonces las coacciones previas, deben ser generalizadas y las generalizaciones deben ser coaccionadas.

Por ejemplo, cuando el estudiante está enseñando el arco con el cilindro en lo alto, la coacción que se requiere es que el bloque que debe estar en lo alto tiene que cambiarse para requerir que cualquiera de los dos, el bloque o el cilindro, deben estar en lo alto.

Has enseñado a los estudiantes diferentes arcos, cada uno teniendo diferente tipo de tapa, eventualmente la coacción debió ser cambiada para requerir que el arco tiene algo en la tapa. En caso como este, otra clase de descripción es sustituida por una extensa lista OR. Si tu miras esta forma de proceder con una ligera diferencia en tu punto de vista, tu podrás ver que cada objeto correcto se presenta al estudiante con una serie de atributos que los objetos de esta clase deben tener.

Es por eso, por lo que las personas dicen que cada objeto específico forma parte de una clase, la clase descrita por el estudiante debe incluir objetos de cierto tipo. Es correcto el uso de NEAR-MISSES para que los estudiantes puedan aprender qué objetos deben estar en esa clase y cuales no.

Fundamental para aprender este proceso es el hecho de que NEAR-MISSES debe diferir s610 un poco de algunas cosas de preferencia obviamente que sólo sea en una. De otra forma el estudiante no podrá definir cual es el factor de retroalimentación.

Por ejemplo, si tu mostraste el primer arco y señalaste un pájaro que pasaba por la ventana, y dices que el pájaro no esta en el arco, el estudiante no necesita de esa informacih para describir la clase de arco.

Page 38: 9qf6 - 148.206.53.231

APARIENCIA HUMANA

Este capítulo tratará con los programas escritos que actúan como la gente. El clásico ejemplo de esto es el programa ELIZA, cuyos actos se parecen a los del siquiatra ROGERIAN. Este capítulo profundizará en cómo dar al programa de computadora la apariencia de personalidad y emoción, y cómo desarrollar tres versiones simples del genero del programa ELIZA, por ilustración.

Ya que tu probablemente sdlo cuentas con teclado y monitor, el escenario es como sigue :

Imagina que hay dos terminales; una está conectada a otra terminal la cual se encuentra en el cuarto de junto y presenta un operador humano, mientras que la segunda terminal está conectada por computadora. Ambos, la computadora y el operador humano, responderán a cualquier cosa que tu tecles.

Si tu no puedes decir que terminal está conectada a la computadora y cual está conectada al operador humano, entonces el programa que esta corriendo en la computadora tendrá éxito en APARIENCIA HUMANA.

TRUCOS

Mucha gente dice que la forma en que el programa originalELlZA funciona tiene algo que ver con la seria investigación delA, y que lo que parece ser inteligencia está basado en trucos y no en principios básicos.

Como sea, estas críticas están olvidando lo que es talvez el punto más importante del programa : ELIZA ES VIRTUALMENTE INDISTINGUIBLE DE UNA PERSONA.

Como pronto verás, el programa ELIZA, no necesita ( pero debe usarse si se decide ) nada de las tkcnicas de elaboración del lenguaje natural. De hecho el promedio de programas de esta clase es un poco sin mentalidad : tiene una pequeña idea de lo que esta pensando. Como sea el punto interesante de los programas tipo ELIZA, es que ellos pueden exitosamente imitar a una persona.

Este es el aspecto que vamos a recibir con mayor énfasis en este capítulo.

G QUE TAN BUENO ES ESTO 3

Hay alguna gente que se pregunta que valor tiene estudiar c6mo hacer que la computadora sea como una persona, sin embargo esta gente ha olvidado un punto

Page 39: 9qf6 - 148.206.53.231

muy importante m COMO UN NUMERO CRECIENTE DE LOGROS SON

PRODUCIR UN BUEN MANEJADOR DE INTERFASES. Si la gente verdaderamente va a usar mdquinas inteligentes, entonces estas mdquinas deben actuar en parte como la gente, ya que la gente ha tenido que acostumbrarse a este tipo de interface.

REALIZADOS HASTA EL FIN, ESE ES UN CRECIMIENTO NECESARIO PARA

EL HOMBRE VS. LA MAQUINA

Se determinb que el programa fue inteligente si es que este actub en la manera similar que un humano quien se confronta con el mismo problema.

De todas maneras tu deberas entender que hay una astuta diferencia entre el programa que actúa inteligentemente y el que actúa como persona.

Esta diferencia está basada en EMOCIONES Y PERSONALIDAD : generalmente APPEARING HUMAN requiere m& que una simple inteligencia que resuelva problemas.

Esto implica que la computadora debe tener alguna clase de identidad total como una persona lo tiene. Esto da lugar a que se sigan dos preguntas interesantes :

¿PUEDEN LAS COMPUTADORAS TENER EMOCIONES?

¿PUEDEN LAS COMPUTADORAS TENER PERSONALIDAD?

EMOCIONES DE UNA MAQUINA

Uno de los argumentos mas frecuentes en contra de que la computadora sea capaz de imitar completamente la conducta del hombre, es que los humanos pueden sentir emociones y las computadoras no pueden. Actualmente este argumento es insustancial.

Los humanos no tienen forma de saber si la computadora tiene emociones o no; de hecho la gente no sabe si ellos mismos son dueños de sus emociones . Por lo tanto, para decir que la computadora no tiene emociones sería hacer una conclusi6n arrogante.

Una visibn de los estados emocionales es qpe no son conectados al cognositivo de las personas por medio de un proceso; pera algunas se basan en los instintos.

Page 40: 9qf6 - 148.206.53.231

PERSONALIDAD

Si tu eres un fanático del cine de ciencia ficción entonces probablemente tu sabes que las computadoras no tienen personalidad, sin embargo, si una computadora actúa como un ser humano eso hace parecer que debe tener alguna clase de personalidad.

No es obvio como la personalidad se desarrolla en la persona. Ciertamente algo de la personalidad es establecido de manera genética y algo por influencia de experiencias. En vista de que parte de la personalidad humana es incontrolable, parece justificado que uno acepte la solución de que dar personalidad a la computadora es simplemente permitir que se programe de esa manera, por eso programarla para que exhiba personalidad es responder por sus rasgos y cualidades.

La computadora actualmente no cuenta con una personalidad acertada, algo de eso es tener que mostrar una conducta como lo sugiere la personalidad (aunque algunas veces la gente muestra acciones contrarias a su personalidad, o actúa fuera de si )

Para este capítulo la personalidad de la computadora nos dará a conocer cómo la computadora responde ante varias situaciones. Como verás, en nuestros días, es completamente fácil dar a la computadora varias personalidades.

GOING TO THE DOCTOR ( IR CON EL DOCTOR )

Uno de los primeros programas de esta clase y que sigue siendo el programa más famoso con apariencia humana, es ELIZA, creada por Joseph Weisenbaun. Como se menciona al principio los actos de ELIZA, son como los del siquiatra ROGERIAN. ( EL SIQUIATRA ROGERIAN TRABAJA POR UNA SIMPLE REPETlClON DE LO QUE RESPONDEN LOS PACIENTES-EL CUAL TEORICAMENTE PERMITE QUE EL PACIENTE SE AUTOANALICE-)

Aún cuando los programas de esta clase parecen un modo d6cil para programar una computadora en nuestros días, ellos pueden mantener una impresi6n algo no familiar con " Trucos para lo tratado ".

Es en este espíritu, por lo que esta sección desarrollo el programaDOCTOR ( UNA VERSION SIMPLE DERIVADA DEL PROGRAMA ELIZA )

Page 41: 9qf6 - 148.206.53.231

COMO TRABAJA EL PROGRAMA ORIGINAL ELIZA

El programa original ELIZA, simplemente repite las observaciones del paciente usando una palabra clave de reconocimiento.

Cuando el programa encuentra palabras certeras en las creaciones de los pacientes, semejantes a "AMOR', "ODIO", o "QUIERO" el programa podrd responder con una respuesta relacionada con las palabras claves.

Secundariamente, el programa podrá recordar los temas selectos que puedan usarse para mantener una conversaci6n.

Finalmente el programa podrá reconocer algunas frases claves como"TE ODIO", y podrh mostrar una respuesta específica.

El di&logo siguiente muestra una idea general :

DOCTOR PACIENTE DOCTOR PACIENTE DOCTOR PACIENTE DOCTOR PACIENTE DOCTOR PACIENTE DOCTOR

COMO ESTAS HOY?

ESTAS FELIZ

POR QUE ODIAS TU VIDA ?

YO TE QUIERO

HABLEMOS MAS DE TI

ME DICES QUE NADIE TE QUIERE. . .

--BIEN

--NO, ODIO MI VIDA

--POR QUE NADIE ME QUIERE

--BUENO, TU SI

--NO QUIERO

Este tipo de diálogo podrá continuar hasta que el paciente se canse.

Diversas versiones de la clase del programa ELIZA, han tenido que ser desarrolladas por años. Algunas son extremadamente bien desarrolladas y no han podido ser distinguidas por un siquiatra humano.

LA PRIMERA VERSION SIMPLE

La primera versión que desarrolla esta capítulo será muy pequeña y f3cilmente confusa, pero establece un escenario para improvisar. Esta versi6n no recuerda ningún tema y simplemente repite lo que el paciente responde, al menos que el paciente se introduzca a la frase clave; esta versión es completamente sin personalidad o emocibn.

Aquí esta el programa completo :

Page 42: 9qf6 - 148.206.53.231

I*

I* database

A very simple version of Doctor

responses (string) temp (string) transLate (symboL,symboL)

predicates converse patient doctor (string) respond (string) purge

assert (responses("How are you?")), assert (responses("Did you have a happy childhood?")), assert (responses("Did you hate your father?")), assert (responses("Do you have friends?")), assert (temp("")), assert (transLate("l","You")), assert (transLate("You","I")), assert (transLate(you,me)), assert (transLate(your,my)), assert (transLate(me,you)), assert (transLate(my,your)), assert (transLate(am,are)), converse

converse :- temp(S), S=quit, purge.

converse :- retract(temp(S)), doctor(S), patient, converse.

goaL

cLauses

doctor(""):- /* no response from patient */

retract (responses(R)), assertz (responses(R)), write(R),nL.

doctor("No"):-

doctor("Yes"):-

doctor("1 hate you"):-

write("teLL me more")nL.

write("ah ... teLL me more"),nL.

write("Why do you hate me?"),nL.

Page 43: 9qf6 - 148.206.53.231

doctor(S):- respond(S), write("?"),nL.

respond(""). respond(S) :-

fronttoken (S,T,S2), transLate (T,T2), write (T2 ,"") , respond (S2).

fronttoken(S,T,S2). write(T,""), respond(S2).

respond(S):-

patient :- writer: "), readLn(S), assert (temp(S)).

purge :- retract (transLateC,J), faiL.

purge :- retract (temp o), faiL

purge :- retract (responsesu), faiL

purge.

Esta versión de DOCTOR trabaja simplemente repitiendo como pregunta lo último que el paciente afirmó.

Para hacer esto, el predicado respuesta utiliza la base de datos de traducci6n para inventar el contexto de algunas palabras como, "MIO" por "TUYO".

Si la respuesta no encuentra la palabra en la base de datos de traducción, entonces la palabra es simplemente reimprimida tal cual es. De todas maneras si el paciente introduce solamente un "SI" o un "NO", o la frase clave ''.TE ODIO", el predicado DOCTOR maneja esta respuesta directamente. Tu puedes fhcilmente expander las frases y palabras que el programa conoce para permitir que este procese una gran variedad de respuestas.

Si el paciente se introduce sólo al retorno, entonces la fraseDOCTOR usará un estereotipo de respuesta de las respuestas de la base de datos. El programa usa el ajuste de la base de datos para mentener las respuestas de los pacientes hasta que DOCTOR pueda procesarlas.

Lo siguiente es una muestra de una clase de diálogo que esta versión puede introducir. El DOCTOR siempre empieza cada diálogo y el programa indica al paciente con un punto y coma o dos puntos.

Page 44: 9qf6 - 148.206.53.231

How are you : I am fine You are fine? : Yes,but my friend isn't Yes,but your friend isnY? : He has a probLem He has a problem? : I hate you Why do you hate me?

Did you have a happy childhood? : No TeLL me more.

Una terapia con este doctor podrá ser completamente aburrida¡

Despues tu veras como añadir algunos adelantos.

MEJORANDO EL PROGRAMA DOCTOR

Uno de los mas importantes rasgos característicos del programa originalEliza, es que este puede guardar el rastro seguido de temas que el paciente menciona. Cuando la conversacibn empieza a declinar, el DOCTOR puede iniciar al paciente para que tome uno de los temas otravez. Adicionado a esta capacidad se requiere de otra base de datos para almacenar las respuestas de los pacientes. Tambih, simplemente repitiendo las respuestas de los pacientes, es aburrido y no realmente humano. Para remediar esto, la traducción de la base de datos podrá guardar palabras claves y respuestas. Cada vez que el programa reconoce una palabra clave, la pantalla mostrará una respuesta apropiada.

El cambio m8s grande para el programa esta en el predicado delDOCTOR y en la respuesta, como se muestra aquí :

doctor ( 'I 'I ):- /* no response from patient

retract (topics (R)), R<>" 'I

write ("You just said",""), write (R,""),nL, write ("TeLL me more ...If), nL.

respond(S), assert (topics(S)), nL.

/* no response from patient

check patient response fiLe */

doctor (S):-

doctor(_):-

check patient response fiLe */

Page 45: 9qf6 - 148.206.53.231

retract (topics(R)), Ro" 'I. write (You just said ",""), write (R,""),nL, write ("TeLL me more ...I1), nL.

/* unknow response from patient */ retract (responses(R)), assertz (responses(R)), write (R),nL.

doctor(_):-

respond (""):-faiL. respond (S):-

fronttoken(S,T,J, transLate (T,T2), write (TZ,"").

fronttoken (S,-,S2), respond(S2).

respond(S):-

Estos predicados trabajan así : si el paciente simplemente se introduce a la conducción de retorno, entonces la primera cláusula deDOCTOR trata de regresar al tema previo.

Si el tema previo no esta en la base de datos, entonces el programa selecciona un estereotipo de respuesta entre las respuestas de la base de datos. Si el paciente no se introduce a la oración, entonces la respuesta es llamada.

Para el éxito, la respuesta debe encontrar la palabra clave en la oración. Si es así, se imprime la respuesta y es enlazada a la palabra clave y terminales. Si no es así, tratara en la siguiente palabra de la oración usando la tercera cláusula del DOCTOR. Si esta llega hasta el final de la oración, entonces el predicado integro caerh. Si esto sucede, se forzara la ejecución de la cláusula final deDOCTOR. Esta clAusula final de DOCTOR, es la misma como la primera cláusula. El programa integro se muestra aquí :

/* An improved Doctor program that remembers topics and

*I uses key words to generate responses.

database responses (string) temp (string) transLate(symboL,symboL) topics(string)

predicates converse patient

Page 46: 9qf6 - 148.206.53.231

doctor(string) respond(string) purge

assert (responses("How are you ?")), assert (responses("Did you have a ha py childhood?")), assert (responses("Do you hate your P ather?")), assert (responses("1'm not sure I understand")), assert (responses("G0 on")), assert (responses("Do you have friends?")), assert (temp("")), assert (translate("think","Why do you thinh that?")), assert (translate("you",Let's not talk about me.")), assert (translate("hate","So you hate TeLL me more.")), assert (translate("what",'Why do you ask?")), assert (translate("want","what would you do with it?")), assert (translate("need","We aLL need many things.")), assert (translate("why","Remember,therapy is good for you.")), assert (translate("know","How do you know that?")),

goaL

cLauses converses:-

temp(S), S=quit, purge

converse :- retract(temp(S)), doctor(S), patient, converse.

doctor("") :- /* no response from patient

check Datient rewonse fiLe */ retract (topics(R)), Rc>I'I1. write(';You just said 1111111 )I

AÑADIENDO ALGO DE PERSONALIDAD Y EMOCION

Tu puedes hacer que el programa se presente para tener emociones alterando respuestas para acertar palabras claves. Por ejemplo, la palabra c1ave"murder" debe tener una respuesta I' no me gusta la gente que asesina".

Page 47: 9qf6 - 148.206.53.231

También tu debiste escoger una personalidad para el DOCTOR y hacerle a la medida las respuestas para el. Por ejemplo, si tu quieres que el DOCTOR sea optimista, tu debes cambiar la respuesta "núnca" por "no seas negativo, piensa positivamente".

Finalmente esto debe ser agradable si el DOCTOR llego a molestarse cuando el paciente repita la declaración. Para hacer esto se requiere que tu añadas otra base de datos que guarde las respuestas de los pacientes y para cambiar el predicado paciente como se muestra aquí. El contestador exacto es una base de datos que guarda las respuestas de los pacientes :

patient(S) :- patresponses(S) write("You are repeating yourself."), nL, write(":"), readLn(S2), patient(S2).

patient(S) :- assert (patresponses(S)), assert (temp(S)).

Con este cambio, cuando el paciente se introduzca a las respuestas idénticas por la que fue previamente introducida, el doctor responde con una represión y el programa indica al paciente por una nueva oración.

La versión expandida se muestra aquí:

I* An expanded doctor program that shows some emotions and displays a LittLe personality.

database *I

responses(string) temp(string) transLate(string) topics(string) patresponses(string)

predicates converse patient(string) doctor(string) respond(string) purge

assert(responses ("How are you this beautiful day?")), assert(responses ("Did you have a happy childhood?")), assert(responses ("Do you hate your father?")), assert(responses (I'm not sure understand")), assert(resp0nses ("Go on")),

goaL

Page 48: 9qf6 - 148.206.53.231

asser asser asser asser asser asser asser asser asser asser asser asser asser asser assel assel conw

t t t t t t t t I t 1 1 1 1 1 1 5

,(responses ("Do you have friends?")), :(temp("")), :(transLate ("unhappy","why are you unhappy?")), :(transLate ("think" ,"why do you think that?")), :(transLate ("you","Let's not talk about me.''))l :(transLate ("hate","So you hate teLL me more.")), :(transLate ("what","why do you ask?")), :(transLate ("want","what would you do with it?")), :(transLate ("need",'We aLL need many things.")), :(transLate ("why","Remember,therapy is good for you.")), :(transLate ("know","How do you know that?")), :(transLate ("murder","l don't Like kiLLing.")), :(transLate (IlkiLL''llllt is wrong to kiLL")), :(transLate ("'jerk,"Don't you ever caLL me a jerk!")), :(transLate ("never","Don't be negative;think positive!")) :(transLate ("faiture","Make it a success")), rse

clauses converse:-

temp(S), S=quit, purge.

converse:- retract(temp(S)), doctor(S), write(":"), readLn(P), patient(P), converse.

doctor(""),

retract(topics(R)), R<>"" write('You just said",""), write(R,""),nL, write('"teLL me more ...I1), nL.

/* no response from patient */ retract (responses(R)), assertz (responses(R)), write(R),nL.

doctor(S):- respond(S), assert(topics(S)), nL.

doctor(J:- /* no response from patient

/* no response from patient check patient response fiLe */

doctor(""):-

check patient response fiLe*/

Page 49: 9qf6 - 148.206.53.231

: why You are repeating yourself. : Hey, who cares jerk Don't you ever caLL me a jerk! : I'LL caLL you a jerk any time I want to Let's not talk about me. : I am unhappy Why are you unhappy?

El DOCTOR definitivamente, parece tener ambas, ( Personalidad y un toque de Emociones ). En la versión anterior, el doctor estaba completamente pasivo y parece meramente satisfecho para monitorear la conversacibn del paciente. De todas maneras, como se muestra en el diálogo, el Doctor actúa más agresivamente aconsejando y molestándose con las repeticiones de los pacientes.

Es impresionante como una pequeña cantidad de un código adicional puede crear la impresión de emociones y personalidad. Tu deberías experimentar con otros tipos de personalidad y emociones.

EXPANSION DEL PROGRAMA DOCTOR

Hay diversos accesos para expander el programa. Tu podrás añadir más palabras, claves y frases respuesta a la base de datos traductora. Este acceso es totalmente sincero; no deberías tener problemas pensando sobre interesantes aditamentos.

Tambikn debes de tratar de darle al doctor algunas emociones.

Otro forma de crecer0 aumentar capacidad es mucho más difícil : tu podrás integrar una cursiva - descendiente del lenguaje natural dentro del programa, entonces este podrá responder m& específicamente a cada frase que remarque el paciente, en vez de buscar solo palabras claves.

Finalmente tu debes tratar de que las emociones que tiene elDoctor cambien de acuerdo progresa la discusión, estos cambios deberían estar basados preferentemente en las respuestas de los pacientes. En esencia tu estarás afladiendo cambios de ánimo.

Ya sea o no, tu éxito no es tan importante como el conocimiento que tu lograste para la simulación de la conducta humana.

Page 50: 9qf6 - 148.206.53.231

IMPLICACIONES DE ACTOS HUMANOS EN LA COMPUTADORA

En relación a la simulación de conducta humana, es interesante considerar las implicaciones sociológicas de la gente artificial (Humanoides). Si un robot autónomo es suficientemente exitoso exponiendo actos como ser humano; ¿ la gente empezará por reconocerlo como algo más que una máquina ?.

Por el momento, se ignora lo que el Robot debe o no debe querer. La pregunta es G que es lo que quiere la sociedad de esta clase de Robot?. La gente comunmente llega a ser atacada emocionalmente por mascotas, perros y gatos. Esto hace parecer que la gente podrá llegar a sentir el mismo afecto y lealtad por los humanoides.

De todo esto, otro punto interesante de considerar es la responsabilidad si un humanoide enloquece y mata a una persona ¿ a quien se culpa ? al robot o al programador quien pudo tener seguridad para evitar esta negligencia. De todas maneras, en el caso de que un Robot sofisticado (cuya mente este integrada por billones de bytes of code ) tenga la habilidad para aprender a interrelacionarse con humanos, esto claramente no determina que pueda haber una falla.

Finalmente podrían las máquinas ser ¿ mas inteligentes que el hombre y actuar como seres humanos ?.

INTELIGENCIA ARTIFICIAL: UN RAPID0 PANORAMA EXTRAORDINARIO

Hasta el momento, mucha gente ha considerado el campo de IalNTELlGENClA ARTIFICIAL O IA, como el lado más oscuro de la ciencia de la computación, se ha creido que como Shelly creó al Dr. Frankeistein, intentando crear la vida, los programadores de IA trabajan para crear memoria.

Investigadores de la Inteligencia Artificial como los mejores en la ciencia computacional fueron paradogicamente considerados como fanáticos.

Cuando se esforzaban por dar una visión en la posibilidad o práctica de la Inteligencia de la máquina, los principales programadores cuidaron evitar referencias de IA, diciendo que 'I mucha investigación se ha mantenido en lo que será " y que " algún tiempo en el futuro, habrá importantes descubrimientos ". La visión en la inteligencia artificial definitivamente tiene que cambiar.

En menos de 5 años, la Inteligencia Artificial ha dejado de ser un campo pequeño en la ciencia de la computacicin para llegar a ser el más importante para pensar en el desarrollo de las computadoras desde que se crearon los transistores. Este cambio tan rapid0 esta basado en cuatro factores claves :

Page 51: 9qf6 - 148.206.53.231

I) El bxito en los sistemas expertos, que fueron verdaderamente los primeros para producir IA.

2) La buena publicidad japonesa de IA

3) La creación de un buen lenguaje de IA, prolog

4) El hecho de que el tiempo de la IA ha llegado.

Con la creación del TURBO PROLOG, la programación de la IA ha sido accesible para todos los programadores.

Por mucho tiempo, todos los lenguajes delA eran accesibles sólo en una extensa y principal fábrica de computadoras.

TURBO PROLOG, hizo posible el escribir una aplicación real de IA en una microcomputadora.

Porque es excelente el soporte comunmente aprovechable de las fracciones del HARDWARE como son el color, gráficas y sonido, el Turbo Prolog lo hace fhcil para el desarrollo profesional de la búsqueda del programa.

Además recuerda, que usando varios esquemas de indices, puedes hacer listas tan eficientes como el mbtodo de los árboles.

La presentación del conocimiento comoNETWORK, es tan fascinante y poderosa como compleja. El conocimiento NETWORK se basa en dos condiciones :

PRIMERA.- el conocimiento en Network es representado por nudos en una grhfica no jerarquizada : lo contrario del método de árboles, todos los nudos en el Network tienen la misma importancia y ninguno de ellos puede ser utilizado como un punto estrella.

SEGUNDA.- los nudos son acomodados, entonces los tipos similares de conocimiento son agrupados cerca de los otros, esto es que los nudos adyacentes tienen enlace Near-miss.

En teoría este método debe ser completamente eficiente ya que se hace cada transición para un nuevo nudo , ya que van en la dirección de incrementar similarmente ( actualmente el método muestra cada nudo que conecta con el nudo actual y elige uno como el más consistente con la evidencia ).

Por todo esto, el mejor modelo de Network también contiene listas o indices que ayudan a seleccionar el nudo apropiado para cada situación.

En el peor de los casos, si tu accidentalmente escoges el nudo con menor similitud, el Network lo rechaza de la lista.

Una ventaja para el método Network en la representación del conocimiento es que este es f&cil y eficiente para manejar ambos conocimientos ( jerárquico y no jerárquico ).

Page 52: 9qf6 - 148.206.53.231

Algunos investigadores de Inteligencia Artificial creen en el modelo Network como el más cercano al método de representación del conocimiento humano.

IMPLEMENTACION DEL PROCESO HIT-AND-NEAR-MISS

De las tres maneras en que el conocimiento puede presentarse, la m& fdcif y la mas rápida cuando se usa en Turbo-Prolog, es la lista.

Entonces, ese es el método que usaremos para la implementación de la descripción de clase HIT-AND-NEAR-MISS. Tal como ha sido la descripción del algoritmo HIT-AND-NEAR-MISS, el programa descrito en este capítulo es la versión más simple, como sea aún así esta versión simple presenta algunos problemas claramente desafiantes, si es que tu lo implementas en la forma más general. Desafortunadamente, la solución de algunos de estos problemas requiere un gran trato de clave y cláusulas en las bases lógicas de cada aplicación.

Por lo tanto la versibn aquí desarrollada será aprender correctamente la clase de descripciones, asumiendo que el maestro sigue un estricto formato, el cual se explicará m& adelante.

La clave para implementar la definición de clase de proceso aprendida es para mantener dos listas por cada clasificación.

La primera lista contiene atributos que la clasificación debe tener.

Aunque solamente la lista requerida es necesitada para definir la clase, la lista que debe tener es usada para envolver el modelo. Como la computadora aprende nuevas atribuciones da lugar a ellas primero en la lista que debe tener y si se esta estudiando Near-Miss esa solamente cambia las atribuciones a la lista requerida si estas aprenden que ellas deben ser la parte de la definición.

DIRECCIONES PARA UN DESARROLLO MAS AMPLIO

Cuando el programa se escribe , se usará una IistaOR para crear clasificaciones dentro de las clasificaciones. Tu debes tratar de volver a escribir el programa, ciertamente este usará nombres simbblicos para esta segunda clasificación y realmente la vas a instalar dentro de una base de datos CLASS junto con los que deben ser. Otro adelanto que tu encontrarás interesante para añadir es crear una tercera lista que contenga lo que no presenta interrelación. Aunque no se requiera técnicamente, la lista podrá hacerlo más fácil para que el maestro introduzca información dentro de la base de conocimientos.

Page 53: 9qf6 - 148.206.53.231

Finalmente si tu eres extremadamente ambicioso debes de tratar de usar el proceso HIT-AND-NEAR-MISS como significado para captura de información para uso de un sistema perfecto que fue desarrollado en Chapter 3 Cuando hayas leído este capítulo tendrss que adivinar que la máquina de aprendizaje es en el lenguaje de programadores de computadoras unDO-ABLE ( capaz de hacer ).

El significado del problema es uno por magnitud : es demasiado simple para aprender que eso es deformar la facilidad de almacenamiento de la computadora.

Cada clasificación es almacenada en una base de datos la cual sostiene su nombre y lista. La declaración necesaria se muestra aqui:

domains attribute = attr (string,string,string) List = attribute*

database cLass (symboL,List,List)

/* name, must, can */

Nota : esta lista es una lista de objetos compuestos que se usan en el factor ATTR. El uso de objetos compuestos simplificar& grandemente el argumento de la lista de algunos otros predicados, como verás.

El significado Loop en el aprendizaje se muestra aquí :

/* this is the main Learning Lopp */ Learn(cLassName,[l,E), example(cLassName,[],E), retract(cLass(CLassName,R,C)), generaLize (E,C,Can,R,R2), nearmiss (CLassName,[],M), restrict (E , M I R2 , Reg) I

reconciLe(Req,Can,Newcan), assert(cLass(CLassName,Req,Newcan)),!, write("More? (yh)"), readLn(Q), Q=y, Learn(CLassName).

Page 54: 9qf6 - 148.206.53.231

EL PROCEDIMIENTO DEL HIT-NEAR-MISS

Es el momento de trasladar el ejemplo que se nos dió del metodo de aprendizaje de descripción de clases HIT-NEAR-MISS dentro del logaritmo que la computadora puede usar. Aún cuando finalmente tu quieras transformar los procedimientos que seguiste dentro de la "Versi6n Turbo Prolog", primero hay que estudiarlo en su forma de procedimiento.

El algoritmo HIT-AND.NEAR-MISS , crea dos suposiciones :

PRIMER.0.- es un instructor que presenta cualquiera de las dos pruebas como parte de la clase de NEAR-MISSES, y núnca miente acerca de las pruebas. SEGUNDO.- el primer ejemplo tiene que ser una prueba válida, por que esa es la forma del modelo inicial. Dando esas suposiciones el algoritmo HIT-AND-NEAR-MISS, es como sigue:

- Observar la muestra y la forma de/ modelo inicial. - Observar la prueba - Si aciertas hay que generalizar - Esto es limitado - Se concluye

En este punto, no es importante la forma como se observe la prueba o como se forme el modelo inicial. Como sea es desicivo que comprendas el algoritmo, que tu veas como el modelo es generalizado y restringido.

Aquí estan los procedimientos para complementarlo en sus formas más simples. Para ( completar la forma de estos procedimientos, tienes que tomar como referencia el libro del Sr. Winston )

PROCEDIMIENTO RESTRINGIDO

- Determinar la diferencia entre los near-miss y desarrollar el modelo. - Si el modelo tiene un atributo oculto. . . - En el near-miss, se requiere este atributo. - Si el near-miss tiene un atributo oculto. . . - En el modelo se excluye ese atributo.

Page 55: 9qf6 - 148.206.53.231

PROCEDIMIENTO GENERALIZADO

- Determinar la diferencia entre el ejemplo y el modelo desarrollado. - Reconcilia la diferencia por ampliación de modelo.

Como puedes ver, aunque es fácil de describir a los procesos generalizados y limitados, no es para implementarlos. El aspecto m6s difícil consiste en reconciliar las diferencias y ampliar el modelo, como se requiere para generalizar el proceso. Para entender por que es así, recuerda el ejemplo del arco. Si a la computadora se le enseñó el arco con el cilindro, la estructura tendrd que exhortar el proceso generalizado. Ya que la única diferencia, entre la descripción actual y la muestra, fue la forma que hay sobre el arco, el proceso generalizado debe cambiar el modelo para permitir que ambos ( cilindro o bloque ) puedan colocarse en lo alto; ¿ cual es la mejor manera para hacer esto ?, hay dos propuestas :

La primera propuesta es crear una lista OR ( con opciones ) , en este caso la parte del modelo que determina que va en lo alto del arco sería "DEBE TENER UN BLOQUE O UN CILINDRO EN LO ALTO'. Esta propuesta es la más fácil, pero tiene ciertas fallas cuando la computadora encuentra un extenso número de variables u opciones.

La segunda propuesta es para la computadora, para crear una nueva clase de caraterísticas y para que use una clase de nombre específica en el modelo. En este caso, al preguntarse ¿ qué hay en lo alto del arco ? la respuesta sería debe tener BC en lo alto 'I donde BC es la clase de nombre referente a la clase de objetos que podrían estar en lo alto, en este caso BC solo contiene como opciones "BLOQUE O CILINDRO"; pero como sea, se puede ampliar sin cambiar así la definición del modelo inicial.

DOS PRINCIPIOS IMPORTANTES

Aunque no es completamente necesario para la correcta operación del procedimiento HIT-AND-NEAR-MISS, hay dos principios que cuando se aplican grandiosamente mejora la eficiencia y la calidad. El primero es llamado " NO GUESSING " ( no adivinar ), y es invocado cuando la computadora no puede confiadamente percibir la diferencia entre el modelo actual y el near-miss, esto es porque cuando hay una duda acerca de c6mo debe ser el aprendizaje la computadora no debe aprender nada. Aunque este principio debe sonar conservador, este ayuda a evitar errores.

Este principio no necesita ser invocado si es que el maestro siempre abastece el near-miss con diferencias obvias.

Page 56: 9qf6 - 148.206.53.231

El segundo principio es llamado I' NO ALTERING 'I ( no alterar ) . Si el maestro abastece el ejemplo correcto, eso fracasa para ligarlo con el ejemplo actual, entonces la computadora crea por separado una clasificación especial de casos antes de tratar de expander la clasificación actual para cubrirlo. Por ejemplo, la definición de un automóvil debe contener que este presenta una ingeniería de combustión interna, por lo tanto, la computadora entenderá que un carro electrice es miembro de una clasificación de caso especial. Ya que ambos principios son invocados sólo en situaciones de conflicto, estos pueden evitarse si el maestro es cuidadoso con los ejemplos. estos no podrán adaptarse al programa que será desarrollado es este capítulo. Como quiera que sea tu necesitas implementarlos para cualquier aplicación en el mundo real.

Más adelante del capítulo, verás una simple implementación del Hit-Near-Miss como vía de acceso para aprender las clases de definiciones, pero antes de que puedas desarrollar cualquier programa, debes entender varias formas en que una computadora puede presentar y acumular conocimientos.

PRESENTACION DEL CONOCIMIENTO

Además de las obvias dificultades de inventar un programa que pueda aprender, el problema secundario es crear un modo de acumular el conocimiento adquirido dentro de la computadora. Tanto la naturaleza del conocimiento como la preferencia del programador determinan el modo en que el conocimiento es representado. Hay varias técnicas que tienen que desarrollarse en el campo de la representación del conocimiento.

Las mhs importantes son las siguientes :

TREES ( Brboles ) LIST (listas ) NETWORKS (redes )

a continuación se determinará cada una de esas tecnicas : TREES :

Para entender como el conocimiento puede representarse con esta tecnica, considera que la tecnica es usada para acumular la información acerca de cuadros, triángulos y trapezoides. Un sistema experto que utiliza el árbol del conocimiento, siempre se preguntar6 si este es el que se usa para responder preguntas apropiadas.

La técnica de los árboles lleva un genero jerárquico, y por lo tanto, sólo deberán usarse para acumular jerárquicamente el conocimiento. Como sea esto no es totalmente una restricción ya que mucho conocimiento cae en esta categoría.

Page 57: 9qf6 - 148.206.53.231

La gran ventaja de usar la técnica de los árboles es la dificultad de construcción y mantenimiento de la misma, para que sean eficientes.

El nivel más alto asociado con la tecnica de los árboles resulta inatractivo cuando sólo quieres guardar una pequeña cantidad de conocimiento.

LISTAS :

Como ya sabes, las listas son importantes para el éxito en la programación del "TURBO PROLOG", lo que tienes que saber ahora es que las listas siempre han sido el metodo tradicional de representación del conocimiento de lalnteligencia Artificial.

La primera razón para esto es que LIPS ( LIST PROCESSING ) es el primer lenguaje de la Inteligencia artificial y fue diseñado para manejar eficientemente las listas. Lo que hace particularmente que las listas sean atractivas para la representación del conocimiento es que son muy fáciles de trabajar con ellas en el TURBO PROLOG.

Para entender como el conocimiento es representado en listas, imagina un catálogo de programas en una librería. Si tu estas buscando un libro sobre un tema específico, tu podrás hojear cada programa, excluyendo aquellos que no pertenezcan a lo que estas buscando y detenerte cuando encuentres el libro que buscas, en otras palabras, el conocimiento acumulado es como una lista que requiere una búsqueda secuencia1 para recuperarlo.

Aunque las listas sólo pueden ser procesadas secuencialmente, son importantes por que las puedes usar para representar algunos o todos los tipos de conocimiento. Esto es flexiblemente grandioso para que sean importantes, en un primer lugar para la INTELIGENCIA ARTIFICIAL.

El LOOP trabaja así, el enunciado ejemplo es usado para leer, en un ejemplo de user-imput este pertenece a la clase específica como m NOMBRE.

El actual modelo es extraído de la base de datos y se generaliza usando GENERALIZA.

El enunciado PESTRIG es usado para restringir el modelo como se ha definido por el procedimiento del Hit-And-Near-Misses.

REC0NCU.E una pequeña limpieza antes de que elLOOP reemplace la definición a la fecha en la base de datos, este círculo se repite hasta que no haya m i s ejemplos y Near-Misses.

El programa entero se muestra a continuación, en este momento tu deberás trabajar en tu computadora.

Page 58: 9qf6 - 148.206.53.231

""

,

I* A simpLe impLementation of the "hit and miss 'I

*I domains

cLass description Learning procedure

attribute = attr ( string, string, string ) List = attribute*

database cLass ( symbol, List, List )

I* name, must, can *I

predicates Learn(symboL) restrict(List,List,List,List) generaLize(List,List,List,List,List,) add(attribute,List,List) member(attribute,List) append(List,List,List) example(symboL,List,List) nearmiss(symboL,List,List) remove(attribute,List,List) reconciLe(List,List,List) display-knowledge writeList(List,integer)

start. goaL

cLauses start:-

write ("Learn or display? (UD) "), readln(Q), Q=L, write ("cLass name : "), readLn(Name), assert(cLass(Narne,[],[])), Learn(Name).

start :-

display-knowledge.

/* this is the main Learning Loop */ Learn(CLassName) :-

exampLe(CLassName,[],E), retract(cLass(CLassName,R,C)), generaLize(E,C,Can,R,R2), nearmiss(CLassName,[],M), restrict(ElM,R2,Req), reconciLe(Req,Can,Newcan), assert(cLass(CLassName,Req,Newcan)),!, write("More? (yln)"), readLn(Q), Q=y,

Page 59: 9qf6 - 148.206.53.231

Learn(CLassName).

/* get attributes of a correct example */ example (Name,L,E) :-

write ("E: subject"), readLn(S), SO"" write ("E: verb 'I),

readLn(V), write ("E: object"), readLn(O), add(attr(S,V,O,),L,E2), example( Name,E2,E ).

exampLe(_,E,E).

/* get attributes of a near-miss */ nearmiss(Name,L,E) :-

write("M: subject"), readLn(S),

write(:'M: verb"), readLn0, write("M: object"), readLn(O), add(attr(S,V,O,)L,E2), nearmiss(Name,E2,E).

nearmissCE,E)

/* restrict the definition */ restrictC,[],Req,Req). restrict(E:,[M Mt],Req,Req2):-

/+ if the part of description continue */ remove (M,E,Et), restrict(Et,Mt,Req,Req2).

/* check for the negation of a trait */ fronttoken (Vl-V2), /* remove the not /* fronchar (V2,-,V3), remove (attr(S,V3,0),E,Et), add(attr(S,V3,0),Req,R), /* add to requirements List */ restrict(Et,Mt,R,Req2).

restrict(E,[attr(S,V,O) Mt],Req,Req2):-

restrict(_,-,Req,Req).

/* generaLize the model */ generaLize([],C,C,R,R). generaLize([attr(S,V,O) Et],ClC2,R,R2) :-

/* create new cLass if common verb is encountered in required List with different subject */

member(attr(_,V,O),R), remove(attr(X,V,O),R,T), x<>s,

Page 60: 9qf6 - 148.206.53.231

fronttoken(Nc,"",X), fronttoken(NewCLass,S,Nc), add(attr(NewCLass,V,O),T,T2), generaLize(Et,C,C2,T2,R2).

/* create new cLass if common verb is encountered in may generaLize([attr(S,V,O) Et],ClC2,R,R2):-

have List with different subject */

member(attr(_,V,O),C), remove(attr(X,V,O),C,T), x-S, fronttoken(Nc,"",X), fronttoken(NewCLass,S,Nc), add(attr(NewCLass,V,O),T,T2), generaLize(Et,T2,C2,R,R2).

generaLize([E Et],ClC2,R,R2) :- /* otherwise add to may have List */ not (member(E,C)), add (E,C,C3), generaLize ( EtlC3,C2,R,R).

generaLize(L T],ClC2,R,R2) :- generaLize(T,C,C2,R,R2).

append ([],List,List). append ([X LI], List2, [X L31): -

append (L1 ,List2,L3).

/* cLean up the may have List */ reconciLe ([],C,C). reconciLe ([R T],C,C2):-

remove (R,C,C3), reconciLe (T1C3,C2).

reconciLe (L T],C,C2) :- reconciLe (T,C,C2).

writeList([],J. writeList(attr(S,V,O) TaiL1,3) :- -. ,

write(S," ",'v;'~ i',ó)lnL1 nL,writeList(TaiL,I).

N=l+l , write(S," '',VI'' ",O),nL, writeList(TaiL,N).

writeList([attr(S,V,O) TaiL],I) :-

member(N,[N J. member(N,L 1):- member(N,T).

remove(X,[X T],L) :-

Page 61: 9qf6 - 148.206.53.231

Caso de Aplicación de Metodología: TELEPLEX

Como ejercicio de desarrollo de la metodología se tomó como caso de aplicacibn a un experto confiaurador de redes de telecomputación en el área bancaria.

1. Descripción del Escenario.

El Experto.

Desarrollar configuraciones de redes computacionales es un área que involucra diferentes habilidades y conocimientos específicos de diversas áreas del conocimiento. Es necesario dominar la parte de sistemas operativos para comunicaciones, telefonía, sistemas de telecomunicacibn de datos, equipos necesarios para hacer las interconexiones, líneas de datos, equipos necesarios para hacer las interconexiones, líneas de transmisión, bases de datos, cálculo de flujos, cargas, etc., sobre redes. Conocimiento de los sistemas de información de la organización y también conocer las normas que tiene el gobierno para la implantacibn de este tipo de servicios.

Esta es una tecnología que depende mucho de los proveedores de equipos con los que se ha contado en el pasado y del conocimiento que se tiene de las estrategias corporativas de la empresa, que en muchos casos ha estado sometida a decisiones muy especiales y controversiales sobre todo en los casos de inversiones muy elevadas.

Este caso se puede clasificar como una combinación de m i c o v diseño dada la naturaleza del trabajo del experto.

A continuación se describen algunas actividades del experto.

Primero se lleva a cabo un análisis general de las necesidades de la localidad (matriz, filial, sucursal, etc.) y luego una vez establecido un diagnóstico. Se llevan acabo una serie de pasos tendientes a probar que el diseno que se .-

propone es el más adecuado a su ambiente, el más conveniente, factible y óptimo.

Esto es necesario puesto que las inversiones que se efectúan a largo plazo son muy elevadas y requieren de todo el apoyo que les puede dar el asesor, así como de la información que resulta de los casos simulados llevados a cabo.

El experto solo establece la configuración óptima de acuerdo a las políticas y estrategias organizacionales, las ubicaciones físicas de las oficinas centrales y localidades distribuidas, las necesidades locales y centrales (de hardware y software) y las restricciones técnicas que tienen tanto las oficinas, los medios de comunicaci6n y los equipos disponibles para ser instalados en las diferentes localidades.

El experto también es responsable de resolver problemas que se generan a nivel corporativo y que tienen que ver con el manejo y transferencia electrónica de fondos EFT.

Page 62: 9qf6 - 148.206.53.231

Debido a la magnitud de las actividades que hace el experto para diseñar una red de telecomputación y teniendo en cuenta toda la problemática organizacional en particular. El Ingeniero de Conocimiento (IC) le pidió al experto que definiera cuáles eran las actividades que el experto no hacía cuando desempeiiaba esta labor de asesoría. Estas fueron las siguientes:

0 No hace el peritaje ni los trámites ante la Secretaría de los permisos para hacer uso de los medios de transmisión federales, solo negocia los terminos de alto nivel del proceso de adquisición de servicios.

0 No hace ninguna clase de desarrollo de programación de aplicación que estén involucradas en el proyecto.

0 No hace arreglos con algún proveedor en especial para adaptar sistemas operativos ni interfaces a las necesidades del cliente.

0 No resuelve problemas de informática distribuida a nivel sucursal, sólo

Después de un análisis de funciones, el IC debe de haber resuelto varias incógnitas que son cruciales para el desarrollo del SE, por ejemplo: cuál es el beneficio específico de este experto, cufrl es su ventaja competitiva, cuál es su valor monetario, que expértice es el que realmente vale y no se puede adquirirá un costo mas bajo, qué ventajas tiene el hacer un SE con estas especificaciones?

La Empresa.

Una vez descrito muy someramente el perfil del experto, veamos por parte de la empresa cuál es la necesidad que ésta requiere de las habilidades de este experto en particular.

Esta empresa se dedica a servicios bancarios y tiene varias oficinas en todo el país y algunas filiales en el exterior. Además, requiere llevar a cabo actividades de transferencia electrónica de fondos, autorización de créditos internaciones y manejo de inversiones bursátiles, entre otras.

corporativa.

La empresa requiere en muchos casos transferir ciertos conocimientos a algunas de las oficinas recientemente establecidas para que trabajen bajo los mismo estándares de operación (centralizada o distribuidamente).

La empresa depende completamente de las declslones que son generadas por el departamento dirigido por el experto. Y aunque decisiones terminales son tomadas por el experto, éI se asesora de varios especialistas en áreas específicas ya sean tecnicas o administrativas.

La empresa bancaria tiene planes de expansión en forma distribuida bastante ambiciosos en un plazo intermedio.

. .

Page 63: 9qf6 - 148.206.53.231

2. Análisis de Protocolos.

Esta parte es “cómo” el experto toma decisiones.

Es el momento de “mapear” la información obtenida con las alternativas. Para esta situación en especial se establecen una serie de“casos” (puesto que ya se conoce medianamente bien el proceder del experto y lo que 61 soluciona) para identificar como resuelve los problemas.

Para esto el IC usa un “análisis de protocolos” para instruirse del comportamiento del experto ante un problema específico.

A continuación se presenta un caso que el IC en conjunto con el experto deciden qu6 es prioritario e importante.

Caso de inconformidad en la transferencia electrdnica de fondos. Se ha detectado una anomalía por el tenedor de una cuenta. En resumen, se tiene el

siguiente esquema de comportamiento de la situacidn.

l. El cliente hizo un cheque por N$ 100,000 no se le autorizd y se le penalizd con una multa. 2. La transaccidn se hizo por un medio electrdnico. 3. Hizo la transaccidn en un ciudad que no es la de origen de su cuenta. 4. Una semana anterior se hizo un depdsito de dinero que facilmente cubría esa cantidad. 5. Este depdsito se realiz6 en Mexico D.F. 6. Es un cliente que corporativamente ha hecho varias transacciones millonarias en varias

localidades con el banco en cuestidn. 7 . Su linea de credit0 esta limpia. 8. Las conexiones telefdnicas han estado fallando un poco debido a las lluvias en el país. 9. La sucursal en la que el cliente hizo la transaccidn, se puso en operacidn hace unos dias.

Posteriormente el experto hace un análisis más detallado de los comportamientos de las configuraciones sugeridas, y simula los comportamientos críticos como el de esta ocasión, sobre esta sucursal. Basado en la información que fue dada por el empleado, las circunstancias y los resultados de la simulación, el experto decide que en esta sucursal hay que poner un sistema de mayor capacidad, una línea adicional de comunicación de datos dedicada y compartir una línea directa con personal experto en cr6ditos con la casa matriz.

3. Codificación

A partir del anterior protocolo, el IC se dedica a transcribir este conocimiento en forma de gráfos causa-efecto que ha seleccionado como la más apropiada para este caso, así como la de HEGA (“shell”) que va a utilizar.

El IC inicia con estos protocolos una red de hechos, atributos, conclusiones, etc. Y en forma de gráfos tipo ISHIKAWA establece una relación gráfica entre reglas identificando incongruencias, repeticiones, etc.

Adjunto se encuentra el desarrollo del procedimiento para el caso de identificación de confiauraciones básicas.

Page 64: 9qf6 - 148.206.53.231

Se decidió con el experto iniciar el prototipo con este sub-dominio O área tecnológica.

El IC va formando así el prototipo o modelo experimental y en conjunto con el experto va refinando cada nivel de prototipo hasta llegar al sistema de producción.

Aunque en este apartado no se presentan explísitamente, se desarrollaron todos los pasos que aplicaron descritos en la metodología. A continuación se presentan unos resultados:

I. Los siguientes fueron algunos de los parhmetros que inicialmente se identificaron como relevantes para establecer que tipo de configuración es la más recomendada.

Diseño de la Estructura de Datos / Base de Datos. Desarrollo de aplicaciones / Frecuencia / Personal central Estandarización de Procedimientos / Hardware, comunicaciones Decisión de los usuarios / capacitación personal, sistemas, presupuesto. Selecci’n de H / S. /Compra, renta. Toma de decisiones sobre Arquitectura. Ubicación geográfica de OS / topología Costos / comunicación, computo / Decisión de selección Confiablidad del proceso / seguridad , cómputo /Decisión de selección Confiabilidad del proceso / seguridad / cómputo / comunicación. Grado de distribución entre OL’s / Duplicación / directorio Eficiencia del recurso Utilización de recursos de cómputo (Main-Frame) Tiempos de respuesta Retardos Disponibilidad de línea de comunicación / tipo / velocidad Potencial de cómputo Compatibilidad / expandibilidad Modularidad y expandibilidad /tipo Soporte por el proveedor, auditoría de software Reflejo organizacional, Software especializado / Paquetes de aplicación Conversión de sistemas actuales. Proveedor / disponibilidad, capacidad, mantenimiento, número de usuarios, personal especificado. Almacenamiento / total / distribución Seguridad de software / protección, impresión / volumen Configuración actual (topología) Respaldo / Recuperación Tipo de equipo recomendado o actualmente en operación / LAN TTP / Main-framme.

I I . Estos parámetros se pueden ubicar en las siguientes 6 áreas tecnológicas en las que se dividió todo el dominio (goal-reduction).

A continuación se muestran varios tipos de reglas codificadas en EXSYS.

Unas producen conclusiones temporales que deben de ser probadas posteriormente para avanzar en la deducción. Otras hacen inferencias sobre conclusiones establecidas anteriormente, y generan conclusiones más completas para pasar a fases posteriores del análisis.

Page 65: 9qf6 - 148.206.53.231

Las reglas se han estructurado casi directamente para tratar de probar que una configuración sirve para cubrir las espectgativas planteadas por las

I características de la situación y de las encuestas. Se necesita determinar inicialmente qué tipo de configuración era la más

apropiada, estas reglas sólo pueban o concluyen resultados intermedios, conclusiones como tipo de equipo, velocidades de transmisión. Etc. S610 se pueden establecer al seguir indagando sobre la base que no esta en este escrito considerada.

Page 66: 9qf6 - 148.206.53.231

ETAPAS PARA LA IMPLEMENTACIÓN DE PROYECTOS DE SISTEMAS

BASADOS EN CONOCIMIENTOS

Una de las funciones más importantes de los SBC’s en la empresa va a ser

la de transferir experiencia tecnológica que se ha desarrollado en la organización

durante muchos años o que tiene un alto valor y confidencialidad para la alta

dirección de la misma y que constituye su acervo tecnológico.

Las siguientes son las fases que forman el proyecto denominado

“transferencia de Experiencia Tecnológica de Sistemas Basados en

Conocimientos” y de la implementación de una aplicación prioritaria para la

Empresa:

Etapa 1. Sensibilización y ubicación de la tecnología de Inteligencia Artificial.

Cuando y dónde iniciar un proyecto de ingeniería de Sistemas Basados en

Conocimientos (ISBC) en la empresa.

Etapa 2. Identificación de áreas de necesidad, con sus prioridades dentro de la

organización, para la aplicación de la tecnología de Sistemas Expertos.

Selección inicial de un área prioritaria. Cómo iniciar el diseño.

Etapa 3. Diseño y desarrollo de prototipos de Sistemas Expertos (utilizando

EXSYS, HEGA) sobre las aplicaciones prioritarias.

Etapa 4. Integración de los prototipos de la Etapa 3 con sistemas computacionales

típicos del tipo MIS, DBMS o DSS, operando en la Empresa.

Etapa 5. Mantenimiento y refinamiento de la base de conocimientos del prototipo o

de los prototipos. Plan de búsqueda de otras áreas de aplicación y seguimiento

de casos en operación.

Etapa 6. Evaluación del impacto organizacional al implantar esta tecnología.

Page 67: 9qf6 - 148.206.53.231

Algunas Notas Adicionales

Se han identificado las siguientes &reas de oportunidad en la localidad con

futuro productivo y cuyas empresa han demostrado interés en la tecnología de

SBC.

O Empresa procesadora de acero:

O Control experto de calidad (simulador inteligente del proceso de calidad)

O Planeación financiera

O Sistemas de mantenimiento de máquina-herramienta.

O Planeación de recursos de tesorería.

O Empresa de Cementos:

O Sistema de factibilidad y control de producción

O Mantenimiento.

o Empresa de bienes para construcción:

0 Transferencia de tecnología de control de proyectos de gran magnitud.

0 Empresa de comercialización de textiles:

0 Manejo de inventarios de telas, estampados y colores contra modas.

O Empresa de servicios corporativos:

O Transferencia y reemplazo de ciertos expertos con gran número de años

de trabajo.

O Empresa de bienes de capital:

O Analizador de estados financieros e integración a sus MIS y DSS.

O Simulador inteligente de mercadotecnia y comportamiento de inversiones.

Page 68: 9qf6 - 148.206.53.231

Referencias:

David Hu Expert System for Software Engineers and Managers

Tim McCullough Six Steps to selling Artificial

Holsapple and Whinston Business Expert Systems

Inteligence.

Page 69: 9qf6 - 148.206.53.231

AREAS DE TRABAJO EN LA ACTUALIDAD

Simulación cualitativa: Integración de SE's y modelos de simulación cuantitativa ( o sea combinación de conocimiento cualitativo y ( cuantitativo 1. Manejadores expertos de bases de datos, así como de herramientas inteligentes de explotación de textos y bases de información en forma stand-alone y distribuida.

Representación de fenómenos especiales, dependientes del tiempo, inciertos y modelación del usuario (más que el experto), así como nuevas técnicas de diseño inteligente.

Adquisición automática más eficiente. Adquisición por ejemplos o casos. Sistemas estructurados de conocimientos. Conocimiento de varios dominios. Bases de sentido común. Redes neuronales.

Modelos inteligentes de soporte a la decisión (IDSS) hasta llegar a los apoyos ejecutivos (ESS:Executive Support Systems) Sistemas que resuelvan multi-

Integración de paquetes de simulación "data bases" y redes de objetivos.

comunicación.

Desarrollo de interfaces de lenguaje natural.

Pero sobre todo, se está generando una nueva filosofía que por vez primera está tratando de despejar ciertas incógnitas que en la Epistemología, la Psicología educativa, la Lingüística y en las Ciencias del Conocimiento habían permanecido por largo tiempo. Disciplinas, estas son las que se han visto complementadas por la introducción de nuevas tecnologías computacionales.

AVANCES, PREDICCIONES Y REALIDADES DE LA INDUSTRIA DE LA IA.

En los conocimientos de los 80 y 90 las grandes compañías comenzaron a interesarse en el área de IA.

Actualmente sus departamentos de investigación están produciendo tanto como las propias universidades.

Las empresas que se interesaron a los comienzos de los 80's y que actualmente tiene m& que productos de desarrollo, productos terminados aplicados a la industria correspondiente son : Westinghouse, General Electric, Schulmberger, Xerox, Digital Equipment, Texas Instruments, Fairchild e IBM.

Page 70: 9qf6 - 148.206.53.231

HARDWARE COMERCIAL DE SOPORTE AL DESARROLLO DE SBC's.

HARDWARE DE SOPORTE AL DESARROLLO DE SBC's.

En este capítulo se presentarán varias arquitecturas computacionales propias para el desarrollo de sistemas en el ambiente de Inteligencia Artificial.

Se dividirán las arquitecturas en dos tipos. Primeramente arquitecturas comerciales que se han especializado en el manejo de estructuras de datos simbólicos y lenguajes propios de IA, como LISP y PROLOG.

LISP, en especial, es un lenguaje que ha venido en progreso constante y muy significativo en cuanto su integración al hardware convencional. Este tipo de hardware especializado pero no basado enteramente en tecnologías simbólicas, es el más común.

El segundo tipo de arquitectura es la especialmente dirigida al manejo simbólico del conocimiento. Son máquinas basadas principalmente en Sistemas Operativos, escritos usualmente el LISP o un lenguaje equivalente de Programación lógica.

SISTEMAS DE PLANEACION BASADOS EN CONOCIMIENTO PARA ENSAMBLE MECANICO UTILIZANDO ROBOTS.

Actualmente, la automatización de ensamble mecánico es de gran importancia económica para la industria. La automatización se divide en dos clases

0 La primera clase de automatización extensiva, con máquinas especializadas para cada ensamble y está diseñada para altos volúmenes de producción.

0 La segunda clase utiliza una automatización flexible en la cual las máquinas son controladas por computadoras y pueden ejecutar varias operaciones de ensamble.

Existen dos t6cnicas principales para llevar a cabo esta clase de automatización.

1) Programas para aprender : Programas que permiten a la máquina estructurar sus operaciones de ensamble.

2) Programación textual : Ofrece al sistema el plan de ensamble en términos de operaciones a través del lenguaje natural.

Page 71: 9qf6 - 148.206.53.231

REFERENCIAS

0 D. Sharman and J.M. Kendall "A case study Acquiring Strategic Knowledge for Expert Systems Development" IEEE Expert p.p. 32-40

0 David S. Prerau "Selection of an Appropiate Domain for Expert Systems" The AI Magazine

Expert Systems for Software Engineers and Managers 0 D. Hu

0 P. Sell Expert System A Practical Approach

0 J. W. Black Intelligent Knowledge Based Systems

Knowledge Engineering for Expert Systems 0 M. Greenwell