CNF 공식 반대의 두 번 읽기 두 번 패리티 계산의 복잡성 ( )


11

CNF 공식과 반대의 두 번 읽기에서 각 변수는 두 번, 한 번은 긍정적이고 한 번은 부정적으로 나타납니다.

나는 문제에 관심이 있는데, 이는 CNF 공식과 반대되는 두 만족스러운 할당 수의 패리티를 계산하는 것으로 구성됩니다.Rtw-Opp-CNF

이러한 문제의 복잡성에 대한 참조를 찾을 수 없습니다. 내가 찾은 가장 가까운 것은 계산 버전 가 -complete ( 이 백서의 섹션 6.3 참조 )라는 것입니다.# P#Rtw-Opp-CNF#P

도움을 주셔서 감사합니다.


2016 년 4 월 10 일 업데이트

  • 에서는 본 논문 은 문제로 도시 - 완전한가 그러나로부터 환원에 의해 생성 된 화학식 , CNF에없고 CNF로 ​​다시 변환하려고 시도하면 3 번 읽기 공식을 얻게됩니다.P 3 SATRtw-Opp-SATP3SAT
  • 모노톤 버전 로 표시됩니다 에서 - 완전한를 이 논문 . 이러한 논문에서, 는 섹션 4의 끝 부분에서 빠르게 언급됩니다. 변성되는 것이 정확히 무엇을 의미하는지, 그리고 경도와 관련하여 무엇을 의미하는지는 분명하지 않습니다.P Rtw-Opp-CNFRtw-Mon-CNFPRtw-Opp-CNF

2016 년 4 월 12 일 업데이트

문제 의 복잡성을 연구 한 사람이 있는지 아는 것도 매우 흥미로울 것 입니다. CNF 공식과 반대의 두 번의 읽기가 주어지면, 그러한 문제는 홀수의 변수를 참으로 설정 한 만족 할당 수와 짝수의 변수를 참으로 설정 한 만족 할당 수의 차이를 계산하도록 요구한다. 나는 그것에 관한 어떤 문헌도 찾지 못했다.ΔRtw-Opp-CNF


2016 년 5 월 29 일 업데이트

Emil Jeřábek이 그의 의견에서 지적한 것처럼, Valiant가 가 퇴화 되었다고 말한 것은 사실이 아닙니다 . 그는 그런 문제의 더 제한된 버전 인 가 퇴화 . 한편, 나는 퇴행이 정확히 무엇을 의미하는지 계속 알지 못하지만, 적어도 지금은 표현력이 부족하다는 동의어 인 것이 분명해 보인다.Pl-Rtw-Opp-3CNFRtw-Opp-CNFPl-Rtw-Opp-3CNF


⊕Rtw-Opp-CNF는 ⊕Rtw-Mon-CNF만큼 어렵습니다. 부정 가젯을 빌드 할 수 있습니다 : (i0 v x0 v x1) (x1 v x2) (i1 v x0 v x2). i0 = i1이면 가중치 = 0 (모듈로 2)입니다. 그렇지 않으면 무게 = 1입니다.

⊕Rtw-Mon-CNF에서 ⊕Rtw-Opp-CNF로 축소를 찾을 수 없지만 ⊕Rtw-Opp-CNF를 푸는 다항식 알고리즘을 찾았습니다. 따라서 ⊕Rtw-Opp-CNF가 더 간단합니다.

Valiant의 논문에서 ⊕Rtw-Opp-CNF에 대한 언급을 찾을 수 없습니다. 그는 ⊕Pl-Rtw-Opp-3CNF는 "퇴화된다"고 주장하지만 몇 가지 추가적인 제한이 필요하다.
Emil Jeřábek

@ EmilJeřábek : 당신은 확실히 맞습니다. 나는 "degenerate" 의 의미에 대한 나의 무지에 의해 오도되었고 , 완전성 결과가있을 때 일반적으로 적용되는 것과 같은 종류의 추론을 적용했다. 어떤 클래스에 대해 특정 문제가 완료되면 제한을 제거하면 분명히 완전성이 보존된다. "퇴화"가 정확히 무엇을 의미 하는지 여전히 알지 못하더라도 , 그러한 용어는 어쨌든 약점 (즉 표현력 부족)의 동의어이므로, 앞서 언급 한 추론을 적용 할 수는 없다는 것이 적어도 분명합니다. 이에 따라 질문을 수정했습니다.
Giorgio Camerani

