Метод Гомори решения задач целочисленного программирования
Изучение экстремальных задач и разработка методов их решения. Решение задач математического программирования, в которых все или некоторые переменные должны принимать только целочисленные значения. Приведение системы ограничений к каноническому виду.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 29.04.2018 |
Размер файла | 68,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Сибирский федеральный университет
Метод Гомори решения задач целочисленного программирования
Соловьева Т.А.
Христофорова Е.И.,
научный руководитель:
доцент кафедры «Высшей математики - 3»
Климович Л.В.
Цель: изучить метод решения задач целочисленного программирования.
Объект исследования: задачи линейного программирования.
Предмет исследования: метод Гомори для решения задач целочисленного программирования.
Задачи:
1. изучить метод решения задач целочисленного программирования.
2. решить задачу целочисленного программирования методом Гомори.
В настоящее время нельзя назвать область человеческой деятельности, в которой не приходилось бы делать выбор. Многие задачи, с которыми приходится иметь дело, являются многовариантными. Среди множества рассматриваемых вариантов, мы привыкли принимать решение, исходя из здравого смысла, опыта или просто «на глаз». Однако это решение не всегда являлось верным, экономически выгодным и оптимальным. При современных масштабах производства даже незначительные ошибки оборачиваются громадными потерями. В связи с этим возникла необходимость применять для анализа определенные новые метода расчета. Такие методы объединили под общим названием «математическое программирование».
Математическое программирование представляет собой математическую дисциплину, занимающуюся изучением экстремальных задач и разработкой методов их решения.
Нас будет интересовать линейное целочисленное программирование.
Целочисленное программирование ориентировано на решение задач математического программирования, в которых все или некоторые переменные должны принимать только целочисленные значения.
Наиболее естественным классом практических задач, которые сводятся к задачам целочисленного программирования, являются задачи, в которых переменные -- физически неделимые величины (например, количество единиц какой-либо продукции: груз, оборудование).
Рассмотрим решение задачи целочисленного программирования методом Гомори на конкретном примере.
Задача. В цехе предприятия решено установить дополнительное оборудование, для размещения которого выделено 19 м2 площади. На приобретение оборудования предприятие может израсходовать 16 млн. руб., при этом оно может купить оборудование двух видов. Комплект оборудования I вида стоит 4 млн. руб., а II вида - 1 млн. руб. Приобретение одного комплекта оборудования I вида позволяет увеличить выпуск продукции в смену на 8 ед., а одного комплекта оборудования II вида - на 6 ед. Зная, что для установки одного комплекта оборудования I вида требуется 2 м2 площади, а оборудования II вида - 5 м2 площади, определить такой набор дополнительного оборудования, который дает возможность максимально увеличить выпуск продукции.
Решение. Составим математическую модель задачи. Предположим, что предприятие приобретет х1 комплектов I вида и х2 комплектов оборудования II вида. Тогда переменные х1 и х2 должны удовлетворять следующим неравенствам:
Если предприятие приобретет указанное количество оборудования, то общее увеличение выпуска продукции составит
По своему экономическому содержанию переменные х1 и х2 могут принимать лишь целые неотрицательные значения, т.е.
Приведем систему ограничений к каноническому виду, прибавив дополнительные переменные х3, х4.
Метод Гомори (отсечения) решения задачи целочисленного программирования заключается в следующем. Сначала задачу надо решить без условия целочисленности. Если решение целочисленное (все требуемые компоненты задачи являются целыми числами), то задача решена. Если решение содержит нецелые компоненты, то в задаче необходимо ввести дополнительные ограничения.
Решим ее симплекс-методом без учета требования целочисленности (табл. 1).
Таблица 1
базис |
х1 |
х2 |
х3 |
х4 |
bi |
сi |
|
х3 |
2 |
5 |
1 |
0 |
19 |
19/2 |
|
х4 |
4 |
1 |
0 |
1 |
16 |
4 |
|
-F |
8 |
6 |
0 |
0 |
0 |
||
х2 |
0 |
1 |
2/9 |
- 1/9 |
22/9 |
||
х1 |
1 |
0 |
- 1/18 |
5/18 |
61/18 |
||
-F |
0 |
0 |
- 8/9 |
-14/9 |
-376/9 |
Все коэффициенты целевой функции при свободных переменных отрицательны, следовательно, найдено оптимальное решение: Fmax= 376/9=41 при плане .
Среди компонент оптимального решения задачи имеются нецелые числа. Выбираем уравнение, для которого дробная часть свободного члена наибольшая.
; . Выбираем первое уравнение.
В общем виде это уравнение имеет вид:
Согласно этому уравнению составляется следующее неравенство (ограничение, отсечение):
Приведем уравнение к канонической форме и свободный член перенесем в правую часть.
Это уравнение присоединим к системе ограничений решенной задачи, т.е. составим новую таблицу Гаусса с дополнительным столбцом для нового неизвестного xn+1, содержащую последний блок таблицы решенной задачи и новую строку, соответствующую построенному уравнению (табл. 2).
Таблица 2
базис |
х1 |
х2 |
х3 |
х4 |
x5 |
bi |
сi |
|
х2 |
0 |
1 |
2/9 |
- 1/9 |
0 |
22/9 |
11 |
|
х1 |
1 |
0 |
- 1/18 |
5/18 |
0 |
61/18 |
||
x5 |
0 |
0 |
- 2/9 |
- 8/9 |
1 |
- 4/9 |
2 |
|
-F |
0 |
0 |
- 8/9 |
-14/9 |
0 |
-376/9 |
||
х2 |
0 |
1 |
1/4 |
0 |
- 1/8 |
5/2 |
||
х1 |
1 |
0 |
- 1/8 |
0 |
5/16 |
13/4 |
||
x4 |
0 |
0 |
1/4 |
1 |
-9/8 |
1/2 |
||
-F |
0 |
0 |
- 1/2 |
0 |
-7/4 |
-41 |
Получили новое оптимальное решение: Fmax = 41 при плане
Максимальная дробная часть свободного члена в последнем блоке соответствует первой строке, т.е. уравнению
Составим новое отсечение:
или уравнение
Новая рабочая таблица имеет вид:
Таблица 3
базис |
х1 |
х2 |
х3 |
х4 |
x5 |
x6 |
bi |
сi |
|
х2 |
0 |
1 |
1/4 |
0 |
- 1/8 |
0 |
5/2 |
||
х1 |
1 |
0 |
- 1/8 |
0 |
5/16 |
0 |
13/4 |
52/5 |
|
x4 |
0 |
0 |
1/4 |
1 |
-9/8 |
0 |
1/2 |
||
x6 |
0 |
0 |
- 1/4 |
0 |
- 7/8 |
1 |
- 1/2 |
4/7 |
|
-F |
0 |
0 |
- 1/2 |
0 |
-7/4 |
0 |
-41 |
||
х2 |
0 |
1 |
2/7 |
0 |
0 |
- 1/7 |
18/7 |
||
х1 |
1 |
0 |
- 3/14 |
0 |
0 |
5/14 |
43/14 |
||
x4 |
0 |
0 |
4/7 |
1 |
0 |
-9/7 |
8/7 |
||
x5 |
0 |
0 |
2/7 |
0 |
1 |
-8/7 |
4/7 |
||
-F |
0 |
0 |
0 |
0 |
0 |
-2 |
-40 |
Новое оптимальное решение: Fmax= 40 при плане
Таким образом, делаем еще три отсечения с целью получения целочисленного решения (табл. 4).
Таблица 4
базис |
х1 |
х2 |
х3 |
х4 |
x8 |
x9 |
bi |
сi |
|
х2 |
0 |
1 |
0 |
0 |
2 |
-1 |
2 |
||
х1 |
1 |
0 |
0 |
0 |
-1 |
1 |
3 |
||
x3 |
0 |
0 |
1 |
0 |
-8 |
3 |
3 |
||
x4 |
0 |
0 |
0 |
1 |
2 |
-3 |
2 |
||
-F |
0 |
0 |
0 |
0 |
-4 |
-2 |
-36 |
Получен оптимальный целочисленный план: Fmax = 36 при плане (3;2;3;2). Для нашей задачи достаточно было бы целочисленности только первых двух переменных.
Согласно данному решению предприятию необходимо приобрести 3 комплекта оборудования I вида и 2 комплекта II вида, что даст возможность максимально увеличить выпуск продукции до 36 единиц. Излишнюю площадь х3 = 3 м2 и полученную экономию денежных средств в размере х4 = 2 млн. руб. можно использовать для извлечения дополнительной выгоды.
Таким образом, мы изучили метод решения задач целочисленного программирования. Методом Гомори решили конкретную задачу.
математический программирование целочисленный
Размещено на Allbest.ru
Подобные документы
Постановка задачи линейного программирования и формы ее записи. Понятие и методика нахождения оптимального решения. Порядок приведения задач к каноническому виду. Механизмы решения задач линейного программирования аналитическим и графическим способами.
методичка [366,8 K], добавлен 16.01.2010Реализация алгоритма Гомори на языке программирования Object Pascal при использовании среды разработки Borland Delphi 7. Рассмотрение основных способов компьютерного осуществления решения задач целочисленного программирования симплексным методом.
курсовая работа [1,8 M], добавлен 28.03.2013Основные понятия математического линейного программирования. Постановка и методы решения заданий целочисленного и параметрического составления программ. Примеры вычисления задач с параметрами в целевой функции и в свободных членах системных ограничений.
дипломная работа [432,0 K], добавлен 25.10.2010Изучение экстремальных задач и поиск их решений. Выбор метода решения и приведения задачи к каноническому виду и к задаче линейного программирования. Метод искусственного базиса. Модифицированный симплекс-метод. Написание программы на языке С++Builder 6.
курсовая работа [343,0 K], добавлен 28.11.2010Особенности решения задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях нелинейного программирования. Общая характеристика классических и числовых методов решения.
дипломная работа [2,4 M], добавлен 20.01.2013Строение системы уравнений-ограничений и ее переменных, графический способ решения задач линейного программирования на плоскости. Выражение неизвестных через две независимые переменные, являющиеся координатными осями графика. Значение целевой функции.
лабораторная работа [61,4 K], добавлен 07.01.2011Характеристика параметрических методов решения задач линейного программирования: методы внутренней и внешней точки, комбинированные методы. Алгоритм метода барьерных поверхностей и штрафных функций, применяемых для решения задач большой размерности.
контрольная работа [59,8 K], добавлен 30.10.2014Расчет производства необходимого количества продукции для получения максимальной прибыли предприятия. Математическая модель для решения задач линейного программирования. Построение ограничений и целевых функций. Исследование чувствительности модели.
задача [74,7 K], добавлен 21.08.2010Анализ метода линейного программирования для решения оптимизационных управленческих задач. Графический метод решения задачи линейного программирования. Проверка оптимального решения в среде MS Excel с использованием программной надстройки "Поиск решения".
курсовая работа [2,2 M], добавлен 29.05.2015Особенности задач линейного программирования. Симплексный метод решения задач линейного программирования. Обоснование выбора языка, инструментария программирования, перечень идентификаторов и блок-схема алгоритма. Логическая схема работы программы.
дипломная работа [2,4 M], добавлен 13.08.2011