การแก้ระบบสมการเชิงตัวเลขอย่างยากลำบาก


10

ฉันมีระบบสมการไม่เชิงเส้นที่ฉันต้องการแก้ตัวเลข:n

f = ( f 1 , , f n )

f(x)=a
f=(f1,,fn)x=(x1,,xn)

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

ทำไมระบบจึงยาก

  • ฟังก์ชั่นคล้ายกับอันนี้ (แต่แน่นอนในหลายมิติ):

    กราฟิกทางคณิตศาสตร์

    พวกเขามีที่ราบสูงราบคั่นด้วยบริเวณที่มีการเปลี่ยนแปลงที่ราบรื่น ใน 2D คุณสามารถจินตนาการถึงสิ่งนี้ในหนึ่ง :fi

    กราฟิกทางคณิตศาสตร์

    โดยทั่วไปแล้วแต่ละจะมีที่ราบสองแห่งคั่นด้วยการเปลี่ยนแปลงอย่างราบรื่นรอบ ๆไฮเปอร์เพลนfin1

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

  • ฟังก์ชั่นคำนวณได้ช้ามาก ฉันกำลังมองหาวิธีการที่จะได้รับการประมาณค่าที่เหมาะสมของรูทในการทำซ้ำน้อยที่สุด

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

  • ระบบมีมิติสูง สามารถมีขนาดใหญ่เท่ากับ 10-20 เมื่อวิธีที่มีประสิทธิภาพน่าจะเป็นดังต่อไปนี้: ลองติดตามรูปทรงที่กำหนดโดยและและดูว่าพวกมันตัดกันที่ไหน ยังไม่ชัดเจนว่านี่จะพูดคุยกับมิติที่สูงอย่างไรnn=2f1(x1,x2)=0f2(x1,x2)=0

มีอะไรอีกบ้างที่ฉันรู้เกี่ยวกับระบบ?

  • มีรากเดียวอย่างแม่นยำ (จากผลลัพธ์ทางทฤษฎี)

  • ฉันรู้คุณค่าของบนที่ราบ (สมมุติว่ามันคือ 0 และ 1 สำหรับใด ๆ)fii

  • fiมีความสัมพันธ์พิเศษเพื่อ :  การเปลี่ยนแปลง monotonically 1-0 เป็นไปจากไป\สิ่งนี้เป็นจริงสำหรับค่าคงที่ของอื่น ๆxifi(,xi,)xixji


คุณรู้หรือไม่ว่าขอบเขตล่างและบนของตัวแปรทั้งหมดอยู่ภายในซึ่งโซลูชันจะต้องโกหก? ขอบเขตที่แคบกว่าจะดีกว่า คุณสามารถยกตัวอย่างที่กำหนดได้ในมิติที่สูงตามที่คุณต้องการซึ่งแสดงถึงที่ราบและความยากลำบากของคุณ แต่ไม่ต้องการการจำลอง Monte Carlo และไม่มีข้อผิดพลาดแบบสุ่มในฟังก์ชั่น (คะแนนโบนัสหากคำนวณอนุพันธ์ได้) จุดประสงค์ของตัวอย่างที่กำหนดขึ้นเพื่อทำความเข้าใจปัญหาที่เกิดขึ้นไม่ใช่เพื่อบอกว่าการประเมิน Monte Carlo จะไม่ถูกใช้ในการแก้ปัญหาที่แท้จริงของคุณ
Mark L. Stone

@ MarkL.Stone Bounds: ฉันไม่รู้ แต่ฉันเดาได้ การเดาจะต้องกว้างพอสมควรเพื่อให้มั่นใจว่าถูกต้อง ตัวอย่าง: ฉันจะมาพร้อมกับตัวอย่างและจะแก้ไขคำถามในวันพรุ่งนี้ ฉันไม่มีภาพที่ชัดเจนมากขึ้นเกี่ยวกับรูปแบบที่แท้จริงของมากกว่าที่ฉันอธิบายไว้ที่นี่ดังนั้นตัวอย่างแรกของฉันอาจไม่ได้เป็นตัวแทนของปัญหาจริงอย่างแท้จริง แต่ฉันจะรวบรวมบางสิ่งที่ทำจากฟังก์ชั่น Fermi (sigmoids) และฉันจะพยายามทำให้มันมีความยากลำบากของปัญหาจริงมากที่สุดเท่าที่จะทำได้ f
Szabolcs

ฉันหวังว่าจะได้เห็นมัน
Mark L. Stone

คำตอบ:


1

เนื่องจากมีรูทเดียวและไม่มีข้อ จำกัด คุณอาจโชคดีที่วางมันเป็นปัญหาการเพิ่มประสิทธิภาพ: ลดผลรวม (ตามแต่ละมิติ) ของสแควร์ของฟังก์ชันดั้งเดิมของคุณ

วิธีการหาค่าเหมาะที่สุดแบบคลาสสิกอาจล้มเหลว แต่วิธีการแก้ปัญหาแบบฮิวริสติกเช่นอัลกอริธึมทางพันธุกรรมหรือ CME-ES (การปรับเมทริกซ์ covariant ฯลฯ - กลยุทธ์วิวัฒนาการ) อาจทำงานได้


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

2
OP ระบุว่าฟังก์ชั่นนั้นมีราคาแพงมากในการประเมิน (ใช้การจำลอง Monte Carlo สำหรับการประเมินฟังก์ชั่น) นั่นไม่ใช่ปัญหาใหญ่สำหรับอัลกอริธึมทางพันธุกรรมและอัลกอริธึมวิวัฒนาการอื่น ๆ ใช่หรือไม่ พวกเขาเป็น "คู่ขนานเล็กน้อย" (และมักเป็น MC ด้วย) ดังนั้นการคำนวณแบบขนานขนาดใหญ่อาจเป็นไปได้ แต่เป็นวิธีที่ดีที่สุดที่จะไปที่นี่หรือไม่
GertVdE

@ WolfgangBangerth ขอบคุณที่คุณบอกว่ามันดูเหมือนทางออกที่ถูกต้อง ฉันจะดู SPSA
Szabolcs

1
เกี่ยวกับการประเมินฟังก์ชั่นที่มีราคาแพง: มันเป็นความจริงที่อัลกอริธึมทางพันธุกรรมและวิธีการแก้ปัญหาที่เกี่ยวข้องมักจะต้องใช้การประเมินฟังก์ชั่นจำนวนมากมากกว่าวิธีแบบดั้งเดิม ประโยชน์คือวิธีการแก้ปัญหามักจะสามารถแก้ปัญหาที่ 1) จะต้องใช้วิธีการเฉพาะปัญหาหรือ 2) จะล้มเหลวเนื่องจากปัญหาเชิงตัวเลข สำหรับตัวอย่างนี้อาจเป็นไปได้ว่าวิธีการดั้งเดิมจะมีปัญหาเนื่องจากลักษณะสุ่มของฟังก์ชันวัตถุประสงค์และการไล่ระดับสีเล็กน้อยตามมิติ SPSA ดูเหมือนจะเป็นวิธีที่ดีที่สุดสำหรับปัญหานี้
MattKelly
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.