Az 1990-es évek elején nagy érdeklődést mutattak az egyidejű folyamatok modellezésének és szimulálásának matematikai megközelítése iránt. Ez a megközelítés alkalmazható a párhuzamos és elosztott programok pontossága elemzésére. A szentpétervári Technikai Egyetem Elosztott Számítógépes Hálózat (Distributed Computer Network, DCN) kutatócsoportja kifejlesztett egy ilyen jellegű szoftvert, ami a programok pontosságát elemezi; ez az új eszköz a COVERS (Concurrent Verification and Simulation) nevet kapta. Ez a rendszer engedélyezte a rendszer struktúrájának és viselkedésmódjának grafikai modelljelölését. Ezt az eszközt a Hewlett Packard részére folytatott kutatásokhoz vetették be.
1998-ban e kutatások sikere arra indította a DCN laboratóriumot, hogy alapítson egy vállalatot egy újkorú szimuláció-szoftver kifejlesztésére. Különös súlyt helyeztek az alkalmazott módszerek kifejlesztésére: szimuláció, teljesítményelemzés, szabálytalan rendszerek viselkedése, optimalizálás és vizualizálás. Az új, 2000-ben kiadott szoftver az informatika legújabb előnyeire alapult: objektumorientált megközelítés, alapvető UML elemek, modern Java programozási nyelv, modern GUI stb.
A vállalatszimuláció három megközelítése
Az eszközt AnyLogic-nak nevezték, mivel mindhárom ismert modellezési megközelítés alkalmazását támogatja:
+ e három modell bármely kombinációja egyetlen modellen belül.[2] Az AnyLogic első verziója az AnyLogic 4, mivel a számozás a COVERS 3.0-tól folytatódott.
2003-ban nagy előrelépés történt, az AnyLogic 5 szabadalmaztatására került sor. Fő célja a vállalatszimuláció volt, a következő területeken:
AnyLogic tartalmaz egy grafikai modellezési nyelvet, és lehetőséget kínál a felhasználó számára a szimulációs modellek Java kóddal való kiegészítésére. Az AnyLogic Java tulajdonsága lehetővé teszi a modellek sajátos kiegészítését java kóddal, valamint Java appletek szerkesztését, melyeket bármely szokványos böngészővel meg lehet nyitni. Ezeknek az appleteknek köszönhetően az AnyLogic modellek nagyon könnyen megoszthatók vagy weboldalra helyezhetők. A Java appleteken kívül, a Professional verzió lehetővé teszi a Java runtime alkalmazások alkotását, melyek kioszthatók a felhasználók részére. Ez az egyéni Java alkalmazás alapként szolgálhat a döntéshozatalt támogató eszköz számára.[17]
Hogyan felelnek meg a szimulációs megközelítések az elvonatkoztatási szintnek
Az AnyLogic modellek bármely fő szimulációs modellezési mintára alapozhatóak: diszkrét esemény vagy folyamatközpontú (DE), rendszerdinamikai (SD), és ágens-alapú (AB).
A rendszerdinamikai és a diszkrét esemény szimuláció hagyományos megközelítés, a ágens-alapú viszont új. Technikailag, a rendszerdinamikai megközelítés rendszerint folyamatos eljárásokkal foglalkozik, amíg a diszkrét esemény (ami alatt minden GPSS leszármazott, más néven folyamatközpontú szimulációs megközelítés érthető), és az ágens-alapú modellek főleg diszkrét időben működnek, pl. egy eseményről a másikra váltanak.
A rendszerdinamikai és a diszkrét esemény szimulációt történelmileg egyetemeken tanították teljesen eltérő egyetemistacsoportoknak, mégpedig menedzsment és közgazdaság, ipari és operációkutatási mérnököknek. Ebből kifolyólag két különböző szakmai közösség létezik, mely soha sem kommunikál egymással.
Közel a mai napig, az ágens-alapú modellezés majdnem kizárólag egyetemi tantárgynak számított. Viszont, a folyamatosan növekvő igény a vállalatok globális optimalizálására, arra késztette a modellezőket, hogy megfontolják a megközelítésmódok egyesítését, annak érdekében, hogy mélyebb betekintést nyerjenek azokba az összetett interdependens folyamatokba, melyek igen eltérő tulajdonságokkal rendelkeznek.
Hogyan felelnek meg a szimulációs megközelítések az elvonatkoztatási szintnek? Mivel a rendszerdinamika aggregátumokkal foglalkozik, nyilvánvalóan a legmagasabb elvonatkoztatási szinten van alkalmazva. A diszkrét esemény modellezés alacsony, egész közepes elvonatkoztatással van alkalmazva. Ami az ágens-alapú modellezést illeti, ez a technológia minden elvonatkoztatási szinten alkalmazható, az ágensek igen sokféle természetű és skálájú objektumokat modellezhetnek: „fizikai” szinten az ágensek lehetnek például gyalogosok, gépkocsik vagy robotok, közepes szinten – ügyfelek, legmagasabb szinten – versenyben lévő vállalatok.[18]
Az AnyLogic lehetővé teszi a modellezőnek ezeknek a szimulációs megközelítési módoknak ugyan azon modellen belüli egyesítését. Nincs egy megadott rangsor. Készíthetünk például egy modellt a csomagszállító iparról, ahol a szállítók ágensekként vannak modellezve, melyek függetlenül egymástól cselekednek és reagálnak, amíg a szállítási és infrastruktúra hálózatuk belső működése diszkrét esemény szimuláció által modellezhető. Hasonlóan lehet felhasználókat ágensekként modellezni, melyeknek aggregátum természete egy rendszerdinamikai modellt lát el, olyan folyamatokat összeállítva, mint bevételek vagy kiadások, melyeket nem kell feltétlenül egy egyedülálló tényezőhöz kötni. Ez a vegyes nyelvi megközelítés közvetlenül alkalmazható széles körű összetett modellezési feladatok esetében, melyek bármelyik egyetlen megközelítési módszert alkalmazva modellezhetőek, kompromisszumoktól eltekintve.
Az AnyLogic által szolgáltatott szimulálási nyelvszerkezetek
Az AnyLogic szimulálási nyelv a következő elemekből áll:[19]
A készlet és áramlás diagramokat rendszerdinamikai modellezéshez alkalmazzák.
Az állapotdiagramokat alapvetően ágens-alapú modellezésnél alkalmazzák a tényezők viselkedésének ábrázolása érdekében. Gyakran alkalmazzák diszkrét esemény modellezésnél is, pl. géphiba szimulálásához.
Folyamatábrákat az algoritmusok ábrázolásához alkalmazzák. Alkalmazhatóak diszkrét esemény modellezésnél is, pl. hívásirányításhoz, vagy ágens-alapú modellezésnél, mint pl. a tényező döntési logika esetében.
A termelési folyamatábrák az alapvető szerkezetek a folyamatok diszkrét esemény modellezéshez. Ha megtekintjük a folyamatábrát, látható miért tekintik a diszkrét esemény modelleket folyamat orientált modelleknek.
Ez a szimulálási környezet szintén tartalmaz: alacsony szintű modellezési szerkezeteket (változókat, egyenleteket, paramétereket, eseményeket), ábrázolási formákat (vonalak, vonalláncok, ellipszisek, stb.) analíziseszközöket (adatállományok, hisztogramok, raszterek és grafikonok), kapcsolati eszközöket, mintaképeket és kísérleti vázakat.
Az AnyLogic a következő alapkönyvtárakat tartalmazza:[19]
Az Process Modeling könyvtár a DE szimuláció termelés, ellátási lánc, logisztika és egészségügy területén való alkalmazásához ajánlott. Az Process Modeling könyvtár objektumait felhasználva, modellezhetőek tényleges rendszerek, entitások értelmében (ügyletek, ügyfelek, gyártmányok, részek, járművek, stb.), folyamatok (művelet sorozatok melyek természetesen sorrendeket, késleltetéseket, készletfelhasználásokat feltételeznek) és készletek. A folyamatok diagramok, folyamatábrák segítségével vannak ábrázolva.
A Pedestrian könyvtár ajánlott a járókelő áramlatok „fizikai” környezetben való szimulálásához. Lehetővé teszi a forgalmas épületek (például metró állomások, ellenőrzési pontok, stb.) vagy utcák (számos járókelő) modellezését. A modellek statisztikai információt nyújtanak a járókelők sűrűségéről különböző területeken. Ez biztosítja az elméleti teherrel bíró szolgáltatási pontok elfogadható teljesítményét, felbecsüli az időzéstartamokat bizonyos pontokban, valamint felismeri a lehetséges belső geometriai problémákat – mint a túl sok akadály hatását – és egyéb felhasználást biztosít. A Pedestrian könyvtárral készített modellek folyamatosan haladnak az útvonalukon, reagálva a különböző akadályokra (falak, egyéb területek), valamint a többi járókelőre. A járókelők összetett viselkedéssel rendelkező, kölcsönhatásban lévő ágensekként vannak szimulálva, viszont az AnyLogic Pedestrian könyvtár magas szintű interfészt nyújt a járókelő modellek gyors létrehozásához folyamatábrák segítségével.
A Rail Yard könyvtár modellezésben, szimulálásban és bármilyen komplexitású és léptékű vasúti operációk szemléltetésében nyújt segítséget. A rail yard modell kombinálható az diszkrét esemény vagy ágens-alapú modellekkel is, melyek összefüggésben állnak a fel- és lerakodással, az áruellátással, a karbantartással, az üzleti folyamatokkal vagy más szállítási tevékenységgel.
Az alapkönyvtárakon kívül, a felhasználó alkothat és osztályozhat saját könyvtárakat is.