आप वेल्च-बर्लेकैंप एल्गोरिथ्म में त्रुटियों की संख्या कैसे निर्धारित करते हैं?


9

रीड-सोलोमन कोड को डिकोड करने के लिए वेल्च-बर्लेकैंप एल्गोरिदम में, किसी को अज्ञात स्थानों में पर त्रुटियों के साथ एक संदेश का प्रतिनिधित्व करने वाले अंक जाते हैं (और एल्गोरिथ्म को दिया जाता है)। आउटपुट एक बहुपद है जो दिए गए सभी बिंदुओं से गुजर रहा है, सिवाय इसके कि जिसमें त्रुटियां हुईं।(ai,bi)ebie

विधि में फार्म के रैखिक समीकरणों की एक प्रणाली को हल करना शामिल है

biE(ai)=Q(ai)

सभी के लिए जहां डिग्री है और ज्यादा से ज्यादा डिग्री है । चर और के गुणांक हैं ।iEeQe+kEQ

यह सुनिश्चित करने के लिए कि में डिग्री है आमतौर पर बाधा को जोड़ता है कि का गुणांक ऊपर रैखिक प्रणाली से 1 है। हालांकि, व्यवहार में जरूरी नहीं जानता है । इससे निपटने के लिए एक अकुशल (लेकिन अभी भी बहुपद समय) तरीका साथ शुरू होने वाले सभी मूल्यों के लिए कोशिश करना है जब तक कि समाधान नहीं मिलता है।Eexeee(n+k1)/21

मेरा सवाल है: निर्धारित करने के लिए एक अधिक कुशल तरीका है ? eवैकल्पिक रूप से, क्या रैखिक प्रणाली का एक संशोधन है जो सटीक मान के बजाय पर ऊपरी बाउंड का उपयोग करने की अनुमति देता है ?e

विशेष रूप से मैं रीड-सोलोमन कोड के लिए इस विशिष्ट डिकोडर का उपयोग करना चाहता हूं, और अन्य तकनीकों के आधार पर पूरी तरह से अलग एल्गोरिथ्म नहीं।


डीडब्ल्यू के जवाब के जवाब में, यहां मेरा काम करने का उदाहरण है। सब कुछ किया है modulo 7।

plain message is: [2, 3, 2]
polynomial is: 2 + 3 t^1 + 2 t^2
encoded message is: [[0, 2], [1, 0], [2, 2], [3, 1], [4, 4]]
corrupted message is: [[0, 2], [1, 0], [2, 3], [3, 1], [4, 4]]

तो त्रुटि तीसरे बिंदु में है।

जब प्रश्न में बहुपद समीकरण हैe=2

मैं(0+1एक्स+2एक्स2)-क्ष0-क्ष1एक्स-क्ष2एक्स2-क्ष3एक्स3-क्ष4एक्स4=0

और में प्लगिंग सिस्टम को मैट्रिक्स रूप में देता है:एक्स=0,1,2,3,4

[2, 0, 0, 6, 0, 0, 0, 0, 0]
[0, 0, 0, 6, 6, 6, 6, 6, 0]
[3, 6, 5, 6, 5, 3, 6, 5, 0]
[1, 3, 2, 6, 4, 5, 1, 3, 0]
[4, 2, 1, 6, 3, 5, 6, 3, 0]
[0, 0, 1, 0, 0, 0, 0, 0, 1]

अंतिम पंक्ति बाधा है कि । गाऊसी उन्मूलन हम प्राप्त करते हैं2=1

[1, 0, 0, 0, 0, 0, 1, 4, 0]
[0, 1, 0, 0, 0, 0, 3, 3, 1]
[0, 0, 1, 0, 0, 0, 0, 0, 1]
[0, 0, 0, 1, 0, 0, 2, 1, 0]
[0, 0, 0, 0, 1, 0, 2, 2, 5]
[0, 0, 0, 0, 0, 1, 4, 5, 2]

और दोनों फ्री वैरिएबल के लिए 1 चुनने पर हमें सॉल्यूशन वेक्टर मिलता है

[2, 2, 1, 4, 1, 0, 1, 1]

जिसका अनुवाद है

E is 2 + 2 t^1 + 1 t^2
Q is 4 + 1 t^1 + 0 t^2 + 1 t^3 + 1 t^4

और विभाजित नहीं करता है । ध्यान दें कि कारकक्यूक्यू(टी+6)(टी3+2टी2+2टी+3)आधुनिक7

के लिए मैं एक अच्छा समाधान प्राप्त करें:=1

system is:    
[2, 0, 6, 0, 0, 0, 0]
[0, 0, 6, 6, 6, 6, 0]
[3, 6, 6, 5, 3, 6, 0]
[1, 3, 6, 4, 5, 1, 0]
[4, 2, 6, 3, 5, 6, 0] 
[0, 1, 0, 0, 0, 0, 1]

reduced system is:

[1, 0, 0, 0, 0, 0, 5]
[0, 1, 0, 0, 0, 0, 1]
[0, 0, 1, 0, 0, 0, 3]
[0, 0, 0, 1, 0, 0, 3]
[0, 0, 0, 0, 1, 0, 6]
[0, 0, 0, 0, 0, 1, 2]

solution is [5, 1, 3, 3, 6, 2]
Q is 3 + 3 t^1 + 6 t^2 + 2 t^3
E is 5 + 1 t^1
P(x) = 2 + 3 t^1 + 2 t^2 # this is correct!
r(x) = 0

ध्यान दें कि जब उपर्युक्त प्रतिधारण कोड मैं स्क्रैच से लिखे गए कोड द्वारा उत्पन्न किया गया था (यह मूल रूप से मैंने पहली कोशिश की थी), कोई भी समाधान की जांच हाथ से कर सकता है, इसलिए भले ही मेरा कोड छोटी गाड़ी हो लेकिन यह दावे के लिए अभी भी एक वैध प्रतिधारण है। कि काम करता है।=2


@ समाधान वेक्टर सदिश है। यह वास्तव में 1 * 2 + 1 * 1 + 4 * 1 है (समाधान वेक्टर की गतिशीलता एक बंद है क्योंकि मैट्रिक्स के अंतिम स्तंभ को छोड़ दिया गया है)। को छोड़ना मेरे यहाँ में एक टाइपो है, लेकिन यह मेरे कार्यान्वयन में सही है। आप इसका प्रभाव देख सकते हैं, उदाहरण के लिए, सिस्टम की दूसरी पंक्ति में जो बिंदु [1, 0] का उपयोग करता है, और पहले तीन एंट्रेस सभी शून्य हैं क्योंकि वे 0. से गुणा करते हैं। यदि मेरा उदाहरण अस्पष्ट है तो मैं पोस्ट कर सकता हूं गितुब पर मेरा कोड। मैं अपने कोड को साफ मानता हूं, लेकिन इसकी व्यापकता के कारण यह गड़बड़ हो जाएगा। bमैं
जेरेमीकुन

जवाबों:


3

एक ही प्रक्रिया वास्तव में तक की किसी भी संख्या को सही करने के लिए काम करती है ।

आवश्यकता यह है कि त्रुटि बहुपद को प्रत्येक बिंदु पर शून्य होना चाहिए जहाँ कोई त्रुटि थी। कुछ भी नहीं कहते हैं कि यह केवल उन बिंदुओं पर शून्य होना है; आपके पास एक हो सकता है जो अन्य बिंदुओं पर भी शून्य है, और यह ठीक है, जब तक कि इसकी डिग्री ।(एक्स)मैं(एक्स)

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

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


प्रश्न में "प्रतिधारण" के बारे में बातचीत के परिणाम का दस्तावेजीकरण करने के लिए:

यह वास्तव में एक वैध प्रतिधारण नहीं है। दोष इस गणना में था कि आपको बर्लेकैंप-वेल्च से कितनी त्रुटियों की उम्मीद करनी चाहिए जो सही होने में सक्षम हो। दूरी , इसलिए आपको उम्मीद करनी चाहिए कि यह त्रुटियों (जैसा कि Ran G. इंगित करता है) तक सही कर सकता है । आपके प्रतिसाद और , इसलिए , इसलिए आपको केवल इस प्रक्रिया से एक त्रुटि, यानी, को ठीक करने में सक्षम होने की उम्मीद करनी चाहिए । इसलिए, जब आपने साथ एक उदाहरण पर प्रक्रिया को चलाया, तो प्रक्रिया को सही ढंग से काम करने की उम्मीद करने का कोई कारण नहीं है।n-+1(n-)/2n=5=3(n-)/2=1=1=2

तो, काउंटरएक्सप्लांट वास्तव में एक काउंटरएक्सप्लिमेंट नहीं है, और यह मेरे उत्तर के ऊपर विरोधाभास नहीं करता है।


1
@JeremyKun की दूरी इसलिए कोड त्रुटियों को सही कर सकता है, है ना? n-+1(n-)/2
रैन जी।

हालांकि एक सबूत गायब है, इस जवाब में स्पष्टीकरण मेरे लिए समझ में आता है। में शून्य सेट करना एल्गोरिथ्म को बताता है "जो इंगित करता है कि इसे बहुपद को प्रक्षेपित करते समय अनदेखा करना चाहिए। इसलिए जब तक में शून्य के सेट में उस बिंदु का सेट होता है जिसमें त्रुटियां हुई हैं, तो डिकोडिंग को काम करना चाहिए। इस मामले में अधिक मुक्त चर (मनमाने तरीके से शून्य के अन्य स्थानों को निर्धारित करने के लिए) होना चाहिए। (एक्स)(एक्स)
रण जी।

Ooooh यह समस्या है ... कि मैंने सिंगलटन को बाध्य किया है? इसलिए सत्यापित करने के लिए, अगर मुझे सेट करना था, तो एक भी त्रुटि पेश करें, और सेट करें , तो हमें हर चीज से काम करने की उम्मीद करनी चाहिए। मैं अब यही कोशिश करूंगा। n=7=2
जेरेमीकुन

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