ডায়নামিক প্রোগ্রামিং সমস্যাটিকে ছোট এবং এখনও ছোট সম্ভাব্য উপ-সমস্যাগুলিতে বিভক্ত করে। এই উপ-সমস্যাগুলি স্বাধীনভাবে সমাধান করা হয় না। বরং, এই ছোট উপ-সমস্যাগুলির ফলাফলগুলি মনে রাখা হয় এবং অনুরূপ বা ওভারল্যাপ করা উপ-সমস্যাগুলির জন্য ব্যবহার করা হয়৷
ডায়নামিক প্রোগ্রামিং ব্যবহার করা হয় যেখানে আমাদের সমস্যা আছে, যেগুলোকে একই রকম সাব-সমস্যায় ভাগ করা যায় যাতে তাদের ফলাফল পুনরায় ব্যবহার করা যায়। বেশিরভাগ ক্ষেত্রে, এই অ্যালগরিদমগুলি অপ্টিমাইজেশনের জন্য ব্যবহার করা হয়। ইন-হ্যান্ড সাব-সমস্যা সমাধান করার আগে, গতিশীল অ্যালগরিদম পূর্বে সমাধান করা উপ-সমস্যাগুলির ফলাফল পরীক্ষা করার চেষ্টা করবে। সর্বোত্তম সমাধান অর্জনের জন্য উপ-সমস্যাগুলির সমাধানগুলিকে একত্রিত করা হয়৷
৷ডায়নামিক প্রোগ্রামিং ব্যবহার করার জন্য একটি সমস্যার জন্য,
- সমস্যাটিকে ছোট ওভারল্যাপিং সাব-সমস্যাতে বিভক্ত করতে সক্ষম হওয়া উচিত।
- ছোট উপ-সমস্যাগুলির একটি সর্বোত্তম সমাধান ব্যবহার করে একটি সর্বোত্তম সমাধান অর্জন করা যেতে পারে।
- ডাইনামিক অ্যালগরিদম মেমোরাইজেশন ব্যবহার করে।
ডায়নামিক প্রোগ্রামিং সমস্যা 2 পন্থা ব্যবহার করে সমাধান করা যেতে পারে -
-
বটম আপ ডাইনামিক প্রোগ্রামিং:এই পদ্ধতিতে, আমরা প্রথমে সমস্যাটি বিশ্লেষণ করি এবং সাব-সমস্যাগুলো সমাধানের ক্রম দেখি। আমরা তুচ্ছ সাব সমস্যার সমাধান করে শুরু করি এবং প্রদত্ত সমস্যার দিকে এগিয়ে যাই।
-
টপ ডাউন ডাইনামিক প্রোগ্রামিং:এই পদ্ধতিতে, আমরা প্রদত্ত সমস্যাটিকে ভেঙে ফেলার মাধ্যমে সমাধান করা শুরু করি। আপনি যদি দেখেন যে একটি প্রদত্ত উপ-সমস্যা ইতিমধ্যেই সমাধান করা হয়েছে, তাহলে শুধু সঞ্চিত সমাধানটি ফেরত দিন।