ابزارهای محاسباتی برای هوش مصنوعی
در این مقاله به ابزارهای محاسباتی مورد استفاده در هوش مصنوعی پرداخته شده‌است.
بسیاری از مشکلات در هوش مصنوعی می‌توانند از نظر تئوری با جستجوی هوشمندانه در میان بسیاری از راه حل‌های ممکن حل شوند: استدلال را می‌توان به انجام یک جستجو کاهش داد. به عنوان مثال، اثبات منطقی را می‌توان جستجوی مسیری دانست که از مقدمات به نتیجه می‌رسد، که هر مرحله، استفاده از یک قانون استنتاج است. الگوریتم‌های برنامه‌ریزی در درختان اهداف و اهداف فرعی جستجو کرده، تلاش می‌کنند برای یافتن راهی برای رسیدن به یک هدف، که فرایندی به نام تجزیه و تحلیل معنی و هدف است. الگوریتم‌های رباتیک برای حرکت دادن اندام‌ها و گرفتن اشیا از جستجوهای محلی در فضای پیکربندی استفاده می‌کنند. بسیاری از الگوریتم‌های یادگیری از الگوریتم‌های جستجو مبتنی بر بهینه‌سازی استفاده می‌کنند.
جستجوی ساده و کامل به ندرت برای بیشتر مشکلات دنیای واقعی کافی است: فضای جستجو (تعداد مکان‌های جستجو) به سرعت به اعداد نجومی می‌رسد. نتیجه جستجویی بسیار کند است یا هرگز کامل نمی‌شود. راه حل، برای بسیاری از مشکلات، استفاده از " اکتشافی " است که انتخاب‌ها را به نفع افرادی که احتمال بیشتری برای رسیدن به هدف دارند اولویت بندی می‌کند و این کار را در چند مرحله کوتاه‌تر انجام می‌دهد. در برخی از روشهای جستجو، روشهای اکتشافی همچنین می‌توانند به‌طور کامل برخی از گزینه‌هایی را که بعید است به یک هدف منجر شوند از بین ببرند (که " هرس درخت جستجو " نامیده می‌شود). روشهای ابتکاری "بهترین حدس" را برای مسیری که راه حل در آن نهفته‌است، ارائه می‌دهند. روشهای اکتشافی جستجو برای راه حل‌ها را به اندازه نمونه کوچکتر محدود می‌کند.
نوع مختلفی از جستجو در دهه ۱۹۹۰، بر اساس تئوری ریاضیات بهینه‌سازی، مورد توجه قرار گرفت. برای بسیاری از مشکلات، می‌توان جستجو را با نوعی حدس آغاز کرد و سپس حدس را به تدریج اصلاح کرد تا جایی که دیگر اصلاحاتی نتواند انجام شود. این الگوریتم‌ها را می‌توان به صورت کوهنوردی کور از تپه مشاهده کرد: ما جستجو را در یک نقطه تصادفی از چشم‌انداز آغاز می‌کنیم، و سپس، با پرش یا گام، حدس خود را در سربالایی حرکت می‌دهیم، تا اینکه به قله برسیم. سایر الگوریتم‌های بهینه‌سازی شبیه‌سازی بازپخت، جستجوی پرتو و بهینه‌سازی تصادفی هستند.
محاسبات تکاملی از نوعی جستجوی بهینه‌سازی استفاده می‌کند. برای مثال، آنها ممکن است با جمعیت موجودات زنده (حدس) شروع شود و سپس به آن‌ها اجازه می‌دهد تغییر یابند و ترکیب شوند، و انتخاب تنها اصلح برای زنده ماندن هر نسل (پالایش حدس) اتفاق بیفتد. الگوریتم‌های تکاملی کلاسیک شامل الگوریتم‌های ژنتیک، برنامه‌نویسی بیان ژن و برنامه‌نویسی ژنتیکی است. * همچنین، فرایندهای جستجوی توزیع شده می‌توانند از طریق الگوریتم‌های هوش ازدحام هماهنگ شوند. دو الگوریتم محبوب ازدحام مورد استفاده در بهینه‌سازی ازدحام ذرات (با الهام از هجوم پرندگان) و بهینه‌سازی کلنی مورچه‌ها (با الهام از مسیرهای مورچه ای) است.
منطق برای بازنمایی دانش و حل مسئله استفاده می‌شود، اما می‌تواند در مورد سایر مشکلات نیز کاربرد داشته باشد. به عنوان مثال، الگوریتم satplan از منطق برای برنامه‌ریزی استفاده می‌کند و برنامه‌نویسی منطق استقرایی روشی برای یادگیری است.
در تحقیقات هوش مصنوعی از چندین شکل مختلف منطق استفاده شده‌است. منطق گزاره ای شامل توابع حقیقت مانند «یا» و «نیست». منطق مرتبه اول سورها و محمول را می‌افزاید، و می‌تواند حقایق در مورد اشیاء، خواص آنها، و روابط خود را با یکدیگر بیان کنند. نظریه مجموعه‌های فازی "گزارشی از حقیقت" (بین ۰ تا ۱) را به عبارات مبهمی مانند "آلیس پیر است" (یا ثروتمند، بلند قد یا گرسنه) اختصاص می‌دهد که از نظر زبان بسیار نادرست هستند و نمی‌توانند کاملاً درست یا نادرست باشند. منطق فازی با موفقیت در سیستم‌های کنترل به کار می‌رود تا به متخصصان اجازه دهد قوانین مبهمی مانند "اگر نزدیک ایستگاه مقصد هستید و سریع حرکت می‌کنید، فشار ترمز قطار را افزایش دهید". این قوانین مبهم می‌توانند به صورت عددی در سیستم اصلاح شوند. منطق فازی نمی‌تواند در پایگاه‌های دانش به خوبی مقیاس بندی شود. بسیاری از محققان هوش مصنوعی، صحت استفاده از استنباط‌های منطق فازی را زیر سؤال می‌برند.
منطق پیش فرض، منطق غیر یکنواخت و خلاصه فرم‌های منطقی هستند که برای کمک به استدلال پیش فرض و مشکل صلاحیت طراحی شده‌اند. چندین پسوند منطق طراحی شده‌اند که مسئولیت رسیدگی به حوزه‌های خاص از دانش، مانند: منطق توصیفی؛ حساب وضعیت، حساب رویداد و حساب روان (برای نمایش وقایع و زمان)؛ حساب علیت؛ حساب باور (تجدید نظر در باور)؛ و منطق معین. منطق‌هایی برای مدل‌سازی جملات متناقض یا متناقض ناشی از سیستم‌های چند عاملی نیز طراحی شده‌است، مانند منطق‌های متناقض.