우리가 현재 가지고있는 알고리즘이 점진적으로 최적이라는 것을 알고있는 사소한 문제는 무엇입니까? (튜링 머신 용)
그리고 이것이 어떻게 증명됩니까?
우리가 현재 가지고있는 알고리즘이 점진적으로 최적이라는 것을 알고있는 사소한 문제는 무엇입니까? (튜링 머신 용)
그리고 이것이 어떻게 증명됩니까?
답변:
선형 시간이 걸리고 전체 입력을 읽어야하는 모든 알고리즘은 점진적으로 최적이어야합니다. 마찬가지로 Raphael이 언급했듯이 런타임이 출력 크기와 같은 순서의 알고리즘은 최적입니다.
고려중인 복잡성 측정이 쿼리 복잡성, 즉 특정 문제를 해결하기 위해 기계가 입력을 조사해야하는 횟수 인 경우 최적의 알고리즘이있는 많은 문제가 있습니다. 그 이유는 대적 방법을 포함한 몇 가지 대중적인 기술 덕분에 시간이나 공간의 복잡성에 대한 하한보다 쿼리 복잡성의 하한을 쉽게 달성 할 수 있기 때문 입니다.
그러나 단점은이 복잡성 측정이 양자 정보 처리에 거의 독점적으로 사용된다는 것입니다. 이는 양자와 고전적인 계산 능력 사이의 간극을 쉽게 입증 할 수있는 방법을 제공하기 때문입니다. 이 프레임 워크에서 가장 악명 높은 양자 알고리즘은 Grover의 알고리즘 입니다. 이진 문자열을 감안할 때 있는 하나의 존재 나는 그러한 X 전 = N , 당신이 찾을 필요 전을 . 고전적으로 (양자 컴퓨터없이) 가장 사소한 알고리즘이 최적입니다.이 문자열 을 찾으려면 평균적으로 n / 2 번 이 문자열을 쿼리해야합니다. . 그로버는 O 에서 그렇게하는 양자 알고리즘을 제공했다 ( √은 문자열을 쿼리합니다. 이것은 또한 최적으로 입증되었습니다.
비교 (병합 정렬, 이름 지정 )를 사용한 비교 정렬 은 최적이며 증명은 단순히 n 으로 나무의 높이를 계산하는 것입니다 ! 이파리.
Unique Games Conjecture를 가정하면 Khot, Kindler, Mossel 및 O'donnell은 Goemans 및 Williamson의 알고리즘보다 Max-Cut을 더 잘 추정하는 것이 NP- 완전하다는 것을 보여주었습니다. 따라서 그런 의미에서 G & W는 최적입니다 ( 라고 가정 ).
일부 분산 알고리즘은 일부 조건 (예 : 적대 프로세서의 비율)과 관련하여 최적으로 표시 될 수 있지만 Turing machine을 언급 했으므로 원하는 유형의 예제가 아니라고 생각합니다.
당신이 입력 주어진 가정 및 RAM 기계 여부를 결정하도록 요청 M의 입력에 종료 X 후 t의 단계. 시간 계층 정리에 의해, 이것을 결정하기위한 최적의 알고리즘 은 시간 O ( t ) 에서 수행 될 수있는 t 단계에 대한 M ( x ) 의 실행을 시뮬레이션하는 것이다 .
(참고 : 튜링 머신의 경우 실행을 시뮬레이션하는 데 O ( t log t ) 단계가 필요합니다. 하한값은 Ω ( t ) 만 알기 때문에 튜링 머신에는 특히 적합하지 않습니다.
중지 문제의 버전을 하위 사례로 포함하는 다른 문제가 있습니다. 예를 들어, 문장 가 WS1S의 결과 인지 여부를 결정하는 데는 시간이 2 ↑ ↑ O ( | θ | ) 이며 최적입니다.
동적 데이터 구조 문제를 허용하면 수퍼 선형 시간 최적 알고리즘을 알고 있습니다. 이것은 셀 프로브 모델에 있으며, RAM만큼 강력합니다. 즉, 그렇지 않습니다. 대수 의사 결정 트리와 같은 제한된 모델 .
한 가지 예는 동적 업데이트에서 접두사 합계를 유지하는 것 입니다. 우리는 숫자 의 배열로 시작하며 목표는 다음과 같은 연산을 허용하는 데이터 구조를 유지하는 것입니다.
잎에 A [ i ]가 있는 확장 이진 트리를 기반으로하는 데이터 구조를 사용하여 시간 에 두 작업을 쉽게 지원할 수 있습니다 . Patrascu와 Demaine 은 이것이 최적이라는 것을 보여주었습니다. 모든 데이터 구조에 대해 총 Ω ( n log n ) 시간이 걸리는 일련의 n 개의 추가 및 접두사 합계 쿼리가 있습니다 .
또 다른 예는 union find : 의 파티션으로 시작하여 싱글 톤으로 시작하고 두 작업을 허용하는 데이터 구조를 유지하는 것입니다.
Tarjan 은 순위 및 경로 압축 휴리스틱에 의한 통합을 사용하는 기존의 분리 된 세트 포리스트 데이터 구조 는 작업 당 시간 이 걸리며 여기서 α 는 역 Ackermann 함수입니다. Fredman과 Saks 는 이것이 최적이라는 것을 보여주었습니다. 모든 데이터 구조에 대해 일련의 n 공용체가 있으며 Ω ( n α ( n ) ) 시간이 걸리는 찾기 작업이 있습니다 .
입력 순서 / 배포에 대한 특정 제약 조건에 따라 최적의 두 가지 유사한 검색 알고리즘이 있습니다. 그러나 알고리즘의 표현은 일반적으로이 최적 성을 강조하지 않습니다.
단일체 함수의 최대 또는 최소 (극단적)를 찾기위한 골든 섹션 검색 . 입력이 단봉 함수라고 가정합니다. 평균적으로 로그 시간으로 찾습니다. 내가 기억 하는 것처럼 abelson & sussman 의 컴퓨터 프로그램 구조 및 해석 (Structure & Interpretation) 책에 최적의 증거가있을 수있다 .
이진 검색 은 정렬 된 목록에서 평균적으로 로그 시간의 한 지점을 찾지 만 입력을 정렬해야합니다.
위의 wikipedia를 인용하고 있지만 최적의 증거는 없습니다. 최적 성을 입증하는 다른 참고 문헌은 청중이 찾을 수 있습니다.
많은 부분 선형 시간 알고리즘에는 하한과 일치하는 상한이 있습니다.