Научная статья на тему 'Обоснование эвристического алгоритма в задаче о ранце'

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

CC BY
245
33
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАДАЧА ПРО РАНЦі / ФУНКЦії МНОЖИНИ / ВЕКТОРНА ОПТИМіЗАЦіЯ / ЗАВДАННЯ іНВЕСТУВАННЯ / ЗАДАЧА О РАНЦЕ / ФУНКЦИИ МНОЖЕСТВА / ВЕКТОРНАЯ ОПТИМИЗАЦИЯ / ЗАДАЧА ИНВЕСТИРОВАНИЯ / KNAPSACK PROBLEM / SET FUNCTIONS / VECTOR OPTIMIZATION / THE TASK OF INVESTING

Аннотация научной статьи по математике, автор научной работы — Босов А. А., Горбова А. В., Халипова Н. В.

Введение: Сформирована задача о ранце в терминах функций множества и приведен эвристический алгоритм. Цель: доказательство того, что эвристический алгоритм является необходимым условием. Некоторые факты из работы [2]. Показана эквивалентность предела последовательности по Э. Борелю и сходимостью по мере. Доказана теорема о необходимости максимума функции множества. Ситуации достаточности алгоритма: Приведены три ситуации, когда эвристический алгоритм является достаточным. Пример: Приведен контрпример из работы [1] и дано добавление в эвристический алгоритм, что позволяет получать решение задачи о ранце. Векторная оптимизация: С задачей о ранце завязывается задача векторной оптимизации инвестирования мероприятий. Выводы: Предложен алгоритм решения задачи о ранце и для аддитивных функций алгоритм определения Парето решения задачи векторной оптимизации по двум показателям. Приложение: Приведена программа в среде Maple решения задачи о ранце.

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

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.

Текст научной работы на тему «Обоснование эвристического алгоритма в задаче о ранце»

УДК 519.6

А. А. БОСОВ, А. В. ГОРБОВА (ДИИТ), Н. В. ХАЛИПОВА (Академия таможенной службы Украины)

ОБОСНОВАНИЕ ЭВРИСТИЧЕСКОГО АЛГОРИТМА В ЗАДАЧЕ О РАНЦЕ

Введение: Сформирована задача о ранце в терминах функций множества и приведен эвристический алгоритм. Цель: доказательство того, что эвристический алгоритм является необходимым условием. Некоторые факты из работы [2]. Показана эквивалентность предела последовательности по Э. Борелю и сходимостью по мере. Доказана теорема о необходимости максимума функции множества. Ситуации достаточности алгоритма: Приведены три ситуации, когда эвристический алгоритм является достаточным. Контрпример: Приведен контрпример из работы [1] и дано добавление в эвристический алгоритм, что позволяет получать решение задачи о ранце. Векторная оптимизация: С задачей о ранце завязывается задача векторной оптимизации инвестирования мероприятий. Выводы: Предложен алгоритм решения задачи о ранце и для аддитивных функций алгоритм определения Парето решения задачи векторной оптимизации по двум показателям. Приложение: Приведена программа в среде Maple решения задачи о ранце.

Ключевые слова: задача о ранце, функции множества, векторная оптимизация, задача инвестирования

Введение

Пусть Q = {(Oj,ю2,...,юп} перечень предметов, для каждого oi сопоставляется да числа pt = p(oi), ценность предмета oi и mi = m(oi) - масса (вес) предмета oi.

Необходимо найти такой перечень предметов A eQ, чтобы

P( A) = Х Р (o), (1)

oe A

было бы максимальным и выполнялось условие M(A) = £ m(o) < M, (2)

ЮЕ A

где M - максимальная масса предметов, которая может быть помещена в ранце. В работе [1] приводится алгоритм: Для каждого предмета oi e Q вычисляется

х = Р(0) 1 m(ai)

1. Множество Q упорядочиваем согласно правилу

^ 2 >... >Хп;

2. F := 0; A := {};

3. M0 = M ;

4. for i from 1 to n do

5. if M0 >M then

6. A:=Aunion{oi}; M0:=M0-mi; F := F + pi;

7. end if

8. End do

9. Print (A, F).

Данному алгоритму в работе [1] предпосылается: «Разумным кажется вкладывать в ранец те предметы, для которых удельная стоимость максимальна».

Целью данной работы является доказательство того, что предполагаемое утверждение не только «разумно», но представляет собой необходимое условие решения задачи о ранце.

Некоторые факты из работы [2]

Ради замкнутости изложения приводим некоторые факты из работы [2].

Полагаем S(Q) - алгебра подмножеств

множества Q, а отображение S(Q) —R, определяем как функцию множества F(A) для любого A е S(Q). Среди функций множества определенных на S(Q) выбираю функцию A) со следующими свойствами:

1. A) > 0, VA eS(Q).

2. Если ц( A) = 0, то A = {};

3. ц(A U B) = ц(A) + ц(B) - ц(A П B);

4. Если B является пределом любой последовательности множеств {Bn}, п = 1,2,..., то lim^(Bn) = ц(B).

Таким образом, определенную функцию множества A) будем называть мерой на алгебре S(Q).

Свойство 4. функции A) можно записать следующим образом

© А. А. Босов, А. В. Горбова, Н. В. Халипова, 2012

lim ц( BABn) = 0:

(3) гда

где А - операция симметрической разности двух множеств.

Соотношение (3) можно положить в основу определения предела последовательности множеств.

Имеет место

Теорема 1. Если Вп предел по Борелю последовательности {Вп}, а В - предел в смысле (3), то из существования предела Вп следует существование В и из существования В следует существование предела, Вп и они совпадают.

Данная теорема позволяет отказаться от весьма громоздкого определения предела по Борелю, а пользоваться соотношение (3).

Определение 1. Под производной от функции множества Е(А) по мере |л.(А) на последовательности {Вп } будем понимать предел

Е (ААВп) - Е (А)

Ьт—-п--— = а

ц(ААВп) -ц(А)

и записывать в виде

№ (А)

d ц

д

= a .

{Bn

dF (A)

d ц

{Bn }^в

F (A AB) - F (A) ц( A AB) - ц( A)

(4)

Теорема 2. Если на множестве А функция Е (А) принимает максимальное значение, то с необходимостью имеет место

dF (A)

d ц

> 0.

{Bn }^{ю}с A

Доказательство. Пусть на A функция F (An) принимает максимальное значение, то-

Е(ААВп) - Е(А) < 0.

Не ограничивая общности рассмотрения, считываем что множества Вп начиная с некоторого номера принадлежит множеству А, тогда

ААВп) -Ц( А) = ц( А) -ц( Вп) -

-2ц( А П Вп) -ц( А) = -ц( Вп),

и потому отношение

F (AABn) - F (A) ц( AABn) -ц( A)

>0.

Вычислив предел при п ^<х> получаем доказательство теоремы 2.

Введем функцию Лагранжа

Ц(А) = Р(А) + г (М - М (А)), производная, которой по мере А) существует и задача (1), (2) сводится к максимизации Ц(А) ,что в силу теоремы 2 дает

dF (A)

d ц

= p(ю) - tm(ra) > 0 .

{Bn }^{ю}с A

Откуда получаем, что множество A состоит

Естественно, возникает вопрос: «Когда существует данная производная?».

Ответом на данный вопрос является требование, чтобы функция F(A) была бы непрерывной, то есть для любой последовательности {An} сходящиеся к A имеет место

lim F (An) = F (A).

Если {Bn} сходится к множеству B. Тогда для непрерывной функции F(A) производная по мере равна

из таких ю eQ , при которых

Р(ю) т(ю)

> t.

А множитель Лагранжа принимает минимально возможное таким, чтобы выполнялось соотношение (2). Полученный результат, позволяет эвристический алгоритм решения задачи о ранце считать необходимым и тем самым и слово «эвристический» можно отбросить.

Ситуации достаточности алгоритма

Не ограничивая общности рассмотрения будем считать, что нумерация предметов во множестве Q такова, что имеет место:

p(a>i) > p(^) > ... > p(®„).

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

c1: Пусть m(ai) = const, i = 1, n .

c2: Если т(ю1) > т(ю2) > ... > т(юп), этого достаточно.

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

£ т(ю) = M(A) .

(5)

Первые две ситуации с1 и с2 очевидны. Рассмотрим ситуацию с3. В этой ситуации, множество А. представляет собой

А. =!ае О.

. Р(ю),

т(ю)

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

>.

М (А).

п3: Если ЬорХ = А( с О, £1ор1 - множество,

построенное по приведенному алгоритму, то тогда выбираем такое множество Ьор1 или

£1ор1, у которого Р максимально.

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

Векторная оптимизация

Заметим, что с задачей о ранце (1), (2) можно связать задачу о векторной оптимизации в виде

( Р(А) > -М (А)

• тах

при условии А е Н(О).

Решение данной задачи сводится к построению множества А. определяемого следующим образом

А. ={»еО, р(<% ^ >|

Пусть существует такое ю0 ё А., что можно заменить ю ё А., на ю0 и соотношение (5) не будет нарушено. Но так как р(ю) > р(ю0), то значение Р для измененного А. будет меньше Р(А.), что и доказывает достаточность (5).

Контрпример

В работе [1] приводится контрпример, когда О состоит из двух предметов {ю1,ю2} и т(ю1) = 200, р(ю1) = 190, т(ю2) = 1, р(ю2) = 5, а емкость ранца М (А) = 200.

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

п1: Вычисляем

Р = Х Р(ю).

юеО

п2: Удаляем последовательно из О такие предметы, у которых р(ю) минимальна, до тех пор пока М(А) не станет меньше или равным

Тогда Р( А.) и М (А.) получаем как некоторые функции параметра . > 0, в пространстве функционалов зависимости Р от М качественный характер имеет вид:

А Р

Рис. 1. Качественная зависимость Р от М

И по заданному М0 определяем максимально возможное Р. Если зададимся Р, то находим минимально необходимую вместимость ранца (рис. 1).

В заключение отметим, что при условии, когда Р(А) и М(А) являются аддиативными функциями, то предложенный алгоритм с необходимостью определяет Парето решение соответствующей задачи векторной оптимизации.

Выводы

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Лазарев, А. А. Теория расписаний, задачи и алгоритмы [Текст] / А. А. Лазарев, Е. Р. Гафаров. -М. : МГУ им. М. В. Ломоносова, 2011. - С. 222.

2. Босов, А. А. Функции множества и их применение [Текст] / А. А. Босов. - Днепродзержинск: Вид. дiм «Андрш», 2007. - 182 с.

Поступила в редколлегию 05.11.2012. Принята к печати 23.11.2012.

Приложение

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

41 163 33 55 191 16 13 46 41 165 167 168

t :=

> ttmin:=sort(t,4>4);

ttmm :=

13 56'13 18 75' 5' 5'21'15' 52' 65' 67 16 165 41 55 163 41 13 167 191 33 168 46

5 ' 52 ' 13 18 56 ' 15' 5 ' 65 ' 75 ' 13 67 ' 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 w w w w w w w www w ]

1- 6' 10' 1' 4' 2' 9' 7' 11 5' 3' 12 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,4M=\M):PP[k]:=P: MM[k]:=M:LL:=[op(LL),L] end do:

[w6], P=, 160, M=, 50 [w6, w10], P=, 325, M=, 102 [w6, w10, w1], P=, 489, M=, 154 [w6, w10, w1, w4], P=, 654, M=, 208 [w6, w10, w1, w4, w2], P=, 817, M=, 264 [w6, w10, w1, w4, w2, w9], P=, 981, M=, 324

[w6, w10, w1, w4, w2, w9, w7], P=, 1163, M=, 394 [w6, w10, w1, w4, w2, w9, w7, w11], P=, 1330, M=, 459 [w6, w10, w1, w4, w2, w9, w7, w11, w5], P=, 1521, M=, 534 [w6, w10, w1, w4, w2, w9, w7, w11, w5, w3], P=, 1686, M=, 599 [w6, w10, w1, w4, w2, w9, w7, w11, w5, w3, w12], P=, 1854, M=, 666 [w6, w10, w1, w4, w2, w9, w7, w11, w5, w3, w12, w8], 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,4Popt=\Popt,'Mopt=\Mopt);

Lopt=, [w6, w10, w1, w4, w2, w9, w7, w11, w5], Popt=, 1521, Mopt= 534

> P1:=array(1..n,[]);M1:=array(1..n,[]);

P1 := array( 1 .. 12, [ ]) Ml := 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, w10, w1, w4, w2, w9, w7, w11, w5, w3, w12, w8], 1878, 700

163,56

[h, w10, w1, w4, h, w9, w7, w11, w5, w3, w12, w8], 1715, 644

164,60

[h, w10, w1, w4, h, h, w7, w11, w5, w3, w12, w8], 1551, 584

164,52

[h, w10, h, w4, h, h, w7, w11, w5, w3, w12, w8], 1387, 532

165,65

[h, w10, h, w4, h, h, w7, w11, w5, h, w12, w8], 1222, 467 165,54

[h, w10, h, h, h, h, w7, w11, w5, h, w12, w8], 1057, 413 165,52

[h, h, h, h, h, h, w7, w11, w5, h, w12, w8], 892, 361 167,65

[h, h, h, h, h, h, w7, h, w5, h, w12, w8], 725, 296 168,67

[h, h, h, h, h, h, w7, h, w5, h, h, w8], 557, 229 182,70

[h, h, h, h, h, h, h, h, w h, h, w8], 375, 159 184,84

[h, h, h, h, h, h, h, h, w5, 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,4P1opt=\P1opt,'M1opt=\M1opt);

L1opt=, [h, w10, h, w4, h, h, w7, w11, w5, w3, w12, w8], P1opt=, 1387 M1opt=, 532

> if P1opt>Popt then print('L1opt=\L1opt,4P1opt=\P1opt,'M1opt=\M1opt) else print('Lopt=\Lopt,4Popt=\Popt,'Mopt=\Mopt): end if:

Lopt=, [w6, w10, w1, w4, w2, w9, w7, w11, w5], Popt=, 1521, Mopt= 534

>

А. А. БОСОВ, А. В. ГОРБОВА, Н. В. ХАЛ1ПОВА (ДПТ)

ОБГРУНТУВАННЯ ЕВРИСТИЧНОГО АЛГОРИТМУ В ЗАДАЧ1 ПРО РАНЦ1

Вступ: Сформована завдання про ранцi в термшах функЦй множини i приведений евристичний алгоритм. Мета: доказ того, що евристичний алгоритм е необхвдною умовою. Деякi факти з роботи [2]. Показана екиваленгтсгь границ послiдовностi по Е. Борелю i збiжнiстю по трг Доведено теорему про необхiднiсть максимуму функци безлiчi. Ситуаци достатност1 алгоритму: Наведено три ситуаци, коли евристичний алгоритм е достатшм. Контрприклад: Наведено контр прийме з роботи [1] i дано додавання в евристичний алгоритм, що дозволяе отримувати рiшення задачi про ранцi. Векторна оптимзащя: 1з завданням про ранщ зав'язуеться завдання векторно! опгатзащ! швестування заходв. Висновки: запропоновано алгоритм ршення задачi про ранцi i для ади-тивних функцiй алгоритм визначення Парето рiшення задачi векторно! оптишзаци за двома показниками. Додаток: наведена програма в середовищi Maple ршення задачi про ранцi.

Ключовi слова: задача про ранщ, функцц множини, векторна оптимiзацiя, завдання iнвестування

А. А. BОSОV, А. V. GОRBОVА, N. V. KHALIPOVА (DIIT)

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. Keywords: knapsack problem, set functions, vector optimization, the task of investing

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