Tema 6: Razonamiento con información incompleta

Documentos relacionados
Tema 5: Razonamiento por defecto y razonamiento explicativo

Tema 7: Razonamiento por defecto y razonamiento abductivo

Tema 4: Redes semánticas y marcos

Tema 3: Sistema inicial de representación y razonamiento

Tema 1: Agentes inteligentes: Representación y razonamiento

Tema 2: Inteligencia computacional y conocimiento

Tema 4: Resolución de problemas de espacios de estados

Programación lógica ( )

Tema 3: Representación del conocimiento estructurado

Tema 6: Seminario de Inteligencia Artificial, Curso Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla

Tema 1: Introducción a la Inteligencia Artificial

Fundamentos de Inteligencia Artificial

Tema 6: Representación lógica del conocimiento

Tema 6: Programación lógica de segundo orden

Secretaría de Docencia Dirección de Estudios Profesionales

Tema 3: Demostraciones proposicionales

Tema 3: Técnicas básicas de búsqueda para la resolución de problemas

PROYECTO DOCENTE ASIGNATURA: "Inteligencia Artificial I"

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO

Tema 4: Razonamiento no

Implementación Prolog de un SBC basado en reglas (2011/2012)

Tema 2: Representación de problemas como espacios de estados

Tema 3: Introducción a Prolog

PROYECTO DOCENTE ASIGNATURA: "Inteligencia Artificial"

Lógica y Programación

Lógica y Programación

Tema 13: Introducción a la Programación Lógica Inductiva

Tema 4: Representación del conocimiento mediante reglas

Tema 8: Árboles de decisión

Tema 2: Deducción natural proposicional

Tema 9: Procesamiento de lenguaje natural

PROYECTO DOCENTE ASIGNATURA: "Inteligencia Artificial"

Práctica II. Prolog II: Meta Intérprete Vanilla

Tema AA-4: Sesgo inductivo

Tema 8: Procesamiento de lenguaje natural

Tema 5: Procesamiento de lenguaje natural

Tema 1: El sistema deductivo de Prolog

Tema 2: Lógica proposicional: Sintaxis y semántica

UNIVERSIDAD NACIONAL DEL SUR 1 BAHÍA BLANCA. Laboratorio 12 hs CORRELATIVAS DESCRIPCIÓN

1.- DATOS DE LA ASIGNATURA. Nombre de la asignatura: Carrera: Clave de la asignatura: (Créditos) SATCA PRESENTACIÓN

Seminario de Inteligencia Artificial Curso Tema 7: Abducción. Dpto. de Ciencias de la Computación e Inteligencia Artificial

Lógica y Programación

GUÍA DOCENTE DE LA ASIGNATURA

Tema 1: Representación de problemas como espacio de estados

Programación declarativa ( )

Representación del conocimiento mediante reglas (2010/2011)

Tema 2: Equivalencias y formas normales

Programación lógica ( )

Razonamiento automático

Tema 7: Sesgo inductivo

Tema 4: Programación lógica y Prolog

Representación del conocimiento. Lógica y representación del conocimiento.

Lógica matemática y fundamentos ( )

Inteligencia Artificial e Ingeniería del Conocimiento

INTRODUCCION A LA INTELIGENCIA ARTIFICIAL

Tema 12: Aplicaciones de SBC: Decisión y metaintérpretes

Tema 7: Aplicaciones de PD: problemas de grafos y el problema de las reinas

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

Métodos de Inteligencia Artificial

Representación del conocimiento mediante reglas (2011/2012)

Tema 4: Aprendizaje de conceptos

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO

Plan Ciclo Formativo Tipo Curso Duración. Máster Universitario Oficial. Apoyo a la docencia

Tema 4: Búsqueda informada mediante técnicas heurísticas

Tema 4: Introducción al Aprendizaje Automático

Tema 5: Otros predicados predefinidos

Lógica y Programación

Tema 3: Técnicas básicas de

Tema 1: Sintaxis y semántica de la lógica proposicional

Módulo Común Optativo Inteligencia Artificial aplicada 1º 2º 3 Optativa. DIRECCIÓN COMPLETA de CONTACTO para TUTORÍAS. HORARIO de TUTORÍAS

Programa de estudios por competencias Seminario de solución de problemas Inteligencia Artificial II

