17

Упорядоченные бинарные диаграммы решений

[20/100%]
Показать
LaTeX
Задача 411

Доказать, что всякую булеву функцию от nn переменных можно реализовать в виде УБДР с не более чем 2n/2+2−12^{n / 2+2}-1 внутренней вершиной. Указание. Показать, как преобразовать полное БДР.

?
Задача 412

Рассмотрим трёхместные булевы функции f(x1,x2,x3)f\left(x_{1}, x_{2}, x_{3}\right), зафиксируем порядок переменных x1<x2<x3x_{1}<x_{2}<x_{3}. Определить:

Рис. 20: УБДР \mathfrak {D}_{1}.Рис. 20: УБДР \mathfrak {D}_{1}.

?
(а)

наибольшее количество вершин в сокращённой УБДР для ff;

(б)

сколько существует функций с наибольшим количеством вершин в сокращённой УБДР. ⊛\circledast

Задача 413

Указать, как по УБДР для функции ff построить УБДР для двойственной функции f∗f^{*}.

?
Задача 414

Схемы из функциональных элементов естественным образом реализуются в виде линейных программ. Наоборот, для деревьев решений и УБДР естественным программным представлением являются ветвящиеся программы, включающие лишь условные операторы вида if vv then Π1\Pi_{1} else Π2\Pi_{2} и присваивания y←0y \leftarrow 0 и y←1y \leftarrow 1 (см. раздел 22). Они соответствуют внутренним вершинам диаграмм и стокам соответственно. Здесь Π1\Pi_{1} и Π2\Pi_{2} — это снова ветвящиеся программы, а переменная yy содержит результат.

Показать, как по УБДР построить ветвящуюся программу, вычисляющую ту же самую функцию.

Написать ветвящиеся программы, вычисляющие функции, представляемые УБДР D1\mathfrak {D}_{1} на рис. 20 и D3\mathfrak {D}_{3} на рис. 22 на стр. 125. ⊛\circledast

?
Задача 415

Доказать, что каждую УБДР D\mathfrak {D} можно представить в виде ациклической программы с метками П (см. раздел 22) и при этом длина П не превосходит количества вершин D\mathfrak {D}. Программа П ациклическая, если все метки программы П пронумерованы и в каждом операторе метка оператора имеет номер меньший, чем метки перехода (это эквивалентно тому, что в блок-схеме нет циклов. Также можно сказать, что невозможны переходы «назад»). Присваивания имеют такой же вид, как в предыдущей задаче.

?
Задача 416

Доказать, что по любой УБДР D\mathfrak {D} с nn вершинами, представляющей функцию ff, можно построить линейную программу (и, следовательно, схему из функциональных элементов) размера O(n)O(n) в базисе B0={∧,∨,¬}\mathcal{B}_{0}=\left\{ \wedge , \vee , \neg \right\}, вычисляющую ту же самую функцию ff. Указание. Использовать индукцию по высоте вершин. Высота вершины vv в УБДР — это максимальная длина пути из vv в какой-либо из стоков.

?
Задача 417

Построить минимальные УБДР для двухместных функций: x∧yx \wedge y, x∨y,x⊕y,x→y,x↑yx \vee y, x \oplus y, x \rightarrow y, x \uparrow y.

?
Задача 418

Построить УБДР для функции odd⁡(x1,…,xn)=x1⊕⋯⊕xn\operatorname {odd}\left(x_{1}, \ldots , x_{n}\right)=x_{1} \oplus \cdots \oplus x_{n} и оценить её сложность. Сравнить со сложностью ДНФ этой же функции из задачи 170 на стр. 54.

?
Задача 419

Построить минимальные УБДР для функции

f(x1,x2,x3,x4,x5,x6)=(x1∧x2)⊕(x3∧x4)⊕(x5∧x6) f\left(x_{1}, x_{2}, x_{3}, x_{4}, x_{5}, x_{6}\right)=\left(x_{1} \wedge x_{2}\right) \oplus \left(x_{3} \wedge x_{4}\right) \oplus \left(x_{5} \wedge x_{6}\right)

относительно двух упорядочений переменных:

?
(а)

x1<x2<x3<x4<x5<x6x_{1}<x_{2}<x_{3}<x_{4}<x_{5}<x_{6} и

(б)

x1<x3<x5<x2<x4<x6x_{1}<x_{3}<x_{5}<x_{2}<x_{4}<x_{6}.

Задача 420

Используя алгоритм сокращения УБДР, построить сокращённую диаграмму, эквивалентную УБДР D2\mathfrak {D}_{2} на рис. 21 на следующей странице. Определить, какую функцию реализует полученная схема. Построить её таблицу истинности. ⊛\circledast

