چکیده
در این مقاله مفهوم هیوریستیک شرح داده میشود و انواع الگوریتمهای هیوریستیک دستهبندی میشوند.
1-مقدمه
سیستم های پیچیده اجتماعی تعداد زیادی از مسائل دارای طبیعت ترکیباتی1 را پیش روی ما قرار میدهند. مسیر کامیونهای حمل و نقل باید تعیین شود، انبارها یا نقاط فروش محصولات باید جایابی شوند، شبکههای ارتباطی باید طراحی شوند، کانتینرها باید بارگیری شوند، رابطهای رادیویی میبایست دارای فرکانس مناسب باشند، مواد اولیه چوب، فلز، شیشه و چرم باید به اندازههای لازم بریده شوند؛ از این دست مسائل بیشمارند. تئوری پیچیدگی به ما می گوید که مسائل ترکیباتی اغلب پلینومیال2 نیستند. این مسائل در اندازههای کاربردی و عملی خود به قدری بزرگ هستند که نمیتوان جواب بهینه آنها را در مدت زمان قابل پذیرش به دست آورد. با این وجود، این مسائل باید حل شوند و بنابراین چارهای نیست که به جوابهای زیر بهینه3 بسنده نمود به گونهای که دارای کیفیت قابل پذیرش بوده و در مدت زمان قابل پذیرش به دست آیند.
چندین رویکرد برای طراحی جوابهای با کیفیت قابل پذیرش تحت محدودیت زمانی قابل پذیرش پیشنهاد شده است. الگوریتم هایی هستند که میتوانند یافتن جوابهای خوب در فاصله مشخصی از جواب بهینه را تضمین کنند که به آنها الگوریتمهای تقریبی میگویند. الگوریتمهای دیگری هستند که تضمین میدهند با احتمال بالا جواب نزدیک بهینه تولید کنند که به آنها الگوریتمهای احتمالی گفته میشود. جدای از این دو دسته، میتوان الگوریتمهایی را پذیرفت که هیچ تضمینی در ارائه جواب ندارند اما بر اساس شواهد و سوابق نتایج آنها، به طور متوسط بهترین تقابل کیفیت و زمان حل برای مسئله مورد بررسی را به همراه داشتهاند. به این الگوریتمها، الگوریتم های هیوریستیک گفته میشود.
2- هیوریستیکها
هیوریستیکها عبارتند از معیارها، روشها یا اصولی برای تصمیمگیری بین چند گزینه خطمشی و انتخاب اثربخشترین برای دستیابی به اهداف مورد نظر. هیوریستیکها نتیجه برقراری اعتدال بین دو نیاز هستند: نیاز به ساخت معیارهای ساده و در همان زمان توانایی تمایز درست بین انتخابهای خوب و بد.
یک هیوریستیک میتواند حسابی سرانگشتی باشد که برای هدایت یک دسته از اقدامات به کار میرود. برای مثال، یک روش مشهور برای انتخاب طالبی رسیده عبارتست از فشار دادن محل اتصال به ریشه از یک طالبی نامزد انتخاب و سپس بو کردن آن محل. اگر بوی آن محل مانند بوی داخل طالبی باشد آن طالبی به احتمال زیاد رسیده است. این قاعده سرانگشتی نه تضمین میکند که تنها طالبیهای رسیده به عنوان نامزد انتخاب شوند و نه تضمین میکند که طالبیهای رسیده آزمایش شده، رسیده تشخیص داده شوند اما به هر حال این روش، اثربخشترین روش شناخته شده است.
به عنوان مثالی دیگر از استفاده هیوریستیکها، یک استاد بزرگ شطرنج را در نظر بگیرید که با انتخاب بین چندین حرکت ممکن روبرو شده است. وی ممکن است تصمیم بگیرد که یک حرکت خاص، اثربخشترین حرکت خواهد بود زیرا موقعیتی فراهم میآورد که «به نظر میرسد» بهتر از موقعیتهای حاصل از حرکتهای دیگر باشد. به کارگیری معیار «به نظر میرسد» خیلی سادهتر از تعیین دقیق حرکت یا حرکاتی خواهد بود که حریف را مجبور به مات کند. این واقعیت که اساتید بزرگ شطرنج همواره پیروز بازی نخواهند بود نشان دهنده این است که هیوریستیکهای آنها انتخاب اثربخشترین حرکت را تضمین نمیکنند. نهایتاً وقتی از آنها خواسته میشود که هیوریستیک خود را تشریح نمایند آنها فقط توصیفی ناقص از قواعدی ارائه میدهند و به نظر خود آنها، انجام آن قواعد از توصیف آنان سادهتر است.
خاصیت هیوریستیکهای خوب این است که ابزار سادهای برای تشخیص خطمشیهای بهتر ارائه دهند و در حالی که به صورت شرطی لازم، تشخیص خطمشیهای اثربخش را تضمین نمیکنند اما اغلب به صورت شرط کافی این تضمین را فراهم آورند. بیشتر مسائل پیچیده نیازمند ارزیابی تعداد انبوهی از حالتهای ممکن برای تعیین یک جواب دقیق میباشند. زمان لازم برای یافتن یک جواب دقیق اغلب بیشتر از یک طول عمر است. هیوریستیکها با استفاده از روشهای نیازمند ارزیابیهای کمتر و ارائه جوابهایی در محدودیتهای زمانی قابل قبول دارای نقشی اثربخش در حل چنین مسائل خواهند بود (پیرل4 1984، 1-10).
3- انواع الگوریتمهای هیوریستیک
در حالت کلی سه دسته از الگوریتمهای هیوریستیک قابل تشخیص است:
(1)الگوریتمهایی که بر ویژگیهای ساختاری مسئله و ساختار جواب متمرکز میشوند و با استفاده از آنها الگوریتمهای سازنده یا جستجوی محلی تعریف میکنند.
(2)الگوریتمهایی که بر هدایت هیوریستیک یک الگوریتم سازنده یا جستجوی محلی متمرکز میشوند به گونهای که آن الگوریتم بتواند بر شرایط حساس (مانند فرار از بهینه محلی) غلبه کند. به این الگوریتمها، متاهیوریستیک گفته میشود.
(3)الگوریتمهایی که بر ترکیب یک چارچوب یا مفهوم هیوریستیک با گونههایی از برنامهریزی ریاضی (معمولاً روشهای دقیق) متمرکز میشوند.