เหตุใดปัญหา NP-complete จึงแตกต่างกันในแง่ของการประมาณของพวกเขา


22

ฉันอยากเริ่มคำถามด้วยการบอกว่าฉันเป็นโปรแกรมเมอร์และฉันไม่มีพื้นฐานด้านทฤษฎีความซับซ้อนมากมาย

สิ่งหนึ่งที่ฉันสังเกตเห็นคือในขณะที่ปัญหาหลายอย่างเป็นปัญหาแบบ NP- เมื่อขยายไปสู่ปัญหาการเพิ่มประสิทธิภาพ

ตัวอย่างที่ดีคือ TSP ถึงแม้ว่า TSP ทุกประเภทจะมีปัญหา NP-complete แต่ปัญหาการปรับให้เหมาะสมที่ตรงกันนั้นง่ายขึ้นและง่ายขึ้นในการประมาณค่าด้วยการทำให้เรียบง่ายต่อเนื่อง กรณีทั่วไปคือ NPO-complete, กรณีเมทริกคือ APX-complete, และกรณี Euclidean มี PTAS จริง

นี่ดูเหมือนจะขัดกับฉันและฉันก็สงสัยว่ามันมีเหตุผลไหม


2
หากคุณต้องการที่จะอ่านขึ้นบนพื้นฐานที่เห็นคำถามอ้างอิงของเรา สำหรับคำถามของคุณคุณจะเห็นความแตกต่างระหว่างอ่อนและขอปัญหา NP-สมบูรณ์
Raphael

คำตอบ:


14

เหตุผลหนึ่งที่เราเห็นความซับซ้อนการประมาณที่แตกต่างกันสำหรับปัญหา NP-complete คือเงื่อนไขที่จำเป็นสำหรับ NP-complete เป็นมาตรการหยาบที่ซับซ้อนมากของความซับซ้อนของปัญหา คุณอาจคุ้นเคยกับคำนิยามพื้นฐานของปัญหากำลังทำปัญหา NP:Π

  1. Πอยู่ใน NP และ
  2. สำหรับปัญหาอื่น ๆใน NP เราสามารถเปลี่ยนอินสแตนซ์ของเป็นอินสแตนซ์ของในเวลาพหุนามว่าคือใช่ - อินสแตนซ์ของถ้าหากเป็นใช่ - อินสแตนซ์ของนΞxΞYΠYΠxΞ

พิจารณาเงื่อนไขที่ 2: ทั้งหมดที่จำเป็นคือเราสามารถนำและแปลงให้เป็นที่รักษาคำตอบ "single-bit" ใช่ / ไม่ใช่ ตัวอย่างเช่นไม่มีเงื่อนไขเกี่ยวกับขนาดสัมพัทธ์ของพยานต่อใช่หรือไม่ใช่ (กล่าวคือขนาดของโซลูชันในบริบทการปรับให้เหมาะสม) ดังนั้นการวัดเพียงอย่างเดียวที่ใช้คือขนาดรวมของอินพุตซึ่งให้สภาพที่อ่อนแอมากกับขนาดของโซลูชัน ดังนั้นก็สวย "ง่าย" ที่จะเปิดเป็น\xYΞΠ

เราสามารถเห็นความแตกต่างของปัญหาที่เกิดขึ้นกับ NP ได้โดยดูที่ความซับซ้อนของอัลกอริธึมง่ายๆ -Coloring มีแรงเดรัจฉาน (โดยที่คือขนาดอินพุต) สำหรับ -Dominating ชุดวิธีการบังคับเดรัจฉานใช้เวลา{k}) นี่คืออัลกอริธึมที่ดีที่สุดที่เรามี -Vertex Cover แต่มีอัลกอริธึมง่ายมาก(เลือกขอบสาขาที่ปลายทางที่จะรวมทำเครื่องหมายครอบคลุมทั้งหมดไปเรื่อย ๆ จนกว่าคุณจะไม่มีขอบไม่มีเครื่องหมายหรือคุณกด งบประมาณของคุณเป็นkO(kn)nkO(nk)kO(2kn)kและ bactrack) ภายใต้การลดพหุนามแบบหลายต่อหลายครั้ง (การลด Karp คือสิ่งที่เรากำลังทำในเงื่อนไขที่ 2 ด้านบน) ปัญหาเหล่านี้เทียบเท่ากัน

เมื่อเราเริ่มที่จะเข้าใกล้ความซับซ้อนด้วยเครื่องมือที่ละเอียดอ่อนกว่าเล็กน้อย (ความซับซ้อนโดยประมาณ, ความซับซ้อนของพารามิเตอร์, อื่น ๆ ที่ฉันนึกไม่ออก), การลดลงที่เราใช้จะเข้มงวดมากขึ้นหรือค่อนข้างอ่อนไหวต่อโครงสร้างของโซลูชันและ ความแตกต่างเริ่มปรากฏ; -Vertex Cover (ตามที่ Yuval กล่าว) มีการประมาณแบบง่าย ๆ 2 แบบ (แต่ไม่มี FPTAS ยกเว้นบางคลาสที่ซับซ้อนซับซ้อนล่มสลาย), -Dominating Set มี - อัลกอริทึมการประมาณ (แต่ไม่มี - การประมาณค่าสำหรับ ) และการประมาณค่านั้นไม่สมเหตุสมผลเลยสำหรับรุ่นต่อไปของ cololoringk ( 1 + log n ) ( c log n ) c > 0 kkk(1+logn)(clogn)c>0k


13

วิธีหนึ่งในการพิจารณาความแตกต่างระหว่างเวอร์ชันการตัดสินใจและเวอร์ชันการปรับให้เหมาะสมคือการพิจารณาเวอร์ชันการปรับให้เหมาะสมต่างกันของเวอร์ชันการตัดสินใจเดียวกัน ยกตัวอย่างเช่นปัญหา MAX-CLIQUE ซึ่งยากมากที่จะประมาณในแง่ของพารามิเตอร์ปกติ - ขนาดของกลุ่ม หากเราเปลี่ยนพารามิเตอร์การปรับให้เหมาะสมเป็นลอการิทึมของขนาดของกลุ่มเราได้รับปัญหากับอัลกอริทึมการประมาณถ้าเราเปลี่ยนพารามิเตอร์การเพิ่มประสิทธิภาพในการ1 / 2 + k / nที่kคือขนาดของก๊กแล้วเราจะได้รับO ( 1 )O(เข้าสู่ระบบn)1/2+k/nkO(1) อัลกอริทึมการประมาณ

ตัวอย่างเหล่านี้ไม่ได้ถูกสร้างขึ้นอย่างสมบูรณ์ ปัญหาของ MAX-INDEPENDENT-SET (เทียบเท่ากับ MAX-CLIQUE) และ MIN-VERTEX-COVER นั้นมีความสัมพันธ์กันอย่างใกล้ชิด - ส่วนประกอบของชุดที่เป็นอิสระนั้นเป็นฝาครอบจุดยอด แต่ในขณะที่อดีตเป็นเรื่องยากที่จะประมาณหลังมีประมาณ 2 ง่าย

การลดการแสดงความแข็งของ NP ของปัญหาที่กำหนดบางครั้งสามารถใช้เพื่อแสดงความแข็งของการประมาณค่าได้เช่นกัน แต่ก็ไม่ได้เป็นเช่นนั้นเสมอไป - ขึ้นอยู่กับการลดลง ตัวอย่างเช่นการลดจาก MAX-INDEPENDENT-SET เป็น MIN-VERTEX-COVER ไม่ได้หมายความถึงความแข็งของการประมาณของปัญหาหลังซึ่งง่ายกว่าที่จะประมาณกว่าเดิม

โดยสรุปแล้วความแข็งของ NP เป็นเพียงปัญหาอย่างหนึ่ง ความแข็งของการประมาณนั้นแตกต่างกันและขึ้นอยู่กับความคิดของการประมาณ


คุณเห็นด้วยกับข้อความที่ใช้งานง่ายของ Luke Mathieson หรือไม่ว่าการลดลงของคาร์ปมีความ "ละเอียดอ่อน" น้อยกว่าการลดลงที่ใช้สำหรับชั้นเรียนที่ซับซ้อนโดยประมาณหรือไม่? ถ้าไม่คุณมีตัวอย่างที่ดี (อาจเป็นในคลาสความซับซ้อนอื่น ๆ เช่น EXP) กับแนวคิดนี้หรือไม่
GregRos

นี่ไม่ได้เป็นคำสั่งที่ใช้งานง่ายทั้งหมด สมมติว่าคุณสามารถพิสูจน์ได้ว่าในบางกรณีการลดคาร์ปมีอยู่ แต่การลดการอนุรักษ์โดยประมาณไม่ได้ นี้เกิดขึ้นตัวอย่างเช่นในกรณีของชุดที่เป็นอิสระและฝาครอบจุดสุดยอด: มีการลดลงคาร์พ แต่ไม่ลดลงประมาณรักษาเว้นแต่P = N P Pยังไม่มีข้อความPP=ยังไม่มีข้อความP
Yuval Filmus

5

ในฐานะที่เป็นวิธีการที่ใช้งานง่ายให้พิจารณาว่าการสร้างอินสแตนซ์ของปัญหาที่สมบูรณ์แบบ NP นั้นไม่ได้ยากเหมือนกรณีทั่วไป ความพึงพอใจของไบนารี (SAT) เป็น NP-complete แต่มันเป็นเรื่องง่ายที่จะหาคำตอบของ A v B v C v D v ... อัลกอริธึมที่ซับซ้อนนั้นผูกกับกรณีที่แย่ที่สุดไม่ใช่กรณีทั่วไปหรือแม้แต่ 90% ของคดี .

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

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

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


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