کاربرد رایانه در مهندسی
انواع الگوریتم های هیوریستیك كدامند ؟
سیستم های پیچیده اجتماعی تعداد زیادی از مسائل دارای طبیعت تركیباتی را پیش روی ما قرار می دهند . مسیر كامیونهای حمل ونقل باید تعیین شود ، انبارها یا نقاط فروش محصولات باید جایابی شوند ، شبكه های ارتباطی باید طراحی شوند ، كانتینرها باید بارگیری شوند ، رابط های رادیویی می بایست دارای فركانس مناسب باشند ، مواد اولیه چوب ، فلز ، شیشه و چرم باید به اندازه های لازم بریده شوند ؛ از این دست مسائل بی شمارند . تئوری پیچیدگی به ما می گوید كه مسائل تركیباتی اغلب پلی نومیال(Polynomial) نیستند . این مسائل در اندازه های كاربردی و عملی خود به قدری بزرگ هستند كه نمی توان جواب بهینه آنها را در مدت زمان قابل پذیرش به دست آورد . با این وجود ، این مسائل باید حل شوند و بنابراین چاره ای نیست كه به جوابهای زیر بهینه بسنده نمود ؛ به گونه ای كه دارای كیفیت قابل پذیرش بوده و در مدت زمان قابل پذیرش به دست آیند .
چندین رویكرد برای طراحی جوابهای با كیفیت قابل پذیرش تحت محدودیت زمانی قابل پذیرش پیشنهاد شده است . الگوریتم هایی هستند كه می توانند یافتن جوابهای خوب در فاصله مشخصی از جواب بهینه را تضمین كنند كه به آنها الگوریتم های تقریبی می گویند . الگوریتم های دیگری هستند كه تضمین می دهند با احتمال بالا جواب نزدیك بهینه تولید كنند كه به آنها الگوریتم های احتمالی گفته می شود . جدای از این دو دسته ، می توان الگوریتم هایی را پذیرفت كه هیچ تضمینی در ارائه جواب ندارند اما بر اساس شواهد و سوابق نتایج آنها ، به طور متوسط بهترین تقابل كیفیت و زمان حل برای مسئله مورد بررسی را به همراه داشته اند ؛ به این الگوریتم ها، الگوریتم های هیوریستیك گفته می شود .
هیوریستیك ها چیستند ؟
هیوریستیك ها عبارتند از معیارها ، روشها یا اصولی برای تصمیم گیری بین چندین خط مشی و انتخاب اثربخش ترین برای دستیابی به اهداف موردنظر . هیوریستیك ها نتیجه برقراری اعتدال بین دو نیاز هستند : نیاز به ساخت معیار های ساده و در همان زمان توانایی تمایز درست بین انتخاب های خوب و بد .
یك هیوریستیك می تواند حسابی سرانگشتی باشد كه برای هدایت یك دسته از اقدامات به كار می رود . برای مثال ، یك روش مشهور برای انتخاب طالبی رسیده عبارتست از فشار دادن محل اتصال به ریشه از یك طالبی نامزد انتخاب و سپس بو كردن آن محل ؛ اگر بوی آن محل مانند بوی داخل طالبی باشد آن طالبی به احتمال زیاد رسیده است . این قاعده سرانگشتی نه تضمین می كند كه تنها طالبی های رسیده به عنوان نامزد انتخاب شوند و نه تضمین می كند كه طالبی های رسیده آزمایش شده ، رسیده تشخیص داده شوند اما به هر حال این روش ، اثربخش ترین روش شناخته شده است .
به عنوان مثالی دیگر از استفاده هیوریستیك ها ، یك استاد بزرگ شطرنج را در نظر بگیرید كه با انتخاب بین چندین حركت ممكن روبرو شده است . وی ممكن است تصمیم بگیرد كه یك حركت خاص ، اثربخش ترین حركت خواهد بود زیرا موقعیتی فراهم می آورد كه به نظر می رسد بهتر از موقعیت های حاصل از حركت های دیگر باشد . به كارگیری معیار به نظر می رسد خیلی ساده تر از تعیین دقیق حركت یا حركاتی خواهد بود كه حریف را مجبور به مات كند . این واقعیت كه اساتید بزرگ شطرنج همواره پیروز بازی نخواهند بود نشان دهنده این است كه هیوریستیك های آنها انتخاب اثربخش ترین حركت را تضمین نمی كنند . نهایتا ً وقتی از آنها خواسته می شود كه هیوریستیك خود را تشریح نمایند آنها فقط توصیفی ناقص از قواعدی ارائه می دهند و به نظر خود آنها ، انجام آن قواعد از توصیف آنان ساده تر است .
خاصیت هیوریستیك های خوب این است كه ابزار ساده ای برای تشخیص خط مشی های بهتر ارائه دهند و در حالی كه به صورت شرطی لازم ، تشخیص خط مشی های اثربخش را تضمین نمی كنند اما اغلب به صورت شرط كافی این تضمین را فراهم آورند . بیشتر مسائل پیچیده نیازمند ارزیابی تعداد انبوهی از حالت های ممكن برای تعیین یك جواب دقیق می باشند . زمان لازم برای یافتن یك جواب دقیق اغلب بیشتر از یك طول عمر است . هیوریستیك ها با استفاده از روش هایی كه نیازمند ارزیابی های كمتر هستند و جوابهایی در محدودیت های زمانی قابل قبول ارایه می نمایند ، دارای نقشی اثربخش در حل چنین مسائلی خواهند بود .
انواع الگوریتم های هیوریستیك كدامند ؟
در حالت كلی سه دسته از الگوریتم های هیوریستیك قابل تشخیص است:
۱ الگوریتم هایی كه بر ویژگی های ساختاری مساله و ساختار جواب متمركز می شوند و با استفاده از آنها الگوریتم های سازنده یا جستجوی محلی تعریف می كنند .
۲ الگوریتم هایی كه بر هدایت هیوریستیك یك الگوریتم سازنده یا جستجوی محلی متمركز می شوند به گونه ای كه آن الگوریتم بتواند بر شرایط حساس (مانند فرار از بهینه محلی) غلبه كند . به این الگوریتم ها ، متاهیوریستیك گفته می شود .
۳ الگوریتم هایی كه بر تركیب یك چارچوب یا مفهوم هیوریستیك با گونه هایی از برنامه ریزی ریاضی (معمولا روشهای دقیق) متمركز می شوند .
هیوریستیك های نوع اول می توانند خیلی خوب عمل كنند (گاهی اوقات تا حد بهینگی) اما ممكن است در جواب های دارای كیفیت پایین گیر كنند . همان طور كه اشاره شد یكی از مشكلات مهمی كه این الگوریتم ها با آن روبرو می شوند افتادن در بهینه های محلی است ، بدون اینكه هیچ شانسی برای فرار از آنها داشته باشند . برای بهبود این الگوریتم ها از اواسط دهه هفتاد ، موج تازه ای از رویكردها آغاز گردید . این رویكردها شامل الگوریتم هایی است كه صریحا یا به صورت ضمنی تقابل بین ایجاد تنوع جستجو (وقتی علائمی وجود دارد كه جستجو به سمت مناطق بد فضای جستجو می رود) و تشدید جستجو (با این هدف كه بهترین جواب در منطقه مورد بررسی را پیدا كند) را مدیریت می كنند .
این الگوریتم ها متاهیوریستیك نامیده می شوند .
برای اطلاعات تکمیلی به لینک زیر مراجعه کنید:
http://www.ravanshadnia.com/page.aspx?id=7567
آرشيو مطالب...