خوارزمية ستراسن
في الجبر الخطي ، تُعد خوارزمية ستراسن ، التي سُميت نسبةً إلى فولكر ستراسن ، خوارزمية لضرب المصفوفات . وهي أسرع من خوارزمية ضرب المصفوفات القياسية للمصفوفات الكبيرة، مع تعقيد تقاربي أفضل .عكسعلى الرغم من أن الخوارزمية البسيطة غالبًا ما تكون أفضل للمصفوفات الصغيرة، إلا أن خوارزمية ستراسن أبطأ من أسرع الخوارزميات المعروفة للمصفوفات الكبيرة جدًا، ولكن هذه الخوارزميات الضخمة غير مجدية عمليًا، لأنها أبطأ بكثير للمصفوفات ذات الحجم العملي. أما بالنسبة للمصفوفات الصغيرة، فتوجد خوارزميات أسرع.
تعمل خوارزمية ستراسن مع أي حلقة ، مثل الجمع/الضرب، ولكن ليس مع جميع الحلقات شبه الحلقية ، مثل الجمع الأدنى أو الجبر البولياني ، حيث لا تزال الخوارزمية البسيطة تعمل، وما يسمى بضرب المصفوفات التوافقي .
تاريخ
نشر فولكر ستراسن هذه الخوارزمية لأول مرة عام 1969، وبذلك أثبت أنلم تكن خوارزمية ضرب المصفوفات العامة مثالية. [ 1 ] أدى نشر خوارزمية ستراسن إلى مزيد من الأبحاث حول ضرب المصفوفات، مما أدى إلى تحديد حدود دنيا تقاربية وتحسين الحدود العليا الحسابية.
الخوارزمية

