Uploaded by Евгений Ломакин

типовик дискретка

advertisement
Задача 1. Найти СДНФ, СКНФ, а также сокращенную ядровую и все минимальныедизъюнктивные нормальные формы булевой функции f(x1,x2,x3). Функция задана указанием
номеров наборов значений переменных, на которых она равна нулю. Наборы нумеруются
числами от 0 (набор 0,0,0) до 7 (набор 1,1,1).
f  (1,2,6)
f  (10011101)
N f  {( 000)(011)(100)(101)(111)}
000 : x10 x20 x30  x1 x2 x3
011 : x10 x12 x31  x1 x2 x3
100 : x11 x20 x30  x1 x2 x3
101 : x11 x20 x31  x1 x2 x3
111 : x11 x12 x31  x1 x2 x3
f ñäíô  ( x1 x2 x3 )  ( x1 x2 x3 )  ( x1 x2 x3 )  ( x1 x2 x3 )  ( x1 x2 x3 )
N f  {( 001)(010)(110)}
001 : x11 x12 x30  x1  x2  x3
010 : x11 x20 x31  x1  x2  x3
110 : x10 x20 x31  x1  x2  x3
f ñêíô  ( x1  x2  x3 )( x1  x2  x3 )( x1  x2  x3 )
x3
011
111
101
Dc  x2 x3  x1 x2  x1 x3  x2 x3
x2
000
001
{000}  только интервалу
x1
{x2  0; x3  0}
Ядровые интервалы
{011}  только интервалу
{x2  1; x3  1}
Dÿ  ( x2 x3 )  ( x2 x3 )
Найдём Dìèí функции f
Вершина (101)  N f и  ядровым интервалом
Данную вершину можно покрыть интервалами:
{x1  x2  1}èëè {x1  x3  1}
Таким образом f  ( x2 x3 )  ( x2 x3 )  ( x1 x2 ) или
f  ( x 2 x3 )  ( x 2 x3 )  ( x1 x3 )
Dmin 1  x 2 x3  x 2 x3  x1 x 2
Dmin 2  x 2 x3  x 2 x3  x1 x3
Задача 2. Двумя способами: с помощью карты Карно и методом Квайна найти сокращенную, ядровую и все минимальные дизъюнктивные нормальные формы булевой функции
f , заданной векторами значений. Построить минимальную функциональную (над системой
{¬,&,V}) и минимальную контактную схемы для функции f .
f  (0001110110101010)
0
0
1
1
x3
x1
0
x2 x4
0
0
0
1
0
1
1*
0
0
0
1
1
1
1
0
1
1
1*
1
0
0
1
0
0
0
*1
*1
1) x1x3 x4
2) x1x2 x4

3) x1x2 x3
4) x2 x3 x4
5) x1x4

Dc  x1 x3 x4  x1 x2 x4  x1 x2 x3  x2 x3 x4  x1 x4
Ядровые интервалы 1, и 5
Dÿ  x1 x3 x4  x1 x4
Ядровые интервалы не покрывают вершины (0100)(0101)
Обе вершины покрываются одним одномерным интервалом 3

Dmin  ( x1 x3 x4 )  ( x1 x4 )  ( x1 x2 x3 )
N f  {( 0011)(0100)(0101)(0111)(1000)(1010)(1100)(1110)}
(010)( 100)(0  11)(01  1)(1  0)
1 0100*
1000*
2 0011*
0101*
1010*
1100*
3 0111*
1110*
x1
x2
x1
x1
x1
x2
x3
x3
x2
x4
010-100
10-0*
1-00*
0-11
01-1
1-10*
11-0*
x1
x2
x3
x4
x3
x4
x4
x4
1- -0

Dc  x1 x3 x4  x1 x2 x4  x1 x2 x3  x2 x3 x4  x1 x4
0
1
0
0
0
1
0
1
V
V
V
V
Dÿ  x1 x3 x4  x1 x4
x1
x2
x1
x1
x2
x3
x4
x3
x4
x4
x2
x3
x2
0
1
0
0
0
1
0
1
V
V
V

Dmin  x1 x3 x4  x1 x4  x1 x2 x3
V

Dmin  x1 ( x3 x4  x2 x3 )  x1 x4
x1
x1
x3
x4
x2
x3
x4
Минимальная контактная схема
x4
0
&
0
0
0
&
0
0

x3
0

&
0
x2
0
0
&
0
x1
Минимальная функциональная схема
0

x1 x3 x4  x1 x4  x1 x2 x3
Задача 3. Проверить полноту системы функций    f , g, h . Представить формулами
и функциональными схемами над  функции 0, 1, , &,  .
f  01100110 , g  11000011 , h  00010111 .
Для того чтобы система функций была полна, необходимо и достаточно, чтобы она содержалась целиком в одном из 5 основных замкнутых классов S , M , L, T0 , T1
g (000)  1  g  T0
f (111)  0  f  T1
f (000)  f (111)  0  f  S
f (001)  f (111)  f  M
h( x1 x2 x3 )  a0  a1 x1  a2 x2  a3 x3  a12 x1 x2  a23 x2 x3  a13 x1 x3  a123x1 x2 x3
h  (00010111)
h(000)  0  a0
h(100)  0  a0  a1  a1  0
h(010)  0  a0  a2  a2  0
h(001)  0  a0  a3  a3  0
h(110)  1  a0  a1  a2  a12  a12  1
h(011)  1  a0  a2  a3  a23  a23  1
h(101)  1  a0  a1  a3  a13  a13  1
h(111)  1  a0  a1  a2  a3  a12  a23  a13  a123  a123  0
h( x1 x2 x3 )  x1 x2  x2 x3  x1 x3  h  L
T0
f
g
h
T1
-
S
-
M
L
-
-
Каждый столбец содержит хотя бы один минус, следовательно система функций  f , g , h
полная по теореме Поста.
Задача 4. Найти кратчайший путь, соединяющий вершины X и Y в орграфе, изображенном на рисунке. Элементы aij матрицы A задают длины ребер графа.
3

2
A  4

4
5

1 5 4 1

3 5 2 2
1 4 3 1 .

3 2 5 3
4 1 2 3 
Решение.
Воспользуемся алгоритмом Дейкстры. Постоянные пометки будем обозначать знаком «+», а
остальные рассматривать как временные.
1. Начальная вершина X , значит, пометка l  X   0 , l x1   l x2     l x12   l Y    .
Первая итерация.
2. Для соседних с X вершин найдем l xi   min l xi , l  X   c X , xi  :




l x1   min ,0  3  3 , l x2   min ,0  5  5 , l x3   min ,0  1  1 .
3. Найдем минимальную пометку из всех временных: min 3, 5, 1  1 , т.е. возьмем x3 .
4. x3 получает пометку l x3   1 .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x3 .
Вторая итерация.
2. Для соседних с x3 вершин найдем l xi   min l xi , l x3   cx3 , xi :
l x1   min 3, 1  1  2 , l x7   min , 1  2  3 , l x6   min , 1  2  3 , l x2   min 5, 1  2  3 .
3. Найдем минимальную пометку из всех временных: min 2, 3, 3, 3  2 , т.е. возьмем x1 .
4. x1 получает пометку l x1   2 .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x1 .
Третья итерация.
2. Для соседних с x1 вершин найдем l xi   min l xi , l x1   cx1 , xi  :
l x4   min , 2  4  6 .
3. Найдем минимальную пометку из всех временных: min 3, 3, 3, 6  3 , возьмем x2 .
4. x2 получает пометку l x2   3 .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x2 .
Четвертая итерация.
2. Для соседних с x2 вершин найдем l xi   min l xi , l x2   cx2 , xi  :
l x5   min , 3  3  6 .
3. Найдем минимальную пометку из всех временных: min 3, 3, 6, 6  3 , возьмем x7 .
4. x7 получает пометку l  x7   3 .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x7 .
Пятая итерация.
2. Для соседних с x7 вершин найдем l xi   min l xi , l x7   cx7 , xi  :
l x4   min 6, 3  5  6 , l x8   min , 3  1  4 , l x9   min , 3  4  7 ,
l x6   min 3, 3  4  3 .
3. Найдем минимальную пометку из всех временных: min 6, 4, 7, 3, 6  3 , т.е. возьмем x6 .
4. x6 получает пометку l  x6   3 .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x6 .
Шестая итерация.
2. Для соседних с x6 вершин найдем l xi   min l xi , l x6   cx6 , xi  :
l x10   min , 3  2  5 , l x5   min 6, 3  4  6 , l x9   min 7, 3  3  6 .
3. Найдем минимальную пометку из всех временных: min 6, 5, 6, 6, 4  4 , возьмем x8 .
4. x8 получает пометку l  x8   4  .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x8 .
Седьмая итерация.
2. Для соседних с x8 вершин найдем l xi   min l xi , l x8   cx8 , xi :
l x4   min 6, 4  1  5 , l x12   min , 4  5  9 .
3. Найдем минимальную пометку из всех временных: min 6, 5, 6, 5, 9  5 , возьмем x4 .
4. x4 получает пометку l x4   5 .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x4 .
Восьмая итерация.
2. У вершины x4 нет соседних вершин с временными пометками.
3. Найдем минимальную пометку из всех временных: min 6, 5, 6, 9  5 , т.е. возьмем x10 .
4. x10 получает пометку l  x10   5 .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x10 .
Девятая итерация.
2. Для соседних с x10 вершин найдем l xi   min l xi , l x10   cx10 , xi  :
l x11   min , 5  4  9 , l x5   min 6, 5  3  6 .
3. Найдем минимальную пометку из всех временных: min 6, 9, 6, 9  5 , возьмем x5 .
4. x5 получает пометку l  x5   6  .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x5 .
Десятая итерация.
2. У вершины x5 нет соседних вершин с временными пометками.
3. Найдем минимальную пометку из всех временных: min 9, 6, 9  6 , т.е. возьмем x9 .
4. x9 получает пометку l  x9   6  .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для x9 .
Одиннадцатая итерация.
2. Для соседних с x9 вершин найдем l xi   min l xi , l x9   cx9 , xi  :
l Y   min , 6  2  8 , l x12   min 9, 6  3  9 , l x11   min 9, 6  5  9 .
3. Найдем минимальную пометку из всех временных: min 9, 8, 9  8 , т.е. возьмем Y .
4. Y получает пометку l Y   8 .
5. Т.к. не все вершины графа имеют постоянные пометки, то повторяем алгоритм для Y .
Двенадцатая итерация.
2. Для соседних с Y вершин найдем l xi   min l xi , l Y   cY , xi  :
l x12   min 9, 8  1  9 , l x11   min 9, 8  3  9 .
3. Найдем минимальную пометку из всех временных: min 9, 9  9 .
Таким образом, получим:
Значит, кратчайший пути из X в Y : X  x3  x6  x9  Y , длина которого равна 8.
Задача 5. Найти максимальный поток в транспортной сети, задаваемой графом на рисунке. В этой задаче aij – пропускные способности ребер.
Вначале положим для всех ребер f x, y   0 . Двигаясь от вершины X , будем расставлять
пометки по следующим правилам:
1) Источнику X присваиваем метку ,  .
2) Если предыдущая вершина xi уже помечена, а последующая xi 1 еще нет, то помечаем
вершину xi 1 в следующих случаях:
а) если есть ребро из xi в xi 1 и f xi , xi1   cxi , xi1  ; вершина xi 1 получает метку
x ,  x  , где  x   min  x , cx , x   f x , x  .

i
i 1
i 1
i
i
i 1
i
i 1
б) если есть ребро из xi 1 в xi и f xi1 , xi   0 ; вершина xi 1 получает метку xi ,  xi1  ,
где  ki1   min  xi , f xi1 , xi .
После расстановки получим:
Вершина Y оказалась помеченной, значит, увеличиваем величину потока на  Y   1.
Снова расставляем метки, получаем:
Вершина Y оказалась помеченной, значит, увеличиваем величину потока на  Y   2 .
Снова расставляем метки, получаем:
Вершина Y оказалась помеченной, значит, увеличиваем величину потока на  Y   3 .
Теперь при расстановке меток вершина Y не будет помечена.
Значит, поток является максимальным. Его величина   1  2  3  6 .
Задача 6. Решить задачу об оптимальном назначении с матрицей эффективностей A .
3

2
A  4

4
5

1 5 4 1

3 5 2 2
1 4 3 1

