Teorema Master adalah alat yang indah untuk memecahkan beberapa jenis perulangan . Namun, kami sering mengabaikan bagian integral ketika menerapkannya. Misalnya, selama analisis Mergesort kami dengan senang hati pergi dari
untuk
hanya mempertimbangkan . Kami meyakinkan kami sendiri bahwa langkah ini valid - yaitu, - karena berperilaku "baik". Secara umum, kita mengasumsikan untuk penyebut yang sama. T ∈ Θ ( T ′ ) T n = b k b
Mudah untuk membuat rekurensi yang tidak memungkinkan penyederhanaan ini dengan menggunakan setan . Misalnya, pengulangan di atas untuk / denganT
akan menghasilkan dengan menggunakan teorema Master dengan cara biasa, tetapi jelas ada urutan yang tumbuh seperti . Lihat di sini untuk contoh lain yang lebih rumit.Θ ( n log n )
Bagaimana kita bisa membuat ini "dengan baik" ketat? Saya cukup yakin monotonisitas sudah mencukupi, tetapi perulangan Mergesort yang sederhana pun tidak monoton; ada komponen periodik (yang didominasi tanpa gejala). Apakah cukup untuk menyelidiki , dan kondisi apa yang diperlukan dan memadai pada yang memastikan teorema Master bekerja?f
Jawaban:
Sepanjang jawaban ini, kami menganggap dan adalah non-negatif. Bukti kami berfungsi kapan saja untuk beberapa monoton . Ini termasuk contoh Mergesort Anda, di mana , dan fungsi apa pun yang memiliki tingkat pertumbuhan polinomial (atau bahkan ).T f = Θ ( g ) g f = Θ ( n ) Θ ( n a log b n )f T f=Θ(g) g f=Θ(n) Θ(nalogbn)
Mari kita perhatikan dulu kasus bahwa adalah monoton non-menurun (kami akan mengendurkan asumsi ini nanti). Kami berkonsentrasi pada pengulangan sampel Anda Perulangan ini membutuhkan dua kasus dasar, dan . Kami membuat asumsi bahwa , yang juga akan kita bersantai nanti.T ( n ) = T ( ⌊ n / 2 ⌋ ) + T ( ⌈ n / 2 ⌉ ) + f ( n ) . T ( 0 ) T ( 1 ) T ( 0 ) ≤ T ( 1 )f
Saya mengklaim bahwa adalah monoton yang tidak berkurang. Kami membuktikan dengan induksi lengkap bahwa . Ini diberikan untuk , jadi mari . Kami memiliki Ini menyiratkan bahwa Jadi jika , kita selesai. Ini selalu terjadi jika solusi untuk kekuatan dua adalah dalam bentuk .T ( n + 1 ) ≥ T ( n ) n = 0 n ≥ 1 T ( n + 1 )T(n) T(n+1)≥T(n) n=0 n≥1 T(2⌊ log 2 n⌋)≤T(n)≤T(2⌈ log 2 n⌋). T(2m)=Θ
Sekarang mari kita santai dengan asumsi bahwa . Pertimbangkan rekurensi baru didefinisikan dengan cara yang persis sama, hanya . Kita dapat membuktikan dengan induksi bahwa . Demikian pula, kita dapat mendefinisikan perulangan baru memuaskan , dan kemudian . Dengan menggunakan teorema Master, kita melihat bahwa dan untuk fungsi yang sama , dan juga juga.T(0)≤T(1) T′ T′(0)=T′(1)=min(T(0),T(1)) T′(n)≤T(n) T′′ T′′(0)=T′′(1)=max(T(0),T(1)) T(n)≤T′′(n) T′=Θ(h) T′′=Θ(h) h T=Θ(h)
Sekarang mari kita santai dengan asumsi bahwa adalah monoton. Misalkan untuk beberapa fungsi monoton . Jadi untuk beberapa dan cukup besar. Kami berasumsi untuk kesederhanaan bahwa ; kasus umum dapat ditangani seperti pada paragraf sebelumnya. Sekali lagi kita mendefinisikan dua rekurensi dengan mengganti dengan (masing-masing). Sekali lagi teorema Master akan memberikan hasil yang sama (hingga kelipatan konstan), yang juga identik (hingga kelipatan konstan) dengan apa yang akan kita dapatkan dengan menyelesaikan perulangan asli hanya pada kekuatan dua.f = Θ ( g ) g c g ( n ) ≤ f ( n ) ≤ C g ( n ) c , C > 0 n n = 0f f=Θ(g) g cg(n)≤f(n)≤Cg(n) c,C>0 n n=0 T′,T′′ f cg,Cg
sumber