در منطق فازی (Fuzzy Logic)، درستی یک عبارت به صورت یک درجه بیان میشود. مثلاً گفته میشود که درجه درست بودن یک جمله برابر 80% است.
منطق فازی براصل مجموعههای فازی (Fuzzy sets) استوار است که با مجموعههای کلاسیک متفاوت است. آنچه که تاکنون در مورد مجموعهها میدانستیم این است که یک مجموعه مثل A شامل تعدادی اشیاء است که به آنها اعضای مجموعه میگویند. فرض کنید x عضوی از یک مجموعه کلی به نام مجموعه جهانی یا مجموعه مرجع X باشد.
آنگاه x یا کاملاً در مجموعه A قرار دارد یا اصلاً در آن مجموعه قرار ندارد. به چنین مجموعههایی، مجموعه Crisp گفته میشود.
برای هر مجموعه A، یک تابع عضویت (Membership Function) تعریف میکنند و آن را با mA نشان میدهند که فقط میتواند دو مقدار 0 و 1 را اختیار کند. این تابع، درجه عضویت هر شیء در یک مجموعه را توصیف میکند.
اگر x عضو A باشد mA(x)=1 و اگر x عضو آن نباشد:
mA(x)=0
خواهد بود. بنابراین تابع mA، یک تابع از اعضای مجموعه X به مجموعه
{0,1}
است، یعنی به هر عضو مجموعه X یک عدد 0 یا 1 نسبت میدهد.
مثال 1- مجموعه افراد بلندقد را افرادی با قد بلندتر از 180 سانتیمتر تعریف میکنیم. در این صورت، اگر قد یک فرد 181 سانتیمتر باشد بلندقد است و اگر 179 سانتیمتر باشد بلندقد نخواهد بود مثال 2- فرض کنید مجموعه افراد میانسال را افرادی با رده سنی 40 تا 55 سال در نظر بگیریم. در این صورت، فردی با سن 39 سال یا 56 سال جزو مجموعه افراد میانسال نخواهد بود.
اما این چیزی نیست که در واقعیت میبینیم. در واقع، برای دو مفهوم "بلندقد" و "میانسال" مرز مشخصی قائل نیستیم. یک فرد با قد 179 سانتیمتر را نیز جزو افراد بلندقد به شمار میآوریم و یا اینکه فردی با سن 39 سال یا 56 سال را نیز جزو افراد میانسال در نظر میگیریم. اینطور نیست که یک فرد 39 سال را جوان در نظر بگیریم و یک سال بعد، این فرد یک فرد میانسال باشد. برخی دیگر از این قبیل مفاهیم که مرز مشخصی ندارند، عبارتند از: سریع، بزرگ، متوسط و غیره. این مفاهیم را نمیتوان با مجموعههای Crisp بیان کرد. در چنین مواقعی از مجموعههای فازی استفاده میکنیم (مانند شکل 3). هر مجموعه فازی با یک تابع عضویت نمایش داده میشود که به طور پیوسته بین 0 و 1 تغییر میکند. در یک مجموعه فازی، درجه عضویت یک عضو میتواند مقداری بین 0 و 1 باشد
اگر A یک مجموعه فازی باشد، تابع عضویت mA، یک تابع از اعضای مجموعه X به بازه اعداد حقیقی [0,1] است، یعنی به هر عضو مجموعه X یک عدد در این بازه اختصاص میدهد. بنابراین مجموعه فازی A را میتوان با یک سری زوج مرتب به صورت (x, mA(x)) نمایش داد.
فرض کنید A مجموعه افراد بلندقد باشد. اگر فردی دارای قد 180 سانتیمتر باشد آنگاه با توجه به شکل 3 میتوان نوشت: mA(180)=0.5، یعنی درجه عضویت این فرد در مجموعه A برابر 0.5 است. همچنین میتوان نوشت: mA(185)=1 و mA(175)=0.
همچنین فرض کنید B مجموعه افراد میانسال باشد. در این صورت با توجه به شکل 3، یک فرد با سن 42 سال با درجه 0.7 به مجموعه B تعلق دارد، یعنی mB(42)=0.7. به همین ترتیب، میتوان نوشت: mB(55)=0.5 و mB(50)=1.
یک مثال تکمیلی: فرض کنید سن 9 نفر را به عنوان مجموعه مرجع X در نظر بگیریم:
X = {5, 15, 25, 35, 45, 55, 65, 75, 85}
مجموعههای A، B و C را به ترتیب مجموعه افراد جوان، میانسال و پیر تعریف میکنیم. آنگاه میتوان درجه عضویت هر یک از اعضای X در سه مجموعه فوق را به صورت زیر بیان کنیم:
A={ (5,0), (15,0.2), (25,1), (35,0.8), (45,0.4), (55,0.1), (65,0), (75,0), (85,0) }
B={ (5,0), (15,0), (25,0), (35,0.3), (45,1), (55,0.8), (65,0.1), (75,0), (85,0) }
C={ (5,0), (15,0), (25,0), (35,0), (45,0), (55,0.2), (65,0.7), (75,1), (85,1) }
برای مثال زوج (15,0.2) در مجموعه A به این معنی است که درجه عضویت فرد 15 ساله در مجموعه A (مجموعه افراد جوان) برابر 0.2 است و یا (35,0.8) یعنی درجه عضویت فرد 35 ساله در مجموعه A برابر 0.8 است. یک فرد 55 ساله، با درجه 0.1 جزو افراد جوان (مجموعه A)، با درجه 0.8 جزو افراد میانسال (مجموعه B) و با درجه 0.2 جزو افراد پیر (مجموعه C) محسوب میشود.
تا اینجا به معرفی مجموعههای فازی پرداخته شده است. منطق فازی نیز مشابه مجموعه فازی است. در منطق فازی، درجه درستی یک عبارت منطقی میتواند مقداری بین 0 و 1 داشته باشد. برای مثال، اگر فرد x دارای قد 180 سانتیمتر باشد، آنگاه درجه یا میزان درست بودن عبارت "x بلندقد است" برابر 0.5 است.