ขอบคุณคำแนะนำของ j_random_hacker ฉันได้พบวิธีแก้ปัญหา Vertex Cover เพื่อแก้ไขปัญหา Grid:
เราทำ-by-ตารางของ 3-by-3 blocks คือ-by-ตารางที่มีจุดสั่งซื้อเป็นคอลัมน์และขอบสั่งแถว\} เราจะสร้างรูปสี่เหลี่ยมในตารางนี้ (ภาพวาดด้านล่างจะช่วยให้เข้าใจรูปสี่เหลี่ยมต่าง ๆ ที่ใช้)| V | 3 | E | 3 | V | { v 1 , … , v N 1 } { e 1 , … , e N 2 }|E||V|3|E|3|V|{v1,…,vN1}{e1,…,eN2}
สำหรับแต่ละจุดยอดเราสร้างสี่เหลี่ยมผืนผ้าประเภท 1 ซึ่งครอบคลุมคอลัมน์กลางของคอลัมน์ของบล็อกที่สอดคล้องกับจุดสุดยอดดังนั้นเราจึงมีรูปสี่เหลี่ยมผืนผ้าประเภท 1|V|
แต่ละบล็อกตรงกับคู่ที่ไม่ซ้ำกัน , กับสำหรับแต่ละบล็อกเราเพิ่มสี่เหลี่ยมประเภท 2:e i = ( v a , v b )(ei,vj)ei=(va,vb)
- ถ้าหรือนี่คือรูปสี่เหลี่ยมผืนผ้าขนาด 3 คูณ 3 ที่ครอบคลุมทั้งบล็อกb < jj<ab<j
- ถ้า (resp. ) นี่คือสี่เหลี่ยม 3-by-1 ที่ครอบคลุมของคอลัมน์ซ้าย (resp. ขวา) ของบล็อกj = bj=aj=b
- ถ้านี่คือสี่เหลี่ยม 1-by-3 ซึ่งครอบคลุมแถวด้านบนของบล็อกa<j<b
ดังนั้นเราจึงมีรูปสี่เหลี่ยมผืนผ้าของประเภท 2 สี่เหลี่ยมเหล่านั้นจะเป็นข้อบังคับในการเลือกเนื่องจากแต่ละรูปแบบจะเป็นมุมปิดด้านบน (หรือมุมบนขวา) ของบล็อกที่อยู่ด้านบนเท่านั้น|E||V|
ดังที่เราได้กล่าวว่าขอบแต่ละเส้นตรงกับแถวโดยมีบล็อกสองบล็อก (เรียกว่าบล็อกเอนด์) ที่สอดคล้องกับจุดสิ้นสุดของจุดยอดและตอนนี้เรามีรูปสี่เหลี่ยมผืนผ้าประเภท 3:(ei,va)(ei,vb)
- สำหรับ endblock (resp. ( e i , v b ) ) เรามีสี่เหลี่ยมผืนผ้า 1 ต่อ 2 ที่ครอบคลุมมุมบนขวา (resp. บนซ้าย) ของ endblock(ei,va)(ei,vb)
เรามีรูปสี่เหลี่ยมผืนผ้าประเภท 3 และอีกครั้งเนื่องจากเป็นหน้าที่ครอบคลุมเฉพาะมุมบนขวา (หากเป็น endblock แรก) หรือมุมบนซ้าย (หากเป็น endblock ตัวที่สอง) ที่อยู่ในนั้น2|E|
ทีนี้สำหรับแต่ละขอบเราสร้างรูปสี่เหลี่ยมผืนผ้าของ type 4 ระหว่าง endblocks เรามีสอง rectangles สำหรับแถวที่สอง:
- หนึ่งไปจากจัตุรัสกลางของบล็อกแรกไปที่จัตุรัสกลางซ้ายของบล็อกที่สอง
- คนหนึ่งเดินจากจัตุรัสกลางขวาของบล็อกแรกไปยังจัตุรัสกลางของบล็อกที่สอง
- และสี่เหลี่ยมสองอันเดียวกันสำหรับแถวที่สาม
เรามีรูปสี่เหลี่ยมผืนผ้าของแบบ 4 นั้นไม่ได้บังคับทั้งหมด4|E|
ดังนั้นตอนนี้เพื่อครอบคลุมกริด:
- |E|(|V|+2)|V|+4|E|
เพื่อครอบคลุมสำหรับขอบที่กำหนดส่วนระหว่าง edge endblock ที่ยังไม่ครอบคลุม (แถวที่สองและสามของแถวของบล็อก) เราสามารถใช้:
- สี่เหลี่ยมทั้งสี่ประเภท 4
- สี่เหลี่ยมผืนผ้าหนึ่งประเภท 1 และสี่เหลี่ยมผืนผ้าสองประเภท 4
โปรดทราบว่าในกรณีใด ๆ เราต้องมีอย่างน้อยสองรูปสี่เหลี่ยมของประเภท 4
|E|(|V|+4)+k
| E| ( | V| +6)+ | V|9 | V| | E|
| E|3 | V|| V| +4 | E|3 | E| +k