Định nghĩa đơn giản (phi toán học) của thời gian đa thức?


7

Lý thuyết phức tạp tính toán là phức tạp. Sự hiểu biết của tôi về thời gian đa thức liên quan đến các lớp phức tạp thời gian khác, chẳng hạn như thời gian đa thức không xác định. Điều này tốt cho các kỹ sư và nhà toán học, nhưng tôi đang tìm một định nghĩa đơn giản về thuật ngữ này, phù hợp với giáo dân.

  • Sẽ không chính xác khi sử dụng thời gian đa thức là "thời gian được đo trong các phép toán (tính toán)?"

Rõ ràng sẽ có các bằng cấp tiếp theo cho các lớp phức tạp thời gian khác nhau và độ phức tạp thời gian có thể đúng hơn là tỷ lệ dựa trên kích thước vấn đề, nhưng một lần nữa, điều đó phức tạp hơn một chút so với những gì tôi đang tìm kiếm ở đây.


2
Thời gian không đổi: thực hiện một lần dễ dàng thực hiện hàng triệu lần rất dễ dàng, thời gian đa thức: thực hiện một lần dễ dàng thực hiện hàng triệu lần là khó khăn, thời gian theo cấp số nhân: thực hiện một lần dễ dàng thực hiện hàng triệu lần là gần như không thể.
slebetman

Bạn có thực sự đang cố gắng giải thích thời gian đa thức cho một giáo dân, hay chỉ là sự khác biệt thực tế giữa thuật toán thời gian đa thức và thuật toán thời gian theo cấp số nhân? Có lẽ họ không cần biết "thời gian đa thức" thực sự có nghĩa là gì?
Roman Starkov

1
@RomanStarkov Có lẽ tôi nên đặt câu hỏi "Định nghĩa phi toán học về độ phức tạp thời gian" trái ngược với việc đề cập cụ thể đến thời gian đa thức (dường như đã gây ra một số nhầm lẫn về bản chất của yêu cầu của tôi;) Thực sự, đó là một nỗ lực để cung cấp rất nhiều định nghĩa đơn giản, rất cao về điều kiện cơ bản và chất lượng của độ phức tạp thời gian, dường như là các hoạt động tính toán. Một người giới thiệu có thể là thời gian nhiệt động lực học, mà tôi đã thấy giải thích các thuật ngữ rất đơn giản của các học giả công cộng về các chương trình khoa học.
DukeZhou

Câu trả lời:


9

"Thời gian đa thức" là một tuyên bố về thời gian chạy của thuật toán. Về lý thuyết, thời gian chạy của một thuật toán là tổng số lượng các hoạt động cơ bản mà nó thực hiện. Điều này được dự kiến ​​sẽ tỷ lệ thuận với thời gian để thuật toán chạy trên máy tính. Thời gian đa thức có nghĩa là thời gian chạy nhiều nhất là một số đa thức (không xác định) theo kích thước của đầu vào; ví dụ: tỷ lệ với bình phương của kích thước đầu vào, hoặc khối lập phương, hoặc đại loại như thế. Các thuật toán đa thức thời gian thường đủ hiệu quả để thực hiện trong thực tế.

Xem https://en.wikipedia.org/wiki/Time_complexity#Polynomial_timehttps://en.wikipedia.org/wiki/Cobham%27s_thesis .


Cảm ơn bạn DW. Tôi đã không thể hiện bản thân tốt trong câu hỏi, nhưng đây là câu trả lời tôi đang tìm kiếm! (tức là câu trả lời này phù hợp với công chúng và không yêu cầu toán học.)
DukeZhou

41

Thuật toán thời gian đa thức là các thuật toán có thời gian chạy tăng theo hệ số không đổi khi đầu vào có kích thước gấp đôi.

Thuật toán thời gian theo cấp số nhân là thuật toán có thời gian chạy tăng theo hệ số không đổi khi kích thước đầu vào tăng 1.

Đối với giáo dân, có lẽ bạn có thể xác định các vấn đề hoàn thành NP với các vấn đề chỉ có thể giải quyết được theo thời gian theo cấp số nhân, mặc dù, như chúng ta biết, điều này là sai trên nhiều tính toán.


1
Làm thế nào "chỉ có thể giải được trong thời gian theo cấp số nhân" bất kỳ dễ dàng hơn so với "không thể giải được trong thời gian đa thức" chính xác hơn?
Raphael

1
Vì niềm tin thực tế là những vấn đề này chỉ có thể giải quyết được trong thời gian theo cấp số nhân.
Yuval Filmus

1
Đối với NP chỉ cần nói "có một cách để xác minh các giải pháp, để kiểm tra xem chúng có đúng không, trong thời gian đa thức". Đối với NP-Complete nói, "những vấn đề này rất thú vị bởi vì bạn thực sự có thể xây dựng một máy tính nhỏ bên trong vấn đề để xác minh bất kỳ vấn đề nào khác, vì vậy mọi vấn đề NP khác là một trường hợp đặc biệt của NP-đầy đủ" hoặc hơn thế. P = NP nói "nếu chúng ta biết đủ về một vấn đề để nhận ra các giải pháp chính xác, điều đó có nghĩa là về nguyên tắc chúng ta có đủ biết để tạo ra chúng không? Hầu hết các chuyên gia nghĩ là không ..."
CR Drost

1
@ rus9384 vui lòng đọc lại câu trả lời mà bạn đang trả lời vì bạn đang thiếu một số ngữ cảnh; mộtÔi(nsố 8) thuật toán có 2số 8như hằng số của nó.
CR Drost

1
Bạn sẽ không nói rằng sự gia tăng bị giới hạn bởi một yếu tố không đổi?
PyRulez

38

Sẽ không chính xác khi sử dụng thời gian đa thức là "thời gian được đo trong các phép toán (tính toán)?"

Đúng. Hoàn toàn không chính xác.

"Thời gian" thực sự có nghĩa là "thời gian được đo trong các phép toán (tính toán)" nhưng bạn hoàn toàn không dịch "đa thức". Nó giống như dịch "mười hai ngày" là "thời gian được đo bằng số vòng quay của trái đất trên trục của nó." Đó chính xác là "ngày" nghĩa là gì, nhưng chuyện gì đã xảy ra với "mười hai"?

Đa thức vốn là các đối tượng toán học và tôi nghi ngờ không có cách nào giải thích chúng mà không sử dụng toán học. Bạn có thể giải thích rằng các thuật toán đa thức thường được coi là có hiệu quả hợp lý, nhưng đó là hậu quả của mối quan hệ đa thức là gì, không phải là một lời giải thích về nó.


1

Bạn thực sự không thể làm gì nhiều để cung cấp các định nghĩa đơn giản về các không gian vấn đề đó. Hãy nhớ rằng các không gian vấn đề như P và NP được xác định bởi hành vi tiệm cận khi một số số nchuyển sang vô cùng. Không có tình huống cư sĩ nào trong đó đi đến vô cùng là hữu ích, và độ chính xác cần thiết để xác định nó theo cách đó là tàn bạo.

Như vậy, tôi thấy dễ dàng nhất để mô tả P và NP là "nhanh" và "chậm", sau đó sử dụng ví dụ thực tế về mật mã bởi vì nó thú vị với mọi người. Tôi bắt đầu với NP (vì có thuật toán P nhanh và chậm, vì vậy tôi muốn gắn khái niệm "chậm" của chúng với thời gian theo cấp số nhân trước khi đưa vào P). Mọi người đã đối phó với một số loại tăng trưởng hình học ở đâu đó, ngay cả khi đó chỉ là lãi kép, vì vậy có một cái gì đó để bắt đầu.

Khi tôi nghĩ rằng họ có một số ý tưởng về thời gian theo cấp số nhân, tôi giới thiệu liên kết mật mã. Một trong những mục tiêu của mật mã học là việc thêm 1 bit vào khóa sẽ nhân đôi thời gian để ai đó phá vỡ nó. Phần thiết yếu là kết nối ý tưởng rằng việc thêm công việc vào người gửi / người nhận sẽ nhân số lượng công việc cần thiết cho kẻ tấn công.

Với điều đó, sau đó tôi có thể đưa ra định luật Moore, trong đó đại khái nói rằng sức mạnh tính toán tăng gấp đôi cứ sau 18 tháng. Điều đó có nghĩa là kẻ tấn công của tôi có thể làm việc gấp đôi nếu anh ta có thể đợi phần cứng bắt kịp. Khi khả năng tấn công của anh ta tăng gấp đôi, tôi phải thêm một chút. Sau đó, anh ta tăng gấp đôi một lần nữa, và tôi thêm một chút. Sau đó tôi có thể chỉ ra trò chơi này không đối xứng như thế nào - mỗi khi họ làm thêm một lượng lớn công việc, tôi phải làm thêm một chút công việc để giữ mọi thứ đều đều.

Bây giờ tôi có thể dạy thời gian đa thức như các thuật toán chạy nhanh hơn thời gian theo cấp số nhân. Đây là một chút đơn giản hóa, nhưng đối với một giáo dân tôi nghĩ rằng nó ổn. Nếu thuật toán mật mã của tôi là thời gian đa thức, vì tốc độ tính toán của kẻ tấn công của tôi trở nên tốt hơn, tôi sẽ phải thêm các bit nhanh hơn và nhanh hơn, làm chậm hệ thống. Mọi người đều biết ý nghĩa của nó khi máy tính chạy chậm!

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.