Ответы к домашним заданиям
Домашние задание №1. Отсортировать функции по скорости роста, начиная с наименьшей:
Решение.
Для примера сравним скорости роста функций и.
1)Прологарифмируем оба выражения по основанию 2:
n! и
2)Используя формулу Стирлинга: , получим
иДалее:
3)Так как значение некоторых частей выражений много меньше значения других, то их можно рассматривать:
и
Т.к. nloge≪nlogn
Получаем:
.
Аналогичное неравенство выполняется и для исходных функций.
Следовательно, .
Функция растет быстрее, чем.
Сравнивая остальные функции аналогичным образом, получаем сведущую последовательность:
Ответ:
Домашние задание №2.
Выразить А3(1,0,1,1) через А2 и эспоненту по формуле быстрого преобразования Фурье. N=24.
Решение.
=
r=4;
S=2;
k1=1;
k2=0;
k3=1;
k4=1;
У нас имеются все данные, которые нужно подставить в формулу:
A3(1,0,1,1)=
Ответ:
Домашние задание №3. Найти произведение 3871 и 9211 по формуле быстрого умножения чисел.
Решение.
Разобьем наши числа на разряды по формуле:
x=a∙2k+b
y=c∙2k+d.
Формула быстрого умножения чисел имеет вид:
x∙y=V∙22k+(U-V-W)∙10k +W.
Если в процессе вычисления мы получаем(k+1) разрядные числа, то их произведение вычисляется по формуле (*):
a∙b=a1∙b1+( a1∙b2 a2∙b1)2k+ a2∙b2
В данном случае k=2.
Получаем x=38∙102+71, y=92∙102+11.
1)Рассчитываем U:
U=(38+72)(92+11)=109∙103(двухразрядное умножение с двумя переполнениями).
Получаем трехразрядные числа. Следует воспользоваться формулой (*), где
a1=1, a2=9;
b1=1, b2=3.
109∙103=1∙1∙104+(09+03)∙102+09∙03=11227.
Получили 09∙03 – двухразрядное умножение без переполнения:
09∙03=0∙102+(27-0-27)∙10+27=27
Таким образом, U=1∙1∙104+(09+03)102+09∙03=11227.
2)Рассчитаем V:
V=38∙92 (двух разрядное умножение без переполнений)
В U2 мы получили .
Вычисляем его по формуле(*):
a1=1, a2=1;
b1=1, b2=1.
U2=11∙11=1∙1∙102+(1∙1+1∙1) ∙101+1∙1=121.
Таким образом, V=38∙92=27∙102+(121-27-16) ∙101+16=3496.
3)Рассчитаем W:
W=71∙11(двух разрядное умножение без переполнений)
Таким образом, W=71∙11=7∙102+(16-7-1)∙10+1=781.
Теперь мы можем вычислить 3871∙9211=3496∙104+(11227-3496-781)∙102+781=35655781.
Ответ: 3871∙9211=35655781.
Домашние задание №4.
Найти произведение 8329 и 5631 по формуле быстрого умножения чисел.
Решение.
Разобьем наши числа на разряды по формуле:
x=a∙2k+b
y=c∙2k+d.
Формула быстрого умножения чисел имеет вид:
x∙y=V∙22k+(U-V-W)∙10k +W.
Если в процессе вычисления мы получаем(k+1) разрядные числа, то их произведение вычисляется по формуле (*):
a∙b=a1∙b1+( a1∙b2 a2∙b1)2k+ a2∙b2
В данном случае k=2. Получаем x=83∙102+29, y=56∙102+31.
1)Рассчитаем U:
U=(83+29)(56+31)=112∙87(двухразрядное умножение с одним переполнением)
Следует воспользоваться формулой (*):
a1=1, a2=12;
b1=0, b2=87.
a∙b=112∙87=1∙0∙104+(1∙87+12∙0) ∙102+12∙87.
Получили 12∙87 – двухразрядное умножение без переполнений:
Вычислим U1 по формуле (*):
a'1=0, a'2=3;
b'1=1, b'2=5.
a'∙b'=3∙15=0∙1∙102+(0∙5+3∙1) ∙101+3∙5=45.
Теперь мы можем вычислить12∙87=8∙102+(45-8-14) ∙101+14=1044 и досчитать
a∙b=112∙87=87∙ 102+(1∙87+12∙0) ∙101+12∙87=9744
Таким образом, U=87∙ 102+(1∙87+12∙0) ∙101+12∙87=9744
2) Рассчитаем V:
V=83∙56(двухразрядное умножение без переполнений)
U2 мы получили одноразрядное умножение с двумя переполнениями. Вычисляем его по формуле(*):
a1=1, a2=1;
b1=1, b2=1.
U2=11∙11=1∙1∙102+(1∙1+1∙1) ∙101+1∙1=121.
Таким образом, U2=83∙56=40∙102+(121-40-18) ∙101+18=4648.
3)Рассчитаем W:
W=29∙31 (двухразрядное умножение без переполнений)
Вычисляем U3 по формуле (*):
a1=1, a2=1;
b1=0, b2=4.
11∙4=1∙0∙102+(1∙4+1∙0) ∙101+1∙4=44.
Таким образом, W=2931=6∙102+(44-6-9) ∙101+9=899
Теперь мы можем вычислить 8329∙5631=4648∙104+(9744-4648-899) ∙102+899=4690059.
Ответ: 8329∙5631=4690059.
Домашние задание №5(А,Б,В).
А) Найти сотов минимального веса для связанного взвешенного неориентированного графа, заданного матрицей стоимостей переездов из одной вершины в другую:
Решение.
Упорядочить все ребра графа по возрастанию их стоимости:
(1,5)=1;(0,1)=2;(0,5)=3;(4,5)=3;(0,3)=4; (1,2)=4; (1,3)=5; (3,4)=5; (0,4)=6; (1,4)=6; (0,2)=7; (2,4)=7; (3,5)=7; (2,3)=8; (2,5)=∞;
Создаем таблицу: слева ребра, справа компоненты связанности.
Изначально список пуст и все компоненты связанности одновершинные. Берем минимальное по стоимости ребро и включаем его в список ребер. Две соответствующие вершины объединяем в одну компоненту связанности. Если обе вершины ребра уже принадлежат какой либо компоненте связанности, то данное ребро мы бракуем.
Данную процедуру повторяем, пока все вершины не окажутся в одной компоненте связанности (для этого потребуется включить в наш остов ровно n-1=4 ребра).
Подграф(ребра) | Связи(компоненты связанности) |
0 | 0,1,2,3,4,5 |
(1,5)- минимально по цене | 0,{1,5},2,3,4 |
(1,5)+(0,1) | {0,1,5},2,3,4 |
(1,5)+(0,1)+(0,5) | {0,1,5},2,3,4 |
(1,5)+(0,1)+(4,5) | {0,1,4,5},2,3 |
(1,5)+(0,1)+(4,5)+(0,3) | {0,1,3,4,5},2 |
(1,5)+(0,1)+(4,5)+(0,3)+(1,2) | {0,1,2,3,4,5} |
Таким образом, мы нашли остов минимального веса(его вес равен 14) для заданной матрицы стоимостей:
Б) Найти кратчайшие расстояния от второй до все остальных вершин графа,заданного матрицей стоимостей переездов из одной вершины в другую
Б1) Решение:
Формируем первоначальный массив стоимостей: D[0]=(∞, ∞,0, ∞,∞,∞).
Стоимость вершины i на каждом шаге считаем по формуле:
D[k+1](i)=min(D[k](0)+C(0,i), D[k](1)+ C(1,i), D[k](2)+ C(2,i), D[k](3)+ C(3,i), D[k](4)+ C(4,i), D[k](5)+ C(5,i))
Вычислим стоимости вершин данного графа на первом шаге:
D[1](0)=min(D[0](0)+C(0,0), D[0](1)+ C(1,0), D[0](2)+ C(2,0), D[0](3)+ C(3,0), D[0](4)+ C(4,0), D[0](5)+ C(5,0))=min(∞, ∞,2, ∞,∞,∞)=2.
D[1](1)=min(D[0](0)+C(0,1), D[0](1)+ C(1,1), D[0](2)+ C(2,1), D[0](3)+ C(3,1), D[0](4)+ C(4,1), D[0](5)+ C(5,1))=min(∞+2, ∞+0,0+2, ∞+∞,∞+∞,∞+2)=2.
D[1](2)=min(D[0](0)+C(0,2), D[0](1)+ C(1,2), D[0](2)+ C(2,2), D[0](3)+ C(3,2), D[0](4)+ C(4,2), D[0](5)+ C(5,2))=min(∞+7, ∞+0,0+0, ∞+8,∞+7)=0.
D[1](3)=min(D[0](0)+C(0,3), D[0](1)+ C(1,3), D[0](2)+ C(2,3), D[0](3)+ C(3,3), D[0](4)+ C(4,3), D[0](5)+ C(5,3))=min(∞, ∞,8, ∞,∞,∞)=8.
D[1](4)=min(D[0](0)+C(0,4), D[0](1)+ C(1,4), D[0](2)+ C(2,4), D[0](3)+ C(3,4), D[0](4)+ C(4,4), D[0](5)+ C(5,4))=min(∞, ∞,7, ∞,∞,∞)=7.
D[1](5)=min(D[0](0)+C(0,5), D[0](1)+ C(1,5), D[0](2)+ C(2,5), D[0](3)+ C(3,5), D[0](4)+ C(4,5), D[0](5)+ C(5,5))=min(∞, ∞,∞, ∞,∞,∞)=∞.
Вычислим стоимости вершин данного графа на втором шаге:
D[2](0)=min(D[1](0)+C(0,0), D[1](1)+ C(1,0), D[1](2)+ C(2,0), D[1](3)+ C(3,0), D[1](4)+ C(4,0), D[1](5)+ C(5,0))=min(2+0,4+3,0+2,8+4,7+∞,∞+2)=2.
D[2](1)=min(D[1](0)+C(0,1), D[1](1)+ C(1,1), D[1](2)+ C(2,1), D[1](3)+ C(3,1), D[1](4)+ C(4,1), D[1](5)+ C(5,1))=min(2+2,4+0,0+4, 8+∞,7+7,∞+4)=4.
D[2](3)=min(D[1](0)+C(0,3), D[1](1)+ C(1,3), D[1](2)+ C(2,3), D[1](3)+ C(3,3), D[1](4)+ C(4,3), D[1](5)+ C(5,3))=min(2+4,4+5,0+8,8+0,7+4,∞+7)=6.
D[2](4)=min(D[2](0)+C(0,4), D[2](1)+ C(1,4), D[2](2)+ C(2,4), D[2](3)+ C(3,4), D[2](4)+ C(4,4), D[2](5)+ C(5,4))=min(2+6,4+6,0+7,8+5,7+0,∞+8)=7.
D[2](5)=min(D[2](0)+C(0,5), D[2](1)+ C(1,5), D[2](2)+ C(2,5), D[2](3)+ C(3,5), D[2](4)+ C(4,5), D[2](5)+ C(5,5))=min(2+3,4+1,0+∞, 8+7,7+3,∞+0)=5.
Вычислим стоимости вершин данного графа на третьем шаге:
D[3](0)=min(D[2](0)+C(0,0), D[2](1)+ C(1,0), D[2](2)+ C(2,0), D[2](3)+ C(3,0), D[2](4)+ C(4,0), D[2](5)+ C(5,0))=min(2+0,4+3,0+2,6+4,7+∞,5+2)=2.
D[3](1)=min(D[2](0)+C(0,1), D[2](1)+ C(1,1), D[2](2)+ C(2,1), D[2](3)+ C(3,1), D[2](4)+ C(4,1), D[2](5)+ C(5,1))=min(2+2,4+0,0+4, 6+∞,7+7,5+4)=4.
D[3](3)=min(D[2](0)+C(0,3), D[2](1)+ C(1,3), D[2](2)+ C(2,3), D[2](3)+ C(3,3), D[2](4)+ C(4,3), D[2](5)+ C(5,3))=min(2+4,4+5,0+8,6+0,7+4,5+7)=6.
D[3](4)=min(D[2](0)+C(0,4), D[2](1)+ C(1,4), D[2](2)+ C(2,4), D[2](3)+ C(3,4), D[2](4)+ C(4,4), D[2](5)+ C(5,4))=min(2+6,4+6,0+7,6+5,7+0,5+8)=7.
D[3](5)=min(D[2](0)+C(0,5), D[2](1)+ C(1,5), D[2](2)+ C(2,5), D[2](3)+ C(3,5), D[2](4)+ C(4,5), D[2](5)+ C(5,5))=min(2+3,4+1,0+∞,6+7,7+3,5+0)=5.
Массив стоимостей вершин перестал меняться. Таким образом, мы получили кратчайшее расстояние от всех вершин данного графа до второй вершины.
Б2) Решение:
Первоначально в множество S включаем только ту вершину, от которой требуется найти расстояние до всех других вершин графа. В нашем случае это вершина V2=2.
Считаем стоимости проезда от вершины 2 до всех остальных вершин:
D[V0]=D[0]=C(V2,V0)=C(2,0)=2;
D[V1]=D[1]=C(V2,V1)=C(2,1)=4;
D[V3]=D[3]=C(V2,V3)=C(2,3)=8;
D[V4]=D[4]=C(V2,V4)=C(2,4)=7;
D[V5]=D[5]=C(V2,V5)=C(2,5)=∞;
S | W | D[W] | D[0] | D[1] | D[3] | D[4] | D[5] |
2 | - | - | 2 | 4 | 8 | 7 | ∞ |
Далее выбираем среди всех вершин графа, за исключением вершины V2=2, минимальную по тоимости:
D[W]=min(D[V0], D[V1], D[V3], D[V4], D[V5])=min(2,4,8,7,∞)=2,
W=V0=0;
Пересчитываем стоимости проезда от вершины 0 до всех остальных вершин, кроме вершины V0=0:
D[V1]=D[1]=min(D[V1],D[W]+C(V0,V1))=min(4,2+C(0,1))=min(4,2+2)=4
D[V3]=D[3]=min(D[V3],D[W]+C(V0,V3))=min(8,2+C(0,3))=min(8,2+4)=6
D[V4]=D[4]=min(D[V4],D[W]+C(V0,V4))=min(7,2+C(0,4))=min(7,2+6)=7
D[V5]=D[5]=min(D[V5],D[W]+C(V0,V5))=min(∞,2+C(0,5))=min(∞,2+3)=5
S | W | D[W] | D[0] | D[1] | D[3] | D[4] | D[5] |
2 | - | - | 2 | 4 | 8 | 7 | ∞ |
2,0 | 0 | 2 | - | 4 | 6 | 7 | 5 |
Выбираем среди всех вершин графа, за исключением 0, 2, минимальную по стоимости:
D[W]=min(D[V1], D[V3], D[V4], D[V5])=min(4,6,7,5)=4,
W=V1=1
Пересчитываем стоимости проезда от вершины 2 до всех остальных вершин, кроме вершины V0=0, V1=1.
D[V3]=D[3]=min(D[V3],D[W]+C(V1,V3))=min(6,4+C(1,2))=min(6,4+5)=6
D[V4]=D[4]=min(D[V4],D[W]+C(V1,V4))=min(7,4+C(1,4))=min(7,4+6)=7
D[V5]=D[5]=min(D[V5],D[W]+C(V1,V5))=min(5,4+C(1,5))=min(5,4+1)=5
S | W | D[W] | D[0] | D[1] | D[3] | D[4] | D[5] |
2 | - | - | 2 | 4 | 8 | 7 | ∞ |
2,0 | 0 | 2 | - | 4 | 6 | 7 | 5 |
2,0,1 | 1 | 4 | - | - | 6 | 7 | 5 |
Выбираем среди всех вершин графа, за исключением 0, 2, 1 минимальную по стоимости:
D[W]=min( D[V3], D[V4], D[V5])=min(6,7,5)=5,
W=V5=5
Пересчитываем стоимости проезда от вершины 5 до всех остальных вершин, кроме вершины V0=0, V1=1, V2=2 V5=5
D[V3]=D[3]=min(D[V3],D[W]+C(V5,V3))=min(6,5+C(5,3))=min(6,5+7)=6
D[V4]=D[4]=min(D[V4],D[W]+C(V5,V4))=min(7,5+C(5,4))=min(7,5+8)=7
И, наконец D[W]=min( D[V3], D[V4])=min(6,7)=6,
W=V3=3
S | W | D[W] | D[0] | D[1] | D[3] | D[4] | D[5] |
2 | - | - | 2 | 4 | 8 | 7 | ∞ |
2,0 | 0 | 2 | - | 4 | 6 | 7 | 5 |
2,0,1 | 1 | 4 | - | - | 6 | 7 | 5 |
2,0,1,5 | 5 | 5 | - | - | 6 | 7 | - |
2,0,1,5,3 | 3 | 6 | - | - | - | 7 | - |
2,0,1,5,3,4 | 4 | 7 | - | - | - | - | - |
В результате мы получили таблицу, содержащую кратчайшее расстояние от вершины V2 до всех остальных вершин данного графа.
В) Определить оценку Н, если первоначальный маршрут (4,0,3){1,5}.
Матрица стоимостей переездов:
Решение.
Вычеркиваем нулевую и четвертую строки, так как мы уже выехали из нулевоц и четвертой вершин.
Вычеркиваем нулевой и третий столбцы, так как мы уже выезжали в нулевую и третью вершины.
Получаем следующую матрицу:
Стоимость переезда (3,5) полагаем равным ∞, т. к. он запрещен.
В каждой строке находи минимальный элемент (стоимость выезда):
αi=1,4,5,4. Выплачиваем найденные стоимости выездов, т. е. все элементы соответствующие строки уменьшаем на αi:
В каждом столбце находим минимальный элемент (стоимость въезда):
βi=0,3,0,0.
Вычисляем наименьшую стоимость маршрута:
H(D)=C(4,0)+C(0,3)+α(1)+α(2)+α(3)+α(5)+β(1)+β(2)+β(4)+β(5)=∞+4+(1+4+5+4)+(0+3+0+0)=∞.
Ответ: H(D)=∞.
Домашнее задание №6(А,Б)
А) Задача грабителя (о рюкзаке). Имеется склад, на котором присутствует ассортимент товаров (каждого товара неограниченный запас). У каждого товара своя стоимость Сi и масса mi. Выбрать набор товаров так, чтобы его суммарный вес не превышал заданную грузоподъемность М притом, что суммарная стоимость этого набора товаров была бы максимальной.
Номер товара, i | mi | Ci |
1 | 5 | 9 |
2 | 7 | 13 |
3 | 11 | 21 |
Максимальная грузоподъемность: М=23;24.
Решение.
Вычислим f(M) - максимально возможную стоимость товаров при грузоподъемности М:
f(0)=0;
f(1)=0;
f(2)=0;
f(3)=0;
f(4)=0;
f(5)=max(f(5-5)+9,f(5~7)+l3,f(5-ll)+21)=max(0+9)=9;
f(6)=max(f(6-5)+9, f(6~7)+J3,f(6-ll)+21)= тах(0+9)=9;
f(7)=max(f(7-5)+9, f(7-7)+l3,f(7-U)+21)= тах(0+9, 0+13)=13;
f(8)= (f(8-5)+9, f(8~7)+l3,f(8-11)+21)= тах(0+9, 0+13)=13;
f(9)= max(f(9-5)+9, f(9~7)+l3,f(9-11)+21)=max(0+9, 0+13)=13;
f(10)=max(f(10-5)+9, f(10~7)+13,f(10-ll)+21)=max(9+9, 0+13)=18;
f(U)=max(f(ll-5)+9, f(ll~7)+13,f(ll-ll)+21)=max(9+9, 0+13, 0+21)=21;
f(12)=max(f(12-5)+9, f(12-7)+13,f(12-ll)+21)= max(13+9, 9+13, 0+21)=22;
f(13)=max(f(13-5)+9, f(13~7)+13,f(13-ll)+21)=max(13+9, 9+13, 0+21)=22;
f(14)=ma(f(14-5)+9, f(14-7)+13,f(14-U)+21)=max(13+9, 13+13, 0+21)=26;
f(15)=max(f(15~5)+9, f(15-7)+13,f(15-ll)+21)=max(18+9, 13+13, 0+21)=27;
f(16)=max(f(16-5)+9, f(16~-7)+13,f(16-ll)+21)=max(21+9, 13+13, 9+21)=30;
f(17)=max(f(17-5)+9, f(17-7)+13,f(17-U)+21)=max(22+9, 18+13, 9+21)=31;
f(18)=max(f(18^5)+9, f(18-7)+13,f(18-ll)+21)= max(22+9, 21+13, 13+21)=34;
f(19)=max(f(19-5)+9, f(19~7)+13,f(19-U)+21)=max(26+9, 22+13, 13+21)=35;
f(20)=max(f(20-5)+9, f(20-7)+13,f(20-ll)+21)=max(27+9, 22+13, 13+21)=36;
f(21)=max(f(21-5)+9, f(21-7)+13,f(21-U)+21)=max(30+9, 26+13, 18+21)=9;
f(22)=max(f(22)+9, f(22)+13,f(22-ll)+21)=max(31+9, 27+13, 21+21)=42;
f(23)=max<f(23-5)+9, f(23-7)+13,f(23-U)+21)=max(34+9,30+13, 22+21)=43;
f(24)=max(f(24-5)+9, f(24-7)+13,f(24-ll)+21)= max(35+9, 31+15, 22+21)=44.
Определим оптимальный набор товаров при M=23:
f(23)=43;
f(23-5)+9=f(18)+9=34+9=43; => берём товар ( m1=5 , С1=9).
Новая грузоподъемность М=23-5=18
f(18)=34;
f(18-5)+9= f(13)+9=22+9=31; берём товар ( m1=5 , С1=9), так как 34≠31
f(18)=34;
f(28-7)+13= f(11)+13=21+13=34; берём товар ( m2=7 , С2=13)
Новая грузоподъемность М=18-7=11
f(11)=21;
f(11-5)+9= f(6)+9=9+9=18;не берём товар ( m1=5 , С1=9), так как 18≠21
f(11)=21;
f(11-7)+13= f(4)+13=0+13=13;не берём товар ( m2=7 , С2=13), так как 13≠21
f(11)=21;
f(11-11)+21= f(0)+21=0+21=21; берём товар ( m3=11 , С3=21)
Новая грузоподъемность М=11-11=0 грузоподъемность исчерпана.
Получили оптимальный набор товаров при М=23;
1 товар ( m1=5 , С1=9),
1товар ( m2=7 , С2=13)
1товар ( m3=11 , С3=21).
Определим оптимальный набор товар при М=24:
f(24)=44;
f(24-5)+9= f(19)+9=35+9=44; берём товар ( m1=5 , С1=9)
Новая грузоподъемность М=24-9=19
f(19)=35;
f(19-5)+9= f(14)+9=26+9=35; берём товар ( m1=5 , С1=9)
Новая грузоподъемность М=19-5=14
f(14)=26;
f(14-5)+9= f(9)+9=13+9=22; берём товар ( m1=5 , С1=9) т к 22≠26
f(14)=26;
f(14-7)+13= f(7)+13=13+13=26; берём товар ( m2=7 , С2=13)
Новая грузоподъемность М=14-7=7
f(7)=13;
f(7-5)+9= f(2)+9=0+9=9; не берём товар ( m1=5 , С1=9) т к 9≠13
f(7)=13;
f(7-7)+13= f(0)+13=0+13=13; берём товар ( m2=7 , С2=13)
Новая грузоподъемность М=7-7=0 грузоподъемность исчерпана. Получили оптимальный набор товаров при М=24:
2 товара ( m1=5 , С1=9)
2 товара( m2=7 , С2=13)
Б) Расставить скобки при перемножении матриц оптимальным образом.
M1=[10×20], M2=[20×5], M3=[5×4], M4=[4×30], M5=[30×6].
Решение.
r0=10, r1=20, r2=5, r3=4, r5=6.
Вычислим оптимальные трудоемкости перемножения матриц:
f(1,1)= f(2,2)= f(3,3)= f(4,4)= f(5,5)=0.
f(1,2)= f(1,1)+ f(2,2)+ r0∙ r1∙ r2=0+0+10∙20∙5=1000;
f(2,3)= f(2,2)+ f(3,3)+ r0∙ r1∙ r2=0+0+20∙4∙5=400;
f(3,4)= f(3,3)+ f(4,4)+ r0∙ r1∙ r2=0+0+5∙4∙30=600;
f(4,5)= f(4,4)+ f(5,5)+ r0∙ r1∙ r2=0+0+4∙30∙6=720;
f(1,3)=min( f(1,1)+ f(2,3)+ r0∙ r1∙ r2=0+400+10∙20∙4=1200;f(1,2)+ f(3,3)+ r0∙ r1∙ r2=1000+0+10∙4∙5=1200)=1200
f(2,4)=min( f(2,2)+ f(3,4)+ r1∙ r2∙ r4=0+600+20∙5∙30=3600;f(2,3)+ f(4,4)+ r1∙ r3∙ r4=400+0+20∙4∙30=2800)=2800
f(3,5)=min( f(3,3)+ f(4,5)+ r2∙ r3∙ r5=0+720+5∙4∙6=840;f(3,4)+ f(5,5)+ r2∙ r4∙ r5=600+0+5∙30∙6=900)=840
f(1,4)=min( f(1,1)+ f(2,4)+ r0∙ r1∙ r4=0+2800+10∙20∙30=8800;f(1,2)+ f(3,4)+ r0∙ r2∙ r4=1000+600+10∙5∙30=3100; f(1,3)+ f(4,4)+ r0∙ r3∙ r4=1200+0+10∙4∙30=2400)=2400;
f(2,5)=min( f(2,2)+ f(3,5)+ r1∙ r2∙ r5=0+840+20∙5∙6=1440;f(2,3)+ f(4,5)+ r1∙ r3∙ r5=400+720+20∙4∙6=1600; f(2,4)+ f(5,5)+ r1∙ r4∙ r5=2800+0+20∙30∙6=6400)=1400;
f(1,5)=min( f(1,1)+ f(2,5)+ r0∙ r1∙ r5=0+1440+10∙20∙6=2640;f(1,2)+ f(3,5)+ r0∙ r2∙ r5=1000+840+10∙5∙6=2140; f(1,3)+ f(4,5)+ r0∙ r3∙ r5=1200+720+10∙4∙6=2160;
f(1,4)+ f(5,5)+ r0∙ r4∙ r5=2400+0+10∙30∙6=4200)=2140;
Восстановим оптимальную расстановку скобок:
min f(1,5) достигнут на f(1,2)+ f(3,5):
(М1∙М2)∙( М3∙М4∙М5)
min f(3,5) достигнут на f(3,3)+ f(4,5):
(М1∙М2)∙( М3 (М4∙М5))
Ответ: (М1∙М2)∙( М3 (М4∙М5))
Домашние задание№7
По заданной в КНФ Z построить граф G и найти в нем возможные «клики».
Z=(x1˅˺x2˅˺x4)&(˺ x2˅˺x4)&( x3˅˺x4)&( ˺ x1˅˺x4)
Решение.
В графе будет 9 вершин
x1[1,1]
˺x2[2,1]
x3[3,1]
˺x1[4,1]
˺x2[1,2]
˺x4[2,2]
˺x4[3,2]
x4[4,2]
˺x4[1,3]
Построим для Z таблицу истинности.
X1 | X2 | X3 | X4 | Z |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 0 |
По таблице нетрудно заметить, что Z=1 на шести наборах переменных. Значит, данный граф имеет ровно 6 «клик»:
[1,1],[2,1],[3,1],[4,2]
[1,2],[2,1],[3,1],[4,1]
[1,2],[2,1],[3,1],[4,2]
[1,2],[2,1],[3,2],[4,2]
[1,2],[2,2],[3,1],[4,1]
[1,3],[2,2],[3,1],[4,1]
Ответ: Получили 6 вышесказанных «клик».
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА
Ахо А., Ульман Дж., Хопкрофт Дж. Построение и анализ алгоритмов. –М.Мир, 1987, стр.520
Томас Кормен. Алгоритмы. Построение и анализ. Второе издание. Москва-Санкт-Петербург-Киев,2005, стр 1296.
H.S. Wilf Algorithms and complexity. Internet Edition,1994,стр 136
М. Гэри, Д.Джонсон. Вычислительные машины и трудно решаемые задачи. Москва «Мир» 1982 стр 416.
Носов НН Теория алгоритмов и анализа их сложности.
http://intsys.msu.ru/stuff/vnosov/theoralg.htm
Кузюрин НН Курс лекций «Сложность комбинаторных алгоритмов»
http://discopal.ispras.ru/ru.lectures.htm
- Основные понятия. Справочный материал
- Основные понятия
- 1.2. Справочный материал. Сравнение скорости роста основных функций
- 2 Новые быстрые версии старых алгоритмов
- 2.1. Сортировки массивов
- 2.1.1 Метод прямого выбора (SelectSort)
- 2.1.2 Быстрая сортировка методом двоичных вставок (MergeSort)
- 2.2. Преобразование Фурье (бпф)
- 2.2.1. Дискретное преобразование Фурье
- 2.2.2. Полубыстрое преобразование Фурье (ппф)
- 2.2.3. Быстрое преобразование Фурье (бпф)
- 2.3. Быстрая свертка
- 2.3.1. Понятие свертки
- 2.3.2. Обычный и быстрый алгоритм свертки
- 2.4. Быстрое умножение
- 2.4.1. Быстрое умножение чисел
- 1 Суммирование
- 4 Произведения чисел вдвое меньшей
- 2.4.2. Быстрое умножение матриц
- 2.4.3. Очень быстрое умножение числе (алгоритм Шенхаге – Штрассена)
- 3. Задачи на графах
- 3.1. Справочный материал
- 3.2. Поиск минимального остова в связном неориентированном взвешенном графе
- 3.3. Нахождение кратчайшего расстояния
- 3.3.1. Алгоритм Форда – Беллмана
- 3.3.2. Алгоритм Дейкстры
- 3.4. Нахождение диаметра, радиуса и центра графа
- 3.5. Задача об изоморфизме графов
- 3.6. Задача коммивояжера. Её решение методом ветвей и границ.
- Задачи динамического программирования
- Задачи динамического программирования. Её решение методом динамического программирования.
- 4.2. Задача об оптимальном наборе самолетом скорости и высоты
- 4.3. Задача грабителя (задача о рюкзаке)
- 4.4. Задача о перемножении матриц
- 5 Классы p и np
- 5.1 Машина Тьюринга
- 5.2 Недетерменированные машины Тьюринга(ндмт)
- 5.3 Сводимость. Np-полнота.
- 5.4 Иерархия по сложности. Труднорешаемые задачи.
- Классы сложности.
- 6 Неразрешимые задачи
- 6.1 Новая модель алгоритма вычислений.
- 6.2 Нумерация программ
- 6.3 Неразрешимые проблемы
- 6.4 Теорема об ускорении
- Лабораторные работы
- Расчетно-графическое задание
- Ответы к домашним заданиям