19
INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA UNIDAD 4 - ACTIVIDAD 1: Sistema experto jurídico con AUTOR: DAVID SÁNCHEZ RUIZ Nº alumno: 21235597

IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Embed Size (px)

Citation preview

Page 1: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

INTELIGENCIA ARTIFICIAL

GRADO INGENIERÍA INFORMÁTICA

UNIDAD 4 - ACTIVIDAD 1:

Sistema experto jurídico con

AUTOR:

DAVID SÁNCHEZ RUIZ Nº alumno: 21235597

Page 2: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

CONTROL DE DOCUMENTACIÓN

Versión Fecha Resumen de los cambios producidos

1.0 11-03-2013 Creación del documento.

Realizado por: Aprobado por:

AUTOR Fecha: 11-03-2013 Fecha: dd-mm-aaaa

Page 3: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

ÍNDICE

1. INTRODUCCIÓN ........................................................................................................................ 4

1.1. PROPOSITO ....................................................................................................................... 4

1.2. OBJETIVOS ........................................................................................................................ 4

2. ACTIVIDADES A REALIZAR .................................................................................................... 4

3. SISTEMA EXPERTO JURÍDICO CON PROLOG ................................................................. 5

3.1. PROLOG .............................................................................................................................. 6

3.2. DATOS, REGLAS Y FACTORES DE CERTEZA .......................................................... 8

4. SOLUCIÓN PROPUESTA ...................................................................................................... 10

4.1. Archivo pl ........................................................................................................................... 11

4.2. Consultas realizadas ........................................................................................................ 13

5. CONCLUSIONES ..................................................................................................................... 19

Page 4: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

1. INTRODUCCIÓN

1.1. PROPOSITO

A continuación se detalla la elaboración 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 cómo funciona un sistema de representación del conocimiento basado en

reglas.

2. ACTIVIDADES A REALIZAR

En la actividad anterior con RapidMiner se probó el uso de diversos algoritmos de

aprendizaje automático en un sistema de diagnóstico de cáncer de mama donde se pedía

generar y evaluar sistemas de Aprendizaje basados en reglas y basados en árboles de

decisión.

En esta práctica lo que vamos a hacer es implementar el modelo basado en reglas o en

árboles de decisión 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 basándonos en las que obtuvimos en RapidMiner y

generar fichero .pl.

3) Importar a ProLog un fichero de consulta .pl.

4) Añadir algunos factores de certidumbre a las reglas importadas.

Page 5: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

3. SISTEMA EXPERTO JURÍDICO CON PROLOG

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 aplicación de un sistema experto, permitirán a los computadores poder extraer de ellos

su verdadero potencial ya que con ello será posible resolver problemas operacionales y

comerciales difíciles e importantes.

Un Sistema Experto (SE) puede realizar en una determinada aplicación las mismas

funciones de una persona de amplia experiencia.

Ventajas:

Permanencia, replicación, rapidez, bajo costo, trabajar en entornos peligrosos, fiabilidad,

consolidar varios conocimientos y apoyo Académico.

Limitaciones:

Sentido común, lenguaje natural, capacidad de aprendizaje, perspectiva global, capacidad

sensorial, flexibilidad y conocimiento no estructurado.

Estructura básica de un SE:

Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con un

experto.

Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha

descubierto durante el análisis.

Motor de inferencia: Modela el proceso de razonamiento humano.

Módulos de justificación: Explica el razonamiento utilizado por el sistema para llegar a una

determinada conclusión.

Interfaz de usuario: es la interacción 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 solución a un problema planteado se obtiene:

Aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y

aplicación.

Aplicando el razonamiento basado en casos, donde la solución a un problema similar

planteado con anterioridad se adapta al nuevo problema.

Aplicando redes bayesianas, basadas en estadística y el teorema de Bayes.

Page 6: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

3.1. PROLOG

Es un lenguaje para programar artefactos electrónicos mediante el paradigma lógico con

técnicas de producción final interpretada. Proviene del francés PROgrammation en

LOGique.

PROLOG es un lenguaje de programación declarativo, que está basado en formalismos

abstractos (lógica de predicados de primer orden), y su semántica no depende de la

máquina en la que se ejecutan. Las sentencias en estos lenguajes se entienden sin

necesidad de hacer referencia al nivel máquina para explicar los efectos colaterales. Otra

ventaja es que se pueden desarrollar y comprobar poco a poco, además de ser

sintetizados o transformados sistemáticamente.

PROLOG es un lenguaje de programación muy útil para resolver problemas que implican

objetos y relaciones entre objetos, por ejemplo usado en dominios legales, médicos,

financieros, etc.

La ejecución de los programas en ProLog se hace mediante el encadenamiento hacia atrás

en primero en profundidad, donde ProLog compila y proporciona una inferencia muy

rápida.

Está basado en los siguientes mecanismos básicos:

Unificación

Estructuras de datos basadas en árboles

Backtracking automático

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 escribirán con minúscula. 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 relación llamada "tiene". La forma de

representarlo en PROLOG es: tiene(coche,ruedas).

Al final de un hecho debe ir un punto (el carácter ".").

Page 7: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

Las preguntas PROLOG:

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 más

hechos. Son la representación de las implicaciones lógicas 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 más hechos separados por una

coma (","), que actúa como el "y" lógico. Las reglas finalizan con un punto (".").

Es un coche(X) ----> | tiene(X,ruedas) :

tiene(X,ruedas) | es un coche(X).

Instalación 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.

Page 8: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

Abrir fichero de consulta en SWI-ProLog

Pinchar en “File” – Consult ..

3.2. DATOS, REGLAS Y FACTORES DE CERTEZA

DATOS

Para el desarrollo de esta práctica se nos proporciona de la práctica de la unidad 3 de

RapidMiner, una colección con 569 ejemplos de pruebas realizadas a distintas personas y

para cada ejemplo, si el resultado ha sido “maligno” (M) o “benigno” (B).

La colección proporcionada está divida en 2 ficheros: un .names que explica los datos, y un

.data con los ejemplares:

El fichero “wdbc.names” contiene la descripción de los datos que se van a tratar.

El fichero “wdbc.data” contiene todos los datos de las pruebas médicas 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.

Page 9: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

REGLAS

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

NOTA: También 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 fórmula 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 parámetro “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 parámetro

“mean_texture” y lo multiplico por (1-FC).

Page 10: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

4. SOLUCIÓN PROPUESTA

Se diseña programa en ProLog para diagnosticar si tiene cáncer o no un paciente a raíz de

los resultados de unas pruebas médicas.

Cuando cargamos el programa “unidad4.pl”, según instrucciones vitas anteriormente, nos

sale esta pantalla, donde resalto en azul que nos indica que el programa se ha cargado

correctamente, de lo contrario mostraría algún mensaje en rojo de error, se detalla un

comentario y que se teclee inicio. Para comenzar la prueba:

Pulsamos inicio. y nos pide que introduzcamos datos referentes a las pruebas del

paciente:

Page 11: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

Una vez introducidos todos los datos, el sistema mostrará el diagnostico de benigno (no

tiene cáncer) y maligno (si tiene cáncer) más datos de factor de certeza.

4.1. Archivo pl

A continuación se detalla el desarrollo del código en ProLog mediante el archivo

“unidad4.pl”:

/* ---- INTELIGENCIA ARTIFICIAL (DAVID SÁNCHEZ RUIZ) ---- / Práctica unidad 4 - Sistema experto jurídico con SWI-PROLOG unidad4.pl*/ % --PRINCIPAL-- mensaje :- nl,writeln('PRÁCTICA UNIDAD4 (PROLOG) .... Cargada !!'),nl, nl,writeln('Esta práctica realiza un diagnostico de cáncer 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,

Page 12: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

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(' %'). 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').

Page 13: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

4.2. Consultas realizadas

Consulta paciente cumpliéndose regla nº 1:

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), también

muestra el tanto por ciento de factor de certeza obtenido y el resultado del

diagnostico que es BENIGNO.

Page 14: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

Consulta paciente cumpliéndose regla nº 2:

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), también muestra el tanto por ciento

de factor de certeza obtenido y el resultado del diagnostico que es MALIGNO.

Page 15: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

Consulta paciente cumpliéndose regla nº 3:

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), también muestra el tanto por ciento de factor de certeza obtenido y el

resultado del diagnostico que es BENIGNO.

Page 16: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

Consulta paciente cumpliéndose regla nº 4:

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), también muestra el

tanto por ciento de factor de certeza obtenido y el resultado del diagnostico que es

MALIGNO.

Page 17: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

Consulta paciente cumpliéndose regla nº 5:

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), también muestra el tanto por

ciento de factor de certeza obtenido y el resultado del diagnostico que es

MALIGNO.

Page 18: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

Consulta paciente cumpliéndose regla nº 6:

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.

Page 19: IA-U4-A1-Sistema experto jurídico PROLOG-David Sánchez

Sistema experto jurídico con PROLOG Versión 1.0

INTELIGENCIA ARTIFICIAL GRADO INGENIERÍA INFORMÁTICA

5. CONCLUSIONES

Esta práctica me ha costado bastante, primero entender lo que se estaba pidiendo para dar

un enfoque y segundo cuando ya entendía lo que había que hacer, he tenido que aprender

el lenguaje de ProLog (nuevo para mí), pero leyendo apuntes, buscando ejemplos por

internet he dado con la solución y espero que sea por lo menos acertada con lo que se

pide.