Ejemplos de sistemas expertos

Minientrada

compoente-seVeremos dos ejemplos que han sido paradigmas de sistemas expertos dentro de la inteligencia artificial.

DENDRAL: Reducción de grandes espacios de búsqueda mediante factorización (heurística).

Ayudar a los químicos a inferir la estructura de los componentes químicos a partir de los datos del espectro de masa.

Se partió de la técnica de generar y probar la cual depende de la forma en la que se desarrolla el espacio de estados y de predecir que ramas conducirán a la solución, hasta que profundidad se debe explorar una rama sin que se pierda una posible solución.

Fue el pionero en el cambio de enfoque hacia las estructuras de control dependientes del dominio.

MYCIN. El manejo de evidencia incierta.

Sistema para el diagnostico de infecciones bacterianas.

Se basa en conocimientos indefinidos y datos imprecisos en vez de los manejos del espacio del problema.

DENDRAL

El paradigma de búsqueda de solución en espacios de estados. El cual se basa en una búsqueda a través de una red de nodos, donde cada uno representa un posible estado del problema, donde casi siempre una búsqueda exhaustiva de todo el espacio es imposible (explosión combinatoria). Un método es controlar la búsqueda en el espacio de estado basándose en la relación que hay entre los estados.

Una técnica muy conocida es la de “generar y probar”. Comenzando por algún estado inicial, se utiliza un generador para producir un conjunto de estados descendentes, se aplica entonces a ese conjunto una serie de pruebas de validez para reducirlo a un tamaño más manejable. Estas pruebas adoptan normalmente la forma de restricciones, también es posible incorporar estas restricciones al generador reduciendo el número de estados descendientes a probar. El método “generar y probar” solo funciona, si cuando un estado se declara invalido, todos sus estados descendientes lo son.

DENDRAL, fue el primer sistema basado en conocimientos que utilizo el método de “generar y probar” para las conexiones de las estructuras de compuestos de química orgánica. El proyecto comenzó en 1965 con el objetivo de proporcionar un soporte en la computadora a los químicos, profesionales que no eran expertos en determinadas técnicas analíticas y tubo tal éxito que inspiro a la creación del área de los sistemas expertos en la IA.

La tarea de la aplicación.

DENDRAL: es un sistema diseñado para ayudar a los químicos a determinar la estructura de algún compuesto desconocido, con especial énfasis en el uso de los datos provenientes de un espectrómetro de masas.

El programa de planificación de DENDRAL

En la práctica hizo falta un programa de planificación para producir las restricciones a la hora de generar. El ciclo completo es PLANFICAR – GENERAR – PROBAR.

Con el planificador se evita la generación superflua y simplifica la fase de prueba.

Semejante a MYCIN, DENDRAL no pretende simular los procesos interpretativos que utilizan los químicos. No obstante si pretende complementar los métodos de estos.

Con la planificaron se infiere una lista con las estructuras necesarias(1) y con las prohibidas (2) las cuales ayudaran, mas tarde a limitar las estructuras proporcionadas por el generador .

(1) Lista correcta (2) Lista incorrecta

Ejemplo de regla:

R1: Si hay dos picos de las unidades de masa X1 y X2, de modo que
X1 + X2 = M + 28
X1 – 28 es un pico alto
X2 – 28 es un pico alto
Al menos, o X1 es alto o X2 es alto
Entonces CETONA

R2: Si se satisface las condiciones para ser una CETONA
43 es un pico alto
58 es un pico alto
M – 43 es un pico bajo
M – 15 es bajo o, posiblemente 0
Entonces METIL-CETONA.

Encadenando hacia delante si se aplica la regla R1 el PLANIFICADOR puede considerar aquellas reglas que tenga en sus condiciones el grupo CETONA.

R3: Si es CETONA y…  Entonces ETIL-CETONA.

O sea encadena con las reglas R2 y R3 de acuerdo con su espectro de masa y la correcta la incluye en la lista correcta y la otra en la lista incorrecta. Lo cual permite al planificador determinar la posición de un grupo funcional y registrar la información adicional para que sea utilizada más tarde por el generador.

Generador de estructura: es un programa que genera el espacio de búsqueda con las posibles estructuras químicas.

MYCIN

