Professional Documents
Culture Documents
CienciasdelaComputacineInteligenciaArtificial
Tema4:ProgramacinLgica Inductiva
ndice
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
ndice
Aprendizajeautomtico
4.1Lgicaproposicional
Aprendizajeautomtico
4.1Lgicaproposicional
Proposicin:afirmacinsimple,quepuedetomarlosvalorescierto o falso
Ejemplo: Temperatura_es_alta Cuello_es_recto Clase_es_A Celda_1_3_es_4,(enelSudoku) Nota: Las proposiciones expresan un conocimiento concreto. No permiten expresarconceptosgenricoscomohayun4enalgunacelda.Paraestetipode enunciadosesnecesarialalgicadeprimerorden.
Aprendizajeautomtico
4.1Lgicaproposicional
Lalgicaproposicional trabajaconfrmulasbienformadas.
Aprendizajeautomtico
4.1Lgicaproposicional
Unafrmulabienformadapuedetomarlosvalorescierto ofalso,en funcindelosvaloresdelasproposicionessimplesquelaformen. Pararepresentarelsignificadodeunafrmulaseutilizantablasde verdad,enlaqueseenumerantodaslascombinacionesposiblesdelas proposicionessimplesyelvalordelafrmulaparacadacombinacin. ParaunafrmulaformadaporNproposiciones,eltamaodelatabla deverdadesde2N filas. Lastablasdeverdaddelosconectivoslgicossonlassiguientes:
P
V V F F
Q
V F V F
P Q
V V V F
P Q
V F F F
P
F F V V
PQ
V F V V
PQ
V F F V 7
Aprendizajeautomtico
4.1Lgicaproposicional
Una frmula es vlida si su valor es cierto para todas las combinaciones de valores de las proposiciones que la forman. Una frmula vlida se conocetambincomotautologa. Unafrmulaessatisfactible sisuvaloresciertoparaalgunacombinacin devalores.Siunafrmulaessiemprefalsasedicequeesinsatisfactible. Una frmula es decidible si se puede demostrar si es vlida o no en un nmerofinitodepasos. Se dice que un sistema lgico es consistente si no permite demostrar simultneamenteunafrmulaysucontraria. La lgica proposicional es decidible, porque existe un algoritmo (la tabla de verdad) que permite demostrar la validad de cualquier frmula enun nmerofinitodepasos
Aprendizajeautomtico
4.1Lgicaproposicional
a b=(a b) (a b)(Dobleimplicacin) ( a)=a(Doblenegacin) (a b)=(b a)(Propiedadconmutativadeladisyuncin) (a b)=(b a)(Propiedadconmutativadelaconjuncin) (a b) c=a (b c)(Propiedadasociativadeladisyuncin) (a b) c=a (b c)(Propiedadasociativadeladisyuncin)
9
Aprendizajeautomtico
4.1Lgicaproposicional
a (b c)=(a b) (a c)(Propiedaddistributiva) a (b c)=(a b) (a c)(Propiedaddistributiva) a F=a(Elementoneutro) a T=T(Elementoabsorbente) a T=a(Elementoneutro) a F=F(Elementoabsorbente) a a=T(Tercioexcluso) a a=F(Nocontradiccin) a a=a;a a=a;a (a b)=a;a (a b)=a;
10
Aprendizajeautomtico
4.1Lgicaproposicional
11
Aprendizajeautomtico
4.1Lgicaproposicional
2. Sustituirtodadobleimplicacin(a
12
Aprendizajeautomtico
4.1Lgicaproposicional
El razonamiento en lgica consiste en la obtencin de nuevo conocimiento a partir del que est representado en nuestra base de conocimiento. Existen varias estrategias para la obtencin de nuevo conocimiento. Bsicamente podemos destacar: Deduccin o razonamiento hacia delante: consiste en obtener nuevas afirmaciones a partir de los que ya tenemos, utilizando los mecanismos que veremos a continuacin, aadirlas a la base de conocimiento y continuar con la obtencin de nuevas afirmaciones. (Bsqueda a ciegas). Demostracin o razonamiento hacia atrs: consiste en explicitar el conocimiento que deseamos obtener y comprobar si es consecuencia lgica de (est justificado por) nuestra base de conocimiento. (Bsqueda guiada).
13
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
Modus Tollens: si existe una implicacin y el consecuente es falso, entonces el antecedente es falso. Intuitivamente: si no se da el efecto, es imposible que se de la causa. AB B BC = {A B, B} pasa a BC = {A B, B, A} A
14
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
A partir de la regla de resolucin se puede deducir la regla Modus Ponens (si a = T ) y la regla Modus Tollens (si c = F).
15
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
function Resolucin(BC, objetivo) returns boolean function Resolucin(BC, objetivo) returns boolean input: input: BC ////Base de conocimientos BC Base de conocimientos objetivo ////expresin que se pretende demostrar objetivo expresin que se pretende demostrar BC BC ^^objetivo BC BC objetivo repeat repeat c1, c2 EscogerClausulas(BC) c1, c2 EscogerClausulas(BC) resolvente ReglaDeResolucin(c1,c2) resolvente ReglaDeResolucin(c1,c2) BC BC ^^resolvente BC BC resolvente until resolvente == until resolvente return True return True
17
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
19
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
20
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
5 paso: aplicar la regla de resolucin (p q s), ( s ) (9) p q 6 paso: aplicar la regla de resolucin (p q ), ( q ) (10) p 7 paso: aplicar la regla de resolucin (p ), ( p ) CONTRADICCIN! Lo que demuestra t por refutacin
21
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.1Lgicaproposicional
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
ndice
23
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
Laspropiedadespodranser:
Fila/1,paraindicarqueunobjetoesunafila(Fila(F0) ). Columna/1,paraindicarqueunobjetoesunacolumna(Columna(C0) ) Valor/1,paraindicarqueunobjetoesunvalor(Valor(No1) ) Contiene/3,paraindicarqueunaceldacontieneunvalor (Contiene(F0,C0,No1))
24
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.1Definicindelgicadeprimerorden Trmino(formadeexpresarobjetos) Constantes
4.2Lgicadeprimerorden
Variables
Permitereferenciarcualquierobjetodeldominio Sedenotanmediantecadenasquecomienzanenminscula Ejemplo:x,y
Funciones
Permitenobtenerunareferenciaaunobjetoenfuncindelosvaloresde otros. Sedenotanmedianteunnombreyunconjuntodeargumentos,quetienen quesertrminos Ejemplo:Padre(Juan),Suma(5,8) Lasconstantessepuedenconsiderarfuncionesde0argumentos
25
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.1Definicindelgicadeprimerorden tomo(equivalealasproposiciones) Predicado:
4.2Lgicadeprimerorden
Igualdadoidentidad:
Permiteincorporarlacondicindequeuntrminoseaigualaotro Ejemplo:x=y,Padre(Juan)=Pedro,Suma(x,4)=y Sepuedeconsiderarcomounpredicadobinario Requiereuntratamientoespecialparalainferencia Suutilizacinsuponeunaextensindelalgicadeprimerorden
26
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.1Definicindelgicadeprimerorden Frmulasbienformadas
4.2Lgicadeprimerorden
27
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.1Definicindelgicadeprimerorden
4.2Lgicadeprimerorden
Equivalenciasasociadasconloscuantificadores
x:P (x:P) (x:P) x:P x:P (x:P) (x:P) x:P x:P Q (x:P) (x:Q) x:P Q (x:P) (x:Q)
28
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.1Definicindelgicadeprimerorden Transformacinaformanormalconjuntiva
(1) (2) (3) (4) (5) (6) (7) Eliminarlasimplicaciones Reducirelmbitodelasnegacionesparaquesloafectenatomos Asociarvariablesdistintasacadacuantificador Moverloscuantificadoresalcomienzo,preservandoelorden Eliminarlocuantificadoresexistenciales(Skolemizacin) Convertirlafrmulaenconjuncindedisyunciones(propiedaddistributiva de y) Generarunaclusulaapartirdecadadisyuncin
29
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.1Definicindelgicadeprimerorden Transformacinaformanormalconjuntiva Ejemplo:x:(y:(p(x,y) q(x,y)) r(y))
(1) (2) (3) (4) (5) (6) (7) x:y:(p(x,y) q(x,y)) r(y)) y:(p(SK,y) q(SK,y)) r(y)) y:(p(SK,y) r(y)) (q(SK,y) r(y)) y:(p(SK,y) r(y)) y:(q(SK,y) r(y)) x:(y:(p(x,y) q(x,y)) r(y))) x:(y:(p(x,y) q(x,y)) r(y))
4.2Lgicadeprimerorden
30
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.2 Mecanismos de inferencia
4.2Lgicadeprimerorden
Sustitucin: es una secuencia finita de asociaciones entre variables y trminos. = { V1/ t1 , V2/ t2 , , Vn/ tn } Aplicacin de una sustitucin a una clausula C: consiste en sustituir cada instancia de la variable Vi en la clausula C por el trmino ti asociado en la sustitucin. Se denota C. Unificacin: se dice que dos tomos P1 y P2 unifican si existe una sustitucin tal que P1 P2. Unificador ms general: es la sustitucin que permite unificar los tomos y cuyos trminos son lo ms generales posibles (una variable es ms general que una constante, ya que permite referenciar a cualquier objeto).
31
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.2 Mecanismos de inferencia Regla de resolucin: p(x) (x) p(y) (y) ((x) (y)) Ejemplo: = UnificadorMsGeneral( p(x) / p(y) )
= { x / Socrates }
32
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.2Mecanismosdeinferencia Eliminacinuniversal: x:a(x) SUST(x/Constante,a(x)) Ejemplo x:Gusta(x,Helado) Gusta(Juan,Helado)
4.2Lgicadeprimerorden
33
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
Lasoracionesexpresadasenlgicadeprimerordensonlassiguientes: 1. 2. 3. 4. 5. 6. xPerro(x) Posee(Juan,x) x(yPerro(y) Posee(x,y)) AmaALosAnimales(x) xAmaALosAnimales(x) (y(Animal(y) Mata(x,y))) Gato(Tuna) (Mata(Juan,Tuna) Mata(Curiosidad,Tuna)) xGato(x) Animal(x) xPerro(x) Animal(x)
34
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.3Ejemplodeinferenciaenlgicadeprimerorden Trasformacinaformanormalconjuntiva: 1 Eliminarimplicaciones 1. 2. 3. 4. 5. 6. xPerro(x) Posee(Juan,x) x((yPerro(y) Posee(x,y)) AmaALosAnimales(x)) x(AmaALosAnimales(x)) (y(Animal(y) Mata(x,y))) Gato(Tuna) (Mata(Juan,Tuna) Mata(Curiosidad,Tuna)) xGato(x) Animal(x) xPerro(x) Animal(x)
2 Reducirelmbitodelasnegaciones 1. xPerro(x) Posee(Juan,x) 2. x((yPerro(y) Posee(x,y)) AmaALosAnimales(x)) 3. xAmaALosAnimales(x) (y(Animal(y) Mata(x,y))) 4. Gato(Tuna) (Mata(Juan,Tuna) Mata(Curiosidad,Tuna)) 5. xGato(x) Animal(x) 6. xPerro(x) Animal(x)
35
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.3Ejemplodeinferenciaenlgicadeprimerorden Trasformacinaformanormalconjuntiva: 3 Moverloscuantificadoresalcomienzo 1. 2. 3. 4. 5. 6. xPerro(x) Posee(Juan,x) xy(Perro(y) Posee(x,y) AmaALosAnimales(x)) xy(AmaALosAnimales(x) Animal(y) Mata(x,y)) Gato(Tuna) (Mata(Juan,Tuna) Mata(Curiosidad,Tuna)) xGato(x) Animal(x) xPerro(x) Animal(x)
4 Skolemizacin 1. Perro(SK) Posee(Juan,SK) 2. xy(Perro(y) Posee(x,y) AmaALosAnimales(x)) 3. xy(AmaALosAnimales(x) Animal(y) Mata(x,y)) 4. Gato(Tuna) (Mata(Juan,Tuna) Mata(Curiosidad,Tuna)) 5. xGato(x) Animal(x) 6. xPerro(x) Animal(x)
36
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.3Ejemplodeinferenciaenlgicadeprimerorden Trasformacinaformanormalconjuntiva: 5 Transformarenclasulas 1. 2. 3. 4. 5. 6. 7. 8. Perro(SK) Posee(Juan,SK) Perro(y) Posee(x,y) AmaALosAnimales(x) AmaALosAnimales(x) Animal(y) Mata(x,y) Gato(Tuna) Mata(Juan,Tuna) Mata(Curiosidad,Tuna) Gato(x) Animal(x) Perro(x) Animal(x)
Objetivo: 9.Mata(Curiosidad,Tuna)
37
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.3Ejemplodeinferenciaenlgicadeprimerorden Procesodeinferencia: 6.Mata(Juan,Tuna) Mata(Curiosidad,Tuna) 9.Mata(Curiosidad,Tuna) 10.Mata(Juan,Tuna) 4.AmaALosAnimales(x) Animal(y) Mata(x,y) 10.Mata(Juan,Tuna) u={x/Juan,y/Tuna} 11.AmaALosAnimales(Juan) Animal(Tuna) 5.Gato(Tuna) 7.Gato(x) Animal(x) u={x/Tuna} 12.Animal(Tuna)
38
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.3Ejemplodeinferenciaenlgicadeprimerorden Procesodeinferencia: 11.AmaALosAnimales(Juan) Animal(Tuna) 12.Animal(Tuna) 13.AmaALosAnimales(Juan) 3.Perro(y) Posee(x,y) AmaALosAnimales(x) 13.AmaALosAnimales(Juan) u={x/Juan} 14.Perro(y) Posee(Juan,y) 14.Perro(y) Posee(Juan,y) 2.Posee(Juan,SK) u={y/SK} 15.Perro(SK) 15. Perro(SK) 1.Perro(SK)CONTRADICCIN!
39
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.4Prover9,undemostradordeteoremaslgicos
Prover9 es una herramienta desarrollada por William McCune para automatizar la demostracin de teoremas en lgica de primer orden conigualdad. Se distribuye junto a la herramienta Mace4, que est dedicada a encontrar contraejemplos para los teoremas que no se puedan demostrar. Prover9 es el sucesor de Otter 33, otro demostrador de teoremas desarrolladoporelmismoautor. Seditribuye demaneragratuitaen: http://www.cs.unm.edu/~mccune/prover9/
40
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
41
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.4Prover9,undemostradordeteoremaslgicos LasintaxisdeProver9eslasiguiente: Variables:identificadoresquecomiencenenminscula Constantes:identificadoresquecomiencenenmayscula Conjuncin:smbolo& Disyuncin:smbolo| Negacin:smbolo Implicacin:smbolos-> Dobleimplicacin:smbolos<-> Cuantificadoruniversal:all x Cuantificadorexistencial:exists x
42
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
Objetivos
Mata(Curiosidad, Tuna).
43
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.4Prover9,undemostradordeteoremaslgicos
44
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.5Propiedadesdelalgicadeprimerorden La lgica de primer orden es completa. Dado un conjunto de frmulasbienformadas(BC)yunafrmulabienformada(q)quesea consecuencia lgica de BC, entonces se puede demostrar q a partir deBC pormediodelademostracinporrefutacin. Sin embargo, si q no es consecuencia lgica de BC, entonces la demostracin podra no terminar nunca. Por tanto, la lgica de primerordenessemidecidible. En cualquier caso, la demostracin por refutacin es un problema NPcompleto, es decir, que no se puede resolver en tiempo polinomial. Para conseguir un procedimiento de inferencia que demuestre cualquier frmula en tiempo lineal es necesario introducir restriccionesalalgicadeprimerorden.
45
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2Lgicadeprimerorden
4.2.5Propiedadesdelalgicadeprimerorden Unalimitacinquepermiteresolveresteproblemaesquelabasede conocimientosest formadaporclusulasdeHorn. UnaclusuladeHorn esunadisyuncindeliteralesenlaquehaya losumounnicoliteralpositivo. p1 p2 p3 pn q TeniendoencuentalasleyesdeDeMorgan,estoequivalea (p1 p2 p3 pn) q Considerandoladefinicindelaimplicacin,estoequivalea (p1 p2 p3 pn) q Sedenominacabeza alliteralpositivo. Sedenominacuerpo alconjuntodeliteralesnegativos. LalgicabasadaenclusulasdeHorn permitedefinirunalgoritmo de inferencia que es completo, decidible y orden lineal (System LinearResoultion for Definite Clauses).
46
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.6EllenguajeProlog
4.2Lgicadeprimerorden
Prolog es un lenguaje de programacin lgica basado en el uso de clusulasdeHorn. LasintaxisdeProlog esdiferentealaaceptadacomnmenteparala lgicadeprimerorden. Las clusulas se escriben al revs: en primer lugar la cabeza y a continuacinelcuerpo. q (p1 p2 p3 pn) Laimplicacinsedenotapor:,laconjuncinporunacomaylas clusulasdebenterminarenpunto. q: p1 ,p2 ,p3 , ,pn. Lasclusulasquenotienencuerposedenominanhechos. q. Lasclusulasques tienencuerposedenominanreglas.
47
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.6EllenguajeProlog
4.2Lgicadeprimerorden
Variables:comienzanconunaletramaysculaounsubrayado. (porejemplo:X,Fila,) Constantes: comienzan con una letra minscula o entre comillas simples (porejemplo:juan,Juan) Predicados:comienzanconletraminscula (porejemplo:padre(juan,pedro)) Los trminos pueden ser variables, constantes, funciones y predicados. (porejemplo:nodo(nodo(1,2),nodo(3,4))) Lostrminostambinpuedenserlistas: (porejemplo:[0],[0,1],[E|L])
48
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.2.6EllenguajeProlog
4.2Lgicadeprimerorden
El lenguaje contiene las funciones y constantes matemticas ms comunes. (porejemplo:sin(),cos(),tan(),asin(),acos(),atan(),sqrt(),exp(),log(), log10(),random(),pi,e,) Ellenguajecontieneungrannmerodepredicadospredefinidos. (porejemplo:member/2,append/2,last/2,reverse/2) Los tomos pueden ser predicados y operadores booleanos (comparacionesentretrminos). (porejemploX>3,Yis 3+8,J=:=K,)
49
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
ndice
50
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3ProgramacinLgicaInductiva
51
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3ProgramacinLgicaInductiva
Permite incorporar conocimiento del dominio. Las reglas lgicas que describen un cierto predicado pueden utilizar otros predicados y no slo informacin acerca de los valores de los atributos.
clase(Atr1, Atr2, Atr3, Atr4, claseA) :- propiedad(Atr1,Atr2), Atr3 = Atr4.
Permite utilizar reglas recursivas. Las reglas lgicas que describen un cierto predicado pueden incluir en su cuerpo el mismo predicado de su cabeza.
clase(Atr1, Atr2, Atr3, Atr4, claseA) :- Atr3 = Atr4, clase(Atr1,Atr2, 0, 0, claseA). ancestro( X, Y) :- padre( X, Y). ancestro( X, Y) :- padre( X, Z), ancestro( Z, Y).
52
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3ProgramacinLgicaInductiva
4.3.2DefinicindelaProgramacinLgicaInductiva La Programacin Lgica Inductiva es la aplicacin de tcnicas de aprendizaje inductivo sobre la lgica de primer orden. El trmino en inglesesInductive Logic Programming (ILP). La Programacin Lgica Inductiva consiste en construir de forma automtica las clusulas lgicas que describan un cierto predicado, en base a un conjunto de ejemplos positivos y negativos de dicho predicado y a un conjunto de clausulas auxilliares que describan el conocimiento del dominio (es, decir, los predicados que pueden ser utilizadosenlasclusulasaconstruir).
53
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3ProgramacinLgicaInductiva
4.3.2DefinicindelaProgramacinLgicaInductiva Definicinformal: Programalgico:esunconjuntodeclusulasdeHorn. Unprogramalgico,P, sediceconsistente respectoaunconjuntode ejemplosnegativos,,sinoexisteningnejemplo(e )quepueda serdeducidoapartirdelprograma(P e). Unprogramalgico,P, sedicecompleto respectoaunconjuntode ejemplospositivos,+,sitodoslosejemplos(e +)puedenser deducidosapartirdelprograma(P e).
54
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3ProgramacinLgicaInductiva
ObjetivodelaProgramacinLgicaInductiva:
EncontrarunprogramalgicoH talqueT U H seacompleto(respectode +)yconsistente(respectode).
55
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
ndice
56
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3Generacindereglaspor especificacin
La solucin de un problema de Programacin Lgica Inductiva es unprogramalgicoH formadoporclusulasdeHorn quedescriben el predicado al que se refieren los ejemplos (positivos y negativos) delproblema. Una de las estrategias para obtener estas clusulas consiste en proponerunclusulalomsgeneralposible(que,portanto,noser consistente con el conjunto de ejemplos negativos) e ir especificndola (aadiendo trminos al cuerpo) hasta hallar la consistencia.EstaeslaestrategiaseguidaenelalgoritmoFOIL. FOIL fue desarrollado por J.R. Quinlan y mejorado en colaboracin con R.M. CameronJones. Sobre la base de FOIL se han propuesto numerososalgoritmosdegeneracindereglasdeprimerorden.
57
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3Generacindereglaspor especificacin
58
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3Generacindereglaspor especificacin
FOILsebasaenlasuposicindemundocerrado(aunqueesposibledefinirel algoritmo sin asumir esta suposicin). Esto quiere decir que no es necesario enumerarlosejemplosnegativos.Cualquierinstanciadelpredicadoobjetivo queest formadaporlasconstantesdelconocimientodedominioyqueno se encuentreentrelosejemplospositivosseconsideranegativa.
Porejemplo,consideremoselsiguienteconjuntodehechos:
nieta(victor,sharon) mujer(sharon) padre(sharon,bob) padre(bob,victor) padre(tom,bob)
La hiptesis de mundo cerrado significa que cualquier trmino nieta(X,Y), donde las variables se sustituyan por las constantes del dominio (victor, sharon, bob y tom) ser falsa excepto las que se especifiquen explcitamente comociertas(nieta(victor,sharon) ).
59
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
FOILpartedelareglamsgeneral:
nieta(X,Y): .
4.3Generacindereglaspor especificacin
Siguiendoelejemplo,loscandidatosseranlossiguientes:
mujer(X), mujer(Y), padre(X,Y), padre(Y,X), padre(X,Z), padre(Z,X), padre(Y,Z), padre(Z,Y), X=Y, X\=Y.
60
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.3Generacindereglaspor especificacin
EltrminoseleccionadoeselquetengamayorgananciaFOIL:
pR' pR log 2 ganancia = t log 2 p R ' + nR ' p R + nR
donde R representa la regla inicial, R la regla al aadir el trmino, pR es el nmero de sustituciones positivas, nR el nmero de sustituciones negativas y t es el nmero de ejemplos positivos cubiertosporR quepermanecencubiertosporR.
61
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
Ejemplo: Conjuntodeejemplospositivos:
nieta(victor,sharon)
4.3Generacindereglaspor especificacin
Conjuntodeejemplosnegativos:
nieta(victor,victor).nieta(victor,bob).nieta(victor,tom). nieta(bob,victor).nieta(bob,bob).nieta(bob,tom).nieta(bob,sharon). nieta(tom,victor).nieta(tom,bob).nieta(tom,tom).nieta(tom,sharon). nieta(sharon,victor).nieta(sharon,bob).nieta(sharon,tom).nieta(sharon,sharon).
Dominio:
padre(sharon,bob).padre(tom,bob).padre(bob,victor). mujer(sharon).
62
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
Primeraiteracin:
Candidata nieta(X,Y): mujer(X). nieta(X,Y): mujer(Y). nieta(X,Y): padre(X,Y). nieta(X,Y): padre(Y,X). nieta(X,Y): padre(X,Z). nieta(X,Y): padre(Z,X). nieta(X,Y): padre(Y,Z). nieta(X,Y): padre(Z,Y). nieta(X,Y): X=Y. nieta(X,Y): X/=Y. 0 1 0 0 0 1 1 0 0 1 P 4 3 3 3 12 11 11 12 4 11 N 0 1 0 0 0 1 1 0 0 1
4.3Generacindereglaspor especificacin
ganancia
Salida:nieta(X,Y): mujer(Y).
63
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
Segundaiteracin:
Candidata nieta(X,Y): mujer(Y),mujer(X). nieta(X,Y): mujer(Y),padre(X,Y). nieta(X,Y): mujer(Y),padre(Y,X). nieta(X,Y): mujer(Y),padre(X,Z). nieta(X,Y): mujer(Y),padre(Z,X). nieta(X,Y): mujer(Y),padre(Y,Z). nieta(X,Y): mujer(Y),padre(Z,Y). nieta(X,Y): mujer(Y),X=Y. nieta(X,Y): mujer(Y),X/=Y. 0 0 0 0 1 1 0 0 0 P 4 4 4 3 2 3 0 4 4 N
4.3Generacindereglaspor especificacin
t 0 0 0 0 1 1 0 0 0
ganancia
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
MejoraspropuestasenFOIL: Posibilidaddeincorporarconstantes:
4.3Generacindereglaspor especificacin
Posibilidaddegenerarreglasrecursivas:
Paragenerarlasesnecesarioconsiderarentrelosliteralesalpredicadodelacabeza Hayqueestudiarrestriccionesparaevitarrecursividadesinfinitas
65
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
ndice
66
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.4Generacindereglaspor resolucininversa
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.4.1Resolucininversaenlgicaproposicional OperadorderesolucininversaO(C1,C2)
4.4Generacindereglaspor resolucininversa
Silosliteralesigualessonnegativos:
C1 =h1 r1 r2 C2 =h2 q1 q2 r1 r2 O(C1,C2)=h2 q1 q2 h1
Silosliteralesigualesincluyenalliteralpositivo:
C1 =h1 r1 p1 C2 =h1 r1 q1 q2 O(C1,C2)=p1 q1 q2
68
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.4Generacindereglaspor resolucininversa
69
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.4Generacindereglaspor resolucininversa
4.4.2Resolucininversaenlgicadeprimerorden
Regladeresolucinenlgicadeprimerorden: unificadortalque(p1 =p2 ) p1 q1 r1 p2 s2 t2 . (q1 r1 s2 t2 .) SinoslimitamosaclusulasdeHorn,todaclusuladebetenerunnico literalpositivo.ElresultadodelaregladeresolucinentreclusulasdeHorn esotraclusuladeHorn. p1 q1 r1 unificadortalque(p1 =p2 ) p2 s2 t2 . (q1 r1 s2 t2 .)
70
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.4Generacindereglaspor resolucininversa
4.4.2Resolucininversaenlgicaproposicional OperadorderesolucininversaO(C1,C2)
DadasC1 yC2,eloperadordebegenerarunaclusulaO(C1,C2)talque O(C1,C2) C1 C2 Para aplicar el operador de resolucin inversa hay que buscar los literales comunesenC1 yC2 (ri)ylosliteralesdiferentesenC1 (pi)yC2(qi).Paraque el resultado sea una clusula de horn, debe haber como mucho un literal diferenteenC1 oenC2 Hayquebuscarlasustitucin talquelosliteralescomunesunifiquen( r1i =r2i ).Lasustitucinsepuededescomponerendospartes(1 y2), referidasalasvariablesdeC1 yC2,respectivamente.
C1 =p1 r11 r12 C2 =q1 q2 q3 r21 r22 O(C1,C2)=(q1 q2 q3) (p1)
71
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
4.4Generacindereglaspor resolucininversa
4.4.1Resolucininversaenlgicadeprimerorden
Enlgicadeprimerorden,eloperadorde resolucininversaes
Si(C1 =L1 R)y(C2 =L2 R)y =12 entoncesC=(C2 R1)21 L1121
72
Aprendizajeautomtico
Tema4:ProgramacinLgica Inductiva
Ejemplo:
SiC1 =padre(sharon,tom) yC2 =nieta(bob,sharon) y ={X/sharon}
4.4Generacindereglaspor resolucininversa
Ejemplo:
SiC4 =padre(tom,bob) yC3 =nieta(bob,X) padre(X,tom) y ={Y/bob,Z/tom} entoncesC5 =nieta(Y,X) padre(X,Z) padre(Z,Y) (nieta(Y,X): padre(X,Z),padre(Z,Y) )
73
Aprendizajeautomtico