متن آموزشی: فصل 3 – بخش 3-3 — الگوريتم رقابت استعماری

شکل 3-2 فلوچارت الگوريتم پيشنهادي را نشان مي‌دهد. همانند ديگر الگوريتم‌هاي تکاملي، اين الگوريتم، نيز با تعدادي جمعيت اوليه تصادفي که هر کدام از آنها يک “کشور” ناميده مي‌شوند؛ شروع مي‌شود. تعدادي از بهترين عناصر جمعيت (معادل نخبه‌ها در الگوريتم ژنتيک) به عنوان امپرياليست انتخاب مي‌شوند. باقيمانده جمعيت نيز به عنوان مستعمره ، در نظر گرفته مي‌شوند. استعمارگران بسته به قدرتشان، اين مستعمرات را با يک روند خاص که در ادامه مي‌آيد؛ به سمت خود مي‌کشند. قدرت کل هر امپراطوري، به هر دو بخش تشکيل دهنده آن يعني کشور امپرياليست (به عنوان هسته مرکزي) و مستعمرات آن، بستگي دارد. در حالت رياضي، اين وابستگي با تعريف قدرت امپراطوري به صورت مجوع قدرت کشور امپرياليست، به اضافه در صدي از ميانگين قدرت مستعمرات آن، مدل شده است.

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

با شکل‌گيري امپراطوري‌هاي اوليه، رقابت امپرياليستي ميان آن‌ها شروع مي‌شود. هر امپراطوري‌اي که نتواند در رقابت استعماري، موفق عمل کرده و بر قدرت خود بيفزايد (و يا حداقل از کاهش نفوذش جلوگيري کند)، از صحنه رقابت استعماري، حذف خواهد شد. بنابراين بقاي يک امپراطوري، وابسته به قدرت آن در جذب مستعمرات امپراطوري‌هاي رقيب، و به سيطره در آوردن آنها خواهد بود. در نتيجه، در جريان رقابت‌هاي امپرياليستي، به تدريج بر قدرت امپراطوري‌هاي بزرگتر افزوده شده و امپراطوري‌هاي ضعيف‌تر، حذف خواهند شد. امپراطوري‌ها براي افزايش قدرت خود، مجبور خواهند شد تا مستعمرات خود را نيز پيشرفت دهند.


شكل ‏3 2: فلوچارت الگوريتم پيشنهادي

با گذشت زمان، مستعمرات، از لحاظ قدرت به امپراطوري‌ها نزديک‌تر خواهند شد و شاهد يک نوع همگرايي خواهيم بود. حد نهايي رقابت استعماري، زماني است که يک امپراطوري واحد در دنيا داشته باشيم، با مستمراتي که از لحاظ موقعيت، به خود کشور امپرياليست، خيلي نزديک هستند.

در ادامه مباحث اين فصل، بخش‌هاي مختلف الگوريتم، مورد بررسي قرار مي‌گيرند.

3-3-1 شکل دهي امپراطوري‌هاي اوليه
در بهينه‌سازي، هدف يافتن يک جواب بهينه بر حسب متغير‌هاي مسئله، است. ما يک آرايه از متغير‌هاي مسئله را که بايد بهينه‌ شوند، ايجاد مي‌کنيم. در الگوريتم ژنتيک اين آرايه، کروکوزوم ناميده مي‌شود. در اينجا نيز آن را يک کشور مي‌ناميم. در يک مسئله‌ي بهينه‌سازي {N_{var}} بعدي، يک کشور، يک آرايه‌ي 1 \times {N_{var}} است. اين آرايه به صورت زير تعريف مي‌شود.

country\, = \,[{p_1},\,{p_2},\,{p_3},\,...,\,{p_{{N_{var}}}}]\,

مقادير متغيره‌ها در يک کشور، به صورت اعداد اعشاري نمايش داده مي‌شوند. از ديدگاه تاريخي‌ـ‌فرهنگي، اجزاي تشکيل دهنده يک کشور را مي‌توان ويژگي هاي اجتماعي– سياسي آن کشور، همچون فرهنگ، زبان، ساختار اقتصادي و ساير ويژگي‌ها در نظر گرفت. شکل 3-3 اين مسئله را به خوبي نشان مي‌دهد. مطابق اين شکل متغيرهاي مجهول تابع هزينه که ما در طي فرايند بهينه‌سازي به دنبال انها مي‌گرديم، در نگاه اجتماعي‌ـ‌سياسي ويژگي‌هاي تاريخي و فرهنگي‌اي هستند که يک کشور را به نقطه مينيمم تابع هزينه رهنمون مي‌سازند. در حقيقت در حل يک مسئله بهينه‌سازي توسط الگوريتم معرفي شده، ما به دنبال بهترين کشور (کشوري با بهترين ويژگي هاي اجتماعي‌ـ‌سياسي) هستيم. يافتن اين کشور در حقيقت معادل يافتن بهترين پارامتهاي مسئله است که کمترين مقدار تابع هزينه را توليد مي‌کنند.


شكل ‏3 3: اجزاي اجتماعي سياسي تشکيل دهنده يک کشور

به عنوان يک مثال فرض کنيم که مي‌خواهيم يک کنترل کننده PID براي يک سيستم کنترلي طراحي کنيم که مثلاً داراي کمترين ميزان مجموع فراجهش و انتگرال قدر مطلق خطا باشد. در يک حالت نوعي، جوابهاي ممکنه مي‌توانند به صورت جوابهايي که به يک خروجي پايدار منجر مي‌شوند، تعريف شوند. براي اين مسئله دسته‌اي از جوابهاي ممکنه به صورت اوليه ايجاد مي‌کنيم. در اين مساله کشور iام به صورت زير تعريف مي‌شود.

countr{y_i}\, = \,[K{P_i},\,K{I_i},\,K{D_i}]\,

 

براي شروع الگوريتم بايد تعدادي از اين کشورها (به تعداد کشورهاي اوليه الگوريتم) ايجاد شوند. بنابراين ماتريس کل کشورها به صورت تصادفي اوليه تشکيل مي‌شود.

 

هزينه‌ي يک کشور با ارزيابي تابع f در متغير‌هاي ({p_1},\,{p_2},\,{p_3},\,...,\,{p_{{N_{{{\rm var}} }}}}) يافته مي‌شود. بنابراين

cos{t_i}\, = \,\,f(countr{y_i})\, = \,f({p_1},\,{p_2},\,{p_3},\,...,\,{p_{{N_{{{\rm var}} }}}})

در مسئله طراحي کنترل کننده، با هدف در نظر گرفته شده، اين تابع به صورت زير خواهد بود.

F = w1×MaxOvershoot + w2× IAE

که در آن MaxOvershoot ماکزيمم فراجهش و IAE انتگرال قدر مطلق خطا است. w1 و w2 نيز وزنهايي هستند که ميزان اهميت هر يک از هدف‌ها را نشان مي‌دهند. بنابراين کاري که براي بدست آوردن هزينه يک کشور (دسته پارامتهاي کنترل کننده PID) بايد انجام شود، اين است که هر دسته از اين ضرايب به عنوان کنترل کننده در نظر گرفته شده و پاسخ پله سيستم براي اين کنترلر بدست مي‌آيد. در نهايت با محاسبه ماکزيمم فراجهش و انتگرال قدر مطلق خطا، مجموع آنها را به عنوان هزينه اين کشور (ضرايب کنترل کننده) محاسبه مي‌شود. ما به دنبال بهترين کشور (بهترين دسته ضرايب کنترل کننده) مي‌گرديم. الگوريتم معرفي شده در اين نوشتار، با توليد يک دسته اوليه از اين ضرايب و دسته بندي آنها در قالب امپراطوري‌ها و اعمال سياست جذب از طرف استعمارگران به روي مستعمرات و همچنين با ايجاد رقابت استعماري ميان امپراطوريها به جستجوي بهترين کشور مي‌پردازد.

براي شروع الگوريتم، تعداد {N_{country}} کشور اوليه را ايجاد مي‌کنيم. {N_{imp}} تا از بهترين اعضاي اين جمعيت (کشورهاي داراي کمترين مقدار تابع هزينه) را به عنوان امپرياليست انتخاب مي‌کنيم. باقيمانده {N_{imp}} تا از کشورها، مستعمراتي را تشکيل مي‌دهند که هرکدام به يک امپراطوري تعلق دارند. براي تقسيم مستعمرات اوليه بين امپريالست‌ها، به هر امپرياليست، تعدادي از مستعمرات را که اين تعداد، متناسب با قدرت آن است، مي‌دهيم. براي انجام اين کار، با داشتن هزينه همه امپرياليست‌ها، هزينه نرماليزه آن‌ها را به صورت زير در نظر مي‌گيريم.

{C_n}\, = \, {\max }\limits_i \{ {c_i}\} \, - \,{c_n}

که در آن {c_n}، هزينه امپريالست nام،  {\max }\limits_i \{ {c_i}\} بيشترين هزينه ميان امپرياليست‌ها و {C_n}، هزينه نرماليزه شده اين امپرياليست، مي‌باشد. هر امپرياليستي که دراي هزينه بيشتري باشد (امپرياليست ضعيفتري باشد)، داراي هزينه نرماليزه کمتري خواهد بود. با داشتن هزينه نرماليزه، قدرت نسبي نرماليزه‌ي هر امپرياليست، به صورت زير محاسبه شده و بر مبناي آن، کشورهاي مستعمره، بين امپريالسيت‌ها تقسيم مي‌شوند.

{p_n}\, = \,\left| {\frac{{{C_n}}}{{\sum\limits_{i = 1}^{{N_{imp}}} {{C_i}} }}} \right|

از يک ديد ديگر، قدرت نرماليزه شده يک امپرياليست، نسبت مستعمراتي است که توسط آن امپرياليست اداره مي‌شود. بنابراين تعداد اوليه‌ي مستعمرات يک امپرياليست برابر خواهد بود با

N.C{._n}\, = \,round\{ {p_n}\,.\,({N_{col}})\}

که در آن N.C{._n}، تعداد اوليه مستعمرات يک امپراطوري و {N_{col}} نيز تعداد کل کشورهاي مستعمره موجود در جمعيت کشورهاي اوليه است. round نيز تابعي است که نزديک‌ترين عدد صحيح به يک عدد اعشاري را مي‌دهد. با در نظر گرفتن N.C. براي هر امپراطوري، به اين تعداد از کشورهاي مستعمره اوليه را به صورت تصادفي انتخاب کرده و به امپرياليست nام مي‌دهيم. با داشتن حالت اوليه تمام امپراطوري‌ها، الگوريتم رقابت استعماري شروع مي‌شود. روند تکامل در يک حلقه قرار دارد که تا برآورده شدن يک شرط توقف، ادامه مي‌يابد.

شکل 3-4 چگونگي شکل‌گيري امپراطوري‌هاي اوليه را نشان مي‌دهد. همانگونه که در اين شکل نشان داده شده است. امپراطوري‌هاي بزرگتر، تعداد بيشتري مستعمره دارند. در اين شکل، امپريالست شماره 1 قوي‌ترين امپراطوري را ايجاد کرده است و بيش‌ترين تعداد مستعمرات را دارد.


شكل ‏3 4: چگونگي شکل‌گيري امپراطوري‌هاي اوليه.

3-3-2 مدل‌سازي سياست جذب: حرکت مستعمره‌ها به سمت امپرياليست
سياست همگون‌سازي (جذب) با هدف تحليل فرهنگ و ساختار اجتماعي مستعمرات در فرهنگ حکومت مرکزي انجام مي‌گرفت. همانگونه که قبلاً نيز بيان شد، کشورهاي استعمارگر، براي افزايش نفوذ خود، شروع به ايجاد عمران (ايجاد زيرساخت‌هاي حمل و نقل، تاسيس دانشگاه و …) کردند. به عنوان مثال کشورهايي نظير انگليس و فرانسه با تعقيب سياست همگون‌سازي در مستعمرات خود در فکر ايجاد انگيس نو و فرانسه نو در مستعمرات خويش بودند. با در نظر گرفتن شيوه نمايش يک کشور در حل مسلئه بهينه‌سازي، در حقيقت اين حکومت مرکزي با اعمال سياست جذب سعي داشت تا کشور مستعمره را در راستاي ابعاد مختلف اجتماعي سياسي به خود نزديک کند. اين بخش از فرايند استعمار در الگوريتم بهينه‌سازي، به صورت حرکت مستعمرات به سمت کشور امپرياليست، مدل شده است. شکل 3-5، شماي کلي اين حرکت را نشان مي‌دهد.


شكل ‏3 5: شماي کلي حرکت مستعمرات به سمت امپرياليست.

مطابق اين شکل کشور امپرياليست کشور مستعمره را در راستاي محورهاي فرهنگ و زبان به سمت خود جذب مي‌کند. همانگونه که در اين شکل نشان داده شده است، کشور مستعمره (Colony)، به اندازه x واحد در جهت خط واصل مستعمره به استعمارگر (Imperialist)، حرکت کرده و به موقعيت جديد (New Position of Colony)، کشانده مي‌شود. در اين شکل، فاصله ميان استعمارگر و مستعمره با d نشان داده شده است. x نيز عددي تصادفي با توزيع يکنواخت (و يا هر توزيع مناسب ديگر) مي‌باشد. يعني براي x داريم.

x\, \sim \,U(0\,\,,\,\,\beta  \times d)

که در آن \beta عددي بزرگتر از يک و نزديک به 2 مي‌باشد. يک انتخاب مناسب مي‌تواند \beta \, = \,2 باشد. وجود ضریب بتا بزرگتر از یک باعث مي‌شود تا کشور مستعمره در حين حرکت به سمت کشور استعمارگر، از جهت‌هاي مختلف به آن نزديک شود.


شكل ‏3 6: حرکت واقعي مستعمرات به سمت امپرياليست

با بررسي تاريخي پديده همگون‌سازي، يک حقيقت آشکار در اين زمينه اين است که علي رغم اينکه کشوهاي استعمارگر بطور جدي پيگير سياست جذب بودند، اما وقايع بطور کامل مطابق سياست اعمال شده آنها پيش نمي‌رفت و انحرافاتي در نتيجه کار وجود داشت. در الگوريتم معرفي شده، اين انحراف احتمالي با افزودن يک زاويه تصادفي به مسير جذب مستعمرات، انجام مي‌گيرد. بدين منظور، در حرکت مستعمرات به سمت استعمارگر، کمي زاويه تصادفي نيز به جهت حرکت مستعمره، اضافه مي‌کنيم. شکل 3-6 اين حالت را نشان مي‌دهد. بدين منظور اين‌بار به جاي حرکت به اندازه x، به سمت کشور استعمارگر و در جهت بردار واصل مستعمره به استعمارگر، به همان ميزان، ولي با انحراف \theta در مسير، به حرکت خود ادامه مي‌دهيم. \theta را به صورت تصادفي و با توزيع يکنواخت در نظر مي‌گيريم (اما هر توزيع دلخواه و مناسب ديگر نيز مي‌تواند استفاده شود). پس

\theta \,\, \sim \,\,U( - \gamma \,,\,\,\gamma )

