AnyLogic

**AnyLogic** – įmonės „The AnyLogic Company“ (buv. „XJ Technologies“) sukurta kompiuterinio modeliavimo programinė įranga. Ji palaiko agentų, diskrečių įvykių ir sistemų dinamikos metodus. AnyLogic PLE (personal learning edition) nemokama mokomoji versija skirta savarankiškam mokymuisi.

## AnyLogic istorija
90-aisiais metais, atsiradus plačiau prieinamai kompiuterinei technikai, kilo nemažas susidomėjimas matematiniais metodais, kuriais būtų galima modeliuoti ir imituoti [imitacija] lygiagrečius procesus. Šie metodai gali būti taikomi paskirstytuosius bei lygiagrečius skaičiavimus atliekančių programų analizei bei gautų rezultatų tikrinimui. Paskirstytųjų kompiuterinių tinklų tyrimų grupė (*The Distributed Computer Network Group, DCN*) Sankt Peterburgo technikos universitete sukūrė tokią programinę įrangą; šis įrankis buvo pavadintas COVERS (*Concurrent Verification and Simulation*). Juo buvo galima grafiškai modeliuoti tiriamos sistemos struktūrą ir analizuoti jos elgseną. COVERS buvo taikoma mokslinių tyrimų darbams, finansuotiems „Hewlett Packard“.

1998 metais darbų sėkmė paskatino DCN sukurti įmonę, kuri toliau vystytų šią naujos kartos programinę įrangą. Pagrindinis dėmesys buvo skiriamas taikomiems metodams: modeliavimui, programos darbo analizei, stochastinių sistemų elgesiui, optimizavimui ir vizualizavimui. Nauja programinė įranga, išleista 2000 metais, rėmėsi naujausiais informacinių technologijų pasiekimais: objektiniu programavimu, UML (*Unified Modelling Language*) standartu, Java programavimo kalba, modernia vartotojo sąsaja ir kt.
 

Ši programinė įranga buvo pavadinta AnyLogic, nes ji rėmėsi trimis pagrindiniais modeliavimo metodais:
* Sistemų dinamikos
* Diskrečių (pavienių) įvykių modeliavimu
* Agentų modeliavimu.
Taip pat gali būti naudojama ir bet kokia šių trijų metodų kombinacija tame pačiame modelyje.
Pirmoji AnyLogic versija buvo AnyLogic 4, nes buvo skaičiuojama nuo COVERS 3.0.

AnyLogic 5 buvo išleista 2003 metais. Joje buvo papildomi įrankiai šių sričių verslo procesų modeliavimui:
* Marketingo valdymas|Rinkos ir konkurencija
* Sveikatos apsauga
* Gamyba
* Tiekimo grandinės
* Logistika,
* Mažmeninė prekyba
* Verslo procesai
* Socialinių ir Ekosistemų dinamika
* Gynyba
* Projektų valdymas
* Informacinių technologijų valdymas|ICT infrastruktūra
* Evakuacijos procesų modeliavimas|Pėsčiųjų judėjimo ir eismo modeliavimas
* Aerokosminė pramonė
* Fotoelektra 
* E-mokymasis | Edukacinė aplinka internete

AnyLogic 7 buvo išleista 2014. Ji pagrįsta integruota programavimo aplinka Eclipse. AnyLogic 7 yra multiplatforminė modeliavimo programinė įranga, ir gali veikti Windows, Mac OS ir Linux aplinkose.
Tai buvo didžiausias programos atnaujinimas per 7 metus, kuriame buvo daug reikšmingų patobulinimų, siekiant supaprastinti modelių kūrimą, įskaitant interaktyvią pagalbą multimetodiniam modeliavimui, atnaujintas bibliotekas, supaprastintą naudojimą. AnyLogic 7.1, taip pat išleista 2014 metais, jau turėjo integruotą GIS įgyvendinimą: į ją buvo galima įtraukti planus ir žemėlapius, įskaitant ir teikiamus nemokamų paslaugų teikėjų, kaip OpenStreetMap.
2015 metais išleista AnyLogiс 7.2 su integruota Skysčių biblioteka.
Nemokama mokomoji versija (free Personal Learning Edition (PLE)) taip pat išleista 2015 metais.

Nauja eismo srauto biblioteka išleista su AnyLogic 7.3 versija 2016 metais.

AnyLogic 7 kūrimui naudojama Eclipse programavimo aplinka. AnyLogic yra multiplatforminė programinė įranga, ir veikia Windows, Mac OS ir Linux operacinėse sistemose.

## AnyLogic ir Java
AnyLogic turi grafinę programavimo sąsają, kuri taip pat leidžia papildomai į kompiuterinio modelio elementus įterpti Java programos kodus. Java kalbos panaudojimas kuriant modelius leidžia juos eksportuoti į vadinamuosius Java apletus, kuriuos galima atidaryti tiesiogiai interneto naršyklėje – taip modelius galima siųsti kitiems vartotojams, nepriklausomai nuo to, kokias operacines sistemas jie naudoja. Profesionali versija leidžia kurti ir nepriklausomas Java programas (Java runtime applications).

## Daugiametodinis kompiuterinis modeliavimas

AnyLogic leidžia tame pačiame modelyje naudoti bet kuriuos modeliavimo būdus: Sistemų dinamikos, Diskrečių įvykių, Agentų.
  
Sistemų dinamika ir diskrečių įvykių modeliavimas yra tradiciniai modeliavimo metodai, agentų modeliai yra pakankamai nauja kompiuterinio modeliavimo sritis. Sistemų dinamikoje paprastai laikoma, kad laikas eina tolygiai ir nagrinėjami nuolatiniai procesai, diskrečių įvykių bei agentų modeliu atveju dažniausiai procesai „peršoka“ iš vienos būsenos į kitą, tai yra laikas gali kisti ir diskrečiai.

Sistemų dinamika ir diskrečių įvykių modeliavimas jau gana seniai dėstomi įvairių specialybių studentams, pavyzdžiui, valdymo, ekonomikos, techninių bei tiksliųjų mokslų, tačiau sistemų su agentais modeliavimas yra pakankamai nauja, vis labiau populiarėjanti modeliavimo bei mokslinių tyrimų sritis, leidžianti susieti skirtingus modeliavimo būdus ir detaliau nagrinėti sudėtingas sistemas, kuriose vyksta tarpusavyje susiję procesai, dažnai gana skirtingos kilmės.

Modeliavimo būdai priklauso nuo pasirenkamų abstrakcijos lygių. Sistemų dinamikoje paprastai abstrakcijos lygis būna didžiausias, diskrečių įvykių – nuo vidutinio iki mažo, o agentų modeliuose gali būti labai įvairus – nuo „žemo“ lygio agentų, pavyzdžiui, vairuotojų, pėsčiųjų, automobilių, konvejerio robotų, „vidutinio“ – namų ūkių, parduotuvės lankytojų, iki „aukšto“, pavyzdžiui, konkuruojančių įmonių.

AnyLogic leidžia naudotis visais trimis būdais tame pačiame modelyje. Pavyzdžiui, kuriant gamybos įmonės modelį, sunkvežimiai, išgabenantys produkciją, gali būti sumodeliuoti kaip nepriklausomi agentai, o pati gamyba vykdoma naudojant diskrečių įvykių modelį.
Arba gaminio vartotojai gali būti agentai, tačiau apibendrinta rinkos informacija, tokia kaip vartojimo pokyčiai, pardavimų pajamos, patenka į modelio, naudojančio sistemų dinamikos modeliavimo principus, dalį.

Toks mišrus modeliavimo metodas leidžia sukurti modelius, tiksliau aprašančius tiriamas sistemas, tuo metu kai atskirai naudojami modeliavimo būdai verčia priimti daug supaprastinimų ir kompromisų, turinčių neigiamą įtaką gaunamų rezultatų tikslumui.

## Modeliavimo kalba

AnyLogic kalboje naudojami tokie elementai: 
* **Atsargų ir srautų diagramos**, naudojamos sistemų dinamikos modeliuose.
* **Būsenų schemos**, naudojamos agentų elgesiui aprašyti, taip pat ir diskrečių įvykių modeliuose, pavyzdžiui, aprašyti įrangos gedimui.
* **Veiksmų diagramos**, naudojamos algoritmams sudaryti.
* **Procesų diagramos**, naudojamos procesams aprašyti diskrečių įvykių modeliuose.
Taip pat naudojami ir žemesnio lygio programavimo kalbos elementai: kintamieji, lygtys, parametrai, grafiniai elementai (linijos, polilinijos, paveiksliukai), analizės priemonės (duomenų komplektai, histogramos, grafikai) ir kt.

## AnyLogic bibliotekos
AnyLogic turi šias standartines bibliotekas:
* **Įmonės biblioteka (The Process Modeling Library)** skirta kurti gamybos, tiekimo, logistikos, sveikatos apsaugos ir kitokius modelius.
* **Pėsčiųjų biblioteka (The Pedestrian Library)** – įvairiems eismo modeliams kurti. Tai gali būti stočių, gatvių, sudėtingų sankryžų, kontrolės punktų, salių ir kitokie modeliai, kuriuos galima analizuoti keičiant apkrovas, geometrinius parametrus.
* **Geležinkelio biblioteka (The Rail Yard Library)** skirta įvairaus sudėtingumo ir dydžio geležinkelio eismo bei stočių darbo modeliavimui. Modeliuose gali būti naudojami ir diskrečių įvykių bei agentų elementai, pakrovimo/iškrovimo operacijos, resursų paskyrimas, įvairūs verslo procesai.
* **Skysčių biblioteka (The Fluid Library)** leidžia vartotojui modeliuoti skysčių, biriųjų krovinių, arba didelius kiekius diskrečių elementų, kuriuos nepageidautina modeliuoti kaip atskirus objektus, saugojimą ir transportavimą. Bibliotekoje yra naudojimui parengti elementai, kaip talpos, vamzdynai, ventiliai, taip pat elementai, skirti srautams nukreipti, išskirti ar sujungti. Siekiant pagerinti modelio vykdymo greitį, ši biblioteka naudoja tiesinį programinį lygčių sprendimo būdą. Biblioteka yra skirta pagerinti AnyLogic naudojimą gamybos, naftos, dujų ir kasybos pramonės įmonėse. Vartotojas gali imituoti naftos vamzdynus ir rezervuarus, rūdos, anglių konvejerius ir gamybos procesus, kuriuose naudojami skysčiai ar birios medžiagos, pavyzdžiui, betono gamyboje.
* **Eismo srautų biblioteka (The Road Traffic Library)** leidžia vartotojams modeliuoti transporto priemonių eismą keliuose. Biblioteka palaiko išsamų pavienių transporto priemonių judėjimo modeliavimą. Kiekvienas automobilis laikomas agentu, kuris gali turėti savo vidinius elgesio modelius. Biblioteka leidžia vartotojams modeliuoti transporto priemonės judėjimą keliuose, atsižvelgiant į eismo taisykles, šviesoforų signalus, pėsčiųjų perėjas, prioritetus sankryžose ir automobilių stovėjimo aikštelėse, viešojo transporto judėjimą. Biblioteka tinka modeliuoti eismą kelių eismo juostų gatvėse, gamybos vietose, pakrovimo-iškrovimo aikštelėse ir kt. Specialus eismo tankio įrankis padeda analizuoti kelių tinklo apkrovas.

Vartotojai gali sukurti ir savo bibliotekas.

### Modelių animacija
AnyLogic palaiko interaktyvią 2D ir 3D animaciją.

AnyLogic leidžia vartotojams importuoti CAD brėžinius ir DXF failus, ir ant jų vizualizuoti modelius. Ši funkcija gali būti naudojama modeliuoti gamybos procesus objektų viduje, pvz., gamyklos, sandėlio, ligoninės darbą. Ji dažniausiai naudojamų diskrečių įvykių (paremtų procesų eiga) gamybos, sveikatos, civilinės inžinerijos ar statybos modeliuose. AnyLogic programinė įranga taip pat palaiko 3D animaciją ir turi 3D objektų biblioteką, apimančią įvairių pramonės šakų, įskaitant pastatų, kelių, geležinkelio, jūrų, transporto, energetikos, sandėliavimo, ligoninių, oro uostų, prekybos centrų ir kitus objektus.

Modeliai gali turėti ir sąsają, leidžiančią vartotojams keisti eksperimentų konfigūraciją ir pradinius duomenis.

### Modeliai su GIS integracija
AnyLogiс modeliuose galima naudoti žemėlapius, reikalingus tiekimo grandinių, logistikos ar transporto pramonės modeliuose. AnyLogic palaiko Shapefile SHP ESRI žemėlapių standartą SHP by Esri. Be to, AnyLogic palaiko ir nemokamų interneto paslaugų teikėjų žemėlapius, įskaitant OpenStreetMap.

Pagrindinės AnyLogic žemėlapių funkcijos:
* Modelyje galima panaudoti viss internetiniame žemėlapyje saugomus duomenis: miestus, regionus, kelių tinklus ir objektus (ligonines, mokyklas, autobusų stotelės ir t. t.).
* Agentai gali būti įdedami į norimus žemėlapio taškus ir jam veikiant, judėti keliais ar nurodytais maršrutais.
* Vartotojai gali sukurti reikiamus elementus modelyje pasinaudodami paieška.

### Modelio integracija su kita programine įranga
AnyLogic modeliai gali būti eksportuojami kaip Java aplikacijos, kurias galima paleisti atskirai arba integruoti su kita programine įranga. Pavyzdžiui, eksportuotas AnyLogic modelis gali būti integruotas kaip papildomas modulis ERP, MRP ir TMS sistemose. Kitas tipiškas panaudojimas – AnyLogic modelio integracija su TXT, MS Excel ar MS Access failais arba duomenų bazėmis (MS SQL, MySQL, Oracle, ir kt.). Be to, AnyLogic modeliai gali turėti ir savo apima savo HSQLDB duomenų bazes.

## Nemokama mokomoji versija
2015 metais išleista AnyLogic Personal Learning Edition (PLE) kurią galima naudoti savišvietos ir mokymosi tikslais. Ji turi funkcijų apribojimų, be to, sukurti modeliai apribojami dydžiu.

Viešųjų mokslinių tyrimų ir švietimo įstaigų vartotojai gali įsigyti University Researcher licenciją, kuri neturi modelio dydžio apribojimo ir turi dalį Professional licencijos funkcionalumo.

## anyLogistix – tiekimo grandinės optimizavimo programinė įranga
AnyLogic neturi bibliotekos, skirtos tiekimo grandinių modeliavimui, todėl The AnyLogic Company sukūrė atskirą programinę įrangą – anyLogistix. Tai iš esmės AnyLogic pagrindu sukurtas spin-off produktas. anyLogistix pristatyta 2014 metais, pavadinta AnyLogic Logistics Network Manager, o pavadinimas pakeistas į anyLogistix 2015 metais.

anyLogistix remiasi AnyLogic varikliu, GIS, ir nauja grafine vartotojo sąsaja. Ji taip pat turi specialiai tiekimo grandinių projektavimui ir optimizavimui pritaikytus metodus ir algoritmus. anyLogistix yra visiškai integruota su AnyLogic, pavyzdžiui, AnyLogic gali būti naudojamas vidiniams anyLogistix objektams, kaip sandėliai, gamyklos, tiekėjai, prekės, transportavimo taisyklės ir pan., kurti.

## Nuorodos