- اگر همه محدودیتهای (۳-۵) برقرارند، قرار ده µa=λ ، در غیر اینصورت قرار ده µb=λ.
تولید جوابهای اولیه برای توپولوژی شبکه
جوابهای اولیه به استفاده از یک رویه ابتکاری تولید میشوند که مرحله به مرحله گراف مورد نظر را میسازند ]۳۰[. ابتدا ترکیبی تصادفی از گزینه های افزایش خط برای یالهای مختلف و با توجه به محدودیت بودجه انتخاب می شود. سپس خطهای موجود در شبکه و خطهای افزودنی جدید به یالهای شبکه تخصیص داده میشوند. به منظور کاهش احتمال تولید گرافهای ناهمبند، تخصیص خطها در دو مرحله صورت میگیرد.
در مرحله اول کمترین تعداد خطهای مورد نیاز برای برقراری شرط لازم همبندی به یالها تخصیص داده میشوند، به این معنی که ابتدا یک خط به یکی از کمانهای هر یک از یالها تخصیص داده می شود تا محدودیت (۳-۸) برقرار شود. سپس، هر یک از گرهها به ترتیب از نظر تعداد خطهای ورودی و خروجی بررسی می شود. در صورتی که گرهی فاقد خط ورودی یا خروجی باشد، بر حسب نیاز یک خط به صورت تصادفی به یکی از کمانهای ورودی یا خروجی آن تخصیص داده می شود. در مرحله دوم، بقیه خطهای یالها به صورت تصادفی به یالها تخصیص داده میشوند. پس از تولید هر جواب اولیه جدید، ابتدا همبندی گراف بررسی می شود و در صورت ناهمبند بودن از جواب صرفنظر می شود. این رویه تا زمانیکه تعداد جوابهای اولیه به اندازه مورد نظر برسد تکرار می شود.
بررسی جوابهای از نظر همبندی گراف
هر جواب جدید تولید شده در الگوریتم، در دو مرحله از نظر همبندی گراف حاصل بررسی می شود. در مرحله اول، یک شرط لازم برای همبندی گراف و در مرحله دوم وجود مسیر بین هر جفت گره شبکه بررسی می شود. هدف از این کار غربال کردن بخشی از جوابهای ناشدنی و کاهش محاسبات غیر ضروری برای بررسی همبندی گرافهاست.
مرحله اول: در وهله اول، وجود دستکم یک خط خروجی و یک خط ورودی به هر گره (تنها نبودن و در بن بست قرارنداشتن گرههای گراف) به عنوان شرط لازم همبندی قوی گراف بررسی می شود. در صورت برآورده شدن این شرط، مرحله دوم بررسی انجام می شود، در غیر این صورت گراف همبند نیست.
مرحله دوم: در مرحله دوم، وجود دستکم یک مسیر بین هر دو گره گراف بررسی می شود. برای این منظور از الگوریتم کوتاهترین مسیر دایسترا[۳۵]]۵۲[ استفاده می شود. با هر بار اجرای الگوریتم، درخت کوتاهترین مسیر بین یک گره و بقیه گرههای گراف بدست می آید. در صورتی که گراف همبند نباشد، دستکم یکی از گرهها در درخت تشکیل شده حضور ندارد، به این معنی که بین دستکم یک جفت گره هیچ مسیری یافت نشده است.
الگوریتم ژنتیک ترکیبی با شبیهسازی تبرید
روش حل توسعه داده شده در این بخش الگوریتم ژنتیک است. در این روش، عملگر جهش با الگوریتم شبیهسازی تبرید جایگزین می شود که آن را به یک الگوریتم ترکیبی تبدیل می کند. عملگر جهش در الگوریتمهای ژنتیک معمول با احتمال معینی بر روی فرزندانی که جمعیت نسل بعدی را تشکیل می دهند اعمال می شود و هدف آن اعمال تنوع در هر دو نسل متوالی از جمعیت جوابهاست. در این الگوریتم، شبیهسازی تبرید به عنوان یک رویه بهبود دهنده، بر روی تعدادی از فرزندان نامزد برای ورود به جمعیت اعمال می شود. گامهای کلی الگوریتم توسعه داده شده به شرح زیر هستند:
مرحله اول: مجموعه ای از جواب اولیه را به تعداد جمعیت تولید کن و مقادیر برازش آنها را محاسبه کن.
مرحله دوم: گام های زیر را برای تعداد نسلهای مشخص تکرار کن:
- یک جفت والد را به طور تصادفی انتخاب کن.
- با عملگر تقاطع مجموعه فرزندان را تولید کن.
- گراف هر فرزند را بررسی کن و فرزندان با گراف ناهمبند را حذف کن.
- برقرار بودن محدودیت بودجه را برای هر فرزند بررسی کن و در صورت نیاز هزینه های افزایش خط در جوابهای ناشدنی را کاهش ده.
- شبیهسازی تبرید را بر روی بهترین فرزند اعمال کن.
- جمعیت جدید را از ترکیب بهترین جوابهای جمعیت موجود و مجموعه جوابهای فرزند ایجاد کن.
تعریف کروموزومها
کروموزومها برای متغیرهای تصمیم گیری yl، zijو kij مسالهU تعریف میشوند، زیرا متغیر µ از حل مدل سطح پایین قابل محاسبه است. هر کروموزوم نمایانگر تعداد خطهای تخصیص داده شده در هر کمان است که به طور ضمنی جهت معابر، تعداد خطهای اضافه شده، و نحوه تخصیص خطها را مشخص می کند. هر کروموزوم به صورت یک ماتریس دو سطری تعریف می شود که ستونهای آن معرف یالهای شبکه و سطرهای آن متناظر با کمانهای هر یال هستند. مقادیر هر آرایه برابر است با تعداد خط تخصیص داده شده به کمان متناظر با یال مورد نظر. شکل ۳‑۳ و شکل ۳‑۴ یک شبکه نمونه با ۶ گره و ۹ یال و نمایش کروموزوم آن را نشان می دهند. یالهایی که دو سر آنها دارای پیکان است، معابر دو طرفه و ترکیبی از دو کمان هستند. یالهایی که فقط یک سر آنها دارای پیکان است، معابر یک طرفه هستند.
شکل ۳‑۵- یک شبکه نمونه
۹
۸
۷
۶
۵
۴
۳
۲
۱
۱
۲
۱
۱
۰
۱
۱
۰
۱