Научная статья на тему 'Метод дихотомического программирования'

Метод дихотомического программирования Текст научной статьи по специальности «Математика»

CC BY
956
145
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Метод дихотомического программирования»

МЕТОД ДИХОТОМИЧЕСКОГО ПРОГРАММИРОВАНИЯ

В.Н. Бурков, ИВ. Буркова, М.В. Попок

(Институт проблем управления РАН, Москва)

1. Введение

Многие задачи дискретной оптимизации сводятся к следующей постановке: определить вектор х = {хг} с дискретными компонентами, минимизирующий аддитивную функцию

(1) р(х) = ^рг (х)

I=1

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

(2) /х) > ь.

Широкий класс функций /х) допускает дихотомическое представление, такое, что вычисление значений функции сводится к последовательному вычислению значений функций двух переменных. Так функция

/х) = /о[/1(хЬХ2), /2(Х2,Хэ)] допускает дихотомическое представление (рис. 1). При этом соответствующие функции /0, /1, /2 удобно представлять в матричном виде (рис. 2).

Такое представление широко используется в методах комплексного оценивания программ развития предприятий, регионов, результатов деятельности подразделений, уровня безопасности объектов и др.

Рис. 1.

Колмогоровым А.Н. и Арнольдом В.И. [1, 3] доказаны теоремы о представлении непрерывных функций нескольких переменных суперпозициями непрерывных функций меньшего числа переменных (в частности, двух переменных). Так, например, любая непрерывная функция трех переменных представима в виде [3]

/ Х Х2 , Х3 )= Ь Х Р (х2 , Х3 )) + Ь2 Х Ч>2 (х2 , Х3 ))+ Ь (х1, (Рз (х2 , Х3 ))

Ее дихотомическое представление (в агрегированном виде) - на рис. 3.

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

(3) X (х)£ Ъ, ] = ^ т

Без ограничения общности можно принять, что Ъ] - положительные и одинаковые числа, Ъ] = Ъ > 0. В этом случае систему неравенств (3) можно заменить одним неравенством

Xх) < Ъ

где

I(х ) = та х /г (х )

]

Очевидно, что функция /(х) допускает дихотомическое представление, если все функции/] допускают такое представление.

2. Дихотомическое представление типа дерева

В задачах комплексного оценивания функция /(х), дающая интегральную оценку объекта, как правило, допускает дихотомическое представление в виде дерева. В этом случае можно предложить эффективный метод решения задачи (1), (2). На рис. 4 приведен пример построения интегральной оценки трех показателей, имеющей вид 1(х1,х2,х3) = Р0[/1(хЬх2), х3] = ро(у,х3)

Значения функций р(хг) даны в нижних половинах квадратов, соответствующих переменным х1, х2 и х3. Дадим описание алгоритма на примере рис. 4.

1 шаг. Рассматриваем нижнюю матрицу и для каждого элемента этой матрицы записываем в нижней половине соответствующей клетки сумму функций Р1(х1) и Р2(х2) для соответствующих значений х1 и х2. Так, например, клетке (х1,х2) = (3, 2) соответствует сумма р(3) + р(2) = 20 + 10 = 30.

Далее будем называть эту сумму затратами на достижение соответствующего состояния.

ад 1 2 3 4

ф(х) 6 25 67 120

г

4 / /70 2 / /71 8 3 4 / /120 4 / /70

3 / /30 2 / /31 2 / /38 3 / /80 3 / /30

2 / /17 1 / / 18 2 / /© ъ/4ь 3 / /17

1 / / 5 ]/4) 1 / /13 2 / /55 3 / /05

► У / хз 1 / / 1 2 / / 8 3 / /50 4 / /00

4 / />0 2 / ^2 ;57 Vх /70 4/ /10

1// /37 2 / /42 ;» 3 / /95

2 / /10 1 / /12 ;.7 3 30 3// /70

1 / / 3 1 / / 5 1 / / ю 2/ 2 / /63

Ху У Х1 1 / / 2 / у* 4 / /60

Рис. 4.

2 шаг. Из всех элементов матрицы имеющих одно и то же значение у = /\(Х\,Х2) выбираем элемент с минимальной суммой р(х!)+р(х2). Минимальную сумму записываем в нижнюю половину клетки, соответствующей этому значению у в верхней матрице. Так, например, значению у = 3 соответствуют 5 элементов нижней матрицы: (3;2), (4;2), (3;3), (4;3) и (2;4). Из них элемент (3;2) имеет минимальную сумму 30 (это число записано в нижней половине соответствующей клетки). Поэтому в верхней матрице значению у = 3 соответствует число 30, записанное в нижней половине соответствующей клетки.

Далее шаги 1 и 2 повторяются для верхней матрицы. В результате для каждого значения fx) мы получаем минимальную величину jx).

Несложно обобщить описанный алгоритм на случай произ-водльного дихотомического представления функции fx) в виде дерева. Шаги 1 и 2 алгоритма повторяются, начиная с висячих вершин дерева дихотомического представления.

Заметим, что дихотомическое представление Рис. 4 имеет тип ветви дерева. В этом случае метод дихотомического программирования переходит в метод динамического программирования. Таким образом, метод дихотомического программирования в случае, когда дихотомическое представление имеет вид дерева, является обобщением метода динамического программирования, расширяя круг задач, решаемых на основе данного подхода (Рис. 5).

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

Метод динамического программирования (ветвь дерева)

Метод дихотомического программирования (произвольное дерево)

Рис. 5.

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

Формально этот принцип оптимальности можно записать следующим образом: jk(y) = min [j(yi) + j(y.)], где Р(у) - мно-

(i, j )e p(y)

жество пар (i j), такие что f (yi, yj) = y.

3. Общий случай

Рассмотрим произвольное дихотомическое представление функции fx), задаваемое сетью, входом которой является вершина, соответствующая функции fx), а выходами - вершины, соответствующие переменным xi, i = 1, n . Рассмотрим множество конечных вершин, которые не являются висячими, то есть их степень захода больше 1. Разделим произвольным образом затраты ji(xi) на ki частей, где ki - число заходящих дуг. Фактически мы как бы разделили вершину i на ki висячих вершин с соответствующей частью затрат. Далее применяем описанный выше алгоритм. При этом каждый раз, когда встречается вершина, имеющая степень захода больше 1, мы делим затраты на соответствующее число частей. В результате применения алгоритма мы получим оптимальное решение для модифицированной сети. Однако это решение может не быть решением исходной задачи. Тем не менее, имеет место следующая теорема.

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

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

Пример 1. Рассмотрим сеть рис. 1, 2. На рис. 6 приведено решение задачи. При этом затраты j2(x2) разделены на две части, поскольку переменная x2 используется и при вычислении f1, и при вычислении f2. В данном случае общие затраты, равные 8, 12 и 20

при значениях переменной х2 равной 1, 2 и 3, соответственно, поделены пополам.

3 / /20 2 / /27 2 / /29 7 \ т 3

2 / /11 1 / /18 /^°)

1 / / 9 1 / /18 2 / /26

Л/ / У2 1 / / 7 2 / / 9 3 / /17

3 28

2 20

1 16

/2

2 / /19 3 / /21 3/5 3 / /10 3 / А7) 3 и

2 / /10 1 / /14 2 / /16 2 / / 6 2 / /® 2 / /13 3// /20

/ 1 / /® 2 / /© 2 .5 1 / / 4 1 / /о> 1 / /11 ^8

/ *2 1 / / 4 2 / / 6 3 / /10 *2/ / *3 1 / / 3 2 / / 7 3 / /14

Рис. 6.

В каждой матрице выделены клетки, соответствующие минимальным затратам на получение того или иного значения функций (/1, /2 и/0). В результате получены минимальные затраты <$/0), требуемые для получения значений функции /0. Если /0 = 1, то Л = 16, если /0 = 2, то <$2) = 20, если / = 3, то $3) = 28.

Рассмотрим случай /0 = 2. Ему соответствует оптимальное решение модифицированной задачи: х = 1, х21 = 2, х22 = 2, х3 = 1.

