Subido por Isaac Orozco

Equipo#3 3.3-3.4

Anuncio
TECNOLOGICO NACIONAL DE MEXICO
INSTITUTO TECNOLÓGICO DE PACHUCA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
PROGRAMACIÓN LOGICA Y FUNCIONAL
PROFESOR: MAGGI NATALE CARLOS EDUARDO
ACTIVIDAD: INVESTIGACIÓN UNIDAD 3
TEMAS 3.3 – 3.4
EQUIPO #3
ALUMNOS:
BAÑOS SÁNCHEZ ALAN JAIR 17200179
BARRANCO ATILANO JOSÉ ISAAC 17200178
HERNÁNDEZ LARA JOSÉ MANUEL 17200187
MERCADO GONZÁLEZ ALEJANDRO 16200654
SÁNCHEZ MEJÍA ELIZABETH 17200206
Contenido
3.3 CLÁUSULAS DE HORN, RESOLUCIÓN SLD. ..................................................................................... 3
3.4 PROGRAMACIÓN LÓGICA CON CLÁUSULAS DE HORN .................................................................. 4
REFERENCIAS ....................................................................................................................................... 7
3.3 CLÁUSULAS DE HORN, RESOLUCIÓN SLD.
Clausula de Horn
Una cláusula de Horn es una regla de inferencia lógica con una serie de premisas (cero, una o más),
y un único consecuente.
En lógica matemática, una cláusula de Horn es una cláusula (una disyunción de literales), con a lo
sumo, uno positivo literal. Lleva ese nombre después que el lógico Alfred Horn, que fue el primero
en señalar la importancia de estas cláusulas en 1951.
Una cláusula de Horn con exactamente un literal positivo es una cláusula definitiva, una cláusula de
Horn sin literales positivos a veces se denomina "cláusula de un objetivo”, sobre todo en la lógica
de programación. Una fórmula de Horn es una forma normal conjuntiva cuyas cláusulas son todos
de Horns, en otras palabras, se trata de una conjunción de cláusulas de Horn. Una doble cláusula de
Horn es una cláusula con a lo sumo, uno negativo literal. Las cláusulas de Horn vienen a desempeñar
un papel fundamental en la lógica de programación.
Ejemplo:
Resolución SLD
La resolución SLD (resolución de cláusula definida lineal selectiva) es la regla de inferencia básica
utilizada en la programación lógica. Es un mecanismo muy potente de demostración, pero tiene un
alto grado de indeterminismo: en la selección de las cláusulas con las que hacer resolución y en la
selección de los literales a utilizar en la resolución.
La resolución opera tomando dos cláusulas tales que cada una contenga un mismo literal, en una
cláusula en forma positiva y en la otra en forma negativa. El resolvente se obtiene combinando
todos los literales de las cláusulas padres y eliminando aquellos que se cancelan.
Estrategias de resolución SLD
La resolución SLD define implícitamente un árbol de búsqueda de cálculos alternativos, en el que la
cláusula de objetivo inicial está asociada con la raíz del árbol. Para cada nodo en el árbol y para cada
cláusula definida en el programa cuyo literal positivo se unifica con el literal seleccionado en la
cláusula objetivo asociada con el nodo, hay un nodo hijo asociado con la cláusula objetivo obtenida
por resolución SLD.
Un nodo hoja, que no tiene hijos, es un nodo exitoso si su cláusula de objetivo asociada es la cláusula
vacía. Es un nodo de falla si su cláusula de objetivo asociada no está vacía pero su literal seleccionado
se unifica con el literal positivo de la cláusula sin entrada.
La resolución SLD no es determinista en el sentido de que no determina la estrategia de búsqueda
para explorar el árbol de búsqueda. Prolog busca en la profundidad del árbol primero, una rama a
la vez, usando retroceso cuando encuentra un nodo de falla. La búsqueda en profundidad es muy
eficiente en el uso de los recursos informáticos, pero es incompleta si el espacio de búsqueda
contiene ramas infinitas y la estrategia de búsqueda las busca con preferencia a las ramas finitas: el
cálculo no termina. También son posibles otras estrategias de búsqueda, incluida la búsqueda en
amplitud, la mejor primero y la búsqueda de ramificaciones y límites. Además, la búsqueda se puede
realizar de forma secuencial, un nodo a la vez, o en paralelo, muchos nodos simultáneamente.
La resolución SLD también es no determinista en el sentido, mencionado anteriormente, de que la
regla de selección no está determinada por la regla de inferencia, sino que está determinada por un
procedimiento de decisión separado, que puede ser sensible a la dinámica del proceso de ejecución
del programa.
El espacio de búsqueda de resolución SLD es un árbol o, en el que diferentes ramas representan
cálculos alternativos. En el caso de los programas de lógica proposicional, SLD puede generalizarse
de modo que el espacio de búsqueda sea un árbol y-o, cuyos nodos están etiquetados por literales
simples, que representan subobjetivos, y los nodos están unidos por conjunción o por disyunción.
En el caso general, donde los subobjetivos conjuntos comparten variables, la representación del
árbol y-o es más complicada.
3.4 PROGRAMACIÓN LÓGICA CON CLÁUSULAS DE HORN
Las cláusulas de Horn son las instrucciones básicas del lenguaje de programación Prolog, de
paradigma declarativo.
Se llaman cláusulas de Horn aquellas que tienen como máximo un literal positivo.
Hay dos tipos:
1.- Las cláusulas determinadas (clausulas definitivas)
Cláusulas de Horn con cabeza son las que sólo tienen un literal positivo:
(¬p1 ¬p2 ... ¬pk q) (p1 p2 ... pk q)
Caso particular son las no tienen más que ese literal positivo, que representan «hechos», es decir,
conocimiento factual.
2.- Los objetivos determinados (definite goals), o «cláusulas de Horn sin cabeza» son las que no
tienen ningún literal positivo:
(¬p1 ¬p2 ... ¬pk) ¬(p1 p2 ... pk)
En este caso, las fórmulas atómicas p1,p2,...,pk son inconsistentes, es decir no es posible que sean
todas verdaderas. Provienen de la negación de conclusiones que el sistema deductivo debe obtener
mediante resolución y refutación.
Una cláusula de Horn es una cláusula de la forma:
A1 v ... v Ak ← B1 ^ ... ^ Bn, con k=1 ó k=0 y n>=0.
Donde A y B representan átomos.
•
•
•
Las cláusulas de Horn con k=1 y n>0 son reglas.
Las cláusulas de Horn con k=1 y n=0 son hechos.
Las cláusulas de Horn con k=0 y n>0 son objetivos.
En las cláusulas de programación (reglas o hechos):
A ← B1 ^ ... ^ Bn, con n>=0
El átomo A es la cabeza y el conjunto de átomos B es el cuerpo.
Ejemplos de los diferentes tipos de cláusulas de Horn:
•
•
•
Regla: hermanas(X,Y)←mujer(X) ^ mujer(Y) ^ padres(X,P,M) ^ padres(Y,P,M)
Hecho: mujer(ana) ←
Objetivo: ← hermanas(X, ana)
Los hechos y las reglas se denominan cláusulas 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.
Las reglas engloban todos los casos en el siguiente sentido:
•
•
•
Un hecho es una regla con cuerpo vacío
Un objetivo es una regla con cabeza vacía
Y el éxito es una regla con cabeza y cuerpo vacíos
La sintaxis de una cláusula de Horn en PROLOG tiene el siguiente aspecto:
Que podría leerse así: "A es hija de B si A es mujer y B es padre de A".
En términos lógicos representa la siguiente implicación:
Por definición de implicación se obtiene la siguiente cláusula de Horn:
REFERENCIAS
http://bdblog5.blogspot.mx/2011/09/la-forma-clausal-y-las-clausulas-de.html
https://prezi.com/egn8emydhjom/untitled-prezi/
https://prezi.com/bvqxbvnaogsv/clausulas-de-hornresolucionsld/?frame=9363e083f2ed951b1c758ec4ac040defc53e93ab
https://en.wikipedia.org/wiki/SLD_resolution
http://gpd.sip.ucm.es/jaime/pl/sld.pdf
http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro7/322_clusulas_de_horn.html
Descargar