lunes, 29 de mayo de 2017

Prolog

PROLOG

1-) INSTALAR PROLOG ✔


2-) APRENDER A USAR ✔

3-) ¿QUE ES PROLOG?

Prolog es un lenguaje de programación lógica cuya primera versión fue desarrollada a principios de la década de 1970 por Colmerauer en la universidad de Marsella. Contrariamente a otros lenguajes de programación basados es estructuras de control y definición de funciones para calcular resultados, Prolog está orientado a la especificación de relaciones para responder consultas. En ese sentido Prolog es similar a un sistema de base de datos, aunque en el contexto de la inteligencia artificial se prefiere hablar de bases de conocimiento, enfatizando la complejidad estructural de los datos y de las deducciones que se pueden obtener de ellos.

Por ejemplo, para especificar la relación el padre de X es Y, se crea una base de conocimiento con hechos expresados mediante un predicado padre(X,Y) de la siguiente manera:

padre(juan,pedro).
padre(josé,pedro).
padre(maría,pedro).
padre(pedro,pablo).
padre(ana,alberto).
...
Esto es muy parecido a crear una tabla en una base de datos, sólo que cada caso se  especifica mediante una cláusula independiente terminada por '.' . Si además se quiere incorporar conocimiento sobre la madre, se puede proceder de la misma manera agregando por ejemplo:
madre(juan,ana).
madre(josé,ana).
madre(maría,ana).
madre(pedro,juanita).
madre(ana,julia).
...

En prolog todas las cláusulas terminan con el delimitador '.' . Las cláusulas de consulta se interpretan como ecuaciones lógicas y pueden incluir variables. Por ejemplo:

?- padre(maría,pablo).

No
?- padre(ana,alberto).

Yes
?- padre(maría,X).

X = pedro ;

No
?- padre(X,Y).

X = juan
Y = pedro ;

X = josé
Y = pedro ;

X = maría
Y = pedro ;

X = pedro
Y = pablo ;

X = ana
Y = alberto ;

No

EJEMPLO:

% La sintaxis es factorial(N, F) -> Factorial de N es F (el resultado se guarda en F)factorial(0, 1).factorial(1, 1).factorial(N, F) :- N>0, N1 is N - 1, factorial(N1, F1), F is N * F1. %el factorial se llama recursivamente dejando el resultado en F

4-) ¿CUAL ES LA RELACIÓN ENTRE 

PROLOG Y LÓGICA PREDICADOS?


Algoritmo de búsqueda
********************

Un query consise en una conjunción de predicados que Prolog debe
demostrar que es verdadero, mostrando además las restricciones bajo
las cuales se cumple.

Ejemplo 1:

1.- member(2,[1,2,3]).

  Se considera (A): no unifica
  Se considera (B): unifica con X=2, L=[2,3]
  Se insertan las condiciones de (B) en la lista de metas reemplazando
  la variables pro las restricciones.

  2.- member(2,[2,3]).

    Se considera (A): unifica con X=2, L=[3].
    Como no hay condiciones => exito.
    El interprete arroja yes.

FORMULA NORMAL DE SKOLEM 02/05/2017

  1. Formula Normal de Skolem

  1. Definición de una FNS: Una formula de la lógica de primer orden se considera expresada en forma normal de Skolem si su forma normal prenexa solamente contiene cuantificadores universales. Una fórmula puede ser Skolemizada, lo que implica que sus cuantificadores existenciales son suprimidos, produciendo una nueva fórmula equisatisfactible con respecto a la original.

  2. Como encontrar la FNS: Para encontrar la forma normal de Skolem de una fórmula es la eliminación de los cuantificadores existenciales, esta eliminación es conocida como skolemización. Las reglas básicas para realizar la skolemización son 3
  3. 1- Si un cuantificador existencial no se encuentra dentro del ámbito de ningún cuantificador universal, se sustituye la variable cuantificada existencialmente por una constante Por ejemplo, puede ser cambiado a P(c),
  4. 2: Si un cuantificador existencial se encuentra dentro del ámbito de un cuantificador universal, se ha de sustituir la variable cuantificada existencialmente por una función de la variable cuantificada universalmente y se elimina el cuantificador existencial. Por ejemplo, la fórmula no está en forma normal de Skolem porque ella contiene un cuantificador existencial
  5. 3: Si un cuantificador existencial se encuentra dentro del ámbito de más de un cuantificador universal se sustituirá la variable cuantificada existencialmente por una función de todas las variables afectadas por estos cuantificadores universales y se elimina el cuantificador existencial.

  6. Ejemplo para encontrar FNS
  7. Uso de la skolemización Uno de los usos de la skolemización es aplicarlo en el método de resolución de la lógica de predicados que se basa en:
  8. 1. Una única regla: la de resolución. 
  9. 2. Una única estrategia: la reducción al absurdo. 
  10. 3. La utilización de la forma normal de Skolem (FNS) con la matriz en forma normal conjuntiva(FNC ). 
  11. 4. La utilización del replanteamiento de la última decisión para garantizar la sistematicidad.
  12. 5. El cálculo de sustituciones y el algoritmo de unificación.

sustitución:

  1. Si un cuantificador existencial no se encuentra dentro del ámbito de ningún cuantificador universal, se sustituye la variable cuantificada existencialmente por una constante que aún no haya sido utilizada y el cuantificador existencial es eliminado. La constante utilizada no puede volver a ser reutilizada. Por ejemplo,  puede ser cambiado a P(c), donde c es una nueva constante.
  2. Si un cuantificador existencial se encuentra dentro del ámbito de un cuantificador universal, se ha de sustituir la variable cuantificada existencialmente por una función de la variable cuantificada universalmente y se elimina el cuantificador existencial. La función no puede haber sido utilizada previamente ni podrá utilizarse posteriormente. Por ejemplo, la fórmula  no está en forma normal de Skolem porque ella contiene un cuantificador existencial . La skolemización reemplaza  con , donde  es una nuevo símbolo de función, y elimina la cuantificación existencial sobre . La fórmula resultante es . El término Skolem  contiene  pero no  porque el cuantificador a ser eliminado  está en el ámbito de  pero no en el ámbito de ; debido a que la fórmula está en forma normal prenexa, esto es equivalente a decir que, en la aparición de los cuantificadores,  precede  mientras  no. La fórmula obtenida por esta transformación es satifactible si y solo si la fórmula original lo es.
  3. Si un cuantificador existencial se encuentra dentro del ámbito de más de un cuantificador universal se sustituirá la variable cuantificada existencialmente por una función de todas las variables afectadas por estos cuantificadores universales y se elimina el cuantificador existencial. La función no puede haber sido utilizada previamente ni podrá utilizarse posteriormente

conjunto de diferencias:

unificación algoritmo:

Sabemos que “Una fórmula F es satisfacible sii FNS(F) es satisfacible” y que “FNS(F) existe siempre para cualquier fórmula F”, luego podemos trabajar exclusivamente con fórmulas en forma normal de Skolem. 

Para trabajar más cómodamente con fórmulas en FNS utilizaremos la forma clausular

La mayoría de procedimientos de prueba operan por refutación. Estas pruebas se aplican a formulas en una forma denominada forma clausal. 

Cláusula: Una cláusula es una disyunción finita de cero o más literales. Cuando la cláusula está compuesta de un solo literal diremos que es una cláusula unitaria. C = L1∨…∨Ln, Li(1≤i ≤n) literal 

La forma clausular de una fórmula F, FC(F), es el conjunto de cláusulas de la FNS(F). 

La forma clausular se entiende como la conjunción de las cláusulas, cuyas variables están todas ellas ligadas universalmente. 

martes, 25 de abril de 2017

Variables libre y ligadas ensayo

Variables Libres y Ligadas

Debemos distinguir entre variables que son cuantificadas y las que no lo son; y saber con precisión cuál cuantificador controla en una expresión o una o varias variables.
Definición
    La expresión a la cual el cuantificador se aplica es el dominio del cuantificador; y una ocurrencia de una variable individual x está ligada  si aparece como  o  o dentro del dominio de un . Cualquier otro tipo de ocurrencia de una variable es una ocurrencia libre.
Definición
    Inductiva conjunto de VL(A) conjunto de variables libres de A.
1. Si A es atómica VL(A):= conjunto de todas las variables que aparecen en un A. 
2. Si A es ¬B entonces VL(A):= VL(B)
 
3. Si A es (B*C) donde * es cualquier conectivo binario, entonces VL(A):= VL(B) U VL(C)
 
4. Si A es B o B entonces VL(A):= VL(B) - {x}

    Si  es una proposición; sino es una forma proposicional.
Ejemplo:

Equivalencias
    Sentencia
            
 

    Significado
    a) Todos son verdaderos 
     b) Al menos uno es verdadero
 
     c) Todos son falsos
 
     d) Al menos uno es falso
 
     e) No todos son verdaderos
 
     f) Ninguno es verdadero
 
     g) No todos son falsos
 
     h) Ninguno es falso
 
 


a) Si existe un ganador, entonces ninguno otro es ganador.

Si está determinada una posición, nadie más tiene esa posición.
b) El producto de dos números reales es un número real.
Para ningún par de números reales el producto no es real.
  • El orden cuantificador iguales no importa
  • El orden sí importa cuando los cuantificadores son diferentes
c) 
       En los enteros para todo x existe algún y talque x+y=5. Verdadero.

        Existe algún y talque para cualquier x x+y=5. Falso 
 

Negaciones
    Sentencia
           
    Negación
        



























3.1.5 Equivalencias Lógicas.




•Definición: Dos formas proposicionales P y Q se dicen lógicamente equivalentes, y se escribe P ≡ Q, si sus tablas de verdad coinciden.

Nota:
Esto equivale a decir que P ↔ Q es una tautología; así, P ≡ Q es lo
mismo que decir P ⇔ Q.

EJEMPLO:

El programa está bien escrito y bien documentado.
El programa está bien documentado y bien escrito.

• LEYES DE MORGAN•

1. ~ (p ∨ q) ≡~ p∧ ~ q –  A continuación se muestra en su tabla correspondiente:

• TRANSPOSICION O CONTRARECIPROCO•

•Definición: La contrarrecíproca o trasposición de una proposición
condicional p → q es la proposición  ~q →~p
Teorema: La proposición condicional p → q y su contrarrecíproca
~q →~p son lógicamente equivalentes. A continuación se muestra en su tabla correspondiente:

• ELIMINACION DE CONDICIONALES•

P → Q ≡~P ∨ Q     – A continuación se muestra en su tabla correspondiente:

LEYES DE LA LÓGICA

• Leyes de absorción:

P ∨ (P ∧ Q) ≡ P
P ∧ (P ∨ Q) ≡ P
• P ∨ (P ∧ Q) ≡ (P ∧ V ) ∨ (P ∧ Q) Ley de identidad
• P ∧ (V ∨ Q) Ley distributiva
• P ∧ V Ley de dominación
• P Ley de identidad