อ่าน 7 นาที
ฝาครอบเวอร์เท็กซ์
ใน ทฤษฎีกราฟ กลุ่ม จุดยอด ที่ ประกอบด้วย จุด ปลายอย่างน้อยหนึ่งจุดของทุก ขอบ ของกราฟ (บางครั้งเรียกว่า กลุ่มจุดเชื่อมต่อ )
ฝาครอบเวอร์เท็กซ์

ในทฤษฎีกราฟกลุ่มจุดยอดที่ ประกอบด้วย จุดปลายอย่างน้อยหนึ่งจุดของทุกขอบ ของกราฟ (บางครั้งเรียกว่ากลุ่มจุดเชื่อมต่อ )
ในวิทยาการคอมพิวเตอร์ปัญหาการหาชุดคลุมจุดยอดขั้นต่ำเป็นปัญหาการหาค่าเหมาะสม ที่สุดแบบคลาสสิก มันเป็น ปัญหา NP-hardดังนั้นจึงไม่สามารถแก้ได้ด้วยอัลกอริทึมแบบใช้เวลาพหุนามหากP ≠ NP ยิ่งไปกว่านั้น การประมาณค่าก็ ยาก – ไม่สามารถประมาณค่าได้ถึงปัจจัยที่เล็กกว่า 2 หากสมมติฐานเกมที่ไม่ซ้ำกันเป็นจริง ในทางกลับกัน มันมีการประมาณค่าแบบง่ายๆ หลายวิธีด้วยปัจจัย 2 มันเป็นตัวอย่างทั่วไปของปัญหาการหาค่าเหมาะสมที่สุดแบบ NP-hard ที่มีอัลกอริทึมการประมาณค่า เวอร์ชันการตัดสินใจของมัน ปัญหา ชุดคลุมจุดยอดเป็นหนึ่งใน21 ปัญหา NP-complete ของ Karpและดังนั้นจึงเป็น ปัญหา NP-complete แบบคลาสสิก ในทฤษฎีความซับซ้อนของการคำนวณนอกจากนี้ ปัญหาชุดคลุมจุดยอดสามารถแก้ไขได้ด้วยพารามิเตอร์คงที่และเป็นปัญหาหลักในทฤษฎีความซับซ้อนแบบพารามิเตอร์
ปัญหาการครอบคลุมจุดยอดขั้นต่ำสามารถกำหนดได้เป็นโปรแกรมเชิงเส้นครึ่งปริพันธ์ ซึ่ง โปรแกรมเชิงเส้นคู่ขนานของ มันคือปัญหาการจับคู่สูงสุด
ปัญหาการคลุมจุดยอดได้รับการขยายไปสู่ไฮเปอร์กราฟแล้ว ดูได้ที่การคลุมจุดยอดในไฮเปอร์กราฟ
คำนิยาม


ในทางทฤษฎีแล้ว กลุ่มจุดยอดที่ปกคลุมกราฟแบบไม่มีทิศทางคือเซตย่อยของโดยที่นั่นคือ เป็นเซตของจุดยอดที่ทุกขอบมีจุดปลายอย่างน้อยหนึ่งจุดอยู่ในกลุ่มจุดยอดที่ปกคลุม นั้น เซตดังกล่าวเรียกว่าเซตที่ปกคลุมขอบของภาพด้านบนแสดงตัวอย่างกลุ่มจุดยอดที่ปกคลุมสองตัวอย่าง โดยบางกลุ่มจุดยอดถูกทำเครื่องหมายด้วยสีแดง
การปกคลุมจุดยอดขั้นต่ำ (Minimum Vertex Cover)คือการปกคลุมจุดยอดที่มีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้ ตัวเลขการปกคลุมจุดยอดคือขนาดของการปกคลุมจุดยอดขั้นต่ำ นั่นคือรูปด้านล่างแสดงตัวอย่างของการปกคลุมจุดยอดขั้นต่ำในกราฟก่อนหน้านี้
ตัวอย่าง
- เซตของจุดยอดทั้งหมดเรียกว่าเวอร์เท็กซ์คัฟเวอร์ (vertex cover)
- จุดปลายของการจับคู่สูงสุด ใดๆ จะก่อให้เกิดกลุ่มจุดยอด (vertex cover)
- กราฟสองส่วนสมบูรณ์ มีชุดปกคลุมจุดยอดขั้นต่ำที่มีขนาดเท่ากับ
คุณสมบัติ
- เซตของจุดยอดจะเป็นเซตปกคลุมจุดยอดก็ต่อเมื่อเซตส่วนเติมเต็ม ของเซตนั้น เป็นเซตอิสระ
- ดังนั้น จำนวนจุดยอดของกราฟจึงเท่ากับจำนวนการครอบคลุมจุดยอดขั้นต่ำบวกกับขนาดของเซตอิสระสูงสุด[ 1 ]
ปัญหาการคำนวณ
ปัญหาการหาชุดจุดยอดปกคลุมขั้นต่ำ (Minimum Vertex Cover Problem)คือปัญหาการหาค่าที่เหมาะสม ที่สุด (optimization problem ) ในการค้นหาชุดจุดยอดปกคลุมที่เล็กที่สุดในกราฟที่กำหนดให้
- ตัวอย่าง: กราฟ
- ผลลัพธ์: จำนวนที่เล็กที่สุดที่ทำให้มีกลุ่มจุดยอดปกคลุมที่มีขนาดเท่ากับ
หากระบุปัญหาในรูปแบบของปัญหาการตัดสินใจจะเรียกว่าปัญหาการครอบคลุมจุดยอด (vertex cover problem )
- ตัวอย่าง: กราฟและจำนวนเต็มบวก
- คำถาม: มีเวอร์เท็กซ์คัฟเวอร์ที่มีขนาดไม่เกินหรือไม่?
ปัญหา ทั้งสองนี้เทียบเท่ากันภายใต้การลดรูปในเวลาพหุนามโดยใช้การค้นหาแบบไบนารีปัญหาการครอบคลุมจุดยอดเป็น ปัญหา NP-complete : มันเป็นหนึ่งใน21 ปัญหา NP-complete ของคาร์ปมักถูกใช้ในทฤษฎีความซับซ้อนของการคำนวณเป็นจุดเริ่มต้นสำหรับการพิสูจน์ ความยากแบบ NP
สูตร ILP
สมมติว่าจุดยอดแต่ละจุดมีค่าใช้จ่ายที่เกี่ยวข้องเท่ากับปัญหาการครอบคลุมจุดยอดขั้นต่ำ (แบบถ่วงน้ำหนัก) สามารถกำหนดเป็นโปรแกรมเชิงเส้นจำนวนเต็ม (ILP) ดังต่อไปนี้ [ 2 ]
ลดให้น้อยที่สุด (ลดต้นทุนรวมให้เหลือน้อยที่สุด) ขึ้นอยู่กับ สำหรับทุกคน (ปิดขอบทุกด้านของกราฟ) สำหรับทุกคน (จุดยอดทุกจุดจะอยู่ในกลุ่มจุดยอดที่ถูกปกคลุมไว้หรือไม่ก็ได้)
ปัญหาการเขียนโปรแกรมเชิงเส้นจำนวนเต็ม (ILP) นี้จัดอยู่ในกลุ่ม ILP ทั่วไปสำหรับปัญหาการครอบคลุม ช่องว่าง ความสมบูรณ์ของ ILP นี้คือดังนั้นการผ่อนคลาย (โดยอนุญาตให้ตัวแปรแต่ละตัวอยู่ในช่วงตั้งแต่ 0 ถึง 1 แทนที่จะกำหนดให้ตัวแปรต้องเป็น 0 หรือ 1 เท่านั้น) ทำให้ได้อัลกอริทึมการประมาณ ค่าตัวประกอบ สำหรับปัญหาการครอบคลุมจุดยอดขั้นต่ำ ยิ่งไปกว่านั้น การผ่อนคลายการเขียนโปรแกรมเชิงเส้นของ ILP นั้นเป็นแบบครึ่งจำนวนเต็มนั่นคือ มีคำตอบที่เหมาะสมที่สุดซึ่งแต่ละรายการเป็น 0, 1/2 หรือ 1 สามารถหาการครอบคลุมจุดยอดโดยประมาณ 2 เท่าได้จากคำตอบเศษส่วนนี้โดยการเลือกเซตย่อยของจุดยอดที่มีตัวแปรไม่เป็นศูนย์
การประเมินที่แม่นยำ
รูป แบบ การตัดสินใจของปัญหาการครอบคลุมจุดยอดเป็นปัญหาNP-completeซึ่งหมายความว่าไม่น่าจะมีอัลกอริทึมที่มีประสิทธิภาพในการแก้ปัญหานี้ได้อย่างแม่นยำสำหรับกราฟใดๆ ความเป็น NP-complete สามารถพิสูจน์ได้โดยการลดรูปจาก3-satisfiabilityหรือตามที่ Karp ทำ โดยการลดรูปจากปัญหาคลิก ปัญหาการครอบคลุมจุดยอดยังคงเป็น NP-complete แม้ในกราฟลูกบาศก์[ 3 ]และแม้ในกราฟระนาบที่มีดีกรีสูงสุด 3 [ 4 ]
สำหรับกราฟสองส่วนความเท่าเทียมกันระหว่างการครอบคลุมจุดยอดและการจับคู่สูงสุดที่อธิบายโดยทฤษฎีบทของ Kőnigทำให้สามารถแก้ปัญหาการครอบคลุมจุดยอดของกราฟสองส่วนได้ในเวลาพหุนาม
สำหรับกราฟต้นไม้อัลกอริทึมจะค้นหาชุดคลุมจุดยอดที่เล็กที่สุดได้ในเวลาพหุนาม โดยการค้นหาใบแรกในต้นไม้และเพิ่มผู้ปกครองของใบนั้นลงในชุดคลุมจุดยอดที่เล็กที่สุด จากนั้นลบใบและผู้ปกครอง รวมถึงขอบทั้งหมดที่เกี่ยวข้อง และทำซ้ำไปเรื่อยๆ จนกว่าจะไม่มีขอบเหลืออยู่ในต้นไม้
ความสามารถในการจัดการพารามิเตอร์คงที่
อั ลกอริทึม การค้นหาแบบละเอียดสามารถแก้ปัญหาได้ในเวลา 2 k n O (1)โดยที่kคือขนาดของการครอบคลุมจุดยอด ดังนั้นการครอบคลุมจุดยอดจึงสามารถจัดการได้ด้วยพารามิเตอร์คงที่และหากเราสนใจเฉพาะk ขนาดเล็ก เราสามารถแก้ปัญหาได้ในเวลาพหุนามเทคนิคอัลกอริทึมหนึ่งที่ใช้ได้ผลในที่นี้เรียกว่าอัลกอริทึมต้นไม้ค้นหาแบบจำกัดและแนวคิดของมันคือการเลือกจุดยอดบางจุดซ้ำๆ และแยกสาขาแบบเรียกซ้ำ โดยมีสองกรณีในแต่ละขั้นตอน: วางจุดยอดปัจจุบันหรือเพื่อนบ้านทั้งหมดลงในจุดยอดที่ครอบคลุม อัลกอริทึมสำหรับการแก้ปัญหาการครอบคลุมจุดยอดที่บรรลุการพึ่งพาแบบเชิงเส้นกำกับที่ดีที่สุดกับพารามิเตอร์จะทำงานในเวลา[ 5 ] ค่า klam ของขอบเขตเวลานี้ (การประมาณค่าพารามิเตอร์ที่ใหญ่ที่สุดที่สามารถแก้ไขได้ในเวลาที่เหมาะสม) อยู่ที่ประมาณ 190 นั่นคือ เว้นแต่จะพบการปรับปรุงอัลกอริทึมเพิ่มเติม อัลกอริทึมนี้เหมาะสำหรับกรณีที่มีจำนวนจุดยอดที่ครอบคลุม 190 หรือน้อยกว่าเท่านั้น ภายใต้สมมติฐานเชิงทฤษฎีความซับซ้อนที่สมเหตุสมผล กล่าวคือสมมติฐานเวลาแบบเลขชี้กำลังเวลาในการทำงานไม่สามารถปรับปรุงให้เป็น 2 o ( k ) ได้ แม้ว่าจะเป็นก็ตาม
อย่างไรก็ตาม สำหรับกราฟระนาบและโดยทั่วไปแล้ว สำหรับกราฟที่ไม่รวมกราฟคงที่บางกราฟเป็นไมเนอร์สามารถหา การครอบคลุมจุดยอดที่มีขนาด k ได้ในเวลา นั่นคือ ปัญหาสามารถจัดการได้ในเวลาต่ำกว่าเลขชี้กำลังด้วยพารามิเตอร์คงที่[ 6 ]อัลกอริทึมนี้ถือว่าเหมาะสมที่สุดอีกครั้ง ในแง่ที่ว่า ภายใต้สมมติฐานเวลาเลขชี้กำลังไม่มีอัลกอริทึมใดที่สามารถแก้ปัญหาการครอบคลุมจุดยอดบนกราฟระนาบได้ในเวลา[ 7 ]
การประเมินโดยประมาณ
เราสามารถหา ค่าประมาณตัวประกอบ 2 ได้ โดยการนำ จุดปลาย ทั้งสองของขอบไปใส่ไว้ในกลุ่มจุดยอดซ้ำๆ แล้วจึงนำจุดปลายเหล่านั้นออกจากกราฟ กล่าวอีกนัยหนึ่งคือ เราหาการจับคู่สูงสุดMด้วยอัลกอริทึมแบบโลภ (greedy algorithm) และสร้างกลุ่มจุดยอดCที่ประกอบด้วยจุดปลายทั้งหมดของขอบในMในรูปต่อไปนี้ การจับคู่สูงสุดMถูกทำเครื่องหมายด้วยสีแดง และกลุ่มจุดยอดCถูกทำเครื่องหมายด้วยสีน้ำเงิน
เซตCที่สร้างขึ้นในลักษณะนี้คือเซตปกคลุมจุดยอด: สมมติว่าขอบeไม่ถูกปกคลุมโดยCดังนั้นM ∪ { e } คือการจับคู่ และe ∉ Mซึ่งขัดแย้งกับสมมติฐานที่ว่าMเป็นเซตสูงสุด ยิ่งไปกว่านั้น ถ้าe = { u , v } ∈ Mแล้ว เซตปกคลุมจุดยอดใดๆ – รวมถึงเซตปกคลุมจุดยอดที่เหมาะสมที่สุด – จะต้องมีuหรือv (หรือทั้งสองอย่าง) มิฉะนั้น ขอบeจะไม่ถูกปกคลุม กล่าวคือ เซตปกคลุมที่เหมาะสมที่สุดจะต้องมีจุดปลายอย่างน้อยหนึ่งจุดของแต่ละขอบในMโดยรวมแล้ว เซตCมีขนาดใหญ่กว่าเซตปกคลุมจุดยอดที่เหมาะสมที่สุดไม่เกิน 2 เท่า
อัลกอริทึมง่ายๆ นี้ถูกค้นพบโดยอิสระโดย Fanica Gavril และMihalis Yannakakis [ 8 ]
เทคนิคที่ซับซ้อนกว่าแสดงให้เห็นว่ามีอัลกอริธึมการประมาณค่าที่มีปัจจัยการประมาณค่าที่ดีกว่าเล็กน้อย ตัวอย่างเช่นทราบ อัลกอริธึมการประมาณค่าที่มีปัจจัยการประมาณค่า [ 9 ]ปัญหาสามารถประมาณค่าได้ด้วยปัจจัยการประมาณค่าในกราฟหนาแน่น[ 10 ]
ความไม่สามารถประมาณค่าได้
ไม่มีอัลกอริทึมการประมาณค่าคงที่ ที่ดีกว่าอัลกอริ ทึมข้างต้น ปัญหาการครอบคลุมจุดยอดขั้นต่ำเป็นปัญหาAPX-completeนั่นคือ ไม่สามารถประมาณค่าได้ดีอย่างไม่จำกัด เว้นแต่ P = NPโดยใช้เทคนิคจากทฤษฎีบทPCP DinurและSafraพิสูจน์ในปี 2005 ว่าการครอบคลุมจุดยอดขั้นต่ำไม่สามารถประมาณค่าได้ภายในปัจจัย 1.3606 สำหรับระดับจุดยอดที่ใหญ่พอสมควร เว้นแต่P = NP [ 11 ] ต่อมา ปัจจัยได้รับการปรับปรุงเป็นสำหรับทุก[ 12 ] ยิ่งไปกว่านั้น หากสมมติฐานเกมที่ไม่ซ้ำกัน เป็นจริง การครอบคลุมจุดยอดขั้นต่ำไม่สามารถประมาณค่าได้ภายในปัจจัยคงที่ใด ๆ ที่ดีกว่า2 [ 13 ]
แม้ว่าการหาชุดปกคลุมจุดยอดที่มีขนาดเล็กที่สุดจะเทียบเท่ากับการหาชุดอิสระที่มีขนาดใหญ่ที่สุด ดังที่ได้อธิบายไว้ข้างต้น แต่ปัญหาทั้งสองนี้ไม่เทียบเท่ากันในแง่ของการรักษาค่าประมาณ: ปัญหาชุดอิสระไม่มีการประมาณค่าคงที่เว้นแต่ว่า P = NP
รหัสเทียม
อัลกอริทึมการประมาณค่า: [ 14 ] [ 15 ]
การประมาณค่า- จุดยอด- ครอบคลุม( G ) C = ∅ E ' = G . Eในขณะที่E ' ≠ ∅ : ให้( u , v ) เป็นขอบใดๆของE ' C = C ∪ { u , v } ลบขอบทุกขอบออกจากE ' ที่เชื่อมต่อกับu หรือvส่งคืนCดูเพิ่มเติม
หมายเหตุ
- ^ กั ลไล 1959
- ↑วาซิรานี 2003 , หน้า 121–122
- ↑แกรีย์, จอห์นสัน และสต็อคเมเยอร์ 1974
- ↑แกรีย์แอนด์จอห์นสัน 1977 ; Garey & Johnson 1979 , หน้า 190 และ 195.
- ↑เฉิน, คานจ์ และเซี่ย 2549
- ^เดอเมนและคณะ 2005
- ↑ฟลัม แอนด์ โกรเฮ (2549 , หน้า 437)
- ↑ Papadimitriou & Steiglitz 1998 , p. 432 กล่าวถึงทั้ง Gavril และ Yannakakisแกรีย์แอนด์จอห์นสัน 1979 , p. 134, อ้างอิงถึง กัฟริล.
- ^คาราคอสตาส 2009
- ^คาร์ปินสกีและเซลิคอฟสกี 1998
- ^ดินูร์และซาฟรา 2005
- ↑คต, มินเซอร์ & ซาฟรา 2017 ;ดีนูร์ และคณะ 2561 ;ค็อต มินเซอร์ และซาฟรา 2018
- ^ Khot & Regev 2008
- ^ Cormen, Thomas H. ; Leiserson, Charles E. ; Rivest, Ronald L. ; Stein, Clifford (2001) [1990]. "ส่วนที่ 35.1: ปัญหาการครอบคลุมจุดยอด". บทนำสู่อัลกอริธึม (ฉบับที่ 2). สำนักพิมพ์ MIT และ McGraw-Hill. หน้า 1024–1027 . ISBN 0-262-03293-7.
- ^ Chakrabarti, Amit (ฤดูหนาว 2005). "อัลกอริทึมการประมาณค่า: การครอบคลุมจุดยอด" (PDF) . วิทยาการคอมพิวเตอร์ 105.วิทยาลัยดาร์ทมัธ. สืบค้นเมื่อ21 กุมภาพันธ์ 2005 .
ลิงก์ภายนอก
- ไวส์สไตน์, เอริค ดับเบิลยู. "Vertex Cover" . MathWorld .
- ไวส์สไตน์, เอริค ดับเบิลยู. "การครอบคลุมจุดยอดขั้นต่ำ" . MathWorld .
- ไวส์สไตน์, เอริค ดับเบิลยู. "จำนวนปกคลุมจุดยอด" . MathWorld .
- จุดข้ามแม่น้ำ (และเลขอัลคูอิน) – Numberphile
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ฝาครอบเวอร์เท็กซ์
ใน ทฤษฎีกราฟ กลุ่ม จุดยอด ที่ ประกอบด้วย จุด ปลายอย่างน้อยหนึ่งจุดของทุก ขอบ ของกราฟ (บางครั้งเรียกว่า กลุ่มจุดเชื่อมต่อ )
คำนิยาม
ในทางทฤษฎีแล้ว กลุ่มจุดยอดที่ปกคลุมกราฟแบบไม่มีทิศทางคือเซตย่อยของโดยที่นั่นคือ เป็นเซตของจุดยอดที่ทุกขอบมีจุดปลายอย่างน้อยหนึ่งจุดอยู่ในกลุ่มจุดยอดที่ปกคลุม นั้น เซตดังกล่าวเรียกว่าเซตที่ ปกคลุม ขอบของภาพด้านบนแสดงตัวอย่างกลุ่มจุดยอดที่ปกคลุมสองตัวอย่าง...
ตัวอย่าง
เซตของจุดยอดทั้งหมดเรียกว่าเวอร์เท็กซ์คัฟเวอร์ (vertex cover) จุดปลายของ การจับคู่สูงสุด ใดๆ จะก่อให้เกิดกลุ่มจุดยอด (vertex cover) กราฟ สองส่วนสมบูรณ์ มีชุดปกคลุมจุดยอดขั้นต่ำที่มีขนาดเท่ากับ เค ม , n {\displaystyle K_{m,n}} τ ( เค ม , n ) = นาที { ม , n }...
คุณสมบัติ
เซตของจุดยอดจะเป็นเซตปกคลุมจุดยอดก็ต่อเมื่อ เซตส่วนเติมเต็ม ของเซตนั้น เป็นเซต อิสระ ดังนั้น จำนวนจุดยอดของกราฟจึงเท่ากับจำนวนการครอบคลุมจุดยอดขั้นต่ำบวกกับขนาดของเซตอิสระสูงสุด [ 1 ]