tolpp.com
yazılım ve programlama günlüğü

Memoization nedir? Jan 26, 2011

İhtiyaç duyulan bir değerin sürekli olarak hesaplanması yerine bir kere hesaplanıp ihtiyaç duyulduğunda bu değerin yeniden kullanılmasına verilen addır. Bir fonksiyonel programlama dili olan haskell dilinde memoization işlemi otomatik gerçekleştirilmektedir. Memorization ile karıştırılmaması gerekir. Bir nevi hatırlama denebilir.

Gündelik yaşamdan bir bir örnekle : Ali ve Veli isimli iki çocuğu ele alalım. Ahmet amca bu çocuklara “Ev ile bakkal arasında ne kadar mesafe var?” dediğinde Ali ve Veli bu mesafeyi ölçerek bulsunlar ve Ahmet amcaya cevaplarını söylesinler. Söyledikten milisaniyeler sonra Ali sonucu unutsun, Veli de aklında tutsun. Ahmet amcanın bu soruları her iki dakikada bir sorduğunu varsayarsak, Ali de her iki dakikada bir ev ile bakkal arasında ölçüm yapmak zorunda kalacaktır. Veli’nin tek yapması gerekense hatırlamaktır.