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