← नवीनतम पेपर
💻 computer science

Detecting and Explaining (In-)equivalence of Context-Free Grammars

यह शोधपत्र एक स्केलेबल फ्रेमवर्क प्रस्तावित करता है जो अमूर्त व्याकरण रूपांतरणों (abstract grammar transformations), सिद्धांत-आधारित तुलना एल्गोरिदम और ग्राफ-थ्योरी से प्रेरित कैनोनाइजेशन (canonization) को प्रभावी ढंग से संयोजित करता है ताकि संदर्भ-मुक्त व्याकरणों (context-free grammars) की (अस)समानता का निर्णय लेने, सिद्ध करने और समझाने के लिए, समस्या की सामान्य अनिर्णयता (undecidability) के बावजूद, बड़े शैक्षिक डेटासेट के एक महत्वपूर्ण हिस्से को सफलतापूर्वक संभाल सके।

मूल लेखक: Marko Schmellenkamp, Thomas Zeume, Sven Argo, Sandra Kiefer, Cedric Siems, Fynn Stebel

प्रकाशित 2026-04-09
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Marko Schmellenkamp, Thomas Zeume, Sven Argo, Sandra Kiefer, Cedric Siems, Fynn Stebel

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

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

उदाहरण के लिए, एक शिक्षक एक ऐसा व्याकरण मांगता है जो ab, aabb, aaabbb जैसे शब्द बनाता है (जहाँ a की संख्या हमेशा b की संख्या के बराबर होती है)।

एक छात्र अपने नियम सबमिट करता है। कंप्यूटर को दो सवालों के जवाब देने होंगे:

  1. क्या यह सही है? (क्या यह ठीक वही शब्द बनाता है जो मांगे गए थे?)
  2. यदि यह गलत है, तो क्यों? (क्या वे एक नियम भूल गए? क्या उन्होंने एक अतिरिक्त नियम जोड़ दिया?)

समस्या यह है कि जटिल पैटर्न के लिए, दो नियमों के सेट की तुलना करना कि वे "समान" हैं या नहीं, गणितीय रूप से हर मामले के लिए पूरी तरह से हल करना असंभव है। यह कुछ ऐसा है जैसे यह साबित करने की कोशिश करना कि दो अलग-अलग रेसिपी हमेशा बिल्कुल एक जैसा केक बनाएंगी, चाहे आप ओवन का तापमान कितना भी बदल दें।

यह शोध पत्र एक स्मार्ट, स्केलेबल फ्रेमवर्क प्रस्तुत करता है जो एक सुपर-ट्यूटर की तरह काम करता है। यह केवल "गलत" नहीं कहता। यह समझने की कोशिश करता है कि यह क्यों गलत है और छात्र को समझाता है, और हजारों छात्र सबमिशन को कुशलतापूर्वक संभालता है।

यह कैसे काम करता है, यहाँ कुछ रोजमर्रा के उदाहरणों का उपयोग किया गया है:

1. "नेम-टैग" ट्रिक (कैनोनाइजेशन/Standardization)

कल्पना कीजिए कि दो छात्र बिल्कुल एक ही रेसिपी लिखते हैं, लेकिन एक सामग्री को "मैदा" और "चीनी" कहता है, जबकि दूसरा उन्हें "गेहूं" और "गन्ना" कहता है। एक मूर्ख कंप्यूटर सोच सकता है कि ये अलग-अलग रेसिपी हैं।

हमारे फ्रेमवर्क में एक "नेम-टैग" सिस्टम है। यह विशिष्ट नामों को हटा देता है और संरचना को देखता है। यह महसूस करता है, "ओह, दोनों ही बस 'मिक्स A + मिक्स B' हैं।" यह दोनों को एक मानक, तटस्थ प्रारूप में बदल देता है। यदि तटस्थ संस्करण मेल खाते हैं, तो कंप्यूटर जानता है कि छात्र ने सही किया है, भले ही उन्होंने अलग-अलग वेरिएबल नामों का उपयोग किया हो।

2. "ट्रांसलेशन" टूल (व्याकरण रूपांतरण)

कभी-कभी, छात्र का व्याकरण संरचनात्मक रूप से भिन्न होता है लेकिन तार्किक रूप से समान होता है।

  • छात्र: "पहले, एक अंडा डालें, फिर मिलाएं।"
  • समाधान: "मिलाएं, फिर एक अंडा डालें।" (रुको, यह अलग है! बुरा उदाहरण)।
  • बेहतर उदाहरण: "एक अंडा डालें, फिर मिलाएं" बनाम "मिलाएं, फिर एक अंडा डालें" (यदि क्रम अंतिम परिणाम को प्रभावित नहीं करता है)।

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

3. "बग फिक्सर" (गलतियों को समझाना)

यह सबसे जादुई हिस्सा है। यदि छात्र गलत है, तो फ्रेमवर्क केवल "त्रुटि" (Error) नहीं कहता। यह यह देखने के लिए "बग को ठीक करने" की कोशिश करता है कि छात्र का मतलब क्या था।

  • परिदृश्य: छात्र रिकर्सन (लूप) को सही ढंग से रोकना भूल गया। उन्होंने एक नियम लिखा जो a, aa, aaa... अनंत तक उत्पन्न करता है, लेकिन उनका मतलब aabb पर रुकना था।
  • द फिक्स (सुधार): फ्रेमवर्क एक "पैच" आज़माता है। यह कहता है, "यदि मैं इस एक लाइन को 'शून्य पर रुकें' से बदलकर 'ab पर रुकें' कर दूँ, तो क्या यह समाधान से मेल खाता है?"
  • परिणाम: यदि पैच काम करता है, तो सिस्टम छात्र को बताता है: "आप बहुत करीब थे! आप बस रुकने की स्थिति (stopping condition) को भूल गए। यहाँ वह विशिष्ट लाइन है जो गलत थी।"

4. "पैटर्न मैचर" (बाउंडेड लैंग्वेजेस)

कंप्यूटर साइंस की कई होमवर्क समस्याओं में "बाउंडेड" भाषाएं शामिल होती हैं—ऐसे पैटर्न जो अनुमानित होते हैं, जैसे a के बाद b और फिर c

फ्रेवर्क के पास इन विशिष्ट प्रकार की समस्याओं के लिए एक विशेष "मैथमेटिकल कैलकुलेटर" है। यह व्याकरण के नियमों को एक गणितीय समीकरण (जैसे स्प्रेडशीट फॉर्मूला) में बदल देता है। इसके बाद यह यह साबित करने के लिए समीकरण को हल कर सकता है कि छात्र के नियम बिल्कुल उसी शब्दों की सूची को उत्पन्न करते हैं जो शिक्षक के नियम करते हैं।

5. "मेमोरी बैंक" (कैशिंग)

कल्पना कीजिए कि आप 50,000 होमवर्क असाइनमेंट ग्रेड कर रहे हैं। आप एक ही गणितीय समस्या को 50,000 बार हल नहीं करना चाहते।

फ्रेवर्क एक "मेमोरी बैंक" का उपयोग करता है।

  • यदि छात्र A एक व्याकरण सबमिट करता है, तो सिस्टम इसे हल करता है और उत्तर को सहेज लेता है।
  • यदि छात्र B 10 मिनट बाद बिल्कुल वही व्याकरण (या थोड़ा नाम बदलकर) सबमिट करता है, तो सिस्टम उसे फिर से कैलकुलेट नहीं करता। यह बस मेमोरी बैंक में देखता है और कहता है, "मैंने इसे पहले देखा है। यह सही है।"
  • यह सिस्टम को अविश्वसनीय रूप से तेज़ बनाता है, भले ही डेटासेट बहुत बड़ा हो।

बड़ी तस्वीर (The Big Picture)

लेखकों ने वास्तविक विश्वविद्यालय पाठ्यक्रमों से 55,000 से अधिक वास्तविक छात्र प्रयासों पर इस प्रणाली का परीक्षण किया।

  • सफलता दर: यह लगभग सभी प्रयासों के लिए स्वचालित रूप से यह तय करने में सक्षम था कि उत्तर सही है या गलत।
  • मानवीय कार्यभार: क्योंकि सिस्टम समान उत्तरों को समूह बनाने और छोटी गलतियों को ठीक करने में इतना अच्छा है, इसलिए एक मानव शिक्षक को होमवर्क के एक बहुत छोटे हिस्से (कुछ मामलों में 1% से भी कम) को मैन्युअल रूप से जांचने की आवश्यकता होती है।
  • लक्ष्य: "ग्रेडिंग" से हटकर "शिक्षण" की ओर बढ़ना। एक लाल "X" के बजाय, छात्र को एक सहायक नोट मिलता है: "आपका व्याकरण 'abb' शब्द उत्पन्न करता है, जो वहां नहीं होना चाहिए। अपने दूसरे 'b' के नियम की जाँच करें।"

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

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →