Диаграммы решений

Jan 02, 2022 00:10

Вот есть ROBDD - reduced (нет двух разных узлов с одинаковыми подузлами) ordered (переменные имеют некоторый порядок, во всех ветвях диаграммы) binary decision (решение принимается по значению переменной - истина или ложь) diagram.

А недавно появились SDD - sentential decision diagrams.

Я не большой спец в SDD, поэтому могу говорить, что угодно, что я сейчас и буду делать.

Давайте разобьём наши переменные из логической формулы на два подмножества - верхнее и нижнее. На две неравных половины.

Для любой RODBB мы можем перечислить все значения, при которых она истинна, и задать им порядковые номера (это, так сказать, представление в виде дизъюнктивной нормальной формы). Давайте сделаем это для части формулы, что содержит только переменные из верхнего подмножества - мы будем считать, для простоты построения, что части формулы только с нижними переменными истинны.

Далее, для каждого истинного присваивания значения верхней половины мы задаём ROBDD для соответствующей ему формулы с переменными только нижней половины.

В чём прикол? В том, что ROBDD нижней половины могут разделять узлы, как и узлы верхней половины, это раз. Второе - ROBDD без разделения на два класса переменных будет стремиться иметь размер пропорциональный произведению размеров ROBDD (если я всё правильно понимаю), здесь же мы пытаемся уменьшить совокупный размер через вычленение некоторых "общих подвыражений".

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

Собственно, всё. ;)

bdd, диаграммы решений

Previous post Next post
Up