Apa sebenarnya yang diwakili oleh notasi besar?


179

Saya benar-benar bingung tentang perbedaan antara O besar, Omega besar, dan notasi Theta besar.

Saya mengerti bahwa O besar adalah batas atas dan Omega besar adalah batas bawah, tetapi apa yang dilambangkan oleh Ө besar (theta)?

Saya telah membaca bahwa itu berarti terikat erat , tetapi apa artinya itu?


Jawaban:


93

Ini berarti bahwa algoritmanya adalah big-O dan big-Omega dalam fungsi yang diberikan.

Misalnya, jika ya Ө(n), maka ada beberapa konstanta k, sehingga fungsi Anda (run-time, apa pun), lebih besar daripada n*kuntuk yang cukup besar n, dan beberapa konstanta Klain sehingga fungsi Anda lebih kecil daripada n*Kuntuk yang cukup besar n.

Dengan kata lain, untuk ukuran yang cukup besar n, diapit di antara dua fungsi linier:

Untuk k < Kdan ncukup besar,n*k < f(n) < n*K


Tidak, variabel-variabel itu agak membingungkan, mereka tidak terkait.
Aaron Robeson

@committedandroider Tidak, mereka huruf kecil dan huruf besar sehingga berbeda, dia menggunakan gaya matematika khas di mana dua "mirip" (tapi tidak terkait dengan cara apa pun di sini) variabel menggunakan huruf besar dan kecil.
Santropedro

329

Pertama mari kita pahami apa itu O besar, Theta besar, dan Omega besar. Mereka semua adalah set fungsi.

Big O memberi batas asimptotik atas , sedangkan Omega besar memberi batas bawah. Theta Besar memberi keduanya.

Segala sesuatu yang ada Ө(f(n))juga O(f(n)), tetapi tidak sebaliknya.
T(n)dikatakan berada di Ө(f(n))jika itu baik di dalam O(f(n))dan di Omega(f(n)).
Dalam terminologi set, Ө(f(n))adalah persimpangan dari O(f(n))danOmega(f(n))

Sebagai contoh, menggabungkan kasus terburuk adalah keduanya O(n*log(n))dan Omega(n*log(n))- dan juga demikian Ө(n*log(n)), tetapi juga O(n^2), karena n^2secara asimptotik "lebih besar" daripada itu. Namun, itu bukan Ө(n^2) , Karena algoritma tidak Omega(n^2).

Penjelasan matematika sedikit lebih dalam

O(n)adalah batas atas asimptotik. Jika T(n)iya O(f(n)), itu berarti bahwa dari yang tertentu n0, ada yang konstan Cseperti itu T(n) <= C * f(n). Di sisi lain, Omega besar mengatakan ada konstanta yang C2demikian T(n) >= C2 * f(n))).

Jangan bingung!

Jangan bingung dengan analisis kasus terburuk, terbaik, dan rata-rata: ketiga notasi (Omega, O, Theta) tidak terkait dengan analisis algoritma kasus terbaik, terburuk, dan rata-rata. Masing-masing dapat diterapkan untuk masing-masing analisis.

Kami biasanya menggunakannya untuk menganalisis kompleksitas algoritma (seperti contoh pengurutan gabungan di atas). Ketika kita mengatakan "Algoritma A adalah O(f(n))", apa yang sebenarnya kita maksudkan adalah "Kompleksitas algoritme dalam analisis kasus 1 terburuk adalah O(f(n))" - artinya - ini berskala "serupa" (atau secara formal, tidak lebih buruk dari) fungsinya f(n).

Mengapa kami peduli dengan ikatan asimptotik dari suatu algoritma?

Yah, ada banyak alasan untuk itu, tetapi saya percaya yang paling penting adalah:

  1. Jauh lebih sulit untuk menentukan fungsi kerumitan yang tepat , sehingga kami "berkompromi" pada notasi O-besar / besar-Theta, yang cukup informatif secara teoritis.
  2. Jumlah persis ops juga tergantung platform . Misalnya, jika kita memiliki vektor (daftar) 16 angka. Berapa banyak ops yang dibutuhkan? Jawabannya adalah, tergantung. Beberapa CPU memungkinkan penambahan vektor, sementara yang lain tidak, jadi jawabannya bervariasi antara implementasi yang berbeda dan mesin yang berbeda, yang merupakan properti yang tidak diinginkan. Notasi O besar jauh lebih konstan antara mesin dan implementasi.

