estructuras control prolog
1. ¿Cómo se satisface/resatisface un
objetivo?
2. Procedimientos iterativos
3. El predicado corte (!)
4. Aplicaciones del predicado corte
1. Confirmación de unaregla
2. Combinación corte-fail
3. Detener la Generación y Prueba
4.1 Satisfacción de objetivos (I)
padre(juan, antonio).
padre(juan, luis).
padre(luis, pedro).
abuelo(X, Y) :- padre(X, Z),padre(Z, Y).
?- trace, abuelo(juan, X), notrace.
Call: (8) abuelo(juan, _G382) ? creep
Call: (9) padre(juan, _L162) ? creep
Exit: (9) padre(juan, antonio) ? creep
Call: (9) padre(antonio, _G382)? creep
Fail: (9) padre(antonio, _G382) ? creep
Redo: (9) padre(juan, _L162) ? creep
Exit: (9) padre(juan, luis) ? creep
Call: (9) padre(luis, _G382) ? creep
Exit: (9) padre(luis, pedro) ?creep
Exit: (8) abuelo(juan, pedro) ? creep
X = pedro ; [trace]
No
abuelo(juan ,G1)
abuelo(X1, Y1) :- padre(X1, Z1), padre(Z1, Y1).
juan/X1,
Y1/G1
padre(juan,Z1),padre(Z1,Y1)padre(juan, luis).
padre(juan,antonio).
luis/Z1
antonio/Z1,
padre(antonio,Y1)
padre(luis,Y1)
padre(luis, pedro).
fallo
pedro/Y1
meta vacía
Satisfacción de objetivos (II)padre(juan, antonio). padre(juan, luis). padre(luis, pedro). padre(luis,ana).
abuelo(X, Y) :- padre(X, Z), padre(Z, Y).
?- trace,abuelo(juan,X),notrace.
Call: (8) abuelo(juan, _G537) ? creep
Call:(9) padre(juan, _L200) ? creep
Exit: (9) padre(juan, antonio) ? creep
Call: (9) padre(antonio, _G537) ? creep
Fail: (9) padre(antonio, _G537) ? creep
Redo: (9) padre(juan, _L200) ? creep
Exit:(9) padre(juan, luis) ? creep
Call: (9) padre(luis, _G537) ? creep
Exit: (9) padre(luis, pedro) ? creep
Exit: (8) abuelo(juan, pedro) ? creep
X = pedro ; [trace]
Redo: (9) padre(luis, _G537) ?creep
Exit: (9) padre(luis, ana) ? creep
Exit: (8) abuelo(juan, ana) ? creep
X = ana ; [trace]
No
abuelo(juan ,G1)
juan/X1,
abuelo(X1, Y1) :- padre(X1, Z1), padre(Z1, Y1).
Y1/G1...
Regístrate para leer el documento completo.