अंतरिक्ष का उपयोग सभी स्ट्रैसेन जैसे एल्गोरिदम के लिए सबसे अधिक है (अर्थात जो ऊपरी रूप से मैट्रिक्स गुणन के क्रम को बीजगणित पर आधारित करते हैं)। कोपरस्मिथ-विनोग्राद एल्गोरिथ्म की अंतरिक्ष जटिलता देखेंO(n2)
हालाँकि, मैंने अपने पिछले उत्तर में महसूस किया कि मैंने यह नहीं बताया कि अंतरिक्ष उपयोग ... इसलिए यहाँ कुछ हाथ से लहराता है। इस बात पर विचार करें कि स्ट्रैसन जैसा एल्गोरिथ्म क्या करता है। यह मैट्रिक्स गुणा के लिए एक निश्चित एल्गोरिथ्म से शुरू होता है जो कुछ निरंतर लिए गुणन का उपयोग करता है । विशेष रूप से, यह एल्गोरिथ्म (जो भी हो) WLOG लिखा जा सकता है ताकि:O(n2)K×KKcc<3
यह गणना करता है विभिन्न मैट्रिक्स जो पहले मैट्रिक्स के गुणा प्रविष्टियों विभिन्न scalars और द्वारा मैट्रिक्स दूसरा मैट्रिक्स से इसी तरह के रूप में,एल 1 , … , एल के सी ए के सी आर 1 , … , आर के सी बीKcL1,…,LKcAKcR1,…,RKcB
यह उन रैखिक संयोजनों गुणा करता है , फिरLi⋅Ri
की यह पलता प्रविष्टियों विभिन्न scalars द्वारा, फिर प्राप्त करने के लिए entrywise अप इन सभी मैट्रिक्स कहते हैं एक ⋅ बी ।Li⋅RiA⋅B
(यह एक तथाकथित "बिलिनियर" एल्गोरिथ्म है, लेकिन यह पता चलता है कि प्रत्येक "बीजगणितीय" मैट्रिक्स गुणन एल्गोरिथ्म को इस तरह से लिखा जा सकता है।) प्रत्येक , इस एल्गोरिथ्म को केवल स्टोर करना होगा। मौजूदा उत्पाद एल मैं ⋅ आर मैं और के वर्तमान मूल्य एक ⋅ बी , किसी भी बिंदु पर स्मृति में (शुरू में सब-शून्य करने के लिए सेट) इसलिए स्थान उपयोग है हे ( कश्मीर 2 ) ।i=1,…,KcLi⋅RiA⋅BO(K2)
इस परिमित एल्गोरिथ्म को देखते हुए यह तो मनमाने ढंग से करने के लिए बढ़ा दिया गया है मैट्रिक्स, में बड़े मैट्रिक्स तोड़कर कश्मीर × कश्मीर आयाम के ब्लॉक कश्मीर ℓ - 1 × कश्मीर ℓ - 1 , लागू करने के परिमित कश्मीर × कश्मीर ब्लॉक करने के लिए एल्गोरिथ्म जब भी दो ब्लॉक को गुणा करने की आवश्यकता होती है, मैट्रिसेस और पुनरावर्ती रूप से एल्गोरिथ्म को कॉल करना। प्रत्यावर्तन के प्रत्येक स्तर में, हम केवल रखने की जरूरत हे ( कश्मीर 2 ℓ ) स्मृति में क्षेत्र तत्वों (भंडारण हे ( 1 )Kℓ×KℓK×KKℓ−1×Kℓ−1K×KO(K2ℓ)O(1)विभिन्न मैट्रिक्स)। के लिए स्थान उपयोग मान लिया जाये कि कश्मीर ℓ - 1 × कश्मीर ℓ - 1 आव्यूह गुणन है एस ( ℓ - 1 ) , इस पुनरावर्ती एल्गोरिदम के स्थान उपयोग है एस ( ℓ ) ≤ एस ( ℓ - 1 ) + हे ( कश्मीर 2 ℓ ) , जो S ( 1 ) = 2 K 2 के लिएKℓ×KℓKℓ−1×Kℓ−1S(ℓ−1)S(ℓ)≤S(ℓ−1)+O(K2ℓ)S(1)=2K2को हल करती ।S(ℓ)≤O(K2ℓ)