Tema 2 (II): Representación del Conocimiento en IA: Sistemas Basados en Reglas Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas Tema 2 (II): Representación del Conocimiento en IA: Sistemas Basados en Reglas 2. 1. Introducción. 2. 2. Representación Basada en la Lógica. 2. 3. Representación Basada en Reglas. 2. 3. 1. Introducción. 2. 3. 2. Repres. del Conocim. en SBR. 2. 3. 2. 1. Hechos: Variables-Valor. 2. 3. 2. 2. Reglas de Producción. 2. 3. 2. 3. Hechos: Tuplas Objeto-Atributo-Valor. 2. 3. 3. Relación entre Reglas de Producción y la Lógica de Predicados de Primer Orden. 2. 3. 4. Inferencia en Sistemas Basados en Reglas. 2. 3. 4. 1. Encadenamiento Inferencial. 2. 3. 4. 2. Control Inferencial. 2. 3. 5. Patrones en Sistemas Basados en Reglas. 2. 4. Sistemas de Representación Estructurados. 1 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas Bibliografía Básica: Básica: – [Lucas 1991] Peter Lucas and Linda Van Der Gaag, Gaag, "Principles "Principles of Expert Systems". Systems". AddisonAddison-Wesley. Wesley. (1991). Capítulo 3. Bibliografía Complementaria: Complementaria: – [Rich 1994] E. Rich, Rich, K. Knight, Knight, “Inteligencia Artificial”, McGraw Hill (1994). Capítulo 6. – [Charniak 1985] E. Charniak, Charniak, D. McDermott, McDermott, "Introduction "Introduction to Artificial Intelligence", Intelligence", AddisonAddison-Wesley (1985). Capítulo 7. – [Russel 1996] S. Russel, Russel, “Inteligencia Artificial: Un enfoque moderno”, Prentice Hall (1996). Capítulo 10. – [Negnevitsky 2002] M. Negnevitsky, Negnevitsky, “Artificial Intelligence: A Guide to Intelligent Systems”, AddisonAddison-Wesley (2002). Capítulo 2. Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.1. Introducción (I) Contenido lógico de una fbf: fbf: – Independiente de la expresión en el calculo de predicados. Conocimiento experto: – Información extraextra-lógica o heurística implícita sobre cómo usar dicho conocimiento de forma optima. Razonamiento humano: Ejemplo: – No es en base a 'cláusulas', sino en base a 'reglas’. SI x,y >0 ENTONCES x*y>0 ∀x ∀y [>(x,0) ^ >(y,0)] → >(POR(x,y),0) ≡ ∀x ∀y [>(x,0) ^ ¬ >(POR(x,y),0)] → ¬ >(y,0) 2 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.1. Introducción (II) La implicación expresa cómo obtener una información: ∀x vertebrado(x) → animal(x) ∀x ∀y [trabaja[trabaja-en(depen(dep-ventas,x) ^ Edad(x,y) ^ >(y,30)] → casado(x) ∀x [cilindro(x) ^ rojo(x)] → ∃y ∃y cubo(y)^sobre(y,x) Forma clausal : 9 Forma más uniforme (proceso de demostración más eficiente) Pérdida de información de control Cada implicación lleva su propia información heurística de control A A vv B B vv C C ≡≡ ¬¬ A ^ ¬ B A ^ ¬ B→ →C C ¬¬ A A ^^ ¬¬ C C→ →B B ¬¬ B ^ ¬ C → A B^¬C→A ¬¬ A A→ → (B (B vv C) C) ¬¬ B → (A v C) B → (A v C) ¬¬ C C→ → (A (A vv B) B) Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Sistemas Basados en Reglas Base de Hechos (BH) – Información Factual Representación Representación de de Hechos Hechos del del Dominio/Problema Dominio/Problema Hechos Hechos no no estructurados: estructurados: ¾ ¾ Listas, Strings Listas, Strings, Strings,, etc. etc. -Valor Variable Conjunto Conjunto de de pares: pares: VariableVariable-Valor Conjunto Conjunto de de tuplas tuplas Objeto Objeto –– Atributo Atributo –– Valor Valor Base de Reglas (BR) – Conocimiento Normativo Patrones Patrones Otras Otras representaciones: representaciones: ¾ ¾ Declarativas ), .. .. .. frames Declarativas (lógica), (lógica), Estructurales Estructurales (redes, (redes, frames), frames), Control – Motor de Inferencia 3 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Sistemas Basados en Reglas Base de Hechos (BH) – Información Factual Representación Representación de de Hechos Hechos del del Dominio/Problema Dominio/Problema Declaración Declaración del del Dominio Dominio de de la la BH: BH: ONTOLOGÍA ONTOLOGÍA Base de Reglas (BR) – Conocimiento Normativo Específico Específico aa un un dominio dominio de de problemas problemas Reglas Reglas de de Producción Producción Control – Motor de Inferencia Representación Representación conocimiento conocimiento general general de de resolución resolución de de problemas problemas Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Variable Sistemas–Basados 2.3.2.1. Hechos: Valor en Reglas Hecho: Var. cuyo valor es una cte. cte. o cjto. cjto. de ctes. ctes. Declaración Declaración del del Dominio Dominio de de la la BH: BH: ONTOLOGÍA ONTOLOGÍA valores Conjunto Conjunto de de todas todas las las variables, variables, junto junto con con sus sus posibles posibles valores. valores.. Descripción Descripción de de la la información información que que es es relevante relevante en en el el dominio dominio modelado modelado por por el el sistema. sistema. Información Información del del problema problema Conjunto Conjunto de de pares pares varoable varoable –– valor. valor. Tipos de Variables Variables Variables uni uni –– valor valor Variables Variables multi multi –– valor valor Información Información que que es es única. única. Sexo, Sexo, Edad, Edad, Temperatura, Temperatura, ... ... cjto ctes Valor Valor puede puede ser ser un un cjto. cjto.. de de ctes. ctes.. Enfermedad, Enfermedad, Síntomas, Síntomas, ... ... 4 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Variable Sistemas–Basados 2.3.2.1. Hechos: Valor en Reglas Declaración del Dominio de una BH: ONTOLOGÍA (I) – Declaración de Variables: Puede ser: • No – Tipificada: Sólo se define el nombre • Tipificada: – Variable mono-valor (xs) = xs : τ – Variable multi-valor (xm) = xm : 2τ • τ: Tipo que denota un cjto. no vacío de ctes. (enteros, reales, {blanco, rojo, azul}) – Declaración del Dominio de la BH • Conjunto D de declaraciones de variables (restringe el valor que una variable puede tomar). D = { sexo: {mujer, hombre}, edad: int, nombre: string, dolencia: 2 {fiebre, dolor-abdominal, dolor-cabeza}, trastorno: 2 {aneurisma-aortico, estenosis-arterial} } Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Variable Sistemas–Basados 2.3.2.1. Hechos: Valor en Reglas Declaración del Dominio de una BH: ONTOLOGÍA (II) – Hecho: Una variable junto con el valor(es) que adopta: • xs = c, c donde c ∈ t. (xs es declarada como xs:t) m • x = C, C donde C ⊆ t. (xm es declarada como xm:2t) – Conjunto de Hechos { x1s = c1, ......., xps = cp, x1m = C1, ......., xqm = Cq } donde ci son constantes y Cj conjuntos de constantes. • Una var. puede ocurrir una sola vez en un cjto. de hechos. {{ sexo sexo == hombre, hombre, edad edad == 27, 27, dolencia dolencia == {{ fiebre, fiebre, dolor dolor –– abdominal abdominal }, }, enfermedad enfermedad == {{ aneurisma aneurisma –– aórtico aórtico }} }} 5 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Base Base de de Reglas Reglas Base Base de de Hechos Hechos Control Control LHS Si ANTECEDENTE entonces CONSECUENTE RHS Representan: Conocimiento de resolución de problemas de un dominio específico (ejemplo: reglas físicas) Conocimiento heurístico o reglas de experiencia (analogías informales en la vida real). Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Base Base de de Reglas Reglas Base Base de de Hechos Hechos Control Control LHS Si ANTECEDENTE entonces CONSECUENTE RHS el paciente sufre dolor abdominal, y un murmullo abdominal es percibido por auscultación, y una masa pulsante es palpada en el abdomen then el paciente padece una aneurisma aórtico if 6 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Antecedente (LHS): Condiciones sobre la BH – ¿xis = c?, donde c ∈ τ. (xs : τ) (( test test (( == ?a ?a 77 )) )) – ¿xjm = C?, donde C ⊆ τ. (xm : 2τ) (( test test (( member member ?enfermedad ?enfermedad gripe gripe )) )) Consecuente (RHS): – Asertar o eliminar hechos: • Añadir (xis = c | xjm = C) (( bind bind ?a ?a 66 )) )) • Eliminar (xis (( bind bind ?enfermedad ?enfermedad (( insert insert ?enfermedad ?enfermedad faringitis faringitis )) )) =c | xjm =C) (( bind bind ?a ?a 77 )) (( bind bind ?enfermedad ?enfermedad (( delete delete ?enfermedad ?enfermedad faringitis faringitis )) )) – Acciones externas Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Sintaxis – <name> :: = string – <conditional-element> ::= <and-CE> | <or-CE> | <not-CE>| <test-CE>| <ordered-pattern> | <assigned-pattern> – <and-CE> ::= ( and <conditional-element>+ ) – <or-CE> ::= ( or <conditional-element>+ ) – <not-CE> ::= ( not <conditional-element> ) – <test-CE> ::= ( test ( <function-call> <term> <term> ) ) – <function-call> ::= = | > | >= | < | <= | <> | eq | neq | <member> – <term> ::= <variable> | <constant> – <variable> ::= ? <name> – <constant> ::= <number> | <name> (( defrule defrule <name> <name> – <member> ::= member <variable> <term> ++ <conditional-element> <conditional-element> – <assigned-pattern> ::= <variable> <- <ordered-pattern> => => – <ordered-pattern> ::= ( <name> <constraint>* ) <action>* <action>* – <constraint> ::= $ <variable> | <term> )) 7 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Sintaxis – <action> ::= ( bind <variable> <term> ) | ( <action-multi-value> ) | ( retract <term> ) | ( assert <ordered-pattern> ) – <action-multi-value> ::= ( create | <replace> | <action-name> <variable> <term>+ ) – <action-name> ::= insert | delete – <replace> ::= replace <variable> <term> <term>+ (( defrule defrule <name> <name> <conditional-element> <conditional-element>++ => => <action>* <action>* )) Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Antecedente – Predicados (se evalúan a Verdadero o Falso) • Variables uni-valuadas (( test test (( == ?a ?a 77 )) )) (( test test (( eq eq ?a ?a casa casa )) )) (( test test (( neq neq ?a ?a casa casa )) )) == (( not not (( test test (( eq eq ?a ?a casa casa )) )) )) (( or or (( test test (( >= >= ?a ?a 44 )) )) (( test test (( == ?a ?a 33 )) )) )) (( and and (( test test (( >= >= ?a ?a 77 )) )) (( test test (( << ?a ?a 20 20 )) )) (( test test (( == ?b ?b 99 )) )) )) == (( and and (( and and (( test test (( >= >= ?a ?a 77 )) )) (( test test (( << ?a ?a 20 20 )) )) )) (( test test (( == ?b ?b 99 )) )) )) • Variables multi-valuadas (member (member <variable> <variable> <term>) <term>) <variable>: <variable>: var. var. multivaluada multivaluada <term> <term> :: elemento elemento (( test test (( member member ?lista ?lista 33 )) )) (( and and (( test test (( member member ?lista ?lista 33 )) )) (( not not (( test test (( member member ?lista ?lista 77 )) )) )) )) 8 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Consecuente – Asignación de Valores • Variables uni-valuadas (( bind bind ?a ?a 33 )) (( bind bind ?a ?a casa casa )) (( bind bind ?b ?b ?a ?a )) ?a • Variables multi-valuadas (( bind create)) )) ((create) bind ?a ?a (create (( bind create (( 11 22 )) ((create bind ?a ?a (create )) )) (( bind insert ?a ((insert bind ?a ?a (insert ?a 44 55 66 77 )) )) (( bind insert ?a ((insert bind ?a ?a (insert ?a casa casa agua agua )) )) (( )) (( 11 22 )) (( 44 55 66 77 11 22 )) (( casa casa agua agua 44 55 66 77 11 22 )) (create): (create): crea crea una una variable variable multicampo multicampo vacía. vacía. (insert (insert <variable> <variable> <term>+) <term>+) <variable>: <variable>: var. var. multicampo multicampo donde donde se se quiere quiere insertar insertar un un valor valor <term> <term>++:: uno uno oo más más elementos, elementos, pudiendo pudiendo ser ser éstos éstos vars. vars. oo ctes. ctes. Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Consecuente – Modificación de Valores • Variables uni-valuadas (( bind bind ?a ?a 11 )) • Variables multi-valuadas (( bind replace ?a ((replace bind ?a ?a (replace ?a 44 10 10 )) )) (( bind ?a (replace replace ?a casa ( bind ?a (replace ?a casa hotel hotel apartamento apartamento )) )) ?a (( casa casa agua agua 10 10 55 66 77 11 22 )) (( hotel apartamento hotel apartamento agua agua 10 10 55 66 77 11 22 )) (replace (replace <variable> <variable> <term> <term> <term>+) <term>+) <variable>: <variable>: var. var. multicampo multicampo donde donde se se quiere quiere reemplazar reemplazar un un valor valor <term>: <term>: elemento elemento que que se se quiere quiere reemplazar reemplazar <term> <term>++:: elemento elemento oo elementos elementos por por los los que que se se va va aa sustituir sustituir el el elemento elemento aa reemplazar. reemplazar. 9 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Consecuente – Eliminación de Valores • Variables uni-valuadas (( bind bind ?a ?a 11 )) • Variables multi-valuadas (( bind delete ?a ((delete bind ?a ?a (delete ?a 10 10 55 66 )) )) ?a (( hotel hotel apartamento apartamento agua agua 77 11 22 )) (delete (delete <variable> <variable> <term>+) <term>+) <variable>: <variable>: var. var. multicampo multicampo donde donde se se quiere quiere borrar borrar un un valor valor <term> <term>++:: se se puede puede borrar borrar uno uno oo más más elementos elementos de de la la var. var. multicampo multicampo (vars. (vars. oo ctes.). ctes.). Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Ejemplos (I): – If el paciente sufre dolor abdominal, y un murmullo abdominal es percibido por auscultación, y una masa pulsante es palpada en el abdomen then el paciente padece una aneurisma aórtico (( defrule defrule aneurisma aneurisma (( and -abdominal )) )) dolor and (( test test (( eq eq ?dolencia ?dolencia dolordolor-abdominal (( test ( eq ?auscultación murmullo-abdominal )) )) test ( eq ?auscultación murmullo murmullo-abdominal (( test palpacion masa-pulsante )) )) masa test (( eq eq ??palpacion masa-pulsante )) => => (( bind bind ?enfermedad ?enfermedad (( insert -aórtico )) )) aneurisma insert ?enfermedad ?enfermedad aneurismaaneurisma-aórtico )) 10 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Ejemplos (II): – If el paciente experimenta un dolor en la pantorrilla cuando anda, que desaparece gradualmente en reposo then una estenosis de una de las arterias de la pierna, posiblemente debido a una arteriosclerosis, es concebible (( defrule defrule estenosis estenosis (( and -dedolor de-pantorrilla )) )) and (( test test (( eq eq ?dolencia ?dolencia dolordolor-de-pantorrilla (( test test (( eq eq ?presencia ?presencia andando andando )) )) (( test -reposo )) )) en test (( eq eq ?ausencia ?ausencia enen-reposo )) => => (( bind -arterial )) estenosis bind ?causa ?causa estenosisestenosis-arterial (( bind bind ?enfermedad ?enfermedad (( insert insert ?enfermedad ?enfermedad arteriosclerosis arteriosclerosis )) )) )) Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Ejemplos (III): – If la presión asistólica excede los 140 mmHg, y la presión del pulso excede los 50 mmHg, y es percibido un murmullo diastólico, o es observado un corazón agrandado then el paciente sufre regurgitación aórtica (( defrule defrule regurgitación regurgitación (( and -asistólica 140 ?presión and (( test test (( >> ?presión?presión-asistólica 140 )) )) (( test -puslo 50 ?presión test (( >> ?presión?presión-puslo 50 )) )) (( or -diastólico )) )) murmullo or (( test test (( eq eq ?auscultación ?auscultación murmullomurmullo-diastólico (( test -agrandado )) )) )) corazón test (( eq eq ?percusión ?percusión corazóncorazón-agrandado )) => => (( bind -aórtica )) )) regurgitación bind ?enfermedad ?enfermedad (( insert insert ?enfermedad ?enfermedad regurgitaciónregurgitación-aórtica )) 11 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento endeSistemas Basados en Reglas 2.3.2.2. Reglas Producción Predicado Predicado oo Acción Acción (test (test (eq (eq ?x ?x c)) c)) (test (test (member (member ?x ?x c)) c)) (test (test (not (not (eq (eq ?x ?x c)) c)) (test (test (neq (neq ?x ?x c)) c)) (test (not (member (test (not (member ?x ?x c)) c)) (test (test (< (< ?x ?x c)) c)) (test (test (> (> ?x ?x c)) c)) (bind (bind ?x ?x c) c) (bind (bind ?x ?x (insert (insert ?x ?x c) c) (bind (bind ?x ?x (delete (delete ?x ?x c) c) vars. vars. uni-valor uni-valor xxss == cc ----------xxss ≠≠ cc xxss ≠≠ cc ------------xxss << cc xxss >> cc xxss ← ← cc ------------------------- (bind (bind ?x ?x (replace (replace ?x ?x cc d)) d)) (bind ?x (create)) (bind ?x (create)) ------------------------- vars. vars. multi-valor multi-valor --------------------------------------------------cc ∈ ∈ xxmm ------------------------------------------------------------------------------------------------cc ∉ ∉ xxmm ----------------------------------------------------------------------------------------------------xxmm ← ← {c} {c} ∪ ∪ xxmm m m si si xx == {c} {c} entonces ← vacía vacía entonces xxmm ← sino sino xxmm ← ← xxmm -- {c} {c} xxmm ← ← (x (xmm ∪ ∪ {d}) {d}) -{c} -{c} xxmm ← ← vacía vacía Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Objeto Sistemas Basados– en Reglas 2.3.2.3. Hechos: – Atributo Valor Hecho: Var. – Valor No permite ‘relacionar’ variables entre sí. Al modelar dominios de problemas, es frecuente establecer vars. (atribs.) que caracterizan un mismo objeto, y subdominios (objetos/subobjetos) inter-relacionados. Frecuentemente se usan objetos para agrupar las propiedades mencionadas en las reglas heurísticas o de experiencia. 12 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Objeto Sistemas Basados– en Reglas 2.3.2.3. Hechos: – Atributo Valor Objetos: – Estruct. Estruct. de inform. que modela un subdominio/concepto. subdominio/concepto. – Obj.: descrito por props. o atribs. atribs. específicos de tal obj. objeto objeto dolor dolor atributos atributos localización, localización, carácter carácter – Tupla objeto – atributo – valor ( o – a – v ): • Permite expresar hechos asociados a atribs. atribs. de un obj. • Par ob obj. – atributo se comporta igual que las vars. • Atributos de tipo unimulti-valor (o.a (o.am) uni-valor (o.as) y multier • Distintas tuplas cuyo 1 elemento sea el mismo obj. denotan distintas características de un mismo obj. • Un par obj. – atrib. indica que el atrib. pertenece al obj. (dolor localización vientre) Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Objeto Sistemas Basados– en Reglas 2.3.2.3. Hechos: – Atributo Valor Ejemplos: – Conocimiento Objetos Conceptos/características: Conceptos/características: Relaciones: Relaciones: Concepto Concepto mesa: mesa: atributo atributo // valor valor atributo/valor atributo/valor BH Forma Forma (rectangular, (rectangular, circular, circular, etc.) etc.) (( mesa mesa forma forma rectangular rectangular )) Tamaño Tamaño (grande, (grande, mediano, mediano, etc.) etc.) (( mesa mesa tamaño tamaño grande grande )) Nº Nº patas patas (3, (3, 4, 4, 6, 6, 12, 12, etc.) etc.) (( mesa -patas 44 )) número mesa númeronúmero-patas Color(blanca, Color(blanca, negra, negra, etc.) etc.) (( mesa mesa color color negra negra )) 13 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Objeto Sistemas Basados– en Reglas 2.3.2.3. Hechos: – Atributo Valor Antecedente Reglas de Producción <conditional-element> <conditional-element> ::= ::= <and-CE> <and-CE> || <or-CE> <or-CE> || <not-CE>| <not-CE>| <test-CE> <test-CE> || <ordered-pattern> <ordered-pattern> || <assigned-pattern> <assigned-pattern> <assigned-pattern> <assigned-pattern> ::= ::= <variable> <variable> << –– <ordered-pattern> <ordered-pattern> <ordered-pattern> <ordered-pattern> ::= ::= (( <name> <name> <constraint>* <constraint>* )) <constraint> <constraint> ::= ::= <term> <term> <term> <term> ::= ::= <constant> <constant> || <variable> <variable> (variable (variable sólo sólo en en el el elemento elemento valor) valor) (( and and (( mesa mesa forma forma rectangular rectangular )) (( mesa mesa color color rojo rojo )) )) (( sangre -sistolica 140 presion sangre presionpresion-sistolica 140 )) ?y -pulso ?pp presion ?y << –– (( sangre sangre presionpresion-pulso ?pp )) (( test pp 50 ??pp test (( << ?pp 50 )) )) (( or -diastolico )) murmullo or (( paciente paciente auscultacion auscultacion murmullomurmullo-diastolico ?z -agrandado )) )) )) corazon ?z << –– (( paciente paciente percusion percusion corazoncorazon-agrandado Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Objeto Sistemas Basados– en Reglas 2.3.2.3. Hechos: – Atributo Valor Consecuente Reglas de Producción <action> <action> ::= ::= (bind (bind <variable> <variable> <term> <term> || <action-multi-value>) <action-multi-value>) || (retract (retract <term>) <term>) || (assert (assert <ordered-pattern>) <ordered-pattern>) <constraint> <constraint> ::= ::= <term> <term> <term> <term> ::= ::= <variable> <variable> || <constant> <constant> – Creación de Valores (( bind ;;; -valuada vble uni bind ?a ?a rectangular rectangular )) ;;; vble. vble.. uniuni-valuada (( assert assert (( mesa mesa forma forma ?a ?a )) )) (( bind vble bind ?lista ?lista (( create create (( forma forma rectangular rectangular )) )) )) ;;; ;;; vble. vble.. Multivaluada Multivaluada ((assert assert (mesa (mesa ?lista)) ?lista)) – Eliminación de Valores ?z -agrandado )) corazon ?z << –– (( paciente paciente percusion percusion corazoncorazon-agrandado (( retract retract ?z ?z )) (( retract retract 66 )) (( bind bind ?a ?a 66 )) (( retract retract ?a ?a )) ;;; ;;; 66 es es el el índice índice del del hecho hecho que que se se quiere quiere eliminar eliminar ;;; vble ;;; se se puede puede asignar asignar aa una una vble. vble.. el el índice índice 14 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.2. Representación del Conocimiento en Objeto Sistemas Basados– en Reglas 2.3.2.3. Hechos: – Atributo Valor Ejemplo: Limitaciones del paradigma obj. – atrib. – valor (( defrule defrule estenosis estenosis (( paciente -dedolor de-pantorrilla )) paciente dolencia dolencia dolordolor-de-pantorrilla (( dolor dolor presencia presencia andando andando )) (( dolor -reposo )) en dolor ausencia ausencia enen-reposo => => (( assert -arterial )) )) estenosis assert (( dolor dolor causa causa estenosisestenosis-arterial (( assert -aortica )) )) )) regurgitación assert (paciente (paciente enfermedad enfermedad regurgitaciónregurgitación-aortica – No permite expresar relaciones explícitas entre objetos de una forma natural (redes semánticas / frames). paciente paciente – Un esquema de objs. define las interrelaciones entre objs., y entre objs. y sus atribs. (redes semánticas / frames) dolencia auscultación percusión lugar dolor dolor presencia ausencia Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.3. Relación entre Reglas de Producción y Lógica de Predicados de Primer Orden En general, las RP pueden ser traducidas a la lógica de predicados predicados (≈ implicaciones). implicaciones). Semántica de un SBR se describe mediante una semántica procedural, procedural, como un método de inferencia específico de aplicación de las RP. Esta relación permite que una BR sea desarrollada sin necesidad de un conocim. conocim. preciso sobre el funcionamiento de su método de inferencia, basado en sus formas lógicas equivalentes. Ventajas de un razonamiento basado en reglas: – Base formal en el cálculo de predicados. – Permite una BH más clara y estructurada: • Objeto – Atributo – Valor, redes, frames 15 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.3. Relación entre Reglas de Producción y Lógica de Predicados de Primer Orden Relación entre predicados de RP y fbf Pred. Pred. oo Acción Acción Repr. Repr. Lóg. Lóg. de de Atrib. Atrib. UniUni- (o (o aa v) v) (o (o aa ?x) ?x) (test (test (neq (neq ?x ?x v)) v)) (not (not (o (o aa v)) v)) (o (o aa ?x) ?x) (test (test (eq (eq ?x ?x v)) v)) (o a ?x) (o a ?x) (test (test (< (< ?x ?x v)) v)) (o (o aa ?x) ?x) (test (test (> (> ?x ?x v)) v)) (assert (o a (assert (o a v)) v)) (retract (retract <term>) <term>) Repr. Repr. Lóg. Lóg. de de Atrib. Atrib. Multi-valor Multi-valor a(o) a(o) == vv a(o,v) a(o,v) ¬¬ a(o) a(o) == vv ¬¬ a(o) a(o) == vv ¬¬ a(o,v) a(o,v) ¬¬ a(o,v) a(o,v) a(o) a(o) == vv --- (o) (o) << vv --- a(o) a(o) >> vv a(o) a(o) == vv --- --a(o,v) a(o,v) --- Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.3. Relación entre Reglas de Producción y Lógica de Predicados de Primer Orden Relación entre predicados de RP y fbf (defrule (defrule nombre nombre c 1,2 ........ ) (or ........ cc 1,m (or cc 1,1 1,1 c 1,2 1,m ) •• •• •• c n,2 ........ ) (or ........ cc n,p (or cc b,1 b,1 c n,2 n,p ) => => aa11 aa22 ........ ........ aaqq)) ((c' v c' 1,2 vv ..... )) ^ ((c'1,1 ..... vv c' c'1,m 1,1 v c'1,2 1,m)) ^ •• •• •• v c' v ..... vv c' )) ((c' v c' v ..... c' n,p ((c' n,1 n,2 n,1 n,2 n,p)) → (a' (a'11 ^^ a' a'22 ^^ ........... ........... ^a' ^a'qq)) 16 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.3. Relación entre Reglas de Producción y Lógica de Predicados de Primer Orden (( defrule defrule regurgitación regurgitación (( sangre -asistólica ?ps ps )) presión ??ps sangre presiónpresión-asistólica Ejemplo (( test ps 140 ??ps test (( >> ?ps 140 )) )) (( sangre -pulso ?pp pp )) presión ??pp sangre presiónpresión-pulso (( test pp 50 ??pp test (( >> ?pp 50 )) )) (( or -diastólico )) murmullo or (( paciente paciente auscultación auscultación murmullomurmullo-diastólico (( paciente percusión corazónagrandado corazón paciente percusión corazón-agrandado )) )) => => (( assert -aórtica )) )) )) regurgitación assert (( paciente paciente enfermedad enfermedad regurgitaciónregurgitación-aórtica (( presión-asistólica( sangre -pulso( sangre presión presión presión-asistólica( sangre )) >> 140 140 ^^ presiónpresión-pulso( sangre )) >> 50 50 ^^ (( auscultación( -diastólico )) vv murmullo auscultación( paciente, paciente, murmullomurmullo-diastólico percusión( -agrandado )) )) )) corazón percusión( paciente, paciente, corazóncorazón-agrandado Æ Æ enfermedad( -aórtica )) regurgitación enfermedad( paciente, paciente, regurgitaciónregurgitación-aórtica Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.3. Relación entre Reglas de Producción y Lógica de Predicados de Primer Orden Hechos vs. fbf – Atributos uniuni-valor • Predicado de igualdad de la lógica de primer orden – (o as v) es traducido en la cláusula unidad a(o) =v – Los axiomas de igualdad garantizan la unicidad de los atributos monovalor, a(o) = v y a(o) = w / v ≠ w inconsistencia – Atributos multimulti-valor • (o am v) es traducido en un cjto. de cláusulas unidad a(o,vi): z Una para cada vi del cjto. de valores ctes. adoptado por el atributo: a(o,vi) z Una por cada una de las restantes ctes. vi que ocurren en el tipo de atributo (negación por ausencia): a(o,vi) • Se asume que los valores de atributos multi-valor no introducidos explícitamente se consideran como no verdaderos (suposición del mundo cerrado) a(o, v) y ¬ a(o, v) inconsistentes 17 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.3. Relación entre Reglas de Producción y Lógica de Predicados de Primer Orden Ejemplo: -aortíca, regurgitación aortíca, arteriosclerosis regurgitación-aortíca, arteriosclerosis }},, edad D D == {{ enfermedad enfermedadmm:2 :2{{ regurgitaciónedadss:: int int }} – Hechos {{ enfermedad arteriosclerosis }, }, edad edadss == 70 70 }} enfermedadmm == {{ arteriosclerosis (( bind bind ?enfermedad ?enfermedad (( insert insert ?enfermedad ?enfermedad arteriosclerosis arteriosclerosis )) )) (( bind bind ?edad ?edad 70 70 )) (( paciente paciente enfermedad enfermedad arteriosclerosis arteriosclerosis )) (( paciente paciente edad edad 70 70 )) – Cláusulas {{ enfermedad( enfermedad( paciente, paciente, arteriosclerosis arteriosclerosis ),), ¬¬ enfermedad( -aórtica ),), regurgitación enfermedad( paciente, paciente, regurgitaciónregurgitación-aórtica edad( edad( paciente paciente )) == 70 70 }} Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.4. Inferencia en Sistemas Basados en Reglas Base de Conocimiento Base de Reglas Base de Hechos R1: R1: C1 C1 ÆA1 ÆA1 H1 H1 R2: R2: C2 C2 ÆA2 ÆA2 .. .. .. H2 H2 .. .. .. Encadenamiento Inferencial Añadir / Eliminar Hechos Pattern-Matching Selección Selección Reglas Aplicables Control Motor de Inferencia Resolución Resolución de de Conflictos Conflictos Regla a Aplicar Ejecución Ejecución Acciones Externas 18 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.4. Inferencia en SistemasInferencial Basados en Reglas 2.3.4.1. Encadenamiento Inferencia dirigida por el objetivo (backward) backward) OBJETIVOS – fbf implicación usadas como BB-reglas: • Partiendo de la fbf objetivo, se obtienen BH objetivos parciales hasta que se satisface la condición de terminación (BH inicial). – Se deduce sólo lo que es necesario en la demostración. – Características: • Más parecido a la conducta humana (eficacia). • Obtiene respuestas a preguntas. • Permiten preguntar al usuario. • Necesita objetivos explícitos. SI SE SATISFACEN OBJETIVOS EN BH FIN NO SELECCIONAR REGLAS CUYAS CONCLUSIONES SE IDENTIFICAN CON OBJETIVOS NO HAY REGLAS APLICABLES PATTERN MATCHING PREGUNTAR A USUARIO POR OBJETIVOS SI SELECCIONAR UNA REGLA RESOLUCION DE CONFLICTOS OBJETIVOS = PREMISAS REGLA SELECCIONADA GRA AND EJECUCION Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.4. Inferencia en SistemasInferencial Basados en Reglas 2.3.4.1. Encadenamiento Inferencia dirigida por los datos (forward) forward) – fbf implicación usadas como FFreglas: • Operan sobre la BH inicial hasta satisfacer las fbf objetivos. – Se deduce todo lo que se puede deducir. – Características: • Sistemas generativos. • Obtiene todos los nuevos hechos deducibles. GRAFO AND / OR HECHOS INICIALES ENCONTRAR REGLAS POSIBLES (PREMISAS SATISFECHAS POR LA BH) HAY REGLAS PATTERN MATCHING NO FIN SI RESOLUCION DE CONFLICTOS SELECCIONAR UNA REGLA MODIFICACION BH (AÑADIR/ELIMINAR) OPERACIONES E/S NO PROBLEMA RESUELTO EJECUCION SI FIN 19 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.4. Inferencia en Inferencial Sistemas Basados en Reglas 2.3.4.2. Control En amplitud En profundidad Control inferencial (resolución de conflictos): – – – – – – Complejidad de premisas Peso de las reglas Combinación: peso, complejidad Mayor frecuencia Última utilizada Metarreglas: Metarreglas: • Aprendizaje. • Utilización de reglas. • Exclusión de reglas. • Asignación dinámica de pesos. Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas LHS 2.3.5. Patrones en Sistemas Basados en Reglas Si ANTECEDENTE entonces CONSECUENTE RHS P1 ^ P2 ^ . . . ^ Pm A1 ^ A2 ^ . . . ^ Am Elementos Patrón Acciones Constantes Variables Modificaciones de la BH Acciones Externas El leng. leng. de repr. repr. del conoc. conoc. descrito hasta ahora nos permite utilizar: – – – Pares variable – valor Tuplas obj. – atr. – valor Reglas de Producción Vamos a enriquecer la expresividad de dicho lenguaje, mediante patrones, para la representación de: – Hechos de la BH (constantes) – Condiciones y Conclusiones de las RP (constantes y variables) 20 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas Hechos como patrones – Patrón (pattern): secuencia finita ordenada de elementos: (e1 e2 e3............ en) donde cada elemento patrón ei (1 ≤ i ≤ n) es: – una constante: elemento patrón constante – una variable: elemento patrón variable. – Variable – Valor: Valor: puede ser representado por un patrón constituido por dos constantes: xx == 10 10 ≡≡ (( xx 10 10 )) – Objeto – atributo – valor: valor: puede ser representado por un patrón constituido por tres constantes: (( horno, horno, temperatura, temperatura, 100 100 )) ≡≡ (( horno horno temperatura temperatura 100 100 )) – Hecho (extensión a patrones): secuencia finita ordenada de elementos: (f1 . . . fn) donde cada elemento patrón fi (1 ≤ i ≤ n) es una cte. Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas Ejemplos (( paciente paciente nombre nombre Juan Juan edad edad 18 18 enfermedad enfermedad aneurisma aneurisma )) (( paciente paciente nombre nombre Luis Luis edad edad 25 25 enfermedad enfermedad gripe gripe arteriosclerosis arteriosclerosis )) (( paciente paciente nombre nombre Pedro Pedro edad edad 21 21 enfermedad enfermedad neumonía neumonía )) (( médico médico nombre nombre Juan Juan especialidad especialidad cardiología cardiología )) (( manzana manzana tamaño tamaño grande grande color color verde verde )) (( lista lista aa bb cc dd ee )) Un patrón extiende la representación de hechos 21 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas Patrones en las RP – Las condiciones y conclusiones de las reglas pueden referir a condiciones y conclusiones sobre patrones (con vars. vars. y ctes.). ctes.). (( defrule defrule regla-1 regla-1 (( ee11 ee22 ee33 ....... ....... eenn )) => => (( assert ......... aamm )) )) assert (( aa11 aa22 aa33 ......... – Un elemento patrón ei puede ser: • Constante Patrón: Patrón: No contiene variables (hambriento Pedro) • Variable Patrón UniUni-Valor: Valor: su nombre empieza con el signo?: ?x, ?sexo, ?edad, ...... • Variable Patrón MultiMulti-Valor: Valor: su nombre empieza con $?: $?enfermedad, $?ocupación, ... • Variables sin enlace: enlace: Su nombre solo consta del símbolo ? o $?. Son vars. vars. especiales que pueden estar ligadas a cualquier cte. cte. o secuencia de ctes., ctes., pero no preservan sus enlaces. (paciente nombre ? edad ? enfermedad $?z) Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas Distintas ocurrencias de una misma variable patrón en una regla denotan el mismo elemento. (( defrule -1 regla defrule reglaregla-1 (( paciente paciente nombre nombre Juan Juan edad edad ?y ?y enfermedad enfermedad $?z $?z )) => => (( assert assert (( paciente paciente nombre nombre Juan Juan edad edad ?y ?y enfermedad enfermedad gripe gripe )) )) )) Mediante los patrones se generaliza la sintaxis de las RP, permitiendo el uso de variables (+ patternpattern-matching). matching). 22 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones enMatching Sistemas Basados en Reglas 2.3.5.1. Pattern Pattern Matching: Hacer sintácticamente iguales un patrón de una regla de producción y un hecho asociando variables y hechos. LHS Si ANTECEDENTE entonces CONSECUENTE RHS P1 ^ P2 ^ . . . ^ Pm Aplicabilidad de una regla Pattern Matching Conjunto de INSTANCIAS Elementos Patrón Constantes Variables Base de Hechos Conjunto ordenado de hechos ∈ BH que CASAN con la LHS Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones enMatching Sistemas Basados en Reglas 2.3.5.1. Pattern H1: (HAMBRIENTO PEDRO) (defrule COMER (HAMBRIENTO ?PERSONA) (COMESTIBLE ?ALIMENTO) → (assert ( Come ?PERSONA el ?ALIMENTO)) BASE DE REGLAS (p1 ? p2 ..... ?pn) Asumible por defecto Match: listas con variables instanciadas. No match: lista vacía ( ≈ false). not (p1 ? p2 ......? pn): Asumible como la negación Complementario a Igual. H2: (HAMBRIENTO PABLO) H3: (COMESTIBLE MANZANA) H4: (COMESTIBLE MELOCOTON) H5: (COMESTIBLE PERA) BASE DE HECHOS I1: {?PERSONA = PEDRO, ?ALIMENTO = MANZANA} {H1, H3} I2: {?PERSONA = PEDRO, ?ALIMENTO = MELOCOTON} {H1, H4} I3: {?PERSONA = PEDRO, ?ALIMENTO = PERA} {H1, H5} I4: {?PERSONA = PABLO, ?ALIMENTO = MANZANA} {H2, H3} I5: {?PERSONA = PABLO, ?ALIMENTO = MELOCOTON} {H2, H4} I6: {?PERSONA = PABLO, ?ALIMENTO = PERA} {H2, H5} 23 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones enMatching Sistemas Basados en Reglas 2.3.5.1. Pattern Un Enlace (binding (binding)) de una var. es una cte. cte. o una secuencia de ctes. ctes. que instancian la var. – ?x = d : la variable monomono-valor ?x está ligada a la constante d. – $?y = (c1 ...... cn) : la variable multimulti-valor $?y está ligada a la secuencia de constantes (c1 ...... cn) (?x ?y ?x a b) (?x ?y $?z a $?z) ?x=a, ?y=d (a d a a b) ?x=g, ?y=b, $?z=(c d) (g b c d a c d) Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones enMatching Sistemas Basados en Reglas 2.3.5.1. Pattern – Un patrón (P) y un hecho (F) hacen match si existe un enlace de vars. vars. de P tal que hace sintácticamente iguales P y F. – Ejemplo: Enlace: ?x=Juan ?y=55 $?z=(aneurisma ?x=Juan $?z=(aneurisma gripe) (paciente nombre ?x edad ?y enfermedad $?z) ?x=Juan ?y=55 $?z=(aneurisma gripe) (paciente nombre Juan edad 55 enfermedad aneurisma gripe ) – Las vars. vars. patrón de un patrón son reemplazadas por una o más ctes. ctes. dependiendo del tipo (mono(mono- o multimulti-valor). • Var. patrón monomono-valor: sólo se instancia por una única cte. cte. • Var. patrón multimulti-valor: se instancia por una secuencia de ctes. ctes. – La múltiple ocurrencia de una var. en un patrón denota un mismo objeto. 24 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones enMatching Sistemas Basados en Reglas 2.3.5.1. Pattern Otros predicados de las Reglas de Producción: z z z = > < : se aplican a variables instanciadas. instanciadas. assert : añadirá 'patrón' a la base de hechos. Las variables deben estar instanciadas. instanciadas. retract : elimina el hecho de la base de hechos. Las variables deben estar instanciadas. instanciadas. Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas 2.3.5.2. Ejemplo -1 BH= {(Persona nombre Juan edad 10)} ( defrule regla-1 regla regla-1 ( persona nombre ?x edad ?y ) ( test ( > ?y 9 )) ?x ?x == Juan, Juan, ?y ?y == 10 10 => ( assert ( ?x etapa joven ) ) ) El hecho (Juan etapa joven) será añadido a la BH. 25 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas 2.3.5.2. Ejemplo -2 BH ={(lista a b f g h) , (elemento g)} (( defrule defrule R1 R1 ?f < ?f <<-- (lista (lista ?x ?x $?y) (elemento (elemento ?e) ?e) ((test test ((neq neq ?e ?x)) => => ((retract retract ?f) ?f) ((assert assert (lista $?y))) (( defrule defrule R2 R2 (lista (lista ?x ?x $?) $?) (elemento (elemento ?x) ?x) => => ((assert assert (El (El elemento elemento ?x ?x pertenece pertenece aa la la lista)) lista)) ((printout printout t “El elemento “ ?x “ pertenece “El elemento “ ?x “ pertenece aa la la lista”)) (( defrule defrule R3 R3 (lista) (lista) (elemento (elemento ?x) ?x) => => ((assert assert (El (El elemento elemento ?x ?x no no pertenece pertenece aa la la lista)) lista)) ((printout printout t “El “El elemento elemento ““ ?x ?x ““ no no pertenece a la lista”)) Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas 2.3.5.2. Ejemplo – 2: BH BH H1: (lista a b f g h) H3: (lista b f g h) BH H4: (lista f g h) H2: (elemento g) H2: (elemento g) H2: (elemento g) matching {?x=a, $?y= (b f g h), ?e=g} ejecución {?x=b, $?y= (f g h), ?e=g} {?x=f, $?y= (g h), ?e=g} R1, R2, R3 R1, R2, R3 R1, R2, R3 BR BR BR BH BH H5: (lista g h) H5: (lista g h) H2: (elemento g) H2: (elemento g) {?x=g, $?y= (h), ?e=g} H6: (El elemento g pertenece a la lista) R1, R2, R3 BR Inferencia dirigida por los datos 26 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas 2.3.5.2. Ejemplo -2 ¿ (El elemento g pertenece a la lista) ? Objetivos O1: (El elemento g pertenece a la lista) O2: (lista g $?) O4: (lista ?x g $?) O3: (elemento g) ?x ≠ g O3: (elemento g) {?x=g} matching {$?y=(g $?)} matching R1, R2, R3 {$?y=(?x g $?)} R1, R2, R3 O5: (lista ?x1 ?x g $?) O3: (elemento g) ?x1 ≠ g R1, R2, R3 O6: (lista ?x2 ?x1 ?x g $?) O3: (elemento g) ?x2 ≠ g {$?y=(?x1 ?x g $?)} se satisface objetivo {?x2=a, ?x1=b, ?x=f, $?=(h)} BH R1, R2, R3 H1: (lista a b f g h) H2: (elemento g) Inferencia dirigida por el objetivo Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas 2.3.5.2. Ejemplo -2 BH BH BH H1: (lista a b f g h) H3: (lista b f g h) H4: (lista f g h) H2: (elemento g) H2: (elemento g) H2: (elemento g) matching {?x=b, $?y= (f g h)} {?x=a, $?y=(b f g h)} ejecución R1, R2, R3 BR R1, R2, R3 {?x=f, $?y=(g h)} R1, R2, R3 BR BR BH BH H5: (lista g h) H5: (lista g h) H2: (elemento g) H2: (elemento g) H6: (El elemento g pertenece a la lista) { ?x=g, $?= (h)} R1, R2, R3 .. Inferencia dirigida por el objetivo 27 Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas 2.3.5.2. Ejemplo -3 BH = {(libro nombre Quijote cuesta 5000 calidad media) (persona nombre Juan gana 2000)} (( defrule R1 R1 “Un “Un libro libro que que cuesta cuesta más más de de 3000, 3000, es es bueno” bueno” (libro nombre ?x cuesta ?y calidad ?z) (libro nombre ?x cuesta ?y calidad ?z) ((test test (> (> ?y ?y 3000)) 3000)) => => ((assert assert (libro (libro nombre nombre ?x ?x cuesta cuesta ?y ?y calidad calidad ?z ?z alta) alta) )) )) (( defrule defrule R2 R2 “Una persona que que gana gana más más de de 1000 1000 es es rica” rica” (persona (persona nombre nombre ?x ?x gana gana ?y) ?y) ((test test (> (> ?y ?y 1000)) 1000)) => => ((assert assert (persona (persona nombre nombre ?x ?x status status alto) alto) )) )) Tema 2 (II): Representación del Conocimiento en IA: Representación Basada en Reglas 2.3.5. Patrones en Sistemas Basados en Reglas 2.3.5.2. Ejemplo -3 BH = {(libro nombre Quijote cuesta 5000 calidad media) (persona nombre Juan gana 2000)} (( defrule defrule R3 R3 “Una persona de status status alto, alto, compra compra libros libros buenos” buenos” (persona nombre ?x status alto) (persona nombre ?x status alto) (libro (libro nombre nombre ?y ?y cuesta cuesta $? $? calidad calidad $?z) $?z) ((test test ((member member $?z alta)) $?z alta)) => => ((assert assert (compra (compra nombre nombre ?x ?x libro ?y) ?y) )) )) 28