Advertisement
Guest User

Untitled

a guest
Jan 24th, 2020
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. liga(hall,corredor,90,190).
  2. liga(hall,sala,160,190).
  3. liga(sala,cozinha,90,190).
  4. liga(cozinha,corredor,100,200).
  5. liga(cozinha,lavandaria,80,180).
  6. liga(cozinha,arrumos,80,180).
  7. liga(corredor,wc,90,200).
  8. liga(corredor,quarto1,95,200).
  9. liga(corredor,quarto2,95,200).
  10. liga(corredor,quarto_suite,120,200).
  11. liga(quarto_suite,wc_suite,90,200).
  12. liga(quarto_suite,terraço,200,200).
  13. liga(sala,terraço,240,200).
  14.  
  15. % =================================================================
  16.  
  17. % a)
  18. ppp(X,Y,Z,LP,AP,n):- Z < AP,(X < LP; Y < LP),!.
  19. ppp(X,Y,Z,LP,AP,x):- X < AP,(Z < LP; Y < LP),!.
  20. ppp(X,Y,Z,LP,AP,y):- Y < AP,(Z < LP; X < LP).
  21.  
  22. % b)
  23. caminho(X,Y,Z,Div_Partida,Div_Chegada,Lista_Divisoes,N):-
  24. caminho2(X,Y,Z,Div_Partida,Div_Chegada,[Div_Partida],Lista_Divisoes,0,N).
  25.  
  26. caminho2(_,_,_,Div_Chegada,Div_Chegada,Divisoes,Lista_Divisoes,N,N):-
  27. reverse(Divisoes,Lista_Divisoes).
  28. caminho2(X,Y,Z,Div_Partida,Div_Chegada,Divisoes,Lista_Divisoes,N,NFinal):-
  29. ligacao(Div_Partida,Div_Passagem,LP,AP),
  30. \+ member(Div_Passagem,Divisoes),
  31. ppp(X,Y,Z,LP,AP,T),
  32. (T == n -> N1 is N; N1 is N + 1),
  33. caminho2(X,Y,Z,Div_Passagem,Div_Chegada,[Div_Passagem|Divisoes],Lista_Divisoes,N1,NFinal).
  34.  
  35. ligacao(Div1,Div2,LP,AP):-
  36. liga(Div1,Div2,LP,AP);
  37. liga(Div2,Div1,LP,AP).
  38.  
  39. % c)
  40. todos_caminhos(X,Y,Z,Div_Partida,Div_Chegada,LLista_Divisoes):-
  41. findall(p(N,Lista_Divisoes),
  42. caminho(X,Y,Z,Div_Partida,Div_Chegada,Lista_Divisoes,N),
  43. LLista_Divisoes).
  44.  
  45. % d)
  46. menosdivtomb(X,Y,Z,Div_Partida,Div_Chegada,Lista_Divisoes):-
  47. findall(p(Len,N,Lista_Divisoes),
  48. (caminho(X,Y,Z,Div_Partida,Div_Chegada,Lista_Divisoes,N),
  49. length(Lista_Divisoes,Len)),
  50. LLista_Divisoes),
  51. sort(LLista_Divisoes,[p(_,_,Lista_Divisoes)|_]).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement