کجا اتومبیل خود را پارک میکنید؟تصور کنید یک روز مطلع میشوید، نمایشگاه پوشاکی در گوشهای از شهر برپا شده است و تصمیم میگیرید، یک روز عصر به اتفاق خانواده سری به این نمایشگاه بزنید. چون محل نمایشگاه کمی دور است، از اتومبیل استفاده میکنید، اما وقتی به محل نمایشگاه میرسید، متوجه میشوید که عده زیادی به آنجا آمدهاند و پارکینگ نمایشگاه تا چشم کار میکند، پر شده است. پیشینه منطق فازی مجموعههای فازی |
به بیان دیگر، (u(x نگاشتی از مقادیر x به مقادیر عددی ممکن بین صفر و یک را میسازد. تابع (u(x ممکن است مجموعهای از مقادیر گسسته (discrete) یا پیوسته باشد. وقتی کهu فقط تعدادی از مقادیر گسسته بین صفر و یک را تشکیل میدهد، مثلاً ممکن است شامل اعداد 3/0 و 5/0 و 7/0 و 9/0 و صفر و یک باشد. اما وقتی مجموعه مقادیرu پیوسته باشند، یک منحنی پیوسته از اعداد اعشاری بین صفر و یک تشکیل میشود.
شکل 1 نموداری از نگاشت پیوسته مقادیر x به مقادیر (u(x را نشان میدهد. تابع (u(x در این نمودار میتواند قانون عضویت در یک مجموعه فازی فرضی را تعریف کند.
ریاضیات فازی یک فرا مجموعه از منطق بولی است که بر مفهوم درستی نسبی، دلالت می کند. منطق کلاسیک هر چیزی را بر اساس یک سیستم دوتائی نشان می دهد ( درست یا غلط، 0 یا 1، سیاه یا سفید) ولی منطق فازی درستی هر چیزی را با یک عدد که مقدار آن بین صفر و یک است نشان می دهد. مثلاً اگر رنگ سیاه را عدد صفر و رنگ سفید را عدد 1 نشان دهیم، آن گاه رنگ خاکستری عددی نزدیک به صفر خواهد بود. در سال 1965، دکتر لطفیزاده نظریه سیستمهای فازی را معرفی کرد. در فضایی که دانشمندان علوم مهندسی به دنبال روشهای ریاضی برای شکست دادن مسایل دشوارتر بودند، نظریه فازی به گونهای دیگر از مدلسازی، اقدام کرد. منطق فازی معتقد است که ابهام در ماهیت علم است. بر خلاف دیگران که معتقدند که باید تقریبها را دقیقتر کرد تا بهرهوری افزایش یابد، لطفیزاده معتقد است که باید به دنبال ساختن مدلهایی بود که ابهام را به عنوان بخشی از سیستم مدل کند. در منطق ارسطویی، یک دستهبندی درست و نادرست وجود دارد. تمام گزارهها درست یا نادرست هستند. بنابراین جمله «هوا سرد است»، در مدل ارسطویی اساساً یک گزاره نمیباشد، چرا که مقدار سرد بودن برای افراد مختلف متفاوت است و این جمله اساساً همیشه درست یا همیشه نادرست نیست. در منطق فازی، جملاتی هستند که مقداری درست و مقداری نادرست هستند. برای مثال، جمله "هوا سرد است" یک گزاره منطقی فازی میباشد که درستی آن گاهی کم و گاهی زیاد است. گاهی همیشه درست و گاهی همیشه نادرست و گاهی تا حدودی درست است. منطق فازی میتواند پایهریز بنیانی برای فنآوری جدیدی باشد که تا کنون هم دستآوردهای فراوانی داشته است.
از منطق فازی برای ساخت کنترل کننده های لوازم خانگی از قبیل ماشین رختشویی (برای تشخیص حداکثر ظرفیت ماشین، مقدار مواد شوینده، تنظیم چرخهای شوینده) و یخچال استفاده می شود. کاربرد اساسی آن تشخیص حوزه متغیرهای پیوسته است. برای مثال یک وسیله اندازه گیری دما برای جلوگیری از قفل شدن یک عایق ممکن است چندین عضو مجزا تابعی داشته باشد تا بتواند حوزه دماهایی را که نیاز به کنترل دارد به طور صحیح تعریف نماید. هر تابع، یک ارزش دمایی مشابه که حوزه آن بین 0 و 1 است را اختیار می کند. از این ارزشهای داده شده برای تعیین چگونگی کنترل یک عایق استفاده می شود.
در شکل روبرو، سرد بودن، گرم بودن و داغ بودن، توابعی برای مقایسه درجه حرارت هستند و هر نقطه ای روی این خطوط می تواند دارای یکی از سه ارزش بالا باشد. به عنوان مثال برای یک درجه حرارت خاص که در شکل با یک خط نشان داده شده است، می توان گفت: «مقداری سرد است»،«اندکی گرم است» یا «اصلاً داغ نیست». حال با مثال دیگری اهمیت این علم را بیشتر درک مینمائیم: یک انسان در نور کافی قادر به درک میلیونها رنگ میباشد.ولی یک روبوت چگونه میتواند این تعداد رنگ را تشخیص دهد؟ حال اگر بخواهیم روباتی طراحی کنیم که قادر به تشخیص رنگها باشد از منطق فازی کمک میگیریم و با اختصاص اعدادی به هر رنگ آن را برای روبوت طراحی شده تعریف میکنیم. از کاربردهای دیگر منطق فازی میتوان به کاربرد این علم در صنعت اتومبیل سازی(در طراحی سیستم ترمز ABS و کنترل موتور برای بدست آوردن بالاترین راندمان قدرت)،در طراحی بعضی از ریزپردازنده ها و طراحی دوربینهای دیجیتال اشاره کرد.
منطق فازی چگونه بهکار گرفته میشود؟
منطق فازی را از طریق قوانینی که <عملگرهای فازی> نامیده میشوند، میتوان بهکار گرفت. این قوانین معمولاً بر اساس مدل زیر تعریف میشوند:IF variable IS set THEN action
به عنوان مثال فرض کنید میخواهیم یک توصیف فازی از دمای یک اتاق ارائه دهیم. در این صورت میتوانیم چند مجموعه فازی تعریف کنیم که از الگوی تابع (u(x تبعیت کند. شکل 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)
کاربردهای منطق فازیمنطق فازی کاربردهای متعددی دارد. سادهترین نمونه یک سیستم کنترل دما یا ترموستات است که بر اساس قوانین فازی کار میکند. سالهاست که از منطق فازی برای کنترل دمای آب یا میزان کدرشدن آبی که لباسها در آن شسته شدهاند در ساختمان اغلب ماشینهای لباسشویی استفاده میشود.
امروزه ماشینهای ظرفشویی و بسیاری از دیگر لوازم خانگی نیز از این تکنیک استفاده میکنند. منطق فازی در صنعت خودروسازی نیز کاربردهای فروانی دارد. مثلاً سیستم ترمز و ABS در برخی از خودروها از منطق فازی استفاده میکند. یکی از معروفترین نمونههای بهکارگیری منطق فازی در سیستمهای ترابری جهان، شبکه مونوریل (قطار تک ریل) توکیو در ژاپن است. سایر سیستمهای حرکتی و جابهجایی بار، مثل آسانسورها نیز از منطق فازی استفاده میکنند.
سیستمهای تهویه هوا نیز به وفور منطق فازی را بهکار میگیرند. از منطق فازی در سیستمهای پردازش تصویر نیز استفاده میشود. یک نمونه از این نوع کاربردها را میتوانید در سیستمهای <تشخیص لبه و مرز> اجسام و تصاویر(3) مشاهده کنید که در روباتیک نیز کاربردهایی دارد. به طور کلی خیلی از مواقع در ساختمان سیستمهای تشخیص الگوها (Pattern Recognition) مثل سیستمهای تشخیص گفتار و پردازش تصویر از منطق فازی استفاده میشود.
منطق فازی و هوش مصنوعیجالبترین کاربرد منطق فازی، تفسیری است که این علم از ساختار تصمیمگیریهای موجودات هوشمند، و در راس آنها، هوش انسانی، به دست میدهد.
این منطق به خوبی نشان میدهد که چرا منطق دو ارزشی <صفر و یک> در ریاضیات کلاسیک قادر به تبیین و توصیف مفاهیم نادقیقی همچون <گرما و سرما> که مبنای بسیاری از تصمیمگیریهای هوشمند را تشکیل میدهند، نیست.
شاید یکی از جالبترین کاربردهای منطق فازی هوش مصنوعی در بازیهای رایانهای و جلوههای ویژه سینمایی باشد. برخی از خوانندگان که بخش هنر و سرگرمی ماهنامه شبکه را دنبال میکنند، ممکن است مقاله ارباب حلقهها را در شماره 41 به یاد بیاورند. در آنجا درباره چگونگی تولید جلوههای ویژه در این فیلم سینمایی صحبت کردم و از نرمافزار Massive نام بردم. از این نرمافزار در بسیاری از صحنههای فیلم برای تولید حرکات لشکر موجودات متخاصم استفاده شده بود.
در این برنامه متخصصان کامپیوتر و انیمیشن ابتدا موجوداتی را به صورت الگو ایجاد کرده بودند و سپس به کمک منطق فازی مصداقهایی تصادفی از این موجودات خیالی پدیدآورده بودند که حرکات تصادفی - اما از پیش تعریف شدهای - در اعضای بدن خود داشتند.
این موجودات در حقیقت دارای نوعی هوش مصنوعی بودند و میتوانستند برای نحوه حرکت دادن اعضای بدن خود تصمیم بگیرند. در عین حال تمام موجوداتی که در یک لشکر به سویی میتاختند یا با دشمنی میجنگیدند، از جهت حرکت یکسانی برخودار بودند و به سوی یک هدف مشخص حمله میکردند(شکل5).
این ساختار کاملاً پیچیده و هوشمند به فیلمسازان اجازه داده بود که این موجودات افسانهای را در دنیای مجازی کامپیوتر به حال خود رها کنند تا به سوی دشمنان حمله کنند و این همه بیتردید بدون بهرهگیری از منطق فازی امکانپذیر نبود.
شرکت Massive Software که به دلیل بهکارگیری منطق فازی برای ایجاد هوشمصنوعی در طراحی لشکریان فیلم ارباب حلقهها برنده جایزه اسکار شد، بعداً این تکنیک را در فیلمهای دیگری همچون I.Robot و King Kong نیز بهکار برد.
استفاده از منطق فازی برای هوشمندکردن موجودات نرمافزاری تنها گونهای از کاربردهای این نظریه در هوشمصنوعی است. منطق فازی در هوشمند ساختن روباتهای سختافزاری نیز کاربردهای زیادی دارد. در شمارههای آتی ماهنامه شبکه به این موضوع بیشتر خواهیم پرداخت.پینوشت:
1- گاهی از او با نام <زاده> نیز نام برده میشود و برخی از قوانین منطق فازی به پیروی از آداب تاریخی علم ریاضیات، با کلمه Zadeh نامگذاری شدهاند.
2- تفکر فازی- نوشته بارت کاسکو - ترجمه دکتر علی غفاری - انتشارات دانشگاه صنعتی خواجهنصیرالدین طوسی.3- Edge Detection Systems