Necesito modificar el meta-intérprete vainilla para realizar una búsqueda con profundidad limitada. Estoy utilizando el siguiente código para probar mi sollution:Búsqueda limitada en profundidad en prolog (meta-intérprete vainilla)
value(wire1,1).
connected(wire2, wire1).
connected(wire3, wire2).
connected(wire4, wire3).
connected(wire5, wire4).
connected(wire6, wire5).
connected(wire7, wire6).
connected(wire8, wire7).
connected(wire9, wire8).
value(W,X):-connected(W,V), value(V,X).
y el objetivo es que algo como:
solve(value(w9,X), 3). /*depth =3, it should return false*/
solve(value(w9,X), 20). /*depth=20 is enought for returning X=1*/
Por cierto mi código es
solve(true,_):-!.
solve((A,B),D) :-!, solve(A,D), solve(B,D).
solve(A,D) :- clause(A, B),solve(B,D2),D=D2+1,D>0).
Pero Don no trabajo propiedad. ¿Me puedes ayudar? Muchas gracias de antemano
Usted puede cambiar el orden de los goles en el cuerpo de tal manera que la prueba de la profundidad es lo primero: 'resolver (A, D): - D> 1, la cláusula (A, B), D1 es D - 1, resolver (B, D1) .' – repeat