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

อ่าน 11 นาที

การเร่งความเร็วของแอนเดอร์สัน

ในทางคณิตศาสตร์ การเร่งความเร็วของแอนเดอร์สัน หรือที่เรียกว่า การผสมของแอนเดอร์สัน เป็นวิธีการเร่งอัตราการบรรจบกันของ การวนซ้ำจุดคงที่ โดนัลด์ จี.

การเร่งความเร็วของแอนเดอร์สัน

ในทางคณิตศาสตร์การเร่งความเร็วของแอนเดอร์สันหรือที่เรียกว่าการผสมของแอนเดอร์สันเป็นวิธีการเร่งอัตราการบรรจบกันของการวนซ้ำจุดคงที่ โดนัลด์ จี. แอนเดอร์สัน [ 1 ]ได้แนะนำเทคนิคนี้ ซึ่งสามารถใช้เพื่อหาคำตอบของสมการจุดคงที่ที่มักเกิดขึ้นในสาขาวิทยาศาสตร์การคำนวณ

คำนิยาม

เมื่อกำหนดฟังก์ชันให้พิจารณาปัญหาการหาจุดคงที่ของซึ่งเป็นคำตอบของสมการแนวทางคลาสสิกในการแก้ปัญหานี้คือการใช้แผนการวนซ้ำจุดคง ที่ [ 2 ]กล่าวคือ เมื่อกำหนดค่าเริ่มต้นสำหรับการคาดเดาคำตอบแล้ว ให้คำนวณลำดับจนกว่าจะตรงตามเกณฑ์การลู่เข้าบางอย่าง อย่างไรก็ตาม การลู่เข้าของแผนการดังกล่าวไม่ได้รับการรับประกันโดยทั่วไป ยิ่งไปกว่านั้นอัตราการลู่เข้ามักจะเป็นเชิงเส้น ซึ่งอาจช้าเกินไปหากการประเมินฟังก์ชันมีค่าใช้จ่ายในการคำนวณสูง[ 2 ]การเร่งความเร็วของ Anderson เป็นวิธีการเร่งความเร็วการลู่เข้าของลำดับจุดคงที่[ 2 ]

กำหนดส่วนที่เหลือและกำหนดและ(โดยที่สอดคล้องกับลำดับของการวนซ้ำจากย่อหน้าก่อนหน้า) เมื่อกำหนดค่าเดาเริ่มต้นและพารามิเตอร์จำนวนเต็มวิธีการนี้สามารถกำหนดได้ดังนี้: [ 3 ] [หมายเหตุ 1 ]

โดยที่การคูณเมทริกซ์-เวกเตอร์และเป็นองค์ประกอบที่ th ของเกณฑ์การหยุดตามปกติสามารถใช้เพื่อยุติการวนซ้ำของวิธีการได้ ตัวอย่างเช่น การวนซ้ำสามารถหยุดได้เมื่อตกอยู่ภายใต้ค่าความคลาดเคลื่อนที่กำหนด หรือเมื่อค่าตกค้างตกอยู่ภายใต้ค่าความคลาดเคลื่อนที่กำหนด[ 2 ]

เมื่อเปรียบเทียบกับการวนซ้ำจุดคงที่มาตรฐาน พบว่าวิธีนี้สามารถลู่เข้าได้เร็วกว่าและมีความแข็งแกร่งกว่า และในบางกรณีสามารถหลีกเลี่ยงการล divergence ของลำดับจุดคงที่ได้[ 3 ] [ 4 ]

อนุพันธ์

สำหรับคำตอบนั้นเรารู้ว่าซึ่งเทียบเท่ากับการกล่าวว่าดังนั้นเราจึงสามารถกำหนดปัญหาใหม่ให้เป็นปัญหาการหาค่าเหมาะสมที่สุด โดยที่เราต้องการลดค่า ให้เหลือน้อยที่สุด

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

และปัญหาของเราก็คือการหาค่าที่ทำให้ค่า น้อยที่สุดหลังจากที่เราหาค่า ได้แล้วในทางทฤษฎีเราก็สามารถคำนวณค่าได้

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

ดังนั้นเราจึงเลือก

.

วิธีแก้ปัญหาการหาค่าต่ำสุด

ในแต่ละรอบของอัลกอริธึมปัญหาการเพิ่มประสิทธิภาพ แบบมีข้อจำกัด ภายใต้เงื่อนไขจะต้องได้รับการแก้ไข ปัญหาสามารถแปลงเป็นสูตรที่เทียบเท่ากันได้หลายแบบ[ 3 ]ซึ่งให้วิธีการแก้ปัญหาที่แตกต่างกันซึ่งอาจส่งผลให้การใช้งานสะดวกยิ่งขึ้น

  • กำหนดเมทริกซ์และแก้และตั้งค่า; [ 3 ] [ 4 ]
  • แก้แล้วตั้งค่า[ 1 ]

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

ความหยุดนิ่งในวิธีการ (เช่น การวนซ้ำครั้งถัดไปที่มีค่าเดียวกัน) ทำให้วิธีการล้มเหลวเนื่องจากความไม่ต่อเนื่องของปัญหากำลังสองน้อยที่สุด ในทำนองเดียวกัน ความใกล้หยุดนิ่ง ( ) ส่งผลให้สภาพของปัญหากำลังสองน้อยที่สุดไม่ดี ยิ่งไปกว่านั้น การเลือกพารามิเตอร์อาจมีความเกี่ยวข้องในการกำหนดสภาพของปัญหากำลังสองน้อยที่สุด ดังที่กล่าวไว้ด้านล่าง[ 3 ]

การผ่อนคลาย

อัลกอริทึมสามารถปรับเปลี่ยนได้โดยการแนะนำพารามิเตอร์การผ่อนคลายตัวแปร (หรือพารามิเตอร์การผสม) [ 1 ] [ 3 ] [ 4 ] ในแต่ละขั้นตอน ให้คำนวณค่าวนซ้ำใหม่เป็นการเลือกค่ามีความสำคัญต่อคุณสมบัติการลู่เข้าของวิธีการ โดยหลักการแล้วอาจแตกต่างกันไปในแต่ละรอบการวนซ้ำ แม้ว่ามักจะเลือกให้เป็นค่าคงที่ก็ตาม[ 4 ]

ทางเลือกของm

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

การเลือกm k

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

ความสัมพันธ์กับวิธีการประเภทอื่นๆ

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

นักวิจัยหลายท่านได้ชี้ให้เห็นถึงความคล้ายคลึงกันระหว่างวิธีการเร่งความเร็วของแอนเดอร์สันกับวิธีการอื่นๆ ในการแก้สมการไม่เชิงเส้น โดยเฉพาะอย่างยิ่ง:

  • Eyert [ 6 ]และ Fang และ Saad [ 4 ]ตีความอัลกอริทึมภายในคลาสของ วิธีการ กึ่งนิวตันและวิธีการหลายเซแคนต์ ซึ่งเป็นการขยายวิธีการเซแคนต์ ที่รู้จักกันดี สำหรับการแก้สมการไม่เชิงเส้นพวกเขายังแสดงให้เห็นว่าสามารถมองแผนการนี้เป็นวิธีการในคลาส Broyden ได้ อย่างไร [ 7 ]
  • Walker และ Ni [ 3 ] [ 8 ]แสดงให้เห็นว่าแผนการเร่งความเร็วของ Anderson เทียบเท่ากับ วิธีการ GMRESในกรณีของปัญหาเชิงเส้น (เช่น ปัญหาของการหาคำตอบสำหรับเมทริกซ์จัตุรัสบางตัว) และจึงสามารถมองได้ว่าเป็นการขยาย GMRES ไปสู่กรณีที่ไม่เป็นเชิงเส้น ผลลัพธ์ที่คล้ายกันนี้พบโดย Washio และ Oosterlee [ 9 ]

นอกจากนี้ ผู้เขียนคนอื่นๆ ได้พัฒนาวิธีการที่เทียบเท่าหรือเกือบเทียบเท่ากันหลายวิธีโดยอิสระ[ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ]แม้ว่าส่วนใหญ่จะอยู่ในบริบทของการประยุกต์ใช้งานเฉพาะที่น่าสนใจมากกว่าที่จะเป็นวิธีการทั่วไปสำหรับสมการจุดคงที่

ตัวอย่างการใช้งาน MATLAB

ต่อไปนี้เป็นตัวอย่างการใช้งานใน ภาษา MATLABของวิธีการเร่งความเร็วแบบแอนเดอร์สัน (Anderson acceleration scheme) สำหรับการค้นหาจุดตรึง (fixed-point) ของฟังก์ชันโปรดสังเกตว่า:

  • ปัญหาการหาค่าเหมาะสมที่สุดได้รับการแก้ไขในรูปแบบโดยใช้การแยกส่วน QR
  • การคำนวณการแยกส่วน QR นั้นไม่เหมาะสม: จริงๆ แล้วในแต่ละรอบ จะมีการเพิ่มคอลัมน์เดียวลงในเมทริกซ์และอาจมีการลบคอลัมน์เดียวออกไป ข้อเท็จจริงนี้สามารถนำมาใช้เพื่ออัปเดตการแยกส่วน QR ได้อย่างมีประสิทธิภาพด้วยความพยายามในการคำนวณที่น้อยลง[ 14 ]
  • สามารถทำให้ขั้นตอนวิธีมีประสิทธิภาพในการใช้หน่วยความจำมากขึ้นได้โดยการจัดเก็บเฉพาะการวนซ้ำและค่าความคลาดเคลื่อนล่าสุดไม่กี่รายการ หากไม่จำเป็นต้องใช้ เวกเตอร์ของการวนซ้ำทั้งหมด
  • โค้ดนี้สามารถขยายไปใช้กับกรณีของค่าเวกเตอร์ได้โดยตรง
f = @( x ) sin ( x ) + atan ( x ); % ฟังก์ชันที่ต้องการคำนวณจุดคงที่x0 = 1 ; % ค่าเริ่มต้นที่คาดเดาk_max = 100 ; % จำนวนรอบการทำซ้ำสูงสุดtol_res = 1e-6 ; % ค่าความคลาดเคลื่อนของค่าตกค้างm = 3 ; % พารามิเตอร์ mx = [ x0 , f ( x0 )]; % เวกเตอร์ของค่าที่ได้จากการวนซ้ำ x g = f ( x ) - x ; % เวกเตอร์ของค่าความคลาดเคลื่อนG_k = g ( 2 ) - g ( 1 ); % เมทริกซ์ของส่วนเพิ่มในค่าตกค้างX_k = x ( 2 ) - x ( 1 ); % เมทริกซ์ของส่วนเพิ่มใน xk = 2 ; ในขณะที่k < k_max และabs ( g ( k )) > tol_res m_k = min ( k , m ); % แก้ปัญหาการหาค่าเหมาะสมที่สุดโดยใช้การแยกส่วน QR [ Q , R ] = qr ( G_k ); gamma_k = R \ ( Q ' * g ( k )); % คำนวณค่าวนซ้ำใหม่และค่าตกค้างใหม่x ( k + 1 ) = x ( k ) + g ( k ) - ( X_k + G_k ) * gamma_k ; g ( k + 1 ) = f ( x ( k + 1 )) - x ( k + 1 ); % อัปเดตเมทริกซ์การเพิ่มขึ้นด้วยองค์ประกอบใหม่X_k = [ X_k , x ( k + 1 ) - x ( k )]; G_k = [ G_k , g ( k + 1 ) - g ( k )]; n = size ( X_k , 2 ); ถ้าn > m_k X_k = X_k (:, n - m_k + 1 : end ); G_k = G_k (:, n - m_k + 1 : end ); end k = k + 1 ; end% พิมพ์ผลลัพธ์: คำนวณจุดคงที่ได้ 2.013444 หลังจาก 9 รอบfprintf ( "คำนวณจุดคงที่ได้ %f หลังจาก %d รอบ\n" , x ( end ), k );

ดูเพิ่มเติม

หมายเหตุ

  1. ^สูตรนี้ไม่เหมือนกับที่ผู้เขียนต้นฉบับให้ไว้ [ 1 ]เป็นสูตรที่เทียบเท่าและชัดเจนกว่าที่ Walker และ Ni ให้ไว้ [ 3 ]
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Anderson_acceleration&oldid=1359107587 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การเร่งความเร็วของแอนเดอร์สัน

ในทางคณิตศาสตร์ การเร่งความเร็วของแอนเดอร์สัน หรือที่เรียกว่า การผสมของแอนเดอร์สัน เป็นวิธีการเร่งอัตราการบรรจบกันของ การวนซ้ำจุดคงที่ โดนัลด์ จี.

คำนิยาม

เมื่อกำหนดฟังก์ชันให้พิจารณาปัญหาการหา จุดคงที่ ของซึ่งเป็นคำตอบของสมการแนวทางคลาสสิกในการแก้ปัญหานี้คือการใช้แผนการ วนซ้ำจุดคง ที่ [ 2 ] กล่าวคือ เมื่อกำหนดค่าเริ่มต้นสำหรับการคาดเดาคำตอบแล้ว ให้คำนวณลำดับจนกว่าจะตรงตามเกณฑ์การลู่เข้าบางอย่าง อย่างไรก็ตาม...

อนุพันธ์

สำหรับคำตอบนั้นเรารู้ว่าซึ่งเทียบเท่ากับการกล่าวว่าดังนั้นเราจึงสามารถกำหนดปัญหาใหม่ให้เป็นปัญหาการหาค่าเหมาะสมที่สุด โดยที่เราต้องการลดค่า ให้เหลือน้อยที่สุด x * {\displaystyle x^{*}} เอฟ ( x * ) = x * {\displaystyle f(x^{*})=x^{*}} จี ( x * ) = 0 →...

วิธีแก้ปัญหาการหาค่าต่ำสุด

ในแต่ละรอบของอัลกอริธึมปัญหา การเพิ่มประสิทธิภาพ แบบมีข้อจำกัด ภายใต้เงื่อนไขจะต้องได้รับการแก้ไข ปัญหาสามารถแปลงเป็นสูตรที่เทียบเท่ากันได้หลายแบบ [ 3 ] ซึ่งให้วิธีการแก้ปัญหาที่แตกต่างกันซึ่งอาจส่งผลให้การใช้งานสะดวกยิ่งขึ้น อาร์กมิน ⁡ ‖ จี เค α ‖ 2...