Упорядоченные бинарные диаграммы решений
[9/100%]Доказать лемму 92 на стр. 277 обратной индукцией по .
Лемма 92: После выполнения шага для в алгоритме СокрУБДР (сокращение УБДР) в полученной диаграмме для каждого и для каждой подфункции , где при , имеется ровно одна вершина — исток поддиаграммы, реализующей эту подфункцию.
Используя лемму 92 на стр. 277, доказать утверждение 2) теоремы 91 на стр. 276.
Теорема 91: если алгоритм СокрУБДР на входе УБДР возвращает УБДР , то (утверждение 2) УБДР является при данном порядке переменных единственной сокращённой (с точностью до изоморфизма) и минимальной.
Лемма 92: После выполнения шага для в алгоритме СокрУБДР в полученной диаграмме для каждого и для каждой подфункции , где при , имеется ровно одна вершина — исток поддиаграммы, реализующей эту подфункцию.
Доказать, что в результате применения алгоритма из параграфа 14.3 получается сокращённая УБДР.
Имеется в виду алгоритм параграфа 14.3, строящий УБДР для «сверху-вниз», рекурсией по . Если , то — константа, и УБДР состоит из двух стоков и . Иначе строятся две остаточные функции и , рекурсивно строится (общая) УБДР, реализующая все различные функции среди (повторяющиеся среди них отождествляются, так что на каждую различную остаточную функцию строится не более одной вершины), а затем: если , вершиной для считается уже построенная вершина, реализующая ; иначе добавляется одна новая вершина с меткой , 0-сыном и 1-сыном которой являются (уже построенные, возможно общие) вершины, реализующие и соответственно.
Доказать, что всякую булеву функцию от переменных можно реализовать в виде УБДР с не более чем внутренней вершиной. Указание. Показать, как преобразовать полное БДР.
Схемы из функциональных элементов естественным образом реализуются в виде линейных программ. Наоборот, для деревьев решений и УБДР естественным программным представлением являются ветвящиеся программы, включающие лишь условные операторы вида Если то Иначе и присваивания и (см. главу 18). Они соответствуют внутренним вершинам диаграмм и стокам соответственно. Здесь и — это снова ветвящиеся программы, а переменная содержит результат.
Показать, как по УБДР построить ветвящуюся программу, вычисляющую ту же самую функцию.
Написать ветвящиеся программы, вычисляющие функции, представляемые УБДР на рис. 69 на стр. 272 и на рис. 74 на предыдущей странице.
Построить минимальные УБДР для двухместных функций: , .
Построить минимальные УБДР для функции
относительно двух упорядочений переменных:
и
.
Значение пороговой функции от переменных с порогом равно 1 тогда и только тогда, когда во входном наборе имеется не менее единиц:
Построить УБДР для пороговой функции в общем виде.
Построить минимальную УБДР для пороговой функции .
Зависит ли сложность минимальной УБДР для пороговых функций от порядка переменных?
Оценить сложность минимальной УБДР для пороговой функции .
Построить минимальные УБДР, реализующие функции из задач 221 и 224 на стр. 266.