Onderstaande is een Nederlandse samenvatting van één van de zes onderwerpen aan bod gekomen tijdens de Studieweek Wiskunde met de Industrie (SWI), 2011. De SWI is deel van een internationale traditie, en wordt in Nederland jaarlijks georganiseerd. Wiskundigen krijgen er een week de tijd om bij te dragen aan oplossingen voor problemen aangedragen door de Nederlandse industrie. Onderstaande tekst vat samen hoe dit is verlopen voor een probleem aangedragen door Bert Bos van Chess, en is geschreven door wetenschapsjournalist Bennie Mols.

Energiemanagement van een draadloos sensornetwerk
   door Bennie Mols

Steeds meer toepassingen bevatten draadloze sensoren die in een netwerk met elkaar communiceren. Hoe kunnen die sensoren met zo veel mogelijk buren praten en toch zo min mogelijk energie verbruiken?
Het is 's avonds laat wanneer je in je auto komt aanrijden bij een tankstation. Buiten springt er één lamp aan. Je rijdt verder en er springt nog een lamp aan en zo gaat het door. Het lijkt wel of je wordt gevolgd. Je voelt je onprettig. Om dat gevoel te voorkomen, wordt er gewerkt aan subtielere verlichting waarbij lampen niet slechts aan of uit zijn, maar op een prettige manier worden gedimd. Een tankstation krijgt zo een slimme, energiezuinige verlichting die ongeveer weet waar jij als automobilist rijdt en waar het dus lichter moet zijn, zonder je het gevoel te geven dat je wordt gevolgd. Voor zo’n slim sensornetwerk is meer elektrische bekabeling nodig. Dat is duur; vandaar dat er wordt gekozen voor draadloze sensoren die met elkaar praten. Het sensornetwerk moet weten waar een automobilist precies rijdt om daar een prettige verlichting op maat te verzorgen.

Draadloze sensor van Chess

Het Nederlandse bedrijf Chess maakt draadloze sensoren voor deze tankstationtoepassing, maar ook voor vele andere toepassingen. Chess is gespecialiseerd in de ontwikkeling van hard- en software op maat. Behalve draadloze sensoren heeft het bedrijf bijvoorbeeld een real-time-uitlezing van een MRI-hersenscanner ontwikkeld, een manier om met een laserbundel de doorbuiging van een vliegtuigvleugel te meten, maar ook systemen voor microbetalingen. Chess is gevestigd in Haarlem en heeft ongeveer honderdvijftig medewerkers.
In 2006 deed het bedrijf ook al eens mee aan de Studiegroep Wiskunde met de Industrie. "Dat is ons goed bevallen", zegt Chess-onderzoeker Bert Bos, "vandaar dat we graag weer eens wilden meedoen. In 2006 ging het om de betrouwbaarheid van een draadloos sensornetwerk dat een bosbrand detecteert. Dit keer wilden we graag weten hoe een draadloos sensornetwerk zo goed mogelijk kan communiceren bij een zo laag mogelijk energieverbruik."

Radiocommunicatie

