गॉर्न पता एक पेड़ डेटा संरचना के भीतर किसी भी नोड की पहचान और संबोधन की एक विधि है, जिसे अमेरिकी कंप्यूटर वैज्ञानिक शाऊल गॉर्न ने 1967 में प्रस्तुत किया था। यह शून्य या अधिक पूर्णांकों का एक अनुक्रम है, जिसे परंपरागत रूप से बिंदुओं द्वारा अलग किया जाता है, जैसे 0 या 1.0.1। यह संकेतन अक्सर वाक्यांश संरचना नियमों द्वारा परिभाषित पार्स पेड़ में नोड्स की पहचान के लिए प्रयोग किया जाता है, जहां प्रत्येक पता विशिष्ट रूप से जड़ से एक विशेष नोड तक के पथ को कूटबद्ध करता है
पेड़ की जड़, जिसे गॉर्न ने * कहा, को खाली अनुक्रम माना जाता है। किसी भी नोड के लिए पते i के साथ, उसका j-वां बच्चा (गिनती 0 से) का पता i.j होता है। उदाहरण के लिए, एक पेड़ में जहां जड़ के बच्चे 0, 1, और 2 हैं, पता 1.0 जड़ के दूसरे बच्चे के पहले बच्चे को संदर्भित करता है। यह पुनरावर्ती परिभाषा पतों को पेड़ के गहराने के साथ मनमाने ढंग से लंबा होने की अनुमति देती है, जिसमें अनुक्रम का प्रत्येक पूर्णांक संबंधित स्तर पर बच्चे के सूचकांक को दर्शाता है
औपचारिक परिभाषा
औपचारिक रूप से, एक गॉर्न पता गैर-ऋणात्मक पूर्णांकों का एक परिमित अनुक्रम है, जिसे अक्सर a1.a2....an के रूप में लिखा जाता है जहां प्रत्येक ai एक पूर्णांक है। खाली अनुक्रम, जिसे * या एक खाली स्ट्रिंग द्वारा दर्शाया जाता है, जड़ का प्रतिनिधित्व करता है। एक नोड का पता उसके माता-पिता के पते को बच्चे के सूचकांक के साथ जोड़कर बनाया जाता है, जो एक बिंदु द्वारा अलग किया जाता है। यह योजना असंदिग्ध है: एक पेड़ में प्रत्येक नोड का ठीक एक गॉर्न पता होता है, और प्रत्येक मान्य पता ठीक एक नोड से मेल खाता है, बशर्ते पेड़ परिमित हो और प्रत्येक नोड के बच्चों की संख्या अच्छी तरह से परिभाषित हो
यह संकेतन विशेष रूप से औपचारिक भाषा सिद्धांत और कम्प्यूटेशनल भाषाविज्ञान में उपयोगी है, जहां पार्स पेड़ वाक्यांश संरचना व्याकरण द्वारा उत्पन्न होते हैं। ऐसे पेड़ों में, प्रत्येक आंतरिक नोड एक गैर-टर्मिनल प्रतीक से मेल खाता है, और उसके बच्चे एक उत्पादन नियम में प्रतीकों से मेल खाते हैं। गॉर्न पते विशिष्ट उप-पेड़ों या पत्तियों को संदर्भित करने का एक संक्षिप्त तरीका प्रदान करते हैं, जिससे एल्गोरिद्म स्पष्ट पॉइंटर्स के बिना पेड़ संरचनाओं को पार करने या हेरफेर करने में सक्षम होते हैं
कंप्यूटर विज्ञान में अनुप्रयोग
गॉर्न पतों का प्राथमिक अनुप्रयोग वाक्यविन्यास पेड़ों के प्रतिनिधित्व और प्रसंस्करण में है, विशेष रूप से प्राकृतिक भाषा प्रसंस्करण और कंपाइलर डिज़ाइन में। कंपाइलरों में, अमूर्त वाक्यविन्यास पेड़ों (ASTs) को अक्सर त्रुटि रिपोर्टिंग, डिबगिंग, और कोड जनरेशन को सुविधाजनक बनाने के लिए गॉर्न पतों के साथ एनोटेट किया जाता है। उदाहरण के लिए, एक कंपाइलर पते 2.1.0 पर एक त्रुटि की रिपोर्ट कर सकता है, जो AST में एक विशिष्ट पत्ती नोड को दर्शाता है
गॉर्न पते कृत्रिम बुद्धिमत्ता और मशीन लर्निंग अनुसंधान में भी दिखाई देते हैं, विशेष रूप से प्रतीकात्मक AI और ज्ञान प्रतिनिधित्व में। वे निर्णय पेड़ों और व्याकरणों में नोड्स को अनुक्रमित करने के लिए उपयोग किए जाते हैं, जहां जड़ से एक पत्ती तक का प्रत्येक पथ एक अद्वितीय नियम या वर्गीकरण का प्रतिनिधित्व करता है। गहन लर्निंग में, पेड़-संरचित तंत्रिका नेटवर्क, जैसे पेड़ LSTM, कभी-कभी आउटपुट को पेड़ स्थितियों के साथ संरेखित करने के लिए गॉर्न पतों का उपयोग करते हैं
अन्य पेड़ संबोधन योजनाओं से संबंध
गॉर्न पते एक पेड़ में नोड्स की पहचान करने के कई तरीकों में से एक हैं। विकल्पों में हीप सूचकांक शामिल हैं (बाइनरी हीप्स में उपयोग किए जाते हैं, जहां जड़ 1 है और नोड i के बच्चे 2i और 2i+1 हैं), XPath पथ(जो तत्व नामों और विधेयकों का उपयोग करते हैं), और Lisp S-अभिव्यक्तियाँ(जो नेस्टेड सूचियों का उपयोग करती हैं)। हीप सूचकांकों के विपरीत, गॉर्न पते एक निश्चित अरिटी से बंधे नहीं हैं; वे उन पेड़ों के लिए काम करते हैं जहां नोड्स के बच्चों की संख्या भिन्न होती है। XPath के विपरीत, गॉर्न पते विशुद्ध रूप से स्थितीय हैं और नोड लेबल पर निर्भर नहीं करते, जिससे वे सरल लेकिन कम वर्णनात्मक होते हैं
यह संकेतन यूनिक्स फ़ाइल पथों से भी संबंधित है क्योंकि दोनों पदानुक्रमिक पहचानकर्ताओं के अनुक्रम का उपयोग करते हैं, लेकिन गॉर्न पते केवल पूर्णांक और एक बिंदु विभाजक का उपयोग करते हैं, जबकि फ़ाइल पथ नाम और स्लैश का उपयोग करते हैं। यह पूर्णांक-आधारित योजना तब फायदेमंद है जब संरचना ज्ञात हो लेकिन लेबल नहीं, या जब लेबल अनावश्यक हों
ऐतिहासिक संदर्भ और प्रभाव
शाऊल गॉर्न ने अपने 1967 के पेपर "Explicit definitions and linguistic dominoes" में पता संकेतन प्रस्तुत किया, जो टोरंटो विश्वविद्यालय में सिस्टम्स और कंप्यूटर विज्ञान पर एक संगोष्ठी की कार्यवाही में प्रकाशित हुआ। गॉर्न कंप्यूटर विज्ञान शिक्षा और प्रोग्रामिंग भाषाओं में एक अग्रणी थे, और पेड़ संबोधन पर उनके काम ने डेटा संरचनाओं और औपचारिक भाषा सिद्धांत में बाद के विकासों को प्रभावित किया। "गॉर्न पता" शब्द अब कंपाइलर डिज़ाइन और पार्सिंग पर पाठ्यपुस्तकों में मानक है, हालांकि इसे कभी-कभी केवल "पेड़ पता" या "पथ स्ट्रिंग" के रूप में संदर्भित किया जाता है
अपनी आयु के बावजूद, यह संकेतन आधुनिक सिस्टमों में प्रासंगिक बना हुआ है। उदाहरण के लिए, XML और JSON प्रसंस्करण उपकरण अक्सर डिबगिंग के लिए समान स्थितीय संबोधन का उपयोग करते हैं, और कुछ डेटाबेस पदानुक्रमिक डेटा को अनुक्रमित करने के लिए गॉर्न-जैसे पतों का उपयोग करते हैं। प्रोग्रामिंग भाषा सिद्धांत में, गॉर्न पते विशेषता व्याकरणों में यह निर्दिष्ट करने के लिए उपयोग किए जाते हैं कि विशेषताएँ कहाँ गणना की जाती हैं
सीमाएँ और विस्तार
गॉर्न पतों की एक सीमा यह है कि वे एक निश्चित बच्चे क्रम को मानते हैं, जो पार्स पेड़ों के लिए स्वाभाविक है लेकिन अक्रमित पेड़ों के लिए नहीं हो सकता। ऐसे मामलों में, पते अभी भी मान्य हैं लेकिन विभिन्न क्रमों में स्थिर नहीं हो सकते। एक और सीमा यह है कि पते गहरे पेड़ों के लिए लंबे हो सकते हैं, लेकिन यह शायद ही एक व्यावहारिक मुद्दा है। गॉर्न पतों के विस्तारों में विशेष नोड्स को दर्शाने के लिए ऋणात्मक पूर्णांकों का उपयोग शामिल है(जैसे एक आभासी जड़) या पठनीयता के लिए एक भिन्न विभाजक का उपयोग। कुछ सिस्टम एक प्रकार का उपयोग करते हैं जहां जड़ 0 है खाली अनुक्रम के बजाय, लेकिन यह मानक नहीं है। यह संकेतन कभी-कभी लेबलों के साथ भी संयुक्त किया जाता है, जैसे NP.0.1, जहां NP एक नोड लेबल है, लेकिन यह एक अनौपचारिक विस्तार है
संक्षेप में, गॉर्न पता कंप्यूटर विज्ञान में एक आधारभूत अवधारणा है, जो एक पेड़ में नोड्स को संदर्भित करने का एक सरल, असंदिग्ध तरीका प्रदान करता है। पार्स पेड़ों और कंपाइलरों में इसका उपयोग इसे एक स्थायी उपकरण बना चुका है, और यह पदानुक्रमिक डेटा से जुड़े आधुनिक अनुसंधान और अनुप्रयोगों में प्रकट होता रहता है