Научная статья на тему 'Алгоритм решения задач линейного программирования с помощью обратных вычислений'

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

CC BY
2398
84
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ / LINEAR PROGRAMMING / УСЛОВНАЯ ОПТИМИЗАЦИЯ / CONSTRAINED OPTIMIZATION / РЕЙТИНГОВАЯ ОЦЕНКА / RANKING SCORE / ОБРАТНОЕ ВЫЧИСЛЕНИЕ / INVERSE CALCULATION

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

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

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

The algorithm for solving linear programming problems through inverse calculations

Importance The paper studies the linear programming problems with a given number of nonzero solution components. This condition is due to the positive effect of the diversity of proposals and the need to reduce the risk of investment projects. Objectives The article aims to develop a solution algorithm for linear programming problems with a given number of nonzero coordinates of solution vector. Methods This work uses the method of solving inverse problems through inverse calculations. To solve classical linear programming problems, I used the simplex method. Results I have developed solution algorithms for linear programming problems based on inverse calculation. Conclusions and Relevance The developed algorithms can be used in solving linear programming problems. These algorithms are simple in computer realization. Also the algorithms based on inverse calculation can be used to find the initial solution of linear programming problems. In this case, the coefficients of relative importance are selected by means of the iterative procedure. The suggested algorithms can be used in decision support systems.

Текст научной работы на тему «Алгоритм решения задач линейного программирования с помощью обратных вычислений»

pISSN 2073-4484 eISSN 2311-8768

Математический анализ и моделирование в экономике

АЛГОРИТМ РЕШЕНИЯ ЗАДАЧ ЛИНЕИНОГО ПРОГРАММИРОВАНИЯ С ПОМОЩЬЮ ОБРАТНЫХ ВЫЧИСЛЕНИЙ

Екатерина Борисовна ГРИБАНОВА

кандидат технических наук, доцент кафедры автоматизированных систем управления, Томский государственный университет систем управления и радиоэлектроники, Томск, Российская Федерация katag@yandex.ru

История статьи:

Получена 27.06.2017 Получена в доработанном виде 24.07.2017 Одобрена 31.07.2017 Доступна онлайн 15.09.2017

УДК 519.852.6 JEL: С38, С58

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

Аннотация

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

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

Методология. В работе использован метод решения обратных задач с помощью обратных вычислений. Для решения классических задач линейного программирования был использован симплекс-метод.

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

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

© Издательский дом ФИНАНСЫ и КРЕДИТ, 2017

Для цитирования: Грибанова Е.Б. Алгоритм решения задач линейного программирования с помощью обратных вычислений // Финансовая аналитика: проблемы и решения. - 2017. - Т. 10, № 9. - С. 1062 - 1075. https://doi.Org/10.24891/fa.10.9.1062

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

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

Постановка задачи оптимизации имеет следующий вид: найти значение аргумента (аргументов) х, обеспечивающего наилучшее значение (максимум или минимум) целевой функции _Дх) согласно существующим ограничениям.

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

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

/(х)=Х ]=1 с Iх! * тах (т1п);

х х

Е"=1 а.х.{<=, =, >=}Ь,,1 = 1...т; (1)

х.>0, /=1...",

] ^

где х- - искомые аргументы;

г - количество ограничений; ] - количество переменных;

с., а.., Ь. - некоторые заранее известные

] ч г

величины, определяемые смыслом задачи.

Основополагающая роль в исследовании подобных задач принадлежит опубликованной Л.В. Канторовичем работе «Математические методы организации и планирования производства» [1], в которой были описаны некоторые оптимизационные задачи экономики (рациональное распределение топлива, максимальное уменьшение отходов, наиболее полное использование механизмов и т.д.)

и предложен для их решения метод разрешающих множителей.

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

Данное направление математического программирования получило очень широкое распространение. В литературе изучается большое количество задач в разных отраслях экономики: планирование промышленного производства1 и сельского хозяйства [2], организация транспортной логистики [3], распределение инвестиций при строительстве коммунальных объектов [4], формирование ассортиментной политики организации [5], определение цен на выпускаемую продукцию для максимизации выручки [6] и многие другие.

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

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

учитывается в классических задачах линейного программирования. В качестве примеров можно привести следующие причины необходимости учета такого условия:

• диверсификация: при рассмотрении задач, связанных с инвестиционными проектами [7], увеличение числа позиций вложения средств способствует уменьшению риска;

• разнообразие предложений: увеличение числа позиций предложения фирм положительно сказывается на спросе и на оценке потребителей (задачи о диете, об ассортименте).

1 ИвашинаЮ.Н. Линейное программирование в управлении параметрами программы инновационного развития предприятия // Новое слово в науке и практике: гипотезы и апробация результатов исследований. 2013. № 4. С. 189-192.

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

В статье Л. Гончар [8] говорится о том, что модели, в которых лица, принимающие решения, не имеют возможности вмешиваться в процесс поиска решения, управляя значениями параметров на отдельных этапах, в большинстве случаев не устраивают руководителей.

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

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

1) определение дополнительных ограничений на максимальное значение переменных;

2) применение алгоритмически вычисляемых ограничений.

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

х. < Тор.

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

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

искомых переменных, которые в реальности не могут быть представлены.

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

_(1, х. >0

Г] 1°' х.=°.

Тогда дополнительное условие задачи (1)

будет иметь следующий вид:

Е"

]_1 Г]

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

Наиболее простым стохастическим методом решения задач линейного программирования является случайный поиск. Его появление и развитие в нашей стране связано с исследованиями Л.А. Растригина [9].

Для решения условных задач также используется штрафная функция, представленная, в частности, в работах [10, 11]. К выражению целевой функции добавляется слагаемое, равное нулю в случае выполнения условий или некоторой величине, если условия не выполняются. Далее задача решается простым случайным поиском без ограничений.

В статье А.Н. Антамошкина2 представлены жадные алгоритмы условной псевдобулевой оптимизации, в которых целевую функцию

2Антамошкин А.Н., Масич И.С. Гриди алгоритмы и локальный поиск для условной псевдобулевой оптимизации // Исследовано в России. 2003. № 177. С. 2143-2149.

необходимо максимизировать, а ограничение имеет вид «меньше или равно».

В методе изменяющихся вероятностей, описанном в работе Л.А. Казаковцева [12], новое решение получается в соответствии с вектором вероятностей, которые впоследствии изменяются в зависимости от результата поиска.

Также популярным алгоритмом решения задач линейного программирования является генетический, описание которого приводится в работах J.P. РеёгоБО, S. Datta [13, 14]. Данный алгоритм принадлежит к классу эволюционных и основан на механизмах селекции, скрещивания и мутации.

Минусом подобных алгоритмов является более сложная логика программ, высокие затраты вычислительных ресурсов, а также субоптимальность полученного решения, которое будет изменяться в различных реализациях. Зато такие алгоритмы могут учитывать более сложные условия задачи. Например, можно избежать малых значений ненулевых элементов путем определения дополнительного условия, определяющего нижнюю границу ВоПоп ненулевого элемента решения:

Xj > Botton, если^ = 1.

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

1. Количество аргументов в модели очень большое, и (или) они могут принимать только целые значения (речь идет о задачах полностью или смешанного целочисленного программирования).

В работе А.Н. Антамошкина отмечается, что при размерности порядка 100 точный алгоритм уже не способен найти решение за реальное время. Условие целочисленности решения встречается, когда речь идет,

например, о поиске количества машин и людей, необходимых для выполнения работы.

К частному случаю задачи целочисленного программирования относят задачи, в которых переменные могут принимать всего два значения: ноль или единица (классические задачи о коммивояжере, а также оптимизации движения общественного транспорта [15], выбора победителей обратного аукциона [16] и т.д.). В этом случае округление полученного решения до целого не всегда приводит к наилучшему результату, а использование метода ветвей и границ и метода Гомори может потребовать больших вычислительных ресурсов и времени.

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

3. Необходимо проверить правильность найденного решения с помощью другого метода.

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

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

Алгоритм решения задачи линейного программирования с помощью обратных вычислений

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

Рассмотрим задачу линейного программирования (1) с неотрицательными значениями величин при аргументах и ограничений с., а. Ь. > 0. При этом ограничения имеют вид «больше или равно», а целевую функцию необходимо минимизировать.

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

