بخشی از مقاله


Shoham, “Agent-oriented Programming”

1-مقدمه
اکنون یک الگوی برنامه نویسی پیشرفته یک دیدگاه اجتماعی از کاربرد کامپیوتر،جایی که "عامل" تاثیر می گذارد داریم.

1-1- عامل چیست؟
یک عامل هر موجودیتی است که حالت است به نظر می رسد به عنوان شامل اجزای ذهنی ( برای مثال گمانها،قابلیتها،انتخابها و الزام ها)
بنابراین کلاه خود عامل هست در مغز یک برنامه نویس
زمانی که هر چیزی میتواند به نظر برسد مثل داشتن حالت های ذهنی
آن همیشه مزیتی برای انجام ندارد.
1-2- مسئول استفاده از واژگان شبه ذهنی :


عناصر لازم برای نسبت دادن یک کیفیت معین به جزیی از ماشین.
*یک نظریه مفید راجعبه دسته ذهنی: معنا شناسی برای آنکه به طور واضح هنوز به استفاده متداول(واژه)نزدیک نشدیم.
*یک برهان که فقط از نظریه اطاعت میکند.
*یک برهان که نظریه قراردادی یک نقش غیر جزئی در آنالیزیا طراحی ماشین بازی میکند.
ارتباط نظریه نظریه قراردادی برای دریافت معمولی لازم نیست تحمیل شود.
1-3-AOPدر برابر OOP
استفاده میکنیم شکل دادن ذهنی را برای طراحی سیستم محاسباتی
دسته های ذهنی(روانی)در زبان برنامه نویسی ظاهر میشود.
معنای زبان برنامه نویسی ‘معنای ساختار های ذهن را شرح می دهد.
نرم افزار برنامه نویسی عامل گرا(AOP) نرم افزار برنامه نویسی شئ گرا(AOP)را اختصاصی کرده است. برای مثال در دریافت بازیگرهای هپوئیت:
میبینیم یک سیستم محاسباتی به عنوان ترکیب شده از لحاظ ارتباط ماژولها.
AOP ثابت می کندحالت ذهنی ماژول (عامل) را برای شامل شدن

اجزاء مثل باورها- قابلیت ها و تصمیمات.
یک محاسبه ی شامل این عامل ها آگاه می کنند، درخواست میکنند، می پذیریند، رد می کنند، رقابت می کنند وبه دیگری کمک می کنند.فاوتی سروکار و اثرات متفاوتی دارد.

جدول1 (AOPدر برابر OOP )

AOP OOP
عامل شئ واحد اصلی
گمانها، تعهدها، انتخاب ها و… بدون محدودیت حالت تعریف پارامترهای واحد اصلی
پیامها صادر می شوند و به متدها پاسخ می دهند. پیامها صادر می شوند و به متدها پاسخ می دهند. مرحله محاسبه
اطلاع دادن،درخواست دادن،پیشنهاد دادن،قول دادن ،کاستن بدون محدودیت نوع پیام ها
پایداری/ درستی ندارد محدودیت روی روش ها (متدها)

2- دو سناریو:

اولین سناریو،پیچیده است- نوع رویایی برنامه ی کاربردی
دومین سناریو مثال اسباب بازی است که در خدمت سه هدف است:
- به تصویر کشیدن قطعی ایده های چندین AOP
- آن در زبان AGENT-0 قابل اجراء است که بعداً تعریف می شود.
- ان حقایق عامل ها را به تصویر می کشد. نیاز به عامل های رباتیک ندارد.
2-1-ساخت خودکارسازی (اتوماسیون)
عامل ها:
• آلفرد ماشین های منظم و معین را اداره می کند.
• براندا ماشین های خاص- منظم را اداره میکند.
• کالوین ربات جوشکاری است.
• راشیل یک برنامه هماهنگ کننده است که ماشین را کنترل می کند.
--------------------------------------------------------------------------
• (8:00) : آلفرد درخواست می کند که کالوین قول دهد که 10 بدنه را برای او، ان روز جوشکاری کند.
کالوین نیزموافق به انجام آن است.
• (8:30) : آلفرد درخواست می کند که کالوین قول دهد اولین بدنه را برساند ، کالوین قبول می کند و اولین بدنه می رسد.
کالوین شروع می کند به جوشکاری آن و قول میدهد به آلفرد برای اینکه وقتی بدنه بعدی آماده بود، او را آگاه کند.
• (8:45) : براندا درخواست می کند که کالوین روی ماشین خاص- منظم کار کند، زیرا که به فوریت نیاز دارد.
کالوین پاسخ می دهد که در آن هنگام نمی تواند درست کند.اما آن کار را وقتی خواهد کرد که کارش تمام شده باشد.
• (9:05) : کالوین جوشکاری اولین ماشین آلفرد را کامل می

کند، آن را بیرون می فرستد، به براندا پیشنهاد جوشکاری او را می دهد.
براندا ماشین را می فرستدو کالوین شروع به جوشکاری می کند.
• (9:15) :آلفرد تحقیق می کند که چرا کالوین هنوز برای ماشین

بعدی او(آلفرد) آماده نیست.
• (9:55) : کالوین جوشکاری ماشین برندا را کامل می کند و آن را بیرون می فرستد.
براندا درخواست میـکند کالوین دوباره قبول کند و تعدادی نقاشی انجام دهد. ولی کالوین نمی پذیرد و می گوید که چگونه نقاشی بکِشد.
سپس کالوین به آلفرد پیشنهاد می دهد که ماشین دیگرش را جوشکاری کند و برای یک مدتی به جوشکاری ماشین آلفرد مشغول می شود.
• (12:15) :برندا درخواست می کند که کالوین برای جوشکاری 4 ماشین او در ان روز وارد عمل شود.
کالوین پاسخ می دهد که نمی تواند ان کار را انجام دهد. زیرا از وقتی که به آلفرد قول داده، هنوز 6 ماشین را جوشکاری نکرده است.
برندا از آلفرد درخواست می کند که کالوین را از تعهدش نسبت به او(آلفرد) آزاد کند.ولی آلفرد نمی پذیرد.
برندا درخواست می کند که داشیل (داشیل را به یاد دارید؟)به کالوین برای پذیرفتن درخواست مهم او و لغو کردن تعهدش نسبت به آلفرد دستور دهد.
داشیل به کالوین دستور می دهد که 2 ماشین برندا را جوشکاری کند و سپس به کار آلفرد بپردازد.
• (3:30) : کالوین حس می کند که روغنش کم شده است و بدون قطع کردن کارش ازآلفرد مپرسد برای چه وقتی روغن کاری بعدی او برنامه ریزی شده است.
آلفرد می گوید که نمیداند، ولی داشیل باید بداند.
کالوین از داشیل می پرسد. داشیل میگوید که روغن کاری بعدی او برای ساعت 4:00 برنامه ریزی شده است.
با توجه به اینکه هنوز زود است، کالوین به جوشکاری ادامه میدهد.

2-2- سیستم رزو خطوط هوایی :
عامل ها:
• P : مسافر
• C : کارمند هواپیمایی ( یک برنامه )
• S : ناظر C

به وسیله مطبقت یک رزو، سیستم هواپیمایی در یک تعهد برای صادر کردن یک گذرنامه برای یک مسافر در زمان مناسب وارد می کند.
--------------------------------------------------------------------------
MARCH
P to C : لطفاً به من بگویید که شما چه پروازی از سانفرانسیسکو به نیویورک در 18 آپریل دارید.
C to P : پرواز شماره 354 ذر ساعت 8:30 حرکت می کندو پرواز شماره 293 در ساعت 10:00 حرکت می کند و پرواز شماره 441 در ظهر ...
P to C : لطفاً برای من در شماره 354 رزو کنید.
C to P : از آن دیگر نداریم.( همه به فروش رفته است.)
P to C : لطفاً در شماره 293 رزو کنید.
C to P : تایید شد. شماره رزو شما 112358 است.
P to C : لطفاً برای من در پرواز شماره 441 نیز رزو کنید.
C to P : آن پرواز با شماره 293 تداخل می کند. من اجازه ندارم برای یک مسافر 2 رزو کنم.
P to C : لطفاً برای انجام این کار مجوز بگیرید.
C to S : من برای ادامه رزو مضاعف درخواست مجوز می کنم.
S to C : مجوز داده نمی شود.
C to P : متاسفم، من نمی توانم تایید بگیرم.
April 18 ؛ درفرودگاه:

