130 likes | 296 Views
StarLogo. StarLogo je višeagentski simulacijski jezik razvijen na MIT-u (Mitchel Resnick, Eric Klopfer) specijalizirana verzija programskog jezika Logo može poslužiti za simuliranje decentraliziranih sustava (jata ptica, prometna gužva, kolonije mrava…). „Likovi” u StarLogo svijetu.
E N D
StarLogo • StarLogo je višeagentski simulacijski jezik • razvijen na MIT-u (Mitchel Resnick, Eric Klopfer) • specijalizirana verzija programskog jezika Logo • može poslužiti za simuliranje decentraliziranih sustava • (jata ptica, prometna gužva, kolonije mrava…)
„Likovi” u StarLogo svijetu • Kornjače • stanovnici StarLogo svijeta • pozicija, boja, smjer, „olovka” za crtanje, set funkcija • više kornjača u paraleli • Kvadratići (patches, krpice) • diskretizirani „komadi” svijeta u kojem kornjače žive • mogu izvršavati komande i komunicirati sa okolnim • svijetom
„Likovi” u StarLogo svijetu • Promatrač • gleda na svijet (kornjače i kvadratiće) iz ptičje perspektive • stvara kornjače • nadgleda aktivnosti postojećih kornjača i kvadratića kornjače kvadratići
Sučelje – kontrolni centar Promatrač: Kornjače: naredbe procedure
Osnovne naredbe • Stvaranje kornjača: • crt (create-turtles) broj • Čišćenje svijeta • ct (clearturtles) • cp (clearpatches) • ca (clearall) • Kretanje (iteracija) • fd (forward) broj • jump broj
Osnovne naredbe • Atributi • color • pc (patchcolor) • shape • Procedure • skup naredbi • to ime_procedure :param1 :param2 • naredbe • end
Osnovne naredbe • Pozivanje procedura kornjača i kvadratića od promatrača • ask-turtles [naredbe/ime_procedure] • ask-patches [naredbe] • Varijable • ugrađene varijable • varijable kornjača turtles-own [varijabla] • varijable kvadratićapatches-own [varijabla] • globalne varijable globals [varijabla] • lokalne varijable let [:varijabla broj]
Osnovne naredbe • operatori • Aritmetički +, -, *, /, ^ • Logički>, <, =, !=, <=, >=, not= • pridruživanje • setIme_varijable vrijednost • setIme_varijable-of broj vrijednost • setIme_varijable-at x y vrijednost • grananje • if logički_uvjet [naredbe]
Osnovne naredbe • dodavanje gumba
Svojstva • Lako ostvarivanje paralelizma • Svaki mrav je predstavljen jednom programskom dretvom (thread) • Upotrebom ask-patches se stvara dretva za svaki kvadratić (usporenje programa) • Programi mrava moraju biti dobro optimizirani
Programski primjer ACO* • Svaki mrav ispituje kvadratić direktno ispred sebe, dijagonalno lijevo i dijagonalno desno • Ako traži hranu: ide u smjeru gdje je slabiji miris gnijezda, i gdje je jači feromonski trag (ako postoji) • Ako je našao hranu: ide u smjeru gdje je jači miris gnijezda i gdje je jači feromonski trag, te ostavlja za sobom feromonski trag • Polje može biti hrana, gnijezdo, prepreka ili prazno. • Rezultat: najefikasniji put između gnijezda i hrane *Vidi priloženi filmić ACO ili starlogo program ACO.slogo
Programski primjer FER* • Svijet je pun ferovaca koji nemaju WLAN • Vedran Mornar je dobar, te on luta svijetom i kad god vidi ferovca bez WLANA, postavi mu wlan odašiljač • Ferovci jure na mjesta gdje ima WLANA, no polako gube energiju i idu sve sporije • Dok su spojeni na WLAN, puni im se energija • Odašiljači prestanu postojati nakon nekog vremena • Rezultat: Mornar i ne želeći to, formira FER *Vidi priloženi filmić FER ili starlogo program FER.slogo
Više o StarLogo-u http://education.mit.edu/starlogo/ Detaljne upute o funkcijama Tutorial Besplatan download, uključuje brojne primjere Imajte na umu da StarLogo zahtijeva jak procesor da bi se efikasno izvodio