अस्वीकरण: निम्नलिखित विधि कठोरता से इष्टतम साबित नहीं हुई है। एक अनौपचारिक प्रमाण प्रदान किया जाता है।
उत्पाद के वर्ग पर विचार करते समय समस्या सबसे कुशल ऑर्डरिंग को कम करती है।
उदाहरण के लिए, जब जैसे को देखकर , हम केवल करने के लिए बेहतर हल की जरूरत है ( एक बी सी ) 2 को यह फैलता है के बाद से एक बी सी ए बी सी । A B C को फिर से सम्मिलित करके कोई उपयोगी आदेश सूचना नहीं जोड़ी गई है । यहाँ अंतर्ज्ञान यह है कि चूंकि इष्टतम ऑर्डरिंग की समस्या को नीचे-ऊपर हल किया जा सकता है, इसलिए समान मैट्रिस का उपयोग करने वाले अधिक तत्वों से युक्त उच्च क्रम अप्रासंगिक हैं।(ABC)50(ABC)2ABCABCABC
का सबसे अच्छा आदेश ढूँढना मैट्रिक्स चेन गुणा समस्या को कम कर देता है। एक इष्टतम आदेश खोजने के बाद, आदेश में ट्रिपलेट (n-tuple आम तौर पर) के लिए घातांक लागू करें।ABCABC
उदाहरण के लिए, यदि वर्ग के लिए इष्टतम आदेश , तो प्रारंभिक समस्या का समाधान A ( B ( C A ) ) 49 B C है ।A(B(CA))BCA(B(CA))49BC
सारांश में:
1) को सुलझाने में पहला कदम हल करने के लिए है ( एक 1 एक 2 ⋯ एक एन ) 2 ।
2) सॉल्विंग ( A 1 A 2 Sol A n ) 2 को मैट्रिक्स चैन मल्टीप्लिकेशन समस्या के उदाहरण के रूप में जाना जाता है।
3) एन-टपल आदेश का उपयोग करते हुए जी (2) हम में से कुछ स्वाद के रूप में) के लिए (1 समाधान दे देंगे में समाधान से एक 1 ⋅ एक(A1A2⋯An)m(A1A2⋯An)2
(A1A2⋯An)2
G (ध्यान दें कि (2) को सुलझाने से किसी भी अन्य समूहों में अच्छी तरह से लागू किया जाना चाहिए)।A1⋅A2⋅Gm−1⋅An
अनौपचारिक प्रमाण
दो मैट्रिस, का उपयोग करते हुए सबसे सरल मामले को ध्यान में रखते हुए , हम ध्यान दें कि ए और बी में क्रमशः एक्स × वाई और वाई × एक्स का आयाम है। ए और बी का उपयोग करने वाले किसी भी उत्पाद में निम्न आयाम हैं:(AB)nABX×YY×XAB
Y × X Y × Y X × XX×Y
Y×X
Y×Y
X×X
हम या तो या वाई ≤ एक्स ।X<YY≤X
मान 1 ए): ए बी में आयाम एक्स × एक्स है , और यह ऑर्डर नीचे-अप दृष्टिकोण से इष्टतम होने की गारंटी है। ए और बी का कोई अन्य विन्यास या तो समान रूप से अच्छा है, या इससे भी बदतर है। इस प्रकार, समस्या को जानबूझकर ( ए बी ) एन के रूप में हल किया गया है ।X<Y
ABX×XAB(AB)n
धारणा 1b): बी एक आयाम है Y × वाई । यह ए और बी से जुड़े सभी उत्पादों के लिए इष्टतम आदेश है । इस प्रकार, समाधान को जानबूझकर ए ( बी ए ) एन - 1 बी के रूप में पाया जाता है ।Y≤X
BAY×YABA(BA)n−1B
यह सबूत को समाप्त करता है, और हमने केवल , स्क्वायर समस्या में पाए गए दो आदेशों पर ध्यान दिया है।ABAB
अधिक मैट्रिस का उपयोग करना, तर्क समान है। शायद एक प्रेरक प्रमाण संभव है? सामान्य विचार यह है कि वर्ग के लिए एमसीएम को हल करने के लिए सभी शामिल मैट्रिसेस के साथ संचालन के लिए इष्टतम आकार मिलेगा।
मामले का अध्ययन:
julia> a=rand(1000,2);
julia> b=rand(2,1000);
julia> c=rand(1000,100);
julia> d=rand(100,1000);
julia> e=rand(1000,1000);
julia> @time (a*b*c*d*e)^30;
0.395549 seconds (26 allocations: 77.058 MB, 1.58% gc time)
# Here I use an MCM solver to find out the optimal ordering for the square problem
julia> Using MatrixChainMultiply
julia> matrixchainmultiply("SOLVE_SQUARED", a,b,c,d,e,a,b,c,d,e)
Operation: SOLVE_SQUARED(A...) = begin # none, line 1:
A[1] * (((((A[2] * A[3]) * (A[4] * (A[5] * A[6]))) * (A[7] * A[8])) * A[9]) * A[10])
end
Cost: 6800800
# Use the ordering found, note that exponentiation is applied to the group of 5 elements
julia> @time a*(((((b*c)*(d*(e*a)))^29*(b*c))*d)*e);
0.009990 seconds (21 allocations: 7.684 MB)
# I also tried using the MCM for solving the problem directly
julia> @time matrixchainmultiply([30 instances of a,b,c,d,e]);
0.094490 seconds (4.02 k allocations: 9.073 MB)