<p> </p><p> </p><p> </p><p> </p><p>چندجملهای</p><p> </p><p> </p><p> </p><p> </p><p> </p><p>تابع پایه شعاعی(RBF)<sup>[83]</sup></p><p> </p><p> </p><p> </p><p> </p><p> </p><p>زیگموئید</p><p> </p><p> </p><p> </p><p> </p><p> </p><p>معمولاً کرنلها یا تابع ضرب داخلی فضای ورودی هستند و یا تابع فاصله: ، . (در ضرب داخلی هم به نحوی فاصله بردارها مستتر است). با دانستن یک تخمین از فاصله بین دو نقطه در فضای اصلی، میتوان وابستگی آنها را در فضای تکمیلی (فضای ویژگی) به دست آورد. قابلیت بالای استفاده از کرنل غیرخطی به جای حاصلضرب داخلی، آنجا معلوم میشود که دریابیم ابعاد فضای ویژگی، بسیار بزرگ است. مثلا برای یک کرنل چندجملهای با رابطه (&
(۲-۳۵)
در رابطه ۲-۳۵، پارامتری است برای تنظیم شعاع جستوجو؛ هر چه این مقدار کوچکتر باشد، جستوجوها به خط واصل بین کلونی و امپراطوری نزدیکتر است. با در نظر گرفتن واحد رادیان برای Ɵ، معمولاً مقدار برای Ɵ در نظر گرفته می شود.
فاز سوم: انقلاب
بروز انقلاب، تغییرات ناگهانی را در ویژگیهای اجتماعی-سیاسی یک کشور ایجاد می کند. در الگوریتم رقابت استعماری، انقلاب با جابجایی تصادفی یک کشور مستعمره به یک موقعیت تصادفی جدید مدلسازی می شود. این عملگر شبیه عملگر Mutation در الگوریتم ژنتیک میباشد.
انقلاب از دیدگاه الگوریتمی باعث می شود کلیت حرکت تکاملی از گیر کردن در درههای محلی بهینگی نجات یابد. این عامل در بعضی موارد باعث بهبود موقعیت یک کشور شده و آن را به یک محدوده بهینگی بهتری میبرد[۱۲۵]. در شکل۲- ۳۰ شمای کلی نحوه اعمال سیاست انقلاب نشان داده شده است.
شکل۲- ۳۰ اعمال سیاست انقلاب
فاز چهارم: رقابت درون امپراطوری
پس از اعمال سیاست جذب و انقلاب، ممکن است بعضی از مستعمرات به خودباوری رسیده و موقعیتی بهتر از استعمارگر خود کسب کنند(میزان تابع هزینه آنها در موقعیت جدید بهتر از میزان تابع هزینه استعمارگر باشد). در این حالت، کشور استعمارگر و کشور مستعمره، جای خود را باهمدیگر عوض کرده و الگوریتم با کشور استعمارگر در موقعیت جدید ادامه یافته و این بار این کشور امپریالیست جدید است که شروع به اعمال سیاست همگونسازی بر مستعمرات خود میکند[۱۲۵]. نحوه جابجایی موقعیت مستعمره و استعمارگر در شکل۲- ۳۱ نشان داده شده است.
شکل۲- ۳۱ جابجایی موقعیت استعمارگر و مستعمره
فاز پنجم: رقابت استعماری(بین امپراطوری)
این فاز اصلیترین مرحله در ICA است. همانگونه که قبلاً نیز بیان شد، هر امپراطوری که نتواند بر قدرت خود بیفزاید و قدرت رقابت خود را از دست بدهد، در جریان رقابتهای امپریالیستی، حذف خواهد شد. این حذف شدن، به صورت تدریجی اتفاق میافتد. بدین معنی که بهمرورزمان، امپراطوریهای ضعیف، مستعمرات خود را از دست داده و امپراطوریهای قویتر، این مستعمرات را تصاحب کرده و بر قدرت خویش میافزایند. قدرت یک امپراطوری به صورت قدرت کشور استعمارگر، به اضافه درصدی از قدرت کل مستعمرات آن تعریف میشود(رابطه ۲-۳۶)[۱۲۵].
(۲-۳۶)
در الگوریتم رقابت استعماری، امپراطوری در حال حذف، ضعیفترین امپراطوری موجود است. بدین ترتیب، در تکرار الگوریتم، یک یا چند مورد از ضعیفترین مستعمرات ضعیفترین امپراطوری انتخاب شده و برای تصاحب این مستعمرات، رقابتی میان کلیه امپراطوریها ایجاد می شود. مستعمرات مذکور، لزوماً توسط قویترین امپراطوری، تصاحب نخواهند شـد، بلکه امپراطـوریهای قـویتر، احتمـال تصاحـب بیشتـری دارند[۱۲۵]. فرایند تخصیص مستعمرات یک امپراطوری بین سایر امپراتوریها بهوسیله الگوریتمهایی نظیر چرخ رولت و انتخاب مسابقهای قابل پیادهسازی است.
شکل۲- ۳۲ رقابت استعماری
همانگونه که در شکل۲- ۳۲ نشان داده شده است، امپراطوری ۱ ضعیفترین امپراطوری بوده و سایر امپراتوریها بدنبال جذب مستعمرات آن میباشند. احتمال تصاحب مستعمرات، متناسب با قدرت هر امپراطوری است.
فاز ششم: سقوط امپراتوریهای ضعیف
در جریان رقابتهای امپریالیستی، خواه ناخواه، امپراتوریهای ضعیف به تدریج ضعیف و ضعیفتر شده تا جاییکه دیگر هیچ مستعمرهای نداشته باشد و سقوط می کند. در نسخه ابتدایی الگوریتم رقابت استعماری پیشنهاد شده است که با سقوط یک استعمارگر، آن استعمارگر حذف شود(شکل۲- ۳۳)؛ امّا در نسخههای پیشرفته ICA پیشنهاد شده است که استعمارگر سقوط کرده نیز بهعنوان یک مستعمره نگاشت شود که سایر امپراتوریها قادر به جذب آن میباشند.
شکل۲- ۳۳ سقوط امپراطوری ها در روند چرخه الگوریتم رقابت استعماری
در ادامه تعدادی از مطالعاتی که از الگوریتم رقابت استعماری در فرایند خوشهبندی استفاده کرده اند مورد بررسی قرار گرفته است.
;nbsp; ) ثابت میشود که اگر بخواهیم ضرب داخلی را در فضای ویژگی انجام دهیم؛ نیاز به محاسباتی از درجه خواهد داشت که <em>n</em> همان بعد فضای ورودی است[۴۲]. در صورتی که در همین شرایط محاسبه کرنل تنها محاسباتی از درجه <em>n</em> خواهد داشت. مثلا اگر بخواهیم از یک نگاشت درجه ۴ یا ۵ استفاده کنیم و بردارهای ورودی ما ۲۰۰ بعدی باشند، ممکن است لازم باشد یک ابرصفحه در فضایی یک میلیارد بعدی بسازیم. بنابراین با بهره گرفتن از کرنلها میتوان یک سطح تصمیمگیر در فضایی با ابعاد بسیار بالا ساخت ولی درگیر محاسبات آن نشد. بعد از اینکه یک تابع کرنل مناسب انتخاب شد، با انجام محاسباتی، تابع تصمیمگیری به صورت زیر به دست خواهد آمد:<br /><a href="https://nefo.ir/"><img class="alignnone wp-image-64″ src="https://ziso.ir/wp-content/uploads/2021/10/THESIS-PAPER-11.png” alt="مقاله - پروژه” width="328″ height="103″ /></a></p><p> </p><p> </p><p>(۲-۲۳)</p><p> </p><p> </p><p> </p><p> </p><p> </p><p>با بهره گرفتن از توابع کرنل مختلف، میتوان روشهای فراگیری مختلفی با انواع سطوح تصمیمگیری دلخواه، ساخت.<br /><strong>۲-۴-۳-۲- SVM چند کلاسه</strong><sup>[۸۴]</sup> [۴۲]<br />از آنجایی که SVM یک دستهبندی کننده دودویی است؛ بنابراین برای دستهبندی چندین دسته، نیاز است که مساله به تعداد زیادی دستهبندی کننده دو تایی تبدیل شود. به طور کلی دو راه برای حل مسأله<em>q</em> دستهای، برای SVM ها وجود دارد: روش "یکی در برابر همه"<sup>[۸۵]</sup> و روش "یک به یک"<sup>[۸۶]</sup>.<br />در روش اول به تعداد <em>q</em> دستهبندی کننده SVM، ساخته میشوند که هر کدام از آنها یک دسته را از بقیه دسته ها جدا میکنند. برای تست یک داده ورودی، تمامی توابع (<em>q</em> تابع) تصمیمگیر، محاسبه میشوند و نهایتا در مقایسه نتایج، آن دستهای انتخاب میشود که مقدار تابع برای آن از بقیه بیشتر بوده است.<br />در روش دوم تمام حالتهای ممکن انتخاب شدن دو دسته برای مقایسه با هم( )، در نظر گرفته شده و به ازای هر حالت، ابر صفحه تفکیکگر ساخته میشود. در این روش هر SVM تنها بین دو دسته مشخص تصمیمگیری میکند بنا به این روش برای<em>q</em> دسته، به آموزش تعداد طبقهبندی کنندهی SVM نیاز خواهیم داشت.<br /><strong>۲-۴-۴- الگوریتم بهینهسازی فاخته (COA)</strong><sup> [۸۷]</sup><br />جستجوی فاخته الگوریتمی مبتنی بر جستجو گروهی است که اولین بار، در سال ۲۰۰۹ توسط یانگ و دب، توسعه یافته است[۴۳]. پس از آن در سال ۲۰۱۱ الگوریتم بهینهسازی فاخته توسط رامین رجبیون ارائه گردید[۴۴]. ایده اصلی این الگوریتم الهام از تخمگذاری فاختهها است که در آن شبیهسازی رفتار فاختهها با پرواز لووی<sup>[۸۸]</sup> که نوعی جستجوی تصادفی است؛ جهت بهینهسازی مسائل مهندسی ترکیب میگردد.<br /><strong>۲-۴-۴-۱- زندگی و تخمگذاری فاخته</strong><br />برخی از پرندگان هرگز برای خود لانه نمیسازند و به جای آن تخمهای خود را در لانه سایر انواع پرندگان قرار میدهند و صبر میکنند تا آنها در کنار تخمهای خود به تخمهای این پرندگان نیز رسیدگی کنند. این پرندگان در اصطلاح "پارازیت های اولاد" نامیده میشوند. فاخته مشهورترین پارازیت اولادی هستند. فاخته مادر یکی از تخمهای پرنده مادر میزبان را از بین میبرد و تخم خود را لابلای تخمهای دیگر موجود در لانه میزبان قرار میدهد. فاختهها لانههای انواع گونههای پرندگان را آلوده به تخم خود میکنند و این کار را به دقت و با تقلید از رنگ و الگوی تخمهای موجود در هر لانه انجام میدهند. هر فاختهی ماده روی نوع خاصی از گونه پرندگان تخصص مییابد. در واقع فاختهها به طور پیوسته تقلید خود را از تخمهای لانههای هدف بهبود میبخشند و پرندگان میزبان هم روشهای شناسایی تخمهای بیگانه را یاد میگیرند.<br />جوجههای فاخته، زودتر از تخمهای پرنده میزبان از تخم بیرون میآیند و زودتر هم رشد میکنند. در اکثر موارد جوجهی فاخته، تخمها و یا جوجههای پرنده میزبان را از لانه بیرون میاندازند. این مساله کاملاً غریزی است. فاختههای پارازیت انداز به گروههایی تقسیم میشوند و هر گروه روی پرنده میزبان خاصی تخصص مییابد. ثابت شده است که هر گروه از فاختهها به صورت ژنتیکی با گروه دیگر اختلاف دارند. در واقع این پرنده تنبل به زیبایی هرچه تمامتر سایر پرندگان را مجبور به شرکت در بقای خود میکند. شکل ۲-۹ نمایی از این رفتار فاخته را نشان میدهد.</p><p>شکل ۲-۹- رفتار فاخته در طبیعت[۴۳].<br /><strong>۲-۴-۴-۲- جزییات الگوریتم بهینهسازی الهام گرفته از فاخته[۴۴]</strong><br />همانند سایر الگوریتمهای تکاملی COA هم با یک جمعیت اولیه متشکل از فاختهها کار خود را شروع میکند. این جمعیت از فاختهها تعدادی تخم دارند که آنها را در لانه تعدادی پرندهی میزبان خواهند گذاشت. تعدادی از این تخمها که شباهت بیشتری به تخمهای پرنده میزبان دارند شانس بیشتری برای رشد و تبدیل شدن به فاخته بالغ خواهند داشت. سایر تخمها توسط پرنده میزبان شناسایی شده و از بین میروند. میزان تخمهای رشد یافته، مناسب بودن لانههای آن منطقه را نشان میدهند. هرچه تخمهای بیشتری در یک ناحیه قادر به زیستن باشند؛ به همان اندازه سود (تمایل) بیشتری به آن منطقه اختصاص مییابد. بنابراین موقعیتی که در آن بیشترین تعداد تخمها نجات یابند پارامتری خواهد بود که COA قصد بهینه سازی آن را دارد. پس از آنکه جوجهها از تخم درآمدند و به فاخته بالغ تبدیل شدند؛ جوامع و گروههایی تشکیل میدهند. هر گروه منطقه سکونت خود را برای زیست دارد. بهترین منطقه سکونت تمام گروهها مقصد بعدی فاختهها در سایر گروهها خواهد بود. تمام گروهها به سمت بهترین منطقه موجود فعلی مهاجرت میکنند. هر گروه در منطقهای نزدیک بهترین موقعیت فعلی ساکن میشود. با در نظر گرفتن تعداد تخمی که هر فاخته خواهد گذاشت و همچنین فاصله فاختهها از منطقه بهینه فعلی برای سکونت تعدادی شعاع تخمگذاری محاسبه شده و شکل میگیرد. سپس فاختهها شروع به تخمگذاری تصادفی در لانههایی داخل شعاع تخمگذاری خود میکنند. این فرایند تا رسیدن به بهترین محل برای تخمگذاری (منطقه با بیشترین سود) ادامه مییابد. این محل بهینه، جایی است که بیشترین تعداد فاختهها در آن گرد میآیند. برای حل یک مساله بهینه سازی لازم است تا مقادیر متغیرهای مساله به فرم یک آرایه شکل گیرند. در GA و PSO این آرایه ها با نام های "کروموزوم" و "موقعیت ذرات" مشخص می شوند؛ ولی در COA این آرایه، <em>habitat</em> یا "محل سکونت" نامیده میشوند. در یک مسالهی بهینه سازی بعدی یک <em>habitat</em> یک آرایه خواهد بود؛ که موقعیت فعلی زندگی فاختهها را نشان میدهد. این آرایه به شکل زیر تعریف می شود:</p><p> </p><p> </p><p>(۲-۲۴)</p><p> </p><p> </p><p> </p><p> </p><p> </p><p>میزان مناسب بودن (یا مقدار سود) در <em>habitat</em> فعلی با ارزیابی تابع سود (fp) در <em>habitat</em> به دست می آید. بنابراین:</p>