“وقتی پیچیدگی زیاد شود، عبارات دقیق، معنای خود و عبارات بامعنا، دقت خود را از دست میدهند.”
لطفی زاده.
مقدمه — سیستم های فازی چیست؟
انجام خیلی از کارها برای انسانها راحت است، اما برای ماشینها کارهایی پرچالش محسوب میشوند. قدم زدن در محیطی ناهموار، بلند کردن اجسام شکننده یا پارک کردن ماشین، نمونههایی از این کارها هستند.
توانایی انسان در مواجهه با دادههای مبهم و غیردقیق، انجام چنین کارهایی را برای ما آسان میکند. بنابراین، اگر هدف ما این است که فعالیتهای کنترلی یک اپراتور انسانی را بازتولید کنیم، باید بتوانیم فعالیتهای اپراتور را مدل کنیم و مدلسازی خود دستگاه، چاره ساز نیست. مدل ما باید به گونهای ساخته شود که توانایی مواجهه با اطلاعات مبهم را داشته باشد.
سیستمهای مبتنی بر منطق فازی دقیقا همین کار را انجام میدهند. آنها در مواقعی که سیستمها پیچیده هستند، بسیار عالی عمل میکنند و در بسیاری از برنامهها، از تشخیص صدا و دستخط گرفته تا کنترل سرعت واگن مترو، با موفقیت مورد استفاده قرار گرفتهاند.
منطق و مجموعههای قطعی
منطق کلاسیک بر مبنای مجموعه قطعی (crisp set) شکل گرفته است. در یک مجموعه قطعی، گروهی از اشیا متمایز، به عنوان یک مجموعه در نظر گرفته میشوند. به عنوان مثال، رنگهای سفید و قرمز، در نوع خود، اشیا متمایز و جداگانهای محسوب میشوند، اما میتوان آنها را به عنوان یک مجموعه به صورت {قرمز، سفید} در نظر گرفت.
طبق قرارداد، مجموعههای قطعی با حرف بزرگ نشان داده میشوند. بنابراین، میتوان مثال قبل را به صورت زیر نشان داد:
F = {قرمز، سفید}
یک زیرمجموعه قطعی از یک مجموعه گسترده، به این صورت تعریف می شود که عناصر مجموعه، با توجه به برخی شرایط، متعلق به زیر مجموعه باشند. به عنوان مثال، مجموعه A را میتوان مجموعهای متشکل از اعداد بزرگتر یا مساوی 4 و کوچکتر یا مساوی 12 تعریف کرد. این تعریف را میتوان به صورت زیر نمایش داد:
A = { i | یک عدد صحیح است i و 4 <= i <= 12 }
نمایش گرافیکی زیرمجموعه فوق در صورتی امکان پذیر خواهد بود که ابتدا مفهوم تابع مشخصه یا تابع شاخص (characteristic or indicator function) یک مجموعه را معرفی کنیم. در این مثال، تابع بر روی اعداد صحیح – که آن را با X نشان میدهیم – تعریف شده است که نشان دهنده عضویت عناصر زیرمجموعه A در X است. بدین منظور، به عناصری از X که در A هستند، مقدار 1 و به عناصری از X که در A نیستند، مقدار 0 را اختصاص میدهیم. بنابراین در این مثال، تابع مشخصه این مجموعه به صورت زیر قابل نمایش است:
و به صورت گرافیکی، به شکل زیر نمایش داده میشود:
اشتراک دو مجموعه، مجموعهای است که دربرگیرنده تمام عناصر مشترک هر دو مجموعه باشد. اجتماع دو مجموعه، مجموعهای است از عناصری که در هر یک از مجموعهها وجود دارد.
متمم مجموعه A، مجموعهای است شامل همه عناصری که در A وجود ندارد.
مجموعه های فازی چیست؟
مجموعههای فازی، در سال 1965 توسط لطفی زاده (2017 – 1921) معرفی شدند.
برخلاف مجموعههای قطعی، یک مجموعه فازی این اجازه را میدهد که یک عنصر، به صورت نسبی متعلق به یک مجموعه باشد. این عضویت نسبی، توسط درجه عضویت (degree of membership) تعریف شده و با نشان داده میشود. درجه عضویت، میتواند مقداری بین صفر (برای عنصری که اصلا به مجموعه تعلق ندارد) تا 1 (برای عنصری که کاملا به مجموعه تعلق دارد) اختیار کند.
بدیهی است که اگر همه مقادیر متعلق به مجموعه بجز 0 و 1 را حذف کنیم، مجموعه فازی به یک مجموعه قطعی که در بخش قبل شرح داده شد، تبدیل میشود.
تابع عضویت مجموعه، رابطهای است که بین عناصر مجموعه و درجه تعلق آنها برقرار است. شکل زیر، یک نمونه تابع عضویت برای دما را به تصویر میکشد:
در مثال بالا، مجموعههای فازی، دمای یک موتور را از خیلی سرد (v_cold) تا خیلی گرم (v_hot) توصیف میکنند. مقدار بیانگر میزان عضویت یک عنصر در این مجموعه است. به عنوان مثال، میتوان اینگونه بیان کرد که در دمای 80 درجه، موتور با ضریب 0.2 بسیار گرم (v_hot) و با ضریب 0.8 گرم (hot) است.
هم رویش منتشر کرده است:
آموزش یادگیری ماشین از صفر --- یادگیری سریع و آسان
در بخش قبل، عملگرهای اجتماع، اشتراک و متمم مجموعههای قطعی، به عنوان راهی برای بیان پیوند یا عطف (and) و تفکیک یا فصل (or) مجموعهها مورد بحث قرار گرفتند که ابزارهای مهمی در استدلال به حساب میآیند.
متداول ترین روش محاسبه اجتماع دو مجموعه فازی، اعمال عملگر حداکثر بر روی مجموعه هاست. روشهای دیگری نیز وجود دارد، از جمله استفاده از عملگر ضرب بر روی دو مجموعه. به طرز مشابه، متداول ترین روش محاسبه اشتراک دو مجموعه فازی، اعمال عملگر حداقل بر روی مجموعه هاست. متمم یک مجموعه فازی، با تفریق تابع عضویت مجموعه از 1 محاسبه میشود.
یک نتیجه گیری مهم، این است که یک عنصر، همزمان میتواند درجهای از تعلق را هم در یک مجموعه و هم در متمم آن مجموعه داشته باشد. بنابراین به عنوان مثال، عنصر x هم میتواند متعلق به مجموعه A باشد و هم متعلق به مجموعه ‘not-A’.
سیستم های استنباط فازی
یک سیستم فازی، مخزنی است از دانش تخصصی فازی که میتواند به جای منطق دقیق بولی (Boolean logic)، دادهها را با استفاده از عبارات مبهم استدلال کند. دانش تخصصی، مجموعهای از توابع عضویت فازی و یک سری قوانین فازی (که با عنوان پایگاه قوانین یا rule-base شناخته می شوند) است که به صورت زیر نمایش داده میشوند:
IF (conditions are fulfilled) THEN (consequences are inferred)
اگر (شرایط برآورده شوند)(= مقدم) آنگاه (نتایج استنباط میشوند)(= تالی)
پیکربندی اساسی یک سیستم فازی، به صورت زیر قابل نمایش است:
انواع سیستم های فازی متداول
یک سیستم فازی متداول را میتوان به چهار قسمت اصلی تقسیم کرد:
بخش فازی ساز (fuzzifier)، پایگاه دانش (knowledge base)، موتور استنباط ( inference engine) و بخش غیرفازی ساز (defuzzifier).
بخش فازی ساز
یک ورودی قطعی حقیقی را به یک تابع فازی تبدیل میکند و در نتیجه، درجه عضویت ورودی، با یک مفهوم مبهم تعیین میشود. در برخی از کنترلرها، مقادیر متغیرهای ورودی، به دامنهای از مقادیر جهانی موضوع مربوطه نگاشته میشود. دامنه (domain) و وضوح (resolution) مجموعههای فازی ورودی و تاثیر آنها بر روند فازی سازی، به عنوان عوامل موثر بر عملکرد کلی کنترلر در نظر گرفته میشوند.
پایگاه دانش
شامل دانش حوزه کاربرد و اهداف کنترلی کاربر است. این بخش را میتوان به دو قسمت تقسیم کرد:
یک پایگاه داده از تعاریف مورد استفاده برای بیان قوانین کنترلی زبانی در کنترلر، و یک پایگاه قوانین که دانش در اختیار متخصصین آن حوزه را توصیف میکند. پایگاه دانش، هسته اصلی یک کنترلر فازی به شمار میآید، چرا که تمامی اطلاعات لازم برای انجام وظایف اجرایی سیستم را دربرمیگیرد. محققان مختلف، از تکنیک های گوناگونی برای تنظیم مناسب پایگاه دانش یک کنترلر فازی استفاده کرده اند. بسیاری از آنها، از سایر ابزارهای هوش مصنوعی نظیر الگوریتم ژنتیک یا شبکه های عصبی نیز بهره میگیرند.
هم رویش منتشر کرده است:
آموزش شبکه عصبی مصنوعی -- از صفر به زبان ساده
موتور استنباط
منطق تصمیم گیری کنترلر را تامین میکنند. این بخش، اقدامات کنترل فازی را با بکارگیری مفاهیم فازی و قوانین فازی، استنباط میکند. از بسیاری جهات، میتوان این بخش را تقلیدی از سیستم تصمیم گیری انسان دانست.
فرایند غیرفازی سازی
مقادیر کنترل فازی را به مقادیر قطعی تبدیل میکند. یعنی یک نقطه را به یک مجموعه فازی متصل میکند، با توجه به این موضوع که آن نقطه، به پشتیبانی مجموعه فازی تعلق دارد. روشهای زیادی برای غیرفازی سازی وجود دارد که مشهورترین آنها، روش مرکز مساحت (centre-of-area) یا مرکز ثقل (centre-of-gravity) است.
سایر روشهای غیرفازی سازی، عبارتند از روش اولین حداکثر (first of maxima) و روش میانگین حداکثر (mean of maxima).
بسیاری از مدلهای استنباط، برای استدلال کردن خروجیهای یک سیستم با توجه به ورودیها، از مجموعههای فازی استفاده میکنند.
یکی از محبوبترین روشها، توسط پروفسور آبه ممدانی (Abe Mamdani) ابداع شد که در آن، مجموعههای فازی برای کنترل موتور بخار مورد استفاده قرار میگرفتند. یک مدل محبوب دیگر، توسط پروفسور توموهیرو تاکاگی (Tomohiro Takagi) و پروفسور میشیو سوگنو (Michio Sugeno) ساخته شده است.
در مدل استنباطی ممدانی، مقدمات (antecedents) و تالیهای (consequents) یک قانون فازی، مجموعههای فازی هستند. این استنباط بر اساس مدوس پوننز (Modus Ponens) تعمیم یافته است که بیان میدارد درجه حقیقت تالی یک قانون فازی، همان درجه حقیقت مقدم قانون است.
در مواردی که بیش از یک بند مقدم وجود دارد، هر درجه عضویت، توسط عملگر t-norm با یکدیگر تلفیق میشوند. اگر سیستم فازی شامل چند قانون باشد، تالیهای آنها با استفاده از عملگر حداکثر s-norm، با یکدیگر ترکیب میشوند.
غیرفازی سازی نیز از آنجا ضروری است که میتوان عمل تالی را به صورت مقادیری قطعی بیان کرد. یک نمایش گرافیکی از این فرایند در شکل زیر نشان داده شده است:
در مدل استنباط تاکاگی-سوگنو، تالیها به شکل توابعی هستند که مقادیر قطعی ورودی را به خروجی قطعی برای قانون نگاشت میکنند. بنابراین، قوانین فازی به این شکل هستند:
IF x IS X and y IS Y THEN z=f(x,y)
که در آن، f به طور کلی، یک تابع خطی از X و Y است. برخلاف سیستمهای فازی ممدانی، قوانین با استفاده از عملگر حداکثر، ترکیب نمیشوند بلکه ترکیب آنها، با پیدا کردن یک میانگین وزن دار صورت میگیرد. در این حالت، وزن یک قانون، برابر با درجه عضویت مقدم آن است. در نتیجه، سیستمهای تاکاگی-سوگنو، نیازی به غیرفازی سازی ندارند.
طراحی یک سیستم فازی
در این بخش، یک سیستم ساده به عنوان مثال طراحی شده و برای تجسم نحوه طراحی و اجرای یک سیستم استنباط فازی، مورد بررسی قرار میگیرد. فرض کنید این سیستم، قرار است سرعت یک پنکه را با توجه به دما و رطوبت محیط کنترل کند. بنابراین، سیستم ما شامل دو ورودی، یعنی دما و رطوبت، و یک خروجی است که همان سرعت پنکه است.
اولین قدم در طراحی سیستم موردنظر ما، تعریف مجموعههای فازی برای توصیف متغیرهای ورودی و خروجی است. برای سادگی کار، هر متغیر را با سه مجموعه فازی به صورت زیر مشخص میکنیم:
Temperature: Cold, Medium, Hot
Humidity: Dry, Normal, Wet
Fan Speed: Slow, Moderate, Fast
(دما : سرد، معتدل، گرم
رطوبت: خشک، عادی، مرطوب
سرعت پنکه: آهسته، متوسط، سریع)
شکل زیر، نمایش گرافیکی متغیرهای ورودی و خروجی سیستم ما و مجموعههای مربوط به هر یک را نشان میدهد:
خوب است به این مطلب اشاره کنیم که در شکل بالا، از مجموعههای مثلثی، برای توصیف بیشتر مجموعههای این سیستم استفاده شده است. هرچند، رطوبت عادی (normal) با استفاده از یک مجموعه ذوزنقهای مشخص شده است. مجموعههای فازی، انعکاس دهنده دانش کاربری است که سیستم را طراحی میکند. بنابراین، میتوان از اشکال بسیار متنوعی برای توصیف مجموعههای فازی استفاده کرد.
توجه داشته باشید که برای توصیف خروجی نیز از مجموعههای فازی استفاده شده است. بنابراین، سیستمی که در نظر گرفتهایم، از نوع ممدانی است. بدین معنا که با استفاده از قوانین فازی، مجموعههای فازی مربوط به ورودیهای سیستم را به مجموعههای فازی مرتبط با خروجی سیستم پیوند میدهد.
در مجموع، 9 قانون فازی برای توصیف دانش مورد نیاز برای راه اندازی پنکه ما مورد استفاده قرار میگیرد که به صورت زیر قابل بیان هستند:
If Temperature is Cold and Humidity is Dry Then Fan Speed is Slow
If Temperature is Medium and Humidity is Dry Then Fan Speed is Slow
If Temperature is Cold and Humidity is Dry Then Fan Speed is Slow
If Temperature is Hot and Humidity is Dry Then Fan Speed is Moderate
If Temperature is Medium and Humidity is Normal Then Fan Speed is Moderate
If Temperature is Cold and Humidity is Wet Then Fan Speed is Moderate
If Temperature is Hot and Humidity is Normal Then Fan Speed is Fast
If Temperature is Hot and Humidity is Wet Then Fan Speed is Fast
If Temperature is Medium and Humidity is Wet Then Fan Speed is Fast
این قوانین را میتوان با استفاده از ترکیب پایگاه قوانین فازی، به تصویر کشید. یعنی به صورت یک جدول که در آن، مجموعههای فازی ورودی، گوشههای جدول را تشکیل میدهند به نحوی که هر سلول از این جدول، بیانگر یک قانون فازی است. شکل زیر، پایگاه قوانین این سیستم را نشان میدهد:
هنگامی که یک ترکیب ورودی به سیستم اعمال میشود، مراحل زیر اجرا میشوند. به عنوان مثال فرض کنید دمای محیط 18 درجه و میزان رطوبت 60درصد باشد. آنگاه:
– درجه عضویت برای هر مجموعه از متغیرهای ورودی تعیین میشود. بنابراین، میتوان گفت که دمای 18 درجه است.
0.48 Cold (سرد)
0.29 Medium(متوسط)
0.00 Hot(گرم)
همچنین رطوبت 60 درصد است.
0.0 Wet(مرطوب)
1.0 Normal(عادی)
0.0 Dry(خشک)
– با این ترکیب ورودی، همانطور که در پایگاه قوانین فازی بروز شده زیر قابل مشاهده است، دو قانون با درجه بالاتر از صفر اجرا میشوند:
و بنابراین، خروجی فازی به دو صورت خواهد بود: سرعت آهسته با فعال سازی 0.48 و سرعت متوسط با فعال سازی 0.29. اثر ترکیب شده این دو قانون یا خروجی فازی سیستم، در شکل زیر آورده شده است:
در نهایت، مجموعه خروجی با استفاده از روش مرکز ثقل، غیرفازی میشود و مقدار قطعی 36.814 برای راه اندازی پنکه بدست میآید.
نتیجه گیری
در این مقاله، با اختصار، به معرفی مجموعههای فازی و استنباط فازی پرداختیم. سپس نشان دادیم که چگونه میتوان با استفاده از عبارتهای زبانی به منظور ارائه دانش بشری، سیستمها را کنترل کرد. در مقالات بعدی، یک سیستم استنتاج فازی را به کمک پایتون پیاده سازی خواهیم کرد.
کلیدواژگان
سیستم های فازی چیست | سیستم های هوشمند فازی چیست | تعریف سیستم های فازی | سیستم های فازی چیست به زبان ساده | سیستم های فازی به زبان ساده | مجموعه های فازی چیست | مجموعه های فازی را تعریف کنید | مقاله مجموعه های فازی | مجموعه های فازی به زبان ساده | مقدمه ای بر نظریه مجموعه های فازی | نظریه مجموعه های فازی | مجموعههای فازی | انواع سیستم های فازی متداول | طراحی یک سیستم فازی | طراحی سیستم فازی | طراحی یک سیستم خبره فازی | سیستم های استنباط فازی | سیستم های استنباط فازی چیست | سیستم استنباط فازی | منطق فازی چیست | تعریف منطق فازی | منطق فازی چیست با مثال | سیستم منطق فازی چیست | مدل منطق فازی چیست
منبع
a-very-brief-introduction-to-fuzzy-logic-and-fuzzy-systems
1 دیدگاه برای “سیستم های فازی چیست؟ — مقدمهای بر منطق فازی و سیستمهای فازی ”
سلام وقت به خیر ویدیو ضبط شده منطق فازی در سایت نیست؟