การเขียนโปรแกรมแบบไดนามิกไม่เคยอ่อนแอกว่าโลภหรือไม่?


15

ในความซับซ้อนของวงจรเรามีการแยกระหว่างพลังของแบบจำลองวงจรต่างๆ

ในความซับซ้อนของการพิสูจน์เรามีการแบ่งแยกระหว่างอำนาจของระบบการพิสูจน์ที่หลากหลาย

แต่ในขั้นตอนที่เรายังคงมีเพียงไม่กี่แยกระหว่างอำนาจของกระบวนทัศน์อัลกอริทึม

คำถามของฉันด้านล่างมุ่งหวังที่จะสัมผัสปัญหาหลังนี้สำหรับกระบวนทัศน์สองประการ: โลภและการเขียนโปรแกรมแบบไดนามิก

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

อัลกอริทึมโลภเริ่มต้นด้วยการแก้ปัญหาบางส่วนที่ว่างเปล่าและในแต่ละขั้นตอนมันเพิ่มองค์ประกอบที่ยังไม่ได้รับการรักษาที่มีน้ำหนักมากที่สุดถ้ามันเป็นไปได้เช่นถ้าทางออกที่ขยายยังคงเป็นไปได้ ทฤษฎีบท Rado-Edmonds ที่รู้จักกันดีระบุว่าอัลกอริทึมนี้จะหาทางออกที่ดีที่สุดสำหรับการป้อนน้ำหนักทั้งหมดถ้าครอบครัวของการแก้ปัญหาที่เป็นไปได้คือ matroid

โดยทั่วไปแล้วขั้นตอนวิธี DP นั้นง่ายมากหากใช้เพียงการดำเนินการ Max และ Sum (หรือ Min และ Sum) เท่านั้น เพื่อให้มีความเฉพาะเจาะจงมากขึ้น (ตามที่โจชัวแนะนำ) โดยอัลกอริธึมDP อย่างง่ายฉันจะหมายถึงวงจร (max, +) ที่มี fanin-2 Max และ Sum Sum อินพุตคือตัวแปร -th ซึ่งสอดคล้องกับน้ำหนักที่กำหนดให้กับองค์ประกอบ -th เช่นวงจรสามารถแก้ปัญหาใดปัญหาดังกล่าวโดยเพียงแค่การคำนวณน้ำหนักรวมสูงสุดของการแก้ปัญหาที่เป็นไปได้ แต่นี่อาจเป็นเรื่องที่มากเกินไปหากเรามีวิธีแก้ปัญหาดังกล่าวจำนวนมากแทน (เช่นเกือบทุกกรณี)ฉันii

คำถามที่ 1: มี matroids ซึ่งอัลกอริทึม DP ง่าย ๆ ใดจะต้องมีจำนวนการดำเนินการพหุนามในการแก้ปัญหาการขยายสูงสุดที่สอดคล้องกัน?

แสดงความคิดเห็น (เพิ่ม 2015/12/24): คำถามนี้เป็นคำถามคำตอบอยู่แล้ว (ดูด้านล่าง): มีอยู่ matroids ดังกล่าวแม้จะอยู่ในการครอบงำส่วนใหญ่

คำถามต่อไปขอให้แยกโลภและ DP ง่าย ๆ สำหรับปัญหาการประมาณ ในปัญหาการจับคู่ Max-Weightกลุ่มโซลูชันที่เป็นไปได้ประกอบด้วยการจับคู่ทั้งหมดในกราฟ bipartiteสมบูรณ์ สำหรับการกำหนดน้ำหนักให้กับขอบที่กำหนดเป้าหมายคือการคำนวณน้ำหนักสูงสุดของการจับคู่ (ซึ่งจะเป็นการจับคู่ที่สมบูรณ์แบบเสมอเนื่องจากน้ำหนักไม่ใช่ค่าลบ) n×n

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

คำถามที่ 2: อัลกอริทึม DP ง่าย ๆ สามารถประมาณปัญหาการจับคู่น้ำหนักสูงสุดภายในปัจจัย 2 ได้โดยใช้การดำเนินการ Max และ Sum จำนวนมากที่เป็นพหุนาม

แน่นอนว่าอัลกอริทึม DP เล็กน้อยซึ่งเอาท์พุทครั้งน้ำหนักสูงสุดของขอบใกล้เคียงกับปัญหานี้ภายในปัจจัยnแต่เราต้องการปัจจัยที่เล็กกว่ามาก ฉันเดาว่าแม้จะมีปัจจัยไม่สามารถทำได้ แต่อีกครั้ง: วิธีการพิสูจน์นี้? n n / log nnnn/logn

ที่เกี่ยวข้อง: ลูกพี่ลูกน้องของการจับคู่น้ำหนักสูงสุดคือปัญหาการกำหนด : ค้นหาน้ำหนักขั้นต่ำของการจับคู่ที่สมบูรณ์แบบ ปัญหานี้สามารถแก้ไขได้ (อย่างแน่นอน) โดยการเขียนโปรแกรมเชิงเส้น (เรียกว่าอัลกอริทึมฮังการี) โดยใช้การดำเนินงานเท่านั้น แต่ขอบเขตล่างของ Razborov กับขนาดของวงจรบูลีนแบบโมโนโทนที่คำนวณฟังก์ชันแบบถาวรหมายถึง (ไม่ใช่โดยตรง) ว่าวงจรใด ๆ (นาที, +) ที่ใกล้เคียงกับปัญหานี้ภายในปัจจัย จำกัด (!) ใด ๆ ต้องใช้การดำเนินงาน ดังนั้นสำหรับปัญหาการย่อขนาดอัลกอริธึม DP อย่างง่ายอาจอ่อนกว่าการเขียนโปรแกรมเชิงเส้น คำถามข้างต้นของฉันมีจุดมุ่งหมายเพื่อแสดงให้เห็นว่าอัลกอริทึม DP ดังกล่าวอาจอ่อนกว่าโลภ n Ω ( บันทึกn )O(n3)nΩ(logn)

มีใครบางคนเห็นคำถามที่คล้ายกันซึ่งถูกพิจารณาโดยใครบางคน?


เพิ่ม (เมื่อวันที่ 24.12.2015): คำถามที่ 2 มีวัตถุประสงค์เพื่อแสดงให้เห็นว่าปัญหาการขยายใหญ่สุดหนึ่งปัญหา (ปัญหาการจับคู่น้ำหนักสูงสุด) ซึ่งสามารถประมาณได้โดยอัลกอริทึมโลภที่มีปัจจัยไม่สามารถประมาณได้ด้วยโพลีขนาดง่าย DP กับเดียวกันปัจจัยRในขณะเดียวกันฉันได้รับการแยกที่อ่อนแอระหว่างโลภและ DP ง่าย ๆ : สำหรับทุกมีปัญหาการขยายใหญ่สุดที่ชัดเจนซึ่งสามารถประมาณได้โดยอัลกอริทึมโลภกับปัจจัยแต่ไม่มีโพลีขนาดง่าย อัลกอริทึม DP สามารถประมาณปัญหานี้ด้วยปัจจัยที่เล็กกว่า (ดูที่นี่r=2r = o ( n / log n ) rrr=o(n/logn)r<r/3สำหรับภาพร่าง) ยังคงคำถามที่ 2 ตัวเอง (ไม่จำเป็นสำหรับปัญหาน้ำหนักสูงสุดนี้โดยเฉพาะ) ยังคงเกิดขึ้นจริง: มันน่าสนใจที่จะกำหนดเป้าหมายปัจจัยเดียวกันโดยอัลกอริทึมทั้งสอง


2
คุณหมายถึงการกำหนด "อัลกอริธึม DP อย่างง่าย" เป็น "วงจรใด ๆ (สูงสุด, +) กับเกตส์ของพัดลม 2" หรือไม่?
Joshua Grochow

@Joshua: ใช่ กล่าวว่ายามฟอร์ดที่สั้นที่สุดสำหรับเส้นทาง ST มีตัวแปรขอบของแต่ละK_nประตูบนชั้น 1 เซนต์เป็นJ} ในชั้น l-th เรามี . ประตูเอาท์พุทเป็นn-1) มีประตูทั้งหมดที่จริงแล้วการ จำกัด สิทธิ์ให้ faninis ไม่สำคัญสำหรับคำถามของฉัน K n D ( j , 1 ) = x s , j D ( j , l ) = min { D ( j , l - 1 ) , m ฉันn ฉัน { D ( i , l - 1 ) + x i , j } } D ( t , n -xผม,JKnD(J,1)=xs,JD(J,ล.)=นาที{D(J,ล.-1),ม.ผมnผม{D(ผม,ล.-1)+xผม,J}}D(เสื้อ,n-1)O(n3)
Stasys

คำตอบ:


6

ผมคิดว่าคำตอบสำหรับคำถามของฉันคือ 1 ยืนยัน : มีอยู่ matroids ที่ง่าย DP ล้มเหลวไม่ดี! นั่นคือง่ายๆ DP อาจจะมากยิ่งกว่าโลภเมื่อพยายามที่จะแก้ปัญหาการเพิ่มประสิทธิภาพตรง

ให้ชุดพื้นดินประกอบด้วยขอบทั้งหมดของK_nเป็นครอบครัวที่เป็นไปได้ของการแก้ปัญหาของเราพาครอบครัวของป่าทั้งหมดในK_nนี่คือ motroid และฐานของมันเป็นต้นไม้ที่ทอด ดังนั้นพหุนามที่เกี่ยวข้องกับ matroid นี้คือพหุนามพหุนามหลายชั้นซึ่ง monomials สอดคล้องกับต้นไม้ที่ทอด Jerrum และ Snirได้พิสูจน์แล้ว (ในมาตรา 4.5) ว่าต้องใช้วงจรเลขคณิตแบบโมโนโทนซึ่งมีขนาดเป็นเลขชี้กำลัง นี่ก็หมายความว่าทุก ๆวงจรและด้วยเหตุนี้ทุกขั้นตอนวิธี DP ง่าย ๆ ต้องใช้จำนวนเอ็กซ์โพเนนเชียลของการดำเนินงาน Max และ Sum เพื่อแก้ปัญหาน้ำหนักสูงสุดของต้นไม้ KnKn(สูงสุด,+)

ดังที่อิกอร์ Sergeev บอกฉันคำตอบที่ยืนยันสำหรับคำถามที่ 1 ตามด้วยการนับ: Knuthแสดงให้เห็นว่ามี matroids ที่คะแนน 22n/n3/2n

PS ฉันจะไม่ "ยอมรับ" นี้ครึ่งคำตอบของฉัน (ซึ่งมาเพียงในขณะนี้หลังจากที่ทบทวนการเชื่อมต่อกับวงจรเลขคณิตเดียว) เพราะคำถามที่น่าสนใจอื่น ๆ อีกมากมายที่ 2 ยังคงเปิด: วิธีมากยิ่งง่าย DP สามารถกว่าโลภเมื่อใกล้เคียงกับการเพิ่มประสิทธิภาพ ปัญหาที่เกิดขึ้น? คำถามนี้น่าสนใจมากขึ้นเพราะโลภมักจะมีปัจจัยที่ดีพอสมควร ปัจจัยนี้เป็นที่รู้จักกันในเวลาเดียวกัน (!) กับสิ่งที่เรียกว่า "rank quotient" ของตระกูลพื้นฐานของการแก้ปัญหาที่เป็นไปได้ (ดูเช่นการเขียนนี้ในกรณีของปัญหาการจับคู่ Max-Weight, quotient นี้คือและอยู่ที่ส่วนใหญ่สำหรับจุดตัดใด ๆ ของ2kkmatroids ในทางตรงข้ามเท่าที่ฉันรู้ขั้นตอนวิธีประมาณ DP ที่ใช้มักจะใช้ "น้ำหนัก" ของน้ำหนักนำเข้าบางประเภทและใช้เฉพาะกับปัญหา "เป้เช่น" หรือปัญหาการตั้งเวลาบางอย่าง คำตอบเชิงลบสำหรับคำถาม 2 จะยืนยันว่า "จุดอ่อนโดยประมาณ" ของ DP นี้ดูเหมือนจะเกิดขึ้น


1
หมายเหตุที่ค่อนข้างเป็นวง: DP ยังถูกใช้ในอัลกอริธึมแบบ Arora สำหรับปัญหายูคลิดมิติที่มีมิติคงที่เช่น Euclidean TSP แต่นี่ยังอยู่ในจิตวิญญาณของการปัดเศษอินพุต
Sasho Nikolov

@Sasho: ใช่นี่เป็นอัลกอริธึม DP ที่น่ารัก Woegingerพยายามที่จะจับปัญหาที่ DP สามารถช่วยในการประมาณปัญหาได้ แต่ฉันไม่ได้เห็นการประมาณค่า DP ที่ดีซึ่งบริสุทธิ์ (เฉพาะ Max และ Sum หรือ Min และ Sum ไม่มีการปัดเศษ / การปรับไม่มี ArgMax ฯลฯ ) แน่นอนว่านี่อาจเป็นเพียงความผิดของฉัน: อัลกอริทึมการประมาณเป็นสิ่งใหม่สำหรับฉัน .
Stasys

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