Tema 2: Introducción a los sistemas basados en el conocimiento

Inteligencia Artificial. Sistemas Expertos. Presentado por: Marcel Castro

Tema 8: Elementos condicionales y acciones procedimentales

PROGRAMA ANALÍTICO DE ASIGNATURA

ASIGNATURA DE MÁSTER: MÉTODOS SIMBÓLICOS

Anexo 3: Implementaciones en Lisp

Guía de estudio para el examen de admisión - Convocatoria 2012

Tema 2: Un poco de Historia

Tema 7: Razonamiento sobre programas

SCC SATCA 1 : Carrera:

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

PROTOCOLO. Fechas Mes/año Clave Semestre 8 a 10

ASIGNATURA Inteligencia Artificial en los sistemas de control autónomo

PROYECTO DOCENTE ASIGNATURA: "Inteligencia Artificial"

PROYECTO DOCENTE ASIGNATURA: "Inteligencia Artificial"

Tema 4: Resolución de primer orden

Lógica y Programación

Tema 2: Un poco de Historia

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR INGENIERÍA EN TECNOLOGÍA COMPUTACIONAL. ASIGNATURA Inteligencia Artificial II. Ingeniería Aplicada

FACULTAD DE CIENCIAS EXACTAS, INGENIERÍA Y AGRIMENSURA U.N.R.

PROYECTO DOCENTE ASIGNATURA: "Aprendizaje Automático"

Tema 5: Razonamiento no monótono

Transcripción:

Inteligencia Artificial 2 Curso 2000 200 Tema 6: Razonamiento con información incompleta José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Francisco J. Martín Mateos Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla IA2 2000 0 CcIa Razonamiento con información incompleta 6.

Razonamiento por defecto Ejemplo de razonamiento por defecto El animal_ es un pájaro rmalmente, los pájaros vuelan. Por tanto, el animal_ vuela. Programa P Programa P pajaro(animal_). vuela(x) :- pajaro(x), normal(x). Modelos del programa P {pajaro(animal_)} {pajaro(animal_), vuela(animal_)} {pajaro(animal_), normal(animal_), vuela(animal_)} Consecuencia P =/= vuela(animal_) IA2 2000 0 CcIa Razonamiento con información incompleta 6.2

Razonamiento por defecto Programa P2 con anormal/ Programa P2 :- dynamic anormal/. pajaro(animal_). vuela(x) :- pajaro(x), not anormal(x). Sesión?- vuela(animal_). Yes Traza?- vuela(animal_). Call: ( 7) vuela(animal_)? Call: ( 8) pajaro(animal_)? Exit: ( 8) pajaro(animal_)? ^ Call: ( 8) not anormal(animal_)? Call: ( 9) anormal(animal_)? Fail: ( 9) anormal(animal_)? ^ Exit: ( 8) not anormal(animal_)? Exit: ( 7) vuela(animal_)? Yes IA2 2000 0 CcIa Razonamiento con información incompleta 6.3

Razonamiento por defecto Extensión del conocimiento Nuevo conocimiento El animal_ es un avestruz. Los avestruces son pájaros que no vuelan. Programa extendido :- dynamic anormal/. pajaro(animal_). avestruz(animal_). vuela(x) :- pajaro(x), not anormal(x). anormal(x) :- avestruz(x). Traza?- vuela(animal_). Call: ( 7) vuela(animal_)? Call: ( 8) pajaro(animal_)? Exit: ( 8) pajaro(animal_)? ^ Call: ( 8) not anormal(animal_)? Call: ( 9) anormal(animal_)? Call: ( 0) avestruz(animal_)? Exit: ( 0) avestruz(animal_)? Exit: ( 9) anormal(animal_)? ^ Fail: ( 8) not anormal(animal_)? Fail: ( 7) vuela(animal_)? IA2 2000 0 CcIa Razonamiento con información incompleta 6.4

Razonamiento por defecto Cancelación reglas por defectos mediante reglas específicas Regla por defecto: rmalmente, los pájaros vuelan Regla específica: Los avestruces no vuelan Razonamiento monótono y no monótono Razonamiento monótono P = C y P2 extiende a P, entonces P2 = C. Razonamiento monótono P = C y P2 extiende a P, es posible P2 =/= C. IA2 2000 0 CcIa Razonamiento con información incompleta 6.5

Razonamiento por defecto Programa con reglas y reglas con excepciones (defectos) Programa objeto defecto((vuela(x) :- pajaro(x))). regla((pajaro(x) :- avestruz(x))). regla((not vuela(x) :- avestruz(x))). regla((avestruz(animal_) :- true)). regla((pajaro(animal_2) :- true)). Sesión?- explica(vuela(x),e). X = animal_2 E = [defecto((vuela(animal_2) :- pajaro(animal_2))), regla((pajaro(animal_2) :- true))] ;?- explica(not vuela(x),e). X = animal_ E = [regla((not vuela(animal_) :- avestruz(animal_))), regla((avestruz(animal_) :- true))] ;?- explica(vuela(animal_2),_). Yes?- explica(vuela(animal_),_). IA2 2000 0 CcIa Razonamiento con información incompleta 6.6

Razonamiento por defecto Metaprograma para explicaciones explica(a,e) :- explica(a,[],e). explica(true,e,e) :-!. explica((a,b),e0,e) :-!, explica(a,e0,e), explica(b,e,e). explica(a,e0,e) :- prueba(a,e0,e). explica(a,e0,[defecto((a:-b)) E]) :- defecto((a:-b)), explica(b,e0,e), not contradiccion(a,e). prueba(true,e,e) :-!. prueba((a,b),e0,e) :-!, prueba(a,e0,e), prueba(b,e,e). prueba(a,e0,[regla((a:-b)) E]) :- regla((a:-b)), prueba(b,e0,e). contradiccion(not A,E) :-!, prueba(a,e,_e). contradiccion(a,e) :- prueba(not A,E,_E). IA2 2000 0 CcIa Razonamiento con información incompleta 6.7

Razonamiento por defecto Explicaciones de hechos contradictorios Programa objeto defecto((not vuela(x) defecto((vuela(x) defecto((not vuela(x) :- mamifero(x))). :- vampiro(x))). :- muerto(x))). regla((mamifero(x) :- vampiro(x))). regla((vampiro(dracula) :- true)). regla((muerto(dracula) :- true)). Sesión?- explica(vuela(dracula),e). E = [defecto((vuela(dracula) :- vampiro(dracula))), regla((vampiro(dracula) :- true))] ;?- explica(not vuela(dracula),e). E = [defecto((not vuela(dracula) :- mamifero(dracula))), regla((mamifero(dracula) :- vampiro(dracula))), regla((vampiro(dracula) :- true))] ; E = [defecto((not vuela(dracula) :- muerto(dracula))), regla((muerto(dracula) :- true))] ; IA2 2000 0 CcIa Razonamiento con información incompleta 6.8

Razonamiento por defecto Cancelación entre defectos mediante nombres Programa objeto defecto(mamiferos_no_vuelan(x), (not vuela(x) :- mamifero(x))). defecto(vampiros_vuelan(x), (vuela(x) :- vampiro(x))). defecto(muertos_no_vuelan(x), (not vuela(x) :- muerto(x))). regla((mamifero(x) :- vampiro(x))). regla((vampiro(dracula) :- true)). regla((muerto(dracula) :- true)). regla((not mamiferos_no_vuelan(x) :- vampiro(x))). regla((not vampiros_vuelan(x) :- muerto(x))). Modificación de explica explica(a,e0,[defecto(mbre) E]) :- defecto(mbre,(a:-b)), explica(b,e0,e), not contradiccion(mbre,e), not contradiccion(a,e). Sesión?- explica(vuela(dracula),e).?- explica(not vuela(dracula),e). E = [defecto(muertos_no_vuelan(dracula)), regla((muerto(dracula) :- true))] Yes IA2 2000 0 CcIa Razonamiento con información incompleta 6.9

Razonamiento abductivo Problema de la abducción Dados P un programa lógico y O una observación (un hecho básico en el lenguaje de P) Encontrar E una explicación (una lista de hechos atómicos en el lenguaje de P cuyos predicados no son cabezas de cláusulas de P) tal que P U E - O) Abducción para programas definidos Programa objeto europeo(x) <- espa~nol(x). espa~nol(x) <- andaluz(x). europeo(x) <- italiano(x). Sesión?- abduce(europeo(juan),e). E = [andaluz(juan)] ; E = [italiano(juan)] ; IA2 2000 0 CcIa Razonamiento con información incompleta 6.0

