답변:
최신 SAT 해석 알고리즘 은 최악의 실행 시간은 물론 지수이지만 대부분의 인스턴스를 매우 빠르게 해결할 수 있습니다. 그러나이 경우 실제 속도는 하나의 우아한 알고리즘보다 수년간의 알고리즘 엔지니어링의 결과입니다. 충돌 기반 절 학습으로 인해 SAT 솔버의 성능이 크게 향상되었다는 것을 알고 있지만, 이후 알고리즘에서 다양한 휴리스틱을 영리하게 사용하여 개선이 이루어졌습니다.
Hindley-Milner 타입 추론은 EXPTIME-complete이지만 사람들이 일반적으로 작성하는 프로그램은 선형에 가깝습니다.
let z = (let y = e in e') in e''보다) let y = e in let z = e' in e''입니다.
Brendan McKay의 해상 (No AUTomorphisms, Yes?) 프로그램은 그래프의 표준 레이블링 문제를 해결하고 (그래프 동형화 및 그래프 자동 형성 문제를 동시에 해결) 기하 급수적으로 최악의 성능을 보입니다 (Miyazaki, 1996). 그러나 대부분의 그래프, 특히 몇 가지 변형이있는 그래프에서 매우 빠르게 작동합니다.
특히 알고리즘은 정점을 각도별로 분할 한 다음 각 부분 사이의 각도로 분할하여 시작합니다. 이 과정이 안정되면 사소하지 않은 부분에서 꼭짓점을 구별하도록 선택해야하며, 이는 지수 동작으로 이어집니다. 대부분의 그래프에서이 분기 절차의 깊이는 작습니다.
단순한 확률 적 게임을위한 몇 가지 알고리즘 은 실제로 최악의 실행 시간을 가지더라도 실제로 잘 작동합니다. 물론이 문제는 다항식 시간으로 알려져 있지는 않지만 선형 프로그래밍과 관련이 있습니다.
LP의 단순 알고리즘과 유사한 혼합 내쉬 평형을 찾는 알고리즘이 있습니다. (이름을 잊어 버렸습니다.) 지수 최악의 복잡한 경우가 있지만 실제로 실제로 잘 작동하는 모호한 기억이 있습니다.
빈 패킹 (많은 변형)은 복잡성이 NP-hard 인 것으로 알려진 문제입니다.
http://en.wikipedia.org/wiki/Bin_packing_problem
그러나 "실제"버전에 적용될 때 많은 휴리스틱이 매우 잘 작동합니다. 일차원 적 빈 포장의 경우 첫 번째 맞춤과 같은 일부 휴리스틱을 포장합니다. 일차 감소; 최고로 잘 맞는; 가장 적합한 감소는 학생들에게 보여주는 주제로 매우 매력적입니다. 학생들은 종종 기본적인 휴리스틱을 발견 할 수 있습니다.
지속성 알고리즘 (Edelsbrunner-Letscher-Zomorodian의 원본, 그 이후로 많은 변형이 있음)은 최악의 입방이지만 실험에서 일반적으로 선형 시간으로 실행되는 것으로 보입니다.