logo search
tsvpis

Ответы к домашним заданиям

Домашние задание №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.

Таким образом, U=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. Упорядочить все ребра графа по возрастанию их стоимости:

(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)=∞;

  1. Создаем таблицу: слева ребра, справа компоненты связанности.

Изначально список пуст и все компоненты связанности одновершинные. Берем минимальное по стоимости ребро и включаем его в список ребер. Две соответствующие вершины объединяем в одну компоненту связанности. Если обе вершины ребра уже принадлежат какой либо компоненте связанности, то данное ребро мы бракуем.

Данную процедуру повторяем, пока все вершины не окажутся в одной компоненте связанности (для этого потребуется включить в наш остов ровно 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}.

Матрица стоимостей переездов:

Решение.

  1. Вычеркиваем нулевую и четвертую строки, так как мы уже выехали из нулевоц и четвертой вершин.

  2. Вычеркиваем нулевой и третий столбцы, так как мы уже выезжали в нулевую и третью вершины.

Получаем следующую матрицу:

Стоимость переезда (3,5) полагаем равным ∞, т. к. он запрещен.

  1. В каждой строке находи минимальный элемент (стоимость выезда):

αi=1,4,5,4. Выплачиваем найденные стоимости выездов, т. е. все элементы соответствующие строки уменьшаем на αi:

  1. В каждом столбце находим минимальный элемент (стоимость въезда):

βi=0,3,0,0.

  1. Вычисляем наименьшую стоимость маршрута:

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,1],[2,1],[3,1],[4,2]

  2. [1,2],[2,1],[3,1],[4,1]

  3. [1,2],[2,1],[3,1],[4,2]

  4. [1,2],[2,1],[3,2],[4,2]

  5. [1,2],[2,2],[3,1],[4,1]

  6. [1,3],[2,2],[3,1],[4,1]

Ответ: Получили 6 вышесказанных «клик».

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

  1. Ахо А., Ульман Дж., Хопкрофт Дж. Построение и анализ алгоритмов. –М.Мир, 1987, стр.520

  2. Томас Кормен. Алгоритмы. Построение и анализ. Второе издание. Москва-Санкт-Петербург-Киев,2005, стр 1296.

  3. H.S. Wilf Algorithms and complexity. Internet Edition,1994,стр 136

  4. М. Гэри, Д.Джонсон. Вычислительные машины и трудно решаемые задачи. Москва «Мир» 1982 стр 416.

  5. Носов НН Теория алгоритмов и анализа их сложности.

http://intsys.msu.ru/stuff/vnosov/theoralg.htm

  1. Кузюрин НН Курс лекций «Сложность комбинаторных алгоритмов»

http://discopal.ispras.ru/ru.lectures.htm