Понимание производительности решателей QFBV SMT

9

Решатели SMT, такие как Z3 или Boolector, используют сложный набор эвристик для решения проблем. Однако это также затрудняет прогнозирование производительности такого решателя для данной проблемы. Мой вопрос таков:

Вопрос

Есть ли способ понять или получить представление о производительности решателя SMT для специалиста в теории битвекторов без кванторов (QFBV)?

Это также включает в себя любые инструменты визуализации, которые помогли бы понять, где решатель "застрял" / не прогрессирует.

Приложения

  • Заранее поймите, как различные кодировки одной и той же проблемы влияют на производительность решателя (современный уровень техники здесь не может быть «просто попробуйте несколько различных кодировок и надеюсь, что достаточно быстро», верно?)

  • Если данная проблема не может быть решена с помощью SMT-решателя из-за нехватки времени, найдите способ выразить проблему по-разному, чтобы ее можно было решить.

  • Старайтесь не тратить время на упрощение проблем, связанных с конкретной областью, которые вообще не влияют на производительность решателя или даже отрицательно не влияют на производительность решателя.

Существующее исследование

Я пытался найти исследование по этой теме, но я не смог найти много. У меня пока нет большого опыта в области решателей SAT / SMT, поэтому прошу прощения, если я что-то пропустил.

  • SATzilla : прогнозирует наиболее эффективный решатель на основе функций, извлеченных из проблемы с использованием методов машинного обучения.

    Это относится только к SAT вместо SMT и не объясняет причины для производительности решателей.

  • Профилировщик аксиом Z3 Визуализация графика реализации Z3 и анализ совпадающих циклов

    Похоже, это фокусируется только на количественных теориях.

bennofs
источник

Ответы:

3

Краткий ответ - нет, мы этого не понимаем. Длинный ответ - да, у нас есть некоторые границы, но эти границы не очень полезны. Совершенно очевидно, что наихудшее время работы экспоненциально. Это не очень полезно, потому что мы знаем, что в некоторых / многих практических ситуациях это кажется довольно быстрым - и мы действительно не знаем почему.

Мы не знаем, почему это так для решателей SAT, не говоря уже о QFBV. Понимание того, почему решатели QFBV часто бывают быстрыми, кажется, по крайней мере, таким же сложным, как и понимание того, почему решатели SAT часто бывают быстрыми, что уже выходит за рамки нашего текущего уровня понимания. Если вы ищете больше на этом сайте, вы можете найти сводку текущих попыток понять последнюю тему.

DW
источник
спасибо за Ваш ответ! я уже, хотя это может быть так. Знаете ли вы, если есть какое-либо исследование, которое не пытается найти общие правила, а вместо этого визуализирует причину медленной работы решателя sat / smt (или другим способом помочь пользователю понять, какая часть проблемы дает SMT и решатель дубль)
17