مقدمه
جهان واقعی پيچيده است و این پيچيدگی به طور كلی از عدم قطعيت آن ناشی می شود، انسان به خاطر داشتن قدرت تفکر قادر به درک ابهامات و پيچيدگی هاست. بسياری از مشکلات دنيای واقعی با نظریه مجموعه های كلاسيک قابل حل نيستند، در تئوری مجموعه كلاسيک یک عنصر یا عضو مجموعه است یا نيست یا صفر است یا یک. نقطه مقابل تئوری مجموعه كلاسيک تئوری فازی قرار دارد.
تئوری مجموعه فازی ابزاری قوی جهت مواجه با عدم قطعيت ناشی از ابهام است، اگرچه سيستم های فازی پدیده های غيرقطعی و نامشخص را توصيف می كنند با این حال خود تئوری فازی یک تئوری دقيق است.
آشنایی با سيستم استنتاج فازی، مزایا و معایب آن ها می تواند در طراحی سيستم های خبره فازی و خروجی تخمين زده شده توسط سيستم موثر باشد، در این نوشته پس از تعریف سيستم استنتاج فازی، الگوریتم های استنتاج ممدانی، سوگنو مقایسه و بررسی می شوند. با ما همراه باشید.
منطق فازی
منطق فازی اولين بار توسط آقای پروفسور لطفی زاده در رساله ای به نام «مجموعه های فازی – اطلاعات و كنترل» در سال 1965 معرفی گردید و در دهه 1970 رشد و كاربرد عملی پيدا كرد، بزرگترین رخدادهای این دهه توليد كنترل كننده های فازی برای سيستم های واقعی بود.
منطق فازی از كاربردهای موفق در درزمينه ی مجموعه های فازی است كه در آن متغيرها زبانی هستند نه عددی، منطق فازی در برابر منطق باینری یا ارسطویی قرار دارد كه همه چيز را فقط به دو صورت بله یا خير، سياه و سفيد، صفر و یک می بيند، این منطق در بازه بين صفر و یک تغيير می كند.
مزایا و معایب منطق فازی
از جمله مزایای منطق فازی می توان به موارد زیر اشاره نمود:
- منطق فازی به تفکر و منطق انسان نزدیک است.
- برنامه های طراحی شده با منطق فازی سریع و كم هزینه هستند.
- به راحتی می تواند مدلسازی شوند.
- به طور گسترده ای در سيستم های كنترل و پيش بينی تصميم قابل استفاده است.
- برای توصيف پدیده های غيرقطعی و نامشخص به كار می روند.
از جمله معایب منطق فازی می توان به موارد زیر اشاره كرد:
- قوانين منطق فازی توسط تجربه متخصص تعيين می شوند.
- تجزیه و تحليل یک سيستم با منطق فازی دشوار است یعنی نمی توان قبل از واكنش آن را تخمين زد.
- توابع توسط آزمون و خطا مشخص می شوند كه زمان بر هستند.
سيستم های استنتاج فازی
در شکل 1 معماری سيستم استنتاج فازی نشان داده شده است. همانطور كه مشخص است سيستم استنتاج فازی به طور كلی از اجزاء زیر ساخته شده است:
- فازی ساز
- موتور استنتاج فازی
- دفازی ساز
روند تبدیل متغيرهای صریح به متغيرهای زبانی را فازی سازی می گویند. موتور استنتاج با استفاده از الگوریتم های استنتاج، قوانين را ارزیابی و استنتاج می كند و پس از تجميع قوانين خروجی توسط واحد دفازی ساز به مقدار صریح یا عددی تبدیل می شود.
انواع روش های دفازی سازی شامل مركز ثقل ناحيه (COA)، نيمساز ناحيه (BOA )، كوچکترین ماكزیمم (SOM)، بيشترین ماكزیمم (LOM )، ميانگين ماكزیمم (MOM)، ميانگين وزنی (WA)، مجموع وزنی (WS) می باشد كه به طور كلی COA و WA بيشترین كاربردها را دارد.
کاربردهای سيستم استنتاج فازی
استفاده از سيستم های فازی روز به روز گسترش یافت و كاربرد آن درزمينه های مختلفی مانند سيستمهای خبره فازی، سيستم های پشتيبانی تصميم، برآورد هزینه احتمالی پروژه با استفاده از تجزیه و تحليل ریسک، سيستمهای كنترل، پردازش تصویر، ارتباطات، بازرگانی، پزشکی، نظامی و آموزشی، رباتها، سيستم قدرت و رآكتور هسته ای و مهندسی خودرو به كار گرفته شد.
یکی از اولين محصولاتی كه از سيستم های فازی استفاده نمودند ماشين لباسشویی بود كه توسط شركت ماتسو شيتا در سال 1990 در ژاپن عرضه شد، در این ماشين لباسشویی از سيستم فازی برای تنظيم خودكار تعداد دورهای مناسب، بر اساس نوع، ميزان كثيفی و حجم لباس استفاده شد. سيستم كنترل فازی متروی سندایی نيز از دیگر كاربردهای سيستم فازی است كه چهار پارامتر، ایمنی، راحتی سرنشينان، رسيدن به سرعت مطلوب و دقت ترمز را به طور همزمان در نظر می گيرد. امروزه از سيستم فازی نيز در تثبيت كننده تصویر دیجيتال در دوربين ها و در بخش هایی نظير موتور، انتقال نيرو و ترمز در اتومبيل ها، تغييرات دنده خودكار و تصفيه آب استفاده شده است .
انواع الگوریتم های استنتاج فازی
1-الگوریتم استنتاج ممدانی
سيستم استنتاج ممدانی را ممدانی و اسيليان در سال 1975 پيشنهاد دادند. این سيستم ها به دليل داشتن طبيعت بصری و تفسيری از قوانين می توانند به طور گسترده ای در سيستم های پشتيبانی تصميم استفاده شوند، همچنين دارای قدرت بيانی بالایی هستند و می توانند به هر دو صورت چند ورودی و چند خروجی (MIMO) و چند ورودی و یک خروجی(MISO) پياده سازی می شود.
دیاگرام كلی سيستم استنتاج فازی ممدانی در شکل 2 نشان داده شده است، سيستم استنتاج ممدانی از مجموعه های فازی به عنوان نتيجه قانون استفاده می كند و خروجی هر قانون به صورت غيرخطی و فازی است. همچنين از لحاظ روش دفازی سازی با بقيه سيستم های استنتاج متفاوت است. روش های دفازی سازی در سيستم استنتاج ممدانی به صورت BOA، COA، SOM, ،LOM, ،MOM هستند.
فرم كلی قوانين در سيستم ممدانی در شکل 3 نشان داده شده است، نتایج هر قانون كه با مقدارهای c1 و c2 مشخص می باشند، همانطور كه مشخص است پس ازتجميع نتایج حاصل از قوانين، عمل دفازی سازی بر روی تابع عضویت خروجی z انجام می گيرد و نتایج به صورت عددی به دست می آید.
2- الگوریتم استنتاج تاکاگی سوگنو
سيستم استنتاج تاكاگی سوگنو، توسط تاكاگی و ميشيو سوگنو در سال 1985 به منظور توسعه یک رویکرد سيستماتيک برای توليد قوانين فازی ارائه شد، این سيستم استنتاج بيشتر در سيستم های كنترلی و در زمينه هایی كه نياز به محاسبات ریاضی باشد مورداستفاده قرار می گيرد. شکل 4 دیاگرام یک سيستم استنتاج سوگنو را نشان می دهد. خروجی الگوریتم استنتاج سوگنو از یک چند جمل های مرتبه اول از متغيرهای ورودی به عنوان نتيجه قانون استفاده می كند و روش دفازی سازی در آن از نوع روشهای دفازی سازی WS,WA می باشد، همچنين سيستم استنتاج سوگنو به صورت MISO پياده سازی می شود و نمی تواند به صورت MIMO پياده سازی شود.
شمای كلی ارزیابی قوانين با استفاده از روش سوگنو در شکل 1 نشان داده شده است. همانطور كه مشخص است نتایج قانون در سيستم استنتاج سوگنو به صورت صریح و خطی می باشد.
مقایسه الگوریتم استنتاج فازی ممدانی و سوگنو
در جدول (1) مقایسه ای بين الگوریتم های استنتاج ممدانی و سوگنو نشان داده شده است. الگوریتم استنتاج سوگنو بيشتر در سيستم های كنترلی و سيستم هایی كه احتياج به محاسبات ریاضی دارند استفاده می شود اما در الگوریتم استنتاج ممدانی نتایج منطقی با یک ساختار نسبتاً ساده بيان می شود و بيشتر در سيستم های پشتيبانی تصميم و سيستم هایی كه قابليت تفسيری از قوانين را دارند استفاده می شوند، خروجی الگوریتم استنتاج ممدانی غيرخطی و فازی است اما خروجی سيستم استنتاج سوگنو خطی است، الگوریتم ممدانی در بسياری از عملکردها كه دقت خروجی و انعطاف پذیری مهم است به خوبی عمل نمی كند ولی موتور استنتاج تاكاگی سوگنو انعطاف پذیرتر و از دقت عملکرد بالاتری برخوردار می باشد و از لحاظ محاسباتی نسبت به ممدانی مؤثرتر است، زیرا فرایند دفازی سازی به زمان محاسباتی كمتری نياز دارد، اما فقط برای تجزیه وتحليل سيستم های كنترلی MISO خطی بهتر عمل می كند.
نتيجه گيری
امروزه كاربردهای فازی در طراحی های مختلف سيستم های غيرقطعی، نشان دهنده عملکرد بالا و رشد سریع این سيستم ها است، هرچند كه علمکرد الگوریتم های استنتاج فازی مشابه هم هستند اما رعایت تفاوت های آنها در طراحی سيستم های فازی می تواند در خروجی سيستم مؤثر باشد، الگوریتم استنتاج سوگنو به خاطر داشتن دقت و انعطاف پذیری بالا درطراحی سيستم های حساس و كنترلی استفاده می شود ولی سيستم های ممدانی به خاطر خاصيت تفسيری و خروجی فازی كه از قوانين دارند بيشتر در زمينه سيستم های انسانی استفاده می شوند.
منبع : مقاله مروری بر الگوریتم های استنتاج فازی نویسندگان: عالمه جعفری سوق، حامد شهبازی
هم چنین برای دریافت اطلاعات بیشتر می توانید فایل آموزشی سیستم های استنتاج فازی تهیه شده توسط دکتر اکبری را از لینک زیر دریافت نمایید.
سيستم استنتاج فازي
سيستمي كه يك نگاشت از ورودي به خروجي را با استفاده از منطق فاز فرموله ميكند به نام سيستم استنتاج فازي (FIS) شناخته مي شود. سيستم استنتاج فازي همچنين به نام سيستم مبتني بر قواعد نيز ناميده مي شود .زيرا اين سيستم ها از تعدادي عبارت « اگر – آنگاه » ساخته شده است. وقتي چنين سيستم هايي در نقش كنترلي ظاهر مي شوند به آنها كنترل كننده های فازی می گويند .معماري اصلي FIS از پنج بلوك تابع تشكيل شده كه در شكل زير نشان داده شده است:
پايگاه قواعد ( Rule base) : شامل قواعد و عبارات «اگر – آنگاه » فازي
پايگاه داده (Dara base) : تعريف توابع عضويت
واحد تصميم گيري ( Decision making unit): انجام عمليات روي قواعد فازي
رابط فازي ساز ( Fazzification inter face): تبديل ورودي هاي حقيقي به مجموعه هاي فازي
رابط غير فازي ساز ( Defazzification inter face) : تبديل نتايج فازي به مقادير حقيقي
دو واحد پايگاه داده و پايگاه قواعد با هم تحت عنوان پايگاه دانش (Knowledge base) شناخته مي شوند. سيستم هاي استنتاج فازي را مي توان به سه كلاس « ممداني (mamdani) » ، «سوگنو (sugeno) » و «تاكاگي (Takagi)» تقسيم كرد.
بسياري از FIS ها از نوع ممداني هستند كه در اين نوع ، اعضاي مجموعة فازي خروجي را پيش بيني مي كنند .
برای کار کردن با بخش فازی در Matlab درخط فرمان متلب عبارت fuzzy<< را تایپ کنید و یا در بخش command کلمه fuzzy را تایپ کرده اینتر میزنیم .صفحه ای به صورت زیر باز می شود .
تعریف متغیر ها
در این صفحه از طریق منوی Edit تعداد ورودی ها و خروجی های مورد نظر را وارد می کنیم .با وارد کردن ورودی ها و خروجی ها به شکل زیر می رسیم.
تعریف توابع عضویت
بعد از تعیین ورودی ها و خروجی ها باید تابع عضویت را برای هر یک از آنها تعین کنیم برای این منظور از منوی Edit وارد قسمت membership function می شویم و با کلید روی هر متغیر تابع عضویت آن را تنظیم می کنیم . در زیر نمای بخش membership function آمده است . توابع عضویت را با استفاده از المان های موجود می توان تغییر داد.
از قسمت Type میتوان نوع تابع عضویت را تغییر داد و از قسم params میتوان پارامترهای مربوط به تابع عضویت را تغییر داد:
تعریف rule ها
بعد از تعی ن membership function باید Ruleها را تعریف کنیم. برای این کار از منوی edit وارد قسمت Rule شده و شروع به تعریف Rule ها می کنیم.
بررسی
بعد از تعریف Rule ها نوبت به بررسی نتایج می رسد . برای بررسی نتایج از منوی view گزینه Rules را انتخاب می کنیم و در صفحه باز شده متغیرها و حاصل آنها را بر روی خرو جی ها می توان مشاهده کرد.
برای دیدن نمودارهای حاصل از بخش view قسمت Surface را انتخاب می کنیم .