Het veranderende beeld van de informatica
Waarde toehoorders
Op 19 mei 1990, een jaar voor het World Wide Web werd geboren, ging in het Mitzi E. Newhouse Theater op Broadway een bijzonder toneelstuk in premi\`ere. Het stuk, Six Degrees of Separation, gaat over de gebeurtenissen die plaatsvinden als een onbekende jongeman zich met mooie praatjes binnendringt in het leventje van Louisa en Flanders Kittredge. In de loop van het stuk nemen zowel de sympathie als de argwaan toe: de vreemdeling weet alles over het gezin! Louisa verklaart dit als volgt:
`I read somewhere that everybody on this planet is separated by only six other people. Six degrees of separation. Between us and everybody else on this planet. ... I find that A] tremendously comforting that we're so close and B] like Chinese water torture that we're so close. Because you have to find the right six people to make the connection. It's not just big names. It's anyone.'
Het stuk geeft niet aan waar Louisa dit gelezen heeft, maar het moet een artikel van de socioloog Stanley Milgram geweest zijn. In 1967 vroeg Milgram aan zo'n 100 willekeurig gekozen mensen in Kansas en Nebraska om een document te versturen aan een hen volslagen onbekende persoon in Boston. Hij gaf als instructie mee dat het document alleen maar verstuurd mocht worden via een persoon die men w\'el persoonlijk kende. Elke tussenpersoon werd gevraagd om dezelfde instructie te volgen. Tot zijn verrassing constateerde Milgram dat uiteindelijk een flink aantal documenten op de juiste plaats aankwam, met ketens van 2 tot 10 tussenpersonen en een gemiddelde van maar 6 stappen: `six degrees of separation'! Deze kleine gemiddelde afstanden zijn sindsdien in veel sociale netwerken waargenomen. Milgram noemde het heel toepasselijk de `kleine wereld' eigenschap.
Vanmiddag wil ik u wat meer vertellen over het tegenwoordige informatica-onderzoek. Veel van dit onderzoek vindt u in het Instituut voor Informatica en Informatiekunde, waaraan ik vrijwel sinds de oprichting ben verbonden. Informatica als `ontdekkende' wetenschap. Om u dat te laten zien, neem ik mee op een kleine excursie door het vakgebied. Eerst noem ik enkele fundamentele kwesties, vervolgens geef ik wat voorbeelden van het onderzoek waartoe die kwesties leiden, en ten slotte kijk ik met u naar de uitdagingen die voor ons liggen. Daarna komen we weer terug bij het Instituut.
Kwestie \'e\'en is de beperkte eindigheid. Iedereen die met computers werkt loopt hier tegenaan, en niet alleen omdat zelfs een schijf van 1000 Gigabyte uiteindelijk wel een keer vol is. De kwestie is dat je al bij kleine problemen tegen de grenzen van het haalbare kunt aanlopen. Ik geef een eenvoudig voorbeeld. Stel we hebben 100 dozen en twee wagens. We willen de dozen zo verdelen over de twee wagens dat beide precies even zwaar beladen worden. K\'an dat eigenlijk wel? Als alle dozen even zwaar zijn, is de oplossing simpel: 50 dozen op wagen 1, en 50 op wagen 2. Zijn de dozen niet even zwaar, wat dan? Omdat er voor elke doos twee mogelijkheden zijn, wagen 1 of wagen 2, zijn er in beginsel 2^{100} verdelingen denkbaar. Bestaat er een verdeling waardoor de wagens precies even zwaar beladen worden en kan een computer berekenen of er een is? Stel we hebben een computer die maar liefst 1 biljoen instructies per seconde kan uitvoeren (wat gewone computers ver te boven gaat) en stel dat we 100 van die computers tegelijk kunnen laten rekenen. Het stuk voor stuk onderzoeken van alle 2^{100} mogelijkheden kost dan minstens 300 miljoen jaar! Dit is dus onuitvoerbaar. En dit is nog maar een klein probleem als u het vergelijkt met de echte beladingsproblemen in de transportsector. De enige optie is om een slimmere oplossing te bedenken. De fundamentele vraag is hoe je grotere problemen kunt aanpakken en de grens van het redelijk oplosbare zo v\'er mogelijk kunt leggen.
Kwestie twee is modelleerbaarheid. Werken met computers kan niet zonder modellen. Modellen van \'alles. Ik neem het World Wide Web weer als voorbeeld. Om het Web te gebruiken heb je een snelle manier nodig voor het opvragen, classificeren en ordenen van informatie. Een paar jaar geleden werd bedacht dat het belang van een willekeurige webpagina wel eens afgelezen zou kunnen worden aan de structuur van het Web. Het idee is: hoe vaker naar een pagina verwezen wordt, hoe belangrijker die pagina is. Op grond van dit idee zijn modellen gemaakt om voor elke webpagina een rang te kunnen berekenen. Het beste model is door de ontwerpers van de zoekmachine Google gemaakt, waardoor deze zoekmachine nu alle andere verslaat in het ordenen van webpagina's. Google paginarang is zelfs een status voor websites geworden: de Universiteit Utrecht staat in de Nederlandse top-100 zelfs op plaats vijf, hoger dan enige andere universitaire instelling in Nederland. Het voorbeeld laat ook zien dat modellen vaak ontzettend groot zijn: Google werkt met maar liefst ruim 3 miljard webpagina's. De vraag naar goede modellering ontstaat overal zodra je de informatiestromen in een systeem wilt begrijpen. De vraag ontstaat als je een biologisch systeem wilt simuleren, als je processen in een bedrijf wilt modelleren of misschien wel een organisatie als geheel (zoals in ERP-systemen), als je de kennis of besluitvorming van een groep experts wilt modelleren en ga zo maar door. Modellen moeten ook steeds preciezer, mooier, groter, natuurgetrouwer en, bovendien, gemakkelijker te maken zijn, en op elke redelijke computer kunnen werken.
Kwestie vier is programmeerbaarheid, ofwel: realiseerbaarheid in termen van computerprogramma's. De vereisten voor moderne software zijn zo complex dat deze nog maar nauwelijks te realiseren zijn. Bijvoorbeeld, een geautomatiseerd administratiesysteem voor een bedrijf moet honderden, misschien wel duizenden functies realiseren die waarschijnlijk nooit eerder goed beschreven waren, inclusief functies waarvan mensen nooit beseften dat die er waren of dachten dat die nodig waren. Je loopt hier niet alleen tegen de kwesties aan die we al eerder zagen: omvang, modellering en eisen qua bruikbaarheid. Hoe en in welke vorm is te specificeren wat eigenlijk gemaakt moet worden? Hoe moet je omgaan met die specificaties als ze duizenden pagina's in beslag nemen? Hoe is het gewenste systeem te maken? En: hoe weet je dat je gemaakt hebt wat de bedoeling was? Een afdoend wetenschappelijk antwoord is nog altijd niet gevonden. De kwestie is: kunnen we eigenlijk wel de complexe systemen bouwen die in de toekomst nodig gaan zijn?
Het dozenprobleem lijkt overigens simpel genoeg. Voor een willekeurige verdeling van de dozen over de twee wagens, is heel snel uit te rekenen of het een goede oplossing is: tel de gewichten van de dozen op beide wagens op en kijk of er hetzelfde uitkomt. Dit is een polynomiaal begrensde `verificatiemethode'. De vraag is nu: heeft ieder beslisprobleem met een polynomiaal begrensde verificatiemethode automatisch ook een polynomiaal begrensde oplosmethode? Dat zou een prachtig resultaat zijn! De vraag is echter al meer dan dertig jaar onbeantwoord, en er is inmiddels 1 miljoen dollar uitgeloofd voor de oplossing ervan!
Om de alsmaar groter en ingewikkelder wordende problemen te kunnen aanpakken is een flink aantal oplosmethoden bedacht, maar de grenzen van het eindige zijn in veel gevallen nog onbegrepen. Sommige onderzoekers zoeken inspiratie bij processen in de biologie of de fysica, om nieuwe rekenmechanismen te ontdekken ('quantum computing'). Anderen recruteren alle grote computers op het Internet om samen te rekenen (`grid computing'). E\'en gebied in de informatica heeft juist baat bij de beperkte eindigheid en dat is de cryptografie. Een goede geheime code moet voor derden niet te kraken zijn. De veiligheid van het betalingsverkeer op Internet bijvoorbeeld, berust op enkele getaltheoretische problemen waarvan vermoed wordt dat ze niet in redelijke rekentijd oplosbaar zijn.
Heel veel onderzoek wordt gedaan om modellen te realiseren op computers; de mogelijkheden voor modellering zijn enorm toegenomen. De voorbeelden vari\"eren van besliskundige netwerken voor artsen tot virtuele omgevingen voor ruimtelijke simulaties, van de werking van inwendige organen tot de informatiestromen in organisaties. In het ene geval willen we de kennis van experts begrijpen en vormgeven, in het andere geval de fysische realiteit, althans de menselijke perceptie van die realiteit. In alle gevallen moet een model operationeel zijn en een afspiegeling van een stukje werkelijkheid in meest complete vorm. Wat maakt modelleren anders in de informatica, in vergelijking tot andere gebieden? Het verschil is dat in de informatica modellen bestaan uit programma's. In allereenvoudigste vorm is dit de essentie, waar je het ook toepast. Bestaande modellen blijken dan vaak ontoereikend als je vanuit die optiek werkt. En dit leidt vaak tot prachtige nieuwe ontdekkingen, of het nu om biologische, scheikundige, medische, cognitieve of economische processen gaat.
In de grondslagen van de informatica zoals die lang geleden werden geformuleerd, stonden begrippen als eindige berekening en berekenbaarheid centraal. Maar op tegenwoordige systemen zijn die begrippen nauwelijks meer toepasbaar: de systemen werken interactief in een onvoorspelbare omgeving, hun programmatuur leert en verandert in de tijd en ze zijn zoals dat heet, `always on'. Ze zijn mobiel, kennen hun geografische locatie en nog veel meer. Dit vraagt om een nieuwe grondslagentheorie die beter aansluit. We zoeken bijvoorbeeld inspiratie in de evolutiebiologie, met haar kennis van evoluerende systemen. Zie je een systeem als een stelsel van samenwerkende intelligente componenten, dan dringt zich ook een analogie met de speltheorie op. Deze klassieke theorie wordt op dit moment volledig vernieuwd, nu binnen de informatica. Laten we verder gaan met onze laatste kwestie: programmeerbaarheid.
Hoe praktisch een programmeeromgeving is, hangt van veel factoren af. Wie bijvoorbeeld in een grafische context levensechte gezichten en expressies van emotie wil vormgeven heeft, zeer waarschijnlijk, niets aan de methoden voor protocollen in telecommunicatie-netwerken. En het werken met multimediale informatie, van audio tot video, vraagt een geheel andere programmeeraanpak dan het ontwerp van een groot financieel beheersysteem. Ook moet aangesloten kunnen worden op de enorme hoeveelheid oude, maar nog altijd werkende software uit het verleden (`legacy software'). En nu hebben we het alleen nog maar over de programmeertechnologie.
Een voorwaarde om een systeem te realiseren is dat alle beoogde functies van het systeem in detail beschreven zijn, op een manier die verificatie toelaat (`formele methoden'). Veel ontwikkeltrajecten gaan er echter vanuit dat zulke beschrijvingen vooraf niet helemaal bekend zijn en pas gaandeweg precies ingevuld worden. Industri\"ele software is echter zo groot en complex dat mensen de bouw ervan nauwelijks meer aankunnen. IBM heeft dit zelfs tot een van de gr\'o\'otste problemen van de IT-sector verklaard. Als mogelijke oplossing wordt gedacht aan systemen van autonome componenten die zichzelf opbouwen en aanpassen aan de eisen die de omgeving aan hen stelt (`autonomic computing'): programma's dus die programma's bouwen en onderhouden.
Veel onderzoekers hebben in het verleden hun visie op het toekomstig profiel en profijt van de ICT gegeven. Bijvoorbeeld, in een opmerkelijk essay gaf Bush, Vannevar Bush wel te verstaan, al in 1945 een accuraat beeld van de `personal computer'. In hetzelfde essay beschreef hij de grondgedachte van hypertext, hyperlinking en browsing! In 1950 beschreef Alan M. Turing dat software de menselijke intelligentie zou kunnen evenaren. En 50 jaar geleden werd ook al precies beschreven welke grote mogelijkheden computers hadden in het wetenschappelijk rekenen, in de besliskunde, in de weersvoorspelling en in de bedrijfstoepassingen. Ook werd al de grote complexiteit voorzien van het invoeren van systemen in organisaties. Een voorbeeld van recenter datum is het volgende.
Rond 1990 beschreef Mark Weiser van Xerox PARC hoe de leefomgeving van ieder mens veel aangenamer zou kunnen worden gemaakt met behulp van `onzichtbare technologie'. Hij dacht aan het inbouwen van talloze onderling communicerende computertjes in de dagelijkse woon- of werkomgeving (`ubiquitous computing'). Elektronicabedrijven hebben het idee omarmt als een van hun belangrijkste visies op de toekomst. In verschillende grote onderzoeksinstituten zijn proefomgevingen gebouwd om te ontdekken welke omgevingsintelligentie (`ambient intelligence') mensen nuttig en plezierig vinden. Binnen Philips Research is zelfs een compleet huis ingericht, het `Home Lab', om intu\"{i}tieve omgevingen te testen. Ook in het zesde kaderprogramma van de Europese Gemeenschap wordt hoog ingezet op de technologie voor interactieve, intelligente omgevingen.
De huidige visie is dat `grote' wetenschappelijk uitdagingen centraal moeten staan in het onderzoek. De Amerikaanse Computer Research Association heeft vorig jaar al geprobeerd de toonaangevende problemen te bepalen. Boven aan de lijst staan: adaptieve leeromgevingen, cognitieve ondersteuning met computers, het ontwerpen van absoluut betrouwbare en veilige systemen en het bouwen van foutbestendige informatiesystemen uit miljarden autonome delen. Onderzoekers in Engeland hebben daar afgelopen najaar nog eens een schepje bovenop gedaan: zij kwamen met een groot aantal wetenschappelijke uitdagingen waarin stuk voor stuk de informatica als ontdekkende wetenschap naar voren komt. De voorbeelden lopen uiteen van ge\"{i}ntegreerde media tot de modellering van het centrale zenuwstelsel.
In Nederland wordt de wetenschapsvisie op de informatica bepaald door de Nationale Onderzoeksagenda Informatica, de NOAG-i. Deze onderzoeksagenda beschrijft de deelgebieden die voor Nederland het meest belangrijk en kansrijk zijn, zoals software engineering en intelligente systemen. De huidige onderzoeksagenda noemt zeven gebieden, in minstens vier waarvan Utrecht sterk is. De onderzoeksagenda is \'e\'en van de uitgangspunten voor het landelijke onderzoeksbeleid dat de nieuwe ICT-kennis, patenten en innovaties voor de Nederlandse industrie \'en de hoog opgeleide onderzoekers voor onze kenniseconomie moet opleveren. Prioriteiten in het Nederlandse wetenschapsbeleid!
Voor Utrecht liggen er niet alleen wetenschappelijke uitdagingen. De landelijke trend lijkt gericht op de vorming van enkele grote clusters in belangrijke deelgebieden van de informatica. Er is sprake van clusters in de telematica, embedded systems, software engineering, multimedia en fundamentele ICT. Het is hierbij interessant dat de clustering nauwelijks strookt met de huidige indeling van het vakgebied in landelijke onderzoeksscholen en dat de dynamiek van de informatica dus een heel andere is! Hoe dan ook, Utrecht zal positie moeten kiezen in dit veld. Kiezen we niet voor een deelgebied, en waarom zouden we, dan lijkt een sterke Utrecht School of Information Technology die zich juist br\'e\'ed opstelt, het beste alternatief. We zullen onze Utrechtse positie in het onderzoek ook waar moeten maken naast \`en met de zorg voor de ruim 700 actieve studenten die nu al aan ons Instituut studeren. En daarmee keren we terug bij het beginpunt van onze excursie.
Aan het begin noemde ik dat het beeld van de informatica nogal eens wordt bepaald door de software die op de markt beschikbaar is en door de `solutions' die IT-bedrijven aanbieden. Linux, Windows, UML, Java, C++, C#, VB.NET, Flash-MX, JavaScript, ASP en PHP, Web Services, SQL, en XML, daar lijkt het allemaal om te draaien. Ik heb u op deze Di\"es een ander beeld willen schetsen: dat van een wetenschapsveld gewijd aan het doorgronden van alle systemen die interactief, intelligent en nog veel meer zijn. Een wetenschapsveld gewijd aan het begrijpen van die ongrijpbare materie waarin alles om ons heen en alle kennis zich aan ons manifesteert: informatie.
Het blijft natuurlijk verstandig om altijd een echte computer-wizard in de buurt te hebben, \'e\'en die nooit verder weg is dan ... six degrees of separation!
Ik heb gezegd.
Last modified: December 2011