وحدة 4 / 11

الحساب الرمزي: التحكم في الذكاء الاصطناعي باستخدام SymPy

المكاسب:

  • القدرة على التعرف على قدرات SymPy الأساسية (التبسيط، والتحليل، وحل المعادلات، والمشتق، والتكامل، والحد) واستخدامها للتحقق من صحة مخرجات الذكاء الاصطناعي
  • القدرة على الحصول على نتائج حتمية ودقيقة عن طريق طباعة كود SymPy على الذكاء الاصطناعي وتشغيل الكود نفسه؛ افهم أن الحصول على مخرجات التعليمات البرمجية المتوقعة بواسطة الذكاء الاصطناعي ليس بمثابة التحقق
  • عندما لا تتطابق نتيجة الذكاء الاصطناعي مع مخرجات SymPy، يمكن استخدام SymPy كأساس لتحديد موقع الخطأ وإضافة التفاصيل الدقيقة يدويًا مثل المجالات.

الأداة الأكثر عملية وقوة في هذه الوحدة موجودة في هذه الوحدة: الحساب الرمزي ومكتبة Python الخاصة بها SymPy. حساب التفاضل والتكامل الرمزي هو إجراء عمليات حسابية دقيقة ليس باستخدام الأرقام ولكن باستخدام الرموز (متغيرات مثل x، y، وما إلى ذلك): أخذ تكامل مع صيغته الدقيقة، وحل معادلة بالحروف، وتبسيط التعبير. SymPy هي مكتبة Python مفتوحة المصدر ومجانية وحتمية تقوم بذلك - مما يعني أنها تعطي دائمًا نفس النتيجة الصحيحة تمامًا لنفس المدخلات. وهذا يجعله مثاليًا للتحقق من صحة مخرجات الذكاء الاصطناعي: يوفر الذكاء الاصطناعي السرعة والبصيرة، بينما يوفر SymPy الدقة.

الفكرة المركزية لهذه الوحدة هي: مطالبة الذكاء الاصطناعي بإجراء العمليات الحسابية، ولكن مطالبة SymPy بالتحقق من صحة النتيجة. والأفضل من ذلك: اطلب من الذكاء الاصطناعي كتابة كود SymPy، وقم بتشغيل الكود والحصول على النتيجة النهائية. لذا يمكنك القضاء على مخاطر الهلوسة التي يسببها الذكاء الاصطناعي بحتمية SymPy.

تعريف آخر: CAS (نظام الجبر الحاسوبي) هو الاسم العام الذي يطلق على البرنامج الذي يقوم بإجراء الرياضيات الرمزية؛ SymPy هو CAS. الأمثلة التجارية هي Mathematica و Maple، لكن SymPy مجاني ويمكن الوصول إليه لأنه يعمل في Python.

قدرات SymPy الأساسية

يقوم SymPy بما يلي بدقة:

  • التبسيط: تبسيط (التعبير) يقلل التعبير إلى أبسط صوره.
  • التخصيم/التوسيع: العامل () والتوسيع ().
  • حل المعادلة: حل (المعادلة، x) يعطي الجذور الدقيقة للمعادلة.
  • مشتق: فرق (expr، x).
  • التكامل: تكامل (expr، x) (غير محدد) أو تكامل (expr، (x، a، b)) (محدد).
  • الحد: الحد (التعبير، x، نقطة).
  • السلسلة تعني: السلسلة (التعبير، x، 0، n).
  • عمليات المصفوفة وأنظمة المعادلات والمعادلات التفاضلية والمزيد.

خطوة بخطوة: سير عمل التحقق من صحة AI + SymPy

1. اطلب من الذكاء الاصطناعي حل المشكلة. احصل على الحل خطوة بخطوة والنتيجة النهائية.

2. اطلب من الذكاء الاصطناعي كتابة كود SymPy لنفس المشكلة. قل "اكتب التعليمات البرمجية التي تتحقق من هذه النتيجة باستخدام SymPy."

