Sei sulla pagina 1di 124

Representacin del conocimiento usando logica de

primer orden

Capitulo 7 Artificial Intelligence A modern approach

Agenda

Que es logica de primer orden (First Order Logic)?


Sintaxis y semntica

Usando lgica de primer orden

Wumpus world en logica de primer orden

Lectura:
Captulo 7

Arbol Familiar

Practica

Quin es hija de quin?


Cuantas bisnietas tiene Albert?
Quin es yerno de quin?
Cuantos sobrinos tiene Amy?
Que informacin adicional podemos deducir?

Conocimientos que podemos deducir del ejercicio?

Hechos (Facts).
Enunciados. Infieren nuevo conocimiento
Significado.
etc.

Elementos de un Sistema de Representacin de


conocimientos

Base de Conocimientos.
Un conjunto de enunciados que representan hechos acerca del ambiente expresado
en algn lenguaje de representacin de conocimientos.

Motor de inferencia.
Infiere nuevos enunciados a partir de enunciados en la base de conocimientos.

Para propsitos de este tema


Toda la representacin del conocimiento es basada en algn tipo de lgica formal
como lgica proposicional, lgica temporal, fuzzy logic.. etc.
La logica formal tiene la ventaja que los hechos pueden ser expresados en trminos
de un lenguaje natural como el espaol o ingles.
Cuya caractersticas son que son claros y no ambiguos

LOGICA

Es un lenguaje formal que incluye:


Sintaxis. Reglas para describir enunciados legales.
Semntica. Como los enunciados representan

hechos en el ambiente mundo


Prueba paso a paso. Reglas para inferir enunciados

a partir de otros enunciados.

Sintaxis de la Logica Proposicional

Los enunciados son falso o verdadero.


Las variables P, Q, R son enunciados
Los parntesis entre un enunciado forman un
enunciado evaluado.
La combinacin de enunciados usando los
conectores a continuacin descritos forman un
enunciado evaluado
Simbolo

Ejemplo

Nombre

Nombre del
enunciado

PQ

and

Conjuncin

PQ

or

Disyuncin

not

Negacin

PQ

implies

Implicacin

PQ

equivalent

Bicondicional

Tipos de lgica

Logica proposicional maneja objetos especficos y enunciados concretos


que son falso o verdadero.
ejemplo, Juan esta casado con Susana.

Logica de Predicado o de primer orden permite enunciados que


contienen variables, funciones, y cuantificadores
Para toda X, Y: Si X esta casado con Y entonces Y esta casado con X.

Fuzzy logic maneja enunciados que son vagos como este hombre esta
gordo, el cielo esta nublado.

Probabilidad maneja enunciados que posiblemente sean verdad, como


ganare la loteria la semana que viene.

Logica Temporal maneja enunciados con una variable de tiempo, Como


Juan fue estudiante del Unitec por 3 aos.

Logica Modal maneja enunciados con creencias o conocimientos, como


Maria cree que Juan esta casado con Susana.

Porque es necesaria la logica?

Los agentes para solucin de problemas son


inflexibles, evaluacin de cada estado.
La bsqueda es casi exponencial para encontrar
soluciones.
Los agentes de solucin de problemas no pueden
inferir sobre la informacin observada.
Se busca un algoritmo que asemeje la forma en que
razonan los humanos.

Ventajas y Desventajas de la lgica proposicional

La lgica proposicional es declarativa


- Knowledge & inference se declaran por separado.

La lgica proposicional permite informacin parcial/disyuntiva/en


forma de negacin.
diferente a la mayora de los lenguajes computacionales y bases de
datos

La lgica proposicional composicional:


significado de B1,1 P1,2 is derivado del signicado de B1,1 y de P1,2

El significado de la lgica proposicional de contexto-independiente


a diferencia del lenguaje natural, donde el significado depende del
contexto.

La lgica proposicional es limitada en su poder de expresin


a diferencia del lenguaje natural
Ejemplo., no se puede establecer que pits causan la brisa en las
localidades adyacentes
a menos que se establezca una relacin para cada una de las
localidades.

Inferencia en Sistemas de smbolos formales, Ontologa, Representacin


e Inferencia

Sistemas de smbolos formales


Smbolos corresponden a cosas/ideas en el mundo (ambiente)
Bsqueda de patrones que nos ayudan a inferir.

Ontologa: Que existe en el mundo?


Que debe ser representado?
Representacin: Sintaxis vs. Semntica
Como se dice vs. Que significa

Sintaxis. Reglas para describir oraciones legales.


Semntica. Como las enunciados representan hechos en el ambiente mundo

Inferencia: Esquema vs. Mecanismo


Prueba paso a paso vs. Estrategia de bsqueda
Prueba. Reglas para inferir enunciados a partir de otros enunciados.

Ontologa:
Que clase de cosas existen en el mundo?
Que necesitamos describir y razonar al respecto?

Razonamiento
Representacin
------------------Sistema formal
de smbolos.

Sintaxis
--------Que se
dice?

Semntica
------------Que
significa?

Inferencia
--------------------Bsqueda de
patrones formal

Esquema
------------Reglas de
inferencia

Ejecucin
------------Estrategia
de
bsqueda

Knowledge-Based Agents

KB = knowledge base
Un conjunto de enunciados o hechos
ejemplo, un conjunto de enunciados en un lenguaje lgico.

Inferencia
Crear nuevas enunciados a partir de enunciados existentes.
ejemplo, usar un conjunto de enunciados para inferir nuevos
enunciados.

Modelo simple para razonamiento


El agente percibe una nueva evidencia.
Ejemplo, A es true
El agente infiere nuevos hechos para aadir a la KB
ejemplo, KB = { A -> (B OR C) }, entonces dado A y C podemos
inferir que B es true.
B es aadido a la KB aunque no es explicitamente comprobado, el
agente infiere B.

Otros sistemas de razonamiento

Como producir nuevos hechos de hechos existentes?


Induccin
Razonamiento a partir de hechos a una ley general.
Razonamiento cientfico, aprendizaje de mquinas

Abduccin
Razonamiento de los hechos que dan la mejor explicacin
Diagnstico medico, hardware debugging

Analoga (y metfora, similar)


Razonamiento de que una nueva situacin es como alguna ocurrida en el
pasado.

Lgica de primer orden (First Order Logic)


La lgica proposicional asume que su ambiente contiene
hechos (facts).
Lgica de primer orden (como los lenguages naturales) asume
que el ambiente contiene:
Objectos: gente, casas, numeros, colores, jugadores de beisbol,
juegos, guerras,
Relaciones: rojo, redondo, primero, hermano de, mayor que, parte
de, entre,
Funciones: padre de, mejor amigo, una mas que, suma,

Logica en General
Ontological Commitment:
Lo que existe en el ambiente es VERDAD
Lgica Proposicional : hechos (facts).
Lgica de primer orden : objetos con relaciones entre ellos.

Epistemological Commitment:
Lo que el agente cree acerca de los hechos (facts) CREENCIA

Sintaxis de lgica de primer grado: Elementos bsicos


Simbolos constantes:
Son objetos
ejemplo., Juan, 2, Escuela,...

Simbolos de predicados
Son relaciones
ejemplo, hermano(ricardo, juan), mayor_que(3,2)...

Simbolos de Funciones
Son funciones
ejemplo, sqrt(3), pierna_izquierda_de(juan),...

Sintaxis de lgica de primer orden: Elementos bsicos


Constantes Juan, 2, Escuela,...
Predicados hermano, >,...
Funciones Sqrt, pierna_izquierda_de,...
Variables

x, y, a, b,...

Conectores

, , , ,

Igualdad

Cuantificadores

Relaciones
algunas relaciones representan propiedades: se caracterizan
por alguna caracterstica de algn objeto: redonda(pelota),
primo(7).
relaciones n-arias hechos que intervienen acerca de dos o ms
objetos: casados(juan,maria), mayor_que(3,2).
Algunas relaciones son funciones: su valor representa otro
objeto: suma(2,3), padre(daniel).

Modelo para lgica de primer orden: ejemplo

Termino
Termino = expresin logica que se refiere a un objeto.
Existen 2 tipos de trminos:
smbolos constantes: mesa, computadora
smbolos de funcin: pierna_izquierda_de(pete), Sqrt(3),
suma(2,3) etc

Atomic Sentences (oraciones atmicos)

Enunciados atmicos. Son hechos usando trminos y smbolos de predicado


P(x,y) es interpretado como x es P de y

Ejemplos:
mayor_que(2,3) es falso.
hermano(mary,pete) is falso.
casado(padre(richard), mother(john)) puede ser falso o verdadero.

hermano_de(pete,hermano(pete)) es verdadero.

relacin binaria

funcin

Oraciones complejas

Creamos oraciones complejas con conectores (como en la lgica


proposicional).
propiedad

Brother (LeftLeg (Richard ), John ) (Democrat (Bush ))


relacin
binaria

funcin
objetos

conectores

Ms ejemplos

hermano(richard, john) hermano(juan, ricardo)

rey(richard) king(john)

king(john) => king(richard)

menor_que(suma(1,2) ,4) mayor_que(1,2)

(La semntica es la misma que en lgica proposicional)

Variables
person(John) es verdadero o falso porque solo asignamos un
argumento. John
Podemos ser mucho ms flexibles si permitimos variables, las
cules, pueden tomar valores en un dominio. ejemplo., todas
las personas x, todos los enteros i, etc.
E.g., podemos establecer reglas como persona(x) =>
tiene_cabeza(x)
o entero(i) => entro(suma(i,1)

Cuantificacin universal

significa para todo

Nos permite establecer enunciados acerca de todos los objetos que


tienen ciertas propiedades.

Ahora podemos establecer reglas generales como:


x king(X) => person(X)
x person(X) => tiene_cabeza(x)
i entero(i) => entero(suma(i,1))

Importante
x king(x) person(x) is not correct!
Esto implica que todos los objetos son reyes y personas.
x king(x) => person(x) es la manera correcta de representarlo

Cuantificacin Existencial

x significa existe una x tal que. (al menos un objeto x)

Nos permite establecer enunciados acerca de algn objeto sin


nombrarlo.

ejemplo:
x king(X)
x vive(john, castillo(x))
i

entero(i) mayor_que(i,0)

Importante es el conector natural para usar con


(Y => es el conector natural para usar con )

Ms ejemplos

Para todos los nmeros reales x, x>2


implica x>3.

x [(x > 2) (x > 3)] x R (false )


x [(x 2 = 1)] x R (false )
Existe al menos un nmero real x cuya raz cuadrada es -1.

Combinando Cuantificadores
x y ama(x,y)
Para cualquiera (todas las x) existe alguin que ama (y)

y x ama(x,y)
- existe alguin (y) que ama a todos

Conexiones entre Cuantificadores


Aseverar que todas las x tienen una propiedad P es
exactamente lo mismo que aseverar que no existe ninguna x
que no tenga la propiedad P.
x le_gusta(x, materia)

x le_gusta(x, materia)

En efecto :
- es una conjuncin sobre un universo de objetos.
- es una disjuncin sobre un universo de objetos
Entonces las reglas de DeMorgans pueden ser aplicadas.

Sintaxis de la lgica proposicional

Es la forma ms simple para expresar ideas


bsicas
Los simbolos proposicionales P1, P2 etc son enunciados
Si S es un enunciado, S es un enunciado (negation)
Si S1 y S2 son enunciados, S1 S2 es un enunciado
(conjunction)
Si S1 y S2 son enunciados, S1 S2 es un enunciado
(disjunction)
Si S1 y S2 son enunciados, S1 S2 un enunciado
(implication)
Si S1 y S2 son enunciados, S1 S2 es un enunciado
(biconditional)

Valores de verdad y conectores

Ley para cuantificadores De Morgans


Regla De Morgans

Regla generalizada De Morgans

P Q (P Q )

x P x (P )

P Q (P Q )

x P x (P )

(P Q ) P Q

x P x (P )

(P Q ) P Q

x P x (P )

Regla: si hay una negacin dentra de una conjuncin o disjuncin,


siempre intercambie como (o y, y o).

Wumpus World PEAS


Performance measure
oro: +1000, muerte: -1000
-1 movimiento, -10 x usar la flecha

DFS? A*?

Environment

Casillas adyacentes a Wumpus huelen mal


Casillas adyacentes a hoyos tienen brisa
Brillo si el oro esta en la casilla
Disparar flecha a Wumpus lo mata enfrente.
Solo dispones de una flecha
Agarrar tomo el oro si estas en la casilla.
Soltar libera el oro si en la casilla donde estes

Sensors: Stench, Breeze, Glitter, Bump, Scream


Actuators: Left turn, Right turn, Forward, Grab, Release, Shoot

Enunciados Wumpus world

Sea Pi,j verdadero si existe un hoyo en [i, j].


Sea Bi,j verdadero si existe una brisa en [i, j].
P1,1
B1,1
B2,1
Los hoyos causan brisas en localidades
adyacentes"
B1,1
B2,1

(P1,2 P2,1)
(P1,1 P2,2 P3,1)

Explorando wumpus world

Explorando wumpus world

Explorando wumpus world

Explorando wumpus world

Explorando Wumpus world

Si Wumpus estuviera
aqu, olor debera estar
aqu. Por lo tanto esta
aqui.
Si, no hay brisa
aqui, el hoyo debe estar
ah, y debe estar OK
aqui

Explorando wumpus world

Explorando wumpus world

Exploring a wumpus world

LOGICA
Necesitamos el uso de razonamiento lgico para encontrar el oro.
Logica son lenguajes formales para representar informacin de como
podemos establecer o probar una conclusin
Sintaxis define loe enunciados en dicho lenguaje formal
Semntica define el significado o interpretacin de los enunciados;
conecta los smbolos con eventos en el mundo real,
ejemplo, define la verdad de un enunciado en el mundo.
ejemplo., el lenguaje de la aritmtica
x+2 y es un enunciado; x2+y > {} no es enunciado;

semntica

x+2 y es verdad en un mundo en el que x = 7, y = 1


x+2 y es falso en el mundo en el que x = 0, y = 6

sintaxis

Perspectiva Esquemtica

Si nuestra base de conocimientos KB es verdad en el mundo,


entonces cualquier enunciado implicado en nuestra KB
tambin ser verdad en nuestro mundo.

Entailment (Implicacin)
Entailment significa una cosa es seguida de otro:
KB
La Base de conocimientos KB implica (entails) el enunciado si
y solo si es verdadero en todos los mundos donde KB es
verdadero
ejemplos,
x+y = 4 entails 4 = x+y
Maria es la hermana de Susana y Amy es la hija de Susana
implica (entails) Maria es la tia de Amy.

Modelos
Los expertos en logica tpicamente piensa en trminos de
modelos, los cuales son mundos formalmente estructurados en
donde se puede evaluar lgicamente, es decir evaluar si es
verdadero o no.
Decimos que m es un modelo del enunciado , si es verdad en
m
M() es un conjunto de todos los modelos
de
Then KB iff M(KB) M()
x+y = 4 entails 4 = x+y

Pensemos en KB y como una coleccin de


restricciones y de los modelos m como
posibles estados. M(KB) son las soluciones
a KB y M() las soluciones de .
Then, KB when all solutions to
KB are also solutions to .

Modelos en Wumpus

All possible models in this reduced Wumpus world.

Modelos Wumpus

KB = todos los posibles mundos de wumpus consistentes con las


observaciones y la fisica del wumpus world.

Modelos Wumpus

1 = "[1,2] es seguro", KB 1, probado por model checking

Modelo Wumpus

2 = "[2,2] es seguro", KB 2

Usando Logica de primer orden (First Order Logic)


Queremos decirle con el comando TELL informacin a nuestra
base de conocimientos KB, ejemplo.
TELL(KB, x , King (x ) Person (x ) )
TELL(KB, King(John) )
Las oraciones anteriores son aseveraciones

Tambin queremos preguntar comando ASK informacin a KB,


ASK(KB, x , Person (x ) )
estas son nuestros queries o metas
La KB devolver una lista de las xs para Person(x) es
verdadero: {x/John,x/Richard,...}

Usando logica de primer orden en Wumpus World


Oracin de percepcin:

Percept([Stench,Breeze,Glitter,None,None],5)

Acciones:

Turn(Right), Turn(Left), Forward, Shoot, Grab, Release, Climb

Query para determinar la mejor accin:


a BestAction(a,5)
ASK soluciona el problema cuando regresa {a/Grab}
TELL informa acerca de la accin.

Knowledge Base for Wumpus World


Perception
b,g,t Percept([Breeze,b,g],t) Breeze(t)
s,b,t Percept([s,b,Glitter],t) Glitter(t)
Reflex
t Glitter(t) BestAction(Grab,t)
Reflex with internal state
t Glitter(t) Holding(Gold,t) BestAction(Grab,t)
Holding(Gold,t) can not be observed: keep track of change.

Equivalencias Lgicas

Para manipular los enunciados logicos necesitamos


algunas reglas.
Dos enunciados son lgicamente equivalentes si son
verdaderos en ambos modelos: iff and

Conocimiento & Razonamiento


Para solucionar esto necesitamos

Una base de conocimientos (KB): una lista de enunciados que son conocidos
por el agente.

Reglas para inferir nuevos enunciados de los enunciados anteriores usando


reglas de inferencia.

Logica provee el lenguage natural para esto..

Bases de conocimientos
Base de conocimientos:
conjunto de enunciados en un lenguage formal.
Estrategia Declarativa para construir un agente:
Tell que necesita saber.
Ask que necesita hacer las respuestas deben venir de la
KB.

Wumpus World PEAS


Performance measure
oro: +1000, muerte: -1000
-1 movimiento, -10 x usar la flecha

DFS? A*?

Environment

Casillas adyacentes a Wumpus huelen mal


Casillas adyacentes a hoyos tienen brisa
Brillo si el oro esta en la casilla
Disparar flecha a Wumpus lo mata enfrente.
Solo dispones de una flecha
Agarrar tomo el oro si estas en la casilla.
Soltar libera el oro si en la casilla donde estes

Sensors: Stench, Breeze, Glitter, Bump, Scream


Actuators: Left turn, Right turn, Forward, Grab, Release, Shoot

Caractersticas del Wumpus world

Fully Observable No percepcin por casilla


Determinstico S todo el ambiente conocido.
Episdico No las cosas que hacemos impactan.
Esttico S Wumpus y Pits no cambian
Discreto S
Un-agente? S Wumpus es parte del ambiente y
esta esttico.

Entailment (Implicacin)
Entailment significa una cosa es seguida de otra:
KB
La Base de conocimientos KB implica (entails) el enunciado si
y solo si es verdadero en todos los mundos donde KB es
verdadero
ejemplos,
x+y = 4 entails 4 = x+y
Maria es la hermana de Susana y Amy es la hija de Susana
implica (entails) Maria es la tia de Amy.

Modelos
Los expertos en logica tpicamente piensa en trminos de
modelos, los cuales son mundos formalmente estructurados en
donde se puede evaluar lgicamente, es decir evaluar si es
verdadero o no.
Decimos que m es un modelo del enunciado , si es verdad en
m
M() es un conjunto de todos los modelos
de
Then KB iff M(KB) M()
x+y = 4 entails 4 = x+y

Pensemos en KB y como una coleccin de


restricciones y de los modelos m como
posibles estados. M(KB) son las soluciones
a KB y M() las soluciones de .
Then, KB when all solutions to
KB are also solutions to .

Entailment en el wumpus world

Considerar los posibles modelos para la KB


asumiendo solamente pits y un ambiente
reducido de Wumpus world
Situacin despus de las siguientes acciones
nada en [1,1], movindose a la derecha, brisa
in [2,1]

Modelos Wumpus

Como podemos ver el ambiente con los ?s.

Modelos Wumpus

KB = son todos los modelos wumpus-worlds consistentes con las


observaciones y la fsicadel Wumpus world.

Modelos Wumpus

1 = "[1,2] es seguro", KB 1, probado por model checking

Logica Proposicional: Semntica


Cada modelo/ambiente se especifica verdadero o falso para cada
proposicin representada por un smbolos
Ej.

P1,2
P2,2
P3,1
false
true
false
Con estos smbolos, hay 8 posibles modelos, 23.

Reglas para evaluar la validez (verdadero) con respecto al modelo m:


S
es true iff
S is false
S1 S2 is true iff
S1 is true and
S2 is true
S1 S2 is true iff
S1is true or
S2 is true
S1 S2 is true iff
S1 is false or
S2 is true
i.e.,
is false iff
S1 is true and
S2 is false
S1 S2 is true iff
S1S2 is true andS2S1 is true
Evaluacin de un enunciado arbitrario ejemplo.,
P1,2 (P2,2 P3,1) = true (true false) = true true = true

Enunciados Wumpus world

Sea Pi,j verdadero si existe un hoyo en [i, j].


Sea Bi,j verdadero si existe una brisa en [i, j].
P1,1
B1,1
B2,1
Los hoyos causan brisas en localidades
adyacentes"
B1,1
B2,1

(P1,2 P2,1)
(P1,1 P2,2 P3,1)

Inferencia por enumeracin


Enumeracin de todos los modelos tiene las
caractersticas de sound and complete.
Sound. Para cada enunciado S puede ser probado en el modelo M, entonces S
es consistente en el modelo.
Complete. Todos los enunciados pueden ser probados en el modelo M.

Para n smbolos, complejidad en el tiempo es O(2n)...


Puede que necesitemos mejores maneras de crear
inferencias.
Esto, a travs de inferir nuevos enunciados lgicos a
partir de la base de datos inicial y revisar si satisface
nuestro modelo.

Equivalencias Lgicas

Para manipular los enunciados logicos necesitamos


algunas reglas.
Dos enunciados son logicamente equivalentes si son
verdaderos en ambos modelos: iff and

Validacin y satisfaccin
Un enunciado es valido si es verdadero en todos sus modelos,
ejemplo., True,

A A, A A, (A (A B)) B

Validacin esta conectado a la inferencia via el Teorema de


deduccin:
KB if and only if (KB ) es valido

Un enunciado satisfecho si es verdadero en algn modelo


ej., A B,

Un enunciado es no satisfecho si es falso en todos sus modelos


ej., AA

Satisfaccin esta conectado via inferencia si:


KB si y solo si (KB ) no es satisfecho
(no hay modelos para el cul KB= verdadero y

falso)

Mtodos de Prueba
Mtodos de prueba son de dos tipos:
Aplicacin de reglas de inferencia:
Crear enunciados legitimos a partir de enunciados existentes.
Resolucin
Forward & Backward chaining

Model checking
Bsqueda a travs de asignaciones.
Mejorar el backtracking: Davis--Putnam-Logemann-Loveland (DPLL)
Heuristic search in model space: Walksat.

Normalizacin

Se busca probar: KB |=

equivalent to : KB unsatifiable

Se necesita reescribir KB en forma normal conjuntiva (CNF).

Una conjuncin de disyunciones

literales

(A B) (B C D)
Clausula

Clausula

Any KB can be converted into CNF.


In fact, any KB can be converted into CNF-3 using clauses with at
most 3 literals.

Ejemplo: Conversion a CNF

B1,1 (P1,2 P2,1)


1. Eliminar , reemplazar con ( )( ).
(B1,1 (P1,2 P2,1)) ((P1,2 P2,1) B1,1)

2. Eliminar , reemplazar con .


(B1,1 P1,2 P2,1) ((P1,2 P2,1) B1,1)

3. Mover dentro usar reglas de Morgan's y doublenegation:


(B1,1 P1,2 P2,1) ((P1,2 P2,1) B1,1)
( ) =

4. Aplicar distributive law ( over ) :

(B1,1 P1,2 P2,1) (P1,2 B1,1) (P2,1 B1,1)

Resolusin
Resolucin: reglas de inferencia para CNF: sound and complete
(A B C )
Si A o B o C son verdaderos, pero no A, entonces
(A)

B o C deben ser verdaderos.

(B C )
(A B C )
(A D E )

Si A es falso entonces B o C deben ser verdad, o si A es


verdad entonces D o E deben ser verdad, desde que A es
verdadero o faldo, B o C o D o E deben ser verdad.

(B C D E )

(A B )
( A B )

(B B ) B

Simplificacin

Algoritmo de Resolucin

KB |= equivalent to

El algoritmo de resolucin trata de probar: KB unsatisfiable

Generar todas los nuevos enunciados a partir de la KB y sus query.


Una de las dos cosas pasarn:

1. Encontramos

P P

que no es satisfactoria.

2. No encontramos contradiccin: existe un modelo que satisface el


enunciado KB que es satisfactoria

Resolution example

KB = (B1,1 (P1,2 P2,1)) B1,1


= P1,2

KB

Verdadero

Falso en
todos los
ambientes

Forward chaining
Probar cualquier regla que son satisface en la KB,
agregar las conclusiones a la base de datos que
satisfacen el query.

AND gate

OR gate

Forward chaining is sound and complete for


Horn KB

Forward chaining

OR Gate

AND gate

Forward chaining

Forward chaining

Forward chaining

Forward chaining

Forward chaining

Forward chaining

Backward chaining
checar si q es conocida, o
probar BC todas las premisas de alguna regla que
satisfagan q
Aqu BC mantiene un stack de sub-tareas que
necesitan ser probadas para satisfacer q.

Evitar loops: validar que no existan sub-tareas


repetidas, que ya hayan sido probadas o fallidas

Backward chaining example

Backward chaining example

Backward chaining example

Backward chaining example

necesitamos P para
probar L y L para
probar P.

Backward chaining example

Backward chaining example

Backward chaining example

Backward chaining example

Backward chaining example

Backward chaining example

Forward vs. backward chaining

FC es data-driven, proceso automtico,


ej., object recognition, routine decisions

Puede hacer muchas tareas irrelevantes para la meta


BC es goal-driven, apropiada para la solucin de
problemas,
ej.., Como obtengo el oro en Wumpus World?

Complejidad de BC puede ser mucho ms sencilla en


trminos de complejidad

Como agregar clausulas en Prolog


assert(likes(mary, pizza)), assert(likes(john, beer)).
listing(likes).
retract(likes(mary, pizza)).
listing(likes).
retractall(like(X,Y)).

Wumpus World

listing(agent_location),
listing(agent_orientation),
wumpus: agent_location(X,Y)),
wumpus: agent_orientation(A),
wumpus: breeze(B),

Resmen
Logica de primer orden:

Mucho ms expresivo que la logica proposicional.


Permite objetos, relaciones y semnticas simples.
Cuantificadores universales y existenciales
sintaxis: constantes, funciones, predicados, igualdades,
cuantificadores.

Sistemas Expertos en Prolog


Los sistemas expertos son aplicaciones computacionales que
involucran experiencia de tipo no algortmico para resolver
cierto tipo de problemas, como por ejemplo diagnstico de
personas, maquinara, toma de decisiones financieras,
aplicaciones de seguros etc.

Componentes de los Sistemas Expertos en Prolog


Base de conocimientos. Representacin declarativa del
expertise, a menudo conocida como if then rules
Working Storage. La data especifica al problema que estamos
resolviendo.
Motor de inferencia. El cdigo del sistema de las que derivan
recomendaciones de la base de conocimientos y el working
storage
Roles de los expertos que crean un SE.
Domain Expert. Los expertos que normalmente resuelven los
problemas que pretende el sistema resolver.
Knowledge Engineer. El encargado de codificar todo el
conocimiento del experto en una forma declarativa que puede
ser usado por el sistema.
Usuario. El que obtiene la recomendacin.

Goal Driven Reasoning


Es una manera eficiente de resolver problemas que pueden ser
modelados como problemas de seleccin estructurada, La
meta del sistema es escoger la mejor seleccin de las
posibilidades. Los sistemas de identificacin de problemas caen
dentro de esta categora, sistemas de diagnstico.

Manejo de Incertidumbre
A menudo en problemas de seleccin estructurada la solucin
final no es conocida con completa certidumbre; las reglas del
sistema de conocimiento pueden ser vagas, o el usuario puede
estar inseguro de las respuestas.
Esto se ve claramente en sistemas de diagnstico mdicos
donde no se puede establecer de manera definitiva la relacin
entre los sntomas y la enfermedad. De hecho los doctores
reales siempre ofrecen varios escenarios del diagnstico.
Los sistemas expertos usados en aplicaciones comerciales, es
asociar un valor numrico asociado un grado de certidumbre
para cada pieza de inferencia de la informacin analizada.

Data Driven Reasoning.


Para muchos problemas no es posible enumerar todas las
posibles respuestas de antemano y que el sistema seleccione
la correcta. Por ejemplo problemas de configuracin de
sistemas o distribucin de espacios en una oficina, este tipo de
problemas no pueden ser solucionados por definicin de una
meta.

Data representation.

Diferencia entre Forward and Backward Chaining.

Mini sistema de identificacin de aves

Sistemas Expertos en Prolog


Los sistemas expertos son aplicaciones computacionales que
involucran experiencia de tipo no algortmico para resolver
cierto tipo de problemas, como por ejemplo diagnstico de
personas, maquinara, toma de decisiones financieras,
aplicaciones de seguros etc.

Interfase de Usuario.
Como preguntar al usuario?
Usar un predicado para preguntar, si algn atributo en la base de
datos es verdad (unifica). El programa debe considerar que
atributos pueden ser usados para preguntar.

Interfase de Usuario.
Si preguntamos si existe algn ave color blanco, el predicado
ask(color, white), unificar si existe algn predicado
color(white)

Read se tendr xito si la respuesta es yes, y fail si el


usuario teclea alguna otra cosa, y se puede determinar la clase
de ave, dependiendo del input que le de el usuario.

Como recordar las respuestas del usuario?


Se usar el predicado know/3 para recordar las respuestas del
usuario a las preguntas, y si esta no esta declarada, podemos
agregarla dinmicamente con la instruccin assert cuando
preguntamos nueva informacin al usuario.

Pregunta a travs de listas.


Agregar la capacidad de mostrar una lista de valores de un
atributo al usuario. Esto limitar la informacin que el usuario
puede entrar y evitar ambigedades.

Usaremos un nuevo predicado menuask, es similar al


predicado ask, solo adiciona una lista de posibles valores,
existe una manera de hacerlo a travs de un sofisticado
sistema de ventanas, o simplemente listar la lista de los
posibles valores vlidos, a la respuesta del usuario se verifica
la lista y se podr preguntar nuevamente en caso de valores
no vlidos.

Preguntas a travs de listas.


La ultima clausula para implementar esto sera de la siguiente
manera:

El predicado check_val valida el input del usuario, que


asegura que el usuario entre un valor de la lista.

Un Shell simple.
Nuestro modelo de identificacin de aves consta de 2 partes la
base de conocimientos, que tiene los predicados especficos
para identificacin de las clases de aves y la interface del
usuario.
Separando estas dos partes podemos crear un shell que
pudiera ser usada para cualquier otra base de conocimientos,
por ejemplo un sistema experto que identifique peces.
Esto a travs de un cambio mnimo, creando un predicado de
alto nivel que inicie el proceso de identificacin. Esto
aadiendo un predicado genrico que podemos denominar
como top_goal por ejemplo :
top_goal(X) :- bird (X).

Un Shell simple.
El shell tendr un nuevo predicado llamado solve, que hace
las labores de limpieza para nuestro predicado top_goal, y
estara codificado de la siguiente manera:

El predicado abolish remueve todas las clausulas del


predicado known con aridad 3, no falla, existan clausulas o
no.
El predicado define asegura la definicin del mismo predicado
known y evita errores cuando la clausula es referenciada en
el programa.

En resumen.
Los predicados de nuestro sistema de identificacin de aves,
sern divididos en dos mdulos.
Shell Predicates :
solve. Empieza la consulta.
ask. Propone preguntas simples al usuario y las recuerda.
menuask. presenta al usuario con opciones de informacin.
predicados adicionales que soportan los 3 anteriores.
Knowledge Base predicates :
top_goal. especfica cul es la meta de alto nivel a seguir.
un conjunto de reglas que definan la base de conocimientos
para la cul fue creada. ejemplo (aves, peces, familia, regiones
etc).
reglas para definir los atributos de la informacin que el
usuario proveer ejemplo (tamao, color, alas, que come, etc).

Ciclar el sistema
Nuestro shell puede ser mejorado con un comando de alto
nivel llamado go, que a su ves se compone de los siguientes
comandos :
load. Carga la base de conocimientos.
consult. Consulta la base de conocimientos satisfaciendo el
predicado top_goal de nuestra KB.
quit. Salida del shell.

El predicado go desplegar un saludo y dar un prompt al


usuario para que pueda introducir algn comando a
continuacin el codigo
Otros dos comandos que pueden robustecer nuestra base de
conocimientos son :
help. provee una lista de los comandos legales de prolog.
list. listar todos los knowns generados durante la consulta.

Arquitectura de nuestro shell

Corrida usando el interprete

Cdigo Loop command

Mapa de la Representacin del Conocimiento

Mapa de Representacin del Conocimiento

Caractersticas de los Sistemas Expertos en Prolog


Razonamiento enfocado a la meta o backward chaining. es una
tcnica de inferencia que usa el modelo IF-THEN para
descomponer reiteradamente los problemas en pequeas submetas, que sean ms sencillas de solucionar.
Manejo de incertidumbre. La habilidad del sistema a razonar
con reglas y datos que no son conocidos a precisin.
Data driven or Forward chaining. Una tcnica de inferencia que
usa el modelo IF-THEN que deduce el problema a partir de los
datos iniciales.
Data Representation. La manera en que los datos especficos
del problema son guardados y consultados.
User Interface. La porcin del cdigo del problema que hace
una interface amigable y simple para el usuario.
Explanations. La habilidad del sistema a explicar el proceso de
razonamiento que es usado para alcanzar la recomendacin.

Potrebbero piacerti anche