• No results found

Substantiation of a heuristic algorithm in the knapsack problem

N/A
N/A
Protected

Academic year: 2020

Share "Substantiation of a heuristic algorithm in the knapsack problem"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

УДК

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 M0M then

6. :A A= union{ }ωi ; M0:=M m0i; :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 будем называть мерой на ал -гебре ( )Ξ Ω .

(2)

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) ... mn), этого достаточно.

c3: Еслипринекотором t имеетместо

( ) ( ) m ω =M A

(3)

Первыедвеситуациис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 с.

(4)

Приложение

ПРОГРАММАВСРЕДЕ 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

,

,

,

,

(5)

,

,

,

,

[

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

(6)

,

,

[

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: to

prove 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.

References

Related documents

While the International Physical Activity Questionnaire (IPAQ) evaluates physical activity level as metabolic equivalents (METS) in single items, DSPAEQ evaluates physical

 producing a current by moving a wire through a magnetic field. 

To determine the effects of concept mapping strategy on the students’ argumentative writing, the level of essay writing of the experimental and control groups students’ before

The practical reasons previously mentioned justify the study of mechanisms for bird species identification. In this paper we focus on the automatic identification of bird species

 The greater the difference the more polar the covalent bond is, the shared electrons spend more time around the more electronegative element... Sharing

In order to explain the par- ticular behavior of ethanolamine salts of nitro- and chlo- ronitrobenzoic acids in biological test, a theoretical study regarding the chemical

This conclusion is also confirmed by the occurring in this spectrum the peak correlation at 7.86  ppm/52.1  ppm between the proton signal assigned to triazole ring (CH group) and