Está en la página 1de 7

SISTEMAS EXPERTOS.

Materia:

Inteligencia Artificial

CBSA*

18/05/2015

Introduccin

El presente ensayo consiste en conocer sistemas expertos ver, ejemplos, describir


alguno en especial Drools, asi como tambin ver y ejemplificar como poder implementarlo en
lenguaje java.

Los ejemplos de este captulo son muy simples y tienen el propsito de mostrar cmo
incrustar Drools en sus aplicaciones Java y mostrarle algunos trucos para el uso de
encadenamiento hacia adelante sistemas basados en reglas.

CBSA*

18/05/2015

Sistemas expertos
Drools es un lenguaje especfico de dominio (DSL) que intenta proporcionar una sintaxis
que es ms fcil de usar que un lenguaje de programacin de propsito general.
Al utilizar java en el Eclipse es recomendando utilizar los plugins Eclipse Drools Workbench
que ayudan a la creacin de proyectos y entender la sintaxis del lenguaje regla Drools y
puede generar automticamente una pequea demostracin que voy a ir ms en detalle en
las dos secciones siguientes.
Los sistemas de encadenamiento comienzan con un conjunto de hechos conocidos, y
aplican reglas para trabajar hacia la solucin de uno o ms objetivos.
Un enfoque alternativo es utilizar encadenamiento hacia atrs en Prolog estos sistemas
comienzan con objetivo final y tratar de trabajar hacia atrs hacia los hechos conocidos a la
actualidad.
Desarrollo Drools es interactivo que nos permite trabajar en un ambiente donde se puede
aadir de forma rpida y cambiar las reglas y los casos de prueba, volver a ejecutar.
Sistemas de Produccin
Sistemas de produccin es un nombre ms preciso para los sistemas expertos.
Las producciones son reglas para la transformacin de estado. Por ejemplo, teniendo en
cuenta las tres reglas de produccin:

Entonces, si un sistema de produccin se inicializa con el estado A, el estado D se puede


derivar mediante la aplicacin de estas tres reglas de produccin en orden. La forma de
estas reglas de produccin es:
O
La mayor parte de la potencia de un sistema basado en normas proviene de la capacidad de
utilizar las variables de modo que el lado izquierdo (LHS) patrones puede coincidir con una
variedad de hechos conocidos (llamados memoria de trabajo en Drools). Los valores de
estas variables establecidas en el proceso de correspondencia LHS se sustituyen por las
variables del lado derecho (RHS) patrones.
Sistemas de reglas de produccin son mucho menos expresivos que razonadores estilo
Descripcin Lgica.
Los beneficios de los sistemas de reglas de produccin son:
Que ellos deben tener una mayor eficiencia en tiempo de ejecucin
Son ms fciles de usar - una curva de aprendizaje ms pequeo.
Las reglas de lenguaje Drools
La sintaxis bsica (dejando de lado los componentes opcionales) de una regla Drools es:

CBSA*

18/05/2015

Cuando utiliza Eclipse Drools Workbench y crea un nuevo proyecto de


