আপনি যদি ডায়নামিক প্রোগ্রামিংটির নাম পরিবর্তন করতে পারেন তবে আপনি এটিকে কী বলবেন?
আপনি যদি ডায়নামিক প্রোগ্রামিংটির নাম পরিবর্তন করতে পারেন তবে আপনি এটিকে কী বলবেন?
উত্তর:
রিচার্ড বেলম্যানের আত্মজীবনী থেকে জানা যায় যে তিনি "গতিশীল প্রোগ্রামিং" শব্দটি ইচ্ছাকৃতভাবে বিভ্রান্ত করার জন্য বেছে নিয়েছিলেন।
1950 এর দশকগুলি গাণিতিক গবেষণার জন্য ভাল বছর ছিল না। উইলসন নামে আমাদের ওয়াশিংটনে খুব আকর্ষণীয় ভদ্রলোক ছিলেন। তিনি প্রতিরক্ষা সচিব ছিলেন এবং প্রকৃতপক্ষে তাঁর 'গবেষণা' শব্দের একটি প্যাথলজিকাল ভয় এবং বিদ্বেষ ছিল। আমি এই শব্দটি হালকাভাবে ব্যবহার করছি না; আমি এটা অবিকল ব্যবহার করছি। তাঁর মুখটি প্রশমিত হবে, তিনি লাল হয়ে যাবেন এবং লোকেরা তাঁর উপস্থিতিতে 'গবেষণা' শব্দটি ব্যবহার করলে তিনি হিংস্র হয়ে উঠতেন। আপনি কল্পনা করতে পারেন যে, তখন তিনি 'গাণিতিক' শব্দটি সম্পর্কে কী অনুভব করেছিলেন। আরএএনএন্ড কর্পোরেশন এয়ার ফোর্স দ্বারা নিযুক্ত করা হয়েছিল, এবং বিমান বাহিনীটি উইলসনকে মূলত প্রধান হিসাবে নিযুক্ত করেছিল। অতএব, আমি অনুভব করেছি যে উইন্ডসন এবং বিমানবাহিনীকে র্যাড কর্পোরেশনের ভিতরে সত্যই আমি গণিত করছি এই বিষয়টি থেকে আমার কিছু করা উচিত।
কোন শিরোনাম, কোন নাম, আমি চয়ন করতে পারি? প্রথমদিকে আমি পরিকল্পনা করতে, সিদ্ধান্ত গ্রহণে, চিন্তাভাবনায় আগ্রহী। তবে পরিকল্পনা করা, বিভিন্ন কারণে কোনও ভাল শব্দ নয়। তাই আমি 'প্রোগ্রামিং' শব্দটি ব্যবহার করার সিদ্ধান্ত নিয়েছি। আমি এই ধারণাটি পেতে চাই যে এটি গতিশীল, এটি ছিল মাল্টিস্টেজ, এটি সময়ের পরিবর্তিত — আমি ভেবেছিলাম, আসুন একটি পাথর দিয়ে দুটি পাখি মেরে ফেলুন। ক্লাসিকাল শারীরিক অর্থে 'ডায়নামিক' নামক একেবারে সুনির্দিষ্ট অর্থ সহ এমন একটি শব্দ নেওয়া যাক। এটির একটি বিশেষণ হিসাবে খুব আকর্ষণীয় সম্পত্তিও রয়েছে এবং এটি একটি 'ক্ষুদ্রতর' শব্দটি একটি ক্ষুদ্রতর অর্থে ব্যবহার করা অসম্ভব। এমন কিছু সংমিশ্রণের কথা চিন্তা করার চেষ্টা করুন যা সম্ভবত এটি একটি সংক্ষিপ্ত অর্থ প্রদান করবে। এটা অসম্ভব. সুতরাং, আমি ভেবেছিলাম "গতিশীল প্রোগ্রামিং" একটি ভাল নাম। এটি এমন কিছু ছিল যা এমনকি কংগ্রেস সদস্য আপত্তি করতে পারেন না।
(যেমন রাসেল এবং নরভিগ তাদের এআই পাঠ্যপুস্তকে উল্লেখ করেছেন, তবে এই গল্পটি অবশ্যই সত্যের একটি সৃজনশীল শোভাকর হতে হবে। বেলম্যান প্রথম ১৯৫২ সালে "গতিশীল প্রোগ্রামিং" শব্দটি ব্যবহার করেছিলেন এবং চার্লস এরউইন উইলসন ১৯৫৩ সাল পর্যন্ত প্রতিরক্ষা সচিব হননি। )
যাইহোক, বেলম্যানের মূল অনুপ্রেরণা মাল্টিস্টেজ পরিকল্পনার পরামর্শ দেয় , তবে কমপক্ষে অ্যালগরিদমিক উদ্দেশ্যে, আমি কেবল কম সংখ্যক সিলেবলের সাহায্যে ফ্রুগাল ডাউন-আপ রিকার্সনের মতো কিছু পছন্দ করতাম ।
ডিপির দুটি গুরুত্বপূর্ণ দিক রয়েছে: (১) সাবপ্রব্লেমগুলি সংজ্ঞায়িত করা (অর্থাত্ একটি "টেবিল স্থাপন করা", যা বহু-মাত্রিক অ্যারে হতে পারে সংখ্যায়, উল্লম্ব, উপলোক ইত্যাদি দ্বারা সূচকযুক্ত) এবং (২) পুনরাবৃত্তভাবে সমাধান করা subproblems। আমি "ট্যাবুলার / ট্যাবুলেটেড পুনরাবৃত্তি" নাম হিসাবে প্রস্তাব করি যা উভয় দিককেই নির্দেশ করে।
স্মৃতিচারণ একটি মোটামুটি সাধারণ রূপ।
অ্যালগোরিদম ডিজাইনে গতিশীল প্রোগ্রামিং সম্পর্কে আমার সাম্প্রতিক বক্তৃতার পরে আমি শিক্ষার্থীদের এই কৌশলটির জন্য একটি নতুন নাম প্রস্তাব করতে বলেছিলাম। আমি যখন "টুফ প্রোগ্রামিং" দেখে আনন্দিত হয়েছি তখন আমি এমন কিছু চেয়েছিলাম যা কৌশলটি আরও স্মরণীয় করে তুলতে পারে। এখানে আলোচনার পরে, আমি দুটি নাম প্রস্তাব করতে পারি, একটি শীর্ষ-ডাউন এবং একটি নীচে-আপের জন্য:
মাল্টিওয়ে-ডিভাইড এবং মেমোয়েজড-কনকয়ের (ওরফে বিভাজক ^ এম ও কনকয়ের ^ এম), এবং
সমস্ত সাব-প্রব্লেমগুলি মার্জ করুন (ওরফে মার্জ_ল)
এই কাগজটি ( পেওয়াল্ড ডোই ) এমন সমস্যাগুলিকে কল করে যেগুলিকে ডিপি " সংক্রামক " ব্যবহার করে আক্রমণ করা যেতে পারে।
আমি সম্প্রতি কয়েকজন সহকর্মীর সাথে এটি নিয়ে আলোচনা করেছি এবং একটি উত্তপ্ত আলোচনার পরে আমরা টবুলার কল ক্যাশে নিয়ে এসেছি ।
আমি ইন্ডুকটিভ প্রোগ্রামিং নামটি প্রস্তাব করব - আমাদের সময় থেকে অয়লার, কেপলার এট আল-এর পুরানো ভাল সময় পর্যন্ত এক ধরণের ব্রিজের মতো স্মেথ হিসাবে। অথবা এমনকি বিপরীত ইন্ডাকটিভ প্রোগ্রামিং । এবং হ্যাঁ, আমার কাছে ডিপি দৃ the়ভাবে ধারণাটির পুরানো ভাল অর্থে প্রবর্তনের সাথে জড়িত। স্মৃতিচারণ, ক্যাশিং, টেবিল ইত্যাদি কেবল কৌশলগুলির উপাদান, জিনিসগুলি ক্র্যাক করার পদ্ধতির মূল অংশ নয়।
সম্ভবত এমন কিছু যা শব্দের সারণী এবং ভরাটকে অন্তর্ভুক্ত করে , কারণ এটি ঘটে।
পুনরাবৃত্তি ভিউ বা পুনরাবৃত্তির দিগন্ত