Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.01 KB | None | 0 0
  1.  
  2. (deftemplate fragment (slot from) (slot to) (slot from_street_name) (slot to_street_name))
  3. (deftemplate car (slot location))
  4. (deftemplate obstacles (slot location) (slot t_lights) (slot cars) (slot pedestrians) (slot spec_service))
  5.  
  6. (deffacts faktai
  7. ;Masina
  8. (car (location 0))
  9. ;Gatves
  10. (fragment (from 1) (to 2) (from_street_name "Griciupio g. A") (to_street_name "Griciupio g. B"))
  11. (fragment (from 2) (to 3) (from_street_name "Griciupio g. B") (to_street_name "Saules g. A"))
  12. (fragment (from 3) (to 4) (from_street_name "Saules g. A") (to_street_name "Saules g. B"))
  13. (fragment (from 4) (to 5) (from_street_name "Saules g. B") (to_street_name "Topoliu g."))
  14. (fragment (from 5) (to 6) (from_street_name "Topoliu g.") (to_street_name "J. Bliuzo g."))
  15. (fragment (from 6) (to 7) (from_street_name "J. Bliuzo g.") (to_street_name "A. Pureno g."))
  16. (fragment (from 7) (to 8) (from_street_name "A. Pureno g.") (to_street_name "Pasiles g."))
  17. ;Kliutys
  18. (obstacles (location 1) (t_lights "green") (cars 0) (pedestrians 0) (spec_service 0))
  19. (obstacles (location 2) (t_lights "green") (cars 0) (pedestrians 1) (spec_service 0))
  20. (obstacles (location 3) (t_lights "yellow") (cars 0) (pedestrians 0) (spec_service 1))
  21. (obstacles (location 4) (t_lights "green") (cars 1) (pedestrians 1) (spec_service 0))
  22. (obstacles (location 5) (t_lights "red") (cars 0) (pedestrians 1) (spec_service 1))
  23. (obstacles (location 6) (t_lights "green") (cars 1) (pedestrians 0) (spec_service 1))
  24. (obstacles (location 7) (t_lights "green") (cars 0) (pedestrians 0) (spec_service 0)))
  25.  
  26. ;Salygos
  27. (defrule r1 "Patikrinimas ar pradzioje ar pabaigoje esame"
  28. ?lock_id<-(car(location ?curr_lock))
  29. ;Ieskoti didziausio kintamojo fragmentuose
  30. (fragment (to ?kur1) (to_street_name ?name))
  31. (not(fragment (to ?kur2&:(> ?kur2 ?kur1))))
  32.  
  33. (test
  34. (or
  35. (= ?curr_lock 0)
  36. (= ?curr_lock ?kur1)
  37. )
  38. )
  39.  
  40. =>
  41. ;(printout t "Tikslas pasiekti : " ?name crlf)
  42. (if (= ?curr_lock 0)
  43. then (modify ?lock_id (location 1)) (printout t "Masina pradejo kelione." crlf)
  44. else (modify ?lock_id (location (+ ?kur1 1))) (printout t "Pasiekta pabaigos keliones sankryza. " crlf)
  45. )
  46. )
  47.  
  48. (defrule r2 "Judame"
  49. ;Kintamieji tikrinimui
  50. ?f_id <- (car (location ?curr_lock))
  51. (fragment (from ?from) (to ?to) (from_street_name ?is) (to_street_name ?kur))
  52. (obstacles (location ?lock) (t_lights ?t_lights) (pedestrians ?ped) (cars ?c) (spec_service ?sp))
  53.  
  54. (test
  55.  
  56. (and
  57. (= ?lock ?curr_lock)
  58. (eq ?t_lights "green")
  59. (= ?c 0)
  60. (= ?ped 0)
  61. (= ?sp 0)
  62. (= ?from ?curr_lock)
  63. )
  64. )
  65. =>
  66. (modify ?f_id (location (+ ?curr_lock 1)))
  67. (printout t "Nera kliuciu sankryzoje" ?lock " Judame is sankryzos " ?from " " ?is " i " ?to " " ?kur crlf)
  68.  
  69. )
  70.  
  71. (defrule r3 "Keiciame kliuciu skaiciu"
  72. ?f_id <- (obstacles (location ?oloc) (t_lights ?lights) (cars ?c) (pedestrians ?ped) (spec_service ?sp))
  73. (car (location ?curr_lock))
  74. ;testas kuris tikrina ar automobilis ir sankryzos kliutys yra toje pacioje sankryzoje
  75. (test
  76. (and
  77. (= ?oloc ?curr_lock)
  78. (or
  79. (neq ?lights "green")
  80. (!= ?c 0)
  81. (!= ?ped 0)
  82. (!= ?sp 0)
  83. )
  84. )
  85. )
  86. =>
  87. (if (> ?sp 0)
  88. then (modify ?f_id (spec_service (- ?sp 1)))
  89. (printout t "Praleidziame specialios tarnybos masinas" crlf)
  90. else (if (> ?ped 0)
  91. then (modify ?f_id(pedestrians (- ?ped 1)))
  92. (printout t "Praleidziame pesciuosius" crlf)
  93. )else (if (> ?c 0)
  94. then (modify ?f_id(cars (- ?c 1)))
  95. (printout t "praleidziamas vaziuojancias masinas" crlf)
  96. ) else (if (eq ?lights "red")
  97. then (modify ?f_id (t_lights "yellow"))
  98. (printout t "siuo metu dega raudona laukiama kol pasikeis i zalia signala." crlf)
  99. )else (if (eq ?lights "yellow")
  100. then (modify ?f_id(t_lights "green"))
  101. (printout t "SIuo metu dega geltona. Laukiama zalios spalvos" crlf)
  102. )
  103. )
  104. )
  105.  
  106.  
  107.  
  108. ; JESS aplinkoje komentarus pasalinkite
  109. ;
  110. ; (reset)
  111. ; (facts)
  112. ; (watch all)
  113. ; (run)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement