منطق فازي چيست؟
پيشينه منطق فازي
تئوري مجموعههاي فازي و منطق فازي را اولين بار پرفسور لطفيزاده (2) در رسالهاي به نام <مجموعههاي فازي - اطلاعات و كنترل> در سال 1965 معرفي نمود. هدف اوليه او در آن زمان، توسعه مدلي كارآمدتر براي توصيف فرآيند پردازش زبانهاي طبيعي بود. او مفاهيم و اصلاحاتي همچون مجموعههاي فازي، رويدادهاي فازي، اعداد فازي و فازيسازي را وارد علوم رياضيات و مهندسي نمود. از آن زمان تاكنون، پرفسور لطفي زاده به دليل معرفي نظريه بديع و سودمند منطق فازي و تلاشهايش در اين زمينه، موفق به كسب جوايز بينالمللي متعددي شده است.
پس از معرفي منطق فازي به دنياي علم، در ابتدا مقاومتهاي بسياري دربرابر پذيرش اين نظريه صورت گرفت.
بخشي از اين مقاومتها، چنان كه ذكر شد، ناشي از برداشتهاي نادرست از منطق فازي و كارايي آن بود. جالب اينكه، منطق فازي در سالهاي نخست تولدش بيشتر در دنياي مشرق زمين، بهويژه كشور ژاپن با استقبال روبهرو شد، اما استيلاي انديشه كلاسيك صفر و يك در كشورهاي مغرب زمين، اجازه رشد اندكي به اين نظريه داد. با اين حال به تدريج كه اين علم كاربردهايي پيدا كرد و وسايل الكترونيكي و ديجيتالي جديدي وارد بازار شدند كه بر اساس منطق فازي كارميكردند، مخالفتها نيز اندك اندك كاهش يافتند.
در ژاپن استقبال از منطق فازي، عمدتاً به كاربرد آن در روباتيك و هوش مصنوعي مربوط ميشود. موضوعي كه يكي از نيروهاي اصلي پيشبرندهِ اين علم طي چهل سال گذشته بوده است. در حقيقت ميتوان گفت بخش بزرگي از تاريخچه دانش هوش مصنوعي، با تاريخچه منطق فازي همراه و همداستان است.
مجموعههاي فازي
بنياد منطق فازي بر شالوده نظريه مجموعههاي فازي استوار است. اين نظريه تعميمي از نظريه كلاسيك مجموعهها در علم رياضيات است. در تئوري كلاسيك مجموعهها، يك عنصر، يا عضو مجموعه است يا نيست. در حقيقت عضويت عناصر از يك الگوي صفر و يك و باينري تبعيت ميكند. اما تئوري مجموعههاي فازي اين مفهوم را بسط ميدهد و عضويت درجهبندي شده را مطرح ميكند. به اين ترتيب كه يك عنصر ميتواند تا درجاتي - و نه كاملاً - عضو يك مجموعه باشد. مثلاً اين جمله كه <آقاي الف به اندازه هفتاددرصد عضو جامعه بزرگسالان است> از ديد تئوري مجموعههاي فازي صحيح است. در اين تئوري، عضويت اعضاي مجموعه از طريق تابع (u(x مشخص ميشود كه x نمايانگر يك عضو مشخص و u تابعي فازي است كه درجه عضويت x در مجموعه مربوطه را تعيين ميكند و مقدار آن بين صفر و يك است (فرمول 1).

به بيان ديگر، (u(x نگاشتي از مقادير x به مقادير عددي ممكن بين صفر و يك را ميسازد. تابع (u(x ممكن است مجموعهاي از مقادير گسسته (discrete) يا پيوسته باشد. وقتي كهu فقط تعدادي از مقادير گسسته بين صفر و يك را تشكيل ميدهد، مثلاً ممكن است شامل اعداد 3/0 و 5/0 و 7/0 و 9/0 و صفر و يك باشد. اما وقتي مجموعه مقاديرu پيوسته باشند، يك منحني پيوسته از اعداد اعشاري بين صفر و يك تشكيل ميشود.
شكل 1 نموداري از نگاشت پيوسته مقادير x به مقادير (u(x را نشان ميدهد. تابع (u(x در اين نمودار ميتواند قانون عضويت در يك مجموعه فازي فرضي را تعريف كند.

منطق فازي چگونه بهكار گرفته ميشود؟
منطق فازي را از طريق قوانيني كه <عملگرهاي فازي> ناميده ميشوند، ميتوان بهكار گرفت. اين قوانين معمولاً بر اساس مدل زير تعريف ميشوند:
IF variable IS set THEN action
به عنوان مثال فرض كنيد ميخواهيم يك توصيف فازي از دماي يك اتاق ارائه دهيم. در اين صورت ميتوانيم چند مجموعه فازي تعريف كنيم كه از الگوي تابع (u(x تبعيت كند. شكل 2 نموداري از نگاشت متغير <دماي هوا> به چند مجموعه فازي با نامهاي <سرد>، <خنك>، <عادي>، <گرم> و <داغ> است. چنان كه ملاحظه ميكنيد، يك درجه حرارت معين ممكن است متعلق به يك يا دو مجموعه باشد

به عنوان نمونه، درجه حرارتهاي بين دماي T1 و T2 هم متعلق به مجموعه <سرد> و هم متعلق به مجموعه <خنك> است. اما درجه عضويت يك دماي معين در اين فاصله، در هر يك از دو مجموعه متفاوت است. به طوري كه دماي نزديك T2 تنها به اندازه چند صدم در مجموعه <سرد> عضويت دارد، اما نزديك نوددرصد در مجموعه <خنك> عضويت دارد.
اكنون ميتوان بر اساس مدل فوق قانون فازي زير را تعريف كرد:
اگر دماي اتاق <خيلي گرم> است، سرعت پنكه را <خيلي زياد> كن.
اگر دماي اتاق <گرم> است، سرعت پنكه را <زياد> كن.
اگر دماي اتاق <معتدل> است، سرعت پنكه را در <همين اندازه> نگهدار.
اگر دماي اتاق <خنك> است، سرعت پنكه را <كم> كن.
اگر دماي اتاق <سرد> است، پنكه را <خاموش> كن.
اگر اين قانون فازي را روي يك سيستم كنترل دما اعمال كنيم، آنگاه ميتوانيم دماسنجي بسازيم كه دماي اتاق را به صورت خودكار و طبق قانون ما، كنترل ميكند. اما اين سؤال پيش ميآيد كه اگر دو يا چند قانون همزمان براي يك متغير ورودي فعال شود چه اتفاقي خواهد افتاد؟ فرض كنيد دماي اتاق برابر Tx1 است در اين صورت هم قانون مربوط به اتاق گرم و هم قانون مربوط به دماي اتاق معتدل صادق است و مقادير U1 و U2 به ترتيب به دست ميآيد. طبق كدام قانون بايد عمل كرد؟ لطفيزاده خود پاسخ اين معما را نداد. در سال 1975 دو دانشمند منطق فازي به نام ممداني (Mamdani) و آسيليان اولين كنترل فازي واقعي را طراحي كردند. آنان پاسخ اين معما را با محاسبهِ نقطه ثقل (C) مساحتي كه از تركيب دو ذوزنقه زير U1 و U2 در شكل 3 پديد آمده و نگاشت آن به محور t و به دست آوردن مقدار Tx2 حل كردند.
منطق فازي، همچون منطق كلاسيك تعدادي عملگر پايه دارد. مثلاً در منطق كلاسيك از عملگرهاي AND و OR وNOT استفاده ميشود كه دانش آموزان رشته رياضي فيزيك در دبيرستان با آنها آشنا ميشوند. در منطق فازي معادل همين عملگرها وجود دارد كه به آنها عملگرهاي <زاده> ميگويند. اين عملگرها به صورت زير تعريف ميشوند: (فرمول 2)
به عنوان مثال تركيب AND دو متغير x و y عبارت است از كمينه مقادير (u(x و (u(y. به عبارت سادهتر، آنجا كه هم x و y از نظر فازي <صحيح> باشند، همزمان مقادير (u(x و (u(y به كمترين مقدار خود ميرسند.
كاربردهاي منطق فازي
منطق فازي كاربردهاي متعددي دارد. سادهترين نمونه يك سيستم كنترل دما يا ترموستات است كه بر اساس قوانين فازي كار ميكند. سالهاست كه از منطق فازي براي كنترل دماي آب يا ميزان كدرشدن آبي كه لباسها در آن شسته شدهاند در ساختمان اغلب ماشينهاي لباسشويي استفاده ميشود.
امروزه ماشينهاي ظرفشويي و بسياري از ديگر لوازم خانگي نيز از اين تكنيك استفاده ميكنند. منطق فازي در صنعت خودروسازي نيز كاربردهاي فرواني دارد. مثلاً سيستم ترمز و ABS در برخي از خودروها از منطق فازي استفاده ميكند. يكي از معروفترين نمونههاي بهكارگيري منطق فازي در سيستمهاي ترابري جهان، شبكه مونوريل (قطار تك ريل) توكيو در ژاپن است. ساير سيستمهاي حركتي و جابهجايي بار، مثل آسانسورها نيز از منطق فازي استفاده ميكنند.
سيستمهاي تهويه هوا نيز به وفور منطق فازي را بهكار ميگيرند. از منطق فازي در سيستمهاي پردازش تصوير نيز استفاده ميشود. يك نمونه از اين نوع كاربردها را ميتوانيد در سيستمهاي <تشخيص لبه و مرز> اجسام و تصاوير(3) مشاهده كنيد كه در روباتيك نيز كاربردهايي دارد. به طور كلي خيلي از مواقع در ساختمان سيستمهاي تشخيص الگوها (Pattern Recognition) مثل سيستمهاي تشخيص گفتار و پردازش تصوير از منطق فازي استفاده ميشود.
