최적의 알고리즘이 있다는 것을 알면 어떤 문제가 있습니까?


15

우리가 현재 가지고있는 알고리즘이 점진적으로 최적이라는 것을 알고있는 사소한 문제는 무엇입니까? (튜링 머신 용)

그리고 이것이 어떻게 증명됩니까?


11
튜링 머신은 하한에 대한 까다로운 모델입니다. defn을 변경하면 실행 시간에 다항식이 변경 될 수 있으므로 좀 더 구체적이어야합니다.
Suresh Venkat

사소하지 않은 것을 어떻게 정의합니까?
funkstar

1
Suresh에 따르면 사용하는 TM의 종류가 영향을 미칩니다. 회문 언어 (뒤로 읽을 수있는 단어 ) 의 언어에 대해 언어를 결정 하는 데 단계 가 필요한 최적의 1- 테이프 TM이 있다고 생각합니다. 2- 테이프 TM의 경우 선형 시간으로 결정할 수 있으므로 거의 최적입니다. O(n2)
Bruno

답변:


18

선형 시간이 걸리고 전체 입력을 읽어야하는 모든 알고리즘은 점진적으로 최적이어야합니다. 마찬가지로 Raphael이 언급했듯이 런타임이 출력 크기와 같은 순서의 알고리즘은 최적입니다.


10
마찬가지로, 런타임이 출력 크기와 같은 순서를 갖는 알고리즘은 최적입니다.
Raphael

9
나는이 답변과 그에 따르는 논평이 완전한 최신 기술이라고 믿는다.
Jeffε

9
글쎄 이것은 dissapointing했다
sture

1
기록을 위해, Jɛ ff E의 의견은 아래 Shir의 답변을 참조하는 것 같습니다.
András Salamon 2018 년

1
나는 Shir 의 답변이 아니라 Max의 답변과 Max의 답변에 대한 Raphael의 의견을 언급했습니다.
Jeffε

8

고려중인 복잡성 측정이 쿼리 복잡성, 즉 특정 문제를 해결하기 위해 기계가 입력을 조사해야하는 횟수 인 경우 최적의 알고리즘이있는 많은 문제가 있습니다. 그 이유는 대적 방법을 포함한 몇 가지 대중적인 기술 덕분에 시간이나 공간의 복잡성에 대한 하한보다 쿼리 복잡성의 하한을 쉽게 달성 할 수 있기 때문 입니다.

그러나 단점은이 복잡성 측정이 양자 정보 처리에 거의 독점적으로 사용된다는 것입니다. 이는 양자와 고전적인 계산 능력 사이의 간극을 쉽게 입증 할 수있는 방법을 제공하기 때문입니다. 이 프레임 워크에서 가장 악명 높은 양자 알고리즘은 Grover의 알고리즘 입니다. 이진 문자열을 감안할 때 있는 하나의 존재 나는 그러한 X = N , 당신이 찾을 필요 전을 . 고전적으로 (양자 컴퓨터없이) 가장 사소한 알고리즘이 최적입니다.이 문자열 을 찾으려면 평균적으로 n / 2 번 이 문자열을 쿼리해야합니다.x1,,xnixi=nin/2 . 그로버는 O 에서 그렇게하는 양자 알고리즘을 제공했다 ( i은 문자열을 쿼리합니다. 이것은 또한 최적으로 입증되었습니다.O(n)


2
실제로 쿼리 복잡성은 Max의 답변에 대한 기본 기반입니다. 대부분의 문제에서, 모든 알고리즘은 아마도 "전체 입력을 읽어야합니다"또는 최소한 일정한 입력 부분을 읽어야합니다.
Jeffε

6
  • 모델을 기꺼이 변경하려는 경우 데이터 구조의 하한이 좁습니다. 보다데이터 구조의 하한 에 대한 올바른 참조에 대한 포인터 는 데이터 구조의 하한을 .
  • 로부터 어떤 사람이 여기에 언급 된 것으로, 사용자가 입력의 그래프를 따라 점으로 구성되는 경우를 고려하여, 볼록 선체 문제 행 유사한을 얻을 수 비교 모델 선별 행 평면의 1 사분면에서 증가하는 기능.Ω(nlogn)

2
데이터 구조를 언급하면 ​​+1입니다. 그러나 정렬을위한 하한을 비교하여 볼록 껍질에 대한 유용한 하한을 얻는 것이 가능하지 않다고 생각합니다. 그 이유는 비교 모델이 볼록 껍질을 계산하기에 충분히 강력하지 않기 때문입니다. 대신 작동하는 것은 선체를 계산할 수있는 대수 의사 결정 트리와 같은보다 강력한 모델을 사용하고 이보다 강력한 모델에 정렬하기 위해 하한을 조정하는 것입니다.
David Eppstein

설명을 해주셔서 감사합니다!
Abel Molina

3
  1. 비교 (병합 정렬, 이름 지정 )를 사용한 비교 정렬 은 최적이며 증명은 단순히 n 으로 나무의 높이를 계산하는 것입니다 ! 이파리.O(nlogn)n!

  2. Unique Games Conjecture를 가정하면 Khot, Kindler, Mossel 및 O'donnell은 Goemans 및 Williamson의 알고리즘보다 Max-Cut을 더 잘 추정하는 것이 NP- 완전하다는 것을 보여주었습니다. 따라서 그런 의미에서 G & W는 최적입니다 ( 라고 가정 ).PNP

  3. 일부 분산 알고리즘은 일부 조건 (예 : 적대 프로세서의 비율)과 관련하여 최적으로 표시 될 수 있지만 Turing machine을 언급 했으므로 원하는 유형의 예제가 아니라고 생각합니다.


2
항목 2가 질문에 대답하는지 여부는 질문자가 "최적"으로 무엇을 의미하는지에 달려 있지만, 그 이유는 질문자가 그런 의미로 묻고 있다는 것을 의심합니다 (그렇지 않으면 UGC를 필요로하지 않는 많은 밀접한 근접성 결과가 많이 있습니다). 또한, 나는 항목 1 또는 3이 질문에 대답한다고 생각하지 않습니다.
Ito Tsuyoshi

@TsuyoshiIto, asker가 정확히 무엇을 의미하는지 추측하기가 어렵습니다. 그러면 유용한 방향을 찾기 위해 다양한 방향으로 답을 시도하게되었습니다. 그런데 (1)이 정답이 아니라고 말하는 것은 무엇입니까?
Shir

2
asker는 특히 Turing machine에 최적 인 알고리즘을 요구합니다 .
Ito Tsuyoshi

6
"비교 정렬"이 실제로 "문제"입니까? 아니면 문제가 계산의 모델에 대한 제한?
Jeffε

3

당신이 입력 주어진 가정 및 RAM 기계 여부를 결정하도록 요청 M의 입력에 종료 Xt의 단계. 시간 계층 정리에 의해, 이것을 결정하기위한 최적의 알고리즘 은 시간 O ( t ) 에서 수행 될 수있는 t 단계에 대한 M ( x ) 의 실행을 시뮬레이션하는 것이다 .w=M,x,tMxtM(x)tO(t)

(참고 : 튜링 머신의 경우 실행을 시뮬레이션하는 데 O ( t log t ) 단계가 필요합니다. 하한값은 Ω ( t ) 만 알기 때문에 튜링 머신에는 특히 적합하지 않습니다.MO(tlogt)Ω(t)

중지 문제의 버전을 하위 사례로 포함하는 다른 문제가 있습니다. 예를 들어, 문장 가 WS1S의 결과 인지 여부를 결정하는 데는 시간이 2 O ( | θ | ) 이며 최적입니다.θ2↑↑O(|θ|)


3

나는 당신이 "사소하지 않은"것이 무엇을 의미하는지 잘 모르겠지만, 이것에 대해서는 어떻습니까. . 이 언어는 규칙적이지 않으므로 언어를 결정하는 모든 TM은 Ω ( n log n ) 에서 실행되어야합니다 . 간단한 알고리즘 (0마다 교차)이 최적입니다.L={02k|k0}Ω(nlogn)


3

동적 데이터 구조 문제를 허용하면 수퍼 선형 시간 최적 알고리즘을 알고 있습니다. 이것은 셀 프로브 모델에 있으며, RAM만큼 강력합니다. 즉, 그렇지 않습니다. 대수 의사 결정 트리와 같은 제한된 모델 .

한 가지 예는 동적 업데이트에서 접두사 합계를 유지하는 것 입니다. 우리는 숫자 의 배열로 시작하며 목표는 다음과 같은 연산을 허용하는 데이터 구조를 유지하는 것입니다.A[1],,A[n]

  • 추가 [ I ] , 주어진 IΔ를ΔA[i]iΔ
  • 접두사 합을 계산 , 주어진 Ij=1iA[i]i

잎에 A [ i ]가 있는 확장 이진 트리를 기반으로하는 데이터 구조를 사용하여 시간 에 두 작업을 쉽게 지원할 수 있습니다 . Patrascu와 Demaine 은 이것이 최적이라는 것을 보여주었습니다. 모든 데이터 구조에 대해 총 Ω ( n log n ) 시간이 걸리는 일련의 n 개의 추가 및 접두사 합계 쿼리가 있습니다 .O(logn)A[i]nΩ(nlogn)

또 다른 예는 union find : 의 파티션으로 시작하여 싱글 톤으로 시작하고 두 작업을 허용하는 데이터 구조를 유지하는 것입니다.{1,n}

  • 연합 (EU) : 주어진 J를 포함하는 부품을 교체 내가 하고 포함 된 일부 J 노조와를ijij
  • 찾기 : 주어진 , i를 포함하는 부분에서 표준 요소를 출력ii

Tarjan 은 순위 및 경로 압축 휴리스틱에 의한 통합을 사용하는 기존의 분리 된 세트 포리스트 데이터 구조 는 작업 당 시간 이 걸리며 여기서 α 는 역 Ackermann 함수입니다. Fredman과 Saks 는 이것이 최적이라는 것을 보여주었습니다. 모든 데이터 구조에 대해 일련의 n 공용체가 있으며 Ω ( n α ( n ) ) 시간이 걸리는 찾기 작업이 있습니다 .O(α(n))αnΩ(nα(n))


1

많은 스트리밍 알고리즘에는 하한과 일치하는 상한이 있습니다.


0

입력 순서 / 배포에 대한 특정 제약 조건에 따라 최적의 두 가지 유사한 검색 알고리즘이 있습니다. 그러나 알고리즘의 표현은 일반적으로이 최적 성을 강조하지 않습니다.

위의 wikipedia를 인용하고 있지만 최적의 증거는 없습니다. 최적 성을 입증하는 다른 참고 문헌은 청중이 찾을 수 있습니다.


-1

많은 부분 선형 시간 알고리즘에는 하한과 일치하는 상한이 있습니다.


3
중복으로 표시되었습니다.
Jeffε

서브 리니어 시간 알고리즘과 스트리밍 알고리즘은 서로 다른 영역입니다.
빈 푸

1
사실이지만 답을 하나로 결합해야합니다.
Suresh Venkat

최적의 비선형 시간 알고리즘의 예는 다음과 같습니다.
Bin Fu

1
이것이 왜 쿼리 복잡성 답변의 복제본이 아닌지 명확하지 않습니다.
Artem Kaznatcheev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.