Я пытаюсь решить проблему удовлетворительности целых чисел, используя z3py, где одно из моих ограничений требует, чтобы значение каждой переменной в массиве было больше медианы последних одиннадцати переменных.Прямо сейчас я кодирую ограничение как:
PbLe (((v [i] <= v [i-11], 1), ... (v [i] <=v [i-1], 1)), 6) </p>
И это, кажется, заставляет решатель использовать огромный объем памяти.Я предполагаю, что PbLe преобразуется в дизъюнктивную нормальную форму на бэкэнде или что-то подобное и вызывает большое увеличение размера выражения.
Есть ли более эффективный способ выразить 'больше, чем скользящая медиана?'для значений в массиве в z3?