لغة برمجة وكيل GOAL

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

ملخص

تشمل الميزات الرئيسية لبرنامج GOAL ما يلي:

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

برنامج وكلاء GOAL

أمثلة
border=0
مثال على مشكلة عالم المكعباتوحدة تحكم المصاعد متعددة العوامل A GOAL [ 1 ]

يتألف برنامج وكيل GOAL من ستة أقسام رئيسية، تشمل المعرفة ، والمعتقدات ، والأهداف ، وقواعد العمل ، ومواصفات العمل ، وقواعد الإدراك ، على التوالي. تُمثَّل المعرفة والمعتقدات والأهداف بلغة تمثيل معرفي مثل Prolog ، أو برمجة مجموعات الإجابات ، أو SQL (أو Datalog )، أو لغة تعريف مجال التخطيط ( PLAN )، على سبيل المثال. فيما يلي، نوضح مكونات برنامج وكيل GOAL باستخدام لغة Prolog.

يبدو الهيكل العام لبرنامج وكيل GOAL كما يلي:

الرئيسي: <اسم الوكيل> { <sections> } 

يُظهر رمز وكيل GOAL المستخدم لتوضيح بنية وكيل GOAL وكيلاً قادراً على حل مشكلات عالم المكعبات . تمثل معتقدات الوكيل الحالة الراهنة لعالم المكعبات، بينما تمثل أهدافه الحالة المنشودة. يحتوي قسم المعرفة المذكور لاحقاً على معلومات مفاهيمية أو متعلقة بمجال عالم المكعبات.