در اين رابطه، \gamma پارامتري دلخواه مي‌باشد که افزايش آن باعث افزايش جستجوي اطراف امپرياليست شده و کاهش آن نيز باعث مي‌شود تا مستعمرات تا حد ممکن، به بردار واصل مستعمره به استعمارگر، نزديک حرکت کنند. با در نظر گرفتن واحد راديان براي \theta ، عددي نزديک به π/4، در اکثر پياده‌سازي ها، انتخاب مناسبي بوده است.

3-3-3 جابجايي موقعيت مستعمره و امپرياليست
سياست جذب در عين نابودي ساختارهاي اجتماعي سياسي کشور مستعمره در بعضي موارد نتايج مثبتي را نيز براي آانها در پي داشت. بعضي از کشور در نتيجه اعمال اين سياست به نوعي از خودباوري عمومي دست يافتند و پس از مدتي همان تحصيلکرده‌گان (به عبارت ديگر جذب شدگان فرهنگ استعماري) بودند که به رهبري ملت خود براي رهايي از چنگال استعمار پرداختند. نمونه هاي فراواني از اين موارد را مي‌توان در مستعمرات انگليس و فرانسه يافت. از سوي ديگر نگاهي به فراز و نشيب چرخش قدرت در کشور‌ها به خوبي نشان مي‌دهد که کشور هايي که زماني در اوج قدرت سياسي – نظامي بودند، پس از مدتي سقوط کردند و در مقابل کشورهايي سکان قدرت را در دست گرفتند که زماني هيچ قدرتي در دست نداشنتد. در مدلسازي اين واقعه تاريخي در الگوريتم معرفي شده به اين صورت عمل شده است که در حين حرکت مستعمرات به سمت کشور استعمارگر، ممکن بعضي از اين مستعمرات به موقعيتي بهتر از امپرياليست برسند (به نقاطي در تابع هزينه برسند که هزينه کمتري را نسبت به مقدار تابع هزينه در موقعيت امپرياليست، توليد مي‌کنند.) در اين حالت، کشور استعمارگر و کشور مستعمره، جاي خود را با همديگر عوض کرده و الگوريتم با کشور استعمارگر در موقعيت جديد ادامه يافته و اين اين بار اين کشور امپرياليست جديد است که شروع به اعمال سياست همگون‌سازي بر مستعمرات خود مي‌کند. تغيير جاي استعمارگر و مستعمره، در شکل 3-7 نشان داده شده است. در اين شکل، بهترين مستعمره‌ي امپراطوري، که هزينه‌اي کمتر از خود امپرياليست دارد، به رنگ تيره‌تر، نشان داده شده است. شکل 3-8، کل امپراطوري را پس از تغيير موقعيت‌ها، نشان مي‌دهد.


شكل ‏3 7: تغيير جاي استعمارگر و مستعمره

شكل ‏3 8: کل امپراطوري، پس از تغيير موقعيت‌ها

3-3-4 قدرت کل يک امپراطوري

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

T.C{._n}\, = \,Cost(imperialis{t_n})\, + \xi \,mean\{ Cost(colonies\,of\,empir{e_n})\}

که در آن T.C{._n} هزينه کل امپراطوري nام و \xi عددي مثبت است که معمولاً بين صفر و يک و نزديک به صفر در نظر گرفته مي‌شود. کوچک در نظر گرفتن \xi ، باعث مي‌شود که هزينه کل يک امپراطوري، تقريباً برابر با هزينه حکومت مرکزي آن (کشور امپرياليست)، شود و افزايش \xi نيز باعث افزايش تاثير ميزان هزينه مستعمرات يک امپراطوري در تعيين هزينه کل آن مي‌شود. در حالت نوعي \xi \, = \,0.05 در اکثر پياده‌سازي به جوابهاي مطلوبي منجر شده است.

3-3-5 رقابت استعماري
همانگونه که قبلاً نيز بيان شد، هر امپراطوري‌اي که نتواند بر قدرت خود بيفزايد و قدرت رقابت خود را از دست بدهد، در جريان رقابت‌هاي امپرياليستي، حذف خواهد شد. اين حذف شدن، به صورت تدريجي صورت مي‌پذيرد. بدين معني که به مرور زمان، امپراطوري‌هاي ضعيف، مستعمرات خود را از دست داده و امپراطوري‌هاي قويتر، اين مستعمرات را تصاحب کرده و بر قدرت خويش مي‌افزايند. براي مدل کردن اين واقعيت‌، فرض مي‌کنيم که امپراطوري در حال حذف، ضعيف‌ترين امپراطوري موجود است. بدين ترتيب، در تکرار الگوريتم، يکي يا چند تا از ضعيف‌ترين مستعمرات ضعيف‌ترين امپراطوري را برداشته و براي تصاحب اين مستعمرات، رقابتي را ميان کليه امپراطوري‌ها ايجاد مي‌کنيم. مستعمرات مذکور، لزوماً توسط قويترين امپراطوري، تصاحب نخواهند شد، بلکه امپراطوري‌هاي قويتر، احتمال تصاحب بيشتري دارند. شکل 3-9 شماي کلي اين بخش از الگوريتم را نشان مي‌دهد.


شكل ‏3 9: شماي کلي رقابت استعماري: امپراطوري‌هاي بزرگ‌تر، با احتمال بيشتري، مستعمرات امپراطوري‌هاي ديگر را تصاحب مي‌کنند.

در اين شکل امپراطوري شماره 1 به عنوان ضعيف‌ترين امپراطوري در نظر گرفته شده و يکي از مستعمرات آن در معرض رقابت امپرياليستي قرار گرفته است و امپراطوريهاي 2 تا N براي تصاحب آان با هم رقابت مي‌کنند. براي مدل‌سازي رقابت ميان امپراطوري‌ها براي تصاحب اين مستعمرات، ابتدا احتمال تصاحب هر امپراطوري (که متناسب با قدرت آن امپراطوري مي‌باشد)، را با در نظر گرفتن هزينه کل امپراطوري، به ترتيب زير محاسبه مي‌کنيم. ابتدا از روي هزينه کل امپراطوري، هزينه کل نرماليزه شده آن را تعيين مي‌کنيم.

N.T.C{._n}\, = \, {\max }\limits_i \{ T.C{._i}\} \, - \,T.C{._n}

در اين رابطه T.C{._n} ، هزينه کل امپراطوري nام و N.T.C{._n} نيز، هزينه کل نرماليزه شده آن امپراطوري مي‌باشد. هر امپراطوري‌ که T.C{._n} کمتري داشته باشد N.T.C{._n} بيشتري خواهد داشت. در حقيقت T.C{._n} معادل هزينه کل يک امپراطوري و N.T.C{._n} معادل قدرت کل آن مي‌باشد. امپراطوري با کمترين هزينه، داراي بيشترين قدرت است. با داشتن هزينه کل نرماليزه شده، احتمال (قدرت) تصاحب مستعمره رقابت، توسط هر امپراطوري، به صورت زير محاسبه مي‌شود.

{p_{{p_n}}}\, = \,\left| {\frac{{N.T.C{._n}}}{{\sum\limits_{i = 1}^{{N_{imp}}} {N.T.C{._i}} }}} \right|

با داشتن احتمال تصاحب هر امپراطوري، مکانيزمي همانند چرخه رولت در الگوريتم ژنتيک مورد نياز است تا مستعمره مورد رقابت را با احتمال متناسب با قدرت امپراطوريها در اختيار يکي از آنها قرار دهد. در کنار امکان استفاده از چرخ رولت موجود، در اين نوشتار مکانيزم جديدي براي پياده‌سازي اين فرايند معرفي شده است که نسبت به چرخه رولت داراي هزينه محاسباتي بسيار کمتري مي‌باشد. زيرا عمليات نسبتاً زياد مربوط به محاسبه تابع توزيع جمعي احتمال را که در چرخه رولت مورد نياز است را حذف مي‌کند و فقط به داشتن تابع چگالي احتمال نياز دارد. در ادامه مکانيزم مطرح شده براي اختصاص متناسب با احتمال مستعمره مورد رقابت به امپراطوري هاي رقيب توضيح داده مي‌شود.

با داشتن احتمال تصاحب هر امپراطوري، براي اينکه مستعمرات مذکور را به صورت تصادفي، ولي با احتمال وابسته به احتمال تصاحب هر امپراطوري، بين امپراطوري‌ها تقسيم کنيم؛ بردار P را از روي مقادير احتمال فوق، به صورت زير تشکيل ميدهيم.

{\bf{P}}\, = \,\left[ {{p_{{p_1}}},\,{p_{{p_2}}},\,{p_{{p_3}}},\,...,\,{p_{{p_{{N_{imp}}}}}}} \right]

بردار P داراي سايز 1*Nimp مي‌باشد و از مقادير احتمال تصاحب امپراطوري‌ها تشکيل شده است. سپس بردار R تصادفي ، همسايز با بردار را تشکيل مي‌دهيم. آرايه‌هاي اين بردار، اعدادي تصادفي با توزيع يکنواخت در بازه [0,1] مي‌باشند.

{\bf{R}} = \,\left[ {{r_1},\,{r_2},\,{r_3},\,...,\,{r_{{N_{imp}}}}} \right]
{r_1},\,{r_2},\,{r_3},\,...,\,{r_{{N_{imp}}}}\, \sim \,\,U(0,1)

سپس بردار D را به صورت زير تشکيل مي‌دهيم.

{\bf{D}}\,{\bf{ = }}\,{\bf{P}}\,{\bf{ - }}\,{\bf{R}}\, = \,\left[ {{D_1},\,{D_2},\,{D_3},\,...,\,{D_{{N_{imp}}}}} \right]
{\bf{ = }}\,\,\left[ {{p_{{p_1}}} - {r_1},{p_{{p_2}}} - {r_2},\,{p_{{p_3}}} - {r_3},...,{p_{{p_{{N_{imp}}}}}} - {r_{{N_{imp}}}}} \right]

با داشتن بردار D، مستعمرات مذکور را به امپراطوري‌اي مي‌دهيم که انديس مربوط به آن در بردار D بزرگتر از بقيه مي‌باشد. امپراطوري‌اي که بيشترين احتمال تصاحب را داشته باشد، با احتمال بيشتري انديس مربوط به آن در بردار D، بيشترين مقدار را خواهد داشت. عدم نياز به محاسبه CDF باعث مي‌شود که اين مکانيزم نسبت به چرخه رولت با سرعت به مراتب بيشتري عمل کند. مکانيزم جديد مطرح شده نه تنها مي‌تواند در اختصاص مستعمره به امپراطوري بر حسب احتمال تصاحب آنها مفيد باشد، بلکه به عنوان يک مکانيزم انتخاب بر حسب احتمال مي‌تواند جايگزين چرخه رولت در الگوريتم ژنتيک براي انتخاب والدين شود و سرعت اجراي عمليات در آن را تا حد زيادي افزايش دهد.

با تصاحب مستعمره توسط يکي از امپراطوري ها، عمليات اين مرحله از الگوريتم نيز به پايان مي‌رسد.

3-3-6 سقوط امپراطوري‌هاي ضعيف
همانگونه که بيان شد، در جريان رقابت‌هاي امپرياليستي، خواه ناخواه، امپراطوريهاي ضعيف به تدريج سقوط کرده و مستعمراتشان به دست امپراطوري‌هاي قوي‌تر مي‌افتد. شروط متفاوتي را مي‌توان براي سقوط يک امپراطوري در نظر گرفت. در الگوريتم پيشنهاد شده، يک امپراطوري زماني حذف شده تلقي مي‌شود که مستعمرات خود را از دست داده باشد. شکل 3-10 اين مسئله را به خوبي نشان مي‌دهد. در اين شکل، امپراطوري شماره 4 به علت از دست دادن کليه مستعمراتش، ديگر قدرتي براي رقابت ندارد و بايد از ميان بقيه امپراطوري‌ها حذف شود.

3-3-7 همگرايي
الگوريتم مورد نظر تا برآورده شدن يک شرط همگرايي، و يا تا اتمام تعداد کل تکرارها، ادامه مي‌يابد. پس از مدتي، همه امپراطوري‌ها، سقوط کرده و تنها يک امپراطوري خواهيم داشت و بقيه کشورها تحت کنترل اين امپراطوري واحد، قرار مي‌گيرند. در اين دنياي ايده‌آل جديد، همه‌ي مستعمرات، توسط يک امپراطوري واحد اداره مي‌شوند و موقعيت‌ها و هزينه‌هاي مستعمرات، برابر با موقعيت و هزينه کشور امپرياليست است. در اين دنياي جديد، تفاوتي، نه تنها، ميان مستعمرات، بلکه ميان مستعمرات و کشور امپرياليست، وجود ندارد. به عبارت ديگر، همه‌ي کشورها، در عين حال، هم مستعمره و هم استعمارگرند. در چنين موقعيتي رقابت امپرياليستي به پايان رسيده و به عنوان يکي از شروط توقف الگوريتم متوقف مي‌شود. شبه کد مربوط به الگوريتم پيشنهادي در شکل 3-11، نشان داده شده است.


شكل ‏3 10: سقوط امپراطوري‌ ضعيف؛ امپراطوري شماره 4، به علت از دست دادن کليه مستعمراتش، ديگر قدرتي براي رقابت ندارد و بايد از ميان بقيه امپراطوري‌ها حذف شود.

شكل ‏3 11: شبه کد مربوط به الگوريتم رقابت استعماري

شماي کلي الگوريتم به صورت گرافيکي در شکل 3-12 نيز نشان داده شده است. مطابق اين شکل، الگوريتم با جمعيت اوليه تصادفي و تشکيل امپراطوري هاي اوليه آغاز شده و در يک چرخه سياست جذب و زقابت امپرياليستي تکرار مي‌شوند.


شكل ‏3 12: شماي کلي الگوريتم توسعه داده شده
_______________________________________________
آنچه مطالعه کردید، بخشی از متن آموزشی جامعی در مورد الگوریتم رقابت استعماری بود که بر روی سایت “الگوریتم رقابت استعماری و بهینه سازی تکاملی” قرار گرفته است. این متن آموزشی که توضیحات مفصلی را در مورد لگوریتم رقابت استعماری در اختیار می کذارد، در حقیقت بخشهایی نسبتاً کامل از یک پایان نامه در مورد این الگوریتم می باشد. در ادامه فهرست کامل مطالب این متن آموزشی آمده است. برای مشاهده هر بخش می توانید روی عنوان آن بخش کلیک کنید.

 

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

چکیده

فصل 1 مقدمه
1-1 هدف و اهميت مسئله
1-2 الگوريتم توسعه داده شده
1-3 مزاياي الگوريتم توسعه داده شده
1-4 ساختار نوشتار

فصل 2 بهينه‌سازي و روشهاي موجود
2-1 انواع مسائل بهينه‌سازي
2-2 روش‌هاي بهينه‌سازي کمينه‌جو
2-2-1 بهينه‌سازي تحليلي
2-2-2 جستجوي خط
2-2-3 روش‌هاي نيوتوني
2-2-4 روش کاهشي نِلدِر ـ ‌ميد با اشکال غير مرکب
2-3 الگوريتم‌ ژنتيک
2-4 الگوريتم بازپخت شبيه‌سازي شده
2-5 بهينه‌سازي گروه ذرات
2-6 کلوني مورچه‌ها
2-7 برنامه‌ريزي ژنتيک

