আমি একটি সমস্যা জুড়ে দৌড়েছি যেখানে লক্ষ্য ছিল ডায়নামিক প্রোগ্রামিং (অন্যান্য পদ্ধতির পরিবর্তে) ব্যবহার করা। বিস্তৃত হওয়ার জন্য একটি দূরত্ব এবং বিভিন্ন দৈর্ঘ্যের তারগুলির একটি সেট রয়েছে। দূরত্বটি ঠিকভাবে ছড়িয়ে দিতে নূন্যতম সংখ্যক কেবলের প্রয়োজন কী?
আমার কাছে এটি ন্যাপস্যাক সমস্যার মতো মনে হয়েছিল , তবে যেহেতু নির্দিষ্ট দৈর্ঘ্যের বহুগুণ থাকতে পারে, এটি 0/1 ন্যাপস্যাক সমস্যাটির পরিবর্তে বাউন্ডেড ন্যাপস্যাক সমস্যা ছিল। (প্রতিটি আইটেমের মান এটির ওজন হিসাবে বিবেচনা করুন)) নিষ্পাপ দৃষ্টিভঙ্গি গ্রহণ (এবং অনুসন্ধানের জায়গার প্রসারণ সম্পর্কে যত্নশীল নয়), আমি যে পদ্ধতিটি সীমান্ত ন্যাপস্যাক সমস্যাটিকে 0/1 ন্যাপস্যাক সমস্যায় রূপান্তরিত করতে ব্যবহার করি তা সহজ ছিল was এককগুলিতে বহুগুণ ছড়িয়ে দিন এবং সুপরিচিত গতিশীল প্রোগ্রামিং অ্যালগরিদম প্রয়োগ করুন। দুর্ভাগ্যক্রমে, এটি সাব-অনুকূল ফলাফলের দিকে নিয়ে যায়।
উদাহরণস্বরূপ, প্রদত্ত তারগুলি:
1 x 10 ফুট,
1 x 7ft,
1 x 6ft,
5 x 3ft,
6 x 2ft,
7 x 1ft
যদি লক্ষ্য স্প্যানটি 13 ফিট হয় তবে ডিপি অ্যালগরিদম দূরত্বটি বিস্তারে 7 + 6 বাছাই করে। একটি লোভী অ্যালগরিদম 10 + 3 বাছাই করত তবে এটি ন্যূনতম সংখ্যক কেবলের জন্য একটি টাই। 15 ফুট বিস্তৃত করার চেষ্টা করার সময় সমস্যাটি দেখা দেয়। ডিপি অ্যালগরিদম 4 টি তারের জন্য 6 + 3 + 3 + 3 বাছাই শেষ করেছে, যখন লোভী অ্যালগরিদম সঠিকভাবে কেবল 3 কেবল তার জন্য 10 + 3 + 2 বাছাই করে।
যাইহোক, 0/1 তে আবদ্ধ রূপান্তরিত করার জন্য কিছু হালকা স্ক্যানিং করা দেখে মনে হচ্ছে একাধিক আইটেমকে {পি, 2 পি, 4 পি ... convert এ রূপান্তর করার সুপরিচিত পদ্ধতির মতো} আমার প্রশ্ন হ'ল পি + 2 পি + 4 পি যদি একাধিক আইটেমের সংখ্যার যোগ না করে তবে এই রূপান্তরটি কীভাবে কাজ করবে। উদাহরণস্বরূপ: আমার কাছে 5 3 ফিট কেবল রয়েছে। আমি খুব ভালভাবে {3, 2x3, 4x3 add যুক্ত করতে পারি না কারণ 3 + 2x3 + 4x3> 5x3। পরিবর্তে আমি কি {3, 4x3? যুক্ত করব?
[আমি বর্তমানে "ওরেগন ট্রেইল ন্যাপস্যাক সমস্যা" কাগজটি ছাঁটাই করার চেষ্টা করছি, তবে বর্তমানে এটি ব্যবহার করা পদ্ধতির মতো দেখে মনে হচ্ছে গতিশীল প্রোগ্রামিং নেই]]