문제

카운트 기능 $ \ {x \} ^ * \ Nowarrow \ mathbb n $ $ x $ .

나는이 기능을 계산하는 (점근증) 복잡성을 혼동하고 출력이 비 단항계 (예를 들어, 바이너리) 에서 나타나야하는 . 내 직감은 이것이 선형, 즉 $ o (n) $ 이어야합니다. $ n $ $ x $

의 발생 횟수입니다.

나의 이해가 진행되는 한, 계산에 대한 다중 해석 - 예를 들어,

  • 단일 밴드 튜링 머신, 최선의 아이디어가 런타임 $ \ omega (n ^ 2 \ log n) $ ( $ \ log n $ 은 바이너리 후속 함수가 $ \ omega (n) $ 런타임을 가지고 있다고 가정합니다. 여기서 $ n $ 은 자연수의 바이너리 표현의 길이이고 $ n ^ 2 $ 튜링 머신은 모든 $ x $ 의 현재 카운트에 도달하기 위해 모든 $ \ omega (n \ log n) $ ,
  • random-access machines, 나는 전혀 모른다.

이 질문은 다음과 같습니다.

다양한 계산 모델에서 계산 기능의 계산 복잡도는 무엇입니까? 그 중 하나에서 선형입니까?

모든 관련이있는 경우, 일부 특정 그룹에서 단어 문제의 계산 복잡성을 평가하려고하는 추상 대수의 관점에서 묻습니다.

도움이 되었습니까?

해결책

튜링 머신은 몇 가지 장점, 대부분의 단순성을 가진 멋진 모델이지만 알고리즘을 분석 할 때 첫 번째 선택은 아닙니다. 알고리즘은 일반적으로 RAM 머신 모델에서 암시 적으로 분석됩니다. 일부 경우에는 BSS 모델 .

다음은 다양한 모델에서 계산하는 계산 복잡성에 대한 몇 가지 댓글입니다.

단일 테이프 튜링 기계 : 이들은 상대적으로 쉽게 낮은 경계를 증명하는 것이 쉽기 때문에 고려됩니다. 다중 테이프 튜링 머신보다 덜 현실적인 계산 모델입니다.

멀티 테이프 튜링 머신 : $ o (1) $ 상각 비트 작업. 이것은 시간의 절반, 단 하나의 비트가 변경되기 때문에 $ 1/2 + 2 인 변경된 비트 수를 위해 한 번의 시간, 4 분의 1/4, 단지 2 비트만이 변화하기 때문입니다. / 4 + 3/8 + \ cdots= 2 $ . 튜링 머신 복잡성은 선형이며, 그래서 계산은 $ o (n) $ 에서 구현 될 수 있습니다.

RAM 기계 : 램 기계는 미심쩍하게 많은 레지스터와 랜덤 액세스 메모리로 구성됩니다. 레지스터는 $ o (\ log n) $ - $ n $ 은 크기입니다 입력의. 레지스터에 대한 합리적인 작업은 일정한 시간을 초래합니다. 특히 $ \ mathit {poly} (n) $ 을 셀 수있는 카운터가 $ o (1 ) $ 최악의 경우 시간. 특히 기능은 $ o (n) $ 에서 실행됩니다.

bss machine : 은 많은 수의 산술을 수행 할 때 조심해야합니다. RAM 기계에서는 오퍼랜드의 크기가 $ \ mathit {poly} (n) $ 인 경우에만 산술이 일정한 시간이 걸립니다. BSS 시스템은 일부 필드에 값을 저장하는 특수 레지스터에 액세스 할 수 있으며 실수를 말합니다. 일정한 산술 및 비교를 수행 할 수 있지만 바닥과 같은 기능을 수행 할 수는 없습니다. 또한 색인 생성 값을 사용할 수 없습니다. (충분히 자신을 제한하지 않는 경우 곧 다항식 시간에 앉아있을 것입니다.) 부동 소수점 작업을 수용 할 수있는 BSS 기계를 생각할 수 있습니다. 실제로 일정한 정밀도를 무시하면서 실제로 일정한 정밀도를 무시하면서 .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top