next node
جدول ۵‑۱ : مشخصات لینک شماره ۴ در شکل ۵-۱۲
در شکل ۵-۱۳ دو نوع از کمانها برای اتصال بین گرهها داریم. همانطور که در قبل ذکر شد در راهکار پیشنهاد شده این گرهها بیانگر لینکها هستند. اگر لینک مورد نظر فعال در نظر گرفته شود یک کمان پر رنگ پیوسته از قسمت گره مربوطه به گره بعدی( یا در واقع گره مربوط به لینک بعدی) وصل می شود و اگر لینک مورد نظر غیر فعال در نظر گرفته شود یک کمان با خط چین قرمز رنگ به گره بعدی اتصال پیدا می کند. مثلاً در شکل ۵-۱۳ سمت راستترین گره، مربوط به لینک شماره ۶ در سطح سوم از گراف را در نظر بگیرید در صورتی که لینک شماره ۶ فعال در نظر گرفته شود یک کمان پر رنگ پیوسته به گره Reliable وصل می شود در غیر این صورت یک کمان خط چین به گره مربوط به لینک ۵ در سطح پایینتر متصل میگردد.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
تعاریف
فرض شده است منابع همراه با مسیرهای مورد نظر برای هر منبع به عنوان ورودی به الگوریتم داده می شود. برای راحتی کار اصطلاحات زیر در نظر گرفته میشود:
LinkList : لیستی که همه لینکهای مربوط به مسیرها بر اساس اولویت در آن قرار میگیرند. اولویت طبق تعداد دفعاتی است که هر لینک روی مسیرهای متفاوت قرار میگیرد تعیین می شود.
L : مشخص کننده سطح مورد نظر در گراف میباشد، همچنین به عنوان یک شاخص[۱۷۸] برای تعیین لینک مورد بررسی در لیستLinkList در نظر گرفته می شود مقدار پیش فرض آن ۱ میباشد.
LinkList-v : لیستی از لینکهائی که تا به حال در درخت پیمایش شدهاند. در این لیست به هر لینک در صورتی که فعال در نظر گرفته شود برچسب ۱ و در غیر این صورت برچسب ۰ زده می شود. این لیست در طی اجرای الگوریتم تغییر می کند. در واقع این لیست کمانهای پیمایش شده از ریشه تا سطح جاری در گراف را نشان میدهد.
NL : گره تشکیل شده در سطح L ام از گراف که مرتبط به لینک L ام از لیست LinkList است را نشان میدهد.
:کمان خروجی از گره NL برای زمانی که لینک مربوط به گره NL فعال در نظر گرفته می شود.
: کمان خروجی از گره NL برای زمانی که لینک مربوط به گره NL غیرفعال در نظر گرفته می شود.
TSN : در هر گرهای که بسط داده شده بعد از بازگشت از مراحل زیرین تعیین می کند که آیا لینک بسط داده شده بی اهمیت است یا خیر.
LR : مشخص می کند سطح بعدی که کمان خروجی از شاخه سمت راست به آن متصل شده است چند سطح پایینتر از سطح جاری قرار دارد. مقدار پیش فرض آن ۱ میباشد.
مراحل تشکیل گراف
در ادامه مراحل تشکیل گراف برای تحلیل و تخمین قابلیت اطمینان گام به گام تشریح شده است:
گام ۱. استخراج لینکها از مسیرها
برای هر منبع بر اساس مسیرهای در دسترس، لینکهای مورد نظر استخراج میشوند. با استخراج هر لینک آن را در لیست LinkList وارد میکنیم. در اینجا هر لینک به صورت یک ساختار داده تعریف می شود که پارامترهایی مانند احتمال موفقیت لینک در انتقال داده ها، تعداد دفعات تکرار شده در مسیرهای مختلف، شماره شناسایی گره قبلی و بعدی آن در شبکه در این ساختار درج می شود. جدول ۵-۱ مقدار این پارامترها را برای لینک ۴ در شبکه شکل ۵-۱۲ نشان میدهد. متغیر Count بیانگر تعداد دفعاتی است که یک لینک در مسیرهای مختلف استفاده شده است. لینکها در LinkList بر اساس مقدار متغیر Count مرتب میشوند. هرچه این مقدار بیشتر باشد اولویت لینک نیز بالاتر است و در هنگام بسط دادن لینکها زودتر مورد کاوش قرار میگیرد. این امر کمک زیادی به کاهش محاسبات می کند. خروجی این گام لیستی از لینکهای مرتب شده بر اساس تعداد دفعات تکرار میباشد. مثلاً در مثال مورد بررسی، LinkList به صورت زیر میباشد:
LinkList = { 4, 3, 6, 5, 2, 1}
گام ۲. ایجاد گرهها
لینک با اولویت L از لیست لینکها استخراج می شود و یک گره متناسب با این لینک در سطح مورد نظر ایجاد می شود (NL). در صورتی که L بزرگتر از ۱ باشد آخرین کمان در LinkList-v به این گره (NL) وصل می شود. اگر محتویات لیست لینکها خالی باشد کمان انشعاب گرفته شده از گام قبل که همان آخرین کمان در لیست LinkList-v است را به گره Unreliable وصل میکنیم، سپس به گامی که از آن فراخوانی شده است برمیگردیم. در غیر این صورت به گام بعد میرویم.
به طور مثال در شکل ۵-۱۳ ابتدا لینک با بالاترین اولویت یعنی لینک شماره ۴ از LinkList خارج می شود و گره متناسب با آن یعنی L1 در اولین سطح درخت تشکیل می شود. در این شکل گره در سطح ۶ که مربوط به لینک ۱ است () را در نظر بگیرید. هنگامی که کمان خارج شده مربوط به غیرفعال بودن (کمان خط چین) گره بسط داده شده است؛ چونLinkList را خالی میبیند (دقت کنید که لینک شماره ۱ آخرین مقدار درLinkList است) کمان مورد نظر را به گره Unreliable وصل میکنیم.
گام ۳. بسط شاخه سمت راست ) (pos(NL)
برای گره ایجاد شده در سطح جاری (L) شاخه سمت راست آن را گسترش میدهیم (). بدین صورت که یک کمان از قسمت ۱ گره مورد نظر خارج میکنیم. همچنین کمان مورد نظر را با مشخص کردن فعال بودن آن در انتهای LinkList-v وارد میکنیم. سپس به گام بعد میرویم.
به طور مثال سمت راستترین گره در سطح ۵ مربوط به لینک ۲ در شکل ۵-۱۳ را در نظر بگیرید که لینک مورد نظر فعال در نظر گرفته شده است. آنگاه محتویات LinkList-v برابر است با
LinkList-v={,}
که نشاندهنده آن است که روی این شاخه لینک ۴،۲ و ۶ فعال و لینک ۳ غیر فعال است.
گام ۴. بررسی قابل اطمینان بودن
بر اساس لینکهای که درLinkList-v برچسب آنها فعال است بررسی میکنیم آیا شبکه قابل اطمینان است یا خیر. این بررسی با توجه به تعریف قابلیت اطمینان در بخش ۵-۳-۱ صورت میگیرد. در صورت قابل اطمینان بودن کمان انشعاب گرفته شده از گام قبل که همان آخرین کمان در لیست LinkList-v است را به گره Reliable متصل میکنیم. در غیر این صورت مقدار فیلد L را یک واحد افرایش میدهیم و به گام ۲ میرویم. توجه کنید در هر سطحی که تشخیص داده شود شبکه قابل اطمینان است لینکهای بعدی در سطوح پایینتر مورد بررسی قرار نمیگیرند و کمان مستقیماً به گره Reliable وصل می شود، چون نیازهای لازم بر طبق تعریف قابلیت اطمینان بر آورده شده است. با بازگشت از گام ۲ آخرین کمان در لیست LinkList-v را حذف میکنیم و به گام بعد میرویم. گراف شکل ۵-۱۳ را در نظر بگیرید، به طور مثال فرض میکنیم محتوای لیست LinkList-v برابر با:
LinkList-v={,}
باشد. این لیست نشان میدهد که لینکهای ۴،۶ و ۲ فعال هستند و لینک ۳ غیرفعال است. با وجود لینکهای فعال، برای هر یک از منابع S1 و S2 یک مسیر به سمت چاهک برقرار میباشد؛ لذا با توجه به تعریف قابلیت اطمینان، شبکه قابل اطمینان است و نیازی به بسط لینکهای بعدی در سطوح پایینتر نمی باشد. همانطور که در شکل پیداست کمان خروجی از سمت راستترین گره در سطح ۵ مربوط به لینک ۲ (آخرین عضو در لیست LinkList-v )به گرهReliable وصل می شود و لیستLinkList به صورت زیر بروز رسانی می شود:
LinkList-v={ }
حال فرض میکنیم محتوای لیست LinkList-v برابر با :
LinkList-v={,}
باشد. این لیست نشان میدهد که لینکهای ۴ و ۵ فعال و لینکهای ۳ و ۶ غیرفعال هستند. با وجود لینکهای فعال برای منبع S1 یک مسیر وجود دارد ولی برای منبع S2 هیچ مسیری پیدا نمی شود؛ لذا نمی توان گفت شبکه قابل اطمینان است و الگوریتم به مرحله ب میرود تا بقیه حالات بررسی شود.
گام ۵. حذف کمانهای بی اهمیت
بعد از بازگشت از فراخوانیهای انجام شده در گام ۴ اگر مقدار فیلد TSN برابر ۱ باشد نشان دهنده این است که کمان بعدی یک حالت بی اهمیت است و در واقع گرهای که این کمان به آن وصل شده است اضافی است؛ لذا کمان ایجاد شده در مرحله ۳ به گرهای که کمان خروجی از گره اضافی به آن متصل است وصل می شود و بدین صورت گرههای بیاهمیت حذف میشوند.
شکل ۵-۱۳ را در نظر بگیرید به طور مثال در سمت چپترین گره در سطح ۳ مربوط به لینک ۶ مشاهده می شود که با وجود اینکه لینکهای ۵ و ۲ لینکهای بعدی برای این گره هستند، ولی کمان خروجی از شاخه سمت راست آن به گره موجود در آخرین سطح متصل شده است. در نتیجه لینکهای ۲ و ۵ برای این شاخه بی اهمیت هستند.
گام ۶. بسط شاخه سمت چپ (neg(NL))
برای گره ایجاد شده در سطح جاری (L) شاخه سمت چپ آن را گسترش میدهیم (). یک کمان از قسمت ۰ گره مورد نظر استخراج میکنیم. لینک مورد نظر را با مشخص کردن غیر فعال بودن آن در انتهای LinkList-v وارد میکنیم. سپس به گام بعد میرویم.
شکل ۵-۱۳ را در نظر بگیرید به طور مثال سمت راستترین گره در سطح ۳ مربوط به لینک ۶ در شکل ۵-۱۳ را در نظر بگیرید که لینک بسط داده شده غیر فعال در نظر گرفته شده است. آنگاه محتویات LinkList-v برابر است با :
LinkList-v={}
که نشاندهنده آن است که لینک ۴ و۳ فعال و لینک ۶ غیر فعال است.
گام ۷. بررسی غیر قابل اطمینان بودن
برای لینکهای موجود در LinkList-v بررسی میکنیم که آیا شبکه غیر قابل اطمینان است یا خیر. اگر غیر قابل اطمینان باشد کمان استخراج انشعاب گرفته شده از گام ۵ که همان آخرین کمان در لیست LinkList-v است را به گره Unreliable متصل میکنیم. در غیر این صورت مقدار فیلد Lرا به صورت L=L+LR بروز رسانی میکنیم و به گام ۲ میرویم. مقدار LR نشان میدهد که کمان خروجی از شاخه سمت راست گره تشکیل شده در این سطح به LR سطح پایینتر وصل شده است. توجه کنید در هر سطحی که تشخیص داده شود شبکه غیر قابل اطمینان است لینکهای بعدی در سطوح پایینتر مورد بررسی قرار نمیگیرند و کمان مستقیم به گره Unreliable وصل می شود، به این دلیل که بسط دادن بقیه گرهها بیفایده است و تأثیری در وضع موجود ندارد. با بازگشت از گام ۲ آخرین کمان در لیست LinkList-v را حذف میکنیم و به گام بعد میرویم.
گراف شکل ۵-۱۳ را در نظر بگیرید، به طور مثال فرض میکنیم محتوای لیست LinkList-v برابر با :
LinkList-v={,}
باشد. این لیست نشان میدهد که لینکهای ۲ و ۳ فعال و لینکهای ۵ و ۶ غیرفعال هستند. با وجود لینکهای غیر فعال، مشخص می شود که برای منبع S2 دیگر هیچ مسیری نمی توان به سمت چاهک برقرار نمود یا به عبارت دیگر با شرایط موجود ارتباط با چاهک برای منبع S2 غیر ممکن است؛ لذا با توجه به تعریف قابلیت اطمینان، شبکه در این شرایط غیر قابل اطمینان است و بسط دادن لینکهای بعدی در سطوح پایینتر بیفایده است. همانطور که در شکل ۵-۱۳ پیداست کمان خروجی از سمت چپترین گره در سطح ۴ مربوط به لینک ۵ (آخرین عضو در لیست LinkList-v (به گرهUnreliable وصل می شود و لیستLinkList به صورت زیر بروز رسانی می شود:
LinkList-v={ }
حال فرض میکنیم محتوای لیست LinkList-v برابر با :
LinkList-v={,}