Таблица 1
f0(10) = 0
f4(1)
Таблица 2
Таблица 3
f3(3)= min { C3,5+f2(5) , C3,6+f2(6), C3,7+f2(7) } =
= min { 5+8, 10+4, 7+5 } = 12.
Т.о. путь 1 – 3 – 7 – 9 – 10 (восстанавливается по таблицам)
Стоимость = 17 = 5+7+1+4
u
Таблица i
fi(u) = min { f i – 1 (v) + Cu,v⏐ v∈Ii – 1 }, i∈1..n, f0(u)=0
M1 × M2 × M3 × M4,
M1
M2
M3
M4
1) M1 × (M2 × (M3 × M4)) ⇒ (10×20×100 (20×50×100 (50×1×100) ) ) ⇒ 125 000
20 000
100 000
5 000
2) (M1 × (M2 × M3)) × M4 ⇒ ( (10×20×1 (20×50×1) ) 10×1×100 ) ⇒ 2 200
1 000
200
1 000
mij = Min {mik + mk +1, j + ri − 1 × rk × rj ⏐ i ≤ k < j}.
M(i, j) = M(i, k) × M(k+1, j), i ≤ k < j
ri − 1 × rj ri − 1 × rk rk × rj
24.02.2014
Динамическое программирование
Алгоритм вычисляет оптимальное значение m1n и заполняет
таблицу T по строкам сверху вниз:
mij = Min {mik + mk +1, j + ri − 1 × rk × rj ⏐ i ≤ k < j}.
mij = Min {mik + mk +1, j + ri − 1 × rk × rj ⏐ i ≤ k < j}.
mij = Min {mik + mk +1, j + ri − 1 × rk × rj ⏐ i ≤ k < j}.
func MatrixSeqMult ( i, j: Index): Matrix; {i ≤ j}
global q: Tab_q;
var k: Index; var A, B: Matrix;
begin
if i < j then
begin
k := q[i, j];
A := MatrixSeqMult ( i, k);
B := MatrixSeqMult ( k +1, j);
Return Mult(A, B)
end
else {i = j} Return Mi
end {MatrixSeqMult}
24.02.2014
Динамическое программирование
В методе динамического программирования повторных вычислений
не делается.
Вычисления проводятся так, как будто дерево сканируется снизу вверх,
а результаты вычислений сохраняются в таблице и далее используются.
При больших значениях k удобно использовать
формулу Стирлинга
24.02.2014
Динамическое программирование
24.02.2014
Динамическое программирование
24.02.2014
Динамическое программирование
Постановка задачи (продолжение)
24.02.2014
Динамическое программирование
Постановка задачи (продолжение)
Итак, задача состоит в том, чтобы по заданным весам
построить БДП, минимизирующее значение C0,n .
24.02.2014
Динамическое программирование
24.02.2014
Динамическое программирование
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть