پلانر

پلانر (که با وجود اینکه مخفف نیست، به‌طور معمول در نشریات به صورت PLANNER دیده می‌شود) یک زبان برنامه‌نویسی است که توسط Carl Hewitt در MIT طراحی شده‌است و برای اولین بار در سال 1969 به چاپ رسید.در ابتدا، زیر مجموعه‌هایی مثل میکرو پلانر و پیکو پلانر پیاده سازی شدند و سپس کل زبان در Popler پیاده سازی شد. مشتقاتی مثل QA4, Conniver, QLISP و Ether (نگاه کنید به جامعه علمی Metaphor) در دهه 1970 ابزارهای مهمی در تحقیقات هوش مصنوعی بودند، که البته در تحولات اقتصادی مانند KEE و ART تاثیرگزار بودند.
رویکرد پروسه‌ای در مقابل رویکرد منطقی
رویکرد پروسه‌ای و منطقی دو الگو مهم برای تولید سیستم معنایی نرم‌افزار بودند.رویکرد پروسه‌ای در Lisp که درآن پروسه‌های بازگشتی بر روی ساختار لیست عمل می‌کردند پیاده شد.
رویکرد منطقی نیز به روش اثبات یکنواخت حل قضیه resolution theorem provers Robinson 1965 پیاده شد. بر اساس رویکرد منطقی، در ترکیب پروسه‌ای اطلاعات آن "تقلب" محسوب می‌شد Green 1969.
پروسه تعبیه اطلاعات
Planner برای اهداف پروسه تعبیه اطلاعات Hewitt 1971 اختراع شد و ردی بود بر ترکیب پروسه‌ای اطلاعات Robinson 1965 که در آن:
همه چیز به فرم Clausal تبدیل می‌شد. تبدیل همه اطلاعات به فرم clausal form مشکل ساز بود برای اینکه ساختارهای زیرین اطلاعات را محو می‌ساخت.
سپس برای بدست آوردن استدلال از ترکیب اضافه کردن فرم Clausal به تناقص قضیه استفاده می‌کرد تا آن را اثبات کند. استفاده از این ترکیب به عنوان تنها قانون استنتاج مشکل ساز بود، به این دلیل که ساختار زیرین اثبات محو می‌شد. همینطور استفاده از اثبات با تناقض نیز مشکل ساز بود زیرا مسئله axiomatizations تمامی محدوده‌های اطلاعات متناقض در مسئله می‌شدند.
Planner یک گونه هیبریدی مابین الگوی پروسه‌ای و منطقی بود زیرا آن قدرت برنامه پذیری را با دلایل منطقی مخلوط کرده بود.Planner یک تفسیر جملات منطقی را برجسته ساخت که در آن مفهوم فرم (P implies Q) می‌تواند به فرمهای پروسه‌ای زیر ترجمه شوند:
Forward chaining (antecedently):
If assert P, assert Q
If assert not Q, assert not P
زنجیره‌سازی عقب‌سو (consequently)
If goal Q, goal P
If goal not P, goal not Q
با احترام به سیستم طبیعی استنتاج منطقی در رشد Planner تاثیرگذار بود (به خصوص آن یکی که بوسیله Frederic Fitch 1952 درست شد)
پیاده سازی 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 نیاز به ارسال پیام پیچیده‌ای دارد که هنوز پایه برخی تحقیقات است.
پیدایش پرولوگ
جرالد جی ساسمن به شدت بحرانی و SHRDLU مطلوب ذکر شده.
Pat Hayes به استندفورد رفت و در آنجا Planner را دید و در بازگشت سعی کرد که بر دوستش Bob Kowalski اثر بگذارد و Planner را وارد کار مشترکشان بر روی اثبات قضیه آتوماتا کند
When goal Q, goal P 1 and … and goal P n
پرولوگ جنبه‌های زیر را از Micro-Planner در بر گرفت