วิธีแก้ปัญหาจุดกึ่งกลางของโปรแกรมเชิงเส้น


9

มีโปรแกรมเชิงเส้นที่ฉันต้องการไม่เพียง แต่วิธีการแก้ปัญหา แต่วิธีการแก้ปัญหาที่เป็นศูนย์กลางที่สุดเท่าที่เป็นไปได้บนใบหน้าของ polytope ที่ถือว่าค่าน้อยที่สุด

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

ลด ϵ ภายใต้ fi(x¯)ϵ<0 กับ fi เชิงเส้นและ xi>0 เพื่อทุกสิ่ง i และ ixi=1.

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


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

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


2
ไม่ตรงกับคำถามของคุณ แต่: คำนวณ centroid เป็น # P-hard; ฉันไม่แน่ใจว่าสิ่งที่ดีที่สุดประมาณ แต่สำหรับบางโปรแกรมที่วาง polytope ในตำแหน่ง isotropic และรับค่าเฉลี่ยของ polynomially ตัวอย่างเครื่องแบบจำนวนมากจากพอลิปท็อป (เปลี่ยน) พอเพียง ดูหมายเหตุเหล่านี้ Lemma 15 ตัวอย่างเช่น: cc.gatech.edu/~vempala/acg/notes.pdf
Sasho Nikolov

นี่เป็นคำถามเชิงทฤษฎีหรือคำถามเชิงปฏิบัติมากขึ้นหรือไม่ อาจเป็นไปได้ที่จะสร้างจุดยอดทั้งหมดของใบหน้าที่ดีที่สุดจากนั้นใช้การผสมผสานที่เหมาะสมของใบหน้า
ไม่ระบุชื่อ

คำตอบ:


4

ฉันมีข้อสังเกตสองสามข้อซึ่งยาวเกินไปสำหรับความคิดเห็น นี่คือบทสรุป

  1. อัลกอริทึมใด ๆ ในการแก้ปัญหาของคุณสามารถใช้เพื่อแก้ปัญหาโปรแกรมเชิงเส้นได้อย่างแน่นอน (เช่น "การเขียนโปรแกรมเชิงเส้นแรง" ซึ่งใช้ในการแก้ปัญหาของ Sariel และปัจจุบันไม่มีอัลกอริทึมเวลาพหุนาม)

  2. การติดตามอย่างเป็นธรรมชาติคือถ้าการแก้ปัญหาโดยประมาณ (เช่น "การเขียนโปรแกรมเชิงเส้นอ่อน") สามารถให้โซลูชันได้ ในขณะที่คำตอบคือใช่ปรากฏว่าเงื่อนไขการหยุดสำหรับโพรซีเดอร์นี้ต้องการปริมาณที่ไม่สามารถคำนวณได้ในเวลาที่ดีที่สุดของความรู้ของฉัน (เช่นอัลกอริทึมค้นหาสิ่งที่ดี แต่การรับรองนี้เป็นเรื่องยาก) คำแนะนำหลักของฉันที่นี่คือการให้คำจำกัดความที่มีความหมายของ "ϵ- ทางออกที่ดีที่สุด "สำหรับปัญหาของคุณซึ่งในกรณีนี้วิธีการนี้จะสามารถจัดการได้ง่าย (กลยุทธ์นี้จะทำให้ใบหน้าเล็ก ๆ ของรูปทรงหลายเหลี่ยมมีปัญหา)

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

(1. ) สมมติว่าเรามีอัลกอริทึมที่สามารถแก้ปัญหาของคุณได้ โปรดสังเกตว่าจุดที่ถูกเปิดเผยของใบหน้าใด ๆ ที่มีจุดกึ่งกลางที่ให้ไว้จะเป็นคำตอบที่แน่นอนของโปรแกรมเชิงเส้นดั้งเดิม ดังนั้นดำเนินการดังนี้ เพิ่มข้อ จำกัด เชิงเส้นใหม่โดยบอกว่าค่าวัตถุประสงค์ดั้งเดิมจะต้องเท่ากับค่าที่เหมาะสมที่สุด (ซึ่งตอนนี้เรารู้แล้ว) และตั้งค่าวัตถุประสงค์ใหม่เพื่อเพิ่มพิกัดแรกของการแก้ปัญหาให้สูงสุด ทำซ้ำขั้นตอนนี้หนึ่งครั้งสำหรับแต่ละมิติแต่ละครั้งเพิ่มข้อ จำกัด และเลือกพิกัดใหม่เพื่อเพิ่ม กระบวนการนี้จะลดขนาดของโซลูชันในแต่ละครั้ง จำเป็นเมื่อกระบวนการเสร็จสมบูรณ์เรามีชุดเลียนแบบ 0 มิติหมายถึงจุดเดียว ดังนั้นด้วยO(d) วนซ้ำของอัลกอริทึมการแก้จุดกึ่งกลางของคุณ (และเพิ่มคำอธิบายปัญหาโดยจำนวนพหุนามเท่านั้น dแต่ละครั้ง) การโปรแกรมเชิงเส้นที่แข็งแกร่งจะได้รับการแก้ไข นี่แสดงให้เห็นว่าในขณะที่โซลูชันของ Sariel ต้องการการเขียนโปรแกรมเชิงเส้นที่มีประสิทธิภาพ แต่โซลูชันที่ตรงกับคำถามของคุณไม่สามารถหลีกเลี่ยงได้ ( แก้ไข : โปรดทราบว่าการพิสูจน์ของฉันสมมติว่ารูปทรงหลายเหลี่ยมขนาดกะทัดรัด (โพลีท็อป) เป็นอย่างอื่นไม่เช่นนั้นจะต้องทำงานให้หนักขึ้นเล็กน้อยเพื่อหาจุดยอด)

(2. )นี่คือรูปแบบการวนซ้ำโดยใช้ตัวแก้นูนแบบเป่าเต็มในแต่ละการวนซ้ำซึ่งการแก้ปัญหาจะมาบรรจบกันเป็นความคิดเล็กน้อยของการแก้ปัญหาจุดกึ่งกลาง เลือกลำดับของค่าปรับที่เป็นบวก แต่ลดลง{λi}i=10; มันสมเหตุสมผลที่จะให้สิ่งเหล่านี้ลงไปตามเรขาคณิตเช่นλi=2i. ตอนนี้สำหรับแต่ละคนiประมาณฟังก์ชั่นนูนน้อยที่สุด

c,xλij=1mln(aj,xb),

ที่ไหน c,x เป็นเป้าหมายดั้งเดิมของคุณและ j ช่วงเหนือ mข้อ จำกัด เดิมตอนนี้วางไว้ในวัตถุประสงค์ผ่านอุปสรรคลอการิทึม (หมายเหตุนี่เป็นมาตรฐาน) ตอนนี้ถ้าเราคิดถึงใบหน้าที่มีขนาดเล็กที่สุดของโพลีเฮดของคุณให้สังเกตว่ามีขนาดเล็กพอสมควรλi และความอดทน τไปที่กล่องดำของคุณที่เลือกให้เหมาะสมที่สุดโดยประมาณของคุณจะอยู่ใกล้กับใบหน้านี้อย่างไรก็ตามอุปสรรคจะผลักดันให้ไกลที่สุดเท่าที่จะทำได้จากข้อ จำกัด อื่น ๆ กล่าวอีกวิธีหนึ่งว่าλi ลดลงเป้าหมายเชิงเส้นเริ่มแรกจะเป็นอุปสรรคต่อการคัดสรรอย่างพิถีพิถันซึ่งทำให้คุณไม่ต้องเผชิญกับใบหน้าที่เหมาะสม แต่จะไม่ส่งผลกระทบต่อสิ่งกีดขวางที่ทำให้คุณไม่อยู่ในขอบเขตอื่น ๆ โดยเฉพาะอย่างยิ่งใบหน้าเป้าหมาย

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

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

ด้วยเหตุนี้คำแนะนำของฉันคือการสร้างความคิดของ ``ϵ- ปิดจุดกึ่งกลางที่เหมาะสม '' และแก้ปัญหาโดยเลือก λ และความอดทนของคุณในการเลือกใช้กล่องดำแบบนูน τอย่างเหมาะสม. ฉันคิดว่านี่เป็นตัวเลือกที่สมเหตุสมผลเพราะคุณอาจไม่สนใจใบหน้าที่มีความกว้างมากที่สุดϵ.

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

สุดท้ายจากคำอธิบายของคุณฉันเชื่อว่าคุณหมายถึง "เป้าหมายใบหน้า" ที่มีมิติสูงที่สุดเท่าที่จะเป็นไปได้? สิ่งนี้ถูกกำหนดไว้อย่างดีอย่างไรก็ตามยังมีวิธีแก้ไขปัญหาสำหรับมิติที่เล็กกว่าทั้งหมด อย่างไรก็ตามทั้งแนวทางของ Sariel และแนวทางป้องกันด้านบนจะทำงานร่วมกับใบหน้าที่มีขนาดใหญ่ที่สุด


ใช่ฉันพิจารณาเทคนิคเช่นนี้ แต่ท้ายที่สุดฉันก็ย่อเล็กสุด ifi(x)2+jxj2 ภายใต้ jxj=1ใช้ตัวคูณลากรองจ์ มันทำให้ทรัพย์สินส่วนกลางที่อ่อนแอสำหรับxบนเส้นทแยงมุมซึ่งอาจไม่ใช่พื้นผิวที่ถูกย่อให้เล็กสุด แต่เป็นพื้นผิวที่ จำกัด อย่างใดอย่างหนึ่งที่ไม่เคยเคลื่อนที่ ฉันเพียงแค่เรียกใช้โปรแกรมเชิงเส้นแยกเมื่อข้อ จำกัด หยุดการพัฒนาและฉันต้องการขั้นต่ำจริงสำหรับϵ. ในที่สุดก็ไม่จำเป็นต้องรักษาϵย่อเล็กสุดเพื่อช่วยให้ข้อ จำกัด วิวัฒนาการเร็วขึ้น ขอบคุณนะ! :)
Jeff Burdges

Ahh # 2 ดูน่าสนใจไม่ใช่สิ่งที่ฉันคิดในตอนแรก ! น่ารัก อย่างที่ฉันพูดฉันให้อภัยxสำหรับการไม่เชื่อมโยงไปถึงใบหน้าที่ย่อเล็กสุดตราบใดที่มันเหมาะสมอย่างรวดเร็ว ฉันจะเล่นกับเรื่องนี้ในบางจุด ในความเป็นจริงฉันจะต้องอ่านการเพิ่มประสิทธิภาพของนูนต่อไปเพราะฉันพบเหตุผลที่จะทำให้เป้าหมายของฉันเป็นเส้นตรงแทนที่จะเป็นเส้นตรง
Jeff Burdges

ฉันไม่เข้าใจประเด็นเกี่ยวกับ "การเขียนโปรแกรมเชิงเส้นตรง" และฉันไม่เคยได้ยินการแสดงออกนี้มาก่อน ไม่มีใครรู้วิธีแก้ LP ในเวลาพหุนามที่แข็งแกร่ง แต่การแก้ LP ในเวลาพหุนามในคำอธิบายการป้อนข้อมูล (เช่นเวลาพหุนามอ่อน) เป็นที่รู้จักกันดี ถ้า OP ต้องการอัลกอริธึมที่ทำงานในเวลาพหุนามอ่อนแล้วโซลูชั่นของ Sariel + อัลกอริธึมภายในจุดโพลีเวลาจะทำงานได้หรือไม่?
Sasho Nikolov

@SashoNikolov นี่คือความเข้าใจปัจจุบันของฉัน ตัวแก้ปัญหาโพลีเวลาที่มีอยู่ใด ๆ ที่มีอยู่จะใช้ความอดทนτ เป็นอินพุตและส่งคืน τ- โซลูชั่นที่ดีที่สุด ในขณะเดียวกันการแก้ปัญหาของ Sariel นั้นขึ้นอยู่กับการแก้ปัญหาที่แน่นอน: โดยเฉพาะอย่างยิ่งวิธีการจุดภายในจะคืนค่าภายในที่เหมาะสมโดยประมาณซึ่งหมายความว่าขั้นตอนในการระบุลำเรือเลียนแบบของใบหน้าที่ดีที่สุดที่ต้องการ ชุด ฉันยอมรับว่าฉันควรแก้ไขสิ่งที่ฉันเขียนเกี่ยวกับความแข็งแกร่ง / ความอ่อนแอซึ่งประเด็นสำคัญคือการได้รับการแก้ไขปัญหาที่แน่นอนในทางใดทางหนึ่ง
matus

@SashoNikolov ตอนนี้ที่ฉันคิดเกี่ยวกับมันความคิดการมองโลกในแง่ดีเดียวกัน (มีปัญหาเดียวกัน) สามารถทำงานในการแก้ปัญหาของ Sariel ตัวอย่างเช่นโดยการรักษาข้อ จำกัด ที่อยู่ในความอดทนเล็ก ๆ น้อย ๆ ที่จะแน่นจริง ๆ และปรับค่านี้อย่างเหมาะสม ฉันจะอัปเดตโซลูชันของฉันคืนนี้
Matus

6

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

เหตุใดปัญหาที่สองสามารถแก้ไขได้โดยใช้ LP เป็นปัญหาน่ารักที่น่าหลงไหลใน Computational Geometry ...

==============

อย่างเป็นทางการมากขึ้นคุณจะพบพื้นที่ย่อยเลียนแบบซึ่งประกอบไปด้วยจุดที่เป็นไปได้ที่มีทางออกที่ดีที่สุด ดังนั้นสมมติว่าทางออกที่ดีที่สุดนั้นอยู่บนไฮเปอร์เพลนhcx=α (เช่น mincxเป็นฟังก์ชันเป้าหมาย LP ดั้งเดิม) ถ้าเป็นพื้นที่ที่เป็นไปได้ของแผ่นเสียงเดิมเรากำลังมองหาลูกที่ใหญ่ที่สุดในหมวกชั่วโมง ด้วยเหตุนี้เราต้องคำนวณมิติย่อยเลียนแบบมิติที่เล็กที่สุดที่มีชุดนี้ เมื่อคุณพบพื้นที่ย่อยนี้แล้วให้เปลี่ยนตัวแปรเพื่อให้คุณพิจารณาเฉพาะการเลียนแบบ Subapce ตอนนี้ polytope ของคุณเต็ม dimenisonal และคุณสามารถใช้ LP ที่สองตามที่ฉันอธิบายไว้ข้างต้นPPh

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

ดังนั้นเพื่อทำให้หน้าร้อน: (A) แก้ LP เพื่อค้นหาค่าที่ดีที่สุด (B) คำนวณพื้นที่ย่อยขนาดเล็กที่สุดที่มีทางออกที่เป็นไปได้ด้วยค่าที่เหมาะสม (C) เขียน LP ต้นฉบับในช่วงย่อยเลียนแบบนี้ (เช่นวางมิติที่ไม่เกี่ยวข้องทั้งหมด) เพิ่มตัวแปรแล้วเปลี่ยนเป็น LP เพื่อหาลูกบอลที่ใหญ่ที่สุดในโพลิปท็อปนี้


"ลูกบอลที่ใหญ่ที่สุด" มีความหมายอย่างไรในรูปทรงหลายเหลี่ยมที่ไม่ได้มีขนาดเต็ม?
Kristoffer Arnsfelt Hansen

@KristofferArnsfelt แฮนเซนรูปทรงหลายเหลี่ยมแน่นอนว่าเป็นชุดนูนที่วางอยู่ในพื้นที่ย่อยเลียนแบบของบางมิติ
Sasho Nikolov

เพื่อให้สิ่งนี้ใช้งานได้คุณจะต้องระบุข้อ จำกัด ที่ จำกัด เฉพาะใบหน้าที่คุณพบในขั้นตอนแรก คุณต้องรู้ด้วยว่าวิธีการแก้ปัญหานี้คงที่ในหน้านี้ (ความเกียจคร้านที่น่าเกรงขามน่าจะเปิดเผยได้)
Suresh Venkat

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

1
มันง่ายกว่าที่ - คุณจำเป็นต้องพิจารณาเฉพาะจุดที่อยู่ติดกับจุดสุดยอดที่ดีที่สุด - มีที่มากที่สุดติดกับมันและคุณสามารถคำนวณพวกเขาในเวลาพหุนาม .... เพื่อดูว่าทำไมความจริงพิจารณา polytope บน the affine subspace - มันถูกทอดโดยเพื่อนบ้านของที่อยู่บน affine subspace นี้ แต่นี่เป็นส่วนย่อยของจุดยอดที่อยู่ติดกับ v ใน polytope ดั้งเดิม และใช่ - ฉันใช้เวลาค่อนข้างนานในการดู dv
Sariel Har-Peled
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.