P to C : اسم من P است. من یک رزو برای پرواز شماره 293 دارم.
C to P : این گذرنامه شما است، بفرمایید.

 

3- برداشت کلی از نرم افزار AOP :
یک سیستم AOP کامل شامل 3 جزء اولیه است:
1- یک زبان قراردادی انحصاری (که شامل چندین بعد، مثل گمان ها والزام ها
است) با گرامر واضح و معنایی برای توصیف حات های ذهنی ؛
2- یک زبان برنامه نویسی تفسیری برای تعریف و برنامه نوشتن عامل

ها با دستورات اولیه (برای مثال: REQUEST، INFORM)
3- یک "Agentifier"؛ دستگاه های بی اثر را به عامل های قابل برنامه نویسی تبدیل می کند.
• جزء 2 هدف اصلی این مقاله است.
• ان به جزء 1 تکیه می کند.
• جزء 3 باقیمانده نسبتاً مبهم است.

4- دسته های ذهنی و مشخصه های آنها:
آنجا نه انتخاب صحیح از دسته های ذهنی و نه یک تئوری صحیح از آنها است.
4-1- اجزاء حالت ذهنی:
انجام کار یک عامل به وسیله تصمیمات او یا انتخاب های او تعیین مشود.
تصمیمات به وسیله گمان های عامل محدود می شوند که بعداً اشاره خواهد شد.
• حالت جهان
• حالت های عامل های دیگر
• قابلیت های این عامل و عامل های دیگر
هم چنین تصمیمات به وسیله تصمیمات قبلی محدود می شوند.
بنابراین ما دو دسته ی ذهنی معرفی می کنیم ، گمان و تصمیم، و دسته ی سوم، قابلیت ها، (که نه به خودی خود ذهنی است) .
بهتر است یک تصمیم مثل پایه بگیریم. ما با الزام ها یا تعهدها شروع می کنیم و با تصمیمی مثل تعهد با خود او رفتار می کنیم.
4-2- یک زمان برای گمان، تعهد و قابلیت زمان:
ما گمان می کنیم اشیاء هردو مورد،حدود زمان های متفاوت و در زمان های متفاوت، هستند.
به علاوه برای ابعاد دیگر.
ما یک نقطه- زبان موقتی به عنوان پایه در نظر می گیریم.به عنوان مثال:

holding(robot,cup)t

یعنی : " روبات، فنجان را در زمان t نگه داشته است."

عمل
ما بین عمل ها و حقایق تمایزی قائل نمی شویم .
رویداد یک عمل به وسیله حقیقت مشابه "نگه داشتن" نمایش داده می شود.
به عنوان مثال به جای گفتن اینکه بازوی بالا برنده را در زمان می گیرد، میگوییم درست است.raise-arm(robot)t که عبارت
(برای نگه داشتن وسیله بعد از عمل، یک تصمیم معرفی می کنیم.)
نظر به اینکه عمل ها یک حقیقت و لحظه ای می باشند.

گمان
استفاده از عملگر نمایی B
" در زمان t عامل a،φ را گمان می کند. "

جایی که φ یک جمله است. (تعریف شده بازگشتی)


برای مثال :
یعنی: "در زمان 3 عامل a گمان می کند که در زمان 10 عامل b گمان خواهد کرد که در زمان 7 a liked b ."
تعهد



یعنی:"در زمان tعاملa متعهد است به عاملb درباره یφ"

تصمیم(انتخاب)
تصمیم برای تعهد به خودش تعریف شده است.

توانایی

یعنی : "در زمان t عامل a توانا به φ است"
برای مثال ،

یعنی: "در زمان 5 روبات می تواند مطمئن شود که در، در زمان 8 باز است."
است.CAN مدل بی درنگ از ABLE
زمان درنگ φ دورترین زمان اتفاق افتادن در جمله φ است،