3. قم بتشغيل الكود بنفسك. لا تدع الذكاء الاصطناعي "يتنبأ" بمخرجات الكود، فهذا سيكون هلوسة. قم بتشغيل الكود في بيئة بايثون حقيقية.

4. قارن بين النتيجتين. إذا كانت النتيجة التي تم العثور عليها يدويًا بواسطة الذكاء الاصطناعي ومخرجات SymPy متماثلة، فستزداد الثقة؛ إذا كان مختلفًا، فالخطأ موجود في الذكاء الاصطناعي (ثق في SymPy).

5. إذا كان هناك اختلاف، ابحث عن الخطأ. أخبر الذكاء الاصطناعي، "أعطتك SymPy هذا، نتيجتك مختلفة؛ ابحث عن خطأك."

تنبيه: إذا أخذت كودًا من الذكاء الاصطناعي وتساءلت "ما الذي ينتجه هذا الكود؟" إن طلب الذكاء الاصطناعي "ليس تحققًا - لأن الذكاء الاصطناعي يمكنه أيضًا تكوين مخرجات التعليمات البرمجية. تأكد من تشغيل التعليمات البرمجية في بيئة بايثون حقيقية (التثبيت المحلي، Jupyter، أو عداء بايثون عبر الإنترنت). يتم الكشف عن قوة SymPy عند تشغيله.

الحل اليدوي للذكاء الاصطناعي وما إلى ذلك. SymPy — المقارنة

ميزة

حل يدوي لمنظمة العفو الدولية

SymPy

السرعة

سريع جدًا

سريع

الدقة

لا يوجد ضمان (الهلوسة)

حتمية، مؤكدة

اشرح الخطوات

جيد

ضعيف (موجه نحو النتائج)

الحدس / الاستراتيجية

جيد

لا شيء

أهلية التحقق

لا

نعم

أفضل مزيج: الذكاء الاصطناعي للشرح والاستراتيجية، وSymPy للدقة.

ثلاث حالات صغيرة

الحالة 1 - عدم تطابق متكامل. سأل أحد الطلاب الذكاء الاصطناعي ∫ x/(x²+1) dx. YZ أعطى (1/2)·ln(x²+1) + C. أجرى الطالب التكامل(x/(x**2+1), x); أعاد SymPy السجل (x**2 + 1)/2. لقد كانوا متماثلين – ثقة كاملة. ثم تم أيضًا التحكم في المشتقات باستخدام الفرق؛ لقد عدنا إلى x/(x²+1). التأكيد الثلاثي، 3 دقائق.

الحالة 2 - خطأ في التبسيط. طلب أحد المعلمين من الذكاء الاصطناعي تبسيط التعبير (x²−1)/(x−1)؛ قال YZ x+1 (صحيح ولكنه استبعد الشرط x≠1). SymPy simplify((x**2-1)/(x-1)) أعطى أيضًا x+1، لكن المعلم أضاف قيد المجال يدويًا (غير محدد عند x=1). الدرس المستفاد: حتى SymPy في بعض الأحيان لا يؤكد على جودة المجال؛ يضيف الإنسان السياق الرياضي.

الحالة 3 – نظام المعادلات. مهندس جعل الذكاء الاصطناعي يحل نظامًا من المعادلات الخطية ذات 3 مجاهيل وأخطأ في متغير واحد. SymPy مع الحل([المعادلات]، [x، y، z]) أعطى الحل الدقيق؛ كانت قيمة z الخاصة بالذكاء الاصطناعي خاطئة. أخذ المهندس نتيجة SymPy وطلب من الذكاء الاصطناعي العثور على الخطأ: خطأ في الإشارة. تم حلها في 4 دقائق.

أربعة قوالب قابلة للنسخ

1) طلب رمز التحقق SymPy من YZ:

لقد قمت بحل المشكلة التالية: [مشكلة]، والنتيجة هي [نتيجة]. اكتب الآن رمز SymPy القابل للتنفيذ والذي يتحقق من هذه النتيجة. دع الكود يحدد الرموز ويحسب النتيجة ويطبعها. لا تخمن مخرجات الكود؛ سأقوم بتشغيله.