فصل 3 استراتژي بهينه‌سازي مبتني بر تکامل اجتماعي‌ـ‌سياسي
3-1 مقدمه
3-2 مروري تاريخي بر پديده استعمار

3-2-1 هند
3-2-2 مالزي
3-2-3 هندوچين فرانسه
3-2-4 هند شرقي (اندونزي)

3-3 الگوريتم پيشنهادي
3-3-1 شکل دهي امپراطوري‌هاي اوليه
3-3-2 مدل‌سازي سياست جذب: حرکت مستعمره‌ها به سمت امپرياليست
3-3-3 جابجايي موقعيت مستعمره و امپرياليست
3-3-4 قدرت کل يک امپراطوري
3-3-5 رقابت استعماري
3-3-6 سقوط امپراطوري‌هاي ضعيف
3-3-7 همگرايي

3-4 مثال کاربردي
3-5 نتيجه‌گيری
3-6 توابع هزينه مورد استفاده

فصل 4 پياده‌سازي هاي انجام شده
4-1 استفاده از الگوريتم معرفي شده براي طراحي يک کنترل‌کننده PID بهينه
4-1-1 کنترل‌کننده PID
4-1-2 طراحي کنترل‌کننده PID بهينه توسط الگوريتم رقابت استعماري
4-1-3 نتيجه‌گيري
4-2 استفاده از الگوريتم رقابت امپرياليستي براي طراحي کنترل‌کننده PID چند متغيره براي سيستم صنعتي ستون تقطير
4-2-1 مقدمه
4-2-2 کنترل‌کننده PID براي فرايند چند متغيره
4-2-3 نتايج شبيه‌سازي
4-2-4 نتيجه‌گيري

4-3 الگوريتم رقابت استعماري؛ ابزاري براي يافتن نقطه تعادل نش
4-3-1 يک بازي غير خطي استاتيک ساده
4-3-2 يک بازي با پيچيدگي بيشتر
4-4 طراحي بهينه آنتهاي آرايه‌اي

4-5 استفاده از الگوريتم رقابت استعماري براي شناسايي ويژگي مواد از آزمون فرورفتگي
4-5-1 مقدمه
4-5-2 توصيف مسئله معکوس
4-5-3 حل مسئله معکوس توسط الگوريتم رقابت استعماري
4-5-4 نتيجه‌گيری

4-6 کنترل فازي اتومبيل
4-6-1 مدل اتومبيل
4-6-2 نتايج

فصل 5 خلاصه، نتيجه‌گيري و پيشنهادات

فصل 6 مراجع

لازم به ذکر است که فایل PDF جامعتر این متن آموزشی نیز بر روی سایت در این لینک (کلیک کنید) قرار گرفته است. توصیه می شود پس از مطالعه بخش مربوطه در وبسایت، در صورت تمایل متن فایل PDF را نیز مطالعه نمایید.

نکته دیگر قابل ذکر این است که الگوریتم رقابت استعماری در حال حاضر در نسخه های مختلف و با تغییراتی نسبت به نسخه اولیه آن توسط دانشجویان و محققین حوزه بهینه سازی مورد استفاده قرار می گیرد. متن آموزشی ارائه شده بر روی سایت ورژن اولیه و نسخه ابتدایی الگوریتم رقابت استعماری می باشد. برای آشنایی با نسخه های جدیدتر الگوریتم می توانید به برخی از مقالات ارائه شده بر روی سایت مراجعه نمایید.

_____________________________________________
نظرات شما در انتهای این پست برای سایر خوانندگان، بسیار مفید خواهد بود. می توانید نظر خود را با اکانت سرویس های مختلف و یا به عنوان ناشناس در این پست درج نمائید.
صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.

متن آموزشی: فصل 3 – بخش های 3-1 — مقدمه و 3-2 — مروري تاريخي بر پديده استعمار

در اين فصل، الگوريتم مطرح شده براي بهينه‌سازي، که از مدلسازي رياضي رقابت‌‌هاي امپرياليستي الهام گرفته شده است، معرفي شده و اجزاي مختلف آن توضيح داده مي‌شود. با داشتن تابع f({\bf{x}})، در بهينه‌سازي مي‌خواهيم‌ آرگومان x را به گونه‌اي بيابيم که هزينه متناظر آن، بهينه باشد (معمولاً کمينه).

در اين فصل، الگوريتم جديدي براي جستجوي عام معرفي مي‌شود که از رقابت‌هاي استعماري الهام گرفته شده است. بطور خلاصه، اين الگوريتم، از چندين کشور در حالت اوليه شروع مي‌شود. کشورها در حقيقت جوابهاي ممکن مساله هستند و معادل کروموزوم در الگوريتم ژنتيک و ذره در بهينه‌سازي گروه ذرات هستند. همه‌ي کشورها، به دو دسته تقسيم مي‌شوند: امپرياليست و مستعمره. کشورهاي استعمارگر با اعمال سياست جذب (همگون‌سازي) در راستاي محورهاي مختلف بهينه‌سازي، کشورهاي مستعمره را به سمت خود مي‌شکند. رقابت امپرياليستي در کنار سياست همگون‌سازي، هسته‌ي اصلي اين الگوريتم را تشکيل مي‌دهد و باعث مي‌شود که کشورها به سمت مينيمم مطلق تابع حرکت کنند. در اين فصل به استعمار به عنوان جزئي لاينفک از سير تکامل تاريخي انسان نگريسته شده و از چگونگي اثرگذاري آن بر کشورهاي استعمارگر و مستعمره و نيز کل تاريخ، به عنوان منبع الهام يک الگوريتم کارا و نو در زمينه محاسبات تکاملي استفاده شده است. اين فصل، چگونگي مدل‌سازي رقابت امپرياليستي، و نيز چگونگي پياده‌سازي الگوريتم را توضيح مي‌دهد. ابتدا در بخش دوم، يک مرور خلاصه بر جوانب مختلف تاريخي و بعضي از پديده‌هاي تاريخي مربوط به استعمار و تاثير آن بر تکامل اجتماعي سياسي انسان ارائه مي‌شود. در بخش سوم اين فصل، الگوريتم معرفي شده، ارائه شده و بخش‌هاي مختلف آن مورد بررسي قرار مي‌گيرند. در بخش چهارم نيز کارايي الگوريتم بر روي چند تابع هزينه استاندارد آزموده مي‌شود. در نهايت نيز بخش پنجم، نتيجه‌گيري بحث را ارائه مي‌کند.
3-2 مروري تاريخي بر پديده استعمار
امپرياليزم ، در لغت به سياست توسعه قدرت و نفوذ يک کشور در حوزه خارج از قلمرو شناخته شده براي آن، اطلاق مي‌شود. يک کشور مي‌تواند کشور ديگر را به طور قانونگذاري مستقيم و يا از طريق روش‌هاي غير مستقيم، مثل کنترل کالاها و مواد خام، کنترل کند. مورد اخير اغلب استعمار نو خوانده مي‌شود [31]. استعمار يک پديده ذاتي در تاريخ بوده است. استعمار در مراحل ابتدايي، به صورت نفوذ سياسي‌ـ‌نظامي در کشورها و به صورت صرف استفاده از منابع زميني، انساني و سياسي بوده است. بعضي مواقع نيز استعمار، به صرف جلوگيري از نفوذ کشور استعمارگر رقيب انجام مي‌شد. به هر حال کشورهاي استعمارگر رقابت شديدي را براي به استعمار کشيدن مستعمرات همديگر نشان مي‌دادند. اين رقابت به نوبه خود باعث رشد و توسعه کشورهاي استعمارگر از لحاظ سياسي، نظامي و اقتصادي گرديد. زيرا کشورها براي داشتن امکان رقابت، مجبور به توسعه بودند.

در حالت‌هاي قديمي‌تر، استعمارگران با بهره‌گيري از منابع زميني، انساني و غيره کشور مستعمره، فقط در صدد افزايش قدرت خود بودند و اينکه آيا مستعمرات پيشرفت مي‌کنند يا نه مهم نبود. اما بعدها با فزايش ارتباط ميان ملل و رشد انساني، استعمارگران براي ادامه نفوذ خود، به نوعي از اقبال عمومي (حمايت مردمي) نيز احتياج پيدا کردند. بدين ترتيب کشورهاي استعمارگر شروع به ايجاد عمران و آبادي (هر چند ظاهري) در مستعمراتشان نمودند. بدين ترتيب، مستعمرات، شاهد پيشرفت در زمينه‌هاي اقتصادي، اجتماعي و انساني شدند که عامل اين پيشرفت به اجبار، کشور استعمارگر بود. دليل نامگذاري اين فرايند با نام “استعمار” که ريشه در کلمه عمران و آبادي دارد، نيز، همين مساله مي‌باشد. البته دريافت اقبال عمومي تنها دليل ايجاد عمران توسط استعمارگران در مستعمرات نبود. يک دليل ديگر ايجاد سلطه فرهنگي بر مسعمرات در راستاي اجراي سياست همگون‌سازي بود. به عنوان مثال کشورهايي نظير فرانسه و انگليس به ايجاد مدارس انگليسي زبان و فرانسوی زبان در مستعمرات خود پرداختند. اين اقدام به دلايل مختلفي صورت مي‌گرفت که در راس اين دلايل افزايش نفوذ فرهنگي در مستعمرات بوده است. نا گفته نماند که فرايند استعمار (حد اقل بعد فرهنگي آن) با همه تبعات منفي آن در بعضي از کشورهاي امپرياليست به چشم يک جهاد فکري براي نجات بشر نيز نگريسته مي‌شد. اشعاري وجود دارند که به مدح و ستايش جوانان انگليسي مي‌پردازند که با هدف آموزش راهي کشورهاي مستعمره شده‌اند و در آنها از اين جوانان به عنوان قهرمانان ملي در جبهه نجات بشري ياد مي‌شود [33].

امپرياليزم، نگرش عمومي نسبت به تمدن غرب را تغيير داد. داروينيست‌هاي اجتماعي، امپرياليزم را تفسير کرده و اين ايده که فرهنگ غرب، نسبت به فرهنگ شرق، برتر است؛ را تقويت کردند [32]. در آفريقا تنها آنهايي که بعضي از استانداردهاي فرهنگي غرب را داشتند، داراي بخشي از حقوق اجتماعي خود بودند. پرتقالي‌ها اين مردم را جذب شده و فراسوي‌ها بطور توهين‌آميزي آن‌ها را تکامل‌يافته مي‌ناميدند.

به هرحال مستقل از اثرات و تبعات مثبت و منفي آن، استعمار به عنوان يک فرايند ذاتي در تاريخ بشر ايجاد شد، و در عين وارد کردن خسارتهاي جبران ناپذير به زيربناهاي اساسي يک کشور (خصوصاً زيربناهاي فرهنگي) در بعضي موارد اثرات مثبتي را نيز براي کشورها مستعمره داشت. از ديد بهينه‌سازي، استعمار بعضي از کشورها را که در يک دره معمولي تمدن قرار داشتند، خارج کرده و آنها را به يک حوزه مينيمم ديگر برد که در بعضي موارد وضعيت اين حوزه مينيمم بهتر از موقعيت قبلي کشور مستعمره بود. اما به هر حال اين حرکت مستلزم پيشروي مستعمره در راستاي محورهاي مختلف اقتصادي و فرهنگي به سمت يک امپرياليست قويتر بود، يعني از ميان رفتن بعضي از ساختارهاي فرهنگي و اجتماعي. شکل 3-1 اين وضعيت را به خوبي نشان مي‌دهد. در اين شکل، مستعمره در نتيجه سياست همگون‌سازي از يک ناحيه مينيمم خارج شده و وارد يک ناحيه مينيمم ديگر مي‌شود که در آن وضعيت بهتري را دارا مي‌باشد. به هر حال هزينه‌اي که بابت اين حرکت پرداخت شده است، نزديکي به کشور استعمار‌گر در راستاي محورهاي مختلف اقتصادي، سياسي و اجتماعي است. ادامه اين حرکت مي‌تواند به جذب کامل کشور مستعمره در کشور استعمارگر بيانجامد.

شكل ‏3 1: اعمال سياست جذب از طرف استعمارگران بر مستعمرات

در اين بخش به بررسي چند مورد از مستعمرات کشورهاي استعماري و رفتار متقابل آنها نسبت به هم مي‌پردازيم و سعي بر آن است تا با دسته‌بندي اين رفتارها و با کشف نظم دروني آنها و در نهايت مدل‌سازي رياضي واکنشهاي متقابل مستعمرات و استعمارگران، اين پيديده‌ي پيچيده‌ي اجتماعي را در قالب يک الگوريتم بهينه‌سازي رياضي بريزيم.

3-2-1 هند
اروپاييها از طريق دريا به هند آمدند و در نهايت به تهديدي عليه اين سرزمين تبديل شدند. نخستين باري که اروپاييها در قرن شانزدهم به هند آمدند، امپراطوري مغول قدرت را در اين کشور در دست داشت. معهذا، در قرن هيجدهم خاندان مغول در حال اضمحلال بود و با جنگهاي داخلي و دخالت خارجي، قدرت سياسي آنها تجزيه گرديد. در نيمه قرن هيجدهم، هند، طعمه امپرياليست‌هاي رقيب، بريتانيا و فرانسه شده بود. بريتانيا و فرانسه بر سر توفق استعماري بر جهان در حال نبرد با يکديگر بودند و بريتانياي کبير در هند به پيروزي رسيد. بخش‌هايي از هند مستقيماً تحت حاکميت بريتانيا قرار گرفت در حالي که بر بخش‌هاي ديگر، شاهزادگان هند با نظارت بريتانيا، حکومت مي‌کردند [34].

بعد از آرام کردن اين کشور، بريتانياييها به تاسيس مدارس انگليسي‌زبان و احداث جاده، راه آهن و خط تلگراف پرداختند. حکومت برتانيا همچنين براي اصلاح رسوم اجتماعي که در مقايسه با معيار‌هاي غربي نادرست تلقي مي‌شدند، تدابيري اتخاذ کرد. اين تدابير مشتمل بود [34] بر منسوخ کردن رسوم و عاداتي چون

  • خودسوزي بيوه‌زنان کاست بالاي جامعه که براي نشان دادن وفاداري به شوهر انجام مي‌شد.
  • سرکوب مجرماني که به نام مذهب، دزدي و جنايت مي‌کردند.
  • افزايش حداقل سن ازدواج براي دختران.

بسياري از هنديها، اين اصلاحات را سودمند تلقي کرده و به ترديد و چالش غربي‌ها، در قبال ارزش‌هاي سنتي خود، با بازبيني و ارزشيابي مجدد مذهب و جامعه خويش، پاسخ گفتند. در نتيجه، بسياري از هنديها، فعالانه از اين اصلاحات نظير قانون 1891 که ازدواج دختران خردسال را منع مي‌نمود، حمايت کردند. معهذا سنت‌گرايان هندو خشمگين شده و به عنوان مصداق دخالت بريتانيا در جامعه هند، به قانون مذبور اعتراض کردند [34].

