Phương pháp không thể nén được cho là đơn giản hóa việc phân tích các thuật toán cho trường hợp trung bình. Theo những gì tôi hiểu, điều này là do không cần phải tính toán tất cả các kết hợp đầu vào có thể có cho thuật toán đó và sau đó rút ra độ phức tạp trung bình. Thay vào đó, một chuỗi không thể nén được lấy làm đầu vào. Là một chuỗi không thể nén là điển hình, chúng ta có thể giả sử rằng đầu vào này có thể hoạt động như một xấp xỉ chính xác của trường hợp trung bình.
Tôi bị mất liên quan đến việc thực sự áp dụng Phương pháp không thể nén cho một thuật toán. Ở một khía cạnh khác, tôi không phải là một nhà toán học, nhưng nghĩ rằng lý thuyết này có những ứng dụng thực tế trong lập trình hàng ngày.
Cuối cùng, tôi muốn tìm hiểu làm thế nào tôi có thể suy ra trường hợp trung bình của bất kỳ thuật toán nào, dù là tầm thường hay phức tạp. Ai đó có thể vui lòng chứng minh cho tôi cách phương pháp có thể được áp dụng cho một thuật toán đơn giản không? Chẳng hạn, được cung cấp một chuỗi đầu vào S, lưu trữ tất cả các ký tự duy nhất trong S, sau đó in riêng từng ký tự:
void uniqueChars(String s) {
char[] chars = chars[ s.length() ]
int free_idx = 0;
for (int i = 0; i < s.length(); i++) {
if (! s[i] in chars) {
chars[free_idx] = s[i]
free_idx++;
}
}
for (int i = 0; i < chars.length(); i++) {
print (chars[i])
}
}
Giả sử tìm kiếm tuyến tính để kiểm tra xem mảng có chứa phần tử hay không.
Đoạn mã trên chỉ nhằm mục đích tranh luận. Các thuật toán tốt hơn mà theo đó lý thuyết có thể được chứng minh là chấp nhận được, tất nhiên.
Tôi đã hỏi câu hỏi này trên StackOverflow ( https://stackoverflow.com/q/24619383/3813812 ) vào tháng 7 năm 2014 và đã nhận được một vài bình luận hữu ích nhưng không phải là một câu trả lời chắc chắn. Như một trong những người bình luận đã chỉ ra, câu hỏi này phù hợp hơn với Khoa học máy tính StackExchange, vì vậy tôi hỏi ở đây hôm nay.
Một số tài liệu mà tôi đã xem xét bao gồm:
Giới thiệu về độ phức tạp Kolmogorov và các ứng dụng của nó, bởi Ming Li và Paul MB Vitányi
https://www.cs.duke.edu/~reif/cifts/complectures/Li/KC-Lecture1.pdf
http://www.detectingdesign.com/PDF%20Files/Kolmogorov%20Complexity%202.pdf
Trong số một số tài nguyên khác mà tôi không có liên kết trên tay.
Nếu sự hiểu biết của tôi về khả năng áp dụng độ phức tạp Kolmogorov là không chính xác hoặc những gì tôi yêu cầu là không thực tế, tôi sẽ đánh giá cao một tuyên bố liên quan đến thực tế.