Dấu ngã có nghĩa là gì, trong ký hiệu big-O?


13

Tôi đang đọc một bài báo và nó nói trong phần mô tả độ phức tạp thời gian của nó rằng độ phức tạp thời gian là .O~(22n)

Tôi đã tìm kiếm trên internet và wikipedia, nhưng tôi không thể tìm thấy những gì dấu ngã này biểu thị trong ký hiệu big-O / Landau. Trong bài báo, tôi cũng không tìm thấy manh mối nào về việc này. Những gì hiện nghĩa là gì?O~()


1
"Tôi đã tìm kiếm trên mạng" Thế nào?!? :-) Thông thường, đối với các câu hỏi như thế này, phản ứng đầu tiên của tôi là Google sẽ cho bạn biết câu trả lời ngay lập tức. Nhưng đối với điều này, tôi không biết tôi sử dụng thuật ngữ tìm kiếm nào!
David Richerby

Tôi đã tìm kiếm "biểu tượng Landau tilde" nhưng không có kết luận nào xuất hiện. Tôi đoán google cần một số AI biết cách một dấu ngã trông trực quan và tìm kiếm nó trong các bức ảnh TeX được hiển thị: p
Johannes Schaub - litb

Một cái khác mà bạn đôi khi nhìn thấy là ngôi sao Big Oh, đó là . Nó thường được sử dụng với các thuật toán thời gian theo cấp số mũ chính xác và ký hiệu triệt tiêu các yếu tố bị ràng buộc đa thức trong kích thước đầu vào. O
Juho

Câu trả lời:


17

Đây là một biến thể của chữ O lớn mà bên kia bỏ qua các yếu tố logarit của:

f(n)O~(h(n))

tương đương với:

k:f(n)O(h(n)logk(h(n)))

Từ Wikipedia :

Về cơ bản, nó là big- ký hiệu, bỏ qua yếu tố logarit vì những tác động tăng trưởng tỷ lệ một số chức năng siêu logarit khác chỉ ra một vụ nổ tăng trưởng hạng nhất cho các thông số đầu vào lớn cỡ đó là quan trọng hơn để dự đoán hiệu suất thời gian chạy xấu hơn hiệu ứng điểm tốt hơn được đóng góp bởi (các) yếu tố tăng trưởng logarit. Ký hiệu này thường được sử dụng để làm giảm tỷ lệ nitpicking, trong phạm vi tốc độ tăng trưởng được tuyên bố là quá chặt chẽ đối với các vấn đề trong tay (vì luôn luôn là cho mọi hằng số và bất kỳ ).Ologkno(nε)kε>0


Tôi có đúng không khi kết luận rằng và khác nhau? Điều này gây nhầm lẫn bởi vì chúng dường như được sử dụng thay thế cho nhau. O(22n+o(n))O~(22n)
Julian Schaub - litb

1
@ JohannesSchaub-litb Có, có các hàm tăng hơn cho mọi và tăng ít hơn , và do đó được bao gồm trong hàm đầu tiên nhưng không phải là hàm thứ hai. Dù sao: quan điểm của ký hiệu đó là chỉ hiển thị phần quan trọng của độ phức tạp tiệm cận và nói chung không được coi là quan trọng. logknkno(n)
Bakuriu

2
Là một hệ quả, giống với . @ JohannesSchaub-litb giống với . Trong trường hợp bạn thực sự có nghĩa là , điều này bao gồm , nhưng cũng có một vài chức năng tăng nhanh hơn một chút. Mọi người thường sử dụng nó thay vì vì nó không sai, là một ký hiệu ít được biết đến và việc mất độ chính xác thường không thành vấn đề. O(22npoly(n))O(22n+) ~ OO~(22n)O(22npoly(n))O ( 2 2 n ) O ( 2 2 n + o ( n ) ) ~ O ( 2 2 n ) ˜ O ( 2 2 nO(22n+o(n))O(22n)O(22n+o(n)) O~(22n)O~(22n)O~
Emil Jeřábek 3.0

Ah tôi hiểu rồi, cảm ơn. Điều này rất có ý nghĩa
Johannes Schaub - litb
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.