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+...+n⏟catatan2⁡n=k waktu=Θ(ncatatan⁡n)

Selanjutnya saya menghadapi masalah berikut:

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

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 catatan⁡n 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:Ck2k⋅CT(n)

T(n)=∑k=1catatan2⁡n2kC=C(2catatan2⁡n+1-2)=Θ(n)

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

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

Ini akan menjadi jumlah yang cukup kompleks:

T(n)=catatan2⁡n+∑k=1catatan2⁡n2kcatatan2⁡(n2k)

Saya akan sementara menunjukkan dan menyederhanakan penjumlahan di atas:m=catatan2⁡n

∑k=1m2kcatatan2⁡(n2k)==∑k=1m2k(catatan2⁡n-k)==catatan2⁡n∑k=1m2k-∑k=1mk2k==catatan2⁡n(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=1mk2kmcatatan2⁡n

T(n)=catatan2⁡n+2ncatatan2⁡n-2catatan2⁡n-2ncatatan2⁡n+2n-2
=2n-catatan2⁡n-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? 20catatan2⁡n20+21catatan2⁡n21+22catatan2⁡n22+...+2catatan2⁡ncatatan2⁡n2catatan2⁡n=catatan2⁡n+2catatan2⁡n2+4catatan2⁡n4+...+ncatatan2⁡1n=8catatan2⁡8+2catatan2⁡4+4catatan2⁡2+8catatan2⁡1=3+4+4=11
— anir

@anir - Gunakan kesetaraancatatan2⁡(n2k)=catatan2⁡n-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.