استدلال خودکار

استدلال خودکار حوزه‌ای است از علوم کامپیوتر و منطق ریاضی است که مربوط به درک جنبه‌های مختلف از استدلال است. استدلال خودکار منجر به تولید برنامه‌هایی می‌شود که کمک می‌کند کامپیوترها به طور کامل و مستقل توانایی استدلال داشته باشند. با این تعریف، استدلال خودکار معمولا شاخه‌ای از هوش مصنوعی به شمار می‌آید، اما به مقدار زیادی به علوم رایانه نظری و حتی فلسفه مربوط است.
در حال حاضر توسعه‌یافته‌ترین زیرشاخه این علم اثبات قضیه خودکار و بررسی برهان خودکار هستند. نرم‌افزارهای اثبات قضیه خودکار قادرند برخی مسائل و قضایای ریاضی را اثبات نمایند و حتی در مواردی موفق به کشف اثبات‌های کوتاه‌تر برای برخی از قضایای ریاضی شده‌اند.
تعریف
مشکلی که یک برنامه‌ی استدلال خودکار ملزم به حل آن است، دارای دو بخش است. اول فرض مسئله که شامل داده‌هایی‌ست که در مواجهه با مسئله به دست می‌آید. بخش دوم هم نتیجه‌ای است که از استدلال داده‌ها به دست می‌آید. حل مسئله به معنای اثبات حکم آن از روی فرض، بر پایه‌ی اصول استتاجی است که در بدنه‌ی برنامه‌ی استدلال وجود دارد. فرآیند حل مسئله زمانی پایان می‌یابد که اثبات مسئله‌ی موجود پیدا شده باشد یا برنامه عدم وجود اثبات را تشخیص داده باشد.
تاریخچه
توسعه‌ی منطق نقش به سزایی در پیشرفت استدلال خودکار داشته است. یک اثبات درست، اثباتی‌ست که در آن هر استنتاجی که استفاده می‌شود، اصل آن بر پایه‌ی اصول منطق باشد. همه‌ی مراحل اثبات باید به درستی نشان داده شده و پذیرش آن بر اساس شهود نباشد. این باعث کم شدن خطا در اثبات می‌شود.
بسیاری گفته‌اند که گردهمایی Cornell Summer در سال ۱۹۵۷ میلادی که میان جمعی از منطق دانان و دانشمندان علم رایانه برگزار شده بود، باعث پایه‌گذاری استدلال خودکار است. این علم در دهه‌ی هشتاد و نود مورد توجه بسیار قرار گرفت. در سال ۲۰۰۵ شرکت مایکروسافت در بسیاری از پروژه‌های داخلی خود شروع به استفاده از این استدلال، در تشخیص درستی محصولات خود کرد.
Logic Theorist (LT) اولین برنامه‌ی استدلال خودکار بود که در سال ۱۹۵۶ با عنوان «شبیه‌سازی استدلال انسان» برای اثبات تئوری‌ها ارائه شد و برای ۵۲ قضیه از کتاب مبادی ریاضیات اجرا شد که در ۳۸ مورد از آن‌ها به درستی عمل کرد و توانست آن‌ها را اثبات کند. علاوه بر این، این برنامه توانست برای یکی از قضایا اثباتی ارائه دهد که از اثبات ارائه شده در کتاب به مراتب بهتر و کوتاه‌تر بود.
نویسندگان این کتاب پس از آن نوشته‌اند: "در دنیای کنونی، ماشین‌ها فکر می‌کنند. ماشین‌ها یادمی‌گیرند و می‌سازند. این توانایی آن‌ها به سرعت رو به رشد است، تا جایی که در آینده بتوانند به اندازه‌ی یک انسان در حل مسائل پیشرفت کنند."
کاربردها
برنامه نویسی منطقی: برنامه‌نویسی منطقی که با عمدتا با زبان Prolog شناخته می‌شود، مهم‌ترین کاربرد از استدلال خودکار است. در سال ۱۹۷۰ دانشمندان پی‌بردند که از منطق می‌توان به عنوان یک زبان برنامه‌نویسی استفاده کرد.
تایید سخت‌افزارها: با پیشرفت استدلال خودکار، در حوزه‌ی صنعت از این تکنولوژی بهره می‌برند. از جمله استفاده آن برای تایید کارکرد سیستم‌های سخت‌افزاری است. از آنجا که وجود مشکلات کوچک در این‌گونه سیستم‌ها گاه می‌تواند برای شرکت‌های سازنده خسارت‌های فراوانی به بار آورد، تایید درستی آن پیش از عرضه بسیار برای شرکت‌ها مهم است. از طرفی تست کردن تراشه‌ها راه مناسبی به نظر نمی‌رسد. اما با استفاده از استدلال خودکار و با اثبات‌های ریاضیاتی، نشان می‌دهند که سیستم به خوبی وظیفه‌ی مدنظر را انجام می‌دهد.
هوش مصنوعی: استدلال خودکار در حوزه‌ی هوش مصنوعی کاربرد فراوان دارد. در واقع می‌توان گفت استدلال خودکار قلب هوش مصنوعی است. زیرا در این حوزه، رایانش برابر است با استنتاج و حل مسئله. گام‌هایی که در استنتاج مسئله طی می‌شود در نهایت منجر به رسیدن به هدف معین می‌شود. پایه‌ی ایجاد یک محصول دارای هوش مصنوعی، جمع‌آوری استدلال‌های «اگر - آنگاه» مربوط به جهان اطراف محصول است.