
- •Часть I
- •Часть 1. Линейное программирование
- •Задания для решения в аудитории
- •1.2. Виды задач линейного программирования
- •1.2.1. Приведение задачи линейного программирования к канонической форме
- •Задания для решения в аудитории
- •1.2.2. Переход от канонической формы задачи линейного программирования к стандартной форме
- •Задания для решения в аудитории
- •1.3.1. Графический метод решения задач линейного программирования с переменными
- •Задания для решения в аудитории
- •Задания для самостоятельной подготовки
- •1.4. Симплексный метод решения задач линейного программирования
- •1.4.1. Нахождение начального допустимого базисного решения
- •Задания для решения в аудитории
- •1.4.2. Составление и преобразование симплексных таблиц
- •Задания для решения в аудитории
- •1. Решить симплексным методом задачу линейного программирования: , , , .
- •1.4.3. Особые случаи симплексного метода
- •Задания для решения в аудитории
- •1. Решить симплексным методом задачу линейного программирования: , , , .
- •2. Решить симплексным методом задачу линейного программирования: , , , . Задания для самостоятельной подготовки
- •1.5. Метод искусственного базиса
- •1.6.2. Первая теорема двойственности
- •Задания для самостоятельной подготовки
- •1.7. Метод Гомори решения задач целочисленного программирования
- •Задания для самостоятельной подготовки
- •1.8. Транспортная задача линейного программирования
- •1.8.1. Математическая модель транспортной задачи
- •1.8.2. Опорное решение транспортной задачи
- •1.8.3. Метод потенциалов
- •Задания для самостоятельной подготовки
1.6.2. Первая теорема двойственности
Решив одну из пары двойственных задач, можно или найти оптимальное решение другой задачи, не решая ее, или установить его отсутствие.
Теорема. Если одна из пары двойственных задач имеет оптимальное решение, то и двойственная к ней имеет оптимальное решение; причем значения целевых функций задач на своих оптимальных решениях совпадают.
Если для одной из пары двойственных задач целевая функция неограниченна, то для другой система ограничений несовместна.
Если
найдено решение одной из двойственных
задач симплексным методом, то оптимальное
решение второй задачи, двойственной к
исходной, можно найти по формуле
.
Матрица
состоит из координат векторов, входящих
в базис оптимального решения двойственной
задачи.
Матрица
находится из последней симплексной
таблицы. Ее столбцы располагаются под
столбцами единичной матрицы, под
единичными векторами, образующими базис
начального опорного решения.
Координатами
вектора
являются коэффициенты целевой функции
при базисных переменных оптимального
решения. Коэффициенты записываются в
том же порядке, в каком векторы условий
входят в базис оптимального решения.
Задания для самостоятельной подготовки
Для следующих задач составить и решить двойственные, используя решения двойственных найти решения исходных:
1)
2)
3)
Ответы:
1.
.
2.
Задача
решения не имеет,
.
3.
.
1.7. Метод Гомори решения задач целочисленного программирования
В большинстве задач линейного программирования, например, в задачах, в которых переменные означают количество единиц неделимой продукции, число станков при загрузке оборудования, число турбин в энергосистеме, число вычислительных машин, компоненты решения должны выражаться в целых числах, то есть быть целочисленными.
Общая задача линейного целочисленного программирования:
Найти такое решение , при котором линейная функция
(1)
принимает
максимальное или минимальное значение
при ограничениях
,
(2)
,
(3)
- целые числа (4).
В самом простом случае, если компоненты оптимального решения оказываются нецелочисленными, их округляют до ближайших целых чисел. Этот метод применяют тогда, когда отдельная единица совокупности составляет малую часть объема всей совокупности. В противном случае округление может привести к далекому от оптимального целочисленному решению, поэтому используют специально разработанные методы.
Сущность методов отсечения состоит в том, что сначала задача решается без условия целочисленности. Если полученный план целочисленный, задача решена. В противном случае к ограничениям задачи добавляется новое ограничение, обладающее следующими свойствами:
оно должно быть линейным;
должно отсекать найденный оптимальный нецелочисленный план;
не должно отсекать ни одного целочисленного плана.
Дополнительное ограничение, обладающее указанными свойствами, называется правильным отсечением.
Далее задача решается с учетом нового ограничения. После этого в случае необходимости добавляется еще одно ограничение и т.д.
Геометрически добавление каждого линейного ограничения отвечает проведению прямой, которая отсекает от многоугольника решений некоторую его часть вместе с оптимальной точкой с нецелыми координатами, но не затрагивает ни одной из целых точек этого многогранника.
В результате новый многогранник решений содержит все целые точки, заключавшиеся в первоначальном многограннике решений и соответственно полученное при этом многограннике оптимальное решение будет целочисленным.
Одним из методов правильного отсечения является метод Гомори.
Пусть
задача линейного программирования
(1)-(3) имеет конечный оптимум и на последнем
шаге ее решения симплексным методом
получены следующие уравнения, выражающие
основные переменные
через неосновные переменные
оптимального решения
(5)
так,
что оптимальным решением задачи (1)-(3)
является
,
в котором, например
нецелая компонента. В этом случае
неравенство
(6)
сформированное
по
уравнению системы (5), обладает всеми
свойствами правильного отсечения.
Алгоритм метода Гомори:
1. Симплексным методом решить задачу (1)-(3) без учета условия целочисленности. Если все компоненты оптимального плана целые, то он является оптимальным и для задачи целочисленного программирования (1)-(4). Если первая задача (1)-(3) неразрешима (то есть если она не имеет конечного оптимума или если ее условия противоречивы), то и вторая задача (1)-(4) также неразрешима.
2. Если среди компонент оптимального решения есть нецелые, то выбрать компоненту с наибольшей целой частью и по соответствующему уравнению системы (5) сформировать правильное отсечение (6).
3.
Неравенство
(6) введением дополнительной неотрицательной
целочисленной переменной преобразовать
в равносильное уравнение
(7) и включить его в систему ограничений
(2).
4. Полученную расширенную задачу решить симплексным методом. Если найденный оптимальный план будет целочисленным, то задача целочисленного программирования (1)-(4) решена. В противном случае вернуться к пункту 2.
Если задача разрешима в целых числах, то после конечного числа шагов оптимальный целочисленный план будет найден.
Если в процессе решения появится уравнение, выражающее основную переменную через неосновные, с нецелым свободным членом и целыми остальными коэффициентами, то соответствующее уравнение не имеет решения в целых числах. В этом случае и данная задача не имеет целочисленного оптимального решения.