Advertisement
Guest User

Untitled

a guest
Nov 16th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. node(a,45,95).
  8. node(b,90,95).
  9. node(c,15,85).
  10. node(d,40,80).
  11. node(e,70,80).
  12. node(f,25,65).
  13. node(g,65,65).
  14. node(h,45,55).
  15. node(i,5,50).
  16. node(j,80,50).
  17. node(l,65,45).
  18. node(m,25,40).
  19. node(n,55,30).
  20. node(o,80,30).
  21. node(p,25,15).
  22. node(q,80,15).
  23. node(r,55,10).
  24.  
  25.  
  26. edge(a,b,45).
  27. edge(a,c,32).
  28. edge(a,d,16).
  29. edge(a,e,30).
  30. edge(b,e,25).
  31. edge(d,e,30).
  32. edge(c,d,26).
  33. edge(c,f,23).
  34. edge(c,i,37).
  35. edge(d,f,22).
  36. edge(f,h,23).
  37. edge(f,m,25).
  38. edge(f,i,25).
  39. edge(i,m,23).
  40. edge(e,f,48).
  41. edge(e,g,16).
  42. edge(e,j,32).
  43. edge(g,h,23).
  44. edge(g,l,20).
  45. edge(g,j,22).
  46. edge(h,m,25).
  47. edge(h,n,27).
  48. edge(h,l,23).
  49. edge(j,l,16).
  50. edge(j,o,20).
  51. edge(l,n,19).
  52. edge(l,o,22).
  53. edge(m,n,32).
  54. edge(m,p,25).
  55. edge(n,p,34).
  56. edge(n,r,20).
  57. edge(o,n,25).
  58. edge(o,q,15).
  59. edge(p,r,31).
  60.  
  61.  
  62.  
  63.  
  64. aStar(Orig,Dest,Cam,Custo):-
  65. aStar2(Dest,[(_,0,[Orig])],Cam,Custo).
  66.  
  67. aStar2(Dest,[(_,Custo,[Dest|T])|_],Cam,Custo):-
  68. reverse([Dest|T],Cam).
  69.  
  70. aStar2(Dest,[(_,Ca,LA)|Outros],Cam,Custo):-
  71. LA=[Act|_],
  72. findall((CEX,CaX,[X|LA]),
  73. (Dest\==Act,edge(Act,X,CustoX),\+ member(X,LA),
  74. CaX is CustoX + Ca, estimativa(X,Dest,EstX),
  75. CEX is CaX +EstX),Novos),
  76. append(Outros,Novos,Todos),
  77. sort(Todos,TodosOrd),
  78. aStar2(Dest,TodosOrd,Cam,Custo).
  79.  
  80. estimativa(Nodo1,Nodo2,Estimativa):-
  81. node(Nodo1,X1,Y1),
  82. node(Nodo2,X2,Y2),
  83. Estimativa is sqrt((X1-X2)^2+(Y1-Y2)^2).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement