การเพิ่มความเร็วพหุนามด้วยอัลกอริทึมโดยใช้การเขียนโปรแกรม semidefinite


17

นี่คือการติดตามของคำถามที่ถามเมื่อเร็ว ๆ นี้โดย A. Pal: แก้โปรแกรม semidefinite ในเวลาพหุนาม

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

ปรากฎว่าถ้าเรากำหนด SDP ของเราอย่างระมัดระวังและเรากำหนดเงื่อนไขว่าขอบเขตที่เป็นไปได้เบื้องต้นนั้นดีเพียงใดเราสามารถใช้วิธีรี ellipsoid เพื่อให้พหุนามผูกพันกับเวลาที่ใช้ในการแก้ปัญหา SDP (ดูหัวข้อ 3.2 ใน L. Lovász, โปรแกรม Semidefinite และการเพิ่มประสิทธิภาพ combinatorial ) ขอบเขตที่ระบุมี " เวลาพหุนาม " ทั่วไปและที่นี่ฉันสนใจในขอบเขตที่หยาบน้อยกว่า

แรงจูงใจมาจากการเปรียบเทียบสองอัลกอริทึมที่ใช้สำหรับปัญหาการแยกควอนตัม (ปัญหาจริงไม่เกี่ยวข้องที่นี่ดังนั้นอย่าหยุดอ่านผู้อ่านคลาสสิก!) อัลกอริทึมนั้นขึ้นอยู่กับลำดับชั้นของการทดสอบที่สามารถแปลงเป็น SDP และการทดสอบแต่ละครั้งในลำดับชั้นจะอยู่บนพื้นที่ขนาดใหญ่นั่นคือขนาดของ SDP ที่สอดคล้องกันนั้นใหญ่กว่า อัลกอริทึมสองอย่างที่ฉันต้องการเปรียบเทียบแตกต่างกันในการแลกเปลี่ยนต่อไปนี้: ในอันแรกเพื่อค้นหาโซลูชันที่คุณต้องไต่ระดับขั้นตอนเพิ่มเติมของลำดับชั้นและในขั้นตอนที่สองขั้นตอนของลำดับชั้นสูงกว่า แต่คุณต้องปีนน้อยลง ของพวกเขา. เป็นที่ชัดเจนว่าในการวิเคราะห์การแลกเปลี่ยนนี้เวลาทำงานที่แม่นยำของอัลกอริทึมที่ใช้ในการแก้ปัญหา SDP เป็นสิ่งสำคัญ การวิเคราะห์อัลกอริธึมเหล่านี้ทำโดยNavascuésและคณะ ในarxiv: 0906.2731ที่พวกเขาเขียน:

... ความซับซ้อนของเวลาของ SDP ที่มีตัวแปรและขนาดเมทริกซ์nคือO ( m 2 n 2 ) (โดยมีค่าใช้จ่ายเพิ่มเติมเล็กน้อยมาจากการวนซ้ำของอัลกอริทึม)mnO(m2n2)

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

คำถามของฉันคือสองเท่า:

  • อัลกอริทึม / ขอบเขตใดที่Navascuésและคณะ อ้างถึง?
  • ฉันสามารถแทนที่นิพจน์ "เวลาพหุนาม" ในLovászด้วยบางสิ่งบางอย่างหยาบน้อยกว่า (รักษาสมมติฐานเดียวกัน)?

1
ความเข้าใจของฉันอยู่ที่วิธีการรีให้คำตอบที่เป็นข้อผิดพลาดภายในสารเติมแต่งในเวลาพหุนามในบันทึก( 1 / ε ) สำหรับปัญหามากที่สุดหนึ่งอาจสงสัยว่าε = Ω ( 1 / 2 n )อาจพอเพียง ϵlog(1/ϵ)ϵ=Ω(1/2n)
Suresh Venkat

@SureshVenkat: นั่นเป็นสิทธิวิธีการทรงรีผลงานในเวลาพหุนามในขนาดของการฝึกอบรมการป้อนข้อมูลขนาดของข้อ จำกัด และ ) ปัญหาคือว่าสำหรับแอปพลิเคชันที่ฉันพูดถึงในคำถามการบอกว่า "พหุนาม" นั้นไม่เพียงพอฉันต้องการขอบเขตที่แม่นยำยิ่งขึ้น log(1/ϵ)
Alessandro Cosentino

คำตอบ:


12

ฉันไม่คุ้นเคยกับรายละเอียดของวิธี ellipsoid โดยเฉพาะสำหรับโปรแกรม semi-definite แต่สำหรับโปรแกรมlinearการวิเคราะห์วิธี ellipsoid นั้นค่อนข้างบอบบาง

  • ก่อนอื่นเราต้อง จำกัด จำนวนการวนซ้ำของอัลกอริธึมทรงรีในอุดมคติ ให้จะ ellispoid ที่ใช้ในการฉันย้ำ TH ของขั้นตอนวิธีรีและให้ฉันจะเซนทรอยด์ของตน ในขั้นตอนวิธีการที่เหมาะพยากรณ์แยก / สมาชิกจะช่วยให้คุณ halfspace ชั่วโมงฉันที่มีจุดสูงสุดx *แต่ไม่ centroid ฉัน ถัดไปรีE ฉัน+ 1เป็นที่เล็กที่สุดที่มีรีE ฉันวีo L ( E ฉัน+EiicihixciEi+1ฉัน สำหรับฉันแต่ละคนเรามีEihiiโดยที่nคือมิติ ดังนั้นจึงได้รับการเริ่มต้นที่เหมาะสมรีจำนวนของการทำซ้ำเป็นพหุนามในnและเข้าสู่ระบบ(1/ε) การคำนวณEi+1จากEiและhiต้องการการดำเนินการทางคณิตศาสตร์O(n2) ดังนั้นจำนวนการดำเนินการทางคณิตศาสตร์จึงเป็นพหุนามในnและlog(vol(Ei+1)<(11n)vol(Ei)nnlog(1/ε)Ei+1EihiO(n2)n )log(1/ε)

  • อย่างไรก็ตามการดำเนินการทางคณิตศาสตร์บางอย่างนั้นเป็นรากที่สอง! มันตามที่ค่าสัมประสิทธิ์ของอุดมคติรีเป็นตัวเลขที่ไม่ลงตัวของการศึกษาระดับปริญญา2 ฉันและเพื่อให้มีความหวังของจริงไม่มีการคำนวณE ฉัน+ 1ว่าในเวลาที่เหมาะสมใด ๆ ดังนั้นแทนหนึ่งคำนวณประมาณนอก˜ EฉันE ฉันในแต่ละการทำซ้ำโดยใช้เลขคณิตความแม่นยำแน่นอน Grötschel, Lovasz และ Schrijver พิสูจน์ให้เห็นว่าถ้าใครใช้ (พูด) 10 ฉันบิตของความแม่นยำใน  ฉันซ้ำ, th เรายังคงมีEi2iEi+1 E~iEi10iiดังนั้นจำนวนการวนซ้ำที่เพิ่มขึ้นโดยปัจจัยคงที่มากที่สุด แต่ตอนนี้การดำเนินการทางคณิตศาสตร์ในระหว่างการทำซ้ำi(รวมถึงการดำเนินการโดย oracle แยก) ต้องO(ipolylogvol(E~i+1)<O(11n)vol(E~i)iเวลาO(i polylog i)

โดยรวมเวลาในการทำงานทั้งหมดของเมธอด ellipsoid นั้นเป็นค่าประมาณกำลังสองของจำนวนการดำเนินการทางคณิตศาสตร์ เนื่องจากจำนวนการดำเนินการทางคณิตศาสตร์คือพหุนามในและบันทึก( 1 / ε )ดังนั้นเวลาทำงานnlog(1/ε)


ขอบคุณสำหรับคำตอบ. หากฉันรับทราบอย่างถูกต้องนี่คือสิ่งที่ฉันมี (คร่าวๆ): (n. ของการดำเนินการทางคณิตศาสตร์) × O ( i polylog i ) (เวลาสำหรับการดำเนินการทางคณิตศาสตร์แต่ละครั้ง) ผมก็ยังไม่ได้มีความผูกพันอยู่กับจำนวนของการทำซ้ำยกเว้นว่าเป็นพหุนามในnและเข้าสู่ระบบ( 1 / ε ) บางทีฉันอาจไม่ชัดเจนในคำถามของฉัน แต่ฉันสนใจในขอบเขตที่แม่นยำยิ่งขึ้นสำหรับจำนวนการวนซ้ำ (เช่น: n 2 , ... )i=1n. of iterationsO(n2)×O(ipolylogi)nlog(1/ϵ)n , n2
Alessandro Cosentino

อีกอย่างหนึ่ง: จำนวนข้อ จำกัด ไม่ควรปรากฏที่อื่นในการวิเคราะห์ด้วยหรือไม่ นอกจากนี้เฉพาะโปรแกรมเชิงเส้นหรือไม่
Alessandro Cosentino

1
นอกจากนี้คุณยังต้องคำนึงถึงระยะเวลาการทำงานของ oracle แยกด้วย นั่นคือสิ่งที่จำนวนข้อ จำกัด ปรากฏขึ้น สำหรับ LPs ที่ชัดเจน Oracle การแยกจะพยายาม จำกัด หนึ่งครั้ง สำหรับ LP ที่แสดงโดยนัยมันซับซ้อนกว่า
Jeffε
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.