1 :تعداد فایل پیوست
تابع عضويت (Membership Function)
تابع عضويت تابعي است كه ميزان درستي يك كميت (Degree of Truth) را به ازاي زير مجموعه هاي فازي مختلف بيان مي كند. وقتي مي گوييم هوا گرم است اين سوال پيش مي آيد كه هوا چقدر گرم است؟ تابع عضويت به ما خواهد گفت كه به ازاي يك دماي معين، ميزان عضويت (درستي) در وضعيت هواي گرم چقدر خواهد بود؟ ميزان عضويت از صفر تا يك متغير است. تابع عضويت زير را در نظر بگيريد:
محور افقي بيان گر دما بر حسب درجه ي فارنهايت است. مقادير دما روي اين محور قطعي (Crisp) است. خطوط رنگي بيان گر مجموعه هاي فازي (Fuzzy Set) اند: {يخبندان,خنك,گرم,داغ} . حال بياييم بررسي كنيم كه تابع عضويت چگونه ميزان درستي را بر اساس متغير هاي فازي بيان مي كند. محور عمودي نيز ميزان عضويت را بيان مي كند.
دماي 36 درجه ي فارنهايت را در نظر مي گيريم. خطي عمودي از دماي برابر 36 درجه رسم مي كنيم. اين خط افقي زير مجموعه ي يخبندان را در 0.7 و زير مجموعه ي خنك را در 0.3 قطع مي كند ولي زير مجموعه هاي گرم و داغ را قطع نمي كند. با اين اوصاف دماي 36 درجه:
- 70% يخبندان است.
- 30% خنك است.
- 0% گرم است.
- 0% داغ است.
در صد هاي فوق همان ميزان درستي يا عضويت هستند.
توابع عضويت چگونه تعريف مي شوند؟
مثال دما را در نظر بگيريم. شايد از ديد عده اي دماي 36 درجه ي F گرم تلقي شود و از سوي عده اي ديگر خيلي سرد باشد. در نتيجه تابع عضويت براي اين دو دسته متفاوت است. متخصصي كه قصد دارد از منطق فازي استفاده كند بايد بسته به نوع مسئله يك تابع عضويت معقول تعريف كند و در اين كار مي تواند از برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ] و يا داده هاي آماري كمك گيرد. توابع عضويت براي كميت هاي بسيار متنوعي از وضعيت شاخص هاي اقتصادي گرفته تا زاويه ي پره توربين ها قابل تعريف است.
قوانين فازي (Fuzzy Rules)
معرفي عملگر ها:
- OR: در نظريه ي مجموعه ها معادل اجتماع مجموعه (Union) ها و در منطق فازي بيشينه ي عضويت (Conjunction) مجموعه ها است.
- AND: در نظريه ي مجموعه ها معادل اشتراك مجموعه (Intersection) ها و در منطق فازي كمينه ي عضويت (Disjunction) مجموعه ها است.
- NOT: در نظريه ي مجموعه ها معادل متمم يك مجموعه (Complement) و در منطق فازي اختلاف عضويت از مقدار يك است.
قوانين فازي مجموعه اي از متغير هاي فازي اند كه با عملگر هاي فوق با هم تعامل دارند و شروطي را تشكيل مي دهند و پاسخ شروط منجر به تصميماتي مي گردد. در يك قانون فازي تنها مقدار عضويت از بخش شروط به تصميم نسبت داده مي شود. قوانين زير را به عنوان مثال در نظر بگيريد:
اگر وضعيت هوا آفتابي بود آن گاه تند بران.
اگر دماي هوا سرد بود و وضعيت هوا باراني بود آن گاه آهسته بران.
اگر دماي هوا داغ بود يا وضعيت هوا ابري نبود آن گاه تند بران.
قوانين بالا با بررسي دو كميت دماي هوا و وضعيت هوا؛ سرعت رانندگي را تعيين مي كنند.
حال فرض كنيم به ازاي يك دما و پوشش ابر معين، مقدار عضويت از توابع عضويت به شكل زير به دست آمده است:
دماي هوا: {
0.1 سرد ,
0.7 گرم ,
0.2 داغ}
وضعيت هوا: {0.0 باراني , 0.6 ابري , 0.4 آفتابي}
حال مي خواهيم قوانين رو اعمال كنيم:
- مقدار تند راندن = آفتابي بودن هوا = 0.4
- مقدار آهسته راندن = كمينه ي (سرد بودن هوا , باراني بودن هوا) = كمينه ي (0.1 , 0.0) = 0.0
- مقدار تند راندن = بيشينه ي (داغ بودن هوا , ابري نبودن هوا) = بيشينه ي (0.2 , 0.6 - 1) = بيشينه ي (0.2 , 0.4) = 0.4
همان طور كه ملاحظه مي شود، عملگر 'و' معادل MIN و عملگر 'يا' معادل MAX است. همچنين فعل 'نبودن' معادل عضويت - 1 است. با لحاظ نمودن اين عملگر ها روي مقدار عضويت شروط، مقدار عضويت تصميم ها تعيين شد.
1 :تعداد فایل پیوست
كنترل فازي (Fuzzy Control)
كنترل در ديدگاه مهندسي به معني حفظ پايداري (Stability) يك سيستم و تضمين عملكرد (Performance) مطلوب آن است. كنترل فازي روشي است كه براساس منطق فازي سعي مي كند دو عامل پايداري و عملكرد مطلوب سيستم را تامين كند. نكته ي مهم آن است كه سيستم هايي كه ما طراحي مي كنيم ورودي قطعي و خروجي قطعي دارند. مثلا" در يك سيستم اعمال نيرو، سنسور ها يك مقدار قطعي را اندازه گيري مي كنند و يك مقدار مشخص ولتاژ به ورودي سيستم تزريق مي كنند و در نهايت خروحي سيستم يك نيرو با بزرگي معين خواهد بود. اين در حالي است كه منطق فازي با متغير هاي فازي سر و كار دارد.
نقل قول:
حال چطور مي شود با منطق فازي يك سيستم با پارامتر هاي قطعي را كنترل كرد؟
پاسخ آن است كه ابتدا ورودي هاي سيستم را از حالت قطعي تبديل به متغير هاي فازي كنيم. اين عمل فازي كردن (Fuzzification) نام دارد. سپس مي توان روي مجموعه هاي حاصل از فازي كردن قوانين فازي را اعمال كرد كه خروجي باز هم فازي خواهد بود. حال بايد اين خروجي هاي فازي را به خروجي هاي قطعي تبديل كرد كه اين عمل را غير فازي كردن (Defuzzification) مي گويند.
الگوريتم هاي مختلفي جهت اعمال قوانين فازي وجود دارد جهت كنترل يك سيستم وجود دارند كه Fuzzy Inference System يا FIS ناميده مي شوند. دو FIS معروف عبارت اند از:
دو الگوريتم فوق شباهت هاي زيادي به هم دارند كه در ادامه هر دو آن ها را معرفي مي كنيم.
پاسخ: منطق فازي (Fuzzy Logic)
کاش ادامه می دادید
من به ادامه ش نیاز دارم
و صرف معرفی کتاب های زبان اصلی متاسفانه متوجه نمی شم
می دونم مشکل از منه اما اگر بتونید به زبان فارسی توضیحش بدید کار فوق العاده ای کردید که مطمئنا مثل من کم نیستند.
باز هم متشکرم
پاسخ: منطق فازي (Fuzzy Logic)
نقل قول:
کاش ادامه می دادید
من به ادامه ش نیاز دارم
و صرف معرفی کتاب های زبان اصلی متاسفانه متوجه نمی شم
می دونم مشکل از منه اما اگر بتونید به زبان فارسی توضیحش بدید کار فوق العاده ای کردید که مطمئنا مثل من کم نیستند.
باز هم متشکرم
با سلام!
متاسفانه به دلیل گستردگی مطالب و همچنین کمبود زمان، امکان ترجمه ی همه ی منابع در این زمینه وجود نداره.
شما اگر نیاز به آشنایی دقیق تری با مباحث منطق فازی دارید، لطفا عنوان اون شاخه یا منیع از منطق فازی رو مطرح کنید تا در صورت امکان منابع فارسی و یا ترجمه ی منابع پیرامون اون مبحث این جا قرار داده بشه.
به امید خدا از این به بعد وارد برخی از مباحث پایه ای فازی میشم و یک سری از موارد کاربردی تر رو بیان می کنیم و همچنین اشاره ای به مدل سازی فازی خواهیم داشت. ان شاء الله اگه فرصت شد کمی هم مفصل تر در مورد کنترل فازی مبحث می کنیم.
موفق باشید
آرمین
تشدید های فازی (Fuzzy Hedges)
تشدید های فازی متغیر های کلامی ای هستند که سبب ایجاد مجموعه های جدیدی (Secondary Set) با تابع عضویت متفاوت از مجموعه های فازی اولیه (Primary Set) می شوند. به عنوان مثال اگر ما مجموعه ی فازی افراد جوان را در اختیار داشته باشیم می توان از روی آن مجموعه افراد خیلی جوان و یا مجموعه ی افراد تا اندازه ای جوان را شکل دهیم که در آن عبارت های کلامی خیلی و تا اندازه ای تشدید محسوب می شوند. در این جا دو گونه تشدید معرفی خواهند شد:
- تمرکز (Concentration)
- انبساط (Dilation)
تمرکز: تمرکز مجموعه ی فازی A را با CON(A) نمایش می دهند که معادل با عبارت کلامی خیلی است. در صورتی که تابع عضویت مجموعه ی A برابر با μA(x) باشد، تابع عضویت تمرکز آن برابر با 2(μA(x است.
انبساط: انبساط مجموعه ی فازی A را با DIL(A) نمایش می دهند که معادل با عبارت کلامی تا اندازه ای است. در صورتی که تابع عضویت مجموعه ی A برابر با μA(x) باشد، تابع عضویت انبساط آن برابر با 0.5(μA(x است.
مثال: اگر دو مجموعه ی فازی جوان (A)و پیر (B)داشته باشیم، توابع عضویت عبارت های کلامی زیر عبارت خواهند بود از:
نه خیلی جوان و نه خیلی پیر
NOT(CON(A)) AND NOT(CON(B))
max( 1 - 2(μA(x , 1 - 2(μB(x )
تا اندازه ایپیرولی نه خیلی پیر
DIL(B) AND NOT(CON(B))
max( 0.5(μB(x , 1 - 2(μB(x )
فازی و غیر فازی کردن در MATLAB
فازی کردن (Fuzzification)
فازی کردن عبارت است از ارایه ی یک تابع عضویت برای مجموعه ای از داده ها که قرار است در استنتاج فازی مورد استفاده قرار گیرند. نوع تابع عضویت غالبا بستگی به کاربرد مساله و ماهیت داده ها دارد. از جمله راهکار های عمومی برای فازی کردن داده ها، استفاده از خوشه بندی فازی (Fuzzy Clustering) است. یکی از معروف ترین الگوریتم های خوشه بندی فازی Fuzzy c-Means Clustering یا به اختصار FCM نام دارد. FCM با ایده گرفتن از الگوریتم k-means می تواند داده ها را در فضای تعمیم یافته در تعداد خوشه ی دلخواه قرار دهد به طوری که برخلاف k-means هر داده می تواند در چندین خوشه عضو باشد. بدیهی است که میزان عضویت داده ها در هر خوشه می تواند متفاوت باشد. در نرم افزار MATLAB می توان با فرمان fcm به شکل زیر داده ها را خوشه بندی نمود:
کد:
[center,U] = fcm(data,cluster_n)
که در آن:
- data ماتریس داده هایی است که قرار است خوشه بندی شوند.
- cluster_n تعداد خوشه ها است.
- center مرکز خوشه ها در فضای تعمیم یافته است.
- U ماتریس عضویت هر داده در هر خوشه خواهد بود.
مثال:
کد:
data = rand(100, 2);
[center,U,obj_fcn] = fcm(data, 2);
plot(data(:,1), data(:,2),'o');
maxU = max(U);
index1 = find(U(1,:) == maxU);
index2 = find(U(2, :) == maxU);
line(data(index1,1),data(index1, 2),'linestyle','none','marker','*','color','g');
line(data(index2,1),data(index2, 2),'linestyle','none','marker', '*','color','r');
hold on
plot(center(1,1),center(1,2),'sg')
plot(center(2,1),center(2,2),'sr')
غیر فازی کردن (Defuzzification)
غیر فازی کردن عبارت است از استخراج یک مقدار غیر فازی از یک تابع عضویت. این عمل در نرم افزار MATLAB با فرمان defuzz به شکل زیر صورت می گیرد:
کد:
out = defuzz(x,mf,type)
که در آن:
- x ماتریس متغیر خروجی است.
- mf تابع عضویت مربوطه است.
- type تعیین کننده ی روش غیر فازی کردن است. تعیین نوع این روش بستگی به کاربرد دارد که در اینجا از روش مرکز ثقل (centroid) استفاده می شود.
- out مقدار غیر فازی خروجی خواهد بود.
مثال:
کد:
x = -10:0.1:10;
mf = trapmf(x,[-10 -8 -4 7]);
out = defuzz(x,mf,'centroid');
plot(x,mf,'LineWidth',2);
line([out out],[-0.2 1.2],'Color','k');
1 :تعداد فایل پیوست
پیاده سازی یک سیستم کنترل فازی (FLC)
طبق قولی که داده شده بود پیاده سازی یک سیستم کنترل فازی در نرم افزار برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ] از پیوست قابل دریافت است. این پیاده سازی مریوط به یک دوش حمام هوشمند است که با تنظیم دمای آب گرم براساس یک مدل فازی TSK در حضور یک اغتشاش در دبی آب گرم ورودی، دمای آب جهت استحمام را در حد مطلوبی نگه می دارد.
پاسخ: منطق فازي (Fuzzy Logic)
تفاوت منطق فازی و تحلیل خاکستری در چیه؟ منظورم اینه وقتی قراره در تحلیلی به دلیل نبود اطلاعات کافی و هم چنین عدم اطمینان موجود در نظرات تصمیم گیرندگان از رویکردی غیر از رویکرد قطعی استفاده کنیم چطوری می تونیم از بین این تو نظریه یکیشون رو انتخاب کنیم.
ممنون
پاسخ: منطق فازي (Fuzzy Logic)
نقل قول:
تفاوت منطق فازی و تحلیل خاکستری در چیه؟ منظورم اینه وقتی قراره در تحلیلی به دلیل نبود اطلاعات کافی و هم چنین عدم اطمینان موجود در نظرات تصمیم گیرندگان از رویکردی غیر از رویکرد قطعی استفاده کنیم چطوری می تونیم از بین این تو نظریه یکیشون رو انتخاب کنیم.
ممنون
با سلام!
دوست گرامی عضویت شما رو در شهر سخت افزار تبریک میگم.
در تحلیل خاکستری یا Grey Relational Analysis ما با یک مساله رو به رو هستیم که در موردش اطلاعات کافی ندارم تا بتونیم راه حل منحصر بفردی براش ارایه بدیم. با استفاده از GRA میشه راه حل های مناسبی رو برای این مساله ارایه داد که البته الزاما" بهترین راه حل ها نیستند. مثلا" ما برای طراحی یک سیستم چندین آزمایش انجام میدیم و به دلیل محدودیت های موجود فقط می تونیم چند تا فاکتور رو طی این آزمایش ها اندازه بگیرم که در طراحی سیستم کافی نیستند؛ فرضا" دو فاکتور. حالا می خواهیم تعیین کنیم که در کدوم آزمایش براساس این دو فاکتور، عملکرد سیستم بهتر بوده. برای این کار یک پارامتر به عنوان Grey Relational Grade تعریف میشه که آزمایش با عملکرد بهتر رو مشخص می کنه. حال می تونیم براساس داده های اون آزمایش سیستم رو طراحی کنیم.
در واقع ما در جایی که داده هامون ارتباط مشخصی با هم ندارن و می خواهیم این داده ها از جنبه های مختلف در تعیین راه حل مساله تحلیل بشن از GRA استفاده می کنیم. برای آشنایی با یک کاربرد عملی این ابزار می تونید مقاله ی زیر رو مطالعه بفرمایید:
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
در حالی که در منطق فازی شما برای قضاوت و تصمیم گیری در یک سیستم غیر دقیق، پارامتر های اون رو به شکل متغیر های کلامی بیان می کنید. سپس در فضای همین متغیر های کلامی غیر دقیق براساس یک سری قوانین فازی در مورد سیستم و خروجی اون تصمیم گیری می کنید.
در واقع این دو ابزار با دو نگاه متفاوت به فضای عدم قطعیت نگاه می کنند که امیدوارم تفاوت این دو نگاه در اینجا مشخص تر شده باشه.
موفق باشید
آرمین
پاسخ: منطق فازي (Fuzzy Logic)
سلام دوستان..
من 5 زیرفاکتور دارم که در مجموع یک فاکتور میشه..به هر 5 زیرفاکتور بر اساس قاعده ای از 1 تا 5 امتیاز دادم..حالا میخوام این امتیاز ها فازی بشه ..یعنی بین 0 تا 1 بشه.. به عبارتی دیگر مقدار امتیاز هر 5 فاکتور روی هم 1 بشه..یعنی امتیاز به نوعی هر کدوم تخصیص داده بشه که مجموعشون 1 باشه..
پاسخ: منطق فازي (Fuzzy Logic)
نقل قول:
سلام دوستان..
من 5 زیرفاکتور دارم که در مجموع یک فاکتور میشه..به هر 5 زیرفاکتور بر اساس قاعده ای از 1 تا 5 امتیاز دادم..حالا میخوام این امتیاز ها فازی بشه ..یعنی بین 0 تا 1 بشه.. به عبارتی دیگر مقدار امتیاز هر 5 فاکتور روی هم 1 بشه..یعنی امتیاز به نوعی هر کدوم تخصیص داده بشه که مجموعشون 1 باشه..
با سلام!
اون چیزی که در نهایت از این کار به دست میاد یک تابع عضویت فازی هستش ولی الزامی نداره مجموع عضویت ها در کلیه ی مجموعه های فازی برابر یک بشه!
تنها برداشتی که می تونم داشته باشم اینه که:
امتیاز 1 معادل خیلی بد،
امتیاز 2 معادل بد،
امتیاز 3 معادل متوسط،
امتیاز 4 معادل خوب
و امتیاز 5 معادل خیلی خوب هستند.
حالا ما یک تابع عضویت Singleton در نظر می گیریم. در این صورت اگه به پارامتری امتیاز 3 رو بدیم، مقدار عضویت اون در مجموعه ی متوسط برابر یک و در سایر مجموعه ها برابر صفر خواهد بود.
موفق باشید
آرمین:give_rose:
پاسخ: منطق فازي (Fuzzy Logic)
نقل قول:
با سلام!
اون چیزی که در نهایت از این کار به دست میاد یک تابع عضویت فازی هستش ولی الزامی نداره مجموع عضویت ها در کلیه ی مجموعه های فازی برابر یک بشه!
تنها برداشتی که می تونم داشته باشم اینه که:
امتیاز 1 معادل خیلی بد،
امتیاز 2 معادل بد،
امتیاز 3 معادل متوسط،
امتیاز 4 معادل خوب
و امتیاز 5 معادل خیلی خوب هستند.
حالا ما یک تابع عضویت Singleton در نظر می گیریم. در این صورت اگه به پارامتری امتیاز 3 رو بدیم، مقدار عضویت اون در مجموعه ی متوسط برابر یک و در سایر مجموعه ها برابر صفر خواهد بود.
موفق باشید
آرمین:give_rose:
ممنون آرمین خان که جواب دادین.. امتیاز بندی ها رو بدرستی اشاره کردی و همین طوره.. کار من به شیوه ای هستش که باید هر 5زیر فاکتور یه امتیازی بگیرن که در مجموع1 بشه .. من زیاد با تابع ها آشنایی ندارم چون رشتم زیاد به این موارد مربوط نیست.. بیشتر میتونی توضیح بدی و یا اگه من امتیاز بندی هارو بهت بدم یکی رو میتونی به عنوان نمونه انجام بدی تا بیشتر من یاد بگیرم؟
1 :تعداد فایل پیوست
پاسخ: منطق فازي (Fuzzy Logic)
نقل قول:
ممنون آرمین خان که جواب دادین.. امتیاز بندی ها رو بدرستی اشاره کردی و همین طوره.. کار من به شیوه ای هستش که باید هر 5زیر فاکتور یه امتیازی بگیرن که در مجموع1 بشه .. من زیاد با تابع ها آشنایی ندارم چون رشتم زیاد به این موارد مربوط نیست.. بیشتر میتونی توضیح بدی و یا اگه من امتیاز بندی هارو بهت بدم یکی رو میتونی به عنوان نمونه انجام بدی تا بیشتر من یاد بگیرم؟
برای این مسئله تابع عضویت مثلثی به شکل زیر میشه:
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
حالا با توجه به این تابع عضویت و استفاده از برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ] می تونید فاکتور ها رو فازی کنید.
پاسخ: منطق فازي (Fuzzy Logic)
سلام چگونه می توان یک عدد ثابت را در یک عدد فازی ضرب کرد؟ و همچنین نتیجه این ضرب فازی است یا نه؟
پاسخ: منطق فازي (Fuzzy Logic)
نقل قول:
سلام چگونه می توان یک عدد ثابت را در یک عدد فازی ضرب کرد؟ و همچنین نتیجه این ضرب فازی است یا نه؟
با سلام!
دوست گرامی به شهر سخت افزار خوش آمدید.
ضرب یک عدد ثابت در یک عدد فازی براساس اصل توسعه Zadeh صورت می گیرد:
فرض کنیم یک عدد فازی u داریم که تابع عضویت آن mu(x) است و x بین a و b واقع شده است. حال اگر یک عدد ثابت مانند k را در u ضرب کنیم نتیجه یک عدد فازی به اسم v خواهد بود که تابع عضویت آن به شکل زیر تعریف می شود:mv(y) = mu(y/k)
توجه داریم که y بین ka و kb واقع شده است.
موفق باشید
آرمین
1 :تعداد فایل پیوست
آموزش جعبه ابزار فازی در MATLAB
عنوان آموزش: Fuzzy System Toolbox
نویسنده: Olaf Wolkenhauer
سال انتشار: 1999
در 56 صفحه به زبان انگلیسی
پاسخ: منطق فازي (Fuzzy Logic)
دوست عزیز سلام و وقت بخیر
امکان داره در مورد ریاضیات فازی راهنمایی کنید؟
من اصلا نمیفهمم.راستش قابل درک نشده برام.ظاهرا فازی هست و ریاضیاتش و خیلی مهم هست.
ریاضیات پیچیده هم ندیدم داشته باشه اما قابل فهم و درک نیست. شما منبع خاصی پیشنهاد دارید؟ مثال در عمل زده باشه که درک کنیم.
مثلا سریع یک مثال در متلب زده باشه که بفهمیم چی به چی ه
پاسخ: منطق فازي (Fuzzy Logic)
نقل قول:
دوست عزیز سلام و وقت بخیر
امکان داره در مورد ریاضیات فازی راهنمایی کنید؟
من اصلا نمیفهمم.راستش قابل درک نشده برام.ظاهرا فازی هست و ریاضیاتش و خیلی مهم هست.
ریاضیات پیچیده هم ندیدم داشته باشه اما قابل فهم و درک نیست. شما منبع خاصی پیشنهاد دارید؟ مثال در عمل زده باشه که درک کنیم.
مثلا سریع یک مثال در متلب زده باشه که بفهمیم چی به چی ه
با سلام!
برای آشنایی با ریاضیات منطق فازی یکی از منابع خوب کتاب Wang هستش که می تونید از لینک زیر دانلود و مطالعه بفرمایید:
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
در متلب هم می تونید آموزش پست 22 را دنبال کنید.