- •5.1. Вопросы для промежуточного и итогового контроля
- •6. Критерии оценки знаний
- •Список рекомендуемой литературы
- •Теоретическая часть
- •Тема 1. Экстремальные задачи и методы их решения.
- •Выбор метода решения - один из важнейших этапов при решении задач оптимизации. Можно выделить следующие группы методов:
- •Тема 3. Классические задачи, решаемые методом динамического программирования.
- •План решения задачи методом динамического программирования.
- •Определение. Последовательность Фибоначчи определяется следующим образом:
- •Примеры задач, решаемых при помощи динамического программирования. Наибольшая общая подпоследовательность. (ноп, Longest Common Subsequence, lcs)
- •Решение
- •Примеры задач, решаемых при помощи динамического программирования. Наибольшая возрастающая подпоследовательность. (нвп, Longest Increasing Subsequence, lis)
- •Решение
- •Оптимизация метода динамического программирования (на примере задачи нахождения числа сочетаний )
- •Тема 4. Системы и процессы.
- •Тема 5. Дискретные и непрерывные задачи.
- •Тема 6. Динамическое программирование и линейное программирование
- •Тема 7. Задачи поиска оптимальных путей на графах с неотрицательными весами ребер.
- •Тема 8. Динамическое программирование в экономических задачах.
- •Алгоритм обратной прогонки. Алгоритм прямой прогонки.
- •Алгоритм обратной прогонки
- •Алгоритм прямой прогонки
- •Тема 9. Оптимальное управление.
- •Тема 10. Особенности решения задач динамического программирования. Примеры.
- •Тема 11. Применение метода динамического программирования к задачам синтеза расписаний обслуживания.
- •Однопроцессорные задачи синтеза расписаний обслуживания конечных детерминированных потоков заявок
- •Задачи синтеза расписаний обслуживания для систем с параллельными и последовательными процессорами
- •Задачи оптимального обслуживания стационарных объектов, расположенных в одномерной зоне
- •Тема 12. Труднорешаемые задачи. Полиномиально разрешимые конкретизации, приближенные и эвристические алгоритмы
- •Полиномиально разрешимые и np-трудные задачи
- •Полиномиально разрешимые подклассы труднорешаемых задач
- •Принципы построения приближенных и эвристических алгоритмов
- •Эвристические алгоритмы для задач синтеза расписаний обслуживания
- •Глоссарий
- •Сборник заданий, задач, примеров, упражнений и т.Д.
- •Задача 7. Максимальная подпоследовательность. Дана числовая последовательность, требуется найти длину наибольшей возрастающей подпоследовательности.
Тема 5. Дискретные и непрерывные задачи.
План лекции:
Непрерывные процессы.
Траекторный процесс.
Неоднородная атмосфера.
Причинность.
Стохастичность и корреляция.
Вариационное исчисление.
Геометрическая интерпретация.
Уравнение эйконала (в R2).
Краткое содержание лекции
Непрерывные процессы
Рассмотрим дискретный процесс, заданный соотношениями:
pi+1 = T(pi)
Пусть этим значениям i соответствует значения t = 0, , 2, …
Тогда в силу непрерывности T(p) p, а точнее
T(p) = p + S(p) + o()
Пусть соответствующая целевая функция имеет вид суммы
ft(p) = g(p) + g(T(p)) + g(T2(p)) + … + g(Tn(p))
И предположим, промежуток достаточно мал. Если обозначим t = n, то получим
ft+(p) = g(p) + ft(p + S(p) + o())
Рассмотрим теперь M-мерный случай, получим
Тогда
уравнение для целевой функции примет
вид
Если перейдем к пределу при 0, то получим линейное уравнение в частных производных
Формально
p(t) = S(p),
p(0) = p0
Траекторный процесс
Рассмотрим задачу: в пустоте с малой скоростью v брошено вертикально вверх тело. Найти наибольшую высоту подъёма тела. Классическое решение задачи имеет вид:
Способ динамического программирования. Пусть f(v) – максимальная высота
Последовательно получаем:
0
T(v) = v - g
f(v) = v + f(v - g) + o()
0 0 = v - f(v)g, f(0) = 0
Задача (объект А догоняет объект Б). Пусть f(r,d) – время до встречи, g(r,d) – расстояние до точки встречи.
Получаем уравнение
Если 0, то разложив f в правой части по формуле тейлора, получим уравнение в частных производных для функции f и граничное условие для f:
Найти f(r,d); составить уравнение для g(r,d); найти g(r,d) (методом характеристик).
Неоднородная атмосфера
Пусть теперь задача о теле, брошенном вверх, имеет вид (движение с сопротивлением):
x = h(x,x),
x(0) = 0,
x(0) = v
Следовательно нужна дополнительная переменная состояния – высота в начале процесса (b). Пусть f(b,v) – максимальная высота.
Последовательно получаем
b1 = T1(b,v) = b + v + o()
v1 = T2(b,v) = v + h(b,v) + o()
f(b,v) – max высота
f(b,v) = v + f(b+v,v+h(b,v)) + o()
0
,
f = -b + (const),
где const – первый интеграл.
Самостоятельно рассмотреть конкретный пример h(x,x) = -g - kx.
Причинность
Рассмотрим последовательно идущие стадии процесса
В предположении зависимости параметров только от предшествующих состояний получаем
f(b,t+) = f(f(b,t),)
это и есть принцип детерминизма. Например для матрицы A получаем
eA(t+) = eAteA
Если eAt – есть решение уравнения x = Ax, x(0) = E.
Самостоятельно рассмотреть случаи sin(t+) и cos(t+)
Стохастичность
Пусть T не полностью известно, тогда (p0, р1, р2, …) – случайный процесс, следовательно получаем систему с описанием
pk = T(pk-1, rk), k1,
p0 = p,
где rk - независимые случайные величины с распределением dG(r).
Требуется найти математическое ожидание.
M(g(p)) = M(g(p1) + g(p2) + …+g(pN))
Обозначим
fN(p) = Mr(pm, рm+1, рm+2, …, рn, …), N1,
где математическое ожидание берётся относительно независимых случайных величин r1, r2, …, rN. Тогда получим
fN(p) = g(p) + fN-1(T(p, r1)dG(r1)
f0(p) = g(p)
(т.к. fN(p) = Mr(g(p) + fN-1(T(p, r1)))
Корреляция
Случайные величины rk могут быть зависимы, простейший случай, когда rk зависит только от rk-1. В этом случае известно распределение dG(rk, rk-1). Тогда
fN(p,r0) = g(p) + fN-1(T(p,r1))dG(r1,r0)
Вариационное исчисление
Простейшая классическая задача вариационного исчисления имеет вид: найти max J(u), где
J(u) = 0t0g(u,u)dt,
u(t) C[0,t0],
u(0) = c.
Обозначим формально
f(c,t0) = maxuJ(u)
и воспользуемся свойством интеграла 0t0 = 0 + t0.
Учтя, что
0g(u,u)dt = g(c,v) + o(), (где v = u(0)) получим:
f(c,t0) = maxv(g(c,v) + f(c+v, t0-)) + o()
И далее учитывая, что 0 получаем:
ft0 = maxv(g(c,v) + vfc), f(c,0) = 0
Замечание. v = v(c,t) называется функцией стратегии
Замечание. В классическом подходе решается уравнение:
При этом если, например, дополнительно задано условие |u(t)|k, 0tt0, то в классическом подходе возникают серьёзные трудности, а метод динамического программирования легко даёт уравнение:
ft0 = max|v|k(g(c,v) + vfc),
f(c,0) = 0
Геометрическая интерпретация
Вариационное исчисление: ищем кривую u(t), t[0,T], такую, что J(u) max, а u – точка в пространстве функций. Динамическое программирование: для каждой точки ищем направление, которое является оптимальным.
Иначе: кривая – геометрическое место точек (В. И.)
кривая – огибающая семейства касательных (Д. П.)
Уравнение эйконала (в R2)
Пусть дано распределение коэффициента преломления среды в виде n(x,y), тогда скорость луча v(x,y) = c/n(x,y).
По принципу Ферма путь луча такой, что время min.
Пусть это время от точки (x0,y0) до точки (x,y) есть t(x,y).
Пусть угол наклона , тогда заменим
(x,y) (x+cos,y+sin) и t = /v(x,y).
Последовательно получаем:
t(x,y) = min(/v(x,y) + t(x+cos,y+sin) + o())
0 = min(/v(x,y) + tx cos + ty sin + o())
-v-1(x,y) = min(tx cos + ty sin)
min
: -tx
sin
+ ty
cos
= 0
tg
= ty/tx
Это
и есть уравнение эйконала, запишем его
в исходных обозначениях
Выводы
Процедура решения непрерывных задач методом динамического программирования для задач, описываемых в терминах траекторных процессов приводит к уравнению в частных производных. Сравним классический подход и метод ДП по сложности численного решения в одномерном случае (N – число узлов)
|
Классические методы |
Метод ДП |
Одиночная задача |
N |
N2 |
Серия задач |
N2 |
N2 |
Таким образом при решении серии задач метод ДП конкурирует с классическими.
