लेनिया: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 10: Line 10:
मान लीजिए कि <math>\mathcal{L}                                                                                                                                                                                                             
मान लीजिए कि <math>\mathcal{L}                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                              
                               </math> एक जालक या ग्रिड है जिसमें अवस्था का एक समुच्चय है जो की <math>S^\mathcal{L}</math>अनेक सेलुलर ऑटोमेटा की तरह, लेनिया को पुनरावृत्त रूप से अद्यतन किया जाता है; प्रत्येक आउटपुट स्थिति पिछली स्थिति का एक शुद्ध कार्य है, जैसे कि
                               </math> एक जालक या ग्रिड है जिसमें अवस्था का एक समुच्चय है जो की <math>S^\mathcal{L}</math>अनेक सेलुलर ऑटोमेटा की तरह, लेनिया को पुनरावृत्त रूप से अद्यतन किया जाता है; प्रत्येक आउटपुट स्थिति पिछली स्थिति का एक शुद्ध कार्य है, जैसे कि


<math display="block">\Phi(A^0) = A^{\Delta t}, \Phi(A^{\Delta t}) = A^{2\Delta t}, \ldots, \Phi(A^t) = A^{t + \Delta t},\ldots</math>
<math display="block">\Phi(A^0) = A^{\Delta t}, \Phi(A^{\Delta t}) = A^{2\Delta t}, \ldots, \Phi(A^t) = A^{t + \Delta t},\ldots</math>
जहां <math>A^0</math> प्रारंभिक स्थिति है और <math>\Phi : S^\mathcal{L} \rightarrow S^\mathcal{L}</math> वैश्विक नियम है, जो प्रत्येक साइट <math>\mathbf{x}\in\cal{L}</math> पर स्थानीय नियम के अनुप्रयोग का प्रतिनिधित्व करता है। इस प्रकार <math>\Phi^N(A^t) = A^{t + N\Delta t}</math>.
जहां <math>A^0</math> प्रारंभिक स्थिति है और <math>\Phi : S^\mathcal{L} \rightarrow S^\mathcal{L}</math> वैश्विक नियम है, जो प्रत्येक साइट <math>\mathbf{x}\in\cal{L}</math> पर स्थानीय नियम के अनुप्रयोग का प्रतिनिधित्व करता है। इस प्रकार <math>\Phi^N(A^t) = A^{t + N\Delta t}</math>.


यदि प्रत्येक टाइमस्टेप पर सिमुलेशन को <math>\Delta t</math> द्वारा उन्नत किया जाता है, तो समय रिज़ॉल्यूशन <math>T = \frac{1}{\Delta t}</math> होता है।
यदि प्रत्येक टाइमस्टेप पर सिमुलेशन को <math>\Delta t</math> द्वारा उन्नत किया जाता है, तो समय रिज़ॉल्यूशन <math>T = \frac{1}{\Delta t}</math> होता है।


=== स्टेट सेट ===
=== स्टेट सेट ===
मान लीजिए कि <math>S = \{0, 1, \ldots, P-1, P\}</math> अधिकतम <math>P \in \Z</math> के साथ है। यह ऑटोमेटन का स्टेट समुच्चय है और प्रत्येक साइट पर पाए जाने वाले संभावित अवस्था की विशेषता बताता है। बड़ा <math>P</math> सिमुलेशन में उच्च स्टेट संकल्पों के अनुरूप है। अनेक सेलुलर ऑटोमेटा न्यूनतम संभव स्टेट रिज़ॉल्यूशन का उपयोग करते हैं, अथार्त <math>P = 1</math> लेनिया बहुत अधिक रिज़ॉल्यूशन की अनुमति देता है। ध्यान दें कि प्रत्येक साइट पर वास्तविक मान <math>[0,P]</math> में नहीं है, किंतु <math>\Delta p = \frac{1}{P}</math> का पूर्णांक गुणज है; इसलिए हमारे पास सभी के लिए <math>A^t(\mathbf{x}) \in [0, 1]</math> के लिए <math>\mathbf{x} \in \mathcal{L}</math> है। उदाहरण के लिए, <math>P = 4</math>, <math>\mathbf{A}^t(\mathbf{x}) \in [0, 0.25, 0.75, 1]</math> दिया गया है।
मान लीजिए कि <math>S = \{0, 1, \ldots, P-1, P\}</math> अधिकतम <math>P \in \Z</math> के साथ है। यह ऑटोमेटन का स्टेट समुच्चय है और प्रत्येक साइट पर पाए जाने वाले संभावित अवस्था की विशेषता बताता है। बड़ा <math>P</math> सिमुलेशन में उच्च स्टेट संकल्पों के अनुरूप है। अनेक सेलुलर ऑटोमेटा न्यूनतम संभव स्टेट रिज़ॉल्यूशन का उपयोग करते हैं, अथार्त <math>P = 1</math> लेनिया बहुत अधिक रिज़ॉल्यूशन की अनुमति देता है। ध्यान दें कि प्रत्येक साइट पर वास्तविक मान <math>[0,P]</math> में नहीं है, किंतु <math>\Delta p = \frac{1}{P}</math> का पूर्णांक गुणज है; इसलिए हमारे पास सभी के लिए <math>A^t(\mathbf{x}) \in [0, 1]</math> के लिए <math>\mathbf{x} \in \mathcal{L}</math> है। उदाहरण के लिए, <math>P = 4</math>, <math>\mathbf{A}^t(\mathbf{x}) \in [0, 0.25, 0.75, 1]</math> दिया गया है।


=== निकट ===
=== निकट ===
Line 30: Line 30:
=== स्थानीय नियम ===
=== स्थानीय नियम ===


लेनिया के भिन्न और निरंतर रूप हैं। मान लीजिए <math>\mathbf{x}</math> किसी दिए गए साइट की स्थिति का प्रतिनिधित्व करने वाले <math>\mathcal{L}</math> के अंदर <math>\R^2</math> में एक सदिश है, और <math>\mathcal{N}</math> निकटवर्ती साइटों का समुच्चय है जिससे <math>\mathbf{x}</math> दोनों विविधताओं में दो चरण सम्मिलित हैं:
लेनिया के भिन्न और निरंतर रूप हैं। मान लीजिए <math>\mathbf{x}</math> किसी दिए गए साइट की स्थिति का प्रतिनिधित्व करने वाले <math>\mathcal{L}</math> के अंदर <math>\R^2</math> में एक सदिश है, और <math>\mathcal{N}</math> निकटवर्ती साइटों का समुच्चय है जिससे <math>\mathbf{x}</math> दोनों विविधताओं में दो चरण सम्मिलित हैं:


#संभावित वितरण <math>\mathbf{K} : \mathcal{N} \rightarrow S</math> की गणना करने के लिए कनवल्शन कर्नेल <math>\mathbf{U}^t(\mathbf{x})=\mathbf{K} * \mathbf{A}^t(\mathbf{x})</math> का उपयोग करना है।
#संभावित वितरण <math>\mathbf{K} : \mathcal{N} \rightarrow S</math> की गणना करने के लिए कनवल्शन कर्नेल <math>\mathbf{U}^t(\mathbf{x})=\mathbf{K} * \mathbf{A}^t(\mathbf{x})</math> का उपयोग करना है।
Line 49: Line 49:


=== कर्नेल पीढ़ी ===
=== कर्नेल पीढ़ी ===
कनवल्शन कर्नेल <math>\mathbf{K}</math> उत्पन्न करने के अनेक विधि हैं। अंतिम कर्नेल एक कर्नेल शेल <math>K_C</math> और एक कर्नेल स्केलेटन <math>K_S</math> की संरचना है।[[File:Screenshot from 2021-10-12 18-26-15.png|thumb|लेनिया के लिए कर्नेल शेल, कर्नेल स्केलेटन और विकास मानचित्रण।]].
कनवल्शन कर्नेल <math>\mathbf{K}</math> उत्पन्न करने के अनेक विधि हैं। अंतिम कर्नेल एक कर्नेल शेल <math>K_C</math> और एक कर्नेल स्केलेटन <math>K_S</math> की संरचना है।[[File:Screenshot from 2021-10-12 18-26-15.png|thumb|लेनिया के लिए कर्नेल शेल, कर्नेल स्केलेटन और विकास मानचित्रण।]].


कर्नेल शेल <math>K_C</math> के लिए, चैन अनेक फलन देता है जिन्हें रेडियल रूप से परिभाषित किया गया है। कर्नेल शेल फलन यूनिमॉडल हैं और बाधा <math>K_C(0) = K_C(1) = 0 </math> (और समान्यत: <math>K_C\left(\frac{1}{2}\right) = 1</math>भी) के अधीन हैं। उदाहरण कर्नेल फलन में सम्मिलित हैं:
कर्नेल शेल <math>K_C</math> के लिए, चैन अनेक फलन देता है जिन्हें रेडियल रूप से परिभाषित किया गया है। कर्नेल शेल फलन यूनिमॉडल हैं और बाधा <math>K_C(0) = K_C(1) = 0 </math> (और समान्यत: <math>K_C\left(\frac{1}{2}\right) = 1</math>भी) के अधीन हैं। उदाहरण कर्नेल फलन में सम्मिलित हैं:


<math display="block">K_C(r) = \begin{cases}  
<math display="block">K_C(r) = \begin{cases}  
Line 59: Line 59:
     \ldots, & \text{etc.}
     \ldots, & \text{etc.}
\end{cases}</math>
\end{cases}</math>
यहाँ, [[सूचक कार्य]] <math>\mathbf{1}_A(r)</math> है.
यहाँ, [[सूचक कार्य]] <math>\mathbf{1}_A(r)</math> है.


एक बार कर्नेल शेल को परिभाषित करने के बाद, कर्नेल स्केलेटन <math>K_S</math> का उपयोग इसका विस्तार करने और शेल को संकेंद्रित रिंगों की श्रृंखला में परिवर्तित करके कर्नेल के वास्तविक मूल्यों की गणना करने के लिए किया जाता है। प्रत्येक रिंग की ऊंचाई कर्नेल पीक सदिश <math>\beta = (\beta_1, \beta_2, \ldots, \beta_B) \in [0,1]^B</math> द्वारा नियंत्रित की जाती है, जहां <math>B</math> पैरामीटर सदिश की रैंक है। फिर कर्नेल स्केलेटन <math>K_S</math> को इस प्रकार परिभाषित किया गया है
एक बार कर्नेल शेल को परिभाषित करने के बाद, कर्नेल स्केलेटन <math>K_S</math> का उपयोग इसका विस्तार करने और शेल को संकेंद्रित रिंगों की श्रृंखला में परिवर्तित करके कर्नेल के वास्तविक मूल्यों की गणना करने के लिए किया जाता है। प्रत्येक रिंग की ऊंचाई कर्नेल पीक सदिश <math>\beta = (\beta_1, \beta_2, \ldots, \beta_B) \in [0,1]^B</math> द्वारा नियंत्रित की जाती है, जहां <math>B</math> पैरामीटर सदिश की रैंक है। फिर कर्नेल स्केलेटन <math>K_S</math> को इस प्रकार परिभाषित किया गया है


<math display="block">K_S(r;\beta)=\beta_{\lfloor Br \rfloor} K_C(Br \text{ mod } 1)</math>
<math display="block">K_S(r;\beta)=\beta_{\lfloor Br \rfloor} K_C(Br \text{ mod } 1)</math>
Line 71: Line 71:
=== ग्रोथ मैपिंग ===
=== ग्रोथ मैपिंग ===


ग्रोथ मैपिंग <math>G : [0, 1] \rightarrow [-1,1]</math> जो एक सक्रियण फलन के अनुरूप है, कोई भी फलन हो सकता है जो यूनिमॉडल, नॉनमोनोटोनिक है, और पैरामीटर <math>\mu,\sigma \in \R</math> को स्वीकार करता है। उदाहरणों में सम्मिलित है  
ग्रोथ मैपिंग <math>G : [0, 1] \rightarrow [-1,1]</math> जो एक सक्रियण फलन के अनुरूप है, कोई भी फलन हो सकता है जो यूनिमॉडल, नॉनमोनोटोनिक है, और पैरामीटर <math>\mu,\sigma \in \R</math> को स्वीकार करता है। उदाहरणों में सम्मिलित है  


<math display="block">G(u;\mu,\sigma) = \begin{cases}
<math display="block">G(u;\mu,\sigma) = \begin{cases}
Line 86: Line 86:


== पैटर्न ==
== पैटर्न ==
[[File:Lenia species.png|thumb|लेनिया में प्रजातियों की विस्तृत विविधता में से कुछ।]]कनवल्शनल कर्नेल, ग्रोथ मैपिंग और प्रारंभिक स्थिति को अलग-अलग करके, लेनिया में "जीवन" की 400 से अधिक "प्रजातियां" खोजी गई हैं, जो "स्व-संगठन, स्व-सुधार, द्विपक्षीय और रेडियल समरूपता, लोकोमोटिव गतिशीलता और कभी-कभी अराजक" प्रदर्शित करती हैं। प्रकृति"<ref>{{Cite web|title=आलसी|url=https://chakazul.github.io/lenia.html|access-date=2021-10-13|website=chakazul.github.io}}</ref> चैन ने इन पैटर्नों के लिए एक वर्गीकरण बनाया है।<ref name=":0" />
[[File:Lenia species.png|thumb|लेनिया में प्रजातियों की विस्तृत विविधता में से कुछ।]]कनवल्शनल कर्नेल, ग्रोथ मैपिंग और प्रारंभिक स्थिति को भिन्न -भिन्न करके, लेनिया में "जीवन" की 400 से अधिक "प्रजातियां" खोजी गई हैं, जो "स्व-संगठन, स्व-सुधार, द्विपक्षीय और रेडियल समरूपता, लोकोमोटिव गतिशीलता और कभी-कभी अराजक" प्रदर्शित करती हैं। प्रकृति"<ref>{{Cite web|title=आलसी|url=https://chakazul.github.io/lenia.html|access-date=2021-10-13|website=chakazul.github.io}}</ref> चैन ने इन पैटर्नों के लिए एक वर्गीकरण बनाया है।<ref name=":0" />
==संबंधित कार्य==
==संबंधित कार्य==
[[File:Cellular automata and convnets.png|thumb|एक दृढ़ तंत्रिका नेटवर्क के रूप में सेलुलर ऑटोमेटा<ref>{{Cite journal|last=Gilpin|first=William|date=2019-09-04|title=दृढ़ तंत्रिका नेटवर्क के रूप में सेलुलर ऑटोमेटा|url=https://link.aps.org/doi/10.1103/PhysRevE.100.032402|journal=Physical Review E|language=en|volume=100|issue=3|pages=032402|doi=10.1103/PhysRevE.100.032402|issn=2470-0045|doi-access=free}}</ref>.]]अन्य कार्यों में सेलुलर ऑटोमेटा अपडेट नियमों और कनवल्शन के मध्य सशक्त समानता देखी गई है। वास्तव में , इन कार्यों ने सरलीकृत [[ संवादात्मक तंत्रिका नेटवर्क ]] का उपयोग करके सेलुलर ऑटोमेटा को पुन: प्रस्तुत करने पर ध्यान केंद्रित किया है। मोर्डविंटसेव एट अल। स्व-सुधार पैटर्न पीढ़ी के उद्भव की जांच की गई थी ।<ref>{{Cite journal|last=Mordvintsev|first=Alexander|last2=Randazzo|first2=Ettore|last3=Niklasson|first3=Eyvind|last4=Levin|first4=Michael|date=2020-02-11|title=बढ़ती तंत्रिका सेलुलर ऑटोमेटा|url=https://distill.pub/2020/growing-ca|journal=Distill|language=en|volume=5|issue=2|pages=e23|doi=10.23915/distill.00023|issn=2476-0757|doi-access=free}}</ref> गिलपिन ने पाया कि किसी भी सेलुलर ऑटोमेटन को एक दृढ़ तंत्रिका नेटवर्क के रूप में दर्शाया जा सकता है, और उपस्थित सेलुलर ऑटोमेटा को पुन: उत्पन्न करने के लिए तंत्रिका नेटवर्क को प्रशिक्षित किया जा सकता है।<ref>{{Cite journal|last=Gilpin|first=William|date=2019-09-04|title=दृढ़ तंत्रिका नेटवर्क के रूप में सेलुलर ऑटोमेटा|url=https://link.aps.org/doi/10.1103/PhysRevE.100.032402|journal=Physical Review E|language=en|volume=100|issue=3|pages=032402|doi=10.1103/PhysRevE.100.032402|issn=2470-0045|doi-access=free}}</ref>
[[File:Cellular automata and convnets.png|thumb|एक दृढ़ तंत्रिका नेटवर्क के रूप में सेलुलर ऑटोमेटा<ref>{{Cite journal|last=Gilpin|first=William|date=2019-09-04|title=दृढ़ तंत्रिका नेटवर्क के रूप में सेलुलर ऑटोमेटा|url=https://link.aps.org/doi/10.1103/PhysRevE.100.032402|journal=Physical Review E|language=en|volume=100|issue=3|pages=032402|doi=10.1103/PhysRevE.100.032402|issn=2470-0045|doi-access=free}}</ref>.]]अन्य कार्यों में सेलुलर ऑटोमेटा अपडेट नियमों और कनवल्शन के मध्य सशक्त समानता देखी गई है। वास्तव में , इन कार्यों ने सरलीकृत [[ संवादात्मक तंत्रिका नेटवर्क |संवादात्मक तंत्रिका नेटवर्क]] का उपयोग करके सेलुलर ऑटोमेटा को पुन: प्रस्तुत करने पर ध्यान केंद्रित किया है। मोर्डविंटसेव एट अल। स्व-सुधार पैटर्न पीढ़ी के उद्भव की जांच की गई थी ।<ref>{{Cite journal|last=Mordvintsev|first=Alexander|last2=Randazzo|first2=Ettore|last3=Niklasson|first3=Eyvind|last4=Levin|first4=Michael|date=2020-02-11|title=बढ़ती तंत्रिका सेलुलर ऑटोमेटा|url=https://distill.pub/2020/growing-ca|journal=Distill|language=en|volume=5|issue=2|pages=e23|doi=10.23915/distill.00023|issn=2476-0757|doi-access=free}}</ref> गिलपिन ने पाया कि किसी भी सेलुलर ऑटोमेटन को एक दृढ़ तंत्रिका नेटवर्क के रूप में दर्शाया जा सकता है, और उपस्थित सेलुलर ऑटोमेटा को पुन: उत्पन्न करने के लिए तंत्रिका नेटवर्क को प्रशिक्षित किया जा सकता है।<ref>{{Cite journal|last=Gilpin|first=William|date=2019-09-04|title=दृढ़ तंत्रिका नेटवर्क के रूप में सेलुलर ऑटोमेटा|url=https://link.aps.org/doi/10.1103/PhysRevE.100.032402|journal=Physical Review E|language=en|volume=100|issue=3|pages=032402|doi=10.1103/PhysRevE.100.032402|issn=2470-0045|doi-access=free}}</ref>
इस प्रकाश में, सेलुलर ऑटोमेटा को आवर्तक संकेंद्रित तंत्रिका नेटवर्क के एक विशेष स्थिति के रूप में देखा जा सकता है। लेनिया के अद्यतन नियम को एक सक्रियण फलन ("ग्रोथ मैपिंग" <math>G</math>) के साथ एकल-परत कनवल्शन ("संभावित क्षेत्र " <math>\mathbf{K}</math> ) के रूप में भी देखा जा सकता है। चूँकि, लेनिया कहीं अधिक बड़े, स्थिर, कर्नेल का उपयोग करता है और ग्रेडिएंट डिसेंट के माध्यम से प्रशिक्षित नहीं है।
इस प्रकाश में, सेलुलर ऑटोमेटा को आवर्तक संकेंद्रित तंत्रिका नेटवर्क के एक विशेष स्थिति के रूप में देखा जा सकता है। लेनिया के अद्यतन नियम को एक सक्रियण फलन ("ग्रोथ मैपिंग" <math>G</math>) के साथ एकल-परत कनवल्शन ("संभावित क्षेत्र " <math>\mathbf{K}</math> ) के रूप में भी देखा जा सकता है। चूँकि, लेनिया कहीं अधिक बड़े, स्थिर, कर्नेल का उपयोग करता है और ग्रेडिएंट डिसेंट के माध्यम से प्रशिक्षित नहीं है।


== यह भी देखें                                                                                                                  ==
== यह भी देखें                                                                                                                  ==

Revision as of 11:19, 11 August 2023

File:Lenia icon4.png
लेनिया से एक नमूना स्वायत्त पैटर्न।
File:Peek 2021-10-12 22-29.gif
लेनिया में एक ग्लाइडर की गति को दर्शाने वाला एनीमेशन।

लेनिया बर्ट वांग-चाक चान द्वारा निर्मित सेलुलर ऑटोमेटन का एक वर्ग है।[1][2][3] इसका उद्देश्य सतत ऑटोमेटन, सतत स्थानिक ऑटोमेटन के साथ कॉनवे के जीवन के खेल का एक सतत कार्य सामान्यीकरण होना है। इसके निरंतर, उच्च-रिज़ॉल्यूशन डोमेन के परिणामस्वरूप, लेनिया में उत्पन्न सम्मिश्र स्वायत्त पैटर्न (जीवनरूप या स्पेसशिप (सेलुलर ऑटोमेटन)) को अन्य सेलुलर ऑटोमेटा में दिखाई देने वाले "ज्यामितीय मेटामेरिक फजी लचीला अनुकूली और नियम-जेनेरिक" से भिन्न बताया गया है।[1]

लेनिया ने क्योटो में जेनेटिक एंड इवोल्यूशनरी कंप्यूटेशन कॉन्फ्रेंस में 2018 वर्चुअल क्रिएचर्स प्रतियोगिता जीती,[4] टोक्यो में एएलआईएफई 2018 में एएलआईएफईकला पुरस्कार के लिए एक सम्मानजनक उल्लेख,[5] और इंटरनेशनल सोसाइटी फॉर आर्टिफिशियल लाइफ द्वारा 2019 का उत्कृष्ट प्रकाशन ( आईएसएएल).[6]

नियम

पुनरावृत्तीय अद्यतन

मान लीजिए कि एक जालक या ग्रिड है जिसमें अवस्था का एक समुच्चय है जो की अनेक सेलुलर ऑटोमेटा की तरह, लेनिया को पुनरावृत्त रूप से अद्यतन किया जाता है; प्रत्येक आउटपुट स्थिति पिछली स्थिति का एक शुद्ध कार्य है, जैसे कि

जहां प्रारंभिक स्थिति है और वैश्विक नियम है, जो प्रत्येक साइट पर स्थानीय नियम के अनुप्रयोग का प्रतिनिधित्व करता है। इस प्रकार .

यदि प्रत्येक टाइमस्टेप पर सिमुलेशन को द्वारा उन्नत किया जाता है, तो समय रिज़ॉल्यूशन होता है।

स्टेट सेट

मान लीजिए कि अधिकतम के साथ है। यह ऑटोमेटन का स्टेट समुच्चय है और प्रत्येक साइट पर पाए जाने वाले संभावित अवस्था की विशेषता बताता है। बड़ा सिमुलेशन में उच्च स्टेट संकल्पों के अनुरूप है। अनेक सेलुलर ऑटोमेटा न्यूनतम संभव स्टेट रिज़ॉल्यूशन का उपयोग करते हैं, अथार्त लेनिया बहुत अधिक रिज़ॉल्यूशन की अनुमति देता है। ध्यान दें कि प्रत्येक साइट पर वास्तविक मान में नहीं है, किंतु का पूर्णांक गुणज है; इसलिए हमारे पास सभी के लिए के लिए है। उदाहरण के लिए,