Здесь х21 соответствует значению х2 в левой нижней матрице, а х22 - в правой нижней матрице. Поскольку оба значения х21 = 2, х22 = 2 вошли в оптимальное решение модифицированной задачи, то полученное решение является допустимым для исходной задачи, а значит мы получили оптимальное решение исходной задачи.

Другая ситуация возникает в случае /0 = 3. Оптимальное решение модифицированной задачи имеет вид: х1 = 1, х21 = 2, х22 = 3, х3 = 2 с величиной затрат <ро = 28. Это решение не является допус-

тимым для исходной задачи, поэтому щ = 28 является нижней оценкой минимальных затрат для исходной задачи. Здесь возможны два варианта действий. Первый заключается в попытке улучшить нижнюю оценку, изменяя разбиение затрат с2 = щ(х2) на две части - с21 и с22. Очевидно, что для улучшения оценки следует С21 увеличить, а с22 уменьшить. Возьмем, например, с2\ = 10, а с22 = 2. В этом случае оптимальное решение модифицированной задачи будет иметь вид: х1 = 1, х21 = 2, х22 = 2, х3 = 3 с величиной затрат щ = 31. Это решение является допустимым для исходной задачи, а значит оптимальным. Однако, изменение разбиения затрат на части может и не привести к получению допустимого решения для исходной задачи.

Второй вариант состоит в применении метода ветвей и границ. Разобьем множество всех решений исходной задачи на два подмножества. В первом х2 < 2, а во втором х2 = 3 и применим описанный выше алгоритм. Получим оценку снизу для первого подмножества. Получаем следующее решение: х1 = 1, х21 = 2, х22 = 2, х3 = 3 с величиной затрат щ = 31.

Получим оценку снизу для второго подмножества. Оптимальное решение модифицированной задачи имеет вид: х1 = 1, х2 = 3, х3 = 2 с величиной затрат щ = 32.

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

Рассмотрим на ряде задач построение оценочной задачи и метод ветвей и границ на основе полученной оценки.

4. Задача целочисленного линейного программирования

Рассмотрим следующую постановку задачи целочисленного линейного программирования. Определить целочисленный неотрицательный вектор х = (хь х2, ..., х4} максимизирующий

(4) £( х) = 2 с,х,

¿=1

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

(5) 2 ах <ъ]■,} =1 т

Для построения оценочной задачи разделим ci на m частей sij, так что

I = 1, п

(6)

С

и рассмотрим т задач целочисленного линеиного программирования следующего вида: определить целочисленный вектор х, максимизирующий

(7) ^(х )=2 і

при ограничениях (8)

Обозначим через Ф^) - оптимальное решение 7’-ой задачи (s^■ = ^}). Согласно теореме, величина

(9)

т ( \

ф(8)=2 Фд^)

і=і

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

является оценкой сверху оптимального решения исходной задачи. Окончательно получаем следующую формулировку оценочной

задачи: определить ^у}, / = 1, п, ] = 1, т, максимизирующие Ф^) при ограничениях (6). Оценочную задачу назовем двойственной к исходной задаче целочисленного линейного программирования. Обоснованием этого названия служит следующая интересная связь. Рассмотрим обычную задачу линейного программирования (4)-(5) (без требования целочисленности). Для упрощения выводов примем, что все параметры системы ограничений - положительные числа. Заметим, что если не требовать целочисленности решений, то задача (7)-(8) легко решается. Ее оптимальное решение:

(10)

=<

к к 0, если і Ф к■ Оптимальная величина (7) составит

Ъ

ак

если

ак

= шах—

з аз

(11)

Ф і У = Ъ

= Ъ. шах—

1 з аз

s

s

£ __________ £ .

Обозначим у . = шах —, . = 1,т . Заметим, что у . > —. для 9 а. а.

всех 9 Увеличим £д1- так, чтобы 89 = у.ая.. Тогда оценочная задача

(6), (9) запишется в следующем виде: определить у. > 0, . = 1, т , минимизирующие

(12) в(у ) = 2 ъ1У1 при ограничениях

(13) 2 а.у. > с, 1 1п.

.

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

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

Пример. Определить хI = {0;1}, / = 1, п , максимизирующие Ф(х) = 10х1+8х2+6х3+7х4

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

