با توجه به معادله فوق در این مدل فرض می شود که هر بسته دارای فلیت، شامل یک فلیت سرآیند و فلیت داده میباشد. تعداد گامهای مسیر از مسیریاب مبدأ تا مسیریاب مقصد میباشد. اتلاف توان در واسط شبکه برای انتقال یک فلیت، توان تلف شده در مسیریاب برای انتقال یک فلیت و توان مصرفی ناشی از انتقال یک فلیت در پیوند میباشد.
بنابر مطالب فوق اتلاف توان کلی مطابق با معادله ۴-۸ میباشد:
۴‑۸
الگوریتم ژنتیک چند هدفه NSGA-II
در بسیاری از مسائل در دنیای واقعی، اهداف طراحی در تضاد با یکدیگرمیباشند و بهینهسازی در یکی از اهداف ممکن است منجر به ایجاد جوابهای غیرقابلقبول در سایر اهداف گردد. در نتیجه بهینه کردن تمامی اهداف به طور همزمان تقریباً غیرممکن است. بنابراین یک راه حل معقول برای مسایل چندهدفه، یافتن مجموعه ای از جوابها میباشد که هر کدام از آنها یکی از اهداف را در سطح قابلقبولی بهینه می کند بدون آنکه سایر اهداف را به طور کامل نقض نماید و یا تحت شعاع سایر جوابها قرار گیرد. در این راستا مفاهیم جدیدی مطرح می شود که در ادامه تعریفشدهاند:
غلبه[۱۵۶]: جواب قابلقبول x بر جواب قابلقبول y غلبه می کند اگر و فقط اگر در تمامی توابع هدف، x بدتر از y نباشد و حداقل در یکی از اهداف بهتر از y باشد .
بهینه[۱۵۷]: به جوابی بهینه گفته می شود که هیچیک از جوابها در فضای پاسخ بر آن غلبه نکند. یک جواب بهینه در هیچیک از توابع هدف قابل بهبود نخواهد بود مگر اینکه حداقل در یکی از اهداف دیگر بدتر شود.
نامغلوب[۱۵۸]: به جوابی نامغلوب گفته می شود که هیچ یک از جواب ها بر آن غلبه نکند.
مجموعه بهینه[۱۵۹]: مجموعه تمام جوابهای نامغلوب قابلقبول در فضای پاسخ به عنوان مجموعه بهینه شناخته می شود. هدف از مسایل بهینهسازی چندهدفه یافتن مجموعه بهینه میباشد.
جبهه بهینه[۱۶۰]: اگر تعدادی جواب به عنوان مجموعه بهینه وجود داشته باشد، ارزش این جوابها با توجه به هر یک از اهداف در فضای هدف به عنوان جبهه بهینه شناخته می شود[۷۷].
حال با توجه به مفاهیم فوق معرفی مختصری از الگوریتم ژنتیک چند هدفه نامغلوب ارائه میگردد.
سرینیواس و کالیانموی با اعمال تغییراتی در فرایند رتبه بندی توسط کلدبرگ [۷۷] روشی به نام “Non-dominated Sorting Genetic Algorithm” (NSGA) را ابداع کرده اند. الگوریتم NSGA مبتنی بر دستهبندی چند لایهی اعضا[۱۶۱] میباشد. قبل از انجام عملیات انتخاب، جمعیت بر اساس مقدار نامغلوب بودن[۱۶۲] رتبه بندی می شود: تمام اعضای نامغلوب باهم در یک دسته قرار میگیرند (البته به هر یک از اعضای این گروه مقدار شایستگی ثانویه[۱۶۳] که متناسب با اندازه جمعیت میباشد اختصاص خواهد یافت، تا در نتیجه برای این اعضا شانس انتخاب یکسانی ایجاد شود). برای حفظ تنوع[۱۶۴] در جمعیت این اعضای دستهبندی شده با مقدار شایستگی ثانویهای که به آنها اختصاص یافته است به اشتراک گذاشته میشوند. سپس صرف نظر از اعضای این گروه، لایه بعدی از جوابهای نامغلوب به دست می آید. این فرایند تا زمانی که تمام اعضای جمعیت دستهبندی شوند ادامه پیدا می کند. با کمک مکانیزمی اعضای جمعیت انتخاب میشوند به طوری که اعضای اولین جبهه[۱۶۵] بیشترین مقدار شایستگی و در نتیجه بیشترین شانس انتخاب را خواهند داشت. البته در این روش مکانیزم استفادهشده برای اشتراک شایستگی[۱۶۶] موجب ایجاد گلوگاه محاسباتی خواهد شد. با این وجود این روش نسبتاً موفق بوده و در سالهای مختلف مورد استفاده قرار گرفته است چرا که سریعاً به سمت جوابهای بهینه همگرا میشد. اما NSGA به دلیل روشی که برای دستهبندی اعضا استفاده مینمود بازدهی بسیار کمی داشت.
دِب و همکاران [۷۸] نسخه بهبودیافتهای از NSGA به نام NSGA-II را ارائه دادند. همان طور که در شکل ۴-۴ مشاهده می شود، الگوریتم NSGA-II جمعیتی از اعضا را بر اساس سطح نامغلوب[۱۶۷] ایجاد کرده و پس از آن رتبه بندی و مرتبسازی می کند. به عبارتی در مرحله مرتب سازی نامغلوب، اعضای جمعیت در داخل دستههایی قرار میگیرند به گونه ای که اعضای موجود در دسته اول، یک مجموعه کاملاً نامغلوب توسط دیگر اعضاء جمعیت فعلی می باشند. اعضای موجود در دسته دوم نیز بر همین مبنا تنها توسط اعضای دسته اول مغلوب شده و این روند به همین صورت در دسته های دیگر ادامه یافته تا به تمام اعضای موجود در هر دسته، یک رتبه بر مبنای شماره دسته اختصاص داده شود (شکل ۴-۵). سپس به منظور ایجاد منبع[۱۶۸] جدیدی از فرزندان عملگرهای تکاملی را اعمال می کند و سپس والدین و فرزندان را قبل از تقسیمبندی مخزن جدید با هم ترکیب می کند. سپس به هر یک از اعضا مقدار فاصله ازدحام[۱۶۹] را اختصاص میدهد. این معیار برای هر عضو در هر گروه محاسبه می شود و بیانگر میزان نزدیکی نمونه مورد نظر به دیگر اعضای جمعیت آن گروه میباشد. مقدار بزرگ این معیار منجر به واگرایی و گستره بهتری در مجموعه اعضای جمعیت خواهد شد. به عبارتی از مقدار فاصله ازدحام در عملگر انتخاب برای حفظ پراکندگی جوابها در هر جبهه استفاده می کند. این عمل موجب حفظ تنوع جوابها شده و به الگوریتم کمک می کند تا فضاهای جدید را جستجو کند.
شکل ۴‑۴- نحوه عملکرد الگوریتم NSGA-II. در این نمودار Pt جمعیت والدین، Qt جمعیت فرزندان در تکرار t میباشد. F1 بهترین جواب بعد از ادغام جمعیتها (والدین و فرزندان) میباشد و F2 دومین بهترین و الی آخر[۷۸]
در [۷۸] فاصله ازدحام هر راهحل با توجه به شکل ۴-۶ به ازای هر تابع هدف برابر است با:
۴‑۹
۴‑۱۰
در واقع با توجه به شکل تفاضل مقدار تابع هدف راهحل بعدی و مقدار تابع هدف راهحل قبلی محاسبه و بر دوکرانههای آن جبهه تقسیم می شود. این مقدار به ازای هر تابع هدف به دست می آید و سپس برای محاسبهی فاصله ازدحام راهحل مورد نظر مجموع این مقادیر در نظر گرفته می شود.
شکل ۴‑۵- سطوح نامغلوب در الگوریتم NSGA-II [50]
شکل ۴‑۶- محاسبهی فاصله ازدحام[۷۸]
فلوچارت شکل ۴-۷ مراحل الگوریتم NSGA-II را نشان میدهد.
Initialize population
i=0
Stopping criteria?
i=i+1
Fitness evaluation
Non-dominated sort
Crowding distance
دو بخش اضافه شده نسبت به
الگوریتم ساده ژنتیک
Mutation
Crossover
Reproduction
شکل ۴‑۷- مراحل الگوریتم ژنتیک NSGA-II
در این پایان نامه، برای اعمال روش پیشنهادی از الگوریتم NSGA-II استفاده شده است که جزئیات الگوریتم در این روش و عملگرهای استفاده شده در ادامه این بخش تشریح خواهد شد. با توجه به مکانیزم مطرحشده، ورودی الگوریتم اندازه جمعیت، بیشترین تکرار نسلها، نرخ جهش و نرخ تقاطع است و خروجی شامل مجموعه راه حلهای نامغلوب میباشد.مراحل اصلی الگوریتم به صورت زیر خواهد بود:
تولید جمعیت اولیه به صورت کاملا تصادفی
انجام عملیات چندهدفه
شروع حلقه اصلی
تولید فرزندان به روش تقاطع
تولید فرزندان به روش جهش
تجمیع نسل قبل و نسل جدید
انجام عملیات چند هدفه
انتخاب بهترینها
انجام عملیات چند هدفه
برگشتن به ابتدای حلقه تا برقراری شرط توقف
در این الگوریتم عملیات چندهدفه شامل مراحل زیر میباشد:
مرتبسازی نامغلوب (جبههبندی)
محاسبه فاصله ازدحام
مرتب کردن جوابها
از آنجا که برخی از وظایف بر روی تعدادی از هستههای پردازشی قابل اجرا نیستند درنتیجه پس از ایجاد جمعیت اولیه و پس از تولید جمعیت فرزندان توسط عملگرهای ژنتیکی تقاطع و جهش، امکانپذیری[۱۷۰] هر یک از جوابها بررسی می شود. همچنین به دلیل آنکه یک هسته پردازشی قابلیت اجرای بیش از یک وظیفه را دارد، بنابراین برای داشتن جوابهای قابل قبول در طول اجرای الگوریتم پس از تولید هر جواب میزان بهرهوری[۱۷۱] هستههای پردازشی ارزیابی می شود. این دو معیار در فصل ارزیابی نتایج به طور کاملتر توضیح داده خواهد شد.
نحوه نمایش اعضا : در اینجا جمعیت اولیه و در واقع هر یک از راهحلها به صورت کاملا تصادفی ایجاد می شود. برای حل مسئله به کمک الگوریتم ژنتیک باید آن را در قالب و ساختار مناسب با این الگوریتم ارائه نمود. در الگوریتم ژنتیک به هر یک از اعضای جمعیت که معرف یک راهحل مسئله میباشد، کروموزوم گفته می شود. در ساختار پیشنهادی، هر کروموزم بیانگر یک نگاشت وظایف کاربرد مورد نظر بر روی هستههای پردازشی شبکه بر تراشه میباشد. کروموزوم با توجه به شکل ۴-۸، یک برداری است که اندازه آن برابر با تعداد وظایف کاربرد میباشد. اندیس هر ژن معرف شناسه وظیفه است و مقدار هر ژن شامل شماره هسته پردازشی است که وظیفه مورد نظر بر روی آن نگاشت شده است. به طور مثال با توجه به شکل، وظیفه شماره ۱ بر روی هسته پردازشی ۱، وظیفه شماره ۲ بر روی هسته پردازشی ۲، وظیفه شماره ۳ بر روی هسته پردازشی ۹ و …نگاشت شده اند.
۱
۲
دانلود پژوهش های پیشین در رابطه با نگاشت وظایف یک برنامه کاربردی بیدرنگ سخت بر روی شبکه بر ...