3 2 5 3
4 1 2 3 
Решим эквивалентную транспортную задачу с матрицей C   A .
Найдем исходный допустимый опорный план по методу наименьших тарифов.
Из всех тарифов выбираем наименьший. Возьмем c23  5 . Поэтому третьему потребителю
вывозим 1 единицу продукции из второго пункта производства (см. таблицу). Из оставшихся
тарифов вновь выбираем наименьший. Возьмем c51  5 . Первому потребителю вывозим 1
единицу продукции из пятого пункта производства. И т.д.
3
1
5
4
1
1
1
2
3
5
2
2
1
1
4
1
4
5
1
1
4
3
1
1
3
2
5
3
1
4
1
2
3
1
1
1
1
1
1
1
(В левом верхнем углу стоимость перевозки)
В итоге получили:
0 0 0 0 1


0 0 1 0 0
X  0 1 0 0 0 .


0 0 0 1 0
1 0 0 0 0


Найдем оптимальный план по методу потенциалов зная опорный план, найденный выше.
Составим таблицу. В левом верхнем углу стоимость перевозки. В правом верхнем углу псевдостоимость перевозки. В базисных клетках (в заполненных) псевдостоимость равна стоимости. Для остальных клеток псевдостоимость равна сумме  i   j .
Полагаем, что 1  0 . Последовательно находим оставшиеся  i и  j так, чтобы для базисных клеток выполнялось равенство: сij   i   j .
B2
B1
B4
B3
A1
3
5
1
2
5
A2
A3
2
5
3
2
5
1
1 1
4
A4
A5
4
3
3
2
6
5
4
2
1
5
2
bj
j
4
5
4
0
6
1
5
1
1
0
1
0
i
1 1
1
0
1
0
1
1
1
-1
1
0
4
5
2
4
2
1
3
3
1
0
3
2
3
1
4
1
-5
-2
-5
~
Обозначим псевдостоимость сij .
1
5
4
1
ai
5
0
4
B5
1
1
-4
-1
Ищем свободные клетки, для которых сij  с~ij , и для них строим циклы.
~ ,  4  2 . Обозначим цикл синей линиНашли свободную клетку A B , для которой ñ  ñ
5
2
52
52
ей. В найденной свободной клетке ставим знак «+», а в остальных клетках цикла, где линия
цикла меняет направление, знаки чередуются по порядку. Переносим по циклу наименьшее
число, найденное из клеток цикла, где линия цикла меняет направление и где стоит знак «–».
В данном случае, это 1.
B5
B3
ai
i
B2
B4
B1
A1
3
5
1
2
5
A2
A3
2
5
3
2
5
4
1
A4
1

3
4
4
4

6
A5
5
bj
0
1 5
1
3
4
1
2

5
4
1 5
2
4
2
1
3
3
1
0
3
2
3
1
0
0
4
2
6
5
1
5
2
1
0
4
5
1
4
1
1
1 1
1
1
0
1
0
1
1
1
-1
1
0
1
j
-5
-2
-5
-4
-1
После переноса получаем новую таблицу. Для нее вновь надо находить  i и  j . Весь процесс повторяется заново до тех пор, пока во всех свободных клетках будет выполняться неравенство сij  с~ij .
B3
B2
B1
A1
3
5
1
4
5
A2
2
5
3
4
5
A3
4
1
3
4
A4
4
3
5
2
A5
5
1
1
4
6
5
0
4
1
4
B4
1
0
1
0
1
1
1
-1
1
0
ai
i
1
0
1
0
1
0
1
-1
1
-1
1 1
2
2
1
3
3
1
0
6
5
3
5
2
5

4
2

1
0
5
i
1
1
4
ai
4

4
0
5
B5
4
0
1
3
bj
1
1
1
1
1
j
-5
-4
-5
-4
-1
B1
B2
B3
B4
B5
5
4
1 4
1
2
5
2
4
2
2
5
3
4
1
2
2
6
5
1
6
2
A1
3
4
1
3
5
A2
2
4
3
3
5
A3
4
1
3
4
A4
4
3
4
A5
5
1
4
5
0
5
4
1
4
0
1
0
5
5
3
3
3
1
0
3
bj
1
1
1
1
1
j
-4
-3
-5
-4
-2
Эта таблица соответствует оптимальному плану, т.к. для всех свободных клеток выполняется
неравенство сij  с~ij .
0

0
Таким образом, X   1

0
0

0 0 1 0

0 1 0 0
0 0 0 0 .

0 0 0 1
1 0 0 0 
Download