Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Otro aspecto importante por señalar es la IA aplicada a los sistemas de producción, que debido
a los grandes avances de esta ciencia, estos han hecho que la industria logre sus objetivos con
más rapidez y eficiencia que en otros años.
Aplicaciones de la Inteligencia artificial
En su texto base podrá encontrar qué es capaz de hacer hoy en día la inteligencia artificial, a
través de la descripción de unas cuantas aplicaciones de esta disciplina.
Para completar un poco este tema a continuación mencionamos algunas otras aplicaciones de
esta ciencia, a parte de las mencionadas en el texto base:
• Predicción: Por ejemplo sistemas de autocontrol, etc.
• Medicina: En este caso se pueden aplicar a sistemas de diagnóstico médico.
• Apoyo a la toma de decisiones: Por ejemplo mediante el uso de técnicas inteligentes
paramétricas y no paramétricas para el análisis de datos.
• Educación: sistemas recomendadores educativos, tutores inteligentes, modelización de
estudiantes, etc.
• Comercio electrónico: agentes recomendadores para la compra de un producto, etc
Como podemos observar el agente percibe mediante sensores (entradas), actualiza su entorno
mediante los actuadores, y deberá emprender aquella acción o secuencia de acciones que mejor
lo guíe hacia la salida deseada.
Un agente tomará una decisión en un momento dado dependiendo de la secuencia completa de
percepciones (percepción, el agente puede recibir entradas en cualquier instante) hasta ese
instante. Si se puede especificar qué decisión tomará un agente para cada una de las posibles
secuencias de percepciones, entonces se habrá explicado más o menos todo lo que se puede
decir de un agente.
Algunos ejemplos donde se pueden hacer uso de agentes son:
Ejemplos:
Comprar por internet.
Sistema de diagnóstico médico
Análisis de imágenes satelitales
Robot ensamblador de partes
Sistemas de seguridad del hogar
Otro aspecto importante mencionado en el texto es lo relacionado al buen comportamiento del
agente, es decir el concepto de racionalidad. De ahí que podríamos decir que un agente racional
es aquel que:
Intuitivamente “hace lo correcto”, por las razones mencionadas en el texto base.
De ahí que de un agente esperamos:
Que posea controles autónomos
Perciba su entorno
Persista en el tiempo
Se adapte a los cambios,
Y especialmente que sea capaz de alcanzar objetivos diferentes.
Para determinar el éxito en el comportamiento del agente hay que considerar las medidas de
rendimiento la cual en base a lo explicado en el texto base podríamos decir que esta puede ser:
objetiva, externa y que cuantifica el éxito del agente.
0.2.2 Comportamiento de los agentes RACIONALES
Un agente racional es aquel que hace lo correcto
Se necesita determinar una forma de medir el éxito
Ello, junto a la descripción del entorno y de los sensores y actuadores del agente, proporcionará
una especificación completa de la tarea que desempeña el agente
MEDIDAS DE RENDIMIENTO: Estas medidas incluyen los criterios que determinan el éxito
en el comportamiento del agente. Cuando se sitúa un agente en el medio, este genera una
secuencia de acciones de acuerdo con las percepciones que recibe. Esta secuencia de
acciones hace que su hábitat pase por una secuencia de estados. Si la secuencia es la
deseada, entonces el agente habrá actuado correctamente. No hay una única medida
adecuada para todos los agentes
Por lo que hay que insistir en l importancia de utilizar medidas de rendimiento objetivas,
que normalmente determinará el diseñador encargado de la construcción del agente. Como
regla general, es mejor diseñar medidas de utilidad de acuerdo con lo que se quiere para el
entorno, más que de acuerdo con cómo se cree que el agente debe comportarse. La selección
de la medida de rendimiento no es siempre fácil.
Obviamente, el programa que se elija tiene que ser apropiado para la arquitectura. Si el
programa tiene que recomendar acciones como Caminar la arquitectura tiene que tener
piernas. La arquitectura puede ser un PC común o puede ser un coche robotizado con varios
computadores, cámaras y otros sensores a bordo. En general, la arquitectura hace que las
percepciones de los sensores estén disponibles para el programa, ejecuta los programas, y se
encarga de que actuadores en marcha las acciones generadas.
Tipos de agentes
Estos programas de agentes que se describen a continuación tienen la misma estructura:
reciben las percepciones actuales como entradas de los sensores y devuelven una acción a los
actuadores. Hay que tener en cuenta la diferencia entre los programas de los agentes, que
toman la percepción actual como entrada, y la función el agente que recibe la percepción
histórica completa. Los programas de los agentes recibe sólo la percepción actual como entrada
porque no haya nada más disponible en el entorno; si las acciones del agente dependen de la
secuencia completa de percepciones, el agente tendría que recordar las percepciones
Para construir un agente racional de esta forma, los diseñadores deben realizar una tabla que
contengan las acciones apropiadas para cada secuencia posible de percepciones. El agente-
dirigido-mediante tabla, hace lo que nosotros queremos: implementa la función deseada para
el agente.
El desafío clave de la IA es encontrar la forma de escribir programas, que en la medida de lo
posible, reproduzcan un comportamiento racional a partir de una pequeña cantidad de código
en vez de que partir de un gran tabla con gran número de entradas. Por ejemplo, las grandes
tablas de las raíces cuadradas utilizadas por ingenieros y estudiantes antes de 1970 se han
reemplazado por un programa de cinco líneas que implementa el método de Newton en las
calculadoras electrónicas, la pregunta en el caso del comportamiento inteligente general
¿puede hacer la IA hacer lo que Newton hizo con las raíces cuadradas? Se cree que la respuesta
es afirmativa.
Estos son los cuatro tipos básicos de programas para agentes que encarnan los principios que
subyacen en casi todos los sistemas inteligentes:
Agentes Reactivos Simples:
Una vez revisado en qué consiste este agente, es conveniente hacer hincapié en el diagrama de
la figura 2.9 y el programa del agente mostrado en la figura 2.10 del texto base. Tener en cuenta
que:
Las reglas condición-acción a las que hace referencia la estructura del agente reactivo
simple, permiten establecer la conexión entre percepción y acción.
En el programa del agente, INTERPRETAR-ENTRADA genera una descripción abstracta
del estado mostrado por la percepción.
REGLA-COINCIDENCIA produce una regla del conjunto que satisface la percepción.
Es el tipo de agente más sencillo. Estos agentes seleccionan las acciones sobre la base de las
percepciones actuales, ignorando el resto de las percepciones históricas. Imagínese que es
conductor de un taxi automático. Si el coche que circula delante frena, y las luces del freno se
encienden, entonces lo advertiría y comenzaría a frenar, es decir, se llevaría a cabo algún tipo
de procesamiento sobre las señales visuales para establecer la condición que se llama << el
coche que circula adelante está frenando>> el ser humano también tiene muchas de estas
conexiones de las cuales son respuestas aprendidas y otras son reacciones innatas.
Los agentes reactivos simples tienen la admirable propiedad de ser simples pero poseen una
inteligencia muy limitada. Los bucles infinitos son a menudo inevitables para los agentes
reactivos simples que operan en algunos entornos parcialmente observables.
Salir de estos bucles es posible si los agentes pueden seleccionar sus acciones aleatoriamente.
En entorno de agentes individuales el comportamiento aleatorio no es normalmente racional ,
es un truco útil que ayuda a los agentes reactivos simples en algunas situaciones pero se
obtendrán mejores resultados con agentes deterministas más sofisticados.
Agentes Reactivos Basados En Modelos:
Tras la lectura de este tipo de agentes en el texto base, es conveniente se podrá dar cuenta que
existen dos tipos de conocimiento que se requiere codificar durante la actualización del estado
interno, los cuáles son:
conocimiento acerca de la forma como el mundo evoluciona, independientemente de las
acciones del agente.
conocimiento sobre cómo afectan al mundo las acciones del agente.
Un aspecto importante que hay que tener en cuenta es que el conocimiento del estado interno
no siempre es suficiente, por ejemplo, considerando el agente piloto automático para elegir
entre rutas decisionales alternativas (en una intersección ¿girar o no girar el volante del
carro?), pues se requiere conocer la meta a lograr, es por ello, que aparecen otro tipo de agentes
como el mencionado a continuación
La forma más efectiva que tienen los agentes de manejar la visibilidad parcial es almacenar
información de las partes del mundo que no pueden ver. O lo que es los mismo que el agente
debe mantener algún tipo de estado interno que dependa de la historia percibida y que de ese
modo refleje por lo menos algunos de los aspectos no observables del estado actual.
La la actualización de lo información de estado interno según pasa el tiempo requiere codificar
dos tipos de conocimientos en el programa del agente. Primero, se necesita alguna información
acerca de cómo evoluciona el mundo independientemente del agente. Este conocimiento de
cómo funciona el mundo, tanto si está implementado con un circuito booleano simple o con
teorías científicas completas, se denomina modelo del mundo. Un agente que utilice este
modelo es un agente basado en modelos.
Agentes Basados En Objetivos:
Estamos seguros que durante la lectura se percató que en este tipo de agentes se necesita de
algún tipo de información que describa las situaciones que son deseables para el agente, es
decir información sobre su meta.
Cómo podemos observar en la figura 2.13 de su texto base, ya se agregan dos componentes
adicionales relacionados como el conjunto de objetivos que intenta alcanzar el agente y lo que
pasaría si el agente realiza determinada acción.
El conocimiento sobre el estado actual del mundo no es siempre suficiente para decidir que
hacer. El programa del agente se puede combinar con información sobre los resultados de las
acciones posibles para elegir las acciones que permitan alcanzar el objetivo. En algunas
ocasiones, l selección basadas en objetivos es directa, cuando alcanzar los objetivos es el
resultado inmediato de una acción individual en otras ocasiones puede ser más complicado,
cuando el agente tiene que considerar secuencias complejas para encontrar el camino que le
permita alcanzar el objetivo. Búsqueda y planificación son los subcampos de la IA centrados en
encontrar la secuencias de acciones que permitan a los agentes alcanzar sus metas.
Hay que tener en cuenta que la toma de decisiones de este tipo es fundamentalmente diferente
de las reglas de condición-acción descritas anteriormente, en las que hay que tener en cuenta
consideraciones sobre el futuro. En los diseños de agentes reactivos esta información no está
representada explícitamente porque las reglas que maneja el agente proyectan directamente
las percepciones en las acciones.
El agente reactivo frena cuando ve luces de freno un agente basado en objetivos, en principio,
puede reaccionar que si el coche que va adelante tiene encendidas las luces de frenado, está
reduciendo su velocidad. Aunque el agente basado en objetivos puede parecer menos eficiente,
es más flexible ya que el conocimiento que soporta su decisión está representado
explícitamente y puede modificarse.
El comportamiento del agente basado en objetivos puede cambiarse fácilmente para que se
dirija a una localización diferente. Las reglas de los agentes reactivos relacionadas con cuándo
girar y cuándo seguir recto son válidas par un destino concreto y tienen que modificarse cada
vez que el agente se dirija a cualquier otro lugar destino.
Agentes Basados En Utilidad:
En este tipo de agentes interviene un aspecto importante como la función de utilidad, pero ¿qué
es utilidad? ¿A qué hace referencia la función utilidad? ¿Para qué es necesaria?. Para aclarar
estas inquietudes regrese al texto base y analice la estructura de estos agentes.
Se podrá dar cuenta que cuando se prefiere un estado en lugar de otro, se dice que ese estado
ofrece mayor “utilidad” al agente
Las metas por si solas no son realmente suficientes para generar comportamiento de gran
calidad en l mayoría de los entornos. Las metas solo proporcionan una cruda distinción binaria
entre los estados de felicidad y tristeza mientras que una medida de eficiencia más general
debería permitir una comparación entre estados del mundo diferentes de acuerdo al nivel
exacto de felicidad que el agente alcance cuando se llegue a un estado u otro. Una función de
utilidad proyecta un estado en un número real, que representa un nivel de felicidad.
La definición completa de una función de utilidad permite tomar decisiones racionales en dos
tipos de casos en los que las metas son inadecuadas. Primero, cuando haya objetivos
conflictivos, y sólo se puedan alcanzar algunos de ellos. Segundo, cuando hay varios objetivos
por los que se pueda guiar al agente y ninguno de ellos se pueda alcanzar con certeza, la utilidad
proporciona un mecanismo para ponderar la probabilidad de éxito en función de la importancia
de los objetivos.
Un agente que posee una función de utilidad explícita puede tomar decisiones racionales, y lo
puede hacer con la ayuda de un algoritmo de propósito general que no dependa de la función
específica de utilidad a maximizar.
Agentes Que Aprenden
Hasta aquí ha revisado estructuras de agentes similares, pero si comparamos el modelo general
para los agentes que aprenden con los diagramas de agentes señalados anteriormente, veremos
que este cuarto diagrama tiene diferencias, principalmente en los componentes que conforman
el agente. Para corroborar esto analizar la figura 2.15 del texto base y revisar en qué consiste
cada uno de ellos.
Se han descrito programas para agentes que poseen varios métodos para seleccionar acciones.
Pero no se ha explicado cómo poner en marcha estos programas de agentes. Turing en su
temprano y famoso artículo, consideró la idea de programar sus máquinas inteligentes a mano.
Estimó cuánto tiempo podía llevar y concluyó que <<sería deseable utilizar un método más
rápido>> el método que propone es construir máquinas que aprendan y después enseñarlas.
En muchas áreas de la IA. Éste es hasta ahora el método más adecuado para crear sistemas
novedosos.
El aprendizaje tiene otras ventajas: como se ha explicado: permite que el agente opere en
medios que inicialmente desconocidos y que sea más competente que si sólo utilizase un
conocimiento inicial.
Un agente que aprende se puede dividir en cuatro componentes conceptuales. La distinción más
importante entre el elemento de aprendizaje y el elemento de actuación es que el primero está
responsabilizado de hacer las mejoras y el segundo se responsabiliza de la selección de acciones
externas. El elemento de actuación es lo que anteriormente se había considerado como el
agente completo: recibe estímulos y determina las acciones a realizar.
El elemento de aprendizaje se realimenta con las críticas sobre la actuación del agente y
determina como se debe modificar el elemento de actuación para proporcionar mejores
resultado en el futuro. La crítica indica el elemento de aprendizaje que tal lo está haciendo el
agente con respecto a un nivel de actuación fijo. La crítica es necesario porque las percepciones
por sí mismas no prevén una indicación del éxito del agente. El último componente del agente
con capacidad de aprendizaje es el generador de problemas. Es responsable de sugerir acciones
que lo guiarán hacia experiencias nuevas e informativas. Lo interesante es que si el elemento
de actuación sigue su camino, puede continuar llevando a cabo las acciones que sean mejores,
dado su conocimiento. Pero si el agente está dispuesto a explorar un poco, y llevar cabo algunas
acciones que no sean totalmente óptimas a largo plazo.
En resumen, los agentes tienen una gran variedad de componentes y estos componentes se
pueden representar de muchas formas en los programas de agentes , por lo que parece haber
una gran variedad de métodos de aprendizaje. El aprendizaje es el campo de los agentes
inteligentes puede definirse como el proceso de modificación de cada componente del agente,
lo que permite a cada componente comportarse más en consonancia con la información que se
recibe, lo que por tanto permite mejorar el nivel medio de actuación del agente.
En los 70's, específicamente en 1972, se comenzó el desarrollo del sistema MYCIN. Éste era
utilizado para hacer consultas y diagnósticos de infecciones en la sangre.
Basándose en análisis de sangre, cultivos de bacterias y otros datos, el sistema podía
determinar o, por lo menos, sugerir qué organismo o microbio estaba causando la infección. El
mismo llegaba a una conclusión y sugería un tratamiento el cual era basado en las
características de la persona, i.e. peso corporal del individuo. Para esta misma época también
se desarrollaron otros sistemas como HERSAY (que fue creado para reconocimiento de
palabras habladas) y PROSPECTOR (que fue utilizado para hallar yacimientos de minerales).
En los 80 los Sistemas Expertos (S.E.) obtuvieron un gran auge. Al igual que todo lo que se pone
de moda, los S.E. no fueron la excepción y numerosas empresas comenzaron a dedicar tiempo,
dinero y esfuerzo para el desarrollo de S.E. En este punto se llegó a la conclusión de que el éxito
de los sistemas expertos depende de la base de conocimientos que se esté utilizando.
Entre todas las empresas gastaron aproximadamente unos mil millones de dólares en
investigación y desarrollo de estos sistemas. Uno de estos sistemas fue DELTA, "Diesel Electric
Locomotive Troubleshooting Aid". Éste fue un sistema producido por General Electric para la
reparación de locomotoras. Además de Sistemas Expertos, también se desarrollaron
herramientas para trabajar con los mismos. Estas herramientas son programas que contienen
los componentes básicos de un Sistema Experto, como lo son: el Subsistema de Adquisición de
Conocimientos, la Base de Conocimientos, el Mecanismo de Inferencia, el Subsistema de
Explicación y el Interface de Usuario. Además de éstas también se han desarrollado otras
herramientas, como por ejemplo CLIPS, "C Language Integrated Production System". Este
programa fue creado en 1985 por NASA para satisfacer sus necesidades dentro del campo de la
inteligencia artificial.
0.3.1 Definición
Los sistemas expertos (también conocidos por sistemas basados en el conocimiento o sistemas
expertos basados en el conocimiento) son una rama de la IA que hace un uso del conocimiento
especializado para resolver problemas como un especialista humano.
Un Sistema Basado en el Conocimiento (SBC) es aquel en el que aparece representado el
conocimiento de un dominio determinado, de tal forma que dicha representación sea procesable
por un programa informático. Un Sistema Experto (SE) es un SBC al que se le incorpora
conocimiento proveniente de expertos en dicho dominio. La finalidad de un SE es la resolución de
problemas del dominio para el que ha sido creado, aplicando técnicas de razonamiento sobre el
conocimiento que alberga su base de conocimiento (BC).
Los sistemas expertos, dentro del campo de la inteligencia artificial, son sistemas capaces de
realizar algo muy parecido a “razonar y pensar”. Permiten crear máquinas que razonan en un
espacio restringido de conocimientos, siguiendo los pasos que seguiría un experto humano.
Actúan como un especialista humano en un dominio particular o área de conocimiento. El
experto humano transmite su conocimiento al sistema, y el usuario lo utiliza para resolver
problemas con el eficacia del especialista. El usuario también puede aprender observando, es
decir, puede considerarse al sistema experto como un medio de ejecución y transmisión del
conocimiento.
La característica fundamental de un sistema experto es que separa los conocimientos
almacenados (base de conocimiento) del programa que los controla (motor de inferencia). Los
datos propios de un determinado problema se almacenan en una base de datos aparte (base de
hechos).
Un sistema experto puede definirse como "un programa de computadora que resuelve
problemas que requieren experiencia humana, mediante el uso de representación del
conocimiento y procedimientos de decisión”, [Kastner, 1984]. Así pues los SE son programas
que hacen explicito el conocimiento alojado en los expertos, que tienen información específica
de un tema concreto y que realizan una tarea relativa a este tema. Son llamados expertos por
que emulan el comportamiento de un experto en un tema concreto y en ocasiones son usados
por ellos.
2 Ésta es la estructura clásica, aplicable sobre todo a los sistemas basados en reglas.
Cátedra Inteligencia Artificial – Dpto Sistemas - FRM UTN 16
APUNTES BREVES – U0 Inteligencia Artificial – Sistemas Expertos
Esta base (memoria temporal) no se conserva (salvo por necesidades del usuario) y depende
exclusivamente de la situación estudiada.
Subsistema de Adquisición de Conocimiento
El conocimiento puede introducirse por el experto o por el ingeniero de conocimiento (en este
caso el módulo puede contener funciones de interfase con el usuario) o provenir directamente
de sensores, bases de datos, otros software… Debe, pues, recibir el conocimiento, verificar la
verosimilitud de éste, organizar la coherencia de la base de conocimientos y transformar los
datos en conocimientos incorporados al sistema.
El subsistema de adquisición de conocimiento controla el flujo del nuevo conocimiento que
fluye del experto humano a la base de datos. El sistema determina qué nuevo conocimiento se
necesita, o si el conocimiento recibido es en realidad nuevo, es decir, si debe incluirse en la base
de datos y, en caso necesario, incorpora estos conocimientos a la misma.
Si el conocimiento inicial es muy limitado y no se pueden sacar conclusiones, el motor de
inferencia utiliza el subsistema de adquisición de conocimiento para obtener el conocimiento
necesario y continuar con el proceso de inferencia hasta que se hayan sacado conclusiones. En
algunos casos, el usuario puede suministrar la información requerida para éste y otros
objetivos. De ello resulta la necesidad de una interfase de usuario y de una comprobación de la
consistencia de la información suministrada por el usuario antes de introducirla en la memoria
de trabajo.
Si bien estos módulos no existen en todos los SE, o están organizados de diferentes formas, la
función que realizan son de todo punto indispensable en estos sistemas.
Control de la Coherencia
El subsistema de control de la coherencia ha aparecido en los sistemas expertos muy
recientemente. Sin embargo, es una componente esencial de un sistema experto. Este
susbsistema controla la consistencia de la base de datos y evita que unidades de conocimiento
inconsistentes entren en la misma.
En situaciones complejas incluso un experto humano puede formular afirmaciones
inconsistentes. Por ello, sin un subsistema de control de la coherencia, unidades de
conocimiento contradictorio pueden formar parte de la base de conocimiento, dando lugar a un
comportamiento insatisfactorio del sistema. Es también bastante común, especialmente en
sistemas con mecanismos de propagación de incertidumbre, que se llegue a conclusiones
absurdas o en conflicto como, por ejemplo, situaciones en las que el sistema genera
probabilidades mayores que la unidad o negativas. Por ello, el subsistema de control de la
coherencia comprueba e informa a los expertos de las inconsistencias. Por otra parte, cuando
se solicita información de los expertos humanos, éste subsistema informa sobre las
restricciones que ésta debe cumplir para ser coherente con la existente en la base de
conocimiento. De esta forma, ayuda a los expertos humanos a dar información fiable.
El Motor de Inferencia
El motor de inferencia es el corazón de todo sistema experto, ponen en acción los elementos de
la base de conocimientos para construir los razonamientos. El cometido principal de esta
componente es el de sacar conclusiones aplicando el conocimiento a los datos. Por ejemplo, en
diagnóstico médico, los síntomas de un paciente (datos) son analizados a la luz de los síntomas
y las enfermedades y de sus relaciones (conocimiento).
Ejecuta las inferencias (deducciones) en el curso del proceso de resolución, bien sea por
modificación, bien por adjunción de los elementos de la base de hechos.
Frente a una situación dada, detecta los conocimientos que interesan, los utiliza, los encadena,
y construye un plan de resolución independiente del dominio y especificidad del caso tratado.
Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista
o conocimiento probabilístico. Como puede esperarse, el tratamiento de situaciones de
incertidumbre (probabilísticas) puede ser considerablemente más difícil que el tratamiento de
situaciones ciertas (deterministas). En muchos casos, algunos hechos (datos) no se conocen con
absoluta certeza. Por ejemplo, piénsese en un paciente que no está seguro de sus síntomas.
Puede darse el caso de tener que trabajar con conocimiento de tipo no determinista, es decir,
de casos en los que se dispone sólo de información aleatoria o difusa. El motor de inferencia es
también responsable de la propagación de este conocimiento incierto.
De hecho, en los sistemas expertos basados en probabilidad, la propagación de incertidumbre
es la tarea principal del motor de inferencia, que permite sacar conclusiones bajo
incertidumbre. Esta tarea es tan compleja que da lugar a que ésta sea probablemente la
componente más débil de casi todos los sistemas expertos existentes. Por esta razón, la mayor
parte de este libro se dedica al análisis y resolución del problema de la propagación de
incertidumbre.
Interface de Usuario
La interface de usuario es el enlace entre el sistema experto y el usuario. También denominado
Sistema de Consulta. Es el que gobierna el diálogo entre el usuario y el sistema. Su objetivo es
el de permitir un diálogo en un lenguaje cuasi-natural con la máquina. Además, este módulo
“traduce” el español (o cualquier otra lengua) al lenguaje interno y viceversa.
Por ello, para que un sistema experto sea una herramienta efectiva, debe incorporar
mecanismos eficientes para mostrar y obtener información de forma fácil y agradable. Un
ejemplo de la información que tiene que ser mostrada tras el trabajo del motor de inferencia,
es el de las conclusiones, las razones que expliquen tales conclusiones y una explicación de las
acciones iniciadas por el sistema experto. Por otra parte, cuando el motor de inferencia no
puede concluir debido, por ejemplo, a la ausencia de información, la interface de usuario es un
vehículo para obtener la información necesaria del usuario. Consecuentemente, una
implementación inadecuada de la interface de usuario que no facilite este proceso minaría
notablemente la calidad de un sistema experto. Otra razón de la importancia de la interface de
usuario es que los usuarios evalúan comúnmente los sistemas expertos y otros sistemas por la
calidad de dicha interface más que por la del sistema experto mismo, aunque no se debería
juzgar la calidad de un libro por su portada.
El Subsistema de Ejecución de Ordenes
El subsistema de ejecución de órdenes es la componente que permite al sistema experto iniciar
acciones. Estas acciones se basan en las conclusiones sacadas por el motor de inferencia. Como
ejemplos, un sistema experto diseñado para analizar el tráfico ferroviario puede decidir
retrasar o parar ciertos trenes para optimizar el tráfico global, o un sistema para controlar una
central nuclear puede abrir o cerrar ciertas válvulas, mover barras, etc., para evitar un
accidente. La explicación de las razones por las que se inician estas acciones pueden darse al
usuario mediante el subsistema de explicación.
El Subsistema de Explicación
Permite trazar el camino tomado en el razonamiento (inferencias efectuadas). Este módulo
aporta una ayuda considerable al informático para refinar la gestión del motor de inferencia y
le es igualmente útil al experto, en la construcción y verificación de la coherencia de la base de
conocimiento y explica, también, al usuario, cómo ha deducido tal hecho y por qué plantea tal
cuestión.
Cátedra Inteligencia Artificial – Dpto Sistemas - FRM UTN 23
APUNTES BREVES – U0 Inteligencia Artificial – Sistemas Expertos
Ejemplo 1.2 Control de tráfico. El control de tráfico es una de las aplicaciones mas
importantes de los sistemas expertos. No hace mucho tiempo, el flujo de tráfico en las calles
de una ciudad se controlaba mediante guardias de tráfico que controlaban el mismo en las
intersecciones. Hoy se utilizan sistemas expertos que operan automáticamente los semáforos
y regulan el flujo del tráfico en las calles de una ciudad y en los ferrocarriles. En la Sección 2.6
y en los ejercicios del Capítulo 2 se dan ejemplos de estos sistemas.
Ejemplo 1.3 Problemas de planificación. Los sistemas expertos pueden utilizarse también
para resolver problemas complicados de planificación de forma que se optimicen ciertos
objetivos como, por ejemplo, la organización y asignación de aulas para la realización de
exámenes finales en una gran universidad, de forma tal que se logren los objetivos siguientes:
- Eliminar las coincidencias de asignación simultánea de aulas: Sólo se puede realizar un
examen en cada aula al mismo tiempo.
- Asientos suficientes: Un aula asignada para un examen debe tener al menos dos asientos
por estudiante.
- Minimizar los conflictos temporales: Minimizar el número de alumnos que tienen exámenes
coincidentes.
- Eliminar la sobrecarga de trabajo: Ningún alumno debe tener más de dos exámenes en un
periodo de 24 horas.
- Minimizar el número de exámenes realizados durante las tardes.
Otros ejemplos de problemas de planificación que pueden ser resueltos mediante sistemas
expertos son la planificación de doctores y enfermeras en un gran hospital, la planificación en
una gran factoría, y la planificación de autobuses para las horas de congestión o de días
festivos.
Ejemplo 1.4 Diagnóstico médico. Una de las aplicaciones mas importantes de los sistemas
expertos tiene lugar en el campo médico, donde estos pueden ser utilizados para contestar a
las siguientes preguntas:
1. ¿Como se puede recoger, organizar, almacenar, poner al día y recuperar la información
médica (por ejemplo, registros de pacientes) de una forma eficiente y rápida? Por ejemplo,
supóngase que un doctor en un centro médico está interesado en conocer información sobre
una cierta enfermedad (E) y tres síntomas asociados (S 1, S 2, y S 3). Se puede utilizar un
sistema experto para buscar en la base de datos, extraer y organizar la información deseada.
Esta información puede resumirse en tablas tales como la dada en la Tabla 1.1 o en gráficos
como el de la Figura 1.2.
2. ¿Como se puede aprender de la experiencia? Es decir, como se actualiza el conocimiento de
los doctores en medicina cuando el número de pacientes que estos tratan aumenta?
3. Supuesto que un paciente presenta un conjunto de síntomas, ¿como se decide qué
enfermedad es la que mas probablemente tiene el paciente?
4. ¿Cuáles son las relaciones entre un conjunto (normalmente no observable) de enfermedades
y un conjunto (observable) de síntomas? En otras palabras, ¿qué modelos pueden utilizarse
para describir las relaciones entre los síntomas y las enfermedades?
5. Dado que el conjunto de síntomas conocidos no es suficiente para diagnosticar la
enfermedad con cierto grado de certeza, ¿qué información adicional debe ser obtenida (por
ejemplo, ¿qué síntomas adicionales deben ser identificados? o ¿qué pruebas médicas deben
realizarse?).
6. ¿Cuál es el valor de cada una de éstas piezas de información? En otras palabras, ¿cuál es la
contribución de cada uno de los síntomas adicionales o pruebas a la toma de decisión?
1. Con la ayuda de un sistema experto, personal con poca experiencia puede resolver
problemas que requieren un conocimiento de experto. Esto es también importante en casos
en los que hay pocos expertos humanos. Además, el número de personas con acceso al
conocimiento aumenta con el uso de sistemas expertos.
2. El conocimiento de varios expertos humanos puede combinarse, lo que da lugar a sistemas
expertos mas fiables, ya que se obtiene un sistema experto que combina la sabiduría
colectiva de varios expertos humanos en lugar de la de uno solo.
3. Los sistemas expertos pueden responder a preguntas y resolver problemas mucho mas
rápidamente que un experto humano. Por ello, los sistemas son muy valiosos en casos en
los que el tiempo de respuesta es crítico.
4. En algunos casos, la complejidad del problema impide al experto humano resolverlo. En
otros casos la solución de los expertos humanos no es fiable. Debido a la capacidad de los
ordenadores de procesar un elevadísimo número de operaciones complejas de forma rápida
y aproximada, los sistemas expertos suministran respuestas rápidas y fiables en situaciones
en las que los expertos humanos no pueden.
5. Los sistemas expertos pueden ser utilizados para realizar operaciones monótonas,
aburridas e inconfortables para los humanos. En verdad, los sistemas expertos pueden ser
la única solución viable en una situación en la que la tarea a realizar desborda al ser humano
(por ejemplo, un avión o una cápsula espacial dirigida por un sistema experto).
6. Se pueden obtener enormes ahorros mediante el uso de sistemas expertos.
El uso de los sistemas expertos se recomienda especialmente en las situaciones siguientes:
- Cuando el conocimiento es difícil de adquirir o se basa en reglas que sólo pueden ser
aprendidas de la experiencia.
- Cuando la mejora continua del conocimiento es esencial y/o cuando el problema está sujeto
a reglas o códigos cambiantes.
- Cuando los expertos humanos son caros o difíciles de encontrar.
- Cuando el conocimiento de los usuarios sobre el tema es limitado.
0.3.4 Aplicaciones
La aplicación de Sistemas Expertos será adecuada allí donde los expertos dispongan de
conocimientos complejos en un área estrechamente delimitada, donde no existan algoritmos
elaborados (o donde los existentes no puedan solucionar algún problema) y no existan teorías
completas. Otro campo de aplicación es allí donde hay teorías, pero resulta prácticamente
imposible analizar todos los casos teóricamente imaginables mediante algoritmos y en un
espacio de tiempo razonable. En estas situaciones hace falta el conocimiento que el experto ha
adquirido por experiencia, para llegar a una solución en un espacio de tiempo aceptable.
Los dos tipos de problemas descritos se caracterizan además por el hecho de que, aunque es
posible la existencia de una o más soluciones, la vía de soluciones no esta previamente fijada. Sin
embargo, el experto encuentra una solución al problema gracias a la información que posee del
problema y a su experiencia. Mientras esta solución sea susceptible de repetición y el
planteamiento del problema sea claro, existe un razonamiento que puede ser reproducido por
un Sistema Experto.
Debido a que la estructuración y la implementación del conocimiento del experto requiere una
gran cantidad de trabajo, solo valdrá la pena el esfuerzo de crear un sistema experto cuando un
conocimiento sea valido durante un largo espacio de tiempo y vaya a ser utilizado por el mayor
número posible de personas.
Según la clase de problemas hacia los que estén orientados, podemos clasificar los Sistemas
Expertos en diversos tipos entre los que cabe destacar diagnosis, pronóstico planificación,
reparación e instrucción.
Si se clasifica a los tipos de Sistemas Expertos de acuerdo a la función que realizan, estos
pueden ser de:
- INTERPRETACIÓN: infieren la descripción de situaciones por medio de sensores de datos. Estos
S.E. usan datos reales, con errores, con ruidos, incompletos etc. Ejemplos: medición de
temperatura, reconocimiento de voz, análisis de señales etc.
- PREDICCIÓN: infieren probables consecuencias de situaciones dadas. Algunas veces usan
modelos de simulación para generar situaciones que puedan ocurrir. Ejemplos: predecir
daños a cosechas por algún tipo de insecto.
- DIAGNOSTICO: infieren las fallas de un sistema en base a los síntomas. Utilizan las
características de comportamiento, descripción de situaciones o conocimiento sobre el
diseño de un componente para inferir las causas de la falla. Ejemplos: diagnostico de
enfermedades en base a síntomas, encontrar componentes defectuosos o fallas en circuitos.
- DISEÑO: configuración de objetos. Utilizan un conjunto de limitaciones y restricciones para
configurar objetos. Utilizan un proceso de análisis para construir un diseño parcial y una
simulación para verificar o probar las ideas. Ejemplos: configuración de equipos de oficina,
de equipos de computo.
- PLANTACIÓN: diseñan un curso completo de acción, se descompone la tarea en un subconjunto
de tareas. Ejemplo: transferir material de un lugar a otro, comunicaciones, ruteo,
planificación financiera.
- MONITOREO: comparan observaciones del comportamiento del sistema con el
comportamiento standard, se compara lo actual con lo esperado. Ejemplo: asistir a un
paciente de cuidados intensivos, trafico aéreo, uso fraudulento de tarjetas de créditos
- DEPURACIÓN: (debugging) sugieren remedios o correcciones de una falla. Ejemplo: sugerir el
tipo de mantenimiento a cables dañados, la prescripción medica a un paciente.
- REPARACIÓN: sigue un plan para administrar un remedio prescrito. Poco se ha hacho, requiere
planeación, revisión y diagnostico.
3 Quizá la más conocida, a la vez que la más antigua, podría ser MYCIN. Es un sistema de diagnóstico y prescripción en
medicina, altamente especializado, diseñado para ayudar a los médicos a tratar con infecciones de meningitis y
bacteriana. Dichas infecciones pueden ser fatales y a menudo aparecen durante la hospitalización. El problema se
complica por la necesidad de actuar con rapidez.
4 Quizá la aplicación más conocida sea PROSPECTOR, esto es un sistema para la evaluación de emplazamientos
geológicos (con el que se encontró un yacimiento de mineral importante).
5 Una de tales aplicaciones es el PALLADIAN OPERATIONS ADVISOR (de Palladian Software, Inc., en Estados Unidos),
diseñado específicamente para la dirección de la producción. El programa ayuda a la planificación y programación,
asesorando en lo que se refiere a los programas que reducen el trabajo no deseable en niveles de proceso, ajustan el
volumen de producción a la demanda de clientes y evalúan los cambios en las operaciones desde los puntos de vista
económico y de producción. puede analizar el estado de la combinación de productos para mantener la mayor eficacia
y rentabilidad posible de las operaciones.
6 En este campo, LABEIN (Laboratorio de Ensayos e Investigaciones Industriales, Centro de Investigación tutelado por
el Gobierno Vasco), desarrolló un sistema inteligente para el diseño de motores eléctricos mediante la aplicación de
las tecnologías clásicas de Sistemas Expertos a los sistemas de CAD/CAE de diseño y análisis. El problema que motivó
este proyecto era que ciertos motores, de entre los eléctricos, son de uso frecuente en la industria exigiendo a la vez
Cátedra Inteligencia Artificial – Dpto Sistemas - FRM UTN 29
APUNTES BREVES – U0 Inteligencia Artificial – Sistemas Expertos
Otro tipo de Sistemas Expertos son los orientados a la reparación [7], sin embargo, no se
puede decir que sea un tipo realmente nuevo, ya que este enfoque abarca diagnosis y
planificación.
Un sistema de instrucción (Sistema Experto para [8] formación) realiza un seguimiento del
proceso de aprendizaje de un estudiante.
Sistemas expertos también se aplican para la toma de decisiones. Los sistemas expertos
como una de las áreas de la inteligencia artificial son muy importantes para todos los que
trabajan en la empresa en los diferentes niveles organizacionales. Los sistemas expertos sirven
para mejorar las actividades de la empresa como por ejemplo compras, control de inventarios,
otorgación de créditos, control de procesos de producción, gestión financiera, configuración de
software, y muchas más aplicaciones, que son inherentes a la formación del Ingeniero
industrial.
Además de las áreas de aplicación ya citadas, existen otras como las relativas a los sistemas de
interpretación, que realizan tareas de inferencia a partir de una serie de datos observables (p.
ej. Análisis de imágenes, o bien interpretación de señal).
Como punto final se puede decir que el futuro de dichas aplicaciones pasa por la imaginación
de cada uno, siempre que el área elegida requiera la presencia de un experto para la obtención
de cualquier tipo de beneficio.
0.3.4.1 Campos de Aplicación
un diseño a medida de cada caso, por ello se creyó conveniente desarrollar una herramienta que asesorase o, incluso,
dirigiera al operador.
7 Se incluyen sistemas como DELTA, que ayuda a los mecánicos en el diagnóstico y reparación de locomotoras diesel-
eléctricas. No solo da consejos expertos, sino que también presenta informaciones por medio de un reproductor de
vídeo. De hecho se podría encasillar a DELTA más en el área de la instrucción que en reparación, dado que además
proporciona ayudas al trabajo que permiten al estudiante determinar si existe o no un determinado problema,
proporcionando también formación específica sobre el modo de realizar ciertas reparaciones.
8 Además de DELTA, existen numerosos sistemas de este tipo; STEAMER, por ejemplo, se creó para enseñar a los
oficiales de la armada los problemas de funcionamiento de una planta de propulsión a vapor, como las que impulsan
a ciertos barcos. El objetivo es dar al estudiante una concepción global de lo que pasa en la planta en cualquier
momento, con la ventaja de que además el modelo de presentación es gráfico (utilizando Interlisp). Otro sistema de
este tipo, aunque en este caso orientado a medicina, es GUIDON, pensado para que lo utilicen las Facultades de
Medicina para formar a los médicos en la realización de consultas.
Cátedra Inteligencia Artificial – Dpto Sistemas - FRM UTN 30
APUNTES BREVES – U0 Inteligencia Artificial – Sistemas Expertos
- Entrevista informal: se realiza de forma personal pero no planeada. Es aprovechar la oportunidad del
encuentro entre el IC y la persona que tiene el conocimiento, en donde el primero le hace una corta
entrevista al segundo. Obviamente, por ser una entrevista esporádica o imprevista, no se tienen
disponibles los medios que permiten registrar el conocimiento, por lo tanto, se debe tener mucho
cuidado para evitar su inadecuado manejo.
- Observación del trabajo real del experto: consiste en examinar la labor del experto en su ambiente de
trabajo, solucionando un problema como el que se está tratando de simular. La ventaja del
conocimiento que se adquiere en esta forma es que es muy espontáneo, ya que el experto está tomando
las decisiones sin tener mucho tiempo para analizar el por qué de ellas. Además, no se le permite
cuestionar si está haciendo lo correcto o no, solamente él hace lo que cree que es mejor en esa
situación.
- Cuestionario: es una encuesta muy bien diseñada que se utiliza especialmente para cuando se requiere
obtener las ideas que tienen varias personas sobre el tema. Puede llegar a ser muy difícil de diseñar e
inclusive, de manejar.
2) Representación del Conocimiento
El conocimiento puede definirse como el conjunto de hechos y principios acumulado por una clase de
acto, hecho o estado del conocimiento. Es un conjunto de datos sobre hechos, verdades o de información
ganada a través de la experiencia o del aprendizaje (a posteriori), o a través de introspección (a priori).
De cómo se representa el conocimiento se determinará la eficiencia en la manipulación del mismo. La
representación debe poseer un conjunto de convenciones sintácticas y semánticas que hagan posible
describir las cosas. La sintaxis son los símbolos y conjunto de reglas para combinarlos y la semántica es
el significado de las expresiones construidas. Un sistema para la representación del conocimiento debe
contar con los siguientes ingredientes básicos:
Un lenguaje de representación: es la capacidad de simbolizar todos los tipos de conocimiento
necesarios para el tema en estudio.
Capacidad de inferencias: es la suficiencia para manipular las estructuras de representación del
conocimiento que permitan derivar nuevas estructuras en base al conocimiento inferido, así como la
eficiencia al incorporar conocimiento adicional que permita obtener mejores respuestas.
Eficiencia de adquisición: es la capacidad para adquirir nuevo conocimiento.
No existe una representación que sea lo suficientemente robusta como para incluir las propiedades
antes descritas, sin embargo se puede tener como referencia los siguientes criterios para juzgar una
representación:
Capacidad lógica: que sea capaz de representar el conocimiento que deseamos expresar.
Heurística: capacidad de resolver problemas.
Declarativa: facilidad para acceder al conocimiento y facilidad de entendimiento.
2.1) Tipos de Representación
La representación del conocimiento puede dividirse en:
Representación declarativa: es aquella en la que el conocimiento está especificado, pero las maneras
en que debe utilizarse no viene dado (saber qué). Entre las características de los métodos declarativos
están:
- Economía de representación: una única sentencia admite varios usos.
- Naturalidad: al leer una sentencia es fácil de comprender su significado.
- Modularidad: al cambiar una sentencia se cambia el conocimiento.
- Ineficiencia: no se sabe cual es el conocimiento, aspecto importante para resolver un problema
concreto.
Representación procedural: es aquella en que la información de control necesaria para utilizar el
conocimiento viene inmersa en el propio conocimiento (saber cómo). El conocimiento está escrito
mediante un conjunto de procedimientos que permiten resolver un problema. Sus características son:
- Eficiencia: se utiliza en cada momento el conocimiento preciso.
- Inflexibles: modificar el conocimiento puede requerir revisar todo el sistema.
En particular, se tiene interés en este trabajo en la representación del conocimiento procedural. Éste
indica que hacer si se dá una situación. La técnica más usada para representarlo son las reglas de
producción. Un sistema basado en reglas de producción consta de:
- Un conjunto de reglas de producción: del tipo si C entonces A, y a veces llevan asociado un
conocimiento de certeza.
- Sistema de gestión de base de datos: consta de los hechos del problema a solucionar.
- Intérprete de reglas: identifica las reglas a usar y cómo usarlas.
Entre las ventajas que tienen están: modularidad de enfoque y captar conocimiento probabilístico útil;
entre las desventajas, ésta necesita un mecanismo eficiente de búsqueda de reglas dependiendo del
problema tratado.
Lógica de situaciones
Soporta una estructura dinámica (en un momento algo puede ser cierto, y, más tarde, puede ser
falso).
Ejemplo
Muchas veces un concepto vago depende del contexto y de la subjetividad. Toda la lógica difusa
está montada sobre la definición de una serie de elementos:
Conjunto difuso:
La diferencia con la probabilidad es que ´esta precisa de una experimentaci´on previa antes de
obtener un resultado. Con los conjuntos difusos no es necesaria experiencia previa
Modificadores: Definidos a partir del conjunto base
Composición de conjuntos:
Mediante Platillas.
Una plantilla (frame) es una estructura de datos apropiada para representar una situación
estereotípica. Las plantillas organizan el conocimiento en objetos y eventos que resultan
apropiados para situaciones específicas. Evidencia psicológica sugiere que la gente utiliza
grandes plantillas para codificar el conocimiento de experiencias pasadas, o conocimiento
acerca de cosas que se encuentran comúnmente, para analizar y explicar una situación nueva
en su cotidiana actividad cognoscitiva.
Una plantilla representa un objeto o situación describiendo la colección de atributos que posee.
Están formadas por un nombre y por una serie de campos de información o ranuras (slots).
Cada ranura puede contener uno o más enlaces (facets). Cada enlace tiene un valor asociado.
Mediante Objetos.
Los objetos, son similares a las plantillas. Ambos sirven para agrupar conocimiento asociado,
soportan herencia, abstracción y el concepto de procedimientos agregados.
La diferencia radica en lo siguiente: 1. En las plantillas, a los programas y a los datos se los trata
como dos entidades relacionadas separadas. En cambio en los objetos se crea una fuerte unidad
entre los procedimientos (métodos) y los datos. 2. Los demons de las plantillas sirven sólo para
computar valores para las diversas ranuras o para mantener la integridad de la base de
conocimientos cada vez que una acción de alguna plantilla, afecta a otra. En cambio, los métodos
utilizados por los objetos son más universales ya que proporcionan cualquier tipo general de
computación requerida y además soportan encapsulamiento y polimorfismo.
Un objeto es definido como una colección de información representando una entidad del
mundo real y una descripción de cómo debe ser manipulada esta información, esto es los
métodos. Es decir, un objeto tiene un nombre, una caracterización de clase, varios atributos
distintivos y un conjunto de operaciones. La relación entre los objetos viene definida por los
mensajes. Cuando un objeto recibe un mensaje válido, responde con una acción apropiada,
retornando un resultado
Redes asociativas.
Las redes semánticas, fueron originalmente desarrolladas para representar el significado o
semántica de oraciones en inglés, en términos de objetos y relaciones. Actualmente, el término
redes asociativas es más ampliamente utilizado para describirlas ya que no sólo se las usa para
representar relaciones semánticas, sino también para representar asociaciones físicas o
causales entre varios conceptos u objetos. Las redes asociativas se caracterizan por representar
el conocimiento en forma gráfica.
Agrupan una porción de conocimiento en dos partes: objetos y relaciones entre objetos. Los
objetos se denominan también nodos (elementos del conocimiento) y las relaciones entre
nodos se denominan enlaces o arcos. Cada nodo y cada enlace en una red semántica, deben
estar asociados con objetos descriptivos.
Referencias Bibliográficas
GARCÍA MARTÍNEZ R., BRITOS P, Ingeniería de Sistemas Expertos. Editorial Nueva Librería. Buenos Aires.
(2004)
KASTNER, J. Y HONG S. (1984). A review of expert systems. European journal of operational research, p.p.
285-292.
GUTIÉRREZ, J. (1994) Sistemas Expertos Basados en Reglas, Dpto. de Matemática Aplicada. Universidad
de Cantabria.
Análisis de la relación entre la ingeniería del conocimiento y la gestión del conocimiento en base al modelo
de NONAKA Y TAKEUC, http://www.intangiblecapital.org/Articulos/N9/0033.htm#notas
GÁMEZ J.A., PUERTA J.M. Sistemas Expertos Probabilísticos, Colección Ciencia y Técnica, vol. 20. Ediciones
de la Universidad de Castilla-La Mancha. Cuenca, (1998).
MINSKY. M., A framework for representing knowledge. En: P. H. Winston (ed.), The Psychology of Computer
Vision, págs. 211–277. McGraw-Hill, Nueva York, (1975).