SAT 인코딩을위한 레시피 북?


17

SAT 솔버는 대규모 인스턴스를 해결하는 데 점점 더 효율적이고 다양한 컨텍스트에서 백엔드로 사용되고 있습니다. 특정 도메인에서 문제를 해결하기 위해 그것들을 사용하기를 원할 때마다 올바른 솔루션 세트뿐만 아니라 제약 조건을 중복하는 형식의 임시 인코딩을 만들어야합니다. 솔버의 휴리스틱이 솔루션을 더 빨리 찾는 데 도움이됩니다.

예를 들어, 유한 한 노드 집합이 트리 또는 DAG로 연결되어 있거나 목록이 정렬되어 있다고 주장하는 등의 많은 인코딩은 나에게 매우 일반적입니다.

최적화 된 솔루션의 일반적인 문제에 대한 일반적인 인코딩 저장소 / 레시피 책이 있습니까?


1.이 질문은 매우 유용하지만 잠재적으로 광범위합니다. 단일 도메인에 중점을두면 더 좋은 질문이라고 생각합니다 (예, 도메인 당 하나씩 여러 개의 질문이 포함될 수 있지만 수행 한 작업을 묻고 제시하기 전에 약간의 조사를 수행해야합니다).
DW

2. 또한 어떤 연구를 수행 했습니까? STP, Alloy 및 Minion과 같은 SAT 프런트 엔드를 살펴 보셨습니까? 당신이 봤어 cs.stackexchange.com/q/12087/755 , cs.stackexchange.com/q/13188/755 , cs.stackexchange.com/a/6522/755 , cs.stackexchange.com/a/12153/ 755 ? sat-solvers 또는 satisfiability 태그가 붙은 질문에서 ?
DW

예, 질문이 약간 광범위 할 수 있습니다. @DW는 그들 중 일부가 직접적으로 관련된 링크에 감사드립니다. 특정 문제를 해결하는 데 관심이없고보다 효율적인 인코딩을위한 일반적인 방법에는 관심이 없다고 언급 했어야합니다. 내가 사용했던 "모범 사례"라는 표현은 아마도 오도의 소지가있을 것이다. 나는 요리 책에 관심이있다 =)
Bordaigorl

나는 (하이퍼) 그래프 이론 말을 도메인에 대해서하지만이 ... 매우 광범위한 여전히 아마
Bordaigorl

답변:


9

나는 몇 년 전에 Magnus Björk의 " 성공적인 SAT 인코딩 기술 " 이라는 설문지를 읽었습니다 .

요약:

이 문서에서는 잘 알려진 여러 SAT 전문가와의 인터뷰를 분석하여 SAT 인코딩에 대한 모범 사례를 식별합니다. 전문가들 사이에 합의가 있는지 여부를 분석하고 SAT 사용자에게 숨겨진 지식을 제공함으로써 서로 다른 인코딩 전략에 대한 신뢰도를 결정하는 것이 목적입니다.

인코딩 기술은 일반적으로 SAT 솔버의 효율성에 큰 영향을 미치며, 좋은 인코딩을 찾기 위해서는 많은 노력이 필요하며 enconding의 크기는 솔루션을 찾는 경도와 매우 느슨하게 관련되어 있다는 의견이 일치합니다. . 인터뷰 대상자가 동의하지 않는 주제에는 SAT 문제에 산술을 포함시킬 수있는 가능성과 문제를 절 또는 회로로 공식화할지 여부가 포함됩니다.

이 기사에서는 숫자를 표현하는 다른 방법과 증분을 사용하는 방법과 같이 다양한 상황에서 유용한 여러 가지 전략에 대해 설명합니다.


4

만족스러운 핸드북을 먼저 확인하는 것이 좋습니다. [1] (자유롭게 구할 수없는 것 같습니다). 여기에서 2 장의 제목은 "CNF 인코딩"입니다. 최소한,이 책은 글을 쓰는 시점의 최신 기술에 관한 문헌 참고 자료를 제공하며,이를 통해 검색 범위를 넓힐 수 있습니다.

또한 여기여기 에 SAT 전처리에 대한 두 개의 최신 슬라이드가 있습니다. 슬라이드는 전처리 기술에 대한 간결한 개요와 추가 참조를 제공합니다. 아이디어는 효율적인 방식으로 문제를 "수동으로"모델링하는 대신 가장 쉬운 방법으로 모델링하고 go를 누르면 소프트웨어가 효율적인 인코딩을 제공한다는 것입니다.


[1] Biere, Armin, Marijn Heule 및 Hans van Maaren, eds. 만족스러운 핸드북. Vol. 185. IOS Press, 2009.


3

정확한 대답은 아니지만 점점 더 밀접하게 관련되는 각도입니다.이 중 일부는 SMT, Satisfiability Modulo Theorys 라는 비교적 새로운 연구 영역으로 덮여 있습니다. 기본적인 아이디어는 문제 인코딩 (예 : 정수 산술, 그래프 등)을 SAT 솔버에 결합하는 것뿐만 아니라이 커플 링에서 제공되는 추가 지식을 사용 / 활용하여보다 고급 솔루션 알고리즘을 구축하는 것입니다. 여기에 설문 조사가 있습니다. 지적 된 바와 같이, 그들은 특별한 인코딩 메커니즘을 표준 SAT 솔버와 결합하는 것보다 훨씬 더 효율적일 수있다.

  • 만족도 모듈로 이론 : 전채 / Leonardo de Moura와 Nikolaj Bjørner

    만족도 모듈로 이론 (SMT)은 하나 이상의 이론에 대한 논리 공식의 만족도를 확인하는 것입니다. 이 문제는 컴퓨터 과학에서 가장 근본적인 영역의 일부를 결합하여 발생합니다. 그것은 부울 만족도의 문제를 볼록 최적화 및 상징적 시스템 조작 용어로 연구 된 것과 같은 도메인과 결합합니다. 또한 지난 세기의 상징적 논리에서 가장 많은 문제, 즉 결정 문제, 논리 이론의 완전성 및 불완전 성, 그리고 마지막으로 복잡성 이론을 이끌어냅니다. 각 도메인에 대해 특수 목적 알고리즘을 모듈 식으로 결합하는 문제는 조합의 상황에서 특히 잘 작동하는 새로운 알고리즘을 찾는 것만 큼 깊고 흥미 롭습니다. SMT는 또한 소프트웨어 엔지니어링에서 매우 유용한 역할을합니다. 최신 소프트웨어 하드웨어 분석 및 모델 기반 도구는 점점 복잡하고다면적인 소프트웨어 시스템입니다. 그러나 핵심은 상태와 상태 간의 변환을 설명하기 위해 기호 논리를 사용하는 구성 요소입니다. 최첨단 기술을 고려한 잘 조정 된 SMT 솔버는 일반적으로 맞춤형 임시 솔버를 능가하는 규모로 확장됩니다.


이것은 매우 좋은 지적입니다. 그러나 SMT 솔버를 사용하더라도 성공적인 "레시피"를 통해 얻을 수있는 순수 SAT 기반 검색 부분이 있습니다.
Bordaigorl

"정확하게 SAT 기반의 검색 부분"이 있다고 말하는 것은 전적으로 정확하지는 않습니다. "인식하다". 다시 말해서, 그것은 (즉, 조합 ) 구성 요소들 (즉, 인코더 + 솔버)에 대해 "환원 가능 / 분리 가능"하지 않거나 단지 다른 표준화 된 인코딩 시스템이다.
vzn

내가 참조. 나는 그것에 대해 더 많이 읽을 것입니다 감사합니다!
Bordaigorl

확실한. 또한 응답 세트 프로그래밍 은 다소 유사합니다.
vzn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.