Рис. 21: УБДР \mathfrak {D}_{2}.Рис. 21: УБДР \mathfrak {D}_{2}.

?
Задача 421

Пусть Φ\Phi — это совершенная ДНФ для булевой функции ff. Доказать, что существует УБДР для функции ff, количество внутренних вершин которой не превосходит длины Φ\Phi независимо от порядка переменных. Под длиной Φ\Phi понимаем общее количество вхождений переменных в Φ\Phi. Указание. Применить индукцию по количеству переменных nn.

?
Задача 422

Доказать, что для функции

pn(x1,…,xn,yn,…,y1)=(x1∧y1)∨(x2∧y2)∨…∨(xn∧yn) p_{n}\left(x_{1}, \ldots , x_{n}, y_{n}, \ldots , y_{1}\right)=\left(x_{1} \wedge y_{1}\right) \vee \left(x_{2} \wedge y_{2}\right) \vee \ldots \vee \left(x_{n} \wedge y_{n}\right)

сложность сокращённой УБДР равна

?
(а)

2n2 n при упорядочении переменных π1:x1,y1,…,xn,yn\pi_{1}: x_{1}, y_{1}, \ldots , x_{n}, y_{n};

(б)

2n+1−22^{n+1}-2 при упорядочении π2:x1,x2,…,xn,yn,…,y2,y1\pi_{2}: x_{1}, x_{2}, \ldots , x_{n}, y_{n}, \ldots , y_{2}, y_{1}.

Задача 423

Пусть функция f′f^{\prime } получена из функции ff фиксированием значения переменной xix_{i} :

f′(x1,…,xi−1,xi+1,…,xn)=f(x1,…,xi−1,σ,xi+1,…,xn), f^{\prime }\left(x_{1}, \ldots , x_{i-1}, x_{i+1}, \ldots , x_{n}\right)=f\left(x_{1}, \ldots , x_{i-1}, \sigma , x_{i+1}, \ldots , x_{n}\right),

где σ∈{0,1}\sigma \in \left\{ 0,1\right\}.

?
(а)

Предположим, что D\mathfrak {D} — это сокращённая УБДР для функции f(x1,…,xn)f\left(x_{1}, \ldots , x_{n}\right) при указанном порядке переменных. Предложить процедуру, которая перестроит УБДР D\mathfrak {D} в УБДР D′\mathfrak {D}^{\prime } для функции f′(x1,…,xi−1,xi+1,…,xn)f^{\prime }\left(x_{1}, \ldots , x_{i-1}, x_{i+1}, \ldots , x_{n}\right) при том же порядке. Всегда ли полученная УБДР D′\mathfrak {D}^{\prime } будет сокращённой?

(б)

Применить процедуру из пункта (а) для получения из УБДР D3\mathfrak {D}_{3} на рис. 22 на противоположной странице диаграмм для следующих функций: f(0,x2,x3,x4),f(x1,1,x3,x4),f(x1,x2,0,x4)f\left(0, x_{2}, x_{3}, x_{4}\right), f\left(x_{1}, 1, x_{3}, x_{4}\right), f\left(x_{1}, x_{2}, 0, x_{4}\right).

Задача 424

Пороговая функция TknT_{k}^{n} определена в задаче 406 на стр. 118.

?
(а)

Построить УБДР для пороговой функции TknT_{k}^{n} в общем виде.

(б)

Построить минимальную УБДР для пороговой функции T46T_{4}^{6}.

Рис. 22: УБДР \mathfrak {D}_{3}.Рис. 22: УБДР \mathfrak {D}_{3}.

(в)

Зависит ли сложность минимальной УБДР для пороговых функций от порядка переменных?

(г)

Оценить сложность минимальной УБДР для пороговой функции TknT_{k}^{n}.

Задача 425

Построить минимальные УБДР, реализующие функции из задач 396, 402 и 403.

?
Задача 426

Построить УБДР для функций fnf_{n} и gng_{n} из задачи 406 на стр. 118 и оценить их сложность.

?
Задача 427

Построить УБДР для решения задачи 407 на стр. 119. Определить сложность построенной диаграммы.

?
Задача 428

Построить УБДР для решения задачи 408 на стр. 119. Определить сложность построенной диаграммы.

?
Задача 429

Построить УБДР для решения задачи 409 на стр. 119. Определить сложность построенной диаграммы.

?
Задача 430

Построить УБДР для решения задачи 410 на стр. 119. Определить сложность построенной диаграммы.

?