모든 솔루션을 나열하는 것과 관련된 복잡성 클래스?


15

특정 노드를 포함하는 그래프에 모든 간단한 사이클을 나열 하는 것이 NP -hard 인지 묻는 질문을 Stack Overflow에서 읽고 있었는데 기존의 복잡한 클래스를 생각할 수 없었습니다. "이 문제에 대한 모든 해결책을 열거하십시오." 클래스 NP어떤 의미에서 는 적어도 하나의 솔루션이 존재하는지, FNP 클래스 가 단일 솔루션을 생성하도록 요구하고, 클래스 #P 는 얼마나 많은 솔루션이 있는지 계산하도록 요구하는 문제로 구성됩니다. 가능한 모든 솔루션을 철저히 열거합니다.

다항식 시간 계산 가능한 조건부 특정 형태 "에있는 문제를 설명하기위한 복잡도 종류 있는가 와 캐릭터 X가 모두 열거 Y 되는 P가 ( X는 , Y는 ) 일부 삽입 진실 피사체 [이다 적절한 복잡성 제한]? " 솔루션의 수가 입력 x 의 크기보다 기하 급수적으로 커질 수 있다는 점을 감안하면 제한을 없애기가 까다로울 수 있지만 이해하기 는 어렵습니다.(엑스,와이)엑스yP(x,y)x


흥미 롭군 어쩌면 실제로는 너무 많은 관련 문제 사례가 종종 여러 가지 해결책을 가지고있을 수 있습니다. SAT 및 CLIQUE의 인스턴스는 일반적으로 솔루션 공간이 큽니다.
chi

3
이것을 공식화하기위한 또 다른 ansatz가 있습니다. 문제 X E 는 X 알고리즘이있는 경우 (X-열거 용) 그래서와 A는 ( X는 , ) 반품 된 I 번째 용액 (즉, I 번째의 YP ( X , Y ) ) WRT는 어떤 주문. 이것이 때때로 RE를 정의하는 방법과 유사한 점에 유의하십시오. 이는 솔루션 공간의 크기를 우회하고 다음 솔루션을 찾는 것이 얼마나 어려운지에 중점을 둡니다. 총 비용은 물론 합계로 제공됩니다. 엑스이자형(엑스,나는)나는나는와이(엑스,와이)
라파엘

3
(나는 그것이 정의 본 적이 클래스 ,하지만 당신의 개념을 알고 다항식 지연 열거 ?)

@Raphael 이것은 우리가 찾고있는 것이 아닐 수도 있습니다. 예를 들어, 대한 최상의 알고리즘 이 i 를 발견 하고 시간 Θ ( f ( | x | ) ) 까지 실행될 때까지 모든 솔루션을 반복 해야하는 경우 찾고있는 복잡도는 Θ입니다. ( f ( | x | ) ) 이지만 합산하면 복잡도 Θ ( f ( | x | ) 2 )가 나타납니다 . (엑스,나는)나는Θ(에프(|엑스|))Θ(에프(|엑스|))Θ(에프(|엑스|)2)
Lieuwe Vinkhuijzen

@RickyDemer 그게 내가 내 썰매에서 떨고 있었어요? 공식화가 확립되어 있음을 알고 반갑습니다.
Raphael

답변:


10

찾고있는 개념을 열거 복잡성 이라고합니다. 열거 복잡성 이란 문제에 대한 모든 솔루션 (또는 언어 / 집합 멤버)에 대한 모든 솔루션을 열거 (목록)하는 계산 복잡성에 대한 연구입니다. 열거 알고리즘은 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


ΣnO(1)O(1)

1
@j_random_hacker 나는 당신의 생각이 틀렸다고 생각하지는 않지만 당신의 질문에 대한 실제 대답은 "의존합니다". 이 백서의 저자는 일반적으로 사용중인 계산 모델 (일반 테이프 TM 대 RAM 대 워드 RAM)을 나타냅니다. 이 선택은 일정한 시간 연산으로 간주 될 수있는 것과 그렇지 않은 것 (예 : 숫자 증가 또는 출력 생성)을 변경합니다. 이 차이는 확장 된 교회 튜링 논문으로 인해 지연이 다항식이 되 자마자 사라질 것으로 추정됩니다.
mdxn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.