Cálculo Situacional

Anuncio
Ingeniería en Informática – FICH-UNL
Inteligencia Artificial
Unidad 6: Bases de
conocimiento
Docente:
Dr. Georgina Stegmayer
gstegmayer@santafe-conicet.gov.ar
Ingeniería en Informática – FICH-UNL
Cálculo situacional
Docente:
Dr. Georgina Stegmayer
gstegmayer@santafe-conicet.gov.ar
CALCULO SITUACIONAL
4
Olor
Olor
Bris
Bri
Bri
Olor
O
sa
a
Olor
salor
3
Base de
Acción(agarrar, 3)
conocimiento preguntar BC |= accion(a,t) 2
(sentencias) ¿cuál es la mejor acción?
1
de
cir
resplandor(celda(3,2), tiempo(3))
Olor
1
Bris
Bri
Bri
sa
a
sa
Bris
Bri
Bri
asa
sa
Bris
Bri
Bri
asa
sa
Bris
Bri
Bri
asa
sa
2
Bris
Bri
Bri
sa
a
sa
3
ir
b
i
rc
pe
(Olor , Brisa , Resplandor , nada , nada)
La sentencia almacenada en la BC debe incluir
la percepción y el tiempo en que esta fue obtenida.
El agente necesita saber cuándo vio qué cosa.
3
4
CALCULO SITUACIONAL
Sentencias diacrónicas: Permiten razonar a través del
tiempo.
4
Olor
Olor
Bris
Bri
Bri
Olor
O
sa
a
Olor
salor
3
2
Olor
1
1
Bris
Bri
Bri
sa
a
sa
Bris
Bri
Bri
asa
sa
Bris
Bri
Bri
asa
sa
Bris
Bri
Bri
asa
sa
2
Bris
Bri
Bri
sa
a
sa
3
En(agente, celda(1,1),3) + accion(avanzar,3)
4
En(agente, celda(2,1),4)
4
CALCULO SITUACIONAL
Cálculo situacional: método de representación que permite
razonar sobre los resultados de las acciones de un agente
basado en conocimiento.
Situación: denota los estados resultantes de ejecutar
acciones.
Una situación se denota con un valor s. Ej:
s=Resultado(a,s-1)
Una situación s es el resultado de haber aplicado la acción a
en la situación anterior.
5
CALCULO SITUACIONAL
Definiciones en Cálculo situacional:
 Acciones: son términos lógicos como girar, avanzar, tomar, etc.
Situación: términos lógicos que consisten en una situación inicial
y todas las situaciones que son generadas mediante la aplicación
de una acción a una situación.
Flujos: son funciones y predicados que varían de una situación a
otra.
Funciones o predicados atemporales: funciones y predicados
que no varían de situación en situación.
6
AGENTE LOGICO para el Mundo del Wumpus
El primer paso en la construcción del agente es la definición de la
interfase entre el ambiente y el agente.
Una afirmación de una percepción podría ser:
Percepción ([Olor , Brisa , Resplandor , nada , nada], 5)
En la cual se incluyen las percepciones y el indicador temporal que
define en qué momento se obtuvo la misma.
Las acciones del agente deberá ser alguna de las siguientes:
Doblar(derecha), Doblar(izquierda), Avanzar, Disparar,
Tomar, Soltar
7
AGENTE LOGICO para el Mundo del Wumpus
Supongamos que en el mundo de Wumpus se percibe
Brisa y Olor,en el tiempo 5:
Percepción ([Olor , Brisa , nada , nada , nada], 5)
Informar (BC,Percepción ([Olor , Brisa , nada , nada , nada], 5))
Consultar
retorna
una lista
Consultar
(BC,∃a
Acción(a
, 5))como la siguiente
{a / Doblar(derecha)},
con lo cual se espera que Doblar(derecha) sea el valor
asignado a la variable acción
BC |= Acción(a , 5) {a / Doblar(derecha)}
8
LOGICO para
el EL
Mundo
del Wumpus
BASEAGENTE
DE CONOCIMIENTO
PARA
DOMINIO
DE WUMPUS
Las reglas más sencillas para un agente serían Reglas que
vinculen percepciones con acciones:
∀S,B,U,C,T Percepción([S,B,resplandor,U,C], T)
⇒ Acción (tomar,T)
Un esquema de reglas más flexibles, podría desacoplar las
percepciones de las acciones. Por ejemplo:
∀S,B,U,C,T Percepción([S,B,resplandor,U,C], T) ⇒ Oro (T)
∀S,R,U,C,T Percepción([S,brisa,R,U,C], T) ⇒ Ventoso(T)
Luego vincular las conclusiones con acciones:
∀ T Oro(T) ⇒ Acción( tomar , T)
9
LOGICO para
el EL
Mundo
del Wumpus
BASEAGENTE
DE CONOCIMIENTO
PARA
DOMINIO
DE WUMPUS
Qué problema tendría un agente reflexivo simple al aplicar
esta regla?
Reflexión: ∀ T Oro(T) ⇒ Acción( tomar , T)
Cómo podría resolverlo?
10
LOGICO para
el EL
Mundo
del Wumpus
BASEAGENTE
DE CONOCIMIENTO
PARA
DOMINIO
DE WUMPUS
Qué problema tendría un agente reflexivo simple al aplicar
esta regla?
Reflexión: ∀ T Oro(T) ⇒ Acción( tomar , T)
Cómo podría resolverlo?
Reflexión considerando el estado interno:
∀ T Oro(T) ∧ ¬Sostiene (Oro , T) ⇒ Acción( tomar , T)
Sostiene (Oro , T) no puede ser observado
por el Agente. Es necesario mantener la
historia de los cambios sufridos en el dominio.
11
REPRESENTAR LOS CAMBIOS EN EL MUNDO
 En el diseño de agente, se adicionan todas las percepciones a