Een enkele draadloze sensor is klein, goedkoop en energiezuinig. Zijn processorkracht en geheugen zijn beperkt. In een netwerk communiceren de sensoren met elkaar op een en dezelfde radiofrequentie. Elke andere sensor die binnen het radiobereik ligt, kan het signaal van de zender ontvangen. Maar hoeveel ontvangende buren dat zijn, hangt sterk af van de omstandigheden, zoals obstakels onderweg of de hoeveelheid vocht in de lucht. Het bereik kan variëren van vijf tot vijftig meter. Het aantal buren dat het signaal van een zender ontvangt kan bovendien van moment tot moment variëren. Verder is het probleem asymmetrisch: dat sensor B een bericht van sensor A kan ontvangen, betekent niet automatisch dat sensor A ook een bericht van sensor B kan ontvangen. Wanneer twee of meer sensoren precies tegelijk zenden, dan storen ze elkaar en horen de andere betrokken sensoren niets. Chess staat daarom voor de opdracht om een zo efficiënt mogelijk communicatieprotocol voor een dynamisch netwerk van sensoren te ontwikkelen.
Om zo lang mogelijk met hun batterijen te doen, doen de sensoren het gros van de tijd niets en communiceren ze alleen maar in een korte tijdspanne. Typisch zijn ze in een paar milliseconden actief en doen ze de rest van de seconde niets. Zo is elke sensor lang inactief, kort actief, lang inactief enzovoort. "Bij het ontwerpen van een communicatieprotocol", zegt Bos, "ontstaat een spanningsveld tussen het aantal buren dat signaal ontvangt van een sensor en zijn energieverbruik. Hoe meer buren, hoe beter in principe de communicatie verloopt, maar ook hoe meer energie het netwerk verbruikt. Wij willen dus graag het optimum aantal buren weten waarmee een sensor moet communiceren."

Random identificatienummers

Het 1000-node-experiment: dit experiment toont aan dat je geen 1000 nummers wilt toekennen, of wilt gaan tellen op basis van toegekende nummers.

Albert-Jan Yzelman was een van de tien wiskundigen die in januari 2011 een week lang aan het probleem heeft gewerkt. "Wij hebben ons geconcentreerd op de beantwoording van twee vragen", vertelt Yzelman. "Allereerste de vraag: 'Wat is een schatting voor het aantal buren dat een bericht van een bepaalde sensor ontvangt?' Om die vraag te beantwoorden hebben we vier algoritmen ontwikkeld. De tweede vraag die we hebben onderzocht is 'Wat is een schatting voor het aantal sensoren dat zich op een bepaald moment in het netwerk bevindt?' In toepassingen waarin de sensoren kunnen bewegen – denk aan sensoren op vogels of mensen – varieert het aantal sensoren dat met elkaar kan communiceren in de tijd. Sensoren kunnen immers tijdelijk buiten bereik van alle andere sensoren vallen. Voor de beantwoording van deze vraag hebben we zes algoritmen ontwikkeld."
Sommige algoritmen hadden een statistisch karakter, andere waren deterministisch. Voor elk algoritme schreven de wiskundigen een pseudocode: een beknopte uitwerking van het algoritme in een programma-achtige structuur. Een programmeur kan deze pseudocode gebruiken om in de gewenste programmeertaal het algoritme te implementeren. Elk algoritme werd vervolgens geïmplementeerd en getest in een simulatie die verschillende netwerkgroottes (van 100 tot 1000 sensoren) en een verschillend aantal communicatiecycli (30 en 300 stappen) gebruikte.
Uit deze simulaties bleek dat als schatter voor het aantal buren het zogeheten Random ID-algoritme het beste presteerde. Yzelman: "Het idee van dit algoritme is dat elke sensor op een willekeurige manier een identificatienummer tussen 0 en L kiest. L is typisch groter dan het aantal buren van een sensor maar kleiner dan het aantal sensoren in het netwerk. L mag niet te groot zijn omdat het een sensor dan te veel energie kost om het nummer naar al zijn buren te sturen. Meerdere sensoren in het netwerk zullen dus hetzelfde identificatienummer krijgen. Bij elk bericht dat een sensor verstuurt wordt het identificatienummer meegestuurd."
Elke sensor onthoudt een vector met bitlengte L waarvan de componenten 0 of 1 kunnen zijn. In het begin worden alle componenten van deze vector op 0 gezet. De plaats van de component wordt bepaald door het identificatienummer van de verzendende sensor. Een 0 geeft aan dat er nog geen bericht van die sensor is ontvangen; een 1 geeft aan dat er wel al een bericht van die sensor is ontvangen. De ontvangende sensor past deze vector bij elke nieuwe communicatiestap aan.
"Na een bepaald aantal communicatiestappen stabiliseert deze vector", legt Yzelman uit. "Uit deze gestabiliseerde vector kunnen we dan een schatting van het aantal buren berekenen. Als schatter voor het aantal buren presteert dit algoritme verreweg het beste van de vier die we ontwikkeld en getest hebben."

