Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defn update [v f]
- (let [new-route (f v)
- new-route-len (routelength new-route)]
- (if (< new-route-len @best-length)
- (dosync
- (ref-set best-length new-route-len)
- (ref-set best-route new-route)
- (swap! num-improv dec)
- )
- @best-length
- )
- )
- )
- ;funkcija koja dokolku se ispolneti uslovi treba da napravi azuriranje na referencite best-route, best-length, num-improv, improv-operation
- ;na vlez dobiva dva argumenti: vektor za momentalna pateka i funkcija koja treba da se primeni na takvata pateka za da se promeni
- ;referencite se menuvaat samo ako promenetata pateka e podobra od tekovnata
- ;ovaa funkcija treba da bide iskoristena od strana na agentite koi go baraat resenieto,t.e. ova e funkcijata koja mu se praka na sekoj eden agent
- ;pri koristenje na send funkcijata, momentalnata sostojba na agentot ke bide postavena kako prv argument na funkcijata
- ;rezultatot od izvrsuvanjeto na funkcijata ke bide nova sostojba na agentot
- ;vtoriot argument na funkcijata ukazuva na toa koja promena da se iskoristi za da se vidi dali agentot ke si ja promeni sostojbata
- ;primer: (send displacement-agent update displacement),
- ;sto bi znacelo deka vrz momentalnata sostojba na agentot so ime displacement-agent ja primenuvame update funkcijata vo koja ke se proba da se napravi azuriranje so displacement funkcijata
- (defn show []
- (do
- (println "Initial route was" initial "with length" (routelength initial))
- (println (- maximprov @num-improv) "improvements made")
- (println "The following operations were made" @improv-operation)
- (println "Best route is" @best-route "with length" @best-length)))
- ;funkcija za prikaz na resenieto
- (defn main []
- (if (or (zero? @num-tries) (zero? @num-improv))
- (do
- (await displacement-agent scramble-agent exchange-agent insertion-agent inversion-agent)
- (show)
- )
- )
- (do
- (send displacement-agent update displacement)
- (send scramble-agent update scramble)
- (send exchange-agent update exchange)
- (send insertion-agent update insertion)
- (send inversion-agent update inversion)
- (dosync (swap! num-tries dec))
- (recur)
- )
- ;vasiot kod ovde
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement