ग्राफ रिडक्सन

From Vigyanwiki
Revision as of 22:00, 24 July 2023 by alpha>Indicwiki (Created page with "{{About|the computer science term|the graph theory use|transitive reduction}} कंप्यूटर विज्ञान में, ग्राफ कटौती ग...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

कंप्यूटर विज्ञान में, ग्राफ कटौती गैर-सख्त मूल्यांकन का एक कुशल संस्करण लागू करती है, एक मूल्यांकन रणनीति जहां किसी फ़ंक्शन के तर्कों का तुरंत मूल्यांकन नहीं किया जाता है। गैर-सख्त मूल्यांकन के इस रूप को आलसी मूल्यांकन के रूप में भी जाना जाता है और इसका उपयोग कार्यात्मक प्रोग्रामिंग में किया जाता है। इस तकनीक को पहली बार 1971 में क्रिस वड्सवर्थ द्वारा विकसित किया गया था।

प्रेरणा

अंकगणितीय अभिव्यक्ति के मूल्यांकन का एक सरल उदाहरण इस प्रकार है:

उपरोक्त कटौती अनुक्रम एक रणनीति को नियोजित करता है जिसे बाहरीतम वृक्ष कटौती के रूप में जाना जाता है। उसी अभिव्यक्ति का मूल्यांकन अंतरतम वृक्ष कटौती का उपयोग करके किया जा सकता है, जिससे कमी अनुक्रम प्राप्त होता है:

ध्यान दें कि कमी का क्रम कोष्ठक जोड़ने से स्पष्ट हो जाता है। इस अभिव्यक्ति का मूल्यांकन केवल दाएँ से बाएँ भी किया जा सकता था, क्योंकि जोड़ एक साहचर्य संक्रिया है।

ट्री डेटा संरचना के रूप में प्रस्तुत, उपरोक्त अभिव्यक्ति इस तरह दिखती है:

Expression Tree.svgयहीं से वृक्ष न्यूनीकरण शब्द आया है। जब इसे एक पेड़ के रूप में दर्शाया जाता है, तो हम आंतरिक कमी को नीचे से ऊपर की ओर काम करने के रूप में सोच सकते हैं, जबकि बाहरी कमी ऊपर से नीचे की ओर काम करती है।

अभिव्यक्ति को एक निर्देशित चक्रीय ग्राफ के रूप में भी दर्शाया जा सकता है, जिससे उप-अभिव्यक्तियों को साझा किया जा सकता है:

Expression Graph.svgजहाँ तक पेड़ों की बात है, सबसे बाहरी और सबसे भीतरी कमी ग्राफ़ पर भी लागू होती है। इसलिए हमारे पास ग्राफ़ में कमी है।

अब सबसे बाहरी ग्राफ़ कटौती के साथ मूल्यांकन निम्नानुसार आगे बढ़ सकता है:

Expression Graph Reduction.svgध्यान दें कि मूल्यांकन के लिए अब केवल चार चरणों की आवश्यकता है। सबसे बाहरी ग्राफ़ में कमी को आलसी मूल्यांकन के रूप में जाना जाता है और सबसे भीतरी ग्राफ़ में कमी को उत्सुक मूल्यांकन के रूप में जाना जाता है।

संयोजक ग्राफ़ कमी

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

इतिहास

ग्राफ कटौती की अवधारणा जो मूल्यांकन किए गए मूल्यों को साझा करने की अनुमति देती है, सबसे पहले क्रिस वड्सवर्थ ने अपने 1971 पीएच.डी. में विकसित की थी। निबंध।[1] इस शोध प्रबंध को पीटर हेंडरसन और जेम्स एच. मॉरिस जूनियर ने 1976 के पेपर, "एक आलसी मूल्यांकनकर्ता" में उद्धृत किया था।[2] जिसने आलसी मूल्यांकन की धारणा प्रस्तुत की। 1976 में डेविड टर्नर (कंप्यूटर वैज्ञानिक) ने कॉम्बिनेटर का उपयोग करके एसएएसएल प्रोग्रामिंग भाषा में आलसी मूल्यांकन को शामिल किया।[3] एसएएसएल एक प्रारंभिक कार्यात्मक प्रोग्रामिंग भाषा थी जिसे पहली बार 1972 में टर्नर द्वारा विकसित किया गया था।

यह भी देखें

टिप्पणियाँ

  1. Hudak, Paul (September 1989). "कार्यात्मक प्रोग्रामिंग भाषाओं की संकल्पना, विकास और अनुप्रयोग". ACM Computing Surveys. 21 (3): 359–411. CiteSeerX 10.1.1.83.6505. doi:10.1145/72551.72554.
  2. A lazy evaluator
  3. Hudak, Paul; Hughes, John; Peyton Jones, Simon; Wadler, Philip. "A History of Haskell: Being Lazy with Class". History of Programming Languages Conference 2007.


संदर्भ

  • Bird, Richard (1998). Introduction to Functional Programming using Haskell. Prentice Hall. ISBN 0-13-484346-0.


अग्रिम पठन