ayudaaaa nodos y busquedas etc
Publicado por Milpin (2 intervenciones) el 06/11/2007 03:41:07
Saludos, tengo un programa en el cual tengo nodos de ciudades, por ejemplo nodo(newyork, mexico) y asi varios, tambien tengo definida la ciudad destino, dest(losangeles), entonces hice un programa el cual le pones el origen y te hace la busqueda y te imprime la ruta que hay que seguir, pero ahora, si le kiero poner las horas, que sea la hora en que sale un vuelo por ejemplo, nodo(newyork,mexico,13), el vuelo ke sale de newyork a mexico sale a las 13 horas, y asi le pongo hora a cada nodo, pero ahora ya no se como ponerle la condicion ni donde ponerla para que cheque las horas de vuelo y que me de una ruta y que respete las horas????????????????????????????????????? este es mi codigo el cual como dije ya me hace la ruta y me la imprime bien y todo, con rutas alternas y todo, pero como hacerle para las horas, alguien me puede dar una asesoria o ayudar o decir como o ke??????
ruta(francia,kenia,12).
ruta(andorra,kenia,10).
ruta(kenia,jamaica,11).
destinofinal(jamaica).
partirde(Origen,X) :-
recorre([[Origen]],X).
recorre([[Nodo|Camino]|_],[Nodo|Camino]) :-
destinofinal(Nodo).
recorre([Camino|Caminos],X) :-
encuentra(Camino,NuevosCaminos),
une(Caminos,NuevosCaminos,Caminos1),
recorre(Caminos1,X).
encuentra([Nodo|Camino],NuevosCaminos) :-
findall([NuevoNodo,Nodo|Camino],(ruta(Nodo,NuevoNodo,_), not(member(NuevoNodo, [Nodo|Camino]))),NuevosCaminos),!.
encuentra(Camino,[]).
une([],R,R).
une([H|T2],List,[H|T1]) :-
une(T2,List,T1).
ruta(francia,kenia,12).
ruta(andorra,kenia,10).
ruta(kenia,jamaica,11).
destinofinal(jamaica).
partirde(Origen,X) :-
recorre([[Origen]],X).
recorre([[Nodo|Camino]|_],[Nodo|Camino]) :-
destinofinal(Nodo).
recorre([Camino|Caminos],X) :-
encuentra(Camino,NuevosCaminos),
une(Caminos,NuevosCaminos,Caminos1),
recorre(Caminos1,X).
encuentra([Nodo|Camino],NuevosCaminos) :-
findall([NuevoNodo,Nodo|Camino],(ruta(Nodo,NuevoNodo,_), not(member(NuevoNodo, [Nodo|Camino]))),NuevosCaminos),!.
encuentra(Camino,[]).
une([],R,R).
une([H|T2],List,[H|T1]) :-
une(T2,List,T1).
Valora esta pregunta


0