찾고있는 개념을 열거 복잡성 이라고합니다. 열거 복잡성 이란 문제에 대한 모든 솔루션 (또는 언어 / 집합 멤버)에 대한 모든 솔루션을 열거 (목록)하는 계산 복잡성에 대한 연구입니다. 열거 알고리즘은 2 단계 프로세스로 모델링 할 수 있습니다. 사전 계산 단계와 지연이 . 이 두 단계는 시간과 공간이 복잡합니다 (아마도 엔트로피). 일반적인 복잡성의 정신에서, 이들 사이에 고려해야 할 절충이 종종 있습니다.
사전 실행 단계는 제 용액을 열거하기 전에 필요한 몇 가지 작업을 수행한다. 여기에는 솔루션 자체를 찾거나 각 솔루션 간의 전체 지연을 줄일 수있는 큰 데이터 구조를 초기화하는 것이 포함될 수 있습니다.
지연은 임의의 열거 된 용액 사이에 필요한 계산 자원과 관련된 비용이다. 즉, 지연은 i t h 이후 솔루션 을 생성하는 데 필요한 공간과 시간을 측정 한 것입니다. 각 열거에 대해 O ( 1 ) 시간 이 걸리는 문제 는 일정한 지연이 있다고합니다. O 의 요구 사항 ( p o l y ( n ) )i+1thithO(1)O(poly(n)) 의 시간 지연은 다항식을 말한다.
특별히 귀하의 질문에 언급 된 열거 문제의 경우, 클래스로 보일 것입니다 (하단에 링크) 요하네스 슈미트에 의해 "알고리즘 및 복잡성 열거"의 섹션 2.1 및 관련 형제.ENUMNP
사전 계산 시간과 지연에 관심을 갖는 이유는 무엇입니까?
지연은 열거 문제의 실제 복잡성을 이해하는 데 매우 중요합니다. (최대 크기 n ) 및 { → x : ϕ ( → x ) } 의 요소를 열거합니다 . 여기서 ϕ ( → x ) 는 부울 수식 (예 : SAT)은 모두 지수 시간이 걸립니다. 그러나 Σ ∗를 통해 열거Σ∗n{x⃗ :ϕ(x⃗ )}ϕ(x⃗ )Σ∗일정한 순서로 요소를 통과 할 수 있기 때문에 일정한 지연 만 필요합니다. 우리가 아는 한, 솔루션을 3SAT 인스턴스에 열거하는 데 지연이 기하 급수적 일 수 있습니다. 복잡한 이론가로서 우리의 임무는 왜 후자의 문제가 이전의 문제보다 근본적으로 더 어려운 (더 복잡한) 이유를 포착하는 것입니다. Delay는이 차이를 잘 보여줍니다.
마찬가지로, 우리는 얼마나 많은 사전 계산이 수행되는지 알아야합니다. 모든 솔루션을 미리 계산하고 나중에 열거 할 목록에 저장하여 열거 문제가 일정한 시간과 공간으로 지연되는 것을 줄일 수 있습니다. 문제는 두 자원간에 최상의 균형을 찾는 것입니다.
요소를 열거하는 순서도 복잡성에 영향을 줄 수 있습니다. 지정된 정렬 순서로 결과를 반환해야하는 경우 두 단계 모두에서 추가 계산을 수행해야 할 수 있습니다. 모든 열거 된 요소가 고유 한 한 순서가 충분한 상황도 확실히 연구됩니다.
내가 아는 한, 이러한 클래스에는 일반적으로 간결한 레이블이 없습니다 ( 및 N P에 해당 ). 열거 복잡성 클래스가 3 개 이상의 리소스 (사전 계산 / 총 시간, 공간, 지연 및 엔트로피) 주위에서 저글링하기 때문에이 작업을 수행 할 수있을 것으로 기대할 수 없습니다. 특수 이름을 전달하기에는 너무 많은 리소스 범위 조합이 있습니다. 이것은 이러한 수업을 덜 흥미롭게 만들지 않으며 연구원이 어쨌든 시도하는 것을 막지 않습니다.PNP
자원
이 설문 조사 (실제로 공식화하려는 시도)는 시작하는 데 도움이됩니다. 또한 몇 가지 기본 계층 정리를 증명합니다.
열거 형 : 알고리즘과 복잡성
(Johannes Schmidt, 2009)
https://www.thi.uni-hannover.de/fileadmin/forschung/arbeiten/schmidt-da.pdf
열거 복잡도의 결과를 열거하려면 Kunihiro Wasa가 큐 레이션 한이 편집을 확인하십시오. 문제 유형별로 분류되어 있으므로 그래프주기 열거 전용의 여러 논문을 쉽게 찾을 수 있습니다. 주어진 노드의 주기만 고려하도록 관련된 알고리즘을 수정하는 것은 간단해야합니다.
http://www-ikn.ist.hokudai.ac.jp/~wasa/enumeration_complexity.html