สิ่งที่ไม่


15

สิ่งที่ไม่logO(1)nหมายถึง?

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

สำหรับบิตของบริบทประโยคที่ผมพบว่ามันอ่าน "[ ... ] เราเรียกฟังก์ชั่น [ประสิทธิภาพ] ถ้าจะใช้พื้นที่และที่มากที่สุดเวลาเข้าสู่ระบบO ( 1 ) nต่อรายการ."O(logn)logO(1)n


1
ฉันยอมรับว่าไม่ควรเขียนสิ่งนี้เว้นแต่จะมีความชัดเจนเกี่ยวกับสิ่งที่มันหมายถึง (และบอกผู้อ่านว่ามันคืออะไร) และใช้กฎเดียวกันนี้อย่างสม่ำเสมอ
Raphael

1
ใช่คุณควรเขียนเป็น (log(n))O(1).

1
@RickyDemer นั่นไม่ใช่ประเด็นที่ราฟาเอลกำลังทำอยู่ หมายถึงว่า( บันทึกn ) ลิตรชั่วโมง logblahn(logn)blah
David Richerby

4
@Raphael นี่เป็นเครื่องหมายมาตรฐานในฟิลด์ ทุกคนในรู้จะรู้ว่ามันหมายถึงอะไร
Yuval Filmus

1
@YuvalFilmus ฉันคิดว่าความหลากหลายของคำตอบที่ไม่เห็นด้วยเป็นข้อสรุปที่ชัดเจนว่าการอ้างสิทธิ์ของคุณเป็นเท็จและควรหลีกเลี่ยงการใช้สัญกรณ์ดังกล่าว
Raphael

คำตอบ:


16

คุณต้องเพิกเฉยสักครู่ความรู้สึกที่แข็งแกร่งที่ " " อยู่ผิดที่และไถลไปด้วยคำจำกัดความโดยไม่คำนึงถึง ( n ) = บันทึกO ( 1 ) nหมายถึงว่ามีอยู่คงที่kและn 0ดังกล่าวว่าสำหรับทุกn n 0 , F ( n ) บันทึกk 1 n = log k nOf(n)=logO(1)nkn0nn0f(n)logk1n=logkn

โปรดทราบว่าหมายถึง( บันทึกn ) k ฟังก์ชั่นของฟอร์มบันทึกO ( 1 ) nมักจะถูกเรียกว่าpolylogarithmicและคุณอาจได้ยินคนพูดว่า " fคือ polylog  n "logkn(logn)klogO(1)nfn

คุณจะสังเกตเห็นว่ามันเป็นเรื่องง่ายที่จะพิสูจน์ให้เห็นว่าตั้งแต่2 n k nสำหรับทุกn 0ที่k = 2 คุณอาจจะสงสัยว่าถ้า2 บันทึกn = เข้าสู่ระบบO ( 1 ) n คำตอบคือใช่ตั้งแต่ขนาดใหญ่พอnให้ล็อกn 2ดังนั้น2 log n log 2 nสำหรับใหญ่พอ 2n=O(n)2nknn0k=22logn=logO(1)nnlogn22lognlog2n .n

ในบันทึกที่เกี่ยวข้องคุณมักจะเห็นพหุนามที่เขียนเป็น : แนวคิดเดียวกันnO(1)


สิ่งนี้ไม่ได้รับการสนับสนุนจากการประชุมตัวแทนทั่วไป
Raphael

ฉันถอนความคิดเห็นของฉัน: คุณเขียนในสถานที่สำคัญทั้งหมดซึ่งเพียงพอ
ราฟาเอล

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

ฉันคิดว่าคุณกำลังกำหนดของฉัน (2) และทอมกำหนด } cR>0{logcn}
Raphael

9

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

ดังนั้นหากพบ

f(n)=logO(1)n

คุณต้องอ่าน

สำหรับบางกรัมO ( 1 )f(n)=logg(n)ngO(1).(1)

สังเกตความแตกต่างจากการพูดว่า " to power of constant คงที่": g = n 1 / nเป็นไปได้ที่แตกต่างกันlogg=n1/n

คำเตือน:ผู้แต่งอาจใช้สัญลักษณ์ที่ดูผิดและต้องการให้คุณอ่าน

สำหรับบางกรัมO ( 1 )f(n)O(logg(n)n)gO(1).(2)

สังเกตความแตกต่างระหว่าง (1) และ (2); ในขณะที่มันทำงานออกมาเพื่อกำหนดฟังก์ชั่นค่าบวกชุดเดียวกันที่นี่สิ่งนี้ไม่ได้ผล อย่าขยับในการแสดงออกโดยไม่สนใจ!O


