You are on page 1of 7

INGENIERIA EN SISTEMAS COMPUTACIONALES

PROGRAMACION LOGICA FUNCIONAL


UNIDAD III.- FUNDAMENTOS DE LA PROGRAMACION LOGICA
ING. FLAVIO AQUILES RUIZ CELAYA
8 SEMESTRE

GRUPO: O
ALUMNA:

BRIANDA SOFIA MARTINEZ PINEDA

HEROICA CD. DE JUCHTAN DE ZARAGOZA OAX. A 28 DE SEPTIEMBRE DEL 2016

UNIDAD 3.- FUNDAMENTOS DE LA PROGRAMACION LOGICA


3.1.- LGICA DE PRIMER ORDEN
La Lgica de Primer Orden, tambin conocida como Clculo de Predicados, introduce un conjunto de
smbolos que nos permiten expresarnos acerca de los objetos en un dominio de discurso dado. El
conjunto de todos estos objetos se conoce como universo de discurso. Los miembros del universo de
discurso pueden ser objetos concretos, ej., un libro, un robot, etc; abstractos, ej., nmeros; e incluso,
ficticios, ej., unicornios, etc. Un objeto es algo sobre lo cual queremos expresarnos. El universo de
discurso para tal escenario es el conjunto que incluye los cinco bloques, la el brazo robtico y la mesa: {a,
b, c, d, e, brazo, mesa}.

Una funcin es un tipo especial de relacin entre los objetos del dominio de discurso. Este tipo de
relaciones mapea un conjunto de objetos de entrada a un objeto nico de salida.
Por ejemplo, es posible definir la funcin parcial sombrero que mapea un bloque al bloque que se
encuentra encima de l, si tal bloque existe. Las parejas correspondientes a esta funcin parcial, dado el
escenario mostrado en la figura son: {(b, a),(c, d),(d, e)}.
El conjunto de todas las funciones consideradas en la conceptualizacin del mundo se conoce como
base funcional. Un segundo tipo de relacin sobre los objetos del dominio de discurso son los predicados.
Diferentes predicados pueden definirse en el mundo de los bloques, por ejemplo, el predicado sobre que
se cumple para dos bloques, si y slo si el primero est inmediatamente encima del segundo.
El conjunto de todos los predicados usados en la conceptuacin se conoce como base relacional. Para
universos de discurso finitos, existe un lmite superior en el nmero posible de predicados n-arios que
pueden ser definidos. Para un universo de discurso de cardinalidad b (cardinalidad es el nmero de
elementos de un conjunto), existen bn distintas n-tuplas. Cualquier predicado n-ario es un subconjunto de
estas bn tuplas. Por lo tanto, un predicado n-ario debe corresponder a uno de mximo 2(bn) conjuntos
posibles. Adems de las funciones y predicados, la flexibilidad de la lgica de primer orden resulta del
uso de variables y cuantificadores.
Las variables, cuyos valores son objetos del universo de discurso, se suelen representar por cualquier
secuencia de caracteres que inicie con una mayscula. El cuantificador para todo nos permite expresar
hechos acerca de todos los objetos en el universo del discurso, sin necesidad de enumerarlos. Por
ejemplo, toda madre. El cuantificador existe nos permite expresar la existencia de un objeto en el
universo de discurso con cierta propiedad en particular.
El alfabeto de la Lgica de Primer Orden se obtiene al extender la lgica proposicional con un conjunto
numerable de smbolos de predicados (Pred) y funciones (Func). Se asume un conjunto infinito de
variables (Var) que toman valores en el universo de discurso. |f| denota la aridad del predicado o funcin
f, es decir, su nmero de argumentos. Los predicados de aridad cero se asumen como constantes. Los
trminos de nuestro lenguaje de Primer Orden se forman de variables, constantes y funciones aplicados
a estos. Por ejemplo: calif(hermano(alex), sma) denota la calificacin obtenida por el hermano de Alex en
el curso de Sistemas Multi-Agentes. Formalmente, utilizando notacin Backus Naur (BNF):

3.2.- UNIFICACIN Y RESOLUCIN


Unificacin es un procedimiento de emparejamiento que compara dos literales y descubre si existe un
conjunto de sustituciones que los haga idnticos. La idea bsica de la unificacin es muy sencilla. Para
unificar dos literales vamos recorrindolos de izquierda a derecha. En primer lugar se comprueba si los
predicados coinciden. Si es as, seguimos adelante; si no es que no son unificables. Si el predicado
concuerda, comenzamos a comparar los argumentos. Si el primero de ellos coincide en ambos literales,
continuamos con el siguiente... y as hasta completar todos los argumentos. Como resulta obvio, ambos
literales deben tener el mismo nmero de argumentos.
Para conseguir que cada argumento de un literal sea coincidente con su homlogo en el otro literal,
debemos buscar una sustitucin que nos permita emparejarlos. La nica condicin que debe reunir esta
sustitucin es que ha de aplicarse a todo el literal, es decir, que la sustitucin afecta a todo el literal, y no
slo al argumento en cuestin. Por decirlo de una manera sencilla, las sustituciones se van arrastrandoa
lo largo del proceso de unificacin.
Algoritmo de resolucin
El procedimiento de resolucin consiste en un proceso iterativo en el cual comparamos (resolvemos), dos
clusulas llamadas clusulas padres y producimos una nueva clusula que se ha inferido (deducido), de
ellas. Por tanto, lo que hacemos es combinar las clusulas padres para dar lugar a una nueva clusula,
en la que podemos simplificar alguno de sus trminos.
La resolucin opera tomando dos clusulas tales que cada una contenga un mismo literal, en una
clusula en forma positiva y en la otra en forma negativa. El resolvente se obtiene combinando todos los
literales de las clusulas padres y eliminando aquellos que se cancelan.
Si la clusula resultante es la clusula vaca (), entonces es que hemos llegado a una contradiccin.
El algoritmo que acabamos de ver est definido de una forma muy general. Sin embargo, para su uso
cotidiano se pueden hacer una serie de sugerencias que, si bien en la mayora de los casos no estn
basadas en aserciones infalibles, pueden facilitar el proceso general de resolucin:

Aunque no sea un criterio estricto, suele dar buenos resultados comenzar a resolver por las
clusulas de mayor tamao, es decir, las que poseen mayor nmero de literales.

La clusula resolvente se aade al conjunto de clusulas disponible y, en teora, se puede


continuar el proceso tomando dos clusulas padre cualesquiera. Sin embargo, al igual que en el

caso anterior, suele dar buen resultado continuar el proceso de resolucin a partir de la nueva
clusula resultante.

De igual forma, aunque no existe ninguna limitacin en cuanto al nmero de veces que se puede
usar una clusula para resolver, se recomienda probar primero a no usar dos veces la misma
clusula antes de usar todas las clusulas disponibles.

Si es posible llegar a la clusula vaca resolviendo nicamente con las clusulas del conjunto
inicial sin usar en ningn momento la o las clusulas provenientes de la hiptesis, es porque existe
una inconsistencia dentro del conjunto inicial de clusulas. sta puede ser una forma de detectar
errores en el diseo de la base de conocimiento.

Si en la clusula resolvente existen dos literales iguales, sta se puede simplificar eliminando uno
de los dos literales. Puede ser necesaria una sustitucin previa a fin de que esos literales sean
unificables y, por tanto, completamente iguales.

No es necesario usar todas las clusulas en el proceso de resolucin. En la mayora de los casos
basta con usar algunas de las clusulas de la base de conocimiento y alguna o algunas de las
clusulas provenientes de la hiptesis.

3.3.- CLUSULAS DE HORN. RESOLUCIN SLD


Una clusula de Horn es una secuencia de literales que contiene a lo sumo un literal positivo. Al escribirla
en notacin de Kowalski tendr una de estas cuatro formas:

Los hechos y las reglas se denominan clausulas definidas: los hechos representan hechos acerca de los
objetos (de nuestro universo de discurso), relaciones elementales entre estos objetos las reglas
expresan relaciones condicionales entre los objetos, dependencias.
SLD RESOLUCION
Selection-rule driven Linear resolution for Definite clauses
Es un caso particular de la resolucin general, donde: Los resolventes son siempre objetivos (clusulas
sin cabeza). Los programas son conjuntos de clusulas (de Horn) definidas, i.e., hechos y reglas. Hay
una funcin de seleccin que selecciona un tomo del resolvente a quien aplicar resolucin.
Seleccionar una literal, usando una estrategia Lineal, restringida a clusulas Definitivas
Un caso especial de resolucin lineal
Resolucin lineal: el ltimo resolvente se toma como clusula padre
La otra clusula padre se toma de otro resolvente o del conjunto original
Una forma especial de resolucin lineal es: input resolution. En esta estrategia, cada paso de resolucin,
exceptuando el primero, se toma del ltimo resolvente (clusulas metas) y del conjunto original (clusulas
de entrada)
Input resolution es completa para clusulas de Horn, pero no para clusulas en general
Una variante de resolucin de entrada es resolucin SLD para clusulas de Horn. Resolucin de entrada
se extiende con una regla de seleccin que determina en cada paso que literal de la clusula meta es
seleccionada.
Resolucin SLD es sound y complete para clusulas de Horn
La estrategia de bsqueda afecta el resultado
e.g., depth-first con diferente orden de clusulas:
Meta: Aunque resolucin SLD es sound y complete para clusulas de Horn, en la prctica (por razones
de eficiencia) se hacen variantes
Eliminar el ``occur check'' de unificacin
Usar un orden especfico

3.4.- PROGRAMACIN LGICA CON CLUSULAS DE HORN


En lgica proposicional, una frmula lgica es una clusula de Horn si es una clusula (disyuncin de
literales) con, como mximo, un literal positivo. Se llaman as por el lgico Alfred Horn, el primero en
sealar la importancia de estas clusulas en 1951.
Esto es un ejemplo de una clusula de Horn:
Una frmula como esta tambin puede reescribirse de forma equivalente como una implicacin: Una
clusula de Horn con exactamente un literal positivo es una clusula "definite"; en lgebra universal las
clusulas "definites" resultan (aparecen) como cuasi-identidades. Una clusula de Horn sin ningn literal
positivo es a veces llamada clusula objetivo (goal) o consulta (query), especialmente en programacin
lgica.
Una frmula de Horn es una cadena textual (string) de cuantificadores existen tales o universales
seguidos por una conjuncin nde clusulas de Horn.
una frmula lgica es una clusula de Horn si es una clusula (disyuncin de literales) con, como
mximo, un literal positivo. Se llaman as por el lgico Alfred Horn, el primero en sealar la importancia de
estas clusulas en 1951.
Esto es un ejemplo de una clusula de Horn:
Una frmula como esta tambin puede reescribirse de forma equivalente como una implicacin:
Una clusula de Horn con exactamente un literal positivo es una clusula "definite"; en lgebra universal
las clusulas "definites" resultan (aparecen) como cuasi-identidades. Una clusula de Horn sin ningn
literal positivo es a veces llamada clusula objetivo (goal) o consulta (query), especialmente en
programacin lgica.

Una frmula de Horn es una cadena textual (string) de cuantificadores existentiales o universales
seguidos por una conjuncin nde clusulas de Horn.

You might also like