УДК
519.6
А
.
А
.
БОСОВ
,
А
.
В
.
ГОРБОВА
(
ДИИТ
),
Н
.
В
.
ХАЛИПОВА
(
Академия
таможенной
службы
Украины
)
ОБОСНОВАНИЕ
ЭВРИСТИЧЕСКОГО
АЛГОРИТМА
В
ЗАДАЧЕ
О
РАНЦЕ
Введение: Сформированазадачаоранцевтерминахфункциймножестваиприведенэвристическийал
-горитм. Цель: доказательствотого, чтоэвристическийалгоритмявляетсянеобходимым условием. Некото
-рыефактыизработы [2]. ПоказанаэквивалентностьпределапоследовательностипоЭ. Борелюисходимо
-стьюпомере. Доказанатеоремаонеобходимостимаксимумафункциимножества. Ситуациидостаточно -стиалгоритма: Приведены три ситуации, когда эвристический алгоритм является достаточным. Контр -пример: Приведенконтрпримеризработы [1] иданодобавление вэвристическийалгоритм, чтопозволяет получатьрешениезадачиоранце. Векторнаяоптимизация: Сзадачейоранцезавязываетсязадачавектор
-нойоптимизации инвестированиямероприятий. Выводы: Предложеналгоритмрешения задачи оранцеи для аддитивных функцийалгоритм определения Парето решения задачи векторной оптимизации подвум показателям. Приложение: Приведенапрограммавсреде Maple решениязадачиоранце.
Ключевые слова:задачаоранце, функциимножества, векторнаяоптимизация, задачаинвестирования
Введение
Пусть Ω = ω ω{ ,1 2,...,ωn} перечень предме -тов, для каждого ωi сопоставляется да числа
( )
i i
p = ωp , ценностьпредмета ωi и mi =m( )ωi
– масса (вес) предмета ωi.
Необходимо найти такой перечень предме -тов A∈ Ω, чтобы
( ) ( )
A
P A p
ω∈
=
∑
ω , (1)былобымаксимальнымивыполнялосьусловие
( ) ( )
A
M A m M
ω∈
=
∑
ω ≤ , (2)где M – максимальная массапредметов, кото -раяможетбытьпомещенавранце.
Вработе [1] приводитсяалгоритм:
Для каждого предмета ω ∈Ωi вычисляется ( )
( )
i i
i
p m
ω λ =
ω .
1. Множество Ω упорядочиваем согласно правилу
1 2 ... n
λ ≥ λ ≥ ≥ λ ; 2. F: 0= ; : {}A = ; 3. M0 =M ;
4. for i from 1 to n do 5. if M0≥M then
6. :A A= union{ }ωi ; M0:=M m0− i; :F = +F pi; 7. end if
8. End do
9. Print ( , )A F .
Данному алгоритму в работе [1] предпосы -лается: «Разумнымкажетсявкладыватьвранец те предметы, для которых удельная стоимость максимальна».
Целью данной работы является доказа -тельствотого, чтопредполагаемоеутверждение не только «разумно», но представляет собой необходимоеусловиерешениязадачиоранце.
Некоторыефактыизработы [2]
Ради замкнутости изложения приводим не -которыефактыизработы [2].
Полагаем ( )Ξ Ω – алгебра подмножеств множества Ω, а отображение ( )Ξ Ω ⎯⎯→F R, определяем как функцию множества ( )F A для любого ( )A∈Ξ Ω . Среди функций множества определенных на ( )Ξ Ω выбираю функцию
( )A
µ соследующимисвойствами: 1. ( ) 0µ A ≥ , ( )∀ ∈Ξ ΩA .
2. Если ( ) 0µ A = , то {}A= ;
3. (µ A B∪ )= µ( )A + µ( )B − µ(A B∩ );
4. Если B является пределом любой после -довательности множеств { }Bn , n=1,2,..., то
lim ( )n ( )
n→∞µ B = µ B .
Таким образом, определенную функцию множества ( )µ A будем называть мерой на ал -гебре ( )Ξ Ω .
lim ( n) 0
n→∞µ ∆B B = , (3)
где ∆ - операция симметрической разности двухмножеств.
Соотношение (3) можно положить в основу определения предела последовательности мно -жеств.
Имеетместо
Теорема 1. Если Bn предел по Борелю по -следовательности { }Bn , a B – пределвсмысле (3), то из существования предела Bn следует существование B и из существования B сле -дует существование предела, Bn и они совпа -дают.
Данная теорема позволяет отказаться от весьма громоздкого определения предела по Борелю, апользоватьсясоотношение (3).
Определение 1. Под производной от функ -ции множества ( )F A по мере ( )µ A на после -довательности { }Bn будемпониматьпредел
( ) ( ) lim
( ) ( )
n
n n
F A B F A a A B A
→∞
∆ −
= µ ∆ − µ
изаписыватьввиде
{ } ( ) n B B dF A a dµ → .
Естественно, возникает вопрос: «Когда су -ществуетданнаяпроизводная?».
Ответом на данный вопрос является требо -вание, чтобы функция ( )F A была бы непре -рывной, тоесть длялюбойпоследовательности { }An сходящиесяк A имеетместо
lim ( )n ( )
n→∞F A =F A .
Если { }Bn сходится к множеству B. Тогда для непрерывной функции ( )F A производная помереравна
{ }
( ) ( ) ( ) ( ) ( )
n
B B
dF A F A B F A
d → A B A
∆ − =
µ µ ∆ − µ . (4)
Теорема 2. Если на множестве A функция ( )
F A принимает максимальное значение, то с необходимостьюимеетместо
{ } { } ( ) 0 n B A dF A
dµ → ω ⊂ ≥ .
Доказательство. Пусть на A функция
гда
( n) ( ) 0 F A B∆ −F A ≤ .
Не ограничивая общности рассмотрения, считываем что множества Bn начиная с неко -торого номера принадлежит множеству A, то -гда
(A Bn) ( )A ( )A ( )Bn
µ ∆ − µ = µ − µ −
2 (A Bn) ( )A ( )Bn
− µ ∩ − µ = −µ ,
ипотомуотношение
( ) ( ) 0 ( ) ( )
n n
F A B F A A B A
∆ −
≥
µ ∆ − µ .
Вычислив предел при n→ ∞ получаем до -казательствотеоремы 2.
ВведемфункциюЛагранжа
(
)
( ) ( ) ( ) L A =P A +t M M A− ,
производная, которойпомере ( )µ A существует и задача (1), (2) сводится к максимизации
( )
L A ,чтовсилутеоремы 2 дает
{ } { } ( )
( ) ( ) 0
n
B A
dF A
p tm
dµ → ω ⊂ = ω − ω ≥ .
Откудаполучаем, чтомножество A состоит
изтаких ω∈Ω, прикоторых ( ) ( ) p t m ω ≥ ω .
А множитель Лагранжа tпринимает мини -мально возможное таким, чтобы выполнялось соотношение (2). Полученный результат, по -зволяетэвристический алгоритм решениязада -чи о ранце считатьнеобходимым и тем самым ислово «эвристический» можноотбросить.
Ситуациидостаточностиалгоритма
Неограничивая общностирассмотрениябу -дем считать, что нумерация предметовво мно -жестве Ω такова, чтоимеетместо:
1 2
( ) ( ) ... ( n) p ω ≥ ω ≥ ≥p p ω .
Укажем некоторые ситуации, когдапредло -женный алгоритм является, не только необхо -дим, ноидостаточным.
c1: Пусть m( ) constω =i , i=1,n.
c2: Если m( )ω ≥1 m(ω ≥ ≥2) ... m(ωn), этого достаточно.
c3: Еслипринекотором t имеетместо
( ) ( ) m ω =M A
Первыедвеситуациис1 ис2 очевидны. Рас -смотримситуациюс3. Вэтойситуации, множе -ство At представляетсобой
{
; ( )}
( )
t p
A = ω∈Ω ω m ω ≥t .
Пусть существуеттакое ω ∉0 At, что можно заменить ω∉At, на ω0 и соотношение (5) не будет нарушено. Но так как p( )ω ≥ ωp( 0), то значение P для измененного At будетменьше
( )t
P A , чтоидоказываетдостаточность (5).
Контрпример
Вработе [1] приводитсяконтрпример, когда Ω состоит из двух предметов { ,ω ω1 2} и
1 ( ) 200
m ω = , p( ) 190ω =1 , m(ω =2) 1, p(ω =2) 5, аемкостьранца M A( ) 200= .
Чтобы учесть и такую ситуацию, предлага -ется приведенный алгоритм пополнить сле -дующим:
п1: Вычисляем
( ) P P
ω∈Ω
=
∑
ω .п2: Удаляем последовательно из Ω такие предметы, укоторых ( )p ω минимальна, дотех пор пока ( )M A не станет меньше или равным
( ) M A .
п3: Если Lopt =At⊆ Ω, L1opt – множество, построенное по приведенному алгоритму, то тогда выбираем такое множество Lopt или
opt 1
L , укоторого P максимально.
Таким образом, алгоритм позволяет нахо -дитьрешениевзадачеоранце.
Векторнаяоптимизация
Заметим, чтосзадачейо ранце (1), (2) мож -но связать задачу о векторной оптимизации в виде
( )
max ( )
P A M A
⎛ ⎞
→ ⎜− ⎟
⎝ ⎠
приусловии ( )A∈Ξ Ω .
Решениеданнойзадачисводитсяк построе -нию множества At определяемого следующим образом
{
; ( )}
( )
t p
A = ω∈Ω ω m ω ≥t .
Тогда ( )P At и M A( )t получаемкак некото -рые функции параметра t≥0, в пространстве функционалов зависимости P от M качест -венныйхарактеримеетвид:
Рис. 1. Качественнаязависимость P от M
Ипозаданному M0 определяеммаксималь -но возможное P. Если зададимся P, то нахо -дим минимально необходимую вместимость ранца (рис. 1).
Взаключениеотметим, чтоприусловии, ко -гда ( )P A и ( )M A являются аддиативными функциями, то предложенныйалгоритмснеоб -ходимостью определяет Парето решение соот -ветствующейзадачивекторнойоптимизации.
Выводы
Доказано необходимость эвристического алгоритма и дано его усовершенствование ре -шения задачи о ранце. Для аддитивных функ -ций предложен алгоритм определения Парето решения задачи векторной оптимизации по двумпоказателям.
БИБЛИОГРАФИЧЕСКИЙСПИСОК 1. Лазарев, А. А. Теориярасписаний, задачииал
-горитмы [Текст] / А. А. Лазарев, Е. Р. Гафаров. –
М. : МГУим. М. В. Ломоносова, 2011. – С. 222. 2. Босов, А. А. Функциимножестваиихпримене
-ние [Текст] / А. А. Босов. – Днепродзержинск:
Вид. дім «Андрій», 2007. – 182 с.
Приложение
ПРОГРАММАВСРЕДЕ MAPLE РЕШЕНИЯЗАДАЧИОРАНЦЕ (Рациональноеинвестирование)
> restart:with(linalg):with(plots):
n:=12;Числопредметов(числомероприятий).
Warning, the protected names norm and trace have been redefined and unprotected
Warning, the name changecoords has been redefined
:=
n 12
> Mr:=534;Вместимостьранца(Распологаемыефинансы).
:=
Mr 534
> m:=[52,56,65,54,75,50,70,84,60,52,65,67];Массыпредметов(затратыпомероприятиям).
:=
m [52 56 65 54 75 50 70 84 60 52 65 67, , , , , , , , , , , ]
> p:=[164,163,165,165,191,160,182,184,164,165,167,168];Ценностьпредметов(прибыльот мероприятий).
:=
p [164 163 165 165 191 160 182 184 164 165 167 168, , , , , , , , , , , ]
> t:=[seq(p[i]/m[i],i=1..n)];
:=
t ⎡ ⎣
⎢⎢41, , , , , , , , , , , ⎤⎦⎥⎥
13 163
56 33 13
55 18
191 75
16 5
13 5
46 21
41 15
165 52
167 65
168 67
> ttmin:=sort(t,`>`);
:=
ttmin ⎡ ⎣
⎢⎢16, , , , , , , , , , , ⎤⎦⎥⎥
5 165
52 41 13
55 18
163 56
41 15
13 5
167 65
191 75
33 13
168 67
46 21
> W:=[]:for i from 1 to n do for j from 1 to n do if ttmin[i]=t[j] then W:=[op(W),w[j]] end if: end do: end do;print(W);
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11,
w
5,
w
3,
w
12,
w
8]
>
PP:=array(1..n,[]);MM:=array(1..n,[]);LL:=array(1..n,[]);LLL:=array(1..n,[]);
:=
PP array(1 12 [ ].. , ) :=
MM array(1 12 [ ].. , ) :=
LL array(1 12 [ ].. , ) :=
LLL array(1 12 [ ].. , )
> k:=0:L:=[]:LL:=[]:P:=0:M:=0:for z in W do k:=k+1:
L:=[op(L),z]:P:=P+p[op(1,z)]:M:=M+m[op(1,z)]:print(L,`P=`,P,`M=`,M):PP[k]:=P: MM[k]:=M:LL:=[op(LL),L] end do:
,
,
,
,
[
w
6]
P=
160
M=
50
,
,
,
,
[
w
6,
w
10]
P=
325
M=
102
,
,
,
,
[
w
6,
w
10,
w
1]
P=
489
M=
154
,
,
,
,
[
w
6,
w
10,
w
1,
w
4]
P=
654
M=
208
,
,
,
,
[
w
6,
w
10,
w
1,
w
4,
w
2]
P=
817
M=
264
,
,
,
,
,
,
,
,
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7]
P=
1163
M=
394
,
,
,
,
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11]
P=
1330
M=
459
,
,
,
,
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11,
w
5]
P=
1521
M=
534
,
,
,
,
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11,
w
5,
w
3]
P=
1686
M=
599
,
,
,
,
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11,
w
5,
w
3,
w
12]
P=
1854
M=
666
,
,
,
,
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11,
w
5,
w
3,
w
12,
w
8]
P=
2038
M=
750
>
> for ii from 1 to n do if Mr>=MM[ii] then
Mopt:=MM[ii]:Popt:=PP[ii]:Lopt:=LL[ii] end if: end do;
> print(`Lopt=`,Lopt,`Popt=`,Popt,`Mopt=`,Mopt);
,
,
,
,
,
Lopt=
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11,
w
5]
Popt=
1521
Mopt=
534
> P1:=array(1..n,[]);M1:=array(1..n,[]);
:=
P1 array(1 12 [ ].. , ) :=
M1 array(1 12 [ ].. , )
> LLL:=[LL[n]]:i2:=1:P1[i2]:=P:M1[i2]:=M:for i from 1 to n-1 do fmin:=10000:k:=0:for j from 1 to n do k:=k+1: if L[j]<>h then if
fmin>=p[op(1,L[j])] then fmin:=p[op(1,L[j])]:jmin:=op(1,L[j]):jj:=k: end if: end if: end do;print(fmin,m[jmin]):L[jj]:=h:LLL:=[op(LLL),L]:i2:=i2+1:M:=M-m[jmin]:P:=P-p[jmin]:print(L,P,M);P1[i2]:=P:M1[i2]:=M: end do:
, 160 50
,
,
[
h w
,
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11,
w
5,
w
3,
w
12,
w
8]
1878 700
, 163 56
,
,
[
h w
,
10,
w
1,
w
4, ,
h w
9,
w
7,
w
11,
w
5,
w
3,
w
12,
w
8]
1715 644
, 164 60
,
,
[
h w
,
10,
w
1,
w
4, , ,
h h w
7,
w
11,
w
5,
w
3,
w
12,
w
8]
1551 584
, 164 52
,
,
[
h w
,
10, ,
h w
4, , ,
h h w
7,
w
11,
w
5,
w
3,
w
12,
w
8]
1387 532
, 165 65
,
,
[
h w
,
10, ,
h w
4, , ,
h h w
7,
w
11,
w
5, ,
h w
12,
w
8]
1222 467
, 165 54
,
,
[
h w
,
10, , , , ,
h h h h w
7,
w
11,
w
5, ,
h w
12,
w
8]
1057 413
, 165 52
,
,
[
h h h h h h w
, , , , , ,
7,
w
11,
w
5, ,
h w
12,
w
8]
892 361
, 167 65
,
,
[
h h h h h h w
, , , , , ,
7, ,
h w
5, ,
h w
12,
w
8]
725 296
,
,
[
h h h h h h w
, , , , , ,
7, ,
h w
5, , ,
h h w
8]
557 229
, 182 70
,
,
[
h h h h h h h h w
, , , , , , , ,
5, , ,
h h w
8]
375 159
, 184 84
,
,
[
h h h h h h h h w
, , , , , , , ,
5, , ,
h h h
]
191 75
> for kk from n by -1 to 1 do if Mr>=M1[kk] then
M1opt:=M1[kk]:P1opt:=P1[kk]:L1opt:=LLL[kk]: end if: end do;print(`L1opt=`,L1opt,`P1opt=`,P1opt,`M1opt=`,M1opt);
,
,
,
,
,
L1opt=
[
h w
,
10, ,
h w
4, , ,
h h w
7,
w
11,
w
5,
w
3,
w
12,
w
8]
P1opt=
1387
M1opt=
532
> if P1opt>Popt then print(`L1opt=`,L1opt,`P1opt=`,P1opt,`M1opt=`,M1opt) else print(`Lopt=`,Lopt,`Popt=`,Popt,`Mopt=`,Mopt): end if:
,
,
,
,
,
Lopt=
[
w
6,
w
10,
w
1,
w
4,
w
2,
w
9,
w
7,
w
11,
w
5]
Popt=
1521
Mopt=
534
>
А
.
А
.
БОСОВ
,
А
.
В
.
ГОРБОВА
,
Н
.
В
.
ХАЛІПОВА
(
ДІІТ
)
ОБҐРУНТУВАННЯ
ЕВРИСТИЧНОГО
АЛГОРИТМУ
В
ЗАДАЧІ
ПРО
РАНЦІ
Вступ: Сформована завданняпро ранці в термінах функцій множини і приведенийевристичний алгоритм. Мета: доказ того, що евристичний алгоритм є необхідною умовою. Деякі факти з роботи [2]. Показана еквівалентністьграниціпослідовностіпоЕ. Борелюізбіжністюпомірі. Доведенотеоремупронеобхідністьмакси
-муму функції безлічі. Ситуації достатності алгоритму: Наведено три ситуації, коли евристичний алгоритм є достатнім. Контрприклад: Наведено контр прийме з роботи [1] і дано додавання в евристичнийалгоритм, що дозволяєотримуватирішеннязадачіпроранці. Векторнаоптимізація: Іззавданнямпроранцізав'язуєтьсязавдання векторноїоптимізаціїінвестуваннязаходів. Висновки: запропонованоалгоритмрішеннязадачіпроранціідляади
-тивнихфункційалгоритмвизначенняПареторішеннязадачівекторноїоптимізаціїзадвомапоказниками. Додаток:
наведенапрограмавсередовищі Maple рішеннязадачіпроранці.
Ключові слова: задачапроранці, функціїмножини, векторнаоптимізація, завданняінвестування
А
.
А
. B
О
S
О
V,
А
. V. G
О
RB
О
V
А
, N. V. KHALIPOV
А
(DII
Т
)
SUBSTANTIATION OF A HEURISTIC ALGORITHM IN THE KNAPSACK PROBLEM
Introduction: Formed knapsack problem in terms of set functions and is a heuristic algorithm. The goal: toprove that the heuristic algorithm is essential. Some facts from [2]. The equivalence of the limit order to E.Borelyu and convergence in measure. The theorem about the need to set a maximum of function. The situation is quite the algorithm: We present three cases where a heuristic algorithm is sufficient. Counterexample: An Rear take from [1], and given the addition heuristic algorithm, which allows to obtain the solution of the knapsack problem. Vector optimization: With the knapsack problem is tied vector optimization of investment activities. Conclusions: The proposed algorithm for solving the knapsack problem and for additive functions algorithm for Pareto solutions of vector optimization for the two indicators. Appendix: an agenda for the Maple solutions knapsack problem.