3-2-2 مالزي
مالزي يکي از مستعمرات بريتانيا شد. حاکميت بريتانيا بر مالزي، غير مستقيم، و از طريق حکام بومي موسوم به سلطان، اعمال مي‌شد که در آن زمان تبديل به نيمه‌دست‌نشانده شده بودند. بخش سودمند اعمال کنترل بريتانيا بر مالزي، شامل الغاي برده‌داري و ماليات‌هاي خودسرانه، احداث راهها، خطوط آهن، مدارس و برقراري نظام جديد بهداشتي بود. معهذا مسلمانان مالزي به ميزان ناچيزي از توسعه سريع اقتصادي منتفع شدند و اغلب آنان همچنان با کشاورزي و ماهيگيري، امرار معاش مي‌کردند [33،34].

3-2-3 هندوچين فرانسه
امپرياليزم فرانسه، در هندوچين مستقر شد. دلايل علاقه‌مندي فرانسه به اين منطقه، متعدد بود:

  • منابع طبيعي
  • قلمروي براي فعاليت مبلغان کاتوليک
  • دروازه فرعي ورود به چين
  • اهرم مقابله با امپرياليسم بريتانيا

از لحاظ فرهنگي و سياسي، فرانسه سياست دو محوري “جذب” و “همراهي” را تعقيب مي‌کرد. هدف سياست جذب ايجاد يک فرانسه جديد در مستعمرات این کشور، از طريق شيوه‌هايي نظير تأسيس مدارس فرانسوي و توسعه زبان و رسوم فرانسوي بود. فرانسه اميدوار بود، سر انجام در ميان ويتنامي‌ها طبقه ممتاز جديدي به وجود آيد که با حاکميت فرانسه موافق باشد. اما جريان امور به اين صورت پيش نرفت. اقليت کوچک ويتنامي که به فرهنگ فرانسوي دست يافته بودند، مانند هندي‌هاي صاحب تحصيلات بريتانيايي، دانش جديد خود را در راه مخالفت با سلطه فرانسه و حمايت از استقلال ويتنام، به کار گرفتند.

از لحاظ سياسي، خط مشي فرانسه توسعه تدريجي کنترل خود از طريق سياست “همراهي” بود. به اين معني که مقامات فرانسوي مقيم، از نزديک دستگاه ادراي حکومت‌هاي محلي را سرپرستي مي‌کردند.

فرانسوي‌ها براي تسهيل در امر توسعه اقتصادي، به احداث جاده و خطوط آهن پرداختند و سيستم آبياري را توسعه دادند و تسهيلات آموزشي و بهداشت عمومي مدرن، ايجاد کردند. ويتنامي‌ها عموماً بهاي سنگيني براي اين عمران و آبادي پرداختند، اما بسيار کم از آن منتفع شدند [34].

3-2-4 هند شرقي (اندونزي)
هلنديها از اوايل قرن هفدهم در هند شرقي، دخالت داشتند. هلنديها از آغاز، مستعمرات خويش را به عنوان منابع ارزشمند مواد خام و بعدها به عنوان بازاري براي فروش محصولات صنعتي، قلمداد مي‌کردند. در اوايل قرن بيستم، با استخراج معادن و حفاري چاههاي نفت، بهره‌برداري از اين ثروت‌هاي جديد آغاز شد. دوره‌اي از توسعه اقتصادي به هند شرقي آمده بود. معهذا اين رفاه به جاي اندونزياييها، نصيب هلندي‌ها شد. اين روند علي‌رغم “سياست اخلاقي” که هلنديها در آستانه چرخش قرن مطرح مي‌کردند به وقوع پيوست. سياست پدر سالارانه هلنديها، بر تعهد اخلاقي در قبال مردم بومي و بهبود وضعيت رفاهي آن تاکيد مي‌کرد. اين سياست منجر به تاسيس مدارس ابتدايي دولتي و اتخاذ تدابيري، براي حمايت از مردم عادي اندونزي در مقابل اشکال آشکارتر استثمار اقتصادي شد. هلند بر خلاف فرانسه به سياست “جذب”، علاقه‌اي نداشت و براي اشاعه نظريات و شيوه‌هاي غربي در ميان مردم بومي کوششي نکرد [34].

با در نظر گرفتن رفتار چند کشور استعمارگر در قبال کشورهاي مستعمره، به نظر مي‌رسد که اگرچه سياست‌هاي مذکور نتوانستند قدرت و نفوذ کشورهاي امپرياليست را در ميان مستعمراتشان، افزايش دهند، و مستعمرات بعد از مدتي خواستار خودمختاري سياسي شدند؛ اما به همراه همه معايبشان، اين سياست‌ها تغيرات سياسي‌ـ‌اجتماعي سريعي را در ميان مستعمرات، ايجاد کردند. حوادث قرن بيستم به گونه‌اي رقم خورد که اکثر کشورهاي مستعمره، در نتيجه انقلاب داخلي و يا ضعف کشور استعمارگر، توانستند به استقلال (حداقل سياسي) دست پيدا کنند. اما نوع جديدي از استعمار در حال شکل‌گيري بوده و جايگزين شيوه قديمي آن شد و در حال حاضر نيز اين روند ادامه دارد و چنين به نظر مي‌رسد که حد توقف اين روند (رقابت‌هاي امپرياليستي) زماني خواهد بود که يک دنياي تک قطبي داشته باشيم، با يک امپرياليست قدرتمند. بر پايه‌ي چنين روندي است که الگوريتم معرفي شده (ICA) در اين فصل پايه‌گذاري شده و از آن در طي فصول بعدي براي اهداف مختلف بهينه‌سازي، استفاده مي‌شود.

_______________________________________________
آنچه مطالعه کردید، بخشی از متن آموزشی جامعی در مورد الگوریتم رقابت استعماری بود که بر روی سایت “الگوریتم رقابت استعماری و بهینه سازی تکاملی” قرار گرفته است. این متن آموزشی که توضیحات مفصلی را در مورد لگوریتم رقابت استعماری در اختیار می کذارد، در حقیقت بخشهایی نسبتاً کامل از یک پایان نامه در مورد این الگوریتم می باشد. در ادامه فهرست کامل مطالب این متن آموزشی آمده است. برای مشاهده هر بخش می توانید روی عنوان آن بخش کلیک کنید.
فهرست مطالب متن آموزشی الگوریتم رقابت استعماری
(جهت مطالعه هر بخش روی آن کلیک کنید.)

چکیده

فصل 1 مقدمه
1-1 هدف و اهميت مسئله
1-2 الگوريتم توسعه داده شده
1-3 مزاياي الگوريتم توسعه داده شده
1-4 ساختار نوشتار

فصل 2 بهينه‌سازي و روشهاي موجود
2-1 انواع مسائل بهينه‌سازي
2-2 روش‌هاي بهينه‌سازي کمينه‌جو
2-2-1 بهينه‌سازي تحليلي
2-2-2 جستجوي خط
2-2-3 روش‌هاي نيوتوني
2-2-4 روش کاهشي نِلدِر ـ ‌ميد با اشکال غير مرکب
2-3 الگوريتم‌ ژنتيک
2-4 الگوريتم بازپخت شبيه‌سازي شده
2-5 بهينه‌سازي گروه ذرات
2-6 کلوني مورچه‌ها
2-7 برنامه‌ريزي ژنتيک

فصل 3 استراتژي بهينه‌سازي مبتني بر تکامل اجتماعي‌ـ‌سياسي
3-1 مقدمه
3-2 مروري تاريخي بر پديده استعمار

3-2-1 هند
3-2-2 مالزي
3-2-3 هندوچين فرانسه
3-2-4 هند شرقي (اندونزي)

3-3 الگوريتم پيشنهادي
3-3-1 شکل دهي امپراطوري‌هاي اوليه
3-3-2 مدل‌سازي سياست جذب: حرکت مستعمره‌ها به سمت امپرياليست
3-3-3 جابجايي موقعيت مستعمره و امپرياليست
3-3-4 قدرت کل يک امپراطوري
3-3-5 رقابت استعماري
3-3-6 سقوط امپراطوري‌هاي ضعيف
3-3-7 همگرايي

3-4 مثال کاربردي
3-5 نتيجه‌گيری
3-6 توابع هزينه مورد استفاده

فصل 4 پياده‌سازي هاي انجام شده
4-1 استفاده از الگوريتم معرفي شده براي طراحي يک کنترل‌کننده PID بهينه
4-1-1 کنترل‌کننده PID
4-1-2 طراحي کنترل‌کننده PID بهينه توسط الگوريتم رقابت استعماري
4-1-3 نتيجه‌گيري
4-2 استفاده از الگوريتم رقابت امپرياليستي براي طراحي کنترل‌کننده PID چند متغيره براي سيستم صنعتي ستون تقطير
4-2-1 مقدمه
4-2-2 کنترل‌کننده PID براي فرايند چند متغيره
4-2-3 نتايج شبيه‌سازي
4-2-4 نتيجه‌گيري

4-3 الگوريتم رقابت استعماري؛ ابزاري براي يافتن نقطه تعادل نش
4-3-1 يک بازي غير خطي استاتيک ساده
4-3-2 يک بازي با پيچيدگي بيشتر
4-4 طراحي بهينه آنتهاي آرايه‌اي

4-5 استفاده از الگوريتم رقابت استعماري براي شناسايي ويژگي مواد از آزمون فرورفتگي
4-5-1 مقدمه
4-5-2 توصيف مسئله معکوس
4-5-3 حل مسئله معکوس توسط الگوريتم رقابت استعماري
4-5-4 نتيجه‌گيری

4-6 کنترل فازي اتومبيل
4-6-1 مدل اتومبيل
4-6-2 نتايج

فصل 5 خلاصه، نتيجه‌گيري و پيشنهادات

فصل 6 مراجع

لازم به ذکر است که فایل PDF جامعتر این متن آموزشی نیز بر روی سایت در این لینک (کلیک کنید) قرار گرفته است. توصیه می شود پس از مطالعه بخش مربوطه در وبسایت، در صورت تمایل متن فایل PDF را نیز مطالعه نمایید.

نکتهدیگر قابل ذکر این است که الگوریتم رقابت استعماری در حال حاضر درنسخه های مختلف و با تغییراتی نسبت به نسخه اولیه آن توسط دانشجویان و محققین حوزه بهینه سازی مورد استفاده قرار می گیرد. متن آموزشی ارائه شده بر روی سایت ورژن اولیه و نسخه ابتدایی الگوریتم رقابت استعماری می باشد. برای آشنایی با نسخه های جدیدتر الگوریتم می توانید به برخی از مقالات ارائه شده بر روی سایت مراجعه نمایید.

_____________________________________________
نظرات شما در انتهای این پست برای سایر خوانندگان، بسیار مفید خواهد بود. می توانید نظر خود را با اکانت سرویس های مختلف و یا به عنوان ناشناس در این پست درج نمائید.
صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.

متن آموزشی: فصل 1 — مقدمه

 

1 – مقدمه

1-1 هدف و اهميت مسئله:
بهينه‌سازي اهميت زيادي در بسياري از شاخه‌هاي علوم دارد. به عنوان مثال فيزيک‌دانها، شيمي‌دانها، و مهندسان علاقه دارند تا يک طرح بهينه براي طراحي يک پروسه شيميايي به کار برند و محصول توليد شده را با داشتن شروطي مثل هزينه و آلودگي کم، بيشينه کنند. همچنين در برازش غير خطي مدل و منحني نيز، به نوعي به بهينه‌سازي، نياز داريم. اقتصاددانان و تحقيق‌کنندگان در عمليات نيز بايد جايابي بهينه منابع در جامعه و صنعت را پيدا کنند. روشهاي مطرح شده براي بهينه‌سازي مي‌توانند در دو دسته عمده طبقه‌بندي شوند؛ بهينه‌سازي محلي و بهينه‌سازي فراگير يا عام.براي بهينه‌سازي عام، اغلب از روش‌هاي تکاملي استفاده مي‌شود. اين الگوريتم‌ها شامل الگوريتم‌هاي ژنتيک، بهينه‌سازي گروه ذرات، بازپخت شبيه‌سازي شده و… مي‌باشند. الگوريتم‌هاي ژنتيک شناخته‌شده‌ترين الگوريتم‌هاي تکاملي هستند. قواعد اساسي الگوريتم ژنتيک براي اولين بار در سال 1962 توسط هالند معرفي گرديد و تا به امروز کاربردهاي فراواني در بهينه‌سازي توابع و شناسايي سيستم پيدا کرده‌اند. آنچه که واضح است اين است که تکامل فکري و فرهنگي بشر بسيار سريع‌تر از تکامل جسمي و ژنتيکي او صورت مي‌پذيرد. بنابراين تکامل فرهنگي و ديدگاهي بشر نيز ناديده گرفته نشده و دسته‌اي از الگوريتم‌ها، موسوم به الگوريتم‌هاي فرهنگي معرفي شده‌اند. الگوريتم‌هاي فرهنگي در حقيقت يک دسته کاملاً جديد از الگوريتم‌ها نيستند. بلکه ايده‌ي اصلي اين است که اين الگوريتم‌ها با افزودن قابليت‌ تکامل فرهنگي (با افزودن امکان تبادل اطلاعات ميان اعضاي جمعيت) به الگوريتم‌هاي موجود، سرعت همگرايي آن‌ها را مطابق انتظار افزايش مي‌دهند.
با توجه به اين که اغلب روشهاي عمده و شناخته شده محاسبات تکاملي، شبيه‌سازي کامپيوتري فرايندهاي طبيعي و زيستي هستند، در اين نوشتار يک الگوريتم جديد در زمينه محاسبات تکاملي معرفي مي‌شود که بر مبناي تکامل اجتماعي و سياسي انسان پايه‌گذاري شده است.1-2 الگوريتم توسعه داده شده:
با در نظر گرفتن الگوريتم‌هاي بهينه‌سازي مطرح شده، آن‌چه که قابل توجه است اين است که اغلب روش‌هاي بهينه‌سازي عام مطرح شده، شبيه‌سازي کامپيوتري فرايند‌هاي طبيعي هستند. شايد يک دليل براي اين کار، ملموس بودن و سادگي فرموله کردن و درک تکامل اين فرايند‌ها است. در نقطه مقابل، در ارائه‌ي الگويتم‌هاي بهينه‌سازي، علي‌رغم توجه به تکامل زيستي انسان و ساير موجودات (الگوريتم‌هاي ژنتيک و …)، به تکامل اجتماعي وتاريخي او به عنوان پيچيده‌ترين و موفق‌ترين حالت تکامل، توجه چنداني نشده‌ است. در اين طرح، يک الگوريتم الهام گرفته از تکامل اجتماعي انسان، براي بهينه‌سازي، توسعه داده شده است. الگوريتم جديد معرفي شده با الهام‌گيري از يک فرايند اجتماعي سياسي، نسبت به روش‌هاي مطرح شده داراي توانايي بالايي بوده و تا حد بسيار زيادي نيز، سريع مي‌باشد. شکل 1-1 شماي کلي الگوريتم توسعه داده شده موسوم به الگوريتم رقابت استعماري (ICA) را نشان مي‌دهد.الگوريتم توسعه داده شده، همانند ساير روش‌هاي بهينه‌سازي تکاملي، با تعدادي جمعيت اوليه شروع مي‌شود. در اين الگوريتم، هر عنصر جمعيت، يک کشور ناميده مي‌شود. کشور‌ها به دو دسته مستعمره و استعمار‌گر تقسيم مي‌شوند. هر استعمارگر، بسته به قدرت خود، تعدادي از کشور‌هاي مستعمره را به سلطه خود درآورده و آن‌ها را کنترل مي‌کند. سياست جذب و رقابت استعماري، هسته اصلي اين الگوريتم را تشکيل مي‌دهند. مطابق سياست جذب که به صورت تاريخي، توسط کشور‌هاي استعمارگري همچون فرانسه و انگليس، در مستعمراتشان اعمال مي‌شد، کشورهاي استعمارگر با استفاده از روش‌هايي همچون احداث مدارس به زبان خود، سعي در از خود بي خود کردن کشور مستعمره، با از ميان بردن زبان کشور مستعمره و فرهنگ و رسوم آن داشتند. در ارائه اين الگوريتم، اين سياست با حرکت دادن مستعمرات يک امپراطوري، مطابق يک رابطه خاص صورت مي‌پذيرد. شکل 1-2 اين حرکت را نشان مي‌دهد.


