Meerdimensionale indexMeerdimensionaal indexeren is een poging objecten in een twee- of meerdimensionale ruimte zodanig te rangschikken dat ze snel op positie teruggevonden kunnen worden. Voor toepassingen valt te denken aan geografische informatiesystemen. InleidingObjecten in een eendimensionale ruimte zijn eenvoudig op positie vergelijkbaar en kunnen dus worden gesorteerd, daarna kan een index worden gebruikt om een object op (of in de buurt van) een gegeven positie snel terug te vinden. Objecten in een meerdimensionale ruimte, zoals een plat vlak, kunnen natuurlijk niet zomaar op positie worden gesorteerd. Eén oplossingsrichting is het verdelen van de ruimte in vakken, en het toekennen van een uniek nummer aan elk van die vakken. De nummers kunnen vervolgens worden gesorteerd en als basis voor een index dienen. De nummers moeten niet alleen verschillend zijn, maar ook (gemakkelijk) te berekenen zijn aan de hand van de coördinaten van het gezochte punt. VoorbeeldenHet verdelen van een tweedimensionale ruimte in genummerde vakken wordt veelvuldig toegepast, dit is een eerste stap voor het opbouwen van een tweedimensionale index. AtlasAtlassen en stratenboeken bevatten achterin een 'normale' index, gesorteerd op de namen van plaatsen, rivieren, bergen enzovoorts. Achter elke naam staat een paginanummer en een vaknummer, die weer bestaat uit een kolom- en rijnummer. Soms staat er nog een kleine letter a, b, c of d achter die aangeeft in welk kwadrant van het vak het gezochte gevonden kan worden. Het is nu mogelijk de lijst anders te sorteren, namelijk op paginanummer-rij/kolomnummer-kwadrantaanduiding. Het enige dat nog ontbreekt is een afbeelding van geografische coördinaten op deze nummers; als die er zou zijn, was het mogelijk bij een gegeven coördinatenpaar het vaknummer te berekenen, de index te gebruiken en zo snel bij een lijst namen te komen van objecten die zich in de buurt van de gegeven coördinaten bevinden. Recursieve binaire vlakverdelingIn het hiernaast geschetste voorbeeld is een begrensde tweedimensionale ruimte (van (0,0) tot (16,16)) in tweeën verdeeld in zowel de x- als y-richting. Daarbij ontstaan vier vakken. Deze vakken kunnen elk weer opnieuw worden verdeeld in twee bij twee kleinere vakken, zoals geschetst in de rechterbovenhoek. De nummering van de vakken is afhankelijk van het niveau en werkt als volgt.
Het is nu mogelijk voor een willekeurig punt in de gegeven 2D-ruimte een vak te berekenen waar het in ligt, met de gewenste fijnmazigheid. De grootte van de vakken zal in de praktijk zo worden gekozen dat het aantal objecten per vak ruwweg even groot is als het aantal vakken. De verkregen codes kunnen eenvoudig worden gesorteerd en als index dienen, waarmee de 2D-index een feit is. BeperkingenDe meerdimensionale index zoals hierboven geschetst heeft een drietal belangrijke beperkingen:
Zie ook |
Portal di Ensiklopedia Dunia