Memecahkan relasi yang berulang


8

Saya ingin membuktikan bahwa kompleksitas waktu dari suatu algoritma adalah polylogarithmic dalam skala input.

Relasi pengulangan dari algoritma ini adalah , di mana .T(2n)≤T(n)+T(na)a∈(0,1)

Tampaknya untuk beberapa tergantung pada . Tapi saya tidak bisa membuktikan ketidaksetaraan ini. Bagaimana mengatasi hubungan pengulangan ini?T(n)≤logβ⁡nβa

Saya hanya ingin mendapatkan polylogarithmic batas atas di n.


1
a<1, Saya berasumsi? Juga, apakah Anda memeriksa pertanyaan referensi kami ? Saya tidak berpikir kasus spesifik yang Anda tanyakan secara eksplisit dibahas di sana tetapi ada banyak teknik yang dijelaskan.
— David Richerby

1
Tidak ada teorema "master" untuk tipe ini yang saya sadari; lih pertanyaan saya ini dan ini . (cc @DavidRicherby)
— Raphael

Jawaban:


4

Dugaan Anda salah. Bahkan, tidak sulit untuk menunjukkan asumsi ituT(n)>0 untuk semua n>0, kemudian T(n)=Ω(logk⁡n)untuk semua k. Memang, untuk menahan ini kita perlu itu cukup besarn kami akan memiliki

(1+ak)logk⁡n=logk⁡n+logk⁡na≥logk⁡(2n),
atau 1+akklog⁡n≥log⁡n+log⁡2, yang berlaku selama [1+akk−1]log⁡n≥log⁡2, dan khususnya untuk yang cukup besar n.

Apa urutan pertumbuhan yang benar T(n)? Untuk mencoba dan mencari tahu, tulisS(n)=T(2n). Perulangan sekarang menjadi

S(n+1)=S(n)+S(an).
Untuk yang besar n, kami harapkan S(n+1)−S(n) menjadi sangat dekat S′(n), dan secara heuristik kita harapkan itu S memuaskan S′(n)=S(an). Persamaan ini tampaknya agak sulit untuk dipecahkan, tetapi solusi perkiraannya adalahS(n)=nΘ(log⁡n). Mengganti kembali, kami menyimpulkan bahwa urutan pertumbuhanT(n) harus seperti (log⁡n)Θ(log⁡log⁡n).

Tampaknya logk⁡(2n)=(log⁡2+log⁡n)k. Batas bawah tidak berlaku.
— Qiang Li

@QiangLi Terima kasih telah menemukan kesalahan. Namun batas bawah memang berlaku, begitu argumen diubah.
— Yuval Filmus
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.