Katakanlah saya memiliki grafik dengan ujung-ujungnya. Saya ingin menjalankan BFS yang memiliki waktu berjalan .
Rasanya wajar untuk menulis bahwa waktu berjalan pada grafik ini adalah dan kemudian menyederhanakannya .
Apakah ada kesulitan untuk menggunakan pintasan "remove-the-nested-O" (tidak hanya dalam kasus ini, tetapi lebih umum)?
terminology
asymptotics
landau-notation
Kucing Unfun
sumber
sumber
Jawaban:
Mari saya mulai dengan rekomendasi: perlakukan notasi Landau seperti halnya Anda (harus) memperlakukan pembulatan: jarang, putaran terlambat. Jika Anda tahu sesuatu yang lebih tepat daripadaO(.) , gunakan sampai Anda selesai dengan semua perhitungan, dan Landauify pada akhirnya.
Adapun pertanyaannya, mari gali melalui penyalahgunaan notasi ini¹. Bagaimana kita menafsirkan sesuatu sepertih∈O(f+O(g)) ? Kita harus gantiO dengan definisi dari dalam ke luar. Jadi, kita dapatkan
lalu
yang setara dengan
Tentu saja²d(f(n)+cg(n))≤cd(f(n)+g(n)) , kami melihat bahwa ini setara dengan h∈O(f+g) ; hilangnya presisi diabaikan olehO bagaimanapun.
Bagaimana dengan kombinasi lain, katakanh∈O(f+Ω(g)) ? Jika kita mencoba yang sama di sini, kita dapatkan
Tapi ini tautologi:h tentu dibatasi di atas oleh sesuatu yang sewenang-wenang besar. Jadi, menggabungkan batas atas dan bawah dengan cara ini tidak berarti.
sumber
Saya hanya ingin menambahkan ini karena saya baru saja menemukannya. Sementara pintasan ini baik-baik saja dengan penambahan dan perkalian (saat tidak mencampurO dengan Ω ; lihat jawaban yang diterima), harus diperhatikan saat menggunakan eksponen. Contohnya:
sumber
Menurut definisi,O(g) adalah himpunan dan jika Anda menggunakan notasi ini bersarang, Anda akan memiliki satu set dalam himpunan, yang akan salah.
Definisi O-Notasi
Kesalahan
Anda menggunakan istilah sukaO(O(n)+k) di mana k dan n adalah fungsi dan O(n) adalah satu set. Tapi apa hasil dari fungsi yang ditambahkan ke set? Itu tidak didefinisikan!
Versi yang benar
Alih-alih menggunakan Sarang Landau-Simbol, Anda dapat melakukan hal berikut:O(m+k),m∈O(n)
sumber
Di Bagian 9.3 "O Manipulasi "dari buku Matematika Beton (Edisi Kedua), Knuth telah mendaftarkan beberapa aturan manipulasi padaO -notation (Berikut ini, saya berasumsi bahwa keduanya f(n) dan g( n ) positif; perhatikan bahwa pemesanan aturan telah diubah).
Dengan (3), Anda dapat membungkus / membuka fungsif( n ) dengan notasi-O. Kemudian dengan (5), Anda benar-benar dapat membungkus / membuka (atau disebut, sarang ) secara sewenang-wenang. Menggunakan (4), Anda juga dapat menambah / menghapus faktor perkalian konstan ke / dariHAI .
Kemudian, (2) dan (6) memungkinkan Anda untuk memanipulasi bersarangHAI -Catatan dalam cara yang kompatibel dengan + dan × .
sumber