คำถามติดแท็ก landau-notation

คำถามเกี่ยวกับสัญลักษณ์แบบอะซิมโทติคเช่น Big-O, Omega เป็นต้น

3
เราจะรู้ได้อย่างไรว่าจะใช้การวิเคราะห์ความซับซ้อนของเวลาแบบใด
ในชั้นเรียนอัลกอริทึมเบื้องต้นส่วนใหญ่จะมีการแนะนำสัญลักษณ์เช่น (Big O) และและนักเรียนมักจะเรียนรู้ที่จะใช้สิ่งเหล่านี้เพื่อค้นหาความซับซ้อนของเวลาΘOOOΘΘ\Theta แต่มีสัญลักษณ์อื่น ๆ เช่น ,และ\มีสถานการณ์เฉพาะใดบ้างที่จะให้สัญกรณ์หนึ่งเป็นที่นิยมมากกว่าอีกรูปแบบหนึ่ง?โอห์มโอห์มโอooΩΩ\Omegaωω\omega

2
คำสั่งของคำจำกัดความการเติบโตจาก Reynolds & Tymann
ฉันกำลังอ่านหนังสือที่ชื่อว่าPrinciples of Computer Science (2008) โดย Carl Reynolds และ Paul Tymann (จัดพิมพ์โดย Schaum's Outlines) บทที่สองแนะนำอัลกอริทึมพร้อมตัวอย่างของการค้นหาตามลำดับซึ่งจะวนซ้ำตามรายการชื่อและส่งกลับ TRUE หากพบชื่อที่กำหนดในรายการ ผู้เขียนพูดต่อไป (หน้า 17): เราบอกว่า "ลำดับการเติบโต" ของอัลกอริธึมการค้นหาตามลำดับคือ n สัญกรณ์สำหรับสิ่งนี้คือ T (n) นอกจากนี้เรายังบอกว่าอัลกอริทึมที่มีลำดับการเจริญเติบโตอยู่ภายในปัจจัยคงที่ของ T (n) มีค่า theta ของ NL พูด "การค้นหาตามลำดับมีทีต้าของ n" ขนาดของปัญหาคือ n ความยาวของรายการที่ค้นหา ฉันพบว่ามันยากที่จะติดตาม หนังสือเล่มนี้เต็มไปด้วยข้อผิดพลาดดังนั้นฉันไม่แน่ใจว่าฉันทำอะไรหายไปหรือมีการพิมพ์ผิดในย่อหน้าด้านบน โดยทั่วไปภาษาอังกฤษฉันไม่ค่อยเห็นประโยคจบด้วย "... พูด" ฉันสับสนมาก T หมายถึงอะไร หนังสือเล่มนี้ไม่ได้อธิบาย มันเป็นเวลาหรือสำหรับที? …

2
ความหมายของคืออะไร?
นี่เป็นคำถามพื้นฐาน แต่ฉันคิดว่าเหมือนกับเนื่องจากคำที่ใหญ่กว่าควรมีอิทธิพลเหนือเราไปไม่สิ้นสุด? นอกจากนี้ที่จะแตกต่างจากO (\ นาที (m, n)) นั่นถูกต้องใช่ไหม? ฉันเห็นสัญกรณ์นี้โดยเฉพาะเมื่อพูดถึงอัลกอริธึมกราฟ ตัวอย่างเช่นคุณจะเห็นเป็นประจำ: O (| V | + | E |) (เช่นดูที่นี่ )O(m+n)O(m+n)O(m+n)O(max(m,n))O(max(m,n))O(\max(m,n))O(min(m,n))O(min(m,n))O(\min(m,n))O(|V|+|E|)O(|V|+|E|)O(|V| + |E|)

6
ฟังก์ชั่นการเรียงลำดับตามการเติบโตของซีมโทติค
สมมติว่าฉันมีรายการฟังก์ชั่นเช่น nloglog(n),2n,n!,n3,nlnn,…nlog⁡log⁡(n),2n,n!,n3,nln⁡n,…\qquad n^{\log \log(n)}, 2^n, n!, n^3, n \ln n, \dots ฉันจะจัดเรียงพวกเขาแบบไม่แสดงอาการได้อย่างไรเช่นหลังจากความสัมพันธ์ที่กำหนดโดย f≤Og⟺f∈O(g)f≤Og⟺f∈O(g)\qquad f \leq_O g \iff f \in O(g) , สมมติว่าพวกเขาเป็นคู่เปรียบเทียบจริง ๆ (ดูที่นี่ )? การใช้ความหมายของOOOดูเหมือนว่าอึดอัดและก็มักจะเป็นเรื่องยากที่จะพิสูจน์ได้ว่าการดำรงอยู่ของค่าคงที่ที่เหมาะสมcccและn0n0n_0 0 นี่เป็นเรื่องเกี่ยวกับการวัดความซับซ้อนดังนั้นเราจึงสนใจพฤติกรรมแบบอะซิมโทติคในรูปแบบn→+∞n→+∞n \to +\inftyและเราคิดว่าฟังก์ชั่นทั้งหมดใช้เฉพาะค่าที่ไม่เป็นลบ ( ∀n,f(n)≥0∀n,f(n)≥0\forall n, f(n) \ge 0 )

4
O และΩเกี่ยวข้องกับกรณีที่เลวร้ายที่สุดและดีที่สุดได้อย่างไร?
วันนี้เรามีการหารือในการบรรยายขั้นตอนวิธีการที่ง่ายมากสำหรับการหาองค์ประกอบในอาร์เรย์ที่เรียงลำดับการใช้ค้นหาแบบทวิภาค เราถูกขอให้ระบุความซับซ้อนเชิงซีมของมันสำหรับอาร์เรย์ขององค์ประกอบnnn ความคิดของฉันคือว่าไม่ชัดแจ้งO(logn)O(log⁡n)O(\log n)หรือO(log2n)O(log2⁡n)O(\log_2 n)มีความเฉพาะเจาะจงมากขึ้นเนื่องจากlog2nlog2⁡n\log_2 nเป็นจำนวนการดำเนินการในกรณีที่เลวร้ายที่สุด แต่ผมสามารถทำได้ดีกว่ายกตัวอย่างเช่นถ้าผมตีสืบค้นองค์ประกอบเป็นครั้งแรก - แล้วขอบเขตที่ต่ำเป็นΩ ( 1 )Ω(1)\Omega(1) ) ผู้บรรยายเสนอวิธีแก้ปัญหาเป็นΘ ( บันทึกn )Θ(log⁡n)\Theta(\log n)เนื่องจากเรามักจะพิจารณาเฉพาะกรณีที่แย่ที่สุดสำหรับอัลกอริทึม แต่เมื่อพิจารณาเฉพาะกรณีที่เลวร้ายที่สุดประเด็นของการมีOOOและคืออะไรΩΩ\Omegaเมื่อกรณีที่เลวร้ายที่สุดของปัญหาที่กำหนดมีความซับซ้อนเดียวกัน ( ΘΘ\Thetaจะเป็นสิ่งที่เราต้องการใช่ไหม?) สิ่งที่ฉันหายไปที่นี่?

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่าvoidเหมาะกับนิยามของประเภทที่ว่าง / ล่าง ไม่มีค่านิยมใด ๆ อยู่voidเท่าที่ฉันจะบอกได้ ฟังก์ชั่นที่มีประเภทคืนค่าเป็นโมฆะระบุว่าฟังก์ชั่นจะไม่ส่งคืนสิ่งใดดังนั้นจึงสามารถทำงานได้เพียงผลข้างเคียงเท่านั้น ตัวชี้ชนิดvoid*เป็นชนิดย่อยของชนิดตัวชี้อื่นทั้งหมด นอกจากนี้การแปลงไปยังและจากvoid*ใน C นั้นเป็นนัย ผมไม่แน่ใจว่าถ้าจุดสุดท้ายมีบุญใด ๆ ที่เป็นข้อโต้แย้งสำหรับvoidการเป็นประเภทที่ว่างเปล่าเป็นมากหรือน้อยเป็นกรณีพิเศษที่มีความสัมพันธ์ไม่มากที่จะvoid*void ในทางกลับกันvoidตัวมันเองไม่ใช่ประเภทย่อยของประเภทอื่นทั้งหมดซึ่งเท่าที่ฉันสามารถบอกได้ว่าเป็นข้อกำหนดสำหรับประเภทที่จะเป็นประเภทด้านล่าง
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

