– Algoritmen är utvecklad för så kallade multiagentsystem, ett system som utgörs av olika agenter eller enheter. Agenterna kan vara människor eller robotar, och det ingår inga antaganden om agenterna arbetar med eller mot varandra, eller om det är blandande grupper av människor och robotar, beskriver Fredrik Präntare.
Det algoritmen gör är en koordinering av enheterna och en optimering av resursanvändningen, för att effektivast lösa en uppgift. En uppgift kan till exempel vara att ta hand om patienter på ett sjukhus. Läkarna och sjuksköterskorna är agenterna som kan utföra olika arbetsuppgifter, och problemet som ska lösas är hur arbetslagen ska sättas ihop för att patienterna ska få bäst och effektivast vård.
I sitt examensarbete, under utbildningen till civilingenjör i datateknik, har Fredrik Präntare applicerat algoritmen på strategispel. I spelet ska personen som spelar styra runt sina arméer på en karta med syftet att utmanövrera fienden. Den nyutvecklade algoritmen ställdes mot spelets nuvarande optimeringslösningar, och Fredrik Präntare lät också en artificiell intelligens spela spelet och koordinera sina arméer med hjälp av algoritmen i realtid.
– I realtidsstrategispel tas beslut hela tiden, du kan inte vänta med att ta ett beslut i ett spel som pågår eller i en process som är igång. Det för med sig att algoritmen också går att applicera på verkliga problem och inte bara fungerar i en teoretisk miljö, säger Fredrik Präntare.
Testar algoritmen på de svåraste problemen
Ett annat sätt att ta reda på hur bra en algoritm är, är att testa den mot syntetiska testdata. För liknande problem som optimeringsproblemet inom AI finns teoretiska problem som är väldigt komplexa och har flera olika lösningar.– Om du på ditt sjukhus har en läkare som är specialist på cancer, då vet du att du antagligen ska placera den läkaren i arbetslaget som ska ta hand om cancerpatienter. Det är en förenkling av problemet. Idén med syntetiska testdata är att de inte ska innehålla några sådana förenklingar, så att problemet blir så svårt som möjligt för algoritmen att lösa, säger Fredrik Präntare.
I jämförelse med flera andra algoritmer är Fredrik Präntares algoritm i dag den mest effektiva för att lösa optimeringsproblemet. Nästa steg i utvecklingen är att använda maskininlärning för att kunna ta fram lösningar på problem som är för komplexa för dagens algoritmer. Ett problem med tio uppgifter och 1000 agenter ger tio upphöjt i tusen möjliga lösningar, vilket ingen algoritm i dag kan lösa inom rimlig tid.
– Vi vill också fortsätta titta på hur algoritmen kan tillämpas på verkliga frågeställningar; en specialistsjuksköterska kan till exempel vara en del av två arbetslag samtidigt genom att jobba i ett och handleda ett annat. Att lägga till sådana beskrivningar i problemen som ska lösas skulle utöka användningsområdet för algoritmen och vara intressant att titta närmare på, säger Fredrik Präntare.