1
@Maciej : 정말요? 다항식 알고리즘은 어떻게 작동합니까?
Giorgio Camerani

답변:


3

모든 반대-읽기-두 번의 공식은 짝수의 만족스러운 할당을 갖는 것으로 밝혀졌다. 그래프 이론 용어를 제거 할 수는 있지만 여기에 좋은 증거가 있습니다.

두 번의 읽기 반대 CNF 공식 이라고합시다 . 일반성을 잃지 않으면 어떤 절에도 변수와 그 부정이 모두 포함되지 않습니다.ϕ

그래프 고려 그 정점의 집합 인 절 각 변수 , 우리는 두 절 함유 입사 인 (방향성이) 가장자리 부가 . 의 WLOG 가정에 따르면이 그래프에는 자체 루프가 없습니다. 더욱이, 각 모서리를 정의하는 변수로 각 모서리에 레이블을 지정하는 것을 고려하십시오. 이 방법으로 평행 모서리를 구별 할 수 있습니다.ϕ x x ϕGϕxxϕ

의 배향 그 모서리에서 각각의 에지 방향에 할당하여 형성된 방향성 그래프 . 의 방향을 전화 허용을 모든 정점 경우 나가는 날이있다. 대한 만족스러운 할당 이 허용 가능한 방향과 양도 적으로 일치 한다는 것을 쉽게 알 수 있습니다 .G G G ϕ GGGG GϕG

이제 의 허용 가능한 방향의 수 는 짝수 라고 주장합니다 . 인수는 "involution에 의해": 다음 속성을 사용하여 map 를 구성 합니다.ΦGΦ

  1. Φ 는 완전히 정의됩니다 (허용 가능한 모든 방향은 어딘가에 매핑됩니다)
  2. Φ 는 허용 가능한 방향을 허용 가능한 방향으로 보냅니다.
  3. Φ ΦΦ 는 진화이다 ( 는 정체성이다)ΦΦ
  4. Φ 고정 점이 없다

이것들이 확립되면, 의 궤도 는 크기가 2이고 의 허용 가능한 방향을 분할 한다는 것을 알 수 있습니다 . 허용되는 방향의 수는 짝수입니다.GΦG

정의하려면 ,하자 허용 오리엔테이션, 그리고 파괴 고려 그것을 강력하게 연결된 구성 요소로. 그런 다음 는 를 강하게 연결된 구성 요소 내의 모든 가장자리를 뒤집어 형성된 방향으로 보냅니다 . 그런 다음 속성을 간단하게 확인합니다.G G Φ GΦGGΦG

  1. 모든 방향 그래프는 강력하게 연결된 컴포넌트로 분할 될 수 있습니다.
  2. "강하게 연결된 구성 요소의 DAG"를 고려하십시오 . 그것을 몫 그래프라고 부릅니다. 는 SCC 사이의 가장자리에 영향을 미치지 않으며 강하게 연결된 그래프는 모든 가장자리를 뒤집을 때 강한 연결 상태를 유지 하므로 는 동일한 몫 구조를 갖습니다. 또한 SCC에 둘 이상의 정점이있는 경우 모든 구성 정점이 들어오는 모서리를 갖습니다. SCC에 단일 정점이 있고 몫의 소스가 아닌 경우 모든 구성 정점이 들어오는 모서리를 갖습니다. 를 표시하려면GΦ(G)ΦΦ(G)몫의 소스 인 SCC가 여러 개의 정점을 가지고 있음을 보여주기에 충분하다. 그러나 이것은 구성 요소의 모든 정점이 들어오는 가장자리를 가지고 있다는 것을 의미합니다. 는 자체 루프가 없으며 구성 요소가 몫의 소스 이기 때문에 구성 요소의 다른 정점에서 가져와야합니다.G
  3. 이것은 의 몫 구조가 의 몫 구조와 일치 한다는 사실에서 비롯 됩니다.Φ(G)G
  4. 허용 가능한 에는주기가 있으므로 그 안에 가장자리가있는 일부 SCC가 있습니다.G

좋은 관찰! 이것을 보는 가장 간단한 방법 (“그래프 이론 용어 제거”)은 대입이 F를 만족하면 대입 a '(x) = 1-a (x)도 F를 만족한다는 것을 관찰하는 것입니다. 이것은 F의 변수의 수를 유도함으로써 쉽게 보여 질 수있다.
holf

주어진 가 진화 라고 생각하지 않습니다 . 예를 들어, 방향이 4 요소 그래프를 고려하십시오 . 이것은 허용되는 방향입니다. 첫 번째 사이클이 이라고 가정하십시오 . 그런 다음이주기를 반전시킨 후 새로운주기가 생깁니다. . 이주기를 원래주기 전에 주문하면 문제가있는 것입니다. Φ01203101200310
Emil Jeřábek

@holf 당신의 관찰도 잘못되었습니다. , 및 절이있는 CNF를 고려하십시오 . 이는 할당 의해 충족 되지만 의해 만족 되지는 않습니다 . x¬xy¬z¬yz(1,1,1)(0,0,0)
Emil Jeřábek

의 다음 정의가 효과가 있다고 생각합니다 . 하자 될 정점의 집합 의 모든 것을위한 특성과 로부터 (직접) 경로에 의해 도달 , 의 경로에 의해 도달 . (모달 논리 학자로서 이것을 지시 된 그래프의 전 이적 반사성 폐쇄의 최종 군집의 합집합이라고 설명 할 것입니다. 그래프 이론가들이 무엇이라고 부르는지 모릅니다.) 그런 다음 모든 가장자리를 소스로 뒤집습니다 (따라서 목표) 의 . ΦMxyxxyM
Emil Jeřábek

@ 에밀 : 아 그래, 맞아. 귀하의 제안을 올바르게 이해하면 방향을 강하게 연결된 구성 요소로 나누고 구성 요소의 가장자리를 반대로 말하는 것입니다. 나는 이것이 효과가 있다고 생각한다. 이에 따라 답변을 업데이트하겠습니다. 고마워요 !!
Andrew Morgan

0

내 아이디어가 이해 가능한지 확실하지 않으므로 Giorgio의 예에 대해 설명하겠습니다.

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6) .

먼저 DNF 양식에서 이것을 변경해야합니다.

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6) .

이것은 같은 대답을 제공해야합니다. 그리고 내가 이것을 위해 많은 수의 솔루션 modulo 2를 계산하더라도 :

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6) = 0

또는 이것을 위해 :

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6) = 1입니다.

그래서 두 번째를 선택하고 있습니다. 나는 연루가있다 :

i0 =(x1x2x3)

i1 =(¬x1¬x3x4)

i2 =(¬x4x5)

i3 =(¬x2¬x5¬x6)

이제 방정식 시스템을 만들고 있습니다.

j0j1=1

j0j3=1

j0j1=1

j2j3=1

j3=1

이 시스템에는 하나의 솔루션이 있습니다. 1 mod 2 = 1이므로 답은 1입니다. 그러나 은 한 번만 발생합니다. 모든 변수가 두 번 발생하면 응답이 1입니까?x6


내 생각이 괜찮다면 대답은 "아니오"입니다. 물론 변수는 긍정적으로 한 번, 부정으로 한 번 발생한다고 가정합니다.
Maciej

에 대한 방정식을 잊었습니다 . = 1입니다. 그러나 동일한 경우 결과입니다. 하나의 해결책 : = 1, = 0, = 1, = 0.x4j1j2j3j2j1j0
Maciej

-1

큰 지연에 대해 죄송합니다. 지금까지 아마 문제가 해결되었습니다. 그렇지 않다면 를 해결하기위한 다항식 알고리즘을 제시 . 먼저이 방정식의 모듈로 2 솔루션 수를 계산해 봅시다 : . 여기서 f와 g는 논리 함수이고 X는 변수로 구성된 벡터입니다. 일반적인 부분 는 두 번 (f (X)에 한 번, g (X)에 한 번) 두 번 발생합니다. 따라서 모듈로 2에서는 공통 부분이 중요하지 않습니다. 우리는 2 모듈로 솔루션의 수를 계산할 수 및 솔루션의 수의 2 모듈로 이제 그 기능이 형태로 표시됩니다 가정하자 다음이 결과는 2 모듈로 요약 :Rtw-Opp-CNFf(X)g(X)f(X)g(X)f(X)g(X)