2) الحل من الصفر باستخدام SymPy:

اكتب كود Python الذي يحل المشكلة التالية مع SymPy: [مشكلة]. أضف الواردات الضرورية وتعريفات الرموز والمطبوعات. اكتب ما ينتجه الكود؛ فقط أعطني الكود وسوف أقوم بتشغيله. أضف تعليقًا قصيرًا إلى كل سطر من التعليمات البرمجية.

3) إصلاح الذكاء الاصطناعي باستخدام مخرجات SymPy:

لقد قلت [النتيجة]، لكن SymPy أعطى هذا: [مخرج SymPy]. الاثنان مختلفان. نظرًا لأن SymPy حتمية، فاقبلها على أنها صحيحة. اكتشف الخطوة التي ارتكبت خطأً في الحل الخاص بك وأظهرها.

4) رمز التحقق المشتق/المتكامل:

لقد أخذت التكامل التالي: ∫ [f(x)] dx = [F(x)]. للتحقق من ذلك، اكتب رمزًا في SymPy يأخذ مشتق F(x) ويتحقق مما إذا كان يساوي f(x) (مع منطق التبسيط(diff(F)-f) == 0). فقط أعط الرمز.

موجه ضعيف / موجه قوي

ضعيف: "ما هو ∫ sin²(x) dx؟ تحقق أيضًا من SymPy واكتب المخرجات."
النتيجة: الذكاء الاصطناعي يناسب كلاً من الإجابة و"مخرج SymPy"؛ يبدو كلاهما متسقًا، لكن لم يتم تأكيد أي منهما. ثقة زائفة.
Strong: "اكتب كود SymPy القابل للتنفيذ لـ ∫ sin²(x) dx (استيراد، رمز، دمج، طباعة). أنت لا تكتب الإخراج - سأقوم بتشغيله وأرى. أضف أيضًا سطرًا يتحقق من التمييز بين النتيجة وإعادتها إلى sin²(x)."
النتيجة: تشغيل الكود ورؤية المخرجات الدقيقة لـ SymPy؛ التحقق يصبح حقيقيا.

الأخطاء الشائعة

  • وجود الذكاء الاصطناعي يتنبأ بمخرجات الكود. هذا ليس التحقق من الصحة. يمكن للذكاء الاصطناعي أيضًا أن يناسب المخرجات. قمت بتشغيل التعليمات البرمجية.
  • قبول نتيجة SymPy دون قراءتها. أحيانًا يكون تنسيق إخراج SymPy غير معتاد (على سبيل المثال، السجل = اللوغاريتم الطبيعي)؛ تعرف على كيفية التفسير.
  • نسيان المجال. لا يركز تبسيط SymPy دائمًا على القيود مثل x≠1؛ يضيف الإنسان السياق.
  • تعريف رمز غير صحيح. إذا تم نسيان x = الرموز('x')، فلن يعمل الرمز؛ تؤثر الافتراضات (إيجابية، حقيقية) على النتيجة (الرموز ('x'، إيجابية=صحيح)).
  • قلة الاستيراد. من الأخطاء الشائعة نسيان الاستيراد من Sympy import * أو الوظائف الضرورية.
نصيحة: للتحقق من صحة المساواة في SymPy، يعد التعبير simplify(left_side - right_side) == 0 مفيدًا جدًا: يكون التعبيران متطابقين إذا تم تبسيط الفرق إلى الصفر. هذه هي الطريقة الأنظف للتحقق من الهوية أو التبسيط الذي ينتجه الذكاء الاصطناعي.

افتراضات SymPy: نفس التعبير، ونتيجة مختلفة

الميزة الدقيقة ولكن المهمة في SymPy هي نظام الافتراض الخاص بها. عند تعريف رمز ما، يمكنك منحه خصائص: تشير الرموز ('x'، الإيجابية=True) إلى أن x موجب، وreal=True تشير إلى أنه حقيقي. هذه الافتراضات قد تغير النتيجة. على سبيل المثال، يظل التعبير √(x²) هو sqrt(x**2) إذا لم تكن هناك افتراضات حول x (لأن SymPy يأخذ في الاعتبار أن x يمكن أن يكون سالبًا ويعرف أنه يجب أن يكون |x|)؛ لكن إذا تم تعريف x على أنه موجب، فإن النتيجة تكون x مباشرة. هذا ليس خطأ، ولكنه دقة رياضية: √(x²) = |x|، وليس x = x.

غالبًا ما يتجاهل الذكاء الاصطناعي هذه الافتراضات أو يفترضها بشكل غير صحيح عند إنشاء كود SymPy. ونتيجة لذلك، فإن الكود الذي ينتجه الذكاء الاصطناعي قد لا يقوم بالتبسيط الذي "تتوقعه" - وهذا يعني في الواقع أن SymPy يتصرف بشكل أكثر دقة. لذلك عندما يبدو التبسيط "لا يعمل"، فكر أولاً في الشروط الرياضية الفعلية للمشكلة (هل x موجب؟ هل هو حقيقي؟ هل هو غير صفر؟) وأضف تلك الافتراضات إلى الكود. إن الحصول على الافتراضات الصحيحة لا يضمن فقط أن يقوم SymPy بإرجاع النتيجة الصحيحة، ولكنه يجبرك أيضًا على التفكير في مجال المشكلة، وهو جزء من الدقة الرياضية.

تحذير: فشل SymPy في "تبسيط" التعبير غالبًا لا يكون عيبًا، ولكنه مسألة دقة رياضية: نظرًا لعدم تقديم الافتراضات الضرورية (الإيجابية والواقعية)، فإن SymPy يحمل النتيجة الأكثر عمومية والأكثر أمانًا. إذا لم ترَ التبسيط الذي تتوقعه، فراجع أولاً افتراضات الرمز.

في ملخص

SymPy هي أداة حتمية مثالية للتحقق من صحة المخرجات الرياضية للذكاء الاصطناعي. أقوى سير عمل: الإستراتيجية والوصف للذكاء الاصطناعي، والدقة لـ SymPy. اطلب من الذكاء الاصطناعي رمز SymPy، ولكن تأكد من تشغيل الإخراج بنفسك - مما يجعل الذكاء الاصطناعي يخمن أن إخراج الكود لا يعد بمثابة التحقق من الصحة. إذا لم تتطابق النتائج، فثق في SymPy ودع الذكاء الاصطناعي يعثر على الخطأ. التحقق من الهويات باستخدام التبسيط (الفرق) == 0 والتكاملات مع الفرق.

مهمة التطبيق

اختر التكامل وحل المعادلة وتبسيط التعبير (ثلاث مسائل منفصلة). لكل واحد، اطلب من الذكاء الاصطناعي كتابة الحل يدويًا، ثم رمز SymPy. قم بتشغيل الرموز في بيئة Python حقيقية (التثبيت المحلي أو العداء عبر الإنترنت). قارن مخرجات SymPy مع النتائج اليدوية للذكاء الاصطناعي. حاول العثور على تناقض واحد على الأقل؛ إذا وجدته، اطلب من الذكاء الاصطناعي العثور على خطأه. لاحظ العملية.

قائمة مرجعية

  • [ ] لقد تلقيت حل الذكاء الاصطناعي ورمز SymPy لكل مشكلة.
  • [ ] قمت بتشغيل كود SymPy في بيئة Python حقيقية.
  • [ ] لقد قمت بمقارنة نتيجة YZ اليدوية بمخرجات SymPy.
  • [ ] لقد قمت بمراجعة معكوس المشتق/التكامل مع SymPy.
  • [ ] أضفت المجال والافتراضات (إيجابية/حقيقية) يدويًا.
  • [ ] في النزاع، اعتمدت على SymPy وجعلت الذكاء الاصطناعي يكتشف خطأه.