Artificial Intelligence - هوش مصنوعی  
انجمن را در گوگل محبوب کنيد :

بازگشت   Artificial Intelligence - هوش مصنوعی > الگوریتم ها > الگوریتم رقابت استعماری (Imperialist Competitive Algorithm)


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
ارسال تاپيک جديد  پاسخ
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۰۷-۱۲-۱۳۸۹, ۰۲:۳۴ بعد از ظهر   #1 (لینک دائم)
Administrator
 
آواتار Astaraki
 
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: تهران-کرج!
پست ها: 3,465
تشكرها: 754
16,337 تشكر در 3,127 پست
My Mood: Mehrabon
ارسال پيغام Yahoo به Astaraki
Question بخش رقابت استعماری در ica چگونه مدل می شود؟

بخش رقابت استعماری در ICA چگونه مدل می شود؟

سوال:
"با درود فراوان،بابت تمامی اطلاعاتی که در مورد ICA بر روی سایت(محاسبات تکاملی) گذاشته اید، متشکرم. من می‌خوام این ترم ICA را در واحد سمینارم ارائه کنم. تمامی موارد را تقریباً متوجه شدم. ولی‌ در قسمت "رقابت استعماری" اشکال دارم. اینکه بردار P تعریف می‌شه و بعد بردار (رندم) R تعریف می‌شه و در نهایت داریم: D = P - R
اینجاهارو متوجه نمیشم. در صورت امکان لطفاً بنده را در این مورد راهنمایی کنید."


پاسخ این سوال در ادامه آمده است.

فرض کنیم که 4 نفر در بانکی سرمایه گذاری کرده اند و می خواهیم جایزه سفر به دور دنیا را به یکی از آنها بدهیم. هر بانکی برای خود سیاست قرعه کشی خاصی دارد. مثلاً بانکی می گوید "بشتابید! هر پنجاه هزار ریال در هر روز یک امتیاز". بانک دیگر می گوید، "هر 10 هزار ریال در هر ماه یک امتیاز". یا اصلاً بانک دیگر می گوید: "موجودی حساب مهم نیست. موجودی بالای 10 هزار ریال هر چقدر باشد، یک امتیاز". هر یک از سیاست های قرعه کشی فوق به نفع قشر خاصی هستند. مثلاً روش اول برای افراد با سرمایه بالا ولی با حساب متغیر، روش دوم برای افراد با سرمایه بالا ولی با حساب سپرده ثابت و روش آخر هم برای افراد آسیب پذیر و قشر پابرهنه جامعه خوب است و من خودم ترجیح می دهم در چنین قرعه کشی باشم چون با همه سرمایه دارها یک امتیاز خواهم داشت.

از بحث قرعه کشی خارج شویم. بدون توجه به ماهیت روش امتیاز دهی فوق، فرض کنیم 4 نفر به ترتیب امتیاز های زیر را کسب کرده اند.

كد:
Point = [1 2 3 4];

می توان احتمال برنده شدن زیر را به آنها اختصاص داد. توجه کنید که مجموع امتیاز های فوق 10 است. پس امتیازها را تقسیم بر مجموع امتیاز ها می کنیم.

كد:
Probability = [1 2 3 4] / 10 = [0.1  0.2  0.3  0.4];

حال یک بردار تصادفی (رندم) ایجاد می کنیم. این کار را با دکمه rnd در ماشین حساب و یا درستور rand در متلب انجام می دهیم. من با تولید این بردار تصادفی در متلب به نتیجه زیر رسیدم (مطمئن باشید تقلبی در کار نیست!).

كد:
R = 0.82    0.96    0.13    0.91];


حال بیاید R را از P کم کنیم و اندیس ماکزیمم را پیدا کنیم.

كد:
Probability - R = [0.1  0.2  0.3  0.4] - [0.82    0.96    0.13    0.91] = [ -0.71   -0.71    0.17   -0.51];

بیشترین عدد در بردار بالا برابر 0.17 و مربوط به سرمایه گذار سوم است. تکرار بارهای مختلف قرعه کشی با همان احتمالات برنده شدن بالا، نتیجه برنده متفاوتی خواهد داشت. اما ببینیم اگر قرعه کشی 10000 بار تکرار شود، هر سرمایه گذار به ترتیب چند بار برنده می شود؟ یعنی آیا قرعه کشی منصفانه (Fair) است؟ اینگونه نباشد که فردی با سرمایه گذاری بیشتر، در تعداد کمتری برنده شود؟!! برای تست روش قرعه کشی برنامه زیر را در متلب نوشتیم.

كد:
IndexeMat = zeros(1,4);
P = [.1 .2 .3 .4];
for ii = 1:10000
    R = rand(1,4);
    D = P - R;
    Index = find(D == max(D));
    IndexeMat(Index) = IndexeMat(Index) + 1;
end
IndexeMat = IndexeMat

نتیجه یک بار اجرای برنامه (تعداد برنده شدن) در زیر آمده است.

كد:
IndexeMat = [986        1743        2853        4418]

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


روند فوق دقیقاً همان روندی است که در بخش "رقابت استعماری" یا (Imperialistic Competition) در الگوریتم رقابت استعماری انجام می شود. در این بخش مستعمره ضعیف به مانند جایزه و هر استعمارگر به مانند سرمایه گذار در مسئله بالا عمل می کند. در نهایت هر امپراطوری بسته به قدرت (معکوس هزینه خود) احتمالی برای انتخاب این جایزه دارد و مطابق روند بالا قرعه کشی برای تقدیم این جایزه انجام می شود و کشور با قدرت بیشتر نه همیشه ولی در بارهای بیشتری برنده این قرعه کشی (و شاید نزاع خونین) خواهد بود.

این روش را با چرخه رولت (Roulette Wheel) در الگوریتم ژنتیک (Genetic Algorithms) مقایسه کنید. به نظر شما نقطه ضعف و برتری هر روش چیست؟ شما کدام روش را برای استفاده در یک الگوریتم تکاملی مناسب تر می دانید؟

منبع : بخش رقابت استعماری در ica چگونه مدل می شود؟

ويرايش شده توسط Astaraki; ۱۰-۷-۱۳۸۹ در ساعت ۰۱:۳۸ بعد از ظهر
Astaraki آفلاين است   پاسخ با نقل قول

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online  
پاسخ



كاربران در حال ديدن تاپيک: 1 (0 عضو و 1 مهمان)
 

قوانين ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلکها فعال است
كد [IMG] فعال است
كدهاي HTML غير فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال




زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۱۱:۲۵ بعد از ظهر ميباشد.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

Teach and Learn at Hexib | Sponsored by www.Syavash.com and Product In Review

استفاده از مطالب انجمن در سایر سایت ها، تنها با ذکر انجمن هوش مصنوعي به عنوان منبع و لینک مستقیم به خود مطلب مجاز است

Inactive Reminders By Icora Web Design