Академический Документы
Профессиональный Документы
Культура Документы
Агальцов
образование
методы
в программировании
Профессиональное
т
В. П. Агальцов
МАТЕМАТИЧЕСКИЕ МЕТОДЫ
в программировании
Издание 2-е, переработанное и дополненное
Р ек о м ен д о ва н о М и н и ст ерст вом об р а зо ва н и я
Р о с с и й с к о й Ф е д е р а ц и и в к а ч е с т в е у ч е б н и к а для
с т у д е н т о в у ч р е ж д е н и й с р е д н е г о п р о ф е с с и о н а 1 ъ н о го
о б р а зо в а н и я , о б у ч а ю щ и х с я п о гр у п п е с п е ц и а ч ь н о с т е й
« И н ф о р м а т и к а и в ы ч и с л и т ел ь н а я т ех н и к а »
Э лектронно- Соответствует
Федеральному государственному
образовательному стандарту
3-го поколения
znanium .com
Москва
ИД «ФОРУМ»
2015
УД К 51-7(075.32)
ЬЬК 22.18я723
А23
Рецензенты:
Агальцов В. П.
А23 Математические методы в программировании: учебник. — 2-е
изд., перераб. и доп.— М.: ИД «ФОРУМ», 2015. — 240 с.: ил. —
(Профессиональное образование).
ISBN 978-5-8199-0410-7
УДК 51-7(075.32)
ББК 22.18я723
Предисловие
Проблема выполнения различных вычислений была актуальна во
все времена. По мере развития общественно-экономических отноше
ний усложнялись поставленные задачи, которые для своего решения
требовали разработки новых методов вычислений. На смену простей
шим арифметическим и геометрическим вычислениям пришли алгеб
раические и тригонометрические вычисления.
Организация современного производства требует не только наличия
современных станков и оборудования, но и разработки новых техноло
гических процессов и современных методов управления производством.
Для решения каждой из поставленных задач разрабатываются матема
тические модели, анализируя которые удается найти наилучшее реше
ние поставленной задачи. Создание математической модели — сложная
и кропотливая работа, которая в современных условиях под силу кол
лективам разработчиков. Для создания математической модели одного
и того же объекта различные коллективы могут использовать различ
ный математический аппарат. В коллектив разработчиков математиче
ских моделей привлекаются высококвалифицированные специалисты,
которые, с одной стороны, хорошо знают физические процессы, проте
кающие при работе объекта, и, с другой стороны, глубоко и всесторон
не владеют соответствующим математическим аппаратом. После созда
ния математической модели специалистами-аналитиками за дело при
нимаются специалисты-программисты, которые реализуют созданную
модель в виде программных кодов. Далее с математической моделью
работают специалисты-практики. Целенаправленно воздействуя на мо
дель, они изучают ее поведение и подбирают оптимальный режим рабо
ты для реального объекта.
Целью настоящего учебника является: научить студентов от сло
весного описания задачи перейти к абстрактной математической моде
ли, реализовать математическую модель в виде программных кодов,
провести исследование математической модели и получить вектор
входных воздействий, доставляющий оптимальное решение. Конечно
же, речь идет о простых математических моделях, позволяющих ре
шить элементарные задачи.
Учебник содержит девять глав, в которых рассмотрены следующие
вопросы.
В первой главе раскрыты основные принципы построения математи
ческих моделей, дана их классификация, введены основные определения.
4 Предисловие
Примеры моделей:
1. Рисунок будущего здания.
По этой модели можно оценить эстетические особенности зда
ния, как оно вписывается в существующую застройку и т. д.
2. Макет радиотелеграфа.
Макет представляет собой уменьшенную копию реального ра
диотелеграфа и воспроизводит основные функциональные возмож
ности оригинала. Эта модель предназначена для изучения основных
принципов работы радиотелеграфа.
3. Электрическая схема радиоприемника.
Во время проведения лекций по радиотехнике по этой модели
удобно рассказывать о назначении отдельных узлов (блоков) ра
диоприемника.
4. Система уравнений, описывающих полет артиллерийского
снаряда.
В этой модели в качестве коэффициентов используют массу по
рохового заряда, массу снаряда, угол наклона ствола орудия и т. д.
8 Гпава 1. Понятие модели
1.2. Примеры
Линейные уравнения широко используются при создании эконо
мических моделей в любой отрасли производства. Если известны
нормы затрат а, какого-либо сырья на производство изделия /-го вида
и объем запаса этого вида сырья на какой-то период времени, то мо
жем записать программу выпуска изделий на данном предприятии
п
/=1
Пример 1.1
На складе имеется 300 кг сырья. Надо изготовить два вида про
дукции. На изготовление первого изделия требуется 2 кг сырья, а на
изготовление второго изделия — 5 кг. Определить план выпуска
двух изделий.
Можно записать следующее уравнение: 2х\ + 5*2 = 300.
Отложим на осях координат максимальные объемы выпуска
первого и второго изделий и соединим их прямой линией. Любая
точка на этой прямой соответствует одному из допустимых планов
выпуска изделий (рис. 1.4).
60
150 *'
Рис. 1.4. Геометрическое представление уравнения
баланса наличия и потребления ресурса
1.2. Примеры 75
Пример 1.2
На двух предприятиях надо разместить заказ на 200 изделий.
В результате проведенных исследований на этих предприятиях вы
яснилось, что затраты на изготовление * изделий на первом пред
приятии составляют 4JC2, а на втором — 20* + б*2. Количество из
делий в партиях различное. Определить план выпуска изделий на
каждом предприятии при условии, чтобы общие затраты были ми
нимальны.
Составим уравнение суммарных затрат:
4*,2 + 20jc2 + 6*2 —>min;
*, + х 2 = 2 0 0 — ограничение на общее количество изделий;
*, > 0 ; *2 > 0 — количество изделий должно быть положитель
ным числом;
X = (*,, *2) — вектор решения.
Решение
х, = 200 - *2;
4*2 + 20*2 + 6 х \ = 4 (200- x 2f + 20х2 + 6* | =
= 1О*2 -1580*2 + 160000 —» min;
10*22 -1580*2 +160000 = 0.
Возьмем первую производную:
20*2-1580 = 0;
* ,= 2 0 0 -7 9 = 121.
Ответ: Х {\2 \, 79).
Пример 1.3
Фермер может сегодня собрать 120 т картофеля. Цена за 1 кг
картофеля сегодня составляет 10 рублей. Если картофель не выка
пывать, то каждую неделю урожай будет увеличиваться на 20 т, це
на за 1 кг уменьшаться на 1 рубль. Когда надо собрать урожай, что
бы получить максимальную прибыль?
16 Глава 1. Понятие модели
Решение
Обозначим через х количество недель.
(120 + 20x)(l0 - х ) = 1200 - 120л: + 200* - 20 х2 =
= 1200 + 80дс - 20л:2 —> max.
Возьмем первую производную:
1200+ 8 0 * - 20л:2 =0;
80 jc- 4 0 x = 0;
jc = 2.
Ответ: через 2 недели.
Контрольные вопросы
С\ С2 СЪ " * С*
2.2. Графический метод 19
Задачи линейного программирования можно решить аналитиче
ски и графически.
Пример 2.1
Пусть задано уравнение прямой: 4*, + 5*2 = 10.
Преобразуем данное уравнение: 0,4 *, + 0,5 x-i - 1. Теперь по
строим прямую линию (рис. 2.1, а). Если вместо уравнения напи
сать неравенство: 4*i + 5 *2 < 10, то график примет вид (рис. 2.1,6).
Пример 2.2
Найти максимальное значение целевой функции = 3*, +*2 +5*3
при заданных ограничениях:
- *, + 3*2 + 2*з = 9;
<3*2 + 2*з < 5;
2х, - *3 > 4.
22 Гпава 2. Линейное программирование
Пример 2.3
Найти максимум целевой функции:
FM = jc, + 2 хг + х 3 + 2 х 4 (2.11)
при наложенных ограничениях:
jc, +х 2 +3jc4 < 8;
• 2х, + Зх2 + х 3 > 14; (2.12)
х 2 + 2х3 + 4дг4 = 9.
Для решения поставленной задачи заменим ограничения, задан
ные в виде неравенств, на ограничения в виде равенств. Над огра
ничениями выполним действия, указанные в § 2.2.
В нашем примере первое неравенство имеет вид: х\ + х 2 + 3 х» < 8,
и, применив первое условие, получим: х\ + х 2 + 3 х 4 + х$ = 8; второе
ограничение имеет вид 2 х\ + 3 х 2 + хз > 14, применив к нему второе
правило, получим: 2 х\ + Зх2 + дез - х в = 14; третье ограничение зада
но в виде равенства, поэтому: х 2 + 2х 3 + 4х 4 = 9.
Уравнения ограничений после проведенных преобразований вы
делены жирным шрифтом. Преобразуем полученные уравнения в ка
ноническую форму, т. е. добавим нулевые члены в каждое уравнение.
2.4. Симплексный метод 27
х\ + х 2 + + 3*4 + *5 + 0*6 = 8;
2*, + 3*2 + *з + 0*4 + 0*5 - *6 = 14; (2.13)
0*i +*-, + 2*^ + 4хЛ+ 0*s + 0Xf, = 9;
F{x) ~ + 2*2 + *3 + 2*4 + 0*5 + 0*6 => max — целевая функция.
Оставим одни коэффициенты и получим условия задачи в мат
ричном виде:
1 1 0 3 1 0 8
2 Ш 1 0 0 -1 14 (2.14)
0 1 2 4 0 0 9
1 2 1 2 0 0
Таким образом, каноническая задача линейного программи
рования определена матрицей А, вектором свободных членов b =
{8; 14; 9} и вектором решения с = {1; 2; 1; 2; 0; 0}.
Воспользуемся для расчета третьим способом (выражение (2.10)).
Четырем столбцам матрицы А соответствуют коэффициенты векто
ра решения, большие нуля. Любой из столбцов может быть назначен
ведущим.
I min—
По третьему правилу max-ic,.. • 6°1 определим минимальные
I °у \
элементы в каждом столбце.
Для первого столбца: 8/1 14/2 —» 1 • 14/2 = 7.
Для второго столбца: 8/1 14/3 9/1 —► 2 • 14/3 = 28/3.
Для третьего столбца: 14/1 9/2 —>■ 1 •9/2 = 9/2.
Для четвертого столбца: 8/3 9/4 —*• 2 •9/4 = 9/2.
Сначала внутри каждого столбца выбираем минимальный эле
мент и умножаем его на соответствующее значение из вектора ре
шения. Затем из четырех величин выбираем максимальное.
Таким образом, ведущим элементом будет элемент а2 г, ведущий
столбец — второй, ведущая строка — вторая. Ведущий элемент вы
делен прямоугольной рамкой.
Во втором столбце будем исключать вторую переменную. Для
этого надо, чтобы в ведущей строке коэффициент при второй пере
менной был равен 1.
Ведущая вторая строка (ее элементы обозначим буквой <р) будет
пересчитываться по формуле:
ф " = ф /а 22 ф" = ф /3 , (2.15)
28 Глава 2. Линейное программирование
00
m
-1 0 1 - 4 -2 0 /
1
Так как третий элемент вектора решений больше нуля, то вы
числения необходимо повторить. В третьем столбце единственный
элемент а33 положительный и больший нуля, поэтому он и будет
ведущим элементом.
Для ведущей (третьей) строки:
ф " = ф / о 33 —► фн = ф /2 .
Для первой, второй и четвертой строк соответственно:
м'!,,- = ч'1,+ФзУ;
У2у = ^ 2у-°Фзу =Угр
< , = ' | ' 4 , - 1Фзу;
1/2 0 0 19/2 5 /2 1 21/2
1 1 0 3 1 0 8
- 1/2 0 1 1/2 - 1/2 0 1/2
- 1/2 0 0 - 9 / 2 - 3 / 2 0 / - 3 3 / 2
Так как вектор решения (фактические и фиктивные перемен
ные) содержит нулевые и отрицательные значения, то найдено оп
тимальное решение.
Найденное решение записывается следующим образом: отрица
тельным коэффициентам в векторе решений соответствуют нулевые
значения, а нулевым значениям — значения свободных членов (Ь) в
строках, содержащих единицу.
Ответ: Х { 0; 8; 1/2; 0}.
SO Гпава 2. Линейное программирование
—— .......... ............. ■ '" • .......... ...... ............
Так как пятая и шестая переменные — фиктивные, то в решении
они не учитываются. Максимальное значение, равное 33/2, целевая
функция принимает при следующих значениях аргументов: х\ = 0;
хг = 8 ; JC3 = 1 / 2 ; х* = 0.
Проверка:
— Х| + 2 х 2 + Ху + 2х4 = 1-0 + 2-8 + 1-1/2 + 2-0 = 0 + 16+0,5 + 0 = 16,5;
х, + х2 + Зх4 <8; 1 -0 +1 -8 + 0*0,5 + 3 • 0 < 8; 0 + 8 + 0 + 0^8; 8^8;
2х,+3xj+х, >14; 2-0+3-8+1-0,5+3-0>14; 0+24+0,5+0>14; 245>14;
х2 + 2х3 + 4х4 = 9; 0-0 + 1- 8 + 2 - 0,5 + 4- 0 = 9; 0 + 8 + 1 + 0=9; 9 = 9.
Пример 2.4
Найти максимум целевой функции F (x) = 2х, + 4х 2 + 2х3 при на
ложенных ограничениях:
х2 + 2х3 > 4;
2xj + Зх2 + х3 = 6;
4 2х, + 2х2 ^ 4;
Xj > 0 , j = 1,3.
Добавлены две фиктивные переменные и матрица приведена к
каноническому виду
0х, + 1х2 + 2х3 - 1х4 + 0х5 = 4;
2х, + Зх2 + 1х3 + 0х4 + 0х5 = 6; 4
2х, + 2х2 + 0х3 + 0х4 + 1х5 = 4;
2х, + 4х2 + 2х3 + 0х4 + 0х5.
Составим матричную модель
0 1 2 -1 0 4
2 Ц] 1 0 0 6
2 2 0 0 1 4
2 4 2 0 0
В этом примере любой из первых трех столбцов может быть на
значен ведущим столбцом. Определим ведущий элемент по треть
ему правилу.
Для первого столбца: 6/2 4/2 2-2 = 4.
Для второго столбца: 4/1 6/3 4/2 2-4 = 8.
Для третьего столбца: 4/2 6/1 -* 2-2 = 4.
2.4. Симплексный метод 3]
1 ■! 1— ............. ■ Ч ............ .................................................. LI I I I! Ш. ! . II I И» ! I I И 1 II! - ................. ... | —
-2 /5 0 1 -3 /5 0 6/5
4/5 1 0 |1/5| 0 8/5
2/5 0 0 -2 /5 1 4/5
-2 /5 0 0 2/5 0 /-4 4 /5
В последней строке один элемент 044 положительный. Поэтому
ведущим столбцом будет четвертый. Четвертый столбец содержит
положительный единственный элемент, кроме элемента последней
строки. Следовательно, ведущий элемент 024- Выполним пересчет
элементов ведущей (второй) строки
-2 /5 0 1 -3 /5 0 6/5
4 5 0 1 0 8
2/5 0 0 -2 /5 1 4/5
-2 /5 0 0 2/5 0 /-4 4 /5
2 3 1 0 0 6
4 5 0 1 0 8
14/5 2 0 0 1 4
-2 -2 0 0 0 /-1 2
В последней строке все элементы или отрицательные, или рав
ны нулю. Оптимальное решение найдено.
Ответ: Х(0', 0; 6).
Проверка:
F(x) —2х\ + 4 x2 + 2*з = 2 - 0 + 4-0 + 2-6 = 12;
х 2 + 2х3 >4; 0-0 + 1 -0 + 2 - 6 > 3 ; 12>4;
2лг, + Здг2 +*3 = 6; 2-0 + 3- 0 + 1 -6 = 6; 6 = 6;
2*,+2*2 <4; 2 0 + 2 0 + 0 -6 < 4 ; 0<4.
2.5. Общий случай 33
2.5. Общий случай
Выше рассмотрен вариант правильной математической модели, т.е.
выражение целевой функции содержит только положительные коэффи
циенты и критерий сходимости метода формулируется как наличие от
рицательных или нулевых коэффициентов в последней строке матрицы.
На практике встречаются случаи, когда коэффициенты целевой
функции принимают как положительные, так и отрицательные зна
чения. Для решения таких задач используют два подхода.
Первый подход. Математическую модель приводят к правиль
ному виду по правилам, изложенным в разд. 2.4, но в начало проце
дуры добавляют один шаг — применяют процедуру Жордана - Гаус
са поочередно к тем столбцам, которые в последней строке матрицы
содержат отрицательные коэффициенты, добиваясь при этом заме
ны отрицательных значений коэффициентов на нулевые значения.
Второй подход. Поставленную задачу решают по правилам, из
ложенным в разд. 2.4, добавив новые условия.
*1 *2 *3 *4 *5 *6
0 5/3 1 1/3 1/6 0 10/3
1 1/3 0 -1 /3 1/3 0 2/3
0 8/3 0 4/3 -5 /6 1 16/3
0 -1 0 0 - 1/2 0 / - 4
Транспонируем матрицу и добавим имена переменных
0 1 0 0 Уь
5/3 1/3 8/3 -1 У5
1 0 0 0 У4
1/3 -1 /3 4/3 0 yt
1/6 1/3 -5 /6 - 1/2 У2
0 0 1 0 Уз
10/3 2/3 16/3 /-4
Ответ: У(0; 1/2; 0); = 4.
0 - 4 / 3 10/3 4/3 -2 /3 -2 /3 0 0
3 1 -1 -1 00 0 0
5 1 3 0 -1 0 0 о
-2 2 3 0 0 -1 0 О
1 О 4 0 00 -1 О
2 5 /2 1 О -1 /2
-1 2 - 6 - 7 0 О О
Формула для пересчета первой строки: Viy = V i; +Ф5,-
Формула для пересчета второй строки: У2у='К2у-Зф5,у
Формула для пересчета третьей строки: Ч ' з , = Ч ' з у - З ф 5Н;-
□ 7 /2 0 -1 0 0 0 - 1/2 3
-1 - 1 3 /2 0 0 -1 0 0 3 /2 -1
- 8 - 11/2 0 0 0 -1 0 3 /2 -1
-7 -10 0 0 0 0 -1 2 -2
2 5 /2 1 0 0 0 0 - 1/2 1
2 2 3 /2 0 0 0 0 0 -7 /2 / +7
В последнем столбце ни один элемент нельзя назначить веду
щим. Правильный столбец только один (третий). Необходимо про
должить поиск. Поступаем по второму правилу (разд. 2.5).
Ведущий элемент — аи . Выполним пересчет элементов веду
щей (первой) строки
1 7/10 0 - 1 / 5 0 0 0 - 1/10 3 /5
-1 -1 3 /2 0 0 -1 0 0 3 /2 -1
- 8 - 11/2 0 0 0 -1 0 3 /2 -1
-7 -1 0 0 0 0 0 -1 2 -2
2 5 /2 1 0 0 0 0 - 1/2 1
2 23 /2 0 0 0 0 0 - 7 / 2 / + 7
Формула для пересчета второй строки: Угу “ Угу+Фу-
Формула для пересчета третьей строки: Узу ='Изу + 8 ФГу
Формула для пересчета четвертой строки: y/4j = y/AJ +1 <pXj.
Формула для пересчета пятой строки: 4 s j = V s j - 2 q>"j-
Формула для пересчета шестой строки: < , • =М '6у - 2 ф Г у
2.6. Решение двойственных (обратных) задач 43
1 7/10 0 -1 /5 О О О -1 /1 0 3 /5
0 - 2 9 /5 0 - 1 / 5 -1 0 0 7 /5 -2 /5
О 1/10 0 - 8 / 5 0 -1 0 7/10 19/5
О -5 1 /1 0 0 - 7 / 5 О О - Ь 113/10 11/5
О 11/10 1 2 /5 0 0 0 - 3 /1 0 -1 /5
О 101/10 0 275 б О 0 -3 3 /1 0 | / + 2 9 /5
Восьмой столбец содержит отрицательный элемент в последней
строке. Один из элементов этого столбца ац или ащ может быть на
значен ведущим.
Ведущий элемент — а48. Выполним пересчет элементов веду
щей (четвертой) строки
1 7/10 0 -1 /5 0 0 0 - 1/10 3 /5
0 -2 9 /5 0 - 1 /5 -1 0 0 7 /5 -2 /5
0 1/10 0 -8 /5 0 -1 0 7/10 1 9 /5
0 -5 1 /1 3 0 -1 4 /1 3 0 0 -1 0 /1 3 1 22/13
0 11/10 1 2 /5 0 0 0 -3 /1 0 -1 /5
0 101/10 0 2 /5 0 0 0 -3 3 /1 0 / + 2 9 /5
51 н
Формула для пересчета четвертой строки: цi "j = У 4у+ ^ Ф з у
_1_
Формула для пересчета пятой строки: \|i "j ^ ,,+ й Ф з ,-
13
37
Формула для пересчета шестой строки: уЦу ^ у + ^ Ф з ,.
1 0 0 -8 /3 7 0 4/37 -5 /3 7 0 18/37
0 0 0 45/37 -1 -4 /3 7 42/37 0 92/37
0 1 0 -11/37 0 -1 3/37 7/37 0 34/37
0 0 0 -8 3 /3 7 0 -5 1 /3 7 -1 /3 7 1 196/37
0 0 1 2/37 0 -1 /3 7 -8 /3 7 0 14/37
0 0 0 -4 0 -1 -2 0 / + 14
Ответ: У( 18/37; 34/37; 14/37).
Проверка:
Fw = 12 • 18/37 + 6 • 34/37 + 7 • 14/37 = 216/37 + 204/37 + 98/37 =
= 518/37= 14.
3 • 18/37 + 1 •34/37 - 1 • 14/37 > 2;
54/37 + 34/37 - 14/37 > 2;
74/37 >2; 2 > 2.
5 • 18/37 + 1 • 34/37 + 3 • 14/37 > 2;
90/37 + 34/37 + 42/37 > 2;
166/37 >2; 4,87 >2.
-2 18/37 + 2- 34/37 + 3 • 14/37 > 2;
-36/37+ 68/37+ 42/37 >2;
74/37 >2; 2 > 2.
2.7. Альтернативное оптимальное решение 45
0 5 3 1 1/2 0 10
1 2 1 0 1/2 0 4
0 4/3 -4 0 -3/2 1 -8
0 -1 0 0 - 1/2 0 /-4
Ответ: Х(4; 0; 0); F(X) = 4.
Выполним аналогичную процедуру по замене первого правиль
ного столбца. Исходная матрица представлена ниже
0 5/3 1 1/3 1/6 0 10/3
1 1/3 0 •-1/3 1/3 0 2/3
0 8/3 0 4/3 - 5 / 6 1 16/3
0 -1 0 0 - 1/2 0 / - 4
:емент — 024- ВЫПОЛНИМ пересчет :
роки
0 5/3 1 1/3 1/6 0 10/3
- 3 -1 0 1 -1 0 -2
0 8/3 0 4/3 - 5 / 6 1 16/3
0 -1 0 0 - 1/2 0 / - 4
2.8. Графическая интерпретация симплексного метода 47
1 2 1 0 1/2 0 4
-3 -1 0 1 -1 0 -2
4 4/3 0 0 1/2 1 8
0 -1 0 0 - 1/2 0 / - 4
Ответ: X (0; 0; 4); F(X) = 4.
Таким образом, три разных набора входных параметров (векто
ров) — Х(2/3; 0; 10/3); Х(4; 0; 0); ДО; 0; 4) дали один и тот же ре
зультат F(x) = 4.
R]
2.9. Примеры
1. Определить оптимальный план выпуска изделий с целью по
лучения наибольшей прибыли от их реализации. Условия задачи
приведены в таблице.
2.9. Примеры 49
Нормы расхода сырья на одно
Стоимость
изделие
Изделия ед. изделия,
Томаты, Специи, Эл. энергия,
РУб-
кг кг кВт-ч
Томаты неочищенные 2,1 0,09 7 28
Томаты маринованные 2,3 0,07 9 35
Томатная паста 3,2 0,7 8 34
Запасы сырья 1500 400 4200
Ответ:*(198,93; 31,35; 315,67); Fw = 17400.
Контрольные вопросы
Пример 3.2
Для следующей транспортной задачи (табл. 3.3.) любой допус
тимый план является оптимальным.
Таблица 3.3
Условие примера 2
Стоимость перевозки Производитель ресурса
1 2 3 2
4 5 6 3
7 8 9 2
Потребитель ресурса 4 1 2
При любом допустимом плане распределения ресурсов стои
мость перевозок от производителей ресурсов к потребителям ресур
сов будет одинаковой и равной 33 [4].
В простейших примерах оптимальное решение находилось про
стым перебором вариантов. На практике размерность транспортной
задачи составляет несколько десятков производителей и потребите
лей ресурсов. Поэтому при решении реальных транспортных задач
надо решить две проблемы: найти допустимые решения и из числа
допустимых решений выбрать оптимальное решение. Для решения
этих проблем разработаны различные методы.
Общий алгоритм решения транспортной задачи:
1. Формализация задачи (составление матрицы стоимостей
перевозок).
2. Приведение задачи к сбалансированному виду.
3.2. Математическая формулировка транспортной задачи 55
3. Построение опорного плана.
4. Построение оптимального плана.
Для построения опорного плана разработаны три метода:
• метод «северо-западного угла»;
• метод наименьшего элемента;
• метод добротностей.
Для определения оптимального плана перевозок разработаны
методы:
• распределительный;
• потенциалов;
• дельта-метод.
F(*)=1£ Z ciJxir (з л )
I j
Оптимальным планом перевозок X* будет называться тот из до
пустимых планов перевозок, который обеспечит минимальную
сумму затрат на перевозку всех ресурсов.
Отсюда следует, что исходные данные транспортной задачи за
даются вектором произведенных ресурсов А = {о,}, вектором по
56 Гпава 3. Транспортная задача
т\ m2 \яЗ =
*11 121 т\ =
*12 *22 *32 *т2 — Ь2;
*13 С23 *33 *тЗ = *з; или (3.4)
у=1
*1 п Х 2п х Ъп =
где > 0; / = 1, т; j = 1, и.
Таким образом, транспортную задачу можно решить симплекс
ным методом, но при этом потребуется выполнить большое количе
ство пересчетов матрицы.
При анализе условий транспортной задачи выявлено, что все
коэффициенты при неизвестных Ху равны единице. Это обстоя
тельство позволяет решить транспортную задачу более простыми
методами, нежели симплексный метод. Далее условия ограниче
ний (3.3) и (3.4) линейно зависимы, так как суммы правых частей
по условию задачи должны быть равны (сумма произведенных ре
сурсов распределяется между потребителями ресурсов). Количест
во линейно независимых уравнений среди условий ограничений
(3.3) и (3.4) равно т + « - 1. В поставленной транспортной задаче
общее количество переменных равно щ п и количество базисных
переменных равно т + rt - 1, следовательно количество свободных
переменных будет равно (m - 1) (и - 1). В задачах линейного про
граммирования оптимальное решение находится в одной из вер
шин области допустимых решений, тогда при решении транспорт
ной задачи как минимум (т - 1) (и - 1) перевозок будут иметь ну
левое значение.
3.3. Построение опорного плана перевозок 57
Пример 3.3
Условия примера 3.3 заданы матрицей стоимостей, а ответ -
матрицей плана перевозок (рис. 3.1).
Пример 3.4
Используя условия примера 3.4 (рис. 3.2) определить опорный
план перевозок.
9 1 3 6 8
10 14 6 4
X 8
10 6 6 4
10 6 6
2 6 6
4
00
4
00
8 4
8
строк столбцов
Матрицы
0 0 0
3 4 8 0 1 8 0 1 8
9 3 8 6 0 8 6 0 8
10 6 10 6 10 6
о 1 0 14
8 0 1 8 8 4
48 6 0 8
10 6
0 0
ОО
ОО
ОО
9 3 9 3 9 3
2 6 2 6 2 6
96 9 3 2 6
2 6 10
План перевозок
опорный план
14
8 4
2 6
10 14 6 4
—6—
-
2
8
г
L
|- 0
1
4
14
12
8 Г —6—
2 L -1 6 4
14
12
8 8 8 8
10 14 б 4 10 14 6 4
Для элемента 3,3 построим контур 3,3; 3,2; 1,2; 1,1; 2,1; 2,3:
С5 = 3 + (-1 ) + 5 + (-6 ) + 3 + ( -4 ) = 0.
Для элемента 3,4 построим контур 3,4; 2,4; 2,1; 1,1; 1,2; 3,2:
Св = 6 + (-2 ) + 3 + (-6 ) + 5 + ( -1 ) = 5.
Полученный опорный план оптимален, так как все алгебраиче
ские суммы не отрицательны.
Вычислим стоимость всех перевозок по оптимальному плану
С = 8 6 + 6 - 5 + 2 - 3 + 6 4 + 4 - 2 + 8 - 1 = 4 8 + 30 + 6 + 24 + 8 + 8 =124.
10 4 14
10 2 12
4 4 8
10 14 6 4
Рис. 3.7. Опорный план перевозок для метода потенциалов
а
3
s 10 4 14
я
яи 10 2 12
н
о 4 4 8
С
10 14 б 4
Рис. 3.8. Добавленные строка и столбец для расчета потенциалов
«
Для начала выполнения расчетов надо потенциал одной строки или
одного столбца приравнять нулю. Затем, используя указанную фор
мулу, выполнить остальные вычисления. Примем за ноль потенциал
первой строки щ = 0 .
Для уменьшения количества вычислений потенциал равный
нулю желательно присвоить той строке или столбцу, который
содержит наибольшее количество заполненных клеток._________
Тогда vj = с\ \ - щ = 6 - 0 = 6 . Далее выбираем те базисные клетки,
для которых уже имеется один потенциал (или строки или столбца), и
определяем следующий потенциал. Для базисной клетки ап известен
потенциал первой строки щ. Поэтому можем определить потенциал
второго столбца: v2 = с\2- щ = 5 - 0 = 5.
Аналогично выполним расчет оставшихся потенциалов (рис. 3.9):
Определим потенциал второй строки: U2 “ С22 ~ V2 = 6 —5 = 1.
Определим потенциал третьего столбца: Уз = с2ъ - и2 = 4 - 1 = 3 .
Определим потенциал третьей строки: щ = с33 - Уз = 3 - 3 = 0.
Определим потенциал четвертого столбца: v4 = С3 4 - щ = 6 - 0 =6.
Матрица Опорный Оценки свободных
стоимостей план клеток
6 5 3 6 6 5 3 6
6 5 8 7 14 0 10 4 14 0 X X - 5 - 1 14
3 6 4 2 12 1 10
2 12 1 4 X X 5 12
9 1 3 6 8 0 4 4 8 0 -3 4 X X 8
10 14 6 4 10 14 6 4 10 14 6 4
Рис. 3.9. Расчет потенциалов строк и столбцов
3.4. Создание оптимального плана перевозок 71
Для свободных клеток вычисляются оценки по формуле щ + Vj -
~ С у < 0.
Для клетки 1,3 имеем: и\ + v3 - ci3 < 0 ; 0 + 3 - 8 < 0 -5 < 0;
Для клетки 1,4 имеем: щ + V4 - с\4 < 0 ; 0 + 6 - 7 < 0 - 1 < 0 ;
Для клетки 2,1 имеем: щ + vt - С21 < 0 ; 1 + 6 - 3 < 0 4 < 0; не
выполняется.
Для клетки 2,4 имеем: м2 + v4 - С24 < 0; 1 + 6 - 2 < 0; 5 < 0; не
выполняется.
Для клетки 3,1 имеем: i/3 + V| - c3i < 0 ; 0 + 6 - 9 < 0; -3 < 0;
Для клетки 3,2 имеем: t/3 + v-i - с32 < 0 ; 0 + 5 - 1 < 0; 4 < 0; не
выполняется.
Если оценки всех свободных клеток отрицательны или равны
нулю, то опорный план — оптимальный. Если хотя бы одна оценка
больше нуля, то относительно этой свободной клетки строят замк
нутый контур и выполняют перераспределение ресурсов (аналогич
но распределительному методу). Если несколько свободных клеток
имеют оценки, большие нуля, то замкнутый контур строят для сво
бодной клетки с наибольшим значением оценки.
Наибольшую оценку имеет клетка о24- Относительно этой клет
ки построим замкнутый прямоугольный контур и переместим грузы
(рис. 3. 10).
10 4 14 0 10 4 14 0 X X - 1 0 - 6 14
10 2 г1 12 1 10 2 12 1 4 X -5 X 12
4 4 8 5 6 2 8 5 2 9 X X 8
10 14 6 4 10 14 6 4 10 14 6 4
Рис. ЗЛО. Первое перераспределение ресурсов
3.4.3. Дельта-метод
Пример 3.7
Используем условия примера 3.3. Матрица стоимостей и разре
женная матрица имеют вид, показанный на рис. 3.13.
Процедуру разреживания матрицы можно определить как вычита
ние соответствующего элемента вектора к = {5; 2; 1} из значений всех
9 1 3 6 8 - 1 8 0 2 5 8 7 0 0 5 8
10 14 6 4 10 14 6 4 10 14 6 4
Рис. 3.13. Исходные данные и первое преобразование
76 Гпава 3. Транспортная задача
7 0 0 5 8 7 0 0 5 8 7 0 0 3 8
10 14 6 4 10 14 6 4 10 14 6 4
Рис. 3.14. Парное преобразование матрицы
7 0 0 5 8 8
10 14 6 4 10 14 6 4
Рис. 3.15. Первый шаг определения оптимального плана перевозок
единицы ресурса (рис. 3.16). В нашем примере это клетка а32- Таким
образом, можно утверждать, что пример содержит альтернативное
оптимальное решение.
Шаг 2 0 0 1 14 14
0 4 0 X 8 4 12
7 0 0 8 8 8
10 14 6 10 14 6 4
Рис. 3.16. Второй шаг определения оптимального плана перевозок
ШагЗ 0 0 1 14 6 8
0 4 0 X 8 6 4 2
X 8
10 6 6 10
Шаг 4 0 X 8 8 6 14
0 X X 2 2 6 4 12
X 8 8
10 10 14 6 4
Рис. 3.18. Четвертый шаг определения оптимального плана перевозок
78 Гпава 3. Транспортная задача
Венгерский алгоритм
1. Если в разреженной матрице стоимостей в каждой строке и в
каждом столбце нельзя указать по единственному нулю, то нуж
но минимальным количеством горизонтальных и вертикальных
линий вычеркнуть все нули.
2. Из оставшихся невычеркнутых не нулевых элементов надо вы
брать самый маленький элемент и вычесть его из оставшихся не
вычеркнутых элементов.
3. Прибавить этот минимальный элемент ко всем элементам, на
ходящимся на пересечении горизонтальных и вертикальных
линий.
3.5. Задачи, сводящиеся к транспортной задаче
Пример 3.8
Распределить работы между исполнителями. Исходные данные
приведены в таблице.
4 7 3 3
1 2 6 2
3 5 4 1
6 2 1 4
1 1 1 1
Выполним разреживание (зануление) матрицы.
0 - 1 0 0
-3 1 4 0 0 1 -3 1 3 0 0 1
-1 0 1 5 1 1 -1 0 0 5 1 1
-1 2 4 3 0 1 -1 2 3 3 0 1
-1 5 1 0 3 1 -1 5 0 0 3 1
1 1 1 1 1 1 1 1
0 0 5 3
0 1 1 0
5 0 0 5
1 1 1 1
Единственный ноль находится в первой строке и четвертом
столбце. Процедуру необходимо повторить.
3.6. Примеры
1. Составьте план перевозок ресурсов от производителей к по
требителям с минимальными затратами по условиям таблицы. Зада
чу решить методами «северо-западного угла» и потенциалов.
3.6. Примеры 81
1 3 2 5 3 240 2
3 2 6 4 2 75 3
2 1 4 3 3 330 4
85 45 280 110 250 Объем производства ресурса
1 2 3 4 5
Потребители ресурса
Наименование потребителя
2. Составьте план перевозок ресурсов от производителей к по
требителям с минимальными затратами по условиям таблицы. Зада
чу решить методами минимального элемента и распределительным.
42 52 38 22 46 240 2
14 58 22 34 36 75 3
2 0 34 40 52 37 330 4
150 245 70 340 220 Объем производства ресурса
1 •2 3 4 5
Потребители ресурса
Наименование потребителя
3. Составьте план перевозок ресурсов от производителей к по
требителям с минимальными затратами по условиям таблицы. Зада
чу решить методами добротностей и дельта-методом.
16 26 34 22 46 115 2
14 22 26
34 36 307 3
12 8 52
20 37 425 4
134 182 75 224 165 Объем производства ресурса
1 2 3 4 5
Потребители ресурса
Наименование потребителя
4. Составьте план перевозок ресурсов от производителей к по
требителям с минимальными затратами по условиям таблицы. Зада
чу решить методами «северо-западного угла» и распределительным.
6 - 1962
Гпава 3. Транспортная задача
40 25 75 75 80 250 3
30 65 60 45 25 450 4
555 343 133 235 424 Объем производства ресурса
1 2 3 4 5
Потребители ресурса
Наименование потребителя
5. Составьте план перевозок ресурсов от производителей к по
требителям с минимальными затратами по условиям таблицы. Зада
чу решить методами наименьшего элемента и дельта-методом.
Производители ресурса
Стоимость перевозки единицы ресурса,
руб. Объем произ Наименование
водства ресурса производителя
33 45 27 37 25 1000 1
17 57 43 49 45 700 2
41 39 51 53 39 800 3
23 27 25 41 43 500 4
640 480 735 500 365 Объем производства ресурса
1 2 3 4 5
Потребители ресурса
Наименование потребителя
Контрольные вопросы
*2а
11 \
иь Ч
9 \
8
7 \
\
6
5
4 N4
3 \
2
\
N
1 N
1 2 3 4 5 6 7 8 V 10 и 1$Ь
Пример 4.3
Рассмотрим метод Гомори на примере 2.6.
Найти максимум целевой функции F (Jt) = х\ + *2 + *з- Ограниче
ния имеют вид:
-* , + 3*2 + 2*з < 6;
• 2*j + 4*2 + 2*3 < 8;
3*| +2*2 - * 3 < 4.
Дополнительно потребуем, чтобы *ь *2 и *3 были целочисленными.
Задача была решена симплексным методом и получен ответ.
0 5/3 1 1/3 1/6 0 10/3
1 1/3 0 -1 /3 1/3 0 2/3
0 8/3 0 4 /3 - 5 /6 1 16/3
0 -1 0 0 - 1 /2 0 / - 4
1 / 3 * 4 + 1 /6 * 5 > 1 /3 ИЛИ 1 / 3 * 4 + 1 /6 * 5 - * 7 = 1 /3 .
0 5/3 0 1 03 0
1 1/3 0 0
0 -1 0
5/2 7/2 0 0 37 0
0 0 1 0 22 1
0 -1 0 1
0 / - з 0
В последней строке матрицы четвертый элемент положитель
ный, поэтому ведущий элемент будет находиться в четвертом
столбце. Выполним анализ четвертого столбца.
- - 7/3 1 минимальный элемент равен 1, поэтому ве
дущим элементом будет af44.
Выполним пересчет элементов четвертой строки
4.2. Метод Гомори 87
0 5/3 1 0 0 0 3
1 1/3 0 -1 0 0 0
5 /2 7 /2 0 3 0 0 7
0 0 0 1 1/2 1 1
0 -1 0 1 0 0 /-3
Формула для пересчета второй строки у ' у =\\>2j + Ф 4у
Ответ: Х { 1; 0; 3); = 4.
Пример 4.4
Найти максимум целевой функции: = 2 *1 + 4 *2 —►max при
наложенных ограничениях:
2*, + *2 <19/3;
- *, +3*2 ^10;
*, и *2 - целые.
1 1 1 0 19/3
1 3 0 1 10
2 4 0 0
19/6 и 10/1 19/6 6,33;
19/3 и 10/3 — 10/3 3,33.
88 Глава 4. Целочисленное программирование
1 1 /2 1 /2 0 19/6
0 |5/2| - 1 / 2 1 4 1/ 6
0 3 -1 0 /-1 9 /3
19/3 и 41/15
1 0 3 /5 -1/5 9/5
0 1 -1/5 2/5 41/15
0 0 2 /5 6 /5 / - 2 1 8 / 1 5
Ответ: Х (9 / 5; 41 /15); F(x) = 218 /15.
F w = 2 x , +4^2 = 2 - 1 + 4 - 3 = 2 + 1 2 = 14;
2jc, +jc2< 19/3; 2-1 + 1-3 < 19/3; 2 + 3 < 19/3; 5 < 19/3;
x\ + 3*2 < 10; 1-1 + 3 - 3 < 10; 1+9<10; 10 < 10.
Наложенные ограничения выполняются.
Пример 4.5
2 0 0 0 0 1 512 + + 4* 300
3 0 0 0 1 0 512 + + + 320
4 0 0 0 1 1 512 + + + 620
5 0 0 1 0 0 620 + + + 395
6 0 0 1 0 1 620 + + + 695
7 0 0 1 1 0 695 + + + 715
8 0 0 1 1 1 715 + + + 1015
9 0 1 0 0 0 1015 + + + 480
10 0 1 0 0 1 1015 + + + 780
11 0 1 0 1 0 1015 + + + 800
12 0 1 0 1 1 1015 + + + 1100
13 0 1 1 0 0 1100 + + + 875
14 0 1 1 0 1 1100 + + + 1175
15 0 1 1 1 0 1175 + + + 1195
16 0 1 1 1 1 1195 + + + 1495
17 1 0 0 0 0 1495 - 512
18 1 0 0 0 1 1495 + + + 812
19 1 0 0 1 0 1495 + + + 832
20 1 0 0 1 1 1495 + + + 1132
21 1 0 1 0 0 1495 + + + 907
22 1 0 1 0 1 1495 - + + 1207
23 1 0 1 1 0 1495 + + + 1227
24 1 0 1 1 1 1495 + + + 1527
25 1 1 0 0 0 1527 + + + 992
26 1 1 0 0 1 1527 + + + 1292
27 1 1 0 1 0 1527 + + + 1312
Л* ,1 1 :о’ 1 1 1--:'?Л1527.,-:;.!'! 'Y % 1612
29 1 1 1 0 0 1612 + + + 1387
30 1 1 1 0 1 1612 - + + 1687
31 1 1 1 1 0 1612 — + + 1707
32 1 1 1 1 1 1612 - - - 2007
Оптимальный вариант найден на двадцать восьмом шаге.
92 Гпава 4. Целочисленное программирование
Пример 4.6
Таблица 4.3
Номера изделий
Характеристика и размерность
1 2 3 4 5 6 7 8
Решение
Таблица 4.4
Значения переменных,
Значения
входящих в вектор решения
Шаги
целевой левой части
1 2 3 4 5 6 7 8
функции ограничений
1 1 1 1 1 0 0 0 0 68 45
2 1 1 1 0 1 0 0 0 66 44
3 1 1 1 0 0 1 0 1 70 45
4 1 1 1 0 0 0 1 1 68 44
5 1 1 0 1 1 0 0 1 69 44
6 1 1 0 1 0 1 0 1 68 43
7 1 1 0 1 0 0 1 1 66 42
8 1 1 0 0 1 1 1 68 45
9 1 1 0 0 1 1 0 1 66 42
10 1 1 0 0 1 0 1 1 64 41
11 1 1 0 0 0 1 1 1 63 40
12 1 0 1 1 1 0 0 1 63 45
13 1 0 1 1 0 1 0 1 62 44
14 1 0 1 1 0 0 1 1 60 43
15 1 0 1 0 1 1 0 1 60 43
16 1 0 1 0 1 0 1 1 58 42
17 1 0 1 0 0 1 1 1 57 41
4.4. Метод Фора - Мальгранжа 95
Продолжение табл. 4.4
Значения переменных,
Значения
входящих в вектор решения
Шаги
целевой левой части
1 2 3 4 5 6 7 8
функции ограничений
18 1 0 0 1 1 1 1 0 60 44
19 1 0 0 1 1 1 0 1 58 41
20 1 0 0 1 1 1 1 56 40
21 1 0 0 1 1 1 1 55 39
22 1 0 0 1 1 1 1 53 38
23 0 72 45:
24 0 1 1 1 1 И 1 70 42
25 0 1 1 1 1 1 1 68 41
26 0 1 1 1 1 1 1 67 40
27 0 1 1 1 1 1 1 65 39
28 0 1 0 1 1 1 1 1 63 37
29 0 0 1 1 1 1 1 1 57 38
После первого шага (построения опорного решения) целевая
функция (сумма прибыли) получила значение 6 8 (табл. 4.4). После
первого шага добавим новое ограничение:
22*1 + 20*2 + 14хз + 12x4 + 10xs + 9хв +7x7 + 5х« > 69.
Далее на втором шаге переменной Х4 присвоим 0 и попытаемся
присвоить Х5 = 1. Значение целевой функции будет равно 6 6 . Добав
лять нового ограничения не будем.
Далее, на третьем шаге, положим переменную Х5 = 0 и, начиная
с переменной х$, будем им присваивать поочередно 1. Комбинация
{ 1 ; 1 ; 1 ; 0 ; 0 ; 1 ; 1 ; 1 } нарушает условие ограничения (требуется ресурс
более 45) и поэтому пропущена. На третьем шаге получено значение
целевой функции, равное 70, поэтому вводим новое ограничение:
22xi + 20x2+ 14хз + 12x4+ 10x5+ 9хб +7x7+ 5xg> 71.
Аналогичным образом продолжается поиск оптимального решения.
Оптимальное решение будет достигнуто на 23-м шаге: целевая
функция примет значение, равное 72, и будет удовлетворено усло
вие ограничения (ресурс используется целиком — 45 единиц) [6 ].
96 Гпава 4. Целочисленное программирование
хк = х Г - х Г . (4.8)
Во второй задаче дополнительное ограничение содержит округ
ление до ближайшего большего целого значения:
(4.9)
где символом Лобозначена дробная часть числа, а символом ~ целая
часть числа.
4.5. Метод * ветвей и границ» 97
Укрупненный алгоритм метода «ветвей и границ»
1. Получить опорное решение.
2. Проверить, является ли полученное решение целочисленным?
Если «да», то перейти к шагу 11. Если «нет», то присвоить значению
целевой функции большое отрицательное значение и перейти к шагу 3.
3. Из вектора решения выбрать переменную, имеющую наи
большее нецелочисленное значение.
4. Определить дополнительное ограничение для выбранной пе
ременной и выполнить ветвление алгоритма на две задачи.
5. Выбрать очередную из двух задач. Проверить, просмотрен ли
весь список задач? Если «да», то перейти к шагу 11. Если «нет», то
перейти к шагу 6.
6. Найти оптимальное решение очередной задачи.
7. Проверить полученное оптимальное решение. Если найден
ное решение лучше ранее зафиксированного результата, то перейти
к шагу 9. Если найденное решение хуже ранее зафиксированного
результата, то перейти к шагу 8.
8. Отказаться от дальнейшего ветвления и перейти к шагу 5.
9. Проверить, является ли полученное решение целочисленным.
Если «да», то перейти к шагу 10. Если «нет», то перейти к шагу 3.
10. Запомнить вектор решения и значение целевой функции и
перейти к шагу 5.
11. Проверить, равно ли значение целевой функции ранее уста
новленному большому отрицательному значению (на шаге 2)? Если
«да», то задача не имеет целочисленного решения. Если «нет», то
перейти к шагу 12.
12. Вывести вектор решения и значение целевой функции.
Пример 4.7
Определить максимум целевой функции F(x) - 6 х\ + 2 x2 при ог
раничениях:
fl3jCi + 4х2 й49;
\ - х 1 + 4 х 2 <9.
Второй шаг
Первая ветвь. Отмечаем, что по условию задачи значение первой
фактической переменной не может превышать 3. Округляем значе
ние второй фактической переменной с недостатком, таким образом,
что хг < 2. Вводим фиктивную переменную хв такую, что хг + *6 = 2.
Это позволит выделить подобласть левее прямой линии хг = 2. Решим
с помощью симплексного метода подзадачу:
F(X) = 6xi + 2хг —* max
при ограничениях
13дс, +4;t2 <49;
—jc, +4дс2 <10;
jc, <3;
*2 - 2-
Ответ: F(X) = 24; ^ (3 ; 2).
4.6. Примеры
1. Найти целочисленное решение методом Гомори, если целевая
функция F(X) = 2*i + 3*2 + 4*з + 7*4 —* max и ограничения
[х, - 2*2 + 2*3 + *4 < 9;
[2*2 - *3 + 3*4 < 12.
Контрольные вопросы
Динамическое программирование
Пример 5.1
Проложить полотно железной дороги по кратчайшему, с эконо
мической точки зрения, пути между пунктами А и Б. На географи
ческой карте строится некоторая прямоугольная область, где в ле
вом нижнем углу помещен пункт А, а в правом верхнем углу —
пункт Б. Прямоугольная область по горизонтали и по вертикали
разделяется на произвольное количество отрезков, и по границам
отрезков строится сетка. Для каждой стороны элементарного пря
моугольника определяется стоимость прокладки пути (рис. 5.1).
Для упрощения решения задачи положим, что путь может про
кладываться только по границам элементарных прямоугольных
областей (т. е. под углом 90°), заранее известна стоимость строи
тельства по каждому элементарному отрезку, и путь от пункта Б к
пункту А прокладывается в направлении справа налево и сверху
вниз без петель. Таким образом, каждый возможный путь от пунк
та А до пункта Б будет представлять собой ломаную линию. Надо
проложить такой путь от А к Б, чтобы суммарные затраты на его
строительство были минимальны. Возможны два варианта: пол
ный перебор всех возможных путей, что очень долго и трудно, или
использование динамического программирования с разделением
задачи по шагам.
Разделим расстояние между пунктами А и Б на 17 отрезков
(шагов) по горизонтали и на 8 отрезков (шагов) по вертикали.
Тогда длина любого пути составит m = 17 + 8 = 25 отрезков (ша
гов). На рис. 5.1 указаны стоимости строительства пути по каж
дому отрезку.
Перемещение от Б к А выполняется последовательно по элемен
тарному пути (шагу) к следующей узловой точке. Каждая узловая
точка характеризуется двумя координатами: горизонтальной и верти
кальной. Обе координаты целочисленные и большие нуля: 0 < х < 17
и 0 < ^ < 8. В каждой узловой точке будем определять условное оп
тимальное управление (движение по горизонтали или движение по
вертикали). Направление движения выбирается из условия: стои
мость строительства всех остальных отрезков пути, включая текущий
отрезок, должна быть минимальной. Эту стоимость будем называть
условно-оптимальной.
Итак, запустим процедуру поиска условно-оптимального реше
ния от конца к началу (от пункта Б к пункту А). На последнем 25-м
шаге будем находиться в верхнем правом углу (пункт Б). Попасть в
5.2. Нахождение кратчайшего пути 105
|— ^н j ^ | \о j fH | м j « - J - 00 1 | ' гн— j
i-н
^Н rH М
rH О
1-Н i-t
1-Н о
rH «н
i-Н гч
гЧ ч>
гН
. « ч Г* 1-н О О О О 45
гН *4 1-Н i-Н i-Н i-Н iH tH i-Н
j - з— s —j—г-— ,— j _ s —j—з —|
1
»H - i i - H O
iH fH
»H O
i-Н O
iH ^ »-t
*-H VO
iH
| 1 - 3 . ^ л_ | _ 2 - | _ С0— J - d - j - o o — | - 3 - j - л - |
3 2 04 00 00 2 2
j j j 1 — On j Д | 1S ■' | ■3 — |
2 Os Ov 00 c- 2 ' C O O O O
Я
Г ^ ^ Т * " Т аТ 8 -1~я'Т 81
<* » 2 «" Я >o t' Й
|— ®>— |— o<— |— Я-—|— 2 — j—2 — |— Я— |— o,— |— со—|
л Я 2 2 < * 2 оо ° Я
|---° ---1---° —j "— Т ---- 1--- ° ---- j- Я—|---№— |---О»—j- 2 —|
гНМНт8^ ^ “гНМ
Ov О О О »н <N О О О
гЧ гН i-Н ^Н i-Н rH iH i-H
О »н л . О O i H rH т-н «Ч
«Н «Н ^ г-н 1-Н тН 1-Н tH 1-Н
|_ S - j - S _ |_ ^ |_ S _ ^ - | |~ " J- 1 I
г -1 О ск ^н О О О - ^ Ю
»Н ^ ^ *Н 1-Н ^Н iH rH
| _ - _ | _ л_ ^ о -------- 1 _ - _ |------- 1
2 3 2 2 » 2 c s o j j
|— a ^ j — л -^ j— Я - | — 2 — j - Q - j - 2 — |— 2 —^ —2 —|
О
н Он О С* VO
.О Т
106 Гпава 5. Динамическое программирование
Е\ Д\ Г\ В\ Б\ Б
11 10 9 11 11 11
Ж\
А/, Л\ К[ Я, 9
8 8 9 9 5,
/>, Я, 0\ 11
10 10 9 9 Я,
С,
11
Г,
9
9
X, 10 ф .
16 15 16 1 2 Цх
А Ж, Ul\ V,
Рис. 5.3. Прокладка пути в обратном направлении
Е\ Д\ Г\ 2>| Б
Р, 7 10 11 11 Ml
---------- 1
9 10 11 12 И 10 11 £, Д, Г\ Вх Б\ Б
1
1
1
О 11 10 9 11 11 11
Ж,
1 0 1 л, К, Я, 9
л/,
71 8 8 9 9 3,
Pt| Я, О, И
10 10 10 9 9 я,
11
г[7Г
8 9 10
10
М\ 8 8 10 10 11
Е\ Д\ ГI В\ Б\ Б
пГТо 9 И И И
Л/, JI\ К\ Их 9
7 По 1Г“ 111 8 8 9 9 5,
Пример 5.2
Имеется четыре предприятия, между которыми надо распреде
лить 7 единиц ресурсов. В табл. 5.1 даны функции дохода а,- от вло
жения фиксированных порций денежных средств.
Ц2 Гпава 5. Динамическое программирование
Таблица 5.1
X a l(x) a 2M am a 4(jr)
1 0,7 0,1 0,1 1,0
2 0,9 0,4 0,3 2,2
3 1,1 0,8 0,9 2,4
4 1,2 1,1 1,0 2,4
5 1,3 1,5 1,4 2,4
6 1,3 1,6 1,5 2,4
7 1,3 2,0 i;5 2,4
Для каждого из четырех предприятий, начиная с какой-то сум
мы, наступает режим насыщения, т. е. предприятие не в состоянии
освоить вложенные средства.
Запустим алгоритм с конца. Количество шагов равно количест
ву предприятий.
Первый шаг. Денежные средства назначаются четвертому пред
приятию.
Ц о = 1; L(i) = 2,2; L$) = 2,4; Z,(4) = 2,4;
L(s) = 2,4; L(в) = 2,4; Lq) = 2,4.
Второй шаг. Денежные средства распределяем между 4- и 3-м
предприятиями.
L( 1) = шах ( 1.0: 0,1} = 1,0;
Z,(2) = max (2.2: 1,0 + 0,1; 0,3} = 2,2;
Z,(3) = max (2.4: 2,2 + 0,1; 1,0 + 0,3; 0,9} = 2,4;
L(4) = max {2,4; 2.4+ 0.1: 2.2 + 0.3: 1,0 + 0,9; 1,0} = 2.5;
I (5) = max {2,4; 2.4+ 0.1: 2.4+ 0.3: 2.2+ 0.9: 1,0+ 1,1; 1,4} =3,1;
L(6) = max {2,4; 2,4 + 0,1; 2,4 + 0,3; 2.4 + 0.9: 2,2 + 1,0; 1,0 + 1,4;
1,5} =3,3;
1(7) = max {2,4; 2,4 + 0,1; 2,4 + 0,3; 2,4 + 0,9; 2,4 + 1,0; 2.2 + 1.4:
1,0+1,5; 1,5} =3,6.
Третий шаг. Денежные средства распределяются между вторым
шагом и 2-м предприятием.
Z,(i) = max ( 1.0: 0,1} = 1,0;
Z(2) = max {2,2; 1,0 + 0,1; 0,4} = 2,2;
L(з) = max (2.4: 2,2 + 0,1; 1,0 + 0,4; 0,8} = 2,4;
Z,(4) = max {2,5; 2,4 + 0.1: 2.2 + 0.4: 1,0 + 0,8; 1,1} = 2,6;
Z/(5) = max {3J.; 2,5 + 0,1; 2,4 + 0,4; 2,2 + 0,8; 1,0 + 1,1; 1,5} = 3,1;
I( 6) = max {ЗЛ; 3,1 + 0,1; 2,5 + 0,4; 2,4 + 0,8; 2.2 + 1.1: 1,0 + 1,5;
1,6} =3,3;
5.3. Распределение ресурсов 113
L(j) —шах {3,6; 3,3 + 0,1; 3,1 + 0,4; 2,5 + 0,8; 2у4 +1,1; 2.2 + 1.5:
1,0+ 1,6; 2,0} =3,7.
Четвертый шаг. Денежные средства распределяются между
третьим шагом и 1-м предприятием.
I(i) = шах 11.0: 0,7} = 1,0;
L(2) = max (2.2: 1,0 + 0,7; 0,9} = 2,2;
L(3) = шах {2,4; 2.2 + 0.7: 1,0 + 0,9; 1,1} = 2,9;
Z,(4) = шах {2,6; 2.4 + 0.7: 2.2 + 0.9:1,0 + 1,1; 1,2} =3,1;
Z,(5) = max {3,1; 2.6 + 0.7: 2.4 + 0.9: 2.2 +1 .1 :1,0 +1,2; 1,3} = 3,3;
1(6) = max {3,3; 3-.1ь+0.7: 2,6 + 0,9; 2,4 + 1,1; 2,2 + 1,2; 1,0 + 1,3;
1,3} =3,8;
L(7) = max {3,7; 3.3 + 0.7: 3.1 + 0.9: 2,6 + 1,1; 2,4 + l,2'u2,2 + 1,3;
1,0+1,3; 1,3} =4,0.
Максимальный доход 4,0 от вложенных средств может быть по
лучен в двух вариантах распределения денежных средств.
Первый вариант, в свою очередь, на третьем шаге разделяется
также на два варианта:
Первому предприятию 1; Первому предприятию 1
Второму предприятию 4; Второму предприятию 0
Третьему предприятию 0; Третьему предприятию 3
Четвертому предприятию 2; Четвертому предприятию 3
Второй вариант:
Первому предприятию 2;
Второму предприятию 0;
Третьему предприятию 3;
Четвертому предприятию 2.
Таким образом, имеются три варианта оптимального распреде
ления денежных средств, которые представлены в табл. 5.2 [5].
Таблица 5.2
Предприятие Вариант 1 Вариант 2 Вариант 3
1 1 1 2
2 4 0 0
3 0 3 3
4 2 3 2
5.4. Примеры
1. Из пункта А в пункт Б необходимо проложить трубопровод по
самому экономичному пути. Данные приведены на рис. 5.9.
2. Из пункта А в пункт Б необходимо проложить шоссейную до
рогу по самому экономичному пути. Данные приведены на рис. 5.10.
5.4. Примеры
W
р - р rT ' j SO 11 | 1 1Н — - j » " , q v ' " "■■j" 111 в о — p - П
ГН n <4 О iH
i~h
O
*н
r-t vo
^
| _ =_ ^ s _ | _ „ _ | _ . _ ^ _ | ------------ j - a - f - ^ - |
<* Я ^ Я л л оо 2 £
О О QQ О JV О О ^
*н vn 00 00 S mi v\ ^
я^ -о ч■■j я j os ■-j я-'"! ■о\...| - з - |:-я—j
3 о* л оо с- 2 « 00 00 ез
^— 2 — |— о\— |— 3 — |— о \— |—Я — |— S — |— Я — |— 3 — |
С
ои
S
Яи
С
Я * » 3 ^ Я Ч) Г- ^
ЕЗ
t_ * i _ ^ T s ‘ t ' 2 - r a T s " T * i " * 1 CQ
Я 3 » 3 00 Я г- 00 q
I— f-°— I
>*
I—
Я
2
2
Я
|—Я:—|—Я—|—2 —|—Я
Я
Я
<*
о>
«
л
2
Я
| 2 —j—2 — |—o>—|—я - j
^
»
—M os
°>
j
2
©\
1Л
и
X
Он
о» Я 2 2 °> 2 « 2 . Я
| _ S ^ ^ J j L _ o _ ^ . J j -------------1----------- j l 2 ^
0' " . Н0 И0 0
Н T * NИ
И О
И ОН О И
|_ S _ |_ ^ |_ _ |_ S_ ^ _ | -------|- s - |-----^
О i“< л. О О ft г Н г Н Г !
w »Н »Н iH 1-Ц i-Н r-j
О 1-t О 0 0 ° Л о »л
rH i-< vH rH w «Н 4/1 1-4 1-1
| — Я — j— оч— J"— Я — | — Я ■- | ■Q — |— 3 — |— 3 — | — 3 — |
2 ^ 2 2 Я л 2 у Я 2
•Я 1 о\ 11 Я 1 Я ■м i 1 о\ 1 3*™^
116 Гпава 5. Динамическое программирование
(4
^Г
0 Т П Г Н ----- г п гН— I— i—
я, О I—
<0
t I О «н СО Г* *)
1 21
а л -л. я » .я я .а а
I—00—I——I—01—
I—~—\~*—I—**—I——|—**•—|
jl» j Я | o -j-o , I о> j я—
Я 0> Я 00 1П 00 2 Д л
h s+О 3TО 2T^ '° ~Г) h T
'О 00
s~ оf 2‘trt £!'1гч
f H M n i —
!н 2 2 ^ «N 00 0 \ Д ш
|—Я■■■| ■■ой1 | ’I' ■2— I ’о\—1-“ о\—J
2
5.10. У словия примера
P ' tЯ' * rTЯ aT " - 'Гh iП— 0t—
S 0
fH
2 *
Ш Ю 00
Н - *1
"S щ- | I-1 | ■00 ""j 1■2 ■
■■| ■■оо—j
5 S Я * ч) о\ сл 2 45
Рис.
l- s i “ a T a i - *- M — l” 3 i — I
m ^ н v v w ^
— |“ а + 2 1
^ н и Н ^
h =- ^ s1 —
S Л л . л л Я Я Я 2
|— s j я j а—|—оч ■j s j я— j - а —| - я- j
2 » Д Л о> Я Я 2 Я
[—оч—|—S -^—S —|—«ч— |-G—jl—Д—1_2 — 2 —j
Я « 2 <* 2 Я 2 2 Я
|—оа—|—S— Д—|—S —^-СЗ— Д—
00 00
L—г.—1—
5.4. Примеры 117
*н ^ ^
I— h ^ T~ 8'
ffi
ь
Й
S
0\
S
bT
Д
S
оо
'Р
—
V)
* оо
s^
_
s
s+
я
a1
^
I—^—I—^—I— —j—**--l""1^—I—^—\ —^—("~ ^
Я
r+-T "r“+ rH —Н
S 8 ^ ГЧ 00 о\ Я «
’^ h " - 1- s-t — 1
r ^ - j - a - f ------1
3 s S »
l“ * ' T aT " 1
- |- s ^ j- s - p a - j- s - |
ih *н <4 sM
s - r =- ^ s- w^ H »h
*H iH ^
- T ai - a1
г -т -н
pmH Л
fH wi Ы
IIS Гпава S. Динамическое программирование
Контрольные вопросы
а б
Рис. 6.1. Выпуклая (а) и вогнутая (б)
функции одной переменной
а б
Рис. 6.2. Унимодальная (а) и мультимодальная (б)
функции одной переменной
F(x) т
X X
a б
Рис. 6.3. Выпуклое (а) и невыпуклое (б) множества
хг
Х\
а б
Рис. 6.4. Односвязная (а) и многосвязная (б)
области допустимых решений:
--------- ОДР;
--------- линия уровня функции;
---- ►— проекция антиградиента
дь(х‘)
fit,
(6.4)
дх„
В специальной литературе доказывается, что градиент ортого
нален линии уровня, проходящей через точку дифференцирования,
и направлен в сторону максимума функции (направление наиско
рейшего подъема). Противоположное направление градиента (анти
градиент) указывает направление минимума (направление наиско
рейшего спуска).
Аппроксимация функций. При решении задач нелинейного
программирования наиболее трудоемкой проблемой является вычис
ление первых и вторых производных. Для уменьшения времени вы
числений вместо вычисления производных в некоторых методах ис
пользуют линейную и квадратичную аппроксимацию. Линейная (пер
вого порядка) аппроксимация целевой функции выполняется с по
мощью усеченного ряда Тейлора в окрестности точки х. Квадратич
ная аппроксимация целевой функции получается из разложения в ряд
Тейлора путем отбрасывания членов третьего и старших порядков.
Необходимые и достаточные условия оптимальности реше
ния. Полностью критерий оптимальности для задач нелинейного
программирования не разработан. Критерий оптимальности, как
правило, формируется для некоторого круга задач.
Для задачи нелинейного программирования, сформулированной
выше, необходимыми условиями нахождения локального экстре
мума целевой функции L(x) являются:
а) целевая функция L(x) дифференцируема в точке х*.
б) если первая производная целевой функции L(x) равна нулю в
точке х*, то точка х* является стационарной.
Достаточными условиями существования локального экстрему
ма будут названные необходимые условия и следующее:
в) вторые производные целевой функции L(x) в точке х* долж
ны быть положительно определены.
6.2. Методы прямого поиска 125
В случае поиска максимального значения вторые производные
целевой функции L(x) должны быть отрицательно определены.
Существует несколько типов задач нелинейного программиро
вания, для которых необходимые и достаточные условия не выпол
няются (например, функции с разрывом), а экстремум (минимум
или максимум) существует (рис. 6.S).
Л -
Lv
Рис. 6.6. Одна итерация метода покоординатного спуска
чч
Рис. 6.7. Исследование Д-окрестности базовой точки
для случая двух переменных
делают еще один шаг в том же направлении до тех пор, пока значе
ние целевой функции в текущей точке не будет больше, чем в по
следней базовой точке. Затем заново выполняют этап исследования
относительно полученной базовой точки. На рис. 6.8 показана тра
ектория поиска минимума целевой функции.
Блок-схема алгоритма метода Хука - Дживса представлена на
рис. 6.9.
Идея метода
Выбирается стартовая точка *о и с помощью метода покоорди
натного спуска выполняется одна итерация, т. е. находится первая
базовая точка х\. Затем выбирается вторая стартовая точка х2 и так
же определяется первая базовая точка х3. Через две базовые точки jti
и *з проводится прямая линия, которая обязательно пройдет через
точку экстремума х . Вдоль этой прямой линии осуществляется по
иск точки экстремума. Прямая линия х\ и хз будет секущей по от
ношению к линии хо и *i и к линии х2 и дгз, т. е. две последние линии
параллельны [1, 8].
При практическом использовании метода Пауэлла можно обой
тись и одной стартовой точкой. Сначала из стартовой точки выпол
няют одну итерацию методом покоординатного спуска и получают
]3 4 Глава б. Нелинейное программирование
■ ш е в в в в ш а а а в в ^ в в а в в в а п в в в в в в в в в а в ^ в а в а а а в а в ^ в в в в я в в а в в в в в в
а Ъ
Уй+Т-1
J=‘
XUJ = «л/2 ’
, i = 2 ,n + \. (6.9)
I 2 •Jn + 1 + n —l , . .
X' + ----------- 7=-------Ь, J * l
n jl
4. В каждой вершине симплекса определить значение целевой
функции Цх).
5. Вычислить критерий останова алгоритма по формуле
Se, (6.10)
" + 1 1.1
где е — малое число.
Если критерий останова алгоритма меньше е , то перейти к шагу
13. Если «нет», то перейти к шагу 6.
6. Определить вершину с максимальным значением целевой
функции и присвоить ей индекс h, т. е. L(xh). Определить вершину с
минимальным значением целевой функции и присвоить ей индекс /,
т. е. L(д/).
7. Вычислить координаты центра тяжести (порядковый номер
вершины и + 2) по формуле:
17-1 > —
гл+2tj _ 1 _
- x h’J (6 . 11)
2У'
IT
1
_
238 Гпава 6. Нелинейное программирование
/= | /
(6.19)
2. Растяжение вершины.
Если после отображения вершины симплекса оказалось, что
значение целевой функции в отображаемой вершине меньше, чем
во всех остальных вершинах или равно значению целевой функции
в вершине х/, то выбранное направление удачное, т. е. где-то в этом
направлении находится экстремум. Поэтому отображаемую верши
ну надо продвинуть в направлении отображения (см. рис. 6.17).
(6.21)
где у > 1 — коэффициент растяжения.
Если значение целевой функции в растянутой вершине меньше,
чем значение целевой функции в отображенной вершине, то коор
динаты вершины X/, заменяются на координаты растянутой верши
ны. В противном случае — координаты вершины х* заменяются на
координаты отображенной вершины.
3. Сжатие вершины.
Если после отображения вершины симплекса оказалось, что
значение целевой функции в отображенной вершине больше или
равно значению целевой функции в вершине х*, то направление
отображения выбрано неудачно и отображенную вершину надо
приблизить к центру тяжести (см. рис. 6.17). Сжатие вершины вы
полняется по формуле:
(6 .22)
где 0 < р < 1 — коэффициент сжатия.
Если после выполнения процедуры сжатия значение целевой
функции в сжатой вершине будет меньше, чем в вершине х*, то вы
полняем замену координат вершины х* на координаты сжатой вер
142 Г raea 6. Нелинейное программирование
(6.30)
X* = (6.36)
(6.39)
J
где a = z i - 2 z 2 + z3; (6.40)
Р = 3zj - 4 z2 + z3. (6.41)
В выражении (6.39) рассматриваются только положительные корни.
Если в задаче нелинейного программирования используются од
новременно ограничения в виде равенств и в виде неравенств, то для
возврата недопустимой точки (вершины) первоначально используется
метод нерегулярного симплекса. Если метод нерегулярного симплекса
не дал желаемых результатов, то в недопустимой точке (вершине)
приступают к анализу каждого ограничения отдельно. Используют
процедуру интерполяции для ограничений в виде равенств методом
нерегулярного симплекса, а для ограничений неравенств — по форму
ле (6.39). После выполнения процедуры интерполяции для каждого
ограничения вычисляют значение функционала ¥(л). Если £, - Щх) > О,
то проверку нарушения условий ограничения прекращают, а найден
ную точку (вершину) интерпретируют как почти допустимую и воз
вращаются к алгоритму оптимизации целевой функции. Если после
просмотра всех ограничений вершину в ОДР вернуть не удалось, то
возвращаются к оптимизации целевой функции и выполняют проце
дуру редукции вершин симплекса.
Следует иметь в виду, что при оптимизации функционала Ч^х)
используется n + 1 вершина симплекса, где и ;— общее число пере
менных. А при оптимизации целевой функции используется r+ 1
вершина, где г = п - т — число степеней свободы (из рассмотрения
исключаются зависимые переменные). Если отсутствуют ограниче
ния в виде равенств, то п = г.
6.3. Гоадивнтныв методы 151
Локальные экстремумы (минимумы или максимумы) в методе
скользящего допуска можно легко исключить, увеличив размер ребра
исходного регулярного симплекса. Чем больше размер ребра сим
плекса (но не более ширины ОДР), тем выше гарантия исключения
локальных экстремумов. По рекомендации авторов метода, оптималь
ный размер симплекса, когда он покрывает 60 - 80 % ОДР [8].
Преимущества метода скользящего допуска:
• скорость сходимости алгоритма не зависит от характеристик
целевой функции (или функций) и от характеристик функ
ций ограничений;
• так как для определения направления поиска экстремума
используется большой объем информации (значения целе
вой функции во всех вершинах симплекса), то выбирается
наилучшее направление и исключаются локальные экстре
мумы. Но исходный симплекс должен размещаться в облас
ти допустимых решений или в области почти допустимых
решений.
Работа алгоритма заканчивается в следующих случаях:
1. В случае успешного завершения поиска, т. е. нахождения точ
ки (вершины), удовлетворяющей условиям ограничений и достав
ляющей наименьшее значение целевой функции.
2. В случае неудачи, когда не удается найти допустимую или
почти допустимую точку (вершину).
Для решения большинства задач рекомендуется использовать
следующие значения коэффициентов:
а = 1; Р = 0,5; у = 2; $=1<Г*.
Пример 6.1
Найти минимум целевой функции F(x) = xf +4х% при е < 0,01 и
d0= 1.
Сначала решим задачу при постоянном значении коэффициента
(табл. 6.1) изменения шага d = 1 (пункт 6 алгоритма не выполняется).
Таблица 6.1
6.4. Примеры
Контрольные вопросы
© —
а б
Рис. 7.2. «Висячие» события
а б
Рис. 7.3. Добавление промежуточных событий
и фиктивных работ:
а — параллельные работы; б — фиктивные работы
16Q Гпава 7. Сетевые методы планирования
ц ^...'1 I »r I r-i-J -ii ■ 1 г г - п ■ ------....................................................................... ■ i . -;д
Пример 7.1
Кондитерская фабрика решила освоить новый вид продукции —
подарочный набор шоколадных конфет «Юбилейный». В состав
набора входят шесть видов шоколадных конфет. Данные для произ
водства набора «Юбилейный» приведены в табл. 7.1.
Таблица 7.1
Непосредственно Продолжи
Опера
Наименование работы предшествующие тельность,
ция
работы дн.
Разработка технологии производ 14
А
ства (ТП) конфет 1-го вида
Б Разработка ТП конфет 2-го вида 8
В Разработка ТП конфет 3-го вида 16
Г Разработка ТП конфет 4-го вида 10
Д Разработка ТП конфет 5-го вида 12
Е Разработка ТП конфет 6-го вида 14
Ж Разработка эскиза коробки 20
Передача технологической доку А 2
3
ментации в производство
И То же Б 2
К »» В 2
Л »» Г 2
м »» Д 2
н »» Е 2
Оформление заказа на изготовле Ж 2
О ние коробки
п Производство конфет 1-го вида 3 8
р Производство конфет 2-го вида И 10
с Производство конфет 3-го вида К 10
Т Производство конфет 4-го вида Л 12
У Производство конфет 5-го вида м 8
ф Производство конфет 6-го вида н 12
ц Производство коробок о 6
ч Комплектация наборов конфет П—Ф 6
ш Доставка коробок ц 1
э Передача конфет на упаковку ч 2
ю То же ш 1
я Упаковка наборов конфет э.я 1
7.2. Расчет временных параметров J63
13 13 3 3 3
1
-рь
1
10 0 10 4 14 4 4
0
0 -5 12 0 12 6 18 6 6
0 -6 14 0 14 0 14* 0 0
1
20 0 20 5 25 5 5
0
1 -8 2 14 16 18 20 4 4
2 -9 2 8 10 16 18 8 8
166 Г пава 7- Сетевые методы планирования
t f a = t ”0-; (7.2)
/Р"- - *(Р И- = tj°- - 1” °- = tt j . (7.3)
Для примера 7.1 этим условиям удовлетворяют следующие со
бытия и работы: 0-6; 6-13; 13-15; 15-17; 17-19; 19-20, которые
отмечены символом * в табл. 7.2.
Для анализа полученных результатов используют следующие
величины.
Максимально поздний срок начала выполнения работы t"f',
при котором еще возможен весь комплекс работ выполнить в срок
7.2. Расчет временных параметров J67
12 0 12 6 18 6 6
0
14 0 14 0 14* 0 0
40
О
1
0 -7 20 0 20 5 25 5 5
1 -8 2 14 16 18 20 4 4
2 -9 2 8 10 16 18 8 8
3 -1 0 2 13 15 16 18 3 3
4 -1 1 2 10 12 14 16 4 4
5 -1 2 2 12 14 18 20 6 6
]68 Гпава 7. Сетевые методы планирования
40" р Т ю
Ю э
Э I
зо---------------------------- 1— -----------------------------L -I—
М
50
40
30
20
10
—
г- —г— “I— —
г— —I—
ю 15 20 25 30 35 40 дн
Пример 7.2
Проложить водопроводные трубы между девятью объектами
кратчайшим (в экономическом смысле) путем. Объект 0 — водо
напорная башня. Данные приведены на рис. 7.12, где на ребрах гра
фа — стоимость работ по прокладке водопровода на данном участке
(ребре).
Qa —Qo + со4 = 2 + 2 = 4;
Qs = min (Q2 + с25; Qi + с35) = min (4 + 3; 3 + 2) = 5;
Qe = min (Q4 + c46; Qs + ci6) = min (4 + 4; 5 + 2) = 7;
Qi = min (Q5 + c57; Q6 + c67) = min (5 +4; 7 + 3) = 9;
Qs = min (Q4 + c4«; Qy + c78) = min (4 + 4; 9 + 5) = 4 + 4 = 8.
172 Глава 7. Сетевые методы планирования
© — * 0 — <Э— ©
Рис. 7.13. Кратчайший путь между пунктами 0 и 8
Пример 7.3
Определить длину (Q) кратчайшего маршрута (L) коммивояжера.
Расстояния (Qjj) между шестью городами представлены в табл. 7.4.
Таблица 7.4
Город 1 2 3 4 5 6
1 6 4 12 14 22
2 6 8 7 20
3 * 4 3 10 11 18
4 _J 12 8 10 9 16
5 14 7 11 9 10
6 22 20 18 16
Q = {2i = 0;
L = 1;
Q = Q + min (Qi2; Qiy, Qu, Qis; Qie) = 0 + min (6; 4; 12; 14; 22) = 4;
L = 1 -» 3 ;
Q = Q + min (Q32; 6 34, Qv, бзб) = 4 + min (3; 10; 11; 18) = 4 + 3 = 7;
1 = 1 —> 3 —> 2;
Q = Q + min (024; Qzs; Огь) = 7 + min (8; 7; 20) = 7 + 7 = 14;
Z, = 1 —> 3 —> 2 —>■5;
Q = Q + min (Q5i; QS6) = 14 + min (9; 10) = 14 + 9 = 23;
L = 1 —> 3 —^ 2 —^ 5 —^ 4;
6 = 6 + 646 = 23 + 16 = 39;
L = l —> 3 —> 2 —> 5 —> 4 —>6;
6 = 6 + Sei = 39 + 22 = 61;
Z, = 1 —>■3 —> 2 —> 5 —> 4 —>• 6 —> 1.
Ответ: длина маршрута 61, порядок объезда городов:
1 - > 3 —> 2 —> 5 - > 4 - > 6 - > 1.
Пример 7.4
Изменим условия примера 7.3. Определить длину (2) кратчай
шего маршрута (L) коммивояжера. Расстояния (2/у) между шестью
городами представлены в табл. 7.5.
Таблица 7.5
Город 1 2 3 4 5 6
1 6 6 12 14 22
2 6 3 8 00 20
3 4 3 10 11 18
4 12 8 10 00 16
5 14 00 и 00 10
6 22 20 18 16 8
а) Просмотр матрицы будем выполнять по строкам.
2 = 2 i = 0;
1 = 1;
Q = Q + min (gi2; Qn, 2м; Qis', 2ie) = 0 + min (6; 6; 12; 14; 22) = 6;
L = 1 —>2;
Q = Q + min (бгз; 024J 625; 2гб) = 6 + min (3; 8; оо; 20) = 6 + 3 = 9;
Z= 1 -> 2 —►3;
2 = 2 + min(Q34; 635; 2зе) = 9 + min ( 10; 11; 18) = 9 + 10 = 19;
Z,= l - » 2 - » 3 - > 4 ;
2 = 2 + min (645; Q46) = 19 + min (00; 16) = 19 + 16 = 35;
Z, = 1 —>2 —> 3 —>4 —> 6;
2 = 6 + 065 = 35 + 8 = 43;
Z,= l - > 2 - » 3 - > 4 —> 6-»5;
2 = 2 + 251 = 43 + 14 = 57;
Z, = 1 —> 2 —> 3 —>4 —> 6 5 —> 1.
Ответ: длина маршрута 57, порядок объезда городов:
1 —> 2 —> 3 —> 4 —> 6 —> 5 —> 1.
1 = 1;
Q = Q + min (62 ь бзь 641; 6 si; 06i) = О+ min (6 ; 4; 12; 14; 22) = 4;
L = 1 —» 3;
0 = 0 + min (бгз; 643; Q 5 3 , вез) = 4 + min (3; 10; 11; 18) = 4 + 3 = 7;
Z, = 1 —> 3 —> 2;
Q = Q + min (£>42; 652; бег) = 7 + min (8; 00 ; 20 ) = 7 + 8 = 15;
Z, = 1 —>• 3 —> 2 —> 4;
Q = Q + min(QS4;Q 64)= 15 + min ( 00 ; 16)= 15+ 16 = 31;
Z, = 1 —> 3 —> 2 —> 4 —> 5;
6 = 6 + 056 = 31 + 8 = 39;
Z,= l - > 3 - > 2 - > 4 —> 5 —> 6 ;
Q = Q + 061 = 39 + 22 = 61;
Z. = 1 —>• 3 —>• 2 —>•4 —> 5 — 6 —>• 1.
Ответ: длина маршрута 61, порядок объезда городов:
1 -> 3 -> 2 -» 4 -> 5 -> 6 -> 1.
Из примера 7.4 видно, что из-за несимметричности матрицы от
веты получились разные. Если граф не ориентированный, то можно
предусмотреть выбор кратчайшего ребра из двух возможных, со
единяющих вершину / с вершиной j.
16* U I bk U
Проход по первой строке массива D Проход по пятой строке массива D
Массив A | l | 3 | 0 | 0 | 0 | 0 | Массив А | 1 | 3 | 2 | 4 | 6 | 0 |
3 0° 5 8 12
4 3 о1 2 1 5
5 6 0° 4 0* ш О5
6 и 10 8 4 О5 ш
№ 1 2 3 4 5 № 1 2 3 4 5
1 « 2 о2 6 10 1 2 oi 6 9
."Ж"
2 2 ш
0* 3 4 2 2 0* 3 3
3 О1 0° ш 5 8 3 0* 0° Я 5 7
4 3 О1 2 т1 4 3 0° 2 » 0*
6 11 10 8 4 6 7 6 4 [cF
a б в
Рис. 7.20. Ветвление алгоритма:
a — снижение размера матрицы; б — «зану-
ление матрицы»; в — расчет оценок клеток
Клетка 6 -4 имеет наибольшую оценку 7. За «нулевое» ребро
возьмем 6 -4 . Далее процедура снижения размера матрицы повто
ряется. Результат преобразований показан на рис. 7.21.
_______________ Второй шаг _______________
№ 1 2 3 5 № 3 5 № 1 2 3 5
1 it 2 о2 9
1 1 2
1 И 2 о2 6 1 т 2 о2 6
2 • о2 3 2 2№ о2 0 2 2 « 0° О4
3 0* 0° Щ7 3 О2 0° ш 4 3 0* 0° щ 4
4 3 0° 2 i t 4 3 10° 2 о! 4 3 О2 2 ,о!
Третий шаг
№| 3 № 1 2 3 № 1 2 3
1 щ
1 1 2
2 о2 1 Ж 2 oi 1 2 0i
3 о2 N 4 3 & 2 4 1 <& 0
4 3 121 3 о2 0° * 3 о2 0° щ
Четвертый шаг
№ 1 3 № 1 3
1 О2 1 о2
4 1 <й 4 0
a б, в
Рис. 7.21. Продолжение ветвления алгоритма
Проанализируем выполненные преобразования и построим де
рево алгоритма (рис. 7.22). В результате расчета «зануления» ис
ходной матрицы была получена нижняя оценка — 41. Таким обра-
7.3. Нахождение кратчайшего пути 183
41
Город 1 2 3 4 5 6 №1 3 4 5 6 №| 1 2 3 4 5 6
1 т 6 4 12 14 22 1 т 22
0 8 10 18 1т 2 0* 8 9 10
2 6 т 3 8 7 20 2_ _з_§0 5 4 17 2 2 5 3 9
3 4 3 ш 10 11 18 3 1 0 ш
7 8 15 3 О2 0° 7 7 7
4 12 8 10 9 16 4 4 0 2 »
1 _8_ 4 3 0° 2 т 0* 0*
5 14 7 'Ш1
11 9 4Щ ‘ 10 5 7 0 4 2 00 5 6 0i 4 2 00
6 22 20 18 16 10 0 . 6 6 4 2 о |* Ж 6 5 4 2 О4 ОС
a б в
a б в
Рис. 7.24. Первый шаг доказательства оптимальности:
a — исключение ребра 4-6; б — перестановка
строк; в — «зануление» матрицы
51
Пример 7.5
С целью расширения производства менеджмент фирмы решил вы
пускать новый вид конкурентоспособной продукции — копченую (по
оригинальной технологии) пресноводную рыбу. Для этих целей один из
цехов фирмы надо переоборудовать и выполнить следующие работы.
1. Подготовка технического задания на реконструкцию цеха —
50 дн.
2. Заказ и поставка нового печного оборудования — 90 дн.
3. Заказ и поставка нового технологического оборудования — 30 дн.
4. Демонтаж старого оборудования — 25 дн.
5. Установка нового оборудования — 75 дн.
6. Переобучение персонала — 50 дн.
7. Проведение испытаний нового оборудования и сдача цеха в
эксплуатацию — 40 дн.
Расчетная производительность нового цеха — 36 т продукции в
смену. Прибыль от реализации 1 т продукции составит 2000 руб. Не
обходимую сумму инвестиций — 2400000 руб. можно получить как
банковский кредит из расчета 24% годовых. Полученный банков
ский кредит предполагается израсходовать следующим образом:
2000000 руб. — закупка нового оборудования, 400000 руб. — стои
мость демонтажа старого оборудования и монтажа нового оборудо
вания и проведение испытаний. Определить, через какое время будет
возвращен банковский кредит. Работы по переоборудованию цеха
можно выполнять в нормальном и ускоренном режимах (табл. 7.6).
Если работы выполнять в последовательности, которая указана в
табл. 7.5, то сетевой график будет иметь вид, приведенный на рис. 7.26.
Все работы будут выполнены за 360 дней.
Таблица 7.6
Нормальный режим Ускоренный режим
Работа Продолжитель Затраты, Продолжитель Затраты,
ность, дн. тыс. руб. ность, дн. тыс. руб.
1 50 100 43 110
2 90 1000 78 1450
3 30 500 29 600
4 25 70 22 72
5 75 330 71 380
6 50 100 44 105
7 40 300 45 370
Итого 360 2400 332 3087
При внимательном рассмотрении графика (рис. 7.26), можно за
метить, что некоторые работы можно выполнять параллельно. На
пример, пока изготавливается новое оборудование, можно начать де
монтаж старого оборудования и т. д. Поэтому сетевой график выпол
нения работ можно преобразовать к виду, показанному на рис. 7.27.
3 © —*© — ©
Рис. 7.27. Сетевой график (улучшенный) выполнения работ
Рассчитаем временные параметры и поместим результаты вы
числений в табл. 7.7.
Критический путь графика: 0-1, 1-2, 2 -5 , 5 -6, 6-7. Продолжи
тельность выполнения работ по критическому пути составит 305
дней (50 + 90 + 75 + 40 + 50 = 305). Улучшенный сетевой график вы
полнения работ по сравнению с прямым сетевым графиком дал со
кращение срока выполнения всех работ на 55 дней (360 - 305 = 55).
Теперь определим, через какое время можно вернуть взятый
кредит. Кредит можно вернуть после начала выпуска новой про
дукции и получения прибыли от ее реализации. В соответствии с
улучшенным сетевым графиком выпуск продукции может начаться
через 305 дней после начала работ. Начиная с этого срока, сколько
должно пройти дней, чтобы вернуть взятую сумму кредита вместе с
процентами по кредиту.
188 Гпава 7. Сетевые методы планирования
Таблица 7.7
Раннее Позднее Полный Свобод
Продол
резерв ный ре
Работа житель окон окон
времени зерв вре
ность, дн. начало чание начало чание
Rn мени г„
»О
0 - 1 50 0 50 0 0 0
1 - 2 90 50 140 50 140’ 0 0
1 -3 30 50 80 110 140 60 60
1 -4 25 50 75 115 140 65 65
(N
Таблица 7.8
7.5. Примеры
1. Подключить по кратчайшему пути все 10 сельских населен
ных пунктов к телефонной станции. Числа указывают расстояние в
километрах.
н Внутренняя отделка М 12
о Наружная отделка Е 8
Пункты 1 2 3 4 5 6 7 8 9 10 и 12 13 14 15 16 17 18 19 20 21 22 23
1 8 5 7
2 3
3 9
4 8 3
5 3
6 11
7 1 12
8 9
9 11 8
10 13 14
11 6 4
12 7 10
13 2 6
14 13
15 7 11
16 5
17 8
18 10
19 7 12
20 9
21 6
22 6
1 3 - 1962
194 Глава 7. Сетевые методы планирования
Контрольные вопросы
Пример 8.1
Техническое устройство состоит из трёх узлов и в любой момент
времени может находиться в одном из восьми состояний (рис. 8.1).
198 гпава 9. Системы массового обслуживания
Выполним преобразования:
Р\ (t + А /) =Р) ( 0 - р \ ( 0 (H i +Я -2 + h ) A t +po(t) X, Д / + p 4(t) Цз А> + Рб(0 Ц2 А /;
Р\ (I + А /) ~ Р \ ( 0 =/>о(0 >-1 А / + р 4( 0 Цз А / + Р б (0 Ц2А / - (H i + Я .2 + Я.з)/?1 (/) Дг,
р \ it + A/) Pi (О = ^ (,) + Цзр 4(,) + И2р 6(/) - (ц, + \ 2 + Х } )/>,(/).
At
Устремив А/ к нулю, получим:
dp (О
= А .^3 + а.3/?, + ц 2/>7 - (ц , + ц 3 + Х2) р 4,
“ </ (0 (8,3)
= h/>7 + ^гРз + *эРг ~(Х1+ Иг + Нз)/^
</ (/)
= \,/?2 + Хгр х + Ц3/?7 - (ц , + Ц2 + ^з)Рб5
(О
= Х,/>5 + Х 2/>4 + Х3р 6 - (ц , + ц 2 + ц 3) р 7;
^ (О
= HiА + Ц2Р 2 + ЦзЛ - (*ч + + *-з)А>-
Эта система дифференциальных уравнений называется систе
мой уравнений Колмогорова. Имеем систему из восьми линейных
дифференциальных уравнений с восемью неизвестными. Известно,
что сумма всех вероятностей равна единице, т. е.
Ро +Р \ + Р 2 + Р З + Р 4 + Р 5 + Р б + Р Т = 1. (8.4)
Таким образом, любое из уравнений, входящее в систему урав
нений (8.3), можно заменить уравнением (8.4), и найти значения
вероятностей для каждого события.
8.2. Финальные вероятности состояний 201
Для облегчения процесса составления дифференциальных урав
нений можно применить следующее правило:
2 > , = 1. (8.6)
/=1
7Ps = Р г + 2 Р) + 2 Р 1 >
• 27 2 4
— />« = уРо + у ^ 4 + Рг + 2 р?;
48 4 8 . -
— />о =у /> 4 + у /> б + 4 Л + 2Р3;
, 6 7 9
Pi —*“ уРо ~ Рг ~ Рз —у Р а ~ Ps - у / V
1 2
Из первого уравнения выразим р 4 =— р 0 +— р } + —2 рб+ —
10
р1
и подставим в оставшиеся уравнения. После выполнения преобра
зований получим:
964 31 89 18
13-15_/,s ЪЛЪРо + \ Ъ Л 5 Рь + n Pl '
310 178 828
Рб ~ 5087 Ро + 5087 Ps + 5087 Р7’
155 155 60
Ро 319 + 319 ^ + 319 /?7’
_ 13 73 94 94
Pl~U 93 Ро 93 Р$ 93 Рб
155 89 135
Из первого уравнения выразим р 5 =—— р 0 +—— р 6 +——р 1 и
подставим в оставшиеся уравнения
54 405 141 042
Рб ~ 814 671 Ро + 814 671 Р?’
54 405 33 230
Ро ~ 94 497 Рб + 94 497 P l '
6266 42 471 49 491
Л _ 19 172 57 516 Ро 57 516 Рб
Из первого уравнения рв подставим в оставшиеся уравнения:
17 372453 670
~ 37 012 030731 ^ 7’
ру = 0,2845- 0,6921р0.
Из первого уравнения р 0 подставим в оставшееся уравнение
Pl = 0,2845+0,6927 •0,4697р7; />7= -у |^ = 0 ,2 1 4 6 .
с отказами с очередью
(без очереди)
Ht=4Z]
^12 __________ ^23 __________ ^34 ^*-1, в
^21 ^31
Рис. 8.3. Размеченный граф процесса
^n-l.nPn-l ^п,п-\Рп ■
Используя нормированное условие
Pi +Р2 +Рз + ... +РЯ= 1, (8.9)
из первого уравнения выразим р 2 через р\
Р2 =?т-Рх- (8.Ю)
л21
Из второго уравнения, выполнив подстановку, выразим рз через р\.
p^ p^ h l h L Pl. (8.11)
Л3 2 а 21 л 3 2
Из третьего уравнения, выполнив подстановку, выразимр 4 через р \:
208 гпава & Системы массового обслуживания
а я в в в в а в в в в в в в в в в я в н а н в в т а в в в в в в в в а ш я а
Пример 8.2
Определить финальные вероятности событий для технического
устройства с помощью формул гибели и размножения.
Pi = ^ Р о =7-0,7207 = 0,1802.
A-io 4
Используя формулы (8.11) — (8.13), определим остальные фи
нальные вероятности событий
=^ о Л 1 р =L 1 .0,7207 = 0,07207;
Х10Х2/ ° 4-5
= = j^ 2 J _ . о 7207 = 0,01802;
*..0* 21*32 4-5-4
= = b 2 J L l . 0 7207=0,007207;
Х10?.21Хз2Х4з 4-5-4-5
=,^01^12.^23^34.^45, Ро = 1' 2 ' 1' 2 ' 1 ■0,7207=0,001802.
10 21 32 43 54 4-5-4-5-4
Выполним проверку. Сумма вероятностей всех событий должна
быть равна единице
Р\ +Р2 +Рз +Р4 +Ps +Рб +Pi +Ро - 1;
0,7207 + 0,1802 + 0,07207 + 0,01802 + 0,007207 + 0,001802 = 0,999999.
LCKCT= U z ( t) d t. (8.15)
I
Геометрическая интерпретация интеграла JZ(t)dt — есть пло-
о
щадь заштрихованной фигуры (рис. 8.5). Но сама фигура состоит из
совокупности прямоугольников. Каждый прямоугольник имеет еди
ничную высоту (обслуживается одно событие) и длину, равную вре
мени обслуживания события (время пребывания события внутри
СМО). Таким образом:
т
j z ( o * = 2 //- (816>
О <
Равенство (8.16) справедливо при достаточно большом значении
Т и последним прямоугольником (или прямоугольниками) можно
пренебречь, т. е. в интеграл включены все события, обслуженные
СМО, за время Т.
Разделим левую и правую части выражения (8.16) на Г
, Ео
8.5. Моделирование систем массового обслуживания 211
Тыь (817)
Выражение (8.17) называется формулой Литтла. Для любой
СМО среднее время обслуживания события (заявки) равно сред
нему числу событий в СМО, делённому на интенсивность входно
го потока событий.
Формулу Литтла можно вывести и для времени ожидания об
служивания событием
Гож ^ож . (8.18)
где Ьож— среднее число событий в очереди на обслуживание
(средняя длина очереди).
14 1* 1
Рис. 8.6. Одноканальная СМО с ^ограниченной очередью
А /_ х 2 / чЗ / \я I , , 2 , 3 , , я , ‘ (^-20)
МЛ 1+Р+Р +Р + . . . + Р + . . .
+ ...+ - +...
(8-23>
1-р
Применив формулу (8.17), определим время обслуживания заявки:
< 8 '2 4 )
1-р 1-р
Средне время пребывания заявки в очереди можно определить
Г" =Т 7 Г -Т
Х(1-р) (826)
Все характеристики одноканальной СМО определены.
Пример 8.3
На оптовую базу поступают на разгрузку три автомобиля в час
(к = 3). Среднее время разгрузки (Гебе) одного автомобиля — 10 мин.
Определить характеристики одноканальной СМО с неограниченной
очередью.
Решение
Определим интенсивность обслуживания автомобилей
1 1 =1=2=1
^ 7 ^ " 1 /6 " " Р_ Ц~6_ 2
По формуле (8.23) определим среднее число обслуживаемых
автомобилей:
Р _ 0,5 ,
214 Глава 8. Системы массового обслуживания
Ц 2ц Зц тц (">+ lV
=Р„ ^ С о (8.30)
относительная пропускная способность:
(8.31)
Абсолютная пропускная способность:
A=XQ=X^1- £ Po (8.32)
(8.33)
ц I и! Ро
Пример 8.4
На автозаправочной станции имеется четыре колонки по отпус
ку моторного топлива. Каждые три минуты прибывает автомобиль
на заправку (А. = 3). Среднее время обслуживания одного автомоби
ля (Гобс) равно 1 мин. Определить финальные вероятности состоя
ний СМО (pi), вероятность отказа в обслуживании (Pan), относи-
8.5. Моделирование систем массового обслуживания 217
Решение
Определим интенсивность обслуживания заявок ц:
1 1 1 X 3 _
ц=— =-=1 и р=—= -= 3 .
обе Ц ^
По формуле (8.28) определим финальную вероятность для со
бытия So:
Ро= 9 27 81 = 555=°’061
1 + 3 + -+ — +—
2 6 24
По формулам (8.29) определим остальные финальные вероятности:
Р\ = р/>о = 3 0,061 =0,1832;
061=0,2745;
р 3 = 4,5 0,061=0,2745;
р4 = 3,375 0,061 =0,2059.
Определим вероятность отказа в обслуживании по формуле (8.30):
Рот* ~ Ра ~ 0,2059.
Определим относительную пропускную способность по форму
ле (8.31):
Q = 1 - Рот* = 1 - 0,2059 = 0,7941.
Определим относительную пропускную способность по форму
ле (8.32):
A = X Q = 3 0,7941 =2,3823.
Определим среднее число занятых каналов по формуле (8.33):
. А 2,3823
к, =—=—----- =2,3823.
U 1
X X X X X ___X X ____X X
|Х]ц===С1=
ц 2ц
= Ш Зц ::тц0 (т + 1)ц пц лц пц пц лц
8.6. Примеры
1. Найти финальные вероятности.
2 1
4
Г
Стратегии Минимальная
в, В2 Вг в4 Вь прибыль фирмы А
А, 5 8 7 5 4 4
Аг 1 10 5 5 6 1
Аг 2 4 3 6 2 2
А4 3 5 4 4 3 3
Максимальный 5 10 7 6 6
убыток фирмы В
^^^^^^^^9^Игрьм^фопи/водвОсговыв*мм<улвво1Йсу»*мо4^^^^^^^25
Исходя из данных табл. 9.2 фирме А надо придерживаться стра
тегии Аь а фирме В — стратегии В\. Таким образом, гарантирован
ный минимальный доход фирмы А составит 4, а минимально воз
можный доход, который отдаст фирма В, составит 5 (минимально
возможный проигрыш).
Минимальный гарантированный выигрыш называется нижней це
ной игры. При плохой игре фирмы В выигрыш может быть и большим.
Минимально возможный проигрыш называется верхней ценой
игры.
Для нашего примера нижняя граница игры составляет 4 (мини
мальный гарантированный выигрыш фирмы А), а верхняя граница
игры — 5 (минимально возможный проигрыш фирмы В). Приве
денные выше рассуждения хороши, если конкурирующая фирма
заранее не знает, как себя поведет противник. Если конкурирующая
фирма ознакомлена с планами конкурента, то она может выбрать
другую стратегию (отличную от осторожной стратегии) и получить
больший выигрыш (доход). Таким образом, приведенные осторож
ные стратегии являются неустойчивыми по отношению к дополни
тельной информации.
На практике иногда случается, что нижняя цена игры равна
верхней цене игры. В этом случае говорят об устойчивых стратеги
ях игроков (конкурирующих фирм) или о задачах с седловой точ
кой. Задача с седловой точкой представлена в табл. 9.4.
Таблица 9.4
Задача с седловой точкой
Минимальная при
Стратегии в, в2 Вз В4 В5 быль фирмы А
А, 4 8 7 5 4 4
а2 1 10 5 5 6 1
Аз 2 4 3 б 2 2
а4 3 5 4 4 3 3
Минимальный 4 10 7 6 6
убыток фирмы В
Стратегии обоих противников в задачах с седловой точкой на
зываются оптимальными и не зависят от дополнительно получен
ной информации. В специальной литературе доказано, что если при
исследовании игровой модели известна вся предыстория (все ранее
сделанные ходы), то существуют оптимальные (чистые) стратегии
поведения игроков (конкурентов).
15 - 1962
226 Гпава 9. Игровые модели
Таблица 9.6
Второй шаг упрощения таблицы
Стратегии в, в5
А, 5 4
Аг 1 6
А3 2 2
Поглощаемые строки (столбцы) содержат самые плохие стратегии.
Окончательно получим (табл. 9.7).
Таблица 9.7
Третий шаг упрощения таблицы
Стратегии в, в5
А, 5 4
а2 1 6
Таблица 9.10
Таблица рисков
Стратегии By в2 Вз в4 Вь
А, 0 2 0 7 2
а2 4 0 2 7 0
Аз 3 6 4 6 4
а4 2 5 3 0 3
Пример 9.1
Швейная фабрика на летний сезон может реализовать два вида
костюмов: для жаркой погоды (первый вид) — 1200 костюмов по цене
520 руб. и 200 костюмов для холодной погоды по цене 1000 руб., если
погода будет жаркой. Если погода будет холодной, то фабрика может
реализовать 650 костюмов первого вида и 700 костюмов второго вида.
Определить план выпуска костюмов каждого вида и прибыль,
полученную от их реализации.
Решение
Швейная фабрика располагает двумя стратегиями: А\ — погода
будет жаркой и А2— погода будет холодной.
232 Гпава 9. Игровые модели
9.6. Примеры
1. Определите оптимальные стратегии и цену игры
14 5 2 7 1 3]
4 3 5 3
А= 9 7 4 2
4 2 5 1
5 4 8 4
2. Определите оптимальные стратегии и цену игры
234 Гпава 9. Игровые модели
2 5 3 4
3 4 5 6
7 8 9 7
4 9 7 5
6 2 1 2
5 3 5 3
4 5 6 8
3. Фирма производит пользующиеся спросом детские платья и
костюмы, реализация которых зависит от состояния погоды. Затра
ты фирмы на единицу продукции составили: платье — 9 ед., кос
тюм — 32 ед. Цена реализации 22 и 48 ед. соответственно. По мно
голетним данным продаж фирма может реализовать в условиях те
плой погоды 2200 платьев и 950 костюмов, а при прохладной пого
де — 870 платьев и 1800 костюмов. Определить стратегию фирмы с
учетом погодных условий, обеспечивающую ей максимальный до
ход от реализации продукции. Степень оптимизма — 0,6 .
4. Торговая фирма разработала несколько планов продаж пись
менных столов и стоек TV на предстоящей ярмарке с учетом изме
няющейся конъюнктуры рынка и спроса покупателей. Показатели
дохода представлены в таблице. Определить оптимальный план
продаж.
Планы Величина дохода, тыс. руб.
продаж Д1 Д2 ДЗ Д4
1 850 500 200 50
2 600 900 400 550
3 460 300 600 380
4 320 150 80 270
5 240 370 350 190
6 75 820 510 440
Контрольные вопросы
Предисловие..................................................................................................... 3
Глава 1. Понятие модели................................................................................5
Глава 2. Линейное программирование................... ..................................17
2.1. Основные понятия и определения...............................................17
2.2. Графический метод.................................................................... 19
2.3. Математический аппарат задач линейного программирования.....21
2.4. Симплексный метод................................................................... 24
2.5. Общий случай............................................................................ 33
2.6. Решение двойственных (обратных) задач................................... 35
2.6.1. Решение симметричных двойственных задач.........................36
2.6.2. Решение несимметричных двойственных задач...................... 38
2.7. Альтернативное оптимальное решение.......................................45
2.8. Графическая интерпретация симплексного метода...................... 47
Глава 3. Транспортная задача.....................................................................52
3.1. Общие понятия и определения................................................... 52
3.2. Математическая формулировка транспортной задачи..................55
3.3. Построение опорного плана перевозок........................................57
3.3.1. Метод «северо-западного угла»............................................. 57
3.3.2. Метод минимальных элементов............................................. 58
3.3.3. Метод добротностей............................................................. 61
3.4. Создание оптимального плана перевозок.................................... 65
3.4.1. Распределительный метод..................................................... 65
3.4.2. Метод потенциалов...............................................................69
3.4.3. Дельта-метод.........................................................................74
3.5. Задачи, сводящиеся к транспортной задаче.................................78
Глава 4. Целочисленное программирование............................................83
4.1. Общие положения...................................................................... 83
4.2. Метод Гомори........................................................................... 85
4.3. Метод Баллаша...........................................................................89
4.4. Метод Фора - Мальгранжа.........................................................92
4.5. Метод «ветвей и границ»........................................................... 96
238 Оглавление
1 .........................■ М ............... ......... ............ — ...... 1—g -!■' -L - .Л.1
МАТЕМАТИЧЕСКИЕ МЕТОДЫ
в программировании
Учебник
Редактор А. В. Волковицкая
Корректор А. В. А 1ёшина
Компьютерная верстка С. Ч. Соколовского
Оформление серии Т. В. Иваншиной