ปัญหาใดใน P ที่ตรวจสอบผลลัพธ์ได้ง่ายกว่าการค้นหา


52

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

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

  1. 3SUM:กำหนดหมายเลขป้อนค้นหา 3 ในจำนวนที่รวมเป็น 0 เท่าที่ฉันรู้อัลกอริทึมที่รู้จักกันเร็วที่สุดจะทำงานในเวลา และลำดับนี้ถือว่าเหมาะสมที่สุด ในทางกลับกันการตรวจสอบของโซลูชันนั้นเร็วกว่ามากเนื่องจากเราต้องทำเพียงแค่ตรวจสอบว่าตัวเลขที่พบ 3 ตัวนั้นรวมเป็น 0O ( n 2 - o ( 1 ) )nO(n2o(1))

  2. เส้นทางที่สั้นที่สุดของ All-Pairs: กำหนดกราฟที่มีน้ำหนักของขอบแล้วคำนวณเมทริกซ์ระยะทางของเส้นทางที่สั้นที่สุด เมื่อได้รับเมทริกซ์ดังกล่าวแล้วจะสามารถตรวจสอบได้เร็วขึ้นหรือไม่ว่าเป็นเมทริกซ์ระยะทางที่ถูกต้องมากกว่าการคำนวณใหม่อีกครั้งหรือไม่ ฉันเดาว่าคำตอบนั้นอาจจะใช่ แต่ก็ชัดเจนน้อยกว่าสำหรับ3SUM

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

คำถาม:สิ่งที่เป็นที่รู้จักเกี่ยวกับเรื่องนี้? นั่นคือเมื่อใดจะง่ายต่อการตรวจสอบการแก้ไขปัญหาในPกว่าการหาวิธีแก้


7
ฉันคิดว่าตัวอย่างจำนวนมากมาจากปัญหาที่ไม่สมบูรณ์ของ NP ที่ตกอยู่ใน P เมื่อเราแก้ไขพารามิเตอร์บางอย่าง ตัวอย่างเช่นการตรวจสอบว่ากราฟมีกลุ่มขนาดสำหรับค่าคงที่หรือไม่ การตรวจสอบต้องใช้เวลาเชิงเส้น แต่ถ้า P = NP ความซับซ้อนของปัญหาการค้นหา (พหุนาม) จะขึ้นอยู่กับk kkkk
Marzio De Biasi

16
เราสามารถตรวจสอบได้ว่ารายการของจำนวนเต็มเรียงลำดับด้วยการเปรียบเทียบแต่จะใช้การเปรียบเทียบเพื่อเรียงลำดับรายการที่ไม่เรียงลำดับ n - 1 Θ ( n บันทึกn )nn1Θ(nlogn)
โทมัส

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

3
"ในทางกลับกันการตรวจสอบของโซลูชันนั้นเร็วกว่ามากเนื่องจากเราต้องทำเพียงแค่ตรวจสอบว่าตัวเลขทั้งสามที่พบนั้นรวมเท่ากับ 0" - เราต้องตรวจสอบว่าตัวเลขที่พบ 3 ตัวนั้นเป็นส่วนหนึ่งของอินพุตหรือไม่
hvd

3
มีปัญหาอะไรบ้างที่เรารู้ว่าการตรวจสอบไม่ใช่เรื่องง่าย?
Raphael

คำตอบ:


24

เป็นที่ทราบกันว่าในกราฟ G และ tree T สามารถตรวจสอบได้ในเวลาเชิงเส้นว่า T เป็นต้นไม้ที่ครอบคลุมน้อยที่สุดของ G แต่เรายังไม่มีอัลกอริทึมเชิงเส้นเวลาที่กำหนดเพื่อคำนวณ MST แน่นอนว่าช่องว่างเล็ก ๆ (1 vs ) แต่มันยังอยู่ที่นั่น :))α(n)


4
อาจเป็นธรรมที่จะเพิ่มว่ามีอัลกอริทึมแบบสุ่มที่ทำงานในเวลาเชิงเส้นที่คาดไว้ (อัลกอริทึม Karger-Klein-Tarjan)
Sasho Nikolov

2
นอกจากนี้ในกรณีที่ทุกคนต้องการการเชื่อมโยงนี้เป็นเส้นตรงเวลาขั้นตอนวิธีการในการตรวจสอบ MST ง่ายฉันรู้: webhome.cs.uvic.ca/~val/Publications/Algorithmica-MSTverif.ps
Sasho Nikolov

20

บทความนี้แสดงให้เห็นว่ามีอัลกอริทึมการตรวจสอบสำหรับทั้ง YES และ NO สำหรับปัญหา 3 ปัญหา ได้แก่ Max flow, 3SUM และ APSP ซึ่งเร็วกว่าโดยปัจจัยพหุนามมากกว่าขอบเขตที่รู้จักสำหรับการคำนวณโซลูชันเอง

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


18

สำหรับปัญหาบางอย่างดูเหมือนจะไม่แตกต่างกัน โดยเฉพาะVassilevska Williams & Williamsแสดง:

  • สำหรับการคูณเมทริกซ์บูลีนการคำนวณผลิตภัณฑ์เมทริกซ์และการตรวจสอบเมทริกซ์ผลิตภัณฑ์เทียบเท่า subcubic หมายความว่าพวกเขาทั้งสองมีอัลกอริทึม subcubic เวลาหรือทั้งสองไม่ได้ทำ

  • สิ่งเดียวกันนี้เป็นจริงสำหรับการคำนวณและการตรวจสอบผลิตภัณฑ์เมทริกซ์ผ่านโครงสร้าง "Extended (min, +)" (ดูกระดาษสำหรับคำจำกัดความ แต่สิ่งนี้รวมถึงปัญหาธรรมชาติมากมาย)

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


2
ในทางตรงกันข้ามสำหรับการคูณเมทริกซ์ในเขตข้อมูลที่มีขนาดใหญ่พอมีอัลกอริทึมแบบสุ่มเวลากำลังสองสำหรับการตรวจสอบในขณะที่เวลาทำงานเร็วที่สุดสำหรับการคำนวณผลิตภัณฑ์คือ n ^ omega
Thatchaphol

2
@Thatchaphol: ใช่แม้ว่าหลายคนเชื่อว่าโอเมก้า = 2 ... นอกจากนี้ยังเป็นที่รู้จักกันอย่างกว้างขวางว่าการคูณเมทริกซ์บูลีน (เช่นการคำนวณเมทริกซ์ mult มากกว่าบูลีนและ - หรือกึ่งวงแหวน) มีลักษณะที่แตกต่างกว่าเมทริกซ์คูณ สนาม
Joshua Grochow

16
  • การตัดสินใจว่าค่าที่มีอยู่ในอาเรย์นั้นใช้เวลา (หรือถ้าเรียงลำดับอาเรย์)Ω ( บันทึกn )Ω(n)Ω(logn)

    การตรวจสอบว่าอาร์เรย์ที่มีค่าที่กำหนดในตำแหน่งที่ได้รับเป็นไปได้ในเวลา(1)O(1)

  • เรียงลำดับ (ในรูปแบบการเปรียบเทียบ) ใช้เวลาแต่ยืนยันว่าอาร์เรย์หรือรายการจะถูกจัดเรียงเป็นไปได้ในเวลา(n)O ( n )Ω(nlogn)O(n)


2
ที่คล้ายกัน: การกำหนดว่ามีองค์ประกอบที่ซ้ำกันในรูปแบบการเปรียบเทียบ แต่แน่นอนสามารถตรวจสอบได้ใน(1) O ( 1 )Ω(nlogn)O(1)
SamM

@SamM: คุณหมายถึงการยืนยันใน ? คุณได้รับอะไรอย่างแน่นอน ฉันรู้สึกว่าคุณกำลังทำการเปรียบเทียบที่ไม่เป็นธรรม O(n)
Mehrdad

@ Mehrdad จุดดี; หากคุณได้รับค่า (แทนที่จะเป็นดัชนี) จะเป็นเพื่อยืนยัน ฉันเห็นข้อโต้แย้งที่ดีว่านี่เป็นวิธีที่ดีกว่าในการดู Θ(n)
SamM

10

ผมคิดว่าหลาย ๆ ตัวอย่างมาจากปัญหา NP-สมบูรณ์ที่ตกอยู่ใน P เมื่อเราแก้ไขหนึ่งหรือมากกว่าหนึ่งพารามิเตอร์

ตัวอย่างเช่นการตรวจสอบว่ากราฟมีกลุ่มขนาดเป็น NP-complete ถ้าเป็นส่วนหนึ่งของอินพุตหรือไม่เวลาพหุนามแก้ได้ถ้าได้รับการแก้ไขk kkkk

สำหรับการแก้ไขใด ๆการตรวจสอบต้องใช้เวลาเชิงเส้น แต่ถ้าปัญหาค้นหา (พหุนาม) ขึ้นอยู่กับความซับซ้อน (k))P = N P k Ω ( n k ) )kP=NPkΩ(nk))

ตัวอย่างอื่น ๆ : การค้นหาเส้นทางแฮมิลโตเนียนที่มีความยาว , ระบายสีบนกราฟ treewidth ที่ล้อมรอบ, ...k


9

การตัดสินความเป็นอันดับหนึ่ง: ตัวแปรที่รู้จักกันเป็นอย่างดีของ AKS ดูเหมือนจะตัดสินใจแบบดั้งเดิมในเวลาในขณะที่ใบรับรอง Pratt แบบดั้งเดิมของรูปแบบดั้งเดิมแสดงถึงการตัดสินใจแบบดั้งเดิมในเวลา nondeterministic . ˜ O (n3)O~(n6)O~(n3)


ส่วนประกอบ (compositeness) นั้นง่ายต่อการเป็นพยาน!
Yonatan N

3

กระดาษโดย Abboud, et al เมื่อเร็ว ๆ นี้ได้รับการยอมรับจาก SODA 2016 แสดงว่าทรีมอร์ฟิซึ่มมอร์ฟิซึ่มไม่สามารถแก้ไขได้ในเวลาเว้นเสียแต่ว่าสมมติฐานเวลาเชิงเลขชี้กำลังที่แข็งแกร่งนั้นเป็นเท็จ แน่นอนเราสามารถตรวจสอบมอร์ฟิซึ่มในเวลาเชิงเส้นO(n2ϵ)

กล่าวอีกนัยหนึ่ง SETH ทำให้เรามีปัญหาตามธรรมชาติในมีช่องว่างระหว่างการค้นหาและการตรวจสอบ Ω ( n 1 - ϵ )PΩ(n1ϵ)

โดยเฉพาะอย่างยิ่งอัลกอริทึมเป็นที่รู้จักสำหรับต้นไม้ที่หยั่งรากและคงที่ (ซึ่งยังคงมีผลการเชื่อมโยงที่ต่ำกว่าของ Abboud et al. ) ดังนั้นภายใต้ SETH ช่องว่างเกือบการตรวจสอบเชิงเส้นเกือบจะแน่นสำหรับปัญหานี้เป็นหลักO(n2/logn)

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