2025-11-23T08:55:16.500829

Misfortunes of a mathematicians' trio using Computer Algebra Systems: Can we trust?

Durán, Pérez, Varona
Computer algebra systems are a great help for mathematical research but sometimes unexpected errors in the software can also badly affect it. As an example, we show how we have detected an error of Mathematica computing determinants of matrices of integer numbers: not only it computes the determinants wrongly, but also it produces different results if one evaluates the same determinant twice.
academic

سوء حظ ثلاثي من علماء الرياضيات باستخدام أنظمة الجبر الحاسوبية: هل يمكننا الثقة؟

المعلومات الأساسية

  • معرّف الورقة: 1312.3270
  • العنوان: سوء حظ ثلاثي من علماء الرياضيات باستخدام أنظمة الجبر الحاسوبية: هل يمكننا الثقة؟
  • المؤلفون: أنطونيو خ. دورán (جامعة إشبيلية)، ماريو بيريز (جامعة سرقسطة)، خوان إل. فارونا (جامعة لا ريوخا)
  • التصنيف: cs.SC (الحساب الرمزي)، cs.MS (البرمجيات الرياضية)
  • تاريخ النشر: 15 أكتوبر 2013 (نسخة arXiv المسبقة)
  • رابط الورقة: https://arxiv.org/abs/1312.3270

الملخص

تقدم أنظمة الجبر الحاسوبية فوائد كبيرة للبحث الرياضي، لكن الأخطاء غير المتوقعة في البرمجيات قد تؤثر بشكل خطير على البحث. كمثال، يوضح المؤلفون كيف اكتشفوا خطأً في Mathematica عند حساب محددات المصفوفات الصحيحة: فهو لا يحسب المحدد بشكل خاطئ فحسب، بل ينتج عن حساب نفس المحدد مرتين نتائج مختلفة.

خلفية البحث والدافع

  1. المشكلة المراد حلها: اكتشف المؤلفون أثناء استخدام Mathematica للبحث الرياضي وجود أخطاء خطيرة في البرمجيات عند حساب محددات المصفوفات الصحيحة الكبيرة، بما في ذلك نتائج حسابية خاطئة ونتائج مختلفة من نفس الحساب.
  2. أهمية المشكلة:
    • يعتمد علماء الرياضيات بشكل متزايد على أنظمة الجبر الحاسوبية في البحث
    • قد تؤدي النتائج الحسابية الخاطئة إلى استنتاجات رياضية خاطئة
    • للحسابات الصحيحة الكبيرة تطبيقات مهمة في مجالات مثل التشفير
  3. قيود الطرق الموجودة:
    • أنظمة الجبر الحاسوبية التجارية عبارة عن "صناديق سوداء" بخوارزميات غير شفافة
    • عادة لا يتم الإفصاح عن الأخطاء المعروفة للمستخدمين
    • يصعب تطبيق تقنيات التحقق من البرمجيات الحديثة
  4. دافع البحث: اكتشف المؤلفون أثناء البحث عن توسيع نتائج Karlin و Szegő حول كثيرات الحدود المتعامدة أن Mathematica و Maple أعطيا نتائج حسابية مختلفة، مما أدى إلى التحقيق العميق الذي كشف عن أخطاء منهجية في Mathematica.

المساهمات الأساسية

  1. اكتشاف والإبلاغ عن خطأ حسابي خطير في Mathematica: ينتج عن حساب محددات المصفوفات الصحيحة الكبيرة نتائج خاطئة
  2. توفير طريقة قابلة للتكرار لتوليد الأخطاء: تصميم برنامج عشوائي لتوليد مصفوفات تثير الخطأ
  3. الكشف عن الطبيعة غير الحتمية للخطأ: قد ينتج عن حساب محدد نفس المصفوفة نتائج مختلفة
  4. طرح تساؤلات حول موثوقية أنظمة الجبر الحاسوبية: إثارة نقاش مهم حول كيفية الثقة في هذه الأنظمة

شرح الطريقة

عملية اكتشاف المشكلة

أثناء دراسة محدد Casorati لكثيرات الحدود المتعامدة:

