نمايش پست تنها
قديمي ۰۲-۷-۱۳۸۷, ۰۲:۰۷ قبل از ظهر   #1 (لینک دائم)
Siavash Male
Administrator
 
آواتار Siavash
 
تاريخ عضويت: ارديبهشت ۱۳۸۷
محل سكونت: تهران
پست ها: 179
تشكرها: 27
439 تشكر در 108 پست
My Mood: Mehrabon
پيش فرض منطق فازی چیست؟

منطق فازی یا Fuzzy Logic در سال 1965 توسط دکتر لطفی زاده معرفی شد.
منطق فازی در واقع میگه که یه گزاره لزومی نداری یا درست باشه یا غلط (صفر باشه یا یک) ممکنه مثلا یه گزاره 0.7 درست باشه!
درکش یه مقدار در ابتدا سخته! بگذارید یه مثال بزنم، شما از دوستتون می پرسید بنظرت حسین بلنده یا نه؟ دوستتون جواب میده ایییی، بلند نیست اما کوتاه هم نمیشه بهش گفت! اما در منطق باینری (یا منطقی که اکثر ما باهاش تو کامپیوتر آشنا هستیم) هیچ وقت برای یه گزاره همچین جوابی نمیده.
توی منطق باینری ما میگیم اگه قد مساوی یا بلند تر از 175 بود بگو بلند اگه کوتاه تر بود بگو کوتاه! اما آدم اینطوری نیست منطقش مثل مثال قبلی که زدم.
حالا این سوال پیش میاد که ما در حال حاضر از همین منطق باینری جواب های خیلی خوبی میگیریم، فازی به چه دردی میخوره؟
برای جواب به این سوال یه مثال دیگه میزنم! مثلا یه شرکت می خواد یه کارخونه بزنه در فاصله ی ماکزیمم 200 کیلومتری تهران، که به تولید کننده ی یه مدل مواد اولیه نزدیک تر از 10 کیلومتر باشه و قیمت زمین هم اونجا هر چی کمتر باشه بهتر.اول یه بار با منطق باینری میریم پیش، اولین نمونه فاصلش با تهران 190 هست و با مواد اولیه هم 9 کیلومتر فاصله داره و قیمت زمین هم اونجا 2000 واحد هست، چندین تا نمونه دیگه هم برسی میشن که دو شرط اول رو ندارن، در آخر هم یه نمونه پیدا میشه که فاصلش تا تهران 201 کیلومتر هست و فاصلش با مواد اولیه 3 کیلومتره و قیمتش هم 1000 واحده! طبق منطق باینری این نمونه رد میشه چون فاصلش 201 هست و بیشتر از 200! اما حالا فرض کنید خود شما دارین تصمییم میگیرین، می یاین می بینید دو شرط آخر این مورد خیلی بهتر از اولین نمونس و تنها مشکل شرط اوله که 1 کیلومتر بیشتر از اون چیزیه که میخواین، با خودتون میگید خوب 1 کیلومتر در مقابل اون شرایط خوب که چیزی نیس و این مورد آخر رو انتخاب می کنید!
منطق فازی دقیقا همینو میگه! یعنی مثل منطق باینری که کاملا سخت گیرانه شرایط رو چک میکنه عمل نمی کنه بلکه مثل مغز آدم انعطاف پذیره.
این روزا تو خیلی چیزها از منطق فازی استفاده میشه، مثلا چند تاشون که شاید جالب باشن اینان:
  • ترمز های ABS و سیستم کروز.
  • دوربین ها
  • ماشین ظرف شویی
  • آسانسور ها
  • ماشین لباس شویی
  • بازی های رایانه ای
  • شناخت الگو ها
  • سیستم های تهویه
