SAT 최고의 상한


43

다른 스레드 에서 Joe Fitzsimons는 "3SAT에서 가장 좋은 현재 하한값"에 대해 물었습니다.

나는 다른 길로 가고 싶습니다 : 3SAT 에서 가장 좋은 현재 상한 은 무엇입니까 ? 다시 말해, 가장 효율적인 SAT 솔버의 시간 복잡성은 무엇입니까?

특히, SAT에 대한 하위 지수 (아직 초 다항식) 알고리즘을 찾는 것이 가능합니까?


2
분석 결과에 대해서는 잘 모르지만 여기서 실험 결과를 찾을 수 있습니다. baldur.iti.uka.de/sat-race-2010/results.html("HTML "링크 참조)
Radu GRIGore

1
cstheory.stackexchange.com/questions/1295/sat-solver-download의 질문으로 인해이 질문 제목이 약간 잘못 되었습니다 . 나는 당신이 'SAT에서 최고의 상한선'으로 바꾸어 줄 수 있다고 생각합니까?
Suresh Venkat

@Suresh : 언급 한 질문은 "#SAT"와 관련이 있지만이 질문은 SAT에 해당합니다. 또한, 그 질문은이 질문이 있은 지 일주일 후에 요청되었습니다. 어쨌든, 여전히이 제목을 바꾸는 것이 좋습니다?
MS Dousti

예, "SAT Solver"는 잘 알려진 특정 객체이므로 SAT를 해결하기위한 실제 코드베이스입니다. 구글은 혼란스러워하고 코드를 찾는 사람들을 리디렉션합니다 :).
Suresh Venkat

4
이 질문에 대한 동기 부여와 관련하여 여러 사람들이 17x17 인스턴스에서 SAT 솔버를 시도했다고 생각했습니다. SAT 솔버로 처리 할 수있는 것의 최전선 인 것 같습니다. 대신 병렬 솔버를 시도 할 수는 있지만 Bill Gasarch의 게시물을 기반으로 큰 노력이 필요하다는 인상을 받았습니다. 적절한 이론으로 SMT 솔버를 적용하거나 효율적인 전파자가있는 전역 제약 조건을 구현하는 제약 조건 솔버를 사용할 수도 있습니다. 각각의 경우에 새로운 아이디어는 절을 사용하기 어려운 중요한 속성을 표현하는 것입니다.
András Salamon

답변:


38

"최고의"SAT 솔버에는 이론 용과 연습용의 두 가지 종류가 있습니다.

이론

3SAT에 대해 무작위 화 된 .O(1.32113n)

무작위 3SAT 대.O(1.321n)

결정적 3SAT 대.O(1.439n)

연습

매년 경쟁 결과는 SAT 회의 를 확인하십시오 .


O(1.32113n)

@ Sadeq : 그렇게 생각하지만 SAT가 아닌 3-SAT에만 해당됩니다.
Tian Liu

2
O(1.321n)

10
1.308n

21

최대 하나의 만족스러운 할당이 있을지 여부에 관계없이 알려진 결정 론적 알고리즘보다 더 나은 범위를 갖는 SAT 에 대한 제로 오류 무작위 알고리즘 (또는 그 문제에 대한 coNE / Eadvice 알고리즘
)을 알지
못합니다.


O(1.3303n)


n
O(1.3071n)O(1.4699n)


  1. "
    시간에 실행되는 일방적 인 오류가있는 3-SAT에 대한 무작위 알고리즘이 있습니다. O(1.30704n)
  2. "
    시간에 실행되는 일방적 인 오류 와 함께 4-SAT에 대한 무작위 알고리즘이 있습니다 O(1.46899n)


"독특한 3-SAT에는 무작위 알고리즘이 있습니다. ϵ=1/(1024)
S
O(2(S+o(1))n), 현재 논문의 알고리즘은 제 시간에 실행됩니다 O(2(Sϵ+o(1))n)



16

O(an)a=2(k1)/kO(1.33334n)O(1.5n)

O((a+ϵ)n)aϵ>0

O


1
왜 "거의 완전히"라고 말합니까? 종이에 뭔가 빠졌습니까?
András Salamon

1
O((22k+1)n)k=3O(1.5n)

4
나는 거기에 엡실론 요소가 있음을 나타 내기 위해 "거의 완전히"라고 말했습니다. 완전한 derandomization이 동일한 런타임 (다항식 요소까지)을 달성 할 것으로 기대합니다. 아니면 어쩌면 그것은 예상하기 어려운 것입니다.
Robin Kothari

1
@Grigory Yaroslavtsev : kSAT에 대한 Moser-Scheder 결정 론적 알고리즘이 내가 인용 한 것보다 더 빨리 언급 한 것이 아닙니까? 뭔가 빠졌습니까?
Robin Kothari

1
ϵ

12

이미 언급했듯이 이론적 인 실행 시간 보증에 관심이 있다면이 질문은 중복됩니다.

그러나 구체적인 문제 (당신이 언급 한 채색 문제와 같은)를 실제로 풀고 싶다면 이론적 상한을 연구하는 것이 전혀 의미가 없다고 생각합니다.

