В документе SCIP Optimization Suite 6.0 есть раздел, посвященный предварительному вычислению агрегации. Приведенный пример представляет собой линейное ограничение с двумя переменными a1x1 + a2x2 = b, где либо x1, либо x2 делается субъектом, а затем заменяется на другие ограничения. Я понимаю логику, когда это линейная программа.
Однако для проблем с SAT мой problem
файл и transproblem
файлы показывают следующее:
[logicor] <c301>: logicor(<x591>[B],<~x666>[B]); (This comes from problem file)
[logicor] <c302>: logicor(<~x591>[B],<x666>[B]);
преобразован в
[binary] <t_x666>: obj=-0, global bounds=[-0,1], local bounds=[-0,1], aggregated: +1<t_x591>
а также
[logicor] <c1402>: logicor(<x538>[B],<x138>[B]); (This comes from problem file)
[logicor] <c1403>: logicor(<~x538>[B],<~x138>[B]);
преобразован в
[binary] <t_x138>: obj=-0, global bounds=[-0,1], local bounds=[-0,1], aggregated: 1 -1<t_x538>
Я не понимаю, как агрегация работает в этих двух случаях из-за ограничений логики или. Кто-нибудь, пожалуйста, объясните мне это? Спасибо!