اموزش الگوریتم واکنش شیمیایی یا CRO

ین الگوریتم در سال ۲۰۱۰ توسط اقای Albert در مقاله ای با عنوان
Chemical-Reaction-Inspired Metaheuristic for Optimization
منتشر و معرفی شد.
این الگوریتم از فرایند و واکنش‌های مولکولی الهام گرفته شده است.

هر مولکول مجموعه ای از اتم‌ها و خواصی مانند تعداد و …. می‌باشد. ما هر مولکول را با یک پروفایل نمایش میدهیم که ویژگی‌های آن مولکول را نشان میدهد.
این ویژگی‌ها عبارتند از :
W : که نشان دهنده ساختار مولکول یا همان راه حل می‌باشد .
PE : برای هر مولکول یک ویژگی انرژی PE تعریف میکنیم که میزان شایستگی هر مولکول را نمایش میدهد.
KE : برای هر مولکول یک ویژگی انرژی KE تعریف میکنیم
numHit : برای هر مولکول یک ویژگی numHit تعریف میکنیم که تعداد برخوردهای هر مولکول را مشخص میکند
minHit : برای هر مولکول یک ویژگی minHit تعریف میکنیم که حداقل تعداد برخورد را مشخص میکند
localMin : برای هر مولکول یک ویژگی localMin تعریف میکنیم که مینیمم ترین جوابی که اخیرا این مولکول مشاهده کرده را نگهداری میکند

همانطور که میدانید الگوریتم واکنش شیمیایی یا الگوریتم Chemical Reaction Optimization یک الگوریتم تکاملی است که از مدل کردن مولکولها و انرژی مولکولی و برخوردهای بین مولکولی الهام گرفته شده است.

مراحل کار الگوریتم واکنش شیمیایی (CRO) بصورت زیر می‌باشد
در مرحله اول پارامترهای الگوریتم واکنش شیمیایی را مقدار دهی میکنیم
در مرحله بعد ساخت جمعیت اولیه را انجام میدهیم . برای این کار ابتدا یک ساختار یا پروفایل برای هر مولکول تعریف میکنیم و در ان مشخص میکنیم که هر مولکول چه ویژگی‌هایی را دارد
در مرحله بعد میرویم به سراغ حلقه اصلی الگوریتم که الگوریتم ان بصورت زیر می‌باشد:
تا وقتی که FE کمتر از FELimit می‌باشد مراحل زیر را تکرار کن:
یک عدد تصادفی بین صفرویک ایجاد کن ، اگر این عدد بیشتر از مقدار MoleColl می‌باشد یا اندازه جمعیت ۱ باشد به مرحله ۲ برو در غیراینصورت به مرحله ۳ برو
عمل تجزیه (Decomposition) یا برخورد به دیواره (OnWall) را بر روی یک مولکول اعمال کن، روال کار بصورت زیر است
الف) یک مولکول را بصورت تصادفی از بین جمعیت انتخاب کن
ب) اگر شرط تجزیه برقرار است : عمل تجزیه را انجام بده و دومولکول جدید ایجاد کن. اگر عمل تجزیه موفقیت امیز بود مولکول اولیه را از جمعیت حذف کن و دو مولکول جدید را در جمعیت قرار بده
ج) اگر شرط تجزیه برقرار نبود عمل برخورد به دیواره را بر روی مولکول انتخاب شده انجام بده و ان را بروزرسانی کن
با انجام مرحله ۲ به مرحله ۴ برو
عمل ترکیب یا برخورد دومولکول را انجام بده روال کار بصورت زیر است
الف) دومولکول را به تصادف از جمعیت انتخاب کن
ب)اگر شرط ترکیب برقرار است ، عمل ترکیب را روی دو مولکول اعمال کن و دو مولکول جدید ایجاد کن، اگر عمل ترکیب با موفقیت اعمال شد ، دو مولکول اولیه را از جمعیت حذف کن و مولکول جدید را به جمعیت اضافه کن
ج) اگر شرط ترکیب برقرار نیست عمل برخورد بین مولکولی را عمال کن و به این ترتیب دو مولکول را بروز کن
بعد از انجام این مرحله به مرحله ۴ برو
در این مرحله بین تمام جمعیت جستجو میکنیم و اگر مولکولی مقدار Pe کمتر از مقدار globalMin داشته باشد ان را بعنوان بهترین جواب در نظر میگیریم
به مرحله ۱ برو

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

2 نظر در “اموزش الگوریتم واکنش شیمیایی یا CRO”

پیام بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

1 + seven =