FTD
FTD
519.8(07)
М91
Н.В. Муравьева
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
Учебное пособие для самостоятельной работы студентов
Челябинск
2011
Министерство образования и науки Российской Федерации
Южно-Уральский государственный университет
Кафедра прикладной математики
519.8(07)
М91
Н.В. Муравьева
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
Учебное пособие для самостоятельной работы студентов
Челябинск
Издательский центр ЮУрГУ
2011
УДК 519.852(076.5)
М91
Одобрено
учебно-методической комиссией механико-математического факультета
Рецензенты:
Е.А. Суховиенко, Г.А. Ларионова
Муравьева, Н.В.
М91 Линейное программирование: учебное пособие для самостоятельной
работы студентов. – Челябинск: Издательский центр ЮУрГУ, 2011. –
50 с.
УДК 519.852(076.5)
2
Введение
3
Главное меню высвечено на протяжении всей работы с пособием, за
исключением прохождения тестов. При наведении курсора мышки на инте-
ресующий раздел происходит нижнее подчеркивание названия, а при нажа-
тии левой клавиши мыши, открывается соответствующее окно. Разделы тео-
рии и практики состоят из тем, предназначенных для изучения, которые вы-
свечиваются в левой половине экрана во время работы с данным разделом.
4
тельной работы, который позволяет составить график изучения дисциплины
индивидуально для каждого пользователя.
6
Решение задачи появляется на экране, после нажатия левой клавиши
мыши на ссылку (Решение). Номер текущей задачи выделен черным цветом,
номера задач, к которым не дано ответа, выделяются серым цветом, к кото-
рым даны правильные ответы – зеленым цветом, неправильные ответы –
красным. Если вы хотите закончить работу в режиме обучения, то должны
нажать левой клавшей мыши на кнопку «Завершить тест».
Предварительный тест считается пройденным, если в режиме тестирова-
ния студент набирает не менее 8 баллов (из 12 баллов). После прохождения
предварительного теста студенту предоставляются ссылки на те разделы
учебного материала, на вопросы по которым он ответил неверно, что позволя-
ет ему оценить свой уровень подготовки, ликвидировать недостатки, упуще-
ния и пробелы в усвоении понятий на требуемом уровне, используя режим
обучения.
Лекционный материал – это гипертекстовый учебник, выполненный в
виде блоков. Каждый блок соответствует главе лекционного материала. В
каждом блоке может быть одна или несколько ссылок (в виде ключевого
слова, кнопок перехода и др.), с помощью которых можно перейти в другие
блоки.
В теоретической части пособия использовалась анимация в разделах:
геометрический метод, симплекс-метод и транспортная задача. В тексте ани-
мация выделяется рамкой (голубой пунктир). Для того, чтобы активизиро-
вать картинку, надо щелкнуть по соответствующей гиперссылке левой кла-
вишей мышки. В геометрическом методе анимация позволяет наглядно, а не
мысленно увидеть движение прямой, в симплекс-методе и в транспортной
задаче анимация позволяет постепенно, пошагово заполнять таблицу, а не
давать ее сразу заполненной, что упрощает понимание сложного теоретиче-
ского материала.
Практический блок выполняет функции практических занятий и ими-
тирует общение преподавателя и студента. Он предназначен для закрепления
студентами теоретической части и имеет два режима:
– режим демонстрации решения задач;
– режим обучения.
7
Режим демонстрации решения задач соответствует практическим зада-
чам, приводимым в качестве примеров на лекции. При решении практиче-
ской задачи студент сначала может проверить правильность своего решения,
нажав на ссылку «Ответ», в случае неверного ответа может проверить ход
своего решения, нажав на ссылку Решение.
В решении практических задач используются ссылки на соответст-
вующую теорию. При нажатии на них (ключевое слово выделяется голубым
цветом и нижним подчеркиванием) появляется окно, которое после исполь-
зования может быть закрыто (нажатием на ссылку Закрыть).
8
Используя раздел «Тестирование», студент имеет возможность само-
стоятельно проверить уровень усвоения понятий и навыков, полученных при
изучении теоретической части и закрепленных практической частью. Тесты
располагаются соответственно главам курса, в них присутствуют задания
всех основных типов, а именно: задания с выбором ответа (одного или не-
скольких); задания, в которых студент должен ввести свой вариант ответа
для сравнения с правильным; задания на соответствие.
Целью изучения учебного материала является не только получение
знаний, но и успешная сдача экзамена по изученному курсу. Поэтому студент
может пройти итоговый тест, аналогичный билету на экзамене, по окончании
которого студента информируют не только о количестве правильных отве-
тов, но и об уровне подготовки его к экзамену. При прохождении итогового
теста контролируется время (90 минут), которое студент затрачивает на от-
вет. Итоговый тест состоит из 4 задач, оцениваемых, в зависимости от слож-
ности, в два, три и пять баллов. Для успешного прохождения итогового теста
требуется набрать семь и более баллов из двенадцати.
Количество попыток, отводимых на прохождение теста в режиме тести-
рования, указывается при запуске теста. При завершении любого тестирова-
ния необходимо нажать кнопку «ГОТОВО», если этого не произойдет, то от-
веты ко всем задачам не будут введены, а количество попыток уменьшится.
9
Объем дисциплины и виды учебной работы
Аудиторные занятия 20
Лекции 10
Практика 10
Самостоятельная работа 70
Содержание курса
Теория
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
a m1
х1 + a m 2 х 2 ++ a mn х n ? bm .
или A⋅ x T
? B , где "?" означает один из знаков =, ≥ , ≤ ;
Практика
1. Оборудование 2 5
2. Сырье 2 3
3. Электроэнергия 4 3
Решение:
Пусть цех выпускает в сутки x1 изделий вида А и x2 изделий вида В. То-
гда прибыль от продажи выпускаемых изделий равна f = 30x1 +50x2 и тре-
буется найти maxf . Оборудования на производство x1 изделий вида А по-
требуется 2x1, а на изделия вида В – 5x2. Так как есть суточные ограничения
на оборудование, то получим неравенство: 2x1 +5x2 ≤ 170. Аналогично по-
лучаем ограничение на сырье: 2x1 +3x2 ≤ 110 и ограничение на электро-
энергию: 4x1 +3x2 ≤ 160.
Также обе переменные должны быть неотрицательны x1 ≥ 0, x2 ≥ 0.
11
Итак, получили
maxf = 30x1 +50x2 (1)
2 x1 + 5 x 2 ≤ 170,
2 x1 + 3 x 2 ≤ 110, (2)
4 x + 3 x ≤ 160.
1 2
x1 ≥ 0, x2 ≥ 0 (3)
Соотношения (1)-(3) образуют экономико-математическую модель.
Теория
Практика
13
x1 + x2 − 2 x3 ≤ 2,
x1 − x2 + x3 = 1,
x + 4 x ≥ 6.
1 2
x1 ≥ 0 ,
x3 ≥ 0.
Решение:
Данная ЗЛП дана в общей форме: среди ограничений есть уравнения и
неравенства и не на все переменные наложено условие неотрицательности, а
именно на x2 .
Перейдем к канонической форме:
Используя замечание 2, сделаем переход к неотрицательной переменной в
первую очередь: x2 =x'2 – x4, где x'2 ≥ 0, x4 ≥ 0. Исключим переменную x2 из
целевой функции и системы ограничений: minf = x1 + x'2 – x4 – 2x3
Все ограничения должны иметь вид равенств, используя переход от неравен-
ства к равенству, получим новую систему ограничений:
x1 + x′2 − x4 + 2 x3 + x5 = 2,
x1 − x2′ + x4 + x3 = 1,
x + 4 x′ − 4 x − x = 6.
1 2 4 6
xi ≥ 0, i=1,2,…,6
Перейдем к стандартной форме:
Так как в стандартной форме также на все переменные должно быть наложе-
но условие неотрицательности, то x2 =x'2 – x4, где x'2 ≥ 0, x4 ≥0, используя пе-
реход к неотрицательной переменной.
minf = x1 + x'2 –x4 –2x3,так как задача на минимизацию, то все ограничения
должны быть неравенствами со знаком ≥ . Используя переход к соответст-
вующему знаку неравенства и переход от уравнения к неравенствам, полу-
чим систему ограничений.
- x1 − x 2′ + x 4 − 2 x3 ≥ 2,
x1 − x 2′ + x4 + x3 ≥ 1,
- x1 + x2′ − x 4 − x3 ≥ −1,
x1 + 4 x′2 − 4 x 4 ≥ 6.
Итак, получили ЗЛП в стандартной форме:
minf = x1 + x'2 –x4 –2x3
14
- x1 − x 2′ + x 4 − 2 x3 ≥ 2,
x1 − x 2′ + x4 + x3 ≥ 1,
- x1 + x2′ − x 4 − x3 ≥ −1,
x1 + 4 x′2 − 4 x 4 ≥ 6.
xi ≥ 0, i=1,2,3,4
Пример 2: Перейти от канонической к стандартной форме в ЗЛП
minf = 2x1 –x2 +2x3 –x4
2 x1 − x2 + x3 + x4 = 1,
x1 + x2 + x3 − 2 x4 = 3.
xi ≥ 0, i=1,2,3,4
Решение:
Используем переход от задачи в канонической форме к ЗЛП в стандартной
форме.
Для этого жордановыми исключениями выделим в системе ограничений еди-
ничную матрицу.
xбп x1 x2 x3 x4 b
2 –1 1 1 1
1 1 1 –2 3
0 -3 –1 5 –5
x1 1 1 1 –2 3
x3 0 3 1 –5 5
x1 1 –2 0 3 –2
15
Рекомендации по организации самостоятельной работы студентов
с помощью электронного учебно-методического пособия
Теория
Практика
x1 0 1
x2 2 0 2x1 + x2 = 2 (3)
(1)
(2)
4 C (4)
D
B
2
-2 3
A 1 E
x1
-6 (3)
Например, для прямой (1) выберем точку (0,0) (прямая не проходит через
нее). Подставим координаты точки в неравенство: 1·0–1·0 ≥ –2, 0≥ –2 – вер-
но. Следовательно, мы выбираем ту полуплоскость, где лежит (0,0). Анало-
гично выделяем полуплоскости для каждой из прямых. Находим общую
часть всех полуплоскостей и учитываем условия неотрицательности. Полу-
чится пятиугольник ABCDE.
2) Строим вектор c = {3, 2} по целевой функции maxf = 3x1 + 2x2 . Начало
вектора в точке (0;0) конец в точке (3;2), вектор выделен красным цветом.
3) Строим семейство параллельных прямых, перпендикулярных вектору c .
Строим первую прямую, проходящую через начало координат и начинаем ее
двигать в направлении вектора c , так как решаем задачу на максимизацию
функции, до второй опорной прямой для ОДР. Выбираем угловую точку, че-
18
рез которую проходит опорная прямая – точку D. Найдем ее координаты как
точку пересечения прямых (2) и (4), т.е. решаем систему уравнений:
2 х1 − x2 = 6, х1 = 5,
, т.е. D(5,4). Вычислим значение целевой функции в
x
2 = 4. x
2 = 4.
точке D: f(D) = 3·5 + 2·4= 23.
Пример 2. Решить ЗЛП геометрическим методом
minf = − x1 + 7x2 + x3 + 3x4 − x5
− х −3 х + х + 2 х + х
1 2 3 4 5
= 4,
х − 8х + 4х + х + х
1 2 3 4 5 = 3,
−4 х + х + х =−4.
2 3 5
xi ≥ 0, i=1,2,…,5
Решение:
Перейдем от задачи в канонической форме к задаче в стандартной форме.
xбп x1 x2 x3 x4 x5 b
–1 –3 1 2 1 4
1 –8 4 1 1 3
0 –4 1 0 1 –4
x1 1 3 –1 –2 –1 –4
0 –11 5 3 2 7
0 –4 1 0 1 –4
x1 1 –1 0 –2 0 –8
0 9 0 3 –3 27
x3 0 –4 1 0 1 –4
x1 1 –1 0 –2 0 –8
x5 0 –3 0 –1 1 –9
x3 0 –1 1 1 0 5
Используя последнюю часть таблицы, запишем систему ограничений в пре-
образованном виде
х − х − 2 х =−8,
1 2 4
−3 х − х + х = −9,
2 4 5
выразим базисные переменные через свободные и вы-
− х + х + х = 5.
2 3 4
х 1
=−8 + х 2 + 2 х 4 ,
ведем их из целевой функции: х 5 = −9 + 3 х2 + х4 , (*)
х =5+ х2 − х4 .
3
19
minf = − ( − 8 + x2 + 2x4) + x2 + (5 + x2 − x4) + 3x4 − ( − 9 + 3x2 + x4)=22 + 4x2 − x4
Используем условие неотрицательности переменных, получим ЗЛП с дву-
мя переменными в стандартной форме.
minf =22 + 4x2 − x4
х + 2 х ≥8,
2 4
3 х + х ≥ 9,
2 4
х − х ≥−5
2 4
x2 ≥ 0
x4 ≥ 0
Решаем ее геометрическим методом:
1) Строим ОДР, для этого в прямоугольной декартовой системе координат
строим прямые: x2 + 2x4 = 8 (1) 3x2 + x4 = 9 (2)
x2 – x4 = − 5 (3)
x4 (3)
A
(1) 5
4
B
С 8
-5 3
x2
(2)
20
Находим оптимальное решение исходной задачи. Для этого используем сис-
тему уравнений (*).
х 1
= 5,
х *
3 = 0, Таким образом, оптимальное решение X (5; 1; 0; 6; 0).
х = 0.
5
21
Тема 4: Симплекс-метод
Теория
22
а) Выбираем ведущий столбец по положительной оценке, если их не-
сколько то по наибольшей. Таким образом, мы выбрали переменную вводи-
мую в число базисных.
б) Выбираем ведущую строку исходя из наименьшего симплексного от-
b
ношения θ = min i , a ik > 0.
i
aik
(отношение неотрицательных свободных членов к соответствующим по-
ложительным элементам ведущего столбца).
Таким образом, выбираем переменную, выводимую из базиса.
в) Выполняем жорданово исключение с выбранным ведущим элементом,
стоящим на пересечении ведущего столбца и строки. При этом все элементы
новой симплексной таблицы, в том числе и расположенные в индексной
строке, вычисляются по стандартным правилам жордановых исключений.
г) Проверяем пункт 2.
Практика
xi ≥ 0, i=1,2,…,4
Решение:
Система имеет простейший вид (выделена единичная матрица) и все свобод-
ные члены неотрицательны, поэтому можем составить первую симплексную
таблицу
1)
сбп xбп x1 x2 x3 x4 b
–4 6 –2 3
6 x2 1 1 –1 0 5
3 x4 2 0 –3 1 7
f 16 0 5 0 51
2) Так как в индексной строке есть положительные оценки, то исходный
опорный план будет неоптимальным.
3) Так как в индексной строке содержится положительная оценка, над кото-
рой в таблице есть положительный элемент, то задача имеет решение 4)
Улучшаем начальный опорный план пошагово
а) Выбираем столбец с наибольшей оценкой Δ1 = 16.
б) Считаем симплексное отношение θ=min{5/1;7/2}=7/2, т.е. ведущий эле-
мент a21.
в) Заполняем новую таблицу с выбранным ведущим элементом по прави-
лам жордановых исключений:
23
xбп x1 x2 x3 x4 b
x1 0 1 1/2 –1/2 3/2
x4 1 0 –3/2 1/2 7/2
f 0 0 29 –8 –5
Возвращаемся к шагу 2)
2) Так как в индексной строке есть одна положительная оценка Δ3 =29, по-
этому выбираем третий столбец ведущим.
3) Так как в индексной строке в третьем столбце есть положительный эле-
мент, то задача имеет решение, этот элемент и будет ведущим a13.
4) Заполняем новую таблицу с выбранным ведущим элементом по правилам
жордановых исключений:
xбп x1 x2 x3 x4 b
x1 0 2 1 –1 3
x3 1 –3 0 –1 10
f 0 –58 0 21 –92
Возвращаемся к шагу 2)
2)-3) В новой таблице в индексной строке есть положительный элемент, но
в этом столбце нет положительных элементов, следовательно, данная ЗЛП не
имеет решений.
24
При нажатии на пустые клетки, при заполнении второй таблицы, вы-
даются подсказки, о том каким образом находятся элементы.
Практика
Пример. Решить ЗЛП методом искусственного базиса (двухфазный сим-
плекс-метод).
minf = 7x1 − 13x2 − 8x3 +10x4
х − х −3х + 2 х
1 2 3 4
= 3,
х − 2х − х + х
1 2 3 4 = 2.
xi ≥ 0, i=1,2,…,4
Решение:
Используем алгоритм двухфазного симплекс метода.
1) Составляем вспомогательную задачу:
minS = x5 + x6
26
х − х −3х + 2 х
1 2 3 4
+ х5 = 3,
х − 2х − х + х
1 2 3 4 + х6 = 2.
xi ≥ 0, i=1,2,…,6
Получили простейшую систему ограничений с неотрицательными свобод-
ными членами.
2) Решаем вспомогательную задачу симплексным методом.
xбп x1 x2 x3 x 4 x5 x 6 b
сбп 0 0 0 0 1 1
1 x5 1 –1 –3 2 1 0 3
1 x6 1 –2 –1 1 0 1 2
S 2 –3 –4 3 0 0 5
x4 1/2 –1/2 –3/2 1 0 3/2
x6 1/2 –3/2 1/2 0 1 1/2
S 1/2 –3/2 1/2 0 0 1/2
x4 2 –5 0 1 3
x3 1 –3 1 0 1
S 0 0 0 0 0
3) Решаем основную задачу симплексным методом, заменив систему ограни-
чений, полученной простейшей (последняя таблица)
сбп xбп x1 x2 x3 x4 b
7 –13 –8 10
10 x4 2 –5 0 1 3
-8 x3 1 –3 1 0 1
f 5 –13 0 0 22
x4 0 1 –2 1 1
x6 1 –3 1 0 1
f 0 2 –5 0 17
x2 0 1 –2 1 1
x1 1 0 –5 3 4
f 0 0 –1 –2 15
Итак, получили minf =15, оптимальное решение X*(4, 1, 0 ,0).
27
Тема 6: Теория двойственности
Теория
неравенство ↔ yi ≥ 0
xi ≥ 0 ↔ неравенство
28
Очевидно, что двойственной задачей к двойственной является исходная
задача. Поэтому рассмотренные задачи являются взаимно двойственными.
При составлении двойственной задачи каждому ограничению исходной
задачи сопоставляют очередную переменную двойственной задачи. Таким
образом, получаем взаимно однозначное соответствие между ограничениями
и переменными взаимно двойственных задач.
Несимметричные двойственные задачи
Пусть дана ЗЛП общего вида.
Правила составления несимметричных ДЗ
Правила 1-6 составления симметричных ДЗ остаются справедливыми.
7) Каждому ограничению равенством в одной задаче соответствует пере-
менная произвольного знака.
равенство ↔ ∀yi
∀ xi ↔ равенство
При составлении несимметричных взаимно-двойственных задач принято
располагать компоненты соответствия, находящиеся по правилам 6 и 7 в
одной строке, и называть их сопряженными условиями.
Принцип двойственности. Критерий Канторовича.
Теоремы двойственности позволяют установить взаимосвязь между оп-
тимальными решениями пары двойственных задач. Решив одну из пары
двойственных задач, можно или найти оптимальное решение другой задачи,
не решая ее, или установить его отсутствие.
Теорема 1. Если одна из пары двойственных задач имеет оптимальное реше-
ние, то и другая имеет оптимальное решение. При этом оптимальные значе-
ния целевых функций равны minf = maxF.
Если одна из пары двойственных задач не имеет решения ввиду неогра-
ниченности целевой функции, то другая не имеет решения ввиду несовмест-
ности системы ограничений.
Теорема 2. Если каждая из пары взаимно двойственных задач имеет хотя бы
по одному плану, то обе задачи имеют оптимальное решение.
Теорема 3. Для того чтобы некоторые планы x и y пары двойственных за-
дач были оптимальными, необходимо и достаточно, чтобы значения целевых
функций для этих планов были равны.
Теорема (Критерий Канторовича для одного плана). Для того чтобы план
x0 данной ЗЛП был оптимальным, необходимо и достаточно, чтобы суще-
ствовал план y0 двойственной задачи, такой что при подстановке этих пла-
нов в соответствующие системы ограничений всякому строгому неравенству
в исходной ЗЛП соответствовало бы равенство в сопряженном условии ДЗ.
Практика
х 1
− 2 х 2 − 3 х 3 ≥ 3,
+ х2 − х3 ≥ −2.
х 1
xi ≥ 0, i=1,2,3.
Решение:
Дана ЗЛП в стандартной форме, поэтому используем правила для симмет-
ричных двойственных задач.
Исходная ЗЛП Двойственная ЗЛП
minf = 2x1 +3x2 – 4x3 maxF = 3y1 – 2y2
x 1 – 2x 2 – 3 x 3 ≥ 3 y1 ≥ 0
x1 + x2 – x3 ≥ –2 y2 ≥ 0
x1 ≥ 0 y1 + y2 ≤ 2
x2 ≥ 0 –2y1 + y2 ≤ 3
x3 ≥ 0 –3y1 – y2 ≤ –4
Пример 2. Для исходной ЗЛП составить двойственную задачу.
maxf = 3x1 + x2 – 3x3
2 х − х + 6 х ≥1,
1 2 3
3 х + х − 4 х = −6
1 2 3
х − х + 5 х ≤ 2.
1 2 3
x1 ≥ 0
x3 ≥ 0.
Решение:
Исходная задача дана в общей форме, так как нет условия неотрицатель-
ности на переменную x2 и в системе ограничений есть как неравенства так и
равенство. Перед тем как составлять двойственную задачу умножим первое
неравенство на -1, используя правило соответствия знака неравенства.
Для составления двойственной задачи используем правила для несим-
метричных двойственных задач.
Сопряженным условием для второго равенства в системе ограничений
будет являться переменная произвольного знака ∀y2 и для переменной x2 в
системе ограничений двойственной задачи будет равенство, по правилу 7.
Исходная ЗЛП Двойственная ЗЛП
30
maxf = 3x1 +x2 – 3x3 minF = –y1 – 6y2 + 2y3
–2x1 + x2 – 6x3 ≤ –1 y1 ≥ 0
3x1 + x2 – 4x3 = –6 ∀ y2
x 1 – x 2 + 5x 3 ≤ 2 y3 ≥ 0
x1 ≥ 0 –2y1 +3y2 +y3 ≥ 3
∀ x2 y1 + y2 – y3 = 1
x3 ≥ 0 –6y1 – 4y2 +5y3 ≥ –3
Пример 3. Применяя критерий Канторовича, исследовать на оптимальность
план X0(2, 3, 0).
minf = x1 + 3x2 + 3x3
х + х + х = 5,
1 2 3
х − х − 2 х ≥ −3,
1 2 3
− х + х − х ≥ 1.
1 2 3
x1 ≥ 0
x 3 ≥ 0.
Решение:
Составим двойственную задачу, используя правила для несимметричных
двойственных задач.
Исходная ЗЛП Двойственная ЗЛП
minf = x1 +3x2 +3x3 minF = 5y1 – 3y2 + y3
x1 + x 2 + x3 = 5 ∀y1
x1 – x2 – 2x3 ≥ –3 y2 ≥ 0
–x1 + x2 – x3 ≥ 1 y3 ≥ 0
x1 ≥ 0 y1 + y2 – y3 ≤ 1
∀x2 y1 – y2 + y3 = 3
x3 ≥ 0 y1 – 2y2 –y3 ≤ 3
0
Подставим данное решение X (2, 3, 0) во все ограничения исходной задачи и
там, где будет строгое неравенство, поставим соответствующий знак. Тогда в
сопряженном условии двойственной задачи будет равенство.
minf = x1 + 3x2 + 3x3 maxF = y1 + y2 – y3
x1 +x2 +x3 = 5 ∀y1
x1 –x2 –2x3 ≥ –3 > y2 ≥ 0 =
–x1 +x2 –x3 ≥ 1 y3 ≥ 0
x1 ≥ 0 > y1 + y2 – y3 ≤ 1 =
∀x 2 y1 –y2 + y3 = 3
x3 ≥ 0 y1 –2y2 – y3 ≤ 3
0
Если заданный план оптимален X , то по теореме (Критерий Канторовича для
одного плана) у двойственной ЗЛП должен существовать план
31
0
y 2
= 0,
Y (y , y , y ), для которого
1 2 3
+ y2 − y3 = 1.
y 1
Кроме того, так как план двойственной задачи, его компоненты удовлетво-
ряют ограничению - равенству
y1 – y2 + y3 = 3. Решаем систему и находим Y0.
y 2
= 0, y 2
= 0, y 2
= 0,
y y y
1 + y2 − y3 = 1, 1 − y3 = 1, 1 = 2,
y − y2 + y3 = 3. y + y3 = 3. y = 1.
1
1
3
… … … … … …
Потребности m n
в грузе, bj b1 b2 … bn a = b
i =1
i
j =1
j
в грузе, bj b1 b2 … bn ai = b j
i =1 j =1
x + x
1n 2n
++ x mn = bn .
(3) xij ≥ 0, i = 1, m, j = 1, n.
Соотношения (1)-(3) образуют экономико-математическую модель транс-
портной задачи.
В системе ограничений ТЗ m+n уравнений с m·n переменными.
Теорема. Ранг системы ограничений для закрытой модели ТЗ на единицу
меньше, чем число уравнений, т.е. r=m+n-1.
Оптимальный план ТЗ находится также методом последовательного улучше-
ния опорного плана, но переход от одного опорного плана к другому выпол-
няется непосредственно в распределительной таблице.
Понятие цикла
Определение. Циклом называется последовательность клеток в таблице,
в которой две и только две соседние клетки расположены в одной строке или
в одном столбце и последняя клетка лежит в той же строке или столбце, что и
первая.
В цикле всегда четное число клеток, минимальное число клеток четыре
(прямоугольник). Графически цикл представляет замкнутую ломаную линию,
звено которой проходит только по строке или по столбцу, каждое звено со-
единяет две клетки цикла (возможно что ломаная самопересекающаяся).
Примеры возможных циклов:
1 3
2
5
4
34
B1 B2 B3 B4 B5 B6 B7
A1 1-й цикл: (2,1)→(2,2) →(4,2)
* •
A2 * • →(4,1)
A3 • • 2-й цикл: (1,5) →(1,7) →(3,7)
A4 • • • • →(3,4) →(4,4) →(4,5)
Пронумеруем клетки цикла и
придадим знак + клеткам с нечетным номером и знак – с четным номером.
Весь цикл разобьется на два полуцикла: положительный полуцикл и отрица-
тельный полуцикл.
Определение. Любой набор клеток таблицы, в котором нет ни одного цикла
называется ациклическим набором. В противном случае циклическим.
Примеры ациклических наборов (в набор входят только клетки, в которых
стоит •):
B1 B2 B3 B4 B5 B1 B2 B3 B4 B5
• ° A1 • • °
A1 A2 • •
• A3 • • •
A2
• • • • • Если к каждому из наборов добавить еще одну
A3 клетку, то наборы станут циклическими (доба-
вили клетку с °).
Теорема. Любой набор из m+n клеток является циклическим, где m –
число строк в таблице, n – число столбцов.
Из теоремы следует, что наибольшее число клеток в ациклическом наборе
клеток таблице равно m+n–1 , что равно рангу системы ограничений ТЗ
(смотри теорему). Но так как r равно числу базисных переменных, то в опор-
ном решении ТЗ их будет m+n–1, остальные переменные - свободные. Если
xij является свободной переменной (xij = 0), то клетку (i, j) в распределитель-
ной таблице не заполняем и называем эту клетку свободной. Если в опорном
плане базисная переменная принимает значение ≠ 0, то в соответствующую
клетку записываем это значение и называем эту клетку занятой. Итак, в
опорном плане ТЗ должно быть m+n–1 занятых клеток. Допустимый план ТЗ
является опорным тогда и только тогда, когда занятые клетки плана образу-
ют ациклический набор клеток.
Построение начального опорного плана
Пусть дана закрытая модель ТЗ. Рассмотрим два правила построения
начального опорного плана: правило «северо-западного угла» и правило
«наименьшего тарифа».
По правилу «северо-западного угла» в первую очередь заполняется са-
мая левая верхняя клетка. Исходя из ограничений на запас и потребности,
суммы всех заполненных строк и столбцов должны быть соответственно
равны ai и bj .
Действия производим по шагам:
35
1) Заполняем клетку (1,1), принимая объем перевозки от А1 к В1 равным
x11= min(a1, b1).
2) а) Если a1 < b1, то запасы поставщика А1 полностью удовлетворены и
поэтому все остальные клетки 1-ой строки заполняем прочерками и рядом с
b1 в скобках указываем объем оставшейся потребности потребителя В1, рав-
ный a1- b1.
б) Если a1 > b1, то потребности потребителя B1 полностью удовлет-
ворены и поэтому все остальные клетки 1-го столбца заполняем прочерками
и рядом с а1 в скобках указываем объем оставшегося запаса поставщика А1,
равного b1- a1.
в) Если a1 = b1, то из рассмотрения одновременно исключается и строка
и столбец, поэтому число занятых клеток будет меньше, чем m+n–1. Такой
опорный план называется вырожденным. Чтобы устранить вырожденность
помещают «базисный» нуль в одной из клеток первой строки или первого
столбца, которые исключились из распределения, при этом лучше выбрать
клетку с меньшим тарифом.
3) Заполняем следующую самую левую верхнюю клетку, все рассуждения
аналогичны. Продолжая этот процесс получим ациклический
план, содержащий m+n–1 занятую клетку.
Отличие правила «наименьшего тарифа» только в том, что в первую
очередь заполняется клетка, содержащая наименьшую стоимость перевозки
единицы груза cij (наименьший тариф), если таких клеток несколько, то про-
извольно выбирают любую.
Замечание. План, построенный для ТЗ методом «наименьшего тарифа»,
как правило (но не всегда) дает лучшее приближение к оптимальному реше-
нию, чем план, построенный методом «северо-западного угла».
Метод потенциалов. Алгоритм решения
1 этап. Пусть найден начальный опорный план закрытой модели ТЗ, в ко-
тором m+n–1 занятых клеток образуют ациклический набор клеток.
2 этап. Каждому поставщику Аi поставим в соответствие некоторое число
ui и каждому потребителю Bj - число vj . Числа ui и vj называются потенциа-
лами, их значения выбираются так, чтобы тариф занятых клеток был равен
сумме соответствующих потенциалов
(1) ui + vj = сij (для занятых клеток), i=1,…,m и j=1,…,n.
Равенство (1) задает систему уравнений, имеющей бесконечное множество
решений (m+n переменных и m+n –1 уравнений). Поэтому одному из по-
тенциалов придают произвольное числовое значение (например, ui=0).Затем
вычисляют остальные потенциалы. Если известен потенциал ui,то потенциал
vj находится по занятой клетке, используя формулу vj= сij – ui. Если известен
потенциал vj,то потенциал ui находится по занятой клетке используя формулу
ui= сij – vj.
3 этап. Проверка опорного плана на оптимальность. Для этого вычисляют
оценки всех свободных клеток по формуле
(2) Δij =ui + vj – сij ( для свободных клеток).
36
Если все оценки свободных клеток неположительные ( ≤ 0 ), то найденный
опорный план является оптимальным. По заполненным клеткам считают
наименьшее значение целевой функции
f = c11 x11 + c12 x12 +…+ c1n x1n +…+ cm1 xm1 +cm2 xm2 +…+ cmn xmn и по запол-
ненной таблице составляют матрицу перевозок X.
4 этап. Если оценка свободной клетки положительна, то переходят к ново-
му опорному плану, делая пересчет по циклу.
Пересчет по циклу
Выбираем клетку, соответствующую наибольшей положительной оценке
и помечаем ее знаком +. Эта свободная клетка подлежит заполнению.
1 шаг: Чтобы не нарушать сбалансированности перевозки строят цикл, с на-
чалом в этой свободной клетке все остальные клетки цикла занятые. Так чис-
ло клеток (вместе со свободной) стало m+n, то цикл, по крайней мере один,
существует.
2 шаг: Последовательно обходим клетки цикла, поочередно проставляя “+”,
“-”, начиная со свободной клетки (т.е. свободной клетки всегда знак “+”). Из
всех объемов перевозок xij, записанных в клетках отрицательного полуцикла,
выбираем наименьшее количество и обозначаем его через λ.
λ=min {объем груза в клетках отрицательного полуцикла}
3 шаг: Затем в клетках + прибавляем λ , а в клетках - вычитаем λ. Все ос-
тальные клетки, не входящие в цикл оставляем без изменения. Получаем но-
вый ациклический набор клеток. И переходим к этапу 2.
Перераспределение плана перевозок по клеткам цикла называют пересчетом
по циклу, в результате пересчета общая стоимость перевозок уменьшится на
Δf=Δij ·λ , т.е fнов= fстар - Δf , поэтому можно каждый раз не пересчитывать
значение целевой функции.
Открытая модель транспортной задачи
В открытой модели ТЗ суммарный запас груза поставщиков не равен
m n
суммарной потребности потребителей: ai ≠ b j .
i =1 j =1
37
Распределительная задача
Распределительные задачи – это задачи, математическая модель которых
подобны модели ТЗ. Например, оптимальное закрепление механизмов за оп-
ределенными видами работ, оптимизация посевных площадей между сель-
скохозяйственными культурами, оптимальное назначение специалистов на
различные виды работ.
В этих задачах целевая функция максимизируется и при составлении на-
чального опорного плана в первую очередь заполняются клетки с наиболь-
шим значением критерия оптимизации. Выбор клетки подлежащей заполне-
нию производится по отрицательной оценке.
Практика
B1 B2 B3 B4 B5 B6 B7
A1 • •
A2 •
A3 • • •
A4 •
A5 • • • •
Решение:
Начало цикла в клетке (4,1). Следующая клетка в цикле (3,1), затем (3,3),
(1,3), (1,4) и (4,4). Итак, получили цикл: (4,1) →(3,1) →(3,3) →(1,3) →(1,4)
→(4,4).
Пример 2: Построить начальный опорный план по правилу «северо-
западного» угла. Условия задачи заданы таблицей:
3 6 5 1 100
1 4 3 2 400
4 3 1 2 600
300 500 100 200
Решение:
m n
Проверим, что модель транспортной задачи закрытая, т.е. a = bi j = 1100 ,
i =1 j =1
38
Запасы груза, ai
B1 B2 В3 B4
3 6 5 1
A1 100 – – – 100
1 4 3 2
A2 200 200 – – 400 (200)
А3 4 3 1 2
– 300 100 200 600 (300) (200)
Потребности 300 500 100 200 1100
в грузе, bj (200) (300)
39
B1 B2 В3 B4 Запасы груза, ai
3 6 5 1
A1 – – – 100 100
1 4 3 2
A2 300 – – 100 400 (100)
А3 4 3 1 2 600 (500)
– 500 100 0
Потребности 300 500 100 200 1100
в грузе, bj (100)
v1 = 0 v2 = 2 v3 = 0 v4 = 1
3 6 5 1
u1 = 0 – – – 100
1 4 3 2
u2 = 1 300 – – 100
4 3 1 2
u3 = 1 – 500 100 0
б) Можем использовать занятую клетку (2,4), так как в ней найден один из
потенциалов, а именно v4 = 1. Тогда u2 = 1, т.к. u2 = c24 – v4= 2 – 1=1
в) Можем использовать занятую клетку (2,1), так как в ней найден один из
потенциалов, а именно u2 = 1. Тогда v1 = 0, т.к. v1 = c21 – u2= 1 – 1= 0
г) Можем использовать занятую клетку (3,4), так как в ней найден один из
потенциалов, а именно v4 = 1. Тогда u3 = 1, т.к. u3 = c34 – v4= 2 – 1=1
д) Можем использовать занятую клетку (3,2), так как в ней найден один из
потенциалов, а именно u3 = 1. Тогда v2 = 2, т.к. v2 = c32 – u3= 3 – 1= 2
e) Можем использовать последнюю занятую клетку (3,3), так как в ней най-
ден один из потенциалов, а именно u3 = 1. Тогда v3 = 0, т.к. v3 = c33 – u3= 1 –
1= 0
3 этап. Вычисляем оценки свободных клеток по формуле (2)
Δ11 =u1 + v1 – с11 =0 + 0 – 3 = –3
Δ12 =u1 + v2 – с12 =0 + 2 – 6 = –4
Δ13 =u1 + v3 – с13 =0 + 0 – 5 = –5
Δ22 =u2 + v2 – с22 =1 + 2 – 4 = –1
Δ23 =u2 + v3 – с23 =1 + 0 – 3 = –2
Δ31 =u3 + v1 – с31 =1 + 0 – 4 = –3
Так как все оценки свободных клеток отрицательны, то найденный опорный
план оптимальный.
minf = 2200.
Пример 5: Проверить опорный план, построенный в примере 2 на оптималь-
ность.
Решение:
1 этап. Пусть построен первоначальный опорный план по правилу «северо-
западного угла», т.е. имеем 6 занятых клеток, образующих ациклический на-
бор (смотри пример 2).
41
а) В новой таблице убираем последнюю строку - потребности bj и последний
столбец - запасы аi, которые необходимы только для построения первона-
чального исходного плана.
б) Каждому поставщику Ai поставим в соответствие число ui и каждому по-
требителю Bj число vj
Чтобы найти потенциалы по формуле (1), придадим одному из потенциалов
произвольное значение, например u1 = 0.
2 этап. а) Пусть u1 = 0.
а`) В первой строке только одна занятая клетка (1,1) по ней мы можем найти
v1 = 3, т.к. u1 +v1= c11 , v1 = c11 - u1= 3 – 0
v1 = 3 v2 = 6 v3= 4 v4= 5
3 6 5 1
u1 = 0 100 – – –
1 4 3 2
u2 = –2 200 200 – –
4 3 1 2
u3 = –3 – 300 100 200
б) Можем использовать занятую клетку (2,1), так как в ней найден один из
потенциалов, а именно v1 = 3. Тогда u2 = –2, т.к. u2 = c21 – v1= 1 – 3= –2
в) Можем использовать занятую клетку (2,2), так как в ней найден один из
потенциалов, а именно u2 = –2. Тогда v2 = 6, т.к. v2 = c22 – u2= 4 – (–2)= 6
г) Можем использовать занятую клетку (3,2), так как в ней найден один из
потенциалов, а именно v2 = 6. Тогда u3 = –3, т.к. u3 = c32 – v2= 3 – 6= –3
д) Можем использовать занятую клетку (3,3), так как в ней найден один из
потенциалов, а именно u3 = –3. Тогда v3 = 4, т.к. v3 = c33 – u3= 1 – (–3)= 4
e) Можем использовать занятую клетку (3,4), так как в ней найден один из
потенциалов, а именно u3 = –3. Тогда v4 = 5, т.к. v4 = c34 – u3= 2 – (–3)= 5
3 этап. Вычисляем оценки свободных клеток по формуле (2)
Δ12 =u1 + v2 – с12 =0 + 6 – 6 = 0
Δ13 =u1 + v3 – с13 =0 + 4 – 5 = –1
Δ14 =u1 + v4 – с14 =0 + 5 – 1 = 4
Δ23 =u2 + v3 – с23 = –2 + 4 – 3 = –1
Δ24 =u2 + v4 – с24 = –2 + 5 – 2 = 1
Δ31 =u3 + v1 – с31 = –3 + 3 – 4 = –4
Так как имеется положительная оценка, то найденный опорный план не оп-
тимальный.
42
v1 = 3 v2 = 6 v3= 4 v4= 5
3 – 6 5 1 +
u1 = 0 100 – – –
1 + 4 – 3 2
u2 = –2 200 200 – –
4 3 + 1 2 –
u3 = –3 – 300 100 200
1 шаг: Строим цикл, с началом в клетке (1,4), все остальные клетки цикла за-
нятые.
2 шаг: Последовательно обходим клетки цикла проставляя “+ “ и “–“, начи-
ная со свободной клетки. Находим λ – наименьший объем груза в клетках от-
рицательного полуцикла: λ=min {100, 200, 200} = 100
3 шаг: В клетках со знаком “+ “ прибавляем λ, а в клетках со знаком “–“ вы-
читаем λ .
Все остальные клетки, не входящие в цикл оставляем без изменения.
Получаем новый ациклический набор клеток. Строим новую таблицу и про-
веряем найденный план на оптимальность:
v1 = –1 v2 = 2 v3= 0 v4= 1
3 6 5 1
u1 = 0 – – – 100
1 4 3 2
u2 = 2 300 100 – –
4 3 1 2
u3 = 1 – 400 100 100
2 этап: находим потенциалы u1 = 0, v4 = 1, u3 = 1, v2 = 2, v3 =0, u2 = 2
3 этап: находим оценки свободных клеток:
Δ11 =u1 + v1 – с11 =0 + (–1) – 3 = –4, Δ12 =u1 + v2 – с12 =0 + 2 – 6 = –4
Δ13 =u1 + v3 – с13 =0 + 0 – 5 = –5, Δ22 =u2 + v3 – с23 =2 + 0 – 3 = –1
Δ24 =u2 + v4 – с24 =2 + 1 – 2 = 1, Δ31 =u3 + v1 – с31 = 1 + (–1) – 4 = –4
Есть положительная оценка, следовательно, план не оптимальный
Δf=Δ14 ·λ=4·100=400, т.е. f= 2700 – 400 = 2300.
Пример 7: Найти оптимальное распределение трех видов механизмов,
имеющихся в количествах 45, 20 и 35 между четырьмя участками работ, по-
требности которых соответственно равны 10, 20, 30 и 40, при следующей
матрице производительности каждого из механизмов на соответствующем
участке:
5 4 1 5
3 5 3 1
1 6 7 6
43
Решение:
Составим первую распределительную таблицу:
Запасы меха-
v1 = 5 v2 = 9 v3 = 10 v4 = 5 низмов, ai
5 – 4 1 5 +
u1 = 0 10 – – 35 45 (35)
3 + 5 3 1 –
u2 = –4 – 15 – 5 20 (5)
1 6 7 6
u3 = –3 – 5 30 – 35
Потребности в
механизмах, bj 10 20 30 40 100
(15) (35)
1 этап: Cоставляем первоначальный опорный план по правилу «наибольшей
производительности», т.е. в первую очередь заполняем клетку с наибольшим
показателем производительности.
Найдем значение целевой функции f=5·10+ 5·35+5·15+1·5+6·5+7·30= 545 при
найденном опорном плане.
2 этап: Находим потенциалы:
u1 =0, v1 =5, v4 =5, u2 = –4, v2 =9, u3 = –3, v3 =10
3 этап: Находим оценки свободных клеток:
Δ12 =u1 + v2 – с12 =0 + 9 – 4 =5
Δ13 =u1 + v3 – с13 =0 + 10 – 1 =9
Δ21 =u2 + v1 – с21 = –4 + 5 – 3 = –2
Δ23 =u2 + v3 – с23 = –4 + 10 – 3 = 3
Δ31 =u3 + v1 – с31 = –3 + 5 – 1 =1
Δ34 =u3 + v4 – с34 = –3 + 5 – 6 = –4
Так как есть отрицательные оценки (ищем max), то найденный опорный план
не оптимальный. Выбираем любую из клеток (2,1) или (3,4).
4 этап: Выбираем клетку (2,1) и делаем пересчет по циклу.
1 шаг: строим цикл, с началом в клетке (2,1) все остальные клетки занятые.
2 шаг: последовательно обходим клетки цикла проставляя “+ “ и “–“, начи-
ная со свободной клетки. Находим λ – наименьший объем груза в клетках от-
рицательного полуцикла: λ=min {10, 5} = 5
3 шаг: В клетках со знаком “+ “ прибавляем λ, а в клетках со знаком “–“ вы-
читаем λ .
Все остальные клетки, не входящие в цикл оставляем без изменения. Получа-
ем новый ациклический набор клеток. Δf=Δ21 ·λ = –10 , т.е. f = 555
Строим новую таблицу (последний столбец и последнюю строку удаля-
ем) и возвращаемся ко второму этапу:
44
v1 = 5 v2 = 7 v3 = 8 v4 = 5
5 + 4 1 5 –
u1 = 0 5 – – 40
3 – 5 + 3 1
u2 = –2 5 15 – –
1 6 – 7 6 +
u3 = –1 – 5 30 –
45
v1 = 5 v2 = 5 v3 = 6 v4 = 5
5 4 1 5
u1 = 0 10 – – 35
3 5 3 1
u2 = 0 – 20 – –
1 6 7 6
u3 = 1 – 0 30 5
0 0 30 5
46
тролируются и направляются на каждом шаге, производится ссылка на тео-
ретическую часть.
47
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
48
ОГЛАВЛЕНИЕ
Введение………………………………………………………………………... 3
Объем дисциплины и виды учебной работы………………………………… 10
Содержание курса
Тема 1: Построение математических моделей…………………………. 10
Теория………………………………………………………….......... 10
Практика……………………………………………………….......... 11
Рекомендации по организации самостоятельной работы студен-
тов с помощью электронного учебно-методического посо-
бия………………………………………………………………....... 12
Тема 2: Различные формы ЗЛП и переход от одной формы к другой 12
Теория……………………………………………………………….. 13
Практика…………………………………………………………..…. 14
Рекомендации по организации самостоятельной работы студен-
тов с помощью электронного учебно-методического посо-
бия…………………………………………………………………… 16
Тема 3: Свойства решений ЗЛП. Метод перебора. Геометрический
метод решения ЗЛП …………………………………………………… 16
Теория……………………………………………………………….. 16
Практика………………………………………………………….….. 17
Рекомендации по организации самостоятельной работы студен-
тов с помощью электронного учебно-методического посо-
бия………………………………………………………………….. 21
Тема 4: Симплекс-метод……………………………………………….. 22
Теория………………………………………………………………. 22
Практика…………………………………………………………….. 23
Рекомендации по организации самостоятельной работы студен-
тов с помощью электронного учебно-методического посо-
бия………………………………………………………………….. 24
Тема 5: Метод искусственного базиса…………….………………….. 25
Теория……………………………………………………………….. 25
Практика…………………………………………………………….. 26
Рекомендации по организации самостоятельной работы студен-
тов с помощью электронного учебно-методического посо-
бия…………………………………………………………………… 28
Тема 6: Теория двойственности……..…………….…………………… 28
Теория……………………………………………………………….. 28
Практика…………………………………………………………….. 30
Рекомендации по организации самостоятельной работы студен-
тов с помощью электронного учебно-методического посо-
бия…………………………………………………………………… 32
Тема 7: Транспортная задача………..…………….…………………… 32
Теория………………………………………………………………... 32
49
Практика……………………………………………………………... 38
Рекомендации по организации самостоятельной работы студен-
тов с помощью электронного учебно-методического посо-
бия…………………………………………………………………… 46
Библиографический список…………………………………........................ 48
50
Надежда Васильевна Муравьева
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
Учебное пособие
для самостоятельной работы студентов
51