• اگر سمپادی هستی همین الان عضو شو :
    ثبت نام عضویت

مقدمه‌ای از منطق فازی

  • شروع کننده موضوع
  • #1

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
899
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
حتماً بارها شنیده‌اید که کامپیوتر از یک منطق صفر و یک تبعیت می‌کند. درچارچوب این منطق، چیزها یا درستند یا نادرست، وجود دارند یا ندارند. اماانیشتین می‌گوید: <آن‌جایی که قوانین ریاضیات (کلاسیک) به واقعیات مربوط می‌شوند، مطمئن نیستند و آنجا که آن‌ها مطمئن هستند، نمی‌توانند به واقعیت اشاره داشته باشند.> هنگامی که درباره درستی یا نادرستی پدیده‌ها و اشیایی صحبت می‌کنیم که در دنیای واقعی با آن‌ها سروکار داریم،توصیف انیشتین تجسمی است از ناکارآمدی قوانین کلاسیک در علم ریاضیات. ازاین رو می‌بینیم اندیشه نسبیت شکل می‌گیرد و توسعه می‌یابد. در این مقاله می‌خواهیم به اختصار با منطق فازی آشنا شویم. منطقی که دنیا را نه به صورت حقایق صفر و یکی، بلکه به صورت طیفی خاکستری از واقعیت‌ها می‌بیند و درهوش مصنوعی کاربرد فراوانی یافته ‌است.

کجا اتومبیل خود را پارک می‌کنید؟
تصور کنید یک روز مطلع می‌شوید، نمایشگاه پوشاکی در گوشه‌ای از شهر برپاشده است و تصمیم می‌گیرید، یک روز عصر به اتفاق خانواده سری به این نمایشگاه بزنید. چون محل نمایشگاه کمی دور است، از اتومبیل استفاده می‌کنید، اما وقتی به محل نمایشگاه می‌رسید، متوجه می‌شوید که عده زیادی به آنجا آمده‌اند و پارکینگ نمایشگاه تا چشم کار می‌کند، پر شده است.
اما چون حوصله صرف وقت برای پیدا کردن محل دیگری جهت پارک اتومبیل ندارید،با خود می‌گویید: <هر طور شده باید جای پارکی در این پارکینگ پیداکنم.> سرانجام در گوشه‌ای از این پارکینگ محلی را پیدا می‌کنید که یک ماشین به طور کامل در آن جا نمی‌شود، اما با کمی اغماض می‌شود یک ماشین رادر آن جای داد، هرچند که این ریسک وجود دارد که فضای عبور و مرور دیگرخودروها را تنگ کنید و آن‌ها هنگام حرکت به خودرو شما آسیب برسانند. امابه هرحال تصمیم می‌گیرید و ماشین خود را پارک می‌کنید. (و کار اشتباهی میکنین :D)
بسیارخوب! اکنون بیایید بررسی کنیم شما دقیقاً چه کار کردید؟ شما دنبال جای توقف یک اتومبیل می‌گشتید. آیا پیدا کردید؟ هم بله، هم نه. شما در ابتدا می‌خواستید ماشین را در جای مناسبی پارک کنید. آیا چنین عملی انجام دادید؟ از یک نظر بله، از یک دیدگاه نه. در مقایسه با وقت و انرژی لازم برای پیداکردن یک مکان راحت برای توقف خودرو، شما جای مناسبی پیدا کردید. چون ممکن نبود تا شب دنبال جا بگردید و چنین جایی را پیدا کنید. اما از این نظر که اتومبیل را در جایی پارک کردید که فضای کافی برای قرارگرفتن ماشین شما نداشت، نمی‌توان گفت جای مناسبی است.

