H(1)
Z = A3(A,B)
H(2)
Assign data point to cluster with nearest center
G(1)
Connect data point to nested with max center
G(2)
بر اساس برخی از نمادهای جدول ۳-۲ و شبه کد شکل ۲-۱۰ برای الگوریتم کدی با قالب استاندارد زبان استقلال الگوریتم خوشهبندی در شکل ۳-۶ به تصویر کشیده شده است.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
Begin
R(2)
While
G(1)
M(2)
End
End
شکل۳-۶. کد الگوریتم K-means به زبان استقلال الگوریتم خوشهبندی
همان طور که مشاهده میکنید کد شکل ۳-۶ فاقد هر گونه جزئیات اضافی و غیر مرتبط میباشد و به خوبی فرایند اجرای الگوریتم به همراه دستورات موثر در استقلال آن را به بیان میکند. علاوه بر آن، با توجه به جدول ۳-۲ میتوان گفت که یکی دیگر از ویژگیهای مهم جدول نگاشت استاندارد کد این است که در تهیه این جدول میتوان همزمان از بخشی از کد برنامه یک الگوریتم و شبه کد الگوریتمی دیگر در کنار یکدیگر استفاده کرد بدون آن که در همگن بودن کد نهایی مشکلی پیش آید. در بخش “مدلسازی الگوریتمها به زبان استقلال الگوریتم” جدول نگاشت استاندارد کد استفادهشده جهت مدلسازی الگوریتمهای این تحقیق و کدهای مدلسازی شده آن الگوریتمها به قالب استاندارد زبان استقلال الگوریتم خوشهبندی ارائه میشود.
۳-۴-۲-۲. تبدیل کد به گراف استقلال الگوریتم
جهت ساخت گراف استقلال الگوریتم از روی کدی با قالب استاندارد زبان استقلال الگوریتم از روش تبدیل کد به گراف در مباحث تست نرمافزار [۷۵] استفاده میکنیم. چون کاربرد گراف استقلال خاص منظوره است و کد تهیهشده نیز دارای یک قالب استاندارد میباشد از این روی روش ساخت گراف مطرحشده در این تحقیق کاملاً مشابه روشهای ساخت گراف در تست نرمافزار نیست بلکه روشی سفارشی شده بر اساس ایده تبدیل کد به گراف متناسب با نیازهای ارزیابی استقلال الگوریتم میباشد. در این روش، اتصالات[۱۷۶] کد (که مطابق با تعاریف بخش قبل شامل نقاط شروع، پایان، شرط و حلقه و بخشهای زیرمجموعهی آنها میباشند) را طوری در نظرخواهیم گرفت که هر کدام مطابق با فرایند کارشان به چند نود و یالهای میان آنها تقسیم شوند. در این روش برای نشان دادن روند اجرای برنامه از گراف جهتدار همانند روش تست نرمافزار استفاده خواهیم کرد. از طرف دیگر، در روش تست نرمافزار کد میان اتصالات در بخش گرهها نشان داده میشوند و روی یالها غالباً بخش منطقی عملگرهای شرطی و یا حلقه نوشته میشود ولی به خاطر این که اولاً ما بخش منطقی عملگرها را حذف کردهایم ثانیاً در این ارزیابی روند اجرای کد مهم است و ثالثاً کدها به شکل هرس شده و با نمادهای استاندارد پیادهسازی شدهاند، پس برای سادگی و وضوح بیشتر کد به جای نوشتن کدها در داخل گرهها آنها را روی یالهای ما قبل گره که دقیقاً جریان همان کد را نشان میدهد نوشته و به عنوان وزن (غیر عددی) آن یال در نظرخواهیم گرفت. روش نوشتن هر بخش از این کدها به عنوان وزن در گراف باید با همان ترتیبی که در کد اصلی نوشته شده است باشد. بدیهی است که به سادگی میتوان شکل و نمادهای گرافهای تهیهشده برای دو الگوریتم را باهم مقایسه کرد و میزان شباهت و یا تفاوت این گرافها نشاندهنده روش عملکرد آنها (روش حل مسئله) میباشد. با مقایسه نمودن این گرافها میتوان میزان استقلال الگوریتمهای خوشهبندی را ارزیابی کرد. در ادامه ابتدا روش تبدیل هر اتصال در کد را به گراف و حالتهای خاص به وجود آمده را بررسی میکنیم و سپس چند مثال پرکاربرد را برای تبدیل کد به گراف نشان میدهیم.
گراف بخش شروع و پایان شکل ۳-۷ روش تبدیل کدهای شروع و پایان به گراف را نشان میدهد. در این شکل دایرهها، گرههای گراف میباشند و شکل مربع شامل تمامی گرهها و یالهایی است که از روی کد نوشتهشده بین دو کلمه کلیدی به گراف تبدیل شده است.
شکل۳-۷. تبدیل کدهای شروع و پایان به گراف
گراف عملگر شرط شکل ۳-۸ نشاندهنده تبدیل سادهترین نوع عملگر شرطی به گراف میباشد.
شکل۳-۸. تبدیل عملگر شرط ساده به گراف
شکل ۳-۹ نمایش گراف معروفترین نوع عملگر شرط میباشد که ما آن را با عنوان عملگر شرط کامل میشناسیم.
شکل۳-۹. تبدیل عملگر شرط کامل به گراف
شکل ۳-۱۰ را با عنوان گراف عملگر شرط تو در تو میشناسیم که پیادهسازی کدهای چند شرطی و یا Switch Case به گراف پس از تبدیل به زبان استقلال الگوریتم میباشد.
شکل۳-۱۰. تبدیل عملگر شرط تو در تو به گراف
گراف عملگر حلقه شکل ۳-۱۱ نشاندهنده تبدیل سادهترین نوع عملگر حلقه به گراف میباشد.
شکل۳-۱۱. تبدیل عملگر حلقه ساده به گراف
شکل ۳-۱۲ نشاندهنده تبدیل عملگر حلقه با پرش به گراف میباشد.
شکل۳-۱۲. تبدیل عملگر حلقه با پرش به گراف
در ادامه به ذکر چند مثال پرکاربرد از کدهای تبدیلشده به گراف میپردازیم. همان طور که در کد این مثالها نمایش داده شده است برای وضوح بیشتر مثالها به جای استفاده از نمادهای جدول نگاشت از حرف که به ترتیب شمارهگذاری شده است استفاده میشود. بدیهی است که نمادهای بهکاررفته در کد واقعی استقلال الگوریتم جایگزین این ها خواهد شد. شکل ۳-۱۳ الی ۳-۲۲ مثالهایی از کدهای پرکاربرد مطابق با قالب استاندارد کد استقلال الگوریتم میباشد.
شکل۳-۱۳. پیادهسازی شرط ساده بدون هیچ کد اضافی
شکل۳-۱۴. پیادهسازی شرط ساده با کدهای قبل و بعد آن