الگوریتم Sine Cosine
الگوریتم Sine Cosine یا به زبان خودمانی الگوریتم Sin Cos به اختصار SCA یک الگوریتم متاهیورستیک یا فرا ابتکاری است. این الگوریتم توسط سید علی میرجلیلی (Seyedali Mirjalili) در سال 2016 در مقاله ای با عنوان SCA: A Sine Cosine Algorithm for solving optimization problems در ژورنال Knowledge-Based Systems پایگاه علمی Elsevier ارائه شده است. در ادامه به معرفی نحوه کارکرد و آموزش و شبه کد این الگوریتم بهینه سازی پرداخته می شود. ترجمه کامل مقاله در همین سایت با عنوان ترجمه الگوریتم SINE COSINE برای حل مسائل بهینه سازی SCA قرار داده شده است. برای دانلود مقاله اصلی روی این لینک (+) کلیک کنید.
الگوریتم Sine Cosine
به طور کلی، روش های بهینه سازی مبتنی بر جمعیت Population Based فرآیند بهینه سازی را با مجموعه راه حل های تصادفی شروع می کنند. این مجموعه تصادفی، بارها و بارها توسط یک تابع هدف ارزیابی می شود و توسط مجموعه ای از قوانین که هسته روش بهینه سازی است ، بهبود می یابد. از آنجا که تکنیک های بهینه سازی مبتنی بر جمعیت به طور تصادفی به دنبال بهینه سازی مشکلات بهینه سازی هستند، هیچ تضمینی برای یافتن راه حل در یک دوره واحد وجود ندارد. با این وجود، با تعداد کافی راه حل های تصادفی و مراحل بهینه سازی (تکرار)، احتمال یافتن بهینه سراسری افزایش می یابد.
صرف نظر از تفاوت بین الگوریتم ها در زمینه بهینه سازی مبتنی بر جمعیت، معمولاً تقسیم فرآیند بهینه سازی در دو مرحله است:
- مرحله اکتشاف Exploration Phase
- مرحله بهره برداری Exploitation Phase
یک الگوریتم بهینه سازی در مرحله اکتشاف، راه حل های تصادفی را با میزان بالایی از تصادف ترکیب می کند تا مناطق امیدوار کننده فضای جستجو را پیدا کند. در مرحله بهره برداری، با این حال، تغییرات تدریجی در راه حل های تصادفی رخ می دهد، و تغییرات تصادفی به طور قابل توجهی کمتر از مراحل موجود در اکتشاف هستند. در الگوریتم SCA، معادلات به روزرسانی موقعیت زیر برای هر دو مرحله پیشنهاد شده است:
که در آن Xit موقعیت فعلی در بعد r و در تکرار t است. r1, r2, r3 عدد های تصادفی هستند. Pit موقعیت نقطه مقصد در بعد i است ، و || مقدار مطلق را نشان می دهد و Xit+1 موقعیت جدید را نشان می دهد. این دو معادله برای استفاده به شرح زیر ترکیب شده اند:
در این رابطه نیز r4 یک عدد تصادفی بین صفر و یک است.
تشریح الگوریتم Sine Cosine
همانطور که معادلات فوق نشان می دهد، چهار پارامتر اصلی در SCA وجود دارد: r1 ، r2 ، r3 و r4. پارامتر r1 مناطق موقعیت بعدی (یا جهت حرکت) را که می تواند در فضای بین جواب و مقصد یا خارج از آن باشد، دیکته می کند. پارامتر r2 تعریف می کند که حرکت تا چه اندازه باید به سمت مقصد یا خارج باشد. پارامتر r3 به منظور تأکید تصادفی (r3> 1) یا کم اهمیت (r3 <1) در تعیین فاصله، وزن مخصوصی را برای مقصد به شما می دهد. سرانجام ، پارامتر r4 به طور مساوی بین اجزای سینوسی و کسینوس در معادله (3.3) تغییر می کند.
در شکل بالا نشان داده شد که چگونه معادلات الگوریتم SCA فضای بین دو راه حل را در فضای جستجو تعیین می کنند. لازم به ذکر است که این معادله را می توان به ابعاد بالاتر نیز گسترش داد گرچه یک مدل دو بعدی در شکل بالا نشان داده شده است.
الگوی چرخه ای عملکرد سینوس و کسینوس
الگوی چرخه ای عملکرد سینوس و کسینوس اجازه می دهد تا یک جواب مجدداً در اطراف جواب دیگری قرار گیرد. این امر می تواند بهره برداری از فضای تعریف شده بین دو راه حل را تضمین کند. برای کاوش در فضای جستجو ، راه حل ها باید بتوانند در خارج از فضای بین مقصد مربوطه نیز جستجو کنند. این امر می تواند با تغییر دامنه عملکرد سینوس و کسین ، همانطور که در شکل زیر نشان داده شده است ، حاصل شود.
یک مدل مفهومی از اثرات سینوس و کسینوس با دامنه در [-2 ، 2] در شکل زیر نشان داده شده است. فضای بین خود جواب و راه حل دیگر. حالت تصادفی نیز با تعیین یک عدد تصادفی برای r2 در [0 ، 2π] در معادله (3.3) بدست می آید. بنابراین، این مکانیسم کاوش در فضای جستجو را تضمین می کند.
یک الگوریتم باید بتواند اکتشاف و بهره برداری را متعادل کند تا مناطق امیدوارکننده فضای جستجو را پیدا کند و در نهایت به یک جواب سراسری مطلوب همگرایی کند. به منظور تعادل اکتشاف و بهره برداری ، دامنه سینوس و کسینوس در معادله. (3.1) به (3.3) با استفاده از معادله زیر به صورت انطباقی تغییر می یابد:
که در این رابطه t تکرار فعلی، T حداکثر تعداد تکرار و یک a ثابت است. شکل زیر نشان می دهد که چگونه این معادله دامنه عملکرد سینوس و کوسینوس را در طول تکرارها کاهش می دهد.
ممکن است که الگوریتم SCA فضای جستجو را هنگامی که محدوده عملکردهای سینوسی و کسینوسی در (1،2] و [-2 ، -1) باشد، بررسی می کند. با این حال، این الگوریتم از فضای جستجو سوءاستفاده می کند که دامنه ها در فاصله بین 1- و 1 قرار داشته باشند.
شبه کد الگوریتم SCA
شبه کد الگوریتم SCA در شکل زیر ارائه شده است:
الگوریتم SCA فرایند بهینه سازی را با مجموعه ای از راه حل های تصادفی شروع می کند. سپس این الگوریتم بهترین راه حل های به دست آمده را ذخیره می کند و آنها را به عنوان مقصد اختصاص می دهد و راه حل های دیگر را نیز با توجه به آن به روز می کند. در همین حال ، محدوده عملکردهای سینوسی و کوسینوسی به روز شده است تا با افزایش شمارنده تکرار، بر بهره برداری از فضای جستجو تأکید شود. الگوریتم SCA هنگامی که پیشخوان تکرار بالاتر از حداکثر تعداد تکرارها بطور پیش فرض باشد، روند بهینه سازی را خاتمه می دهد. اما هر شرایط خاتمه دیگر می تواند از جمله حداکثر تعداد ارزیابی عملکرد یا صحت بهینه ساسری به دست آمده در نظر گرفته شود.
پاورپوینت الگوریتم SCA
پاورپوینت آماده الگوریتم SCA در 20 اسلاید در قالب ppt. یا pptx. با قابلیت ویرایش برای ارائه درسی آماده دانلود میباشد. برای تهیه این پاورپوینت روی لینک زیر کلیک کنید.
عملکرد الگوریتم SCA
با عملگرهای فوق الگوریتم SCA به لحاظ نظری قادر است بهینه سازی سراسری را به دلایل زیر تعیین کند:
- الگوریتم SCA مجموعه ای از راه حل های تصادفی را برای یک مسئله معین ایجاد و بهبود می دهد، بنابراین ذاتاً از اکتشاف زیاد و جلوگیری از بهینه محلی در مقایسه با سایر الگوریتم های مبتنی بر یک راه حل سود می برد.
- هنگامی که عملکردهای سینوسی و کسینوسی مقادیر بزرگتر از 1 یا کمتر از -1 را بازگردانند ، مناطق مختلف فضای جستجو کاوش می شود.
- هنگامی که مقدار برگشتی سینوس و کسینوس بین -1 و 1 باشد ، مناطق امیدوارکننده فضای جستجو مورد کاوش قرار می گیرند.
- الگوریتم SCA با استفاده از تغییر دامنه تطبیقی در عملکردهای سینوسی و کسینوس ، به راحتی از اکتشاف به بهره برداری منتقل می شود.
- بهترین تقریب بهینه سراسری در متغیرهایی به عنوان مقصد ذخیره می شود و هرگز در هنگام بهینه سازی از بین نمی رود.
- از آنجا که راه حل ها همیشه مواضع خود را در مورد بهترین راه حل به دست آمده تا کنون به روز می کنند، تمایل به بهترین مناطق فضاهای جستجو در هنگام بهینه سازی وجود دارد.
- از آنجا که الگوریتم SCA، مسئله بهینه سازی را به عنوان جعبه های سیاه در نظر می گیرد، به راحتی می تواند در زمینه های مختلف مشروط به فرمولاسیون مناسب استفاده شود.
درباره امین جلیل زاده رزین
پایه گذار و موسس وب سایت آموزشی پی استور، مدرس دانشگاه فنی و حرفه ای، برنامه نویس و تحلیل گر سیستم، پژوهشگر در حوزه الگوریتم های ابتکاری، فرا ابتکاری، یادگیری ماشین، شبکه و پایگاه داده. ایشان در زبان های برنامه نویسی متعدد، نظیر ++C، سی شارپ، PHP ،Java، متلب MATLAB و Python تسلط و سابقه تدریس فعال دارند.