Memoization

Memoïseren (of memoïseren) is een techniek uit de computerprogrammering om een computerprogramma te optimaliseren. Computerprogramma's roepen functies aan. Elke functie berekent een resultaat dat het zal teruggeven. Memoïsatie is eenvoudig: voordat de waarde wordt teruggegeven van de functie-aanroep, wordt deze opgeslagen in een tabel (of associatieve array). Net als een cache zal deze array slechts een beperkt aantal resultaten kunnen opslaan. De functie kan dan zo worden veranderd dat hij probeert de waarde van de invoer op te zoeken in zijn opzoektabel. Dit opzoeken is veel minder duur dan het opnieuw uitvoeren van de berekening. Ook als een cache: de gegevenstabel wordt periodiek opgeschoond, bijvoorbeeld de waarden die gedurende een bepaalde tijd niet zijn opgezocht worden verwijderd.

Hoewel verwant met caching, verwijst memoization naar een specifiek geval van deze optimalisatie, waarmee het zich onderscheidt van vormen van caching zoals buffering of paginavervanging. In de context van sommige logische programmeertalen staat memoization ook bekend als tabling; zie ook lookup table.

Vragen en antwoorden

V: Wat is memoïsering?


A: Memoïsatie is een techniek in computerprogrammering die programma's optimaliseert door de resultaten van functieaanroepen op te slaan in een tabel of associatieve matrix.

V: Hoe werkt memoïsatie?


A: Voordat een waarde wordt teruggegeven van een functieaanroep, wordt deze opgeslagen in een opzoektabel. Later zal de functie de waarde van de invoer opzoeken in de opzoektabel in plaats van deze opnieuw te berekenen, wat veel minder duur is.

V: Wat zijn de voordelen van memoïsatie?


A: Memoïsatie kan de prestaties van programma's verbeteren door het aantal benodigde berekeningen te verminderen. Het is ook een eenvoudige optimalisatietechniek die op veel programma's kan worden toegepast.

V: Hoe werkt de opzoektabel?


A: De opzoektabel slaat de waarden op die door de functieaanroepen worden geretourneerd. Net als een cache heeft het een limiet op het aantal resultaten dat het kan opslaan, en het wordt periodiek opgeschoond door waarden te verwijderen die al een tijdje niet gebruikt zijn.

V: Wat onderscheidt memoïsatie van andere vormen van caching?


A: Memoïsatie is een specifiek geval van caching dat verwijst naar het opslaan van de resultaten van functie-aanroepen. Het verschilt van andere vormen van caching zoals bufferen of paginavervanging.

V: Wordt memoïsatie gebruikt in logische programmeertalen?


A: Ja, memoïsatie wordt in sommige logische programmeertalen ook wel tabling genoemd.

V: Wat is het verband tussen memoïsatie en een opzoektabel?


A: Memoïsatie houdt in dat u een opzoektabel gebruikt om de resultaten van functieaanroepen op te slaan. De functie kan waarden in de tabel opzoeken in plaats van ze opnieuw te berekenen.

AlegsaOnline.com - 2020 / 2023 - License CC3