플래너(프로그래밍 언어)
Planner (programming language)![]() |
패러다임 | 멀티패러다임: 로직, 프로시저 |
---|---|
설계자 | 칼 휴이트 |
처음 등장한 | 전 |
주요 구현 | |
마이크로플래너, 피코플래너, 포플러, PICO-PLANNER | |
사투리 | |
QA4, Conniver, QLISP, Ether | |
영향받은 | |
프롤로그 |
플래너(PLANNER)는 MIT의 Carl Hewitt에 의해 설계되어 1969년에 처음 출판된 프로그래밍 언어입니다.먼저 Micro-Planner 및 Pico-Planner와 같은 서브셋이 구현되었으며, 그 후 기본적으로 전체 언어가 POP-2 프로그래밍 [1]언어로 에딘버러 대학의 Julian Davies에 의해 Popler로 구현되었습니다.QA4, Conniver, QLISP 및 Ether(과학 커뮤니티 비유 참조)와 같은 파생물은 1970년대 인공지능 연구의 중요한 도구였으며, KEI(Knowledge Engineering Environment)와 자동 추론 도구(ART)와 같은 상업적 발전에 영향을 미쳤다.
절차적 접근법과 논리적 접근법
의미 소프트웨어 시스템을 구축하기 위한 두 가지 주요 패러다임은 절차적이고 논리적이었다.절차 패러다임은 리스트 구조에서 작동하는 재귀적 절차를 특징으로 하는 리스프[McCarthy et al. 1962]에 의해 요약되었다.
논리적 패러다임은 균일한 입증 절차 해결 기반 파생(증명) 발견자에 의해 요약되었다[로빈슨 1965].논리적 패러다임에 따르면 절차적 지식을 통합하는 것은 "사기"였다[Green 1969].
지식의 절차적 삽입
플래너는 지식의 절차적 임베딩을 목적으로 발명되었고 [Hewitt 1971] 해상도 균일 증명 절차 패러다임의 거부였다 [Robinson 1965]
- 모든 걸 클래설 형식으로 바꿨어모든 정보를 Clausal 형식으로 변환하는 것은 정보의 기본 구조를 숨기기 때문에 문제가 있습니다.
- 그리고 나서 증명될 정리의 부정의 클래설 형식을 추가함으로써 모순에 의한 증거를 얻기 위해 해상도를 사용했다.해상도만 추론 규칙으로 사용하는 것은 증거의 근본적인 구조를 숨기기 때문에 문제가 있다.또한, 모순에 의한 증거를 사용하는 것은 모든 실용적인 지식의 영역의 공리화가 실제로 일관되지 않기 때문에 문제가 있다.
플래너는 프로그램 가능성과 논리적 추론을 결합했기 때문에 절차적 패러다임과 논리적 패러다임 사이의 일종의 혼합체였습니다.플래너는 논리적인 문장의 절차적 해석을 특징으로 하며, 이 문장의 의미는 다음과 같습니다.(P는 Q를 의미합니다)는 패턴 다이렉트 호출을 사용하여 다음 방법으로 해석할 수 있습니다.
- 순방향 체인(간단하게):
- P를 아사트하는 경우 Q를 아사트합니다.
- Assert가 Q가 아닌 경우 P를 Assert하지 마십시오.
- 역방향 체인(결과적으로)
- 목표 Q일 경우 목표 P
- 골이 P가 아니면 골이 Q가 아니다.
이 점에서, Planner의 개발은 자연 연역적 논리 체계(특히 Frederic Fitch[1952년]에 의해 영향을 받았다.
마이크로 플래너 구현
Micro-Planner라고 불리는 서브셋은 Gerry Sussman, Eugene Charniak 및 Terry Winograd [Sussman, Charniak 및 Winograd 1971]에 의해 구현되었으며 Winograd의 자연어 이해 프로그램 SHRDU, Eugene Charniaak의 스토리 이해 작업인 Thorneyc에 사용되었습니다.이것은 AI 분야에서 큰 흥분을 불러일으켰다.그동안 AI의 주요 패러다임 중 하나였던 논리 접근법에 대한 대안을 제시해 논란을 빚기도 했다.
SRI International에서는 Jeff Rulifson, Jan Derksen 및 Richard Waldinger가 Planner의 구조를 기반으로 QA4를 개발하고 데이터베이스 표현에 모듈식 기능을 제공하는 컨텍스트 메커니즘을 도입했습니다.Earl Sacerdoti와 Rene Reboh는 INTERLISP에 내장된 QA4의 확장판인 QLISP를 개발하여 프로시저 언어에 내장된 플래너와 같은 논리를 제공하고 풍부한 프로그래밍 환경에서 개발하였습니다.QLISP는 리처드 월딩거와 칼 레빗이 프로그램 검증을 위해, 얼 새커도티가 계획 및 실행 모니터링을 위해, 장 클로드 라톰브가 컴퓨터 지원 설계를 위해, 리처드 파이크가 연역 검색을 위해, 스티븐 콜스가 경제 측정 모델을 사용하는 초기 전문가 시스템을 위해 사용했다.
컴퓨터는 비쌌다.현재에 비해 느린 프로세서는 1개뿐이었고 메모리는 매우 작았습니다.Planner는 다음과 같은 몇 가지 효율화 방법을 채택했습니다.
- 백트래킹 [Golomb and Baumert 1965]은 대안 모색 시 한 번에 하나의 가능성만을 연구하고 저장함으로써 시간과 저장 공간을 절약하기 위해 채택되었습니다.
- 서로 다른 이름이 서로 다른 개체를 참조한다고 가정함으로써 공간과 시간을 절약하기 위해 고유한 이름 가정이 채택되었습니다.예를 들어, 베이징(이전 PRC 대문자 이름)과 베이징(현재의 PRC 대문자 변환)과 같은 이름은 다른 대상을 지칭하는 것으로 가정되었다.
- 폐쇄적 가정은 목표를 증명하려는 시도가 완전히 실패했는지 여부를 조건부로 테스트함으로써 구현될 수 있다.나중에 이 기능은 목표 G에 대해 "G를 달성하려는 시도가 완전히 실패하면 (G가 아닌) 단언"이라고 말할 수 있기 때문에 "실패로서의 부정"이라는 잘못된 이름이 붙었다.
프롤로그의 기원
게리 서스먼, 유진 차르니악, 시모어 파퍼트, 테리 위노그라드는 1971년 에든버러 대학을 방문해 마이크로 플래너와 SHRDLU에 대한 뉴스를 퍼뜨리고 에든버러 논리학자들의 주축을 이루던 해상도 균일한 입증 절차 접근법에 의문을 제기했다.에든버러 대학에서 Bruce Anderson은 PICO-PLANNER(Anderson 1972)라고 불리는 Micro-Planner의 서브셋을 구현하고 Julian Davies(1973)는 기본적으로 모든 Planner를 구현했습니다.
도날드 맥켄지에 따르면 팻 헤이스는 파퍼트에서 "인공지능 로직랜드의 심장"이 된 에딘버러 방문의 영향을 떠올렸다고 MIT 동료인 칼 휴이트는 전했다.파퍼트는 에든버러에서 지배적인 결의안 접근법에 대해 웅변적으로 "…그리고 적어도 한 명은 파퍼트 때문에 막대기를 들고 떠났다."고 말했다. [MacKenzie 2001 p 82]
상기의 발전은 에든버러 논리학자들 사이에 긴장감을 불러일으켰다.이러한 긴장은 영국 과학 연구 위원회가 제임스 라이트힐 경에게 영국의 AI 연구 상황에 대한 보고서 작성을 의뢰하면서 더욱 악화되었다.결과 보고서 [Lighthill 1973; McCarthy 1973]는 SHRDLU가 호의적으로 언급되었지만 매우 비판적이었다.
팻 헤이스는 스탠포드를 방문했고 그곳에서 플래너에 대해 배웠다.그가 에딘버러로 돌아왔을 때, 그는 그의 친구 밥 코왈스키에게 자동화된 정리 증명에 대한 공동 작업에서 플래너를 고려하도록 영향을 주려고 했습니다."해결 정리 증명은 화제에서 잘못된 과거의 유물로 강등되었습니다.밥 코왈스키는 해상도 정리 증명 가능성에 대한 자신의 신념을 고집했다.브루누헤, 페레이라, 시크만, 반 엠덴에 따르면, 그는 신중하게 플래너를 공부했다[2004].Kowalski[1988)는 "플래너가 SL 해상도와 비슷하다고 Hewitt를 설득하려고 했던 것을 기억할 수 있다"고 말한다.그러나 Planner는 지식의 절차적 삽입을 목적으로 개발되었으며 해상도 균일한 입증 절차 패러다임의 거부였습니다.Colmerauer와 Rousel은 Planner에 대해 알게 된 반응을 다음과 같이 회상했습니다.
71년 9월 Jean Trudel과 IJCAI 컨벤션 참석 중 Robert Kowalski를 다시 만나 Terry Winograd의 자연어 처리에 대한 강의를 들었습니다.그가 통일된 형식주의를 사용하지 않았다는 사실이 우리를 어리둥절하게 만들었다.Carl Hewitt의 프로그래밍 언어인 Planner의 존재를 알게 된 것은 이 시기였습니다 [Hewitt, 1969년].이 언어의 형식화 부족, 리스프에 대한 우리의 무지, 그리고 무엇보다도 우리가 논리에 전념했다는 사실은 이 연구가 우리의 후기 연구에 거의 영향을 미치지 않았다는 것을 의미했다. [콜메라우어와 루셀 1996]
1972년 가을, Philippe Rousel은 Prolog라고 불리는 언어를 구현했습니다(PROgrammation en LOGique – "논리에서의 프로그래밍"을 뜻하는 프랑스어).프롤로그 프로그램은 일반적으로 다음과 같은 형식입니다(Planner의 역방향 체인의 특수한 경우).
- 목표 Q, 목표1 P, ..., 목표n P일 때
Prolog는 Micro-Planner의 다음 측면을 복제했습니다.
- 목표에서 절차를 호출하는 패턴(즉, 역방향 연결)
- 패턴 지향 프로시저와 기본 문장의 색인 데이터베이스.
- 정리 증명에 관한 이전의 작업을 특징짓던 완전성 패러다임을 포기하고 지식 패러다임의 프로그래밍 언어 절차적 삽입으로 대체한다.
또한 Prolog는 공간과 시간을 절약하여 당시의 컴퓨터에 실용적으로 유용한 Micro-Planner의 다음과 같은 기능을 복제했습니다.
- 역추적 제어 구조
- 서로 다른 이름이 별개의 실체를 지칭한다고 가정하는 고유 명칭 가정(예: 북경 및 북경)은 서로 다른 것으로 가정한다.
- 장애의 재현Planner가 무언가를 입증할 수 있다는 것을 증명하는 방법은 그것을 목표로 성공적으로 시도하는 것이고, 그것이 입증할 수 없다는 것을 증명하는 방법은 그것을 목표로 시도했다가 명백히 실패하는 것이다.물론 다른 가능성은 목표를 증명하려는 시도가 영원히 지속되고 어떤 가치도 반환되지 않는다는 것입니다.또한 Planner는 표현에 실패했을 때 성공하는 (표현이 아닌) 구성을 가지고 있으며, 이로 인해 Planner에서 "Negation as Failure"라는 용어가 생성되었습니다.
Open Systems[Hewitt and de Jong 1983, Hewitt 1985, Hewitt, and Inman 1991]에 관심이 쏠렸을 때 고유 이름 가정과 부정을 실패로 사용하는 것은 더욱 의심스러워졌습니다.
Prolog에서 Micro-Planner의 다음 기능이 누락되었습니다.
- 어설션에서 절차 계획의 패턴 지향 호출(즉, 전진 체인)
- 논리적 부정, 예를 들어 (인간 소크라테스가 아님)
프롤로그에는 구현 문제를 일으키기 때문에 부분적으로 부정은 포함되지 않았습니다.예를 들어, 다음과 같은 Prolog 프로그램에 부정이 포함되어 있는지 확인합니다.
- Q가 아닙니다.
- Q:- P.
위의 프로그램은 수학 논리 법칙을 따르더라도 P가 아니라는 것을 증명할 수 없습니다.이것은 Prolog(Planner와 같은)가 프로그래밍 언어가 되는 것을 의도하고 있기 때문에, 프로그램의 선언적인 판독으로부터 생기는 논리적인 결과의 대부분을 (그 자체만으로는) 증명하지 않는다는 것을 나타내고 있습니다.
Prolog에 대한 작업은 Planner보다 훨씬 단순하다는 점에서 가치가 있었습니다.그러나 언어의 표현력이 향상될 필요성이 대두되면서 Prolog는 Prolog의 원래 버전에서 제외되었던 Planner의 많은 기능을 포함하기 시작했습니다.
레퍼런스
참고 문헌
- 브루스 앤더슨입니다1972년 에든버러 대학교 LIB PICO-PLANNER 인공지능 스쿨 문서
- 브루스 바움가트.Micro-Planner 대체 참조 매뉴얼 Stanford AI Lab 운영 노트 No. 67, 1972년 4월
- 를 클릭합니다Coles, Steven (1975), "The Application of Artificial Intelligence to Heuristic Modeling", 2nd US-Japan Computer Conference.
- 를 클릭합니다Fikes, Richard (1975), Deductive Retrieval Mechanisms for State Description Models, IJCAI.
- 를 클릭합니다Fitch, Frederic (1952), Symbolic Logic: an Introduction, New York: Ronald Press.
- 를 클릭합니다Green, Cordell (1969), "Application of Theorem Proving to Problem Solving", IJCAI.
- Hewitt, Carl (1969). "PLANNER: A Language for Proving Theorems in Robots". IJCAI. CiteSeerX 10.1.1.80.756.
- 를 클릭합니다Hewitt, Carl (1971), "Procedural Embedding of Knowledge In Planner", IJCAI.
- 칼 휴이트."오픈 시스템의 과제" 바이트 매거진.1985년 4월
- 칼 휴이트와 제프 인만입니다."DAI Betwixt 및 그 사이:'인텔리전트 에이전트'에서 '오픈 시스템 사이언스'까지 시스템, 인간 및 사이버네틱스에 관한 IEEE 트랜잭션입니다.1991년 11월/12월
- 칼 휴이트와 굴 아그하."Guarded Horn 절 언어: 연역적이고 논리적인가요?"옴샤 1988, 제5세대 컴퓨터 시스템에 관한 국제 회의도쿄. MIT의 인공지능 분야에서도 제2권 MIT Press 1991.
- 를 클릭합니다Hewitt, Carl (March 2006), The repeated demise of logic programming and why it will be reincarnated – What Went Wrong and Why: Lessons from AI Research and Applications (PDF), Technical Report, AAAI Press, archived from the original (PDF) on 2017-12-10.
- 윌리엄 콘펠트와 칼 휴이트입니다과학 커뮤니티 메타포 MIT AI 메모 641.1981년 1월
- 빌 콘펠트와 칼 휴이트입니다."The Scientific Community Metapo" 시스템, 인간 및 사이버네틱스에 관한 IEEE 트랜잭션.1981년 1월
- 빌 콘펠드."휴리스틱 검색을 구현하기 위한 병렬 사용" IJCAI 1981.
- 빌 콘펠드."문제 해결의 병렬성" MIT EECS 박사 논문.1981년 8월
- 빌 콘펠드.CACM. 1982년 "상호 내포 알고리즘"
- 로버트 코왈스키.1986년 컴퓨터 과학에 관한 제14회 ACM 연차 회의의 "논리의 한계" 속행.
- 로버트 코왈스키."논리 프로그래밍의 초기" CACM 1988년 1월.
- 를 클릭합니다Latombe, Jean-Claude (1976), "Artificial Intelligence in Computer-Aided Design", CAD Systems, North-Holland.
- 를 클릭합니다McCarthy, John; Abrahams, Paul; Edwards, Daniel; Hart, Timothy; Levin, Michael (1962), Lisp 1.5 Programmer's Manual, MIT Computation Center and Research Laboratory of Electronics.
- 를 클릭합니다Robinson, John Alan (1965), "A Machine-Oriented Logic Based on the Resolution Principle", Communications of the ACM, doi:10.1145/321250.321253.
- 게리 서스먼과 테리 위노그라드.Micro-planner 참조 매뉴얼 AI 메모 No, 203, MIT Project MAC, 1970년 7월
- 테리 위노그라드.MIT AI TR-235 자연어 이해를 위한 컴퓨터 프로그램에서 데이터 표현으로서의 절차.1971년 1월
- 제리 서스먼, 테리 위노그라드, 유진 차르니아크.Micro-Planner Reference Manual (갱신) AI 메모 203A, MIT AI Lab, 1971년 12월.
- 칼 휴이트.로봇 AI 메모 제251호, MIT Project MAC, 1972년 4월, 이론 및 모델 조작을 위한 언어인 Planner의 설명 및 이론적 분석(Schemata 사용)
- 유진 차르니악.어린이 이야기 이해 모델을 향해 MIT AI TR-266.1972년 12월
- 줄리안 데이비스.Popler 1.6 에든버러 참조 매뉴얼 대학, TPU 보고서 No.1, 1973년 5월.
- Jeff Rulifson, Jan Derksen, 그리고 Richard Waldinger."QA4, 직관적 추론을 위한 절차적 미적분" SRI AI 센터 테크니컬 노트 73, 1973년 11월.
- 스캇 팔먼입니다"로봇 제작 태스크 계획 시스템" MIT AI TR-283.1973년 6월
- 제임스 라이트힐입니다"인공지능:일반 조사 인공지능: 논문 심포지엄." 영국 과학 연구 위원회.1973.
- 존 매카시."인공지능 리뷰:일반 조사 인공지능: 논문 심포지엄." 영국 과학 연구 위원회.1973.
- Robert Kowalski "프로그래밍 언어로서의 논리" 메모 70, 에든버러 대학 인공지능학과1973
- 팻 헤이즈.컴퓨터 과학의 계산 및 추리 수학 기초: 1973년 9월 3일부터 8일까지 체코슬로바키아 하이타트라스 슈트르브스케 플레소, 심포지엄과 여름 학교 진행.
- 칼 휴이트, 피터 비숍, 리처드 스타이거."인공지능을 위한 유니버설 모듈러 액터 형식주의" IJCAI 1973.
- L. 손 매카티"택스맨에 대한 반성: 인공지능과 법적 추론에 대한 실험" 하버드 법리뷰.제90권 제5호 1977년 3월
- 드류 맥더못과 게리 서스먼입니다Conniver 참조 매뉴얼 MIT AI 메모 259A.1974년 1월
- Earl Sacerdoti, et al., "복잡한 시스템의 인터랙티브 개발을 위한 QLISP 언어" AFIPS . 1976
- 를 클릭합니다Sacerdoti, Earl (1977), A Structure for Plans and Behavior, Elsevier North-Holland.
- 를 클릭합니다Waldinger, Richard; Levitt, Karl (1974), Reasoning About Programs Artificial Intelligence.
외부 링크
- Alain Colmerauer's and Philippe Rousel's 1992년 Wayback Machine에서의 프롤로그 탄생 설명(2003년 7월 27일 아카이브)