Razonamiento abductivo Programa :- op(200,xfx,<-). abduce(o,e) :- abduce(o,[],e). abduce(true,e,e) :-!. abduce((a,b),e0,e) :-!, abduce(a,e0,e), abduce(b,e,e). abduce(a,e0,e) :- (A <- B), abduce(b,e0,e). abduce(a,e,e) :- member(a,e). abduce(a,e,[a E]) :- not member(a,e), abducible(a). abducible(a) :- not (A <- _B). IA2 2000 0 CcIa Razonamiento con información incompleta 6.

Razonamiento abductivo Problemas al aplicar abducción a programas indefinidos Programa objeto vuela(x) <- pajaro(x), not anormal(x). anormal(x) <- avestruz(x). pajaro(x) <- avestruz(x). pajaro(x) <- palomo(x). Sesión?- abduce(vuela(animal_),e). E = [not anormal(animal_), avestruz(animal_)] ; E = [not anormal(animal_), palomo(animal_)] ; Problemas: * Explicación contradictoria * Explicación con predicado no abducible IA2 2000 0 CcIa Razonamiento con información incompleta 6.2

Razonamiento abductivo Abducción para programas generales Metaprograma abductivo :- op(200,xfx,<-). abduce(o,e) :- abduce(o,[],e). abduce(true,e,e) :-!. abduce((a,b),e0,e) :-!, abduce(a,e0,e), abduce(b,e,e). abduce(a,e0,e) :- (A <- B), abduce(b,e0,e). abduce(a,e,e) :- member(a,e). abduce(a,e,[a E]) :- not member(a,e), abducible(a), not abduce_not(a,e,e). abduce(not(a),e0,e) :- not member(a,e0), abduce_not(a,e0,e). IA2 2000 0 CcIa Razonamiento con información incompleta 6.3

Razonamiento abductivo abduce_not((a,b),e0,e) :-!, abduce_not(a,e0,e); abduce_not(b,e0,e). abduce_not(a,e0,e) :- setof(b,(a <- B),L), abduce_not_l(l,e0,e). abduce_not(a,e,e) :- member(not(a),e). abduce_not(a,e,[not(a) E]) :- not member(not(a),e), abducible(a), not abduce(a,e,e). abduce_not(not(a),e0,e) :- not member(not(a),e0), abduce(a,e0,e). abduce_not_l([],e,e). abduce_not_l([b R],E0,E) :- abduce_not(b,e0,e), abduce_not_l(r,e,e). abducible(a) :- A \= not(_x), not (A <- _B). Sesión con el programa objeto anterior?- abduce(vuela(animal_),e). E = [not avestruz(animal_), palomo(animal_)] Yes IA2 2000 0 CcIa Razonamiento con información incompleta 6.4

Diagnóstico mediante abducción Representación de un sumador +----+ X ----+-> S xor --+--+ Y --+- -> +----+ +----+ +------------> xor2 ---Suma Z -- - -------+-- ---------------> +----+ +----+ +------- -- --> A and ---+ +--------- -- --> +----+ +----+ +--> or ---Acarreo +----+ +--> +--> A2 +----+ and ---+ +-----> +----+ IA2 2000 0 CcIa Razonamiento con información incompleta 6.5

Diagnóstico mediante abducción Definición del sumador sumador(x,y,z,acarreo,suma) :- xor(x,y,s), xor(z,s,suma), and(x,y,a), and(z,s,a2), or(a,a2,acarreo). and(,,). and(0,,0). or(,,). or(0,,). xor(,0,). xor(,,0). and(,0,0). and(0,0,0). or(,0,). or(0,0,0). xor(0,,). xor(0,0,0). tabla :- format( X Y Z A S~n ), tabla2. tabla2 :- member(x,[0,]), member(y,[0,]), member(z,[0,]), sumador(x,y,z,a,s), format( ~a ~a ~a ~a ~a~n,[x,y,z,a,s]), fail. tabla2. IA2 2000 0 CcIa Razonamiento con información incompleta 6.6

Diagnóstico mediante abducción Sesión con el sumador?- tabla. X Y Z A S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Yes Modelo de fallo del sumador sumador(x,y,z,acarreo,suma) <- xorg(xor,x,y,s), xorg(xor2,z,s,suma), andg(and,x,y,a), andg(and2,z,s,a2), org(or,a,a2,acarreo). xorg(_n,x,y,z) <- xor(x,y,z). xorg(n,,,) <- fallo(n=f). xorg(n,0,0,) <- fallo(n=f). xorg(n,,0,0) <- fallo(n=f0). xorg(n,0,,0) <- fallo(n=f0). IA2 2000 0 CcIa Razonamiento con información incompleta 6.7

Diagnóstico mediante abducción andg(_n,x,y,z) <- and(x,y,z). andg(n,0,0,) <- fallo(n=f). andg(n,,0,) <- fallo(n=f). andg(n,0,,) <- fallo(n=f). andg(n,,,0) <- fallo(n=f0). org(_n,x,y,z) <- or(x,y,z). org(n,0,0,) <- fallo(n=f). org(n,,0,0) <- fallo(n=f0). org(n,0,,0) <- fallo(n=f0). org(n,,,0) <- fallo(n=f0). Diagnóstico mediante abducción diagnostico(observacion,diagnostico) :- abduce(observacion,diagnostico). :- abolish(abducible,2). abducible(fallo(_x)). Sesión de diagnóstico?- diagnostico(sumador(0,0,,,0),d). D = [fallo(or = f),fallo(xor2 = f0)] ; D = [fallo(and2 = f),fallo(xor2 = f0)] ; D = [fallo(and = f),fallo(xor2 = f0)] ; D = [fallo(and2 = f),fallo(and = f),fallo(xor2 = f0)] ; D = [fallo(xor = f)] ; D = [fallo(or = f),fallo(and2 = f0),fallo(xor = f)] ; D = [fallo(and = f),fallo(xor = f)] ; D = [fallo(and2 = f0),fallo(and = f),fallo(xor = f)] ; IA2 2000 0 CcIa Razonamiento con información incompleta 6.8

Diagnóstico mediante abducción Diagnóstico mínimo diagnostico_minimo(o,d) :- diagnostico(o,d), not((diagnostico(o,d), subconjunto_propio(d,d))). subconjunto_propio([],ys):- Ys \= []. subconjunto_propio([x Xs],Ys):- select(ys,x,ys), subconjunto_propio(xs,ys). Diagnóstico mínimo del sumador?- diagnostico_minimo(sumador(0,0,,,0),d). D = [fallo(or = f),fallo(xor2 = f0)] ; D = [fallo(and2 = f),fallo(xor2 = f0)] ; D = [fallo(and = f),fallo(xor2 = f0)] ; D = [fallo(xor = f)] ; IA2 2000 0 CcIa Razonamiento con información incompleta 6.9

Defectos mediante abducción Traducción del programa objeto no_vuela(x) <- mamifero(x), not mamifero_volador(x). vuela(x) <- vampiro(x), not vampiro_no_volador(x). no_vuela(x) <- muerto(x), not muerto_volador(x). mamifero(x) <- vampiro(x). vampiro(dracula) <- true. muerto(dracula) <- true. mamifero_volador(x) <- vampiro(x). vampiro_no_volador(x) <- muerto(x). :- abolish(abducible,). abducible(mamifero_volador(_)). abducible(vampiro_no_volador(_)). abducible(muerto_volador(_)). Sesión?- abduce(vuela(x),e).?- abduce(no_vuela(x),e). X = dracula E = [not muerto_volador(dracula)] ; IA2 2000 0 CcIa Razonamiento con información incompleta 6.20

Bibliografía. Flach, P. Simply Logical (Intelligent Reasoning by Example) (John Wiley, 994) Cap. 8: Reasoning incomplete information Poole, D.; Mackworth, A. y Goebel, R. Computational Intelligence (A Logical Approach) (Oxford University Press, 998) Cap. 9: Assumption Based Reasoning Rich, E. y Knight, K. Inteligencia artificial (segunda edición) (McGraw Hill Interamericana, 994). 7: Razonamiento simbólico bajo incertidum- Cap. bre IA2 2000 0 CcIa Razonamiento con información incompleta 6.2