ความพยายามคำนวณของอัลกอริทึม


9

พิจารณาปัญหาการปรับให้เหมาะสมแบบไม่มีข้อ จำกัด อย่างเข้มงวด O:=minxRnf(x).ให้แทนค่า minima ที่ไม่ซ้ำกันและเป็นการประมาณค่าเริ่มต้นที่กำหนดให้กับเราจะเรียกเวกเตอร์วิธีการแก้ปัญหาอย่างใกล้ชิดของถ้า xoptx0xopt.xϵO

||xxopt||2||x0xopt||2ϵ.

สมมติว่ามีสองอัลกอริธึมวนซ้ำA1และA2เพื่อค้นหาϵ close solution ของOด้วยคุณสมบัติต่อไปนี้:

  1. สำหรับการใด ๆϵ>0,คำนวณความพยายามทั้งหมดคือความพยายามที่จำเป็นต่อการทำซ้ำ×จำนวนรวมของการทำซ้ำที่จะหาϵทางออกที่ใกล้จะเหมือนกันสำหรับทั้งขั้นตอนวิธี
  2. ความพยายามซ้ำสำหรับA1คือO(n),พูดในขณะที่A2คือO(n2).

มีสถานการณ์ที่หนึ่งจะชอบหนึ่งอัลกอริทึมมากกว่าอีก? ทำไม?

คำตอบ:


14

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

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


7

ฉันนึกถึงความเป็นไปได้บางอย่าง:

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

หากคืองานและเวลา แต่หน่วยความจำคุณอาจต้องการถ้ามีขนาดใหญ่ อาจมีขนาดใหญ่พอที่จะให้คุณเลือกเนื่องจากการใช้หน่วยความจำมีแนวโน้มที่จะ จำกัด คุณที่นี่A1O(n)O(nk)A2kk=2A2

สิ่งนี้อาจนำไปใช้ไม่ว่าเราจะพูดถึงการเพิ่มประสิทธิภาพหรือปัญหาซ้ำ ๆ อื่น ๆ


ฉันเห็นด้วยกับคุณเกี่ยวกับข้อ จำกัด ของพื้นที่ ฉันสงสัยว่าใครสามารถสร้างเคสบนพื้นฐานของความซับซ้อนของเวลาได้
Suresh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.