هوش مصنوعی آزاد:منطق فازی
خواهشمندیم با اضافه کردن منابع، کتابها، مقالات و افزودن متنهای مفید به تکمیل این صفحه کمک کنید.
محتویات
کلیات منطق فازی
در این قسمت توضیحات مختصر و مفیدی راجع به سرفصل منطق فازی نوشته میشود. برای یادگیری بیشتر میتوانید از لینکهایی که قرار داده شده استفاده کنید. برای آموزش میتوانید از منابع آموزشی معرفی شده در این صفحه استفاده کنید. همچنین میتوانید برای آموزش بیشتر در قسمت مشارکت آموزشی مشارکت داشته باشید.
منطق فازی
خلاصهای از توضیحات منابع معرفی شده ( منابع استفاده شده در حال حاضر منطق فازی در ویکیپدیا و کتابهای معرفی شده در قسمت منابع)
منطق فازی (به انگلیسی: fuzzy logic) اولین بار در پی تنظیم نظریهٔ مجموعههای فازی به وسیلهٔ پروفسور لطفی زاده (۱۹۶۵ م) در صحنهٔ محاسبات نو ظاهر شد. واژه ی fuzzy به معنای غیر دقیق، ناواضح و مبهم (شناور) است.
کاربرد این مبحث در علوم نرمافزاری را میتوان به طور ساده اینگونه تعریف کرد: منطق فازی از منطق ارزشهای "صفر و یک" نرمافزارهای کلاسیک فراتر رفته و درگاهی جدید برای دنیای علوم نرمافزاری و رایانهها میگشاید، زیرا فضای شناور و نامحدود بین اعداد صفر و یک را نیز در منطق و استدلالهای خود به کار میگیرد. منطق فازی از فضای بین دو ارزش "برویم" یا "نرویم"، ارزش های جدید "شاید برویم" یا "میرویم اگر" یا حتی "احتمال دارد برویم" را استخراج کرده و به کار میگیرد. بدین ترتیب به عنوان مثال مدیر بانک پس از بررسی رایانهای بیلان اقتصادی یک بازرگان میتواند فراتر از منطق "وام میدهیم" یا "وام نمیدهیم" رفته و بگوید: "وام میدهیم اگر ..."
دانش مورد نیاز برای بسیاری از مسائل مورد مطالعه به دو صورت متمایز ظاهر میشود:
- دانش صریح مثل مدلها و معادلات و فرمولهای ریاضی که از پیش تنظیم شده و برای حل و فصل مسائل معمولی فیزیک، شیمی، یا مهندسی مورد استفاده قرار میگیرد.
- دانش ضمنی مثل دانستنیهایی که تا حدودی قابل توصیف و بیان زبانشناختی بوده، ولی امکان کمّی کردن آنها با کمک ریاضیات سنتی معمولاً وجود ندارد. به این نوع دانش، دانش ضمنی یا دانش تلویحی (Tacit knowledge) گفته میشود.
از آن جا که در عمل هر دو نوع دانش مورد نیاز است منطق فازی میکوشد آنها را به صورتی منظم، منطقی، و ریاضیاتی بایکدیگر هماهنگ گرداند.
منطق فازی از جمله منطقهای چندارزشی بوده و بر نظریه مجموعههای فازی تکیه میکند. مجموعههای فازی خود از تعمیم و گسترش مجموعههای قطعی به صورتی طبیعی حاصل میآیند.
مجموعههای قطعی (Crisp sets) در واقع همان مجموعههای عادی و معمولی هستند که در ابتدای نظریه مجموعهها معرفی میشوند. افزودن صفت قطعی به واقع وجه تمایزی را ایجاد مینماید که به کمک آن میشود یکی از مفاهیم ابتکاری و حیاتی در منطق فازی موسوم به تابع عضویت را به آسانی در ذهن به وجود آورد.
در حالت مجموعههای قطعی، تابع عضویت فقط دو مقدار در برد خود دارد (در ریاضیات، برد یک تابع برابر با مجموعه تمام خروجیهای تابع است).
آری و خیر (یک و صفر) که همان دو مقدار ممکن در منطق کلاسیک هستند. بنابراین:
1 اگر x مطعلق به مجموعه باشد
0 اگر x مطعلق به مجموعه نباشد
که در اینجا μA تابع عضویت عنصر x در مجموعه قطعی A است.
مجموعههای فازی: برد تابع عضویت از {0, 1} در مورد مجموعههای قطعی به بازهٔ بستهٔ [0, 1] برای مجموعههای فازی تبدیل میشود.
متغیرهای زبانی: متغیرهای زبانی به متغیرهایی گفته میشود که مقادیر مورد قبول برای آنها به جای اعداد، کلمات و جملات زبان طبیعی یا زبان ماشینی هستند.
همانگونه که در محاسبات ریاضی از متغیرهای عددی استفاده میگردد، در منطق فازی نیز از متغیرهای زبانی (گفتاری یا غیر عددی) استفاده میگردد. متغیرهای زبانی بر اساس ارزشهای زبانی (گفتاری) که در مجموعه عبارت (کلمات/اصطلاحات) قرار دارند بیان میشود. عبارت زبانی (Linguistic terms) صفاتی برای متغیرهای زبانی هستند. به عنوان مثال: متغیر زبانی «سن» بسته به تقسیمات مورد نظر شخصی و شرایط میتواند مجموعه عباراتی از قبیل «نوجوان»، «جوان»، «میان سال» و «سالمند» باشد.
مجموعه عبارات (اصطلاحات) فازی (سن) = { «جوان»، «نه جوان»، «نه چندان جوان»، «خیلی جوان»،... ، «میان سال»، «نه چندان میان سال»...، «پیر»، «نه پیر»، «خیلی پیر»، «کم و بیش پیر»...، «نه خیلی جوان و نه خیلی پیر»، «نه جوان و نه پیر»...
یا در مثالی دیگر، فشار(خون) را میتوان متغیری زبانی در نظر گرفت، که ارزشهایی (خصوصیتهایی) از قبیل پایین، بالا، ضعیف، متوسط و قوی را میتواند در خود جای دهد. به زبان ریاضی داریم (T = Terms):
{پایین، بالا، ضعیف، متوسط، قوی} = (فشار)T
توابع عضویت: درجه عضویت μA بیانگر میزان عضویت عنصر x به مجموعه فازی Ă است. اگر درجه عضویت یک عنصر از مجموعه برابر با صفر باشد، آن عضو کاملاً از مجموعه خارج است و اگر درجه عضویت یک عضو برابر با یک باشد، آن عضو کاملاً در مجموعه قرار دارد. حال اگر درجه عضویت یک عضو مابین صفر و یک باشد، این عدد بیانگر درجه عضویت تدریجی میباشد.
عدم قطعیت : صفت عدم قطعیت، به صورت های گوناگون، در همهٔ زمینهها و پدیدهها صرف نظر از روش شناسی مورد کاربرد جهت مطالعه، طراحی، و کنترل پدیدار میشود. مفاهیم نادقیق بسیاری در پیرامون ما وجود دارند که آنها را به صورت روزمره در قالب عبارتهای مختلف بیان میکنیم. به عنوان مثال: «هوا خوب است» هیچ کمیتی برای خوب بودن هوا مطرح نیست تا آن را بطور دقیق اندازهگیری نماییم، بلکه این یک حس کیفی است. در واقع مغز انسان با در نظر گرفتن عوامل گوناگون و بر پایه تفکر استنتاجی جملات را تعریف و ارزش گذاری مینماید که الگوبندی آنها به زبان و فرمولهای ریاضی اگر غیر ممکن نباشد، کاری بسیار پیچیده خواهد بود. منطق فازی فناوری جدیدی است که شیوههایی را که برای طراحی و مدل سازی یک سیستم نیازمند ریاضیات پیچیده و پیشرفتهاست، با استفاده از مقادیر زبانی و دانش فرد خبره جایگزین میسازد.
هدف اصلی آنست که تا حد امکان، رایانهها بتوانند مسائل و مشکلات بسیار پیچیده ی علمی را با همان سهولت و شیوایی بررسی و حل و فصل کنند که ذهن انسان قادر به ادراک و اخذ تصمیمات سریع و مناسب است.
در جهان واقعیات، بسیاری از مفاهیم را آدمی به صورت فازی (به معنای غیر دقیق، ناواضح و مبهم) درک میکند و به کار میبندد. به عنوان نمونه، هر چند کلمات و مفاهیمی همچون گرم، سرد، بلند، کوتاه، پیر، جوان و نظائر اینها به عدد خاص و دقیقی اشاره ندارند، اما ذهن انسان با سرعت و با انعطاف پذیری شگفتآوری همه را میفهمد و در تصمیمات و نتیجهگیریهای خود به کار میگیرد. این، در حالی ست که ماشین فقط اعداد را میفهمد و اهل دقّت است. اهداف شیوههای نو در علوم کامپیوتر آن است که اولاً رمز و راز اینگونه تواناییها را از انسان بیاموزد و سپس آنها را تا حد امکان به ماشین یاد بدهد.
توضیحات
مجموعهٔ فازی و توابع عضویت
منطق فازی به منظور استنتاج در مورد مجموعههای فازی به کار میرود که متفاوت از مجموعههای قطعی میباشند. مجموعههای قطعی از طریق اعضایی که در آن عضو هستند شناخته میشوند؛ یعنی یک عضو یا به مجموعهٔ قطعی تعلق دارد یا ندارد. در حالی که مجموعههای فازی شامل اعضایی با درجهٔ عضویت مخصوص به خود میباشند؛ به طوری که یک عضو میتواند با درجهٔ عضویتهای متفاوت عضو مجموعهٔ A و مجموعه مکمل Á باشد. در نتیجه تعریف یک مجموعهٔ فازی خیلی طبیعی مینماید و بیشتر به دنیای واقعی شباهت دارد. در دنیای واقعی موجودات فقط در یک حالت یا حالت مقابل آن نیستند.
برای تعریف مجموعه، باید اعضایش دقیقاً را مشخص نمود. مجموعهٔ فازی Ă به وسیلهٔ تابع عضویت μA با رابطهٔ زیر تعریف می شود.
Ă={{x,μx}}
x: عضو ، μx : درجهٔ عضویت
μA ← {۰،۱}
مجموعهٔ فازی بر روی x به وسیلهٔ یک تابع عضویت μx تعریف میشود. هیچ محدودیتی در نوع تابع عضویت به جز برد آن که باید [۰،۱] باشد، وجود ندارد.
در حالت مجموعههای قطعی، تابع عضویت فقط دو مقدار در برد خود دارد (در ریاضیات، برد یک تابع برابر با مجموعه تمام خروجیهای تابع است). در حالی که مقدار عضویت مجموعههای فازی میتواند یک مقدار حقیقی دلخواه بین صفر تا یک باشد. هر چه مقدار درجهٔ عضویت به یک نزدیکتر باشد، درجهٔ تعلق x به مجموعهٔ فازی Ă بیشتر است. اگر درجهٔ عضویت یک عنصر از مجموعه برابر با صفر باشد، آن عضو کاملاً از مجموعه خارج است و اگر درجه عضویت یک عضو برابر با یک باشد، آن عضو کاملاً در مجموعه قرار دارد
- مجموعه اعداد طبیعی و کوچک تر از ۵ به صورت فازی و قطعی
مجموعهٔ قطعی: {1,2,3,4}
مجموعهٔ فازی: { (1,0.2),(2,0.4),(3,0.6),(4,0.8) }
- مجموعهٔ فازی دما
اگر بخواهیم دما (سرد، معتدل،گرم) را به صورت یک مجموعهٔ قطعی بنویسیم
- دمای کمتر از ۲۰ درجه: سرد
- دمای بین ۲۰ تا ۳۰ درجه:معتدل
- دمای بالای ۳۰ درجه: گرم
قصد داریم، دماهای ۲۹ درجه، ۲۱ درجه و ۱۹ درجه را بررسی کنیم.
میزان دما | سرد | معتدل | گرم |
۲۹ | ۰ | ۱ | ۰ |
۲۱ | ۰ | ۱ | ۰ |
۱۹ | ۱ | ۰ | ۰ |
در مجموعههای قطعی دمای ۱۹ درجه متعلق به مجموعهٔ سرد و دمای ۲۱ درجه متعلق به مجموعهٔ معتدل میباشد در صورتی که اختلاف دمای این دو تنها ۲ درجه میباشد و شاید نتوان در این روش به درستی میزان دما را بر اساس سردی و اعتدال و گرمی بررسی کرد. حال به صورت فازی این سه دما را بررسی کرده و نتایج را مقایسه میکنیم
میزان دما | سرد | معتدل | گرم |
۲۹ | ۰ | ۰/۴ | ۰/۶ |
۲۱ | ۰/۴ | ۰/۶ | ۰ |
۱۹ | ۰/۸ | ۰/۲ | ۰ |
این نمودار این موضوع را به طور دقیق توضیح میدهد
به طور مثال دمای ۳۱ درجه با درجهٔ عضویت ۰/۴ به مجموعهٔ معتدل و با درجهٔ عضویت ۰/۶ به مجموعهٔ گرم و به مجموعهٔ سرد اصلاً تعلق ندارد.
این بررسی نشان میدهد که مجموعههای فازی توصیف دقیقتری را از پدیدههایی که با آنها روبهرو هستیم، میدهد.
هنگامی که دما را در مجموعههای فازی بیان میکنیم، دستهبندی موجب ایجاد تفاوت اجباری مثل مجموعههای قطعی نمی شود و رضایت خاطر هر فردی با نتایج حاصل برآورده می شود. در کل مجموعههای فازی به درک و احساس بشر نزدیکتر است.
اعمال اساسی مجموعهها
- اجتماع: اگر B,A دو مجموعه دلخواه باشند. اجتماع B,A برابر است با ماکزیمم تابع عضویت مجموعه B,A و آن را به صورتμA∪B(x) نشان میدهیم.
μA∪B(x) = max(μA(x),μB(x))
- اشتراک: اگر B,A دو مجموعه دلخواه باشند آنگاه اشتراک آنها برابر است با مینیمم تابع عضویت مجموعه B,A و آن را به صورت A∩B نشان میدهند.
μA∩B(x) = min(μA(x),μB(x))
- متمم: اگر S یک مجموعه باشد و A زیر مجموعهای از آن باشد. آن متمم مجموعهA حاصل کسر تمام اعضای A ازیک است و آن را با Ā یا μnot A(x) نشان میدهند.
μĀ(x) = 1-μA(x))
متغیرهای زبانی
ما در زبان طبیعی و استدلالهای انسانی از متغیرهایی که مقادیر آنها گنگ و مبهم هستند بیشتر استفاده میکنیم تا متغیرهای معمولی که مقادیر آنها دقیق و کامل مشخص اند.متغیرهای زبانی به متغیرهایی گفته میشود که مقادیر مورد قبول برای آنها به جای اعداد، کلمات و جملات زبانهای انسانی یا ماشینی هستند.در منطق فازی از متغیرهای زبانی (گفتاری یا غیر عددی) استفاده میگردد. متغیرهای زبانی بر اساس ارزشهای زبانی (گفتاری) که در مجموعه عبارت (کلمات/اصطلاحات) قرار دارند بیان میشود. عبارت زبانی (Linguistic terms) صفاتی برای متغیرهای زبانی هستند. به عنوان مثال: متغیر زبانی «سن» بسته به تقسیمات مورد نظر شخصی و شرایط میتواند مجموعه عباراتی از قبیل «نوجوان»، «جوان»، «میان سال» و «سالمند» باشد.
مجموعه عبارات (اصطلاحات) فازی (سن) = { «جوان»، «نه جوان»، «نه چندان جوان»، «خیلی جوان»،... ، «میان سال»، «نه چندان میان سال»...، «پیر»، «نه پیر»، «خیلی پیر»، «کم و بیش پیر»...، «نه خیلی جوان و نه خیلی پیر»، «نه جوان و نه پیر»...}
یا در مثالی دیگر، فشار(خون) را میتوان متغیری زبانی در نظر گرفت، که ارزشهایی (خصوصیتهایی) از قبیل پایین، بالا، ضعیف، متوسط و قوی را میتواند در خود جای دهد. به زبان ریاضی داریم (T = Terms):
{پایین، بالا، ضعیف، متوسط، قوی} = (فشار)T
عدم قطعیت
صفت عدم قطعیت، به صورت های گوناگون، در همهٔ زمینهها و پدیدهها صرف نظر از روش شناسی مورد کاربرد جهت مطالعه، طراحی، و کنترل پدیدار میشود. مفاهیم نادقیق بسیاری در پیرامون ما وجود دارند که آنها را به صورت روزمره در قالب عبارتهای مختلف بیان میکنیم. به عنوان مثال: «هوا خوب است» هیچ کمیتی برای خوب بودن هوا مطرح نیست تا آن را بطور دقیق اندازهگیری نماییم، بلکه این یک حس کیفی است. در واقع مغز انسان با در نظر گرفتن عوامل گوناگون و بر پایه تفکر استنتاجی جملات را تعریف و ارزش گذاری مینماید که الگوبندی آنها به زبان و فرمولهای ریاضی اگر غیر ممکن نباشد، کاری بسیار پیچیده خواهد بود. منطق فازی فناوری جدیدی است که شیوههایی را که برای طراحی و مدل سازی یک سیستم نیازمند ریاضیات پیچیده و پیشرفتهاست، با استفاده از مقادیر زبانی و دانش فرد خبره جایگزین میسازد.
استدلال فازی
گزارهها در منطق فازی، گزارههای فازی نامیده شده و به وسیلهٔ مجموعههای فازی نمایش داده می شوند. هدف نهایی منطق فازی فراهم کردن مبنایی برای استدلال تقریبی با گزارههای نادقیق ، با استفاده از تئوری مجموعههای فازی به عنوان یک ابزار اساسی است.
قواعد استنتاج در منطق فازی «اگر-آنگاه فازی» نامیده میشوند. روشهای استدلال فازی به روشهای مستقیم و غیرمستقیم تقسیم میشوند. اکثر روشهای معروف، روشهای مستقیم هستند. روشهای غیرمستقیم،استدلال را توسط فضای ارزش راستی هدایت میکنند ( در مورد توضیح روشهای غیر مستقیم به مطالعات بیشتر برای تکمیل این صفحه نیاز داریم).
استدلال تقریبی
استدلال مستقیم محسوب میشود. اساس استدلال و استنتاج در منطق کلاسیک عبارت است از تعدادی اصول به علاوهٔ قانون مهم استنتاج به نام قانون«قیاس استثنایی» به شکل (A ʌ (A→B))→B .
در قانون قیاس استثنایی A و B هر دو ویژگیها و گزارههایی معمولی(غیر فازی) هستند. از طرف دیگر همانگونه که بیان شد، استدلالهای انسانی کمتر بر پایهٔ مجموعهها و گزارههای دقیق بنا میشوند و در اکثر موارد از استدلالهایی استفاده میکنیم که در قالب قانون قیاس استثنایی نمیگنجند، اگر چه به آن شبیه باشند. اما بر پایهٔ متغیرهای زبانی و منطق فازی، میتوانیم این استدلالها را که استدلال تقریبی در برابر استدلال دقیق مینامیم، صورتبندی و تجزیه و تحلیل کنیم ( در این مورد به مثال دقیق و کامل نیاز داریم)
- عطف(AND) کردن چند شرط: گاهی اوقات چندین شرط جهت تحقق یک رفتار مشخص با یکدیگر «و» (AND) میشوند. یعنی B از روی چند شرط منطقی A1 الی An نتیجه میشود.
- فصل (OR) کردن چند شرط: همانند عطف، گاهی اوقات چندین شرط جهت تحقق یک رفتار مشخص با یکدیگر «یا» (OR) میشوند.
این قسمت در مورد عدم قطعیت مبتنی بر منطق فازی میباشد. در مورد استدلال در کل به مثالها و موارد خیلی دقیق و بهتری نیاز داریم.
موارد کاربرد
برای کارهایی که دستورالعمل شفاف و دقیق ریاضی نداشته باشیم:
- رباتیک و هوش مصنوعی مانند رفتار هوشمند رباتها
- هدایت و کنترل هرگونه دستگاه و تاسیسات پویا و حرکت ساز
- دستگاههای سمعی/بصری دیجیتال.
- جلوگیری از هنگ کردن سرورها
- کنترل موتورهای جستجوگر در اینترنت
- سیستمهای نرمافزاری ترجمه
- مهندسی پزشکی از جمله آسیب شناسی یا هدایت و کنترل تاسیسات سی تی اسکن، سی سی یو و آی سی یو، دستگاه ضربانساز قلب.
- کارهای ریسک شناسی، آماری و ارزیابی مانند تصمیمگیری در مدیریت
- محاسبات آماری
پروژههای مورد استفاده
در این جا فهرستی از پروژههایی را که برای توسعهی آنها از منطق فازی استفاده کردیم، قرار میدهیم. همراه با لینک پروژه و مستندات آن.
ایدههای مرتبط با منطق فازی
- انتخاب ایجنت برای پاس در شبیهسازی دو بعدی فوتبال بر اساس منطق فازی
منابع آموزشی
صفحات وب
- منطق فازی در ویکیپدیای فارسی
- منطق فازی در ویکیپدیای انگلیسی
- مجموعههای فازی در ویکیپدیای فارسی
- مجموعههای فازی در ویکیپدیای انگلیسی
- مقالهی مقدمهای بر هوش مصنوعی بخش منطق فازی (فارسی)
- Fuzzy Math, Part 1, The Theory
- مقدمه ای بر منطق فازی (فارسی)
کتابها
کتابهای غیر قابل دانلود
کتابهای قابل دانلود
- منطق فازی :فارسی، نویسنده: نامشخص
- Fuzzy Expert Systems and Fuzzy Reasoning
مقالات
- fuzzy-course in Rensselaer Polytechnic Institute
- مقالات لطفیزاده مقالات به زبان انگلیسی است، به جز یک مقاله که به زبان روسی میباشد.
- A TACTICAL MODEL UNDER UNCERTAINTY/FOR HELICOPTER MAINTENANCE PLANNING
- FUZZY LOGIC SYSTEMS FOR ENGINEERING: A TUTORIAL
- Fuzzy Logic Stanford
- منطق فازی (فارسی، ۶ صفحه)