domingo, 23 de junio de 2013

CAPITULO 5 prevención del retroceso.

1. la relación entre X  y Y pueden especificarse como las reglas siguientes y se representan de la siguiente manera en prolog.


f(X,0):-X<3.     %Regla 1
f(X,2):-3=<X,X<6.   %Regla 2
f(X,4):-6=<X.      %Regla 3



esto nos lleva a la formulación de las tres  reglas anteriores
ifX >3 then Y=0.
de-otro-modo ifX<6 then Y=2.
de-otro-modo Y=4.


en el primer recuadro lleva la tercera versión de prolog.
 f(X,0):- X<3,!.
f(X,2):-X<5,!.
f(X,4).
y el segundo recuadro nos muestra los símbolos de corte la cual nos muestra que Y da muchos valores por lo tanto son valores erróneos. 
f(X,0):-X<3.
f(X,2):-X<5.
f(X,4).

ahora utilizando el de corte  CALCULO DEL MAXIMO.
El procedimiento para  encontrar el valor máximo para una relación.
calculo  del maximo.
donde MAX es =X si x es mayor o igual a Y y MAX es Y si X es menor a Y.

max(X,Y,MAX).
max(X,Y,X):-X>=Y.
max(X,Y,Y):-X<Y.
max(X,Y,X):-X>=Y,!.
max(X,Y,Y).




Ejemplos:
Ejemplo 1:
Para decir en Prolog "Juan maneja todos los lenguajes excepto Prolog":
Si X es prolog entonces 'Juan maneja X' es falso
de otro modo, Si X es un lenguaje entonces 'Juan maneja X'.
en Prolog, para indicar que algo es 'falso' (no verdadero) se utiliza una meta especial 'fail',
la que siempre falla, provocando que la meta relacionada 'falle' :

Ejemplo 2:
Ahora definiremos la relación 'diferente(X,Y)' :
Si X y Y empatan (match) entonces 'diferente(X,Y)' falla;
de otro modo 'diferente(X,Y)' tiene éxito.
En prolog:

Ejemplo 3.
Definiremos ahora la relación 'not(Meta)' y la utilizaremos para realizar otra versión del
ejemplo 1 anterior :
'not(Meta)' se puede definir :
Si Meta tiene éxito, entonces not(Meta) falla;
de otro modo, not(Meta) tiene éxito.

en Prolog :


No hay comentarios:

Publicar un comentario