Agentit ja semanttinen web Pekka Halonen
Henkilökohtainen agentti Aika lääkäriin Agentti toteaa, että käyttäjä tarvitsee lääkäriä Pyytää lääkäriaikoja hoitavan agentin kautta pääsyä ko. vaivaa hoitavalle lääkärille lähiseudulta Saa listan sopivista ajankohdista ja lääkäreistä Sovittaa lääkäriajan käyttäjän menojen kanssa käyttäjän kalenteri(agenti)n kanssa Huolehtii, että käyttäjä on lääkärissä ajoissa
Agentti Yleiskielessä agentti tarkoittaa asiamiestä, henkilöä, joka toimii toimeksiantajansa eli päämiehensä lukuun. (wikipedia) Ohjelma tai palvelu, joka toimii käyttäjänsä hyväksi tietoverkossa Etsii tietoa, suorittaa määrättyjä tehtäviä ja jopa neuvottelee sopimuksia hyväksemme
Perinteinen agentti Hakee tietoa ja indeksoi Näyttää käyttäjälle hakutulokset, ei osaa yhdistää tietoa useammasta lähteestä kovakoodattu Esim. perinteinen hakukone
Älykäs agentti Osaa hakea tietoa useammista lähteistä ontologioita ja älykkäitä www-palveluita hyödyntäen Kykenee kommunikoimaan myös muiden agenttien kanssa Voi hyödyntää oppimaansa Tarjoaa käyttäjälle vaihtoehtoja tai voi jopa tehdä päätöksiä käyttäjän puolesta
Tänään Tulevaisuudessa
Agentin toiminta Etsii käyttäjälle hyödyllistä tietoa verkosta Helppoa pienessä mittakaavassa ja kontrolloidussa ympäristössä Haastavampaa Internetissä Ei kontrollia ympäristöstä Heterogeenisyys Viestimällä ja yhteistyössä muiden agenttien kanssa saavutetaan omaa tietämystä suurempia tavoitteita
Hyvä agentti Itsenäinen Kykenee toimimaan ilman käyttäjän vuorovaikutusta Kommunikointikykyinen Kommunikoi muiden agenttien ja wwwpalveluiden kanssa
Hyvä agentti Toimintakykyinen Osaa toimia käyttäjän puolesta ilman käyttäjän jatkuvaa vuorovaikutusta Mukautuva Sopeutuu yllättäviin tilanteisiin Oppii palvelemaan käyttäjää paremmin
Agenttien luokittelu Voidaan luokitella toiminnallisuuden perusteella neljään eri luokkaan Logiikkaan pohjautuvat (logic based) Toiminnalliset (reactive) Uskomus-halu-aikomus (belief-desire-intention, BDI) Kerrosarkkitehtuuri (layered architechture)
Logiikkaan pohjautuvat agentit Edustavat perinteistä tekoälyn agenttimallia Joukko todistuksia, johtopäätöksiä ja toimenpiteitä Käyttävät päättelysääntöjä määrittämään onko jokin totta vai ei Päättelyn tuloksen perusteella päädytään suorittamaan jokin toimenpide
Toiminnalliset agentit Logiikka-agenttien vastakohta Ei ennalta määrättyjä sääntöjä, toimenpiteitä tai tavoitteita Reagoivat refleksinomaisesti Kykenee oppimaan ja kehittymään
Uskomus-halu-aikomus agentit Menestynein agenttiryhmä tekoälyssä tähän päivään mennessä Perustuu käytännölliseen päättelyyn Uskomus on agentin näkemys maailmasta Halu on agentin tavoite(tila) Aikomus on agentin suunnitelma tavoitteen saavuttamiseksi Tavoitteet voivat muuttua Kykenee ratkomaan ristiriitoja halun ja uskomuksen välillä
Kerrosarkkitehtuuri Joko vaaka- tai pystysuuntainen kerrosarkkitehtuuri Kaikki edellä mainitut agenttiryhmät voidaan toteuttaa kummallakin tavalla Sensorien toiminta ja syötteiden analysointi vaikuttavat tuloksen muodostumiseen
Vaakasuuntainen Pystysuuntainen Syöte sensoreilta Kerros 1 Kerros 1 Syöte sensoreilta Kerros 2 Tulos Kerros 2 Kerros 3 Kerros 3 Tulos
Agenttien kommunikointi Kommunikoivat muiden agenttien tai wwwpalveluiden kanssa Tavoitteena Suorittaa tehtäviä koordinoidusti Pyytää toisia agentteja suorittamaan tehtävä Pitää yllä yhteisiä tavoitteita Päivittää omat suunnitelmat muiden toimintojen perusteella
Agenttien välinen kommunikointi Kirjavuus käytetyissä kommunikointitavoissa ja ympäristön kontrolloimattomuus haasteena Käytetyt ontologiat Käytetty logiikka Suoritettavat toimenpiteet Tietoturvan ja luottamuksellisuuden asettamat vaatimukset
Ontologioiden selvittäminen
FIPA ACL Yksi standardoitu agenttien välinen kommunikointikieli (Agent Communication Language) Agenttien oletetaan olevan BDI-tyylillä toteutettuja FIPA ACL kielessä on kaksi perustoiminnallisuutta inform ja request
FIPA ACL (inform :sender agent1 :receiver agent2 :ontology hpl-auction :language fipa-sl :content (price item567 24.95) )
Protokolla Keskustellessaan agentit toteuttavat protokollan Kuvataan ääreellisellä tila-automaatilla
Agenttien kehittäminen Useita työkaluja tarjolla eri alustoille JADE (Java Agent DEvelopment Framework) yksi pitkään kehitetty ja FIPA yhteensopiva Välikerros agenttien toteuttamista varten Sisältää runsaasti työkaluja moniagenttijärjestelmien (multi-agent systems) toteuttamiseen Protegessa tuki OWL:ien vientiin JADEn ymmärtämään muotoon
import jade.core.agent; public class myagent extends Agent { protected void setup() { addbehaviour( new mybehaviour( this ) ); } --- }//end class myagent
import jade.core.behaviours.*; class mybehaviour extends SimpleBehaviour { public mybehaviour(agent a) { super(a); } public void action() { //...this is where the real programming goes!! } private boolean finished = false; public boolean done() { return finished; } } // ----------- End mybehaviour
Agenttien ongelmia Eri kielillä määriteltyjen agenttien yhteistoiminta Eri ontologiat Missä menee itsenäisyyden raja? Miten tietoturva, luottamus ym. saadaan toteutettua?
Missä agentit ovat? Agenttien tulemista on odotettu jo 2000-luvun alusta Mahdollisuudet paranevat, kun standardeja tulee lisää Ontologioita saadaan jo monista webkehitysvälineistä Käytännön sovellukset loistavat poissaolollaan
KIITOS Kysymyksiä?