Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- aStar(Cam,[H|Lfaltam]):- delete(Lfaltam,H,NovasLFaltam), calcula_estimativa(semferr,H,0,NovasLFaltam,CeX,CAX),!,
- aStar2(Cam ,[(CeX, CAX, [H|_])], NovasLFaltam),!.
- aStar2(Cam, [(_, _, Ltratadas)|_], []):-!, reverse(Ltratadas, Cam).
- aStar2(Cam, [(_, Ca, Ltratadas)|OutrasTratadas], Lfaltam):-
- Ltratadas=[Optratada|_],
- %delete(Lfaltam, Optratada, NovoLfaltam),
- classif_operacoes(Optratada, OptTratada), operacao_maquina(OptTratada,_,FerTratada,_,_),
- findall((CEX,CaX,[Opfalta|Ltratadas]),
- (member(Opfalta, Lfaltam), calcula_estimativa(FerTratada, Opfalta, Ca, Lfaltam, CEX, CaX)),
- NovosTratados),
- append(OutrasTratadas, NovosTratados, TodasTratadas),
- sort(TodasTratadas, TodasTratadasOrd),
- TodasTratadasOrd = [(_,_,[Atual|_])|_],
- delete(Lfaltam,Atual,NovoLfaltam),
- aStar2(Cam, TodasTratadasOrd, NovoLfaltam).
- calcula_estimativa(Fer1, X, Ca, Lfaltam, CEX, CaX):- classif_operacoes(X, Tx), operacao_maquina(Tx,_,Fer,Ts,Te),
- ((Fer1==Fer,!,TempoTotal is Te); (TempoTotal is Ts+Te)),
- delete(Lfaltam,X,NovaLFaltam),
- estimativa(NovaLFaltam, EstX),
- CaX is TempoTotal + Ca,
- CEX is CaX + EstX.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement