Artificiell Intelligens inom datorspel Är det ett seriöst ämne?

Relevanta dokument
Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Artificiell intelligens i spel

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

Artificiell Intelligens den nya superkraften

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Programmering. Scratch - grundövningar

729G Artificiell jakt och flockbeteende inom datorspel

Hundskola.NU! 2.0 Mellanstadiet. En del av Hundskola.NU! 2.0 av Ingela Melinder. Belöningar FÖR HUNDAR

Richard Wiik 9/16/2011

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

Problem: FIL File Paths

Ett spel skapat av Albin Wahlstrand

Programmeringsuppgift Game of Life

Spelutveckling - Gameplay. Design och produktion

VARFÖR FINNS DET INGA RIKTIGA

Laboration Fuzzy Logic

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Helgträning

AI-Tekniker. För domänspecifika problemområden i StarCraft 2. Mattias Tiger Fredrik Präntare

Handbok Kapman. Thomas Gallinari Översättare: Stefan Asserhäll

TDDD92 Artificiell intelligens -- projekt

Case-based resoning. och dess användning inom sjukvården. Linköpings universitet Artificiell intelligens II 729G11 HT 2011

TDP005 Projekt: Objektorienterat system

Reagera på WoW-event Att använda OnUpdate Introduktion Att kapa funktioner Automatisering och AI

Ämnesområden. Examensarbete inom datavetenskap (1DV41E) Martin Fredriksson

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

Datalogiskt tänkande. med DATALIA DATALIA

Artificiell intelligens i en virtuell värld

NATURVETENSKAP FÖR LIVET?

NATURVETENSKAP FÖR LIVET?

Pappa, jag är hungrig!

Lärarmaterial. Vad handlar boken om? Mål och förmågor som tränas: Eleverna tränar på att: Författare: Beth Bracken och Kay Fraser

AI utmaningar inom kvalitetssäkring. Henrik Emilsson Teststrateg, Nordic Medtest AB

Förbättra kommunikationen mellan målvakt och backar. Torbjörn Johansson

SLALOMINGÅNGAR hur svårt kan det vara?

Grund. Markera Användaren och välj Användarinställningar till vänster i Grids utforskare. Välj Talinställningar

Digitalt lärande och programmering i klassrummet

Introduktion programmering

Programmeringsappar. Av Alex

Real-time requirements for online games

UTBILDNINGEN. Svenska Ishockeyförbundet Elitkurs Hur viktig är coachens kroppsspråk och verbala förmåga för lagets framgång?

Kombinationer och banor i agilityträningen

S i d a 1. Goda råd. från en erfaren. kranförare

Hur arbetar en arkeolog? Text: Annika Knarrström

FÖRKORTA DIN VÄG PÅ BANAN

LÄRARHANDLEDNING. ROBOTS: gå-själv-material - årskurs F-3

F1 Introduktion och ingenjörsrollen EDAA05 Datorer i system! Roger Henriksson!

Handledare: Mikael Goldmann

F1 Introduktion och ingenjörsrollen

passning Passningsövningar stegrande svår 1/9 Created with Sideline XPS Trainer - 2/9

Icebreaker. v Redundancy

BASKUNSKAP OM HUNDAR En del av Hundskola.NU! 1.0 av Ingela Melinder

SV Förenade i mångfalden SV. Ändringsförslag. Beatrix von Storch för EFDD-gruppen

Programmering är för alla - en värderingsövning

Användarmanual Wapspel

Universe Engine Rapport

Anton Brunberg,

Sannolikheten att vinna ett spel med upprepade myntkast

Erik står i mål Lärarmaterial

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

Space Shooter. Projektrapport i kursen Avancerad C/C++ (DVA303) vid Mälardalens Högskola av Lars Lindqvist och Niklas Nolte

Använd mindre plast för havens och hälsans skull

SVENSKARNA OCH IOT INTERNET OF THINGS HISS ELLER DISS FRÅN SVENSKARNA?

Roger Greenaway in action!

INNEBANDYSPELAREN ÖVNINGAR

Programmering är för alla en värderingsövning

Programmering, dans och loopar

Mentalbeskrivelse (MH) Damisi s A-kull 17 og 18.oktober 2009 Sävsjø brukshundklubb

Stina Nyman

Laser Maze Art nr: TF1004

3 augusti (G) Programmering: Lego

Handbok Rymdduell. Andreas Zehender Eugene Trounev Översättare: Stefan Asserhäll

Tema: Sakernas internet Teknikspanarna

Dollar Street Beta Version 1.0 Manual

Gameplay. Föreläsning 6. Logiska, inferens och latterala. Olika typer av utmaningar

Tree house. m i e. r du

Leda förändring stavas psykologi

Innehållsförteckning Rudolf sida 1 Welcome to New York sida 2 Mystiska tjejen sida 3 Rymlingen Rebecka sida 4 Passet sida 5 Fångad sida 6

Kravspecifikation. TDP005 Projekt: objektorienterade system. Version 4.0 Datum Anna Ahlberg Johan Almberg

LEKTIONSTIPS. Lektionstips 2:4. Skribenten vill antingen uttrycka en åsikt för att få andra att reagera, eller

Viktigt om informationssökning

getsmart Grå Regler för:

ENKEL Programmering 3

Post-apokalyptisk film Första utkast. Gabriel de Bourg. Baserad på en idé av Niklas Aldén

Tentamen: Programutveckling ht 2015

Vi har pratat om alla bubblorna, och labbat i de flesta... utom en.

Framtidens vårdinformationsstöd FVIS 12 OKTOBER 2017

Programmera ett kärnkraftverk

Små barns matematik, språk och tänkande går hand i hand. Görel Sterner Eskilstuna 2008

Att hitta projekt. Björn Victor. måndag 19 mars 12

Shakey s värld med HTNplanering

Kognitionsvetenskapliga Programmet LiU. AI i spelet Magicka. Gruppbeteende/Grupprörelser. Jonathan Nilsson

Genetiska algoritmer. Henrik Hansson Rapport, CDT212 Mälardalens Högskola

Föreläsning 7 Mentala modeller, metaforer och emotionell interaktion. Kapitel 5 (3) i Rogers et al.

Övningar. Utespelare

Världen. Sida 1 av 8. Detta är en del av SvD:s digitala urval för dig som är. prenumerant.

Datavåldets etiska aspekter. AXEL LUND DVA223 Information kunskap vetenskap - etik Mälardalens högskola - IDT

Alexandra Lind Labanskolan

IT-huset ENERGI OCH IT

Transkript:

Artificiell Intelligens inom datorspel Är det ett seriöst ämne? Tobias Andersson, tan10006@student.mdh.se Erik Johnasson, ejn11015@student.mdh.se Information kunskap vetenskap etik DVA223

SAMMANFATTNING Häri kommer ämnet artificiell intelligens inom datorspel att diskuteras med hjälp av frågan hur seriöst är egentligen ämnet AI inom datorspel?. Det börjas med en liten förklaring om vad artificiell intelligens(ai) egentligen är och hur det kan användas inom samhället för att göra det lättare för läsaren att förstå sig på rapporten. Detta följs av en historik med olika datorspel genom tiderna som har använt sig av AI och en liten förklaring om hur dessa spel använde sig av den AI de har, samt en lite djupare titt på klassikern Pac- Mans AI. Huvuddelen av rapporten börja med att förklara varför AI inom datorspel inte endast är där för nöjets skull, hur det passar in inom akademiska områden. Det finns även en kort beskrivning av hur ett antal olika sorters algoritmer och typer av metoder fungerar som används till AI inom spel, där det även förklaras vad dessa används till. Som slutdel av rapporten spekulerar rapportens författare om framtiden inom AI till datorspel, med lite extra information utifrån, som sedan följs av författarnas slutsatser ifrån denna rapport.

INNEHÅLLSFÖRTECKNING Artificiell Intelligens inom datorspel Är det ett seriöst ämne?... 1 SAMMANFATTNING... 2 INNEHÅLLSFÖRTECKNING... 3 INLEDNING... 4 Vetenskaplig metod... 4 Källkritik... 4 Artificiell intelligens inom datorspel... 4 AI inom spel genom tiden... 4 1979 Pac- Man... 5 1987 Metal Gear, 1990 Metal Gear 2... 7 1991 Civilization... 7 1992 Mortal Kombat... 7 1994 X- COM: UFO Defense... 7 1997 Age of Empires... 8 2001 Black and White... 8 2004 Hitman: Contracts... 8 2008 Left 4 Dead... 8 2011 Crysis 2... 8 2013 Last of us... 8 Användning av spel till forskning... 8 Olika AI metoder... 9 Pathfinding... 9 Behavior trees... 9 State Machine... 10 Planning... 10 Learning... 10 Social intelligence... 11 Framtiden för AI inom spel... 11 SLUTSATSER... 11 REFERENSER... 12

INLEDNING För att kunna förstå sig på vad denna rapport går ut på bör man först förstå vad artificiell intelligens är. Zhongzhi Shi förklarar i [Shi11] att artificiell intelligens oftast definieras som vetenskapen och ingenjörs skap att imitera, förlänga och augmentera mänsklig intelligens med artificiella sätt och tekniker för att skapa intelligenta maskiner. Detta betyder att artificiell intelligens är i huvuddel skapad för att hjälpa människor med olika sorters problem som skulle ta för lång tid för en vanlig människa att ta hand om. Shi berättar i boken att artificiell intelligens är där precis som den industriella revolutionen var där för att ta bort tungt fysiskt arbete, men istället för fysiskt arbete hjälper den med mentalt arbete. Utvecklingen av matematik, logik och automatateori är några av de saker som lade grunden för utvecklingen av artificiell intelligens, förklarar Shi. Under åren som artificiell intelligens har använts har självklart algoritmerna och möjligheten med den ökat, vilket betyder att mer och mer mentalt arbete kan flyttas över till maskiner istället för människor. Genom detta, med mer möjligheter inom den artificiella intelligensen, blir det även mer möjligheter inom spel som använder sig av artificiell intelligens för att ge spelarna en utmaning. Vetenskaplig metod Detta kan anses vara en populärvetenskaplig rapport då den håller sig till vetenskap men är riktad mot den bredare allmänheten. Tillvägagångssättet har varit litteraturstudier och en hel del internetstudier. Anledning till att dessa metoder blev valda var på grund av ämnets storlek och den stora tillgången till AI inom datorspel på internet. Just i denna rapport har det dykt upp en hel del oförutsedda delar som det skulle kunna forskas mycket djupare i, men med tanke på vår frågeställning, är AI inom datorspel ett seriöst forskningsämne, räcker det med en översikt på dessa oförutsedda delar. Källkritik [GHOST]- Denna rapport skriven av Jamie Pittman där han bryter ner mekaniken bakom Pacman och dess AI för spökena. [AIGames]- Denna artikel är över tio år gammal, vilket betyder att stora delar inte har någon betydelse just nu. Dock tar han upp några punkter som inte bör ha någon stor relevans om det är ifrån detta år eller tio år tillbaka, som att datorspel är en objektiv plats att testa AI på enligt den AI de skapade. Artificiell intelligens inom datorspel AI inom spel genom tiden

För att ge några bra exempel på AI inom spel kan det vara bra att börja vid ett tidigt skede och arbeta oss till dagens AI inom spel. (notera att dessa exempel inte nödvändigtvis reflektera omgivningens syn på den bästa AI under den tiden utan är endast exempel på typer av AI.) 1979 Pac-Man Ett av de första spel som använder sig av något som börjar likna AI är Pac- Man, där fienderna ser ut som om de samarbetar för att få tag på spelaren. I boken [AIG09] förklarar författaren att det antagligen är det första spel där en något ordentlig AI användes. Han berättar att de fyra spöken, som är fienderna, använder sig av en State Machine. Denna State Machine kunde bestämma om fienderna jagar spelaren eller inte. Sedan har dessa spöken olika beteendet i hur de tar sig mot Pac- Man, för att få det att se ut som om de samarbetar ordentligt. Blinky Blinky är det röda spöket och har ett väldigt enkelt beteende. Den siktar på den ruta som spelaren, Pac- Man, befinner sig på vilket gör att Blinky förföljer Pac- man. Pinky Fig. 1 Blinky och hur Blinkys AI fungerar. Pinky (rosa spöket) använder sig av Pac- Mans position och riktning för att placera sin mål ruta fyra rutor framför. Detta fungerar om Pac- Man är riktad till vänster, neråt och till höger. Men uppåt genererar koden fel och Pinkys mål ruta placeras fyra rutor uppåt och fyra till vänster. [Ghost]

