Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
__Динамическое программирование_специалитет.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
2.74 Mб
Скачать

Тема 6. Динамическое программирование и линейное программирование

План лекции:

Задачи оптимизации производства услуг.

Задача оптимального распределения ресурсов.

Краткое содержание лекции

Повышение эффективности вычислений при решении определенного класса задач математического программирования может быть достигнуто путем использования методов динамического программирования. Особенностями методов динамического программирования являются использование для их реализации принципов инвариантного погружения и оптимальности. Принцип инвариантного погружения предполагает замену общей задачи на эквивалентную совокупность более простых (пошаговых) задач. Принцип оптимальности определяет возможность получения глобально-оптимальных стратегий (решений) на основе решений пошаговых задач оптимизации. Методы динамического программирования позволяют существенно сократить (по сравнению с полным перебором) число анализируемых вариантов решений в процессе определения глобально-оптимального решения за счет учета априорной информации о решениях, не являющихся допустимыми, и использования информации, полученной на предыдущих шагах оптимизации. Кроме того, достоинством методов динамического программирования является их инвариантность к классу целевой и ограничительных функций.

В распределительных задачах с большим числом различных результатов производственной деятельности (i=1,…,n) и видов ресурсов (j=1,…,m) общее решение задачи оптимизации может быть при определенных условиях заменено совокупностью последовательно решаемых менее сложных частных задач оптимизации, например, по каждому из отдельных видов производственной деятельности. При этом важными понятиями ДП являются: последовательность шагов оптимизации, состояние системы распределения ресурсов и варианты решения (области изменения оптимизируемых переменных)

Рассмотрим приемы и методы динамического программирования и введенных выше понятий на примере общей задачи линейного программирования:

z =c1x1+c2x2+…+cnxn  max,

a11x1+a12x2+…+a1nxn  b1,

a21x1+a22x2+…+a2nxn  b2,

am1x1+am2x2+…+amnxn  bm,

x1,…,xn0,

где z - целевая функция, подлежащая максимизации;

xi - оптимизируемые переменные;

i=1,n-номер оптимизируемой переменной;

сi - доход от реализации i-го вида производственной деятельности;

j=1,m-номер ограничений на значения переменных;

аij - коэффициенты уравнений-ограничений;

bj - величина j-го ресурса (правая часть ограничений).

Здесь каждый вид производственной деятельности i может рассматриваться как отдельный шаг оптимизации; множество возможных значений переменных (допустимая область решений) xi как варианты решений, а количество каждого j-го вида ресурса (Bi1,…, Bij,… Bim), 0bjBij, доступного для распределения на текущем и предыдущих (либо текущем и последующих) шагах (по i-м типам деятельности) как состояние модели.

Тогда оптимальное значение целевой функции z для шагов i,i+1,…,n при заданных состояниях {Bij} может быть записано в виде следующей рекуррентной функции Беллмана (алгоритма прямой прогонки):

fi(Bi1,…, Bim) = max {ci xi + fi-1(Bi1-ai1xi ,…,Bim-aimxi )}, i =1,n;j =1,m,

где 0aijxiBij

с начальными условиями f0(B01,…,B0m)=0.

Оптимальное значение целевой функции в обратном времени для шагов n,…, i, i-1,…,1 при заданных состояниях {Bij} может быть записано в виде следующего алгоритма обратной прогонки:

fn(Bn1,…,Bnm)=max{cnxn}, 0anjxnBnj

fi(Bi1,…,Bim)=max {cixi+fi+1(Bi1-ai1xi,…,Bim-aimxi)}, i=1,n; j=1,m,

где 0aijxiBij 0Bijbj.

Разница между прямым и обратным способами решения задачи заключается в определении состояния модели. В прямой модели Bij - количество ресурса j-го типа, распределяемого от первого шага до i-го, а для обратной модели Bij- количество ресурса, распределяемого на всех шагах от i-го до n-го.

Решение первой задачи основывается на двух основополагающих принципах. Принципе инвариантного погружения, определяющем декомпозицию решения общей задачи на пошаговое решение частных (для каждого вида производственной деятельности) задач, объединяемых общим ресурсом. Принципе оптимальности, определяющем независимость решений, получаемых на текущем шаге оптимизации, от решений, полученных на предыдущих (последующих) шагах, а лишь их зависимость от цели оптимизации и состояния ресурсов на i-м шаге. При этом гарантируется оптимальность глобальной стратегии (последовательности решений) при оптимальных локальных (пошаговых) решениях.

Процесс решения задачи методом динамического программирования включает два этапа. На первом этапе пошаговые задачи оптимизации приводят к условно-оптимальным по ресурсу (состояниям) решениям и одному (конечному) безусловно-оптимальному решению. На втором этапе формируется окончательная безусловно-оптимальная стратегия (x1опт,…,xiопт,…,xnопт) путем учета полученного на первом этапе конечного решения и затрат ресурсов на его реализацию, а также обратного по шагам анализа множества условно-оптимальных решений и выделения из него оптимальной стратегии.

Рассмотрим методику реализации принципа оптимальности на примере задачи оптимизации производства услуг в сети спутниковой связи. Пусть для сети спутниковой связи необходимо оптимизировать производство услуг двух типов: xa и xб по критерию вида

max z = 3xa + 2xб, при ограничениях

xа + 2xб  6,

2xа + xб  8,

-xа + xб  1,

xб  2,

[xа] ,[xб]  0.

Здесь шаги оптимизации определяются порядком оптимизации различных видов услуг связи: на 1ом шаге i=1 оптимизируется число услуг типа а, на втором шаге i=2 оптимизируется число услуг типа б.

Вектор состояния (Bi1,Bi2) определяется двумя видами ресурсов: числом телеграфных и телефонных каналов, подлежащих распределению на i-м шаге, т.е.0Bi16 и 0Bi28. Варианты решений определяются допустимой областью определения переменных xi, подлежащих оптимизации. Далее рассмотрим реализацию алгоритма ДП для случая обратного алгоритма.

Критерий оптимальности для первого шага (оптимизация производства услуги xб) принимает вид:

f2(B21,B22)= max{2xб},

0  2xб  B21

0  xб  B22

Далее определяем допустимые границы изменения состояния на первом шаге:

Процесс поиска условно оптимальных решений по величине производства услуги xб отобразим в форме таблицы.

Таблица

Оптимальное решение

Xб=0

Xб=1

Xб=2

Xб=3

Xб=4

f*2(B2)

x*б

(2,0)

0

-

-

-

-

0

0

(3,2)

0

2

-

-

-

2

1

(4,4)

0

2

4

-

-

4

2

(5,6)

0

2

4

-

-

4

2

(6,8)

0

2

4

6

-

6

3

Второй шаг алгоритма оптимизации связан с отысканием безусловного решения по производству услуги xа при ограничениях на состояние ресурсов, выделенных на оба шага оптимизации .

Целевая функция на втором шаге имеет следующий вид:

f1(B1) = max{R1(xа) + f2(B1 – C2(x*б))}, при 0xаB11; 02xаB12

Решение задачи второго этапа представлено таблицей.

Таблица

R1(xа) + f2(B1 – C2(x*б))

Оптимальное решение

Xa=0

Xa=1

Xa=2

Xa=3

Xa=4

f*1(B1)

x*а

(6,8)

0+6=6

3+4=7

6+4=10

9+2=11

12+0

12

4

Выполнение второго этапа предполагает определение на основе полученного безусловного решения x*а = 4 состояния ресурса, оставшегося только на первый шаг , и отыскание из таблицы 2 второго безусловного решения, удовлетворяющего этому ограничению x*б = 0.

Второй вариант аналитического решения этой же задачи на основе использования информации заключенной в ограничениях на множество оптимизируемых переменных представлен ниже. В этом случае решение также реализует алгоритм обратной прогонки.

Первый этап. Для оптимизации производства второго вида услуги xб целевая функция на первом шаге имеет следующий вид:

f2(B21,B22)= max{2xб}

02xбB21

0xбB22

Так как из ограничений следует, что xб  min{B21/2,B22}, а f2(xб|B21,B22) = 2xб, то, подставляя первое во второе и переходя к максимуму целевой функции, получим

f2(B21,B22) = max{f2(xб|B21,B22) = 2xб = 2min{B21/2,B22},

откуда x*б = min{B21/2,B22}.

Т.е. оптимальное значение числа услуг типа б, получаемое на шаге 1 , равно минимальному из двух видов ресурсов (числу телеграфных B21/2 или телефонных каналов B22), распределяемых на первом шаге.

Далее для шага 2 имеем:

f1(B11,B12) = max {3xa+f2(B11-xa,B12-2xa)}= max {3xa+2min{(B11-xa)/2,B12-2xa}}, 0xaB11; 02xaB12, где B11=6 и B12=8 для первого шага оптимизации.

Подставляя значение ресурсов ТГ и ТФ каналов в ограничения, получим обобщенное ограничение в виде xa  min(B11,B12/2)=4. Учитывая пропорциональную зависимость значения целевой функции от значения xa последнее неравенство превращается в равенство, а соответствующее решению xa*= 4 оптимальное (максимальное) ее значение f1*(4) = 12.

Второй этап. Безусловное решение на первом шаге оптимизации числа предоставляемых услуг xб необходимо проводить для следующего состояния по ресурсам:

B21 = B11- xa*=6-4=2; B22 = B12- 2xa* =8-8=0.

Откуда из условного решения следует безусловное: xб*= min { B21/2, B22 }= min { 1, 0 }= 0 . Таким образом, пошаговое решение задачи линейного программирования методом динамического программирования обеспечило в целом оптимальную стратегию производства услуг в одну единицу времени xa= 4 , xб = 0 при максимальном для случая целочисленного решения значении дохода сети спутниковой связи z = 12 у.е./ед.вр.

Пример. Задача оптимального распределения ресурсов резервирования в радиорелейной линии связи. Рассмотрим радиорелейную линию, состоящую из n интервалов. В случае независимых технических отказов различных интервалов вероятность безотказной работы всей РРЛ определяется выражением:

,

где Pi –вероятность безотказной работы i-го интервала.

Для повышения надежности данной последовательной системы используется резервирование станций на каждом из отдельных интервалов РРЛ, вероятность безотказной работы которых определяется выражением:

,

где qi и pi –вероятность отказа и вероятность безотказной работы элемента на i-м интервале соответственно; xi- число резервных станций на i-м интервале; 1+xi –общее число (одна рабочая и xi резервная) станций в i-м интервале. Пусть также введены ограничения на число резервных станций xi  2;i=1,n. При этом суммарная стоимость резервных элементов с учетом известных ограничений на число станций в подразделении, развертывающем РРЛ не может превысить величины С = 1200у.ед. Остальные исходные данные, содержащие сведения о надежности pi(xi) и стоимости резервных средств ci(xi) i-го интервала, даны в таблице.

xi

i=1

i=2

i=3

p1(xi)

C1(xi)

p2(xi)

C2(xi)

p3(xi)

C3(xi)

0

1

2

0,70

0,91

0,973

100

200

300

0,60

0,84

0,936

200

400

600

0,50

0,75

0,875

300

600

900

В указанной таблице значения вероятностей безотказной работы i-х интервалов при использовании в них xi резервных станций определяются из выражения pi(xi) = 1-(1-pi)1+xi, где pi-вероятность безотказной работы интервала при отсутствии резерва. Необходимо определить оптимальное количество резервных станций на каждом интервале xiопт , обеспечивающих максимальную надежность РРЛ, т.е.

,

при ограничениях

Для решения этой нелинейной задачи применим метод динамического программирования и, в частности, алгоритм обратной прогонки. При этом номер шага соответствует номеру интервала, под состоянием si (0siC) понимается суммарная стоимость основного и резервного оборудования, задействованного на i-м и последующих интервалах, а под вариантами решения xi понимаем допустимое число резервных элементов в i-м интервале. Рекуррентное соотношение для функции Беллмана в данном случае может быть записано в виде:

Fn(sn) = ,

Fi (si) = ,

si = C - , k = 1, i = 1, 2, …, n-1.

Из таблицы найдем границы изменения состояния si на каждом шаге:

s3min=c3(x3=0)=300у.е.,

s3max - = C - [c1(x1 = 0) + c2(x2 = 0)] = 1200 – 300 = 900у.е.,

s2min=c2(x2 = 0) + c3(x3 = 0) = 200 + 300 = 500у.е.,

s2max=C - c1(x1 = 0)=1200 – 100 = 1100у.е., s1=C = 1200у.е.

На первом этапе обратного алгоритма рассматривают шаг 3. Найденные на этом и последующих этапах значения критерия и условно-оптимальные решения для всех допустимых значений si и оптимизируемых переменных xi=0,1,2 представлены в нижеследующих таблицах.

Шаг 3

S3

P3(X3)

Условное оптимальное решение

X3=0

X3=1

X3=2

F3(s3)

X3опт

P=0,5 C3=300

P=0,75 C3=600

P=0,875 C3=900

300

400

500

600

700

800

900

0,5

0,5

0,5

0,5

0,5

0,5

0,5

-

-

-

0,75

0,75

0,75

0,75

-

-

-

-

-

-

0,875

0,5

0,5

0,5

0,75

0,75

0,75

0,875

0

0

0

1

1

1

2

Шаг 2

S2

P2(X2)=p2(x2) F3(s2-c2(x2))

Условное оптимальное решение

X2=0

X2=1

X2=2

F2(s2)

X2опт

P=0,6 C2=200

P=0,84 C2=400

P=0,936 C2=600

500

600

700

800

900

1000

1100

0,3

0,3

0,3

0,45

0,45

0,45

0,525

-

-

0,42

0,42

0,42

0,63

0,63

-

-

-

-

0,468

0,468

0,468

0,3

0,3

0,42

0,42

0,468

0,63

0,63

0

0

1

1

2

1

1

Здесь значения функции Беллмана на втором шаге определяются с учетом ее значения на предыдущем шаге согласно выражению Fi(ci)= pi(xi)Fi+1(C - ci).

Шаг 3

S1=C

P1(X1)=p1(x1)F2(c2)

Безусловное оптимальное решение

X1=0

X1=1

X1=2

F1(s1)

X1опт

P=0,7 C1=100

P=0,91 C1=200

P=0,973 C1=300

1200

0,441

0,5733

0,4554

0,5733

1

Безусловное оптимальное решение на первом этапе получено лишь для шага 3 (числа резервных станций на первом интервале x1опт=1), поэтому окончательная стратегия относительно необходимых резервных станций в каждом из трех интервалов может быть получена лишь на втором этапе – этапе анализа результатов пошаговой оптимизации.

Так как x1опт=1, то величина ресурса, подлежащая распределению на первом и втором шагах будет равно S2 = C - c(x1) = 1200 - 200 = 1000у.е. Тогда из предпоследней таблицы для S2=1000 получим оптимальное число резервных станций во втором интервале: x2опт=1. Следовательно, состояние S3=C - c(x1опт) + c(x2опт) = 1200 – (200 + 400) = 600у.е. Наконец, из последней таблицы для S3=600 имеем оптимальное число резервных станций на третьем интервале: x3опт=1.

Окончательно, оптимальная стратегия распределения резерва имеет вид: , т.е. на каждом радиорелейном интервале должно находиться по одной резервной радиорелейной станции. Вероятность безотказной работы РРЛ при этом составляет PРРЛ= 0,5733; суммарные затраты и затраты по интервалам составляют C=1200; С1=200; С2=400; С3=600у.е. Интервальные вероятности безотказной работы составляют p1(x1=1)=0,91; p2(x2=1)=0,84; p3(x3=1)=0,75.