MinTopK

Het best presterende algoritme om het aantal sensoren in het netwerk te bepalen, bleek het zogeheten MinTopK-algoritme. Yzelman: "Het idee is simpel en elegant en het blijkt nog te werken ook. Net als bij het Random ID-algoritme kiest elke sensor weer willekeurig een identificatienummer tussen 0 en L dat bij elke communicatiestap wordt verzonden. Vervolgens laten we elke sensor de K grootste identificatienummers die hij ooit heeft ontvangen onthouden. K kan vrij klein zijn, bijvoorbeeld een getal tussen tien en honderd. Hoe groot dat getal mag zijn, hangt af van hoeveel geheugenruimte een sensor heeft: hoe groter de geheugenruimte, hoe groter K mag zijn. In plaats van een veel langere lijst met een lengte L te onthouden, hoeft een sensor nu alleen maar een veel kortere lijst van lengte K te onthouden."
De truc is nu dat het kleinste getal van die K getallen, zeg s, een goede schatting blijkt te geven voor de netwerkgrootte. s is het minimum van de top-K waarden, vandaar dat het algoritme de naam MinTopK heeft gekregen. Als het interval [s,1] – dat dus een lengte (1 - s) heeft – K waarden bevat, dan bevat het hele interval [0,1] ongeveer K/(1 - s) waarden. Yzelman: "Het quotiënt K/(1 - s) is dan een goede schatter voor het aantal sensoren in het netwerk. Ik denk dat de vraag van Chess is beantwoord wanneer ze het MinTopK-algoritme gebruiken. Het algoritme kan nog wel verbeterd worden, maar ik denk dat het nu al in de praktijk bruikbaar is."
De wiskundigen pasten het eerder gebruikte Random ID-algoritme een beetje aan om ook een schatting te geven van het aantal sensoren in het netwerk. Yzelman: "Ik denk dat Chess ook dit aangepaste Random ID-algoritme kan gebruiken. Nadeel is dat het niet stabiel is: wanneer je meer stappen gebruikt, wordt de fout groter. Maar misschien valt die stabiliteit nog wel te verbeteren."

Stap naar de toepassing

"De wiskundigen hebben verrassende oplossingsmethoden gepresenteerd, waar ik zelf niet op was gekomen", vertelt Chess-onderzoeker Bert Bos over de resultaten van de studiegroep. "Voor mij springen twee inzichten er uit. Allereerst het inzicht dat het handig is om alleen maar tijdelijk een random identiteitsnummer toe te kennen aan de sensoren. Identiteiten van sensoren hoeven dan niet eens uniek te zijn. Deze methode geeft voor ons een aardige maat voor het optimale aantal buren. De nauwkeurigheid van de uitkomsten is misschien nog niet zo hoog, maar ons gaat het vooral om de ordegrootte. En die klopt. Het tweede inzicht dat voor ons nuttig inzicht is, is dat we via een stochastische methode kunnen meten hoe lang een bericht onderweg is."
Chess zoekt naar eenvoudige, effectieve algoritmen die op een goedkope manier een goede oplossing kunnen berekenen, zonder dat dat automatisch de optimale oplossing is. Het MinTopK-algoritme, dat volgens Yzelman het beste presteert, vindt Bos lastiger te begrijpen. Of hij daar verder mee gaat, weet hij nog niet. Met de andere twee algoritmen gaat hij in ieder geval wel verder: "Het komende jaar gaan we ze verder testen, zowel met simulaties als in echte experimenten met een sensornetwerk. Wij hopen dat we ze daarna kunnen implementeren in onze draadloze sensoren."