Big-O 표기법은 상수 요소를 숨기므로 항의 계수 가 너무 커서 합리적인 입력 크기에 적합하지 않은 일부 알고리즘이 존재합니다 .n
런타임이 인 알려진 알고리즘이 있지만 합리적인 입력 크기의 경우 런타임을 완전히 지배 할 정도로 큰 하위 항이 있습니까? big-O 표기법이 결코 중요하지 않은 이유를 제공하기 때문에 알고리즘 과정에서 예제와 같은 알고리즘을 사용하고 싶습니다.o ( f ( n ) )
감사!
Big-O 표기법은 상수 요소를 숨기므로 항의 계수 가 너무 커서 합리적인 입력 크기에 적합하지 않은 일부 알고리즘이 존재합니다 .n
런타임이 인 알려진 알고리즘이 있지만 합리적인 입력 크기의 경우 런타임을 완전히 지배 할 정도로 큰 하위 항이 있습니까? big-O 표기법이 결코 중요하지 않은 이유를 제공하기 때문에 알고리즘 과정에서 예제와 같은 알고리즘을 사용하고 싶습니다.o ( f ( n ) )
감사!
답변:
암호화는 퇴화하는 경우의 예입니다. 예를 들어 AES 암호화를 깨는 것은 입니다. 키 크기에 따라 유한 숫자, 또는 또는 중에서 올바른 키를 찾기 ( 키를 명확하게 결정하기에 충분한 평문이 알려져 있다고 가정하십시오). 그러나 번의 작업조차 오늘날 우주의 수명 (약 10 억 초)보다 모든 컴퓨터 (각각 10 억 또는 그 정도의 속도, 약 10 억 번의 작업을 수행함)를 차지할 것입니다.2 128 2 192 2 256 2 128
big-O가 모든 것이 아닌 이유를 설명하는 약간 다른 방법은 때때로 작은 입력 크기에 대해 다른 알고리즘을 사용한다는 것입니다. 예를 들어, 퀵 정렬을 수행하십시오. 까다로운 사업 인 피벗을 올바르게 선택하면 입니다. Quicksort는 나누기와 정복으로 작동합니다. 모든 인스턴스에는 작은 배열을 많이 정렬해야합니다. 작은 배열의 경우 삽입 정렬과 같은 이차 법이 더 좋습니다. 따라서 최상의 성능을 위해 대형 어레이의 빠른 정렬에는 작은 크기의 삽입 삽입이 많이 포함됩니다.
파라미터 화 된 복잡성 및 FPT 알고리즘 분야에서 두 가지 예가 떠 오릅니다 . 이것은 당신이 찾고있는 것이 아닐 수도 있지만 여기에 있습니다.
3-COLORING 또는 HAM-CYCLE과 같은 그래프 문제를 고려하십시오. 두 문제 모두 모나드 2 차 논리로 표현 될 수 있으므로, 제한된 트리 폭을 가진 그래프의 선형 시간으로 결정될 수 있습니다. 이것은 Bruno Courcelle 의 결과이지만 결과적인 알고리즘은 실용적이지 않습니다.
다른 예는 Lenstra의 깊은 결과이며, 일정한 수의 변수를 가진 정수 선형 프로그램 (ILP)을 선형 시간으로 해결할 수 있다고 말합니다. Ravi Kannan의 추가 작업을 통해 정수 프로그래밍 타당성 문제는 비트의 정수에서 산술 연산 으로 해결할 수 있습니다 . 는 ILP 변수의 수이고 은 입력의 비트 수입니다. 이것은 다시 아주 작은 인스턴스에만 실용적인 FPT 알고리즘을 발생시킵니다.O ( p 2 p L ) p L
귀하의 질문과 다소 관련이있는 것은 이론적으로 우수한 성능을 가진 것으로 알려져 있지만 작은 인스턴스의 비 실용성으로 인해 실제 문제에는 사용되지 않는 알고리즘입니다. 다시 말해, 요청한 것처럼 "광고 성능"은 실제 응용에서는 볼 수없는 이론적으로 큰 입력에만 가능합니다. 이것은 때때로 Big-Oh 추정치에 반영되며, 그렇지 않은 경우도 있습니다. 일부 알고리즘은 이론적으로는 "성능"이 우수하지만 논리적으로 복잡하고 누구도 구현 한 적이 없으므로 실제 인스턴스 크기의 "성능"은 예를 들어 최대 흐름 문제 와 같이 알려져 있지 않습니다 .
또한 최첨단 최대 흐름 알고리즘이 실용적입니까? tcs.se
tcs.se 를 구현하기에는 너무 복잡한 강력한 알고리즘도 참조하십시오.
은하 알고리즘 RJLipton 블로그
이것은 일종의 농담이지만 심각한 측면이 있습니다 ...