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

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

CC BY
468
511
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАДАЧА "О РАНЦЕ" / ЗАДАЧА КОМПЛЕКТОВАНИЯ / ПРОГРАММИРОВАНИЕ

Аннотация научной статьи по математике, автор научной работы — Карпунин А. А.

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

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

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

электронное научио-геин ическое издание

НАУКА и ОБРАЗОВАНИЕ

Эя №ФС 77 - 30569. Государственная регистрация №0421100025.15514 1994-0408_

Метод решения задачи «о ранце» при наличии вектора ограничений 77-30569/280579

# 12, декабрь 2011

автор: Карпунин А. А.

УДК 519.852

МГТУ им. Н.Э. Баумана ksans@yandex.ru

Среди задач линейного программирования выделяется класс задач бивалентного программирования, известный как задача «о ранце». Существуют различные методы решения этих задач: метод Гилмора-Гомори, метод «ветвей и границ», метод Фора-Мальгранжа и др.

Классический метод Фора-Мальгранжа предполагает наличие одного критерия стоимости J, который подлежит максимизации, и одного ограничения - веса

где с - стоимость (эффективность) элемента решения хг; аI - вес элемента решения хг;

Ь - максимальный вес для ранца; п - количество элементов решения хг.

Каждый элемент решения принимает одно из двух значений Х' е ^ ^, поэтому задача относится к классу задач бивалентного программирования.

Достоинство метода Фора-Мальгранжа заключается в том, что в процессе решения в процедуре предусмотрена проверка решения на оптимальность.

В данной работе предлагается модификация классического метода Фора-Мальгранжа решения задачи «о ранце» для случая, когда имеется более одного ограничения, то есть имеется вектор ограничений

где Ці - вес элемента решения хг поу-ому ограничению;

Ъг - предельный вес для ранца поу-ому ограничению.

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

Этап 1. Предварительный этап.

а) Проверка существования хотя бы одного решения. Если выполнена система

одно решение существует. В противном случае ненулевого решения не существует и дальнейшее решение может быть остановлено.

б) Проверка существования тривиального решения. Если выполняется система неравенств

и дальнейшее решение может быть остановлено. В противном случае, переход к следующему пункту.

п

неравенств

<

хотя бы для одного элемента решения х<5 г ^п, то в рассматриваемой задаче хотя бы

то в рассматриваемой задаче существует тривиальное решение

Хі =1, / = \,П

в) Проводится лексикографическое упорядочивание переменных по убыванию

такие,

эффективности С' ‘ г ^'}1 ив рассмотрение вводятся новые переменные -У'' 1 ^'У}:

что выполняются следующие неравенства

При этом, в случае, если ^ <'*+1, то в качестве переменной у/, необходимо выбрать

такую, для которой удельная эффективность больше

Формируется таблица соответствия переменных хг и ук.

Этап 2. Определение количества нулевых переменных г в решении.

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

Еа. — а <Ъ

]1 ] тахт

ограничению, например, если ы

, --.т. . .. '°'ла /V 1.

вычитается

следующий

наибольший

иначе из полученной разности из незадействованных

весов, /=1

^тяхг аутях2 ~ ;• = 2

. При выполнении этого неравенства3 , иначе

процедура продолжается. После определения значений всех ^ ^ т необходимо

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

Г = 1ШХ

і

Ы-

Этап 3. Определение количества сочетаний вариантов решений, в которых из общего количества п элементов г будут нулевыми, а остальные равны единице.

Этап 4. Генерация > уникальных вариантов решений в порядке убывания суммарной эффективности решений и заполнение таблицы, заголовочная строка которой представлена в таблице 1.

Таблица 1 Варианты решений задачи

В таблице 1 в столбце № записывается номер варианта решения, в столбцы

V,-, I \п вносятся значения элементов рассматриваемого варианта решения. Последний столбец для рассматриваемого варианта решения заполняется, если выполнены все

ограничения в столбцах /=1 '" .В противном случае это решение будет

недопустимо как минимум одним из ограничений.

Этап 5. В таблице 1 определяется вариант решения с наибольшей эффективностью (множество вариантов с одинаковой наибольшей эффективностью). Если в таблице 1 не существует ни одного допустимого системой ограничений варианта решения, то количество нулевых элементов в решении увеличивается на 1

и осуществляется возврат на этап 3.

Этап 6. Выполняется проверка выбранного варианта на оптимальность. Для этого

формируются множества

Для того чтобы решение было оптимальным, необходимо выполнение следующего условия

тш с. + т! С'. > тах с.

ийС; +

где Л'Г - ближайшее к минимальному значение из множества М .

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

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

Этап 7. Осуществляется обратное переобозначение переменных.

Этап 8. Выполняется проверка правильности решения задачи подстановкой в исходную систему полученного после переобозначения варианта решения задачи.

Этап 9. Записывается ответ задачи.

Замечание. Переобозначение переменных в п. 1(в) в сочетании с п. 7 не является обязательным. Данные операции введены для получения решения с наибольшей эффективностью в первых строках таблицы решений.

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

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

Пример.

Решение

1) Предварительный этап.

а) Проверка существования хотя бы одного решения

Например, для г = 5 одновременно выполняются такие условия

Значит, хотя бы одно решение существует.

б) Проверка существования тривиального решения

'==1 , значит, тривиального решения нет.

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

г=1

г=1

2Х- = 11> 2^-^^ = 11 - 3 = 8 < 8 = &2, => /2 = 1

г=1 г=1

Тогда количество нулевых переменных в решении

г = тах{г1; г2} = 1

3) Определение количества сочетаний вариантов решений, в которых из 5

элементов 1 будет нулевой, а остальные равны единице.

п I < 5'

г п 1 5 ■ г

=-----------. С. =-------= !> вариантов

Н(и-г)! 1! • 4!

4) Формирование таблицы, содержащей варианты решения

Таблица 2

Варианты решения с одной нулевой переменной

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

№ *1 *2 *3 *4 х5 5 IX Л', 7=1 5 1=1 5 •7= 1=1

1 1 1 1 1 0 12 >9 — —

2 1 1 1 0 1 10 >9 — —

3 1 1 0 1 1 10 >9 — —

4 1 0 1 1 1 11 >9 — —

5 0 1 1 1 1 9 <9 10 >8 —

В таблице 1 нет ни одного допустимого решения, необходимо увеличить количество нулевых переменных на единицу: г = 2.

5) Определение количества сочетаний вариантов решений, в которых из 5 элементов 2 будут нулевыми, а остальные равны единице.

5!

С5 = 2

2!-(5 — 2)!

= 10 вариантов.

6) Формирование таблицы, содержащей варианты решения

Таблица 3

Варианты решения с двумя нулевыми переменными

№ дгх х, ■'■1 *4 х5 1Л ^3- 5 ЕВД < ъ2 1=1 О" II

1 1 1 1 0 0 9 <9 6 < 8 9

2 1 1 0 1 0 9 <9 6 < 8 8

3 1 1 0 0 1 7 < 9 5 < 8 9

4 1 0 1 1 0 10 >9 — —

5 1 0 1 0 1 8 < 9 6 < 8 10

6 1 0 0 1 1 8 < 9 6 < 8 9

7 0 1 1 1 0 8 < 9 8< 8 7

8 0 1 1 0 1 6 < 9 7 < 8 8

9 0 1 0 1 1 6 < 9 7 < 8 7

10 0 0 1 1 1 7 < 9 8< 8 8

7) Проверка выбранного варианта на оптимальность. Формируются множества Для оптимальности решения необходимо выполнение следующего условия

1шп с. + П11: с1 > тах с..

3+3 > 2, условие выполнено.

Таким образом, найденное решение является оптимальным.

Ответ: Х" =['’ °= °=^]’ ^* = 1°-

Список использованных источников

1. Плотников В.Н., Зверев В.Ю. Принятие решений в системах управления. — М.: Изд-во МГТУ, 1993. — Ч.1. Теория и проектирование алгоритмов принятия оперативных решений. — 172 с.

2. Плотников В.Н., Зверев В.Ю. Принятие решений в системах управления. — М.: Изд-во МГТУ, 1994. — Ч.2. Теория и проектирование алгоритмов принятия проектных решений для многообъектных распределенных систем управления. — 146 с.

electronic scientific and technical periodical

SCIENCE and EDUgATION

Knapsack problem solving procedure in the case of boundaries vector 77-30569/280579

# 12, December 2011

author: Karpunin A.A.

Bauman Moscow State Technical University ksans@yandex.ru

Modification of classical method of solving the knapsack problem as the task of bivalent programming in the case of boundaries vector is proposed. Algorithm of knapsack acquisition problem solving in the case of one criteria and vector of boundaries is presented. Problems of solution existence and optimality solution check are considered. An example of the problem solving on the basis of proposed method is given.

Publications with keywords: acquisition problem, knapsack problem, boundaries vector, bivalent programming, integer programming, example of the solution Publications with words: acquisition problem, knapsack problem, boundaries vector, bivalent programming, integer programming, example of the solution

Reference

1. Plotnikov V.N., Zverev V.Iu., The adoption of decisions in the systems of management. Part 1, Moscow, Izd-vo MGTU - BMSTU Press, 1993, 172 p.

2. Plotnikov V.N., Zverev V.Iu., The adoption of decisions in the systems of management. Part 2, Moscow, Izd-vo MGTU - BMSTU Press, 1994, 146 p.

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