SAT 솔버는 대수 공격 에서 매우 중요 합니다 (예 : walksat 및 minisat) .
그러나 여기에서 사용 가능한 벤치 마크 문제를 해결할 때 두 문제 사이에 엄청난 성능 차이가 있습니다. 이러한 문제는 Walksat이 minisat보다 훨씬 빠릅니다. 왜 이런거야?
이 walksat 구현은 성능이 약간 개선 된 것으로 보입니다 . 국제 SAT 경쟁에 포함되지 않은 이유가 있습니까?
SAT 솔버는 대수 공격 에서 매우 중요 합니다 (예 : walksat 및 minisat) .
그러나 여기에서 사용 가능한 벤치 마크 문제를 해결할 때 두 문제 사이에 엄청난 성능 차이가 있습니다. 이러한 문제는 Walksat이 minisat보다 훨씬 빠릅니다. 왜 이런거야?
이 walksat 구현은 성능이 약간 개선 된 것으로 보입니다 . 국제 SAT 경쟁에 포함되지 않은 이유가 있습니까?
답변:
예. MiniSAT와 WalkSAT에는 큰 차이가 있습니다. 먼저, MiniSAT는 역 추적 및 절 학습을 사용하는 DPLL / CDCL 알고리즘 의 일반적인 클래스의 특정 구현 이며 WalkSAT는 탐욕스러운 단계와 임의의 단계를 번갈아 사용하는 알고리즘의 일반적인 이름입니다.
일반적으로 DPLL / CDCL은 구조화 된 SAT 인스턴스 에서 훨씬 빠르며 WalkSAT는 임의의 k-SAT 에서 빠릅니다 . 산업 및 응용 SAT 인스턴스는 많은 구조를 갖는 경향이 있으므로 DPLL / CDCL은 대부분의 최신 SAT 솔버에서 지배적입니다. 그러나 사례별로 하나의 기술이 이길 수 있는데, 이것이 포트폴리오 솔버가 인기를 얻은 이유 중 하나입니다.
WalkSAT가 해당 페이지의 인스턴스에서 MiniSAT보다 훨씬 빠르다는 주장에 많은 문제가 있습니다. 우선, 몇 기가 바이트의 SAT 인스턴스가 있습니다. 몇 개의 SAT 인스턴스를 비교해 보셨습니까? WalkSAT는 대부분의 구조화 된 인스턴스에서 전혀 경쟁력이 없기 때문에 경쟁에서 자주 보이지 않습니다.
참고로-Vijay는 MiniSAT가 여전히 관련성이 있다고 생각합니다. 실제로, 오픈 소스이고 잘 작성되어 있기 때문에, MiniSAT는 주어진 최적화가 약속 한 것을 보여주기 위해 이길 수 있는 해결사입니다. 많은 사람들이 MiniSAT 자체를 조정하여 최적화를 보여줍니다. 최근의 SAT 경쟁에서 "MiniSAT 핵"범주를 살펴보십시오.
sat 인스턴스 간에는 큰 차이가 있습니다. 해결사 SAT 클래스에서 잘 수행 할 수 인스턴스의, 그러나 가난 클래스에 인스턴스, 솔버 동안 잘 클래스에서 수행 와 가난 클래스에 .
이 주제에 읽을 수있는 좋은 종이는 이것 Nudelman하여 등 . 이 백서의 요점은 SAT 인스턴스의 계산하기 쉬운 기능을 결정하여 어떤 알고리즘이 성능이 좋을지, 그렇지 않은지를 알려줄 것입니다. 이 기술을 사용하면 문제 인스턴스를 빠르게 분석 한 다음 가장 적합한 알고리즘으로 인스턴스를 해결하는 포트폴리오 기반 알고리즘을 구축 할 수 있습니다. 그 뒤를 따르는 논문의 진행이 있습니다; 인터넷 검색 SATzilla는 많은 읽기 자료를 제공합니다.
해결사 SAT 이유를 궁금해하는 경우 솔버보다 더 좋을 수도 에 모든 인스턴스, 음, 난의 진행 : 추측. 솔버가 구체적으로 무엇이 좋은지 알고 싶다면 답을 몇 가지 박사 논문으로 바꿀 수 있습니다. Nudelman 등의 논문으로 시작하는 것이 좋습니다 .