4-3- مشخصات اجزاء مختلف
پایداری داخلی
فرض می کنیم که هر دوی گمان ها و تعهد ها به طور داخلی پایدارند:


هر دو مورد فوق پایدارند.


عقیده ی خوب
عامل ها به کار برده می شوند فقط برای آنچه آنها گمان می کنند خود توانا هستند و فقط اگر آن را معنی می کنند.

درون نگری
عامل ها از تعهدشان آگاه هستند.

ولی فرض نمی کنیم که عامل ها نیاز دارند از تعهدات ساخته شده در برابر آنها نیز آگاه باشند.
ماندگاری حالت ذهنی
ملاحظه به اینکه چگونه حالت های ذهنی ایستادگی یا تغییر می کنند.

گمان ها ایستادگی به وسیله پیش فرض : عامل ها حافظه ی کام

ل از گمان هایشان دارند؛یک گمان افتاده است فقط زمانی که یک حقیقت متناقض فهمیده است.
همچنین فقدان گمان ایستادگی کردن به وسیله پیش فرض است.

تعهد ها
ایستادگی کردن فرضی، اما آنجا شرایطی است که تحت آنها لغو شده اند.
برای مثال:


 آزاد کردن صریح عامل توسط گروه، برای آنکه آنها متعهد هستند.
 ادراک به وسیله عامل که در آن به مدت طولانی نمی تواند تعهد را انجام دهد.
 نظر به اینکه تصمیم در شرایط تعهد تعریف شده است، آن جایگزین پایداری پیش فرض میشود.
مادامی که یک عامل نمی توان تعهد به دیگران را به طور یکجانبه لغو کند،او می تواند تعهدات به آن را رد کند – شامل تصمیم ها
 فرض می کنیم که توانایی ها ثابت شده اند.

نوع وابسته ی دستورات نمایی
پرش
4-4- یک انحراف کوتاه : مقایسه بین کوهن و لوسکیو
پرش
5- مفسر عامل عمومی:
نقش یک برنامه عامل، کنترل تحول یک حالت ذهنی است.
عمل رخ می دهد. مثل اثرات جانبی عاملِ تعهد داده شده به یک عمل چه زمانی می آید.
حلقه اصلی
هر عامل دنباله از مراحل را در فاصله ی منظم تکرار می کند.
1) پیام جاری را بخوان و حالت ذهنی را به روز کن، شامل گمان ها و تعهدات
( برنامه عامل برای به روز رسانی بسیار بحرانی است.)
2) تعهدها برای زمان جاری را اجرا کن، شاید در تغییر کمان بیشتر نتیجه می گیرد.
( این کار مستقل از برنامه عامل است )
عمل هایی که برای آنکه عامل ها بتوانند متعهد شوند عبارتند از:
 عمل های گویا ( برای مثال: آگاهی دادن و درخواست کردن)
 عمل های "اختصاصی" اختیاری
شکل را ببینید:


فرض در مورد انتقال پیام

فرض می کنیم که پایگاه می تواند پیام ها را به عامل های دیگر بفرستد.آدرس پذیر توسط نام.
مفسر وقتی پیام ها فرستاده می شود تصمیم می گیرد.

فرض در مورد clock

Clock از سر گیری 2 مرحله در فاصله های منظم را راه اندازی می کند.
طول این فاصله به وسیله ی متغیر پایدارtime grain)) معین شده اس

ت.
فرض می کنیم یک متغیر اکنون که متغیر نصب شده به وسیله کلاک به زمان جاری .
فرض می کنیم که تکرارها تنها میان حلقه کمتر از خرده زمان.(یک فرض بسیار قوی)
هم زمان سازی برای کار صحیح یک جامعه از عامل ها بحرانی است.

6- AGENT-0، یک زبان ساده؛ و پیاده سازی آن
6-1 گرامر AGENT-0


زبان خودش فقط شرایط را برای ساختن تعهدها تعیین می کند.
تعهدها ساخته می شوند. و بعداً در زمان مناسب انجام می دهد.
تعهدات فقط برای عمل های ابتدایی هستند. (به طور مستقیم توسط عامل اجرا می شوند.)
بنابراین یک عامل نمی تواند متعهد به انجام شدن هر شرطی که برنامه ریزی را درخواست می کند، شود.

