पूर्ण बहुपद-काल सन्निकटन प्रणाली
पूर्ण बहुपद-समय सन्निकटन योजना (एफपीटीएएस) फ़ंक्शन समस्याओं, विशेष रूप से अनुकूलन समस्याओं के अनुमानित समाधान खोजने के लिए एक कलन विधि है। एक FPTAS इनपुट के रूप में समस्या का एक उदाहरण और एक पैरामीटर ε > 0 लेता है। यह आउटपुट के रूप में कम से कम एक मान लौटाता है सही मान का गुना, और अधिक से अधिक सही मान का गुना.
अनुकूलन समस्याओं के संदर्भ में, सही मूल्य को इष्टतम समाधान का मूल्य समझा जाता है, और अक्सर यह निहित होता है कि एफपीटीएएस को एक वैध समाधान उत्पन्न करना चाहिए (और केवल समाधान का मूल्य नहीं)। किसी मान को वापस करना और उस मान के साथ समाधान ढूंढना यह मानने के बराबर है कि समस्या में स्वयं कम करने की क्षमता है।
महत्वपूर्ण बात यह है कि एफपीटीएएस का रन-टाइम समस्या आकार और 1/ε में बहुपद है। यह सामान्य बहुपद-समय सन्निकटन योजना (पीटीएएस) के विपरीत है। सामान्य पीटीएएस का रन-टाइम प्रत्येक विशिष्ट ε के लिए समस्या आकार में बहुपद है, लेकिन 1/ε में घातीय हो सकता है।[1] एफपीटीएएस शब्द का उपयोग एफपीटीएएस वाली समस्याओं के वर्ग को संदर्भित करने के लिए भी किया जा सकता है। एफपीटीएएस पीटीएएस का एक उपसमुच्चय है, और जब तक पी = एनपी समस्या नहीं है|पी = एनपी, यह एक सख्त उपसमुच्चय है।[2]
अन्य जटिलता वर्गों से संबंध
एफपीटीएएस में सभी समस्याएं मानक पैरामीटराइजेशन के संबंध में निश्चित-पैरामीटर ट्रैक करने योग्य हैं।[3] बहुपद रूप से बंधे उद्देश्य फ़ंक्शन के साथ किसी भी दृढ़ता से एनपी-पूर्ण | दृढ़ता से एनपी-हार्ड अनुकूलन समस्या में एफपीटीएएस नहीं हो सकता है जब तक कि पी = एनपी न हो।[4] हालाँकि, उलटा विफल रहता है: उदा. यदि पी, एनपी के बराबर नहीं है, तो नैपसैक समस्याओं की सूची#एकाधिक बाधाएं दृढ़ता से एनपी-हार्ड नहीं हैं, लेकिन इष्टतम उद्देश्य बहुपद रूप से बंधे होने पर भी कोई एफपीटीएएस नहीं है।[5]
एक गतिशील प्रोग्राम को एफपीटीएएस में परिवर्तित करना
गेरहार्ड जे. वोएजिंजर[6] गतिशील प्रोग्रामिंग के एक निश्चित वर्ग को एफपीटीएएस में परिवर्तित करने के लिए एक सामान्य योजना प्रस्तुत की गई।
इनपुट
यह योजना अनुकूलन समस्याओं को संभालती है जिसमें इनपुट को निम्नानुसार परिभाषित किया गया है:
- इनपुट n वैक्टर, x से बना है1,...,एक्सn.
- प्रत्येक इनपुट वेक्टर कुछ से बना होता है गैर-ऋणात्मक पूर्णांक, कहाँ इनपुट पर निर्भर हो सकता है.
- इनपुट वैक्टर के सभी घटक बाइनरी में एन्कोड किए गए हैं। तो समस्या का आकार O(n+log(X)) है, जहां X सभी वैक्टरों में सभी घटकों का योग है।
अत्यंत सरल गतिशील कार्यक्रम
यह माना जाता है कि समस्या में राज्यों का उपयोग करते हुए एक गतिशील-प्रोग्रामिंग (डीपी) एल्गोरिदम है। प्रत्येक राज्य कुछ से बना एक वेक्टर है गैर-ऋणात्मक पूर्णांक, कहाँ इनपुट से स्वतंत्र है. डीपी n चरणों में काम करती है। प्रत्येक चरण i पर, यह इनपुट x को संसाधित करता हैi, और राज्यों एस का एक सेट बनाता हैi. प्रत्येक राज्य इनपुट x का उपयोग करके समस्या का आंशिक समाधान एन्कोड करता है1,...,एक्सi. डीपी के घटक हैं:
- एक सेट एस0 प्रारंभिक अवस्थाओं का.
- संक्रमण कार्यों का एक सेट एफ। F में प्रत्येक फ़ंक्शन f एक जोड़ी (स्टेट, इनपुट) को एक नई स्थिति में मैप करता है।
- एक उद्देश्य फ़ंक्शन जी, एक राज्य को उसके मूल्य पर मैप करता है।
डीपी का एल्गोरिदम है:
- चलो एस0 := प्रारंभिक अवस्थाओं का समुच्चय.
- k = 1 से n के लिए करें:
- चलो एसk:= {f(s,xk) | एफ में एफ, एस में एसk−1}
- आउटपुट न्यूनतम/अधिकतम {g(s) | एस में एसn}.
डीपी का रन-टाइम संभावित राज्यों की संख्या में रैखिक है। सामान्य तौर पर, यह संख्या इनपुट समस्या के आकार में घातांकीय हो सकती है: यह O(n V) में हो सकती हैb), जहां V एक राज्य में प्रदर्शित होने वाला सबसे बड़ा पूर्णांक है। यदि V, O(X) में है, तो रन-टाइम O(n X) में हैb), जो केवल छद्म-बहुपद समय है, क्योंकि यह समस्या आकार में घातीय है जो O(लॉग X) में है।
इसे बहुपद बनाने का तरीका राज्य-स्थान को छोटा करना है: प्रत्येक चरण में सभी संभावित राज्यों को रखने के बजाय, केवल राज्यों का एक उपसमूह रखें; उन राज्यों को हटा दें जो अन्य राज्यों के काफी करीब हैं। कुछ शर्तों के तहत, यह ट्रिमिंग इस तरह से की जा सकती है जिससे उद्देश्य मूल्य में बहुत अधिक बदलाव न हो।
इसे औपचारिक रूप देने के लिए, हम मानते हैं कि मौजूदा समस्या में एक गैर-नकारात्मक पूर्णांक वेक्टर d = (d) है1,...,डीb), जिसे समस्या का डिग्री वेक्टर कहा जाता है। प्रत्येक वास्तविक संख्या r>1 के लिए, हम कहते हैं कि दो राज्य-वेक्टर s हैं1,एस2 हैं (d,r)-बंद करें यदि, 1,...,b में प्रत्येक निर्देशांक j के लिए: (विशेष रूप से, यदि डीj=0 कुछ j के लिए, तो ).
कोई समस्या अत्यंत कल्याणकारी कहलाती है यदि वह निम्नलिखित तीन शर्तों को पूरा करती हो:
- निकटता को संक्रमण कार्यों द्वारा संरक्षित किया जाता है: किसी भी r>1 के लिए, किसी भी संक्रमण फ़ंक्शन f के लिए F में, किसी भी इनपुट-वेक्टर x के लिए, और किन्हीं दो राज्य-वेक्टर s के लिए1,एस2, निम्नलिखित धारण करता है: यदि एस1 (डी,आर)-एस के करीब है2, फिर f(s1,x) (d,r)-f(s) के करीब है2,एक्स)।
- इसके लिए पर्याप्त शर्त की जाँच निम्नानुसार की जा सकती है। F में प्रत्येक फ़ंक्शन f(s,x) के लिए, और 1,...,b में प्रत्येक निर्देशांक j के लिए, f द्वारा निरूपित करेंj(s,x) f का j-वां निर्देशांक। लानत होनाjb+a वेरिएबल्स में एक पूर्णांक फ़ंक्शन के रूप में देखा जा सकता है। मान लीजिए कि ऐसा प्रत्येक एफjगैर-ऋणात्मक गुणांक वाला एक बहुपद है। इसे s=(z) प्रतिस्थापित करके एकल चर z वाले बहुपद में परिवर्तित करेंd1,...,zdb) और x=(1,...,1). यदि z में परिणामी बहुपद की घात अधिकतम d हैj, तो शर्त 1 संतुष्ट है।
- निकटता को मान फ़ंक्शन द्वारा संरक्षित किया जाता है: एक पूर्णांक G ≥ 0 मौजूद है (जो मान फ़ंक्शन g और डिग्री वेक्टर d का एक फ़ंक्शन है), जैसे कि किसी भी r>1 के लिए, और किन्हीं दो राज्य-वेक्टर s के लिए1,एस2, निम्नलिखित धारण करता है: यदि एस1 (डी,आर)-एस के करीब है2, फिर: जी(एस1) ≤ आरजी · जी(एस2) (समस्याओं को न्यूनतम करने में); जी(एस1) ≥ आर(-G) · g(s2) (अधिकतमीकरण समस्याओं में)।
- इसके लिए एक पर्याप्त शर्त यह है कि फ़ंक्शन g गैर-नकारात्मक गुणांक वाला एक बहुपद फ़ंक्शन (b चर का) है।
- तकनीकी शर्तें:
- F में सभी संक्रमण फ़ंक्शन f और मान फ़ंक्शन g का मूल्यांकन पॉलीटाइम में किया जा सकता है।
- संख्या |F| संक्रमण फलनों का n और log(X) में बहुपद है।
- सेट एस0 प्रारंभिक अवस्थाओं की गणना एन और लॉग (एक्स) में समय बहुपद में की जा सकती है।
- मान लीजिए वीjउन सभी मानों का समुच्चय बनें जो किसी स्थिति में निर्देशांक j में प्रकट हो सकते हैं। फिर, V में प्रत्येक मान का प्राकृतिक लघुगणकjअधिकतम एक बहुपद P है1(एन,लॉग(एक्स)).
- यदि डीj=0, वी की कार्डिनैलिटीjअधिकतम एक बहुपद P है2(एन,लॉग(एक्स)).
प्रत्येक अत्यंत-परोपकारी समस्या के लिए, गतिशील कार्यक्रम को FPTAS में परिवर्तित किया जा सकता है। परिभाषित करना:
- := आवश्यक सन्निकटन अनुपात.
- , जहां G स्थिति 2 से स्थिरांक है। ध्यान दें .
- , जहां पी1 स्थिति 3 से बहुपद है (प्रत्येक मान के एलएन पर एक ऊपरी सीमा जो एक राज्य वेक्टर में दिखाई दे सकती है)। ध्यान दें कि , इसलिए यह इनपुट और इन के आकार में बहुपद है . भी, , तो पी की परिभाषा के अनुसार1, प्रत्येक पूर्णांक जो राज्य-वेक्टर में दिखाई दे सकता है वह सीमा [0,rएल].
- सीमा को विभाजित करें [0,rएल] में एल+1 आर-अंतराल: .
- राज्य स्थान को आर-बॉक्स में विभाजित करें: प्रत्येक निर्देशांक k को डिग्री d के साथk≥ 1 को उपरोक्त L+1 अंतराल में विभाजित किया गया है; प्रत्येक d के साथ समन्वय करता हैk= 0 को P में विभाजित किया गया है2(n,log(X)) सिंगलटन अंतराल - निर्देशांक k के प्रत्येक संभावित मान के लिए एक अंतराल (जहाँ P2 उपरोक्त शर्त 3 से बहुपद है)।
- ध्यान दें कि प्रत्येक संभावित स्थिति बिल्कुल एक आर-बॉक्स में समाहित है; यदि दो अवस्थाएँ एक ही r-बॉक्स में हैं, तो वे (d,r)-बंद हैं।
- .
- ध्यान दें कि आर-बॉक्स की संख्या अधिकतम आर है। चूंकि बी एक निश्चित स्थिरांक है, यह आर इनपुट के आकार में बहुपद है और इसमें .
एफपीटीएएस डीपी के समान ही चलता है, लेकिन प्रत्येक चरण में, यह राज्य सेट को एक छोटे सेट टी में ट्रिम कर देता हैk, जिसमें प्रत्येक आर-बॉक्स में बिल्कुल एक स्थिति होती है। FPTAS का एल्गोरिदम है:
- चलो टी0 := एस0 = प्रारंभिक अवस्थाओं का समुच्चय.
- k = 1 से n के लिए करें:
- चलो यूk:= {f(s,xk) | एफ में एफ, टी में एसk−1}
- मान लीजिए टीk:= यू की एक छंटनी प्रतिk: प्रत्येक आर-बॉक्स के लिए जिसमें यू के एक या अधिक राज्य शामिल हैंk, T में बिल्कुल एक अवस्था रखेंk.
- आउटपुट न्यूनतम/अधिकतम {g(s) | टी में एसn}.
एफपीटीएएस का रन-टाइम प्रत्येक टी में संभावित राज्यों की कुल संख्या में बहुपद हैi, जो कि आर-बॉक्स की कुल संख्या है, जो कि अधिकतम आर है, जो एन, लॉग (एक्स) में बहुपद है, और .
ध्यान दें, प्रत्येक राज्य के लिएuयू मेंk, इसका उपसमुच्चय Tkइसमें कम से कम एक राज्य शामिल हैtवह (डी,आर)-एस के करीब हैu. साथ ही, प्रत्येक यूkएस का एक उपसमुच्चय हैkमूल (बिना छंटे हुए) डीपी में। एफपीटीएएस की शुद्धता साबित करने की मुख्य विधि है:[6]: Lem.3.3 <ब्लॉककोट>
0,...,n में प्रत्येक चरण k के लिए, प्रत्येक अवस्था s के लिएsएस मेंk, एक राज्य है stटी मेंkवह है (डी,आरक)-स के करीबs. </ब्लॉककोट>
इसका प्रमाण k पर प्रेरण द्वारा है। K=0 के लिए हमारे पास T हैk=एसk; प्रत्येक अवस्था (d,1)-स्वयं के करीब है। मान लीजिए कि लेम्मा k-1 के लिए है। प्रत्येक राज्य के लिए एसsएस मेंk, चलो एसs-एस में इसके पूर्ववर्तियों में से एक बनेंk-1, ताकि f(ss−,x)=ss. प्रेरण धारणा के अनुसार, एक राज्य हैt-टी मेंk-1, वह है (डी,आरk-1)-s के करीबs−. चूंकि निकटता संक्रमणों द्वारा संरक्षित है (ऊपर शर्त 1), एफ(एस)।t−,x) है (d,rk-1)-f(s) के करीबs−,x)=ss. यह एफ(एसt−,x) U में हैk. ट्रिमिंग के बाद, एक राज्य है एसtटी मेंkवह (d,r)-f(s) के करीब हैt-,एक्स)। यह एसtहै (डी,आरक)-स के करीबs.
अब राज्य पर विचार करें*एस मेंn, जो इष्टतम समाधान से मेल खाता है (अर्थात, g(s*)=OPT)। उपरोक्त लेम्मा के अनुसार, T में एक अवस्था t* हैn, जो (डी,आर) हैएन)-एस के करीब*. चूँकि निकटता को मान फ़ंक्शन द्वारा संरक्षित किया जाता है, g(t*) ≥ r(-Gn) · g(s*) अधिकतमीकरण समस्या के लिए। आर की परिभाषा के अनुसार, . इसलिए . एक समान तर्क न्यूनतमकरण समस्या के लिए काम करता है।
उदाहरण
यहां अत्यंत-परोपकारी समस्याओं के कुछ उदाहरण दिए गए हैं, जिनमें उपरोक्त प्रमेय के अनुसार FPTAS है।[6]
1. सबसे बड़ी राशि को न्यूनतम करने के लक्ष्य के साथ मल्टीवे संख्या विभाजन (समकक्ष, समान-मशीन शेड्यूलिंग) अत्यंत-परोपकारी है। यहां, हमारे पास a = 1 (इनपुट पूर्णांक हैं) और b = डिब्बे की संख्या (जिसे निश्चित माना जाता है)। प्रत्येक अवस्था b पूर्णांकों का एक सदिश है जो b बिन्स के योग को दर्शाता है। बी फ़ंक्शन हैं: प्रत्येक फ़ंक्शन जे अगले इनपुट को बिन जे में डालने का प्रतिनिधित्व करता है। फ़ंक्शन g(s) s का सबसे बड़ा तत्व चुनता है। एस0 = {(0,...,0)}. चरम-परोपकार की शर्तें डिग्री-वेक्टर d=(1,...,1) और G=1 से संतुष्ट हैं। जब भी मशीनों की संख्या तय होती है तो परिणाम वर्दी-मशीन शेड्यूलिंग और असंबंधित-मशीन शेड्यूलिंग तक विस्तारित होता है (यह आवश्यक है क्योंकि आर - आर-बॉक्स की संख्या - बी में घातीय है)। निरूपित पीएम|| या Qm|| या आरएम||.
- नोट: विशेष मामले b=2 पर विचार करें, जहां लक्ष्य दो भागों के योग के बीच अंतर के वर्ग को कम करना है। उसी DP का उपयोग किया जा सकता है, लेकिन इस बार मान फ़ंक्शन g(s) = (s) के साथ1-एस2)2. अब, शर्त 2 का उल्लंघन हुआ है: राज्य (एस)।1,एस1) और (एस1,एस2) हो सकता है (डी,आर)-बंद, लेकिन जी(एस)।1,एस1) = 0 जबकि g(s1,एस2) > 0. इसलिए उपरोक्त प्रमेय लागू नहीं किया जा सकता है। दरअसल, समस्या में एफपीटीएएस नहीं है जब तक कि पी=एनपी न हो, क्योंकि एफपीटीएएस का उपयोग पॉलीटाइम में यह तय करने के लिए किया जा सकता है कि इष्टतम मान 0 है या नहीं।
2. समान या समान मशीनों की किसी निश्चित संख्या पर घन कार्य पूरा होने के समय का योग - बाद वाले को Qm द्वारा दर्शाया गया है|| - a=1, b=3, d=(1,1,3) के साथ पूर्व-परोपकारी है। इसे समापन समय की किसी भी निश्चित शक्ति तक बढ़ाया जा सकता है।
3. समान या समान मशीनों की किसी निश्चित संख्या पर भारित समापन समय का योग - बाद वाले को Qm द्वारा दर्शाया गया है||.
4. समय-निर्भर प्रसंस्करण समय के साथ, समान या समान मशीनों की किसी निश्चित संख्या पर पूरा होने के समय का योग: Qm|time-dep|. यह पूर्णता समय के भारित योग के लिए भी मान्य है।
5. किसी भी निश्चित संख्या में मशीनों पर एक सामान्य नियत तारीख के बारे में भारित शीघ्रता-मंदी: एम||.
सरल गतिशील कार्यक्रम
सरल गतिशील प्रोग्राम उपरोक्त फॉर्मूलेशन में निम्नलिखित घटक जोड़ते हैं:
- फ़िल्टरिंग फ़ंक्शंस का एक सेट एच, एफ के समान कार्डिनैलिटी का। प्रत्येक फ़ंक्शन एचiH में एक जोड़ी (स्टेट, इनपुट) को बूलियन मान पर मैप किया जाता है। मान सत्य होना चाहिए यदि और केवल यदि संक्रमण f को सक्रिय किया जा रहा हैiइस जोड़ी पर एक वैध स्थिति का नेतृत्व होगा।
- एक प्रभुत्व संबंध, जो राज्यों पर एक आंशिक आदेश है (कोई उदासीनता नहीं, सभी जोड़े तुलनीय नहीं हैं), और एक अर्ध-प्रभुत्व संबंध जो राज्यों पर एक कुल पूर्व आदेश है (उदासीनता की अनुमति है, सभी जोड़े तुलनीय हैं)।
मूल डीपी को इस प्रकार संशोधित किया गया है:
- चलिए एस0 := प्रारंभिक अवस्थाओं का समुच्चय.
- k = 1 से n के लिए करें:
- चलो एसk := {एफj(एस,एक्सk) | एफjएफ में, एस में एसk−1, एचj(एस,एक्सk)=सत्य' }, जहां hjसंक्रमण फ़ंक्शन f के अनुरूप फ़िल्टर फ़ंक्शन हैj.
- आउटपुट न्यूनतम/अधिकतम {g(s) | एस में एसn}.
किसी समस्या को 'परोपकारी' कहा जाता है यदि वह निम्नलिखित शर्तों को पूरा करती है (जो उपरोक्त शर्तों 1, 2, 3 का विस्तार करती है):
- निकटता को संक्रमण कार्यों द्वारा संरक्षित किया जाता है: किसी भी r>1 के लिए, F में किसी भी संक्रमण फ़ंक्शन f के लिए, किसी भी इनपुट-वेक्टर x के लिए, और किन्हीं दो राज्य-वेक्टर s के लिए1,एस2, निम्नलिखित धारण करता है:
- यदि s1 (डी,आर)-एस के करीब है2, और एस1 अर्ध-प्रभुत्व एस2, फिर या तो (ए) एफ(एस1,x) (d,r)-f(s) के करीब है2,x), और f(s1,x) अर्ध-प्रभावी f(s)।2,x)', या (बी) एफ(एस)।1,x) f(s) पर हावी है2,एक्स)।
- यदि एस1 एस पर हावी है2, फिर f(s1,x) f(s) पर हावी है2,एक्स)।
- निकटता को मान फ़ंक्शन द्वारा संरक्षित किया जाता है: एक पूर्णांक G ≥ 0 (मान फ़ंक्शन g और डिग्री वेक्टर d का एक फ़ंक्शन) मौजूद है, जैसे कि किसी भी r>1 के लिए, और किन्हीं दो राज्य-वेक्टर s के लिए1,एस2, निम्नलिखित धारण करता है:
- यदि s1 (डी,आर)-एस के करीब है2, और एस1 अर्ध-प्रभुत्व एस2, फिर: g(s1) ≤ आरजी · जी(एस2) (समस्याओं को न्यूनतम करने में); जी(एस1) ≥ आर(-G) · g(s2) (अधिकतमीकरण समस्याओं में)।
- यदि एस1 एस पर हावी है2, फिर जी(एस1) ≤ जी(एस2) (समस्याओं को न्यूनतम करने में); जी(एस1) ≥ जी(एस2) (अधिकतमीकरण समस्याओं में)।
- तकनीकी शर्तें (उपरोक्त के अतिरिक्त):
- अर्ध-प्रभुत्व संबंध को बहुपद समय में तय किया जा सकता है।
- फ़िल्टर फ़ंक्शंस पर शर्तें: किसी भी r>1 के लिए, किसी भी फ़िल्टर फ़ंक्शन h के लिए H में, किसी भी इनपुट-वेक्टर x के लिए, और किन्हीं दो स्टेट-वेक्टर s के लिए1,एस2, निम्नलिखित धारण करता है:
- यदि s1 (डी,आर)-एस के करीब है2, और एस1 अर्ध-प्रभुत्व एस2, फिर एच(एस1,x) ≥ h(s2,एक्स)'।
- यदि एस1 एस पर हावी है2, फिर h(s1,x) ≥ h(s2,एक्स)।
प्रत्येक परोपकारी समस्या के लिए, गतिशील प्रोग्राम को दो बदलावों (बोल्डफेस्ड) के साथ उपरोक्त के समान एफपीटीएएस में परिवर्तित किया जा सकता है:
- चलो टी0 := एस0 = प्रारंभिक अवस्थाओं का समुच्चय.
- k = 1 से n के लिए करें:
- चलो यूk := {एफj(एस,एक्सk) | एफjएफ में, टी में एसk−1, एचj(एस,एक्सk)=सत्य' }, जहां hjसंक्रमण फ़ंक्शन f के अनुरूप फ़िल्टर फ़ंक्शन हैj.
- मान लीजिए टीk:= यू की एक छंटनी प्रतिk: प्रत्येक आर-बॉक्स के लिए जिसमें यू के एक या अधिक राज्य शामिल हैंk, एक ऐसा तत्व चुनें जो यू में अन्य सभी तत्वों पर अर्ध-प्रभुत्व रखता होk,' और इसे टी में डालेंk.
- आउटपुट न्यूनतम/अधिकतम {g(s) | टी में एसn}.
उदाहरण
यहां परोपकारी समस्याओं के कुछ उदाहरण दिए गए हैं, जिनमें उपरोक्त प्रमेय के अनुसार एफपीटीएएस है।[6]
1. 0-1 बस्ता समस्या कल्याणकारी है। यहां, हमारे पास a=2 है: प्रत्येक इनपुट 2-वेक्टर (वजन, मान) है। बी=2 के साथ एक डीपी है: प्रत्येक राज्य एनकोड करता है (वर्तमान वजन, वर्तमान मूल्य)। दो संक्रमण कार्य हैं: एफ1 अगला इनपुट आइटम जोड़ने से मेल खाता है, और एफ2 इसे न जोड़ने से मेल खाता है। संबंधित फ़िल्टर फ़ंक्शन हैं: h1 सत्यापित करता है कि अगले इनपुट आइटम का वजन अधिकतम नैपसेक क्षमता पर है; एच2 हमेशा सत्य लौटाता है। मान फ़ंक्शन g(s) s लौटाता है2. प्रारंभिक अवस्था-सेट {(0,0)} है। डिग्री वेक्टर (1,1) है। प्रभुत्व का रिश्ता तुच्छ है. अर्ध-प्रभुत्व संबंध केवल भार निर्देशांक की तुलना करता है: s अर्ध-प्रभुत्व t यदि s1 ≤ टी1. इसका निहितार्थ यह है कि, यदि राज्य t का भार राज्य s से अधिक है, तो संक्रमण कार्यों को t और s के बीच निकटता को संरक्षित नहीं करने की अनुमति है (उदाहरण के लिए, यह संभव है कि s का कोई उत्तराधिकारी हो और t के पास कोई संगत उत्तराधिकारी न हो)। इसी तरह का एल्गोरिदम पहले इबारा और किम द्वारा प्रस्तुत किया गया था।[7] इस FPTAS के रन-टाइम को बेहतर बनाया जा सकता है पूर्णांकों पर संचालन.[8] बाद में घातांक को सुधार कर 2.5 कर दिया गया।[9]
- नोट: 2-भारित नैपसेक समस्या पर विचार करें, जहां प्रत्येक वस्तु के दो वजन और एक मूल्य होता है, और लक्ष्य मूल्य को अधिकतम करना है ताकि कुल वजन के वर्गों का योग अधिकतम नैपसेक क्षमता हो: . हम इसे एक समान डीपी का उपयोग करके हल कर सकते हैं, जहां प्रत्येक स्थिति (वर्तमान वजन 1, वर्तमान वजन 2, मूल्य) है। अर्ध-प्रभुत्व संबंध को इस प्रकार संशोधित किया जाना चाहिए: s अर्ध-प्रभुत्व t iff (s)।12+s22) ≤ (t12+t22). लेकिन यह उपरोक्त शर्त 1 का उल्लंघन करता है: अर्ध-प्रभुत्व संक्रमण कार्यों द्वारा संरक्षित नहीं है [उदाहरण के लिए, राज्य (2,2,..) अर्ध-प्रभुत्व (1,3,..); लेकिन दोनों राज्यों में इनपुट (2,0,..) जोड़ने के बाद, परिणाम (4,2,..) अर्ध-प्रभुत्व (3,3,..)] नहीं होता है। अतः प्रमेय का प्रयोग नहीं किया जा सकता। वास्तव में, इस समस्या का कोई FPTAS नहीं है जब तक कि P=NP न हो। द्वि-आयामी नैपसेक समस्या के लिए भी यही सच है। एकाधिक उपसमुच्चय योग समस्या के लिए भी यही सच है: अर्ध-प्रभुत्व संबंध होना चाहिए: s अर्ध-प्रभुत्व t यदि अधिकतम1,s2) ≤ अधिकतम(t1,t2), लेकिन यह उपरोक्त उदाहरण के अनुसार, परिवर्तनों द्वारा संरक्षित नहीं है।
2. एक ही मशीन पर विलंबित कार्यों की भारित संख्या को कम करना, या प्रारंभिक कार्यों की भारित संख्या को अधिकतम करना; निरूपित 1||.
3. विलंबित कार्यों की भारित संख्या को कम करने के लिए बैच शेड्यूलिंग: 1|बैच|.
4. एक ही मशीन पर नौकरियों के बिगड़ने का कारण: 1|बिगड़ना|.
5. एक मशीन पर कुल देर से काम: 1||.
6. एक मशीन पर कुल भारित विलंबित कार्य: 1||.
गैर-उदाहरण
उपरोक्त परिणाम की व्यापकता के बावजूद, ऐसे मामले हैं जिनमें इसका उपयोग नहीं किया जा सकता है।
1. कुल विलंबता समस्या में 1||, लॉलर का गतिशील प्रोग्रामिंग सूत्रीकरण[10] पुराने राज्य स्थान के सभी राज्यों को कुछ B बार अद्यतन करने की आवश्यकता है, जहाँ B, X (अधिकतम इनपुट आकार) के क्रम का है। आर्थिक लॉट-साइज़िंग के लिए डीपी के लिए भी यही सच है।[11] इन मामलों में, एफ में संक्रमण कार्यों की संख्या बी है, जो लॉग (एक्स) में घातीय है, इसलिए दूसरी तकनीकी स्थिति का उल्लंघन होता है। स्टेट-ट्रिमिंग तकनीक उपयोगी नहीं है, लेकिन एक अन्य तकनीक - इनपुट-राउंडिंग - का उपयोग एफपीटीएएस को डिजाइन करने के लिए किया गया है।[12][13] 2. विचरण न्यूनीकरण समस्या 1|| में, वस्तुनिष्ठ कार्य है , जो शर्त 2 का उल्लंघन करता है, इसलिए प्रमेय का उपयोग नहीं किया जा सकता है। लेकिन एफपीटीएएस को डिजाइन करने के लिए विभिन्न तकनीकों का उपयोग किया गया है।[14][15]
== कुछ अन्य समस्याएं जिनमें एफपीटीएएस == है
- नैपसेक समस्या,[16][17] साथ ही इसके कुछ प्रकार:
- गणना-उपसमुच्चय-योग (#सबसेट योग समस्या) - अधिकतम सी के योग के साथ अलग-अलग उपसमुच्चय की संख्या ज्ञात करना।[24]
- प्रतिबंधित सबसे छोटा पथ समस्या: विलंब बाधा के अधीन, ग्राफ़ में दो नोड्स के बीच न्यूनतम लागत वाला पथ ढूंढना।[25]
- सबसे छोटे रास्ते और गैर-रैखिक उद्देश्य।[26]
- किनारे का आवरण की गिनती|एज-कवर।[27]
- वेक्टर उपसमुच्चय खोज समस्या जहां आयाम निश्चित है।[28]
यह भी देखें
- परोपकारी गतिशील कार्यक्रम, जो एक एफपीटीएएस को स्वीकार करते हैं, एक विकासवादी एल्गोरिदम को भी स्वीकार करते हैं।[29]
संदर्भ
- ↑ G. Ausiello, P. Crescenzi, G. Gambosi, V. Kann, A. Marchetti-Spaccamela, and M. Protasi. Complexity and Approximation: Combinatorial optimization problems and their approximability properties, Springer-Verlag, 1999.
- ↑ Jansen, Thomas (1998), "Introduction to the Theory of Complexity and Approximation Algorithms", in Mayr, Ernst W.; Prömel, Hans Jürgen; Steger, Angelika (eds.), Lectures on Proof Verification and Approximation Algorithms, Springer, pp. 5–28, doi:10.1007/BFb0053011, ISBN 9783540642015. See discussion following Definition 1.30 on p. 20.
- ↑ Cai, Liming; Chen, Jianer (June 1997). "फिक्स्ड-पैरामीटर ट्रैक्टेबिलिटी और एनपी ऑप्टिमाइज़ेशन समस्याओं की अनुमानितता पर". Journal of Computer and System Sciences (in English). 54 (3): 465–474. doi:10.1006/jcss.1997.1490.
- ↑ Vazirani, Vijay V. (2003). सन्निकटन एल्गोरिदम. Berlin: Springer. pp. 294–295. ISBN 3-540-65367-8.
- ↑ H. Kellerer; U. Pferschy; D. Pisinger (2004). बस्ता समस्याएँ. Springer.
- ↑ 6.0 6.1 6.2 6.3 Woeginger, Gerhard J. (2000-02-01). "When Does a Dynamic Programming Formulation Guarantee the Existence of a Fully Polynomial Time Approximation Scheme (FPTAS)?". INFORMS Journal on Computing. 12 (1): 57–74. doi:10.1287/ijoc.12.1.57.11901. ISSN 1091-9856.
- ↑ Ibarra, Oscar H.; Kim, Chul E. (1975-10-01). "नैपसैक और सबसेट समस्याओं के योग के लिए तेज़ सन्निकटन एल्गोरिदम". Journal of the ACM. 22 (4): 463–468. doi:10.1145/321906.321909. ISSN 0004-5411. S2CID 14619586.
- ↑ Lawler, Eugene L. (1979-11-01). "नैपसेक समस्याओं के लिए तेज़ सन्निकटन एल्गोरिदम". Mathematics of Operations Research. 4 (4): 339–356. doi:10.1287/moor.4.4.339. ISSN 0364-765X. S2CID 7655435.
- ↑ Rhee, Donguk (2015). नैपसैक समस्याओं के लिए तेज़ पूर्णतः बहुपद सन्निकटन योजनाएँ (Thesis thesis). Massachusetts Institute of Technology. hdl:1721.1/98564.
- ↑ Lawler, Eugene L. (1977-01-01), Hammer, P. L.; Johnson, E. L.; Korte, B. H.; Nemhauser, G. L. (eds.), "A "Pseudopolynomial" Algorithm for Sequencing Jobs to Minimize Total Tardiness**Research supported by National Science Foundation Grant GJ-43227X", Annals of Discrete Mathematics, Studies in Integer Programming (in English), Elsevier, vol. 1, pp. 331–342, doi:10.1016/S0167-5060(08)70742-8, retrieved 2021-12-17
- ↑ Florian, M.; Lenstra, J. K.; Rinnooy Kan, A. H. G. (1980-07-01). "Deterministic Production Planning: Algorithms and Complexity". Management Science. 26 (7): 669–679. doi:10.1287/mnsc.26.7.669. ISSN 0025-1909.
- ↑ Lawler, E. L. (1982-12-01). "संपूर्ण विलंबता समस्या के लिए एक पूर्णतः बहुपद सन्निकटन योजना". Operations Research Letters (in English). 1 (6): 207–208. doi:10.1016/0167-6377(82)90022-0. ISSN 0167-6377.
- ↑ van Hoesel, C. P. M.; Wagelmans, Albert (1997-01-01). "एकल-आइटम कैपेसिटेटेड आर्थिक लॉट-साइजिंग समस्याओं के लिए पूरी तरह से बहुपद अनुमान योजनाएं" (in English).
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Cai, X. (1995-09-21). "एकल मशीन प्रणालियों में सहमत रूप से भारित विचरण को न्यूनतम करना". European Journal of Operational Research (in English). 85 (3): 576–592. doi:10.1016/0377-2217(93)E0367-7. ISSN 0377-2217.
- ↑ Woeginger, Gerhard J. (1999-05-01). "एक ही मशीन पर सहमत रूप से भारित भिन्नता को न्यूनतम करने के लिए एक अनुमान योजना". INFORMS Journal on Computing. 11 (2): 211–216. doi:10.1287/ijoc.11.2.211. ISSN 1091-9856.
- ↑ Vazirani, Vijay (2001). सन्निकटन एल्गोरिदम. Berlin: Springer. pp. 69–70. ISBN 3540653678. OCLC 47097680.
- ↑ Kellerer, Hans; Pferschy, Ulrich (2004-03-01). "नैपसैक समस्या के लिए एफपीटीएएस के संबंध में बेहतर गतिशील प्रोग्रामिंग". Journal of Combinatorial Optimization (in English). 8 (1): 5–11. doi:10.1023/B:JOCO.0000021934.29833.6b. ISSN 1573-2886. S2CID 36474745.
- ↑ Jin, Ce (2019). 0-1 नैपसेक के लिए एक बेहतर एफपीटीएएस. Leibniz International Proceedings in Informatics (LIPIcs). Vol. 132. pp. 76:1–76:14. arXiv:1904.09562. doi:10.4230/LIPIcs.ICALP.2019.76. ISBN 9783959771092. S2CID 128317990.
- ↑ Jansen, Klaus; Kraft, Stefan E. J. (2018-02-01). "अनबाउंडेड नैपसैक समस्या के लिए एक तेज़ एफपीटीएएस". European Journal of Combinatorics. Combinatorial Algorithms, Dedicated to the Memory of Mirka Miller (in English). 68: 148–174. arXiv:1504.04650. doi:10.1016/j.ejc.2017.07.016. ISSN 0195-6698. S2CID 9557898.
- ↑ Gribanov, D. V. (2021-05-10). "An FPTAS for the $$\var Delta $$-Modular Multidimensional Knapsack Problem". गणितीय अनुकूलन सिद्धांत और संचालन अनुसंधान. Lecture Notes in Computer Science. Vol. 12755. pp. 79–95. arXiv:2103.07257. doi:10.1007/978-3-030-77876-7_6. ISBN 978-3-030-77875-0. S2CID 232222954.
- ↑ Bazgan, Cristina; Hugot, Hadrien; Vanderpooten, Daniel (2009-10-01). "Implementing an efficient fptas for the 0–1 multi-objective knapsack problem". European Journal of Operational Research (in English). 198 (1): 47–56. doi:10.1016/j.ejor.2008.07.047. ISSN 0377-2217.
- ↑ Holzhauser, Michael; Krumke, Sven O. (2017-10-01). "पैरामीट्रिक नैपसेक समस्या के लिए एक एफपीटीएएस". Information Processing Letters (in English). 126: 43–47. arXiv:1701.07822. doi:10.1016/j.ipl.2017.06.006. ISSN 0020-0190. S2CID 1013794.
- ↑ Xu, Zhou (2012-04-16). "सममित द्विघात नैपसैक समस्या के लिए एक प्रबल बहुपद FPTAS". European Journal of Operational Research (in English). 218 (2): 377–381. doi:10.1016/j.ejor.2011.10.049. ISSN 0377-2217.
- ↑ Gopalan, Parikshit; Klivans, Adam; Meka, Raghu; Štefankovic, Daniel; Vempala, Santosh; Vigoda, Eric (2011-10-01). "An FPTAS for #Knapsack and Related Counting Problems". 2011 IEEE 52nd Annual Symposium on Foundations of Computer Science. pp. 817–826. doi:10.1109/FOCS.2011.32. ISBN 978-0-7695-4571-4. S2CID 5691574.
- ↑ Ergun, Funda; Sinha, Rakesh; Zhang, Lisa (2002-09-15). "प्रतिबंधित सबसे छोटे पथ के लिए एक बेहतर एफपीटीएएस". Information Processing Letters (in English). 83 (5): 287–291. doi:10.1016/S0020-0190(02)00205-3. ISSN 0020-0190.
- ↑ Tsaggouris, George; Zaroliagis, Christos (2009-06-01). "Multiobjective Optimization: Improved FPTAS for Shortest Paths and Non-Linear Objectives with Applications". Theory of Computing Systems (in English). 45 (1): 162–186. doi:10.1007/s00224-007-9096-4. ISSN 1433-0490. S2CID 13010023.
- ↑ Lin, Chengyu; Liu, Jingcheng; Lu, Pinyan (2013-12-18), "A Simple FPTAS for Counting Edge Covers", Proceedings of the 2014 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), Proceedings, Society for Industrial and Applied Mathematics, pp. 341–348, arXiv:1309.6115, doi:10.1137/1.9781611973402.25, ISBN 978-1-61197-338-9, S2CID 14598468, retrieved 2021-12-13
- ↑ Kel’manov, A. V.; Romanchenko, S. M. (2014-07-01). "वेक्टर उपसमुच्चय खोज समस्या के लिए एक FPTAS". Journal of Applied and Industrial Mathematics (in English). 8 (3): 329–336. doi:10.1134/S1990478914030041. ISSN 1990-4797. S2CID 96437935.
- ↑ Doerr, Benjamin; Eremeev, Anton; Neumann, Frank; Theile, Madeleine; Thyssen, Christian (2011-10-07). "विकासवादी एल्गोरिदम और गतिशील प्रोग्रामिंग". Theoretical Computer Science (in English). 412 (43): 6020–6035. doi:10.1016/j.tcs.2011.07.024. ISSN 0304-3975.
बाहरी संबंध
- Complexity Zoo: FPTAS