la BC y en principio la historia de las percepciones es todo
lo que hay que conocer acerca del mundo.
 Si permitimos reglas que hagan referencia a esas
percepciones pasadas así como a las actuales, luego
podemos extender las capacidades de un agente para que
actúe de forma OPTIMA.
12
REPRESENTAR LOS CAMBIOS EN EL MUNDO
La forma más sencilla de
representar cambios es simplemente cambiar la BC,
actualizándola con cada nueva percepción,
sin embargo esto nos deja sin memoria (sobre los estados pasados)
para especular acerca de posibles futuros escenarios.
Una alternativa para mantener esta memoria es
representar en la BC sólo los cambios,
es decir las situaciones y acciones diferentes.
Es necesario decidir cuáles son los objetos y relaciones más apropiadas,
y luego escribir los axiomas vinculados con ellos.
13
CALCULO SITUACIONAL
El Cálculo Situacional propone una forma particular de representar cambios
en la lógica de predicados de primer orden.
El Cálculo Situacional considera al mundo como una secuencia de
situaciones, en donde cada situación es una fotografía del estado del mundo.
Las situaciones son generadas a partir de situaciones previas mediante la
aplicación de acciones.
Cada relación o propiedad que puede cambiar con el tiempo es manejada
mediante la asociación con un argumento situacional extra en el
correspondiente predicado.
En no admite más de una
Ubicación para un dado
Agente.
En (Agente , Ubicación)
En admite más de una
Ubicación para un dado
Agente.
Parámetro
Situacional
En (Agente , Ubicación , Situación)
14
CALCULO SITUACIONAL
El próximo paso es definir como cambia el mundo de situación.
Para esto utilizaremos la función:
Resultado (Acción , Situación)
En donde la función representa la Situación resultante de realizar
Acción a partir de Situación. Por ejemplo:
Resultado (avanzar , s0) = s1
Resultado ( girar (izquierda) , s1) = s2
En(a,[2,1],S1)
En(a,[1,1],So)
avanzar
15
CALCULO SITUACIONAL
Axiomas de efecto
∀ S,G, L en ( G ,L, S ) ∧ Oro ( G ), en(A, L,S) ⇒
Sostiene ( G , Resultado (tomar , S)).
Un axioma similar dice que el agente no sostiene nada luego
de ejecutar una acción de soltar
∀ S , G ¬Sostiene ( G , Resultado (soltar , S))
Estos axiomas se conocen como Axiomas de Efecto.
Describen cambios debido a una acción
16
CALCULO SITUACIONAL
Axiomas de efecto
∀ S,X,Y ,O sostiene ( O , S ) ∧ en(O,X,S) ∧ Adyacente
(X,Y)⇒
en ( O,Y , Resultado (avanzar, S)).
On(X,Z,S),Clear(Y,S),¬(Z=Y) ⇒ Clear(Z,Resultado(putOn(X,Y),S))
17
Mediante los Axiomas de Efecto podemos representar que
cambia, de situación en situación, como resultado de aplicar una
acción.
Clear(X , S’) ?
On(X,Z,S),Clear(Y,S),¬(Z=Y) ⇒ Clear(Z,Resultado(putOn(X,Y),S))
El problema es que estos axiomas no indican qué cosas no
cambian y permanecen entre dos situaciones.
18
CALCULO SITUACIONAL
Axiomas de marco o Frame
Necesitamos describir qué cosas no cambian cuando
se aplica una acción.
Por ejemplo, si el agente está sosteniendo el oro, y se
ejecuta una acción (distinta de soltar), es necesario
representar que el agente lo sigue sosteniendo.
Nada en la BC justifica esta conclusión:
Sostiene ( G , Resultado (avanzar , S)).
19
CALCULO SITUACIONAL
Axiomas de marco o frame
∀S , G , A Sostiene ( G , S ) ∧ ( A ≠ soltar ) ⇒
Sostiene ( X , Resultado ( A , S ))
∀S , G , A ¬Sostiene ( X , S ) ∧
(( A ≠ tomar ) ∨ ¬(Presente ( G , S ) ∧ oro ( G )) ⇒
¬ Sostiene ( G , Resultado ( A , S ))
Axiomas como éstos se denominan axiomas de marco o
FRAME
(su nombre proviene de las técnicas de animación en películas en donde el
fondo permanece constante y los caracteres se mueven de frame en frame).
20
CALCULO SITUACIONAL
Axiomas de estado sucesor
Un Axioma de Estado Sucesor describe un predicado
P (no una acción específicamente) que puede variar
de situación en situación
El predicado P es cierto luego de la aplicación de una acción
⇔
[(la acción hace cierto P) o
(P era cierto y la acción no lo niega)]
21
CALCULO SITUACIONAL
Axiomas de estado sucesor
∀S , G , A, X
Sostiene ( G , Resultado( A , S ))
⇔
[(A = tomar ∧ en ( G, X , S ) ∧ oro ( G )) ∨ (Sostener ( G , S )
∧ A ≠ Soltar)]
Es necesario establecer uno de estos axiomas por cada
uno de los predicados que cambian con el tiempo.
Cada uno de estos axiomas debe listar todas las formas en
que el predicado puede ser cierto y puede ser falso.
22
CALCULO SITUACIONAL
Axiomas de estado sucesor
∀S , G , A, X
Sostiene ( G , Resultado( A , S ))
⇔
[(A = tomar ∧ en ( G, X , S ) ∧ oro ( G )) ∨
(Sostener ( G , S ) ∧ A ≠ Soltar)]
Fluido: cambia de
situación en
situación. Tiene
como argumento el
argumento
situacional
Qué acciones la
hacen verdadera:
axioma de efecto.
Que cosas
permanecen igual:
axioma de cuadro.
23
1
2
3
4
1
4
4
3
3
2
2
1
1
En(a, [1,1], s0)
1
2
3
4
2
3
4
En(a, [1,2], s´0)
4
avanzar
s1 = resultado(avanzar,s0)
3
2
1
girar
s1 = resultado(girar,s´0)
En(a, [1,2], s1)
24
Representar Ubicación en el Mundo
En este problema la ubicación es uno de los aspectos que
tiene quizás mayor importancia, pero no puede ser percibida,
aunque debe ser utilizada para poder ubicar donde están sus
objetivos y los riesgos.
La ubicación la podemos representar con el
Predicado
Posición( Agente , Celda , Situac.),
y la Función
Orientación( Agente , Situac.) = ángulo ;
0° corresponde al eje x este.
Posición ( agente , [1 , 1] , s0)
Orientación (agente , s0) = 0
1
2
4
3
2
1
25
3
4
El axioma de estado sucesor para Orientación
Orientación( Agente , Situación)
∀ a , d , p , s Orientación(p , Resultado(a , s)) = d ⇔
[(a = Doblar(derecha) ∧ d = Mod(Orientación(p , s) - 90 , 360))
∨
(a = Doblar(izquierda) ∧ d = Mod(Orientación(p , s) + 90 , 360))
∨
(Orientación(p , s)=d ∧ ¬(a=Doblar(derecha) ∨ a=Doblar(izquierda)))]
1
2
Orientación(agente ,
4
Resultado(Doblar(izquierda) , s0)) = d
3
2
Posición ( agente , [1 , 1] , s0)
Orientación (agente , s0) = 0
1
26
3
4
1
Es necesario conocer como se organizan
las celdas, para lo cual se puede definir la
función:
2
4
3
PróximaUbicación (Celda , Orientación)
2
Posición ( agente , [1 , 1] , s0)
Orientación (agente , s0) = 0
1
Es necesario conocer como se organizan las celdas:
∀X , Y PróximaUbicación ([X , Y] , 0) = [ X + 1 , Y]
∀X , Y PróximaUbicación ([X , Y] , 90) = [ X , Y + 1]
∀ X , Y PróximaUbicación ([X , Y] , 180) = [ X - 1 , Y]
∀ X , Y PróximaUbicación ([X , Y] , 270) = [ X , Y - 1]
27
3
4
Empleando la función:
PróximaUbicación (Celda , Orientación)
1
2
3
4
4
3
2
Posición ( agente , [1 , 1] , s0)
1
Orientación (agente , s0) = 0
se puede inferir cual es la celda que se encuentra delante del
agente:
∀p , l , s En(p,l,s)
⇒ UbicaciónAdelante(p,s)=PróximaUbicación(l,Orientación(p,s))
Se define la adyacencia
∀ l1 , l2 Adyacente(l1 , l2) ⇔ ∃ d l1 = PróximaUbicación(l2,d)
28
Definición de las paredes o límites del espacio
∀ x , y Pared ([x , y]) ⇔ (x = 0 ∨ x = 5 ∨ y = 0 ∨ y = 5)
El axioma de estado sucesor para ubicación
En( Agente , Ubicación , Situación)
∀∀ a , d , p , s En(p , l , Resultado(a , s)) ⇔
•
[(a = Avanzar ∧ l = UbicaciónAdelante(p , s) ∧ ¬Pared(l))
•
∨
•
(En(p , l , s) ∧ a ≠ Avanzar)]
1
4
3
Posición ( agente , [1 , 1] , s0)
Orientación (agente , s0) = 0
2
1
29
2
3
4
REGLAS CAUSALES
Las Reglas Causales expresan que ciertas propiedades ocultas
del dominio producen determinadas percepciones
Reglas que indican las condiciones de las celdas adyacentes
a las celdas que alojan a Wumpus o Caverna:
∀∀ l1 Wumpus ( l1) ⇒ [∀ l2 Adyacente(l1 , l2) ⇒ Olor(l2)]
∀ l1 , l2 Caverna( l1 ) ⇒ [∀ l2 Adyacente(l1 , l2) ⇒ brisa(l2)]
∀ l2 [∀ l1 Adyacente(l1 , l2) ⇒ ¬Caverna( l1 ) ] ⇒ ¬ brisa(l2)
30
REGLAS CAUSALES
Reglas que indican las condiciones de las celdas
seguras:
∀∀ l (¬Wumpus ( l ) ∧ ¬ Caverna ( l )
∀⇔
•OK(l)
31
REGLAS DE DIAGNÓSTICO
Las Reglas de Diagnóstico infieren ciertas propiedades del dominio a
partir de información obtenida de determinadas percepciones
Una representación para las percepciones sería:
∀S,B,U,C,s Percepción([S,B,resplandor,U,C], s) ⇒ Oro (s)
∀S,R,U,C,s Percepción([S,brisa,R,U,C], s) ⇒ Brisa(s)
Reglas que asocian lo que perciben a la celda en la que se encuentran:
∀∀ l , s En(Agente , l , s) ∧ Brisa(s) ⇒ corrienteAire(l)
∀∀ l , s En(Agente , l , s) ∧ Olor(s) ⇒ apesta(l)
∀l1 apesta(l1) ⇒ ∃ l2 Adyacente(l1,l2) ∧ Wumpus ( l2)
∀l1 ¬apesta(l1) ⇒ ¬ ∃ l2 Adyacente(l1,l2) ∧ Wumpus ( l2)
∀l1 apesta(l1) ⇔∃ l2 Adyacente(l1,l2) ∧ Wumpus32( l2)
ELEGIR ACCIONES: ranking
Es conveniente separar los HECHOS acerca de las Acciones de los
HECHOS acerca de los objetivos, lo cual implica que el agente puede ser
reprogramado con solo pedirle que consiga algo diferente
∀a, sMuyBuena (a, s) ⇒ Acción (a, s)
∀a, s Buena (a, s) ∧ (¬∃ bMuyBuena (b, s)) ⇒ Acción (a, s)
∀a, s Regular (a, s) ∧ ( ¬∃b MuyBuena (b, s) ∨ Buena (b, s)) ⇒ Acción (a, s)
∀a, sRiesgosa (a, s) ∧ (¬∃b MuyBuena (b, s) ∨ Buena (b, s) ∨ Regular (b, s)) ⇒ Acción (a, s)
Un sistema que contiene este tipo de reglas se denomina
Sistemas de Acción-Valor
Notar que las reglas no hacen referencia que acción realmente
se debe ejecutar, solo cuan deseable es.
33
CATEGORIZACIÓN DE ACCIONES EN
EL PROBLEMA DE WUMPUS
Hasta el punto de recoger el oro, la estrategia básica del
agente será:
• Acciones MuyBuenas incluyen tomar el oro cuando lo
encuentran y salir de la cueva con el oro
• Acciones Buenas incluyen moverse a celdas OK y que no
hayan sido visitadas
• Acciones Regulares incluye moverse a celdas que no se
sabe que sean mortales ni OK
• Acciones Mortales serán mover a una celda en la cual se
sabe que está el monstruo o hay un pozo
∀ s Sostener (oro, Re sultado(tomar , s)) ⇒ MuyBuena(tomar , s)
34
Agente que resuelve problemas.
Cómo??  p.e. con Cálculo Situacional
Axiomas de estado sucesor:
Un axioma de estado sucesor tiene que elaborar una lista de todas las situaciones que
convierten en verdadero el predicado, y todas aquellas que lo convierten en falso.
Axioma sigue siendo
VERDADERO  [ una acción lo valida
∨
sigue siendo válido y ninguna accion lo convirtió en falso]
Ingeniería en Informática – FICH-UNL
Sistemas de
producciones
Docente:
Dr. Georgina Stegmayer
gstegmayer@santafe-conicet.gov.ar
ENCADENAMIENTO HACIA ADELANTE



Comenzar desde las sentencias atómicas en una
BC y aplicar Modus Ponens añadiendo las
sentencias atómicas nuevas hasta que no se
puedan realizar más inferencias o hasta que el
objetivo haya sido agregado.
Cada inferencia es la aplicación de modus ponens
Utiliza solamente cláusulas positivas: disyunción
de literales de los cuales sólo uno es positivo.
ENCADENAMIENTO HACIA ADELANTE

BC:
[1]Rey(x) ^ codicioso(x) ⇒ malvado(x)
[2]Rey(juan).
[3]Codicioso(juan).
reglas
Sentencias
Atómicas
Preguntar a BC: ¿quién es malvado? Malvado(y)?
Aplicando modus ponens:
Con θ={x/juan} se concluye:
Malvado(juan).
ENCADENAMIENTO HACIA ADELANTE
Como se resolvió?
Emparejar patrones: buscar un θ/ la premisa de la regla se haga
verdadera en la BC.
p1 ^ p2 ^..... ^ pn ⇒ q y existe p’1, p’2 ....p`n en BC y
p1 θ = p’1 ....
Aplicar modus ponens: agregar a la BC q’ = q. θ
Unifica malvado(y) con malvado(juan)?
Si: θ={y/juan}
ENCADENAMIENTO HACIA ADELANTE
Para c/ regla:
p1^p2^...^pn ⇒ q
encontrar θ / sust(θ,p1,p1...pn)
=sust(p’1,p’2, ..., p’n) para algún p’1,p’2...
en BC
Hacer q’ = sust(θ, q)
Agregar q’ a nuevo.
Match
ejecutar
Objetivo?
si
no
Agregar q’ a BC si no
está previamente
Unifica(q’, objetivo) ?
Fin
ENCADENAMIENTO HACIA ADELANTE

Ventajas:
 Económico.
 Útiles
para realizar inferencias a partir de nueva
información.

Desventajas:
 Cláusulas
positivas de primer orden
 Se pueden generar infinitos hechos nuevos.

 El
Ej: numNat(0). numNat(n) ⇒ numNat(s(n)).
“emparejamiento de patrones” puede ser muy
costoso.
 Deducción de hechos irrelevantes.
Sistemas de producciones
con encadenamiento hacia adelante
M.I
B.C
M.P
M.T.
M.I: Máquina de inferencia
BC: Base de conocimiento
MP: Memoria de producciones
MT: Memoria de trabajo.
Sistemas de producciones
con encadenamiento hacia adelante

Memoria de Trabajo:
 Contiene
un conjunto de literales positivas
que no contienen variables. Por ejemplo:
(perro tiene pelo)
(Tito es_un caballo).
(Perro es_un mamífero).
Sistemas de producciones
con encadenamiento hacia adelante

Memoria de Producciones:
está constituidas por reglas del tipo:
IF
<cond 1>
<cond 2>
...
<cond n>
THEN
<acc 1>
...
<acc n>
lado izquierdo - antecedentes
lado derecho - consecuente
Sistemas de producciones
con encadenamiento hacia adelante

Memoria de Producciones:
 Lado

Izquierdo:
cada antecedente debe aparear con una
afirmación. Puede contener variables
 Lado

Derecho:
especifica acciones sobre la memoria de trabajo
(agregar, eliminar elementos de la MT).
Sistemas de producciones
con encadenamiento hacia adelante

Ejemplo de Regla:
IF
(?x tiene pelo)
Then
add (?x es un mamifero).
?x: es una variable que adquiere valor cuando la regla es
apareada con algún hecho de la MT.
Sistemas de producciones
con encadenamiento hacia adelante
Encadenamiento hacia adelante
 Match (fase cotejo)
Se compara cada elemento de la premisa con el contenido de la Memoria
de Trabajo. Se incorpora al conjunto de conflicto aquellas reglas cuya
premisa se satisface con la memoria de trabajo actual
 Resolución de conflictos
Se decide cual de las reglas contenidas en el conjunto de conflicto se va
a ejecutar. Entre los criterios empleados se pueden mencionar: la más
específica, la satisfecha con hechos más recientes, etc.
 Aplicación
Se aplica el consecuente de la regla seleccionada. Se agregan a la
memoria de trabajo los hechos que componen el consecuente o se
ejecutan las acciones
Sistemas de producciones
con encadenamiento hacia adelante

Fase de cotejo: unificar las variables de los
antecedentes con los elementos de la MT.
MT.
(perro tiene pelo)
MP.
IF
(?x tiene pelo)
Then
add (?x es un mamifero).
Unifica ?x con
Perro
Sistemas de producciones
con encadenamiento hacia adelante

Fase de cotejo:
 Identifica
todas aquellas reglas que
satisfacen sus antecedentes.
 Resultado:
disparar.
conjunto de reglas candidatas a
Sistemas de producciones
con encadenamiento hacia adelante
Fase de solución de conflictos:
seleccionar cual de las reglas candidatas
ejecutar.
 Estrategias:

 No
duplicación
 Novedad
 Especificidad
 Prioridad de operación.
Sistemas de producciones
con encadenamiento hacia adelante

Fase de ejecución:
 Una
vez que se seleccionó cual regla
aplicar se ejecuta la misma. Existen dos
interpretaciones posibles:

Agregar los consecuentes a la MT

Ejecutar las acciones indicadas en el
consecuente (add, erase, modify)

Ejemplo: un robot en un Zoológico (ejercicio 1 de la
guía).
•
pelos(x) => mamífero(x)
“todos los mamíferos tienen pelos ”

Ejemplo: un robot en un Zoológico (ejercicio 1 de la
guía).
•
•
pelos(x) => mamífero(x)
daLeche(x) => mamífero(x)
“se sabe que los mamíferos dan leche”

Ejemplo: un robot en un Zoológico (ejercicio 1 de la
guía).
•
•
•
•
•
pelos(x) => mamífero(x)
daLeche(x) => mamífero(x)
plumas(x) => ave(x)
vuela(x) => ave(x)
poneHuevos(x) => ave(x)
“Las aves, por el contrario, tienen plumas, vuelan y ponen huevos ”

Ejemplo: un robot en un Zoológico (ejercicio 1 de la
guía).
•
•
•
•
•
pelos(x) => mamífero(x)
daLeche(x) => mamífero(x)
plumas(x) => ave(x)
vuela(x) => ave(x)
poneHuevos(x) => ave(x)

Ejemplo: un robot en un Zoológico.
•
•
mamífero(x) ∧ comecarne(x) => carnívoro(x)
mamífero(x) ∧ dientes(x,afilados) ∧ garras(x) ∧ ojos(x,adelante) =>
carnívoro(x)
mamífero(x) ∧ rumiante(x) => ungulado(x)
•
•
carnívoro(x) ∧ color(x,amarillento) ∧ manchas(x,negras) =>
leopardo(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ rayas(x,negras) => tigre(x)
•
ungulado(x) ∧ piernas(x,largas) ∧ cuello(x,largo) ∧
color(x,amarillento) ∧ manchas(x,negras) => jirafa(x)
•
ungulado(x) ∧ color(x,blanco) ∧ rayas(x,negras) => cebra(x)
•
ave(x) ∧ noVuela(x) ∧ patas(x,largas) ∧ cuello(x,largo) ∧
color(x,blancoynegro) => avestruz(x)
•
ave(x) ∧ noVuela(x) ∧ nada(x) ∧ color(x,blancoynegro) =>
pingüino(x)
•
ave(x) ∧ vuela(x) => tucán(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ manchas(x,negras) =>
leopardo(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ rayas(x,negras) => tigre(x)
•
ungulado(x) ∧ piernas(x,largas) ∧ cuello(x,largo) ∧
color(x,amarillento) ∧ manchas(x,negras) => jirafa(x)
•
ungulado(x) ∧ color(x,blanco) ∧ rayas(x,negras) => cebra(x)
•
ave(x) ∧ noVuela(x) ∧ patas(x,largas) ∧ cuello(x,largo) ∧
color(x,blancoynegro) => avestruz(x)
•
ave(x) ∧ noVuela(x) ∧ nada(x) ∧ color(x,blancoynegro) =>
pingüino(x)
•
ave(x) ∧ vuela(x) => tucán(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ manchas(x,negras) =>
leopardo(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ rayas(x,negras) => tigre(x)
•
ungulado(x) ∧ piernas(x,largas) ∧ cuello(x,largo) ∧
color(x,amarillento) ∧ manchas(x,negras) => jirafa(x)
•
ungulado(x) ∧ color(x,blanco) ∧ rayas(x,negras) => cebra(x)
•
ave(x) ∧ noVuela(x) ∧ patas(x,largas) ∧ cuello(x,largo) ∧
color(x,blancoynegro) => avestruz(x)
•
ave(x) ∧ noVuela(x) ∧ nada(x) ∧ color(x,blancoynegro) =>
pingüino(x)
•
ave(x) ∧ vuela(x) => tucán(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ manchas(x,negras) =>
leopardo(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ rayas(x,negras) => tigre(x)
•
ungulado(x) ∧ piernas(x,largas) ∧ cuello(x,largo) ∧
color(x,amarillento) ∧ manchas(x,negras) => jirafa(x)
•
ungulado(x) ∧ color(x,blanco) ∧ rayas(x,negras) => cebra(x)
•
ave(x) ∧ noVuela(x) ∧ patas(x,largas) ∧ cuello(x,largo) ∧
color(x,blancoynegro) => avestruz(x)
•
ave(x) ∧ noVuela(x) ∧ nada(x) ∧ color(x,blancoynegro) =>
pingüino(x)
•
ave(x) ∧ vuela(x) => tucán(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ manchas(x,negras) =>
leopardo(x)
•
carnívoro(x) ∧ color(x,amarillento) ∧ rayas(x,negras) => tigre(x)
•
ungulado(x) ∧ piernas(x,largas) ∧ cuello(x,largo) ∧
color(x,amarillento) ∧ manchas(x,negras) => jirafa(x)
•
ungulado(x) ∧ color(x,blanco) ∧ rayas(x,negras) => cebra(x)
•
ave(x) ∧ noVuela(x) ∧ patas(x,largas) ∧ cuello(x,largo) ∧
color(x,blancoynegro) => avestruz(x)
•
ave(x) ∧ noVuela(x) ∧ nada(x) ∧ color(x,blancoynegro) =>
pingüino(x)
•
ave(x) ∧ vuela(x) => tucán(x)
Memoria de trabajo:
pelos(Matilde) ∧ cuello(Matilde, largo) ∧ patas(Matilde, largas) ∧
rumiante(Matilde) ∧ color(Matilde, amarillento) ∧ manchas(Matilde,
negras)
pelos(Facu) ∧ garras(Facu) ∧ ojos(Facu, adelante) ∧ color(Facu,
amarillento) ∧ rayas(Facu, negras) ∧ dientes(Facu, afilados)
plumas(Mario) ∧ color(Mario, blancoynegro) ∧ noVuela(Mario) ∧
nada(Mario)
pelos(x) => mamífero(x)
plumas(x) => ave(x)
1er ciclo:
Fase de cotejo: conjunto de reglas activas={1, 3}
Elementos de la MT que unifican con antecedentes:
(pelos(Matilde), pelos(Facu), plumas(Mario))
Fase de resolución de conflicto: se selecciona la regla 1 por prioridad, con los
elementos pelos(Matilde) y pelos(Facu)
Fase de ejecución: se agrega a la memoria de trabajo:
mamífero(Matilde), mamífero(Facu)
Memoria de trabajo:
pelos(Matilde) ∧ cuello(Matilde, largo) ∧ patas(Matilde, largas) ∧
rumiante(Matilde) ∧ color(Matilde, amarillento) ∧ manchas(Matilde,
negras)
pelos(Facu) ∧ garras(Facu) ∧ ojos(Facu, adelante) ∧ color(Facu,
amarillento) ∧ rayas(Facu, negras) ∧ dientes(Facu, afilados)
plumas(Mario) ∧ color(Mario, blancoynegro) ∧ noVuela(Mario) ∧
nada(Mario)
mamífero(Matilde) ∧ mamífero(Facu)
2er ciclo:
Fase de cotejo: reglas activas={1, 3, 7 y 8}.
Elementos de la MT que unifican con antecedentes:
(pelos(Matilde), pelos(Facu), plumas(Mario), garra(Facu), ojos(Facu, adelante),
mamífero(Facu), mamífero(Matilde), dientes(Facu, afilados))
Fase de resolución de conflicto: entre la 7 y la 8 que son las reglas que unifican con
valores más recientes en la MT, se selecciona la 7 por ser más específica.
Fase de ejecución: se agrega a la memoria de trabajo:
carnívoro(Facu)
3er ciclo:
Fase de cotejo: reglas activas={1, 3, 7, 8, 10}.
Elementos de la MT que unifican con antecedentes:
(pelos(Matilde), pelos(Facu), plumas(Mario), garra(Facu), ojos(Facu, delante),
mamífero(Facu), mamífero(Matilde), dientes(Facu, afilados), carnívoro(Facu),
color(Facu,amarillento))
Fase de resolución de conflicto: se selecciona la 10 es la regla que unifica con valores
más recientes en la MT
Fase de ejecución: se agrega a la memoria de trabajo: tigre(Facu)
Respuesta:
Facundo es un tigre, Matilde es una jirafa y Mario es un pingüino
Descargar