3
ผมคิดว่าสิ่งที่ทำให้มันติ๊กคือเป็นต่อเนื่องและ surjective เพียงพอสำหรับแต่ละคงn Monotonic ทำให้ตำแหน่งของOเทียบเท่าและให้ (2) ⇒ (1); การไปทางอื่นนั้นต้องการให้gมีอยู่ซึ่งอาจล้มเหลวหากf ( n )อยู่นอกขอบเขตของฟังก์ชัน หากคุณต้องการชี้ให้เห็นว่าการเคลื่อนย้ายOไปรอบ ๆ นั้นอันตรายและไม่ครอบคลุมฟังก์ชั่น "wild" ดี แต่ในกรณีนี้มันใช้ได้สำหรับฟังก์ชั่นที่เป็นตัวแทนของต้นทุน xlogx(n)nOgf(n)O
Gilles 'หยุดความชั่วร้าย'

@Gilles ฉันอ่อนแอคำสั่งเพื่อเตือนทั่วไป
Raphael

1
คำตอบนี้ได้รับการแก้ไขอย่างหนักและตอนนี้ฉันสับสน: ตอนนี้คุณอ้างว่า (1) และ (2) เหมือนกันหรือไม่
Oebele

@Oebele เท่าที่ฉันสามารถบอกได้พวกเขาไม่ได้อยู่ในทั่วไป แต่ที่นี่
Raphael

แต่บางอย่างเช่นไม่ตรงกับ (1) แต่ตรงกับ (2) ใช่มั้ย หรือตอนนี้ฉันงี่เง่า? 3log2n
Oebele

6

มันหมายความว่าฟังก์ชั่นเติบโตมากที่สุดเมื่อกับกำลังของค่าคงที่บางค่าเช่นlog 2 ( n )หรือlog 5 ( n )หรือlog 99999 ( n )loglog2(n)log5(n)log99999(n) ...


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

สิ่งนี้ไม่ได้รับการสนับสนุนจากการประชุมตัวแทนทั่วไป
Raphael

2

"ที่มากที่สุด " หมายความว่ามีค่าคงที่cเช่นนั้นสิ่งที่ถูกวัดคือO ( บันทึกc n )logO(1)ncO(logcn) )

ในบริบทที่กว้างขึ้น, เทียบเท่ากับคำสั่งที่มีอยู่ (อาจจะลบ) คงที่และดังกล่าวว่าF ( n ) O ( log n )และF ( n ) โอห์ม( บันทึก n )f(n)logO(1)nabf(n)O(logan)f(n)Ω(logbn)

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


ความหมายที่แท้จริงของสัญกรณ์จะทำเลขคณิตเกี่ยวกับครอบครัวของฟังก์ชั่นที่เกิดในครอบครัวที่มีฟังก์ชั่นทั้งหมดที่เข้าสู่ระบบกรัม( n ) nที่กรัม( n ) O ( 1 ) วิธีนี้ใช้ได้ผลเช่นเดียวกับวิธีการคูณO ( g ( n ) )ด้วยh ( n ) ให้ผลลัพธ์เป็นO ( g ( n ) h nlogO(1)nlogg(n)ng(n)O(1)O(g(n))h(n)O(g(n)h(n)), except that you get a result that isn't expressed so simply.


เนื่องจากรายละเอียดของขอบเขตล่างอยู่ในอาณาเขตที่อาจไม่คุ้นเคยจึงควรดูที่ตัวอย่างบางส่วน โปรดจำไว้ว่านั้นมีขนาดเท่ากัน ว่ามีความคงที่เช่นว่าทุกขนาดใหญ่พอn , |g(n)O(1)cn|g(n)|<c.

เมื่อมองไปที่ asymptotic การเจริญเติบโตมักจะมีเพียงถูกผูกไว้บนเรื่องตั้งแต่เช่นคุณรู้อยู่แล้วว่าฟังก์ชั่นเป็นบวก อย่างไรก็ตามในทั่วไปเต็มรูปแบบที่คุณต้องใส่ใจกับขอบเขตที่ต่ำกรัม( n ) > -g(n)<cg(n)>c

ซึ่งหมายความว่าตรงกันข้ามกับการใช้สัญกรณ์ทั่วไปที่ใหญ่กว่ามากฟังก์ชั่นที่ลดลงเร็วเกินไปอาจไม่สามารถอยู่ใน ; ตัวอย่างเช่น 1logO(1)n

1n=log(logn)/(loglogn)nlogO(1)n
lognloglognO(1)
O(1)

1logO(1)n


Can't I just take b=0 and make your claimed lower bound go away?
David Richerby

1
@DavidRicherby ไม่ =0 ยังคงบอกว่า มีขอบเขตด้านล่าง Hurkyl: ทำไมล่ะ(n)=1/n ใน เข้าสู่ระบบO(1)n?
Gilles 'SO- stop being evil'

@Gilles: เพิ่มเนื้อหาเพิ่มเติม!

@Gilles OK, sure, it's bounded below by 1. Which is no bound at all for "most" applications of Landau notation in CS.
David Richerby

1) Your "move around O" rule does not always work, and I don't think "at most" usually has that meaning; it's just redundant. 2) Never does O imply a lower bound. That's when you use Θ. 3) If and how negative functions are dealt with by a given definition of O (even without abuse of notation) is not universally clear. Most definitions (in analysis of algorithms) exclude them. You seem to assume a definition that bounds the absolute value, which is fine.
Raphael
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.