Fig. 2 Pinky och hur Pinkys AI fungerar. Inky Inky (blåa spöket) är lite annorlunda. Han är det ända som använder sig av andra faktorer än spelaren. Inky använder sig av Blinkys (det röda spöket) position och drar en vektor från dess position till en ruta två rutor framför Pac- Man, sedan fördubblas denna vektor och där den pekar är nu Inkys mål ruta. Fig. 3 Inky och hur spökets AI fungerar. Detta genererar i ett litet konstigt beteende när Blinky inte är i närheten av Pac- Man men när Blinky kommer ikapp kan du räkna med att Inky inte är långt ifrån. [Ghost]

Clyde Clyde (orangea spöket) ger intrycket av att han har sin egen stil och bryr sig inte om Pac- Man. Om Pac- Man är längre än åtta rutor ifrån använder Clyde samma taktik som Blinky, dvs. att Clydes mål ruta blir Pac- Mans position. Om Pac- Mans position är mindre än åtta rutor bort kommer Clyde att markera sin mål ruta till nedre vänster hörn. [Ghost] Fig. 4 Clyde och hur spökets AI fungerar. 1987 Metal Gear, 1990 Metal Gear 2 En grundläggande start på fiendens artificial intelligence, med primitiva patrullmönster. Metal Gear introducerade också ordentliga reaktioner från fienden som reagerade på spelaren. I Metal Gear 2 blev det möjligt för fienden att b.la höra misstänksamma ljud vilket byggde till en alltmer realistisk AI. 1991 Civilization Civilization var det första spelet då datorn kunde dynamiskt ändra mellan passiv och fientlig. Med strid- och förhandlingskunskaper som lika viktiga delar inom spel mekaniken. 1992 Mortal Kombat Mortal Kombat ett av dom tidigaste fighting spelen med AI när den är som bäst. AI motståndaren kunde effektivt blockera och reagera till dina rörelser vilket genererade en ny utmaning inom fighting genre. 1994 X-COM: UFO Defense Ett klassiskt RTS (Real Time Strategy) spel där AIn hade otroliga strategiska kunskaper som revolutionerade RTS genren.

1997 Age of Empires Tidiga RTS spel gjorde att AIn kunde fuska till sig pengar och gratis resurser för att utmana spelaren på ett bra sätt. Age of Empires var det första spelet dom tog bort denna strategi och ersatte den med en generellt smart taktik istället. Det var inte alltid effektiv men det var en början. 2001 Black and White AIn i detta spel varierade allt från hur du tränar upp ditt djur till hur stadsinvånarnas reaktioner skulle vara, vilket var baserat på om du gjorde goda gärningar eller onda gärningar. Det var ett stort steg framåt för AI inom spel. 2004 Hitman: Contracts Hitman har alltid tvingat dig att vara väldigt försiktig på grund av en realistisk AI. Denna AI kollar efter abnormalt beteende som vapen i handen, om du springer där du inte borde springa eller vill gå in i en dörr du inte borde vara utan rätta klädseln. 2008 Left 4 Dead Left 4 Dead hade inte den bästa fiende intelligensen men det var en AI som byggde på att göra varje möte med fienden så spännande som möjligt för att alltid hålla dig på tårna. Det AIn tog hand om var t.ex. omgivningens händelser som ljud och rörelser. 2011 Crysis 2 Crysis 2 har en fiende AI som tillåter dem att undvika dina skott, ducka och ta skydd när det behövs men också samarbeta med varandra för att t.ex. flankera dig på sidorna. 2013 Last of us Last of us fokuserade på en AI- buddy som ska hjälpa dig i ditt äventyr på bästa sätt. Detta genererade i en AI som t.ex. hjälper dig att flankera fienden på ett effektivt sätt. Med hjälp av dessa exempel blir det möjligt att se hur den AI som används inom spel har blivit mer komplicerad under åren, vilket betyder att AI inom spel fortfarande utvecklas. Vad kan man då göra för att forska inom AI? Användning av spel till forskning De flesta ser nog på allt inom datorspel som rent nöje, där det inte finns någon plats för någon seriös forskning. Men när det kommer till artificiell intelligens har faktiskt spel en användning. De förklarar i artikeln [RTSL] att real time strategy spel används för att testa de senaste fynden inom artificiell intelligens. Ett sådant spel brukar oftast gå ut på att spelaren

