विरल मैट्रिक्स: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Matrix in which most of the elements are zero}} {| class=wikitable align=right width=240px style="margin: 3px 0 5px 14px;" | {{center|'''Example of sparse...")
 
No edit summary
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|Matrix in which most of the elements are zero}}
{{Short description|Matrix in which most of the elements are zero}}
{| class=wikitable align=right width=240px style="margin: 3px 0 5px 14px;"
{| class=wikitable align=right width=240px style="margin: 3px 0 5px 14px;"
| {{center|'''Example of sparse matrix'''}}
| {{center|'''विरल आव्यूह का उदाहरण'''}}
{{center|<math>\left(\begin{smallmatrix}
{{center|<math>\left(\begin{smallmatrix}
11 & 22 & 0 & 0 & 0 & 0 & 0 \\
11 & 22 & 0 & 0 & 0 & 0 & 0 \\
Line 10: Line 10:
\end{smallmatrix}\right)</math>}}
\end{smallmatrix}\right)</math>}}
|-
|-
| {{center|{{midsize|The above sparse matrix contains only 9 non-zero elements, with 26 zero elements. Its sparsity is 74%, and its density is 26%.}}}}
| {{center|{{midsize|उपरोक्त विरल आव्यूह में 26 शून्य अवयवों के साथ मात्र 9 गैर-शून्य अवयव होते हैं। इसकी दुर्लभता 74% है, और इसकी घनत्व 26% है।}}}}
|}
|}
[[Image:Finite element sparse matrix.png|right|thumb|दो आयामों में परिमित तत्व विधि को हल करते समय प्राप्त विरल मैट्रिक्स। गैर-शून्य तत्वों को काले रंग में दिखाया गया है।]][[संख्यात्मक विश्लेषण]] और [[वैज्ञानिक कंप्यूटिंग]] में, एक विरल मैट्रिक्स या विरल सरणी एक [[मैट्रिक्स (गणित)]] है जिसमें अधिकांश तत्व शून्य होते हैं।<ref name="Yan Wu Liu Gao 2017 p. ">{{cite conference | last1=Yan | first1=Di | last2=Wu | first2=Tao | last3=Liu | first3=Ying | last4=Gao | first4=Yang | title=2017 IEEE 17th International Conference on Communication Technology (ICCT) | chapter=An efficient sparse-dense matrix multiplication on a multicore system | publisher=IEEE | year=2017 | pages=1880–1883 | isbn=978-1-5090-3944-9 | doi=10.1109/icct.2017.8359956 | quote=The computation kernel of DNN is large sparse-dense matrix multiplication. In the field of numerical analysis, a sparse matrix is a matrix populated primarily with zeros as elements of the table. By contrast, if the number of non-zero elements in a matrix is relatively large, then it is commonly considered a dense matrix. The fraction of zero elements (non-zero elements) in a matrix is called the sparsity (density). Operations using standard dense-matrix structures and algorithms are relatively slow and consume large amounts of memory when applied to large sparse matrices. }}</ref> मैट्रिक्स के लिए विरल के रूप में अर्हता प्राप्त करने के लिए शून्य-मान तत्वों के अनुपात के संबंध में कोई सख्त परिभाषा नहीं है, लेकिन एक सामान्य मानदंड यह है कि गैर-शून्य तत्वों की संख्या लगभग पंक्तियों या स्तंभों की संख्या के बराबर होती है। इसके विपरीत, यदि अधिकांश तत्व गैर-शून्य हैं, तो मैट्रिक्स को सघन माना जाता है।<ref name="Yan Wu Liu Gao 2017 p. "/>तत्वों की कुल संख्या से विभाजित शून्य-मूल्य वाले तत्वों की संख्या (उदाहरण के लिए, m × n मैट्रिक्स के लिए m × n) को कभी-कभी मैट्रिक्स की 'स्पार्सिटी' कहा जाता है।
[[Image:Finite element sparse matrix.png|right|thumb|दो आयामों में परिमित अवयव विधि को हल करते समय प्राप्त विरल आव्यूह। गैर-शून्य अवयवों को काले रंग में दिखाया गया है।]][[संख्यात्मक विश्लेषण]] और [[वैज्ञानिक कंप्यूटिंग]] में, एक विरल आव्यूह या एक [[मैट्रिक्स (गणित)|विरल सरणी(गणित)]] है जिसमें अधिकांश अवयव शून्य होते हैं।<ref name="Yan Wu Liu Gao 2017 p. ">{{cite conference | last1=Yan | first1=Di | last2=Wu | first2=Tao | last3=Liu | first3=Ying | last4=Gao | first4=Yang | title=2017 IEEE 17th International Conference on Communication Technology (ICCT) | chapter=An efficient sparse-dense matrix multiplication on a multicore system | publisher=IEEE | year=2017 | pages=1880–1883 | isbn=978-1-5090-3944-9 | doi=10.1109/icct.2017.8359956 | quote=The computation kernel of DNN is large sparse-dense matrix multiplication. In the field of numerical analysis, a sparse matrix is a matrix populated primarily with zeros as elements of the table. By contrast, if the number of non-zero elements in a matrix is relatively large, then it is commonly considered a dense matrix. The fraction of zero elements (non-zero elements) in a matrix is called the sparsity (density). Operations using standard dense-matrix structures and algorithms are relatively slow and consume large amounts of memory when applied to large sparse matrices. }}</ref> आव्यूह के लिए विरल के रूप में योग्यता के लिए शून्य-मान अवयवों के अनुपात के संबंध में कोई विशुद्ध परिभाषा नहीं है, परन्तु एक सामान्य मापदण्ड यह है कि गैर-शून्य अवयवों की संख्या लगभग पंक्तियों या स्तंभों की संख्या के बराबर होती है। इसके विपरीत, यदि अधिकांश अवयव गैर-शून्य हैं, तो आव्यूह को सघन माना जाता है।<ref name="Yan Wu Liu Gao 2017 p. "/> अवयवों की कुल संख्या से विभाजित शून्य-मान वाले अवयवों की संख्या(उदाहरण के लिए, m × n आव्यूह के लिए m × n) को कभी-कभी आव्यूह की 'विरलता' कहा जाता है।


संकल्पनात्मक रूप से, स्पार्सिटी कुछ जोड़ीदार अंतःक्रियाओं वाले सिस्टम से मेल खाती है। उदाहरण के लिए, एक से दूसरे में स्प्रिंग द्वारा जुड़ी गेंदों की एक पंक्ति पर विचार करें: यह एक विरल प्रणाली है क्योंकि केवल आसन्न गेंदों को जोड़ा जाता है। इसके विपरीत, यदि गेंदों की एक ही पंक्ति में प्रत्येक गेंद को अन्य सभी गेंदों से जोड़ने वाले स्प्रिंग्स हों, तो सिस्टम एक सघन मैट्रिक्स के अनुरूप होगा। स्पार्सिटी की अवधारणा [[ साहचर्य ]] और एप्लिकेशन क्षेत्रों जैसे [[नेटवर्क सिद्धांत]] और संख्यात्मक विश्लेषण में उपयोगी है, जिसमें आमतौर पर महत्वपूर्ण डेटा या कनेक्शन का घनत्व कम होता है। आंशिक अंतर समीकरणों को हल करते समय बड़े विरल मैट्रिक्स अक्सर [[वैज्ञानिक]] या [[अभियांत्रिकी]] अनुप्रयोगों में दिखाई देते हैं।
संकल्पनात्मक रूप से, विरलता कुछ युग्‍मानूसार अंतःक्रियाओं वाली पद्धति से मेल खाती है। उदाहरण के लिए, एक से दूसरे में स्प्रिंग द्वारा संयोजित गेंदों की पंक्ति पर विचार करें: यह एक विरल पद्धति है क्योंकि मात्र समीपवर्ती गेंदों को युग्मित किया जाता है। इसके विपरीत, यदि गेंदों की एक ही पंक्ति में प्रत्येक गेंद को अन्य सभी गेंदों से संयोजी स्प्रिंगें हों, तो पद्धति एक सघन आव्यूह के अनुरूप होगा। विरलता की अवधारणा [[ साहचर्य |साहचर्य]] और प्रयोग क्षेत्रों जैसे [[नेटवर्क सिद्धांत]] और संख्यात्मक विश्लेषण में उपयोगी है, जिसमें सामान्यतः महत्वपूर्ण डेटा या संपर्क का घनत्व कम होता है। आंशिक अंतर समीकरणों को हल करते समय बड़े विरल आव्यूह प्रायः [[वैज्ञानिक|वैज्ञानि]][[अभियांत्रिकी|की]] या [[अभियांत्रिकी]] अनुप्रयोगों में उपस्थित होते हैं।


[[कंप्यूटर]] पर विरल मैट्रिसेस का भंडारण और हेरफेर करते समय, विशेष [[कलन विधि]] और [[डेटा संरचना]]ओं का उपयोग करना फायदेमंद और अक्सर आवश्यक होता है जो मैट्रिक्स की विरल संरचना का लाभ उठाते हैं। विरल मैट्रिसेस के लिए विशिष्ट कंप्यूटर बनाए गए हैं,<ref>{{Cite web|url=https://www.businesswire.com/news/home/20190819005148/en/Cerebras-Systems-Unveils-Industry%E2%80%99s-Trillion-Transistor-Chip|title=सेरेब्रस सिस्टम्स ने उद्योग की पहली ट्रिलियन ट्रांजिस्टर चिप का अनावरण किया| quote=The WSE contains 400,000 AI-optimized compute cores. Called SLAC™ for Sparse Linear Algebra Cores, the compute cores are flexible, programmable, and optimized for the sparse linear algebra that underpins all neural network computation|date=2019-08-19 |website=www.businesswire.com|language=en|access-date=2019-12-02}}</ref> क्योंकि वे मशीन लर्निंग क्षेत्र में आम हैं।<ref>{{Cite press release|url=https://www.anl.gov/article/argonne-national-laboratory-deploys-cerebras-cs1-the-worlds-fastest-artificial-intelligence-computer|title=Argonne National Laboratory Deploys Cerebras CS-1, the World's Fastest Artificial Intelligence Computer {{!}} Argonne National Laboratory|quote=The WSE is the largest chip ever made at 46,225 square millimeters in area, it is 56.7 times larger than the largest graphics processing unit. It contains 78 times more AI optimized compute cores, 3,000 times more high speed, on-chip memory, 10,000 times more memory bandwidth, and 33,000 times more communication bandwidth.| website=www.anl.gov|language=en|access-date=2019-12-02}}</ref> प्रसंस्करण के रूप में बड़े विरल मैट्रिक्स पर लागू होने पर मानक घने-मैट्रिक्स संरचनाओं और एल्गोरिदम का उपयोग करने वाले संचालन धीमे और अक्षम होते हैं और [[स्मृति]] शून्य पर बर्बाद हो जाती है। विरल डेटा स्वभाव से अधिक आसानी से डेटा संपीड़न होता है और इस प्रकार कंप्यूटर डेटा संग्रहण में काफी कम आवश्यकता होती है। मानक घने-मैट्रिक्स एल्गोरिदम का उपयोग करके हेरफेर करने के लिए कुछ बहुत बड़े विरल मैट्रिक्स अक्षम हैं।
[[कंप्यूटर]] पर विरल आव्यूह का संग्रहण और परिचालन के समय, विशेष [[कलन विधि|एल्गोरिदम]] और [[डेटा संरचना|डेटा संरचनाओं]] का उपयोग करना लाभप्रद और प्रायः आवश्यक होता है जो आव्यूह की विरल संरचना का लाभ उठाते हैं। विरल आव्यूह के लिए विशिष्ट कंप्यूटर बनाए गए हैं,<ref>{{Cite web|url=https://www.businesswire.com/news/home/20190819005148/en/Cerebras-Systems-Unveils-Industry%E2%80%99s-Trillion-Transistor-Chip|title=सेरेब्रस सिस्टम्स ने उद्योग की पहली ट्रिलियन ट्रांजिस्टर चिप का अनावरण किया| quote=The WSE contains 400,000 AI-optimized compute cores. Called SLAC™ for Sparse Linear Algebra Cores, the compute cores are flexible, programmable, and optimized for the sparse linear algebra that underpins all neural network computation|date=2019-08-19 |website=www.businesswire.com|language=en|access-date=2019-12-02}}</ref> क्योंकि वे मशीन अधिगम क्षेत्र में सामान्य हैं।<ref>{{Cite press release|url=https://www.anl.gov/article/argonne-national-laboratory-deploys-cerebras-cs1-the-worlds-fastest-artificial-intelligence-computer|title=Argonne National Laboratory Deploys Cerebras CS-1, the World's Fastest Artificial Intelligence Computer {{!}} Argonne National Laboratory|quote=The WSE is the largest chip ever made at 46,225 square millimeters in area, it is 56.7 times larger than the largest graphics processing unit. It contains 78 times more AI optimized compute cores, 3,000 times more high speed, on-chip memory, 10,000 times more memory bandwidth, and 33,000 times more communication bandwidth.| website=www.anl.gov|language=en|access-date=2019-12-02}}</ref> प्रसंस्करण के रूप में बड़े विरल आव्यूह पर लागू होने पर मानक घने-आव्यूह संरचनाओं और एल्गोरिदम का उपयोग करने वाले संचालन धीमे और अक्षम होते हैं और [[स्मृति|मेमोरी]] शून्य पर क्षीण हो जाती है। विरल डेटा स्वभाव से अधिक आसानी से डेटा संपीड़न होता है और इस प्रकार कंप्यूटर डेटा संग्रहण में अत्यधिक कम की आवश्यकता होती है। मानक घने-आव्यूह एल्गोरिदम का उपयोग करके परिचालन के लिए कुछ बहुत बड़े विरल आव्यूह अक्षम हैं।


=={{anchor|storage}} विरल मैट्रिक्स का भंडारण ==
==विरल आव्यूह का संग्रहण ==


एक मैट्रिक्स को आमतौर पर द्वि-आयामी सरणी के रूप में संग्रहीत किया जाता है। सरणी में प्रत्येक प्रविष्टि एक तत्व का प्रतिनिधित्व करती है {{math|''a''<sub>''i'',''j''</sub>}} मैट्रिक्स का और दो ऐरे डेटा स्ट्रक्चर द्वारा एक्सेस किया जाता है {{math|''i''}} और {{math|''j''}}. परंपरागत रूप से, {{math|''i''}} पंक्ति अनुक्रमणिका है, जो ऊपर से नीचे तक क्रमांकित है, और {{math|''j''}} कॉलम इंडेक्स है, जिसे बाएं से दाएं क्रमांकित किया गया है। एक के लिए {{math|''m'' × ''n''}} मैट्रिक्स, इस प्रारूप में मैट्रिक्स को स्टोर करने के लिए आवश्यक मेमोरी की मात्रा आनुपातिक है {{math|''m'' × ''n''}} (इस तथ्य की उपेक्षा करते हुए कि मैट्रिक्स के आयामों को भी संग्रहीत करने की आवश्यकता है)।
आव्यूह को सामान्यतः द्वि-आयामी सरणी के रूप में संग्रहीत किया जाता है। सरणी में प्रत्येक प्रविष्टि एक अवयव {{math|''a''<sub>''i'',''j''</sub>}} का प्रतिनिधित्व करती है आव्यूह का और दो सूचकांकों द्वारा अभिगम किया जाता है परंपरागत रूप से, {{math|''i''}} पंक्ति सूचकांक है जिसे ऊपर से नीचे तक क्रमांकित किया गया है, और {{math|''j''}} स्तंभ सूचकांक है, जिसे बाएँ से दाएँ क्रमांकित किया गया है। {{math|''m'' × ''n''}} आव्यूह के लिए, इस प्रारूप में आव्यूह को संग्रहीत करने के लिए आवश्यक मेमोरी की मात्रा {{math|''m'' × ''n''}} आनुपातिक है(इस तथ्य की उपेक्षा करते हुए कि आव्यूह के आयामों को भी संग्रहीत करने की आवश्यकता है)।


विरल मैट्रिक्स के मामले में, केवल गैर-शून्य प्रविष्टियों को संग्रहीत करके पर्याप्त मेमोरी आवश्यकता में कमी को महसूस किया जा सकता है। गैर-शून्य प्रविष्टियों की संख्या और वितरण के आधार पर, विभिन्न डेटा संरचनाओं का उपयोग किया जा सकता है और मूल दृष्टिकोण की तुलना में स्मृति में बड़ी बचत हो सकती है। व्यापार बंद यह है कि व्यक्तिगत तत्वों तक पहुंच अधिक जटिल हो जाती है और मूल मैट्रिक्स को स्पष्ट रूप से पुनर्प्राप्त करने में सक्षम होने के लिए अतिरिक्त संरचनाओं की आवश्यकता होती है।
विरल आव्यूह के विषय में, मात्र गैर-शून्य प्रविष्टियों को संग्रहीत करके पर्याप्त मेमोरी आवश्यकता में कमी को समझा जा सकता है। गैर-शून्य प्रविष्टियों की संख्या और वितरण के आधार पर, विभिन्न डेटा संरचनाओं का उपयोग किया जा सकता है और मूल दृष्टिकोण की तुलना में मेमोरी में बड़ी बचत हो सकती है। व्यापार-बंद यह है कि व्यक्तिगत अवयवों तक अभिगम अधिक जटिल हो जाती है और मूल आव्यूह को स्पष्ट रूप से पुनर्प्राप्त करने में सक्षम होने के लिए अतिरिक्त संरचनाओं की आवश्यकता होती है।


स्वरूपों को दो समूहों में विभाजित किया जा सकता है:
स्वरूपों को दो समूहों में विभाजित किया जा सकता है:


* वे जो कुशल संशोधन का समर्थन करते हैं, जैसे DOK (कुंजियों का शब्दकोश), LIL (सूचियों की सूची), या COO (समन्वय सूची)। ये आमतौर पर मैट्रिसेस के निर्माण के लिए उपयोग किए जाते हैं।
* वे जो दक्ष संशोधन का समर्थन करते हैं, जैसे डीओके(कुंजियों का शब्दकोश), एलआईएल(सूचियों की सूची), या सीओओ(समन्वय सूची)। ये सामान्यतः आव्यूह के निर्माण के लिए उपयोग किए जाते हैं।
* वे जो सीएसआर (संपीड़ित विरल पंक्ति) या सीएससी (संपीड़ित विरल स्तंभ) जैसे कुशल पहुंच और मैट्रिक्स संचालन का समर्थन करते हैं।
* वे जो सीएसआर(संपीड़ित विरल पंक्ति) या सीएससी(संपीड़ित विरल स्तंभ) जैसे दक्ष अभिगम और आव्यूह संचालन का समर्थन करते हैं।


=== चाबियों का शब्दकोश (डीओके) ===
=== कुंजियों का शब्दकोश(डीओके) ===


DOK में एक [[साहचर्य सरणी]] होती है जो मैप करती है {{math|(row, column)}}-क्रमित जोड़ी तत्वों के मूल्य के लिए। शब्दकोश से गायब होने वाले तत्वों को शून्य मान लिया जाता है। प्रारूप यादृच्छिक क्रम में एक विरल मैट्रिक्स के निर्माण के लिए अच्छा है, लेकिन लेक्सिकोग्राफ़िक क्रम में गैर-शून्य मानों पर पुनरावृति के लिए खराब है। एक आम तौर पर इस प्रारूप में एक मैट्रिक्स बनाता है और फिर प्रसंस्करण के लिए एक और अधिक कुशल प्रारूप में परिवर्तित हो जाता है।<ref>See [http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.dok_matrix.html <code>scipy.sparse.dok_matrix</code>]</ref>
डीओके में एक शब्दकोश होता है जो मानचित्र [[साहचर्य सरणी|साहचर्य आव्यूह]] {{math|(row, column)}} अवयवों के मान के लिए युग्मित करता है। शब्दकोश से अनुपस्थित होने वाले अवयवों को शून्य मान लिया जाता है। प्रारूप यादृच्छिक क्रम में विरल आव्यूह के निर्माण के लिए अच्छा है, परन्तु कोशक्रमानुसार क्रम में गैर-शून्य मानों पर पुनरावृति के लिए अल्प है। एक सामान्यतः इस प्रारूप में आव्यूह बनाता है और फिर प्रसंस्करण के लिए एक और अधिक दक्ष प्रारूप में परिवर्तित हो जाता है।<ref>See [http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.dok_matrix.html <code>scipy.sparse.dok_matrix</code>]</ref>




=== सूचियों की सूची (एलआईएल) ===
=== सूचियों की सूची(एलआईएल) ===


LIL प्रति पंक्ति एक सूची संग्रहीत करता है, जिसमें प्रत्येक प्रविष्टि में कॉलम अनुक्रमणिका और मान होता है। आमतौर पर, इन प्रविष्टियों को तेजी से देखने के लिए कॉलम इंडेक्स द्वारा क्रमबद्ध रखा जाता है। वृद्धिशील मैट्रिक्स निर्माण के लिए यह एक और प्रारूप अच्छा है।<ref>See [http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.lil_matrix.html <code>scipy.sparse.lil_matrix</code>]</ref>
एलआईएल प्रति पंक्ति एक सूची संग्रहीत करता है, जिसमें प्रत्येक प्रविष्टि में स्तंभ सूचकांक और मान होता है। सामान्यतः, इन प्रविष्टियों को तीव्रता से देखने के लिए स्तंभ सूचकांक द्वारा क्रमबद्ध रखा जाता है। वार्धिक आव्यूह निर्माण के लिए यह एक और प्रारूप अच्छा है।<ref>See [http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.lil_matrix.html <code>scipy.sparse.lil_matrix</code>]</ref>




=== समन्वय सूची (सीओओ) ===
=== समन्वय सूची(सीओओ) ===


सीओओ की एक सूची संग्रहीत करता है {{math|(row, column, value)}} टुपल्स। आदर्श रूप से, रैंडम एक्सेस समय में सुधार के लिए प्रविष्टियों को पहले पंक्ति अनुक्रमणिका और फिर स्तंभ अनुक्रमणिका द्वारा क्रमबद्ध किया जाता है। यह एक और प्रारूप है जो वृद्धिशील मैट्रिक्स निर्माण के लिए अच्छा है।<ref>See [http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html <code>scipy.sparse.coo_matrix</code>]</ref>
सीओओ {{math|(row, column, value)}} टपल की एक सूची संग्रहीत करता है। आदर्श रूप से, यादृच्छिक अभिगम समय में सुधार के लिए प्रविष्टियों को पूर्व पंक्ति सूचकांक और फिर स्तंभ सूचकांक द्वारा क्रमबद्ध किया जाता है। यह एक और प्रारूप है जो वार्धिक आव्यूह निर्माण के लिए अच्छा है।<ref>See [http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html <code>scipy.sparse.coo_matrix</code>]</ref>




===संपीड़ित विरल पंक्ति (सीएसआर, सीआरएस या येल प्रारूप)===
===संपीड़ित विरल पंक्ति(सीएसआर, सीआरएस या येल प्रारूप)===


संपीड़ित विरल पंक्ति (CSR) या संपीड़ित पंक्ति संग्रहण (CRS) या येल प्रारूप एक मैट्रिक्स का प्रतिनिधित्व करता है {{math|'''M'''}} तीन (एक-आयामी) सरणियों द्वारा, जिनमें क्रमशः शून्येतर मान, पंक्तियों का विस्तार, और स्तंभ सूचकांक होते हैं। यह सीओओ के समान है, लेकिन पंक्ति सूचकांकों को संकुचित करता है, इसलिए यह नाम है। यह प्रारूप तेज पंक्ति पहुंच और मैट्रिक्स-वेक्टर गुणन की अनुमति देता है ({{math|'''M'''''x''}}). सीएसआर प्रारूप कम से कम 1960 के दशक के मध्य से उपयोग में रहा है, जिसका पहला पूर्ण विवरण 1967 में प्रदर्शित हुआ था।<ref>{{cite conference |first1=Aydın |last1=Buluç |first2=Jeremy T. |last2=Fineman |first3=Matteo |last3=Frigo |first4=John R. |last4=Gilbert |first5=Charles E. |last5=Leiserson |authorlink5=Charles E. Leiserson |title=समानांतर विरल मैट्रिक्स-वेक्टर और मैट्रिक्स-ट्रांसपोज़-वेक्टर गुणन संकुचित विरल ब्लॉकों का उपयोग करते हुए|year=2009 |conference=ACM Symp. on Parallelism in Algorithms and Architectures |url=https://people.eecs.berkeley.edu/~aydin/csb2009.pdf |citeseerx=10.1.1.211.5256}}</ref>
संपीड़ित विरल पंक्ति(सीएसआर) या संपीड़ित पंक्ति संग्रहण(सीआरएस) या येल प्रारूप तीन(एक-आयामी) सरणियों द्वारा {{math|'''M'''}} आव्यूह का प्रतिनिधित्व करता है, जिसमें क्रमशः शून्येतर मान, पंक्तियों का विस्तार, और स्तंभ सूचकांक होते हैं। यह सीओओ के समान है, परन्तु पंक्ति सूचकांकों को संकुचित करता है, इसलिए यह नाम है। यह प्रारूप तीव्र पंक्ति अभिगम और आव्यूह-सदिश गुणन({{math|'''M'''''x''}}) की अनुमति देता है। सीएसआर प्रारूप कम से कम 1960 के दशक के मध्य से उपयोग में रहा है, जिसका प्रथम पूर्ण विवरण 1967 में प्रदर्शित हुआ था।<ref>{{cite conference |first1=Aydın |last1=Buluç |first2=Jeremy T. |last2=Fineman |first3=Matteo |last3=Frigo |first4=John R. |last4=Gilbert |first5=Charles E. |last5=Leiserson |authorlink5=Charles E. Leiserson |title=समानांतर विरल मैट्रिक्स-वेक्टर और मैट्रिक्स-ट्रांसपोज़-वेक्टर गुणन संकुचित विरल ब्लॉकों का उपयोग करते हुए|year=2009 |conference=ACM Symp. on Parallelism in Algorithms and Architectures |url=https://people.eecs.berkeley.edu/~aydin/csb2009.pdf |citeseerx=10.1.1.211.5256}}</ref>
सीएसआर प्रारूप एक विरल भंडार करता है {{math|''m'' × ''n''}} आव्यूह {{math|'''M'''}} तीन (एक-आयामी) सरणियों का उपयोग करके पंक्ति रूप में {{math|(V, COL_INDEX, ROW_INDEX)}}. होने देना {{math|NNZ}} गैर-शून्य प्रविष्टियों की संख्या को निरूपित करता है {{math|'''M'''}}. (ध्यान दें कि शून्य-आधारित नंबरिंग | शून्य-आधारित सूचकांकों का उपयोग यहां किया जाएगा।)


* सरणियाँ {{math|V}} और {{math|COL_INDEX}} लम्बाई के हैं {{math|NNZ}}, और गैर-शून्य मान और क्रमशः उन मानों के स्तंभ अनुक्रमणिका शामिल करें।
सीएसआर प्रारूप तीन(एक-आयामी) सरणियों {{math|(V, COL_INDEX, ROW_INDEX)}} का उपयोग करके एक विरल {{math|''m'' × ''n''}} आव्यूह {{math|'''M'''}} को पंक्ति रूप में संग्रहीत करता है। बता दें कि {{math|NNZ}} {{math|'''M'''}} में गैर-शून्य प्रविष्टियों की संख्या को निरूपित करता है।(ध्यान दें कि यहां शून्य-आधारित सूचकांकों का उपयोग किया जाएगा।)
* सरणी {{math|ROW_INDEX}} लम्बाई का है {{math|''m'' + ''1''}} और इंडेक्स को एन्कोड करता है {{math|V}} और {{math|COL_INDEX}} जहां दी गई पंक्ति शुरू होती है। यह इसके बराबर है {{math|ROW_INDEX[j]}} पंक्ति के ऊपर नॉनज़रो की कुल संख्या को एनकोड करना {{math|j}}. अंतिम तत्व है {{math|NNZ}} , यानी, काल्पनिक सूचकांक में {{Math|V}} अंतिम वैध इंडेक्स के तुरंत बाद {{math|NNZ - 1}}. <ref>{{cite book |last1=Saad |first1=Yousef |title=विरल रेखीय प्रणालियों के लिए पुनरावृत्त तरीके|date=2003 |publisher=SIAM}}</ref>
 
उदाहरण के लिए, मैट्रिक्स
* सरणियाँ {{math|V}} और {{math|COL_INDEX}} लम्बाई {{math|NNZ}} की हैं, और गैर-शून्य मान और क्रमशः उन मानों के स्तंभ सूचकांक सम्मिलित करें।
* सरणी {{math|ROW_INDEX}} की लम्बाई {{math|''m'' + ''1''}} है और सूचकांक को {{math|V}} और {{math|COL_INDEX}} कोडित करता है जहां दी गई पंक्ति प्रारम्भ होती है। यह {{math|ROW_INDEX[j]}} के बराबर है जो पंक्ति {{math|j}} के ऊपर गैर शून्य की कुल संख्या को कोडित करता है। अंतिम अवयव {{math|NNZ}} है, अर्थात, अंतिम वैध सूचकांक {{math|NNZ - 1}} के तुरंत बाद {{Math|V}} काल्पनिक सूचकांक है। <ref>{{cite book |last1=Saad |first1=Yousef |title=विरल रेखीय प्रणालियों के लिए पुनरावृत्त तरीके|date=2003 |publisher=SIAM}}</ref>
उदाहरण के लिए, आव्यूह
<math display="block">\begin{pmatrix}
<math display="block">\begin{pmatrix}
5 & 0 & 0 & 0 \\
5 & 0 & 0 & 0 \\
Line 58: Line 59:
0 & 6 & 0 & 0 \\
0 & 6 & 0 & 0 \\
\end{pmatrix}</math>
\end{pmatrix}</math>
एक है {{math|4 × 4}} मैट्रिक्स 4 अशून्य तत्वों के साथ, इसलिए
4 गैर-शून्य अवयवों वाला {{math|4 × 4}} आव्यूह है, इसलिए
  वी = [5 8 3 6]
  V = [5 8 3 6]
  COL_INDEX = [ 0 1 2 1 ]
  COL_INDEX = [ 0 1 2 1 ]
  ROW_INDEX = [ 0 1 2 3 4 ]
  ROW_INDEX = [ 0 1 2 3 4 ]
एक शून्य-अनुक्रमित भाषा मानकर।
शून्य-अनुक्रमित भाषा मानता है।


एक पंक्ति निकालने के लिए, हम पहले परिभाषित करते हैं:
एक पंक्ति निकालने के लिए, हम पूर्व परिभाषित करते हैं:
  पंक्ति_प्रारंभ = ROW_INDEX [पंक्ति]
  row_start = ROW_INDEX [row]
  row_end = ROW_INDEX [पंक्ति + 1]
  row_end = ROW_INDEX [row + 1]


फिर हम V और COL_INDEX से स्लाइस लेते हैं जो row_start से शुरू होती है और row_end पर समाप्त होती है।
फिर हम V और COL_INDEX से भाग लेते हैं जो row_start से प्रारम्भ होती है और row_end पर समाप्त होती है।


इस मैट्रिक्स की पंक्ति 1 (दूसरी पंक्ति) निकालने के लिए हम सेट करते हैं <code>row_start=1</code> और <code>row_end=2</code>. फिर हम स्लाइस बनाते हैं <code>V[1:2] = [8]</code> और <code>COL_INDEX[1:2] = [1]</code>. अब हम जानते हैं कि पंक्ति 1 में हमारे पास स्तंभ 1 में मान 8 के साथ एक तत्व है।
इस आव्यूह की पंक्ति 1(दूसरी पंक्ति) निकालने के लिए हम <code>row_start=1</code> और <code>row_end=2</code>संग्रह करते हैं। फिर हम भाग <code>V[1:2] = [8]</code> और <code>COL_INDEX[1:2] = [1]</code>. बनाते हैं। अब हम जानते हैं कि पंक्ति 1 में हमारे समीप स्तंभ 1 में मान 8 के साथ एक अवयव है।


इस मामले में मूल मैट्रिक्स में 16 की तुलना में सीएसआर प्रतिनिधित्व में 13 प्रविष्टियां हैं। सीएसआर प्रारूप स्मृति पर तभी सहेजता है जब {{math|NNZ < (''m'' (''n'' − 1) − 1) / 2}}.
इस विषय में मूल आव्यूह में 16 की तुलना में सीएसआर प्रतिनिधित्व में 13 प्रविष्टियां हैं। सीएसआर प्रारूप मात्र {{math|NNZ < (''m'' (''n'' − 1) − 1) / 2}} पर मेमोरी पर सहेजता है।


एक अन्य उदाहरण, मैट्रिक्स
एक अन्य उदाहरण, आव्यूह
<math display="block">\begin{pmatrix}
<math display="block">\begin{pmatrix}
10 & 20 &  0 &  0 &  0 &  0 \\
10 & 20 &  0 &  0 &  0 &  0 \\
Line 81: Line 82:
  0 &  0 &  0 &  0 &  0 & 80 \\
  0 &  0 &  0 &  0 &  0 & 80 \\
\end{pmatrix}</math>
\end{pmatrix}</math>
एक है {{math|4 × 6}} मैट्रिक्स (24 प्रविष्टियाँ) 8 अशून्य तत्वों के साथ, इसलिए
एक {{math|4 × 6}} आव्यूह(24 प्रविष्टियाँ) जिसमें 8 अशून्य अवयव हैं, इसलिए
  वी = [10 20 30 40 50 60 70 80]
  V = [10 20 30 40 50 60 70 80]
  COL_INDEX = [ 0 1 1 3 2 3 4 5 ]
  COL_INDEX = [ 0 1 1 3 2 3 4 5 ]
  ROW_INDEX = [ 0 2 4 7 8 ]
  ROW_INDEX = [ 0 2 4 7 8 ]


संपूर्ण को 21 प्रविष्टियों के रूप में संग्रहीत किया जाता है: 8 इंच {{math|V}}, 8 इंच {{math|COL_INDEX}}, और 5 इन {{math|ROW_INDEX}}.
संपूर्ण को 21 प्रविष्टियों के रूप में संग्रहीत किया जाता है: {{math|V}} में 8, {{math|COL_INDEX}} में 8, और {{math|ROW_INDEX}} में 5।
 
* {{math|ROW_INDEX}} सरणी है {{math|V}} को पंक्तियों में विभाजित करता है:(<code>10, 20)(30, 40)(50, 60, 70)(80)</code>,{{math|V}}(और {{math|COL_INDEX}}) के सूचकांक को दर्शाता है जहां प्रत्येक पंक्ति प्रारम्भ और समाप्त होती है;
* {{math|COL_INDEX}} स्तंभों में मानों को संरेखित करता है:(<code>10, 20, ...)(0, 30, 0, 40, ...)(0, 0, 50, 60, 70, 0)(0, 0, 0, 0, 0, 80)</code>.
 
ध्यान दें कि इस प्रारूप में, {{math|ROW_INDEX}} का प्रथम मान सदैव शून्य होता है और अंतिम सदैव {{math|NNZ}} होता है, इसलिए वे कुछ अर्थ में अनावश्यक हैं(यद्यपि प्रोग्रामिंग भाषाओं में जहां सरणी लंबाई को स्पष्ट रूप से संग्रहीत करने की आवश्यकता होती है, {{math|NNZ}} अनावश्यक नहीं होगा)। फिर भी, यह प्रत्येक पंक्ति की लंबाई की गणना करते समय एक असाधारण विषय को संभालने की आवश्यकता से बचता है, क्योंकि यह सूत्र की गारंटी देता है {{math|ROW_INDEX[''i'' + 1] − ROW_INDEX[''i'']}} किसी भी पंक्ति {{math|''i''}} के लिए काम करता है। इसके अतिरिक्त, पर्याप्त रूप से बड़े आव्यूह के लिए इस अनावश्यक संग्रहण की मेमोरी लागत संभवतः नगण्य है।


* {{math|ROW_INDEX}} सरणी को विभाजित करता है {{math|V}} पंक्तियों में: <code>(10, 20) (30, 40) (50, 60, 70) (80)</code>, के सूचकांक को दर्शाता है {{math|V}} (और {{math|COL_INDEX}}) जहां प्रत्येक पंक्ति शुरू और समाप्त होती है;
(प्राचीन और नवीन) येल विरल आव्यूह प्रारूप सीएसआर पद्धति के उदाहरण हैं। प्राचीन येल प्रारूप ठीक ऊपर बताए अनुसार काम करता है, तीन सरणियों के साथ; नवीन स्वरूप {{math|ROW_INDEX}} और {{math|COL_INDEX}} को एकल सरणी में जोड़ता है और आव्यूह के विकर्ण को अलग से संभालता है।<ref>{{citation |title=Sparse Matrix Multiplication Package (SMMP) |first1=Randolph E. |last1=Bank |first2=Craig C. |last2=Douglas |journal=Advances in Computational Mathematics |volume=1 |year=1993 |pages=127–137 |doi=10.1007/BF02070824 |s2cid=6412241 |url=http://www.mgnet.org/~douglas/Preprints/pub0034.pdf}}</ref>
* {{math|COL_INDEX}} कॉलम में मान संरेखित करता है: <code>(10, 20, ...) (0, 30, 0, 40, ...)(0, 0, 50, 60, 70, 0) (0, 0, 0, 0, 0, 80)</code>.


ध्यान दें कि इस प्रारूप में, का पहला मान {{math|ROW_INDEX}} हमेशा शून्य होता है और अंतिम हमेशा होता है {{math|NNZ}}, इसलिए वे कुछ मायने में अनावश्यक हैं (हालांकि प्रोग्रामिंग भाषाओं में जहां सरणी लंबाई को स्पष्ट रूप से संग्रहीत करने की आवश्यकता होती है, {{math|NNZ}} अनावश्यक नहीं होगा)। बहरहाल, यह प्रत्येक पंक्ति की लंबाई की गणना करते समय एक असाधारण मामले को संभालने की आवश्यकता से बचता है, क्योंकि यह सूत्र की गारंटी देता है {{math|ROW_INDEX[''i'' + 1] − ROW_INDEX[''i'']}} किसी भी पंक्ति के लिए काम करता है {{math|''i''}}. इसके अलावा, पर्याप्त रूप से बड़े मैट्रिक्स के लिए इस अनावश्यक भंडारण की स्मृति लागत संभवतः नगण्य है।
तार्किक निकटता आव्यूह के लिए, डेटा सरणी को छोड़ा जा सकता है, क्योंकि पंक्ति सरणी में एक प्रविष्टि का अस्तित्व द्विआधारी आसन्न संबंध को मॉडल करने के लिए पर्याप्त है।


(पुराने और नए) येल स्पार्स मैट्रिक्स प्रारूप सीएसआर योजना के उदाहरण हैं। पुराना येल प्रारूप ठीक ऊपर बताए अनुसार काम करता है, तीन सरणियों के साथ; नया स्वरूप जोड़ता है {{math|ROW_INDEX}} और {{math|COL_INDEX}} एकल सरणी में और मैट्रिक्स के विकर्ण को अलग से संभालता है।<ref>{{citation |title=Sparse Matrix Multiplication Package (SMMP) |first1=Randolph E. |last1=Bank |first2=Craig C. |last2=Douglas |journal=Advances in Computational Mathematics |volume=1 |year=1993 |pages=127–137 |doi=10.1007/BF02070824 |s2cid=6412241 |url=http://www.mgnet.org/~douglas/Preprints/pub0034.pdf}}</ref>
यह संभवतः येल प्रारूप के रूप में जाना जाता है क्योंकि यह येल विश्वविद्यालय में कंप्यूटर विज्ञान विभाग से 1977 येल विरल आव्यूह पैकेज विवरण में प्रस्तावित किया गया था।<ref>{{cite web |url=https://apps.dtic.mil/dtic/tr/fulltext/u2/a047724.pdf |archive-url=https://web.archive.org/web/20190406045412/https://apps.dtic.mil/dtic/tr/fulltext/u2/a047724.pdf |url-status=live |archive-date=April 6, 2019 |title=येल स्पार्स मैट्रिक्स पैकेज|last1=Eisenstat  |first1=S. C. |last2=Gursky |first2=M. C. |last3=Schultz |first3=M. H. |last4=Sherman |first4=A. H. |date=April 1977 |language=English |access-date=6 April 2019 }}</ref>
लॉजिकल मैट्रिक्स एडजेंसी मैट्रिक्स के लिए, डेटा सरणी को छोड़ा जा सकता है, क्योंकि पंक्ति सरणी में एक प्रविष्टि का अस्तित्व बाइनरी आसन्न संबंध को मॉडल करने के लिए पर्याप्त है।


यह संभवतः येल प्रारूप के रूप में जाना जाता है क्योंकि यह येल विश्वविद्यालय में कंप्यूटर विज्ञान विभाग से 1977 येल स्पार्स मैट्रिक्स पैकेज रिपोर्ट में प्रस्तावित किया गया था।<ref>{{cite web |url=https://apps.dtic.mil/dtic/tr/fulltext/u2/a047724.pdf |archive-url=https://web.archive.org/web/20190406045412/https://apps.dtic.mil/dtic/tr/fulltext/u2/a047724.pdf |url-status=live |archive-date=April 6, 2019 |title=येल स्पार्स मैट्रिक्स पैकेज|last1=Eisenstat  |first1=S. C. |last2=Gursky |first2=M. C. |last3=Schultz |first3=M. H. |last4=Sherman |first4=A. H. |date=April 1977 |language=English |access-date=6 April 2019 }}</ref>




===संपीड़ित विरल स्तंभ (सीएससी या सीसीएस)===
===संपीड़ित विरल स्तंभ(सीएससी या सीसीएस)===


[http://netlib.org/linalg/html_templates/node92.html#SECTION00931200000000000000 सीएससी] सीएसआर के समान है सिवाय इसके कि मान पहले कॉलम द्वारा पढ़े जाते हैं, प्रत्येक मान के लिए एक पंक्ति अनुक्रमणिका संग्रहीत की जाती है, और कॉलम पॉइंटर्स संग्रहीत किए जाते हैं। उदाहरण के लिए, सीएससी है {{math|(val, row_ind, col_ptr)}}, कहाँ {{math|val}} मैट्रिक्स के गैर-शून्य मानों (ऊपर से नीचे, फिर बाएं से दाएं) की एक सरणी है; {{math|row_ind}} मूल्यों के अनुरूप पंक्ति सूचकांक है; और, {{math|col_ptr}} की सूची है {{math|val}} अनुक्रमित करता है जहां प्रत्येक कॉलम शुरू होता है। नाम इस तथ्य पर आधारित है कि स्तंभ अनुक्रमणिका जानकारी सीओओ प्रारूप के सापेक्ष संकुचित होती है। एक आम तौर पर निर्माण के लिए दूसरे प्रारूप (एलआईएल, डीओके, सीओओ) का उपयोग करता है। यह प्रारूप अंकगणितीय संचालन, कॉलम स्लाइसिंग और मैट्रिक्स-वेक्टर उत्पादों के लिए कुशल है। देखें [http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csc_matrix.html scipy.sparse.csc_matrix]MATLAB में स्पार्स मैट्रिक्स निर्दिष्ट करने के लिए यह पारंपरिक प्रारूप है ([https://www.mathworks.com/help/matlab/ref/sparse.html के माध्यम से) <code>sparse</code>] समारोह)
[http://netlib.org/linalg/html_templates/node92.html#SECTION00931200000000000000 सीएससी] सीएसआर के समान है अतिरिक्त इसके कि मान पूर्व स्तंभ द्वारा पढ़े जाते हैं, प्रत्येक मान के लिए एक पंक्ति सूचकांक संग्रहीत की जाती है, और स्तंभ सूचक संग्रहीत किए जाते हैं। उदाहरण के लिए, सीएससी {{math|(val, row_ind, col_ptr)}} है, जहां {{math|val}} सरणी के गैर-शून्य मानों(ऊपर से नीचे, फिर बाएं से दाएं) की एक आव्यूह है; {{math|row_ind}} मानों के अनुरूप पंक्ति सूचकांक है; और, {{math|col_ptr}} {{math|val}} की सूची है जहां प्रत्येक स्तंभ प्रारम्भ होता है। नाम इस तथ्य पर आधारित है कि स्तंभ सूचकांक जानकारी सीओओ प्रारूप के सापेक्ष संकुचित होती है। एक सामान्यतः निर्माण के लिए दूसरे प्रारूप(एलआईएल, डीओके, सीओओ) का उपयोग करता है। यह प्रारूप अंकगणितीय संचालन, स्तंभ प्रखंड और आव्यूह-सदिश उत्पादों के लिए दक्ष है। [http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csc_matrix.html स्कीपी.विरल.csc_matrix] देखें। यह MATLAB([https://www.mathworks.com/help/matlab/ref/sparse.html <code>विरल</code> चर के माध्यम से] ) में विरल आव्यूह निर्दिष्ट करने के लिए यह पारंपरिक प्रारूप है।


== विशेष संरचना ==
== विशेष संरचना ==


=== बंधी हुई ===
=== पट्टित ===
{{main article|Band matrix}}
{{main article| बैंड आव्यूह}}
विरल मैट्रिक्स का एक महत्वपूर्ण विशेष प्रकार [[बैंड मैट्रिक्स]] है, जिसे निम्नानुसार परिभाषित किया गया है। एक मैट्रिक्स की निचली बैंडविड्थ {{math|'''A'''}} सबसे छोटी संख्या है {{math|''p''}} जैसे कि प्रविष्टि {{math|''a''<sub>''i'',''j''</sub>}} जब भी गायब हो जाता है {{math|''i'' > ''j'' + ''p''}}. इसी तरह, बैंड मैट्रिक्स#ऊपरी बैंडविड्थ सबसे छोटी संख्या है {{math|''p''}} ऐसा है कि {{math|1=''a''<sub>''i'',''j''</sub> = 0}} जब कभी भी {{math|''i'' < ''j'' − ''p''}} {{harv|Golub|Van Loan|1996|loc=§1.2.1}}. उदाहरण के लिए, एक त्रिभुज मैट्रिक्स में कम बैंडविड्थ होती है {{math|1}} और ऊपरी बैंडविड्थ {{math|1}}. एक अन्य उदाहरण के रूप में, निम्नलिखित विरल मैट्रिक्स में निम्न और ऊपरी बैंडविड्थ दोनों 3 के बराबर हैं। ध्यान दें कि शून्य को स्पष्टता के लिए डॉट्स के साथ दर्शाया गया है।
 
विरल आव्यूह का एक महत्वपूर्ण विशेष प्रकार [[बैंड मैट्रिक्स|बैंड आव्यूह]] है, जिसे निम्नानुसार परिभाषित किया गया है। आव्यूह {{math|'''A'''}} की निम्न बैंडविड्थ सबसे छोटी संख्या {{math|''p''}} है जैसे कि प्रविष्टि {{math|''a''<sub>''i'',''j''</sub>}} अनुपस्थित हो जाता है जब भी {{math|''i'' > ''j'' + ''p''}}. इसी प्रकार, ऊपरी बैंडविड्थ सबसे छोटी संख्या {{math|''p''}} है जैसे कि {{math|1=''a''<sub>''i'',''j''</sub> = 0}} जब भी {{math|''i'' < ''j'' − ''p''}} {{harv|गोलूब|वैन लोन|1996|loc=§1.2.1}}उदाहरण के लिए, एक त्रिभुज आव्यूह में निम्न बैंडविड्थ {{math|1}} और ऊपरी बैंडविड्थ {{math|1}} है। एक अन्य उदाहरण के रूप में, निम्नलिखित विरल आव्यूह में निम्न और ऊपरी बैंडविड्थ दोनों 3 के बराबर हैं। ध्यान दें कि शून्य को स्पष्टता के लिए बिंदु के साथ दर्शाया गया है।
<math display="block">\begin{bmatrix}
<math display="block">\begin{bmatrix}
   X  &  X  &  X  & \cdot & \cdot & \cdot & \cdot & \\
   X  &  X  &  X  & \cdot & \cdot & \cdot & \cdot & \\
Line 117: Line 121:
\cdot & \cdot & \cdot & \cdot &  X  & \cdot &  X  & \\               
\cdot & \cdot & \cdot & \cdot &  X  & \cdot &  X  & \\               
\end{bmatrix}</math>
\end{bmatrix}</math>
उचित रूप से छोटे ऊपरी और निचले बैंडविड्थ वाले मेट्रिसेस को बैंड मैट्रिसेस के रूप में जाना जाता है और अक्सर सामान्य विरल मैट्रिसेस की तुलना में सरल एल्गोरिदम के लिए खुद को उधार देते हैं; या कोई कभी-कभी घने मैट्रिक्स एल्गोरिदम लागू कर सकता है और कम संख्या में सूचकांकों पर लूप करके दक्षता हासिल कर सकता है।
उचित रूप से छोटे ऊपरी और निचले बैंडविड्थ वाले आव्यूह को बैंड आव्यूह के रूप में जाना जाता है और प्रायः सामान्य विरल आव्यूह की तुलना में सरल एल्गोरिदम के लिए स्वयं को उधार देते हैं; या कोई कभी-कभी घने आव्यूह एल्गोरिदम लागू कर सकता है और कम संख्या में सूचकांकों पर लूप करके दक्षता प्राप्त कर सकता है।


मैट्रिक्स की पंक्तियों और स्तंभों को पुनर्व्यवस्थित करके {{math|'''A'''}} मैट्रिक्स प्राप्त करना संभव हो सकता है {{math|'''A'''′}} कम बैंडविड्थ के साथ। [[ग्राफ बैंडविड्थ]] के लिए कई एल्गोरिदम डिज़ाइन किए गए हैं।
आव्यूह {{math|'''A'''}} की पंक्तियों और स्तंभों को पुनर्व्यवस्थित करके निम्न बैंडविड्थ के साथ {{math|'''A'''′}} आव्यूह प्राप्त करना संभव हो सकता है। [[ग्राफ बैंडविड्थ]] के लिए कई एल्गोरिदम डिज़ाइन किए गए हैं।


=== विकर्ण ===
=== विकर्ण ===
बैंड मेट्रिसेस, [[विकर्ण मैट्रिक्स]] के एक चरम मामले के लिए एक बहुत ही कुशल संरचना, केवल [[मुख्य विकर्ण]] में प्रविष्टियों को [[एक आयामी सरणी]] के रूप में संग्रहीत करना है, इसलिए एक विकर्ण {{math|''n'' × ''n''}} मैट्रिक्स केवल की आवश्यकता है {{math|''n''}} प्रविष्टियां।
बैंड आव्यूह, [[विकर्ण मैट्रिक्स|विकर्ण आव्यूह]] के एक परम विषय के लिए बहुत ही दक्ष संरचना, मात्र [[मुख्य विकर्ण]] में प्रविष्टियों को [[एक आयामी सरणी]] के रूप में संग्रहीत करना है, इसलिए एक विकर्ण {{math|''n'' × ''n''}} आव्यूह को मात्र {{math|''n''}} प्रविष्टियां की आवश्यकता होती है।


=== सममित ===
=== सममित ===
एक सममित विरल मैट्रिक्स एक [[अप्रत्यक्ष ग्राफ]] के आसन्न मैट्रिक्स के रूप में उत्पन्न होता है; इसे [[निकटता सूची]] के रूप में कुशलतापूर्वक संग्रहीत किया जा सकता है।
सममित विरल आव्यूह एक [[अप्रत्यक्ष ग्राफ]] के आसन्न आव्यूह के रूप में उत्पन्न होता है; इसे [[निकटता सूची]] के रूप में दक्षतापूर्वक संग्रहीत किया जा सकता है।


=== ब्लॉक विकर्ण ===
=== खंड विकर्ण ===
एक [[ब्लॉक-विकर्ण मैट्रिक्स]] में इसके विकर्ण ब्लॉकों के साथ उप-मैट्रिसेस होते हैं। एक ब्लॉक-विकर्ण मैट्रिक्स {{math|'''A'''}} का रूप है
एक [[ब्लॉक-विकर्ण मैट्रिक्स|खंड-विकर्ण आव्यूह]] में इसके विकर्ण खंडों के साथ उप-आव्यूह होते हैं। एक खंड-विकर्ण आव्यूह {{math|'''A'''}} का रूप है
<math display="block">\mathbf{A} = \begin{bmatrix}  
<math display="block">\mathbf{A} = \begin{bmatrix}  
   \mathbf{A}_1 & 0            & \cdots & 0            \\
   \mathbf{A}_1 & 0            & \cdots & 0            \\
Line 135: Line 139:
   0            & 0            & \cdots & \mathbf{A}_n
   0            & 0            & \cdots & \mathbf{A}_n
\end{bmatrix},</math>
\end{bmatrix},</math>
कहाँ {{math|'''A'''<sub>''k''</sub>}} सभी के लिए एक वर्ग मैट्रिक्स है {{math|1=''k'' = 1, ..., ''n''}}.
जहाँ{{math|'''A'''<sub>''k''</sub>}} सभी {{math|1=''k'' = 1, ..., ''n''}} के लिए एक वर्ग आव्यूह है।


== फिल-इन को कम करना ==
== फिल-इन को कम करना ==


एक मैट्रिक्स का भरण वे प्रविष्टियाँ हैं जो एक एल्गोरिथ्म के निष्पादन के दौरान प्रारंभिक शून्य से गैर-शून्य मान में बदल जाती हैं। एल्गोरिथ्म के दौरान उपयोग की जाने वाली मेमोरी आवश्यकताओं और अंकगणितीय संचालन की संख्या को कम करने के लिए, मैट्रिक्स में पंक्तियों और स्तंभों को स्विच करके फिल-इन को कम करना उपयोगी होता है। वास्तविक [[चोल्स्की अपघटन]] करने से पहले [[प्रतीकात्मक चोलस्की अपघटन]] का उपयोग सबसे खराब संभव भरने की गणना के लिए किया जा सकता है।
आव्यूह का फिल-इन वे प्रविष्टियाँ हैं जो एक एल्गोरिथ्म के निष्पादन के समय प्रारंभिक शून्य से गैर-शून्य मान में बदल जाती हैं। एल्गोरिथ्म के समय उपयोग की जाने वाली मेमोरी आवश्यकताओं और अंकगणितीय संचालन की संख्या को कम करने के लिए, आव्यूह में पंक्तियों और स्तंभों को स्विच करके फिल-इन को कम करना उपयोगी होता है। वास्तविक [[चोल्स्की अपघटन]] करने से पूर्व [[प्रतीकात्मक चोलस्की अपघटन]] का उपयोग सबसे अल्प संभव फिल-इन की गणना के लिए किया जा सकता है।


उपयोग में चॉल्स्की अपघटन के अलावा अन्य विधियां भी हैं। ऑर्थोगोनलाइज़ेशन मेथड्स (जैसे क्यूआर फ़ैक्टराइज़ेशन) आम हैं, उदाहरण के लिए, कम से कम वर्ग विधियों द्वारा समस्याओं को हल करते समय। जबकि सैद्धांतिक भराव अभी भी समान है, व्यावहारिक रूप से झूठे गैर-शून्य अलग-अलग तरीकों के लिए अलग-अलग हो सकते हैं। और उन एल्गोरिदम के प्रतीकात्मक संस्करणों का उपयोग उसी तरह से किया जा सकता है जैसे प्रतीकात्मक चोलस्की सबसे खराब स्थिति भरने की गणना करने के लिए।
उपयोग में चॉल्स्की अपघटन के अतिरिक्त अन्य विधियां भी हैं। लांबिकीकरण विधि(जैसे क्यूआर गुणन) सामान्य हैं, उदाहरण के लिए, कम से कम वर्ग विधियों द्वारा समस्याओं को हल करते समय। जबकि सैद्धांतिक फिल-इन अभी भी समान है, वास्तविक रूप से असत्य गैर-शून्य अलग-अलग विधियों के लिए अलग-अलग हो सकते हैं। और उन एल्गोरिदम के प्रतीकात्मक संस्करणों का उपयोग उसी प्रकार से किया जा सकता है जैसे प्रतीकात्मक चोलस्की सबसे अल्प स्थिति फिल-इन की गणना करने के लिए किया जा सकता है।


== विरल मैट्रिक्स समीकरणों को हल करना ==
== विरल आव्यूह समीकरणों को हल करना ==


स्पैर मैट्रिक्स सॉल्विंग के लिए इटरेटिव मेथड और डायरेक्ट मेथड्स दोनों मौजूद हैं।
विरल आव्यूह को हल करने के लिए पुनरावृत्त और प्रत्यक्ष दोनों विधियाँ स्थित हैं।


[[पुनरावर्ती विधि]]याँ, जैसे कि [[संयुग्मी ढाल]] विधि और [[GMRES]] मैट्रिक्स-वेक्टर उत्पादों की तीव्र संगणना का उपयोग करते हैं <math>A x_i</math>, जहां मैट्रिक्स <math>A</math> विरल है। [[पूर्व शर्त]] का उपयोग इस तरह के पुनरावृत्त तरीकों के अभिसरण को महत्वपूर्ण रूप से तेज कर सकता है।
[[पुनरावर्ती विधि|पुनरावर्ती विधियाँ]], जैसे कि [[संयुग्मी ढाल]] विधि और [[GMRES|जीएमआरईएस]] आव्यूह-सदिश उत्पादों <math>A x_i</math> की तीव्र संगणना का उपयोग करती हैं, जहाँ आव्यूह <math>A</math> विरल है। [[पूर्व शर्त|पूर्व स्थिति]] का उपयोग इस प्रकार के पुनरावृत्त विधियों के अभिसरण को महत्वपूर्ण रूप से तीव्र कर सकता है।


== सॉफ्टवेयर ==
== सॉफ्टवेयर ==


कई सॉफ्टवेयर पुस्तकालय विरल मैट्रिसेस का समर्थन करते हैं, और विरल मैट्रिक्स समीकरणों के लिए सॉल्वर प्रदान करते हैं। निम्नलिखित ओपन-सोर्स हैं:
कई सॉफ्टवेयर लाइब्रेरियां विरल आव्यूह का समर्थन करते हैं, और विरल आव्यूह समीकरणों के लिए हलकर्ता प्रदान करते हैं। निम्नलिखित खुला-स्त्रोत हैं:
* [http://facademy.cse.tamu.edu/davis/suitesparse.html SuiteSparse], विरल मैट्रिक्स एल्गोरिद्म का एक सूट, जो विरल रेखीय प्रणालियों के प्रत्यक्ष समाधान की ओर अग्रसर है।
* [http://facademy.cse.tamu.edu/davis/suitesparse.html सूटविरल], विरल आव्यूह एल्गोरिद्म का एक सूट, जो विरल रेखीय प्रणालियों के प्रत्यक्ष हल की ओर अग्रसर है।
* वैज्ञानिक संगणना के लिए पोर्टेबल, एक्स्टेंसिबल टूलकिट, एक बड़ी सी लाइब्रेरी, जिसमें विभिन्न प्रकार के मैट्रिक्स स्टोरेज फॉर्मेट के लिए कई अलग-अलग मैट्रिक्स सॉल्वर हैं।
* वैज्ञानिक संगणना के लिए पोर्टेबल, एक्स्टेंसिबल टूलकिट, एक बड़ी सी लाइब्रेरी, जिसमें विभिन्न प्रकार के आव्यूह संग्रहीतीव्र प्रारूप के लिए कई अलग-अलग आव्यूह हलकर्ता हैं।
* [[Trilinos]], एक बड़ी [[मालिकाना (सी ++ पुस्तकालय)]], घने और विरल मैट्रिसेस के भंडारण और संबंधित रैखिक प्रणालियों के समाधान के लिए समर्पित उप-पुस्तकालयों के साथ।
* [[Trilinos|ट्रिलिनोस]], एक बड़ी([[मालिकाना (सी ++ पुस्तकालय)|सी ++ लाइब्रेरी)]], घने और विरल आव्यूह के संग्रहण और संबंधित रैखिक प्रणालियों के हल के लिए समर्पित उप-लाइब्रेरीों के साथ।
* Eigen (C++ लाइब्रेरी) एक C++ लाइब्रेरी है जिसमें कई विरल मैट्रिक्स सॉल्वर हैं। हालाँकि, उनमें से कोई भी [[समानांतर कंप्यूटिंग]] नहीं है।
* आइजन(C++ लाइब्रेरी) एक C++ लाइब्रेरी है जिसमें कई विरल आव्यूह हलकर्ता हैं। यद्यपि, उनमें से कोई भी [[समानांतर कंप्यूटिंग]] नहीं है।
* MUMPS (सॉफ्टवेयर) (MUltifrontal Massively Parallel sparse direct Solver), जिसे Fortran90 में लिखा गया है, एक [[ ललाट सॉल्वर ]] है।
* एमयूएमपीएस(सॉफ्टवेयर)(मल्टीफ्रंटल व्यापक रूप से समानांतर विरल प्रत्यक्ष हलकर्ता), जिसे फोरट्रान90 में लिखा गया है, एक [[ ललाट सॉल्वर |अग्र हलकर्ता]] है।
* Deal.II, एक परिमित तत्व पुस्तकालय जिसमें विरल रैखिक प्रणालियों और उनके समाधान के लिए एक उप-पुस्तकालय भी है।
* डील.II, एक परिमित अवयव लाइब्रेरी जिसमें विरल रैखिक प्रणालियों और उनके हल के लिए एक उप-लाइब्रेरी भी है।
* Dune_(सॉफ्टवेयर), एक अन्य परिमित तत्व पुस्तकालय जिसमें विरल रैखिक प्रणालियों और उनके समाधान के लिए एक उप-पुस्तकालय भी है।
* डून_(सॉफ्टवेयर), एक अन्य परिमित अवयव लाइब्रेरी जिसमें विरल रैखिक प्रणालियों और उनके हल के लिए एक उप-लाइब्रेरी भी है।
* [http://pastix.gforge.inria.fr/ PaStix]।
* [http://pastix.gforge.inria.fr/ पेस्टिक्स]।
* [http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ SuperLU]।
* [http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ सुपरएलयू]।
* [[अर्माडिलो (C++ लाइब्रेरी)]] BLAS और LAPACK के लिए उपयोगकर्ता के अनुकूल C++ रैपर प्रदान करता है।
* [[अर्माडिलो (C++ लाइब्रेरी)|अर्माडिलो(C++ लाइब्रेरी)]] बीएलएएस और एलएपैक के लिए उपयोगकर्ता के अनुकूल C++ आवरण प्रदान करता है।
* [[SciPy]] कई विरल मैट्रिक्स स्वरूपों, रैखिक बीजगणित और सॉल्वरों के लिए समर्थन प्रदान करता है।
* [[SciPy|स्कीपी]] कई विरल आव्यूह स्वरूपों, रैखिक बीजगणित और हलकर्ता के लिए समर्थन प्रदान करता है।
* [https://cran.r-project.org/web/packages/spam/index.html SPArse मैट्रिक्स (स्पैम)] विरल मैट्रिक्स के लिए आर और पायथन पैकेज।
* [https://cran.r-project.org/web/packages/spam/index.html विरल आव्यूह(स्पैम)] विरल आव्यूह के लिए आर और पायथन पैकेज।
* [https://reference.wolfram.com/language/guide/SparseArrays.html वोल्फ्राम भाषा] विरल सरणियों को संभालने के लिए उपकरण
* [https://reference.wolfram.com/language/guide/SparseArrays.html वोल्फ्राम भाषा] विरल सरणियों को संभालने के लिए उपकरण
* [[ALGLIB]] विरल रेखीय बीजगणित समर्थन के साथ एक C++ और C# पुस्तकालय है
* [[ALGLIB|एएलजीएलआईबी]] विरल रेखीय बीजगणित समर्थन के साथ एक C++ और C लाइब्रेरी है
* अर्नोल्डी एल्गोरिथम का उपयोग करते हुए विरल मैट्रिक्स विकर्णीकरण और हेरफेर के लिए [[ARPACK]] फोरट्रान 77 पुस्तकालय
* अर्नोल्डी एल्गोरिथम का उपयोग करते हुए विरल आव्यूह विकर्णीकरण और परिचालन के लिए [[ARPACK|एआरपैक]] फोरट्रान 77 लाइब्रेरी
* [https://www.netlib.org/sparse/ SPARSE] संदर्भ (पुराना) [[एनआईएसटी]] पैकेज (वास्तविक या जटिल) विरल मैट्रिक्स विकर्णकरण के लिए
* [https://www.netlib.org/sparse/ विरल] संदर्भ(प्राचीन) [[एनआईएसटी]] पैकेज(वास्तविक या जटिल) विरल आव्यूह विकर्णकरण के लिए
* बड़े पैमाने पर रैखिक प्रणालियों और विरल मैट्रिसेस के समाधान के लिए [[एसएलईपीसी]] लाइब्रेरी
* बड़े पैमाने पर रैखिक प्रणालियों और विरल आव्यूह के हल के लिए [[एसएलईपीसी]] लाइब्रेरी
* [https://www.sympiler.com/ Sympiler], एक डोमेन-विशिष्ट कोड जनरेटर और पुस्तकालय रैखिक प्रणालियों और द्विघात प्रोग्रामिंग समस्याओं को हल करने के लिए।
* [https://www.sympiler.com/ सिम्पलर], एक डोमेन-विशिष्ट कोड जनित्र और लाइब्रेरी रैखिक प्रणालियों और द्विघात प्रोग्रामिंग समस्याओं को हल करने के लिए।
* [[scikit-सीखें]], [[ यंत्र अधिगम ]] के लिए एक पायथन लाइब्रेरी, विरल मैट्रिसेस और सॉल्वर के लिए सहायता प्रदान करता है।
* [[scikit-सीखें|एससीआईकेआईटी-लर्न]], [[ यंत्र अधिगम |यंत्र अधिगम]] के लिए एक पायथन लाइब्रेरी, विरल आव्यूह और हलकर्ता के लिए सहायता प्रदान करता है।
* [https://crates.io/crates/sprs sprs] शुद्ध रस्ट में विरल मैट्रिक्स डेटा संरचनाओं और रैखिक बीजगणित एल्गोरिदम को लागू करता है।
* [https://crates.io/crates/sprs एसपीआरएस] शुद्ध रस्ट में विरल आव्यूह डेटा संरचनाओं और रैखिक बीजगणित एल्गोरिदम को लागू करता है।
* [https://basic-matrix-library.readthedocs.io/en/latest/ बेसिक मैट्रिक्स लाइब्रेरी (बीएमएल)] सी, सी++ और फोरट्रान के लिए बाइंडिंग के साथ कई विरल मैट्रिक्स स्वरूपों और रैखिक बीजगणित एल्गोरिदम का समर्थन करता है।
* [https://basic-matrix-library.readthedocs.io/en/latest/ बेसिक आव्यूह लाइब्रेरी(बीएमएल)] सी, सी++ और फोरट्रान के लिए बंधनकारक के साथ कई विरल आव्यूह स्वरूपों और रैखिक बीजगणित एल्गोरिदम का समर्थन करता है।


== इतिहास ==
== इतिहास ==
स्पार्स मैट्रिक्स शब्द संभवतः [[हैरी मार्कोविट्ज़]] द्वारा गढ़ा गया था जिन्होंने कुछ अग्रणी कार्य शुरू किए लेकिन फिर क्षेत्र छोड़ दिया।<ref>[http://purl.umn.edu/107467 Oral history interview with Harry M. Markowitz], pp. 9, 10.</ref>
विरल आव्यूह शब्द संभवतः [[हैरी मार्कोविट्ज़]] द्वारा गढ़ा गया था जिन्होंने कुछ अग्रणी कार्य प्रारम्भ किए परन्तु फिर क्षेत्र छोड़ दिया।<ref>[http://purl.umn.edu/107467 Oral history interview with Harry M. Markowitz], pp. 9, 10.</ref>




== यह भी देखें ==
== यह भी देखें ==
{{columns-list|colwidth=22em|
{{columns-list|colwidth=22em|
* [[Matrix representation]]
* [[आव्यूह प्रतिरूप]]
* [[Pareto principle]]
* [[पारेतो सिद्धांत]]
* [[Ragged matrix]]
* [[अस्थायी आव्यूह]]
* [[Single-entry matrix]]
* [[एकल प्रविष्टिआव्यूह]]
* [[Skyline matrix]]
* [[क्षितिज आव्यूह]]
* [[Sparse graph code]]
* [[विरल ग्राफ कोड]]
* [[Sparse file]]
* [[विरल फ़ाइल]]
* [[Harwell-Boeing file format]]
* [[हार्वेल-बोइंग फ़ाइल प्रारूप]]
* [[Matrix Market exchange formats]]
* [[आव्यूह बाजार विनिमय प्रारूप]]
}}
}}


Line 198: Line 202:
* {{Cite book | first1=Gene H. | last1=Golub | author1-link=Gene H. Golub | first2=Charles F. | last2=Van Loan | author2-link=Charles F. Van Loan | year=1996 | title=Matrix Computations | edition=3rd | publisher=Johns Hopkins | place=Baltimore | isbn=978-0-8018-5414-9 }}
* {{Cite book | first1=Gene H. | last1=Golub | author1-link=Gene H. Golub | first2=Charles F. | last2=Van Loan | author2-link=Charles F. Van Loan | year=1996 | title=Matrix Computations | edition=3rd | publisher=Johns Hopkins | place=Baltimore | isbn=978-0-8018-5414-9 }}
* {{Cite book | last1=Stoer | first1=Josef | last2=Bulirsch | first2=Roland | title=Introduction to Numerical Analysis | publisher=[[Springer-Verlag]] | location=Berlin, New York | edition=3rd | isbn=978-0-387-95452-3 | year=2002}}
* {{Cite book | last1=Stoer | first1=Josef | last2=Bulirsch | first2=Roland | title=Introduction to Numerical Analysis | publisher=[[Springer-Verlag]] | location=Berlin, New York | edition=3rd | isbn=978-0-387-95452-3 | year=2002}}
* {{Cite book | last=Tewarson| first=Reginald P.|title=Sparse Matrices (Part of the Mathematics in Science & Engineering series)|publisher= Academic Press Inc.|date=May 1973}} (This book, by a professor at the State University of New York at Stony Book, was the first book exclusively dedicated to Sparse Matrices. Graduate courses using this as a textbook were offered at that University in the early 1980s).
* {{Cite book | last=Tewarson| first=Reginald P.|title=Sparse Matrices (Part of the Mathematics in Science & Engineering series)|publisher= Academic Press Inc.|date=May 1973}}(This book, by a professor at the State University of New York at Stony Book, was the first book exclusively dedicated to विरल Matrices. Graduate courses using this as a textbook were offered at that University in the early 1980s).
* {{Cite web |title=Sparse Matrix Multiplication Package|first1= Randolph E.|last1= Bank|first2= Craig C.|last2= Douglas |url=http://www.mgnet.org/~douglas/Preprints/pub0034.pdf}}
* {{Cite web |title=Sparse Matrix Multiplication Package|first1= Randolph E.|last1= Bank|first2= Craig C.|last2= Douglas |url=http://www.mgnet.org/~douglas/Preprints/pub0034.pdf}}
* {{Cite book |last=Pissanetzky|first= Sergio|year= 1984|title=Sparse Matrix Technology|url=https://archive.org/details/sparsematrixtech0000piss|url-access=registration|publisher= Academic Press|isbn= 9780125575805}}
* {{Cite book |last=Pissanetzky|first= Sergio|year= 1984|title=Sparse Matrix Technology|url=https://archive.org/details/sparsematrixtech0000piss|url-access=registration|publisher= Academic Press|isbn= 9780125575805}}
Line 207: Line 211:
* {{cite journal | title = A comparison of several bandwidth and profile reduction algorithms | journal = ACM Transactions on Mathematical Software | year = 1976 | volume = 2 | issue = 4 | pages = 322–330 | url = http://portal.acm.org/citation.cfm?id=355707 | doi = 10.1145/355705.355707 | last1 = Gibbs | first1 = Norman E. | last2 = Poole | first2 = William G. | last3 = Stockmeyer | first3 = Paul K.  | s2cid = 14494429 }}
* {{cite journal | title = A comparison of several bandwidth and profile reduction algorithms | journal = ACM Transactions on Mathematical Software | year = 1976 | volume = 2 | issue = 4 | pages = 322–330 | url = http://portal.acm.org/citation.cfm?id=355707 | doi = 10.1145/355705.355707 | last1 = Gibbs | first1 = Norman E. | last2 = Poole | first2 = William G. | last3 = Stockmeyer | first3 = Paul K.  | s2cid = 14494429 }}
* {{cite journal | title = Sparse matrices in MATLAB: Design and Implementation | journal = SIAM Journal on Matrix Analysis and Applications | year = 1992 | volume = 13 | issue = 1 | pages = 333–356 | url = http://citeseer.ist.psu.edu/gilbert91sparse.html | doi = 10.1137/0613024 | last1 = Gilbert | first1 = John R. | last2 = Moler | first2 = Cleve | last3 = Schreiber | first3 = Robert | citeseerx = 10.1.1.470.1054 }}
* {{cite journal | title = Sparse matrices in MATLAB: Design and Implementation | journal = SIAM Journal on Matrix Analysis and Applications | year = 1992 | volume = 13 | issue = 1 | pages = 333–356 | url = http://citeseer.ist.psu.edu/gilbert91sparse.html | doi = 10.1137/0613024 | last1 = Gilbert | first1 = John R. | last2 = Moler | first2 = Cleve | last3 = Schreiber | first3 = Robert | citeseerx = 10.1.1.470.1054 }}
* [http://faculty.cse.tamu.edu/davis/research.html Sparse Matrix Algorithms Research] at the Texas A&M University.
* [http://faculty.cse.tamu.edu/davis/research.html विरल Matrix Algorithms Research] at the Texas A&M University.
* [https://sparse.tamu.edu/ SuiteSparse Matrix Collection]
* [https://sparse.tamu.edu/ सूटविरल Matrix Collection]
* [http://www.small-project.eu SMALL project] A EU-funded project on sparse models, algorithms and dictionary learning for large-scale data.
* [http://www.small-project.eu SMALL project] A EU-funded project on विरल models, algorithms and dictionary learning for large-scale data.
 
{{Data structures}}
{{Matrix classes}}
{{Numerical linear algebra}}
[[Category: विरल matrices| विरल matrices]] [[Category: सरणियों]]
 
 


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:CS1 English-language sources (en)]]
[[Category:Created On 24/02/2023]]
[[Category:Created On 24/02/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Multi-column templates]]
[[Category:Pages using div col with small parameter]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Templates using under-protected Lua modules]]
[[Category:Wikipedia fully protected templates|Div col]]
[[Category:विरल matrices| विरल matrices]]
[[Category:सरणियों]]

Latest revision as of 11:29, 10 March 2023

विरल आव्यूह का उदाहरण
उपरोक्त विरल आव्यूह में 26 शून्य अवयवों के साथ मात्र 9 गैर-शून्य अवयव होते हैं। इसकी दुर्लभता 74% है, और इसकी घनत्व 26% है।
दो आयामों में परिमित अवयव विधि को हल करते समय प्राप्त विरल आव्यूह। गैर-शून्य अवयवों को काले रंग में दिखाया गया है।

संख्यात्मक विश्लेषण और वैज्ञानिक कंप्यूटिंग में, एक विरल आव्यूह या एक विरल सरणी(गणित) है जिसमें अधिकांश अवयव शून्य होते हैं।[1] आव्यूह के लिए विरल के रूप में योग्यता के लिए शून्य-मान अवयवों के अनुपात के संबंध में कोई विशुद्ध परिभाषा नहीं है, परन्तु एक सामान्य मापदण्ड यह है कि गैर-शून्य अवयवों की संख्या लगभग पंक्तियों या स्तंभों की संख्या के बराबर होती है। इसके विपरीत, यदि अधिकांश अवयव गैर-शून्य हैं, तो आव्यूह को सघन माना जाता है।[1] अवयवों की कुल संख्या से विभाजित शून्य-मान वाले अवयवों की संख्या(उदाहरण के लिए, m × n आव्यूह के लिए m × n) को कभी-कभी आव्यूह की 'विरलता' कहा जाता है।

संकल्पनात्मक रूप से, विरलता कुछ युग्‍मानूसार अंतःक्रियाओं वाली पद्धति से मेल खाती है। उदाहरण के लिए, एक से दूसरे में स्प्रिंग द्वारा संयोजित गेंदों की पंक्ति पर विचार करें: यह एक विरल पद्धति है क्योंकि मात्र समीपवर्ती गेंदों को युग्मित किया जाता है। इसके विपरीत, यदि गेंदों की एक ही पंक्ति में प्रत्येक गेंद को अन्य सभी गेंदों से संयोजी स्प्रिंगें हों, तो पद्धति एक सघन आव्यूह के अनुरूप होगा। विरलता की अवधारणा साहचर्य और प्रयोग क्षेत्रों जैसे नेटवर्क सिद्धांत और संख्यात्मक विश्लेषण में उपयोगी है, जिसमें सामान्यतः महत्वपूर्ण डेटा या संपर्क का घनत्व कम होता है। आंशिक अंतर समीकरणों को हल करते समय बड़े विरल आव्यूह प्रायः वैज्ञानिकी या अभियांत्रिकी अनुप्रयोगों में उपस्थित होते हैं।

कंप्यूटर पर विरल आव्यूह का संग्रहण और परिचालन के समय, विशेष एल्गोरिदम और डेटा संरचनाओं का उपयोग करना लाभप्रद और प्रायः आवश्यक होता है जो आव्यूह की विरल संरचना का लाभ उठाते हैं। विरल आव्यूह के लिए विशिष्ट कंप्यूटर बनाए गए हैं,[2] क्योंकि वे मशीन अधिगम क्षेत्र में सामान्य हैं।[3] प्रसंस्करण के रूप में बड़े विरल आव्यूह पर लागू होने पर मानक घने-आव्यूह संरचनाओं और एल्गोरिदम का उपयोग करने वाले संचालन धीमे और अक्षम होते हैं और मेमोरी शून्य पर क्षीण हो जाती है। विरल डेटा स्वभाव से अधिक आसानी से डेटा संपीड़न होता है और इस प्रकार कंप्यूटर डेटा संग्रहण में अत्यधिक कम की आवश्यकता होती है। मानक घने-आव्यूह एल्गोरिदम का उपयोग करके परिचालन के लिए कुछ बहुत बड़े विरल आव्यूह अक्षम हैं।

विरल आव्यूह का संग्रहण

आव्यूह को सामान्यतः द्वि-आयामी सरणी के रूप में संग्रहीत किया जाता है। सरणी में प्रत्येक प्रविष्टि एक अवयव ai,j का प्रतिनिधित्व करती है आव्यूह का और दो सूचकांकों द्वारा अभिगम किया जाता है परंपरागत रूप से, i पंक्ति सूचकांक है जिसे ऊपर से नीचे तक क्रमांकित किया गया है, और j स्तंभ सूचकांक है, जिसे बाएँ से दाएँ क्रमांकित किया गया है। m × n आव्यूह के लिए, इस प्रारूप में आव्यूह को संग्रहीत करने के लिए आवश्यक मेमोरी की मात्रा m × n आनुपातिक है(इस तथ्य की उपेक्षा करते हुए कि आव्यूह के आयामों को भी संग्रहीत करने की आवश्यकता है)।

विरल आव्यूह के विषय में, मात्र गैर-शून्य प्रविष्टियों को संग्रहीत करके पर्याप्त मेमोरी आवश्यकता में कमी को समझा जा सकता है। गैर-शून्य प्रविष्टियों की संख्या और वितरण के आधार पर, विभिन्न डेटा संरचनाओं का उपयोग किया जा सकता है और मूल दृष्टिकोण की तुलना में मेमोरी में बड़ी बचत हो सकती है। व्यापार-बंद यह है कि व्यक्तिगत अवयवों तक अभिगम अधिक जटिल हो जाती है और मूल आव्यूह को स्पष्ट रूप से पुनर्प्राप्त करने में सक्षम होने के लिए अतिरिक्त संरचनाओं की आवश्यकता होती है।

स्वरूपों को दो समूहों में विभाजित किया जा सकता है:

  • वे जो दक्ष संशोधन का समर्थन करते हैं, जैसे डीओके(कुंजियों का शब्दकोश), एलआईएल(सूचियों की सूची), या सीओओ(समन्वय सूची)। ये सामान्यतः आव्यूह के निर्माण के लिए उपयोग किए जाते हैं।
  • वे जो सीएसआर(संपीड़ित विरल पंक्ति) या सीएससी(संपीड़ित विरल स्तंभ) जैसे दक्ष अभिगम और आव्यूह संचालन का समर्थन करते हैं।

कुंजियों का शब्दकोश(डीओके)

डीओके में एक शब्दकोश होता है जो मानचित्र साहचर्य आव्यूह (row, column) अवयवों के मान के लिए युग्मित करता है। शब्दकोश से अनुपस्थित होने वाले अवयवों को शून्य मान लिया जाता है। प्रारूप यादृच्छिक क्रम में विरल आव्यूह के निर्माण के लिए अच्छा है, परन्तु कोशक्रमानुसार क्रम में गैर-शून्य मानों पर पुनरावृति के लिए अल्प है। एक सामान्यतः इस प्रारूप में आव्यूह बनाता है और फिर प्रसंस्करण के लिए एक और अधिक दक्ष प्रारूप में परिवर्तित हो जाता है।[4]


सूचियों की सूची(एलआईएल)

एलआईएल प्रति पंक्ति एक सूची संग्रहीत करता है, जिसमें प्रत्येक प्रविष्टि में स्तंभ सूचकांक और मान होता है। सामान्यतः, इन प्रविष्टियों को तीव्रता से देखने के लिए स्तंभ सूचकांक द्वारा क्रमबद्ध रखा जाता है। वार्धिक आव्यूह निर्माण के लिए यह एक और प्रारूप अच्छा है।[5]


समन्वय सूची(सीओओ)

सीओओ (row, column, value) टपल की एक सूची संग्रहीत करता है। आदर्श रूप से, यादृच्छिक अभिगम समय में सुधार के लिए प्रविष्टियों को पूर्व पंक्ति सूचकांक और फिर स्तंभ सूचकांक द्वारा क्रमबद्ध किया जाता है। यह एक और प्रारूप है जो वार्धिक आव्यूह निर्माण के लिए अच्छा है।[6]


संपीड़ित विरल पंक्ति(सीएसआर, सीआरएस या येल प्रारूप)

संपीड़ित विरल पंक्ति(सीएसआर) या संपीड़ित पंक्ति संग्रहण(सीआरएस) या येल प्रारूप तीन(एक-आयामी) सरणियों द्वारा M आव्यूह का प्रतिनिधित्व करता है, जिसमें क्रमशः शून्येतर मान, पंक्तियों का विस्तार, और स्तंभ सूचकांक होते हैं। यह सीओओ के समान है, परन्तु पंक्ति सूचकांकों को संकुचित करता है, इसलिए यह नाम है। यह प्रारूप तीव्र पंक्ति अभिगम और आव्यूह-सदिश गुणन(Mx) की अनुमति देता है। सीएसआर प्रारूप कम से कम 1960 के दशक के मध्य से उपयोग में रहा है, जिसका प्रथम पूर्ण विवरण 1967 में प्रदर्शित हुआ था।[7]

सीएसआर प्रारूप तीन(एक-आयामी) सरणियों (V, COL_INDEX, ROW_INDEX) का उपयोग करके एक विरल m × n आव्यूह M को पंक्ति रूप में संग्रहीत करता है। बता दें कि NNZ M में गैर-शून्य प्रविष्टियों की संख्या को निरूपित करता है।(ध्यान दें कि यहां शून्य-आधारित सूचकांकों का उपयोग किया जाएगा।)

  • सरणियाँ V और COL_INDEX लम्बाई NNZ की हैं, और गैर-शून्य मान और क्रमशः उन मानों के स्तंभ सूचकांक सम्मिलित करें।
  • सरणी ROW_INDEX की लम्बाई m + 1 है और सूचकांक को V और COL_INDEX कोडित करता है जहां दी गई पंक्ति प्रारम्भ होती है। यह ROW_INDEX[j] के बराबर है जो पंक्ति j के ऊपर गैर शून्य की कुल संख्या को कोडित करता है। अंतिम अवयव NNZ है, अर्थात, अंतिम वैध सूचकांक NNZ - 1 के तुरंत बाद V काल्पनिक सूचकांक है। [8]

उदाहरण के लिए, आव्यूह

4 गैर-शून्य अवयवों वाला 4 × 4 आव्यूह है, इसलिए

V = [5 8 3 6]
COL_INDEX = [ 0 1 2 1 ]
ROW_INDEX = [ 0 1 2 3 4 ]

शून्य-अनुक्रमित भाषा मानता है।

एक पंक्ति निकालने के लिए, हम पूर्व परिभाषित करते हैं:

row_start = ROW_INDEX [row]
row_end = ROW_INDEX [row + 1]

फिर हम V और COL_INDEX से भाग लेते हैं जो row_start से प्रारम्भ होती है और row_end पर समाप्त होती है।

इस आव्यूह की पंक्ति 1(दूसरी पंक्ति) निकालने के लिए हम row_start=1 और row_end=2संग्रह करते हैं। फिर हम भाग V[1:2] = [8] और COL_INDEX[1:2] = [1]. बनाते हैं। अब हम जानते हैं कि पंक्ति 1 में हमारे समीप स्तंभ 1 में मान 8 के साथ एक अवयव है।

इस विषय में मूल आव्यूह में 16 की तुलना में सीएसआर प्रतिनिधित्व में 13 प्रविष्टियां हैं। सीएसआर प्रारूप मात्र NNZ < (m (n − 1) − 1) / 2 पर मेमोरी पर सहेजता है।

एक अन्य उदाहरण, आव्यूह

एक 4 × 6 आव्यूह(24 प्रविष्टियाँ) जिसमें 8 अशून्य अवयव हैं, इसलिए

V = [10 20 30 40 50 60 70 80]
COL_INDEX = [ 0 1 1 3 2 3 4 5 ]
ROW_INDEX = [ 0 2 4 7 8 ]

संपूर्ण को 21 प्रविष्टियों के रूप में संग्रहीत किया जाता है: V में 8, COL_INDEX में 8, और ROW_INDEX में 5।

  • ROW_INDEX सरणी है V को पंक्तियों में विभाजित करता है:(10, 20)(30, 40)(50, 60, 70)(80),V(और COL_INDEX) के सूचकांक को दर्शाता है जहां प्रत्येक पंक्ति प्रारम्भ और समाप्त होती है;
  • COL_INDEX स्तंभों में मानों को संरेखित करता है:(10, 20, ...)(0, 30, 0, 40, ...)(0, 0, 50, 60, 70, 0)(0, 0, 0, 0, 0, 80).

ध्यान दें कि इस प्रारूप में, ROW_INDEX का प्रथम मान सदैव शून्य होता है और अंतिम सदैव NNZ होता है, इसलिए वे कुछ अर्थ में अनावश्यक हैं(यद्यपि प्रोग्रामिंग भाषाओं में जहां सरणी लंबाई को स्पष्ट रूप से संग्रहीत करने की आवश्यकता होती है, NNZ अनावश्यक नहीं होगा)। फिर भी, यह प्रत्येक पंक्ति की लंबाई की गणना करते समय एक असाधारण विषय को संभालने की आवश्यकता से बचता है, क्योंकि यह सूत्र की गारंटी देता है ROW_INDEX[i + 1] − ROW_INDEX[i] किसी भी पंक्ति i के लिए काम करता है। इसके अतिरिक्त, पर्याप्त रूप से बड़े आव्यूह के लिए इस अनावश्यक संग्रहण की मेमोरी लागत संभवतः नगण्य है।

(प्राचीन और नवीन) येल विरल आव्यूह प्रारूप सीएसआर पद्धति के उदाहरण हैं। प्राचीन येल प्रारूप ठीक ऊपर बताए अनुसार काम करता है, तीन सरणियों के साथ; नवीन स्वरूप ROW_INDEX और COL_INDEX को एकल सरणी में जोड़ता है और आव्यूह के विकर्ण को अलग से संभालता है।[9]

तार्किक निकटता आव्यूह के लिए, डेटा सरणी को छोड़ा जा सकता है, क्योंकि पंक्ति सरणी में एक प्रविष्टि का अस्तित्व द्विआधारी आसन्न संबंध को मॉडल करने के लिए पर्याप्त है।

यह संभवतः येल प्रारूप के रूप में जाना जाता है क्योंकि यह येल विश्वविद्यालय में कंप्यूटर विज्ञान विभाग से 1977 येल विरल आव्यूह पैकेज विवरण में प्रस्तावित किया गया था।[10]


संपीड़ित विरल स्तंभ(सीएससी या सीसीएस)

सीएससी सीएसआर के समान है अतिरिक्त इसके कि मान पूर्व स्तंभ द्वारा पढ़े जाते हैं, प्रत्येक मान के लिए एक पंक्ति सूचकांक संग्रहीत की जाती है, और स्तंभ सूचक संग्रहीत किए जाते हैं। उदाहरण के लिए, सीएससी (val, row_ind, col_ptr) है, जहां val सरणी के गैर-शून्य मानों(ऊपर से नीचे, फिर बाएं से दाएं) की एक आव्यूह है; row_ind मानों के अनुरूप पंक्ति सूचकांक है; और, col_ptr val की सूची है जहां प्रत्येक स्तंभ प्रारम्भ होता है। नाम इस तथ्य पर आधारित है कि स्तंभ सूचकांक जानकारी सीओओ प्रारूप के सापेक्ष संकुचित होती है। एक सामान्यतः निर्माण के लिए दूसरे प्रारूप(एलआईएल, डीओके, सीओओ) का उपयोग करता है। यह प्रारूप अंकगणितीय संचालन, स्तंभ प्रखंड और आव्यूह-सदिश उत्पादों के लिए दक्ष है। स्कीपी.विरल.csc_matrix देखें। यह MATLAB(विरल चर के माध्यम से ) में विरल आव्यूह निर्दिष्ट करने के लिए यह पारंपरिक प्रारूप है।

विशेष संरचना

पट्टित

विरल आव्यूह का एक महत्वपूर्ण विशेष प्रकार बैंड आव्यूह है, जिसे निम्नानुसार परिभाषित किया गया है। आव्यूह A की निम्न बैंडविड्थ सबसे छोटी संख्या p है जैसे कि प्रविष्टि ai,j अनुपस्थित हो जाता है जब भी i > j + p. इसी प्रकार, ऊपरी बैंडविड्थ सबसे छोटी संख्या p है जैसे कि ai,j = 0 जब भी i < jp (गोलूब & वैन लोन 1996, §1.2.1)। उदाहरण के लिए, एक त्रिभुज आव्यूह में निम्न बैंडविड्थ 1 और ऊपरी बैंडविड्थ 1 है। एक अन्य उदाहरण के रूप में, निम्नलिखित विरल आव्यूह में निम्न और ऊपरी बैंडविड्थ दोनों 3 के बराबर हैं। ध्यान दें कि शून्य को स्पष्टता के लिए बिंदु के साथ दर्शाया गया है।

उचित रूप से छोटे ऊपरी और निचले बैंडविड्थ वाले आव्यूह को बैंड आव्यूह के रूप में जाना जाता है और प्रायः सामान्य विरल आव्यूह की तुलना में सरल एल्गोरिदम के लिए स्वयं को उधार देते हैं; या कोई कभी-कभी घने आव्यूह एल्गोरिदम लागू कर सकता है और कम संख्या में सूचकांकों पर लूप करके दक्षता प्राप्त कर सकता है।

आव्यूह A की पंक्तियों और स्तंभों को पुनर्व्यवस्थित करके निम्न बैंडविड्थ के साथ A आव्यूह प्राप्त करना संभव हो सकता है। ग्राफ बैंडविड्थ के लिए कई एल्गोरिदम डिज़ाइन किए गए हैं।

विकर्ण

बैंड आव्यूह, विकर्ण आव्यूह के एक परम विषय के लिए बहुत ही दक्ष संरचना, मात्र मुख्य विकर्ण में प्रविष्टियों को एक आयामी सरणी के रूप में संग्रहीत करना है, इसलिए एक विकर्ण n × n आव्यूह को मात्र n प्रविष्टियां की आवश्यकता होती है।

सममित

सममित विरल आव्यूह एक अप्रत्यक्ष ग्राफ के आसन्न आव्यूह के रूप में उत्पन्न होता है; इसे निकटता सूची के रूप में दक्षतापूर्वक संग्रहीत किया जा सकता है।

खंड विकर्ण

एक खंड-विकर्ण आव्यूह में इसके विकर्ण खंडों के साथ उप-आव्यूह होते हैं। एक खंड-विकर्ण आव्यूह A का रूप है

जहाँAk सभी k = 1, ..., n के लिए एक वर्ग आव्यूह है।

फिल-इन को कम करना

आव्यूह का फिल-इन वे प्रविष्टियाँ हैं जो एक एल्गोरिथ्म के निष्पादन के समय प्रारंभिक शून्य से गैर-शून्य मान में बदल जाती हैं। एल्गोरिथ्म के समय उपयोग की जाने वाली मेमोरी आवश्यकताओं और अंकगणितीय संचालन की संख्या को कम करने के लिए, आव्यूह में पंक्तियों और स्तंभों को स्विच करके फिल-इन को कम करना उपयोगी होता है। वास्तविक चोल्स्की अपघटन करने से पूर्व प्रतीकात्मक चोलस्की अपघटन का उपयोग सबसे अल्प संभव फिल-इन की गणना के लिए किया जा सकता है।

उपयोग में चॉल्स्की अपघटन के अतिरिक्त अन्य विधियां भी हैं। लांबिकीकरण विधि(जैसे क्यूआर गुणन) सामान्य हैं, उदाहरण के लिए, कम से कम वर्ग विधियों द्वारा समस्याओं को हल करते समय। जबकि सैद्धांतिक फिल-इन अभी भी समान है, वास्तविक रूप से असत्य गैर-शून्य अलग-अलग विधियों के लिए अलग-अलग हो सकते हैं। और उन एल्गोरिदम के प्रतीकात्मक संस्करणों का उपयोग उसी प्रकार से किया जा सकता है जैसे प्रतीकात्मक चोलस्की सबसे अल्प स्थिति फिल-इन की गणना करने के लिए किया जा सकता है।

विरल आव्यूह समीकरणों को हल करना

विरल आव्यूह को हल करने के लिए पुनरावृत्त और प्रत्यक्ष दोनों विधियाँ स्थित हैं।

पुनरावर्ती विधियाँ, जैसे कि संयुग्मी ढाल विधि और जीएमआरईएस आव्यूह-सदिश उत्पादों की तीव्र संगणना का उपयोग करती हैं, जहाँ आव्यूह विरल है। पूर्व स्थिति का उपयोग इस प्रकार के पुनरावृत्त विधियों के अभिसरण को महत्वपूर्ण रूप से तीव्र कर सकता है।

सॉफ्टवेयर

कई सॉफ्टवेयर लाइब्रेरियां विरल आव्यूह का समर्थन करते हैं, और विरल आव्यूह समीकरणों के लिए हलकर्ता प्रदान करते हैं। निम्नलिखित खुला-स्त्रोत हैं:

  • सूटविरल, विरल आव्यूह एल्गोरिद्म का एक सूट, जो विरल रेखीय प्रणालियों के प्रत्यक्ष हल की ओर अग्रसर है।
  • वैज्ञानिक संगणना के लिए पोर्टेबल, एक्स्टेंसिबल टूलकिट, एक बड़ी सी लाइब्रेरी, जिसमें विभिन्न प्रकार के आव्यूह संग्रहीतीव्र प्रारूप के लिए कई अलग-अलग आव्यूह हलकर्ता हैं।
  • ट्रिलिनोस, एक बड़ी(सी ++ लाइब्रेरी), घने और विरल आव्यूह के संग्रहण और संबंधित रैखिक प्रणालियों के हल के लिए समर्पित उप-लाइब्रेरीों के साथ।
  • आइजन(C++ लाइब्रेरी) एक C++ लाइब्रेरी है जिसमें कई विरल आव्यूह हलकर्ता हैं। यद्यपि, उनमें से कोई भी समानांतर कंप्यूटिंग नहीं है।
  • एमयूएमपीएस(सॉफ्टवेयर)(मल्टीफ्रंटल व्यापक रूप से समानांतर विरल प्रत्यक्ष हलकर्ता), जिसे फोरट्रान90 में लिखा गया है, एक अग्र हलकर्ता है।
  • डील.II, एक परिमित अवयव लाइब्रेरी जिसमें विरल रैखिक प्रणालियों और उनके हल के लिए एक उप-लाइब्रेरी भी है।
  • डून_(सॉफ्टवेयर), एक अन्य परिमित अवयव लाइब्रेरी जिसमें विरल रैखिक प्रणालियों और उनके हल के लिए एक उप-लाइब्रेरी भी है।
  • पेस्टिक्स
  • सुपरएलयू
  • अर्माडिलो(C++ लाइब्रेरी) बीएलएएस और एलएपैक के लिए उपयोगकर्ता के अनुकूल C++ आवरण प्रदान करता है।
  • स्कीपी कई विरल आव्यूह स्वरूपों, रैखिक बीजगणित और हलकर्ता के लिए समर्थन प्रदान करता है।
  • विरल आव्यूह(स्पैम) विरल आव्यूह के लिए आर और पायथन पैकेज।
  • वोल्फ्राम भाषा विरल सरणियों को संभालने के लिए उपकरण
  • एएलजीएलआईबी विरल रेखीय बीजगणित समर्थन के साथ एक C++ और C लाइब्रेरी है
  • अर्नोल्डी एल्गोरिथम का उपयोग करते हुए विरल आव्यूह विकर्णीकरण और परिचालन के लिए एआरपैक फोरट्रान 77 लाइब्रेरी
  • विरल संदर्भ(प्राचीन) एनआईएसटी पैकेज(वास्तविक या जटिल) विरल आव्यूह विकर्णकरण के लिए
  • बड़े पैमाने पर रैखिक प्रणालियों और विरल आव्यूह के हल के लिए एसएलईपीसी लाइब्रेरी
  • सिम्पलर, एक डोमेन-विशिष्ट कोड जनित्र और लाइब्रेरी रैखिक प्रणालियों और द्विघात प्रोग्रामिंग समस्याओं को हल करने के लिए।
  • एससीआईकेआईटी-लर्न, यंत्र अधिगम के लिए एक पायथन लाइब्रेरी, विरल आव्यूह और हलकर्ता के लिए सहायता प्रदान करता है।
  • एसपीआरएस शुद्ध रस्ट में विरल आव्यूह डेटा संरचनाओं और रैखिक बीजगणित एल्गोरिदम को लागू करता है।
  • बेसिक आव्यूह लाइब्रेरी(बीएमएल) सी, सी++ और फोरट्रान के लिए बंधनकारक के साथ कई विरल आव्यूह स्वरूपों और रैखिक बीजगणित एल्गोरिदम का समर्थन करता है।

इतिहास

विरल आव्यूह शब्द संभवतः हैरी मार्कोविट्ज़ द्वारा गढ़ा गया था जिन्होंने कुछ अग्रणी कार्य प्रारम्भ किए परन्तु फिर क्षेत्र छोड़ दिया।[11]


यह भी देखें

टिप्पणियाँ

  1. 1.0 1.1 Yan, Di; Wu, Tao; Liu, Ying; Gao, Yang (2017). "An efficient sparse-dense matrix multiplication on a multicore system". 2017 IEEE 17th International Conference on Communication Technology (ICCT). IEEE. pp. 1880–1883. doi:10.1109/icct.2017.8359956. ISBN 978-1-5090-3944-9. The computation kernel of DNN is large sparse-dense matrix multiplication. In the field of numerical analysis, a sparse matrix is a matrix populated primarily with zeros as elements of the table. By contrast, if the number of non-zero elements in a matrix is relatively large, then it is commonly considered a dense matrix. The fraction of zero elements (non-zero elements) in a matrix is called the sparsity (density). Operations using standard dense-matrix structures and algorithms are relatively slow and consume large amounts of memory when applied to large sparse matrices.
  2. "सेरेब्रस सिस्टम्स ने उद्योग की पहली ट्रिलियन ट्रांजिस्टर चिप का अनावरण किया". www.businesswire.com (in English). 2019-08-19. Retrieved 2019-12-02. The WSE contains 400,000 AI-optimized compute cores. Called SLAC™ for Sparse Linear Algebra Cores, the compute cores are flexible, programmable, and optimized for the sparse linear algebra that underpins all neural network computation
  3. "Argonne National Laboratory Deploys Cerebras CS-1, the World's Fastest Artificial Intelligence Computer | Argonne National Laboratory". www.anl.gov (Press release) (in English). Retrieved 2019-12-02. The WSE is the largest chip ever made at 46,225 square millimeters in area, it is 56.7 times larger than the largest graphics processing unit. It contains 78 times more AI optimized compute cores, 3,000 times more high speed, on-chip memory, 10,000 times more memory bandwidth, and 33,000 times more communication bandwidth.
  4. See scipy.sparse.dok_matrix
  5. See scipy.sparse.lil_matrix
  6. See scipy.sparse.coo_matrix
  7. Buluç, Aydın; Fineman, Jeremy T.; Frigo, Matteo; Gilbert, John R.; Leiserson, Charles E. (2009). समानांतर विरल मैट्रिक्स-वेक्टर और मैट्रिक्स-ट्रांसपोज़-वेक्टर गुणन संकुचित विरल ब्लॉकों का उपयोग करते हुए (PDF). ACM Symp. on Parallelism in Algorithms and Architectures. CiteSeerX 10.1.1.211.5256.
  8. Saad, Yousef (2003). विरल रेखीय प्रणालियों के लिए पुनरावृत्त तरीके. SIAM.
  9. Bank, Randolph E.; Douglas, Craig C. (1993), "Sparse Matrix Multiplication Package (SMMP)" (PDF), Advances in Computational Mathematics, 1: 127–137, doi:10.1007/BF02070824, S2CID 6412241
  10. Eisenstat, S. C.; Gursky, M. C.; Schultz, M. H.; Sherman, A. H. (April 1977). "येल स्पार्स मैट्रिक्स पैकेज" (PDF) (in English). Archived (PDF) from the original on April 6, 2019. Retrieved 6 April 2019.
  11. Oral history interview with Harry M. Markowitz, pp. 9, 10.


संदर्भ


अग्रिम पठन

  1. Saad, Yousef (2003). Iterative methods for sparse linear systems. SIAM.