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