이론적 분석과 현실 사이에 어떤 알고리즘이 큰 차이가 있습니까?


52

알고리즘의 효율성을 분석하는 두 가지 방법은

  1. 런타임에 점근 적 상한을 설정하고
  2. 그것을 실행하고 실험 데이터를 수집합니다.

(1)과 (2) 사이에 상당한 간격 이있는 경우가 있는지 궁금합니다 . 이것은 (a) 실험 데이터가 더 엄격한 점근선을 제안하거나 (b) 알고리즘 X와 Y가있어 이론적 분석에서 X가 Y보다 훨씬 우수하고 실험 데이터가 Y보다 훨씬 우수하다는 것을 나타냅니다. 엑스.

실험은 일반적으로 평균 사례 행동을 나타 내기 때문에 가장 흥미로운 답변은 평균 사례 상한을 참조 할 것으로 기대합니다. 그러나 Simplex에 대한 Noam의 답변과 같이 다른 범위에 대해 흥미로운 답변을 배제하고 싶지 않습니다.

데이터 구조를 포함하십시오. 답변 당 하나의 algo / ds를 입력하십시오.


어떤 종류의 상한을 말하고 있는지 분명히하면 도움이 될 것입니다. 최악의 시간 복잡성으로 가장 잘 알려진 상한과 하한 사이에 상당한 차이가있는 문제에 대해서만 이야기하고 있습니까? 또는 최악의 시간 복잡성에 대한 엄격한 한계가 알려져 있지만 일반적인 실행 시간이 상당히 빠른 문제도 포함하고 있습니까? 최악의 복잡성보다는 부드러운 복잡성을 고려하는 것이 더 흥미로울 수 있습니다. '일반적인'입력 또는 무작위 입력에 대한 실험 결과는 병리학 적 입력의 존재를 반증하는 데 거의 도움이되지 않습니다.
제임스 킹

이 경우 별도로 질문해야 할 두 가지 질문이 있다고 생각합니다. 하나는 최악의 복잡성과 평균 대 / 부드러운 복잡성의 차이와 이론적 인 평균 경우 / 부드러운 복잡성과 실제 실험 결과의 차이입니다. 편집 : 내 의견을 쓰는 동안이 문제를 해결하는 편집을했습니다 :)
James King

답변:


37

가장 눈에 띄는 예는 물론 실제로는 빠르게 실행되어 다중 시간을 제안하지만 이론적으로는 지수 시간이 걸리는 Simplex 방법입니다. Dan Spielman은이 수수께끼를 설명해 준 Nevanlinna 상을 수상했습니다.

더 일반적으로, 많은 정수 프로그래밍 프로그래밍 인스턴스는 표준 IP 솔버를 사용하여 상당히 잘 해결할 수 있습니다 . /teaching/cgt/combinatorial-auctions-survey.pdf


3
어떤 심플 렉스가 기하 급수적으로 걸리는 선형 프로그램이 발견 되었습니까?
수신 거부

1
내가 아는 한, 기하 급수적 인 시간을 필요로하는 명백한 가족이 많이있다 (예를 들어, Klee and Minty가 처음으로 내린 것 : "단순 알고리즘이 얼마나 좋은가?", 1972). 그러나 피벗 규칙의 선택은 이러한 결과와 관련이 있습니다. 이 결과에 대한 대부분의 참조는 Spielman과 Teng의 논문 ( arxiv.org/abs/cs/0111050 ) 에서 찾을 수 있습니다 .
MRA


이 백서에는 특정 피봇 규칙에 대한 하한
Igor Shinkar

26

그 로브 너 기지 . 최악의 경우의 실행 시간은 변수의 수에 따라 이중 지수입니다. 그러나 실제로는 특히 체계적인 문제의 경우 F4 및 F5 알고리즘이 효과적입니다 (즉, 매우 빠르게 종료). 평균 또는 예상 실행 시간에 대한 적절한 추측이 무엇인지 알아내는 것이 여전히 활발한 연구 영역입니다. 그것은 그것이 어떻게 든 근본적인 이상의 뉴턴 폴리 토프의 부피와 관련이 있다고 추측된다.


어떤 분포에서 평균 / 예상 되는가? 예상되는 실행 시간을 정의하는 것조차 대수 문제로 인해 어렵다고 생각했습니다 ...
Joshua Grochow

1
F4 및 F5 방법으로 신속하게 해결 된 사례를 모르지만 SAT 인스턴스를 인코딩하는 많은 변수와 낮은 정도의 다항식 시스템을 구축하는 것은 매우 쉽습니다. 이 경우 알고리즘이 DPLL / DPLL +보다 성능이 뛰어나다는 것은 알려지지 않았습니다. 나는 이것에 대한 실험 결과에 대해 더 많이 알고 싶습니다!
MassimoLauria

@Joshua :이 시점에서 결과를 허용하는 모든 분포 ... @Massimo : 문제 X를 Y의 인스턴스로 인코딩하면 X에 대한 특수 알고리즘을 거의 능가하지 않습니다! 그러나 GB와 DPLL은 본질적으로 동일하므로 효과적인 차이를보고 놀랄 것입니다.
Jacques Carette 1

1
@Massimo : 그렇습니다. GB 계산은 NP-Hard입니다. 제형에 따라. 실제로 대부분의 질문 (완료, 이상적인 멤버십, 대수적으로 닫힌 필드 대 부울)은 PSPACE 완료 또는 더 나쁩니다 (EXPSPACE 완료). 즉, GB 계산은 NP-complete 문제보다 훨씬 어려울 것으로 예상됩니다 (따라서 F5와 같은 알고리즘은 DPLL을 능가하지 않을 가능성이 높습니다).
Mitch

22

이 현상의 크고 작은 인식 된 예는 그래프 동형 입니다. 가장 잘 알려진 알고리즘은 시간과 비슷하지만 실제로 그래프 동 형사상은 매우 빠르게 풀리는 경향이 있습니다. O(2((nlogn)))

평균 / 부드러운 문제의 복잡성에 대한 공식적인 결과가 있는지는 모르지만, 하나가 존재한다는 것을 기억합니다. 어쩌면 다른 누군가가 공식적인 결과를 지적하는 데 차임이있을 수 있습니다. 확실히 많은 실험적 증거와 많은 빠른 솔버가 있습니다. 이 속성이 GI 완성 가족의 다른 구성원에게도 적용되는지 궁금합니다.


1
나는 GI에 대한 순조로운 분석이나 심지어 정확히 어떻게 보일지 모르지만 그것이 가장 최악의 지수 시간에서 실행되는 것을 보여주는 가장 잘 알려진 실제 구현 (해상)에 대한 분석이 있습니다. 물론, nauty는 알고리즘을 구현하지 않습니다 . 참조는 cstheory.stackexchange.com/questions/3128/… 을 참조하십시오. O(2nlogn)
Joshua Grochow

2
오! 아마 당신은 Babai-Kucera를 생각하고있을 것입니다. GI에 대한 선형 시간 평균 사례 알고리즘을 제공합니다 : doi.ieeecomputersociety.org/10.1109/SFCS.1979.8
Joshua Grochow

그렇습니다, Babai-Kucera는 하나입니다! 참조 주셔서 감사합니다.
Anand Kulkarni

20

데이비드 존슨 (David Johnson)으로부터 이론적 대 실험적 근사 비율의 차이 : Traveling Salesman Problem : 지역 최적화 사례 연구, DS Johnson 및 LA McGeoch . 이 논문에서 그들은 이론적 인 무증상을 무시하는 무증상의 실험적 증거 (실험이 N = 10,000,000까지 실행 됨)를 제시합니다 : Jon Bentley의 "Greedy"또는 "Multi-Fragment"알고리즘 (최소 logN / loglogN)은 Nearest Insertion과 Double MST보다 뛰어납니다. 둘 다 최악의 근사치 비율이 2입니다.


20

최근까지 잘 알려지지 않은 또 다른 예는 Lloyd의 k- 평균 알고리즘의 실행 시간입니다 (실제적인 관점에서 볼 때 50 년 이상 선택한 클러스터링 알고리즘 임). 최근에야 2009 년 Vattani 에 의해 최악의 경우 Lloyd의 알고리즘은 입력 포인트 수에 기하 급수적으로 많은 반복이 필요 하다는 것이 입증되었습니다 . 반면에, 부드럽게 분석 ( Arthur, Manthey 및 Röglin )은 반복 횟수가 다항식임을 입증하여 경험적 성능을 설명했습니다.


10

스플레이 트리에 대한 역동적 최적 성 추측 의 순회, deque 및 split 결과 는 그러한 차이의 예입니다. 실험은 선형 시간에 대한 주장을 뒷받침하지만 알려진 증거는 없습니다.


3
Seth Pettie는 n 개의 deque 연산이 O (n alpha * (n)) 시간을 넘지 않는다는 것을 증명했다.
jbapple

9

질문에 약간의 문제가 있습니다. 실제로 알고리즘 분석에는 두 가지 이상의 방법이 있으며, 무시 된 이론적 방법 중 하나는 최악의 런타임보다는 예상 런타임입니다. 실제로이 평균적인 사례 행동은 실험 수행과 관련이 있습니다. 다음은 매우 간단한 예입니다. 크기 n의 입력에 대한 알고리즘이 있다고 가정합니다. 시간 n ^ 2가 걸리는 각 길이의 특정 입력 하나를 제외하고 크기 n의 가능한 모든 입력에 대해 시간 n이 걸립니다. 최악의 경우 실행 시간이 지수라고 들리지만 평균 사례는 [(2 ^ n -1) n + (2 ^ n) 1] / (2 ^ n) = n-(n-1) / 2 ^ n입니다. n으로 제한합니다. 분명히 두 가지 유형의 분석은 매우 다른 답변을 제공하지만, 다른 수량을 계산할 때 예상됩니다.

