Streszczenie: W arty­ku­le opi­sa­no zasto­so­wa­nie obiek­to­wych metod mode­lo­wa­nia i nota­cji UML do opi­su sys­te­mów agen­to­wo-zorien­to­wa­nych. Pokazano, że sys­te­my agen­to­we róż­nią się od obiek­to­wych zało­że­niem, że sys­tem o agen­to­wej archi­tek­tu­rze zakła­da auto­no­micz­ność obiek­tów, sta­no­wią­cych kom­po­nen­ty z jakich sys­tem jest zbu­do­wa­ny. W typo­wych obiek­to­wych archi­tek­tu­rach obiek­ty nie są auto­no­micz­ne, sekwen­cje ich współ­pra­cy są z góry usta­lo­ne. System agen­to­wo-zorien­to­wa­ny zakła­da, że reak­cja sys­te­mu jest two­rzo­na dyna­micz­nie jako efekt zacho­wa­nia kom­po­nen­tów jaki­mi są auto­no­micz­ne agen­ty. Zdaniem auto­ra sys­te­my agen­to­we od obiek­to­wych róż­ni tyl­ko to zało­że­nie. Warto jed­nak zwró­cić uwa­ga na to, że tak zwa­ne «sys­te­my uczą­ce się» to raczej sys­te­my agentowo-zorientowane. 

Wprowadzenie

Cztery lata temu (2016) podej­mo­wa­łem pierw­sze pró­by mode­lo­wa­nia sys­te­mów spo­łecz­nych, opar­te na ogól­nej teo­rii sys­te­mów i pomy­śle mode­lo­wa­nia ele­men­tar­nych komó­rek jako samo­dziel­nych bytów, rozu­mia­nych każ­da jako odręb­ny ele­men­tar­ny system”. 

Model ten będzie uży­wa­ny prze­ze mnie w tek­stach na tema­ty spo­łecz­ne, w szcze­gól­no­ści te o dzia­ła­niu Państwa. Z racji tego, że to tyl­ko hipo­te­za, kolej­ne tego typu arty­ku­ły i bada­nia będą sta­no­wi­ły testy tego mode­lu. Będę wdzięcz­ny za wszel­kie uwa­gi i przy­kła­dy oba­la­ją­ce tę tezę. (System spo­łecz­ny – meto­dy ana­li­zy i mode­lo­wa­nia, 2016)

Od tam­te­go cza­su minę­ło trosz­kę cza­su, a z uwa­gi na to, że coraz czę­ściej bio­rę udział w pro­jek­tach z obsza­ru pro­duk­cji oraz jej auto­ma­ty­za­cji, poję­cie ele­men­tar­ne­go sys­te­mu sta­le wra­ca. Studia lite­ra­tu­ro­we poka­za­ły, że obsza­ry badań nad mode­la­mi sys­te­mów spo­łecz­nych i badań nad pro­jek­to­wa­niem samo­dziel­nych sys­te­mów w inży­nie­rii opro­gra­mo­wa­nia (np. Internet Rzeczy, ang. Internet of Things: IoT), spo­tka­ły już pra­we 20 lat temu jako sys­te­my agen­to­we” (te mają histo­rię się­ga­ją­cą lat 80-tych ). Obecnie naj­czę­ściej jest chy­ba sto­so­wa­ne poję­cie Agent-Based Models (ABM) . Opierając się na wybra­nych ww. pra­cach poka­żę jak mój model z roku 2016, ewo­lu­ował do tych sto­so­wa­nych w obsza­rze ABM. 

Rok temu opi­sy­wa­łem meto­dę mode­lo­wa­nia dowol­ne­go sys­te­mu z uży­ciem UML. Próby tego rodza­ju są od lat podej­mo­wa­ne jed­nak idą w stro­nę budo­wy fra­me­wor­ków , ja zaś sta­ram się zbu­do­wać meta­mo­del jako meto­dę i narzę­dzie uni­wer­sal­ne, moż­li­we do sto­so­wa­nia już na pierw­szych, bar­dziej abs­trak­cyj­nych, eta­pach ana­liz i projektowania. 

Agenty i ich modele spotykane w literaturze

Jedna z naj­czę­ściej przy­ta­cza­nych defi­ni­cji agen­ta to:

??An agent is a com­pu­ter sys­tem, situ­ated in some envi­ron­ment, that is capa­ble of fle­xi­ble auto­no­mo­us action in order to meet its design objec­ti­ves.?? (Agent to sys­tem kom­pu­te­ro­wy [lub pro­gram] umiesz­czo­ny w okre­ślo­nym śro­do­wi­sku, któ­ry jest zdol­ny do ela­stycz­ne­go, auto­no­micz­ne­go dzia­ła­nia, aby zre­ali­zo­wać cele, dla któ­rych został stworzony.)

(nazwa «agen­ty» jest powszech­nie sto­so­wa­ne, zamiast sło­wa «agen­ci», dla odróż­nie­nia tego poję­cia od tego sto­so­wa­ne­go w sto­sun­ku do ludzi będą­cych «czy­imś agentem»).

Prosty model agen­ta poda­je w swo­jej pra­cy poglą­do­wej Chen: 

Powyższy model poka­zu­je agen­ta jako okre­ślo­ny zbiór cech. Ten model nie poka­zu­je jed­nak mecha­ni­zmu dzia­ła­nia agen­ta. Stanowi sobą raczej gra­ficz­ną, real­ną defi­ni­cję agen­ta. W tej samej publi­ka­cji autor pre­zen­tu­je roz­bu­do­wa­ny inny model: 

W tym przy­pad­ku mamy już do czy­nie­nia z fra­me­wor­kiem, czy­li zesta­wem skla­sy­fi­ko­wa­nych ele­men­tów (biblio­te­ki). Moim zda­niem jest to już pro­po­zy­cja imple­men­ta­cji (o czym pisze tak­że autor, pole­cam lek­tu­rę całej publi­ka­cji). Podałem te dwa mode­le jako przy­kła­dy skraj­nych pomy­słów: pierw­szy do tyl­ko gra­ficz­na defi­ni­cja, dru­gi to pro­po­zy­cja implementacji. 

Ciekawą pro­po­zy­cję mode­lo­wa­nia poda­li auto­rzy publi­ka­cji Agent-Based Enhancement of Legacy Manufacturing Planning and Control Processes” . Poniżej model (dia­gram sekwen­cji UML, ) poka­zu­ją­cy sce­na­riusz reali­za­cji zamó­wie­nia przez zbiór agentów:

Agenty powyż­sze­go dia­gra­mu zosta­ły zde­fi­nio­wa­ne na odręb­nym mode­lu, któ­ry auto­rzy przed­sta­wi­li jako onto­lo­gię (pole­cam źró­dło). Nie przy­ta­czam tu tego mode­lu, bo uwa­żam, że onto­lo­gia (nawet wyra­żo­na jako model UML) nie jest archi­tek­tu­rą a mode­lem poję­cio­wym, o czym nie­daw­no pisa­łem . Jednak powyż­szy dia­gram sekwen­cji odda­je ideę agen­tów jako ele­men­tów nad­rzęd­ne­go sys­te­mu (sys­tem systemów). 

Moja pro­po­zy­cja sytu­uje się gdzieś po środku. 

Agent jako autonomiczny system elementarny

Ogólny model systemu

W pra­cy auto­ra Ogólnej Teorii Systemów , opi­sa­no pro­sty sys­tem ze sprzę­że­niem jako ogól­ny model sys­te­mu (dzi­siaj moż­na powie­dzieć meta­mo­del systemu):

System ze sprzę­że­niem, dia­gram obiek­tów UML (opr. wła­sne na podst )

Sekwencja opi­su­ją­ca reak­cję powyż­sze­go mode­lu na bodziec ma nastę­pu­ją­cą postać:

Scenariusz reak­cji na bodziec

Tak to wyglą­da przy zało­że­niu, że sys­tem to mecha­nizm ze sprzę­że­niem, czy­li przyj­mu­jąc cyber­ne­tycz­ny model sys­te­mu .

Cybernetyczny model w wer­sji ana­lo­go­wej jest łatwy do imple­men­ta­cji. Jeżeli mówi­my o imple­men­ta­cji w posta­ci opro­gra­mo­wa­nia, czy­li cyfro­wej, potrzeb­ny jest model opi­sa­ny jako archi­tek­tu­ra apli­ka­cji. Posłużę się obiek­to­wym para­dyg­ma­tem, któ­ry moim zda­niem jest naj­bar­dziej ade­kwat­ny w tym przy­pad­ku. Jeżeli przyj­mie­my, że kom­pu­ter to uni­wer­sal­ny mecha­nizm (moż­li­we jest napi­sa­nie pro­gra­mu odwzo­ro­wu­ją­ce­go okre­ślo­ny sys­tem), zbu­do­wa­ny z pro­ce­so­ra i pamię­ci, to powyż­szy sce­na­riusz moż­na ide­ali­zo­wać do nastę­pu­ją­cej postaci:

Scenariusz z jed­nym blo­kiem jako blo­kiem sterującym

Idealizacja, jako meto­da two­rze­nia uwia­ry­god­nio­nych mode­li, jest bar­dzo dobrym spo­so­bem budo­wa­nia abs­trak­cji dowol­ne­go sys­te­mu , z cze­go w tej pra­cy tak­że skorzystano. 

Obiektowy model systemu 

Oprogramowanie, jako «czar­ną skrzyn­kę», opi­su­je sie w nota­cji UML z uży­ciem dia­gra­mu przy­pad­ków uży­cia, tu przed­sta­wio­no hipo­te­tycz­ny sys­tem reagu­ją­cy na dwa okre­ślo­ne bodźce:

System reagu­ją­cy na dwa nazwa­ne bodź­ce (nota­cja UML)

Przywołując przy­to­czo­ną już tezę, że kom­pu­ter – jako pro­ce­sor i pamięć – to uni­wer­sal­ny mecha­nizm, archi­tek­tu­ra dowol­ne­go «sys­te­mu» może zostać zobra­zo­wa­na jak poniżej: 

Architektura sys­te­mu utrzy­ma­na w obiek­to­wym paradygmacie

Ten dia­gram, od wcze­śniej­sze­go (Scenariusz z jed­nym blo­kiem jako blo­kiem ste­ru­ją­cym), róż­ni się zasto­so­wa­nym wzor­cem. W tym przy­pad­ku zasto­so­wa­no zasa­dę her­me­ty­za­cji, to zna­czy kom­po­nent, któ­ry żąda usłu­gi od inne­go, nie ma dostę­pu do wie­dzy o tym jak ta usłu­ga jest reali­zo­wa­na («nie wie nic o jego wnętrzu»). 

Można to poka­zać, «odsła­nia­jąc» kolej­ne «war­stwy» aplikacji:

Z per­spek­ty­wy oto­cze­nia sys­tem jest «czar­ną skrzynką»:

Ujawniając to, że sys­tem ma inter­fejs (opi­sa­ny na mode­lu sprzę­że­nia zwrot­ne­go jako «sen­sor» i «efec­tor» poka­że­my inter­fejs i kom­po­nent reali­zu­ją­cy logi­kę: «mecha­nism»:

Widać tu, że Interfejs nie widzi” pamię­ci za mecha­ni­zmem”, bo nie musi z niej korzy­stać, więc wie­dzieć o jej ist­nie­niu też nie musi. Pełny model i dia­gram sekwen­cji, obra­zu­ją­cy powsta­nie odpo­wie­dzi na bodziec wyglą­da następująco:

Warto tu zwró­cić uwa­gę, że poję­cie kla­sy­fi­ka­to­ra w UML, jako ele­men­tu mają­ce­go okre­ślo­ne cechy, czy­li atry­bu­ty i ope­ra­cje, to nic inne­go jak ele­men­tar­ny system: 

Takie poka­za­nie sys­te­mu jed­nak wyja­wia jego wewnętrz­ną struk­tu­rę i nie­po­trzeb­nie (zbyt wcze­śnie) suge­ru­je imple­men­ta­cję i związ­ki z obiek­to­wy­mi języ­ka­mi. Dlatego na eta­pie ana­liz sys­te­mo­wych znacz­nie wygod­niej i bez­piecz­niej jest korzy­stać z kla­sy­fi­ka­to­rów struk­tu­ral­nych czy­li dia­gra­mów struk­tur zło­żo­nych UML lub dia­gra­mów kom­po­nen­tów. Poniżej ten drugi:

System i jego metamodel

Po lewej stro­nie sys­tem jako czar­na skrzyn­ka, po pra­wej jego wewnętrz­na struk­tu­ra opar­ta na wcze­śniej­szym zało­że­niu, mówią­cym że zacho­wa­nie sys­te­mu jest mode­lo­wa­ne jako mecha­nizm i pamięć. Tu poka­za­no tak­że, że zna­ne z UML, inter­fejs wyma­ga­ny i ofe­ro­wa­ny to odpo­wied­nio: efek­tor i sen­sor (patrz wyżej: model cybernetyczny). 

Swego cza­su, na pew­nym semi­na­rium nauko­wym, spo­tka­łem się z tezą pew­ne­go pre­le­gen­ta z tytu­łem nauko­wym, że w UML nie moż­na zobra­zo­wać wej­ścia i wyj­ścia sys­te­mu. Jest to nie­ste­ty dość czę­sto powta­rza­na teza i jak widać, nieprawdziwa. 

Podsumowanie

Powyższy model poka­zu­je kla­sy kom­po­nen­tów (mecha­nizm i pamięć), to zna­czy, że kon­kret­ny sys­tem może być zło­żo­ny z wie­lu typów «mecha­ni­zmów» i «pamię­ci». W kon­se­kwen­cji poka­za­ny na począt­ku fra­me­work może zostać z powo­dze­niem zobra­zo­wa­ny meto­dą jak powy­żej, a kon­kret­ny pomysł na budo­wę agen­ta (fra­me­work) moż­na wyra­zić w posta­ci okre­ślo­nej kon­kret­nej architektury. 

Tak więc agen­to­wo-zorien­to­wa­ne mode­le sys­te­mów z powo­dze­niem moż­na mode­lo­wać jako sys­te­my obiek­to­we, uzna­jąc jedy­nie, że agent to auto­no­micz­ny kom­po­nent, a każ­dy sys­tem poten­cjal­nie jest sys­te­mem sys­te­mów . Dlatego cyto­wa­ny na począt­ku dia­gram sekwen­cji, opi­su­ją­cy obsłu­gę zamó­wie­nia , to nic inne­go jak obiek­to­wy model sys­te­mu sys­te­mów. Przyjęcie agen­to­we­go podej­ścia (para­dyg­ma­tu?) narzu­ca zało­że­nie o auto­no­mii ele­men­tar­nych sys­te­mów oraz ist­nie­nie okre­ślo­ne­go, zapew­nia­ją­ce­go komu­ni­ka­cję agen­tów, śro­do­wi­ska. Rolę taką może peł­nić np. tak zwa­na «szy­na inte­gra­cyj­na» (szy­na ESB, ang. Enterprise Service Bus) . Dlatego opi­sa­ne tu podej­ście z powo­dze­niem sto­su­ję do pro­jek­to­wa­nia archi­tek­tu­ry sys­te­mów IT u moich klientów. 

Nowe jest to, że zamiast sztyw­nej archi­tek­tu­ry inte­gra­cji i imple­men­ta­cji skoń­czo­nej licz­by, z góry okre­ślo­nych, pro­ce­sów i sekwen­cji, w podej­ściu agen­to­wym (ABM) moż­li­we sta­ją się pró­by budo­wa­nia zin­te­gro­wa­nych sys­te­mów samo­uczą­cych się”, zło­żo­nych z dedy­ko­wa­nych dzie­dzi­no­wych pro­duk­tów (apli­ka­cje), nie­wy­ma­ga­ją­cych każ­do­ra­zo­wej inge­ren­cji czło­wie­ka dla każ­de­go nowe­go bodź­ca z zewnątrz. Takie poję­cia jak machi­ne lear­ning czy­li ucze­nie maszy­no­we czy neu­ral networks czy­li sie­ci neu­ro­no­we, to zna­ne mecha­ni­zmy, jed­nak dostęp­ne coraz więk­sze mcde obli­cze­nio­we dają nam nowe moż­li­wo­ści, w szcze­gól­no­ści pra­ce takich sys­te­mów w cza­sie rzeczywistym”. 

Dalsze prace

Obecnie autor pra­cu­je nad opra­co­wa­niem mode­lu poję­cio­we­go i meta­mo­de­lu, któ­ry posłu­ży do uogól­nie­nia efek­tów uzy­ska­nych przez auto­rów cyto­wa­nych publi­ka­cji, sku­pia­jąc się na samej teo­rii, opi­su­ją­cej kolej­ne sys­te­my agen­to­we (para­dyg­mat agen­to­wy?) wdra­ża­ne i opi­sy­wa­ne przez ich auto­rów. Autor pra­cu­je nad wzor­cem pro­jek­to­wym poka­zu­ją­cym gra­ni­cę pomię­dzy tra­dy­cyj­na archi­tek­tu­rą obiek­to­wą a agentową.

Przykładową struk­tu­rą sys­te­mu poka­za­no na poniż­szym dia­gra­mie. Można powie­dzieć, że gra­ni­ca pomię­dzy kla­sycz­nym mode­lem obiek­to­wym a agen­to­wym, wyra­ża się z posta­ci «regu­ły OR». Innymi sło­wy, jeże­li sce­na­riusz wyko­rzy­sta­nia kom­po­nen­tów 2 i 3 przez przez «kom­po­nent 1» jest z góry narzu­co­ny w imple­men­ta­cji, jest to kla­sycz­ny sys­tem obiek­to­wy. Jeżeli sce­na­riusz ten jest wyni­kiem aktu­al­ne­go bodź­ca, histo­rii kom­po­nen­tu 1 i sta­nu oto­cze­nia, oraz dopusz­cza­my moż­li­wość, by iden­tycz­ny bodziec uru­cho­mił róż­ne sce­na­riu­sze, jest to sys­tem agen­to­wy. Problem w zde­fi­nio­wa­niu gra­ni­cy mię­dzy tymi defi­ni­cja­mi pole­ga na okre­śle­niu gra­ni­cy deter­mi­ni­zmu «decy­zji» podej­mo­wa­nej przez kom­po­nent 1. 

Źródła

Bertalanffy, L. (2003). General sys­tem the­ory: foun­da­tions, deve­lop­ment, appli­ca­tions (Rev. ed., 14. paper­back print). Braziller.
Bianco, P., Lewis, G. A., Merson, P., & Simanta, S. (2011). Architecting servi­ce-orien­ted sys­tems. CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE ENGINEERING INST.
Chen, L. (2012). Agent-based mode­ling in urban and archi­tec­tu­ral rese­arch: A brief lite­ra­tu­re review. Frontiers of Architectural Research, 1(2), 166 – 177. https://​doi​.org/​1​0​.​1​0​1​6​/​j​.​f​o​a​r​.​2​0​1​2​.​0​3​.​003
Daudé, E., Chapuis, K., Taillandier, P., Tranouez, P., Caron, C., Drogoul, A., Gaudou, B., Rey-Coyrehourq, S., Saval, A., & Zucker, J.-D. (2019). ESCAPE: Exploring by Simulation Cities Awareness on Population Evacuation. 19.
Frey, D., & Šešelja, D. (2018). Robustness and ide­ali­za­tions in agent-based models of scien­ti­fic inte­rac­tion. The British Journal for the Philosophy of Science.
Haniche, F., Drias, H., Muhamed, M. R., & Kamalrudin, M. (2019). Agent-Based Enhancement of Legacy Manufacturing Planning and Control Processes. 8(1), 6.
Hogeweg, P., & Hesper, B. (1983). The onto­ge­ny of the inte­rac­tion struc­tu­re in bum­ble bee colo­nies: A MIRROR model. Behavioral Ecology and Sociobiology, 12(4), 271 – 283. https://​doi​.org/​1​0​.​1​0​0​7​/​B​F​0​0​3​0​2​895
James Odell, Paolo Giorgini, & Jörg P. Müller. (2004). Agent-Oriented Software Engineering V: Vol. 5th InternationalWorkshop, AOSE 2004 NewYork, NY, USA, July 19, 2004 Revised Selected Papers. Springer.
Jennings, N. R. (2000). On agent-based softwa­re engi­ne­ering. Artificial Intelligence, 117(2), 277 – 296. https://​doi​.org/​1​0​.​1​0​1​6​/​S​0​0​0​4​-​3​7​0​2​(​9​9​)​0​0​107 – 1
Jennings, N. R., Sycara, K., & Wooldridge, M. (1998). A Roadmap of Agent Research and Development. Autonomous Agents and Multi-Agent Systems, 1(1), 7 – 38. https://​doi​.org/​1​0​.​1​0​2​3​/​A​:​1​0​1​0​0​9​0​4​0​5​266
Object Management Group. (2017, December). Unified Modeling Language (UML) [OMG​.org]. UML. https://​www​.omg​.org/​s​p​e​c​/​U​ML/
Šešelja, D. (2018). Exploring Scientific Inquiry via Agent-Based Modeling.
Stoyanov, E. A., Wischy, M. A., & Roller, D. (2005). Cybernetics and gene­ral sys­tems the­ory (GST) prin­ci­ples for auto­no­mic com­pu­ting design. Second International Conference on Autonomic Computing (ICAC’05), 389 – 390.
Wilensky, U., & Rand, W. (2015). An intro­duc­tion to agent-based mode­ling: mode­ling natu­ral, social, and engi­ne­ered com­plex sys­tems with NetLogo. The MIT Press.
Zeid, A. (2002). A UML pro­fi­le for agent-based deve­lop­ment. International Symposium on Metainformatics, 161 – 170.
Żeliński, J. (2020). Systematyzacja pojęć ana­li­zy i pro­jek­to­wa­nia obiek­to­we­go. 18. https://​doi​.org/​1​0​.​1​3​1​4​0​/​R​G​.​2​.​2​.​1​8​2​1​6​.​5​2​489

Jarosław Żeliński

Jarosław Żeliński: autor, badacz i praktyk analizy systemowej organizacji: Od roku 1991 roku, nieprzerwanie, realizuje projekty z zakresu analiz i projektowania systemów, dla urzędów, firm i organizacji. Od 1998 roku prowadzi samodzielne studia i prace badawcze z obszaru analizy systemowej i modelowania (modele jako przedmiot badań: ORCID). Od 2005 roku, jako nieetatowy wykładowca akademicki, prowadzi wykłady i laboratoria (ontologie i modelowanie systemów informacyjnych, aktualnie w Wyższej Szkole Informatyki Stosowanej i Zarządzania pod auspicjami Polskiej Akademii Nauk w Warszawie.) Oświadczenia: moje badania i publikacje nie mają finansowania z zewnątrz, jako ich autor deklaruję brak konfliktu interesów. Prawa autorskie: Zgodnie z art. 25 ust. 1 pkt. 1) lit. b) ustawy o prawie autorskim i prawach pokrewnych zastrzegam, że dalsze rozpowszechnianie artykułów publikowanych w niniejszym serwisie jest zabronione bez indywidualnej zgody autora (patrz Polityki Strony).

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.