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

อ่าน 8 นาที

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล ( DDP ) เป็น อัลกอริทึม ควบคุมที่เหมาะสมที่สุดใน กลุ่ม การเพิ่มประสิทธิภาพวิถีการเคลื่อนที่ อัลกอริทึมนี้ได้รับการแนะนำในปี 1966 โดยMayne

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล ( DDP ) เป็น อัลกอริทึม ควบคุมที่เหมาะสมที่สุดใน กลุ่ม การเพิ่มประสิทธิภาพวิถีการเคลื่อนที่ อัลกอริทึมนี้ได้รับการแนะนำในปี 1966 โดยMayne [ 1 ]และได้รับการวิเคราะห์เพิ่มเติมในหนังสือชื่อเดียวกันของ Jacobson และ Mayne [ 2 ]อัลกอริทึมนี้ใช้แบบจำลองกำลังสองเฉพาะที่ของพลวัตและฟังก์ชันต้นทุน และแสดงการลู่เข้าแบบกำลังสองมีความเกี่ยวข้องอย่างใกล้ชิดกับวิธีการของนิวตันแบบทีละขั้นตอนของ Pantoja [ 3 ] [ 4 ]

ปัญหาเวลาไม่ต่อเนื่องขอบเขตจำกัด

พลวัต

อธิบายวิวัฒนาการของสถานะโดยพิจารณาจากการควบคุมในแต่ละช่วงเวลาต้นทุนรวมคือผลรวมของต้นทุนการดำเนินงานและต้นทุนสุดท้ายที่เกิดขึ้นเมื่อเริ่มต้นจากสถานะหนึ่งและใช้ลำดับการควบคุมจนกว่าจะถึงช่วงเวลาเป้าหมาย:

โดยที่และสำหรับกำหนดโดยสมการที่ 1คำตอบของปัญหาการควบคุมที่เหมาะสมที่สุดคือการลดลำดับการควบคุมให้เหลือน้อยที่สุด การเพิ่มประสิทธิภาพวิถีหมายถึงการค้นหาสำหรับค่า ที่เฉพาะเจาะจงแทนที่จะเป็น สำหรับสถานะเริ่มต้นที่เป็นไปได้ทั้งหมด

การเขียนโปรแกรมแบบไดนามิก

ให้เป็นลำดับควบคุมบางส่วนและกำหนดต้นทุนที่รอการดำเนินการ (cost-to-go)เป็นผลรวมบางส่วนของต้นทุนจากถึง:

ฟังก์ชัน ต้นทุนต่อการดำเนินการหรือฟังก์ชันมูลค่า ที่เหมาะสมที่สุด ณ เวลา t คือต้นทุนต่อการดำเนินการที่กำหนดโดยลำดับการควบคุมที่ทำให้ต้นทุนลดลงต่ำสุด:

ตามหลักการเขียนโปรแกรมเชิงพลวัต การหาค่าต่ำสุดของลำดับการควบคุมทั้งหมดจะถูกลดทอนให้เหลือเพียงลำดับการหาค่าต่ำสุดของการควบคุมเพียงตัวเดียว โดยดำเนินการย้อนกลับไปตามเวลา:

นี่คือสมการของเบลล์แมน

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล

DDP ดำเนินการโดยการทำการส่งผ่านย้อนกลับซ้ำๆ บนวิถีการเคลื่อนที่ที่กำหนดไว้เพื่อสร้างลำดับการควบคุมใหม่ จากนั้นจึงทำการส่งผ่านไปข้างหน้าเพื่อคำนวณและประเมินวิถีการเคลื่อนที่ที่กำหนดไว้ใหม่ เราเริ่มต้นด้วยการส่งผ่านย้อนกลับ หาก

คืออาร์กิวเมนต์ของตัวดำเนินการในสมการที่ 2ให้เป็นการเปลี่ยนแปลงของปริมาณนี้รอบคู่ที่-th :

และขยายไปสู่ลำดับที่สอง

สัญกรณ์ที่ใช้ในที่นี้เป็นรูปแบบหนึ่งของสัญกรณ์ของโมริโมโตะ โดยที่ตัวห้อยแสดงถึงความแตกต่างในโครงสร้างตัวส่วน[ 5 ] การตัดดัชนีออกเพื่อให้อ่านง่ายขึ้น ไพรม์ที่แสดงถึงขั้นตอนเวลาถัดไป สัมประสิทธิ์การขยายคือ

พจน์สุดท้ายในสมการสามสมการสุดท้ายแสดงถึงการหดตัวของเวกเตอร์กับเทนเซอร์ การลดค่าประมาณกำลังสอง(3) ให้เหลือน้อยที่สุด เมื่อเทียบกับเราจะได้

โดยให้เทอมแบบวงเปิดและเทอมเกนป้อนกลับ เมื่อนำผลลัพธ์กลับไปใส่ใน(3)เราจะได้แบบจำลองกำลังสองของค่า ณ เวลา:

การคำนวณแบบเรียกซ้ำของแบบจำลองกำลังสองเฉพาะที่และการปรับเปลี่ยนการควบคุมตั้งแต่ลงไปถึงถือเป็นการส่งผ่านย้อนกลับ ดังที่กล่าวมาข้างต้น ค่าจะถูกเริ่มต้นด้วยเมื่อการส่งผ่านย้อนกลับเสร็จสมบูรณ์ การส่งผ่านไปข้างหน้าจะคำนวณวิถีใหม่:

การส่งผ่านย้อนกลับและการส่งผ่านไปข้างหน้าจะถูกทำซ้ำจนกว่าจะบรรจบกัน หากแทนที่เมทริกซ์เฮสเซียนด้วยการประมาณค่าเกาส์-นิวตัน วิธีการนี้จะลดลงเหลือตัวควบคุมเชิงเส้นกำลังสองแบบวนซ้ำ (iLQR) [ 6 ]

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียลเป็นอัลกอริธึมลำดับที่สองเช่นเดียวกับวิธีของนิวตันดังนั้นจึงใช้ขั้นตอนขนาดใหญ่ในการหาค่าต่ำสุดและมักต้องใช้การปรับค่าและ/หรือการค้นหาเส้นตรงเพื่อให้เกิดการบรรจบกัน[ 7 ] [ 8 ]การปรับค่าในบริบทของ DDP หมายถึงการทำให้แน่ใจว่าเมทริกซ์ในสมการที่ 4เป็นเมทริกซ์บวกแน่นอนการค้นหาเส้นตรงใน DDP เทียบเท่ากับการปรับขนาดการปรับเปลี่ยนการควบคุมแบบวงเปิดด้วยค่าบางค่า

เวอร์ชั่นมอนเตคาร์โล

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียลแบบสุ่มตัวอย่าง (SaDDP) เป็นรูปแบบมอนเตคาร์โลของการเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล[ 9 ] [ 10 ] [ 11 ]โดยอาศัยการพิจารณาต้นทุนกำลังสองของการเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียลเป็นพลังงานของการแจกแจงแบบโบลต์ซมันน์ด้วยวิธีนี้ ปริมาณของ DDP สามารถจับคู่กับสถิติของการแจกแจงปกติแบบหลายมิติได้สถิติเหล่านี้สามารถคำนวณใหม่ได้จากวิถีที่สุ่มตัวอย่างโดยไม่ต้องทำการหาอนุพันธ์

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียลที่สุ่มตัวอย่างได้รับการขยายไปสู่การปรับปรุงนโยบายอินทิกรัลเส้นทางด้วยการเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล[ 12 ]ซึ่งสร้างการเชื่อมโยงระหว่างการเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียลและการควบคุมอินทิกรัลเส้นทาง[ 13 ]ซึ่งเป็นกรอบการทำงานของการควบคุมที่เหมาะสมแบบสุ่ม

ปัญหาที่ถูกจำกัด

การเขียนโปรแกรมเชิงพลวัตแบบจุดภายใน (IPDDP) เป็นวิธีการจุดภายในที่เป็นแบบทั่วไปของ DDP ซึ่งสามารถแก้ไขปัญหาการควบคุมที่เหมาะสมที่สุดด้วยสถานะที่ไม่เป็นเชิงเส้นและข้อจำกัดของอินพุต[ 14 ]

ดูเพิ่มเติม

  • การใช้งาน DDP ในภาษา Python
  • การนำ DDP มาใช้ใน MATLAB
  • เฟรมเวิร์กซอฟต์แวร์โอเพนซอร์สacadosนำเสนอการใช้งาน DDP ที่มีประสิทธิภาพและสามารถฝังตัวได้
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Differential_dynamic_programming&oldid=1307759774 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล ( DDP ) เป็น อัลกอริทึม ควบคุมที่เหมาะสมที่สุดใน กลุ่ม การเพิ่มประสิทธิภาพวิถีการเคลื่อนที่ อัลกอริทึมนี้ได้รับการแนะนำในปี 1966 โดยMayne

การเขียนโปรแกรมแบบไดนามิก

ให้เป็นลำดับควบคุมบางส่วนและกำหนด ต้นทุนที่รอการดำเนินการ (cost-to-go) เป็นผลรวมบางส่วนของต้นทุนจากถึง: U i {\displaystyle \mathbf {U} _{i}} U i ≡ { u i , u i + 1 … , u N − 1 } {\displaystyle \mathbf {U} _{i}\equiv \{\mathbf {u} _{i},\mathbf {u} _{i+1}\dots...

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียล

DDP ดำเนินการโดยการทำการส่งผ่านย้อนกลับซ้ำๆ บนวิถีการเคลื่อนที่ที่กำหนดไว้เพื่อสร้างลำดับการควบคุมใหม่ จากนั้นจึงทำการส่งผ่านไปข้างหน้าเพื่อคำนวณและประเมินวิถีการเคลื่อนที่ที่กำหนดไว้ใหม่ เราเริ่มต้นด้วยการส่งผ่านย้อนกลับ หาก

การปรับให้เป็นมาตรฐานและการค้นหาเส้น

การเขียนโปรแกรมเชิงพลวัตแบบดิฟเฟอเรนเชียลเป็นอัลกอริธึมลำดับที่สองเช่นเดียวกับ วิธีของนิวตัน ดังนั้นจึงใช้ขั้นตอนขนาดใหญ่ในการหาค่าต่ำสุดและมักต้องใช้ การปรับค่า และ/หรือ การค้นหาเส้นตรง เพื่อให้เกิดการบรรจบกัน [ 7 ] [ 8 ] การปรับค่าในบริบทของ DDP...