Tại sao có điều kiện đều đặn trong định lý tổng thể?


15

Tôi đã đọc Giới thiệu về Thuật toán của Cormen et al. và tôi đang đọc phát biểu của định lý Master bắt đầu từ trang 73 . Trong trường hợp 3 cũng có một điều kiện đều đặn cần được thỏa mãn để sử dụng định lý:

... 3. Nếu

f(n)=Ω(nlogba+ε)

với một số hằng số và nếuε>0

     [đây là điều kiện đều đặn]af(n/b)cf(n)

đối với một số hằng số và với tất cả n đủ lớn , thì ..c<1n

Ai đó có thể cho tôi biết tại sao điều kiện thường xuyên là cần thiết? Làm thế nào để định lý thất bại nếu điều kiện không được thỏa mãn?


bạn có thể viết trường hợp này là gì và điều kiện quy định là gì?

3
Tôi không có câu trả lời dứt khoát cho bạn, nhưng có vẻ như nếu điều kiện đều đặn không giữ được, thì các bài toán con càng mất nhiều thời gian thì chúng càng nhỏ, do đó bạn có được sự phức tạp vô hạn.

Tôi không chắc chắn rằng điều kiện đều đặn là cần thiết để kết luận của định lý, nhưng tôi nghĩ rằng nó cần thiết cho bằng chứng được sử dụng. Với điều kiện đều đặn, bạn có một bằng chứng khá đơn giản, nếu không, ít nhất nó sẽ có lông.

Câu trả lời:


10

Không phải là một bằng chứng nghiêm ngặt, mà là một lời giải thích "từ đỉnh đầu của tôi".

Hãy tưởng tượng sự tái phát như một cái cây. Trường hợp thứ ba bao gồm kịch bản khi nút gốc chi phối thời gian chạy một cách không có triệu chứng, tức là hầu hết các công việc đang được thực hiện trong nút sởi trên đỉnh của cây tái phát. Rồi thời gian chạy là Θ ( f ( n )aT(n/b)+f(n) .Θ(f(n))

Để đảm bảo root thực sự làm được nhiều việc hơn bạn cần

.af(n/b)cf(n)

Điều này nói rằng (số lượng công việc được thực hiện trong thư mục gốc) cần ít nhất phải bằng tổng công việc được thực hiện ở các cấp thấp hơn. (Sự tái phát được gọi là một lần vào n /f(n)a của đầu vào.)n/b

Ví dụ: tái phát công việc ở cấp độ dưới gốc là một phần tư lớn và chỉ được thực hiện hai lần ( n / 4 + n / 4 ) so với n nên gốc chiếm ưu thế .T(n)=2T(n/4)+n(n/4+n/4)n

Nhưng nếu chức năng không đáp ứng điều kiện đều đặn thì sao? Ví dụ thay vì n ? Sau đó, công việc được thực hiện ở các cấp thấp hơn có thể lớn hơn công việc được thực hiện trong thư mục gốc, do đó bạn không chắc chắn rằng gốc chiếm ưu thế.cos(n)n


3
Tôi đã sử dụng định dạng đẹp hơn cho văn bản toán học của bạn. Bạn có thể nhấp vào liên kết "đã chỉnh sửa" và xem những gì tôi đã làm.
Juho

7

a=1b=2

T(2n)=k=0nf(2k).
For case 3 to apply, we need f(n)=Ω(nϵ) (for some ϵ>0) and the regularity condition, f(n/2)(1δ)f(n) (for some δ>0). You get the regularity condition from the proof, i.e. it's a proof-generated concept. While the regularity condition isn't necessary (consider the example given on Wikipedia, f(n)=n(2cosn)), you can't drop it completely, as the following example demonstrates. Consider
f(2n)=22log2n>22log2n1=2n/2.
Let n=2m+11. Then
T(2n)=k=0mt=2k2k+1122k=k=0m22k+k=Θ(22m+m),f(2n)=22m.
So it's not true that T(2n)=Θ(f(2n)).

There is a more general theorem, Akra-Bazzi, in which the regularity condition is replaced by an explicit quantity that comes into the result.


Sorry for resuming this old answer. Could you clarify why your function f violates the regularity condition?
Maiaux

Sometimes f(n/2)=f(n).
Yuval Filmus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.