يترك،ليكن مصفوفتين مربعتين فوق حلقةعلى سبيل المثال، المصفوفات التي تكون عناصرها أعدادًا صحيحة أو أعدادًا حقيقية. الهدف من ضرب المصفوفات هو حساب حاصل ضرب المصفوفات.يفترض الشرح التالي للخوارزمية أن جميع هذه المصفوفات لها أحجام من قوى العدد اثنين (أي،)، لكن هذا ضروري من الناحية النظرية فقط - إذا كانت المصفوفات،ليست من النوع، ويمكن ملء الصفوف والأعمدة "المفقودة" بالأصفار للحصول على مصفوفات بأحجام قوى العدد اثنين - على الرغم من أن التطبيقات الحقيقية للخوارزمية لا تفعل ذلك عمليًا.
أقسام خوارزمية Strassen،وإلى مصفوفات كتل متساوية الحجم
معستكون الخوارزمية البسيطة كالتالي:
لا يقلل هذا التركيب من عدد عمليات الضرب: لا تزال هناك حاجة إلى 8 عمليات ضرب لكتل المصفوفة لحسابالمصفوفات، نفس عدد عمليات الضرب المطلوبة عند استخدام ضرب المصفوفات القياسي.
تحدد خوارزمية ستراسن قيمًا جديدة بدلاً من ذلك:
باستخدام 7 عمليات ضرب فقط (واحدة لكل) بدلاً من 8. يمكننا الآن التعبير عنمن ناحية:
نكرر عملية القسمة هذه بشكل متكرر حتى تتحول المصفوفات الفرعية إلى أعداد (عناصر الحلقة).إذا كان حجم المصفوفة الأصلية، كما ذُكر أعلاه، ليس قوةً للعدد 2، فإن الناتج سيكون له صفوف وأعمدة صفرية تمامًا مثلوثم يتم تجريد هذه العناصر عند هذه النقطة للحصول على المصفوفة (الأصغر).كنا نرغب بذلك حقاً.
تتحول التطبيقات العملية لخوارزمية ستراسن إلى طرق ضرب المصفوفات القياسية للمصفوفات الفرعية الصغيرة بما يكفي، حيث تكون هذه الخوارزميات أكثر كفاءة. وتعتمد نقطة التحول التي تكون عندها خوارزمية ستراسن أكثر كفاءة على التطبيق المحدد والأجهزة. وقد قدّر باحثون سابقون أن خوارزمية ستراسن أسرع للمصفوفات التي يتراوح عرضها بين 32 و128 في التطبيقات المُحسّنة. [ 2 ] ومع ذلك، لوحظ أن نقطة التحول هذه تتزايد في السنوات الأخيرة، ووجدت دراسة أجريت عام 2010 أن خطوة واحدة من خوارزمية ستراسن غالبًا ما تكون غير مفيدة على البنى الحالية، مقارنةً بالضرب التقليدي المُحسّن للغاية، إلى أن يتجاوز حجم المصفوفة 1000 أو أكثر، وحتى بالنسبة لأحجام المصفوفات التي تبلغ عدة آلاف، تكون الفائدة هامشية في أحسن الأحوال (حوالي 10% أو أقل). [ 3 ] ولاحظت دراسة أحدث (2016) فوائد للمصفوفات الصغيرة التي يصل حجمها إلى 512، وفائدة تقارب 20%. [ 4 ]
تحسينات على خوارزمية ستراسن
من الممكن تقليل عدد عمليات جمع المصفوفات باستخدام الشكل التالي الذي اكتشفه وينوغراد في عام 1971: [ 5 ]
أين.
يؤدي هذا إلى تقليل عدد عمليات جمع وطرح المصفوفات من 18 إلى 15. ويبقى عدد عمليات ضرب المصفوفات 7، ويبقى التعقيد التقاربي كما هو. [ 6 ]
تم تحسين الخوارزمية بشكل أكبر في عام 2017 باستخدام أساس بديل، [ 7 ] مما أدى إلى تقليل عدد عمليات جمع المصفوفات لكل خطوة ثنائية الخطية إلى 12 مع الحفاظ على عدد عمليات ضرب المصفوفات، ومرة أخرى في عام 2023: [ 8 ]
التعقيد التقاربي
أظهرت الخطوط العريضة للخوارزمية أعلاه أنه يمكن الاكتفاء بسبع عمليات ضرب مصفوفات فقط، بدلاً من ثماني عمليات كما هو معتاد، للكتل الفرعية للمصفوفة. من ناحية أخرى، يجب إجراء عمليات جمع وطرح للكتل، مع أن هذا لا يؤثر على التعقيد الكلي: جمع مصفوفات بحجملا يتطلب الأمر سوىالعمليات الحسابية، بينما عملية الضرب أكثر تكلفة بكثير (تقليديًا)عمليات الجمع أو الضرب).
السؤال إذن هو: ما عدد العمليات التي يحتاجها المرء بالضبط لخوارزميات ستراسن، وكيف يقارن ذلك بضرب المصفوفات القياسي الذي يستغرق تقريبًا(أين) العمليات الحسابية، أي التعقيد التقاربي.
يمكن حساب عدد عمليات الجمع والضرب المطلوبة في خوارزمية ستراسن على النحو التالي: ليكنليكن عدد العمليات لـالمصفوفة. ثم بتطبيق خوارزمية ستراسن بشكل متكرر، نرى أن، لبعض الثوابتيعتمد ذلك على عدد عمليات الجمع التي تُجرى في كل تطبيق للخوارزمية.أي، التعقيد التقاربي لضرب المصفوفات ذات الحجماستخدام خوارزمية ستراسن هو مع ذلك، يأتي انخفاض عدد العمليات الحسابية على حساب انخفاض طفيف في الاستقرار العددي [ 9 ] ، كما تتطلب الخوارزمية ذاكرة أكبر بكثير مقارنةً بالخوارزمية البسيطة. يجب توسيع أبعاد المصفوفتين الأوليتين إلى أقرب قوة للعدد 2، مما يؤدي إلى تخزين ما يصل إلى أربعة أضعاف عدد العناصر، وتحتوي كل مصفوفة من المصفوفات المساعدة السبع على ربع عدد العناصر في المصفوفات الموسعة.
يجب مقارنة خوارزمية ستراسن بالطريقة "البسيطة" لضرب المصفوفات، والتي تتطلب 8 عمليات ضرب للكتل الفرعية بدلاً من 7. وهذا من شأنه أن يُنتج التعقيد المتوقع من الطريقة القياسية.تُظهر مقارنة هاتين الخوارزميتين أن خوارزمية ستراسن أسرع تقاربياً : يوجد حجملذا، فإن ضرب المصفوفات الأكبر حجمًا باستخدام خوارزمية ستراسن يكون أكثر كفاءة من الطريقة "التقليدية". مع ذلك، لا يعني هذا بالضرورة أن خوارزمية ستراسن أسرع دائمًا حتى مع المصفوفات الصغيرة، وفي الواقع العملي، هذا ليس هو الحال: فبالنسبة للمصفوفات الصغيرة، تفوق تكلفة عمليات الجمع الإضافية لكتل المصفوفة التوفير في عدد عمليات الضرب. هناك أيضًا عوامل أخرى لم يشملها التحليل أعلاه، مثل الفرق في التكلفة على الأجهزة الحالية بين تحميل البيانات من الذاكرة إلى المعالجات مقابل تكلفة إجراء العمليات الفعلية على هذه البيانات. نتيجةً لهذه الاعتبارات، تُستخدم خوارزمية ستراسن عادةً مع المصفوفات "الكبيرة" فقط. هذا التأثير أكثر وضوحًا مع الخوارزميات البديلة مثل خوارزمية كوبرسميث ووينوغراد : فبينما تكون أسرع تقاربًا ، إلا أن نقطة التحولإنها كبيرة جدًا لدرجة أن الخوارزمية لا تُستخدم بشكل عام على المصفوفات التي يصادفها المرء في الممارسة العملية.
الرتبة أو التعقيد الثنائي الخطي
يُعدّ التعقيد الثنائي الخطي أو رتبة التحويل الثنائي الخطي مفهومًا مهمًا في التعقيد التقاربي لضرب المصفوفات. رتبة التحويل الثنائي الخطي :\mathbf {A} \times \mathbf {B} \rightarrow \mathbf {C} } فوق الحقل F يتم تعريفه على أنه (إلى حد ما إساءة استخدام التدوين )
بمعنى آخر، رتبة الخريطة الثنائية الخطية هي طول أقصر عملية حسابية ثنائية خطية لها. [ 10 ] يُظهر وجود خوارزمية ستراسن أن رتبةلا تتجاوز عملية ضرب المصفوفات سبعة. ولتوضيح ذلك، دعونا نعبر عن هذه الخوارزمية (إلى جانب الخوارزمية القياسية) كعملية حسابية ثنائية الخطية. في حالة المصفوفات، تتكون الفضاءات الثنائية A * و B * من دوال في الحقل F ناتجة عن ضرب نقطي مزدوج قياسي (أي في هذه الحالة مجموع جميع عناصر ضرب هادامارد ).
| الخوارزمية القياسية | خوارزمية ستراسن | ||||||
| 1 | |||||||
| 2 | |||||||
| 3 | |||||||
| 4 | |||||||
| 5 | |||||||
| 6 | |||||||
| 7 | |||||||
| 8 | |||||||
يمكن إثبات أن العدد الإجمالي لعمليات الضرب الأوليةإن المطلوب لضرب المصفوفات مرتبط ارتباطًا وثيقًا بالرتبة تقاربًا، أيأو بتعبير أدق، بما أن الثوابت معروفة،إحدى الخصائص المفيدة للرتبة هي أنها شبه ضربية بالنسبة لحاصل ضرب الموترات ، وهذا يمكّن المرء من إثبات أنيمكن إنجاز عملية ضرب المصفوفات بما لا يزيد عنعمليات الضرب الأساسية لأي. (هذاحاصل ضرب الموتر ذي الرتبة nعملية ضرب المصفوفات مع نفسها —يتم تحقيق قوة الموتر رقم -th من خلال الخطوة التكرارية في الخوارزمية الموضحة.)
سلوك ذاكرة التخزين المؤقت
خوارزمية ستراسن لا تعتمد على ذاكرة التخزين المؤقت . وقد أظهر تحليل سلوكها في ذاكرة التخزين المؤقت أنها تتسبب في مشاكل.
أخطاء التخزين المؤقت أثناء التنفيذ، بافتراض حجم تخزين مؤقت مثالي(أي معخطوط طويلة). [ 11 ] : 13
اعتبارات التنفيذ
يذكر الوصف أعلاه أن المصفوفات مربعة، وأن حجمها قوة من قوى العدد اثنين ، وأنه ينبغي استخدام الحشو عند الحاجة. يسمح هذا القيد بتقسيم المصفوفات إلى نصفين، بشكل متكرر، حتى الوصول إلى حد الضرب القياسي . يُبسط هذا القيد الشرح وتحليل التعقيد، ولكنه ليس ضروريًا في الواقع؛ [ 12 ] وفي الحقيقة، سيؤدي حشو المصفوفة كما هو موضح إلى زيادة وقت الحساب، وقد يُلغي بسهولة التوفير الطفيف في الوقت الذي تم الحصول عليه باستخدام الطريقة في المقام الأول.
سيراعي التنفيذ الجيد ما يلي:
- ليس من الضروري ولا من المستحسن استخدام خوارزمية ستراسن حتى في حالة الأعداد القياسية. بالمقارنة مع ضرب المصفوفات التقليدي، تضيف الخوارزمية قيمة كبيرةعبء العمل في عمليات الجمع والطرح؛ لذا، عند التعامل مع أعداد أقل من حجم معين، يُفضّل استخدام الضرب التقليدي. على سبيل المثال،لا حاجة إلى إضافة حشو إلىلأنه يمكن تقسيمه إلىيمكن بعد ذلك استخدام المصفوفات والضرب التقليدي على هذا المستوى.
- يمكن تطبيق هذه الطريقة على المصفوفات المربعة ذات أي بُعد. [ 3 ] إذا كان البُعد زوجيًا، تُقسّم المصفوفة إلى نصفين كما هو موضح. أما إذا كان البُعد فرديًا، فيُضاف صف وعمود واحد من الأصفار أولًا. يمكن تطبيق هذه الأصفار أثناء المعالجة أو عند الحاجة، ثم تُحذف الصفوف والأعمدة الزائدة عند تكوين النتيجة. على سبيل المثال، لنفترض أن المصفوفات هييمكن تقسيمها بحيث يكون الجزء العلوي الأيسروالجزء السفلي الأيمن هوأينما تتطلب العمليات ذلك، أبعاديتم إضافة أصفار إلىأولاً. لاحظ، على سبيل المثال، أن المنتجيُستخدم فقط في الصف السفلي من المخرجات، لذا فهو مطلوب فقط أن يكونصفوف عالية؛ وبالتالي العامل الأيسرلا يلزم استخدام ما يلي لتوليدهصفوف عالية؛ وبالتالي، لا حاجة لزيادة هذا المجموع إلىصفوف؛ من الضروري فقط إضافة حشو.لأعمدة للمطابقة.
علاوة على ذلك، ليس من الضروري أن تكون المصفوفات مربعة. يمكن تقسيم المصفوفات غير المربعة إلى نصفين باستخدام نفس الطرق، مما ينتج عنه مصفوفات غير مربعة أصغر. إذا كانت المصفوفات غير مربعة بدرجة كافية، فسيكون من المفيد تقليل العملية الأولية إلى عمليات ضرب أكثر مربعة، باستخدام طرق بسيطة هي في الأساس ، على سبيل المثال:
- منتج ذو حجميمكن القيام بذلك على شكل 20 عملية منفصلةالعمليات، المرتبة لتشكيل النتيجة؛
- منتج ذو حجميمكن القيام بذلك على شكل 10 أجزاء منفصلةالعمليات، التي يتم جمعها لتشكيل النتيجة.
ستجعل هذه التقنيات التنفيذ أكثر تعقيدًا، مقارنةً بمجرد إضافة الحشو إلى مربع قوة اثنين؛ ومع ذلك، من المعقول افتراض أن أي شخص يقوم بتنفيذ Strassen، بدلاً من الضرب التقليدي، سيضع أولوية أعلى على الكفاءة الحسابية من بساطة التنفيذ.
عمليًا، يمكن تطبيق خوارزمية ستراسن لتحقيق أداء أفضل من الضرب التقليدي حتى بالنسبة للمصفوفات الصغيرة جدًا[ 4 ] بالنسبة للمصفوفات غير المربعة على الإطلاق، ودون الحاجة إلى مساحة عمل تتجاوز المخازن المؤقتة اللازمة بالفعل لعملية الضرب التقليدية عالية الأداء.
انظر أيضاً
- التعقيد الحسابي للعمليات الرياضية
- حذف جاوس-جوردان
- التعقيد الحسابي لضرب المصفوفات
- منحنى ترتيب Z
- خوارزمية كاراتسوبا ، لضرب الأعداد الصحيحة المكونة من n رقمًا فيبدلاً من فيوقت
- تستخدم خوارزمية ضرب الأعداد المركبة المماثلة 3 عمليات ضرب حقيقية بدلاً من 4 عمليات لضرب عددين مركبين
- خوارزمية توم-كوك ، وهي تعميم أسرع لخوارزمية كاراتسوبا، تسمح بتقسيم البيانات بشكل متكرر إلى أكثر من كتلتين في وقت واحد.
مراجع
- ↑ ستراسن، فولكر (1969). "الحذف الغاوسي ليس الأمثل". الرياضيات العددية 13 (4): 354-356 . doi : 10.1007/BF02165411 . S2CID 121656251 .
- ↑ سكينا، ستيفن س. (1998)، "القسم 8.2.3 ضرب المصفوفات"، دليل تصميم الخوارزميات ، برلين، نيويورك: سبرينغر-فيرلاغ ، ISBN 978-0-387-94860-7.
- 1 2 دالبرتو، باولو؛ نيكولاو، ألكساندرو (2005). استخدام التكرار لتعزيز أداء أطلس (ملف PDF) . المؤتمر الدولي السادس للحوسبة عالية الأداء.
- ١ ٢ هوانغ، جيانيو؛ سميث، تايلر م.؛ هنري، جريج م.؛ فان دي جين، روبرت أ. (١٣ نوفمبر ٢٠١٦). خوارزمية ستراسن المُعاد تحميلها . SC16: المؤتمر الدولي للحوسبة عالية الأداء والشبكات والتخزين والتحليل . مطبعة IEEE. الصفحات ٦٩٠-٧٠١ . doi : 10.1109/SC.2016.58 . ISBN 9781467388153تم الاطلاع عليه بتاريخ 1 نوفمبر 2022 .
- ↑ وينوغراد، س. (أكتوبر 1971). "حول ضرب المصفوفات من الرتبة 2 × 2" . الجبر الخطي وتطبيقاته . 4 (4): 381-388 . doi : 10.1016/0024-3795(71)90009-7 .
- ↑ كنوت (1997) ، ص 500.
- ↑ كارشتات، إيلاي؛ شوارتز، أوديد (24 يوليو 2017). "ضرب المصفوفات، أسرع قليلاً" . وقائع الندوة التاسعة والعشرين لجمعية الحوسبة الآلية (ACM) حول التوازي في الخوارزميات والهياكل . جمعية الحوسبة الآلية (ACM). الصفحات 101-110 . doi : 10.1145/3087556.3087579 . ISBN 978-1-4503-4593-4.
- ↑ شوارتز، عوديد؛ فاكنين، نوا (31-12-2023). "لعبة الحصى وأساس بديل لضرب المصفوفات عالي الأداء" . مجلة SIAM للحوسبة العلمية . 45 (6): C277– C303. Bibcode : 2023SJSC...45C.277S . doi : 10.1137/22M1502719 . ISSN 1064-8275 .
- ↑ ويب، ميلر (1975). "التعقيد الحسابي والاستقرار العددي". مجلة SIAM للحوسبة 4 ( 2): 97-107 . doi : 10.1137/0204009 .
- ^ بورجيسر. كلاوسن؛ شكراللهي (1997). نظرية التعقيد الجبرية . سبرينغر-فيرلاغ. رقم ISBN 3-540-60582-7.
- ↑ فريجو، م.؛ ليسرسون، سي إي ؛ بروكوب، هـ .؛ راماتشاندران، س. (1999). خوارزميات غير حساسة لذاكرة التخزين المؤقت (ملف PDF) . وقائع ندوة IEEE حول أسس علوم الحاسوب (FOCS). الصفحات 285-297 .
- ↑ هايام، نيكولاس ج. (1990). "استغلال الضرب السريع للمصفوفات ضمن مكتبة BLAS من المستوى 3" (ملف PDF) . معاملات ACM في البرمجيات الرياضية . 16 (4): 352-368 . doi : 10.1145/98267.98290 . hdl : 1813/6900 . S2CID 5715053 .
- توماس هـ. كورمن ، تشارلز إي. ليسرسون ، رونالد ل. ريفست ، وكليفورد شتاين . مقدمة في الخوارزميات ، الطبعة الثانية. مطبعة معهد ماساتشوستس للتكنولوجيا وماكجرو هيل، 2001. ISBN 0-262-03293-7الفصل 28: القسم 28.2: خوارزمية ستراسن لضرب المصفوفات، الصفحات 735-741 .
- كنوت، دونالد (1997). فن برمجة الحاسوب ، الخوارزميات شبه العددية . المجلد الثاني ( الطبعة الثالثة). أديسون-ويسلي. ISBN 0-201-89684-2.
روابط خارجية
- وايسشتاين، اريك دبليو “صيغ ستراسين” . عالم الرياضيات .(يتضمن أيضًا صيغًا لعكس المصفوفة بسرعة )
- تايلر ج. إرنست، خوارزمية ستراسن على محرك النطاق العريض الخلوي
- خوارزميات ضرب المصفوفات
- خوارزميات فرق تسد
