주어진 알고리즘이 점진적으로 최적인지 결정할 수 있습니까?


11

다음 문제에 대한 알고리즘이 있습니까?

튜링 기계 감안할 때 언어 결정 , 튜링 기계가 있습니까 결정 이되도록 ? L M 2M1L
M2t 2 ( n ) = o ( t 1 ( n ) )Lt2(n)=o(t1(n))

기능 및 는 각각 Turing 머신 및 의 최악의 실행 시간입니다 .t 2 M 1 M 2t1t2M1M2

공간 복잡성은 어떻습니까?


1
정답은 아닙니다. TM의 최악의 실행 시간을 결정하는 것은 결정 불가능한 것으로 알려져 있습니다.
chazisop 2013

답변:


9

다음은 결정 불가능하다는 것을 보여주는 간단한 주장입니다. 즉, 주어진 알고리즘이 실행 시간 또는 메모리 사용량과 관련하여 최적인지 확인하는 알고리즘이 없습니다.

빈 테이프의 정지 문제를 런타임 최적화 문제로 줄입니다.

하자 주어진 튜링 기계합니다. N을 다음 튜링 머신으로 설정하십시오.M

n M n M n 2 nN : 입력 1. (최대) 단계 동안 빈 테이프에서 을 실행 합니다. 2. 이 단계로 정지되지 않으면 크기의 루프를 실행 한 다음 NO를 리턴하십시오. 그렇지 않으면 YES를 반환하십시오.n
Mn
Mn2n

두 가지 경우가 있습니다.

  1. 경우 공 테이프에 정지하지 않고, 기계 위한 실행 입력 단계에서 . 따라서 실행 시간은 입니다. 이 경우 은 분명히 최적이 아닙니다.N Θ ( 2 n ) n Θ ( 2 n ) NMNΘ(2n)nΘ(2n)N

  2. 빈 테이프에서 정지 되면 머신 은 충분히 큰 대해 일정한 수의 스텝으로 실행되므로 실행 시간은 입니다. 이 경우 이 분명히 최적입니다.N n O ( 1 ) NMNnO(1)N

한마디로 :

M halts on blank tape N is optimial 

또한 코드가 주어지면 코드를 계산할 수 있습니다 . 따라서 빈 테이프 정지 문제에서 실행 시간 최적 성 문제로 줄였습니다. 주어진 튜링 머신 이 최적 인지 결정할 수 있다면 , 위의 축소를 사용하여 주어진 머신 이 블랭크 테이프에서 정지 하는지 확인할 수 있습니다 . 빈 테이프를 정지시키는 것은 불가피하기 때문에 문제도 결정할 수 없습니다.N N MMNNM

비슷한 논쟁이 공간에 사용될 수있다. 즉 주어진 Turing 머신이 사용하는 공간과 관련하여 최적인지 확인하는 것도 결정 불가능하다.

더 강력한 진술조차도 사실입니다. 우리는 주어진 계산 가능한 함수가 주어진 계산 가능한 함수를 계산하는 시간의 복잡성에 대한 상한인지 결정할 수 없습니다. 공간과 비슷합니다. 즉, 기본 복잡성 이론조차도 알고리즘에 의해 자동화 될 수 없다 (복잡성 이론가에게는 좋은 소식으로 간주 될 수있다).


원래 질문에서 OP는 이 2 차 시간으로 언어를 결정 한다고 가정했습니다 . M1
Pål GD

점근 적 최적 성 을 살펴보십시오 . 2의 경우에도, 은 엄격하게 최적 은 아니며 ; 함수 반면, 하나의 단계에서 계산 될 수 더 이상 필요 (대형위한 )와 의 계산의 길이 빈 테이프. n N n 0 n n 0 MnnYESNn0nn0M
Raphael

아, 마지막으로 읽은 후에 질문이 바뀌 었습니다. 신경 쓰지 마.
Raphael

@ PålGD, OP가 예를 들어 (cstheory에 게시 된 원래 질문을 기반으로) 사용했다고 생각합니다. 해당 질문에 대한 의견을 확인할 수 있습니다.
Kaveh

2

다른 사람들이 언급했듯이 대답은 '아니오'입니다.

그러나 Blum " 재귀 함수의 복잡성에 대한 기계 독립적 인 이론 "이 작성한 흥미로운 기사가 있습니다. 그는 이 기능을 계산하기 위해 프로그램이 아무리 빠르더라도 프로그램을 매우 빠르게 계산하기 위해 다른 프로그램이 존재한다는 특성을 가진 일부 기능이 있음을 보여주었습니다 .

아주 좋은 재산!


-3

하아! 우리는 다른 세상에 살고있을 것입니다.

귀하의 질문에 대한 답변이 예라고 생각하십시오 (물론 우리는 귀하의 질문에 대답 할 알고리즘 을 알고 있습니다). 언어 대한 알고리즘 대해 가 최적인지 아닌지 를 알 수 있습니다 ( 사용 ) . A L A 0 AA0ALA0A

불행히도, 이것은 불가능하며, 실제로 개인적으로 (최소한) 최적 성을 입증하는 것이 컴퓨터 과학에서 가장 흥미롭고 어려운 문제라고 생각합니다. 내가 아는 한-정정되어 기쁘다-다항식 문제에 대한 최적 결과가 없습니다 (입력 크기에 비례하는 시간이 걸리는 알고리즘 과정의 사소한 최적 결과 제외).


1
일부 문제의 경우 형식의 알려진 범위 와이를 만족시키는 알고리즘이 있습니다. 간단한 예는 예를 들어 비교에 의한 정렬, 배열의 최소 요소 찾기입니다. Ω(N)
vonbrand

1
첫째, "무증상 최적"은 "최적"과 동일하지 않습니다. 둘째, 당신은 질문에 대답하지 않습니다. 셋째, (특정 종류의) 정렬 알고리즘에 대한 하한이 있습니다. Ω(nlogn)
Raphael

@vonbrand-입력 크기에 비례하는 알고리즘을 의미합니다.
t에 t

1
@ttothet 좋아, 나는 결실이 없을까 두려워하지만 다시 시도 할 것이다. 1) 아뇨, 전혀 아닙니다. 모든 입력에서 한 단계 만 저장하면 동일한 점근 적 런타임을 갖더라도 이전보다 더 나은 알고리즘을 사용할 수 있습니다. 2) 아닙니다. 또한 "모르지만, 그렇다면 X"라는 의미 일 수 있습니다. 이것은 드문 일이 아니다 (cf P? = NP). 3) 당신은 거기 없었다 주장 에는 적지 않은 하한은 (점근에, 나는 가정) 전혀 . 그건 잘못이야 숙제하세요
Raphael

1
@ MartinJonáš 나는 2 테이프 튜링 머신을 의미합니다. Kaveh는 시간 계층 정리의 증거로 인해 다중 시간으로 해결할 수있는 문제를 임의로 복잡하게 만들 수 있지만 그 예는 정확히 자연스럽지 않고 매우 명시 적이라고 느끼지 않습니다. 또한 확률 적 시간으로 알려진 계층 구조가 없으므로 실제로 아무것도 없습니다.
사쇼 니콜 로프
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.