- •Методические указания
- •1. Динамическое программирование
- •1.1. Общие понятия
- •1.2. Математическая постановка задачи
- •2. Сетевое планирование и управление
- •2.1. Общие понятия. Сетевой график
- •2.2. Правила построения и параметры сетевого графика
- •2.3 Расчет параметров и построение линейной диаграммаы процесса
1.2. Математическая постановка задачи
Состояние некоторой развивающейся системы в каждый дискретный момент времени t = 0, .... Т характеризуется множеством точек х(1)t, х(2)t ,..., х(n)t , совокупность которых—вектор x(t) = (х(1)t, х(2)t ,..., х(n)t), называемый вектором состояния системы. Обозначим множество всех состояний системы (вектор состояний) в момент времени t = т через хm, состояние ее в начальный момент t = 0 считается заданным х (0) = x0 . Развитие системы состоит в последовательном переходе из одного состояния в другое. На него можно воздействовать в каждый момент времени t определенным управлением и(t), выбранным из множества возможных управлений. Таким образом, состояние системы х(t+1) определяется, с одной стороны, вектором х (t) и, с другой - управлением и (t)
х (t + 1) = f {х (t); и (t)}.
Функция f задает правило перехода от состояния х (t) в состояние х (t + 1) в зависимости от управления и (t). Множество управлений, каждое из которых можно выбрать в момент t = т, обозначим через Um. Развитие системы определяется последовательностью х = {х (0), х(1), ..., х (Т)}, где x(m) Xm-вектор состояния системы при t = т. Эта последовательность называется стратегией. Стратегия допустимая, если существуют управления, позволяющие делать переход из любого ее состояния в следующее. Каждая стратегия оценивается функцией цели F(х). Таким образом, развитие системы описывается:
множеством допустимых состояний системы Хт;
множеством допустимых управлений Um;
правилами перехода из одного состояния в другое по выбранному управлению х (т +1) = f {х (т), u (m)};
функцией цели F (х).
Необходимо найти допустимую стратегию, обеспечивающую минимум (максимум) функции цели. Последнюю в общем случае задают суммой оценочных функций Qm {х (m), х(т+1)}, получаемых при каждом переходе из состояний х (т) в состояние х (т + 1),
Функцию цели можно считать функцией от управления, поскольку любую допустимую стратегию х полностью определяет последовательность допустимых управлений и = (и0, и1, ..., иТ-1). Таким образом, задачу динамического программирования можно сформулировать так: необходимо определить последовательность управлений
и*=(и0*,и1*,иТ-1*),
минимизирующую функцию цели
при условиях:
x (m+1)=f{x(m), u(m)};
x(m)є Xm; x(0)=x0;
u(m)є Um; m=0, 1,…,T-1.
Обозначим через Fk {x(k)} максимальное значение функционала для {x(m)}; {u(m)}; m=k+1,…,T, удовлетворяющих условиям задачи. Тогда, применяя последовательно принцип оптимальности к функциям f1, f2 и т.д., можно написать систему уравнений:
Fi [x (i)} называются функциями Беллмана. Решение задачи динамического программирования сводится к решению данной системы функциональных уравнений, как уже было сказано, начиная с последнего уравнения. Задачи динамического программирования, как правило, требуют большого объема вычислений и обычно их решают на ЭВМ. Рассмотрим некоторые конкретные задачи, максимально упростив их для иллюстрации механизма вычислений.
Необходимо определить такой режим ведения поезда на любом отрезке пути, который обеспечил бы минимальные приведенные расходы на передвижение по участку в целом. Расходы па каждом отрезке пути зависят от скорости поезда и от сопротивления движению, а последнее — от профиля пути. Поэтому в качестве вычислительного этапа можно рассматривать элемент профиля пути с постоянным уклоном.
Р ис.1 Определение наивыгоднейшего режима ведения поезда по участкам
На участке с восемью элементами профиля (рис.1) движение поезда начинается с первого. В зависимости от режима движения по нему кривая скорости может попасть в некоторое число точек на вертикали 1 (на ней фиксируются все возможные значения скорости через какой-либо интервал, например, через 1 км/ч). Рассмотрим только три. Из каждой из этих точек можно попасть в каждую из трех на следующей вертикали с определенными затратами (показаны на линиях, соединяющих точки). Последние подсчитывают заблаговременно для каждого элемента профиля во всех вариантах движения по формуле приведенных затрат в тяговых расчетах.
Решаем задачу с конца поэтапно. На последний элемент поезд может вступить с тремя значениями скорости (вертикаль 7). Каждому из них однозначно соответствуют приведенные расходы на передвижение по данному элементу до остановки. Выделяем три условно-оптимальных стратегии (показано жирными линиями): Q’7 = 50; Q’’7= 60; Q’’’7 = 70.
На предпоследний элемент поезд может вступить также с тремя значениями скорости (вертикаль 6). Однако из каждой точки можно попасть в конечную точку на вертикали 8 по трем вариантам (трем режимам). Поэтому находим условно-оптимальные стратегии на этом элементе (сравнивая между собой все варианты движения поезда) по минимуму общих расходов на обоих элементах пути
F6=min (Q6+Q7);
F’6=min (50+Q’7; 60+Q’’7; 70+Q’’’7)= min (50+50; 60+60; 70+70)=100; Q’6=50.
F’’6= min (30+Q’7; 40+Q’’7; 50+Q’’’7) = min (30+50; 40+60; 50+70) = 80; Q’’6=30.
F’’’6=min (40+Q’7; 50+Q’’7; 60+Q’’’7)= min (40+50; 50+60; 60+70)=80; Q’’’6=40.
Аналогично определяем условно-оптимальные стратегии на следующем элементе по общему минимуму затрат на трех последних:
F5=min (Q5+F6);
F’5=min (50+F’6; 60+F’’6; 70+F’’’6)= min (50+100; 60+80; 70+90)=140; Q’5=60.
F’’5= min (45+F’6; 55+F’’6; 60+F’’’6) = min (45+110; 55+80; 60+90) = 135; Q’’5=55.
F’’’5=min (30+F’6; 35+F’’6; 40+F’’’6)= min (30+100; 35+80; 40+90)=115; Q’’’5=35 и т.д.
На последнем этапе расчетов:
F1=min (Q1+F2);
F’1=min (75+F’2; 90+F’’2; 110+F’’’2)= min (75+275; 90+255; 110+250)=345; Q’1=90.
F’’1= min (60+F’2; 75+F’’2; 95+F’’’2) = min (60+275; 70+255; 95+250) = 330; Q’’1=75.
F’’’1=min (55+F’2; 70+F’’2; 90+F’’’2)= min (55+275; 70+255; 90+250)=325; Q’’’1=70.
Поскольку начальное состояние системы задано однозначно на последнем этапе, находим лишь одно значение
F = min (100+F’1; 110+F’’1; 120+F’’’1) = min (110+345; 110+330; 120+325) = 440; Q0=110.
Теперь, начиная с первой точки и проходя последовательно по непрерывной ломаной жирной линии весь процесс до последней точки, определим оптимальную стратегию для всего процесса и на каждом элементе:
F = Q0+Q’’1+Q’’2+Q’3+Q’’4+Q’’’5+Q’’6+Q’7=440.