demostracin, el banco de trabajo crear automticamente para usted:
Sample.drl - un archivo de reglas muestra.
com.sample.Drools Test.java - define: un sencillo mensaje Java POJO ("Plain Old Java
Objects") clase que se utiliza en el archivo de reglas Sample.drl, un mtodo de utilidad para
las reglas de carga, y un mtodo principal que carga las reglas y crea una instancia del
mensaje clase que "fire" la primera regla en Sample.drl.

Usando Drools en aplicaciones Java


Observando las reglas de ejemplo el archivo Sample.drl mostrado anteriormente, el cual se
genera automticamente cuando se crea un proyecto de demostracin con el Eclipse Drools
Workbench.
Esta funcin principal es un ejemplo que muestra cmo utilizar un paquete de reglas definido
en un archivo de origen regla.
Ejemplo sistema experto Drools: Bloques mundial
Este ejemplo introduce el tema de la "resolucin de conflictos", y (desafortunadamente) que
demuestra que incluso la solucin de problemas sencillos con sistemas basados en reglas
puede ser difcil. Debido a la dificultad de desarrollar y depurar regla basada en sistemas,
que son los mejores para las aplicaciones que tienen tanto un alto valor de negocio y oferta
una oportunidad para codificar el conocimiento del negocio o de la aplicacin de expertos en
reglas. Por lo tanto, el ejemplo en la seccin siguiente es un ejemplo ms de la vida real de
buena aplicacin de sistemas expertos, pero aprendern tcnicas valiosas en este
ejemplo. En el inters de honestidad intelectual, debo decir que los problemas generales
bloques mundiales, como el "Torres de Hanoi" problema problemas y mundiales bloque
como el que est en esta seccin son por lo general fcil de resolver utilizando tcnicas de
bsqueda primero en amplitud.
Modelos de objetos POJO para Bloques Mundial Ejemplo
CBSA*

18/05/2015

Se utilizan tres clases POJO siguientes:


La primera clase POJO bloque representa el estado de un bloque.
La segunda clase POJO se utiliza para representar los estados anteriores de bloques
a medida que se movan como las reglas.
La tercera clase POJO se utiliza para representar un estado objetivo de los bloques
que somos tratando de llegar.

Ejemplo Reglas Drools para Bloques Mundial


Necesitamos cuatro reglas para este ejemplo y que se enumeran a continuacin:

Ponemos las reglas en el mismo paquete Java como el cdigo de soporte Java.
- La primera regla no tiene condiciones previas, as que siempre puede disparar.
- La siguiente regla busca situaciones en las que es posible mover un bloque con unas
algunas condiciones.
- La siguiente regla busca oportunidades para eliminar.
- La siguiente regla comprueba si el objetivo actual es satisfecho en cuyo caso se
detiene el motor Drool.
Notas sobre el Arte de la Construccin de Sistemas Expertos
Puede parecer que los sistemas expertos basados en reglas tienen un montn de gastos
generales de programacin; es decir, parecer excesivamente difcil de resolver problemas
sencillos utilizando sistemas produccin. Sin embargo, para la codificacin de los grandes
problemas mal estructurados, sistemas de produccin proporcionan una notacin
conveniente para recoger juntos lo que de otro modo sera demasiado grande una coleccin
de datos no estructurados y reglas heursticas (Sistemas Expertos de programacin en
OPS5: Una introduccin a la programacin basada en reglas, Brownston et al., 1985).
Como una tcnica de programacin, la escritura sistemas expertos basados en reglas no es
para todos.
Algunos programadores encuentran la programacin basada en reglas para ser engorroso,
mientras que a otros les resulta una buena opcin para resolver ciertos tipos de problemas.
Animo al lector a pasar un buen rato experimentando con Drools, tanto con los ejemplos de
este captulo, y los muchos ejemplos en el paquete de distribucin Drools y documentacin.
Antes de iniciar un proyecto moderado o grande sistema experto, hay varios pasos que
recomiendo:

Escriba una descripcin detallada del problema a resolver.

CBSA*

18/05/2015

Decida qu elementos de datos estructurados que describen mejor el espacio del


problema.
Trata de romper el problema en mdulos distintos de normas; si es posible, tratar de
desarrollar y probar estos mdulos ms pequeos de forma independiente,
preferiblemente un archivo de fuente por mdulo.
Planee en la escritura de reglas especficas que ponen a prueba las partes del
sistema inicializando la memoria de trabajo para las pruebas especficas para los
distintos mdulos; estas pruebas sern muy importantes cuando se prueban todos los
mdulos entre s porque las pruebas de que funcionan correctamente para un solo
mdulo pueden fallar cuando todos los mdulos se cargan debido a interacciones de
reglas inesperados.

Produccin modelo de sistemas con bastante precisin el comportamiento de estmulorespuesta en la gente. El lado izquierdo (LHS) trminos representan los datos ambientales
que desencadenan una respuesta o accin representada por el lado derecho (RHS) trminos
en reglas de produccin. Tipos de estmulo-respuesta simple de reglas de produccin
podran ser adecuadas para modelar comportamientos simples, pero nuestro objetivo al
escribir los sistemas expertos es para codificar el conocimiento profundo y la capacidad de
tomar decisiones complejas en un dominio de problema muy estrecha (o limitada). Para
modelar las habilidades de toma de decisiones complejas, tambin a menudo que aadir la
funcionalidad de control de nivel superior a los sistemas expertos. Este nivel ms alto, o el
control de meta, pueden ser el control de mdulos de reglas que estn activos.

CBSA*

18/05/2015

Conclusin
En conclusin de la informacin presentada anteriormente es un tema muy
importante y muy bien especificado las normas se rigen de 4 reglas que
tenemos que cumplir.
Especificamos lo que son las variables LHS (del lado izquierdo) y las variables
del lado derecho (RHS).
En si lo que nos queda es que debemos usar los sistemas de produccin,
cuando sean adecuados, y si no, utilizar un sistema de representacin del
conocimiento y el razonamiento ms expresivo.
A travs de esta informacin nos queda el reconocer en que momento aplicar y
sobre todo cuando.
Ms que nada es una gua para saber implementar este sistema experto en el
lenguaje que tenemos como base en el transcurso de nuestra carrera JAVA.

CBSA*

18/05/2015

También podría gustarte