پلانر

رویکرد پروسه‌ای در مقابل رویکرد منطقی

رویکرد پروسه‌ای و منطقی دو الگو مهم برای تولید سیستم معنایی نرم‌افزار بودند. رویکرد پروسه‌ای در Lisp [McCarthy et al. 1962] که در آن پروسه‌های بازگشتی بر روی ساختار لیست عمل می‌کردند پیاده شد.
رویکرد منطقی نیز به روش اثبات یکنواخت حل قضیه resolution theorem provers [Robinson 1965] پیاده شد. بر اساس رویکرد منطقی، در ترکیب پروسه‌ای اطلاعات آن "تقلب" محسوب می‌شد [Green 1969].

پیاده سازی Micro-Planner

یک زیر مجموعه به نام Micro-Planner توسط Gerry Sussman, Eugene Charniak و Terry Winograd [Sussman, Charniak, and Winograd 1971] پیاده‌سازی شد و در برنامه فهمیدن زبان طبیعی SHRDLU ی Winograd کار Eugene Charniak در مفهوم داستانی و کار Thorne McCarty در دلایل قانونی و دیگر پروژه‌ها استفاده شد. Micro-Planner یک هیجان زیاد در زمینه AI به وجود آورد و همچنین یک مباحثه و جدال به وجود آورد زیرا پیشنهاد جایگزینی برای روش منطقی کرد که یکی از روش‌های پایه‌ای AI بود. در SRI Jeff Rulifson, Jan Derksen و Richard Waldinger QA4 را پیشرفت دادند که بر روی سازنده‌ها در Planner ساخته شده و یک مکانیسم متنی را معرفی کردند که خاصیت ماژولی را در پایگاه‌های داده به ارمغان می‌آورد. Earl Sacerdotiو Rene Reboh به پیشرفت QLISP و گسترش QA4 را در INTERLISP دست زدند و استدلالی برنامه ریز مانند embedded شده در یک زبان پروسه‌ای و توسعه یافته در محیط‌های برنامه‌نویسی ارائه کردند. QLISP توسط Richard Waldinger, Karl Levitt برای تصدیق برنامه استفاده شد و توسط Earl Sacerdoti برای برنامه‌ریزی و monitoring اجرا استفاده گشت و همچنین توسط Jean-Claude Latombe برای طراحی‌های به کمک کامپیوتر استفاده شد، توسط Richard Fikes بازیابی استقرایی و توسط Steven Coles برای سیستم خبره ابتدایی که در مدل‌های اقتصادی مورد کاربرد است استفاده شد.
کامپیوترها گران بودند و آن‌ها تنها یک پردازنه ضعیف و حافظه‌هایی کم حجم در مقایسه با حال در دسترس داشتنند و به همین دلیل Planner برخی بهبودها را مانند زیر اتخاذ کرد:
ردیابی رو به عقب [Golomb, Baumert 1965] برای صرفه جویی در استفاده از زمان و حجم ذخیره شده اتخاذ شد و این کار را با کار روی ذخیره‌سازی تنها امکان در یک زمان انجام می‌داد.
نام منحصر به فردی برای صرفه جویی در فضا و زمان فرض شد با فرض آن که نام‌های مختلف مراجعه‌کننده به اجسام مختلف هستند اتخاذ شد. برای مثال اسامی مثل Peking, Beijing فرض شد که به اشیاء متفاوتی اشاره می‌کنند.
یک فرض جهان شمول را می‌توان با تست مشروط پیاده‌سازی کرد در حالی که تلاش برای اثبات یک هدف جامع شکست خورده‌است. بعدها این ظرفیت به اشتباه "نفی به عنوان شکست" خوانده شد زیرا برای هدف G این امکان موجود بود که گفته شود : "اگر تلاش برای اثبات G با شکست مواجه شد پس منفی G صحیح است.

کنترل اختلاف ساختار

حافظه کامپیوترها نسبت به استانداردهای امروزی بسیار کوچک بود زیرا حافظه بسیار گران بود و در آن زمان از هیدرواکسید آهن ساخته می‌شد. به همین دلیل Planner استفاده معمول از ساختار کنترلی backtracking را اتخاذ کرد تا در استفاده از حافظه کامپیوتر صرفه جویی شود. به این روش کامپیوتر در هر زمان تنها یک امکان را در کاوش جایگزینی دنبال می‌کرد.
یک پیاده‌سازی تصمیم‌گیری در Micro-Planner عواقب مایه تاسفی را در بر داشت. Lisp تصمیم گرفت که از جناس برنامه‌نویسی شناسایی صفر استفاده کند، یک لیست خالی با صفر منطقی (در مکان حافظه 0) زیرا تست کرد برای صفر از هرچیز دیگری سریع تر بود. به دلیل این جناس، تست کردن برای صفر در برنامه‌نویسی Lisp بسیار معمول بود. در Micro-Planner این جناس را تمدید دادند تا از صفر به عنوان یک سیگنال برای آغاز پس‌گرد (الگوریتم) استفاده کنند. در Micro-Planner معمول بود که برنامه‌هایی بنویسند تا عملیاتی روی تمامی اعضای یک لیست انجام دهد و این به وسیله یک حلقه انجام می‌شد که روی عنصر اول هر لیست پردازش می‌کرد و سپس به ابتدای حلقه بازمی‌گشت تا خالی بودن حلقه را آزمایش کند. اگر لیست خالی بود آنگاه برنامه کار خود را ادامه می‌داد با اجرا کردن چیزهای دیگر. چنین برنامه‌ای بعد از اجرای تمام پروسه‌ها هیچگاه لیست را خالی نمی‌یافت زیرا وقتی آخرین پروسه اجرا می‌شد و لیست ریست می‌شد صفر به عنوان یک مقدار بازگردانده می‌شد. مترجم Micro-Planner این را به عنوان سیگنالی برای آغاز Backtracking در نظر می‌گرفت و شروع به باز گرداندن تمام المان‌های پروسه شده لیست می‌کرد! مرد بیصدا تأسیس شد [Fahlman 1973] .
بدین وسیله و چندین راه دیگر Backtracking اثبات کرد که سنگین است، Hewitt در تز خود بعضی این جایگزینی‌ها را دنبال کرد.

ساختار کنترلی مویین

مطابق با Hewitt [2006], Peter Landin یک ساختار کنترلی قویتر معرفی کرد که از اپراتور J برای پرش استفاده می‌کرد و می‌توانست یک Goto غیر محلی به میان رویه مورد درخواست انجام دهد. در واقع اپراتور J می‌توانست به میان رویه‌ای که مقدار خود را باز گردانده پرش کند. Drew McDermott و Gerald Sussman این روش Peter Landin را ساختار کنترلی مویین نامیدند و از آن در فرم goto غیر محلی در زبان‌های برنامه‌نویسی Conniver استفاده کردند. Scott Fahlman از Conniver در سیستم Planner خویش برای روبات سازنده Taskها استفاده کرد و این به آنچه اکنون re-invocable continuationsمرتبط است.

ساختارهای کنترلی الگوهای ارسال پیام هستند

Hewitt گزارش کرد که : .... ما یافتیم که بدون متعلقات " ساختار کنترلی مویین" (مثل لیست‌های امکان، goto غیر محلی، مقدار دهی به متغیرهای داخلی دیگر پروسه‌ها در Conniver ) عمل کنیم..... به نظر می‌رسد که قراردادهای ارسال پیام ساختار بهتری ارائه می‌دهند مبنای بصری بیشتر برای ساختن سیستم ارتباطی نیاز به یک ماژول حل مشکل قوی برای همکاری مؤثرتر دارد. مدل بازیگر Actor model مبنایی برای حل مسائل ساختار کنترلی هوش مصنوعی ارائه می‌کند . و این زمان قابل توجهی جهت پیشرفت متودولوژی برنامه‌نویسی مدل بازیگر می‌گیرد. در واقع، پیاده‌سازی ارتباط جامعه علمی scientific community metaphor نیاز به ارسال پیام پیچیده‌ای دارد که هنوز پایه برخی تحقیقات است.