Wanneer we het hebben over het modelleren van zelforganiserende systemen, zoals zwermen van cyber-fysieke systemen (CPS), worden we geconfronteerd met de uitdaging om complexe systemen te begrijpen door ze te abstraheren en te vereenvoudigen. Het doel is om een representatie te vinden voor elk agent in het systeem die zowel begrijpelijk is als voldoet aan de micro-niveau vereisten die nodig zijn voor het bijdragen aan gedrag op macro-niveau. Tijdens de abstractie laten we delen van het CPS weg om een vereenvoudigd systeem te verkrijgen dat makkelijker te begrijpen is. Dit is een typisch proces voor ingenieurs die moeten bepalen welke aspecten van het systeem moeten worden behouden zonder de algehele missie van het CPS te verliezen.
De missie van een zelforganiserend systeem kan formeel worden gedefinieerd met behulp van logische beschrijvingen en wiskunde. Dit helpt om het systeem beter te begrijpen onder verschillende configuraties en mogelijk in verschillende omgevingen. In een zelforganiserend systeem , waar met als configuratieruimte, kunnen we alleen de werkelijke configuratie observeren op een specifiek moment met . Iedere initialisatie geeft een andere reeks van het systeem in de tijd.
Om het systeem goed te begrijpen, is abstractie en vereenvoudiging noodzakelijk. We beschouwen daarom een eenvoudiger systeem met een kleinere configuratieruimte , waarbij . Het is belangrijk om een mapping te vinden die de configuraties naar de abstracte configuratie leidt, dus . Van het ene tijdstip naar het andere, van naar , wordt een update-regel toegepast op de werkelijke configuratie, , zodat , en een update-regel voor de abstracte configuratie , zodat . Het is cruciaal dat de abstractie door zorgvuldig wordt gekozen, zodat na de updates via en , het juiste maar abstracte model in het volgende tijdstip behouden blijft.
Een belangrijke gedachte die altijd in gedachten moet worden gehouden, is dat "in wezen, alle modellen verkeerd zijn, maar sommige zijn nuttig" (George Box, 1976). Dit betekent dat hoewel geen enkel model de complexiteit van de werkelijkheid perfect kan vastleggen, ze toch waardevolle inzichten kunnen bieden en besluitvorming in onzekere situaties kunnen begeleiden.
Bij het modelleren van zelforganiserende systemen zijn er verschillende benaderingen, afhankelijk van het specifieke toepassingsgebied. Er is geen universele benadering voor het modelleren van zwermen van CPS, aangezien verschillende modellen zijn ontwikkeld om te werken voor verschillende opstellingen. Autonome kenmerken zoals zelfconfiguratie, zelfoptimalisatie, zelfherstel, zelfbeveiliging en zelfbewustzijn kunnen bijvoorbeeld worden gemodelleerd met behulp van grafherschrijven, L-systemen, matrixherschrijven, herschrijven via speltheorie, of reactie-diffusiemodellen. In dit hoofdstuk richten we ons echter niet op alle modelleringstechnieken, maar op specifieke use-case modellen die zijn toegepast in verschillende projecten.
Bij het ontwerpen van een model voor een systeem, is de eerste stap het bepalen welke componenten als discrete elementen moeten worden weergegeven en welke als continue entiteiten gemodelleerd moeten worden. Dit besluit heeft invloed op vier belangrijke aspecten: tijd, ruimte, toestanden van agenten en interactie. Wanneer we een discréet micro-niveau model gebruiken, wordt het gedrag meestal aangestuurd door gebeurtenissen: elke keer dat er een gebeurtenis plaatsvindt in het systeem, kunnen knooppunten hun interne toestand veranderen en lokale uitvoer produceren die naar andere knooppunten wordt verzonden. Dit gedrag kan worden gemodelleerd door eindige automaten.
In een continu micro-niveau model verandert de toestand van elk knooppunt continu in de tijd. Het gedrag van een knooppunt kan worden beschreven door een lokaal differentiaalvergelijking die de inputwaarden van andere knooppunten in aanmerking neemt. Er zijn verschillende modelleringstechnieken die al zijn toegepast, waaronder Maxwell's demon, een model om het concept van entropie te verkennen, de Turingmachine voor de verkenning van computationele concepten, het cellulair automaatmodel voor het modelleren van complexe systemen, en het zelf-reproducerende automaatmodel van Von Neumann voor het verkennen van zelfreproductie.
Het model van een systeem wordt altijd beïnvloed door zijn omgeving en de toepassing waarvoor het is bedoeld. Deze invloed helpt ons de belangrijkste kenmerken van het systeem te identificeren. Wanneer we een toepassing modelleren als een zelforganiserende zwerm, moeten we een set potentiële zwermleden en hun kenmerken overwegen. Deze agenten kunnen van hetzelfde type zijn (homogene zwerm) of verschillende types hebben (heterogene zwerm). Er zijn ook criteria opgesteld om te bepalen of een agent in aanmerking komt om een zwermlid te zijn in de applicatie. Deze criteria omvatten onder andere of een zwermlid gepaard gaat met een redelijk aantal andere zwermleden in het systeem, of het een geschikt abstractieniveau vertoont voor modellering, of het in staat is om informatie uit de lokale omgeving te detecteren en erop te reageren, en of het model begrijpelijk en geloofwaardig is, waardoor vertrouwen in het voorgestelde model wordt bevorderd.
Modelleren van een zwerm van CPS stelt ons voor verschillende uitdagingen die moeten worden aangepakt. Een van de eerste vragen is welk agent het meest representatief is voor het systeem en welk abstractieniveau daarbij hoort. In een zoek- en reddingstaak bijvoorbeeld, kunnen robots als agenten worden beschouwd op een hoger abstractieniveau, waarbij robots van hetzelfde type als agenten worden gemodelleerd. Alternatief kan een lager abstractieniveau worden gekozen, waarbij de individuele hardwarecomponenten (bijv. CPU, geheugen, motorblokken) als agenten worden gemodelleerd.
Een ander probleem is het omgaan met heterogeniteit onder agenten. Agenten zijn inherent heterogeen, en zelfs kleine variaties in de implementatie kunnen grote invloed hebben op het gedrag van de zwerm. Dit benadrukt het belang van een goed begrip van de interacties tussen de agenten en de omgeving, en de wijze waarop deze variaties de dynamiek van het zelforganiserende systeem beïnvloeden.
Hoe Fysieke Simulaties de Ontwikkeling van Zwermrobots Versnellen
Fysieke simulaties spelen een cruciale rol in de ontwikkeling en evaluatie van zwermrobotsystemen, vooral wanneer het gaat om experimenten met robots die fysiek contact maken of samenwerken. Een van de grootste uitdagingen bij het gebruik van fysieke simulaties voor grootschalige zwermexperimenten is de enorme rekencapaciteit en de beperkingen van het geheugen en de processors van de computer. Dit beperkt de uitvoering van experimenten met een groot aantal robots, maar er bestaan programmeertechnieken die dit probleem deels kunnen verhelpen, zoals het deactiveren van de visualisatie tijdens experimenten.
Er zijn al tal van succesvolle toepassingen van zwermgedrag met behulp van fysische simulaties, zoals taakverdeling, zelfadaptieve communicatiestrategieën, coöperatieve navigatie en het ontwerp van zwermcontrollers. Platformen zoals ARGoS, Webots en Gazebo bieden robuuste simulatiesystemen die wetenschappers en ingenieurs in staat stellen om diverse zwermscenario's te testen voordat ze in de echte wereld worden geïmplementeerd. Zo zijn er bijvoorbeeld experimenten in Webots uitgevoerd om bots voor formatiecontrole en bots voor botsingvrij vliegen te testen.
De meeste simulatieplatformen bevatten een uitgebreide bibliotheek van robots, wat het gemakkelijker maakt om een robot te selecteren en te gebruiken. De software maakt het zelfs mogelijk om nieuwe robots te definiëren en hun mechanische ontwerp, sensoren en fysieke eigenschappen te importeren. Een goed voorbeeld hiervan is de simulatie van de Mona-robot, die werd ontwikkeld voor zwermrobotica en die werd gebruikt om een verkenningsscenario in een zwermsysteem te implementeren. Bij deze simulatie werden infraroodsensoren, DC-motoren, LED’s en energiesystemen gevirtualiseerd. Een ander voorbeeld is de Colias-micro-robot, een veelgebruikte robot in zwermrobotica-onderzoek, die gedetailleerd werd gemodelleerd met een RGB-camera, drie infraroodsensoren en een energievoorziening die overeenkomt met het echte model.
Fysische simulaties zijn van bijzonder belang bij het testen van decentrale zwermsystemen voordat deze op echte robots worden toegepast. Vaak wordt zo’n simulatie gebruikt als een haalbaarheidsstudie, bijvoorbeeld in gevallen waarbij complexe controlemechanismen worden getest. Een dergelijk systeem kan zeer moeilijk zijn om direct op echte robots uit te voeren vanwege de complexiteit van de communicatie- en berekeningsnetwerken. In een dergelijk geval wordt een platform zoals Webots gekozen om het systeem te testen door het vereenvoudigen van netwerken en het volgen van het systeem via een centrale observator.
Er zijn ook diverse studies waarin de formatiecontrole van multi-UAV-systemen werd gesimuleerd in Gazebo en andere softwareplatformen. Deze simulaties dienen als essentiële stappen om de praktische implementatie van zwermsystemen te ondersteunen. In een studie van Aranda et al. werd bijvoorbeeld een formatiecontrole van een multi-UAV gesimuleerd, en in een ander onderzoek werd een modulaire framework voor robotnavigatie geïmplementeerd in Webots en gebruikt voor de Khepera-IV, een platform voor zwermrobotica.
Daarnaast is de toepassing van fysische simulaties in de multi-voertuigsystemen en verbonden voertuigen sterk toegenomen. Recentelijk zijn er veel studies verschenen die zich richten op de controle-uitdagingen van multi-voertuigsystemen, die voornamelijk worden getest met behulp van simulaties. Voorbeelden zijn het volgen van voertuigvloten in CARLA en de implementatie van modelvoorspellende controle in Prescan/Matlab/V2X. De simulatie van inhaalmanoeuvres en adaptieve cruisecontrol in multi-voertuigsystemen is ook uitgevoerd met behulp van platformen zoals Unreal Engine.
Fysische simulaties spelen ook een belangrijke rol bij machine learning in zwermsystemen. Het trainen van modellen met deep reinforcement learning kan een tijdrovend proces zijn, omdat het systeem duizenden iteraties moet doorlopen om een goed model te ontwikkelen. Het gebruik van echte robots voor dit doel is vaak onhaalbaar vanwege de beperkte autonomie en verwerkingscapaciteit van de robots. Daarom wordt veel gebruik gemaakt van simulaties om een model te trainen voordat het naar echte robots wordt overgezet. Dit maakt het mogelijk om complexere en efficiëntere zwermgedragingen te ontwikkelen zonder de beperkingen van fysieke platforms.
Het is belangrijk om te begrijpen dat fysieke simulaties de basis vormen voor het testen en verfijnen van systemen, maar niet volledig de complexiteit van de echte wereld kunnen repliceren. Er blijven altijd variabelen en onvoorziene omstandigheden die alleen met echte robots kunnen worden getest. Simulaties bieden echter een onmiskenbare meerwaarde door tijd en middelen te besparen tijdens de onderzoeks- en ontwikkelingsfasen van zwermrobotica. Ze stellen onderzoekers in staat om gecontroleerde experimenten uit te voeren, de prestaties van algoritmes te evalueren en de haalbaarheid van projecten in een virtuele omgeving te testen voordat ze in de praktijk worden gebracht. De juiste simulatie kan de sleutel zijn tot het versnellen van de innovaties in het veld van zwermrobotica en cyber-fysieke systemen.
Wat maakt een systeem werkelijk zwerm-intelligent?
Zwerm-intelligente systemen worden gekarakteriseerd door het vermogen om complexe taken uit te voeren door middel van eenvoudige, gedistribueerde regels die door de individuele agenten lokaal worden uitgevoerd. Deze systemen vertonen kenmerken zoals parallelle en gedistribueerde verwerking, schaalbaarheid, aanpassingsvermogen aan dynamische variaties, en veerkracht tegen verlies of falen van individuele componenten. De kracht van een zwerm-intelligent systeem ligt in de samenwerking tussen de agenten, die gezamenlijk een globaal doel bereiken, hoewel elk individu slechts beperkte informatie heeft en een relatief eenvoudige taak uitvoert. In deze benadering is er geen centrale coördinatie of controle, maar komt het collectieve gedrag voort uit de interacties van de agenten met elkaar en hun omgeving.
In systemen die zijn gebaseerd op zwerm-intelligentie is het cruciaal dat de prestaties van het systeem verbeteren naarmate de grootte van de zwerm toeneemt. Wanneer de zwerm bestaat uit meerdere agenten, wordt de taak efficiënter uitgevoerd doordat de agenten parallel werken en hun inspanningen coördineren zonder directe communicatie. Dit soort systemen is niet alleen schaalbaar, maar vertoont ook veerkracht: zelfs als één of meerdere agenten uitvallen, blijft de taak doorgaans onverminderd doorgaan. Zo'n systeem vertoont het soort adaptief gedrag dat nodig is om complexe problemen op te lossen in dynamische, onzekere omgevingen.
Een voorbeeld van zwerm-intelligent gedrag is het zogenaamde “vegen” of uniforme dekking, waarbij agenten in een bepaald gebied worden verdeeld om het gebied te bedekken. In dit geval zou een enkele UAV (unmanned aerial vehicle) kunnen worden gebruikt om een bepaald gebied te dekken door een veeg-algoritme uit te voeren. Terwijl dit door één UAV kan worden gedaan, wordt het proces veel sneller en efficiënter wanneer meerdere UAV's samenwerken. Dit is het klassieke voorbeeld van hoe zwerm-intelligentie werkt: door eenvoudige regels toe te passen en geen complexe communicatie tussen agenten te vereisen, kan de zwerm als geheel veel betere prestaties leveren dan een enkel individu.
Het is echter belangrijk te begrijpen dat niet alle systemen die gebruikmaken van meerdere agenten of componenten zwerm-intelligent zijn. Zo kan een systeem dat uit meerdere agenten bestaat, maar waarin de prestaties per agent afnemen naarmate het aantal agenten toeneemt, niet als een zwerm-intelligent systeem worden beschouwd. Dit wijst op een probleem van schaalbaarheid. Dit is te vergelijken met verkeersdrukte: hoewel meer auto’s op een weg de capaciteit om mensen en goederen te vervoeren vergroten, is er een punt waarop de extra auto's elkaar belemmeren en de efficiëntie afneemt. In dit geval is de aanwezigheid van extra voertuigen dus niet voordelig. Zwerm-intelligentie daarentegen zorgt ervoor dat het systeem collectief een grotere taak aankan door effectief gebruik te maken van zijn componenten, zonder dat de prestaties van elke individuele agent drastisch afnemen.
Een belangrijk punt om te begrijpen is dat zwerm-intelligente systemen geen noodzaak hebben voor complexe centrale sturing. In plaats daarvan worden de globale doelen van het systeem bereikt door de eenvoudige interacties van de individuele agenten. Dit betekent dat het systeem adaptief is en in staat om zich aan te passen aan veranderingen in de omgeving. De regels die de agenten volgen zijn doorgaans eenvoudig en worden vaak lokaal uitgevoerd, wat betekent dat de agenten in staat zijn om snel en efficiënt in te grijpen zonder afhankelijk te zijn van een globale coördinator.
Bij de ontwikkeling van zwerm-intelligente systemen wordt veel inspiratie uit de natuur gehaald. Veel algoritmen die gebruikt worden om dit soort systemen te bouwen, zijn gebaseerd op het gedrag van biologische systemen zoals mieren, bijen of vissen. Deze algoritmen zijn een vorm van natuurgeïnspireerde intelligentie, die de principes van zelforganisatie en samenwerking benutten om collectief gedrag te genereren dat het oplossen van complexe problemen mogelijk maakt. Wat bijzonder is aan deze benadering, is dat de agenten in zo'n systeem niet beschikken over een globaal overzicht, maar juist op basis van lokale interacties de gezamenlijke taak kunnen uitvoeren. Dit principe, dat ook in de natuur te vinden is, maakt zwerm-intelligentie zo krachtig: het gaat er niet om dat elk individu het volledige plaatje kent, maar dat zij gezamenlijk hun taken kunnen uitvoeren door simpelweg lokale informatie te verwerken en actie te ondernemen.
Er is echter een belangrijke nuance die begrepen moet worden: de toepassing van zwerm-intelligentie in engineering en technologie vereist niet alleen het mimetische gedrag van biologische systemen, maar ook een diepgaand begrip van de fysieke en technologische context waarin de zwerm opereert. In veel gevallen is het niet voldoende om simpelweg natuurlijke gedragingen na te bootsen; de agenten moeten in staat zijn om de sensorinformatie correct te interpreteren en deze effectief om te zetten in een actie die bijdraagt aan het bereiken van het gezamenlijke doel. Dit vereist dat de agenten niet alleen simpele lokale regels volgen, maar ook in staat zijn om met de fysieke wereld om te gaan, inclusief het interpreteren van sensorische gegevens en het aansteken van actuatoren.
Dit betekent dat zwerm-intelligente systemen niet altijd eenvoudig te ontwerpen of te implementeren zijn, vooral wanneer de agenten moeten opereren in complexe omgevingen die dynamische veranderingen vertonen. De uitdaging is niet alleen om de interacties tussen de agenten goed te modelleren, maar ook om te zorgen voor een robuust en veerkrachtig systeem dat kan omgaan met onverwachte gebeurtenissen of storingen. Het ontwerp van dergelijke systemen vereist niet alleen kennis van algoritmes, maar ook een diepgaande kennis van de fysieke en technologische domeinen waarin deze systemen functioneren.
Hoe presteert een zwerm? Schaalvergroting en de limieten van de prestatie van zwermintelligentie
De prestaties van een zwerm zijn sterk afhankelijk van de grootte van de zwerm, gemeten aan het aantal leden binnen de zwerm. Zoals aangegeven in de formule, neemt de gemiddelde prestatie per agent toe met de grootte van de zwerm, mits de zwerm effectief functioneert. Dit principe wordt geïllustreerd in Figuur 2.3, die de verwachte prestatie-schaalvergroting toont voor drie verschillende systemen: (a) de prestatie van een hypothetisch algoritme of zwermmodel dat lineair schaalt met O(n) zoals de stippellijn in Figuur 2.3, waarbij n het aantal leden van de zwerm is. Dit is echter onpraktisch in de echte wereld, omdat het geen rekening houdt met fysieke beperkingen of beperkingen van middelen. (b) de schaalvergroting van een algoritme dat rekening houdt met het delen van middelen tussen verschillende instanties van het algoritme, of een zwermmodel dat middelen zoals ruimte deelt tussen de agents. Dit schaalt logarithmisch met O(log n), zoals te zien is in de gestreepte lijn van Figuur 2.3. De prestaties schalen hierdoor trager door de toegenomen communicatie- en coördinatiekosten die gepaard gaan met een groter aantal leden. (c) de solide, hoedvormige curve in Figuur 2.3 toont de prestaties van een fysiek belichaamde zwerm die in de echte wereld opereert.
Wanneer de grootte van de zwerm klein is (N < C1), vertoont de zwerm vrijwel geen prestaties. Dit is te wijten aan het lage niveau van connectiviteit tussen de agents, die niet voldoende is voor samenwerking en interactie. Naarmate de zwerm groter wordt, verbeteren de prestaties dankzij de interacties tussen de leden, wat leidt tot een grotere efficiëntie. Bij een grootte van de zwerm groter dan N > C1 kunnen deze interacties exponentieel bijdragen aan de prestaties, waardoor de zwerm op een super-lineaire wijze schaalt. Deze hoge prestaties kunnen behouden blijven in een bepaald bereik van de zwermgrootte, C1 > N ≥ C3. Zodra de zwerm echter een kritiek punt bereikt (C2), begint de prestatie te dalen door overbevolking en andere verstorende factoren. Als de zwerm verder groeit (N > C4), komt er een drastische afname in prestaties en uiteindelijk een verlies van functionaliteit.
Het toevoegen van meer agents aan een zwerm heeft vaak enkele nadelen, vooral door de volgende factoren:
-
Toegenomen communicatie: Naarmate het aantal agents toeneemt, neemt de hoeveelheid informatie die tussen hen moet worden uitgewisseld ook toe. Dit kan leiden tot hogere latentie en mogelijke knelpunten als de communicatie-infrastructuur niet optimaal is voor schaalvergroting.
-
Coördinatie van bewegingen: Het effectief coördineren van de bewegingen en acties van agents vereist complexe algoritmen, die vertraging kunnen veroorzaken als de synchronisatie niet optimaal is. Zelfs kleine misalignments in timing of richting kunnen de algehele effectiviteit van de zwerm verminderen.
-
Hulpbronnenconcurrentie: Meerdere agents kunnen gelijktijdig toegang willen tot gedeelde hulpbronnen, zoals data of fysieke ruimte, wat kan leiden tot conflicten en inefficiënties als het niet goed wordt beheerd.
-
Toegenomen complexiteit in besluitvorming: Het aantal mogelijke interacties en afhankelijkheden neemt toe naarmate het aantal agents toeneemt. Dit kan de besluitvorming vertragen en de efficiëntie van het geheel verminderen.
Desondanks is het niet altijd noodzakelijk dat een zwerm optimaal presteert in termen van snelheid of efficiëntie. Er kunnen andere factoren belangrijker zijn, zoals:
-
Robuustheid en betrouwbaarheid: Een zwermsysteem is minder gevoelig voor totale falen, omdat individuele agents de taken van mislukte leden kunnen overnemen, wat zorgt voor continue werking, zelfs bij falen van enkele leden.
-
Onderhoudbaarheid: Door een modulaire structuur kunnen agents of componenten eenvoudig worden vervangen of gerepareerd zonder de werking van het hele systeem te verstoren.
-
Schaalbaarheid: Zwermen kunnen relatief eenvoudig worden uitgebreid door nieuwe agents toe te voegen, waardoor de prestaties verbeterd kunnen worden naarmate de vraag toeneemt.
Daarnaast is het belangrijk te realiseren dat de keuze tussen exploratie en exploitatie cruciaal is voor het succes van een zwerm. Zwermleden kunnen zich in twee verschillende modi bevinden: exploratiemodus, waarin ze de omgeving verkennen of, in het geval van een optimalisatie-algoritme, het oplossingsruimte verkennen om informatie te verzamelen, en exploitatiesmodus, waarin ze de verzamelde kennis gebruiken om de beloning te maximaliseren, bijvoorbeeld door voedsel te vergaren of een optimale oplossing te vinden binnen het verkende gebied. Het is essentieel om een balans te vinden tussen beide, aangezien een te sterke nadruk op exploratie kan leiden tot tijdverspilling zonder veel waardevolle bijdragen, terwijl een te sterke focus op exploitatie kan betekenen dat potentieel lucratieve gebieden over het hoofd worden gezien.
Hoewel dit probleem zich in veel systemen voordoet, is het vooral bekend in de context van probabilistische theorieën en machine learning, zoals het multi-armed bandit probleem, waarbij verschillende gokkasten met onbekende uitbetalingsmogelijkheden onderzocht moeten worden om vervolgens de meest winstgevende te exploiteren.
De afweging tussen exploratie en exploitatie vormt een fundamenteel probleem bij het ontwerpen van algoritmen die efficiëntie moeten maximaliseren in dynamische en onbekende omgevingen. Het vermogen van een zwerm om effectief om te gaan met deze afwegingen is een bepalende factor voor de algehele prestaties van het systeem.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский