ระดับความซับซ้อนที่สอดคล้องกับการเรียงลำดับ


14

TCS สองส่วนคืออัลกอริธึมและความซับซ้อน ฉันจะพูดง่าย ๆ ว่าอัลกอริทึมคือการศึกษาขอบเขตบนแสดงว่าคุณสามารถทำบางสิ่ง (ด้วยทรัพยากรที่ จำกัด ) และความซับซ้อนกำลังแสดงว่าคุณไม่สามารถทำได้หากไม่มีทรัพยากรขั้นต่ำ

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

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

คลาสความซับซ้อนที่ดีที่สุด / เหมาะสมที่สุด / มีประโยชน์มากที่สุดคืออะไรการเรียงลำดับการเปรียบเทียบอยู่ใน?

คำตอบ:


17

ปัญหาการเรียงลำดับเสร็จสมบูรณ์สำหรับTC0 (ภายใต้การลด ) แหล่งที่มาของมาตรฐานนี้คือมาตรา 1.4.3 ของหนังสือ Vollmer ของAC0

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

ที่กำหนดลำดับของตัวเลข1 , ... , nและตัวเลขสองk , พี[ n ]เราต้องการที่จะตัดสินใจว่าkเป็นที่ตำแหน่งPในลำดับที่เราได้รับจากการเรียงลำดับ1 , ... , nใน nondecreasing ใบสั่ง. โปรดทราบว่าเพื่อหลีกเลี่ยงความคลุมเครือเมื่อa1,,ank,p[n]akpa1,,anเราต้องการฉันนำหน้า Jถ้าฉัน< Jai=ajaiaji<j


ยอดเยี่ยม ... ระบุว่าเป็นปัญหาการตัดสินใจแบบทางการอะไร
Mitch

1
มันจะยอดเยี่ยมเป็นสองเท่าในการรวมการอ้างอิงในคำตอบของคุณ
Oleksandr Bondarenko

@Mitch และ @Okeksandr: ขอบคุณสำหรับความคิดเห็นของคุณ! ฉันเพิ่งขยายคำตอบของฉันเพื่อชี้แจงประเด็นเหล่านั้น
Dai Le

ดูเหมือนว่าปัญหาการตัดสินใจสำหรับสถิติการสั่งซื้อ มีปัญหาที่เกี่ยวข้องหรือไม่ที่ทุกอย่างอยู่ในที่ที่ถูกต้อง? สิ่งที่ต้องการให้ลำดับ1 . . nและการเปลี่ยนแปลงσบน[ 1 .. n ]ตัดสินใจถ้า1 k < J n , σ k < σเจ มันยากเหมือนของคุณ มันยากขึ้นหรือเสร็จสมบูรณ์สำหรับชั้นเรียนที่รวมหรือไม่ a1...anσ[1..n]1k<jn,aσk<aσj
มิทช์

2
@ Mitch: ฉันเชื่อว่าการตรวจสอบว่าทุกอย่างอยู่ในสถานที่ที่เหมาะสมเช่นนั้นจะง่ายกว่าการจัดเรียง สัญชาตญาณคือที่คุณสามารถตรวจสอบว่าσ k < σ Jสำหรับทุกคู่ที่เป็นไปได้( σ k , σ J )กับk < เจในแบบคู่ขนานซึ่งผมเชื่อว่าสามารถทำได้ในC 0 สำหรับปัญหาการเรียงลำดับข้างต้นคุณต้องสามารถ "นับ" เพื่อหาตำแหน่งที่ถูกต้องของตัวเลขในการเรียงลำดับเชิงเส้น aσk<aσj(aσk,aσj)k<jAC0
Dai Le

0

ฉันเชื่อว่าFPคือสิ่งที่คุณกำลังมองหา


ฉันค่อนข้างมองหาระดับความซับซ้อนของการตัดสินใจที่เกี่ยวข้องมากกว่าการใช้งาน แต่ถึงอย่างนั้นฉันก็ค่อนข้างแน่ใจว่าการเรียงลำดับการเปรียบเทียบนั้นไม่มีที่ไหนใกล้กับ P-complete (หรือ FP-complete) ดังนั้นฉันจึงคาดหวัง คลาสที่เล็กกว่าซึ่งคาดว่าจะอยู่ใน / เสร็จสมบูรณ์
มิทช์

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

ปัญหาทั่วไปสิ่งที่ฉันอยากรู้ไม่ใช่แค่ว่ามันเป็นเวลาพหุนาม แต่ชั้นที่เล็กที่สุดที่มันควรจะเป็นฉันอยากจะรู้ว่ามันอยู่ใน LOGCFL, NL, L, AC_0 ฯลฯ เป็นวิธีหนึ่งที่คุณ "ไม่สามารถ" ทำได้ดีกว่านี้ ดังนั้น Nit ไม่ใช่ข้อกำหนดของคำถามของฉัน แต่เป็นไปได้ที่จะตอบคำถาม
มิทช์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.