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.

anir
sumber

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

HEKTO
sumber
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