آموزش منطق فازی در متلب

آموزش منطق فازی در متلب

آنچه در این مطلب می‌خوانید

منطق فازی در متلب چیست؟ منظور از منطق فازی استدلال علمی مسائل بر اساس ساختار اندیشه واقعی یک انسان است. نام اولیه این شیوه نظریه ابهام بوده که توسط فردی به نام مکس بلکه مطرح شد. عبارت منطق فازی در فرهنگ لغات به شرایط نامعلوم و غیر قطعی اطلاق می‌شود. این نظریه ادعا دارد ابهام در ماهیت علم است. حال این که منطق فازی در متلب چگونه پیاده‌سازی می‌شود را در ادامه مقاله خواهیم آموخت.

ساختار منطق فازی در متلب

ساختار منطق فازی در متلب را می‌توانید در تصویر زیر ببینید. در ادامه هرکدام از بخش‌هایی که در تصویر وجود دارد را توضیح می‌دهیم.

ساختار منطق فازی در متلب
آموزش منطق فازی در متلب ۱۷

  • قوانین: تمام قواعد و شرایطی که به صورت «اگر… آنگاه» توسط شما تعیین می‌شوند در این قسمت قرار دارند. کم و زیاد کردن این قوانین امکان پذیر است. البته تجربه نسان می‌دهد بهترین پاسخ باید با کمترین قوانین ممکن دریافت ‌شود.
  • فازی سازی: در این مرحله ورودی‌ها به اطلاعات قابل استفاده در منطق فازی تبدیل می‌شود. یعنی اعداد قطعی به اعداد فازی تغییر شکل می‌دهند؛ زیرا منطق فازی با اعداد قطعی کار نمی‌کند.
  • موتور استنتاج: این بخش در تصویر هوش نامیده شده است که ما آن را مغز نیز می‌خوانیم. در این مرحله میزان انطباق ورودی‌های با قوانین سنجیده می‌شود. درصد این انطباق نزدیکی پاسخ دریافتی به منطق اندیشه انسان را نشان می‌دهد.
  • برگردان از فازی: این قسمت را فازی زدایی نیز می‌نامیم. در این مرحله اعداد فازی مجدداً به اعداد قطعی تبدیل شده و به عنوان خروجی نمایش داده می‌شوند. هدف از این تبدیل قابل درک بودن برای انسان است.
آموزش مقدماتی تا پیشرفته نرم‌افزار MATLAB (متلب)
آموزش مقدماتی تا پیشرفته نرم‌افزار MATLAB (متلب)
۱,۱۹۹,۰۰۰ ۸۳۹,۳۰۰ تومان
۳۰%

 

در ادامه منطق فازی را با جزئیات بیشتری مورد بررسی قرار خواهیم داد.

ویژگی‌های منطق فازی در متلب

از جمله ویژگی‌های اساسی منطق فازی در متلب می‌توان به موارد زیر اشاره نمود. البته این موارد تنها قابلیت‌های اساسی منطق فازی در متلب محسوب می‌شوند.

  • انعطاف‌پذیری بالا در پیاده‌سازی
  • سادگی پیاده‌سازی الگوریتم‌های یادگیری ماشین
  • امکان تولید دو پاسخ متفاوت برای یک مسئله
  • قابلیت حل مسئله با پاسخ تقریبی یا غیر قطعی
  • امکان استفاده از شرط‌ها و قید‌های منعطف
  • امکان فرایندی سازی استنتاج
  • امکان تولید توابع غیر‌خطی با پیچیدگی‌های دلخواه
  • وجود وابستگی‌های میان مدل‌های ایجاد شده

منطق فازی در متلب

متلب یک امکان عالی برای پیاده سازی منطق فازی ارائه می‌دهد و آن فراهم شدن یک محیط گرافیکی برای این منظور است. برای دسترسی به این محیط گرافیکی می‌توانید در خط فرمان این نرم‌افزار کلمه Fuzzy را تایپ کنید.

منطق فازی در متلب
آموزش منطق فازی در متلب ۱۸

با تایپ این کلید واژه و زدن Enter صفحه زیر باز می‌شود. این پنجره تولباکس فازی در متلب نیز نام دارد. در ادامه این بخش با آموزش تولباکس فازی در متلب همراه شما عزیزان خواهیم بود.

word image 37067 4
آموزش منطق فازی در متلب ۱۹

این محیط دارای سه بخش است. بخش اول ورودی یا Input1 نام دارد. دلیل وجود عدد در نام این بخش این است که می‌توانیم به روشی که در تصویر بعدی می‌بینید تعداد ورودی‌ها را افزایش دهیم. هر ورودی جدید یک شماره افزایش پیدا می‌کند.

word image 37067 5
آموزش منطق فازی در متلب ۲۰

بخش دوم نیز مربوط به الگوریتم یا سیستم تصمیم گیری است که قصد داریم استفاده کنیم. یعنی همان قواعد و شرایطی که برای فازی سازی به کار می‌گیریم. به صورت پیش فرض الگوریتم یا سیستم ممدانی mamdani در این بخش نمایش داده می‌شود که می‌توانید با توجه به نیاز خود آن را تغییر دهید. دستورات فازی اطلاعات خود را از این بخش دریافت می‌کنند. بخش سوم نیز شامل المان خروجی می‌شود. یعنی ورودی وارد قسمت میانی که هوش است شده و پس از پردازش به بخش خروجی می‌رود تا عملیات دفازی روی آن انجام پذیرد.

word image 37067 6
آموزش منطق فازی در متلب ۲۱

برای اضافه کردن خروجی یا Output نیز می‌توانید طبق تصویر زیر عمل کنید. نام گذاری این بخش نیز از قواعدی که برای ورودی توضیح دادیم تبعیت می‌کند.

word image 37067 7
آموزش منطق فازی در متلب ۲۲

با کلیک روی قسمت‌های هرکدام از ورودی و خروجی می‌توانیم نام آن‌ها را تغییر دهیم.

word image 37067 8
آموزش منطق فازی در متلب ۲۳

برای تعییر نام خروجی هم به همین منوال عمل کنید. یعنی روی خروجی مورد نظر کلیک کرده و در کادر مشخص شده در تصویر نام جدید را برای آن می‌نویسیم.

word image 37067 9
آموزش منطق فازی در متلب ۲۴

جهت تغییر اسم بخش میانی باید پروژه را ذخیره کنیم. برای این کار از منوی فایل گزینه مربوطه را می‌زنیم.

word image 37067 10
آموزش منطق فازی در متلب ۲۵

با کلیک روی این گزینه یک صفحه ذخیره سازی مانند هر برنامه دیگری باز می‌شود که باید یک نام برای آن تعیین و دکمه OK را بزنیم تا در قالب یک فایک ذخیره شود. در هنگام ذخیره هر نامی برای فایل در نظر بگیریم همان نام در قسمت میانی نمایش داده خواهد شد.

اگر به کادر موجود در سمت چپ پنجره دقت کنید ۵ گزینه خواهید دید. گزینه‌های اول و دوم از بالا مربوط به ورودی‌ها هستند. با این گزینه‌ها منطق‌های AND، OR، و NOT را روی ورودی اعمال می‌کنند. گزینه سوم که Implication نام دارد مربوط به بخش میانی رابط گرافیکی ما یا همان مغز سیستم است. در این بخش الگوریتم فازی سازی را مشخس می‌کنیم. دو گزینه آخر نیز متدهای قابل تنظیم برای خروجی را در بر می‌گیرند. این متد‌ها همان الگورتیم‌های دفازی هستند.

این محیط گرافیکی که تولباکس منطق فازی در متلب نام دارد ابزار‌های مهمی را در اختیار کاربر قرار می‌دهد. این ابزارها شامل المان‌های گرافیکی، بلوک سیمولینک جهت تحلیل و شبیه‌ساز سیستم‌ها بر پایه منطق فازی می‌شوند. ویژگی‌های کلی این ابزار‌ها به شرح زیر هستند.

  • واسطه گرافیکی خاص جهت ایجاد سیستم‌های استنتاجی فازی
  • قابلیت مشاهده و تحلیل نتایج دریافتی
  • قابلیت پشتیبانی از مدارهای منطقی مانند AND، OR و NOT
  • پشتیبانی از توابع عضویت سیستم‌های استنتاجی فازی
  • پشتیبانی پیش فرض از سیستم‌های استنتاجی ممدانی و سوگنو
  • امکان اعمال الگوریتم‌های استنتاجی و غیر استنتاجی به صورت ‌سفارشی
  • شکل دهی خودکار به توابع عضویت
  • پشتیبانی از تکنیک‌های آموزش تطبیقی عصبی و خوشه‌بندی فازی
  • امکان تعبیه سیستم استنتاج در مدل سیمولینک

سیستم استنتاج ممدانی چیست؟

حال که با پیاده سازی منطق فازی در متلب و رابط گرافیکی آن آشنا شدیم، بیایید در مورد مغز سیستم صحبت کنیم. مغز یا هوش سیستم همان الگوریتمی است که منطق فازی طبق آن عمل می‌کند. چون سیستم ممدانی پیش فرض نرم‌افزار است، با آن شروع کردیم.

آموزش سیمولینک با نرم‌افزار متلب
آموزش سیمولینک با نرم‌افزار متلب
۱,۰۹۹,۰۰۰ ۷۶۹,۳۰۰ تومان
۳۰%

 

ممدانی و اسیلیان افرادی هستند که این سیستم را در سال ۱۹۷۵ طراحی کردند. این سیستم به طور گسترده‌ای در سیستم‌های پشتیبانی تصمیم در هوش مصنوعی و یادگیری ماشین استفاده می‌شود؛ زیرا طبیعت بصری و تفسیری دارد. دیاگرام کلی سیستم استنتاج فازی ممدانی به شکل زیر است.

سیستم استنتاج ممدانی چیست
آموزش منطق فازی در متلب ۲۶

سیستم استنتاج تاکاگی سوگنو چیست؟

در سال ۱۹۸۵ سیستم استنتاج دیگری با نام تاکاگی سوگنو طراحی شد که بیشتر به نام سوگنو معروف است. طراحان این الگوریتم، تاکاگی و میشو سوگنو بودند. این تکنیک بیشتر در سیستم‌های کنترلی که محاسبات ریاضی پیچیده‌تری دارند استفاده می‌شود. شکل بعدی نشان دهنده دیاگرام سیستم استنتاجی تاکاگی سوگنو در منطق فازی است.

سیستم استنتاج تاکاگی سوگنو چیست؟
آموزش منطق فازی در متلب ۲۷

غیر فازی‌سازی چیست؟

تا اینجا در مورد فازی سازی صحبت کردیم و گفتیم که منظور از این عبارت شرایط نامعلوم است. اما اگر بخواهیم به شرایط معلوم یا قطعی برسیم باید عملیات غیرفازی‌سازی را انجام دهیم. این کلید واژه در منابع مختلف فازی‌ زدایی یا DFuzyy نیز نامیده می‌شود. در واقع به تبدیل اعداد فازی را به اعداد قطعی، فازی زدایی می‌گوییم. روش‌های دفازی عبارت‌اند از:

  • Centroid Of Area (COA) یا مرکز ثقل ناحیه
  • Bisecter Of Area (BOA) یا نیمساز ناحیه
  • Mean Of Maximum (MOM)یا میانگین ماکزیمم
  • Smallest Of Maximum (SOM) یا بیشترین ماکزیمم
  • Largest Of Maximum (LOM) یا کوچک‌ترین ماکزیمم
  • Weighted Average (WM) یا میانگین وزنی
  • Weighted Sum (WS)یا مجموع وزنی

میان موارد معرفی شده گزینه‌ای COA و WM کاربرد گسترده‌تری دارند.

مقایسه سیستم‌های استنتاج فازی ممدانی و سوگنو

الگوریتم ممدانی یک ساختار منطقی نسبتاً ساده را ارائه می‌دهد. در حالی که الگوریتم سوگنو برای سیستم‌هایی که نیاز به محاسبات نسبتاً پیچیده ریاضی دارند مناسب است. مقایسه کلی این دو الگوریتم را در جدول زیر مشاهده می‌کنیم.

ممدانیسوگنو
خروجی قوانین آن تابع عضویت است.خروجی قوانین آن تابع عضویت نیست.
خروجی توزیع شده دارد.خروجی آن توزیع شده نبوده بلکه ترکیبی ریاضی از قدرت قوانین است.
سطح خروجی آن پیوسته نیست.سطح خروجی پیوسته دارد.
به صورت MISO و MIMO است.فقط به صورت MISO است.
دارای قدرت بیانی و تفسیر قوانین است.قدرت تفسیری پایینی دارد.
انواع دفازی سازی SOM، COA، BOA، MOM و LOM را پشتیبانی می‌کند.انواع دفازی سازی WS و WA را پشتیبانی می‌کند.
انعطاف‌پذیری پایینی در طراحی سیستم دارد.انعطاف‌پذیری بالایی در طراحی سیستم دارد.

آموزش ANFIS در متلب

برای پیاده سازی منطق فازی در متلب معمولاً از سیستم‌های استنتاج فازی معروف به نام‌های ممدانی و تاکاگی سوگنو استفاده می‌شود. سیستم دیگری هم وجود دارد که ساختار ANFIS می‌نامیم. این الگوریتم بسیار شبیه سیستم‌های استنتاج فازی عمل می‌کند. این روش از زیر شاخه‌های الگوریتم شبکه عصبی محسوب می‌شود؛ بنابراین در آموزش شبکه عصبی در متلب بیشتر این نام را خواهید شنید.

ANFIS مخفف شده عبارت adaptive network-based fuzzy inference system است. این سیستم یک شبکه تطبیق پذیر و قابل آموزش محسوب می‌شود. به‌عنوان مثال فرض کنید روابط منطقی زیر را داریم.

آموزش ANFIS در متلب
آموزش منطق فازی در متلب ۲۸

در این رابطه دو ورودی x و y به یک خروجی z ختم می‌شوند. سیستم ANFIS این رابطه به شکل زیر خواهد بود.

word image 37067 14
آموزش منطق فازی در متلب ۲۹

بنابراین در لایه اول ورودی‌ها از توابع عضویت عبور می‌کنند.

word image 37067 15
آموزش منطق فازی در متلب ۳۰

لایه‌های ۲ تا ۴ نیز عملیاتی هستند که قرار است روی ورودی‌ها انجام شوند. در نهایت در لایه ۵ خروجی را داریم. این الگوریتم معادل سیستم استنتاج فازی سوگنو است.

دستورات منطق فازی در متلب

تمام دستورات منطق فازی در متلب را می‌توانید از جدول زیر استخراج کنید. دستورات منطق فازی در متلب تقریبا تمام نیاز‌های شما را براورده خواهند کرد.

ردیفکدتوضیحات
۱Fuzzyجهت فراخوانی محیط گرافیکی پیاده‌سازی منطق فازی
۲Anfiseditفراخوانی محیط پیاده سازی شبکه عصبی ANFIS
۳Findclusterفراخوانی محیط ادیتور به منظور دسته بندی فازی
۴Mfeditفراخوانی ادیتور توابع عضویت ورودی و خروجی
۵Surfviewمشاهده سطح قوانین خروجی کنترلرهای فازی
۶Ruleviewمشاهده سطح قوانین کنترلرهای فازی
۷Ruleeditکد تغییر قوانین فازی کنترلرها
۸Dsigmfکد ساخت توابع عضویت مرکب از اختلاف بین ۲ تابع عضویت حلقوی
۹Plotmfبا کاربرد ترسیم توابع عضویت با دریافت مقادیر ورودی
۱۰Plotfisبا کاربرد ترسیم نتایج خروجی توابع عضویت
۱۱Sigmfنمایش تابع عضویت سیگما شکل
۱۲Psigmfنمایش توابع عضویت ساخته شده از ترکیب ۲ تابع عضویت هلالی شکل
۱۳Pimfنمایش توابع عضویت ساخته شده پی شکل
۱۴Gbellmfنمایش توابع عضویت ساخته شده زنگوله شکل عمومی
۱۵Gaussmfنمایش توابع عضویت ساخته شده منحنی گوسینی
۱۶gauss2mfنمایش توابع عضویت ترکیب شده گوسین
۱۷Evalfisدریافت خروجی از سیستم استنتاج فازی
۱۸Defuzzنمایش تابع عضویت حقیقی شده
۱۹Addvarافزودن متغیر به سیستم استنتاج فازی
۲۰Addruleافزودن قوانین به سیستم استنتاج فازی
۲۱Addmfافزودن توابع عضویت به سیستم استنتاج فازی
۲۲Zmfنمایش تابع عضویت Z شکل
۲۳Trimfنمایش تابع عضویت مثلثی شکل
۲۴Trapmfنمایش تابع عضویت ذوزنقه‌ای شکل
۲۵Smfنمایش تابع عضویت S شکل
۲۶Readfisفراخوانی از کردن سیستم استنتاج فازی از طریق فایل
۲۷Parsruleنمایش قوانین فازی تجزیه شده
۲۸Newfisایجاد سیستم استنتاج فازی جدید
۲۹mf2mfنمایش تابع عضویت بین پارامترهای ترجمه شده فازی
۳۰Getfisنمایش خصوصیات سیستم فازی
۳۱Gensurfنمایش سطح خروجی سیستم استنتاج فازی
۳۲Evalmfارزیابی تابع عضویت عمومی
۳۳Fcmدسته بندی C-means فازی
۳۴Anfisورود به محیط ادیتور فازی عصبی تنها از موتور استنتاج سوگنو
۳۵Writefisذخیره سیستم استنتاج فازی در فایل
۳۶Showruleنمایش قوانین سیستم استنتاج فازی
۳۷Showfisنمایش حاشیه در سیستم استنتاج فازی
۳۸Setfisتنظیم خواص سیستم فازی
۳۹Rmvarحذف متغیر از سیستم استنتاج فازی
۴۰Rmmfحذف توابع عضویت از سیستم استنتاج فازی
۴۱genfis1ساختن ساختار سیستم استنتاج فازی با استفاده از داده‌های شبکه بندی شده
۴۲genfis2ساختن ساختار سیستم استنتاج فازی با استفاده از داده‌های کلاس‌بندی کاهشی
۴۳genfis3ساختن ساختار سیستم استنتاج فازی با استفاده از داده‌های کلاس‌بندی روش FCM
۴۴Subclustپیدا کردن مراکز دسته‌ها با دسته‌بندی کاهشی داده‌ها
۴۵Fuzblockکتابخانه شبیه‌سازی منطق فازی
۴۶Sffisصفحه کدنویسی سیستم فازی برای پیکربندی شبیه‌سازی آموزش متلب آسان

سخن پایانی

منطق فازی یکی از علوم مورد استفاده در مباحث علمی مانند هوش مصنوعی و یادگیری ماشین محسوب می‌شود. این الگوریتم توسط دکتر لطفی زاده بهینه سازی شده است. پیاده‌سازی منطق فازی در متلب با توجه به محیط گرافیکی‌ که در اختیار کاربرد قرار می‌گیرید بسیار ساده شده. در این مطلب سعی کردیم یک راهنمای جامع در مورد کار با منطق فازی در متلب ارائه دهیم. برای کسب اطلاعات بیشتر در این مورد می‌توانید از فیلم‌های آموزش متلب که در مکتب خونه وجود دارند استفاده کنید.

آموزش پردازش سیگنال‌های EEG و کار با جعبه‌ابزار EEGLAB
آموزش پردازش سیگنال‌های EEG و کار با جعبه‌ابزار EEGLAB
۱,۶۹۹,۰۰۰ ۱,۰۱۹,۴۰۰ تومان
۴۰%
https://maktabkhooneh.org/mag/fuzzy-logic-in-matlab/
تصویر کامل بهرامی

کامل بهرامی

کامل بهرامی دانش‌آموخته کارشناسی ارشد رشته مهندسی کامپیوتر گرایش نرم‌افزار از دانشگاه ارومیه است. به تولید محتوا در حوزه کامپیوتر، برنامه‌نویسی و هوش مصنوعی علاقه‌مند‌ است و هم اکنون به عنوان عضو تیم سئو و مدیر تیم نویسنده‌های مکتب خونه در این مجموعه فعالیت می‌کند.
0 0 امتیازها
امتیاز دهی به محتوا
مشترک شوید
اطلاع از
guest
1 دیدگاه
قدیمی ترین
جدید ترین دیدگاه با تعداد رای زیاد
بازخورد (Feedback) های اینلاین
نمایش تمام دیدگاه ها
حسن

سلام و وقت بخیر چطور میتونم از تولباکس منطق فازی خروجی بگیرم و کیفیت عکسش پایین نیاد؟