He revisado las preguntas similares pero no encuentro nada que sea relevante para mi problema. Estoy luchando para encontrar un algoritmo o conjunto de bucles '' que encontrarán un camino desde CityA
a CityB
, utilizando una base de datos deVendedor ambulante simplificado en Prolog
distance(City1,City2,Distance)
hechos. Lo que he logrado hacer hasta ahora está debajo, pero siempre retrocede al write(X),
y luego se completa con la iteración final, que es lo que quiero que haga, pero solo hasta cierto punto.
Por ejemplo, no quiero que se impriman nombres de ciudades que son callejones sin salida, o para usar la iteración final. Quiero que básicamente haga una ruta desde CityA
hasta CityB
, escribiendo el nombre de las ciudades a las que va en la ruta.
¡Espero que alguien me pueda ayudar!
all_possible_paths(CityA, CityB) :-
write(CityA),
nl,
loop_process(CityA, CityB).
loop_process(CityA, CityB) :-
CityA == CityB.
loop_process(CityA, CityB) :-
CityA \== CityB,
distance(CityA, X, _),
write(X),
nl,
loop_process(X, CityB).
¡Usted señor, ha ido más allá del cumplimiento del deber! ¡Esto es increíble, es perfecto y en realidad tiene sentido! Lo siento, soy tan tonto, soy muy nuevo en Prolog y, aunque ha surgido bastante naturalmente, realmente he tenido problemas con esta tarea. Muchas gracias así que muuuy mucho:] –
no dudes en publicar más preguntas si te cuesta entender este código, yo u otros los responderé en comentarios :) – m09