i0i1i2...in1 ,

여기서 는 의미가 없습니다 (AND 연산자로 연결된 변수를 의미합니다 (예 : )).ijx0x1¬x2

이 함수 modulo 2의 해의 수를 계산하기 위해 간단히 각 함축 된 modulo 2의 해 수를 계산하고 모든 결과를 modulo 2의 합으로 구할 수 있습니다. 변수 X의 벡터가 있고이 벡터의 모든 변수가없는 경우, 우리는 알고 있습니다 k가 누락 된 변수의 수인 솔루션 이 있기 때문에이 관련 솔루션에 대한 모듈로 2의 솔루션 수는 0 입니다. 함의에 모든 변수가있는 경우 해의 수는 1 (k = 0)입니다. 따라서 모듈로 2 솔루션 수를 계산하는 것은 쉽습니다. 이제 고려해 봅시다 :2ki0i1i2...in1

i0i1i2...in1 .

우리는 입니다. 일반적으로 OR 연산은 AND 연산자로 연결된 모든 관련 하위 집합의 XOR로 대체 될 수 있습니다. 그리고 이것은 중요한 단계입니다. 우리는 다음과 같은 부분 집합에만 관심이 있습니다.ab=ab(ab)

1) 모든 변수가 있습니다.

2) 모든 변수가 정확히 하나 발생합니다 (변수가 두 번 발생하면 하나의 함축적에서 양수와 음수를 가지므로 0으로 나타납니다).

에서 양의 , 에서 음의 을 가지고 있다고 가정 해 봅시다 . 그러면 우리는 다음과 같이 쓸 수 있습니다.x0i0x0i1

j0j1=1 입니다.

이 방정식에서 변수 및 관련 및 합니다. 예를 들어, 관련 이 서브 세트에서 발생하고 = 1 이면 발생합니다 . 그렇지 않으면 = 0입니다. 모든 변수에 대해이 값을 설정하면 XOR 방정식 세트를 얻게 세트의 해 수를 계산해야합니다. 이 문제는 쉽습니다. l이 찾은 값일 때 항상 인 경우 솔루션 수입니다. 그게 다야. 나는 이것이 공식적인 증거가 아니라는 것을 알고 있지만 이해할 수 있기를 바랍니다.j0j1i0i1i0j0j02l


흠 .... = 1 인 경우가 있습니까? Rtw-Opp-CNF
Maciej

@AndrewMorgan 그러나 모든 변수를 정확히 한 번만 포함하는 고유 한 절이있는 수식은 두 번 읽은 수식이 아닙니다. 제한은 최대 두 배가 아니라 정확히 두 배입니다.
Giorgio Camerani

@AndrewMorgan 다음 공식 ( 은 한 번만 나타나 므로 두 번 읽히지 않음 )에는 만족할만한 할당 수가 홀수입니다. . 제외한 이러한 공식의 모든 변수는 두 읽기 제한에 따르고 만족할만한 할당 수는 홀수이지만 공식에 "모든 변수를 정확히 한 번만 포함하는 고유 한 절"이 없는 경우에도 홀수 입니다. x6(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)x6
Giorgio Camerani

@GiorgioCamerani 모든 변수를 포함하는 모든 절 중에서 입력 수식에 고유 한 절이 있음을 의미했습니다. 즉, 와 같은 공식 에는 모든 변수가 한 번 존재하는 고유 한 절이 있으며 또는 가 없습니다. 나는 입력에서 다른 절의 존재를 배제하려고하지 않았습니다. 그러나 어쨌든 나는 Maciej의 대답을 오해하고 있다고 생각하므로 이전 의견을 삭제했습니다. ( x 1x 2 ) ( ¯ x 1¯ x 2 ) ( x 1 ) ( ¯ x 1 ) ( x 2) ) ( ¯ x 2 )(x1x2)(x1¯)(x2¯)(x1x2)(x1¯x2¯)(x1)(x1¯)(x2)(x2¯)
앤드류 모건

@AndrewMorgan OK, 이제 알겠습니다. 그러나 당신이 의미하는 경우에도 만족스러운 과제의 수가 고르게 남아 있다고 생각하십시오. 그의 의견에서 Maciej가 제기 한 질문은 도전적인 것으로 판명되었습니다.
Giorgio Camerani
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.