QFBV SMT 솔버의 성능 이해


9

Z3 또는 Boolector와 같은 SMT 솔버는 복잡한 휴리스틱을 사용하여 문제를 해결합니다. 그러나 이것은 또한 주어진 문제에 대한 그러한 솔버의 성능을 예측하는 것을 매우 어렵게 만듭니다. 내 질문은 따라서 :

질문

QFBV (Quantifier-free Bitvectors) 이론에서 특정 SMT 솔버의 성능을 이해하거나 통찰력을 얻는 방법이 있습니까?

여기에는 솔버가 "고정 된"위치를 이해하는 데 도움이되는 시각화 도구도 포함됩니다.

응용

  • 동일한 문제의 서로 다른 인코딩이 솔버 성능에 어떤 영향을 미치는지 미리 이해하십시오 (여기서 최신 기술은 "몇 가지 다른 인코딩을 시도하고 속도가 충분히 빠르기를 바랍니다").

  • 시간 제약으로 인해 SMT 솔버로 주어진 문제를 해결할 수없는 경우 문제를 다르게 표현할 수있는 방법을 찾아서 해결할 수 있습니다.

  • 솔버 성능에 전혀 영향을 미치지 않거나 솔버 성능에 부정적인 영향을 줄 수있는 도메인 별 문제 단순화에 시간을 낭비하지 마십시오.

기존 연구

나는이 주제에 관한 연구를 찾으려고했지만 많이 찾지 못했다. 아직 SAT / SMT 솔버 분야에 대한 경험이 많지 않으므로 무언가를 놓친 경우 사과드립니다.

  • SATzilla : 기계 학습 기술을 사용하여 문제에서 추출 된 기능을 기반으로 최상의 성능의 솔버를 예측합니다.

    이는 SMT 대신 SAT에만 적용되며 솔버 성능의 이유를 설명하지 않습니다.

  • Z3 공리 프로파일 러 Z3 인스턴스화 그래프의 시각화 및 매칭 루프 분석

    이것은 정량화 된 이론에만 초점을 둔 것 같습니다.

답변:


3

짧은 대답은 아니요, 우리는 이해하지 못합니다. 긴 대답은 그렇습니다. 우리에게는 한계가 있지만 그 한계는별로 도움이되지 않습니다. 최악의 경우 실행 시간이 기하 급수적이라는 것은 분명합니다. 우리는 일부 / 많은 실제 상황에서 상당히 빠르게 실행되는 것처럼 보이므로 그다지 도움이되지 않습니다.

QFBV는 물론 SAT 솔버에 왜 이것이 사실인지 알 수 없습니다. QFBV 솔버가 빠른 이유를 이해하는 것은 SAT 솔버가 왜 빠른지 이해하는 것만 큼 어렵습니다. 이는 이미 현재 이해 수준을 넘어 섭니다. 이 사이트에서 더 많은 것을 검색하면 후자의 주제를 이해하려는 현재 시도의 요약을 찾을 수 있습니다.


답변 주셔서 감사합니다! 나는 이미 그럴 수도 있습니다. 일반적인 규칙을 찾으려고 시도하지 않고 sat / smt 솔버의 성능 저하 이유를 시각화하거나 다른 방법으로 사용자가 문제의 일부와 SMT를 이해하도록 돕는 연구가 있는지 알고 있습니까? 해결사 touble)
— bennofs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.