Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Чесноков, Н. И. Оптимизация решений при разработке урановых месторождений

.pdf
Скачиваний:
8
Добавлен:
21.10.2023
Размер:
9.51 Mб
Скачать

Следует отметить, что повторяемость различных опе­ раций при расчете градиентным методом делает его очень громоздким, поэтому наиболее целесообразно его применять при решении нелинейных задач с использо­ ванием быстродействующих электронно-вычислительных машин.

4. Д И Н А М И Ч Е С К О Е П Р О ГР А М М И РО В А Н И Е

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

Таким образом, динамическое программирование мо­ жет быть применено как самостоятельный метод про­ граммирования и как один из эффективных вычисли­ тельных методов [13, 26, 35, 38].

Основы метода динамического программирования были разработаны Веллманом [13, 55], который и дал ему название.

Впервые динамическое программирование было при­ менено при решении задач, связанных с прогнозирова­ нием запасов. В настоящее время этот метод приме­ няется для решения самых разнообразных задач, начи­ ная от определения оптимальных запасов, кончая разра­ боткой оптимальных годовых, перспективных планов, прогнозов и др.

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

Прежде чем перейти к рассмотрению сущности ди­ намического программирования, следует отметить, что

184

при решении задач оптимизации, в которых в качестве одной из переменных является время, кроме динамиче­ ского программирования, применяются дифференциаль­ ное и вариационное исчисления. При этом дифферен­ циальное и вариационное исчисления применяются при условии непрерывности переменных и функций. В дан­ ной работе решение задач с непрерывным временем не приводится, так как это потребовало бы изложения од­ ного из крупных разделов высшей математики — вариа­ ционного исчисления. Кроме того, учитывая стохастиче­ ский характер изменения состояния горнорудного про­ изводства, в особенности на урановых рудниках, наибо­ лее надежным периодом времени для принятия опти­ мального решения может быть 1 месяц, 1 квартал или даже 1 год [24, 26, 35]. Поэтому для условий горноруд­ ного производства с успехом может быть принято ди­ скретное изменение времени при решении задач дина­ мического программирования.

Рассмотрим вначале в общем виде порядок решения задач методом динамического программирования, а затем решим конкретную задачу с помощью этого ме­ тода.

Рассмотрим следующую задачу:

 

П

____

0.

2 ОіХі < Ь при

і — (1, и), л-

і=і

 

 

Найти

 

 

maxZ =

^ fi(Xi).

(3.89)

 

1= I

 

Будем решать эту задачу методом математической ин­ дукции. Предположим, что известію значение хп, мак­ симизирующее Z, и соответствующее ему значение fn(x-n). Тогда можно переписать уравнение (3.89) в сле­ дующем виде:

max Z =

max V, Д- (*f) =

/„ (хп) + max v

f{ (*,). (3.90)

Здесь fn(x„)

i=i

i=i

 

вынесено за

знак максимума, так как оно

не зависит от Х\, х2, ....

Теперь, когда

значение хп

уже выбрано, граничные условия должны быть записа­ ны в следующем виде:

V а-лу < b - аах„.

(3.91)

і=і

 

185

И если в выражении (3.89) т а xZ зависело от Ь, то

Л= 1

 

 

 

 

с (3.91)

от

b апхп,

Е fi(Xi) зависит в соответствии

і = 1

 

 

 

 

 

 

 

 

поэтому можно написать

 

 

 

 

 

 

max

V Л (л-,-) =

а„_І (b ~

anxn).

(3.92)

........ Xn-U=\

нам

удалось

определить

Предположим,

что

a„_i (b а„Хп)

для всех допустимых значений

х„,

тогда

в соответствии

с

равенствами (3.90) и (3.92) можно

записать следующее:

 

 

 

 

 

 

max Z =

шах [/л (л„) -f- ая_, (b а„х„)],

 

(3.93)

 

 

хп

па

который нужно

умножить

где а„_і — коэффициент,

(b — а„х„), чтобы

получить

максимальное значение Z.

В данном случае х„ может принимать значения от 0 до Ь/ап, иначе может быть нарушено условие неотрицатель­ ности [см. (3.89)].

Для определения максимума в равенстве (3.93) сле­

дует подставить все допустимые значения х„,

а затем

выбрать наибольшее значение А:

 

Ап {х„) = fn {х„) + а„_, (b апх„).

(3.94)

Одновременно с вычислением максимального значе­ ния А определяют оптимальное значение .ѵ„ (обозначим

его через л-?,). Как видно из изложенного, отыскание maxZ можно было бы свести к решению задачи с одним неизвестным, если бы была известна вторая половина уравнения (3.94), а именно ап- і { Ьа„х„).

Следующим шагом будет определение гх„_і (b а„х„). Эта функция представлена уравнением (3.94). Для npoизвольно взятого неотрицательного числа c можно написать

а„_, ( с

)

max

п—1

(3.95)

V f,(xt)

и

•v" -v=.......xn

- 1

 

ГІI

 

 

 

 

 

 

(3.96)

 

Y^aixi < c .

 

/=!

 

 

 

Если провести те же вычисления и преобразования с

уравнениями от (3.89)

до

(3.93)

включительно, получим

(с) = max

(я„_д) + а„_ 2 (с — ап_уХп_,)},

(3.97)

ХП—1

 

 

 

 

186

где

 

 

 

«n-s (d) =

max

У № )>

(3.98)

причем

•V,

1 1=1

 

 

 

 

 

У] а^і < d

 

(3.99)

 

1=1

 

 

и X может изменяться от 0 до с/ап-\. Таким образом, если была бы известная функция ct„_2 (d), можно было

бы определить а„_і(с), используя лишь одну неизвест­ ную дг„_|. Так же как для выражения (3.94), вычисляем а,,-] (с) для различных значений х„_г, тем самым опре­ деляем

 

max

(^n_j) + an_ t (с — а,,_хх ^ )]

 

и оптимальное значение х °_ г

 

Аналогично

можно

определить а„ _ 2 (d), а„_з

и т. д.,

пока не подойдем к вычислению

 

 

 

ах (k) = max fx (хх)

(3.100)

 

 

^здесь

0 < хх < — ^ .

 

Теперь, чтобы определить maxZ, нужно сначала най­

ти a\(k),

а потом выполнить все указанные выше дейст­

вия в обратном порядке.

 

Практически это выполняется следующим образом.

Вначале

определяют

последовательность функций

а.і(с)=

max

{

/,-(хг). Затем вычисляют

а\(с).

V

•V,, л-= .

X ‘

 

 

После этого, используя рекуррентные соотношения, опре­ деляют (22(с), аз(с),..., а(с)„_і и max Z.

В общем виде рекуррентные соотношения имеют вид

[см. уравнения

(3.93) и (3.97)]:

 

 

 

а к(с) = max

 

 

к-1

 

 

(xk) +

max

2

ft (x,)

(3.101)

х к

-

.........ѵ/г—1 ‘=1

 

 

Но поскольку

 

 

 

 

 

 

max

V

ft (xt)

 

 

 

xu xi.........Л'у,._1 7=1

 

 

 

187

определяется при условии

 

 

 

к-1

 

 

 

 

 

 

 

 

X

а,- -V, <

С — а АдгА,

 

 

 

 

 

1^=1

 

 

 

 

 

 

 

max V

(л-,) =

а*_, (с — акхк),

 

 

 

 

I

 

 

 

 

 

поэтому (3.101)

может быть

переписано в следующем

виде:

 

 

 

 

 

 

 

 

 

«* (с) =

max [/* (а*) +

а*_, (с — аА**)];

(3.102)

 

 

 

хк

 

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

 

maxZ — a N(b).

 

(3.103)

При решении практической задачи динамического

программирования вначале определяют

 

 

 

 

 

 

(с) — max /у (.rt),

 

(3.104)

 

(0, Ь)

 

 

 

А*1

 

 

 

где с=

О^лр ^

(c/oj);

(лр — частные значения пе­

ременной первого шага оптимизации).

 

— значе­

Результаты расчетов сводят в табл. 42 (.ѵ°

ние д‘і,

максимизирующее f\(x|)).

 

 

 

 

 

 

 

 

 

Таблиц а 42

С

0

1

2

 

к- 1

к

Ь

а, (с)

а, (0)

а, (1) а,

(2)

аЛ_ 1(/.-D

ак (*)

а. (Ь)

■ѵ?(с)

0

 

-ѵ?(2)

 

■ѵ?(А—О 1

.ѵ)Ѵ)

а?(Ь)

Л'1(0)

 

 

У величины А‘° может быть несколько значений, тогда

их все вписывают в табл. 42. И в этом случае может потребоваться определить одно оптимальное решение, тогда в таблицу вписывают одно значение х ° . Если тре­

буются все оптимальные решения, то в табл. 42 вписы­ вают все значения х°.

188

Затем, когда сц (с) становится известным, применив

рекуррентное соотношение

 

а2 (с) =

max [/., (л'2) -|- а1 (с — а2.ѵ2)]

(3.105)

при 0 ^л'2 ^ (с/а2),

определяют «2 (c) для всех

допусти­

мых значений с. При вычислении гх2(с) при фиксирован­ ном с находят значения Д2:

А, (0, с) =-■/а (0) + ах (с),

А (1, с) = /2(1) -І-аДс — а2),

(3.106)

Наибольшее значение Л2

и является 0 2 (c). Параллельно

с вычислением а2(с) определяют х\

(значение

х2,

мак­

симизирующее А2).

а2(с)

нужно

знать

только

Для

определения

аі (с — а2х2) при О^д:2^ с /а 2.

 

 

 

 

 

В связи с тем что аДс)

определено для всехО ^с^Ь ,

можно найти аі (с — 02*2)

из

табл.

42

(число,

стоящее

на пересечении строки аі и столбца,

в котором

нахо­

дится значение Ch = c — а2х2).

 

 

 

 

 

После

этого составляют

вторую

аналогичную

таб­

лицу (см. табл. 44) для а2(с)

и х\.

В таком нее порядке

строят таблицы для а3(с),

0 4 ( c ) , а5(с)

и т. д. до a n - i ( c ) .

Значение max 2 и хп° можно определить либо с примене­ нием таблиц, либо с помощью уравнения (3.90).

Определив таким образом

maxZ

и дД, дД, ...,х °,вы­

числяют

 

 

шах Z = 2

ft (*/)

 

І = 1

 

при условиях

 

 

п

0; і =

_____

at X[4Zb; а >

(1, и).

Как видно из изложенного, при большом числе пере­ менных и интервалов изменения переменных выполнение такой работы вручную очень сложно. Рассмотренная последовательность вычислений может быть легко за­ программирована для решения на ЭВМ. Кроме того,

189

применение рекуррентных соотношении позволяет ис­ пользовать стандартные программы.

При решении задачи динамического программирова­ ния, где в качестве одной из переменных является вре­ мя, рекуррентные соотношения имеют вид, аналогичный (3.102). Только в этом случае //,(4, *а) — состояние си­ стемы b (к—т)-м промежутке времени, а оц_і (с—щ,/;,)— оптимальное состояние системы от начального до (k— 1)-го интервала времени. Следовательно, в данном случае а/, и сц_і зависят от времени.

Сравним метод динамического программирования с методом простого перебора вариантов. Пусть в задаче имеется 5 переменных (п = 5) и ограничение Sx,-^25. Тогда при простом переборе вариантов (т.е. при распре­ делении 25 единиц на 5 групп) число их будет А:

А(ft + 6 — I)!

6! (ft — I)!

При /1 = 5, Ь = 25

А= (5 + 2 5 - 1 ) !

25! (5— і)!

ИЛИ

А = 29'28'27'2- = 29-7-9-13 = 23 751.

4-3-2

При решении задачи методом динамического програм­ мирования число вариантов будет равно

А = Ь п + ( я - 'НМ ;!) + п,

или после подставки значения b и п

А — 25 f5 А-

^ + 5 = 1430,

т.е. почти в 17 раз меньше, чем при простом переборе вариантов. Эффективность метода динамического про­ граммирования по сравнению с методом полного перебо­ ра вариантов становится еще выше при увеличении п. Причина состоит в том, что на каждом шаге для кон­ кретного с все неблагоприятные комбинации переменных исключаются из дальнейших расчетов. Это преимуще­ ство динамического программирования приобретает осо­ бенно важное значение при решении задач с большим

190

числом переменных. Например, для линейного програм­ мирования перебор вариантов может быть оправдан при одном или двух ограничениях. При большом числе огра­ ничении более эффективным является симплекс-метод. Причина заключается в том, что при наличии, например, 100 ограничении необходимо перебрать 100 параметров состояния. Если при этом каждый параметр принимает 100 различных значений, таблица значений функции аі, будет содержать 100100 различных значений. При реше­ нии такой задачи на ЭВМ со скоростью ІО16 значений Uh в 1 сек потребовалось бы затратить для этого 10093 лет [55]. Это следует учитывать при выборе вычислитель­ ного метода решения задач линейного программирова­ ния. Динамическое программирование целесообразно использовать лишь тогда, когда его применение эффек­ тивнее других методов.

Рассмотрим практический пример. На одни из заво­ дов, перерабатывающих руду, поступает сырье с не­ скольких рудников. Причем руда по сортам посту­ пает неравномерно, следствием чего являются большие потери металла, цена которого составляет 10,0 руб. за 1 кг.

Врезультате проведенного анализа и в соответствии

сперспективой развития рудииков-поставщиков и пере­ рабатывающего завода было выявлено следующее:

1)суточный объем перерабатываемой руды не пре­ вышает 10 тыс. г;

2) на завод поставляют руду сорта А (1 тыс. г со­ держит 1 т металла); сорта Б (2 тыс. т содержат 1 г металла); сорта В (2 тыс. г содержат 1 т металла; тех­ нология переработки более экономична, чем руды сорта Б, несмотря на одинаковое содержание металла);

3) в случаях, когда руды сорта А поставляется на завод больше, чем может переработать завод руды это­ го сорта, она подается на комплекс аппаратов, перера­

батывающих руды сорта Б или В. При этом снижается извлечение и как следствие этого дополнительно те­ ряется 40 кг металла на 1 тыс. г руды сорта А. Если поставляется больше руды сорта Б, чем может перера­ ботать завод, то дополнительные потери металла состав­ ляют 30 кг на каждые 2 тыс. г руды. Поставка руды сорта В в количестве, большем, чем может быть пере­ работано на заводе, приводит к дополнительной потере 65 кг металла на каждые 2 тыс. г руды;

191

4) изменение количества поставляемых па завод руд каждого сорта в отдельности подчиняется распределе­ нию плотности вероятности Пуассона со средними зна­ чениями 4, 2 и 1 (соответственно сортов А, Б и В).

Цель задачи состоит в том, чтобы определить суточ­ ную производительность каждой из трех схем перера­ ботки руды, позволяющей, не увеличивая общей мощ­ ности завода, обеспечить минимальные дополнительные потери из-за неравномерности поставки руды различных сортов.

В математической

форме

рассматриваемая

задача

будет иметь следующий вид: определить

 

3

Г со

(а; — х,)р(а„ &,)

(3.107)

min Я =

р V

»'= 1

п .= V .

 

 

при л-,-^0, /=1, 2, 3,

л'і+ 2хоЧ-2л'з^ 10. Здесь П —допол­

нительные потери металла из-за неравномерной постав­

ки руды

различных

сортов на

завод, р — дополнитель­

ные потерн металла

по одному

из

сортов руд, и,- — воз­

можная

поставка руды і-го сорта,

ад — фактическая су­

точная производительность і-й схемы переработки руды

в металл (соответственно по сортам А, Б и В — ад,

а 2,

Аз), Ьі — ожидаемая суточная производительность

і-й

схемы переработки.

По условию задачи, процесс поставки руды на пере­ рабатывающий завод подчиняется пуассоновскому рас­ пределению плотности вероятности

 

 

(3.108)

Уравнение (3.108)

можно представить иначе:

а,р(а{, Ьі) =Ь{р(с1{—1, Ьі) при

1.

На этом основании

 

5]

(fli— xdPiflb

b<) =

7 . = - V .

 

 

ЬіР (ад- — 1,

b) — A(- P (АД,

bi) при А,- > 0, (3.109)

iЬі при а,-

= 0;

 

192

P( xi> b,-)= 2 P(ah bi) ai=xi

является интегральной функцией распределения. Пользуясь выражением (3.109), можно определить

среднее значение избыточной поставки руды і-го сорта, когда і-і\ комплекс полностью загружен и избыточное количество руды перерабатывается на других комплек­ сах, что приводит к дополнительным потерям металла.

Для выполнения расчетов удобно воспользоваться таблицами пуассоновского распределения.

В соответствии с изложенным выше установим сле­ дующую последовательность функций: 1-я — по х3, 2-я — по Х2 , 3-я — по лѵ, тогда, пользуясь равенством (3.104),

можем написать

Kj (с) = 40 ■[4P (с— 1, 4) — сР(с, 4)],

где с — произвольное целое число.

Пользуясь равенством (3.108) или таблицами рас­ пределения плотности вероятности Пуассона для раз­

личных значений

с, определим

со (с), х° (с)

и сведем их

в табл. 43,

аналогичную табл. 42.

 

 

 

 

 

 

 

Таблица 43

С

0

2

4

6

8

10

см(с)

160

84,4

31,27

7,82

1,35

0,17

х > )

0

2

4

6

8

10

 

 

 

 

 

 

Для примера покажем определение см для с= 6:

Кі(6) = 40 [4P(5, 4) — 6Р (6, 4)] = 40 [4-0,3712 —

— 6-0,2149] = 7,82.

Как видно из табл. 43, см (с) резко уменьшается с увеличением с(х°), т. е. дополнительные потерн металла

из-за излишней поставки руды сорта А будут тем ниже, чем больше будет производительность схемы перера­ ботки А.

13 Н. И. Чесноков н др.

193

Соседние файлы в папке книги из ГПНТБ