الأنظمة متعددة الوكلاء (Multi-Agent Systems أو MAS)
صفوا الوكيل من خلال بيئته وملاحظاته وأفعاله وأهدافه.
70 دقيقة
وش بتتعلّم
- صفوا الوكيل من خلال بيئته وملاحظاته وأفعاله وأهدافه.
- قارنوا الوكلاء التفاعليين والتداوليين وصمّموا تفاعلات بسيطة تنتج سلوكًا على مستوى النظام.
وش تحتاج قبل تبدأ
- التعلم المعزز العميق
الوقت المتوقع
70 دقيقةتشخيص اختياري
وش تعرف من قبل؟
ما له درجة نجاح، ولا يوقف الدرس. اختر «ماني متأكد» إذا هذا جوابك الصادق.
الأنظمة متعددة الوكلاء (Multi-Agent Systems أو MAS)
من الطرق اللي نقدر نبني فيها ذكاء ما نسميه النهج الناشئ (أو التآزري). فكرته إن السلوك المشترك لعدد كبير من الوكلاء البسيطين نسبيًا يطلع لنا سلوك أعقد — وأذكى أحيانًا — على مستوى النظام كامل. ومن الناحية النظرية، يعتمد هالنهج على مبادئ الذكاء الجمعي، والانبثاقية (Emergentism)، والسبرانية التطورية (Evolutionary Cybernetics). هالمبادئ تقول إن النظام الأعلى يكتسب قيمة إضافية إذا ركبناه بشكل مناسب من أنظمة أبسط؛ وهذي الفكرة معروفة باسم مبدأ انتقال النظام الفوقي (metasystem transition).
برز مجال الأنظمة متعددة الوكلاء في الذكاء الاصطناعي (AI) خلال التسعينيات، استجابةً لنمو الإنترنت والأنظمة الموزعة. حتى أحد المراجع الكلاسيكية في AI، كتاب Artificial Intelligence: A Modern Approach، يقدّم AI الكلاسيكي من منظور الأنظمة متعددة الوكلاء.
الفكرة الأساسية في هالنهج هي الوكيل (Agent): كيان موجود داخل بيئة، يستشعر وش يصير فيها ويتصرف بناءً عليه. والتعريف واسع، لذلك نقدر نصنّف الوكلاء بأكثر من طريقة:
- بحسب قدرتهم على الاستدلال:
- الوكلاء التفاعليون (Reactive) غالبًا يتبعون سلوك بسيط من نوع طلب ثم استجابة.
- الوكلاء المتروّون (Deliberative) يستخدمون استدلال منطقي و/أو قدرات تخطيط.
- بحسب المكان اللي ينفّذ فيه الوكيل شفرته:
- الوكلاء الثابتون (Static) يشتغلون على عقدة شبكة مخصصة.
- الوكلاء المتنقلون (Mobile) يقدرون ينقلون شفرتهم بين عقد الشبكة.
- بحسب سلوكهم:
- الوكلاء السلبيون (Passive Agents) ما عندهم أهداف محددة. يستجيبون للمؤثرات الخارجية، لكن ما يبدؤون فعل من نفسهم.
- الوكلاء النشطون (Active Agents) عندهم أهداف ويسعون لها.
- الوكلاء الإدراكيون (Cognitive Agents) يعتمدون على تخطيط واستدلال معقّدين.
اليوم تلقون الأنظمة متعددة الوكلاء مستخدمة في تطبيقات كثيرة:
- في الألعاب، تستخدم شخصيات كثيرة من غير اللاعبين نوع من AI، ونقدر نعدّها وكلاء أذكياء.
- في إنتاج الفيديو، غالبًا نستخدم محاكاة متعددة الوكلاء لتصيير المشاهد المعقدة ثلاثية الأبعاد 3D اللي فيها حشود.
- في نمذجة الأنظمة، نستخدم نهج متعدد الوكلاء لمحاكاة سلوك نموذج معقّد. مثلًا، استُخدم بنجاح للتنبؤ بانتشار مرض COVID-19 حول العالم. ونقدر نستخدم نهج مشابه لنمذجة زحمة مدينة ونشوف كيف تستجيب إذا تغيّرت أنظمة المرور.
- في أنظمة الأتمتة المعقدة، يقدر كل جهاز يتصرف كوكيل مستقل؛ وهذا يخلي النظام أقل اعتمادًا على كتلة واحدة وأكثر متانة.
ما بنغوص كثير في كل تفاصيل الأنظمة متعددة الوكلاء، لكن خلونا نشوف مثال واحد على النمذجة متعددة الوكلاء.
NetLogo
NetLogo بيئة للنمذجة متعددة الوكلاء، مبنية على نسخة معدلة من لغة البرمجة Logo. انبنت لغة Logo أساسًا لتعليم الأطفال مفاهيم البرمجة، وتخليكم تتحكمون بوكيل يسمونه سلحفاة؛ تتحرك وتترك أثر وراها. بهالطريقة نقدر نرسم أشكال هندسية معقدة، ونشوف سلوك الوكيل قدامنا بشكل بصري وواضح.
في NetLogo، نقدر ننشئ سلاحف كثيرة بأمر create-turtles. وبعدها نعطي كل السلاحف أمر تسوي فعل معيّن (في المثال الجاي: تتقدم 10 نقاط):
create-turtles 10
ask turtles [
forward 10
]
طبعًا لو كل السلاحف تسوي نفس الشي، ما بيكون المثال مثير. عشان كذا نقدر نستخدم ask مع مجموعة محددة من السلاحف، مثل السلاحف القريبة من نقطة معيّنة. ونقدر بعد ننشئ سلالات مختلفة بأمر breed [cats cat]. هنا cat هو اسم السلالة، ولازم نحدد صيغة الجمع والمفرد لأن أوامر مختلفة تستخدم كل صيغة للتوضيح.
✅ ما نحتاج نتعلم لغة NetLogo نفسها في هالدرس. إذا ودكم تتعمقون، شوفوا مورد Beginner's Interactive NetLogo Dictionary الممتاز.
تقدرون تحمّلون NetLogo وتثبتونه عشان تجرّبونه بأنفسكم.
مكتبة النماذج
من أفضل مزايا NetLogo إن معه مكتبة نماذج جاهزة تشتغل مباشرة. افتحوا File → Models Library، وبتلقون فئات كثيرة من النماذج تختارون منها.
وصف الشكل: مكتبة نماذج NetLogo
مثلًا، افتحوا نموذج Biology → Flocking.
المبادئ الأساسية
إذا فتحتوا النموذج، بتوصلون للشاشة الرئيسية في NetLogo. النموذج اللي هنا يصف أعداد الذئاب والخراف بوجود مورد محدود، وهو العشب.
وصف الشكل: الشاشة الرئيسية في NetLogo
في هالشاشة بتشوفون:
- قسم Interface، وفيه:
- المساحة الرئيسية اللي يعيش فيها كل الوكلاء.
- أدوات تحكم مختلفة، مثل الأزرار والمنزلقات وغيرها.
- رسوم بيانية نعرض فيها معاملات المحاكاة.
- تبويب Code، وفيه المحرر اللي نكتب داخله برنامج NetLogo.
غالبًا بتلقون في الواجهة زر Setup يجهّز حالة المحاكاة، وزر Go يبدأ التنفيذ. ويتعامل البرنامج مع الزرين عن طريق إجراءات مقابلة في الشفرة، شكلها كذا:
to go [
...
]
يتكوّن عالم NetLogo من العناصر الجاية:
- الوكلاء (السلاحف): يتحركون في المساحة ويسوّون أفعال. نعطيهم أوامر بصيغة
ask turtles [...]، وكل الوكلاء ينفّذون الشفرة اللي بين القوسين في وضع السلحفاة. - الرقع (Patches): مساحات مربعة يعيش عليها الوكلاء. نقدر نشير لكل الوكلاء الموجودين على الرقعة نفسها، أو نغيّر لون الرقعة وخصائص ثانية. ونقدر نطلب من الرقع تسوي فعل بأمر
ask patches. - المراقب (Observer): وكيل وحيد يتحكم بالعالم. كل إجراءات الأزرار تشتغل في وضع المراقب.
✅ جمال بيئة الوكلاء المتعددين إن الشفرة في وضع السلحفاة أو وضع الرقعة تنفّذها كل الوكلاء بالتوازي. يعني بشفرة قصيرة تحدد سلوك كل وكيل، نقدر نطلع بسلوك معقد للمحاكاة كاملة.
السلوك السربي
خلونا ناخذ السلوك السربي (Flocking) مثال على سلوك متعدد الوكلاء. السلوك السربي نمط معقّد يشبه طيران أسراب الطيور. يوم تراقبونها، ممكن تحسبون إنها تتبع خوارزمية جماعية أو عندها شكل من الذكاء الجمعي. لكن هالسلوك المعقّد ينشأ مع إن كل وكيل منفرد — وهو هنا طائر — ما يراقب إلا وكلاء قريبين منه، ويتبع ثلاث قواعد بسيطة:
- المحاذاة (Alignment) - يوجّه نفسه باتجاه متوسط اتجاه الوكلاء المجاورين.
- التماسك (Cohesion) - يحاول يتجه لمتوسط مواقع جيرانه (جذب بعيد المدى).
- التباعد (Separation) - إذا قرب زيادة من الطيور الثانية، يبتعد عنها (تنافر قصير المدى).
شغّلوا مثال التحليق وراقبوا وش يصير. تقدرون بعد تعدّلون معاملات مثل درجة التباعد أو مدى الرؤية، وهو المسافة اللي يقدر كل طائر يشوف ضمنها. انتبهوا: إذا نزل مدى الرؤية إلى 0، تصير كل الطيور كأنها عمياء ويتوقف التحليق الجماعي. وإذا نزل التباعد إلى 0، تتجمع الطيور كلها في خط مستقيم.
✅ افتحوا تبويب Code وشوفوا وين طُبقت قواعد التحليق الثلاث: المحاذاة والتماسك والتباعد. لاحظوا إننا ما نشير إلا للوكلاء اللي داخل مجال الرؤية.
نماذج ثانية تستاهل التجربة
هذي كم نموذج ممتع تقدرون تجرّبونه:
- نموذج Art → Fireworks يوضّح كيف نقدر نفهم الألعاب النارية كسلوك جماعي لتيارات نار منفردة.
- نموذجا Social Science → Traffic Basic و Social Science → Traffic Grid يعرضان حركة المرور في مدينة على شبكة 1D وشبكة 2D، مع إشارات مرور أو من دونها. كل سيارة في المحاكاة تتبع القواعد الجاية:
- إذا كانت المساحة قدامها فاضية، تتسارع إلى حد أعلى معيّن للسرعة.
- إذا شافت عائق قدامها، تفرمل؛ وتقدرون تعدّلون المسافة اللي يشوفها السائق.
- نموذج Social Science → Party يبيّن كيف تتجمع مجموعات الناس في حفلة كوكتيل. جرّبوا تلقون تركيبة المعاملات اللي ترفع سعادة المجموعة بأسرع شكل.
من هالأمثلة، نقدر نشوف إن المحاكاة متعددة الوكلاء طريقة مفيدة لفهم نظام معقّد مكوّن من أفراد يتبعون منطق واحد أو منطق متقارب. ونقدر نستخدمها بعد للتحكم بوكلاء افتراضيين، مثل الشخصيات غير القابلة للعب (NPCs) في ألعاب الكمبيوتر، أو الوكلاء داخل عوالم الرسوم المتحركة ثلاثية الأبعاد.
الوكلاء المتروّون
الوكلاء اللي شفناهم قبل بسيطون: يتفاعلون مع تغيّرات البيئة عن طريق خوارزمية، ولذلك نسميهم وكلاء تفاعليين. لكن بعض الوكلاء يقدر يستدل ويخطط لأفعاله، وهذولا نسميهم وكلاء متروّين.
خلونا نتخيل وكيل شخصي يستلم من شخص طلب يحجز له رحلة إجازة. حوله على الإنترنت وكلاء كثير يقدرون يساعدونه؛ فيتواصل معهم عشان يعرف الرحلات المتاحة وأسعار الفنادق في تواريخ مختلفة، ويحاول يتفاوض على أفضل سعر. إذا اكتملت خطة الإجازة ووافق عليها صاحبها، يبدأ الوكيل بالحجز.
عشان يسوّون هالعمل، لازم الوكلاء يتواصلون. والتواصل الناجح يحتاج:
- لغات معيارية لتبادل المعرفة، مثل Knowledge Interchange Format (KIF) وKnowledge Query and Manipulation Language (KQML). تصميم هاللغات مبني على نظرية أفعال الكلام.
- ولازم تشمل هاللغات بروتوكولات للتفاوض مبنية على أنواع مزادات مختلفة.
- علم الوجود المشترك (Common Ontology) يستخدمونه كلهم، عشان يقصدون المفاهيم نفسها ويفهمون دلالاتها بالطريقة نفسها.
- وسيلة لاكتشاف قدرات الوكلاء المختلفين، وتكون مبنية هي بعد على نوع من علم الوجود.
الوكلاء المتروّون أعقد بكثير من الوكلاء التفاعليين؛ لأنهم مب بس يستجيبون لتغيّرات البيئة، بل لازم يقدرون يبدؤون أفعال من نفسهم. ومن البنى المقترحة لهم وكيل الاعتقاد–الرغبة–النية (Belief-Desire-Intention أو BDI):
- المعتقدات تكوّن معرفة الوكيل عن بيئته. نقدر ننظمها كقاعدة معرفة أو كمجموعة قواعد يطبقها الوكيل على موقف محدد داخل البيئة.
- الرغبات تحدد وش يبي الوكيل يسوي؛ يعني أهدافه. مثلًا، هدف وكيل المساعد الشخصي اللي قبل هو حجز رحلة، وهدف وكيل الفندق تعظيم الربح.
- النوايا هي الأفعال المحددة اللي يخطط لها الوكيل عشان يحقق أهدافه. وغالبًا تغيّر هالأفعال البيئة وتسبب تواصل مع وكلاء ثانين.
فيه منصات تساعد على بناء الأنظمة متعددة الوكلاء، ومنها JADE. وتلقون في هالورقة مراجعة لمنصات الوكلاء المتعددين، مع نبذة عن تاريخ المجال وسيناريوهات استخدامه المختلفة.
الخلاصة
تجي الأنظمة متعددة الوكلاء بأشكال كثيرة وتدخل في تطبيقات متنوعة. لكنها كلها تركز على سلوك أبسط عند الوكيل الواحد، ثم يطلع منها سلوك أعقد على مستوى النظام بسبب الأثر التآزري.
🚀 التحدي
خذوا فكرة هالدرس للواقع، وتصوّروا نظام متعدد الوكلاء يحل مشكلة حقيقية. مثلًا: وش يحتاج يسوي النظام عشان يحسّن مسار حافلة مدرسية؟ وكيف ممكن يشتغل داخل مخبز؟
المراجعة والتعلّم الذاتي
راجعوا استخدام هالنوع من الأنظمة في الصناعة. اختاروا مجال مثل التصنيع أو ألعاب الفيديو، وابحثوا كيف تستخدم الأنظمة متعددة الوكلاء لحل مشكلات خاصة فيه.
تكليف NetLogo
طبّق
المختبرات والواجب
تكليف NetLogo
تكليف NetLogo اختاروا نموذجًا من مكتبة NetLogo وعدّلوه لمحاكاة موقف واقعي. وإذا استخدمتوا نموذج Virus، تعاملوا معه كمحاكاة مفاهيمية مبسطة، مب كتوقع وبائي: اذكروا الافتراضات، وغيّروا معاملين على الأقل، واشرحوا وش الأشياء اللي ما يمثلها النموذج. احفظوا نسخة محلية وسجّلوا عرضًا قصير
اختياري وتسويه بوقتك؛ ما يأثر على إكمال الدورة.
الواجب: تكليف NetLogo
تكليف NetLogo
اختاروا نموذجًا من مكتبة NetLogo وعدّلوه لمحاكاة موقف واقعي. وإذا استخدمتوا نموذج Virus، تعاملوا معه كمحاكاة مفاهيمية مبسطة، مب كتوقع وبائي: اذكروا الافتراضات، وغيّروا معاملين على الأقل، واشرحوا وش الأشياء اللي ما يمثلها النموذج. احفظوا نسخة محلية وسجّلوا عرضًا قصيرًا بوسائط من تأليفكم أو موثقة الترخيص ومن دون بيانات شخصية.
الزبدة
- صفوا الوكيل من خلال بيئته وملاحظاته وأفعاله وأهدافه.
- قارنوا الوكلاء التفاعليين والتداوليين وصمّموا تفاعلات بسيطة تنتج سلوكًا على مستوى النظام.
اختبار بعد الدرس
تأكد من فهمك
أرسله مرة وحدة عشان يفتح لك إكمال الدرس، وتقدر تعيده قد ما تبي.
اختم هالدرس
أرسل اختبار ما بعد الدرس، وبعدها أكّد إنك جاهز تكمّل الدرس.