Memecahkan T (n) = 2T (n / 2) + log n dengan metode pengulangan


9

Saya sedang memecahkan hubungan pengulangan. Hubungan perulangan pertama adalah

T(n)=2T(n/2)+n

Solusi yang satu ini dapat ditemukan oleh Master Theorem atau metode pengulangan pohon. Pohon perulangan akan seperti ini:

! [masukkan deskripsi gambar di sini

Solusinya adalah:

T(n)=n+n+n+...+ncatatan2n=k waktu=Θ(ncatatann)

Selanjutnya saya menghadapi masalah berikut:

T(n)=2T(n/2)+catatann

Buku saya menunjukkan bahwa dengan teorema master atau bahkan dengan beberapa pendekatan substitusi, perulangan ini memiliki solusi Θ(n) . Ini memiliki struktur yang sama seperti pohon di atas dengan satu-satunya perbedaan yang pada setiap panggilan melakukan catatann bekerja. Namun saya tidak dapat menggunakan pendekatan di atas yang sama untuk masalah ini.

Jawaban:


5

Istilah non-rekursif dari hubungan perulangan adalah pekerjaan untuk menggabungkan solusi dari subproblem. Level dari pohon perulangan (biner) Anda mengandung subproblem dengan ukuran , jadi Anda harus terlebih dahulu menemukan pekerjaan total pada level dan kemudian meringkas pekerjaan ini pada semua tingkat pohon.k2kn2kk

Misalnya, jika pekerjaannya adalah konstan , maka total pekerjaan pada level akan menjadi , dan total waktu akan diberikan dengan jumlah berikut:Ck2kCT(n)

T(n)=k=1catatan2n2kC=C(2catatan2n+1-2)=Θ(n)

Namun, jika pekerjaan tumbuh secara logaritmik dengan ukuran masalah Anda harus menghitung solusi secara akurat. Serialnya akan seperti berikut:

T(n)=catatan2n+2catatan2(n2)+4catatan2(n4)+8catatan2(n8)+....catatan2n waktu

Ini akan menjadi jumlah yang cukup kompleks:

T(n)=catatan2n+k=1catatan2n2kcatatan2(n2k)

Saya akan sementara menunjukkan dan menyederhanakan penjumlahan di atas:m=catatan2n

k=1m2kcatatan2(n2k)==k=1m2k(catatan2n-k)==catatan2nk=1m2k-k=1mk2k==catatan2n(2m+1-2)-(m2m+1-2m+1+2)

Di sini saya menggunakan rumus untuk jumlah dari kalkulator aljabar simbolik online Wolfram | Alpha . Maka kita perlu mengganti kembali dengan :k=1mk2kmcatatan2n

T(n)=catatan2n+2ncatatan2n-2catatan2n-2ncatatan2n+2n-2
=2n-catatan2n-2=Θ(n)

QED


1
Sial, aku membuat kesalahan super bodoh dalam mengajukan pertanyaan. Sekarang dikoreksi. Namun sekarang saya tidak dapat memahami bagaimana barang-barang membatalkan satu sama lain dalam seri: .. Ini adalah seri yang Anda dengan benar? Mencoba dengan , saya mendapat . Apa yang salah di sini? 20catatan2n20+21catatan2n21+22catatan2n22+...+2catatan2ncatatan2n2catatan2n=catatan2n+2catatan2n2+4catatan2n4+...+ncatatan21n=8catatan28+2catatan24+4catatan22+8catatan21=3+4+4=11
anir

@anir - Gunakan kesetaraancatatan2(n2k)=catatan2n-k
HEKTO

1
Saya masih belum mengerti bagaimana seri itu runtuh menjadi : '¬ (Math-noob-sini ...Θ(n)
anir

@ anir - Saya akan memperluas jawaban saya
HEKTO

@ HEKTO Jika Anda menyelesaikan equ di atas komentar, Anda masih mendapatkan nlog (n) ?? Saya sudah mencoba banyak. tolong bantu saya di sini
roottraveller
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.