5
O (mn) ถือว่าการเติบโตแบบ "เชิงเส้น" หรือ "กำลังสอง" หรือไม่?
ถ้าฉันมีฟังก์ชั่นบางตัวที่ความซับซ้อนของเวลาคือ O ( mn ) โดยที่mและnเป็นขนาดของอินพุตทั้งสองเราจะเรียกความซับซ้อนของเวลาว่า "เป็นเส้นตรง" (เนื่องจากเป็นเชิงเส้นทั้งในmและn ) หรือ "กำลังสอง" ( เนื่องจากเป็นผลิตภัณฑ์ที่มีสองขนาด) หรืออย่างอื่น? ฉันรู้สึกว่าเรียกว่า "เป็นเส้นตรง" ทำให้สับสนเพราะ O (m + n) เป็นเส้นตรง แต่เร็วกว่ามาก แต่ฉันรู้สึกว่าเรียกมันว่า "กำลังสอง" นั้นก็แปลกเพราะมันเป็นเส้นตรงในตัวแปรแต่ละตัว

2
การเปลี่ยนแปลงตัวแปรในความสัมพันธ์ที่เกิดซ้ำ
ขณะนี้ฉันกำลังเรียนรู้ด้วยตัวเอง Intro to Algorithms (CLRS) และมีวิธีการหนึ่งที่พวกเขาร่างในหนังสือเพื่อแก้ปัญหาความสัมพันธ์ที่เกิดซ้ำ วิธีการต่อไปนี้สามารถอธิบายได้ด้วยตัวอย่างนี้ สมมติว่าเรามีการเกิดซ้ำ T( n ) = 2 T( n--√) + บันทึกnT(n)=2T(n)+log⁡nT(n) = 2T(\sqrt n) + \log n เริ่มแรกพวกเขาทำการทดแทน m = lg (n) แล้วเสียบกลับเข้าไปที่การเกิดซ้ำและรับ: T( 2)ม.) = 2 T( 2)ม.2) + mT(2m)=2T(2m2)+mT(2^m) = 2T(2^{\frac{m}{2}}) + m เมื่อมาถึงจุดนี้ฉันเข้าใจอย่างสมบูรณ์ ขั้นตอนต่อไปนี้เป็นขั้นตอนที่ทำให้ฉันสับสน ตอนนี้พวกเขา "เปลี่ยนชื่อ" การเกิดซ้ำและปล่อยให้S ( m ) = …

7
เหตุผลสำหรับการละเลยปัจจัยคงที่ใน Big O
หลายครั้งถ้าความซับซ้อนมีค่าคงที่เช่น 3n เราจะละเลยค่าคงที่นี้และพูดว่า O (n) ไม่ใช่ O (3n) ฉันไม่สามารถเข้าใจได้ว่าเราจะเพิกเฉยต่อการเปลี่ยนแปลงทั้งสามนี้ได้อย่างไร บางสิ่งบางอย่างเปลี่ยนแปลงอย่างรวดเร็ว 3 เท่ามากกว่าสิ่งอื่น! เหตุใดเราจึงละเลยข้อเท็จจริงนี้

2
สร้างสองฟังก์ชั่น
สร้างสองฟังก์ชันพอใจ:ฉ, g: R+→ R+f,g:R+→R+ f,g: R^+ → R^+ ต่อเนื่อง;ฉ, gf,gf, g เพิ่มขึ้นอย่างน่าเบื่อฉ, gf,gf, g และกรัม≠ O ( ฉ )ฉ≠ O ( g)f≠O(g)f \ne O(g)ก.≠ O ( f)g≠O(f)g \ne O(f)

4
สิ่งที่ไม่
สิ่งที่ไม่logO(1)nlogO(1)⁡n\log^{O(1)}nหมายถึง? ฉันตระหนักถึงสัญกรณ์ใหญ่ ๆ แต่สัญกรณ์นี้ไม่สมเหตุสมผลสำหรับฉัน ฉันไม่สามารถหาข้อมูลเกี่ยวกับมันได้เนื่องจากไม่มีเครื่องมือค้นหาตีความอย่างถูกต้อง สำหรับบิตของบริบทประโยคที่ผมพบว่ามันอ่าน "[ ... ] เราเรียกฟังก์ชั่น [ประสิทธิภาพ] ถ้าจะใช้พื้นที่และที่มากที่สุดเวลาเข้าสู่ระบบO ( 1 ) nต่อรายการ."O(logn)O(log⁡n)O(\log n)logO(1)nlogO(1)⁡n\log^{O(1)}n

