خوارزمية شونهيج-ستراسن


خوارزمية شونهاج-ستراسن هي خوارزمية ضرب سريعة تقاربياً للأعداد الصحيحة الكبيرة ، نشرها أرنولد شونهاج وفولكر ستراسن عام 1971. [ 1 ] تعمل هذه الخوارزمية عن طريق تطبيق تحويل فورييه السريع (FFT) بشكل متكرر على الأعداد الصحيحة بتردد 0.. التعقيد الزمني للبتات لضرب عددين مكونين من n خانة باستخدام الخوارزمية هوباستخدام ترميز Big O.
كانت خوارزمية شونهاج-ستراسن أسرع طريقة ضرب معروفة من الناحية التقاربية من عام 1971 حتى عام 2007. وهي أسرع تقاربياً من الطرق الأقدم مثل كاراتسوبا وتوم -كوك ، وتبدأ في التفوق عليها عملياً للأعداد التي تتجاوز 10000 إلى 100000 رقم عشري. [ 2 ] في عام 2007، نشر مارتن فورر خوارزمية ذات تعقيد تقاربي أسرع. [ 3 ] في عام 2019، أثبت ديفيد هارفي وجوريس فان دير هوفن أن ضرب الأعداد متعددة الأرقام له تعقيد نظري أقل من الخوارزمية السابقة.التعقيد؛ ومع ذلك، فإن خوارزميتهم تحتوي على عوامل ثابتة تجعلها بطيئة بشكل لا يمكن تصوره لأي مشكلة عملية (انظر الخوارزمية المجرة ). [ 4 ]
تشمل تطبيقات خوارزمية شونهاج-ستراسن عمليات حسابية ضخمة تُجرى لذاتها، مثل البحث الكبير عن أعداد ميرسين الأولية على الإنترنت وتقريب قيمة π ، بالإضافة إلى تطبيقات عملية مثل تحليل منحنى لينسترا الإهليلجي باستخدام استبدال كرونكر ، الذي يُختزل ضرب كثيرات الحدود إلى ضرب الأعداد الصحيحة. [ 5 ] [ 6 ]
وصف
يحتوي هذا القسم على نسخة مبسطة من الخوارزمية، توضح كيفية حساب الناتجعددان طبيعيان، modulo عدد من الشكل، أينهو عدد ثابت. الأعداد الصحيحةسيتم تقسيمها إلىكتل منلذا، في التطبيقات العملية، من المهم تحقيق التوازن الصحيح بين المعايير.على أي حال، ستوفر هذه الخوارزمية طريقة لضرب عددين صحيحين موجبين، بشرطيتم اختيارها بحيث.
يتركليكن عدد البتات في الإشاراتو، أينهو قوة للعدد اثنين. قسّم الإشاراتوداخلكتل منبتات لكل منها، وتخزين الكتل الناتجة كمصفوفات(والتي سنعتبر مدخلاتها، تبسيطاً للأمر، أعداداً صحيحة ذات دقة عشوائية).
نختار الآن معيارًا لتحويل فورييه، كما يلي. ليكنأن يكون على هذا النحوضع أيضًا، وانظر إلى عناصر المصفوفاتكأعداد صحيحة (بدقة اختيارية) بترددلاحظ أنه بما أن، المعامل كبير بما يكفي لاستيعاب أي عمليات حمل قد تنتج عن الضرب.ووبالتالي، فإن المنتج(modolo)يمكن حساب ) عن طريق تقييم التفافأيضًا، معلديناوهكذاهو بدائيالجذر النوني للوحدة modulo.
نقوم الآن بإجراء تحويل فورييه المنفصل للمصفوفاتفي الحلبةباستخدام جذر الوحدةبالنسبة لأساس فورييه، مما يعطي المصفوفات المحولة. لأنإذا كان قوة للعدد اثنين، فيمكن تحقيق ذلك في وقت لوغاريتمي باستخدام تحويل فورييه السريع .
يترك(الضرب النقطي)، وحساب التحويل العكسيمن المصفوفة، باستخدام جذر الوحدة مرة أخرىالمصفوفةوهي الآن عملية التفاف المصفوفاتوأخيرًا، المنتجيتم الحصول على ذلك من خلال تقييم
يمكن تحسين هذه الخوارزمية الأساسية بعدة طرق. أولاً، ليس من الضروري تخزين أرقامبدقة تعسفية، ولكن فقط حتىالبتات، مما يوفر تمثيلاً آلياً أكثر كفاءة للمصفوفاتثانيًا، من الواضح أن عمليات الضرب في التحويلات الأمامية هي مجرد إزاحات بتية بسيطة. مع بعض الحذر، يمكن أيضًا حساب التحويل العكسي باستخدام الإزاحات فقط. وبالتالي، مع توخي الحذر، يمكن حذف أي عمليات ضرب حقيقية من الخوارزمية باستثناء حالة الضرب النقطي.يتم تقييمها. لذلك من المفيد اختيار المعاييربحيث يمكن إجراء هذا الضرب النقطي بكفاءة، إما لأنه كلمة آلة واحدة أو باستخدام خوارزمية مُحسَّنة لضرب الأعداد الصحيحة لعدد (صغير مثاليًا) من الكلمات. اختيار المعلماتوبالتالي، يُعد هذا مجالاً مهماً لمزيد من تحسين الطريقة.
تفاصيل
يمكن كتابة كل عدد في النظام العددي (الأساس B) على شكل متعدد الحدود:
علاوة على ذلك، يمكن اعتبار عملية ضرب عددين بمثابة حاصل ضرب كثيرتي حدود:
لأن، من أجل:لدينا تعقيد.
باستخدام تحويل فورييه السريع (FFT )، المستخدم في النسخة الأصلية بدلاً من تحويل نظرية الأعداد (NTT )، [ 7 ] مع قاعدة الالتفاف؛ نحصل على
إنه؛، أين وهو المعامل المقابل في فضاء فورييه. ويمكن كتابة ذلك أيضاً على النحو التالي:.
لدينا نفس المعاملات بسبب الخطية تحت تحويل فورييه، ولأن هذه كثيرات الحدود تتكون فقط من حد فريد واحد لكل معامل:
- و
قاعدة الالتفاف:
لقد قمنا بتحويل مشكلة الالتفاف إلى مشكلة ضرب، من خلال تحويل فورييه السريع (FFT).
عن طريق إيجاد تحويل فورييه السريع للاستيفاء متعدد الحدود لكل، يمكن للمرء تحديد المعاملات المطلوبة.
تستخدم هذه الخوارزمية أسلوب فرق تسد لتقسيم المشكلة إلى مشاكل فرعية.
الالتفاف تحت mod N
- ، أين.
عن طريق السماح بما يلي:
- و
أينإذا كان الجذر النوني ، فسيتضح ما يلي: [ 8 ]
وهذا يعني أنه يمكن للمرء استخدام الوزنثم اضرب فيبعد.
بدلاً من استخدام الوزن، كما، في الخطوة الأولى من الاستدعاء الذاتي (عندما، ويمكن حساب ما يلي:
في خوارزمية تحويل فورييه السريع العادية التي تعمل على الأعداد المركبة، يمكن استخدام ما يلي:
مع ذلك، يمكن استخدام تحويل فورييه السريع (FFT) أيضًا كتحويل نظري للأعداد (NTT ) في نظرية شونهاج-ستراسن. هذا يعني أنه يتعين علينا استخدام θ لتوليد الأعداد في حقل منتهٍ (على سبيل المثال،).
جذر الوحدة تحت حقل منتهٍ GF( r ) هو عنصر a بحيثأوعلى سبيل المثال، تعطي GF( p ) ، حيث p عدد أولي ،.
لاحظ أنفي وفيبالنسبة لهؤلاء المرشحين،في ظل مجالها المحدود، وبالتالي نتصرف بالطريقة التي نريدها.
ومع ذلك، لا يزال من الممكن استخدام نفس خوارزميات FFT، طالما أن θ هو جذر الوحدة لحقل منتهٍ.
لإيجاد تحويل FFT/NTT، نقوم بما يلي:
المنتج الأول يساهم فيلكل قيمة k . ثانياً، يُساهم في، بسببتعديل.
للقيام بالعكس:
- أو
وذلك بحسب ما إذا كانت البيانات بحاجة إلى تطبيع.
واحد يضرب فيلتطبيع بيانات تحويل فورييه السريع (FFT) ضمن نطاق محدد، حيث، حيث يتم إيجاد m باستخدام المعكوس الضربي المعياري .
تفاصيل التنفيذ
لماذا N = 2M + 1 mod N
في خوارزمية Schönhage-Strassen،ينبغي اعتبار هذا بمثابة شجرة ثنائية ، حيث توجد القيم فيعن طريق السماح، لكل قيمة K يمكن إيجاد جميع، وجمع كلقم بتقسيم الأزواج إلى M مجموعات مختلفة. باستخدامإلى مجموعةيُعدّ تحويل الأزواج عبر الالتفاف مشكلة كلاسيكية في الخوارزميات. [ 9 ]
مع أخذ هذا في الاعتبار،ساعدنا في التجميعداخلمجموعات لكل مجموعة من المهام الفرعية في العمق k في شجرة مع
لاحظ أنبالنسبة لبعض قيم L، فإن هذا يجعل N عددًا فيرما . عند إجراء عملية حسابية modلدينا حلقة فيرما.
لأن بعض أعداد فيرما هي أعداد فيرما الأولية، يمكن في بعض الحالات تجنب إجراء العمليات الحسابية.
هناك قيم أخرى لـ N كان من الممكن استخدامها، بالطبع، مع نفس مزايا الأعداد الأولية. وذلك بترك، يمكن للمرء أن يمتلك أكبر عدد في نظام العد الثنائي معأجزاء. هو عدد ميرسين، وفي بعض الحالات يكون عددًا أوليًا من أعداد ميرسين. وهو مرشح طبيعي لمنافسة عدد فيرما.
بحثاً عن حرف N آخر
إجراء عدة عمليات حسابية باستخدام باقي القسمة على قيم N مختلفة قد يكون مفيدًا عند حل مسألة الضرب الصحيح. باستخدام نظرية الباقي الصينية ، وبعد تقسيم M إلى أنواع أصغر مختلفة من N ، يمكن إيجاد ناتج عملية الضرب xy [ 10 ].
أعداد فيرما وأعداد ميرسين هي مجرد نوعين من الأعداد، في شيء يسمى عدد فيرما ميرسين المعمم (GSM)؛ مع الصيغة: [ 11 ]
في هذه الصيغة،هو عدد فيرما، وهو عدد ميرسين.
يمكن استخدام هذه الصيغة لتوليد مجموعات من المعادلات، والتي يمكن استخدامها في نظرية الباقي الصينية (CRT): [ 12 ]
- حيث g عدد بحيث يوجد x حيث ، بافتراض
بالإضافة إلى؛، حيث يمثل a عنصرًا يُولّد عناصر فيبطريقة دورية.
لو، أين، ثم.
كيفية اختيار قيمة K لقيمة N محددة
الصيغة التالية مفيدة لإيجاد قيمة K المناسبة (عدد المجموعات التي يتم تقسيم N بت إليها) مع حجم البت N عن طريق حساب الكفاءة : [ 13 ]
N هو حجم البت (المستخدم في) في المستوى الخارجي. K يعطيمجموعات من البتات، حيث.
يتم إيجاد قيمة n من خلال N و K و k عن طريق إيجاد أصغر قيمة لـ x ، بحيث
إذا افترضنا كفاءة تزيد عن 50%،و k صغيرة جدًا مقارنة ببقية الصيغة؛ يحصل المرء على
هذا يعني: عندما يكون شيء ما فعالاً للغاية، فإن قيمة K تكون محدودة من الأعلى بواسطةأو مقيدة تقاربياً من الأعلى بواسطة
الشفرة الزائفة
يمكن الاطلاع على خوارزمية الضرب المعيارية لـ Schönhage-Strassen (مع بعض التحسينات) في نظرة عامة من خلال [ 14 ].
- قسّم كلا العددين المدخلين a و b إلى n معاملًا، كل منها مكون من s بت. استخدم على الأقلبتات لتخزينها، للسماح بتشفير القيمة
- قم بترجيح متجهي المعاملات وفقًا لـ (2.24) بقوى θ عن طريق إجراء تحولات دورية عليهما.
- قم بتبديل المعاملاتو .
- التقييمو. عمليات الضرب بقوى ω هي إزاحات دورية.
- قم بإجراء عمليات الضرب النقطيفيإذا تم استخدام SMUL بشكل متكرر، فقم بتوفير K كمعامل. وإلا، فاستخدم دالة ضرب أخرى مثل T3MUL وقم بالاختزال باستخدام باقي القسمة .بعد ذلك.
- قم بخلط معاملات الضرب .
- احسب معاملات الضرب .
- قم بتطبيق الأثقال الموازنة علىوفقًا لـ (2.25). بما أنويترتب على ذلك
- قم بتطبيع مع( مرة أخرى تحول دوري).
- اجمعثم قم بنشر عمليات الحمل. تأكد من التعامل مع المعاملات السالبة بشكل صحيح.
- قم بإجراء عملية اختزال modulo .
- T3MUL = ضرب توم-كوك
- SMUL = ضرب شونهاج-ستراسين
- التقييم = FFT/IFFT
دراسة إضافية
للحصول على تفاصيل التنفيذ، يمكن الرجوع إلى كتاب " الأعداد الأولية: منظور حسابي" . [ 15 ] يختلف هذا الأسلوب نوعًا ما عن طريقة شونهاج الأصلية في أنه يستغل التحويل الموزون المنفصل لإجراء عمليات الالتفاف السالبة الدورية بكفاءة أكبر. يُعد كتاب " فن برمجة الحاسوب" لكنوت مصدرًا آخر للمعلومات التفصيلية . [ 16 ]
التحسينات
يشرح هذا القسم عددًا من التحسينات العملية المهمة عند تطبيق Schönhage–Strassen.
استخدام خوارزمية ضرب أخرى، داخل الخوارزمية
عند تجاوز نقطة قطع معينة، يكون من الأفضل استخدام خوارزميات ضرب أخرى، مثل ضرب توم-كوك . [ 17 ]
خدعة الجذر التربيعي للعدد 2
الفكرة هي استخدامكجذر لوحدة النظامفي حقل منتهٍ(إنه حل للمعادلة)عند ترجيح القيم في نهج التحويل النظري للأعداد (NTT)، فقد ثبت أنه يوفر 10% من وقت ضرب الأعداد الصحيحة. [ 18 ]
خدعة غرانلوند
عن طريق السماحيمكن للمرء أن يحسب وبالاشتراك مع نظرية الباقي الصينية (CRT) لإيجاد القيم الدقيقة لعملية الضرب uv . [ 19 ]
مراجع
- ^ شونهاج، أرنولد ؛ ستراسن ، فولكر (1971). "Schnelle Multiplikation großer Zahlen" [ الضرب السريع للأعداد الكبيرة ] . الحوسبة (باللغة الألمانية). 7 ( 3– 4): 281– 292. دوى : 10.1007/BF02242355 . S2CID 9738629 .
- ↑ يبلغ التعقيد التقاربي لعملية الضرب في كاراتسوبا حواليوتبلغ التعقيدية التقاربية لعملية الضرب وفقًا لـ Toom-Cook حواليفان ميتر، رودني؛ إيتوه، كوهي م. (2005). "الأسية المعيارية الكمومية السريعة". مجلة Physical Review . 71 (5) 052320. arXiv : quant-ph/0408006 . Bibcode : 2005PhRvA..71e2320V . doi : 10.1103/PhysRevA.71.052320 . S2CID 14983569 . يمكن الاطلاع على مناقشة نقاط التقاطع العملية بين مختلف الخوارزميات في: نظرة عامة على ميزات Magma V2.9، قسم العمليات الحسابية. مؤرشف بتاريخ 20 أغسطس 2006 على موقع Wayback Machine. لويس كارلوس كورونادو غارسيا، " هل يمكن لعملية الضرب في نظام شونهاج تسريع تشفير أو فك تشفير RSA؟ مؤرشف "، جامعة دارمشتات للتكنولوجيا (2005) تستخدم مكتبة GNU Multi-Precision هذه الطريقة لقيم تتراوح بين 1728 و7808 كلمة 64 بت (33000 إلى 150000 رقم عشري)، وذلك حسب بنية النظام. انظر: "ضرب تحويل فورييه السريع (GNU MP 6.2.1)" . gmplib.org . تم الاطلاع عليه بتاريخ 20 يوليو 2021 ."MUL_FFT_THRESHOLD" . ركن مطوري GMP . مؤرشف من الأصل بتاريخ 24 نوفمبر 2010. تم الاطلاع عليه بتاريخ 3 نوفمبر 2011 ."MUL_FFT_THRESHOLD" . gmplib.org . تم الاطلاع عليه بتاريخ 20 يوليو 2021 .
- ↑ خوارزمية فورر لها تعقيد تقاربيفورر، مارتن (2007). "ضرب الأعداد الصحيحة بشكل أسرع" (ملف PDF) . وقائع مؤتمر STOC '07 . ندوة نظرية الحوسبة، سان دييغو، يونيو 2007. الصفحات 57-66 . مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 5 مارس 2007. تاريخ الاسترجاع: 2 أكتوبر 2007 . فورر، مارتن (2009). "ضرب الأعداد الصحيحة بشكل أسرع". مجلة SIAM للحوسبة . 39 (3): 979-1005 . doi : 10.1137/070711761 . ISSN 0097-5397 . تُستخدم خوارزمية فورر في مكتبة البرامج الفرعية للجبر متعدد الحدود الأساسية (BPAS) مفتوحة المصدر. انظر: كوفانوف، سفياتوسلاف؛ مهاجراني، داوود؛ مورينو مازا، مارك؛ وانغ، لينشياو (8 يوليو 2019). "تحويل فورييه السريع لحقل الأعداد الأولية الكبيرة على المعالجات متعددة النوى" . وقائع الندوة الدولية لعام 2019 حول الحساب الرمزي والجبري (ملف PDF) . بكين، الصين: ACM. الصفحات 106-113 . doi : 10.1145/3326229.3326273 . ISBN 978-1-4503-6084-5. S2CID 195848601 .
- ^ هارفي ، ديفيد. فان دير هوفن، يوريس (2021). "ضرب الأعداد الصحيحة في الوقت المناسب( ملف PDF) . حوليات الرياضيات . السلسلة الثانية. 193 (2): 563-617 . doi : 10.4007/annals.2021.193.2.4 . MR 4224716. S2CID 109934776 .
- ↑ تُستخدم هذه الطريقة في مكتبة إدارة المحتوى الإلكتروني (ECM) التابعة لمعهد INRIA .
- ↑ "ECMNET" . members.loria.fr . تم الاطلاع عليه بتاريخ 2023-04-09 .
- ↑ بيكر، هانو؛ هوانغ، فينسنت؛ ج. كانويشر، ماتياس؛ باني، لورنز (2022). "الضرب الفعال للأعداد الصحيحة الصغيرة نوعًا ما باستخدام التحويلات النظرية للأعداد" (PDF) .
- ↑ لودرز، كريستوف (2014). "الضرب السريع للأعداد الصحيحة الكبيرة: تطبيق وتحليل خوارزمية DKSS" . ص 26.
- ^ كلاينبرج ، جون. تاردوس، إيفا (2005). تصميم الخوارزمية (1 ed.). بيرسون. ص. 237. ردمك 0-321-29535-8.
- ^ جودري ، بيريك. ألكسندر، كروبا؛ بول زيمرمان (2007). “تطبيق قائم على GMP لخوارزمية مضاعفة الأعداد الصحيحة الكبيرة لـ Schönhage-Strassen” (PDF) . ص. 6.
- ↑ إس. ديميتروف، فاسيل؛ في. كوكليف، تودور؛ دي. دونيفسكي، بوريسلاف (1994). "تحويل فيرما-ميرسين المعمم لنظرية الأعداد" . ص 2.
- ↑ إس. ديميتروف، فاسيل؛ في. كوكليف، تودور؛ دي. دونيفسكي، بوريسلاف (1994). "تحويل فيرما-ميرسين المعمم لنظرية الأعداد" . ص 3.
- ^ جودري ، بيريك. كروبا، الكسندر؛ زيمرمان، بول (2007). “التنفيذ القائم على GMP لخوارزمية مضاعفة الأعداد الصحيحة الكبيرة لـ Schönhage-Strassen” (PDF) . ص. 2.
- ↑ لودرز، كريستوف (2014). "الضرب السريع للأعداد الصحيحة الكبيرة: تطبيق وتحليل خوارزمية DKSS" . ص 28.
- ↑ ر. كراندال و س. بوميرانس. الأعداد الأولية - منظور حسابي . الطبعة الثانية، سبرينغر، 2005. القسم 9.5.6: طريقة شونهاج، ص 502. ISBN 0-387-94777-9
- ↑ كنوت، دونالد إي. (1997). "القسم 4.3.3.ج: تحويلات فورييه المنفصلة" . فن برمجة الحاسوب . المجلد 2: الخوارزميات شبه العددية ( الطبعة الثالثة). أديسون-ويسلي. الصفحات 305-311 . ISBN 0-201-89684-2.
- ^ جودري ، بيريك. كروبا، الكسندر؛ زيمرمان، بول (2007). “تطبيق قائم على GMP لخوارزمية مضاعفة الأعداد الصحيحة الكبيرة لـ Schönhage-Strassen” (PDF) . ص. 7.
- ^ جودري ، بيريك. كروبا، الكسندر؛ زيمرمان، بول (2007). “تطبيق قائم على GMP لخوارزمية مضاعفة الأعداد الصحيحة الكبيرة لـ Schönhage-Strassen” (PDF) . ص. 6.
- ^ جودري ، بيريك. كروبا، الكسندر؛ زيمرمان، بول (2007). “تطبيق قائم على GMP لخوارزمية مضاعفة الأعداد الصحيحة الكبيرة لـ Schönhage-Strassen” (PDF) . ص. 6.
- خوارزميات الحساب الحاسوبي
- الضرب