شكل ‏1 1: شماي کلي الگوريتم رقابت استعماري

شكل ‏1 2: حرکت مستعمرات به سمت امپرياليست (سياست جذب)

اگر در حين حرکت، يک مستعمره، نسبت به استمارگر، به موقعيت بهتري برسد، جاي آن دو با هم عوض مي‌شوند. در ضمن، قدرت کل يک امپراطوري به صورت مجموع قدرت کشور استعمارگر به اضافه درصدي از قدرت ميانگين مستعمرات آن تعريف مي‌شود. يعني

T.C{._n}\, = \,Cost(imperialis{t_n})\, + \xi \,mean\{ Cost(colonies\,of\,empir{e_n})\}
همانگونه که قبلاً نيز بدان اشاره شد، رقابت استعماري، بخش مهم ديگري از اين الگوريتم را تشکيل مي‌دهد. در طي رقابت استعماري، امپراطوري‌هاي ضعيف، به تدريج قدرت خود را از دست داده و به مرور زمان با تضعيف شدن از بين مي‌روند. رقابت استعماري باعث مي‌شود که به مرور زمان، به حالتي برسيم که در آن تنها يک امپراطوري در دنيا وجود دارد که آن را اداره مي‌کند. اين حالت زماني است که الگوريتم رقابت استعماري با رسيدن به نقطه بهينه تابع هدف، متوقف مي‌شود. شکل 1-3 زير شماي کلي رقابت استعماري را نشان مي‌دهد.


شكل ‏1 3: شماي کلي رقابت استعماري

1-3 مزاياي الگوريتم توسعه داده شده:
الگوريتم توسعه داده شده، در وهله اول با داشتن يک ديدگاه کاملاً نو به مبحث بهينه‌سازي، پيوندي جديد ميان علوم انساني و اجتماعي از يک سو و علوم فني و رياضي از سوي ديگر، برقرار مي‌کند. ارتباط ميان اين دو شاخه از علم به گونه‌اي مي‌باشد که غالباً رياضيات به عنوان ابزاري قوي و دقيق در خدمت علوم انساني کلي نگر قرار گرفته و به درک و تحليل نتايج آن کمک مي‌کند. اما الگوريتم توسعه داده شده بر خلاف معمول، نقطه‌ي قوت علوم انساني و اجتماعي، يعني کلي‌نگري و وسعت ديد آن را به خدمت رياضيات درآورده و از آن به عنوان ابزاري براي درک بهتر رياضيات و حل بهتر مسائل رياضي استفاده مي‌کند. بنابراين حتي بدون در نظر گرفتن قابليت‌هاي رياضي و عملي روش توسعه داده شده، پيوند ايجاد شده ميان اين دو شاخه به ظاهر جدا از هم، به عنوان يک پژوهش ميان رشته‌اي، در نوع خود داراي ارزش بسياري مي‌باشد.

مزاياي الگوريتم اجتماعي پيشنهادي را مي‌توان به صورت زير خلاصه کرد.

  • نو بودن ايده‌ي پايه‌اي الگوريتم: به عنوان اولين الگوريتم بهينه‌سازي مبتني بر يک فرايند اجتماعي‌ـ‌سياسي
  • توانايي بهينه‌سازي هم‌تراز و حتي بالاتر در مقايسه با الگوريتم‌هاي مختلف بهينه‌سازي، در مواجهه با انواع مسائل بهينه‌سازي
  • سرعت مناسب يافتن جواب بهينه
1-4 ساختار متن
در اين نوشتار ابندا در فصل دوم مروري بر بهينه‌سازي و روشهاي مطرح شده براي حل مسائل بهينه‌سازي خواهيم داشت. سپس در فصل سوم الگوريتم معرفي شده بيان شده و جزيئات و نحوه پياده‌سازي آن مورد بررسي قرار مي‌گيرد. در فصل چهارم نيز نمونه‌اي از مسائل حل شده توسط الگوريتم معرفي شده را خواهيم ديد و در نهايت در فصل پنجم، نتيجه‌‌گيري و بررسي مزايا و معيب الگوريتم و پيشنهادات براي ادامه کار را خواهيم داشت. در پيوست هاي 1 و 2 نيز به ترتيب در مورد جعبه ابزار تهيه شده و خلاصه مقالات استخراج شده‌ مطالبي را خواهيم داشت.

_______________________________________________
آنچه مطالعه کردید، بخشی از متن آموزشی جامعی در مورد الگوریتم رقابت استعماری بود که بر روی سایت “الگوریتم رقابت استعماری و بهینه سازی تکاملی” قرار گرفته است. این متن آموزشیکه توضیحات مفصلی را در موردلگوریتم رقابت استعماریدر اختیار می کذارد، در حقیقت بخشهایی نسبتاً کامل از یک پایان نامه در مورد این الگوریتم می باشد. در ادامه فهرست کامل مطالب این متن آموزشی آمده است. برای مشاهده هر بخش می توانید روی عنوان آن بخش کلیک کنید.
فهرست مطالب متن آموزشی الگوریتم رقابت استعماری
(جهت مطالعه هر بخش روی آن کلیک کنید.)

چکیده

فصل 1 مقدمه
1-1 هدف و اهميت مسئله
1-2 الگوريتم توسعه داده شده
1-3 مزاياي الگوريتم توسعه داده شده
1-4 ساختار نوشتار

فصل 2 بهينه‌سازي و روشهاي موجود
2-1 انواع مسائل بهينه‌سازي
2-2 روش‌هاي بهينه‌سازي کمينه‌جو
2-2-1 بهينه‌سازي تحليلي
2-2-2 جستجوي خط
2-2-3 روش‌هاي نيوتوني
2-2-4 روش کاهشي نِلدِر ـ ‌ميد با اشکال غير مرکب
2-3 الگوريتم‌ ژنتيک
2-4 الگوريتم بازپخت شبيه‌سازي شده
2-5 بهينه‌سازي گروه ذرات
2-6 کلوني مورچه‌ها
2-7 برنامه‌ريزي ژنتيک

فصل 3 استراتژي بهينه‌سازي مبتني بر تکامل اجتماعي‌ـ‌سياسي
3-1 مقدمه
3-2 مروري تاريخي بر پديده استعمار

3-2-1 هند
3-2-2 مالزي
3-2-3 هندوچين فرانسه
3-2-4 هند شرقي (اندونزي)

3-3 الگوريتم پيشنهادي
3-3-1 شکل دهي امپراطوري‌هاي اوليه
3-3-2 مدل‌سازي سياست جذب: حرکت مستعمره‌ها به سمت امپرياليست
3-3-3 جابجايي موقعيت مستعمره و امپرياليست
3-3-4 قدرت کل يک امپراطوري
3-3-5 رقابت استعماري
3-3-6 سقوط امپراطوري‌هاي ضعيف
3-3-7 همگرايي

3-4 مثال کاربردي
3-5 نتيجه‌گيری
3-6 توابع هزينه مورد استفاده

فصل 4 پياده‌سازي هاي انجام شده
4-1 استفاده از الگوريتم معرفي شده براي طراحي يک کنترل‌کننده PID بهينه
4-1-1 کنترل‌کننده PID
4-1-2 طراحي کنترل‌کننده PID بهينه توسط الگوريتم رقابت استعماري
4-1-3 نتيجه‌گيري
4-2 استفاده از الگوريتم رقابت امپرياليستي براي طراحي کنترل‌کننده PID چند متغيره براي سيستم صنعتي ستون تقطير
4-2-1 مقدمه
4-2-2 کنترل‌کننده PID براي فرايند چند متغيره
4-2-3 نتايج شبيه‌سازي
4-2-4 نتيجه‌گيري

4-3 الگوريتم رقابت استعماري؛ ابزاري براي يافتن نقطه تعادل نش
4-3-1 يک بازي غير خطي استاتيک ساده
4-3-2 يک بازي با پيچيدگي بيشتر
4-4 طراحي بهينه آنتهاي آرايه‌اي

4-5 استفاده از الگوريتم رقابت استعماري براي شناسايي ويژگي مواد از آزمون فرورفتگي
4-5-1 مقدمه
4-5-2 توصيف مسئله معکوس
4-5-3 حل مسئله معکوس توسط الگوريتم رقابت استعماري
4-5-4 نتيجه‌گيری

4-6 کنترل فازي اتومبيل
4-6-1 مدل اتومبيل
4-6-2 نتايج

فصل 5 خلاصه، نتيجه‌گيري و پيشنهادات

فصل 6 مراجع

لازم به ذکر است که فایل PDF جامعتر این متن آموزشی نیز بر روی سایت در این لینک (کلیک کنید) قرار گرفته است. توصیه می شود پس از مطالعه بخش مربوطه در وبسایت، در صورت تمایل متن فایل PDF را نیز مطالعه نمایید.

نکتهدیگر قابل ذکر این است که الگوریتم رقابت استعماری در حال حاضر درنسخه های مختلف و با تغییراتی نسبت به نسخه اولیه آن توسط دانشجویان و محققین حوزه بهینه سازی مورد استفاده قرار می گیرد. متن آموزشی ارائه شده بر روی سایت ورژن اولیه و نسخه ابتدایی الگوریتم رقابت استعماری می باشد. برای آشنایی با نسخه های جدیدتر الگوریتم می توانید به برخی از مقالات ارائه شده بر روی سایت مراجعه نمایید.

 

_____________________________________________
نظرات شما در انتهای این پست برای سایر خوانندگان، بسیار مفید خواهد بود. می توانید نظر خود را با اکانت سرویس های مختلف و یا به عنوان ناشناس در این پست درج نمائید.
صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.

متن آموزشی: چکیده

الگوريتم هاي بهينه‌سازي الهام گرفته از طبيعت به عنوان روشهاي هوشمند بهينه‌سازي در کنار روش‌هاي کلاسيک موفقيت قابل ملاحظه‌اي از خود نشان داده‌اند. از جمله اين روش‌ها مي‌توان به الگوريتم‌هاي ژنتيک (الهام گرفته از تکامل بيولوژيکي انسان و ساير موجودات)، بهينه‌سازي کلوني مورچه‌ها (بر مبناي حرکت بهينه مورچه‌ها) و روش بازپخت شبيه‌سازي شده (با الهام‌گيري از فرايند تبريد فلزات) اشاره نمود. اين روش‌ها در حل بسياري از مسائل بهينه‌سازي در حوزه‌هاي مختلفي چون تعيين مسير بهينه عامل‌هاي خودکار، طراحي بهينه کنترل کننده براي پروسه هاي صنعتي، حل مسائل عمده مهندسي صنايع همانند طراحي چيدمان بهينه براي واحدهاي صنعتي، حل مسائل صف و نيز در طراحي عامل‌هاي هوشمند استفاده شده‌اند.

الگوريتم‌هاي بهينه‌سازي معرفي شده، به طور عمده الهام گرفته از فرايند‌هاي طبيعي مي‌باشند و در ارائه اين الگوريتم‌ها به ساير نمودهاي تکامل انساني توجهي نشده است. در اين نوشتار الگوريتم جديدي براي بهينه‌سازي مطرح مي‌‌شود که نه از يک پديده طبيعي، بلکه از يک پديده اجتماعي – انساني الهام گرفته است. بطور ويژه اين الگوريتم به فرايند استعمار، به عنوان مرحله‌اي از تکامل اجتماعي – سياسي بشر نگريسته و با مدل‌سازي رياضي اين پديده تاريخي، از آن به عنوان منشأ الهام يک الگوريتم قدرتمند در زمينه بهينه‌سازي بهره مي‌گيرد. در مدت کوتاهي که از معرفي اين الگوريتم مي‌گذرد، از آن براي حل مسائل بسياري در حوزه بهينه‌سازي استفاده شده است. طراحي چيدمان بهينه براي واحد‌هاي صنعتي، آنتن‌هاي مخابراتي هوشمند، سيستم‌هاي پيشنهاددهنده هوشمند و نيز طراحي کنترل کننده بهينه براي سيستم‌هاي صنعتي شيميايي تعدادي معدود از کاربردهاي گسترده اين الگوريتم در حل مسائل بهينه‌سازي مي‌باشد.

_______________________________________________
آنچه مطالعه کردید، بخشی از متن آموزشی جامعی در مورد الگوریتم رقابت استعماری بود که بر روی سایت “الگوریتم رقابت استعماری و بهینه سازی تکاملی” قرار گرفته است. این متن آموزشی که توضیحات مفصلی را در مورد لگوریتم رقابت استعماری در اختیار می کذارد، در حقیقت بخشهایی نسبتاً کامل از یک پایان نامه در مورد این الگوریتم می باشد. در ادامه فهرست کامل مطالب این متن آموزشی آمده است. برای مشاهده هر بخش می توانید روی عنوان آن بخش کلیک کنید.

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

چکیده

فصل 1 مقدمه
1-1 هدف و اهميت مسئله
1-2 الگوريتم توسعه داده شده
1-3 مزاياي الگوريتم توسعه داده شده
1-4 ساختار نوشتار

فصل 2 بهينه‌سازي و روشهاي موجود
2-1 انواع مسائل بهينه‌سازي
2-2 روش‌هاي بهينه‌سازي کمينه‌جو
2-2-1 بهينه‌سازي تحليلي
2-2-2 جستجوي خط
2-2-3 روش‌هاي نيوتوني
2-2-4 روش کاهشي نِلدِر ـ ‌ميد با اشکال غير مرکب
2-3 الگوريتم‌ ژنتيک
2-4 الگوريتم بازپخت شبيه‌سازي شده
2-5 بهينه‌سازي گروه ذرات
2-6 کلوني مورچه‌ها
2-7 برنامه‌ريزي ژنتيک

فصل 3 استراتژي بهينه‌سازي مبتني بر تکامل اجتماعي‌ـ‌سياسي
3-1 مقدمه
3-2 مروري تاريخي بر پديده استعمار

3-2-1 هند
3-2-2 مالزي
3-2-3 هندوچين فرانسه
3-2-4 هند شرقي (اندونزي)

3-3 الگوريتم پيشنهادي
3-3-1 شکل دهي امپراطوري‌هاي اوليه
3-3-2 مدل‌سازي سياست جذب: حرکت مستعمره‌ها به سمت امپرياليست
3-3-3 جابجايي موقعيت مستعمره و امپرياليست
3-3-4 قدرت کل يک امپراطوري
3-3-5 رقابت استعماري
3-3-6 سقوط امپراطوري‌هاي ضعيف
3-3-7 همگرايي

3-4 مثال کاربردي
3-5 نتيجه‌گيری
3-6 توابع هزينه مورد استفاده

فصل 4 پياده‌سازي هاي انجام شده
4-1 استفاده از الگوريتم معرفي شده براي طراحي يک کنترل‌کننده PID بهينه
4-1-1 کنترل‌کننده PID
4-1-2 طراحي کنترل‌کننده PID بهينه توسط الگوريتم رقابت استعماري
4-1-3 نتيجه‌گيري
4-2 استفاده از الگوريتم رقابت امپرياليستي براي طراحي کنترل‌کننده PID چند متغيره براي سيستم صنعتي ستون تقطير
4-2-1 مقدمه
4-2-2 کنترل‌کننده PID براي فرايند چند متغيره
4-2-3 نتايج شبيه‌سازي
4-2-4 نتيجه‌گيري

4-3 الگوريتم رقابت استعماري؛ ابزاري براي يافتن نقطه تعادل نش
4-3-1 يک بازي غير خطي استاتيک ساده
4-3-2 يک بازي با پيچيدگي بيشتر
4-4 طراحي بهينه آنتهاي آرايه‌اي

4-5 استفاده از الگوريتم رقابت استعماري براي شناسايي ويژگي مواد از آزمون فرورفتگي
4-5-1 مقدمه
4-5-2 توصيف مسئله معکوس
4-5-3 حل مسئله معکوس توسط الگوريتم رقابت استعماري
4-5-4 نتيجه‌گيری

4-6 کنترل فازي اتومبيل
4-6-1 مدل اتومبيل
4-6-2 نتايج

فصل 5 خلاصه، نتيجه‌گيري و پيشنهادات

فصل 6 مراجع

لازم به ذکر است که فایل PDF جامعتر این متن آموزشی نیز بر روی سایت در این لینک (کلیک کنید) قرار گرفته است. توصیه می شود پس از مطالعه بخش مربوطه در وبسایت، در صورت تمایل متن فایل PDF را نیز مطالعه نمایید.

نکتهدیگر قابل ذکر این است که الگوریتم رقابت استعماری در حال حاضر درنسخه های مختلف و با تغییراتی نسبت به نسخه اولیه آن توسط دانشجویان و محققین حوزه بهینه سازی مورد استفاده قرار می گیرد. متن آموزشی ارائه شده بر روی سایت ورژن اولیه و نسخه ابتدایی الگوریتم رقابت استعماری می باشد. برای آشنایی با نسخه های جدیدتر الگوریتم می توانید به برخی از مقالات ارائه شده بر روی سایت مراجعه نمایید.

_____________________________________________
نظرات شما در انتهای این پست برای سایر خوانندگان، بسیار مفید خواهد بود. می توانید نظر خود را با اکانت سرویس های مختلف و یا به عنوان ناشناس در این پست درج نمائید.
صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.

دانلود رایگان کد الگوریتم رقابت استعماری در سی شارپ و متلب

بالاخره پس از مدت ها، با توجه به درخواست های مکرر دوستان و علاقه مندان مباحث هوش مصنوعی و بهینه سازی هوشمند، و کاربران الگوریتم رقابت استعماری، نسخه جدید کد متلب الگوریتم رقابت استعماری، توسط گروه برنامه نویسان متلب سایت، ارائه گردیده است. همچنین با توجه به افزایش روز افزون کاربرد الگوریتم رقابت استعماری، و لزوم دسترسی به سرعت های اجرای بالاتر، برای اولین بار، الگوریتم رقابت استعماری با استفاده از زبان برنامه نویسی سی سارپ یا C# پیاده سازی شده است. این برنامه ها توسط مهندس سید مصطفی کلامی هریس، یکی از اعضای گروه برنامه نویسان متلب سایت، برنامه نویسی و تدوین شده است. لینک دانلود دو نسخه یاد شده، در ادامه آمده است:

رمز فایل ها، عبارت matlabsite.com است.
کدها و برنامه رایگان ارائه شده می توانند به عنوان یک پروژه کامل و مجزا در مورد الگوریتم رقابت استعماری (Imperialist Competitive Algorithm) که به اختصار ICA نامیده می شود، مورد استفاده آموزشی نیز قرار بگیرند.
توجه: به زودی فایل راهنمای استفاده از این برنامه ها، در متلب سایت ارائه خواهد شد. منتظر باشید. البته بر روی “وب سایت الگوریتم رقابت استعماری و بهینه سازی تکاملی” نسخه دیگری از کدها به همراه فایل راهنمای استفاده و نیز فیلم آموزشی نحوه پیاده سازی بر روی مسئله دلخواه موجود می باشد. این لینک را ببینید.
صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.
 
کلمات کلیدی:
Imperialist Competitive Algorithm Codes in C##, Matlab, Free
کدهای الگوریتم رقابت استعماری در C، سی، شارپ، رایگان
_____________________________________________
نظرات شما در انتهای این پست برای سایر خوانندگان، بسیار مفید خواهد بود. می توانید نظر خود را با اکانت سرویس های مختلف و یا به عنوان ناشناس در این پست درج نمائید.
صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.

فایل راهنمای فارسی الگوریتم رقابت استعماری Imperialist Competitive Algorithm

 

این پست یک فایل آموزشی بسیار مفید راجع به Imperialist Competitive Algorithm یا الگوریتم رقابت استعماری در اختیار علاقه مندان قرار می دهد. این فایل آموزشی در حقیقت متن کامل یک پایان نامه در زمینه بهینه سازی و الگوریتم رقابت استعماری می باشد. در چکیده این فایل 100 صفحه ای می خوانید:

“الگوریتم های بهینه‌سازی الهام گرفته از طبیعت به عنوان روشهای هوشمند بهینه‌سازی در کنار روش‌های کلاسیک موفقیت خوبی از خود نشان داده‌اند. از جمله این روش‌ها می‌توان به الگوریتم‌های ژنتیک (الهام گرفته از تکامل بیولوژیکی انسان و سایر موجودات)، بهینه‌سازی کلونی مورچه‌ها (بر مبنای حرکت بهینه مورچه‌ها) و روش بازپخت شبیه‌سازی شده (با الهام‌گیری از فرایند تبرید فلزات) اشاره نمود. این روش‌ها در حل بسیاری از مسائل بهینه‌سازی در حوزه‌های مختلفی چون تعیین مسیر بهینه عامل‌های خودکار، طراحی بهینه کنترل کننده برای پروسه های صنعتی، حل مسائل عمده مهندسی صنایع همانند طراحی چیدمان بهینه برای واحدهای صنعتی، حل مسائل صف و نیز در طراحی عامل‌های هوشمند استفاده شده‌اند.

الگوریتم‌های بهینه‌سازی معرفی شده، به طور عمده الهام گرفته از فرایند‌های طبیعی می‌باشند و در ارائه این الگوریتم‌ها به سایر نمودهای تکامل انسانی توجهی نشده است. در این نوشتار الگوریتم جدیدی برای بهینه‌سازی مطرح می‌‌شود که نه از یک پدیده طبیعی، بلکه از یک پدیده اجتماعی – انسانی الهام گرفته است. بطور ویژه این الگوریتم به فرایند استعمار، به عنوان مرحله‌ای از تکامل اجتماعی – سیاسی بشر نگریسته و با مدل‌سازی ریاضی این پدیده تاریخی، از آن به عنوان منشأ الهام یک الگوریتم قدرتمند در زمینه بهینه‌سازی بهره می‌گیرد. در مدت کوتاهی که از معرفی این الگوریتم می‌گذرد، از آن برای حل مسائل بسیاری در حوزه بهینه‌سازی استفاده شده است. طراحی چیدمان بهینه برای واحد‌های صنعتی، آنتن‌های مخابراتی هوشمند، سیستم‌های پیشنهاددهنده هوشمند و نیز طراحی کنترل کننده بهینه برای سیستم‌های صنعتی شیمیایی تعدادی معدود از کاربردهای گسترده این الگوریتم در حل مسائل بهینه‌سازی می‌باشد.”

در ادمه لینک دانلود این کتاب قرار داده شده است:
اگر در هر مرحله ای، فایلها نیاز به پسورد داشتند، پسورد matlabsite.com را وارد کنید.
فایل راهنمای فارسی و انگلیسی در فرمت Word نیز در این لینک موجود می باشد.

 


صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.

 

نحوه مواجهه با قید ها در بهینه سازی مقید

یکی از دوستان سوالی در مورد نحوه برخورد با قید ها (Constraints) در الگوریتم رقابت استعماری مطرح کرده بودند. به علت طولانی بودن پاسخ این سوال، در یک فایل صوتی برخی از روشهای عمومی مدیریت قیدها در الگوریتم رقابت استعماری بیان شده است. البته همانگونه که در فایل صوتی تهیه شده ملاحظه خواهید کرد، اغلب روشهای مدیریت قیود وابسته به الگوریتم خاصی نمی باشند. بنابراین اگر مثلاً روشی هست که الگوریتم ژنتیک را برای حل مسائل مقید مناسب می کند، با اندکی تغییرات به سادگی می تواند به روش بهینه سازی دیگری مثل الگوریتم رقابت استعماری اعمال شود.

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

لینک های دانلود

نکته: در صورت استفاده از سرور شماره چهار جهت دانلود، باید از طریق اکانت گوگل (یا همان جیمیل) خود پس از کلیک بر روی لینک ها وارد شوید.

پیاده سازی متنی فایل صوتی

متن فوق به صورت متنی در آمده است که در ادامه متن پیاده سازی شده را می بینیم. البته توصیه ما استفاده از فایال های صوتی است برای درک بهتر موضوع. در هر صورت، متن زیر نیز در عین اشکالات کوچک پیاده سازی شاید مفید باشد.

با سلام
در مورد مدیریت قیدها در الگوریتم های تکاملی از جمله الگوریتیم ژنتیک، الگوریتم پرندگان، زنبور عسل و الگوریتم رقابت استعماری و کلاً مسأله ای که مطرح است این است که روش هایی که موجود هستند و ما از آن ها استفاده می کنیم مستقل از نوع الگوریتم هستند. یعنی این، این طور نیستند که بگوییم روش هندل کردن قید در فلان جا. معمولاً روشی مدیریت قیود (Constraint Handling) که برای یک الگوریتم استفاده می شود برای یک الگوریتم دیگر هم قابل استفاده است. ما خود را محدود به هیچ الگوریتمی نمی کنیم و کلاً بازی کردن با قیدها مبحث جداگانه و تخصص جداگانه ای از کارکردن با خود فقط الگوریتم است.

ساده ترین روشی که برای مدیریت قیود استفاده می شود این است که در روش های تکاملی ما یک تابع هزینه ای داریم که این تابع هزینه ها را با یک برنامه جداگانه می خواهیم مینیمم یا ماکس آن را پیدا کنیم. که آن برنامه جداگانه می تواند برنامه الگوریتم ژنتیک، پرندگان باشد و غیره.
اولاً باید برنامه ها را از همان ابتدا برای این که بتوانیم جواب خوب بگیریم ماژولار بنویسیم. (یعنی تابع هزینه را از خود برنامه جدا کنیم). بعضی وقت ها دیده می شود که توی بعضی برنامه ها، افراد کل مسأله خود را در یک برنامه می نویسند.

نه این غلط است باید حداقل، حداقل حداقل خودِ تابع هزینه و الگوریتمی که می خواهد آن تابع هزینه را بهینه کند یا مینی میم و ماکسش را پیدا کند جدا از هم نوشته شود. کاری که انجام می شود و اولین و مهم ترین قدمی که ما می توانیم برداریم این است که قیود را در همان تولید (اسمش رو بگذاریم) کروموزم در الگوریتم ژنتیک، پارتیکل (ذره) در الگوریتم پرندگان یا انبوه ذرات و یا مثلاً کشور در الگوریتم رقابت استعماری در همان ابتدا باید محدود کنیم. تولید کروموزم را، مثلاً اگر می دانیم جواب ما بین منفی 10 و 10 است ما باید جوابهای خودمان را بین منفی 10 و 10 تولید کنیم.

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

حالا برویم سراغ های پیشگیری. روش های پیشگیری می گویند که اگر آن چیزی که اسمش را می گذاریم مجرم، در جامعه سعی کنیم نگذاریم متولد بشود. اگر مجرم متولد شد پانیش (تنبیه) کنیم. مثلاً یک قانون می تواند این باشد که هر کسی که پایش را فراتر از حدودی که تعیین شده گذاشت، اعدامش کنیم. این ساده ترین و کم پیچیده ترین قانونی است که می شود تصویب کرد. چه کار می کنیم؟ در الگوریتم ژنتیک می آییم پنالتی می گذاریم. مثلاً ما می دانیم که هزینه هایمان چه هستند.

به عبارت دیگر، خوب ما می خوایم مسأله مینیمم سازی حل کنیم یعنی هر چه کمتر باشد بهتر است ما می دانیم که هزینه هایمان بین منفی 10 تا 100 است یهو می آییم به آن جواب هایی که خیلی از قیود ما بیرون رفتند چه کار می کنیم؟ یهو یه پنالتی می دیم. مثلاً صد میلیون. یعنی چی؟ یعنی این می رود تو ته لیست جمعیت قرار می گیرد. خوب اعدام می شود یعنی می رود ته جمعیت ته لیست جمعیت و از جمعیت بیرون انداخته می شود. یعنی ما کافیه که در تابع هزینه مون که گفتیم به صورت جداگانه ما این رو نوشتیم یک تابع هزینه داریم f(x). داخل اون می نویسم f،x ؟؟ مثلاً اگر gx که هزینه ما هست کوچکتر از صفر شد همیشه می شود الگویش را می شود به این صورت نوشت. حالا بزرگ تر شد هر چی شد یعنی اگر عدول کرد، هزینه اش را بالا می گذاریم. مثلاً صد میلیارد. خوب این هم پس، آن یکی روش. روش اول که پیشگیری بود. روش درمان اولیه و سطحی که به ذهن می رسد همین است. این هم اگر جواب داد، ساده ترین کاری است که می شود انجام داد یعنی ما اگر بتوانیم با این روش کار را جلو ببریم می توانیم تا حدی خودمان را از پیچیدگی روشهای دیگر که در ادامه می گوییم رها کنیم. خوب ادامه را در بخش دوم ببینید.

