Π-कैलकुलस: Difference between revisions
No edit summary |
No edit summary |
||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Process calculus}} | {{Short description|Process calculus}} | ||
{{DISPLAYTITLE:{{pi}}-calculus}} | {{DISPLAYTITLE:{{pi}}-calculus}} | ||
[[सैद्धांतिक कंप्यूटर विज्ञान]] में {{pi}}-कैलकुलस (या पाई-कैलकुलस (कलन)) [[ प्रक्रिया गणना |प्रक्रिया | [[सैद्धांतिक कंप्यूटर विज्ञान]] में {{pi}}-कैलकुलस (या पाई-कैलकुलस (कलन)) [[ प्रक्रिया गणना |प्रक्रिया कैलकुलस]] है। वह {{pi}}-कैलकुलस चैनल के नामों को चैनलों के साथ स्वयं संप्रेषित करने की अनुमति देता है और इस तरह यह समवर्ती संगणनाओं का वर्णन करने में सक्षम होता है जिनके नेटवर्क कॉन्फ़िगरेशन गणना के समय परिवर्तित हो सकते हैं। {{pi}}-कैलकुलस में कुछ नियम हैं और यह छोटी किन्तु अभिव्यंजक भाषा है (देखें {{section link||Syntax}})। फंक्शनल प्रोग्रामों को {{pi}}-कैलकुलस में एन्कोड किया जा सकता है और यह एन्कोडिंग गणना की संवादात्मक प्रकृति पर महत्त्व देता है जो गेम सेमेन्टिक्स के साथ संपर्क स्थापित करता है। {{pi}}-कैलकुलस के विस्तार जैसे कि स्पि कैलकुलस और एप्लाइड {{pi}}, [[क्रिप्टोग्राफिक प्रोटोकॉल]] के विषय में तर्क करने में सफल रहे हैं। समवर्ती प्रणालियों का वर्णन करने में मूल उपयोग के अतिरिक्त {{pi}}-कैलकुलस का उपयोग व्यावसायिक प्रक्रियाओं<ref name="omg">OMG Specification (2011). [http://www.omg.org/spec/BPMN/2.0 "Business Process Model and Notation (BPMN) Version 2.0"], ''[[Object Management Group]]''. p.21</ref> और [[आणविक जीव विज्ञान]]<ref name="reeve" /> के बारे में तर्क करने के लिए भी किया जाता है। | ||
=== अनौपचारिक परिभाषा === | === अनौपचारिक परिभाषा === | ||
{{pi}}-कैलकुलस [[प्रक्रिया गणना]] के | {{pi}}-कैलकुलस [[प्रक्रिया गणना]] के समूह एवं समवर्ती गणना के गुणों का वर्णन और विश्लेषण करने के लिए गणितीय औपचारिकताओं से संबंधित है। वास्तव में {{pi}}-कैलकुलस, λ-कैलकुलस की तरह इतना न्यूनतम है कि इसमें संख्या, बूलियन, डेटा संरचना, चर, फ़ंक्शन या यहां तक कि सामान्य नियंत्रण प्रवाह विवरण जैसे मूल सम्मिलित नहीं हैं (जैसे, <code>if-then-else</code>, <code>while</code>). | ||
=== प्रक्रिया निर्माण === | === प्रक्रिया निर्माण === | ||
{{pi}}- | {{pi}}-कैलकुलस का केंद्र इसके नाम की धारणा है। कैलकुलस की सरलता दोहरी भूमिका में निहित है जिसे नाम संपर्क माध्यमों और चरों के रूप में निभाते हैं। | ||
कैलकुलस में उपलब्ध प्रक्रिया निर्माण निम्नलिखित हैं<ref>{{Cite web|url=https://www.cs.tufts.edu/~nr/cs257/archive/jeannette-wing/pi.pdf|title=FAQ on π-Calculus|last=Wing|first=Jeannette M.|date=27 December 2002}}</ref> (निम्न अनुभाग में सटीक परिभाषा दी गई है): | |||
* समवर्ती, लिखित <math>P \mid Q</math>, जहाँ <math>P</math> और <math>Q</math> दो प्रक्रियाएं या सूत्र समवर्ती रूप से निष्पादित होते हैं। | * समवर्ती, लिखित <math>P \mid Q</math>, जहाँ <math>P</math> और <math>Q</math> दो प्रक्रियाएं या सूत्र समवर्ती रूप से निष्पादित होते हैं। | ||
* संचार, जहाँ | * संचार, जहाँ | ||
** इनपुट उपसर्ग <math>c\left(x\right).P</math> एक संदेश की प्रतीक्षा करने की | ** इनपुट उपसर्ग <math>c\left(x\right).P</math> एक संदेश की प्रतीक्षा करने की प्रक्रिया है जिसे {{nowrap|<math>P</math>}} के रूप में आगे बढ़ने से पहले <math>c</math> नाम के संचार चैनल पर भेजा गया था जोकि नाम {{nowrap|{{mvar|x}}}} के लिए प्राप्त नाम को बाध्य करता है। सामान्य रूप से यह मॉडल या तो नेटवर्क से संचार की अपेक्षा करने वाली प्रक्रिया या लेबल <code>c</code> है जो <code>goto c</code> संचालन द्वारा केवल एक बार प्रयोग करने योग्य होती है। | ||
** आउटपुट उपसर्ग <math>\overline{c} \langle y \rangle.P</math> वर्णन करता है कि | ** आउटपुट उपसर्ग <math>\overline{c} \langle y \rangle.P</math> वर्णन करता है कि {{nowrap|<math>P</math>}} के रूप में आगे बढ़ने से पहले नाम <math>y</math> चैनल <math>c</math> पर उत्सर्जित किया जाता है। सामान्य रूप से यह मॉडल या तो नेटवर्क पर एक संदेश भेज रहा है या <code>goto c</code> संचालन। | ||
* प्रतिकृति, लिखित <math>!\,P</math>, जिसे एक ऐसी प्रक्रिया के रूप में देखा जा सकता है जो सदैव | * प्रतिकृति, लिखित <math>!\,P</math>, जिसे एक ऐसी प्रक्रिया के रूप में देखा जा सकता है जो सदैव {{nowrap|<math>P</math>}} की एक नई प्रतिलिपि बना सकती है। सामान्य रूप से यह मॉडल या तो एक नेटवर्क सेवा या एक लेबल <code>c</code> है जो किसी भी संख्या में <code>goto c</code> संचालन की प्रतीक्षा कर रहा है। | ||
* नए नाम <math>\left(\nu x\right)P</math> का निर्माण हुआ जिसे नई स्थिरांक आवंटित करने वाली प्रक्रिया {{mvar|x}} के रूप में देखा जा सकता है {{nowrap|<math>P</math>}} | * नए नाम <math>\left(\nu x\right)P</math> का निर्माण हुआ जिसे नई स्थिरांक आवंटित करने वाली प्रक्रिया {{mvar|x}} के रूप में देखा जा सकता है {{nowrap|<math>P</math>}} के साथ {{nowrap|{{pi}}-calculus}} के स्थिरांक केवल उनके नाम से परिभाषित होते हैं और सदैव संचार चैनल होते हैं। किसी प्रक्रिया में नए नाम के सृजन को प्रतिबंध भी कहा जाता है। | ||
* <math>0</math> | * शून्य प्रक्रिया, लिखित रूप में <math>0</math> एक ऐसी प्रक्रिया है जिसका निष्पादन पूरा हो गया है और रुक गया है। | ||
जबकि | जबकि {{pi}}-कैलकुलस का अतिसूक्ष्मवाद हमें सामान्य अर्थों में प्रोग्राम लिखने से रोकता है जिससे कैलकुलस का विस्तार करना सरल होता है। विशेष रूप से दोनों नियंत्रण संरचनाओं जैसे पुनरावर्तन, लूप और अनुक्रमिक रचना और डेटाटाइप जैसे प्रथम-क्रम के कार्यों, [[सत्य मूल्य|सत्य मूल्यों]], सूचियों और पूर्णांकों को परिभाषित करना सरल है। इसके अतिरिक्त {{nowrap|{{pi}}-कैलकुलस}} के एक्सटेंशन प्रस्तावित किए गए हैं जो वितरण या सार्वजनिक-कुंजी क्रिप्टोग्राफी को ध्यान में रखते हैं। अबादी और फोरनेट [https://www.soe.ucsc.edu/~abadi/Papers/isss02.pdf] के कारण लागू {{pi}}-कैलकुलस ने मनमाने ढंग से डेटाटाइप्स के साथ {{pi}}-कैलकुलस का विस्तार करके इन विभिन्न एक्सटेंशनों को एक औपचारिक आधार पर रखा। | ||
=== एक छोटा सा उदाहरण === | === एक छोटा सा उदाहरण === | ||
निम्नलिखित प्रक्रिया का एक छोटा उदाहरण है जिसमें तीन समानांतर घटक होते हैं। {{mvar|x}} चैनल | निम्नलिखित प्रक्रिया का एक छोटा उदाहरण है जिसमें तीन समानांतर घटक होते हैं। {{mvar|x}} नाम का चैनल केवल पहले दो घटकों द्वारा जाना जाता है। | ||
:<math> | :<math> | ||
Line 33: | Line 33: | ||
\end{align} | \end{align} | ||
</math> | </math> | ||
पहले दो घटक चैनल | पहले दो घटक चैनल {{mvar|x}} पर संचार करने में सक्षम हैं और {{mvar|y}} नाम के लिए {{mvar|z}} बाध्य हो जाता है इसलिए प्रक्रिया में अगला कदम है। | ||
:<math> | :<math> | ||
Line 51: | Line 51: | ||
\end{align} | \end{align} | ||
</math> | </math> | ||
ध्यान दें कि स्थानीय नाम के | ध्यान दें कि स्थानीय नाम के पश्चात {{mvar|x}} का उत्पादन किया गया है एवं {{mvar|x}} का क्षेत्र तीसरे घटक को भी कवर करने के लिए बढ़ाया गया है। अंत में {{mvar|x}} चैनल {{mvar|x}} नाम भेजने के लिए उपयोग किया जा सकता है जबकि उसके बाद सभी समवर्ती क्रियान्वित प्रक्रियाएँ रुक गई हैं | ||
:<math> | :<math> | ||
Line 65: | Line 65: | ||
== औपचारिक परिभाषा == | == औपचारिक परिभाषा == | ||
=== | === शब्दावली === | ||
माना कि Χ वस्तुओं का एक सेट है जिसे नाम कहा जाता है। {{pi}}- | माना कि Χ वस्तुओं का एक सेट है जिसे नाम कहा जाता है। {{pi}}-कैलकुलस के लिए [[सार वाक्य रचना]] निम्नलिखित [[बीएनएफ व्याकरण|BNF व्याकरण]] से बनाया गया है (जहाँ x और y, Χ से कोई नाम हैं):<ref>[http://www.lfcs.inf.ed.ac.uk/reports/89/ECS-LFCS-89-85/ A Calculus of Mobile Processes part 1] page 10, by R. Milner, J. Parrow and D. Walker published in Information and Computation 100(1) pp.1-40, Sept 1992</ref> | ||
:<math> | :<math> | ||
\begin{align} | \begin{align} | ||
Line 79: | Line 79: | ||
</math> | </math> | ||
<!-- "P,Q,R" -- was R needed? --> | <!-- "P,Q,R" -- was R needed? --> | ||
नीचे दिए गए ठोस रचनाक्रम में उपसर्ग समानांतर संरचना (|) की तुलना में अधिक कसकर बांधते हैं | नीचे दिए गए ठोस रचनाक्रम में उपसर्ग समानांतर संरचना (|) की तुलना में अधिक कसकर बांधते हैं जिन्हें कोष्ठकों को अलग करने के लिए उपयोग किया जाता है। | ||
नाम प्रतिबंध और इनपुट उपसर्ग निर्माणों से बंधे हैं। औपचारिक रूप से एक प्रक्रिया के मुक्त नामों का सेट {{pi}}-कैलकुलस को नीचे दी गई तालिका द्वारा आगमनात्मक रूप से परिभाषित किया गया है। किसी प्रक्रिया के | नाम, प्रतिबंध और इनपुट उपसर्ग निर्माणों से बंधे हैं। औपचारिक रूप से एक प्रक्रिया के मुक्त नामों का सेट {{pi}}-कैलकुलस को नीचे दी गई तालिका द्वारा आगमनात्मक रूप से परिभाषित किया गया है। किसी प्रक्रिया के बंधे नामों के सेट को उस प्रक्रिया के नामों के रूप में परिभाषित किया जाता है जो मुक्त नामों के सेट में नहीं होते हैं। | ||
{| class="wikitable" style="width: 100%;" | {| class="wikitable" style="width: 100%;" | ||
! Construct | ! Construct | ||
Line 114: | Line 114: | ||
''अल्फा-रूपांतरण'': | ''अल्फा-रूपांतरण'': | ||
:* <math>P \equiv Q</math> यदि | :* <math>P \equiv Q</math> यदि <math>P</math> में एक या एक से अधिक बाध्य नामों का नाम बदलकर <math>Q</math> को <math>P</math> से प्राप्त किया जा सकता है। | ||
समानांतर रचना के लिए | समानांतर रचना के लिए सिद्धांत: | ||
:* <math>P|Q \equiv Q|P</math> | :* <math>P|Q \equiv Q|P</math> | ||
:* <math>(P|Q)|R \equiv P|(Q|R)</math> | :* <math>(P|Q)|R \equiv P|(Q|R)</math> | ||
:*<math>P | 0 \equiv P</math> | :*<math>P | 0 \equiv P</math> | ||
प्रतिबंध के लिए | प्रतिबंध के लिए सिद्धांत: | ||
:* <math>(\nu x)(\nu y)P \equiv (\nu y)(\nu x)P</math> | :* <math>(\nu x)(\nu y)P \equiv (\nu y)(\nu x)P</math> | ||
:* <math>(\nu x)0 \equiv 0</math> | :* <math>(\nu x)0 \equiv 0</math> | ||
प्रतिकृति के लिए | प्रतिकृति के लिए सिद्धांत: | ||
:* <math>!P \equiv P|!P</math> | :* <math>!P \equiv P|!P</math> | ||
सिद्धांत संबंधित प्रतिबंध और समानांतर: | |||
:* <math>(\nu x)(P | Q) \equiv (\nu x)P | Q </math> यदि {{mvar|x}} | :* <math>(\nu x)(P | Q) \equiv (\nu x)P | Q </math> यदि {{mvar|x}} , <math>Q</math> का मुक्त नाम नहीं है। | ||
इस अंतिम | इस अंतिम सिद्धांत को कार्यक्षेत्र विस्तार सिद्धांत के रूप में जाना जाता है। यह सिद्धांत केंद्रीय है क्योंकि यह वर्णन करता है कि कैसे एक बाध्य नाम {{mvar|x}} को आउटपुट क्रिया द्वारा बाहर निकाला जा सकता है जिससे {{mvar|x}} का क्षेत्र बढ़ाया जा सकता है। ऐसी स्थितियों में जहां {{mvar|x}} , <math>Q</math> का मुक्त नाम है एवं इसके विस्तार को आगे बढ़ने की अनुमति देने के लिए अल्फा-रूपांतरण का उपयोग किया जा सकता है। | ||
=== | === रिडक्शन सेमेंटिक्स === | ||
यदि <math>P</math> एक संगणना चरण प्रदर्शित करता है जिसके पश्चात यह अब <math>P'</math> है तब हम <math>P \rightarrow P'</math> लिखते हैं | |||
यह | यह रिडक्शन संबंध <math>\rightarrow</math> कटौती नियमों के सेट के अंतर्गत कम से कम बंद संबंध के रूप में परिभाषित किया गया है। | ||
चैनलों के माध्यम से संवाद करने के लिए प्रक्रियाओं की क्षमता को पकड़ने वाला मुख्य | चैनलों के माध्यम से संवाद करने के लिए प्रक्रियाओं की क्षमता को पकड़ने वाला मुख्य रिडक्शन नियम निम्नलिखित है: | ||
* <math>\overline{x}\langle z \rangle.P | x(y).Q \rightarrow P | Q[z/y] </math> | * <math>\overline{x}\langle z \rangle.P | x(y).Q \rightarrow P | Q[z/y] </math> | ||
: जहाँ <math>Q[z/y]</math> प्रक्रिया <math>Q</math> को दर्शाता है जिसमें मुक्त नाम <math>z</math> है एवं <math>y</math> की मुक्त घटनाओं के लिए प्रतिस्थापित किया गया है। यदि मुक्त घटना किसी स्थान <math>y</math> पर होती है तब <math>z</math> मुक्त नहीं होगा एवं अल्फा-रूपांतरण की आवश्यकता हो सकती है। | : जहाँ <math>Q[z/y]</math> प्रक्रिया <math>Q</math> को दर्शाता है जिसमें मुक्त नाम <math>z</math> है एवं <math>y</math> की मुक्त घटनाओं के लिए प्रतिस्थापित किया गया है। यदि मुक्त घटना किसी स्थान <math>y</math> पर होती है तब <math>z</math> मुक्त नहीं होगा एवं अल्फा-रूपांतरण की आवश्यकता हो सकती है। | ||
Line 151: | Line 151: | ||
* यदि <math>P \equiv P'</math> और <math>P' \rightarrow Q'</math> और <math>Q' \equiv Q</math>, तब भी <math>P \rightarrow Q</math>. | * यदि <math>P \equiv P'</math> और <math>P' \rightarrow Q'</math> और <math>Q' \equiv Q</math>, तब भी <math>P \rightarrow Q</math>. | ||
बाद के नियम में कहा गया है कि संरचनात्मक रूप से संगत प्रक्रियाओं में समान | बाद के नियम में कहा गया है कि संरचनात्मक रूप से संगत प्रक्रियाओं में समान रिडक्शन होता है। | ||
=== उदाहरण | === उदाहरण पर पुनः विचार === | ||
प्रक्रिया पर पुनः विचार करें | प्रक्रिया पर पुनः विचार करें | ||
:<math> (\nu x)(\overline{x} \langle z \rangle.0 | x(y). \overline{y}\langle x \rangle . x(y).0 ) | z(v) . \overline{v}\langle v \rangle. 0 </math> | :<math> (\nu x)(\overline{x} \langle z \rangle.0 | x(y). \overline{y}\langle x \rangle . x(y).0 ) | z(v) . \overline{v}\langle v \rangle. 0 </math> | ||
रिडक्शन के शब्दार्थ की परिभाषा को लागू करते हुए, हम रिडक्शन प्राप्त करते हैं | |||
:<math> (\nu x)(\overline{x} \langle z \rangle.0 | x(y). \overline{y}\langle x \rangle . x(y).0 ) | z(v) . \overline{v}\langle v \rangle. 0 \rightarrow (\nu x)(0| \overline{z}\langle x \rangle . x(y). 0 ) | z(v). \overline{v}\langle v \rangle .0 </math> | :<math> (\nu x)(\overline{x} \langle z \rangle.0 | x(y). \overline{y}\langle x \rangle . x(y).0 ) | z(v) . \overline{v}\langle v \rangle. 0 \rightarrow (\nu x)(0| \overline{z}\langle x \rangle . x(y). 0 ) | z(v). \overline{v}\langle v \rangle .0 </math> | ||
ध्यान दें कि कैसे | ध्यान दें कि कैसे रिडक्शन प्रतिस्थापन स्वयंसिद्ध को लागू करते हुए <math>y</math> की मुक्त घटनाएँ अब <math>z</math> के रूप में लेबल किए गए हैं | ||
इसके पश्चात हम | इसके पश्चात हम रिडक्शन प्राप्त करते हैं | ||
:<math> (\nu x)(0| \overline{z}\langle x \rangle . x(y). 0 ) | z(v). \overline{v}\langle v \rangle .0 \rightarrow (\nu x)(0| x(y). 0 | \overline{x}\langle x \rangle .0) </math> | :<math> (\nu x)(0| \overline{z}\langle x \rangle . x(y). 0 ) | z(v). \overline{v}\langle v \rangle .0 \rightarrow (\nu x)(0| x(y). 0 | \overline{x}\langle x \rangle .0) </math> | ||
ध्यान दें कि स्थानीय नाम के बाद से {{mvar|x}} का उत्पादन किया गया है एवं {{mvar|x}} का क्षेत्र तीसरे घटक को भी कवर करने के लिए बढ़ाया गया है। इसे स्कोप एक्सटेंशन स्वयंसिद्ध का उपयोग करके कैप्चर किया गया था। | ध्यान दें कि स्थानीय नाम के बाद से {{mvar|x}} का उत्पादन किया गया है एवं {{mvar|x}} का क्षेत्र तीसरे घटक को भी कवर करने के लिए बढ़ाया गया है। इसे स्कोप एक्सटेंशन स्वयंसिद्ध का उपयोग करके कैप्चर किया गया था। | ||
इसके पश्चात | इसके पश्चात रिडक्शन प्रतिस्थापन स्वयंसिद्ध का उपयोग करके हम प्राप्त करते हैं। | ||
:<math> (\nu x)(0 | 0 | 0) </math> | :<math> (\nu x)(0 | 0 | 0) </math> | ||
अंत में समांतर संरचना और प्रतिबंध के लिए सिद्धांतों का उपयोग करके हम प्राप्त करते | अंत में समांतर संरचना और प्रतिबंध के लिए सिद्धांतों का उपयोग करके हम प्राप्त करते हैं। | ||
:<math> 0 </math> | :<math> 0 </math> | ||
=== लेबल किए गए | === लेबल किए गए सिमेंटिक्स === | ||
वैकल्पिक रूप से कोई {{pi}}-कैलकुलस को लेबल ट्रांज़िशन सिमेंटिक्स दे सकता है ([[संचार प्रणालियों की गणना]] के कैलकुलस के साथ किया गया है)। <br />इस शब्दार्थ में | वैकल्पिक रूप से कोई {{pi}}-कैलकुलस को लेबल ट्रांज़िशन सिमेंटिक्स दे सकता है ([[संचार प्रणालियों की गणना]] के कैलकुलस के साथ किया गया है)। <br />इस शब्दार्थ में, क्रिया <math>\alpha</math> के बाद एक स्थिति <math>P</math> से किसी अन्य अवस्था <math>P'</math> में सिमेंटिक्स को इस रूप में नोट किया जाता है: | ||
*<math>P\,\xrightarrow{\overset{}\alpha} P'</math> | *<math>P\,\xrightarrow{\overset{}\alpha} P'</math> | ||
जहां क्षेत्र <math>P</math> और <math>P'</math> प्रक्रियाओं का प्रतिनिधित्व करते हैं और <math>\alpha</math> या तो इनपुट <math>a(x)</math> क्रिया | जहां क्षेत्र <math>P</math> और <math>P'</math> प्रक्रियाओं का प्रतिनिधित्व करते हैं और <math>\alpha</math> या तो इनपुट <math>a(x)</math> क्रिया, आउटपुट क्रिया<math>\overline{a}\langle x \rangle</math> या मौन क्रिया {{mvar|τ}} है।<ref>Robin Milner, Communicating and Mobile Systems: The Pi Calculus, Cambridge University Press, {{ISBN|0521643201}}. 1999</ref> | ||
लेबल किए गए शब्दार्थ के बारे में मानक परिणाम यह है कि यह संरचनात्मक अनुरूपता तक | लेबल किए गए शब्दार्थ के बारे में मानक परिणाम यह है कि यह संरचनात्मक अनुरूपता तक रिडक्शन शब्दार्थ से सहमत है इस अर्थ में कि | ||
<math>P \rightarrow P'</math> यदि और केवल यदि | <math>P \rightarrow P'</math> यदि और केवल यदि | ||
<math>P\,\xrightarrow{\overset{}\tau}\equiv P'</math> <ref>Sangiorgi, D., & Walker, D. (2003). p51, The Pi-Calculus. Cambridge University Press.</ref> | <math>P\,\xrightarrow{\overset{}\tau}\equiv P'</math> <ref>Sangiorgi, D., & Walker, D. (2003). p51, The Pi-Calculus. Cambridge University Press.</ref> | ||
Line 187: | Line 187: | ||
== विस्तार और संस्करण == | == विस्तार और संस्करण == | ||
ऊपर दी गयी | ऊपर दी गयी शब्दावली न्यूनतम है। जबकि शब्दावली को विभिन्न तरीकों से संशोधित किया जा सकता है। | ||
गैर-नियतात्मक पसंद ऑपरेटर <math>P + Q</math> | गैर-नियतात्मक पसंद ऑपरेटर <math>P + Q</math> शब्दावली में जोड़ा जा सकता है। | ||
नाम समानता के लिए परीक्षण <math>[x=y]P</math> | नाम समानता के लिए परीक्षण <math>[x=y]P</math> शब्दावली में जोड़ा जा सकता है। यह मैच ऑपरेटर <math>P</math> आगे बढ़ सकता है यदि और केवल यदि {{mvar|x}} और <math>y</math> एक ही नाम हैं। | ||
इसी प्रकार कोई 'नाम असमानता' के लिए बेमेल संकारक जोड़ सकता है। प्रैक्टिकल प्रोग्राम जो नाम (यूआरएल या पॉइंटर्स) पास कर सकते हैं, अधिकतर ऐसी कार्यक्षमता का उपयोग करते हैं: | इसी प्रकार कोई 'नाम असमानता' के लिए बेमेल संकारक जोड़ सकता है। प्रैक्टिकल प्रोग्राम जो नाम (यूआरएल या पॉइंटर्स) पास कर सकते हैं, अधिकतर ऐसी कार्यक्षमता का उपयोग करते हैं: कैलकुलस के अंदर ऐसी कार्यक्षमता को सीधे मॉडलिंग करने के लिए यह और संबंधित एक्सटेंशन अधिकतर उपयोगी होते हैं। | ||
अतुल्यकालिक {{pi}}- | अतुल्यकालिक {{pi}}-कैलकुलस<ref>{{cite book|last1=Boudol|first1=G.|title=Asynchrony and the {{pi}}-calculus. Technical Report 1702, INRIA, Sophia-Antipolis| date=1992}}</ref><ref>{{cite book|last1=Honda |first1=K. | last2=Tokoro | first2=M. |title=An Object Calculus for Asynchronous Communication. ECOOP 91|publisher=Springer Verlag| date=1991}}</ref> बिना किसी प्रत्यय के केवल आउटपुट की अनुमति देता है अर्थात फॉर्म के आउटपुट परमाणु <math>\overline{x}\langle y \rangle</math> एक छोटे कैलकुलस की उपज हैं जबकि मूल कैलकुलस में किसी भी प्रक्रिया को प्राप्त करने की प्रक्रिया से स्पष्ट पावती का अनुकरण करने के लिए एक अतिरिक्त मार्ग का उपयोग करके छोटे अतुल्यकालिक π-कैलकुलस द्वारा दर्शाया जा सकता है। चूंकि निरंतरता-मुक्त आउटपुट संदेश-इन-ट्रांजिट को मॉडल कर सकता है एवं यह भाग दिखाता है कि मूल {{pi}}-कैलकुलस जो सहज रूप से सिंक्रोनस संचार पर आधारित है इसके शब्दावली के अंदर अभिव्यंजक अतुल्यकालिक संचार मॉडल है। जबकि ऊपर परिभाषित गैर-नियतात्मक चयनित ऑपरेटर को इस प्रकार से व्यक्त नहीं किया जा सकता है क्योंकि अनियंत्रित विकल्प को संरक्षित में परिवर्तित कर दिया जाएगा एवं इस तथ्य का उपयोग यह प्रदर्शित करने के लिए किया गया है कि एसिंक्रोनस कैलकुलस सिंक्रोनस (विकल्प ऑपरेटर के साथ) की तुलना में कठिन रूप से कम अभिव्यंजक है।<ref>{{cite journal|last=Palamidessi|first=Catuscia|author-link=Catuscia Palamidessi|title=सिंक्रोनस और एसिंक्रोनस पाई-कैलकुलस की अभिव्यंजक शक्ति की तुलना करना|journal=Proceedings of the 24th ACM Symposium on Principles of Programming Languages|year=1997|pages=256–265|arxiv=cs/9809008|bibcode=1998cs........9008P}}</ref> | ||
बहुविकल्पी {{pi}}- | बहुविकल्पी {{pi}}-कैलकुलस एक ही क्रिया (पॉलीडिक इनपुट) में एक से अधिक नामों को संप्रेषित करने की अनुमति देता है जैसे <math>\overline{x}\langle z_1,...,z_n\rangle.P</math> (पॉलीडिक आउटपुट) और <math>x(z_1,...,z_n).P</math> । यह पॉलीऐडिक विस्तार जो विशेष रूप से नाम पासिंग प्रक्रियाओं के प्रकारों का अध्ययन करते समय उपयोगी होता है जोकि निजी चैनल के नाम को पास करके मोनैडिक कैलकुस में एन्कोड किया जा सकता है जिसके माध्यम से कई तर्क अनुक्रम में पारित किए जाते हैं। एन्कोडिंग को खंडों द्वारा पुनरावर्ती रूप से परिभाषित किया गया है। | ||
<math>\overline{x}\langle y_1,\cdots,y_n\rangle.P</math> को <math>(\nu w) \overline{x}\langle w \rangle.\overline{w}\langle y_1\rangle.\cdots.\overline{w}\langle y_n\rangle.[P]</math> के रूप में एन्कोड किया गया है। | <math>\overline{x}\langle y_1,\cdots,y_n\rangle.P</math> को <math>(\nu w) \overline{x}\langle w \rangle.\overline{w}\langle y_1\rangle.\cdots.\overline{w}\langle y_n\rangle.[P]</math> के रूप में एन्कोड किया गया है। | ||
Line 205: | Line 205: | ||
अन्य सभी प्रक्रिया निर्माणों को एन्कोडिंग द्वारा अपरिवर्तित छोड़ दिया जाता है। | अन्य सभी प्रक्रिया निर्माणों को एन्कोडिंग द्वारा अपरिवर्तित छोड़ दिया जाता है। | ||
ऊपरोक्त में | ऊपरोक्त में <math>[P]</math>, <math>P</math> निरंतरता में सभी उपसर्गों के एन्कोडिंग को दर्शाता है उसी प्रकार से। | ||
प्रतिकृति | प्रतिकृति <math>!P</math> की पूरी शक्ति आवश्यकता नहीं है। प्रायः कोई केवल प्रतिरूपित इनपुट <math>! x(y).P</math> पर विचार करता है जिसकी संरचनात्मक सर्वांगसमता <math>! x(y).P \equiv x(y).P | !x(y).P</math> सिद्धांत है। | ||
प्रतिकृति इनपुट प्रक्रिया जैसे <math> !x(y).P</math> सर्वर के रूप में समझा जा सकता है, चैनल | प्रतिकृति इनपुट प्रक्रिया जैसे <math> !x(y).P</math> सर्वर के रूप में समझा जा सकता है, चैनल {{mvar|x}} पर प्रतीक्षा कर रहा है एवं ग्राहकों द्वारा आह्वान किया जाता है। एक सर्वर का आह्वान <math>P[a/y]</math> प्रक्रिया की नई प्रति उत्पन्न करता है जहां बाद के आह्वान के समय क्लाइंट द्वारा सर्वर को दिया गया नाम a है। | ||
{{mvar|x}} ग्राहकों द्वारा आह्वान किया | |||
उच्च क्रम {{pi}}-कैलकुलस को परिभाषित किया जा सकता है जहां न केवल नाम बल्कि प्रक्रियाओं को चैनलों के माध्यम से भेजा जाता है। उच्च क्रम की स्थिती के लिए महत्वपूर्ण ह्रास नियम है | |||
उच्च क्रम | |||
<math>\overline{x}\langle R \rangle.P | x(Y).Q \rightarrow P | Q[R/Y] </math> | <math>\overline{x}\langle R \rangle.P | x(Y).Q \rightarrow P | Q[R/Y] </math> | ||
यहाँ | यहाँ <math>Y</math> प्रक्रिया चर को दर्शाता है जिसे एक प्रक्रिया अवधि द्वारा त्वरित किया जा सकता है। सांगियोर्गी ने स्थापित किया कि प्रक्रियाओं को पास करने की क्षमता {{pi}}-कैलकुलस की अभिव्यंजकता में वृद्धि नहीं करती है: प्रक्रिया P को पारित करने को केवल नाम पास करके अनुकरण किया जा सकता है जो इसके स्थान पर P को इंगित करता है। | ||
स्थापित किया | |||
इसके | |||
== गुण == | == गुण == | ||
=== ट्यूरिंग पूर्णता === | === ट्यूरिंग पूर्णता === | ||
{{pi}}- | {{pi}}-कैलकुलस संगणना का एक सार्वभौमिक मॉडल ([[ट्यूरिंग पूर्ण]]) है। इसे पहली बार [[रॉबिन मिलनर]] ने अपने पेपर "फंक्शन्स ऐज़ प्रोसेसेस" में देखा था<ref>{{cite journal|last=Milner|first=Robin|author-link=Robin Milner|title=प्रक्रियाओं के रूप में कार्य करता है|journal=Mathematical Structures in Computer Science|pages=119–141|year=1992|volume=2|issue=2|doi=10.1017/s0960129500001407|url=http://hal.archives-ouvertes.fr/docs/00/07/54/05/PDF/RR-1154.pdf|hdl=20.500.11820/159b09c0-1147-4f32-baf0-23bed198f12a|s2cid=36446818 |hdl-access=free}}</ref> जिसमें उन्होंने {{pi}}-कैलकुलस में वह [[लैम्ब्डा-पथरी|लैम्ब्डा-कैलकुलस]] के दो एनकोडिंग प्रस्तुत किए। एक एन्कोडिंग उत्सुक (कॉल-बाय-वैल्यू) [[मूल्यांकन रणनीति]] का अनुकरण करती है तथा अन्य एन्कोडिंग सामान्य-ऑर्डर (कॉल-बाय-नेम) रणनीति का अनुकरण करती है। इन दोनों में महत्वपूर्ण अंतर्दृष्टि पर्यावरण बाइंडिंग का मॉडलिंग है - उदाहरण के लिए {{mvar|x}} अवधि के लिए बाध्य है जबकि <math display="inline">M</math>- प्रतिकृति एजेंटों के रूप में जो शब्द <math>M</math> के लिए संपर्क वापस भेजकर अपनी बाइंडिंग के अनुरोधों का उत्तर देते हैं। | ||
{{pi}}-कैलकुलस की विशेषताएं जो इन एनकोडिंग को संभव बनाते हैं वे नाम-पासिंग और प्रतिकृति (या, समतुल्य, पुनरावर्ती रूप से परिभाषित एजेंट) हैं। प्रतिकृति/पुनरावृत्ति के अभाव में {{pi}}-कैलकुलस ट्यूरिंग-पूर्ण होना बंद कर देता है। यह इस तथ्य से देखा जा सकता है कि पुनरावर्तन-मुक्त कैलकुलस और यहां तक कि परिमित-नियंत्रण {{pi}}-कैलकुलस के लिए [[bisimulation|बाईसिमुलेशन]] तुल्यता निर्णायक हो जाती है जहां किसी भी प्रक्रिया में समानांतर घटकों की संख्या एक स्थिरांक से बंधी होती है।<ref>{{cite journal|last=Dam|first=Mads|title=पाई-कैलकुलस के लिए प्रक्रिया तुल्यता की निर्णायकता पर|journal=Theoretical Computer Science|issue=2|pages=215–228|year=1997|volume=183|doi=10.1016/S0304-3975(96)00325-8|doi-access=free}}</ref> | |||
== | == {{pi}}-कैलकुलस में बाईसिमुलेशन == | ||
{{See also|बाईसिमुलेशन}} | {{See also|बाईसिमुलेशन}} | ||
प्रक्रिया गणना के लिए | प्रक्रिया गणना के लिए {{pi}}-कैलकुलस बाईसिमुलेशन तुल्यता की परिभाषा की अनुमति देता है। {{pi}}-कैलकुलस में बाईसिमुलेशन समतुल्यता की परिभाषा (जिसे बाईसिमिलैरिटी के रूप में भी जाना जाता है) या तो रिडक्शन शब्दार्थ या लेबल संक्रमण शब्दार्थ पर आधारित हो सकती है। | ||
{{pi}}-कैलकुलस में लेबल किए गए बाईसिमुलेशन समकक्ष को परिभाषित करने के (कम से कम) तीन अलग-अलग उपाय हैं: अर्ली, लेट और ओपन बाइसिमिलरिटी। यह इस तथ्य से प्राप्त हुआ है कि {{pi}}-कैलकुलस एक वैल्यू-पासिंग प्रोसेस कैलकुलस है। | {{pi}}-कैलकुलस में लेबल किए गए बाईसिमुलेशन समकक्ष को परिभाषित करने के (कम से कम) तीन अलग-अलग उपाय हैं: अर्ली, लेट और ओपन बाइसिमिलरिटी। यह इस तथ्य से प्राप्त हुआ है कि {{pi}}-कैलकुलस एक वैल्यू-पासिंग प्रोसेस कैलकुलस है। | ||
माना कि | माना कि इस भाग के शेष भाग में <math>p</math> और <math>q</math> प्रक्रियाओं को निरूपित करते है और <math>R</math> प्रक्रियाओं पर द्विआधारी संबंधों को निरूपित करें। | ||
=== प्रारंभिक और | === प्रारंभिक और बाद की समानता === | ||
मिलनर, पैरो और वाकर ने {{pi}}- | मिलनर, पैरो और वाकर ने {{pi}}-कैलकुलस प्रारंभिक और बाद की समानता दोनों को अपने मूल पेपर में तैयार किया था।<ref>{{cite journal|last=Milner|first=R.|author2=J. Parrow |author3= D. Walker|title=मोबाइल प्रक्रियाओं की एक गणना|journal=Information and Computation|issue=1|pages=1–40|year=1992|doi=10.1016/0890-5401(92)90008-4|volume=100|url=https://www.pure.ed.ac.uk/ws/files/16426053/A_Calculus_of_Mobile_Processes_I.pdf|hdl=20.500.11820/cdd6d766-14a5-4c3e-8956-a9792bb2c6d3|hdl-access=free}}</ref> द्विआधारी संबंध <math>R</math> प्रक्रियाओं की प्रत्येक जोड़ी के लिए प्रक्रियाओं पर एक प्रारंभिक <math>(p, q) \in R</math> बाईसिमुलेशन है, | ||
* जब | * जब भी <math> | ||
p \,\xrightarrow{a(x)}\,p' | p \,\xrightarrow{a(x)}\,p' | ||
</math> | </math> तब प्रत्येक <math>y</math> नाम के लिए कुछ <math>q'</math> उपस्थित है, ऐसा है कि <math> | ||
q \,\xrightarrow{a(x)}\,q' | q \,\xrightarrow{a(x)}\,q' | ||
</math> और <math>(p'[y/x],q'[y/x]) \in R</math>; | </math> और <math>(p'[y/x],q'[y/x]) \in R</math>; | ||
* किसी भी गैर-इनपुट कार्रवाई | * किसी भी गैर-इनपुट कार्रवाई <math>\alpha</math> के लिए, यदि <math>{ | ||
p \xrightarrow{\overset{}{\alpha}} p' | p \xrightarrow{\overset{}{\alpha}} p' | ||
} </math> तो कुछ | } </math> तो कुछ <math>q'</math> उपस्थित है, ऐसा है कि <math> | ||
q \xrightarrow{\overset{}{\alpha}} q' | q \xrightarrow{\overset{}{\alpha}} q' | ||
</math> और <math>(p',q') \in R</math>; | </math> और <math>(p',q') \in R</math>; | ||
* और सममित आवश्यकताओं के साथ <math>p</math> और <math>q</math> अदला-बदली। | * और सममित आवश्यकताओं के साथ <math>p</math> और <math>q</math> की अदला-बदली। | ||
प्रक्रियाओं <math>p</math> और <math>q</math> प्रारंभिक बाईसिमिलर | प्रक्रियाओं <math>p</math> और <math>q</math> को प्रारंभिक बाईसिमिलर एवं लिखित रूप में <math>p \sim_e q</math> कहा जाता है, यदि जोड़ी <math>(p,q) \in R</math> कुछ आरम्भिक <math>R</math> बाईसिमुलेशन के लिए। | ||
बाद के द्वि-समानता में संक्रमण मिलान संचरित होने वाले नाम से स्वतंत्र होना चाहिए। द्विआधारी संबंध <math>R</math> प्रक्रियाओं की प्रत्येक जोड़ी के लिए ओवर प्रोसेस लेट बाईसिमुलेशन <math>(p, q) \in R</math> है | |||
* जब कभी | * जब कभी <math> | ||
p \xrightarrow{a(x)} p' | p \xrightarrow{a(x)} p' | ||
</math> | </math>होता है इसके पश्चात कुछ <math>q'</math> के लिए यह <math> | ||
q \xrightarrow{a(x)} q' | q \xrightarrow{a(x)} q' | ||
</math> और <math>(p'[y/x],q'[y/x]) \in R</math> प्रत्येक y | </math> और <math>(p'[y/x],q'[y/x]) \in R</math> प्रत्येक नाम y के लिए मानता है; | ||
*किसी भी गैर-इनपुट | *किसी भी गैर-इनपुट क्रिया <math>\alpha</math> के लिए यदि <math> | ||
p \xrightarrow{\overset{}{\alpha}} p' | p \xrightarrow{\overset{}{\alpha}} p' | ||
</math> तात्पर्य है कि कुछ | </math>,तब इसका तात्पर्य है कि कुछ <math>q'</math> उपस्थित है, ऐसा है कि <math> | ||
q \xrightarrow{\overset{}{\alpha}} q' | q \xrightarrow{\overset{}{\alpha}} q' | ||
</math>और <math>(p',q') \in R</math>; | </math>और <math>(p',q') \in R</math>; | ||
* और सममित आवश्यकताओं के साथ <math>p</math> और <math>q</math> अदला-बदली। | * और सममित आवश्यकताओं के साथ <math>p</math> और <math>q</math> की अदला-बदली। | ||
प्रक्रियाओं <math>p</math> और <math>q</math> परवर्ती बाईस्मिलर | प्रक्रियाओं <math>p</math> और <math>q</math> परवर्ती बाईस्मिलर एवं लिखित रूप में <math>p \sim_l q</math> कहे जाते हैं यदि जोड़ी <math>(p,q) \in R</math> कुछ बाद के बाईसिमुलेशन <math>R</math> के लिए <math>\sim_e</math> और <math>\sim_l</math> दोनों समस्या से ग्रस्त हैं कि वे इस अर्थ में सर्वांगसम संबंध नहीं हैं एवं वे सभी प्रक्रिया निर्माणों द्वारा संरक्षित नहीं हैं। प्रक्रियाएं <math>p</math> और <math>q</math> अधिक सटीक रूप से उपस्थित हैं, ऐसा है कि <math>p \sim_e q</math> परन्तु <math>a(x).p \not \sim_e a(x).q</math>. इसमें सम्मिलित अधिकतम सर्वांगसमता संबंधों <math>\sim_e</math> और <math>\sim_l</math> पर विचार करके कोई भी इस समस्या का समाधान कर सकता है इन्हें क्रमशः प्रारंभिक सर्वांगसमता और बाद की सर्वांगसमता के रूप में जाना जाता है। | ||
=== मुक्त द्विसमानता === | === मुक्त द्विसमानता === | ||
भाग्यवश एक तीसरी परिभाषा संभव है जो इस समस्या से सुरक्षित है अर्थात् सांगियोर्गी के कारण मुक्त द्विसमानता।<ref>{{cite journal|last=Sangiorgi|first=D.|title=A theory of bisimulation for the π-calculus|journal=Acta Informatica|volume=33|pages=69–97|year=1996|doi=10.1007/s002360050036|s2cid=18155730 }}</ref> | |||
द्विआधारी संबंध <math>R</math> प्रत्येक जोड़ी तत्वों के लिए ओवर प्रोसेस ओपन बाईसिमुलेशन <math>(p, q) \in R</math> है और प्रत्येक नाम प्रतिस्थापन के लिए <math>\sigma</math> और प्रत्येक क्रिया <math>\alpha</math>, जब कभी भी <math> | |||
p\sigma \xrightarrow{\overset{}{\alpha}} p'</math> तो कुछ | p\sigma \xrightarrow{\overset{}{\alpha}} p'</math> तो कुछ <math>q'</math> उपस्थित है, ऐसा है कि <math> | ||
q\sigma \xrightarrow{\overset{}{\alpha}} q' | q\sigma \xrightarrow{\overset{}{\alpha}} q' | ||
</math> और <math>(p',q') \in R</math>. | </math> और <math>(p',q') \in R</math>. | ||
प्रक्रियाओं <math>p</math> और <math>q</math> | प्रक्रियाओं <math>p</math> और <math>q</math> मुक्त बाईसिमिलर, <math>p \sim_o q</math> लिखित कहे जाते हैं यदि जोड़ी <math>(p,q) \in R</math> कुछ मुक्त बाईसिमुलेशन <math>R</math> के लिए . | ||
==== प्रारंभिक, | ==== प्रारंभिक, बाद के और मुक्त द्विसमानता भिन्न-भिन्न होती है ==== | ||
प्रारंभिक, | प्रारंभिक, बाद के और मुक्त द्विसमानता भिन्न-भिन्न हैं। रोकथाम उचित हैं इसलिए <math>\sim_o \subsetneq \sim_l \subsetneq \sim_e</math>. | ||
कुछ उप-गणनाओं में जैसे कि अतुल्यकालिक | कुछ उप-गणनाओं में जैसे कि अतुल्यकालिक π-कैलकुलस, बाद के, प्रारंभिक और खुली द्विसमानता को मेल खाने के लिए जाना जाता है। जबकि इस सेटिंग में अधिक उपयुक्त धारणा अतुल्यकालिक द्विसमानता की है। | ||
साहित्य में | साहित्य में ओपन बाईसिम्यूलेशन (मुक्त द्विसमानता) शब्द सामान्य रूप से अधिक परिष्कृत धारणा को संदर्भित करता है जहां प्रक्रियाओं और संबंधों को विशिष्ट संबंधों द्वारा अनुक्रमित किया जाता है; विवरण ऊपर उद्धृत सांगियोर्गी के पेपर में हैं। | ||
=== बारबेड तुल्यता === | === बारबेड तुल्यता === | ||
वैकल्पिक रूप से कोई व्यक्ति सिमेंटिक्स को कम करने से सीधे बाईसिम्यूलेशन समकक्ष को परिभाषित कर सकता है। हम लिखते हैं <math>p \Downarrow a</math> यदि प्रक्रिया <math>p</math> | वैकल्पिक रूप से कोई व्यक्ति सिमेंटिक्स को कम करने से सीधे बाईसिम्यूलेशन समकक्ष को परिभाषित कर सकता है। हम लिखते हैं <math>p \Downarrow a</math> यदि प्रक्रिया <math>p</math>, <math>a</math> नाम पर तुरंत इनपुट या आउटपुट की अनुमति देता है एवं | ||
द्विआधारी संबंध <math>R</math> प्रक्रियाओं पर बारबेड बाईसिमुलेशन है यदि यह एक सममित संबंध है जो संतुष्ट करता है कि तत्वों की प्रत्येक जोड़ी के लिए <math>(p, q) \in R</math> हमारे पास वह है | द्विआधारी संबंध <math>R</math> प्रक्रियाओं पर बारबेड बाईसिमुलेशन है यदि यह एक सममित संबंध है जो संतुष्ट करता है कि तत्वों की प्रत्येक जोड़ी के लिए <math>(p, q) \in R</math> हमारे पास वह है | ||
:(1) <math>p \Downarrow a</math> यदि और केवल यदि <math>q \Downarrow a</math> प्रत्येक | :(1) <math>p \Downarrow a</math> यदि और केवल यदि <math>q \Downarrow a</math> प्रत्येक <math>a</math> नाम के लिए | ||
और | और | ||
:(2) प्रत्येक | :(2) प्रत्येक रिडक्शन <math> p \rightarrow p'</math> के लिए <math> q \rightarrow q' </math> रिडक्शन होती है | ||
ऐसा है कि <math>(p',q') \in R</math>. | ऐसा है कि <math>(p',q') \in R</math>. | ||
हम कहते हैं <math>p</math> और <math>q</math> | हम कहते हैं <math>p</math> और <math>q</math> बारबेड बाईस्मिलर हैं यदि बारबेड बाईसिमुलेशन <math>R</math> उपस्थित है जहाँ <math>(p,q) \in R</math>. | ||
संदर्भ को एक {{pi}} के रूप में छेद वाला शब्द [] के साथ परिभाषित करना जहाँ हम कहते हैं कि दो प्रक्रियाएँ P और Q बारबेड सर्वांगसम हैं, <math>P \sim_b Q\,\!</math> लिखी गई हैं यदि प्रत्येक संदर्भ <math>C[] </math> के लिए हमारे पास <math>C[P]</math> और <math>C[Q]</math> बारबेड बाईस्मिलर हैं। यह पता चला है कि बारबेड सर्वांगसमता प्रारंभिक बाईसिमिलरिटी द्वारा प्रेरित सर्वांगसमता के साथ मेल खाती है। | |||
== अनुप्रयोग ==<!-- This section is linked from [[SPI]] --> | == अनुप्रयोग ==<!-- This section is linked from [[SPI]] --> | ||
{{pi}}-कैलकुलस का उपयोग कई | {{pi}}-कैलकुलस का उपयोग कई भिन्न-भिन्न प्रकार की समवर्ती प्रणालियों का वर्णन करने के लिए किया गया है। वास्तव में कुछ नवीनतम अनुप्रयोग पारंपरिक कंप्यूटर विज्ञान के क्षेत्र से बाहर हैं। | ||
सन 1997 में [[मार्टिन अबादी]] और एंड्रयू गॉर्डन ने {{pi}}-कैलकुलस का विस्तार क्रिप्टोग्राफ़िक प्रोटोकॉल के बारे में वर्णन करने और तर्क करने के लिए एक औपचारिक संकेतन के रूप में स्पाइ-कैलकुलस प्रस्तावित किया। स्पाइ-कैलकुलस, {{pi}}-एन्क्रिप्शन और डिक्रिप्शन के लिए आदिम के साथ | सन 1997 में [[मार्टिन अबादी]] और एंड्रयू गॉर्डन ने {{pi}}-कैलकुलस का विस्तार क्रिप्टोग्राफ़िक प्रोटोकॉल के बारे में वर्णन करने और तर्क करने के लिए एक औपचारिक संकेतन के रूप में स्पाइ-कैलकुलस प्रस्तावित किया। स्पाइ-कैलकुलस, {{pi}}-एन्क्रिप्शन और डिक्रिप्शन के लिए आदिम के साथ कैलकुलस का विस्तार होता है। सन 2001 में मार्टिन अबादी और सेड्रिक फोरनेट ने क्रिप्टोग्राफ़िक प्रोटोकॉल के संचालन को लागू करने के लिए {{pi}} कैलकुलस सामान्यीकृत किया। लागू किए गए वेरिएंट के लिए समर्पित कार्य का एक बड़ा भाग अब {{pi}} कैलकुलस है जिसमें कई प्रयोगात्मक सत्यापन उपकरण सम्मिलित हैं। एक उदाहरण उपकरण [[ ProVerif ]] [http://www.proverif.ens.fr/] है जो ब्रूनो ब्लैंचेट के कारण लागू किए गए अनुवाद पर आधारित है। ब्लैंचेट के लॉजिक प्रोग्रामिंग फ्रेमवर्क में {{pi}}-कैलकुलस एक अन्य उदाहरण क्रिप्टिक [http://www.cryptyc.org] है, एंड्रयू गॉर्डन और एलन जेफरी के कारण जो टाइप सिस्टम के आधार के रूप में वू और लैम के पत्राचार अभिकथन की विधि का उपयोग करता है जो क्रिप्टोग्राफ़िक प्रोटोकॉल के प्रमाणीकरण गुणों की जांच कर सकता है। | ||
सन 2002 के आसपास हॉवर्ड स्मिथ और पीटर फ़िंगर की इसमें रुचि हो गई {{pi}}-कैलकुलस मॉडलिंग व्यवसाय प्रक्रियाओं के लिए एक विवरण उपकरण बन जाएगा। जुलाई 2006 तक समुदाय में चर्चा हो रही है कि यह कितना उपयोगी होगा। हाल ही में {{pi}}-कैलकुलस ने [[बिजनेस प्रोसेस मॉडलिंग लैंग्वेज]] (BPML) और माइक्रोसॉफ्ट के XLANG के सैद्धांतिक आधार का गठन किया है।<ref>[http://www.bpmi.org/downloads/BPML-BPEL4WS.pdf "BPML | BPEL4WS: A Convergence Path toward a Standard BPM Stack."] BPMI.org Position Paper. August 15, 2002.</ref> | सन 2002 के आसपास हॉवर्ड स्मिथ और पीटर फ़िंगर की इसमें रुचि हो गई {{pi}}-कैलकुलस मॉडलिंग व्यवसाय प्रक्रियाओं के लिए एक विवरण उपकरण बन जाएगा। जुलाई 2006 तक समुदाय में चर्चा हो रही है कि यह कितना उपयोगी होगा। हाल ही में {{pi}}-कैलकुलस ने [[बिजनेस प्रोसेस मॉडलिंग लैंग्वेज]] (BPML) और माइक्रोसॉफ्ट के XLANG के सैद्धांतिक आधार का गठन किया है।<ref>[http://www.bpmi.org/downloads/BPML-BPEL4WS.pdf "BPML | BPEL4WS: A Convergence Path toward a Standard BPM Stack."] BPMI.org Position Paper. August 15, 2002.</ref> | ||
Line 324: | Line 317: | ||
निम्नलिखित प्रोग्रामिंग भाषाएँ {{pi}}-कैलकुलस या इसका एक प्रकार कार्यान्वयन करती हैं: | निम्नलिखित प्रोग्रामिंग भाषाएँ {{pi}}-कैलकुलस या इसका एक प्रकार कार्यान्वयन करती हैं: | ||
* बिजनेस प्रोसेस मॉडलिंग | * बिजनेस प्रोसेस मॉडलिंग भाषा (बीपीएमएल) | ||
* ओकम-π | * ओकम-π | ||
* [[चित्र प्रोग्रामिंग भाषा]] | * [[चित्र प्रोग्रामिंग भाषा]] | ||
Line 339: | Line 332: | ||
* {{cite book|last1=Sangiorgi|first1=Davide|author-link1=Davide Sangiorgi|last2=Walker|first2=David|author-link2=David Walker (computer scientist)|title=The π-calculus: A Theory of Mobile Processes|year=2001|publisher=Cambridge University Press|location=Cambridge, UK|isbn=0-521-78177-9}} | * {{cite book|last1=Sangiorgi|first1=Davide|author-link1=Davide Sangiorgi|last2=Walker|first2=David|author-link2=David Walker (computer scientist)|title=The π-calculus: A Theory of Mobile Processes|year=2001|publisher=Cambridge University Press|location=Cambridge, UK|isbn=0-521-78177-9}} | ||
[[Category:Articles with hatnote templates targeting a nonexistent page|Pi Calculus]] | |||
[[Category:Collapse templates|Pi Calculus]] | |||
[[Category:Created On 15/05/2023|Pi Calculus]] | |||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page|Pi Calculus]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists|Pi Calculus]] | |||
[[Category: | [[Category:Pages with ignored display titles]] | ||
[[Category: | [[Category:Pages with script errors|Pi Calculus]] | ||
[[Category:Short description with empty Wikidata description|Pi Calculus]] | |||
[[Category:Sidebars with styles needing conversion|Pi Calculus]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] |
Latest revision as of 14:02, 14 June 2023
सैद्धांतिक कंप्यूटर विज्ञान में π-कैलकुलस (या पाई-कैलकुलस (कलन)) प्रक्रिया कैलकुलस है। वह π-कैलकुलस चैनल के नामों को चैनलों के साथ स्वयं संप्रेषित करने की अनुमति देता है और इस तरह यह समवर्ती संगणनाओं का वर्णन करने में सक्षम होता है जिनके नेटवर्क कॉन्फ़िगरेशन गणना के समय परिवर्तित हो सकते हैं। π-कैलकुलस में कुछ नियम हैं और यह छोटी किन्तु अभिव्यंजक भाषा है (देखें § Syntax)। फंक्शनल प्रोग्रामों को π-कैलकुलस में एन्कोड किया जा सकता है और यह एन्कोडिंग गणना की संवादात्मक प्रकृति पर महत्त्व देता है जो गेम सेमेन्टिक्स के साथ संपर्क स्थापित करता है। π-कैलकुलस के विस्तार जैसे कि स्पि कैलकुलस और एप्लाइड π, क्रिप्टोग्राफिक प्रोटोकॉल के विषय में तर्क करने में सफल रहे हैं। समवर्ती प्रणालियों का वर्णन करने में मूल उपयोग के अतिरिक्त π-कैलकुलस का उपयोग व्यावसायिक प्रक्रियाओं[1] और आणविक जीव विज्ञान[2] के बारे में तर्क करने के लिए भी किया जाता है।
अनौपचारिक परिभाषा
π-कैलकुलस प्रक्रिया गणना के समूह एवं समवर्ती गणना के गुणों का वर्णन और विश्लेषण करने के लिए गणितीय औपचारिकताओं से संबंधित है। वास्तव में π-कैलकुलस, λ-कैलकुलस की तरह इतना न्यूनतम है कि इसमें संख्या, बूलियन, डेटा संरचना, चर, फ़ंक्शन या यहां तक कि सामान्य नियंत्रण प्रवाह विवरण जैसे मूल सम्मिलित नहीं हैं (जैसे, if-then-else
, while
).
प्रक्रिया निर्माण
π-कैलकुलस का केंद्र इसके नाम की धारणा है। कैलकुलस की सरलता दोहरी भूमिका में निहित है जिसे नाम संपर्क माध्यमों और चरों के रूप में निभाते हैं।
कैलकुलस में उपलब्ध प्रक्रिया निर्माण निम्नलिखित हैं[3] (निम्न अनुभाग में सटीक परिभाषा दी गई है):
- समवर्ती, लिखित , जहाँ और दो प्रक्रियाएं या सूत्र समवर्ती रूप से निष्पादित होते हैं।
- संचार, जहाँ
- इनपुट उपसर्ग एक संदेश की प्रतीक्षा करने की प्रक्रिया है जिसे के रूप में आगे बढ़ने से पहले नाम के संचार चैनल पर भेजा गया था जोकि नाम x के लिए प्राप्त नाम को बाध्य करता है। सामान्य रूप से यह मॉडल या तो नेटवर्क से संचार की अपेक्षा करने वाली प्रक्रिया या लेबल
c
है जोgoto c
संचालन द्वारा केवल एक बार प्रयोग करने योग्य होती है। - आउटपुट उपसर्ग वर्णन करता है कि के रूप में आगे बढ़ने से पहले नाम चैनल पर उत्सर्जित किया जाता है। सामान्य रूप से यह मॉडल या तो नेटवर्क पर एक संदेश भेज रहा है या
goto c
संचालन।
- इनपुट उपसर्ग एक संदेश की प्रतीक्षा करने की प्रक्रिया है जिसे के रूप में आगे बढ़ने से पहले नाम के संचार चैनल पर भेजा गया था जोकि नाम x के लिए प्राप्त नाम को बाध्य करता है। सामान्य रूप से यह मॉडल या तो नेटवर्क से संचार की अपेक्षा करने वाली प्रक्रिया या लेबल
- प्रतिकृति, लिखित , जिसे एक ऐसी प्रक्रिया के रूप में देखा जा सकता है जो सदैव की एक नई प्रतिलिपि बना सकती है। सामान्य रूप से यह मॉडल या तो एक नेटवर्क सेवा या एक लेबल
c
है जो किसी भी संख्या मेंgoto c
संचालन की प्रतीक्षा कर रहा है। - नए नाम का निर्माण हुआ जिसे नई स्थिरांक आवंटित करने वाली प्रक्रिया x के रूप में देखा जा सकता है के साथ π-calculus के स्थिरांक केवल उनके नाम से परिभाषित होते हैं और सदैव संचार चैनल होते हैं। किसी प्रक्रिया में नए नाम के सृजन को प्रतिबंध भी कहा जाता है।
- शून्य प्रक्रिया, लिखित रूप में एक ऐसी प्रक्रिया है जिसका निष्पादन पूरा हो गया है और रुक गया है।
जबकि π-कैलकुलस का अतिसूक्ष्मवाद हमें सामान्य अर्थों में प्रोग्राम लिखने से रोकता है जिससे कैलकुलस का विस्तार करना सरल होता है। विशेष रूप से दोनों नियंत्रण संरचनाओं जैसे पुनरावर्तन, लूप और अनुक्रमिक रचना और डेटाटाइप जैसे प्रथम-क्रम के कार्यों, सत्य मूल्यों, सूचियों और पूर्णांकों को परिभाषित करना सरल है। इसके अतिरिक्त π-कैलकुलस के एक्सटेंशन प्रस्तावित किए गए हैं जो वितरण या सार्वजनिक-कुंजी क्रिप्टोग्राफी को ध्यान में रखते हैं। अबादी और फोरनेट [1] के कारण लागू π-कैलकुलस ने मनमाने ढंग से डेटाटाइप्स के साथ π-कैलकुलस का विस्तार करके इन विभिन्न एक्सटेंशनों को एक औपचारिक आधार पर रखा।
एक छोटा सा उदाहरण
निम्नलिखित प्रक्रिया का एक छोटा उदाहरण है जिसमें तीन समानांतर घटक होते हैं। x नाम का चैनल केवल पहले दो घटकों द्वारा जाना जाता है।
पहले दो घटक चैनल x पर संचार करने में सक्षम हैं और y नाम के लिए z बाध्य हो जाता है इसलिए प्रक्रिया में अगला कदम है।
ध्यान रहे कि शेष y प्रभावित नहीं होता है क्योंकि इसे आंतरिक सीमा में परिभाषित किया गया है। दूसरा और तीसरा समानांतर घटक अब चैनल नाम पर संवाद कर सकते हैं जहाँ z और v नाम के लिए x बाध्य हो जाता है। प्रक्रिया का अगला चरण अब है
ध्यान दें कि स्थानीय नाम के पश्चात x का उत्पादन किया गया है एवं x का क्षेत्र तीसरे घटक को भी कवर करने के लिए बढ़ाया गया है। अंत में x चैनल x नाम भेजने के लिए उपयोग किया जा सकता है जबकि उसके बाद सभी समवर्ती क्रियान्वित प्रक्रियाएँ रुक गई हैं
औपचारिक परिभाषा
शब्दावली
माना कि Χ वस्तुओं का एक सेट है जिसे नाम कहा जाता है। π-कैलकुलस के लिए सार वाक्य रचना निम्नलिखित BNF व्याकरण से बनाया गया है (जहाँ x और y, Χ से कोई नाम हैं):[4]
नीचे दिए गए ठोस रचनाक्रम में उपसर्ग समानांतर संरचना (|) की तुलना में अधिक कसकर बांधते हैं जिन्हें कोष्ठकों को अलग करने के लिए उपयोग किया जाता है।
नाम, प्रतिबंध और इनपुट उपसर्ग निर्माणों से बंधे हैं। औपचारिक रूप से एक प्रक्रिया के मुक्त नामों का सेट π-कैलकुलस को नीचे दी गई तालिका द्वारा आगमनात्मक रूप से परिभाषित किया गया है। किसी प्रक्रिया के बंधे नामों के सेट को उस प्रक्रिया के नामों के रूप में परिभाषित किया जाता है जो मुक्त नामों के सेट में नहीं होते हैं।
Construct | Free names |
---|---|
None | |
a; x; P के सभी मुक्त नाम | |
a; x को छोड़कर P के सभी मुक्त नाम | |
P और Q के सभी मुक्त नाम | |
x को छोड़कर P के सभी मुक्त नाम | |
P के सभी मुक्त नाम |
संरचनात्मक सर्वांगसमता
न्यूनीकरण शब्दार्थ और लेबल संक्रमण शब्दार्थ दोनों का केंद्र संरचनात्मक सर्वांगसमता की धारणा है। दो प्रक्रियाएं संरचनात्मक रूप से सर्वांगसम होती हैं यदि वे संरचना के समान हों। विशेष रूप से समानांतर रचना विनिमेय और साहचर्य है।
अधिक सटीक रूप से संरचनात्मक अनुरूपता को कम से कम समानता संबंध के रूप में परिभाषित किया जाता है जो प्रक्रिया के निर्माण और संतोषजनक द्वारा संरक्षित होता है:
अल्फा-रूपांतरण:
- यदि में एक या एक से अधिक बाध्य नामों का नाम बदलकर को से प्राप्त किया जा सकता है।
समानांतर रचना के लिए सिद्धांत:
प्रतिबंध के लिए सिद्धांत:
प्रतिकृति के लिए सिद्धांत:
सिद्धांत संबंधित प्रतिबंध और समानांतर:
- यदि x , का मुक्त नाम नहीं है।
इस अंतिम सिद्धांत को कार्यक्षेत्र विस्तार सिद्धांत के रूप में जाना जाता है। यह सिद्धांत केंद्रीय है क्योंकि यह वर्णन करता है कि कैसे एक बाध्य नाम x को आउटपुट क्रिया द्वारा बाहर निकाला जा सकता है जिससे x का क्षेत्र बढ़ाया जा सकता है। ऐसी स्थितियों में जहां x , का मुक्त नाम है एवं इसके विस्तार को आगे बढ़ने की अनुमति देने के लिए अल्फा-रूपांतरण का उपयोग किया जा सकता है।
रिडक्शन सेमेंटिक्स
यदि एक संगणना चरण प्रदर्शित करता है जिसके पश्चात यह अब है तब हम लिखते हैं
यह रिडक्शन संबंध कटौती नियमों के सेट के अंतर्गत कम से कम बंद संबंध के रूप में परिभाषित किया गया है।
चैनलों के माध्यम से संवाद करने के लिए प्रक्रियाओं की क्षमता को पकड़ने वाला मुख्य रिडक्शन नियम निम्नलिखित है:
- जहाँ प्रक्रिया को दर्शाता है जिसमें मुक्त नाम है एवं की मुक्त घटनाओं के लिए प्रतिस्थापित किया गया है। यदि मुक्त घटना किसी स्थान पर होती है तब मुक्त नहीं होगा एवं अल्फा-रूपांतरण की आवश्यकता हो सकती है।
तीन अतिरिक्त नियम हैं:
- यदि तब भी .
- यह नियम कहता है कि समानांतर रचना गणना को बाधित नहीं करती है।
- यदि , तब भी .
- यह नियम सुनिश्चित करता है कि गणना एक प्रतिबंध के अंतर्गत आगे बढ़ सकती है।
- यदि और और , तब भी .
बाद के नियम में कहा गया है कि संरचनात्मक रूप से संगत प्रक्रियाओं में समान रिडक्शन होता है।
उदाहरण पर पुनः विचार
प्रक्रिया पर पुनः विचार करें
रिडक्शन के शब्दार्थ की परिभाषा को लागू करते हुए, हम रिडक्शन प्राप्त करते हैं
ध्यान दें कि कैसे रिडक्शन प्रतिस्थापन स्वयंसिद्ध को लागू करते हुए की मुक्त घटनाएँ अब के रूप में लेबल किए गए हैं
इसके पश्चात हम रिडक्शन प्राप्त करते हैं
ध्यान दें कि स्थानीय नाम के बाद से x का उत्पादन किया गया है एवं x का क्षेत्र तीसरे घटक को भी कवर करने के लिए बढ़ाया गया है। इसे स्कोप एक्सटेंशन स्वयंसिद्ध का उपयोग करके कैप्चर किया गया था।
इसके पश्चात रिडक्शन प्रतिस्थापन स्वयंसिद्ध का उपयोग करके हम प्राप्त करते हैं।
अंत में समांतर संरचना और प्रतिबंध के लिए सिद्धांतों का उपयोग करके हम प्राप्त करते हैं।
लेबल किए गए सिमेंटिक्स
वैकल्पिक रूप से कोई π-कैलकुलस को लेबल ट्रांज़िशन सिमेंटिक्स दे सकता है (संचार प्रणालियों की गणना के कैलकुलस के साथ किया गया है)।
इस शब्दार्थ में, क्रिया के बाद एक स्थिति से किसी अन्य अवस्था में सिमेंटिक्स को इस रूप में नोट किया जाता है:
जहां क्षेत्र और प्रक्रियाओं का प्रतिनिधित्व करते हैं और या तो इनपुट क्रिया, आउटपुट क्रिया या मौन क्रिया τ है।[5]
लेबल किए गए शब्दार्थ के बारे में मानक परिणाम यह है कि यह संरचनात्मक अनुरूपता तक रिडक्शन शब्दार्थ से सहमत है इस अर्थ में कि
यदि और केवल यदि [6]
विस्तार और संस्करण
ऊपर दी गयी शब्दावली न्यूनतम है। जबकि शब्दावली को विभिन्न तरीकों से संशोधित किया जा सकता है।
गैर-नियतात्मक पसंद ऑपरेटर शब्दावली में जोड़ा जा सकता है।
नाम समानता के लिए परीक्षण शब्दावली में जोड़ा जा सकता है। यह मैच ऑपरेटर आगे बढ़ सकता है यदि और केवल यदि x और एक ही नाम हैं।
इसी प्रकार कोई 'नाम असमानता' के लिए बेमेल संकारक जोड़ सकता है। प्रैक्टिकल प्रोग्राम जो नाम (यूआरएल या पॉइंटर्स) पास कर सकते हैं, अधिकतर ऐसी कार्यक्षमता का उपयोग करते हैं: कैलकुलस के अंदर ऐसी कार्यक्षमता को सीधे मॉडलिंग करने के लिए यह और संबंधित एक्सटेंशन अधिकतर उपयोगी होते हैं।
अतुल्यकालिक π-कैलकुलस[7][8] बिना किसी प्रत्यय के केवल आउटपुट की अनुमति देता है अर्थात फॉर्म के आउटपुट परमाणु एक छोटे कैलकुलस की उपज हैं जबकि मूल कैलकुलस में किसी भी प्रक्रिया को प्राप्त करने की प्रक्रिया से स्पष्ट पावती का अनुकरण करने के लिए एक अतिरिक्त मार्ग का उपयोग करके छोटे अतुल्यकालिक π-कैलकुलस द्वारा दर्शाया जा सकता है। चूंकि निरंतरता-मुक्त आउटपुट संदेश-इन-ट्रांजिट को मॉडल कर सकता है एवं यह भाग दिखाता है कि मूल π-कैलकुलस जो सहज रूप से सिंक्रोनस संचार पर आधारित है इसके शब्दावली के अंदर अभिव्यंजक अतुल्यकालिक संचार मॉडल है। जबकि ऊपर परिभाषित गैर-नियतात्मक चयनित ऑपरेटर को इस प्रकार से व्यक्त नहीं किया जा सकता है क्योंकि अनियंत्रित विकल्प को संरक्षित में परिवर्तित कर दिया जाएगा एवं इस तथ्य का उपयोग यह प्रदर्शित करने के लिए किया गया है कि एसिंक्रोनस कैलकुलस सिंक्रोनस (विकल्प ऑपरेटर के साथ) की तुलना में कठिन रूप से कम अभिव्यंजक है।[9]
बहुविकल्पी π-कैलकुलस एक ही क्रिया (पॉलीडिक इनपुट) में एक से अधिक नामों को संप्रेषित करने की अनुमति देता है जैसे (पॉलीडिक आउटपुट) और । यह पॉलीऐडिक विस्तार जो विशेष रूप से नाम पासिंग प्रक्रियाओं के प्रकारों का अध्ययन करते समय उपयोगी होता है जोकि निजी चैनल के नाम को पास करके मोनैडिक कैलकुस में एन्कोड किया जा सकता है जिसके माध्यम से कई तर्क अनुक्रम में पारित किए जाते हैं। एन्कोडिंग को खंडों द्वारा पुनरावर्ती रूप से परिभाषित किया गया है।
को के रूप में एन्कोड किया गया है।
को के रूप में एन्कोड किया गया है।
अन्य सभी प्रक्रिया निर्माणों को एन्कोडिंग द्वारा अपरिवर्तित छोड़ दिया जाता है।
ऊपरोक्त में , निरंतरता में सभी उपसर्गों के एन्कोडिंग को दर्शाता है उसी प्रकार से।
प्रतिकृति की पूरी शक्ति आवश्यकता नहीं है। प्रायः कोई केवल प्रतिरूपित इनपुट पर विचार करता है जिसकी संरचनात्मक सर्वांगसमता सिद्धांत है।
प्रतिकृति इनपुट प्रक्रिया जैसे सर्वर के रूप में समझा जा सकता है, चैनल x पर प्रतीक्षा कर रहा है एवं ग्राहकों द्वारा आह्वान किया जाता है। एक सर्वर का आह्वान प्रक्रिया की नई प्रति उत्पन्न करता है जहां बाद के आह्वान के समय क्लाइंट द्वारा सर्वर को दिया गया नाम a है।
उच्च क्रम π-कैलकुलस को परिभाषित किया जा सकता है जहां न केवल नाम बल्कि प्रक्रियाओं को चैनलों के माध्यम से भेजा जाता है। उच्च क्रम की स्थिती के लिए महत्वपूर्ण ह्रास नियम है
यहाँ प्रक्रिया चर को दर्शाता है जिसे एक प्रक्रिया अवधि द्वारा त्वरित किया जा सकता है। सांगियोर्गी ने स्थापित किया कि प्रक्रियाओं को पास करने की क्षमता π-कैलकुलस की अभिव्यंजकता में वृद्धि नहीं करती है: प्रक्रिया P को पारित करने को केवल नाम पास करके अनुकरण किया जा सकता है जो इसके स्थान पर P को इंगित करता है।
गुण
ट्यूरिंग पूर्णता
π-कैलकुलस संगणना का एक सार्वभौमिक मॉडल (ट्यूरिंग पूर्ण) है। इसे पहली बार रॉबिन मिलनर ने अपने पेपर "फंक्शन्स ऐज़ प्रोसेसेस" में देखा था[10] जिसमें उन्होंने π-कैलकुलस में वह लैम्ब्डा-कैलकुलस के दो एनकोडिंग प्रस्तुत किए। एक एन्कोडिंग उत्सुक (कॉल-बाय-वैल्यू) मूल्यांकन रणनीति का अनुकरण करती है तथा अन्य एन्कोडिंग सामान्य-ऑर्डर (कॉल-बाय-नेम) रणनीति का अनुकरण करती है। इन दोनों में महत्वपूर्ण अंतर्दृष्टि पर्यावरण बाइंडिंग का मॉडलिंग है - उदाहरण के लिए x अवधि के लिए बाध्य है जबकि - प्रतिकृति एजेंटों के रूप में जो शब्द के लिए संपर्क वापस भेजकर अपनी बाइंडिंग के अनुरोधों का उत्तर देते हैं।
π-कैलकुलस की विशेषताएं जो इन एनकोडिंग को संभव बनाते हैं वे नाम-पासिंग और प्रतिकृति (या, समतुल्य, पुनरावर्ती रूप से परिभाषित एजेंट) हैं। प्रतिकृति/पुनरावृत्ति के अभाव में π-कैलकुलस ट्यूरिंग-पूर्ण होना बंद कर देता है। यह इस तथ्य से देखा जा सकता है कि पुनरावर्तन-मुक्त कैलकुलस और यहां तक कि परिमित-नियंत्रण π-कैलकुलस के लिए बाईसिमुलेशन तुल्यता निर्णायक हो जाती है जहां किसी भी प्रक्रिया में समानांतर घटकों की संख्या एक स्थिरांक से बंधी होती है।[11]
π-कैलकुलस में बाईसिमुलेशन
प्रक्रिया गणना के लिए π-कैलकुलस बाईसिमुलेशन तुल्यता की परिभाषा की अनुमति देता है। π-कैलकुलस में बाईसिमुलेशन समतुल्यता की परिभाषा (जिसे बाईसिमिलैरिटी के रूप में भी जाना जाता है) या तो रिडक्शन शब्दार्थ या लेबल संक्रमण शब्दार्थ पर आधारित हो सकती है।
π-कैलकुलस में लेबल किए गए बाईसिमुलेशन समकक्ष को परिभाषित करने के (कम से कम) तीन अलग-अलग उपाय हैं: अर्ली, लेट और ओपन बाइसिमिलरिटी। यह इस तथ्य से प्राप्त हुआ है कि π-कैलकुलस एक वैल्यू-पासिंग प्रोसेस कैलकुलस है।
माना कि इस भाग के शेष भाग में और प्रक्रियाओं को निरूपित करते है और प्रक्रियाओं पर द्विआधारी संबंधों को निरूपित करें।
प्रारंभिक और बाद की समानता
मिलनर, पैरो और वाकर ने π-कैलकुलस प्रारंभिक और बाद की समानता दोनों को अपने मूल पेपर में तैयार किया था।[12] द्विआधारी संबंध प्रक्रियाओं की प्रत्येक जोड़ी के लिए प्रक्रियाओं पर एक प्रारंभिक बाईसिमुलेशन है,
- जब भी तब प्रत्येक नाम के लिए कुछ उपस्थित है, ऐसा है कि और ;
- किसी भी गैर-इनपुट कार्रवाई के लिए, यदि तो कुछ उपस्थित है, ऐसा है कि और ;
- और सममित आवश्यकताओं के साथ और की अदला-बदली।
प्रक्रियाओं और को प्रारंभिक बाईसिमिलर एवं लिखित रूप में कहा जाता है, यदि जोड़ी कुछ आरम्भिक बाईसिमुलेशन के लिए।
बाद के द्वि-समानता में संक्रमण मिलान संचरित होने वाले नाम से स्वतंत्र होना चाहिए। द्विआधारी संबंध प्रक्रियाओं की प्रत्येक जोड़ी के लिए ओवर प्रोसेस लेट बाईसिमुलेशन है
- जब कभी होता है इसके पश्चात कुछ के लिए यह और प्रत्येक नाम y के लिए मानता है;
- किसी भी गैर-इनपुट क्रिया के लिए यदि ,तब इसका तात्पर्य है कि कुछ उपस्थित है, ऐसा है कि और ;
- और सममित आवश्यकताओं के साथ और की अदला-बदली।
प्रक्रियाओं और परवर्ती बाईस्मिलर एवं लिखित रूप में कहे जाते हैं यदि जोड़ी कुछ बाद के बाईसिमुलेशन के लिए और दोनों समस्या से ग्रस्त हैं कि वे इस अर्थ में सर्वांगसम संबंध नहीं हैं एवं वे सभी प्रक्रिया निर्माणों द्वारा संरक्षित नहीं हैं। प्रक्रियाएं और अधिक सटीक रूप से उपस्थित हैं, ऐसा है कि परन्तु . इसमें सम्मिलित अधिकतम सर्वांगसमता संबंधों और पर विचार करके कोई भी इस समस्या का समाधान कर सकता है इन्हें क्रमशः प्रारंभिक सर्वांगसमता और बाद की सर्वांगसमता के रूप में जाना जाता है।
मुक्त द्विसमानता
भाग्यवश एक तीसरी परिभाषा संभव है जो इस समस्या से सुरक्षित है अर्थात् सांगियोर्गी के कारण मुक्त द्विसमानता।[13]
द्विआधारी संबंध प्रत्येक जोड़ी तत्वों के लिए ओवर प्रोसेस ओपन बाईसिमुलेशन है और प्रत्येक नाम प्रतिस्थापन के लिए और प्रत्येक क्रिया , जब कभी भी तो कुछ उपस्थित है, ऐसा है कि और .
प्रक्रियाओं और मुक्त बाईसिमिलर, लिखित कहे जाते हैं यदि जोड़ी कुछ मुक्त बाईसिमुलेशन के लिए .
प्रारंभिक, बाद के और मुक्त द्विसमानता भिन्न-भिन्न होती है
प्रारंभिक, बाद के और मुक्त द्विसमानता भिन्न-भिन्न हैं। रोकथाम उचित हैं इसलिए .
कुछ उप-गणनाओं में जैसे कि अतुल्यकालिक π-कैलकुलस, बाद के, प्रारंभिक और खुली द्विसमानता को मेल खाने के लिए जाना जाता है। जबकि इस सेटिंग में अधिक उपयुक्त धारणा अतुल्यकालिक द्विसमानता की है।
साहित्य में ओपन बाईसिम्यूलेशन (मुक्त द्विसमानता) शब्द सामान्य रूप से अधिक परिष्कृत धारणा को संदर्भित करता है जहां प्रक्रियाओं और संबंधों को विशिष्ट संबंधों द्वारा अनुक्रमित किया जाता है; विवरण ऊपर उद्धृत सांगियोर्गी के पेपर में हैं।
बारबेड तुल्यता
वैकल्पिक रूप से कोई व्यक्ति सिमेंटिक्स को कम करने से सीधे बाईसिम्यूलेशन समकक्ष को परिभाषित कर सकता है। हम लिखते हैं यदि प्रक्रिया , नाम पर तुरंत इनपुट या आउटपुट की अनुमति देता है एवं
द्विआधारी संबंध प्रक्रियाओं पर बारबेड बाईसिमुलेशन है यदि यह एक सममित संबंध है जो संतुष्ट करता है कि तत्वों की प्रत्येक जोड़ी के लिए हमारे पास वह है
- (1) यदि और केवल यदि प्रत्येक नाम के लिए
और
- (2) प्रत्येक रिडक्शन के लिए रिडक्शन होती है
ऐसा है कि .
हम कहते हैं और बारबेड बाईस्मिलर हैं यदि बारबेड बाईसिमुलेशन उपस्थित है जहाँ .
संदर्भ को एक π के रूप में छेद वाला शब्द [] के साथ परिभाषित करना जहाँ हम कहते हैं कि दो प्रक्रियाएँ P और Q बारबेड सर्वांगसम हैं, लिखी गई हैं यदि प्रत्येक संदर्भ के लिए हमारे पास और बारबेड बाईस्मिलर हैं। यह पता चला है कि बारबेड सर्वांगसमता प्रारंभिक बाईसिमिलरिटी द्वारा प्रेरित सर्वांगसमता के साथ मेल खाती है।
अनुप्रयोग
π-कैलकुलस का उपयोग कई भिन्न-भिन्न प्रकार की समवर्ती प्रणालियों का वर्णन करने के लिए किया गया है। वास्तव में कुछ नवीनतम अनुप्रयोग पारंपरिक कंप्यूटर विज्ञान के क्षेत्र से बाहर हैं।
सन 1997 में मार्टिन अबादी और एंड्रयू गॉर्डन ने π-कैलकुलस का विस्तार क्रिप्टोग्राफ़िक प्रोटोकॉल के बारे में वर्णन करने और तर्क करने के लिए एक औपचारिक संकेतन के रूप में स्पाइ-कैलकुलस प्रस्तावित किया। स्पाइ-कैलकुलस, π-एन्क्रिप्शन और डिक्रिप्शन के लिए आदिम के साथ कैलकुलस का विस्तार होता है। सन 2001 में मार्टिन अबादी और सेड्रिक फोरनेट ने क्रिप्टोग्राफ़िक प्रोटोकॉल के संचालन को लागू करने के लिए π कैलकुलस सामान्यीकृत किया। लागू किए गए वेरिएंट के लिए समर्पित कार्य का एक बड़ा भाग अब π कैलकुलस है जिसमें कई प्रयोगात्मक सत्यापन उपकरण सम्मिलित हैं। एक उदाहरण उपकरण ProVerif [2] है जो ब्रूनो ब्लैंचेट के कारण लागू किए गए अनुवाद पर आधारित है। ब्लैंचेट के लॉजिक प्रोग्रामिंग फ्रेमवर्क में π-कैलकुलस एक अन्य उदाहरण क्रिप्टिक [3] है, एंड्रयू गॉर्डन और एलन जेफरी के कारण जो टाइप सिस्टम के आधार के रूप में वू और लैम के पत्राचार अभिकथन की विधि का उपयोग करता है जो क्रिप्टोग्राफ़िक प्रोटोकॉल के प्रमाणीकरण गुणों की जांच कर सकता है।
सन 2002 के आसपास हॉवर्ड स्मिथ और पीटर फ़िंगर की इसमें रुचि हो गई π-कैलकुलस मॉडलिंग व्यवसाय प्रक्रियाओं के लिए एक विवरण उपकरण बन जाएगा। जुलाई 2006 तक समुदाय में चर्चा हो रही है कि यह कितना उपयोगी होगा। हाल ही में π-कैलकुलस ने बिजनेस प्रोसेस मॉडलिंग लैंग्वेज (BPML) और माइक्रोसॉफ्ट के XLANG के सैद्धांतिक आधार का गठन किया है।[14]
π-कैलकुलस ने आणविक जीव विज्ञान में भी रुचि को आकर्षित किया है। सन 1999 में अवीव रेगेव और एहुद शापिरो ने दिखाया कि एक सेलुलर सिग्नलिंग मार्ग (तथाकथित रिसेप्टर टाइरोसिन किनसे / एमएपीके कैस्केड) और विशेष रूप से आणविक "लेगो" का वर्णन कर सकता है जो π-कैलकुलस के विस्तार में संचार के इन कार्यों को लागू करता है।[2] इस मौलिक पत्र के पश्चात अन्य लेखकों ने न्यूनतम सेल के पूरे चयापचय नेटवर्क का वर्णन किया।[15] सन 2009 में एंथनी नैश और सारा कलवाला ने सिग्नल ट्रांसडक्शन को मॉडल करने के लिए एक π-कैलकुलस फ्रेमवर्क का प्रस्ताव दिया जो डिक्टियोस्टेलियम डिस्कोइडम एग्रीगेशन को निर्देशित करता है।[16]
इतिहास
कैलकुलस मूल रूप से सन 1992 में रॉबिन मिलनर जोआचिम पैरो और डेविड वॉकर द्वारा विकसित किया गया था जो उफ्फे एंगबर्ग और मोगेंस नीलसन के विचारों पर आधारित था।[17] इसे प्रोसेस कैलकुलस सीसीएस (संचार प्रणालियों की गणना) पर मिलनर के काम की निरंतरता के रूप में देखा जा सकता है। अपने ट्यूरिंग व्याख्यान में मिल्नर के विकास का वर्णन π-कैलकुलस अभिनेताओं में मूल्यों और प्रक्रियाओं की एकरूपता को पकड़ने के प्रयास के रूप में करता है।[18]
कार्यान्वयन
निम्नलिखित प्रोग्रामिंग भाषाएँ π-कैलकुलस या इसका एक प्रकार कार्यान्वयन करती हैं:
- बिजनेस प्रोसेस मॉडलिंग भाषा (बीपीएमएल)
- ओकम-π
- चित्र प्रोग्रामिंग भाषा
- जोकैमल (जोड़-पथरी पर आधारित)
- रोलैंग
टिप्पणियाँ
- ↑ OMG Specification (2011). "Business Process Model and Notation (BPMN) Version 2.0", Object Management Group. p.21
- ↑ 2.0 2.1 Regev, Aviv; William Silverman; Ehud Y. Shapiro (2001). "पीआई-कैलकुलस प्रक्रिया बीजगणित का उपयोग करके जैव रासायनिक प्रक्रियाओं का प्रतिनिधित्व और अनुकरण". Pacific Symposium on Biocomputing: 459–470. doi:10.1142/9789814447362_0045. ISBN 978-981-02-4515-3. PMID 11262964.
- ↑ Wing, Jeannette M. (27 December 2002). "FAQ on π-Calculus" (PDF).
- ↑ A Calculus of Mobile Processes part 1 page 10, by R. Milner, J. Parrow and D. Walker published in Information and Computation 100(1) pp.1-40, Sept 1992
- ↑ Robin Milner, Communicating and Mobile Systems: The Pi Calculus, Cambridge University Press, ISBN 0521643201. 1999
- ↑ Sangiorgi, D., & Walker, D. (2003). p51, The Pi-Calculus. Cambridge University Press.
- ↑ Boudol, G. (1992). Asynchrony and the π-calculus. Technical Report 1702, INRIA, Sophia-Antipolis.
- ↑ Honda, K.; Tokoro, M. (1991). An Object Calculus for Asynchronous Communication. ECOOP 91. Springer Verlag.
- ↑ Palamidessi, Catuscia (1997). "सिंक्रोनस और एसिंक्रोनस पाई-कैलकुलस की अभिव्यंजक शक्ति की तुलना करना". Proceedings of the 24th ACM Symposium on Principles of Programming Languages: 256–265. arXiv:cs/9809008. Bibcode:1998cs........9008P.
- ↑ Milner, Robin (1992). "प्रक्रियाओं के रूप में कार्य करता है" (PDF). Mathematical Structures in Computer Science. 2 (2): 119–141. doi:10.1017/s0960129500001407. hdl:20.500.11820/159b09c0-1147-4f32-baf0-23bed198f12a. S2CID 36446818.
- ↑ Dam, Mads (1997). "पाई-कैलकुलस के लिए प्रक्रिया तुल्यता की निर्णायकता पर". Theoretical Computer Science. 183 (2): 215–228. doi:10.1016/S0304-3975(96)00325-8.
- ↑ Milner, R.; J. Parrow; D. Walker (1992). "मोबाइल प्रक्रियाओं की एक गणना" (PDF). Information and Computation. 100 (1): 1–40. doi:10.1016/0890-5401(92)90008-4. hdl:20.500.11820/cdd6d766-14a5-4c3e-8956-a9792bb2c6d3.
- ↑ Sangiorgi, D. (1996). "A theory of bisimulation for the π-calculus". Acta Informatica. 33: 69–97. doi:10.1007/s002360050036. S2CID 18155730.
- ↑ "BPML | BPEL4WS: A Convergence Path toward a Standard BPM Stack." BPMI.org Position Paper. August 15, 2002.
- ↑ Chiarugi, Davide; Pierpaolo Degano; Roberto Marangoni (2007). "जीनोम की कार्यात्मक स्क्रीनिंग के लिए एक कम्प्यूटेशनल दृष्टिकोण". PLOS Computational Biology. 3 (9): 1801–1806. Bibcode:2007PLSCB...3..174C. doi:10.1371/journal.pcbi.0030174. PMC 1994977. PMID 17907794.
- ↑ Nash, A.; Kalvala, S. (2009). "A Framework Proposition for Cellular Locality of Dictyostelium Modelled in π-Calculus" (PDF). CoSMoS 2009.
- ↑ Engberg, U.; Nielsen, M. (1986). "लेबल पासिंग के साथ कम्यूनिकेटिंग सिस्टम्स का कैलकुलेशन". DAIMI Report Series. 15 (208). doi:10.7146/dpb.v15i208.7559.
- ↑ Robin Milner (1993). "Elements of interaction: Turing award lecture". Commun. ACM. 36 (1): 78–89. doi:10.1145/151233.151240.
संदर्भ
- Milner, Robin (1999). Communicating and Mobile Systems: The π-calculus. Cambridge, UK: Cambridge University Press. ISBN 0-521-65869-1.
- Milner, Robin (1993). "The Polyadic π-Calculus: A Tutorial". In F. L. Hamer; W. Brauer; H. Schwichtenberg (eds.). Logic and Algebra of Specification. Springer-Verlag.
- Sangiorgi, Davide; Walker, David (2001). The π-calculus: A Theory of Mobile Processes. Cambridge, UK: Cambridge University Press. ISBN 0-521-78177-9.