Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. aStar(Cam,[H|Lfaltam]):- delete(Lfaltam,H,NovasLFaltam), calcula_estimativa(semferr,H,0,NovasLFaltam,CeX,CAX),!,
  2. aStar2(Cam ,[(CeX, CAX, [H|_])], NovasLFaltam),!.
  3.  
  4. aStar2(Cam, [(_, _, Ltratadas)|_], []):-!, reverse(Ltratadas, Cam).
  5.  
  6. aStar2(Cam, [(_, Ca, Ltratadas)|OutrasTratadas], Lfaltam):-
  7. Ltratadas=[Optratada|_],
  8. %delete(Lfaltam, Optratada, NovoLfaltam),
  9. classif_operacoes(Optratada, OptTratada), operacao_maquina(OptTratada,_,FerTratada,_,_),
  10. findall((CEX,CaX,[Opfalta|Ltratadas]),
  11. (member(Opfalta, Lfaltam), calcula_estimativa(FerTratada, Opfalta, Ca, Lfaltam, CEX, CaX)),
  12. NovosTratados),
  13. append(OutrasTratadas, NovosTratados, TodasTratadas),
  14. sort(TodasTratadas, TodasTratadasOrd),
  15. TodasTratadasOrd = [(_,_,[Atual|_])|_],
  16. delete(Lfaltam,Atual,NovoLfaltam),
  17. aStar2(Cam, TodasTratadasOrd, NovoLfaltam).
  18.  
  19. calcula_estimativa(Fer1, X, Ca, Lfaltam, CEX, CaX):- classif_operacoes(X, Tx), operacao_maquina(Tx,_,Fer,Ts,Te),
  20. ((Fer1==Fer,!,TempoTotal is Te); (TempoTotal is Ts+Te)),
  21. delete(Lfaltam,X,NovaLFaltam),
  22. estimativa(NovaLFaltam, EstX),
  23. CaX is TempoTotal + Ca,
  24. CEX is CaX + EstX.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement