Метод отсекающих плоскостей (метод Гомори)



Коломенский институт (филиал)

федерального государственного бюджетного образовательного учреждения

высшего образования

«МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

 

Кафедра автоматизации производства и информационных технологий

 

 

П.С. Романов

 

 

Методические указания по выполнению лабораторной работы

По дисциплине

«МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ПРОЦЕССОВ

В МАШИНОСТРОЕНИИ»

Моделирование и решение целочисленных задач линейного

программирования при планировании производства

 

 

Коломна – 2019


Содержание

1. Введение ....................................................................................................................... 2
2. Постановка оптимизационных целочисленных задач планирования производства.. 2
2.1. Общие сведения о задачах целочисленного программирования............................. 2
2.2. Примеры постановки оптимизационных задач планирования производства……… 4
2.3. Методика применения Microsoft EXCEL для решения задач ЦП…………………….. 7
2.4. Методика решения задач целочисленного программировании с помощью программы «Задача целочисленного программирования (отсечения Гомори)»…….   15
3. Задание для лабораторной работы............................................................................ 16
4. Структура отчета......................................................................................................... 17
5. Исходные данные........................................................................................................ 18
6. Литература................................................................................................................... 20

Введение

Лабораторная работа выполняется на основе теоретических положений теории математического программирования на ПЭВМ с использованием табличного процессора Microsoft EXCEL, Microsoft WORD в среде Windows 9*/NT/2000/ХР и программ «Задача линейного программирования», «Решение задач целочисленного программирования (Отсечения Гомори)» разработанных в [1,2]. Цель работы:

изучение ряда положений теории математического программирования;

применение методов целочисленного программирования для моделирования технологических и производственных задач;

получение умений и навыков:

в использовании методов математического моделирования для решения оптимизационных технологических и производственных задач, сводящихся к задаче целочисленного линейного программирования, на ЭВМ;

в анализе полученных результатов.

 

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

Производства

Общие сведения о  задачах целочисленного программирования

Большой класс прикладных задач оптимизации сводится к задачам целочисленного программирования (ЦП), целочисленный, дискретный характер решения определяется физическим смыслом этих задач.

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

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

Напомним, что в общем виде задачу линейного программирования (ЗЛП) можно записать следующим образом: требуется найти оптимальные значения n переменных х1, х2, . . ., х n доставляющие экстремум (максимум (или минимум)) линейной целевой функции:

                             ,                       (1)

при ограничениях

(2)     (3)     (4)   (5)
                                    

 

где cj (j=1,2,...,n), aij{i=1,2,...,m; j=1,2,...,n), bi (i=1,2,...,m) — заданные числа.

Отличительная особенность ЗЛП состоит в линейности всех функций, задающих целевое условие (целевой функции) (1), ограничений (2)-(5). Причем (5) – это условие неотрицательности всех переменных, что вытекает из реального технологического (экономического) смысла переменных. Ограничения вида (5) называют тривиальными.

При постановке целочисленной задачи линейного программирования к условиям (2)-(5) добавляется условие: xj - неотрицательные целые числа.                                     (6)

Для решения задач ЦП разработаны две группы методов: методы отсечения; комбинаторные методы.

Общая идея всех методов отсечения заключается в том, что решается задача линейного программирования (1)-(5) без учета условия (6). Если полученное оптимальное решение является целочисленным, то данное решение совпадает с решением задачи (1) - (6). Если же решение (1)-(5) не является целочисленным, то вводятся дополнительные ограничения, отсекающие нецелочисленные вершины многогранника, и процесс решения повторяется. После определенного количества аналогичных итераций находится оптимальное целочисленное решение задачи (1) - (6).

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

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

2. Вводим дополнительное ограничение, исключающее полученное нецелочисленное решение, и возвращаемся к п. 1. Более подробно различные алгоритмы отсечения рассмотрены в работе [3].

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

Комбинаторные методы решения задач целочисленного программирования можно разделить на две группы:

методы динамического программирования,

методы ветвей и границ.

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

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

 

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

Задача 1. Объемное планирование работы механического участка для достижения максимальной загрузки технологического оборудования [4]

Имеется m-станков (или m-групп станков), на которых могут быть изготовлены n-типов деталей. Трудоемкость обработки j-ой детали на i-ом станке составляет tij, час (см. табл. 1), известны также фонды времени работы каждого станка (группы станков) – Bi.

Таблица 1

Исходные данные к задаче

Станки

Трудоемкость при обработке деталей каждого типа

Фонд времени работы оборудования, час

1 2 n
1 t11 t12 t1n B1
2 t21 t22 t2n B2
m tm1 tm2 tmn Bm

 

Требуется определить количество деталей каждого наименования (x1, x2, …, xn), при обработке которых достигается максимальная загрузка оборудования участка. Математически задача сводится к максимизации следующей ЦФ:

                                          ,                               (7)

при ограничениях:

                                                                       (8)

                                                                                                        (9)

Из физического смысла этой задачи вытекает, что количество деталей каждого наименования должно быть целыми числами, т.е. xj - неотрицательные целые числа.

 

Задача 2. Планирование работы механического участка для достижения максимальной прибыли [4]

Для изготовления n видов изделий завод использует m видов сырья, запас каждого из которых ограничен Ri. Для изготовления изделий задействованы s видов оборудования, для которых ограничен фонд рабочего времени Bk. Также известна прибыль от реализации каждого изделия Mj. Исходные данные сведены в табл. 2. Требуется определить план выпуска продукции, при котором будет достигнута максимальная прибыль.

Если обозначить через xj – число изделий каждого из n видов выпускаемых изделий то, математически задача сведется к максимизации ЦФ:

                     ,             (10)

при ограничениях:

                                                               (11)

                                                                     (12)

                                                                                                     (13)

Таблица 2

Исходные данные к задаче

Виды сырья

Потребность в сырье для изделий, кг

Ресурсы, кг

1 2 n
1 p11 p12 p1n R1
2 p21 p22 p2n R2
m pm1 pm2 pmn Rm

Оборудование

Время изготовления изделий, час

Фонд времени работы оборудования, час

1 2 n
1 t11 t12 t1n B1
2 t21 t22 t2n B2
s ts1 ts2 tsn Bs
Прибыль на одно изделие, усл. руб. М1 М2 М n

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

 

Задача 3. Задача об оптимальном раскрое листового материала [4].

На заготовительный участок поступило некоторое количество листового материала, из которых необходимо получить (вырезать) заготовки n типов, причем число заготовок j-типа должно оказаться не меньшим Nj. Кроить листовой материал можно m способами, при каждом из которых получаются zi1 заготовок 1-го типа, zi2 – заготовок 2-типа и т.д. Исходные данные сведены в табл. 3.

 

Таблица 3

Исходные данные к задаче

Способы раскроя

Число заготовок j-го типа, получаемых при раскрое i-м методом

1 2 j n
1 z11 z12 ... z1j z1n
2 z21 z22 z2j z2n
i zi1 zi2 zij zin
m zm1 zm2 zmj zmn
Требуемое количество заготовок N1 N2 Nj Nn

Если обозначить xi – число листов раскраиваемых i-м способом, то математически можно записать задачу минимизации ЦФ:

                                             ,                                      (14)

при ограничениях:

                                                                     (15)

                                                                                                            (16)

Здесь xi – целые числа, что следует из физического смысла задачи.

Задача 4. Задача нахождения наиболее рационального способа использования сырья и материалов [5].

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

Таблица 4

Исходные данные к задаче

Наименование ресурса

Вид продукции

Объем ресурса

П1 П2 П3

Расход ресурса на единицу продукции

Трудовые ресурсы, человеко-час a1 а2 а3 а
Станочное оборудование, станко-смена b1 b2 b3 b
Полуфабрикаты, кг с1 с2 с3 с
Прибыль с единицы продукции, руб. p1 p2 p3 max
Выпуск, шт. xl х2 х3  

2.3. Методика применения Microsoft EXCEL для решения задач целочисленного программировании (ЦП) [6]

 

Решение задач целочисленного программирования проводится аналогично решению ЗЛП в табличном редакторе Microsoft Excel.

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

1) Ввести условие задачи:

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

2. ввести исходные данные в экранную форму: коэффициенты ЦФ, коэффициенты при переменных в ограничениях, правые части ограничений;

3. ввести зависимости из математической модели в экранную форму: формулу для расчета ЦФ, формулы для расчета значений левых частей ограничений;

4. задать ЦФ (в окне "Поиск решения"): целевую ячейку, направление оптимизации ЦФ;

5. ввести ограничения и граничные условия (в окне "Поиск решения"): ячейки со значениями переменных, граничные условия для допустимых значений переменных, соотношения между правыми и левыми частями ограничений. При вводе ограничений в отличие от ЗЛП при решении ЦП вводят дополнительные ограничения на целочисленность.

2) Решить задачу:

1. установить параметры решения задачи (в окне "Поиск решения");

2. запустить задачу на решение (в окне "Поиск решения");

3. выбрать формат вывода решения (в окне "Результаты поиска решения").

Рассмотрим пример нахождения решения для следующей одноиндексной задачи ЛП:

                                           (23)

                          xj – целые.

Ввод исходных данных

1. Создание экранной формы и ввод в нее условия задачи

Экранная форма для ввода условий задачи (23) вместе с введенными в нее исходными данными представлена на рис.1.

Рис.1. Экранная форма задачи (23) (курсор в ячейке F6)

 

В экранной форме на рис.1 каждой переменной и каждому коэффициенту задачи поставлена в соответствие конкретная ячейка в Excel. Имя ячейки состоит из буквы, обозначающей столбец, и цифры, обозначающей строку, на пересечении которых находится объект задачи ЦП. Так, например, переменным задачи (23) соответствуют ячейки B3 (x1), C3 (x2), D3 (x3), E3 (x4), коэффициентам ЦФ соответствуют ячейки B6 (c1=130,5), C6 (c2=20), D6 (c3=56), E6 (c4=87,8), правым частям ограничений соответствуют ячейки H10 (b1=756), H11 (b2=450), H12 (b3=89) и т.д.

2. Ввод зависимостей из математической модели в экранную форму

Зависимость для ЦФ

В ячейку F6, в которой будет отображаться значение ЦФ, необходимо ввести формулу, по которой это значение будет рассчитано. Согласно (23) значение ЦФ определяется выражением                                                                  (24)

Используя обозначения соответствующих ячеек в Excel (см. рис.1), формулу для расчета ЦФ (24) можно записать как сумму произведений каждой из ячеек, отведенных для значений переменных задачи (B3, C3, D3, E3), на соответствующую ячейку, отведенную для коэффициентов ЦФ (B6, C6, D6, E6), то есть               B6·B3+C6·C3+D6·D3+E6·E3     (25)

Чтобы задать формулу (25) необходимо в ячейку F6 ввести следующее выражение и нажать клавишу "Enter"            =СУММПРОИЗВ(B$3;E$3;B6:E6)                      (26)

где символ $ перед номером строки 3 означает, что при копировании этой формулы в другие места листа Excel номер строки 3 не изменится;

символ : означает, что в формуле будут использованы все ячейки, расположенные между ячейками, указанными слева и справа от двоеточия (например, запись B6:E6 указывает на ячейки B6, C6, D6 и E6). После этого в целевой ячейке появится 0 (нулевое значение) (рис.2).

Рис.2. Экранная форма задачи (23) после ввода всех необходимых формул

(курсор в ячейке F6)

 

Примечание 1. Существует другой способ задания функций в Excel с помощью режима "Вставка функций", который можно вызвать из меню "Вставка" или при нажатии кнопки fx на стандартной панели инструментов. Так, например, формулу (26) можно задать следующим образом: курсор в поле F6; нажав кнопку fx, вызовите окно "Мастер функций – шаг 1 из 2"; выберите в окне "Категория" категорию "Математические"; в окне "Функция" выберите функцию СУММПРОИЗВ; в появившемся окне "СУММПРОИЗВ" в строку "Массив 1" введите выражение B$3:E$3, а в строку "Массив 2" – выражение B6:E6 (рис.3);

после ввода ячеек в строки "Массив 1" и "Массив 2" в окне "СУММПРОИЗВ" появятся числовые значения введенных массивов (см. рис.3), а в экранной форме в ячейке F6 появится текущее значение, вычисленное по введенной формуле, то есть 0 (так как в момент ввода формулы значения переменных задачи нулевые).

Рис.3. Ввод формулы для расчета ЦФ в окно "Мастер функций"

 

3. Ввод зависимостей для левых частей ограничений

Левые части ограничений задачи (23) представляют собой сумму произведений каждой из ячеек, отведенных для значений переменных задачи (B3, C3, D3, E3), на соответствующую ячейку, отведенную для коэффициентов конкретного ограничения (B10, C10, D10, E10 – 1-е ограничение; B11, C11, D11, E11 – 2-е ограничение и B12, C12, D12, E12 – 3-е ограничение). Формулы, соответствующие левым частям ограничений, представлены в табл.5.

Как видно из табл.5, формулы, задающие левые части ограничений задачи (23), отличаются друг от друга и от формулы (26) в целевой ячейке F6 только номером строки во втором массиве. Этот номер определяется той строкой, в которой ограничение записано в экранной форме. Поэтому для задания зависимостей для левых частей ограничений достаточно скопировать формулу из целевой ячейки в ячейки левых частей ограничений. Для этого необходимо:

поместить курсор в поле целевой ячейки F6 и скопировать в буфер содержимое ячейки F6 (с помощью правой кнопки «мыши» и выпадающего окна и команды «Копировать» или клавишами "Ctrl-Insert");

Таблица 5

Формулы, описывающие ограничения модели (23)

Левая часть ограничения Формула Excel
 или =СУММПРОИЗВ(B$3:E$3;B10:E10)
 или =СУММПРОИЗВ(B$3:E$3;B11:E11)
 или =СУММПРОИЗВ(B$3:E$3;B12:E12)

помещать курсор поочередно в поля левой части каждого из ограничений, то есть в F10, F11 и F12, и вставлять в эти поля содержимое буфера (с помощью правой кнопки «мыши» и выпадающего окна и команды «Вставить» или клавишами "Shift-Insert") (при этом номер ячеек во втором массиве формулы будет меняться на номер той строки, в которую была произведена вставка из буфера);

на экране в полях F10, F11 и F12 появится 0 (нулевое значение) (см. рис.2).

Проверка правильности введения формул

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

4. Задание ЦФ

Дальнейшие действия производятся в окне "Поиск решения", которое вызывается из меню "Сервис" (рис.6): поставьте курсор в поле "Установить целевую ячейку";

введите адрес целевой ячейки $F$6 или сделайте одно нажатие левой клавиши мыши на целевую ячейку в экранной форме ¾ это будет равносильно вводу адреса с клавиатуры;

введите направление оптимизации ЦФ, щелкнув один раз левой клавишей мыши по селекторной кнопке "максимальному значению".

5. Ввод ограничений и граничных условий

Задание ячеек переменных

В окно "Поиск решения" в поле "Изменяя ячейки" впишите адреса $B$3:$E$3. Необходимые адреса можно вносить в поле "Изменяя ячейки" и автоматически путем выделения мышью соответствующих ячеек переменных непосредственно в экранной форме.

Рис. 4. Проверка правильности введения формулы в целевую ячейку F6

 

Рис. 5. Проверка правильности введения формулы в ячейку F12

для левой части ограничения 3

 

Рис. 6. Окно "Поиск решения" задачи (23)

 

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

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

Нажмите кнопку "Добавить", после чего появится окно "Добавление ограничения" (рис.7). В поле "Ссылка на ячейку" введите адреса ячеек переменных $B$3:$E$3. Это можно сделать как с клавиатуры, так и путем выделения мышью всех ячеек переменных непосредственно в экранной форме. В поле знака откройте список предлагаемых знаков и выберите . В поле "Ограничение" введите адреса ячеек нижней границы значений переменных, то есть $B$4:$E$4. Их также можно ввести путем выделения мышью непосредственно в экранной форме.

Рис. 7. Добавление условия неотрицательности переменных задачи (23)

Задание знаков ограничений , , =

Нажмите кнопку "Добавить" в окне "Добавление ограничения". В поле "Ссылка на ячейку" введите адрес ячейки левой части конкретного ограничения, например $F$10. Это можно сделать как с клавиатуры, так и путем выделения мышью нужной ячейки непосредственно в экранной форме. В соответствии с условием задачи (23) выбрать в поле знака необходимый знак, например =. В поле "Ограничение" введите адрес ячейки правой части рассматриваемого ограничения, например $H$10. Аналогично введите ограничения: $F$11>=$H$11, $F$12<=$H$12. Подтвердите ввод всех перечисленных выше условий нажатием кнопки OK.

Окно "Поиск решения" после ввода всех необходимых данных задачи (23) представлено на рис. 6. Если при вводе условия задачи возникает необходимость в изменении или удалении внесенных ограничений или граничных условий, то это делают, нажав кнопки "Изменить" или "Удалить" (см. рис. 6).

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

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

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

В окне "Поиск решения" (меню "Сервис" ® "Поиск решения"), нажмите кнопку "Добавить" и в появившемся окне "Добавление ограничений" введите ограничения следующим образом (рис.9):

в поле "Ссылка на ячейку" введите адреса ячеек переменных задачи, то есть $B$3:$E$3;

в поле ввода знака ограничения установите "целое";

подтвердите ввод ограничения нажатием кнопки "OK".

Рис.8. Экранная форма задачи (23) при условии целочисленности ее переменных

 

Рис.9. Ввод условия целочисленности переменных задачи (23)

 

Решение задачи

1. Установка параметров решения задачи

Задача запускается на решение в окне "Поиск решения". Но предварительно для установления конкретных параметров решения задач оптимизации определенного класса необходимо нажать кнопку "Параметры" и заполнить некоторые поля окна "Параметры поиска решения" (рис.10).

Рис.10. Параметры поиска решения, подходящие для большинства задач ЦП ЗЛП

 

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

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

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

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

Параметр "Сходимость" применяется только при решении нелинейных задач.

Установка флажка "Линейная модель" обеспечивает ускорение поиска решения линейной задачи за счет применение симплекс-метода.

Подтвердите установленные параметры нажатием кнопки "OK".

2. Запуск задачи на решение

Запуск задачи на решение производится из окна "Поиск решения" путем нажатия кнопки "Выполнить".

После запуска на решение задачи ЛП на экране появляется окно "Результаты поиска решения" с одним из сообщений, представленных на рис.11, 12 и 13.

Иногда сообщения, представленные на рис.10 и 11, свидетельствуют не о характере оптимального решения задачи, а о том, что при вводе условий задачи в Excel были допущены ошибки, не позволяющие Excel найти оптимальное решение, которое в действительности существует. Если при заполнении полей окна "Поиск решения" были допущены ошибки, не позволяющие Excel применить симплекс-метод для решения задачи или довести ее решение до конца, то после запуска задачи на решение на экран будет выдано соответствующее сообщение с указанием причины, по которой решение не найдено.

 

Рис.11. Сообщение об успешном решении задачи

 

Рис.12. Сообщение при несовместной системе ограничений задачи

 

Рис.13. Сообщение при неограниченности ЦФ в требуемом направлении

 

Иногда слишком малое значение параметра "Относительная погрешность" не позволяет найти оптимальное решение. Для исправления этой ситуации увеличивайте погрешность поразрядно, например от 0,000001 до 0,00001 и т.д.

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

Для получения же ответа (значений переменных, ЦФ и левых частей ограничений) прямо в экранной форме просто нажмите кнопку "OK". После этого в экранной форме появляется оптимальное решение задачи (рис.14), с учетом ограничения по целочисленности значений ее переменных.

 

Анализ оптимального решения

Анализ оптимального решения начинается после успешного решения задачи, когда на экране появляется диалоговое окно «Результат поиска решения». Решение найдено см. рис.9. С помощью этого диалогового окна можно вызвать отчеты трех типов: "Результаты", "Устойчивость", "Пределы". Отчеты каждого типа могут быть вызваны по следующему алгоритму.

Рис.14. Решение задачи (23) при условии целочисленности ее переменных

 

