আপনি যদি গতিশীল প্রোগ্রামিংয়ের নাম পরিবর্তন করতে পারেন ...


43

আপনি যদি ডায়নামিক প্রোগ্রামিংটির নাম পরিবর্তন করতে পারেন তবে আপনি এটিকে কী বলবেন?


1
আমি বলব ডায়নামিক প্রোগ্রামিং হ'ল ডায়নামিক প্রোগ্রামিং। এটি অ্যালগরিদম থেকে পৃথক ধারণা। আপনি যদি "ডায়নামিক প্রোগ্রামিংয়ের অ্যালগোরিদমিক অ্যাপ্লিকেশনগুলি" জিজ্ঞাসা করেন তবে এটি আমার কাছে আরও অর্থবোধ করবে।
যোশিও ওকামোটো

1
অবশ্যই ডিপি ডিপি, তবে প্রোগ্রামিং এবং ডায়নামিক উভয়ই আজকে কিছু আলাদা বোঝায় তাই আমি যখন ডায়নামিক প্রোগ্রামিং শিখি তখন আমার ইচ্ছা হয় এর আলাদা নাম হয় had
জ্যাক

4
দুঃখিত, আমি যথেষ্ট পরিষ্কার ছিল না। আপনি কি নিয়ন্ত্রণ এবং নীতি পরিকল্পনা ইত্যাদির ব্যবহার এবং এমনকি স্টোকাস্টিক ডায়নামিক প্রোগ্রামিং সহ সাধারণভাবে গতিশীল প্রোগ্রামিংয়ে আগ্রহী, বা অ্যালগোরিদম ডিজাইনের পদ্ধতি হিসাবে কেবল গতিশীল প্রোগ্রামিংয়ে? এখানকার প্রধান শ্রোতা কেবলমাত্র পরবর্তীকেন্দ্রিকদেরই জানতেন তবে আপনার প্রশ্নটি বেশ সাধারণ যে এতে পূর্বেরটি অন্তর্ভুক্ত থাকবে।
ইয়োশিও ওকামোটো

1
ইয়োশিও, আমি মনে করি আপনার উত্তরটির পার্থক্যের বিষয়ে আরও সাধারণ ধারণাটি ব্যাখ্যা করা উচিত কারণ এটি আমাদের অনেককে আলোকিত করতে পারে।
রাফেল

2
সম্পূর্ণরূপে জিহ্বা-না-করে অন্য একটি ধারণা: "আপনারা গুগলে চাকরি পান" - আমার শিক্ষার্থীদের যে অভিজ্ঞতা হয়েছে তার উপর ভিত্তি করে :)
সুরেশ ভেঙ্কট

উত্তর:


50

রিচার্ড বেলম্যানের আত্মজীবনী থেকে জানা যায় যে তিনি "গতিশীল প্রোগ্রামিং" শব্দটি ইচ্ছাকৃতভাবে বিভ্রান্ত করার জন্য বেছে নিয়েছিলেন।

1950 এর দশকগুলি গাণিতিক গবেষণার জন্য ভাল বছর ছিল না। উইলসন নামে আমাদের ওয়াশিংটনে খুব আকর্ষণীয় ভদ্রলোক ছিলেন। তিনি প্রতিরক্ষা সচিব ছিলেন এবং প্রকৃতপক্ষে তাঁর 'গবেষণা' শব্দের একটি প্যাথলজিকাল ভয় এবং বিদ্বেষ ছিল। আমি এই শব্দটি হালকাভাবে ব্যবহার করছি না; আমি এটা অবিকল ব্যবহার করছি। তাঁর মুখটি প্রশমিত হবে, তিনি লাল হয়ে যাবেন এবং লোকেরা তাঁর উপস্থিতিতে 'গবেষণা' শব্দটি ব্যবহার করলে তিনি হিংস্র হয়ে উঠতেন। আপনি কল্পনা করতে পারেন যে, তখন তিনি 'গাণিতিক' শব্দটি সম্পর্কে কী অনুভব করেছিলেন। আরএএনএন্ড কর্পোরেশন এয়ার ফোর্স দ্বারা নিযুক্ত করা হয়েছিল, এবং বিমান বাহিনীটি উইলসনকে মূলত প্রধান হিসাবে নিযুক্ত করেছিল। অতএব, আমি অনুভব করেছি যে উইন্ডসন এবং বিমানবাহিনীকে র‌্যাড কর্পোরেশনের ভিতরে সত্যই আমি গণিত করছি এই বিষয়টি থেকে আমার কিছু করা উচিত।

কোন শিরোনাম, কোন নাম, আমি চয়ন করতে পারি? প্রথমদিকে আমি পরিকল্পনা করতে, সিদ্ধান্ত গ্রহণে, চিন্তাভাবনায় আগ্রহী। তবে পরিকল্পনা করা, বিভিন্ন কারণে কোনও ভাল শব্দ নয়। তাই আমি 'প্রোগ্রামিং' শব্দটি ব্যবহার করার সিদ্ধান্ত নিয়েছি। আমি এই ধারণাটি পেতে চাই যে এটি গতিশীল, এটি ছিল মাল্টিস্টেজ, এটি সময়ের পরিবর্তিত — আমি ভেবেছিলাম, আসুন একটি পাথর দিয়ে দুটি পাখি মেরে ফেলুন। ক্লাসিকাল শারীরিক অর্থে 'ডায়নামিক' নামক একেবারে সুনির্দিষ্ট অর্থ সহ এমন একটি শব্দ নেওয়া যাক। এটির একটি বিশেষণ হিসাবে খুব আকর্ষণীয় সম্পত্তিও রয়েছে এবং এটি একটি 'ক্ষুদ্রতর' শব্দটি একটি ক্ষুদ্রতর অর্থে ব্যবহার করা অসম্ভব। এমন কিছু সংমিশ্রণের কথা চিন্তা করার চেষ্টা করুন যা সম্ভবত এটি একটি সংক্ষিপ্ত অর্থ প্রদান করবে। এটা অসম্ভব. সুতরাং, আমি ভেবেছিলাম "গতিশীল প্রোগ্রামিং" একটি ভাল নাম। এটি এমন কিছু ছিল যা এমনকি কংগ্রেস সদস্য আপত্তি করতে পারেন না।

(যেমন রাসেল এবং নরভিগ তাদের এআই পাঠ্যপুস্তকে উল্লেখ করেছেন, তবে এই গল্পটি অবশ্যই সত্যের একটি সৃজনশীল শোভাকর হতে হবে। বেলম্যান প্রথম ১৯৫২ সালে "গতিশীল প্রোগ্রামিং" শব্দটি ব্যবহার করেছিলেন এবং চার্লস এরউইন উইলসন ১৯৫৩ সাল পর্যন্ত প্রতিরক্ষা সচিব হননি। )

যাইহোক, বেলম্যানের মূল অনুপ্রেরণা মাল্টিস্টেজ পরিকল্পনার পরামর্শ দেয় , তবে কমপক্ষে অ্যালগরিদমিক উদ্দেশ্যে, আমি কেবল কম সংখ্যক সিলেবলের সাহায্যে ফ্রুগাল ডাউন-আপ রিকার্সনের মতো কিছু পছন্দ করতাম ।


10
অবশ্যই, আমি কি চাই সত্যিই কি মত পুনঃনামকরণ "বেলম্যান এর সমীকরণ", অথবা কম্পিউটার বিজ্ঞানীরা এটা "কোনো সবটা পুনরাবৃত্তি" কল হিসাবে।
জেফি

2
আপনার উত্তরটি এখানে ব্যবহার করা হয়েছিল: biostar.stackexchange.com/questions/17954
পিয়েরে

28

ডিপির দুটি গুরুত্বপূর্ণ দিক রয়েছে: (১) সাবপ্রব্লেমগুলি সংজ্ঞায়িত করা (অর্থাত্ একটি "টেবিল স্থাপন করা", যা বহু-মাত্রিক অ্যারে হতে পারে সংখ্যায়, উল্লম্ব, উপলোক ইত্যাদি দ্বারা সূচকযুক্ত) এবং (২) পুনরাবৃত্তভাবে সমাধান করা subproblems। আমি "ট্যাবুলার / ট্যাবুলেটেড পুনরাবৃত্তি" নাম হিসাবে প্রস্তাব করি যা উভয় দিককেই নির্দেশ করে।


6
সারণী পুনরাবৃত্তি এটি একটি সুন্দর অনুভূতি আছে।
সুরেশ ভেঙ্কট ২

21

স্মৃতিচারণ একটি মোটামুটি সাধারণ রূপ।


8
স্মৃতিচারণ ব্যবহৃত হয়, তবে ডিপি চিহ্নিত করে না।
জ্যাক

20
যথাযথভাবে। মেমোয়েজেশন দুর্ঘটনাক্রমে গতিশীল প্রোগ্রামিং।
জেফি

@ প্রফেসর এরিকনস - খুব ভাল বলেছেন। আমি হাসি থামাতে পারছি না.
আকাশ কুমার

7
তবুও, যদি আমরা ডিপির জন্য একটি নতুন নাম চয়ন করতে পারি, তবে স্মৃতিচারণ ব্যবহার করা এটির জন্য উপযুক্ত। উদাহরণস্বরূপ "স্মৃতিচারণ ব্যবহার করে বহু দূরবর্তী সময়ে সম্পাদনার দূরত্ব গণনা করা যায়"।
নোটাম

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

8

বিভাজন এবং বিজয়ের সাথে যেতে , আমি স্প্লাইস এবং সম্মিলন বলব

আমি সাধারণত ডিপি পড়ানোর / বোঝানোর সময় দুটি শব্দ, বিভাজন এবং একত্রিত করি ; তবে স্প্লাইস এবং সংযুক্তভাবে স্পষ্টভাবে ব্যবহার করা হয়নি। কখনও কখনও আমি দুটি প্যারাডাইমগুলির বিপরীতে ওভারল্যাপিং-ডিভিশন-ও-বিজয় ব্যবহার করেছি ।


6

অ্যালগোরিদম ডিজাইনে গতিশীল প্রোগ্রামিং সম্পর্কে আমার সাম্প্রতিক বক্তৃতার পরে আমি শিক্ষার্থীদের এই কৌশলটির জন্য একটি নতুন নাম প্রস্তাব করতে বলেছিলাম। আমি যখন "টুফ প্রোগ্রামিং" দেখে আনন্দিত হয়েছি তখন আমি এমন কিছু চেয়েছিলাম যা কৌশলটি আরও স্মরণীয় করে তুলতে পারে। এখানে আলোচনার পরে, আমি দুটি নাম প্রস্তাব করতে পারি, একটি শীর্ষ-ডাউন এবং একটি নীচে-আপের জন্য:
মাল্টিওয়ে-ডিভাইড এবং মেমোয়েজড-কনকয়ের (ওরফে বিভাজক ^ এম ও কনকয়ের ^ এম), এবং
সমস্ত সাব-প্রব্লেমগুলি মার্জ করুন (ওরফে মার্জ_ল)


1
আমি মনে করি না যে স্বাভাবিক বিভাজন এবং বিজয় (মার্জেসোর্টের মতো) এর সাথে একটি শক্তিশালী সমিতি তৈরি করা একটি ভাল ধারণা। সেখানে সাব-প্রবলেমগুলি স্বাধীনভাবে সমাধান করা হয় এবং কেবলমাত্র দুটি ফলাফল একত্রিত করা হয়। ডিপিতে, পরীক্ষিত সাব-সমস্যাগুলি স্বতন্ত্র নয় এবং সমস্ত সংমিশ্রণগুলি পরীক্ষা করা হয়। (উভয় দিক থেকে) সুতরাং আমি মনে করি একটি নামের সাথে মিলের ধারণা তৈরি না করে পার্থক্যটি হাইলাইট করা উচিত।
রাফেল

