특수 알고리즘으로 SAT 솔버의 경쟁력 강화


11

SAT 솔버를 특수 그래프 알고리즘과 경쟁적으로 만드는 데 어떤 장애물이 있습니까? 다시 말해, 알고리즘 디자이너의 역할을 대체 할 수있는 SAT 솔버를 예상 할 수 있습니까? 즉, 문제 구조를 자동으로 인식 한 후 특수 알고리즘만큼 빨리 해결할 수 있습니까?

다음은 오늘날의 SAT 솔버에게 도전적인 몇 가지 예입니다.

  • 크기 의 독립 세트를 계산합니다 . "x는 독립적 인 크기 k의 세트"로 인코딩하면 해결하기 어려운 큰 공식이 제공됩니다. 이상적인 SAT 솔버는 백에 대한 "계수"변수가 추가 된 경계 트리 폭 그래프에서이 문제가 쉽다는 것을 인식 할 것입니다.k

  • 최소 스타이너 트리 찾기 "Steiner tree"에는 전역 제약 조건이 있지만 특수 알고리즘 (예 : here )을 사용하면 추가 변수를 추가하여 작업을보다 쉽게 ​​수행 할 수 있습니다.

  • 평면의 완벽한 매칭으로 줄어드는 문제.


이것이 이미 일어나지 않습니까? SAT에 대한 문제점을 줄이고 솔버를 실행하는 것이 인기있는 트릭입니다.
— Suresh Venkat

예,하지만 경쟁력이 있습니까? 다항식 시간에 #SAT을 평면 그래프의 오일러 서브 그래프를 설명 제약의 간단한 설정을하고, 할 수있는 모든 SAT 해결사가 있는지 궁금하네요
— 야로 슬라브 Bulatov

답변:


7

SAT 인스턴스의 내부 구조를 시각화하는 데 도움이되는 유용한 문서가 있습니다. 참조 머릿속 SAT 인스턴스와 DPLL 알고리즘의 실행합니다 카슨 Sienz하여을 (SAT 2004 년에 등장). 기본적으로, 그것은 저자들이 "가변 상호 작용 그래프"(일부 규칙에 따라)라고 부르는 그래프를 그려서 만족 된 절들 사이의 관계를 시각화합니다. 저자는 DPLL의 여러 부분 실행으로 이것을 보여줍니다.

주된 주장은 이러한 시각화 기술을 사용하여 구조를 감지하고 적절한 알고리즘을 설계 할 수 있다는 것입니다. 그러나 논문에 제시된 것과 같은 구조를 어떻게 효율적으로 감지 할 수 있는지는 아직 명확하지 않습니다. 하나의 특정 문제에 대한 SAT 알고리즘은 다른 문제에서 제대로 작동하지 않는 것으로 잘 알려져 있습니다. 이 주장은 내가 아는 한 공식적으로 언급 할 수는 없지만 "자유로운 점심 없음"이 있습니다.


관련 "무료 점심"정리는 "검색을위한 무료 점심" no-free-lunch.org 입니다. 기본적으로 우리는 가능한 모든 문제 구조를 검색 할 수 없으며 특정 구조를 향해 검색을 편향시켜야합니다. 인간 알고리즘 디자이너가 이미 그렇게했기 때문에 괜찮습니다.
— Yaroslav Bulatov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.