2
เหตุใดจึงมีสภาพปกติในทฤษฎีบทหลัก
ฉันได้อ่านIntroduction to Algorithmsโดย Cormen และคณะ และฉันอ่านงบทฤษฎีบทปริญญาโทที่เริ่มต้นในหน้า 73 ในกรณีที่ 3 นอกจากนี้ยังมีเงื่อนไขปกติที่ต้องมีความพึงพอใจในการใช้ทฤษฎีบท: ... 3. ถ้า ฉ( n ) = Ω ( nเข้าสู่ระบบขa + ε)f(n)=Ω(nlogb⁡a+ε)\qquad \displaystyle f(n) = \Omega(n^{\log_b a + \varepsilon}) สำหรับค่าคงที่และ ifε > 0ε>0\varepsilon > 0 ฉ( n / b ) ≤ c f( n )af(n/b)≤cf(n)\qquad \displaystyle af(n/b) \leq cf(n) [ …

6
การหาค่า XOR สูงสุดของตัวเลขสองตัวในช่วงเวลาหนึ่ง: เราจะทำได้ดีกว่าสมการกำลังสองหรือไม่?
สมมติว่าเรากำลังได้รับสองหมายเลขและและที่เราต้องการที่จะหาสำหรับL \ le i, \, J \ le Rlllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r อัลกอริทึมnaïveเพียงตรวจสอบคู่ที่เป็นไปได้ทั้งหมด เช่นในทับทิมเรามี: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end ฉันรู้สึกว่าเราสามารถทำได้ดีกว่าสมการกำลังสอง มีอัลกอริทึมที่ดีกว่าสำหรับปัญหานี้หรือไม่?

3
มีอะไรผิดปกติกับจำนวนเงินของเงื่อนไขรถม้าสี่ล้อ?
ฉันเขียน ∑i=1n1i=∑i=1nO(1)=O(n)∑i=1n1i=∑i=1nO(1)=O(n)\qquad \displaystyle \sum\limits_{i=1}^n \frac{1}{i} = \sum\limits_{i=1}^n \cal{O}(1) = \cal{O}(n) แต่เพื่อนของฉันบอกว่านี่มันผิด จากแผ่นโกง TCS ฉันรู้ว่าผลรวมจะเรียกว่าซึ่งมีการเจริญเติบโตในลอการิทึมn ดังนั้นขอบเขตของฉันจึงไม่คมมาก แต่ก็เพียงพอสำหรับการวิเคราะห์ที่ฉันต้องการHnHnH_nnnn ฉันทำอะไรผิด? แก้ไข : เพื่อนของฉันบอกว่าด้วยเหตุผลเดียวกันเราสามารถพิสูจน์ได้ ∑i=1ni=∑i=1nO(1)=O(n)∑i=1ni=∑i=1nO(1)=O(n)\qquad \displaystyle \sum\limits_{i=1}^n i = \sum\limits_{i=1}^n \cal{O}(1) = \cal{O}(n) เห็นได้ชัดว่านี่ผิด! เกิดขึ้นที่นี่คืออะไร?

6
n * log n และ n / log n เทียบกับเวลาที่ใช้พหุนาม
ผมเข้าใจว่าจะเร็วกว่าΘ ( n log n )และช้ากว่าΘ ( n / log n ) อะไรคือสิ่งที่ยากสำหรับผมที่จะเข้าใจวิธีการที่จริงเปรียบเทียบΘ ( n log n )และΘ ( n / log n )กับΘ ( n ฉ )ที่0 < ฉ< 1Θ ( n )Θ(n)\Theta(n)Θ ( n บันทึกn )Θ(nlog⁡n)\Theta(n\log n)Θ ( n /บันทึกn )Θ(n/log⁡n)\Theta(n/\log n)Θ ( n บันทึกn )Θ(nlog⁡n)\Theta(n \log n)Θ …

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