Giải quyết mối quan hệ lặp lại


7

Giải quyết mối quan hệ lặp lại . Cuốn sách mà ví dụ này là, tuyên bố sai rằng bằng cách đoán và sau đó tranh luận T(n)=2T(n/2)+n
T(n)=O(n)T(n)cn

T(n)2(cn/2)+ncn+n=O(n) wrong!!

vì là hằng số. Lỗi là chúng tôi chưa chứng minh được hình thức chính xác của giả thuyết quy nạp.c

Ở trên tôi đã trích dẫn chính xác những gì cuốn sách nói. Bây giờ câu hỏi của tôi là tại sao chúng ta không thể viết trong đó và bây giờ chúng ta có và do đó ?cn+n=dnd=c+1T(n)dnT(n)=O(n)

Ghi chú:

  1. Câu trả lời đúng làT(n)=O(nlogn).
  2. Cuốn sách tôi đang đề cập ở đây là Giới thiệu về thuật toán của Cormen và cộng sự, trang 86, ấn bản thứ 3.

4
Không, bạn không thể. Giả thuyết cảm ứng của bạn là , và đây là những gì bạn phải chứng minh. Trên thực tế, sự tái phát không giải quyết được . T(n)cnO(n)
A.Schulz

Câu trả lời:


7

Các tác giả đưa ra câu trả lời:

Lỗi là chúng tôi chưa chứng minh được hình thức chính xác của giả thuyết quy nạp, nghĩa là .T(n)cn

Cấp, đó là điều khó hiểu nếu bạn không quen làm cảm ứng (phải), vì họ không thực hiện quy nạp một cách rõ ràng / chặt chẽ. Tóm lại: bạn cần phải có một hằng số cho tất cả , nhưng bằng chứng này (un) xây dựng nhiều (một trên ).cnn


Nói lâu, hãy nhớ nghĩa là gì:T(n)O(n)

cN.n0N.nn0.T(n)cn

hoặc, tương đương,

cN.nNT(n)cn .

Các hình thức thứ hai hoạt động tốt hơn cho một cảm ứng như bạn biết neo. Vì vậy, bạn cần một hằng số cung cấp giới hạn trên cho tất cả .c n

Hãy xem xét cảm ứng làm gì:

  • Neo cảm ứng: Neo của không được cung cấp rõ ràng, nhưng nó không đổi, vì vậy chúng tôi tìm thấy một phù hợp .Tc
  • Giả thuyết cảm ứng: Có một số c vậy nên T(k)cn cho tất cả kn, đối với một số tùy ý nhưng cố định n.
  • Bước quy nạp: như thể hiện trong câu hỏi, xây dựng d>c vậy nên T(n+1)dn.

Vì vậy, trong thực tế, chúng tôi xây dựng một hằng số mới cho mọin. Điều đó không phù hợp với định nghĩa củaOở tất cả! Và, tệ hơn, nó hoàn toàn vô nghĩa: mọi chức năng đều có thể bị "giới hạn" bởi bất kỳ chức năng nào khác nếu bạn có thể điều chỉnh hệ số vớin.

Về bằng chứng cảm ứng, c phải là một phần của yêu cầu (và nó được ẩn trong O), đó là ràng buộc "bên ngoài" của cảm ứng. Sau đó, giống nhauchiện lên trong neo, giả thuyết và bước. Xem phần cuối của câu trả lời này để biết ví dụ.


Cảm ơn, tôi đã hiểu quan điểm và tất nhiên là không có ý nghĩa gì khi có hằng số mới cho mọi n. Nhưng làm thế nào bạn đã viết "hoặc tương đương ...." (thống kê thứ ba) tức là chúng ta luôn có thể tìm thấy như vậycn01.
Saurabh

2
Trong thực tế, c=1010100!thường làm việc
JeffE

@SaurabhHota: Đã cho n0c từ mẫu đầu tiên, c+maxnn0T(n)/nhoạt động như hằng số cho dạng thứ hai. Hướng khác là ngay lập tức, tức là hằng số mang theon0=1(hoặc một giá trị tùy ý, trên thực tế).
Raphael
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.