Planista (język programowania)

Planista
Paradygmat Wieloparadygmat : logiczny , proceduralny
Zaprojektowany przez Carla Hewitta
Po raz pierwszy pojawiły się 1969 ; 54 lata temu ( 1969 )
Najważniejsze wdrożenia
Micro-planner, Pico-Planner, Popler, PICO-PLANNER
Dialekty
QA4, Conniver, QLISP, Ether
Influenced
Prolog

Planner (często określany w publikacjach jako „PLANNER”, chociaż nie jest to akronim) to język programowania zaprojektowany przez Carla Hewitta na MIT i opublikowany po raz pierwszy w 1969 r. Najpierw zaimplementowano podzbiory, takie jak Micro-Planner i Pico-Planner, i następnie zasadniczo cały język został zaimplementowany jako Popler przez Juliana Daviesa na Uniwersytecie w Edynburgu w języku programowania POP-2 . Pochodne takie jak QA4, Conniver, QLISP i Ether (patrz metafora społeczności naukowej ) były ważnymi narzędziami w badaniach nad sztuczną inteligencją w latach 70. XX wieku, co wpłynęło na rozwój komercyjny, taki jak środowisko inżynierii wiedzy (KEE) i narzędzie do automatycznego wnioskowania (ART).

Podejście proceduralne a podejście logiczne

Dwa główne paradygmaty konstruowania semantycznych systemów oprogramowania to proceduralny i logiczny . Paradygmat proceduralny został uosobiony przez Lispa [McCarthy i in. 1962], który zawierał procedury rekurencyjne działające na strukturach list.

Paradygmat logiczny został uosobiony w oparciu o jednolite procedury dowodowe, polegające na znajdowaniu wyprowadzeń (dowodów) w oparciu o rozdzielczość [Robinson 1965]. Zgodnie z paradygmatem logicznym „oszustwem” było włączenie wiedzy proceduralnej [Green 1969].

Proceduralne osadzanie wiedzy

Planner został wymyślony na potrzeby proceduralnego osadzania wiedzy [Hewitt 1971] i był odrzuceniem paradygmatu rozdzielczości jednolitej procedury dowodowej [Robinson 1965], który

  1. Przekonwertowano wszystko na formę klauzulową. Konwersja wszystkich informacji do postaci klauzulowej jest problematyczna, ponieważ ukrywa podstawową strukturę informacji.
  2. Następnie zastosowano uchwałę, aby podjąć próbę uzyskania dowodu przez sprzeczność poprzez dodanie klauzulowej formy negacji twierdzenia, które ma zostać udowodnione. Używanie wyłącznie rozdzielczości jako reguły wnioskowania jest problematyczne, ponieważ ukrywa podstawową strukturę dowodów. Również stosowanie dowodu przez sprzeczność jest problematyczne, ponieważ aksjomatyzacje wszystkich praktycznych dziedzin wiedzy są w praktyce niespójne.

Planner był swego rodzaju hybrydą paradygmatu proceduralnego i logicznego, ponieważ łączył programowalność z logicznym rozumowaniem. Planner przedstawił proceduralną interpretację zdań logicznych, w której implikacja formy (P implikuje Q) może być interpretowana proceduralnie w następujący sposób przy użyciu wywołania opartego na wzorcu:

  1. Łańcuch w przód (poprzednio):
    Jeśli potwierdź P, potwierdź Q.
    Jeśli potwierdź nie Q, potwierdź nie P
  2. Łańcuch wsteczny (w konsekwencji)
    Jeśli cel Q, cel P.
    Jeśli cel nie jest P, cel nie jest Q

Pod tym względem na rozwój Plannera miały wpływ naturalne dedukcyjne systemy logiczne (zwłaszcza ten Frederica Fitcha [1952]).

Wdrożenie mikroplanera

Podzbiór zwany Micro-Planner został zaimplementowany przez Gerry'ego Sussmana , Eugene'a Charniaka i Terry'ego Winograda [Sussman, Charniak i Winograd 1971] i został wykorzystany w programie rozumienia języka naturalnego SHRDLU Winogradu , pracy Eugene'a Charniaka nad zrozumieniem historii, pracy Thorne'a McCarty'ego na temat rozumowania prawnego i kilka innych projektów. Wywołało to ogromne emocje w dziedzinie sztucznej inteligencji. Wywołało to również kontrowersje, ponieważ zaproponowało alternatywę dla podejścia logicznego, które było jednym z głównych paradygmatów sztucznej inteligencji.

W SRI International Jeff Rulifson, Jan Derksen i Richard Waldinger opracowali QA4, który opierał się na konstrukcjach w Plannerze i wprowadził mechanizm kontekstowy zapewniający modułowość wyrażeń w bazie danych. Earl Sacerdoti i Rene Reboh opracowali QLISP, rozszerzenie QA4 osadzone w INTERLISP , zapewniające rozumowanie podobne do Plannera osadzone w języku proceduralnym i opracowane w jego bogatym środowisku programistycznym. QLISP był używany przez Richarda Waldingera i Karla Levitta do weryfikacji programu, przez Earla Sacerdotiego do monitorowania planowania i realizacji, przez Jean-Claude Latombe za projektowanie wspomagane komputerowo, Richard Fikes za wyszukiwanie dedukcyjne i Steven Coles za wczesny system ekspertowy, który kierował wykorzystaniem modelu ekonometrycznego.

Komputery były drogie. Mieli tylko jeden powolny procesor, a ich pamięć była bardzo mała w porównaniu z dzisiejszą. Dlatego Planner przyjął pewne rozwiązania zwiększające wydajność, w tym następujące:

  • Wycofywanie się [Golomb i Baumert 1965] zostało przyjęte w celu zaoszczędzenia czasu i przechowywania poprzez pracę i przechowywanie tylko jednej możliwości na raz w badaniu alternatyw.
  • Aby zaoszczędzić miejsce i czas, przyjęto założenie o unikalnej nazwie, zakładając, że różne nazwy odnoszą się do różnych obiektów. Na przykład przyjęto, że nazwy takie jak Pekin (poprzednia nazwa stolicy ChRL) i Pekin (obecna transliteracja dużej litery ChRL) odnosiły się do różnych obiektów.
  • Założenie o zamkniętym świecie można wdrożyć poprzez warunkowe sprawdzenie, czy próba udowodnienia celu całkowicie się nie powiodła. Później tej zdolności nadano mylącą nazwę „ negacja jako porażka ”, ponieważ o celu G można było powiedzieć: „jeśli próba osiągnięcia G zakończy się niepowodzeniem, to stwierdzaj (nie G) ”.

Geneza Prologu

Gerry Sussman , Eugene Charniak , Seymour Papert i Terry Winograd odwiedzili Uniwersytet w Edynburgu w 1971 roku, rozpowszechniając wiadomości o Micro-Planner i SHRDLU oraz podając w wątpliwość podejście do jednolitej procedury dowodowej rozdzielczości, które było ostoją logistów z Edynburga. Na Uniwersytecie w Edynburgu Bruce Anderson wdrożył podzbiór Micro-Plannera nazwany PICO-PLANNER (Anderson 1972), a Julian Davies (1973) wdrożył zasadniczo cały Planner.

Według Donalda MacKenziego Pat Hayes przypomniał sobie wpływ wizyty Paperta w Edynburgu, który według kolegi Paperta z MIT, Carla Hewitta, stał się „sercem Logiclandu sztucznej inteligencji ”. Papert wymownie wyraził swoją krytykę podejścia do rozwiązywania problemów dominującego w Edynburgu „… i co najmniej jedna osoba podniosła poprzeczkę i odeszła z powodu Paperta”. [MacKenzie 2001 s. 82.]

Powyższe wydarzenia wywołały napięcie wśród logistów w Edynburgu. Napięcia te uległy zaostrzeniu, gdy brytyjska Rada ds. Badań Naukowych zleciła Sir Jamesowi Lighthillowi napisanie raportu na temat sytuacji w zakresie badań nad sztuczną inteligencją w Wielkiej Brytanii. Powstały raport [ Lighthill 1973; McCarthy 1973] był bardzo krytyczny, chociaż pozytywnie wspominano o SHRDLU .

Pat Hayes odwiedził Stanford, gdzie dowiedział się o Plannerze. Po powrocie do Edynburga próbował wpłynąć na swojego przyjaciela Boba Kowalskiego, aby wziął pod uwagę Plannera we wspólnej pracy nad automatycznym dowodzeniem twierdzeń. „Dowodzenie twierdzeń o rozdzielczości zostało zdegradowane z gorącego tematu do reliktu błędnej przeszłości. Bob Kowalski uparcie trzymał się wiary w możliwość udowodnienia twierdzenia o rozdzielczości. Uważnie przestudiował Plannera. według Bruynooghe, Pereiry, Siekmanna i van Emdena [2004]. Kowalski [1988] stwierdza: „Pamiętam, jak próbowałem przekonać Hewitta, że ​​Planner jest podobny do rozdzielczości SL”. Jednak Planner został wynaleziony w celu proceduralnego osadzania wiedzy i stanowił odrzucenie paradygmatu jednolitej procedury dowodowej polegającej na rozdzielczości. Colmerauer i Roussel tak wspominali swoją reakcję, gdy dowiedzieli się o Plannerze:

„Podczas konwencji IJCAI we wrześniu ’71 z Jeanem Trudelem ponownie spotkaliśmy Roberta Kowalskiego i wysłuchaliśmy wykładu Terry’ego Winograda na temat przetwarzania języka naturalnego. Zaintrygowało nas to, że nie stosował on jednolitego formalizmu. To było w tym czasie że dowiedzieliśmy się o istnieniu języka programowania Carla Hewitta Planner [Hewitt, 1969] Brak sformalizowania tego języka, nasza nieznajomość Lispa, a przede wszystkim to, że byliśmy całkowicie oddani logice sprawiły, że praca ta miała niewielki wpływ na nasze późniejsze badania.” [ Colmerauer i Roussel 1996]

Jesienią 1972 roku Philippe Roussel wdrożył język o nazwie Prolog (skrót od PRO grammation en LOG ique – po francusku „programowanie w logice”). Programy Prologu mają zazwyczaj następującą postać (co jest szczególnym przypadkiem tworzenia łańcuchów wstecznych w Plannerze):

Kiedy cel Q, cel P 1 i ... i cel P n

Prolog powielił następujące aspekty Micro-Plannera:

  • Ukierunkowane na wzorce wywoływanie procedur z celów ( tj. łączenie wsteczne )
  • Indeksowana baza danych zawierająca procedury oparte na wzorcach i podstawowe wyroki.
  • Rezygnacja z paradygmatu kompletności, który charakteryzował poprzednie prace nad dowodzeniem twierdzeń i zastąpienie go proceduralnym osadzeniem paradygmatu wiedzy w języku programowania.

Prolog powielił także następujące możliwości Micro-Plannera, które były pragmatycznie przydatne dla komputerów tamtej epoki, ponieważ oszczędzały miejsce i czas:

  • Struktura kontroli wycofywania
  • Unikalna nazwa Założenie, zgodnie z którym zakłada się, że różne nazwy odnoszą się do odrębnych podmiotów, np . Pekin i Pekin są różne.
  • Reifikacja niepowodzenia. Sposób, w jaki Planner ustalił, że coś da się udowodnić, polegał na pomyślnym ustaleniu tego jako celu, a sposób, w jaki Planner ustalił, że czegoś nie da się udowodnić, polegał na ustaleniu tego jako celu i wyraźnym niepowodzeniu. Oczywiście inna możliwość jest taka, że ​​próba udowodnienia celu trwa wiecznie i nigdy nie zwraca żadnej wartości. Planner miał również (nie wyrażenie) , która powiodła się, jeśli wyrażenie się nie udało, co dało początek terminologii „ Negacja jako niepowodzenie ” w Plannerze.

Użycie założenia i negacji unikalnej nazwy jako niepowodzenia stało się bardziej wątpliwe, gdy uwaga skupiła się na systemach otwartych [Hewitt i de Jong 1983, Hewitt 1985, Hewitt i Inman 1991].

W Prologu pominięto następujące możliwości Micro-Plannera:

  • Ukierunkowane na wzorce wywoływanie planów proceduralnych na podstawie asercji ( tj . łączenie w przód )
  • Negacja logiczna, np . (nie (człowiek Sokrates)) .

Prolog nie uwzględnił negacji po części dlatego, że stwarza to problemy z implementacją. Rozważmy na przykład, czy negacja została uwzględniona w następującym programie Prologu:

nie Q.
P:- P.

Powyższy program nie byłby w stanie udowodnić, że P nie jest P , mimo że kieruje się zasadami logiki matematycznej. Jest to ilustracja faktu, że Prolog (podobnie jak Planner) ma być językiem programowania i dlatego (sam w sobie) nie dowodzi wielu logicznych konsekwencji wynikających z deklaratywnej lektury jego programów.

Praca nad Prologiem była cenna, ponieważ była znacznie prostsza niż Planner. Jednakże, gdy pojawiła się potrzeba większej siły wyrazu w języku, Prolog zaczął uwzględniać wiele możliwości Plannera, które zostały pominięte w oryginalnej wersji Prologu.

Bibliografia

  • Bruce'a Andersona. Dokumentacja dla Szkoły Sztucznej Inteligencji LIB PICO-PLANNER na Uniwersytecie w Edynburgu. 1972
  • Bruce'a Baumgarta. Alternatywny podręcznik Micro-Planner Reference Manual Stanford AI Lab Nota operacyjna nr 67, kwiecień 1972.
  • Coles, Steven (1975), „Zastosowanie sztucznej inteligencji w modelowaniu heurystycznym”, 2. konferencja komputerowa USA-Japonia .
  • Fikes, Richard (1975), Dedukcyjne mechanizmy wyszukiwania dla modeli opisu stanu , IJCAI .
  • Fitch, Frederic (1952), Logika symboliczna: wprowadzenie , Nowy Jork: Ronald Press .
  • Green, Cordell (1969), „Zastosowanie udowadniania twierdzeń do rozwiązywania problemów”, IJCAI .
  •   Hewitt, Carl (1969). „PLANER: język do udowadniania twierdzeń w robotach”. IJCAI . CiteSeerX 10.1.1.80.756 .
  • Hewitt, Carl (1971), „Proceduralne osadzanie wiedzy w planiście”, IJCAI .
  • Carla Hewitta. Magazyn Byte „Wyzwanie systemów otwartych”. Kwiecień 1985
  • Carla Hewitta i Jeffa Inmana. „DAI Betwixt and Between: od„ inteligentnych agentów ”do nauki o systemach otwartych” Transakcje IEEE dotyczące systemów, człowieka i cybernetyki. Listopad/grudzień 1991.
  • Carla Hewitta i Gul Agha. „Języki klauzuli strzeżonego rogu: czy są dedukcyjne i logiczne?” Międzynarodowa konferencja na temat systemów komputerowych piątej generacji, Ohmsha 1988. Tokio. Również w Sztucznej inteligencji na MIT , tom. 2. MIT Press 1991.
  • Hewitt, Carl (marzec 2006), Powtarzający się upadek programowania logicznego i dlaczego zostanie ono odrodzone - co poszło źle i dlaczego: lekcje z badań i zastosowań AI (PDF) , raport techniczny, AAAI Press, zarchiwizowane z oryginału (PDF) w dniu 2017-12-10 .
  • Williama Kornfelda i Carla Hewitta. Metafora społeczności naukowej MIT AI Memo 641. Styczeń 1981.
  • Billa Kornfelda i Carla Hewitta. „Metafora społeczności naukowej” Transakcje IEEE dotyczące systemów, człowieka i cybernetyki. Styczeń 1981.
  • Billa Kornfelda. „Wykorzystanie równoległości do wdrożenia wyszukiwania heurystycznego” IJCAI 1981.
  • Billa Kornfelda. „Równoległość w rozwiązywaniu problemów” Rozprawa doktorska MIT EECS. Sierpień 1981.
  • Billa Kornfelda. „Algorytmy kombinatorycznie implozyjne” CACM. 1982
  • Roberta Kowalskiego. Materiały „Ograniczenia logiki” z czternastej dorocznej konferencji ACM w 1986 r. na temat informatyki.
  • Roberta Kowalskiego. „Wczesne lata programowania logicznego” CACM, styczeń 1988.
  • Latombe, Jean-Claude (1976), „Sztuczna inteligencja w projektowaniu wspomaganym komputerowo”, Systemy CAD , Holandia Północna .
  • McCarthy, John; Abrahams, Paweł; Edwards, Daniel; Hart, Tymoteusz; Levin, Michael (1962), Podręcznik programisty Lisp 1.5 , Centrum Obliczeniowe MIT i Laboratorium Badawcze Elektroniki .
  • Robinson, John Alan (1965), „Logika zorientowana maszynowo oparta na zasadzie rozdzielczości”, Communications of the ACM , doi : 10.1145/321250.321253 .
  • Gerry’ego Sussmana i Terry’ego Winograda. Podręcznik referencyjny mikroplanisty AI Notatka nr 203, MIT Project MAC, lipiec 1970.
  • Terry'ego Winograda. Procedury jako reprezentacja danych w programie komputerowym do rozumienia języka naturalnego MIT AI TR-235. Styczeń 1971.
  • Gerry Sussman, Terry Winograd i Eugeniusz Charniak. Podręcznik referencyjny mikroplanisty (aktualizacja) AI Memo 203A, MIT AI Lab, grudzień 1971.
  • Carla Hewitta. Opis i analiza teoretyczna (przy użyciu schematu) Plannera, język do udowadniania twierdzeń i manipulowania modelami w notatce Robot AI nr 251, MIT Project MAC, kwiecień 1972.
  • Eugeniusz Charniak. W stronę modelu rozumienia historii dzieci MIT AI TR-266. Grudzień 1972.
  • Juliana Daviesa. Podręcznik obsługi Popler 1.6 Uniwersytet w Edynburgu, raport TPU nr 1, maj 1973.
  • Jeffa Rulifsona, Jana Derksena i Richarda Waldingera. „QA4, Rachunek proceduralny dla intuicyjnego rozumowania” Nota techniczna Centrum SRI AI nr 73, listopad 1973.
  • Scotta Fahlmana. „System planowania zadań związanych z budową robotów” MIT AI TR-283. Czerwiec 1973
  • Jamesa Lighthilla. „Sztuczna inteligencja: ogólne badanie Sztuczna inteligencja: sympozjum papierowe”. Brytyjska Rada ds. Badań Naukowych. 1973.
  • Johna McCarthy’ego. „Przegląd„ Sztucznej inteligencji: ogólne badanie Sztuczna inteligencja: sympozjum papierowe ”. Brytyjska Rada ds. Badań Naukowych. 1973.
  • Robert Kowalski „Logika predykatów jako język programowania” Notatka 70, Katedra Sztucznej Inteligencji, Uniwersytet w Edynburgu. 1973
  • Pata Hayesa. Obliczenia i dedukcja Matematyczne podstawy informatyki: materiały z sympozjum i szkoły letniej, Štrbské Pleso, Wysokie Tatry, Czechosłowacja, 3–8 września 1973.
  • Carla Hewitta, Petera Bishopa i Richarda Steigera. „Uniwersalny formalizm aktora modułowego dla sztucznej inteligencji” IJCAI 1973.
  • L. Thorne’a McCarty’ego. „Refleksje na temat TAXMAN: eksperyment dotyczący sztucznej inteligencji i rozumowania prawnego” Harvard Law Review. Tom. 90, nr 5, marzec 1977
  • Drew McDermotta i Gerry’ego Sussmana. Podręcznik referencyjny Connivera MIT AI Memo 259A. Styczeń 1974.
  • Earl Sacerdoti i in., „QLISP A Language for the Interactive Development of Complex Systems” AFIPS. 1976
  • Sacerdoti, Earl (1977), Struktura planów i zachowań , Elsevier North-Holland .
  • Waldingera, Ryszarda; Levitt, Karl (1974), Rozumowanie o programach Sztuczna inteligencja .

Linki zewnętrzne