Académique Documents
Professionnel Documents
Culture Documents
Alumnos:
lvarez Mara D., CI: 17.784.337
Ballester Isangel, CI: 19.835.208
Caldern Karla, CI: 24.879.030
Carpio Cayetano, CI: 18.673.312
Dvila Robert, CI: 19.640.106
Daz Andrea, CI: 24.393.872
Rodrguez Milerth, CI: 20.671.519
Rujana Herbert, CI: 21.275.419
Tn Omar, CI: 21.128.307
Valera Gustavo, CI: 23.488.241
Introduccin
Prolog (Programming in Logic) en espaol Programacin en Lgica. Es un lenguaje
de programacin lgica cuya primera versin fue desarrollada a principios de la dcada de
1970 por Colmerauer (Universidad de Marsella, Francia). Este Lenguaje es utilizado para
programar artefactos electrnicos mediante el paradigma lgico con tcnicas de produccin
final interpretada. Es bastante conocido en el rea de la Ingeniera Informtica para
investigacin en Inteligencia Artificial.
Las bases de datos deductivas surgieron en la poca de los ochenta y desde entonces no
han sido muy usadas a nivel comercial, pero s en entornos de investigacin y campos de
las ciencias aplicadas. Un sistema de base de datos deductiva, es un sistema de base de
datos pero con la caracterstica de que a travs informacin extensional de reglas y hechos
se pueden deducir o inferir informacin adicional a la que tenemos almacenada en nuestra
base de datos.
La lgica modal es muy antigua tuvo gran desarrollo durante la Edad Media, la lgica
modal contempornea, sin embargo, surge a principios del siglo XX. La lgica modal es un
sistema formal que intenta capturar el comportamiento deductivo de algn grupo de
operadores modales. Los operadores modales son expresiones que califican la verdad de los
juicios.
La lgica temporal fue estudiada por Aristteles, en algunos de sus escritos hay
expresiones que guardan una cierta analoga con la lgica temporal de primer orden, es de
esta manera como aparecen expresiones con cuantificadores existenciales y cuantificadores
universales.
Prolog
El cuerpo puede estar formado por varios hechos. Ejemplo: Cabeza: hecho1,
hecho2,..., hecho.
La separacin: se lee si. (La cabeza es verdad si el cuerpo es verdad.)
Ejemplo:
Es divisible por dos(X): par(X). (Se lee X es divisible por dos si X es par.). Esta
clusula en Prolog es equivalente a la frmula de primer orden ( X) par(X) Es divisible
por dos(X).
Por tanto, si podemos probar que X es par, entonces hemos probado que X es divisible
por dos.
Nota: En la cabeza de una regla no puede haber ms de un hecho.
Ejemplo:
rico(juan) feliz(juan) poderoso(juan)
No se puede expresar directamente en Prolog como feliz(juan), poderoso(juan):
rico(juan)
Consulta
No es necesario programar el mecanismo de bsqueda. Prolog utiliza la resolucin en
sus derivaciones (generalizacin del modus Ponendo Ponens junto con la unificacin).
Ejemplo:
lagarto(iguana).
serpiente(vibora).
mamifero(conejo).
Las consultas pueden ser interactivas mediante el indicador de comandos (?-):
Entrada y Salida
El lenguaje Prolog ofrece toda una serie de predicados predefinidos para la realizacin
de operaciones de entrada/salida. Se tratan de predicados que no tienen sentido desde un
punto de vista puramente lgico, sino que producen un efecto colateral (escritura/lectura
de algn termino, apertura/cierre de un fichero, entre otros).
Valores para el argumento Modo
Read: Para abrir el fichero en modo lectura.
Write: Para abrir el fichero en modo escritura (si el fichero no existe, lo crea; si ya
existe, su contenido se perder).
Append: Para abrir el fichero en modo escritura (si el fichero no existe, lo crea; si ya
existe, las operaciones de escritura se realizaran al final del fichero).
Predicados de entrada/salida
Descripcin de algunos de los predicados de entrada/salida ms bsicos:
open(+NombreFichero, +Modo, -Fichero)
Si NombreFichero, es un nombre de fichero valido, abre el fichero correspondiente de
acuerdo con el modo especificado por Modo, y unifica con Fichero el identificador del
fichero abierto.
close(+Fichero)
Cierra el fichero asociado con el identificador Fichero.
set_input(+Fichero)
set_output(+Fichero)
Convierte al fichero con identificador Fichero en el fichero de lectura (escritura)
actual.
current_input(?Fichero) current_output(?Fichero)
1. Nmeros: Este tipo de constantes se utilizan para representar tanto nmeros enteros
como nmeros reales y poder realizar con ellos operaciones aritmticas.
La representacin ms corriente de los nmeros enteros es la notacin decimal habitual
(por ejemplo 0, 1, -320, 539, entre otros.) aunque tambin se pueden representar en otras
bases no decimales.
Los nmeros reales se pueden representar tanto en notacin decimal (por ejemplo 1.0,
-3.14) como en notacin exponencial (por ejemplo 4.5E6, -0.12e+3, 12.0e-2). En ambos
casos debera haber siempre por lo menos un digito a cada lado del punto.
2. tomos: Los tomos (no confundir con las formulas atmicas de la LPO) se utilizan
para dar nombre a objetos especficos, es decir, representan individuos concretos. Existen
tres clases principales de tomos:
Cadenas formadas por letras, dgitos y el smbolo de subrayado, que deben empezar
necesariamente por una letra minscula.
Cadenas vlidas: f, pepe1, libro33a, libro_blanco. Cadenas no vlidas: 1libro, libroblanco, _hola, Libro.
Cualquier cadena de caracteres encerrada entre comillas simples.
Ejemplos:
SICStus Prolog, Libro-blanco, 28003 Madrid. Estos tomos son tiles cuando se
necesita trabajar con constantes que empiecen por una letra mayscula o por un dgito.
Existe adems otro tipo de tomos, compuestos por combinaciones especiales de signos, de
uso menos comn.
Variables: Las variables en Prolog se representan mediante cadenas formadas por letras,
dgitos y el smbolo de subrayado, pero deben necesariamente empezar por una letra
mayscula o por un smbolo de subrayado.
Ejemplos: X, Resultado_1, Entrada, _total3, _3bis, _
Las variables que empiezan con un smbolo de subrayado, _, se denominan variables
annimas, y se usan cuando se necesita trabajar con variables cuyos posibles valores no
interesan. Su utilidad se describir ms adelante al analizar la construccin de programas
y consultas.
Trminos Compuestos: Los trminos compuestos, o estructuras, se construyen mediante
un smbolo de funcin, denominado functor, que se denota mediante un tomo, seguido,
entre parntesis, por una serie de trminos separados por comas, denominados
argumentos.
Ejemplos: Fecha (1, mayo, 2001), punto(X, Y), recta (punto(1,2), punto(3,5)).
Nota: Al escribir un trmino compuesto, no puede haber ningn espacio entre el
functor y el parntesis abierto previo a los argumentos. Por ejemplo, punto (X, Y) no
es un trmino compuesto correcto y producir un error de compilacin.
Programas
Los programas Prolog, son programas lgicos definidos, y estn compuestos por una
serie de clusulas de Horn positivas, esto es, hechos y reglas. Hay que tener en cuenta las
siguientes diferencias en cuanto a la notacin empleada en la Programacin Lgica
Definida:
Los smbolos de predicado se denotan mediante tomos, por lo que no pueden empezar,
como ocurre en Programacin Lgica, mediante una letra mayscula. Obsrvese por lo
tanto que el lenguaje Prolog no distingue entre smbolos de predicado, smbolos de
funcin y constantes, puesto que todos ellos se representan mediante tomos (el
compilador distingue unos de otros dependiendo del contexto en el que aparecen). Para
referirse a un predicado
nombre_predicado se suele emplear
la notacin
nombre_predicado/n, donde n indica el nmero de argumentos del predicado.
Los hechos deben terminar con un punto y omitir el smbolo utilizado en
Programacin Lgica. As, el hecho A se escribe en Prolog de la forma A..
Las reglas deben tambin terminar con un punto y sustituir el smbolo de la
Programacin Lgica por el smbolo :-. As, la regla A A1 , . . . , An se escribe en
Prolog de la forma A :- A1 , . . . , An ..
La siguiente tabla resume las distintas notaciones para clusulas de Horn vistas
hasta el momento
Operadores aritmticos
Prolog tiene predefinidos los operadores aritmticos ms habituales, mediante los que
se pueden formar expresiones aritmticas. A continuacin se enumeran algunos de los ms
importantes:
se repite de nuevo el proceso. Todos los objetivos terminan su ejecucin bien en xito
("verdadero"), bien en fracaso ("falso").
Bases de datos deductivas
En un sistema de base de datos, pero con la diferencia de que permite hacer deducciones
a travs de inferencias. Se basa principalmente en reglas y hechos que son almacenados en
la base de datos.
Las bases de datos deductivas son tambin llamadas bases de datos lgicas, a raz de
que se basa en lgica matemtica. Este tipo de base de datos surge debido a las limitaciones
de la Base de Datos Relacional de responder a consultas recursivas y de deducir relaciones
indirectas de los datos almacenados en la base de datos.
Ventajas.
Uso de reglas lgicas para expresar las consultas.
Permite responder consultas recursivas.
Cuenta con negaciones estratificadas.
Capacidad de obtener nueva informacin a travs de la ya almacenada en la base de datos
mediante inferencia.
Uso de algoritmos de optimizacin de consultas.
Soporta objetos y conjuntos complejos.
Lenguaje
Las bases de datos deductivas utilizan un subconjunto del lenguaje Prolog, llamado
Datalog; el cual es declarativo y permite al ordenador hacer deducciones para contestar a
consultas basndose en los hechos y reglas almacenados.
Fases
Fase de Interrogacin: Se encarga de buscar en la base de datos informaciones deducibles
implcitas. Las reglas de esta fase se denominan reglas de derivacin.
Fase de Modificacin: Se encarga de aadir a la base de datos nuevas informaciones
deducibles. Las reglas de esta fase se denominan reglas de generacin.
Interpretacin
Se encuentran dos teoras de interpretacin de las bases de datos deductiva; se
consideran las reglas y los hechos como axiomas. Los hechos son axiomas base que se
consideran como verdaderos y no contienen variables. Las reglas, son axiomas deductivos
ya que se utilizan para deducir nuevos hechos.
Teora de Modelos: Consiste en asignar a un predicado todas las combinaciones de valores
y argumentos de un dominio de valores constantes dado. A continuacin se debe verificar si
ese predicado es verdadero o falso.
Mecanismos
Ascendente: Donde se parte de los hechos y se obtiene los nuevos, aplicando reglas de
inferencia.
Descendente: Donde se parte del predicado (objetivo de la consulta realizada) e intenta
encontrar similitudes entre las variables que nos lleven a hechos correctos almacenados en
la base de datos
Lgica modal
Una lgica modal es un sistema formal que intenta capturar el comportamiento
deductivo de algn grupo de operadores modales. Los operadores modales son expresiones
que califican la verdad de los juicios. La lgica modal intenta acercarse ms al pensamiento
humano y del lenguaje natural, y lo hace complementando la lgica de predicados (una
cualquiera) con modalidades que indican las condiciones en las que es cierta o falsa cada
proposicin.
La lgica modal slo agrega dos smbolos al vocabulario de la lgica proposicional: el
smbolo , que representa la expresin del lenguaje natural "es necesario que", y el smbolo
, que representa la expresin "es posible que". Ambos smbolos se prefijan a
proposiciones, de modo que
se lee "es necesario que p", y
se lee "es posible que p"
Adems, en la lgica modal clsica, ambos smbolos son interdefinibles por medio del
otro y de la negacin; as:
Esto implica que en principio, slo es necesario tomar uno de los dos smbolos como
primitivo, ya que el otro puede ser definido a partir de ste y del vocabulario de la lgica
proposicional. En general, el smbolo que se toma como primitivo es el de necesidad. Estas
interdefiniciones son paralelas a las de los cuantificadores en la lgica de primer orden:
A esta regla hay que sumarle, por supuesto, el modus ponens heredado de la lgica
proposicional.
Axiomas
Cules deben ser los axiomas de la lgica modal es algo muy debatido. Diferentes
conjuntos de axiomas permiten demostrar diferentes teoremas, y por lo tanto los axiomas
que se eligen muchas veces dependen de los teoremas que se quieren demostrar, y de la
posicin filosfica que se defiende.
La siguiente es una lista de algunos de los axiomas ms conocidos:
Nombre
Axioma
Lectura informal
K
T (o M)
Si es necesario que
es el caso.
Si es el caso, entonces es
necesario que sea posible.
, entonces
Consecuencia lgica
La consecuencia lgica est ligada a la nocin de verdad; que un argumento es vlido
quiere decir que preserva necesariamente la verdad. En lgica modal la verdad es relativa
a mundos posibles (una frmula es verdadera en una interpretacin en un mundo posible)
de modo que la consecuencia lgica tambin ser relativa a mundos posibles: un argumento
ser vlido justo cuando, si sus premisas son todas verdaderas en un mundo posible, su
conclusin es verdadera en ese mundo posible. Por otro lado, suele entenderse la necesaria
preservacin de verdad como preservacin de verdad en toda interpretacin. Por tanto, un
argumento es vlido en nuestro lenguaje modal cuando preserva la verdad en todos los
mundos posibles en toda interpretacin:
si y slo si para toda interpretacin <W, R, V> y todo mundo posible w en W, si
para todo
en
, entonces
Deduccin
Un sistema deductivo es un conjunto de reglas que nos permite establecer afirmaciones
de consecuencia entre un conjunto de oraciones y una oracin atendiendo solamente a su
forma. Cuando es una consecuencia deductiva de en un sistema deductivo S se suele
escribir "
en S". El tipo de sistemas deductivos tradicionales en lgica modal son
los sistemas axiomticos. Un sistema axiomtico es un conjunto de enunciados del lenguaje
(o formas de enunciados si contienen metavariables) y un conjunto de reglas de inferencia.
Una consecuencia deductiva de un sistema axiomtico es, o bien un axioma, o bien un
enunciado que puede obtenerse a partir de los axiomas y las reglas de inferencia. El sistema
axiomtico bsico para la lgica modal es el sistema K, descrito ms arriba. La relacin de
deducibilidad en K (es decir, todo aquello que es deducible en K), queda por lo tanto
definida por sus axiomas y sus reglas de inferencia.
Como comentamos al inicio de esta seccin, la deducibilidad en los distintos sistemas
modales caracteriza diversas relaciones de consecuencia lgica. El sistema modal K es
considerado bsico porque la deduccin en K caracteriza (es consistente y completo
respecto a) la consecuencia lgica en todas las interpretaciones (normales). Por tanto:
en K si y slo si
para toda interpretacin <W, R, V>.
Mundos no-normales
Algunos de los sistemas que Lewis propuso para su implicacin estricta son ms dbiles
que el sistema modal K. Para obtener una semntica para sistemas modales ms dbiles que
K se introdujo la nocin de mundo no-normal (introducido por Saul Kripke en 1965). Un
mundo no-normal es un mundo en el que las condiciones de verdad de los operadores
modales son distintas: un enunciado del tipo
es siempre verdadero en un mundo nonormal, mientras que un enunciado de la forma
es siempre falso. En los mundos nonormales todo es posible y nada es necesario.
Una interpretacin no-normal para un lenguaje proposicional modal es una estructura
<W, N, R, V> donde W, R y V son como antes y N es un subconjunto de W. Nes el conjunto
de mundos normales en la interpretacin; el resto (si los hay) son los mundos no-normales.
Las condiciones de verdad de los operadores lgicos son igual que antes; slo varan las
condiciones de los operadores modales en mundos no-normales. Si w es no-normal:
A partir de interpretaciones no-normales podemos obtener semnticas para sistemas
modales ms dbiles que K. Podemos definir, por ejemplo, la relacin de consecuencia
lgica como preservacin de verdad sobre mundos normales:
Definicin:
si y slo para toda interpretacin <W, N, R, V> y todo mundo
posible w en N, si
para todo
en
, entonces
Lgica temporal
La lgica temporal es una extensin de la lgica modal, la cual es prcticamente usada
en sistemas de reglas, donde est presente el tiempo. Se utiliza para describir cualquier
sistema de reglas y el simbolismo para representar y razonar sobre, las proposiciones
calificadas en trminos de tiempo. En una lgica temporal entonces podemos expresar
frases como "Siempre estoy hambriento", "con el tiempo voy a tener hambre", o "voy a
tener hambre hasta que lo coma algo".
Motivacin
Considere la siguiente afirmacin: "Tengo hambre". Aunque su significado es constante
en el tiempo, el valor de verdad de la declaracin puede variar en el tiempo. A veces, la
afirmacin es verdadera, ya veces la afirmacin es falsa, pero la declaracin no es
verdadera y falsa al mismo tiempo. En una lgica temporal, los estados pueden tener un
valor de verdad que puede variar en el tiempo. Esto contrasta con una lgica atemporal, que
slo puede hablar de las declaraciones cuyo valor verdad es constante en el tiempo. Este
tratamiento de los valores de verdad con el tiempo se diferencia lgica temporal de la
lgica computacional verbo.
Lgica temporal siempre tiene la capacidad de razonar sobre una lnea de tiempo. Las
denominadas lgicas tiempo lineales se limitan a este tipo de razonamiento. Lgica de
ramificacin, sin embargo, pueden razonar sobre mltiples lneas de tiempo. Esto
presupone un entorno que puede actuar impredecible. Para continuar con el ejemplo, en una
lgica de bifurcacin podemos afirmar que "existe la posibilidad de que voy a pasar hambre
para siempre." Tambin podemos afirmar que "existe la posibilidad de que con el tiempo ya
no estoy con hambre." Si no sabemos si alguna vez te cansas, estas declaraciones son
verdaderas algunas veces.
Operadores temporales
Lgica temporal tiene dos tipos de operadores: los operadores lgicos y los operadores
modales. Los operadores lgicos son operadores veritativo-funcionales habituales. Los
operadores modales utilizados en lgica temporal lineal y lgica rbol de cmputo se
definen como sigue.
Smbolos alternativos:
R operador a veces se designa por V
El operador W es el operador dbil hasta, es equivalente a
Los operadores unarios son frmulas bien formadas siempre que est bien formada B.
Los operadores binarios son frmulas bien formadas cada vez que estn bien formadas B y
C.
Lgicas temporales
Lgicas temporales incluyen
Lgica temporal de intervalo
clculo. que incluye como un subconjunto
Lgica de Hennessy-Milner
CTL *, que incluye como un subconjunto
La lgica del rbol Computacional
Lgica temporal lineal
Mtricas Intervalo Lgica Temporal
Seal lgica temporal
Una variacin, estrechamente relacionado con las lgicas temporales o cronolgicas o
tensas, son lgicas modales basadas en la "topologa", "plaza", o "posicin espacial".
Tambin se podra tener en cuenta que en el idioma ruso, los verbos tienen un aspecto,
basada comnmente en el tiempo, pero la posicin tambin.
Bibliografa
https://es.wikipedia.org/wiki/Prolog
https://es.wikipedia.org/wiki/Base_de_datos
https://es.wikipedia.org/wiki/L%C3%B3gica_modal#Historia
https://es.wikipedia.org/wiki/L%C3%B3gica_temporal