Вы находитесь на странице: 1из 19

INTELIGENCIA ARTIFICIAL

GRADO INGENIERA INFORMTICA

UNIDAD 4 - ACTIVIDAD 1:
Sistema experto jurdico con

AUTOR:
DAVID SNCHEZ RUIZ N alumno: 21235597

Sistema experto jurdico con PROLOG

Versin 1.0

CONTROL DE DOCUMENTACIN

Versin 1.0

Fecha 11-03-2013

Resumen de los cambios producidos Creacin del documento.

Realizado por: AUTOR Fecha: 11-03-2013

Aprobado por: Fecha: dd-mm-aaaa

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG

Versin 1.0

NDICE
1. INTRODUCCIN ........................................................................................................................ 4 1.1. 1.2. 2. 3. PROPOSITO ....................................................................................................................... 4 OBJETIVOS ........................................................................................................................ 4

ACTIVIDADES A REALIZAR .................................................................................................... 4 SISTEMA EXPERTO JURDICO CON PROLOG ................................................................. 5 3.1. 3.2. PROLOG .............................................................................................................................. 6 DATOS, REGLAS Y FACTORES DE CERTEZA .......................................................... 8 Archivo pl ........................................................................................................................... 11 Consultas realizadas ........................................................................................................ 13

4.

SOLUCIN PROPUESTA ...................................................................................................... 10 4.1. 4.2.

5.

CONCLUSIONES ..................................................................................................................... 19

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


1. INTRODUCCIN
1.1. PROPOSITO

Versin 1.0

A continuacin se detalla la elaboracin de la actividad1 de la unidad 4 de la asignatura de Inteligencia Artificial.

1.2. OBJETIVOS
Practicar el uso de ProLog como lenguaje para el desarrollo de sistemas de ayuda a la toma de decisiones. Entender cmo funciona un sistema de representacin del conocimiento basado en reglas.