6х1+3х2+2х3+5х4 < 11,

3х1+5х2+6х3+3х4 < 11.

Для построения оценочных задач возьмем £г1 = аг1, £а = сГаг1,

/ = 1,4 . Получаем две задачи о ранце.

Задача 1.

щ = шах(6х1+3х2+2х3+5х4),

6х1+3х2+2х3+5х4 < 11.

Она имеет два решения:

1) х1 = х4 = 1, х2 = х3 = 0,

2) х1 = х2 = х3 = 1, х4 = 0.

В обоих случаях ф1 = 11.

Задача 2.

щ = шах(4х1+5х2+4х3+2х4),

3х1+5х2+6х3+3х4 < 11.

Ее решение:

х1 = х2 = х4 = 1, х3 = 0, щ = 11.

Оценка сверху исходной задачи

(Ро = (Рі + р = 22.

Для улучшения оценки увеличим 521 и 541 на единицу, уменьшив на единицу 522 и 542. Получаем две новые оценочные задачи: Задача 1.

р1 = шах(6х1+4х2+2х3+6х4),

(14) 6х1+3х2+2х3+5х4 < 11.

Ее решения:

1) х1 = х4 = 1, х2 = хз = 0,

2) х1 = х2 = х3 = 1, х4 = 0,

3) х2 = хз = х4 = 1, х1 = 0,

Р1 = 12.

Задача 2.

Р2 = шах(4х1+4х2+4х3+1х4),

(15) 3х1+5х2+6х3+3х4 < 11.

Ее решение:

х1 = х2 = х4 = 1, х3 = 0, Р2 = 9.

Оценка сверху исходной задачи уменьшилась на единицу:

Р0 = Р1 + Р2 = 21.

Применим метод ветвей и границ. Разобьем множество всех решений на два подмножества. В первом подмножестве х1 = 1, а во втором х1 = 0.

Оценим первое подмножество. Положив в (14) и (15) х1 = 1, получаем следующие две задачи:

Задача 1.

р1 = шах(4х2+2х3+6х4), 3х2+2х3+5х4 < 5.

Ее решения:

1) х4 = 1, х2 = х3 = 0,

2) х2 = х3 = 1, х4 = 0,

Р1 = 6.

Задача 2.

р2 = шах(4х2+4х3+1х4), 5х2+6х3+3х4 < 8.

Ее решение:

х2 = х4 = 1, х3 = 0,

щ2 = 5.

Оценка сверху первого подмножества: щ = щ + щ +С1 = 21.

Оценим второе подмножество (Х] = 0). Заметим, что при х\ = 0 любое решение является допустимым для первой оценочной задачи. Поэтому достаточно решить вторую задачу, положив £12 = с, 1 = 2, 3, 4. Ее решение

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

Оценим первое подмножество (х2 = 1). Рассматривая два ограничения

2х3+5х4 < 2,

6х3+3х4 < 3, видим, что единственное решение

х3 = х4 = 0,

следовательно оно является оптимальным решением в данном подмножестве со значением целевой функции щ0 = 18.

Оценим второе подмножество (х2 = 0). В данном случае достаточно сравнить два варианта:

1) х3 = 1, х4 = 0 ф1 = 6

2) Х3 = 0, Х4 = 1, ф1 = 7 Оценка второго подмножества:

фо = 10 + 7 = 17.

Ей соответствует оптимальное решение в этом подмножестве х1 = х4 = 1, х2 = х3 = 0, со значением целевой функции фо = 17.

Выбираем первое подмножество, а следовательно, и оптимальное решение Х1 = х2 = 1, х3 = х4 = 0, фо = 18. Дерево ветвлений приведено на Рис. 7.

Рис. 7.

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

Задача 1.

max (10xi + 8х2 + 6х3 + 7х4) 6x1 + 3х2 = 2х3 + 5х4 < 11

Ее решение

х1 = х2 = х3 = 1, х4 = 0, ф1 = 24

Задача 2.

max (10х1 + 8х2 + 6х3 + 7х4) 3х1 + 5х2 = 6х3 + х4 < 11

