You are on page 1of 73

Aprendizaje automtico

Tema4 ProgramacinLgica Inductiva

CienciasdelaComputacineInteligenciaArtificial

Tema4:ProgramacinLgica Inductiva

ndice

4.1Lgicaproposicional 4.2Lgicadeprimerorden 4.3Programacinlgicainductiva 4.4Generacindereglasporespecificacin 4.5Generacindereglasporresolucininversa

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

ndice

4.1Lgicaproposicional 4.2Lgicadeprimerorden 4.3Programacinlgicainductiva 4.4Generacindereglasporespecificacin 4.5Generacindereglasporresolucininversa

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional


Objetivosdelalgicaformal:

4.1Lgicaproposicional

Laformalizacindellenguajenatural(representacin). Losmtodosderazonamiento(inferencia). Tiposdelgica: Lgicaproposicional. Lgicadeprimerorden(odepredicados). Lgicamodal. Lgicatemporal. Lgicamultivaluada. Lgicadifusa.

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional

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

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional

4.1Lgicaproposicional

Lalgicaproposicional trabajaconfrmulasbienformadas.

Lasfrmulasbienformadassonexpresioneslgicasqueseconstruyen combinandoproposicionessimplesyconectivaslgicas. Unafrmulabienformadaes: Unaproposicin.(p) Lanegacindeunafrmulabienformada( p) Laconjuncindedosfrmulasbienformadas(p q) Ladisyuncindedosfrmulasbienformadas(p q) Laimplicacinentredosfrmulasbienformadas(p q) Ladobleimplicacinentredosfrmulasbienformadas(p q)


6

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional

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

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional

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

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional

4.1Lgicaproposicional

Dosexpresioneslgicassonequivalentes sitienenlamismatabladeverdad. Algunasexpresionesequivalentes:


(a b)= a b(LeydeDeMorgan) (a b)= a b(LeydeDeMorgan) a b= a b(Implicacin)

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

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional


Algunasexpresionesequivalentes:

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

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional

4.1Lgicaproposicional

Aplicandolastransformacionesanterioresesposibleconvertircualquier frmulalgicaenunaformanormalconjuntiva. Unaformanormalconjuntivatienelassiguientescaractersticas:


Nocontieneimplicaciones. Nocontienedoblesimplicaciones. Lasnegacionesaparecenaplicadassloaproposicionessimples. Lasexpresionesestnformadasporconjuncindedisyunciones.

Lasexpresionessetransformanentoncesenconjuncionesdeclusulas, dondecadaclusulaest formadapordisyuncionesdeproposicioneso proposicionesnegadas.

11

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva 4.1.1Definicindelgicaproposicional

4.1Lgicaproposicional

Algoritmoparatransformarunafrmulalgicaenformanormal conjuntiva. 1. Sustituirtodaimplicacin(a b)por( a b). b)por(a b) ( a b).

2. Sustituirtodadobleimplicacin(a

3. Sustituirlasexpresionesdetipo(a b)por( a b) 4. Sustituirlasexpresionesdetipo(a b)por( a b) 5. Aplicarlapropiedaddistributivaparaexpresarlafrmulacomo conjuncindedisjunciones.

12

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva 4.1.2 Mecanismos de inferencia

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

4.1.2 Mecanismos de inferencia Deduccin.


Modus Ponens: si existe una implicacin y el antecedente es verdadero, entonces, el consecuente es verdadero. Intuitivamente: si se da la causa, se da el efecto. AB A B BC = {A B, A} pasa a BC = {A B, A, B}

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

4.1.2 Mecanismos de inferencia Deduccin.


Regla de resolucin: a b a b c c a b b c a c p q r pst q r s t .

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

4.1.2 Mecanismos de inferencia Demostracin


Dada una cierta base de conocimientos BC, que se asume como cierta, se puede demostrar que una cierta expresin Q es cierta? (La deduccin se denota BC Q) Considerando que BC se puede expresar en forma normal conjuntiva, podemos considerar la base de conocimientos completa como una nica expresin formada por la conjuncin de todas sus clusulas. En tal caso, lo que nos preguntamos es si BC Q es cierto. O, teniendo en cuenta que a b = (a b ), si BC Q es falso. Esto se conoce como demostracin por refutacin y consiste en aadir la clusula Q a la base de conocimientos y, utilizando la resolucin como mecanismo de deduccin, llegar a una contradiccin. En la regla de resolucin se llega a una contradiccin cuando el resultado es vaco, es decir, cuando se resuelve p p.
16

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.1Lgicaproposicional

4.1.2 Mecanismos de inferencia Demostracin


Nota: para evitar bucles infinitos habra que controlar que no se repitieran c1 y c2 y que no se insertan clusulas duplicadas. Nota: para que el algoritmo sea ms rpido se utiliza la heurstica preferencia por la unidad porque genera clusulas cada vez ms cortas.

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

4.1.2 Mecanismos de inferencia Demostracin


La lgica proposicional es completa, en el sentido de que si una expresin es vlida entonces existe algn mecanismo que demuestra que lo es. Por ejemplo, el estudio de la tabla de verdad es un mecanismo completo, ya que permite demostrar la validez de cualquier expresin. El problema es que su complejidad es de orden exponencial (2N, siendo N el nmero de proposiciones diferentes). La verificacin en lgica proposicional es un problema NP-Completo. La demostracin por refutacin es un mtodo completo, ya que si lo que se trata de demostrar es cierto, entonces el mecanismo de resolucin encontrar la contradiccin. Por el contrario, si lo que se trata de demostrar es falso, el mecanismo no encuentra la contradiccin y no para. Es decir, nunca podremos saber si el algoritmo no para porque an no ha encontrado la contradiccin o porque sta no existe. Se dice, por tanto, que el mtodo de resolucin es semidecidible.
18

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.1Lgicaproposicional

4.1.3 Ejemplo de resolucin proposicional


Base de conocimientos: (1) p (2) q r (3) p q s (4) r s t Objetivo: demostrar que t es cierto

19

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.1Lgicaproposicional

4.1.3 Ejemplo de resolucin proposicional


1er paso: Transformar la base de conocimientos a forma normal conjuntiva (1) p (2) q (3) r (4) p q s (5) r s t 2 paso: aadir la negacin del objetivo (6) t

3er paso: aplicar la regla de resolucin (r s t), (t) (7) r s

20

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.1Lgicaproposicional

4.1.3 Ejemplo de resolucin proposicional


4 paso: aplicar la regla de resolucin (r s), ( r ) (8) s

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

4.1.4 Lgica proposicional y sistemas expertos


En el tema anterior (Clasificacin) hemos presentado Sistemas Expertos basados en reglas IF-THEN. Los antecedentes de estas reglas estaban formados por la conjuncin de selectores de la forma (Atributo=Valor). Estos selectores pueden ser considerados como proposiciones simples, ya que el resultado de estas comparaciones es verdadero o falso. El comportamiento de los sistemas expertos basados en reglas IF-THEN es similar al de un sistema basado en lgica proposicional en el que toda inferencia es hacia delante (Modus Ponens). La lgica proposicional resulta ms potente que estos sistemas expertos ya que su mecanismo de inferencia (Regla de resolucin) permite realizar deducciones en cualquier sentido. La lgica proposicional resulta ms expresiva que los sistemas expertos ya que trabaja con frmulas bien formadas y no slo con reglas IF-THEN. Por ejemplo, permite expresiones como ( a ( b c d f ) ).
22

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

ndice

4.1Lgicaproposicional 4.2Lgicadeprimerorden 4.3Programacinlgicainductiva 4.4Generacindereglasporespecificacin 4.5Generacindereglasporresolucininversa

23

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.2Lgicadeprimerorden

4.2.1Definicindelalgicadeprimerorden Lalgicadeprimerordenconsideraobjetosysuspropiedadesy relaciones. Porejemplo,paraelSudoku losobjetospodranserlasceldas(omejor lasfilasycolumnas)ylosposiblesvalores:


F0,F1,F2,F3,F4,F5,F6,F7,F8. C0,C1,C2,C3,C4,C5,C6,C7,C8. No1,No2,No3,No4,No5,No6,No7,No8,No9

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

Permitenidentificarlosobjetosdeldominio Sedenotanmediantecadenas(comienzanenmayscula)onmeros Ejemplo:Juan,Mara,F1,C8,27,524.8

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

Permitedescribirunarelacinentreobjetosounapropiedaddelobjeto Secaracterizanporsunombreysuaridad (n deargumentos) Elnombreesunacadenaquecomienzaenmayscula Losargumentosdebensertrminos Unpredicadopuedeserciertoofalso Ejemplo:Fila(F1),Celda(F3,C4),Contiene(F6,C8,No3)

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

tomo Lanegacindeunafrmulabienformada( p) Laconjuncindedosfrmulasbienformadas(p q) Ladisyuncindedosfrmulasbienformadas(p q) Laimplicacinentredosfrmulasbienformadas(p q) Ladobleimplicacinentredosfrmulasbienformadas(p q) Elcuantificadoruniversalaplicadoaunafrmulabienformada(x:P) Elcuantificadorexistencialaplicadoaunafrmulabienformada(x:P)

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) )

Hombre(x) Mortal(x) Hombre(Socrates) Mortal(Socrates)

= { 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

Introduccinexistencial: a(Constante) x:a(x) Ejemplo Gusta(Juan,Helado) x: Gusta(x,Helado)

33

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.2Lgicadeprimerorden

4.2.3Ejemplodeinferenciaenlgicadeprimerorden Consideremoslassiguientesoracioneslgicas: 1. 2. 3. 4. 5. Juantieneunperro Todoslosquetienenperrosamanalosanimales Nadiequeamaalosanimaleslosmata AlgatoTunalomat Juanolacuriosidad Lacuriosidadmat algatoTuna?

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

4.2.4 Prover9, un demostrador de teoremas lgicos

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

4.2.4Prover9,undemostradordeteoremaslgicos EjemplodeentradadeProver9: Hipotesis


exists x ( Perro(x) & Posee(Juan,x) ). all x ( (exists y (Perro(y) & Posee(x,y)) ) -> AmaALosAnimales(x) ). all x ( AmaALosAnimales(x) -> (all y (Animal(y) -> -Mata(x,y) ) ) ). Gato(Tuna) & ( Mata(Juan,Tuna) | Mata(Curiosidad,Tuna) ). all x ( Gato(x) -> Animal(x) ). all x ( Perro(x) -> Animal(x) ).

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

4.1Lgicaproposicional 4.2Lgicadeprimerorden 4.3Programacinlgicainductiva 4.4Generacindereglasporespecificacin 4.5Generacindereglasporresolucininversa

50

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.3ProgramacinLgicaInductiva

4.3.1 Lgica de primer orden y sistemas expertos


La lgica de primer orden es mucho ms potente y expresiva que los sistemas expertos basados en reglas IF-THEN. Expresado en lgica de predicados, un sistema experto basado en reglas IF-THEN estara formado por reglas de la siguiente forma: clase(Atr1, Atr2, Atr3, claseA) :- Atr1 = valor11, Atr2 = valor21, Atr3 = valor31. clase(Atr1, Atr2, Atr3, claseB) :- Atr1 = valor12, Atr2 = valor22, Atr3 = valor32.

51

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.3ProgramacinLgicaInductiva

4.3.1 Lgica de primer orden y sistemas expertos


Algunas de sus ventajas de la lgica de primer orden son las siguientes: Permite describir informacin relacional. La lgica de primer orden admite tambin expresiones como (Atributo1 = Atributo2), es decir, expresiones que relacionen los valores de los atributos entre s.
clase(Atr1, Atr2, Atr3, Atr4, claseA) :- Atr1 = Atr2, Atr3 = valor3.

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

4.3.2DefinicindelaProgramacinLgicaInductiva Definicinformal: ComponentesdeunproblemadeProgramacinLgicaInductiva:


Unconjuntodeejemplospositivos,+. Unconjuntodeejemplosnegativos,. Unprogramalgicoconsistente,T,apartirdelcualnosepuedadeducir almenosunodelosejemplospositivos.T representaelconocimientode dominio.

ObjetivodelaProgramacinLgicaInductiva:
EncontrarunprogramalgicoH talqueT U H seacompleto(respectode +)yconsistente(respectode).

55

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

ndice

4.1Lgicaproposicional 4.2Lgicadeprimerorden 4.3Programacinlgicainductiva 4.4Generacindereglasporespecificacin 4.5Generacindereglasporresolucininversa

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

Esquema general de un algoritmo de generacin de reglas por especificacin:


function FOIL returns listaDeReglas input Ep // Conjunto de ejemplos pusitivos input En // Conjunto de ejemplos negativos input Domain // Conjunto de predicados del dominio input Pred // Predicado objetivo begin listaDeReglas while NoVacio(Ep) regla ReglaVacia(Pred) while Cubre(regla,En) regla AadirLiteral(regla,Domain) endwhile Ep EliminarEjemplosCubiertos(Ep,regla) listaDeReglas AadirRegla(listaDeReglas,regla) endwhile return listaDeReglas end

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

Para aadir trminos a la regla, FOIL considera los siguientes candidatos:


q(V1,V2,...,Vr),dondeq esalgunodelospredicadosdeldominioyVi son variablesdondealmenosunadebeestaryapresenteenlaregla X=Y,dondeX eY sonvariablesqueyaestnpresentesenlaregla Lanegacindelosdostiposdetrminosanteriores.(Sinosbasamosen clusulasdeHorn,lanegacindelospredicadosnoestarapermitida)

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

Para seleccionar el trmino candidato, FOIL estudia todas las sustitucionesposiblesdelasvariablesdelaregla.


Lasustitucin{X/victor,Y/sharon }escorrecta. Lasustitucin{X/bob,Y/tom }esunaevidencianegativadelaregla. Con2variablesy4constantesexisten16sustitucionesposibles.

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

Salida:nieta(X,Y): mujer(Y),padre(Z,X). Terceraiteracin: nieta(X,Y): mujer(Y),padre(Z,X),padre(Y,Z).


64

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva
MejoraspropuestasenFOIL: Posibilidaddeincorporarconstantes:

4.3Generacindereglaspor especificacin

Losliteralesestudiadossloutilizanvariables. Muchosproblemasseresuelvenconcasosbaseparaciertosvalores LasolucinesaadirliteralesV=constante entrelasopcionesdeFOIL Esnecesarioincorporarrestriccionesalasconstantes(indicarcualespuedenser utilizadasenestosliterales)

Posibilidaddegenerarreglasrecursivas:
Paragenerarlasesnecesarioconsiderarentrelosliteralesalpredicadodelacabeza Hayqueestudiarrestriccionesparaevitarrecursividadesinfinitas

65

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

ndice

4.1Lgicaproposicional 4.2Lgicadeprimerorden 4.3Programacinlgicainductiva 4.4Generacindereglasporespecificacin 4.5Generacindereglasporresolucininversa

66

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.4Generacindereglaspor resolucininversa

4.4.1Resolucininversaenlgicaproposicional Consisteenconsiderarlainduccincomolaoperacin inversadeladeduccin. Regladeresolucinenlgicaproposicional: p q r p s t . q r s t . SinoslimitamosaclusulasdeHorn,todaclusuladebe tenerunnicoliteralpositivo.Elresultadodelareglade resolucinentreclusulasdeHorn esotraclusuladeHorn. p q r p s t . q r s t .


67

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva
4.4.1Resolucininversaenlgicaproposicional OperadorderesolucininversaO(C1,C2)

4.4Generacindereglaspor resolucininversa

DadasC1 yC2,eloperadordebegenerarunaclusulaO(C1,C2)talqueO(C1,C2) C1 C2 Paraaplicareloperadorderesolucininversahayquebuscarlosliteralescomunes enC1 yC2 ylosliteralesdiferentesenC1 yC2.

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

Paraqueelresultadoseaunaclusuladehorn,debehabercomomuchounliteral diferenteenC1 oenC2

68

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva

4.4Generacindereglaspor resolucininversa

4.4.1Resolucininversaenlgicaproposicional DadounconjuntodeclusulasCi,puedenexistirmuchasformasde aplicareloperadordeimplicacininversa.Losalgoritmosbasados enestaestrategiadebenseleccionarlamejordelasopciones(laque mantengalaconsistenciaen ycubramsejemplosen+)

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

Denuevo,puedenexistirmuchasformasdeaplicar esteoperador. LaherramientaCIGOLsebasaenestealgoritmo

72

Aprendizajeautomtico

Tema4:ProgramacinLgica Inductiva
Ejemplo:
SiC1 =padre(sharon,tom) yC2 =nieta(bob,sharon) y ={X/sharon}

4.4Generacindereglaspor resolucininversa

entoncesC3 =nieta(bob,X) padre(X,tom) (nieta(bob,X): padre(X,tom) )

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

You might also like