सामान्यीकृत 3SUM (k-SUM) समस्या?


29

3SUM समस्या की कोशिश करता 3 पूर्णांकों की पहचान के लिए एक सेट से आकार के ऐसी है कि ।एस एन + बी + सी = a,b,cSna+b+c=0

यह अनुमान लगाया जाता है कि द्विघात, यानी तुलना में बेहतर समाधान नहीं है । या इसे अलग तरीके से रखने के लिए: ।o ( n log ( n ) + n 2 )o(n2)o(nlog(n)+n2)

इसलिए मैं सोच रहा था कि क्या यह सामान्यीकृत समस्या पर लागू होगा: पूर्णांक लिए के एक सेट के आकार में ऐसा कि । मैं [ 1 .. k ] एस एन Σ मैं [ 1 .. k ] एक मैं = 0aii[1..k]Sni[1..k]ai=0

मुझे लगता है कि आप इसे लिए (यह साधारण एल्गोरिथ्म को सामान्य करने के लिए तुच्छ है )। लेकिन क्या अन्य मूल्यों के लिए बेहतर एल्गोरिदम हैं ?कश्मीर 2 कश्मीर = 3 कश्मीरo(nlog(n)+nk1)k2k=3
k


3SUM पर हालिया समाचार / पेपर जो अपने निर्णय वृक्ष की जटिलता पर कम सीमा को देखता है
vzn

जवाबों:


27

k -सुम को अधिक तेज़ी से निम्नानुसार हल किया जा सकता है।

  • यहां तक ​​कि :k इनपुट तत्वों के सभी योगों की क्रमबद्ध सूची की गणना करें । जांचें कि क्या में कुछ संख्या और उसका ऋणावन । एल्गोरिथ्म समय में चलता है ।Sk/2SxxO(nk/2logn)

  • विषम k : (k-1) / 2 इनपुट तत्वों के सभी योगों की क्रमबद्ध सूची S की गणना करें । प्रत्येक इनपुट तत्व ए के लिए , जांचें कि क्या एस में कुछ संख्या x के लिए x और -ax दोनों हैं । (दूसरा चरण अनिवार्य रूप से 3SUM के लिए O (n ^ 2) -टाइम एल्गोरिथ्म है।) एल्गोरिथ्म O (n ^ {(k + 1) / 2}) समय में चलता है ।(k1)/2aSxaxxO(n2)O(n(k+1)/2)

दोनों एल्गोरिदम इष्टतम हैं (संभवतः लॉग फैक्टर को छोड़कर जब k भी 2 से बड़ा है ) किसी भी निरंतर k के लिए एक निश्चित कमजोर लेकिन गणना के रैखिक निर्णय ट्री मॉडल के प्राकृतिक प्रतिबंध में। अधिक जानकारी के लिए, देखें:


stackoverflow.com/a/14737071/511736 O (n ^ 2) का सुझाव देते हैं जब k = 4
Kowser

1
धोखा देना धोखा है। StackOverflow में वर्णित एल्गोरिथ्म केवल पूर्णांक इनपुट के लिए O (n ^ 2) समय में चलता है, और केवल उच्च संभावना के साथ, और केवल तभी जब आप एक उपयुक्त यादृच्छिक हैश फ़ंक्शन का उपयोग करते हैं। मेरे जवाब में एल्गोरिदम वास्तविक रैम मॉडल में काम करते हैं, वे पूरी तरह से निर्धारक हैं, और समय सीमा सबसे खराब स्थिति में हैं। आप "बिट ट्रिक्स" का उपयोग करके पूर्णांक सेटिंग में लॉग-कारकों को भी बंद कर सकते हैं, लेकिन यह थोड़े उबाऊ है।
जेफई

12

n Ω ( ) 2 ( n )d -SUM के लिए समय जब तक कि k-SAT को किसी भी निरंतर k के लिए समय में हल नहीं किया जा सकता है । यह एक पेपर में मिहाई पतरास्कु और रेयान विलियम्स (1) द्वारा दिखाया गया था ।nΩ(d)2o(n)

दूसरे शब्दों में, घातीय समय की परिकल्पना को मानते हुए , आपका एल्गोरिथ्म घातांक में एक स्थिर कारक ( में एक बहुपद कारक ) के लिए इष्टतम है।n

(1) मिहाई पतरास्कु और रयान विलियम्स। फास्टर सैट एल्गोरिदम की संभावना पर। प्रोक। असतत एल्गोरिदम पर 21 वीं एसीएम / सियाम संगोष्ठी (Soda2010)


3

यहाँ कुछ सरल अवलोकन दिए गए हैं।

के लिए , तो आप में यह कर सकते हैं एक शून्य के लिए सरणी को स्कैन करके समय। के लिए , आप इसे में हैशिंग के बिना कर सकते हैं समय। सरणी को सॉर्ट करें और फिर इसे स्कैन करें। प्रत्येक तत्व के लिए के लिए एक द्विआधारी खोज करते हैं । इसका परिणाम कुल जटिलता है । केस आप इसे सरणी में जमा करके और परिणाम की जाँच करके समय में कर सकते हैं ।Θ ( n ) कश्मीर = 2 Θ ( n लॉग इन करें n ) मैं - मैं Θ ( n लॉग इन करें n ) कश्मीर = n Θ ( n )k=1Θ(n)k=2Θ(nlogn)iiΘ(nlogn)k=nΘ(n)

कुछ और संदर्भों के लिए, 3SUM के लिए ओपन प्रॉब्लम्स प्रोजेक्ट पेज देखें


-1

Http://arxiv.org/abs/1407.4640 देखें

RSUM समस्या को हल करने के लिए एक नया एल्गोरिथ्म Valerii Sopin

सार:

एक निर्धारित एल्गोरिथ्म कुछ मामलों में समय जटिलता के एक उप-द्विघात मूल्यांकन के साथ किसी भी प्राकृतिक आर के लिए rSUM समस्या को हल करने के लिए प्रस्तुत किया गया है। प्राप्त एल्गोरिथ्म की उपयोग की गई स्मृति की मात्रा के संदर्भ में एक उप-द्विघात क्रम भी है। प्राप्त एल्गोरिथ्म का विचार पूर्णांक संख्याओं पर विचार करने पर आधारित नहीं है, बल्कि बाइनरी संख्या प्रणाली में इन संख्याओं के क्रमिक बिट्स हैं। यह दिखाया गया है कि यदि पूर्णांक संख्याओं का योग शून्य के बराबर है, तो इन संख्याओं के क्रमिक बिट्स द्वारा प्रस्तुत संख्याओं का योग पर्याप्त रूप से शून्य के करीब "बंद" होना चाहिए। इससे संख्याओं को त्यागना संभव हो जाता है, जो कि एक किलाजी, समाधान स्थापित नहीं करता है।

यह इस मुद्दे में कुछ नया है।


1
क्या आप स्पष्ट रूप से उस लेख से परिणाम का हवाला दे सकते हैं जो प्रश्न के लिए प्रासंगिक है? (यदि लेख एक संपूर्ण के रूप में प्रासंगिक है, तो सार को ठीक करना ठीक हो सकता है।) एसई पर पोस्ट केवल एक लिंक से अधिक माना जाता है।
फ्रैंक 11

1
जैसा कि यह है, यह उत्तर एक (संभावित रूप से उपयोगी) टिप्पणी है, उत्तर नहीं। जैसे कि इसमें कुछ मूल सामग्री शामिल होगी, जैसे आपके अपने शब्दों में एल्गोरिदम का वर्णन करना। क्या आप ऐसा करना चाहते हैं? यदि आप नहीं करते हैं तो मैं आपके उत्तर को एक टिप्पणी में बदल सकता हूं। (मुझे पता है कि आप अपने प्रतिनिधि के कारण टिप्पणी नहीं कर सकता हूँ।)
राफेल

यह एक विश्वसनीय कागज की तरह नहीं दिखता है। दावा "कुछ मामलों में समय जटिलता उप-द्विघात" एक उपयोगी कथन नहीं है। समय जटिलता सबसे खराब स्थिति चल रहा है। बबल सॉर्ट कुछ मामलों में रैखिक समय में चलता है, लेकिन इसकी समय जटिलता द्विघात बनी हुई है।
DW
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.