คำสั่งของคำจำกัดความการเติบโตจาก Reynolds & Tymann


47

ฉันกำลังอ่านหนังสือที่ชื่อว่าPrinciples of Computer Science (2008) โดย Carl Reynolds และ Paul Tymann (จัดพิมพ์โดย Schaum's Outlines)

บทที่สองแนะนำอัลกอริทึมพร้อมตัวอย่างของการค้นหาตามลำดับซึ่งจะวนซ้ำตามรายการชื่อและส่งกลับ TRUE หากพบชื่อที่กำหนดในรายการ

ผู้เขียนพูดต่อไป (หน้า 17):

เราบอกว่า "ลำดับการเติบโต" ของอัลกอริธึมการค้นหาตามลำดับคือ n สัญกรณ์สำหรับสิ่งนี้คือ T (n) นอกจากนี้เรายังบอกว่าอัลกอริทึมที่มีลำดับการเจริญเติบโตอยู่ภายในปัจจัยคงที่ของ T (n) มีค่า theta ของ NL พูด "การค้นหาตามลำดับมีทีต้าของ n" ขนาดของปัญหาคือ n ความยาวของรายการที่ค้นหา

ฉันพบว่ามันยากที่จะติดตาม หนังสือเล่มนี้เต็มไปด้วยข้อผิดพลาดดังนั้นฉันไม่แน่ใจว่าฉันทำอะไรหายไปหรือมีการพิมพ์ผิดในย่อหน้าด้านบน โดยทั่วไปภาษาอังกฤษฉันไม่ค่อยเห็นประโยคจบด้วย "... พูด"

ฉันสับสนมาก

T หมายถึงอะไร หนังสือเล่มนี้ไม่ได้อธิบาย มันเป็นเวลาหรือสำหรับที?

ถ้า "theta of NL" หมายถึง "การค้นหาตามลำดับมีทีต้าของ n" L หมายถึงอะไร 'เชิงเส้น' หรือ 'ความยาว'

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

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


ความซับซ้อนของเวลา T (n) จากวิกิพีเดีย : "เนื่องจากเวลาประสิทธิภาพของอัลกอริทึมอาจแตกต่างกันกับอินพุตที่แตกต่างกันในขนาดเดียวกันเรามักใช้ความซับซ้อนของเวลาที่แย่ที่สุดของอัลกอริทึมซึ่งแทนด้วย T (n) จำนวนเวลาสูงสุดในการป้อนข้อมูลของขนาด n ใด ๆ ที่พบได้น้อยกว่าและมักจะระบุไว้อย่างชัดเจนคือการวัดความซับซ้อนของกรณีโดยเฉลี่ยความซับซ้อนของเวลาถูกจำแนกตามลักษณะของฟังก์ชัน T (n) ตัวอย่างเช่นอัลกอริทึม ด้วย T (n) = O (n) เรียกว่าอัลกอริธึมเชิงเส้นตรงเวลาและ [... ] "
Stefan

1
ฉันเชื่อว่ามันเป็นหนังสือเล่มนี้และนอกเหนือจากการรีวิวที่ไม่ใช่ตัวเอกที่ฉันทิ้งไว้มีอีกวันที่วันนี้ซึ่งอาจไม่ใช่เรื่องบังเอิญ!
Jason C

การใช้คำพูดนั้นให้ความรู้สึกเหมือนคำจำกัดความที่ใช้น้อยที่สุด: เพื่อสมมติหรือสมมติว่า คิดว่ามันเป็น "... มาพูดกัน" ยังไม่แน่ใจว่าประโยคนั้นสมเหตุสมผล
Roger Krueger

คำตอบ:


77

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

T(n)

T(n)Tn

T(1)=kT(n)=T(n1)+lognfor n>1
TT(n)=blahTT

T(n)n

เห็นได้ชัดว่าเรื่องนี้มีความสับสน ฉันคิดว่าผู้เขียนตั้งใจจะเขียนบางอย่างเช่น

T(n)nn

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

"NL" ยังไงก็ตามหมายถึงlogspaceระดับความซับซ้อนของnondeterministicซึ่งไม่สมเหตุสมผลเลยในตำแหน่งที่ปรากฏในเครื่องหมายคำพูดดั้งเดิม


12
ย่อหน้าแรกทำให้ฉันยิ้มเพราะมันเป็นสิ่งที่ตำรวจวิทยาการคอมพิวเตอร์จะบอกคุณ :-) (+1 ด้วยนี่เป็นคำตอบที่ดี)
Juho

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

2

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

สำหรับคำอธิบายที่ดีเกี่ยวกับสัญกรณ์Big O (เช่นเดียวกับ Little-O และ Theta) ฉันขอแนะนำ MIT หนังสือแนะนำอัลกอริทึมโดย Prof. Leiserson

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

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


1
ดูเหมือนว่าพวกเขาพยายามจะอธิบายโอใหญ่ไม่ได้เลย - พวกเขาพูดถึงทีต้าอย่างชัดเจน
David Richerby

ข้อความของ Prof. Leiserson อธิบายถึง Theta ว่าเป็นรูปแบบที่แม่นยำยิ่งขึ้นของ BigO ฉันรู้ว่าอาจมีคำจำกัดความอื่น ๆ ของ Theta แต่ทีต้าที่เกี่ยวข้องกับ BigO เป็นสิ่งที่ฉันคุ้นเคย
abelenky

2
ฉันไม่คิดว่านี่คือสิ่งที่เกิดขึ้น แต่ฉันสงสัยว่ามันเป็นความสามัญของการเขียน "T (n) = n" และสมมติว่า (โดยไม่บอกอย่างชัดเจน) ว่าทุกคนจะอนุมานว่า T (n) หมายถึงเวลาทำงานและโดยเฉพาะเวลาในการทำงานของอัลกอริธึม มีอยู่ในใจและ n หมายถึงขนาดของอินพุต
DW
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.