Untuk menunjukkan masalah ini, lihat grafik berikut: masukkan deskripsi gambar di sini

Jelas bahwa f(n) = 2*n"lebih buruk" daripada f(n) = n. Tetapi perbedaannya tidak sedrastis dari fungsi lainnya. Kita dapat melihat bahwa f(n)=logndengan cepat menjadi jauh lebih rendah daripada fungsi-fungsi lainnya, dan f(n) = n^2dengan cepat menjadi jauh lebih tinggi daripada yang lain.
Jadi - karena alasan di atas, kita "mengabaikan" faktor konstan (2 * dalam contoh grafik), dan hanya mengambil notasi O-besar.

Dalam contoh di atas, f(n)=n, f(n)=2*nakan ada di O(n)dan di Omega(n)- dan dengan demikian juga akan di Theta(n).
Di sisi lain - f(n)=lognakan berada di O(n)(itu "lebih baik" dari f(n)=n), tetapi TIDAK akan di Omega(n)- dan dengan demikian juga TIDAK akan berada di Theta(n).
Secara simetris, f(n)=n^2akan berada di Omega(n), tetapi TIDAK di O(n), dan dengan demikian - juga TIDAK Theta(n).


1 Biasanya, meskipun tidak selalu. ketika kelas analisis (terburuk, rata-rata dan terbaik) hilang, kami benar-benar bermaksud kasus terburuk.


4
@ KrishnaChandra: f(n) = n^2asimptotik lebih kuat n, dan dengan demikian Omega (n). Namun ini bukan O (n) (karena untuk nnilai besar , maka lebih besar c*n, untuk semua n). Karena kami mengatakan Theta (n) adalah persimpangan dari O (n) dan Omega (n), karena itu bukan O (n), tidak mungkin juga Theta (n) juga.
amit

8
Sangat menyenangkan melihat seseorang menjelaskan bagaimana notasi O-besar tidak terkait dengan waktu terbaik / terburuk dari suatu algoritma. Ada begitu banyak situs web yang muncul ketika saya google topik yang mengatakan O (T (n)) berarti kasus berjalan lebih buruk.
Will Sewell

1
@almel Ini 2 * n (2n, dua kali n) bukan 2 ^ n
amit

5
@VishalK 1. O besar adalah batas atas sebagai n cenderung tak terhingga. 2. Omega adalah batas bawah karena n cenderung tak hingga. 3. Theta adalah batas atas dan bawah karena n cenderung tak terhingga. Perhatikan bahwa semua batas hanya valid "karena n cenderung tak hingga", karena batas tidak berlaku untuk nilai n yang rendah (kurang dari n0 ). Batas berlaku untuk semua nn0 , tetapi tidak di bawah n0 di mana suku orde rendah menjadi dominan.
bain

1
@hey_you Baca jawabannya lagi. O besar, Theta, Omega untuk fungsi, bukan algoritma. Jenis penggabungan adalah Omega (n) kasus terburuk. Ini juga merupakan O (n ^ 2) kasus terbaik. Ini juga merupakan kasus terburuk Theta (nlogn). Pada dasarnya, untuk setiap analisis (terburuk / terbaik / rata-rata / ...) Anda memiliki fungsi kompleksitas T_best(n), T_worst(n), T_average(n). Mereka tidak harus identik (dan kebanyakan, tidak). O / Omega / Theta dapat diterapkan pada salah satu dari mereka secara independen.
amit

14

Theta (n): Suatu fungsi f(n)milik Theta(g(n)), jika ada konstanta positif c1dan c2sedemikian rupa sehingga f(n)dapat diapit antara c1(g(n))dan c2(g(n)). yaitu memberikan batas atas dan batas bawah.

Theta (g (n)) = {f (n): ada konstanta positif c1, c2 dan n1 sehingga 0 <= c1 (g (n)) <= f (n) <= c2 (g (n)) untuk semua n> = n1}

ketika kita mengatakan f(n)=c2(g(n))atau f(n)=c1(g(n))itu merupakan ikatan ketat asimptotik.

O (n): Ini hanya memberikan batas atas (mungkin atau mungkin tidak ketat)

O (g (n)) = {f (n): ada konstanta positif c dan n1 sehingga 0 <= f (n) <= cg (n) untuk semua n> = n1}

mis : 2*(n^2) = O(n^2)Ikatnya ketat asimptot, sedangkan ikatannya 2*n = O(n^2)tidak ketat asimptotik.

