Borna66
08-12-2012, 05:41 PM
http://pnu-club.com/imported/2012/08/60.gif
سیستمهای پیچیده اجتماعی تعداد زیادی از مسائل دارای طبیعت تركیباتی را پیش روی ما قرار میدهند . مسیر كامیونهای حملونقل باید تعیین شود ، انبارها یا نقاط فروش محصولات باید جایابی شوند ، شبكههای ارتباطی باید طراحی شوند ، كانتینرها باید بارگیری شوند ، رابطهای رادیویی میبایست دارای فركانس مناسب باشند ، مواد اولیه چوب ، فلز ، شیشه و چرم باید به اندازههای لازم بریده شوند ؛ از این دست مسائل بیشمارند . تئوری پیچیدگی به ما می گوید كه مسائل تركیباتی اغلب پلینومیال(Polynomial) نیستند . این مسائل در اندازههای كاربردی و عملی خود به قدری بزرگ هستند كه نمیتوان جواب بهینه آنها را در مدت زمان قابل پذیرش به دست آورد . با این وجود ، این مسائل باید حل شوند و بنابراین چارهای نیست كه به جوابهای زیر بهینه بسنده نمود ؛ به گونهای كه دارای كیفیت قابل پذیرش بوده و در مدت زمان قابل پذیرش به دست آیند .
چندین رویكرد برای طراحی جوابهای با كیفیت قابل پذیرش تحت محدودیت زمانی قابل پذیرش پیشنهاد شده است . الگوریتمهایی هستند كه میتوانند یافتن جوابهای خوب در فاصله مشخصی از جواب بهینه را تضمین كنند كه به آنها الگوریتمهای تقریبی میگویند . الگوریتمهای دیگری هستند كه تضمین میدهند با احتمال بالا جواب نزدیك بهینه تولید كنند كه به آنها الگوریتمهای احتمالی گفته میشود . جدای از این دو دسته ، میتوان الگوریتمهایی را پذیرفت كه هیچ تضمینی در ارائه جواب ندارند اما بر اساس شواهد و سوابق نتایج آنها ، به طور متوسط بهترین تقابل كیفیت و زمان حل برای مسئله مورد بررسی را به همراه داشتهاند ؛ به این الگوریتمها، الگوریتمهای هیوریستیك گفته میشود .
هیوریستیكها عبارتند از معیارها ، روشها یا اصولی برای تصمیمگیری بین چندین خطمشی و انتخاب اثربخشترین برای دستیابی به اهداف موردنظر . هیوریستیكها نتیجه برقراری اعتدال بین دو نیاز هستند : نیاز به ساخت معیارهای ساده و در همان زمان توانایی تمایز درست بین انتخابهای خوب و بد .
در حالت كلی سه دسته از الگوریتمهای هیوریستیك قابل تشخیص است:
1- الگوریتمهایی كه بر ویژگیهای ساختاری مساله و ساختار جواب متمركز میشوند و با استفاده از آنها الگوریتمهای سازنده یا جستجوی محلی تعریف میكنند .
2- الگوریتمهایی كه بر هدایت هیوریستیك یك الگوریتم سازنده یا جستجوی محلی متمركز میشوند به گونهای كه آن الگوریتم بتواند بر شرایط حساس (مانند فرار از بهینه محلی) غلبه كند . به این الگوریتمها ، متاهیوریستیك گفته میشود .
3- الگوریتمهایی كه بر تركیب یك چارچوب یا مفهوم هیوریستیك با گونههایی از برنامهریزی ریاضی (معمولا روشهای دقیق) متمركز میشوند .
هیوریستیكهای نوع اول میتوانند خیلی خوب عمل كنند (گاهی اوقات تا حد بهینگی) اما ممكن است در جوابهای دارای كیفیت پایین گیر كنند . همان طور كه اشاره شد یكی از مشكلات مهمی كه این الگوریتمها با آن روبرو میشوند افتادن در بهینههای محلی است ، بدون اینكه هیچ شانسی برای فرار از آنها داشته باشند . برای بهبود این الگوریتمها از اواسط دهه هفتاد ، موج تازهای از رویكردها آغاز گردید . این رویكردها شامل الگوریتمهایی است كه صریحا یا به صورت ضمنی تقابل بین ایجاد تنوع جستجو (وقتی علائمی وجود دارد كه جستجو به سمت مناطق بد فضای جستجو میرود) و تشدید جستجو (با این هدف كه بهترین جواب در منطقه مورد بررسی را پیدا كند) را مدیریت میكنند .
این الگوریتمها متاهیوریستیك نامیده میشوند . از بین این الگوریتمها میتوان به موارد زیر اشاره كرد:
بازپخت شبیهسازی شده .
جستجوی ممنوع .
الگوریتمهای ژنتیك .
شبكههای عصبی مصنوعی .
بهینهسازی مورچهای یا الگوریتمهای مورچه .
سیستمهای پیچیده اجتماعی تعداد زیادی از مسائل دارای طبیعت تركیباتی را پیش روی ما قرار میدهند . مسیر كامیونهای حملونقل باید تعیین شود ، انبارها یا نقاط فروش محصولات باید جایابی شوند ، شبكههای ارتباطی باید طراحی شوند ، كانتینرها باید بارگیری شوند ، رابطهای رادیویی میبایست دارای فركانس مناسب باشند ، مواد اولیه چوب ، فلز ، شیشه و چرم باید به اندازههای لازم بریده شوند ؛ از این دست مسائل بیشمارند . تئوری پیچیدگی به ما می گوید كه مسائل تركیباتی اغلب پلینومیال(Polynomial) نیستند . این مسائل در اندازههای كاربردی و عملی خود به قدری بزرگ هستند كه نمیتوان جواب بهینه آنها را در مدت زمان قابل پذیرش به دست آورد . با این وجود ، این مسائل باید حل شوند و بنابراین چارهای نیست كه به جوابهای زیر بهینه بسنده نمود ؛ به گونهای كه دارای كیفیت قابل پذیرش بوده و در مدت زمان قابل پذیرش به دست آیند .
چندین رویكرد برای طراحی جوابهای با كیفیت قابل پذیرش تحت محدودیت زمانی قابل پذیرش پیشنهاد شده است . الگوریتمهایی هستند كه میتوانند یافتن جوابهای خوب در فاصله مشخصی از جواب بهینه را تضمین كنند كه به آنها الگوریتمهای تقریبی میگویند . الگوریتمهای دیگری هستند كه تضمین میدهند با احتمال بالا جواب نزدیك بهینه تولید كنند كه به آنها الگوریتمهای احتمالی گفته میشود . جدای از این دو دسته ، میتوان الگوریتمهایی را پذیرفت كه هیچ تضمینی در ارائه جواب ندارند اما بر اساس شواهد و سوابق نتایج آنها ، به طور متوسط بهترین تقابل كیفیت و زمان حل برای مسئله مورد بررسی را به همراه داشتهاند ؛ به این الگوریتمها، الگوریتمهای هیوریستیك گفته میشود .
هیوریستیكها عبارتند از معیارها ، روشها یا اصولی برای تصمیمگیری بین چندین خطمشی و انتخاب اثربخشترین برای دستیابی به اهداف موردنظر . هیوریستیكها نتیجه برقراری اعتدال بین دو نیاز هستند : نیاز به ساخت معیارهای ساده و در همان زمان توانایی تمایز درست بین انتخابهای خوب و بد .
در حالت كلی سه دسته از الگوریتمهای هیوریستیك قابل تشخیص است:
1- الگوریتمهایی كه بر ویژگیهای ساختاری مساله و ساختار جواب متمركز میشوند و با استفاده از آنها الگوریتمهای سازنده یا جستجوی محلی تعریف میكنند .
2- الگوریتمهایی كه بر هدایت هیوریستیك یك الگوریتم سازنده یا جستجوی محلی متمركز میشوند به گونهای كه آن الگوریتم بتواند بر شرایط حساس (مانند فرار از بهینه محلی) غلبه كند . به این الگوریتمها ، متاهیوریستیك گفته میشود .
3- الگوریتمهایی كه بر تركیب یك چارچوب یا مفهوم هیوریستیك با گونههایی از برنامهریزی ریاضی (معمولا روشهای دقیق) متمركز میشوند .
هیوریستیكهای نوع اول میتوانند خیلی خوب عمل كنند (گاهی اوقات تا حد بهینگی) اما ممكن است در جوابهای دارای كیفیت پایین گیر كنند . همان طور كه اشاره شد یكی از مشكلات مهمی كه این الگوریتمها با آن روبرو میشوند افتادن در بهینههای محلی است ، بدون اینكه هیچ شانسی برای فرار از آنها داشته باشند . برای بهبود این الگوریتمها از اواسط دهه هفتاد ، موج تازهای از رویكردها آغاز گردید . این رویكردها شامل الگوریتمهایی است كه صریحا یا به صورت ضمنی تقابل بین ایجاد تنوع جستجو (وقتی علائمی وجود دارد كه جستجو به سمت مناطق بد فضای جستجو میرود) و تشدید جستجو (با این هدف كه بهترین جواب در منطقه مورد بررسی را پیدا كند) را مدیریت میكنند .
این الگوریتمها متاهیوریستیك نامیده میشوند . از بین این الگوریتمها میتوان به موارد زیر اشاره كرد:
بازپخت شبیهسازی شده .
جستجوی ممنوع .
الگوریتمهای ژنتیك .
شبكههای عصبی مصنوعی .
بهینهسازی مورچهای یا الگوریتمهای مورچه .