ทำไมขนาดอินพุตที่ใหญ่ขึ้นหมายถึงอินสแตนซ์ที่ยากขึ้น?


12

ด้านล่างสมมติว่าเรากำลังทำงานกับเครื่องทัวริงแบบไม่มีที่สิ้นสุดเทป

เมื่ออธิบายถึงความซับซ้อนของเวลากับใครบางคนและทำไมมันถึงวัดได้เมื่อเทียบกับขนาดอินพุทของอินสแตนซ์ฉันก็สะดุดกับข้อเรียกร้องต่อไปนี้:

[.. ] ยกตัวอย่างเช่นเป็นเรื่องธรรมดาที่คุณจะต้องมีขั้นตอนเพิ่มเติมในการคูณจำนวนเต็มสองจำนวนด้วย 100000 บิตแทนที่จะพูดว่าคูณจำนวนเต็มสองจำนวนด้วย 3 บิต

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

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


"สัดส่วนโดยตรง" มีความหมายทางคณิตศาสตร์ที่เฉพาะเจาะจงซึ่งหมายถึงเวลาเชิงเส้นเป็นหลัก ในคำอื่น ๆ ถ้าใส่ของคุณมีขนาดถ้าเวลาเป็นสัดส่วนโดยตรงขั้นตอนวิธีการทำงานในเวลาที่ n ฉันคิดว่านั่นไม่ใช่สิ่งที่คุณหมายถึงเนื่องจากอัลกอริทึมจำนวนมากไม่ทำงานในเวลาเชิงเส้นนั่นคือการเรียงลำดับ คุณอธิบายเพิ่มเติมได้ไหม ncn
SamM

ดังนั้นคุณถามเกี่ยวกับอัลกอริทึมที่ทำงานในเวลา ? O ( 1 )หมายถึงอัลกอริทึมทำงานในเวลาเดียวกันโดยไม่คำนึงถึงขนาดของอินพุต, o ( 1 )หมายถึงมันทำงานได้เร็วขึ้นเมื่ออินพุทใหญ่ขึ้น ฉันไม่สามารถนึกถึงสิ่งที่ทำงานในเวลานั้นจากด้านบนของหัวของฉัน แต่สัญกรณ์เป็นเรื่องปกติเพราะอัลกอริทึมมักจะทำงานในบางสิ่งบางอย่างเช่นO ( n 2 ) + o ( 1 )เวลา - ในคำอื่น ๆ มันต้องใช้O ( n 2 )o(1)O(1)o(1)O(n2)+o(1)O(n2)เวลาและยังมีคำศัพท์อื่น ๆ ที่มีขนาดเล็กลงเมื่ออินพุตมีขนาดใหญ่ขึ้น
SamM

คำถามที่ดี. สิ่งที่เกี่ยวกับตัวอย่างการคำนวณปัจจัยสำคัญของสำหรับcขนาดใหญ่บางตัว(นี่เป็นเพียงฟังก์ชันที่เพิ่มขึ้นสำหรับn c ) @Sam โปรดทราบว่าฟังก์ชั่นที่เพิ่มขึ้นบอกว่าเวลาจะต้องลดลงในบางจุดตามเส้นจริง (เช่นf ( b ) < f ( a ) , a < b ) c/ncncf(b)<f(a),a<b
Casey Kuball

@Darthfett ฉันกลัวว่าฉันจะไม่ทำตาม ฟังก์ชั่นที่เพิ่มขึ้นไม่ได้ลดลงในบางจุดในแนวเส้นจริง
SamM

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

คำตอบ:


13

เป็นกรณีที่ความซับซ้อนของเวลาเป็นฟังก์ชั่นที่เพิ่มขึ้นในขนาดอินพุตหรือไม่? ถ้าเป็นเช่นนั้นทำไมเป็นเช่นนั้น

ไม่ให้พิจารณาเครื่องทัวริงที่หยุดหลังจากขั้นตอนเมื่อขนาดอินพุตnเท่ากับและหยุดหลังจากn 2ขั้นตอนเมื่อnเป็นคี่nnn2n

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


4

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

nnn/cc


n=1n>1


อัลกอรึทึมย่อยน่าจะเป็นที่สนใจสำหรับคุณซึ่งไม่ได้อ่านอินพุตทั้งหมด ดูตัวอย่างhttp://www.dcs.warwick.ac.uk/~czumaj/PUBLICATIONS/DRAFTS/Sublinear-time-Survey-BEATCS.pdf


O(logn)o(1)

@Sam: ขออภัยฉันไม่เห็นความคิดเห็นของคุณก่อนที่จะแก้ไข (เพิ่มอัลกอริทึมย่อยแบบเส้นตรง)
คริสโตเฟอร์

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

1
f(x)=0

1

(N,)Ω(1)

ที่กล่าวว่าเฉลี่ยเวลาการทำงานสามารถมีสั่นส่วนประกอบเช่นmergesort


ฉันไม่เห็นว่าคำตอบนี้เกี่ยวข้องกับคำถามอย่างไร
A.Schulz

@ A.Schulz มันให้หลักฐานสำหรับคำถามหลัก "เป็นกรณีที่ความซับซ้อนของเวลามักจะเพิ่มฟังก์ชั่นในขนาดอินพุตหรือไม่", การอ่าน "เพิ่มขึ้น" เป็น "ไม่ลดลง" คือไม่จำเป็นต้องเพิ่มขึ้นอย่างเข้มงวด
Raphael

1

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