문제

Big-O-notation의 한 속성은 합계 규칙 입니다. $ F_1 $ $ F_2 $ 및 해당 복잡성 함수가 $ g_1 $ $ g_2 $ , 결합 된 복잡성은 $ F_1 + F_2= O (\ max (g_1, g_2)) $ .

그러나 복잡성 기능이 모두 동일한 경우 우리는 무엇을 선택합니까? 예를 들어, $ F_1 (n) $ 이 배열 및 $ _ F2 (m) $ 또한 복잡성은 $ o (n \ log (n)) $ $ o (m \ log (m) m)) $ . 규칙을 적용하면 $ o (\ max (n \ log (n), m \ log (m))) $ 입니다. 나는 그것들 중 하나를 선택하면 하나의 변수를 떨어 뜨릴 때 마찬가지로 유효하지만 매우 일심적인 추정을 산출 할 것이라고 생각한다. 게다가, 어느 것이 당신을 선택하는지 분명하지 않습니다.

에는 여러 변수가 관련된 경우 규칙을 사용하지 않아야하는 경우입니까?

도움이 되었습니까?

해결책

다른 변수가 다른 변수에 종속되거나 문제의 매개 변수로 주어지면 의존합니다. 예를 들어 많은 그래프 관련 문제에서 $ n $ 은 꼭지점 수와 $ m $ 가장자리 수는 수 있습니다. 이 경우 $ m $ $ o (n ^ 2) $ 만큼 크게 될 수 있습니다. 따라서 일반적인 경우에는 $ o (n) $ $ o (m) $ 우리는 단순화하려고 시도하지 말고 단순화하려고하지 않습니다 --- 최종 런타임은 $ o (n + m)입니다. $ .

반드시 관련이 아닌 매개 변수로 주어진 여러 변수의 관점에서 : 최종 방정식 내에 여러 변수가 표준 인 것입니다. $ m \ times n $ 매트릭스와 $ n \ times p $ 매트릭스를 곱한다고 말할 수 있습니다. $ o (MNP) $ - 학교 책 곱셈을 사용하여 시간을 가져 오거나, 배낭 문제를 해결하기 $ o (nt) $ < / span> -Time $ n $ 은 항목 수와 $ T $ 은 목표 합계입니다 .

평면 그래프와 다른 스파 스 그래프와 같은 특별한 경우, 우리는 $ m= o (n) $ 을 안전하게 대체 할 수 있음을 알고 있습니다. Math-Container "> $ N $ 은 단순화를 위해 최종 실행 시간에 $ M $ 대신에 있습니다.

Dridress로서, 이것은 스파 스 그래프 ( $ m= o (n) $ )에 이유를 루프에서 사용하는 것을 선호하는 이유를 보여줍니다. 쌍 짧은 경로 (floyd-warshall과 같은 전이 폐쇄 기반 알고리즘과는 대조적으로); 이제 Dijkstra는 $ o (m \ log n)= o (n \ log n) $ 에서 루프에서 dijkstra를 사용하는 전반적인 복잡성이 $ o (n ^ 2 \ log n) $ 은 floyd-warshall보다 낫습니다. 대조적으로 Dijkstra는 $ m \ log n $ 에 대해 $ m= o (n ^ 2) $ 은 최악의 실행 시간면에서 Floyd-Warshall보다 효율적이됩니다.

다른 경우에는 변수가 주어진 파라미터에 의해 다수로 경계가 없을 수 없을 수 있습니다. 위의 배낭 예제를 취하는 경우 $ T $ 이 될 수 있습니다. $ n $ .

다른 팁

일반적인 대답이 없습니다.그런데 $ o (\ max (n \ log (n), m \ log (m))) $ 을 단순화하려는 경우 다시 작성할 수 있습니다. $ o ((n + m) \ log (n + m)) $ .

$ g_1 $ $ g_2 $ 은 eqaul과 증가 함수를 쓸 수 있습니다. $ o (g_1 (n + m)) $ o (\ max (g_1 (n), g_2 (m))) $

정의 $ o (g) $ $ o를 고려해 보는 것과 관련하여 항상 변수 및 한도 지점을 정의해야합니다. $ . 예를 들어 $ o (n ^ 3), n \ to \ infty $ 변수는 $ n $ 및 제한 지점 $ \ infty $ . $ o (x ^ 3), x \ 0 $ 변수는 $ x $ 및 한계점입니다. $ 0 $ .

$ f= o (g) $ 을 작성하면 공식적으로 우리는 몇 가지 변수와 한계점을 의미합니다. 예를 들어 $ F (n)= o (g (n)), n \ to \ infty $ 은 정확한 기록입니다. $ f (m)= o (g (m)), m \ infty $ 은 이전 문장과 똑같은 것을 의미합니다.

Property $ F_1 + F_2= O (\ max (g_1, g_2)) $ 에 대해서는 여기에서 여기에서 일부 변수를 명시해야합니다 (s ) 및 일부 제한 지점. 정확한 기록은 뭔가 여야합니다 $$ F_1 (n) + F_2 (n)= o (\ max (g_1, g_2) (n), n \ to \ infty $$ 또는 한계점 $ \ infty $ 을 가정하여 변수와 관련하여 더 명확한 설명이 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top