รูปหลายเหลี่ยมที่อยู่ภายในปัญหาการวางนัยทั่วไปของรูปหลายเหลี่ยม


9

ฉันต้องการขออภัยในการโพสต์ทั้งหมดด้านล่าง เลือกฟอรัมที่ไม่ถูกต้องเพื่อโพสต์สิ่งนี้ใน แต่เดิม อย่างไรก็ตามแทนที่จะทำให้สิ่งนี้เป็นของเสียที่สมบูรณ์ฉันได้ทำคำถามใหม่เพื่อเป็นปัญหา "ทฤษฎีคอมพิวเตอร์ศาสตร์" ที่แท้จริง

ปัญหา: สร้างอัลกอริธึมที่ใช้ชุดของจุดสั่ง n ในระนาบ 2D ที่สร้างรูปร่างของรูปหลายเหลี่ยม A ที่อาจเป็นหรือไม่เป็นเว้าและอาจสร้างรูปหลายเหลี่ยม B ใหม่ด้วยจุด m ดังนี้:

  1. คะแนนทั้งหมดใน A อยู่ใน B
  2. 3 <= m <n
  3. B คือรูปหลายเหลี่ยมในชุดของ Bs ทั้งหมดที่มีพื้นที่เล็กที่สุด
  4. B ต้องเป็นรูปหลายเหลี่ยมแบบง่าย (เช่นไม่มีการตัดกันด้วยตนเอง)
  5. อินพุตไปยังอัลกอริทึมคือรูปหลายเหลี่ยม A และ "m"
  6. อนุญาตให้มีการแบ่งส่วนใน B โดยบังเอิญในกลุ่ม A

ตัวอย่างอินพุตและเอาต์พุตที่คาดหวัง:

  1. ถ้า A คือสี่เหลี่ยมจัตุรัสและ m คือ 3 ดังนั้น B จะเป็นสามเหลี่ยมที่มีพื้นที่ผิวที่เล็กที่สุดที่มี A
  2. ถ้า A คือหกเหลี่ยมและ m คือ 4 ดังนั้น B จะเป็นรูปสี่เหลี่ยมขนมเปียกปูนที่มีพื้นที่ผิวที่เล็กที่สุดที่มี A

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


1
@Joe: ไม่เป็นความจริง: ถ้า A เป็นสี่เหลี่ยมดังนั้น Thirian กำลังร้องขอสามเหลี่ยมพื้นที่ต่ำสุดที่มี A. ในทางกลับกันถ้า A คือสามเหลี่ยม (n=3) จากนั้นแน่นอนไม่มีวิธีแก้ปัญหาที่ถูกต้อง
Jeffε

3
เพิ่ม 17 ให้กับความคิดเห็นแรกของฉันฉันเดา ทำไมต้อง 20
Jeffε

3
FFT ไม่ใช่เกณฑ์ขั้นต่ำสำหรับ "ซับซ้อน" ใช่หรือไม่
Sasho Nikolov

2
ฉันไม่คิดว่ามันเป็นความจริงที่ว่าปัญหาจะไม่เปลี่ยนแปลงเลยถ้าคุณ (พูด) set m = 3 ปัญหาคือคุณอาจต้องใช้ exponential เป็น m และมันก็ใช้ได้ถ้า m ถูกกำหนดให้เป็นตัวเลข แต่ไม่เป็นไรถ้า m เป็นส่วนหนึ่งของอินพุต
Suresh Venkat

5
"ทุกคนรู้ว่าปัญหาคืออะไร" ไม่จริง เรากำลังถามเพราะตัวเลือกที่ไม่ได้ระบุสร้างความแตกต่าง
Suresh Venkat

คำตอบ:


10

ฉันไม่ทราบว่ารูปหลายเหลี่ยมของคุณเป็นอย่างไร แต่บางทีอัลกอริทึม Ramer – Douglas – Peuckerรุ่นที่เรียบง่ายนั้นเพียงพอแล้ว:

  • สำหรับส่วนที่นูนออกมาให้คำนวณพื้นที่Aj ของสามเหลี่ยม PiPi+1Pi+2 เกิดขึ้นโดยสามจุดติดต่อกัน
  • สำหรับแต่ละส่วนเว้าให้คำนวณพื้นที่Bk ของสามเหลี่ยมสองอัน PiPiPi+1 และ Pi+1Pi+2Pi+2 ที่เกิดขึ้นจากการขยายจุดสองจุด Pi,Pi+2 และจุดกึ่งกลาง Pi+1
  • คำนวณ min{Aj,Bk} และลบจุดที่เกี่ยวข้อง (และจุดเปลี่ยนหากการดำเนินการเสร็จสิ้นในส่วนเว้า);
  • วนซ้ำจนกระทั่ง nม. ลบคะแนนแล้ว

