อ่าน 6 นาที
ตัววางแผน (ภาษาโปรแกรม)
Planner (มักปรากฏในสิ่งพิมพ์ว่า "PLANNER" แม้ว่าจะไม่ใช่คำย่อ) เป็นภาษาโปรแกรมที่ออกแบบโดยCarl Hewittที่MITและเผยแพร่ครั้งแรกในปี 1969 ในตอนแรก มีการนำส่วนย่อยต่างๆ เช่น...
ตัววางแผน (ภาษาโปรแกรม)
| นักวางแผน | |
|---|---|
| กระบวนทัศน์ | หลายกระบวนทัศน์ : ตรรกศาสตร์ , กระบวนการ |
| ออกแบบโดย | คาร์ล ฮิววิตต์ |
| ปรากฏครั้งแรก | 1969 |
| การนำไปใช้งานหลักๆ | |
| ไมโครแพลนเนอร์, Pico-Planner, Popler, PICO-PLANNER | |
| ภาษาถิ่น | |
| QA4, Conniver, QLISP, Ether | |
| ได้รับอิทธิพล | |
| โปรล็อก , สมอลล์ทอล์ก | |
Planner (มักปรากฏในสิ่งพิมพ์ว่า "PLANNER" แม้ว่าจะไม่ใช่คำย่อ) เป็นภาษาโปรแกรมที่ออกแบบโดยCarl Hewittที่MITและเผยแพร่ครั้งแรกในปี 1969 ในตอนแรก มีการนำส่วนย่อยต่างๆ เช่น Micro-Planner และ Pico-Planner มาใช้ จากนั้นJulian Davies ที่มหาวิทยาลัย Edinburgh ได้นำภาษาทั้งหมดมาใช้ในชื่อ PoplerในภาษาโปรแกรมPOP-2 [ 1 ]อนุพันธ์ต่างๆ เช่น QA4, Conniver, QLISP และ Ether (ดูคำอุปมาของชุมชนวิทยาศาสตร์ ) เป็นเครื่องมือสำคัญใน การวิจัย ปัญญาประดิษฐ์ในช่วงทศวรรษ 1970 ซึ่งมีอิทธิพลต่อการพัฒนาเชิงพาณิชย์ เช่นKnowledge Engineering Environment (KEE) และAutomated Reasoning Tool (ART)
แนวทางเชิงกระบวนการเทียบกับแนวทางเชิงตรรกะ
รูปแบบหลักสองประการสำหรับการสร้างระบบซอฟต์แวร์เชิงความหมายคือแบบขั้นตอนและแบบตรรกะรูปแบบขั้นตอนเป็นตัวอย่างที่ชัดเจนโดย Lisp [ 2 ]ซึ่งมีขั้นตอนแบบเรียกซ้ำที่ดำเนินการกับโครงสร้างรายการ
รูปแบบตรรกะเป็นตัวอย่างโดยการค้นหาการพิสูจน์ตามขั้นตอนการพิสูจน์ที่เป็นเอกภาพ[ 3 ]ตามรูป แบบตรรกะ การรวมความรู้เชิงกระบวนการถือเป็นการ "โกง" [ 4 ]
การฝังความรู้เชิงกระบวนการ
Planner ถูกคิดค้นขึ้นเพื่อจุดประสงค์ในการฝังความรู้เชิงกระบวนการ[ 5 ]และเป็นการปฏิเสธกระบวนทัศน์ขั้นตอนการพิสูจน์ที่เป็นเอกภาพ[ 6 ]ซึ่ง
- แปลงทุกอย่างให้อยู่ในรูปประโยคย่อย การแปลงข้อมูลทั้งหมดให้อยู่ในรูปประโยคย่อยนั้นมีปัญหา เพราะมันซ่อนโครงสร้างพื้นฐานของข้อมูลไว้
- จากนั้นจึงใช้การแก้ปัญหาเพื่อพยายามพิสูจน์โดยการขัดแย้ง โดยการเพิ่มรูปแบบประโยคปฏิเสธของทฤษฎีบทที่จะพิสูจน์การใช้การแก้ปัญหาเพียงอย่างเดียวเป็นกฎการอนุมานนั้นมีปัญหา เพราะมันซ่อนโครงสร้างพื้นฐานของการพิสูจน์ นอกจากนี้ การใช้การพิสูจน์โดยการขัดแย้งยังมีปัญหา เพราะระบบสัจพจน์ของความรู้เชิงปฏิบัติทั้งหมดนั้นไม่สอดคล้องกันในทางปฏิบัติ
Planner เป็นเหมือนลูกผสมระหว่างกระบวนทัศน์เชิงกระบวนการและเชิงตรรกะ เพราะมันรวมเอาความสามารถในการเขียนโปรแกรมเข้ากับการให้เหตุผลเชิงตรรกะ Planner มีลักษณะการตีความเชิงกระบวนการของประโยคตรรกะ โดยที่การบ่งชี้ในรูปแบบ(P บ่งชี้ Q)สามารถตีความเชิงกระบวนการได้หลายวิธีโดยใช้การเรียกใช้ตามรูปแบบ:
- การเชื่อมโยงไปข้างหน้า (ก่อนหน้า):
- ถ้ายืนยัน P ก็ยืนยัน Q
- ถ้า assert not Q ก็ให้ assert not P
- การเชื่อมโยงย้อนกลับ (ดังนั้น)
- ถ้าเป้าหมาย Q เป้าหมาย P
- ถ้าเป้าหมายไม่ใช่ P เป้าหมายก็ไม่ใช่ Q
ในแง่นี้ การพัฒนาโปรแกรม Planner ได้รับอิทธิพลจากระบบตรรกะแบบนิรนัยตามธรรมชาติ (โดยเฉพาะอย่างยิ่งระบบของFrederic Fitch [1952])
การนำไมโครแพลนเนอร์มาใช้งาน
ชุดย่อยที่เรียกว่า Micro-Planner ได้รับการนำไปใช้โดยGerry Sussman , Eugene CharniakและTerry Winograd [ 7 ]และถูกนำไปใช้ในโปรแกรมการทำความเข้าใจภาษาธรรมชาติSHRDLU ของ Winograd งานการทำความเข้าใจเรื่องราวของ Eugene Charniak งานของ Thorne McCarty เกี่ยวกับการให้เหตุผลทางกฎหมาย และโครงการอื่นๆ อีกหลายโครงการ สิ่งนี้สร้างความตื่นเต้นอย่างมากในสาขา AI นอกจากนี้ยังก่อให้เกิดข้อโต้แย้งเนื่องจากเสนอทางเลือกอื่นนอกเหนือจากแนวทางตรรกะซึ่งเป็นหนึ่งในกระบวนทัศน์หลักของ AI
ที่SRI Internationalเจฟฟ์ รูลิฟสัน, แจน เดอร์คเซน และริชาร์ด วอลดิงเกอร์ได้พัฒนาQA4ซึ่งต่อยอดจากโครงสร้างใน Planner และนำกลไกบริบทมาใช้เพื่อให้เกิดความเป็นโมดูลาร์สำหรับนิพจน์ในฐานข้อมูล เอิร์ล ซาเซอร์โดติ และเรเน เรโบห์ ได้พัฒนา QLISP ซึ่งเป็นส่วนขยายของ QA4 ที่ฝังอยู่ในINTERLISPโดยให้การให้เหตุผลแบบ Planner ที่ฝังอยู่ในภาษาเชิงกระบวนการและพัฒนาขึ้นในสภาพแวดล้อมการเขียนโปรแกรมที่ครบครัน QLISP ถูกใช้โดยริชาร์ด วอลดิงเกอร์และคาร์ล เลวิตต์ สำหรับการตรวจสอบโปรแกรม โดยเอิร์ล ซาเซอร์โดติ สำหรับการวางแผนและการตรวจสอบการดำเนินการ โดยฌอง-คล็อด ลาทอมบ์สำหรับการออกแบบโดยใช้คอมพิวเตอร์ช่วย โดยนาชัม เดอร์โชวิตซ์สำหรับการสังเคราะห์โปรแกรม โดยริชาร์ด ไฟค์ส สำหรับการค้นหาแบบนิรนัย และโดยสตีเวน โคลส์ สำหรับระบบผู้เชี่ยวชาญรุ่นแรกๆ ที่แนะนำการใช้แบบจำลองทางเศรษฐศาสตร์
คอมพิวเตอร์ในสมัยนั้นมีราคาแพง มีเพียงหน่วยประมวลผลเดียวที่ทำงานช้า และหน่วยความจำก็มีขนาดเล็กมากเมื่อเทียบกับปัจจุบัน ดังนั้น Planner จึงได้นำวิธีการเพิ่มประสิทธิภาพมาใช้ ซึ่งรวมถึงสิ่งต่อไปนี้:
- การย้อนกลับ[ 8 ]ถูกนำมาใช้เพื่อประหยัดการใช้เวลาและพื้นที่จัดเก็บโดยการทำงานและจัดเก็บความเป็นไปได้เพียงครั้งละหนึ่งอย่างในการสำรวจทางเลือก
- เพื่อประหยัดพื้นที่และเวลา จึงได้นำหลักการตั้งชื่อที่ไม่ซ้ำกันมาใช้ โดยถือว่าชื่อที่แตกต่างกันหมายถึงวัตถุที่แตกต่างกัน ตัวอย่างเช่น ชื่ออย่าง Peking (ชื่อเมืองหลวงเดิมของสาธารณรัฐประชาชนจีน) และ Beijing (ชื่อเมืองหลวงปัจจุบันของสาธารณรัฐประชาชนจีน) ถือว่าหมายถึงวัตถุที่แตกต่างกัน
- สมมติฐานโลกปิดสามารถนำไปใช้ได้โดยการทดสอบแบบมีเงื่อนไขว่าความพยายามที่จะพิสูจน์เป้าหมายอย่างสมบูรณ์นั้นล้มเหลวหรือไม่ ต่อมาความสามารถนี้ได้รับชื่อที่ทำให้เข้าใจผิดว่า " การปฏิเสธในฐานะความล้มเหลว " เพราะสำหรับเป้าหมายGนั้น เป็นไปได้ที่จะกล่าวว่า "หากความพยายามที่จะบรรลุGอย่างสมบูรณ์ล้มเหลว ให้ยืนยัน(ไม่ใช่ G) "
จุดกำเนิดของ Prolog
Gerry Sussman , Eugene Charniak , Seymour PapertและTerry Winogradเยี่ยมชมมหาวิทยาลัยเอดินบะระในปี 1971 เผยแพร่ข่าวเกี่ยวกับ Micro-Planner และSHRDLUและตั้งข้อสงสัยเกี่ยวกับแนวทางการพิสูจน์แบบสม่ำเสมอของการแก้ปัญหาซึ่งเป็นหลักสำคัญของนักตรรกศาสตร์แห่งเอดินบะระ ที่มหาวิทยาลัยเอดินบะระ Bruce Anderson ได้นำส่วนย่อยของ Micro-Planner มาใช้เรียกว่า PICO-PLANNER [ 9 ]และ Julian Davies (1973) ได้นำ Planner มาใช้เกือบทั้งหมด
ตามที่ Donald MacKenzie กล่าวPat Hayesเล่าถึงผลกระทบของการมาเยือนเอดินบะระของ Papert ซึ่งกลายเป็น "ศูนย์กลางของ Logicland ของ ปัญญาประดิษฐ์ " ตามที่ Carl Hewitt เพื่อนร่วมงานของ Papert ที่ MIT กล่าว Papert ได้แสดงความคิดเห็นวิพากษ์วิจารณ์แนวทางการแก้ปัญหาที่โดดเด่นในเอดินบะระอย่างชัดเจนว่า "...และมีอย่างน้อยหนึ่งคนที่ย้ายออกไปเพราะ Papert" [ 10 ]
พัฒนาการข้างต้นก่อให้เกิดความตึงเครียดในหมู่นักตรรกศาสตร์ที่เอดินบะระ ความตึงเครียดนี้ทวีความรุนแรงขึ้นเมื่อสภาวิจัยวิทยาศาสตร์แห่งสหราชอาณาจักรมอบหมายให้เซอร์เจมส์ ไลท์ฮิลล์เขียนรายงานเกี่ยวกับสถานการณ์การวิจัยปัญญาประดิษฐ์ในสหราชอาณาจักรรายงานที่ออกมา [ Lighthill 1973; McCarthy 1973] มีเนื้อหาที่วิพากษ์วิจารณ์อย่างมาก แม้ว่าSHRDLUจะได้รับการกล่าวถึงในแง่ดีก็ตาม
แพท เฮย์สไปเยี่ยมสแตนฟอร์ดและได้เรียนรู้เกี่ยวกับ Planner เมื่อเขากลับมาที่เอดินบะระ เขาพยายามโน้มน้าวให้เพื่อนของเขา บ็อบ โควาลสกี พิจารณา Planner ในงานร่วมกันของพวกเขาเกี่ยวกับการพิสูจน์ทฤษฎีบทอัตโนมัติ “การพิสูจน์ทฤษฎีบทแบบ Resolution ถูกลดระดับจากหัวข้อที่ได้รับความนิยมไปเป็นสิ่งตกค้างจากอดีตที่ผิดพลาด บ็อบ โควาลสกียึดมั่นในศรัทธาของเขาในศักยภาพของการพิสูจน์ทฤษฎีบทแบบ Resolution อย่างแน่วแน่ เขาศึกษา Planner อย่างละเอียด” [ 11 ]โควาลสกี [1988] กล่าวว่า “ผมจำได้ว่าพยายามโน้มน้าวให้ฮิววิตต์เชื่อว่า Planner คล้ายกับSL-resolution ” แต่ Planner ถูกคิดค้นขึ้นเพื่อวัตถุประสงค์ของการฝังความรู้เชิงกระบวนการและเป็นการปฏิเสธกระบวนทัศน์ขั้นตอนการพิสูจน์แบบ Resolution ที่เป็นเอกภาพ คอลเมอราเออร์และรูสเซลเล่าถึงปฏิกิริยาของพวกเขาเมื่อได้เรียนรู้เกี่ยวกับ Planner ในลักษณะต่อไปนี้:
“ในระหว่างการเข้าร่วมการประชุม IJCAI ในเดือนกันยายน ค.ศ. 1971 กับ Jean Trudel เราได้พบกับRobert Kowalskiอีกครั้งและได้ฟังการบรรยายของ Terry Winograd เกี่ยวกับการประมวลผลภาษาธรรมชาติ ข้อเท็จจริงที่ว่าเขาไม่ได้ใช้รูปแบบที่เป็นเอกภาพทำให้เรางุนงง ในช่วงเวลานี้เองที่เราได้เรียนรู้เกี่ยวกับการมีอยู่ของภาษาโปรแกรม Planner ของ Carl Hewitt การขาดการกำหนดรูปแบบของภาษานี้ ความไม่รู้ของเราเกี่ยวกับ Lisp และเหนือสิ่งอื่นใด ข้อเท็จจริงที่ว่าเราทุ่มเทให้กับตรรกะอย่างเต็มที่ หมายความว่างานนี้มีอิทธิพลต่อการวิจัยในภายหลังของเราน้อยมาก” [ 12 ]
ในฤดูใบไม้ร่วงปี 1972 ฟิลิปป์ รูสเซลได้พัฒนาภาษาโปรแกรมที่เรียกว่าProlog (ซึ่งเป็นคำย่อของPROgrammation en LOGique – ภาษาฝรั่งเศส แปลว่า "การเขียนโปรแกรมด้วยตรรกะ") โดยทั่วไปแล้วโปรแกรม Prolog จะมีรูปแบบดังต่อไปนี้ (ซึ่งเป็นกรณีพิเศษของการเชื่อมโยงย้อนกลับใน Planner):
- เมื่อเป้าหมาย Q เป้าหมาย P 1 และ ... และเป้าหมาย P n
Prolog จำลองคุณสมบัติต่อไปนี้ของ Micro-Planner:
- การเรียกใช้ขั้นตอนตามรูปแบบที่กำหนดจากเป้าหมาย ( เช่นการเชื่อมโยงย้อนกลับ )
- ฐานข้อมูลดัชนีของขั้นตอนการทำงานที่กำหนดโดยรูปแบบและประโยคพื้นฐาน
- ละทิ้งแนวคิดเรื่องความสมบูรณ์แบบที่เคยเป็นลักษณะเด่นของงานวิจัยก่อนหน้านี้เกี่ยวกับการพิสูจน์ทฤษฎีบท และแทนที่ด้วยแนวคิดเรื่องการฝังความรู้เชิงกระบวนการในภาษาโปรแกรม
นอกจากนี้ Prolog ยังจำลองความสามารถต่อไปนี้ของ Micro-Planner ซึ่งมีประโยชน์ในทางปฏิบัติสำหรับคอมพิวเตอร์ในยุคนั้น เนื่องจากช่วยประหยัดพื้นที่และเวลา:
- โครงสร้างควบคุมการย้อนกลับ
- สมมติฐานชื่อเฉพาะที่ถือว่ามีความหมายเหมือนกัน คือ สมมติฐานที่ว่าชื่อที่แตกต่างกันนั้นหมายถึงสิ่งที่ไม่เหมือนกันเช่นปักกิ่งและเป่ยจิงถือว่าแตกต่างกัน
- การทำให้ความล้มเหลวเป็นรูปธรรม วิธีที่ Planner ใช้ในการพิสูจน์ว่าบางสิ่งสามารถพิสูจน์ได้คือการพยายามทำสิ่งนั้นให้สำเร็จเป็นเป้าหมาย และวิธีที่ Planner ใช้ในการพิสูจน์ว่าบางสิ่งไม่สามารถพิสูจน์ได้คือการพยายามทำสิ่งนั้นเป็นเป้าหมายและล้มเหลวอย่างชัดเจน แน่นอนว่าอีกความเป็นไปได้หนึ่งคือ การพยายามพิสูจน์เป้าหมายนั้นดำเนินไปอย่างไม่มีที่สิ้นสุดและไม่ให้ผลลัพธ์ใดๆ Planner ยังมี โครงสร้าง (ไม่ใช่การแสดงออก) ที่จะสำเร็จหากการแสดงออกนั้นล้มเหลว ซึ่งเป็นที่มาของคำว่า “ การปฏิเสธในฐานะความล้มเหลว ” ใน Planner
การใช้สมมติฐานชื่อเฉพาะและการปฏิเสธเป็นความล้มเหลวกลายเป็นเรื่องที่น่าสงสัยมากขึ้นเมื่อความสนใจหันไปที่ระบบเปิด[ 13 ]
ฟังก์ชันการทำงานต่อไปนี้ของ Micro-Planner ถูกตัดออกไปจาก Prolog:
- การเรียกใช้แผนขั้นตอนการทำงานโดยใช้รูปแบบที่กำหนดจากข้อความยืนยัน ( เช่นการเชื่อมโยงไปข้างหน้า )
- การปฏิเสธเชิงตรรกะเช่น ( ไม่ใช่ (โสกราตีส ที่เป็นมนุษย์))
ภาษา Prolog ไม่ได้รวมการปฏิเสธไว้ด้วยส่วนหนึ่งเป็นเพราะมันก่อให้เกิดปัญหาในการใช้งาน ลองพิจารณาตัวอย่างเช่น หากโปรแกรม Prolog ต่อไปนี้มีการปฏิเสธ:
- ไม่ใช่ Q.
- ถาม :- ป.
โปรแกรมข้างต้นไม่สามารถพิสูจน์ได้ว่าไม่ใช่ Pแม้ว่าจะเป็นไปตามกฎของตรรกะทางคณิตศาสตร์ก็ตาม นี่เป็นตัวอย่างที่แสดงให้เห็นว่า Prolog (เช่นเดียวกับ Planner) มีจุดประสงค์เพื่อเป็นภาษาโปรแกรม ดังนั้นจึงไม่สามารถพิสูจน์ผลลัพธ์เชิงตรรกะ หลายอย่าง ที่ได้จากการอ่านโปรแกรมแบบประกาศได้ ด้วยตัวเอง
การพัฒนา Prolog มีคุณค่าตรงที่มันเรียบง่ายกว่า Planner มาก อย่างไรก็ตาม เมื่อความต้องการพลังในการแสดงออกที่มากขึ้นในภาษาเกิดขึ้น Prolog จึงเริ่มรวมเอาความสามารถหลายอย่างของ Planner ที่ถูกตัดออกไปในเวอร์ชันดั้งเดิมของ Prolog
ลิงก์ภายนอก
- บทความของ Alain Colmerauer และ Philippe Roussel เกี่ยวกับการกำเนิดของ Prolog ในปี 1992ที่Wayback Machine (เก็บถาวรเมื่อวันที่ 27 กรกฎาคม 2003)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ตัววางแผน (ภาษาโปรแกรม)
Planner (มักปรากฏในสิ่งพิมพ์ว่า "PLANNER" แม้ว่าจะไม่ใช่คำย่อ) เป็นภาษาโปรแกรมที่ออกแบบโดยCarl Hewittที่MITและเผยแพร่ครั้งแรกในปี 1969 ในตอนแรก มีการนำส่วนย่อยต่างๆ เช่น...
แนวทางเชิงกระบวนการเทียบกับแนวทางเชิงตรรกะ
รูปแบบหลักสองประการสำหรับการสร้างระบบซอฟต์แวร์เชิงความหมายคือ แบบขั้นตอน และ แบบตรรกะ รูปแบบขั้นตอนเป็นตัวอย่างที่ชัดเจนโดย Lisp [ 2 ] ซึ่งมีขั้นตอนแบบเรียกซ้ำที่ดำเนินการกับโครงสร้างรายการ
การฝังความรู้เชิงกระบวนการ
Planner ถูกคิดค้นขึ้นเพื่อจุดประสงค์ในการฝังความรู้เชิงกระบวนการ [ 5 ] และเป็นการปฏิเสธกระบวนทัศน์ขั้นตอนการพิสูจน์ที่เป็น เอกภาพ [ 6 ] ซึ่ง
การนำไมโครแพลนเนอร์มาใช้งาน
ชุดย่อยที่เรียกว่า Micro-Planner ได้รับการนำไปใช้โดย Gerry Sussman , Eugene Charniak และ Terry Winograd [ 7 ] และถูกนำไปใช้ในโปรแกรมการทำความเข้าใจภาษาธรรมชาติ SHRDLU ของ Winograd งานการทำความเข้าใจเรื่องราวของ Eugene Charniak งานของ Thorne McCarty...