Выполним также нормирование, разделив а. на ограничение Ь.. Тогда формула расчета индексов примет следующий вид:

w,

а, / bj / Cj.

1, = !,'" j ¿—ч=\

w4.

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

Описание метода обратных вычислений приводится в работе Б.Е. Одинцова [17]. Суть заключается в нахождении приростов аргументов функции на основе их начального значения, направления изменения и коэффициентов относительной важности. Для задачи с двумя аргументами система решения задачи имеет следующий вид:

Если ограничения имеют вид «меньше или равно», формула будет иметь несколько иной вид:

Wj = Ь, / а, / с,.

Аналогично составляются формулы расчета индексов в случае максимизации функции:

• для ограничения вида «больше или равно»:

Щ = с. / (Ь] / а.);

• для ограничения вида «меньше или равно»: м- = с. / (а. / ] (2)

Далее для каждой переменной х. составляется интегральный показатель:

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

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

y± A y=f (xj ± A xj а, x2 ± A х 2 а2); A xj / A х2=а j/а2; aj + а2= J,

где у, Ау - исходное значение и приращение результирующей функции;

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

Ах1, Ах2 - приращение аргументов;

а1, а2 - коэффициенты относительной важности приращений Ахь Ах2 соответственно.

Если число аргументов больше двух, осуществляется процедура свертки.

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

Ах: = а1Ау; Ах2 = а2Ау.

Также для решения задачи может быть использован модифицированный метод обратных вычислений [18].

В рассматриваемом алгоритме используемая функция аддитивна и имеет следующий вид:

y=!lr х

Для решения задачи определяются следующие исходные данные: начальное значение целевой функции (для задачи на минимум - некоторое малое число у, для задачи на максимум -

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

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

Шаг 1. Решить обратную задачу с помощью обратных вычислений.

Шаг 2. Выполнить проверку соответствия существующим условиям.

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

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

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

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

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

Пример решения оптимизационной задачи

Рассмотрим применение представленного алгоритма на примере решения задачи об оптимальном ассортименте предприятия.

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

Для моделирования были использованы данные кондитерской фирмы. Рассмотрено применение четырех основных компонентов кондитерских изделий: муки, яиц, сахара и маргарина. Их запасы составляют 975, 800, 423 и 771 кг соответственно. Информация о содержании элементов в девяти кондитерских изделиях представлена в табл. 1.

Полученная модель имеет следующий вид:

fx) = 205xi + 160x2 + 105хз + 125x4 + 105xs + + 140x6 + 120x7 + 170x8 + 205x9 ^ max;

0,15xi + 0,18x2 + 0,5x3 + 0,23x4 + 0,495x5 + + 0,35x6 + 0,309x7 + 0,2x8 + 0,3x9 < 975;

0,24x1 + 0,29x2 + 0,06x3 + 0,36x4 + 0,06x5 + + 0,09x6 + 0,07x7 + 0,24x8 + 0,18x9 < 800;

0,09x1 + 0,1x2 + 0,18x3 + 0,13x4 + 0,21x5 + + 0,186x6 + 0,12x7 + 0,09x8 + 0,13x9 < 423;

0,17x1 + 0,2x2 + 0,33x3 + 0,25x4 + 0,33x5 + + 0,208x6 + 0,191x7 + 0,17x8 + 0,134x9 < 771;

x > 0.

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

(1 857; 0; 0; 0; 0; 0; 0; 0; 1 968), У(к) = 784 200 руб.

Рассмотрим теперь применение приведенного ранее алгоритма для решения задачи получения оптимального ассортимента.

Значения рассчитанных индикаторов, найденные по формуле (2), приведены в матрице (цифры умножены на 10-6):

w =

1,333 0,683 0,963 0,93

0,867 0,441 0,677 0,617

0,205 1,4 0,247 0,245

0,53 0,278 0,407 0,386

0,207 1,4 0,211 0,245

0,39 1,244 0,318 0,519

0,379 1,371 0,423 0,484

0,829 0,567 0,799 0,771

0,666 0,911 0,667 1,18

Интегральные показатели переменных вычисляем путем суммирования строк:

I = (3,909 + 2,602 + 2,097 + 1,6+ 2,064 + + 2,472+2,657 + 2,965+ 3,424 )г'

Рассчитанные значения интегрального показателя и их место в рейтинге представлены в табл. 2.

Пусть выбранное число кондитерских изделий равно четырем. Согласно значениям табл. 1 выбираем компоненты с наибольшим значением интегрального показателя: Xl, X9, X8, X7. Коэффициенты относительной важности установим равными 0,3; 0,3; 0,2; 0,2. Графическое представление обратной задачи приведено на рис. 1.

При оптимальной структуре ассортимента количество продукции составит у = 3 825, поэтому в качестве начального максимального значения показателя примем у = 4 500, шаг Ду = 100. Тогда, применяя описанный ранее алгоритм решения задачи, получим следующие значения приростов аргументов на первой итерации:

Д-1 = а1у = 0,3 • 4 500 = 1 350;

Д*! = а2у = 0,2 • 4 500 = 900;

Д-8 = а3у = 0,2 • 4 500 = 900;

Д-9 = ау = 0,2 • 4 500 = 1 350.

Поскольку начальные значения равны нулю, величины x равны Д-.

Выполним проверку условия задачи:

0,15 • 0,3 + 0,18 • 0 + 0,18 • 0 + 0,23 • 0 + 0,44 • 0 + + 0,35 • 0 + 0,309 • 0,2 + 0,2 • 0,2 + 0,3 • 0,3 = = 1 066;

0,24 • 0,3 + 0,29 • 0 + 0,29 • 0 + 0,36 • 0 + 0,05 • 0 + + 0,09 • 0 + 0,07 • 0,2 + 0,24 • 0,2 + 0,18 • 0,3 = = 846;

0,09 • 0,3 + 0,1 • 0 + 0,1 • 0 + 0,13 • 0 + 0,01 • 0 + + 0,186 • 0 + 0,12 • 0,2 + 0,09 • 0,2 + 0,13 • 0,3 = = 486;

0,17 • 0,3 + 0,2 • 0 + 0,2 • 0 + 0,25 • 0 + 0,125 • 0 + + 0,208 • 0 + 0,191 • 0,2 + 0,17 • 0,2 + 0,134 • 0,3 = = 735,3;

Условия задачи не выполняются, поэтому значение целевой функции уменьшается:

(у = у - Ду = 4 400),

и снова проводится решение обратной задачи.

Завершение работы алгоритма произойдет на седьмой итерации. Вот полученное решение:

(1 170; 0; 0; 0; 0; 0; 780; 780; 1 170),

А?) = 694 200.

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

1. Решение, полученное для одного компонента (х1) вектора:

(3 300; 0; 0; 0; 0; 0; 0; 0; 0), Ах)= 676 500.

2. Решение, полученное при рассмотрении пары переменных (х1, х9):

(1 900; 0; 0; 0; 0; 0, 0; 0; 1 900),

/х) = 779 000 (у = 3 800, Ау = 100, Аа = 0,1).

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

Значения, полученные на шаге 2, являются окончательным решением, так как при изучении большего числа переменных значение целевой функции не улучшается.

Заключение

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

составлении ассортимента продукции, выборе пунктов вложения средств и пр.

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

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

Представлен алгоритм решения классической задачи линейного программирования с помощью обратных вычислений. Он может быть использован для поиска начального решения.

В качестве примера приведено решение задачи оптимизации ассортимента кондитерской фирмы с выбором четырех изделий.

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

Таблица 1

Информация об изделиях

Table 1

Product information

Номер изделия

Показатель 1 2 3 4 5 б 7 8 9

Цена, руб. за 1 кг 205 160 105 125 105 140 120 170 205

Компоненты, кг:

- мука 0,15 0,18 0,5 0,23 0,495 0,35 0,309 0,2 0,3

- яйца 0,24 0,29 0,06 0,36 0,06 0,09 0,07 0,24 0,18

- сахар 0,09 0,1 0,18 0,13 0,21 0,186 0,12 0,09 0,13

- маргарин 0,17 0,2 0,33 0,25 0,33 0,208 0,191 0,17 0,134

Источник: авторская разработка Source: Authoring

Таблица 2

Рейтинг компонентов решения

Table 2

Ranking of solution components

Показатель Компонент решения задачи

Xi X2 X3 X4 X5 X6 X7 X8 X9

Место в рейтинге 1 5 7 9 8 6 4 3 2

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

Значение 3,909 2,602 2,097 1,6 2,064 2,472 2,657 2,965 3,424

интегрального

показателя

Источник: авторская разработка Source: Authoring

Таблица 3

Решение задачи с двумя компонентами

Table 3

The solution of the problem with two components

Показатель Номер вычисления

1 2 3 4 5

Коэффициент относительной важности компонента Х1 0,9 0,8 0,7 0,6 0,5

Коэффициент относительной важности компонента х9 0,1 0,2 0,3 0,4 0,5

Выручка, руб. 779 000 779 000 779 000 779 000 779 000

Выполнение условий задачи («+» -да, «-» - нет) - - ^^Н- - +

Источник: авторская разработка Source: Authoring

Рисунок 1

Графическое представление задачи Figure 1

A graphical representation of the task

Источник: авторская разработка Source: Authoring

Список литературы

1. Канторович Л.В. Математические методы организации и планирования производства. Ленинград: ЛГУ, 1939. 68 с.

2. Herath H.M.I.U., Samarathunga D.M. Multi-Objective Fuzzy Linear Programming in Agricultural Production Planning. International Journal of Scientific and Technology Research, 2015, vol. 4, iss. 10, pp. 242-250. URL: http://www.ijstr.org/final-print/oct2015/Multi-objective-Fuzzy-Linear-Programming-In-Agri cultural -Producti on-Pl anning.pdf

3. Khan M.A. Transport Cost Optimization Using Linear Programming. Int. Conf. on Mechanical, Industrial and Energy Engineering, December 25-26, 2014. Bangladesh, pp. 1-5.

URL: http://www2.kuet.ac.bd/icmiee2014/wp-content/uploads/2015/02/ICMIEE-PI-140224.pdf

4. Juan W.U., Xueqian G.E. Optimization Research of Generation Investment Based on Linear Programming Model. PhysicsProcedia, 2012, vol. 24, part B, pp. 1400-1405.

doi: 10.1016/j.phpro.2012.02.208

5. Пьяникова Э.А. Формирование ассортимента товаров методом линейного программирования // Известия Юго-Западного государственного университета. Серия: Экономика. Социология. Менеджмент. 2013. № 3. С. 76-80. URL: https://www.swsu.ru/izvestiya/serieseconom/ archiv/3_2013.pdf

6. Рахманкулова Г.И. Линейное программирование, ценообразование на рынке факторов производства и двойственность // Актуальные проблемы экономики и права. 2008. № 1. С. 27-32.

7. Могилевский А.А. Формирование оптимального портфеля инвестиций с помощью метода линейного программирования в проектах строительства коммерческой недвижимости // Вестник ИНЖЭКОНА. Серия: Экономика. 2011. № 1. C. 399-403.

8. Honchar L. Simulation Model of Optimal Products Assortment Issue. IEEE 5th International Workshop on Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications, September 21-23, 2009. Italy, Rende (Cosenza), pp. 608-611.

9. Растригин Л.А. Адаптация сложных систем. Рига: Зинатне, 1981. 375 c.

10. Казаковцев Л.А., Ступина А.А. Параллельная реализация метода изменяющихся вероятностей // Современные проблемы науки и образования. 2012. № 4. URL: https://www.science-education.ru/ru/article/view?id=6810

11. Грибанова Е.Б. Стохастические алгоритмы решения обратных задач экономического анализа с ограничениями // Доклады Томского государственного университета систем управления и радиоэлектроники. 2016. Т. 19. № 4. С. 112-116. URL: https://journal.tusur.ru/storage/57442/23-Грибанова^Ш489569522

12. Антамошкин А.Н., Казаковцев Л.А. Применение метода изменяющихся вероятностей для задач оптимального размещения на сети // Вестник СибГАУ. 2014. № 5. С. 10-19.

13. Pedroso J.P. An Evolutionary Solver for Pure Linear Integer Programming. BSIS Technical Report, 1998, no. 98, pp. 1-15. doi: 10.1111/1475-3995.00359