Ее решение

х1 = х2 = х4 = 1, х3 = 0, ф1 = 25.

Таким образом, оценка сверху оптимального решения исходной задачи в данном случае равна 24, что больше чем оценка 21, полученная методом дихотомического программирования. Более того, поскольку обе рассмотренные задачи о ранце получаются в методе дихотомического программирования (первая - при 5г1 = ci, si2 = 0, а вторая наоборот, при si2 = ci, s¿1 = 0), то можно утверждать, что применение метода дихотомического программирования дает лучшие (или такие же) оценки. Во втором способе решается задача линейного программирования без требования целочисленности. Рассмотрим простой пример.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Пример. Определить х! = {0; 1}, i = 1,2 максимизирующее

щ(х) = 42х1 + 14х2

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

3х1 + 4х2 < 6 5х1 + 2х2 < 6

Получим оценку методом дихотомического программирования. Для этого достаточно положить £ц = 42, £2 = 14, £12 = = 0.

Решение первой оценочной задачи Х1 = 1, х2 = 0, ф = 42 является допустимым для второй задачи и, следовательно, является оптимальным.

Получим оценку, решая нецелочисленную задачу линейного программирования. Ее решение

Как видим, оценка существенно хуже.

5. Решение «Задачи о камнях» методом дихотомического программирования

Рассмотрим постановку «задачи о камнях». Имеется п «камней» разного веса. Требуется разбить их на т групп (куч) так, чтобы максимальный вес камней в группе был минимален. Задача о камнях имеет многочисленные варианты применения (равномерное распределение работ между исполнителями, функций по подразделениям организационной структуры и т.д.). Дадим формальную постановку задачи.

Задача 1. Обозначим через аг- - вес 1-го камня, х. = 1 если камень 1 попал в .-ю кучку, х. = 0 в противном случае. Суммарный вес камней в .-й группе равен

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

(16)

(18)

Задача заключается в минимизации (17) при ограничениях

(18). Мы будем рассматривать вспомогательную задачу следующего вида:

Задача 2. Фиксируем допустимый вес каждой группы T и сформулируем следующую задачу: максимизировать сумму весов размещенных в ящики вместимостью T камней:

(19) Ф = 2 aixij ® тах

i, ]

при ограничениях (18) и (20):

(20) 2arxv £ T, j = 1 m .

i

Связь между задачами (17)-(18) и (18)-(20) очевидна. Минимальное T, при котором в оптимальном решении задачи 2 размещены все камни, определяет оптимальное решение задачи 1.

Сначала получим дихотомическое представление задачи 2. Оно в агрегированном виде представлено на рис. 8 для случая n = 3, m = 2.

Поскольку структура дихотомического представления имеет вид сети, а не дерева, то для построения оценочной задачи разделяем каждую вершину нижнего уровня на две вершины. Преобразованная структура приведена на рис. 9. Все ai также делим на 2 части щ и Vj для каждой вершины нижнего уровня так, что

Рис. 8.

Рис. 9.

(21) и. + V. = а1 для всех 1,.. Рассмотрим следующие две задачи.

Задача 1. Определить х. так, чтобы максимизировать

(22) 2 и.х.

У У

г. ]

при ограничениях (3).

Вторая задача. Максимизировать

(23) 2 ух

г, ]

при ограничениях (20).

Обозначим Бт(и) и Хт(у) оптимальные решения первой и второй задач при заданных и и V. Оценочная задача заключается в определении {и.} и {у.}, минимизирующих

(24) Диу) = £т(и) + Ьт(у) при ограничении (21).

Заметим, во-первых, что в оптимальных решениях первой и второй задач можно принять

иг. = У г, V у = аг - у, . = 1, т .

Во-вторых, решение первой задачи очевидно:

^т (х )=2 У

(25) 1 .

В третьих, решение т вторых задач при заданных {у} сводится к решению одной задачи о ранце: определить х1 = 0,1, максимизирующие

Решим задачу (26)-(27) при уг = 0, 1 = 1, п .

Обозначим через Q = ^¿} множество векторов х, удовлетво-

Заметим, что при заданных {у1} X определяет оптимальное решение каждой из т вторых задач. Оценка (24) при этом равна

где N - число различных решений неравенства (27). Таким образом, оценочная задача свелась к определению 0 < уг < аг, і = 1, п и 0 < X < М, максимизирующих (29) при ограничениях (30). Это обычная задача линейного программирования.

Фиксируем величину X и определяем максимальный номер к такой, что X < Мк. Рассматриваем следующую задачу линейного

программирования: определить 0 < уі < аі, і = 1, п, минимизирующие

Е Хі " Уг )

(26)

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

(27)

ряющих (27) и упорядоченных по убыванию

(28)

X = шах(М;. - У;.).

(29)

где уг > 0 удовлетворяют неравенствам

при ограничениях (30), где j = 1, к . Двойственная задача имеет

вид: определить Uj > 0, j = 1, к , максимизирующие

к

(32) £(М,-ZU ,

j=1

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

(33) Е Uj £ 1, i = 1, и,

jeRi

где R - множество j, содержащих камень i.

Обозначим через Y0(Z) минимальное значение Y(Z). Оценочная задача сводится к минимизации функции одного переменного

(34) Y0(Z) + mZ ® min.

Берем T0 = Л/m, где A = Еаг. , и решаем задачу 2. Если

i

ФтахТ) < A, то увеличиваем Тэ до Т так, чтобы появился хотя бы один новый вектор Qy Если 0max(Ti) < A, то продолжаем увеличение Т до тех пор, пока не получим величину Тк такую, что Фтах(Тк) > A. Величина Тк является нижней оценкой для задачи 1. Далее можно применить метод ветвей и границ на основе полученной оценки.

Пример. Пусть m = 3 и имеется 7 камней следующего веса:

i 1 2 3 4 5 6 7

ai 10 12 13 14 18 19 22

1 шаг. Имеем А = 108, Т0 = 36. Имеется только одно решение: Q = (4,7) с величиной М = 36.

2 шаг. Увеличиваем Т0 до Т1 = 37. Имеются следующие решения: Ql = (5,6), Q1 = (4,7), Qз = (1,2,3), Q4 = (3,7). Соответственно М1 = 37, М2 = 36, М3 = 35, М4 = 35. Выпишем систему неравенств:

У5 + У6 + ^ > 37

у4 + у7 + г > 36

У1 + У2 + У3 + г > 35

у3 + у7 + г > 35

Имеем: 20 = 37, у, = 0, 7,(37) = 111,

21 = 36, у5 = 1, 7о(36) = 109,

22 = 35, у5 = 2, у4 = 1, 70(35) = 108.

Нетрудно показать, что дальнейшее уменьшение 2 не приводит к уменьшению оценки. Поэтому оптимальное 20 = 22 = 35.

Берем x51 = x61 =1, то есть, помещаем камни 5 и 6 в первую группу. Исключая эти камни, рассматриваем задачу меньшей размерности. Имеем для нее также Г0(35) = 71 = A - 37. Получаем оптимальное решение: x12 = x22 = x32 =1, x43 = x73 =1 со значением T ■ = 37

-1- mm u ' •

6. Заключение

Предложенный подход обобщается на случай любого сетевого представления системы ограничений. Главное, чтобы задачи в вершинах сетевого представления имели эффективные методы решения. Такой более общий подход можно назвать методом сетевого программирования. Заметим, что в «задаче о камнях» мы уже не использовали дихотомическое, а уже использовали сетевое представление.

Литература

1. АРНОЛЬД В.И. О функциях трех переменных // ДАН СССР, 1957. № 2.

2. БУРКОВ В.Н., БУРКОВА И.В. Задачи дихотомической оптимизации / Материалы международной научно-технической конференции «Системные проблемы качества, математического моделирования, информационных и электронных технологий». М.: Радио и связь, 2003. С. 23 - 28.

3. КОЛМОГОРОВ А.Н. О представлении непрерывных функций нескольких переменных суперпозициями непрерывных функций меньшего числа переменных // ДАН СССР. 1956. Том 108. № 2.

i Надоели баннеры? Вы всегда можете отключить рекламу.