خوب حالا ببینیم که اگر آن روش، بدیش چیه؟ آن روش بدیش اینه که اگر، شما جامعه ای را در نظر بگیرید که ما افراد به خاطر عبور از خط قرمز، به خاطر کشتن آدم، به خاطر توهین به فلانی به خاطر اعتراض به هر دلیلی یه مجازات اعدام بگذاریم جلویش یهو می بینیم که نصف آن جامعه مجرم هستند؛ یعنی حتی بیشتر از نصف یعنی وقتی ما با قیود پیچیده مواجه هستیم این روش جواب نمی دهد چون با عث می شود که اگر اعضای جمعیت ما مثلاً اگر صدتایی است با آن تعریفی که ما از جرم انجام داده ایم یهو می بینیم که 90 درصد از جامعه ما مجرم هستند و باید پانیش (نتبیه) بشوند و باید بروند ته لیست. در حقیقت، آن موقع ته لیستی اصلاً نیست که جمعیت برود ته لیست. ته لیست موقعی معنی دارد که ما صدتا عوض جمعیت داریم و پنج تاشون، دوتاشون، قیود را زیر پا می گذارند و ما آنها را می فرستیم ته لیست تا تنبیه بشوند. منتها وقتی که از صدتا جمعیت ما، در قیود پیچیده واقعاً مسائل همین گونه هستند یعنی آن قدر فضای در دسترس (Feasible Space) یعنی ناحیه ای که فیزبل (در دسترس) هست، جواب ها باید توش باشند؛ آن قدر نسبت به فضای کل جستجو کوچک هست، آن قدر قیود ما برای در حقیقت تعریف جرم بسته هست که کل جامعه خیلی وقت ها، خیلی وقت ها می شود بله، صد رصد حتی مجرم هستند . خوب ما می آییم فرض کنید روش در حقیقت مجازات که همشون را کاست (هزینه) صد میلیارد بدهیم در نظر می گیرم. خوب ما در نظر بگیرید جمعیتی را که صد تا عنصر توی جمعیتش وجود دارد ما به همشون کاست صد میلیارد دادیم؛ خوب یه لیستی داره یک سری افرادی در آن هستند همه اعدام. هیچ فرقی بین جرم پایین و کوچک و بالا وجود ندارد. مجازات، کل فلسفه اش اینه که ما بخواهیم جمعیت را اصلاح کنیم. ما که اینجا نمی خواهیم از جمعیت انتقام بگیریم؟!! هدف اینه که می خواهیم برسیم به یک جواب خوب. برسیم به یک جمعیت بهبود یافته. برسیم به جواب مسألمون. جواب هایی که افرادی که هستند که در قیود ما صدق می کنند. پس خلاصه بخواهیم بگوییم در مواردی که قیود، فضایی را ایجاد می کنند که فیزبل سولوشن (ناحیه در دسترس) ما خیلی کوچکتر است از آن فضایی که ما جستجو را از آن شروع کردیم و هیچ سنسی (احساسی) از فضای اصلی نداریم، در چنین مواردی با احتمال کمی پاپیولیشن ها می افتند داخل آن قیود.

خوب در مواردی که ناحیه در دسترس ما خیلی نسبت به فضای جستجوی اصلی که ما جستجو را باهاش شروع کردیم، کوچک هست، روش تنبیه مساوی و بزرگ برای کل جمعیت روش مناسبی نیست. خوب این را می توانیم خیلی ساده تست کنیم. می آییم چه کار می کنیم؟ می آییم پاپیولیشن (جمعیت) مثلاً هزارتایی را در نظر می گیرم. بعد این ها را به صورت تصادفی تولید می کنیم در آن فضای اولیه حدس. خوب این ها را پخش می کنیم بعد قیود را در نظر می گیریم اگر دیدیم مثلاً از این هزارتا فقط20 تا 50 تا فوقش 100 تا یعنی ده درصد قیود را رد کردند و بقیه در فضای اصلی هستند، همون تنبیه ساده کافیه. منتها یهو دیدیم از آن هزارتایی که ما تولید کردیم دو تا فقط هست یا حتی یک دانه و یا حتی اصلاً نیست در قیود ما صدق کند این روش دیگه جواب نمی دهد می پره این ور و آن ور.

یکی از کارهایی هم که معمولاً در کل مسائل مقید انجام داد این است که جواب هایی را پیدا کنیم که خوب یا بد مهم نیستند، فقط توی قیود ما صدق می کنند. اینها را می گذاریم لای جمعیت و این ها با جمعیت، حرکت می کند و جمعیت را سعی می کنند به سمت خودشون بکشند. پس این هم کلاً در نظر داشته باشین که اگر بتوانید دو سه تا جوابی که توی قیود صدق می کند؛ حالا نمی خواد خوب و بد باشه؛ بگذارید لای پاپ یولیشن، به شما کمک خواهد کرد.

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

روش سوم این است که ما بیاییم متناسب با عدول از قیود، پانیشمنت در نظر بگیریم. این به چه صورت است؟ می آییم می گویم مثلاً اگر قرار بود که x2 +x1 کوچکتر از 10 باشد و حالا، بزرگتر از 10 شده، نیائیم هر کروموزمی که x1+x2 برای آن؛ بزرگتر از 10 هست، پانیش کنیم. بیاییم چه کار کنیم؟ بیائیم میزان تنبیه رو برابر با میزان عدول در نظر بگیریم.

مثلاً به چه میزان از x1+x2 که باید 10 می شد بزرگتر است. اگه 11 هست یک واحد پانیش کنیم اگر 15 هست 5 واحد پانیش کنیم اگه 20 هست 10 واحد پانیش کنیم . این یعنی به اصطلاح متناسب با آن میزان عدول از قیود آن ها را پانیش کنیم. این یکی از روشهاست. پس میزان پانیش منت مساوی است با فاصله ای که از قیود می گیرند. مثلاً می توانیم، مثلاً اگر 5 تا قید داریم می گوییم مجموع فواصل از قیود را کمینه کنید.

یک روش هم این است که در کنار این که این ها را در نظر بگیریم تعداد عدول از قیود را هم در نظر می گیریم. معمولاً بعضی روش ها مثلاً اگه 7 یا 8 تا قید داریم می گوییم نه تنها میزان عدولشان بلکه تعداد عدولشان را هم در نظر بگیر. این چیزهایی که گفته می شود این جا، این جا روش استاندارد و کلاسیکی وجود ندارد گفته بشود بله ، این روش کار ماست. نه! این ها آن قدر باید باهاشون بازی بشود تا مناسب ترین روش اصلاح برای آن مسأله به دست بیاید. یعنی این طور نیست که ما قانونی را برای یک کشور تصویب کنیم و همان قانون برای کشور همسایه بتواند آن کشور را اصلاح کند. منتها خوب می شود قانون هایی را بهشون رسید که در میانگین، بهتر از قوانین دیگر جواب می دهند. منتها باید توجه کرد که این یک اکسیر یا کیور آل (cure-all) برای تمام مسائل نیست.

خوب پس چه کار می کنیم؟ یه پنالتی فاکتور در نظر می گیرم. پنالت فاکتور را همیشه می توان با میزان هزینه آن کروموزم جمع کرد یا همیشه درش ضرب کرد. مثلاً می گوییم که کاست (هزینه) هر کروموزم برابر است با کاست اصلیش یعنی میزان تابع هزینه آن به اضافه مثلاً صد برابر، ده برابر یا هر چیزی از عدول از هزینه.

فقط یک مسأله را در نظر داشته باشید که باید خیلی حرفه ای با این مسأله برخورد شود. بعضی وقت ها، مثلاً پنالتی ها به گونه ای هستند که اول کار، خوب جواب می دهند، وسط ها مثلاً یهو می بینی که مسأله، بهینه سازی می شود؛ منتها در نهایت جواب می دهد که باز خارج از قیود ما هست. ریشه کار به چی بر می گردد؟ ریشه کار به این برمی گردد که شما اگر با موبایل داخل ماشین نشسته و صحبت کنید، جریمه اش مثلاً 10 هزار تومان است. منتها خیلی از افراد یک معامله مثلاً یک میلیونی را با همان مکالمه 5 دقیقه ای که اگه بگیرنش 10 هزار تومان جریمه اش باشد؛ انجام می دهند. یعنی پاپیولیشن ها (اعضای جمعیت) ما هم بعضی وقت ها می روند، قیدها را زیر پا می گذارند. منتها از این طرف، توی تابع هزینه یه جاهایی را پیدا می کنند که هزینه آن قدر کم می شود که شما اگر هزینه تمام قیود را جمع کنید و در نهایت باز جبران آن عدول از قیود نمی شود. یعنی در حقیقت می شود گفت پانیش منت (تنبیه) ما خیلی شُل هست. یعنی جامعه را خیلی شُل گرفتیم. این به این معنی نیست که بیاییم پانیش منت را بگیریم هر چی شد تابع به اضافه صد برابر عدول از قیود. نه! پانیش منت را باید در طی مسأله باید کم کنیم، زیاد کنیم، این ها چیزهایی که باید باهاشون مدتی بازی بشود که دستتون کاملاً بیاد.

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

حالا باز همانگونه که عرض کردم خدمتتون، هیچ تفاوتی بین الگوریتم ژنتیک و دیگر الگوریتم ها نیست. مثلاً خیلی وقت ها من ایمیل دریافت می کنم که من الگوریتم رقابت استعماری را که الگوریتم جدید و کارایی در حوزه بهینه سازی هست را دارم استفاده می کنم. در مورد این الگوریتم، قیود را چه کار کنیم؟ جوابشون را من معمولاً این طور می دهم که همان کاری را که با ژنتیک می کنیم با همین هم بکنید. منتها اگر ژنتیک را بلد نیستید این یک بحث مجزاست. یعنی همان قیود را که در مورد ژنتیک کار می کنید، همان کار تکرار می شود برای الگوریتم پرندگان، الگوریتم مورچگان، برای الگوریتم رقابت استعماری. همشون تکراری، همین موارد هستند. امیدوارم این توضیحات تا حدی توانسته باشد بعضی از سؤالات را جواب بدهد، بقیه اش هم که دیگه تجربه شخصی است. باید با برنامه نویسی و … این ها به دست بیاید. موفق باشید و خدا نگهدار.

در ضمن نگاهی به مقالات منتشر شده در مورد الگوریتم رقابت استعماری در بخش مقالات و پایان نامه ها در سایت داشته باشید. مقالات خوبی در زمینه مدیریت قیود را خواهید دید.

_____________________________________________
نظرات شما در انتهای این پست برای سایر خوانندگان، بسیار مفید خواهد بود. می توانید نظر خود را با اکانت سرویس های مختلف و یا به عنوان ناشناس در این پست درج نمائید.
صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.

کدهای الگوریتم رقابت استعماری و فیلم آموزش استفاده از آنها

 
 
در این پست یک نسخه از کدهای مربوط به الگوریتم رقابت استعماری (Imperialist Competitive Algorithm) که به اختصار ICA نامیده می شود، ارائه شده است. این کدها در متلب می باشند و به سادگی قابل اعمال به انواع مسائل بهینه سازی هستند. به همراه کدها یک فایل کوتاه متنی توضیحات مربوط نحوه استفاده از کد ها موجود می باشد. در نهایت یک فیلم کوتاه نیز نحوه استفاده از این کدها را به خوبی نمایش می دهد. این فیلم در پاسخ به سوال یکی از دوستان در مورد نحوه استفاده از کدها تهیه شده است. اما مشاهده آن برای بسیاری از دوستان که خود کدها و فایل کوتاه آموزشی همراه آن برایشان کافی نبوده است، توصیه می شود. به زودی فیلم های کامل تر و بهتری راجع به الگوریتم رقابت استعماری بر روی وب قرار خواهند گرفت. در ضمن این فیلم به زبان فارسی می باشد.

دانلود رایگان کدها و فیلم آموزشی نحوه استفاده از آنها:
نکته: برای دریافت فایل ها، از لینک Google Doc پس از کلیک بر روی لینک ها باید از اکانت گوگل (جی میل) خود استفاده کنید.

 

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

مشاهده فیلم در یوتیوب
فیلم مذکور را در صورت دسترسی به یوتیوب می توانید در این لینک ببینید.

 

توضیحات مربوط به توابع موجود در کنار کدهای آماده:

شبه کد الگوریتم رقابت استعماری همانگونه که در فایل راهنمای فارسی آن بطور مفصل توضیح داده شده است، به صورت زیر است.
  1. چند نقطه تصادفي روي تابع انتخاب کرده و امپراطوري‌هاي اوليه را تشکيل بده.
  2. مستعمرات را به سمت کشور امپرياليست حرکت بده (سياست همسان‌سازي یا جذب).
  3. عملگر انقلاب (Revolution) را اعمال کن.
  4. اگر مستعمره‌اي در يک امپراطوري‌، وجود داشته باشد که هزينه‌اي کمتر از امپرياليست داشته باشد؛ جاي مستعمره و امپرياليست را با هم عوض کن.
  5. هزينه‌ي کل يک امپراطوري را حساب کن (با در نظر گرفتن هزينه‌ي امپرياليست و مستعمراتشان).
  6. يک (یا چند) ستعمره از ضعيف‌ترين امپراطوري انتخاب کرده و آن را به امپراطوري‌اي که بيشترين احتمال تصاحب را دارد، بده.
  7. امپراطوري‌هاي ضعيف را حذف کن.
  8. اگر تنها يک امپراطوري باقي‌ مانده باشد، توقف کن وگرنه به 2 برو.
نکته مهم: شبه کد فوق مربوط به نسخه اولیه معرفی شده از الگوریتم است. نسخه های جدید تر الگوریتم در بندهایی از این شبه کد ممکن است با آنچه در بالا آمد، متفاوت باشند.

 

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

AssimilateColonies
این تابع بخش آسیمیلاسیون (Assimilation) یا به عبارت دیگر سیاست جذب را پیاده سازی می کند.

BenchmarkFunction

در این برنامه تعداد زیادی از توابع مطرح استاندارد بهینه سازی قرار داده شده اند. از این توابع می توان جهت تست روشهای مختلف بهینه سازی استفاده نمود. در کنار این توابع، یک مثال عملی از حل یک مسئله کنترل برای طراحی کنترل کننده PID نیز وجود دارد. به احتمال زیاد این بخش مربوط به کار انجام شده در مقاله به عنوان زیر است که در بخش مقالات انگلیسی فایل کامل آن قابل دانلود است.
Esmaeil Atashpaz Gargari & Caro Lucas, “Designing an optimal PID controller using Colonial Competitive Algorithm”, First Iranian Joint Congress on Intelligent and Fuzzy Systems, September 2007, Mashhad, Iran.

CreateInitialEmpires

با در نظر گرفتن موقعیت و هزینه (عکس قدرت) کشورهای اولیه، امپراطوری های اولیه را با تقسیم مناسب مستعمرات میان آنها شکل می دهد.

DisplayEmpires

اگر توجه کرده باشید، در فایل راهنمای فارسی الگوریتم رقابت استعماری و نیز در بسیاری از مقالات فارسی و انگلیسی شکلهایی برای نشان دادن محل امپراطوری ها وجود دارند. در این شکلها معمولاً هر رنگ نشان دهنده یک امپراطوری است. در هر امپراطوری نیز کشور مرکزی (امپریالیست) با علامت ستاره و مستعمرات با علامت دایره نشان داده می شوند. تابع DisplayEmpires مسئول انجام چنین ترسیماتی است. لازم به ذکر است که این نوع ترسیمات برای برای بهینه سازی های با بعد کمتر یا مساوی 3 معنا دارد. برای ابعاد با تعداد بیشتر این ترسیم را متوقف می کنیم.

GenerateNewCountry

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

ImperialisticCompetition

انجام رقابت استعماری میان امپراطوری ها جهت جذب مستعمرات همدیگر، توسط این تابع انجام می پذیرد. حذف امپراطوری های ضعیف (از بین رفته) نیز در این تابع گنجانده شده است.

Main_ImperialistCompetitveAlgorithm

تابع اصلی که همه توابع دیگر را به هم پیوند می دهد. تنظیمات اصلی مربوط به الگوریتم، در این تابع قرار دارند. اجرای این برنامه، مسئله بهینه سازی را حل می کند. فیلم آموزشی ارائه شده تا حد زیادی به بیان جزئیات این برنامه می پردازد.

در این بخش از برنامه تنظیمات مرتبط با مسئله، همانند نام تابع هزینه، تعداد متغیرها (بعد مسئله بهینه سازی)، تعداد کشور های اولیه، تعداد دهه ها و … صورت می پذیرد. توجه شود که برنامه تابع هزینه با آوردن نام آن، شناخته می شود. در حالت پیشفرض، توابع استاندارد موجود همراه فایل ها برای تست اجرای برنامه تنظیم شده اند. پارامتر Costfunction.ExtraPrams شماره تابع استاندارد موجود را تعیین می کند. توجه شود که این پارامتر برای کاربردهای آتی پیش بینی شده است و در حالت استفاده عادی برای اتصال به توابع هزینه نوشته شده توسط شما، باید خالی (تهی []) باشد. راهنمای موجود در مقابل این عبارت که به صورت کامنت نوشته شده است نیز، به خوبی به این موضوع اشاره دارد.

PossesEmpire

تعویض جای مستعمره و استعمارگر در این تابع انجام می پذیرد. اگر مستعمره ای به جای بهتری نسبت به استعمارگر رسید، فوراً کنترل امپراطوری را در دست گرفته و کار را با اعمال سیاست جذب بر روی آنها ادامه می دهد.

RevolveColonies

انقلاب که وزنه اصلی توازن Exploration و Exploitation و به نفع Exploration است، در این تابع انجام می شود. تغییراتی ناگهانی در برخی کشور ها اتفاق افتاده و در برخی موارد به کشف نقاط ناپیدای مینیمم در تابع منجر می شود. لازم به ذکر است که این بخش مهم از الگوریتم رقابت استعماری که از اولین نسخه های این الگوریتم با آن بوده است، متاسفانه در هیچ یک از مستندات آن از جمله در فایل راهنمای فارسی و مقالات اولیه مرتبط با الگوریتم مورد بررسی قرار نگرفته است. در نهایت برای اولین بار توضیحات مرتبط با این بخش مهم از الگوریتم در مقاله با عنوان زیر که در بخش مقالات انگلیسی فایل کامل آن قابل دانلود است، ارائه شده است.
“Solving the Integrated Product Mix-Outsourcing Problem by a Novel Meta-Heuristic Algorithm: Imperialist Competitive Algorithm”, Expert Systems with Application, Elsevier

UniteSimilarEmpires

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

دانلود رایگان کد الگوریتم رقابت استعماری در سی شارپ و متلب

Myrandint

این تابع یک یا تعدادی عدد رندم صحیح در بازه دلخواه داده شده به آن ایجاد می کند. در حقیقت متلب تابعی با نام randint دارد که مربوطه به یکی از تولباکس های آن (به احتمال زیاد Communications Toolbox) می باشد. چون ممکن است این تولباکس بر روی خیلی از کامپیوتر ها نباشد (به ویژه خارج از ایران که هزینه تهیه و نصب برنامه متلب بسیار بالا است!!!)، این تابع به عنوان جایگزینی برای آن نوشته شده است.

چگونه ترسیم شکل ها را کنترل کنیم؟

دو نوع ترسیم در کدهای موجود پیش بینی شده اند. ترسیم اول، رسم نمودار موقعیت امپراطوری ها است. این ترسیم تنها برای مسائل با بعد دو یا سه معنی دار می باشد. زیر در این حالت امکان نمایش امپراطوری ها (کشور مرکزی به همراه مستعمرات هر یک) وجود دارد. برای فعال کردن و یا غیر فعال کردن این ترسیم، خط کد زیر را در میان کدها بیابید.
DisplayParams.PlotEmpires = true;    % “true” to plot. “false” to cancel ploting.
 
اگر به جای true در خط کد فوق، عبارت false بنویسید، ترسیم موقعیت امپراطوری ها غیر فعال خواهد شد. true بودن ترسیم امپراطوری ها را فعال می کند.
 
نوع دوم شکل و ترسیم در این کدها، ترسیم نمودارهای همگرایی تابع هزینه است. از جهت نوع کنترل، ترسیم نمودار های همگرایی هزینه نیز داستان مشابهی دارند، با این تفاوت که این نمودار، هیچ محدودیتی در ابعاد ندارد و برای تمام مسائل قابل ترسیم است و حتی رسم آن توصیه نیز می شود. ترسیم این نمودار را نیز به همان ترتیب بالا با ایجاد تغییر در خط کد زیر در میان کدها می توانید کنترل نمایید.
DisplayParams.PlotCost = true;    % “true” to plot. “false”
 
توجه: در متلب، به جای true و false عددهای 1 و 0 را می توانید به ترتیب استفاده نمایید.

________________________________
در ضمن نسخه های دیگری از الگوریتم رقابت استعماری به ویژه در زبانهای برنامه نویسی دیگر در حال تهیه بوده و به زودی منتشر می شوند. همچنین کدهای مربوط به روشهای دیگر بهینه سازی همانند الگوریتم های ژنتیک (Genetic Algorithms)، الگوریتم پرندگان (Particle Swarm Optimization) و بهینه سازی کلونی موچگان (Ant Colony Optimization) نیز به مرور زمان بر روی سایت قرار خواهند گرفت. البته متلبسایت مرجع کاربران و برنامه نویسان متلب و هوش مصنوعی ایران تا به حال مطالب بسیاری را در این موضوعات منتشر کرده است.

کدها و برنامه رایگان ارائه شده می توانند به عنوان یک پروژه کامل و مجزا در مورد الگوریتم رقابت استعماری (Imperialist Competitive Algorithm) که به اختصار ICA نامیده می شود، مورد استفاده آموزشی نیز قرار بگیرند.

تولباکس گرافیکی

در بخش از متن پایان نامه منشتر شده بر روی وبسایت به یک تولباکس گرافیکی اشاره شده است که کدهای متلب آن را می توانید در لینک زیر دانلود نمایید.

توجه مهم: توجه داشته باشید که این تولباکس بر مبنای کدهای قدیمی (اولیه) ICA نوشته شده است (و ممکن است کارایی کافی نداشته باشد) و بیشتر به درد مسائل ساده و استاندارد می خورد و انتشار آن صرفاً جنبه آموزشی و یادگیری دارد. توصیه اکید این هست که شما از این برنامه صرفاً جهت آشنایی با الگوریتم استفاده نمایید و کار علمی خود را با کدهای آماده منتشر شده که داراری فیلم آموزشی نیز می باشند، پیاده سازی نمایید.

نکته جهت اجرا: پس از دانلود فایل زیپ شده، برنامه  FirstPage.m را باز کرده و آنرا (مثلاً با فشار دکمه F5) اجرا نمایید.

_____________________________________________
نظرات شما در انتهای این پست برای سایر خوانندگان، بسیار مفید خواهد بود. می توانید نظر خود را با اکانت سرویس های مختلف و یا به عنوان ناشناس در این پست درج نمائید.

 

صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.

انتخاب ورودی و ویژگی توسط الگوریتم رقابت استعماری

سوال مطرح شده: سوال دریافتی از طریق بخش تماس با ما در سایت: “آیا با استفاده از الگوریتم رقابت استعماری می شود دیسکریپتور (Descriptor) انتخاب کرد؟ (دسکریپتر‌های برنامه SPSS). من قبلاً به روش استپوایز (Stepwize) اینکار رو در برنامه SPSS انجام میدادم. حالا می‌خواهم بدونم که آیا با الگوریتم ICA هم می‌شه این کارو کرد؟”

جواب: بله می شود.

در حقیقت انتخاب دیسکریپتور و به طور کلی انتخاب ورودی های موثر در خروجی یک سیستم (یا همان انتخاب ویژگی ها در مسائل طبقه بندی {1}) یک مسئله بهینه سازی گسسته می باشد که بسته به تعداد کاندیداهای موجود برای انتخاب و نیز تعداد انتخاب های مورد نیاز می تواند مسئله بسیار پیچیده ای باشد. البته پیچیدگی ارتباط میان ورودی و خروجی سیستم نیز در پیچیدگی این مسئله تاثیر دارد. در حالتی که ما می خواهیم تعداد کمی از ورودی ها یا همان دیسکریپتورها را انتخاب کنیم، این مسئله می تواند با یک جستجوی جامع انجام شود. فرض کنیم که 70 مورد دیسکریپتور داریم و می خواهیم از میان آنها n موردی را که بیشترین اثر را در روی خروجی سیتم دارند انتخاب کنیم. همیشه معیاری برای این انتخاب وجود دارد. مثلاً در مسائل طبقه بندی (Classification) در حوزه بازشناسی الگو (Pattern Recognition) ، خطای طبقه بندی معیار انتخاب ما می باشد. در مسائل رگرسیون و تقریب تابع، این معیار می تواند میانگین مربعات خطای میان خروجی واقعی و خروجی حاصل از رابطه باشد. در هر صورت ما این معیار را داریم و می خواهیم بدانیم که با در نظر گرفتن این معیار چه دسته ای ورودی های خوب هستند!!؟

حال فرض کنید، ما بخواهیم یک دسته 3 تایی از آن 70 تا انتخاب ممکن را داشته باشیم. تعداد انتخاب های ممکن تعداد انتخاب 3 از 70 است. یعنی:

70! / (3! * 67!) = 70*69*68 / 6 = 54,740
اگر فرض کنیم که هر 100 بار ارزیابی تابع معیار انتخاب ما یک ثانیه برای کامپیوتر طول بکشد، تقریباً 9 دقیقه طول می کشد که جواب مسئله (بهترین دسته سه تایی از ورودی ها) را پیدا کنیم. این امر امکان پذیر است.حال فرض کنید، ما بخواهیم یک دسته 8 تایی از آن 70 تا انتخاب ممکن را داشته باشیم. تعداد انتخاب های ممکن تعداد انتخاب 8 از 70 است. یعنی:
70! / (8! * 62!) = 9.4404e+009

یعنی تقریباً 9 میلیارد انتخاب ممکن وجود دارد. باز اگر فرض کنیم که هر 100 بار ارزیابی تابع معیار انتخاب ما یک ثانیه برای کامپیوتر طول بکشد، تقریباً یک هزار و نود و دو (1092) روز یعنی تقریباً 3 سال طول می کشد که جواب مسئله (بهترین دسته 8 تایی از ورودی ها) را پیدا کنیم. 3 سال برای این انتخاب زمان کمی به نظر نمی رسد. به سادگی می تواد حدس زد که انتخاب 9، 10 و حتی 20 ویژگی چقدر طول می کشد.

یکی از روشهای فایق آمدن بر این مشکل استفاده از انتخاب مستقیم (Forward Selection) و انتخاب معکوس (Backward Selection) است. اما مشکل این روش ها این است که جواب به دست آمده از آنها ممکن است بسیار با جواب اصلی مسئله تفاوت داشته باشد. یک جایگزین مناسب برای الگوریتم های فوق می تواند الگوریتم های بهینه سازی تکاملی و در کنار آنها الگوریتم رقابت استعماری باشد. البته نسخه اولیه الگوریتم که برای مسائل بهینه سازی پیوسته می باشد، باید تغییراتی پیدا کند تا برای حل این مسئله گسسته مناسب شود.

شکل زیر انتخاب 8 ویژگی با الگوریتم رقابت استعماری را نشان می دهد. روش انتخاب مستقیم، به میزان خطای 0.0167 در زمان حدود 10 دقیقه رسیده است. در مقابل الگوریتم رقابت استعماری در حدود 30 دقیقه (نه سه سال!!) توانسته دسته از ورودی ها را پیدا کند که به خطای صفر می رسند!

 

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

… میخواستم بدونم که چگونه از الگوریتم استعماری میتونم در زمینه انتخاب اسلاید های مناسب زمانی (در مسئله پیش بینی سری های زمانی) یا همان روزهای قبل که در قسمت پیش بینی مثلا مصرف برق یا هر سری زمانی (بحث انتخاب ویژگی) استفاده کنم …

پاسخ:

با سلام.

مسئله انتخاب ویژگی به صورت عمومی یک مسئله باینری می باشد. در این حالت به تعداد ویژگی های کاندیدای اولیه بردار به صورت صفرو  یک در نظر می گیرید. صفر یعنی بودن یک ویژگی و یک یعنی نبودن آن. حال بردار بهینه را می یابید با استفاده از یک معیار مثلاً بهترین خطای تست.

لینک زیر کمی توضیح در این مورد می دهد.
http://www.icasite.info/2010/05/blog-post.html

نسخه های گسسته و باینری این الگوریتم را نیز می توانید به راحتی پیدا و یا ایجاد (با تغییر در کدهای اولیه) نمایید.

فیلم زیر نیز شاید مفید باشد.
http://www.icasite.info/2010/11/feature-selection.html

لینک زیر طبقه بندی مسائل بهینه سازی را ارائه می کند (تا حدی پاسخ سوال دوم شما).
http://www.icasite.info/2010/05/blog-post_31.html

پاسخ زیر را نیز به یک سوال مطرح شده دیگر ببینید.
پرسش:

آیا می توان از آی سی ای برای انتخاب ویژگی استفاده نمود؟ قدم های لازم چه هستند؟

پاسخ:

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

—————————————————————————————————————————————-
{1} برای انتخاب ورودی و ویژگی و دیسکریپتور عناوین مشابه زیر نیز در حوزه های مختلف به کار میرود:

Feature Selection
Input Selection
Descriptor Selection

_____________________________________________
نظرات شما در انتهای این پست برای سایر خوانندگان، بسیار مفید خواهد بود. می توانید نظر خود را با اکانت سرویس های مختلف و یا به عنوان ناشناس در این پست درج نمائید.
صرف زمان برای یادگیری اتلاف زمان نیست. سرمایه گذاری زمانی است.