Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ
Запропоновано алгоритм постоптимального аналізу для визначення точних розв’язків сімейства споріднених задач про ранець, до яких належить вихідна задача. Обчислювальний експеримент показує, що середній час розв’язання задачі сімейства принаймні в десять разів менший за час розв’язання вихідної задач...
Gespeichert in:
| Datum: | 2011 |
|---|---|
| 1. Verfasser: | |
| Format: | Artikel |
| Sprache: | Russian |
| Veröffentlicht: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2011
|
| Schriftenreihe: | Проблемы управления и информатики |
| Schlagworte: | |
| Online Zugang: | https://nasplib.isofts.kiev.ua/handle/123456789/207376 |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Zitieren: | Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ / В.А. Михайлюк // Проблемы управления и информатики. — 2011. — № 6. — С. 43–51. — Бібліогр.: 9 назв. — рос. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| id |
irk-123456789-207376 |
|---|---|
| record_format |
dspace |
| spelling |
irk-123456789-2073762025-10-07T00:05:37Z Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ Розв’язання задачі про ранець: постоптимальний аналіз та метод гілок і меж Solving Knapsack Problem: Postoptimality Analysis and Branch and Bound Method Михайлюк, В.А. Оптимальное управление и методы оптимизации Запропоновано алгоритм постоптимального аналізу для визначення точних розв’язків сімейства споріднених задач про ранець, до яких належить вихідна задача. Обчислювальний експеримент показує, що середній час розв’язання задачі сімейства принаймні в десять разів менший за час розв’язання вихідної задачі методом гілок і меж. An algorithm of postoptimality analysis for determining exact solutions of a family of knapsack problems including an initial problem is proposed. Computational experiments show that the average time of solving a problem of the family is at least ten times less than the time of solving the initial problem by the branch and bound method. 2011 Article Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ / В.А. Михайлюк // Проблемы управления и информатики. — 2011. — № 6. — С. 43–51. — Бібліогр.: 9 назв. — рос. 0572-2691 https://nasplib.isofts.kiev.ua/handle/123456789/207376 519.854 10.1615/JAutomatInfScien.v43.i11.50 ru Проблемы управления и информатики application/pdf Інститут кібернетики ім. В.М. Глушкова НАН України |
| institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| collection |
DSpace DC |
| language |
Russian |
| topic |
Оптимальное управление и методы оптимизации Оптимальное управление и методы оптимизации |
| spellingShingle |
Оптимальное управление и методы оптимизации Оптимальное управление и методы оптимизации Михайлюк, В.А. Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ Проблемы управления и информатики |
| description |
Запропоновано алгоритм постоптимального аналізу для визначення точних розв’язків сімейства споріднених задач про ранець, до яких належить вихідна задача. Обчислювальний експеримент показує, що середній час розв’язання задачі сімейства принаймні в десять разів менший за час розв’язання вихідної задачі методом гілок і меж. |
| format |
Article |
| author |
Михайлюк, В.А. |
| author_facet |
Михайлюк, В.А. |
| author_sort |
Михайлюк, В.А. |
| title |
Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ |
| title_short |
Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ |
| title_full |
Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ |
| title_fullStr |
Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ |
| title_full_unstemmed |
Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ |
| title_sort |
решение задачи о ранце: постоптимальный анализ и метод ветвей и границ |
| publisher |
Інститут кібернетики ім. В.М. Глушкова НАН України |
| publishDate |
2011 |
| topic_facet |
Оптимальное управление и методы оптимизации |
| url |
https://nasplib.isofts.kiev.ua/handle/123456789/207376 |
| citation_txt |
Решение задачи о ранце: постоптимальный анализ и метод ветвей и границ / В.А. Михайлюк // Проблемы управления и информатики. — 2011. — № 6. — С. 43–51. — Бібліогр.: 9 назв. — рос. |
| series |
Проблемы управления и информатики |
| work_keys_str_mv |
AT mihajlûkva rešeniezadačiorancepostoptimalʹnyjanalizimetodvetvejigranic AT mihajlûkva rozvâzannâzadačíproranecʹpostoptimalʹnijanalíztametodgílokímež AT mihajlûkva solvingknapsackproblempostoptimalityanalysisandbranchandboundmethod |
| first_indexed |
2025-10-07T01:12:19Z |
| last_indexed |
2025-10-08T01:06:54Z |
| _version_ |
1845373818127777792 |
| fulltext |
© В.А. МИХАЙЛЮК, 2011
Международный научно-технический журнал
«Проблемы управления и информатики», 2011, № 6 43
УДК 519.854
В.А. Михайлюк
РЕШЕНИЕ ЗАДАЧИ О РАНЦЕ:
ПОСТОПТИМАЛЬНЫЙ АНАЛИЗ
И МЕТОД ВЕТВЕЙ И ГРАНИЦ
Проведение постоптимального анализа дискретных оптимизационных за-
дач [1–5] предусматривает решение следующих вопросов:
как изменится оптимальное решение конкретной задачи, если определен-
ным образом изменить значения ее коэффициентов;
каким образом использовать информацию, полученную при решении неко-
торой задачи тем или иным конкретным методом, для решения измененной задачи;
какую минимальную дополнительную информацию необходимо накопить
при решении исходной задачи для эффективного решения измененной задачи.
Областью применения постоптимального анализа является анализ деятельно-
сти некоторого реального процесса, описываемого моделью дискретной оптими-
зации, который лежит в основе различного рода нововведений. Кроме того, при
небольших изменениях в исходных данных модели дискретного программирова-
ния ведут себя, как правило, неустойчиво и непредсказуемо.
Постоптимальный анализ той или иной задачи дискретного программирова-
ния проводится на основе некоторого определенного подхода (метода), применяе-
мого для решения этой задачи. Известны процедуры постоптимального анализа за-
дач целочисленного программирования, основанные на методе отсечений Гомори,
на методе ветвей и границ [4]. При проведении постоптимального анализа можно
использовать приближенные методы, в частности методы локального поиска.
С постоптимальным анализом тесно связан параметрический анализ и вопро-
сы устойчивости дискретных задач оптимизации. При параметрическом анализе
используется семейство однотипных задач, отличающихся некоторым парамет-
ром (либо в целевой функции, либо в ограничениях). Что можно сказать об опти-
мальных решениях всего семейства, исходя из оптимальных решений задач неко-
торого подсемейства? При исследовании устойчивости изучаются вопросы такого
изменения исходных данных, которые не влияют на оптимальные решения.
Вопросы устойчивости, параметрического и постоптимального анализа рас-
сматривались в [3, 5].
В данной работе для решения задачи о ранце предлагается метод ветвей и
границ с использованием идей постоптимального анализа при решении семейства
родственных задач.
Общая схема метода ветвей и границ
Рассмотрим общую схему данного метода для задачи
)},({max)( 0 xfxf
Gx
(1)
множество G конечно, . NG
Алгоритм метода ветвей и границ основан на следующих построениях, поз-
воляющих уменьшить объем перебора [6].
1. Вычисление оценки. Пусть ,GG тогда )(G называется верхней оцен-
кой, если для любого 'Gx выполняется
).()( Gxf (2)
44 ISSN 0572-2691
2. Ветвление (разбиение множества G на подмножества). Положим
GG 0
и разобьем множество 0G на 1r непересекающихся подмножеств:
.,0,,...,,, 11
1
1011
2
1
1
1
1
jiGGGGGGG ji
r
i
ir
Этот шаг алгоритма считаем начальным, нулевым. Рассмотрим шаг алгорит-
ма с номером .k Пусть
k
r
kk
k
GGG ...,,, 21 — множества, еще не подвергавшиеся
разбиению. Выберем одно из этих множеств —
k
sG и разобьем его на непересе-
кающиеся подмножества:
.
1
,
r
t
k
ts
k
s GG
Выполним модификацию списка множеств, еще не подвергавшихся разбие-
нию. Заменим множество
k
sG множествами ,,
k
tsG и множества, еще не подвер-
гавшиеся разбиению, переобозначим: ....,,, 11
2
1
1
1
k
r
kk
k
GGG Эти множества обра-
зуют список задач для ветвления. Выберем одно из них и снова повторим проце-
дуру разбиения.
3. Пересчет оценок. Если ,21 GG то )}.({max)}({max
21
xfxf
GxGx
Поэтому,
разбивая в процессе ветвления подмножество GG ' на непересекающиеся под-
множества ,,...,,,
1
s21
s
i
iGGGGG
будем предполагать, что
),()( GGi (3)
при этом хотя бы для некоторых 0i выполняется строгое неравенство
).()(
0
GGi
4. Вычисление планов (допустимых решений). Для вычисления планов исполь-
зуются особенности решаемой задачи. Если на шаге ветвления с номером k изве-
стен план ,kx на шаге с номером )1( k — план ,1kx и если ),()( 1 kk xfxf
то план
kx игнорируется и вместо него сохраняется план .1kx Наилучшее из по-
лученных допустимых решений принято называть рекордом.
5. Признак оптимальности. Пусть ,
1
s
i
iGG
).1( slGx l Тогда план x
оптимален, т.е. ,0xx если выполняется условие ),()()( il GGxf
....,,2,1 si
6. Оценка точности приближенных решений. Пусть ,
1
s
i
iGG
0
)},({max
1
i
si
G
kx — рекорд, тогда имеет место неравенство
.)()( 0
0 xfxf k
(4)
Международный научно-технический журнал
«Проблемы управления и информатики», 2011, № 6 45
Разность )(0
kxf — оценка гарантированного отклонения рекорда
kx от
оптимума .0x Из приведенного неравенства следует, что для ветвления необхо-
димо выбрать множество с максимальным значением верхней оценки. При этом в
силу (3) обеспечивается уменьшение (точнее, неувеличение) величины и га-
рантируется получение не только точного, но и -приближенного )0( реше-
ния, если таковым считать решение, для которого .
7. Правило отсева. Пусть снова 0
1
, xGG
s
i
i
— оптимум,
kx — рекорд. Если
),()( k
r xfG (5)
то множество rG можно отсеять, т.е. исключить из рассмотрения, так как оно не
может содержать оптимальных решений. Более сильное правило
)()( k
r xfG (5)
гарантирует, что хотя бы одно оптимальное решение будет найдено, оно и приме-
няется при практическом решении задачи.
8. Конечность алгоритма. Конечность алгоритма следует из конечности
множества .G
Общая схема решения задачи
На начальном (первом) шаге процесса ветвления множество 0G записывает-
ся в список задач для ветвления. После выполнения процедуры ветвления список
модифицируется: в него вместо
0G записываются множества ....,,2,1, siGi Та-
кая модификация выполняется на каждом шаге процесса ветвления. Полученный
список обычно называют списком задач-кандидатов. Задача решена, если список
задач-кандидатов пуст, т.е. если все они отсеяны по правилам отсева. Алгоритм
метода ветвей и границ можно представить схемой:
1) в список задач-кандидатов записывается исходная задача;
2) если список пуст, то задача решена, иначе — переход к п. 3;
3) осуществляется выбор множества для ветвления;
4) выполняется ветвление и модифицируется список задач;
5) вычисляются оценки и находятся рекорды;
6) выполняется отсев множеств, не содержащих оптимальных решений, и про-
веряется признак оптимальности;
7) осуществляется переход к п. 2.
Особенности метода ветвей и границ для задачи о ранце
Введем множества iin
nnn xxxxxZB ,0|)...,,({,}1,0{ 1 — целые,
}....,,1 ni Одномерную булеву задачу о ранце рассмотрим в постановке
:)),,(( cbaR
:)},(|)(max{
1
baQxxcxf i
n
i
i
}.|{),(
1
bxaBxbaQ j
n
j
j
n
46 ISSN 0572-2691
Будем считать, что все ,ja jc и b — целые неотрицательные числа:
.,)...,,(,),...,( 1
11 ZbZcccZaaa n
n
n
n Известно, что задача ),,( cbaR
NP-полна [7]. Для векторов ,),...,,( 1
11
n
nn Zxxxx 1
11 ),...,,(
n
nn Zyyyy
введем метрику .||),(
1
0
i
n
i
i yxyx
Для применения к решению задачи R(a, b, c) метода ветвей и границ необхо-
димо указать способ получения верхней оценки для задач-кандидатов. Наряду
с задачей R(a, b, c) будем рассматривать непрерывную релаксацию CR(a, b, c) за-
дачи R(a, b, c), в которой условие
nBx заменено условием ),...,,( 1 nxxx
....,,1,10 nixi Предположим, что предметы, упорядоченные согласно условию
,...
2
2
1
1
n
n
a
c
a
c
a
c
(6)
последовательно заполняют ранец, пока не найдется первый предмет s, который
нельзя вставить (жадный алгоритм относительно последовательности (6)). Будем
называть этот предмет критическим пунктом, т.е. ,:min
1
bajs
j
i
i при этом
.1 ns Задача CR(a, b, c) может быть решена согласно свойству, установлен-
ному Данцигом (Dantzig, 1957) [8], которое сформулируем формально.
Теорема [8]. Оптимальное решение x задачи CR(a, b, c) есть
1jx при ,1...,,2,1 sj
0jx при ,...,,1 nsj
,
s
s
a
b
x
где ,
1
1
s
j
jabb s — критический пункт.
Таким образом, оптимальное решение )...,,( 1 nxxx задачи CR(a, b, c) тако-
во, что
.)(
1
1 s
s
s
j
j
a
c
bcxf
Поскольку все jj xc , — целые, верхняя оценка )(xf для R(a, b, c) имеет вид
,
1
1
1
s
s
s
j
j
a
c
bcU (7)
где ][a — наибольшее целое, не большее .a
Для решения задачи о ранце R(a, b, c) будем пользоваться верхней оцен-
кой (7) и применим алгоритм Хоровитца–Сани (Horowitz–Sahni algorithm) [8], ос-
новная идея которого состоит в следующем:
а) ветвление осуществляется по нефиксированной переменной jx согласно
упорядочению (6) и выбирается две задачи-кандидата );0,1( jj xx
Международный научно-технический журнал
«Проблемы управления и информатики», 2011, № 6 47
б) поиск продолжается вставкой предмета j (условие ),1jx т.е. согласно
жадной стратегии, соответствующей (6);
в) для вычисления верхних оценок задач-кандидатов используется оцен-
ка 1U (7).
Шаг-вперед состоит во вставке наибольшего множества предметов в текущее
решение, шаг-возврат состоит в отмене последнего вставленного предмета в те-
кущее решение. После того как выполнен шаг-вперед, вычисляется верхняя оцен-
ка ,1U соответствующая текущему решению, и сравнивается с наилучшим реше-
нием, чтобы проверить, получится ли лучшее решение. Если так, выполняется
шаг-вперед, иначе — шаг-возврат. После рассмотрения последнего предмета те-
кущее решение сформировано и проверяются дальнейшие его улучшения. Алго-
ритм останавливает свою работу, когда не может быть выполнен дальнейший
шаг-возврат.
Алгоритм с использованием постоптимального анализа
на основе метода ветвей и границ для задачи о ранце
Суть алгоритма состоит в использовании идей из [9] при установлении слож-
ности постоптимального анализа задачи о ранце (доказательство теоремы 4 [9]).
Пусть ,),...,,( 1
1
n
n Zbaaa а a такой, что 1),( aa (задачу ),,( cbaR
будем обозначать и так )).,(: caR Пусть },...,,2,1{ nN }...,,{11 kiiK — некото-
рая выборка из N объема ),1( nkk
n
n Bxxx )...,,( **
1
*
такой, что ...*
1
ix
,1... *
ki
x остальные координаты вектора
*x равны нулю. Пусть вектор
),...,,( ***
1
* baaa n такой, что 1,1... ***
1
kaaa jii k
при ,\ 1KNj
.* kb
Рассмотрим лемму 2 из [9]. Пусть
*x — оптимальное решение экземпляра I
задачи ).,( * caR Пусть для произвольного вектора 1 nZa имеем )(aT — пре-
образование вектора a с увеличением или уменьшением ровно одного его ком-
понента на единицу. Будем считать, что ),(aTa если после применения к a
преобразования Т получили вектор a (ясно, что ).1),( aa Если считать, что
компоненты вектора a ограничены сверху константой c, которая не зависит от
размерности задачи n, произвольный вектор a можно получить из вектора ,*a
применяя не более )1( nc преобразований :T
;...1* aaaa kTTT
(8)
где ),( *1 aTa ;1),( *1 aa ),(1 ii aTa ,1),( 1 ii aa ;1...,,1 ki ).1( nck
Пусть Knaps_HS )),,(( *0 xxa — процедура метода ветвей и границ Хоровитца-
Сани (HS) для задачи ),( caR с начальным приближением ,0x результат — век-
тор
*x (вектор c в названии процедуры опущен, поскольку он не меняется).
Алгоритм постоптимального анализа Postopt_Knaps для решения задачи о
ранце ),( caR можно записать в виде последовательности шагов.
Шаг 1. Применение приближенного полиномиального алгоритма для реше-
ния ),,( caR
*x — решение (приближенное).
48 ISSN 0572-2691
Шаг 2. Построение *a по
*x (согласно лемме 2 из [9]).
Шаг 3. ).( *1
aTa
Шаг 4. Если
*x — допустимое решение ),,( 1 caR то переходим на шаг 5,
иначе модификация (
*x )(modif (
*x )), переходим на шаг 5.
Шаг 5. Knaps_HS ),,( 1*1 xxa на шаг 6.
Шаг 6. .1:i
Шаг 7. ).(1 ii aTa
Шаг 8. Если
ix — допустимое решение ),,( 1 caR i то переходим на шаг 9,
иначе модификация (
ix )(modif(
ix )) и переходим на шаг 9.
Шаг 9. Knaps_HS ).,,( 11 iii xxa Если ,1 aa i
то конец
1( ix — опти-
мальное решение задачи ),,( 1 caR i иначе 1: ii и переходим на шаг 7.
Шаги 3–9 выполняются согласно (8).
Процедура модификация (z) (modif (z)) применяется, когда )...,,( 1 nzzz не
есть допустимое решение задачи ),( 1 caR i при некотором фиксированном i
).0( i
Для ),...,,,( 11
2
1
1
1 baaaa i
n
iii это возможно в одном из двух случаев:
а) для некоторого фиксированного j
1i
ja увеличивается на единицу
)1:( 11 i
j
i
j aa и при этом ;1jx
б) b уменьшается на единицу ).1:( bb
Определяем }1:{minarg
1
ii
ni
zcl и в обоих случаях положим .0lz
В шаге 1 можно применить любой алгоритм локальной оптимизации (напри-
мер, метод вектора спада [2]), либо жадные алгоритмы относительно последова-
тельностей (6) или (9):
....21 nccc (9)
Замечание 1. Уменьшение вычислительной сложности алгоритма Postopt_Knaps
основано на том, что на каждом шаге при решении ),( 1 caR i
мы используем оп-
тимальное решение предыдущей задачи
ix (Knaps_HS )),,,( 12 iii xxa что дает
возможность при отсеве вариантов использовать оценку )( ixf и отсеивать те ва-
рианты, верхняя оценка которых строго меньше ).( ixf
Приведем пример работы алгоритма Postopt_Knaps. При 4n рассмотрим
задачу о ранце ),,( caR где ).3,6,7,5(),9()9,7,5,3,2( cba
Согласно шагу 1 алгоритма для решения ),( caR применим жадный алгоритм
относительно последовательности (6), получим решение ).0,0,1,1(* x Со-
гласно шагу 2 )2,3,3,1,1(* a
*(x — точное решение задачи )).,( * caR Со-
гласно шагу 3 строим :)( *1 aTa увеличим на единицу координату
*
1a
);1:( *
1
*
1 aa ).2,3,3,1,2(1 a Согласно шагу 4
*x — уже недопустимое реше-
Международный научно-технический журнал
«Проблемы управления и информатики», 2011, № 6 49
ние ),( 1 caR ),2312( применяем modif ).( *x В нашем случае 1l и поло-
жим 01 xxl (решение стало (0, 1, 0, 0)). Шаг 5 это решение не изменит. Рас-
смотрим задачи 1–16:
задача 1 — это ),,( 1 caR )3,6,7,5(),2,3,3,1,2(1 ca (вектор c в даль-
нейшем не изменяется, и мы его опускаем) с оптимальным решением
);0,0,1,0(1 x
задача 2: ),,( 2 caR )2,3,3,2,2(2 a с оптимальным решением 2x
);0,0,1,0(
задача 3: );0,0,0,1(),2,3,3,3,2(),,( 333 xacaR
задача 4: );0,0,0,1(),2,3,4,3,2(),,( 444 xacaR
задача 5: );0,0,0,1(),2,3,5,3,2(),,( 555 xacaR
задача 6: );0,0,0,1(),2,4,5,3,2(),,( 666 xacaR
задача 7: );0,0,0,1(),2,5,5,3,2(),,( 777 xacaR
задача 8: );0,0,0,1(),2,6,5,3,2(),,( 888 xacaR
задача 9: );0,0,0,1(,)2,7,5,3,2(),,( 999 xacaR
задача 10: );0,0,1,0(),3,7,5,3,2(),,( 101010 xacaR
задача 11: );0,0,1,0(),4,7,5,3,2(),,( 111111
xacaR
задача 12: );0,0,1,1(),5,7,5,3,2(),,( 122̀112 xacaR
задача 13: );0,0,1,1(),6,7,5,3,2(),,( 131313 xacaR
задача 14: );0,0,1,1(),7,7,5,3,2(),,( 141414 xacaR
задача 15: );0,1,1,0(),8,7,5,3,2(),,( 151515 xacaR
задача 16 (исходная): ).0,1,1,0(),9,7,5,3,2(),,( 161616 xacaR
Таким образом, с помощью шагов 6–9 мы получили последовательность за-
дач 2–16, кроме того, в результате работы алгоритма точно решена исходная за-
дача и, кроме того, найдены точные решения 15-ти родственных задач.
Вычислительный эксперимент
В системе программирования Borland C++ Builder 6 под управлением ОС Mi-
crosoft Windows XP на персональном компьютере с микропроцессором Intel
Celeron 1200 MHz проведен вычислительный эксперимент. Согласно [8] применя-
лись данные трех типов:
некоррелированные данные: jc и ja равномерно распределены на [1, ];
слабо коррелированные данные: ja равномерно распределены на [1, ];
jc равномерно распределены на ];,[ rara jj
сильно коррелированные данные: ja равномерно распределены на [1, ],
.rac jj
Увеличение степени коррелированности означает уменьшение значения раз-
ности
j
j
jj
j
j a
c
a
c
minmax и, следовательно, увеличение ожидаемой вычисли-
тельной сложности соответствующих задач. Потребностям практики больше от-
50 ISSN 0572-2691
вечают слабо коррелированные задачи. Рассматривались случаи 2b и
n
j
jab
1
5,0 ).10,100( r В первом случае оптимальное решение содержало
«незначительное» количество единиц и сгенерированные задачи оказались легче,
чем во втором случае, где в оптимальном решении около половины единиц. Для
каждого случая в результатах вычислительного эксперимента (таблица) было
проведено усреднение по десяти задачам, время измеряется в секундах. В таблице
строки 2–7 соответствуют некоррелированным данным, строки 8–13 — слабо
коррелированным данным, а строки 14–18 — сильно коррелированным данным.
Таблица
Вместимость
ранца (b)
Размерность
задачи (n)
Метод ветвей
и границ (Knaps_HS),
время решения
исходной задачи
Алгоритм постоптимального анализа
(Postopt_Knaps)
Суммарное
время
решения задач
семейства
Количество
задач
в семействе
Среднее
время реше-
ния задачи
2b
50 0,008 0,08 820 0,000097
100 0,01 0,25 3576 0.000069
200 0,01 1,22 17407 0.000070
300 0,016 5,11 38512 0,00013
400 0,017 11,40 72270 0,00016
jab 5,0 50 0,81 29,26 1009 0,029
2b
50 0,012 0,18 951 0,00019
100 0,012 2,93 4181 0,00070
200 0,012 13,37 16519 0,00081
300 0,014 50,20 41984 0,0012
400 0,016 99,67 75043 0,0013
jab 5,0 50 6,03 238,92 1185 0,20
2b
50 0,02 1,51 797 0,0019
100 0,086 30,61 3826 0,008
200 0,036 59,33 16951 0,0035
300 0,12 504,36 42030 0,012
jab 5,0 50 5,57 227,04 1032 0,22
Установлен лимит времени — 600 с (10 мин), в результатах вычислительного
эксперимента это отражено отсутствием соответствующих данных в таблице. Ес-
ли проанализировать результаты эксперимента, то в любом случае можно конста-
тировать, что среднее время решения одной задачи семейства задач в алгоритме
Postopt_Knaps в десять раз меньше решения соответствующей основной исходной
задачи алгоритма Knaps_HS. Более эффективным представляется использование
алгоритма Postopt_Knaps, когда в оптимальном решении исходной задачи «незна-
чительное» количество единиц. Таким образом, алгоритм Postopt_Knaps решает
не только одну основную исходную задачу, а целое семейство родственных задач;
среднее время решения одной задачи семейства на порядок меньше времени ре-
шения основной исходной задачи.
Замечание 2. Данный подход можно применить к любой дискретной оптими-
зационной задаче, условия которой удовлетворяют условиям работы [9] (напри-
мер, к задаче о покрытии множествами).
Международный научно-технический журнал
«Проблемы управления и информатики», 2011, № 6 51
В.О. Михайлюк
РОЗВ’ЯЗАННЯ ЗАДАЧІ ПРО РАНЕЦЬ:
ПОСТОПТИМАЛЬНИЙ АНАЛІЗ
ТА МЕТОД ГІЛОК І МЕЖ
Запропоновано алгоритм постоптимального аналізу для визначення точних
розв’язків сімейства споріднених задач про ранець, до яких належить вихідна
задача. Обчислювальний експеримент показує, що середній час розв’язання
задачі сімейства принаймні в десять разів менший за час розв’язання вихідної
задачі методом гілок і меж.
V.A. Mikhailyuk
SOLVING KNAPSACK PROBLEM:
POSTOPTIMALITY ANALYSIS
AND BRANCH AND BOUND METHOD
It is proposed an algorithm of postoptimality analysis for determining exact solutions
of family of knapsack problems including an initial problem. Computational experi-
ment shows that the middle time of solving the problem of family at least 10 times
less than time of solving initial problem by branch and bound method.
1. Козерацкая Л.Н., Лебедева Т.Т., Сергиенко И.В. Вопросы устойчивости, параметрический и
постоптимальный анализ задач дискретной оптимизации // Кибернетика. — 1983. —
№ 4. — С. 71–80.
2. Сергиенко И.В., Шило В.П. Задачи дискретной оптимизации. Проблемы, методы решения,
исследования. — Киев : Наук. думка, 2003. — 261 с.
3. Geoffrion A.M., Nauss R. Parametric and postoptimality analysis in integer linear programming //
Management Sci. — 1977. — 23, N 5. — P. 453–466.
4. Roodman G.M. Postoptimality analysis in zero one programming by implicit enumeration // Na-
val Res. Logist. Quart. — 1972. — 19, N 3. — P. 435–447.
5. Greenberg H.J. An annotated bibliography for post-solution analysis in mixed integer program-
ming and combinatorial optimization // D.L. Woodruff (ed.) Advances in computational and sto-
chastic optimization, logic programming, and heuristic search. — N.Y. : Kluwer Academ. Publ.,
1998. — P. 97–148.
6. Сигал И.Х., Иванова А.П. Введение в прикладное дискретное программирование: модели и
вычислительные алгоритмы: Уч. пособие. — М. : Физматлит, 2003. — 240 с.
7. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. — М. : Мир,
1982. — 416 с.
8. Martello S., Toth P. Knapsack problems. Algorithms and computer implementations. — Chiches-
ter, England : John Wiley & Sons Ltd, Baffins Lane, 1990. — 296 p.
9. Михайлюк В.А. Общий подход к оценке сложности постоптимального анализа дискретных
задач оптимизации // Кибернетика и системный анализ. — 2010. — 46, № 2. — С. 134–141.
Получено 04.07.2011
Статья представлена к публикации членом редколлегии И.В. Сергиенко.
|