در ادامه به معرفی نحوه کارکرد و آموزش و شبه کد این الگوریتم بهینه سازی پرداخته میشود. ترجمه کامل مقاله در همین سایت با عنوان ترجمه الگوریتم SINE COSINE برای حل مسائل بهینه سازی SCA قرار داده شده است. برای دانلود مقاله اصلی روی این لینک (+) کلیک کنید.
الگوریتم Sine Cosine
به طور کلی، روشهای بهینه سازی مبتنی بر جمعیت Population Based فرآیند بهینه سازی را با مجموعه راه حلهای تصادفی شروع میکنند. این مجموعه تصادفی، بارها و بارها توسط یک تابع هدف ارزیابی میشود و توسط مجموعهای از قوانین که هسته روش بهینه سازی است ، بهبود مییابد. از آنجا که تکنیکهای بهینه سازی مبتنی بر جمعیت به طور تصادفی به دنبال بهینه سازی مشکلات بهینه سازی هستند، هیچ تضمینی برای یافتن راه حل در یک دوره واحد وجود ندارد. با این وجود، با تعداد کافی راه حلهای تصادفی و مراحل بهینه سازی (تکرار)، احتمال یافتن بهینه سراسری افزایش مییابد.
صرف نظر از تفاوت بین الگوریتمها در زمینه بهینه سازی مبتنی بر جمعیت، معمولاً تقسیم فرآیند بهینه سازی در دو مرحله است:
- مرحله اکتشاف Exploration Phase
- مرحله بهره برداری Exploitation Phase
یک الگوریتم بهینه سازی در مرحله اکتشاف، راه حلهای تصادفی را با میزان بالایی از تصادف ترکیب میکند تا مناطق امیدوار کننده فضای جستجو را پیدا کند. در مرحله بهره برداری، با این حال، تغییرات تدریجی در راه حلهای تصادفی رخ میدهد و تغییرات تصادفی به طور قابل توجهی کمتر از مراحل موجود در اکتشاف هستند. در الگوریتم SCA، معادلات به روزرسانی موقعیت زیر برای هر دو مرحله پیشنهاد شده است:
که در آن Xit موقعیت فعلی در بعد r و در تکرار t است. r۱, r۲, r۳ عدد های تصادفی هستند. Pit موقعیت نقطه مقصد در بعد i است، و || مقدار مطلق را نشان میدهد و Xit+1 موقعیت جدید را نشان میدهد. این دو معادله برای استفاده به شرح زیر ترکیب شدهاند:
در این رابطه نیز r۴ یک عدد تصادفی بین صفر و یک است.
تشریح الگوریتم Sine Cosine
همانطور که معادلات فوق نشان میدهد، چهار پارامتر اصلی در SCA وجود دارد: r۱ ، r۲ ، r۳ و r۴. پارامتر r۱ مناطق موقعیت بعدی (یا جهت حرکت) را که میتواند در فضای بین جواب و مقصد یا خارج از آن باشد، دیکته میکند. پارامتر r۲ تعریف میکند که حرکت تا چه اندازه باید به سمت مقصد یا خارج باشد. پارامتر r۳ به منظور تأکید تصادفی (r3> 1) یا کم اهمیت (r3 <1) در تعیین فاصله، وزن مخصوصی را برای مقصد به شما میدهد. سرانجام ، پارامتر r4 به طور مساوی بین اجزای سینوسی و کسینوس در معادله (۳.۳) تغییر میکند.
در شکل بالا نشان داده شد که چگونه معادلات الگوریتم SCA فضای بین دو راه حل را در فضای جستجو تعیین میکنند. لازم به ذکر است که این معادله را میتوان به ابعاد بالاتر نیز گسترش داد گرچه یک مدل دو بعدی در شکل بالا نشان داده شده است.
الگوی چرخه ای عملکرد سینوس و کسینوس
الگوی چرخه ای عملکرد سینوس و کسینوس اجازه میدهد تا یک جواب مجدداً در اطراف جواب دیگری قرار گیرد. این امر میتواند بهره برداری از فضای تعریف شده بین دو راه حل را تضمین کند. برای کاوش در فضای جستجو، راه حلها باید بتوانند در خارج از فضای بین مقصد مربوطه نیز جستجو کنند. این امر میتواند با تغییر دامنه عملکرد سینوس و کسین، همانطور که در شکل زیر نشان داده شده است، حاصل شود.
یک مدل مفهومی از اثرات سینوس و کسینوس با دامنه در [-۲ ، ۲] در شکل زیر نشان داده شده است. فضای بین خود جواب و راه حل دیگر. حالت تصادفی نیز با تعیین یک عدد تصادفی برای r۲ در [۰ ، ۲π] در معادله (۳.۳) بدست میآید. بنابراین، این مکانیسم کاوش در فضای جستجو را تضمین میکند.
یک الگوریتم باید بتواند اکتشاف و بهره برداری را متعادل کند تا مناطق امیدوارکننده فضای جستجو را پیدا کند و در نهایت به یک جواب سراسری مطلوب همگرایی کند. به منظور تعادل اکتشاف و بهره برداری، دامنه سینوس و کسینوس در معادله. (۳.۱) به (۳.۳) با استفاده از معادله زیر به صورت انطباقی تغییر مییابد:
که در این رابطه t تکرار فعلی، T حداکثر تعداد تکرار و یک a ثابت است. شکل زیر نشان میدهد که چگونه این معادله دامنه عملکرد سینوس و کوسینوس را در طول تکرارها کاهش میدهد.
ممکن است که الگوریتم SCA فضای جستجو را هنگامی که محدوده عملکردهای سینوسی و کسینوسی در (۱،۲] و [-۲ ، -۱) باشد، بررسی میکند. با این حال، این الگوریتم از فضای جستجو سوءاستفاده می کند که دامنهها در فاصله بین ۱- و ۱ قرار داشته باشند.
شبه کد الگوریتم SCA
شبه کد الگوریتم SCA در شکل زیر ارائه شده است:
الگوریتم SCA فرایند بهینه سازی را با مجموعهای از راه حلهای تصادفی شروع میکند. سپس این الگوریتم بهترین راه حلهای به دست آمده را ذخیره میکند و آنها را به عنوان مقصد اختصاص میدهد و راه حلهای دیگر را نیز با توجه به آن به روز میکند. در همین حال، محدوده عملکردهای سینوسی و کوسینوسی به روز شده است تا با افزایش شمارنده تکرار، بر بهره برداری از فضای جستجو تأکید شود.
الگوریتم SCA هنگامی که پیشخوان تکرار بالاتر از حداکثر تعداد تکرارها بطور پیش فرض باشد، روند بهینه سازی را خاتمه میدهد. اما هر شرایط خاتمه دیگر میتواند از جمله حداکثر تعداد ارزیابی عملکرد یا صحت بهینه ساسری به دست آمده در نظر گرفته شود.
عملکرد الگوریتم SCA
با عملگرهای فوق الگوریتم SCA به لحاظ نظری قادر است بهینه سازی سراسری را به دلایل زیر تعیین کند:
- الگوریتم SCA مجموعهای از راه حلهای تصادفی را برای یک مسئله معین ایجاد و بهبود میدهد، بنابراین ذاتاً از اکتشاف زیاد و جلوگیری از بهینه محلی در مقایسه با سایر الگوریتمهای مبتنی بر یک راه حل سود میبرد.
- هنگامی که عملکردهای سینوسی و کسینوسی مقادیر بزرگتر از ۱ یا کمتر از -۱ را بازگردانند، مناطق مختلف فضای جستجو کاوش میشود.
- هنگامی که مقدار برگشتی سینوس و کسینوس بین -۱ و ۱ باشد، مناطق امیدوارکننده فضای جستجو مورد کاوش قرار میگیرند.
- الگوریتم SCA با استفاده از تغییر دامنه تطبیقی در عملکردهای سینوسی و کسینوس، به راحتی از اکتشاف به بهره برداری منتقل میشود.
- بهترین تقریب بهینه سراسری در متغیرهایی به عنوان مقصد ذخیره میشود و هرگز در هنگام بهینه سازی از بین نمیرود.
- از آنجا که راه حلها همیشه مواضع خود را در مورد بهترین راه حل به دست آمده تا کنون به روز میکنند، تمایل به بهترین مناطق فضاهای جستجو در هنگام بهینه سازی وجود دارد.
- از آنجا که الگوریتم SCA، مسئله بهینه سازی را به عنوان جعبههای سیاه در نظر میگیرد، به راحتی میتواند در زمینههای مختلف مشروط به فرمولاسیون مناسب استفاده شود.