ป้อนคำอธิบายรูปภาพที่นี่
เส้นขอบของรูปหลายเหลี่ยม (Aj สามเหลี่ยมสีเขียว Bkสามเหลี่ยมสีแดง) ทางด้านขวาเส้นขอบหลังจากการกำจัดของสองจุด

สำหรับอัลกอริทึมที่ซับซ้อนมากขึ้นคุณสามารถค้นหา " เทคนิคการสรุปทั่วไปรูปหลายเหลี่ยม " แม้ว่าเงื่อนไขแรกของคุณ (คะแนนใน A อยู่ใน B) หมายถึงการดำเนินการปรับขนาดเพิ่มเติมบางอย่าง


@Suresh: ผมค่อนข้างมั่นใจว่าปัจจุบัน 4 upvotes มีการโปร่งใสไม่ได้สำหรับ (เล็กน้อยเกือบ) อัลกอริทึม :)
Marzio De Biasi

1
ปัญหานี้เกิดจากปัญหาเดียวกับอัลกอริทึม Ramer-Douglas-Peucker: ผลลัพธ์ไม่ได้รับประกันว่าจะเป็นรูปหลายเหลี่ยมอย่างง่าย!
Jeffε

1
@Jeffe: คุณขวา แต่ (ไกลจากที่ดีที่สุดถ้ารูปหลายเหลี่ยมที่มีความซับซ้อน) หนึ่งสามารถหลีกเลี่ยง simplifications ที่นำไปสู่ความขัดแย้ง ในตอนท้ายหากมีจุดอื่น ๆ ที่ต้องลบออก แต่ไม่สามารถหลีกเลี่ยงรูปหลายเหลี่ยมที่ไม่ซับซ้อนให้ใช้วิธีการแก้ไขข้อขัดแย้ง (ตัวอย่างเช่นคำนวณจุดตัดกันและกำจัด "หลุม" ทั้งหมด) อย่างไรก็ตามฉันต้องการเห็นตัวอย่างจริงจาก OP
Marzio De Biasi

1
@MarzioDeBiasi นั่นอาจใช้ได้ แต่มันอาจจะไม่ ฉันคิดว่าเป็นไปได้สำหรับทุกความเรียบง่ายที่คุณอธิบายเพื่อทำให้เกิดการแยกตัวเอง และ "การทิ้งลูป" สามารถทำให้สิ่งเลวร้ายลงได้ไม่ดีขึ้น นี่อาจเป็นทางออกที่ดีในทางปฏิบัติ แต่จำไว้ว่าเราอยู่ที่ไหน!
Jeffε

ขอบคุณ Marzio อย่างน้อยตอนนี้ฉันรู้ว่าปัญหาเหล่านี้เรียกว่าอะไรในตอนนี้! น่าเศร้าที่โซลูชันที่คุณให้ไว้คือ (3) และ (4) อยู่ในแนวทางแก้ไขของฉันและ (4) มีปัญหากับมัน Elipses ที่ยืดออกมากและมีปลายแหลมที่มีมุมประมาณ 30 องศาและน้อยกว่านั้นจะเป็นการละเมิดข้อกำหนดได้อย่างง่ายดาย (1)
Thirlan

6

ฉันเขียนกระดาษนานมาแล้วที่มีรายละเอียดอัลกอริทึมเชิงเส้นเวลาสำหรับการค้นหาสามเหลี่ยมพื้นที่ที่เล็กที่สุดล้อมรอบชุดจุด (หรือรูปหลายเหลี่ยม):

J. O'Rourke, Alok Aggarwal, Sanjeev Maddila, Michael Baldwin, "อัลกอริทึมที่ดีที่สุดสำหรับการค้นหาสามเหลี่ยมล้อมรอบที่น้อยที่สุด" J. Algorithms , 1986, 7 : 258--269 ลิงค์

งานของเราตามด้วยอัลกอริทึมทั่วไป:

"พื้นที่ขั้นต่ำที่ จำกัด รูปหลายเหลี่ยม" Alok Aggarwal, JS Chang และ Chee K. Yap, คอมพิวเตอร์ที่มองเห็น , เล่ม 1, หมายเลข 2 (1985), 112-117 ลิงค์

คุณสามารถใช้ Google Scholar เพื่อติดตามเอกสารในภายหลังที่อ้างถึงสิ่งเหล่านี้เพื่อค้นหาการปรับปรุงและงานที่เกี่ยวข้อง

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