<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hr">
	<id>https://croatianschoolsydney.com/index.php?action=history&amp;feed=atom&amp;title=Spade</id>
	<title>Spade - Povijest promjena</title>
	<link rel="self" type="application/atom+xml" href="https://croatianschoolsydney.com/index.php?action=history&amp;feed=atom&amp;title=Spade"/>
	<link rel="alternate" type="text/html" href="https://croatianschoolsydney.com/index.php?title=Spade&amp;action=history"/>
	<updated>2026-05-22T00:15:47Z</updated>
	<subtitle>Povijest promjena ove stranice na wikiju</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>https://croatianschoolsydney.com/index.php?title=Spade&amp;diff=188707&amp;oldid=prev</id>
		<title>WikiSysop: Bot: Automatski unos stranica</title>
		<link rel="alternate" type="text/html" href="https://croatianschoolsydney.com/index.php?title=Spade&amp;diff=188707&amp;oldid=prev"/>
		<updated>2021-10-04T10:34:02Z</updated>

		<summary type="html">&lt;p&gt;Bot: Automatski unos stranica&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nova stranica&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!--'''Spade'''--&amp;gt;[[Datoteka:Spade overview.png|mini|desno|350px|SPADE]]&lt;br /&gt;
&lt;br /&gt;
'''SPADE''' ({{eng oznaka}}: '''''S'''mart '''P'''ython multi-'''A'''gent '''D'''evelopment '''E'''nvironment'') je platforma temeljena na [[XMPP]]/[[Jabber]] tehnologiji i pisana u [[Python]] programskom jeziku. Izdana je pod GNU Lesser General Public License, te je temeljena na skupini standarda i tehnologija kao što su  [[FIPA]], [[XMPP]] i Jabber.&lt;br /&gt;
&lt;br /&gt;
[[Python]] je za sad jedini programski jezik podržan za SPADE platformu. Točnije, to je Python modul za razvoj softverskih agenata, odnosno višeagentnih sustava. Iako se preporuča korištenje modula te Python kao programskog jezika, razvoj agenata nije ograničen SPADE platformom. Agenti se mogu razvijati i u nekim drugim programskim jezicima te ih koristiti u SPADE platformi, no uvjet je da agenti komuniciraju koristeći XMPP protokol.&lt;br /&gt;
SPADE platforma je u potpunosti u skladu sa spomenutim [[FIPA]] standardima, prva koja je temeljena na [[XMPP]]/[[Jabber]] tehnologiji, stoga je uvelike prihvaćena od strane programera diljem svijeta.   &lt;br /&gt;
Srž SPADE platforme je [[XML]] [[Usmjernik]], na koji su spojeni ostali elementi i agenti. To je standardni [[XMPP]] server koji preusmjerava sve poruke od pošiljatelja do specifičnog primatelja. On ima ulogu sustava za transport poruka ({{eng oznaka}}: ''Message Transport System (MTS)''). Upravo zahvaljujući MTS-u, koji koristi [[XMPP]] protokol, moguća je komunikacija i između platformi, pod uvjetom su platforme u skladu sa [[FIPA]] standardima, odnosno da koriste [[XMPP]] protokol za komunikaciju. Jedna od važnijih komponenti koja je spojena na [[Usmjernik]] je i SPADE Agent Communication Channel (ACC) čija je zadaća upravljanje svom komunikacijom unutar platforme. &lt;br /&gt;
Kao sigurnosni mehanizam, logiranje na [[XML]] [[Usmjernik]] zahtijeva korisničko ime i lozinku, a sama veza na [[XML]] [[Usmjernik]] se može kriptirati koristeći [[SSL]] koji pruža [[Kriptografija|kriptiranje]] podataka, [[Autentikacija|autentikaciju]] na serveru te [[Integritet|integritet]] poruka.&lt;br /&gt;
Svaka komponenta unutar platforme je izgrađena kao agent. SPADE agenti su elementi koji su spojeni na MTS ([[XML]] router) te si time mogu međusobno slati poruke. Model agenta sadrži mehanizam spajanja na platformu ([[XMPP]] Connection), prosljeđivač poruka (message dispatcher) te niz različitih zadataka kojima se prosljeđuju poruke. Svaki agent mora imati identifikator koji se naziva Jabber ID (JID) te lozinku s kojom se spaja na platformu. Ukoliko je proces registracije na platformu onemogućen, administrator platforme mora definirati politiku registracije.&lt;br /&gt;
&lt;br /&gt;
==Ponašanja agenta==&lt;br /&gt;
&lt;br /&gt;
Agent može imati nekoliko ponašanja ({{eng oznaka}}: ''behavior''), koja se mogu izvršavati istodobno. Ponašanje je radnja koju agent izvršava ponavljajućim uzorcima. Predefinirani tipovi ponašanja, prema kojima se mogu implementirati različite radnje koje agent može izvršiti, su&amp;lt;ref name=&amp;quot;spade manual&amp;quot;&amp;gt;[http://spade.gti-ia.dsic.upv.es/manuals/html-chunk/spade.basicagents.agentmodel.html#spade.basicagents.agentmodel.connection]SPADE manual&amp;lt;/ref&amp;gt;:&lt;br /&gt;
* Cyclic&lt;br /&gt;
* Periodic&lt;br /&gt;
** Dva navedena ponašanja su korisna kod izvršavanja ponavljajućih radnji&lt;br /&gt;
* Time-Out&lt;br /&gt;
* One-shot&lt;br /&gt;
** Dva navedena ponašanja su korisna kod izvršavanja neformalnih, jedinstvenih radnji&lt;br /&gt;
* Finite State Machine&lt;br /&gt;
** Navedeno ponašanje omogućuje izradu kompleksnijih ponašanja&lt;br /&gt;
* Event Behaviour&lt;br /&gt;
** Navedeno ponašanje  odgovori na neki događaj koji agent percipira&lt;br /&gt;
&lt;br /&gt;
Svaki agent može imati neograničeni broj ponašanja. Kada agentu stigne poruka, prosljeđivač poruka ju proslijedi ponašanju kojem je  namijenjena. Svako ponašanje ima predložak poruke koji mu je određen, koji koristi prosljeđivač poruke kako bi odredio koja je poruka za koje ponašanje, tako da poruku spoji sa predloškom. Time, ponašanje može odrediti koje vrste poruka želi primati koristeći predloške.&lt;br /&gt;
&lt;br /&gt;
==Primjeri višeagentnih sustava==&lt;br /&gt;
Konkretni primjeri višeagentnih sustava ima mnogo, od jednostavnijih agenata koji prate kladioničarske koeficijente te se klade umjesto korisnika, pa to složenih sustava koji simuliraju i predviđaju prirodne pojave.&lt;br /&gt;
&lt;br /&gt;
==Implementacija==&lt;br /&gt;
===Jednostavni agent:===&lt;br /&gt;
 import spade&lt;br /&gt;
 class MyAgent(spade.Agent.Agent):&lt;br /&gt;
        def _setup(self):&lt;br /&gt;
                print &amp;quot;MyAgent starting . . .&amp;quot;&lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
        a = MyAgent(&amp;quot;agent@myhost.myprovider.com&amp;quot;, &amp;quot;secret&amp;quot;)&lt;br /&gt;
        a.start()&lt;br /&gt;
&lt;br /&gt;
===Agent sa cikličkim ponašanjem:===&lt;br /&gt;
 import spade&lt;br /&gt;
 import time&lt;br /&gt;
 class MyAgent(spade.Agent.Agent):&lt;br /&gt;
         class MyBehav(spade.Behaviour.Behaviour):&lt;br /&gt;
                 def onStart(self):&lt;br /&gt;
                         print &amp;quot;Starting behaviour . . .&amp;quot;&lt;br /&gt;
                         self.counter = 0&lt;br /&gt;
                 def _process(self):&lt;br /&gt;
                         print &amp;quot;Counter:&amp;quot;, self.counter&lt;br /&gt;
                         self.counter = self.counter + 1&lt;br /&gt;
                         time.sleep(1)&lt;br /&gt;
         def _setup(self):&lt;br /&gt;
                 print &amp;quot;MyAgent starting . . .&amp;quot;&lt;br /&gt;
                 b = self.MyBehav()&lt;br /&gt;
                 self.addBehaviour(b, None)&lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
        a = MyAgent(&amp;quot;agent@myhost.myprovider.com&amp;quot;, &amp;quot;secret&amp;quot;)&lt;br /&gt;
        a.start()&lt;br /&gt;
===Agent sa periodičkim ponašanjem (Periodic Behaviour):===&lt;br /&gt;
 import spade&lt;br /&gt;
 class MyAgent(spade.Agent.Agent):&lt;br /&gt;
         class MyBehav(spade.Behaviour.PeriodicBehaviour):&lt;br /&gt;
                 def onStart(self):&lt;br /&gt;
                         print &amp;quot;Starting behaviour . . .&amp;quot;&lt;br /&gt;
                         self.counter = 0&lt;br /&gt;
                 def _onTick(self):&lt;br /&gt;
                         print &amp;quot;Counter:&amp;quot;, self.counter&lt;br /&gt;
                         self.counter = self.counter + 1&lt;br /&gt;
         def _setup(self):&lt;br /&gt;
                 print &amp;quot;MyAgent starting . . .&amp;quot;&lt;br /&gt;
                 b = self.MyBehav(1)&lt;br /&gt;
                 self.addBehaviour(b, None)&lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
         a = MyAgent(&amp;quot;agent@myhost.myprovider.com&amp;quot;, &amp;quot;secret&amp;quot;)&lt;br /&gt;
         a.start()&lt;br /&gt;
===Agent sa One-Shot ponašanjem:===&lt;br /&gt;
 import spade&lt;br /&gt;
 class MyAgent(spade.Agent.Agent):&lt;br /&gt;
         class MyBehav(spade.Behaviour.OneShotBehaviour):&lt;br /&gt;
                 def onStart(self):&lt;br /&gt;
                         print &amp;quot;Starting behaviour . . .&amp;quot;&lt;br /&gt;
                 def _process(self):&lt;br /&gt;
                         print &amp;quot;Hello World from a OneShot&amp;quot;&lt;br /&gt;
                 def onEnd(self):&lt;br /&gt;
                         print &amp;quot;Ending behaviour . . .&amp;quot;&lt;br /&gt;
         def _setup(self):&lt;br /&gt;
                 print &amp;quot;MyAgent starting . . .&amp;quot;&lt;br /&gt;
                 b = self.MyBehav()&lt;br /&gt;
                 self.addBehaviour(b, None)&lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
         a = MyAgent(&amp;quot;agent@myhost.myprovider.com&amp;quot;, &amp;quot;secret&amp;quot;)&lt;br /&gt;
         a.start()&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{Izvori}}&lt;br /&gt;
* [http://code.google.com/p/spade2/ Google Code stranica]&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Umjetna inteligencija]]&lt;br /&gt;
[[Kategorija:Računalni programi]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
</feed>