เครื่องมือการวางแผน ASP สำหรับ PDDL
plasp คือชุดเครื่องมือสำหรับการวางแผนในการ เขียนโปรแกรมชุดคำตอบ plasp 3 รองรับภาษาอินพุต PDDL 3.1 (ยกเว้นคุณสมบัติขั้นสูง เช่น การดำเนินการระยะยาว ความคล่องแคล่วด้านตัวเลข และการตั้งค่า) และ SAS (รองรับ SAS 3 เต็มรูปแบบ) ซึ่งใช้โดย Fast Downward
เครื่องมือที่โดดเด่นที่สุดที่ plasp มอบให้คือ plasp translate ซึ่งแปลคำอธิบาย PDDL ไปเป็นข้อเท็จจริง ASP
อินสแตนซ์ PDDL ได้รับการแปลเป็นข้อเท็จจริงของ ASP ดังนี้:
plasp แปล domain.pddl problems.pddl
หรืออีกทางหนึ่ง อินสแตนซ์ PDDL อาจถูกแปลเป็น SAS ก่อน ซึ่งเป็นรูปแบบเอาต์พุตแบบ Fast Downward
./fast-downward.py --translate --build=release64 domain.pddl problems.pddl
สิ่งนี้จะสร้างไฟล์ชื่อ output.sas ซึ่งสามารถแปลโดย plasp ได้เช่นกัน
pspp แปล output.sas
ในที่สุดอินสแตนซ์ที่แปลสามารถแก้ไขได้ด้วย clingo และการเข้ารหัสเมตาเช่น sequential-horizon.lp :
plasp แปล domain.pddl problems.pddl > instance.lp การเข้ารหัส clingo/sequential-horizon.lp -c Horizon=10 instance.lp
plasp translate ให้รูปแบบเอาต์พุตที่สม่ำเสมอสำหรับปัญหาอินพุต SAS และ PDDL ดูรูปแบบผลลัพธ์สำหรับรายละเอียดเพิ่มเติม
หากคุณต้องการเขียนการเข้ารหัสเมตาของคุณเองสำหรับเอาต์พุตของ plasp translate การเข้ารหัสตัวอย่างง่ายๆ นี้จะช่วยให้คุณเริ่มต้นได้
plasp <คำสั่ง> [<ตัวเลือก>...] [<ไฟล์อินพุต>...]
นอกเหนือจากการแปล PDDL เป็นข้อเท็จจริง ASP แล้ว plasp ยังมีคำสั่งต่อไปนี้:
| สั่งการ | คำอธิบาย |
|---|---|
translate | แปลข้อเท็จจริง PDDL และ SAS เป็น ASP |
normalize | ทำให้ PDDL เป็นมาตรฐานเป็นรูปแบบ PDDL ที่กำหนดเองของ plasp |
check-syntax | ตรวจสอบไวยากรณ์ของข้อกำหนด PDDL |
beautify | จัดรูปแบบข้อกำหนด PDDL อย่างหมดจด |
help | แสดงข้อความช่วยเหลือ |
version | แสดงข้อมูลเวอร์ชัน |
plasp help แสดงรายการคำสั่งทั้งหมดที่ได้รับจาก plasp หากต้องการแสดงรายการตัวเลือกที่มีอยู่ทั้งหมดของคำสั่ง ให้เรียก plasp <command> --help หรือ plasp help <command>
plasp จะตรวจจับภาษา (PDDL หรือ SAS) ของคำอธิบายอินพุตโดยอัตโนมัติ
plasp สร้างด้วย CMake และคอมไพเลอร์ C++ ดูอาคารสำหรับรายละเอียดเพิ่มเติม
plasp รองรับชุดย่อยของ PDDL 3.1 ดูการรองรับคุณสมบัติ PDDL สำหรับรายการคุณสมบัติ PDDL 3.1 ที่รองรับและไม่รองรับ
แพทริค ลือเนอ
Martin Gebser (เข้ารหัส)
Torsten Schaub (เข้ารหัส)
เรเน่ แนเบล
มูรัต คเนชท์