ИССЛЕДОВАНИЕ ОПЕРАЦИЙ: ТЕОРИЯ И...
Transcript of ИССЛЕДОВАНИЕ ОПЕРАЦИЙ: ТЕОРИЯ И...
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение
высшего образования «УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ: ТЕОРИЯ И ПРАКТИКА
Учебное пособие
Составитель С. В. Куркина
Ульяновск УлГТУ
2017
УДК 519.87 (075) ББК 22.18 я7
И 88
Рецензенты: доктор технических наук, профессор И. В. Семушин; кафедра прикладной математики факультета математики, информационных и авиационных технологий УлГУ
Утверждено редакционно-издательским советом
университета в качестве учебного пособия
Исследование операций: теория и практика : учебное пособие И 88 / сост. : С. В. Куркина. – Ульяновск : УлГТУ, 2017. – 87 с.
ISBN 978-5-9795-1648-6
Рассмотрены вопросы классификации задач исследования операций, основные положения и методы решения задач линейного программирования, основы построения сетевых графиков, представлены примеры решения задач.
Пособие предназначено для студентов направлений подго-товки бакалавров 09.03.03 «Прикладная информатика» профиль «Прикладная информатика в экономике», 09.03.04 «Программная инженерия», изучающих дисциплину «Исследование операций».
УДК 519.87 (075) ББК 22.18 я7
Куркина С.В., составление, 2017 ISBN 978-5-9795-1648-6 Оформление. УлГТУ, 2017
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ .......................................................................................................... 5
1. ПРЕДМЕТ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ ............................................... 6 1.1. ИСТОРИЯ РАЗВИТИЯ .................................................................................... 6
1.2. ОСНОВНЫЕ ПОНЯТИЯ .................................................................................. 7
1.3. КЛАССИФИКАЦИЯ ЗАДАЧ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ ............................... 9
1.3.1. Классификация по зависимости параметров задачи
от времени .................................................................................................... 9
1.3.2. Классификация в зависимости от достоверности информации
о задаче ......................................................................................................... 9
1.3.3. Классификация по виду критерия оптимальности ...................... 10
1.3.4. Многокритериальные задачи ......................................................... 11
2. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ ..................................................... 14 2.1. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ (ЗЛП) ........... 14
2.2. ГРАФИЧЕСКИЙ МЕТОД РЕШЕНИЯ .............................................................. 15
2.3. СИМПЛЕКС-МЕТОД ................................................................................... 17
2.4. ТЕОРИЯ ДВОЙСТВЕННОСТИ ....................................................................... 24
2.5. ТРАНСПОРТНАЯ ЗАДАЧА ........................................................................... 27
2.5.1. Математическая модель транспортной задачи ............................ 27
2.5.2. Метод северо-западного угла ......................................................... 30
2.5.3. Метод минимального элемента ..................................................... 31
2.5.4. Метод потенциалов ......................................................................... 31
2.6. ОБЩАЯ РАСПРЕДЕЛИТЕЛЬНАЯ ЗАДАЧА ..................................................... 33
2.6.1. Исходные параметры модели ......................................................... 33
2.6.2. Искомые параметры модели РЗ ..................................................... 34
2.6.3. Этапы построения модели .............................................................. 34
2.6.4. Этапы решения РЗ ........................................................................... 35
3
3. СЕТЕВОЕ ПЛАНИРОВАНИЕ ..................................................................... 37 3.1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ ..................................................... 37
3.2. ПРАВИЛА СОСТАВЛЕНИЯ СЕТЕВЫХ ГРАФИКОВ ........................................ 39
3.3. ЭТАПЫ ПОСТРОЕНИЯ СЕТЕВОГО ГРАФИКА ............................................... 46
3.3.1. Проверка исходных данных ........................................................... 46
3.3.2. Выявление необходимости введения фиктивных работ ............. 47
3.3.3. Формулировка событий сетевого графика ................................... 47
3.3.4. Построение сетевого графика ........................................................ 47
3.4. ВРЕМЕННЫЕ ПАРАМЕТРЫ СОБЫТИЙ ......................................................... 48
3.5. ВРЕМЕННЫЕ ПАРАМЕТРЫ РАБОТ И ПУТЕЙ ................................................ 50
4. ПРАКТИКУМ ................................................................................................ 52 4.1. РЕШЕНИЕ ЗЛП ГРАФИЧЕСКИМ МЕТОДОМ ................................................ 52
4.2. РЕШЕНИЕ ЗЛП СИМПЛЕКС-МЕТОДОМ ...................................................... 55
4.3. ПОЛУЧЕНИЕ ОПТИМАЛЬНОГО РЕШЕНИЯ ТРАНСПОРТНОЙ ЗАДАЧИ ........... 59
4.4. ПРОГРАММНОЕ РЕШЕНИЕ ЗЛП ................................................................. 66
4.4.1. Постановка задачи ........................................................................... 66
4.4.2. Оформление экранной формы ....................................................... 66
4.4.3. Ввод ограничений задачи ............................................................... 69
4.4.4. Целочисленное программирование ............................................... 74
4.5. ПОСТРОЕНИЕ И РЕШЕНИЕ РАСПРЕДЕЛИТЕЛЬНОЙ ЗЛП ............................. 75
4.5.1. Исходные данные ............................................................................ 75
4.5.2. Построение распределительной модели без специализации ...... 76
4.5.3. Производство со специализацией .................................................. 80
4.6. ПОСТРОЕНИЕ И РАСЧЕТ СЕТЕВОЙ МОДЕЛИ ............................................... 83
КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................... 85
ЗАКЛЮЧЕНИЕ ................................................................................................. 86
БИБЛИОГРАФИЧЕСКИЙ СПИСОК ............................................................. 87
4
ВВЕДЕНИЕ
Целью данного пособия является формирование у студентов знаний
о моделях и методах исследования операций, формирование базовых
навыков и умений в области разработки и использования алгоритмов
решения оптимизационных задач, возникающих в процессе принятия
управленческих решений и при создании систем поддержки принятия
решений.
Изучение курса исследования операций предназначено для
формирования способности будущих выпускников использовать
математические методы для решения прикладных задач, умения применять
в своей предметной области с учетом ограничений используемых методов
исследования и навыков использования методов и инструментальных
средств исследования объектов профессиональной деятельности.
Рассмотрены некоторые разделы математической науки, такие как
линейная оптимизация, сетевое планирование. Задачи оптимального
планирования, связанные с отысканием оптимума заданной целевой
функции (линейной формы) при наличии ограничений в виде линейных
уравнений или линейных неравенств, относятся к задачам линейного
программирования. Многие задачи линейного программирования, будучи
решенными, нашли широкое практическое применение в народном
хозяйстве. Методы сетевого планирования успешно применяются для
оптимизации планирования и управления сложными разветвленными
комплексами работ, которые требуют участия большого числа
исполнителей и затрат ограниченных ресурсов.
Более подробную информацию по всем вопросам, представленным в
данном пособии, и другим разделам исследования операций можно найти
в [3], [4], [5], [6]. Набор практических заданий по теме «Линейное
программирование» представлен в пособии д-ра техн. наук., профессора
И. В. Семушина [1].
5
1. ПРЕДМЕТ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ
1.1. История развития
В определенной мере создание математического программирования
и его прикладной аспект связаны с выходом в 1939 г. монографии
Л. В. Канторовича «Математические методы в организации и планиро-
вании производства», где впервые была поставлена и решена задача
линейного программирования – частный случай общей задачи
математического программирования. Первые публикации по
исследованию операций относятся к 40-м годам ХХ века, в которых
методы применены для решения военных задач, в частности, для анализа и
исследования военных операций. Отсюда и пошло название дисциплины.
Интенсивные исследования в этой области начались лишь в конце
сороковых годов, когда американским математиком Д. Данцигом был
построен изящный алгоритм симплексного метода для линейных
программ.
В пятидесятые годы в работах Г. Куна, А. Таккера, Г. Зойтендейка,
Л. Гурвица и других получают развитие методы нелинейного
программирования.
В 1957 г. появляется монография выдающегося американского
математика Р. Беллмана, положившая начало одному из оригинальных
методов исследования многошаговых процессов принятия решений –
методу динамического программирования. Большой вклад в развитие
методов оптимизации подобных задач внесла группа советских
математиков во главе с Л. С. Понтрягиным.
В те же годы начинается интенсивное развитие другого крупного
раздела исследования операций – теории игр, история которой связана с
именем Джона фон-Неймана, сформулировавшего в 1927 г. основную
теорему этой теории.
6
Создание электронных вычислительных машин оказалось немало-
важным стимулом развития численных методов оптимального плани-
рования и управления, ставших обычным инструментом исследования в
различных областях человеческой деятельности. Резко увеличив
вычислительные возможности человека, ЭВМ стимулировали появление
методов стохастического моделирования (методов Монте-Карло),
совершенно нереальных при ручных вычислениях и «подающих надежду
на спасение» при решении задач большой размерности. Позднее принципы
и методы исследования операций стали применяться в сфере
промышленно финансового управления. С увеличением масштабов
производства расширялись масштабы операционных исследований, круг
решаемых задач, совершенствовались методы новой науки. Потребности в
практике вызвали необходимость разработки специальных научных
методов, называемых «Исследование операций».
Значительный вклад в теорию и методы линейного программи-
рования внесли С. Гасс, А. Таккер, Р. Гомори, Г. Кун, Т. Саати, Г. Вагнер,
Д. Б. Юдин, Е. Г. Гольштейн, В. А. Булавский, Г. Ш. Рубинштейн,
С. И. Черников, С. И. Зуховицкий и другие. В эти же годы в работах
Л. Форда и Д. Фалкерсона развиты методы решения частного случая
линейных программ – задач транспортного типа (классическая
транспортная задача была сформулирована Ф. Хичкоком в 1941 г.).
1.2. Основные понятия
Исследование операций (ИО) – это комплекс математических
методов, применяемых для нахождения оптимального (правильного)
решения в любой области деятельности человека, в том числе
экономической. Операция – это любое целенаправленное действие.
Основной акцент в исследовании операций делается на такие
разделы математики, как теорию массового обслуживания, математическое
7
программирование (линейное, нелинейное, динамическое), сетевое
планирование, теорию игр и др. Использование математических методов в
исследовании операций данную теорию формирует как науку [2].
Исследование операций иногда называют «количественным
выражением здравого смысла». По мнению английского ученого Т. Саати:
«исследование операций представляет собой искусство давать плохие
ответы на те практические вопросы, на которые даются еще худшие
ответы другими способами» [3]. Более доступно комментирует российский
специалист профессор Е. С. Вентцель: «исследование операций способно
дать плохой ответ на вопрос, на который нельзя ответить по-другому» [4].
Иными словами, эта наука в большинстве случаев остается единственным
средством для принятия обоснованных решений в сложных ситуациях.
Набор управляющих параметров (переменных) при проведении
операции называется решением. Решение называется допустимым, если
оно удовлетворяет набору определенных условий. Решение называется
оптимальным, если оно допустимо и, по определенным признакам,
предпочтительнее других, или, по крайней мере, не хуже.
Признак предпочтения называется критерием оптимальности.
Критерий оптимальности включает в себя целевую функцию,
направление оптимизации или набор целевых функций и соответствующих
направлений оптимизации.
Целевая функция – это количественный показатель предпочти-
тельности или эффективности решений.
Направление оптимизации – это максимум (минимум), если
наиболее предпочтительным является наибольшее (наименьшее) значение
целевой функции. Например, критерием может быть максимизация
прибыли либо минимизация затрат.
8
Математическая модель задачи ИО включает в себя:
1) описание переменных, которые необходимо найти;
2) описание критериев оптимальности;
3) описание допустимых решений (ограничений, накладываемых на
переменные).
Цель ИО – количественно и качественно обосновать принимаемое
решение. Окончательное решение принимает ответственное лицо либо
группа лиц, называемое ЛПР – лицо, принимающее решение.
1.3. Классификация задач исследования операций
1.3.1. Классификация по зависимости параметров задачи от времени
1. Статическая задача. Принятие решения происходит при условии,
что все параметры задачи заранее известны и не изменяются во времени
[6]. Процедура принятия решения осуществляется один раз.
2. Динамическая задача. В процессе принятия решения параметры
задачи изменяются по времени. Процедура принятия решения
осуществляется поэтапно и может быть представлена и виде процесса,
зависящего от времени, в том числе непрерывно.
1.3.2. Классификация в зависимости от достоверности информации о задаче
1. Детерминированная задача. Все параметры задачи заранее
известны.
Для решения детерминированных задач в основном применяются
методы математического программирования.
2. Недетерминированная задача. Не все параметры задачи заранее
известны.
Например, необходимо принять решение об управлении
устройством, некоторые узлы которого могут непредсказуемо выходить из
строя. Оптимальное решение недетерминированной задачи ИО отыскать
9
практически невозможно. Однако некоторое «разумное» решение отыскать
можно.
2, а). Стохастическая задача. Не все параметры задачи заранее
известны, но имеются статистические данные о неизвестных параметрах
(вероятности, функции распределения, математические ожидания и т. д.).
Для отыскания оптимального решения стохастической задачи
применяется один и из следующих приемов:
- искусственное сведение к детерминированной задаче (неизвестные
параметры заменяются их средними значениями).
- «оптимизация в среднем» (вводится и оптимизируется некоторый
статистический критерий).
2, б). Задача в условиях (полной) неопределенности. Статистические
данные о неизвестных параметрах отсутствуют. Задачи ИО в условиях
неопределенности в основном изучаются в рамках теории игр.
1.3.3. Классификация по виду критерия оптимальности
Критерий оптимальности может иметь любой вид, в том числе
неформализуемый. Наиболее распространенные формализуемые критерии
оптимальности заключаются в оптимизации (минимизации либо
максимизации) одной или нескольких скалярных целевых функций [5].
Функция называется скалярной, если ее значением является
некоторое число. Задача оптимизации скалярной функции на заданном
множестве допустимых числовых решений называется задачей
математического программирования. Наиболее изученными представи-
телями однокритериальных задач математического программирования,
т. е. задач с одной целевой функцией, являются следующие задачи.
Задачи линейного программирования. Целевая функция линейная,
множество допустимых решений – выпуклый многогранник.
10
Задачи квадратичного программирования. Целевая – функция
квадратичная, а множество допустимых решений – выпуклый
многогранник.
Задачи стохастического программирования. Это задачи линейного
программирования с неизвестными числовыми параметрами, о которых
имеются статистические данные.
Задачи дискретного программирования. Множество допустимых
решений – дискретное множество.
Задачи целочисленного программирования. Множество допустимых
решений – точки целочисленной решетки.
Задачи булева программирования. Множество допустимых
решений – 0-1 матрицы.
1.3.4. Многокритериальные задачи
В задачах ИО, как правило, присутствует не один, а несколько
признаков предпочтения (критериев). Такие задачи называются
многокритериальными.
Критерии могут оказаться противоречивыми, т. e. решение, лучшее
по определенному признаку, может оказаться худшим по другому
признаку. Например, минимизация стоимости и максимизации качества
товара почти всегда противоречивы. В этом случае задача отыскания
решения, предпочтительного по всем признакам, будет некорректной, т. e.
не будет иметь ни одного решения.
В случае противоречивых критериев ИО предлагает следующие
подходы к отысканию подходящего решения.
1) Замена некоторых критериев ограничениями вида ≤ или ≥.
Например, минимизация стоимости f (x) → min может быть заменена
ограничением вида f (x) ≤ A, где А – некоторая верхняя оценка стоимости,
т. е. максимально допустимая стоимость.
11
2) Свертка критериев. Создается один глобальный скалярный
критерий, целевая функция которого является некоторой функцией от
исходных целевых функций. Наиболее употребимыми являются линейные
свертки вида α f (x) + β g(x) (в случае двух критериев). Нетривиальной
является задача отыскания адекватных значений коэффициентов α и β,
отражающих относительную важность целевых функций f (x) и g(x).
3) Ранжирование критериев. Критерии ранжируются по степени
важности.
4) Отыскание решений, лучших хотя бы по одному критерию.
Подходы 1) и 2) приводят к однокритериальной задаче. Подход 3)
приводит к задаче с упорядоченными критериями. Подход 4) приводит к
задаче с независимыми критериями. В задаче с упорядоченными
критериями критерии упорядочиваются по важности и требуется найти
оптимальное решение для наименее важного критерия на множестве
решений, оптимальных для более важного критерия (рис. 1).
Рис. 1. Упорядочение критериев
12
Самое большое – множество всех допустимых решений, в него
вложено множество решений, оптимальных по самому важному критерию,
далее вложено множество оптимальных решений по второму по важности
критерию, и т. д.
В задаче с независимыми критериями требуется найти множество
недоминируемых (эффективных) решений. Недоминируемое решение
лучше любого другого допустимого решения хотя бы по одному критерию
либо не хуже по всем критериям. Множество недоминируемых решений
также называется множеством Парето.
13
2. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
2.1. Постановка задачи линейного программирования (ЗЛП)
Общая задача линейного программирования состоит в нахождении
экстремума (максимума или минимума) линейной целевой функции [7]:
nnn xcxcxcxxf +++= ...),...,( 22111 (1)
при ограничениях
(2)
где aij, bi, cj ( mi ,1= , nj ,1= ) – заданные постоянные величины. Среди
ограничений могут одновременно встречаться знаки ≤, =, ≥.
Вектор ),...,,( 21 nxxxx = , удовлетворяющий системе ограничений (2),
называется допустимым решением, или планом ЗЛП. Множество всех
планов называется допустимой областью, или областью допустимых
решений. План, который доставляет максимум (минимум), целевой
функции (1), называется оптимальным планом, или оптимальным
решением ЗЛП. Таким образом, решить ЗЛП – значит найти ее
оптимальный план.
Общая ЗЛП может быть приведена к единому стандартному виду, в
котором целевая функция должна быть максимизирована, а все
ограничения должны быть записаны в виде равенств с неотрицательными
переменными:
∑=
→=n
jjjn xcxxf
11 max),...,( (3)
при ограничениях
=≥
≥=≤+++
≥=≤+++≥=≤+++
),,1(0
,),(...............................................................
,),(...,),(...
2211
22222121
11212111
njx
bxaxaxa
bxaxaxabxaxaxa
j
mnmnmm
nn
nn
14
∑=
=n
jijij bxa
1, mi ,1= , (4)
0≥jx , nj ,1= ,
где 0≥ib , mi ,1= .
Эта стандартная форма называется основной задачей линейного
программирования (ОЗЛП).
Для приведения общей ЗЛП к основной используют следующие
правила.
1. Минимизация целевой функции f равносильна максимизации
функции g = – f.
2. Ограничение в виде неравенства inini bxaxa ≤++ ...11 равносильно
уравнению innini bxxaxa =+++ +111 ... при условии, что дополнительная
переменная 01 ≥+nx .
Аналогично, inini bxaxa ≥++ ...11
≥=−++
⇔+
+
.0,...
1
111
n
innini
xbxxaxa
3. Если на некоторую переменную xj не накладывается условие
неотрицательности, то делают замену переменной jjj xxx ′′−′= , 0≥′jx ,
0≥′′jx .
2.2. Графический метод решения
Графический метод может быть применен, если модель содержит
только две переменные. В случае трех переменных этот метод становится
менее наглядным, а при большем числе переменных – невозможным.
Пусть ЗЛП задана в двумерном пространстве, то есть ограничения
содержат две переменные.
Найти минимальное значение функции двух переменных
Z(x) = c1 x1 + c2 x2 (5)
15
при ограничениях вида (2).
Пусть система неравенств совместна. Каждое из неравенств системы
определяет полуплоскость с граничными прямыми [6].
Линейная функция(5) при фиксированных значениях является
уравнением прямой линии: c1 x1 + c2 x2 = const (рис. 2).
Рис. 2. Пример графического решения задачи линейного программирования с шестью условиями
Построим многоугольник ABCDEF решений системы ограничений и
график линейной функции f (x). Тогда поставленной задаче линейного
программирования можно дать следующую интерпретацию:
Найти точку многоугольника решений, в которой прямая
c1 x1 + c2 x2 = const опорная, и функция при этом достигает минимума.
Значения уменьшаются в направлении вектора нормали N = (–c1,–c2),
поэтому прямую f = 0 передвигаем параллельно самой себе в направлении
вектора N.
Если многоугольник решений ограничен (см. рисунок 2), то прямая
дважды становится опорной по отношению к многоугольнику решений
(в точках B и E, причём минимальное значение принимает в точке E.
16
Координаты точки E (x1, x2) находим, решая систему уравнений прямых
DE и EF.
Если же многоугольник решений представляет собой
неограниченную многоугольную область, то возможны два случая.
Случай 1. Прямая c1 x1 + c2 x2 = const, передвигаясь в направлении
вектора нормали N или противоположно ему, постоянно пересекает
многоугольник решений и ни в какой точке не является опорной к нему. В
этом случае линейная функция не ограничена на многоугольнике решений
как сверху, так и снизу.
Случай 2. Прямая, передвигаясь, все же становится опорной
относительно многоугольника решений. Тогда в зависимости от вида
области линейная функция может быть ограниченной сверху и
неограниченной снизу, ограниченной снизу и неограниченной сверху,
либо ограниченной как снизу, так и сверху.
2.3. Симплекс-метод
Наиболее популярным универсальным алгебраическим методом
решения ЗЛП является симплекс-метод, разработанный американским
ученым Дж. Данцигом в 1949 г.
Система линейных уравнений называется системой с базисом, если
в каждом уравнении содержится неизвестное с коэффициентом, равным 1,
отсутствующее в остальных уравнениях системы. Эти неизвестные
называются базисными, остальные – свободными. Система с базисом
имеет вид
=++++
=++++
=++++
+
+
+
,,
,
,
2211
222222121
111212111
mmppmpmm
ppp
ppp
bxxaxaxa
bxxaxaxa
bxxaxaxa
(6)
17
где р + m = n, т. е. p = n – m.
Система (6) всегда имеет базисное решение (0, 0, ..,0, b1, b2, .., bm).
Система линейных уравнений называется канонической, если она
является системой с базисом и все bi ≥ 0. Базисное решение в этом случае
оказывается планом, т. к. его компоненты неотрицательны.
ОЗЛП будет является канонической (КЗЛП), если система линейных
уравнений этой задачи – каноническая, а целевая функция выражена
только через свободные неизвестные.
Число перебираемых допустимых базисных решений можно
сократить, если производить перебор не беспорядочно, а с учетом
изменений линейной функции, т. е. добиваясь того, чтобы каждое
следующее решение было лучше (или по крайне мере не хуже), чем
предыдущее, по значениям линейной функции F (увеличение при
отыскании максимума и уменьшение при отыскании минимума). Такой
перебор позволяет сократить число шагов при отыскании оптимума [7].
Универсальным методом последовательного улучшения решения
при решении ЗЛП является симплекс-метод.
Решение КЗЛП симплекс-методом удобно записывать в виде
симплекс-таблиц. По сути, симплекс-таблица представляет собой матрицу
коэффициентов канонической системы уравнений и коэффициентов при
неизвестных в целевой функции, а также указание базисных неизвестных.
Рассмотрим КЗЛП, состоящую в максимизации целевой функции
f(x1, ,xn) = c0 – c1x1 – − cpxp (7)
на множестве планов канонической линейной системы (6).
Этой задаче соответствует следующая симплекс-таблица (табл. 1).
18
Таблица 1
Симплекс-таблица
Базис х1 х2∙ ∙ ∙ хp хp+1 хp+2∙ ∙ ∙ хn Значение
хр+1
хр+2
хn
а11 а12∙ ∙ ∙ а1p1 0∙ ∙ ∙ 0
а21 а22∙ ∙ ∙ а2p 0 1 ∙ ∙ ∙ 0
аm1 а12∙ ∙ ∙аmp 0 0∙ ∙ ∙ 1
b1
b2
bn
f -c1 -c2∙∙ ∙-cp0 0 ∙ ∙ ∙ 0 c0
Последняя строка этой таблицы называется индексной. Она соответ-
ствует уравнению с1x1 + c2x2 + + cpxp = с0 (это уравнение гиперплос-
кости, являющейся поверхностью уровня целевой функции). Именно по
этой причине коэффициенты при неизвестных в целевой функции (5)
удобно обозначать –c1, –c2, , –cр.
Для определенности будем рассматривать задачу максимизации.
Теорема 1. Если в симплекс-таблице среди коэффициентов при
каком-либо свободном неизвестном имеется хотя бы один положительный
элемент, то возможен переход к новой канонической задаче, равносильной
исходной, в которой указанное свободное неизвестное оказывается
базисным (при этом одно из базисных неизвестных переходит в число
свободных).
Теорема 2. (об улучшении базисного плана). Если в индексной
строке симплекс-таблицы задачи максимизации содержится отрица-
тельный элемент сj, а в столбце хj имеется хотя бы один положительный
элемент, причем ключевое отношение 0≥θ , то возможен переход к
равносильной канонической задаче с базисным планом не хуже, чем
предыдущий (а при θ > 0 – лучшим).
19
Теорема 3. (достаточное условие оптимальности). Если все
элементы индексной строки симплекс-таблицы задачи максимизации
неотрицательны, то базисный план этой задачи является оптимальным, а с0
есть максимум целевой функции на множестве планов задачи.
Теорема 4. (случай неограниченности целевой функции). Если в
индексной строке симплекс-таблицы задачи максимизации содержится
отрицательный элемент сj, а в столбце неизвестного хj все элементы
неположительны, то на множестве планов задачи целевая функция не
ограничена сверху.
Теоремы 1–4 позволяют сформулировать алгоритм симплекс-метода
для задачи максимизации КЗЛП.
Для определенности считаем, что решается задача отыскания
максимума целевой функции. Рассмотрим алгоритм решения ЗЛП
симплекс-методом.
Этап 1. После введения добавочных переменных, систему уравнений
и линейную функцию записываем в виде, который называется
расширенной системой:
.переменныедобавочные,...,0...
,......
,...,...
1
2211
2211
222222121
111212111
−
=−−−−=++++
=++++=++++
++
+
+
+
mnn
nn
mmnnmnmm
nnn
nnn
xxxcxcxcF
bxxaxaxa
bxxaxaxabxxaxaxa
(8)
Предположим, что все добавочные переменные имеют один и тот же
знак, что и свободные члены bi; иначе используют другой метод.
Этап 2. Расширенную матрицу заносим в первую симплекс-таблицу.
В последней строке таблицы указываются коэффициенты функции
цели с противоположным знаком: – сi .
20
В левом столбце таблицы записываем основные переменные (базис),
в первой строке – все переменные, отмечая при этом основные; во втором
столбце – свободные члены расширенной системы b1,…,bm . Последний
столбец предназначен для оценочных отношений, необходимых при
расчете наибольшего возможного значения переменной.
В рабочую часть таблицы (начиная с третьего столбца и второй
строки) занесены коэффициенты aij при переменных из расширенной
матрицы.
Замечание. Все коэффициенты у свободных переменных должны
быть положительными. Если это условие нее выполняется, умножаем обе
части уравнения на (–1).
Этап 3. Проверяем выполнение критерия оптимальности при
решении задачи на максимум – наличие в последней строке отрицательных
коэффициентов –сi . Если таких нет, то решение оптимально, достигнут
максимум целевой функции F = c0 (в левом нижнем углу таблицы);
основные переменные принимают значения ai 0 (второй столбец), основные
переменные равны нулю, т. е. получаем оптимальный план (теорема 3).
Этап 4. Если в индексной строке содержится отрицательный
элемент, над которым в таблице нет ни одного положительного, то целевая
функция не ограничена сверху на множестве планов и задача не имеет
решений (теорема 4).
Этап 5. Если над каждым отрицательным элементом индексной
строки имеется в таблице хотя бы один положительный, то следует
перейти к новой симплекс-таблице, для которой базисный план не хуже
предыдущего (теорема 2).
Если критерий оптимальности не выполнен, то наибольший по
модулю отрицательный коэффициент |–сi | в последней строке определяет
разрешающий столбец s.
21
Составляем оценочные отношения каждой строки по следующим
правилам:
а) равно бесконечности ( = ∞), если bi и ai s имеют разные знаки;
б) = ∞, если bi = 0 и ai s<0;
в) = ∞, если ai s = 0;
г) = 0, если bi = 0 и ai s> 0;
д) is
i
ab
, если bi и ai s имеют одинаковые знаки.
Определяем
is
ii a
bmin . Если конечного минимума нет, то задача
не имеет конечного оптимума, Fmax = ∞. Если минимум конечен, то
выбираем соответствующую строку q, на которой он достигается (любую,
если таких несколько), и называем ее разрешающей строкой.
На пересечении разрешающей строки и столбца находится
разрешающий элемент aqs. Запоминаем его.
Этап 6. Составляем новую симплекс-таблицу; для этого делим
ключевую строку (строку, в которой находится ключевой элемент) на
ключевой элемент, а затем из всех остальных строк (включая индексную)
вычитаем полученную строку, умноженную на соответствующий элемент
ключевого столбца (чтобы все элементы этого столбца, кроме ключевого,
стали равны 0).
Переход к следующей симплекс-таблице осуществляем по правилам:
а) в столбцах, соответствующих основным переменным, проставляем
нули и единицы:
1 – напротив «своей» основной переменной,
0 – напротив «чужой» основной переменной,
0 – в последней строке для всех основных переменных,
22
б) в левом столбце записываем новый базис: вместо основной
переменной xq заносим переменную xs;
в) новую строку с номером q получаем из старой делением на
разрешающий элемент aqs;
г) все остальные элементы a’ij вычисляем по правилу
прямоугольника:
.qs
qisii
qs
qjisijij
aba
bb
aaa
aa
⋅−=′
⋅−=′
Переходим к п. (3) алгоритма.
Этап 7. При рассмотрении полученной симплекс-таблицы
непременно представится один из трех случаев, описанных в пп. 2, 3, 4.
Если при этом возникнут ситуации пп. 2 или 3, то процесс решения задачи
завершается, если же возникнет ситуация п. 4, то процесс продолжается.
Если учесть, что число различных базисных планов конечно, то
возможны два случая:
а) через конечное число шагов задача будет решена;
б) начиная с некоторого шага возникает зацикливание (периоди-
ческое повторение симплексных таблиц и базисных планов).
Выбор ключевого столбца, вообще говоря, произволен. Однако на
практике удобно руководствоваться определенным правилам. Одним из
таких эвристических правил является следующее: в качестве ключевого
столбца выбирается тот, который отвечает наибольшему по модулю
отрицательному элементу индексной строки.
23
2.4. Теория двойственности
Понятие двойственности рассмотрим на примере задачи
оптимального использования сырья.
Задача 1. Пусть имеется m видов сырья, запасы которых равны
b1, b2, … , bm. Из этого сырья производят n видов продукции. Расходы
сырья i-го вида на производство единицы продукции j-го вида равны aij.
Прибыль от продажи единицы продукции j-го вида равна cj. Найти такой
план выпуска продукции, чтобы суммарная прибыль была максимальной.
Обозначим x1, x2, … , xn – количество единиц продукции соответствующего
вида.
Задача 2. Поставим целью назначить «справедливые» продажные
цены на все имеющиеся виды сырья. Пусть yi – цена единицы сырья i-го
вида. Потребуем, чтобы продажная цена сырья, необходимого для
производства продукции определенного вида, была не меньше выручки,
которую можно получить при реализации этой продукции, и рассмотрим
задачу минимизации стоимости всего сырья.
Предположим, некоторая фирма решила закупить сырье нашей
организации. Необходимо установить оптимальные цены на эти ресурсы
y1, y2, …, ym. Покупающая организация заинтересована, чтобы затраты на
все ресурсы (функция Z) в количестве b1, b2, …, bm по ценам y1, y2, … , ym
были минимальными, т. е. .min...2211 →⋅++⋅+⋅= mm ybybybZ
С другой стороны, предприятие, продающее ресурсы, заинтере-
совано в том, чтобы полученная выручка была не менее той суммы,
которую предприятие может получить при переработке ресурсов в
готовую продукцию.
На изготовление единицы продукции П1 расходуется а11 единиц
ресурса S1, а21 единиц ресурса S2, .., аm1 единиц ресурса Sm по цене
соответственно
24
y1, y2, … , ym. Поэтому для удовлетворения требований продавца затраты на
ресурсы, потребляемые при изготовлении единицы продукции П1, должны
быть не менее ее цены с1: 11221111 ... cyayaya mm ≥⋅++⋅+⋅ .
Аналогично составляются ограничения в виде неравенств по
каждому виду продукции П1,…, Пn.
Соответствующие математические модели задачи 1 и задачи 2
запишем в виде:
Задача 1 Задача 2
∑=
→=n
iii xcxf
1max)(
при ограничениях
≥
≥≥
≤+++
≤+++≤+++
.0.........,
,0,0
,.........,........................................
,...,...
2
1
2211
22222121
11212111
n
mnmnmm
nn
nn
x
xx
bxaxaxa
bxaxaxabxaxaxa
∑=
→=m
iii ybyg
1min)(
при ограничениях
≥+++
≥+++≥+++
≥
≥≥
,............,........................................
,...,...
,0.........,
,0,0
2211
22222112
11221111
2
1
nmmnnn
mm
mm
m
cyayaya
cyayayacyayaya
y
yy
Эти задачи называются симметричными двойственными задачами.
Отметим следующие особенности, связывающие эти задачи [7]:
1. Одна из задач является задачей максимизации, а другая –
минимизации.
2. В задаче максимизации все неравенства – ≤, а в задаче
минимизации – ≥.
3. Число неизвестных одной задачи равно числу неравенств другой.
25
4. Матрицы коэффициентов при неизвестных в неравенствах обеих
задач являются взаимно транспонированными.
5. Свободные члены неравенств одной из задач равны
коэффициентам при соответствующих неизвестных в выражении целевой
функции другой задачи.
Рассмотрим алгоритм построения двойственной задачи.
1. Привести все неравенства системы ограничений исходной задачи к
одном смыслу – к каноническому виду.
2. Составить расширенную матрицу системы А, в которую включить
столбец bi и коэффициенты целевой функции F.
3. Найти транспонированную матрицу АТ.
4. Записать двойственную задачу.
Теорема. Значение функции, соответствующее любому допустимому
решению прямой задачи, не меньше значения функции, соответствующего
допустимому решению двойственной задачи.
Теорема (основная теорема двойственности). Если ЗЛП имеет
конечный оптимум, то двойственная к ней также имеет конечный
оптимум, и оптимальные значения целевых функций совпадают. Если
целевая функция одной из двойственных задач не ограничена, то условия
другой задачи противоречивы.
Теорема. Компоненты оптимального решения двойственной ЗЛП
равны соответствующим элементам индексной строки оптимальной
симплекс-таблицы прямой задачи, отвечающим дополнительным
переменным.
Таким образом, решая симплекс-методом прямую ЗЛП, получаем и
решение двойственной задачи.
26
2.5. Транспортная задача
2.5.1. Математическая модель транспортной задачи
Транспортная модель используется для составления наиболее
экономичного плана перевозок одного вида продукции (однородного
груза) из нескольких пунктов поставки (например, баз или заводов) в
пункты потребления (например, заводы или склады).
Транспортная задача (ТЗ) представляет собой задачу линейного
программирования, которую можно решать симплекс-методом. Но, в силу
особой своей структуры, она допускает решение более простым методом,
который по своей сути вытекает из теории двойственности.
В простейшей формулировке ТЗ выглядит следующим образом.
Пусть m поставщиков располагают a1, a2,..., am единицами
некоторого однородного груза и этот груз должен быть доставлен n
потребителям в количествах b1,b2,..., bn единиц соответственно.
Предполагается, что ai > 0, bj > 0. Известны стоимости cij ( 0≥ijc )
перевозки единицы груза от i-го поставщика j-му потребителю. Следует
определить план перевозок, т. е. указать количество груза, которое каждый
поставщик должен доставить каждому потребителю, так, чтобы
суммарные транспортные затраты были минимальными, мощности всех
поставщиков были реализованы, спросы всех потребителей были
удовлетворены.
Пусть xij – количество груза, перевозимого от i-го поставщика j-му
потребителю, тогда план перевозок транспортной задачи можно
представить в виде матрицы X = (xij) размера m×n, и математическая
модель задачи линейного программирования транспортного типа имеет
вид [7]:
27
минимизировать целевую функцию
ij
m
i
n
jij xcXf ∑∑
= ==
1 1)( (9)
при ограничениях
i
n
jij ax =∑
=1, ;,1 mi = (10)
j
m
iij bx =∑
=1, ;,1 nj = (11)
0≥ijx . (12)
Первая группа ограничений указывает, что суммарный объем
перевозок груза от некоторого поставщика должен быть равен
имеющемуся у него количеству этого груза. Вторая группа ограничений
требует, чтобы суммарные перевозки груза некоторому потребителю
удовлетворяли в точности спрос на этот груз.
Заметим, что система уравнений (10)–(11) совместна тогда и только
тогда, когда выполняется равенство между суммарными ресурсами и
суммарными потребностями:
∑ ∑= =
=m
i
n
jji ba
1 1. (13)
При выполнении условия (13) транспортная модель называется
закрытой.
В противном случае модель называется открытой. Открытая
транспортная задача может быть сведена к эквивалентной ей закрытой
задаче.
Открытую транспортную модель можно свести к закрытой путем
добавления фиктивного поставщика или потребителя.
28
Если 1 1
,m n
i ji j
a b= =
>∑ ∑ т. е. имеется избыток продукции по отношению к
действительно требуемому ее количеству, то введем в рассмотрение
формально еще одного потребителя (фиктивного) с объемом потребностей,
равным избытку продукции∑ ∑= =
−m
i
n
jji ba
1 1. Тогда формально имеем закрытую
транспортную задачу. Все стоимости перевозок ci,n+1 ( mi ,1= ) от каждого
поставщика фиктивному потребителю примем равными нулю.
Совершенно аналогично можно поступить в случае, когда количество
продукции недостаточно для удовлетворения потребностей, т. е.
∑∑==
<n
jj
m
ii ba
11. В этом случае вводится фиктивный поставщик с объемом
возможных поставок, равным недостатку продукции∑ ∑= =
−n
j
m
iij ab
1 1.
Стоимости перевозок cm+1,j ( nj ,1= ) от фиктивного поставщика ко всем
потребителям принимаем также равными нулю. В первом случае значения
фиктивных перевозок xi,n+1 в оптимальном плане будут равны объемам
продукции, остающимся у соответствующих поставщиков, во втором
случае значения xm+1,j в оптимальном плане будут означать количество
продукции, недополученной соответствующим потребителем.
В обоих случаях полученная закрытая транспортная задача будет
эквивалентна исходной, т. к. потребности всех реальных потребителей или
возможности всех реальных поставщиков останутся прежними, а минимум
целевой функции будет достигаться за счет подходящего выбора реальных
перевозок, поскольку фиктивные перевозки в целевой функции
фактически не фигурируют.
Рассмотрим закрытую модель ТЗ. Решение транспортной задачи,
как и всякой ЗЛП, начинается с нахождения опорного плана.
29
Для транспортной задачи общее число уравнений равно m + n, а число
линейно независимых уравнений равно m + n – 1 (сумма первых m
уравнений совпадает с суммой последних n). Общее число переменных xij
равно mn, число базисных переменных равно m + n – 1, т. е. числу линейно
независимых уравнений. Остальные mn – (m + n – 1) = (m – 1)(n – 1)
переменных равны нулю и называются свободными переменными. Таким
образом, допустимый план будем называть опорным, если в нем отличны
от нуля не более m + n – 1 базисных переменных, а остальные переменные
равны нулю.
Решение ТЗ удобно записывать в виде таблицы, имеющей вид
матрицы, в которой строки соответствуют пунктам отправления,
а столбцы – пунктам потребления. Клеткой (i,j) мы будем называть клетку,
стоящую в i-й строке и j-м столбце таблицы. Коэффициенты стоимости cij
расположены в правом верхнем углу каждой клетки (i,j). Каждая клетка
соответствует паре поставщик-потребитель.
Для нахождения исходного опорного решения могут быть
использованы различные методы. Рассмотрим некоторые из них.
2.5.2. Метод северо-западного угла Будем строить допустимое решение задачи, начиная с заполнения
левой верхней клетки («северо-западный угол») исходной таблицы.
Примем соответствующий объем перевозок x11 = min (a1,b1), т. е.
максимальному значению, допускаемому ограничениями на спрос и объем
предложений. Если a1>b1, то потребности первого потребителя полностью
удовлетворены, и он может быть исключен из дальнейшего рассмотрения,
а ресурсы первого поставщика равны a1 – b1. Если a1<b1, то первый
поставщик полностью использовал свои ресурсы? и в дальнейшем его
можно не учитывать, а потребности первого потребителя считать равными
b1 – a1. Если a1 = b1, то можно исключить и потребителя, и поставщика.
30
После установления объема перевозок по маршруту (1,1), получаем
задачу, в которой суммарное число поставщиков и потребителей на
единицу меньше, чем в исходной задаче. Соответствующая таблица для
нее получается вычеркиванием первого столбца или первой строки,
фиксируя этим, что остальные переменные вычеркнутого столбца (строки)
полагаются равными нулю. Продолжая этот процесс, мы придем к
допустимому решению, т. к. ∑ ∑= =
=m
i
n
jji ba
1 1.
2.5.3. Метод минимального элемента На каждом шаге заполняется клетка с наименьшей величиной cij.
Заполнение таблицы начинается с клетки, которой соответствует
наименьший элемент cij из всей таблицы. Затем остаток по столбцу или
строке помещается в клетку того же столбца или строки, которому
соответствует следующее по величине значение cij, а помещаемые
в этих клетках величины xij определяются так же, как и в методе
северо-западного угла.
2.5.4. Метод потенциалов Для анализа полученных планов и их последующего улучшения
удобно ввести дополнительные характеристики пунктов отправления и
назначения, называемые потенциалами [9].
Сопоставим каждому поставщику Ai и каждому потребителю Вj
величины ui и vj соответственно так, чтобы для всех базисных клеток плана
были выполнены соотношения
ui+ vj = cij , i = 1,2,..,m, j = 1,2,..,n. (14)
Поскольку число базисных клеток в плане равно m + n – 1
(вырожденные планы должны быть предварительно пополнены), то для
определения потенциалов получается система из m + n – 1 уравнений с m +
n неизвестными. Такая система имеет бесконечное множество решений.
31
Нам требуется любое ее решение. Обычно для простоты полагают один из
потенциалов равным нулю и затем вычисляют остальные. В транспортной
таблице для потенциалов {vj } заводится дополнительные строка, а для
потенциалов {ui} – дополнительный столбец, куда проставляются
найденные значения.
Для каждой свободной клетки плана вычислим разности
∆cij = cij – (ui+ vj) и запишем полученные значения в левых нижних углах
соответствующих клеток. Заметим, что для базисных клеток выполнено
соотношение ∆cij = 0, и этим фактом можно пользоваться для контроля
правильности нахождения потенциалов.
План является оптимальным, если все разности ∆cij > 0. В противном
случае план можно улучшить следующим способом.
Найдем клетку с наибольшей по абсолютной величине отрица-
тельной разностью ∆cij и построим цикл, в котором кроме этой клетки все
остальные являются базисными. Такой цикл всегда существует и
единственен.
Заметим, что в новом плане суммы элементов по строкам и столбцам
должны остаться прежними, поэтому изменение значения в одной клетке
цикла повлечет за собой соответствующие изменения значений во всех
остальных клетках этого цикла. Груз будет перераспределен по клеткам
цикла на величину ∆х = min xij следующим образом. В клетках со знаком
«плюс» значение перевозки нужно увеличить на величину ∆х, а в клетках
со знаком «минус» – уменьшить на величину ∆х. Так как после пересчета у
нас добавилась лишняя базисная клетка, то их количество необходимо
сократить, убрав нуль в одной из клеток цикла. Если таких клеток
получилось несколько, то свободной делаем ту из них, в которой тариф
перевозок максимален.
После этого полученный план проверяется на оптимальность
описанным выше способом. Перераспределение груза производится до тех
32
пор, пока очередной план не станет оптимальным. На этом действие
алгоритма завершается.
2.6. Общая распределительная задача
2.6.1. Исходные параметры модели Общая распределительная ЗЛП – этораспределительная задача (РЗ),
в которой работы и ресурсы (исполнители) выражаются в различных
единицах измерения [10]. Например, организация выпуска разнородной
продукции на оборудовании различных типов; организация выполнения
набора заданий работниками различной квалификации; организация
перевозки нескольких видов товаров на транспорте различных видов и т. д.
Введем следующие обозначения.
1. n – количество исполнителей (станков, работников, транспортных
средств и т. д.), m – количество видов работ (выпускаемой продукции,
выполняемых заданий, перевозимых товаров и т. д.).
2. ia – запас рабочего ресурса исполнителя iA ( ni ,1= ) (фонд
времени работы оборудования или работника; количество транспортных
средств и т.д.), пример единиц измерения [ед. t].
3. jb – план по выполнению работы jB ( mj ,1= ) (объем выпуска
продукции; объем выполнения заданий; потребность в перевозимом товаре
и т. д.), пример единиц измерения [ед. тов].
4. ijc – тариф (стоимость) выполнения работы jB исполнителем iA
(себестоимость единицы выпуска продукции; затраты на выполнение
одного задания; тарифы перевозки единицы товара), пример единиц
измерения [руб./ед. тов.].
5. ijλ – интенсивность выполнения работы jB исполнителем iA
(производительность выпуска продукции, выполнения заданий;
33
вместимость транспортного средства и т. д.), пример единиц
измерения [ед. тов./ед. t].
2.6.2. Искомые параметры модели РЗ
1. ijx – загруженность исполнителя iA при выполнении работы jB
(время, затрачиваемое на выпуск продукции или на выполнение заданий;
количество транспортных средств определенного вида, задействованных в
перевозке), пример единиц измерения [ед. t].
2. кijx – количество работ jB , которые должен будет произвести
исполнитель iA (объем выпущенной продукции, выполненных заданий,
перевезенных товаров и т. д.), пример единиц измерения [ед. тов.].
3. ( )XL – общие расходы на выполнение всего запланированного
объема работ, пример единиц измерения [руб.].
2.6.3. Этапы построения модели I. Определение переменных.
II. Построение распределительной матрицы (таблица 2).
III. Задание ЦФ.
IV. Задание ограничений. Таблица 2
Общий вид распределительной матрицы
Исполнители, iA
Работы, jB Запас ресурса
[ед. ресурса] 1В 2В … mB
1А 11λ
11c 12λ
12c … m1λ
mc1 1a
2А 21λ
21c 22λ
22c … m2λ
mc2 2a
… … … … … …
nA 1nλ
1nc 2nλ
2nc … nmλ
nmc na
План [ед. работы] 1b 2b … mb
34
Модель общей распределительной задачи имеет вид:
( ) ∑=
∑=
→
=
n
i
m
jijxijijсXL
1 1minλ ;
( )
==≥∀
==
==
∑
∑
=
=
. m1,j ;n1,i 0
,m1,j ,
,n1,i ,
1
1
ij
n
ijijij
n
jiij
x
bx
ax
λ
(15)
Таким образом, формально модель общей РЗ отличается от модели
транспортной задачи использованием параметра интенсивности
выполняемых работ ijλ в ЦФ и для задания ограничений по выполняемым
работам (столбцам).
2.6.4. Этапы решения РЗ
I. Преобразование РЗ в ТЗ:
1) выбор базового ресурса и расчет нормированных
производительностей ресурсов jбаз
iji
λλ
α = ;
2) пересчет запаса рабочего ресурса исполнителей iii aa α=′ ;
3) пересчет планового заданияjбаз
jj
bb
λ=′ ;
4) пересчет себестоимостей работ jбазijij cc λ=′ .
II. Проверка баланса пересчитанных параметров ∑∑==
′=′m
jj
n
ii ba
11 и
построение транспортной матрицы.
35
III. Поиск оптимального решения ТЗ ( )*'* 'ijxX = .
IV. Преобразование оптимального решения ТЗ '*X в оптимальное
решение РЗ *X , причем переход *'* XX → выполняется по формуле
i
ijij
xx
α
'
= , где 'ijx и ijx – соответственно элементы решения РЗ и ТЗ.
V. Определение количества работ ( )** кij
к xX = , соответствующее
оптимальному решению РЗ *X ijijкij xx λ= .
VI. Определение ЦФ распределительной задачи )( *XL .
36
3. СЕТЕВОЕ ПЛАНИРОВАНИЕ
3.1. Основные понятия и определения
Основными понятиями сетевых моделей являются понятия события
и работы [7]. Работа – это некоторый процесс, приводящий к
достижению определенного результата, требующий затрат каких-либо
ресурсов и имеющий протяженность во времени. По своей физической
природе работы можно рассматривать как:
• действие: разработка чертежа, изготовление детали, заливка
фундамента бетоном, изучение конъюнктуры рынка;
• процесс: старение отливок, выдерживание вина, травление плат;
• ожидание: ожидание поставки комплектующих, ожидание
окончания выполнения параллельных этапов работ.
По количеству затрачиваемого времени работа может быть:
действительной, т. е. требующей затрат времени; фиктивной, т. е.
формально не требующей затрат времени и представляющей связь между
какими-либо работами.
Событие – это момент времени, когда завершаются одни работы и
начинаются другие. Событие представляет собой результат проведенных
работ и, в отличие от работ, не имеет протяженности во времени.
На этапе структурного планирования взаимосвязь работ и событий,
необходимых для достижения конечной цели проекта, изображается с
помощью сетевого графика (сетевой модели). На сетевом графике работы
изображаются стрелками, которые соединяют вершины, изображающие
события. Начало и окончание любой работы описываются парой событий,
которые называются начальным и конечным событиями. Поэтому для
идентификации конкретной работы используют код работы ( )ji, ,
37
состоящий из номеров начального (i-го) и конечного (j-го) событий
(см. рис. 3).
i jработа (i,j)
начальное конечноесобытие событие
Рис. 3. Кодирование работы
Любое событие может считаться наступившим только тогда, когда
закончатся все входящие в него работы. Поэтому работы, выходящие из
некоторого события, не могут начаться, пока не будут завершены все
работы, входящие в это событие.
Событие, не имеющее предшествующих ему событий, т. е. с кото-
рого начинается проект, называют исходным. Событие, которое не имеет
последующих событий и отражает конечную цель проекта, называется
завершающим.
Важное значение для анализа сетевых моделей имеет понятие пути.
Путь – это любая последовательность работ в сетевом графике (в частном
случае это одна работа), в которой конечное событие одной работы
совпадает с начальным событием следующей за ней работы. Различают
следующие виды путей.
Полный путь – это путь от исходного до завершающего события.
Критический путь – максимальный по продолжительности полный путь.
Работы, лежащие на критическом пути, называют критическими.
Подкритический путь – полный путь, ближайший по длительности к
критическому пути.
Построение сети является лишь первым шагом на пути к построению
календарного плана. Вторым шагом является расчет сетевой модели,
который выполняют прямо на сетевом графике, пользуясь простыми
правилами.
38
Сетевые графики составляются на начальном этапе планирования
проекта. Вначале проект разбивается на отдельные работы, составляется
перечень работ и событий, устанавливаются логические связи и
последовательность выполнения работ, оценивается продолжительность
выполнения работ. Затем составляется сетевой график.
3.2. Правила составления сетевых графиков
• В сетевом графике не должно быть тупиковых событий (кроме
завершающего), т. е. таких, за которыми не следует ни одной работы.
• Не должно быть событий (кроме исходного), которым не
предшествует хотя бы одна работа.
• В сетевом графике не должно быть циклов.
• Любые два события связаны не более чем одной работой.
• Сетевой график должен быть упорядочен.
Упорядочение сетевого графика заключается в таком расположении
событий и работ, при котором для любой работы предшествующее ей
событие расположено левее и имеет меньший номер по сравнению с
завершающим эту работу событием.
На рис. 4 представлены примеры построения начала сетевого
графика: рис. 4 (А) – для варианта с одной исходной работой (работа а),
рис. 4 (Б) – для варианта с тремя исходными работами (а, б, в).
Рис. 4. Пример построения начала сетевого графика
39
В процессе дальнейшего построения сетевого графика необходимо
придерживаться следующих правил.
• Если работа «г» должна выполняться только после выполнения
работы «а», то на графике это изображается в виде последовательной
цепочки работ и событий (рис. 5).
Рис. 5. Изображение последовательно выполняемых работ
• Если для выполнения работ «г» и «е» необходим результат одной
и той же работы, например «в», то график должен иметь следующий вид
(рис. 6):
Рис. 6. Изображение работ, выполняемых после одной и той же работы
• Если для выполнения одной или нескольких работ (например –
«е») необходим результат двух или нескольких работ (например «в» и «г»),
то график будет иметь следующий вид (рис.7):
Рис. 7. Изображение работы, выполняемой после нескольких работ
• Если для выполнения одной или нескольких работ (например «г» и
«е») необходим результат лишь некоторой части другой работы (например
«а»), то эта работа разбивается на части таким образом, чтобы первая ее
40
часть (например, «a1») выполнялась до получения результата,
необходимого для начала первой работы («г»), а вторая и последующие
части («a2», «a3» и т. д. – оставшаяся часть работы «a»), выполнялись
параллельно со второй работой («е») и последующими (рис. 8).
Рис. 8. Изображение работ, выполняемых после частичного выполнения работы
• Два соседних события могут объединяться лишь одной работой.
Для изображения параллельных работ вводятся промежуточное событие и
фиктивная работа (рис. 9)
•
Рис. 9. Изображение работ, имеющих одно начальное и конечное событие
• Если выполнение какой-либо работы (например, «е») возможно
только после получения совокупного результата двух или более
параллельно выполняемых работ (например, «в» и «г»), а выполнение
другой работы (например, «д») – после получения результата только одной
из них (например, «в»), то в сетевом графике необходимо ввести
дополнительное событие и фиктивную работу (рис. 10).
41
Рис. 10. Использование фиктивной работы
• В сети не должно быть «тупиков», т. е. промежуточных событий,
из которых не выходит ни одна работа (например, событие № 7 на рис. 11).
Также не должно быть «хвостов», т.е. промежуточных событий, которым
не предшествует хотя бы одна работа (например, событие № 2 рис. 11).
Рис. 11. «Хвосты» и «тупики» на сетевом графике
• В сети не должно быть замкнутых контуров, состоящих из
взаимосвязанных работ, создающих замкнутую цепь (например, цепочка
работ «д», «г» на рис. 12 (А)). Данная ситуация скорее всего
свидетельствует об ошибке при составлении перечня работ и определении
их взаимосвязей. В таком случае необходимо проанализировать исходные
данные и в зависимости от сделанных по итогам анализа выводов либо
перенаправить работу, создающую цикл, в другое событие (если работам,
начинающимся в этом событии требуется ее результат, или если она
является частью общего результата), либо совсем исключить ее из
42
комплекса (если выявлено, что ее результат не требуется). На рис. 12 (Б)
представлена ситуация когда работа «г» является частью общего
результата.
Рис. 12. Пример цикла на сетевом графике (А) и устранение цикла (Б)
• Каждая работа в сетевом графике должна определяться
однозначно, только ей присущей парой событий – не должно быть
событий с одинаковыми номерами. Для правильной нумерации событий
поступают следующим образом: нумерация событий начинается с
исходного события, которому дается номер 0. Из исходного события (0)
вычеркивают все исходящие из него работы, на оставшейся сети вновь
находят событие, в которое не входит ни одна работа. Этому событию
дается номер 1. Затем вычеркивают работы, выходящие из события 1, и
43
вновь находят на оставшейся части сети событие, в которое не входит ни
одна работа, ему присваивается номер 2, и так продолжается до
завершающего события. Пример нумерации сетевого графика показан
на рис. 13.
Рис. 13. Порядок нумерации сетевого графика
• На графике не должно быть фиктивных работ, которые дублируют
информацию других работ. Например, работа, соединяющая события № 5
и 6 на рис. 14 (А), дублирует работу «ж», работа, соединяющая события
№ 2 и 4, дублирует работу, соединяющую события № 2 и 3.
Рис. 14. Неправильное использование фиктивных работ
• Форма графика должна быть простой, без лишних пересечений.
Большинство работ следует изображать горизонтальными линиями.
Чаще всего графики строят от исходного события к завершающему.
44
Сначала сетевой график строят в черновом варианте, при этом
главное – не внешний вид сети, а логическая последовательность
выполнения работ. Затем проводится графическое упорядочение сети для
уменьшения числа взаимно пересекающихся работ.
Описанная методика построения сетевых графиков обладает рядом
недостатков:
• До построения графика достаточно сложно выявить ошибки в
исходных данных.
• Отсутствуют четкие критерии формулировки событий, и не
всегда явной является необходимость введения фиктивных работ.
• До построения сетевого графика невозможно определить,
сколько в нем будет событий и фиктивных работ. Это делает невозможным
на начальных этапах определить размеры графика.
• При первоначальной прорисовке стрелок сложно определить,
куда их лучше направить и какую длину они должны иметь.
• Процессы формулировки и нумерации событий в значительной
степени носят субъективный характер.
• Формализация описанных выше процедур представляет
определенные трудности, что значительно усложняет разработку
адекватных алгоритмов построения графиков с помощью ЭВМ.
• При планировании комплексов с большим количеством работ
строительство сетевых графиков в ручном режиме практически
невозможно.
Системный подход к построению сетевых графиков, в значительной
степени устраняющий указанные недостатки, включает 4 этапа.
45
3.3. Этапы построения сетевого графика
3.3.1. Проверка исходных данных
Исходные данные необходимо проверить на наличие замкнутых
циклов и дублирующих фиктивных работ (см. правила п. 3.2).
Для осуществления такой проверки по каждой работе комплекса
необходимо составить перечень всех предшествующих работ от исходных
до непосредственно предшествующих. Данный перечень необходимо
проверить на соблюдение следующих условий.
В нем не должно быть самой проверяемой работы. Несоблюдение
этого условия свидетельствует о наличии в исходных данных замкнутого
цикла.
Таблица 3
Проверка данных
Обозначе-ние работ
Непосредственно предшествующие
работы
Все работы, предшествующие
работам из столбца № 2
Все работы, предшествующие
работам из столбца № 1
а – – а б – – б в а а а, в г а а а, г
д б б а, б, г, д г а, г
Работы, которые непосредственно предшествуют проверяемой
работе, не должны встречаться в списке предшествующих работ у других
непосредственно предшествующих этой работе работ. Несоблюдение
данного условия свидетельствует о дублировании зависимостей. Проверку
исходных данных удобнее всего осуществлять путем последовательного
заполнения специальной таблицы (табл. 3).
46
3.3.2. Выявление необходимости введения фиктивных работ
Фиктивные работы вводятся в том случае, когда невозможно
правильно отобразить взаимосвязи между действительными работами с
использованием только сплошных стрелок [12].
При выполнении этого этапа, прежде всего, составляется матрица
взаимосвязей между работами. В этой матрице на пересечении строки,
соответствующей определенной работе комплекса и столбцов,
соответствующих работам, предшествующим этой работе, проставляется
единица или «+», или любой другой знак.
Далее составленную матрицу необходимо упорядочить таким
образом, чтобы все единицы были максимально сконцентрированы возле
центральной диагональной линии.
3.3.3. Формулировка событий сетевого графика
Формулировка событий заключается в том, что для каждого события
определяются все входящие в него работы и все исходящие. Кроме того,
каждому событию должен быть присвоен определенный порядковый
номер.
Формулировку событий можно осуществить на основе упорядо-
ченной матрицы взаимосвязей.
3.3.4. Построение сетевого графика
Для того чтобы еще до построения графика знать, на каком примерно
расстоянии от начального события должно располагаться каждое событие
комплекса, необходимо распределить все события по уровням отдаления
от начала графика. Такое распределение осуществляется в последнем
столбце таблицы: в ячейке 4-го столбца (табл. 4), соответствующей
событию № 0, проставляется цифра 1 (1-й уровень); в ячейке, соответству-
ющей событию № 1, проставляется цифра 2 (2-й уровень).
47
Таблица 4 Шаблон заполнения уровней событий
Номера событий Номера входящих в событие работ
Номера исходящих из события работ
Номер уровня
Далее возможны два варианта:
1) Если среди входящих работ рассматриваемого события
присутствуют исходящие работы какого-либо события, относящегося к
уровню, к которому относится предыдущее событие, то рассматриваемое
событие необходимо отнести к следующему уровню.
2) Если среди входящих работ рассматриваемого события нет таких,
которые являются исходящими для событий предыдущего уровня, то
рассматриваемое событие необходимо отнести к этому же уровню.
3.4. Временные параметры событий
К временным параметрам событий относятся [11]:
• ( )iTр – ранний срок наступления события i. Это время, которое
необходимо для выполнения всех работ, предшествующих данному
событию i. Оно равно наибольшей из продолжительности путей,
предшествующих данному событию.
• ( )iTп – поздний срок наступления события i. Это такое время
наступления события i, превышение которого вызовет аналогичную
задержку наступления завершающего события сети. Поздний срок
наступления любого события i равен разности между продолжительностью
критического пути и наибольшей из продолжительностей путей,
следующих за событием i.
• ( )iR – резерв времени наступления события i. Это такой
промежуток времени, на который может быть отсрочено наступление
48
события i без нарушения сроков завершения проекта в целом. Начальные и
конечные события критических работ имеют нулевые резервы событий.
Рассчитанные численные значения временных параметров
записываются в вершины сетевого графика (рис. 15).
i Tр(i)
Tп(i)R(i)
Рис. 15. Отображение временных параметров событий в вершинах сетевого графика
Расчет ранних сроков свершения событий ( )iTр ведется от исходного
(И) к завершающему (З) событию.
Примечание. Поскольку длительность работы может быть как
нормальной нT , так и ускоренной уT (см. п. 3), то для общности изложения
будем в дальнейшем обозначать текущую длительность работы буквой t с
соответствующим кодом работы, например, ( )jit , , ( )jkt , и т. д.
1. Для исходного события И ( ) 0р =ИT .
2. Для всех остальных событий i: ( ) ( ) ( )[ ]iktkTiT ,max рр += , где
максимум берется по всем работам ( )ik, , входящим в событие i.
Поздние сроки свершения событий ( )iTп рассчитываются от
завершающего к исходному событию.
3. Для завершающего события З ( ) ( )‚T‚Tп р= .
4. Для всех остальных событий ( ) ( ) ( )[ ]jitjTiT пп ,min −= , где
минимум берется по всем работам ( )ji, , выходящим из события i.
5. ( ) ( ) ( )iTiTiR п р−= .
49
3.5. Временные параметры работ и путей
К наиболее важным временным параметрам работ относятся:
• ( )jiTрн , – ранний срок начала работы;
• ( )jiTпн , – поздний срок начала работы;
• ( )jiTро , – ранний срок окончания работы;
• ( )jiTпо , – поздний срок окончания работы;
Для критических работ ( ) ( )jiTjiT пнрн ,, = и ( ) ( )jiTjiT поро ,, = .
• ( )jiRп , – полный резерв работы показывает максимальное время,
на которое может быть увеличена продолжительность работы ( )ji, или
отсрочено ее начало, чтобы продолжительность проходящего через нее
максимального пути не превысила продолжительности критического пути.
Важнейшее свойство полного резерва работы ( )ji, заключается в том, что
его частичное или полное использование уменьшает полный резерв у
работ, лежащих с работой ( )ji, на одном пути. Таким образом, полный
резерв принадлежит не одной данной работе ( )ji, , а всем работам,
лежащим на путях, проходящим через эту работу.
• ( )jiRс , – свободный резерв работы показывает максимальное
время, на которое можно увеличить продолжительность работы ( )ji, или
отсрочить ее начало, не меняя ранних сроков начала последующих работ.
Использование свободного резерва одной из работ не меняет величины
свободных резервов остальных работ сети.
Временные параметры работ сети определяются на основе ранних и
поздних сроков событий.
1) ( ) ( )iTjiT ррн =, ;
2) ( ) ( ) ( )jitiTjiT рро ,, += или ( ) ( ) ( )jitjiTjiT рнро ,,, += ;
50
3) ( ) ( )jTjiT ппо =, ;
4) ( ) ( ) ( )jitjTjiT ппн ,, −= или ( ) ( ) ( )jitjiTjiT попн ,,, −= ;
5) ( ) ( ) ( ) ( )jitiTjTjiR рпп ,, −−= ;
6) ( ) ( ) ( ) ( )jitiTjTjiR ррс ,, −−= .
Временные параметры работ вносятся в таблицу. При этом коды
работ записывают в определенном порядке: сначала записываются все
работы, выходящие из исходного, т. е. первого, события, затем –
выходящие из второго события, потом – из третьего и т. д.
Резервами времени, кроме работ и событий, обладают полные пути
сетевой модели. Разность между продолжительность. критического пути
T(Lкр) и продолжительностью любого другого полного пути T(Lп)
называется полным резервом времени пути Lп, т. е. R(Lп) = T(Lкр) – T(Lп).
Этот резерв показывает, на сколько в сумме может быть увеличена
продолжительность всех работ данного пути L, чтобы при этом не
изменился общий срок окончания всех работ.
51
4. ПРАКТИКУМ
4.1. Решение ЗЛП графическим методом
Постановка задачи. Компания разрабатывает два веб-проекта П1 и
П2. Для их запуска необходимы специалисты веб-дизайнер (А)
и веб-программист (В). Кроме того, рабочее время каждого специалиста в
один день, отведенное на подготовку проекта, ограничено. Затраты
времени в один день на каждый проект указаны в таблице 5.
Таблица 5
Исходные данные
Специалист Затраты времени на задачи, ч Затраты в сутки, ч
П1 П2
А
В
1
2
2
1
6
8
По мнению разработчиков проекта, число задач, решенных в
рабочий день по второму проекту, не должно быть больше, чем на 2, числа
задач по первому проекту. Кроме того, установлено, что по второму
проекту специалисты могут решать не более двух задач в один рабочий
день. Доход компании от решения одной задачи составляет 3 у. е. для
первого проекта и 2 у. е. для второго проекта. Определите оптимальное
число задач, которое необходимо решать в один рабочий день, что доход
компании по этим проектам был максимальным?
Решение. Пусть x1, x2 – число задач, решаемых по 1-му
и 2-му проектам соответственно. Тогда доход компании составит
f(x1, x2) = 3x1 + 2x2.
Согласно условиям задачи, должны выполняться следующие
ограничения:
52
≥≥≤
≤−≤+≤+
.0,0,2
,1,82,62
21
2
12
21
21
xxx
xxxxxx
)6,5()4()3()2()1(
Изобразим на координатной плоскости область допустимых решений
(рис. 16). Множество решений каждого из неравенств есть полуплоскость,
на которую указывает стрелка (рис. 16). Граница полуплоскости (прямая)
задается соответствующим уравнением (когда знак неравенства заменяется
знаком равенства). Полученная таким образом допустимая область –
многоугольник OABCDE. Необходимо среди точек этого многоугольника
найти точку, в которой целевая функция f принимает максимальное
значение.
Рис. 16. Построение области допустимых решений
Рассмотрим линию уровня функции f, т. е. линию, вдоль которой эта
функция принимает одно и то же фиксированное значение с, т. е.
f(x1,x2) = c (рис. 17).
53
Рис. 17. Линия уровня целевой функции
В данном случае линия уровня cxx =+ 21 23 есть прямая.
При различных уровнях с линии уровня параллельны. На рис. 17
изображены три линии уровня. Одна из них проходит через начало
координат и соответствует значению с = 0. Как известно из аналитической
геометрии, вектор нормали )2;3(n показывает направление возрастания
уровня. Следовательно, оптимальное решение достигается в точке B (это
точка допустимой области, соответствующая максимальному значению с).
Точка В есть точка пересечения прямых (1) и (2) и поэтому ее координаты
определяются из решения системы уравнений
=+=+
.82,62
21
21
xxxx
Решая систему, находим 3131 =x ,
3112 =x . Оптимальный доход
компании от реализации проектов при этом составит
3212
3112
3133)
311,
313( =⋅+⋅=f (у. е.).
Как видим, число решаемых задач получилось дробным. В таких
случаях целесообразно применять методы целочисленного
программирования.
54
4.2. Решение ЗЛП симплекс-методом
Задача 1.
Постановка задачи. Максимизировать целевую функцию:
F = 2 x1 + 4 x2→mах
при ограничениях
≥≥≤+≤+
.0,02709312032
21
21
21
xxxxxx
Решение. Запишем эту задачу ЛП в канонической форме, введя две
дополнительные переменные х3 и х4:
=++=++
2709312032
421
321
xxxxxx
Линейную функцию перепишем в виде: F – 2 x1 – 4 x2 = 0.
Заполняем первую симплекс-таблицу (табл. 6), в которой
переменные
х3 и х4 – основные.
Таблица 6
Первая симплекс-таблица
Х1 Х2 Х3 Х4 bi Оценочные
отношения
Х3 2 3 1 0 120 120/3=40
Х4 3 9 0 1 270 270/9=30
F –2 –4 0 0 0
Минимальный элемент в последней строке равен –4. Значит, столбец
второй xs является ключевым или ведущим, s = 2. Переменную x2
перенесем в базисную вместо переменной, находящейся в строке q.
Определим ее.
55
Находим оценочные отношения по правилам (см. алгоритм в п. 1.4).
Минимальным является значение 30, следовательно, вторая строка
является ключевой, х4 убираем из базисной, вместо нее запишем х2.
Составляем новую симплекс-таблицу (табл. 7).
Таблица 7
Вторая итерация
Х1 Х2 Х3 Х4 bi Оценочные
отношения
Х3 = 2 – 3*3/9=1 0 1 = 0–(3*1)/9 =
= –1/3 30
93270120
=
=⋅
− 30
Х2 1/3 1 0 1/9 30 90
F –2 + 3*4/9 =
= –2/3 0 0 0+4/9 = 0 + 4*270/9 = 120
Выполняя следующие шаги алгоритма, получаем окончательное
решение ЗЛП (табл. 8).
Таблица 8
Итоговая симплекс-таблица
Х1 Х2 Х3 Х4 bi
Х1 1 0 1 –1/3 30
Х2 0 = 1–(0*1/3)/1 0–1/3 1/9+1/9 = 2/9 201
)3/1(3030 =⋅
−
F 0 0 2/3 4/9–2/9 = 2/9 1401
)3/2(30120 =⋅
+
В последнем столбце таблицы 8 записано решение ЗЛП х1 = 30,
х2 = 20, f(x)= 140. Проверим .140204302)20,30( =⋅+⋅=f
56
Задача 2.
Постановка задачи. Максимизировать целевую функцию:
F = 2 x1 + 3 x2→mах
при ограничениях
≥≥≥≥≤⋅+−≤+
.0,0102010250
21
2
1
21
21
xxx
xxx
xx
Геометрическое построение показывает, что допустимая область есть
четырехугольник на плоскости с вершинами в точках (20,10); (20,15);
(30,20); (40,10). Перемещая линию уровня в направлении максимизации
функции (градиент), определяем, что решение достигается в вершине
(30,20) со значением Fmax = 120. Имея этот результат для проверки,
выполним алгоритм симплекс-метода формально.
Запишем эту задачу ЛП в канонической форме, введем 4
дополнительные переменные х3, х4, х5, х6:
=−=−
=++−=++
1020
1050
62
51
421
321
xxxx
xxxxxx
Линейная функция F – 2 x1 – 3 x2 = 0.
Заполняем первую симплекс-таблицу (табл. 9), в которой перемен-
ные х3, х4, х5, х6 – основные. Основные переменные должны быть
в таблице со знаком «+». Поэтому уравнения номер 3,4 нужно умножить
на (–1).
57
Таблица 9
Первая симплекс-таблица задачи
Х1 Х2 Х3 Х4 Х5 Х6 bi Оцен. отнош.
Х3 1 1 1 0 0 0 50 50/1 = 50
Х4 –1 2 0 1 0 0 10 10/2 = 5
Х5 1 0 0 0 –1 0 20 ∞
Х6 0 1 0 0 0 –1 10 10
F –2 –3 0 0 0 0 0
В таблице 9 выбираем ключевой элемент а22 = 2.
Таблица 10
Вторая симплекс-таблица задачи
Х1 Х2 Х3 Х4 Х5 Х6 bi Оцен.
отнош.
Х3 3/2 0 1 –1/2 0 0 45 30
Х2 –1/2 1 0 1/2 0 0 10/2=5 ∞
Х5 1 0 0 0 –1 0 –20 ∞
Х6 0+1/2 0 0 –1/2 0 –1 –10 ∞
F –2–3/2 =
= –7/2
0 0 3/2 0 0 15
Во второй симплекс-таблице (табл. 10) получаем промежуточный
результат.
Искомое решение ищем в последнем столбце (табл. 11). Таким
образом, решение ЗЛП Fmax(30, 20) = 120.
58
Таблица 11
Вторая симплекс-таблица задачи
Х1 Х2 Х3 Х4 Х5 Х6 bi
Х1 1 0 2/3 –1/3 0 0 30
Х2 0 1 -1/3 1/3 0 0 20
Х5 0 0 -2/3 1/3 –1 0 –50
Х6 0 0 1/3 –1/3 0 0 –25
F 0 0 7/3 1/3 0 0 120
4.3. Получение оптимального решения транспортной задачи
Постановка задачи. Рассмотрим закрытую транспортную задачу с
тремя поставщиками и четырьмя потребителями. Количество груза (шт.),
имеющееся у каждого поставщика и требующееся каждому потребителю,
соответствующие стоимости перевозки единицы груза (у. е.) приведены в
таблице 12.
Таблица 12
Исходные данные ТЗ
Потребители 1-й 2-й 3-й 4-й
Поставщики 200 300 350 200
1-й 250 2 4 5 3
2-й 350 4 3 6 7
3-й 450 6 5 4 5
Метод северо-западного угла. По плану X0 спрос первого
потребителя полностью удовлетворен за счет первого поставщика, т. е.
x11 = 200, и, следовательно, x21 = 0, x31 = 0 (табл. 13). Оставшиеся у первого
поставщика 50 ед. груза направляются второму потребителю, т. е. x12 = 50,
и у этого поставщика оказывается вывезенным весь груз, следовательно,
59
x13 = 0, x14 = 0. Недостающие второму потребителю 250 ед. груза вывозятся
от второго поставщика, т. е. x22 = 250, и, следовательно, x32 = 0.
Оставшиеся у второго поставщика 100 ед. направляются третьему
потребителю, т. е. x23 = 100, и, следовательно, x24 = 0. Недостающие 250 ед.
третий потребитель получает от третьего поставщика, т. е. x33 = 250.
И, наконец, остаток в 200 ед. третий поставщик направляет четвертому
потребителю, т. е. x34 = 200. Таким образом, весь груз оказался
вывезенным у поставщиков и доставлен в нужных количествах
потребителям (табл. 13).
Таблица 13
План X0
2 4 5 3 200 50 u1 4 3 6 7 250 100 u2 6 5 4 5 250 200 u3 v1 v2 v3 V4
Стоимость перевозок по плану X0 составляет
f(X0) = 2 ⋅ 200 + 4 ⋅ 50 + 3 ⋅ 250 + 6 ⋅ 100 + 4 ⋅ 250 + 5 ⋅ 200 = 3950.
Метод минимального элемента. Построим опорный план X1з адачи
методом минимального элемента (табл. 14).
На каждом шаге выбираем клетку с минимальной стоимостью
поставки. На первом шаге это клетка (2, 2) со стоимостью 3 у.е.
Отправляем поставку величиной 300 ед. груза. На втором шаге выбираем
клетку (1, 4). Заполняем матрицу перевозок до тех пора, пока не будут
закрыты все клетки.
60
Стоимость перевозок по плану X1 составляет
f(X1) = 2 ⋅ 200 + 3 ⋅ 50 + 3 ⋅ 300 + 7 ⋅ 50 + 4 ⋅ 350 + 5 ⋅ 100 = 3800.
Таблица 14
План X1
2 4 5 3 200 50 u1 4 3 6 7 300 50 u2 6 5 4 5 350 100 u3 v1 v2 v3 v4
Сравнивая значения целевой функции на планах X0 (см. табл. 13) и X1
(см. табл. 14), убеждаемся, что опорное решение X1, найденное по методу
минимального элемента, ближе к оптимальному, чем решение X0,
полученное по методу северо-западного угла.
Метод потенциалов. Проверим исходное опорное решение Х1,
полученное ранее, на оптимальность. С этой целью составим систему
уравнений, соответствующих положительным перевозкам (занятым
клеткам) плана Х1, т. е.
v1 – u1 = 2, v2 – u2 = 3, v3 – u3 = 4,
v2 – u1 = 4, v3 – u2 = 6, v4 – u3 =5,
где u1, u2, u3 – потенциалы поставщиков, а v1, v2, v3, v4 – потенциалы
потребителей (для удобства эти потенциалы записаны справа и снизу от
плана Х0). Решим данную систему, положив, например, u1 = 0. Получим
следующие значения:
v1 = 2, v2 = 4, u2 = 1, v3 = 7, u3 = 3, v4 = 8.
61
Для свободных клеток плана Х0 составим систему неравенств:
3,5
14
13
≤−≤−
uvuv
,7,4
24
21
≤−≤−
uvuv
.5,6
32
31
≤−≤−
uvuv
Подставляя полученные значения потенциалов в данную систему
неравенств, имеем:
,38,57
14
13
>=−>=−
uvuv
,77
,41
24
21
==−<=−
uvuv
.51
,61
32
31
<=−<−=−
uvuv
Неравенства ijij cuv ≤− не выполняются для двух перевозок x13 = 0 и
x14 = 0 плана Х1 (для двух свободных клеток). Значит план Х0 не оптимален
и требуется построить новый (улучшенный) план перевозок для которого
транспортные затраты меньше или, по крайней мере, равны затратам для
предыдущего плана.
Обозначим разность (vj – ui) – cij= ij∆ . Эта величина называется
оценкой свободной клетки. Для двух клеток (1,3) и (1,4) эти оценки
положительны. Выбираем максимальную из них 514 =∆ .
Таблица 15
Новый план перевозок
2 4 5 3 200 50-ε ε u1 4 3 6 7 250+ε 100-ε u2 6 5 4 5 250+ε 200-ε u3 v1 v2 v3 v4
В новом, улучшенном, плане клетка (1,4) (соответствующая
максимуму ij∆ ) должна быть занятой. Введем в план перевозку x14 = ε
62
(значение ε будет определено ниже). Для того чтобы новый план
удовлетворял условиям оптимальности (10)–(13) (см. п. 1.6.1), внесем в
план Х1 следующие поправки. Перевозку х12 = 50, стоящую в той же строке
матрицы Х0, что и х14 = ε, уменьшим на ε ; перевозку х22 = 250, стоящую в
том же столбце, что и х12, увеличим на ε ; аналогично х23 = 100 уменьшим
на ε, х33 = 250 увеличим на ε и, наконец, х34 = 200 уменьшим на ε
(табл. 15).
Здесь ε должно удовлетворять неравенствам { },200,100,50min0 ≤≤ ε
т. е. 500 ≤≤ ε (чтобы все значения 50 – ε, 100 – ε, 200 – ε были
неотрицательными). Для плана Х1ε стоимость перевозок составит
( )[ ( )( ) ( ) ( ) ( )[ ] ).)()(
)()()((5)(546343)()(
14014140343323
22121403433232212140
001
εεεε
εεεεεεεε
⋅∆−=−−+=−−−+−−−−+−−+=−+−+−+=
−=−+−+−+=
XfuvcXuvuvuvuvuvcXfccccccXf
XfXfXf
Выбрав наибольшее возможное значение ε = 50, получим
новый план Х2.
Перераспределение перевозок при переходе от плана Х0 к плану Х1
было произведено по замкнутой ломаной линии, называемой обычно
циклом (этот цикл отмечен пунктиром в плане Х1). Вычислим
транспортные затраты плана Х2
37005053950)()( 1412 =⋅−=⋅∆−= εXfXf .
Они оказались меньше транспортных затрат для плана Х1.
Следовательно, план Х2 лучше плана Х1 (табл. 16). Таким образом,
включение в план Х2 перевозки x14 = 50, оказалось оправданным, и
транспортные затраты уменьшились на величину 25014 =⋅∆ ε .
63
Таблица 16
План X2
2 4 5 3 200 50 u1 4 3 6 7 300 50 u2 6 5 4 5 300 150 u3 v1 v2 v3 v4
Далее найдем новые значения потенциалов поставщиков и
потребителей из уравнений
v1 – u1 = 2, v2 – u2 = 3 v3 – u3 = 4,
v4 – u1 = 3, v3 – u2 = 6, v4 – u3 = 5,
соответствующих занятым клеткам плана Х2.
При u1 = 0 получим v1 = 2, v4 = 3, u3 = –2, v3 = 2,u2 = – 4, v2 = –1.
Подставив найденные значения потенциалов в неравенства
,5,4
13
12
≤−≤−
uvuv
,7,4
24
21
≤−≤−
uvuv
,5,6
32
31
≤−≤−
uvuv
соответствующие свободным клеткам плана Х2, получим
v2 –u1 = –1 < 4, v1 – u2 = 6 > 4, v1 –u3 = 4 < 6,
v3 –u1= 2 < 5, v4 –u2 = 7 = 7, v2 – u3 = 1 < 5.
Не выполняется только третье неравенство, соответствующее
перевозке х21 = 0. В плане Х2 только одна положительная оценка
221 =∆ . Включая в план Х2 перевозку 50)150,50,200(min21 ==x ,
и, перераспределяя другие перевозки по циклу
)1,2()3,2()3,3()4,3()4,1()1,1()1,2( →→→→→→ ,
получим новый план Х3 (табл. 17).
64
План Х3 лучше плана Х2, т. к. для него стоимость транспорт-
ных затрат 360010031005350430035041502)( 3 =⋅+⋅+⋅+⋅+⋅+⋅=Xf
оказалась меньше, чем для плана Х2.
Таблица 17
План Х3
2 4 5 3 150 100 u1 4 3 6 7 50 300 u2 6 5 4 5 350 100 u3 v1 v2 v3 v4
Применительно к плану Х3 вновь составим систему уравнений
v1 – u1 = 2, v1 – u2 = 4, v3 – u3 = 4,
v4 – u1 = 3, v2 – u2 = 3, v4 – u3 = 5
и неравенств
,5,4
13
12
≤−≤−
uvuv
,7,6
24
23
≤−≤−
uvuv
.5,6
32
31
≤−≤−
uvuv
Положив u1 = 0, из последней системы уравнений получим v1 = 2,
v4 = 3, u3 = –2, v3 = 2, u2 = –2, v2 = 1. Найденные значения потенциалов
удовлетворяют последней системе неравенств. Действительно,
,52,41
13
12
<=−<=−
uvuv
,75,64
24
23
<=−<=−
uvuv
.53,64
32
31
<=−<=−
uvuv
Так как потенциалы u1 = 0, v4 = 3, u3 = –2, v1 = 2, v3 = 2, u2 = –2, v2 = 1
удовлетворяют обоим условиям критерия оптимальности, то план Х3 будет
оптимальным, а стоимость перевозок f (Х3) = 3600 является минимальной.
Оптимальный план Х3 выпишем в виде матрицы
65
=
100350000030050
10000150
2X .
Оптимальное решение формулируется следующим образом. Первый
поставщик должен доставить 150 ед. груза первому потребителю и 100 ед.
четвертому, второй поставщик доставит 50 ед. груза первому потребителю
и 300 ед. второму и третий поставщик – 350 ед. третьему потребителю и
100 ед. – четвертому. Суммарные транспортные расходы составляют 3600
(денежных единиц).
4.4. Программное решение ЗЛП
4.4.1. Постановка задачи
Для решения ЗЛП решить задачу применим программное
обеспечение OpenOfficeCalc.
Рассмотрим задачу линейного программирования.
Максимизировать целевую функцию:
F = 2 x1 + 4 x2→mах
при ограничениях
≥≥≤+≤+
.0,02709312032
21
21
21
xxxxxx
4.4.2. Оформление экранной формы
Создадим экранную форму исходной задачи. Для этого в программе
OpenOfficeCalc каждой переменной Xj и каждому коэффициенту задачи
поставим в соответствие конкретные ячейки (рис. 18).
Введем математические функции модели задачи ЛП в экранную
форму.
66
В ячейку Е8, в которой будет выведено значение целевой функции,
введем соответствующую формулу:
=В4*В8 + С4*С8.
Рассмотрим другой вариант записи подобных формул. Используя
обозначения соответствующих ячеек в табличной форме (см. рис. 1),
формулу для расчета целевой функции (1) запишем как сумму
произведений каждой из ячеек, содержащих значения переменных задачи
ЛП, а именно: (B4, C4), на ячейки, соответствующие коэффициентам
целевой функции (B8, C8).
Рис. 18. Экранная форма задачи
Устанавливаем курсор в ячейке Е8 и нажимаем кнопку на панели
инструментов . Появится диалоговое окно (рис. 19).
67
Рис. 19. Выбор функции
В меню «Категория» выбираем вкладку «Математический».
В появившемся окне находим функцию SUMPRODUCT (Массив 1;
Массив 2; …) и нажимаем кнопку «Далее». Вводим массивы данных,
соответствующие переменным и коэффициентам целевой функции,
определенным выше, нажимаем «ОК». В результате в строке формул
должны получить запись (рис. 20).
Рис. 20. Ввод в строке формул
Символ $ перед номером строки 4 означает, что при копировании
этой формулы в другие ячейки экранной формы номера ячеек В4, С4 не
изменятся. Символ : означает, что в формуле будут использованы все
ячейки, расположенные между ячейками, указанными слева и справа от
двоеточия.
68
После введения формулы в ячейке Е8 появится значение 0 (нулевое
значение) (рис. 21).
Рис. 21. Заполнение экранной формы
Левые части ограничений задачи ЛП есть сумма произведений
каждой из ячеек, соответствующих значениям переменных задачи (B4, C4),
на соответствующие ячейки коэффициентов конкретного ограничения (для
первого ограничения А13, В13; для второго ограничения А14, В14).
Формулы, соответствующие левым частям ограничений, вводим в
экранную форму аналогично формуле целевой функции. На экране в полях
С13 и С14 появятся нулевые значения (см. рис. 21).
4.4.3. Ввод ограничений задачи
Для проверки правильности введенных формул поочередно
производите двойное нажатие левой клавиши мыши на ячейки с
формулами. На экране рамкой будут выделяться ячейки, используемые в
формуле (рис. 22).
69
Рис. 22. Проверка правильности введения формулы целевой функции
Устанавливаем курсор в ячейке целевой функции Е8 (рис. 23).
Для решения задачи линейного программирования необходимо в главном
меню выбрать вкладку «Сервис/Решатель».
Рис. 23. Выбор инструмента решения задачи ЛП
70
По умолчанию механизм решателя поддерживает только линейные
уравнения.
Рис. 24. Диалоговое окно «Решатель»
В результате выполнения команды появится окно (рис. 24), в
котором производим следующие действия:
1) устанавливаем целевую ячейку, щелкнув на ячейке экранной
формы Е8 (если еще не установлено);
2) определяем направление оптимизации (для нашего примера
выбираем максимум);
3) в поле «Изменяя ячейки» записываем адреса $B$4:$C$4 вручную
либо путем выделения мышью соответствующих ячеек переменных
непосредственно в экранной форме (рис. 25).
Для задания системы ограничений задачи ЛП для допустимых
значений переменных определяем граничные условия неотрицательности
переменных, то есть их нижняя граница равна нулю (см. рис. 25, первое
ограничительное условие). В поле «Ссылка на ячейку» вводим адреса
71
ячеек переменных $B$4:$С$4 одним из известных способов: вручную с
клавиатуры или автоматически путем выделения мышью всех ячеек
переменных непосредственно в экранной форме. В поле «Операция»
откройте список предлагаемых знаков и выбираем ≥.
Рис. 25. Заполненная форма «Решатель»
В поле «Значения» введите адреса ячеек нижней границы значений
переменных, то есть $B$5:$С$5. Их также можно ввести путем выделения
мышью непосредственно в экранной форме.
Аналогично задаем ограничения. В поле «Ссылка на ячейку» вводим
адрес ячейки, содержащей формулу вычисления значения левой части
конкретного ограничения, например $С$13.
Знак ограничения выбираем в соответствии с ограничением, в нашем
примере знак «≤».
В поле «Значение» вводим адрес ячейки правой части нужного
ограничения, например $Е$13.
72
Аналогично записываем второе ограничение системы нашей задачи
линейного программирования.
Нажимаем ОК для подтверждения ввода всех условий системы.
Для установления/изменения необходимых параметров решения
задач оптимизации определенного класса рассмотрим диалоговое окно,
которое вызывается путем нажатия кнопки «Параметры» формы
«Решатель» (см. рис. 25).
Рис. 26. Установка параметров поиска решения
Можно определить ряд условий, устанавливающих ограничения для
некоторых ячеек (рис. 26). Например, можно установить следующее
ограничение: одна из переменных или ячеек не должна быть больше
другой переменной или определенного значения. Также можно ввести
следующее ограничение: одна или более переменные должны быть
целыми числами (значения без знаков после запятой) или двоичными
числами (разрешены только значения 1 и 0).
73
Рис. 27. Полученное решение задачи ЛП (1)-(2)
Подтвердите установленные параметры нажатием кнопки «OK».
Запуск задачи на решение производится из окна «Решатель» путем
нажатия кнопки «Решить», появится окно «Результат». Возможно, при
решении получено сообщение «Решение не найдено», это может
свидетельствовать о несовместности условий системы ограничений либо о
допущенных при вводе в экранную форму/решатель значений. Следует
проверить правильность заполнения.
Для получения ответа (значений переменных, целевой функции и
левых частей ограничений) в окне «Результат» нажимаем кнопку
«Сохранить результат». После этого в экранной форме появляется
оптимальное решение задачи (рис. 27).
4.4.4. Целочисленное программирование
В случае требования целочисленности получаемого решения, т. е.
значений всех переменных, необходима установка особых условий в
диалоговом окне (меню Сервис/Решатель). В появившемся окне
«Ограничительные условия» вводим ограничения следующим образом: в
поле «Ссылка на ячейку» вводим ссылки на ячеек переменных, в поле
74
«Операция» выбираем «целое». После установки нового ограничения
нажимаем кнопку «Решить».
4.5. Построение и решение распределительной ЗЛП
4.5.1. Исходные данные
На АО «Семь ветров» подготовлены к серийному производству
5 новых изделий 1И , 2И , 3И , 4И , 5И , оптовые цены jЦ которых равны
соответственно (46, 27, 40, 35, 23) [руб./шт.]. Производство может быть
развернуто в четырех сборочных корпусах 1K , 2K , 3K , 4K . Затраты в
рублях на изготовление j-го изделия в i-м корпусе задаются матрицей
ijсС . Предлагается специализировать один (несколько) сборочный
корпус, для чего потребуется его дополнительное переоборудование.
Затраты на переоборудование в тыс. руб. задаются матрицей ijsS .
2113221621
202723189
1526401243
9217198
C (руб./шт.);
746552103122
42781518277
55641158062
1101621349072
S (тыс. руб.).
При выпуске изделий со специализацией затраты ijc упадут на
15–20% в каждом корпусе. Фонды времени iF работы корпусов в плановом
периоде равны соответственно 550, 870, 620, 790 часов, план выпуска
продукции jP в штуках составляет соответственно 6400, 8700, 16 400,
4800, 4600, а трудоемкость в минутах изготовления одной единицы
продукции в соответствующем корпусе задается матрицей ijtT .
4,146,98,42,12,7
120,80,40,10,6
2,78,44,26,06,3
0,60,40,25,00,3
T (мин/шт.).
75
Рассмотрите два варианта работы предприятия: без специализации и
со специализацией. Выберите наилучший вариант и обоснуйте свой выбор.
4.5.2. Построение распределительной модели без специализации
Пусть ijx – количество времени (ч), которое корпус iК будет
тратить на выпуск изделия jИ в течение планового периода.
Рассмотрим производство без специализации корпусов.
Распределительная матрица такой задачи приведена в таблице 18.
При ее построении необходимо учитывать, что параметр
интенсивности выполнения работ ijλ в данном случае – это
производительность корпуса iК по выпуску изделия jИ . Но в исходных
данных вместо ijλ дано количество минут, затрачиваемых в корпусе iК на
производство одного изделия jИ , то есть трудоемкость ( )ijtT = .
Таблица 18
Распределительная матрица задачи без специализации
Корпуса, iK
Изделия, jИ Фонд
времени [ч] 1И 2И 3И 4И 5И
1K 20 8
120 19
30 7
15 21
10 9 550
2K 16,66 43
100 12
25 40
12,50 26
8,33 15 870
3K 10 9
60 18
15 23
7,50 27
5 20 620
4K 8,33 21
50 16
12,50 22
6,25 13
4,17 21 790
План [шт.] 6400 8700 16 400 4800 4600
Производительность и трудоемкость по своему смыслу – обратные
величины, то естьij
ij t1
=λ , единицы измерения t.ед.шт
.штt.ед1
= .
76
Например, на производство изделия 2И в корпусе 1К требуется
0,5 минуты, поэтому в течение часа (60 мин) будет произведено
120 изделий:
12060
5,01
12 ==λ
с единицами измерения
ч.шт
минч
.штмин
1
чмин
.штмин
1=
⋅= .
На основании распределительной табл. 18 строим модель РЗ – ЦФ
(приведены округленные значения) и ограничения:
( )
; x 4,167 21 x 6,250 13 x 12,500 22 x 50 16 x 8,333 21x520
x7,50027x1523x 6018 x 109x333,815x12,50026x2540 x10012x16,66743
x109 x1521 x 307x 12019x208
4544
43 42 41 35
3433323125
242322 21
1514131211
⋅⋅+⋅⋅++⋅⋅+⋅⋅+⋅⋅+⋅⋅+
+⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅++⋅⋅+⋅⋅+⋅⋅+⋅⋅+
+⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅=XL
( )
[ ]. руб.min x87,507x81,25x 275x800x 174,993x100x202,5x 345x 1080x90
x124,995x325x1000x 1200x 716,681x09x315x 210x 2280x 160
4544 4342 41
3534333231
252423 2221
1514131211
→⋅+⋅+⋅+⋅+⋅++⋅+⋅+⋅+⋅+⋅+
+⋅+⋅+⋅+⋅+⋅++⋅+⋅+⋅+⋅+⋅=XL
Преобразуем РЗ в ТЗ. В качестве базового корпуса можно выбрать
любой, но мы предпочтем корпус с максимальной производительностью,
т. е. корпус 1K .
Определяем производительности корпусов iα , нормированные
относительно производительности базового станка:
11010
1515
3030
120120
2020
1 ======α ;
77
833,01033,8
1550,12
3025
120100
2066,16
2 ≈≈≈≈≈≈α ;
500,0105
1550,7
3015
12060
2010
3 ≈≈≈≈≈≈α ;
417,01017,4
1525,6
3050,12
12050
2033,8
4 ≈≈≈≈≈≈α .
Пересчитываем фонды времени корпусов:
5501550'1 =⋅=a [ч]; 724,710833,0870'
2 =⋅=a [ч]; 103500,0620'3 =⋅=a [ч];
329,430417,0790'4 =⋅=a [ч].
Пересчитываем плановое задание:
32020
6400'1 ==b [ч]; 500,72
1208700'
2 ==b [ч]; 667,54630
16400'3 ≈=b [ч];
32015
4800'4 ≈=b [ч]; 460
104600'
5 ==b [ч]
= ч
ч.шт.шт .
Производим пересчет себестоимостей, например:
228012019'12 =⋅=c [руб./ч]; 12003040'
23 =⋅=c [руб./ч];
180209'31 =⋅=c [руб./ч]; 2101021'
45 =⋅=c [руб./ч]
Все пересчитанные параметры РЗ сведены в транспортную матрицу
задачи без специализации (табл. 19). Перед записью этой матрицы надо
проверить сбалансированность полученной ТЗ, то есть условие
∑∑==
=5
1
'4
1
'
jj
ii ba . В данной задаче условие баланса не выполняется, так как
1914,167 > 1719,167, то есть .5
1
'4
1
' ∑∑==
>j
ji
i ba Это означает, что фонды времени
78
корпусов позволяют произвести больше продукции, чем это
предусмотрено плановым заданием. Для получения баланса добавим
в транспортную таблицу фиктивный столбец фИ с плановым
заданием 000,195167 , 1719 167 , 1914 =−=фb [ч]и фиктивными тарифами
000 10' =фc [руб./ч], превосходящими по своему значению все реальные
тарифы 'ijc полученной ТЗ.
Таблица 19
Транспортная матрица задачи без специализации
Корпуса, iK
Изделия, jИ 'ia [ч] 1И 2И 3И 4И 5И Иф
1K 160 2280 210 315 90 10 000 940
2K 860 1440 1200 390 150 10 000 141,61
3K 180 2160 690 405 200 10 000 275
4K 420 1920 660 195 210 10 000 282,88 'jb [ч] 300 81,667 580 346,667 38,334 195 1914,167
Оптимальное решение ТЗ '*X [ч] из таблицы 19 без фиктивного
столбца (все значения округлены до трех знаков после запятой) имеет
следующий вид:
='*X
3,333333 0 546,6667 0 0 0 72,5 0 0 460
310 0 0 0 0 6,667 0 0 320 0
Оптимальное решение РЗ *X [ч] получаем из оптимального решения
ТЗ '*X [ч], например:
667,5461667,546*
13 ≈=x [ч]; 87833,0
5,72*23 ≈=x [ч]; 16
417,0667,6*
41 ≈=x [ч];
=*X
3,33333 0 546,667 0 0 0 87 0 0 552
620 0 0 0 0 16 0 0 768 0
79
Значения ** Xxij ∈ – это время, в течение которого корпус iK будет
выпускать изделия jИ . Чтобы узнать, какое количество продукции будут
выпускать корпуса, то есть *кX [шт.], вычислим:
870010087*22 =⋅=кx [шт.]; 133333,816*
41 ≈⋅=кx [шт.].
В данном расчете округления (до меньшего целого) обязательны,
поскольку выпускаемая продукция штучная:
=*кX
66 0 16400 0 0 0 8699 0 0 4600
6200 0 0 0 0 133 0 0 4800 0
Определим затраты на производство продукции без специализации:
( ) ∑∑= =
=n
i
m
j
кijij
к xсXL1 1
** ;
( ) 709 4094800 13...86991216400766 8 * =⋅++⋅+⋅+⋅=кXL [руб].
4.5.3. Производство со специализацией
Чтобы принять решение о том, какой корпус будем специали-
зировать и на выпуске какой продукции, необходимо проанализировать
распределение выпуска продукции по корпусам, то есть *кX .
В рассматриваемой задаче первый корпус занят в основном
выпуском продукции И3 (16 400 шт. изделия И3 и 66 шт. изделия И1).
Число 16 400 шт. изделий И3 – это наибольшее количество продукции
одного и того же вида, производимое одним и тем же корпусом. Поэтому
примем решение о специализации первого корпуса на выпуске изделий И3.
Таким образом, возникает задача оптимального распределения
продукции по неспециализированным корпусам К2, К3, К4. При этом
необходимо выяснить, сможет ли специализируемый корпус К1 за свой
фонд времени произвести плановое задание по выбранному виду
продукции И3.
80
Таблица 20
Распределительная матрица задачи со специализацией
Корпуса, iK
Изделия, jИ Фонд
времени [ч] 1И 2И 4И 5И
2K 16,667 36,55
100 10,2
12,500 22,1
8,333 12,75 870
3K 10 7,65
60 15,3
7,500 22,95
5 17 620
4K 8,333 17,85
50 13,6
6,250 11,05
4,167 17,85 790
План [шт.] 6400 8700 4800 4600
В данном случае по *кX видно, что корпус успевает произвести
плановые 16 400 шт. изделия 3И . Таким образом, в новой задаче будем
распределять продукцию И1, И2, И4, И5 по корпусам К2, К3, и К4.
Распределительная матрица задачи без специализации, в которой
учтено уменьшение затрат на производство на 15%, представлена
в таблице 20. Транспортная матрица задачи указана в табл. 21.
Таблица 21
Транспортная матрица задачи со специализацией
Корпуса, iK
Изделия, jИ
'ia [ч] 1И 2И 4И 5И фИ
2K 609,167 1020 276,25 106,25 10 000 870
3K 127,5 1530 286,875 141,667 10 000 372
4K 297,5 1360 138,125 148,75 10 000 395
'jb [ч] 384 87 384 552 230 1637
В результате решения задачи со специализацией получаем
следующее оптимальное распределение производственных мощностей
и продукции:
81
=*спецX
1И 2И 4И 5И 2K 0 87 1 552 3K 620 0 0 0 4K 24 0 766 0
=*кспецX
1И 2И 4И 5И 2K 0 8700 12 4600 3K 6200 0 0 0 4K 200 0 4787 0
Общие затраты на производство со специализацией общспецL включают:
1) затраты на производство 16 400 шт. изделий 3И в специализи-
рованном корпусе 1К : 800 1147 400 16 =⋅ [ .рубшт.руб.шт. =⋅ ];
2) затраты на производство в остальных корпусах
( ) 552 251* =кспецXL [руб.];
3) затраты на переоборудование специализируемого корпуса
(матрица S в исходных данных) 000 13413 =s [руб.].
352 500000 134552 251800 114 =++=общспецL [руб.]
Сравнивая затраты на производство заданного объема продукции
без специализации ( ) 970 409* =кXL [руб.] и со специализацией
352 500=общспецL [руб.], приходим к выводу, что выгодней организовать
производство без специализации.
При решении подобных задач возможна ситуация, когда после
проведения специализации одного из корпусов производственных
мощностей других корпусов не хватает для выпуска остальной продукции
(суммарный пересчитанный фонд времени меньше суммарного
пересчитанного плана выпуска). Тогда вследствие специализации часть
82
запланированного объема продукции произведена не будет, что неизбежно
повлечет за собой потери прибыли от непроизведенной и непроданной
продукции. Это приведет к дополнительному увеличению общих затрат.
4.6. Построение и расчет сетевой модели
Исходные данные задачи включают название и продолжительность
каждой работы (табл. 22), а также описание упорядочения работ.
Таблица 22
Исходные данные Название работы Продолжительность работы
A 10 B 8 C 4 D 12 E 7 F 11 G 5 H 8 I 3 J 9 K 10
1) Работы C, I, G – исходные работы проекта, выполняются
одновременно.
2) Работы E и A следуют за работой C.
3) Работа H следует за работой I.
4) Работы D и J следуют за работой G.
5) Работа B следует за работой E.
6) Работа K следует за работами A и D, но не может начаться
прежде, чем не завершится работа H.
7) Работа F следует за работой J.
83
Рис. 28. Сетевая модель
Таблица 23
Описание сетевой модели с помощью кодирования работ
Номера событий Код работы Продолжительность начального конечного работы
1 2 (1,2) 4 1 3 (1,3) 3 1 4 (1,4) 5 2 5 (2,5) 7 2 6 (2,6) 10 3 6 (3,6) 8 4 6 (4,6) 12 4 7 (4,7) 9 5 8 (5,8) 8 6 8 (6,8) 10 7 8 (7,8) 11
На рис. 28 представлена сетевая модель, соответствующая данному
упорядочению работ. Каждому событию присвоен номер, что позволяет в
дальнейшем использовать не названия работ (табл. 23).
Численные значения временных параметров событий сети вписаны в
соответствующие секторы вершин сетевого графика, а временные
параметры работ сети представлены в табл. 24.
84
Таблица 24
Временные параметры работ
( )i j, ( )t i j, ( )T i jнр , ( )T i jор , ( )T i jпн , ( )T i jпо , ( )R i jп , ( )R i jс ,
1,2 4 0 4 3 7 3 0 1,3 3 0 3 6 9 6 0 1,4 5 0 5 0 5 0 0 2,5 7 4 11 12 19 8 0 2,6 10 4 14 7 17 3 3 3,6 8 3 11 9 17 6 6 4,6 12 5 17 5 17 0 0 4,7 9 5 14 7 16 2 0 5,8 8 11 19 19 27 8 8 6,8 10 17 27 17 27 0 0 7,8 11 14 25 16 27 2 2
КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Дайте определение общей задачи ЛП. 2. Сформулируйте стандартный алгоритм симплекс-метода. 3. Как связаны между собой прямая и двойственная задачи ЛП? 4. Дайте определение двойственной ЗЛП. 5. Что представляют собой линии уровня целевой функции ЗЛП
с двумя переменными? 6. Что представляет собой допустимая область ЗЛП с двумя (тремя)
переменными? 7. Как записывается общий вид математической модели
транспортной задачи? 8. Чем выделяются канонические системы из систем с базисом? 9. Может ли КЗЛП не иметь допустимых решений? 10. Как по индексной строке симплекс-таблицы определить, является
ли найденный план оптимальным? 11. Какие виды транспортных задач Вы знаете? 12. Что представляет целевая функция в транспортной задаче? 13. Какое основное отличие закрытой и открытой транспортных
задач?
85
14. Что называется опорным решением транспортной задачи? 15. Какие существуют методы получения первого опорного плана? 16. В чем суть этих методов? 17. Что называется циклом пересчета в транспортной задаче? 18. Каковы основные правила сдвига по циклу? 19. В чем состоит суть методов потенциала? 20. Каково условие оптимальности для свободных клеток таблицы 21. Как открытую транспортную задачу превратить в закрытую? 22. Распределительная задача. 23. Сформулируйте основные правила построения сетевых графиков. 24. Сформулируйте алгоритм нумерации событий при построении
сетевого графика. 25. Может ли сетевой график иметь более одного критического пути?
ЗАКЛЮЧЕНИЕ
В данном учебном пособии показано использование методов линейного программирования в решении оптимизационных задач с помощью компьютерных технологий. Знание алгоритма математического описания задач, возникающих на этапе планирования, позволит специалисту успешно отслеживать «узкие места» проекта и управлять им в условиях затрат ограниченных ресурсов.
Данное учебное пособие должно способствовать приобретению существенных навыков использования методов и инструментальных средств исследования объектов профессиональной деятельности и умения применять в своей предметной области с учетом ограничений используемых методов исследования курса исследования операций.
Следует помнить, что ни один метод не является универсальным и не избавляет человека от необходимости думать. Принятие обоснованного решение – вот назначение всех математических методов.
86
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Семушин, И. В. Сборник задач по линейному программированию : электронное пособие // И. В. Семушин. – Ульяновск : УлГТУ, 2012. – 88 с.
2. Булгакова, М. В. Исследование операций в экономических процессах / М. В. Булгакова // Вестник ЮУрГУ. Серия: Экономика и менеджмент. – 2013. – Т. 7, вып. № 4. – С. 6–8.
3. Saaty, T. L. Elements of Queuing Theory, with Applications / T. L. Saaty. – N. Y. : DoverPubns, 1983.
4. Вентцель, Е. С. Исследование операций / Е. С. Вентцель. – М. : Советское радио, 1972.
5. Новикова, Н.В. Исследование операций : конспект лекций / Н. В. Новикова. [Электронный ресурс]. – Режим доступа : http://www.bsu.by/Cache/pdf/217753.pdf (дата обращения 12.11.16).
6. Банди, Б. Основы линейного программирования ; пер. с англ. / Б. Банди. – М. : Радио и связь, 1989. – 176 с.
7. Верник, А. Н. Математические методы и модели в экономике : уч.-практ. пособие / А. Н. Верник, А. Е. Эткин, Г. П. Эткин. – Ульяновск : УлГТУ, 2008. – 208 с.
8. Кремер, Н. Ш. Исследование операций в экономике / Н. Ш. Кре-мер. – М. : Юнити, 2000. – 408 с.
9. Самаров, К. Л. Математика : уч.-метод. пос. по разделу «Транспортная задача» [Электронный ресурс]. – Режим доступа http://www.resolventa.ru/data/metodstud/transproblem.pdf (дата обращения 28.11.16).
10. Алесинская, Т. В. Учебное пособие по решению задач по курсу «Экономико-математические методы и модели» / Т. В. Алесинская. – Таганрог : Изд-во ТРТУ, 2002. – 153 с.
11. Кудрявцев, Е. М. Microsoft Project. Методы сетевого планирования и управления проектом / Е. М. Кудрявцев. – М. : ДМК Пресс, 2005. – 240 с.
12. Мазур, И. И. Управление проектами : учебное пособие / И. И. Мазур, В. Д. Шапиро, Н. Г. Ольдерогге ; под общ. ред. И. И. Мазура. – М. : Омега-Л, 2004. – 664 с.
87
Учебное электронное издание ИССЛЕДОВАНИЕ ОПЕРАЦИЙ:
ТЕОРИЯ И ПРАКТИКА Учебное пособие
Составитель КУРКИНА Светлана Владимировна
ЭИ № 874. Объем данных 1,52 Мб. Редактор Н. А. Евдокимова ЛР №020640 от 22.10.97.
Печатное издание
Подписано в печать 14.03.2017. Формат 60×84/16. Усл. печ. л. 5,11. Тираж 50 экз. Заказ № 211.
Ульяновский государственный технический университет,
432027, г. Ульяновск, ул. Сев. Венец, д. 32. ИПК «Венец» УлГТУ, 432027, г. Ульяновск, ул. Сев. Венец, д. 32.
Тел.: (8422) 778-113 E-mail: [email protected]
http://www.venec.ulstu.ru