اگر به منطق کلاسیک در علم ریاضیات مراجعه کنیم و این پرسش را مطرح نماییم که قبل از ورود به پارکینگ چند درصد احتمال می‌دادید جایی برای پارک‌کردن پیدا کنید، پاسخ بستگی به این دارد که واقعاً چه تعداد مکان مناسب (فضای کافی) برای توقف خودروها درآنجا وجود داشت؟ اگر به حافظه خود رجوع کنید، شاید به یاد بیاورید که هنگام ورود به پارکینگ و چرخیدن در قسمت‌های مختلف آن، گاهی خودروهایی رامی‌دیدید که طوری پارک کرده‌اند که مکان یک و نیم خودرو را اشغال کرده‌اند. بعضی دیگر نیز کج و معوج پارک کرده بودند و این فکر از ذهن شما چندبار گذشت که اگر صاحب بعضی از این خودروها درست پارک ‌کرده بودند، الان جای خالی برای پارک کردن چندین ماشین دیگر هم وجود داشت.
با علم ریاضیات و آمار و احتمال در مواجهه با چنین شرایطی قادر به پاسخگویی نیستیم. اگر قرار بود بر اساس منطق صفر و یک یا باینری کامپیوتر، روباتی ساخته شود تا اتومیبل شما را در یک مکان مناسب پارک‌ کند، احتمالش کم بود. چنین روباتی به احتمال زیاد ناکام از پارکینگ خارج می‌شد. پس شما با چه منطقی می توانستید اتومبیل خود را پارک‌ کنید؟ شما از منطق فازی استفاده کردید.

دنیای فازی‌

می‌پرسم <هواابری است یا آفتابی؟> پاسخ می‌دهی: نیمه‌ابری. می‌پرسم <آیا همهآنچه که دیروز به من گفتی، راست بود؟> پاسخ می‌دهی: بیشتر آن حقیقتداشت. ما در زندگی روزمره بارها از منطق فازی استفاده می‌کنیم.

واقعیت این است که دنیای صفر و یک، دنیایی انتزاعی و خیالی است. به ندرت پیش می‌آید موضوعی صددرصد درست یا صددرصد نادرست باشد؛ زیرا در دنیای واقعی در بسیاری از مواقع، همه‌چیز منظم و مرتب سرجایش نیست.

تئوری مجموعه‌های فازی و منطق فازی را اولین بار پرفسور لطفی‌زاده در رساله‌ای به نام <مجموعه‌های فازی - اطلاعات و کنترل> در سال 1965معرفی نمود. از نخستین روز تولد اندیشه فازی، بیش از چهل سال می‌گذرد. دراین مدت نظریه فازی، چارچوب فکری و علمی جدیدی را در محافل آکادمیک ومهندسی معرفی نموده و دیدگاه دانشمندان را نسبت به کمّ و کیف دنیای اطرافمان تغییر داده است. منطق فازی جهان‌بینی بدیع و واقع‌گرایانه‌ای است که به اصلاح شالوده ‌منطق علمی و ذهنی بشر کمک شایانی کرده‌است.

کاربردهای منطق فازی‌

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


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

سیستم‌های تهویه هوا نیز به وفور منطق فازی را به‌کار می‌گیرند. از منطق فازی در سیستم‌های پردازش تصویر نیز استفاده می‌شود. یک نمونه از این نوع کاربردها را می‌توانید در سیستم‌های <تشخیص لبه و مرز> اجسام وتصاویر مشاهده کنید که در روباتیک نیز کاربردهایی دارد. به طور کلی خیلی از مواقع در ساختمان سیستم‌های تشخیص الگوها (Pattern Recognition) مثل سیستم‌های تشخیص گفتار و پردازش تصویر از منطق فازی استفاده می‌شود.

منطق فازی و هوش مصنوعی‌

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

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

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

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

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

شرکت Massive Software که به دلیل به‌کارگیری منطق فازی برای ایجاد هوش‌مصنوعی در طراحی لشکریان فیلم‌ ارباب حلقه‌ها برنده جایزه اسکار شد، بعداً این تکنیک را در فیلم‌های دیگری همچونI.Robot و King Kong نیز به‌کار برد.

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

منبع مطلب
 
  • شروع کننده موضوع
  • #2

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
899
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
منطق فازی و آموزش آن

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

کد:
IF x AND y THEN z
IF a OR b THEN c
همونطور که می دونید if در زبان برنامه نویسی چیز جدیدی نیست! اما با یه مثال ساده شاید بشه فرقش رو نشون داد.
در نظر بگیرید دارید یه سیستم تهویه طراحی می کنید، توی سیستم های فازی بجای استفاده از شرط هایی مثل temprature>60C یا 30C<temprature<60C از اصطلاحات زیر استفاده می کنیم:
کد:
IF temperature IS very cold THEN stop fan
IF temperature IS cold THEN turn down fan
IF temperature IS normal THEN maintain level
IF temperature IS hot THEN speed up fan
دقیقا مثل وقتی که شما توی ماشین نشستین، می بینید هوا خیلی گرمه بدون اینکه دمای دقیق توی ماشین رو بدونید کولر ماشین رو روشن می کنید و روی دمای کم میگذارید!
اگر دقت کنید هیچ ELSEی وجود نداره، چون دما می تونه هم سرد باشه هم متوسط با درجه های مختلف!
اپراتور های AND، OR و NOT که باهاشون توی منطق باینری آشنا هستیم توی منطق فازی هم وجود دارن.
قبل از تعریف این عملگر ها باید بدونیم مجموعه های فازی یا Fuzzy sets به چه معنی هستند. همونطور که گفتیم توی منطق فازی درجه ی درستی لزوما نباید 0 یا 1 باشه و یه گزاره می تونه مثلا 0.3 درست باشه.
بعد گفتیم که تو منطق فازی می تونیم از هوای گرم یا قد بلند صحبت کنیم، اما باید اول اونارو برای سیستم فازی‌مون تعریف کنیم! هر کدوم از این دسته ها یه مجموعه ی فازی رو تشکیل می‌دن.
در واقع یه مجموعه ی فازی یه جفت (A, m) هست که A یه مجموعه هست و m یه تابع با دامنه ی A و برد [0,1]. به ازای هر x عضو (A,m(x)) درجه ی عضویت یا درستی x رو نشون میده!
شاید درست چند تا جمله ی قبلی رو نفهمیدین؛ الان بصورت نمودار می‌بینیدشون و می‌فهمید که چیز خیلی پیچیده ای نیست!
خوب حالا که تعریف فازی ست هارو فهمیدیم میریم که اونارو توی نمودار ببینیم و عملگر هارو هم از روی شکل و با توجه به تعریفشون بررسی کنیم:

6.gif

به عنوان مثال این شکل مجموعه ی فازی جوان رو نشون میده، شما وقتی از دوستتون می پرسین بنظرت علی جوونه؟
دوستتون اگه علی 17 سالش باشه میگه آره، اگه 25 سالش باشه میگه اییی، آره هنوز میشه بهش گفت جوونه، اگه 28 سالش باشه میگه خیلی جوون نیس و اگه 50 سالش باشه میگه نه!
این مجموعه ی فازی هم در واقع همین رو میگه! همونطور که میبینید قبل از 20 سال m(B) یک هست، یعنی 0 تا 20 کاملا عضو مجموعه ی جوان هست، هر چی که میریم جلوتر عضویت توی مجموعه ی جوانی کمتر شده، توی 25 سالگی درجه ی عضویت یا درستی 0.5 هست و توی 28 سالگی 0.2 و بعد از 30 سالگی 0 که یعنی از این سن به بعد اصلا جوان نیست!

بنظرم الان یکم بهتر مطلب جا افتاده باشه! حالا فرض کنید دو تا مجموعه ی فازی زیر رو داشته باشیم:

7.gif

8.gif

مجموعه ی اول رو در ابتدا در نظر میگیریم. تعریف NOT توی شکل بصورت زیره:
9.gif
یا به عبارتی:
کد:
NOT A = (1 - m(A))
خوب حالا دو مجموعرو که بالاتر نمودارشون هست رو در نظر بگیرین، تعریف AND روی اون دو مجموعه بصورت زیره:
10.gif

یا به عبارتی:
کد:
A AND B = minimum(m(A), m(B))
OR هم قاعدتا تا الان حدس زدید به چه صورت خواهد بود:
کد:
A OR B = maximum(m(A), m(B))
خوووووب! اینم مقدماتی بود از منطق فازی. البته اینا مفاهیم خیلی اولیه ی منطق فازی بودن، اما توی کار از همین مفاهیم خیلی ساده و ترکیبشون می‌شه نتایج خیلی عاقلانه ای گرفت.
ما تا اینجا فقط به پروسه ی Fuzzification پرداختیم! بعد از اینکه عملیات فازی روی سیستم انجام شد در نهایت یه جواب قطعی می خوایم. برای رسیدن به یه جواب قطعی از پروسه ی Defuzzification استفاده میشه.


منبع: سیاوش محمودیان - بلاگ - مقدمه ای بر هوش مصنوعی
 
بالا