کامپیوتر

دانشجویی

کامپیوتر

دانشجویی

منطق فازی چیست؟

کجا اتومبیل خود را پارک می‌کنید؟ تصور کنید یک روز مطلع می‌شوید، نمایشگاه پوشاکی در گوشه‌ای از شهر برپا شده است و تصمیم می‌گیرید، یک روز عصر به اتفاق خانواده سری به این نمایشگاه بزنید. چون محل نمایشگاه کمی دور است، از اتومبیل استفاده می‌کنید، اما وقتی به محل نمایشگاه می‌رسید، متوجه می‌شوید که عده زیادی به آنجا آمده‌اند و پارکینگ نمایشگاه تا چشم کار می‌کند، پر شده است. اما چون حوصله صرف وقت برای پیدا کردن محل دیگری جهت پارک اتومبیل ندارید، با خود می‌گویید: <هر طور شده باید جای پارکی در این پارکینگ پیدا کنم.> سرانجام در گوشه‌ای از این پارکینگ محلی را پیدا می‌کنید که یک ماشین به طور کامل در آن جا نمی‌شود، اما با کمی اغماض می‌شود یک ماشین را در آن جای داد، هرچند که این ریسک وجود دارد که فضای عبور و مرور دیگر خودروها را تنگ کنید و آن‌ها هنگام حرکت به خودرو شما آسیب برسانند. اما به هرحال تصمیم می‌گیرید و ماشین خود را پارک می‌کنید. بسیارخوب! اکنون بیایید بررسی کنیم شما دقیقاً چه کار کردید؟ شما دنبال جای توقف یک اتومبیل می‌گشتید. آیا پیدا کردید؟ هم بله، هم نه. شما در ابتدا می‌خواستید ماشین را در جای مناسبی پارک کنید. آیا چنین عملی انجام دادید؟ از یک نظر بله، از یک دیدگاه نه. در مقایسه با وقت و انرژی لازم برای پیدا کردن یک مکان راحت برای توقف خودرو، شما جای مناسبی پیدا کردید. چون ممکن بود تا شب دنبال جا بگردید و چنین جایی را پیدا نکنید. اما از این نظر که اتومبیل را در جایی پارک کردید که فضای کافی برای قرارگرفتن ماشین شما نداشت، نمی‌توان گفت جای مناسبی است. اگر به منطق کلاسیک در علم ریاضیات مراجعه کنیم و این پرسش را مطرح نماییم که قبل از ورود به پارکینگ چند درصد احتمال می‌دادید جایی برای پارک‌کردن پیدا کنید، پاسخ بستگی به این دارد که واقعاً چه تعداد مکان مناسب (فضای کافی) برای توقف خودروها در آنجا وجود داشت؟ اگر به حافظه خود رجوع کنید، شاید به یاد بیاورید که هنگام ورود به پارکینگ و چرخیدن در قسمت‌های مختلف آن، گاهی خودروهایی را می‌دیدید که طوری پارک کرده‌اند که مکان یک و نیم خودرو را اشغال کرده‌اند. بعضی دیگر نیز کج و معوج پارک کرده بودند و این فکر از ذهن شما چندبار گذشت که اگر صاحب بعضی از این خودروها درست پارک ‌کرده بودند، الان جای خالی برای پارک کردن چندین ماشین دیگر هم وجود داشت. به این ترتیب علم ریاضیات و آمار و احتمال در مواجهه با چنین شرایطی قادر به پاسخگویی نیست. اگر قرار بود بر اساس منطق صفر و یک یا باینری کامپیوتر، روباتی ساخته شود تا اتومیبل شما را در یک مکان مناسب پارک‌ کند، احتمالش کم بود. چنین روباتی به احتمال زیاد ناکام از پارکینگ خارج می‌شد. پس شما با چه منطقی توانستید اتومبیل خود را پارک‌ کنید؟ شما از منطق فازی استفاده کردید. دنیای فازی‌ می‌پرسم <هوا ابری است یا آفتابی؟> پاسخ می‌دهی: نیمه‌ابری. می‌پرسم <آیا همه آنچه که دیروز به من گفتی، راست بود؟> پاسخ می‌دهی: بیشتر آن حقیقت داشت. ما در زندگی روزمره بارها از منطق فازی استفاده می‌کنیم. واقعیت این است که دنیای صفر و یک، دنیایی انتزاعی و خیالی است. به ندرت پیش می‌آید موضوعی صددرصد درست یا صددرصد نادرست باشد؛ زیرا در دنیای واقعی در بسیاری از مواقع، همه‌چیز منظم و مرتب سرجایش نیست. از نخستین روز تولد اندیشه فازی، بیش از چهل سال می‌گذرد. در این مدت نظریه فازی، چارچوب فکری و علمی جدیدی را در محافل آکادمیک و مهندسی معرفی نموده و دیدگاه دانشمندان را نسبت به کمّ و کیف دنیای اطراف ما تغییر داده است. منطق فازی جهان‌بینی بدیع و واقع‌گرایانه‌ای است که به اصلاح شالوده ‌منطق علمی و ذهنی بشر کمک شایانی کرده‌است.پیشینه منطق فازی تئوری مجموعه‌های فازی و منطق فازی را اولین بار پرفسور لطفی‌زاده (2) در رساله‌ای به نام <مجموعه‌های فازی - اطلاعات و کنترل> در سال 1965 معرفی نمود. هدف اولیه او در آن زمان، توسعه مدلی کارآمدتر برای توصیف فرآیند پردازش زبان‌های طبیعی بود. او مفاهیم و اصلاحاتی همچون مجموعه‌های فازی، رویدادهای فازی، اعداد فازی و فازی‌سازی را وارد علوم ریاضیات و مهندسی نمود. از آن زمان تاکنون، پرفسور لطفی زاده به دلیل معرفی نظریه بدیع و سودمند منطق فازی و تلاش‌هایش در این زمینه، موفق به کسب جوایز بین‌المللی متعددی شده است. پس از معرفی منطق فازی به دنیای علم، در ابتدا مقاومت‌های بسیاری دربرابر پذیرش این نظریه صورت گرفت. بخشی از این مقاومت‌ها، چنان که ذکر شد، ناشی از برداشت‌های نادرست از منطق فازی و کارایی آن بود. جالب این‌که، منطق فازی در سال‌های نخست تولدش بیشتر در دنیای مشرق زمین، به‌ویژه کشور ژاپن با استقبال روبه‌رو شد، اما استیلای اندیشه کلاسیک صفر و یک در کشورهای مغرب زمین، اجازه رشد اندکی به این نظریه داد. با این حال به تدریج که این علم کاربردهایی پیدا کرد و وسایل الکترونیکی و دیجیتالی جدیدی وارد بازار شدند که بر اساس منطق فازی کارمی‌کردند، مخالفت‌ها نیز اندک اندک کاهش یافتند. در ژاپن استقبال از منطق فازی، عمدتاً به کاربرد آن در روباتیک و هوش مصنوعی مربوط می‌شود. موضوعی که یکی از نیروهای اصلی پیش‌برندهِ این علم طی چهل سال گذشته بوده است. در حقیقت می‌توان گفت بخش بزرگی از تاریخچه دانش هوش مصنوعی، با تاریخچه منطق فازی همراه و هم‌داستان است. مجموعه‌های فازی‌ بنیاد منطق فازی بر شالوده نظریه مجموعه‌های فازی استوار است. این نظریه تعمیمی از نظریه کلاسیک مجموعه‌ها در علم ریاضیات است. در تئوری کلاسیک مجموعه‌ها، یک عنصر، یا عضو مجموعه است یا نیست. در حقیقت عضویت عناصر از یک الگوی صفر و یک و باینری تبعیت می‌کند. اما تئوری مجموعه‌های فازی این مفهوم را بسط می‌دهد و عضویت درجه‌بندی شده را مطرح می‌کند. به این ترتیب که یک عنصر می‌تواند تا درجاتی - و نه کاملاً - عضو یک مجموعه باشد. مثلاً این جمله که <آقای الف به اندازه هفتاددرصد عضو جامعه بزرگسالان است> از دید تئوری مجموعه‌های فازی صحیح است. در این تئوری، عضویت اعضای مجموعه از طریق تابع (u‌(x مشخص می‌شود که x نمایانگر یک عضو مشخص و u تابعی فازی است که درجه عضویت ‌x در مجموعه مربوطه را تعیین می‌کند و مقدار آن بین صفر و یک است (فرمول 1). فرمول 1 به بیان دیگر، (‌u‌(x نگاشتی از مقادیر x به مقادیر عددی ممکن بین صفر و یک را می‌سازد. تابع (‌u‌(x ممکن است مجموعه‌ای از مقادیر گسسته (discrete) یا پیوسته باشد. وقتی کهu فقط تعدادی از مقادیر گسسته بین صفر و یک را تشکیل می‌دهد، مثلاً ممکن است شامل اعداد 3/0 و 5/0 و 7/0 و 9/0 و صفر و یک باشد. اما وقتی مجموعه مقادیرu پیوسته باشند، یک منحنی پیوسته از اعداد اعشاری بین صفر و یک تشکیل می‌شود. شکل 1 نموداری از نگاشت پیوسته مقادیر x به مقادیر ‌(‌u‌(x را نشان می‌دهد. تابع‌ (‌u‌(x در این نمودار می‌تواند قانون عضویت در یک مجموعه فازی فرضی را تعریف کند. شکل 1 منطق فازی چگونه به‌کار گرفته می‌شود؟ منطق فازی را از طریق قوانینی که <عملگرهای فازی> نامیده می‌شوند، می‌توان به‌کار گرفت. این قوانین معمولاً بر اساس مدل زیر تعریف می‌شوند: IF variable IS set THEN action به عنوان مثال فرض کنید می‌خواهیم یک توصیف فازی از دمای یک اتاق ارائه دهیم. در این صورت می‌توانیم چند مجموعه فازی تعریف کنیم که از الگوی تابع (‌u‌(x تبعیت کند. شکل 2 نموداری از نگاشت متغیر <دمای هوا> به چند مجموعه‌ فازی با نام‌های <سرد>، <خنک>، <عادی>، <گرم> و <داغ> است. چنان که ملاحظه می‌کنید، یک درجه حرارت معین ممکن است متعلق به یک یا دو مجموعه باشد. شکل 2 به عنوان نمونه، درجه حرارت‌های بین دمای T1 و T2 هم متعلق به مجموعه <سرد> و هم متعلق به مجموعه <خنک> است. اما درجه عضویت یک دمای معین در این فاصله، در هر یک از دو مجموعه متفاوت است. به طوری که دمای نزدیک ‌T2 تنها به اندازه چند صدم در مجموعه <سرد> عضویت دارد، اما نزدیک نوددرصد در مجموعه <خنک> عضویت دارد. پارادایم حاکم بر یک کنترلر فازی به این ترتیب است که متغیرهای دنیای واقعی به عنوان ورودی دریافت می‌شوند. قوانین فازی آن‌ها را به متغیرهای معنایی تبدیل می‌کند. فرآیند فازی این ورودی را می‌گیرد و خروجی معنایی تولید می‌کند و سرانجام خروجی‌ها به زبان دنیای واقعی ترجمه می‌شوند. نمودار شکل 3 مصداقی از همین روند است. اکنون می‌توان بر اساس مدل فوق قانون فازی زیر را تعریف کرد: اگر دمای اتاق <خیلی گرم> است، سرعت پنکه را <خیلی زیاد> کن. اگر دمای اتاق <گرم> است، سرعت پنکه را <زیاد> کن. اگر دمای اتاق <معتدل> است، سرعت پنکه را در <همین اندازه> نگه‌دار. اگر دمای اتاق <خنک> است، سرعت پنکه را <کم> کن. اگر دمای اتاق <سرد> است، پنکه را <خاموش> کن. اگر این قانون فازی را روی یک سیستم کنترل دما اعمال کنیم، آن‌گاه می‌توانیم دماسنجی بسازیم که دمای اتاق را به صورت خودکار و طبق قانون ما، کنترل می‌کند. اما این سؤال پیش می‌آید که اگر دو یا چند قانون همزمان برای یک متغیر ورودی فعال شود چه اتفاقی خواهد افتاد؟ فرض کنید دمای اتاق برابر 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 به کمترین مقدار خود می‌رسند. پرفسور لطفی‌زاده خالق نظریه مجموعه‌های فازی و منطق فازی‌ تفاوت میان نظریه احتمالات و منطق فازی‌ یکی از مباحث مهم در منطق فازی، تمیزدادن آن از نظریه احتمالات در علم ریاضیات است. غالباً نظریه فازی با نظریه احتمالات اشتباه می‌شود. در حالی که این دو مفهوم کاملاً با یکدیگر متفاوتند. این موضوع به قدری مهم است که حتی برخی از دانشمندان بزرگ علم ریاضیات در دنیا - به‌ویژه کشورهای غربی - درمورد آن با یکدیگر بحث دارند و جالب آن که هنوز هم ریاضیدانانی وجود دارند که با منطق فازی مخالفند و آن را یک سوء تعبیر از نظریه احتمالات تفسیر می‌کنند. از نگاه این ریاضیدانان، منطق فازی چیزی نیست جز یک برداشت نادرست از نظریه احتمالات که به گونه‌ای غیرقابل قبول، مقادیر و اندازه‌گیری‌های نادقیق را وارد علوم ریاضیات، مهندسی و کنترل کرده است. بعضی نیز مانند Bruno de Finetti معتقدند فقط یک نوع توصیف از مفهوم عدم‌قطعیت در علم ریاضیات کافی است و چون علم آمار و احتمالات وجود دارد، نیازی به مراجعه به منطق فازی نیست. با این حال، اکثریت طرفداران نظریه منطق فازی، کارشناسان و متخصصانی هستند که به طور مستقیم یا غیرمستقیم با علم مهندسی کنترل سروکار دارند. حتی تعدادی از پیروان منطق فازی همچون بارت کاسکو تا آنجا پیش می‌روند که احتمالات را شاخه و زیرمجموعه‌ای از منطق فازی می‌نامند. توضیح تفاوت میان این دو نظریه البته کار چندان دشواری نیست. منطق فازی با حقایق نادقیق سروکار دارد و به حدود و درجات یک واقعیت اشاره دارد؛ حال آن‌که نظریه احتمالات بر شالوده مجموعه حالات تصادفیِ یک پدیده استوار است و درباره شانس وقوع یک حالت خاص صحبت می‌کند؛ حالتی که وقتی اتفاق بیفتد، دقیق فرض می‌شود. ذکر یک مثال می‌تواند موضوع را روشن کند. فرض کنید در حال رانندگی در یک خیابان هستید. اتفاقاً متوجه می‌شوید که کودکی در اتومبیل دیگری که به موازات شما در حال حرکت است، نشسته و سر و یک دست خود را از پنجره ماشین بیرون آورده و در حال بازی‌گوشی است. این وضعیت واقعی است و نمی‌توان گفت احتمال این‌که بدن این کودک بیرون اتومبیل باشد، چقدر است. چون بدن او واقعاً بیرون ماشین است، با این توضیح که بدن او کاملاً بیرون نیست، بلکه فقط بخشی از بدن او در خارج اتومبیل قرارگرفته است. تئوری احتمالات در اینجا کاربردی ندارد. چون ما نمی‌توانیم از احتمال خارج بودن بدن کودک از ماشین صحبت کنیم؛ زیرا آشکارا فرض غلطی است. اما می‌توانیم از احتمال وقوع حادثه‌ صحبت کنیم. مثلاً هرچه بدن کودک بیشتر بیرون باشد، احتمال این‌که در اثر برخورد با بدنه یک اتومبیل در حال حرکت دچار آسیب شود، بیشتر می‌شود. این حادثه هنوز اتفاق نیفتاده است، ولی می‌توانیم از احتمال وقوع آن صحبت کنیم. اما بیرون بودن تن کودک از ماشین همین حالا به واقعیت تبدیل شده است و فقط می‌توانیم از میزان و درجات آن صحبت کنیم. تفاوت ظریف و در عین حال پررنگی میان نظریه احتمالات و نظریه فازی وجود دارد که اگر دقت نکنیم، دچار اشتباه می‌شویم؛ زیرا این دو نظریه معمولاً در کنار یکدیگر و در مورد اشیای مختلف همزمان مصداق‌هایی پیدا می‌کنند. هنگامی که به یک پدیده می‌نگریم، نوع نگاه ما به آن پدیده می‌تواند تعیین کند که باید درباره احتمالات صحبت کنیم یا منطق فازی. در مثال فوق موضوع دغدغه ما کودکی است که در حال بازی گوشی است. اما یک وقت نگران این هستیم که تا چه اندازه خطر او را تهدید می‌کند. خطری که هنوز به وقوع نپیوسته است. یک وقت هم ممکن است نگران باشیم که بدن او چقدر بیرون پنجره است. واقعیتی که هم‌اکنون به وقوع پیوسته است. شکل 4 یک دیدگاه درباره علت بحث و جدل علمی میان دانشمندان این است که برخی از ریاضیدانان اتکا به علم آمار و احتمال را کافی می‌دانند و نظریه فازی را یک برداشت غیرکارآمد از جهان درباره ما تلقی می‌کنند. به عنوان مثال، اگر به مورد کودک و اتومبیل مراجعه کنیم، این پرسش مطرح می‌شود که اگر نگرانی و دغدغه نهایی ما احتمال وقوع حادثه است، دیگر چه نیازی به این است که ما درباره درجات <بیرون بودن تن کودک از اتومبیل> صحبت کنیم؟ بحث درباره ابعاد فلسفی منطق فازی بسیار شیرین و البته گسترده است. متأسفانه مجال برای طرح گستردهِ ابعاد فلسفی منطق فازی در این مقاله وجود ندارد. از این رو اگر مایل به مطالعه بیشتر در این زمینه هستید، کتاب بسیاری خواندنی <تفکر فازی> را که در پی‌نوشت دوم انتهای مقاله معرفی کرده‌ام، توصیه می‌کنم.(شکل 4) کاربردهای منطق فازی‌ منطق فازی کاربردهای متعددی دارد. ساده‌ترین نمونه یک سیستم کنترل دما یا ترموستات است که بر اساس قوانین فازی کار می‌کند. سال‌هاست که از منطق فازی برای کنترل دمای آب یا میزان کدرشدن آبی که لباس‌ها در آن شسته شده‌اند در ساختمان اغلب ماشین‌های لباسشویی استفاده می‌شود. امروزه ماشین‌های ظرفشویی و بسیاری از دیگر لوازم خانگی نیز از این تکنیک استفاده می‌کنند. منطق فازی در صنعت خودروسازی نیز کاربردهای فروانی دارد. مثلاً سیستم ترمز و ABS در برخی از خودروها از منطق فازی استفاده می‌کند. یکی از معروف‌ترین نمونه‌های به‌کارگیری منطق فازی در سیستم‌های ترابری جهان، شبکه مونوریل (قطار تک ریل) توکیو در ژاپن است. سایر سیستم‌های حرکتی و جابه‌جایی بار، مثل آسانسورها نیز از منطق فازی استفاده می‌کنند. سیستم‌های تهویه هوا نیز به وفور منطق فازی را به‌کار می‌گیرند. از منطق فازی در سیستم‌های پردازش تصویر نیز استفاده می‌شود. یک نمونه از این نوع کاربردها را می‌توانید در سیستم‌های <تشخیص لبه و مرز> اجسام و تصاویر(3) مشاهده کنید که در روباتیک نیز کاربردهایی دارد. به طور کلی خیلی از مواقع در ساختمان سیستم‌های تشخیص الگوها (Pattern Recognition) مثل سیستم‌های تشخیص گفتار و پردازش تصویر از منطق فازی استفاده می‌شود. شکل 3 فرمول 2 منطق فازی و هوش مصنوعی‌ جالب‌ترین کاربرد منطق فازی، تفسیری است که این علم از ساختار تصمیم‌گیری‌های موجودات هوشمند، و در راس آن‌ها، هوش انسانی، به دست می‌دهد. این منطق به خوبی نشان می‌دهد که چرا منطق دو ارزشی <صفر و یک> در ریاضیات کلاسیک قادر به تبیین و توصیف مفاهیم نادقیقی همچون <گرما و سرما> که مبنای بسیاری از تصمیم‌گیری‌های هوشمند را تشکیل می‌دهند، نیست. شاید یکی از جالب‌ترین کاربردهای منطق فازی هوش مصنوعی در بازی‌های رایانه‌ای و جلوه‌های ویژه سینمایی باشد. برخی از خوانندگان که بخش هنر و سرگرمی ماهنامه شبکه را دنبال می‌کنند، ممکن است مقاله ارباب حلقه‌ها را در شماره 41 به یاد بیاورند. در آنجا درباره چگونگی تولید جلوه‌های ویژه در این فیلم سینمایی صحبت کردم و از نرم‌افزار Massive نام بردم. از این نرم‌افزار در بسیاری از صحنه‌های فیلم برای تولید حرکات لشکر موجودات متخاصم استفاده شده بود. شکل 5 در این برنامه متخصصان کامپیوتر و انیمیشن ابتدا موجوداتی را به صورت الگو ایجاد کرده بودند و سپس به کمک منطق فازی مصداق‌هایی تصادفی از این موجودات خیالی پدیدآورده بودند که حرکات تصادفی - اما از پیش تعریف شده‌ای ‌-‌ در اعضای بدن خود داشتند. این موجودات در حقیقت دارای نوعی هوش مصنوعی بودند و می‌توانستند برای نحوه حرکت دادن اعضای بدن خود تصمیم بگیرند. در عین حال تمام موجوداتی که در یک لشکر به سویی می‌تاختند یا با دشمنی می‌جنگیدند، از جهت حرکت یکسانی برخودار بودند و به سوی یک هدف مشخص حمله می‌کردند(شکل5). این ساختار کاملا‌ً پیچیده و هوشمند به فیلمسازان اجازه داده بود که این موجودات افسانه‌ای را در دنیای مجازی کامپیوتر به حال خود رها کنند تا به سوی دشمنان حمله کنند و این همه بی‌تردید بدون بهره‌گیری از منطق فازی امکانپذیر نبود. شرکت Massive Software که به دلیل به‌کارگیری منطق فازی برای ایجاد هوش‌مصنوعی در طراحی لشکریان فیلم‌ ارباب حلقه‌ها برنده جایزه اسکار شد، بعداً این تکنیک را در فیلم‌های دیگری همچون I.Robot و King Kong نیز به‌کار برد. استفاده از منطق فازی برای هوشمند‌کردن موجودات نرم‌افزاری تنها گونه‌ای از کاربردهای این نظریه در هوش‌مصنوعی است. منطق فازی در هوشمند ساختن روبات‌های سخت‌افزاری نیز کاربردهای زیادی دارد
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد