هو أسلوب حل للمشاكل المعقدة عن طريق تقسيمها لمشاكل أصغر وتخزين حلولها.
يمنع إعادة حساب نفس المشكلة الفرعية مراراً وتكراراً (مثل متتالية فيبوناتشي).