SlideShare una empresa de Scribd logo
1 de 35
Modificado y Adaptado por: LEONARDO BERNAL ZAMORA
Programación Lógica Forma normal de una fórmula Una fórmula se dice que está en forma normal si todos los cuantificadores han sido desplazados al principio de la fórmula. Algunas equivalencias útiles para alcanzar una forma normal    [ (   X) p(X) ]    (  X) [   p(X) ]    [ (  X) p(X) ]    (   X) [   p(X) ]  (   X) [ p(X)    q(X) ]    [ (  X) p(X) ]    [ (  X) q(X) ]  (   X) [ p(X)    q(X) ]    [ (   X) p(X) ]    [ (   X) q(X) ]
Reglas de Inferencia: Especialización Universal:  siempre es posible deducir la verificación de un caso concreto a partir de un cuantificador universal. (  X) p(X)   p(a) Sustitución:   permite la sustitución de cualquier proposición en una fórmula por otra biequivalente. Modus ponens:  de una implicación de la verificación de la premisa se verifica la conclusión. Axioma:  p    q Axioma:  p Teorema: q
Programación Lógica Modus tollens:  de una implicación y de la no verificación del consecuente, se concluye la no verificación de la premisa. Axioma:  p    q Axioma:  ¬q Teorema: ¬p Y - Introducción:  la fbf p  q puede ser inferida de las fbf p y q. Y- Eliminación:  la fbf p puede ser inferida de la fbf p  q. O - Introducción:   la fbf p    q puede ser inferida de la fbf p o de la fbf q. Reglas de Inferencia:
El Modus Ponens o razonamiento directo
El Modus Tollens o razonamiento indirecto
 
Programación Lógica ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación Lógica Ejercicios. Expresar como fbf en lógica de predicados los siguientes hechos A. Marco era un hombre. B. Marco era pompeyano (de Pompeya). C. Todos los pompeyanos eran romanos. D. César era un dirigente. E. Todos los romanos o bien eran leales a César o bien le odiaban. F. Todo el mundo es fiel a alguien.  G. La gente sólo trata de asesinar a aquellos dirigentes a los que no son leales. H. Marco intentó asesinar a César. I. Algún romano odia a César.
Programación Lógica A. hombre(marco) B. pompeyano(marco) C. (  X)(pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(hombre(X)      (  Y) leal(X,Y)  G. (  X)  (  Y) (hombre(X)    dirigente(Y)     intenta_asesinar(X,Y)       leal(X,Y))  H. intenta_asesinar(marco, césar) I. (  X) (romano(X)    odia(X, césar))
Programación Lógica Teorema + Axiomas (como fórmulas bien formadas, fbf) Teorema + Axiomas (como cláusulas) Método de resolución por refutación Unificación Demostración automática de teoremas + + Lo que queremos hacer ...
Programación Lógica IMPORTANTE: La demostración automática de teoremas lógicos es un procedimiento que involucra una mera actividad sintáctica, o de relación entre símbolos, ignorándose completamente el contenido semántico que resulta de la interpretación de las fórmulas.
Programación Lógica Fórmulas bien formadas (fbf) Son aquellas que cumplen ciertos requisitos en su estructura y definen la sintaxis del cálculo de predicados Una fórmula se dice bien formada si puede derivarse de alguna de las siguientes reglas de formación: 1. Cualquier fórmula atómica es una fbf. 2. Si p y q son fbf, entonces también serán fbf las siguientes: ¬p, p    q, p    q, p    q 3. Si X es una variable libre en la fbf p, entonces son fbf : (  X) p(X), (  X) p(X) 4. Cualquier fórmula que no pueda formarse a partir de estas reglas no es una fbf.
Programación Lógica Cláusula Es una fórmula que sólo contiene operadores disyuntivos y posiblemente negaciones sobre los átomos. Este tipo de fórmulas pueden ser expresadas por una única implicación. Así la fórmula: a 1     a 2     ...    a n      b 1     b 2     ...    b m se puede transformar en :   ¬(¬ a 1     ¬ a 2     ...    ¬ a n  )     b 1     b 2     ...    b m   ¬ a 1     ¬ a 2     ...    ¬ a n     b 1     b 2     ...    b m
Programación Lógica ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación Lógica Proceso de paso a cláusulas: 1.  Eliminar los símbolos de implicación   2.  Mover las negaciones hasta las fórmulas atómicas   3.  Renombrar variables 4.  Eliminar los cuantificadores existenciales. 5.  Desplazar los cuantificadores universales   6.  Convertir los operadores AND en los más externos 7.  Eliminar los cuantificadores universales. 8.  Eliminar los conectores conjuntivos (AND). 9.  Renombrar las variables.
Programación Lógica Transformación a cláusulas Para ilustrar el proceso paso a paso emplearemos la siguiente fómula compleja como ejemplo: (  X){p(X)   {(  Y)[p(Y)    p(f(X,Y))]     (  Y)[q(X,Y)    p(Y)]}} 1.  Eliminar los símbolos de implicación ,  sustituyendo p    q por   p    q. Tras este primer paso, nuestra fómula se transforma en: (  X){  p(X)    {(  Y)[   p(Y)    p(f(X,Y))]      (  Y)[   q(X,Y)    p(Y)]}}
Programación Lógica 2.  Mover las negaciones hasta las fórmulas atómicas , para ello se emplean las leyes de Morgan y las transformaciones de cuantificadores existenciales y universales.    (p    q)       p       q    (p    q)       p       q    [ (   X) p(X) ]    (  X) [   p(X) ]    [ (  X) p(X) ]    (   X) [   p(X) ]  Aplicándolo sobre el ejemplo: (  X){  p(X)    {(  Y)[   p(Y)    p(f(X,Y))]      (  Y)[   q(X,Y)    p(Y)]}} (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    (  Y)[q(X,Y)       p(Y)]}}
Programación Lógica 3.  Renombrar variables , en aquellos casos en los que varias variables se hayan nombrado de igual forma. En nuestro caso esto ocurre con la variable Y que renombramos como Z en su segunda ocurrencia. Así nuestro ejemplo se transforma en: (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    (  Y)[q(X,Y)       p(Y)]}} (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    (  Z)[q(X,Z)       p(Z)]}}
Programación Lógica 4.  Eliminar los cuantificadores existenciales .  Las variables cuantificadas por este tipo de cuantificadores serán sustituidas por un tipo de función comodín denominada función de Skolem (proceso de skolemización). P.e. (  Z) q(X,Z) se transforma en  q(X, g(X)) en donde g(X) es la función de Skolem para este caso. Nótese que no sólo se eliminan los cuantificadores existenciales sino también las variables ligadas a los mismos. La función de Skolem introducida debe ser nueva en el universo de discurso, y además deberá ser función de todas las variables cuantificadas universalmente cuyos ámbitos incluyan el ámbito del cuantificador existencial que se pretende eliminar.
Programación Lógica Así nuestro ejemplo se transforma en: (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    (  Z)[q(X,Z)       p(Z)]}} (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    [q(X, g(X))       p(g(X))]}} Si el cuantificador existencial no se encuentra en el ámbito de ningún cuantificador universal, se usará una función de Skolem sin argumentos. Como en el siguiente ejemplo: (  Z) q(Z) se transforma en q(a) Donde el símbolo constante a referencia a la entidad que sabemos existe. Evidentemente a debe ser un símbolo que no haya sido empeado con anterioridad.
Programación Lógica 5.  Desplazar los cuantificadores universales,  de manera que queden al comienzo de la fórmula (prenex form). Estre proceso puede ser realizado por cuanto no existen ya variables distintas con el mismo nombre. (  X){   p(X)    {(  Y)[   p(Y)    p(f(X,Y))]    [q(X, g(X))       p(g(X))]}} (  X) (  Y){   p(X)    { [   p(Y)    p(f(X,Y))]    [q(X, g(X))       p(g(X))]}} 6.  Convertir los operadores conjuntivos (AND) en los más externos ,  para lo que se emplean las leyes distributivas. A la forma resultante se le denomina forma normal conjuntiva. Este paso se ejecuta sobre el ejemplo en dos pasos:
Programación Lógica Partiendo de la última expresión, (  X)(  Y){   p(X)    { [   p(Y)    p(f(X,Y))]    [q(X, g(X))       p(g(X))]}} se aplica primero la ley distributiva: (  X)(  Y){ {   p(X)    [   p(Y)    p(f(X,Y))]}     {   p(X)    [q(X, g(X))       p(g(X))]}} Aplicando de nuevo la ley distributiva y la asociativa: (  X)(  Y){ [   p(X)       p(Y)    p(f(X,Y))]     [   p(X)    q(X, g(X)) ]       [   p(X)       p(g(X))]}
Programación Lógica 7.  Eliminar los cuantificadores universales.  Se trata de una eliminación convencional, no teórica, pues se asume que toda variable que aparezca está cuantificada universalmente. La función de Skolem adquiere sentido, dado que al no aparecer otras variables que las universales, pueden eliminarse sus cuantificadores por convenio. En nuestro ejemplo: (  X)(  Y){ [   p(X)       p(Y)    p(f(X,Y))]     [   p(X)    q(X, g(X)) ]       [   p(X)       p(g(X))]} [   p(X)       p(Y)    p(f(X,Y))]     [   p(X)    q(X, g(X)) ]     [   p(X)       p(g(X))]
Programación Lógica 8.  Eliminar los conectores conjuntivos (AND).  Dado que la fómula se corresponde con una conjunción de subfómulas, éstas deberán verificarse por separado para que se verifique la fórmula principal.  Esto produce, en nuestro caso, el siguiente conjunto de fórmulas: [   p(X)       p(Y)    p(f(X,Y))]     [   p(X)    q(X, g(X)) ]     [   p(X)       p(g(X))]    p(X)       p(Y)    p(f(X,Y))    p(X)    q(X, g(X))     p(X)       p(g(X))
Programación Lógica 9.  Renombrar las variables .  para que no aparezca la misma variable en dos cláusulas.    p(X)       p(Y)    p(f(X,Y))    p(X)    q(X, g(X))     p(X)       p(g(X))    p(X)       p(Y)    p(f(X,Y))    p(U)    q(U, g(U))     p(W)       p(g(W)) ------ * * * ------ Mediante este proceso se termina en una representación en forma de cláusulas. Así de una una única fórmula pueden resultar varias cláusulas que son más modulares y de estructura más simple.
Programación Lógica A. hombre(marco) B. pompeyano(marco) C. (  X)(pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(hombre(X)      (  Y) leal(X,Y)  G. (  X)  (  Y) (hombre(X)    dirigente(Y)     intenta_asesinar(X,Y)       leal(X,Y))  H. intenta_asesinar(marco, césar) I. (  X) (romano(X)    odia(X, césar))
Programación Lógica Proceso de paso a cláusulas 1.  Eliminar los símbolos de implicación   A. hombre(marco) B. pompeyano(marco) C. (  X)(   pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(   romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(   hombre(X)      (  Y) leal(X,Y)  G. (  X){ (  Y)       (hombre(X)     dirigente(Y)    intenta_asesinar(X,Y)           leal(X,Y)) } H. intenta_asesinar(marco, césar) I. (  X) (romano(X)    odia(X, césar))
Programación Lógica Proceso de paso a cláusulas 2.  Mover las negaciones hasta las fórmulas atómicas A. hombre(marco) B. pompeyano(marco) C. (  X)(   pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(   romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(   hombre(X)      (  Y) leal(X,Y)  G. (  X)(  Y) (   hombre(X)      dirigente(Y)        intenta_asesinar(X,Y)       leal(X,Y)) H. intenta_asesinar(marco, césar) I. (  X) (romano(X)    odia(X, césar)) 3.Renombrar las variables
Programación Lógica Proceso de paso a cláusulas 4. Eliminar los cuantificadores existenciales A. hombre(marco) B. pompeyano(marco) C. (  X)(   pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(   romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(   hombre(X)    leal(X, g(X)) G. (  X)(  Y) (   hombre(X)      dirigente(Y)       intenta_asesinar(X,Y)      leal(X,Y)) H. intenta_asesinar(marco, césar) I. romano(f)    odia(f, césar))
Programación Lógica Proceso de paso a cláusulas 5. Desplazar los cuantificadores universales 6. Convertir los operadores AND en los más externos A. hombre(marco) B. pompeyano(marco) C. (  X)(   pompeyano(X)    romano(X)) D. dirigente(césar) E. (  X)(   romano(X)    leal(X,césar)    odia(X,césar)) F. (  X)(   hombre(X)    leal(X, g(X)) G. (  X)(  Y) (   hombre(X)      dirigente(Y)       intenta_asesinar(X,Y)      leal(X,Y)) H. intenta_asesinar(marco, césar) I. romano(f)    odia(f, césar))
Programación Lógica Proceso de paso a cláusulas 7. Eliminar los cuantificadores universales A. hombre(marco) B. pompeyano(marco) C.    pompeyano(X)    romano(X) D. dirigente(césar) E.    romano(X)    leal(X,césar)    odia(X,césar) F.    hombre(X)    leal(X, g(X)) G.    hombre(X)       dirigente(Y)        intenta_asesinar(X,Y)       leal(X,Y) H. intenta_asesinar(marco, césar) I. romano(f)    odia(f, césar))
Programación Lógica Proceso de paso a cláusulas 8. Eliminar los conectores AND A. hombre(marco) B. pompeyano(marco) C.    pompeyano(X)    romano(X) D. dirigente(césar) E.    romano(X)    leal(X,césar)    odia(X,césar) F.    hombre(X)    leal(X, g(X)) G.    hombre(X)       dirigente(Y)        intenta_asesinar(X,Y)       leal(X,Y) H. intenta_asesinar(marco, césar) I1. romano(f)  I2. odia(f, césar))
Programación Lógica Proceso de paso a cláusulas 9. Renombrar las variables A. hombre(marco) B. pompeyano(marco) C.    pompeyano(X)    romano(X) D. dirigente(césar) E.    romano(Y)    leal(Y,césar)    odia(Y,césar) F.    hombre(Z)    leal(Z, g(Z) G.    hombre(W)       dirigente(K)        intenta_asesinar(W,K)       leal(W,K) H. intenta_asesinar(marco, césar) I1. romano(f)  I2. odia(f, césar))
Actividad de trabajo Independiente: Explique y desarrolle:

Más contenido relacionado

La actualidad más candente

Matemáticas Discretas - Unidad III: Logica matemática
Matemáticas Discretas - Unidad III: Logica matemáticaMatemáticas Discretas - Unidad III: Logica matemática
Matemáticas Discretas - Unidad III: Logica matemáticaJosé Antonio Sandoval Acosta
 
Introducción al sistema binario y hexadecimal
Introducción al sistema binario y hexadecimalIntroducción al sistema binario y hexadecimal
Introducción al sistema binario y hexadecimalAnne Lazpita Cárdenas
 
Unidad 3 c2-control/DISCRETIZACION DE FUNCIONES DE TRANSFERENCIA
Unidad 3 c2-control/DISCRETIZACION DE FUNCIONES DE TRANSFERENCIAUnidad 3 c2-control/DISCRETIZACION DE FUNCIONES DE TRANSFERENCIA
Unidad 3 c2-control/DISCRETIZACION DE FUNCIONES DE TRANSFERENCIADavinso Gonzalez
 
Lenguaje C y los Sistemas Operativos Actuales
Lenguaje C y los Sistemas Operativos ActualesLenguaje C y los Sistemas Operativos Actuales
Lenguaje C y los Sistemas Operativos Actualesjuan_briceo
 
Derivadas y su interpretacion
Derivadas y su interpretacionDerivadas y su interpretacion
Derivadas y su interpretacionCristian Sanchez
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaRolf Pinto
 
Funciones Logaritmicas Y Exponenciales
Funciones Logaritmicas Y ExponencialesFunciones Logaritmicas Y Exponenciales
Funciones Logaritmicas Y Exponencialeskijaramillo
 
Expresiones algebraicas
Expresiones algebraicasExpresiones algebraicas
Expresiones algebraicasGuillermo Noat
 
Importancia de las integrales
Importancia de las integralesImportancia de las integrales
Importancia de las integralesFranco Maiuri
 
Primera unidad numeros binarios
Primera unidad numeros binariosPrimera unidad numeros binarios
Primera unidad numeros binariosgluiss
 
Sistemas de ecuaciones lineales. Métodos Gauss- Jordan y Gauss
Sistemas de ecuaciones lineales. Métodos Gauss- Jordan y GaussSistemas de ecuaciones lineales. Métodos Gauss- Jordan y Gauss
Sistemas de ecuaciones lineales. Métodos Gauss- Jordan y GaussCarlita Vaca
 
Teoria de automatas y lenguajes formales
Teoria de automatas y lenguajes formalesTeoria de automatas y lenguajes formales
Teoria de automatas y lenguajes formalesUniversidad del Valle
 
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)Instituto Técnico Superior
 

La actualidad más candente (20)

Matemáticas Discretas - Unidad III: Logica matemática
Matemáticas Discretas - Unidad III: Logica matemáticaMatemáticas Discretas - Unidad III: Logica matemática
Matemáticas Discretas - Unidad III: Logica matemática
 
Introducción al sistema binario y hexadecimal
Introducción al sistema binario y hexadecimalIntroducción al sistema binario y hexadecimal
Introducción al sistema binario y hexadecimal
 
Unidad 3 c2-control/DISCRETIZACION DE FUNCIONES DE TRANSFERENCIA
Unidad 3 c2-control/DISCRETIZACION DE FUNCIONES DE TRANSFERENCIAUnidad 3 c2-control/DISCRETIZACION DE FUNCIONES DE TRANSFERENCIA
Unidad 3 c2-control/DISCRETIZACION DE FUNCIONES DE TRANSFERENCIA
 
Lenguaje C y los Sistemas Operativos Actuales
Lenguaje C y los Sistemas Operativos ActualesLenguaje C y los Sistemas Operativos Actuales
Lenguaje C y los Sistemas Operativos Actuales
 
Derivadas y su interpretacion
Derivadas y su interpretacionDerivadas y su interpretacion
Derivadas y su interpretacion
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
Funciones Logaritmicas Y Exponenciales
Funciones Logaritmicas Y ExponencialesFunciones Logaritmicas Y Exponenciales
Funciones Logaritmicas Y Exponenciales
 
Filtros electronicos pdf
Filtros electronicos pdfFiltros electronicos pdf
Filtros electronicos pdf
 
Sumador\Restador
Sumador\RestadorSumador\Restador
Sumador\Restador
 
unidad 4 Matematicas discretas
unidad 4 Matematicas discretasunidad 4 Matematicas discretas
unidad 4 Matematicas discretas
 
Relaciones
RelacionesRelaciones
Relaciones
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Calculo proposicional
Calculo proposicionalCalculo proposicional
Calculo proposicional
 
Expresiones algebraicas
Expresiones algebraicasExpresiones algebraicas
Expresiones algebraicas
 
Importancia de las integrales
Importancia de las integralesImportancia de las integrales
Importancia de las integrales
 
Primera unidad numeros binarios
Primera unidad numeros binariosPrimera unidad numeros binarios
Primera unidad numeros binarios
 
Sistemas de ecuaciones lineales. Métodos Gauss- Jordan y Gauss
Sistemas de ecuaciones lineales. Métodos Gauss- Jordan y GaussSistemas de ecuaciones lineales. Métodos Gauss- Jordan y Gauss
Sistemas de ecuaciones lineales. Métodos Gauss- Jordan y Gauss
 
Teoria de automatas y lenguajes formales
Teoria de automatas y lenguajes formalesTeoria de automatas y lenguajes formales
Teoria de automatas y lenguajes formales
 
ALGEBRA . CIRCUITOS LOGICOS
ALGEBRA . CIRCUITOS LOGICOSALGEBRA . CIRCUITOS LOGICOS
ALGEBRA . CIRCUITOS LOGICOS
 
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
 

Destacado

Destacado (14)

LMF-T1: Sintaxis y semántica de la lógica proposicional
LMF-T1: Sintaxis y semántica de la lógica proposicionalLMF-T1: Sintaxis y semántica de la lógica proposicional
LMF-T1: Sintaxis y semántica de la lógica proposicional
 
Logica
LogicaLogica
Logica
 
Logica
LogicaLogica
Logica
 
Logica
LogicaLogica
Logica
 
DETALLES DE CONCRETO ARMADO
DETALLES DE CONCRETO ARMADODETALLES DE CONCRETO ARMADO
DETALLES DE CONCRETO ARMADO
 
Logica matematica experiencia 2
Logica matematica experiencia 2Logica matematica experiencia 2
Logica matematica experiencia 2
 
La reducción al absurdo
La reducción al absurdoLa reducción al absurdo
La reducción al absurdo
 
Tautologías
TautologíasTautologías
Tautologías
 
Lenguajes de Programacion
Lenguajes de  ProgramacionLenguajes de  Programacion
Lenguajes de Programacion
 
Practicas prolog
Practicas prologPracticas prolog
Practicas prolog
 
Reglas y leyes lógica
Reglas y leyes lógicaReglas y leyes lógica
Reglas y leyes lógica
 
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS  LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
LOS HOMOPOLISACARIDOS Y HETEROPOLISACARIDOS
 
Cálculo VLSM y subredes
Cálculo VLSM y subredesCálculo VLSM y subredes
Cálculo VLSM y subredes
 
Leyes De Lógica
Leyes De LógicaLeyes De Lógica
Leyes De Lógica
 

Similar a Fbf

Lgica de predicados y sistemas formales
Lgica de predicados y sistemas formalesLgica de predicados y sistemas formales
Lgica de predicados y sistemas formalesMiguel Angel Zamora
 
Revista análisis numerico 1
Revista análisis numerico 1Revista análisis numerico 1
Revista análisis numerico 1vicky200697
 
LI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer ordenLI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer ordenJosé A. Alonso
 
Teoría de la Interpolación
Teoría de la InterpolaciónTeoría de la Interpolación
Teoría de la InterpolaciónLeonel Quintero
 
Polinomios interpolantes
Polinomios interpolantesPolinomios interpolantes
Polinomios interpolantes9isaac
 
Ecuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesEcuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesRonny Malpica
 
220 derivadas parcialessegundaspolinomiostaylor
220 derivadas parcialessegundaspolinomiostaylor220 derivadas parcialessegundaspolinomiostaylor
220 derivadas parcialessegundaspolinomiostaylorOsmar Catalino Rojas Orué
 
Deduccion predicados
Deduccion predicadosDeduccion predicados
Deduccion predicadosJacky Leyva
 
Aplicacion de las funciones atematicas a la vida diaria
Aplicacion de las funciones atematicas a la vida diariaAplicacion de las funciones atematicas a la vida diaria
Aplicacion de las funciones atematicas a la vida diariaJhunior Romero
 
Transformada inversa de laplace
Transformada inversa de laplaceTransformada inversa de laplace
Transformada inversa de laplaceDavid Palacios
 
Logica de primer orden
Logica de primer ordenLogica de primer orden
Logica de primer ordensamuel viñas
 

Similar a Fbf (20)

Calculo de predicados
Calculo de predicadosCalculo de predicados
Calculo de predicados
 
Lgica de predicados y sistemas formales
Lgica de predicados y sistemas formalesLgica de predicados y sistemas formales
Lgica de predicados y sistemas formales
 
LOGICA
LOGICALOGICA
LOGICA
 
Revista análisis numerico 1
Revista análisis numerico 1Revista análisis numerico 1
Revista análisis numerico 1
 
LI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer ordenLI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer orden
 
Teoría de la Interpolación
Teoría de la InterpolaciónTeoría de la Interpolación
Teoría de la Interpolación
 
POLINOMIOS INTERPOLADORES
POLINOMIOS INTERPOLADORESPOLINOMIOS INTERPOLADORES
POLINOMIOS INTERPOLADORES
 
Fourier.pdf
Fourier.pdfFourier.pdf
Fourier.pdf
 
Analisis numerico
Analisis numericoAnalisis numerico
Analisis numerico
 
Polinomios interpolantes
Polinomios interpolantesPolinomios interpolantes
Polinomios interpolantes
 
Ecuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesEcuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no lineales
 
La derivada
La derivadaLa derivada
La derivada
 
220 derivadas parcialessegundaspolinomiostaylor
220 derivadas parcialessegundaspolinomiostaylor220 derivadas parcialessegundaspolinomiostaylor
220 derivadas parcialessegundaspolinomiostaylor
 
Deduccion predicados
Deduccion predicadosDeduccion predicados
Deduccion predicados
 
Reglas de Inferencia
Reglas de Inferencia Reglas de Inferencia
Reglas de Inferencia
 
Teoría de Interpolación
Teoría de InterpolaciónTeoría de Interpolación
Teoría de Interpolación
 
Aplicacion de las funciones atematicas a la vida diaria
Aplicacion de las funciones atematicas a la vida diariaAplicacion de las funciones atematicas a la vida diaria
Aplicacion de las funciones atematicas a la vida diaria
 
Transformada inversa de laplace
Transformada inversa de laplaceTransformada inversa de laplace
Transformada inversa de laplace
 
Logicaformal
LogicaformalLogicaformal
Logicaformal
 
Logica de primer orden
Logica de primer ordenLogica de primer orden
Logica de primer orden
 

Más de Leonardo Bernal Zamora: Docente, Internauta y convencido de la educación para todos

Más de Leonardo Bernal Zamora: Docente, Internauta y convencido de la educación para todos (20)

Conceptos y operaciones básicas
Conceptos y operaciones básicasConceptos y operaciones básicas
Conceptos y operaciones básicas
 
Operaciones lenguajes
Operaciones lenguajesOperaciones lenguajes
Operaciones lenguajes
 
Operaciones cadenas
Operaciones cadenasOperaciones cadenas
Operaciones cadenas
 
Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013
 
Rea actividad 2
Rea actividad 2Rea actividad 2
Rea actividad 2
 
Rea
ReaRea
Rea
 
Busquedas en internet
Busquedas en internetBusquedas en internet
Busquedas en internet
 
Proyecto java
Proyecto javaProyecto java
Proyecto java
 
Clase 2 POO
Clase 2 POOClase 2 POO
Clase 2 POO
 
Clase5 POO
Clase5 POOClase5 POO
Clase5 POO
 
Clase 41
Clase 41Clase 41
Clase 41
 
Clase 4
Clase 4Clase 4
Clase 4
 
2 elementos pseudocodigo
2 elementos pseudocodigo2 elementos pseudocodigo
2 elementos pseudocodigo
 
Clase 23
Clase 23Clase 23
Clase 23
 
Clase 22
Clase 22Clase 22
Clase 22
 
Clase 1. lógica de la programación
Clase 1. lógica de la programaciónClase 1. lógica de la programación
Clase 1. lógica de la programación
 
Unidad 4 docentes colombianos
Unidad 4 docentes colombianosUnidad 4 docentes colombianos
Unidad 4 docentes colombianos
 
Prolog file
Prolog fileProlog file
Prolog file
 
Prolog 2011 2
Prolog 2011 2Prolog 2011 2
Prolog 2011 2
 
Practicas prolog2011 listas
Practicas prolog2011 listasPracticas prolog2011 listas
Practicas prolog2011 listas
 

Fbf

  • 1. Modificado y Adaptado por: LEONARDO BERNAL ZAMORA
  • 2. Programación Lógica Forma normal de una fórmula Una fórmula se dice que está en forma normal si todos los cuantificadores han sido desplazados al principio de la fórmula. Algunas equivalencias útiles para alcanzar una forma normal  [ (  X) p(X) ]  (  X) [  p(X) ]  [ (  X) p(X) ]  (  X) [  p(X) ] (  X) [ p(X)  q(X) ]  [ (  X) p(X) ]  [ (  X) q(X) ] (  X) [ p(X)  q(X) ]  [ (  X) p(X) ]  [ (  X) q(X) ]
  • 3. Reglas de Inferencia: Especialización Universal: siempre es posible deducir la verificación de un caso concreto a partir de un cuantificador universal. (  X) p(X)  p(a) Sustitución: permite la sustitución de cualquier proposición en una fórmula por otra biequivalente. Modus ponens: de una implicación de la verificación de la premisa se verifica la conclusión. Axioma: p  q Axioma: p Teorema: q
  • 4. Programación Lógica Modus tollens: de una implicación y de la no verificación del consecuente, se concluye la no verificación de la premisa. Axioma: p  q Axioma: ¬q Teorema: ¬p Y - Introducción: la fbf p  q puede ser inferida de las fbf p y q. Y- Eliminación: la fbf p puede ser inferida de la fbf p  q. O - Introducción: la fbf p  q puede ser inferida de la fbf p o de la fbf q. Reglas de Inferencia:
  • 5. El Modus Ponens o razonamiento directo
  • 6. El Modus Tollens o razonamiento indirecto
  • 7.  
  • 8.
  • 9. Programación Lógica Ejercicios. Expresar como fbf en lógica de predicados los siguientes hechos A. Marco era un hombre. B. Marco era pompeyano (de Pompeya). C. Todos los pompeyanos eran romanos. D. César era un dirigente. E. Todos los romanos o bien eran leales a César o bien le odiaban. F. Todo el mundo es fiel a alguien. G. La gente sólo trata de asesinar a aquellos dirigentes a los que no son leales. H. Marco intentó asesinar a César. I. Algún romano odia a César.
  • 10. Programación Lógica A. hombre(marco) B. pompeyano(marco) C. (  X)(pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(hombre(X)   (  Y) leal(X,Y)  G. (  X)  (  Y) (hombre(X)  dirigente(Y)  intenta_asesinar(X,Y)   leal(X,Y))  H. intenta_asesinar(marco, césar) I. (  X) (romano(X)  odia(X, césar))
  • 11. Programación Lógica Teorema + Axiomas (como fórmulas bien formadas, fbf) Teorema + Axiomas (como cláusulas) Método de resolución por refutación Unificación Demostración automática de teoremas + + Lo que queremos hacer ...
  • 12. Programación Lógica IMPORTANTE: La demostración automática de teoremas lógicos es un procedimiento que involucra una mera actividad sintáctica, o de relación entre símbolos, ignorándose completamente el contenido semántico que resulta de la interpretación de las fórmulas.
  • 13. Programación Lógica Fórmulas bien formadas (fbf) Son aquellas que cumplen ciertos requisitos en su estructura y definen la sintaxis del cálculo de predicados Una fórmula se dice bien formada si puede derivarse de alguna de las siguientes reglas de formación: 1. Cualquier fórmula atómica es una fbf. 2. Si p y q son fbf, entonces también serán fbf las siguientes: ¬p, p  q, p  q, p  q 3. Si X es una variable libre en la fbf p, entonces son fbf : (  X) p(X), (  X) p(X) 4. Cualquier fórmula que no pueda formarse a partir de estas reglas no es una fbf.
  • 14. Programación Lógica Cláusula Es una fórmula que sólo contiene operadores disyuntivos y posiblemente negaciones sobre los átomos. Este tipo de fórmulas pueden ser expresadas por una única implicación. Así la fórmula: a 1  a 2  ...  a n  b 1  b 2  ...  b m se puede transformar en : ¬(¬ a 1  ¬ a 2  ...  ¬ a n )  b 1  b 2  ...  b m ¬ a 1  ¬ a 2  ...  ¬ a n  b 1  b 2  ...  b m
  • 15.
  • 16. Programación Lógica Proceso de paso a cláusulas: 1. Eliminar los símbolos de implicación 2. Mover las negaciones hasta las fórmulas atómicas 3. Renombrar variables 4. Eliminar los cuantificadores existenciales. 5. Desplazar los cuantificadores universales 6. Convertir los operadores AND en los más externos 7. Eliminar los cuantificadores universales. 8. Eliminar los conectores conjuntivos (AND). 9. Renombrar las variables.
  • 17. Programación Lógica Transformación a cláusulas Para ilustrar el proceso paso a paso emplearemos la siguiente fómula compleja como ejemplo: (  X){p(X)  {(  Y)[p(Y)  p(f(X,Y))]   (  Y)[q(X,Y)  p(Y)]}} 1. Eliminar los símbolos de implicación , sustituyendo p  q por  p  q. Tras este primer paso, nuestra fómula se transforma en: (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]   (  Y)[  q(X,Y)  p(Y)]}}
  • 18. Programación Lógica 2. Mover las negaciones hasta las fórmulas atómicas , para ello se emplean las leyes de Morgan y las transformaciones de cuantificadores existenciales y universales.  (p  q)   p   q  (p  q)   p   q  [ (  X) p(X) ]  (  X) [  p(X) ]  [ (  X) p(X) ]  (  X) [  p(X) ] Aplicándolo sobre el ejemplo: (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]   (  Y)[  q(X,Y)  p(Y)]}} (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  (  Y)[q(X,Y)   p(Y)]}}
  • 19. Programación Lógica 3. Renombrar variables , en aquellos casos en los que varias variables se hayan nombrado de igual forma. En nuestro caso esto ocurre con la variable Y que renombramos como Z en su segunda ocurrencia. Así nuestro ejemplo se transforma en: (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  (  Y)[q(X,Y)   p(Y)]}} (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  (  Z)[q(X,Z)   p(Z)]}}
  • 20. Programación Lógica 4. Eliminar los cuantificadores existenciales . Las variables cuantificadas por este tipo de cuantificadores serán sustituidas por un tipo de función comodín denominada función de Skolem (proceso de skolemización). P.e. (  Z) q(X,Z) se transforma en q(X, g(X)) en donde g(X) es la función de Skolem para este caso. Nótese que no sólo se eliminan los cuantificadores existenciales sino también las variables ligadas a los mismos. La función de Skolem introducida debe ser nueva en el universo de discurso, y además deberá ser función de todas las variables cuantificadas universalmente cuyos ámbitos incluyan el ámbito del cuantificador existencial que se pretende eliminar.
  • 21. Programación Lógica Así nuestro ejemplo se transforma en: (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  (  Z)[q(X,Z)   p(Z)]}} (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}} Si el cuantificador existencial no se encuentra en el ámbito de ningún cuantificador universal, se usará una función de Skolem sin argumentos. Como en el siguiente ejemplo: (  Z) q(Z) se transforma en q(a) Donde el símbolo constante a referencia a la entidad que sabemos existe. Evidentemente a debe ser un símbolo que no haya sido empeado con anterioridad.
  • 22. Programación Lógica 5. Desplazar los cuantificadores universales, de manera que queden al comienzo de la fórmula (prenex form). Estre proceso puede ser realizado por cuanto no existen ya variables distintas con el mismo nombre. (  X){  p(X)  {(  Y)[  p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}} (  X) (  Y){  p(X)  { [  p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}} 6. Convertir los operadores conjuntivos (AND) en los más externos , para lo que se emplean las leyes distributivas. A la forma resultante se le denomina forma normal conjuntiva. Este paso se ejecuta sobre el ejemplo en dos pasos:
  • 23. Programación Lógica Partiendo de la última expresión, (  X)(  Y){  p(X)  { [  p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}} se aplica primero la ley distributiva: (  X)(  Y){ {  p(X)  [  p(Y)  p(f(X,Y))]}  {  p(X)  [q(X, g(X))   p(g(X))]}} Aplicando de nuevo la ley distributiva y la asociativa: (  X)(  Y){ [  p(X)   p(Y)  p(f(X,Y))]  [  p(X)  q(X, g(X)) ]  [  p(X)   p(g(X))]}
  • 24. Programación Lógica 7. Eliminar los cuantificadores universales. Se trata de una eliminación convencional, no teórica, pues se asume que toda variable que aparezca está cuantificada universalmente. La función de Skolem adquiere sentido, dado que al no aparecer otras variables que las universales, pueden eliminarse sus cuantificadores por convenio. En nuestro ejemplo: (  X)(  Y){ [  p(X)   p(Y)  p(f(X,Y))]  [  p(X)  q(X, g(X)) ]  [  p(X)   p(g(X))]} [  p(X)   p(Y)  p(f(X,Y))]  [  p(X)  q(X, g(X)) ]  [  p(X)   p(g(X))]
  • 25. Programación Lógica 8. Eliminar los conectores conjuntivos (AND). Dado que la fómula se corresponde con una conjunción de subfómulas, éstas deberán verificarse por separado para que se verifique la fórmula principal. Esto produce, en nuestro caso, el siguiente conjunto de fórmulas: [  p(X)   p(Y)  p(f(X,Y))]  [  p(X)  q(X, g(X)) ]  [  p(X)   p(g(X))]  p(X)   p(Y)  p(f(X,Y))  p(X)  q(X, g(X))  p(X)   p(g(X))
  • 26. Programación Lógica 9. Renombrar las variables . para que no aparezca la misma variable en dos cláusulas.  p(X)   p(Y)  p(f(X,Y))  p(X)  q(X, g(X))  p(X)   p(g(X))  p(X)   p(Y)  p(f(X,Y))  p(U)  q(U, g(U))  p(W)   p(g(W)) ------ * * * ------ Mediante este proceso se termina en una representación en forma de cláusulas. Así de una una única fórmula pueden resultar varias cláusulas que son más modulares y de estructura más simple.
  • 27. Programación Lógica A. hombre(marco) B. pompeyano(marco) C. (  X)(pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(hombre(X)   (  Y) leal(X,Y)  G. (  X)  (  Y) (hombre(X)  dirigente(Y)  intenta_asesinar(X,Y)   leal(X,Y))  H. intenta_asesinar(marco, césar) I. (  X) (romano(X)  odia(X, césar))
  • 28. Programación Lógica Proceso de paso a cláusulas 1. Eliminar los símbolos de implicación A. hombre(marco) B. pompeyano(marco) C. (  X)(  pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(  romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(  hombre(X)   (  Y) leal(X,Y)  G. (  X){ (  Y)   (hombre(X)  dirigente(Y)  intenta_asesinar(X,Y)    leal(X,Y)) } H. intenta_asesinar(marco, césar) I. (  X) (romano(X)  odia(X, césar))
  • 29. Programación Lógica Proceso de paso a cláusulas 2. Mover las negaciones hasta las fórmulas atómicas A. hombre(marco) B. pompeyano(marco) C. (  X)(  pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(  romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(  hombre(X)   (  Y) leal(X,Y)  G. (  X)(  Y) (  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y)) H. intenta_asesinar(marco, césar) I. (  X) (romano(X)  odia(X, césar)) 3.Renombrar las variables
  • 30. Programación Lógica Proceso de paso a cláusulas 4. Eliminar los cuantificadores existenciales A. hombre(marco) B. pompeyano(marco) C. (  X)(  pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(  romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(  hombre(X)  leal(X, g(X)) G. (  X)(  Y) (  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y)) H. intenta_asesinar(marco, césar) I. romano(f)  odia(f, césar))
  • 31. Programación Lógica Proceso de paso a cláusulas 5. Desplazar los cuantificadores universales 6. Convertir los operadores AND en los más externos A. hombre(marco) B. pompeyano(marco) C. (  X)(  pompeyano(X)  romano(X)) D. dirigente(césar) E. (  X)(  romano(X)  leal(X,césar)  odia(X,césar)) F. (  X)(  hombre(X)  leal(X, g(X)) G. (  X)(  Y) (  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y)) H. intenta_asesinar(marco, césar) I. romano(f)  odia(f, césar))
  • 32. Programación Lógica Proceso de paso a cláusulas 7. Eliminar los cuantificadores universales A. hombre(marco) B. pompeyano(marco) C.  pompeyano(X)  romano(X) D. dirigente(césar) E.  romano(X)  leal(X,césar)  odia(X,césar) F.  hombre(X)  leal(X, g(X)) G.  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y) H. intenta_asesinar(marco, césar) I. romano(f)  odia(f, césar))
  • 33. Programación Lógica Proceso de paso a cláusulas 8. Eliminar los conectores AND A. hombre(marco) B. pompeyano(marco) C.  pompeyano(X)  romano(X) D. dirigente(césar) E.  romano(X)  leal(X,césar)  odia(X,césar) F.  hombre(X)  leal(X, g(X)) G.  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y) H. intenta_asesinar(marco, césar) I1. romano(f) I2. odia(f, césar))
  • 34. Programación Lógica Proceso de paso a cláusulas 9. Renombrar las variables A. hombre(marco) B. pompeyano(marco) C.  pompeyano(X)  romano(X) D. dirigente(césar) E.  romano(Y)  leal(Y,césar)  odia(Y,césar) F.  hombre(Z)  leal(Z, g(Z) G.  hombre(W)   dirigente(K)   intenta_asesinar(W,K)   leal(W,K) H. intenta_asesinar(marco, césar) I1. romano(f) I2. odia(f, césar))
  • 35. Actividad de trabajo Independiente: Explique y desarrolle: