الگوریتم فلوید- وارشال در #c سی شارپ csharp، طراحی الگوریتم
موضوع پروژه: الگوریتم فلوید- وارشال در #c سی شارپ csharp، طراحی الگوریتم |نسخه نرم افزار:visual studio|
در علوم کامپیوتر الگوریتم فلوید-وارشال یک الگوریتم تحلیل گراف برای پیدا کردن کوتاهترین مسیر در یگ گراف جهت دار و وزن دار میباشد .با یکبار اجرای این الگوریتم کوتاهترین مسیر بین همهٔ جفت راسها پیدا خواهد شد. الگوریتم فلوید-وارشال به نام استفن وارشال و روبرت فلوید نامگذاری شدهاست. این الگوریتم یک مثال از برنامه نویسی پویا میباشد. در این الگوریتم، ابتدا ماتریس مجاورت برای نقاط گراف نوشته شده و در مرحله ی بعد با استفاده از یک راس واسطه، کوتاه ترین فاصله بین نقاط را محاسبه کرده و ماتریس را با مقادیر جدید بازنویسی می کند. پس از آن دو نقطه به عنوان واسطه انتخاب شده و ماتریس جدید به دست می آید. با تکرار این روند الگوریتم به پایان رسیده و در نهایت ماتریسی ایجاد شده که کوتاه ترین مسیر بین تمامی نقاط را محاسبه کرده است. بدیهی است که کوتاه ترین مسیر بین مبدا و مقصد را می توان به راحتی از ماتریس تشکیل شده استخراج نمود.
تصویر برنامه
الگوریتم وارشال برای حل مسایل زیر میتواند استفاده شود.
۱-کوتاهترین مسیرها در گرافهای جهت دار
۲-بستار متعدی گرافهای جهت دار
۳-در فرمول عمومی الگوریتم وارشال گراف بی وزن میباشد و توسط یک ماتریس مجاورت نمایش داده شدهاست.
۴- وارون سازی یک ماتریس حقیقی
۵- تست کردن اینکه آیا یک گراف بی جهت، دو قسمتی میباشد یا خیر.
۶-محاسبه سریع شبکههای راه یاب
دیدگاه ها