पैटर्न के साथ मिलान परवाह नहीं है: कई पैटर्न


9

कलाई का 2-पृष्ठ सोडा पेपर पैटर्न के लिए एक सरल और कुशल एल्गोरिथ्म देता है जो परवाह नहीं करता है (वाइल्डकार्ड जो एक चरित्र से मेल खाते हैं)। संक्षेप में, यह कनविक्शन जितना आसान है।

लेकिन क्या होगा अगर हम कई पैटर्न की तलाश कर रहे हैं जिसमें कोई परवाह नहीं है? क्या हम अभी भी किसी तरह इसे एफएफटी आधारित तकनीकों के साथ हल कर सकते हैं?

जवाबों:


5

मल्टीपल पैटर्न केस के लिए, ऐसा लगता है कि बस प्रत्येक के लिए स्कैनिंग सबसे अच्छा संभव समाधान हो सकता है, कम से कम जब तक मजबूत घातीय-समय की परिकल्पना विफल नहीं हो जाती।

दिए गए सेटों को याद करें S1,S2,,Sn तथा T1,T2,,Tn ब्रह्मांड के ऊपर [m], अगर हम तय कर सकते हैं कि क्या हैं Si तथा Tj ऐसा है कि SiTj=[m] समय के भीतर O(n2εpoly(m)), तो SETH विफल हो जाता है, अर्थात हमारे पास चल रहे समय के साथ CNF-SAT एल्गोरिदम है O(2(1ε/2)n)

दिए गए सेट S1,S2,,Sn तथा T1,T2,,Tn, हम उपरोक्त समस्या को सांकेतिक शब्दों में बँटते हैं, जैसे कि मल्टी-पैटर्न का मिलान बाइनरी वर्णमाला से अधिक नहीं होता है:

  • पाठ इस प्रकार है
    1[T1]10m+21[T2]10m+20m+21[Tn]1,
    कहाँ पे [Ti] की प्राकृतिक एन्कोडिंग है Ti एक बाइनरी स्ट्रिंग के रूप में।
  • हमारे पास है n फार्म के पैटर्न 1Si1, कहाँ पे Si एक तार है y=y1y2ym ऐसा है कि yj=1 अगर jSi तथा yj= अगर jSi (यहाँ प्रतीक नहीं है)।

अब यह स्पष्ट है कि एक पैटर्न 1Si1 की घटना पर पाठ से मेल कर सकते हैं 1[Tj]1, और केवल जब SiTj=[m]। पैटर्न की कुल लंबाई और पाठ की लंबाई दोनों हैंO(nm)उदाहरण के लिए, कई पैटर्न के लिए एक निकट-रैखिक एकल-पास एल्गोरिथ्म सबसे अच्छा ज्ञात CNF-SAT एल्गोरिदम पर पर्याप्त सुधार देगा ...

(ध्यान दें कि यह एल्गोरिदम के बारे में कुछ नहीं कहता है, जो पैटर्न की कुल लंबाई में, पैटर्न को प्रीप्रोसेसिंग करने के लिए बहुत अधिक समय का उपयोग करते हैं, कहते हैं।)

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