المعرفة { كتلة ( أ كتلة ( ب كتلة ( ج كتلة ( د كتلة ( هـ كتلة ( و كتلة ( ز ). مسح ( الجدول ). مسح ( س ) :- كتلة ( س ليس ( على ( ص ، س )). برج ([ س ]) :- على ( س ، الجدول ). برج ([ س ، ص | ت ]) :- على ( س ، ص برج ([ ص | ت ]). }

لاحظ أن جميع الكتل المدرجة في قسم المعرفة تظهر مرة أخرى في قسم المعتقدات حيث يجب تحديد موضع كل كتلة لتوصيف التكوين الكامل للكتل.

المعتقدات on(a,b), on(b,c), on(c,table), on(d,e), on(e,table), on(f,g), on(g,table). } 

جميع الكتل المعروفة موجودة أيضًا في قسم الأهداف الذي يحدد تكوين الهدف الذي يعيد استخدام جميع الكتل.

أهداف on(a,e), on(b,table), on(c,table), on(d,c), on(e,b), on(f,d), on(g,table). } 

قد يكون لدى وكيل الهدف عدة أهداف في الوقت نفسه. بل قد تتعارض هذه الأهداف، إذ يمكن تحقيق كل هدف في أوقات مختلفة. على سبيل المثال، قد يكون لدى الوكيل هدف مشاهدة فيلم في السينما والعودة إلى المنزل (بعد ذلك).

في نظام GOAL، تُفرَّق مفاهيم مختلفة للهدف. الهدف الأولي هو عبارة تنبثق من قاعدة الأهداف بالاقتران مع المفاهيم المُعرَّفة في قاعدة المعرفة . على سبيل المثال، tower([a,e,b])يُعدّ هدفًا أوليًا، ونكتب goal(tower([a,e,b])للدلالة عليه . في البداية، tower([a,e,b])يُعتبر أيضًا هدفًا إنجازيًا لأن العامل لا يعتقد أن a فوق e، وe فوق b، وb على الطاولة. الأهداف الإنجازية هي أهداف أولية لا يعتقد العامل أنها صحيحة، ويُرمز لها بـ a-goal(tower([a,e,b]). من المفيد أيضًا التعبير عن تحقيق هدف ما . goal-a(tower([e,b])يُستخدم للتعبير، على سبيل المثال، عن [e,b]بناء البرج بوضع الكتلة e فوق الكتلة b. يمكن تعريف كل من الأهداف الإنجازية ومفهوم تحقيق الهدف.

a-goal(formula) ::= goal(formula), not(bel(formula)) goal-a(formula) ::= goal(formula), bel(formula) 

يوجد قدر كبير من الأدبيات حول تعريف مفهوم هدف الإنجاز في أدبيات الوكيل (انظر المراجع).

GOAL هي لغة برمجة قائمة على القواعد. تُنظَّم القواعد في وحدات. تُحدِّد الوحدة الرئيسية لوكيل GOAL استراتيجية لاختيار الإجراءات باستخدام قواعد الإجراءات. تنص القاعدة الأولى أدناه على أن نقل الكتلة X فوق الكتلة Y (أو ربما فوق الطاولة) يُعد خيارًا متاحًا إذا كان هذا النقل بنّاءً، أي يُعيد الكتلة إلى موضعها. وتنص القاعدة الثانية على أن نقل الكتلة X إلى الطاولة يُعد خيارًا متاحًا إذا كانت الكتلة X في غير موضعها.

الوحدة الرئيسية { برنامج{ إذا كان a-goal(tower([X,Y|T])), bel(tower([Y|T])) ثم move(X,Y). إذا كان الهدف a هو (البرج([X|T]))، فقم بنقل (X، الجدول). } } 

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

مواصفات الإجراء{ move(X,Y) { pre{ clear(X), clear(Y), on(X,Z), not(X=Y) } post{ not(on(X,Z)), on(X,Y) } } 

أخيرًا، تتألف وحدة الأحداث من قواعد لمعالجة الأحداث، مثل المعلومات الواردة من البيئة. تنص القاعدة أدناه على أنه بالنسبة لجميع المعلومات الواردة التي تشير إلى أن الكتلة X تقع فوق الكتلة Y، ويُعتقد أن X تقع فوق Z التي لا تساوي Y، تُضاف الحقيقة الجديدة on(X,Y) إلى قاعدة المعتقدات، ويُحذف العنصر on(X,Z).

وحدة الأحداث { برنامج{ forall bel( percept(on(X,Y)), on(X,Z), not(Y=Z)) do insert(on(X,Y), not(on(X,Z))). } } 

لغة برمجة الوكلاء GOAL مرتبطة بلغات برمجة الوكلاء الأخرى مثل AGENT0 و AgentSpeak و 2APL و Golog و JACK Intelligent Agents و Jadex ، و Jason على سبيل المثال، ولكنها تختلف عنها . السمة المميزة لـ GOAL هي مفهوم الهدف التصريحي . تصف أهداف وكيل GOAL ما يرغب الوكيل في تحقيقه، وليس كيفية تحقيقه. وعلى عكس اللغات الأخرى، يلتزم وكلاء GOAL بأهدافهم ولا يزيلون أي هدف إلا بعد تحقيقه بالكامل . توفر GOAL إطار عمل برمجيًا يركز بشكل كبير على البرمجة التصريحية وقدرات الاستدلال اللازمة للوكلاء المعرفيين.

انظر أيضاً

مراجع

  1. تم كتابة برنامج محاكاة المصعد في الأصل بواسطة كريس ديلي ونيل ماكيلار وهو متاح في شكله الأصلي عبر https://sourceforge.net/projects/elevatorsim .
ملحوظات

الأدبيات المتعلقة بمفهوم الهدف:

  • لارس براوباخ، ألكسندر بوكاهر، دانيال مولدت ووينفريد لامرسدورف (2004). تمثيل الهدف لأنظمة وكلاء BDI، في: ورشة العمل الدولية الثانية حول برمجة أنظمة الوكلاء المتعددين.
  • فيليب ر. كوهين وهيكتور ج. ليفيسك (1990). النية هي اختيار مصحوب بالتزام. الذكاء الاصطناعي 42، 213-261.
  • أندرياس هيرزيج ود. لونجين (2004). إعادة النظر في نية C&l. في: وقائع المؤتمر الدولي التاسع لمبادئ تمثيل المعرفة والاستدلال (KR'04)، 527-535.
  • كوين ف. هندريكس، فرانك س. دي بوير، ويبي فان دير هوك، جون جولز تش. ماير (2000). برمجة الوكلاء بأهداف تصريحية. في: وقائع ورشة العمل الدولية السابعة حول الوكلاء الأذكياء VII (ATAL'00)، الصفحات  228-243.
  • أناند س. راو ومايكل ب. جورجيف (1993). النوايا والالتزام العقلاني. تقرير فني رقم 8، المعهد الأسترالي للذكاء الاصطناعي .
  • بيرنا فان ريمسديك، مهدي داستاني، جون جولز تش. ماير (2009). الأهداف المتضاربة: الأسس الدلالية للأهداف في برمجة الوكلاء. المجلة الدولية للوكلاء المستقلين وأنظمة الوكلاء المتعددة.