Cho một máy tính nhanh và chậm, ở kích thước nào thì máy tính nhanh chạy thuật toán chậm đánh bại máy tính chậm chạy thuật toán nhanh?


8

Nguồn gốc của câu hỏi này đến từ một khóa học đại học mà tôi đang tham gia, bao gồm phần giới thiệu về phân tích các thuật toán. Đây không phải là bài tập về nhà, mà là một câu hỏi được hỏi trong CLRS.

Bạn có một máy chạy chậm ở MIPS và máy nhanh chạy ở y MIPS. Bạn cũng có hai thuật toán cùng loại, nhưng độ phức tạp thời gian chạy khác nhau: một thuật toán "chậm" chạy ở T ( n ) = c 1 n 2 trong khi thuật toán "nhanh" chạy ở T ( n ) = c 2 n log n .xyT(n)=c1n2T(n)=c2nlogn

Bạn thực hiện thuật toán chậm trên máy nhanh và thuật toán nhanh trên máy chậm. Giá trị lớn nhất của n sao cho máy nhanh chạy thuật toán chậm đánh bại máy chậm chạy thuật toán nhanh?

Giải pháp của tôi cho đến nay:

Tìm tập hợp tất cả sao cho c 2 n log nn trong đónlà số tự nhiên.

c2nlognx>c1n2y
n

Đây là công việc của tôi cho đến nay:

{n:c2nlog2nx>c1n2y,nN}={n:n<c2yc1xlog2n,nN}

Giải pháp duy nhất hiện lên trong đầu tôi là plug-n-chug tất cả các giá trị của cho đến khi tôi tìm thấy n đầu tiên trong đón

n<c2yc1xlog(n)

không còn giữ


3
Đây thực sự là một câu hỏi của toán học hơn là một câu hỏi của khoa học máy tính. Nếu bạn thay bằng x thì bạn có phương trình siêu việt so với thực, mà bạn thực sự không thể giảm thành giải pháp dạng đóng cho x . Khi bạn tìm thấy một x , câu trả lời của bạn là x được làm tròn xuống số nguyên gần nhất. Nói cách khác, "plug-n-chug" hoặc "đoán và kiểm tra" chỉ tốt như bạn có thể làm trong trường hợp chung. Điều này thường biểu hiện dưới dạng phương pháp đồ họa hoặc số. nxxxx
Patrick87

Câu trả lời:


2

Hãy xem xét bất bình đẳng cuối cùng của bạn:

n<c2yc1xlog(n)

ClognC=c2yc1x

n=Clog(n)

và tìm ra thuật toán nào nhanh hơn trong khoảng đó bằng cách tính toán các giá trị hàm tương ứng tại một thời điểm nào đó trong khoảng tương ứng.

C

n=eW1(ln2C)

Celn2WkC116,74C=17


Chỉ cần chắc chắn: bạn đã giải thích phương trình của tôi là có log tự nhiên hoặc log-base-2? Tôi nên làm rõ rằng mọi phiên bản của log (n) là của cơ sở 2 và sẽ sửa đổi câu hỏi một cách thích hợp.
DoggoDougal

log=log2log=lnlog2ln2
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.