o (n): Ini hanya memberi batas atas (tidak pernah terikat ketat)

perbedaan penting antara O (n) & o (n) adalah f (n) kurang dari cg (n) untuk semua n> = n1 tetapi tidak sama dengan di O (n).

ex : 2*n = o(n^2), tapi2*(n^2) != o(n^2)


1
Anda tidak menyebutkan Omega besar, yang mengacu pada batas bawah. Kalau tidak, jawaban pertama yang sangat bagus dan selamat datang!
bohney

1
Saya suka cara dia membingkai definisi Theta (n). Terpilih!
user720694


1

Notasi Theta Besar:

Tidak ada yang mengacaukan teman !!

Jika kita memiliki fungsi bernilai positif f (n) dan g (n) mengambil argumen bernilai positif n maka ϴ (g (n)) didefinisikan sebagai {f (n): terdapat konstanta c1, c2 dan n1 untuk semua n> = n1}

di mana c1 g (n) <= f (n) <= c2 g (n)

Mari kita ambil contoh:

biarkan f (n) =

g (n) =

c1 = 5 dan c2 = 8 dan n1 = 1

Di antara semua notasi, notasi gives memberikan intuisi terbaik tentang laju pertumbuhan fungsi karena memberi kita ikatan yang ketat tidak seperti big-oh dan big -omega yang masing-masing memberikan batas atas dan bawah.

ϴ memberitahu kita bahwa g (n) sedekat f (n), laju pertumbuhan g (n) sedekat mungkin dengan laju pertumbuhan f (n).

lihat gambar untuk mendapatkan intuisi yang lebih baik


0

Pertama-tama Teori

  1. O Besar = Batas Atas O (n)

  2. Theta = Fungsi Pemesanan - theta (n)

  3. Omega = Notasi-Q (Batas Bawah) Q (n)

Mengapa Orang Sangat Bingung?

Dalam banyak Blog & Buku Bagaimana Pernyataan ini ditekankan adalah Suka

"Ini Big O (n ^ 3)" dll.

dan orang sering bingung seperti cuaca

O (n) == theta (n) == Q (n)

Tapi Yang perlu diingat adalah Mereka Hanya Fungsi Matematika Dengan Nama O, Theta & Omega

sehingga mereka memiliki Formula Umum Polinomial yang sama,

Membiarkan,

f (n) = 2n4 + 100n2 + 10n + 50,

g (n) = n4, Jadi g (n) adalah Fungsi yang Berfungsi sebagai Input dan mengembalikan Variabel dengan Biggerst Power,

F (n) & g (n) yang sama untuk Di bawah ini semua penjelasan

Fungsi O Besar (Menyediakan Batas Atas)

Big O (n4) = 3n4, Karena 3n4> 2n4

3n4 adalah nilai Big O (n4) Sama seperti f (x) = 3x

n4 memainkan peran x sini jadi,

Mengganti n4 dengan x'so, Big O (x ') = 2x', Sekarang kami berdua senang Konsep Umumnya

Jadi 0 ≤ f (n) ≤ O (x ')

O (x ') = cg (n) = 3n4

Menempatkan nilai,

0 ≤ 2n4 + 100n2 + 10n + 50 ≤ 3n4

3n4 adalah Batas Atas kami

Theta (n) Memberikan Batas Bawah

Theta (n4) = cg (n) = 2n4 Karena 2n4 ≤ Contoh Kami f (n)

2n4 adalah Nilai Theta (n4)

jadi, 0 ≤ cg (n) ≤ f (n)

0 ≤ 2n4 ≤ 2n4 + 100n2 + 10n + 50

2n4 adalah Batas Bawah kami

Omega n - Fungsi Pesanan

Ini Dihitung untuk mengetahui bahwa cuaca Batas bawah mirip dengan Batas atas,

Kasus 1). Batas Atas Mirip dengan Batas Bawah

if Upper Bound is Similar to Lower Bound, The Average Case is Similar

Example, 2n4 ≤ f(x) ≤ 2n4,
Then Omega(n) = 2n4

Kasus 2). jika Batas Atas tidak Mirip dengan Batas Bawah

in this case, Omega(n) is Not fixed but Omega(n) is the set of functions with the same order of growth as g(n).

Example 2n4 ≤ f(x) ≤ 3n4, This is Our Default Case,
Then, Omega(n) = c'n4, is a set of functions with 2 ≤ c' ≤ 3

Semoga Ini Dijelaskan !!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.