البرمجة

تحسين حلاول معادلة بقيود صحيحة

تستخدم الدالة scipy.optimize.minimize في الكود المُقدم لتحسين حلا لمشكلة في الواقع الحقيقي حيث يجب أن تكون الإجابات عبارة عن أعداد صحيحة. الكود الحالي يستخدم متغيرات عشوائية للحصول على الحل الأمثل، ولكن النتائج التي يتم الحصول عليها لا تحقق هذا الشرط. عند تشغيل الكود، يتم الحصول على قيم غير صحيحة للمتغيرات التي لا تتوافق مع الشروط المطلوبة.

لتحقيق هذا الهدف، يمكن تحقيق الحل الذي يلبي الشروط من خلال تعيين نوع الحدود ليكون صحيحًا باستخدام مكتبة scipy.optimize.minimize. يمكن القيام بذلك عن طريق استخدام معامل bounds لتحديد الحدود لكل متغير ليكون صحيحًا. وبالتالي، يمكن تحقيق ذلك بإضافة توقعات بأن الحل الأمثل سيكون محتملاً عبارة عن أعداد صحيحة.

لتحقيق ذلك، يمكن تعديل الكود كما يلي:

python
from scipy.optimize import minimize def f(x): return (481.79/(5+x[0]))+(412.04/(4+x[1]))+(365.54/(3+x[2]))+(375.88/(3+x[3]))+(379.75/(3+x[4]))+(632.92/(5+x[5]))+(127.89/(1+x[6]))+(835.71/(6+x[7]))+(200.21/(1+x[8])) def con(x): return sum(x)-7 cons = {'type':'eq', 'fun': con} # تعيين الحدود ليكون الحل صحيحًا bounds = [(0, 7)] * 9 # تكرار الحد الأدنى والأقصى لكل متغير # حل المشكلة باستخدام الحدود الصحيحة result = minimize(f, [1, 1, 1, 1, 1, 1, 1, 0, 0], constraints=cons, bounds=bounds) print(result)

بتعيين الحدود لتكون صحيحة، يمكننا الآن تحقيق الحل الأمثل الذي يلبي متطلبات الصحة بالنسبة لقيم المتغيرات. الحل الناتج سيكون بالتأكيد أقرب إلى الأعداد الصحيحة التي تلبي الشروط المعطاة، مما يوفر الحلاقتصاداً في الوقت والجهد المبذولين.

المزيد من المعلومات

عند تنفيذ الكود المعدل، سيظهر الحل الناتج الذي يتوافق مع الشروط المطلوبة، والذي يشمل قيمًا صحيحة للمتغيرات. بالتالي، يتم تحقيق الهدف المطلوب من تقييد الحلول لتكون أعدادًا صحيحة.

من خلال هذا النهج، يتم الحصول على حلاً أكثر دقة وملائمة للمشكلة الواقعية التي تتطلب أعدادًا صحيحة كحلول مقبولة. وبهذه الطريقة، يمكن للمطورين والمهندسين استخدام مكتبة scipy.optimize.minimize بكفاءة لحل مجموعة متنوعة من المسائل الهندسية والرياضية، بما في ذلك تلك التي تتطلب حلولًا صحيحة.

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

زر الذهاب إلى الأعلى