실험을 여러 번 실행하면 샘플에 대해 가장 긴 실행 시간이 걸리더라도 가능한 입력 공간의 작은 부분 만 샘플링하므로 하드 인스턴스가 드물면 누락 될 수 있습니다. .

첫 번째 n / 2 비트가 모두 0이면 마지막 n / 2 비트로 인코딩 된 3SAT 인스턴스를 해결하는 것보다 이러한 문제를 구성하는 것이 비교적 쉽습니다. 그렇지 않으면 거절하십시오. n이 커질수록 문제는 평균 실행 시간이 매우 낮다는 3SAT의 가장 효율적인 알고리즘과 최악의 경우 런타임이 거의 같습니다.


나는 이미 James King에게 가장 흥미로운 답변이 예상되는 런타임에 관한 것이라고 기대한다고 위에서 대답했다. 질문을 더 잘 보이도록 편집하겠습니다.
Radu GRIGore

9

Damas-Milner 타입 추론은 기하 급수적으로 완성 된 것으로 입증되었으며 결과의 크기가 기하 급수적으로 폭발하는 경우가 쉽게 구성됩니다. 그럼에도 불구하고 대부분의 실제 입력에서 효과적으로 선형으로 동작합니다.


이 결과에 권장되는 참조가 있습니까? 그것에 대해 더 자세히 읽고 싶습니다.
Radu GRIGore 9

1
필자가 직접 읽지는 않았지만 가장 많이 인용되는 논문은 Harry G. Mairson입니다. "ML 타이핑의 결정 성은 결정 론적 지수 시간 동안 완료되었습니다"라고 17 번째 프로그래밍 언어 원칙 심포지엄 (1990).
sclv

9

평면 그래프의 스타이너 트리에 대한 PTAS는 엡실론에 우스운 의존성을 가지고 있습니다. 그러나 실제로 놀랍도록 우수한 성능을 보여주는 구현 이 있습니다.


8

[1]에서 힙을 쌍으로 묶기-삽입 및 병합시 O (log n) 상각 복잡성이 있지만 O (1)로 추측되는 힙을 구현합니다. 실제로는 특히 병합 사용자에게 매우 효율적입니다.

오늘 방금 Sec을 읽는 동안 그것들을 발견했습니다. C. 오카 사키의 책 "순전히 기능적인 데이터 구조"의 5.5에 관한 정보를 공유해야한다고 생각했습니다.

[1] Fredman, ML, Sedgewick, R., Sleator, DD 및 Tarjan, RE 1986. 페어링 힙 : 새로운 형태의 자체 조정 힙. Algorithmica 1, 1 (1986 년 1 월), 111-129. DOI = http://dx.doi.org/10.1007/BF01840439


오카 사키 이후로 발전이 있었으며 이제 O (0) meld, O (1) insert 및 findMin, O (lg lg n) reduceKey 및 O (lg n) deleteMin : arxiv와의 (비 제한적 ) 페어링 힙이 있습니다. org / abs / 0903.4130 . 이 힙은 Fredman 등의 원래 페어링 힙과 다른 페어링 메커니즘을 사용합니다.
jbapple

7

지점에 대한 ilyaraz의 발언과 관련과 결합, 파타키 주지사 등. 브랜치 및 바운드 플러스 격자 기반 감소는 거의 모든 랜덤 IP를 폴리 타임으로 해결할 수 있음을 보여줍니다.


6

TSP에 대한 Lin-Kernighan 휴리스틱 ( "여행 세일즈맨 문제에 대한 효과적인 휴리스틱 스", Operations Research 21 : 489–516, 1973)은 실제로는 성공적이지만 성능을 설명하기위한 평균 사례 나 부드러운 분석이 부족합니다. . 반면 Matthias Englert, Heiko Röglin 및 Berthold Vöcking (Algorithmica)의 TSP에 대한 2-opt 휴리스틱 분석이 원활하게 이루어졌습니다.


5

TSP, Steiner tree, bin Packing 등 우리가 엄격하게 분석 할 수없는 다양한 NP-hard 문제에 대해 실제로 매우 빠르고 효율적인 분기 및 바운드 알고리즘이 있습니다.

Ω(nm)


당신은 O (mn)를 의미합니까, 아니면 혼란 스럽습니까?
Radu GRIGore 9

O(nmlog(n2/m))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.