คลาสที่ซับซ้อนสำหรับคดีอื่นที่ไม่ใช่“ กรณีที่เลวร้ายที่สุด”


10

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

อีกคำถามหนึ่งพิจารณาถึงความซับซ้อนของตัวพิมพ์ใหญ่ที่สุดตัวอย่างด้านล่าง:

มีปัญหา (ตามธรรมชาติ) ในระดับที่การตัดสินใจต้องการเวลาอย่างน้อยเป็นเลขชี้กำลังหรือไม่?

ชี้แจงพิจารณาบางEXPสมบูรณ์ภาษาLเห็นได้ชัดว่าอินสแตนซ์ทั้งหมดไม่ต้องการเวลาเอ็กซ์โพเนนเชียล: มีหลายกรณีที่สามารถตัดสินใจได้แม้ในเวลาพหุนาม ดังนั้นความซับซ้อนของกรณีที่ดีที่สุดของไม่ใช่เวลาเอ็กซ์โปเนนเชียลLLL

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

LBอีsเสื้อE ()(M)[(L(M)=L)(n0)(n>n0)(x{0,1}n)[T(M(x))2|x|]]

ที่หมายถึงเวลาที่ใช้ก่อนที่จะMหยุดกับการป้อนข้อมูลxM xT(M(x))Mx

ฉันยอมรับว่าการกำหนดปัญหาดังกล่าวนั้นแปลกมากเนื่องจากเราต้องการเครื่องทัวริงMทุกเครื่องMโดยไม่คำนึงถึงพลังของมันไม่สามารถตัดสินใจภาษาได้ในเวลาน้อยกว่าเลขชี้กำลังเชิงเส้น

ยังสังเกตเห็นว่าพหุนามเวลา ( BestP ) เป็นธรรมชาติเนื่องจากทุกเครื่องทัวริงต้องใช้เวลา|x|อย่างน้อยอ่านอินพุตของมัน

PS: บางทีแทนที่จะหาปริมาณเป็น "สำหรับทัวริงเครื่อง " เราต้อง จำกัด ให้บางเครื่องทัวริงที่กำหนดไว้ล่วงหน้าเช่นเครื่องทัวริงเวลาพหุนาม ด้วยวิธีนี้เราสามารถกำหนดคลาสเช่นซึ่งเป็นคลาสของภาษาที่ต้องการเวลากำลังสองอย่างน้อยในการตัดสินใจในเครื่องทัวริงพหุนามเวลาบีอีs T ( n 2 )MBest(n2)

PS2: เราสามารถพิจารณาความซับซ้อนของวงจรคู่กันซึ่งเราพิจารณาขนาด / ความลึกของวงจรที่น้อยที่สุดในการตัดสินใจภาษา


เพียงเพราะมีกรณีของ SAT ที่ง่ายมันไม่ได้หมายความว่าเวลาที่คาดว่าจะเป็นพหุนาม ฉันไม่แน่ใจว่าฉันเข้าใจคำถามของคุณหรือไม่ ..
Lev Reyzin

@Lev Reyzin: ฉันไม่ได้หมายความว่า SAT อยู่ในช่วงเวลาที่คาดหวังไว้ ฉันหมายถึงเนื่องจาก SAT มีกรณีง่ายเราไม่สามารถพูดได้ว่าความซับซ้อน "กรณีที่ดีที่สุด" นั้นยาก
MS Dousti

โอ้ฉันเข้าใจแล้วว่าความซับซ้อนของเคสโดยเฉลี่ยและความซับซ้อนของเคสที่ดีที่สุดคือคำถามสองข้อที่แยกกัน! ยังไงก็เถอะฉันพลาดสิ่งนี้ในการอ่านครั้งแรกของฉัน - ความผิดพลาดของฉัน
Lev Reyzin

ฉันไม่สามารถแยกคำจำกัดความของ BestE ได้ M และ x นั่งอยู่ข้างนอกปริมาณของพวกเขา ... และคุณไม่ต้องการให้ปฏิเสธอินพุตที่ไม่ได้อยู่ในใช่ไหม LML
Ryan Williams

@ Ryan: ขอบคุณสำหรับการชี้ให้เห็นข้อบกพร่อง ฉันแก้ไขมัน
MS Dousti

คำตอบ:


13

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

นี่คือคำแถลงอย่างเป็นทางการ: สำหรับทุกครั้งที่ขอบเขตมีภาษามีคุณสมบัติที่อัลกอริทึมที่กำหนดขึ้นมาทุกตัวที่จำต้องทำงานอย่างถูกต้องในเวลา asymptotically มากกว่าในทุก แต่หลายขีดปัจจัยการผลิตสำหรับเวลาเล็กพอ(n) L T ฉันM E [ T ( n ) ] L t ( n ) t ( n )T(n)LTผมME[T(n)]Lเสื้อ(n)เสื้อ(n)

"เล็กพอ" หมายถึง(n))เสื้อ(n)เข้าสู่ระบบเสื้อ(n)โอ(T(n))

สมมติว่าเราเลือกสำหรับตัวอย่างและได้รับภาษาที่พูดยากLจากนั้นอัลกอริทึมใด ๆ ที่จำได้อย่างถูกต้องจะต้องใช้เวลาอย่างน้อยสำหรับอินพุตทั้งหมดผ่านความยาวที่แน่นอน นี่เป็นสิ่งที่คุณกำลังมองหาในชั้นเรียน BestE L L 2 n / n 2T(n)=2nLL2n/n2

อ้างอิง:

John G. Geske, Dung T. Huynh, Joel I. Seiferas: บันทึกย่อเกี่ยวกับชุดที่ซับซ้อนและแยกชั้นเรียนที่ซับซ้อนตามเวลา คอมพิวเต 92 (1): 97-104 (1991)


ดีมากขอบคุณ. ฉันคิดว่าคุณเข้าใจคำถามของฉันและประโยคแนะนำของคุณ "ฉันไม่สามารถแยกคำจำกัดความของคุณได้" เป็นเพียงสัญลักษณ์ของความสุภาพเรียบร้อยของคุณ :)
MS Dousti

2
หากฉันเดาถูกต้องนิยามของคุณควรเป็นเช่น: "L \ in BestE \ iff (\ มีอยู่ c) (\ forall M) [(L (M) = L) \ Rightarrow (\ อยู่ n_0) (\ forall n > n_0) (\ forall x \ in \ {0,1 \} ^ n) [T (M (x))> 2 ^ {c | x |})] "
Ryan Williams

ใช่คุณพูดถูก ฉันแก้ไขคำจำกัดความในนาทีสุดท้ายและใส่หมายเลขที่หายไปบางส่วน ฉันแก้ไขคำถามตามคำจำกัดความของคุณ
MS Dousti

12

มีจำนวนคลาสที่พยายามจัดการกับความคิดที่หลากหลายของความซับซ้อนของตัวพิมพ์โดยเฉลี่ย ใน Complexity Zoo บางคลาสที่คุณอาจสนใจคือ:

AvgP

HeurP

DistNP

(NP P-samplable)

Arora / Barakครอบคลุมหลายคลาสที่คล้ายกัน (ใน Ch 18), การกำหนด distP, distNP และ sampNP

ความสัมพันธ์ที่แน่นอนระหว่างทั้งหมดของชั้นเรียนเหล่านี้เป็นลักษณะ Impagliazzo ห้าโลกซึ่งได้รับการถามก่อนหน้านี้เกี่ยวกับในคำถามอื่น

เท่าที่คำถามความซับซ้อน "กรณีที่ดีที่สุด" ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณหมายถึง คุณกำลังมองหาEXPหรือไม่?

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


ทำได้ดีมาก! นั่นคือสิ่งที่ฉันต้องการสำหรับส่วนที่ซับซ้อนโดยเฉลี่ยของคำถาม เกี่ยวกับส่วน "กรณีที่ดีที่สุด" ฉันสังเกตว่าคำแถลงเดิมของคำถามนั้นคลุมเครือ ความผิดฉันเอง! ฉันแก้ไขมันมากแล้วดังนั้นโปรดลองอ่านอีกครั้ง
MS Dousti

5

[เพิ่มคำตอบของไรอันวิลเลียมส์และเพิ่มคำค้นหาให้คุณ] ความคิดเรื่องความซับซ้อนของกรณีที่ดีที่สุดมีชื่ออยู่แล้ว: เกือบทุกหนทุกแห่ง (ae) ความแข็งหรือภูมิต้านทาน (ตัวอย่างของไรอันมีต่อ -bi-immunity) ถ้าCเป็นระดับที่ซับซ้อนแล้วภาษาLคือC -immune ถ้าไม่มีเซตอนันต์L 'Lดังกล่าวว่าL ' C LคือC -bi-ภูมิคุ้มกันถ้าทั้งLและส่วนประกอบของ¯ LTIME[T(n)]CLCLLLCLCLคือ C -immune ยกตัวอย่างเช่นมันไม่ยากที่จะแสดงให้เห็นว่านิยามของบีอีเอสทีอีเทียบเท่ากับระดับของ Eชุด -bi ภูมิคุ้มกันL¯=ΣLBestEE

(ประวัติศาสตร์กัน: ความคิดของภูมิคุ้มกันได้รับการพัฒนาเป็นครั้งแรกโดยโพสต์ในปี 1944ในทฤษฎีการคำนวณนานก่อนที่ P จะถูกกำหนดแม้โพสต์ถือว่าจริง "ชุดง่าย" - ชุดเป็นเรื่องง่ายถ้าส่วนประกอบเป็นภูมิคุ้มกัน คำว่า "ภูมิคุ้มกัน" โดยทั่วไปหมายถึง "ภูมิคุ้มกันต่อเซตที่คำนวณได้" ในการตั้งค่านั้นภูมิคุ้มกันนั้นเทียบเท่ากับ "ภูมิคุ้มกันต่อเซตเซตซีซี" เนื่องจากชุดเซตอนันต์ทุกชุดประกอบด้วยชุดคำนวณที่ไม่มีขีด จำกัด ผมเชื่อว่าบทความของโพสต์ แนวคิดเรื่องการลดลงหลายคน แต่ฉันไม่สามารถสาบานได้เลย)


MLLM(x)=1

L'L'

1
@Sadeq: แก้ไขขอบคุณ @Ryan: จริง (หรือสองสามชั่วโมงที่ผ่านมา: เขาได้ตั้งแต่ปรับปรุงคำจำกัดความ) จากนั้นก็จะสร้างภูมิคุ้มกันแทนภูมิคุ้มกันแบบสองทาง ทั้งสองวิธีส่วนใหญ่ฉันแค่ต้องการชี้ให้เห็นคำหลัก "ภูมิคุ้มกัน"
Joshua Grochow

2

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

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

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

Θ

สำหรับกรณีที่ดีที่สุดมันเป็นเรื่องเล็กน้อยสำหรับทุกปัญหาในการค้นหาจำนวนทรัพยากรที่จำเป็นน้อยที่สุด สมมติว่าอินพุตเป็นความยาว O (n) และเอาต์พุตของความยาว O (m) จากนั้น TM M ต่อไปนี้จะทำงานใน O (n) + O (m) สำหรับกรณีที่ดีที่สุด:

M {ป้อนข้อมูลอินสแตนซ์โซลูชั่น}

  1. เปรียบเทียบอินสแตนซ์ที่กำหนดกับอินสแตนซ์ที่เข้ารหัสในเครื่อง
  2. หากมีค่าเท่ากันให้ส่งคืนโซลูชันที่เข้ารหัส
  3. อื่น ๆ ทำการค้นหาที่ดุร้าย

-1

O(1)


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

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

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