Розуміння продуктивності QFBV SMT-вирішувачів


9

Розв'язувачі SMT, такі як Z3 або Boolector, використовують складний набір евристики для вирішення проблем. Однак це також дуже важко передбачити ефективність такого рішення для даної проблеми. Моє питання таким чином:

Питання

Чи є спосіб зрозуміти чи отримати розуміння продуктивності розв'язувача SMT для конкретного в теорії біттераторів, що не містять кількісних показників (QFBV)?

Сюди також входять будь-які інструменти візуалізації, які допомогли б зрозуміти, де вирішувач "застряг" / не має прогресу.

Програми

  • Зрозумійте заздалегідь, як різні кодування однієї проблеми впливають на продуктивність вирішувача (найсучаснішим тут не може бути "просто спробуйте кілька різних кодувань і сподіваєтесь, що один досить швидкий", правда?)

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

  • Не витрачайте час на спрощення проблем, пов’язаних з доменом, які не вплинуть на продуктивність рішення або навіть негативно вплинуть на продуктивність вирішувача.

Існуючі дослідження

Я намагався знайти дослідження на цю тему, але мені так і не вдалося знайти. Я ще не маю великого досвіду в галузі вирішувачів SAT / SMT, тому вибачте, якщо я щось пропустив.

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

    Це стосується лише SAT замість SMT, і не пояснює причин продуктивності рішення.

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

    Схоже, це зосереджено лише на кількісно визначених теоріях.

Відповіді:


3

Коротка відповідь - ні, ми її не розуміємо. Довга відповідь - так, у нас є деякі межі, але ці межі не дуже корисні. Цілком зрозуміло, що найгірший час роботи - експоненційний. Це не дуже корисно, оскільки ми знаємо, що в деяких / багатьох практичних ситуаціях це, здається, працює досить швидко - і ми не знаємо чому.

Ми не знаємо, чому це справедливо для вирішувачів SAT, не кажучи вже про QFBV. Розуміння того, чому вирішувачі QFBV часто швидкі, здається принаймні настільки ж важким, як і розуміння того, чому вирішувачі SAT часто швидкі, що вже виходить за сучасний рівень розуміння. Якщо ви більше шукаєте на цьому сайті, ви можете знайти короткий опис поточних спроб зрозуміти останню тему.


Дякую за вашу відповідь! я вже мав, хоча це може бути так. Чи знаєте ви, чи є якесь дослідження, яке не намагається знайти загальні правила, а натомість візуалізує причину повільної роботи вирішувача sat / smt (або іншим чином допоможіть користувачеві зрозуміти, яку частину проблеми дає та SMT solver touble)
bennofs
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.