의 의미는 무엇입니까 ?


44

이것은 기본적인 질문이지만, 이 과 같다고 생각합니다. 무한대로 갈수록 더 큰 항이 지배해야합니까? 또한 O (\ min (m, n)) 과는 다릅니다 . 맞습니까? 특히 그래프 알고리즘을 논의 할 때이 표기법을 계속보고 있습니다. 예를 들어, 일반적으로 O (| V | + | E |)를 참조 하십시오 (예 : 여기 참조 ).O(m+n)O(max(m,n))O(min(m,n))O(|V|+|E|)


아마도 mn에 의존합니다n
Andrew

답변:


33

네 말이 맞아 O (n + m) 이라는 용어 는 변수의 함수에 대해 정의 된 O(n+m)고전적인 big-O 표기법을 약간 남용합니다 . 그러나 여러 변수에 대한 자연스러운 확장 이 있습니다.

간단하게하기 때문에, 말하기,

12(m+n)max{m,n}m+n2max{m,n},
는 것을 추론 할 수 O(n+m)O(max{m,n}) 는 점근 적 상한과 같습니다.

반면에 O(n+m)O(min{n,m}) 과 다릅니다. n = 2 ^ m 을 설정 n=2m하면

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

3
필자는 알고리즘 분석에서 일반적으로 사용되는 속성을 암시하는 방식으로 둘 이상의 변수에 대해 함수에 대해 big-O 표기법을 정의하는 것이 불가능하다는 것을 보여줍니다. big-O 표기법 내의 함수가 엄격하게 줄이지 않는 것으로 제한 되더라도 이러한 속성을 암시하지 마십시오. "
Raphael

4
후속 내 위의 의견에 관해서는, 최근 문서 알고리즘 분석을위한 O-표기의 일반적인 정의 K. Rutanen에 의해 (2015 년) 수행 을 포함하여, 일반적으로 세트에 대한 의미있는 O-표기법을 정의하는 방법을 보여 . N2
Raphael

25

믿거 나 말거나, (내 경험상) 많은 알고리즘 사람들이 실제로 큰 O 표기법이 공식적으로 의미하는 바에 대해 생각하지 않았고 그것에 대해 물었을 때 여러 가지 다른 답변을 얻을 수 있습니다. Rodney R. Howell의 여러 변수사용한 점근선 표기법 (Asymptotic Notation) 이라는 논문에서 일부 문제에 대해 논의합니다 .

흥미롭게도, 대부분의 입문 알고리즘 코스는 단일 변수를 사용하여 큰 O 표기법에 대해 매우 공식적으로 많은 시간을 소비하고 다음 주에는 여러 가지 변수가있는 그래프 알고리즘에 대한 표기법을 행복하게 사용하지 않고 표기법은 실제로 의미합니다.


내 답변의 링크는 Howell의 기사를 참조하며 실제로이 질문에 대한 훌륭한 치료법입니다.
A.Schulz

1
@ A.Schulz : 사실, 나는 당신에게 동시에 대답을 입력하고있었습니다.
Kristoffer Arnsfelt Hansen

1
나는 Landau 용어에주의를 기울이는 것을지지하므로 동의하지만, 여기에는 좋은 대답을하기에는 너무 많은 분노가 들어 있습니다.
Raphael

4
@Raphael : 대답은 맹목적인 의미는 아니지만 더 정확하게 표현되었을 수 있습니다. 문제는 기본적으로 하나 이상의 매개 변수가있는 big O의 의미는 무엇입니까?입니다. 답은 알고리즘 커뮤니티에 대한 합의가 무엇이든, 알고리즘 코스에서 가르치는 것 등을 의미해야한다는 것입니다. 내 요점은 표기법이 정확히 무엇을 의미하는지에 대한 합의가 아닌 것 같습니다.
Kristoffer Arnsfelt Hansen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.