합니까 ?


15

나는 대답이 '아니오'라고 기대하지만 실제로 반례를 만들 수는 없습니다. 차이점은 ε>0DTIME(O(n2+ε)) 에서 O(n2+ε) 알고리즘을 균일하게 선택할 수 없다는 것입니다 에서 ε .

더비 테일링 인수 (예 :이 질문 참조 )에 의해 언어 L을 결정하는 튜링 머신 M_i 세트 가 ∀ε> 0 ∃M_i ∈ O (n ^ {2 + ε}) 이면 L 은 에 \ mathrm DTIME {} (N ^ 2 + {O (1)}) .MiLε>0MiO(n2+ε)LDTIME(n2+o(1))

Turing 기계에서 기계가 n ^ {2 + o (1)} 시간에 실행되는지 여부 n2+o(1)Π30 입니다. 언어 (기계 인식 코드)가 DTIME(n2+o(1)) 인지 여부는 Σ40 (및 Π30 -hard)입니다. 언어가 ε>0DTIME(O(n2+ε)) 인지 여부는 Π30 입니다. \ mathrm {DTIME} (n ^ {2 + o (1)})의 Σ40 완전성 (또는 단지 Σ30 -hardness)을 증명할 수 있으면 문제가 해결되지만 어떻게해야할지 모르겠습니다. 그.DTIME(n2+o(1))

우리는 언어 서열을 발견 한 경우, 문제가 해결 될 것이다 Li 되도록
* Li 천연 가진다 O(n2+1/i) (균일에서 결정 알고리즘 i ).
* 각 Li 는 유한합니다.
*뿐만 아니라의 크기 Li 결정 불가능하지만 알고리즘을 배제 할 수 wLi 보다 빠르게 O(n2+1/i) (케이스 최악 w 유한 한 많은 제외한) i 온 (종속 연산).

또한 주목할만한 / 흥미로운 예제가 있는지 궁금합니다 ( ε>0DTIME(O(n2+ε))DTIME(n2+o(1)) 또는 유사한 관계).


나는 Turing machine과 같은 결정 가능성 질문에 대해 결코 생각하지 못했습니다 .DTIME (n ^ {2 + o (1)}) 언어를 인식합니까 DTIME(n2+o(1))? 매우 깔끔합니다! 지수에서 2를 선택한 특별한 이유가 있습니까? 지수에서 2보다 큰 다른 숫자를 고려하면 이것이 거의 동일하다고 생각합니다.
Michael Wehar

1
@MichaelWehar 방금 구체적인 예를 원했고 '1'이 때로는 특별하므로 '2'를 선택했습니다. 위의 완전성 속성과 아래의 답변은 매우 일반적입니다.
Dmytro Taranovsky

답변:


10

다음은 이에 대한 반례입니다. 즉, 모든 마다 알고리즘 (멀티 테이프 Turing machine 사용 있는 언어 이지만 에서는 균일하지 않습니다 : Accept iff 그리고 번째 튜링 머신 은 빈 입력에서 단계 미만으로 정지 합니다. 다른 문자열은 거부됩니다.ε > 0 ε 0 k 1 m k > 0 k m 2 + 1 / kO(n2+ε)ε>0ε
0k1mk>0km2+1/k

모든 마다 , 우리는 충분히 작은 nonhalting 기계를 하드 코딩하고 나머지를 시뮬레이션함으로써 알고리즘을 얻습니다. O ( n 2 + ε )εO(n2+ε)

이제 언어를 결정 하는 Turing machine 고려하십시오 .M

하자 (빈에 입력하여) 다음의 효율적인 구현 될 대 1,2,4,8에, ... :      사용 결정 여부 에서 정지하는 단계.      halt iff 은 우리가 멈추지 않지만 여전히 단계 에서 멈출 수 있다고 말합니다 . n M M ' < n 2 + 1 / M ' M < n 2 + 1 / M 'M
n
MM<n2+1/M
M<n2+1/M

의 정확성으로 , 없다 정지를 않지만, 얻어 입력에 씩 단계적 무한히 많은 . ( 이 너무 빠르면 은 모순 됩니다. 바운드는 을 선형 시간으로 을 시뮬레이션 하고 그렇지 않으면 효율적입니다.M M Ω ( n 2 + 1 / M ) 0 M 1 n M n M M M Ω ( n 2 + 1 / M ) M MMMMΩ(n2+1/M)0M1nMnMMMΩ(n2+1/M)MM


나는 마지막 문장을 이해하지 못한다. 의 실행 시간에서 하한을 어디에서 얻 습니까? M
Emil Jeřábek은 Monica

@ EmilJeřábek 나는 대답을 명확히했다. 더 개선 될 수 있는지 알려주세요.
Dmytro Taranovsky

1
아마도 "우리는 여전히 멈출 수있다 ..."가 무엇을 의미하는지 이해할 수 없다. 정확히 M '은 무엇을합니까?
Emil Jeřábek은 Monica

@ EmilJeřábek M '은 입력을 사용하지 않고 M을 반복적으로 호출하여 M'에 대한 경계 정지 문제를 결정합니다. 예를 들어 900 단계를 실행 한 후 M '은 M에 따라 첫 1000 단계에서 M'이 중지되지 않음을 발견하면 M '은 중지됩니다. 그렇지 않은 경우 M '은 계속 실행되고 M을 호출하여 M'이 처음 4000 단계에서 중지되는지 여부를 결정합니다.
Dmytro Taranovsky
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.