다항식 시간과 강한 다항식 시간에서 실행되는 알고리즘의 정의


18

Wikipedia 는 그것을 정의합니다

알고리즘 의 실행 시간이 알고리즘 입력의 크기에서 다항식에 의해 상한 인 경우, 즉 일부 상수 k에 대해 경우 알고리즘은 다항식 시간 이라고합니다 .()=영형(케이)

의 알고리즘 실행 강하게 다항식 시간 의 경우 [8]

  • 연산 계산 모델의 연산 수는 입력 인스턴스의 정수 수의 다항식에 의해 제한됩니다. 과

  • 알고리즘이 사용하는 공간은 입력 크기의 다항식에 의해 제한됩니다.

에서 베른하르트 코트, 옌스 Vygen, 조합 최적화 (Combinatorial Optimization) :

정의 1.4.

합리적인 입력을 가진 알고리즘은 다항식 시간 에 실행된다고 합니다

  • 시간에 실행되도록 정수 k가 있으며 , 여기서 n은 입력 크기입니다.영형(케이)
  • 중간 계산의 모든 숫자는 비트로 저장 될 수 있습니다 .영형(케이)

임의의 입력을 가진 알고리즘은 다항식 시간강하게 실행된다고 합니다.

  • n 개의 숫자로 구성된 입력에 대해 영형(케이) 시간에 실행되도록 정수 k가 있으며
  • 합리적인 입력을 위해 다항식 시간으로 실행됩니다.

내가 틀렸다면 정정 해주세요. 다음은 내가 눈에 띄는 차이점입니다.

  • 다항식 시간 알고리즘의 경우 Korte와 Vygen의 정의는 "Wikipedia의 정의 + 다항식 저장 공간"입니다.

  • 강력한 다항식 시간 알고리즘의 경우 Korte 및 Vygen의 정의와 Wikipedia의 정의에는 입력 저장 크기에서 다항식 시간이 필요합니다. 그러나 K와 V는 입력의 수에 다항식 시간이 추가로 필요한 반면, Wikipedia는 입력 크기에 다항식 저장 공간이 추가로 필요합니다.

이 두 개념에 대한 K와 V와 Wikipedia의 정의는 각각 동일합니까? 그들 사이에 어떤 다른 차이점과 관계가 있습니까?

감사합니다.


defn 바로 다음의 wikipedia 섹션에 꽤 좋은 설명이 있습니다. 숫자를 나타내는 비트 수와 관련이 있으며 매우 큰 숫자는 복잡도 측정에 영향을 줄 수 있습니다. K & V의 선언은 "가까운"것으로 생각됩니다. 합리적 입력에 관해서는, 합리적 연산이 크기를 크게 늘리지 않는다는 증거가 필요합니다. 모든 입력의 LCD를 찾고 LCD에서 숫자로 모든 산술을 수행하여 이것이 보일 수 있다고 생각하십시오.
vzn

@vzn : Wikipedia의 설명은 (1) 산술 대 튜링 머신에 적합하지만 강력한 다목적 목적 및 정의와 관련하여 매우 얕으며 (2) GCD의 예에서 완전히 잘못되었습니다.
alexei

답변:


5

공식적인 정의를하기 전에 "강한 / 약한"분류가 무엇을 구별해야하는지 고려하십시오.

먼저 튜링 머신에서 하나를 실행 해보십시오. 둘 다 이진 인코딩 된 입력 길이에서 다항식으로 여러 단계로 실행됩니다. 결과적으로,이 둘에 의해 수행되는 산술 연산의 수 는 이진 인코딩 된 입력 길이에서 다항식이어야 합니다 . 따라서 Turing Machine의 작동 시간은 입력 값의 수 또는 크기가 증가함에 따라 다항식으로 증가합니다. 후자를 강조하기 위해, 강한 것조차도 더 큰 단계에서 더 많은 TM 단계를 취할 것입니다 (적어도 여분의 비트를 읽어야 함). 어떤 상황에서도 관계가없는 의사 다항식 시간의 경우와 같이 지수가됩니다. 튜링 기계만으로는 근본적인 차이를 감지 할 수 없습니다.

이제 모든 연산이 정수에 대한 산술 연산이고 산술 연산이 인 산술 기계에서 각각 실행하는 것을 고려하십시오 . 입력 숫자의 크기를 늘리면 이진 인코딩 된 입력의 길이가 길어지고 약한 알고리즘의 실행 시간이 증가하지만 강한 알고리즘의 실행 시간은 숫자에 의해 제한 될 수 있으므로 변경되지 않습니다 변경하지 않은 입력 번호 (예 : 매트릭스 곱셈 대 유클리드의 GCD).영형(1)

입력 숫자의 수에서 다항식의 수의 산술 연산에서 실행되는 알고리즘 세트는 잘 정의되어 있지만 이진 인코딩 된 입력의 길이에 지수 단계 TM 수를 취하는 알고리즘 클래스와 겹칩니다 ( 참조 ). 따라서이 집합의 경우 두 번째 단락의 속성이 유지되지 않습니다. 원하지 않는 교차를 배제하기 위해 다항식 TM 공간 [*]에 대한 조건을 추가합니다.

[1]에서 이는 두 가지 방식으로 설명됩니다.

  • 알고리즘이 다항식 공간 알고리즘이고 입력 수의 수에서 다항식에 의해 제한되는 다수의 기본 산술 연산을 수행하는 경우 알고리즘은 다항식 시간에 강하게 실행됩니다.
  • 다항식 알고리즘은 표준 Turing machine 모델의 다항식 공간 알고리즘과 산술 모델의 다항식 시간 알고리즘입니다 (설명은 이 질문 참조 ).

이미 "효율적인"알고리즘의 하위 분류는 실제 컴퓨터가 튜링 기계보다 산술 기계와 유사하기 때문에 유용 할 수 있으므로 하위 클래스 다항식 범위의 길이가 길면 실제 기계에서 더 빠르게 실행될 알고리즘을 식별 할 수 있습니다. 이진으로 인코딩 된 입력의 값은 달리 비교할 수 있습니다 (예 : 강한 대 약한 )영형()영형(2)

[*] 두 번째 조건은 모든 곳에서 다항식 공간으로 표시되는 반면, 다항식 시간이 필요합니다. 전자는 더 포괄적이지만 이상합니다. 다항식 시간보다 오래 걸리는 다항식 알고리즘이 있습니까? 반복 제곱 예제는 다항식 시간이나 다항식 공간을 사용하지 않습니다.

[1] Grötschel, Martin; László Lovász, Alexander Schrijver (1988). "복잡성, 오라클 및 수치 계산". 기하 알고리즘 및 조합 최적화. 봄 병아리. ISBN 0-387-13624-X.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.