กลับไปหน้าบทความ

อ่าน 6 นาที

ตัววางแผน (ภาษาโปรแกรม)

Planner (มักปรากฏในสิ่งพิมพ์ว่า "PLANNER" แม้ว่าจะไม่ใช่คำย่อ) เป็นภาษาโปรแกรมที่ออกแบบโดยCarl Hewittที่MITและเผยแพร่ครั้งแรกในปี 1969 ในตอนแรก มีการนำส่วนย่อยต่างๆ เช่น...

ตัววางแผน (ภาษาโปรแกรม)

นักวางแผน
กระบวนทัศน์หลายกระบวนทัศน์ : ตรรกศาสตร์ , กระบวนการ
ออกแบบโดยคาร์ล ฮิววิตต์
ปรากฏครั้งแรก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 ]ซึ่ง

  1. แปลงทุกอย่างให้อยู่ในรูปประโยคย่อย การแปลงข้อมูลทั้งหมดให้อยู่ในรูปประโยคย่อยนั้นมีปัญหา เพราะมันซ่อนโครงสร้างพื้นฐานของข้อมูลไว้
  2. จากนั้นจึงใช้การแก้ปัญหาเพื่อพยายามพิสูจน์โดยการขัดแย้ง โดยการเพิ่มรูปแบบประโยคปฏิเสธของทฤษฎีบทที่จะพิสูจน์การใช้การแก้ปัญหาเพียงอย่างเดียวเป็นกฎการอนุมานนั้นมีปัญหา เพราะมันซ่อนโครงสร้างพื้นฐานของการพิสูจน์ นอกจากนี้ การใช้การพิสูจน์โดยการขัดแย้งยังมีปัญหา เพราะระบบสัจพจน์ของความรู้เชิงปฏิบัติทั้งหมดนั้นไม่สอดคล้องกันในทางปฏิบัติ

Planner เป็นเหมือนลูกผสมระหว่างกระบวนทัศน์เชิงกระบวนการและเชิงตรรกะ เพราะมันรวมเอาความสามารถในการเขียนโปรแกรมเข้ากับการให้เหตุผลเชิงตรรกะ Planner มีลักษณะการตีความเชิงกระบวนการของประโยคตรรกะ โดยที่การบ่งชี้ในรูปแบบ(P บ่งชี้ Q)สามารถตีความเชิงกระบวนการได้หลายวิธีโดยใช้การเรียกใช้ตามรูปแบบ:

  1. การเชื่อมโยงไปข้างหน้า (ก่อนหน้า):
    ถ้ายืนยัน P ก็ยืนยัน Q
    ถ้า assert not Q ก็ให้ assert not P
  2. การเชื่อมโยงย้อนกลับ (ดังนั้น)
    ถ้าเป้าหมาย 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)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Planner_(programming_language)&oldid=1219991808 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ตัววางแผน (ภาษาโปรแกรม)

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...