دستورات حقیقی
دستورات حقیقی برای تعیین کردن هر دو محتوای عامل ها و شرایط برای اجرای آنها استفاده می شوند.
جمله های هدف atomic زبان موقتی توصیف شده در بالا:
(t (employee smith acme))
(NOT (t (employee jones acme)))

دستور عمل های گویا و خصوصی

عمل ها ممکن است خصوصی یا گویا باشند.


گرامر برای یک عمل خصوصی ( برای مثال به وسیله یک عامل پایگاه داده یا یک روبات)
(DO t p-action)
جایی که t است یک نقطه ی زمان و p-action یک نام عمل خصوصی است.
عمل های خصوصی ممکن است IO شوند.
عمل های گویا همیشه برای IO و معمولاً برای همه ی عامل ها درگیر می شوند.
AGENT-0 فقط شامل 3 نوع عمل گویا است:
 گرامر اطلاع کردن است:
(INFORM t a fact)
جایی که t یک نقطه زمان است ، a یک نام عامل و fact یک دستور حقیقی است.
 گرامر درخواست کردن است:
(REQUEST t a action)
جایی که عمل یک دستورعمل است، تعریف شده ی بازگشتی می باشد.
برای مثال :
(REQUEST 1 a (DO 10 update-database))
(REQUEST 1 a (REQUEST 5 b
(INFORM 10 a fact)))

 گرامر حذف یک درخواست است:
(UNREQUEST t a action)

هم چنین می توانیم از تعهد به یک عمل به خصوص جلوگیری کنیم.
(REFRAIN action)

دستورات عمل شرطی :


ما وجه تمایز قائل می شویم بین :
• تعهدات برای عمل های شرطی، که شامل شروط تست شده فقط قبل عمل کردن
• شروط برای وارد کردن به تعهدات در مرتبه ی اول ( در زیر می بینید)
یک عمل شرطی به یکئ شرط ذهنی تکیه می کند، که اشاره به حالت ذهنی عامل می کند.
هنگامی که زمان برای اجرای عمل وارد کار می شود،حات ذهنی در آن زمان آزمایش می کند تا ببیند آیا شرط ذهنی راضی است.
بنابراین عامل و اجزاء زمان حالت ذهنی در چپ به طور ضمنی هستند.
شرط ذهنی،بنابراین،هر ترکیب دستورات نمایی در زبان موقتی نمایی،با عامل اولیه و دستورات حذف شده می باشد.


به طور ویژه ،یک شرط ذهنی یک ترکیب منطفی از الگوی ذهنی نرم است.
(B fact) or ((CMT a) action)
CMT به همان معنی OBL است.
برای مثال :
(B (t (employee smith acme)))

گرامر یک عمل شرطی به صورت زیر است:
(IF mntlcond action)
برای مثال:
(IF (B (t’ (employee smith acme)))
(INFORM t a
(t’ (employee smith acme))))

شروط ذهنی امکان دارد شامل یک رابط AND یا NOT باشد.
برای مثال، دنباله ی3 دستور ، تشکیل یک پرسش و پاسخ درباره ی چه حقیقتی است. (b پرس وجو شده و سئوال می شود برای آگاه کردن a):

(REQUEST t b (IF (B fact)
(INFORM t+1 a fact)))
(REQUEST t b (IF (B (NOT fact))
(INFORM t+1 a (NOT fact))))
(REQUEST t b
(IF (NOT (BW fact))
(INFORM t+1 a
(NOT (t+1 (BW a fact))))))

متغیرها
رویه ها در یک مدل الگوی مستقیم لغو می شوند.
قوانین تعهد به وسیله الگوهای معین (به طور کلی با متغیرها سروکار دارد) در پیام های آمده و حالت ذهنی فعال می شوند.( در پایین می توانید مشاهده کنید):

یک متغیر به وسیله ی "؟" می آید.


ممکن است آن روی نام های عامل، دستورات حقیقی یا دستورات شرطی
تغییر دهد.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید