پرسشکده مرجع پرسش و پاسخ فارسی ایران

مسئله‌ی مهم آن است که هرگز از سؤال‌کردن دست برندارید. برای هر حس کنجکاوی، یک پاسخ وجود دارد.

نمی دانید؟! بپرسید!

می دانید؟! پاسخ دهید!


همانگونه که می دانید سیستم استدلال رویه ای PRS یکی از اولین ساختارهای پیشنهادی مبتنی بر BDI بوده است. در این سیستم کتابخانه از پیش تعریف شده ای از طرح ها (Plans) موجود است و هر طرح اجزا زیر را دارد:
A goal: pas condition  of the plan
A context: precondition of the plan
A body: recipe - courses of actions
در این ساختار در قسمت بدنه بجای توالی عمل ها می توان مجددا goal تعریف نمود یعنی در این مرحله از توالی عمل ها باید این هدف حاصل شود و سپس بقیه هدف ها ادامه یابد. در این مدل حتی می توان از حلقه یا عملگر های and و or نیز استفاده کرد. در این سیستم یک پشته از اهداف (intention stack) وجود دارد و در ابتدا یک هدف اولیه در این پشته قرار می گیرد و بر حسب اینکه کدام طرح ها می توانند به این هدف نائل شوند (و پیش شرط های آن در حال حاضر موجود است) یکی از طرح ها با مکانیزمی انتخاب و اجرا می شود. اجرای هر طرح ممکن است مستلزم قرار دادن هدف ثانویه ای در پشته باشد. نمونه ای از این سیستم که برای جابجا کننده بلاک ها نوشته شده است در زیر نشان داده شده است. مشابه همین سیستم را برای مسئله میمون و موز بنویسید.

GOALS:
ACHIEVE blocks_stacked;
FACTS:
FACT ON "Block5" "Block4";           FACT ON "Block5" "Block3";
FACT ON "Block1" "Block2";           FACT ON "Block2" "Table";
FACT ON "Block3" "Table";            FACT CLEAR "Block1";
FACT CLEAR "Block5";                  FACT CLEAR "Table";
Plan: {
     NAME: "Top-level plan"
     GOAL: ACHIEVE blocks_stacked;
     CONTEXT:
     BODY:
ACHIEVE ON "Block3" "Table";
ACHIEVE ON "Block2" "Block3";
ACHIEVE ON "Block1" "Block2";
}

Plan: {
     NAME: "Stack blocks thar are already clear"
     GOAL: ACHIEVE ON $OBJ1 $OBJ2;
     CONTEXT:
     BODY:
ACHIEVE CLEAR $OBJ1;
ACHIEVE CLEAR $OBJ2;
PERFORM move $OBJ1 $OBJ2;
     UTILITY: 10;
     FAILURE: EXECUTE print "\n\nStack blocks failed!\n\n";
}

Plan: {
     NAME: "Clear a block"
     GOAL: ACHIEVE CLEAR $OBJ;
     CONTEXT: FACT ON $OBJ2 $OBJ;
     BODY:
ACHIEVE ON $OBJ2 "Table";
     EFFECTS: RETRACT ON $OBJ2 $OBJ;
     FAILURE: EXECUTE print "\n\nClearing block failed!\n\n";
}



اولین کسی باشید که به این سوال پاسخ می دهید !


عبارت های جستجو شدهعبارت های جستجو شده

()