Có một thuật toán để tối ưu hóa độ phức tạp thời gian / không gian thuật toán không?


9

Vào những năm 1950, một số phương pháp tối thiểu hóa mạch cho các hàm Boolean đã được phát minh. Có một phần mở rộng của các phương thức đó hoặc bất cứ điều gì tương tự để tối ưu hóa thời gian hoặc độ phức tạp không gian của các thuật toán không?

Ví dụ, việc triển khai sắp xếp bong bóng làm đầu vào cho thuật toán như vậy sẽ tạo ra việc thực hiện thuật toán sắp xếp với độ phức tạp thời gian gần hơn với .Ôi(nđăng nhậpn)


1
Đi chỗ khác!! Chúng tôi CSs kiếm sống từ việc dạy các thuật toán tinh vi, đề nghị của bạn sẽ khiến chúng tôi không có việc làm!
vonbrand

Chà ... bạn mong chờ điều gì từ AI?
Tối ưu hóa

Sắp xếp bong bóng không phải là một hàm Boolean. Tệ hơn, không phải tất cả các thuật toán sắp xếp đều tương đương! Ví dụ, một số không ổn định.
Yuval Filmus

Bạn hoàn toàn đúng nhưng sắp xếp bong bóng và "sắp xếp tốt" chỉ là một ví dụ về những gì tôi thấy là đầu vào và đầu ra, chúng ta đừng tập trung vào chi tiết.
Tối ưu hóa

@YuvalFilmus chắc chắn trả về một mảng đã sắp xếp không dễ hơn trả về đúng hay sai
vonbrand

Câu trả lời:


11

Tra cứu định lý tăng tốc của Blum (vâng, bài viết này ít thông tin hơn, hãy xem một cuốn sách về lý thuyết phức tạp). Về cơ bản nó nói rằng có những chương trình có một chương trình thực hiện cùng một công việc nhanh hơn bởi bất kỳ lề nào được chỉ định cho hầu hết tất cả dữ liệu đầu vào.

Theo định lý của Rice , không thể biết liệu hai chương trình đã cho có làm cùng một công việc hay không.

Có, đối với một số khái niệm rất hạn chế về "chương trình", đưa ra một ví dụ người ta có thể xây dựng chương trình "tốt nhất có thể" cho công việc. Các lớp quan trọng, thậm chí. Nhưng khác xa với bất cứ thứ gì có thể thể hiện bong bóng.

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.