Π-कैलकुलस: Difference between revisions
No edit summary |
No edit summary |
||
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 67: | Line 67: | ||
=== रचनाक्रम === | === रचनाक्रम === | ||
माना कि Χ वस्तुओं का एक सेट है जिसे नाम कहा जाता है। {{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}}-कैलकुलस को नीचे दी गई तालिका द्वारा आगमनात्मक रूप से परिभाषित किया गया है। किसी प्रक्रिया के बाउंड नामों के सेट को उस प्रक्रिया के नामों के रूप में परिभाषित किया जाता है जो मुक्त नामों के सेट में नहीं होते हैं। | ||
Line 193: | Line 193: | ||
नाम समानता के लिए परीक्षण <math>[x=y]P</math> सिंटैक्स में जोड़ा जा सकता है। यह मैच ऑपरेटर <math>P</math> आगे बढ़ सकता है यदि और केवल यदि {{mvar|x}} और <math>y</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>, एक छोटे कैलकुलस की उपज हैं जजबकि मूल कैलकुलस में किसी भी प्रक्रिया को प्राप्त करने की प्रक्रिया से स्पष्ट पावती का अनुकरण करने के लिए एक अतिरिक्त चैनल का उपयोग करके छोटे अतुल्यकालिक π-कैलकुलस द्वारा दर्शाया जा सकता है। चूंकि निरंतरता-मुक्त आउटपुट संदेश-इन-ट्रांजिट को मॉडल कर सकता है एवं यह टुकड़ा दिखाता है कि मूल π-कैलकुलस जो सहज रूप से सिंक्रोनस संचार पर आधारित है इसके सिंटैक्स के अंदर एक अभिव्यंजक अतुल्यकालिक संचार मॉडल है। हालांकि ऊपर परिभाषित गैर-नियतात्मक चयनित ऑपरेटर को इस तरह से व्यक्त नहीं किया जा सकता है क्योंकि अनियंत्रित विकल्प को संरक्षित में परिवर्तित कर दिया जाएगा; इस तथ्य का उपयोग यह प्रदर्शित करने के लिए किया गया है कि एसिंक्रोनस कैलकुलस सिंक्रोनस (विकल्प ऑपरेटर के साथ) की तुलना में कठिनाई से कम अभिव्यंजक है।<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 220: | Line 220: | ||
=== ट्यूरिंग पूर्णता === | === ट्यूरिंग पूर्णता === | ||
{{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}}-कैलकुलस की विशेषताएं जो इन एनकोडिंग को संभव बनाते हैं वे नाम-पासिंग और प्रतिकृति (या, समतुल्य, पुनरावर्ती रूप से परिभाषित एजेंट) हैं। प्रतिकृति/पुनरावृत्ति के अभाव में {{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}}- | == {{pi}}-कैलकुलस में बाईसिमुलेशन == | ||
{{See also|बाईसिमुलेशन}} | {{See also|बाईसिमुलेशन}} | ||
Line 236: | Line 236: | ||
=== प्रारंभिक और बाद की समानता === | === प्रारंभिक और बाद की समानता === | ||
मिलनर, पैरो और वाकर ने {{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> | * जब भी <math> | ||
p \,\xrightarrow{a(x)}\,p' | p \,\xrightarrow{a(x)}\,p' | ||
Line 304: | Line 304: | ||
{{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> |
Revision as of 22:56, 5 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.