بهینه سازی با الگوریتم ژنتیک برای مسایل با متغیرهای گسسته
الگوریتم ژنتیک به عنوان یکی از قوی ترین روش های بهینه سازی، مورد استفاده از بسیاری از محقان برای حل مسایل ریاضی بر پایه بهینه سازی است. به همین خاطر گروه آموزشی الکاران توجه زیادی به این الگوریتم بهینه سازی داشته است. در این راستا مقالات متعددی ازجمله آموزش فراخوانی الگوریتم ژنتیک در متلب و آموزش استفاده از الگوریتم ژنتیک در متلب (gatool یا optimtool) در الکاران منتشر شده است. در این آموزش قصد داریم نحوه به کارگیری الگوریتم ژنتیک را برای مسایل بهینه سازی که دارای متغیرهای گسسته هستند، بررسی و یاد بگیریم.
برای به کارگیری الگوریتم ژنتیک در مسایل با متغیرهای گسسته روش های متفاوتی وجود دارد که یکی از ساده ترین و در عین حال کاربردی ترین روش ها را در این آموزش معرفی خواهیم کرد. برای اینکه این آموزش را به راحتی پیش ببریم، ابتدا بهتر است که به کارگیری الگویتم ژنتیک را برای متغیرهای پیوسته که در این مقاله آمده است یاد بگیرید.
یکی از راههای سادهای که میتوانیم در بهینهسازی توسط الگوریتم ژنتیک در متلب، دادههای گسسته یا به عبارت بهتر متغیرهای گسسته را در بهینهسازی الگوریتم ژنتیک وارد کنیم، استفاده از توابعی مانند جز صحیح، روند به بالا و یا روند به پایین هست. به این صورت که در تولباکس الگوریتم ژنتیک به همین صورت که در آموزش فراخوانی الگوریتم ژنتیک در متلب یا آموزش استفاده از الگوریتم ژنتیک در متلب (gatool یا optimtool) آمده است عمل میکنیم ولی در داخل تابعی که برای تابع هدف نوشتهایم قبل از به کاربردن متغیرهای بهینهسازی (x(1) و x(2)) در تابع هدف (در اینجا معادله F ) از مقادیر متغیرهایی که میخواهیم به صورت گسسته در نظر گرفته شوند با دستور زیر روند (round) میگیرم و این کدها را به ابتدای تابع هدف اضافه میکنیم (در این مثال توضیحی فرض میشود که هر دو متغیر x(1) و x(2) گسسته هستند):
x(1)=round(x(1)); x(2)=round(x(2)); |
در این صورت با اینکه متغیرهای x(1) و x(2) در تولباکس الگوریتم ژنتیک به صورت گسسته تعریف نشدهاند، ولی در تابع elecaranfun به صورت گسسته مورد استفاده قرار گرفتهاند. اگر با این تغییرات الگوریتم ژنتیک را اجرا کنیم جوابهای زیر به دست میآیند:
x(1)=3.33e-16
x(2)=-2.500
ولی چون ما روند متغیرها را در نظر گرفتیم، روند جوابهای به دستآمده جواب نهایی موردنظر ما هستند. پس جوابهای زیر به عنوان مقادیر نهایی جواب الگوریتم ژنتیک برای تابع F با متغیرهای گسسته خواهند بود:
x(1)=0
x(2)=-2
که همانطور مشخص است خیلی نزدیک به جوابهای به دستآمده در حالت درنظرگیری متغیر پیوسته در مثال فراخوانی الگوریتم ژنتیک در متلب هستند.
ضمیایم بهینه سازی با الگوریتم ژنتیک برای مسایل با متغیرهای گسسته در این قسمت قابل دسترس هستند.
امیدواریم این آموزش موردپسند شما واقع شده باشد. با نظرات خود ما را در غنیترکردن مطالب سایت یاری کنید.
سلام و عرض ادب؛
برای استفاده از فایل کدهای مقاله پسوورد را نیاز دارد، خواهشمندم آنرا در اختیار بنده قرار دهید.
با تشکر فراوان.
سلام
پسورد فایل ها www. elecaran.ir است.