14. Datta S., Garai C., Das C. Efficient Genetic Algorithm on Linear Programming Problem for Fittest Chromosomes. Journal of Global Research in Computer Science, 2012, vol. 3, iss. 6, pp. 1-7. URL: https://www.rroij.com/open-access/efficient-genetic-algorithm-on-linear-programming-problem-for-fittest-chromosomes-1-7.php?aid=37764

15. Cejka J. Transport Planning Realized through the Optimization Models. Procedia Engineering, 2016, no. 161, pp. 1187-1196. URL: https://doi.org/10.1016/j.proeng.2016.08.538

16. Ming Y., Yurong Y. A Multi-Attribute Reverse Auction Decision Making Model Based on Linear Programming. Systems Engineering Procedia, 2012, no. 4, pp. 372-378.

17. Одинцов Б.Е. Обратные вычисления в формировании экономических решений. М.: Финансы и статистика, 2004. 192 с.

18. Грибанова Е.Б. Решение обратных задач экономики с помощью модифицированного метода обратных вычислений // Проблемы управления. 2016. № 5. С. 35-40.

Информация о конфликте интересов

Я, автор данной статьи, со всей ответственностью заявляю о частичном и полном отсутствии фактического или потенциального конфликта интересов с какой бы то ни было третьей стороной, который может возникнуть вследствие публикации данной статьи. Настоящее заявление относится к проведению научной работы, сбору и обработке информации, написанию и подготовке статьи, принятию решения о публикации рукописи.

pISSN 2073-4484 eISSN 2311-87б8

Mathematical Analysis and Modeling in Economics

THE ALGORITHM FOR SOLVING LINEAR PROGRAMMING PROBLEMS THROUGH INVERSE CALCULATIONS

Ekaterina B. GRIBANOVA

Tomsk State University of Control Systems and Radioelectronics, Tomsk, Russian Federation katag@yandex.ru

Article history:

Received 27 June 2017 Received in revised form 24 July 2017 Accepted 31 July 2017 Available online 15 September 2017

JEL classification: C38, C58

Keywords: linear programming, constrained optimization, ranking score, inverse calculation

Abstract

Importance The paper studies the linear programming problems with a given number of nonzero solution components. This condition is due to the positive effect of the diversity of proposals and the need to reduce the risk of investment projects.

Objectives The article aims to develop a solution algorithm for linear programming problems with a given number of nonzero coordinates of solution vector. Methods This work uses the method of solving inverse problems through inverse calculations. To solve classical linear programming problems, I used the simplex method. Results I have developed solution algorithms for linear programming problems based on inverse calculation.

Conclusions and Relevance The developed algorithms can be used in solving linear programming problems. These algorithms are simple in computer realization. Also the algorithms based on inverse calculation can be used to find the initial solution of linear programming problems. In this case, the coefficients of relative importance are selected by means of the iterative procedure. The suggested algorithms can be used in decision support systems.

© Publishing house FINANCE and CREDIT, 2017

Please cite this article as: Gribanova E.B. The Algorithm for Solving Linear Programming Problems through Inverse Calculations. Financial Analytics: Science and Experience, 2017, vol. 10, iss. 9, pp. 1062-1075. https://doi.org/10.24891/fa.l0.9.1062

References

1. Kantorovich L.V. Matematicheskie metody organizatsii iplanirovaniyaproizvodstva. [Mathematical methods of production organization and planning]. Leningrad, LGU Publ., 1939, 68 p.

2. Herath H.M.I.U., Samarathunga D.M. Multi-Objective Fuzzy Linear Programming in Agricultural Production Planning. International Journal of Scientific and Technology Research, 2015, vol. 4, iss. 10, pp. 242-250. URL: http://www.ijstr.org/final-print/oct2015/Multi-objective-Fuzzy-Linear-Programming-In-Agricultural-Production-Planning.pdf

3. Khan M.A. Transport Cost Optimization Using Linear Programming. Int. Conf. on Mechanical, Industrial and Energy Engineering, December 25-26, 2014. Bangladesh, pp. 1-5.

URL: http://www2.kuet.ac.bd/icmiee2014/wp-content/uploads/2015/02/ICMIEE-PI-140224.pdf

4. Juan W.U., Xueqian G.E. Optimization Research of Generation Investment Based on Linear Programming Model. Physics Procedia, 2012, vol. 24, part B, pp. 1400-1405.

doi: 10.1016/j.phpro.2012.02.208

5. P'yanikova E.A. [Formation of the goods assortment using the linear programming method]. Izvestiya Yugo-zapadnogo gosudarstvennogo universiteta. Seriya: Ekonomika. Sotsiologiya. Menedzhment = Proceedings of South-West State University. Series: Economics. Sociology. Management, 2013, no. 3, pp. 76-80. URL: https://www.swsu.ru/izvestiya/serieseconom/ archiv/3_2013.pdf (In Russ.)

6. Rakhmankulova G.I. [Linear programming, pricing in the market of production factors and the duality]. Aktual'nye problemy ekonomiki i prava = Actual Problems of Economics and Law, 2008, no. 1, pp. 27-32. (In Russ.)

7. Mogilevskii A.A. [Construction of the optimal investment portfolio in global turbulence]. Vestnik INZhEKONA. Seriya: Ekonomika = Bulletin of Saint-Petersburg State University of Economics, 2011, no. 1, pp. 399-403. (In Russ.)

8. Honchar L. Simulation Model of Optimal Products Assortment Issue. IEEE 5th International Workshop on Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications, September 21-23, 2009. Italy, Rende (Cosenza), pp. 608-611.

9. Rastrigin L.A. Adaptatsiya slozhnykh sistem [Adaptation of complicated systems]. Riga, Zinatne Publ., 1981, 375 p.

10. Kazakovtsev L.A., Stupina A.A. [Parallel realization of the probability changing method]. Sovremennye problemy nauki i obrazovaniya = Modern Problems of Science and Education, 2012, no. 4, 139 p. URL: https://www.science-education.ru/ru/article/view?id=6810 (In Russ.)

11. Gribanova E.B. [Stochastic algorithms to solve the economic analysis inverse problems with constraints]. Doklady Tomskogo gosudarstvennogo universiteta sistem upravleniya i radioelektroniki = Proceedings of Tomsk State University of Control Systems and Radioelectronics, 2016, vol. 19, iss. 4, pp. 112-116. URL: https://journal.tusur.ru/storage/ 57442/23-rpH6aHOBa.pdf?1489569522 (In Russ.)

12. Antamoshkin A.N., Kazakovtsev L.A. [Application of the probability changing method for optimal location problems on a network]. VestnikSibGAU, 2014, no. 5, pp. 10-19. (In Russ.)

13. Pedroso J.P. An Evolutionary Solver for Pure Linear Integer Programming. BSIS Technical Report, 1998, no. 98, pp. 1-15. doi: 10.1111/1475-3995.00359

14. Datta S., Garai C., Das C. Efficient Genetic Algorithm on Linear Programming Problem for Fittest Chromosomes. Journal of Global Research in Computer Science, 2012, vol. 3, iss. 6, pp. 1-7. URL: https://www.rroij.com/open-access/efficient-genetic-algorithm-on-linear-programming-problem-for-fittest-chromosomes-1-7.php?aid=37764

15. Cejka J. Transport Planning Realized Through the Optimization Models. Procedia Engineering, 2016, no. 161, pp. 1187-1196. URL: https://doi.org/10.1016/j.proeng.2016.08.538

16. Ming Y., Yurong Y. A Multi-attribute Reverse Auction Decision Making Model Based on Linear Programming. Systems Engineering Procedia, 2012, no. 4, pp. 372-378.

17. Odintsov B.E. Obratnye vychisleniya v formirovanii ekonomicheskikh reshenii [Inverse calculations]. Moscow, Finance and Statistics, 2004, 192 p.

18. Gribanova E.B. [The economy inverse problems solving considering constraints with modified method of inverse calculations]. Problemy upravleniya = Control Sciences, 2016, no. 5, pp. 35-40. (In Russ.)

Conflict-of-interest notification

I, the author of this article, bindingly and explicitly declare of the partial and total lack of actual or

potential conflict of interest with any other third party whatsoever, which may arise as a result of

the publication of this article. This statement relates to the study, data collection and interpretation,

writing and preparation of the article, and the decision to submit the manuscript for publication.

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