- •Содержание
- •Предисловие
- •Глава I. Начала линейного программирования
- •§1. Задача линейного программирования. Типичные задачи линейного программирования, их математические модели.
- •1.1 . Задача линейного программирования
- •1.2. Типичные злп и их математические модели
- •1.3. Упражнения.
- •§2. Общая злп. Канонический вид злп.
- •2.2. Канонический вид злп
- •§3. Теоретические основы решения злп. Геометрическая интерпретация злп. Идея аналитического решения
- •3.1. Теоретические основы решения злп
- •3.2. Геометрическая интерпретация злп
- •3.4. Идея аналитического решения злп
- •3.5. Теоретические основы решения злп (продолжение)
- •§4. Симплекс-метод решения злп
- •4.1. Алгоритм симплекс-метода
- •4.2. Симплекс-таблицы.
- •§5. Метод искусственного базиса
- •5.1. Суть метода искусственного базиса
- •Глава II. Двойственность и целочисленность в линейном программировании. Транспортная задача.
- •§1. Теория двойственности
- •1.1. Задача, приводящая к паре двойственных задач
- •1.2. Пара симметричных двойственных задач
- •1.3. Пара несимметричных двойственных задач
- •1.4. Теоремы двойственности
- •1.5. Упражнения.
- •§2. Элементы целочисленного программирования
- •2.1. Постановка и геометрическая интерпретация
- •2.2. Метод Гомори
- •2.3. Упражнения.
- •§3. Транспортная задача
- •3.1. Постановка и математическая модель транспортной задачи
- •3.2. Теоретические основы решения транспортной задачи
- •3.3. Алгоритм метода потенциалов.
- •3.3.1. Основные пункты алгоритма:
- •3.3.2. Построение первоначального опорного плана.
- •3.3.4. Переход к новому опорному плану (построение очередного опорного плана).
- •3.3.5. Метод наименьших затрат построения первоначального опорного плана.
- •3.4. Сведение задачи открытого типа к задаче закрытого типа
- •3.5. Упражнения.
- •Задание лп-4
- •Задание лп-5
- •Задание лп-6
- •1. Приводим задачу к каноническому виду.
- •Задание лп-4
- •Задание лп-5
- •Задание лп-6
2.2. Метод Гомори
Ясно, что когда задача целочисленного программирования имеет более двух переменных, её необходимо решать аналитическими методами. Одним из таких методов является метод Гомори. Он заключается в следующем.
1. Задача решается как обычная (симплекс-методом или методом искусственного базиса). Если в результате получилось целочисленное решение, то задача решена. В противном случае идём к шагу 1.
2.
Допустим, bi
нецелочисленная компонента решения,
полученного на 1-м шаге,
,
,
…,
коэффициенты при свободных переменных
,
,
…,
соответствующего ограничения, из которых
хотя бы один – не целый. Тогда к
ограничениям, полученным в последней
симплекс-таблице, добавляется
дополнительное ограничение
{
}
+{
}
+…+{
}
{bi},
которое после введения очередной
дополнительной переменной примет вид
{ } +{ } +…+{ } xn+1={bi}. (2.1)
Здесь {a} дробная часть числа a, n количество переменных задачи в последней симплекс-таблице. Идём к пункту 1.
Если нецелочисленных компонент в оптимальном решении, полученном на первом шаге, несколько, то берём ту, у которой дробная часть наибольшая.
Если bi дробное, а все коэффициенты , , …, при свободных переменных (в последней симплекс-таблице)являются целыми, то задача целочисленного программирования не имеет решения. Ясно, что задача целочисленного программирования решения не будет иметь, если задача решений не имеет вообще.
Пример 2. Решить задачу целочисленного программирования методом Гомори:
2x1+4x2max
Решение. Решая первоначальную задачу, как обычную, получим следующие симплекс-таблицы:
Базис |
Сб |
Св. чл. |
2 |
4 |
0 |
0 |
1 |
2 |
|
|
x1 |
x2 |
x3 |
x4 |
|
||||||
x3 |
0 |
|
2 |
1 |
1 |
0 |
|
|
|
|
x4 |
0 |
10 |
1 |
3 |
0 |
1 |
10 |
|
|
|
j |
0 |
2 |
4 |
0 |
0 |
|
|
|
||
x3 |
0 |
3 |
|
0 |
1 |
|
|
|
|
|
x2 |
4 |
|
|
1 |
0 |
|
10 |
|
|
|
j |
|
|
0 |
0 |
|
|
|
|
||
x1 |
2 |
|
1 |
0 |
|
|
|
|
|
|
x2 |
4 |
|
0 |
1 |
|
|
|
|
|
|
j |
|
0 |
0 |
|
|
|
|
|
||
Таким
образом, X0=
оптимальное решение, то есть нецелочисленных
компонент в оптимальном решении,
полученном на первом шаге, два. Найдём
их дробные части и сравним:
,
и
Поэтому
составляем дополнительное ограничение
по первой компоненте оптимального
решения, которой в последней симплекс-таблице
соответствует ограничение
.
Имеем
,
.
Поэтому дополнительное ограничение (1.1) в нашем случае принимает вид
.
Полученную задачу снова решаем как обычную:
Базис |
Сб |
Св. чл. |
2 |
4 |
0 |
0 |
0 |
3 |
|
x1 |
x2 |
x3 |
x4 |
x5 |
|||||
x1 |
2 |
|
1 |
0 |
|
|
0 |
3 |
|
x2 |
4 |
|
0 |
1 |
|
|
0 |
|
|
|
|
|
0 |
0 |
|
|
1 |
|
|
x1 |
2 |
1 |
1 |
0 |
0 |
1 |
1 |
|
|
x2 |
4 |
3 |
0 |
1 |
0 |
|
|
|
|
x3 |
0 |
|
0 |
0 |
1 |
|
|
|
|
j |
14 |
0 |
0 |
0 |
|
|
|
|
|
Получили
оптимальное решение X0=
данной задачи. Но так как исходная задача
зависит только от двух переменных x1
и x2,
которые принимают в этом решении
целочисленные значения, то задача
целочисленного программирования решена.
Ответ: Xцел.=(1, 3), Fmax цел.=14.
Метод Гомори не единственный аналитический метод решения целочисленной задачи. Разработан целый ряд аналитических методов, отличных от данного. В учебной литературе можно найти, например, метод ветвей и границ.