El sistema experto MYCIN opera sobre una Base de Conocimientos (BC), bien organizada sobre las enfermedades infecciosas, donde el conocimiento es inexacto por lo que el punto central son las técnicas para expresar medidas de opinión, llamadas factores de certeza.

La estructura de control es simple y está basada en un sistema de producción.
1) Una colección de hechos.
2) Un conjunto de reglas de producción.
3) Un generador de inferencias con encadenamiento hacia delante o hacia a tras (o ambos), junto a una estructura de conocimiento que capacita a la estructura de control para disidir que reglas, de todas las posibles, debe tomar parte en el mecanismo de inferencia.
4) Un mecanismo que realice inferencias, a partir de evidencias inciertas o incompletas..

En MYCIN las agrupaciones de reglas dentro de un determinado contexto se definen en tiempo de generación. El generador de inferencias proporciona una búsqueda dirigida por objetivos o por datos. Fue el primero en tener en cuenta el conocimiento incierto

La existencia de una estructura de control dependiente del dominio, la hace específica. Por eso se han extraído de MYCIN las partes independientes del dominio para formar el MYCIN “vacio” o “hueco”, EMYCIN. El cual se ha empleado en otros dominios tales como PUFF (cuidado respiratorio intensivo), SACON (calculo de estructuras de ingeniería), GRAVIDA (consejos para el embarazo), CLOT (desordenes de la sangre) y VM (manejo de la ventilación).

Hechos.
(contexto)(parámetro)(valor)

El contexto es alguna entidad del mundo real. Ejemplo: un paciente.
Un parámetro es un atributo del contexto. Ejemplo: la edad.
El valor es una particularización del parámetro. Ejemplo: 25 años.
A cada terna se le asocia un factor de certeza (FC).
FC toma valores en el intervalo (-1, 1) donde -1 es la negación, 0 la ignorancia absoluta y 1 total certidumbre.

Ejemplo:
Organismo 1 – Identidad pseudomonas .8 (La identidad del organismo 1 es, con un factor de certeza 0.8, pseudomonas).

Reglas de producción.

Si premisa entonces acción (FC).

En MYCIN las reglas se definen para poder encadenar hacia delante o hacia atrás. Las reglas se utilizan repetidamente utilizando el conocimiento dependiente del dominio para decidir que reglas se deben considerar, hasta que se dé un contenido a los hechos. En algunos casos, las reglas darán contenido a los hechos mediante preguntas al médico.

Ejemplo de reglas:

Si (no se sabe si el organismo fue capaz de desarrollarse en presencia del aire (aeróbicamente))
Y (el lugar de cultivo es la sangre)
O (el laboratorio ha intentado que el organismo se desarrolle sin la presencia del aire (anaeróbicamente)
Y (el organismo fue capaz de desarrollarse anaeróbicamente)
Entonces (hay evidencias de que el organismo es aerobio (.5) O anaerobio (.2).

Las premisas serán verdad si todos los hechos son verdad.

Factor de certeza.

En general:
Si (contexto-parametro-valor (FC1)) y/o (contexto-parametro-valor (FC2)) y/o…….
Entonces (contexto-parametro-valor (FC)).

Min(FC1, FC2,….) = RC*FC

Si la regla no venia arrastrando ningún valor de certeza entonces RC se colocara como su factor de certeza (FC) , si ya tenia con un valor IC. Se calculara el FC actual.

RC, IC>FC = IC + |RC| (1- |IC|) 0

RC, IC<FC = -(|IC| + |RC| (1- |IC|)) 0

IC + RC
<Fc = —————- RC . IC 0
1 – min(|IC|, |RC|)

La combinación de –1 y 1 se define como 1.

Este método del facto de certeza permite que el sistema se pueda enfrentar al razonamiento de juicios.

Estructura de control dependiente del dominio

El orden de las reglas no es significativo se aplican todas las reglas relevantes hasta que una determinada consigue un objetivo con certeza, en cuyo caso el resto de las reglas se ignora. La relevancia de una regla se define por la estructura del control dependiente del dominio, la cual se organiza como un árbol de contexto donde se organizan los hechos de la BC en una jerarquía, y se utiliza para definir el flujo de la consulta. Las reglas se agrupan en conjuntos de reglas definidas por el conjunto de tipos de contexto de aplicación de las mismas (una regla siempre se refiere a un determinado tipo de contexto).

Obtención de información a partir del usuario.

Las preguntas se hacen o bien cuando fallan las reglas o bien cuando la información ha de provenir del usuario (ejemplo: datos de laboratorio). Se puede reelaborar una pregunta y permite diferentes conjunto de preguntas para usuarios con experiencia y sin ella, y se basa en la propiedad de “preguntar – primero”, el sistema siempre procura primero obtener el valor de un parámetro a partir del usuario.

El diseñador debe proporcionar un medio aceptable de comunicación con el usuario, MYCIN no fue totalmente satisfactorio en ese aspecto, lo cual se resolvió en ONCOCIN.

Facilidades de explicación

MYCIN como muchos otros SE tienen la facilidad de explicar y justificar su funcionamiento, lo cual es útil para funciones educativas. En cualquier momento el usuario puede preguntarle “como” o “porque” , tomo tal decisión. Esto es a través de reglas

Ejemplo:
Si “está nublado” entonces “va a llover”
“Si “va a llover” entonces “coger la capa”

Ahora se le puede pregunta al sistema:
Porque “coger la capa”?
Porque “está nublado” y “va a llover”.

Los SE son el resultado de una serie de consultas entre los constructores del sistema y expertos en el dominio de conocimiento de interés. Este proceso es laborioso y propenso a errores. Los expertos saben normalmente, más de lo que piensan y no siempre pueden expresar fácilmente sus procesos de razonamiento

Ahora veremos un ejemplo muy sencillo de sistema experto

Como ya sabemos los Sistemas Expertos, constan de:
1. Una base de hechos (BH).
2. Una base de conocimientos (BC).
3. Una máquina o motor de inferencias (MI).

Programa de ejemplo (TINAS)

¿Conocen el problema de las tinas?

Se tienen dos tinas, una de 3 gls y otra de 4 gls, ambas vacías y una pila o llave de agua, para ir llenándolas. Se quiere dejar dos galones en la tina de 4 gls, ejecutando las acciones de llenar una tina, vaciar una tina en la otra y botar el contenido de una tina.

(La tina es un recipiente para contener agua)

Aquí les va el programa en Python.

Programa TINAS

#Base de hechos

x=0

y=0

#Maquina de inferencia

for i in range(1,15):

if y==2:

print “Solucion satisfactoria: Hay dos galones en la tina de 4”

break

#Base de conocimientos
#Regla 1:
if x==0 and y==0:

x=3

y=0

print “Llenar la tina de 3 galoes (3,0)”

#Regla 2:
elif x==0 and y==0:

x=0

y=4

print “Lenar la tina de 4 galones (0,4)”

#Regla 3:
elif x==3 and y==0:

x=0

y=3

print “Vaciar la tina de 3 gls en la de 4 gls (0,3)”

#Regla 4:
elif x==0 and y==4:

x=3

y=1

print “Vaciar la tina de 4gls en la tina de 3gls (3,1)”

#Regla 5:
elif x==0 and y==3:

x=3

y=3

print “Llenar la tina de 3gls (3,3)”

#Regla 6:
elif x==3 and y==1:

x=0

y=1

print “Botar el contenido de la tina de 3gls (0,1)”

#Regla 7:
elif x==3 and y==3:

x=2

y=4

print “Vaciar la tina de 3gls en la de 4gls (2,4)”

#Regla 8:
elif x==0 and y==1:

x=1

y=0

print  “Vaciar la tina de 4gls en la de 3gls (1,0)”

#Regla 9:
elif x==2 and y==4:

x=2

y=0

print “Botar el contenido de la tina de 4gls ((2,0)”

#Regla 10:
elif x==1 and y==0:

x=1

y=4

print “Llenar la tina de 4gls (1,4)”

#Regla 11:
elif x==2 and y==0:

X=0

y=2

print “Vaciar la tina de 3gls en la de 4gls (0,2)”

#Regla 12:
elif x==1 and y==4:

x=3

y=2

print “Vaciar la tina de 4gls en la de 3gls”

#No hay solución

else: print “Solucion no encontrada”

Resultado

(se comenzó llenando la tina de 3 galones)

Llenar la tina de 3 gls (3,0)

Vaciar la tina de 3 gls en la de 4 gls (0,3)

Llenar la tina de 3gls (3,3)

Vaciar la tina de 3gls en la de 4gls (2,4)

Botar el contenido de la tina de 4gls ((2,0)

Vaciar la tina de 3gls en la de 4gls (0,2)

Solucion satisfactoria: Hay dos galones en la tina de 4

Observen que el programa consta de una base de hechos, una máquina de inferencia y una base de conocimientos, compuesta por 12 reglas. Noten que las reglas impares se refieren a comenzar llenando la tina de 3 gls y las reglas pares son para el llenado de la tina de 4 gls.

La máquina de inferencia, lo único que hace es recorrer todas las reglas y en caso de que se llegue a la solución detiene el proceso.

La base de hechos inicializa los hechos (pone en cero las variables) y prepara las condiciones para la interfaz con el usuario.

Es bueno destacar que la base de conocimientos (BC) y la máquina de inferencias (MI) están separadas lógicamente (usted puede seguir agregando reglas sin que esto afecte la ejecución del programa), pero físicamente están unidas dentro del mismo programa. En la practica la BC y la MI deben estar separadas lógica y físicamente.

Sistemas Expertos

Sistema-Experto

Durante años la actividad de la Inteligencia Artificial estuvo dedicada a las investigaciones teóricas y al desarrollo de experimentos a través de programas que demostraran “actitudes inteligentes”, con estos programas se pretendía que la máquina jugara ajedrez, demostrara teoremas matemáticos, etc. No fue hasta los años 70 que surgió un nuevo paradigma en la Inteligencia Artificial “los Sistemas Expertos”, cuya función es desarrollar trabajos similares a los que desarrollaría un especialista en un área determinada.

Disponible en Amazon (kindle)

Ver colección de libros sobre Python

 

Introducción a los sistemas expertos

Sistema-Experto
Durante años la actividad de la Inteligencia Artificial estuvo dedicada a las investigaciones teóricas y al desarrollo de experimentos a través de programas que demostraran “actitudes inteligentes”, con estos programas se pretendía que la máquina jugara ajedrez, demostrara teoremas matemáticos (Inteligencia artificial, el futuro del hombre), etc.

No fue hasta los años 70 que surgió un nuevo paradigma en la Inteligencia Artificial los “Sistemas Expertos”, cuya función es desarrollar trabajos similares a los que desarrollaría un especialista en un área determinada, la idea no es sustituir a los expertos, sino que estos sistemas sirvan de apoyo a los especialistas en un “dominio” de aplicación específico.

Estos sistemas expertos son en lo esencial sistemas de computación basados en conocimientos cuyos componentes representan un enfoque cualitativo de la programación. Muchas personas pueden creer que un Sistema Experto (SE) es un sistema compuesto por subsistemas y a su vez estos por otros subsistemas hasta llegar a los programas, y que los SE se miden por la cantidad de programas que contienen (Características de los sistemas expertos). Sin embargo la cantidad no es lo que prima en los SE, si no la cualidad del mismo, esta cualidad está dada por la separación de las reglas que describen el problema (Base de Conocimientos), del programa de control que es quien selecciona las reglas adecuadas (Motor de inferencias).

Podemos decir que un Sistema Experto es una Base de Conocimientos (BC), una Base de Hechos (BH) y un Motor (o Máquina) de Inferencias (MI). Por otra parte estos sistemas no se miden por la cantidad de instrucciones o programas sino por la cantidad de reglas que hay contenida en su Base de Conocimientos (¿Cuáles son los componentes de un sistema experto?)

Para desarrollar los sistemas expertos primero es necesario abordar un área de interés, dentro de esta área se seleccionan a los expertos, que son los especialistas capaces de resolver los problemas en dicha área. Por ejemplo el área de interés de las empresas de proyectos, son precisamente los proyectos y un especialista podría ser un arquitecto, un ingeniero civil, etc. Ahora bien, casi siempre estos especialistas, son expertos en un dominio específico y es sobre este dominio, donde poseen su mayor experiencia (Dominio de Experticidad), por ejemplo un Ing. civil especializado en cimientos.

Una vez seleccionado al experto o a los expertos y estos estén de acuerdo en dar sus conocimientos, comienza a jugar su papel el “Ingeniero de Conocimientos”, que es el encargado de extraerle los conocimientos al experto y darle una representación adecuada, ya sea en forma de reglas u otro tipo de representación, conformando así la base de conocimientos del sistema experto.

Formas de representación de los conocimientos:
Reglas de producción
Redes semánticas
Marcos (Frames).

La forma de representación más usada es por reglas de producción, también llamadas reglas de inferencias. Casi todos los sistemas expertos están basados en este tipo de representación, ahora nos ocuparemos de los sistemas basados en reglas (Conceptos básicos sobre sistemas expertos).

Las reglas de producción son del tipo:
SI Premisa ENTONCES Conclusión (SI A ENTONCES B).

Donde tanto las premisas como la conclusión, no son más que una cadena de hechos conectados por “Y” o por “O”, de forma general sería:

SI Hecho1 Y/O Hecho2 Y/O… HechoN ENTONCES Hecho1 Y/O … HechoN

Los hechos son afirmaciones que sirven para representar conceptos, datos, objetos, etc. Y el conjunto de hechos que describen el problema es la base de hechos.

Ejemplo de hechos:
Juan es un estudiante
Juan tiene 8 años
el perro es blanco
a María le gusta el cine
Pedro prefiere la película
la edad de Luis es de 25 años
Pedro tiene un salario de 200 pesos

Una regla es una combinación de hechos que permite representar conocimientos y sacar inferencias de los mismos.

Ejemplo de reglas:

R1: SI Juan es estudiante Y Juan tiene 8 años Entonces Juan estudia en la primaria.

R2: SI el perro es blanco Y el perro se llama Dinky ENTONCES el perro es de Juan.

R3: SI a María le gusta la película Y Juan prefiere la pelota ENTONCES hacen falta dos televisores

Observe como partiendo de hechos conocidos que describen algún conocimiento se pueden inferir nuevos hechos (nuevos conocimientos), por otra parte la regla #2 (R2), no tiene porque ser totalmente cierta, existe la posibilidad de que el perro sea de Juan, quizás se puede afirmar, si fuéramos a cuantificar esa posibilidad, que el perro pertenece a Juan con una certeza de un 80%, y por último la regla #3 (R3) es dependiente del contexto, ya que aquí se supone que ambos viven juntos y que los programas de TV coinciden (El conocimiento incierto en los sistemas expertos)

La Base de Conocimientos (BC). Son el conjunto de reglas que permiten representar los conocimientos del dominio de experto donde cada regla aisladamente tiene significado propio. Normalmente los conocimientos son de tipo declarativo por lo cual la BC casi siempre es una descripción de los conocimientos del experto, por lo tanto requiere de algún mecanismo que obtenga las inferencias adecuadas para resolver el problema, alguien que seleccione las reglas y las vaya ejecutando, ese alguien es el motor de inferencias.

El Motor de Inferencias (MI) es un programa de control cuya función es seleccionar las reglas posibles a satisfacer el problema, para ello se vale de ciertas estrategias de control sistemáticas o de estrategias heurísticas (.

Estrategias de control sistemático:
Encadenamiento hacia adelante o hacia atrás.
Búsqueda en profundidad o a lo ancho.
Régimen de control irrevocable o por tentativa.

Estas estrategias son de forma sistemática las cuales deben llevar a la solución del problema. Podemos decir que el control sistemático es un programa de control hecho de forma “algorítmica” que aplican una heurística de propósito general cuya función es una exploración exhaustiva y metódica de la base de conocimientos (Sistema experto. La búsqueda de solución).

Estos mecanismos de control son muy generales y a veces resultan ineficientes ya que siguen una secuencia de búsqueda demasiado rígida, para resolver esto se idearon las estrategias de control heurísticas.

Las estrategias de control heurísticas son programas de control que utilizan una heurística más específica y su función es una selección más restringida orientada por las necesidades del problema. Estas estrategias actúan sobre el control sistemático y en ciertos casos toma el control y dirige la búsqueda hacia ciertos criterios rompiendo así el control sistemático, una vez logrado su objetivo le devuelve el control nuevamente al sistemático.

Estrategias de control heurísticas:
Orden de las reglas.
Mayor credibilidad en las reglas.
Menor número de cláusulas no instanciadas.
Mayor número de conclusiones en las reglas.

Podemos decir que un sistema experto, es un sistema informático que utiliza técnicas apropiadas para la representación de conocimientos y la manipulación de este, de forma tal que exhiba el comportamiento de un avezado especialista en un determinado dominio del saber.

 

Sistemas Expertos

Sistema-Experto

Durante años la actividad de la Inteligencia Artificial estuvo dedicada a las investigaciones teóricas y al desarrollo de experimentos a través de programas que demostraran “actitudes inteligentes”, con estos programas se pretendía que la máquina jugara ajedrez, demostrara teoremas matemáticos, etc. No fue hasta los años 70 que surgió un nuevo paradigma en la Inteligencia Artificial “los Sistemas Expertos”, cuya función es desarrollar trabajos similares a los que desarrollaría un especialista en un área determinada.

Disponible en Amazon (kindle)

Ver colección de libros sobre sistemas expertos

Sistemas expertos

Sistemas Expertos

Descripción del libro

Durante años la actividad de la Inteligencia Artificial estuvo dedicada a las investigaciones teóricas y al desarrollo de experimentos a través de programas que demostraran “actitudes inteligentes”, con estos programas se pretendía que la máquina jugara ajedrez, demostrara teoremas matemáticos, etc. No fue hasta los años 70 que surgió un nuevo paradigma en la Inteligencia Artificial “los Sistemas Expertos”, cuya función es desarrollar trabajos similares a los que desarrollaría un especialista en un área determinada.

Los sistemas expertos, son en lo esencial sistemas de computación basados en conocimientos (de ahí que algunos prefieran llamarles sistemas basados en conocimientos) cuyos componentes representan un enfoque cualitativo de la programación, ya que lo que prima no es la cantidad si no la cualidad del mismo, esta cualidad está dada por la separación de las reglas que describen el problema (Base de Conocimientos), del programa de control que es quien selecciona las reglas adecuadas (Motor de inferencias).

En el libro se recoge mi experiencia como profesor de inteligencia artificial impartiendo cursos de inteligencia artificial y robótica, sistemas expertos y programación en Prolog. En el texto se incluyen los siguientes temas: Sistemas de producción, estrategia de búsqueda, representación del conocimiento, razonamiento con incertidumbre y sistemas expertos: aplicaciones y ejemplos.

En el último capítulo se explican los sistemas expertos que han servido de paradigma para la construcción de las aplicaciones posteriores: DENDRAL y MYCIN. También, se menciona el sistema experto Termi que desarrollé para la selección de hornos para el tratamiento térmico así como un ejemplo sobre un sistema experto sencillo, elaborado en Javascript.

Ya está disponible en Kindle Amazon

¿Cuáles son los componentes de un sistema experto?

Los sistemas expertos se convirtieron en la aplicación más importante dentro de la inteligencia artificial

COMPOENTE460

La inteligencia artificial luego de muchos años de dedicarse a investigaciones puramente teóricas enfocadas en el desarrollo de programas que fueran capaces de mostrar una inteligencia similar a la humana, tales como  jugar ajedrez, demostrar teoremas matemáticos o que entendieran el lenguaje natural entre otras muchas líneas de investigación en las que no se lograron los resultados esperados, lo cual trajo un sentimiento de fracaso que llevó a los investigadores a ocuparse de campos más específicos y a concentrarse en áreas de aplicación que reportaran utilidades de ahí los sistemas expertos, cuya función ha sido desarrollar trabajos similares a los que desarrollaría un especialista en su área.

Podemos decir que un sistema experto consiste en una base de conocimientos, una base de hechos y un motor (o máquina) de inferencias. Por otra parte estos sistemas no se miden por la cantidad de instrucciones o programas sino por la cantidad de reglas que hay contenida en su base de conocimientos.

La Base de Conocimientos (BC), es el conjunto de reglas que permiten representar los conocimientos del dominio de experto, donde cada regla aisladamente tiene significado propio. Normalmente los conocimientos son de tipo declarativo por lo cual la BC casi siempre es una descripción de los conocimientos del experto y requiere de algún mecanismo que obtenga las inferencias adecuadas para resolver el problema, sea capaz de seleccionar las reglas y que las vaya ejecutando: el motor de inferencias.

El Motor de Inferencias (MI) es un programa de control cuya función es seleccionar las reglas posibles a satisfacer el problema, para ello se vale de ciertas estrategias de control sistemáticas o de estrategias heurísticas. La estrategia de control sistemática es un programa de control hecho de forma algorítmica que aplica una heurística de propósito general cuya función es una exploración exhaustiva y metódica de la base de conocimientos.

La Base de Hechos (BH), también conocida como memoria de trabajo o base de datos global, es la que contiene los datos de partida y los criterios de parada, la misma se va actualizando durante la ejecución del sistema.

Además de los componentes anteriores los sistemas expertos necesitan interactuar con el usuario y con el experto.

Interface con el usuario, es la que facilita el diálogo con el usuario, permite hacerle preguntas al sistema e incluso obtener conocimientos análogos a los del experto. Las explicaciones pueden ser obtenidas de la base de hechos donde se almacenan los pasos para llegar a la solución.

Interface con el experto, permite al experto consultar los conocimientos almacenados en la base de conocimientos y da la posibilidad de incluirle nuevos conocimientos. Su objetivo es que el experto pueda introducir directamente sus conocimientos en la máquina sin necesidad de ver al ingeniero que desarrolló el sistema.

Algunas de las aplicaciones más importantes se remontan al sistema Mycin, el cual dio lugar a la mayoría de las aplicaciones en medicina y fue pionero en el tratamiento de la incertidumbre, que sirvió de patrón a los motores de inferencia de propósitos general (Shell). Otro de los destacados fue Dendral cuya aplicación fue usada en la química, la prospección geológica entre otras muchas aplicaciones.

Los sistemas expertos que posteriormente fueron bautizados como sistemas basados en conocimientos y actualmente, bajo la influencia de IBM, se les llama sistemas cognitivos, siendo Watson su mayor representante, están teniendo un nuevo renacimiento y todo indica una nueva era para inteligencia artificial en general y en particular para los sistemas expertos.

Conceptos básicos sobre sistemas expertos

En el artículo ¿Qué es un Sistema Experto? Vimos que consta de una Base de Conocimientos (BC), una Base de Hechos (BH) y un Motor (o Máquina) de Inferencias (MI). Y que estos sistemas no se miden por la cantidad de instrucciones o programas sino por la cantidad de reglas que hay contenida en su Base de Conocimientos.

componentese

Veamos cómo se representan las reglas

Representacion a través de reglas:

Si H1 y/o H2 y/o H3… entonces H4 y/o H5…

Ejemplos:
Si H1 y H2 entonces H3 y H4.
Si H3 o H4 entonces H5 y H6 o H7.
Si H2 y H7 o H6 entonces H9.

Vimos que en prolog las reglas del tipo:
Si H1 y H2 y H3,… entonces Hc (Si se cumplen todos los hechos entonces se cumple la conclusión).

Se representan como:
Hc si H1 y H2 y H3… (Para que se cumpla la conclusion tienen que cumplirse los siguientes hechos).

Y la sintaxis es la siguiente:
Hc :- H1, H2, H3, …

Donde los hechos son predicados que deben cumplirse.

R1: Si X>3 y Y=5 entonces Z =3 y A<5.

En caso que X no sea mayor que 3 la regla falla y se buscara otra regla. En esta caso debe cumplirse ambas condiciones (para la X y la Y)..
Si la regla se cumple se ejecuta la acción para Z y A.

R2: Si X2 entonces Z = 7

Aquí si la primera condición falla (X<5) se pasa la segunda condición. Basta con que se cumpla una de las dos condiciones.

Los hechos son afirmaciones que se refieren a los conceptos (clases y objetos) y a las relaciones (atributos) entre ellos.

Ejemplos de representación de los hechos en diferentes aplicaciones de la IA.

MYCIN

el organismo     es un       bacteroride

<sujeto>       <relación>   <concepto>

la coloración      del organismo     es gram+

<atributo>           <sujeto>            <valor>

DENDRAL

resonancia espectral con numero atómico igual a numero

<sujeto>                                <atributo>                       <valor>

M1 (shell)

Mejor color = tinto
<expresión> = <valor>

PROLOG

Gusta (maria, tenis)
<relación> (<concepto>, <concepto>)

EXSYS (shell)

<calificador (terminado en verbo)>  <valor>

El costo de la computadora es el factor de mayor importancia

Ejemplos de reglas:

Regla 1: Si tiene espina dorsal
Y tiene cola horizontal
Y tiene un agujero para respirar
Y tiene sangre caliente.
Y los pequeños son alimentandos con leche materna
Y los hijos nacen directamente vivos
Entonces es un cetáceo.

Regla 2: Si es un cetáceo
Y mide mas de 25 pies
Entonces es una ballena

Regla 3: Si es un cetáceo
Y mide aproximadamente 6 pies
Y tiene la aleta tope vertical
Y tiene una nariz roma-pequeña
Y vive cerca de las costas
Entonces es una marsopa

Regla 4: Si es un cetáceo
Y mide aproximadamente 6 pies
Y tiene la aleta tope vertical
Y tiene una nariz en forma de pico
Y vive en el mar
Entonces es un delfín

Regla 5: Si tiene espina dorsal
Y tiene una aleta vertical
Y respira a través de branquias
Entonces es un pez.

Regla 6: Si es un pez
Y tiene la aleta tope triangular
Y tiene la boca debajo de la cabeza
Entonces es un tiburón

Observen que definieron las reglas para los cetáceos y a partir de esta se definió al delfín, la ballena, etc. Igual sucedió para los peces.

¿Cómo buscan los sistemas expertos?

Sabemos dado un estado inicial, se van generando estados a través de la aplicación de un conjunto de reglas, las cuales al aplicarse originan un nuevo estado, así sucesivamente hasta alcanzar el estado final.

Habrá en consecuencia un estado inicial y un estado final que serán definidos como:

1. Una base de hechos en la cual aparecerá un hecho que satisface ciertas características.
2. Una base de hechos en la cual habrán desaparecido todos los hechos a establecer.
3. Una base de hechos tal que ninguna regla puede aportar una nueva modificación.

Los puntos 1 y 3 son comúnmente adoptados por los motores de encadenamiento hacia delante, mientras el 2 es adoptado por motores con encadenamiento hacia atrás.

Ejemplo de búsqueda primero en profundidad

Tomemos el ejemplo de las tinas, donde se parte de dos tinas (recipientes para contener agua) y se quiere lograr que la de 4 galones tenga 2 galones. Las tinas no tienes marcas que indiquen la cantidad de galones.

Vamos a definir algunas reglas de forma general:
Restricciones
1) “Si una tina se lleno hasta el tope, no llenar la otra”.
2) “Si una tina se acaba de llenar hasta el tope, no se puede botar”.
Orden de las reglas:
1ro. Aplicar reglas para el criterio de solución.
2do. Aplicar reglas para llenar las tinas.
3ro. Aplicar reglas para vaciar de una para otra.
4to. Aplicar reglas para botar el contenido de una de ella.
Criterio de solución
R1: Si (la tina de 4) (tiene) (dos galones) entonces SOLUCION.
R2: Si (la tina de 3) (tiene) (dos galones) y (la tina de 4) (esta vacia) entonces (vaciar el contenido) (para) (la tina de 4)
R3: Si (la tina de 3) (tiene) (dos galones) y (la tina de 4) (no) (esta vacia) entonces (botar el contenido de) (la tina de 4)

Veamos cómo se va efectuando la búsqueda paso a paso

Estado inicial: (0,0) ambas tinas vacías
Estado 1: (0,0) -> (0,4) Se llena una de las tinas (la de 4 galones).
Estado 2: (0,4) -> (3,1,) Se vacía el contenido de la de 4 en la de 3 galones.
Estado 3: (3,1) -> (0,1) Se bota el contenido de la tina de 3 galones
Estado 4: (0,1) -> (1,0) Se vacía el contenido de la de 4 en la de 3 galones.
Estado 5: (1,0) -> (1,4) Se llena la tina de 4 galones.
Estado 6: (1,4) -> (3,2) Se vacía la tina de 4 en la de 3 galones
Estado final (3,2) Se alcanza la solución al quedar 2 galones en la tina de 4

Pueden ver ese ejemplo en ejecute un sistema sistema experto en HTML