فکر کنم تقریبا فایده ی منطق فازی جا افتاده باشه. برای شروع استفاده از منطق فازی باید یه سری مفاهیم اولیه رو یاد بگیریم.
ببینید منطق فازی در واقع یه راه ساده برای رسیدن به یه نتیجه ی قطعی هستش بر اساس ورودی های ناقص، خطادار یا مبهم! از یه سری قانون خیلی ساده هم پیروی می کنه:
كد:
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 رو نشون میده!
می دونم یه کلمه از چند تا جمله ی قبل نفهمیدین الان بصورت نمودار میبینیدشون و می فهمید که چیز خیلی پیچیده ای نیست!اتفاقا من می خواستم همین الان بگم که هیچی نفهمیدم
" اون که 100 البته. اما عجیبه فقط شما می خواستید اینو بگید. "
...
" عزیزان من، بابا اگه با هم کاری دارید برید بیرون حرفاتونو بزنید، انقدم به هم نچسبین... "
ببخشید، مربوط به درس بود حرفمون!
" میشه بگین چی بوده بقیه هم استفاده کنن؟ "
امممم... بله، ازم پرسیدن عینکمو چن خریدم، منم با توجه به منطق فازی گفتم زیاااااد!
" باز جوابت کمی امیدوار کننده بود. "
خوب حالا که تعریف فازی ست هارو فهمیدیم میریم که اونارو توی نمودار ببینیم و عملگر هارو هم از روی شکل و با توجه به تعریفشون بررسی کنیم:


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


مجموعه ی اول رو در ابتدا در نظر میگیریم. تعریف NOT توی شکل بصورت زیره:

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

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

منبع: سیاوش محمودیان - بلاگ - مقدمه ای بر هوش مصنوعی
__________________
Siavash آفلاين است   پاسخ با نقل قول
از Siavash تشكر كرده اند:
871103024 (۰۶-۴-۱۳۹۳), aa66 (۱۰-۲۸-۱۳۹۰), alirezahedaiaty (۰۳-۲۳-۱۳۹۱), AlirezaSabouri (۰۲-۱۶-۱۳۹۱), arman.haghani (۱۱-۱۱-۱۳۹۴), bahmangh (۱۰-۱۸-۱۳۸۸), cdeb_4975 (۰۳-۲۲-۱۳۹۱), combo_ci (۱۱-۶-۱۳۸۸), dana74 (۱۲-۶-۱۳۸۹), danielxx64 (۰۱-۲-۱۳۹۲), demhen94 (۰۸-۲۸-۱۳۹۲), digicom (۰۴-۲۶-۱۳۹۲), double (۰۳-۲۵-۱۳۹۱), emaadghorbani (۰۳-۷-۱۳۹۲), faramarz_fireboy (۰۸-۱-۱۳۸۹), fkarimi_61 (۰۸-۳-۱۳۹۱), green_Dream (۰۱-۲۷-۱۳۹۰), HAMANN (۰۶-۲۷-۱۳۸۸), hanafi (۱۰-۵-۱۳۸۸), jalal.H (۰۲-۲۷-۱۳۸۹), kingofworlds63 (۰۵-۱۱-۱۳۹۰), m2kz (۱۲-۲-۱۳۹۳), mahdi4 (۰۷-۸-۱۳۹۱), mahdigh (۰۴-۱۱-۱۳۸۹), mahla92 (۰۳-۳-۱۳۹۲), mahmoudinik (۱۲-۸-۱۳۸۸), Mahtab Bahrami (۰۸-۳۰-۱۳۹۰), majid_asgari (۰۸-۲۰-۱۳۸۸), mamad69 (۰۶-۳۱-۱۳۹۲), maryamm (۰۷-۲۴-۱۳۹۱), masoud-h (۰۹-۱۷-۱۳۸۹), mehdi0065 (۱۱-۲۳-۱۳۹۳), mehdi628 (۱۱-۱۴-۱۳۸۹), mhashid (۰۲-۱۹-۱۳۹۲), neilabak (۰۶-۲۷-۱۳۹۱), ohmomid (۰۳-۲۵-۱۳۹۲), ostadonline (۱۱-۱۴-۱۳۸۹), PowerOfMind (۰۵-۱۷-۱۳۹۰), raz71 (۰۷-۱۴-۱۳۹۳), razmmm (۰۹-۱۸-۱۳۹۰), rouhallah (۱۲-۱۹-۱۳۸۸), saba1984 (۰۴-۷-۱۳۹۱), SBM (۰۸-۲۶-۱۳۸۹), shr776 (۰۲-۲۸-۱۳۹۱), sunbook2 (۰۱-۱-۱۳۹۲), taheri-maryam (۱۰-۲۹-۱۳۹۰), taherir47 (۰۸-۲۳-۱۳۸۹), فاطمه زهرا (۱۱-۲۷-۱۳۸۸), پری سپهری (۰۷-۲۷-۱۳۹۳), باویل (۰۲-۱۰-۱۳۹۱), بابا (۰۷-۱۳-۱۳۸۹)

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online