Descargar

Fundamentos de la programación lógica


Partes: 1, 2

    edu.red

    Programación Lógica Contenidos

    2. Fundamentos de la Programación Lógica 2.1 Introducción a la representación en Lógica. 2.2 Representación mediante Cláusulas.  2.3 Unificación y sustitución. 2.4 Resolución por Refutación.  2.5 Sistemas de Deducción o No-Resolución.  2.6 Programación Lógica y Prolog. 2.7 Bibliografía básica: Principles of Artificial Intelligence, N.J. Nilsson, Springer-Verlag, 1982. From Logic Programming to Prolog, K.R. Apt, Prentice-Hall, 1997.

    edu.red

    Programación Lógica Objetivos:

    Presentar la lógica de predicados de primer orden como formalismo de representación del conocimiento e inferencia.

    Estudiar los métodos de inferencia automáticos aplicables a la lógica de predicados, esencialmente el método de resolución por refutación.

    edu.red

    Programación Lógica Representación e inferencia en la lógica de predicados Idea: La lógica como sistema de representación del conocimiento y de obtención de consecuencias (control) Cálculo de predicados de primer orden Fórmulas Fórmulas atómicas Conectores

    edu.red

    Programación Lógica autor(quijote, cervantes)

    escritor(cervantes) Predicado: Un predicado es un símbolo cuyo valor se encuentra en el dominio lógico (verdadero o falso) y representa alguna cualidad semántica, en un cierto contexto, acerca de las relaciones entre objetos o entidades Fórmulas atómicas Términos autor(quijote, Quién) autor(quijote, mejor(novelista, españa))

    edu.red

    Programación Lógica Constante:

    Representa un término con un valor semántico determinado

    Fórmulas atómica :: Predicado | Predicado(Términos)

    Términos :: Término | Término, Términos

    Término :: Variable | Constante | Functor

    Functor :: NombreFunctor(Términos)

    Variable:

    Representa un término cuyo valor no está determinado inicialmente y su dominio de definición debe coincidir con el de los términos constantes

    Functor:

    Es un símbolo que posee valor en el dominio de las variables y constantes, pero que no es ni una variable ni una constante.

    Normas léxicas:

    Las variables siempre empiezan por mayúscula

    las constantes por minúscula

    edu.red

    Programación Lógica Conectores

    Permiten construir fórmulas complejas a partir de fórmulas o expresiones atómicas

    Negación : ? (~) Disyunción : ? (OR) Conjunción : ? (AND) Implicación : ? (?) Equivalencia : ?

    edu.red

    Programación Lógica Negación: Genera una fórmula que posee valores lógicos complementarios a los de la fórmula sobre la que se aplica. Estrictamente no es un conector, pues no conecta dos fórmulas sino que transforma una.

    ? autor(hamlet, cervantes)

    Disyunción: Genera una fórmula cuyo valor lógico es el “OR” de los valores de las dos fórmulas que conecta.

    estado(bombilla, encendida) ? estado(bombilla, apagada)

    Conjunción: Genera una fórmula cuyo valor lógico es el “AND” de los valores de las dos fórmulas que conecta.

    color(coche, rojo) ? color(camisa, azul)

    edu.red

    Programación Lógica Implicación: Genera una fórmula compuesta no-simétrica que es cierta siempre, salvo cuando el antecedente es cierto y el consecuente falso.

    p ? q es equivalente a ?p ? q

    p q p ? q ?p ?p ? q

    0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1

    está(cielo, azul) ? ? lloverá(hoy)

    ? está(cielo, azul) ? ? lloverá(hoy)

    edu.red

    Programación Lógica Equivalencia o doble implicación: Genera una fórmula que es cierta sólo si las dos componentes poseen idéntico valor.

    p ? q es equivalente a (p ? q) ? (q ? p)

    p q p ? q q ? p (p ? q) ? (q ? p)

    0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1

    llueve(hoy) ? está(cielo, nublado)

    edu.red

    Programación Lógica Equivalencias

    Complemento: p ? ? p ? 1 Doble negación: ? ( ? p ) ? p Conmutativa: p ? q ? q ? p p ? q ? q ? p

    Distributiva: p ? (q ? r) ? (p ? q) ? (p ? r) p ? (q ? r) ? (p ? q) ? (p ? r)

    Asociativa: p ? (q ? r) ? (p ? q) ? r p ? (q ? r) ? (p ? q) ? r

    Leyes de De Morgan: ? (p ? q) ? ? p ? ? q ? (p ? q) ? ? p ? ? q

    Ley del contrapositivo: p ? q ? ? q ? ? p

    edu.red

    Programación Lógica Cuantificadores Establecen el ámbito de existencia de las variables Cuantificador Universal (?):

    Cuando acompaña a una variable X establece que la fórmula es siempre válida para cada valor posible de la variable X. La variable X se dice entonces cuantificada universalmente.

    “Todo cuerpo con masa cae”

    (?X) ( [cuerpo(X) ? posee(masa, X)] ? cae(X) )

    edu.red

    Programación Lógica Cuantificadores Establecen el ámbito de existencia de las variables Cuantificador Existencial (?):

    Establece que como mínimo existe un valor de la variable cuantificada que hace cierta la fórmula. La variable se dice cuantificada existencialmente.

    “Alguién descubrió la penicilina”

    (? X) ( descubrió( X, penicilina )

    Partes: 1, 2
    Página siguiente