फास्ट स्पार्स बूलियन मैट्रिक्स चेन उत्पाद


13

तो, मुझे लगभग 100-200 बहुत विरल वर्ग के बूलियन मैट्रीस हैं, जिनकी लंबाई ~ कई दर्जनों है, और मुझे उनके उत्पाद की गणना करने की आवश्यकता है। मुझे पता है कि अगर मैं उन्हें क्रमिक रूप से गुणा करता हूं, तो उत्पाद आमतौर पर प्रत्येक चरण में विरल के रूप में रहेगा।

क्या कोई मैट्रिक्स चेन उत्पाद एल्गोरिदम हैं जो इस मामले में विशेष रूप से तेजी से काम करते हैं?

उच्च स्तर पर, समस्या एक छोटे-से ग्राफ (एनएफए के संक्रमण कार्यों) पर एक-से-कई मैपिंग की एक श्रृंखला की संरचना की गणना करना है, जहां अधिकांश तत्व 0-3 से अधिक नहीं के लिए मैप करते हैं।

(कृपया ध्यान दें कि यह है नहीं हमेशा की तरह "मैट्रिक्स श्रृंखला उत्पाद" समस्या, क्योंकि सभी मैट्रिक्स एक ही आकार के होते हैं और मैं इष्टतम parenthesizing चयन करने के लिए नहीं है)


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

आपके अन्य प्रश्न से आप 0/1 सेमिनार और / या संचालन का उपयोग करते प्रतीत हो रहे हैं , इसके अलावा नहीं / गुणा (जैसा कि समस्या राज्य में लगता है), कृपया इस प्रश्न में स्पष्ट करें
vzn

जवाबों:


10

यह टिप्पणी करने के लिए बहुत लंबा था - मुझे आश्चर्य है कि अगर उन मैट्रिसेस में संरचना है जो उन्हें यादृच्छिक मैट्रिस से अलग तरह से व्यवहार करती है। यादृच्छिक विरल मैट्रीस के उत्पाद शून्य में जाते हैं या जल्दी से गैर-विरल हो जाते हैं।

यहां एक सरल प्रयोग है - 200 यादृच्छिक बाइनरी 50x50 मैट्रिसेस लें, और मैट्रिसेस की संख्या के फ़ंक्शन के रूप में नॉन-जीरो की प्लॉट संख्या। नीचे दिए गए प्लॉट 2000 रन से अधिक मानक विचलन दिखाते हैं। पहला प्लॉट 2% स्पार्सिटी के लिए है, दूसरा प्लॉट 3% के लिए है


(स्रोत: yaroslavvb.com ) (स्रोत: yaroslavvb.com )

मेरे लैपटॉप पर मानक मैट्रिक्स गुणन का उपयोग करते हुए 3 मिनट लग गए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.