Научная статья на тему 'Решение задач целочисленной линейной оптимизации'

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

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

Аннотация научной статьи по математике, автор научной работы — Баусова Зоя Ивановна, Гамазина Анастасия Николаевна, Дугина Юлия Николаевна, Старикова Александра Юрьевна

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

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

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

УДК 00.005

З. И. Баусова, А. Н. Гамазина, Ю. Н. Дугина, А. Ю. Старикова РЕШЕНИЕ ЗАДАЧ ЦЕЛОЧИСЛЕННОЙ ЛИНЕЙНОЙ ОПТИМИЗАЦИИ

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

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

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

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

Пример такой экономической задачи. Фирма выпускает два вида продукции: Продукт 1 и Продукт 2. На изготовление единицы Продукта 1 требуется затратить 10 кг сырья первого вида, 18 кг сырья второго вида, 25 кг сырья третьего вида. На изготовление единицы Продукта 2 требуется затратить 10 кг сырья первого вида, 20 кг сырья второго вида, 30 кг сырья третьего вида. Производство обеспечено сырьем каждого вида в количестве Ь1 кг, Ь2 кг, Ьз кг соответственно. Рыночная цена единицы Продукта 1 равна 1 тыс. руб., а единицы Продукта 2 - 3 тыс. руб. Требуется составить оптимальный план производства продуктов фирмы, обеспечивающий максимальную выручку от их реализации.

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

1) методы отсечения;

2) комбинаторные методы;

3) приближенные методы.

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

- быть линейным;

- отсекать найденный оптимальный целочисленный план;

- не отсекать ни одного целочисленного плана.

Затем задача решается с учетом нововведенного ограничения, и если ответ снова не является целочисленным, то также вводится новое ограничение.

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

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

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

Основными недостатками методов отсечения являются:

1. Ни один тип отсечений не обеспечивает высокой эффективности соответствующих вычислительных процедур.

2. Методы отсечения не подходят для решения целочисленных задач больших размерностей.

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

Задача целочисленного линейного программирования (ЗЦЛП) методом Гомори решается по следующему алгоритму:

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

2. В противном случае необходимо выбрать компоненту с наибольшей целой частью, и по уравнению системы 8.5 /1/ сформировать правильное отсечение 8.6 /1/.

3. В полученное неравенство вводится дополнительная неотрицательная целочисленная переменная, которая преобразовывает его в равносильное уравнение. Необходимо включить это уравнение в систему ограничений 8.2 /1/.

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

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

- метод ветвей и границ;

- метод последовательного анализа вариантов;

- метод, основанный на последовательном расчете;

- метод Фора и Мальгранжа.

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

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

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

С точки зрения методологии, последовательный анализ вариантов является естественным обобщением идей последовательного принятия решений. Однако последова-

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

Также к комбинаторным методам относится метод Фора и Мальгранжа. В 1963 г. в их заметке был анонсирован метод решения задач линейного программирования с булевыми переменными. Свой подход они назвали «булевым методом». После чего Ле Граф и Мальгранж распространили этот метод на общие целочисленные задачи линейного программирования. Затем Фор и Мальгранж открыли еще один метод решения целочисленных задач линейного программирования, который близок по схеме к методу Ле Графа и Мельгранжа, но отличается от него дополнительными чертами.

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

1. Отыскивается «младшая единица» в сформированном плане: крайняя правая единица, после которой есть хотя бы один о. Если «младшая единица» найдена, то осуществляется переход к шагу 2; в обратном случае переходим к шагу 5.

2. В новом плане на месте «младшей единицы» ставится о.

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

4. Значения переменных в формируемом плане правее «младшей единицы» определяются путем последовательного перебора и присвоения 1, если позволяют ограничения, или о; в противном случае - переход к шагу 1.

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

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

Задачи целочисленного линейного программирования методом ветвей и границ решаются следующим образом:

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

2. Предположим, что первая компонента xi* оптимального плана X* задачи 1 не удовлетворяет условию целочисленности. Исходя из этого исключается область, где [Xi*] -целая часть числа Xi.

3. Тогда из задачи 1 формируется две задачи с добавленными ограничениями:

Для задачи 2: (2).

Для задачи 3: (3).

4. Далее решаем одну из этих задач (в любом порядке); в зависимости от решения список задач может либо увеличиваться, либо уменьшаться.

5. Если в одной из задач получен нецелочисленный оптимальный план, то данная задача исключается из списка. Иначе, если получен целочисленный оптимальный план, то из нее формируются новые задачи.

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

7. Процесс продолжается до тех пор, пока все задачи не будут решены.

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

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

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

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

Затем компонент Хк изменяем с одинаковой вероятностью. Это приводит к новому вектору Хк+i. Когда все Ai примут значения, равные о, то решение будет найдено.

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

После рассматриваются все полученные комбинации планов и среди них выбираются наиболее подходящие для задачи в целом.

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

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

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

Библиографический список

1. Кремер, Н. Ш. Исследование операций в экономике : учеб. пособие / Н. Ш. Кремер, Б. А. Путко, И. М. Тришин, М. Н. Фридман. - М. : Юрайт, 2013. — 438 с.

Баусова Зоя Ивановна, кандидат технических наук, доцент, кафедра «Информационно-вычислительные системы», Пензенский государственный университет. E-mail: bausovazoya@mail.ru

Гамазина Анастасия Николаевна, студентка, Пензенский государственный университет. E-mail: gamazina.nascka@yandex.ru

Дугина Юлия Николаевна, студентка, Пензенский государственный университет. E-mail: yula.dugina@gmail.com

Старикова Александра Юрьевна, кандидат технических наук, заведующий кабинетом интеллектуальной собственности Научно-исследовательского института фундаментальных и прикладных измерений, Пензенский государственный университет. E-mail: Atlanta_b@mail.ru

УДК 00.005 Баусова, З. И.

Решение задач целочисленной линейной оптимизации / З. И. Баусова, А. Н. Гамазина, Ю. Н. Дугина, А. Ю. Старикова // Вестник Пензенского государственного университета. - 2017. - № 4 (20). — С. 117-121.

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