close

Вход

Забыли?

вход по аккаунту

?

Diyazitdinova Issledovanie operacij i metody optimizacii uchebnoe posobie 2017

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Поволжский государственный университет
телекоммуникаций и информатики»
Кафедра «Прикладная информатика»
А.Р. ДИЯЗИТДИНОВА
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ
И МЕТОДЫ ОПТИМИЗАЦИИ
Учебное пособие
Самара
2017
Рекомендовано к изданию методическим советом, протокол №1 от 05.09.2017
Рецензент
доцент кафедры высшей математики ПГУТИ, к.т.н., доцент Старожилова О.В.
Диязитдинова А.Р.
Исследование операций и методы оптимизации: Учебное пособие. [Текст] /
А.Р. Диязитдинова – Самара: ФГБОУ ВО ПГУТИ, 2017. – 167 с.
Исследование операций – это наука о выборе разумных, научно
основанных решений во всех областях целенаправленной человеческой
деятельности. Изучение методов исследования операций является важной
составляющей при подготовке студентов в области информационных
технологий. Оно формирует определенную методологию совершенствования
существующих и создания новых систем на основе современных
компьютерных средств
Учебное пособие содержит основные понятия и термины, принципы и
определения операционного исследования. Приводится материал, связанный с
анализом и оптимизацией решений на основе методов математического
программирования. Рассматриваются процедуры анализа и принятия решений
на основе методов линейного, нелинейного, динамического программирования,
теории массового обслуживания, сетевого планирования и управления.
Пособие предназначено для студентов дневного, заочного обучения и
второго
высшего
образования
специальностей
38.03.05
«Бизнесинформатика», 09.03.02 «Информационные системы и технологии», 09.03.03
«Прикладная информатика» для изучения дисциплины «Исследование
операций» («Методы оптимизации») и соответствует требованиям
федерального государственного стандарта образования.
© Диязитдинова А.Р.
2
СОДЕРЖАНИЕ
1 ОБЩИЕ ПОНЯТИЯ ДИСЦИПЛИНЫ «ИССЛЕДОВАНИЕ
ОПЕРАЦИЙ».............................................................................................................. 5
1.1 ИСТОРИЯ РАЗВИТИЯ ДИСЦИПЛИНЫ ..................................................................... 5
1.2 НАУЧНАЯ СУЩНОСТЬ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ ............................................. 6
1.3 ОСНОВНЫЕ ПОНЯТИЯ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ.............................................. 8
1.4 ОСНОВНЫЕ ЗАДАЧИ, РЕШАЕМЫЕ МЕТОДОМ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ.
КЛАССИФИКАЦИЯ ЗАДАЧ............................................................................................. 11
1.4 МЕТОДЫ ОТЫСКАНИЯ ОПТИМАЛЬНЫХ РЕШЕНИЙ В ЗАДАЧАХ ИССЛЕДОВАНИЯ
ОПЕРАЦИЙ .................................................................................................................... 15
РЕЗЮМЕ ................................................................................................................... 16
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ ............................................................................... 16
2
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ ...................................................... 18
2.1 ОБЩИЕ ПОЛОЖЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ...................... 18
2.2 ГРАФИЧЕСКОЕ РЕШЕНИЕ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ .............. 20
2.3 АНАЛИЗ МОДЕЛЕЙ НА ЧУВСТВИТЕЛЬНОСТЬ ...................................................... 25
2.4 СИМПЛЕКС-МЕТОД............................................................................................. 32
2.4.1 Общая идея симплекс-метода .............................................................. 32
2.4.2 Алгоритм симплекс-методе .................................................................. 32
РЕЗЮМЕ ................................................................................................................... 36
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ ............................................................................... 36
3
ТРАНСПОРТНЫЕ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
38
3.1 ПОСТАНОВКА ЗАДАЧИ ....................................................................................... 38
3.2 МЕТОДЫ РЕШЕНИЯ ТРАНСПОРТНОЙ ЗАДАЧИ ..................................................... 41
3.2.1 Методы нахождения опорного плана ................................................. 41
3.2.2 Методы нахождения оптимального решения .................................... 49
3.3 ТРАНСПОРТНАЯ ЗАДАЧА В СЕТЕВОЙ ПОСТАНОВКЕ ........................................... 65
РЕЗЮМЕ ................................................................................................................... 69
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ ............................................................................... 69
4
ЦЕЛОЧИСЛЕННЫЕ МОДЕЛИ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ ...... 70
4.1 НАЗНАЧЕНИЕ МЕТОДОВ ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ .................. 70
4.2 МЕТОД ВЕТВЕЙ И ГРАНИЦ РЕШЕНИЯ ЦЕЛОЧИСЛЕННЫХ ЗАДАЧ ЛИНЕЙНОГО
ПРОГРАММИРОВАНИЯ .................................................................................................. 71
4.3 ЗАДАЧА КОММИВОЯЖЕРА .................................................................................. 78
4.4 МЕТОД ГОМОРИ ................................................................................................. 86
РЕЗЮМЕ ................................................................................................................... 88
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ ............................................................................... 89
5 РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИИ НА ОСНОВЕ МЕТОДА
ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ ............................................. 90
3
5.1 ПРИНЦИП РАБОТЫ МЕТОДА ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ .............. 90
5.2 ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ НА ОСНОВЕ МЕТОДА ДИНАМИЧЕСКОГО
ПРОГРАММИРОВАНИЯ .................................................................................................. 92
РЕЗЮМЕ ................................................................................................................. 102
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ ............................................................................. 102
6
МОДЕЛИРОВАНИЕ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ . 104
6.1 КОМПОНЕНТЫ И КЛАССИФИКАЦИЯ МОДЕЛЕЙ МАССОВОГО ОБСЛУЖИВАНИЯ 104
6.2 ОДНОКАНАЛЬНАЯ МОДЕЛЬ С ПУАССОНОВСКИМ ВХОДНЫМ ПОТОКОМ С
ЭКСПОНЕНЦИАЛЬНЫМ РАСПРЕДЕЛЕНИЕМ ДЛИТЕЛЬНОСТИ ОБСЛУЖИВАНИЯ ........... 108
6.2.1 Одноканальная СМО с отказами ....................................................... 108
6.2.2 Одноканальная СМО с ожиданием .................................................... 111
6.3 МНОГОКАНАЛЬНАЯ МОДЕЛЬ С ПУАССОНОВСКИМ ВХОДНЫМ ПОТОКОМ И
ЭКСПОНЕНЦИАЛЬНЫМ РАСПРЕДЕЛЕНИЕМ ДЛИТЕЛЬНОСТИ ОБСЛУЖИВАНИЯ ........... 117
6.3.1 Многоканальная СМО с отказами ..................................................... 118
6.3.2 Многокональная СМО с ожиданием .................................................. 120
6.4 МОДЕЛЬ ОБСЛУЖИВАНИЯ МАШИННОГО ПАРКА .............................................. 124
РЕЗЮМЕ ................................................................................................................. 130
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ ............................................................................. 130
7
СИСТЕМЫ УПРАВЛЕНИЯ ЗАПАСАМИ ............................................... 132
7.1 ОСНОВНЫЕ ПОНЯТИЯ....................................................................................... 132
7.2 СТАТИЧЕСКАЯ ДЕТЕРМИНИРОВАННАЯ МОДЕЛЬ БЕЗ ДЕФИЦИТА...................... 135
7.3 СТАТИЧЕСКАЯ ДЕТЕРМИНИРОВАННАЯ МОДЕЛЬ С ДЕФИЦИТОМ ...................... 140
7.4 СТОХАСТИЧЕСКИЕ МОДЕЛИ УПРАВЛЕНИЯ ЗАПАСАМИ .................................... 143
7.5 СТОХАСТИЧЕСКИЕ МОДЕЛИ УПРАВЛЕНИЯ ЗАПАСАМИ С ФИКСИРОВАННЫМ
ВРЕМЕНЕМ ЗАДЕРЖКИ ПОСТАВОК .............................................................................. 147
РЕЗЮМЕ ................................................................................................................. 149
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ ............................................................................. 149
8
МОДЕЛИ СЕТЕВОГО ПЛАНИРОВАНИЯ И УПРАВЛЕНИЯ (СПУ)
151
8.1 ИСТОРИЯ РАЗВИТИЯ ......................................................................................... 151
8.2 ОБЪЕКТ ПРОЕКТНОГО УПРАВЛЕНИЯ ................................................................ 155
8.3 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ СЕТЕВЫХ ГРАФИКОВ ........................ 157
8.3.1 Сетевое представление проекта ....................................................... 158
8.3.2 Расчет сетевой модели ....................................................................... 160
8.3.3 Определение критического пути ........................................................ 160
8.3.4 Определение резервов времени............................................................ 163
РЕЗЮМЕ ................................................................................................................. 165
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ ............................................................................. 166
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ....................................... 167
4
1 ОБЩИЕ ПОНЯТИЯ ДИСЦИПЛИНЫ «ИССЛЕДОВАНИЕ
ОПЕРАЦИЙ»
1.1 История развития дисциплины
Зарождение исследования операций как научной дисциплины было
обусловлено неотложным требованием решения важных практических
проблем. Поэтому в процессе становления и развития исследования операций
научные работники, которые занимались соответствующими исследованиями,
не только заложили фундамент некоторого нового научного направления, но и
использовали полученные знания для практического решения проблем. В
течение второго и третьего десятилетий своего существования группы по
исследованию операций значительно выросли и стали достаточно отличаться
друг от друга по направлениям.
Начало развития исследования операций как науки традиционно
связывают с сороковыми годами двадцатого столетия. Среди первых
исследований в данном направлении может быть названа работа
Л.В. Канторовича «Математические методы организации и планирования
производства», вышедшая в 1939 г. В 1975 году Л.В. Канторович стал
лауреатом Нобелевской премии за свои работы по оптимальному
использованию ресурсов в экономике. В зарубежной литературе отправной
точкой обычно считается вышедшая в 1947 г. работа Дж. Данцига, посвященная
решению линейных экстремальных задач.
Имеющиеся исторические документы и архивы не позволяют точно
установить количество тех ученых, которые были заняты исследованием
операций во время второй мировой войны, однако даже осторожные оценки
свидетельствуют о том, что общее число таких ученых в Англии, Америке и
Канаде превышало 700 человек. Их деятельность, слишком разнообразная для
того, чтобы можно было охарактеризовать ее полностью, не только охватывала
элементы технических решений, оценки результатов тактических операций и
новшеств (о чем уже говорилось), но и включала применение соответствующих
знаний при планировании тактических операций и выработке стратегии.
Наиболее важным для будущего было то, что многие из специалистов увидели
в таких научных разработках военного времени зарождение новой науки о
функциональных
системах,
а
также
возможности
использования
соответствующих научных знаний для многих видов деятельности в мирное
время.
После второй мировой войны специалисты осознали, что работам по
исследованию операций в том его понимании, которое сложилось во время
войны, предшествовали многие исследования аналогичной направленности,
например, работа Ланчестера по моделированию боевых операций,
5
выполненная в 1916 г.; работы по теории массового обслуживания Эрланга,
нашедшие практическую реализацию в начале двадцатого столетия в
Копенгагене; исследования Левинсона в области розничной торговли в начале
20-х годов. Однако эти исследования оставались разрозненными до тех пор,
пока не были подхвачены общим потоком разработок, начало которого только
что было кратко охарактеризовано. Таким образом, есть достаточные
основания считать, что появление методов исследования операций связано с
выделением самостоятельной области научной деятельности, имеющей
продолжительную историю, начало которой положили работы, проведенные во
время второй мировой войны.
1.2 Научная сущность исследования операций
Следует отметить, что не существует жесткого, устоявшегося и
общепринятого определения предмета исследования операций. Часто при
ответе на данный вопрос говорится, что «исследование операций представляет
собой комплекс научных методов для решения задач эффективного управления
организационными системами».
Природа систем, фигурирующих в приведенном определении под именем
«организационных», может быть самой различной, а их общие математические
модели находят применение не только при решении производственных и
экономических задач, но и в биологии, социологических исследованиях и
других практических сферах. Кстати, само название дисциплины связано с
применением математических методов для управления военными операциями.
Второе определение: Исследование Операций – это научная подготовка
принимаемого решения – это совокупность методов, предлагаемых для
подготовки и нахождения самых эффективных или самых экономичных
решений.
Исследование
операций
–
применение
математических,
количественных методов для обоснования решений во всех областях
целенаправленной человеческой деятельности.
Научная дисциплина, называемая исследованием операций, наблюдает
реальные явления, связанные с функциональными системами, разрабатывает
теории (которые многие исследователи называют моделями), предназначенные
для объяснения данных явлений, использует эти теории для описания того, что
произойдет при изменении условий, и проверяет предсказания новыми
наблюдениями.
Исследование операций начинается тогда, когда для обоснования решения
применяется тот или иной математический аппарат. Исследование операций
есть своеобразное математическое «примеривание» будущих решений,
позволяющее экономить время, силы и материальные средства, избегать
серьезных ошибок. Несмотря на многообразие задач организационного
6
управления, при их решении можно выделить некоторую общую
последовательность этапов, через которые проходит любое операционное
исследование. Как правило, это:
1) Постановка задачи.
2) Построение содержательной (вербальной) модели рассматриваемого
объекта (процесса). На данном этапе происходит формализация цели
управления
объектом,
выделение
возможных
управляющих
воздействий, влияющих на достижение сформулированной цели, а
также описание системы ограничений на управляющие воздействия.
3) Построение математической модели, т.е. перевод сконструированной
вербальной модели в ту форму, в которой для ее изучения может быть
использован математический аппарат.
4) Решение задач, сформулированных на базе построенной
математической модели.
5) Проверка полученных результатов на их адекватность природе
изучаемой системы, включая исследование влияния так называемых
внемодельных факторов, и возможная корректировка первоначальной
модели.
6) Реализация полученного решения на практике.
Центральное место в данном курсе отведено вопросам, относящимся к
четвертому пункту приведенной выше схемы. Это делается не потому, что он
является самым важным, сложным или интересным, а потому, что остальные
пункты существенно зависят от конкретной природы изучаемой системы, в
силу чего для действий, которые должны производиться в их рамках, не могут
быть сформулированы универсальные и содержательные рекомендации.
Математическое моделирование в исследовании операций является, с
одной стороны, очень важным и сложным, а с другой - практически не
поддающимся научной формализации процессом. Заметим, что неоднократно
предпринимавшиеся попытки выделить общие принципы создания
математических моделей приводили либо к декларированию рекомендаций
самого общего характера, трудноприложимых для решения конкретных
проблем, либо, наоборот, к появлению рецептов, применимых в
действительности только к узкому кругу задач. Поэтому более полезным
представляется знакомство с техникой математического моделирования на
конкретных примерах.
1) План снабжения предприятия.
Имеется ряд предприятий, использующих различные виды сырья; имеется ряд
сырьевых баз. Базы связаны с предприятиями различными путями сообщения
(железные дороги, автотранспорт, водный, воздушный транспорт). Каждый
транспорт имеет свои тарифы. Требуется разработать такой план снабжения
предприятий сырьем, чтобы потребности в сырье были удовлетворены при
минимальных расходах на перевозки.
7
2) Постройка участка магистрали.
Сооружается участок железнодорожной магистрали. В нашем распоряжении
определенное количество средств: людей, техники и т.п. Требуется назначить
очередность работ, распределить людей и технику по участкам пути таким образом,
чтобы завершить строительство в минимальные сроки.
3) Выборочный контроль продукции.
Выпускается определенный вид изделий. Для обеспечения высокого качества
продукции требуется организовать систему выборочного контроля: определить
размер контрольной партии, набор тестов, правила отбраковки и т.д. Требуется
обеспечить заданный уровень качества продукции при минимальных расходах на
контроль.
4) Военные действия.
Целью в данном случае является уничтожение вражеского объекта.
Подобные задачи встречаются в практике часто. Они имеют общие
черты. В каждой задаче определена цель – цели эти похожи; заданы некоторые
условия – в рамках этих условий и нужно принять решение, чтобы данное
мероприятие было наиболее выгодным. В соответствии с этими общими
чертами применяются и общие методы.
1.3 Основные понятия исследования операций
Операция – это всякая система действий (мероприятие), объединенных
единым замыслом и направленных к достижению какой-то цели. Операция есть
всегда управляемое мероприятие, то есть от нас зависит, каким способом
выбрать некоторые параметры, характеризующие его организацию.
Каждый определенный выбор зависящих от нас параметров называется
решением.
Оптимальными называются решения, по тем или иным признакам
предпочтительные перед другими.
Целью исследования операций является предварительное количественное
обоснование оптимальных решений.
Само принятие решения выходит за рамки исследования операций и
относится к компетенции ответственного лица, которому предоставлено право
окончательного выбора и на которое возложена ответственность за этот выбор.
Делая выбор, они могут учитывать наряду с рекомендациями, вытекающими из
математического расчета, еще ряд соображений (количественного и
качественного характера), которые этим расчетом не были учтены.
Те параметры, совокупность которых образует решение, называются
элементами решения. В качестве элементов решения могут быть различные
числа, векторы, функции, физически признаки и т.д.
Пример: перевозка однородного груза.
Существуют пункты отправления:
Имеются пункты назначения:
А1, А2, А3,…, Аm.
В1, В2, В3,…, Вn.
8
Элементами решения здесь будут числа xij, показывающие, какое количество грузов
будет отправлено из i-го пункта отправления в j-ый пункт назначения.
Совокупность этих чисел: x11, x12, x13,…, x1m,…, xn1, xn2,…, xnm образует решение.
Чтобы сравнить между собой различные варианты, необходимо иметь
какой-то количественный критерий – показатель эффективности (W). Данный
показатель называется целевой функцией.
Этот показатель выбирается так, чтобы он отражал целевую
направленность операции. Выбирая решение, стремимся, чтобы данный
показатель стремился к максимуму или к минимуму. Если W – доход, то
W → max; а если W – расход, то W → min.
Если выбор зависит от случайных факторов (погода, отказ техники,
колебания спроса и предложения), то в качестве показателя эффективности
выбирается среднее значение – математическое ожидание – W .
В качестве показателя эффективности иногда выбирают вероятность
достижения цели. Здесь цель операции сопровождается случайными факторами
и работает по схеме ДА-НЕТ.
Для иллюстрации принципов выбора показателя эффективности вернемся
к рассмотренным ранее примерам:
1) План снабжения предприятия.
Показатель эффективности виден в цели. R – число – стоимость перевозок,
R → min . При этом все ограничения должны быть выполнены.
2) Постройка участка магистрали.
В задаче большую роль играют случайные факторы. В качестве показателя
эффективности выбирают среднее ожидаемое время окончания стройки T → min .
3) Выборочный контроль продукции.
Естественный показатель эффективности, подсказанный формулировкой задачи –
это средние ожидаемые расходы на контроль за единицу времени, при условии, что
система контролирует обеспечение заданного уровня качества.
4) Военные действия.
Операция должна быть спланирована так, чтобы уничтожить вражеский объект. В
качестве целевой функции – вероятность того, что произойдет событие А
(уничтожение). Р(А)→1.
При решении любой конкретной задачи применение методов исследования
операций заключается в следующем:
− построение математических, экономических и статистических моделей
для задач принятия решений и управления в сложных ситуациях в
условиях неопределенности (наличие случайных факторов);
− изучение взаимосвязей, определяющих возможные последствия
принятых решений. Установление критериев эффективности,
позволяющих оценить преимущества того или иного варианта.
9
В самых разнообразных областях человеческой деятельности встречаются
сходные между собой задачи: организация производства, эксплуатация
транспорта, боевые действия, расстановка кадров, телефонная связь и т.д.
Возникающие в этих областях задачи сходны между собой по постановке,
обладают рядом общих признаков и решаются сходными методами.
Методы исследования операций обладают рядом специфических черт.
Чтобы подход к решению задач можно было считать операционным, он должен
содержать следующие элементы:
1) Ориентация на принятие решений. Основные результаты анализа
должны иметь непосредственное и полностью определенное отношение
к выбору способа действий (стратегии или тактики);
2) Оценка на основе критерия экономической эффективности. Сравнение
различных возможных вариантов действий должно основываться на
количественных оценках, позволяющих однозначно определить
полезность ожидаемого исхода. Количественные оценки для
коммерческих фирм обычно предполагают использование таких
измеримых величин, как расходы, доходы, наличие денежных средств,
норма прибыли от дополнительных капиталовложений и т.д. В
рекомендуемом решении должен быть достигнут оптимальный баланс с
учетом всех, нередко противоречивых факторов;
3) Доверие математической модели. Процедуры обращения с
упомянутыми выше параметрами должны быть определены настолько
точно, чтобы любой специалист в области системного анализа смог их
трактовать совершенно однозначно. Другими словами: опираясь на
одни и те же данные, различные специалисты должны получить
одинаковые результаты.
4) Необходимость использования ЭВМ. Это условие отнюдь не является
лишь желательным, оно скорее необходимо. Это обуславливается
сложностью используемых математических моделей и большим
объемом исходных данных. Вычисления могут быть громоздкими –
необходимо использовать ЭВМ; а могут быть несложными, но в
больших объемах (статистические модели).
Основные этапы применения метода исследования операций:
1) определение цели;
2) составление плана разработки проекта;
3) формулировка проблемы;
4) построение модели;
5) разработка вычислительного метода;
6) разработка технического задания на программирование, само
программирование и отладка программы;
7) сбор данных;
10
8) проверка модели;
9) реализация результатов, то есть принятие решения.
1.4 Основные задачи, решаемые методом исследования операций.
Классификация задач
Накопленный опыт в решении задач исследования операций и его
систематизация позволили выделить следующие типы задач:
− задачи управления запасами;
− задачи распределения ресурсов;
− задачи ремонта и замены оборудования;
− задачи массового обслуживания;
− задачи упорядочивания;
− задачи сетевого планирования и управления (СПУ);
− задачи выбора маршрута;
− комбинированные задачи.
1. Задачи управления запасами
Этот класс задач в настоящее время наиболее распространенный, а
главное, изученный. Эти задачи имеют следующую особенность: с ростом
запасов, увеличиваются расходы на их хранение, но снижаются потери,
связанные с возможной их нехваткой. Следовательно, одна из задач управления
запасами заключается в определении такого уровня запасов, который
минимизирует следующие критерии:
− сумма ожидаемых затрат на хранение,
− сумма потерь из-за дефицита.
В зависимости от условий, задачи управления запасами делятся на 3
группы:
а) моменты поставок или оформления заказов на поставки, пополнение
запасов фиксированы. Определить объемы производимой или закупаемой
партии запасов;
б) объемы производимой или закупаемой партии запасов фиксированы.
Определить моменты оформления заказов на поставки;
в) моменты оформления заказов и объемы закупаемых партий запасов
нефиксированы. Определить эти величины, исходя из минимальных затрат и
минимальных потерь из-за дефицита.
2. Задачи распределения ресурсов
Эти задачи возникают тогда, когда существует определенный набор
операций (работ), которые необходимо выполнить, а наличия ресурсов для
выполнения операций наилучшим образом не хватает. В зависимости от
условия задачи эти также делятся на 3 группы:
11
а) заданы работы и ресурсы. Распределить ресурсы между работами таким
образом, чтобы максимизировать некоторую меру эффективности (прибыль)
или минимизировать ожидаемые затраты (издержки производства).
Пример: известны производственное задание и производственные мощности
предприятия. При существующих различных способах получения изделия,
ограничения по мощности не позволяют для каждого изделия использовать
наилучшую технологию. Какие способы производства надо выбрать, чтобы
выполнить задание с минимальными затратами?
б) заданы только наличные ресурсы. Определить, какой состав работ
можно выполнить с учетом этих ресурсов, чтобы обеспечить максимум
некоторой меры эффективности.
Пример: задано предприятие с определенными производственными мощностями.
Какую продукцию следует производить, чтобы получить максимальный доход?
в) заданы только работы. Определить, какие ресурсы необходимы для
того, чтобы минимизировать суммарные издержки производства.
Пример: известно месячное расписание движения полетов пассажирских самолетов
на авиалинии. Какое количество экипажей необходимо подобрать, чтобы выполнить
план с минимальными затратами?
3. Задачи ремонта и замены оборудования
Производственное оборудование с течением времени изнашивается и
подлежит предупредительно-восстановительному ремонту. Оборудование
также устаревает (морально и физически) и подлежит полной замене. При этом
постановка задачи такова: определить такие сроки ремонта и замены
оборудования, при которых минимизируется сумма затрат на ремонт и замену
оборудования при его старении. Иногда в оборудовании выходят из строя
отдельные элементы (например, микросхемы) – в данном случае требуется
определить такие сроки профилактического ремонта по замене вышедших из
строя деталей, чтобы потери на данный элемент были минимальными.
Здесь также имеет место профилактический контроль по обнаружению
неисправностей. Требуется определить такие сроки контроля, при которых
минимизируется сумма затрат на проведение контроля, а также
минимизируется сумма потерь от простоя оборудования вследствие выхода из
строя отдельных элементов.
4. Задачи массового обслуживания
Данные задачи возникают там, где образуется очередь. С образованием
очереди приходится сталкиваться как в производстве, так и в быту
(производство: очередность выполнения заказа; в быту: магазин, поликлиника).
Подобные задачи существуют и на транспорте.
Очередь возникает из-за того, что поток клиентов (заказов) поступает
неравномерно и имеет случайный характер. То есть поток клиентов
неуправляем. Объект, который обслуживает клиента, называется каналом
обслуживания (продавец, врач, взлетно-посадочная полоса). Если каналов
12
обслуживания много, очереди не образуется, но возможны простои каналов
обслуживания. Если каналов мало – образуется очередь. А следовательно,
возможны затраты, связанные с ожиданием в очереди клиента ми с отказом
клиента от обслуживания.
В данных задачах возможна следующая постановка: определить, какое
количество каналов обслуживания необходимо, чтобы свести к минимуму
суммарные затраты, связанные с несвоевременным обслуживанием и простоем
каналов. Для решения задач используется теория массового обслуживания.
5. Задачи упорядочивания
Эти задачи часто встречаются в производстве. Предположим, что в цехе
изготавливается множество деталей по разным технологическим маршрутам. В
парке оборудования имеется ограниченное число станков (токарный,
фрезерный, строгальный и др.). На одном станке в данный момент времени
может обрабатываться только 1 деталь. Появляется очередность выполнения
работ, то есть появляются детали, ждущие обработки. Время обработки каждой
детали обычно известно. Такая задача называется задачей календарного
планирования или составлением расписания работ. Выбор очередности запуска
деталей в обработку является задачей упорядочивания. В таких задачах в
качестве критерия эффективности часто встречаются следующие:
− минимизация общей продолжительности работ (то есть интервала
времени между моментом началом первой операции и моментом
окончания последней);
− минимизация общего запаздывания. Запаздывание определяется как
разность фактическим и плановым сроком обработки каждой детали.
Общее запаздывание = сумме запаздываний по всем деталям.
6. Задачи сетевого планирования и управления (СПУ)
Данные задачи актуальны при разработке сложных, дорогостоящих
проектов. Здесь рассматривается соотношение между сроком выполнения
крупного комплекса операций и моментом начала всех операций отдельно в
комплексе. Для строгой постановки задачи необходимо выполнить следующие
условия:
− должно существовать точно определяемое количество операций;
− множество операций по комплексу упорядочено так, что должно быть
известно для каждой операции какие операции ей предшествуют, а
какие следуют за ней;
− в пределах заданного упорядочивания операций, операции можно
начинать и заканчивать независимо друг от друга;
− известна взаимосвязь между ресурсами на выполнение операции и ее
продолжительностью.
Если все условия выполнены, возможны следующие постановки задачи:
13
а) задана продолжительность выполнения всего комплекса операций.
Требуется определить сроки каждой операции, при которых:
− минимизируются общие затраты на выполнение всего комплекса
операций,
− определяется вероятность невыполнения комплекса работ в
установленные сроки,
− определяется среднеквартальные отклонения требуемых ресурсов от
наличных.
б) заданы общие ресурсы. Определить сроки начала каждой операции,
чтобы минимизировать время на выполнение всего комплекса операций.
7. Задачи маршрутизации
Эти задачи возникают при исследовании разнообразных процессов на
транспорте и в системах связи. Типичной задачей является задача выбора
оптимального маршрута: имеется несколько маршрутов, из них нужно
выбрать один. Стоимость прохождения и время на прохождение зависит от
выбранного маршрута. При рассмотрении ряда маршрутов вводятся следующие
ограничения:
− запрещается возвращаться в уже пройденный пункт,
− в пунктах сети возможны задержки (например, из-за ограниченной
пропускной способности). Задержки носят случайный характер.
Критерии оптимизации: минимизация общего времени прохождения
маршрута или минимизация общих затрат.
Данные задачи наиболее изучены и в литературе носят специфические
названия – задача о коммивояжере или задача о максимальном потоке.
8. Комбинированные задачи
Включают в себя несколько типовых задач одновременно.
Пример: при планировании и управлении производством необходимо решить
комплекс задач:
1) сколько изделий каждого наименования необходимо выпустить и каковы
оптимальные размеры партии изделий – задача планирования производства;
2) распределить заказы или детали по видам оборудования, причем оптимальный
план производства задан – задача распределения;
3) определить в какой последовательности следует выполнить производственные
заказы – календарное планирование.
Эти задачи нельзя решать независимо друг от друга. Критерии
эффективности этих задач часто противоречат друг другу. Поэтому при
решении задач часто используют:
Метод последовательного приближения – с помощью этого метода можно
очень близко подойти к оптимальному решению.
14
Метод имитационного моделирования – основан на методе Монте-Карло
(использование случайных чисел) и требует огромного количества вычислений,
так как рассматривается очень много вариантов решений.
1.4 Методы отыскания оптимальных решений в задачах исследования
операций
На протяжении всей истории развития методов исследования операций
научные работники следовали рекомендациям Блеккета, согласно которым
исследование операций, как и любая другая наука, не базируется на
использовании точных копий аналитических методов какой-либо другой науки,
а требует разработки своего собственного математического аппарата, методов
исследования операций, ориентированного на специфику, присущую этой
области и задачам исследования. Этот аппарат не должен оставаться
неизменным; наоборот, он должен меняться в соответствии с характером
исследуемых задач.
К основным методам отыскания оптимальных решений относятся:
− математическое программирование. В свою очередь методы
математического программирования делятся на:
o линейное программирование;
o нелинейное программирование;
o динамическое программирование;
o целочисленное программирование;
o стохастическое программирование;
o эвристическое программирование;
− теория массового обслуживания;
− сетевые модели планирования и управления;
− имитационное моделирование.
Рассмотренные выше классы задач можно решать указанными методами.
Методами математического программирования решаются следующие
классы задач:
− задачи управления запасами,
− задачи распределения ресурсов,
− задачи замены и ремонта оборудования,
− задачи выбора маршрута.
С помощью теории массового обслуживания решаются задачи массового
обслуживания.
С использованием сетевых моделей планирования и управления можно
решать:
− задачи массового обслуживания,
− задачи упорядочивания,
− задачи сетевого планирования.
15
Методом имитационного моделирования решаются комбинированные
задачи. Данным методом можно решить задачу любого класса, однако, данный
метод не является универсальным. Его применение ограничено следующими
факторами:
1) требуется наличие высококвалифицированных специалистов, т.к. он
содержит в себе элементы всех вышеперечисленных методов;
2) решение обходится дороже, чем при использовании других методов.
Резюме
Из материала, изложенного в данной лекции, можно сделать следующие
выводы:
− зарождение исследования операций как научной дисциплины было
обусловлено неотложным требованием решения важных практических
проблем. Поэтому в процессе становления и развития дисциплины научные
работники не только заложили фундамент некоторого нового научного
направления, но и использовали полученные знания для практического
решения проблем.
− Исследованием операций наблюдает реальные явления, связанные с
функциональными системами, разрабатывает теории, предназначенные
для объяснения данных явлений, использует эти теории для описания того,
что произойдет при изменении условий, и проверяет предсказания новыми
наблюдениями.
− Несмотря на многообразие задач организационного управления, при их
решении можно выделить некоторую общую последовательность этапов,
через которые проходит любое операционное исследование.
− Целью исследования операций является предварительное количественное
обоснование оптимальных решений.
− Накопленный опыт в решении задач исследования операций и его
систематизация позволили выделить различные типы задач, для которых
применяются соответствующие математические методы.
Вопросы для самоконтроля
1.
2.
3.
4.
5.
6.
7.
8.
Когда зародилась научная дисциплина «Исследование операций»?
Дайте определение исследованию операции.
Перечислите этапы операционного исследования.
Дайте определение терминам «операция», «решение», «оптимальное
решение», «целевая функция».
Приведите примеры целевой функции.
Приведите примеры задач, решаемые с помощью исследования операций.
Что такое критерий?
Перечислите основные этапы применения метода исследования операций.
16
9. Перечислите основные задачи, решаемые методом исследования операций.
10. Дайте характеристику задачи управления запасами.
11. Дайте характеристику задачи распределения ресурсов.
12. Дайте характеристику задачи ремонта и замены оборудования.
13. Дайте характеристику задачи массового обслуживания.
14. Дайте характеристику задачи упорядочивания.
15. Дайте характеристику задачи сетевого планирования и управления.
16. Дайте характеристику задачи выбора маршрута.
17. Перечислите и дайте краткую характеристику методов отыскания
оптимальных решений в задачах исследования операций.
17
2 ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
2.1 Общие положения задач линейного программирования
Оптимизационная задача – это экономико-математическая задача, которая
состоит в нахождении оптимального (максимального или минимального)
значения целевой функции, причем значения переменных должны
принадлежать некоторой области допустимых значений.
В самом общем виде задача математически записывается следующим
образом:
U = f ( Х ) → max ; X ∈ W ,
(2.1)
где X = ( x1 , x2 ,..., x n ) ;
W – область допустимых значений переменных x1 , x 2 ,..., x n ;
f(Х) – целевая функция.
Для того, чтобы решить задачу оптимизации, достаточно найти ее
оптимальное решение, т.е. указать X 0 ∈ W такое, что f ( X 0 ) ≥ f ( X ) при любом
X ∈W .
Оптимизационная задача является неразрешимой, если она не имеет
оптимального решения. В частности, задача максимизации будет
неразрешимой, если целевая функция f(Х) не ограничена сверху на допустимом
множестве W.
Методы решения оптимизационных задач зависят как от вида целевой
функции f(Х), так и от строения допустимого множества W. Если целевая
функция в задаче является функцией n переменных, то методы решения
называют методами математического программирования.
Задачей линейного программирования называется задача исследования
операций, математическая модель которой имеет вид:
n
f ( Х ) = ∑ c j x j → max(min) ;
(2.2)
j =1
n
∑a
j =1
ij
x j = bi , i ∈ I , I ⊆ M = {1,2,..., m} ;
(2.3)
ij
x j ≤ bi , I ∈ M ;
(2.4)
n
∑a
j =1
x j ≥ 0 , j ∈ J , J ⊆ N = {1,2,..., n} .
(2.5)
При этом система линейных уравнений (2.3) и неравенств (2.4), (2.5),
определяющая допустимое множество решений задачи W, называется
системой ограничений задачи линейного программирования, а линейная
функция f(Х) называется целевой функцией или критерием оптимальности.
18
В частном случае, если I = Ø, то система (2.3) – (2.4) состоит только из
линейных неравенств, а если I = M, то – из линейных уравнений.
Если математическая модель задачи линейного программирования имеет
вид:
n
f ( Х ) = ∑ c j x j → min ;
(2.6)
j =1
n
∑a
j =1
ij
x j = bi , i = 1, m ;
(2.7)
bi ≥ 0 ;
x j ≥ 0 , j = 1, n ,
.
(2.8)
то говорят, что задача представлена в канонической форме.
Задачи
линейного
программирования
обладают
следующими
особенностями:
1) ограничения в задачах линейного программирования могут быть
выражены как равенствами, так и неравенствами;
2) линейная функция может стремиться как к максимуму, так и к
минимуму;
3) переменные в задачах всегда неотрицательны.
Любую задачу линейного программирования можно свести к задаче
линейного программирования в канонической форме. Для этого в общем случае
нужно уметь сводить задачу максимизации к задаче минимизации; переходить
от ограничений неравенств к ограничениям равенств и заменять переменные,
которые не подчиняются условию неотрицательности. Максимизация
некоторой функции эквивалента минимизации той же функции, взятой с
противоположным знаком, и наоборот.
Правило
приведения
задачи
линейного
программирования
к
каноническому виду состоит в следующем:
1) если в исходной задаче требуется определить максимум линейной
функции, то следует изменить знак и искать минимум этой функции;
2) если в ограничениях правая часть отрицательна, то следует умножить
это ограничение на -1;
3) если среди ограничений имеются неравенства, то путем введения
дополнительных неотрицательных переменных они преобразуются в
равенства;
4) если некоторая переменная xk не имеет ограничений по знаку, то она
заменяется (в целевой функции и во всех ограничениях) разностью
между двумя новыми неотрицательными переменными: xk = x′k − xl ,
где l - свободный индекс, x′k ≥ 0 ; xl ≥ 0 .
19
Пример 2.1.
Привести к канонической форме задачу линейного программирования:
min L = 2 x1 + x2 − x3 ;
2 x 2 − x3 ≤ 5 ;
x1 + x 2 − x 3 ≥ −1 ;
2 x1 − x 2 ≤ −3 ;
x1 ≤ 0 , x 2 ≥ 0 , x3 ≥ 0 .
Введем в каждое уравнение системы ограничений, выравнивающие переменные x 4 ,
x5 , x6 . Система запишется в виде равенств, причем в первое и третье уравнения
системы ограничений переменные x 4 , x6 вводятся в левую часть со знаком "+", а во
второе уравнение вводится x5 со знаком "–".
2 x 2 − x3 + x 4 = 5 ;
x1 + x 2 − x3 − x5 = −1 ;
2 x1 − x 2 + x 6 = −3 ;
x 4 ≥ 0 , x5 ≥ 0 , x 6 ≥ 0 .
Свободные члены в канонической форме должны быть положительными, для этого
два последних уравнения умножим на -1:
2 x 2 − x3 + x 4 = 5 ;
− x1 − x 2 + x3 + x5 = 1 ;
− 2 x1 + x 2 − x 6 = 3 .
В канонической форме записи задач линейного программирования все переменные,
входящие в систему ограничений, должны быть отрицательными. Допустим, что
x1 = x1′ − х 7 , где x1′ ≥ 0 , х 7 ≥ 0 .
Подставляя данное выражение в систему ограничений и целевую функцию и
записывая переменные в порядке возрастания индекса, получим задачу линейного
программирования, представленную в канонической форме:
2 x 2 − x3 + x 4 = 5 ;
− x1′ − x 2 + x3 + x5 + х 7 = 1 ;
− 2 x1′ + x 2 − x 6 + 2 х 7 = 3 ;
Lmin = 2 x1′ + x 2 − x3 − 2 х 7 ;
x1′ ≥ 0 , хi ≥ 0 ; i = 2,7 .
2.2 Графическое решение задачи линейного программирования
Графически способ решения задач линейного программирования
целесообразно использовать для:
− решения задач с двумя переменными, когда ограничения выражены
неравенствами;
− решения задач со многими переменными при условии, что в их
канонической записи содержится не более двух свободных
переменных.
Запишем задачу линейного программирования с двумя переменными:
20
− целевая функция:
Z max =c 1 x1 + c 2 x 2
(2.9)
− ограничения:
a11 x1 + a12 x 2 ≤ b1
a x + a x ≤ b
 21 1
22 2
2
;
(2.10)

..........
..........
......

a m1 x1 + a m 2 x 2 ≤ bm
x1 ≥ 0 ; x 2 ≥ 0 .
(2.11)
Каждое из неравенств (2.10) – (2.11) системы ограничений задачи
геометрически определяет полуплоскость соответственно с граничными
прямыми a i1 x1 + a i 2 x 2 = bi ; ( i = 1, m ); x1 = 0 ; x 2 = 0 . В том случае, если система
неравенств (2.10) – (2.11) совместна, область ее решений есть множество точек,
принадлежащих всем указанным полуплоскостям. Так как множество точек
пересечения данных полуплоскостей – выпуклое, то областью допустимых
значений является выпуклое множество, которое называется многоугольником
решений. Стороны этого многоугольника лежат на прямых, уравнения которых
получаются из исходной системы ограничений заменой знаков неравенств на
знаки равенств.
Областью допустимых решений системы неравенств (2.10) – (2.11) может
быть:
− выпуклый многоугольник;
− выпуклая многоугольная неограниченная область;
− пустая область;
− луч;
− отрезок;
− единственная точка.
Целевая функция (2.9) определяет на плоскости семейство параллельных
прямых, каждой из которых соответствует определенное значений Z.
Вектор С = (с1 ; с 2 ) с координатами с1 и с 2 , перпендикулярный к этим
прямым, указывает направление наискорейшего возрастания Z, а
противоположный вектор – направление убывания Z.
Если в одной и той же системе координат изобразить область допустимых
решений системы неравенств (2.10) – (2.11) и семейство параллельных прямых
(2.9), то задача определения максимума функции Z сведется к нахождению в
допустимой области точки, через которую проходит прямая из семейства Z =
const, и которая соответствует наибольшему значению параметра Z.
Эта точка существует тогда, когда многоугольник решений не пуст и на
нем целевая функция ограничена сверху. При указанных условиях в одной из
21
вершин многоугольника решений целевая функция принимает максимальное
значение.
Для определения данной вершины построим линию уровня
Z =c 1 x1 + c 2 x 2 = 0 , проходящую через начало координат и перпендикулярную
вектору С = (с1 ; с 2 ) , и будем передвигать ее в направлении вектора С = (с1 ; с 2 )
до тех пор, пока она не коснется последней крайней (угловой) точки
многоугольника решений. Координаты указанной точки и определяет
оптимальный план данной задачи.
Заканчивая рассмотрение геометрической интерпретации задачи (2.10) –
(2.11), отметим, что при нахождении ее решения могут встретиться случаи,
изображенные на рис. 2.1 – 2.4. Рис. 2.1 характеризует такой случай, когда
целевая функция принимает максимальное значение в единственной точке А.
Из рис. 2.2 видно, что максимальное значение целевая функция принимает в
любой точке отрезка АВ.
Рис. 2.1. Оптимум функции Z
достижим в точке А
Рис. 2.2. Оптимум функции Z
достигается в любой точке [A,B]
На рис. 2.3 изображен случай, когда максимум недостижим, а на рис. 2.4. –
случай, когда система ограничений задачи несовместна. Отметим, что
нахождение минимального значения Z при данной системе ограничений
отличается от нахождения ее максимального значения при тех же ограничениях
лишь тем, что линия уровня Z передвигается не в направлении вектора
С = (с1 ; с 2 ) , а в противоположном направлении. Таким образом, отмеченные
выше случаи, встречающиеся при нахождении максимального значения
целевой функции, имеют место и при определении ее минимального значения.
22
Рис. 2.3. Оптимум функции Z
недостижим
Рис. 2.4. Область допустимых
решений – пустая область
Для практического решения задачи линейного программирования (2.9) – (2.11)
на основе ее геометрической интерпретации необходимо следующее:
1) Построить прямые, уравнения которых получаются в результате замены
в ограничениях (2.10) – (2.11) знаков неравенств на знаки равенств.
2) Найти полуплоскости, определяемые каждым из ограничений.
3) Определить многоугольник решений.
4) Построить вектор С = (с1 ; с 2 ) .
5) Построить прямую
Z =c 1 x1 + c 2 x 2 = 0 , проходящую через начало
координат и перпендикулярную вектору С .
6) Передвигать прямую Z =c 1 x1 + c 2 x 2 в направлении вектора С , в
результате чего либо находят точку (точки), в которой функция
принимает
максимальное
значение,
либо
устанавливают
неограниченность функции сверху на множестве планов.
7) Определить точки координаты максимума функции и вычислить
значение целевой функции в этой точке.
Пример 2.2 Определение оптимального ассортимента продукции
Предприятие изготавливает два вида продукции - П1 и П 2 , которая поступает в
оптовую продажу. Для производства продукции используются два вида сырья - А и
В. Максимально возможные запасы сырья в сутки составляют 9 и 13 единиц
соответственно. Расход сырья на единицу продукции вида П1 и вида П 2 дан в
табл. 2.1.
23
Табл. 2.1. Расход сырья продукции
Сырье
А
В
Расход сырья на 1 ед. продукции
П1
П2
2
3
3
2
Запас сырья, ед.
9
13
Опыт работы показал, что суточный спрос на продукцию П1 никогда не превышает
спроса на продукцию П 2 более чем на 1 ед. Кроме того, известно, что спрос на
продукцию П 2 никогда не превышает 2 ед. в сутки.
Оптовые цены единицы продукции равны: 3 д. е. - для П1 и 4 д.е. для П 2 .
Какое количество продукции каждого вида должно производить предприятие, чтобы
доход от реализация продукции был максимальным?
Рассмотрим решение задачи об ассортименте продукции геометрическим способом
Решение
Предположим, что предприятие изготовит x1 единиц продукции П1 и x 2 единиц
продукции П 2 . Поскольку производство продукции П1 и П 2 ограничено
имеющимися в распоряжении предприятия сырьем каждого вида и спросом на
данную продукцию, а также учитывая, что количество изготовляемых изделий не
может быть отрицательным, должны выполняться следующие неравенства:
2 x1 + 3x 2 ≤ 9 ;
3x1 + 2 x 2 ≤ 13 ;
x1 − x 2 ≤ 1 ;
x2 ≤ 2 ;
x1 ≥ 0 ;
x2 ≥ 0 .
Доход от реализации x1 единиц продукции П1 и x 2 единиц продукции П 2
составит F = 3x1 + 4 x 2 .
Таким образом, мы приходим к следующей математической задаче: среди всех
неотрицательных решений данной системы линейных неравенств требуется найти
такое, при котором функция F принимает максимальное значения Fmax .
Рассмотренная задача относится к разряду типовых задач оптимизации
производственной программы предприятия. В качестве критериев оптимальности в
этих задачах могут быть также использованы: прибыль, себестоимость,
номенклатура производимой продукции и затраты станочного времени.
Построим многоугольник решений (рис. 2.5). Для этого в системе координат Х 1 0Х 2
на плоскости изобразим граничные прямые:
2 х1 + 3х 2 = 9
( L1 );
3х1 + 2 х 2 = 13
( L2 );
х1 − х 2 = 1
( L3 );
х2 = 2
( L4 ).
Взяв какую-либо точку, например, начало координат, установим, какую
полуплоскость определяет соответствующее неравенство. Полуплоскости,
определяемые неравенствами, на рис. Показаны стрелками. Областью решений
является многоугольник OABCD.
24
Для построения прямой Z = 2 х1 + 3х2 = 0 строим вектор-градиент C = (3;4) и через
точку 0 проводим прямую, перпендикулярную ему. Построенную прямую Z = 0
перемещаем параллельно самой себе в направлении вектора С . Из рис. следует, что
по отношению к многоугольнику решений опорной эта прямая становится в точке C,
где функция принимает максимальное значение. Точка С лежит на пересечении
прямых L1 и L3 . Для определения ее координат решим систему уравнений:
2 х1 + 3х 2 = 9;

 х1 − х 2 = 1.
Оптимальный план задачи х1 = 2,4 ; х 2 = 1,4 . Подставляя значения х1 и х 2 в
линейную функцию, получим:
Z max = 3 ⋅ 2,4 + 4 ⋅ 1,4 = 12,8 .
Полученное решение означает, что объем производства продукции П1 должен быть
равен 2,4 ед., а продукции П2 – 1,4 ед. Доход, получаемый в этом случае, составит:
Z = 12,8 д.е.
Рис. 2.5. Решение задачи линейного программирования
геометрическим способом
2.3 Анализ моделей на чувствительность
Анализ моделей на чувствительность – это процесс, реализуемый после
получения оптимального решения. В рамках такого анализа выявляется
чувствительность оптимального решения к определенным изменениям
исходной модели. В задаче об ассортименте продукции (пример 2.2) может
представлять интерес вопрос о том, как повлияет на оптимальное решение
увеличение и уменьшение спроса на продукцию или запасов исходного сырья.
25
Возможно, также потребуется анализ влияния рыночных цен на оптимальное
решение.
При таком анализе всегда рассматривается комплекс линейных
оптимизационных моделей. Это придает модели определенную динамичность,
позволяющую исследователю проанализировать влияние возможных
изменений исходных условий на полученное ранее оптимальное решение.
Динамические характеристики моделей фактически отображают аналогичные
характеристики, свойственные реальным процессам. Отсутствие методов,
позволяющих выявлять влияние возможных изменений параметров модели на
оптимальное решение, может привести к тому, что полученное (статическое)
решение устареет еще до своей реализации. Для проведения анализа модели на
чувствительность с успехом могут быть использованы графические методы.
Рассмотрим основные задачи анализа на чувствительность на примере 2.2.
Задача 1. Анализ изменений запасов ресурсов.
После нахождения оптимального решения представляется вполне
логичным выяснить, как отразится на оптимальном решении изменение запасов
ресурсов. Для этого необходимо ответить на два вопроса:
1) На сколько можно увеличить запас некоторого ресурса для улучшения
полученного оптимального значения целевой функции Z?
2) На сколько можно снизить запас некоторого ресурса при сохранении
полученного оптимального значения целевой функции Z?
Прежде чем ответить на поставленные вопросы, классифицируем
ограничение линейной модели как связывающие (активные) и несвязывающие
(неактивные)
ограничения.
Прямая,
представляющая
связывающее
ограничение, должна проходить через оптимальную точку, в противном случае,
соответствующее ограничение будет несвязываюшим. На рис. 2.5
связывающими ограничениями являются ограничения (1) и (3), представленные
прямыми L1 и L3 соответственно, т.е. те, которые определяют запасы исходных
ресурсов. Ограничение (1) определяет запасы сырья А. Ограничение (3)
определяет соотношение спроса на выпускаемую продукцию.
то
Если
некоторое
ограничение
является
связывающим,
соответствующий ресурс относят к разряду дефицитных ресурсов, так как он
используется полностью. Ресурс, с которым ассоциировано несвязывающее
ограничение, следует отнести к разряду недефицитных ресурсов (т.е.
имеющихся в некотором избытке). В нашем примере несвязывающими
ограничениями являются (2) и (4). Следовательно, ресурс - сырье В недефицитный, т.е. имеется в избытке, а спрос на продукцию П 2 не будет
удовлетворен полностью (в таблице - ресурсы 2 и 4).
При анализе модели на чувствительность к правым частям ограничений
определяются: 1) предельно допустимое увеличение запаса дефицитного
26
ресурса, позволяющее улучшить найденное оптимальное решение, и 2)
предельно допустимое снижение запаса недефицитного ресурса, не
изменяющее найденное ранее оптимальное значение целевой функции.
В нашем примере сырье А и соотношение спроса на выпускаемую
продукцию П1 и П 2 являются дефицитными ресурсами (в таблице - ресурсы 1,
3).
Рассмотрим сначала ресурс - сырье А. На рис. 2.6 при увеличении запаса
этого ресурса прямая L1 перемещается вверх, параллельно самой себе, до точки
К, в которой пересекаются линии ограничений L2 , L3 и L4 . В точке К
ограничения (2), (3) и (4) становятся связывающими; оптимальному решению
при этом соответствует точка К, а пространством (допустимых) решений
становится многоугольник AKD0. В точке К ограничение (1) (для ресурса А)
становится избыточным, так как любой дальнейший рост запаса
соответствующего ресурса не влияет ни на пространство решений, ни на
оптимальное решение.
Рис. 2.6. Геометрическая интерпретация решения задачи линейного
программирования (изменение ресурса А)
Таким образом, объем ресурса А не следует увеличивать сверх того
предела, когда соответствующее ему ограничение (1) становится избыточным,
т.е. прямая (1) проходит через новую оптимальную точку К. Этот предельный
уровень определяется следующим образом. Устанавливаются координаты
точки К, в которой пересекаются прямые L2 , L3 и L4 , т.е. находится решение
системы уравнений
27
3x1 + 2 x2 = 13

.
 x1 − x2 = 1
x = 2
 2
В результате получается x1 = 3 и x2 = 1. Затем, путем подстановки
координат точки К в левую часть ограничения (1), определяется максимально
допустимый запас ресурса А:
2 x1 + 3x 2 = 2 ⋅ 3 + 3 ⋅ 2 = 12 .
Рис. 2.7 иллюстрирует ситуацию, когда рассматривается вопрос об
изменении соотношения спроса на продукцию П1 и П 2 .
Рис. 2.7. Геометрическая интерпретация решения задачи линейного
программирования (изменение спроса на продукцию)
Новой оптимальной точкой становится точка Е, где пересекаются прямые
L1 и L2 . Координаты данной точки находятся путем решения системы
уравнений (1) и (2) следующим образом:
2 x1 + 3 x2 = 9
.

3 x1 + 2 x2 = 13
В результате получается x1 = 4,2; x2 = 0,2, причем суточный спрос на
продукцию П1 не должен превышать спрос на продукцию П 2 на величину
x1 − x2 = 4,2 -0,2= = 4 ед.
Дальнейшее увеличение разрыва в спросе на продукцию П1 и П 2 не будет
влиять на оптимальное решение.
28
Рассмотрим вопрос об уменьшении правой части несвязывающих
ограничений. Ограничение (4) x2 ≤ 2 фиксирует предельный уровень спроса на
продукцию П 2 . Из рис. 2.7 следует, что, не изменяя оптимального решения,
прямую L4 (АВ) можно опускать вниз до пересечения с оптимальной точкой С.
Так как точка С имеет координаты x1 = 2,4; x2 = 1,4 уменьшение спроса на
продукцию П 2 до величины x2 = 1,4 никак не повлияет на оптимальность ранее
полученного решения.
Рассмотрим ограничение (2) 3 x1 + 2 x2 ≤ 13 , которое представляет собой
ограничение на недефицитный ресурс - сырье В. И в этом случае правую часть запасы сырья В - можно уменьшать до тех пор, пока прямая L2 не достигнет
точки С. При этом правая часть ограничения (2) станет равной
3 x1 + 2 x2 = 3 ⋅ 2,4 + 2 ⋅ 1,4 = 10 , что позволяет записать это ограничение в виде:
3 x1 + 2 x2 ≤ 10 . Этот результат показывает, что ранее полученное оптимальное
решение не измените, если суточный запас ресурса В уменьшить на 3 ед.
Результаты проведенного анализа можно свести в следующую таблицу:
Максимальное
Максимальное
увеличение
Ресурс
Тип ресурса
изменение запаса
дохода от
ресурса, ед.
изменения
ресурса, у.д.е.
1 (А)
дефицитный
12 – 9 = +3
17 – 12,8 = +4,2
2 (В)
недефицитный
10 – 13 = -3
12,8 – 12,8 = 0
3
дефицитный
4 – 1 = +3
13,4 – 12,8 = +0,6
4
недефицитный
1,4 – 2 = -0,6
12,8 – 12,8 = 0
Задача 2. Определение наиболее выгодного ресурса.
В задаче 1 анализа на чувствительность мы исследовали влияние на
оптимум увеличения объема дефицитных ресурсов. При ограничениях,
связанных с дополнительным привлечением ресурсов, естественно задать
вопрос: какому из ресурсов следует отдать предпочтение при вложении
дополнительных средств? Для этого вводится характеристика ценности каждой
дополнительной единицы дефицитного ресурса, выражаемая через
соответствующее приращение оптимального значения целевой функции. Такую
характеристику
для
рассматриваемого
примера
можно
получить
непосредственно из таблицы, в которой приведены результаты решения задачи
1 на чувствительность. Обозначим ценность дополнительной единицы ресурса i
через yi . Величина yi определяется из соотношения
29
максимальное приращение Z
.
максимально допустимый прирост ресурса i
Результаты расчета ценности единицы каждого из ресурсов представлены
в следующей таблице:
Ресурс i
Тип ресурса
Значение i
yi =
1 (А)
дефицитный
2 (В)
недефицитный
3
дефицитный
4
недефицитный
1,4
= 1,4
3
0
=0
−3
0,6
= 0,2
3
0
=0
− 0,6
Полученные результаты свидетельствуют о том, что дополнительные
вложения в первую очередь следует направить на увеличение ресурса А и лишь
затем - на формирование соотношения спроса на продукцию П1 и продукцию
П 2 . Что касается недефицитных ресурсов, то, как и следовало ожидать, их
объем увеличивать не следует.
Задача 3. Определение пределов изменения коэффициентов целевой
функции.
Изменение коэффициентов целевой функции оказывает влияние на наклон
прямой, которая представляет эту функцию в принятой системе координат.
Вариация коэффициентов целевой функции может привести к изменению
совокупности связывающих ограничений и, следовательно, статуса того или
иного ресурса (т.е. сделать недефицитный ресурс дефицитным, и наоборот).
При анализе модели ни чувствительность к изменениям коэффициентов
целевой функции необходимо исследовать следующие вопросы:
1) Каков диапазон изменения того или иного коэффициента целевой
функции, при котором не происходят изменения оптимального
решения?
2) На сколько следует изменить тот или иной коэффициент целевой
функции, чтобы сделать некоторый недефицитный ресурс дефицитным,
и, наоборот, дефицитный ресурс сделать недефицитным?
Ответим на поставленные вопросы на нашем примере.
Рассматривая первый вопрос, обозначим через с1 и с2 доходы предприятия
от продажи единицы продукции П1 и П 2 соответственно. Тогда целевую
функцию можно представить в следующем виде:
Z = c1 x1 + c2 x2
30
На рис. 2.5 видно, что при увеличении с1 или уменьшении с2 прямая,
представляющая целевую функцию Z, вращается (вокруг точки С) по часовой
стрелке. Если же с1 уменьшается или с2 увеличивается, эта прямая вращается в
противоположном направлении - против часовой стрелки. Таким образом,
точка С будет оставаться оптимальной точкой до тех пор, пока наклон прямой
не выйдет за пределы, определяемые наклонами прямых для ограничений (1) и
(3).
Когда наклон прямой Z станет равным наклону прямой L1 , получим две
альтернативные оптимальные угловые точки - С и В. Аналогично, если наклон
прямой Z станет равным наклону прямой для ограничения (3), будем иметь
альтернативные оптимальные угловые точки С и D. Наличие альтернативных
оптимумов свидетельствует о том, что одно и то же оптимальное значение Z
может достигаться при различных значениях переменных x1 и x2 . Как только
наклон прямой выйдет за пределы указанного выше интервала с1 , получим
некоторое новое оптимальное решение.
Рассмотрим на нашем примере, каким образом можно найти допустимый
интервал изменения с1 , при котором точка С остается оптимальной. Исходное
значение коэффициента с2 = 4 оставим неизменным. На рис. 2.5 видно, что
значение с1 можно уменьшать до тех пор, пока прямая Z не совпадет с прямой
L1 (отрезок ВС).
Это крайнее минимальное значение коэффициента с1 можно определить из
равенства углов наклонов прямой Z и прямой L1 . Так как тангенс угла наклона
с
2
для прямой Z равен 1 , а для прямой (1) равен , то минимальное значение с1
4
3
с 2
8
определим из равенства 1 = , откуда min c1 = . На рис 2.5 видно, что
4 3
3
значение с1 можно увеличивать беспредельно, так как прямая Z при с2 = 4 и
c1 → +∞ не совпадает с прямой L3 (отрезок DC) и, следовательно, точка С при
8
всех значениях коэффициента с1 ≥ будет единственной оптимальной.
3
Интервал изменения с1 , в котором точка С по-прежнему остается
8
единственной оптимальной точкой, определяется неравенством
< c1 < +∞ .
3
8
При с1 = оптимальными угловыми точками будут как точка С, так и точка В.
3
8
Как только коэффициент с1 становится меньше , оптимум смещается в точку
3
В.
31
8
,
3
ресурс 3 становится недефицитным, а ресурс 4 - дефицитным. Для предприятия
это означает следующее; если доход от продажи единицы продукции П1 станет
8
меньше
д.е., то наиболее выгодная производственная программа
3
предприятия должна предусматривать выпуск максимально допустимого
количества продукции П 2 (полностью удовлетворять спрос на продукцию П 2 ).
При этим соотношение спроса на продукцию П1 и П 2 не будет лимитировать
объемы производства, что обусловит недефицитность ресурса (3). Увеличение
8
коэффициента с1 свыше
д.е. не снимает проблему дефицита ресурсов (1) и
3
(3). Точка С - точка пересечения прямых L1 и L3 - остается все время
оптимальной.
Можно заметить, что, как только коэффициент с1 оказывается меньше
2.4 Симплекс-метод
2.4.1 Общая идея симплекс-метода
Для начала работы требуется, чтобы заданная система ограничений
выражалась равенствами, причем в этой системе ограничений должны быть
выделены базисные неизвестные. Решение задачи при помощи симплексметода распадается на ряд шагов. На каждом шаге от данного базиса Б
переходят к другому, новому базису Б 1 с таким расчетом, чтобы значение
функции Z уменьшалось, т. е. Z 1 ≤ Z Б . Для перехода к новому базису из
Б
старого базиса удаляется одна из переменных и вместо нее вводится другая из
числа свободных. После конечного числа шагов находится некоторый
базис Б ( k ) , для которого Z (k ) есть искомый минимум для линейной функции Z,
Б
а соответствующее базисное решение является оптимальным либо выясняется,
что задача не имеет решения.
2.4.2 Алгоритм симплекс-методе
Рассмотрим систему ограничений и линейную форму вида:
a11 x1 + a12 x2 + ... + a1n xn = b1
a x + a x + ... + a x = b
 21 1
22 2
2n n
2
;

...

a m1 x1 + a m 2 x2 + ... + amn xn = bm
Z min = c0 + c1 x1 + c2 x2 + ... + cn xn ;
(2.13)
xi ≥ 0 , i = 1, n .
(2.14)
32
(2.12)
Используя метод Жордана-Гаусса, приведем записанную систему к виду,
где выделены базисные переменные. Введем условные обозначения:
x1 , x2 ,..., xr - базисные переменные;
xr +1 , xr + 2 ,..., xn - свободные переменные.
 x1 = β1 − (α 1r +1 xr +1 + α 1r + 2 xr + 2 + ... + α 1n xn )
 x = β − (α x + α x + ... + α x )
 2
2
2 r +1 r +1
2 r +2 r +2
2n n
;
(2.15)

...

 xr = β r − (α rr +1 xr +1 + α rr + 2 xr + 2 + ... + α rn xn )
Z min = γ 0 − (γ r +1 xr +1 + γ r + 2 xr +1 + ... + γ n xn ) .
(2.16)
По последней системе ограничений и целевой функции Z построим
табл. 2.2.
Табл. 2.2. Симплекс-таблица
Свободные
неизвестные
Свободный
член
xr +1
xr + 2
x1
x2
β1
β2
α 1r +1
α 2 r +1
α 1r + 2
α 2 r +1
…
…
…
…
Базисные
неизвестные
xr
Z min
βr
γ0
α rr +1
γ r +1
α rr + 2
γ r +2
…
…
…
…
…
…
xn
α 1n
α 2n
…
α rn
γn
Данная таблица называется симплекс-таблицей. Все дальнейшие
преобразования связаны с изменением содержания этой таблицы.
Алгоритм симплекс-метода сводится к следующему.
1. В последней строке симплекс-таблицы находят наименьший
положительный элемент, не считая свободного члена. Столбец,
соответствующий этому элементу, считается разрешающим.
2. Вычисляют отношение свободных членов к положительным элементам
разрешающего столбца (симплекс-отношение). Находят наименьшее из этих
симплекс-отношений, оно соответствует разрешающей строке.
3. На пересечении разрешающей строки и разрешающего столбца
находится разрешающий элемент.
4. Если имеется несколько одинаковых по величине симплекс-отношений,
то выбирают любое из них. То же самое относится к положительным элементам
последней строки симплекс-таблицы.
5. После нахождения разрешающего элемента переходят к следующей
таблице. Неизвестные переменные, соответствующие разрешающей строке и
столбцу, меняют местами. При этом базисная переменная становится
33
свободной переменной и наоборот. Симплекс-таблица преобразована
следующим образом (табл. 2.3):
6. Элемент табл. 2.3, соответствующий разрешающему элементу табл.
2.2, равен обратной величине разрешающего элемента.
7. Элементы строки табл. 2.3, соответствующие элементам разрешающей
строки табл. 2.2, получаются путем деления соответствующих элементов табл.
2.2 на разрешающий элемент,
8. Элементы столбца табл. 2.3, соответствующие элементам разрешающего
столбца табл. 2.2, получаются путем деления соответствующих элементов табл.
2.2 на разрешающий элемент и берутся с противоположным знаком.
9. Остальные элементы вычисляются по правилу прямоугольника:
мысленно вычерчиваем прямоугольник в табл. 2.2, одна вершина которого
совпадает с разрешающим элементом, а другая - с элементом, образ которого
мы ищем; остальные две вершины определяются однозначно. Тогда искомый
элемент из табл. 2.3 будет равен соответствующему элементу табл. 2.2 минус
дробь, в знаменателе которой стоит разрешающий элемент, а в числителе произведение элементов из двух неиспользованных вершин прямоугольника.
10. Как только получится таблица, в которой в последней строке все
элементы отрицательны, считается, что минимум найден. Минимальное
значение функции равно свободному члену в строке целевой функции, а
оптимальное решение определяется свободными членами при базисных
переменных. Все свободные переменные в этом случае равны нулю.
11. Если в разрешающем столбце все элементы отрицательны, то задача не
имеет решений (минимум не достигается).
Табл. 2.3. Преобразование симплекс-таблицы
Свободные
неизвестные
Базисные
неизвестные
xr +2
Свободный
член
xr +1
x1
β1
α 1r + 2
α 1r +1
α 2 r +2
1
x2
…
…
α 1r + 2
α
− 2 r +2
α 1r + 2
…
…
α rr + 2
α 1r + 2
γ
− r+2
α 1r + 2
−
xr
Z min
34
…
xn
…
α 1n
α 1r + 2
…
…
…
…
…
Пример 2.3. Решение задачи симплекс-методом:
− x1 + x 2 + x3 = 1

 x1 − x 2 + x 4 = 1 ;
x + x + x = 2
2
5
 1
Z max = 2 x1 − x 2 + 3 x3 − 2 x 4 + x5 .
Приведем задачу к виду, допускающему применение симплекс-алгоритма:
x3 = 1 − (− x1 + x 2 );
x 4 = 1 − ( x1 − x 2 );
x5 = 2 − ( x1 + x 2 ).
Подставим в выражение Z max величины x3 , x 4 , x5 :
Z max = 6 x1 − 7 x 2 + 3 .
По алгоритму целевая функция должна стремиться к минимуму:
Z min = − Z max = −6 x1 + 7 x 2 − 3 = −3 − (6 x1 − 7 x 2 ) .
Составим симплекс-таблицу:
Свободные
неизвестные
Свободный
x4
x2
Базисные
член
неизвестные
x3
1
-1
1
x1
1
1
-1
x5
2
1
1
Z min
-3
6
-7
Разыскиваем в последней строке наименьший положительный элемент, в нашем
примере он равен +6, первый столбец коэффициентов будет разрешающим.
Определим отношение свободных членов к положительным элементам
разрешающего столбца. Минимальное симплекс-отношение равно 1. Разрешающий
элемент находится на пересечении строки переменной x 4 и столбца - x1 .
Переходим к следующей таблице, используя правило прямоугольника:
Свободные
неизвестные
Свободный
x1
x2
Базисные
член
неизвестные
x3
2
1
0
x4
1
1
-1
x5
1
-1
2
Z min
-9
-6
-1
В последней строке нет положительных элементов, следовательно, оптимальное
решение найдено: Z min = −9 ; X = (1; 0; 2, 0, 1); Z max = − Z min = 9 .
35
Резюме
Из материала, изложенного в данной лекции, можно сделать следующие
выводы.
− Оптимизационная задача – это экономико-математическая задача,
которая состоит в нахождении оптимального (максимального или
минимального) значения целевой функции, причем значения переменных
должны принадлежать некоторой области допустимых значений.
− Любую задачу линейного программирования можно свести к задаче
линейного программирования в канонической форме.
− Графически способ решения задач линейного программирования
целесообразно использовать для: решения задач с двумя переменными, когда
ограничения выражены неравенствами; решения задач со многими
переменными при условии, что в их канонической записи содержится не
более двух свободных переменных.
− Анализ моделей на чувствительность – это процесс, реализуемый после
получения оптимального решения. В рамках такого анализа выявляется
чувствительность оптимального решения к определенным изменениям
исходной модели. При таком анализе всегда рассматривается комплекс
линейных оптимизационных моделей. Это придает модели определенную
динамичность, позволяющую исследователю проанализировать влияние
возможных изменений исходных условий на полученное ранее оптимальное
решение.
− Если задача линейного программирования имеет оптимальное решение, то
оно соответствует хотя бы одной угловой точке многогранника решений и
совпадает, по крайней мере, с одним из допустимых базисных решений
системы ограничений.
− Симплекс-метод является универсальным методом решения задач
линейного программирования.
− В основу симплексного метода легла идея последовательного улучшения
решения.
− Для
использования
симплексного
метода
задача
линейного
программирования должна быть приведена к каноническому виду.
Вопросы для самоконтроля
1. Какая задача называется оптимизационной?
2. Приведите математическую модель задачи линейного программирования.
3. Что подразумевается под канонической формой задачи линейного
4.
5.
6.
7.
программирования.
Поясните
графический
метод
решения
задачи
линейного
программирования.
Когда целесообразно применять графический способ решения задачи
линейного программирования?
Что такое многоугольник решений?
Что может являться областью допустимых решений?
36
8. Перечислите основные задачи анализа на чувствительность.
9. В чем заключается анализ изменений запасов ресурсов?
10. Какие ресурсы называются дефицитными? Недефицитными?
11. Как определить наиболее выгодный ресурс?
12. Как определить пределы изменения коэффициентов целевой функции?
13. Дайте определение симплекс-метода.
14. Дайте геометрическую интерпретацию симплекс-метода.
15. Что легло в основу симплекс-метода?
16. Расскажите алгоритм симплекс-метода.
37
3 ТРАНСПОРТНЫЕ ЗАДАЧИ
ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Транспортная задача является представителем класса задач линейного
программирования и поэтому обладает всеми качествами линейных
оптимизационных задач, но одновременно она имеет и ряд дополнительных
полезных свойств, которые позволили разработать специальные методы ее
решения. Эти методы, как и симплексный метод, позволяют найти начальное
опорное решение, а затем, улучшая его, получить оптимальное решение.
3.1 Постановка задачи
Под термином «транспортная задача» понимается широкий круг задач не
только транспортного характера, которые характеризуются единой
математической моделью. Общим для них является, как правило,
распределение ресурсов, находящихся у m производителей (поставщиков), по n
потребителям этих ресурсов.
Наиболее часто встречаются следующие задачи, относящиеся к
транспортным:
− прикрепление потребителей ресурса к производителям;
− привязка пунктов отправления к пунктам назначения;
− взаимная привязка грузопотоков прямого и обратного направлений;
− отдельные
задачи
оптимальной
загрузки
промышленного
оборудования;
− оптимальное распределение объемов выпуска промышленной
продукции между заводами-изготовителями и др.
Различают два типа транспортных задач: по критерию стоимости (план
перевозок оптимален, если достигнут минимум затрат на его реализацию) и по
критерию времени (план оптимален, если на его реализацию затрачивается
минимум времени).
Также существуют одноэтапные модели задач, где перевозка
осуществляется напрямую от, например, базы или завода изготовителя к
потребителю, и двухэтапные, где между ними имеется «перевалочный пункт»,
например – склад.
Рассмотрим экономико-математическую модель прикрепления пунктов
отправления к пунктам назначения. Имеются m пунктов отправления груза и
объемы отправления по каждому пункту a1 , a 2 ,..., a m . Известна потребность в
грузах b1 , b2 ,..., bn по каждому из n пунктов назначения. Задана матрица
стоимостей доставки по каждому варианту сij , i = 1, m , j = 1, n . Необходимо
рассчитать оптимальный план перевозок, т.е. определить, сколько груза должно
быть отправлено из каждого i-го пункта отправления (от поставщика) в каждый
38
j-ый пункт назначения (до потребителя) xij с минимальными транспортными
издержками.
В общем виде исходные данные представлены в табл. 3.1. Строки
транспортной таблицы соответствуют пунктам отправления (в последней
клетке каждой строки указан объем запаса продукта ai ), а столбцы – пунктам
назначения (последняя клетка каждого столбца содержит значение потребности
b j ). Все клетки таблицы (кроме тех, которые расположены в нижней строке и
правом столбце) содержат информацию о перевозке из i-го пункта в j-й: в
правом верхнем углу находится цена перевозки единицы продукта, а в левом
нижнем – значение объема перевозимого груза для данных пунктов.
Табл. 3.1. Транспортная таблица
Потребители
B1
Поставщики
B2
c11
A1
x11
x12
x 21
…
x 22
x m1
c2n
x2n
…
c m1
Am
…
c 22
…
c1n
x1n
c 21
A2
…
c12
Запасы
(объемы
отправления)
Bn
…
…
…
cm 2
xm 2
…
a2
…
c mn
x mn
a1
am
Потребность
…
b1
b2
bn
Транспортная задача называется закрытой, если суммарный объем
m
отправляемых грузов  ∑ ai  равен суммарному объему потребности в этих
 i =1 
n
грузах по пунктам назначения  ∑ b j  :
 j =1 
m
n
i =1
j =1
∑ ai = ∑ b j
(3.1)
Если такого равенства нет (потребности выше запасов или наоборот),
запасу называют открытой, т.е.:
m
n
i =1
j =1
∑ ai ≠ ∑ b j
(3.2)
Очевидно, в случае закрытой модели весь имеющийся в наличии груз
развозится полностью, и все потребности заказчиков полностью
удовлетворены; в случае же открытой модели либо все заказчики
удовлетворены и при этом на некоторых базах остаются излишки груза (a > b) ,
либо весь груз оказывается израсходованным, хотя потребности полностью не
удовлетворены (a < b) .
39
Для написания модели необходимо все условия (ограничения) и целевую
функцию представить в виде математических уравнений.
Все грузы из i-х пунктов должны быть отправлены, т.е.:
n
∑x
j =1
ij
= ai , i = 1, m
(3.3)
Все j-е пункты (потребители) должны быть обеспечены грузами в
плановом объеме:
m
∑x
i =1
ij
= b j , j = 1, n
(3.4)
Суммарные объемы отправления должны равняться суммарным объемам
назначения (3.1). Должно выполняться условие неотрицательности
переменных: xij ≥ 0 , i = 1, m , j = 1, n . Перевозки необходимо осуществить с
минимальными транспортными издержками (функция цели):
m n
Z min = ∑ ∑ cij xij
(3.5)
i =1 j =1
Будем называть любой план перевозок допустимым, если он
удовлетворяет системам ограничений и требованием неотрицательности.
Допустимый план, будем называть опорным, если в нем отличны от нуля
не более m+n-1 базисных перевозок, а остальные перевозки равны 0.
План будет называться оптимальным, если он, среди всех допустимых
планов, приводит к максимальной суммарной стоимости перевозок.
Вместо матрицы стоимостей перевозок ( cij ) могут задаваться матрицы
расстояний. В таком случае в качестве целевой функции рассматривается
минимум суммарной транспортной работы. Как видно из выражения (3.1),
уравнение баланса является обязательным условием решения транспортной
задачи. Поэтому, когда в исходных условиях дана открытая задача, то ее
необходимо привести к закрытой форме. В случае, если
− потребности по пунктам назначения превышают запасы пунктов
отправления, то вводится фиктивный поставщик с недостающим
объемом отправления;
− запасы поставщиков превышают потребности потребителей, то
вводится фиктивный потребитель с необходимым объемом
потребления.
Варианты, связывающие фиктивные пункты с реальными, имеют нулевые
оценки. После введения фиктивных пунктов задача решается как закрытая.
Транспортным задачам присущи следующие особенности:
− распределению подлежат однородные ресурсы;
− условия задачи описываются только уравнениями;
− все переменные выражаются в одинаковых единицах измерения;
− во всех уравнениях коэффициенты при неизвестных равны единице;
40
− каждая неизвестная встречается только в двух уравнениях системы
ограничений.
3.2 Методы решения транспортной задачи
Решение транспортной задачи включает два этапа:
− определение опорного плана;
− нахождение оптимального решения, путем последовательных операций.
3.2.1 Методы нахождения опорного плана
Для транспортной задачи существует несколько методов отыскания
начального плана (опорного решения):
− метод северо-западного угла (диагональный);
− метод минимальной стоимости (метод наименьшего элемента);
− метод Фогеля;
− метод двойного предпочтения.
Рассмотрим данные методы на примере.
Дано
AT = (a1 ; a 2 ; a 3 ) = (200; 450; 290);
B T = (b1 ; b2 ; b3 ; b4 ; b5 ) = (200; 220; 170; 210; 150);
 19 25 30 32 20 


D =  40 21 12 21 41 
 15 41 28 27 22 


Составим транспортную таблицу
Табл. 3.2. Исходная таблица:
Потребители
B1
Поставщики
19
A1
0
A2
0
A3
0
Потребность
B2
B3
25
0
30
0
40
220
21
27
0
170
41
0
28
0
20
0
0
41
0
32
12
0
15
B5
0
21
0
200
B4
Запасы
(объемы
отправления)
22
0
210
200
450
290
150
Транспортная задача является открытой, так как запас груза меньше
потребностей на 10 единиц. Приведем задачу к закрытому типу - Введем
фиктивного поставщика A4 .
41
Табл. 3.3. Транспортная таблица с фиктивным поставщиком:
Потребители
B1
Поставщики
A1
A2
A3
A4
Потребность
B2
19
0
B3
25
0
15
0
0
200
220
27
0
0
170
22
0
0
0
41
0
0
0
0
21
28
0
20
0
0
41
0
32
12
0
Запасы
(объемы
отправления)
B5
0
21
0
0
30
0
40
0
B4
0
0
210
200
450
290
10
150
Метод северо-западного угла (диагональный). Сущность способа
заключается в том, что на каждом шаге заполняется левая верхняя клетка
(северо-западная) оставшейся части таблицы, причем максимально возможным
числом: либо полностью выносится груз из ai , либо полностью
удовлетворяется потребность b j . Процедура продолжается до тех пор, пока на
каком-то шаге не исчерпаются запасы ai и не удовлетворятся все потребности
b j . В заключении проверяют, что найденные компоненты плана xij
удовлетворяют горизонтальным и вертикальным уравнениям.
Пример построения опорного плана методом северо-западного угла
Введем некоторые обозначения:
Ai* - излишек нераспределенного груза от поставщика Ai
Bj* - недостача в поставке груза потребителю Bj
Помещаем в клетку (1,1) меньшее из чисел A1*=200 и B1*=200
Так как запасы поставщика A1 исчерпаны, то строка 1 в дальнейшем в расчет
принимается
Так как спрос потребителя B1 удовлетворен, то столбец 1 в дальнейшем в расчет
принимается
Помещаем в клетку (2,2) меньшее из чисел A2*=450 и B2*=220
Так как спрос потребителя B2 удовлетворен, то столбец 2 в дальнейшем в расчет
принимается
Помещаем в клетку (2,3) меньшее из чисел A2*=230 и B3*=170
Так как спрос потребителя B3 удовлетворен, то столбец 3 в дальнейшем в расчет
принимается
Помещаем в клетку (2,4) меньшее из чисел A2*=60 и B4*=210
Так как запасы поставщика A2 исчерпаны, то строка 2 в дальнейшем в расчет
принимается
Помещаем в клетку (3,4) меньшее из чисел A3*=290 и B4*=150
Так как спрос потребителя B4 удовлетворен, то столбец 4 в дальнейшем в расчет
принимается
Помещаем в клетку (3,5) меньшее из чисел A3*=140 и B5*=150
Так как запасы поставщика A3 исчерпаны, то строка 3 в дальнейшем в расчет
принимается
Помещаем в клетку (4,5) меньшее из чисел A4*=10 и B5*=10
42
не
не
не
не
не
не
не
Табл. 3.4. Опорный план методом северо-западного угла:
Потребители
B1
Поставщики
A1
B2
25
19
B4
30
B5
32
20
21
41
200
A2
40
A3
15
A4
0
Потребность
B3
Запасы
(объемы
отправления)
12
21
220
170
60
41
28
0
22
27
150
0
140
0
0
10
200
220
170
210
200
450
290
10
150
Целевая функция F=18850
Метод наименьшего элемента. Просматривается вся матрица тарифов
перевозок, и из нее выбирается позиция с наименьшим значением тарифа cij ,
затем просматриваются значения наличия запасов на складе ai и потребности у
потребителя b j , затем в данную клетку записывается величина min{ai , b j }. Из
запасов соответствующего склада и потребностей магазина вычитается
величина min{ai , b j }. Если запас товара на складе исчерпан, то эта строка
исключается из дальнейшего рассмотрения. Если потребность магазина в
товаре удовлетворена полностью, то этот столбец исключается из дальнейшего
рассмотрения. Может быть случай, когда одновременно исключаются и строка
и столбец, этот случай называется вырожденным. В дальнейшем весь процесс
повторяется до тех пор, пока не будет исчерпан весь запас товаров на складах и
не будет удовлетворена потребность всех магазинов. По полученной матрице
перевозок вычисляется целевая функция задачи Z.
Пример построения опорного плана методом наименьшего элемента
Временно исключаем из рассмотрения клетки фиктивного поставщика.
Находим незанятую клетку с минимальным тарифом: (2,3).
Помещаем туда меньшее из чисел A2*=450 и B3*=170
Находим незанятую клетку с минимальным тарифом: (3,1).
Помещаем туда меньшее из чисел A3*=290 и B1*=200
Находим незанятую клетку с минимальным тарифом: (1,5).
Помещаем туда меньшее из чисел A1*=200 и B5*=150
Находим незанятую клетку с минимальным тарифом: (2,2).
Помещаем туда меньшее из чисел A2*=280 и B2*=220
Находим незанятую клетку с минимальным тарифом: (2,4).
Помещаем туда меньшее из чисел A2*=60 и B4*=210
Находим незанятую клетку с минимальным тарифом: (3,4).
Помещаем туда меньшее из чисел A3*=90 и B4*=150
Находим незанятую клетку с минимальным тарифом: (1,4).
Помещаем туда меньшее из чисел A1*=50 и B4*=60
43
Теперь распределим фиктивный груз между потребителями и фиктивным
поставщиком A5
Поместим в клетку (4,4) 10 единиц груза
Табл. 3.5. Опорный план методом наименьшей стоимости:
Потребители
B1
Поставщики
B2
A1
19
A2
40
A3
15
25
B4
30
21
220
32
20
150
12
170
21
41
27
22
0
0
60
41
28
200
90
0
0
0
10
200
Запасы
(объемы
отправления)
B5
50
A4
Потребность
B3
220
170
210
200
450
290
10
150
Целевая функция F=17950
В диагональном методе не учитываются величины тарифов, в методе же
наименьшей стоимости эти величины учитываются, и часто последний метод
приводит к плану с меньшими общими затратами (что и имеет место в нашем
примере), хотя это и необязательно.
Метод Фогеля. Метод состоит в следующем. Просматриваются все строки
и столбцы матрицы тарифов, вычисляется разность между двумя наименьшими
элементами в строке и в столбце. Затем из всех этих разностей выбирается
строка или столбец с максимальной разностью. В выбранной строке или
столбце, как и в методе минимального элемента, заполняется клетка с
наименьшим значением тарифа. Затем обнулявшаяся строка или столбец
исключаются из рассмотрения и весь процесс повторяется до полного
исчерпания запаса товаров на складах.
Пример построения опорного плана методом Фогеля
Временно исключаем из рассмотрения клетки фиктивного поставщика.
Этап 1.
Определим разности между двумя наименьшими тарифами в каждой строке и
каждом столбце.
Строка 1: c1,1 - c1,5 = 1
Строка 2: c2,3 - c2,2 = 9
Строка 3: c3,1 - c3,5 = 7
Строка 4: нет свободных клеток
Столбец 1: c3,1 - c1,1 = 4
Столбец 2: c2,2 - c1,2 = 4
Столбец 3: c2,3 - c3,3 = 16
Столбец 4: c2,4 - c3,4 = 6
Столбец 5: c1,5 - c3,5 = 2
44
Если одновременно несколько строк(столбцов) имеют одинаковую разницу двух
минимальных тарифов, то выберем строку(столбец), содержащую клетку с
наименьшим тарифом сi,j
Максимальная разница двух минимальных тарифов в строке находится в строке 2.
Максимальная разница двух минимальных тарифов в столбце находится в столбце 3.
Заполняем клетку (2,3), имеющую минимальный тариф.
Этап 2.
Определим разности между двумя наименьшими тарифами в каждой строке и
каждом столбце.
Строка 1: c1,1 - c1,5 = 1
Строка 2: c2,2 - c2,4 = 0
Строка 3: c3,1 - c3,5 = 7
Строка 4: нет свободных клеток
Столбец 1: c3,1 - c1,1 = 4
Столбец 2: c2,2 - c1,2 = 4
Столбец 3: нет свободных клеток
Столбец 4: c2,4 - c3,4 = 6
Столбец 5: c1,5 - c3,5 = 2
Если одновременно несколько строк(столбцов) имеют одинаковую разницу двух
минимальных тарифов, то выберем строку(столбец), содержащую клетку с
наименьшим тарифом сi,j
Максимальная разница двух минимальных тарифов в строке находится в строке 3.
Максимальная разница двух минимальных тарифов в столбце находится в столбце 4.
Заполняем клетку (3,1), имеющую минимальный тариф.
Этап 3.
Определим разности между двумя наименьшими тарифами в каждой строке и
каждом столбце.
Строка 1: c1,5 - c1,2 = 5
Строка 2: c2,2 - c2,4 = 0
Строка 3: c3,5 - c3,4 = 5
Строка 4: нет свободных клеток
Столбец 1: нет свободных клеток
Столбец 2: c2,2 - c1,2 = 4
Столбец 3: нет свободных клеток
Столбец 4: c2,4 - c3,4 = 6
Столбец 5: c1,5 - c3,5 = 2
Если одновременно несколько строк(столбцов) имют одинаковую разницу двух
минимальных тарифов, то выберем строку(столбец), содержащую клетку с
наименьшим тарифом сi,j
Максимальная разница двух минимальных тарифов в строке находится в строке 1.
Максимальная разница двух минимальных тарифов в столбце находится в столбце 4.
Заполняем клетку (2,4), имеющую минимальный тариф.
Этап 4.
Определим разности между двумя наименьшими тарифами в каждой строке и
каждом столбце.
Строка 1: c1,5 - c1,2 = 5
Строка 2: c2,2 - c2,5 = 20
Строка 3: c3,5 - c3,2 = 19
Строка 4: нет свободных клеток
Столбец 1: нет свободных клеток
Столбец 2: c2,2 - c1,2 = 4
Столбец 3: нет свободных клеток
45
Столбец 4: нет свободных клеток
Столбец 5: c1,5 - c3,5 = 2
Если одновременно несколько строк(столбцов) имют одинаковую разницу двух
минимальных тарифов, то выберем строку(столбец), содержащую клетку с
наименьшим тарифом сi,j
Максимальная разница двух минимальных тарифов в строке находится в строке 2.
Максимальная разница двух минимальных тарифов в столбце находится в столбце 2.
Заполняем клетку (2,2), имеющую минимальный тариф.
Этап 5.
Определим разности между двумя наименьшими тарифами в каждой строке и
каждом столбце.
Строка 1: c1,5 - c1,2 = 5
Строка 2: нет свободных клеток
Строка 3: c3,5 - c3,2 = 19
Строка 4: нет свободных клеток
Столбец 1: нет свободных клеток
Столбец 2: c1,2 - c3,2 = 16
Столбец 3: нет свободных клеток
Столбец 4: нет свободных клеток
Столбец 5: c1,5 - c3,5 = 2
Если одновременно несколько строк(столбцов) имют одинаковую разницу двух
минимальных тарифов, то выберем строку(столбец), содержащую клетку с
наименьшим тарифом сi,j
Максимальная разница двух минимальных тарифов в строке находится в строке 3.
Максимальная разница двух минимальных тарифов в столбце находится в столбце 2.
Заполняем клетку (3,5), имеющую минимальный тариф.
Этап 6.
Определим разности между двумя наименьшими тарифами в каждой строке и
каждом столбце.
Строка 1: c1,5 - c1,2 = 5
Строка 2: нет свободных клеток
Строка 3: нет свободных клеток
Строка 4: нет свободных клеток
Столбец 1: нет свободных клеток
Столбец 2: c1,2 - c1,2 = 0
Столбец 3: нет свободных клеток
Столбец 4: нет свободных клеток
Столбец 5: c1,5 - c1,5 = 0
Если одновременно несколько строк(столбцов) имют одинаковую разницу двух
минимальных тарифов, то выберем строку(столбец), содержащую клетку с
наименьшим тарифом сi,j
Максимальная разница двух минимальных тарифов в строке находится в строке 1.
Максимальная разница двух минимальных тарифов в столбце находится в столбце 5.
Заполняем клетку (1,5), имеющую минимальный тариф.
Этап 7.
Определим разности между двумя наименьшими тарифами в каждой строке и
каждом столбце.
Строка 1: c1,2 - c1,2 = 0
Строка 2: нет свободных клеток
Строка 3: нет свободных клеток
Строка 4: нет свободных клеток
Столбец 1: нет свободных клеток
46
Столбец 2: c1,2 - c1,2 = 0
Столбец 3: нет свободных клеток
Столбец 4: нет свободных клеток
Столбец 5: нет свободных клеток
Если одновременно несколько строк(столбцов) имют одинаковую разницу двух
минимальных тарифов, то выберем строку(столбец), содержащую клетку с
наименьшим тарифом сi,j
Максимальная разница двух минимальных тарифов в строке находится в строке 1.
Максимальная разница двух минимальных тарифов в столбце находится в столбце 2.
Заполняем клетку (1,2), имеющую минимальный тариф.
Этап 8.
Определим разности между двумя наименьшими тарифами в каждой строке и
каждом столбце.
Строка 1: нет свободных клеток
Строка 2: нет свободных клеток
Строка 3: нет свободных клеток
Строка 4: нет свободных клеток
Столбец 1: нет свободных клеток
Столбец 2: нет свободных клеток
Столбец 3: нет свободных клеток
Столбец 4: нет свободных клеток
Столбец 5: нет свободных клеток
Теперь распределим фиктивный груз между потребителями и фиктивным
поставщиком A4
Поместим в клетку (4,2) 10 единиц груза
Табл. 3.6. Опорный план методом Фогеля:
Потребители
B1
Поставщики
B2
A1
19
A2
40
A3
15
25
B4
32
30
20
60
21
70
12
170
21
41
27
22
210
41
28
200
90
0
0
0
0
0
10
200
Запасы
(объемы
отправления)
B5
140
A4
Потребность
B3
220
170
210
200
450
290
10
150
Целевая функция F=17600
Метод двойного предпочтения
Алгоритм метода двойного предпочтения:
1) В каждом столбце отмечают галочкой клетку с наименьшей стоимостью
и в каждой строке отмечают галочкой клетку с наименьшей
стоимостью;
47
2) В клетки с двумя галочками записывают максимально возможные
объемы перевозок, каждый раз, исключая соответствующий столбец
или строку;
3) Распределяют перевозки по клеткам с одной галочкой;
4) В оставшейся части таблицы перевозки распределяют в клетки с
наименьшей стоимостью.
5) Когда план построен, рассчитываются транспортные расходы.
Этот метод требует интенсивных операции обмена с памятью, поэтому
более громоздок по сравнению с остальными и требует больших
вычислительных ресурсов.
Пример построения опорного плана методом двойного предпочтения
Находим опорный план методом двойного предпочтения:
Временно исключаем из рассмотрения клетки фиктивного поставщика.
Находим клетки с минимальным тарифом в каждой строке и столбце:
Строка 1: клетка (1,1)*, c1,1*=19
Строка 2: клетка (2,3)*, c2,3*=12
Строка 3: клетка (3,1)*, c3,1*=15
Строка 4: нет свободных клеток
Столбец 1: клетка (3,1)*, c3,1*=15
Столбец 2: клетка (2,2)*, c2,2*=21
Столбец 3: клетка (2,3)*, c2,3*=12
Столбец 4: клетка (2,4)*, c2,4*=21
Столбец 5: клетка (1,5)*, c1,5*=20
Строка 2 и столбец 3 содержат одну и ту же клетку с наименьшим тарифом: (2,3)**.
Помещаем в нее меньшее из чисел 450 и 170.
Строка 3 и столбец 1 содержат одну и ту же клетку с наименьшим тарифом: (3,1)**.
Помещаем в нее меньшее из чисел 290 и 200.
Теперь заполним клетки, помеченные символом «*», начиная с клеток, имеющих
наименьший тариф.
Поместим в клетку (1,1)* меньшее из чисел 200 и 0.
Поместим в клетку (1,5)* меньшее из чисел 200 и 150.
Поместим в клетку (2,2)* меньшее из чисел 280 и 220.
Поместим в клетку (2,4)* меньшее из чисел 60 и 210.
Теперь заполним все оставшиеся клетки.
Помещаем в клетку (3,4) меньшее из чисел 90 и 150.
Помещаем в клетку (1,4) меньшее из чисел 50 и 60.
Теперь распределим фиктивный груз между потребителями и фиктивным
поставщиком A5. Поместим в клетку (4,4) 10 единиц груза
48
Табл. 3.7. Опорный план методом двойного предпочтения:
Потребители
B1
Поставщики
B2
A1
19
A2
40
A3
15
25
B4
30
220
170
20
32
150
12
21
21
41
27
22
0
0
60
41
28
200
90
0
0
0
10
200
Запасы
(объемы
отправления)
B5
50
A4
Потребность
B3
220
170
210
200
450
290
10
150
Целевая функция F=17950
3.2.2 Методы нахождения оптимального решения
В данном разделе рассмотрим два метода нахождения оптимального
решения транспортной задачи:
1) распределительный метод;
2) метод потенциалов.
Распределительный метод
Циклом называется такая последовательность клеток таблицы
транспортной задачи, в которой две и только две соседние клетки расположены
в одной строке или столбце, причем первая и последняя клетки также находятся
в одной строке или столбце.
Цикл изображают в таблице транспортной задачи в виде замкнутой
ломаной линии. В любой клетке цикла происходит поворот звена ломаной
линии на 900.
Существует несколько вариантов цикла:
Рис. 3.1. Виды циклов
Нетрудно убедиться, что каждый цикл имеет чётное число вершин и
значит, чётное число звеньев (стрелок). Условимся отмечать знаком + те
вершины цикла, в которых перевозки необходимо увеличить, а знаком –, те
вершины, в которых перевозки необходимо уменьшить. Цикл с отмеченными
вершинами будем называть означенным. Перенести какое-то количество
единиц груза по означенному циклу, это значит увеличить перевозки, стоящие
49
в положительных вершинах цикла, на это количество единиц, а перевозки,
стоящие в отрицательных вершинах уменьшить на то же количество. Очевидно,
при переносе любого числа единиц по циклу равновесие между запасами и
заявками не меняется: по прежнему сумма перевозок в каждой строке равна
запасам этой строки, а сумма перевозок в каждом столбце - заявке этого
столбца. Таким образом, при любом циклическом переносе, оставляющем
перевозки неотрицательными допустимый план остаётся допустимым.
Стоимость же плана при этом может меняться: увеличиваться или уменьшатся.
Назовём ценой цикла увеличение стоимости перевозок при перемещении
одной единицы груза по означенному циклу.
Очевидно, цена цикла равна алгебраической сумме стоимостей, стоящих в
вершинах цикла, причём стоящие в положительных вершинах берутся со
знаком +, а в отрицательных со знаком –. Обозначим цену цикла через γ. При
перемещении одной единицы груза по циклу стоимость перевозок
увеличивается на величину γ. При перемещении по нему k единиц груза
стоимость перевозок увеличиться на kγ. Очевидно, для улучшения плана имеет
смысл перемещать перевозки только по тем циклам, цена которых
отрицательна. Каждый раз, когда нам удаётся совершить такое перемещение,
стоимость плана уменьшается на соответствующую величину kγ. Так как
перевозки не могут быть отрицательными, мы будем пользоваться только
такими циклами, отрицательные вершины которых лежат в базисных клетках
таблицы, где стоят положительные перевозки. Если циклов с отрицательной
ценой в таблице больше не осталось, это означает, что дальнейшее улучшение
плана невозможно, то есть оптимальный план достигнут.
Метод последовательного улучшения плана перевозок и состоит в том, что
в таблице отыскиваются циклы с отрицательной ценой, по ним перемещаются
перевозки, и план улучшается до тех пор, пока циклов с отрицательной ценой
уже не останется. При улучшении плана циклическими переносами, как
правило, пользуются приёмом, заимствованным из симплекс-метода: при
каждом шаге (цикле) заменяют одну свободную переменную на базисную, то
есть заполняют одну свободную клетку и взамен того освобождают одну из
базисных клеток. При этом общее число базисных клеток остаётся неизменным
и равным m + n - 1 . Этот метод удобен тем, что для него легче находить
подходящие циклы.
Можно доказать, что для любой свободной клетке транспортной таблице
всегда существует цикл и притом единственный, одна из вершин которого
лежит в этой свободной клетке, а все остальные в базисных клетках. Если цена
такого цикла, с плюсом в свободной клетке, отрицательна, то план можно
улучшить перемещением перевозок по данному циклу. Количество единиц
груза k, которое можно переместить, определяется минимальным значением
50
перевозок, стоящих в отрицательных вершинах цикла (если переместить
большее число единиц груза, возникнут отрицательные перевозки).
Применённый выше метод отыскания оптимального решения
транспортной задачи называется распределённым; он состоит в
непосредственном отыскании свободных клеток с отрицательной ценой цикла и
в перемещении перевозок по этому циклу.
Распределительный метод решения транспортной задачи обладает одним
недостатком: нужно отыскивать циклы для всех свободных клеток и находить
их цены. От этой трудоёмкой работы нас избавляет специальный метод
решения транспортной задачи, который называется методом потенциалов.
Рассмотрим пример решения задачи распределительным методом
(опорный план получен методом северо-западного угла).
Примем некоторые обозначения: i - индекс строки; j - индекс столбца; m количество поставщиков; n - количество потребителей.
Этап 1
Опорный план является вырожденным, так как число занятых клеток меньше, чем
m+n-1=9. Сделаем его невырожденным, поместив базисные нули в клетки с
координатами (i,j): (4,1)
Табл. 3.8. Опорный невырожденный план
Потребители
B1
Поставщики
B2
B3
B4
Запасы
(объемы
отправления)
B5
19
25
30
32
20
A2
40
21
12
21
41
A3
15
27
22
A4
0
A1
Потребность
200
220
170
60
41
28
150
0
0
140
0
0
0
10
200
220
170
210
200
450
290
10
150
Определим значения оценок Si,j для всех свободных клеток.
Для этого строим цикл для каждой свободной клетки и, перемещаясь по клеткам
цикла, складываем тарифы клеток. При этом тарифы в нечетных клетках берутся со
знаком «плюс», в четных - со знаком «минус».
S1,2 = c1,2-c1,1+c4,1-c4,5+c3,5-c3,4+c2,4-c2,2 = 1.
S1,3 = c1,3-c1,1+c4,1-c4,5+c3,5-c3,4+c2,4-c2,3 = 15.
S1,4 = c1,4-c1,1+c4,1-c4,5+c3,5-c3,4 = 8.
S1,5 = c1,5-c1,1+c4,1-c4,5 = 1.
S2,1 = c2,1-c2,4+c3,4-c3,5+c4,5-c4,1 = 24.
S2,5 = c2,5-c2,4+c3,4-c3,5 = 25.
S3,1 = c3,1-c3,5+c4,5-c4,1 = -7.
S3,2 = c3,2-c3,4+c2,4-c2,2 = 14.
S3,3 = c3,3-c3,4+c2,4-c2,3 = 10.
51
S4,2 = c4,2-c4,5+c3,5-c3,4+c2,4-c2,2 = -5.
S4,3 = c4,3-c4,5+c3,5-c3,4+c2,4-c2,3 = 4.
S4,4 = c4,4-c4,5+c3,5-c3,4 = -5.
Если имеется несколько клеток с одним и тем же наименьшим значением оценки, то
из них выбирается клетка, имеющая наименьший тариф. Наиболее перспективной
является клетка (3,1). Для нее оценка равна -7.
Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.9. Этап 1
Потребители
B1
Поставщики
A1
B4
Запасы
(объемы
отправления)
B5
19
25
30
32
20
40
21
12
21
41
220
A3
Потребность
B3
200
A2
A4
B2
170
+
15
41
–
0
0
0
200
220
60
–
22
150
140
0
0
+
0
10
170
210
150
28
27
200
450
290
10
Перемещаем по циклу груз величиной в 0 единиц, прибавляя эту величину к грузу в
клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус».
В результате перемещения по циклу получим новый план:
Табл. 3.10. Результат этапа 1
Потребители
B1
Поставщики
A1
B2
19
B3
25
B4
30
Запасы
(объемы
отправления)
B5
32
20
21
41
200
A2
40
A3
15
A4
0
21
220
12
170
60
41
28
27
150
Потребность
200
220
Целевая функция F= 18850
0
0
22
140
0
0
10
170
210
200
450
290
10
150
Этап 2
Определим значения оценок Si,j для всех свободных клеток.
Для этого строим цикл для каждой свободной клетки и, перемещаясь по клеткам
цикла, складываем тарифы клеток. При этом тарифы в нечетных клетках берутся со
знаком «плюс», в четных - со знаком «минус».
S1,2 = c1,2-c1,1+c3,1-c3,4+c2,4-c2,2 = -6.
S1,3 = c1,3-c1,1+c3,1-c3,4+c2,4-c2,3 = 8.
S1,4 = c1,4-c1,1+c3,1-c3,4 = 1.
S1,5 = c1,5-c1,1+c3,1-c3,5 = -6.
52
S2,1 = c2,1-c2,4+c3,4-c3,1 = 31.
S2,5 = c2,5-c2,4+c3,4-c3,5 = 25.
S3,2 = c3,2-c3,4+c2,4-c2,2 = 14.
S3,3 = c3,3-c3,4+c2,4-c2,3 = 10.
S4,1 = c4,1-c4,5+c3,5-c3,1 = 7.
S4,2 = c4,2-c4,5+c3,5-c3,4+c2,4-c2,2 = -5.
S4,3 = c4,3-c4,5+c3,5-c3,4+c2,4-c2,3 = 4.
S4,4 = c4,4-c4,5+c3,5-c3,4 = -5.
Если имеется несколько клеток с одним и тем же наименьшим значением оценки, то
из них выбирается клетка, имеющая наименьший тариф. Наиболее перспективной
является клетка (1,5). Для нее оценка равна -6.
Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.11. Этап 2
Потребители
B1
Поставщики
A1
–
200
A2
A3
B2
B3
B5
19
25
30
32
40
21
12
21
220
+
B4
170
15
41
28
27
150
0
+
20
41
60
0
A4
Запасы
(объемы
отправления)
0
0
–
140
22
0
0
10
Потребность
200
220
170
210
200
450
290
10
150
Перемещаем по циклу груз величиной в 140 единиц, прибавляя эту величину к грузу
в клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус».
В результате перемещения по циклу получим новый план:
Табл. 3.12. Результат этапа 2
Потребители
B1
Поставщики
A1
19
25
B4
30
B5
32
20
140
40
21
220
15
12
170
21
41
27
22
60
28
41
140
150
0
0
A4
Потребность
B3
60
A2
A3
B2
Запасы
(объемы
отправления)
0
0
0
10
200
220
170
210
200
450
290
10
150
Целевая функция F= 18010
Значение целевой функции изменилось на 840 единиц по сравнению с предыдущим
этапом.
53
Этап 3
Определим значения оценок Si,j для всех свободных клеток.
Для этого строим цикл для каждой свободной клетки и, перемещаясь по клеткам
цикла, складываем тарифы клеток. При этом тарифы в нечетных клетках берутся со
знаком «плюс», в четных - со знаком «минус».
S1,2 = c1,2-c1,1+c3,1-c3,4+c2,4-c2,2 = -6.
S1,3 = c1,3-c1,1+c3,1-c3,4+c2,4-c2,3 = 8.
S1,4 = c1,4-c1,1+c3,1-c3,4 = 1.
S2,1 = c2,1-c2,4+c3,4-c3,1 = 31.
S2,5 = c2,5-c2,4+c3,4-c3,1+c1,1-c1,5 = 31.
S3,2 = c3,2-c3,4+c2,4-c2,2 = 14.
S3,3 = c3,3-c3,4+c2,4-c2,3 = 10.
S3,5 = c3,5-c3,1+c1,1-c1,5 = 6.
S4,1 = c4,1-c4,5+c1,5-c1,1 = 1.
S4,2 = c4,2-c4,5+c1,5-c1,1+c3,1-c3,4+c2,4-c2,2 = -11.
S4,3 = c4,3-c4,5+c1,5-c1,1+c3,1-c3,4+c2,4-c2,3 = -2.
S4,4 = c4,4-c4,5+c1,5-c1,1+c3,1-c3,4 = -11.
Наиболее перспективной является клетка (4,2). Для нее оценка равна -11.
Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.13. Этап 3
Потребители
B1
Поставщики
A1
–
60
19
40
A2
A3
B2
+
140
–
220
0
B5
30
32
21
12
21
41
27
22
+
60
28 –
150
0
41
+
B4
25
170
15
A4
B3
Запасы
(объемы
отправления)
0
0
+
140
20
–
10
0
200
450
290
10
Потребность
200
220
170
210
150
Перемещаем по циклу груз величиной в 10 единиц, прибавляя эту величину к грузу в
клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус».
В результате перемещения по циклу получим новый план
Табл. 3.14. Результат этапа 3
Потребители
B1
Поставщики
A1
B2
19
25
B4
30
Запасы
(объемы
отправления)
B5
32
50
20
150
A2
40
A3
15
21
210
12
170
21
41
27
22
0
0
70
41
28
150
140
0
A4
Потребность
B3
0
0
10
200
220
170
54
210
150
200
450
290
10
Целевая функция F= 17900
Значение целевой функции изменилось на 110 единиц по сравнению с предыдущим
этапом.
Этап 4
Определим значения оценок Si,j для всех свободных клеток.
Для этого строим цикл для каждой свободной клетки и, перемещаясь по клеткам
цикла, складываем тарифы клеток. При этом тарифы в нечетных клетках берутся со
знаком «плюс», в четных - со знаком «минус».
S1,2 = c1,2-c1,1+c3,1-c3,4+c2,4-c2,2 = -6.
S1,3 = c1,3-c1,1+c3,1-c3,4+c2,4-c2,3 = 8.
S1,4 = c1,4-c1,1+c3,1-c3,4 = 1.
S2,1 = c2,1-c2,4+c3,4-c3,1 = 31.
S2,5 = c2,5-c2,4+c3,4-c3,1+c1,1-c1,5 = 31.
S3,2 = c3,2-c3,4+c2,4-c2,2 = 14.
S3,3 = c3,3-c3,4+c2,4-c2,3 = 10.
S3,5 = c3,5-c3,1+c1,1-c1,5 = 6.
S4,1 = c4,1-c4,2+c2,2-c2,4+c3,4-c3,1 = 12.
S4,3 = c4,3-c4,2+c2,2-c2,3 = 9.
S4,4 = c4,4-c4,2+c2,2-c2,4 = 0.
S4,5 = c4,5-c4,2+c2,2-c2,4+c3,4-c3,1+c1,1-c1,5 = 11.
Наиболее перспективной является клетка (1,2). Для нее оценка равна -6.
Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.15. Этап 4
Потребители
B1
Поставщики
A1
–
50
19
40
+
150
A4
Потребность
+
B3
25
B4
30
B5
32
20
150
A2
A3
B2
Запасы
(объемы
отправления)
–
210
21
12
+
70
28 –
140
0
170
15
41
0
0
21
41
27
22
0
0
10
200
220
170
210
200
450
290
10
150
Перемещаем по циклу груз величиной в 50 единиц, прибавляя эту величину к грузу в
клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус».
В результате перемещения по циклу получим новый план.
55
Табл. 3.16. Результат этапа 4
Потребители
B1
Поставщики
B2
A1
19
A2
40
A3
15
B4
30
25
Запасы
(объемы
отправления)
B5
32
50
20
150
12
21
160
170
21
41
27
22
0
0
120
41
28
200
90
0
A4
Потребность
B3
0
0
10
200
220
170
210
200
450
290
10
150
Целевая функция F= 17600
Значение целевой функции изменилось на 300 единиц по сравнению с предыдущим
этапом.
Этап 5
Определим значения оценок Si,j для всех свободных клеток.
Для этого строим цикл для каждой свободной клетки и, перемещаясь по клеткам
цикла, складываем тарифы клеток. При этом тарифы в нечетных клетках берутся со
знаком «плюс», в четных - со знаком «минус».
S1,1 = c1,1-c1,2+c2,2-c2,4+c3,4-c3,1 = 6.
S1,3 = c1,3-c1,2+c2,2-c2,3 = 14.
S1,4 = c1,4-c1,2+c2,2-c2,4 = 7.
S2,1 = c2,1-c2,4+c3,4-c3,1 = 31.
S2,5 = c2,5-c2,2+c1,2-c1,5 = 25.
S3,2 = c3,2-c3,4+c2,4-c2,2 = 14.
S3,3 = c3,3-c3,4+c2,4-c2,3 = 10.
S3,5 = c3,5-c3,4+c2,4-c2,2+c1,2-c1,5 = 0.
S4,1 = c4,1-c4,2+c2,2-c2,4+c3,4-c3,1 = 12.
S4,3 = c4,3-c4,2+c2,2-c2,3 = 9.
S4,4 = c4,4-c4,2+c2,2-c2,4 = 0.
S4,5 = c4,5-c4,2+c1,2-c1,5 = 5.
Так как все оценки Si,j>=0, то полученный план является оптимальным.
Транспортная задача решена.
56
Табл. 3.17. Решенная транспортная задача
Потребители
B1
Поставщики
B2
A1
19
A2
40
A3
15
B4
30
25
32
20
150
12
21
160
170
21
41
27
22
0
0
120
41
28
200
90
0
0
0
10
200
Запасы
(объемы
отправления)
B5
50
A4
Потребность
B3
220
170
210
200
450
290
10
150
Целевая функция F= 17600
10 единиц груза потребителю B2 не поставлено.
Метод потенциалов
Наиболее распространенным методом решения транспортных задач
является метод потенциалов. Впервые он был предложен в 1949г. Л. В.
Канторовичем и М. К. Гавуриным. Позже на базе общих идей линейного
программирования аналогичный метод был предложен Дж. Данцигом.
Решение задачи методом потенциалов включает следующие этапы:
1)
Проверяют выполнение необходимого и достаточного условия
разрешимости задачи. Если задача имеет неправильный баланс, то вводят
фиктивного поставщика или потребителя с недостающими запасами или
запросами и нулевыми стоимостями перевозок.
2)
Строят начальное опорное решение (методом минимальной
стоимости или каким-либо другим методом) и проверяют правильность его
построения, для чего подсчитывают количество занятых клеток (их должно
быть m+n-1) и убеждаются в линейной независимости векторов-условий
(методом вычеркивания).
3)
Строят систему потенциалов, соответствующих опорному
решению. Для этого решают систему уравнений u i + v j = c ij при x ij > 0 . Для
того чтобы найти частное решение системы, одному из потенциалов (обычно
тому, которому соответствует большее число занятых клеток) задают
произвольно некоторое значение (чаще нуль). Остальные потенциалы
однозначно определяются по формулам u i = c ij − v j при x ij > 0 .
4)
Проверяют, выполняется ли условие оптимальности для свободных
клеток таблицы. Для этого вычисляют оценки для всех свободных клеток по
формулам ∆ lk = ui + v j − cij и те оценки, которые больше нуля, записывают в
левые нижние углы клеток. Если для всех свободных клеток ∆ lk ≤ 0 , то
вычисляют значение целевой функции, и решение задачи заканчивается, так как
57
полученное решение является оптимальным. Если же имеется хотя бы одна
клетка с положительной оценкой, то опорное решение не является
оптимальным.
5)
Переходят к новому опорному решению, на котором значение
целевой функции будет меньше. Для этого находят клетку таблицы задачи,
которой соответствует наибольшая положительная оценка max{∆ ij } = ∆ lk .
Строят цикл, включающий в свой состав данную клетку и часть клеток,
занятых опорным решением. В клетках цикла расставляют поочередно знаки
«+» и «-», начиная с «+» в клетке с наибольшей положительной оценкой.
Осуществляют сдвиг (перераспределение груза) по циклу на величину
θ = min {xij }. Клетка со знаком «-», в которой достигается min {xij } , остается
<< − >>
<< − >>
пустой. Если минимум достигается в нескольких клетках, то одна из них
остается пустой, а в остальных проставляют базисные нули, чтобы число
занятых клеток оставалось равным m+n-1. Далее возвращаемся к пункту 3
алгоритма.
Рассмотрим пример решения задачи методом потенциалов (опорный план
получен методом северо-западного угла).
Примем некоторые обозначения: i - индекс строки; j - индекс столбца; m количество поставщиков; n - количество потребителей.
Этап 1
Опорный план является вырожденным, так как число занятых клеток меньше, чем
m+n-1=9.
Сделаем его невырожденным, поместив базисные нули в клетки с координатами
(i,j): (4,1)
Табл. 3.18. Опорный невырожденный план
Потребители
B1
Поставщики
B2
B3
B4
Запасы
(объемы
отправления)
B5
19
25
30
32
20
A2
40
21
12
21
41
A3
15
27
22
A4
0
A1
Потребность
200
220
170
60
41
28
150
0
0
140
0
0
0
10
200
220
170
210
200
450
290
10
150
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения
Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
58
V1=C1,1-U1= 19
U4=C4,1-V1=-19
V5=C4,5-U4= 19
U3=C3,5-V5=3
V4=C3,4-U3= 24
U2=C2,4-V4=-3
V2=C2,2-U2= 24
V3=C2,3-U2= 15
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,2 = c1,2 - (u1 + v2) = 1.
S1,3 = c1,3 - (u1 + v3) = 15.
S1,4 = c1,4 - (u1 + v4) = 8.
S1,5 = c1,5 - (u1 + v5) = 1.
S2,1 = c2,1 - (u2 + v1) = 24.
S2,5 = c2,5 - (u2 + v5) = 25.
S3,1 = c3,1 - (u3 + v1) = -7.
S3,2 = c3,2 - (u3 + v2) = 14.
S3,3 = c3,3 - (u3 + v3) = 10.
S4,2 = c4,2 - (u4 + v2) = -5.
S4,3 = c4,3 - (u4 + v3) = 4.
S4,4 = c4,4 - (u4 + v4) = -5.
Если имеется несколько клеток с одним и тем же наименьшим значением оценки, то
из них выбирается клетка, имеющая наименьший тариф. Наиболее потенциальной
является клетка (3,1). Для нее оценка равна -7.
Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.19. Этап 1
Потребители
B1
Поставщики
A1
B4
Запасы
(объемы
отправления)
B5
19
25
30
32
20
40
21
12
21
41
220
A3
Потребность
B3
200
A2
A4
B2
170
+
15
41
–
0
0
0
200
220
60
28
27
–
22
150
140
0
0
+
0
10
170
210
150
200
450
290
10
Перемещаем по циклу груз величиной в 0 единиц, прибавляя эту величину к грузу в
клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус».
В результате перемещения по циклу получим новый план
59
Табл. 3.20. Результат этапа 1
Потребители
B1
Поставщики
B2
B3
B4
Запасы
(объемы
отправления)
B5
19
25
30
32
20
A2
40
21
12
21
41
A3
15
27
22
A4
0
A1
Потребность
200
220
170
60
41
28
150
0
0
140
0
0
10
200
220
170
210
200
450
290
10
150
Целевая функция F= 18850
Этап 2
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения
Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
V1=C1,1-U1= 19
U3=C3,1-V1=-4
V4=C3,4-U3= 31
V5=C3,5-U3= 26
U4=C4,5-V5=-26
U2=C2,4-V4=-10
V2=C2,2-U2= 31
V3=C2,3-U2= 22
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,2 = c1,2 - (u1 + v2) = -6.
S1,3 = c1,3 - (u1 + v3) = 8.
S1,4 = c1,4 - (u1 + v4) = 1.
S1,5 = c1,5 - (u1 + v5) = -6.
S2,1 = c2,1 - (u2 + v1) = 31.
S2,5 = c2,5 - (u2 + v5) = 25.
S3,2 = c3,2 - (u3 + v2) = 14.
S3,3 = c3,3 - (u3 + v3) = 10.
S4,1 = c4,1 - (u4 + v1) = 7.
S4,2 = c4,2 - (u4 + v2) = -5.
S4,3 = c4,3 - (u4 + v3) = 4.
S4,4 = c4,4 - (u4 + v4) = -5.
Если имеется несколько клеток с одним и тем же наименьшим значением оценки, то
из них выбирается клетка, имеющая наименьший тариф. Наиболее потенциальной
является клетка (1,5). Для нее оценка равна -6.
Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
60
Табл. 3.21. Этап 2
Потребители
B1
Поставщики
A1
–
200
19
B3
25
40
A2
A3
B2
+
30
21
220
B4
15
32
12
170
41
20
21
28
0
0
+
41
60
27
150
A4
Запасы
(объемы
отправления)
B5
0
0
–
140
22
0
0
10
Потребность
200
220
170
210
200
450
290
10
150
Перемещаем по циклу груз величиной в 140 единиц, прибавляя эту величину к грузу
в клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус».
В результате перемещения по циклу получим новый план.
Табл. 3.22. Результат этапа 2
Потребители
B1
Поставщики
A1
19
25
B4
30
Запасы
(объемы
отправления)
B5
32
20
140
40
21
220
15
12
170
21
41
27
22
60
41
28
140
150
0
A4
Потребность
B3
60
A2
A3
B2
0
0
0
0
10
200
220
170
210
200
450
290
10
150
Целевая функция F= 18010
Значение целевой функции изменилось на 840 единиц по сравнению с предыдущим
этапом.
Этап 3
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения
Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
V1=C1,1-U1= 19
V5=C1,5-U1= 20
U3=C3,1-V1=-4
V4=C3,4-U3= 31
U4=C4,5-V5=-20
U2=C2,4-V4=-10
V2=C2,2-U2= 31
V3=C2,3-U2= 22
61
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,2 = c1,2 - (u1 + v2) = -6.
S1,3 = c1,3 - (u1 + v3) = 8.
S1,4 = c1,4 - (u1 + v4) = 1.
S2,1 = c2,1 - (u2 + v1) = 31.
S2,5 = c2,5 - (u2 + v5) = 31.
S3,2 = c3,2 - (u3 + v2) = 14.
S3,3 = c3,3 - (u3 + v3) = 10.
S3,5 = c3,5 - (u3 + v5) = 6.
S4,1 = c4,1 - (u4 + v1) = 1.
S4,2 = c4,2 - (u4 + v2) = -11.
S4,3 = c4,3 - (u4 + v3) = -2.
S4,4 = c4,4 - (u4 + v4) = -11.
Наиболее перспективной является клетка (4,2). Для нее оценка равна -11.
Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.23. Этап 3
Потребители
B1
Поставщики
A1
–
60
19
40
A2
A3
B2
+
140
0
Потребность
25
–
220
21
41
+
200
0
220
B4
Запасы
(объемы
отправления)
B5
30
32
12
21
41
27
22
+
60
28 –
150
0
170
15
A4
B3
170
0
210
+
140
20
–
10
0
200
450
290
10
150
Перемещаем по циклу груз величиной в 10 единиц, прибавляя эту величину к грузу в
клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус».
В результате перемещения по циклу получим новый план
Табл. 3.24. Результат этапа 3
Потребители
B1
Поставщики
A1
19
25
B4
30
B5
32
20
150
40
21
210
15
12
170
21
41
27
22
0
0
70
41
28
150
140
0
A4
Потребность
B3
50
A2
A3
B2
Запасы
(объемы
отправления)
0
0
10
200
220
170
Целевая функция F= 17900
62
210
150
200
450
290
10
Значение целевой функции изменилось на 110 единиц по сравнению с предыдущим
этапом.
Этап 4
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения
Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
V1=C1,1-U1= 19
V5=C1,5-U1= 20
U3=C3,1-V1=-4
V4=C3,4-U3= 31
U2=C2,4-V4=-10
V2=C2,2-U2= 31
V3=C2,3-U2= 22
U4=C4,2-V2=-31
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,2 = c1,2 - (u1 + v2) = -6.
S1,3 = c1,3 - (u1 + v3) = 8.
S1,4 = c1,4 - (u1 + v4) = 1.
S2,1 = c2,1 - (u2 + v1) = 31.
S2,5 = c2,5 - (u2 + v5) = 31.
S3,2 = c3,2 - (u3 + v2) = 14.
S3,3 = c3,3 - (u3 + v3) = 10.
S3,5 = c3,5 - (u3 + v5) = 6.
S4,1 = c4,1 - (u4 + v1) = 12.
S4,3 = c4,3 - (u4 + v3) = 9.
S4,4 = c4,4 - (u4 + v4) = 0.
S4,5 = c4,5 - (u4 + v5) = 11.
Наиболее перспективной является клетка (1,2). Для нее оценка равна -6.
Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.25. Этап 4
Потребители
B1
Поставщики
A1
–
50
19
40
+
150
A4
Потребность
+
B3
25
B4
30
B5
32
20
150
A2
A3
B2
Запасы
(объемы
отправления)
–
210
21
12
+
70
28 –
140
0
170
15
41
0
0
21
41
27
22
0
0
10
200
220
170
210
200
450
290
10
150
Перемещаем по циклу груз величиной в 50 единиц, прибавляя эту величину к грузу в
клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус».
В результате перемещения по циклу получим новый план.
63
Табл. 3.26. Результат этапа 4
Потребители
B1
Поставщики
B2
A1
19
A2
40
A3
B4
30
25
B5
32
50
20
150
12
21
160
15
170
21
41
27
22
0
0
120
41
28
200
90
0
A4
Потребность
B3
Запасы
(объемы
отправления)
0
0
10
200
220
170
210
200
450
290
10
150
Целевая функция F= 17600
Значение целевой функции изменилось на 300 единиц по сравнению с предыдущим
этапом.
Этап 5
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения
Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
V2=C1,2-U1= 25
V5=C1,5-U1= 20
U2=C2,2-V2=-4
V3=C2,3-U2= 16
V4=C2,4-U2= 25
U3=C3,4-V4=2
U4=C4,2-V2=-25
V1=C3,1-U3= 13
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,1 = c1,1 - (u1 + v1) = 6.
S1,3 = c1,3 - (u1 + v3) = 14.
S1,4 = c1,4 - (u1 + v4) = 7.
S2,1 = c2,1 - (u2 + v1) = 31.
S2,5 = c2,5 - (u2 + v5) = 25.
S3,2 = c3,2 - (u3 + v2) = 14.
S3,3 = c3,3 - (u3 + v3) = 10.
S3,5 = c3,5 - (u3 + v5) = 0.
S4,1 = c4,1 - (u4 + v1) = 12.
S4,3 = c4,3 - (u4 + v3) = 9.
S4,4 = c4,4 - (u4 + v4) = 0.
S4,5 = c4,5 - (u4 + v5) = 5.
Так как все оценки Si,j>=0, то полученный план является оптимальным.
Транспортная задача решена.
64
Табл. 3.27. Решенная транспортная задача
Потребители
B1
Поставщики
B2
A1
19
A2
40
A3
15
B3
B4
30
25
Запасы
(объемы
отправления)
B5
32
50
20
150
12
21
160
170
21
41
27
22
0
0
120
41
28
200
90
0
A4
0
0
10
Потребность
200
220
170
Целевая функция F= 17600
10 единиц груза потребителю B2 не поставлено
210
200
450
290
10
150
3.3 Транспортная задача в сетевой постановке
Если условия транспортной задачи заданы в виде схемы, на которой
условно изображены поставщики, потребители и связывающие их дороги,
указаны величины запасов груза и потребности в нем, а также числа c ij ,
являющиеся показателями принятого в задаче критерия оптимальности
(тарифы, расстояния и т. п.), то говорят, что транспортная задача поставлена в
сетевой форме (рис. 3.2).
2
3
I
+100
V
-20
5
1
II
-60
6
IV
-35
4
2
7
3
III
-85
VII
+30
VI
+70
3
Рис. 3.2. Транспортная задача в сетевой форме
Пункты расположения поставщиков и потребителей будем изображать
кружками и называть вершинами (узлами) сети, запасы груза будем записывать
в кружках положительными, а потребности -–отрицательными числами.
Дороги, связывающие пункты расположения и потребления груза, будем
изображать линиями и называть ребрами (дугами, звеньями) сети. На сети
могут быть изображены вершины, в которых нет ни поставщиков, ни
потребителей. Наличие таких вершин не повлияет на способ решения, если
считать, что запасы (потребности) груза в них равны нулю.
65
Различия между транспортными задачами в матричной и сетевой формах
весьма незначительны, так как методы их решения основаны на одних и тех же
идеях (метод потенциалов).
Решение задачи на сети начинается с построения начального опорного
плана. Последовательность решения задачи рассмотрена на конкретном
примере (см. рис. 3.2). Поставку груза из вершины в вершину будем обозначать
стрелками с указанием величины поставок.
Опорный план должен удовлетворять следующим требованиям:
1) все запасы должны быть распределены, а потребности удовлетворены;
2) к каждой вершине должна подходить или выходить из нее хотя бы одна
стрелка;
3) общее количество стрелок должно быть на единицу меньше числа
вершин (n + m – 1);
4) стрелки не должны образовывать замкнутый контур.
План распределения груза, отвечающий этим требованиям, представлен на
рис. 3.3.
80
2
12
10
20
13
I
+100
3
V
-20
13
20
1
II
-60
6
IV
-35
4
3
-2
ρ
5
15
VII
+30
2
7
85
III
-85
15
VI
+70
3
7
14
17
Рис. 3.3. Пример опорного план распределения груза
при решении задачи на сети
Далее следует проверить план на оптимальность. Для этого вычисляем
потенциалы. Одной из вершин (например, вершине 1) присвоим некоторое
значение потенциала (например, равное 10). Для наглядности потенциалы
будем заключать в рамки. После этого, двигаясь по стрелкам, определяем
потенциалы остальных вершин, руководствуясь правилом: если стрелка
выходит из вершины, то к потенциалу этой вершины прибавляем показатель cij
критерия оптимальности, если же направление стрелки противоположно, cij
вычитаем (см. рис. 3.3).
66
После вычисления потенциалов находят характеристики ребер без стрелок
по правилу: из большего потенциала вычитается меньший, а разность
вычитается из показателя cij , отвечающего данному ребру.
Если все ребра без стрелок имеют неотрицательные характеристики, то
составленный план является оптимальным.
Вычислим характеристики ребер без стрелок
S 5, 7 = 5 − (13 − 7) = −1 ; S 4 ,6 = 1; S 4,3 = 0 ; S 2,3 = −2
Два ребра имеют отрицательные характеристики, в этом случае
выбирается ребро с наименьшей отрицательной характеристикой и к нему
подрисовывается новая стрелка, при этом образуется замкнутый контур из
стрелок. Новая стрелка направляется от вершины с меньшим потенциалом к
вершине с большим потенциалом.
В нашем примере новая стрелка направлена от вершины II к вершине III
(штриховая линия (см. рис. 3.3).
Для определения величины поставки (ρ) для ребра S 2,3 рассматриваются
все стрелки образовавшегося замкнутого контура, имеющие направление,
противоположное новой стрелке (участок S 2,3 ), и среди них находится стрелка
с наименьшей поставкой λ (в нашем примере λ = 15 на ребре S 6, 7 ), Выбранная
таким образом величина прибавляется ко всем поставкам в стрелках, имеющих
то же направление, что и новая стрелка, и вычитается из поставок в стрелках,
имеющих противоположное направление. Поставки в стрелках, не входящих в
контур, сохраняются неизменными. Стрелка, на которой выбрано число λ,
ликвидируется и общее число стрелок остается прежним. Новый опорный план
представлен на рис. 3.4.
80
2
12
70
20
13
I
+100
3
V
-20
13
5
1
II
-60
6
4
15
5
30
IV
-35
3
ρ
VII
+30
2
7
70
III
-85
VI
+70
3
12
15
Рис. 3.4. Новый опорный план распределения груза
67
7
Полученный план исследуется на оптимальность, подобно предыдущему.
Сделав еще шаг, получим оптимальный план (рис. 3.5), когда все
характеристики S ij на участках без стрелок неотрицательны.
12
10
100
2
12
3
I
+100
13
25
1
II
-60
V
-20
6
4
15
5
10
IV
-35
3
20
VII
+30
2
7
70
III
-85
7
VI
+70
3
12
15
Рис. 3.5. Оптимальный план распределения груза
Определим значение целевой функции:
Z min = 100 ⋅ 2 + 25 ⋅ 1 + 15 ⋅ 3 + 70 ⋅ 3 + 10 ⋅ 6 + 20 ⋅ 5 = 640 .
Вырождение плана транспортной задачи в сетевой постановке проявляется
в том, что при полном использовании запасов и полном удовлетворении
потребностей количество стрелок оказывается меньше чем n + m – 1, где n –
поставщики, a m – потребители.
Для преодоления вырождения вводится нужное количество стрелок с
нулевыми поставками, направление стрелок выбирается произвольно, однако
они не должны образовывать замкнутый контур.
В случае открытой модели вводят фиктивного потребителя (поставщика)
со спросом, равным небалансу. Фиктивный потребитель (поставщик)
соединяется дугами непосредственно со всеми поставщиками (потребителями),
при этом показатели cij – ребер, соединяющих фиктивного потребителя
(поставщика) с реальными поставщиками (потребителями), следует брать
одинаковыми и сравнительно большими. Это делается для того, чтобы
исключить возможность использования фиктивной вершины в качестве
промежуточного пункта.
68
Резюме
Из материала, изложенного в данной лекции, можно сделать следующие
выводы.
− Транспортная задача является представителем класса задач линейного
программирования и поэтому обладает всеми качествами линейных
оптимизационных задач, но одновременно она имеет и ряд дополнительных
полезных свойств, которые позволили разработать специальные методы ее
решения.
− Экономико-математическая модель: имеются m пунктов отправления
груза и объемы отправления по каждому пункту a1 , a 2 ,..., a m . Известна
потребность в грузах b1 , b2 ,..., bn по каждому из n пунктов назначения.
Задана матрица стоимостей доставки по каждому варианту сij , i = 1, m ,
j = 1, n . Необходимо рассчитать оптимальный план перевозок, т.е.
определить, сколько груза должно быть отправлено из каждого i-го пункта
отправления (от поставщика) в каждый j-ый пункт назначения (до
потребителя) xij с минимальными транспортными издержками.
− Решение транспортной задачи включает два этапа: определение опорного
плана; нахождение оптимального решения, путем последовательных
операций.
− Для транспортной задачи существует несколько методов отыскания
начального плана (опорного решения): метод северо-западного угла; метод
минимальной стоимости; метод Фогеля; метод двойного предпочтения.
Существует
два
метода
нахождения
оптимального
решения
транспортной задачи: распределительный метод; метод потенциалов.
Вопросы для самоконтроля
1. Что такое «транспортная задача»?
2. Какие задачи относятся к транспортным?
3. Приведите классификацию транспортных задач.
4. Перечислите особенности транспортной задачи.
5. Приведите математическую модель транспортной задачи.
6. Приведите пример транспортной таблицы.
7. Когда транспортная задача называется закрытой? Открытой?
8. Дайте характеристику метода северо-западного угла.
9. Дайте характеристику метода минимальной стоимости.
10. Дайте характеристику метода Фогеля
11. Дайте характеристику метода двойного предпочтения.
12. Поясните алгоритм распределительного метода
13. Поясните алгоритм потенциалов.
69
4 ЦЕЛОЧИСЛЕННЫЕ МОДЕЛИ ИССЛЕДОВАНИЯ
ОПЕРАЦИЙ
4.1 Назначение методов целочисленного программирования
Целочисленное программирование ориентировано на решение задач
математического программирования, в которых все или некоторые переменные
должны принимать только целочисленные значения.
Задача
называется
полностью
целочисленной,
если
условие
целочисленности наложено на все ее переменные; когда это условие относится
лишь к некоторым переменным, задача называется частично целочисленной.
Если при этом целевая функция и функции, входящие в ограничения,
линейные, то задача является линейной целочисленной.
Несмотря на то, что к настоящему времени разработан ряд методов
решения целочисленных задач, ни один из них не обеспечивает желаемой
эффективности соответствующих вычислительных процедур, что особенно
проявляется при увеличении размерности задачи. Таким образом, в отличие от
задач линейного программирования, время решения которых относительно
невелико, реализация целочисленных алгоритмов в ряде случаев весьма
затруднительна.
Одна из основных трудностей в целочисленном программировании связана
с эффектом ошибки округления, возникающим при использовании цифровых
ЭВМ. Даже наличие алгоритмов, применимых для решения задач с
целочисленными коэффициентами и позволяющих обойтись без оперирования
дробями (и, следовательно, избежать влияния ошибок округления), не
упрощает ситуации, поскольку такие алгоритмы (в ряде случаев) сходятся
чрезвычайно медленно.
Принцип
работы
всех
методов
линейного
целочисленного
программирования следующий: сначала задача решается симплекс-методом без
учета требований целочисленности. Если все переменные, которые по своему
смыслу должны быть целочисленными, принимают в оптимальном решении
целочисленные значения, то решение задачи на этом завершается. Если хотя бы
одна из этих переменных принимает дробное значение, то в задачу вводятся
дополнительные ограничения, исключающие полученное оптимальное (но
нецелочисленное) решение из области допустимых решений. Новые задачи
(одна или несколько), включающие дополнительные ограничения, также
решаются симплекс-методом. Процесс продолжается до получения
оптимального целочисленного решения.
Методы решения задач целочисленного программирования можно
классифицировать как (1) методы отсечений и (2) комбинаторные методы.
70
Исходной задачей для демонстрации возможностей методов отсечений,
используемых при решении линейных целочисленных задач, является задача с
ослабленными ограничениями, которая возникает в результате исключения
требования целочисленности переменных. По мере введения специальных
дополнительных ограничений, учитывающих требование целочисленности,
многогранник допустимых решений ослабленной задачи постепенно
деформируется, до тех пор, пока координаты оптимального решения не станут
целочисленными.
Название
«методы
отсечений»
связано
с
тем
обстоятельством, что вводимые дополнительные ограничения отсекают
(исключают) некоторые области многогранника допустимых решений, в
которых отсутствуют точки с целочисленными координатами. Основными
методами решения задач целочисленного программирования выступают метод
ветвей и границ и метод Гомори.
В основе комбинаторных методов лежит идея перебора всех допустимых
целочисленных решений. Разумеется, на первый план здесь выдвигается
проблема разработки тестовых процедур, позволяющих непосредственно
рассматривать лишь (относительно небольшую) часть указанных решений, а
остальные допустимые решения учитывать некоторым косвенным образом.
4.2 Метод ветвей и границ решения целочисленных задач линейного
программирования
Наиболее известным комбинаторным методом является метод ветвей и
границ, который также опирается на процедуру решения задачи с
ослабленными ограничениями. При таком подходе из рассматриваемой задачи
получаются две подзадачи путем специального «разбиения» пространства
решений и отбрасывания областей, не содержащих допустимых целочисленных
решений.
В случае, когда целочисленные переменные являются булевыми,
применяются комбинированные методы. Булевы свойства переменных
существенно упрощают поиск решения.
Рассматриваемый в данном разделе метод ветвей и границ решения задачи
целочисленного программирования также опирается на решение задачи с
ослабленными ограничениями. Метод ветвей и границ непосредственно
применим как к полностью, так и к частично целочисленным задачам.
Согласно общей идее метода, сначала решается задача с ослабленными
ограничениями (задача линейного программирования). Пусть x r –
целочисленная переменная, значение x r* которой в оптимальном решении
[ ]
[ ]
ослабленной задачи является дробным. Интервал x r* < x r < x r* + 1 не содержит
допустимых целочисленных компонент решения. Поэтому допустимое целое
71
[ ]
значение x r должно удовлетворять одному из неравенств x r > x r*
[ ]
или
x r ≤ x r* + 1 .
Введение этих условий в задачу с ослабленными ограничениями
порождает две не связанные между собой задачи. В таком случае говорят, что
исходная задача разветвляется (или разбивается) на две подзадачи.
Осуществляемый в процессе ветвления учет необходимых условий
целочисленности позволяет исключить части многогранника допустимых
решений, не содержащие точек с целыми координатами.
Затем каждая подзадача решается как задача линейного программирования
(с целевой функцией исходной задачи). Если полученный оптимум оказывается
допустимым для целочисленной задачи, такое решение следует зафиксировать
как наилучшее. При этом нет необходимости продолжать «ветвление»
подзадачи, поскольку улучшить полученное решение, очевидно, не удастся. В
противном случае подзадача, в свою очередь, должна быть разбита на две
подзадачи опять при учете условия целочисленности переменных, значения
которых в оптимальном решении не являются целыми. Разумеется, как только
полученное допустимое целочисленное решение одной из подзадач оказывается
лучше имеющегося, оно фиксируется вместо зафиксированного ранее. Процесс
ветвления продолжается, насколько это возможно, до тех пор, пока каждая
подзадача не приведет к целочисленному решению или пока не будет
установлена невозможность улучшения имеющегося решения. В этом случае
зафиксированное допустимое решение является оптимальным.
Эффективность вычислительной схемы метода можно повысить, введя в
рассмотрение понятие границы, на основе которого делается вывод о
необходимости дальнейшего разбиения каждой из подзадач. Если оптимальное
решение подзадачи с ослабленными ограничениями обеспечивает худшее
значение целевой функции, чем имеющееся решение, эту подзадачу далее
рассматривать не следует. В таких случаях говорят, что подзадача
прозондирована, и ее можно вычеркнуть из списка подзадач, порожденных
исходной задачей. Иными словами, как только получено допустимое
целочисленное решение некоторой подзадачи, целочисленное решение
некоторой подзадачи, соответствующее значение целевой функции может быть
использовано в качестве (верхней в случае минимизации и нижней в случае
максимизации) границы, наличие которой позволяет формализовать процедуру
исключения прозондированных подзадач.
Рассмотрим задачу целочисленного линейного программирования (ЗЦЛП):
Найти вектор x ∈ E n , максимизирующий линейную форму
()
n
f x = ∑cjxj
(4.1)
j =1
и удовлетворяющий условиям:
72
n
∑ aij x j = bi , i = 1, m
(4.2)
xj ≥ 0,
(4.3)
j =1
j = 1, n
x1 , x 2 ,..., x p – целые ( p ≤ n )
(4.4)
Пусть для каждой целочисленной переменной можно указать верхнюю и
нижнюю границы, в пределах которых безусловно содержатся ее оптимальные
значения, то есть
V j ≤ x j ≤ W j ; j = 1.. p
(4.5)
При этом в систему функциональных ограничений необходимо включить р
неравенств (4.5).
В начале любой S-й итерации метода ветвей и границ необходимо иметь:
1. Основной список задач линейного программирования, каждая из
которых должна быть решена в последующих итерациях (на первой итерации
список содержит одну задачу линейного программирования (ЗЛП) – задачу 1
(4.1- 4.3) и (4.5).
2. Нижнюю границу оптимального значения линейной формы задачи (4.1)
– (4.3), (4.5) Z 0( S ) . На первой итерации в качестве Z 0(1) можно взять значение
()
функции f x в любой целочисленной точке x , лежащей внутри области (4.2) –
(4.5). Если такую точку указать трудно, то можно положить Z 0(1) = −∞ , но это
приводит к значительному увеличению числа итераций.
Алгоритм S-й итерации метода ветвей и границ
Пусть в результате S итераций метода получили список из Z задач: 1,2,...,Z
и имеем Z 0( S ) .
Шаг 1. Выбираем из списка ЗЛП одну задачу для решения, задачу R
(1 ≤ R ≤ Z ) и решаем ее.
(S )
Шаг 2. Если задача R имеет решение x R , то переходим к шагу 3. В
противном случае – исключаем задачу R из списка и, полагая Z 0( S +1) = Z 0( S ) ,
возвращаемся к шагу 1. При S = 0, то есть на первой итерации, делаем вывод,
что исходная задача (4.1) – (4.4) не имеет решения и процесс решения
заканчивается.
( )> Z
(S )
Шаг 3. Если f x R
(S )
0
, то переходим к шагу 4. В противном случае –
задачу R исключаем из списка и, полагая Z 0( S +1) = Z 0( S ) , возвращаемся к шагу 1.
(S )
Шаг 4. Если не все компоненты вектора x R удовлетворяют условиям
целочисленности (4.4), то переходим к шагу 5. В противном случае – задачу R
из списка исключаем, план
(S )
xR
запоминаем и, полагая
73
(S )
Z 0( S +1) = x R ,
возвращаемся к шагу 1. При S = 0 вектор х является решением и исходной
задачи и процесс решения заканчивается.
Шаг 5. Задачу R выбрасываем из списка, включая в него две новые задачи
линейного программирования – задачу (Z+1) и задачу (Z+2). Далее, полагая
Z 0( S +1) = Z 0( S ) , возвращаемся к шагу 1. Процесс разбиения задачи R на две новые
(S )
ЗЛП осуществляется следующим образом: Пусть x j
полученном оптимальном плане x
имеет вид:
()
(S )
R
– дробная компонента в
[ ] ее целая часть. Тогда задача Z+1
и x
(S )
R
n
f x = ∑ c j x j → max
j =1
при условиях
n
∑ aij x j = bi , i = 1, m
j =1
V1 ≤ x1 ≤ W1
…………………………
[ ]
(S )
V j ≤x j ≤ x R
…………………………
Vp ≤x p ≤ Wp
x1 , x 2 ,..., x n ≥ 0
Задача Z+2:
()
n
f x = ∑ c j x j → max
j =1
при условиях
n
∑ aij x j = bi , i = 1, m
j =1
V1 ≤ x 1 ≤ W1
…………………………
[x ]+ 1 ≤ x ≤ W
(S )
R
j
j
…………………………
Vp ≤x p ≤ Wp
x1 , x 2 ,..., x n ≥ 0
Процесс решения продолжаем до тех пор, пока не будут решены все
задачи линейного программирования из списка. Тогда решением задачи (4.1)(4.5) будет Z 0( S ) на последней итерации.
74
Пример 4.1. Решить задачу целочисленного линейного программирования
()
f x = 2 x1 + x 2 → max
(4.6)
(4.7)
7 x1 + 3x 2 ≤ 21
x1 + x 2 ≤ 5
x1 , x 2 − целые
(4.8)
(4.9)
(4.10)
0 ≤ x1 ≤ 3
0 ≤ x2 ≤ 5
()
В качестве Z 0(1) возьмем f x в точке x = (0,0) , то есть Z 0(1) = 0 . Итерация 1. Имеем:
1) В списке задач линейного программирования одна задача – задача 1 – (4.6)(4.7),(4.9),(4.10).
2) Нижняя граница Z 0(1) = 0 .
Шаг 1. Выбираем задачу 1, решаем ее, получим оптимальный план x
( )
(1)
= (1,5;3,5) ,
(1)
f x = 6,5 .
Шаг 2. Так как задача 1 имеет конечное решение, то переходим к шагу 3.
( ) = 6,5 > Z
Шаг 3. Так как f x
(1)
(1)
0
, то переходим к шагу 4.
(1)
Шаг 4. Не все компоненты вектора x удовлетворяют условию целочисленности,
поэтому переходим к шагу 5.
Шаг 5. Задачу 1 из списка выбрасываем, включая в него две новые задачи - задачу 2
и задачу 3. Разбиение задачи 1 производим по переменной x1 :
задача 2
f x = 2 x1 + x 2 → max
7 x1 + 3x 2 ≤ 21
x1 + x 2 ≤ 5
0 ≤ x1 ≤ 1
0 ≤ x2 ≤ 5
()
задача 3
f x = 2 x1 + x 2 → max
7 x1 + 3x 2 ≤ 21
x1 + x 2 ≤ 5
2 ≤ x1 ≤ 3
0 ≤ x2 ≤ 5
()
Полагаем Z 0( 2) = Z 0(1) = 0 , возвращаемся к шагу 1.
Итерация 2.
Список ЗЛП включает 2, 3.
1) Z 0( 2) = 0
Шаг 1. Выбираем из списка одну задачу – задачу 2. Решаем ее, оптимальный план
( 2)
( )
( 2)
x = (1;4) , f x = 6 .
Шаг 2. Задача 2 имеет конечное решение, переходим к шагу 3.
75
( )> Z
Шаг 3. Сравниваем f x
(2)
( 2)
0
= 0 , следовательно, переходим к шагу 4.
Шаг 4. Все компоненты вектора x
( 2)
удовлетворяют условию целочисленности,
поэтому задачу 2 из списка исключаем, план
Z
( 3)
0
( ) = 6 , возвращаемся к шагу 1.
= f x
x
( 2)
запоминаем и, полагая
(2)
Итерация 3.
Шаг 1. Выбираем из списка ЗЛП задачу 3, решаем ее, получим оптимальный план
( 3)
7
x = (2; ) .
3
Шаг 2. Задача 3 имеет конечное решение, следовательно, переходим к шагу 3.
( 3)
( 3)
1
Шаг 3. Сравниваем f x
и Z 0(3) , так как f x = 6 > Z 0(3) = 6 , то переходим к
3
шагу 4.
( )
( )
( 3)
Шаг 4. Компоненты вектора x
не удовлетворяют условию целочисленности,
следовательно, задачу 3 из списка выбрасываем и переходим к шагу 5.
Шаг 5. Вместо задачи 3 включаем в список две задачи – 4 и 5.
Разбиение задачи 3 производим по переменной x 2 :
задача 4
f x = 2 x1 + x 2 → max
7 x1 + 3x 2 ≤ 21
x1 + x 2 ≤ 5
2 ≤ x1 ≤ 3
0 ≤ x2 ≤ 2
()
задача 5 (нет решения)
f x = 2 x1 + x 2 → max
7 x1 + 3x 2 ≤ 21
x1 + x 2 ≤ 5
2 ≤ x1 ≤ 3
3 ≤ x2 ≤ 5
()
Полагая Z 0( 4) = Z 0(3) = 6 , возвращаемся к шагу 1.
Итерация 4. Выбираем из списка ЗЛП задачу 5. Она не имеет решения,
следовательно, выбрасываем ее из списка. Полагая Z 0(5) = Z 0( 4 ) , возвращаемся к шагу
1.
Итерация 5. Имеем:
1) Список ЗЛП - задача 4.
2) Z 0(5) = Z 0( 4) = 6 .
Шаг 1. Выбираем задачу 4. Решая ее, получаем оптимальный план x
76
(5)
15
= ( ; 2) .
7
Шаг 2. Задача 4 имеет конечное решение x
шагу 3.
( )> Z
Шаг 3. Так как f x
( 5)
(6)
0
(5)
( )
( 5)
15
2
= ( ;2) и f x = 6 , переходим к
7
7
= 6 , то переходим к шагу 4.
(5)
Шаг 4. Компоненты плана x не целочисленные, следовательно, задачу 4 из списка
выбрасываем и, полагая Z 0(5) = Z 0( 6 ) , переходим к шагу 5.
Шаг 5. Задачу 4 выбрасываем из списка, а вместо нее включаем в него две новые
ЗЛП, производя разбиение задачи 4 по переменной x1
задача 6
f x = 2 x1 + x 2 → max
7 x1 + 3x 2 ≤ 21
x1 + x 2 ≤ 5
3 ≤ x1 ≤ 3; x1 = 3
0 ≤ x2 ≤ 2
()
задача 7
f x = 2 x1 + x 2 → max
7 x1 + 3x 2 ≤ 21
x1 + x 2 ≤ 5
2 ≤ x1 ≤ 2; x1 = 2
0 ≤ x2 ≤ 2
()
Полагая Z 0(5) = Z 0( 6 ) , возвращаемся к шагу 1.
Итерация 6. Имеем
1) Список ЗЛП включает задачи 6 и 7.
2) Z 0( 6) = 6 .
Шаг 1. Выбираем из списка задачу 6 и решая ее, находим оптимальный план
x
(6)
= (2;2) . Так как компоненты плана x
(6)
( ) = 6 = Z , то
целочисленные и f x
(6)
6
0
(6)
задачу 6 из списка выбрасываем, а план x запоминаем.
Полагая Z 0( 6) = Z 0( 7 ) = 6 возвращаемся к шагу 1.
Итерация 7. Имеем:
1) Список ЗЛП - одна задача 7.
2) Z 0( 7 ) = 6 .
Шаг 1. Решаем задачу 7 и получаем оптимальный план x
Шаг 2. Компоненты плана x
(7)
(7)
= (3;0) .
( )= Z
целочисленные и значение функции f x
Задачу 7 из списка выбрасываем, план x
(7)
(7 )
(7)
0
= 6.
запоминаем.
Все задачи линейного программирования, входящие в список, решены. При этом
были найдены три целочисленных оптимальных плана x
77
( 2)
, x
(6)
, x
(7)
, причем
( ) = f (x ) = f (x ) = 6 .
f x
x
(*)
( 2)
(6)
(7 )
Решением
исходной
= {(3;0 ); (2;2 ); (1;4 )}.
задачи
является
( )
*
f x = 6;
Значительная часть экономических задач, относящихся к задачам
линейного программирования, требует целочисленного решения. К ним
относятся задачи, у которых переменные величины означают количество
единиц неделимой продукции, например, распределение производственных
заданий между предприятиями, раскрой материалов, загрузка оборудования,
распределение судов по линиям, самолетов по рейсам. Если единица составляет
малую часть всего объема производства, то решение находят обычным
симплексным методом, округляя его до целых единиц, исходя из смысла
задачи. В противном случае округление может привести к решению, далекому
от оптимального целочисленного плана.
Пример 4.2
В цехе предприятия решено установить дополнительное оборудование, для
размещения которого выделено 19,3 м2 - площади. На приобретение оборудования
предприятие может израсходовать 10 тыс. у.е., при этом оно может купить
оборудование двух видов. Комплект оборудования 1 вида стоит 1000 у.е., а II вида –
3000 у.е. Приобретение одного комплекта оборудования 1 вида позволяет увеличить
выпуск продукции в смену на 2 ед., а одного комплекта оборудования II вида – на 3
ед. Зная, что для установки одного комплекта оборудования 1 вида требуется 2 м2
площади, а оборудования II вида – 1 м2 площади, определить такой набор
дополнительного оборудования, который дает возможность максимально увеличить
выпуск продукции.
Решение.
Составим математическую модель задачи. Предположим, что предприятие
приобретет x1 комплектов оборудования 1 вида и x 2 комплектов оборудования II
вида. Тогда переменные x1 и x 2 должны удовлетворять следующим неравенствам:
2 x1 + x 2 ≤ 19,3
(4.11)

 x1 + 3x 2 ≤ 10
Если предприятие приобретет указанное количество оборудования, то общее
увеличение выпуска продукции составит
F = 2 x1 + 3x 2
(4.12)
По своему экономическому содержанию переменные x1 и x 2 могут принимать лишь
целые неотрицательные значения, т. е,
x1 , x 2 > 0
(4.13)
x1 , x 2 − целые
(4.14)
Таким образом, задача (4.11) – (4.14) представляет собой задачу ЦЛП.
4.3 Задача коммивояжера
Имеется n городов, занумерованных числами 1,2,..., n. Для любой пары
городов (i, j) задано расстояние (время, путевые расходы) C (i, j ) ≥ 0 между
ними. Поэтому в общем случае C (i, j ) ≠ C ( j , i ) . Коммивояжер, выезжая из
какого-либо города, должен посетить все города по одному разу и вернуться в
78
исходный город. Необходимо определить такую последовательность объезда
городов, при которой длина маршрута была бы минимальной.
Другая интерпретация этой задачи связана с минимизацией времени
переналадок при обработке на одном станке партии из n различных деталей.
Здесь C (i, j ) – время переналадки при переходе от обработки детали i к
обработке детали j. Требуется найти последовательность обработки деталей,
минимизирующую общее время переналадок.
Для записи постановки задачи в терминах целочисленного линейного
программирования определим булевы переменные следующим образом: xij = 1,
если коммивояжер переезжает из i-го города в j-й; xij = 0 , в противном случае.
Тогда
задача
заключается
в
отыскании
значений
переменных
xij
удовлетворяющих следующим соотношениям:
n
n
∑ ∑ cij ⋅ xij → min
(4.15)
i =1 j =1
при условиях
n
∑ xij = 1 ,
i =1
n
∑ xij = 1 ,
j =1
i = 1,..., m
(въезд в город j)
(4.16)
j = 1,..., n
(выезд из города i)
(4.17)
(i ≠ j )
(4.18)
u i − u j + nxij ≤ n − 1
xij = {0,1},
u i ≥ 0 , целые, i = 1,..., m , j = 1,..., n
(4.19)
Ограничения (4.18) требуют, чтобы маршрут образовывал контур.
Применение
коммивояжера
метода
ветвей
и
границ
для
решения
задачи
Допустимый маршрут х представим как множество упорядоченных пар
городов:
x = {(i1 , i2 ), (i2 , i3 ),..., (in−1 , in ), (in , i1 )}
Каждый допустимый маршрут представляет собой цикл, проходя по
которому коммивояжер посещает каждый город ровно один раз и возвращается
в исходный город. Каждая упорядоченная пара (i, j) является дугой маршрута.
Длина F (x) маршрута x равна сумме соответствующих элементов C (i, j ) .
Заметим, что множество всех допустимых маршрутов X содержит (n − 1)!
элементов.
Обозначим через C = (Cij )nxn матрицу расстояний. Чтобы запретить
переезды вида (i, i) положим C (i, i ) = +∞ , i = 1,..., n .
Пусть
Pi = min{C ij },
j = 1,..., n ,
Q j = min{Cij − Pi },
c ij = cij − Pi − Q j .
79
i = 1,..., n ,
( )
Тогда C = C ij
Пусть
nxn
– редуцированная матрица.
d ( X ) = ∑ Pi + ∑ Q j –сумма констант редуцирования.
n
n
i =1
j =1
Тогда для любого маршрута x = {(i1 , i2 ), (i2 , i3 ),..., (in −1 , in ), (in , i1 )}∈ X
F ( X ) = c(i1 , i2 ) + c(i2 , i3 ) + ... + c(in , i1 ) =
(4.20)
= c(i1 , i2 ) + c(i2 , i3 ) + ... + c(in , i1 ) + d ( X ) ≥ d ( X )
Неравенство (4.20) показывает, что d(X) является оценкой снизу для
множества X. Кроме того, после редукции длины всех маршрутов уменьшаются
на одну и ту же величину d(X) и, следовательно, оптимальный маршрут,
найденный с использованием редуцированной матрицы, оптимален и для
исходной задачи.
Ветвление
Процесс ветвления можно представить в виде дерева, каждая вершина
которого соответствует некоторому множеству маршрутов, являющемуся
подмножеством множества X. При этом начальная вершина соответствует
множеству всех маршрутов X .
Рис. 4.1. Процесс ветвления
На каждом шаге из числа кандидатов на ветвление выбирается множество
X с наименьшей оценкой. Оно разветвляется на два подмножества X 11 и X 21 .
1
Подмножество X 11 состоит из всех маршрутов множества X 1 , содержащих
некоторую выбранную на данном шаге дугу (r , s ) , подмножество X 21 – из всех
маршрутов множества X 1 , не содержащих дугу (r , s ) .
Ребро дерева, соединяющее вершины X 1 и X 11 помечается (r , s ) , а ребро
дерева, соединяющее X 1 и X 21 помечается (r , s ) .
80
1
Пусть C – редуцированная матрица, соответствующая вершине X 1 .
Опишем способ выбора дуги (r , s ) . Он основан на стремлении сделать оценку
d (X 11 ) поменьше, а оценку d (X 21 ) – побольше, для того, чтобы увеличить
вероятность выбора для дальнейшего ветвления множества X 11 . Стремление к
уменьшению d (X 11 ) приводит к выбору такой дуги (µ , v ) , для которой
C (µ , v ) = 0
1
(4.21)
поскольку все маршруты множества X 11 содержат дугу (µ , v ) .
Стремление же увеличить d (X 21 ) приводит к выбору среди дуг,
удовлетворяющих условию (4.21) той дуги, для которой значение функции
Θ(µ , v ) = min C (µ , ρ ) + min C (σ , v )
1
1
ρ :ρ ≠ v
σ :σ ≠ µ
максимально, т.е.
Θ(r , s ) = max {Θ(µ , v )}
1
µ , v:C ( µ , v )= 0
Смысл введения функции Θ состоит в том, что величина Θ(µ , v ) является
оценкой снизу для длины любого маршрута из X 1 , не содержащего дуги (µ , v ) ,
так как величина Θ(µ , v ) выражает дополнительное расстояние, которое
коммивояжер проезжает в случае, когда в маршрут не включена дуга (µ , v ) .
1
1
Построение редуцированных матриц C 1 и C 2 и вычисление оценок
снизу
Положим
C 1 (i, j ), (i, j ) ≠ (r , s ),
1
C 2 (i, j ) = 
+ ∞, (i, j ) = (r , s )
Искомая редуцированная матрица C21 получается из C21 с помощью
описанной выше процедуры редуцирования. Сумма констант редуцирования
равна при этом Θ(r, s ) , а величина d (X 21 ) = d (X 1 ) + Θ(r , s ) является оценкой
снизу для целевой функции F(x) на множестве X 21 .
Рассмотрим теперь множество X 11 . Все маршруты из этого множества
содержат дугу (r , s ) . Найдем максимальный связанный путь, который
принадлежит всем маршрутам множества X 1 и содержит дугу (r , s ) .
Пусть этот путь начинается в городе m и заканчивается в городе t (может
быть, m = r или t = s , или то и другое одновременно).Чтобы запретить
подцикл, начинающийся и заканчивающийся в m, положим C11 (t , m ) = +∞ .
Остальные элементы матрицы C11
полагаем равными соответствующим
1
элементам матрицы C , при этом строку, соответствующую городу r и столбец,
81
соответствующий городу s, в матрицу C
маршруты из X 11 содержат дугу (r, s ) .
1
не включаем, поскольку все
1
Редуцированная матрица расстояний C 1 для вершины X 11 получается из
матрицы C11 с помощью операции редуцирования. При этом оценка снизу для
функции F(x) на множестве X 11 вычисляется по формуле
d (X 11 ) = d (X 1 ) + τ
где τ – сумма констант редуцирования.
Формирование списка кандидатов на ветвление.
После вычисления каждой из оценок d (X i1 ) (i = 1, 2) следует проверить, не
состоит ли множество X i1 из единственного маршрута. Если в каждой строке и
1
в каждом столбце матрицы C i оказалось лишь по одному элементу, отличному
от +∞, то множество X i1 содержит единственный маршрут, длина которого
равна d (X i1 ) . В этом случае верхняя граница Z 0 (наименьшее из уже
вычисленных значений F(x) полагается равной минимуму из предыдущего
значения Z 0 и d (X i1 ) , т.е.
Z 0 = min{Z 0 , d (X i1 )}.
Если X i1 содержит более одного маршрута и d (X i1 ) меньше текущего
значения Z 0 , то множество X i1 включается в число кандидатов на ветвление.
Остановка производится, если наименьшая из оценок снизу кандидатов на
ветвление не меньше текущего значения Z 0 .
Пример 4.3
Решить методом ветвей и границ задачу коммивояжера с матрицей
 ∞ 10 25 25 10 


 1 ∞ 10 15 2 
C =  8 9 ∞ 20 10 


14 12 24 ∞ 15 
10 8 25 27 ∞ 


Возьмем
в
качестве
произвольного
допустимого
x 0 {(1,2 ), (2,3), (3,4 ), (4,5)(5,1)} . Тогда F ( x 0 ) = 10 + 10 + 20 + 15 + 10 = 65
значение Z 0 – (верхняя граница длин всех маршрутов).
Получим редуцированную матрицу C .
82
маршрута
– текущее
 ∞ 0 15 15 0 
 ∞ 0 6 3 0 
 ∞ 10 25 25 10  10 



 0 ∞ 9 14 1 
0
∞
0
2
1
 1 ∞ 10 15 2  1 


0 1 ∞ 12 2  


~ 0 1 ∞ 0 2=C
C = 8 9 ∞ 20 10 8 ~ 



∞
4
0
14
5

 
14 12 24 ∞ 15  10 
4 0 5 ∞ 5

10 8 25 27 ∞  8  2 0 17 19 ∞   2 0 8 7 ∞ 




0 0 9 12 0
Нижняя граница d(X) = 10+1+8+10+8+9+12=58. Данное значение является нижней
границей длин всех маршрутов. Заметим, что в идеальном случае поиск решения
заключался бы в выборе ровно одного нулевого элемента в каждой строке и каждом
столбце. Другими словами, если бы такой маршрут нулевой длины мог бы быть
найден, то длина оптимального маршрута равнялась бы 58. Исходя из верхней и
нижней границ можно заключить, что 58 ≤ F x * ≤ 65 .
Выберем дугу (r, s ) с помощью вычисления значений функции Θ(µ , v )
Θ(1,2) = 0 , Θ(2,1) = 0 , Θ(3,1) = 0 , Θ(4,2) = 4 , Θ(1,5) = 1 , Θ(2,3) = 5 , Θ(3,4) = 2 ,
Θ(5,2) = 2
Следовательно, Θ(r , s ) = (2,3) .
Осуществим разбиение (ветвление). Правое подмножество X 2 будет cодержать все
маршруты, которые исключают дугу (2,3). Поэтому C 2 (2,3) = +∞ .
( )
 ∞ 0 6 3 0
 ∞ 0 1 3 0 
∞ 0 6 3 0  0 



 0 ∞ ∞ 2 1 
 0 ∞ 0 2 1 0 
0 ∞ ∞ 2 1

0 1 ∞ 0 2 
 ~ 0 1 ∞ 0 2  = C2
C2 =  0 1 ∞ 0 2  0 ~ 



 4 0 5 ∞ 5 
4
0
0
∞
5
 4 0 5 ∞ 5 0 



 2 0 8 7 ∞ 0  2 0 8 7 ∞  2 0 3 7 ∞




0 0 5 0 0
Оценка снизу для правого подмножества X 2 определяется следующим образом:
d ( X 2 ) = d ( X ) + Θ(2,3) = 58 + 5 = 63 < Z 0 .
Левое подмножество X 1 будет содержать маршруты, которые всегда включают дугу
(2,3), и поэтому вторая строка и третий столбец в матрицу C1 не включаются. В
результате будем иметь матрицу на единицу меньшего размера. Далее необходимо
положить C1 (3,2) = +∞ , чтобы запретить подцикл {(2,3),(3,2)}. В результате получим
матрицу
1 2 4 5
1 ∞ 0 3 0 


C1 = 3  0 ∞ 0 2  = C 1
4 4 0 ∞ 5


5  2 0 7 ∞ 
Оценка снизу для левого подмножества
d ( X 1 ) = d ( X ) + τ = 58 + 0 = 58 < Z 0
В списке кандидатов на ветвление множества X 1 и X 2 . Так как d ( X 1 ) < d ( X 2 ) ,
следовательно, будем производить ветвление множества X 1 . Выберем дугу (r, s ) с
помощью значений функции Θ(µ , v ) для матрицы C 1 .
83
Θ(1,2) = 0 , Θ(1,5) = 2 , Θ(3,1) = 2 , Θ(3,4) = 3 , Θ(4,2) = 4 , Θ(5,2) = 2
Следовательно, Θ(r , s ) = 4 , (r , s ) = (4,2 ) .
Правая подматрица:
1 2 4 5
1
∞

0

0
2

2 4 5
1 ∞ 0 3 0  0 1
0 3 0



3 0 ∞ 0 2 0 3
∞ 0 2
C4 =
~
 = C4
4 4 ∞ ∞ 5 4 4
∞ ∞ 1


5  2 0 7 ∞  0 5
0 7 ∞ 
0 0 0 0
Оценка снизу для правого подмножества: d ( X 4 ) = d ( X 1 ) + Θ(4,2 ) = 58 + 4 = 62 < Z 0
Левая подматрица:
Левое подмножество X 3 будет содержать маршруты, которые всегда включают дугу
(4,2), и поэтому четвертая строка и второй столбец в матрицу C 3 не включаются. В
результате будем иметь матрицу на единицу меньшего размера. Далее необходимо
положить C 3 (3,4 ) = +∞ , чтобы запретить подцикл {(4,2),(2,3),(3,4)}. В результате
получим матрицу
1 4 5
1 4 5
1 ∞ 3 0  0 ∞ 3 0  1 ∞ 0 0 






C3 = 3  0 ∞ 2  0 ~  0 ∞ 2  ~ 3  0 ∞ 2  = C 3
5  2 7 ∞  2  0 5 ∞  5  0 2 ∞ 
0 3 0
d ( X 3 ) = d ( X 1 ) + τ = 58 + 5 = 63 < Z 0
В списке кандидатов на ветвление множества X 3 , X 4 , X 2 .
Минимальная нижняя оценка оказалась у множества X 4 , следовательно, для
дальнейшего разбиения выбираем множество X 4 .
Определим дугу (r, s ) с помощью значений функции Θ(µ , v ) для матрицы C 4 .
Θ(1,2) = 0 , Θ(1,5) = 1 , Θ(3,1) = 0 , Θ(3,4) = 3 , Θ(4,1) = 1 , Θ(5,2) = 2
Следовательно, Θ(r , s ) = 3 , (r , s ) = (3,4) .
Правая подматрица:
1 2 4 5
1 ∞ 0 3 0  1


C6 = 3  0 ∞ ∞ 2  ~ 3


4 0 ∞ ∞ 1 4
5  2 0 7 ∞  5
1
∞

0

0
2

2 4 5
0 0 0

∞ ∞ 2  = C6

∞ ∞ 1
0 4 ∞ 
Оценка снизу для правого подмножества:
d ( X 6 ) = d ( X 4 ) + Θ(3,4 ) = 62 + 3 = 65 = Z 0 .
Следовательно, множество X 6 исключаем из списка.
84
Левая подматрица:
Левое подмножество X 5 будет содержать маршруты, которые всегда включают дугу
(3,4), и поэтому третья строка и четвертый столбец в матрицу C 5 не включаются. В
результате будем иметь матрицу на единицу меньшего размера. Далее необходимо
положить C 5 (4,2 ) = +∞ , чтобы запретить подцикл {(2,3),(3,4), (4,2)}, однако это
условие оказалось уже выполненным. В результате получим матрицу
1 2 5
1 ∞ 0 0 

 = C5
C5 =
4 0 ∞ 1
5  2 0 ∞ 
Оценка снизу для левого подмножества:
d ( X 5 ) = d ( X 4 ) + τ = 62 + 0 = 62 < Z 0 .
В списке кандидатов на ветвление множества X 3 , X 5 , X 2
Минимальная нижняя оценка оказалась у множества X 5 , следовательно, для
дальнейшего разбиения выбираем множество X 5 .
Определим дугу (r, s ) с помощью значений функции Θ(µ , v ) для матрицы C 5
Θ(1,2) = 0 , Θ(1,5) = 1 , Θ(4,1) = 3 , Θ(5,2) = 2
Следовательно, Θ(r , s ) = 3 , (r , s ) = (4,1) .
Правая подматрица:
1 2 5
1
C8 = 4
5
 ∞ 0 0  0  ∞


∞ ∞ 1  1 ~ ∞
 2 0 ∞  0  2



2
0
∞
0
0
1
0  1 ∞


0  ~ 4 ∞

∞  5  0
0
2 5
0 0

∞ 0  = C8
0 ∞ 
Оценка снизу для правого подмножества:
d ( X 8 ) = d ( X 5 ) + Θ(4,1) = 62 + 3 = 65 = Z 0 /
Следовательно, множество X 8 исключаем из списка.
Левая подматрица:
Левое подмножество X 7 будет содержать маршруты, которые всегда включают дугу
(4, 1), и поэтому четвертая строка и первый столбец в матрицу C 7 не включаются. В
результате будем иметь матрицу на единицу меньшего размера. Далее необходимо
положить C7 (1,2 ) = +∞ , чтобы запретить подцикл {(2,3),(3,4),(4,1),(1,2)}.
2 5

C 7 = 1  ∞ 0  = C 7
5  0 ∞ 
Оценка снизу для левого подмножества:
d ( X 7 ) = d ( X 5 ) + τ = 62+ = 62 < Z 0 .
85
В списке кандидатов на ветвление множества X 3 , X 7 , X 2 . Множество X 7
содержит единственный маршрут с минимальной нижней оценкой, поэтому задача
решена.
x1 = {(1,5)(5,2 )(2,3)(3,4 )(4,1)} = x *
( )
Z 0 = F x * = 10 + 8 + 10 + 20 + 14 = 62
Представим процесс решения в виде дерева.
Рис. 4.2
4.4 Метод Гомори
Метод Гомори основан на применении симплекс-метода и метода
отсечения.
Алгоритм метода
1. Сформулированная задача решается симплекс-методом без учета
целочисленности.
2. Если в результате получено целочисленное оптимальное решение, то
цель достигнута. В противном случае выбирается переменная с
нецелочисленным оптимальным значением (если дробных переменных
несколько, то выбирается та, у которой дробная часть больше).
3. Для выбранной неизвестной записывается условие отсечения её
нецелочисленного значения в виде линейного неравенства. Новое ограничение
добавляется в симплексную таблицу с оптимальным решением, и переходим к
шагу 1.
Признаком отсутствия целочисленного решения является отсутствие
дробных значений коэффициентов в строке с дробным значением базисной
переменной.
86
Для того чтобы сформулировать правило построения условия отсечения,
введем некоторые обозначения. Пусть а есть некоторое действительное число.
Обозначим через [а] целую часть числа а.
Целой частью числа а называется наибольшее целое число, меньшее или
равное а. Приведем примеры нахождения целой части различных чисел:
 7
3
 2
 4
4 10  = 4;  5  = 0; − 3 5  = −4; − 5  = −1.
Обратите внимание, что если целая часть положительного числа
получается простым отбрасыванием его дробной части, то целая часть
отрицательного числа получается отбрасыванием дробной части числа и
увеличением модуля полученного результата на единицу.
Обозначим далее через {а} дробную часть числа а. Дробная часть числа а
есть разность между данным числом и его целой частью:
{a} = a − [a ].
Для чисел, рассмотренных выше, найдем дробные части:
7
7
 7
4  = 4 − 4 = ,
10
10
 10 
2
 2
− 3  = −3 − (−4) =
5
 5
3
3  3
  = −0 = ,
5
5  5
3  4
4
1
, −  = − − (−1) = .
5  5
5
5
Дробная часть числа всегда положительна.
Чтобы сформулировать условие отсечения в процессе решения задачи
целочисленного линейного программирования, необходимо из последней
(оптимальной) симплекс-таблицы выписать уравнение, содержащее выбранную
нецелочисленную неизвестную хк:
n
x k + ∑ a kj x j = a k 0 ,
j =1
где
xk
– базисная неизвестная;
xj
– свободная неизвестная;
ak 0
–
нецелочисленное значение базисной переменной. Тогда условие отсечения
будет иметь вид
{ }
Здесь {a }, {a }— дробные части соответствующих чисел.
∑ a kj x j ≥ {a k 0 }.
j
kj
k0
Рассмотрим применение метода отсечений на конкретном примере.
Пример 4.4
F = 2 x1 + 4 x 2 + 3 x3 → max;
2 x1 + 3 x 2 + x3 ≤ 20,

9 x1 + 7 x2 + 10 x3 ≤ 40,

 x j ≥ 0, x j ∈ Z , j = 1,2.
87
Отбрасывая требование целочисленности, решим заданную задачу как обычную
задачу линейного программирования.
CO
БП
СЧ
− x1
− x2
− x3
20
2
3
1
20/3
y1
y2
40
9
7
10
F
0
-2
-4
-3
БП
СЧ
− x1
− y2
− x3
y1
20/7
-13/7
-3/7
-23/7
x2
40/7
9/7
1/7
10/7
40/7
F
160/7
22/7
4/7
19/7
В полученном оптимальном решении задачи имеем нецелочисленное значение
неизвестной x 2 . Дополнительное ограничение формируем по элементам второй
строки:
9 
1 
10 
 40 
y3 =   x1 +   y 2 +   x3 −  ;
7 
7 
7
7
2
1
3
5
y3 = x1 + y 2 + x3 − ;
7
7
7
7
БП
СЧ
CO
− x1
− y2
− x3
y1
x2
y3
20/7
-13/7
-3/7
-23/7
-
40/7
9/7
1/7
10/7
40
-5/7
-2/7
-1/7
-3/7
5
F
160/7
22/7
4/7
19/7
БП
СЧ
− x1
− y3
− x3
y1
x2
y2
5
4
1
5
5
F
20
2
Ответ: x1 = 0, x 2 = 5, x3 = 0, F = 20.
Резюме
Из материала, изложенного в данной лекции, можно сделать следующие
выводы.
− Целочисленное программирование ориентировано на решение задач
математического программирования, в которых все или некоторые
переменные должны принимать только целочисленные значения.
− Одна из основных трудностей в целочисленном программировании связана с
эффектом ошибки округления.
88
− Методы решения задач целочисленного программирования можно
классифицировать как методы отсечений и комбинаторные методы.
− Название «методы отсечений» связано с тем обстоятельством, что
вводимые дополнительные ограничения отсекают (исключают) некоторые
области многогранника допустимых решений, в которых отсутствуют
точки с целочисленными координатами.
− В основе комбинаторных методов лежит идея перебора всех допустимых
целочисленных решений.
− Наиболее
известными
методами
целочисленного
линейного
программирования являются метод ветвей и границ и метод Гомори.
Вопросы для самоконтроля
Какая задача называется полностью целочисленной?
Какая задача называется частично целочисленной?
С чем связана основная трудность в целочисленном программировании?
Дайте характеристику методов отсечения.
Дайте характеристику комбинаторных методов.
Что такое метод ветвей и границ?
Поясните алгоритм решения задачи методом ветвей и границ.
Что такое задача коммивояжера?
Опишите применение метода ветвей и границ при решении задачи
коммивояжера.
10. На чем основан метод Гомори?
11. Сформулируйте алгоритм метода Гомори
1.
2.
3.
4.
5.
6.
7.
8.
9.
89
5 РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИИ НА ОСНОВЕ
МЕТОДА ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
5.1 Принцип работы метода динамического программирования
Метод динамического программирования предназначен для задач,
решение которых может быть представлено как некоторая многошаговая
операция, т.е. последовательность однотипных шагов. Решение на каждом шаге
принимается с учетом результатов предыдущих шагов, а также с учетом
последствий принимаемого решения для последующих шагов.
В менеджменте очень часто встречаются случаи, когда цель оптимального
планирования заключается в установлении наилучшей последовательности тех
или иных работ (производственных операций, этапов строительства различного
рода сооружений и т.д.). Именно эта оптимальная последовательность работ
или действий ведет к наилучшим результатам работы предприятия:
максимальной прибыли, минимуму временных и финансовых затрат,
максимальной рентабельности работы. Нахождение этой оптимальной
последовательности происходит динамически с помощью полного или
частичного перебора возможных вариантов на базе ЭВМ. Машина генерирует
возможный вариант решения, анализирует его и делает вывод о его
перспективности (запоминая его) или неперспективности (отбрасывая его). В
результате такой сортировки на каждом шаге выделяется все меньше и меньше
приемлемых вариантов. В заключение такого динамического анализа
выделяется одно или несколько лучших решений.
К числу задач, для которых может применяться метод динамического
программирования, относится большинство задач планирования на несколько
периодов времени (например, на несколько лет). Шагом в таких задачах является
один плановый период (например, один год). Метод динамического
программирования применяется также для многих задач, в которых имеется
возможность искусственно представить процесс принятия решения как
последовательность из нескольких однотипных шагов.
Общая постановка задачи, решаемой методом динамического
программирования, следующая. Имеется некоторая операция, находящаяся в
начальном состоянии S 0 . Операция реализуется за N шагов. На каждом шаге
принимается некоторое решение U k , где k – номер шага ( k = 1,..., N ). Выбор
каждого решения U k вызывает переход операции из состояния S k −1 в новое
состояние S k , а также обеспечивает некоторое значение критерия
эффективности Z k . Требуется определить последовательность решений
U 1 ,U 2 ,...,U k ,
обеспечивающих
экстремальное
(максимальное
или
минимальное) значение общего критерия эффективности E, зависящего от
значений критерия эффективности на отдельных шагах Z1 , Z 2 ,..., Z k .
90
Основной принцип решения задач на основе метода динамического
программирования (принцип оптимальности, или принцип Беллмана) состоит в
следующем: решение на каждом шаге выбирается таким образом, чтобы
обеспечить максимальную эффективность на данном шаге и на всех
последующих шагах.
Задача, представленная в виде многошаговой операции, может быть
решена методом динамического программирования, если она удовлетворяет
следующим свойствам:
− отсутствие последействия: состояние операции по окончании каждого
шага ( S k ) и критерий эффективности на каждом шаге ( Z k ) зависят
только от решения, принятого на данном шаге (U k ), и от состояния
операции в начале данного шага ( S k −1 ), и не зависят от того, каким
образом операция перешла в состояние S k −1 ;
− аддитивность или мультипликативность критерия эффективности:
общий критерий эффективности представляет собой сумму критериев
эффективности на отдельных шагах ( E = Z1 + Z 2 + Z N ) или их
произведение ( E = Z1 ⋅ Z 2 ⋅ Z N ).
Решение задач динамического программирования обычно включает два
цикла: сначала – от последнего шага к первому (обратная прогонка, или
условная оптимизация), затем – от первого шага к последнему (прямая
прогонка, или безусловная оптимизация).
В цикле условной оптимизации для каждого шага находится множество
возможных состояний операции в начале данного шага. Для каждого из этих
состояний находится условно оптимальное решение, т.е. решение, оптимальное
для данного состояния. Поиск условно оптимальных решений начинается с
последнего (N-го) шага, так как на этом шаге имеется возможность выбирать
решение только с учетом эффективности на данном шаге (последующих шагов
нет). Затем на других шагах (N–1-м, N–2-м, ..., первом) условно оптимальные
решения выбираются согласно принципу оптимальности, т.е. с учетом
эффективности на данном шаге и на последующих шагах. На всех шагах от Nго до второго определяется несколько условно оптимальных решений – по
одному для каждого возможного состояния. Для первого шага начальное
состояние ( S 0 ) обычно известно точно, поэтому для этого шага находится
только одно (безусловно оптимальное) решение U 1* .
В цикле безусловной оптимизации для каждого шага определяется
безусловно оптимальное решение. Поиск безусловно оптимальных решений
начинается с первого шага, так как для него известно начальное состояние S 0 ,
поэтому можно определить единственное (безусловно оптимальное) решение
U 1* . Определяется состояние S1 , в которое переходит операция из состояния
91
S 0 в результате решения U 1* , т.е. состояние в начале второго шага. Для него в
цикле условной оптимизации уже найдено оптимальное решение U 2* .
Определяется состояние операции в начале третьего шага – состояние S 2 , в
которое операция переходит в результате решения U 2* . Для этого состояния в
цикле условной оптимизации также найдено оптимальное решение U 3* .
Аналогично определяются безусловно оптимальные решения для последующих
шагов.
Важно отметить, что для метода динамического программирования не
существует вычислительной процедуры, одинаковой для всех задач (в отличие,
например, от симплекс-метода). Это означает, что правила вычислений,
составления таблиц и т.д. полностью зависят от конкретной задачи. Общими
являются лишь основные принципы решения: принцип оптимальности,
решение задачи с использованием условной и безусловной оптимизации.
5.2 Примеры решения задач на основе метода динамического
программирования
При рассмотрении примеров будем использовать следующие обозначения:
S k – состояние в конце k-го шага (или, другими словами, состояние в начале
k+1-го шага); U k – любое возможное (допустимое) решение на k-м шаге; U k* –
оптимальное решение на k-м шаге; Z k – критерий эффективности на k-м шаге;
E k – суммарный критерий эффективности на всех шагах, начиная с k-го (т.е. на
шагах от k-го до N-го); E k* – оптимальный (в рассматриваемых примерах –
максимальный) суммарный критерий эффективности на всех шагах, начиная с
k-го.
Пример 5.1
Денежные средства в размере 60 млн ден. ед. распределяются между четырьмя
предприятиями (П1, П2, П3, П4), принадлежащими одной крупной фирме.
Денежные средства выделяются в размерах, кратных 20 млн ден. ед. Каждым
предприятием разработаны планы использования денежных средств на развитие
производства. Определена прибыль, которую получит каждое предприятие в
результате использования выделенных средств (табл. 5.1).
Табл. 5.1
Выделенные
средства, млн.
ден. ед.
0
20
40
60
П1
0
9
15
22
Прибыль предприятий, млн. ден. ед.
П2
П3
0
10
18
20
92
0
6
12
25
П4
0
12
17
20
Например, если предприятию П1 не будут выделены средства, то оно не получит
никакой прибыли. Если этому предприятию будет выделено 20 млн ден. ед., то его
прибыль от использования этих средств составит 9 млн ден. ед. Если будет выделено
40 млн ден. ед., то прибыль составит 16 млн ден. ед., а при выделении 60 млн – 22
млн ден. ед.
Требуется распределить имеющиеся средства (60 млн ден. ед.) между
предприятиями таким образом, чтобы общая прибыль фирмы была максимальной.
Решение
В данной задаче в качестве шагов будем рассматривать выделение средств
предприятиям: первый шаг – выделение средств предприятию П1, второй – П2, и т.д.
(всего 4 шага). Таким образом, распределение средств между предприятиями можно
рассматривать как многошаговую операцию. В качестве состояния этой операции
будем использовать величину имеющихся средств, которые требуется распределить.
Начальное состояние S 0 = 60. Решение на каждом шаге – это денежные средства,
выделяемые предприятию ( U k , k = 1,...,4 ). Критерий эффективности для каждого
шага – прибыль, полученная предприятием ( Z k , k = 1,...,4 ). Общий критерий
эффективности – это прибыль фирмы, т.е. сумма прибылей всех предприятий:
E = Z1 + Z 2 + Z 3 + Z 4 .
Задача удовлетворяет свойству отсутствия последействия. Состояние по
окончании каждого шага (т.е. имеющаяся сумма средств, подлежащая
распределению, S k ) зависит только от суммы, имевшейся в начале шага ( S k −1 ) и от
решения, принятого на данном шаге (т.е. от выделенной на данном шаге денежной
суммы U k ): S k = S k −1 − U k . Критерий эффективности на каждом шаге (т.е. прибыль
предприятия Z k ) зависит только от решения на данном шаге, т.е. от выделенной
предприятию суммы U k , и не зависит от того, сколько средств выделено другим
предприятиям.
Задача удовлетворяет также свойству аддитивности критерия эффективности:
общий критерий эффективности (прибыль фирмы) равен сумме критериев
эффективности на отдельных шагах (прибылей предприятий).
Задача решается в два цикла.
Цикл условной оптимизации
Шаг 4 (выделение средств предприятию П4)
Определяются все возможные состояния S 3 к началу шага 4 (или к концу шага 3),
т.е. все возможные значения остатка денежных средств после их выделения
предприятиям П1, П2 и П3. Этот остаток может составлять 0 ден. ед. (если все
средства выделяются предприятиям П1, П2 и П3), 20 млн ден. ед. (если
предприятиям П1, П2, П3 выделяется 40 млн ден. ед.), 40 млн ден. ед. (если
предприятиям П1, П2, П3 выделяется 20 млн ден. ед.) или 60 млн ден. ед. (если
предприятиям П1, П2, П3 средства вообще не выделяются).
Для каждого из возможных состояний определяется условно оптимальное решение,
т.е. решение, оптимальное при условии, что остаток денежных средств равен S 3 . Так
как предприятие П4 – последнее (предполагается, что другим предприятиям
средства уже выделены), оптимальное решение состоит в выделении предприятию
П4 всех оставшихся средств.
Возможные состояния в начале четвертого шага S 3 , соответствующие им условно
оптимальные решения
U 4*
и значения критерия эффективности (прибыль
предприятия П4) E 4* приведены в табл. 5.2.
93
Важно обратить внимание, что по результатам четвертого шага не выяснено, сколько
средств требуется выделять предприятию П4. Это пока невозможно, так как
неизвестно начальное состояние четвертого шага S 3 . Поэтому найдены условно
оптимальные решения для всех возможных состояний.
Табл. 5.2
U 4*
0
20
40
60
S3
0
20
40
60
E 4*
0
12
17
20
Шаг 3 (выделение средств предприятиям П3 и П4)
Все расчеты для шага 3 приведены в табл. 5.3.
Табл. 5.3
S2
U3
0
20
40
60
Z3
0
0
20
0
20
40
0
20
40
60
E 4*
S3
0
0
6
0
6
12
0
6
12
25
0
20
0
40
20
0
60
40
20
0
U 3*
E3
0
12
0
17
12
0
20
17
12
0
0
12
6
17
18
12
20
23
24
25
E 3*
0
0
0
12
20
18
60
25
В таблице использованы следующие обозначения: S 2 – возможные суммы
денежных средств, распределяемые между предприятиями П3 и П4 (т.е. оставшиеся
после выделения средств предприятиям П1 и П2); U 3 – возможные варианты
выделения средств предприятию П3; Z 3 – прибыль предприятия П3 от выделения
средств в размере U 3 ; S 3 – остаток денежных средств после их выделения
предприятиям П1, П2 и П3 (т.е. средства, выделяемые предприятию П4); E 4* –
прибыль предприятия П4 от выделенных ему средств в размере S 3 ; E 3 – суммарная
прибыль предприятий П3 и П4 (сумма величин из столбцов Z 3 и E 4* ); U 3* – условно
оптимальное решение для состояния S 2 (денежные средства, которые следует
выделить предприятию П3 при наличии суммы S 2 ); E 3* – условно оптимальный
критерий эффективности для предприятий П3 и П4, т.е. прибыль, получаемая этими
предприятиями в результате решения U 3* .
Рассмотрим порядок решения для шага 3.
Определяются все возможные состояния S 2 к началу шага 3 (или к концу шага 2),
т.е. все возможные значения денежных средств, распределяемых между
предприятиями П3 и П4. Этот остаток может составлять 0 ден. ед. (если все средства
выделяются предприятиям П1 и П2), 20 млн ден. ед. (если предприятиям П1 и П2
выделено 40 млн ден. ед.), 40 млн ден. ед. (если предприятиям П1 и П2 выделено 20
94
млн ден. ед.) или 60 млн ден. ед. (если предприятиям П1 и П2 средства вообще не
выделяются).
Для каждого из возможных состояний определяется условно оптимальное решение,
т.е. решение, оптимальное при условии, что остаток денежных средств равен S 2 .
Средства для предприятия П3 должны выделяться таким образом, чтобы обеспечить
максимальную суммарную прибыль для П3 и П4.
Предположим, что денежные средства, распределяемые между предприятиями П3 и
П4, составляют 20 млн ден. ед. ( S 2 = 20). Эти средства можно оставить для
предприятия П4 (тогда предприятию П3 средства не выделяются, U 3 = 0) или
выделить их предприятию П3 ( U 3 = 20). Если U 3 = 0, то предприятие П3 не получит
прибыли ( Z 3 = 0). В этом случае остаток средств (состояние) в конце третьего шага
составит S 3 = 20 млн ден. ед. Эти средства будут выделены предприятию П4, и его
прибыль
составит
прибыль
составит
составит E 4* = 12 млн ден. ед. Суммарная прибыль предприятий П3 и П4
E 3 = 0 + 12 = 12 млн ден. ед. Если U 3 = 20, то предприятие П3 получит
Z 3 = 6 млн ден. ед. Остаток средств (состояние) в конце третьего шага
S 3 = 0. Предприятию П4 не будет выделено никаких средств, и оно не
получит прибыли ( E 4* = 0). Суммарная прибыль предприятий П3 и П4 составит
E 3 = 6 + 0 = 6 млн ден. ед. Таким образом, если между предприятиями П3 и П4
распределяется сумма в размере 20 млн ден. ед., то эти средства не следует выделять
предприятию П3; их следует выделить предприятию П4, так как общая прибыль в
этом случае будет максимальной. Другими словами, для состояния S 2 = 20 условно
оптимальное решение U 3* = 0, условно оптимальный критерий эффективности
E 3* = 12.
Предположим, что денежные средства, распределяемые между предприятиями П3 и
П4, составляют 40 млн ден. ед. ( S 2 = 40). Предприятию П3 можно выделить 0, 20
или 40 млн ден. ед. ( U 3 = 0,20 или 40). Если U 3 = 0, то предприятие П3 не получит
прибыли ( Z 3 = 0). В этом случае остаток средств (состояние) в конце третьего шага
составит S 3 = 40 млн ден. ед. Эти средства будут выделены предприятию П4, и его
прибыль составит E 4* = 17 млн ден. ед. Суммарная прибыль предприятий П3 и П4
составит E 3 = 0 + 17 = 17 млн ден. ед.
Аналогично можно определить, что при выделении предприятию П3 суммы в
размере 20 млн ден. ед. (т.е. при U 3 = 20) суммарная прибыль предприятий П3 и П4
составит E 3 = 6 + 12 = 18 млн ден. ед. При U 3 = 40 суммарная прибыль
предприятий П3 и П4 составит E 3 = 12 + 0 = 12 млн ден. ед. Таким образом,
длясостояния S 2 = 40 условно оптимальное решение U 3* = 20, условно оптимальный
критерий эффективности E 3* = 18 млн ден. ед. Это означает, что при распределении
между предприятиями П3 и П4 средств в размере 40 млн ден. ед. предприятию П3
следует выделить 20 млн ден. ед.
Аналогично можно определить, что при распределении между предприятиями П3 и
П4 средств в размере 60 млн ден. ед. предприятию П3 следует выделить все 60 млн
95
ден. ед. (для состояния S 2 = 60 условно оптимальное решение U 3* = 60, условно
оптимальный критерий эффективности E 3* = 25 млн ден. ед.).
Шаг 2 (выделение средств предприятиям П2, П3 и П4)
Все расчеты для шага 2 приведены в табл. 5.4.
Табл. 5.4
S1
U2
0
20
40
60
0
0
20
0
20
40
0
20
40
60
Z2
0
E 3*
S2
0
10
0
10
18
0
10
18
20
0
20
0
40
20
0
60
40
20
0
U 2*
E2
0
12
0
18
12
0
25
18
12
0
0
12
10
18
22
18
25
28
30
20
E 2*
0
0
0
12
20
22
40
30
Обозначения в таблице: S1 – возможные суммы денежных средств, распределяемые
между предприятиями П2, П3 и П4 (т.е. оставшиеся после выделения средств
предприятию П1); U 2 – возможные варианты выделения средств предприятию П2;
Z 2 – прибыль предприятия П2 от выделения средств в размере U 2 ; S 2 – остаток
денежных средств после их выделения предприятиям П1 и П2 (т.е. средства,
выделяемые предприятиям П3 и П4); E 3* – максимальная суммарная прибыль
предприятий П3 и П4 от выделенных им средств в размере S 2 (определяется из
табл. 5.3); E 2 – суммарная прибыль предприятий П2, П3 и П4 (сумма величин из
столбцов Z 2 и E 3* ); U 2* – условно оптимальное решение для состояния S1
(денежные средства, которые следует выделить предприятию П2 при наличии
суммы S1 ); E 2* – условно оптимальный критерий эффективности для предприятий
П2, П3 и П4, т.е. прибыль, получаемая этими предприятиями в результате решения
U 2* . Рассмотрим порядок решения для шага 2.
Определяются все возможные состояния S1 к началу шага 2, т.е. все возможные
значения денежных средств, распределяемых между предприятиями П2, П3 и П4.
Этот остаток может составлять 0; 20; 40 или 60 млн ден. ед. (в зависимости от того,
сколько средств выделяется предприятию П1).
Для каждого из возможных состояний S1 определяется условно оптимальное
решение, т.е. оптимальная денежная сумма, выделяемая предприятию П2 при
условии, что имеются денежные средства в размере S1 . Средства для предприятия
П2 должны выделяться таким образом, чтобы обеспечить максимальную суммарную
прибыль предприятий П2, П3 и П4.
Предположим, что денежные средства, распределяемые между предприятиями П2,
П3 и П4, составляют 20 млн ден. ед. ( S1 1 = 20). Предприятию П2 можно выделить 0
или 20 млн ден. ед. ( U 2 = 0 или U 2 = 20). Если U 2 = 0, то предприятие П2 не
получит прибыли ( Z 2 = 0). В этом случае остаток средств (состояние) в конце
второго шага составит S 2 = 20 млн ден. ед. Эти средства будут распределены между
96
предприятиями П3 и П4. Из табл. 5.3 видно, что при оптимальном распределении
таких средств между предприятиями П3 и П4 максимальная суммарная прибыль
этих предприятий составит E 3* = 12 млн ден. ед.
Суммарная прибыль предприятий П2, П3 и П4 составит E 2 = 0 + 12 = 12 млн ден. ед.
Если U 2 = 20, то предприятие П2 получит прибыль Z 2 = 10 млн ден. ед. Остаток
средств (состояние) в конце третьего шага составит S 3 = 0. Предприятиям П3 и П4
не будет выделено никаких средств, и они не получат прибыли ( E 3* = 0), а суммарная
прибыль предприятий П2, П3 и П4 составит E 2 = 10 + 0 = 10 млн ден. ед. Таким
образом, для состояния S1 = 20 условно оптимальное решение U 2* = 0, условно
оптимальный критерий эффективности E 2* = 12 млн ден. ед. Это означает, что при
распределении средств в размере 20 млн ден. ед. между предприятиями П2, П3 и П4,
предприятию П2 не следует выделять средства; все имеющиеся средства следует
распределить между предприятиями П3 и П4.
Предположим, что денежные средства, распределяемые между предприятиями П2,
П3 и П4, составляют 40 млн ден. ед. ( S1 = 40). Предприятию П2 можно выделить 0,
20 или 40 млн ден. ед. ( U 2 = 0, 20 или 40). Если U 2 = 0, то предприятие П2 не
получит прибыли ( Z 2 = 0). Остаток средств в конце второго шага составит S 2 = 40
млн ден. ед. Эти средства будут распределены между предприятиями П3 и П4. Из
табл. 5.3 видно, что максимальная прибыль этих предприятий от использования
таких средств составит E 3* = 18 млн ден. ед.
Суммарная прибыль предприятий П2, П3 и П4 составит E 2 = 0 + 18 = 18 млн ден. ед.
Аналогично можно определить, что при U 2 = 20 суммарная прибыль предприятий
П2, П3 и П4 составит E 2 = 10 + 12 = 22 млн ден. ед. При U 2 = 40 суммарная
прибыль предприятий П2, П3 и П4 составит E 2 = 18 + 0 = 18 млн ден. ед. Таким
образом, для состояния S1 = 40 условно оптимальное решение U 2* = 20, условно
оптимальный критерий эффективности E 2* = 22 млн ден. ед.
Это означает, что при распределении средств в размере 40 млн ден. ед. между
предприятиями П2, П3 и П4, предприятию П2 следует выделить 20 млн ден. ед.
Аналогично можно определить, что при распределении между предприятиями П2,
П3 и П4 средств в размере 60 млн ден. ед. предприятию П2 следует выделить 40 млн
ден. ед.
Шаг 1 (выделение средств предприятиям П1, П2, П3 и П4)
Все расчеты для шага 1 приведены в табл. 5.5.
Табл. 5.5
S0
U1
60
Z1
0
20
40
60
E 2*
S1
0
9
16
22
60
40
20
0
U 1*
E1
30
22
12
0
30
31
28
22
E1*
20
31
Обозначения в таблице: S 0 – начальная сумма денежных средств, распределяемых
между всеми предприятиями; U 1 – возможные варианты выделения средств
предприятию П1; Z 1 – прибыль предприятия П1 от выделения средств в размере U 1 ;
97
S1 – остаток денежных средств после их выделения предприятию П1 (т.е. средства,
выделяемые предприятиям П2, П3 и П4); E 2* – максимальная суммарная прибыль
предприятий П2, П3 и П4 от выделенных им средств в размере S1 (определяется из
табл. 5.4); E1 – суммарная прибыль предприятий П1, П2, П3 и П4, т.е. всех
предприятий (сумма величин из столбцов Z 1 и E 2* ); U 1* – безусловно оптимальное
решение для состояния S 0 (денежные средства, которые следует выделить
предприятию П1 при наличии суммы S 0 ); E1* – безусловно оптимальный критерий
эффективности для предприятий П1, П2, П3 и П4, т.е. прибыль, получаемая всеми
предприятиями в результате решения U 1* .
Начальная сумма денежных средств (состояние S 0 ) известна: S 0 = 60. Требуется
определить, сколько средств необходимо выделить предприятию П1, чтобы
обеспечить максимальную суммарную прибыль предприятий П1, П2, П3 и П4, т.е.
всех предприятий. Так как начальное состояние на этом шаге известно точно (в
отличие от других шагов), будет найдено безусловно оптимальное решение.
Предприятию П1 можно выделить 0, 20, 40 или 60 млн ден. ед. ( U 1 = 0, 20, 40 или
60). В зависимости от выделенных средств прибыль предприятия П1 ( Z 1 ) может
составлять 0, 9, 16 или 22 млн ден. ед. Остаток средств в конце первого шага S1
(сумма, выделяемая предприятиям П2, П3 и П4) может составлять 60, 40, 20 или 0
млн ден. ед. Из табл. 5.4 определяется максимальная прибыль предприятий П2, П3 и
П4 ( E 2* ) от использования средств в размере S1 : она может составлять 30, 22, 12 или
0 млн ден. ед. Для всех случаев определяется суммарная прибыль предприятий П1,
П2, П3 и П4 ( E1 ): она может составлять 30, 31, 28 или 22 млн ден. ед. Таким
образом, максимальная прибыль предприятий П1, П2, П3 и П4 (т.е. всех
предприятий) достигается, если выделить предприятию П1 20 млн ден. ед. (при
условии, что для остальных предприятий средства также будут распределяться
оптимальным образом). Это означает, что оптимальным решением является
выделение предприятию П1 средств в размере 20 млн ден. ед.: U 1* = 20. Прибыль
всех предприятий в этом случае составит 31 млн ден. ед.
Цикл безусловной оптимизации
Для первого шага (выделение средств предприятию П1) получено безусловно
оптимальное решение: U 1* = 20 млн ден. ед. Для предприятий П2, П3 и П4 остается
40 млн ден. ед. Таким образом, состояние в начале второго шага S1 = 40. Из табл. 5.4
для этого состояния определяется оптимальное решение: U 2* = 20 (предприятию П2
выделяется 20 млн ден. ед.). Для предприятий П3 и П4 остается 20 млн ден. ед.
(состояние в начале третьего шага S 2 = 20). Из табл. 5.3 для этого состояния
определяется оптимальное решение: U 3* = 0 (предприятию П3 средства не
выделяются). Для предприятия П4 остается 20 млн ден. ед. ( S 3 = 20). Поэтому
U 4* = 20.
Таким образом, оптимальное решение задачи следующее. Предприятию П1 следует
выделить 20 млн ден. ед., предприятию П2 – также 20 млн ден. ед., предприятию П3
– не выделять средства, предприятию П4 – выделить 20 млн ден. ед. Общая прибыль
составит 31 млн ден. ед., в том числе прибыль предприятия П1 – 9 млн ден. ед., П2 –
10 млн ден. ед., П3 – 0, П4 – 12 млн ден. ед.
98
Пример 5.2
Фирма владеет двумя предприятиями (П1 и П2). В связи с тем, что спрос на
продукцию этих предприятий имеет сезонный характер, прибыль от вложения
средств в производство продукции на этих предприятиях различна в разные периоды
года. Прибыль (в процентах) для различных периодов года приведена в табл. 5.6.
В конце каждого квартала выручка каждого предприятия распределяется
следующим образом: 20% выплачивается акционерам фирмы, 80% –
перераспределяется между предприятиями.
В начале года для вложения в производство выделена сумма в размере 5 млн ден. ед.
Требуется составить план распределения средств в течение года таким образом,
чтобы сумма, выплачиваемая акционерам в течение года, была максимальной.
Табл. 5.6
Предприятие
П1
П2
январь - март
80
40
Прибыль, %
апрель - июнь июль - сентябрь
50
50
120
80
октябрь - декабрь
70
40
Величины в таблице обозначают следующее: если, например, предприятию П1 в
начале января будет выделен 1 млн ден. ед., то прибыль предприятия к концу марта
составит 800 тыс. ден. ед. (80% от выделенной суммы). Таким образом, выручка
предприятия за квартал составит 1 млн 800 тыс. ден. ед.
В данной задаче в качестве шагов будем рассматривать выделение средств
предприятиям в начале каждого квартала: первый шаг – первый квартал, и т.д.
В качестве состояния операции будем использовать величину имеющихся средств,
которые требуется распределить. Начальное состояние S 0 = 5. Состояние в начале kго шага будем обозначать как S k −1 . Решение на каждом шаге – это денежные
средства, выделяемые каждому из предприятий. Будем обозначать средства,
выделяемые предприятию П1, как U k , а средства, выделяемые предприятию П2 –
как S k −1 − U k , k = 1,...,4 . Критерий эффективности для каждого шага – сумма выплат
акционерам ( Z k , k = 1,...,4 ). Общий критерий эффективности – это выплаты
акционерам в течение года: E = Z 1 + Z 2 + Z 3 + Z 4 .
Цикл условной оптимизации
Шаг 4 (распределение средств в четвертом квартале)
Пусть в конце третьего квартала между предприятиями распределяется сумма в
размере S 3 . Пусть предприятию П1 выделяется сумма в размере U 4 , а предприятию
П2: S 3 − U 4 . Тогда выручка предприятий к концу четвертого квартала составит
1,7U 4 + 1,4(S 3 − U 4 ) . Из этой суммы акционерам будет выплачено 20%. Таким
образом, выплаты акционерам в конце четвертого квартала определяются
следующим образом:
E 4 = Z 4 = 0,2(1,7U 4 + 1,4(S 3 − U 4 )) = 0,06U 4 + 0,28S 3 .
Видно, что максимальные выплаты акционерам обеспечиваются при максимальном
значении U 4 . Это означает, что предприятию П1 в четвертом квартале следует
выделить всю имеющуюся сумму: U 4* = S 3 . Здесь U 4* – условно оптимальное
решение для четвертого шага. Условно оптимальное значение критерия
99
эффективности (выплаты акционерам) на четвертом шаге определяется следующим
образом: E *4 = 0,06 S 3 + 0,28S 3 = 0,34 S 3
Шаг 3 (распределение средств в третьем и четвертом кварталах)
Пусть в конце второго квартала между предприятиями распределяется сумма в
размере S 2 . Пусть предприятию П1 выделяется сумма в размере U 3 , а предприятию
П2: S 2 − U 3 . Тогда выручка предприятий к концу третьего квартала составит
1,5U 3 + 1,8(S 2 − U 3 ) . Из этой суммы 20% будет выплачено акционерам, а 80% –
распределено между предприятиями. Выплаты акционерам за третий и четвертый
кварталы определяются следующим образом:
E 3 = Z 3 + E 4* = 0,2(1,5U 3 + 1,8(S 2 − U 3 )) + E 4*
Выразим величину E 3 через U 3 и S2. Как показано выше, E 4* = 0,34 ⋅ S 3 , где S 3 –
сумма средств, распределяемых между предприятиями в начале четвертого квартала.
Эта сумма составляет 80% от выручки предприятий в третьем квартале:
S 3 = 0,8(1,5U 3 + 1,8(S 2 − U 3 )) .
Таким
образом,
E 4* = 0,34 ⋅ 0,8 ⋅ (1,5U 3 + 1,8(S 2 − U 3 )) = 0,49 ⋅ S 2 − 0,08 ⋅ U 3 /
Подставляя эту величину в уравнение для E 3 , получим:
E 3 = 0,2(1,5U 3 + 1,8(S 2 − U 3 )) + 0,49 ⋅ S 2 − 0,08 ⋅ U 3 = 0,85 ⋅ S 2 − 0,14 ⋅ U 3 /
Видно, что максимальные выплаты акционерам обеспечиваются при минимальном
значении U 3 (так как коэффициент при U 3 отрицательный). Таким образом,
условно оптимальное решение для третьего квартала состоит в том, чтобы не
выделять средства предприятию П1: U 3* = 0. Подставляя U 3 = 0, получим
выражение для условно оптимального значения критерия эффективности на третьем
и четвертом шагах: E 3* = 0,85 ⋅ S 2 .
Шаг 2 (распределение средств во втором – четвертом кварталах)
Пусть в конце первого квартала между предприятиями распределяется сумма в
размере S1 . Пусть предприятию П1 выделяется сумма в размере U 2 , а предприятию
П2 – сумма в размере S1 − U 2 . Тогда выручка предприятий к концу второго квартала
составит 1,5U 2 + 2,2(S1 − U 2 ) . Из этой суммы 20% будет выплачено акционерам, а
80% – распределено между предприятиями. Выплаты акционерам за второй –
четвертый кварталы определяются следующим образом:
E 2 = Z 2 + E 3* = 0,2(1,5U 2 + 2,2(S1 − U 2 )) + E 3*
Выполнив расчеты, аналогичные приведенным на шаге 3, выразим величину E 2
через U 2 и S1 :
E 2 = 0,2 ⋅ (1,5 ⋅ U 2 + 2,2(S1 − U 2 )) + E 3* = 0,2 ⋅ (1,5 ⋅ U 2 + 2,2(S1 − U 2 )) + 0,85 ⋅ S 2 =
= 0,2 ⋅ (1,5 ⋅ U 2 + 2,2(S1 − U 2 )) + 0,85 ⋅ 0,8 ⋅ 0,2 ⋅ (1,5 ⋅ U 2 + 2,2(S1 − U 2 )) =
.
= 1,94 ⋅ S1 − 0,62 ⋅ U 2
Видно, что максимальные выплаты акционерам обеспечиваются при минимальном
значении U 2 (так как коэффициент при U 2 отрицательный). Таким образом,
условно оптимальное решение для второго квартала состоит в том, чтобы не
выделять средства предприятию П1: U 2* = 0. Подставляя U 2 = 0 в выражение для
E 2 , получим выражение для условно оптимального значения критерия
эффективности на втором – четвертом шагах:
*
100
E 2* = 1,94 ⋅ S1 .
Шаг 1 (распределение средств в первом – четвертом кварталах)
В начале первого квартала между предприятиями распределяется сумма в размере
S 0 = 5. Пусть предприятию П1 выделяется сумма в размере U 1 , а предприятию П2 –
сумма в размере S 0 − U 1 . Выручка предприятий к концу первого квартала составит
1,8U 1 + 1,4(S 0 − U 1 ) . Как и в другие кварталы, 20% из этой суммы будет выплачено
акционерам, а 80% – распределено между предприятиями. Выплаты акционерам за
первый – четвертый кварталы определяются следующим образом:
E1 = Z 1 + E 2* = 0,2(1,8 ⋅ U 1 + 1,4(S 0 − U 1 )) + E 2* .
Выполнив расчеты, аналогичные приведенным на предыдущих шагах, выразим
величину E1 через U 1 и S 0 :
E1 = 0,2(1,8 ⋅ U 1 + 1,4(S 0 − U 1 )) + E 2* = 0,2(1,8 ⋅ U 1 + 1,4(S 0 − U 1 )) + 1,94 ⋅ S1 =
.
= 0,2(1,8 ⋅ U 1 + 1,4(S 0 − U 1 )) + 1,94 ⋅ 0,8 ⋅ 0,2(1,8 ⋅ U 1 + 1,4(S 0 − U 1 )) = 2,45 ⋅ S 0 + 0,7 ⋅ U 1
Видно, что максимальные выплаты акционерам за весь год обеспечиваются при
максимальном значении U 1 . Таким образом, безусловно оптимальное решение для
первого квартала состоит в том, чтобы выделить предприятию П1 все имеющиеся
средства: U 1* = S 0 . Для первого шага (в отличие от остальных шагов) начальное
состояние известно: S 0 = 5 млн ден. ед. Итак, в первом квартале предприятию П1
следует выделить 5 млн ден. ед.
Цикл безусловной оптимизации
Шаг 1 (распределение средств в первом квартале)
Безусловно оптимальное решение для первого квартала найдено выше: U 1* = 5 (все
имеющиеся средства выделяются предприятию П1).
Выручка предприятия П1 к концу первого квартала составит 1,8 ⋅ 5 = 9 млн ден. ед.
Найдем сумму выплат акционерам в первом квартале: Z 1 = 0,2 ⋅ 9 = 1,8 млн ден. ед.
Найдем состояние в конце первого квартала, т.е. сумму средств, распределяемых
между предприятиями в начале второго квартала: S1 = 0,8 ⋅ 9 = 7,2 млн ден. ед.
Шаг 2 (распределение средств во втором квартале)
Состояние в начале второго шага S1 = 7,2 млн ден. ед. В ходе условной оптимизации
выяснено, что все эти средства следует выделить предприятию П2 ( U 2* = 0).
Выручка предприятия П2 к концу второго квартала составит 2,2 ⋅ 7,2 = 15,84 млн ден.
ед. Выплаты акционерам во втором квартале составят Z 2 = 0,2 ⋅ 15,84 = 3,17 млн ден.
ед. Состояние в конце второго шага (т.е. сумма средств, распределяемых между
предприятиями в начале третьего квартала) следующее: S 2 = 0,8 ⋅ 15,84 = 12,67 млн
ден. ед.
Шаг 3 (распределение средств в третьем квартале)
Состояние в начале третьего шага S 2 = 12,67 млн ден. ед. В ходе условной
оптимизации выяснено, что все эти средства следует выделить предприятию П2
( U 3* = 0).
Выручка предприятия П2 к концу третьего квартала составит 1,8 ⋅ 12,67 = 22,81 млн
ден. ед. Выплаты акционерам в третьем квартале составят Z 3 = 0,2 ⋅ 22,81 = 4,56 млн
ден. ед. Состояние в конце третьего шага (т.е. сумма средств, распределяемых между
101
предприятиями в начале четвертого квартала) следующее: S 3 = 0,8 ⋅ 22,81 = 18,25 млн
ден. ед.
Шаг 4 (распределение средств в четвертом квартале)
Состояние в начале четвертого шага S 3 = 18,25 млн ден. ед. В ходе условной
оптимизации выяснено, что все эти средства следует выделить предприятию П1
( U 3* = S 3 = 18,25).
Выручка предприятия П1 к концу четвертого квартала составит 1,7 ⋅ 18,25 = 31,03
млн ден. ед. Выплаты акционерам в четвертом квартале составят
Z 4 = 0,2 ⋅ 31,03 = 6,21 млн ден. ед.
Таким образом, оптимальное решение задачи следующее. В первом квартале следует
выделить предприятию П1 5 млн ден.ед, во втором квартале выделить предприятию
П2 7,2 млн ден. ед., в третьем квартале выделить предприятию П2 12,67 млн ден. ед.,
в четвертом квартале выделить предприятию П1 18,25 млн ден. ед. Выплаты
акционерам в первом квартале составят 1,8 млн ден. ед., во втором – 3,17, в третьем
– 4,56, в четвертом – 6,21 млн ден. ед. Таким образом, выплаты акционерам в
течение года составят 15,74 млн ден. ед.
Резюме
Из материала, изложенного в данной лекции, можно сделать следующие
выводы.
− Метод динамического программирования предназначен для задач, решение
которых может быть представлено как некоторая многошаговая
операция, т.е. последовательность однотипных шагов. Решение на каждом
шаге принимается с учетом результатов предыдущих шагов, а также с
учетом последствий принимаемого решения для последующих шагов.
− Основной принцип решения задач на основе метода динамического
программирования (принцип оптимальности, или принцип Беллмана)
состоит в следующем: решение на каждом шаге выбирается таким
образом, чтобы обеспечить максимальную эффективность на данном шаге
и на всех последующих шагах.
− Задача, представленная в виде многошаговой операции, может быть
решена методом динамического программирования, если она удовлетворяет
свойствам отсутствия последействия и аддитивности критерия
эффективности.
− Решение задач динамического программирования обычно включает два
цикла: сначала – от последнего шага к первому (обратная прогонка, или
условная оптимизация), затем – от первого шага к последнему (прямая
прогонка, или безусловная оптимизация).
Вопросы для самоконтроля
1. Дайте краткую характеристику метода динамического программирования
2. Приведите примеры задач, для решения которых целесообразно
использовать метод динамического программирования.
3. Дайте общую постановку задачи, решаемой методом динамического
программирования.
4. В чем заключается принцип оптимальности Беллмана?
102
5. Каким свойствам должна удовлетворять задача, чтобы она могла быть
решена методом динамической оптимизации?
6. Что такое отсутствие последействия?
7. В чем заключается аддитивность критерия эффективности?
8. Какие циклы включает в себя решение задач динамического
программирования?
9. Дайте характеристику цикла условной оптимизации.
10. Дайте характеристику цикла безусловной оптимизации.
103
6 МОДЕЛИРОВАНИЕ СИСТЕМ МАССОВОГО
ОБСЛУЖИВАНИЯ
6.1 Компоненты и классификация моделей массового обслуживания
При исследовании операций часто приходится сталкиваться с системами,
предназначенными для многоразового использования при решении однотипных
задач. Возникающие при этом процессы получили название процессов
обслуживания, а системы – систем массового обслуживания (СМО).
Примерами таких систем являются телефонные системы, ремонтные
мастерские, вычислительные комплексы, билетные кассы, магазины,
парикмахерские и т.п.
Системы массового обслуживания - это такие системы, в которые в
случайные моменты времени поступают заявки на обслуживание, при этом
поступившие заявки обслуживаются с помощью имеющихся в распоряжении
системы каналов обслуживания.
Каждая СМО состоит из определенного числа обслуживающих единиц
(приборов, устройств, пунктов, станций), которые будем называть каналами
обслуживания. Каналами могут быть линии связи, рабочие точки,
вычислительные машины, продавцы и др.
С позиции моделирования процесса массового обслуживания ситуации,
когда образуются очереди заявок (требований) на обслуживание, возникают
следующим образом. Поступив в обслуживающую систему, требование
присоединяется к очереди других (ранее поступивших) требований. Канал
обслуживания выбирает требование из находящихся в очереди, с тем, чтобы
приступить к его обслуживанию. После завершения процедуры обслуживания
очередного требования канал обслуживания приступает к обслуживанию
следующего требования, если таковое имеется в блоке ожидания. Цикл
функционирования системы массового обслуживания подобного рода
повторяется многократно в течение всего периода работы обслуживающей
системы. При этом предполагается, что переход системы на обслуживание
очередного требования после завершения обслуживания предыдущего
требования происходит мгновенно, в случайные моменты времени.
Предметом теории массового обслуживания является построение
математических моделей, связывающих заданные условия работы СМО (число
каналов, их производительность, характер потока заявок и т.п.) с показателями
эффективности СМО, описывающими ее способность справляться с потоком
заявок.
Основными компонентами системы массового обслуживания любого вида
являются:
− входной поток поступающих требований или заявок на обслуживание;
104
− дисциплина очереди;
− механизм обслуживания.
Входной поток требований. Для описания входного потока требуется
задать вероятностный закон, определяющий последовательность моментов
поступления требований на обслуживание и указать количество таких
требований в каждом очередном поступлении. При этом, как правило,
оперируют понятием «вероятностное распределение моментов поступления
требований». Здесь могут поступать как единичные, так и групповые
требования (требования поступают группами в систему). В последнем случае
обычно речь идет о системе обслуживания с параллельно-групповым
обслуживанием.
Дисциплина очереди - это важный компонент системы массового
обслуживания, определяющая порядок выбора заявок из числа поступивших и
порядок распределения их между свободными каналами. Чаще всего
используются дисциплины очереди, определяемые следующими правилами:
− первым пришел — первый обслуживаешься;
− пришел последним — обслуживаешься первым;
− случайный отбор заявок;
− отбор заявок по критерию приоритетности;
− ограничение времени ожидания момента наступления обслуживания
(имеет место очередь с ограниченным временем ожидания
обслуживания, что ассоциируется с понятием «допустимая длина
очереди»).
Возможно также обслуживание с приоритетом (когда в первую очередь
обслуживаются наиболее важные заявки). Приоритет может быть абсолютным,
когда более важная заявка «вытесняет» из-под обслуживания обычную заявку
(например, в случае аварийной ситуации плановые работы ремонтных бригад
прерываются до ликвидации аварии), так и относительным, когда более
важная заявка получает лишь «лучшие» место в очереди.
Механизм обслуживания определяется характеристиками самой
процедуры обслуживания и структурой обслуживающей системы. К
характеристикам процедуры обслуживания относятся: продолжительность
процедуры обслуживания и количество требований, удовлетворяемых в
результате выполнения каждой такой процедуры. Для аналитического описания
характеристик процедуры обслуживания оперируют понятием «вероятностное
распределение времени обслуживания требований».
Следует отметить, что время обслуживания заявки зависит от характера
самой заявки или требований клиента и от состояния и возможностей
обслуживающей системы. В ряде случаев приходится также учитывать
105
вероятность выхода обслуживающего прибора по истечении некоторого
ограниченного интервала времени.
Структура обслуживающей системы определяется количеством и
взаимным расположением каналов обслуживания (механизмов, приборов и т.
п.). Прежде всего, следует подчеркнуть, что система обслуживания может
иметь не один канал обслуживания, а несколько; система такого рода способна
обслуживать одновременно несколько требований. В этом случае все каналы
обслуживания предлагают одни и те же услуги, и, следовательно, можно
утверждать, что имеет место параллельное обслуживание.
Система обслуживания может состоять из нескольких разнотипных
каналов обслуживания, через которые должно пройти каждое обслуживаемое
требование, т. е. в обслуживающей системе процедуры обслуживания
требований реализуются последовательно. Механизм обслуживания определяет
характеристики выходящего (обслуженного) потока требований.
Рассмотрев основные компоненты систем обслуживания, можно
констатировать, что функциональные возможности любой системы массового
обслуживания определяются следующими основными факторами:
− вероятностным распределением моментов поступлений заявок на
обслуживание (единичных или групповых);
− вероятностным
распределением
времени
продолжительности
обслуживания;
− конфигурацией
обслуживающей
системы
(параллельное,
последовательное или параллельно-последовательное обслуживание);
− количеством и производительностью обслуживающих каналов;
− дисциплиной очереди;
− мощностью источника требований.
В качестве основных критериев эффективности функционирования систем
массового обслуживания в зависимости от характера решаемой задачи могут
выступать:
− вероятность немедленного обслуживания поступившей заявки;
− вероятность отказа в обслуживании поступившей заявки;
− относительная и абсолютная пропускная способность системы;
− средний процент заявок, получивших отказ в обслуживании;
− среднее время ожидания в очереди;
− средняя длина очереди;
− средний доход от функционирования системы в единицу времени и
т.п.
В большинстве случаев все параметры, описывающие системы массового
обслуживания, являются случайными величинами или функциями, поэтому эти
системы относятся к стохастическим системам.
106
Процесс работы СМО представляет собой случайный процесс. Под
случайным (вероятностным иди стохастическим) процессом понимается
процесс изменения во времени состояния какой-либо системы в соответствии с
вероятностными закономерностями.
Процесс называется процессом с дискретными состояниями, если его
возможные состояния S1 , S 2 , S 3 ... можно заранее перечислить, а переход системы
из состояния в состояние происходит мгновенно (скачком). Процесс называется
процессом с непрерывным временем, если моменты возможных переходов
системы из состояния в состояние не фиксированы заранее, а случайны.
Процесс работы СМО представляет собой случайный процесс с
дискретными состояниями и непрерывным временем. Это означает, что
состояние СМО меняется скачком в случайные моменты появления каких-то
событий (например, прихода новой заявки, окончания обслуживания и т.п.).
По характеру случайного процесса, происходящего в системе массового
обслуживания (СМО), различают системы марковские и немарковские.
Случайный процесс называется марковским или случайным процессом без
последействия, если для любого момента времени t 0 вероятностные
характеристики процесса в будущем зависят только от его состояния в данный
момент t 0 и не зависят от того, когда и как система пришла в это состояние. В
марковских системах входящий поток требований и выходящий поток
обслуженных требований (заявок) являются пуассоновскими. Пуассоновские
потоки позволяют легко описать и построить математическую модель системы
массового обслуживания. Данные модели имеют достаточно простые решения,
поэтому большинство известных приложений теории массового обслуживания
используют марковскую схему.
Пример марковского процесса: система S – счетчик в такси. Состояние системы в
момент t характеризуется числом километров, пройденных автомобилем до данного
момента. Пусть в момент t 0 счетчик показывает S 0 . Вероятность того, что в момент
t > t 0 счетчик покажет то или иное число километров (точнее, соответствующее
число рублей) S1 , зависит от S 0 , но не зависит от того, в какие моменты времени
изменялись показания счетчика до момента t 0 .
В случае немарковских процессов задачи исследования систем массового
обслуживания
значительно
усложняются
и
требуют
применения
статистического моделирования, численных методов с использованием ЭВМ.
Независимо от характера процесса, протекающего в системе массового
обслуживания, различают два основных вида СМО:
− системы с отказами, в которых заявка, поступившая в систему в
момент, когда все каналы заняты, получает отказ и сразу же покидает
очередь;
− системы с ожиданием (очередью), в которых заявка, поступившая в
момент, когда все каналы обслуживания заняты, становится в очередь
107
и ждет, пока не освободится один из каналов. Системы массового
обслуживания с ожиданием делятся на системы с ограниченным
ожиданием и системы с неограниченным ожиданием.
В системах с ограниченным ожиданием может ограничиваться:
− длина очереди;
− время пребывания в очереди.
В системах с неограниченным ожиданием заявка, стоящая в очереди, ждет
обслуживание неограниченно долго, т.е. пока не подойдет очередь.
Все системы массового обслуживания различают по числу каналов
обслуживания:
− одноканальные системы;
− многоканальные системы.
Приведенная классификация СМО является условной. На практике чаще
всего системы массового обслуживания выступают в качестве смешанных
систем. Например, заявки ожидают начала обслуживания до определенного
момента, после чего система начинает работать как система с отказами.
6.2 Одноканальная модель с пуассоновским входным потоком с
экспоненциальным распределением длительности обслуживания
Простейшей одноканальной моделью с вероятностными входным потоком
и процедурой обслуживания является модель, характеризуемая показательным
распределением как длительностей интервалов между поступлениями
требований, так и длительностей обслуживания. При этом плотность
распределения длительностей интервалов между поступлениями требований
имеет вид
f 1 ( x ) = λ ⋅ e − λt ,
(6.1)
где λ - интенсивность поступления заявок в систему
Плотность распределения длительностей обслуживания:
f 2 ( x) = µ ⋅ e − µt ,
где µ - интенсивность обслуживания
Потоки заявок и обслуживании простейшие.
(6.2)
6.2.1 Одноканальная СМО с отказами
Пусть система работает с отказами. Необходимо определить абсолютную
и относительную пропускную способность системы.
Представим данную систему массового обслуживания в виде графа
(рис. 6.1), у которого имеются два состояния:
S 0 - канал свободен (ожидание);
S1 - канал занят (идет обслуживание заявки).
108
λ
S0
S1
µ
Рис. 6.1. Граф состояний одноканальной СМО с отказами
Обозначим вероятности состояний: P0 (t ) - вероятность состояния «канал
свободен»; P1 (t ) - вероятность состояния «канал занят». По размеченному
графу состояний (рис. 4.1) составим систему дифференциальных уравнений
Колмогорова для вероятностей состояний:
 dP0 (t )
 dt = −λ ⋅ P0 (t ) + µ ⋅ P1 (t )
(6.3)

dP
(
t
)
1

 dt = − µ ⋅ P1 (t ) + λ ⋅ P0 (t ).
Система линейных дифференциальных уравнений (6.3) имеет решение с
учетом нормировочного условия P0 (t ) + P1 (t ) = 1 . Решение данной системы
называется неустановившимся, поскольку оно непосредственно зависит от t и
выглядит следующим образом:
P0 (t ) =
λ
λ+µ
e −( λ + µ ) t +
µ
(6.4)
λ+µ
P1 (t ) = 1 − P0 (t ) .
(6.5)
Нетрудно убедиться, что для одноканальной СМО с отказами вероятность
P0 (t ) есть не что иное, как относительная пропускная способность системы q.
Действительно, P0 - вероятность того, что в момент t канал свободен и
заявка, пришедшая к моменту t, будет обслужена, а следовательно, для данного
момента времени t среднее отношение числа обслуженных заявок к числу
поступивших также равно P0 (t ) , т. е.
q = P0 (t )
(6.6)
По истечении большого интервала времени (при t → ∞ ) достигается
стационарный (установившийся) режим (q – относительная пропускная
способность):
q = P0 =
µ
(6.7)
µ +λ
Зная относительную пропускную способность, легко найти абсолютную.
Абсолютная пропускная способность (А) - среднее число заявок, которое может
обслужить система массового обслуживания в единицу времени:
A=λ ⋅q =
λµ
λ+µ
(6.8)
109
Вероятность отказа в обслуживании заявки будет равна вероятности
состояния «канал занят»:
Pотк = P1 = 1 − P0 = 1 −
µ
λ+µ
=
λ
(6.9)
λ+µ
Данная величина Pотк может быть интерпретирована как средняя доля
необслуженных заявок среди поданных.
Пример 6.1
Пусть одноканальная СМО с отказами представляет собой один пост ежедневного
обслуживания (ЕО) для мойки автомобилей. Заявка - автомобиль, прибывший в
момент, когда пост занят, - получает отказ в обслуживании. Интенсивность потока
автомобилей λ = 1,0 (автомобиль в час). Средняя продолжительность обслуживания
- 1,8 часа. Поток автомобилей и поток обслуживании являются простейшими.
Требуется определить в установившемся режиме предельные значения:
− относительной пропускной способности q;
− абсолютной пропускной способности А;
− вероятности отказа Pотк ;
Сравните фактическую пропускную способность СМО с номинальной, которая была
бы, если бы каждый автомобиль обслуживался точно 1,8 часа и автомобили
следовали один за другим без перерыва.
Решение
1. Определим интенсивность потока обслуживания:
1
1
µ=
=
= 0,555 .
t об 1,8
2. Вычислим относительную пропускную способность:
µ
0,555
q=
=
= 0,356 .
µ + λ 1 + 0,555
Величина q означает, что в установившемся режиме система будет обслуживать
примерно 35% прибывающих на пост ЕО автомобилей.
3. Абсолютную пропускную способность определим по формуле:
A = λ ⋅ q = 1 ⋅ 0,356 = 0,356 .
Это означает, что система (пост ЕО) способна осуществить в среднем 0,356
обслуживания автомобилей в час.
4. Вероятность отказа:
Pотк = 1 − q = 1 − 0,356 = 0,644 .
Это означает, что около 65% прибывших автомобилей на пост ЕО получат отказ в
обслуживании.
5. Определим номинальную пропускную способность системы:
1
1
Aном =
=
= 0,555 (автомобилей в час).
t обсл 0,8
 0,555

Оказывается, что Aном в 1,5 раза 
≈ 1,5  больше, чем фактическая пропускная
 0,356

способность, вычисленная с учетом случайного характера потока заявок и времени
обслуживания.
110
6.2.2 Одноканальная СМО с ожиданием
Система массового обслуживания имеет один канал. Входящий поток
заявок на обслуживание - простейший поток с интенсивностью λ .
Интенсивность потока обслуживания равна µ (т. е. в среднем непрерывно
занятый канал будет выдавать µ обслуженных заявок). Длительность
обслуживания - случайная величина, подчиненная показательному закону
распределения. Поток обслуживании является простейшим пуассоновским
потоком событий. Заявка, поступившая в момент, когда канал занят, становится
в очередь и ожидает обслуживания.
Предположим, что независимо от того, сколько требований поступает на
вход обслуживающей системы, данная система (очередь + обслуживаемые
клиенты) не может вместить более N-требований (заявок), т. е. клиенты, не
попавшие в ожидание, вынуждены обслуживаться в другом месте. Наконец,
источник, порождающий заявки на обслуживание, имеет неограниченную
(бесконечно большую) емкость.
Граф состояний СМО в этом случае имеет вид, показанный на рис. 6.2.
λ
S0
λ
S1
µ
λ
S2
µ
µ
...
...
λ
λ
Sn
µ
µ
...
...
λ
SN
µ
Рис. 6.2. Граф состояний одноканальной СМО с ожиданием
(схема гибели и размножения)
Состояния СМО имеют следующую интерпретацию:
S 0 - «канал свободен»;
S1 - «канал занят» (очереди нет);
S 2 - «канал занят» (одна заявка стоит в очереди);
…………………………………………………….
S n - «канал занят» (n -1 заявок стоит в очереди);
S N - «канал занят» (N - 1 заявок стоит в очереди). Стационарный процесс в
данной системе будет описываться следующей системой алгебраических
уравнений:
− ψ ⋅ P0 + P1 = 0, n = 0
......................

(6.10)
− (1 − ψ ) ⋅ Pn + Pn+1 + ψ ⋅ Pn−1 = 0, 0 < n < N
......................

− PN + ψ ⋅ PN −1 = 0, n = N
111
где
ψ=
λ
;
µ
n – номер состояния.
Решение приведенной выше системы уравнений (6.10) для нашей модели
СМО имеет вид
 1 − ψ  n
 ⋅ ψ , ψ ≠ 1, n = 0,1,2,..., N

N +1 
 1 − ψ 
Pn = 
(6.11)
1

, ψ = 1.
 ( N + 1)
1 −ψ
P0 =
(6.12)
1 − ψ N +1
Тогда
 P0 ⋅ ψ n , ψ ≠ 1, n = 0,1,2,..., N

Pn =  1
 ( N + 1) , ψ = 1.

Следует отметить, что выполнение условия стационарности ψ =
λ
< 1 для
µ
данной СМО не обязательно, поскольку число допускаемых в обслуживающую
систему заявок контролируется путем введения ограничения на длину очереди
(которая не может превышать N - 1), а не соотношением между
интенсивностями входного потока, т. е. не отношением λ µ = ψ .
Одноканальная СМО с ожиданием и ограниченной длиной очереди
Определим характеристики одноканальной
ограниченной длиной очереди, равной (N - 1):
− вероятность отказа в обслуживании заявки:
Pотк
СМО
 1 − ψ  n
 ⋅ψ , ψ ≠ 1,

 1 − ψ N +1 
= PN = 
 1 , ψ = 1.
 ( N + 1)

с
ожиданием
(6.13)
− относительная пропускная способность системы:
  1 −ψ  n
 ⋅ ψ , ψ ≠ 1,
1 − 
N +1 
 1 −ψ 
q = 1 − Pотк = 
1 − 1 , ψ = 1.
 ( N + 1)
112
(6.14)
и
− абсолютная пропускная способность:
A= q⋅λ
− среднее число находящихся в системе заявок:
ψ ⋅ [1 − ( N + 1) ⋅ ψ N + N ⋅ ψ N +1 ]
N

LS = ∑ n ⋅ Pn = 
(1 − ψ ) ⋅ (1 − ψ N +1 )
, ψ ≠1
n=0
N 2, ψ = 1

− среднее время пребывания заявки в системе:
LS
WS =
λ (1 − PN )
(6.15)
(6.16)
(6.17)
− средняя продолжительность пребывания клиента (заявки) в очереди:
1
Wq = WS −
(6.18)
µ
− среднее число заявок (клиентов) в очереди (длина очереди):
Lq = λ (1 − PN )Wq
(6.19)
Рассмотрим пример одноканальной СМО с ожиданием
Пример 6.2
Специализированный пост диагностики представляет собой одноканальную СМО.
Число стоянок для автомобилей, ожидающих проведения диагностики, ограниченно
и равно 3 [(N - 1) = 3]. Если все стоянки заняты, т. е. в очереди уже находится три
автомобиля, то очередной автомобиль, прибывший на диагностику, в очередь на
обслуживание не становится. Поток автомобилей, прибывающих на диагностику,
распределен по закону Пуассона и имеет интенсивность λ = 0,85 (автомобиля в
час). Время диагностики автомобиля распределено по показательному закону и в
среднем равно 1,05 час.
Требуется определить вероятностные характеристики поста диагностики,
работающего в стационарном режиме.
Решение
1. Параметр потока обслуживании автомобилей:
1
1
µ=
=
= 0,952
t об 1,05
2. Приведенная интенсивность потока автомобилей определяется как отношение
интенсивностей λ и µ , т.е.
λ 0,85
ψ = =
= 0,893 .
µ 0,952
3. Вычислим финальные вероятности системы:
1 −ψ
1 − 0,893
P0 =
=
≈ 0,248
N +1
1 −ψ
1 − 0,8935
P1 = ψ ⋅ P0 = 0,893 ⋅ 0,248 ≈ 0,221 ;
P2 = ψ 2 ⋅ P0 = 0,893 2 ⋅ 0,248 ≈ 0,198 ;
113
P2 = ψ 3 ⋅ P0 = 0,8933 ⋅ 0,248 ≈ 0,177 ;
P4 = ψ 4 ⋅ P0 = 0,893 4 ⋅ 0,248 ≈ 0,158 .
4. Вероятность отказа в обслуживании автомобиля:
Pотк = P4 = ψ 4 ⋅ P0 ≈ 0,158 .
5. Относительная пропускная способность поста диагностики:
q = 1 − Pотк = 1 − 0,158 = 0,842 .
6. Абсолютная пропускная способность поста диагностики
A = q ⋅ λ = 0,842 ⋅ 0,85 = 0,716 (автомобиля в час)
7. Среднее число автомобилей, находящихся на обслуживании и в очереди (т.е. в
системе массового обслуживания):
ψ ⋅ 1 − ( N + 1) ⋅ψ N + N ⋅ψ N +1 0,893 ⋅ 1 − (4 + 1) ⋅ 0,8934 + 4 ⋅ 0,8935
LS =
=
= 1,77 .
(1 −ψ ) ⋅ 1 −ψ N +1
(1 − 0,893) ⋅ 1 − 0,8935
[
(
)
]
[
(
)
]
8. Среднее время пребывания автомобиля в системе:
LS
1,77
WS =
=
≈ 2,473 часа
λ (1 − PN ) 0,85(1 − 0,158)
9. Средняя продолжительность пребывания заявки в очереди на обслуживание:
1
1
Wq = WS − = 2,473 −
= 1,423 часа.
µ
0,952
10. Среднее число заявок в очереди (длина очереди):
Lq = λ (1 − PN )Wq = 0,85 ⋅ (1 − 0,158) ⋅ 1,423 = 1,02 .
Работу рассмотренного поста диагностики можно считать удовлетворительной, так
как пост диагностики не обслуживает автомобили в среднем в 15,8% случаев ( Pотк =
0,158).
Одноканальная СМО с ожиданием без ограничения на длину очереди
Перейдем теперь к рассмотрению одноканальной СМО с ожиданием без
ограничения на вместимость блока ожидания (т. е. N → ∞ ) Остальные условия
функционирования СМО остаются без изменений.
Стационарный режим функционирования данной СМО существует при
t → ∞ для любого n = 0,1,2,... и когда λ < µ . Система алгебраических
уравнений, описывающих работу СМО при t → ∞ для любого n = 0,1,2,... , имеет
вид
− λ ⋅ P0 + µ ⋅ P1 = 0, n = 0
(6.20)

λ
⋅
P
+
µ
⋅
P
−
(
λ
+
µ
)
⋅
P
=
0
,
n
>
0

n −1
n +1
n
Решение данной системы уравнений имеет вид
Pn = (1 − ψ )ψ n , n = 0,1,2,...
где
ψ=
λ
< 1.
µ
114
(6.21)
Если ψ < 1 , то очередь будет уменьшаться, если ψ > 1 , то очередь растет до
бесконечности
Характеристики одноканальной СМО с ожиданием, без ограничения на
длину очереди, следующие:
− среднее число находящихся в системе клиентов (заявок) на
обслуживание:
∞
LS = ∑ n ⋅ Pn =
n=0
ψ
1 −ψ
(6.22)
− средняя продолжительность пребывания клиента в системе:
L
1
WS = S =
λ [µ ⋅ (1 − ψ )]
− среднее число клиентов в очереди на обслуживании:
(6.23)
λ
ψ2
Lq = LS − =
µ (1 − ψ )
(6.24)
− средняя продолжительность пребывания клиента в очереди:
L
ψ
Wq = q =
λ [µ ⋅ (1 − ψ )]
(6.25)
Пример 6.3
Вспомним о ситуации, рассмотренной в примере 6.2, где речь идет о
функционировании поста диагностики. Пусть рассматриваемый пост диагностики
располагает неограниченным количеством площадок для стоянки прибывающих на
обслуживание автомобилей, т. е. длина очереди не ограничена.
Требуется определить финальные значения следующих вероятностных
характеристик:
− вероятности состояний системы (поста диагностики);
− среднее число автомобилей, находящихся в системе (на обслуживании и в
очереди);
− среднюю продолжительность пребывания автомобиля в системе (на
обслуживании и в очереди);
− среднее число автомобилей в очереди на обслуживании;
− среднюю продолжительность пребывания автомобиля в очереди.
Решение
1. Параметр потока обслуживания µ и приведенная интенсивность потока
автомобилей ψ определены в примере 6.2:
µ =0,952; ψ =0,893.
2. Вычислим предельные вероятности системы по формулам
P0 = 1 − ψ = 1 − 0,893 = 0,107 ;
P1 = (1 −ψ ) ⋅ψ = (1 − 0,893) ⋅ 0,893 = 0,096 ;
P2 = (1 − ψ ) ⋅ψ 2 = (1 − 0,893) ⋅ 0,893 2 = 0,085 ;
P3 = (1 − ψ ) ⋅ψ 3 = (1 − 0,893) ⋅ 0,8933 = 0,076 ;
115
P4 = (1 − ψ ) ⋅ψ 4 = (1 − 0,893) ⋅ 0,893 4 = 0,068 ;
P5 = (1 − ψ ) ⋅ψ 5 = (1 − 0,893) ⋅ 0,8935 = 0,061 и т.д.
Следует отметить, что P0 определяет долю времени, в течение которого пост
диагностики вынужденно бездействует (простаивает). В нашем примере она
составляет 10,7%, так как P0 = 0,107.
3. Среднее число автомобилей, находящихся в системе (на обслуживании и в
очереди):
ψ
0,893
LS =
=
= 8,346 ед.
1 − ψ 1 − 0,893
4. Средняя продолжительность пребывания клиента в системе:
L
1
1
WS = S =
=
= 9,817 час.
λ [µ ⋅ (1 − ψ )] [0,952 ⋅ (1 − 0,893)]
5. Среднее число автомобилей в очереди на обслуживание:
λ
ψ2
0,893 2
Lq = L S − =
=
= 7,453 .
µ (1 − ψ ) (1 − 0,893)
6. Средняя продолжительность пребывания автомобиля в очереди:
ψ
0,893
Wq =
=
= 8,766 час.
[µ ⋅ (1 − ψ )] 0,952 ⋅ (1 − 0,893)
7. Относительная пропускная способность системы:
q=1
т. е. каждая заявка, пришедшая в систему, будет обслужена.
8. Абсолютная пропускная способность:
A = λ ⋅ q = 0,85 ⋅ 1 = 0,85 .
Следует отметить, что предприятие, осуществляющее диагностику автомобилей,
прежде всего интересует количество клиентов, которое посетит пост диагностики
при снятии ограничения на длину очереди.
Допустим, в первоначальном варианте количество мест для стоянки прибывающих
автомобилей было равно трем (см. пример 6.2). Частота т возникновения ситуаций,
когда прибывающий на пост диагностики автомобиль не имеет возможности
присоединиться к очереди:
m = λ ⋅ PN .
В нашем примере при N = 3 + 1 = 4 и ψ = 0,893
m = λ ⋅ PN ⋅ψ 4 = 0,85 ⋅ 0,284 ⋅ 0,8934 = 0,134 автомобиля в час
При 12-часовом режиме работы поста диагностики это эквивалентно тому, что пост
диагностики в среднем за смену (день) будет терять 12 • 0,134 = 1,6 автомобиля.
Снятие ограничения на длину очереди позволяет увеличить количество
обслуженных клиентов в нашем примере в среднем на 1,6 автомобиля за смену (12ч.
работы) поста диагностики. Ясно, что решение относительно расширения площади
для стоянки автомобилей, прибывающих на пост диагностики, должно основываться
на оценке экономического ущерба, который обусловлен потерей клиентов при
наличии всего трех мест для стоянки этих автомобилей.
116
6.3 Многоканальная модель с пуассоновским входным потоком и
экспоненциальным распределением длительности обслуживания
В подавляющем большинстве случаев на практике системы массового
обслуживания являются многоканальными, и, следовательно, модели с n
обслуживающими каналами (где n > 1 ) представляют несомненный интерес.
Процесс массового обслуживания, описываемый данной моделью,
характеризуется интенсивностью входного потока λ , при этом параллельно
может обслуживаться не более n клиентов (заявок). Средняя
1
продолжительность обслуживания одной заявки равняется
. Входной и
µ
выходной потоки являются пуассоновскими. Режим функционирования того
или иного обслуживающего канала не влияет на режим функционирования
других обслуживающих каналов системы, причем длительность процедуры
обслуживания каждым из каналов является случайной величиной, подчиненной
экспоненциальному закону распределения. Конечная цель использования n
параллельно включенных обслуживающих каналов заключается в повышении
(по сравнению с одноканальной системой) скорости обслуживания требований
за счет обслуживания одновременно n клиентов.
Граф состояний многоканальной системы массового обслуживания с
отказами имеет вид, показанный на рис. 6.3.
Поток заявок последовательно переводит систему из любого левого
состояния в соседнее правое с одной и той же интенсивностью λ .
Интенсивность же потока обслуживаний, переводящих систему из любого
правого состояния в соседнее левое, постоянно меняется в зависимости от
состояния. Действительно, если СМО находится в состоянии S 2 (два канала
заняты), то она может перейти в состояние S1 (один канал занят), когда
закончит обслуживание либо первый, либо второй канал, т.е. суммарная
интенсивность их потоков обслуживаний будет 2µ . Аналогично суммарный
поток обслуживаний, переводящий СМО из состояния S 3 (три канала заняты) в
S 2 , будет иметь интенсивность 3µ , т.е. может освободиться любой из трех
каналов и т.д.
λ
S0
λ
S1
µ
λ
S2
2µ
3µ
...
...
λ
λ
Sk
kµ
...
...
(k+1)µ
λ
Sn
nµ
Рис. 6.3. Граф состояний многоканальной СМО с отказами
Состояния СМО имеют следующую интерпретацию:
S 0 - все каналы свободны;
117
S1 - занят один канал, остальные свободны;
…………………………………………………….
S k - заняты ровно k каналов, остальные свободны;
…………………………………………………….
S n - заняты все n каналов, остальные свободны;
Уравнения Колмогорова для вероятностей
P0 ,..., Pk ,..., Pn будет иметь следующий вид:
состояний
 dP0
 dt = −λ ⋅ P0 + µ ⋅ P1

..............................
 dP
k
= λ ⋅ Pk −1 − (λ + k ⋅ µ ) ⋅ Pk + µ ⋅ (k + 1) ⋅ Pk +1 , 1 ≤ k ≤ n − 1

dt

...............................
 dP
 n = λ ⋅ Pn−1 − µ ⋅ n ⋅ Pn
 dt
Начальные условия решения системы таковы:
P0 (0) = 1 , P1 (0) = P2 (0) = ... = Pk (0) = ... + Pn (0) = 0 .
Стационарное решение системы имеет вид:
ψk

k

k! = ψ ⋅ P , k = 0,1,2,..., n
P
=
 k
0
n
ψk
k!

∑
k = 0 k!


1
 P0 = n k , k = 0,1,2,..., n
ψ

∑

k = 0 k!
где ψ =
системы
(6.26)
(6.27)
λ
. Это приведенная интенсивность потока заявок или интенсивность
µ
нагрузки канала. Она выражает среднее число заявок, приходящее за среднее
время обслуживания одной заявки.
Формулы для вычисления вероятностей Pk называются формулами
Эрланга.
6.3.1 Многоканальная СМО с отказами
Определим
вероятностные
характеристики
многоканальной СМО с отказами в стационарном режиме:
− вероятность отказа:
Pотк = Pn =
ψn
n!
⋅ P0 ,
функционирования
(6.28)
118
так как заявка получает отказ, если приходит в момент, когда все n каналов
заняты. Величина Pотк характеризует полноту обслуживания входящего потока;
− вероятность того, что заявка будет принята к обслуживанию (она же относительная пропускная способность системы q) дополняет Pотк до
единицы:
q = 1 − Pотк = 1 −
ψn
⋅ P0
n!
− абсолютная пропускная способность
A = λ ⋅ q = λ ⋅ (1 − Pотк )
(6.29)
(6.30)
− среднее число каналов, занятых обслуживанием ( k ) следующее:
n
k = ∑ k ⋅ Pk = ψ ⋅ (1 − Pотк ) .
(6.31)
k =1
Величина k характеризует степень загрузки СМО.
Пример 6.4
Пусть n-канальная СМО представляет собой вычислительный центр (ВЦ) с тремя (n
= 3) взаимозаменяемыми ПЭВМ для решения поступающих задач. Поток задач,
поступающих на ВЦ, имеет интенсивность λ = 1 задаче в час. Средняя
продолжительность обслуживания t обсл = 1,8 час. Поток заявок на решение задач и
поток обслуживания этих заявок являются простейшими.
Требуется вычислить финальные значения:
− вероятности состояний ВЦ;
− вероятности отказа в обслуживании заявки;
− относительной пропускной способности ВЦ;
− абсолютной пропускной способности ВЦ;
− среднего числа занятых ПЭВМ на ВЦ.
Определите, сколько дополнительно надо приобрести ПЭВМ, чтобы увеличить
пропускную способность ВЦ в 2 раза.
Решение
1. Определим параметр
1
1
µ=
=
= 0,555
t обсл 1,8
µ потока обслуживании:
2. Приведенная интенсивность потока заявок
λ
1
ψ = =
= 1,8 .
µ 0,555
3. Предельные вероятности состояний найдем по формулам Эрланга (6.27):
P1 =
P2 =
ψ
1!
⋅ P0 = 1,8 ⋅ P0 ;
ψ2
2!
⋅ P0 = 1,62 ⋅ P0 ;
119
P3 =
P0 =
ψ3
⋅ P0 = 0,97 ⋅ P0
3!
1
3
∑
ψk
;
1
=
≈ 0,186 ;
1 + 1,8 + 1,62 + 0,97
k!
P1 ≈ 1,8 ⋅ 0,186 ≈ 0,344 ;
P2 ≈ 1,62 ⋅ 0,186 ≈ 0,301 ;
P3 ≈ 0,97 ⋅ 0,186 ≈ 0,18 .
k =0
4. Вероятность отказа в обслуживании заявки
Pотк = P3 = 0,18 .
5. Относительная пропускная способность ВЦ
q = 1 − Pотк = 1 − 0,18 = 0,82 .
6. Абсолютная пропускная способность ВЦ
A = λ ⋅ q = 1 ⋅ 0,82 = 0,82 .
7. Среднее число занятых каналов – ПЭВМ
k = ψ ⋅ (1 − Pотк ) = 1,8 ⋅ (1 − 018) = 1,476 .
Таким образом, при установившемся режиме работы СМО в среднем будет занято
1,5 компьютера из трех - остальные полтора будут простаивать. Работу
рассмотренного ВЦ вряд ли можно считать удовлетворительной, так как центр не
обслуживает заявки в среднем в 18% случаев ( P3 = 0,180). Очевидно, что
пропускную способность ВЦ при данных λ и µ можно увеличить только за счет
увеличения числа ПЭВМ.
Определим, сколько нужно использовать ПЭВМ, чтобы сократить число
необслуженных заявок, поступающих на ВЦ, в 10 раз, т.е. чтобы вероятность отказа
в решении задач не превосходили 0,0180. Для этого используем формулу (6.28):
Pотк =
ψn
⋅ P0
n!
Составим следующую таблицу:
n
1
2
0,357
0,226
P0
Pотк
0,643
0,367
3
0,186
4
0,172
5
0,167
6
0,166
0,18
0,075
0,026
0,0078
6.3.2 Многокональная СМО с ожиданием
Многоканальная СМО с ожиданием без ограничения на длину очереди
Рассмотрим многоканальную систему массового обслуживания с
ожиданием. Процесс массового обслуживания при этом характеризуется
следующим: входной и выходной потоки являются пуассоновскими с
интенсивностями λ и µ соответственно; параллельно обслуживаться могут не
более S клиентов. Система имеет S каналов обслуживания. Средняя
120
продолжительность обслуживания одного клиента равна -
1
µ
.
В установившемся режиме функционирование многоканальной СМО с
ожиданием и неограниченной очередью может быть описано с помощью
системы алгебраических уравнений:
0 = λ ⋅ Pn −1 − (λ + n ⋅ µ ) ⋅ Pn + (n + 1) µ ⋅ Pn +1 ,
при 1 ≤ n < S
(6.32)
при n ≥ S
0 = λ ⋅ Pn −1 − (λ + S ⋅ µ ) ⋅ Pn + S ⋅ µ ⋅ Pn +1 .
Решение системы уравнений (6.32) имеет вид
ψn

 Pn = n! ⋅ P0 ,
при 1 ≤ n < S

n
при n ≥ S
P = ψ
⋅
P
,
n
0

S!S n − S
(6.33) (6.34)
где
−1


 S −1 ψ n

ψS
P0 = ∑
(6.35)
+

ψ
n = 0 n!



S!1 −  

 S  
Решение будет действительным, если выполняется следующее условие:
 λ 
 µ ⋅ S  < 1 , где S – число каналов.


Вероятностные характеристики функционирования в стационарном
режиме многоканальной СМО с ожиданием и неограниченной очередью
определяются по следующим формулам:
− вероятность того, что в системе находится n клиентов на обслуживании,
определяется по формулам (6.33) и (6.34);
− среднее число клиентов в очереди на обслуживание
 S ⋅ψ 
Lq = 
⋅ PS
(6.36)
2 
(
S
−
ψ
)


− среднее число находящихся
обслуживание и в очереди)
LS = Lq + ψ
− средняя продолжительность
обслуживание) в очереди
L
Wq = q
в
системе
клиентов
(заявок
на
(6.37)
пребывания
клиента
(заявки
(6.38)
λ
121
на
− средняя продолжительность пребывания клиента в системе
1
WS = Wq +
µ
(6.39)
Рассмотрим примеры многоканальной системы массового обслуживания с
ожиданием.
Пример 6.5
Механическая мастерская завода с тремя постами (каналами) выполняет ремонт
малой механизации. Поток неисправных механизмов, прибывающих в мастерскую, пуассоновский и имеет интенсивность λ = 2,5 механизма в сутки, среднее время
ремонта одного механизма распределено по показательном у закону и равно t = 0,5
сут. Предположим, что другой мастерской на заводе нет, и, значит, очередь
механизмов перед мастерской может расти практически неограниченно.
Требуется вычислить
следующие предельные значения вероятностных
характеристик системы:
− вероятности состояний системы;
− среднее число заявок в очереди на обслуживание;
− среднее число находящихся в системе заявок;
− среднюю продолжительность пребывания заявки в очереди;
− среднюю продолжительность пребывания заявки в системе.
Решение
1. Определим параметр потока обслуживаний
1 1
µ= =
=2
t 0,5
2. Приведенная интенсивность потока заявок
λ 2,5
ψ = =
= 1,25 ,
µ
2
2,5
λ
при этом ⋅ S =
⋅ 3 = 0,41 .
µ
2
λ
Поскольку
µ⋅S
<1, то очередь не растет безгранично и в системе наступает
предельный стационарный режим работы.
3. Вычислим вероятности состояний системы:


S
 S −1 ψ n

ψ
P0 =  ∑
+

n=0 n! S! 1 − ψ  
 S  


1
=
1 +ψ +
ψ
2
2
+
ψ
3
 ψ
61 − 
3

−1
=
=
1
ψ
ψ3
1+
+
+
1!
2!
 ψ
1
ψ
2
=
3!1 − 
3

1
2
1,25
1,253
1 + 1,25 +
+
2
 1,25 
61 −

3 

122
;
= 0,279
P1 =
ψ1
1!
⋅ P0 = 1,25 ⋅ 0,279 = 0,349 ;
ψ2
1,25 2
P2 =
⋅ P0 =
⋅ 0,279 = 0,218 ;
2!
2!
ψ3
1,25 3
P3 =
⋅ P0 =
⋅ 0,279 = 0,091 ;
3!
3!
ψ4
1,25 4
P4 =
⋅ P0 =
⋅ 0,279 = 0,028 .
4!
4!
4. Вероятность отсутствия очереди у мастерской
Pот.о = P0 + P1 + P2 + P3 ≈ 0,279 + 0,349 + 0,218 + 0,091 = 0,937 .
5. Среднее число заявок в очереди на обслуживание
 S ⋅ψ 
 3 ⋅ 1,25 
Lq = 
⋅
P
=
⋅ 0,091 = 0,111 .


S
2
2
 (S − ψ ) 
 (3 − 1,25) 
6. Среднее число находящихся в системе заявок
LS = Lq + ψ = 0,111 + 1,25 = 1,361 .
7. Средняя продолжительность пребывания механизма в очереди на обслуживание
Lq 0,111
=
= 0,044 суток.
Wq =
λ
2,5
8. Средняя продолжительность пребывания механизма в мастерской (в системе)
1
1
WS = Wq + = 0,044 + = 0,544 суток.
µ
2
Многоканальная СМО с ожиданием и ограничением на длину очереди
Конечные формулы приведены ниже.
(N -1) – ограничение очереди.
− предельные вероятности
−1
N −1

ψ 
n +1 
 ψ 1 −  
n 

P0 = 1 +

 ψ 
n ⋅ n!1 −  

n 


ψn

 Pn = n! ⋅ P0 ,
при 1 ≤ n < S

n+S
при n ≥ S
P = ψ ⋅ P ,
n
0

n!n S
− вероятность отказа
Pотк = Pn + ( N −1) =
(6.40)
(6.41) (6.42)
ψ n + N −1
P0
n N −1 ⋅ n!
− абсолютная пропускная способность
123
(6.43)
 ψ n + N −1 
A = λq = λ 1 − N −1
P0 
 n ⋅ n! 
− относительная пропускная способность
q = 1 − Pотк = 1 −
ψ n + N −1
P0
n N −1 ⋅ n!
− среднее число клиентов в очереди на обслуживание
N −1
 
ψ  ψ  
n =1
ψ P0 1 −  N − ( N − 1)   
n  n  
 
Lq =
2
 ψ
n ⋅ n!1 − 
n

− среднее число занятых каналов
 ψ n + N −1 
k = ψ 1 − N −1
P0 
n
⋅
n
!


− среднее число заявок в системе
LS = Lq + k
(6.44)
(6.45)
(6.46)
(6.47)
(6.48)
СМО с ограниченным временем ожидания
На практике часто встречается СМО с так называемыми «нетерпеливыми»
заявками. Такие заявки могут уйти из очереди, если время ожидания превышает
некоторую величину. В частности, такого рода заявки возникают в различных
технологических системах, в которых задержка с началом обслуживания может
привести к потере качества продукции, в системах оперативного управления,
когда срочные сообщения теряют ценность (или даже смысл), если они не
поступают на обслуживание в течение определенного времени.
В простейших математических моделях таких систем предполагается, что
заявка может находиться в очереди на случайное время, распределенное по
показательному закону с некоторым параметром ν , т.е. можно условно считать,
что каждая заявка, стоящая в очереди на обслуживание, может покинуть
систему с интенсивностью ν .
Соответствующие показатели эффективности СМО с ограниченным
временем получаются на базе результатов, полученных для процесса гибели и
размножения.
6.4 Модель обслуживания машинного парка
Модель обслуживания машинного парка представляет собой модель
замкнутой системы массового обслуживания.
Для замкнутых СМО характерным считается ограниченное число
источников заявок, причем каждый источник «блокируется» на время
обслуживания его заявки (т.е. он не выдает новых заявок).
До сих пор мы рассматривали только такие системы массового
124
обслуживания, для которых интенсивность λ входящего потока заявок не
зависит от состояния системы. В этом случае источник заявок является
внешним по отношению к СМО и генерирует неограниченный поток
требований. Рассмотрим системы массового обслуживания, для которых λ
зависит от состояния системы, при чем источник требований является
внутренним и генерирует ограниченный поток заявок.
Например, обслуживается машинный парк, состоящий из N машин,
бригадой R механиков (N > R), причем каждая машина может обслуживаться
только одним механиком. Здесь машины являются источниками требований
(заявок на обслуживание), а механики - обслуживающими каналами.
Неисправная машина после обслуживания используется по своему прямому
назначению и становится потенциальным источником возникновения
требований на обслуживание. Очевидно, что интенсивность λ зависит от того,
сколько машин в данный момент находится в эксплуатации (N - k) и сколько
машин обслуживается или стоит в очереди, ожидая обслуживания (k).
В рассматриваемой модели емкость источника требований следует считать
ограниченной. Входящий поток требований исходит из ограниченного числа
эксплуатируемых машин (N - k), которые в случайные моменты времени
выходят из строя и требуют обслуживания. При этом каждая машина из (N - k)
находится в эксплуатации. Генерирует пуассоновский поток требований с
интенсивностью λ независимо от других объектов, общий (суммарный)
входящий поток имеет интенсивность ( N − k ) ⋅ λ . Требование, поступившее в
систему в момент, когда свободен хотя бы один канал, немедленно идет на
обслуживание. Если требование застает все каналы занятыми обслуживанием
других требований, то оно не покидает систему, а становится в очередь и ждет,
пока один из каналов не станет свободным.
Таким образом, в замкнутой системе массового обслуживания входящий
поток требований формируется из выходящего.
Состояние S k системы характеризуется общим числом требований,
находящихся на обслуживании и в очереди, равным k. Для рассматриваемой
замкнутой системы, очевидно, k = 0,1,2,..., N . При этом если система находится
в состоянии S k , то число объектов, находящихся в эксплуатации, равно (N - k).
Если λ - интенсивность потока требований в расчете на одну машину, то:
( N − k ) ⋅ λ , 0 ≤ k ≤ N
λk = 
;
0
.
k
>
N

k ⋅ µ , 0 ≤ k ≤ R ,

µ k = R ⋅ µ , R ≤ k ≤ N ,
0,
k > N.

125
Система алгебраических уравнений, описывающих работу замкнутой СМО
в стационарном режиме, выглядит следующим образом:
0 = −ψ ⋅ N ⋅ P0 + P0 ;
0 = ( N − k + 1) ⋅ψ ⋅ P − [( N − k ) ⋅ψ + k ] ⋅ P + (k + 1) ⋅ P ,0 < k < R

k −1
k
k +1
(6.49)

[
]
ψ
ψ
=
−
+
⋅
⋅
−
(
−
)
⋅
+
⋅
+
⋅
≤
<
0
(
N
k
1
)
P
N
k
R
P
R
P
,
R
k
N
k −1
k
k +1

0 = ψ ⋅ PN −1 − R ⋅ PN .
Решая данную систему, находим вероятность k-гo состояния:
 N !⋅ψ k
 k!⋅( N − k )! ⋅ P0 , 1 ≤ k < R

Pk = 
(6.50)
k
N
!
⋅
ψ

⋅P, R≤k ≤N
 R!⋅R k − R ⋅ ( N − k )! 0
N
Величина P0 определяется из условия нормирования ∑ Pk полученных
k =0
результатов по формулам (6.41) для Pk , k = 0,1,2,..., N . Определим следующие
вероятностные характеристики системы:
− среднее число требований в очереди на обслуживание:
N
Lq = ∑ (k − R ) ⋅ Pk
(6.51)
k =R
− среднее число требований, находящихся в системе (на обслуживании и
в очереди)
N
LS = ∑ k ⋅ Pk
(6.52)
R =1
− среднее число механиков (каналов), «простаивающих» из-за отсутствия
работы
R −1
R n = ∑ ( R − k ) ⋅ Pk
(6.53)
k =0
− коэффициент простоя обслуживаемого объекта (машины) в очереди
L
α1 = q
(6.54)
N
− коэффициент использования объектов (машин)
L 
α2 =1 −  S 
(6.55)
N
 
− коэффициент простоя обслуживающих каналов (механиков)
Rn
α3 =
(6.56)
R
− среднее время ожидания обслуживания (время ожидания обслуживания
в очереди)
1 1 − α2  1
−
Wq = ⋅ 
(6.57)
λ  α 2  µ
126
Пример 6.6
Пусть для обслуживания десяти персональных компьютеров (ПК) выделено два
инженера одинаковой производительности. Поток отказов (неисправностей) одного
компьютера - пуассоновский с интенсивностью λ = 0,2. Время обслуживания ПК
подчиняется показательному закону. Среднее время обслуживания одного ПК одним
инженером составляет: t =1,25 час.
Возможны следующие варианты организации обслуживания:
оба инженера обслуживают все десять компьютеров, так что при отказе ПК его
обслуживает один из свободных инженеров, в этом случае R = 2, N = 10;
каждый из двух инженеров обслуживает по пять закрепленных за ним ПК. В этом
случае R = 1, N = 5.
Необходимо выбрать наилучший вариант организации обслуживания ПК.
Решение
1. Вычислим параметр обслуживания
1
1
µ= =
= 0,8 .
t 1,25
2. Приведенная интенсивность
λ 0,2
ψ = =
= 0,25 .
µ 0,8
3. Вычислим вероятностные характеристики СМО для двух вариантов организации
обслуживания ПК.
Вариант 1
1. Определим вероятности состояний системы:
 N !⋅ψ k
⋅ P0 , 1 ≤ k < R

 k!⋅( N − k )!
Pk = 
N !⋅ψ k

⋅P , R ≤ k ≤ N
 R!⋅R k − R ⋅ ( N − k )! 0

10!⋅0,251
P1 =
⋅ P0 = 2,5 ⋅ P0 ;
1!⋅(10 − 1)!
P2 =
P3 =
P4 =
P5 =
P6 =
P7 =
10!⋅0,25 2
2!⋅2 2−2 ⋅ (10 − 2)!
10!⋅0,25 3
2!⋅2 3− 2 ⋅ (10 − 3)!
⋅ P0 = 2,812 ⋅ P0 ;
⋅ P0 = 2,812 ⋅ P0 ;
10!⋅0,25 4
2!⋅2 4−2 ⋅ (10 − 4)!
10!⋅0,25 5
2!⋅2 5−2 ⋅ (10 − 5)!
10!⋅0,25 6
2!⋅2 6−2 ⋅ (10 − 6)!
10!⋅0,25 7
2!⋅2 7− 2 ⋅ (10 − 7)!
⋅ P0 = 2,461 ⋅ P0 ;
⋅ P0 = 1,864 ⋅ P0 ;
⋅ P0 = 1,154 ⋅ P0 ;
⋅ P0 = 0,577 ⋅ P0 ;
127
P8 =
P6 =
P10 =
10!⋅0,258
2!⋅2 8− 2 ⋅ (10 − 8)!
10!⋅0,25 9
2!⋅2 9−2 ⋅ (10 − 9)!
⋅ P0 = 0,216 ⋅ P0 ;
⋅ P0 = 0,054 ⋅ P0 ;
10!⋅0,2510
2!⋅210−2 ⋅ (10 − 10)!
⋅ P0 = 0,007 ⋅ P0 ;
N
Учитывая, что ∑ Pk =1 и используя результаты расчета Pk , вычислим P0 :
k =0
N
∑ Pk = P0 + 2,5 ⋅ P0 + 2,812 ⋅ P0 + 2,812 ⋅ P0 + ... + 0,007 ⋅ P0 = 1 .
k =0
Откуда P0 = 0,065 .
Тогда P1 ≈ 0,162 ; P2 ≈ 0,183 ; P3 ≈ 0,182 ; P4 ≈ 0,16 ;
P7 ≈ 0,037 ; P8 ≈ 0,014 ; P9 ≈ 0,003 ; P10 ≈ 0,000 .
P5 ≈ 0,11 ;
P6 ≈ 0,075 ;;
− Определим среднее число компьютеров в очереди на обслуживание:
N
Lq = ∑ (k − R) ⋅ Pk = 0 + (3 − 2) ⋅ 0,182 + (4 − 2) ⋅ 0,16 + (5 − 2) ⋅ 0,11 + (6 − 2) ⋅ 0,075 +
k =R
+ (7 − 2) ⋅ 0,037 + (8 − 2) ⋅ 0,014 + (9 − 2) ⋅ 0,003 = 0,182 + 0,32 + 0,33 + 0,3 + 0,185 +
+ 0,084 + 0,021 = 1,42
− Определим среднее число ПК, находящихся в системе (на обслуживании и в
очереди):
N
LS = ∑ k ⋅ Pk = 1 ⋅ P1 + 2 ⋅ P2 + 3 ⋅ P3 + 4 ⋅ P4 + 5 ⋅ P5 + 6 ⋅ P6 + 7 ⋅ P7 +
R =1
8 ⋅ P8 + 9 ⋅ P9 + 10 ⋅ P10 = 0.162 + 2 ⋅ 0,183 + 3 ⋅ 0,182 + 4 ⋅ 0,16 + 5 ⋅ 0,11 +
+ 6 ⋅ 0,075 + 7 ⋅ 0,037 + 8 ⋅ 0,014 + 9 ⋅ 0,003 + 10 ⋅ 0 = 3,11
− Определим среднее число инженеров, простаивающих из-за отсутствия работы:
R −1
R n = ∑ ( R − k ) ⋅ Pk = (2 − 0) ⋅ P0 + (2 − 1) ⋅ P1 = 2 ⋅ 0,065 + 1 ⋅ 0,162 = 0,292 .
k =0
− Коэффициент простоя персонального компьютера в очереди следующий:
Lq 1,42
α1 =
=
= 0,142 .
N
10
− Коэффициент использования компьютеров определяется по формуле:
L 
 3,11 
α2 = 1−  S  = 1− 
 = 0,689 .
 10 
N 
− Коэффициент простоя обслуживающих инженеров рассчитывается так:
Rn
α3 =
.
R
− Среднее время ожидания ПК обслуживания
1 1−α2  1
1 1 − 0,689 1
 − =
Wq = ⋅ 
⋅
−
= 1,01 час.
λ  α 2  µ 0,2 0,689
0,8
Вариант 2
128
Определим вероятности состояний системы:
 N !⋅ψ k
⋅ P0 , 1 ≤ k < R

 k!⋅( N − k )!
Pk = 
N !⋅ψ k

⋅P , R ≤ k ≤ N
 R!⋅R k − R ⋅ ( N − k )! 0

10!⋅0,251
P1 =
⋅ P0 = 1,25 ⋅ P0 ;
1!⋅(5 − 1)!
P2 =
5!⋅0,25 2
1!⋅2 2−1 ⋅ (5 − 2)!
⋅ P0 = 1,25 ⋅ P0 ;
P3 =
5!⋅0,25 3
⋅ P0 = 0,938 ⋅ P0 ;
(5 − 3)!
P4 =
5!⋅0,25 4
⋅ P0 = 0,469 ⋅ P0 ;
(5 − 4)!
P5 = 5!⋅0,255 ⋅ P0 = 0,117 ⋅ P0 ;
N
∑ Pk = P0 + 1,25 ⋅ P0 + 1,25 ⋅ P0 + 0,938 ⋅ P0 + 0,469 ⋅ P0 + 0,117 ⋅ P0 = 1 .
k =0
Откуда P0 = 0,199 .
Тогда P1 ≈ 0,249 ; P2 ≈ 0,249 ; P3 ≈ 0,187 ; P4 ≈ 0,093 ; P5 ≈ 0,023 ;
− Среднее число компьютеров в очереди на обслуживание таково:
N
Lq = ∑ (k − R ) ⋅ Pk = (2 − 1) ⋅ 0,249 + (3 − 1) ⋅ 0,187 + (4 − 1) ⋅ 0,093 + (5 − 1) ⋅ 0,023 = 0,994
k =R
− Среднее число компьютеров, находящихся на обслуживании и в очереди
рассчитывается так:
N
LS = ∑ k ⋅ Pk = 1 ⋅ P1 + 2 ⋅ P2 + 3 ⋅ P3 + 4 ⋅ P4 + 5 ⋅ P5 =
R =1
= 0,249 + 2 ⋅ 0,249 + 3 ⋅ 0,187 + 4 ⋅ 0,093 + 5 ⋅ 0,023 = 1,8
− Среднее число инженеров, простаивающих из-за отсутствия работы:
R −1
R n = ∑ ( R − k ) ⋅ Pk = (1 − 0) ⋅ P0 = 0,199 .
k =0
− Коэффициент простоя персонального компьютера в очереди:
Lq 0,994
α1 =
=
= 0,199
N
5
− Коэффициент использования компьютеров:
L 
 1,8 
α 2 = 1 −  S  = 1 −   = 0,64 .
 5 
N 
− Коэффициент простоя обслуживающих инженеров:
R
0,199
α3 = n =
= 0,199 .
R
1
− Среднее время ожидания ПК обслуживания:
129
1 1−α2  1
1 1 − 0,64 1
 − =
⋅ 
⋅
−
= 1,56 час.
0,8
λ  α 2  µ 0,2 0,64
Сведем полученные результаты по двум вариантам в следующую таблицу:
Варианты
Итоговые вероятностные
характеристики
1
2
α1
0,142
0,199
Wq =
α2
α3
Wq , час
0,689
0,64
0,146
0,199
1,01
1,56
Таким образом, в варианте 1 каждый компьютер стоит в очереди в ожидании начала
его обслуживания приблизительно 0,142 части рабочего времени, что меньше этого
показателя при варианте 2 организации работ. Далее в варианте 1 вероятность того,
1
что ПК и любой момент времени будет работать выше, чем в варианте 2, и равна α 2
= 0,689 > α 2 = 0,64. Очевидно, вариант 1 организации работ по обслуживанию ПК
эффективнее, чем вариант 2.
2
Резюме
Из материала, изложенного в данной лекции, можно сделать следующие
выводы.
− Предметом теории массового обслуживания является установление
зависимости между факторами, определяющими функциональные
возможности системы массового обслуживания, и эффективностью ее
функционирования.
− Системы массового обслуживания - это такие системы, в которые в
случайные моменты времени поступают заявки на обслуживание, при этом
поступившие заявки обслуживаются с помощью имеющихся в
распоряжении системы каналов обслуживания.
− Основными компонентами системы массового обслуживания любого вида
являются: входной поток поступающих требований или заявок на
обслуживание; дисциплина очереди; механизм обслуживания.
− По характеру случайного процесса, происходящего в системе массового
обслуживания (СМО), различают системы марковские и немарковские.
− Независимо от характера процесса, протекающего в системе массового
обслуживания, различают два основных вида СМО: системы с отказами и
системы с очередью.
− По числу каналов обслуживания СМО делятся на одноканальные и
многоканальные.
Вопросы для самоконтроля
1. Какие системы относятся к системам массового обслуживания?
2. Что относится к основным компонентам системы массового
обслуживания?
3. Что такое входной поток поступающих требований на обслуживание?
130
Что такое дисциплина очереди?
Что такое механизм обслуживания?
Какие СМО относятся к марковским?
Приведите классификацию систем массового обслуживания.
Перечислите возможные критерии эффективности функционирования
СМО.
9. Приведите характеристику и основные рассчитываемые показатели
одноканальной модели.
10. Приведите граф состояний одноканальной СМО с отказами.
11. Приведите граф состояний одноканальной СМО с ожиданием (схему
гибели и размножения)
12. Приведите характеристику и основные рассчитываемые показатели
многоканальной модели.
13. Приведите граф состояний многоканальной СМО с отказами.
14. В чем заключается особенность модели обслуживания машинного парка?
4.
5.
6.
7.
8.
131
7 СИСТЕМЫ УПРАВЛЕНИЯ ЗАПАСАМИ
7.1 Основные понятия
Возникновение теории управления запасами можно связать с работами
Ф. Эджуорта и Ф. Харриса, появившимися в конце XIX – начале XX вв., в
которых исследовалась простая оптимизационная модель определении
экономичного размера партии поставки для складской системы с постоянным
равномерным расходом и периодическим поступлением хранимого продукта.
Запасами называется любой ресурс на складе, который используется для
удовлетворения будущих нужд.
Примерами запасов могут служить полуфабрикаты, готовые изделия,
материалы, различные товары, а также такие специфические товары, как
денежная наличность, находящаяся в хранилище. Большинство организаций
имеют примерно один тип системы планирования и контроля запасов. В банке
используются методы контроля за количеством наличности, в больнице
применяются методы контроля поставки различных медицинских препаратов.
Простейшая схема системы управления запасами выглядит следующим
образом (рис. 7.1):
Поставки ресурсов
Склад, хранилище
Приход
Спрос, потребности
Расход
Поставщик
Резервный запас
материальных средств
Заказ на поставки
Анализ потребностей
Рис. 7.1. Система управления запасами
Существуют причины, побуждающие организации создавать запасы:
1) дискретность поставок при непрерывном потреблении;
2) упущенная прибыль;
3) случайные колебания:
− в спросе за период между поставками;
− в объеме поставок;
− в длительности интервала между поставками;
4) предполагаемые изменения конъюнктуры:
− сезонность спроса;
− сезонность производства;
− ожидаемое повышение цен.
132
Имеются также причины, побуждающие предприятия стремиться к
минимизации запасов на складе:
1) плата за физическое хранение запаса;
2) потери в количестве запаса;
3) моральный износ продукта.
Правильное и своевременное определение оптимальной стратегии
управления запасами, а также нормативного уровня запасов позволяет
высвободить значительные оборотные средства, замороженные в виде запасов,
что, в конечном счете, повышает эффективность используемых ресурсов.
Рассмотрим основные понятия теории управления запасами.
Спрос. Спрос на запасаемый продукт может быть детерминированным (в
простейшем случае – постоянным во времени) или случайным. Случайность
спроса описывается либо случайным моментом спроса, либо случайным
объемом спроса в детерминированные или случайные моменты времени.
Пополнение склада. Пополнение склада может осуществляться либо
периодически через определенные интервалы времени, либо по мере
исчерпания запасов, т. е. снижения их до некоторого уровня.
Объем заказа. При периодическом пополнении и случайном исчерпании
запасов объем заказа может зависеть от того состояния, которое наблюдается в
момент подачи заказа. Заказ обычно подается на одну и ту же величину при
достижении запасом заданного уровня – так называемой точки заказа.
Время доставки. В идеализированных моделях управления запасами
предполагается, что заказанное пополнение доставляется на склад мгновенно.
В других моделях рассматривается задержка поставок на фиксированный или
случайный интервал времени.
Стоимость поставки. Как правило, предполагается, что стоимость
каждой поставки слагается из двух компонент – разовых затрат, не зависящих
от объема заказываемой партии, и затрат, зависящих (чаще всего – линейно) от
объема партии.
Издержки хранения. В большинстве моделей управления запасами
считают объем склада практически неограниченным, а в качестве
контролирующей величины служит объем хранимых запасов. При этом
полагают, что за хранение каждой единицы запаса в единицу времени
взимается определенная плата.
Штраф за дефицит. Любой склад создается для того, чтобы
предотвратить дефицит определенного типа изделий в обслуживаемой системе.
Отсутствие запаса в нужный момент приводит к убыткам, связанным с
простоем оборудования, неритмичностью производства и т. п. Эти убытки в
дальнейшем будем называть штрафом за дефицит.
133
Номенклатура запаса. В простейших случаях предполагается, что на
складе хранится запас однотипных изделий или однородного продукта. В более
сложных случаях рассматривается многоменклатурный запас.
Структура складской системы. Наиболее полно разработаны
математические модели одиночного склада. Однако на практике встречаются и
более сложные структуры: иерархические системы складов с различными
периодами пополнения и временем доставки заказов, с возможностью обмена
запасами между складами одного уровня иерархии и т. п.
В качестве критерия эффективности принятой стратегии управления
запасами выступает функция затрат (издержек), представляющая суммарные
затраты на хранение и поставку запасаемого продукта (в том числе потери от
порчи продукта при хранении и его морального старения, потери прибыли от
омертвления капитала и т. п.) и затраты на штрафы.
Управление запасами состоит в отыскании такой стратегии пополнения
и расхода запасами, при котором функция затрат принимает минимальное
значение.
Ниже рассматриваются простейшие модели управления запасами.
Пусть функции A(t ) , B(t ) и R(t ) выражают соответственно пополнение
запасов, их расход и спрос на запасаемый продукт за промежуток времени [0, t].
В моделях управления запасами обычно используются производные этих
функций по времени a(t ) , b(t ) , r (t ) , называемые соответственно
интенсивностями пополнения, расхода и спроса.
Если функции a (t ) , b(t ) , r (t ) – не случайные величины, то модель
управления запасами считается детерминированной, если хотя бы одна из них
носит случайный характер – стохастической. Если все параметры модели не
меняются во времени, она называется статической, в противном случае –
динамической. Статические модели используются, когда принимается разовое
решение об уровне запасов на определенный период, а динамические – в случае
принятия последовательных решений об уровнях запаса или корректировке
ранее принятых решении с учетом происходящих изменений.
Уровень запаса в момент t определяется основным уравнением запасов
J (t ) = J 0 + A(t ) − B (t )
(7.1)
где J 0 – начальный запас в момент t = 0 .
Уравнение (7.1) чаще используется в интегральной форме:
t
t
0
0
J (t ) = J 0 + ∫ a (t )dt − ∫ b(t )dt
(7.2)
Пример 7.1.
Интенсивность поступления деталей на склад готовой продукции цеха составляет в
начале смены 5 дет./мин, в течение первого часа линейно возрастает, достигая к
134
концу его 10 дет./мин, и затем остается постоянной. Полагая, что поступление
деталей на склад происходит непрерывно в течение всех семи часов смены, а вывоз
деталей со склада производится только в конце работы, необходимо записать
выражение для уровня запаса в произвольный момент времени и, используя его,
найти количество деталей на складе: а) через 30 мин после начала работы; б) в конце
смены.
Решение.
По условию в течение смены не происходит выдачи деталей со склада, т. е. b(t ) = 0 .
Интенсивность пополнения запаса в течение первого часа линейно возрастает, т. е.
a (t ) = kt + b . Учитывая, что a (0) = 5 , получаем b = 5 . Так как в конце часа, т. е. при
t = 60 a (60) = 10 , то 10 = k ⋅ 60 + b , откуда k = 1 / 12 . Таким образом, для первого
часа смены a (t ) = (1 / 12)t + 5 , а затем a (t ) = 10 .
Учитывая продолжительность смены (7 ч = 420 мин) и соотношение (7.2), получаем:
если 0 ≤ t ≤ 60 ,
t
J (t ) = ∫ (t / 12 + 5)dt =
0
t2
+ 5t , и
24
если 60 ≤ t ≤ 420
60
t
J (t ) = ∫ (t / 12 + 5)dt + ∫ 10dt = (t 2 / 24 + 5t )
0
60
60
0
t
+ 10t 60 = 450 + 10t − 600 = 10t − 150 .
Количество деталей на складе через 30 мин после начала работы:
J (30 ) = 900 / 24 + 5 ⋅ 30 = 187,5 , а в конце смены: J (420) = 10 ⋅ 420 − 150 = 4050 .
7.2 Статическая детерминированная модель без дефицита
Предположение о том, что дефицит не допускается, означает полное
удовлетворение спроса на запасаемый продукт, т.е. совпадение функций r (t ) и
b(t ) . Пусть общее потребление запасаемого продукта за рассматриваемый
интервал времени θ равно N. Рассмотрим простейшую модель, в которой
предполагается, что расходование запаса происходит непрерывно с постоянной
интенсивностью, т.е. b(t ) = b . Эту интенсивность можно найти, разделив общее
потребление продукта на время, в течение которого он расходуется:
b=
N
(7.3)
θ
Пополнение заказа происходит партиями одинакового объема, т.е.
функция a (t ) не является непрерывной: a (t ) = 0 при всех t, кроме моментов
поставки продукта, когда a (t ) = n , где n – объем партии. Так как интенсивность
расхода равна b, то вся партия будет использована за время
n
T=
(7.4)
b
Если отсчет времени начать с момента поступления первой партии, то
уровень запаса в начальный момент равен объему этой партии n, т.е. J (0) = n .
Графически уровень запаса в зависимости от времени представлен на рис. 7.2.
135
J
n
b
b
b
b
t
0
T
2T
3T
4T
Θ
Рис. 7.2. Зависимость уровня запасов от времени
На временном интервале [0, T] уровень запаса уменьшается по прямой
J (t ) = n − bt от значения n до нуля. Так как дефицит не допускается, то в
момент Т уровень запаса мгновенно пополняется до прежнего значения n за
счет поступления партии заказа. И так процесс изменения J (t ) повторяется на
каждом временном интервале продолжительностью Т (см. рис. 7.2).
Задача управления запасами состоит в определении такого объема партии
n, при котором суммарные затраты на создание и хранение запаса были бы
минимальными.
Обозначим суммарные затраты через С, затраты на создание запаса – через
C1 , затраты на хранение запаса – через C 2 и найдем эти величины за весь
промежуток времени Т.
Пусть затраты на доставку одной партии продукта, не зависимые от
объема партии, равны c1 , а затраты на хранение одной единицы продукта в
единицу времени – c 2 . Так как за время θ необходимо запастись N единицами
продукта, который доставляется партиями объема n, то число таких партий k
равно:
N θ
=
n T
Отсюда получаем
k=
C1 = c1 k = c1
(7.5)
N
n
(7.6)
136
Мгновенные затраты хранения запаса в момент времени t равны c 2 J (t ) .
Значит, за промежуток времени [0, Т] они составят
T
T
0
0
c 2 ∫ J (t )dt = c 2 ∫ (n − bt )dt ,
или, учитывая (7.4):

n
nt 2
c 2 ∫ J (t )dt = c 2 ∫ (n − t )dt = c 2  nt −
0
0
T
2T

T
c nT

 = 2
.
2
0
nT
Средний запас за промежуток [0, Т] равен
, т.е. затраты на хранение
2
всего запаса при линейном (по времени) его расходе равны затратам на
хранение среднего запаса.
T
T
Учитывая периодичность функции J (t ) (всего за промежуток времени θ
N
«зубцов», аналогичных рассмотренному на отрезке [0, Т]), и
будет k =
n
формулу (7.5), получаем, что затраты хранения запаса за промежуток времени
θ равны:
c 2 nT
c nT N c NT c 2θn
k= 2 ⋅ = 2
=
(7.7)
2
2
n
2
2
Нетрудно заметить, что затраты C1 обратнопропорциональны, а затраты
C 2 прямопропорциональны объему партии n. Графики функций C1 (n) и C 2 (n) ,
а также функции суммарных затрат
C2 =
c1 N c 2θn
+
n
2
приведены на рис. 7.3.
C=
(7.8)
Рис. 7.3. Функции суммарных затрат
137
В точке минимума функции C (n) ее производная C ' (n) = −
c1 N c 2θn
+
= 0,
n
2
откуда
n = n0 =
2c1 N
c 2θ
(7.9)
или, учитывая (7.3):
n0 =
2c1b
c2
(7.10)
Формула (7.10), называемая формулой Уилсона или формулой наиболее
экономичного объема партии, широко используется в экономике. Эта формула
может быть получена и другим способом, если учесть, что произведение
C1C 2 = 0,5c1 c 2 Nθ есть величина постоянная, не зависящая от n. В этом случае,
как известно, сумма двух величин принимает наименьшее значение, когда они
равны, т. е. C1 = C 2 или
c1 N c 2θn
=
,
(7.11)
n
2
откуда получаем (7.9).
Из (7.11) следует, что минимум общих затрат задачи управления запасами
достигается тогда, когда затраты на создание запаса равны затратам на
хранение запаса. При этом минимальные суммарные затраты
C 0 = C (n0 ) =
2c1 N
n
(7.12)
откуда, учитывая (7.9) и (7.3), получим C 0 = 2c1 c 2θN
или
C 0 = θ 2c1 c 2 b
(7.13)
Число оптимальных партий за время θ с учетом (7.5), (7.9) и (7.3) равно:
k0 =
c Nθ
c b
N
= 2
=θ 2 .
n0
2c 2
2c1
Время расхода оптимальной партии на основании (7.4) с учетом (7.9) и
(7.3) равно
T0 =
n0
θ
= n0
b
N
(7.14)
или
T0 =
2c1θ
2c1
=
c2 N
c2b
(7.15)
138
Пример 7.2.
Потребность сборочного предприятия в деталях некоторого типа составляет 120 000
деталей в год, причем эти детали расходуются в процессе производства равномерно
и непрерывно. Детали заказываются раз в год и поставляются партиями одинакового
объема, указанного в заказе. Хранение детали на складе стоит 0,35 ден. ед. в сутки, а
поставка партии – 10 000 ден. ед. Задержка производства из-за отсутствия деталей
недопустима. Определить наиболее экономичный объем партии и интервал между
поставками, которые нужно указать в заказе (предполагается, что поставщик не
допускает задержки поставок).
Решение
По условию затраты на одну партию составляют c1 = 10 000 ден. ед., затраты
хранения единицы запаса в сутки c2 = 0,35 ден. ед. Общий промежуток времени θ =
1 год = 365 дней, а общий объем запаса за этот период N = 120 000 деталей. По
θ
2 ⋅ 10000 ⋅ 120000
формуле (7.9) n0 =
≈ 4335 дет., а по (7.14) T0 = n0
= 13,2 ≈ 13
0,35 ⋅ 365
N
дней.
Итак, наиболее экономичный объем партии равен 4335 деталей, а интервал между
поставками ≈ 13 дней.
На практике, естественно, объем партии может отличаться от оптимального n0 ,
вычисленного по (7.9). Так, в предыдущей задаче может оказаться удобным
заказывать партии по 4 500 или даже по 5 000 деталей и возникает вопрос, как при
этом изменятся суммарные затраты.
Для ответа на этот вопрос разложим функцию C (n) в ряд Тейлора в окрестности
точки n0 , ограничившись первыми тремя членами ряда при достаточно малых
изменениях объема партии ∆n :
C ' ' (n0 ) 2
C (n) = C (n0 ) + C ' (n0 )∆n +
∆n + ...
2!
2c N
Учитывая, что при n = n0 C ' (n) = 0 , C" (n0 ) = 13 , а C 0 = C (n0 ) определяется по
n0
формуле (7.12), найдем:
2c N∆n 2
∆C C (n) − C (n0 ) C" (n0 )∆n 2
=
≈
= 3 1
C0
C ( n0 )
2C (n0 )
n0 (1c1 N / n0 )
Или
∆C 1  ∆n 
≈  
C 0 2  n 0 
2
(7.16)
Формула (7.16) свидетельствует об определенной устойчивости суммарных затрат
по отношению к наиболее экономичному объему партии, ибо при малых ∆n
относительное изменение затрат примерно на порядок меньше относительного
изменения объема партии по сравнению с оптимальным.
Пример 7.3
По условию задачи 7.2 определить, на сколько процентов увеличатся затраты на
создание и хранение запаса по сравнению с минимальными затратами при объеме
заказываемых партий 5 000 деталей.
Решение
139
Относительное изменение объема партии по сравнению с оптимальным n0 = 4335
составляет
∆n / n0 = (5000 − 4335) / 4335 = 0,153 . В соответствии с (7.16)
относительное изменение суммарных затрат составит ∆C / C 0 = 153 2 / 2 ≈ 0,012 , или
лишь 1,2%.
Пример 7.4
В условиях задачи 7.3 предположим, что заказываются не все партии сразу, а каждая
отдельно, причем срок выполнения заказа равен 16 дней. Определить точки заказа, т.
е. при каком уровне запаса следует заказывать следующую партию.
Решение
Так как по результатам решения задачи 7.2 длина интервала между поставками
равна 13,2 дней, то заказ в условиях налаженного производства следует возобновить,
когда уровень запаса достаточен для удовлетворения потребности на 16 – 13,2 = 2,8
дня. Так как ежедневная потребность (интенсивность расхода запаса) равна по
формуле (7.3) b = 120 000/365 = 329 деталей, то заказы должны делаться регулярно
при достижении уровня запаса 329 ⋅ 2,8 ≈ 922 деталей.
7.3 Статическая детерминированная модель с дефицитом
В рассматриваемой модели будем полагать наличие дефицита. Это
означает, что при отсутствии запасаемого продукта, т.е. при J (t ) = 0 спрос
сохраняется с той же интенсивностью r (t ) = b , но потребление запаса
отсутствует – b(t ) = 0 , вследствие чего накапливается дефицит со скоростью b.
График изменения уровня запаса в этом случае представлен на рис. 7.3.
Убывание графика ниже оси абсцисс в область отрицательных значений в
отличие от графика на рис. 7.2 характеризует накопление дефицита.
n
разбивается на два
b
временных интервала, т. е. T = T1 + T2 , где T1 – время, в течение которого
производится потребление запаса, T2 – время, когда запас отсутствует и
накапливается дефицит, который будет перекрыт в момент поступления
следующей партии.
Необходимость покрытия дефицита приводит к тому, что максимальный
уровень запаса s в момент поступления каждой партии теперь не равен ее
объему п, а меньше его на величину дефицита n − s , накопившегося за время
T2 (см. рис. 7.4).
Из рис. 7.3 видно, что каждый период «пилы» T =
Из геометрических соображений легко установить, что
s
n−s
T1 = T , T2 =
T
n
n
140
(7.17)
J
b
S
b
b
b
n
n-S
0
T
T1
T2
T1
2T
T2 T1
3T
T2
T1
4T
t
T2
Θ
Рис. 7.4 Статическая детерминированная модель с дефицитом
В данной модели в функцию суммарных затрат С наряду с затратами C1
(на пополнение запаса) и C 2 (на хранение запаса) необходимо ввести затраты
C 3 – на штраф из-за дефицита, т.е.
C = C1 + C 2 + C 3
Затраты C1 , как и ранее, находим по формуле (7.11). В разд. 7.2 было
показано, что затраты C 2 при линейном расходе запаса равны затратам на
хранение среднего запаса, который за время потребления T1 равен sT1 / 2 ;
поэтому с учетом (7.7) и (7.5) эти затраты составят
c 2 sT1
c 2 s ⋅ sT θ c 2 s 2θ
C2 =
k=
⋅ =
(7.18)
2
2n
T
2n
При расчете затрат C 3 будем считать, что штраф за дефицит составляет в
единицу времени c3 на каждую единицу продукта. Так как средний уровень
дефицита за период T2 равен (n − s )T2 / 2 , то штраф за этот период T2 составит
1
c 3 (n − s )T2 , а за весь период θ с учетом (7.7) и (7.19)
2
2
1
1
n − s θ c 3θ (n − S )
C 3 = c 3 (n − s )T2 k = c 3 (n − s )
T =
(7.19)
2
2
n
T
2n
Теперь, учитывая (7.12), (7.18) и (7.19), суммарные затраты равны
N c 2θs 2 c3θ (n − S ) 2
C = c1 +
+
n
2n
2n
(7.20)
141
Нетрудно заметить, что при n = s формула (7.19) совпадает с ранее
полученной (7.8) в модели без дефицита.
Рассматриваемая задача управления запасами сводится к отысканию
такого объема партии n и максимального уровня запаса s, при которых
функция С (7.19) принимает минимальное значение. Другими словами,
необходимо исследовать функцию двух переменных C (n, s ) на экстремум.
∂C
∂C
Приравнивая частные производные
,
к нулю, получим после
∂n
∂s
преобразований систему уравнений:
n 2 c 3 − (c 2 + c 3 ) s 2 = 2c1 N / θ

(7.21)
c3

s
=
n

c 2 + c3

Решая систему, получаем формулы наиболее экономичного объема
партии n 0 и максимального уровня запаса s 0 для модели с дефицитом1:
n0 =
2c1 N
c 2θ
c 2 + c3
2c1 b c 2 + c 3
=
c3
c2
c3
(7.22)
s0 =
2c1 N
c 2θ
c3
c3
= n0
c 2 + c3
c 2 + c3
(7.23)
Величина
c3
(7.24)
ρ=
c 2 + c3
называется плотностью убытков из-за неудовлетворенного спроса и играет
важную роль в управлении запасами. Заметим, что 0 ≤ ρ ≤ 1. Если значение c3
мало по сравнению с c 2 , то величина ρ близка к нулю: когда c3 значительно
превосходит c 2 , то ρ близка к 1. Недопустимость дефицита равносильна
предположению, что c 3 = ∞ или ρ = 1 .
Используя (7.24), основные формулы (7.22) и (7.23) можно записать
компактнее:
n0 =
2c1b
c2 ρ
(7.25)
s0 = n0 ⋅ ρ
(
)
(7.26)
Следует учесть, что в силу (7.17) и (7.26) T2 / T = s 0 − n 0 / n 0 = 1 − ρ и
T1 / T = s 0 / n 0 = ρ . Поэтому утверждение о том, что плотность убытков из-за
1
С помощью достаточного условия экстремума можно убедиться в том, что действительно при
функция
C (n, s ) достигает минимума.
142
n = n0 , s = s 0
неудовлетворенного спроса равна ρ , означает, что в течение (1 − ρ )100%
времени от полного периода T запас продукта будет отсутствовать.
Из сравнения формул (7.25) и (7.10) следует, что оптимальные объемы
партий для задач с дефицитом и без дефицита при одинаковых параметрах
связаны соотношением
n0 =
n0
ρ
(7.27)
откуда вытекает, что оптимальный объем партии в задаче с дефицитом
всегда больше (в 1
раз), чем в задаче без дефицита.
ρ
Пример 7.5
Найти наиболее экономичный объем партии и интервал между поставками, сохраняя
условия задачи 7.2, кроме недопустимости дефицита, если известно, что отсутствие
на сборке каждой детали приносит в сутки убытки в размере 3,5 ден. ед.
Решение
По условию c3 = 3,5. Ранее было получено по формуле (7.9) n0 = 4335 и по (7.15) T0
= 13,2. Найдем плотность убытков из-за неудовлетворенного спроса по формуле
3,5
(7.24): ρ =
= 0,909 , т.е. 100(1–0,909) = 9,1% времени между поставками
0,35 + 3,5
детали на сборке будут отсутствовать.
4335
Теперь оптимальный размер партии по формуле (7.27) n 0 =
= 4547 . В силу
0,909
(7.15) пропорционально увеличению n0 должен увеличиться интервал между
поставками, т.е. T0 = T0 ρ = 13,2
= 13,8 ≈ 14 дней.
0,909
7.4 Стохастические модели управления запасами
Рассмотрим стохастические модели управления запасами, у которых
спрос является случайным. Этот факт существенным образом сказывается на
характере соответствующих моделей и значительно усложняет их анализ, в
связи с чем в рамках данного раздела ограничимся рассмотрением наиболее
простых моделей.
Предположим, что спрос r за интервал времени Т является случайным и
задан его закон (ряд) распределения p (t ) или плотность вероятностей ϕ (r )
(обычно функции p (t ) и ϕ (r ) оцениваются на основании опытных или
статистических данных). Если спрос r ниже уровня запаса s, то приобретение
(хранение, продажа) излишка продукта требует дополнительных затрат c 2 на
единицу продукта; наоборот, если спрос r выше уровня запаса s, то это
приводит к штрафу за дефицит c3 , на единицу продукции.
В качестве функции суммарных затрат, являющейся в стохастических
моделях случайной величиной, рассматривают ее среднее значение или
математическое ожидание.
143
В рассматриваемой модели при дискретном случайном спросе r,
имеющем закон распределения p (t ) , математическое ожидание суммарных
затрат имеет вид2:
s
∞
r =0
r = s +1
C ( s) = c 2 ∑ ( s − r ) p(r ) + c 3 ∑ (r − s) p(r )
(7.28)
В выражении (7.28) первое слагаемое учитывает затраты на
приобретение (хранение) излишка s – r единиц продукта (при r ≤ s ), а второе
слагаемое – штраф за дефицит на r – s единиц продукта (при r > s).
В случае непрерывного случайного спроса, задаваемого плотностью
вероятностей ϕ (r ) , выражение C (s ) принимает вид:
s
s
0
0
C ( s ) = c 2 ∫ ( s − r )ϕ (r )dr + c 3 ∫ (r − s)ϕ (r )dr
(7.29)
Задача управления запасами состоит в отыскании такого запаса s, при
котором математическое ожидание суммарных затрат (7.28) или (7.29)
принимает минимальное значение.
Доказано, что при дискретном случайном спросе r выражение (7.28)
минимально при запасе s 0 , удовлетворяющем неравенствам
F ( s 0 ) < ρ < F ( s 0 + 1)
(7.30)
а при непрерывном случайном спросе r выражение (7.29) минимально при
значении s 0 , определяемом из уравнения
F (s0 ) = ρ
(7.31)
где
F ( s ) = p(r − s )
(7.32)
есть функция распределения спроса r, F ( s 0 ) и F ( s 0 + 1) – ее значения; ρ –
плотность убытков из-за неудовлетворенного спроса, определяемая по (7.24).
Пример 7.6
Предприятие закупает агрегат с запасными блоками к нему. Стоимость одного блока
равна 5 ден. ед. В случае выхода агрегата из строя из-за поломки блока,
отсутствующего в запасе, простой агрегата и срочный заказ нового блока к нему
обойдется в 100 ден. ед. Опытное распределение агрегатов по числу блоков,
потребовавших замену, представлено в табл. 7.1.
Табл. 7.1. Распределение агрегатов
Число замененных блоков r
0
Статистическая
вероятность 0,90
(доля) агрегатов p (r ) , которым
потребовалась замена r блоков
2
1
2
3
4
5
6
0,05
0,02
0,01
0,01
0,01
0,00
Учитываем только расходы на неиспользованные единицы продукта
144
Необходимо определить оптимальное число запасных блоков, которое следует
приобрести вместе с агрегатом.
Решение
По условию c2 = 5, c3 = 100. Вычислим плотность убытков из-за нехватки запасных
блоков по формуле (7.24) ρ = 100/(5+100) = 0,952.
Учитывая (7.32), найдем значения функции распределения спроса (табл. 7.2).
Табл. 7.2
s
0
1
2
3
4
5
6
>6
r
0
1
2
3
4
5
6
>6
F (s )
0,00
0,90
0,95
0,97
0,98
0,99
1,00
1,00
Очевидно (см. табл. 7.2), что оптимальный запас составит s 0 = 3, ибо он
удовлетворяет неравенству (7.30): F (3) < 0,952 < F (4) .
Пример 7.7
Решить задачу 7.6 при условии непрерывного случайного спроса r, распределенного
по показательному закону с функцией распределения F (r ) = 1 − e − λr при λ = 0,98.
Решение
Оптимальное число запасных блоков s 0 найдем из уравнения (7.31): 1 − e − λS0 = ρ ,
1
откуда e − λS0 = 1 − ρ и s 0 = − ln(1 − ρ ) . При λ = 0,98 s 0 = −(1 / 0,98) ln 0,02 ≈ 4
λ
(блока).
В условиях рассматриваемой модели предположим, что расходование
запаса происходит непрерывно с одинаковой интенсивностью. Такую ситуацию
можно представить графически (рис. 7.5).
J
r
r
s
s
s-r
J
T
T
t
0
r-s
0
T1
а
t
T2
б
Рис. 7.5
Рис. 7.4, а соответствует случаю r ≤ s , когда спрос не превосходит запаса,
а рис. 7.4, б – случаю, когда спрос превышает запас, т.е. r > s . Следует
отметить, что на самом деле график J(t) представляет ступенчатую ломаную,
145
показанную на рис. 7.4 пунктиром, но для исследования модели проще
рассматривать J (t ) в виде прямой, сглаживающей эту ломаную.
Средний запас, соответствующий рис. 7.4, а, равен
1
1
s1 = ( s + ( s − r )) = s − r
(7.33)
2
2
Средний запас, соответствующий рис. 7.4, б с учетом формулы (7.17), в
которой полагаем n = r , составляет
1 T
1 s2
s2 = s 1 =
(7.34)
2 T 2 r
Средний дефицит продукта за период T2 для случая, соответствующего
рис. 7.4, б с учетом (7.17), где n = r , равен
T
1
1 (r − s) 2
s 3 = (r − s ) 2 =
(7.35)
2
T1 2
r
Математическое ожидание суммарных затрат составит:
2
2
s 
∞ 1 s
∞ 1 (r − s )
r
C ( s ) = c 2 ∑  s −  p(r ) + c 2 ∑
p(r )
+ c3 ∑
(7.36)
r = 0
r = s +1 2 r
r =0 2
2
r
Доказано, что в этом случае математическое ожидание (7.36) минимально
при запасе s 0 , удовлетворяющем неравенству
L( s 0 ) < ρ < L( s 0 + 1)
(7.37)
где ρ по-прежнему определяется по формуле (7.24):
1  ∞ p(r )

L( s ) = F (s ) +  s −  ∑
(7.38)
r
=
s
2
r


L( s 0 ) и L( s 0 + 1) – значения функции (7.38), a F (s ) находится в
соответствии с определением (7.32).
Пример 7.8
Имеющиеся на складе изделия равномерно расходуются в течение месяца. Затраты
на хранение одного изделия составляют 5 ден. ед., а штраф за дефицит одного
изделия обходится в 100 ден. ед. Изучение спроса дало распределение числа
потребляемых за месяц изделий, представленное в табл. 7.3.
Табл. 7.3
Спрос r
Статистическая
p (r ) блоков
0
вероятность 0,1
1
2
3
4
5
≥6
0,2
0,2
0,3
0, 1
0,1
0,0
Необходимо, определить оптимальный месячный запас склада.
Решение
Так же как в задаче 7.6, c2 = 5, c3 = 100. ρ = 0,952.
Значения функции L(r ) определим с помощью табл. 7.4.
Табл. 7.4
146
s
r
p (r )
p(r )
r
∞
∑
r =s
p(r )
r
1  ∞ p(r )

 s − ∑
2 r =s r

F (r )
L(r )
0
0
0,1
–
–
–
0,0
–
1
1
0,2
0,200
0,445
0,2225
0,1
0,3225
2
2
0,2
0,100
0,245
0,3675
0,3
0,6675
3
3
0,3
0,100
0,145
0,3625
0,5
0,8625
4
4
0,1
0,025
0,045
0,1575
0,8
0,9575
5
5
0,1
0,020
0,02
0,0900
0,9
0,9900
≥6
≥6
0,0
0,000
0,000
0,0000
1,0
1,0000
Очевидно, что оптимальный запас изделий s 0 = 3, ибо он удовлетворяет условию
(7.37): L(3) < 0,952 < L(4) .
7.5 Стохастические модели управления запасами с фиксированным
временем задержки поставок
В рассмотренных выше идеализированных моделях управления запасами
предполагалось, что пополнение запаса происходит практически мгновенно.
Однако в ряде задач время задержки поставок может оказаться настолько
значительным, что его необходимо учитывать в модели.
Пусть за время задержек поставок θ уже заказаны n партий по одной в
каждый из n периодов продолжительностью T = θ / n .
Обозначим:
s нз – первоначальный уровень запаса (к началу первого периода);
si – запас за i-й период;
ri – спрос за i-й период;
q i – пополнение запаса за i-й период.
n
Тогда к концу n-го периода на склад поступит ∑ qi единиц продукта, а
i =1
n
будет израсходовано ∑ ri , единиц, т.е.
i =1
n
n
i =1
i =1
s n = s нз + ∑ q i − ∑ ri
(7.39)
или
sn = s − r
где
(7.40)
n
s = s нз + ∑ q i
(7.41)
i =1
147
n
r = ∑ ri
(7.42)
i =1
Требуется найти оптимальный объем партии заказа, который необходимо
сделать за последний n-й период, предшествующий поступлению сделанного
ранее заказа.
Математическое ожидание суммарных затрат в этом случае определяется
по формуле (7.28), а оптимальный запас s находится по формуле (7.30), т.е.
F ( s 0 ) < ρ < F ( s 0 + 1)
(7.43)
Найдя оптимальный запас s 0 и зная q1 , q 2 ,..., q n −1 , можно вычислить q n по
формуле (7.41), т.е.
n −1
q n = s 0 −  s нз + ∑ q i 

i =1

(7.44)
Пример 7.9
Ежедневно заказываемый скоропортящийся товар поступает в магазин спустя 7 дней
после заказа. В момент очередного заказа запас товара составил в стоимостном
выражении 10 ден. ед. В данное в день изготовления, приносит прибыль 0,95 ден.
ед., а не проданный в этот день товар может быть затем реализован с убытком 0,10
ден. ед.
На основании опытных данных получено следующее распределение спроса на
данный товар (табл. 7.5).
Табл. 7.5
r
0
10
20
30
40
50
60
70
80
90
100
p (r )
0,00
0,00
0,01
0,02
0,05
0,08
0,11
0,12
0,14
0,13
0,10
r
110
120
130
140
150
160
170
180
190
200
>200
p (r )
0,08
0,05
0,03
0,02
0,02
0,01
0,01
0,01
0,01
0,00
0,00
Необходимо определить оптимальный объем заказанного товара q 7 на седьмой день
после заказа.
Решение
Плотность убытков из-за дефицита товара по формуле (7.24) равна
ρ = 0,95 /(0,10 + 0,95) = 0,905 . Учитывая условия (7.32), найдем значения функции
распределения спроса (табл. 7.6).
148
Табл. 7.6
s
r
F (r )
s
r
F (r )
s
r
F (r )
s
r
F (r )
0
10
12
30
40
0
10
20
30
40
0,00
0,00
0,01
0,03
0,08
50
60
70
80
90
50
60
70
80
90
0,16
0,27
0,39
0,53
0,76
100
110
120
130
140
100
110
120
130
140
0,86
0,84
0,89
0,92
0,94
150
160
170
180
≥ 190
150
160
170
180
≥ 190
0,96
0,97
0,98
0,99
1,00
Условию (7.43) удовлетворяет s 0 = 120, ибо F(120) < 0,905 <F (130).
Таким образом, оптимальный запас товара за 7 дней должен быть на сумму 120 ден.
ед., откуда оптимальный объем заказанного товара на седьмой день по (7.44)
составит: q7 = 120 − (10 + (10 + 20 + 10 + 10 + 20 + 10)) = 30 ден. ед.
В заключении отметим, что найти аналитически оптимальные значения
точки запаса s 0 и объема партии n удается только в относительно простых
случаях. Если же система хранения запасов имеет сложную структуру (много
видов хранимой продукции, иерархическая система складов), используемые
стохастические модели сложны, а их параметры меняются во времени, то
единственным средством анализа такой системы становится имитационное
моделирование, позволяющее имитировать на ЭВМ функционирование
системы, исследуя ее поведение при различных условиях, значениях
параметров, отражая их случайный характер, изменение во времени и т. п.
Резюме
Из материала, изложенного в данной лекции, можно сделать следующие
выводы.
− Запасами называется любой ресурс на складе, который используется для
удовлетворения будущих нужд.
− Управление запасами состоит в отыскании такой стратегии пополнения и
расхода запасами, при котором функция затрат принимает минимальное
значение.
− Существуют причины, побуждающие организации создавать запасы:
дискретность поставок при непрерывном потреблении; упущенная
прибыль; случайные колебания; предполагаемые изменения конъюнктуры.
− Имеются причины, побуждающие предприятия стремиться к минимизации
запасов на складе: плата за физическое хранение запаса; потери в
количестве запаса; моральный износ продукта.
− Выделяют различные модели управления запасами.
Вопросы для самоконтроля
1. Кто из ученых занимался теорией управления запасами?
2. Приведите схему системы управления запасами.
3. Почему предприятия создают запасы?
149
4. Что побуждает предприятия стремиться к минимизации запасов на
складе?
5. Что такое спрос? объем заказа? издержки хранения?
6. Дайте характеристику основных терминов теории управления запасами.
7. Приведите характеристику статической детерминированной модели без
дефицита.
8. Приведите график статической детерминированной модели без
дефицита.
9. Приведите характеристику статической детерминированной модели с
дефицитом.
10. Приведите график статической детерминированной модели с дефицитом.
11. Чем стохастические модели управления запасами отличаются от
детерминированных моделей?
12. Дайте характеристику стохастической модели управления запасами с
фиксированным временем задержки поставок
150
8 МОДЕЛИ СЕТЕВОГО ПЛАНИРОВАНИЯ И
УПРАВЛЕНИЯ (СПУ)
СПУ основано на моделировании процесса с помощью сетевого графика и
представляет собой совокупность расчетных методов, организационных и
контрольных мероприятий по планированию и управлению комплексом работ.
Система СПУ позволяет:
− формировать календарный план реализации некоторого комплекса
работ;
− выявлять и мобилизовывать резервы времени, трудовые,
материальные и денежные ресурсы;
− осуществлять управление комплексом работ по принципу «ведущего
звена» с прогнозированием и предупреждением возможных срывов в
ходе работ;
− повышать эффективность управления в целом при четком
распределении ответственности между руководителями разных
уровней и исполнителями работ.
Диапазон применения СПУ весьма широк: от задач, касающихся
деятельности отдельных лиц, до проектов, в которых участвуют сотни
организаций и десятки тысяч людей (например, разработка и создание крупного
территориально-промышленного комплекса).
8.1 История развития
История методик управления проектами насчитывает более пяти тысяч
лет. Результаты одних проектов мы с вами видим до сих пор (египетские
пирамиды и ирригационные каналы, Великая китайская стена), а о других
можем судить лишь по описаниям современников (военные походы Чингизхана и Александра Македонского, морские экспедиции Колумба и Магеллана).
Сегодня существуют серьезные научные работы, посвященные методам
управления проектами, которые применяли древние египтяне при
строительстве пирамид и викинги, когда проводили военные операции
Одним из первых методов оптимизации хода выполнения работ, не
потерявшим своей эффективности и по сей день, является методика диаграмм
Гантта. Она был разработана Генри Ганттом для отслеживания хода
строительства больших трансконтинентальных океанских лайнеров. Идея
Гантта состояла в том, что главным ресурсом планирования является время, а
основой принятия управленческих решений – сравнение запланированного и
фактического состояния работ. На диаграммах Гантта по горизонтали обычно
показывают интервалы времени, а по вертикали – работы, операции,
оборудование. Горизонтальные отрезки отражают длительность выполнения
работ. Выбрав по горизонтальной оси текущий момент времени и получив
151
оперативную информацию о ходе производства, можно сопоставить
фактическое состояние дел и планировавшееся. Все современные системы
управления проектами и планирования предлагают представление графиков
работ в виде диаграмм Ганта.
В то же время диаграммы Гантта имеют ряд недостатков. Например, с их
помощью довольно сложно планировать многовариантные взаимосвязанные
цепочки работ (в строительных, военных, государственных проектах и на
производстве). Для таких задач в военном ведомстве США в 1950-е годы были
предложены методы сетевого планирования, или методы выбора «критического
пути». Кроме того, диаграммы Гантта удобно применять только для одного
критического ресурса – времени. При необходимости учитывать еще несколько
ресурсов, например технологическую оснастку, диаграммы Гантта надо
воспринимать как объемные, приобретающие ряд измерений по числу
учитываемых ресурсов. Это имеет смысл для визуальной интерпретации
планов, но затрудняет их анализ.
Современные методы управления проектами уходят корнями в 50-е годы
текущего столетия. Практически одновременно две проектные группы
представили методы управления сложными комплексами работ.
В 1956 году М. Уолкер из фирмы DuPont, исследуя возможности более
эффективного использования принадлежащей фирме вычислительной машины
Univac, объединил свои усилия с Д. Келли из группы планирования
капитального строительства фирмы «Ремингтон Рэнд». Они попытались
использовать ЭВМ для составления планов-графиков крупных комплексов
работ по модернизации заводов фирмы DuPont. В результате был создан
рациональный метод описания проекта с использованием ЭВМ. Первоначально
он получил название метода Уолкера-Келли, а позже переименован в метод
критического пути (Critical Path Method – CPM).
Данный метод имеет достоинства:
− позволяет получить графическое представление проекта,
− определяет ориентировочное время, требуемое для его выполнения, и
− показывает, какие действия критичны, а какие не столь важны для
соблюдения всего графика работ.
Методика, предлагаемая СРМ, в настоящее время широко распространена,
однако она имеет свои недостатки. Оптимизации методом СРМ поддаются
только сравнительно легко понятные проекты, в которых нетрудно
спрогнозировать время выполнения действия. Поэтому при разработке или
конструировании различных систем (когда одна из интеллектуальных задач
может быть не решаема достаточно долгие время) СРМ применим лишь
условно.
Для задач, связанных с интеллектуальным трудом и другими вопросами, в
которых стоимость оптимизируемого параметра не известна наверняка,
152
используется метод PERT-анализа (Program Evaluation Review Technique). Он
был разработан сотрудниками Военно-морского флота США в 1957 году для
обеспечения создания ракеты «Поларис». Его разработали корпорация
Lockheed Air Craft, консалтинговая компания Booz, Allen & Hamilton и особое
проектное бюро ВМС США в процессе создания ракетного комплекса Polaris.
На его разработку, по заявлениям фирмы, ушло 15 лет, таким образом, начало
работ относилось к 1943г. Благодаря PERT проект, который состоял из 60 тыс.
операций и объединял около 3800 основных подрядчиков, удалось закончить на
два года раньше запланированного срока. Его успешное завершение
способствовало тому, что вскоре данный метод стал повсеместно применяться
для планирования проектов в вооруженных силах США. Применяя PERTанализ, они попытались сымитировать график выполнения работ по созданию
ракеты путем построения логической сети взаимозависимых последовательных
событий. На начальной стадии PERT-представление было сфокусировано на
контроле временных характеристик графика и прогнозировании вероятности
успешного завершения программы. Но прежде чем PERT-представление было
окончательно принято руководителями программ в промышленности, Военновоздушные силы США внесли дополнение в методику, добавив к логической
сети функцию ресурсной оценки. Таким образом, в 1962 году появилась
PERT/Cost-методика (PERT-анализ с целью стоимостного прогнозирования), в
то время как первоначально PERT-анализ был известен под названием
PERT/Time (PERT-анализ для определения времени реализации проекта).
Использование метода PERT позволило руководству программы точно
знать, что требуется делать в каждый момент времени и кто именно должен это
делать, а также какова вероятность своевременного завершения отдельных
операций. Руководство программой оказалось настолько успешным, что проект
удалось завершить на два года раньше запланированного срока. Благодаря
такому впечатляющему началу, данный метод управления вскоре стал
использоваться для планирования проектов во всех вооруженных силах США.
Методика отлично себя зарекомендовала при координации работ, выполняемых
различными подрядчиками в рамках крупных проектов по разработке новых
видов вооружения.
На практике метод позволяет оценить предполагаемое время окончания
проекта, вероятность его завершения к конкретной дате и конкретизировать
действия, наиболее неопределенные в смысле своего выполнения.
Идеи, сходные с идеями, положенными в основу системы PERT, были еще
в 30-х годах предложены в советском капитальном строительстве (на
строительстве Магнитогорского металлургического комбината), но в то время
они не получили распространения и для них не были произведены
необходимые математические разработки.
153
Однако это не означает, что в нашей стране идеи метода никого не
интересовали. Благодаря усилиям С.П. Никанорова, в 60-е годы Министерство
обороны в лице подведомственных институтов активно занялось разработками
в этой области.
Оба метода были основаны на использовании сетевых диаграмм, но CPM
оперировал только одной длительностью работы, в то время как PERT
учитывал четыре длительности -- оптимистическую, пессимистическую,
наиболее вероятную и средневзвешенную. Это обусловлено различными
сферами применения методов.
PERT появился при выполнении проекта, окружающая среда которого
характеризовалась высокой степенью неопределенности, поэтому приходилось
оценивать разные варианты завершения работ. Степень неопределенности
проектной среды, в которой создан метод CPM, была существенно меньше, и
исполнители могли довольно точно оценить длительность работ, основываясь
на предыдущем опыте.
За прошедшее время произошла взаимная интеграция методов, и сейчас
при планировании в основном используется Метод критического пути.
Методы CPM и PERT отличаются тем, что в методе критического пути
длительность каждого этапа проекта является детерминированной, тогда как в
системе планирования PERT – стохастической.
Позже, для получения еще более точных оценок, стали использовать
некоторые специальные математические методы, например «рулетка
случайных чисел Монте-Карло» или методы статистического моделирования.
Хотя первые методики используются и по сей день. Так, работы Гарри Гантта
легли в основу научных дисциплин, возникших в середине ХХ века, –
промышленной инженерии, занимающейся управлением и организацией
производства, а также исследования операций. С исследованием операций
связаны работы по применению математических методов формализации
человеческой деятельности, в том числе в производстве и планировании.
В современной деловой среде актуальность проектного управления как
метода организации и управления производством значительно возросла. Это
обусловлено объективными тенденциями в глобальной реструктуризации
бизнеса. Принцип концентрации производственно-экономического потенциала
уступил место принципу сосредоточения на развитии собственного потенциала
организации.
Крупные
производственно-хозяйственные
комплексы
конгломеративного типа быстро замещаются гибкими сетевыми структурами,
среди участников которых доминирует принцип предпочтения использования
внешних ресурсов внутренним (outsourcing). Поэтому производственная
деятельность всё больше превращается в комплекс работ со сложной
структурой используемых ресурсов, сложной организационной топологией,
сильной функциональной зависимостью от времени и огромной стоимостью.
154
8.2 Объект проектного управления
Термин проект, как известно, происходит от латинского слова projectus,
что в буквальном переводе означает «брошенный вперед». Таким образом, сразу
становится ясно, объект управления, который можно представить в виде
проекта, отличает возможность его перспективного развертывания, т.е.
возможность предусмотреть его состояния в будущем. Хотя различные
официальные источники трактуют понятие проекта по-разному , во всех
определениях четко просматриваются особенности проекта как объекта
управления, обусловленные комплексностью задач и работ, четкой
ориентацией этого комплекса на достижение определенных целей и
ограничениями по времени, бюджету, материальным и трудовым ресурсам.
Однако, любая деятельность, в том числе и та, которую никто не
собирается называть проектом, выполняется в течение определенного периода
времени и связана с затратами определенных финансовых, материальных и
трудовых ресурсов. Кроме того, любая разумная деятельность, как правило,
целесообразна, т.е. направлена на достижение определенного результата. И, тем
не менее, в одних случаях к управлению деятельностью подходят как к
управлению проектом, а в других случаях – нет.
Деятельность как объект управления рассматривается в виде проекта
тогда, когда
− она объективно имеет комплексных характер и для ее эффективного
управления важное значение имеет анализ внутренней структуры всего
комплекса работ (операций, процедур и т.п.);
− переходы от одной работы к другой определяют основное содержание
всей деятельности;
− достижение целей деятельности связано с последовательнопараллельным выполнением всех элементов этой деятельности;
− ограничения по времени, финансовым, материальным и трудовым
ресурсам имеют особое значение в процессе выполнения комплекса
работ;
− продолжительность и стоимость деятельности явно зависит от
организации всего комплекса работ.
Поэтому, объектом проектного управления принято считать особым
образом организованный комплекс работ, направленный на решение
определенной задачи или достижение определенной цели, выполнение которого
ограничено во времени, а также связано с потреблением конкретных
финансовых, материальных и трудовых ресурсов. При этом под «работой»
понимается элементарная, неделимая часть данного комплекса действий.
Элементарность работы – понятие условное и относительное. То, что
нецелесообразно делить в одной системе действий, полезно разукрупнять в
155
другой. Например, если за элемент комплекса работ по сборке автомобиля
принимается технологическая операция, то одной из «работ» может считаться
установка сборщиком фары. Эта «работа» в данном случае неделима, так как
остаются неизменными ее факторы – исполнитель, предмет и объект действия.
Управление проектом – профессиональная деятельность по руководству
ресурсами (человеческими и материальными) путем применения методов,
средств и управления для успешного достижения заранее поставленных целей в
результате выполнения комплекса взаимосвязанных мероприятий при
определенных требованиях к срокам, бюджету и характеристикам ожидаемых
результатов проектов. На практике управление проектом оборачивается
непрерывным балансированием между задачами проекта, временем, затратами,
производительностью и качеством.
Для управления проектами характерно принятие организационно
плановых решений с помощью специализированных программных средств –
систем управления проектами, предназначенных для поддержки наиболее
трудоемких и важных процессов управления проектами.
Требования к системам управления проектами определяются исходя из
особенностей самой методологии управления. Поэтому для всех систем
управления проектами характерны следующие черты:
− основными элементами проекта являются работы, связи между
работами, ресурсы и назначения (ресурсов работам), формируемые с
учетом существа конкретного проекта;
− модель реализации проекта (график) формируется так, что все работы в
проекте отражают технологическую последовательность их выполнения
с учетом иерархической структуры работ проекта;
− для формирования проектных данных о работах и ресурсах широко
применяются иерархические структуры организации информации;
− важнейшими видами ресурсов, управлению которыми уделяется
наибольшее внимание, являются: время, финансовые средства и
трудовые ресурсы;
− для систем управления проектами характерно наличие встроенных баз
данных заранее определенной структуры, содержащих именованные
показатели, многие из которых имеют заранее определенный смысл и
правила автоматического вычисления. В качестве основных групп
данных, описывающих каждый проект, можно выделить:
o описание работ проекта;
o описание взаимосвязи работ;
o распределение (назначения) ресурсов по работам проекта;
o календарное расписание проекта.
156
− в качестве базовой методики вычисления главных показателей графика
проекта используется метод критического пути – основа методов
сетевого планирования и управления. В некоторых системах
управления проектами могут также использоваться методы
статистического моделирования продолжительности работ PERT или
Monte-Carlo;
− в качестве основного средства представления данных о проекте обычно
используются линейные диаграммы Гантта;
− большое внимание уделяется средствам наглядного представления
результатов вычислений;
− системы управления проектами допускают внесение изменений в
график, отражающий продвижение работ проекта, включая
действительные даты выполнения работ и затраты, их готовность на
текущую дату. Обеспечивается сопоставление текущего состояния
проекта с предварительно утвержденным планом, прогнозирование
потребности в ресурсах и сроков наступления событий.
8.3 Теоретические основы построения сетевых графиков
Для описания, анализа и оптимизации проектов наиболее подходящими
оказались сетевые модели, представляющие из себя разновидность
ориентированных графов. Сетевые графики способствуют определению
направленных критических работ, оценивают резервы напряженных работ,
планируют сроки выполнения всего комплекса работ. Сетевые графики
строятся с помощью двух элементов: работ и событий. Под работой понимается
некоторое неделимое действие, характеризующееся затратами ресурсов и
временем исполнения. Под событием понимается начало или окончание какойлибо работы (одной или нескольких). Операция – это сама работа или действие.
Одно событие может иметь несколько предшествующих и/или
последующих событий. Если наступлению данного события не предшествует
какая-либо работа, то это событие называется исходным. Событие, не
имеющее последующих работ, называется завершающим. Любая
последовательность работ в сети, в которой конечное событие каждой работы
последовательности совпадает с начальным событием следующей за ней
работы, называется путем. Следует различать два вида пути:
− полным
путем
называется
непрерывная
последовательность
выполнения работ от исходного до завершающего события;
− критическим путем называется путь от исходного до завершающего
события, который характеризуется наибольшей продолжительностью
выполнения работ, находящихся на этом пути.
157
8.3.1 Сетевое представление проекта
Сетевой график проекта раскрывает его внутренние связи, служит основой
для календарного планирования работ и использования оборудования,
облегчает взаимодействие менеджеров и исполнителей.
Сетевая модель отображает взаимосвязи между операциями (работами,
задачами) и порядок их выполнения (отношение упорядочение или
следования).
Для
представления
операции
используется
стрелка
(ориентированная дуга), направление которой соответствует процессу
реализации проекта во времени. Отношение упорядочения между операциями
задается с помощью событий. Событие определяется как момент времени,
когда завершаются одни операции и начинаются другие. Начальная и конечная
точки любой операции описываются парой событий, которые называют
начальным событием и конечным событием. Операции, выходящие из
некоторого события, не могут начаться, пока не будут завершены все операции,
входящие в это событие. По принятой терминологии каждая операция
представляется ориентированной дугой, а каждое событие – узлом (вершиной).
A
i
j
1
A
C
B
3
4
2
(a)
(б)
Рис. 8.1. Пример сетевой модели
На рис. 8.1 (а) приведен пример графического изображения операции А с
начальным событием i и конечным j. На рис. 8.1 (б) показан другой пример, из
которого видно, что для возможности начала операции С требуется завершение
операций А и В. Протекание операций во времени задается путем нумерации
событий, причем номер начального события всегда меньше номера конечного.
При построении сетевого графика должны выполняться следующие
требования:
1) В каждой последовательности работ очередное событие не может
наступить, если не наступило предшествующее.
2) Каждая работа изображается в виде только одной стрелки, т.е. два
события соединяются не более чем одной стрелкой.
На рисунке показано, как с помощью фиктивного процесса можно
представить два параллельных (конкурирующих) процесса А и В. По
определению фиктивный процесс (который на схеме сети обычно обозначается
158
пунктирной дугой) не поглощает временных или других ресурсов. Вставив
фиктивный процесс одним из четырех способов, показанных на рис. 8.2, мы
получаем возможность идентифицировать процессы А и В, по крайней мере,
одним уникальным концевым узлом (как требует правило 2).
2
2
A
A
1
A
B
1
B
A
2
3
1
3
B
3
B
A
1
B
3
2
Рис. 8.2. Представление конкурирующих процессов
3) На сетевом графике должно быть одно событие, в которое не входят
никакие работы – исходное событие (начало работ), и одно событие, из
которого не выходят работы – завершающее событие (конец работ).
4) На сетевом графике не должно быть стрелок, которые ниоткуда не
выходят и никуда не входят. Все события, кроме исходного и завершающего,
должны иметь как входящие, так и выходящие стрелки.
5) Если появляются события, отличные от исходного и завершающего, в
которых нет входящих и выходящих стрелок, то они соединяются с началом
или концом сетевого графика фиктивными работами, продолжительность
которых равна нулю.
Предположим, например, что четыре процесса должны удовлетворять
следующим условиям.
1) Процесс С должен начаться после завершения процессов А и В.
2) Процесс Е должен начаться непосредственно после завершения
процесса В.
На рис. 8.3 (а) показано неправильное представление наших процессов, так
как из него следует, что процесс Е должен начаться после завершения как
процесса В, так и А. На рис. 8.3 (б) показано, как с помощью фиктивного
процесса D разрешить эту коллизию.
159
A
A
C
C
D
B
E
B
(a)
E
(б)
Рис. 8.3. Представление процессов
8.3.2 Расчет сетевой модели
Построение сети является лишь первым шагом на пути к получению
календарного плана, определяющего сроки начала и окончания каждой
операции. Вследствие наличия взаимосвязей между различными операциями
для определения сроков их начала и окончания необходимо проведение
специальных расчетов. Эти расчеты можно выполнять непосредственно на
сети, пользуясь простыми правилами. В результате вычислений определяются
критические и некритические операции проекта. Операция считается
критической, если задержка ее начала приводит к увеличению срока
окончания всего проекта. Некритическая операция отличается тем, что
промежуток времени между ее ранним началом и поздним окончанием (в
рамках рассматриваемого проекта) больше ее фактической продолжительности.
В таком случае говорят, что некритическая операция имеет резерв, или запас
времени.
8.3.3 Определение критического пути
Критический путь определяет непрерывную последовательность
критических операций, связывающих начальное и завершающее события сети.
Другими словами, критический путь задает все критические операции проекта.
Метод определения такого пути проиллюстрируем на следующем примере.
Графически события изображаются кружками, разделенными на три
равных сегмента (радиусами под углом в 120°); работы изображаются
сплошными линиями со стрелками на конце, ориентированными слева
направо; фиктивные работы изображаются пунктирными линиями со
стрелками на конце, ориентированными слева направо.
Пример 8.1
Рассмотрим сетевую модель, показанную на рис. 8.4, с исходным событием 0 и
завершающим событием 6. Оценки времени, необходимого для выполнения каждой
операции и обозначения операций, даны у стрелок.
160
4
E=2
K=5
B=3
0
I=7
2
D=3
F=0
L=6
А=2
G=3
C=2
1
5
6
H=2
3
Рис. 8.4. Пример сетевого графика
Расчет критического пути включает два этапа. Первый этап называется
прямым проходом. Вычисления начинаются с начального события и
продолжаются до тех пор, пока не будет достигнуто завершающее событие всей
сети. Для каждого события j вычисляется одно число ES j , представляющее
ранний срок его наступления (ранний срок окончания всех операций, входящих
в событие j; ранний срок начала всех операций, выходящих из события j).
На втором этапе, называемом обратным проходом, вычисления
начинаются с завершающего события сети и продолжаются, пока не будет
достигнуто начальное событие. Для каждого события i вычисляется число LFi ,
представляющее поздний срок его наступления (поздний срок окончания всех
операций, входящих в событие i, поздний срок начала всех операций,
выходящих из события i).
Первый этап
Если принять i = 0 , т.е. считать, что номер исходного события сети равен
нулю, то при расчете сети полагаем ES 0 = 0 . Обозначим символом Dij
(Duration) продолжительность операции (i, j ) . Тогда вычисления при прямом
проходе выполняются по формуле ES j = max{ES i + Dij }, где max берется по
i
всем операциям, завершающимся j-ом событии. Следовательно, чтобы
вычислить ES j для события j, нужно сначала определить ES i начальных
событий всех операций (i, j ) , входящих в событие j.
Применительно к рис. 8.4 вычисления начинаются с ES 0 = 0 . Далее
получим:
ES1 = ES 0 + D01 = 0 + 2 = 2,
ES 2 = ES 0 + D02 = 0 + 3 = 3,
ES 3 = max{ES i + Di 3 } = max{2 + 2;3 + 3} = 6,
i =1, 2
161
ES 4 = max{ES i + Di 4 } = max{3 + 2;6 + 0} = 6,
i =2,3
ES 5 = max{ES i + Di 5 } = max{6 + 3;6 + 7} = 13,
i = 3, 4
ES 6 = max {ES i + Di 6 } = max{6 + 2;6 + 5;13 + 6} = 19.
i = 3, 4 , 5
На этом вычисления первого этапа заканчиваются.
Второй этап начинается с завершающего события сети, для которого
полагаем LFn = ES n , где n – завершающее событие. Затем, для любого события
i LFi = min{LF j − Dij }, где min берется по всем операциям, выходящим из i-го
события. Далее получим:
LF6 = ES 6 = 19,
LF5 = LF6 − D56 = 19 − 6 = 13,
LF4 = min{LF j − D4 j } = min{13 − 7;19 − 5} = 6,
j = 5, 6
LF3 = min {LF j − D3 j } = min{6 − 0;13 − 3;19 − 2} = 6,
j = 4 , 5, 6
LF2 = min{LF j − D2 j } = min{6 − 3;6 − 2} = 3,
j = 3, 4
LF1 = LF3 − D13 = 6 − 2 = 4,
LF0 = min{LF j − D0 j } = min{4 − 2;3 − 3} = 0.
j =1, 2
Таким образом, вычисления при обратном проходе закончены.
Теперь, используя результаты вычислений первого и второго этапа, можно
определить операции критического пути. Операция (i, j ) принадлежит
критическому пути, если она удовлетворяет следующим трем условиям:
ES i = LFi ,
(8.1)
ES j = LF j ,
(8.2)
ES j − ES i = LF j − LFi = Dij .
(8.3)
По существу, эти условия означают, что между ранним сроком начала
(окончания) и поздним сроком начала (окончания) критической операции запас
времени отсутствует. В сетевой модели это отражается в том, что для
критических операций числа, проставленные у начальных и конечных событий,
совпадают, а разность между числом у конечного события и числом у
начального события равна продолжительности соответствующей операции.
На рис. 8.5 критический путь включает операции {B, D, F, I, L}.
Критический путь определяет кратчайшую возможность всего проекта в целом.
Заметим, что операции (2; 4), (3; 5), (3; 6) и (4; 6) удовлетворяют условиям (8.1)
и (8.2), но не условию (8.3). Поэтому они не являются критическими. Отметим
также, что критический путь представляет собой непрерывную цепочку
операций, соединяющую исходное событие сети с завершающим.
162
6
6
4
E=2
B=3
0 0
0
3
K=5
3
I=7
2
F=0
D=3
А=2
G=3
2
4
C=2
6
1
6
13 13
5
L=6
19 19
6
H=2
3
Критическая
операция
Рис. 8.5
8.3.4 Определение резервов времени
После определения критического пути необходимо вычислить резервы
времени для некритических операций. Очевидно, что резерв времени для
критической операции должен быть равен нулю. Поэтому она и называется
критической. Рассмотрим произвольную операцию (i, j ) .
Наиболее ранний возможный срок начала операции (i, j ) – ES ij (Early
Start) – определяется при допущении, ES ij = ES i , поскольку работа не может
начаться раньше наступления предшествующего события i. Отсюда следует,
что наиболее ранний возможный срок окончания операции (i, j ) (Early Finish):
EFij = ES ij + Dij .
Наиболее поздний допустимый срок окончания работы (i, j ) – LFij (Late
Finish) – определяется как самое позднее время завершения работы без
задержки срока окончания всего проекта. Поскольку операция должна быть
закончена не позднее наибольшего допустимого срока наступления
последующего события j, то имеем LFij = LF j . Отсюда следует, что наиболее
поздний допустимый срок начала работы (i, j ) – LS ij (Late Start) вычисляется
следующим образом: LS ij = LFij − Dij .
Резерв времени является показателем гибкости планирования сроков
некритических работ в сетевой модели. Можно определить четыре показателя:
полный, свободный, независимый и гарантированный резервы времени.
ES
EF
LS
Рис. 8.6. Резервы времени
163
LF
Полный резерв времени TFij (Total Float) для работы (i, j ) представляет
собой максимальную продолжительность задержки работы (i, j ) , не
вызывающую задержки в осуществлении всего проекта. Он вычисляется как
TFij = LS ij − ES ij = LFij − EFij .
Свободный резерв времени FFij (Free Float) для работы (i, j ) является
показателем максимальной задержки работы (i, j ) , не влияющей на начало
последующих работ. Операции со свободным резервом уникальны, так как
выполнение операции может откладываться, не влияя на ранний старт
следующих операций. Изменение сроков операции со свободным резервом
требует меньше координации с другими участками проекта. Он вычисляется
как FFij = ES j − EFij ` .
Независимый резерв времени IFij . Не оказывает никакого влияния на
предшествующие и последующие операции. Независимый резерв времени
является удобным показателем свободы планирования сроков. Он представляет
собой максимальную продолжительность задержки работы (i, j ) без задержки
последующих работ, если все предшествующие работы заканчиваются как
можно позже, т.е. IFij = max{0, ES j − (LFi + Dij )}.
Гарантированный резерв времени SFij – это максимально возможная
задержка работы, не влияющая на окончательный срок выполнения проекта,
если предшествующие работы выполняются с запаздыванием.
SFij = LFij − (LFi + Dij ) .
Результаты расчета критического пути и резервов времени некритических
операций для нашего примера можно свести в удобную для использования
табл. 8.2.
Таблица содержит всю необходимую для построения календарного плана
(графика) информацию. Заметим, что только критические операции должны
иметь нулевой полный резерв времени. Когда полный резерв равен нулю,
свободный резерв также должен быть равен нулю. Однако обратное неверно,
поскольку свободный резерв некритической операции также может быть
нулевым. Так, например, в табл. 8.2 свободный резерв времени некритической
операции (0,1) равен нулю.
164
Табл. 8.2
Опера
ция
(i, j )
Раннее
Dij
Позднее
начал
о
ES ij
окончан
ие EFij
начал
о
LS ij
окончан
ие LFij
Полный
резерв
TF ij=
= LSij − ESij
Свободн
ый
резерв
FF ij=
= ES j − EFij
Независ
имый
резерв
IFij
Гаранти
рованны
й резерв
SFij
A (0,1)
2
0
2
2
4
2
0
0
2
B (0,2)
3
0
3
0
3
0
0
0
0
C (1,3)
2
2
4
4
6
2
2
0
0
D (2,3)
3
3
6
3
6
0
0
0
0
E (2,4)
2
3
5
4
6
1
1
1
1
F (3,4)
0
6
6
6
6
0
0
0
0
G (3,5)
3
6
9
10
13
4
4
4
4
H (3,6)
2
6
8
17
19
11
11
11
11
I (4,5)
7
6
13
6
13
0
0
0
0
K (4,6)
5
6
11
14
19
8
8
8
8
L (5,6)
6
13
19
13
19
0
0
0
0
Замечание 1. Необходимо учитывать тот факт, что при вычислении
полного резерва времени принимается неявное допущение, согласно которому
все предшествующие работы (во всяком случае, те, которые имеют какое-либо
отношение к рассматриваемой работе) должны выполняться как можно раньше,
чтобы обеспечить полный резерв времени для данной работы. Следовательно, в
общем случае практически невозможно для каждой работы реализовать
собственный полный резерв времени.
Замечание 2. Свободный резерв времени для определенной работы не
может превышать полный резерв.
Замечание 3. Различные показатели резерва времени помогают
распределять имеющиеся ресурсы для каждой работы. При наличии резерва
времени имеется некоторая свобода распределения ресурсов.
Резюме
Из материала, изложенного в данной лекции, можно сделать следующие
выводы.
165
− СПУ основано на моделировании процесса с помощью сетевого графика и
представляет собой совокупность расчетных методов, организационных и
контрольных мероприятий по планированию и управлению комплексом
работ.
− Диапазон применения СПУ весьма широк: от задач, касающихся
деятельности отдельных лиц, до проектов, в которых участвуют сотни
организаций и десятки тысяч людей (например, разработка и создание
крупного территориально-промышленного комплекса).
− Объектом проектного управления принято считать особым образом
организованный комплекс работ, направленный на решение определенной
задачи или достижение определенной цели, выполнение которого
ограничено во времени, а также связано с потреблением конкретных
финансовых, материальных и трудовых ресурсов.
− Сетевая модель может быть представлена: сетевым графиком, в
табличной форме, в матричной форме, в форме диаграммы на шкале
времени.
− Сетевая модель состоит из операций двух типов: критической и
некритической. Операция считается критической, если задержка ее начала
приводит к увеличению срока окончания всего проекта. Некритическая
операция отличается тем, что промежуток времени между ее ранним
началом и поздним окончанием (в рамках рассматриваемого проекта)
больше ее фактической продолжительности.
− Расчет критического пути включает два этапа: прямой проход и
обратный.
Вопросы для самоконтроля
1. Для чего предназначена система сетевого планирования и управления?
2. Кто стоял у истоков развития систем СПУ?
3. В чем заключается суть метода критического пути? Укажите его
достоинства и недостатки.
4. В чем заключается суть метода PERT?
5. Что является объектом проектного управления?
6. Дайте характеристику сетевого графика.
7. Дайте характеристику табличной формы сетевой модели.
8. Приведите пример сетевой модели.
9. Какие требования необходимо соблюдать при построении сетевого
графика?
10. Для чего в сетевой модели вводят фиктивные операции?
11. Какая операция считается критической?
12. Какая операция считается некритической?
13. Что такое критический путь? Как его определить?
14. Какие виды резервов времени позволяет определить сетевой график?
166
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1)
2)
3)
4)
5)
Бережная Е.В., Бережной В.И. Математические методы моделирования
экономических систем: Учеб. пособие. – 2-е изд., перераб. и доп.. – М.:
Финансы и статистика, 2006. – 432 с.: ил.
Димов Э.М. Основы исследования операций в экономике: учебное
пособие / Э.М. Димов, Д.А. Калиновский. – Самара% ПГАТИ, 1998. –
63 с.: ил.
Исследование операций в экономике: Учеб. пособие для вузов /
Н.Ш. Кремер, Б.А. Путко, И.М. Тришин, М.Н. Фридман; Под ред.
проф. Н.Ш. Кремера. – М.: ЮНИТИ, 2002. – 407 с.
Мастяева И.Н., Горбовцов Г.Я., Семенихина О.Н. Исследование
операций в экономике: Учебное пособие / Московский международный
институт эконометрики, информатики, финансов и права. – М.: 2003. –
113 с.
Смородинский С.С. Оптимизация решений на основе методов и
моделей математического программирования: Учеб. пособие по курсу
«Системный анализ и исследование операций» для студ. спец.
«Автоматизированные системы обработки информации» дневн. и
дистанц. форм обуч. / С.С. Смородинский, Н.В. Батин. – Мн.: БГУР,
2003. – 136 с.: ил
167
Документ
Категория
Без категории
Просмотров
24
Размер файла
1 619 Кб
Теги
posobie, 2017, optimizacii, operacii, metod, uchebnoy, issledovanie, diyazitdinova
1/--страниц
Пожаловаться на содержимое документа