अज्ञात मान कैसे प्राप्त करें ने


19

किसी को भी निम्नलिखित समस्या के साथ मेरी मदद कर सकते हैं?

मैं कुछ मानों को खोजना चाहता हूं ai,bj (mod N ) जहां i=1,2,,K,j=1,2,,K (उदाहरण के लिए K=6 ), K2 मानों की सूची दी गई है मतभेदों के अनुरूप aibj(modN) (उदाहरण के लिए N=251 ), ठोस संबंधित संबंध को जाने बिना। चूँकि मूल्यों ai,bj(modN) को विशिष्ट रूप से परिभाषित नहीं किया जाता है, क्योंकि अंतर aibj(modN) , हम मानों के किसी भी मान्य असाइनमेंट की तलाश करते हैं।

निश्चित रूप से, सूची में K2 नंबरों के प्रत्येक क्रमांकन (पूरी तरह से K2! संभव मामले) की कोशिश कर रहा है और फिर a_i के साथ मॉड्यूलर समीकरणों को हल कर रहा है ,ai,bj क्योंकि वेरिएबल के रूप में b_j है।

वास्तव में, यह समस्या एनटीआरयू हस्ताक्षर योजना ( http://eprint.iacr.org/2001/005 ) के शुरुआती संस्करण में क्रिप्टोनालिसिस पर एक पेपर में उत्पन्न होती है । हालाँकि, लेखक ने केवल एक वाक्य "एक सरल बैकग्राउंड एल्गोरिथ्म solution एक समाधान nds ..." (धारा 3.3 में) और इसलिए क्या कोई और स्पष्टीकरण दे सकता है? क्या अधिक है, लेखक ने यह भी उल्लेख किया कि "हर परिपत्र शिफ्ट {((ai+M)modN,(bi+M)modN}i=1K या एक स्वैप (\ {(N) -1-b_i, N-1-a_i) \} _ {i = 1} ^ K) a_i-b_j \ mod N({(N1bi,N1ai)}i=1K) के समान पैटर्न में परिणाम देता है और क्या यह कथन सहायक है?aibjmodN


7
ध्यान दें कि a_i, b_j को पुनर्प्राप्त करना असंभव है ai,bj, क्योंकि यदि आप सभी संख्याओं में कुछ निरंतर सी जोड़ते हैं C, तो अंतर समान रहते हैं।
युवल फिल्मस

1
@ युवल: यह पहले से ही विवरण के अंतिम वाक्य में शामिल है। मुझे लगता है कि केवल एक समाधान की आवश्यकता है, क्योंकि कई मौजूद हो सकते हैं।
डोमटॉर्प

2
@ यवुलेट ने इस ओर इशारा न करने के लिए खेद है कि ai,bj का भी मॉड्यूलर N लिया जाना चाहिए N। तो अनंत उपाय नहीं हैं।
एक अतिथि

@domotorp हाँ, समाधान में से किसी एक को खोजना ठीक है।
एक अतिथि

1
हो सकता है कि ओपी स्पष्ट कर सकते कि ai , bj सापेक्ष लिया जाता है N पोस्ट में पहले: शायद शीर्षक में या पहले अनुच्छेद में। निरंतर सी के साथ मुद्दा Cभी ध्यान देने योग्य है। जब मैंने पढ़ना शुरू किया तो दोनों चीजें मुझे भ्रमित करती थीं।
जुआन बर्मेजो वेगा

जवाबों:


4

यहाँ एक सुझाव है, और । हमें एक सूची । सामान्यता नुकसान के बिना, उनमें से एक को लेने से शुरू करें । सामान्यता के नुकसान के बिना , और हम का मान प्राप्त करते हैं । अब एक और एक लें, और आशा करें कि यह (यह प्रायिकता साथ होता है ), और ।एन = 251 एक मैं - बी जेK=6N=251एक 1 - बी 1 बी 1 = 0 एक 1 एक 2 - बी 1 5 / 35 = 1 / 7 एक 2aibj(modN)a1b1b1=0a1a2b15/35=1/7a2

इस स्तर पर, हम । हमारी अगली लक्ष्य देखने के लिए है के लिए । प्रत्येक उम्मीदवार , यदि तो भी सूची में होना चाहिए। यदि , तो संभावना है कि भी सूची में लगभग । इसलिए अगर हमें कुछ उम्मीदवार , जिसके लिए भी सूची में है, तो संभवतः । इस तरह, हम कुछ निश्चितता के साथ को पुनर्प्राप्त कर सकते हैं ।एक 1 - बी जे जे 1 एक मैं - बी जे मैं = 1 ( एक मैं - बी जे ) + ( एक 2 - एक 1 ) = एक 2 - बी जे मैं 1 ( एक i - b j ) + ( a 2 - aa1,a2,b1a1bjj1aibji=1(aibj)+(a2a1)=a2bji1(aibj)+(a2a1)एक मैं - बी जे ( एक मैं - बी जे ) + ( एक 2 - एक 1 ) मैं = 1 233/251aibj(aibj)+(a2a1)i=1b2

इस स्तर पर, हम । इसी तरह से हमने को पुनर्प्राप्त किया, हम को उचित निश्चितता के साथ पुनर्प्राप्त कर सकते हैं । हम तो ठीक हो सकता है एक उम्मीदवार की तलाश द्वारा जिसके लिए और सूची पर दोनों कर रहे हैं। क्योंकि हमारे पास अधिक , हमारी विफलता की संभावना काफी कम हो जाती है। हम जारी रखते हैं और ।बी 2 एक 3 3 एक मैं - बी जे ( एक मैं - बी जे ) + ( एक 2 - एक 1 ) ( एक मैं - बी जे ) + ( एक 3 - एक 1 ) बी 3 , 4 , बी 4a1,a2,b1,b2b2a3b3aibj(aibj)+(a2a1)(aibj)+(a3a1)ab3,a4,b4,a5,b6,a6,b6

इस एल्गोरिथ्म के किसी भी बिंदु पर, हमने कुछ गलत अनुमान लगाया होगा, और यह अंततः एक विरोधाभास का परिणाम देगा (कुछ बिंदु पर, कोई अच्छा उम्मीदवार )। हम फिर पीछे हटते हैं और एक और संभावना की कोशिश करते हैं; यदि हम सभी संभावनाओं को समाप्त करते हैं, तो हम फिर से पीछे हटते हैं, और एक और संभावना की कोशिश करते हैं (एल्गोरिथम के एक अलग चरण के लिए); और इसी तरह।aibj

यह वास्तव में इस एल्गोरिथ्म को प्रोग्राम करने के लिए एक अच्छा व्यायाम है - यह शायद यह समझने का एकमात्र तरीका है कि बैकट्रैकिंग को सही तरीके से कैसे लागू किया जाए। यह बताने का एकमात्र तरीका भी है कि क्या यह एल्गोरिथम व्यवहार में काम करता है।


धन्यवाद और मैं इसे अधिक समझने के लिए इस backtracking को भी कोड करूँगा। हो सकता है कि उस मूल पत्र के लेखक ने एक समान पद्धति का उपयोग किया हो क्योंकि उन्होंने "बैकट्रैक" का भी उल्लेख किया था।
एक अतिथि

आपके जवाब के लिए मेरी टिप्पणी पोस्ट करने के लिए भूल गया! मैंने आपके द्वारा सुझाई गई विधि (C ++ में) भी लागू की। निष्कर्ष यह है कि आपका एल्गोरिथ्म काफी अच्छी तरह से काम करता है और समाधान में से एक को बहुत तेजी से (मेरे पीसी पर एक सेकंड से भी कम समय में) पाया जा सकता है। और इस बार, मैं बैकट्रैक प्रक्रियाओं को बेहतर ढंग से समझ सकता हूं। आपका बहुत बहुत धन्यवाद!
एक अतिथि

मैं अपनी अंतिम टिप्पणी में "@ वाययुल" क्यों नहीं कर सकता? क्षमा करें, लेकिन मैंने कई बार कोशिश की है।
एक अतिथि

शायद आप कोड को ऑनलाइन साझा कर सकते हैं, ताकि पेपर पढ़ने वाले अन्य लोगों तक इसकी पहुंच हो।
युवल फिल्मस ५'१३

5

अपडेट : नीचे दिया गया वर्णन एक अलग समस्या के लिए है (जिसमें आप दो अलग-अलग सेटों के बीच जोड़ीदार दूरी के बजाय एक सेट में सभी जोड़ीदार दूरी रखते हैं)। मैं इसे वैसे भी छोड़ दूंगा क्योंकि यह निकटता से संबंधित है।

इस समस्या को बेल्टवे समस्या कहा जाता है, और सामान्य -torus एम्बेडिंग समस्या का एक विशेष मामला है। यह टर्नपाइक समस्या से भी निकटता से संबंधित है, जिसमें दूरियां अंतर निरपेक्ष हैं (कुछ संख्या में मोडुलो नहीं)।d

यह ज्ञात नहीं है कि बेल्टवे समस्या पॉली-टाइम एल्गोरिथ्म को स्वीकार करती है या नहीं। संबंधित प्रश्नों के लिए विभिन्न छद्म पॉली-टाइम एल्गोरिदम हैं। सबसे अच्छा संदर्भ (अफसोस एक पुराना एक) लेमके, स्कीना और स्मिथ का पेपर है ।


1
मुझे लगता है कि यह समस्या अलग है। बेल्टवे समस्या में हम सभी जोड़ीदार दूरियों को जानते हैं, यहाँ हम केवल दो बिंदुओं के बीच इसे जानते हैं जो विभिन्न समूहों में हैं। जबकि यह कम जानकारी की तरह लगता है, यह वास्तव में समस्या को हल करने में मदद कर सकता है।
डोमटॉर्प

आह येस। यह एक द्विदलीय ग्राफ है। अच्छी बात।
सुरेश वेंकट

द्विदलीय ग्राफ? कुछ इस तरह। शायद मुझे इस तरह से समस्या का प्रयास करना चाहिए, लेकिन मेरे पास अब विचार की ठोस ट्रेन नहीं है।
एक अतिथि

3

यहाँ एक अवलोकन है जो मुझे लगता है कि आप एक पैर जमाने देता है, संभवतः समस्या को हल करने के लिए पर्याप्त है।

मान लीजिए कि हमें चार मतभेद हैं , , , कि दोनों के बीच जोड़ो में मतभेद के रूप में उत्पन्न होती हैं के और दो की। इसे मतभेदों की चौकड़ी कहें । ध्यान दें कि हमारा गैर-तुच्छ संबंध है:1 - बी 2 2 - बी 1 2 - बी 2बीa1b1a1b2a2b1a2b2ab

(a1b1)(a1b2)=(a2b1)(a2b2)(modN).

आप इस संबंध का उपयोग करने के लिए की सूची से संभावित चौकड़ी की पहचान करने का प्रयास कर सकते हैं । उदाहरण के लिए, सूची से चार अंतर चुनें; यदि वे उपरोक्त संबंध को संतुष्ट नहीं करते हैं, तो वे निश्चित रूप से चौकड़ी संरचना से उत्पन्न नहीं होते हैं; यदि वे संबंध को संतुष्ट करते हैं, तो वे एक चौकड़ी से उत्पन्न हो सकते हैं।K2

ऐसे कई तरीके हैं जिनसे आप यहां से चीजें ले सकते हैं, लेकिन मुझे संदेह है कि यह काफी होने वाला है।

मुझे विशेष रूप से संदेह है कि, आपके उदाहरण पैरामीटर सेटिंग्स के लिए, समस्या बहुत आसान होने जा रही है, क्योंकि एक चौकड़ी को पहचानने के लिए उपरोक्त परीक्षण में शायद बहुत अधिक झूठी सकारात्मकता नहीं होगी। हमारे सभी सूची से 4 अंतर चुनने के तरीके, चौकड़ी (जो सभी रिश्ते को संतुष्ट करेंगे) और शेष गैर-चौकड़ी हैं (जो संतुष्ट हैं) संभावना के साथ संबंध , heuristically)। इसलिए हम उम्मीद करते हैं कि झूठी सकारात्मक, अर्थात, 4-ट्यूपल जो परीक्षण पास करते हैं, भले ही वे चौकड़ी न हों। आपके मापदंडों के लिए, इसका मतलब है कि हमारे पास 225 चौकड़ी और( के(K24)/एन((के२)(K2)21/N(+५८९०५-225)/251234((K24)(K2)2)/N(58905225)/251234अन्य गलत सकारात्मक; इसलिए परीक्षा पास करने वाले 4-ट्यूपलों में से लगभग आधे वास्तव में चौकड़ी वाले होते हैं। इसका मतलब है कि उपरोक्त परीक्षा चौकड़ी को पहचानने का एक अच्छा तरीका है। एक बार जब आप चौकड़ियों को पहचान सकते हैं, तो आप वास्तव में मतभेदों की सूची की संरचना को पुनर्प्राप्त करने के लिए शहर जा सकते हैं।


@ डब्लू: धन्यवाद, लेकिन मैं अब सभी संभावित चौकड़ियों (पूरी तरह से 225 + 234 = 459 वाले) पाए जाने के बाद अगला कदम सोच रहा हूं। क्या इसे 3 गैर-अतिव्यापी चतुर्थांशों की खोज करनी चाहिए और परीक्षण करना चाहिए कि क्या वे एक संभावित समाधान का गठन कर सकते हैं? इसे कुशलता से कैसे पूरा किया जाए? शायद इतना मुश्किल नहीं क्योंकि बहुत सारे ओवरलैपिंग नहीं होंगे।
एक अतिथि

@ सबसे अच्छा, अच्छा सवाल! मुझे याद नहीं है कि मैं उस समय क्या सोच रहा था। मुझे लगता है कि मुझे याद है कि एक दृष्टिकोण एक चौकड़ी के साथ शुरू हो सकता है, फिर उन सभी को देखें जो इसे 2 अंतरों में ओवरलैप करते हैं (जैसे, जहां ), लेकिन मैं पता है कि वहाँ से कहाँ जाना है (झूठी सकारात्मक बातें कैसे फ़िल्टर करें)। जे 2a1,aj,b1,b2j2
डीडब्ल्यू

3

यहाँ एक अलग दृष्टिकोण है, जो पुनरावृत्तियों को खोजने के आधार पर बीच प्रकट नहीं हो सकता है । एक सेट कॉल के एक से अधिक सन्निकटन 's अगर हम जानते हैं कि । इसी तरह, के एक overapproximation है अगर हम जानते हैं कि s ' । जाहिर है, छोटा है, इस अति-सन्निकटन में जितना उपयोगी है, और उतना ही लिए जाता है । मेरा दृष्टिकोण इन अति-सन्निकटनों को पुनरावृत्त करने वाले पुनरावृत्ति पर आधारित है, अर्थात, इन सेटों के आकार को कम करके (जैसा कि हम अधिक से अधिक मूल्यों को असंभव मानते हैं)।एक एक { एक 1 , ... , एक 6 } एक बी बी { 1 , ... , 6 } बी बी{a1,,a6}Aa{a1,,a6}ABb{b1,,b6}BAB

इस दृष्टिकोण के कोर के लिए एक विधि है शोधन : एक से अधिक सन्निकटन दिया के लिए की और एक से अधिक सन्निकटन के लिए 'है, एक नया ओवर-सन्निकटन लगता है के लिए की ऐसी है कि । विशेष रूप से, सामान्य रूप से से छोटा होगा है, तो यह हमारे लिए अति-सन्निकटन को निखारने की सुविधा देता है के।एक बी बी * एक एक *एक एक * एक एकAaBbAaAAAAa

समरूपता करके, मूलतः एक ही चाल चल जाएगा हमारे लिए हमारे अति-सन्निकटन को परिष्कृत की: एक से अधिक सन्निकटन दिया के लिए की और एक से अधिक सन्निकटन के लिए की, यह एक नई से अधिक का उत्पादन करेगा -approximation के लिए की।एक एक बी बी बी *bAaBbBb

तो, मैं आपको बताता हूं कि शोधन कैसे किया जाता है, तो मैं इस समस्या के लिए एक पूर्ण एल्गोरिथ्म प्राप्त करने के लिए सब कुछ एक साथ रखूंगा। निम्न बातों में, , अंतर के बहु-सेट को निरूपित करता है, अर्थात, ; हम देखते हुए एक परिष्कृत अति-सन्निकटन खोजने पर ध्यान केंद्रित करेंगे ।डी = { एक मैं - बी जे : 1 मैं , जे 6 } एक * एक , बीDD={aibj:1i,j6}AA,B

कैसे परिशोधित करें। एक एकल अंतर पर विचार करें । सेट पर विचार करें । हमारे ज्ञान के आधार पर कि , का अति-सन्निकटन है , हम जानते हैं कि का कम से कम एक तत्व का एक तत्व होना चाहिए । इसलिए, हम में प्रत्येक तत्व को संभवतः में शामिल करने के लिए एक संख्या के लिए "सुझाव" के रूप में मान सकते हैं । तो, आइए और सभी अंतरों पर स्वीप करें , प्रत्येक के लिए, पहचानें कि कौन सी संख्या द्वारा "सुझाई गई" है ।डी + बी = { + y : y बी } बी बी डी + बी { एक 1 , ... , एक 6 } + बी डी डी dDd+B={d+y:yB}Bbd+B{a1,,a6}d+BAdDd

अब मैं यह देखने जा रहा हूं कि इस प्रक्रिया के दौरान को कम से कम 6 बार सुझाव दिया जाना निश्चित है। क्यों? क्योंकि अंतर में है , और जब हम इसे संसाधित, संख्या यह पता चलता है में से एक होगी (क्योंकि हम चाहते हैं कि इसकी गारंटी रहे , निश्चित रूप से शामिल होंगे )। इसी तरह, का अंतर में कहीं दिखाई देता है , और इससे को फिर से सुझाव दिया जाएगा। इस तरह, हम देखते हैं कि का सही मूल्य सुझाव दिया जाएगा कम से कम 6 बार। वही , और लिए रखता हैएक 1 - बी 1 डी एक 1 1बी ( एक 1 - बी 1 ) + बी एक 1 एक 1 - बी 2 डी एक 1 एक 1 एक 2 एक 3a1a1b1Da1b1B(a1b1)+Ba1a1b2Da1a1a2a3, और इसी तरह।

तो, को संख्याओं का सेट करें जो कम से कम 6 बार सुझाया गया है। इस के एक से अधिक सन्निकटन होना निश्चित है की, ऊपर टिप्पणी से।एक * एकAaa

एक अनुकूलन के रूप में, हम सभी सुझावों कि में मौजूद नहीं हैं फ़िल्टर कर सकते हैं तुरंत: दूसरे शब्दों में, हम अंतर इलाज कर सकते हैं मूल्यों के सभी सुझाव के रूप में । यह सुनिश्चित करता है कि हमारे पास । हम उम्मीद कर रहे हैं कि से सख्ती से छोटा होता है ; कोई गारंटी नहीं है, लेकिन अगर सब ठीक हो जाता है, तो शायद यह होगा।( + बी ) एक एक *एक एक * एकAd(d+B)AAAAA

इसे एक साथ रखकर, को को परिष्कृत करने के लिए एल्गोरिथ्म इस प्रकार है:*A,BA

  1. चलो । यह सुझावों का बहु-सेट है।S=dD(d+B)A

  2. गणना करें कि में प्रत्येक मान कितनी बार आता है । चलो प्रकट होने में कम से कम 6 बार मूल्यों का वह समूह होना । (यह एक सरणी का निर्माण करके कुशलता से लागू किया जा सकता शुरू में सब शून्य 251 की, शुरू में, और हर बार संख्या का सुझाव दिया है, तो आप को बढ़ा देते ; अंत में आप के माध्यम से स्वीप तत्व जिसका मूल्य है 6 या की तलाश में बड़ा)एक * एस एक है एक [ रों ] एकSASasa[s]a

A को प्राप्त करने के लिए एक समान विधि का निर्माण किया जा सकता है । आप मूल रूप से ऊपर की चीजों को उलटते हैं और कुछ संकेतों को फ्लिप करते हैं: जैसे, बजाय , आप ।बी *+ बी - डी + एकA,BBd+Bd+A

एक प्रारंभिक अति-सन्निकटन की गणना कैसे करें। हमारे प्रारंभिक अति-सन्निकटन को प्राप्त करने के लिए, एक विचार यह माना जाता है (wlog) कि । यह इस प्रकार है कि प्रत्येक मान के बीच कहीं भी दिखाई देना चाहिए इस प्रकार मतभेद की सूची, के लिए हमारी प्रारंभिक ओवर-सन्निकटन के रूप में इस्तेमाल किया जा सकता के। दुर्भाग्य से, यह हमें लिए एक बहुत उपयोगी अति-सन्निकटन नहीं देता है ।एक मैं डी डी एक b1=0aiDDab

एक बेहतर दृष्टिकोण अतिरिक्त में से एक के मूल्य का अनुमान लगाना है के। दूसरे शब्दों में, हम यह मान (wlog) कि , और प्रयोग के बारे में हमारी प्रारंभिक ओवर-सन्निकटन के रूप में के। फिर, हम लगता है कि जो इन 36 में से एक मान वास्तव में से एक है रों कहते हैं, ' । यही कारण है कि फिर हमें एक से अधिक सन्निकटन देता के लिए की। हम इस प्रारंभिक अति-सन्निकटन , फिर अभिसरण तक इसे पुन: परिष्कृत करते हैं, और परीक्षण करते हैं कि परिणाम सही है या नहीं। हम 36 बार दोहराते हैं, पर 36 अलग-अलग अनुमानों के साथ (औसतन 6 अनुमानों को पर्याप्त होना चाहिए) जब तक हम एक काम नहीं करते।1 = 0 = डी एक एक एक 1 बी = एक 1 - डी बी , बी एक 1ab1=0A=Daaa1B=a1DbA,Ba1

एक पूर्ण एल्गोरिथ्म। अब हमारे पास गणना करने के लिए एक पूर्ण एल्गोरिथ्म हो सकता है । मूल रूप से, हम और लिए प्रारंभिक अति-सन्निकटन प्राप्त करते हैं , फिर पुनरावृत्त रूप से परिष्कृत करते हैं।बीa1,,a6,b1,,b6AB

  1. एक अनुमान : प्रत्येक , अनुमान कि । निम्न कार्य करें:एक 1 = zzDa1=z

    1. प्रारंभिक अति-सन्निकटन: और परिभाषित करें ।बी = जेड - डीA=DB=zD

    2. Iterative शोधन: अभिसरण तक निम्नलिखित को लागू करें:

      • परिष्कृत एक नया ओवर-सन्निकटन प्राप्त करने के लिए के 'है।बी *A,BBb
      • परिष्कृत एक नया ओवर-सन्निकटन प्राप्त करने के लिए की के।A,BAa
      • चलो और । बी : = बी *A:=AB:=B
    3. सफलता के लिए जाँच करें: यदि परिणामी प्रत्येक का आकार 6 है, तो परीक्षण करें कि क्या वे समस्या का एक वैध समाधान हैं। अगर वे हैं, तो रुकें। यदि नहीं, तो उम्मीदवार के मूल्यों पर लूप जारी रखें ।जेडA,Bz

विश्लेषण। यह काम करेगा? क्या यह अंततः और होगा, या यह पूरी तरह से समस्या को हल किए बिना अटक जाएगा? इसका पता लगाने का सबसे अच्छा तरीका शायद इसका परीक्षण करना है। हालांकि, आपके मापदंडों के लिए, हां, मुझे उम्मीद है कि यह प्रभावी होगा।बी = { बी , , बी }A={a1,,a6}B={b1,,b6}

अगर हम # 1 विधि का उपयोग करते हैं, जब तकबहुत बड़े नहीं हैं, हेयुरिस्टिकली मुझे उम्मीद है कि सेट्स के साइज एकरस होकर सिकुड़ जाएंगे। से व्युत्पन्न पर विचार करें । प्रत्येक अंतर सुझावमूल्यों; उनमें से एक सही है, और अन्य को यादृच्छिक संख्याओं के रूप में माना जा सकता है। अगर एक नंबर है कि बीच में प्रकट नहीं होता है के, क्या संभावना है कि यह छानने बच जाते हैं और में जोड़ा जाता है है ? खैर, हम उम्मीद करते हैं कि बारे में सुझाव दिया जाएगाएक * एक , बी डी | B | | B | - 1 एक्स एक एक * एक ( | बी | - 1 ) × 36 / 251 | B | 36 x p = 0.4 | B | | B | = 30 पी 0.25 पी|A|,|B|AA,Bd|B||B|1xaAa(|B|1)×36/251कुल में समय (औसत पर, उस के वर्गमूल के बारे में मानक विचलन के साथ)। अगर , संभावना है कि एक गलत फ़िल्टरिंग से बच जाता है, या तो के बारे में होना चाहिए (द्विपद के लिए सामान्य सन्निकटन का उपयोग, निरंतरता सुधार के साथ)। (संभावना छोटी है अगर छोटा है; उदाहरण के लिए, जैसे , मुझे उम्मीद है।) मुझे उम्मीद है कि का आकार बारे में होगा , जो सख्ती से अति-सन्निकटन में सुधार करेगा क्योंकि यह कड़ाई से छोटा है। उदाहरण के लिए, अगर , तो इन अनुमानों के आधार पर मुझे उम्मीद है|B|36xp=0.4|B||B|=30p0.25A| | | | = | B | = 36 | A | 18 | |p(|A|6)+6|A||A|=|B|=36|A|18 , जो एक बड़ा सुधार है।|A|

इसलिए, मैं भविष्यवाणी करता हूं कि दौड़ने का समय बहुत तेज होगा। मैं परिशोधन के 3-5 पुनरावृत्तियों के बारे में उम्मीद करता हूं कि अभिसरण के लिए पर्याप्त है, आमतौर पर, और पर लगभग 6 अनुमान शायद पर्याप्त होना चाहिए। प्रत्येक परिशोधन ऑपरेशन में शायद कुछ हज़ार मेमोरी पढ़ी / लिखी जाती हैं, और हम ऐसा करते हैं कि शायद 20-30 बार। इसलिए, मैं आपके द्वारा निर्दिष्ट मापदंडों के लिए यह बहुत तेज होने की उम्मीद करता हूं। हालांकि, यह सुनिश्चित करने का एकमात्र तरीका यह है कि इसे आज़माएं और देखें कि यह अच्छी तरह से काम करता है या नहीं।z


@ डब्लू: आपके इतने लंबे उत्तर और आपके द्वारा इतने शब्द टाइप करने के लिए किए गए प्रयास के लिए बहुत-बहुत धन्यवाद !!! आपके विवरण के अनुसार, यहां आपका एल्गोरिथ्म काफी सही है। और मैं इसे दक्षता परीक्षण के लिए अभी कोड करने जा रहा हूं।
एक अतिथि

@ डब्लू: हाय, मैंने आपका विवरण C ++ में लागू किया है। एल्गोरिथ्म तेजी से चलता है और शोधन कदम मूल सेट और के आकार को कम करता है । हालाँकि, ऐसा लगता है कि अभिसरण एकदम सही नहीं है। वास्तव में, प्रत्येक अनुमान , और के अंतिम आकार अभी भी प्रोग्राम द्वारा मेरे रिकॉर्ड आउटपुट के अनुसार 10 से अधिक हैं। मौजूदा तत्वों की सबसे लगातार संख्या जब (और ) शोधन के आगे दोहराव से सुधार नहीं किया जा सकता है 11, लेकिन मैं शायद ही किसी संख्या को नीचे 10 देख सकता हूं। हालांकि, इस समस्या को प्रत्येक प्रयास करके हल किया गया है 6-तत्वों से चुना गयाबी जेड डी * बी * एक * बी *ABzDABAB
एक अतिथि

@ डब्लू: (कोटिन्ड) अंतिम और प्रत्येक अनुमान (हालाँकि मैंने अपने पीसी पर अंतिम चरण को लागू नहीं किया था)। कुल राशि गणना , मेरा अनुमान है। आपका बहुत बहुत धन्यवाद! B z 2 20ABz220
अतिथि

क्षमा करें, लेकिन मेरी अंतिम टिप्पणी बहुत लंबी है, और मुझे इसे दो भागों में विभाजित करना होगा।
अतिथि
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.