möter andra spelare eller en datorstyrd spelare, där artificiell intelligens är vad som styr allt som har med fiender att göra, vilket betyder att intelligensen hos det datorstyrda laget måste hållas på en nivå som kan ha en chans mot människor. John E. Laird förklarar i artikeln [AIGames] hur de använde sig av datorspelet Quake II för att skapa en artificiell intelligens som är smart nog för att kunna ha en chans mot en spelares intelligens, och inte endast deras reaktionsförmåga. Han förklarar även att AI inom datorspel undviker den kritik som riktas mot forskning inom simuleringar, eftersom en simulering oftast använder sig av en förbestämd sorts värld där det redan är bestämt vilka delar av simuleringen som blir lätt att göra och vilka som blir svåra. Alltså är spel en bra plats för test att se hur väl det går att simulera en människas beteende med artificiell intelligens, vilket betyder att spel inte endast är bra för nöje. Olika AI metoder Pathfinding Pathfinding är som det låter. Den tillåter AIn att finna bästa möjliga väg från A till B. Några exempel på pathfinding är: Dijkstras algoritm Denna algoritm startar med en nod och en mängd av öppna noder. När agenten har besökt en ruta i sin grid stängs den ruta som agenten var på och öppnar upp de rutor som är runtomkring och väljer sedan den ruta som anses ha den kortaste distansen från vart du står. Agenten fortsätter på detta sätt för att hitta den kortaste vägen till målet. A* Algoritm A* (uttalas A star) är en variant av Dijkstras algoritm och används väldigt ofta inom spel. Tillskillnad från Dijkstras algoritm använder A* sig av en så kallad tyngd till varje öppen nod på banan vilket betyder att varje nod har en egen uträkning på hur långt ifrån noden är från mål. A* tar alltid ut den kortaste vägen till målet, som Dijkstras algoritm, och algoritmen var uppfunnen av Raphael Nilsson år 1968 och forskare har sedan dess visat stort intresse i att analysera och förbättra algoritmen. [AAofAI09] D* Algoritm D* (uttalas D star) är en algoritm främst för robotar men används också för spel. Fungerar på ungefärligt samma sätt som A* men till en början antar D* att det är ett tomt fält och att det inte finns något hinder. Utifrån detta sätter D* ut en riktning för den kortaste vägen till mål (baserat på en bana utan hinder) och när datorn observerar den nya informationen om hinder och annat lägger man till den informationen och räknar ut en ny väg. Behavior trees

Behaivor trees är ett sätt att modellera olika beslut som kan tas genom andra beslut. T.ex. om du vill att din karaktär skall gå in i "combat" som visas i Fig. 5 då behöver den först ta beslut om vilken typ av combat innan AIn kan ta "action". Behvior tree är alltså en serie tillstånd som din AI är tillåten att vara i eller ta ställning till. State Machine Fig. 5 Exempel på ett behavior tree. En state machine är likt ett behavior tree som förklaras ovan. De kan användas för att bestämma vad för sorts beteende en AI skall använda sig av vid olika tillfällen. Ett exempel vore Pac- Man spelet. Om Pac- Man har ätit det föremål som gör att de spöken som jagar honom blir blå, då ändras den state machine som fienderna använder sig av så att den säger till dem att fly istället för att jaga. Planning Inom planning får AIn en beskrivning av hur världen i spelet ser ut och vad som förväntas av den för att slutföra och hamna i mål. Planning problemet handlar om att hitta en plan som garanterar en sekvens av händelser som kommer att leda till mål. Detta ämne är en av de stora delarna inom AI där det utförs en hel del forskning. Learning En learning machine är en branch av AI som används för att lära sig saker i ett system. T.ex. kan du träna upp AIn till att fördela vad som är skräppost och inte på en mailklient.