"엔지니어링"측면을 피하고 싶었지만 인기있는 SAT 솔버를 사용하여 시도해보고 어떤 일이 발생하는지 확인하십시오 (대부분 동일한 DIMACS 파일 형식을 읽을 수 있으므로 시도하기 쉽습니다). 다른 솔버). 당신은 긍정적이고 부정적인 놀라움을 모두 가질 수 있습니다. 최근에 SAT 인스턴스 제품군이있었습니다. 수만 개의 변수와 백만 개 이상의 절을 가진 많은 인스턴스는 해결하기 쉬운 것으로 판명되었지만 수백 개의 변수와 수천 개의 절을 가진 훨씬 간단한 인스턴스는 내가 시도한 모든 솔버에게는 너무 어려웠습니다.


8
Jukka의 요약 외에도 SAT 솔버에는 두 가지 주요 SAT 솔버가 있습니다. 즉, 임의의 SAT 인스턴스에 대해 잘 작동하는 설문 조사 전파를 기반으로하는 솔루션과 작동하는 경향이있는 단원 해결과 함께 섹션 학습을 사용하는 솔루션입니다. 조합 구조를 발견 할 수 있습니다. 이것들은 상당히 다른 행동을 가지고 있습니다. SAT 솔버의 최악의 경우는 만족할 수 없지만 인스턴스가없는 공간에는 프룬을 많이 허용하지 않는 복잡한 구조가있는 경우가 많습니다. 불행하게도 조합론의 사례는 이런 종류의 경향이있다.
András Salamon

11

O(1.308n)


나는 누군가가 더 나은 상한선을 생각해 내면이 논문을 인용한다고 가정한다. 이 논문에 대해 한 번만 인용 된 것은 "전체 이진 기준에 대한 공식에 대한 만족도 알고리즘 및 평균 사례 경도"이며 특정 유형의 공식에 대해서만 이야기하는 것 같습니다. 따라서 이것은 지금까지 최고의 어퍼 바운드 인 것 같습니다.
Tayfun Pay

@TayfunPay : 내 대답의 맨 아래 종이가 그 종이를 인용합니다.

@RickyDemer Uhuh! 이것보다 더 나은 경계입니까? 표기법이 나에게 명확하지 않습니다.
Tayfun Pay

@TayfunPay : 예, 다음에 설명 된대로 두 개의 용지를 검색 할 수 있습니다. S3Sk 11 페이지의 맨 위에, 그 논문은 그들의 알고리즘이 PPSZ와 같은 경계를 제공한다고 말하는데, 이것은 이전 문장에서 언급 한 것 이상을 보여주지 않았다는 것을 의미합니다. (계속 ...)

(... 계속) S2SnSS3

8

지수 시간 가설 이 거짓이 아닌 한 3SAT에서 하위 지수 알고리즘을 갖는 것은 불가능합니다 .

O(1.324n)

O(1.32216n)


15
그건 긴장이 아닌가?
Ito Tsuyoshi

1
2o(n)

Kazuo Iwama et al. (2004)는 Schoening 's (1999)보다 최신입니다. 더 최근의 결과가 가능한지 궁금합니다.
MS Dousti

8
혼란의 가능성을 피하기 위해, 마지막 의견은“지수 시간 가설 (ETH)이 거짓이 아닌 한 3SAT가 하위 지수 알고리즘을 갖는 것이 불가능합니다.”라는 대답의 첫 문장을 말합니다. 가설은 변수 수에 실행 시간이 서브 지수 (즉, 2 ^ {o (n)}) 인 3SAT에 대한 알고리즘이 없음을 나타내는 매우 가설입니다.
Ito Tsuyoshi

10
그리고 더 혼란을 피하기 위해, Tsuyoshi가 자신의 의견을 게시했을 때 그 답변에는 한 문장 만 포함되어있어 자신의 의견이 매우 적절하다고 덧붙였습니다.
Robin Kothari

7

게시물 은 SAT 상한을 다룹니다. 이 하나의 가장 낮은 범위를 다룬다. 이 링크 는 SAT 솔버 구현을 비교하여 매년 다운로드 할 수있는 연간 경쟁에 대한 세부 정보를 제공합니다. 간단하게 하기 위해 SAT 해결을위한 Java 기반 라이브러리 인 SAT4J로 시작할 수 있습니다.


이 질문 이미 전에 요청 되었습니다 . 웹 사이트를 검색 할 때 보지 못했습니다. 상한 문제에 대한 Tian Liu의 답변은 내가 찾던 것입니다. 링크 감사합니다, 데이브!
Daniel Apon

1
이것은 내가 여기에 너무 많은 시간을 보낸다는 증거입니다 ;-)
Dave Clarke


2
sat4J를 추천 할 것인지 잘 모르겠습니다. 최신 기술보다 속도가 느릴뿐만 아니라 다소 복잡합니다. 그러나 객체 지향 구조로 인해 사용자 정의가 가능하다는 것은 사실입니다. MiniSat은 매우 훌륭하게 작성되었으며 2.2는 최신 기술입니다.
Mikolas

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