2. ACTIVIDADES A REALIZAR
En la actividad anterior con RapidMiner se prob el uso de diversos algoritmos de aprendizaje automtico en un sistema de diagnstico de cncer de mama donde se peda generar y evaluar sistemas de Aprendizaje basados en reglas y basados en rboles de decisin. En esta prctica lo que vamos a hacer es implementar el modelo basado en reglas o en rboles de decisin usando ProLog. Para ello hay que realizar lo siguiente: 1) Descargar e instalar la herramienta SWI-ProLog: (http://www.swi-prolog.org/Download.txt). 2) Implementar hechos y reglas basndonos en las que obtuvimos en RapidMiner y generar fichero .pl. 3) Importar a ProLog un fichero de consulta .pl. 4) Aadir algunos factores de certidumbre a las reglas importadas.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


3. SISTEMA EXPERTO JURDICO CON PROLOG

Versin 1.0

Los sistemas expertos (SE) emulan el razonamiento de un experto en un dominio concreto y se busca una mejor calidad y rapidez en las respuestas dando as lugar a una mejora de la productividad del experto. La aplicacin de un sistema experto, permitirn a los computadores poder extraer de ellos su verdadero potencial ya que con ello ser posible resolver problemas operacionales y comerciales difciles e importantes. Un Sistema Experto (SE) puede realizar en una determinada aplicacin las mismas funciones de una persona de amplia experiencia. Ventajas: Permanencia, replicacin, rapidez, bajo costo, trabajar en entornos peligrosos, fiabilidad, consolidar varios conocimientos y apoyo Acadmico. Limitaciones: Sentido comn, lenguaje natural, capacidad de aprendizaje, perspectiva global, capacidad sensorial, flexibilidad y conocimiento no estructurado. Estructura bsica de un SE:
Base de conocimientos (BC): Contiene conocimiento modelado extrado del dilogo con un experto. Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el anlisis. Motor de inferencia: Modela el proceso de razonamiento humano. Mdulos de justificacin: Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusin. Interfaz de usuario: es la interaccin entre el SE y el usuario, y se realiza mediante el lenguaje natural.

Tipos de SE:
Basados en reglas previamente establecidas. Basados en casos o CBR (Case BasedReasoning). Basados en redes bayesianas.

En cada uno de ellos, la solucin a un problema planteado se obtiene:


Aplicando reglas heursticas apoyadas generalmente en lgica difusa para su evaluacin y aplicacin. Aplicando el razonamiento basado en casos, donde la solucin a un problema similar planteado con anterioridad se adapta al nuevo problema. Aplicando redes bayesianas, basadas en estadstica y el teorema de Bayes. INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


3.1. PROLOG

Versin 1.0

Es un lenguaje para programar artefactos electrnicos mediante el paradigma lgico con tcnicas de produccin final interpretada. Proviene del francs PROgrammation en LOGique. PROLOG es un lenguaje de programacin declarativo, que est basado en formalismos abstractos (lgica de predicados de primer orden), y su semntica no depende de la mquina en la que se ejecutan. Las sentencias en estos lenguajes se entienden sin necesidad de hacer referencia al nivel mquina para explicar los efectos colaterales. Otra ventaja es que se pueden desarrollar y comprobar poco a poco, adems de ser sintetizados o transformados sistemticamente. PROLOG es un lenguaje de programacin muy til para resolver problemas que implican objetos y relaciones entre objetos, por ejemplo usado en dominios legales, mdicos, financieros, etc. La ejecucin de los programas en ProLog se hace mediante el encadenamiento hacia atrs en primero en profundidad, donde ProLog compila y proporciona una inferencia muy rpida. Est basado en los siguientes mecanismos bsicos:
Unificacin Estructuras de datos basadas en rboles Backtracking automtico

La sintaxis del lenguaje consiste en lo siguiente:


Declarar hechos sobre objetos y sus relaciones Hacer preguntas sobre objetos y sus relaciones Definir reglas sobre objetos y sus relaciones

Los hechos PROLOG: Los hechos acaban siempre con punto y expresan relaciones entre objetos, donde los nombres de las relaciones y los argumentos que se refieren a objetos o personas concretas se escribirn con minscula. Una base de datos PROLOG es un conjunto de hechos junto con un conjunto de reglas. Por ejemplo, si queremos expresar el hecho de que "un coche tiene ruedas". Este hecho, consta de dos objetos, "coche" y "ruedas", y de una relacin llamada "tiene". La forma de representarlo en PROLOG es: tiene(coche,ruedas).

Al final de un hecho debe ir un punto (el carcter ".").

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


Las preguntas PROLOG:

Versin 1.0

Sobre un conjunto de hechos se pueden realizar una serie de preguntas. PROLOG busca en su base de datos si existe un hecho que se pueda unificar con el hecho que aparece en la pregunta. PROLOG contestar SI si encuentra ese hecho y NO si no lo encuentra. Las reglas PROLOG Las reglas se utilizan en PROLOG para significar que un hecho depende de uno o ms hechos. Son la representacin de las implicaciones lgicas del tipo p ---> q (p implica q). Una regla consiste en una cabeza y un cuerpo, unidos por el signo ":-". La cabeza est formada por un nico hecho. El cuerpo puede ser uno o ms hechos separados por una coma (","), que acta como el "y" lgico. Las reglas finalizan con un punto ("."). Es un coche(X) ----> | tiene(X,ruedas) : tiene(X,ruedas) | es un coche(X). Instalacin de SWI-ProLog Lo primero que debemos hacer es descargar e instalar la herramienta SWI-ProLog desde la web anteriormente citada, en mi caso lo tengo instalado en un ordenador de 32 bits con Microsoft Windows 7.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


Abrir fichero de consulta en SWI-ProLog Pinchar en File Consult ..

Versin 1.0

3.2. DATOS, REGLAS Y FACTORES DE CERTEZA


DATOS Para el desarrollo de esta prctica se nos proporciona de la prctica de la unidad 3 de RapidMiner, una coleccin con 569 ejemplos de pruebas realizadas a distintas personas y para cada ejemplo, si el resultado ha sido maligno (M) o benigno (B). La coleccin proporcionada est divida en 2 ficheros: un .names que explica los datos, y un .data con los ejemplares: El fichero wdbc.names contiene la descripcin de los datos que se van a tratar. El fichero wdbc.data contiene todos los datos de las pruebas mdicas en bruto. Los tipos de datos o columnas se dividen por comas.

Los datos del fichero wdbc.data los utilizar para que se puedan realizar consultas en ProLog introduciendo los valores por teclado y den como resultado algunas de estas seis reglas siguientes.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


REGLAS

Versin 1.0

Reglas obtenidas por el algoritmo de reglas con operador rule induction en RapidMiner:

NOTA: Tambin se pueden utilizar otros valores por teclado que no sean del fichero wdbc.data. FACTORES DE CERTEZA Para los factores de certeza me he apoyado en la frmula del temario:

En la que cuando la regla a tratar solo tiene un componente como es el caso de las reglas 1, 2 y 4, los factores de certeza los calculo de la siguiente manera, tomando como ejemplo la regla n 1:
FC is 311 / 320 * 100 * FCWP,

FC es la variable que recoje el resultado, (311/320) es el factor de certeza de la regla que lo multiplico por 100 y por el factor de certeza del parmetro worst_perimeter el cual el usuario lo introduce por teclado. Para las reglas 3 y 5 que tienen doble condicionante lo calculo por ejemplo para la regla 3:
FC is 33 / 35 * FCWA, FC2 is FC + FCMT * (1 - FC), FCRES is FC2 * 100,

FC es la variable que recoje el resultado, (33/35) es el factor de certeza de la regla que lo multiplico por el factor de certeza del primer parametro worst_area que el usuario introduce por teclado, en FC2 sumo FC con el factor de certeza del segundo parmetro mean_texture y lo multiplico por (1-FC).

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


4. SOLUCIN PROPUESTA

Versin 1.0

Se disea programa en ProLog para diagnosticar si tiene cncer o no un paciente a raz de los resultados de unas pruebas mdicas. Cuando cargamos el programa unidad4.pl, segn instrucciones vitas anteriormente, nos sale esta pantalla, donde resalto en azul que nos indica que el programa se ha cargado correctamente, de lo contrario mostrara algn mensaje en rojo de error, se detalla un comentario y que se teclee inicio. Para comenzar la prueba:

Pulsamos inicio. paciente:

y nos pide que introduzcamos datos referentes a las pruebas del

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG

Versin 1.0

Una vez introducidos todos los datos, el sistema mostrar el diagnostico de benigno (no tiene cncer) y maligno (si tiene cncer) ms datos de factor de certeza.

4.1. Archivo pl
A continuacin se detalla el desarrollo del cdigo en ProLog mediante el archivo unidad4.pl:

/* ---- INTELIGENCIA ARTIFICIAL (DAVID SNCHEZ RUIZ) ---/ Prctica unidad 4 - Sistema experto jurdico con SWI-PROLOG unidad4.pl*/ % --PRINCIPAL-mensaje :nl,writeln('PRCTICA UNIDAD4 (PROLOG) .... Cargada !!'),nl, nl,writeln('Esta prctica realiza un diagnostico de cncer con datos de un paciente.'),nl, nl,writeln('Teclee "inicio." para comenzar la consulta......'),nl. :- mensaje. inicio :nl,writeln('INTRODUZCA DATOS DEL PACIENTE:'),nl, nl,write('ID paciente...........: '),read(ID), nl,write('worst perimeter.......: '),read(WP), nl,write('Factor certeza WP.....: '),read(FCWP), nl,write('worst concave points..: '),read(WCP), nl,write('Factor certeza WCP....: '),read(FCWCP), nl,write('worst area............: '),read(WA), nl,write('Factor certeza WA.....: '),read(FCWA), nl,write('mean texture..........: '),read(MT), nl,write('Factor certeza MT.....: '),read(FCMT), nl,write('mean concave points...: '),read(MCP), nl,write('Factor certeza MCP....: '),read(FCMCP), nl,write('error concave points..: '),read(ECP), nl,write('Factor certeza ECP....: '),read(FCECP), nl,write('worst concavity.......: '),read(WC), nl,write('Factor certeza WC.....: '),read(FCWC), regla(ID,WP,WCP,WA,MT,MCP,ECP,WC,FC,FC2,FCRES,FCWP,FCWCP,FCWA,FCMT,FCMCP,FCECP,FCWC).

% --BASE DE HECHOS INICIAL-tiene(paciente,cancer). notiene(paciente,cancer).

% --REGLAS Y FACTORES DE CERTEZA-regla(ID,WP,WCP,WA,MT,MCP,ECP,WC,FC,FC2,FCRES,FCWP,FCWCP,FCWA,FCMT,FCMCP,FCECP,FCWC):notiene(paciente,cancer), WP =< 102.05, FC is 311 / 320 * 100 * FCWP, nl,write('Se cumple la 1 regla: worst perimeter =< 102.050 valor' : WP), nl,write('Diagnostico de cancer' : 'BENIGNO'), nl,write('Factor de certeza' : FC),write(' %'). regla(ID,WP,WCP,WA,MT,MCP,ECP,WC,FC,FC2,FCRES,FCWP,FCWCP,FCWA,FCMT,FCMCP,FCECP,FCWC):tiene(paciente,cancer), WCP > 0.151, FC is 161 / 163 * 100 * FCWCP, nl,write('Se cumple la 2 regla: worst concave points > 0.151 valor' : WCP), nl,write('Diagnostico de cancer' : 'MALIGNO'), nl,write('Factor de certeza' : FC),write(' %'). regla(ID,WP,WCP,WA,MT,MCP,ECP,WC,FC,FC2,FCRES,FCWP,FCWCP,FCWA,FCMT,FCMCP,FCECP,FCWC):notiene(paciente,cancer), WA =< 957.45, MT =< 20.205, FC is 33 / 35 * FCWA,

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


FC2 is FC + FCMT * (1 - FC), FCRES is FC2 * 100, nl,write('Se cumple la 3 regla: worst area =< 957.45 and mean texture =< 20.205 valores' : WA - MT), nl,write('Diagnostico de cancer' : 'BENIGNO'), nl,write('Factor de certeza' : FCRES),write(' %'). regla(ID,WP,WCP,WA,MT,MCP,ECP,WC,FC,FC2,FCRES,FCWP,FCWCP,FCWA,FCMT,FCMCP,FCECP,FCWC):tiene(paciente,cancer), MCP > 0.051, FC is 26 / 26 * 100 * FCMCP, nl,write('Se cumple la 4 regla: mean concave points > 0.051 valor' : MCP), nl,write('Diagnostico de cancer' : 'MALIGNO'), nl,write('Factor de certeza' : FC),write(' %').

Versin 1.0

regla(ID,WP,WCP,WA,MT,MCP,ECP,WC,FC,FC2,FCRES,FCWP,FCWCP,FCWA,FCMT,FCMCP,FCECP,FCWC):tiene(paciente,cancer), ECP =< 0.010, WC > 0.113, FC is 13 / 13 * FCECP, FC2 is FC + FCWC * (1 - FC), FCRES is FC2 * 100, nl,write('Se cumple la 5 regla: error concave points =< 0.010 and worst concavity > 0.113 valores' : ECP - WC), nl,write('Diagnostico de cancer' : 'MALIGNO'), nl,write('Factor de certeza' : FCRES),write(' %'). regla(ID,WP,WCP,WA,MT,MCP,ECP,WC,FC,FC2,FCRES,FCWP,FCWCP,FCWA,FCMT,FCMCP,FCECP,FCWC):notiene(paciente,cancer), nl,write('Se cumple la 6 regla: else B'), nl,write('Diagnostico de cancer' : 'BENIGNO').

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


4.2. Consultas realizadas
Consulta paciente cumplindose regla n 1:

Versin 1.0

Como puede observarse con estos datos, el sistema comienza a analizar por la regla n 1 y como se cumple, ya no sigue con la siguiente (las descarta), tambin muestra el tanto por ciento de factor de certeza obtenido y el resultado del diagnostico que es BENIGNO.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


Consulta paciente cumplindose regla n 2:

Versin 1.0

Como puede observarse con estos datos, el sistema comienza a analizar por la regla n 1, como no se cumple, pasa a tratar la regla n 2 y esta si se cumple, con lo cual ya no sigue con la siguiente (las descarta), tambin muestra el tanto por ciento de factor de certeza obtenido y el resultado del diagnostico que es MALIGNO.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


Consulta paciente cumplindose regla n 3:

Versin 1.0

Como puede observarse con estos datos, el sistema comienza a analizar por la regla n 1, como no se cumple, pasa a tratar la regla n 2, como no se cumple, pasa a tratar la regla n 3 y esta si se cumple, con lo cual ya no sigue con la siguiente (las descarta), tambin muestra el tanto por ciento de factor de certeza obtenido y el resultado del diagnostico que es BENIGNO.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


Consulta paciente cumplindose regla n 4:

Versin 1.0

Como puede observarse con estos datos, el sistema comienza a analizar por la regla n 1, como no se cumple, pasa a tratar la regla n 2, como no se cumple, pasa a tratar la regla n 3, como no se cumple, pasa a tratar la regla n 4 y esta si se cumple, con lo cual ya no sigue con la siguiente (las descarta), tambin muestra el tanto por ciento de factor de certeza obtenido y el resultado del diagnostico que es MALIGNO.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


Consulta paciente cumplindose regla n 5:

Versin 1.0

Como puede observarse con estos datos, el sistema comienza a analizar las cuatro primeras reglas, no se cumplen y pasa a tratar la regla n 5 que esta si se cumple, con lo cual ya no sigue con la siguiente (las descarta), tambin muestra el tanto por ciento de factor de certeza obtenido y el resultado del diagnostico que es MALIGNO.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


Consulta paciente cumplindose regla n 6:

Versin 1.0

En este caso como no se cumplen ninguna de las cinco primeras reglas del if, pues el programa ejecuta la regla 6 del else, con lo cual el resultado del diagnostico es BENIGNO.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Sistema experto jurdico con PROLOG


5. CONCLUSIONES

Versin 1.0

Esta prctica me ha costado bastante, primero entender lo que se estaba pidiendo para dar un enfoque y segundo cuando ya entenda lo que haba que hacer, he tenido que aprender el lenguaje de ProLog (nuevo para m), pero leyendo apuntes, buscando ejemplos por internet he dado con la solucin y espero que sea por lo menos acertada con lo que se pide.

INTELIGENCIA ARTIFICIAL GRADO INGENIERA INFORMTICA

Вам также может понравиться