Social intelligence AI handlar om att få personen i fråga att känna att man inte spelar ett spel mot en dator utan försöker att få det så likt människan som möjligt. Därför kommer Social intelligence in, ta Siri från iphone som exempel. Ställer du samma fråga igen och igen till Siri får du olika svar. Ställer du samma fråga igen och igen till en vanlig dator får du alltid samma svar. Detta skulle kunna användas för att få NPC i spel att bli mer mänskliga. Framtiden för AI inom spel Vad kan förväntas av AI idag och vad kan vi förvänta oss imorgon? Inom spel (som styr i stort sätt all efterforskning inom datorer) är vi väldigt fokuserade på grafiken. Det ska vara den bästa grafiken i det senaste spelet. Som det står i artikeln, när grafiken har planat ut och vi har fått ut så mycket vi kan från grafiken kommer mer fokus och resurser läggas på att få den bästa AI som möjligt. [AIGames] Vad kan då göras? NPC (non- player character) kan förbättras väldigt mycket. T.ex. skulle en NPC kunna reagera på hur många gånger den har pratat med dig eller reagera på vad du har på dig. En NPC kanske inte gillar blåa sköldar och kommer därför att ha en dålig attityd mot dig. NPC skulle också kunna ändra uppdragen för varje omgång du har spelat igenom spelet vilket skulle höja värdet på en om spelning radikalt. Learning Machines kommer också att vara en stor faktor i framtiden inom AI. Tänk en agent som lär sig dina rörelser mer och mer och det blir svårare och svårare! Det går inte att säga emot när man säger att datorerna får mer och mer kraft, vilket betyder att även om det skulle bli så att grafiken fortsätter att vara i centrum inom de flesta spelen kommer det bli möjligt att göra mer med allt. Detta leder till att dessa möjligheter som tidigare har diskuterats blir mer möjliga med denna nya kraft i datorerna. Alltså kan mer information sparas och mer komplicerade algoritmer kan användas, vilket leder till att AI bör förbättras i framtiden. SLUTSATSER Vi kom fram till att AI inom datorspel inte bara används för nöjes skull utan kan också appliceras i seriös forskning som skrivet om tidigare. När man ska dra paralleller mellan dagens forskning och datorspel behöver man bara kolla åt fysikens håll. Tack vare spel och de stora kraven av spelare skall fysiken i spel, som gravitation och verkliga kollisioner, vara så verklig som möjligt. Detta tillåter alla andra industrier att ta hjälp av spelmotorer för att simulera t.ex. kranar och hur dessa står emot utomstående krafter. Vi tror att evolutionen inom spel har gått som följer: Vi börjar med ett simpelt spel och försöker öka grafiken tills dess att vi inte kan öka den mer, efter det gör vi allt så fysiskt rätt som möjligt enligt den verkliga världen och snart kommer alla resurser att läggas på att göra AI så bra som möjligt. För att svara på vår egen frågeställning, är AI inom datorspel ett

seriöst forskningsämne, vill vi säga, ABSOLUT! Det är genom efterfrågan av alla datorspel som kommer att leda till de resurser som krävs för att utveckla AI och när detta sker kommer resten av industrin kunna åka på denna våg precis som den åker på fysik vågen eller grafik vågen. REFERENSER [Shi11] Zhongzhi Shi, Advanced Artificial Intelligence, Vol. 1, page 1-5, 2011 [RTSL] 2014-03- 07 http://eds.a.ebscohost.com/eds/detail?vid=21&sid=b588f24b- 26bd- 49a4- a2f4-47745ccee10b%40sessionmgr4005&hid=4213&bdata=jnnpdgu9zwrzlwxpdmu%3d#db=e dsarx&an=1401.5424 [AIGames] John E. Laird, Using a Computer Game to Develop Advanced AI, 2001 [GHOST] 2014-03- 07 http://home.comcast.net/~jpittman2/pacman/pacmandossier.html [AIG09] Ian Millington, John Funge, Artificial Intelligence for Games, Vol. 2, page 4-8, 2009, [AAofAI09] Enn Tyugu, Algorithms and Architectures of Artificial Intelligence, Vol. 1, pages 60-62, 2009