P_{f_1}(a_k) & P_{f_1}(a_{k+1}) & \cdots & P_{f_1}(a_{k+l}) \\ P_{f_2}(a_k) & P_{f_2}(a_{k+1}) & \cdots & P_{f_2}(a_{k+l}) \\ \vdots & \vdots & \ddots & \vdots \\ P_{f_l}(a_k) & P_{f_l}(a_{k+1}) & \cdots & P_{f_l}(a_{k+l}) \end{pmatrix}$$ من خلال استخدام الأعداد الصحيحة لبناء جميع الأمثلة لتجنب مشاكل الفاصلة العائمة، لكن اكتشفوا أن Mathematica و Maple أعطيا نتائج مختلفة. ### طريقة عزل الخطأ لعزل مشكلة الحساب، صمم المؤلفون الطريقة التالية لتوليد مصفوفات تثير الخطأ: 1. **توليد المصفوفة الأساسية**: ```mathematica basicMatrix = Table[Table[RandomInteger[{-99, 99}], {i, 1, 14}], {j, 1, 14}] ``` 2. **إنشاء أعداد صحيحة كبيرة**: ```mathematica powersMatrix = DiagonalMatrix[{10^123, 10^152, 10^185, 10^220, 10^397, 10^449, 10^503, 10^563, 10^979, 10^1059, 10^1143, 10^1229, 10^1319, 10^1412}] ``` 3. **إضافة اضطرابات عشوائية**: ```mathematica smallMatrix = Table[Table[RandomInteger[{-999, 999}], {i, 1, 14}], {j, 1, 14}] ``` 4. **بناء المصفوفة النهائية**: ```mathematica bigMatrix = basicMatrix.powersMatrix + smallMatrix ``` ### التحقق من الخطأ من خلال حساب محدد نفس المصفوفة عدة مرات للتحقق من الخطأ: ```mathematica a = Det[bigMatrix]; b = Det[bigMatrix]; ``` تم اكتشاف أن `a==b` غالباً ما ترجع `False`. ## إعداد التجربة ### بيئة الاختبار - **إصدارات البرمجيات**: Mathematica 8.0 إلى 9.0.1 - **نظام التشغيل**: Mac و Windows - **برمجيات المقارنة**: Maple و Sage كأدوات تحقق ### بيانات الاختبار - **حجم المصفوفة**: 14×14 - **نطاق القيم**: يتضمن أعداداً صحيحة كبيرة بحوالي 10,000 رقم - **طريقة التوليد**: توليد مصفوفة أساسية عشوائية، ثم بناء مصفوفة من خلال تضخيم القوى واضطرابات صغيرة ## نتائج التجربة ### النتائج الرئيسية 1. **أخطاء الحساب**: قيمة المحدد المحسوبة بواسطة Mathematica خاطئة تماماً 2. **عدم الحتمية**: ينتج عن حسابات متعددة لنفس المصفوفة نتائج مختلفة 3. **الارتباط بالإصدار**: يظهر الخطأ في الإصدارات 8 و 9، بينما لا تبدو الإصدارات 6 و 7 متأثرة ### حالة محددة في مثال محدد: - حساب Mathematica الأول: `N[a] = -3.263388173990166 × 10^9768` - حساب Mathematica الثاني: `N[b] = -8.158470434975415 × 10^9768` - النتيجة الصحيحة (Maple/Sage): `≈ 1.95124219131987 × 10^9762` ### تقرير الخطأ أبلغ المؤلفون عن الخطأ إلى Wolfram Research في 7 أكتوبر 2013 (رقم الحالة: CASE:303438)، وتلقوا رداً بالتأكيد، لكن المشكلة لم تُحل في الإصدارات اللاحقة. ## الأعمال ذات الصلة 1. **السوابق التاريخية**: مشابهة لخطأ قسمة Pentium الذي اكتشفه Thomas Nicely عام 1994 2. **التحقق من البرمجيات**: الإشارة إلى أبحاث تقنيات التحقق من أنظمة الجبر الحاسوبية مفتوحة المصدر 3. **حالات نجاح البرمجيات الرياضية**: - إثبات نظرية الألوان الأربعة (Appel و Haken) - إثبات حدسية Kepler (Thomas Hales) - برمجيات Kenzo اكتشفت أخطاء في نظريات منشورة ## الخلاصات والمناقشة ### الاستنتاجات الرئيسية 1. **مشاكل الموثوقية**: حتى الحساب الرمزي (العمليات الحسابية الصحيحة)، قد تنتج أنظمة الجبر الحاسوبية أخطاء 2. **نطاق التأثير**: أخطاء الأعداد الصحيحة الكبيرة تؤثر ليس فقط على الرياضيات النظرية بل أيضاً على مجالات التطبيق مثل التشفير 3. **مشاكل منهجية**: الطبيعة "الصندوق الأسود" للبرمجيات التجارية تجعل من الصعب التنبؤ بالأخطاء وتجنبها ### القيود 1. **شروط تفعيل الخطأ غير واضحة**: لا يمكن التنبؤ بدقة بأي المصفوفات ستثير الخطأ 2. **خصوصية الإصدار**: يظهر الخطأ فقط في إصدارات محددة 3. **الاعتماد على المنصة**: يتطلب التحقق على أنظمة تشغيل مختلفة ### الاتجاهات المستقبلية 1. تطوير تقنيات تحقق أفضل من البرمجيات 2. تحسين شفافية البرمجيات التجارية 3. إنشاء آليات أفضل للإبلاغ عن الأخطاء وإصلاحها ## التقييم المتعمق ### المميزات 1. **أهمية عملية كبيرة**: يكشف عن أخطاء خطيرة في برمجيات رياضية مستخدمة على نطاق واسع 2. **طريقة علمية**: من خلال التحقق بأنظمة مستقلة متعددة، يضمن موثوقية الاكتشاف 3. **قابلية قوية للتكرار**: يوفر طرقاً مفصلة لتكرار الخطأ 4. **كتابة واضحة**: يعرض عملية اكتشاف المشكلة بشكل حي من خلال خلفية بحث رياضي محددة ### أوجه القصور 1. **تحليل نظري محدود**: لا يحلل بعمق الأسباب الجذرية لحدوث الخطأ 2. **نقص الحلول**: يركز بشكل أساسي على الإبلاغ عن المشكلة، مع نقص الطرق للوقاية أو الكشف عن هذه الأنواع من الأخطاء 3. **نطاق الاختبار**: يركز بشكل أساسي على نوع محدد من الحسابات (محددات المصفوفات الصحيحة الكبيرة) ### التأثير 1. **القيمة الأكاديمية**: تذكر الباحثين بمشاكل موثوقية الإثباتات بمساعدة الحاسوب 2. **القيمة العملية**: تحذير مهم للمستخدمين الذين يعتمدون على Mathematica في الحسابات الصحيحة الكبيرة 3. **تحسين البرمجيات**: تحفز مطوري البرمجيات على الاهتمام بإصلاح هذه الأنواع من الأخطاء ### السيناريوهات المعمول بها تنطبق نتائج هذا البحث على: - البحث باستخدام Mathematica في حسابات مصفوفات الأعداد الصحيحة الكبيرة - العمليات الحسابية للأعداد الكبيرة في التشفير - البحث الرياضي الذي يتطلب حسابات رمزية عالية الدقة - تقييم موثوقية أنظمة الجبر الحاسوبية ## المراجع تستشهد الورقة بالمراجع المهمة التالية: 1. Karlin و Szegő (1960/1961) - البحث الأصلي حول محددات كثيرات الحدود المتعامدة 2. Appel و Haken (1977) - الإثبات بمساعدة الحاسوب لمشكلة الألوان الأربعة 3. Hales (2005) - إثبات حدسية Kepler 4. Ciaurri و Varona (2006) - البحث المبكر حول موثوقية الحسابات الحاسوبية --- على الرغم من أن هذه الورقة قصيرة نسبياً، إلا أنها تكشف عن مشكلة مهمة: حتى الحساب الرمزي الذي يبدو موثوقاً قد يحتوي على أخطاء منهجية. إنها تذكرنا بضرورة توخي الحذر عند الاعتماد على الحاسوب في البحث الرياضي، وتؤكد على أهمية التحقق من البرمجيات والشفافية.