@ রাফেল, আমি একটি শক্তিশালী সমিতি তৈরির বিপদ সম্পর্কে উদ্বেগ প্রকাশ করছি, তবে পার্থক্য সম্পর্কে আপনার বক্তব্যের সাথে আমি একমত নই। ডিপি এটা অত্যন্ত গুরুত্বপূর্ণ যে subproblems হয় "স্বাধীনভাবে মীমাংসিত" যদিও subsubproblems সমাধান যৌথরূপে ব্যবহৃত হয়। আমি সাধারণত উল্লেখ করি যে যদি কোনও ওরাকল আপনাকে সঠিক বিভাগ বলে দেয় তবে এটি বিভাজন এবং বিজয়ী হতে পারে, তবে যেহেতু আমি গ্রীক বলতে পারি না (আমার পিএইচডি উপদেষ্টার বিপরীতে), আমাকে সমস্ত সম্ভাব্য বিভাগ চেষ্টা করতে হবে।
জ্যাক

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

@ রাফেল, পেডেন্টিক হওয়ার জন্য দুঃখিত, তবে যেহেতু এটি পাঠদান সম্পর্কে একটি প্রশ্ন, তাই আমি চাই যে সাবপ্রব্লেম স্বতন্ত্রতার ধারণাটি পরিষ্কার হোক এবং কেবল "ধারণাগতভাবে স্বতন্ত্র" বলা সুনির্দিষ্ট নয়। আপনি কোনও বিভাগ চেষ্টা করার সময়, আপনার উত্পাদিত সাব-সমস্যাগুলি নির্ভরতা নাও থাকতে পারে। আপনার অন্যান্য মন্তব্যগুলি ডিপি অ্যালগরিদমের পদক্ষেপগুলিতে ফোকাস করে; আমি প্রথমে সমস্যার সমাধান করার জন্য সঠিকভাবে সংজ্ঞায়িত করতে ফোকাস করতে পছন্দ করি। আমার প্রিয় উদাহরণগুলি: ন্যূনতম ওজনের ত্রিভঙ্গকরণ এবং ন্যূনতম বহুভুজের ন্যূনতম উত্তোলন ( cs.unc.edu/~snoeyink/demos/convdecomp/MWTDemo.html )
জ্যাক ২

দুল হওয়া ঠিক আছে। তবে শব্দের নির্বাচনের পছন্দগত আমদানির বিষয়টি বিবেচনা করুন: আপনি শিক্ষার্থীদের বলছেন যে সাবপ্রব্লেমগুলি স্বতন্ত্র এবং তারপরে তাদের একটি অ্যালগোরিদম দিন যা তাদের গণনা পৃথক করে না , তবে বাস্তবে "আন্তঃবিশ্বীকৃত" গণনার উপর খুব বেশি নির্ভর করে। আমি মনে করি এটি খুব বিভ্রান্তিকর হতে পারে। অতএব, আপনাকে সত্যিকার অর্থে ধারণাগত / গাণিতিক / অপ্টিমাইজেশন / ... এবং গণনাগত স্বাধীনতা এক পর্যায়ে আলাদা করতে হবে।
রাফেল


2

আমি সম্প্রতি কয়েকজন সহকর্মীর সাথে এটি নিয়ে আলোচনা করেছি এবং একটি উত্তপ্ত আলোচনার পরে আমরা টবুলার কল ক্যাশে নিয়ে এসেছি ।


3
এটি আউটসোর্স করা কল সেন্টারে আপনি যে কিছু করছেন বলে মনে হচ্ছে;)
সুরেশ ভেঙ্কট

2

আমি ইন্ডুকটিভ প্রোগ্রামিং নামটি প্রস্তাব করব - আমাদের সময় থেকে অয়লার, কেপলার এট আল-এর পুরানো ভাল সময় পর্যন্ত এক ধরণের ব্রিজের মতো স্মেথ হিসাবে। অথবা এমনকি বিপরীত ইন্ডাকটিভ প্রোগ্রামিং । এবং হ্যাঁ, আমার কাছে ডিপি দৃ the়ভাবে ধারণাটির পুরানো ভাল অর্থে প্রবর্তনের সাথে জড়িত। স্মৃতিচারণ, ক্যাশিং, টেবিল ইত্যাদি কেবল কৌশলগুলির উপাদান, জিনিসগুলি ক্র্যাক করার পদ্ধতির মূল অংশ নয়।


ডিপির সাথে আমার প্রধান সমস্যা হ'ল পি। সুতরাং আমি এই ধারণার অনুরাগী নই ..
সুরেশ ভেঙ্কট

1

সম্ভবত এমন কিছু যা শব্দের সারণী এবং ভরাটকে অন্তর্ভুক্ত করে , কারণ এটি ঘটে।


7
বাঃ। ডায়নামিক প্রোগ্রামিং টেবিলগুলি সম্পর্কে নয় ; এটি স্মার্ট পুনরাবৃত্তি সম্পর্কে।
জেফি

3
আমি দুটি দিক পৃথক করা ভাল বলে মনে করি: "সমস্যা থেকে একটি পুনরাবৃত্ত কাঠামো বের করা এবং পুনরাবৃত্তি হিসাবে লিখুন" (মডেলিং) এবং "নীচের অংশে প্রাপ্ত পুনরাবৃত্তিটি সমাধান করা" (অ্যালগরিদম)। আমি গতিশীল প্রোগ্রামিং অনুভব করি (অ্যালগোরিদমগুলিতে) উভয়কেই বোঝায় এবং লিনিয়ার প্রোগ্রামিং, পূর্ণসংখ্যা প্রোগ্রামিং, সেমিডেফিনাইট প্রোগ্রামিং ইত্যাদির ক্ষেত্রেও এটি
যোশিও ওকামোটো ২

1
টেবিলগুলি কখনও কখনও ব্যবহৃত হয়। গাছগুলির উপরে ডায়নামিক প্রোগ্রামিং (উদাহরণস্বরূপ: সর্বাধিক স্বতন্ত্র সেট) পুনরাবৃত্তি স্মরণে রাখতে সাধারণত একটি টেবিল ব্যবহার করে না [= অ্যারে]; এটি একটি গাছ ব্যবহার করে বা কিছু ক্ষেত্রে অ্যারে গাছ, বা গাছের একটি অ্যারে বা কোনও ক্ষেত্রে গাছের কার্তেসিয়ান পণ্য ব্যবহার করে। একইভাবে ডগের উপর ডায়নামিক প্রোগ্রামিং বা বৃত্তাকার গাছের গ্রাফের গ্রাফের জন্য গাছের পচন ধরে ডায়নামিক প্রোগ্রামিংয়ের জন্য।
জেফি

1
জেফ, একটি প্রযুক্তির নাম খুব কমই সব অ্যাপ্লিকেশনকে কভার করে। উদাহরণস্বরূপ "তির্যককরণ" নিন; উন্নত অ্যাপ্লিকেশনগুলিতে, কোথাও কোথাও কোনও ত্রিভুজ নেই (বা কমপক্ষে ক্রিয়াকলাপের একচেটিয়া ক্ষেত্র নয়)। তবে আমি "টেবিল ফিলিং" এর সাথে খুব বেশি প্রেমে পড়ি না, যদিও আমি মনে করি এটি নতুনদের জন্য যুক্তিসঙ্গত নাম হতে পারে।
রাফেল

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

1

পুনরাবৃত্তি ভিউ বা পুনরাবৃত্তির দিগন্ত


অলস দিগন্ত? প্রয়োজনীয় ফলাফল না হওয়া পর্যন্ত আপনি প্রচুর ফলাফল গণনা করতে বিলম্ব করেন। ডিপি পুনরুক্তি করা প্রয়োজন।
চাদ ব্রিউবেকার

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.