**پلانر** (به انگلیسی: Planner) (که با وجود اینکه مخفف نیست، به‌طور معمول در نشریات به صورت PLANNER دیده می‌شود) یک زبان برنامه‌نویسی است که توسط کارْل هِوْیت در دانشگاه ام‌آی‌تی طراحی شده‌است و برای اولین بار در سال ١٩۶٩ به چاپ رسید. در ابتدا، زیر مجموعه‌هایی مثل میکرو پلانر و پیکو پلانر پیاده‌سازی شدند و سپس کل زبان در Popler پیاده‌سازی شد. مشتقاتی مثل QA4, Conniver, QLISP و Ether (نگاه کنید به جامعه علمی Metaphor) در دهه ١٩٧٠ ابزارهای مهمی در تحقیقات هوش مصنوعی بودند، که البته در تحولات اقتصادی مانند KEE و ART تأثیرگذار بودند.

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

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

پروسه تعبیه اطلاعات
-------------------

Planner برای اهداف پروسه تعبیه اطلاعات [Hewitt 1971] اختراع شد و ردی بود بر ترکیب پروسه‌ای اطلاعات [Robinson 1965] که در آن:
همه چیز به فرم Clausal تبدیل می‌شد. تبدیل همه اطلاعات به فرم clausal form مشکل ساز بود برای اینکه ساختارهای زیرین اطلاعات را محو می‌ساخت.
سپس برای بدست آوردن استدلال از ترکیب اضافه کردن فرم Clausal به تناقص قضیه استفاده می‌کرد تا آن را اثبات کند. استفاده از این ترکیب به عنوان تنها قانون استنتاج مشکل ساز بود، به این دلیل که ساختار زیرین اثبات محو می‌شد. همینطور استفاده از اثبات با تناقض نیز مشکل ساز بود زیرا مسئله axiomatizations تمامی محدوده‌های اطلاعات متناقض در مسئله می‌شدند.
Planner یک گونه هیبریدی مابین الگوی پروسه‌ای و منطقی بود زیرا آن قدرت برنامه پذیری را با دلایل منطقی مخلوط کرده بود.Planner یک تفسیر جملات منطقی را برجسته ساخت که در آن مفهوم فرم (P implies Q) می‌تواند به فرم‌های پروسه‌ای زیر ترجمه شوند:

1. Forward chaining (antecedently):

* *If assert* P, *assert* Q
*If assert not* Q, *assert not* P

1. زنجیره‌سازی عقب‌سو (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 نیاز به ارسال پیام پیچیده‌ای دارد که هنوز پایه برخی تحقیقات است.

پیدایش پرولوگ
-------------

جرالد جی ساسمن [Sussman, Winograd and (Charniak 1971), سیمور پاپرت (Minsky و Terry Winograd (Winograd 1971) در ادینبرو اخباری را پخش کردند مبنی بر اینکه Micro-Planner و SHRDLUدر حل روش اثبات یکنواخت دارای مشکل است که آن پایه منطق Edinburgh بود.
در دانشگاه Edinburgh، Bruce Anderson زیر مجموعه‌ای از Micro-Planner را به نام Pico-Planner (Anderson 1972) , Julian Davies (1973) اجرا کرد که در اصل تمام Planner را پیاده کرد.
به گفته Donald MacKenzie :
Pat Hayes تأثیر بازدید از Papert تا Edinburgh را یاداور می‌شد که تبدیل شده بود به "قلب منطق هوش مصنوعی "و به استناد همکار MIT , Papert آقای Carl Hewitt : در نقد روش حل غالب Papert eloquently گفته "و حداقل یک نفر به خاطر Papert بالا رفت "[MacKenzie 2001 pg 82.]

تحولات بالا ایجاد تنش در میان منطق Edinburgh کرد و این تنش‌ها در زمانی که آکادمی علوم بریتانیا فردی را به نام Sir James Lighthill برای نوشتن گزارشی از تحقیقات هوش مصنوعی مامور کرد تشدید شد.
در گزارش Lighthill resulting report, McCarthy 1973] به شدت بحرانی و SHRDLU مطلوب ذکر شده.
Pat Hayes به استندفورد رفت و در آنجا Planner را دید و در بازگشت سعی کرد که بر دوستش Bob Kowalski اثر بگذارد و Planner را وارد کار مشترکشان بر روی اثبات قضیه آتوماتا کند

*When goal* Q, *goal* P1 *and* ... *and goal* Pn
پرولوگ جنبه‌های زیر را از Micro-Planner در بر گرفت:

منابع
-----

1. ↑  Carl Hewitt Middle History of Logic Programming: Resolution, Planner, Prolog and the Japanese Fifth Generation Project ArXiv 2009.

* Frederic Fitch. **Symbolic Logic: an Introduction** Ronald Press, New York, 1952.
* John McCarthy, Paul Abrahams, Daniel Edwards, Timothy Hart, and Michael Levin. **Lisp 1.5 Programmer’s Manual** MIT Computation Center and Research Laboratory of Electronics. 1962.
* John Alan Robinson, **A Machine-Oriented Logic Based on the Resolution Principle.** CACM. 1965.
* Cordell Green. **Application of Theorem Proving to Problem Solving** IJCAI 1969.
* Carl Hewitt. **PLANNER: A Language for Proving Theorems in Robots** IJCAI 1969.
* Gerry Sussman and Terry Winograd. **Micro-planner Reference Manual** AI Memo No, 203, MIT Project MAC, July 1970.
* Terry Winograd. **Procedures as a Representation for Data in a Computer Program for Understanding Natural Language** MIT AI TR-235. January 1971.
* Carl Hewitt. **Procedural Embedding of Knowledge In Planner** IJCAI 1971.
* Gerry Sussman, Terry Winograd and Eugene Charniak. "Micro-Planner Reference Manual (Update)" AI Memo 203A, MIT AI Lab, December 1971.
* Carl Hewitt. **Description and Theoretical Analysis (Using Schemata) of Planner, A Language for Proving Theorems and Manipulating Models in a Robot** AI Memo No. 251, MIT Project MAC, April 1972.
* Bruce Anderson. **Documentation for LIB PICO-PLANNER** School of Artificial Intelligence, Edinburgh University. 1972
* Bruce Baumgart. **Micro-Planner Alternate Reference Manual** Stanford AI Lab Operating Note No. 67, April 1972.
* Eugene Charniak. **Toward a Model of Children's Story Comprehension** MIT AI TR-266. December 1972.
* Julian Davies. **Popler 1.6 Reference Manual** University of Edinburgh, TPU Report No. 1, May 1973.
* Jeff Rulifson, Jan Derksen, and Richard Waldinger. **QA4, A Procedural Calculus for Intuitive Reasoning** SRI AI Center Technical Note 73, November 1973.
* Scott Fahlman. **A Planning System for Robot Construction Tasks** MIT AI TR-283. June 1973
* James Lighthill. **Artificial Intelligence: A General Survey** Artificial Intelligence: a paper symposium. UK Science Research Council. 1973.
* John McCarthy. **Review of ‘Artificial Intelligence: A General Survey** Artificial Intelligence: a paper symposium. UK Science Research Council. 1973.
* Robert Kowalski **Predicate Logic as Programming Language** Memo 70, Department of Artificial Intelligence, Edinburgh University. 1973
* Pat Hayes. **Computation and Deduction** Mathematical Foundations of Computer Science: Proceedings of Symposium and Summer School, Štrbské Pleso, High Tatras, Czechoslovakia, September 3–8, 1973.
* Carl Hewitt, Peter Bishop and Richard Steiger. **A Universal Modular Actor Formalism for Artificial Intelligence** IJCAI 1973.
* L. Thorne McCarty. **Reflections on TAXMAN: An Experiment on Artificial Intelligence and Legal Reasoning** Harvard Law Review. Vol. 90, No. 5, March 1977
* Drew McDermott and Gerry Sussman. **The Conniver Reference Manual** MIT AI Memo 259A. January 1974.
* Earl Sacerdoti, et al. **QLISP A Language for the Interactive Development of Complex Systems** AFIPS. 1976
* William Kornfeld and Carl Hewitt. **The Scientific Community Metaphor** MIT AI Memo 641. January 1981.
* Bill Kornfeld and Carl Hewitt. **The Scientific Community Metaphor** IEEE Transactions on Systems, Man, and Cybernetics. January 1981.
* Bill Kornfeld. **The Use of Parallelism to Implement a Heuristic Search** IJCAI 1981.
* Bill Kornfeld. **Parallelism in Problem Solving** MIT EECS Doctoral Dissertation. August 1981.
* Bill Kornfeld. **Combinatorially Implosive Algorithms** CACM. 1982
* Carl Hewitt. **The Challenge of Open Systems** Byte Magazine. April 1985
* Robert Kowalski. **The Limitations of Logic** Proceedings of the 1986 ACM fourteenth annual conference on Computer science.
* Robert Kowalski. **The Early Years of Logic Programming** CACM January 1988.
* Carl Hewitt and Jeff Inman. **DAI Betwixt and Between: From ‘Intelligent Agents’ to Open Systems Science** IEEE Transactions on Systems, Man, and Cybernetics. Nov. /Dec. 1991.
* Carl Hewitt and Gul Agha. **Guarded Horn clause languages: are they deductive and Logical?** International Conference on Fifth Generation Computer Systems, Ohmsha 1988. Tokyo. Also in *Artificial Intelligence at MIT*, Vol. 2. MIT Press 1991.
* Carl Hewitt. **The repeated demise of logic programming and why it will be reincarnated** What Went Wrong and Why: Lessons from AI Research and Applications. Technical Report SS-06-08. AAAI Press. March 2006.
* Richard Waldinger and Karl Levitt. **Reasoning About Programs** Artificial Intelligence. 1974.
* Earl Sacerdoti. **A Structure for Plans and Behavior** Elsevier North-Holland. 1977.
* Jean-Claude Latombe. **Artificial Intelligence in Computer-Aided Design** In *CAD Systems*, North-Holland. 1976.
* Richard Fikes. **Deductive Retrieval Mechanisms for State Description Models** IJCAI 1975
* Steven Coles. **The Application of Artificial Intelligence to Heuristic Modeling** 2nd US-Japan Computer Conference. 1975.

پیوند به بیرون
--------------

* Alain Colmerauer's and Philippe Roussel's ۱۹۹۲ account of the birth of Prolog