Министерство высшего и профессионального образования РФ Ухтинский Государственный Технический Университет Кафедра АИС Расчетно-графическая работа № 2 «Динамическое программирование» Выполнил: студент группы АИС-97 Григорьев Дмитрий Вячеславович Проверила: преподаватель кафедры АИС Бондаренко Елена Анатольевна Ухта, 1999 г. Постановка задачи. 2 5 8 3 6 10 1 9 4 7 Задача о дилижансе. Требуется найти маршрут, страховые выплаты по которому будут минимальными. Суммы страховок указанны в таблицах 1 и 2 (для вариантов а) и б) соответственно). Табл.1 1 2 3 4 5 6 7 1 2 3 4 0 3 6 2 0 0 5 6 12 14 8 13 10 19 17 0 7 0 0 0 8 9 10 Пустые клетки в таблице означают отсутствие маршрутов. 8 9 12 10 9 10 14 8 0 10 9 0 13 0 Табл.2 1 1 2 3 4 0 4 8 5 0 2 0 3 5 6 15 18 10 16 14 21 20 0 4 7 0 5 0 6 0 7 8 9 15 14 11 13 15 10 0 8 11 0 9 10 14 0 10 Решение. Вариант а). Воспользовавшись методом динамического программирования получаем рекуррентную функцию страховых затрат, значения которых указанны ниже: j Переход в состояние 10 j1(s) f1(s) 8 9+0 10 9 9 13+0 10 13 s j 8 9 j2(s) f2(s) 5 9+12 13+10 8 21 6 9+9 13+10 8 18 7 9+14 13+8 9 21 s j 5 6 2 12+21 14+18 3 8+21 13+18 s j3(s) f3(s) 6 32 10+21 5 29 19+18 17+21 6 37 2 3 4 j4(s) f4(s) 3+32 6+29 2+37 2,3 35 4 7 j s 1 Получили оптимальное решение: всего «путешественнику» необходимо затратить 35$ на страховку, при условии его поездки по одному из следующих маршрутов: 1-2-6-8-10 или 1-3-5-8-10. Вариант б). j Переход в состояние 10 j1(s) f1(s) 8 11+0 10 11 9 14+0 10 14 s j 8 9 j2(s) f2(s) 5 11+15 14+14 8 26 6 11+11 14+13 8 22 7 11+15 14+10 9 24 5 6 2 15+26 18+22 3 10+26 16+22 21+22 s j s 4 7 j3(s) f3(s) 6 40 14+24 5 36 20+24 6 43 j s 1 2 3 4 j4(s) f4(s) 4+40 8+36 5+43 2,3 44 Получили оптимальное решение: всего «путешественнику» необходимо затратить 44$ на страховку, при условии его поездки по одному из следующих маршрутов: 1-2-6-8-10 или 1-3-5-8-10.