العودة إلى المدونة
مفاهيم المحاكاة

النمذجة القائمة على الوكلاء والأحداث المنفصلة وديناميكيات النظام

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

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

المحاكاة

عندما أتحدث عن المحاكاة، ماذا أعني حقًا؟ السؤال الذي أُسأل عنه 99% من الوقت هو: “أي نوع من المحاكاة؟”، وهو سؤال بديهي جدًا نظرًا لغموض الكلمة نفسها، لكنه للأسف صعب الإجابة عليه. لنتحدث إذن عن المحاكاة التي لا تغطيها هذه المنهجيات الثلاث، أو بعبارة أخرى، لا يغطيها AnyLogic، وهو البرنامج الذي أستخدمه.

  • الإلكترونيات: لا أحد يبني لوحة إلكترونية جديدة دون محاكاة التفاعلات بين المكونات الإلكترونية المختلفة. لهذا تحتاج إلى برنامج متخصص في الصناعة مثل Micro-Cap.

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

  • المحاكاة الرقمية الواقعية: مثلاً، محاكاة تدفق المياه بشكل واقعي حسابيًا على شلال. في هذه الحالة قد تحتاج إلى Real Flow.

  • الألعاب: صناعة الألعاب ليست سوى محاكاة مع ذكاء اصطناعي. لكن إذا أردت تطوير لعبة متطورة، قد ترغب في تجربة Unity.

  • المحاكاة التقنية: قبل تنفيذ خوارزمية معقدة في الروبوتات أو الآلات الصناعية قد ترغب في استخدام Matlab لاختبار أدائها.

  • محاكاة التدريب: باستخدام برامج مثل Lectora، يمكنك محاكاة سيناريوهات مبسطة تصف قصة أو عملية معينة تريد من الطالب اتباعها لتعلم موضوع معين.

  • أنواع أخرى من المحاكاة ربما لا أعرف حتى بوجودها أو نسيتها.

إذن ماذا أعني بالمحاكاة؟ لا توجد إجابة مباشرة لهذا السؤال لأنني شاركت في مشاريع كانت على حافة الموضوع. لكن بعض الأمثلة التي يمكن أن تتردد معك هي:

  • اللوجستيات (المطارات، مراكز التوزيع، المستودعات، إلخ)

  • سلسلة الإمداد (شبكات التوزيع، التسليمات، تحسين المسارات، إلخ)

  • التصنيع

  • العمليات التجارية (إذا وُجدت عملية، يمكن إنشاء محاكاة لتلك العملية)

  • الكيانات المتفاعلة مع بعضها البعض (أشخاص، حيوانات، آلات، إلخ)

  • النقل (سيارات، قطارات، سفن، طائرات، إلخ)

  • التعدين

  • ديناميكيات الموائع (مياه، سوائل أخرى أو مواد سائبة)

  • التطوير الاستراتيجي للأعمال (التسويق، رضا العملاء، القيمة المضافة، السعادة)

  • ديناميكيات السوق (سلوك السوق، البيع، الشراء)

  • محاكاة مونتي كارلو (تحليل المخاطر، تحليل التباين)

  • الاقتصاد الاجتماعي (تأثير سياسات الدول، فعالية الاستراتيجيات الاجتماعية المحلية)

  • التحسين

  • والكثير من الأشياء الأخرى…

إذن كيف يمكنك معرفة ما إذا كان يجب استخدام المحاكاة أم لا لتطبيقك؟ حسنًا… إذا لم تكن في أي من هذه القوائم، عليك فقط أن تسأل مستشارًا. أحيانًا يتطلب الأمر بعض الوقت لتقييم الأداة المناسبة لمشكلة معينة، وأحيانًا لا تكون المحاكاة أفضل طريقة للمضي قدمًا.

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

لمحة عن ديناميكيات النظام

على الرغم من أنني كنت أقوم بمحاكاة في عوالم الألعاب والإلكترونيات والتقنية منذ أوائل الألفية الثالثة، اكتشفت ديناميكيات النظام باستخدام برامج مثل IThink و Vensim خلال درجة الماجستير في عام 2011. وشعرت وكأنك تستطيع فعل أي شيء بها باستخدام المخزونات والتدفقات والمتغيرات فقط. بدت هذه الطريقة البسيطة والأنيقة كافية لحل أكثر المشاكل الاستراتيجية تعقيدًا في العالم، وكان ذلك مذهلاً ولكن صعب القبول كمفهوم مستقل. أمضيت سنة ونصف لا أفعل شيئًا سوى نماذج ديناميكيات النظام، وعلى الرغم من أنه تم التطرق إلى مفاهيم النمذجة القائمة على الوكلاء والأحداث المنفصلة بدرجة صغيرة جدًا، في هذا المجتمع كان هناك تحيز كبير نحو تطوير كل شيء بديناميكيات النظام فقط. في صناعة اليوم، نادرًا ما تُستخدم ديناميكيات النظام خارج العالم الأكاديمي، على الرغم من أنها طريقة قوية للغاية. خلال مشروع مع PwC في عام 2013، أتيحت لي الفرصة لاستخدام AnyLogic وتعرضت لأول مرة لسحر الأحداث المنفصلة والنمذجة القائمة على الوكلاء. وقعت في حب AnyLogic في تلك اللحظة ولم أتوقف عن استخدامه حتى اليوم.

لمحة عن محاكاة الأحداث المنفصلة

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

لمحة عن النمذجة القائمة على الوكلاء

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

النمذجة متعددة الأساليب

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

هل هذا كل شيء؟

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

#Agent-Based #Discrete-Events #Multi-Methods #Simulations #System Dynamics