Apa yang dimaksud dengan batas atas yang asimptotik ketat?

15

Dari apa yang telah saya pelajari ikatan ketat asimptot artinya terikat dari atas dan bawah seperti pada notasi theta. Tapi apa arti batas atas yang asimptotik ketat untuk notasi Big-O?

Vivek Kumar
sumber
Ini membingungkan saya juga. Mengapa penulis tidak dapat mengatakan "theta"? Mengapa menciptakan istilah yang tidak perlu?
beroal

Jawaban:

20

Mengatakan bahwa ikatan O-besar "ketat secara asimptot" pada dasarnya berarti bahwa penulis seharusnya menulis . Misalnya, O ( x 2 ) berarti tidak lebih dari beberapa kali konstan  x 2 untuk semua x yang cukup besar  ; "Asymptotically tight" berarti itu benar-benar adalah beberapa kali konstan  x 2 untuk x yang cukup besar  dan tidak, katakanlah, beberapa kali konstan  x 1.999 .Θ(-)HAI(x2)x2xx2xx1.999

David Richerby
sumber
13

Ini contoh yang menjelaskannya (dan contoh nyata untuk jawaban David yang baik).

Misalkan Anda memiliki algoritma yang diberikan sebagai masukan array bilangan bulat . Algoritme memindai melalui array, dan menambah penghitung awalnya diatur ke nol setiap kali ia melihat elemen yang bahkan bilangan bulat. Kita bisa membuktikan berjalan algoritma dalam katakanlah O ( n 3 ) waktu, di mana n adalah jumlah elemen dalam A . Tapi kita juga bisa memberikan batasan yang lebih ketat , dan mengatakan itu berjalan dalam waktu O ( n ) . Batas ini ketat asimptotik: pada kenyataannya, karena membaca input sudah memakan waktu Ω ( n ) , kita bisa lebih tepat dan mengatakan algoritma membutuhkanSEBUAHHAI(n3)nSEBUAHHAI(n)Ω(n) waktu.Θ(n)

Juho
sumber
3
+1, tetapi saya pikir bahaya dalam pilihan Anda sebagai contoh adalah bahwa hal itu dapat disalahartikan untuk mengklaim bahwa untuk batas atas menjadi asimtotik yang ketat, itu pasti bahwa tidak ada algoritma yang lebih cepat untuk masalah ini dimungkinkan, ketika itu tidak benar. (Saya mengatakan ini karena setiap kali saya melihat pengamatan "Anda membutuhkan setidaknya waktu untuk membaca input", itu digunakan untuk membenarkan klaim "tidak ada algoritma yang lebih cepat" ".Ω(n)
j_random_hacker
1
@ j_random_hacker Anda benar, kita harus berhati-hati dengan itu. Untuk mengulangi, tentu saja suatu ikatan yang asimptotik tidak mengatakan apa-apa tentang kemungkinan memiliki algoritma yang lebih cepat secara umum.
Juho