التحسين | الوحدة الرابعة | الدرس الثالث

التحسين هو عنوان الدرس الثالث من الوحدة الرابعة التي تحمل اسم “نمذجة البيانات التنبؤية والتوقُّع” من مقرر “علم البيانات”.
ستتعرف في هذا الموضوع على مفهوم نموذج التحسين، وتطبيق عملية التحسين باستخدام أداة إكسل سولفر (Excel Solver)، ومعرفة كيفية صياغة المشكلة للتعامل مع أداة إكسل سولفر، وتقييم نتائج عملية التحسين، ومعرفة كيفية تحديد التوصيات المستقبلية بناءً على النتائج.
لذا قم بقراءة أهداف التعلُّم بعناية، ثم أعد قراءتها وتأكَّد من تحصيل كافة محتوياتها بعد انتهائك من دراسة الموضوع.
أهداف التعلُّم
- معرفة مفهوم نموذج التحسين.
- تطبيق عملية التحسين باستخدام أداة إكسل سولفر.
- معرفة كيفية صياغة المشكلة.
- تقييم نتائج عملية التحسين.
- تحديد التوصيات المستقبلية بناءً على نتائج التحسين.
هيا لنبدأ!
التعامل مع مشاكل التحسين (Dealing with Optimization Problems)
ما المقصود بالتحسين (Optimization)؟
التحسين هو عملية اختيار العنصر الأفضل من مجموعة من البدائل وذلك تحت قيود معيَّنة.
كيف يتم التعامل مع مشاكل التحسين؟
- يواجه الانسان المشاكل المتعلقة بالتحسين في الكثير من جوانب الحياة ومجالاتها كالأعمال التجارية، الاقتصاد، الرياضيات، الهندسة، العلوم.
- يكمن المشكلة الأساسية في محاولة إيجاد الطريقة المثلى أو الأكثر فاعلية لاستخدام الموارد المحدودة لتحقيق هدف معين. والذي قد يكون زيادة الربح أو تقليل التكلفة أو تقليل الوقت اللازم لتنفيذ مشروع ما أو اختصار الوقت والمسافة لجهة معينة.
- أمثلة أخرى على التحسين:
- استقطاب المزيد من الرحلات السياحية إلى بلد ما.
- تحديد الميزانية المناسبة لحملة تسويقية، أو تصميم الجدول المثالي لعمل الموظفين، أو خفض تكلفة الوصول.
ما هي أداة إكسل سولفر؟ (What is Excel Solver?)
تعتبر أداة برمجية تستخدم لمحاكاة وتحسين نماذج الهندسة والأعمال المختلفة.
تنتمي هذه الأداة إلى مجموعة خاصة من أدوات إكسل يشار إليها لاسم أدوات تحليل ماذا-إذًا (What If Analysis Tools) وتستخدم للوصول إلى أفضل الحلول لنموذج يحتوي على مدخلات متعددة.
تعد الحاجة إلى تحديد قيمة لخلية واحدة تسمى (الخلية الهدف) عن طريق تغيير قيم خلايا أخرى معينة تسمى (خلايا المتغير) وذلك باستخدام القيود أو بدونها.
من أكثر الاستخدامات شيوعًا لأداة إكسل سولفر، حيث تعتبر الأداة المثالية لحل المشاكل البرمجة الخطية (المعروفة أيضًا باسم مشاكل التحسين الخطي)، ولذلك يطلق عليها أحيانًا اسم البرمجة الخطية لسولفر Linear Programming Solver.
تعد أداة إكسل سولفر مثالية مع مشاكل التحسين، حيث تمكنك من استخدام جداول البيانات لإدراج متغيرات القرار وقيود النموذج ثم تنفيذ دالة الهدف التي تصفها.
في حين يعد استخدام النماذج الشبكية Graphical Models مثاليًا لحل النموذج الذي يحتوي على متغيرين للقرار، تتضمن الكثير من المشاكل في الحياة الواقعية متغيرات عديدة، ولذلك هناك حاجة إلى استخدام تقنيات وحسابات معقدة للوصول إلى الحل الأمثل لمثل تلك المشاكل.
تساهم جداول البيانات وأداة سولفر في حل مشاكل التحسين بطريقة مبسطة وملائمة للمستخدمين بصرف النظر عن قدراتهم الحسابية.
لاحظ أن
من الضروري فهم إمكانية إجراء تغييرات على مُعامِلات أداة سولفر أو على الإجراء الذي يتم تنفيذه في أي وقت، وبذلك بناءً على النتائج التي تقدمها الأداة، يمكِن إعادة تقييم المشكلة وتحديد ما إذا كانت هناك حاجة إلى تنفيذ عملية هذه الأداة مع تطبيق قيود معيَّنة.
لا تعدُّ النتائج في سولفر مجرد أرقام فقط؛ بل هي قيم ذات معنى محدَّد تخص الموقف قيد الدراسة، ولذلك يجب على عالِم البيانات أو محلل الأعمال إجراء تقييم نقدي لهذه النتائج واتّخاذ إجراءات إضافية إذا كانت النتائج غير مرضية.
لمعرفة المزيد من المعلومات عن إكسل سولفر، قم بالاطّلاع على الرابط التالي:
تعريف مشكلة وحلها باستخدام الوظيفة الإضافية Solver – Microsoft
صياغة المشكلة (Formulating the Problem)
قبل تشغيل أداة إكسل سولفر، يجب صياغة المشكلة (النموذج) في ورقة عمل، حيث يعرف هذا النموذج المشكلة التي تريد ايجاد الحل لها.
لقد جمعت في الدرس السابق بيانات الرحلات السياحية الشهرية للعام 2019 من صفحة بيانات السياحة التابعة لوزارة السياحة السعودية في البوابة الوطنية للبيانات المفتوحة (https://data.gov.sa) .
في هذا الدرس سنستخدم نفس البيانات من أجل الوصول على نتائج محددة تساعد في تنظيم حملات للترويج للسياحة في المملكة العربية السعودية للعام 2023 وذلك باستخدام إكسل سولفر لتحقيق ذلك، يتعين عليك أولاً صياغة المشكلة ثم بتحديد نوع المعلومات التي تريد الحصول عليها من أداة إكسل.
بإمكانك مراجعة محتوى موضوع “التحسين” من بدايته وحتى نهاية هذا القسم، من خلال الرابط التالي:
أداة إكسل سولفر الإضافية (The Excel Solver Add-In)
الآن وبعد صياغة المشكلة بشكل جيد، يمكنك فتح برنامج إكسل وتشغيل أداة إكسل سولفر يجب عليك أولا تنشيط هذه الأداة من نافذة خيارات إكسل (Excel Option) لأنه لا يتم تنشيطها تلقائيًا عند تثبيت مايكروسوفت أوفيس (Microsoft Office).
لتنشيط أداة إكسل سولفر الإضافية (Excel Solver Add-In):
- من علامة تبويب ملف (File)، اضغط على خيارات (Options).
- من نافذة خيارات Excel (Excel Options)، اضغط على الوظائف الإضافية (Add-Ins).
- من مربع إدارة (Manage)، اختر وظائف Excel الإضافية (Excel Add-Ins).
- ثم اضغط انتقال (GO).
- من نافذة الوظائف الإضافية (Add-Ins)، حدِّد Solver Add-In (الأداة الإضافية سولفر).
- اضغط على موافق (OK).
- ستظهر أيقونة أداة Solver (سولفر).
استخدام أداة سولفر (Using Solver)
عليك قبل كل شيء حساب العدد الإجمالي للرحلات السياحية لعام 2019 (مقدرًا بالآلاف)، وللقيام بذلك ستستخدم دالة الجمع (SUM) في إكسل، حيث ستقوم بإيجاد مجموع الخلايا التي تحتوي على أعداد الرحلات السياحية الشهرية وتحديدها.
لحساب عدد الرحلات الإجمالي:
- افتح ملف إكسل “الرحلات السياحية لعام 2019”.
- في الخلية B14 اكتب “الإجمالي”.
- في الخلية C14 اكتب “=SUM(C2:C13)” واضغط على “Enter”.
- سيظهر المجموع الإجمالي في الخلية.
عليك بعد ذلك فتح ملف إكسل الذي يحتوي على بيانات الرحلات السياحية لعام 2019 في ورقة عمل باسم “2019”، ثم ستُنشئ ورقة عمل جديدة باسم “Solver” بنفس البيانات الموجودة في ورقة عمل “2019”.
لماذا يتم إنشاء نسخة من ورقة عمل 2019؟
من المهم القيام بالخطوة المذكورة نظرًا لأن استخدام أداة سولفر يؤدي إلى تغيير القيم الموجودة في البيانات بشكل دائم وبدون خيار للتراجع، لذلك عليك الاحتفاظ بورقة عمل البيانات الأصلية (الورقة “2019” في هذا المثال) لاستخدامها من جديد في حالة كانت نتائج أداة سولفر غير مرضية.
إن أسهل طريقة لنسخ القيم الموجودة في ورقة العمل “2019” هي بإنشاء نسخة من الورقة نفسها.
لنسخ ورقة عمل في إكسل:
- افتح ملف إكسل “الرحلات السياحية لعام 2019”.
- اضغط بزر الفأرة الأيمن على ورقة عمل “2019”.
- حدِّد نقل أو نسخ (Move or Copy).
- في نافذة النقل أو النسخ التي ستظهر، حدِّد “2019”.
- ثم حدِّد خيار إنشاء نسخة (Create a copy).
- اضغط على موافق (OK).
- تم إنشاء الورقة الجديدة.
البحث عن الخلايا ذات الاشكالية الكامنة Find the problematic cell values
- كما ذُكر سابقًا سيتم تقييم بيانات الرحلات السياحية الشهرية لعام 2019 من أجل إيجاد القيم ذات الإشكالية (إن وجدت).
- ثم تحديد المتغيرات التي تحتاج إلى تعديل لتحقيق الهدف المنشود.
- يتم تعريف هذه القيم في هذا المثال بالقيم التي تحتوي على العدد الأقل للرحلات السياحية.
عند إلقاء نظرة فاحصة على ورقة عمل إكسل 2019، ماذا تلاحظ في عدد الرحلات السياحية الشهرية؟
- ستلاحظ أن عدد الرحلات السياحية الشهرية للأشهر يونيو، يوليو، سبتمبر هي أقل بكثير من تلك الخاصة بالشهور الأخرى من العام.
- لذلك من الممكن تقديم الاقتراح بالعمل على زيادة عدد الرحلات السياحية في الأشهر الثلاثة السابقة وليس جميع أشهر العام.
استنتج من الجدول التالي:
- الخلية الهدف.
- الخلايا المتغيرة.
- في معاملات أداة سولفر، ستكون الخلية الهدف Object Cell: هي إجمالي عدد الرحلات السياحية.
- ستكون خلايا المتغير: هي أعداد الرحلات السياحية في الأشهر (يونيو، يوليو، سبتمبر).
- لن يتم إضافة قيود محددة، وسيتم تعيين قيمة الخلية الهدف 25,000,000.
لاستخدام أداة سولفر دون قيود:
- من علامة تبويب Data (بيانات).
- اضغط على زر Solver (سولفر).
- في حقل Set Objective (تحديد الهدف)، اختر الخلية C14.
- حدِّد Value of: (القيمة:)، ثم اكتب القيمة 25000.
- من خيار By Changing Variable (لتغيير الخلايا المتغيرة) اختر الخلايا C7;C8;C10.
- اضغط على Solve (حِل).
- في نافذة Solver Results (نتائج سولفر)، اضغط على OK (موافق).
- ستُطبّق التغييرات على الخلايا المحدَّدة.
بإمكانك مراجعة محتوى موضوع “التحسين” بدايةً من عنوان “أداة إكسل سولفر الإضافية” وحتى هذه النقطة، من خلال الرابط التالي:
تقييم النتائج Assess the Result
- الآن وبعد أن قمت بتنفيذ أداة سولفر، أصبحت جاهزة لإلقاء نظرة على نتائجها.
- كما تمت الإشارة إليه سابقًا، فإن نتائج أداة سولفر ليست مجرد أرقام، بل هي قيم ذات معنى مخصص لموقف الدراسة المحدد، وبصفتك عالم البيانات، عليك تقييم هذه النتائج لتحديد الجدوى من القيام بالمزيد من الإجراءات.
ما هي خطوات تقييم النتائج؟
إجراء المقارنة بسهولة قبل تطبيق أداة سولفر وبعد تطبيقها.
إنشاء جدول في ورقة عمل سولفر ويتضمن خمسة أعمدة وهي: الرقم التسلسلي، الشهر، الرحلات السياحية الشهرية 2019، نتائج سولفر لعام 2013 والاختلاف.
لحساب الاختلاف:
- انسخ قيم الخلايا C1:C14 في ورقة العمل “2019”.
- في ورقة عمل “Solver”، حدِّد العمود D، واضغط عليه بزر الفأرة الأيمن.
- ألصق القيم التي نسختها.
- غَيِّر أسماء الأعمدة واحذف النص “2019” من جميع أشهر العمود B.
- أضف عمودًا باسم “الاختلاف”.
- اكتب في الخلية E2 الصيغة “=C2-D2”.
- نفِّذ الدالة في جميع الخلايا من E2 إلى E14، ثم اضغط على زر “Enter”.
- أصبحت ورقة “Solver” جاهزة الآن لتقييم النتائج.
قم الآن بإلقاء نظرة على ورقة العمل وتقييم النتائج، ماذا تلاحظ؟
بالتأمل في قيم الاختلاف نجد أن جميعها (صفر) إلا في بعض الشهور مرتفعة، لماذا؟
يقدم لنا إكسل سولفر اقتراحًا يمكن صياغته كالتالي:
إذا أردت الوصول إلى هدف 25.000.000 رحلة سياحية في العام 2023، عليك القيام بحملات ترويجية للسياحة ليصل عدد الرحلات السياحية إلى:
- 327.000 رحلة في شهر يونيو.
- 109.000 رحلة في شهر يوليو.
- 327.000 رحلة في شهر سبتمبر.
- استنادًا إلى أعداد الرحلات في الشهور الأخرى، يعد هذا هدفًا غير واقعي، حيث أن أعلى قيمة لعدد الرحلات في العام 2019 كانت 2.675.000 رحلة سياحية.
- مما يعني أنه مهما كانت الحملة الترويجية التي ستنفذها ناجحة، فإنها لن تصل إلى الهدف المقترح وهو 4.327.000 رحلة في شهر يونيو.
- حيث أن ذلك الرقم أعلى بنسبة 160% من عدد الرحلات التي تم تسجليها في أفضل شهر في العام 2019.
تحدثنا سابقًا عن إمكانية تطبيق أداة سولفر بقيود وبدون قيود، فما الفرق بينهما؟
بما أن النتائج الأولية بعد تطبيق أداة سولفر في المثال السابق ليست واقعية، كيف يتم تحسينها؟
يتعين عليك تنفيذ تشغيل أداة سولفر من جديد، ولكن مع تحديد بعض القيود لأجل الحصول على أهداف أكثر واقعية.
على سبيل المثال، يمكنك ضبط أداة سولفر لحساب القيم دون قيد لجميع الشهور باستثناء أشهر يونيو، يوليو، سبتمبر والتي يجب تعيين قيد لقيمتها لتجنب الحصول على نتائج غير واقعية، ويمكن تحقيق ذلك باستخدام متوسط قيم البيانات الموجودة.
ستسمح لأداة سولفر بحساب القيم الموجودة لجميع الشهور، ولكن بإضافة قيود تحدد أن الأعداد المستهدفة لأشهر (يونيو، يوليو، سبتمبر) يجب أن تكون أعلى من المتوسط للعام 2019.
حساب المتوسط Calculate the Avg
ما المقصود بحساب المتوسط (Calculate the Average) أو الوسط الحسابي (Arithmetic Mean)؟
يتم حساب المُعدَّل في الإحصاء الوصفي عن طريق جمع النتائج معًا ثم قسمة الإجمالي على عدد هذه النتائج.
يتم حساب المتوسط (Average) أو ما يسمى بالوسط الحسابي (Arithmetic Mean) لمجموعة من الأرقام بجمعها ثم قسمة الناتج على عدد هذه الأرقام.
في الحالة التالية، ستجمع إجمالي عدد الرحلات السياحية الشهرية ثم تقسم الناتج على 12.
لحساب المتوسط:
- في ملف إكسل جديد، أنشئ ورقة عمل جديدة وأطلق عليها اسم “Solver (constraints)”.
- في الخلية B15، اكتب “المتوسط”.
- في الخلية C15، اكتب الصيغة “=average(C2:C13)”.
- اضغط على الزر “Enter” وسيظهر المتوسط في الخلية C15.
استخدام أداة سولفر مع قيود (Solver with Constraints)
الآن وبعد أن قمت بحساب المتوسط الشهري لعدد الرحلات السياحية لعام 2019. ستستخدم أداة سولفر من جديد بقيود.
- ما هي بيانات الخلية الهدف، والخلايا المتغيرة؟
- ما هي القيود التي ستقوم بإضافتها؟
بحيث تكون الخلية الهدف في معاملات أداة سولفر هي إجمالي عدد الرحلات السياحية وستكون الخلايا المتغيرة هي أعداد الرحلات السياحية لجميع الشهور.
ستتم إضافة قيود محددة، مع تعيين القيم المقدرة لأداة سولفر لأشهر (يونيو، يوليو، سبتمبر) لتكون أكبر من أو تساوي متوسط عدد الرحلات في العام 2019.
وأخيرًا، سيتم تعيين قيمة الخلية الهدف مرة أخرى إلى 25.000.000.
تعريف هام
القيد (Constraint)
القيد هو تحديد معيَّن لما يُمكِن تضمينه في مجموعة البيانات أو البيانات الوصفية، أو تحديد لمجموعة من مفاتيح البيانات التي يمكِن إرفاق سمات معيَّنة بها (وتُحدِّد بواسطة هيكل البيانات).
لاستخدام أداة سولفر بقيود:
- من علامة تبويب Data (بيانات).
- اضغط على Solver (سولفر).
- من حقل Set Objective (تعيين الهدف) اختر الخلية C14.
- حدِّد Value of: (القيمة:)، ثم اكتب القيمة 25000.
- من By Changing Variable (لتغيير خلايا المتغير)، حدِّد الخلايا C2:C13.
- اضغط على Add (إضافة) لإضافة قيد.
لإعداد القيود:
- من مربع Cell reference (مرجع الخلية)، حدِّد الخلية C7.
- اختر الرمز =>.
- ضّع الرقم 1460 في صندوق Constraint (القيد).
- اضغط على Add (إضافة).
- اضبُط بقية قيود الخليتين C8 وC10 واضغط على OK (موافق).
لتعيين مُعامِلات أداة سولفر:
- تأكَّد من عرض قائمة القيود بشكل صحيح في مربع “Subject to the Constraints” (تخضع للقيود).
- اضغط على Options (خيارات).
- في نافذة الخيارات، ألغِ تحديد خيار Use Automatic Scaling (اَستخدام القياس التلقائي).
- اضغط على OK (موافق).
- في نافذة Solver Parameters (مُعامِلات Solver)، اضغط على Solve (حل).
- في نافذة Solver Results (نتائج Solver)، اضغط على OK (موافق).
- ستُطبق التغييرات في الخلايا المحدَّدة.
تقييم سولفر باستخدام نتائج القيود Assess the Solver with Constraints Results
الآن، وبعد أن استخدمت أداة سولفر بقيود، يمكنك إنشاء جدول مكون من الأعمدة الخمسة التالية مرة أخرى: الرقم التسلسلي، والشهر والرحلات السياحية لعام 2019، ونتائج Solver Constraints لعام 2023 والاختلاف بهدف مقارنة البيانات بسهولة قبل استخدام أداة سولفر وبعده.
من خلال إلقاء نظرة على النتائج السابقة ماذا تلاحظ؟
وما هي توصياتك لتنفيذ حملتك الترويجية للسياحة؟
- يمكنك هذه المرة ملاحظة أن إكسل بمساعدة أداة سولفر يقدم اقتراحًا بأنه إذا أردت الوصول إلى هدف 25.000.000 زيارة سياحية في العام 2023. فيجب تنفيذ حملتك الترويجية للسياحة بحيث تتم زيادة عدد الرحلات السياحية لجميع شهور السنة.
- كما يجب أن تكون الحملة الترويجية للسياحة أكثر شمولية على مدار العام ولا تقتصر فقط على الأشهر (يونيو، يوليو، سبتمبر) حيث وجدت الأرقام ذات الإشكالية في البداية.
- تشير نتائج سولفر أيضًا إلى حملتك السياحية يجب أن تركز على زيادة عدد الزيارات ولكن بصورة واقعية.
- تظهر نتائج سولفر مع قيود بأنه يجب تصميم حملة ترويجية شاملة للسياحة لتعزيز عدد الرحلات السياحية في كل شهر من شهور العام، مع هدف يتراوح بين 500.000 إلى 1.000.000 رحلة سياحية شهرية.
- يمكن لوكالات السياحة والسفر الاستفادة من هذه الاقتراحات ووضع استراتيجيات لتعزيز الحملات الترويجية للسياحة في المملكة العربية السعودية على مدار العام، مع التركيز بشكل خاص على الأشهر (يونيو، يوليو، سبتمبر).
قدم اقتراحًا لتعزيز الحملات الترويجية للسياحة في المملكة العربية السعودية على مدار العام؟
يمكن على سبيل المثال تقديم خصومات على تذاكر الطيران أو تنظيم واستقطاب رحلات بحرية وتنظيم المهرجانات المختلفة لجذب المزيد من السياح خلال هذه الأشهر الثلاثة.
بإمكانك مراجعة محتوى موضوع “التحسين” بدايةً من عنوان “تقييم النتائج” وحتى نهاية الموضوع، من خلال الرابط التالي:
اختبر تحصيلك لمحتوى الموضوع من خلال الرابط التالي:
الواجب الإلكتروني
إلى هنا يكون قد انتهى موضوع “التحسين”، لا تنسوا مراجعة أهداف التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم!