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

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

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

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

مفاهیم پایه در منطق فازی

در منطق فازی، به جای استفاده از مقادیر درست یا غلط (0 و 1)، از درجه عضویت برای نشان دادن میزان تعلق یک عنصر به یک مجموعه فازی استفاده می شود. درجه عضویت عددی بین 0 و 1 است که نشان می دهد یک عنصر تا چه حد به یک مجموعه فازی خاص تعلق دارد.

برای مثال، در مجموعه فازی “گرم”، درجه عضویت دمای 20 درجه سانتیگراد 0.75 و درجه عضویت دمای 30 درجه سانتیگراد 1 است.

سیستم های استنتاج فازی

سیستم های استنتاج فازی، سیستم هایی هستند که از قوانین فازی برای استنتاج نتایج از ورودی های فازی استفاده می کنند. قوانین فازی به صورت “اگر … آنگاه …” بیان می شوند.

برای مثال، قانون فازی “اگر دما گرم باشد و رطوبت بالا باشد، آنگاه هوا شرجی است” یک نمونه از قانون فازی است.

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

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

  • توابع عضویت: توابع عضویت برای تعریف مجموعه های فازی و محاسبه درجه عضویت عناصر به این مجموعه ها استفاده می شوند.
  • قوانین فازی: قوانین فازی برای بیان روابط بین ورودی ها و خروجی های سیستم فازی استفاده می شوند.
  • سیستم های استنتاج: سیستم های استنتاج برای استنتاج نتایج از ورودی های فازی و قوانین فازی استفاده می شوند.

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

در اینجا، مثالی از کد نویسی یک سیستم ساده منطق فازی برای کنترل دمای یک اتاق ارائه می دهیم:

Matlab
% تعریف مجموعه های فازی
T_cold = [0 20 30 40];
T_warm = [20 30 40 50];
T_hot = [30 40 50 60];

M_low = [0 0.25 0.5 1];
M_medium = [0.25 0.5 0.75 1];
M_high = [0.5 0.75 1 1];

% تعریف قوانین فازی
rule1 = 'if T is T_cold and M is M_low then H is M_low';
rule2 = 'if T is T_cold and M is M_medium then H is M_medium';
rule3 = 'if T is T_cold and M is M_high then H is M_high';
rule4 = 'if T is T_warm and M is M_low then H is M_medium';
rule5 = 'if T is T_warm and M is M_medium then H is M_medium';
rule6 = 'if T is T_warm and M is M_high then H is M_high';
rule7 = 'if T is T_hot and M is M_low then H is M_medium';
rule8 = 'if T is T_hot and M is M_medium then H is M_high';
rule9 = 'if T is T_hot and M is M_high then H is M_high';

% سیستم استنتاج
system = fuzzy.fis('tempctrl');

% اضافه کردن ورودی ها و خروجی ها
system = addinput(system, 'T', T_cold, T_hot);
system = addinput(system, 'M', M_low, M_high);
system = addoutput(system, 'H', M_low, M_high);

% تعریف قوانین فازی
system = addrule(system, rule1);
system
 

 

کد نویسی منطق فازی در متلب در علوم رایانه و همچنین سایر رشته های آکادمیک و مشاغلی که با تجزیه و تحلیل آمار درگیر هستند، کاربرد دارد. برای اولین بار نظریه منطق فازی توسط پروفسور لطفی زاده با نام fuzzy logic در عرصه کامپیوتر معرفی شد. این نظریه فضای گسترده بین 0 و 1 را در نظر می‌گیرد و مفهوم ” شاید” را ارائه می‌کند.

کد نویسی منطق فازی در متلب شامل چه سرفصل‌هایی می شود؟

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

  1. معرفی محاسبات فازی
  2. آشنایی با روابط فازی
  3. آشنایی با روش های استنتاج با منطق فازی
  4. تعریف متغیر ها
  5. معرفی سیستم استنتاج عصبی- فازی در نرم افزار متلب
  6. آشنایی با خوشه بندی و نحوه کد نویسی آن
  7. آموزش کد نویسی فازی در نرم افزار متلب برای استخراج چند خروجی
  8. معرفی رابط های گرافیکی
  9. آشنایی با ساختار شبکه ای ANFIS
  10. نحوه فازی سازی مساله و کد نویسی فازی

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

Facebook
Twitter
LinkedIn
Telegram
نظرات

مقالات مرتبط

ثبت سفارش

  • این فیلد برای اعتبار سنجی است و باید بدون تغییر باقی بماند .