Алгоритм 1. Вызов отчетов анализа. На экране: диалоговое окно «Результат поиска решения» Решение найдено (рис. 11).

1. Курсор на тип вызываемого отчета. Начнем с Отчета по результатам, т.е. "Результаты".

2. ОК. На экране появится вызванный отчет на новом листе, на ярлычке которого указано название отчета.

3. Курсор на ярлычок с названием отчета.

4. Щелчок левой кнопкой мыши один раз. На экране: вызванный отчет.

 

Отчет по результатам

Отчет состоит из трех таблиц:

Таблица 1 приводит сведения о ЦФ. В столбце Исходно приведены значения целевой функции до начала вычислений.

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

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

Для Ограничений в графе Формула приведены зависимости, которые были введены в диалоговое окно Поиск решения; в графе Значение приведены величины использованного ресурса: в графе Разница показано количество неиспользованного ресурса. Если ресурс используется полностью, то в графе Состояние указывается связанное; при неполном использовании ресурса в этой графе указывается не связан.

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

Отчет по устойчивости

Отчет по устойчивости состоит из двух таблиц.

В таблице 1 приводятся следующие значения для переменных:

результат решения задачи;

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

коэффициенты целевой функции;

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

В таблице 2 приводятся аналогичные значения для ограничений:

величина использованных ресурсов;

теневая цена, т.е. двойственные оценки, которые показывают как изменится ЦФ при изменении ресурсов на единицу;

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

Отчет по пределам

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

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

 

2.4. Методика решения задач целочисленного программировании с помощью программы «Задача целочисленного программирования (отсечения Гомори)» [2]

 

Метод отсекающих плоскостей (метод Гомори)

 

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

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

.

 В таком виде использовать неравенство в дробном алгоритме метода Гомори нельзя. Умножим все элементы неравенства на 6. Тогда неравенство примет следующий вид:

6x1 + 2x2 £ 39 и в данной форме оно используется при решении задачи.

На первом шаге метода решается задача линейного программирования (ЗЛП) без условия целочисленности. Если значения оптимальных переменных - целочисленные, то это и есть решение задачи. В противном случае вводится дополнительное ограничение (отсекающая плоскость) и решается новая ЗЛП. Данная процедура повторяется до тех пор, пока оптимум не станет целочисленным.

Порядок применения программы "Решение задач целочисленного программирования".

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

max z = 18x1 + 9x2 + 8x3;

          2x1 + 21x2 + 4x3 £ 15;

          6x1 + 20x2 + 5x3 £ 20;

          xi ³ 0, целые.

Для приведения задачи к стандартной форме вводим дополнительные переменные:

max z = 18x1 + 9x2 + 8x3;

          2x1 + 21x2 + 4x3 + x4 = 15;

          6x1 + 20x2 + 5x3 + x5 = 20;

          xi ³ 0, целые.

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

 

Исходные данные

1 Число переменных 5
2 Число ограничений 2
3 Признак оптимизации 1
4 Число этапов моделирования 1

Коэффициенты целевой функции

  х1 х2 х3 х4 х5
c 18 9 8 0 0

Фиктивные слагаемые коэффициентов целевой функции

  х1 х2 х3 х4 х5
cm 0 0 0 0 0

Номера базисных переменных

  огр.1 огр.2
x 4 5

Матрица коэффициентов

  x1 x2 x3 x4 x5 правые части
огр. 1 2 21 4 1 0 15
огр. 2 6 20 5 0 1 20

 

Номер отсечения Гомори 2

 

Результирующая симплекс-таблица

  x1 x2 x3 x4 x5 x6 x7 правые части
z 0 45 0 0 0 2 8 54
zm 0 0 0 0 0 0 0 0
x4 0 15 0 1 0 6 -4 9
x1 1 3 0 0 0 1 0 3
х3 0 0 1 0 0 -2 1 0
х5 0 2 0 0 1 4 -5 2

 

Решение задачи: x1= 3, x2= 0, x3= 0, z= 54, и целочисленность достигнута за две итерации метода отсечений Гомори.

 

 


Дата добавления: 2021-02-10; просмотров: 224; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!