Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (deftemplate fragment (slot from) (slot to) (slot from_street_name) (slot to_street_name))
- (deftemplate car (slot location))
- (deftemplate obstacles (slot location) (slot t_lights) (slot cars) (slot pedestrians) (slot spec_service))
- (deffacts faktai
- ;Masina
- (car (location 0))
- ;Gatves
- (fragment (from 1) (to 2) (from_street_name "Griciupio g. A") (to_street_name "Griciupio g. B"))
- (fragment (from 2) (to 3) (from_street_name "Griciupio g. B") (to_street_name "Saules g. A"))
- (fragment (from 3) (to 4) (from_street_name "Saules g. A") (to_street_name "Saules g. B"))
- (fragment (from 4) (to 5) (from_street_name "Saules g. B") (to_street_name "Topoliu g."))
- (fragment (from 5) (to 6) (from_street_name "Topoliu g.") (to_street_name "J. Bliuzo g."))
- (fragment (from 6) (to 7) (from_street_name "J. Bliuzo g.") (to_street_name "A. Pureno g."))
- (fragment (from 7) (to 8) (from_street_name "A. Pureno g.") (to_street_name "Pasiles g."))
- ;Kliutys
- (obstacles (location 1) (t_lights "green") (cars 0) (pedestrians 0) (spec_service 0))
- (obstacles (location 2) (t_lights "green") (cars 0) (pedestrians 1) (spec_service 0))
- (obstacles (location 3) (t_lights "yellow") (cars 0) (pedestrians 0) (spec_service 1))
- (obstacles (location 4) (t_lights "green") (cars 1) (pedestrians 1) (spec_service 0))
- (obstacles (location 5) (t_lights "red") (cars 0) (pedestrians 1) (spec_service 1))
- (obstacles (location 6) (t_lights "green") (cars 1) (pedestrians 0) (spec_service 1))
- (obstacles (location 7) (t_lights "green") (cars 0) (pedestrians 0) (spec_service 0)))
- ;Salygos
- (defrule r1 "Patikrinimas ar pradzioje ar pabaigoje esame"
- ?lock_id<-(car(location ?curr_lock))
- ;Ieskoti didziausio kintamojo fragmentuose
- (fragment (to ?kur1) (to_street_name ?name))
- (not(fragment (to ?kur2&:(> ?kur2 ?kur1))))
- (test
- (or
- (= ?curr_lock 0)
- (= ?curr_lock ?kur1)
- )
- )
- =>
- ;(printout t "Tikslas pasiekti : " ?name crlf)
- (if (= ?curr_lock 0)
- then (modify ?lock_id (location 1)) (printout t "Masina pradejo kelione." crlf)
- else (modify ?lock_id (location (+ ?kur1 1))) (printout t "Pasiekta pabaigos keliones sankryza. " crlf)
- )
- )
- (defrule r2 "Judame"
- ;Kintamieji tikrinimui
- ?f_id <- (car (location ?curr_lock))
- (fragment (from ?from) (to ?to) (from_street_name ?is) (to_street_name ?kur))
- (obstacles (location ?lock) (t_lights ?t_lights) (pedestrians ?ped) (cars ?c) (spec_service ?sp))
- (test
- (and
- (= ?lock ?curr_lock)
- (eq ?t_lights "green")
- (= ?c 0)
- (= ?ped 0)
- (= ?sp 0)
- (= ?from ?curr_lock)
- )
- )
- =>
- (modify ?f_id (location (+ ?curr_lock 1)))
- (printout t "Nera kliuciu sankryzoje" ?lock " Judame is sankryzos " ?from " " ?is " i " ?to " " ?kur crlf)
- )
- (defrule r3 "Keiciame kliuciu skaiciu"
- ?f_id <- (obstacles (location ?oloc) (t_lights ?lights) (cars ?c) (pedestrians ?ped) (spec_service ?sp))
- (car (location ?curr_lock))
- ;testas kuris tikrina ar automobilis ir sankryzos kliutys yra toje pacioje sankryzoje
- (test
- (and
- (= ?oloc ?curr_lock)
- (or
- (neq ?lights "green")
- (!= ?c 0)
- (!= ?ped 0)
- (!= ?sp 0)
- )
- )
- )
- =>
- (if (> ?sp 0)
- then (modify ?f_id (spec_service (- ?sp 1)))
- (printout t "Praleidziame specialios tarnybos masinas" crlf)
- else (if (> ?ped 0)
- then (modify ?f_id(pedestrians (- ?ped 1)))
- (printout t "Praleidziame pesciuosius" crlf)
- )else (if (> ?c 0)
- then (modify ?f_id(cars (- ?c 1)))
- (printout t "praleidziamas vaziuojancias masinas" crlf)
- ) else (if (eq ?lights "red")
- then (modify ?f_id (t_lights "yellow"))
- (printout t "siuo metu dega raudona laukiama kol pasikeis i zalia signala." crlf)
- )else (if (eq ?lights "yellow")
- then (modify ?f_id(t_lights "green"))
- (printout t "SIuo metu dega geltona. Laukiama zalios spalvos" crlf)
- )
- )
- )
- ; JESS aplinkoje komentarus pasalinkite
- ;
- ; (reset)
- ; (facts)
- ; (watch all)
- ; (run)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement