विरल मैट्रिक्स: Difference between revisions
(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|''' | | {{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| | | {{center|{{midsize|उपरोक्त विरल आव्यूह में 26 शून्य अवयवों के साथ मात्र 9 गैर-शून्य अवयव होते हैं। इसकी दुर्लभता 74% है, और इसकी घनत्व 26% है।}}}} | ||
|} | |} | ||
[[Image:Finite element sparse matrix.png|right|thumb|दो आयामों में परिमित | [[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> प्रसंस्करण के रूप में बड़े विरल आव्यूह पर लागू होने पर मानक घने-आव्यूह संरचनाओं और एल्गोरिदम का उपयोग करने वाले संचालन धीमे और अक्षम होते हैं और [[स्मृति|मेमोरी]] शून्य पर क्षीण हो जाती है। विरल डेटा स्वभाव से अधिक आसानी से डेटा संपीड़न होता है और इस प्रकार कंप्यूटर डेटा संग्रहण में अत्यधिक कम की आवश्यकता होती है। मानक घने-आव्यूह एल्गोरिदम का उपयोग करके परिचालन के लिए कुछ बहुत बड़े विरल आव्यूह अक्षम हैं। | ||
== | ==विरल आव्यूह का संग्रहण == | ||
आव्यूह को सामान्यतः द्वि-आयामी सरणी के रूप में संग्रहीत किया जाता है। सरणी में प्रत्येक प्रविष्टि एक अवयव {{math|''a''<sub>''i'',''j''</sub>}} का प्रतिनिधित्व करती है आव्यूह का और दो सूचकांकों द्वारा अभिगम किया जाता है परंपरागत रूप से, {{math|''i''}} पंक्ति सूचकांक है जिसे ऊपर से नीचे तक क्रमांकित किया गया है, और {{math|''j''}} स्तंभ सूचकांक है, जिसे बाएँ से दाएँ क्रमांकित किया गया है। {{math|''m'' × ''n''}} आव्यूह के लिए, इस प्रारूप में आव्यूह को संग्रहीत करने के लिए आवश्यक मेमोरी की मात्रा {{math|''m'' × ''n''}} आनुपातिक है(इस तथ्य की उपेक्षा करते हुए कि आव्यूह के आयामों को भी संग्रहीत करने की आवश्यकता है)। | |||
विरल | विरल आव्यूह के विषय में, मात्र गैर-शून्य प्रविष्टियों को संग्रहीत करके पर्याप्त मेमोरी आवश्यकता में कमी को समझा जा सकता है। गैर-शून्य प्रविष्टियों की संख्या और वितरण के आधार पर, विभिन्न डेटा संरचनाओं का उपयोग किया जा सकता है और मूल दृष्टिकोण की तुलना में मेमोरी में बड़ी बचत हो सकती है। व्यापार-बंद यह है कि व्यक्तिगत अवयवों तक अभिगम अधिक जटिल हो जाती है और मूल आव्यूह को स्पष्ट रूप से पुनर्प्राप्त करने में सक्षम होने के लिए अतिरिक्त संरचनाओं की आवश्यकता होती है। | ||
स्वरूपों को दो समूहों में विभाजित किया जा सकता है: | स्वरूपों को दो समूहों में विभाजित किया जा सकता है: | ||
* वे जो | * वे जो दक्ष संशोधन का समर्थन करते हैं, जैसे डीओके(कुंजियों का शब्दकोश), एलआईएल(सूचियों की सूची), या सीओओ(समन्वय सूची)। ये सामान्यतः आव्यूह के निर्माण के लिए उपयोग किए जाते हैं। | ||
* वे जो सीएसआर (संपीड़ित विरल पंक्ति) या सीएससी (संपीड़ित विरल स्तंभ) जैसे | * वे जो सीएसआर(संपीड़ित विरल पंक्ति) या सीएससी(संपीड़ित विरल स्तंभ) जैसे दक्ष अभिगम और आव्यूह संचालन का समर्थन करते हैं। | ||
=== | === कुंजियों का शब्दकोश(डीओके) === | ||
डीओके में एक शब्दकोश होता है जो मानचित्र [[साहचर्य सरणी|साहचर्य आव्यूह]] {{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> | |||
=== सूचियों की सूची (एलआईएल) === | === सूचियों की सूची(एलआईएल) === | ||
एलआईएल प्रति पंक्ति एक सूची संग्रहीत करता है, जिसमें प्रत्येक प्रविष्टि में स्तंभ सूचकांक और मान होता है। सामान्यतः, इन प्रविष्टियों को तीव्रता से देखने के लिए स्तंभ सूचकांक द्वारा क्रमबद्ध रखा जाता है। वार्धिक आव्यूह निर्माण के लिए यह एक और प्रारूप अच्छा है।<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|'''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|V}} और {{math|COL_INDEX}} लम्बाई | सीएसआर प्रारूप तीन(एक-आयामी) सरणियों {{math|(V, COL_INDEX, ROW_INDEX)}} का उपयोग करके एक विरल {{math|''m'' × ''n''}} आव्यूह {{math|'''M'''}} को पंक्ति रूप में संग्रहीत करता है। बता दें कि {{math|NNZ}} {{math|'''M'''}} में गैर-शून्य प्रविष्टियों की संख्या को निरूपित करता है।(ध्यान दें कि यहां शून्य-आधारित सूचकांकों का उपयोग किया जाएगा।) | ||
* सरणी {{math|ROW_INDEX}} लम्बाई | |||
उदाहरण के लिए, | * सरणियाँ {{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> | ||
4 गैर-शून्य अवयवों वाला {{math|4 × 4}} आव्यूह है, इसलिए | |||
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_start = ROW_INDEX [row] | |||
row_end = ROW_INDEX [ | row_end = ROW_INDEX [row + 1] | ||
फिर हम V और COL_INDEX से | फिर हम 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 के साथ एक अवयव है। | ||
इस | इस विषय में मूल आव्यूह में 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 अशून्य अवयव हैं, इसलिए | ||
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 | संपूर्ण को 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|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> | |||
===संपीड़ित विरल स्तंभ (सीएससी या सीसीएस)=== | ===संपीड़ित विरल स्तंभ(सीएससी या सीसीएस)=== | ||
[http://netlib.org/linalg/html_templates/node92.html#SECTION00931200000000000000 सीएससी] सीएसआर के समान है | [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| | {{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|गोलूब|वैन लोन|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|''n'' × ''n''}} आव्यूह को मात्र {{math|''n''}} प्रविष्टियां की आवश्यकता होती है। | ||
=== सममित === | === सममित === | ||
सममित विरल आव्यूह एक [[अप्रत्यक्ष ग्राफ]] के आसन्न आव्यूह के रूप में उत्पन्न होता है; इसे [[निकटता सूची]] के रूप में दक्षतापूर्वक संग्रहीत किया जा सकता है। | |||
=== | === खंड विकर्ण === | ||
एक [[ब्लॉक-विकर्ण मैट्रिक्स]] में इसके विकर्ण | एक [[ब्लॉक-विकर्ण मैट्रिक्स|खंड-विकर्ण आव्यूह]] में इसके विकर्ण खंडों के साथ उप-आव्यूह होते हैं। एक खंड-विकर्ण आव्यूह {{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''}} के लिए एक वर्ग आव्यूह है। | |||
== फिल-इन को कम करना == | == फिल-इन को कम करना == | ||
आव्यूह का फिल-इन वे प्रविष्टियाँ हैं जो एक एल्गोरिथ्म के निष्पादन के समय प्रारंभिक शून्य से गैर-शून्य मान में बदल जाती हैं। एल्गोरिथ्म के समय उपयोग की जाने वाली मेमोरी आवश्यकताओं और अंकगणितीय संचालन की संख्या को कम करने के लिए, आव्यूह में पंक्तियों और स्तंभों को स्विच करके फिल-इन को कम करना उपयोगी होता है। वास्तविक [[चोल्स्की अपघटन]] करने से पूर्व [[प्रतीकात्मक चोलस्की अपघटन]] का उपयोग सबसे अल्प संभव फिल-इन की गणना के लिए किया जा सकता है। | |||
उपयोग में चॉल्स्की अपघटन के | उपयोग में चॉल्स्की अपघटन के अतिरिक्त अन्य विधियां भी हैं। लांबिकीकरण विधि(जैसे क्यूआर गुणन) सामान्य हैं, उदाहरण के लिए, कम से कम वर्ग विधियों द्वारा समस्याओं को हल करते समय। जबकि सैद्धांतिक फिल-इन अभी भी समान है, वास्तविक रूप से असत्य गैर-शून्य अलग-अलग विधियों के लिए अलग-अलग हो सकते हैं। और उन एल्गोरिदम के प्रतीकात्मक संस्करणों का उपयोग उसी प्रकार से किया जा सकता है जैसे प्रतीकात्मक चोलस्की सबसे अल्प स्थिति फिल-इन की गणना करने के लिए किया जा सकता है। | ||
== विरल | == विरल आव्यूह समीकरणों को हल करना == | ||
विरल आव्यूह को हल करने के लिए पुनरावृत्त और प्रत्यक्ष दोनों विधियाँ स्थित हैं। | |||
[[पुनरावर्ती विधि]] | [[पुनरावर्ती विधि|पुनरावर्ती विधियाँ]], जैसे कि [[संयुग्मी ढाल]] विधि और [[GMRES|जीएमआरईएस]] आव्यूह-सदिश उत्पादों <math>A x_i</math> की तीव्र संगणना का उपयोग करती हैं, जहाँ आव्यूह <math>A</math> विरल है। [[पूर्व शर्त|पूर्व स्थिति]] का उपयोग इस प्रकार के पुनरावृत्त विधियों के अभिसरण को महत्वपूर्ण रूप से तीव्र कर सकता है। | ||
== सॉफ्टवेयर == | == सॉफ्टवेयर == | ||
कई सॉफ्टवेयर | कई सॉफ्टवेयर लाइब्रेरियां विरल आव्यूह का समर्थन करते हैं, और विरल आव्यूह समीकरणों के लिए हलकर्ता प्रदान करते हैं। निम्नलिखित खुला-स्त्रोत हैं: | ||
* [http://facademy.cse.tamu.edu/davis/suitesparse.html | * [http://facademy.cse.tamu.edu/davis/suitesparse.html सूटविरल], विरल आव्यूह एल्गोरिद्म का एक सूट, जो विरल रेखीय प्रणालियों के प्रत्यक्ष हल की ओर अग्रसर है। | ||
* वैज्ञानिक संगणना के लिए पोर्टेबल, एक्स्टेंसिबल टूलकिट, एक बड़ी सी लाइब्रेरी, जिसमें विभिन्न प्रकार के | * वैज्ञानिक संगणना के लिए पोर्टेबल, एक्स्टेंसिबल टूलकिट, एक बड़ी सी लाइब्रेरी, जिसमें विभिन्न प्रकार के आव्यूह संग्रहीतीव्र प्रारूप के लिए कई अलग-अलग आव्यूह हलकर्ता हैं। | ||
* [[Trilinos]], एक बड़ी [[मालिकाना (सी ++ पुस्तकालय)]], घने और विरल | * [[Trilinos|ट्रिलिनोस]], एक बड़ी([[मालिकाना (सी ++ पुस्तकालय)|सी ++ लाइब्रेरी)]], घने और विरल आव्यूह के संग्रहण और संबंधित रैखिक प्रणालियों के हल के लिए समर्पित उप-लाइब्रेरीों के साथ। | ||
* | * आइजन(C++ लाइब्रेरी) एक C++ लाइब्रेरी है जिसमें कई विरल आव्यूह हलकर्ता हैं। यद्यपि, उनमें से कोई भी [[समानांतर कंप्यूटिंग]] नहीं है। | ||
* | * एमयूएमपीएस(सॉफ्टवेयर)(मल्टीफ्रंटल व्यापक रूप से समानांतर विरल प्रत्यक्ष हलकर्ता), जिसे फोरट्रान90 में लिखा गया है, एक [[ ललाट सॉल्वर |अग्र हलकर्ता]] है। | ||
* | * डील.II, एक परिमित अवयव लाइब्रेरी जिसमें विरल रैखिक प्रणालियों और उनके हल के लिए एक उप-लाइब्रेरी भी है। | ||
* | * डून_(सॉफ्टवेयर), एक अन्य परिमित अवयव लाइब्रेरी जिसमें विरल रैखिक प्रणालियों और उनके हल के लिए एक उप-लाइब्रेरी भी है। | ||
* [http://pastix.gforge.inria.fr/ | * [http://pastix.gforge.inria.fr/ पेस्टिक्स]। | ||
* [http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ | * [http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ सुपरएलयू]। | ||
* [[अर्माडिलो (C++ लाइब्रेरी)]] | * [[अर्माडिलो (C++ लाइब्रेरी)|अर्माडिलो(C++ लाइब्रेरी)]] बीएलएएस और एलएपैक के लिए उपयोगकर्ता के अनुकूल C++ आवरण प्रदान करता है। | ||
* [[SciPy]] कई विरल | * [[SciPy|स्कीपी]] कई विरल आव्यूह स्वरूपों, रैखिक बीजगणित और हलकर्ता के लिए समर्थन प्रदान करता है। | ||
* [https://cran.r-project.org/web/packages/spam/index.html | * [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 लाइब्रेरी | ||
* [https://www.netlib.org/sparse/ | * [https://www.netlib.org/sparse/ विरल] संदर्भ(प्राचीन) [[एनआईएसटी]] पैकेज(वास्तविक या जटिल) विरल आव्यूह विकर्णकरण के लिए | ||
* बड़े पैमाने पर रैखिक प्रणालियों और विरल | * बड़े पैमाने पर रैखिक प्रणालियों और विरल आव्यूह के हल के लिए [[एसएलईपीसी]] लाइब्रेरी | ||
* [https://www.sympiler.com/ | * [https://www.sympiler.com/ सिम्पलर], एक डोमेन-विशिष्ट कोड जनित्र और लाइब्रेरी रैखिक प्रणालियों और द्विघात प्रोग्रामिंग समस्याओं को हल करने के लिए। | ||
* [[scikit-सीखें]], [[ यंत्र अधिगम ]] के लिए एक पायथन लाइब्रेरी, विरल | * [[scikit-सीखें|एससीआईकेआईटी-लर्न]], [[ यंत्र अधिगम |यंत्र अधिगम]] के लिए एक पायथन लाइब्रेरी, विरल आव्यूह और हलकर्ता के लिए सहायता प्रदान करता है। | ||
* [https://crates.io/crates/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> | |||
== यह भी देखें == | == यह भी देखें == | ||
{{columns-list|colwidth=22em| | {{columns-list|colwidth=22em| | ||
* [[ | * [[आव्यूह प्रतिरूप]] | ||
* [[ | * [[पारेतो सिद्धांत]] | ||
* [[ | * [[अस्थायी आव्यूह]] | ||
* [[ | * [[एकल प्रविष्टिआव्यूह]] | ||
* [[ | * [[क्षितिज आव्यूह]] | ||
* [[ | * [[विरल ग्राफ कोड]] | ||
* [[ | * [[विरल फ़ाइल]] | ||
* [[ | * [[हार्वेल-बोइंग फ़ाइल प्रारूप]] | ||
* [[ | * [[आव्यूह बाजार विनिमय प्रारूप]] | ||
}} | }} | ||
| 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 | * {{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 | * [http://faculty.cse.tamu.edu/davis/research.html विरल Matrix Algorithms Research] at the Texas A&M University. | ||
* [https://sparse.tamu.edu/ | * [https://sparse.tamu.edu/ सूटविरल Matrix Collection] | ||
* [http://www.small-project.eu SMALL project] A EU-funded project on | * [http://www.small-project.eu SMALL project] A EU-funded project on विरल models, algorithms and dictionary learning for large-scale data. | ||
[[Category: | [[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]
उदाहरण के लिए, आव्यूह
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 पर मेमोरी पर सहेजता है।
एक अन्य उदाहरण, आव्यूह
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 < j − p (गोलूब & वैन लोन 1996, §1.2.1)। उदाहरण के लिए, एक त्रिभुज आव्यूह में निम्न बैंडविड्थ 1 और ऊपरी बैंडविड्थ 1 है। एक अन्य उदाहरण के रूप में, निम्नलिखित विरल आव्यूह में निम्न और ऊपरी बैंडविड्थ दोनों 3 के बराबर हैं। ध्यान दें कि शून्य को स्पष्टता के लिए बिंदु के साथ दर्शाया गया है।
आव्यूह A की पंक्तियों और स्तंभों को पुनर्व्यवस्थित करके निम्न बैंडविड्थ के साथ A′ आव्यूह प्राप्त करना संभव हो सकता है। ग्राफ बैंडविड्थ के लिए कई एल्गोरिदम डिज़ाइन किए गए हैं।
विकर्ण
बैंड आव्यूह, विकर्ण आव्यूह के एक परम विषय के लिए बहुत ही दक्ष संरचना, मात्र मुख्य विकर्ण में प्रविष्टियों को एक आयामी सरणी के रूप में संग्रहीत करना है, इसलिए एक विकर्ण n × n आव्यूह को मात्र n प्रविष्टियां की आवश्यकता होती है।
सममित
सममित विरल आव्यूह एक अप्रत्यक्ष ग्राफ के आसन्न आव्यूह के रूप में उत्पन्न होता है; इसे निकटता सूची के रूप में दक्षतापूर्वक संग्रहीत किया जा सकता है।
खंड विकर्ण
एक खंड-विकर्ण आव्यूह में इसके विकर्ण खंडों के साथ उप-आव्यूह होते हैं। एक खंड-विकर्ण आव्यूह A का रूप है
फिल-इन को कम करना
आव्यूह का फिल-इन वे प्रविष्टियाँ हैं जो एक एल्गोरिथ्म के निष्पादन के समय प्रारंभिक शून्य से गैर-शून्य मान में बदल जाती हैं। एल्गोरिथ्म के समय उपयोग की जाने वाली मेमोरी आवश्यकताओं और अंकगणितीय संचालन की संख्या को कम करने के लिए, आव्यूह में पंक्तियों और स्तंभों को स्विच करके फिल-इन को कम करना उपयोगी होता है। वास्तविक चोल्स्की अपघटन करने से पूर्व प्रतीकात्मक चोलस्की अपघटन का उपयोग सबसे अल्प संभव फिल-इन की गणना के लिए किया जा सकता है।
उपयोग में चॉल्स्की अपघटन के अतिरिक्त अन्य विधियां भी हैं। लांबिकीकरण विधि(जैसे क्यूआर गुणन) सामान्य हैं, उदाहरण के लिए, कम से कम वर्ग विधियों द्वारा समस्याओं को हल करते समय। जबकि सैद्धांतिक फिल-इन अभी भी समान है, वास्तविक रूप से असत्य गैर-शून्य अलग-अलग विधियों के लिए अलग-अलग हो सकते हैं। और उन एल्गोरिदम के प्रतीकात्मक संस्करणों का उपयोग उसी प्रकार से किया जा सकता है जैसे प्रतीकात्मक चोलस्की सबसे अल्प स्थिति फिल-इन की गणना करने के लिए किया जा सकता है।
विरल आव्यूह समीकरणों को हल करना
विरल आव्यूह को हल करने के लिए पुनरावृत्त और प्रत्यक्ष दोनों विधियाँ स्थित हैं।
पुनरावर्ती विधियाँ, जैसे कि संयुग्मी ढाल विधि और जीएमआरईएस आव्यूह-सदिश उत्पादों की तीव्र संगणना का उपयोग करती हैं, जहाँ आव्यूह विरल है। पूर्व स्थिति का उपयोग इस प्रकार के पुनरावृत्त विधियों के अभिसरण को महत्वपूर्ण रूप से तीव्र कर सकता है।
सॉफ्टवेयर
कई सॉफ्टवेयर लाइब्रेरियां विरल आव्यूह का समर्थन करते हैं, और विरल आव्यूह समीकरणों के लिए हलकर्ता प्रदान करते हैं। निम्नलिखित खुला-स्त्रोत हैं:
- सूटविरल, विरल आव्यूह एल्गोरिद्म का एक सूट, जो विरल रेखीय प्रणालियों के प्रत्यक्ष हल की ओर अग्रसर है।
- वैज्ञानिक संगणना के लिए पोर्टेबल, एक्स्टेंसिबल टूलकिट, एक बड़ी सी लाइब्रेरी, जिसमें विभिन्न प्रकार के आव्यूह संग्रहीतीव्र प्रारूप के लिए कई अलग-अलग आव्यूह हलकर्ता हैं।
- ट्रिलिनोस, एक बड़ी(सी ++ लाइब्रेरी), घने और विरल आव्यूह के संग्रहण और संबंधित रैखिक प्रणालियों के हल के लिए समर्पित उप-लाइब्रेरीों के साथ।
- आइजन(C++ लाइब्रेरी) एक C++ लाइब्रेरी है जिसमें कई विरल आव्यूह हलकर्ता हैं। यद्यपि, उनमें से कोई भी समानांतर कंप्यूटिंग नहीं है।
- एमयूएमपीएस(सॉफ्टवेयर)(मल्टीफ्रंटल व्यापक रूप से समानांतर विरल प्रत्यक्ष हलकर्ता), जिसे फोरट्रान90 में लिखा गया है, एक अग्र हलकर्ता है।
- डील.II, एक परिमित अवयव लाइब्रेरी जिसमें विरल रैखिक प्रणालियों और उनके हल के लिए एक उप-लाइब्रेरी भी है।
- डून_(सॉफ्टवेयर), एक अन्य परिमित अवयव लाइब्रेरी जिसमें विरल रैखिक प्रणालियों और उनके हल के लिए एक उप-लाइब्रेरी भी है।
- पेस्टिक्स।
- सुपरएलयू।
- अर्माडिलो(C++ लाइब्रेरी) बीएलएएस और एलएपैक के लिए उपयोगकर्ता के अनुकूल C++ आवरण प्रदान करता है।
- स्कीपी कई विरल आव्यूह स्वरूपों, रैखिक बीजगणित और हलकर्ता के लिए समर्थन प्रदान करता है।
- विरल आव्यूह(स्पैम) विरल आव्यूह के लिए आर और पायथन पैकेज।
- वोल्फ्राम भाषा विरल सरणियों को संभालने के लिए उपकरण
- एएलजीएलआईबी विरल रेखीय बीजगणित समर्थन के साथ एक C++ और C लाइब्रेरी है
- अर्नोल्डी एल्गोरिथम का उपयोग करते हुए विरल आव्यूह विकर्णीकरण और परिचालन के लिए एआरपैक फोरट्रान 77 लाइब्रेरी
- विरल संदर्भ(प्राचीन) एनआईएसटी पैकेज(वास्तविक या जटिल) विरल आव्यूह विकर्णकरण के लिए
- बड़े पैमाने पर रैखिक प्रणालियों और विरल आव्यूह के हल के लिए एसएलईपीसी लाइब्रेरी
- सिम्पलर, एक डोमेन-विशिष्ट कोड जनित्र और लाइब्रेरी रैखिक प्रणालियों और द्विघात प्रोग्रामिंग समस्याओं को हल करने के लिए।
- एससीआईकेआईटी-लर्न, यंत्र अधिगम के लिए एक पायथन लाइब्रेरी, विरल आव्यूह और हलकर्ता के लिए सहायता प्रदान करता है।
- एसपीआरएस शुद्ध रस्ट में विरल आव्यूह डेटा संरचनाओं और रैखिक बीजगणित एल्गोरिदम को लागू करता है।
- बेसिक आव्यूह लाइब्रेरी(बीएमएल) सी, सी++ और फोरट्रान के लिए बंधनकारक के साथ कई विरल आव्यूह स्वरूपों और रैखिक बीजगणित एल्गोरिदम का समर्थन करता है।
इतिहास
विरल आव्यूह शब्द संभवतः हैरी मार्कोविट्ज़ द्वारा गढ़ा गया था जिन्होंने कुछ अग्रणी कार्य प्रारम्भ किए परन्तु फिर क्षेत्र छोड़ दिया।[11]
यह भी देखें
टिप्पणियाँ
- ↑ 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.
- ↑ "सेरेब्रस सिस्टम्स ने उद्योग की पहली ट्रिलियन ट्रांजिस्टर चिप का अनावरण किया". 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
- ↑ "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.
- ↑ See
scipy.sparse.dok_matrix - ↑ See
scipy.sparse.lil_matrix - ↑ See
scipy.sparse.coo_matrix - ↑ 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.
- ↑ Saad, Yousef (2003). विरल रेखीय प्रणालियों के लिए पुनरावृत्त तरीके. SIAM.
- ↑ 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
- ↑ 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.
- ↑ Oral history interview with Harry M. Markowitz, pp. 9, 10.
संदर्भ
- Golub, Gene H.; Van Loan, Charles F. (1996). Matrix Computations (3rd ed.). Baltimore: Johns Hopkins. ISBN 978-0-8018-5414-9.
- Stoer, Josef; Bulirsch, Roland (2002). Introduction to Numerical Analysis (3rd ed.). Berlin, New York: Springer-Verlag. ISBN 978-0-387-95452-3.
- Tewarson, Reginald P. (May 1973). Sparse Matrices (Part of the Mathematics in Science & Engineering series). Academic Press Inc.(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).
- Bank, Randolph E.; Douglas, Craig C. "Sparse Matrix Multiplication Package" (PDF).
- Pissanetzky, Sergio (1984). Sparse Matrix Technology. Academic Press. ISBN 9780125575805.
- Snay, Richard A. (1976). "Reducing the profile of sparse symmetric matrices". Bulletin Géodésique. 50 (4): 341–352. Bibcode:1976BGeod..50..341S. doi:10.1007/BF02521587. hdl:2027/uc1.31210024848523. S2CID 123079384. Also NOAA Technical Memorandum NOS NGS-4, National Geodetic Survey, Rockville, MD.[1]
अग्रिम पठन
- Gibbs, Norman E.; Poole, William G.; Stockmeyer, Paul K. (1976). "A comparison of several bandwidth and profile reduction algorithms". ACM Transactions on Mathematical Software. 2 (4): 322–330. doi:10.1145/355705.355707. S2CID 14494429.
- Gilbert, John R.; Moler, Cleve; Schreiber, Robert (1992). "Sparse matrices in MATLAB: Design and Implementation". SIAM Journal on Matrix Analysis and Applications. 13 (1): 333–356. CiteSeerX 10.1.1.470.1054. doi:10.1137/0613024.
- विरल Matrix Algorithms Research at the Texas A&M University.
- सूटविरल Matrix Collection
- SMALL project A EU-funded project on विरल models, algorithms and dictionary learning for large-scale data.
- ↑ Saad, Yousef (2003). Iterative methods for sparse linear systems. SIAM.