Z3 또는 Boolector와 같은 SMT 솔버는 복잡한 휴리스틱을 사용하여 문제를 해결합니다. 그러나 이것은 또한 주어진 문제에 대한 그러한 솔버의 성능을 예측하는 것을 매우 어렵게 만듭니다. 내 질문은 따라서 :
질문
QFBV (Quantifier-free Bitvectors) 이론에서 특정 SMT 솔버의 성능을 이해하거나 통찰력을 얻는 방법이 있습니까?
여기에는 솔버가 "고정 된"위치를 이해하는 데 도움이되는 시각화 도구도 포함됩니다.
응용
동일한 문제의 서로 다른 인코딩이 솔버 성능에 어떤 영향을 미치는지 미리 이해하십시오 (여기서 최신 기술은 "몇 가지 다른 인코딩을 시도하고 속도가 충분히 빠르기를 바랍니다").
시간 제약으로 인해 SMT 솔버로 주어진 문제를 해결할 수없는 경우 문제를 다르게 표현할 수있는 방법을 찾아서 해결할 수 있습니다.
솔버 성능에 전혀 영향을 미치지 않거나 솔버 성능에 부정적인 영향을 줄 수있는 도메인 별 문제 단순화에 시간을 낭비하지 마십시오.
기존 연구
나는이 주제에 관한 연구를 찾으려고했지만 많이 찾지 못했다. 아직 SAT / SMT 솔버 분야에 대한 경험이 많지 않으므로 무언가를 놓친 경우 사과드립니다.
SATzilla : 기계 학습 기술을 사용하여 문제에서 추출 된 기능을 기반으로 최상의 성능의 솔버를 예측합니다.
이는 SMT 대신 SAT에만 적용되며 솔버 성능의 이유를 설명하지 않습니다.
Z3 공리 프로파일 러 Z3 인스턴스화 그래프의 시각화 및 매칭 루프 분석
이것은 정량화 된 이론에만 초점을 둔 것 같습니다.