میتوانند به کار روند.
دلیل نیاز به روشهای جستجوی آگاهانه، نیاز به کاهش هزینۀ زمانی مورد نیاز برای حلّ مسأله است. در واقع به این دلیل که ما تمایل داریم مسائل را در زمان کمتری حل کرده و از بررسی تمام حالات ممکن اجتناب کنیم، میبایست روشی برای تشخیص کیفیت مسیر (حتی به شکل نسبی) داشته باشیم.
جستجوی خصمانه
در یک بازی مثل شطرنج، یک درخت بازی شامل تمام حرکات ممکن توسط هر دو بازیکن و نتایج حاصل از ترکیب این حرکات وجود دارد، و ما میتوانیم این درخت را جستجو کرده و مؤثرترین استراتژی برای بازی را بیابیم. این چنین مسائلی دارای مشخصۀ منحصر به فردی هستند. برنامههای بازیهای رایانهای، و همچنین فرمهای هوش مصنوعی مثل برنامهریزی ماشینها، اغلب از الگوریتمهای جستجو مثل الگوریتم مینماکس33 (مینیمیم مجموعهای از ماکزیممها)، هرس کردن درخت جستجو و هرس کردن آلفا-بتا استفاده میکنند.
2-4-2- مسائل NP-Hard
نمونهای از مسائلی که نمیتوان آنها را به روش سنتی حل کرد مسائل NP هستند. مجموعه «انپی-سخت» شامل چندهزار مسألۀ مختلف با کاربردهای فراوان است که تاکنون برای آنها راهحلّ سریع و قابل انجام در زمان معقول پیدا نشده است و به احتمال زیاد در آینده نیز یافت نخواهد شد. این که راهحلّ سریعی برای آنها وجود ندارد هم اثبات شدهاست. البته ثابت شده است که اگر فقط برای یکی از این مسألهها راهحل سریعی پیدا شود، این راهحل موجب حلّ سریع بقیۀ مسألهها خواهد شد. البته احتمال پیدا شدن چنین الگوریتمی ضعیف است. منظور از راهحلّ سریع آن است که زمان اجرای آن با اندازۀ ورودی مسأله به صورت چندجملهای رابطه داشته باشد.
روشهای مختلفی برای حلّ سریع ولی نزدیک به بهینه برای یک مسألۀ NP-Hard وجود دارد :
راه حلّ تقریبی قابل اثبات(الگوریتمهای تقریبی): که در آن یک الگوریتم سریع برای حلّ مسأله ارایه میشود ولی اثبات میشود که اندازۀ خروجی ضریبی از اندازۀ خروجی بهینۀ مسأله است.
الگوریتمهای مکاشفهای: با این که الگوریتمهایی سریع هستند و به صورت تقریبی جواب را به دست میآورند، اما در مورد ضریب تقریب یا میزان خوبی الگوریتم اثباتی وجود ندارد. بسیاری از این الگوریتمها به صورت تجربی آزمایش میشوند. برخی از این الگوریتمها از «روش حریصانه» برای حل استفاده میکنند.
راههای معمول مقابله با چنین مسائلی عبارتند از:
طراحی الگوریتمهایی برای پیدا کردن جوابهای دقیق که استفاده از آنها فقط برای مسائل با اندازه کوچک صورت میگیرد.
استفاده از «الگوریتمهای مکاشفهای»34 که جوابهایی بهدست میدهد که احتمالاً درست هستند.
پیدا کردن زیرمسألههایی از مسأله، یعنی تقسیم مسأله به مسألههای کوچکتر.
دو مسألۀ زیر جزءِ مسائل NP-Hard میباشند:
مساله فروشنده دورهگرد
مساله بزرگترین خوشه (پیدا کردن بزرگترین زیرگراف کامل)35
اما مسائل مهم زیادی نیز وجود دارند که یافتن راهحل در آنها بسیار دشوار است. اما اگر راهحل را داشته باشیم، بررسی آن آسان میشود. این واقعیت منجر به مسائل NP-Complete problems شد.NP معرفNondeterministic (چند جملهایهای غیرجبری) و به این معناست که امکان این وجود که راهحل را حدس زد و سپس آن را بررسی کرد.
برای سهولت کار، بررسی مسائل NP-Complete ، محدود به مسائلی است که پاسخ میتواند بله یا خیر باشد. به دلیل وجود کارهایی با نتایج پیچیده، دسته دیگری از مسائل با نام NP-Hard معرفی شدهاند. این دسته مانند مسائل NP-Complete محدود نیستند.
یکی از ویژگیهای مسائل NP آن است که یک الگوریتم ساده را (که ممکن است در نگاه اول بدیهی به نظر برسد) میتوان برای یافتن راهحلهای مفید به کار برد. اما بطور کلی، این روش، روشهای ممکن زیادی را فراهم میکند و بررسی کردن تمام راهحلها، فرآیند بسیار کندی خواهد بود.
امروزه، هیچکس نمیداند که آیا الگوریتم سریعتری برای یافتن جواب دقیق در مسائل NP وجود دارد یا خیر. و یافتن چنین الگوریتمی وظیفه مهمی است که به عهده محققان میباشد. امروزه اکثر مردم تصور میکنند که چنین الگوریتمی وجود ندارد و بنابراین به دنبال روش دیگری (جایگزین) هستند. و نمونهای از روش جایگزین، الگوریتم ژنتیکی است.
2-4-3- هیوریستیک36
سیستمهای پیچیده اجتماعی، تعداد زیادی از مسائلِ دارایِ طبیعتِ ترکیباتی را پیش روی ما قرار میدهند. مسیر کامیونهای حملونقل باید تعیین شود، انبارها یا نقاط فروش محصولات باید جایابی شوند، شبکههای ارتباطی باید طراحی شوند، کانتینرها باید بارگیری شوند، رابطهای رادیویی میبایست دارای فرکانس مناسب باشند، مواد اولیه چوب، فلز، شیشه و چرم باید به اندازههای لازم بریده شوند؛ از این دست مسائل بیشمارند. تئوری پیچیدگی به ما میگوید که مسائلِ ترکیباتی اغلب چندجملهای37 نیستند. این مسائل در اندازههای کاربردی و عملی خود به قدری بزرگ هستند که نمیتوان جواب بهینۀ آنها را در مدّت زمان قابل پذیرش به دست آورد. با این وجود، این مسائل باید حل شوند و بنابراین چارهای نیست که به جوابهای زیر بهینه بسنده نمود؛ به گونهای که دارای کیفیّت قابل پذیرش بوده و در مدّت زمان قابل پذیرش به دست آیند. چندین رویکرد برای طراحی جوابهای با کیفیّت قابل پذیرش تحت محدودیّت زمانی قابل پذیرش پیشنهاد شده است. الگوریتمهایی وجود دارند که میتوانند یافتن جوابهای خوب در فاصله مشخصی از جواب بهینه را تضمین کنند که به آنها الگوریتمهای تقریبی میگویند. الگوریتمهای دیگری هستند که تضمین میدهند با احتمال بالا جواب نزدیک بهینه تولید کنند که به آنها الگوریتمهای احتمالی گفته میشود. جدای از این دو دسته، میتوان الگوریتمهایی را پذیرفت که هیچ تضمینی در ارایه جواب ندارند اما بر اساس شواهد و سوابق نتایج آنها، به طور متوسط بهترین تقابل کیفیت و زمان حل برای مسأله مورد بررسی را به همراه داشتهاند؛ به این الگوریتمها، الگوریتمهای هیوریستیک گفته میشود.
هیوریستیکها عبارتند از معیارها، روشها یا اصولی برای تصمیمگیری بین چندین خطمشی و انتخاب اثربخشترین برای دستیابی به اهداف موردنظر. هیوریستیکها نتیجۀ برقراری اعتدال بین دو نیاز هستند: نیاز به ساخت معیارهای ساده و در همان زمان توانایی تمایز درست بین انتخابهای خوب و بد.
یک هیوریستیک میتواند حسابی سرانگشتی باشد که برای هدایت یک دسته از اقدامات به کار میرود. برای مثال، یک روش مشهور برای انتخاب طالبی رسیده عبارتست از فشار دادن محل اتصال به ریشه از یک طالبی نامزدِ انتخاب و سپس بو کردن آن محل؛ اگر بوی آن محل مانند بوی داخل طالبی باشد آن طالبی به احتمال زیاد رسیده است. این قاعده سرانگشتی نه تضمین میکند که تنها طالبیهای رسیده به عنوان نامزد انتخاب شوند و نه تضمین میکند که طالبیهای رسیده آزمایششده، رسیده تشخیص داده شوند اما به هر حال این روش، اثربخشترین روش شناخته شده است.
به عنوان مثالی دیگر از استفاده هیوریستیکها، یک استاد بزرگ شطرنج را در نظر بگیرید که با انتخاب بین چندین حرکت ممکن روبرو شده است. وی ممکن است تصمیم بگیرد که یک حرکت خاص، اثربخشترین حرکت خواهد بود زیرا موقعیتی فراهم میآورد که به نظر میرسد بهتر از موقعیتهای حاصل از حرکتهای دیگر باشد. به کارگیری معیار به نظر میرسد خیلی سادهتر از تعیین دقیق حرکت یا حرکاتی خواهد بود که حریف را مجبور به مات کند. این واقعیت که اساتید بزرگ شطرنج همواره پیروز بازی نخواهند بود نشان دهنده این است که هیوریستیکهای آنها انتخاب اثربخشترین حرکت را تضمین نمیکنند. نهایتاً وقتی از آنها خواسته میشود که هیوریستیک خود را تشریح نمایند آنها فقط توصیفی ناقص از قواعدی ارایه میدهند و به نظر خود آنها، انجام آن قواعد از توصیف آنان سادهتر است.
خاصیت هیوریستیکهای خوب این است که ابزار سادهای برای تشخیص خطّمشیهای بهتر ارایه دهند و در حالی که به صورت شرطی لازم، تشخیص خطّمشیهای اثربخش را تضمین نمیکنند اما اغلب به صورت شرط کافی این تضمین را فراهم آورند. بیشتر مسائل پیچیده نیازمند ارزیابی تعداد انبوهی از حالتهای ممکن برای تعیین یک جواب دقیق میباشند. زمان لازم برای یافتن یک جواب دقیق اغلب بیشتر از یک طول عمر است. هیوریستیکها با استفاده از روشهایی که نیازمند ارزیابیهای کمتر هستند و جوابهایی در محدودیتهای زمانی قابل قبول ارایه مینمایند، دارای نقشی اثربخش در حل چنین مسائلی خواهند بود.
انواع الگوریتمهای هیوریستیک
در حالت کلی سه دسته از الگوریتمهای هیوریستیک قابل تشخیص است:
الگوریتمهایی که بر ویژگیهای ساختاری مسأله و ساختار جواب متمرکز میشوند و با استفاده از آنها الگوریتمهای سازنده یا جستجوی محلی تعریف میکنند.
الگوریتمهایی که بر هدایت هیوریستیک یک الگوریتم سازنده یا جستجوی محلی متمرکز میشوند به گونهای که آن الگوریتم بتواند بر شرایط حساس (مانند فرار از بهینه محلی) غلبه کند. به این الگوریتمها، متاهیوریستیک38 گفته میشود.
الگوریتمهایی که بر ترکیب یک چارچوب یا مفهوم هیوریستیک با گونههایی از برنامهریزی ریاضی (معمولا روشهای دقیق) متمرکز میشوند.
هیوریستیکهای نوع اول میتوانند خیلی خوب عمل کنند (گاهی اوقات تا حد بهینگی) اما ممکن است در جوابهای دارای کیفیت پایین گیر کنند. همانطور که اشاره شد یکی از مشکلات مهمی که این الگوریتمها با آن روبرو میشوند افتادن در بهینههای محلی است، بدون اینکه هیچ شانسی برای فرار از آنها داشته باشند. برای بهبود این الگوریتمها از اواسط دهۀ 70، موج تازهای از رویکردها آغاز گردید. این رویکردها شامل الگوریتمهایی است که صریحاً یا به صورت ضمنی تقابل بین ایجاد تنوع جستجو (وقتی علائمی وجود دارد که جستجو به سمت مناطق بد فضای جستجو میرود) و تشدید جستجو (با این هدف که بهترین جواب در منطقه مورد بررسی را پیدا کند) را مدیریت میکنند. این الگوریتمها متاهیوریستیک نامیده میشوند. از بین این الگوریتمها میتوان به موارد زیر اشاره کرد:
بازپخت شبیهسازی شده.
جستجوی ممنوع.
الگوریتمهای ژنتیک.
شبکههای عصبی مصنوعی.
بهینهسازی مورچهای یا الگوریتمهای مورچه.
که در این بین الگوریتمهای ژنتیک از شهرت بیشتری نسبت به دیگر الگوریتمها برخوردار است.
2-4-3-1- الگوریتم ژنتیک
به دنبال تکامل…
بسیاری از دانشمندان و اندیشمندان، میل به تکامل را مهترین عامل پیشرفت دستگاه آفرینش و انسان میدانند. از این دیدگاه هر پدیدهای را که بنگرید، یک مسأله جستجوست. انسان همواره میکوشد تا به تکامل برسد، از این رو میاندیشد، میپژوهد، میکاود، میسازد، مینگارد و همواره میکوشد تا باقی بماند. حتی میتوان گفت که میل به زادن فرزند، گامی در برآوردن این نیاز و البته دیگر جانداران است. میتوان این تلاش در راه رسیدن به تکامل را یک مسألۀ جستجو تعبیر کرد.
کوشش یک مؤسسه اقتصادی یا تولیدی –که تابعی برای تبدیل دادهها به ستادهاست- برای کمینه کردن هزینهها و بیشینه کردن سود، یک مسألۀ جستجو است. تلاش یک سپاه در حال جنگ، برای وارد کرد بیشترین خسارات بر دشمن با از دست دادن کمترین نیرو و جنگافزار، یا کوشش یک دانشآموز برای دست یافتن به بالاترین نمره، سعی یک موسیقیدان یا نگارگر برای خلق زیباترین اثر هنری، تلاش یک کاندیدا برای به دست آوردن بیشترین رأی، طراحی یک نجّار برای ساختن راحتترین صندلی، تلاش و نقشه چینی ورزشکاران و مربّیان برای یافتن راههای پیروزی بر حریف و… همگی جستجویی در فضای یک مسأله برای یافتن نقاط یا ناحیه بهینگی

