एक छात्र, एलिस ने अगले हफ्तों में बहुत सारे होमवर्क किए हैं। होमवर्क का प्रत्येक सामान उसे एक दिन में ले जाता है। प्रत्येक आइटम की एक समय सीमा भी होती है, और उसके ग्रेड पर एक नकारात्मक प्रभाव पड़ता है (एक वास्तविक संख्या मान लें, केवल तुलनीयता मानने के लिए बोनस अंक), अगर वह समय सीमा याद आती है।
एक फ़ंक्शन लिखें, जिसमें (समय सीमा, ग्रेड प्रभाव) की एक सूची दी गई है, जिसमें उस समय के लिए होमवर्क करना है जो उस दिन उसके ग्रेड पर बुरे प्रभाव के योग को कम करता है।
अंत में सभी होमवर्क करना पड़ता है, लेकिन अगर वह किसी आइटम के लिए समय सीमा याद करता है, तो इससे कोई फर्क नहीं पड़ता कि वह कितनी देर में बदल जाता है।
एक वैकल्पिक सूत्रीकरण में:
ACME कॉर्प ग्राहकों को पानी की आपूर्ति करना चाहता है। वे सभी एक ही ढलान वाली सड़क पर रहते हैं। ACME के पास सड़क के किनारे कई कुएं हैं। प्रत्येक कुएं में एक ग्राहक के लिए पर्याप्त पानी होता है। आपूर्ति किए जाने के लिए ग्राहक विभिन्न राशियों की बोली लगाते हैं। पानी केवल नीचे की ओर बहता है। जो ग्राहक आपूर्ति करने के लिए चुनकर राजस्व को अधिकतम करें।
हम बाल्टी प्रकार का उपयोग करके समय सीमा को सॉर्ट कर सकते हैं (या बस मान लें कि हम पहले ही समय सीमा के अनुसार हल कर चुके हैं)।
यदि हम पहले ग्रेड प्रभाव से उतरते हैं, तो हम एक लालची एल्गोरिथ्म के साथ आसानी से समस्या को हल कर सकते हैं। वह समाधान O (n log n) से बेहतर नहीं होगा।
मेडियन ऑफ़ मेडियंस से प्रेरित और यादृच्छिक न्यूनतम फैले हुए पेड़ के एल्गोरिदम, मुझे संदेह है कि हम अपनी यादृच्छिक समयबद्धता / प्रवाह समस्या को (यादृच्छिक रूप से) रैखिक समय में भी हल कर सकते हैं।
मैं खोज रहा हूँ:
- एक (संभावित यादृच्छिक) रैखिक समय एल्गोरिथ्म
- या वैकल्पिक रूप से एक तर्क है कि रैखिक समय संभव नहीं है
एक कदम पत्थर के रूप में:
- मैंने पहले ही साबित कर दिया है कि सिर्फ यह जानना कि कौन सी वस्तुएं उनकी समय सीमा से पहले की जा सकती हैं, रैखिक समय में पूर्ण अनुसूची का पुनर्निर्माण करने के लिए पर्याप्त है। (वह अंतर्दृष्टि दूसरे सूत्रीकरण पर आधारित है जहाँ मैं केवल प्रमाणपत्र के बारे में पूछ रहा हूँ।)
- एक सरल (अभिन्न!) रैखिक कार्यक्रम इस समस्या को मॉडल कर सकता है।
- इस कार्यक्रम के द्वंद्व का उपयोग करते हुए, कोई भी उम्मीदवार को इष्टतम समय के लिए रैखिक समय में प्रस्तावित समाधान की जांच कर सकता है, अगर किसी को दोहरे कार्यक्रम का समाधान भी दिया जाता है। (दोनों समाधान बिट्स की एक रैखिक संख्या में दर्शाए जा सकते हैं।)
आदर्श रूप से, मैं इस समस्या को एक मॉडल में हल करना चाहता हूं जो केवल ग्रेड प्रभावों के बीच तुलना का उपयोग करता है, और वहां संख्याओं को ग्रहण नहीं करता है।
इस समस्या के लिए मेरे पास दो दृष्टिकोण हैं --- एक समय सीमा और प्रभाव का उपयोग करते हुए treaps पर आधारित, दूसरा क्विकसेलेक्ट-जैसे यादृच्छिक धुरी तत्वों को चुनने और प्रभाव द्वारा आइटमों को विभाजित करने पर आधारित है। दोनों के पास सबसे खराब मामले हैं जो O (n लॉग एन) या बदतर प्रदर्शन को बल देते हैं, लेकिन मैं एक साधारण विशेष मामले का निर्माण करने में सक्षम नहीं हूं जो दोनों के प्रदर्शन को नीचा दिखाता है।