Ý nghĩa của


Câu trả lời:


33

Bạn đúng rồi. Lưu ý rằng thuật ngữ hơi lạm dụng Ký hiệu big-O cổ điển , được xác định cho các hàm trong một biến. Tuy nhiên, có một phần mở rộng tự nhiên cho nhiều biến.O(n+m)

Nói một cách đơn giản, vì bạn có thể suy luận rằng và là giới hạn trên không có triệu chứng tương đương.O(n+m)O(max{m,n})

12(m+n)max{m,n}m+n2max{m,n},
O(n+m)O(max{m,n})

Mặt khác, khác với , vì nếu bạn đặt , bạn nhận được O (2 ^ m + m) = O (2 ^ m) \ supsetneq O (m) = O (\ min \ {2 ^ m, m \}).O(n+m)O(min{n,m})n=2m

O(2m+m)=O(2m)O(m)=O(min{2m,m}).

3
Tôi nghĩ rằng đáng chú ý là họ viết tóm tắt, "Chúng tôi cho thấy rằng không thể định nghĩa ký hiệu big-O cho các hàm trên nhiều biến theo cách ngụ ý các thuộc tính thường được sử dụng trong phân tích thuật toán. Chúng tôi cũng chứng minh rằng các định nghĩa phổ biến không ngụ ý các tính chất này ngay cả khi các chức năng trong ký hiệu big-O bị hạn chế không nghiêm ngặt ".
Raphael

4
Là một theo dõi để nhận xét trên của tôi, gần đây bài viết Một định nghĩa chung của O-ký hiệu để phân tích thuật toán bởi K. Rutanen (2015) thực hiện cho thấy làm thế nào để xác định ý nghĩa O-ký hiệu cho bộ nói chung, bao gồm . N2
Raphael

25

Dù bạn có tin hay không, có vẻ như (theo kinh nghiệm của tôi) rằng nhiều thuật toán mọi người thực sự chưa nghĩ về ký hiệu O chính thức nghĩa là gì, và khi được hỏi về nó, bạn có thể nhận được một số câu trả lời khác nhau. Một số vấn đề được thảo luận trong bài báo về ký hiệu tiệm cận với nhiều biến số của Rodney R. Howell.

Thật kỳ lạ, dường như hầu hết các khóa học thuật toán giới thiệu đều dành rất nhiều thời gian để rất chính thức về ký hiệu O lớn với một biến duy nhất, và sau đó các tuần tiếp theo vui vẻ sử dụng ký hiệu cho thuật toán đồ thị với một số biến theo cách thông thường, mà không thảo luận về những gì ký hiệu thực sự có nghĩa.


Liên kết trong câu trả lời của tôi đề cập đến bài viết của Howell, đây thực sự là một cách xử lý tốt cho câu hỏi này.
A.Schulz

1
@ A.Schulz: Thật vậy, tôi đã gõ câu trả lời của tôi đồng thời cho bạn.
Kristoffer Arnsfelt Hansen

1
Tôi là một người đề nghị cẩn thận với các điều khoản của Landau vì vậy tôi đồng ý, nhưng điều này chứa quá nhiều lời tán dương cho một câu trả lời hay.
Raphael

4
@Raphael: Câu trả lời không có nghĩa là một câu nói hay, nhưng có lẽ nó có thể được diễn đạt chính xác hơn. Vấn đề là, về cơ bản, ý nghĩa của chữ O lớn với nhiều hơn một tham số là gì. Câu trả lời là, nó có nghĩa là bất cứ điều gì có sự đồng thuận trong cộng đồng thuật toán, những gì đang được dạy trong các khóa học thuật toán, v.v. Quan điểm của tôi là dường như không có sự đồng thuận nào về ý nghĩa chính xác của ký hiệu.
Kristoffer Arnsfelt Hansen
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.