Реферат Курсовая Конспект
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ - раздел Науковедение, Веление В Исследование Операций Едьмое Издание ...
|
ВЕЛЕНИЕ В
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ
ЕДЬМОЕ ИЗДАНИЕ
м д и А .
OPERATIONS RESEARCH: AN INTRODUCTION
SEVENTH EDITION
Hamdy A. Taha
University of Arkansas, Fayetteville
Prentice Hall
Pearson Education, Inc. Upper Saddle River, New Jersey 07458
ВВЕДЕНИЕ В ИССЛЕДОВАНИЕ ОПЕРАЦИЙ
СЕДЬМОЕ ИЗДАНИЕ
Хемди А. Таха
Университет Арканзаса, Фейетвшш
Издательский дом "Вильяме" Москва ♦ Санкт-Петербург ♦ Киев 2005
ББК 32.973.26-018.2.75
Т24 УДК 681.3.07
Издательский дом "Вильяме" Зав. редакцией С. Н. Тригуб Перевод с английского и редакция канд. физ.-мат. наук А. А. Минъко По общим вопросам обращайтесь в Издательский дом "Вильяме" по адресу: info@williamspublishing.com, http://www.williamspublishing.com
Таха, Хемди А.
Т24 Введение в исследование операций, 7-е издание.: Пер. с англ. — М.: Издательский дом "Вильяме", 2005. — 912 с: ил. — Парал. тит. англ.
ISBN 5-8459-0740-3 (рус.)
Исследование операций ориентировано на решение практических задач, которые можно описать с помощью математических моделей. В книге представлены основные разделы теории исследования операций: математическое программирование (линейное и нелинейное, детерминированное и стохастическое), теория принятия решений и теория игр, теория управления запасами, теория массового обслуживания, имитационное моделирование. Книга может служить учебным пособием по теории и практическому применению методов исследования операций. Каждая тема начинается с вводного материала, доступного студентам первых курсов, далее уровень изложения постепенно повышается и рассчитан уже на студентов старших курсов и аспирантов. В конце каждой главы приводится набор комплексных задач, связанных с излагаемой темой, которые значительно углубляют и расширяют ее.
Написанная без излишнего академизма (но достаточно строго) книга будет полезна широкому кругу читателей: студентам, аспирантам и преподавателям высших учебных заведений, экономистам, инженерам, разработчикам программного обеспечения и т.д.
ББК 32.973.26-018.2.75
Все названия программных продуктов являются зарегистрированными торговыми марками соответствующих фирм.
Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то нн было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства Prentice Hall, Inc
Authorized translation from the English language edition published by Prentice Hall, Inc., Copyright © 2003
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher.
Russian language edition published by Williams Publishing House according to the Agreement with R&I Enterprises International, Copyright © 2005
ISBN 5-8459-0740-3 (рус.) ISBN 0-13-032374-8 (англ.) © Издательский дом "Вильяме", 2005 © Pearson Education, Inc., 2003
ОГЛАВЛЕНИЕ
Предисловие 16
Об авторе 19
Глава 1. Исследование операций: что это такое 21
Глава 2. Введение в линейное программирование 33
Глава 3. Симплекс-метод 95
Глава 4. Двойственность и анализ чувствительности 141
Глава 5. Транспортные модели 193
Глава 6. Сетевые модели 243
Глава 7. Теория линейного программирования 321
Глава 8. Целевое программирование 381
Глава 9. Целочисленное линейное программирование 397
Глава 10. Детерминированные модели динамического
программирования 441
Глава 11. Детерминированные модели управления запасами 471
Глава 12. Основы теории вероятностей 507
Глава 13. Методы прогнозирования 537
Глава 14. Теория игр и принятия решений 549
Глава 15. Вероятностное динамическое программирование 595
Глава 16. Вероятностные модели управления запасами 607
Глава 17. Системы массового обслуживания 629
Глава 18. Имитационное моделирование 697
Глава 19. Марковские процессы принятия решений 737
Глава 20. Классическая теория оптимизации 765
Глава 21. Алгоритмы нелинейного программирования 797
Приложение А. Краткий обзор теории матриц 837
Приложение Б. TORA. Краткое описание 849
Приложение В. Статистические таблицы 855
Приложение Г. Частичные ответы к некоторым упражнениям 859
Предметный указатель 893
СОДЕРЖАНИЕ
Предисловие 16
Об авторе 19
Глава 1. Исследование операций: что это такое 21
1.1. Математические модели исследования операций 21
1.2. Решение моделей исследования операций 24
1.3. Имитационное моделирование 24
1.4. Искусство моделирования 25
1.5. Больше, чем просто математика 26
1.6. Методология исследования операций 28
1.7. Об этой книге 30
Литература 30
Литература, добавленная при переводе 31
Глава 2. Введение в линейное программирование зз
2.1. Модели ЛП с двумя переменными 33
2.2. Графическое решение задачи линейного программирования 36
2.2.1. Нахождение максимума целевой функции 37
2.2.2. Нахождение минимума целевой функции 40
2.2.3. Графическое решение с помощью TORA 43
2.3. Графический анализ чувствительности 46
2.3.1. Изменение коэффициентов целевой функции 46
2.3.2. Доступность ресурсов 51
2.3.3. Стоимость ресурсов 5 2
2.4. Компьютерное решение задач ЛП 57
2.4.1. Решение задач ЛП с помощью TORA 57
2.4.2. Решение задач ЛП с помощью Excel 60
2.4.3. Решение задач ЛП с помощью LINGO и AMPL 62
2.5. Примеры моделей ЛП 69
Литература 91
Литература, добавленная при переводе 91
Комплексные задачи 91
Глава 3. Симплекс-метод 95
3.1. Стандартная форма задачи ЛП 95
3.1.1. Преобразование неравенств в равенства 9 5
3.1.2. Свободная переменная 97
Содержание 7
3.2. Переход от графического решения к алгебраическому 99
3.3. Алгоритм симплекс-метода 104
3.3.1. Итерационная природа симплекс-метода 104
3.3.2. Вычислительный алгоритм симплекс-метода 107
3.3.3. Реализация симплекс-метода в системе TORA 116
3.4. Искусственное начальное решение 118
3.4.1. М-метод 118
3.4.2. Двухэтапный метод 123
3.5. Особые случаи применения симплекс-метода 127
3.5.1. Вырожденность 128
3.5.2. Альтернативные оптимальные решения 131
3.5.3. Неограниченные решения 133
3.5.4. Отсутствие допустимых решений 135
Литература 137
Литература, добавленная при переводе 138
Комплексные задачи 138
Глава 4. Двойственность и анализ чувствительности 141
4.1. Определение двойственной задачи 141
4.2. Соотношения между прямой и двойственной задачами 146
4.2.1. Обзор простых матричных операций 146
4.2.2. Структура симплекс-таблицы 147
4.2.3. Оптимальное решение двойственной задачи 148
4.2.4. Вычисление симплекс-таблиц 152
4.2.5. Значения целевых функций прямой и обратной задач 157
4.3. Экономическая интерпретация двойственности 158
4.3.1. Экономическая интерпретация переменных двойственной задачи 158
4.3.2. Экономическая интерпретация ограничений
двойственной задачи 161
4.4. Разновидности симплекс-метода 163
4.4.1. Двойственный симплекс-метод 164
4.4.2. Обобщенный симплекс-метод 170
4.5. Анализ чувствительности оптимального решения 171
4.5.1. Изменения, влияющие на допустимость решения 172
4.5.2. Изменения, влияющие на оптимальность решения 183
Литература 190
Литература, добавленная при переводе 190
Комплексные задачи 190
Глава 5. Транспортные модели 193
5.1. Определение транспортной модели 193
5.2. Нетрадиционные транспортные модели 201
Содержание
5.3. Решение транспортной задачи 206
5.3.1. Определение начального решения 207
5.3.2. Итерационный алгоритм решения транспортной задачи 212
5.3.3. Решение транспортной задачи с помощью TORA 217
5.3.4. Интерпретация метода потенциалов как симплекс-метода 225
5.4. Задача о назначениях 226
5.4.1. Венгерский метод 227
5.4.2. Интерпретация венгерского метода как симплекс-метода 232
5.5. Транспортная модель с промежуточными пунктами 233
Литература 238
Литература, добавленная при переводе 238
Комплексные задачи 238
Глава 6. Сетевые модели 243
6.1. Основные определения 244
6.2. Алгоритм построения минимального остовного дерева 245
6.3. Задача поиска кратчайшего пути 250
6.3.1. Практические примеры задачи поиска кратчайшего пути 251
6.3.2. Алгоритм определения кратчайшего пути 255
6.3.3. Формализация задачи поиска кратчайшего пути как
задачи ЛП 265
6.3.4. Решение задачи поиска кратчайшего пути в Excel 268
6.4. Задача о максимальном потоке 269
6.4.1. Перебор разрезов 270
6.4.2. Алгоритм нахождения максимального потока 271
6.4.3. Формализация задачи поиска максимального потока
как задачи ЛП 280
6.4.4. Решение задачи определения максимального потока в Excel 281
6.5. Задача нахождения потока наименьшей стоимости 283
6.5.1. Сетевая модель 283
6.5.2. Сетевая модель как задача линейного программирования 285
6.5.3. Симплексный алгоритм для сетей с ограниченной
пропускной способностью 291
6.5.4. Решение задачи вычисления потока наименьшей
стоимости в Excel 297
6.6. Методы сетевого планирования 299
6.6.1. Построение сети проекта 299
6.6.2. Метод критического пути 305
6.6.3. Построение временного графика 308
6.6.4. Формализация задачи поиска критического пути как задачи ЛП 314
6.6.5. Сети PERT 316
Литература 319
Литература, добавленная при переводе 319
Комплексные задачи 319
Содержание 9
Глава 7. Теория линейного программирования 321
7.1. Основы симплекс-метода 321
7.1.1. Базисные решения 323
7.1.2. Матричное представление симплекс-таблиц 327
7.2. Модифицированный симплекс-метод 329
7.2.1. Условия оптимальности и допустимости 330
7.2.2. Вычислительная процедура модифицированного симплекс-метода 333
7.3. Алгоритм решения задач с ограниченными переменными 338
7.4. Метод декомпозиции 346
7.5. Двойственность 355
7.5.1. Матричное представление двойственной задачи 355
7.5.2. Оптимальное решение двойственной задачи 3 56
7.6. Параметрическое линейное программирование 360
7.6.1. Параметрическое изменение коэффициентов целевой
функции 360
7.6.2. Параметрическое изменение правых частей ограничений 363
7.7. Метод Кармаркара 366
7.7.1. Основная идея метода Кармаркара 367
7.7.2. Алгоритм Кармаркара 368
Литература 378
Литература, добавленная при переводе 378
Комплексные задачи 378
Глава 8. Целевое программирование 381
8.1. Формулировка задачи целевого программирования 381
8.2. Алгоритмы целевого программирования 386
8.2.1. Метод весовых коэффициентов 387
8.2.2. Метод приоритетов 390
Литература 395
Литература, добавленная при переводе 395
Комплексные задачи 395
Глава 9. Целочисленное линейное программирование 397
9.1. Примеры задач целочисленного программирования 397
9.2. Методы решения задач целочисленного программирования 410
9.2.1. Метод ветвей и границ 411
9.2.2. Метод ветвей и границ в системе TORA 418
9.2.3. Метод отсекающих плоскостей 422
9.2.4. Вычислительный взгляд на задачи ЦЛП 428
Содержание
9.3. Задача коммивояжера 428
9.3.1. Применение метода ветвей и границ для решения задачи коммивояжера 432
9.3.2. Применение метода отсекающих плоскостей для решения задачи коммивояжера 435
Литература 437
Литература, добавленная при переводе 437
Комплексные задачи 437
Глава 10. Детерминированные модели динамического
программирования 441
10.1. Рекуррентная природа вычислений ДП 441
10.2. Рекуррентные алгоритмы прямой и обратной прогонки 444
10.3. Приложения динамического программирования 446 10.3.1.Зад ачао загрузке 44 7
10.3.2. Задача планирования рабочей силы 455
10.3.3. Задача замены оборудования 458
10.3.4. Задача инвестирования 462
10.3.5. Модели управления запасами 465
10.4. Проблема размерности 465
Литература 468
Литература, добавленная при переводе 468
Комплексная задача 468
Глава 11. Детерминированные модели управления
запасами 471
11.1. Общая модель управления запасами 471
11.2. Статические модели управления запасами 472
11.2.1. Классическая задача экономичного размера заказа 4 72
11.2.2. Задача экономичного размера заказа с разрывами цен 478
11.2.3. Многопродуктовая статическая модель с ограниченной вместимостью склада 482
11.3. Динамические задачи экономичного размера заказа 486
11.3.1. Модель при отсутствии затрат на оформление заказа 487
11.3.2. Модель с затратами на оформление заказа 492
Литература 504
Литература, добавленная при переводе 504
Комплексные задачи 504
Глава 12. Основы теории вероятностей 507
12.1. Законы теории вероятностей 50 7
12.1.1. Закон сложения вероятностей 508
12.1.2. Условные вероятности 510
Содержание
12.2. Случайные величины и распределения вероятностей 511
12.3. Математическое ожидание и моменты случайной величины 514
12.3.1. Математическое ожидание и дисперсия случайной
величины 515
12.3.2. Совместные распределения вероятностей 517
12.4. Некоторые распределения вероятностей 520
12.4.1. Биномиальное распределение 520
12.4.2. Распределение пуассона 522
12.4.3. Отрицательное экспоненциальное распределение 523
12.4.4. Нормальное распределение 524
12.5. Эмпирические распределения 527
Литература 536
Литература, добавленная при переводе 536
Глава 13. Методы прогнозирования 537
13.1. Прогнозирование с использованием скользящего среднего 537
13.2. Экспоненциальное сглаживание 541
13.3. Регрессионный анализ 544
Литература 548
Литература, добавленная при переводе 548
Глава 14. Теория игр и принятия решений 549
14.1. Принятие решений в условиях определенности — Метод анализа иерархий 549
14.2. Принятие решений в условиях риска 560
14.2.1. Критерий ожидаемого значения 560
14.2.2. Другие критерии ожидаемого значения 566
14.3. Принятие решений в условиях неопределенности 575
14.4. Теория игр 580
14.4.1. Оптимальное решение игры двух лиц с нулевой суммой 581
14.4.2. Решение матричных игр в смешанных стратегиях 584 Литература 591
Литература, добавленная при переводе 592
Комплексные задачи 592
Глава 15. Вероятностное динамическое программирование 595
15.1. Азартная игра 595
15.2. Задача инвестирования 598
15.3. Максимизация вероятности достижения цели 602
Литература 605
Литература, добавленная при переводе 605
Комплексная задача 606
Содержание
Глава 16. Вероятностные модели управления запасами 607
16.1. Модель с непрерывным контролем уровня запаса 60 7
16.1.1. "Рандомизированная" модель экономичного размера заказа 607
16.1.2. Стохастический вариант модели экономичного
размера заказа 610
16.2. Однозтапные модели 615
16.2.1. Модель при отсутствии затрат на оформление заказа 616
16.2.2. Модель при наличии затрат на оформление заказа 619
16.3. Многоэтапные модели 622
Литература 624
Литература, добавленная при переводе 624
Комплексные задачи 624
Глава 17. Системы массового обслуживания 629
17.1. Что такое очередь 629
17.2. Основные компоненты моделей массового обслуживания 631
17.3. Экспоненциальное распределение в системах массового обслуживания 633
17.4. Модели рождения и гибели (связь между экспоненциальным
и пуассоновским распределениями) 637
17.4.1. Модель чистого рождения 637
17.4.2. Модель чистой гибели 641
17.5. Общая модель системы массового обслуживания 644
17.6. Специализированные системы обслуживания с пуассоновским распределением 650
17.6.1. Функциональные характеристики стационарных систем обслуживания 651
17.6.2. Модели с одним сервисом 655
17.6.3. Модели с параллельными сервисами 666
17.6.4. Модель(M/M/R): (Gd/K/K) npnR<K 676
17.7. Модель (M/G/l): (GD/°°/°°)- Формула Поллачека-Хинчина 680
17.8. Другие модели массового обслуживания 683
17.9. Модели принятия решений в теории массового обслуживания 683
17.9.1. Мод ель со стой местными характеристиками 683
17.9.2. Модель предпочтительного уровня обслуживания 689
Литература 692
Литература, добавленная при переводе 692
Комплексные задачи 692
Глава 18. Имитационное моделирование 697
18.1. Метод Монте-Карло 698
18.2. Типы имитационных моделей 703
Содержание
18.3. Элементы дискретного моделирования 704
18.3.1. Общее определение событий 704
18.3.2. Генерирование выборочных значений 706
18.4. Генерирование случайных чисел 716
18.5. Механика дискретной имитации 718
18.5.1. Ручная имитация модели очереди с одним сервисом 718
18.5.2. Имитация модели очереди с одним сервисом в электронной таблице 723
18.6. Методы сбора статистических данных 726
18.6.1. Метод подынтервалов 727
18.6.2. Метод повторения 729
18.6.3. Метод циклов 730
18.7. Языки имитационного моделирования 732
Литература 735
Литература, добавленная при переводе 735
Глава 19. Марковские процессы принятия решений 737
19.1. Марковская задача принятия решений 737
19.2. Модель динамического программирования с конечным числом этапов 739
19-3. Модель с бесконечным числом этапов 743
19.3.1. Метод полного перебора 743
19.3.2. Метод итераций по стратегиям без дисконтирования 746
19.3.3. Метод итераций по стратегиям с дисконтированием 750
19.4. Применение методов линейного программирования 752
19.5. Приложение: обзор теории цепей Маркова 756
19.5.1. Марковские процессы 756
19.5.2. Цепи Маркова 757
Литература 764
Литература, добавленная при переводе 764
Глава 20. Классическая теория оптимизации 765
20.1. Экстремальные задачи без ограничений 765
20.1.1. Необходимые и достаточные условия существования экстремума 766
20.1.2. Метод Ньютона-Рафсона 770
20.2. Задачи на экстремум при наличии ограничений 773
20.2.1. Ограничения в виде равенств 7 73
20.2.2. Ограничения в виде неравенств 789
Литература 796
Литература, добавленная при переводе 796
Глава 21. Алгоритмы нелинейного программирования 797
21.1. Алгоритмы решения задач без ограничений 797
Содержание
21.1.1. Методы прямого поиска 797
21.1.2. Градиентный метод 801
21.2. Алгоритмы решения задач с ограничениями 805
21.2.1. Сепарабельное программирование 805
21.2.2. Квадратичное программирование 815
21.2.3. Геометрическое программирование 820
21.2.4. Стохастическое программирование 825
21.2.5. Метод линейных комбинаций 829
21.2.6. Алгоритм последовательной безусловной максимизации 832
Литература 833
Литература, добавленная при переводе 833
Приложение А. Краткий обзор теории матриц 837
АЛ. Векторы 837
АЛЛ. Определение вектора 837
А. 1.2. Сложение и вычитание векторов 837
А.1.3. Умножение вектора на скаляр 837
А. 1.4. Линейная независимость векторов 838
А.2. Матрицы 838
А.2Л. Определение матриц 838
А.2.2. Типы матриц 838
А.2.3. Арифметические операции над матрицами 839
А.2.4. Определитель квадратной матрицы 840
А. 2.5. Невырожденная матрица 841
А.2.6. Обратная матрица 842
А.2.7. Методы вычисления обратных матриц 843
А.З. Квадратичные формы 847
А.4. Выпуклые и вогнутые функции 848
Литература 849
Литература, добавленная при переводе 849
Задачи 849
Приложение Б. TORA. Краткое описание 849
Б.1. Главное меню 849
Б.2. Режим ввода данных и форматы чисел 850
Б.З. Окно ввода данных 850
Б.4. Меню Solve/Modify 851
Б.5. Формат результата 852
Б.6. Выходные результаты 852
Содержание 15
Приложение В. Статистические таблицы 855
Приложение Г. Частичные ответы к некоторым
упражнениям 859
Предметный указатель 893
ПРЕДИСЛОВИЕ
Замечательно, что за 30 лет сотни тысяч студентов во всем мире познакомились с исследованием операций благодаря различным изданиям данной книги. Этот успех побуждает должным образом подготовить новое, седьмое, издание книги, чтобы оно отвечало потребностям будущих поколений студентов.
Основное внимание в седьмом издании уделяется интенсивному использованию соответствующего программного обеспечения. Прежде всего это программа TORA, шаблоны электронной таблицы Excel и программные пакеты LINGO и AMPL.
Программа TORA предлагает средства для обращения матриц, решения систем линейных уравнений, задач линейного целочисленного программирования, транспортных и сетевых задач, задач теории массового обслуживания и теории игр. TORA может использоваться в автоматическом режиме или в режиме пошагового выполнения, который можно считать режимом обучения. В автоматическом режиме выводится конечное решение задачи, обычно в стандартном формате, присущем "серьезным" научным программам. Режим пошагового выполнения — это уникальная возможность проверить понимание читателем вычислительных деталей каждого алгоритма. Как и ее DOS-предшественница, современная программа TORA имеет четкий и логичный интерфейс и проста в применении, что полностью исключает потребность в руководстве пользователя.
Шаблоны электронной таблицы Excel дополняют возможности программы TORA. Это, в частности, шаблоны для решения задач линейного и динамического программирования, реализации аналитического иерархического процесса, теории принятия решений, исследования моделей инвестиций, предварительной обработки данных, теории массового обслуживания, имитационного моделирования и нелинейной оптимизации. Некоторые из этих шаблонов являются "простыми" рабочими листами Excel. Другие используют надстройку Excel Поиск решения или макросы, написанные на языке VBA. Но независимо от того, что собой представляют эти шаблоны, все они обладают особыми средствами или специальными областями для ввода данных, что позволяет решать широкий круг задач без необходимости изменения формул или структуры рабочего листа. Формулы и структура рабочих листов организованы таким образом, чтобы минимизировать возможность их случайного изменения.
Книга включает примеры использования коммерческих пакетов LINGO и AMPL, предназначенных для решения сложных и больших задач математического программирования.
Программа TORA и электронная таблица Excel, описанные в книге, призваны облегчить изучение и понимание излагаемого материла там, где сделать это другим способом затруднительно. Исходя из своего личного опыта, могу утверждать, что пошаговый режим программы TORA и рабочие книги Excel очень эффективно помогают при аудиторном изучении материала, когда какие-либо концепции можно показать, просто изменив исходные данные задачи. Например, с помощью TORA
Предисловие
можно продемонстрировать причудливое поведение алгоритма ветвей и границ, примененного для решения небольшой задачи целочисленного программирования, когда решение найдено за девять итераций, а для проверки его оптимальности потребовалось более 25 тысяч итераций. Без такой программы, как TORA, с ее понятным интерфейсом, было бы сложно показать подобную ситуацию. Другой пример — это специальные шаблоны рабочих книг Excel для решения задач динамического программирования и реализации аналитического иерархического процесса, где пользователь в интерактивном режиме может эффективно изучить все подробности этих двух методов. Третий пример касается генерирования псевдослучайных чисел, равномерно распределенных на интервале от 0 до 1, на основе мультипликативного метода сравнений. С помощью соответствующей рабочей книги можно непосредственно продемонстрировать эффект влияния на "качество" генератора псевдослучайных чисел выбора начального числа и других параметров, в частности, на длину последовательности случайных чисел, и тем самым предостеречь студентов от опасности использования этого метода в своих имитационных моделях.
Все главы настоящего издания значительно переработаны (многие переписаны) для того, чтобы изложить материал в более лаконичной форме. В книгу включен новый материал: новая вводная глава 1, обобщенный симплекс-метод (глава 4), представление всех сетевых моделей в виде линейных моделей (глава 6), решение задачи коммивояжера (глава 9) и метод золотого сечения (глава 21).
Так же, как и в шестом издании, книга разбита на три части, посвященные описанию детерминированных, вероятностных и нелинейных моделей. Приложения содержат обзор теории матриц, введение в TORA (хотя сама программа своей простотой и наглядностью исключает необходимость в руководстве пользователя), основные статистические таблицы и ответы к некоторым задачам.
Благодарности
Я благодарен многим моим коллегам и сотням студентов за их советы и критические замечания о содержании книги. Особо хочу поблагодарить профессоров Майкла Харнетта (R. Michael Harnett) из университета шт. Канзас, Яссера Хосни (Yasser Hosni) из Флоридского университета, Гая Карри (Guy Curry) из Техасского сельскохозяйственного университета, Рафаэля Гутиэреса (Rafael Gutierez) из университета Техаса в Эль-Пасо, Роберта Льюиса (Robert Lewis) из Инженерного колледжа менеджмента армии Соединенных Штатов, Аллена С. Шермана (Allen С. Schuermann) из университета шт. Оклахома и Стивена Ван-Дрю (Steven L. VanDrew) из университета Мерке.
Мои коллеги по университету Арканзаса — профессоры Ричард Кесседи (Richard Cassady), Майк Кул (Mike Cole), Эрхан Кутан-оглы (Erhan Kutanoglu), Скотт Мэйсон (Scott Mason), Хетер Нектманн (Heather Nachtmann) и Мануэль Рос-сетти (Manuel Rossetti) — помогли мне при подготовке книги, и я очень благодарен им за их дружескую поддержку.
Отдельное спасибо хочу сказать профессорам Джоузу Вентуре (Jose Ventura) из университета шт. Пенсильвания, Джорджу Валенсуэле (Jorge Valenzuela) из Обен-ского университета, Бураку Экси-оглы (Burak Eksioglu) из Флоридского университета, Майклу Харнетту (Michael Harnett) из университета шт. Канзас и Стивену Ван-Дрю (Steven VanDrew) из университета Мерке за внимательное прочтение шестого издания книги и полезные замечания.
Предисловие
Хочу также выразить признательность моим редакторам Энн Имхоф (Ann Imhof), Дороти Марреро (Dorothy Marrero) и Линде Кастилло (Lynda Castillo) за их профессиональную работу по подготовке книги.
Я благодарен своему новому издателю Prentice Hall за мягкий и гладкий переход под его покровительство. Выражаю особую благодарность моим редакторам Бей-ни М. де Леон (Bayani М. de Leon), Алисе Дворкин (Alice Dworkin) и Редоре Пифиа-ренда (Rhodora Pefiaranda). Их опыт и компетентность чрезвычайно помогли мне.
Хэмди А. Таха hat@engr.uark.edu
ОБ АВТОРЕ
Хэмди А. Таха (Hamdy A. Taha) — профессор технической инженерии университета Арканзаса, где он преподает и ведет научную работу в области исследования операций и имитационного моделирования. Таха автор трех книг (помимо данной) по целочисленному программированию и имитационному моделированию. Его книги переведены в Китае, Корее, Испании, Японии, России, Турции и Индонезии. Таха также написал несколько книг в соавторстве. Его статьи напечатаны в журналах Management Science, Operations Research, Interfaces, Naval Research Logistics, European Journal of Operations Research и AllE Transactions.
Профессор Таха назван Senior Fulbright Scholar (ведущим Фулбрайтовским ученым) университета Карлоса III (Мадрид, Испания). Он удостоен премии Alumni Award за достижения в научных исследованиях и премии Nadine Baum Faculty Teaching Award за плодотворную преподавательскую деятельность (обе премии присуждены университетом Арканзаса). Он также награжден многочисленными премиями за научную и преподавательскую деятельность в инженерном колледже университета Арканзас. Хэмди Таха свободно владеет тремя языками и хорошо известен в Мексике и на Среднем Востоке.
ГЛАВА 1
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ: ЧТО ЭТО ТАКОЕ
Первые формальные разработки по исследованию операций (ИО) были инициированы в Англии во время Второй мировой войны, когда команда британских ученых сформулировала и нашла решение задачи наиболее эффективной доставки военного снаряжения на фронт. После окончания войны эти идеи были перенесены в гражданскую сферу для повышения эффективности и продуктивности экономической и производственной деятельности. Сегодня теория исследования операций является основным и неотъемлемым инструментом при принятии решений в самых разнообразных областях человеческой деятельности.
Краеугольным камнем исследования операций является математическое моделирование. Хотя данные, полученные в процессе исследования математических моделей, являются основой для принятия решений, окончательный выбор обычно делается с учетом многих других "нематериальных" (не имеющих числового выражения) факторов (таких как человеческое поведение), которые невозможно отобразить в математических моделях.
1.1. МАТЕМАТИЧЕСКИЕ МОДЕЛИ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ
Предположим, что в соответствии с деловыми обязательствами вам необходимо в течение пяти недель пять раз посетить город В (а живете вы в городе А). Вы должны быть в городе В в понедельник первой недели и окончательно возвратиться в город А в среду пятой недели. Билет из города А в город В и обратно стоит 400 долл., однако вы можете получить 20% скидки от стоимости билетов, если вылет придется на конец недели. Кроме того, следует учесть, что стоимость билета только в одну сторону равна 75% от стоимости заказного билета. Вы, естественно, хотите минимизировать стоимость перелетов. Как это сделать?
Описанную ситуацию можно рассматривать как задачу принятия решений, где для поиска оптимального решения требуется определить три основных компонента.
1. Что в данном случае считать альтернативными решениями?
2. Каким ограничениям должно удовлетворять возможное решение?
3. По какому критерию должны отбираться альтернативные решения?
В нашей задаче возможны следующие альтернативы.
1. Покупка пяти заказных билетов А-В-А (т.е. из города А в город В и обратно).
2. Покупка одного билета в одну сторону А-В, четырех билетов А-В-А, захватывающих конец недели, и одного "однонаправленного" билета В-А.
Глава 1. Исследование операций: что это такое
3. Покупка билета А-В-А для первой недели, причем между датами вылетов должен быть понедельник; для последней недели приобретение билета А-В-А, между датами которого должна быть среда, причем первый и последний билеты должны захватывать последние дни недели; покупка четырех билетов А-В-А, между датами которых также есть последние дни недели.
Ограничением в данной задаче являются дни прибытия: понедельник первой недели и среда пятой.
В данном случае естественным критерием для оценки возможных альтернатив является цена билетов. Альтернатива, обеспечивающая наименьшую стоимость билетов, будет наилучшей. В данном случае имеем следующие варианты.
Альтернатива 1: стоимость билетов = 5 х 400 = 2000 долл.
Альтернатива 2: стоимость билетов = 0,75 х 400 + 4 х 0,8 х 400 + 0,75 х 400 = = 1800 долл.
Альтернатива 3: стоимость билетов = 5 х (0,8 х 400) = 1600 долл. Очевидно, что наилучшей является третья альтернатива.
Приведенный пример показывает основные принципиальные составляющие модели исследования операций (ИО), а именно альтернативы, ограничения и критерий отбора альтернатив. Но в различных ситуациях эти составляющие могут весьма отличаться от аналогичных составляющих других моделей. Чтобы показать это, рассмотрим следующую задачу. Среди всех прямоугольников с периметром фиксированной длины L необходимо найти прямоугольник максимальной площади. Какую длину и ширину будет иметь такой прямоугольник?
В отличие от предыдущего примера здесь количество альтернатив бесконечно, поскольку длина и ширина прямоугольника могут принимать бесконечное множество значений (но из конечного интервала). Чтобы это свойство задачи выразить формально, определим возможные альтернативы, задав непрерывные переменные, соответствующие длине и ширине прямоугольника.
Итак, обозначим через / длину прямоугольника, через w — его ширину. Основываясь на этих обозначениях, ограничения задачи можно сформулировать следующим образом.
1. Ширина прямоугольника + длина прямоугольника = половина периметра прямоугольника.
2. Ширина и длина прямоугольника не могут быть отрицательными. Эти ограничения алгебраически запишутся так.
1. 2(l + w) = L.
2. l>0,w>0.
Теперь осталось не забыть о цели нашей задачи — максимизировать площадь прямоугольника. Обозначив площадь прямоугольника через г, окончательную математическую модель можно записать следующим образом.
Максимизировать г — lw
при ограничениях
2(1 + w) = L. l,w>0.
Оптимальным решением данной задачи будет w = 1 = L/4, т.е. среди прямоугольни-ов с фиксированным периметром максимальную площадь будет иметь квадрат.
1.1. Математические модели исследования операций
Два приведенных примера демонстрируют различия моделей ИО. В общем случае первым шагом в построении таких моделей является определение альтернатив, или переменных решения. Далее переменные решения используются для создания целевой функции и ограничений модели. Законченную типичную математическую модель ИО схематически можно представить следующим образом.
Максимизация или минимизация целевой функции при условии выполнения ограничений.
Решение задачи называется допустимым, если оно удовлетворяет всем ограничениям модели. Решение будет оптимальным, если, кроме того, что оно допустимо, целевая функция при этом решении достигает оптимального (максимального или минимального) значения. В примере с билетами задача имела три допустимых альтернативы и оптимальное решение предоставляла третья альтернатива. В примере с прямоугольником допустимое решение должно удовлетворять условию I + w = L/2 с неотрицательными значениями Iviw. Это приводит к бесконечному множеству допустимых решений, поэтому здесь, в отличие от примера с билетами, для поиска оптимального решения необходимо привлекать соответствующие математические средства (в данном случае — средства дифференциального исчисления).
В моделях ИО понятие "оптимальности" решений определяется с учетом соответствия этого решения множеству ограничений. Это означает, что качество конечного решения, сделанного на основе решения задачи, зависит от адекватности представления моделью реальной ситуации, которую она формально описывает посредством ограничений. Например, если в примере с билетами нам не были бы известны все варианты покупки билетов (точнее, скидки на билеты), то, скорее всего, оптимальным было бы другое решение. Если исключить из модели третью альтернативу, тогда "оптимальным" решением будет второй вариант, при котором следует заплатить за билеты 1880 долл. Такое решение будет условно оптимальным (или локально оптимальным) для реальной ситуации. Таким образом, конкретное оптимальное решение является наилучшим только для этой модели. Чем модель лучше отображает реальную ситуацию, тем ближе решение этой задачи к оптимальному.
УПРАЖНЕНИЯ 1.1
1. В примере с билетами определите четвертую возможную альтернативу.
2. В примере с прямоугольником найдите два допустимых решения и определите, какое из них лучше (т.е. какое решение задает прямоугольник с большей площадью).
3. Найдите оптимальное решение задачи о площади прямоугольника. (Совет. С помощью ограничений преобразуйте целевую функцию к функции, зависящей от одной переменной. Затем примените методы дифференциального исчисления.)
4. Крис, Джим, Джон и Келли находятся на восточном берегу реки и хотят переправиться на западный берег с помощью каноэ. Каноэ может вместить не более двух человек. Крис, как наиболее сильный из всех своих друзей, может переправиться через реку за 1 минуту. У Джима, Джона и Келли на это уйдет соответственно 2, 5 и 10 минут. Если в каноэ находятся два человека, то время переправы определяется по слабейшему пассажиру. Цель друзей заключается в переправе на западный берег реки по возможности за минимальное время.
a) Найдите не менее двух возможных схем переправы через реку.
b) Определите критерий оценки альтернатив.
c) Какое минимальное время переправы через реку всех друзей?
Глава 1. Исследование операций: что это такое
1.2. РЕШЕНИЕ МОДЕЛЕЙ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ1
В исследовании операций нет единого общего метода решения всех математических моделей, которые встречаются на практике. Вместо этого выбор метода решения диктуют тип и сложность исследуемой математической модели. Например, в разделе 1.1 для решения задачи о билетах необходимо просто ранжировать альтернативы по стоимости билетов, тогда как для решения задачи о максимальной площади прямоугольника необходимо применять средства дифференциального исчисления.
Наиболее известными и эффективными методами ИО являются методы линейного программирования, когда целевая функция и все ограничения являются линейными функциями. Для решения математических моделей других типов предназначены методы целочисленного программирования (если все переменные должны принимать только целочисленные значения), динамического программирования (где исходную задачу можно разбить на меньшие подзадачи) и нелинейного программирования (когда целевая функция и/или ограничения являются нелинейными функциями). Перечисленные методы составляют только часть из большого количества самых разнообразных доступных методов исследования операций.
Практически все методы ИО не позволяют получить решение в замкнутой (в виде формул) форме. Напротив, они порождают вычислительные алгоритмы, которые являются итерационными по своей природе. Это означает, что задача решается последовательно (итерационно), когда на каждом шаге (итерации) получаем решения, постепенно сходящиеся к оптимальному. Итерационная природа алгоритмов обычно приводит к объемным однотипным вычислениям. В этом и заключается причина того, что эти алгоритмы разрабатываются, в основном, для реализации с помощью вычислительной техники.
Некоторые математические модели могут быть такими сложными, что их невозможно решить никакими доступными методами оптимизации. В этом случае остается только эвристический подход: поиск подходящего "хорошего" решения вместо оптимального. Эвристический подход предполагает наличие эмпирических правил, в соответствии с которыми ведется поиск подходящего решения.
1.3. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
Несмотря на впечатляющие достижения математического моделирования, многие реальные ситуации невозможно адекватно представить с помощью соответствующих математических моделей. Часто в этом "виновата" определенная "жесткость" математики как языка описания и представления событий и явлений. Но даже если существует возможность формализовать рассматриваемую жизненную ситуацию посредством построения математической модели, полученная на ее основе задача оптимизации может быть слишком сложной для современных алгоритмов решения задач этого класса.
Альтернативой математическому моделированию сложных систем может служить имитационное моделирование. Различие между математической и имитацион-
1 Когда говорят о "решении моделей", то подразумевается "решение задачи, формализованной в виде модели". В англоязычной научной литературе общепринята такая "подмена". Если полистать книги по этой тематике, изданные в последнее время в России, то можно заметить, что подобные выражения приживаются и в русском научном обиходе. Поэтому мы оставили более короткое (и более емкое) выражение "решение моделей" без перевода в корректную, но более длинную (и более размытую в понятийном плане) литературную форму. — Прим. ред.
1.4. Искусство моделирования
ной моделями заключается в том, что в последней отношение между "входом" и "выходом" может быть явно не задано. Вместо явного математического описания взаимоотношения между входными и выходными переменными математической модели, при имитационном моделировании реальная система разбивается на ряд достаточно малых (в функциональном отношении) элементов или модулей. Затем поведение исходной системы имитируется как поведение совокупности этих элементов, определенным образом связанных (путем установки соответствующих взаимосвязей) в единое целое. Вычислительная реализация такой модели начинается с входного элемента, далее проходит по всем элементам, пока не будет достигнут выходной элемент.
Имитационные модели значительно гибче в представлении реальных систем, чем их математические "конкуренты". Причина такой гибкости заключается в том, что при имитационном моделировании исходная система рассматривается на элементарном уровне, а математические модели стремятся описать системы на глобальном уровне.
За гибкость имитационных моделей приходится платить высокими требованиями к потребляемым временным и вычислительным ресурсам. Поэтому реализация некоторых имитационных моделей даже на современных быстрых и высокопроизводительных компьютерах может быть очень медленной.
1.4. ИСКУССТВО МОДЕЛИРОВАНИЯ
Иллюстративные модели из раздела 1.1 точно отображают реальные ситуации (в том смысле, что здесь модели не являются абстрактными приближениями жизненных реалий). Но это исключение в практике исследования операций — подавляющее большинство моделей ИО в той или иной степени являются абстракциями реальной жизни. На рис. 1.1 показаны уровни абстракции, которые характеризуют разработку моделей ИО. Предположения о реальном мире абстрагируются от реального мира путем определения основных (доминантных) переменных, описывающих поведение реальных систем. Модель, являясь абстракцией предположений о реальном мире, на языке математических функций описывает поведение не реальных систем, а предположений о их поведении.
Реальный мир
Предположения о реальном мире
Модель | ||
Рис. 1.1. Уровни абстракций при построении моделей
Чтобы показать уровни абстракции в процессе моделирования, рассмотрим пример компании Tyko Manufacturing, производящей пластиковую упаковку. Когда заказ поступает в производственный отдел, необходимое для его выполнения сырье поступает со складов компании или закупается на стороне. Когда партия продукции готова, отдел сбыта берет на себя заботу о распределении и отправке готовой продукции заказчикам.
Глава 1. Исследование операций: что это такое
Анализ ИО деятельности компании должен дать ответ на вопрос о том, каким должен быть оптимальный объем партии изготовляемой продукции. Как можно представить описываемую ситуацию в виде модели?
Эту задачу следует рассматривать в целом как систему, где количество и типы переменных и параметров, описывающих эту систему, будут зависеть от того, со стороны какого подразделения компании мы смотрим на эту ситуацию.
1. Производственный отдел: возможности производства описываются в терминах доступных мощностей и трудовых ресурсов, наличия необходимого оборудования (или его стоимости, если оно отсутствует и его необходимо закупить), принятых стандартов качества и т.п.
2. Подготовительный цех (отвечает за сырье для производства): здесь переменными и параметрами, описывающими систему, будут доступное количество сырья на складе, сроки поставки новых партий сырья от поставщиков, емкость складских помещений и т.д. Если необходима предварительная обработка сырья, то добавляются новые переменные.
3. Отдел сбыта: с точки зрения этого подразделения система описывается прогнозируемыми объемами продаж готовой продукции, емкостью дистрибьюторской сети, эффективностью рекламной кампании, наличием конкурентов.
Каждая из приведенных переменных представляет производство компании Туко на своем уровне. И, конечно, определение четких функциональных зависимостей между этими переменными является весьма нетривиальной задачей.
Первый уровень абстракции требует определения границ для предположений о реальном мире (см. рис. 1.1). После некоторых размышлений приходим к выводу, что реальную систему приближенно можно представить двумя основными переменными: производительность и удельные издержки производства. Производительность включает такие показатели, как объем производственных мощностей, стандарты качества и доступное количество сырья. Удельные издержки зависят в основном от показателей, определяемых отделом сбыта. Существенным здесь является то, что упрощение реального мира происходит путем "сваливания в одну кучу" различных показателей, в результате чего появляются относительно простые переменные (показатели) предположений о реальном мире.
Теперь относительно просто на основе предположений о реальном мире построить модель, что будет следующим уровнем абстракции. Через производительность и удельные затраты можно выразить стоимостные и объемные показатели производства конкретной продукции. Абстрактную математическую модель можно построить на основе баланса стоимостных и/или объемных показателей таким образом, чтобы минимизировать, например, себестоимость производства.
1.5. БОЛЬШЕ, ЧЕМ ПРОСТО МАТЕМАТИКА
Поскольку модели ИО имеют математическую природу, существует мнение, что исследование операций является исключительно математической дисциплиной. Хотя математические методы действительно являются краеугольным камнем ИО, эта дисциплина не замыкается только на математических моделях (но отметим, что они действительно необходимы, поскольку облегчают и упрощают анализ реальных жизненных ситуаций). Математический аспект исследований операций должен рассматриваться в широком контексте всего процесса принятия решений. Поскольку человеческий фактор присутствует во всех задачах принятия решений, во многих случаях привлечение психологов дает ключ к решению задач. В качестве иллюстрации этого положения рассмотрим три примера.
1.5. Больше, чем просто математика
1. Классическим примером является известная проблема лифта. Жильцы высотного дома постоянно жаловались на длительное ожидание лифта. На основе модели массового обслуживания это время было оптимизировано. Но предложенное решение не уменьшило поток жалоб. Дальнейшее изучение ситуации показало, что жильцам просто скучно ждать лифт. Проблема была решена, когда в холле возле лифтов повесили большие зеркала. Жалобы на длительное ожидание лифта прекратились: теперь жильцы коротают время возле лифтов, разглядывая себя и других в зеркале, что, согласитесь, почти не надоедает.
2. Группа американских и канадских специалистов ИО изучала возможность увеличить пропускную способность регистрационных стоек большого британского аэропорта. По одной из рекомендаций, выработанных этой группой, в видных местах вывесили таблички с указанием, что пассажиры, у которых осталось менее 20 минут до вылета, должны без очереди подойти к регистрационной стойке. Однако эта мера не имела успеха, поскольку пассажиры, особенно британцы, настолько уважают "живую" очередь, что не могли позволить себе подобную вольность.
3. В сталелитейном производстве первым продуктом, получаемым из железной руды, являются стальные слитки, из которых затем производят различные сталепрокатные изделия. Управляющий производством заметил слишком большую задержку между получением и непосредственным их прокатом на прокатных станах. В идеале прокатка слитков должна начинаться сразу после получения их из печи, чтобы уменьшить потребность повторного нагрева слитков. Первоначально эта проблема группой экспертов ИО была представлена в виде линейной модели, оптимизирующей баланс между производительностью литейной печи и пропускной способностью прокатного стана. В процессе исследования ситуации эксперты строили простые графики производительности плавильной печи, суммируя производство стальных слитков в течение ее трехсменной работы. Они обнаружили, что, хотя третья смена начинается в 23 часа, наибольшая производительность достигается только между 2 и 5 часами утра. Дальнейшие наблюдения показали, что операторы печи, работающие в третью смену, имели привычку в начале смены устроить себе довольно длительный период "раскачки", наверстывая этот простой в утренние часы. Таким образом, данная проблема решалась простым выравниванием производства слитков в течение всех рабочих смен, для чего пришлось "поработать" с человеческим фактором.
На основе трех приведенных примеров можно сделать такие заключения.
1. Прежде чем приступать к построению математических моделей, команда экспертов ИО должна рассмотреть возможность разрешения проблемы путем применения какого-либо "человеческого", а не технического решения. В основе решения проблемы лифта путем установки зеркал лежат свойства человеческого поведения, а не математическое моделирование. Отметим, что и стоимость такого решения значительно ниже, чем стоимость решения, полученного на основе математического моделирования. В связи с этим команды экспертов ИО обычно в качестве первого этапа исследования реальной проблемы проводят экспертизу ситуации путем привлечения специалистов, не связанных с математикой (при решении проблемы лифта такими специалистами были психологи). Это было выявлено еще во время Второй мировой войны британскими учеными, "пионерами" в области ИО, — в команду разработчиков ИО входили специалисты по социологии, психологии и поведенческим наукам.
Глава 1. Исследование операций: что это такое
2. Решения, как правило, реализуются через людей, а не через "бездушные" технологии. Любое решение, которое не учитывает человеческого поведения, обречено на провал. Причиной невыполнения рекомендаций команды консультантов британского аэропорта стало неучтенное этой командой культурное различие между Соединенными Штатами и Великобританией (американцы и канадцы более свободны в поведении, чем британцы).
3. Анализ ИО никогда не начинается сразу с поиска решения построенной математической модели — сначала надо доказать обоснованность ее применения. Например, поскольку методы линейного программирования хорошо зарекомендовали себя на практике, существует тенденция использовать линейные модели в любых ситуациях. Это приводит к тому, что такие модели плохо соответствуют реальной проблеме. Сначала всегда следует проанализировать имеющиеся данные, используя для этого по возможности простые технологии (например, вычисляя средние, строя диаграммы и графики и т.п.). Когда проблема исследована и определена, для ее решения подбираются соответствующие методы.2 В примере со сталелитейным производством простые временные графики производства стальных слитков стали тем единственным средством, которое помогло исправить ситуацию.
1.6. МЕТОДОЛОГИЯ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ
Решения реальных задач исследования операций должны быть плодом коллективной работы, когда заказчики исследований и аналитики работают бок о бок. Аналитикам ИО с их знаниями возможностей математического моделирования необходимы опыт и знание реальной ситуации, исходящие от клиента, для которого, собственно, и решается задача ИО.
Исследование операций как инструмент задачи принятия решения можно рассматривать и как науку, и как искусство. Наука здесь представлена всей мощью математических методов, а искусство — тем обстоятельством, что успех на всех этапах, предшествующих получению оптимального решения математической модели, в большей степени зависит от творчества и опыта всей команды, занимающейся решением задачи ИО. Уиллимейн (Willemain, [8]) утверждает, что "эффективная практика [ИО] требует нечто больше, чем только знания и компетентность. Она также требует, среди прочего, "технической" мудрости (т.е. понимания того, когда и как применять тот или иной метод или алгоритм) и определенного уровня коммуникабельности и организационных способностей".
Из-за "неуловимого" человеческого фактора трудно дать точные предписания для реализации теории исследования операций на практике. Можно попытаться показать только общую направленность такой реализации.
На практике реализация методов ИО должна включать следующие этапы.
1. Формализация исходной проблемы.
2. Построение математической модели.
Использовать специальные математические модели до обоснования их применимости — все равно, что ставить телегу впереди лошади. Это напоминает мне историю об одном пассажире самолета, который панически боялся бомб на борту самолета, которые могли подложить террористы. Он вычислил вероятность такого события. Эта вероятность оказалась сравнительно небольшой, но достаточной, чтобы вызвать его беспокойство. Исходя из этого, он всегда проносил бомбу на самолет в своем портфеле, поскольку, по его расчетам, вероятность того, что на самолете окажется две бомбы, практически равна нулю!
1.6. Методология исследования операций
3. Решение модели.
4. Проверка адекватности модели.
5. Реализация решения.
Из всех пяти приведенных этапов только третий, решение модели, достаточно точно определен и наиболее прост для реализации в рамках методологии ИО, поскольку действия на этом этапе основываются на точной математической теории. Выполнение остальных этапов в значительной мере является искусством, а не наукой. Поэтому мы не можем точно описать эти процедуры.
Формализация проблемы требует исследования той предметной области, где возникла рассматриваемая проблема. Это начальный этап работы любой команды аналитиков ИО. В результате такого исследования должны быть получены следующие три принципиальных элемента решаемой задачи: 1) описание возможных альтернативных решений, 2) определение целевой функции, 3) построение системы ограничений, налагаемых на возможные решения.
Построение математической модели означает перевод формализованной задачи, описание которой получено на предыдущем этапе, на четкий язык математических отношений. Если получена одна из стандартных математических моделей, например, модель линейного программирования, то решение обычно достигается путем использования существующих алгоритмов. Если же результирующая модель очень сложная и не приводится к какому-либо стандартному типу моделей, то команда ИО может либо упростить ее, либо применить эвристический подход, либо использовать имитационное моделирование. В некоторых случаях комбинация математической, имитационной и эвристической моделей может привести к решению исходной проблемы.
Решение модели, как уже упоминалось, — наиболее простой из всех этапов реализации методов исследования операций, так как здесь используются известные алгоритмы оптимизации. Важным аспектом этого этапа является анализ чувствительности полученного решения. Это подразумевает получение дополнительной информации о поведении "оптимального" решения при изменении некоторых параметров модели. Анализ чувствительности особенно необходим, когда невозможно точно оценить параметры модели. В этом случае важно изучить поведение оптимального решения в окрестности первоначальных оценок параметров модели.
Проверка адекватности модели предполагает проверку ее правильности, т.е. определения того, соответствует ли поведение модели в конкретных ситуациях поведению исходной реальной системы. Но сначала команда аналитиков ИО должна удостовериться, что модель не содержит "сюрпризов". Другими словами, надо убедиться, что решение, полученное в рамках построенной модели, имеет смысл и интуитивно приемлемо. Формальным общепринятым методом проверки адекватности модели является сравнение полученного решения (поведение модели) с известными ранее решениями или поведением реальной системы. Модель считается адекватной, если при определенных начальных условиях ее поведение совпадает с поведением исходной системы при тех же начальных условиях. Конечно, это не гарантирует, что при других начальных условиях поведение модели будет совпадать с поведением реальной системы. В некоторых случаях в силу разных причин невозможно прямое сравнение модели с реальной системой или сравнение решений, полученных в рамках этой модели, с известными решениями (например, из-за отсутствия таких данных). В такой ситуации для проверки адекватности ма
Глава 1. Исследование операций: что это такое
тематической модели можно использовать имитационное моделирование, т.е. сравнивать поведение математической и имитационной моделей.
Реализация решения подразумевает перевод результатов решения модели в рекомендации, представленные в форме, понятной для лиц, принимающих решения, т.е. заказчиков. Бремя этой непростой задачи ложится непосредственно на плечи команды аналитиков ИО.
1.7. ОБ ЭТОЙ КНИГЕ
Моррис (Morris, [5]) утверждает, что "изучение моделей не эквивалентно изучению моделирования". Автор постоянно держал эту важную мысль в голове во время подготовки седьмого издания данной книги и сознательно старался привнести искусство моделирования в теорию исследования операций. Эта книга, кроме описания математических моделей, содержит большое количество упражнений и задач, которые позволяют проникнуть в суть анализа практических ситуаций.
Автор надеется, что эта книга даст студентам не только фундаментальную основу для понимания математических методов исследования операций, но и понимание возможностей их применения. Такое понимание должно показать, что недостаточно сосредоточиться только на философских и "художественных" аспектах ИО. Необходимы фундаментальные знания математических методов исследования операций. Только на этой основе студенты могут "взращивать" свой "художественный" потенциал в искусстве моделирования ИО. Хорошим подспорьем здесь может служить изучение публикаций и статей в различных журналах. Автор настоятельно рекомендует журнал Interfaces (издательство INFORMS) как богатый источник интересных приложений теории ИО.
ЛИТЕРАТУРА
1. Altier W. J. The Thinking Manager's Toolbox: Effective Processes for Problem Solving and Decision Making, Oxford University Press, New York, 1999.
2. Checkland P. Systems Thinking, System Practice. Wiley, New York, 1999.
3. Evans J. Creative Thinking in the Decision and Management Sciences, South-Western Publishing, Cincinnati, Ohio, 1991.
4. Gass S. Model World: Danger, Beware the User as a Modeler, Interfaces, Vol. 20, No. 3, pp. 60-64, 1990.
5. Morris W. On the Art of Modeling, Management Science, Vol. 13, pp. B707-B717,1967.
6. Paulos J. A. Innumeracy: Mathematical Illiteracy and Its Consequences. Hill and Wang, New York, 1988.
7. Taha H. Guide to Optimization Models. Chapter 11.3 in Maynard's Industrial Engineering Handbook, 5th ed. McGraw-Hill, New York, 2001, pp. 11.45-11.65.
8. Willemain T.R. Insights on Modeling from a Dozen Experts, Operations Research, Vol. 42, No. 2, pp. 213-222, 1994.
Литература
Литература, добавленная при переводе3
1. Вагнер Г. Основы исследования операций. — М.: Мир, 1972.
2. Вентцель Е. С. Исследование операций. — М.: Советское радио, 1972.
3. Вилкас Э. Й., Майминас Е.З. Решения: теория, информация, моделирование. — М.: Радио и связь, 1981.
4. Гермейер Ю. Б. Введение в теорию исследования операций. — М.: Наука, 1971.
5. Ларичев О. И. Наука и искусство принятия решений.—М.: Наука, 1979.
6. Ларичев О. И. Объективные модели и субъективные решения. — М.: Наука, 1987.
7. Краснощеков П. С, Петров А. А. Принципы построения моделей. — М.: Изд-во МГУ, 1983.
8. Мур Дж., Уэдерфорд Л. Экономическое моделирование в Microsoft Excel. — М.: Издательский дом "Вильяме", 2004.
9. Шеннон Р. Имитационное моделирование систем — искусство и наука. — М.: Мир, 1978.
Литература по исследованию операций на русском языке очень обширна. Но, поскольку данная книга позиционирует себя как учебник, мы будем приводить, в основном, монографии, "устоявшиеся" в качестве учебных пособий для вузов. — Прим. ред.
ГЛАВА 2
ВВЕДЕНИЕ В ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
Линейное программирование (ЛП) — это метод оптимизации моделей, в которых целевые функции и ограничения строго линейны. ЛП успешно применяется в военной области, индустрии, сельском хозяйстве, транспортной отрасли, экономике, системе здравохранения и даже в социальных науках. Широкое использование этого метода также подкрепляется высокоэффективными компьютерными алгоритмами, реализующими данный метод. На алгоритмах линейного программирования (учитывая их компьютерную эффективность) базируются оптимизационные алгоритмы для других, более сложных типов моделей и задач исследования операций, включая целочисленное, нелинейное и стохастическое программирование.
Эта глава начинается с изучения моделей с двумя переменными и их графическими решениями. Обобщение графического метода решения приводит к алгебраическому симплекс-методу (см. главу 3). Графическое решение также показывает конкретные механизмы разработки и реализации анализа чувствительности задач ЛП. Глава заканчивается большим количеством примеров формализации и решения практических задач.
2.1. МОДЕЛИ ЛП С ДВУМЯ ПЕРЕМЕННЫМИ
В этом разделе на простом примере с двумя переменными показаны основные элементы модели ЛП. Далее этот пример будет обобщен в общую задачу линейного программирования.
Пример 2.1.1. Компания Reddy Mikks1
Компания Reddy Mikks производит краску для внутренних и наружных работ из сырья двух типов: Ml и М2. Следующая таблица представляет основные данные для задачи.
1 Автор часто использует в примерах шуточные названия компаний, которые адекватно трудно перевести на русский язык. Например, в данном случае Reddy Mikks дословно не переводится, но по-русски это звучало бы как "Охряные смеси" (намек на производимые краски) или как "Краснощекие бездельники". Эти названия, как правило, не несут смысловой нагрузки. Поэтому в большинстве случаев мы будем оставлять их без перевода. — Прим. перев.
Глава 2. Введение в линейное программирование
Расход сырья (в тоннах) на тонну краски
для наружных работ
для внутренних работ
Максимально возможный ежедневный расход сырья
Сырье М1 Сырье М2 6
Доход (в тыс. долл.) на тонну краски 5 4
Отдел маркетинга компании ограничил ежедневное производство краски для внутренних работ до 2 т (из-за отсутствия надлежащего спроса), а также поставил условие, чтобы ежедневное производство краски для внутренних работ не превышало более чем на тонну аналогичный показатель производства краски для внешних работ. Компания хочет определить оптимальное (наилучшее) соотношение между видами выпускаемой продукции для максимизации общего ежедневного дохода.
Задача (модель) линейного программирования, как и любая задача исследования операций, включает три основных элемента.
1. Переменные, которые следует определить.
2. Целевая функция, подлежащая оптимизации.
3. Ограничения, которым должны удовлетворять переменные.
Определение переменных — первый шаг в создании модели. После определения переменных построение ограничений и целевой функции обычно не вызывает трудностей.
В нашем примере необходимо определить ежедневные объемы производства краски для внутренних и наружных работ. Обозначим эти объемы как переменные модели:
х1 — ежедневный объем производства краски для наружных работ;
х2 — ежедневный объем производства краски для внутренних работ.
Используя эти переменные, далее строим целевую функцию. Логично предположить, что целевая функция, как суммарный ежедневный доход, должна возрастать при увеличении ежедневных объемов производства красок. Обозначим эту функцию через z (она измеряется в тысячах долларов) и положим, что г = 5.v, + 4.v2. В соответствии с целями компании получаем задачу:
Итак, остался не определенным последний элемент модели — условия (ограничения), которые должны учитывать возможности ежедневного потребления сырья и ограниченность спроса на готовую продукцию. Другими словами, ограничения на сырье можно записать следующим образом.
максимизировать z = 5хх + 4х2.
Используемый объем сырья для производства < обоих видов краски ,
ежедневный расход сырья
Максимально возможный
Из таблицы с данными имеем следующее.
Используемый объем сырья Ml = 6jc, + 4х, (т) Используемый объем сырья М2 = 1дг, + 2х2 (т)
2.1. Модели ЛП с двумя переменными
Поскольку ежедневный расход сырья Ml и М2 ограничен соответственно 24 и 6 тоннами, получаем следующие ограничения.
6х, + 4х2 < 24 (сырье Ml)
1х, + 2х2 < 6 (сырье М2)
Существует еще два ограничения по спросу на готовую продукцию. Первое ограничение указывает, что ежедневный объем производства краски для внутренних работ не должен превышать ежедневный объем производства краски для наружных работ более чем на одну тонну, т.е. х2 - х, < 1. Второе ограничение простое — максимальный ежедневный объем производства краски для внутренних работ не должен превышать 2 т — и записывается как х2 < 2.
Еще одно неявное ограничение состоит в том, что переменные х, и х2 должны быть неотрицательными. Таким образом, к сформулированным выше ограничениям необходимо добавить условие неотрицательности переменных: х, > 0, х2 > 0.
Окончательно задача будет записана следующим образом:
максимизировать z = 5х, + 4дг2 при выполнении ограничений
6х, + 4х2 < 24, xt + 2x2<6,
- Xj +х2 < 1,
х2<2,
х,>0,х2>0.
Любое решение, удовлетворяющее ограничениям модели, является допустимым. Например, решение х, = 3 и х2 = 1 будет допустимым, так как не нарушает ни одного ограничения, включая условие неотрицательности. Чтобы удостовериться в этом, подставьте значения х, = 3 и х2 = 1 в левые части неравенств системы ограничений и убедитесь, что ни одно неравенство не нарушается. Значение целевой функции при этом решении будет равно z = 5x3 4- 4x1 = 19 (тыс. долл.).
Итак, задача сформулирована, теперь встает вопрос о поиске оптимального допустимого решения, доставляющего максимум целевой функции. После некоторых раздумий приходим к выводу, что задача имеет много (фактически бесконечно много) допустимых решений. По этой причине невозможна подстановка значений переменных для поиска оптимума, т.е. нельзя применить простой перебор всех допустимых решений. Следовательно, необходима эффективная процедура отбора допустимых решений для поиска оптимального. В разделе 2.2 показан графический метод нахождения оптимального допустимого решения, а в главе 3 — его алгебраическое обобщение.
В предыдущем примере целевая функция и все ограничения были линейными. Свойство линейности функций предполагает следующее.
1. Значения левых частей неравенств ограничений и значение целевой функции прямо пропорциональны значениям переменных.
2. Аддитивность переменных означает, что общий вклад всех переменных в значения целевой функции и левых частей неравенств ограничений является прямой суммой вкладов каждой отдельной переменной.
Глава 2. Введение в линейное программирование
УПРАЖНЕНИЯ 2.1
1. В модели для компании Reddy Mikks сформулируйте новые ограничения, исходя из следующих условий.
a) Ежедневный объем производства краски для внутренних работ должен не менее чем на одну тонну превышать ежедневный объем производства краски для наружных работ.
b) Ежедневное потребление сырья М2 должно быть не менее 3 т и не более 6 т.
c) Ежедневный объем производства краски для внутренних работ не может быть меньше ежедневного объема производства краски для наружных работ.
d) Минимальный ежедневный общий объем производства краски обоих типов составляет 3 т.
e) Отношение ежедневного объема производства краски для внутренних работ к общему объему производства краски обоих типов не должно превышать 0,5.
2. Для компании Reddy Mikks найдите оптимальное допустимое решение модели среди следующих решений.
а) | xi | = 1,л;2 = 4; |
Ь) | х1 | = 2, х2 = 2; |
с) | xi | = 3, х2 = 1,1 |
d) | х | = 2, х8- 1; |
е) | xi | = 2,х2 = -1 |
3. Для допустимого решения л:, = 2, х2 = 2 в модели компании Reddy Mikks определите:
a) объем используемого сырья Ml;
b) объем используемого сырья М2.
4. Предположим, что компания Reddy Mikks продает свою краску для наружных работ оптовому покупателю со скидкой, зависящей от объема поставок. В результате доход на тонну продукции составляет 5000 долл., если оптовик покупает не более 2 т краски в день, и 4500 долл. — в противном случае. Можно ли для этой ситуации построить модель линейного программирования?
2.2. ГРАФИЧЕСКОЕ РЕШЕНИЕ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Графический способ решения задачи ЛП состоит из двух этапов.
1. Построение пространства допустимых решений, удовлетворяющих всем ограничениям модели.
2. Поиск оптимального решения среди всех точек пространства допустимых решений.
Далее графический способ решения описан в двух вариантах: для максимизации и минимизации целевой функции.
2.2. Графическое решение задачи линейного программирования 2.2.1. Нахождение максимума целевой функции
Пример 2.2.1
Мы используем модель, построенную для компании Reddy Mikks в разделе 2.1, чтобы показать два этапа графического решения задачи ЛП.
Этап 1. Построение пространства допустимых решений.
Сначала проведем оси: на горизонтальной будут указываться значения переменной х^ а на вертикальной — х2 (рис. 2.1). Далее рассмотрим условие неотрицательности переменных: л, > 0 и х2 > 0. Эти два ограничения показывают, что пространство допустимых решений будет лежать в первом квадранте (т.е. выше оси х, и правее оси х2).
Чтобы учесть оставшиеся ограничения, проще всего заменить неравенства на равенства (получив уравнения прямых), а затем на плоскости провести эти прямые. Например, неравенство 6х1 + 4х2 < 24 заменяется уравнением прямой 6х, + 4х2 = 24. Чтобы провести эту линию, надо найти две различные точки, лежащие на этой прямой. Если х, = 0, то х2 = 24/4 = 6. Аналогично для х2 = 0 находим х1 = 24/6 = 4. Итак, наша прямая проходит через две точки (0, 6) и (4, 0). Эта прямая обозначена на рис. 2.1 как линия (1).
Теперь рассмотрим, как графически интерпретируются неравенства. Каждое неравенство делит плоскость (xv х2) на два полупространства, которые располагаются по обе стороны прямой, которая, как показано выше, соответствует данному неравенству. Точки плоскости, расположенные по одну сторону прямой, удовлетворяют неравенству (допустимое полупространство), а точки, лежащие по другую сторону, — нет. "Тестовой" точкой, проверяющей, точки какого полупространства удовлетворяют
Ограничения:
Рис. 2.1. Пространство допустимых решений модели
Глава 2. Введение в линейное программирование
неравенству, а какого — нет, может служить точка (0, 0). Например, эта точка удовлетворяет первому неравенству 6xt + 4х2 < 24 (здесь 6х0+4х0=0< 24). Это означает, что точки полупространства, содержащего начальную точку (0, 0), удовлетворяют этому неравенству. На рис. 2.1 допустимые полупространства показаны стрелочками.
Если точка (0, 0) не удовлетворяет неравенству, допустимым полупространством будет то, которое не содержит эту точку. Если же прямая проходит через эту точку, следует в качестве "тестовой" взять какую-либо другую точку.
Этап 2. Поиск оптимального решения.
Точки пространства допустимых решений, показанного на рис. 2.1, удовлетворяют одновременно всем ограничениям. Это пространство ограничено отрезками прямых, которые соединяются в угловых точках Л, В, С, D, Е и F. Любая точка, расположенная внутри или на границе области, ограниченной ломаной ABCDEF, является допустимым решением, т.е. удовлетворяет всем ограничениям. Поскольку пространство допустимых решений содержит бесконечное число точек, необходима некая процедура поиска оптимального решения.
Для того чтобы найти оптимальное решение, необходимо определить направление возрастания целевой функции z = 5х1 + 4х2 (напомним, что функцию z следует максимизировать). Мы можем приравнять z к нескольким возрастающим значениям, например 10 и 15. Эти значения, подставленные вместо z в выражение целевой функции, порождают уравнения прямых; для значений 10 и 15 получаем уравнения прямых 5х, + 4х2 = 10 и 5xj + 4х2 =15. На рис. 2.2 эти прямые показаны штриховыми линиями, а направление возрастания целевой функции — жирной стрелкой.2 Целевая функция может возрастать до тех пор, пока прямые, соответствующие возрастающим значениям этой функции, пересекают область допустимых решений. Точка пересечения области допустимых решений и прямой, соответствующей максимально возможному значению целевой функции, и будет точкой оптимума.
На рис. 2.2 видно, что оптимальное решение соответствует точке С. Эта точка является местом пересечения прямых (1) и (2), поэтому ее координаты хх и х2 находятся как решение системы уравнений, задающих эти прямые:
6х, + 4х2 = 24,
Х! + 2х2 = 6.
Решением этой системы будет xt = 3 и х2= 1,5, при этом значение целевой функции равно z = 5x3 + 4x1,5 = 21. Полученное решение означает, что для компании Reddy Mikks оптимальным выбором будет ежедневное производство 3 т краски для наружных работ и 1,5 т — для внутренних работ с ежедневным доходом в 21 000 долл.
Не случайно, что оптимальное решение расположено в угловой точке пространства допустимых решений, где пересекаются две прямые. Если мы изменим наклон функции z (путем изменения ее коэффициентов), то обнаружим, что в любом случае решение достигается в одной из угловых точек (или одновременно в нескольких угловых точках). В этом и состоит основная идея построения общего симплексного алгоритма, который будет рассмотрен в главе 3.
Направление изменения целевой функции легко определить из вида целевой функции: коэффициенты при переменных х1и хг — это координаты нормали к прямой, определяемой целевой функцией. В данном случае целевая функция будет изменяться в направлении вектора (5; 4). — Прим. ред.
2.2. Графическое решение задачи линейного программирования
Рис. 2.2. Оптимальное решение модели
УПРАЖНЕНИЯ 2.2.1
1. Для каждого из следующих неравенств определите допустимое полупространство, предполагая, что xlt х2 > 0:
a) -Зл:, + хг < 6;
b) х1-2х2>5;
c) 2х1-3х2<12;
d) х1 - х2 < 0;
e) -я, + х2 > 0.
2. Определите направление возрастания целевой функции z в следующих случаях:
a) максимизировать z — x1 — хг;
b) максимизировать z = -5х1 - 6х2;
c) максимизировать z = -хг + 2х2;
d) максимизировать z = -3xt + х2.
3. В рамках модели компании Reddy Mikks постройте пространство допустимых решений и найдите оптимальное решение, учитывая (независимо) следующие условия.
a) Ежедневный объем производства краски для наружных работ не должен превышать 2,5 т.
b) Ежедневный объем производства краски для внутренних работ должен быть не менее 2 т.
c) Ежедневный объем производства краски для внутренних работ должен превышать ежедневный объем производства краски для наружных работ ровно на одну тонну.
Глава 2. Введение в линейное программирование
d) Ежедневный расход сырья Ml должен быть не менее 24 т.
e) Ежедневный расход сырья Ml должен быть не менее 24 т, и ежедневный объем производства краски для внутренних работ должен не менее чем на одну тонну превышать ежедневный объем производства краски для наружных работ.
4. Для исходной задачи компании Reddy Mikks определите угловые точки области допустимых решений, где достигается оптимальное решение для следующих целевых функций:
a) г = Зл:, + х2
b) г = ж, + Зх2;
c) г = 6л:, + 4х2.
Чем решение для целевой функции п. с отличается от решений для целевых функций пп. а и Ы
5. Джек — студент-первокурсник. Он пришел к выводу, что одна только учеба, без ежедневной игры в баскетбол, плохо влияет на его умственное, нравственное и физическое развитие. Поэтому он решил распределить свое дневное время (примерно 10 часов) для учебы и игры в баскетбол. Привлекательность игрового времени он оценивает в два раза выше, чем привлекательность времени, затраченного на учебу. Но, имея совесть и чувство долга, Джек решил, что время для игры не должно превышать время учебы. Кроме того, он заметил, что, если выполнять все учебные задания, на игру останется не более 4 часов в день. Помогите Джеку распределить время так, чтобы он получал максимальное удовольствие и от работы, и от игры.
2.2.2. Нахождение минимума целевой функции
Пример 2.2.2. Задача "диеты"
Фармацевтическая фирма Ozark ежедневно производит не менее 800 фунтов3 некой пищевой добавки — смеси кукурузной и соевой муки, состав которой представлен в следующей таблице.
Белок Клетчатка | Стоимость | |
Мука | (в фунтах на фунт муки) | (в долл. за фунт) |
Кукурузная | 0,09 0,02 | 0,30 |
Соевая | 0,60 0,06 | 0,90 |
Диетологи требуют, чтобы в пищевой добавке было не менее 30% белка и не более 5% клетчатки. Фирма Ozark хочет определить рецептуру смеси минимальной стоимости с учетом требований диетологов.
Практически во всех примерах при описании реальных ситуаций автор пользуется системой мер, принятой в США. Мы не стали переводить эти единицы измерения в метрическую систему, так как названия единиц никак не влияют ни на описание примеров, ни на понимание методов, иллюстрируемых ими. — Прим. ред.
2.2. Графическое решение задачи линейного программирования
Поскольку пищевая добавка состоит только из кукурузной и соевой муки, переменными для этой задачи,очевидно, будут:
jCj — количество (в фунтах) кукурузной муки, используемой в дневном производстве пищевой добавки;
х, — количество (в фунтах) соевой муки, используемой в дневном производстве пищевой добавки.
Целевая функция равна общей стоимости пищевой добавки, производимой за один день, и должна быть минимальной. В данном случае это можно записать следующим образом:
минимизировать z — 0,3х, + 0,9х2.
Ограничения модели должны отражать производственные требования и рекомендации диетологов. Фирма должна выпускать не менее 800 фунтов смеси в день; соответствующее ограничение будет записано следующим образом:
х, + х2>800.
Рассмотрим ограничение, связанное с количеством белка в пищевой добавке. Общее количество белка в смеси, состоящей из х, фунтов кукурузной муки и х2 фунтов соевой муки, равно 0,09xj + 0,6х2 (фунтов). Это количество должно составлять не менее 30% от общего объема смеси xt + х2. Отсюда получаем следующее неравенство:
0,09х, + 0,6х2 > 0,3(х! + х2).
Аналогично строится ограничение для клетчатки:
0,02х, + 0,06х2 < 0,05(х! + х2).
В последних двух неравенствах переменные х1 и х2 надо перенести из правых частей неравенств в левые. Окончательно модель примет следующий вид.
Минимизировать z = 0,3х1 + 0,9х2
при ограничениях
х, +х2>800, 0,21х,-0,30х2<0, О.ОЗх, -0,01х2>0, х,,х2>0.
На рис. 2.3 показано графическое решение этой задачи. В отличие от модели примера 2.2.1, здесь две прямые, соответствующие неравенствам ограничений, проходят через начальную точку (0, 0). Для того чтобы провести на графике такую прямую, необходима еще одна точка. Координаты этой точки можно найти, подставив в уравнение прямой любое значение для одной переменной, и затем из этого уравнения вычислить значение для другой. Например, для второго неравенства из системы ограничений положим Xj = 200, тогда для второй переменной получаем уравнение 0,21x200 -0,3х2 = 0; отсюда имеем х2 = 140. Таким образом, прямая 0,21х, - 0,30х2 = 0 проходит через точки (0, 0) и (200, 140). Заметим также, в данном случае для определения допустимого полупространства нельзя использовать в качестве "тестовой" точку (0, 0), здесь следует взять какую-либо другую, например (100, 0) или (0, 100).
Поскольку в данной модели следует минимизировать целевую функцию, нужно идти в направлении уменьшения ее значений (это направление на рис. 2.3 показано стрелкой). Оптимальное решение находится на пересечении прямых х, + х2 = 800
Глава 2. Введение в линейное программирование
и 0,21л, - 0,30дг2 = 0, откуда получаем дг, = 470,6 (фунтов) и х2 = 329,4 (фунтов). При этих значениях переменных минимальная стоимость производимой ежедневно пищевой добавки составляет z = 0,3 х 470,6 + 0,9 х 329,4 = 437,64 долл.
х2
О 500 N Ш00 1500
Рис. 2.3. Графическое решение задачи "диеты"
УПРАЖНЕНИЯ 2.2.2
1. Определите направление убывания следующих целевых функций:
a) минимизировать z = 4х, - 2х2;
b) минимизировать z = -Зле, + х2;
c) минимизировать z = -х, - 2х2.
2. В задачу "диеты" добавлено еще одно ограничение: ежедневный расход кукурузной муки ограничен 450 фунтами. Постройте новое пространство допустимых решений и найдите новое оптимальное решение.
3. Найдите оптимальное решение в задаче "диеты" при условии, что ежедневное производство пищевой добавки не должно превышать 800 фунтов. Имеет ли такое решение смысл?
4. Джон, помимо занятий в школе, для поддержания надлежащего финансового уровня должен подрабатывать не менее 20 часов в неделю. Для этого у него есть прекрасная возможность работать в двух магазинчиках. В первом он может работать от 5 до 12 часов в неделю, а во втором — от 6 до 10 часов. Оба магазина предлагают одинаковую почасовую оплату. Джон должен определиться, в каком магазине и сколько ему работать, исходя из фактора "напряженности" работы. Основываясь на сведениях, полученных при общении
2.2. Графическое решение задачи линейного программирования
с работниками этих магазинов, он оценил этот фактор по 10-балльной шкале: для первого и второго магазинов соответственно 8 и 6 баллов. Понятно, что суммарная "напряженность" работы за неделю пропорциональна количеству отработанных часов. Сколько часов Джон должен работать в каждом магазине, чтобы минимизировать общую суммарную "напряженность" работы?
5. Нефтяная компания OilCo строит новый нефтеперерабатывающий завод для производства 4 видов продуктов: дизельное топливо, бензин, смазочные материалы и авиационное топливо. Спрос на эти виды продукции составляет соответственно 14, 30, 10 и 8 тыс. баррелей в день. Компания заключила контракты с Ираном и ОАЭ на поставку сырой нефти танкерами. Поскольку объем добычи нефти квотируется решениями ОПЕК (Организация стран — экспортеров нефти), компания рассчитывает, что не менее 40% нефти она будет получать из Ирана, а остальное — из Арабских Эмиратов. OilCo также прогнозирует, что в ближайшие 10 лет спрос на ее продукцию и квоты на сырую нефть останутся неизменными.
Нефть, поставляемая из Ирана и ОАЭ, отличается своими качествами. Из одного барреля иранской нефти можно произвести 0,2 барреля дизельного топлива, 0,25 барреля бензина, 0,1 барреля смазочных материалов и 0,15 барреля авиационного топлива. Соответствующие числа для нефти из ОАЭ составляют 0,1, 0,6, 0,15 и 0,1.
Компании OilCo необходимо определить минимальную загрузку сырой нефтью своего нового нефтеперегонного завода.
6. Биржевой маклер хочет вложить в акции некоторую сумму денег с тем, чтобы к концу года иметь не менее 10 тыс. долл. Существует два типа акций, в которые стоит делать вложения: акции надежных компаний с минимальным риском (так называемые "голубые фишки"), приносящие в среднем 10% годовых, и акции компаний, занимающихся высокими технологиями. Последние акции имеют более высокую доходность — в среднем 25% годовых, однако они значительно более рисковые. Поэтому маклер решил вкладывать в них не более 60% средств.
На какую сумму и каких акций надо приобрести маклеру, чтобы достичь желаемой цели?
2.2.3. Графическое решение с помощью TORA
Программа TORA разработана так, что вычисления можно проводить как в автоматическом режиме, так и в режиме обучения (пошагового исполнения), или, если необходимо, можно использовать совместно оба режима. Меню и команды этой программы достаточно содержательные, поэтому руководства пользователя и справочной системы не требуется. Тем не менее, если у вас возникнут какие-то сложности при работе в этой программе, в приложении Б приведено краткое описание системы TORA.
Чтобы получить графическое решение задачи линейного программирования в системе TORA, выполните следующие действия.
1. Выберите в меню Main Menu (Главное меню) пункт Linear Programming (Линейное программирование).
2. Укажите режим ввода данных (загрузить данные из файла или ввести новые), а также формат чисел.
3. Если решается новая задача, введите данные для нее в таблицу.
Глава 2. Введение в линейное программирование
4. Щелкните на кнопке Solve Menu (Меню решения).
5. В появившемся меню выберите команду SolveOGraphical (РешитьОГрафически).
6. Определите формат результата и щелкните на кнопке Go То Output Screen (Переход в окно результата).
7. Появится графическое и числовое решение задачи ЛП.
На рис. 2.4 показано графическое решение задачи Reddy Mikks (данные для этой задачи содержатся в файле ch2ToraReddyMikks.txt). Условия и алгебраическое решение задачи представлены в левой части окна. Справа расположена область вывода графика, которая первоначально пуста. В ней выведены только оси xt и х2, на которые нанесены значения в подходящем для данной модели масштабе. Построить графическое решение можно двумя способами. Можно просто щелкнуть на кнопке Click here to graph LP in one stroke (Щелкните здесь, чтобы построить график), чтобы сразу получить решение. Также можно последовательно построить линии ограничений (щелкните на каждом из них в левой части экрана), а затем щелкнуть на изображении целевой функции. В любом случае будет найдено оптимальное решение.
« TORA O.lWorMToraFitoLMToraltadilyMfMa Urt
Н т
4.3. Экономическая интерпретация двойственности
Строгое равенство здесь достигается только тогда, когда решения прямой и двойственной задач оптимальны.
Рассмотрим сначала вариант оптимума, т.е. когда г = и>. Исходя из представления прямой задачи как модели распределения ресурсов, можно считать, что величина z соответствует величине дохода (в долларах3). Поскольку bt — общее доступное количество ресурса i, равенство z = w можно переписать следующим образом.
Доход (долл.) = ]Г (количество ресурса i) х (доход (долл.) на единицу ресурса i).
Это означает, что переменная yt двойственной задачи должна представлять стоимость единицы ресурса i. (Данное понятие уже вводилось в разделе 2.3.3, исходя из графического представления задачи ЛП.) В литературе по исследованию операций переменные yt двойственной задачи часто называют двойственными ценами. Кроме того, иногда их именуют теневыми ценами и симплексными мультипликаторами.
Аналогично для любой пары допустимых решений прямой и двойственной задач неравенство z <w можно интерпретировать следующим образом:
доход < общая стоимость ресурсов.
Это соотношение показывает, что до тех пор, пока суммарный доход от всех видов деятельности строго меньше суммарной стоимости всех используемых ресурсов, решение как прямой, так и двойственной задачи не может быть оптимальным. Оптимум (максимальный доход) может быть достигнут только тогда, когда все потребляемые ресурсы использованы полностью. Если модель ЛП рассматривать более обще как модель некой системы, имеющую "вход" и "выход", то потребляемые ресурсы характеризуют "вход" этой системы, а получаемый доход— ее "выход". Система будет находиться в нестабильном (неоптимальном) состоянии, пока вход превышает выход. Устойчивое состояние системы характеризуется равенством входа и выхода.
Пример 4.3.1
Приведем формулировки прямой и двойственной задач, описывающие модель производства компании Reddy Mikks из примера 2.1.1.
Прямая задача
Двойственная задача
Максимизировать z= 5xi + 4хг при ограничениях
6xi + 4X2 i 24 (ресурс 1, сырье М1), Xi + 2X2 < 6 (ресурс 2, сырье М2), -Xi + хг < 1 (ресурс 3), хг < 2 (ресурс 3), Хь х2 > 0.
Минимизировать w= 24yi + буг + уз + 2у4
при ограничениях
6yi + уг - Уз S 5,
4yi + 2уг + уз + уд > 4,
У1.У2, Уз, У4>0.
Оптимальное решение: x! =3, х2 = 1,5, z= 21
Оптимальное решение:
yi = 0,75, уг = 0,5, у3 = у4 = 0, w= 21
Читатель вместо долларов может, конечно, подставить любую другую денежную единицу — это не принципиально для понимания изложенного материала. — Прим. ред.
Глава 4. Двойственность и анализ чувствительности
Напомним вкратце, что в этой модели описывается производство двух видов краски (для внутренних и наружных работ) на основе двух видов сырья Ml и М2 (ресурсы 1 и 2) с учетом рыночных условий, выражаемых третьим и четвертым ограничениями. Задача состоит в определении объемов производства красок каждого вида (в тоннах), при которых будет получен максимальный доход (в тыс. долл.).
Оптимальное решение двойственной задачи показывает, что стоимость единицы первого ресурса (сырье Ml) составляет у, = 0,75 (или 750 долл. за тонну), а второго (сырье М2) — у2 = 0,5 (или 500 долл. за тонну). В разделе 2.3.3 мы графически показали, что приведенные значения стоимостей справедливы, если значение первого ресурса не выходит из интервала (20, 36), а второго — из интервала (4, 6,67) (эти же результаты алгебраически будут получены в разделе 4.5.1). Таким образом, расход сырья Ml может возрасти с 24 до 36 тонн, что приведет к соответствующему увеличению дохода на величину 12 х 750 = 9000 долл. Аналогично количество второго ресурса (сырье М2) можно увеличить с 6 до 6,67 тонн с увеличением дохода на величину 0,67 х 500 = 335 долл. Но еще раз напомним, что подобные расчеты применимы только тогда, когда увеличение числа используемых ресурсов не выходит за приведенные выше интервалы значений. Конечно, это не означает, что количество используемых ресурсов в принципе не может выходить за указанные пределы. Однако приведенные выше стоимости ресурсов определены только для ситуации, когда количество этих ресурсов не выходит за указанные пределы.
Для третьего и четвертого ресурсов двойственные цены (оптимальное решение двойственной задачи) равны нулю. Это указывает на то, что данные ресурсы неде-фицитны. Поэтому их стоимость равна нулю._
УПРАЖНЕНИЯ 4.3.1
1. В задаче из примера 4.3.1 подсчитайте оптимальный доход при выполнении следующих условий.
a) Ограничение для первого ресурса: &хг + 4х2 < 22.
b) Ограничение для второго ресурса: х, + 2х2 < 4,5.
c) Четвертое ограничение: х2 < 10.
2. Электротехническая компания NWAC производит четыре типа кабеля для оборонного ведомства. Каждый тип кабеля подвергается четырем последовательным операциям: разделка, пайка, оплетка и проверка. В следующей таблице приведены данные, характеризующие производство кабелей.
Тип Затраты времени на изделие (в минутах) Доход
кабеля | Разделка | Пайка | Оплетка | Проверка | (долл.) |
SC320 | 10,5 | 20,4 | 3,2 | 5,0 | 9,40 |
SC325 | 9,3 | 24,6 | 2,5 | 5,0 | 10,80 |
SC340 | 11,6 | 17,7 | 3,6 | 5,0 | 8,75 |
SC370 | 8,2 | 26,5 | 5,5 | 5,0 | 7,80 |
Ежедневный фонд рабочего | 4800,0 | 9600,0 | 4700,0 | 4500,0 |
времени (в минутах)
Оборонное ведомство гарантирует для компании минимальный уровень производства в 100 единиц каждого типа кабеля.
4.3. Экономическая интерпретация двойственности
a) Сформулируйте задачу линейного программирования и с помощью программы TORA найдите ее оптимальное решение.
b) Основываясь на двойственных ценах, приведенных программой TORA, определите возможное увеличение ежедневного фонда времени по каждой технологической операции.
c) Выгодно ли компании выполнение требования заданного минимального уровня производства? Обоснуйте ответ, основываясь на величинах двойственных цен.
d) Возможно ли увеличение на 10% временного фонда операции пайки с сохранением величины ее вклада в суммарный доход, определяемый текущей двойственной ценой?
3. Компания производит кожаные чехлы и сумки. На производство одного чехла требуется 8 м2 кожи и 12 часов рабочего времени, на производство сумки — 2 м2 кожи и 5 часов рабочего времени. Текущие еженедельные ресурсы производства ограничены 1200 м2 кожи и 1850 часами рабочего времени. Компания продает чехлы и сумки по цене 350 и 120 долл. соответственно. Определите для этой компании схему производства, максимизирующую чистую прибыль. Допустим, компания желает расширить свое производство. Какова максимальная цена, по которой компании имеет смысл закупать дополнительную кожу? А какова допустимая максимальная цена дополнительных трудовых ресурсов?
4.3.2. Экономическая интерпретация ограничений двойственной задачи
Для интерпретации ограничений двойственной задачи используем формулу 2 из раздела 4.2.4. В соответствии с этим соотношением на любой итерации решения прямой задачи справедливо равенство
коэффициент при xt в z-строке = ^а,ЛУ, - с, .
Условие оптимальности симплекс-метода в задаче максимизации говорит о том, что у'-й вид деятельности (переменная х}, не представленный в текущем базисном решении, можно ввести в базис для увеличения дохода только тогда, когда коэффициент при Xj в z-строке (равный ^".а^У; -су) будет неотрицательным. В рамках предлагаемой экономической интерпретации это означает, что у'-й вид деятельности должен быть представлен в базисном решении, если выполняется следующее неравенство.
Стоимость всех ресурсов, используемых' для производства единицы продукции j-то вида деятельности
' Доход от реализации ' единицы продукции 7-го вида деятельности
Таким образом, условие оптимальности (в задаче максимизации) говорит о том, что деятельность любого вида следует наращивать до тех пор, пока доход от нее превышает возможные издержки.
Приведем стандартные определения, используемые в литературе по линейному
программированию. Введем обозначение z, = Х™1я,уУ,- ■ Величина z^ представляет суммарную стоимость ресурсов, используемых на производство единицы продукции j-ro вида деятельности. Величина z. - с. равна коэффициенту при xj в z-строке симплекс-таблицы и часто называется приведенной стоимостью (приведенными издержками)
Глава 4. Двойственность и анализ чувствительности
у'-го вида деятельности. В некоторых случаях разности zt - cj = ^Га<,У, - cf используют-
ся непосредственно для вычисления коэффициентов в г-строке симплекс-таблицы (вместо метода Гаусса-Жордана). Такие вычисления используются в модифицированном симплекс-методе (этот метод описан в главе 7).
Пример 4.3.2
Фабрика игрушек TOYCO собирает три вида игрушек: модели поездов, грузовиков и легковых автомобилей; при сборке каждого вида используется три типа операций. Ежедневный фонд рабочего времени на каждую операцию ограничен предельными величинами 430, 460 и 420 минут. Доход на одну игрушку каждого вида составляет соответственно 3, 2 и 5 долл. На каждой из трех операций для сборки модели поезда требуется 1, 2 и 1 минуты рабочего времени. Соответствующее время для сборки моделей грузовиков и легковых автомобилей составляет (2,0, 4) и (1, 2, 0) минут (нуль указывает на то, что соответствующая операция не выполняется).
Обозначив через хр х2 и х3 количество собираемых ежедневно моделей трех видов, получаем прямую и двойственную задачи ЛП.
Прямая задача | Двойственная задача |
Максимизировать z=3xi + 2хг + 5х3 | Минимизировать w= 430yi + 460уг + 420у3 |
при ограничениях | при ограничениях |
xi + 2x2 + хз < 430 (операция 1), | yi + Зу2 + Уз ^ 3, |
3xi + 2х3 < 460 (операция 2), | 2yi + 4у3 > 2, |
xi + 4X2 S 420 (операция 3), | yi + 2у2 > 5, |
xi, х2, хз >0. | yi, Уг, Уз^О. |
Оптимальное решение xi = 0, х2 = 100, х3 = 230, г= 1350 долл. | Оптимальное решение У1 = 1. Уг = 2, уз = 0, w = 1350 долл. |
Оптимальное решение предусматривает производство моделей грузовых (х2 = 100) и легковых (х3 = 230) автомобилей и требует отказа от производства моделей поездов (х, = 0). Это означает, что в текущей экономической ситуации производство моделей поездов нерентабельно. Вместе с тем, рынок игрушек требует выпуска этого вида моделей. Как сделать их производство доходным? В соответствии с экономической интерпретацией задач ЛП, приведенной в этом разделе, производство моделей поездов будет выгодным только тогда, когда будет выполняться неравенство z, < с,. Для выполнения этого неравенства нужно либо повысить коэффициент с, (доход от продажи одной модели поезда), например путем увеличения цены модели, либо снизить стоимость ресурсов z, (= у, + Зу2 + у3), необходимых для производства этих игрушек. Увеличение цены игрушек не желательно, так как это снизит их конкурентоспособность на рынке игрушек. Уменьшение величины коэффициента z, более привлекательно, поскольку для этого надо просто сократить время выполнения операций, необходимых для производства моделей поездов. Обозначим через rv гг и г3 величины, пропорциональные долям сокращения времени соответствующих операций. Эти величины находим из условия, чтобы новая стоимость производственных операций не превышала доход от одной модели поезда. Это условие записывается следующим образом.
1(1 - г,)у, + 3(1 - г2)у2 + 1(1 - г3)у3 < 3
4.4. Разновидности симплекс-метода
После подстановки значений у, = 1, уг = 2 и у3 = 0 получим следующее неравенство (проверьте!): г, + 6г2 > 4.
Таким образом, любые значения величин г1 и г2, от 0 до 1, удовлетворяющие неравенству г, + 6г2 > 4, приведут к доходности производства моделей поездов. Например, для значений г, = 0,6 и гг = 0,6 получаем z, - с, = 4 - 0,6 - 6x0,6 = -0,2. Вместе с тем отметим, что сокращение времени выполнения второй операции в 6 раз эффективнее сокращения времени выполнения первой операции.
УПРАЖНЕНИЯ 4.3.2
1. В задаче из примера 4.3.2 предположим, что время выполнения второй операции при сборке модели поезда сокращено с 3 до 1,25 минуты. На сколько должно быть сокращено время выполнения первой операции, чтобы производство этой игрушки стало доходным?
2. В задаче из примера 4.3.2 предположим, что фабрика игрушек рассматривает возможность производства еще одного вида игрушки — модели пожарной машины. При сборке этой модели первая операция не используется, а вторая и третья требуют соответственно 1 и 3 минуты для сборки одной модели. Доход от одной модели пожарной машины составляет 4 долл. Посоветуете ли вы фабрике производить эти игрушки?
3. Компания использует токарные и сверлильные станки для производства четырех типов деталей: РР1, РР2, РРЗ и РР4. В следующей таблице представлены технологические данные, характеризующие производство этих деталей.
Станок | Время обработки одного изделия (минуты) | Фонд машинного | |||
РР1 | РР2 | РРЗ | РР4 | времени (минуты) | |
Токарный | |||||
Сверлильный | |||||
Доход от одного изделия (долл.) |
Для тех изделий, которые не войдут в оптимальное базисное решение, определите степень уменьшения оптимального дохода при увеличении их производства на единицу.
4. Рассмотрите оптимальное решение задачи из предыдущего упражнения. Компания подсчитала, что с помощью специальных мероприятий можно уменьшить общее время производства изделий, не вошедших в оптимальное базисное решение, на 20%. Будет ли после этого производство таких изделий рентабельно? Если нет, то на сколько следует сократить время производства данных изделий?
4.4. РАЗНОВИДНОСТИ СИМПЛЕКС-МЕТОДА
В симплекс-методе, описанном в главе 3, решение задачи начинается с некоторого допустимого базисного решения. На последующих итерациях осуществляется переход также к допустимым базисным решениям с постепенным улучшением
Глава 4. Двойственность и анализ чувствительности
значения целевой функции, пока не будет достигнута точка оптимума. Такой алгоритм иногда называют прямым симплекс-методом.
В этом разделе рассмотрим две другие разновидности симплекс-метода: двойственный симплекс-метод и обобщенный симплекс-метод. В двойственном симплекс-методе решение задачи ЛП начинается с недопустимого, но лучшего, чем оптимальное, решения. Последовательные итерации этого метода приближают решение к области допустимости без нарушения оптимальности (точнее, "супероптимальности") промежуточных решений. Когда будет достигнута область допустимых решений, процесс вычислений заканчивается, так как последнее решение будет оптимальным. В обобщенном симплекс-методе комбинируются элементы прямого и двойственного методов. Начальное решение в этом методе будет и неоптимальным, и недопустимым. На последующих итерациях базисные решения могут быть как допустимыми, так и недопустимыми. На последней итерации решение должно быть и оптимальным, и допустимым (если, конечно, такое решение существует).
Эти три алгоритма — прямой, двойственный и обобщенный — дают основу для проведения анализа чувствительности, как будет показано в разделе 4.5.
4.4.1. Двойственный симплекс-метод
Так же, как и в прямом симплекс-методе, основная проблема двойственного симплекс-метода состоит в том, чтобы на каждой итерации получить "правильное" базисное решение. Для реализации двойственного симплекс-метода разработаны следующие два условия, выполнение которых гарантирует оптимальность последовательных промежуточных решений и приближение их к области допустимых решений.
Двойственное условие допустимости. В качестве исключаемой переменной хг выбирается базисная переменная, имеющая наибольшее по абсолютной величине отрицательное значение. Если таких переменных несколько, то выбор произволен. Если все базисные переменные неотрицательные, процесс вычислений заканчивается.
Двойственное условие оптимальности. Вводимая в базис переменная определяется как переменная, на которой достигается следующий минимум:
min
нсб&шсныел:
а„<0
где 2у - с/ — коэффициент в г-строке симплекс-таблицы, соответствующий переменной хр аг1 — отрицательный коэффициент из симплекс-таблицы, расположенный на пересечении ведущей строки (соответствующей исключаемой переменной хг) и столбца, соответствующего небазисной переменной хг При наличии нескольких альтернативных переменных выбор делается произвольно. Отметим, что двойственное условие оптимальности гарантирует достижение оптимального решения.
Чтобы существовало начальное оптимальное ("супероптимальное") и недопустимое решение, необходимо выполнение двух условий.
1. Целевая функция должна удовлетворять условию оптимальности обычного симплекс-метода (см. главу 3).
2. Все ограничения должны быть неравенствами типа "<".
Второе условие можно удовлетворить простым умножением на -1 неравенств типа ">". Если есть ограничения в виде равенств, то эти равенства заменяются на два неравенства. Например, равенство хх + х2 = 2 эквивалентно двум неравенствам
4.4. Разновидности симплекс-метода
хг + хг<2, X, + х2>2,
или лг, + х2<2, -jc, — jc2< —2.
После преобразования всех ограничений в виде неравенств типа "<" начальное недопустимое решение возможно тогда и только тогда, когда по крайней мере в одном неравенстве правая часть будет строго отрицательной. В противном случае двойственный симплекс-метод не применяется, поскольку возможное начальное решение уже оптимально и допустимо.
Пример 4.4.1
Дана следующая задача ЛП.
Минимизировать z = Злг, + 2хг
при ограничениях
Зх, +x2>3, 4jc, + Зл-2 > 6, л-, +x2 < 3, л-,,л-2>0.
Сначала первых два неравенства умножаются на -1, чтобы привести их к неравенствам типа "<". Начальная симплекс-таблица этой задачи имеет следующий вид.
Базис | x^ | Х2 | хз | Х4 | хь | Решение |
z | -3 | -2 | ||||
Хз | -3 | -1 | -3 | |||
Х4 | -4 | -3 | -6 | |||
Х5 |
Поскольку Zj - Cj < 0 для всех j= 1, 5, начальное базисное решение (х3 = -3, xt = -6, xs = 3) является оптимальным и недопустимым.
Двойственное условие допустимости указывает на переменную х4 {= -6) как на исключаемую из базиса. Теперь применим двойственное условие оптимальности для определения вводимой переменной. Для этого используем следующую таблицу.
Переменные xi хг хз х4 Хб
ООО О 1 О
Приведенные отношения показывают, что вводимой переменной будет л-2. Отметим, что переменные xf будут кандидатами на включение в базисное решение только тогда, когда коэффициент a4j будет строго отрицательным. По этому критерию переменные хъ, х4 и хъ не рассматриваются как кандидаты на включение в базис.
z-строка (Zj - Су) хд-строка, щ
z,-c.
Отношение
а.
-3 -4
3 4
-2 -3
' 3
Глава 4. Двойственность и анализ чувствительности
Следующая таблица получена с помощью известных операций над строками, применяемых в прямом симплекс-методе.
Базис | Х1 | Х2 | хз | Xt | Х5 | Решение |
z | -1/3 | -2/3 | ||||
х3 | -5/3 | -1/3 | -1 | |||
хг | 4/3 | -1/3 | ||||
хъ | -1/3 | 1/3 | ||||
Отношение | "1/5 | — | — | — | ||
Последняя таблица показывает, что из базиса исключается переменная х3 и вводит- | ||||||
ся дг,. В результате получаем следующую симплекс-таблицу. | ||||||
Базис | xi х2 | хз | Xt | Хъ | Решение | |
z | 0 0 | -1/5 | -3/5 | 21/5 | ||
XI | 1 0 | -3/5 | 1/5 | 3/5 | ||
хг | 0 1 | 4/5 | -3/5 | 6/5 | ||
Хъ | 0 0 | -1/5 | 2/5 | 6/5 | ||
Решение, представленное в последней таблице, допустимо (и оптимально), поэтому | ||||||
вычисления заканчиваются. Это решение имеет вид | 3/5, х2 = 6/5 иг = 21/5. |
На рис. 4.2 показана последовательность шагов двойственного симплекс-метода при решении задачи из примера 4.4.1. Алгоритм начинается в крайней точке А (которой соответствует недопустимое, но "лучше, чем оптимальное" решение), затем он переходит к точке В (которой также соответствует недопустимое, но "лучше, чем оптимальное" решение) и заканчивается в точке С, уже принадлежащей области допустимых решений.
Программа TORA позволяет выполнять двойственный симплекс-метод в пошаговом режиме. Для этого -в меню SOLVE/MODIFY выберите команду Solve^Algeraic^ Iterations1^ Dual Simplex (Решить1^Алгебраически^ИтерацииОДвойственный симплекс-метод). Помните, что сначала надо ограничения в виде равенств преобразовать в неравенства. Неравенства типа ">" преобразовывать в противоположные неравенства не нужно, поскольку TORA автоматически выполнит преобразование задачи к виду, необходимому для применения двойственного симплекс-метода. Если задача не удовлетворяет начальным требованиям для применения двойственного симплекс-метода, то на экране появится соответствующее сообщение. Как и в обычном симплекс-методе, здесь в пошаговом режиме TORA позволяет вручную указывать вводимые и исключаемые переменные.
УПРАЖНЕНИЯ 4.4.1
1. На рис. 4.3 показано пространство решений, соответствующее задаче минимизации целевой функции г = 2х, + х2. Предполагается, что поиск решения выполняется двойственным симплекс-методом; оптимальное решение соответствует точке F — (0,5, 1,5).
4.4. Разновидности симплекс-метода
*2
Рис. 4.2. Итерации двойственного симплекс-метода из примера 4.4.1 х2
- | |||||||
G | D/ | ||||||
/F | |||||||
I | |||||||
-1 | L | 1 . | 3 4 | ||||
-1 | |||||||
к |
Рис. 4.3. Пространство решений для задачи упражнения 1
а) Если начальное базисное (недопустимое) решение соответствует точке G, будет ли алгоритм двойственного симплекс-метода проходить через точки G, Е, F7 Обоснуйте это.
Глава 4. Двойственность и анализ чувствительности
Ь) Если начальное базисное (недопустимое) решение соответствует точке L, определите на рис. 4.3 возможную последовательность точек, через которые будет проходить алгоритм двойственного симплекс-метода для достижения оптимального решения в точке F.
2. Решите следующие задачи двойственным симплекс-методом с помощью программы TORA и определите на графически представленном пространстве решений этих задач последовательность точек прохождения алгоритма двойственного симплекс-метода для достижения оптимального решения.
a) Минимизировать z = 2х, 4- Зх2 при ограничениях
2х, + 2х2 < 30, x, + 2xs>10, х„ х2>0.
b) Минимизировать z = 5jc1 + 6х2 при ограничениях
х, + х2 > 2, 4jc1 + х2 > 4, х,, х2>0.
c) Минимизировать z — 4дс, + 2х2 при ограничениях
х, + х2 = 1, Зх,-х2>2, х,, х2>0.
d) Минимизировать z = 2х, + Зх2 при ограничениях
2*; + х2 > 3, х, + х2 = 2, xv х2 > 0.
3. Двойственный "симплекс-метод с искусственными ограничениями. Дана следующая задача ЛП.
Максимизировать z = 2х, - х2 + х3
при ограничениях
2хг + Зх2- 5х3>4, -х, + 9х2- х3> 3, 4х, + 6х2 + Зх3 < 8, х„ х2, х3>0.
Начальное базисное решение содержит дополнительные переменные х4, хь их6 и является недопустимым, поскольку х4 = -4 и хб = -3. Но непосредственное применение двойственного симплекс-метода невозможно, так как переменные xt и х3 не удовлетворяют условию оптимальности для задачи максимизации. Покажите, что введение искусственного ограничения х, + х3<М (где М— достаточно большое положительное число и такое, что данное неравенство не сужает область допустимых решений исходной задачи) и последующее использование
4.4. Разновидности симплекс-метода
его как ведущей строки симплекс-таблицы позволяют получить оптимальную г-строку путем выбора переменной л:, в качестве вводимой. Таким образом становится возможным применить двойственный симплекс-метод к модифицированной задаче с искусственным ограничением.
4. Используя процедуру введения искусственного ограничения, описанную в предыдущем упражнении, решите двойственным симплекс-методом следующие задачи ЛП. Во всех задачах укажите, будет окончательное решение допустимым, недопустимым или неограниченным.
a) Максимизировать z = 2х3 при ограничениях
-я, + 2х2 - 2х3 > 8,
-дс, + х2 + х3 <4, 2хх -х2 + 4х3 < 10, х1У х2, х3>0.
b) Максимизировать z = хх - Зх2 при ограничениях
х1~х2<2, х, + х2> 4, 2хг-2х2>3, хг, х2>0.
c) Минимизировать z = -хх + х2 при ограничениях
- 4х2> 5, х1-3х2<1, 2хх - 5х2> 1, хг, х2 > 0.
d) Максимизировать z = 2х3 при ограничениях
-х1 + 3х2-7х3>5, -х1 + х2-х3<1, Зх, + х2 - lQx3 < 8, х„ jc2, х3>0.
5. Решите следующую задачу ЛП тремя различными методами (используя в качестве инструмента программу TORA). Определите, какой метод будет наиболее эффективным при вычислениях.
Минимизировать z = бх, + 7х2 + Зх3 + 5xt
при ограничениях
5x, + 6х2 - 3*з + 4х4 > 12, х2 - 5лс3 - 6xt > 10, 2xl + 5x2 + x3 + xi>&, xv х2, х3, xt>0.
Глава 4. Двойственность и анализ чувствительности
4.4.2. Обобщенный симплекс-метод
В прямом симплекс-методе (см. главу 3) начальное решение допустимо, но не оптимально. В двойственном симплекс-методе данное решение оптимально (точнее, "супероптимально"), но не допустимо. Возникает естественный вопрос: можно ли начать решение задачи ЛП с неоптимального и недопустимого решения? Мы видели, что в прямом симплекс-методе при отсутствии допустимого начального решения используются искусственные переменные. В двойственном симплекс-методе при отсутствии оптимального начального решения также применяются искусственные ограничения. Хотя задача этих процедур и состоит в обеспечении автоматического выполнения вычислений, необходимо не терять из виду основную идею симплексных алгоритмов, а именно то, что оптимальное решение задачи ЛП достигается в одной из крайних (угловых) точек пространства допустимых решений. С учетом этих замечаний можно разработать симплексный алгоритм решения задач ЛП, в котором начальное решение будет и неоптимальным, и недопустимым. Следующий пример показывает, как можно обобщить симплексный алгоритм.
Пример 4.4.2
Рассмотрим задачу из упражнения 4.4.1.4, а. В качестве начальной таблицы можно принять следующую симплекс-таблицу, где представлено начальное решение (х4, х5, хв), которое не оптимально (из-за переменной х,) и не допустимо (так как xt = -8). (Заметим, что в этой таблице первое равенство умножено на -1 для того, чтобы показать недопустимость решения непосредственно в столбце "Решение".)
Базис | *1 | *2 | хз | Х4 | Х5 | Хб | Решение |
z | -2 | ||||||
Xi | -2 | -8 | |||||
Хъ | -1 | ||||||
Х6 | -1 |
Решение задачи ЛП без использования каких-либо искусственных переменных или ограничений может быть следующим. Сначала освобождаемся от свойства недопустимости базисного решения путем применения версии двойственного условия допустимости. В нашем примере это приведет к выбору переменной х4 в качестве исключаемой из базиса. Чтобы определить вводимую переменную, надо найти в д:4-строке строго отрицательный коэффициент, соответствующий небазисной переменной. Выбор вводимой переменной можно осуществить без удовлетворения требования оптимальности решения, так как в данном случае это не существенно (сравните с двойственным условием оптимальности). В результате получим следующую таблицу.
Базис | Х1 | Х2 | хз | Х4 | хъ | Хб | Решение |
z | -2 | ||||||
-1/2 | -1 | -1/2 | |||||
хъ | -1/2 | 1/2 | |||||
Хъ | 3/2 | -1/2 |
4.5. Анализ чувствительности оптимального решения
Решение в последней таблице допустимо, но не оптимально. Далее можно использовать прямой симплекс-метод для получения оптимального решения. В общем случае, если на очередной итерации полученное решение неопустимо, то описанная процедура повторяется до тех пор, пока не будет получено допустимое решение. Далее основное внимание уделяется оптимальности решения путем применения условия оптимальности прямого симплекс-метода.
Пример 4.4.2 показывает гибкость симплексного метода. В литературе описано большое количество вариаций симплекс-метода (например, метод одновременного решения прямой и двойственной задач, симметричный, перекрестный и мультиплексный методы), причем создается впечатление, что каждый из них существенно отличается от других, тогда как все они просматривают экстремальные точки пространства решений с различной степенью автоматизации вычислений и вычислительной эффективности.
УПРАЖНЕНИЯ 4.4.2
1. Задача ЛП из упражнения 4.4.1.4, с не имеет допустимого решения. Покажите, что это свойство задачи ЛП можно определить с помощью обобщенного симплексного алгоритма.
2. Задача ЛП из упражнения 4.4.1.4, d не имеет ограниченного решения. Покажите, что это свойство задачи ЛП можно определить с помощью обобщенного симплексного алгоритма.
4.5. АНАЛИЗ ЧУВСТВИТЕЛЬНОСТИ ОПТИМАЛЬНОГО РЕШЕНИЯ
Анализ чувствительности оптимальных решений задач ЛП на элементарном уровне рассмотрен в разделе 2.3. В этом разделе, используя соотношения двойственности и матричное представление симплексных вычислений, мы проведем анализ чувствительности значительно глубже.
Анализ чувствительности выполняется уже после получения оптимального решения задачи ЛП. Его цель — определить, приведет ли изменение коэффициентов исходной задачи к изменению текущего оптимального решения, и если да, то как эффективно найти новое оптимальное решение (если оно существует).
В общем случае изменение коэффициентов исходной задачи может привести к одной из следующих четырех ситуаций.
Результат изменения исходной задачи
Текущее базисное решение остается оптимальным и допустимым
Текущее решение становится недопустимым
Текущее решение становится неоптимапьным
Текущее решение становится неоптимальным и недопустимым
Рекомендуемые действия Никаких действий не производится
Используется двойственный симплекс-метод для восстановления допустимости решения
Используется прямой симплекс-метод для восстановления оптимальности решения
Используется обобщенный симплекс-метод для получения нового решения
Первые три ситуации рассмотрены в этом разделе. Четвертая ситуация как комбинация второй и третьей представлена в комплексной задаче 4.3.
Глава 4. Двойственность и анализ чувствительности
Для объяснения различных процедур анализа чувствительности используем модель фабрики игрушек TOYCO из примера 4.3.2. Напомним, что фабрика TOYCO собирает три вида детских игрушек: модели поездов, грузовиков и легковых автомобилей. Сборка модели каждого вида требует последовательного применения трех операций. В задаче необходимо определить объемы производства каждого вида игрушек, максимизирующие общий доход. Для удобства изложения материала повторим формулировки прямой и двойственной задач.
Прямая задача
Двойственная задача Минимизировать w = 430yi + 460у2 + 420уз при ограничениях
У + Зу2 + у3 > 3,
2yi + 4у3 > 2,
У: + 2у2 > 5,
У1.У2, Уз 5 0.
Максимизировать z= 3xi + 2х2 + 5хз
при ограничениях
xi + 2x2 + х3 < 430 (операция 1), 3xi + 2х3 < 460 (операция 2), xi + 4х2 < 420 (операция 3), Хь х2, х3> 0.
Оптимальное решение
xi = 0, х2 = 100, х3 = 230, z = 1350 долл.
Оптимальное решение у, = 1, у2 = 2, уз = 0, w = 1350 долл.
Приведем симплекс-таблицу, содержащую оптимальное решение прямой задачи.
Базис | Х1 | х2 | Хз | хь | х6 | Решение | |
z | |||||||
х2 | -1/4 | 1/2 | -1/4 | ||||
Хз | 3/2 | 1/2 | |||||
х6 | -2 |
4.5.1. Изменения, влияющие на допустимость решения
К недопустимости текущего оптимального решения может привести, во-первых, изменение правых частей ограничений и, во-вторых, введение в множество ограничений задачи нового ограничения. В любом случае недопустимость решения проявится в том, что по крайней мере один элемент в правой части ограничений в оптимальной симплекс-таблице (столбец "Решение") станет отрицательным, т.е. одна или несколько базисных переменных примут отрицательные значения.
Изменение правых частей ограничений. Изменение правых частей ограничений исходной задачи требует повторных вычислений правых частей ограничений в симплекс-таблице, для чего используется формула 1 из раздела 4.2.4.
Обратная матрица 1 ГНовый столбец правых' из симплекс-таблицы на /-й итерации
Новый столбец правых частей ограничений в симплекс-таблице на i-й итерации
частей ограничении исходной задачи
Напомним, что в столбце правых частей ограничений симплекс-таблицы (столбец "Решение") приводятся значения базисных переменных. В следующем примере показано применение приведенной формулы.
4.5. Анализ чувствительности оптимального решения
Пример 4.5.1
Предположим, что фабрика игрушек TOYCO планирует расширить производство своей продукции путем увеличения возможностей сборочных линий на 40%, что даст следующий фонд рабочего времени для каждого вида сборочной операции: 602, 644 и 588 минут соответственно. Эти изменения влияют только на правые части неравенств ограничений (и на оптимальное значение целевой функции). Находим новое базисное решение задачи.
— —- 0
'6024 | '140' | |
= | ||
,588, | ,28, |
Таким образом, текущие базисные переменные хг, х3 и х6 с новыми значениями 140, 322 и 28 по-прежнему составляют допустимое решение. Соответствующее этому решению оптимальное значение целевой функции (максимальный доход) равно 1890 долл.
Хотя новое решение и приводит к увеличению дохода фабрики, реализация мероприятий, необходимых для такого наращивания производства, требует определенного времени. Временной альтернативой такой модернизации производства может служить "перенос" неиспользуемого фонда рабочего времени третьей операции (х6 = 20 минут) в фонд первой. Тогда фонд рабочего времени трех сборочных операций будет равен 450, 460 и 400 минут соответственно. С учетом новых ограничений получаем следующее решение.
'по) | |||||||
хъ | - | - | |||||
,400, | ,-40, | ||||||
,-2 | К |
Полученное решение не является допустимым, поскольку теперь д:6 = -40. Для возврата в область допустимых решений применим двойственный симплекс-метод. Сначала изменим значения в столбце "Решение" симплекс-таблицы (эти новые значения выделены в следующей симплекс-таблице). Отметим, что соответствующее значение целевой функции равно г = 3х0 + 2х110 + 5х 230 = 1370 долл.
Базис | Х1 | хг | хз | х4 | Х5 | Хб | Решение |
z | |||||||
хг | -1/4 | 1/2 | -1/4 | ||||
Хз | 3/2 | 1/2 | |||||
Хб | -2 | -40 |
В соответствии с двойственным симплекс-методом исключаемой переменной будет х6, а вводимой — х4. В результате получим следующую симплекс-таблицу с оптимальным допустимым решением. (В общем случае для получения допустимого решения может потребоваться несколько итераций двойственного симплекс-метода.)
Глава 4. Двойственность и анализ чувствительности
Базис | Х | хг | хз | Хл | Хъ | Хв | Решение |
z | 5/2 | 1/2 | |||||
хг | 1/4 | 1/4 | |||||
хз | 3/2 | 1/2 | |||||
Хл | -1 | -1/2 | -1/2 |
По существу, оптимальное решение осталось неизменным. Это означает, что в данном случае "перенос" части фонда рабочего времени третьей операции в фонд рабочего времени первой операции не приводит к улучшению целевой функции.
УПРАЖНЕНИЯ 4.5.1
1. В модели для фабрики TOYCO 20-минутная часть фонда рабочего времени третьей операции перенесена в фонд рабочего времени второй операции. Улучшит ли это оптимальное решение?
2. Предположим, что фабрика TOYCO планирует изменить фонды рабочего времени сборочных операций следующим образом.
Чб0> | '500^ | f300^ | f450N | ||||
а) | . Ь) | , с) | . d) | ||||
,400, | Ш) | 200, | ч350, |
Воспользуйтесь возможностями анализа чувствительности, чтобы найти оптимальное решение.
3. Вернитесь к модели предприятия Reddy Mikks из примера 2.1.1. Ее симплекс-таблица с оптимальным решением приведена в примере 3.3.1. Используя анализ чувствительности, найдите новое оптимальное решение этой задачи, предполагая, что ограничения на сырье Ml и М2 составляют 28 и 8 тонн соответственно.
4. Птицефабрика Ozark содержит 20 000 цыплят, которых выращивают до 8-недель-ного возраста и затем отправляют на рынок. В следующей таблице представлен недельный расход корма на одного цыпленка в зависимости от его возраста.
Неделя__12 3 4 56 7 8
Расход корма (фунты) 0,26 0,48 0,75 1,00 1,30 1,60 1,90 2,10
Для того чтобы цыплята к 8-й неделе могли достичь определенного веса, их рацион должен удовлетворять определенным требованиям к калорийности. Хотя обычно список кормов очень большой, мы ограничимся тремя основными ингредиентами: известняк, зерно и соевая мука крупного помола. Требования к качественному составу рациона также ограничим только тремя показателями: кальций, белок и клетчатка. В следующей таблице приведены обобщенные данные по их содержанию в кормовых ингредиентах.
Содержание веществ (фунт/фунт ингредиента) | Стоимость | |||
Ингредиент | Кальций | Белок | Клетчатка | (долл./фунт) |
Известняк | 0,380 | 0,00 | 0,00 | 0,12 |
Зерно | 0,001 | 0,09 | 0,02 | 0,45 |
Соевая мука | 0,002 | 0,50 | 0,08 | 1,60 |
4.5. Анализ чувствительности оптимального решения
Кормовой рацион должен содержать:
а) кальция — не менее 8 и не более 12%,
б) белка — не менее 22%,
в) клетчатки — не более 5%.
Составьте оптимальный кормовой рацион для каждой недели.
Интервалы допустимых изменений для коэффициентов правых частей ограничений. Другой способ исследовать влияние изменения доступности ресурсов (т.е. коэффициентов правых частей неравенств ограничений) — определить интервалы допустимости для этих коэффициентов, сохраняющих текущее решение допустимым. Следующий пример иллюстрирует данный метод анализа чувствительности.
Пример 4.5.2
Пусть в задаче о фабрике игрушек TOYCO нас интересует интервал допустимости для значения фонда рабочего времени первой операции. Заменим вектор коэффициентов правых частей ограничений вектором
Г430+ОЛ 460 420
Переменная D, представляет изменение фонда рабочего времени первой операции по сравнению с текущим уровнем в 430 минут. Текущее базисное решение останется допустимым, если все базисные переменные останутся неотрицательными. Отсюда получаем следующую систему неравенств.
' 1 | |||||
4) | '430+ D,4 | ||||
х, | = | ||||
,-2 | 2 1 | К | ч 420 , |
100 + -^
230 20 -2D,
'0} 0
Первое неравенство х, > 0 порождает D, > -200, второе неравенство х, > 0 не зависит от D,, третье х6 > 0 дает условие D, < 10. Таким образом, текущее базисное решение останется допустимым при выполнении неравенств -200 < D, < 10. Это эквивалентно следующему интервалу допустимости для фонда рабочего времени первой операции.
430 - 200 < Фонд рабочего времени операции 1 < 430 + 10
или
230 < Фонд рабочего времени операции 1 < 440.
Изменение значения целевой функции, соответствующее изменению D,, равно Dlyi, где у, — стоимость (в долларах) одной минуты фонда рабочего времени первой операции (т.е. двойственная цена этого ресурса).
Чтобы проиллюстрировать использование данного интервала допустимости, предположим, что фонд рабочего времени первой операции изменился от 430 до 400 минут. Текущее базисное решение остается допустимым, поскольку новое значение фонда рабочего времени первой операции принадлежит интервалу допустимости.
Глава 4. Двойственность и анализ чувствительности
Для вычисления новых значений переменных воспользуемся значением D, = 400 -- 430 = -30. Далее получим следующее.
( 1 ^ 100+ -(-30) 2
'85' 230 80
v 20-2(-30) )
Для вычисления нового значения целевой функции сначала найдем значения двойственных цен, для чего применим метод 1 из раздела 4.2.3, т.е. используем формулу
' Вектор-строка исходных ^ коэффициентов целевой функции при базисных переменных в оптимуме прямой задачи
'Оптимальные значения4 двойственных
переменных На основании этой формулы получаем
Обратная матрица 4 в оптимуме прямой задачи
(у1.Л.Л) = (2.5,0)
f 1 2
-2
— —- 0
о 1 = (1,2,0).
Таким образом, стоимость одной минуты фонда рабочего времени первой операции равна у, = 1 долл. Тогда изменение оптимального дохода составит Dlyl = -30 х 1 = = -30 долл. Следует помнить, что данная стоимость минуты фонда рабочего времени первой операции, равная у, = 1 долл., справедлива только для указанного выше интервала изменения Dr Любое изменение, выходящее за этот интервал, приводит к недопустимому решению. В таком случае следует использовать двойственный симплекс-метод для поиска нового решения, если оно существует.
Аналогичную процедуру можно использовать при определении интервалов допустимости для переменных D2 и D3, равных изменению фондов рабочего времени второй и третьей сборочных операций (см. упражнение 4.5.2.1). Определение интервалов допустимости для Dj, D2 и D3, как описано выше, и их соотношения с переменными у,, ух и у3 двойственной задачи корректны только тогда, когда эти ресурсы рассматриваются независимо друг от друга. Далее мы рассмотрим возможность одновременного изменения всех трех ресурсов, в этом случае текущий вектор коэффициентов правых частей ограничений необходимо заменить на вектор с элементами 430 + D,, 460 4- D2 и 420 + D3 (упражнение 4.5.2.2).
УПРАЖНЕНИЯ 4.5.2
1. Пусть в задаче о фабрике игрушек TOYCO переменные D2 и D3 представляют изменения фондов рабочего времени второй и третьей операций.
a) Определите интервалы для D2 и D3, гарантирующие допустимость текущего решения. Предполагается, что изменения фондов рабочего времени каждой операции выполняются по отдельности.
b) Определите стоимость одной минуты фондов рабочего времени второй и третьей операций.
4.5. Анализ чувствительности оптимального решения
c) Пусть фонд рабочего времени второй операции изменен от текущего значения 460 минут до 500 минут. Найдите новое оптимальное решение и определите соответствующее изменение значения целевой функции.
d) Пусть фонд рабочего времени третьей операции изменен от текущего значения 420 минут до 450 минут. Найдите новое оптимальное решение и определите соответствующее изменение значения целевой функции.
e) Пусть фонд рабочего времени третьей операции изменен от текущего значения 420 минут до 380 минут. Найдите новое оптимальное решение и определите соответствующее изменение значения целевой функции.
2. Пусть в задаче о фабрике игрушек TOYCO изменения D3, D2 и D3 фондов рабочего времени всех операций производятся одновременно.
a) Сформулируйте условия для переменных D3, D2 и D3, гарантирующие допустимость текущего оптимального решения.
b) Пусть фонды рабочего времени всех трех операций изменены до 438,500 и 410 минут соответственно. На основании условия, найденного в предыдущем пункте, покажите, что текущее базисное решение останется допустимым. С помощью двойственных цен найдите изменение значения целевой функции.
c) Пусть фонды рабочего времени всех трех операций изменены до 460, 440 и 380 минут соответственно. На основании условия, найденного в п. а, покажите, что текущее базисное решение будет недопустимым. С помощью двойственного симплекс-метода найдите новое оптимальное решение.
3. Вернитесь к модели фабрики игрушек TOYCO.
a) Предположим, что стоимость дополнительного времени, выделяемого для первой сборочной операции сверх текущего фонда времени в 430 минут, равна 50 долл. за час. В эту стоимость входит оплата сверхурочных работ персонала и стоимость машинного времени. Будет ли экономически целесообразным использовать дополнительное время для первой операции?
b) Пусть на второй сборочной операции оператор может ежедневно работать два часа сверхурочно с оплатой 45 долл. за каждый час. Стоимость дополнительного машинного времени составляет 10 долл. за час. Будет ли экономически целесообразным использовать дополнительное время для второй операции?
c) На каких условиях экономически целесообразно использовать дополнительное время для третьей операции?
d) Предположим, что фонд рабочего времени первой операции увеличен до 440 минут, но любое превышение текущего фонда этой операции (430 минут) стоит 40 долл. за час. Найдите новое оптимальное решение, включая значение целевой функции.
e) Предположим, что фонд рабочего времени второй операции уменьшен на 15 минут. Стоимость одного часа этой операции равна 30 долл. (в течение обычной рабочей смены). Будет ли экономически целесообразным уменьшение фонда рабочего времени для второй операции?
4. Компания производит бумажники, кошельки и небольшие рюкзаки. Конструкция всех трех видов изделий предусматривает использование кожи и синтетических материалов, причем кожа является дефицитным материалом. В производственном процессе используется два вида ручных работ: прошивка и зачистка. В следующей таблице приведены данные, характеризующие производственный процесс, потребность в ресурсах и доход на единицу производимого изделия.
Глава 4. Двойственность и анализ чувствительности
Ресурсы, необходимые для изготовления | Ежедневный | |||
одного изделия | лимит | |||
Ресурс | Бумажник | Кошелек | Рюкзак | ресурса |
Кожа (кв. футы) | ||||
Прошивка (часы) | ||||
Зачистка (часы) | 0,5 |
Отпускная цена (долл.) 24 22 45
Сформулируйте задачу линейного программирования и найдите ее оптимальное решение с помощью программы TORA. Для приведенных ниже изменений в предельных значениях доступных ресурсов определите, какие из них сохраняют допустимость текущего решения. В случае сохранения допустимости решения найдите новое оптимальное решение (т.е. значения переменных задачи и значение целевой функции).
a) Ежедневный лимит кожи возрос до 45 кв. футов.
b) Ежедневный лимит кожи уменьшился на 1 кв. фут.
c) Фонд рабочего времени операции прошивки изменился до 38 часов.
d) Фонд рабочего времени операции прошивки изменился до 46 часов.
e) Фонд рабочего времени операции зачистки уменьшился до 15 часов.
f) Фонд рабочего времени операции зачистки увеличился до 50 часов.
g) Следует ли рекомендовать компании набор временных рабочих на операцию прошивки с оплатой 15 долл. в час?
5. Компания производит две модели электронных устройств, при изготовлении которых используются резисторы, конденсаторы и микросхемы. В следующей таблице приведены данные, характеризующие производство этих моделей.
Количество комплектующих на одно | Лимит | ||
изделие | комплектующих | ||
Ресурс | Модель 1 | Модель 2 | (шт.) |
Резистор г | |||
Конденсатор | |||
Микросхема | |||
Доход на одно изделие (долл.) |
Обозначим через х, и хг количество производимых устройств моделей 1 и 2 соответственно. Ниже приведена сформулированная задача ЛП и соответствующая симплекс-таблица с ее оптимальным решением.
Максимизировать z = Зх, + 4х2
при ограничениях
2х, + Зх2 < 1200 (ограничение на резисторы), 2х, + х2 < 1000 (ограничение на конденсаторы), 4х2 < 800 (ограничение на микросхемы), х„ х2>0.
4.5. Анализ чувствительности оптимального решения
Базис | *1 | х2 | S1 | S2 | S3 | Решение |
z | 5/4 | 1/4 | ||||
-1/4 | 3/4 | |||||
S3 | -2 | |||||
хг | 1/2 | -1/2 |
a) Определите статус каждого ресурса (комплектующего).
b) В терминах оптимального дохода определите стоимость одного резистора, одного конденсатора и одной микросхемы.
c) Найдите интервал применимости двойственных цен для каждого ресурса.
d) Найдите новое оптимальное решение при возрастании числа доступных резисторов до 1300.
e) Если количество доступных микросхем будет уменьшено до 350, можно ли будет найти новое оптимальное решение непосредственно из приведенной выше информации? Обоснуйте свой ответ.
f) В п. с был определен интервал допустимости для доступного количества используемых конденсаторов. На основе этих данных определите соответствующий интервал изменения оптимального дохода и соответствующие интервалы изменения количества производимых изделий первой и второй моделей.
g) Новый контракт позволяет компании закупить дополнительное число резисторов по 40 центов за единицу, но только при условии, что закупочная партия составит не менее 500 единиц. Выгоден ли компании такой контракт?
6. Компания для производства двух видов продукции имеет ежедневный фонд рабочего времени 320 часов и 350 единиц расходных материалов (сырья). При необходимости компания может позволить 10 часов сверхурочной работы с оплатой 2 долл. за час. На изготовление одной единицы продукции первого вида требуется 1 час рабочего времени и 3 единицы сырья, а на изготовление одной единицы продукции второго вида — 2 часа рабочего времени и 1 единица сырья. Доход от одной единицы этих продукций составляет соответственно 10 и 12 долл. Обозначим через и х2 ежедневные объемы
. производства продукции первого и второго видов, а через х3 — количество используемых сверхурочных часов. Ниже приведена сформулированная задача ЛП и соответствующая симплекс-таблица с оптимальным решением.
Максимизировать z = 10x, 4- 12х2 - 2х3
при ограничениях
х, + 2х2 - х3< 320 (ограничение на фонд рабочего времени),
3Xj + х2< 350 (ограничение на сырье),
х3 < 10 (ограничение на сверхурочные работы),
xv х2, х3>0.
Базис | X) | хг | хз | Si | S2 | S3 | Решение |
z | 26/5 | 8/5 | 16/5 | ||||
хг | 3/5 | -1/5 | 3/5 | ||||
Х1 | -1/5 | 2/5 | -1/5 | ||||
хз |
Глава 4. Двойственность и анализ чувствительности
a) Найдите оптимальное решение этой задачи.
b) Определите двойственные цены ресурсов и их интервалы допустимости.
c) Найдите двойственные цены для фонда рабочего времени и сверхурочных работ. Могут ли эти цены быть одинаковыми? Обоснуйте.
d) Компания может увеличить объем сверхурочных работ за дополнительную плату 2 долл. за час. Сколько часов такой сверхурочной работы может ввести компания?
e) Компания ежедневно может получать дополнительный объем сырья в 100 единиц по цене 1,50 долл. Стоит ли компании использовать этот резерв сырья? А если стоимость дополнительного сырья будет 2 долл. за единицу?
f) Предположим, что компания вынуждена сократить складские площади для сырья и поэтому ежедневно не может использовать более 200 единиц сырья. Найдите для этой ситуации новое оптимальное решение.
g) Предположим, что компания не может ежедневно использовать более 8 часов сверхурочной работы. Найдите новое оптимальное решение.
7. Достаточное правило допустимости. Это упрощенное правило можно использовать для проверки того, что одновременные изменения Д, Д,, Dm элементов вектора правых частей неравенств ограничений сохранят допустимость текущего решения. Предположим, что правая часть 6 г-го ограничения была изменена на Ь: + Д., причем независимо от изменения правых частей других ограничений, и соответствующий интервал допустимости pt < Д < qt рассчитан так, как показано в примере 4.5.2. Очевидно, что p,S0 (qt >0), поскольку величина pt (q) соответствует максимальному уменьшению (возрастанию) значения bt. Положим ri равным или отношению Д/р,, или DJqt, в зависимости от того, будет ли величина Д отрицательной или положительной. По определению 0 < rt < 1. Достаточное правило допустимости гласит, что для данных изменений Д, D2, Dm достаточным (не необходимым) условием того, что текущее решение останется допустимым, будет выполнение неравенства r + гг + ••• +rm-l- Если это условие не выполняется, то текущее решение может быть как допустимым, так и недопустимым. Сформулированное правило неприменимо, если Д выходят из своих интервалов допустимости.
В действительности достаточное правило допустимости является очень слабым критерием^допустимости решения и на практике применяется редко. Даже в том случае, когда допустимость решения может быть подтверждена с помощью этого правила, все равно для получения нового оптимального решения будет использовано условие допустимости прямого симплекс-метода (как в упражнении 2).
Примените данное правило к задачам & и с из упражнения 2. В задачей достаточное правило допустимости не может подтвердить допустимость решения, а в задаче с оно не применимо. Следующее упражнение должно подтвердить наши утверждения относительно этого правила.
8. Дана следующая задача ЛП.
Максимизировать z = хх + х2
при ограничениях
2*, + х2<6, х, + 2х2<6, х„х2>0.
4.5. Анализ чувствительности оптимального решения
a) Покажите, что оптимальное базисное решение содержит обе переменные хг и хг, и что интервалы допустимости для правых частей ограничений, полученные при условии их независимости, имеют вид -3 < D, < 6 и -3 <D2 < 6.
b) Предположим, что правые части ограничений одновременно увеличиваются на величину Д > 0. Сначала докажите, что базисное решение остается допустимым для всех Д > 0. Далее покажите, что достаточное правило допустимости дает правильный ответ только тогда, когда 0 < Д < 3, не дает ответа при 3 < Д < 6, и не применимо — когда Д > 6.
9. Покажите, что достаточное правило допустимости из упражнения 7 является следствием неравенства
Обратная матрица Вектор правых частей ^
^оптимального решения
ограничении исходной задачи J
Добавление новых ограничений. Добавление нового ограничения в существующую модель ЛП может привести к одной из следующих ситуаций.
1. Новое ограничение является избыточным. Это означает, что новое ограничение выполняется при текущем оптимальном решении.
2. Новое ограничение не выполняется при текущем оптимальном решении. В этом случае необходимо применить двойственный симплекс-метод, чтобы получить (или хотя бы попытаться получить) новое оптимальное решение.
Отметим, что добавление неизбыточного нового ограничения может только ухудшить текущее оптимальное значение целевой функции.
Пример 4.5.3
Предположим, что фабрика игрушек TOYCO изменила конструкцию выпускаемых моделей, и теперь для их производства необходима четвертая сборочная операция. Ежедневный фонд рабочего времени этой операции составляет 500 минут. Время выполнения этой операции при сборке одной игрушки различных видов составляет соответственно 3, 1 и 1 минуту. В результате получаем новое ограничение: Зд:, 4- х2 4-4 х3<500. Это ограничение является избыточным, поскольку оно удовлетворяется при текущем оптимальном решении хг — 0, х2 = 100 и х3 = 230. Таким образом, текущее оптимальное решение остается неизменным.
Теперь предположим, что в модели фабрики игрушек TOYCO время выполнения новой четвертой операции составляет соответственно 3, 3 и 1 минуту при сборке одной игрушки каждого вида. В этом случае четвертое ограничение Зх, 4- Зх2 4-+ х, < 500 не будет избыточным, и текущее оптимальное решение ему не удовлетворяет. Мы должны ввести новое ограничение в симплекс-таблицу, где представлено текущее оптимальное решение.
Базис | XI | хг | Хз | Xi, | хъ | х6 | Х7 | Решение |
z | ||||||||
хг | -1/4 | 1/2 | -1/4 | |||||
хз | 3/2 | 1/2 | ||||||
Хб | -2 | |||||||
Глава 4. Двойственность и анализ чувствительности
Поскольку переменные х2 и х3 являются базисными, из л:7-строки следует исключить соответствующие им коэффициенты (т.е. надо сделать их нулевыми). Для этого необходимо выполнить следующую операцию.
Новая лустрока = старая дг.-строка - [3 х (л:2-строка) + 1 х (х,-строка)] В результате получим новую симплекс-таблицу.
Базис | Х1 | хг | хз | х4 | xs | х6 | Х7 | Решение |
z | ||||||||
хг | -1/4 | 1/2 | -1/4 | |||||
хз | 3/2 | 1/2 | ||||||
хв | -2 | |||||||
х7 | 9/4 | -3/2 | 1/4 | -30 |
С помощью двойственного симплекс-метода находим новое оптимальное решение л-, = 0, х2 = 90, х3 = 230 и z = 1330 долл. (проверьте!).
УПРАЖНЕНИЯ 4.5.3
1. Пусть в модели фабрики игрушек TOYCO время выполнения четвертой операции составляет соответственно 4, 1 и 2 минуты при сборке одной игрушки каждого вида. Найдите оптимальное решение задачи, предполагая, что фонд рабочего времени четвертой операции составляет а) 570 минут, Ь) 548 минут.
2. Вторичные ограничения. Вместо решения задачи ЛП с учетом всех ограничений можно сначала определить так называемые вторичные ограничения и на первом этапе решения задачи исключить их из рассмотрения. Вторичными ограничениями являются те, которые, как мы подозреваем, лишь в малой степени влияют (или совсем не влияют) на оптимальное решение. После определения такие ограничения исключаются из множества ограничений задачи, и далее решается задача только с оставшимися ограничениями. Затем по очереди проверяются вторичные ограничения. Если полученное ранее оптимальное решение удовлетворяет вторичному ограничению, такое ограничение отбрасывается совсем. Ё противном случае оно вводится в множество ограничений задачи и продолжается поиск нового оптимального решения. Этот процесс выполняется до тех пор, пока не исчерпаются все вторичные ограничения.
Примените описанную процедуру к следующей задаче ЛП.
Максимизировать z = 5л:, + 6х2 + Зх3
при ограничениях
5 л:, + 5х2 + Зх3 < 50, х, + х2 - х3 < 20, 7л:, + 6х2 - 9*3 < 90, 5х, + Ъх2 + 5дг3 < 35, 12л;, + 6х2<90, л;2-9л;з<20,
4.5. Анализ чувствительности оптимального решения
4.5.2. Изменения, влияющие на оптимальность решения
В этом разделе рассмотрим два фактора, которые могут изменить оптимальность текущего решения.
1. Изменение коэффициентов целевой функции.
2. Добавление в модель нового вида производственной деятельности (т.е. добавление новой переменной).
Изменение коэффициентов целевой функции. Эти изменения влияют только на оптимальность решения. Для определения влияния изменений коэффициентов целевой функции следует пересчитать коэффициенты в z-строке только для небазисных переменных, поскольку для базисных переменных эти коэффициенты всегда остаются равными нулю.
Вычислительная процедура заключается в следующем.
1. С использованием методов 1 и 2 из раздела 4.2.3 вычисляются значения двойственных переменных.
2. На основе значений двойственных переменных по формуле 2 из раздела 4.2.4 вычисляются коэффициенты z-строки.
При этом возможны два варианта.
1. Если для новой z-строки условие оптимальности выполняется, текущее решение остается оптимальным, но значение целевой функции может измениться.
2. Если условие оптимальности не выполняется, следует применить прямой симплекс-метод для получения нового оптимального решения.
Пример 4.5.4
Предположим, что фабрика игрушек TOYCO проводит новую ценовую политику относительно своих изделий. В соответствии с этим доход от одной модели поезда, грузовика и легкового автомобиля составляет соответственно 2, 3 и 4 долл. Получаем новую целевую функцию для этой модели
максимизировать z = 2хх + Зхг + Ахг
Таким образом,
новые коэффициенты при базисных переменныхх2, х3 их, = (3, 4, 0).
По формулам метода 1 из раздела 4.2.3 вычислим значения двойственных переменных.
( _ 2
(Л.^.Л) =(ЗЛ0)
о
3-Л,о
2 4
Коэффициенты z-строки вычисляются как разности между значениями левых и правых частей ограничений двойственной задачи (формула 2 из раздела 4.2.4). Напомним, что эти коэффициенты пересчитываются только для небазисных коэффициентов, поскольку для базисных переменных они всегда остаются равными нулю (проверьте!).
Глава 4. Двойственность и анализ чувствительности
„ 3 J5] п „ 13 у, +3у, + Уз - 2 = — + 31-1 + 0-2 =— ,
„ 3 хл у, - 0 = -.
Отметим, что здесь использовалось новое значение 2 коэффициента при переменной хх в выражении целевой функции.
Вычисления показывают, что текущее решение хх — 0, х2 = 100 и хг = 230 остается оптимальным. Новое значение целевой функции равно 2x0+ 3x100 + + 4x230 = 1220 долл.
Предположим, что в рассматриваемой задаче целевая функция имеет следующий вид.
Максимизировать z = бд:, + Зд:2 + 4х3.
Соответствующие изменения в г-строке следующей симплекс-таблицы выделены (проверьте эти значения!).
Базис | Х1 | Хг | Хз | х4 | х5 | Хб | Решение |
z | -3/4 | 3/2 | 5/4 | ||||
хг | -1/4 | 1/2 | -1/4 | ||||
хз | 3/2 | 1/2 | |||||
х6 | -2 |
Для нахождения нового оптимального решения следует ввести в базис переменную xt и исключить из него переменную х6. В результате получим решение х, — 10, х2 = 102,5, дг3 = 215 и z = 1227,50 долл. (проверьте!).
УПРАЖНЕНИЯ 4.5.4
1. Проверьте оптимальность решения задачи о фабрике TOYCO для следующих целевых функций. Если решение неоптимально, найдите новое оптимальное решение. (Симилекс-таблица с оптимальным решением для данной задачи представлена в начале раздела 4.5.)
a) 2 = 2x, + х2 + 4х3,
b) 2 = Зх, + 6д;2 + хъ,
c) z = 8Xj + Зд:2 + 9х3.
2. Проверьте оптимальность решения задачи о компании Reddy Mikks (пример 4.3.1) для следующих целевых функций. Если решение неоптимально, найдите новое оптимальное решение. (Симплекс-таблица с оптимальным решением для данной задачи представлена в примере 3.3.1.)
a) г = Зд^ + 2д:2,
b) 2 = 8х, + 10х2,
c) z = 2хх + 5х2.
4.5. Анализ чувствительности оптимального решения
3. В упражнении 4.5.2.4 с помощью программы TORA вычислите оптимальное решение. На основе анализа чувствительности найдите оптимальное решение для следующих целевых функций.
а) | = 40л:, | + 22л:2 + 45л:3, | |
Ь) | = 70л;, | + 22л;2 + 45л:3, | |
с) | = 24л:, | + 10л:2 + 45л:3, | |
d) | = 24л:, | + 20л;2 + 45л:3, | |
е) | = 24л;, + 22л;2 + 50л:3, | ||
f) | = 24л;, | + 22л;2 + 40л;3. |
Интервалы оптимальности для коэффициентов целевой функции. Другой путь исследования влияния коэффициентов целевой функции на оптимальность решения заключается в вычислении (по отдельности) интервалов изменения каждого коэффициента, сохраняющих оптимальность текущего решения. Для этого следует заменить текущий коэффициент выражением с + d., где dJ — величина (положительная или отрицательная) изменения коэффициента сг
Пример 4.5.5
В задаче о фабрике TOYCO запишем целевую функцию следующим образом.
Максимизировать z = (3 + dl)xi + 2х2 + 5х3. Найдем интервал оптимальности для изменения dr
Мы должны следовать той же процедуре, которая описана выше. Но так как переменная л:, не входит в оптимальный базис, значения двойственных переменных не изменятся и останутся такими же, как в исходной задаче (т.е. у, = 1, у2 = 2, у3 = 0). Более того, поскольку переменная лг, небазисная, то в 2-строке изменится только ее коэффициент, а все остальные коэффициенты останутся неизменными (почему?). Это означает, что нам необходимо применить формулу 2 из раздела 4.2.4 только к ограничению двойственной задачи, соответствующего переменной лг,.
л-,: у, + Зу2 + у3 - (3 + dt) = 1 + 3x2 + 0 - (3 + dJ = 4 - dv
Поскольку рассматривается задача максимизации, исходное решение будет оптимальным до тех пор, пока выполняется неравенство 4-с/,>0 или с/,<4. Это эквивалентно утверждению, что текущее решение останется оптимальным до тех пор, пока в целевой функции коэффициент при лг, не превысит величины 3 + 4 = 7.
Теперь рассмотрим изменение d2 коэффициента при переменной л:2 в выражении целевой функции:
максимизировать z = Зл-, + (2 + d2)x2 + 5лг3.
Различие здесь по сравнению с предыдущем случаем заключается в том, что переменная л:2 входит в оптимальный базис, и поэтому изменение ее коэффициента изменит значения двойственных переменных и, следовательно, значения коэффициентов в 2-строке, соответствующих всем небазисным переменным (напомним, что коэффициенты в 2-строке, соответствующие базисным переменным, останутся равными нулю независимо от изменения целевой функции). Используя метод 1 из раздела 4.2.3, вычисляем значения двойственных переменных:
Глава 4. Двойственность и анализ чувствительности
1 -1 О
2 4
(УрУ2.л) = (2 + «/,,5,0)
О
- О 2
1 1
-2
Теперь можно вычислить коэффициенты в 2-строке для небазисных переменных.
Из этих неравенств имеем d2 < 16, d2 > -2 и d2 < 8 или
-2<rf2<8.
Отсюда получаем интервал оптимальности для коэффициента с2 = 2 + d2:
0<с2<10.
УПРАЖНЕНИЯ 4.5.5
1. Пусть в задаче о' фабрике TOYCO доход от одной модели легкового автомобиля составляет 5 + d3 долл. Определите интервал для величины d3, сохраняющий текущее оптимальное решение.
2. В задаче о фабрике TOYCO, используя решения из примера 4.5.5 и предыдущего упражнения, укажите, будет ли текущее решение оптимальным для следующих (независимых) ситуаций. Если решение изменится, найдите новое.
a) Доход от одной модели поезда возрос от 3 до 5 долл. До 8 долл.
b) Доход от одной модели поезда уменьшился от 3 до 2 долл.
c) Доход от одной модели грузовика увеличился от 2 до 6 долл.
d) Доход от одной модели легкового автомобиля уменьшился от 5 до 2 долл.
3. Пусть в задаче о компании Reddy Mikks коэффициенты целевой функции претерпели следующие изменения (каждое изменение рассматривается как отдельная задача).
a) Доход от одной тонны краски для наружных работ составляет 5 + rf, тыс. долл.
b) Доход от одной тонны краски для внутренних работ составляет 4 + d2 тыс. долл.
Изменения dx и d2 могут быть как положительными, так и отрицательными. Применяя подходящее условие оптимальности к коэффициентам 2-строки оптимальной симплекс-таблицы, определите интервалы для величин и d2, сохраняющие текущее оптимальное решение.
4.5. Анализ чувствительности оптимального решения
4. В задаче о компании Reddy Mikks, используя решение из предыдущего упражнения, покажите, будет ли текущее решение оптимальным для следующих (независимых) ситуаций. Если решение изменится, найдите новое.
a) Доход от одной тонны краски для наружных работ возрос от 5 до 7 тыс. долл. Уменьшился от 5 до 4 тыс. долл.
b) Доход от одной тонны краски для внутренних работ возрос от 4 до 6 тыс. долл. Уменьшился от 4 до 3 тыс. долл.
5. Вернитесь к задаче из упражнения 4.5.2.5.
a) Найдите оптимальное решение с помощью программы TORA.
b) Определите интервал значений удельного дохода от первой модели выпускаемых устройств, сохраняющих оптимальность текущего решения.
c) Найдите интервал значений удельного дохода от второй модели выпускаемых устройств, сохраняющих оптимальность текущего решения.
d) Вычислите новое оптимальное решение, если удельный доход от первой модели возрастет до 6 долл.
e) Найдите новое оптимальное решение при изменении удельного дохода от второй модели до 1 долл.
6. Вернитесь к задаче из упражнения 4.5.2.6.
a) Найдите оптимальное решение с помощью программы TORA.
b) Каков наименьший удельный доход от первого продукта, сохраняющий текущее оптимальное решение?
c) Найдите новое оптимальное решение при возрастании удельного дохода от первого продукта до 25 долл.
7. Пусть в задаче о фабрике TOYCO изменения d,, d2 и d3 производятся одновременно.
a) Найдите условия, сохраняющие текущее решение оптимальным.
b) Используя условия, полученные в предыдущем пункте, найдите новое решение (если текущее изменилось) для следующих целевых функций.
i) 2 = 2х{ + х2 + 4at3,
ii) 2 = Зд:, + 6х2 + хъ,
iii) 2 = 8дг, + Зх2 + 9дг3.
8. Пусть в упражнении 3 изменения d, и d2 производятся одновременно.
a) Найдите условия, сохраняющие текущее решение оптимальным.
b) Используя условия, полученные в предыдущем пункте, найдите новое решение (если текущее изменилось) для следующих целевых функций.
i) 2 = Зх, + 2х2,
ii) 2 = Зх, + 9х2,
iii) 2 = 5Xj + 5д:2.
9. Вернитесь к задаче из упражнения 4.5.2.5.
a) Определите условия, сохраняющие текущее оптимальное решение при одновременном изменении удельных доходов от обеих моделей устройств.
b) Найдите новое оптимальное решение, если целевая функция примет вид 2 = 5Xj + 2д:2.
Глава 4. Двойственность и анализ чувствительности
10. Достаточное правило оптимальности. Правило, подобное достаточному правилу допустимости из упражнения 4.5.2.7, можно сформулировать и для проверки оптимальности текущего решения при одновременном изменении всех коэффициентов cj целевой функции. Для этого представим коэффициенты cj в виде cj + dr j = 1, 2, п. Предположим, что для всех изменений dj независимо получены индивидуальные интервалы u.<dt< v} значений, сохраняющих оптимальность текущего решения (как в примере 4.5.5). Очевидно, что ц^<0 (v}>0), поскольку эта величина соответствует максимально возможному уменьшению (увеличению) коэффициента cjt сохраняющего текущее оптимальное решение. Для df, которые находятся в интервале Uj<di< у, определим отношение г. = djv. или rj = dju^ в зависимости от того, будет величина d. положительной или отрицательной. По определению 0<гу<1. Правило гласит, что достаточным (но не необходимым) условием сохранения оптимальности текущего решения является выполнение неравенства г, + г2 + ... + rn < 1. Если это неравенство не выполняется, то текущее решение может быть как оптимальным, так и неоптимальным. Это правило не применимо, если величины d} выходят за свои интервалы оптимальности.
Примените достаточное правило оптимальности к задаче из упражнения 7, Ь, чтобы определить измененные целевые функции, которые сохраняют текущее оптимальное решение. Покажите, что достаточное правило оптимальности слишком слабое для того, чтобы использовать его в качестве инструмента принятия решений.
11. Покажите, что достаточное правило оптимальности (упражнение 10) является следствием неравенств zj-cj >0 в задаче максимизации и неравенств zj - с. < 0 в задаче минимизации.
Добавление в модель ЛП нового вида производственной деятельности. Введение в модель линейного программирования нового вида производственной деятельности эквивалентно добавлению новой переменной в задачу ЛП. Добавление нового вида производственной деятельности интуитивно обосновано только в том случае, если эта деятельность экономически рентабельна, т.е. улучшает оптимальное значение целевой функции. Это условие можно проверить, применив к новой переменной формулу 2 из раздела 4.2.4, Поскольку новая переменная пока не является частью решения, ее можно считать небазисной переменной. Тогда значения двойственных переменных, ассоциированных с текущим решением, останутся неизменными.
Если формула 2 показывает, что новая переменная удовлетворяет условию оптимальности, то это означает, что новая деятельность нежелательна, поскольку не улучшает оптимального решения. В противном случае новый вид деятельности является рентабельным, и соответствующая ему переменная должна быть включена в базисное решение.
Пример 4.5.6
Оптимальное решение задачи ЛП о фабрике игрушек TOYCO показывает, что производство моделей поездов нерентабельно. Поэтому фабрика планирует заменить производство этих моделей выпуском модели пожарной машины, причем ее сборка будет осуществляться с использованием тех же производственных мощностей. Доход от новой игрушки ожидается в 4 долл. за одну модель. Ее время
4.5. Анализ чувствительности оптимального решения
сборки на каждой из трех технологических операций составляет соответственно 1, 1 и 2 минуты.
Обозначим через х7 объем производства новой продукции. Имея значения переменных двойственной задачи (yv у2, уъ) = (1, 2, 0), вычисляем приведенную стоимость для переменной х7:
1у, + 1у2 + 2у3 - 4 = 1 х 1 + 1 х 2 + 2 х 0 - 4 = -1.
Полученный результат показывает, что экономически целесообразно включить переменную х7 в оптимальное базисное решение. Чтобы найти новое оптимальное решение, сначала с помощью формулы 1 из раздела 4.2.4 вычислим столбец коэффициентов ограничений, соответствующий переменной х7.
( 1 | 1 4 | (1) | rn | ||
,-2 | 2 1 | К | ,2J | 1 2 |
Отсюда следует, что текущая симплекс-таблица должна быть приведена к следующему виду.
Базис | Х1 | х2 | х3 | х7 | х4 | Хъ | Хб | Решение |
z | -1 | |||||||
Х2 | -1/4 | 1/4 | 1/2 | -1/4 | ||||
хз | 3/2 | 1/2 | 1/2 | |||||
Хб | -2 |
Теперь новое оптимальное решение можно найти, введя в базис переменную х7 и исключив из него переменную л:6. Новое решение составляют хх = 0, х2 = 0, х2 = 125, х7 = 210 и 2 = 1465 долл. (проверьте!).
Введение в модель ЛП нового вида деятельности, как следует из приведенного выше, можно рассматривать как обобщение ситуации, когда происходит изменение ресурсов, используемых для существующей деятельности. Например, в последнем примере можно считать, что переменная х7 в исходной задаче имела нулевой коэффициент в целевой функции и нулевые коэффициенты в ограничениях на использование ресурсов. Но затем были изменены ее нулевой коэффициент в целевой функции и соответствующие нулевые коэффициенты в ограничениях. Поэтому введение в модель ЛП нового вида деятельности можно рассматривать как изменение параметров существующего вида деятельности.
УПРАЖНЕНИЯ 4.5.6
1. В исходной модели фабрики игрушек TOYCO производство моделей поездов не входит в оптимальный производственный план. Ситуация на рынке игрушек не позволяет увеличить отпускную цену этих моделей. Поэтому фабрика решила усовершенствовать сборочные операции данной модели. Это привело к уменьшению времени выполнения каждой из трех сборочных операций на р%. Найдите значение р, при котором выпуск моделей поездов становится
Глава 4. Двойственность и анализ чувствительности
рентабельным. (Симплекс-таблица с оптимальным решением данной задачи приведена в начале раздела 4.5.)
2. Предположим, что в исходной модели фабрики игрушек TOYCO время выполнения трех сборочных операций при производстве моделей поездов уменьшено соответственно до 0,5, 1 и 0,5 минут. Доход от модели этого вида остался неизменным на уровне 3 долл. за одну игрушку. Найдите новое оптимальное решение.
3. Пусть производство модели нового вида (модель пожарной машины) требует соответственно 1, 2 и 3 минуты для выполнения каждой сборочной операции. Найдите оптимальное решение, если доход от одной модели нового вида составляет а) 5 долл., Ь) 10 долл.
4. Вернитесь к модели компании Reddy Mikks (модель представлена в примере 4.3.1, симплекс-таблица с ее оптимальным решением— в примере 3.3.1). Предположим, что компания рассматривает возможность производства дешевой краски для наружных работ, причем для производства тонны такой краски требуется 0,75 тонны сырья Ml и столько же сырья М2. Ситуация на рынке показывает, что производство краски для внутренних работ не должно превышать ежедневного производства обоих видов красок для наружных работ более чем на одну тонну. Доход от одной тонны новой краски составляет 3500 долл. Найдите новое оптимальное решение.
ЛИТЕРАТУРА
1. BazaraaM., Jarvis J., SheraliM. Linear Programming and Network Flows, 2nd ed., Wiley, New York, 1990.
2. Bradley S., Hax A., Magnanti T. Applied Mathematical Programming, Addison-Wesley, Reading, MA, 1977.
3. Nering E., Tucker A. Linear Programming and Related Problems, Academic Press, Boston, 1992.
Литература, добавленная при переводе
1. Ашманов С. А. Линейное программирование. — М.: Наука, 1981.
2. Гольштейн Е. Г. Теория двойственности в математическом программировании и ее приложения. — М.: Наука, 1971.
3. Гольштейн Е. Г., Юдин Д. Б. Линейное программирование: Теория, методы и приложения. — М.: Наука, 1969.
КОМПЛЕКСНЫЕ ЗАДАЧИ
4.1. 4 Компания MANCO производит три вида продукции: PI, Р2 и РЗ. В производственном процессе используются материалы Ml и М2, обрабатываемые на станках С1 и С2. В следующей таблице приведены данные, характеризующие производственный процесс.
4 Задача основана на материалах статьи D. Sheran, "Post-Optimal Analysis in Linear Programming — The Right Example", HE Transactions, Vol. 16, No. 1, March 1984, pp. 99-102.
Комплексные задачи
Единицы | К-во ресурсов на единицу изделия Ежедневный фонд | |||
Ресурсы измерения | Р1 | Р2 | РЗ | ресурсов |
Время работы станка С1 Минуты | ||||
Время работы станка С2 Минуты | ||||
Материал М1 Фунты | ||||
Материал М2 Фунты |
Ежедневный объем производства изделия Р2 должен быть не менее 70 единиц, а изделия РЗ — не более 240 единиц. Доход на единицу изделия PI, Р2 и РЗ составляет соответственно 300, 200 и 500 долл.
Руководство компании разрабатывает стратегию для улучшения своего финансового положения. Существуют такие предложения.
1. Увеличить на 20% доход от изделия РЗ, но при этом уменьшится объем его производства до 210 единиц.
2. Материал М2 является критическим фактором, ограничивающим текущее производство. Можно приобрести дополнительные объемы этого материала у сторонних поставщиков, но его цена за фунт будет на 3 долл. выше, чем у поставщиков, которые обслуживают компанию сегодня.
3. Увеличить фонд рабочего времени станков на 40 минут в рабочий день, однако такое увеличение приведет к дополнительной стоимости эксплуатации каждого станка — 35 долл. в день.
4. Отдел маркетинга обосновал необходимость увеличения минимального объема производства продукта Р2 с 70 до 100 единиц.
5. Время обработки единицы изделия Р1 на станке С2 можно уменьшить до 2 минут с дополнительной стоимостью 4 долл. в рабочий день.
Рассмотрите целесообразность внедрения этих предложений, учитывая, что некоторые из них можно внедрить одновременно.
4.2. Компания Reddy Mikks планирует в будущем расширить свое производство. Изучение ситуации на рынке красок показало, что компания может увеличить объем продаж на 25%. План развития производства можно разработать на основе следующих предложений. (Обратитесь к примеру 3.3.1 за детальной информацией о модели ЛП для этой компании и ее решении.)
Предложение 1. Поскольку рост продаж на 25% приведет к увеличению дохода примерно на 5250 долл., стоимость дополнительных объемов сырья Ml и М2 составляет 750 и 500 долл. за тонну; следовательно, для обеспечения роста объема производства потребуется 5250/((750 + 500)/2) = 8,4 тонны сырья Ml и столько же сырья М2.
Предложение 2. Потребление сырья Ml и М2 должно возрасти на 6 и 1,5 тонны соответственно, так как эти величины соответствуют 25% текущего уровня потребления сырья (равного 24 тоннам для сырья Ml и 6 тоннам для сырья М2). Поскольку в текущем оптимальном решении оба этих ресурса дефицитны, увеличение их потребления на 25% должно привести к такому же увеличению производства краски, т.е. конечного продукта.
Какие выводы вы можете сделать относительно этих предложений? Предложите несколько подходов к решению данной проблемы.
Глава 4. Двойственность и анализ чувствительности
4.3. Анализ чувствительности одновременно на допустимость и оптимальность решения задачи ЛП. Предположим, что в модель компании Reddy Mikks одновременно внесены следующие изменения. Доход от тонны краски для наружных работ равен 1000 долл., а краски для внутренних работ — 4000 долл. Ежедневное потребление сырья Ml и М2 ограничено 28 и 8 тоннами соответственно.
1. Покажите, что внесенные изменения приведут к потере текущим оптимальным решением как свойства оптимальности, так и допустимости.
2. Используя обобщенный симплексный алгоритм из раздела 4.4.2, найдите новое оптимальное допустимое решение.
ГЛАВА 5
ТРАНСПОРТНЫЕ МОДЕЛИ
Транспортные модели (задачи) — специальный класс задач линейного программирования. Эти модели часто описывают перемещение (перевозку) какого-либо товара из пункта отправления (исходный пункт, например место производства) в пункт назначения (склад, магазин, грузохранилище). Назначение транспортной задачи — определить объем перевозок из пунктов отправления в пункты назначения с минимальной суммарной стоимостью перевозок. При этом должны учитываться ограничения, налагаемые на объемы грузов, имеющихся в пунктах отправления (предложения), и ограничения, учитывающие потребность грузов в пунктах назначения (спрос). В транспортной модели предполагается, что стоимость перевозки по какому-либо маршруту прямо пропорциональна объему груза, перевозимого по этому маршруту. В общем случае транспортную модель можно применять для описания ситуаций, связанных с управлением запасами, управлением движением капиталов, составлением расписаний, назначением персонала и др.
Хотя транспортная задача может быть решена как обычная задача линейного программирования, ее специальная структура позволяет разработать алгоритм с упрощенными вычислениями, основанный на симплексных отношениях двойственности. В данной главе будет показан этот алгоритм и его тесная связь . с симплекс-методом.
5.1. ОПРЕДЕЛЕНИЕ ТРАНСПОРТНОЙ МОДЕЛИ
На рис. 5.1 показано общее представление транспортной задачи в виде сети с т пунктами отправления и п пунктами назначения, которые показаны в виде узлов сети. Дуги, соединяющие узлы сети, соответствуют маршрутам, связывающим пункты отправления и назначения. С дугой (t, j), соединяющей пункт отправления i с пунктом назначения j, соотносятся два вида данных: стоимость с, перевозки единицы груза из пункта i в пункт j и количество перевозимого груза х . Объем грузов в пункте отправления / равен а,, а объем грузов в пункте назначения j — b . Задача состоит в определении неизвестных величин х , минимизирующих суммарные транспортные расходы и удовлетворяющих ограничениям, налагаемым на объемы грузов в пунктах отправления (предложения) и пунктах назначения (спрос).
194 Глава 5. Транспортные модели
Пункты отправления Пункты назначения
Объемы предложений
Рис. 5.1. Представление транспортной задачи
Пример 5.1.1
Автомобильная компания MG Auto имеет три завода в Лос-Анджелесе, Детройте и Новом Орлеане и два распределительных центра в Денвере и Майами. Объемы производства заводов компании в следующем квартале составят соответственно 1000, 1500 и 1200 автомобилей. Ежеквартальная потребность распределительных центров составляет 2300 и 1400 автомобилей. Расстояния (в милях) между заводами и распределительными центрами приведены в табл. 5.1.
Таблица 5.1
Денвер | Майами | |
Лос-Анджелес | ||
Детройт | ||
Новый Орлеан |
Транспортная компания оценивает свои услуги в 8 центов за перевозку одного автомобиля на расстояние в одну милю. В результате получаем следующую стоимость перевозок (с округлением до доллара) по каждому маршруту.
Таблица 5.2
Денвер (1) | Майами (2) | |
Лос-Анджелес (1) | ||
Детройт (2) | ||
Новый Орлеан (3) |
Основываясь на данных из табл. 5.2, формулируем следующую задачу линейного программирования.
Минимизировать z = 80jc„ + 215.v12 + 100.v21 +108jc22 + 102jc31 + 68x,2 при ограничениях
xu +jc12 = 1000 (Лос-Анджелес),
jc21 +jc22 = 1500 (Детройт),
*3i +хз2 = 1200 (Новый Орлеан),
5.1. Определение транспортной модели
л-,, + х21 + х31 = 2300 (Денвер),
х12 + х22 + х32 = 1400 (Майами),
xtj>0, /=1,2,3,7 = 1,2.
Эти ограничения выражены в виде равенств, поскольку общий объем произведенных автомобилей (1000 + 1500 + 1200 = 3700) равен суммарному спросу распределительных центров(2300 + 1400 = 3700).
Данную задачу ЛП можно решить симплекс-методом. Но специфическая структура ограничений позволяет решить эту задачу более простым способом с помощью так называемой транспортной таблицы (табл. 5.3).
Таблица 5.3
Денвер Майами Объем производства
Лос-Анджелес | Хп | Х|2 | |||
Детройт | Х21 | х:2 | |||
Новый Орлеан | X3I | Х.12 | |||
Спрос |
Оптимальное решение (полученное с помощью программы TORA ) показано на рис. 5.2. Оно предполагает перевозку 1000 автомобилей из Лос-Анджелеса в Денвер, 1300 автомобилей— из Детройта в Денвер, 200 автомобилей— из Детройта в Майами и 1200 — из Нового Орлеана в Майами. Минимальная стоимость перевозок составляет 313 200 долл.
1000-
150О
1200-
Новый Орлеан
Рис. 5.2. Схема оптимальных перевозок
Чтобы получить в программе TORA решение транспортной задачи, в меню Main Menu выберите команду Transportation Model (Транспортная модель). Затем в меню SOLVE/MODIFY выберите команду Solved Final solution. Более подробно решение транспортных задач в программе TORA описано в разделе 5.3.3.
Глава 5. Транспортные модели
Когда суммарный объем предложений (грузов, имеющихся в пунктах отправления) не равен общему объему спроса на товары (грузы), запрашиваемые пунктами назначения, транспортная модель называется несбалансированной. Далее мы последовательно будем применять прием, позволяющий любую несбалансированную транспортную задачу сделать сбалансированной. Для этого будем вводить фиктивные пункты назначения или отправления. Выполнение баланса транспортной задачи необходимо для того, чтобы иметь возможность применить алгоритм решения, построенный на использовании транспортных таблиц.
Пример 5.1.2
В рамках модели компании MG Auto предположим, что завод в Детройте уменьшил выпуск продукции до 1300 автомобилей (вместо 1500, как было ранее). В этом случае общее количество произведенных автомобилей (3500) меньше общего числа заказанных (3700). Таким образом, очевидно, что часть заказов распределительных центров Денвера и Майами не будет выполнена.
Поскольку в данной ситуации спрос превышает предложение, для восстановления баланса введем фиктивный завод (пункт отправления), производящий 200 (3700 - 3500) автомобилей. Назначим нулевую стоимость транспортных перевозок от фиктивного завода до пунктов назначения, поскольку такого завода не существует. В принципе, стоимость транспортных перевозок от фиктивного пункта назначения может иметь любое положительное значение. Например, чтобы гарантировать выполнение всех заказов распределительного центра Майами, можно назначить очень высокую стоимость перевозок (штраф) от фиктивного завода до Майами.
В табл. 5.4 представлена сбалансированная модель и ее оптимальное решение. Решение показывает, что фиктивный завод поставит в Майами 200 автомобилей. Это означает, что для данного распределительного центра из заказа на 1400 автомобилей не будет поставлено 200 автомобилей.
Таблица 5.4
Денвер
Майами
Объем производства
Лос-Анджелес | |||||
Детройт | |||||
Новый Орлеан | |||||
Фиктивный завод | |||||
Спрос |
5.1. Определение транспортной модели
Предположив, что заказ распределительного центра Денвера составляет всего 1900 автомобилей, получим ситуацию, когда предложение превышает спрос. В этой ситуации необходимо ввести фиктивный пункт назначения, "поглощающий" избыточное предложение. Здесь также можно назначить нулевую стоимость перевозок в фиктивный пункт назначения, если не требуется выполнения каких-то особых условий. Например, если необходимо вывести всю продукцию какого-либо завода, следует назначить очень высокую стоимость перевозок от этого завода до фиктивного пункта назначения.
В табл. 5.5 показана новая модель и ее оптимальное решение (полученное с помощью программы TORA). Решение показывает, что 400 автомобилей завода Детройта не востребованы.
Таблица 5.5
Денвер | Майами | Фиктивный центр | |
Лос-Анджелес
Детройт
Новый Орлеан Спрос
УПРАЖНЕНИЯ 5.1
1. Истинны или ложны следующие утверждения?
a) Для сбалансированности транспортной модели может понадобиться ввести как фиктивные пункты отправления, так и фиктивные пункты назначения.
b) Объем перевозок в фиктивный пункт назначения равен объему превышения предложения над спросом.
c) Объем перевозок из фиктивного пункта отправления равен разности между спросом и предложением.
2. В каждом из следующих случаев определите, следует ли ввести фиктивный пункт отправления или фиктивный пункт назначения, чтобы сбалансировать модель.
a) Предложение: а, = 10, а2 = 5, а3 = 4, а4 = 6. Спрос: Ь, = 10, Ь2 = Ъ,Ь3 = 7, Ьл = 9.
b) Предложение: ах — 30, а2 = 44. Спрос: 6, = 25, Ь2 = 30, Ь3 = 10.
3. На основе табл. 5.4 из примера 5.1.2 (здесь введен фиктивный завод) интерпретируйте решение, при котором фиктивный завод "поставит" 150 автомобилей распределительному центру в Денвере и 50 автомобилей распределительному центру в Майами.
4. Как в табл. 5.5 из примера 5.1.2 учесть требование, что завод в Детройте должен отправить заказчикам все свои автомобили?
Глава 5. Транспортные модели
5. Пусть в примере 5.1.2 (табл. 5.4) введены штрафы в размере 200 и 300 долл. за каждый недопоставленный автомобиль в распределительные центры Денвера и Майами соответственно. Кроме того, поставки из Лос-Анджелеса в Майами не планируются изначально. Постройте транспортную модель и найдите схему оптимальных перевозок с помощью программы TORA.
6. Три электрогенерирующие станции мощностью 25, 40 и 30 миллионов кВт/ч поставляют электроэнергию в три города. Максимальная потребность в электроэнергии этих городов оценивается в 30, 35 и 25 миллионов кВт/ч. Цены за миллион кВт/ч в данных городах показаны в табл. 5.6.
Таблица 5.6
Город 2 | |||
Станция 2 | |||
В августе на 20% возрастает потребность в электроэнергии в каждом из трех городов. Недостаток электроэнергии города могут восполнить из другой электросети по цене 1000 долл. за 1 миллион кВт/ч. К сожалению, третий город не может подключиться к альтернативной электросети. Электрогенерирующие станции планируют разработать наиболее экономичный план распределения электроэнергии и восполнения ее недостатка в августе.
a) Сформулируйте эту задачу в виде транспортной модели.
b) Решите транспортную задачу с помощью программы TORA и определите оптимальный план распределения электроэнергии электрогенерирующи-ми станциями.
c) Определите стоимость дополнительной электроэнергии для каждого из трех городов.
7. Выполните предыдущее упражнение, предполагая, что 10% электроэнергии теряется при передаче по электросетям.
8. Три нефтеперегонных завода с ежедневной производительностью 6, 5 и 8 миллионов галлонов бензина снабжают три бензинохранилища, ежедневная потребность которых составляет 4, 8 и 7 миллионов галлонов бензина соответственно. Бензин транспортируется в бензинохранилища по бензопроводу. Стоимость транспортировки составляет 10 центов за 1000 галлонов на 1 милю длины трубопровода. В табл. 5.7 приведены расстояния (в милях) между заводами и хранилищами. Отметим, что первый нефтеперегонный завод не связан трубопроводом с третьим бензинохранилищем.
Таблица 5.7
Бензохранилище 2 | |||
— | |||
Завод 2 | |||
5.1. Определение транспортной модели
a) Сформулируйте транспортную задачу.
b) С помощью программы TORA найдите оптимальную схему транспортировки бензина.
9. Пусть в предыдущем упражнении ежедневная производительность третьего нефтеперерабатывающего завода составляет 6 миллионов галлонов бензина, а потребности первого бензинохранилища должны выполняться в обязательном порядке. Кроме того, на недопоставки бензина во второе и третье хранилища налагаются штрафы в размере 5 центов за каждый недопоставленный галлон бензина.
a) Сформулируйте соответствующую транспортную задачу.
b) Решите сформулированную задачу с помощью программы TORA и найдите оптимальную схему поставок бензина.
10. Пусть в упражнении 8 ежедневные потребности третьего бензинохранилища составляют 4 миллиона галлонов. Избыток своей продукции первый и второй нефтеперегонные заводы могут отправить на другие бензохранилища с помощью автотранспорта. В этом случае расходы на транспортировку 100 галлонов бензина составляют 1,50 и 2,20 долл. для первого и второго заводов соответственно. Третий нефтеперерабатывающий завод может использовать свои излишки бензина для нужд собственного химического производства.
a) Сформулируйте соответствующую транспортную задачу.
b) Решите сформулированную задачу с помощью программы TORA и найдите оптимальную схему поставок бензина.
11. Три плодовых хозяйства поставляют апельсины в ящиках четырем оптовым покупателям. Ежедневная потребность этих покупателей составляет 150, 150, 400 и 100 ящиков соответственно. Предположим, что все три плодовых хозяйства используют только постоянную рабочую силу и могут ежедневно поставлять 150, 200 и 250 ящиков апельсинов соответственно. Первые два хозяйства могут увеличить поставки апельсинов, привлекая дополнительных рабочих, третье хозяйство такой возможности не имеет. Транспортные расходы (в долл.) на один ящик апельсинов приведены в табл. 5.8.
Таблица 5.8
Покупатели | ||||
Хозяйства 2 | ||||
a) Сформулируйте соответствующую транспортную задачу.
b) Решите сформулированную задачу с помощью программы TORA.
c) Сколько дополнительных ящиков апельсинов могут поставить первое и второе хозяйства, используя временных рабочих?
12. Три распределительных центра поставляют автомобили пяти дилерам. Автомобили от распределительных центров к дилерам перевозятся на трейлерах, и стоимость перевозок пропорциональна расстоянию между пунктами отправления и назначения и не зависит от степени загрузки трейлера.
Глава 5. Транспортные модели
В табл. 5.9 приведены расстояния между распределительными центрами и дилерами, а также соответствующие величины спроса и предложения, выраженные в количествах автомобилей. При полной загрузке трейлер вмещает 18 автомобилей. Транспортные расходы составляют 25 долл. на одну милю пути, пройденного трейлером.
Таблица 5.9
Дилеры | ||||||
Предложения | ||||||
Центры 2 | ||||||
Спрос |
a) Сформулируйте соответствующую транспортную задачу.
b) Решите сформулированную задачу с помощью программы TORA.
13. Компания MG Auto из примера 5.1.1 производит четыре модели автомобилей. Завод в Детройте выпускает модели Ml, М2 и М4. Модели Ml и М2 производятся в Новом Орлеане, МЗ и М4 — в Лос-Анджелесе. Производительность каждого завода и потребности распределительных центров в автомобилях разных моделей даны в табл. 5.10.
Таблица 5.10
Модель
М1 М2 МЗ М4 Всего
Завод
Лос-Анджелес — — 700 300 1000
Детройт 500 600 — 400 1500
Новый Орлеан 800 400 — — 1200 Распределительный центр
Денвер * 700 500 500 600 2300
Майами 600 500 200 100 1400
Расстояния между заводами и распределительными центрами приведены в примере 5.1.1, транспортные расходы составляют 8 центов за перевозку одного автомобиля (любой модели) на одну милю пути. Кроме всего прочего, есть возможность удовлетворить спрос на одну из моделей автомобилей за счет другой в соответствии с табл. 5.11.
Таблица 5.11
Распределительный центр Заменяемая часть спроса (%) Взаимозаменяемые модели Денвер 10 М1.М2
20 МЗ, М4
Майами 10 М1, МЗ
5 М2, М4
5.2. Нетрадиционные транспортные модели
a) Сформулируйте соответствующую транспортную задачу.
b) Решите сформулированную задачу с помощью программы TORA.
(Совет. Введите четыре новых пункта назначения, соответствующих комбинациям (Ml, М2), (МЗ, М4), (Ml, М2) и (М2, М4). Объемы потребностей новых пунктов определяются на основании данных о процентном соотношении заменяемых моделей автомобилей.)
5.2. НЕТРАДИЦИОННЫЕ ТРАНСПОРТНЫЕ МОДЕЛИ
Использование транспортной модели не ограничивается задачей о транспортировке чего-либо между географическими пунктами отправления и назначения. В этом разделе описано применение транспортной модели к задаче управления запасами и задаче распределения оборудования.
Пример 5.2.1. Управление запасами
Фабрика Boralis производит рюкзаки для путешественников. Спрос на эту продукцию, в основном, есть только в марте-июне (т.е. четыре месяца в году). Фабрика оценивает спрос в эти месяцы соответственно в 100, 200, 180 и 300 единиц изделия. Так как производство не ритмично, на фабрике рабочие работают не полный рабочий день. В течение рассматриваемых четырех месяцев фабрика может выпустить 50, 180, 280 и 270 единиц изделия. Производство и спрос в различные месяцы не совпадают, спрос в текущем месяце можно удовлетворить следующими способами.
1. Производством изделий в течение текущего месяца.
2. Избытком произведенных в прошлом месяце изделий.
3. Избытком произведенных в следующем месяце изделий в счет невыполненных заказов.
В первом случае стоимость одного рюкзака составляет 40,00 долл. Во втором случае возникают дополнительные расходы в расчете 0,50 долл. на один рюкзак за хранение в течение месяца. В третьем случае за просроченные заказы начисляются штрафы в размере 2,00 долл. на один рюкзак за каждый просроченный месяц. Фабрика планирует разработать оптимальный план производства на эти четыре месяца.
Описанную ситуацию можно смоделировать в виде транспортной задачи, используя следующие соответствия между элементами задачи управления запасами и транспортной модели.
Транспортная модель Модель управления запасами
1. Пункт отправления / 1. Период производства /
2. Пункт назначения j 2. Период потребления
3. Предложение в пункте отправления /' 3. Объем производства за период /
4. Спрос в пункте назначения j 4. Объем реализации продукции за период j
5. Стоимость перевозки из пункта /' в пункт / 5. Стоимость единицы продукции
(производство + хранение + штрафы) за период от / до j
Глава 5. Транспортные модели
Результирующая транспортная модель представлена в табл. 5.12 (данные выражены в долл.).
Таблица 5.12
Объем производства | |||||
40,00 | 40,50 | 41,00 | 41,50 | ||
42,00 | 40,00 | 40,50 | 41,00 | ||
44,00 | 42,00 | 40,00 | 40,50 | ||
46,00 | 44,00 | 42,00 | 40,00 | ||
Спрос |
Стоимость "транспортировки" единицы изделия из периода < в периоду вычисляется следующим образом.
стоимость производства в j'-й период, i = j, стоимость производства в ;'-й период +
+ стоимость хранения от i до j, i < j, стоимость производства в i-й период + штраф от i до j, i > j.
Например,
с„ = 40,00,
c2i = 40,00 + (0,50 + 0,50) = 41,00 долл.,
с41 = 40,00 + (2,00 + 2,00 + 2,00) = 46,00 долл.
Оптимальное решение графически представлено на рис. 5.3. Здесь пунктирными линиями показаны задолженности производства, линией из точек представлено производство для будущего периода (для удовлетворения будущего спроса) и сплошными линиями — производство для удовлетворения спроса текущего периода.
© ©
Объем производства 50 180 280
Период производства
50 50,'' 130 /
/
1 > /
Период спроса ^rf
Спрос 100 200 180
70/ 180
30-.. 270
© © та
Рис. 5.3. Оптимальное решение задачи управления запасами
5.2. Нетрадиционные транспортные модели
Пример 5.2.2. Распределение оборудования
Лесопильный завод обрабатывает различную древесину (от мягкой сосны до твердого дуба) по утвержденному недельному производственному плану. Согласно этому плану в зависимости от типа древесины в разные рабочие дни 7-днев-ной рабочей недели требуется различное количество полотен для пил.
День | 1 (Пн.) | 2 (Вт.) | 3 (Ср.) | 4 (Чт.) | 5 (Пт.) | 6 (Сб.) | 7 (Вс.) |
Потребность (к-во полотен) |
Завод может удовлетворить свои потребности в полотнах одним из следующих способов.
1. Купить новые полотна по 12 долл. за единицу.
2. Применить ночную заточку полотен стоимостью 6 долл. за одно заточенное полотно либо сдать пилы на 2-дневную заточку (эта услуга стоит 3 долл. За полотно).
Данную ситуацию можно описать как транспортную модель с восьмью пунктами отправления и семью пунктами назначения. Пунктам назначения соответствуют 7 дней рабочей недели. Исходные пункты (т.е. "пункты отправления") определяются следующим образом. Первый исходный пункт соответствует покупке новых полотен; в экстремальном случае возможна такая покупка, которая удовлетворит потребность в полотнах на все 7 дней рабочей недели. Исходные пункты со второго по восьмой соответствуют семи дням рабочей недели. Объем предложения каждого из этих исходных пунктов равен количеству полотен, использованных к концу соответствующего рабочего дня. Например, "предложение" второго исходного пункта (соответствует понедельнику) равно количеству полотен, необходимых для выполнения производственного плана этого рабочего дня. "Транспортные" расходы в этой модели составляют соответственно 12, 6 и 3 долл., в зависимости от того, является ли полотно новым, получено после ночной заточки или после 2-дневного обслуживания полотен. Отметим, что для ночной заточки использованные полотна передаются в конце /-го рабочего дня и могут использоваться с начала (/' + 1)-го или (;' + 2)-го рабочего дня. При 2-дневной заточке использованные полотна отдаются на заточку в конце ;'-го рабочего дня и могут использоваться с начала (/ + 3)-го рабочего дня или в последующие дни. В приведенной ниже таблице столбец "Остаток" соответствует фиктивному пункту назначения, в этом столбце приведено количество полотен, оставшихся не заточенными в конце каждого рабочего дня. Полная транспортная модель для описанной ситуации представлена в табл 5.13 (данные приведены в долл.).4 Оптимальное решение (полученное с помощью программы TORA, файл ch5ToraEquipMainEx5-2-2.txt) показано в следующей таблице.
Рабочий день | Новые полотна | Ночная заточка | 2-дневная заточка | Остаток |
Понедельник | 24 (Пн.) | 10 (Вт.)+ 8 (Ср.) | 6 (Вт.) | |
Вторник | 2 (Вт.) | 6 (Ср.) | 6 (Пт.) | |
Среда | 14 (Чт.) | |||
Четверг | 12(Пт.) | 8 (Вс.) | ||
Пятница | 14 (Сб.) | |||
Суббота | 14 (Вс.) | |||
Воскресенье |
Общая стоимость 840 долл.
4 В табл. 5.13 буква М означает достаточно большое положительное число. — Прим. ред.
Глава 5. Транспортные модели
Таблица 5.13
1 (Пн.) | 2 (Вт.) | 3 (Ср.) | 4 (Чт.) | 5 (Пт.) | 6 (Сб.) | 7 (Вс.) | 8 (Остаток) | ||
(Новые) | |||||||||
М | |||||||||
(Пн.) | |||||||||
М | м | ||||||||
(Вт.) | |||||||||
м | м | М | |||||||
(Ср.) | |||||||||
м | м | М | М | ||||||
(Чт.) | |||||||||
м | м | м | М | М | |||||
(Пт.) | |||||||||
м | м | м | М | М | М | ||||
(Сб.) | |||||||||
м | м | м | М | М | М | М | |||
(Вс.) | |||||||||
Объясним полученный результат. В понедельник завод покупает 24 новых полотна для пил. В конце того же дня остается 24 использованных полотна, из которых 18 отправляются на ночную заточку, 6 — на 2-дневную. Из 18 заточенных ночью полотен 10 используются во вторник, а 8 — в среду. Шесть полотен после 2-дневного обслуживания используются в четверг. Остальные позиции приведенного решения интерпретируются аналогично. В столбце "Остаток" показано количество использованных полотен, которые не передаются на заточку в конце рабочего дня.
УПРАЖНЕНИЯ 5.2
1. Пусть в примере 5.2.1 стоимость хранения продукции зависит от месяца, в котором она произведена, и составляет для первых трех месяцев соответственно 40, 30 и 70 центов за хранение единицы продукции. Величина штрафа за просроченные заказы и величины производственных расходов остаются такими же, как и в примере 5.2.1. С помощью программы TORA найдите оптимальное решение и интерпретируйте полученный результат.
2. Пусть в примере 5.2.2 также имеется 3-дневный сервис по заточке полотен пил, использованных в понедельник и вторник; при этом стоимость заточки одного полотна составляет 1 долл. Сформулируйте задачу заново и интерпретируйте ее оптимальное решение, полученное с помощью программы TORA.
3. Пусть в примере 5.2.2 заточенные полотна, не использованные сразу после заточки, отправляются на хранение, причем стоимость хранения одного полотна в течение дня составляет 50 центов. Переформулируйте задачу и интерпретируйте ее оптимальное решение, полученное с помощью программы TORA.
5.2. Нетрадиционные транспортные модели
4. Компания планирует оптимизировать распределение станочного парка, состоящего из станков четырех типов, для выполнения станочных работ пяти видов. Пусть имеется 25, 30, 20 и 30 станков каждого типа. Приведем количество работ каждого вида: 20, 20, 30, 10 и 25 соответственно. Отметим, что станки четвертого типа не используются для выполнения работ четвертого вида. В табл. 5.14 представлена стоимость (в долл.) выполнения каждого вида работ на станках определенного типа. Сформулируйте транспортную задачу, решите ее с помощью программы TORA и интерпретируйте полученный результат.
Таблица 5.14
Вид работ | |||||
Тип 2 | |||||
станка 3 | |||||
— |
5. Спрос на некий скоропортящийся продукт в следующие 4 месяца составляет 400, 300, 420 и 380 тонн соответственно. Предложение этого товара в те же месяцы составляет 500, 600, 200 и 300 тонн. Отпускная цена на этот товар колеблется от месяца к месяцу и равна соответственно 100, 140, 120 и 150 долл. за тонну. Поскольку товар скоропортящийся, он должен быть реализован в течение трех месяцев (включая текущий). Стоимость хранения в течение месяца тонны товара равна 3 долл. Природа товара такова, что невозможна задержка с выполнением заказа. Опишите данную ситуацию как транспортную модель и найдите ее оптимальное решение для 4-х месяцев с помощью программы TORA.
6. Спрос на специализированные малые двигатели в следующие пять кварталов составляет 200, 150, 300, 250 и 400 единиц. Мощность производства двигателей в тот же период времени оценивается в 180, 230, 430, 300 и 300 единиц. Невыполнение заказов не допускается, при необходимости можно организовать сверхурочные работы для выпуска дополнительной продукции. Стоимость единицы продукции в каждый из следующих пяти кварталов составляет 100, 96, 116, 102 и 106 долл. соответственно. Стоимость дополнительно произведенной продукции увеличивается на 50% по сравнению со "стандартной" стоимостью в соответствующий период. Если двигатели, произведенные в одном квартале, реализуются в последующих, за хранение одного двигателя в течение квартала необходимо заплатить 4 долл. Сформулируйте транспортную задачу. С помощью программы TORA определите оптимальный план производства двигателей.
7. Периодически проводится профилактика самолетных двигателей с заменой важной детали А. В следующие 6 месяцев будут выполнены регламентные работы (с разбивкой по месяцам) на 200,180, 300,198, 230 и 290 двигателях. Все регламентные работы, запланированные на месяц, проводятся в течение первых двух дней месяца, когда отработанная деталь заменяется А на новую или отремонтированную. Снятую деталь можно отремонтировать в местной мастерской, и она будет готова к началу следующего месяца, или отправить в центральные мастерские, откуда она вернется через 3 месяца (считая месяц, в котором выполнены
Глава 5. Транспортные модели
профилактические работы). Стоимость ремонта одной детали А в местной мастерской составляет 120 долл., а в центральной — только 35 долл. Если отремонтированная деталь будет использована в последующие месяцы, стоимость ее хранения составит 1,50 долл. в месяц. Новые детали можно купить по цене 200 долл. В первом месяце с возрастанием цены на 5% каждые 2 месяца. Представьте описанную ситуацию в виде транспортной модели и с помощью программы TORA найдите ее оптимальное решение.
8. Управление национальными парками получило четыре заявки от подрядчиков на лесозаготовки в трех сосновых лесных массивах Арканзаса. Эти массивы имеют площадь 10 000, 20 000 и 30 000 акров. Каждый подрядчик может получить для разработки не более половины всех отводимых для лесозаготовки площадей. Предлагаемые подрядчиками цены за разрешение на лесозаготовки (долл.) показаны в табл. 5.15.
Таблица 5.15
Лесной массив | |||
Подрядчик 2 | — | ||
— | |||
a) В описанной ситуации необходимо максимизировать общую прибыль, получаемую управлением национальными парками. Покажите, как эту проблему можно представить в виде транспортной задачи.
b) С помощью программы TORA определите площади, выделяемые каждому подрядчику для лесозаготовок.
5.3. РЕШЕНИЕ ТРАНСПОРТНОЙ ЗАДАЧИ
В данном разделе* будет детально описан алгоритм решения транспортной задачи. Этот алгоритм повторяет основные шаги симплекс-метода (глава 3). Однако для представления данных, вместо обычных симплекс-таблиц, используются транспортные таблицы со специальной структурой.
Необходимо оговорить, что специальный алгоритм решения транспортной задачи первоначально разрабатывался для ручных вычислений как метод, дающий "быстрое" решение. Сегодня мощная компьютерная техника совместно с соответствующим программным обеспечением позволяет решать транспортные задачи любого размера как задачи линейного программирования. В частности, программа TORA использует формат транспортной задачи только для экранного представления данных, выполняя все вычисления на основе обычного симплекс-метода. С другой стороны, описываемый далее алгоритм решения транспортной задачи, кроме исторического интереса, предлагает взгляд изнутри на то, как можно использовать теоретические отношения двойственности (раздел 4.2) для получения практических результатов.
Алгоритм решения транспортной задачи будет проиллюстрирован на следующем примере.
5.3. Решение транспортной задачи
Пример 5.3.1
Транспортная компания занимается перевозкой зерна специальными зерновозами от трех элеваторов к четырем мельницам. В табл. 5.16 показаны возможности отгрузки зерна (предложения) элеваторами (в зерновозах) и потребности (спрос) мельниц (также в зерновозах), а также стоимость перевозки зерна одним зерновозом от элеваторов к мельницам. Стоимость перевозок с, приведена в сотнях долларов.
В данной задаче требуется определить структуру перевозок между элеваторами и мельницами с минимальной стоимостью. Для этого необходимо вычислить объемы перевозок хц между ;-м элеватором иу'-й мельницей.
Таблица 5.16
Мельницы
12 3 4 Предложение
Х11 | Х12 | Х13 | Х,4 | |||||
Элеваторы 2 | ||||||||
Х21 | Х22 | Х23 | Х24 | |||||
Х31 | Х32 | хзз | Х34 |
Спрос 5 15 15 15
Последовательность этапов алгоритма решения транспортной задачи в точности повторяет аналогичную последовательность этапов симплексного алгоритма.
Шаг 1. Определяем начальное базисное допустимое решение, затем переходим к выполнению второго этапа.
Шаг 2. На основании условия оптимальности симплекс-метода среди всех небазисных переменных определяем вводимую в базис. Если все небазисные переменные удовлетворяют условию оптимальности, вычисления заканчиваются; в противном случае переходим к третьему этапу.
ШагЗ. С помощью условия допустимости симплекс-метода среди текущих базисных переменных определяем исключаемую. Затем находим новое базисное решение. Возвращаемся ко второму этапу.
Рассмотрим каждый описанный этап в отдельности. 5.3.1. Определение начального решения
Общая транспортная модель с т пунктами отправления и п пунктами назначения имеет т + п ограничений в виде равенств, по одному на каждый пункт отправления и назначения. Поскольку транспортная модель всегда сбалансирована
Глава 5. Транспортные модели
(сумма предложений равна сумме спроса), одно из этих равенств должно быть избыточным. Таким образом, транспортная модель имеет т + п - 1 независимых ограничений, отсюда следует, что начальное базисное решение состоит из т + п - 1 базисных переменных. Например, начальное решение в примере 5.3.1 содержит 3 + 4-1 = 6 базисных переменных.
Специальная структура транспортной модели для построения начального решения позволяет применить следующие методы (вместо использования искусственных переменных, как это делается в симплекс-методе).
1. Метод северо-западного угла.
2. Метод наименьшей стоимости.
3. Метод Фогеля.
Различие этих методов заключается в "качестве" начального решения, т.е. "удаленности" начального решения от оптимального. В общем случае метод Фогеля дает наилучшее решение, а метод северо-западного угла — наихудшее. Однако метод северо-западного угла требует меньшего объема вычислений.
Метод северо-западного угла. Выполнение начинается с верхней левой ячейки (северо-западного угла) транспортной таблицы, т.е. с переменной хп.
Шаг 1. Переменной хп присваивается максимальное значение, допускаемое ограничениями на спрос и предложение.
Шаг 2. Вычеркивается строка (или столбец) с полностью реализованным предложением (с удовлетворенным спросом). Это означает, что в вычеркнутой строке (столбце) мы не будем присваивать значения остальным переменным (кроме переменной, определенной на первом этапе). Если одновременно удовлетворяются спрос и предложение, вычеркивается только строка или только столбец.
Шаг 3. Если не вычеркнута только одна строка или только один столбец, процесс останавливается. В противном случае переходим к ячейке справа, если вычеркнут столбец, или к нижележащей ячейке, если вычеркнута строка. Затем возвращаемся к первому этапу.
Пример 5.3.2
Если применить описанную процедуру к задаче из примера 5.3.1, получим начальное базисное решение, представленное в табл. 5.17. В этой таблице стрелками показана последовательность определения базисных переменных.
Получено следующее начальное базисное решение: х„ = 5,х12=10, х,2 = 5, х.а — 15, х24 = 5, хм=10.
Соответствующая суммарная стоимость перевозок равна z = 5xl0+10x2 + 5x7+15x9 + 5x20+10xl8 = 520 долл-
5.3. Решение транспортной задачи 209 Таблица 5.17
1 2 3 4 Предложение
10 5.....| | -1.0 | ||
: 7 Y 5.....■ | -15.....> | - 5 | |
: 18 Y |
Спрос 5 15 15 15
Метод наименьшей стоимости. Данный метод находит лучшее начальное решение, чем метод северо-западного угла, поскольку выбирает переменные, которым соответствуют наименьшие стоимости. Сначала по всей транспортной таблице ведется поиск ячейки с наименьшей стоимостью. Затем переменной в этой ячейке присваивается наибольшее значение, допускаемое ограничениями на спрос и предложение. (Если таких переменных несколько, выбор произволен.) Далее вычеркивается соответствующий столбец или строка, и соответствующим образом корректируются значения спроса и предложений. Если одновременно выполняются ограничения и по спросу, и по предложению, вычеркивается или строка, или столбец (точно так же, как в методе северо-западного угла). Затем просматриваются невычеркнутые ячейки, и выбирается новая ячейка с минимальной стоимостью. Описанный процесс продолжается до тех пор, пока не останется лишь одна невычеркнутая строка или столбец.
Пример 5.3.3
Применим метод наименьшей стоимости к задаче из примера 5.3.1.
1. Ячейка (1,2) имеет наименьшую в таблице стоимость (2 долл.). Наибольшее значение, которое можно присвоить переменной хи, равно 15. В этом случае удовлетворяются ограничения, соответствующие первой строке и второму столбцу. Вычеркиваем второй столбец, предложение первой строки и спрос второго столбца принимают нулевые значения.
2. Следующей ячейкой с наименьшей стоимостью в незачеркнутой части таблицы будет (3, 1). Присвоим переменной х31 значение 5 и вычеркнем первый столбец. Ограничение по предложению, соответствующее третьей строке, станет равным 10 - 5 = 5.
3. Продолжая процедуру, последовательно присваиваем переменной х23 значение 15, переменной хи — значение 0; далее находим х34 = 5 их24 = 10 (проверьте!).
Процесс поиска начального решения представлен в табл. 5.18. Стрелками показана последовательность присвоения переменным значений. Итак, мы получили следующее начальное базисное решение (состоящее из 6 переменных):
Этот метод в русской математической литературе часто называют методом минимального элемента. — Прим. ред.
Глава 5. Транспортные модели
.г12 = 15,х14 = 0, .r23 = 15,x24 = 10, А'з1 = •>> л"34 = 5.
Соответствующее значение целевой функции равно
z=15x2 + 0xll + 15x9 + 10x 20 + 5x4 + 5x 18 = 475 долл. Отсюда следует, что полученное методом наименьшей стоимости начальное решение лучше, чем начальное решение, представленное методом северо-западного угла (сравните данное значение целевой функции с аналогичным значением из примера 5.3.2).
Таблица 5.18
1 2 3 4 Предложение
, о. | |||||
/12 | /9 г 15 | 10 4 | .20 | ||
.--''14 | ! 1 | Л8 |
Спрос 5 15 15 15
Метод Фогеля. Данный метод является вариацией метода наименьшей стоимости и в общем случае находит лучшее начальное решение. Алгоритм этого метода состоит из следующих шагов.
Шаг 1. Для^каждой строки (столбца), которой соответствует строго положительное предложение (спрос), вычисляется штраф путем вычитания наименьшей стоимости из следующей по величине стоимости в данной строке (столбце).
Шаг 2. Выделяется строка или столбец с наибольшим штрафом. Если таковых несколько, выбор произволен. Из выделенной строки или столбца выбирается переменная, которой соответствует минимальная стоимость, и ей присваивается наибольшее значение, позволяемое ограничениями. Затем в соответствии с присвоенным значением переменной корректируются величины оставшегося неудовлетворенным спроса и нереализованного предложения. Строка или столбец, соответствующие выполненному ограничению, вычеркиваются из таблицы. Если одновременно выполняются ограничения и по спросу, и по предложению, вычеркивается только строка или только столбец, причем оставшейся строке (столбцу) приписывается нулевое предложение (спрос).
5.3. Решение транспортной задачи
ШагЗ.
а) Если не вычеркнута только одна строка или только один столбец с нулевым спросом или предложением, вычисления заканчиваются.
б) Если не вычеркнута только одна строка (столбец) с положительным предложением (спросом), в этой строке (столбце) методом наименьшей стоимости находятся базисные переменные, и вычисления заканчиваются.
в) Если всем невычеркнутым строкам и столбцам соответствуют нулевые объемы предложения и спроса, методом наименьшей стоимости находятся нулевые базисные переменные, и вычисления заканчиваются.
г) Во всех остальных случаях необходимо перейти к п. 1.
Пример 5.3.4
Применим метод Фогеля к задаче из примера 5.3.1. В табл. 5.19 показан первый набор вычисленных штрафов.
Поскольку третья строка имеет наибольший штраф (10) и в этой строке наименьшая стоимость содержится в ячейке (3, 1), присваиваем переменной х31 значение 5. В этом случае полностью выполняется ограничение первого столбца, его вычеркиваем. Новый набор пересчитанных штрафов показан в табл. 5.20.
Теперь первая строка имеет наибольший штраф 9. Поэтому мы присваиваем значение 15 переменной х12, которой соответствует минимальная стоимость в первой строке. В этом случае одновременно выполняются ограничения и для первой строки, и для второго столбца. Вычеркнем второй столбец, положив объем предложений, соответствующий первой строке, равным нулю.
Таблица 5.19
Штрафы для строк | |||||||||
10-2 = 8 | |||||||||
9-7 = 2 | |||||||||
14-4 = 10 | |||||||||
Штрафы для столбцов | 10-4 | = 6 | 7-2 = 5 | 16-9 | = 7 | 18-11 | = 7 |
Глава 5. Транспортные модели
Таблица 5.20
1 2 3 4 Штрафы для строк
11-2 = 9 | |||||||
9-7 = 2 | |||||||
16-14 = 2 | |||||||
0 15 15 15
Штрафы для столбцов — 5 7 7
Продолжая этот процесс, находим, что на следующем шаге вторая строка будет иметь наибольший штраф (20 -9 = 11). Поэтому переменной х23 присваиваем значение 15. В результате будет вычеркнут третий столбец, во второй строке останется нереализованным предложение объемом в 10 единиц. Остается невычеркнутым только четвертый столбец с положительным неудовлетворенным спросом объемом в 15 единиц. Применяя метод наименьшей стоимости к этому столбцу, последовательно получаем л14 = 0, jc34 = 5 и л,4 = 10 (проверьте!). Соответствующее значение целевой функции равно
z = 15 х2 + 0х 11 + 15x9 + 10 х 20 + 5x4 + 5x 18 = 475 долл.
В данном случае значение целевой функции такое же, как и при методе наименьшей стоимости. Но обычно метод Фогеля дает наилучшее начальное решение для транспортной задачи.
УПРАЖНЕНИЕ 5.3.1
?*
1. Найдите начальные решения методами северо-западного угла, наименьшей стоимости и Фогеля для следующих транспортных задач.
а) | Ь) | с) | |||||||||
5.3.2. Итерационный алгоритм решения транспортной задачи
После определения начального решения (с помощью одного из трех методов, описанных в предыдущем разделе) применяется алгоритм, позволяющий найти оптимальное решение транспортной задачи.
5.3. Решение транспортной задачи
Шаг 1. На основе симплексного условия оптимальности среди текущего множества небазисных переменных определяется вводимая в базис переменная, которая может улучшить значение целевой функции. Если условие оптимальности выполняется для всех небазисных переменных, вычисления заканчиваются, в противном случае необходимо перейти ко второму этапу.
Шаг 2. С помощью симплексного условия допустимости определяется исключаемая из базиса переменная. Происходит изменение базиса и возврат к первому этапу.
При изменении базиса в данном случае не используются вычисления, выполняемые при реализации симплекс-метода, — специальная структура транспортной таблицы позволяет значительно упростить вычисления.
Пример 5.3.5
Решим транспортную задачу из примера 5.3.1, используя начальное решение (табл. 5.21), полученное методом северо-западного угла в примере 5.3.2.
Таблица 5.21
12 3 4 Предложение
Спрос 5 15 15 15
Определение вводимой переменной среди текущих небазисных (т.е. среди тех переменных, которые не входят в начальное базисное решение) основано на вычислении коэффициентов z-строки, соответствующих небазисным переменным, с использованием метода потенциалов (который, как будет показано в разделе 5.4, основан на соотношениях двойственности задачи ЛП).
В методе потенциалов каждой строке i и каждому столбцу j транспортной таблицы ставятся в соответствие числа (потенциалы) ut и vy. Для каждой базисной переменной дг, потенциалы ut и vy (как показано в разделе 5.4) удовлетворяют уравнению
В рассматриваемой задаче имеем 7 неизвестных переменных (потенциалов) и 6 уравнений, соответствующих шести базисным переменным. Чтобы найти значения потенциалов из этой системы уравнений, нужно присвоить одному из них произвольное значение (обычно полагают и, = 0) и затем последовательно вычислять значения остальных потенциалов.
Глава 5. Транспортные модели
Базисные переменные | Уравнения относительно потенциалов | Решение |
хи | и: + vi = 10 | ui = 0 -> vi = 10 |
щ + v2 = 2 | i/i = 0 -> i/2 = 2 | |
*22 | t/2 + f2 = 7 | l/2 = 2-^t/2 = 5 |
*23 | 1/2+1/3 = 9 | 1/2 = 5 -> 1/3 = 4 |
*24 | u2 + Va = 20 | 1/2 = 5 -> l/4 = 1 5 |
*34 | 1/3+1/4 = 18 | i/4 = 15 -> i/3 = 3 |
Итак, имеем
Wj = 0, u2 = 5, w3 - 3,
v, = 10, v2 = 2, v3 = 4, v4= 15.
Далее, используя найденные значения потенциалов, для каждой небазисной переменной вычисляются величины ul + vt - с,. Результаты вычисления этих величин приведены в следующей таблице.
Небазисные переменные
Значения и, + i/y - с,у
Х13 Х14 *21 *31 Х32
Щ + 1/з - с13 = 0 + 4 - 20 = -16 Ul + 1/4 - С14 = 0 + 15- 11 = 4 и2 + 1/1 - с21 = 5 + 10- 12 = 3 и3 + 1/1 - с31 = 3 + 10 -4 = 9 и3 + 1/2 - с32 = 3 + 2 - 14 = -9 и3 + 1/3 - Сзз = 3 + 4 - 16 = -9
Вычисленные значения совместно с нулевыми значениями для базисных переменных (поскольку ut + v - ctj = 0 для любой базисной переменной xtj) фактически являются коэффициентами z-строки симплекс-таблицы.
Базис | *12 | Х13 | *14 | Х21 | Х22 | Х23 | *24 | Х31 | Х32 | *зз | хм | |
z | -16 | -9 | -9 |
Поскольку в транспортной задаче ведется поиск минимума стоимости перевозок, вводимой в базис будет переменная, имеющая наибольший положительный коэффициент в z-строке. В данном случае вводимой переменной будет jc31.
Описанные вычисления обычно выполняются непосредственно в транспортной таблице, как показано в табл. 5.22. В этом случае нет необходимости в явном виде выписывать уравнения для потенциалов. Вычисления в транспортной таблице начинаются с присвоения потенциалу их нулевого значения: и,= 0. Затем вычисляются v-потенциалы для всех столбцов, имеющих базисные переменные в первой строке. Далее на основании уравнения для потенциалов, соответствующего переменной jc22, определяется величина потенциала и2. Зная значение потенциала и2, вычисляем потенциалы v3 и v4, что позволяет найти потенциал и3. Поскольку все потенциалы определены, далее вычисляются величины ut + vs - ctj для каждой небазисной переменной x:j. Эти величины показаны в табл. 5.22 в левом нижнем углу ячеек транспортной таблицы.
5.3. Решение транспортной задачи Таблица 5.22
V! = 10
1/2 = 2
1/з = 4
i/4 = 15 Предложение
и: = 0
и2 = 5
из = 3 Спрос
-16
Определив вводимую в базис переменную х31, далее следует найти исключаемую из базиса переменную. Напомним, если какая-либо переменная вводится в базис, одна из текущих базисных переменных должна стать небазисной (и равной нулю), чтобы количество базисных переменных оставалось постоянным (в данном примере количество базисных переменных равняется 3 + 4-1 = 6).
Исключаемая из базиса переменная определяется следующим образом. Выбрав в качестве вводимой переменную х31, мы хотим, чтобы перевозки по маршруту, соответствующему этой переменной, уменьшили общую стоимость перевозок. Какой объем груза можно перевезти по этому маршруту? Обозначим через 0 количество груза, перевозимого по маршруту (3, 1) (т.е. х31 = 0). Максимально возможное значение 9 определяем из следующих условий.
1. Должны выполняться ограничения на спрос и предложение.
2. Ни по какому маршруту не должны выполняться перевозки с отрицательным объемом грузов.
Эти условия позволяют найти значение 0 и определить исключаемую переменную. Сначала построим замкнутый цикл, который начинается и заканчивается в ячейке, соответствующей вводимой переменной (в данном примере — это ячейка (3, 1)). Цикл состоит из последовательности горизонтальных и вертикальных отрезков (но не диагональных), соединяющих ячейки, соответствующие текущим базисным переменным, и ячейку, соответствующую вводимой переменной. В табл. 5.23 показан цикл для вводимой переменной х31. Для любой вводимой переменной можно построить только один замкнутый цикл.
Теперь найдем значение 0. Для того чтобы удовлетворить ограничениям по спросу и предложению, надо поочередно отнимать и прибавлять 0 к значениям базисных переменных, расположенных в угловых ячейках цикла, как показано в табл. 5.23 (не имеет значения направление обхода цикла: по часовой стрелке или против). Новые значения базисных переменных останутся неотрицательными, если будут выполняться следующие неравенства.
хп = 5-0>0, х22 = 5-0>0, х, = 10-0>0.
Глава 5. Транспортные модели
Таблица 5.23
■2 v3 = 4 v4 = 15 Предложение
и2 - 5
5-еч
t 4 в -■•
-10 + в
: 7
5-вН
-16
■15
16 ^9
•5 + <
: 18
■К ю-е
Спрос
Отсюда следует, что наибольшее значение, которое может принять 0, равно 5, при этом переменные лп и х.п обращаются в нуль. Поскольку только одна переменная исключается из базиса, в качестве исключаемой можно выбрать как хи, так и х22. Остановим свой выбор нал-,,.
Определив значение для вводимой переменной (л31 = 5) и выбрав исключаемую переменную, далее следует откорректировать значения базисных переменных, соответствующих угловым ячейкам замкнутого цикла, как показано в табл. 5.24. Поскольку перевозка единицы груза по маршруту (3, 1) уменьшает общую стоимость перевозок на 9 долл. (= иъ + v, - с31), суммарная стоимость перевозок будет на 9x5 = 45 долл. меньше, чем в предыдущем решении. Таким образом, новая суммарная стоимость перевозок будет равна 520 - 45 = 475 долл.
Имея новое базисное решение, следует повторить вычисления потенциалов, как показано в табл. 5.24. Новой вводимой в базис переменной будет лг14. Замкнутый цикл, соответствующий этой переменной, позволяет найти ее значение (л]4 = 10) и исключаемую переменную л24.
Новое решение, показанное в табл. 5.25, на 4 х 10 = 40 долл. уменьшает значение целевой функции. Таким образом, новая суммарная стоимость перевозок составляет 475 - 40 = 435 долл. Теперь новые значения величин и, + vf - сц для всех небазисных переменных хц отрицательные. Поэтому решение, представленное в табл. 5.25, оптимально.
Таблица 5.24
Vj = 1 v2 = 2 v3 = 4 v4=15 Предложение
и, = 0
щ = 5
-е | — в | |||||
-9 | _ А | -16 | + : 4 | |||
: 7 0 + 6- | .. 9 —•15'-- | Т 20 -10-е | ||||
-6 | + | - | ||||
-9 | -9 |
СпР0С 5 15 15 15
5.3. Решение транспортной задачи 217 Таблица 5.25
vi = -3 V2 - 2 1/з = 4 i/4 = 11 Предложение
-13 | -16 | |||||||
-10 | -4 | |||||||
-5 | -5 |
Спрос 5 15 15 15
Полученное решение, изложенное в терминах исходной задачи перевозки зерна от элеваторов до мельниц, имеет следующий смысл.
От элеватора До мельницы Количество зерновозов
Суммарная стоимость перевозок = | 435 долл. |
5.3.3. Решение транспортной задачи с помощью TORA
Ранее было показано, как решить транспортную задачу в программе TORA в автоматическом режиме. В этом разделе будет описано, как решать эту задачу в обучающем режиме (режиме пошагового выполнения). Также будет показано, как можно решить эту задачу, используя средство Excel Поиск решения и программу LINGO.
Обучающий режим программы TORA. Из меню Solve/Modify выберите команду Solved Iterations. Чтобы приступить к решению транспортной задачи, из появившегося подменю выберите один из трех методов решения (северо-западного угла, наименьшей стоимости или Фогеля). В этом режиме можно использовать два полезных интерактивных средства.
1. Любые значения потенциалов и и v можно приравнять к нулю перед вычислением второй итерации (по умолчанию и, = 0). Если вы приравняли к нулю какой-либо потенциал, отличный от uv то заметите, что, несмотря на то, что значения ut и v] изменились, значения в небазисных ячейках (= ut + vj - ctj) остались неизменными. Это означает, что изначально любые и или v могут приравниваться к нулю (в действительности могут принимать любое значение), что не влияет на применение условия оптимальности.
2. Можно самостоятельно выбрать замкнутый цикл, щелкнув (в любом порядке) на ячейках, которые составят этот цикл. Если был сделан правильный
Глава 5. Транспортные модели
выбор, цвет ячеек изменится (зеленый для вводимых переменных, красный для исключаемых переменных и серый для остальных).
На рис. 5.4 представлено решение задачи из примера 5.3.1, полученное в системе TORA с применением метода северо-западного угла.
Рис. 5.4. Решение в системе TORA транспортной задачи из примера 5.3.1
Средство Excel Поиск решения. Ввод данных транспортной модели в рабочую книгу Excel не вызывает затруднений. На рис. 5.5 показан пример решения задачи из примера 5.3.1 (файл ch5SolverTransportation.xls). Этот шаблон может быть использован для решения моделей, которые состоят из не более 10 пунктов отправления и не более 10 пунктов назначения. Рабочий лист состоит из разделов входных и выходных данных. В разделе входных данных обязательно должны содержаться следующие данные: количество пунктов отправлений (ячейка ВЗ), количество пунктов назначений (ячейка В4), транспортная таблица, т.е. матрица стоимостей (диапазон В6:К15)6, названия пунктов отправления (диапазон А6:А15), названия пунктов назначения (диапазон В5:К5), объемы предложения (диапазон L6:L15) и спрос (диапазон В16:К16). В разделе выходных данных (диапазон В20:К29) содержится оптимальное решение в матричном виде, которое вычисляется автоматически. Соответствующее значение общей стоимости вычислено в ячейке А19. Размер модели был ограничен до 10 х 10 для того, чтобы все данные поместились на экране. Ниже приведем подробные объяс-нения того, как можно создать в Excel табличную модель, размер которой регулируется пользователем.
На рис. 5.5 часть строк этого диапазона и диапазона В20:К29 скрыты. — Прим. ред.
5.3. Решение транспортной задачи
А | В | : С, | D | Е _ | L.H. | _L. | L i_ | _ К | L | |||
Входные данные | ||||||||||||
К-во п. отправления | з | «максимум 10 | ||||||||||
А | К-во п. назначения | «MafO"-vM 10 | ||||||||||
Матрица стоимостей | D1 | D2 | D3 | Предложение | ||||||||
S1 | ||||||||||||
S2 | ||||||||||||
S3 | 4 | 16 - | ||||||||||
Спрос | ||||||||||||
Оптимальное решение | ||||||||||||
Общая стоимость | ||||||||||||
D1 | D2 | D3 | D4 | |||||||||
S1 | ||||||||||||
S2 | ||||||||||||
S3 | ||||||||||||
Пг)игк рршениа | №1 |
Установить целевую ячейку: |$А$19~4j Равной: с иэсииальному значению *~ значению: (о"
миидаильному знамению , Изменяя ячейки:
■ Ограничения:
Выполнить I Закрыть |
Предпопоасить I
$8$30:$К$30 - t6$16:$K$16 tLt20:$L$29 = $L$6:$L$15 ~3
Рис. 5.5. Решение задачи из примера 5.3.1, полученное с помощью средства Поиск решения
После ввода исходных данных откройте средство Поиск решения и щелкните на кнопке ОК. Решение появится в диапазоне В20:К29.
Для создания транспортной модели в рабочий лист необходимо ввести следующие формулы.
Формула вычисления значения целевой функции в ячейке А19: =СУММПРОИЗВ(В6:К15;В20:К29).
Объемы перевозки от пунктов отправления: в ячейку L20 сначала введится формула =СУММ(В20:К20), после чего она копируется в диапазон L21:L29.
Объемы перевозки до пунктов назначения: в ячейку В30 вводится формула =СУММ(В20:В29), затем она копируется в диапазон С30:К30.
Ограничения модели связаны с отношениями объемов перевозок и объемов предложения в пунктах отправления и спросом в пунктах назначения. Ограничения формируются в виде следующих равенств
$L$20:$L$29=$L$6:$L$15 $В$30:$К$30=$В$16:$К$16
Глава 5. Транспортные модели
На основе этих входных данных можно получить еще одну интересную формулировку транспортной модели. Различия проявятся в структуре выходных данных и в определении параметров средства Поиск решения. В модель также добавится раздел промежуточных вычислений — ключевая часть табличной модели. В нашей модели разделы выходных данных и промежуточных вычислений будут полностью автоматизированы. Пользователю достаточно будет ввести параметры средства Поиск решения (и исходные данные, конечно же).
На рис. 5.6 показано решение примера 5.2.5 с использованием новой формулировки задачи (файл ch5SolverNetworkBasedTransportation.xls). Решение задачи находится в столбце В (начиная с ячейки В22) под заголовком "Поток". Названия маршрутов были сгенерированы автоматически на основе названий пунктов отправления и назначения в разделе входных данных и находятся в столбце А (начиная с ячейки А22 и ниже).
Основные формулы, с помощью которых вычисляется оптимальное решение, содержатся в разделе промежуточных вычислений. В столбце Е (начиная с ячейки Е21) находятся порядковые номера пунктов отправлений и назначений, причем сначала идут пункты отправлений. Эта информация, а также номера пунктов отправлений и назначений используются для числового представления путей модели. Например, пункт отправления 1 (ячейка Н21) в пункт назначения 4 (ячейка 121) обозначают путь от пункта отправления S1 в пункт назначения D1.
На основе информации из столбцов Н и I в столбце F (начиная с ячейки F21) строятся формулы для вычисления потока через узел. В частности, в ячейке F21 содержится следующая формула5.
=СУММЕСЛИ($Н$21:$Н$121;$Е21;$В$22:$В$122)--СУММЕСЛИ($1$21:$1$121;$Е21;$В$22:$В$122)
Затем эта формула была скопирована в диапазон F22:F121.
В сущности, в формуле СУММЕСЛИ вычисляется чистый поток (вход-выход) через каждый узел, перечисленный в столбце Е (начиная с ячейки Е21). Важно отметить, что в данной стандартной транспортной модели с помощью формулы можно эффективно вычислить сумму выходных потоков из каждого пункта отправления или сумму входных потоков в каждый узел пункта назначения. Несмотря на то что необходимо использовать две отдельные формулы для представления выходных потоков в пунктах отправлений и входных потоков в пунктах назначений, при использовании основных сетевых моделей (которые обсуждаются в главе 6) все вычисления можно объединить в одной формуле.
Для каждого узла величина потока вычисляется по формуле:
входной поток - выходной поток = чистый поток.
Нам необходимо определить объем чистого потока для каждого узла. В столбце G (начиная с ячейки G21) содержатся данные, которые автоматически копируются из раздела входных данных с помощью функции ИНДЕКС. Заметьте, что чистый поток для узла пункта отправления имеет положительный знак, в то время как для узлов пунктов назначения чистый поток имеет отрицательное значение. Необходимость использования отрицательных значений чистого потока для узлов пунктов назначений обусловлена тем, как определен поток через узлы сети в столбце F.
Идея использования функции СУММЕСЛИ для представления баланса потоков в сети позаимствована из статьи С. Т. Ragsdale, "Solving Network Flow Problems in a Spreadsheet", COMPASS News, No. 2, Spring 1996, pp. 4, 5. Остальная часть таблицы, частичная автоматизация вычислений и раздел промежуточных вычислений разработаны автором.
5.3. Решение транспортной задачи
А | В | с | D | ■F | G | н 1 | J | К | L | |||
Общая сетевая модель | |||||||||||
2 'Входные данные: | |||||||||||
3 К-ьо п. отправления | «маюимум 10 | ||||||||||
К-во п. назначения | «максимум 10 | ||||||||||
Пр.способностьи пи" | п | «■«иэиениетенз | V, е<-ли v4>"weeTCH пр способность | ||||||||
Матрица «дельных стоимостей | |||||||||||
■1!. | D1 | D2 | D3 | D4 | Предложение | ||||||
ь | S1 _ | ||||||||||
S2 | |||||||||||
to | S3 | ||||||||||
'18 | Спрос | 1S | |||||||||
Оптимальное решение: | Промежуточные вычисления: | ||||||||||
Общая стоимость ■ | Имя | Узел | поток | Спрос | От | В | Уд. стоимость | ||||
От-в | Поток | Пр спос. | S1 | , 1S | |||||||
S1-D1 | 99959» | S2 | 1 25 | ||||||||
SI - D2 | В | S3 | |||||||||
S1 - D3 | -S | -5 | 7 11 | ||||||||
S1 -D4 | D2 | -15 | -15 | 4 ,2 5 7 | |||||||
S2-D1 | D3 | -15 | -IS | ||||||||
S2-D2 | D4 | -15 | -is | ||||||||
ы | S2-D3 | IS | 20' | ||||||||
S2-D4 | |||||||||||
S3-D1 | S | ||||||||||
Ж | S3-D2 | ||||||||||
S3-D3 | 16. | ||||||||||
S3-D4 | S | ||||||||||
34 • |
Поиск решения
Установить целевую «чайку: Равной:-;.<"" досииальному значению С
Р ницинальному значению Иэиенаяячейф!'.-
|$В$22:$В$ЗЭ
JB$22:$B$33 <=$C$22:$C$33 |F$21:$F$27 = $G$21:$G$27
Рис. 5.6. Решение примера 5.3.1, полученное с использованием сетей
Можно также наложить ограничения на пропускные способности на различных маршрутах транспортной модели. Сначала введите латинскую букву "у" (без кавычек) в ячейку В5. В результате будут созданы и соответствующим образом озаглавлены ячейки в диапазоне N8:W17, в которые можно ввести ограничения пропускной способности маршрута. Если пропускная способность маршрута не ограничена, то соответствующая ячейка должна остаться пустой. После этого ограничения пропускной способности с помощью функции ИНДЕКС будут автоматически скопированы в столбец С (начиная с ячейки С22). Число 999 999 представляет неограниченную пропускную способность.
Глава 5. Транспортные модели
Теперь для решения задачи осталось только задать параметры средства Поиск решения. Целевая ячейка уже содержит следующую общую формулу, которую не нужно изменять для моделей, размер которых не превышает 10 х 10.
=СУММПРОИЗВ(В22:В122;и21:Л21)
Осталось заполнить поля Изменяя ячейки и Ограничения в диалоговом окне средства Поиск решения. На рис. 5.6 показано, что в поле Изменяя ячейки содержится ссылка $В$22:$В$33.
В строках 22:33 содержатся все возможные маршруты модели, которые изменяются в соответствии с размерами транспортной задачи.
Ограничения можно сформулировать следующим образом.
Поток на маршруте (/, ;) < пропускной способности на маршруте (/, j), (входной поток - выходной поток) через узел = спрос в узле
Для первого множества ограничений левая часть выражения соответствует значениям в столбце В (начиная с ячейки В22), а правая часть — значениям в столбце С (начиная с ячейки С22). Например, на рис. 5.6 первой группе ограничений соответствует такое выражение.
$В$22:$В$33 <= $С$22:$С$33
Значения для второго множества ограничений содержатся в столбцах F и G, а выражение выглядит следующим образом.
$F$21:$F27 = $G$21:$G$27
Условия неотрицательными можно задать в диалоговом окне Параметры поиска решения, которое появляется после щелчка на кнопке Параметры в окне средства Поиск решения6.
Решение транспортной задачи в программе LINGO. На рис. 5.7 представлена модель LINGO для транспортной задачи примера 5.3.1 (файл ch5LingoTrans.lg4). Используемые в модели имена не нуждаются в пояснениях. Обратите внимание на то, что имена пунктов отправлений (SI, S2, S3) и пунктов назначений (Dl, D2, D3, D4) можно ввести так, как показано на рисунке, вместо того, чтобы включать их в раздел DATA (Данные) модели.
УПРАЖНЕНИЯ 5.3.2
1. В табл. 5.26 приведены исходные данные (в долл.) для трех транспортных задач.
a) Используя начальное решение, полученное методом северо-западного угла, найдите их оптимальное решение.
b) В программе TORA сравните начальные решения, полученные методами северо-западного угла, наименьшей стоимости и Фогеля.
c) Решите задачи с помощью средства Excel Поиск решения.
d) Решите задачи с помощью программы LINGO.
Следует быть внимательным, поскольку стандартная версия средства Поиск решения, входящая в поставку Excel, обладает некоторыми "особенностями". Если в диалоговом окне Параметры поиска решения установить слишком маленькое значение в поле Относительная погрешность (например, 0,000000001), будет выдано непонятное сообщение о том, что модель не удовлетворяет условиям линейности. Кроме того, выходные результаты будет легче читать, если их округлить (например, число 1Е-14 должно отображаться как 0, а 9,999999999 — как 10).
5.3. Решение транспортной задачи
MODEL:
TITLE: Transportation model, Example 5.3-1; SETS:
from/SI S2 S3/:supply; to/Dl D2 D3 D4/:demand; route (from, to) :cost, ship; ENDSETS
MIN=0SUM(route (I, J) .-cost (I, J) *ship(l,J)) ; !subject to; 0FOR (
to(J):0SUM(from(I):ship(I,J))=demand(J) ) ;
@FOR (
from (I) :@SUM(to (J) : ship (I, J) )=supply(I) ) ;
DATA:
supply=15 25 10; demand=5 15 15 15; cost=10 2 20 11 12 7 9 20 4 14 16 18; ENDDATA END
Рис. 5.7. Решение транспортной задачи в программе LINGO
Таблица 5.26
а) | Ь) | с) | |||||||||
— | |||||||||||
2. В транспортной модели (табл. 5.27) суммарный спрос превышает общий объем предложений. Пусть штрафы за необеспеченный единичный спрос составляют 5 долл. для первого пункта назначения, 3 — для второго и 2 — для третьего.
a) Используя начальное решение, полученное методом наименьшей стоимости, найдите оптимальное решение.
b) Решите задачу с помощью средства Excel Поиск решения.
c) Решите задачу с помощью программы LINGO.
Таблица 5.27
5 1 7
6 4 6 3 2 5 75 20 50
3. Пусть в транспортной модели из предыдущего упражнения штрафы не назначаются, но спрос третьего пункта назначения должен быть выполнен полностью. Найдите оптимальное решение в программах a) TORA, b) Excel, с) LINGO.
10 80 15
Глава 5. Транспортные модели
4. В несбалансированной транспортной модели (табл. 5.28) стоимость хранения единицы груза, не отправленного из первого, второго и третьего пунктов отправления, составляет соответственно 5, 4 и 3 долл. Найдите оптимальное решение, если из второго пункта отправления груз должен быть вывезен полностью. Для получения начального решения используйте метод Фогеля.
Таблица 5.28
1 2 1 3 4 5
2 3 3 30 20 20
5. Пусть в транспортной модели размерностью 3x3 через хц обозначено количество грузов, перевозимых из пункта отправления i в пункт назначения
а через ctj — стоимость перевозки. Объемы грузов в первом, втором и третьем пунктах отправления равны соответственно 15, 30 и 85 единиц. Спрос в первом, втором и третьем пунктах назначения составляет 20, 30 и 80 единиц соответственно. Предположим, что начальное решение, полученное методом северо-западного угла, оптимально со следующими значениями потенциалов: и1 = -2, и2 = 3, и3 = 5, и, = 2, v2 = 5 и v3 = 10.
a) Найдите оптимальную стоимость транспортных расходов.
b) Определите наименьшие значения ctj для всех небазисных переменных, сохраняющих оптимальность решения, полученного методом северозападного угла.
6. В табл. 5.29 показано вырожденное базисное решение некой транспортной задачи. Пусть этому решению соответствуют следующие значения потенциалов: и, = 1, и2 = -1, vl = 2, Dj = 2hds= 5. Стоимости перевозок для всех нулевых (базисных и небазисных) переменных хц представим в виде
с,. = / + ;9, -со < 0 < со.
Таблица 5.29
10 20 20
20 40 30
a) Найдите значение целевой функции, если данное решение оптимально.
b) Укажите значения параметра 0, гарантирующие оптимальность данного решения. (Совет. Определите местоположение нулевых базисных переменных.)
7. Дана следующая задача.
Т п
Минимизировать z = ^^с,у*,у при выполнении ограничений
"£jr,y>a„ / = 1,2,...,т,
5.3. Решение транспортной задачи
|>„>г>,, у = 1,2,..., и,
хц > 0, для всех i и у.
Логично предположить, что оптимальное решение обращает первое или второе множество неравенств в равенства (в зависимости от того, будет ли выполняться неравенство ^я,>^6уили 2^e, <^fy). Контрпример, опровергающий это предположение, представлен в табл. 5.30.
Таблица 5.30
1 1 2 6 5 1
2 7 1
Покажите, что данное предположение приводит к "оптимальному" решению хп = 2, х12 = 3, х22 = 4, х23 = 2, дающему 2 = 27 долл., которое хуже решения хи = 2, х12 = 7, х23 = 6 с г = 15 долл.
5.3.4. Интерпретация метода потенциалов как симплекс-метода
Связь метода потенциалов с симплекс-методом основывается на соотношениях двойственности задач ЛП (раздел 4.2). Исходя из специальной структуры транспортной задачи (обратитесь к примеру 5.5.1, где показано, как транспортную задачу представить в виде стандартной задачи ЛП), двойственная ей задача будет записана в следующем виде.
т п
Максимизировать z = '^aluj + '^bjvi
при ограничениях
и. + Vj < cti для всех i и ui и v. — свободные переменные,
где
"а — предложение (объем грузов) пункта отправления i, Ь — спрос (заявка на грузы) пункта назначения
с — стоимость перевозки единицы груза из пункта отправления i в пункт назначения
ut — двойственная переменная, соответствующая ограничению на предложение пункта отправления i,
vj — двойственная переменная, соответствующая ограничению на спрос пункта назначения /.
Из формулы 2 раздела 4.2.4 следует, что коэффициент при переменной х в выражении целевой функции должен быть равен разности между левой и правой частями соответствующего ограничения двойственной задачи, т.е. величине ut + v - су. Но как мы уже знаем, эта величина должна быть равной нулю для каждой базисной переменной. Другими словами, для этих переменных должно выполняться равенство ut + v = ctj. Имея т + п - 1 таких равенств и ре
5 6
Глава 5. Транспортные модели
шая их как систему линейных уравнений (после присвоения какой-либо переменной произвольного значения, например и, = 0), находим значения потенциалов и, и i>y. Вычислив значения потенциалов, далее определяем вводимую в базис переменную среди всех небазисных как переменную, имеющую наибольшее положительное значение величины и, + и - с1}.
Присвоение одной из двойственных переменных произвольного значения (например, и1 = 0) противоречит представлениям раздела 4.2.3, поскольку это присвоение показывает, что, возможно, решение двойственной задачи (определяется вычисленными значениями двойственных переменных (потенциа-лов)) не единственное. В действительности противоречия здесь нет, и решение упражнения 5.3.3.2 объясняет, — почему.
УПРАЖНЕНИЯ 5.3.3
1. Запишите двойственную задачу для транспортной модели из примера 5.3.5 (см. табл. 5.21). Вычислите оптимальное значение целевой функции двойственной задачи с помощью значений двойственных переменных, приведенных в табл. 5.25, и покажите, что найденное значение совпадает с оптимальным значением целевой функции транспортной задачи.
2. В транспортной модели одной из двойственных переменных присваивается произвольное значение. Это означает, что одному и тому же базисному решению прямой задачи соответствует не единственный набор значений двойственных переменных. Это противоречит положениям теории линейного программирования, где значения двойственных переменных вычисляются как произведение вектора коэффициентов целевой функции, стоящих при базисных переменных, на обратную матрицу соответствующего базиса (см. метод 1 из раздела 4.2.3). Покажите, что в транспортной модели обратная матрица всегда определяется однозначно, в то время как вектор коэффициентов целевой функции, стоящих при базисных переменных, можно определить не единственным образом. В частности, покажите, что если коэффициенты ctj заменить на сц + k для всех i и у, где k — произвольная константа, то оптимальные значения переменных хц не изменятся. Покажите, что присвоение одной двойственной переменной произвольного значения эквивалентно прибавлению к коэффициентам ctj некой константы к.
5.4. ЗАДАЧА О НАЗНАЧЕНИЯХ
"Лучший работник для выполнения данной работы" — вот подходящее краткое описание задачи о назначениях. В этой задаче необходимо назначить работников на определенные работы; каждый работник может выполнять любую работу, хотя и с различной степенью мастерства. Если на некоторую работу назначается работник именно той квалификации, которая необходима для ее выполнения, тогда стоимость выполнения работы будет ниже, чем при назначении на данную работу работника неподходящей квалификации. Цель задачи — найти оптимальное (минимальной стоимости) распределение работников по всем заявленным работам.
5.4. Задача о назначениях
Общая задача назначения п работников на п работ представлена в табл. 5.31. Таблица 5.31
Работы | |||||
п | |||||
С11 | С12 | ||||
С21 | С22 | С2п | |||
Работники | |||||
п | Сл1 | Сл2 | Спп | ||
Коэффициент сц равен стоимости назначения работника i на работу j (i,j= 1, 2, n). То, что количество работников равно количеству работ, не является ограничением общности, поскольку всегда можно ввести в модель фиктивных работников или фиктивные работы.
Задача о назначениях является частным случаем транспортной задачи, в которой работники соответствуют пунктам отправления, а работы — пунктам назначения. В данном случае все величины спроса и предложения равны 1. Стоимость "транспортировки" рабочего i на работу равна ctj. Задачу о назначениях можно эффективно решить точно так же, как и транспортную задачу. Вместе с тем тот факт, что все величины спроса и предложения равны 1, привел к разработке упрощенного алгоритма решения, названного венгерским методом. Хотя этот метод не имеет никакого отношения к транспортной задаче, он, как и метод потенциалов, все равно основан на симплекс-методе.
5.4.1. Венгерский метод7
Для представления этого метода используем два примера. Интерпретация венгерского метода как симплекс-метода будет рассмотрена в следующем разделе.
Пример 5.4.1
Трое детей Джоя Клини — Джон, Карен и Терри — желают подзаработать немного денег на школьную экскурсию в местный зоопарк. М-р Клини выбрал три вида работ, которые дети выполнить могут за определенную плату: стрижка газона, уборка гаража и мойка семейного автомобиля. Чтобы избежать ненужных споров между детьми, он опросил каждого (конечно, по секрету), сколько за каждый вид работ они хотят получить. Результаты опроса (в долл.) представлены в табл. 5.32.
Таблица 5.32
Стрижка газона | Уборка гаража | Мойка машины | |
Джон | |||
Карен | |||
Терри |
Классический венгерский метод, как и методы решения транспортной задачи, первоначально разрабатывался для ручных вычислений и сегодня, в основном, представляет только исторический интерес. В настоящее время нет необходимости в таких "быстрых" ручных вычислительных алгоритмах, поскольку задачи этого класса эффективно решаются как обычные задачи ЛП с помощью мощной современной вычислительной техники.
Глава 5. Транспортные модели
Основываясь на этой информации, как распределить работы между детьми с минимальными (денежными) потерями для м-ра Клини?
Решим эту задачу о назначениях венгерским методом.
Этап 1. В исходной матрице стоимостей определим в каждой строке минимальную стоимость и отнимем ее от других элементов строки.
Этап 2. В матрице, полученной на первом этапе, найдем в каждом столбце минимальную стоимость и отнимем ее от других элементов столбца.
Этап 3. Оптимальным назначениям будут соответствовать нулевые элементы, полученные на предыдущем этапе.
Обозначим через pt и qt минимальные стоимости соответственно в строке / и столбце у, определенные на первом и втором этапах описанного выше алгоритма. Минимальные стоимости по строкам находятся по исходной матрице стоимостей, как показано в табл. 5.33.
Таблица 5.33
Стрижка газона Уборка гаража Мойка машины Минимумы по строкам
Джон | Pi =9 | |||
Карен | Р2 = 9 | |||
Терри | Рз = 8 |
Теперь вычтем минимальные стоимости из элементов соответствующих строк, и в результате получим следующую матрицу.
Таблица 5.34
Стрижка газона | Уборка гаража | Мойка машины | |
Джон | |||
Карен | |||
Терри | |||
Минимумы по столбцам | oi =0 | <fe=1 | <й = 0 |
На втором этапе алгоритма находим минимальные значения по столбцам и вычитаем их из элементов соответствующих столбцов. В результате получим матрицу, представленную в виде табл. 5.35.
Таблица 5.35
Стрижка газона | Уборка гаража | Мойка машины | |
Джон | |||
Карен | |||
Терри |
В последней матрице подчеркнутые нулевые элементы определяют оптимальное решение: Джон будет убирать в гараже, Карен подстригать газон, а Терри достанется мойка машины. Эти работы обойдутся м-ру Клини в 9 + 10 + 8 = 27 долл. Отметим, что эта сумма всегда равна (р, + р2 + р3) + (<?, + q2 + q3) = (9 + 9 + 8) + + (0 + 1 + 0) = 27 долл. (Доказательство этого приведено в следующем разделе.)
5.4. Задача о назначениях
Алгоритм венгерского метода в предыдущем примере завершен успешно, поскольку нулевые элементы в конечной матрице соответствуют допустимому решению (в том смысле, что каждому ребенку назначена в точности одна работа). В некоторых случаях нулевые элементы, полученные на первом и втором этапах венгерского метода, не позволяют непосредственно получить допустимое решение. Тогда необходимы дополнительные действия. Следующий пример демонстрирует это.
Пример 5.4.2
Предположим, что в примере 5.4.1 представлено четыре ребенка и четыре вида работ. Таблица 5.36 соответствует матрице стоимостей для этой задачи (данные представлены в долл.).
Таблица 5.36
Виды работ | ||||
Дети 2 | ||||
Применение первого и второго этапов алгоритма к исходной матрице (при этом рх =1, рг = 7, р3 = 4, р4 = 5, <7, = 0, q2 = 0, q3 = 3 и q4 = 0) приводит к следующей матрице (проверьте!).
Таблица 5.37
Виды работ 2 3
Дети
В последней матрице расположение нулевых элементов не позволяет назначить каждому ребенку одну работу. Например, если мы назначим первому ребенку работу 1, из дальнейшего рассмотрения исключается первый столбец, и тогда в строке третьего ребенка не окажется нулевых элементов. Подобные проблемы можно разрешить, добавив к описанной в примере 5.4.1 процедуре следующий этап.
Этап 2.1. Если после выполнения первого и второго этапов описанного алгоритма не получено допустимое решение, выполните следующие действия.
i) В последней матрице проведите минимальное число горизонтальных и вертикальных прямых по строкам и столбцам, чтобы вычеркнуть в матрице все нулевые элементы.
Глава 5. Транспортные модели
ii) Найдите наименьший невычеркнутый элемент и вычтите его из остальных невычеркнутых элементов и прибавьте к элементам, стоящим на пересечении проведенных на предыдущем этапе прямых.
iii) Если новое распределение нулевых элементов не позволяет построить допустимое решение, повторите этап 2.1. В противном случае перейдите к третьему этапу алгоритма.
В задаче данного примера выполнение этапа 2.1 требует проведения трех прямых и приводит к табл. 5.38.
Таблица 5.38
Виды работ 3
Дети
Наименьший невычеркнутый элемент (он подчеркнут) равен 1. Этот элемент вычитаем из остальных невычеркнутых элементов и прибавляем к элементам, стоящим на пересечении прямых. В результате получим матрицу, представленную в виде табл. 5.39.
Таблица 5.39
Виды работ | ||||
Дети 2 | ||||
Оптимальное решение, показанное в таблице подчеркнутыми нулями, предлагает первому ребенку работу 1, второму — работу 3, третьему — работу 2 и четвертому — работу 4. Соответствующее значение целевой функции равно 1 + 10+ 5+ 5 = 21 долл. Такое же значение можно получить путем суммирования значений /г, и ^ и значения элемента, наименьшего среди всех невычеркнутых: (1 + 7 + 4 + 5) + (0 + 0 + 3 + 0) + (1) = 21 долл.
УПРАЖНЕНИЯ 5.4
1. Решите задачи о назначениях, представленные в табл. 5.40.
Таблица 5.40
а)
б) | |||||||
5.4. Задача о назначениях
a) Решите задачи венгерским методом.
b) С помощью программы TORA решите задачи как транспортные.
c) Запишите задачи как задачи ЛП и решите их с помощью программы TORA.
d) Решите задачи в Excel с помощью шаблона ch5SolverTransportation.xls.
e) Решите задачи с помощью программы LINGO.
2. Дана следующая задача распределения четырех рабочих по четырем видам работ. Различная квалификация рабочих обусловливает различную стоимость выполнения работ. Стоимость работ (долл.) приведена в табл. 5.41. Отметим, что первый рабочий не может выполнять работу 3, а третий — работу 4. Найдите оптимальное решение.
Таблица 5.41
Виды работ | ||||
— | ||||
Рабочие 2 | ||||
— | ||||
3. Пусть в задаче из предыдущего упражнения можно ввести нового (пятого) рабочего, способного выполнить любой вид работ со стоимостью соответственно 60, 45, 30 и 80 долл. Будет ли экономически выгодным заменить одного из "работающих" рабочих новым?
4. Пусть в задаче из упражнения 2 необходимо ввести новый вид работы, который может выполнить любой из четырех рабочих, со стоимостью соответственно 20, 10, 20 и 80 долл. Будет ли новая работа более выгодной по сравнению с имеющимися?
5. Бизнесмен должен сделать четыре поездки туда и обратно из своего головного офиса в Далласе в филиал в Атланте (данные о поездках приведены в табл. 5.42). Билет туда и обратно, т.е. Даллас-Атланта-Даллас, стоит 400 долл. Скидка 25% предоставляется тогда, когда даты отправления и прибытия совпадают с выходными днями (суббота и воскресенье). Если в билете между датами прибытия в Атланту и отправления из нее не менее 21 дня, то скидка увеличивается до 30%. Билет в одну сторону (в любом направлении) стоит 250 долл. Какую минимальную сумму может потратить на билеты бизнесмен?
Таблица 5.42
Дата отправления из Далласа Дата возвращения в Даллас Понедельник, 3 июня Пятница, 7 июня
Понедельник, 10 июня Среда, 12 июня
Понедельник, 17 июня Пятница, 21 июня
Вторник, 25 июня Пятница, 28 июня
6. На рис. 5.8 схематически показан план обрабатывающего цеха с четырьмя старыми станками, обозначенными квадратиками с номерами от 1 до 4. В цех будут
Глава 5. Транспортные модели
поставлены четыре новых станка, местоположение которых обозначено кружочками с буквами а, Ь, с и d. Необходимо так разместить новые станки, чтобы минимизировать суммарные перемещения обрабатываемых деталей между новыми и старыми станками. В табл. 5.43 показана интенсивность перемещения деталей между новыми и старыми станками. Детали перемещаются по сторонам прямоугольника, противоположными вершинами которого будут старый и новый станки. Например, расстояние (в метрах) между станком 1 и станком, расположенным в позиции Ь, равно 30 + 20 = 50 м.
О 10 20 30 40 50 60 70 80 Рис. 5.8. Расположение станков в задаче упражнения 6
Таблица 5.43
Старые станки
Новые станки 2 3
5.4.2. Интерпретация венгерского метода как симплекс-метода
Задачу о назначении п работников на п видов работ можно представить в виде задачи линейного программирования следующим образом. Обозначим через с(/ стоимость назначения работника i на работу у и определим
1, если работник / назначен на работу j, 0, в противном случае.
5.5. Транспортная модель с промежуточными пунктами
Получаем следующую задачу ЛП.
Минимизировать z = ^d^cjjxij
при выполнении условий
2>, = 1, i = l, 2,..., и.
5>„=1, У = 1,2,..., и, л:. = 0 или 1.
Оптимальное решение данной задачи ЛП останется неизменным, если ко всем элементам какой-либо строки или столбца матрицы стоимостей (с,.) прибавить константу или вычесть ее из этих элементов. Для доказательства этого обозначим через р, и <7у константы, вычитаемые из элементов строки i и столбца у" соответственно. Таким образом, стоимость с изменится и будет равна
cij=cij-p-qj.
Теперь покажем, что при коэффициентах целевой функции с' получим те же оптимальные значения переменных jc ., что и при коэффициентах сц.
ХХ<с, - а - я,)**=ХХсл - X р. (х** ] ~ X?; f Х-^1= = XXca - X p> 0)_ X^ (0=ХХсл _ константа-
Поскольку новая целевая функция отличается от исходной только на константу, оптимальные значения переменных х должны быть одинаковы в обоих случаях. Таким образом показано, что этапы 1 и 2 венгерского метода, где р. вычитаются из элементов строки г, а ^— из элементов столбца у матрицы стоимостей, приводят к эквивалентной задаче о назначениях. Поэтому, если нулевые элементы в матрице стоимостей, созданные на этапе 1 и 2 венгерского метода, позволяют найти допустимое решение, то оно должно быть оптимальным, поскольку стоимости в измененной матрице стоимостей не могут быть меньше нуля.
Если созданные нулевые элементы не могут привести к допустимому решению (как в примере 5.4.2), необходимо выполнить описанный выше этап 2.1. Эта процедура опять основывается на симплекс-методе, и ее корректность можно обосновать, исходя из теории двойственности (глава 4) и теоремы о дополняющей нежесткости (глава 7). Пока мы не будем углубляться в это.
То, что сумма Хр, +Xj^j равна оптимальному значению целевой функции,
вытекает из того, что данная сумма представляет собой целевую функцию двойственной задачи. Это видно из представленного в разделе 5.3.4 выражения для целевой функции задачи, двойственной транспортной задаче. (Подробности см. в [1].)
5.5. ТРАНСПОРТНАЯ МОДЕЛЬ С ПРОМЕЖУТОЧНЫМИ ПУНКТАМИ
Транспортная модель с промежуточными пунктами соответствует реальной ситуации, когда между исходными и конечными пунктами перевозок имеются промежуточные пункты для временного хранения грузов (транзитные пункты). Эта
Глава 5. Транспортные модели
модель более общая, чем обычная транспортная, где перевозки осуществляются непосредственно между пунктами отправления и назначения.
В этом разделе показано, как транспортную модель с промежуточными пунктами можно преобразовать (и решить) в обычную транспортную с помощью введения буфера.
Пример 5.5.1
Два автомобильных завода Р1 и Р2 связаны с тремя дилерами Dl, D2 и D3, имеющими два транзитных (перевалочных) центра Т1 и Т2, как показано на рис. 5.9. Заводы Р1 и Р2 производят 1000 и 1200 автомобилей. Заказы дилеров составляют соответственно 800, 900 и 500 автомобилей. Стоимость перевозок одного автомобиля (в сотнях долларов) показана на рис. 5.9 возле соответствующих дуг.
1000-
120О
Рис. 5.9. Транспортная модель с промежуточными пунктами
В данной модели перевозки транзитом могут осуществляться через любые пункты (в соответствии с направлением дуг на схеме), даже через некоторые пункты назначения. Поэтому пункты, которым соответствуют как входящие, так и выходящие дуги на схеме рис. 5.9, назовем транзитными (пункты 71, 72, D1 и D2). Оставшиеся будут либо истинными пунктами отправления (пункты Р1 и Р2), либо истинными пунктами назначения (в данной схеме такой пункт только один — D3). Эту модель можно преобразовать в обычную транспортную модель с шестью пунктами отправления (PI, Р2, 71, Т2, Dl и D2) и пятью пунктами назначения (71, 72, Dl, D2 и D3). Объемы спроса и предложения, соответствующие этим пунктам отправления и назначения, вычисляются следующим образом.
Объем предложения истинного пункта отправления = объем исходного предложения.
Объем предложения транзитного пункта — объем исходного предложения + объем буфера.
Объем спроса истинного пункта назначения = объем исходного спроса.
Объем спроса транзитного пункта = объем исходного спроса + + объем буфера.
Объем буфера должен быть таким, чтобы вместить объем всего предложения (или спроса). Обозначим через В объем буфера. Тогда
5.5. Транспортная модель с промежуточными пунктами
В — общий объем предложения (или спроса) = = 1000 + 1200 = (или = 800 + 900 + 500) = = 2200 автомобилей.
Построенная транспортная модель, эквивалентная исходной задаче, представлена в табл. 5.44. Решение этой транспортной модели, полученное с помощью программы TORA (файл ch5ToraTrarisshipEx5-5-l.txt), показано на рис. 5.10. Отметим "транзитный" эффект решения: дилер D2 получает 1400 автомобилей, из них 900 оставляет себе (для удовлетворения своего спроса), а 500 отправляет дилеру D3.
Таблица 5.44
Л | ||||||
Р1 | м | М | м | |||
Р2 | : м | М | м | |||
Л | м | В | ||||
М | М | в | ||||
D1 | М | м | м | в | ||
М | м | м | в | |||
В | в | 800 + В | 900 + В |
1000-
1200-
(D3)--500
Рис.6.10. Решение транспортной задачи с промежуточными пунктами
УПРАЖНЕНИЯ 5.5'
1. В транспортной сети, показанной на рис. 5.11, осуществляются перевозки из пунктов 1 и 2 в пункты 5 и 6 через транзитные пункты 3 и 4. Стоимость перевозок показана на этом же рисунке.
a) Постройте транспортную модель с промежуточными пунктами и соответствующую ей обычную транспортную модель.
b) Решите транспортную задачу и покажите на схеме маршруты доставки грузов из пунктов отправления в пункты назначения.
° Для решения задач этого набора упражнений используйте программы TORA, Excel (со средством Поиск решения) и LINGO.
Глава 5. Транспортные модели
10О
200-
Рис. 5.11. Схема маршрутов для упражнения 1
2. Пусть в предыдущей задаче пункты 1 и 2 связаны транспортной магистралью со стоимостью перевозки в 1 долл., а стоимость перевозки из пункта 1 в пункт 3 возросла до 5 долл. Найдите оптимальную схему перевозок.
3. На рис. 5.12 показана транспортная сеть перевозок автомобилей между тремя заводами (пункты 1, 2 и 3) и тремя дилерами (пункты 6, 7 и 8) через два распределительных центра (пункты 4 и 5). Стоимость перевозок (в сотнях долларов) представлена на рисунке возле соответствующих дуг.
1000
-1100
-1000
-1200
Рис. 5.12. Схема маршрутов для упражнения 3
a) Сформулируйте задачу как транспортную задачу.
b) Предположим, распределительный центр (пункт 4) может продать 240 автомобилей самостоятельно. Найдите новое оптимальное решение.
4. Две фабрики" снабжают определенной продукцией три магазина. Объемы производства фабрик равны 200 и 300 единиц продукции, а потребности магазинов составляют 100, 200 и 50 единиц продукции. Исследуется возможность перевозок продукции через промежуточные пункты. Основываясь на величинах стоимости перевозок (в долл.), приведенных в табл. 5.45, найдите оптимальный план перевозок.
Таблица 5.45
Фабрики | Магазины | ||||||
Фабрики | j | ||||||
! | |||||||
Магазины | " г | ||||||
I | |||||||
I |
5.5. Транспортная модель с промежуточными пунктами
5. На рис. 5.13 показана сеть нефтепроводов. Узлы этой сети соответствуют насосным и принимающим станциям. Расстояния (в милях) между станциями приведены на схеме сети. Стоимость транспортировки одного галлона нефти между двумя станциями пропорциональна длине нефтепровода, соединяющего эти станции. Сформулируйте транспортную задачу с промежуточными пунктами и найдите ее оптимальное решение для перекачки нефти из пунктов 1 и 3 в пункты 2 и 4.
50 ООО 60 ООО (галлоны)
Рис. 5.13. Сеть нефтепроводов для упражнения 5
6. Задача нахождения кратчайшего пути. Чтобы найти кратчайший путь между пунктами 1 и 7 транспортной сети, показанной на рис. 5.14, сформулируйте транспортную задачу с промежуточными пунктами. Расстояния между промежуточными пунктами показаны на рисунке. (Совет. Пусть в пункте 1 есть предложение в одну единицу, а в пункте 7 — спрос такой же величины.)
Рис. 5.14. Транспортная сеть для упражнения 6
7. В модели примера 5.5.1 обозначим через xtj объем перевозок между пунктами i и у. Задачу этого примера можно сформулировать как задачу линейного программирования, у которой каждому пункту транспортной сети соответствует ограничение в виде равенства. Сформулируйте задачу ЛП и покажите, что в ограничениях коэффициенты а1} при переменных xtj определяются следующим образом.
238 Глава 5. Транспортные модели
1, для ограничения /, а ■ = < - I, для ограничения j, О, в противном случае.
8. Агентство по трудоустройству имеет заявки на рабочих на следующие пять месяцев.
Месяц 1 2 3 4 5
К-во рабочих 100 120 80 170 50
Стоимость рабочей силы зависит от длительности периода трудоустройства (см. следующую таблицу).
Длительность периода трудоустройства (месяцы) 1 2 3 4 5
Стоимость трудоустройства одного рабочего (долл.) 100 130 180 220 250
Сформулируйте задачу линейного программирования. Затем путем алгебраических преобразований ограничений покажите, что эту задачу можно свести к транспортной. Найдите ее оптимальное решение. (Совет. Для преобразования общей задачи ЛП в транспортную используйте представление коэффициентов ограничений из предыдущего упражнения.)
ЛИТЕРАТУРА
1. BazaraaM., Jarvis J., SheraliM. Linear Programming and Network Flows, 2nd ed., Wiley, New York, 1990.
2. Dantzig G. Linear Programming and Extensions, Princeton University Press, Princeton, N. J., 1963. (Русский перевод: Данциг Дж. Линейное программирование, его применение и обобщение. — М.: Прогресс, 1966.)
3. Murty К. Network Programming, Prentice Hall, Upper Saddle River, N. J., 1992.
Литература, добавленная при переводе
1. Ашманов С. А. Линейное программирование. — М.: Наука, 1981.
2. Гольштейн Е. Г., Юдин Д. Б. Задачи линейного программирования транспортного типа. — М.: Наука, 1969.
КОМПЛЕКСНЫЕ ЗАДАЧИ
5.1. 9 Компания ABC Cola имеет завод по производству безалкогольных напитков в северной части островного государства Таванда. Напитки выпускаются в трех различных упаковках: возвращаемых стеклянных бутылках, алюминиевых консервных банках и невозвращаемых пластмассовых бутылках. Стеклянные бутылки складируют и затем возвращают на завод для повторного использования.
Задача построена на материалах статьи Cheng Т., Chlu С. "A Case Study of Production Expansion Planning in a Soft-Drink Manufacturing Company", Omega, Vol. 16, No. 6, pp. 521-532,1988.
Комплексные задачи 239
Поскольку спрос на безалкогольные напитки постоянно растет, компания ABC Cola планирует построить еще один завод в центральной или южной части острова. Прогнозируемый спрос на безалкогольные напитки (выраженный в количестве упаковок) на следующие пять лет показан в табл. 5.46.
Таблица 5.46
Года | |||||
Вид упаковки | |||||
Возвращаемая стеклянная | |||||
Банки | |||||
Невозвращаемая пластмассовая |
Плановые возможности существующего завода по выпуску продукции показаны в табл. 5.47.
Таблица 5.47
Года | |||||
Вид упаковки | |||||
Возвращаемая стеклянная | |||||
Банки | |||||
Невозвращаемая пластмассовая |
Компания имеет 6 складов для стеклотары: N1 и N2 расположены в северной части острова, С1 и С2 — в центральной части, S1 и S2 — в южной. Доля стеклотары, обрабатываемой каждым складом, показана в табл. 5.48.
Таблица 5.48
Склад Доля (в процентах)
N1 85
N2 15
С1 60
С2 40
51 80
52 20
Из общего количества стеклотары примерно 60% приходится на северные склады, 15% — на центральные и 25% — на южные.
Компания планирует построить новый завод по производству безалкогольных напитков либо в центре, либо на юге острова. Транспортные расходы, рассчитанные на одну упаковку напитка в стеклянных бутылках, приведены в табл. 5.49. Транспортные расходы на напитки в банках и пластмассовых бутылках составляют соответственно 60 и 70% от аналогичных расходов на транспортировку напитков в стеклянных бутылках.
Определите, где целесообразнее построить новый завод: в центральном районе или на юге острова?
240 Глава 5. Транспортные модели
Таблица 5.49
Транспортные расходы на одну упаковку (долл.)
Склад | Существующий завод | Завод в центральном районе | Завод в южном районе |
N1 | 0,80 | 1,30 | 1,90 |
N2 | 1,20 | 1,90 | 2,90 |
С1 | 1,50 | 1,05 | 1,20 |
С2 | 1,60 | 0,80 | 1,60 |
S1 | 1,90 | 1,50 | 0,90 |
S2 | 2,10 | 1,70 | 0,80 |
5.2. В ходе строительства международного аэропорта в г. Брисбен для укрепления болотистого грунта необходимо произвести песчаную насыпь общим объемом 1 355 000 м3 на девяти площадках аэропорта. Песок берется из расположенных вблизи аэропорта пяти небольших карьеров. Некоторые строительные подразделения, обслуживающие стройплощадки, выделены для прокладки дорог внутри аэропорта и по его периметру. Для насыпи песок берется со стройплощадок. Расстояние (в сотнях метров) от карьеров до стройплощадок показано в табл. 5.50, где также приведены потребности в песке стройплощадок и возможности карьеров (в 100 м3).
Таблица 5.50
Возможн карьер | ||||||||||
8,5 | ||||||||||
1,5 | ||||||||||
ОО | ||||||||||
оо | ||||||||||
Потребности |
стройплощадок_
a) Управление строительством оценивает объем перемещения песка [объем (м3) х расстояние (100 м)] в 2 495 000 соответствующих единиц при стоимости 0,65 долл. за единицу. Достаточно ли приведенного объема песка для выполнения запланированных работ?
b) Управление строительством пришло к выводу, что подвоз песка к некоторым стройплощадкам не возможен до завершения строительства дороги вокруг аэропорта (длиной 900 м). В табл. 5.51 значком "х" обозначены стройплощадки, к которым не возможен подвоз песка (из определенных карьеров) до завершения строительства окружной дороги. Как организовать подвоз песка с учетом этого ограничения?
Задача построена на материалах статьи Perry С, Ilief М. "Earth Moving on Construction Projects", Interfaces, Vol. 13, No. 1, pp. 79-84, 1983.
Комплексные задачи
Таблица 5.51
1 2 3 4 5
5.3. Десять лет назад некий предприниматель организовал доставку оптовых фармацевтических товаров с центрального склада (ЦС) на автофургонах. С тех пор значительно увеличился спрос на фармацевтическую продукцию и появились два новых товарных склада (С1 и С2). Центральный склад, традиционно имеющий больший ассортимент товаров, время от времени выручал новые склады в обеспечении кратковременных заказов. Такая взаимовыручка со временем привела к тому, что треть своих заказов новые склады выполняли за счет товаров, полученных с центрального склада. В табл. 5.52 приведено количество заказов, выполняемых тремя товарными складами для шести потребителей, обозначенных П1-П6.
Таблица 5.52
Маршрут
Откуда
Куда
Количество заказов
ЦС | С1 | |
ЦС | С2 | |
ЦС | П1 | |
ЦС | П2 | |
ЦС | ПЗ | |
С1 | П1 | |
С1 | ПЗ | |
С1 | П4 | |
С1 | П5 | |
С2 | П2 | |
С2 | П5 | |
С2 | П6 |
Предприниматель постоянно совершенствовал способы доставки заказов, придерживаясь принципа децентрализации, когда каждому товарному складу была определена своя зона доставки товара, покрывающая всех потребителей, получающих заказы с этого склада. Но управляющие складами комплектовали заказы согласно своим "сферам влияния". Например, менеджеры центрального склада гордились тем, что поставляют товары не только обычным потребителям, но и другим товарным складам. Поэтому зачастую разные склады поставляют заказы одному и тому же потребителю.
В табл. 5.53 приведены расстояния (в милях) между складами и потребителями. В автофургон обычно помещается 100 товарных заказов.
Оцените организацию перевозок предпринимателя и предложите свой план перевозок.
242 Глава 5. Транспортные модели
Таблица 5.53
ЦС | С1 | С2 | П1 | П2 | ПЗ | П4 | П5 | П6 | |
цс | |||||||||
С1 | |||||||||
С2 | |||||||||
П1 | |||||||||
П2 | |||||||||
ПЗ | |||||||||
П4 | |||||||||
П5 | |||||||||
П6 |
5.4. Авиакомпания KeeWee выполняет полеты между городами А и В согласно расписанию, приведенному в табл. 5.54. Экипаж может вернуться в свой город не ранее чем через 90 минут после прилета либо на следующий день. Составьте расписание назначения экипажей на рейсы, минимизирующее суммарное время простоев всех экипажей.
Таблица 5.54
Рейс Отлет из города А Прилет в город В Рейс Отлет из города В Прилет в город А
А1 | 6:00 | 8:30 | В1 | 7:30 | 9:30 |
А2 | 8:15 | 10:45 | В2 | 9:15 | 11:15 |
A3 | 13:30 | 16:00 | ВЗ | 16:30 | 18:30 |
А4 | 15:00 | 17:30 | В4 | 20:00 | 22:00 |
ГЛАВА 6
СЕТЕВЫЕ МОДЕЛИ
В рамках теории исследования операций рассматривается большое количество практических задач, которые можно сформулировать и решить как сетевые модели. Недавние исследования показывают, что не менее 70% реальных задач математического программирования можно представить в виде сетевых моделей. Приведем несколько конкретных примеров.
1. Проектирование газопровода, соединяющего буровые скважины морского базирования с находящейся на берегу приемной станцией. Целевая функция соответствующей модели должна минимизировать стоимость строительства газопровода.
2. Поиск кратчайшего маршрута между двумя городами по существующей сети дорог.
3. Определение максимальной пропускной способности трубопровода для транспортировки угольной пульпы от угольных шахт к электростанциям.
4. Определение схемы транспортировки нефти от пунктов нефтедобычи к нефтеперерабатывающим заводам с минимальной стоимостью транспортировки.
5. Составление временного графика строительных работ (определение дат начала и завершения отдельных этапов работ).
Решение приведенных задач (как и многих аналогичных) требует применения различных сетевых оптимизационных алгоритмов. В этой главе будут рассмотрены следующие пять алгоритмов.
1. Алгоритм нахождения минимального остовного дерева (пример 1).
2. Алгоритм поиска кратчайшего пути (пример 2).
3. Алгоритм определения максимального потока (пример 3).
4. Алгоритм минимизации стоимости потока в сети с ограниченной пропускной способностью (пример 4).
5. Алгоритм определения критического пути (пример 5).
Задачи, вытекающие из перечисленных примеров, можно сформулировать и решать как задачи линейного программирования. Однако специфическая структура этих задач позволяет разработать специальные сетевые алгоритмы, более эффективные, чем стандартный симплекс-метод.
Глава 6. Сетевые модели
6.1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ
Сеть состоит из множества узлов, связанных дугами (или ребрами).1 Таким образом, сеть описывается парой множеств (N, А), где ТУ — множество узлов, а А— множество ребер. Например, сеть, показанная на рис. 6.1, описывается следующим образом.
#={1,2,3,4, 5},
А= {(1, 2), (1, 3), (2, 3), (2, 5), (3, 4), (3, 5), (4, 2), (4, 5)}.
Рис. 6.1. Пример сети
С каждым типом сети связан определенный тип потоков (например, транспортный поток нефти в нефтепроводах или автомобильные потоки в сети городских дорог). В общем случае потоки в сети ограничены пропускной способностью ее ребер, которая может быть как конечной, так и бесконечной.
Ребро называется направленным, или ориентированным (и в этом случае ребро будем называть дугой), если в одном направлении возможен только положительный поток, а в противоположном — только нулевой. В ориентированной сети все ребра ориентированы.
Путем называется последовательность различных ребер, соединяющих два узла, независимо от направления потока в каждом ребре. Путь формирует цикл, если начальный и конечный узлы совпадают. Например, на рис. 6.1 дуги (2, 3), (3, 4) и (4, 2) составляют цикл. Ориентированный цикл — это цикл, в котором все дуги ориентированы в определенном направлении.
Связная сеть — такая сеть, у которой любые два узла связаны по крайней мере одним путем. На рис. 6.1 показан именно такой тип сети. Деревом называется связная сеть, содержащая подмножество узлов исходной сети и не имеющая циклов. Остовное дерево'— это дерево, содержащее все узлы сети. На рис. 6.2 показаны дерево и остовное дерево для сети из рис. 6.1.
Дерево Остовное дерево
Рис. 6.2. Дерево и остовное дерево для сети из рис. 6.1
1 Чтобы согласовать используемую здесь терминологию с терминологией теории графов, составляющей основу рассматриваемых сетей, будем называть дугами только ориентированные ребра. Термин "ребро" (как более общее понятие) часто будем употреблять для обозначения как ребер, так и дуг. Также отметим очевидное соответствие между узлом сети и вершиной графа. — Прим. ред.
6.2. Алгоритм построения минимального остовного дерева
УПРАЖНЕНИЯ 6.1
1. Для каждой сети, показанной на рис. 6.3, определите: а) путь, б) цикл, в) ориентированный цикл, г) дерево, д) остовное дерево.
Рис. 6.3. Сети для упражнения 1
2. Определите множества N и А для сетей, представленных на рис. 6.3.
3. Нарисуйте сеть, заданную множествами
4. N = {1,2, 3,4, 5,6},
5. А = {(1, 2), (1, 5), (2, 3), (2, 4), (3, 5), (3, 4), (4, 3), (4, 6), (5, 2), (5, 6)}.
6. Дано восемь равных квадратиков, расположенных в три линии: на первой находится два квадратика, на второй — четыре и на третьей — два. Квадратики на каждой линии располагаются симметрично вертикальной оси. Необходимо приписать каждому квадратику число от 1 до 8 так, чтобы смежные (по вертикали, горизонтали или диагонали) квадратики не имели последовательных номеров. Сформулируйте эту задачу как сетевую, и на основе сетевого представления задачи разработайте алгоритм симметричного решения.
7. Троих заключенных в сопровождении трех стражников необходимо переправить на лодке из Сан-Франциско в тюрьму на острове Алкатрас для исполнения приговора. Лодка не может перевести более двух человек одновременно. Заключенные определенно сильнее стражников, если их количество в какой-то момент превысит количество стражников. Разработайте сетевую модель, позволяющую найти такую последовательность перевозки заключенных, чтобы не возникло каких-либо инцидентов между заключенными и стражниками.
6.2. АЛГОРИТМ ПОСТРОЕНИЯ МИНИМАЛЬНОГО ОСТОВНОГО ДЕРЕВА
Алгоритм построения минимального остовного дерева предполагает соединение всех узлов сети с помощью путей наименьшей длины. Типичной задачей, для решения которой необходим такой алгоритм, является создание (проектирование) сети дорог с твердым покрытием, соединяющих населенные пункты в сельской местности, где дороги, соединяющие два каких-либо пункта, могут проходить через другие населенные пункты. Наиболее экономичный проект дорожной системы должен минимизировать общую длину дорог с твердым покрытием, при этом желаемый результат можно получить с помощью алгоритма построения минимального остовного дерева.
Опишем процедуру выполнения этого алгоритма. Обозначим через N = {1, 2, п} множество узлов сети и введем новые обозначения:
Глава 6. Сетевые модели
Ск — множество узлов сети, соединенных алгоритмом после выполнения k-й итерации этого алгоритма,
Ct — множество узлов сети, не соединенных с узлами множества Ск после выполнения k-й итерации этого алгоритма. Этап 0. Пусть С0 = 0 и С0 = N.
Этап 1. Выбираем любой узел i из множества С0 и определяем С, = {i}, тогда С, =N - {i}. Полагаем k = 2.
Основной этап к. В множестве Ск_1 выбираем узел /, который соединен самой короткой дугой с каким-либо узлом из множества Ск_х. Узел / присоединяется к множеству Ск_х и удаляется из множества Ск_1. Таким образом, Ск = Ск_, + {;'*}, С, = Cj_, - {;'*}.
Если множество Ск пусто, то выполнение алгоритма заканчивается. В противном случае полагаем k — k + 1 и повторяем последний этап.
Пример 6.2.1
Телевизионная компания планирует подключение к своей кабельной сети пяти новых районов. На рис. 6.4 показана структура планируемой сети и расстояния (в милях) между районами и телецентром. Необходимо спланировать наиболее экономичную кабельную сеть.
Рис. 6.4. Кабельная сеть телевизионной компании
Чтобы начать выполнение алгоритма построения минимального остовного дерева, выберем узел 1 (или любой другой узел). Тогда
С,-{1}и С, ={2,3,4,5,6}.
Последовательные итерации выполнения алгоритма представлены на рис. 6.5. Здесь тонкими линиями показаны ребра, соединяющие узлы, принадлежащие множествам С* и Ct , среди которых ищется ребро с минимальной стоимостью
(длиной). Это найденное ребро показано пунктирной линией. Толстыми сплошны-•т линиями обозначены ребра, соединяющие узлы множества Q (и которые ранее )зн чались пунктирными линиями).
6.2. Алгоритм построения минимального остовного дерева
Итерация 1
Итерация 2
Итерация 3
Итерация 4
Итерация 5
Альтернативные ребра
Итерация 6 (Минимальное остовное дерево)
Рис. 6.5. Последовательные итерации выполнения алгоритма построения минимального остовного дерева
Например, на первой итерации ребро (1,2) имеет наименьшую стоимость (т.е. наименьшее расстояние между пунктами сети) среди всех других ребер, соединяющих узел 1 с узлами множества С, (отметим, что узел 6 не имеет ребра, непосредственно
соединяющего его с узлом 1). Поэтому/ = 2 и С2 = {1, 2}, С2 = {3, 4, 5, 6}.
Решение в виде минимального остовного дерева получено на 6-й итерации (рис. 6.5). Минимальная длина кабеля для построения такой сети равна 1 + 3 + 4 + 4- 3 + 5 = 16 милям.
Глава 6. Сетевые модели
Программа TORA может находить минимальное остовное дерево. Для этого из меню Main menu выберите команду Network modelsOMinimal spanning tree (Сетевые моделиОМинимальное остовное дерево). Далее из меню SOLVE/MODIFY выберите команду Solve problemOGo to output screen (Решить задачу■=>Перейти к выходному окну). В выходном окне щелкните на кнопке Starting node (Начальный узел) и затем на кнопке Next iteration (Следующя итерация) или All iterations (Все итерации) для получения решения. Чтобы получить решение с новым начальным узлом, щелкните на кнопке Starting node. На рис. 6.6 показаны выходные результаты для задачи из примера 6.2.1 (файл ch6ToraMinSpanEx6-2-l.txt).
4Mb wokUwattte>Vh61uie*Auttp«t«t / 1 ut
NETWORK MODEL1-.
Рис. 6.6. Построенное минимальное остовное дерево для задачи из примера 6.2.1 УПРАЖНЕНИЯ 6.2
1. Решите задачу из примера 6.2.1, начиная с узла 5 (вместо узла 1), и убедитесь, что будет получено то же самое решение.
2. Найдите минимальное остовное дерево для сети из примера 6.2.1 при выполнении каждого из следующих условий в отдельности.
a) Узлы 5 и 6 связаны 2-мильным кабелем.
b) Узлы 2 и 5 не связаны.
c) Узлы 2 и 6 связаны 4-мильным кабелем.
d) Узлы 1 и 2 связаны кабелем длиной 8 миль.
e) Узлы 3 и 5 связаны кабелем длиной 2 мили.
f) Узел 2 не связан непосредственно с узлами 3 и 5.
6.2. Алгоритм построения минимального остовного дерева
3. В модульных перевозках груженые трейлерные платформы перевозятся по железной дороге между специальными перевалочными железнодорожными терминалами, где платформы снова присоединяются к трейлерам и далее следуют к потребителям по автомобильным дорогам. На рис. 6.7 показаны основные железнодорожные терминалы Соединенных Штатов и существующие железнодорожные пути между ними. Выделите сегменты железных дорог так, чтобы связать все железнодорожные терминалы и минимизировать суммарную стоимость перевозок трейлерных платформ (стоимость перевозок пропорциональна длине железнодорожных путей).
Рис. 6.7. Сеть для задачи из упражнения 3
4. На рис. 6.8 показаны расстояния между платформами, добывающими газ в открытом море, и приемным пунктом, расположенным на берегу. Поскольку платформа 1 ближе остальных к берегу, она оснащена необходимым оборудованием для перекачки газа от остальных платформ к приемному пункту. Спроектируйте сеть трубопроводов минимальной длины, соединяющую приемный пункт со всеми добывающими платформами.
Приемный пункт
Рис. 6.8. Сеть для задачи из упражнения 4
Глава 6. Сетевые модели
5. Предположим, что в предыдущей задаче (рис. 6.8) все добывающие платформы разбиты на две группы в зависимости от давления газа в скважинах: к группе с высоким давлением газа относятся платформы 2, 3, 4 и 6, с низким давлением — 5, 7, 8 и 9. Из-за разницы в давлении газопроводы от платформ разных групп нельзя соединять между собой. В то же время газопроводы от этих групп могут подсоединяться к приемному пункту через платформу 1. Определите минимальную сеть трубопроводов для данной ситуации.
6. Компания производит 15 типов изделий на 10 станках. Она планирует сгруппировать станки так, чтобы минимизировать "несходство" операций, выполняемых на каждой группе станков. Мерой "несходства" между станками i и у служит величина йц, вычисляемая по формуле
где пц — количество изделий, обрабатываемых как на станке i, так и на станке у, тц — количество изделий, обрабатываемых только на станке i или только на станке у.
В следующей таблице показано, изделия каких типов на каких станках обрабатываются.
Станок | Типы изделий |
1,6 | |
2, 3, 7, 8, 9, 12, 13, 15 | |
3, 5, 10, 14 | |
2, 7, 8,11,12,13 | |
3, 5, 10, 11, 14 | |
1,4, 5, 9, 10 | |
2, 5, 7, 9, 10 | |
3, 4, 15 | |
4, 10 | |
3, 8, 10, 14, 15 |
a) Сформулируйте данную задачу как сетевую.
b) Покажите, что разбить множество станков на группы можно, решив задачу нахождения минимального остовного дерева.
c) Решите данную задачу для разбиения станков на две и три группы.
6.3. ЗАДАЧА ПОИСКА КРАТЧАЙШЕГО ПУТИ
Данная задача состоит в определении в транспортной сети кратчайшего пути между заданными исходным пунктом и пунктом назначения. Такую модель можно использовать для описания разнообразных ситуаций, как показано в следующем разделе.
6.3. Задача поиска кратчайшего пути 251 6.3.1. Практические примеры задачи поиска кратчайшего пути
Пример 6.3.1. Замена оборудования
Компания по прокату автомобилей разрабатывает план по обновлению парка своих машин на следующие пять лет (2001-2005 гг.). Каждый автомобиль должен проработать не менее одного и не более трех лет. В следующей таблице приведена стоимость замены автомобиля в зависимости от года покупки и срока эксплуатации.
Стоимость замены (долл.) в зависимости от срока эксплуатации | |||
Год покупки | |||
— | |||
— | — |
Задачу можно сформулировать как сетевую с пятью узлами с номерами от 1 до 5, соответствующими годам 2001-2005. Из узла 1 (2001 год) дуги идут только к узлам 2, 3 и 4, поскольку автомобиль может эксплуатироваться не менее одного и не более трех лет. Дуги из других узлов интерпретируются аналогично. Стоимости дуг равны стоимостям замены автомобилей. Решение задачи эквивалентно нахождению кратчайшего пути между узлами 1 и 5.
На рис. 6.9 показана построенная сеть. С помощью программы TORA находим кратчайший путь 1->3->5 (показан на рис. 6.9 жирными линиями). Это решение означает, что автомобили, приобретенные в 2001 году (узел 1), будут эксплуатироваться 2 года, до 2003 года (узел 3), затем они будут заменены новыми, которые будут эксплуатироваться до конца 2005 года. Общая стоимость замены составит 5400 + 7100= 12 500 долл.
Рис. 6.9. Задача замены оборудования как задача поиска кратчайшего пути
Глава 6. Сетевые модели
Пример 6.3.2. Самый надежный маршрут
М-р Разумник ежедневно ездит на работу на автомобиле. Закончив в свое время полный курс по теории исследования операций, он легко определил самый короткий путь от дома до работы. К сожалению, данный маршрут усиленно патрулируется нарядами полиции, и автомобиль Разумника часто останавливают за превышение скорости (как ему кажется, не обоснованно). Таким образом, самый короткий путь оказался не самым быстрым. Поэтому м-р Разумник планирует разработать новый маршрут, на котором он имел бы самую высокую вероятность не быть остановленным полицией. Схема сети дорог, по которой м-р Разумник может добраться от дома до работы, показана на рис. 6.10. На этой же схеме приведены вероятности не быть остановленным для каждого сегмента сети дорог. Вероятность не быть остановленным на всем пути следования автомобиля Разумника равна произведению вероятностей не быть остановленным на каждом сегменте выбранного пути. Например, вероятность не быть остановленным на маршруте 1—»3—»5—»7 равна 0,9 х 0,3 х 0,25 = 0,0675. Таким образом, м-ру Разумнику необходимо решить задачу выбора маршрута, который максимизировал бы вероятность не быть остановленным.
Рис. 6.10. Сетевая модель
Эту задачу можно сформулировать как задачу нахождения кратчайшего пути, если вместо вероятностей использовать логарифмы вероятностей. Тогда произведение вероятностей преобразуется в сумму логарифмов вероятностей: если рп=р1х-р2х ... хрк — вероятность не быть остановленным на маршруте 1—>2—>к, тогда
log plk = log р, + log р2 + ... + log рк.
С точки зрения математики задача максимизации вероятности р1к эквивалентна задаче максимизации величины ogplk. Поскольку ogpn<0, задача максимизации величины logpu эквивалентна задаче минимизации -logpu. Заменив на рис. 6.10 вероятности рк на величины -ogpk, получаем сеть (рис. 6.11), к которой можно применить алгоритм определения кратчайшего пути.
Рис. 6.11. Сетевая модель для задачи поиска кратчайшего пути
6.3. Задача поиска кратчайшего пути
С помощью программы TORA находим кратчайший путь для полученной сети: 1-»3-»5-»7 с соответствующей "длиной" пути 1,1707 (=-logp17). Таким образом, максимальная вероятность не быть остановленным равнар17 = 0,0675.
Пример 6.3.3. Головоломка о трех бидонах
Восьмилитровый бидон заполнен некой жидкостью, а два бидона емкостью 5 и 3 литра пусты. Необходимо разделить 8 литров жидкости на две равные части, используя только три имеющихся бидона. Какое минимальное количество переливаний из бидона в бидон надо сделать, чтобы достичь желаемого результата?
Вы, вероятно, уже нашли решение этой головоломки. Вместе с тем ее можно решить как задачу о нахождении кратчайшего пути.
В этой сетевой модели каждый узел будет соответствовать объемам жидкости в 8-, 5- и 3-литровом бидонах. Начальным узлом будет (8, 0, 0), а конечным — (4, 4, 0). Новый узел получается из текущего при однократном переливании жидкости из одного бидона в другой.
На рис. 6.12 показаны различные маршруты, ведущие от начального узла (8, 0, 0) к конечному (4, 4, 0). Таким образом, наша головоломка сведена к задаче определения кратчайшего пути между узлами (8, 0, 0) и (4, 4, 0).
Рис. 6.12. Головоломка о трех бидонах как задача вычисления кратчайшего пути
Оптимальное решение, показанное в нижней части рис. 6.12, требует семи переливаний из бидона в бидон.
УПРАЖНЕНИЯ 6.3.1
1. Создайте заново модель замены оборудования из примера 6.3.1, предполагая, что автомобиль до замены должен эксплуатироваться не менее 2-х и не более 4-х лет. Стоимость замены автомобилей в 2001-2005 годах приведена в следующей таблице.
Глава 6. Сетевые модели
Стоимость замены (долл.) в зависимости от срока эксплуатации | |||
Год покупки | |||
— | |||
— | — |
2. На рис. 6.13 показана коммуникационная сеть между двумя приемно-передающими станциями 1 и 7. Возле каждой дуги этой сети указаны вероятности передачи сообщений без потерь по этим дугам. Необходимо найти маршрут от станции 1 к станции 7 с максимальной вероятностью успешной передачи сообщений. Сформулируйте эту задачу как поиск кратчайшего пути и решите ее с помощью программы TORA.
Рис. 6.13. Сеть для задачи из упражнения 2
3. Тостер старой конструкции имеет две подпружиненные дверцы на петлях, размещенные с ^обеих сторон тостера. Ломтик хлеба помещается в тостер с одной стороны и дверца закрывается, затем другой ломтик хлеба загружается в тостер с противоположной стороны. После того как одна сторона ломтика хлеба подрумянится, он переворачивается. Задача заключается в определении последовательности операций (помещение ломтика хлеба, поджаривание одной стороны, переворачивание ломтика в тостере и извлечение готового хлеба из тостера), необходимых для поджаривания трех ломтиков хлеба за минимально возможное время. Сформулируйте эту задачу как определение кратчайшего пути, используя следующие данные о времени вы-
полнения различных операций.
Операция Время (секунды) Помещение ломтика хлеба в тостер 3 Поджаривание одной стороны ломтика 30 Переворачивание ломтика в тостере 1 Извлечение ломтика из тостера 3
6.3. Задача поиска кратчайшего пути
4. Планирование производства. Компания продает некую продукцию, спрос на которую в следующие 4 месяца составит 100, 140, 210 и 180 единиц соответственно. Компания может удовлетворить любой помесячный спрос на продукцию и даже спрос на два и более месяцев вперед. В последнем случае необходимо платить 1,20 долл. за хранение единицы избыточно произведенной продукции в течение месяца. Покупная цена единицы продукции в следующие 4 месяца будет равна 15, 12, 10 и 14 долл. соответственно. Стоимость переналадки оборудования для выполнения заказа составляет 200 долл. Компания хочет разработать такой производственный план, чтобы минимизировать расходы на выполнение заказов, покупку продукции и ее хранение. Сформулируйте задачу как поиск кратчайшего пути и найдите ее оптимальное решение с помощью программы TORA.
5. Задача о рюкзаке. Путешественник, собираясь в путь, пытается поместить в свой рюкзак (объемом 5 кубических футов) наиболее необходимые в путешествии вещи. Есть три вещи, объемом соответственно 2, 3 и 4 кубических фута, необходимость в которых оценивается (по 100-балльной шкале) в 30, 50 и 70 баллов. Сформулируйте эту задачу как сетевую, где необходимо определить самый длинный путь, и найдите ее оптимальное решение. {Совет. Узел в этой сети можно определить как пару [i, и], где i — номер выбираемой вещи, a v — свободный объем рюкзака, оставшийся после выбора t-й вещи.)
6.3.2. Алгоритм определения кратчайшего пути
В этом разделе представлены два алгоритма для решения задачи поиска кратчайшего пути как в сетях, имеющих циклы, так и в сетях, не имеющих циклов.
1. Алгоритм Дейкстры.
2. Алгоритм Флойда.
Алгоритм Дейкстры разработан для поиска кратчайшего пути между заданным исходным узлом и любым другим узлом сети. Алгоритм Флойда более общий, поскольку он позволяет одновременно найти минимальные пути между любыми двумя узлами сети.
Алгоритм Дейкстры. В процессе выполнения этого алгоритма при переходе от £зла i к следующему узлу / используется специальная процедура пометки ребер. Обозначим через и, кратчайшее расстояние от исходного узла 1 до узла i, через dtj — длину ребра (г, j). Тогда для узла / определим метку [ujt i] следующим образом.
[Uj, i] = [ut + dh, i],d(/>0
Метки узлов в алгоритме Дейкстры могут быть двух типов: временные и постоянные. Временная метка впоследствии может быть заменена на другую временную, если будет найден более короткий путь к данному узлу. Когда же станет очевидным, что не существует более короткого пути от исходного узла к данному, статус временной метки изменяется на постоянный.
Вычислительная схема алгоритма состоит из следующих этапов.
Этап 0. Исходному узлу (узел 1) присваивается постоянная метка [0, —]. Полагаем i = 1.
Этап 1.
а) Вычисляются временные метки [и1 + dtj, i] для всех узлов у, которые можно достичь непосредственно из узла I и которые не имеют постоянных ме
Глава 6. Сетевые модели
ток. Если узел уже имеет метку [и, k], полученную от другого узла k, и, если ut + dtj < ujt тогда метка [uy, k] заменяется на ul + dtj, i],
b) Если все узлы имеют постоянные метки, процесс вычислений заканчивается. В противном случае выбирается метка [ur, s] с наименьшим значением расстояния иг среди всех временных меток (если таких меток несколько, то выбор произволен). Полагаем i = г и повторяем этап i.
Пример 6.3.4
На рис. 6.14 показана транспортная сеть, состоящая из пяти городов (расстояния между городами (в милях) приведены возле соответствующих дуг сети). Необходимо найти кратчайшие расстояния от города 1 (узел 1) до всех остальных четырех городов.
(2_ | ||
100/ 20 , / 10/ | jT) 50 | |
СЛ 30»Vi | ||
V У V У | У | |
Рис. 6.14. Пример сети для алгоритма Дейкстры | ||
Этап 0. | Назначаем узлу 1 постоянную метку [0, —]. | |
Этап 1. | Из узла 1 можно достичь узлов 2 и 3. Вычисляем метки для этих узлов, в результате получаем следующую таблицу меток. | |
Узел | Метка | Статус метки |
[0,-] | Постоянная | |
[0 + 100, 1] = [100, 1] | Временная | |
[0 + 30, 1] = [30, 1] | Временная | |
>• Среди узлов 2 и 3 узел 3 имеет | наименьшее значение расстояния | |
(и3 = 30). Поэтому статус метки этого узла изменяется на " постоянная". | ||
Этап 2. | Из узла 3 (последнего узла с постоянной меткой) можно попасть в узлы 4 и 5. Получаем следующий список узлов. | |
Узел | Метка | Статус метки |
[0,-] | Постоянная | |
[100, 1] | Временная | |
[30, 1] | Постоянная | |
[30 + 10, 3] = [40, 3] | Временная | |
[30 + 60, 3] = [90, 3] | Временная |
6.3. Задача поиска кратчайшего пути
Временный статус метки [40, 3] узла 4 заменяется постоянным (ut = 40).
Этап 3. Из узла 4 можно достичь узлов 2 и 5. После вычисления меток получим следующий их список.
Узел Метка Статус метки
1 [0, —] Постоянная
2 [40 + 15, 4] = [55, 4] Временная
3 [30,1] Постоянная
4 [40,3] Постоянная
5 [90, 3] или [40 + 50, 4] = [90, 4] Временная
Временная метка [100, 1], полученная узлом 2 на втором этапе, изменена на [55, 4]. Это указывает на то, что найден более короткий путь к этому узлу (проходящий через узел 4). На третьем этапе узел 5 получает две метки с одинаковым значением расстояния иь = 90.
Этап 4. Из узла 2 можно перейти только в узел 3, но он уже имеет постоянную метку, которую нельзя изменить. Поэтому на данном этапе получаем такой же список меток, как и на предыдущем, но с единственным изменением: метка узла 2 получает статус постоянной. С временной меткой остается только узел 5, но, так как из этого узла нельзя попасть ни в какой другой, процесс вычислений заканчивается.
Алгоритм позволяет проводить вычисления непосредственно на схеме сети, как показано на рис. 6.15.
ШЮтт^) [55,4](3)
() = шаг
Рис. 6.15. Применение алгоритма Дейкстры
Кратчайший маршрут между узлом 1 и любым другим узлом определяется начиная с узла назначения путем прохождения их в обратном направлении с помощью информации, представленной в постоянных метках. Например, для определения кратчайшего маршрута между узлами 1 и 2 получаем такую обратную последовательность узлов
(2) -> [55, 4] -> (4) -> [40, 3] -> (3) -> [30, 1] -> (1). Таким образом, получаем путь 1 —> 3 —> 4 —> 2 общей длиной 55 миль.
Глава 6. Сетевые модели
Программа TORA также может применять алгоритм Дейкстры для решения сетевых задач. Для этого в меню SOLVE/MODIFY выберите команду Solve problem^ Iterations1^ Dijkstra's algoritm (Алгоритм Дейкстры). На рис. 6.16 показано выходное окно TORA с решением задачи из примера 6.3.4 (файл ch6ToraDijkstraEx6-3-4.txt).
netwofk MGDF1S
Рис. 6.16. Решение задачи из примера 6.3.4
УПРАЖНЕНИЯ 6.3.2
1. На рис. 6.17 показана транспортная сеть, соединяющая восемь городов, и расстояния между ними. Найдите кратчайшие маршруты между следующими городами.
a) Города 1 и 8.
b) Города 1 и 6.
c) Города 4 и 8.
d) Города 2 и 6.
2. Найдите кратчайшие пути между узлом 1 и всеми остальными узлами сети, представленной на рис. 6.18.
3. Найдите оптимальное решение задачи из упражнения 6.3.1.1.
4. Найдите оптимальное решение задачи из упражнения 6.3.1.2.
5. Найдите оптимальное решение задачи из упражнения 6.3.1.4.
6.3. Задача поиска кратчайшего пути
Рис. 6.17. Сеть для задачи из упражнения 1 6
Рис. 6.18. Сеть для задачи из упражнения 2
Алгоритм Флойда. Этот алгоритм более общий по сравнению с алгоритмом Дейкстры, так как он находит кратчайшие пути между любыми двумя узлами сети. В этом алгоритме сеть представлена в виде квадратной матрицы с п строками и п столбцами. Элемент (£, /) равен расстоянию dtj от узла i к узлу /, которое имеет конечное значение, если существует дуга (i, j), и равен бесконечности в противном случае.
Покажем сначала основную идею метода Флойда. Пусть есть три узла i, j и k и заданы расстояния между ними (рис. 6.19). Если выполняется неравенство dtj + djk < dllt, то целесообразно заменить путь i -> k путем i->;->ft. Такая замена (далее ее будем условно называть треугольным оператором) выполняется систематически в процессе выполнения алгоритма Флойда.
Рис. 6.19. Треугольный оператор Флойда Алгоритм Флойда требует выполнения следующих действий.
Этап 0. Определяем начальную матрицу расстояний D0 и матрицу последовательности узлов S0. Диагональные элементы обеих матриц помечаются знаком "—", показывающим, что эти элементы в вычислениях не участвуют. Полагаем k = l.
Глава 6. Сетевые модели
1 2 ... j ... п
— | di2 | dyn | |||
— | d2j | ||||
dn | da | dm | |||
dn2 | dnj | — |
1 2 ... j ... л
So =
— | j | n | ||||
j | n | |||||
/' | j | n | ||||
л | j | — |
Основной этап к. Задаем строку k и столбец k как ведущую строку и ведущий столбец. Рассматриваем возможность применения треугольного оператора ко всем элементам dtj матрицы Dk_r Если выполняется неравенство
dik + dkj < d,j> (i*k,j*kni*j), то делаем следующее:
a) создаем матрицу Dk путем замены в матрице элемента dtj суммой dlk + dkj,
b) создаем матрицу Sk, меняя в матрице S4_j элемент s, на h. Полагаем k — k + 1 и повторяем этап k.
Поясним действия, выполняемые на k-м этапе алгоритма, представив матрицу _Dk_j так, как она показана на рис. 6.20. На этом рисунке строка k и столбец k являются ведущими. Стро-ка i— любая строка с номером от 1 до А - 1, а строка р — произвольная строка с номером от k + 1 до п. Аналогично столбец / представляет любой столбец с номером от 1 до k - 1, а столбец q — произвольный столбец с номером от k + 1 до п. Треугольный оператор выполняется следующим образом. Если сумма элементов ведущих строки и столбца (показанных в квадратиках) меньше элементов, находящихся на пересечении столбца и строки (показаны в кружках), соответствующих рассматриваемым ведущим элементам, то расстояние (элемент в кружке) заменяется суммой расстояний, представленных ведущими элементами.
После реализации п этапов алгоритма определение по матрицам Dn и Sn кратчайшего пути между узлами i и j выполняется по следующим правилам.
1. Расстояние между узлами i и j равно элементу dtJ в матрице Dn.
2. Промежуточные узлы пути от узла i к узлу j определяем по матрице Sn. Пусть s0 = k, тогда имеем путь i —> k —> /. Если далее slk = k и skj = j, тогда считаем, что весь путь определен, так как найдены все промежуточные узлы. В противном случае повторяем описанную процедуру для путей от узла i к узлу k и от узла k к узлу
6.3. Задача поиска кратчайшего пути
Столбец j
Строка i
Ведущая строка
Строка р
Ведущий столбец
к
Столбец Q
Рис. 6.20. Реализация треугольного оператора
Пример 6.3.5
Найдем для сети, показанной на рис. 6.21, кратчайшие пути между любыми двумя узлами. Расстояния между узлами этой сети проставлены на рисунке возле соответствующих ребер. Ребро (3, 5) ориентированно, поэтому не допускается движение от узла 5 к узлу 3. Все остальные ребра допускают движение в обе стороны.
Рис. 6.21. Сеть для примера 6.3.5
ЭтапО. Начальные матрицы D0 и S0 строятся непосредственно по заданной схеме сети. Матрица D0 симметрична, за исключением пары элементов и d53, где d63 = се (поскольку невозможен переход от узла 5 к узлу 3).
Do 3 | So 3 | ||||||||||
— | СО | со | |||||||||
— | со | ||||||||||
со | — | — | |||||||||
СО | — | ||||||||||
со | — |
Глава 6. Сетевые модели
Этап 1. В матрице D0 выделены ведущие строка и столбец с номером k = 1.
Затемненными представлены элементы d23 и d32, единственные среди элементов матрицы D0, значения которых можно улучшить с помощью треугольного оператора. Таким образом, чтобы на основе матриц D0 и S0 получить матрицы D, и Sv выполняем следующие действия.
1. Заменяем d23 на d2X + dl3 = 3 + 10 = 13 и устанавливаем s23 = 1.
2. Заменяем d32 на d3l + dl2 = 10 + 3 = 13 и устанавливаем s32 = 1. Матрицы D, и S, имеют следующий вид.
D, 3 | Si 3 | ||||||||||
ОС | — | ||||||||||
— | — | ||||||||||
— | — | ||||||||||
.00 | — | — | |||||||||
— | — |
Этап 2. Полагаем k = 2; в матрице D; выделены ведущие строка и столбец. Треугольный оператор применяется к элементам матриц D, и выделенным затенением. В результате получаем матрицы D2 и S2.
D2 3 | s2 | ||||||||||
— | X | — | |||||||||
— | X | — | |||||||||
i:13v: | — | — | |||||||||
— | — | ||||||||||
— | — |
Этап 3. Полагаем k = 3; в матрице D2 выделены ведущие строка и столбец.
Треугольный оператор применяется к затемненным элементам матриц D2 и S2. В результате получаем матрицы D3 и S3.
D3 3 | S3 3 | ||||||||||
— | — | ||||||||||
— | — | ||||||||||
— | — | ||||||||||
— | — | ||||||||||
ой | — | . 1 | — |
6.3. Задача поиска кратчайшего пути
Этап 4. Полагаем k = 4, ведущие строка и столбец в матрице D3 выделены. Получаем новые матрицы Dt и S4.
Da 3 | s4 | ||||||||||
— | — | ||||||||||
— | — | ||||||||||
— | — | ||||||||||
— | — | ||||||||||
— | — |
Этап 5. Полагаем k — 5, ведущие строка и столбец в матрице Б4 выделены.
Никаких действий на этом этапе не выполняем; вычисления закончены.
Конечные матрицы £>4 и St содержат всю информацию, необходимую для определения кратчайших путей между любыми двумя узлами сети. Например, кратчайшее расстояние между узлами 1 и 5 равно diS = 12.
Для определения соответствующих маршрутов напомним, что сегмент маршрута (i,j) состоит из ребра (/,_/) только тогда, когда stj = j. В противном случае узлы i и j связаны, по крайней мере, через один промежуточный узел. Например, поскольку s,5 = 4 и siS = 5, сначала кратчайший маршрут между узлами 1 и 5 будет иметь вид 1 -» 4 -» 5. Но так как д-,4 ф 4, узлы 1 и 4 в определяемом пути не связаны одним ребром (но в исходной сети они могут быть связаны непосредственно). Далее следует определить промежуточный узел (узлы) между первым и четвертым узлами. Имеем su — 2 и s2i = 4, поэтому маршрут 1 -» 4 заменяем 1 -» 2 —> 4. Поскольку д-,2 = 2 hj24 = 4, других промежуточных узлов нет. Комбинируя определенные сегменты маршрута, окончательно получаем следующий кратчайший путь от узла 1 до узла 5:1-»2-»4-»5. Длина этого пути равна 12 милям.
Программа TORA также может применять алгоритм Флойда для решения сетевых задач. Для этого в меню SOLVE/MODIFY выберите команду Solve problem^ Iterations^ Floyd's algoritm (Алгоритм Флойда). На рис. 6.22 показано выходное окно TORA с решением задачи из примера 6.3.5 (файл ch6ToraFloydEx6-3-5.txt).
УПРАЖНЕНИЯ 6.3.3
1. В задаче из примера 6.3.5 определите кратчайшие пути между следующими парами узлов.
a) От узла 5 к узлу 1.
b) От узла 3 к узлу 5.
c) От узла 5 к узлу 3.
d) От узла 5 к узлу 2.
2. Примените алгоритм Флойда к сети, показанной на рис. 6.23. Заметьте, что ребра (7, 6) и (6, 4) ориентированы. Определите кратчайшие пути между следующими парами узлов.
Глава 6. Сетевые модели
- TORA D:WorkToraFilesch6ToraFloydEx6 3 5Ы
то ид орт, Ли i»i».mh— ид -и its ripii. Диктат пя
NETWORK MODELS
FLOYu S SHORTEST ROUTE ALuuRITHM Select Output Option
wo | DO | SO | |||||
N 1 | hz | N3 | N4 | N5 Hi | hz *i | N4 N5 | |
InI | ■ | 10,00 | mnn»y; | 2_3| | 4 5 | ||
№ | 1 зло | ■ | 5,00 | infinity H 1 | 4 5 | ||
Iю | mmm | 5.00, | 15,00 H 1 | ||||
N4 | 5,oo| | «,00 | ----<м1"Ш г i : 5] | ||||
Ins | ■Zu ~j | MiMyl | If IV | 4,001 | H№ 1 | _« | |
tar 1 | Dl | S1 | |||||
hi | нг | N3 | N4 | N5 hi | N2 N3 | N4 hs |
Puc. 6.22. Решение задачи из примера 6.3.5
a) От узла 1 к узлу 7.
b) От узла 7 к узлу 1.
c) От узла 6 к узлу 7.
Рис. 6.23. Сеть для задачи из упражнения 2
3. Телефонная компания обслуживает шесть удаленных друг от друга районов, которые связаны сетью, показанной на рис. 6.24. Расстояния на схеме сети указаны в милях. Компании необходимо определить наиболее эффективные маршруты пересылки сообщений между любыми двумя районами.
6.3. Задача поиска кратчайшего пути
Рис. 6.24. Сеть для задачи из упражнения 3
6.3.3. Формализация задачи поиска кратчайшего пути как задачи ЛП
В этом разделе рассмотрим две формализации задачи определения кратчайшего пути как задачи линейного программирования. Эти формализации достаточно общие в том смысле, что позволяют находить кратчайшие пути между двумя любыми узлами сети (как в алгоритме Флойда).
Пусть сеть состоит из п узлов и нужно найти кратчайший путь между некоторыми узлами s и t этой сети.
Формализация 1. В этой формализации предполагается, что в узел s входит одна единица внешнего потока и этот поток выходит через узел t сети. Обозначим
х1} — величина потока, проходящего по дуге (£, у), су — длина дуги (г, у).
Поскольку только одна единица потока может пройти через любую дугу в каждый момент времени, переменные хц должны быть двоичными (т.е. они могут принимать только значения 0 или 1). В этих обозначениях целевая функция запишется как
минимизировать ХСЛ
по всем существующим дутам (>./)
Для каждого узла определяется только одно ограничение, задающее баланс потока, проходящего через данный узел:
общий входной поток = общий выходной поток.
Формализация 2. Эта формализация фактически определяет двойственную задачу к прямой задаче, формализованной первым способом. Поскольку количество ограничений в первой формализации равно количеству узлов, двойственная задача будет иметь столько же переменных, сколько узлов в сети. Эти переменные будут свободными (т.е. могут принимать как положительные, так и отрицательные значения), так как в прямой задаче все ограничения выражаются в виде равенств.
Пусть
у. — переменная двойственной задачи, ассоциированная с узлом у.
Считая узлы s и t начальным и конечным узлами сети, двойственная задача запишется следующим образом.
Максимизировать z = у, - уг
при ограничениях
!/.-!/,< сц для всех возможных пар / и у, все yt свободные переменные.
Глава 6. Сетевые модели
Пример 6.3.6
Рассмотрим сеть из примера 6.3.4. Предположим, что необходимо определить кратчайший путь из узла 1 в узел 2. Таким образом, здесь s = 1 и t = 2. На рис. 6.25 показано, как одна единица потока входит в узел 1 и выходит из узла 2.
Рис. 6.25. Входной и выходной потоки
Первая формализация дает следующую задачу ЛП.
Х12 | Х13 | Х23 | Х34 | Х35 | Х42 | Х45 | ||
Минимизировать z = | ||||||||
Узел 1 | -1 | -1 | = -1 | |||||
Узел 2 | -1 | = 1 | ||||||
Узел 3 | -1 | -1 | = 0 | |||||
Узел 4 | -1 | -1 | = 0 | |||||
Узел 5 | = 0 |
Ограничения представляют балансы потоков, протекающих через каждый узел. Например, в узле 2 баланс потоков "входной поток = выходной поток" выражается как равенство х12 + х42 — 1 + х23. Отметим, что одно из ограничений всегда будет излишним. Например, сумма четырех последних ограничений дает равенство х12 + х13 = 1, которое совпадает с первым ограничением.
Оптимальным решением (полученным с помощью программы TORA, файл ch6ToraLpShortRouteEx6-3-6.txt) является z — 55, х13 = 1, x3i = 1, xt2 = 1. Это решение дает кратчайший путь 1-»3-»4-»2из узла 1 в узел 2 длиной 2 = 55 (миль).
При использовании второй формализации задача, двойственная к представленной выше задаче ЛП, имеет вид.
Максимизировать z = у2 - уг
при ограничениях
y2-yt< 100 (маршрут 1-2), y3-yt< 30 (маршрут 1-3), у3-у2< 20 (маршрут 2-3), у4-у3< 10 (маршрут 3-4), Уь~Уг^ 60 (маршрут3-5),
6.3. Задача поиска кратчайшего пути
y2-yt<15 (маршрут 4-2),
У5-у4< 50 (маршрут 4-5),
yv у2, у5 — свободные переменные.
Хотя двойственная задача строится чисто математическим путем на основе прямой задачи, ее можно сформулировать, не опираясь напрямую задачу.
Определим yt как расстояние до узла £.2 Из этого определения следует, что кратчайшее расстояние между узлами 1 и 2 можно найти путем максимизации величины у2 - уг Ограничение, связанное с маршрутом (t, j), показывает, что расстояние от узла i до узла j не может превышать длину этого маршрута. Это расстояние может быть меньше длины маршрута, если узел j можно достичь из узла t через другие промежуточные узлы, как предлагает кратчайший путь. Например, расстояние от узла 1 до узла 2 не может превышать 100.
Если переменные yt интерпретируются как расстояния, то мы вправе предположить, что все эти переменные неотрицательны (вместо условия, что они свободны). Мы также можем положить, что уг = 0 как расстояние до узла 1. Исходя из этих предположений получаем оптимальное решение: z = 55, у1 = 0, у2 — 55, у3 = 30, yt = 40, ys = 0. Значение г = 55 дает кратчайшее расстояние от узла 1 до узла 2. Это же значение можно получить как у2 - у^ = 55 - 0 = 55.
Определение кратчайшего пути из этого решения не очевидно. Нетрудно проверить непосредственными вычислениями, что решение удовлетворяет ограничениям для маршрутов 1-3, 3-4 и 4-2 в виде равенств. Эти ограничения и определяют кратчайший путь как 1 —> 3 —> 4 —> 2.
Другой способ найти ограничения, которые выполняются в виде равенств, заключается в использовании решения двойственной задачи, полученной с помощью второй формализации. Любое ограничение, которое включает ненулевую двойственную переменную, должно выполняться в виде равенства (см. раздел 4.2.4). Следующая таблица показывает маршруты (ограничения) и значения соответствующих двойственных переменных.
Маршрут (ограничение) | 1-2 | 1-3 | 2-3 | 3-4 | 3-5 | 4-2 | 4-5 |
Двойственная переменная |
УПРАЖНЕНИЯ 6.3.4
1. В примере 6.3.6, используя обе формализации, найдите кратчайшие пути для следующих пар узлов.
a) От узла 1 до узла 5.
b) От узла 2 до узла 5.
Здесь предполагается отсчитывать расстояние от некоторой фиксированной точки, одной для всех узлов. Ниже в качестве такой начальной точки взят узел 1. — Прим. ред.
Глава 6. Сетевые модели
6.3.4. Решение задачи поиска кратчайшего пути в Excel
Шаблон Excel, предназначенный для решения общей транспортной задачи (см. раздел 5.3.3), можно немного модифицировать для решения задачи нахождения кратчайшего пути. Для решения задачи используется первая формализация (раздел 6.3.3). Максимальный размер сети — 10 узлов. На рис. 6.26 показан рабочий лист, на котором решается задача из примера 6.3.4 (файл ch6SolverShortestRoute.xls). Матрица расстояний записана в диапазоне В6:К15.3 "Бесконечное" значение расстояния (равное здесь 9999 или другому достаточно большому числу) вводится для несуществующих дуг. Поскольку определяется кратчайшее расстояние между узлами 1 и 2, величина предложения для узла 1 и величина спроса для узла 2 устанавливаются равными 1. Остальные значения спроса и предложения остаются равными нулю.
Входные данные
Задана нахождения кратчайшего пути
"i-—
К-во умов
N1 NZ NJ Ш N5
Спрос
NT
Матрица удельных стоимостей
N2
N3
NS
Предложения
9999 100 30 9999 9999
9999 9999 30 9999 9999
9999 9999 9999 10 60
9999 15 9999 9999 50
9999 9999 9999 9999 9999
Оппшальное решение
Общая стоимость 55
От- в
N1 -N2 N1 - N3 N1 -N4 N1 -N5 N2-N1 N2-N3 N2-N4 N2-N5 N3-N1 N3-N2 N3-N4 N3-N5 N4 - N1
Поток
0 1 0 0 0 0 0 О
о о 1
1Е-13 0
Ъ спос 999999 999999 999999 999999
999999 999999 999999 999999 999999 999999 999999
999999 999999
Промежуточные вычисления
Имя Узел
N1
N2 N3 № N5
Поток
-1
1Е-11 0
1Е 13
Спрос
Промежуточные вычислении
Нахождение потока наименьшей стоимости
Р
Матрица пропускных <
N1 N2 N3 N4 N5
10 35 60 0
17 Оптимальное решение
18 Сщая стоимост,
19 От-в Ш N1-N2
3SL
N1 - N3 N1 - N4 N1 -N5 N2-N1 N2-N3 N2-N4 N2- N5 N3-N1 N3-N2 N3- N4 N3-N5 N4- N1 N4-M?
Поток
Пр спос
в
35 0 0
25 О
30 0 0 0
25 0
9999Э9 10 35 0 0 60 0 30 0 0 0
999999 0
_а
G- 12
F - 11
Н- 1
[Критические процессы
Некритические процессы
I I I I 1 1 I I I 1 I I I I I I I I I I I I I I I_
5 10 15 20 25
Дни
Рис. 6.57. Предварительный временной график выполнения проекта
Если на некритические процессы не налагаются какие-либо дополнительные ограничения и все они начинаются в самый ранний момент времени, то временной график проекта строится автоматически. Однако в этом случае могут нарушаться некоторые отношения предшествования. В частности, в нашем примере (см. рис. 6.54) процесс С должен быть завершен до начала процесса Е. Но максимальные интервалы времени выполнения этих процессов перекрываются, поэтому и реальные интервалы времени их выполнения также могут перекрываться. Поэтому необходимо предусмотреть какие-нибудь "красные флажки", которые автоматически указывали бы, когда тот или иной процесс может начинаться без нарушения отношений предшествования с другими процессами. Далее мы покажем, как для этого использовать запасы времени отдельных процессов.
Определение запасов времени. Запас времени некритического процесса — это часть максимального интервала времени выполнения этого процесса (который, напомним, больше реальной длительности процесса). Различают общий и свободный запас времени процесса.
На рис. 6.58 показана разность между этими запасами времени процесса (г, у) — общим (TFtj) и свободным (FFlt). Общий запас времени процесса (£, j) определяется как превышение над длительностью выполнения этого процесса интервала времени от самого раннего момента осуществления события i до самого позднего времени осуществления события j, т.е.
7Т(, = Д.-Ц-Д;.
Свободный запас времени процесса (i, j) определяется как превышение над длительностью выполнения этого процесса интервала времени — от самого раннего момента осуществления события i до самого раннего времени осуществления события }, т.е.
FFirara,-Dir
По определению FFt < TFtj.
6.6. Методы сетевого планирования
Правило "красного флажка". Для некритического процесса (i, j)
а) если FF,j = TFtj, то данный процесс может выполняться в любое время внутри максимального интервала (□,, Д^) без нарушения отношений следования;
б) если FFi} < TFtj, то без нарушения отношений следования данный процесс может начаться со сдвигом, не превышающим FFljt относительно самого раннего момента начала процесса □,. Сдвиг начала процесса на величину времени, превышающую FF{j (но не более TFtj), должен сопровождаться равным сдвигом относительно Oj всех процессов, начинающихся с события j.
..А
1*»
-ОС1:
Рис. 6.58. Вычисление общего и свободного запасов времени
Это правило означает, что некритический процесс (i, j) помечается "красным флажком" только тогда, когда FF < TF,r Этот флажок принимается во внимание при сдвиге начала процесса относительно самого раннего времени на такую величину, при которой следует рассчитывать сдвиг процессов, следующих из узла /.
Пример 6.6.4
Вычислим запасы времени для некритических процессов в сети проекта из примера 6.6.2 и на основе этих расчетов построим окончательный временной график проекта.
Общие и свободные запасы времени некритических процессов представлены в следующей таблице. Такие расчеты можно проводить непосредственно на сети проекта, как показано на рис. 6.54.
Некритический Длительность Общий запас времени Свободный запас времени
процесс процесса (TF) (FF)
В (1, 3) 6 11-0-6 = 5 8-0-6 = 2
С (2,3) 3 11-5-3 = 3 8-5-3 = 0
Е(3,5) 2 13-8-2 = 3 13-8-2 = 3
F(3,6) 11 25-8-11 =6 25-8-11 =6
Н(4,6) 1 25-13-1 = 11 25-13 -1 = 11
Глава 6. Сетевые модели
Правило "красного флажка" следует применять только к процессам В и С, поскольку для них FF < TF. Оставшиеся процессы (Е, F и Н) имеют FF — TF, поэтому они могут выполняться в любое время внутри своих максимальных интервалов времени выполнения.
Рассмотрим процесс В, помеченный "красным флажком". Поскольку для этого процесса TF= 5 дней, он может начаться в любой день из интервала 0-5 дней от начала выполнения всего проекта (см. рис. 6.57). Но если FF — 2 дня, то, поскольку процесс В начнется в 0-, 1- или 2-й день от начала выполнения проекта, это не окажет никакого влияния на последующие процессы Е и F. Однако, если процесс В начнется в (2 + d)-ft день (2 + d < 5), начало выполнения процессов Е и F необходимо сдвинуть от самого раннего срока их начала (8-й день от начала выполнения проекта) на величину, не меньше d; только при таком условии не нарушатся отношения следования между процессами В, Е и F.
Для помеченного "красным флажком" процесса С имеем FF'= 0. Это означает, что любой сдвиг начала выполнения этого процесса должен сопровождаться таким же (не меньшим) сдвигом начала выполнения процессов Е и F.
Программа TORA обладает средствами реализации метода СРМ и построения временных графиков. Чтобы воспользоваться этими средствами, в меню Main Menu выберите команду Project PlanningOCPM-Critical Path Method (Планирование проектаОМетод критического пути). В выходном окне доступна опция СРМ Calculations (Вычисления метода СРМ), после выбора которой поэтапово выполняются проходы вперед и назад, а также вычисляются запасы времени. Для создания и работы с временным графиком нужно выбрать опцию СРМ Ваг Chart (Временная диаграмма метода СРМ).
На рис. 6.59 показано выходное окно TORA с результатами вычислений методом СРМ задачи из примера 6.6.2 (файл ch6ToraCPMEx6-6-2.txt). Для вычислений в пошаговом режиме используйте кнопку Next Step (Следующий этап).
На рис. 6.60 представлен временной график проекта из примера 6.6.2, для построения которого следует выбрать опцию СРМ Ваг Chart. По умолчанию все критические процессы автоматически размещаются в расписании как можно раньше. Используя раскрывающиеся списки в нижней левой части экрана, можно исследовать, как будет влиять на расписание задержка выполнения некритических процессов. Это влияние, а также соответствующие пояснения будут показаны непосредственно на графике. Например, если задержка начала выполнения процесса В будет более 2 временных единиц, то задержка начала выполнения последующих процессов Е и F будет равна разнице между задержкой и запасом времени процесса В. Так, если задержка начала выполнения процесса В будет равна 3 единицам, то запас времени для этого процесса будет равен 2. Следовательно, задержка выполнения процессов Е и F будет равна как минимум 3-2 = 1 временной единице. Эта ситуация показана на рис. 6.60.
6.6. Методы сетевого планирования
Рис. 6.60. Временной график проекта из примера 6.6.2
Глава 6. Сетевые модели
УПРАЖНЕНИЯ 6.6.3
1. Дан процесс (i, j) длительностью £>,., самый ранний срок его начала — Ц и самый поздний срок его завершения — Д.. Определите самый ранний срок завершения этого процесса и самый поздний срок его начала.
2. Чему равны общий и свободный запасы времени критических процессов?
3. Для следующих процессов определите максимальный сдвиг начала их выполнения (относительно самого раннего срока начала выполнения), который не нарушает никаких отношений следования с другими процессами.
a) TF= 10, FF= 10, D = 4.
b) TF=10,FF=5,D = 4.
c) TF = 10,FF = 0, £> = 4.
4. В задаче из примера 6.6.4 на основе значений запасов времени ответьте на следующие вопросы.
a) Пусть процесс В начался в 1-й день от начала выполнения всего проекта, а процесс С — в 5-й день (см. рис. 6.57). Каков самый ранний срок начала процессов Е и F?
b) Пусть процесс В начался на 3-й день от начала выполнения проекта, а процесс С — на 7-й. Каков самый ранний срок начала процессов Е и F?
c) Может ли процесс В начаться после 6-го дня от начала выполнения проекта?
5. Пусть в проекте из примера 6.6.2 (рис. 6.54) длительность процессов В и F возросла до 20 и 25 дней соответственно.
a) Определите критический путь.
b) Найдите общие и свободные запасы времени для некритических процессов и пометьте при необходимости их "красными флажками".
c) Пусть процесс А начался на 5-й день от начала выполнения всего проекта. Определите по возможности самые ранние сроки начала процессов С, D, Е и Н.
d) Предположим, для выполнения процессов F, G и Н необходимо одно и то же оборудование. Определите минимально необходимое количество этого оборудования.
6. Вычислите запасы времени и расставьте "красные флажки" процессам проектов, показанных на рис. 6.56. Затем постройте временные графики при соблюдении следующих условий.
Проект А
1. Процесс (1, 5) не может начаться раньше 14-го момента времени.
2. Процессы (5, 6) и (5, 7) используют одинаковое оборудование, которое в любой момент времени может использоваться только в одном процессе.
3. Все другие процессы начинаются так рано, как только возможно. Проект Б
1. Процесс (1, 3) должен начаться так рано, как только возможно, с учетом того, что процессы (1, 2), (1, 3) и (1, 6) используют одинаковое оборудование, которое в любой момент времени может использоваться только в одном процессе.
2. Все другие процессы начинаются так рано, как только возможно.
6.6. Методы сетевого планирования
6.6.4. Формализация задачи поиска критического пути как задачи ЛП
Задача определения критического пути в сети проектов, решаемая методом СРМ, противоположна задаче вычисления кратчайшего пути (раздел 6.3) в том смысле, что здесь ищется самый длинный путь от начального узла до конечного. Можно применить формализацию задачи поиска кратчайшего пути из раздела 6.3.3 к задачам нахождения критического пути, решаемых метом СРМ (для краткости будем называть такие задачи задачами СРМ), следующим образом. Предположим, что в сеть в начальном узле поступает одна единица потока, которая покидает сеть в конечном узле. Обозначим
хц — величина потока, проходящего по дуге (£, j), соответствующей процессу (г, j), Dtj — длительность процесса (i, ;'). В этих обозначениях целевая функция задачи линейного программирования запишется как
максимизировать г = £Д,*„
но всем процессам
(Сравните с формализацией задачи вычисления кратчайшего пути, где целевая функция минимизируется.) Для каждого узла (проекта) определяется только одно ограничение, задающее баланс потока, проходящего через данный узел:
общий входной поток = общий выходной поток.
Очевидно, что все переменные xtj неотрицательны. Отметим, что одно из ограничений избыточно.
Опять, как и в задачах поиска кратчайшего пути, для решения задачи СРМ можно применить двойственную задачу ЛП. В следующем примере покажем две формализации задачи СРМ.
Пример 6.6.5
Ниже дана формулировка задачи из примера 6.6.2 (см. рис. 6.54) в терминах сетевых моделей линейного программирования. Отметим, что узлы 1 и 6 являются соответственно начальным и конечным узлами.
А | В | с | D | Е | F | Фиктивный | Н | G | ||
Х12 | *13 | Х23 | Х24 | Х35 | X36 | X45 | *46 | Х56 | ||
Максимизировать z | ||||||||||
Узел 1 | -1 | -1 | = -1 | |||||||
Узел 2 | -1 | -1 | = 0 | |||||||
Узел 3 | -1 | -1 | = 0 | |||||||
Узел 4 | -1 | -1 | = 0 | |||||||
Узел 5 | -1 | = 0 | ||||||||
Узел 6 | = 1 |
С помощью программы TORA было получено следующее оптимальное решение: 2 = 25, х12(А)= 1, x2i(D) = 1, х45(Фиктивный) = 1, x66(G) = 1, все другие переменные равны 0. Решение определяет следующий критический путь: А -> D -> Фиктивный -» G, при этом длительность проекта равна 25 дней.
Глава 6. Сетевые модели
Приведем формулировку двойственной задачи ЛП.
Минимизировать w = y6- ух
при выполнении условий
Уг | - Уг > 5 (А), |
Уг | -г/,>б(В), |
Уг | -у2>3(С), |
У* | -y2>S(T>), |
Уь | - У3 ^ 2(E), |
Уе | - У3 > 11(F), |
У, | - у4 > 0 (Фиктивный), |
Уе | -у4>1(Щ, |
Уе | -уъ> 12(G), |
все у, не ограничены в знаке.
В формулировке двойственной задачи можно дать интересную интерпретацию двойственных переменных. Пусть yt — время узла отсчитываемое от некоторого момента времени, общего для всех узлов. В этом случае w = уе - у1 будет представлять длительность проекта. Каждое ограничение связано с определенным процессом, они устанавливают отношения предшествования между различными процессами. Например, неравенство у2-ул > 5 эквивалентно неравенству у2>у] + 5, которое показывает, что для узла 2 время у2 не может быть меньшим времени у, + 5. Минимум целевой функции определяет наименьший промежуток времени, при котором будут выполняться все ограничения. В этой интерпретации двойственные переменные могут принимать только неотрицательные значения. Время начала выполнения проекта у, естественно установить равным нулю. В этом случае целевую функцию можно переписать как w = у&. Задание значения у1 = О также согласуется с тем, что одно из первоначальных условий лишнее.
С учетом того, что переменные могут принимать только неотрицательные значения, в программе TORA было получено следующее оптимальное решение двойственной задачи: w = 25, г/, = 0, у2 = 5, у3 = 11, у4 = 13, уъ = 13, ув = 25. Из полученного решения видно, что длительность проекта составляет w = 25 дней.
В соответствии с ограничениями, которые выполняются строго в виде равенств, определяем критические процессы: А -> D -> Фиктивный -> G. Из того факта, что, если ограничение удовлетворено в виде равенства, то соответствующее значение двойственной задачи должно быть положительным, в данном случае вытекает, что значения переменных прямой задачи СРМ (поскольку мы решаем двойственную), ассоциированные с такими ограничениями, будут равны 1. На этом основании можно заполнить следующую таблицу.
Ограничение А | В | С | D | Е | F | Фиктивный | G | Н |
Переменная прямой задачи 1 |
Отсюда получаем, что путь А —» D —» Фиктивный -> G является критическим. Заметьте, что положительное значение переменной прямой задачи всегда равно 1, поскольку задержка в один день для любого критического процесса приведет к увеличению продолжительности проекта на один день (напомним, что двойственные переменные интерпретируются как стоимость единицы ресурса, см. раздел 4.3.1).
6.6. Методы сетевого планирования
УПРАЖНЕНИЯ 6.6.4
1. Используя формализацию линейного программирования, определите критический путь для сети проекта, показанного на рис. 6.55.
2. Используя формализацию линейного программирования, определите критический путь для сетей проектов, которые представлены на рис. 6.56.
6.6.5. Сети PERT
Метод PERT отличается от СРМ тем, что здесь длительность процессов характеризуется тремя оценками.
1. Оптимистичная оценка времени а, когда предполагается, что выполнение процесса будет происходить максимально быстро.
2. Наиболее вероятная оценка времени т, когда предполагается, что выполнение процесса будет происходить нормально.
3. Пессимистическая оценка времени Ь, когда предполагается, что выполнение процесса будет происходить очень медленно.
Любая возможная оценка времени выполнения процесса будет лежать в интервале (а, Ь). Поэтому оценка времени т также должна лежать в этом интервале. На основе этих оценок среднее время D выполнения процесса и дисперсия v вычисляются по формулам
— a + Am + b (b-a2
Все вычисления метода СРМ, которые описаны в разделах 6.6.2 и 6.6.3 выполнимы, если заменить значения длительностей D процессов оценками D .
Теперь можно определить вероятность того, что узел модели будет достигнут в заранее запланированное время Sf. Пусть е.— время наискорейшего достижения узла Поскольку длительности выполнения процессов, которые ведут от начального узла к узлу j, — случайные величины, то е; также является случайной величиной. Предположив, что все процессы в сети статистически независимы, можно определить среднее (математическое ожидание) М{е;) и дисперсию var{e;} следующим образом. Если существует только один путь от начального узла к узлу j, то среднее является суммой ожидаемых длительностей D выполнения всех процессов, входящих в этот путь, а дисперсия равна сумме дисперсий v тех же процессов. С другой стороны, если к узлу ведет более одного пути, то до того, как будут вычислены среднее и дисперсия, необходимо найти вероятностное распределение длительности выполнения процессов, которые составляют самый длинный путь. Эта задача достаточно сложная, поскольку она эквивалентна задаче, вычисляющей распределение максимума нескольких случайных величин. Для упрощения этой задачи среднее МЦ} и дисперсия var{e^} вычисляются только для пути, для которого сумма ожидаемой длительности выполнения процессов максимальна. Если несколько путей имеют равные значения среднего, то выбирается тот, для которого дисперсия больше, поскольку этот путь отражен наименее четко, и поэтому будет вычислена более общая оценка вероятностей.
После того как будет вычислено среднее М{е} и дисперсия var^}, вероятность того, что узел будет достигнут в запланированное время S, можно вычислить по формуле
е -Ще } S.-M{e }} P{'jZS,} = P ; '< ; = P{z<K,},
Глава 6. Сетевые модели
где 2 — случайная величина, имеющая стандартное нормальное распределение, к _5,-М{е,.}
Случайная величина z имеет среднее 0 и стандартное отклонение 1 (см. приложение В). В данном случае использование нормального распределения оправдано тем, что е. является суммой независимых случайных переменных. Согласно центральной предельной теореме (см. раздел 12.5.4) величина ef приближенно распределена по нормальному закону.
Пример 6.6.6
Рассмотрим проект из примера 6.6.2. Чтобы не повторять вычисление критического пути, значения а, т и Ь, представленные в таблице ниже, были выбраны так, чтобы D. - Dy для всех i и /.
Процесс i-j (а, т, Ь) Процесс i-j (а, т, Ь)
А 1-2 (3,5,7) | Е | 3-5 | (1.2, 3) |
В 1-3 (4,6,8) | F | 3-6 | (9,11,13) |
С 2-3 (1,3,5) | Н | 4-6 | (1,1.1) |
D 2-4 (5,8,11) | G | 5-6 | (Ю, 12, 14) |
Средние D:j и дисперсии Уц для различных процессов даны в следующей табли- | |||
це. Заметьте, что для фиктивного процесса (а, т, Ъ) — | (0, 0, 0), поэтому его среднее | ||
и дисперсия также равны нулю. | |||
Процесс i-j Dij Vij | Процесс | Ч | Dij V/j |
А 1-2 5 0,444 | Е | 3-5 | 2 0,111 |
В 1-3 6 0,444 | F | 3-6 | 11 0,444 |
С 2-3 3 0,444 | Н | 4-6 | 1 0,000 |
D 2-4 8 1,000 | G | 5-6 | 12 0,444 |
В таблице ниже приведены самые длинные пути (которые были определены по | |||
средней длительности) от начального узла 1 ко всем остальным узлам, а также со- | |||
ответствующие средние значения и дисперсии. | |||
Узел Самый длинный путь i | Среднее пути | Стандартное отклонение пути | |
2 1-2 | 5,00 | 0,67 | |
3 1-2-3 | 8,00 | 0,94 | |
4 1-2-4 | 13,00 | 1,20 | |
5 1-2-4-5 | 13,00 | 1,20 | |
6 1-2-4-5-6 | 25,00 | 1,37 |
И наконец, в следующей таблице представлены вычисленные аналитиком значения вероятностей того, что каждый узел будет достигнут в запланированное время Stj.
6.6. Методы сетевого планирования
Узел j | Самый длинный путь Среднее пути | Стандартное | S) | К/ | P(z<Kj) | |
отклонение пути | ||||||
1-2 | 5,00 | 0.67 | 5,00 | 0,5000 | ||
1-2-3 | 8,00 | 0,94 | 11,00 | 3,19 | 0,9993 | |
1-2-4 | 13,00 | 1,20 | 12,00 | -0,83 | 0,2033 | |
1-2-4-5 | 13,00 | 1,20 | 14,00 | 0,83 | 0,7967 | |
1-2-4-5-6 | 25,00 | 1,37 | 26,00 | 0,73 | 0,7673 |
Программа TORA содержит модуль для выполнения вычислений методом PERT. Чтобы им воспользоваться, из главного меню выберите команду Project PlanningoPERT-Program Evaluation & Review Technique (Планирование проекта1^ PERT). В выходном окне для вычисления среднего и дисперсии каждого процесса надо выбрать опцию Activity Mean/Var (Среднее/дисперсия процессов). Чтобы сразу вычислить средние и дисперсии для самых длинных путей к каждому узлу сети, следует выбрать опцию PERT Calculations (Вычисления методом PERT).
На рис. 6.61 показаны результаты вычислений методом PERT, полученные в системе TORA, для примера 6.6.6 (файл ch6ToraPERTEx6-6-6.txt).
WW DiVWorkUoraP ilejVfi* loraPFR I [ хб 6 6.1st
PROJECT PLANNING PERT/CPM
ГО>.-|М|»ЦцЩ 11—■ 11 III 111] Сф|1|КВШ0-ЗВНамуд Tata MP|ltntiiM | PROJECT PLA*IN'*G PE*T | |
bo**ct Output Option—1 Hb^H ■^■■^■^■fl «^^^^^^р | > | |
T№»: Ew pi* 6 6.-6 | РА'ЧК AN AND STD. DEVIA'1 -1 N |
Longest Pdlh Based on Мели Dm dtioiis
I ViewnAodty Input Dote I
Рис. 6.61. Вычисления для примера 6.6.6
УПРАЖНЕНИЕ 6.6.5
1. Ниже приведены оценки (а, т, Ь) для проектов из упражнения 6.6.2.2. Для всех узлов проекта определите вероятности того, что эти узлы будут достигнуты без задержек.
Глава 6. Сетевые модели
Проект А | Проект Б | ||||||
Процесс | (а, т, Ь) | Процесс | (а, т, Ь) | Процесс | (а, т, Ь) | Процесс | (а, т, Ь) |
1-2 | (5, 6, 8) | 3-6 | (3. 4, 5) | 1-2 | (1.3, 4) | 3-7 | (12, 13, 14) |
1-4 | (1.3, 4) | 4-6 | (4, 8, 10) | 1-3 | (5, 7, 8) | 4-5 | (10, 12, 15) |
1-5 | (2, 4, 5) | 4-7 | (5, 6, 8) | 1-4 | (6, 7, 9) | 4-7 | (8, 10, 12) |
2-3 | (4, 5, 6) | 5-6 | (9, 10, 15) | 1-6 | (1,2, 3) | 5-6 | (7, 8, 11) |
2-5 | (7, 8, 10) | 5-7 | (4, 6, 8) | 2-3 | (3, 4, 5) | 5-7 | (2, 4, 8) |
2-6 | (8, 9, 13) | 6-7 | (3, 4, 5) | 2-5 | (7, 8, 9) | 6-7 | (5, 6, 7) |
3-4 | (5, 9, 19) | 3-4 | (Ю, 15, 20) |
ЛИТЕРАТУРА
1. Ahuja R., Magnati Т., Orlin J. Network Flows: Theory, Algorithms and Applications, Prentice Hall, Upper Saddle River, N.J., 1993.
2. Bazaraa M., Jarvis J., Sherali H. Linear Programming and Network Flow, 2nd ed., Wiley, New York, 1990.
3. Evans J. R., Minieka E. Optimization Algorithms for Networks and Graphs, 2nd ed., Marcel Dekker, New York, 1992.
4. Murty K. Network Programming, Prentice Hall, Upper Saddle River, N. J., 1992.
Литература, добавленная при переводе
1. Ахо А. В., Хопкрофт Дж. Э., Ульман Дж. Д. Структуры данных и алгоритмы. — М.: Издательский дом "Вильяме", 2000.7
2. Форд Л. Р., Фалкерсон Д. Р. Потоки в сетях. — М.: Мир, 1966.
КОМПЛЕКСНЫЕ ЗАДАЧИ
6.1. Любитель свежего воздуха, житель Сан-Франциско (СФ), планирует во время своего 15-дневного отпуска посетить четыре национальных парка: Йосемитский (ЙО), Йеллоустонский (ЙЕ), Гренд-Тетон (ГТ) и Маунт-Рушмор (MP). Во время путешествия, которое начнется и закончится в Сан-Франциско, он планирует посетить парки в таком порядке: СФ-»ЙО->ЙЕ->ГТ-»МР->СФ. На осмотр каждого парка отводится 2 дня. От одного парка до другого можно добраться либо самолетом, либо автомобилем. Если пользоваться самолетом, то перелет между любыми парками (а также между парками и Сан-Франциско) занимает примерно полдня. Если путешествовать на автомобиле, то маршрут СФ - ЙО занимает полдня, ЙО - ЙЕ — 3 дня, ЙЕ - ГТ — один день пути, ГТ - MP — два дня, и возвращение из MP в СФ требует 3 дня. В общем случае проезд на автомобиле дешевле перелета на самолете, но, естественно, путешествие на автомобиле занимает больше времени. Разработайте наиболее дешевый маршрут посещения национальных парков (т.е. определите вид транспорта на каждом
7 В данной книге представлены (с вычислительной точки зрения) все рассмотренные в данной главе алгоритмы. — Прим. ред.
Комплексные задачи
этапе путешествия) с учетом того, что длительность путешествия не может превышать 15 дней. В следующей таблице приведена стоимость проезда на автомобиле и перелета на самолете.
Стоимость полета в Стоимость проезда в
Из | СФ | ЙО | ЙЕ | гт | MP | СФ | ЙО | ЙЕ | гт | MP |
СФ | — | — | ||||||||
ЙО | — | — | ||||||||
ЙЕ | — | — | ||||||||
ГТ | — | |||||||||
MP | — | — |
6.2. Некто желает подарить большое количество ценных книг публичной библиотеке. Все книги имеют различные размеры по высоте корешка: 12, 10, 8 и 6 дюймов. Заведующий библиотекой подсчитал, что для размещения книг высотой 12 дюймов необходимы полки общей длиной 12 футов, для книг высотой 10 дюймов — полки длиной 18 футов, для книг высотой 8 дюймов — полки длиной 9 футов и для книг высотой 6 дюймов — полки длиной 10 футов. Цена книжных полок состоит из фиксированной цены и цены, рассчитываемой в зависимости от суммарной длины полок, как показано в следующей таблице.
Высота полки (дюймы) Фиксированная цена (долл.) Цена (долл.) за фут длины полки
12 25 5,50
10 25 4,50
8 22 3,50
6 22 2,50
Сколько и каких полок необходимо для библиотеки, если учесть, что книги меньшего размера могут храниться на полках для книг большего размера?
6.3. Судоходной компании необходимо доставить пять партий груза из портов А, В и С в порты D и Е. Сроки доставки грузов приведены в следующей таблице.
Партия груза | Маршрут доставки | Срок доставки (дни) |
из А в D | ||
из А в Е | ||
из В в D | ||
из В в Е | ||
из С в Е |
В следующей таблице приведено время перехода (дни) между портами (обратный переход, как правило, требует меньше времени).
Основано на материалах статьи Ravindran A. "On Compact Storage in Libraries", Opsearch, Vol. 8, No. 3, pp. 245-252, 1971.
Глава 6. Сетевые модели
А | В | С | D | Е | |
А | |||||
В | |||||
С | |||||
D | |||||
Е |
Компания планирует минимизировать количество судов, необходимых для перевозки данных партий груза.
6.9. 9 Несколько человек решили основать брокерскую фирму для игры на бирже с ценными бумаги. Брокеры работали по свободной финансовой системе, что позволяло им проводить многочисленные сделки между самими брокерами, включая покупку и продажу ценных бумаг, предоставление денежных ссуд и займов под проценты. Для всей этой группы брокеров, в целом, основным источником доходов были комиссионные, получаемые от продажи ценных бумаг сторонним клиентам.
Со временем эти спекулятивные сделки вышли из-под контроля, что привело всех брокеров к банкротству. К тому же, финансовое положение брокерской фирмы было таково, что все деньги брокеров были вложены во внешних клиентов и сделки между самими брокерами, причем таким образом, что практически каждый брокер стал должником другого.
Брокеры, чьи активы позволяли погасить долги, были объявлены платежеспособными. Остальные через судебные инстанции должны были погасить свои долги в интересах сторонних клиентов. Поскольку активы и авуары несостоятельных брокеров меньше общего объема долгов, долги погашаются пропорционально их объемам.
Из-за финансовых затруднений неплатежеспособной группы брокеров судебные инстанции постановили, что заключенные ранее сделки должны выполняться только для удовлетворения определенных судом требований, поскольку брокеры не имеют собственных источников капитала. В частности, судебные инстанции требуют свести количество погашаемых сделок между брокерами к минимуму. Это означает, что если брокер А должен брокеру В сумму X, а брокер В — брокеру А сумму Y, то эти взаимные долги сведутся к одному с суммой долга |Х - Y|. Эта сумма считается долгом А перед В, если X > Y, и долгом В перед А, когда X < Y. Если X = У, долг погашен. Эта идея погашения взаимных долгов распространяется на все долги между брокерами.
Каковы ваши предложения по выходу из данной финансовой ситуации? В частности, ответьте на следующие вопросы.
1. Как рассчитать доли возвращаемых долгов?
2. К какому минимальному количеству можно свести взаимные долги между брокерами?
Задача основана на материалах статьи Taha Н. "Operations Research Analysis of a Stock Market Problem", Computers and Operations Research, Vol. 18, No. 7, pp.597-602, 1991.
ГЛАВА 7
ТЕОРИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Эта глава представляет строгий математический фундамент теории линейного программирования (ЛП). Здесь будет обоснован симплекс-метод и теория двойственности. Кроме того, будут рассмотрены такие эффективные вычислительные алгоритмы, как модифицированный симплекс-метод, метод декомпозиции, метод решения задач, содержащих ограничения на значения переменных, и методы параметрического программирования. В заключение будет представлен алгоритм Кармаркара, полностью отличный от симплекс-метода. Этот алгоритм наиболее эффективен при решении очень больших задач ЛП.
В этой главе используется аппарат матричной алгебры. Читатель, не знакомый с матричной алгеброй, может обратиться к приложению А.
В задачах линейного программирования пространство допустимых решений всегда имеет форму выпуклого множества. Множество называется выпуклым, если отрезок прямой, соединяющий две различные точки этого множества, полностью принадлежит данному множеству. Крайней точкой выпуклого множества является точка, принадлежащая этому множеству, но которая не лежит ни на каком отрезке прямой, соединяющей две различные точки этого множества. Фактически крайние точки — это то же самое, что и угловые точки, которые использовались в главах 2, 3 и 4.
На рис. 7.1 показаны два множества. Множество а, которое представляет типичное пространство решений задачи ЛП, является выпуклым множеством, тогда как множество б невыпуклое.
7.1. ОСНОВЫ СИМПЛЕКС-МЕТОДА
а
б
Рис. 7.1. Примеры выпуклого и невыпуклого множеств
Глава 7. Теория линейного программирования
В разделе 2.3 мы графически показали, что оптимальное (конечное) решение двухмерной задачи ЛП соответствует крайней (угловой) точке пространства допустимых решений. Этот результат основан на том факте, что в задачах ЛП любая допустимая точка представима как функция крайних точек пространства решений. Например, в выпуклом множестве на рис. 7.1, а имеется шесть крайних точек X,, Х2, Х6, произвольную допустимую точку X можно представить как линейную комбинацию крайних точек:
X - оцХ, + сс2Х2 + ОзХ3 + сс4Х4 + сс5Х5 + сс6Х6,
где все коэффициенты ос, > 0 и выполняется равенство
Таким образом, множество крайних точек полностью определяет пространство допустимых решений.
Пример 7.1.1
Покажем, что следующее множество является выпуклым.
С = {(х„ х,) | х, < 2, х2< 3, х, > 0, х2 >0}. Пусть X, ={х,',л2} и X, = {х2,х2} — две различные точки из множества С. Если множество С выпукло, тогда точка X = (х,, х2) = otjX, + о^Х, должна принадлежать этому множеству. Чтобы точка X принадлежала множеству С, ее координаты должны удовлетворять неравенствам, которые определяют это множество.
х, = а.х,1 + а,х,2 < а, х 2 + а, х 2 = 2 .
х, = asx + а2х < а, хЗ + а, х3 = 3 .
Таким образом (поскольку а, + а2 = 1), xi < 2 и х2 < 3. Так как коэффициенты а, и otj неотрицательны, то координаты также удовлетворяют условиям неотрицательности.
УПРАЖНЕНИЯ 7.1.1
1. Покажите, что множество Q = {xt, х21 х, + х2 < 1, х, > 0, х2 > 0} выпуклое. Существенно ли в данном случае условие неотрицательности переменных?
2. Покажите, что множество Q = {х,, х2| х> 1 или х2 > 2} не является выпуклым.
3. Найдите графически крайние точки выпуклого множества
Q = {х,, х21 х, + х2 < 2, х, > 0, х2 > 0}.
Затем покажите, что все пространство допустимых решений, совпадающее с множеством Q, можно определить как выпуклую комбинацию этих крайних точек. Таким образом, будет доказано, что любое ограниченное пространство решений в общем случае определяется только крайними точками.
4. Представьте внутреннюю точку (3, 1) пространства решений, показанного на рис. 7.2, как выпуклую комбинацию крайних точек А, В, С и D, где каждая крайняя точка должна иметь строго положительный весовой коэффициент.
7.1. Основы симплекс-метода
х2
5 4 3 2 1
О 1 2 3 4 5 6 Рис. 7.2. Пространство решений для упражнения 4
7.1.1. Базисные решения
В этом разделе задачу ЛП, записанную в стандартной форме (см. раздел 3.1), представим в новой форме записи с использованием матричных обозначений. Обозначим
через X = (Xj, х2.....хп)т n-мерный вектор переменных, через А — матрицу размер
тхп, содержащую коэффициенты левых частей ограничений, b = (ft,, b2, bm)T — m-мерный вектор правых частей ограничений, С = (cv с2, сп) — л-мерный вектор коэффициентов целевой функции. С помощью матричной формы записи стандартную задачу ЛП можно представить следующим образом.
Максимизировать или минимизировать г = СХ
при ограничениях
АХ = Ь, Х>0.
На основе стандартной формы для симплекс-таблиц из главы 3 (см. также рис. 4.1) т крайних справа столбцов матрицы А всегда можно представить в виде единичной матрицы I, для чего, возможно, придется надлежащим образом расположить переменные и использовать при необходимости искусственные переменные.
Базисное решение системы уравнений АХ = b получается путем присвоения п -т переменным нулевых значений и последующим решением системы из т уравнений относительно оставшихся т переменных (предполагается, что эта система имеет единственное решение). Теория линейного программирования устанавливает следующее соответствие между геометрическим определением крайних точек и алгебраическим определением базисного решения.
Крайние точки множества {X | АХ = Ь} <=> Базисные решения системы АХ = Ь. Это соответствие означает, что все крайние точки области решений задачи ЛП полностью определяются базисными решениями системы АХ = b и наоборот. Отсюда следует, что множество базисных решений содержит всю информацию, необходимую для оптимального решения задачи ЛП. Более того, если наложить условия неотрицательности X > 0, поиск оптимального решения ограничится только множеством допустимых базисных решений.
Глава 7. Теория линейного программирования
Чтобы формализовать определение базисного решения, представим систему АХ = b в векторной форме
где вектор Р; — j-й столбец матрицы А. Подмножество из т векторов Ру формирует базис В тогда и только тогда, когда эти векторы линейно независимы. Для этого необходимо (и достаточно), чтобы определитель матрицы В, состоящей из данных т векторов, был отличен от нуля, т.е. det(B) Ф О.1 В этом случае матрица В называется невырожденной. Обозначим через Хв вектор из т переменных, ассоциированных с векторами Р;, составляющих невырожденную матрицу В. Тогда Хв будет базисным решением, если он будет решением системы ВХВ = Ь.
Пусть В"1 — матрица, обратная к матрице В (напомним, что матрица В невырожденная). Тогда базисное решение находим по формуле:
хв = в'ь.
Если выполняется неравенство B"'b > 0, тогда Хв будет допустимым решением.
В заключение отметим, что количество базисных решений у системы из т уравнений с п неизвестными не превышает величины
т(п — т)
Пример 7.1.2
Найдем и классифицируем (как допустимые или недопустимые) все базисные решения следующей системы уравнений
В следующей таблице показаны все базисные решения. Матрица, обратная к матрице В, вычислена методами, приведенными в разделе А.2.7.
В
BXs = b
Решение
Статус
(Pi. Рз) (Рг, Рз)
Не является базисом
Л | 3> | (Л | ||||||
1 * | г) | ы | ||||||
( ■ Л | г | |||||||
1 1 | ||||||||
4 8 | = | |||||||
1 3 | ||||||||
ч~4 %) | *) | |||||||
Допустимое
Недопустимое
Здесь и далее автор обозначает через В как базис, т.е. совокупность базисных векторов, так и матрицу, составленную из этих векторов. Это не приводит к недоразумениям, так как из контекста всегда понятно, о чем идет речь. — Прим. ред.
7.1. Основы симплекс-метода
Рассмотрим эту же задачу, представив систему в векторной форме:
Здесь векторы Р,, Р2, Р3, b являются двухмерными; в общем виде они представимы как (о,, а2)т. На рис. 7.3 на плоскости (alt а2) показаны векторы данной системы. Например, вектор b = (4, 2)т, где а, = 4, а2 = 2.
Рис. 7.3. Векторное представление системы уравнений
Поскольку у нас только два уравнения (т = 2), базис должен состоять из двух векторов, выбранных среди Р,, Р2 и Р3. Из рис. 7.3 видно, что пары векторов (Р,, Р2) и(Р2Р3) могут быть базисами, поскольку векторы в этих парах независимы. Но пара векторов (Pj, Р3) не может составить базис, так как эти векторы линейно зависимы.
Алгебраический подход к определению базиса требует, чтобы определитель матрицы, составленной из векторов, претендующих на роль базисных, был отличен от нуля. Вычисления определителей показывают, что пары векторов (Рр Р2) и (Р2 Р3) будут базисами, а векторы (Р1; Р3) не могут составить базис.
det(P,, Р,) = det Q ^ j = (1 х (-2)) - (2 х 3) = -8 * 0. det(P2,P3) = detj Ъ ~J = (3x(_2W~ (_2х(_1)) = _8 mo-
deler,, Р3) = det
fl -Г 2 -2 = (1х(-2))-(2х(-1)) = 0.
Глава 7. Теория линейного программирования
УПРАЖНЕНИЯ 7.1.2
1. Представленные ниже системы уравнений а) и б) имеют единственные базисные решения, система в) — бесконечно много решений, а г) не имеет решения. Докажите это, представив решения графически на плоскости. На основании данных примеров выведите общие закономерности, определяющие у системы уравнений единственное решение, бесконечно много решений или отсутствие решений.
а) в) х1+3х2 = 2, Зх1+х2 = 3. 2л;, + &х2 = 4, лг, + Зл:2 = 2.
б) г) 2*, + Зх2 = 1, 2л:,-л:г = 2. 2л;, - 4л:2 = 2, -лг,-1-2л:2 = 1.
Определите графически, какая из следующих систем уравнений имеет единственное решение, бесконечно много решений или не имеет решений.
а) в) Д) 1 -з)Ц (l,
-1
б)
г) е) 2 1
2 1
< О -2
Я:
3. Дана следующая система уравнений.
'Г | V | |||||||
.0, | ,2, |
Определите, какой из следующих наборов векторов образует базис.
a) (Р„ Р2, Р3)
b) (Р„ Р2, Р4)
c) (Р2,Р„Р4)
d) (Р„ Р2, Р3, Р4)
4. Истинны или ложны следующие утверждения?
a) Если матрица В не вырождена, то система ВХ = b имеет единственное решение.
b) Система ВХ = b не имеет решения, если матрица В вырождена и вектор b независим относительно векторов, составляющих матрицу В.
c) Система ВХ = b имеет бесконечно много решений, если матрица В вырождена и вектор b зависим относительно векторов, составляющих матрицу В.
7.1. Основы симплекс-метода
7.1.2. Матричное представление симплекс-таблиц
В этом разделе мы используем матричную алгебру для построения симплекс-таблиц. Рассмотрим стандартную задачу ЛП
максимизировать г = СХ при ограничениях АХ = b, X > 0.
Эту задачу ЛП можно также записать следующим образом.
-С
Для любой симплексной итерации будем обозначать через Хв базисный вектор переменных, а через Св — вектор коэффициентов целевой функции, соответствующих этому базису. Поскольку все небазисные переменные равны нулю, стандартная задача ЛП будет сведена к задаче с целевой функцией г = СВХВ и ограничениями ВХВ = Ь, где текущее решение удовлетворяет следующему уравнению.
-с,
В
ся в-] | с, в-V | |
В" ; | , в-ь , |
Здесь при обращении матрицы использовались формулы из раздела А.2.7.
Симплекс-таблица получается из исходной задачи ЛП путем вычислений по следующей формуле.
С, В
в-С А
' сввр | (°1 |
,0 в 1 , | W |
Выполнив вычисления по этой формуле, получаем такую симплекс-таблицу.
Базис | X; | Решение |
z | С8В"1Р;-С, | CsB"1b |
х8
В"1 Р,
в^ь
В этой таблице необходимо вычислить только обратную матрицу В-1, так как другие элементы таблицы получаются из исходных данных задачи.
Представленная симплекс-таблица имеет большое значение, так как является основой всех вычислительных алгоритмов линейного программирования. В частности, на ней основаны модифицированный симплекс-метод, метод решения задач с ограниченными переменными и метод декомпозиции, которые будут описаны в следующих разделах.
Пример 7.1.3
Рассмотрим следующую задачу ЛП.
Максимизировать г = дс, + 4х2 + 7х3 + 5х4
при ограничениях
2*! + хг + 2х3 + 4.х4 = 10, Здс1 - х2 - 2х3 + 6xt = 5, х„ х2, х3, xt>0. Пусть В = (Р,, Р2) является допустимым базисом.
Глава 7. Теория линейного программирования
На основании В = (Р,,Р2) имеем Хв = (х,, х2)т и Св = (1,4). Вычисляем обратную матрицу В"1:
В
Находим текущее базисное решение
2 1
3 -1
Л | Л | |
5 | ъ) |
х.=Г I = в ь =
5 5 3 _2 V5 5J
Далее вычисляем в симплекс-таблице значения коэффициентов ограничений:
(±0(2 1 2 Л) (1 0 0 2 В"'(Р„Р,.Р,,Р4)= ■< 5
1 " 3 4 1 -МЗ -1 -2 6 [0 1 2 0
Теперь находим коэффициенты z-строки симплекс-таблицы:
Св[В-,(Р1.Р2,Рз,Р4)]-С = (1,4)^ ° ° ^-(1,4,7,5) = (0.0.1.-3). Наконец, вычисляем значение целевой функции:
z = CaB-,b = CBXe=(l,4)
= 19 ,
Таким образом, получаем значения следующей симплекс-таблицы.
Базис | Х1 | хг | хз | Хл | Решение |
z | -3 | ||||
хз | |||||
хг |
Еще раз подчеркнем, что в этой таблице основные вычисления связаны с нахождением обратной матрицы В-1, другие элементы таблицы получаются на основе вычисленной матрицы В"1 и исходных данных задачи.
УПРАЖНЕНИЯ 7.1.3
1. Пусть в примере 7.1.3 В = (Р3, Р4). Покажите, что соответствующее базисное решение является допустимым и постройте соответствующую симплекс-таблицу.
2. Дана следующая задача ЛП.
Максимизировать г = 5х, + 12х2 + 4х3
при ограничениях
х, + 2х2 + х3 + х4 = 10,
^3* ^4 ~
Определите, какие из следующих наборов векторов образуют базис: (Р,, Р2),
(р2, р3), (р3, р4).
7.2. Модифицированный симплекс-метод
3. Дана следующая задача ЛП.
Минимизировать г = 2хх + х2
при ограничениях
Зяг, -(- х2 — х3~ 3, 4л:, + Зх2 - х4 = 6, + 2jc2 + хь = 3, Хр х2, яг3, х4, я:5 > 0.
Вычислите симплекс-таблицу, соответствующую Хв = (xv х2, хь)Г, и определите, будет ли это решение допустимым и оптимальным.
4. Дана следующая симплекс-таблица с оптимальным решением задачи ЛП.
Базис | Х1 | хг | х3 | Xt | х5 | Решение |
z | ? | |||||
х3 | -1 | |||||
х2 | ||||||
Х1 | -1 |
Здесь переменные ха, xt и хь являются дополнительными (остаточными). С помощью матричных вычислений реконструируйте исходную задачу ЛП, затем вычислите оптимальное значение целевой функции.
5. В стандартной задаче ЛП разобьем вектор X на два — X = (X,, Х„)т. Здесь вектор Х„ соответствует начальному базисному решению, состоящему из дополнительных и искусственных переменных (так что В = I). Тогда матрицу А можно представить как А = (D, I). Вектор С также разделим на два вектора С, и С„ в соответствии с векторами X, и Х„. Покажите, что в этом случае симплекс-таблицу можно записать в следующем виде, который в точности соответствует виду симплекс-таблицы из главы 3.
Базис | X, | Xi, | Решение |
z | CSB"1D-C| | СвВ 1 - Сц | с8вчь |
х8 | B"1D | В'1 | в-'ь |
7.2. МОДИФИЦИРОВАННЫЙ СИМПЛЕКС-МЕТОД
В разделе 7.1.1 показано, что оптимальное решение задачи линейного программирования всегда находится среди множества базисных (допустимых) решений. Выполнение симплекс-метода начинается с допустимого базисного решения В, затем осуществляется переход к следующему допустимому базисному решению, которое улучшает (по крайней мере, не ухудшает) значение целевой функции, и так до тех пор, пока не будет достигнуто оптимальное решение.
Модифицированный симплекс-метод предусматривает выполнение точно таких же этапов, как и обычный табличный симплекс-метод, описанный в главе 3. Основное отличие между ними заключается в том, что в обычном симплекс-методе при переходе от одного базиса к другому используется процедура преобразования строк симплекс-таблицы с помощью метода Гаусса-Жордана, тогда как
Глава 7. Теория линейного программирования
в модифицированном симплекс-методе эти преобразования осуществляются путем вычисления обратной матрицы В-1, и основные действия связаны именно с вычислением этой матрицы.
7.2.1. Условия оптимальности и допустимости
Рассмотрим стандартную задачу ЛП.
я
Максимизировать или минимизировать г = СХ при ограничениях ^PjX, =b, х.>
0,j= 1, 2, га.
Для данного базисного вектора Хв и соответствующих базиса В и вектора коэффициентов целевой функции Св на каждой итерации вычисления значений симплекс-таблицы выполняются по следующим формулам (см. раздел 7.1.2).
г + £ц-су)*;=св в-'ь
(XB)i+X(B-'PJ),x;=(B-1b)l,
j=l
где Zj - с = СВВ_1Р; - с. Здесь запись (V), используется для обозначения t-ro элемента вектора V.
Условие оптимальности симплекс-метода. Из уравнения для значений z-строки, приведенного выше, следует, что увеличение значения небазисной переменной xf приводит к возрастанию (убыванию) значения целевой функции z выше текущего значения СВВ_1Ь только в том случае, если разность zj - с строго отрицательна в задаче максимизации или строго положительна в задаче минимизации. В противном случае переменная не может улучшить текущее решение и должна остаться небазисной с нулевым значением. Таким образом, любая небазисная переменная, удовлетворяющая этому условию, может быть включена в базис, что, возможно, улучшит значение целевой функции. В симплекс-методе действует эмпирическое правило, которое гласит, что в качестве вводимой в базис переменной выбирается переменная, которой соответствует наибольший (по модулю) отрицательный коэффициент г — с в z-строке в задаче максимизации или наибольший положительный аналогичный коэффициент в задаче минимизации.
Условие допустимости симплекс-метода. Определение исключаемого из базиса вектора основано на проверке ограничения, представленного в виде равенства, соответствующего i-й базисной переменной. Это равенство имеет следующий вид.
(ХД.+^В-'РДх^В-'Ь),.
Обозначим через Pk вводимый вектор, определенный из условия оптимальности, а через хк — вводимую в базис переменную, принимающую положительное значение. Поскольку все остальные небазисные переменные сохраняют нулевые значения, равенство ограничения, соответствующее базисной переменной (Хв),, можно записать следующим образом.
(Хв), = (В-1Ь)1-(В-1РДх, Это уравнение показывает, что при (В~'РД > 0 возрастание переменной хк не приведет к отрицательному значению базисной переменной (Хв)( только в том случае, если будет выполняться неравенство
(B"'b), - (В_1РД хк > 0 для всех L
7.2. Модифицированный симплекс-метод
Таким образом, максимальное значение вводимой переменной xk можно вычислить по следующей формуле.
Базисная переменная, на которой достигается этот минимум, становится исключаемой.
УПРАЖНЕНИЯ 7.2.1
1. Дана следующая задача ЛП.
Векторы Р,, Р2, Р3 и Р4 показаны на рис. 7.4. Предположим, что текущим базисом является В = (Рр Р2).
a) Если вектор Р3 ввести в базис, какой вектор необходимо из него исключить, чтобы полученное базисное решение было допустимым?
b) Может ли вектор Р4 быть частью допустимого базиса?
2. Докажите, что для всех базисных переменных соответствующие разности гу - су равны нулю.
3. Докажите, что если в задаче максимизации (минимизации) для всех небазисных переменных х; выполняется неравенство г. - с. > О (< 0), то задача имеет единственное оптимальное решение. Если же для некоторых небазисных переменных х. выполняется равенство г.-су = 0, задача имеет альтернативное оптимальное решение.
4. Пусть начальное базисное решение задачи ЛП сформировано только из дополнительных остаточных переменных. С помощью матричного представления симплекс-таблицы покажите, что применение процедуры, описанной в разделе 3.3, где уравнение для целевой функции записано как
Максимизировать г — с,*, + с2х2 + с3х3 + с4х4
при ограничениях
РЛ+РЛ + РЛ + РЛ-Ь х„ х2, х3, х4>0.
Рис. 7.4. Векторы для упражнения 1
Глава 7. Теория линейного программирования
автоматически приведет к вычислению разностей г. - с. для всех переменных в начальной симплекс-таблице.
5. Пусть начальное базисное решение задачи ЛП сформировано только из искусственных переменных. Используя матричное представление симплекс-таблицы, покажите, что применение процедуры исключения искусственных переменных из целевой функции (для чего использовались ограничения-равенства), описанной в разделе 3.4.1, приведет к вычислению разностей zt - Cj для всех переменных в начальной симплекс-таблице.
6. Пусть дана задача ЛП, в которой не накладываются ограничения на знак переменной хк. Докажите, что после замены хк=хк - хк , где х и х~к неотрицательны, невозможна ситуация, когда переменные х и хк заменяют одна другую в альтернативных оптимальных решениях.
7. Дана задача ЛП, записанная в стандартной форме и имеющая т ограничений (в виде равенств) и п неизвестных. Определите число смежных крайних точек, которые можно достичь из невырожденной крайней точки пространства решений. Почему здесь существенно условие невырожденности крайней точки?
8. Применяя условие допустимости симплекс-метода, предположим, что хг — базисная переменная, имеющая нулевое значение, а дс.— вводимая. Объясните, почему для того, чтобы переменную л:г исключить из базиса, необходимо выполнение неравенства (В_1Р;)г>0. Какие возникнут проблемы при выполнении неравенства (В-1РД.<0? (Подсказка. При ответе учитывайте, что переменная хг должна остаться неотрицательной.)
9. Что может указать на появление (впервые) вырожденного решения при реализации условия допустимости симплекс-метода? Какое условие приведет к повторению вырожденности решения на следующей итерации? Какое условие необходимо для того, чтобы вырожденность исчезла на следующей итерации? Обоснуйте ответы математически.
10. Каковы соотношения между крайними точками пространства решений и базисными решениями при вырожденности и невырожденности решений? Какое максимальное число итераций симплекс-метода может быть выполнено в одной и той же крайней точке?
11. Дана следующая задача ЛП: максимизировать г = СХ при ограничениях АХ < b, X > 0, где b > 0. Предположим, что вводимый в базис вектор Ру таков, что по крайней мере один элемент вектора В~'Ру положителен.
a) Пусть вектор Р, заменен на аР;, где а — положительное число, при этом переменная Xj остается переменной, вводимой в базис. Найдите соотношения между значениями переменной xjt соответствующими векторам Ру и cdt*.
b) Ответьте на вопрос предыдущего пункта, если дополнительно вектор b заменен на вектор рЧЬ, где (3 — положительное число.
12. Дана следующая задача ЛП: максимизировать z = СХ при ограничениях АХ<Ь, Х>0, где Ь>0. Предположим, что после получения оптимального решения возникла идея сделать небазисную переменную xt базисной (т.е. приносящей доход, если вспомнить экономическую интерпретацию задач ЛП) путем уменьшения ресурсов, расходуемых на единицу x/t до величины 1/а от исходного значения, где а— число, превышающее единицу. По
7.2. Модифицированный симплекс-метод
скольку сокращено потребление ресурсов, ожидается, что доход на единицу Xj также уменьшится до величины 1/а от исходного значения. Может ли это изменение привести к рентабельности переменной xt? Каковы ваши рекомендации относительно того, чтобы сделать переменную х. приносящей доход?2
13. Дана следующая задача ЛП: максимизировать г = СХ при ограничениях (A, I)X = b, X > 0. Обозначим через Хв текущий базисный вектор, через Св — вектор коэффициентов целевой функции, соответствующих базисным переменным. Допустим, что вектор Св изменен на DB. Докажите, что в этом случае разности 2.-су, соответствующие базисному вектору Хв, останутся равными нулю. Дайте объяснение этому.
7.2.2. Вычислительная процедура модифицированного симплекс-метода
Имея условия оптимальности и допустимости, приведенные в разделе 7.2.1, можно описать последовательность вычислений, выполняемых в модифицированном симплекс-методе.
Шаг 0. Находится начальное базисное допустимое решение. Пусть В и Св — базис и вектор коэффициентов целевой функции, соответствующих базисным переменным.
Шаг 1. Каким-либо подходящим способом вычисляется обратная мат-рица В .
Шаг 2. Для каждой небазисной переменной х/ вычисляется величина
zrcrCBWlV-cr
Если для всех небазисных переменных xj величины zi - с}>0 в задаче максимизации или г. - с. < 0 в задаче минимизации, то вычисления заканчиваются, так как получено оптимальное решение
хв = в-1ь,г = свхв.
Иначе на основе условия оптимальности определяется вводимая (в базис) переменная дс как небазисная переменная, которой соответствует наибольшая (по модулю) отрицательная величина г. - с/ в задаче максимизации или наибольшая положительная в задаче минимизации.
Этот вопрос можно переформулировать без "экономического" подтекста: при каких условиях переменная xt может быть представлена в оптимальном решении? — Прим. ред.
3 В большинстве руководств по линейному программированию, включая первые шесть изданий этой книги, приводится метод вычисления обратной матрицы на основе ее мультипликативного представления (см. раздел А.2.7). Поскольку в симплекс-методе последовательные базисы отличаются только одним вектор-столбцом, мультипликативное представление обратной матрицы позволяет не вычислять заново обратную матрицу на очередной итерации симплекс-метода, а получать ее из обратной матрицы предыдущей итерации, что значительно упрощает вычисления. Автор удалил описание этого метода получения обратной матрицы из данной главы, так как он не рассчитан на машинную реализацию вследствие возможных серьезных проблем, порождаемых ошибками округления. Обычно в программах, реализующих симплекс-метод, для вычисления обратной матрицы используются другие численные методы, такие как метод декомпозиции (разложения на две треугольные матрицы). В частности, программа TORA использует метод декомпозиции.
Глава 7. Теория линейного программирования
Шаг 3. Вычисляется вектор В~'Ру. Если все элементы этого вектора отрицательны или равны нулю, вычисления заканчиваются, так как задача не имеет ограниченного решения. Иначе вычисляется вектор В 'b. Для всех строго положительных элементов вектора В_1Р вычисляется отношение, определенное в условии допустимости. Базисная переменная xt, которой соответствует наименьшее отношение условия допустимости, становится исключаемой из базиса переменной.
Шаг 4. Из текущего базиса В формируется новый базис путем замены в базисе В вектора Р; на вектор Р,. Выполняется переход к этапу 1 для начала новой итерации.
Пример 7.2.1
С помощью модифицированного симплекс-метода решим заново задачу о компании Reddy Mikks из раздела 2.1. Решение этой задачи обычным симплекс-методом дано в разделе 3.3.2. Сравнение двух решений данной задачи показывает, что оба метода выполняют одну и ту же последовательность действий.
Представим в матричном виде рассматриваемую задачу, уже приведенную к стандартной форме:
максимизировать г = (5, 4, 0, 0, 0, 0)(л:1, хг, х3, xt, х5, х6)Т
при ограничениях
V | |||||||
' 6 4 | (Г | *2 | '24s | ||||
1 2 | *3 | ||||||
-1 1 | *4 | ||||||
, 0 1 | к | *5 | |||||
Л) | |||||||
#2» | *4. | *5> *6^0. |
Мы используем запись С = (с,, с2, с6) для представления вектора коэффициентов целевой функции и (Р,, Р2, Р6)— для представления столбцов коэффициентов левых частей ограничений. Вектор правых частей ограничений обозначим Ь.
В следующих вычислениях мы приводим формулы, по которым выполняются вычисления, и конечный результат без подробных арифметических выкладок, которые читатель может выполнить самостоятельно.
Итерация О
Х„ - (*„ xt, xt, х/, СВо = (0, 0, 0, 0). В0 = (Р3,Р4,Р5,Рв) = 1, в-' -I.
Таким образом,
Х,о = В-1Ь = (24,6,1,2)Г, г=СД =0.
7.2. Модифицированный симплекс-метод
Вычисления условия оптимальности св|в-' = (0, 0, 0, 0).
Ц " *,Ui - С*Л' (Pi. Р.) - <*„ сг) = (-5, -4). Отсюда следует, что вводимым в базис вектором будет Р,. Вычисления условия допустимости
xe„ = (*з> *4. *6. ^e)r = (24> 6' *> 2)Г-В-'Р, =(6, 1,-1, 0)г.
Следовательно,
х, =1шп|^ру,—,—| =min{4, 6,—,—}=4, и вектор Р3 определяется как исключаемый из базиса.
Результаты выполненных вычислений представим в виде знакомой симплекс-таблицы. Такое представление поможет сравнить модифицированный и обычный симплекс-методы.
Базис | Х1 | хг х3 | Хл | хь | х6 | Решение |
z | -5 | -Л 0 | ||||
Хз | ||||||
Х4 | ||||||
Хь | -1 | |||||
Хб |
Итерация 1
Х«, = (*,. *4> *S> *в) > СВ, = (5> °> 0> 0)-
(6 О О ОЛ
В.^.Р,, Р5,Рв) =
110 0 -10 10 ^0 0 0 1,
Используя подходящий метод вычисления обратной матрицы В~' (в разделе А.2.7
приведен метод вычисления обратных матриц на основе их мультипликативного представления), находим
' i о о 0Л
о
-110 0 6
ioio
0 0 0 1
Отсюда получаем
В~' b = (4, 2, 5, 2) 2 = Св Хв = 20.
Глава 7. Теория линейного программирования
Вычисления условия оптимальности
снв:' = -,о,о,о
Ц " с)ггя = С„В-1 (Р2) Р3) - (с2, с3) = ^-|, |
Отсюда следует, что вводимым в базис будет вектор Р2. Вычисления условия допустимости
хч = (*i> х*> хь> x<f = (4> 2' 5> 2)Г-
ВГ'Р2=1т.т.г.1
2 4 5
з'з'з'
Следовательно,
и вектор Р4 определяется как исключаемый из базиса. (Постройте симплекс-таблицу, отображающую результаты вычислений этой итерации.)
Итерация 2
Хв, = (*„ хг, х5, х/, Св, = (5, 4, 0, 0).
В2 = (Р„Р2,Р5,Р6) =
(Ь 4 0 0 12 0 0 -1110 0 10 1
Находим
/ 1
в;1 =
о о
i 0 0
I 1 0
i л о i
Отсюда получаем
хв, = в2-ь=|з,т,т.
Ill
2'2'2
z= СЯХЙ. -21.
Вычисления условия оптимальности
ад'=(2.1, о, о].
izj - *,U« = С8;В2-' (Р3, Р4) - (с3, с4) = ^, 1 Отсюда следует, что решение ХЛ оптимально. Вычисления заканчиваются. Оптимальное решение:
х. = 3. л:„ = 1.5. 2 = 21.
7.2. Модифицированный симплекс-метод
УПРАЖНЕНИЯ 7.2.2
1. В примере 7.2.1 представьте результаты вычислений, выполненных на первой и второй итерациях, в виде симплекс-таблиц.
2. Решите модифицированным симплекс-методом следующие задачи ЛП.
a) Максимизировать z = 6л:, - 2х2 + Зх3 при ограничениях
2 л:, - х2 + 2х3 < 2, х1 +4х3 < 4,
b) Максимизировать г = 2л:, + л:2 4- 2л:3 при ограничениях
4л:, + Зл:2-1-8д:3< 12, 4л:, + л:2 +12л:3<8, 4л:,-л:2 + 3л:3<8, л:,, л:2, х3>0.
c) Минимизировать z = 2jc, + л:2 при ограничениях
Зл:, -Ь л:2 = 3, 4л:, + Зл:2 > 6, л:, + 2л:2<3, л:,, лс2>0.
d) Минимизировать z = 5лс, - 4л:2 4- 6л:3 4- 8л:4 при ограничениях
л:, + 7л:2 + Зл:3 + 7л:4 < 46, Зл:, - л:2 + л:3 + 2л:4<20, 2xl + 3x2-x3 + xi>18,
^2' ^3* ^4 ~ ^*
3. Решите следующую задачу ЛП с помощью модифицированного симплекс-метода, используя в качестве начального базиса вектор = (л:2, л:4, л:5)г.
Минимизировать г = 7х2 + 11л:3 - 10л:4 + 26л:6 при ограничениях
х2-х3 + х, + хв = 6,
л:2 - д:3 4- д:4 4- Зл:6 — 8,
л:, 4- л:2 - Зл:3 4- л:4 4- л:5 = 12,
Х> ^3> ^Ч' ^5' ^"6 —
4. Используя модифицированный симплекс-метод в схеме вычислений двух-этапного метода с искусственными переменными, решите следующие задачи.
a) Задача из упражнения 2,с.
b) Задача из упражнения 2,d.
Глава 7. Теория линейного программирования
с) Задача из упражнения 3 (отказавшись от предложенного начального решения Хдо).
5. Модифицированный двойственный симплекс-метод. Последовательность выполнения модифицированного двойственного симплекс-метода (использующего матричные вычисления) можно описать следующим образом.
Шаг 0. Пусть В0 = I — начальный базис, причем хотя бы один из элементов вектора отрицателен (т.е. решение недопустимо).
Шаг 1. Вычисляем текущие значения базисных переменных: Хв = B"'b. Выбираем в качестве исключаемой из базиса переменную, имеющую наибольшее отрицательное значение (обозначим исключаемую переменную хг). Если все элементы в Хв неотрицательны, то вычисления заканчиваются, так как достигнуто допустимое решение.
Шаг 2.
a) Для всех небазисных переменных ху вычисляем разности zj-cj = СВВ_1Р. - е..
b) Для всех небазисных переменных ху вычисляем коэффициенты ограничений (В"'Р )г, ассоциированные со строкой, соответствующей исключаемой переменной хг.
c) Определяем вводимую в базис переменную как переменную, на которой достигается следующий минимум.
, (В-'рд<о|.
Если все (В'РД > 0, допустимого решения не существует.
Шаг 3. Формируем новый базис путем замены в базисе вектора Р. на Рг. Вычисляем новую обратную матрицу В"1 и переходим к шагу 1.
Примените описанный метод для решения следующей задачи.
Минимизировать z = 2х, + х2
при ограничениях
Зх, + х2 > 3, 4х, + Зх2 > 6, х, + 2х2 < 3, х,, х2> 0.
7.3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧ С ОГРАНИЧЕННЫМИ ПЕРЕМЕННЫМИ
В некоторых моделях линейного программирования на значения переменных могут налагаться явные положительные верхние и нижние ограничения. Например, в производственных моделях нижние и верхние границы переменных могут соответствовать минимальным и максимальным значениям спроса на определенную продукцию. Явные ограничения, налагаемые на переменные, особенно заметны при решении задач целочисленного программирования методом ветвей и границ (см. раздел 9.3.1).
= min
j
(В-РД
7.3. Алгоритм решения задач с ограниченными переменными
Специальный алгоритм решения задач с ограниченными переменными, который мы рассмотрим в этом разделе, особенно эффективен, поскольку он учитывает тот факт, что ограничения заданы в явном виде. Сначала рассмотрим более простой случай, когда заданы только нижние границы на значения переменных. При явных ограничениях X > L замена (подстановка) типа
X = L + X', Х'>0
позволяет решать задачу ЛП относительно переменных X', для которых нижняя граница значений равна нулю. Значения исходных переменных X вычисляются путем обратной подстановки; при этом, очевидно, гарантирована их неотрицательность.
Теперь рассмотрим ситуацию с верхними границами X<U. В данном случае прямая замена X = U - X", X" > 0 невозможна, поскольку обратная подстановка не гарантирует неотрицательности X. Здесь необходимо применение других процедур.
Запишем задачу ЛП с верхними границами на значения переменных как
максимизировать г = {СХ | (A, I)X = Ь, 0 < X < U}.
При выполнении алгоритма решения задач с ограниченными переменными явно используются только ограничения (A, I)X = b, X > 0; ограничения вида X < U учитываются лишь в измененном симплексном условии допустимости.
Пусть Хв = В_1Ь — текущее базисное допустимое решение задачи ЛП с ограничениями (A, I)X = b, X > 0. Обозначим через Р; вводимый в базис вектор, определенный на основе обычного симплексного условия оптимальности. Если предположить, что все небазисные переменные равны нулю, уравнение ограничения относительно базисной переменной xt будет записано следующим образом.
(ХД=(В,Ь),-(В-,Р.),х/
Поскольку вводимая переменная х примет положительное значение, величина базисной переменной (Хв), возрастет или уменьшится, в зависимости от того, будет значение (В'РД отрицательным или положительным. Таким образом, при определении значения вводимой переменной xj необходимо удовлетворить следующие три условия.
1. Базисная переменная (Хв), должна остаться неотрицательной, т.е. (Хв), > 0.
2. Базисная переменная (Хв), не должна превышать своей верхней границы, т.е. должно выполняться неравенство (Хв), < (UB)„ где UB — вектор, содержащий упорядоченные элементы вектора U, соответствующие вектору Хв.
3. Вводимая переменная xt не может принять значения, превышающего верхнюю границу, т.е. должно выполняться неравенство x.<ut, где и.— у-й элемент вектора U.
Первое условие (Хв), > 0 требует выполнения неравенства
(В-Ц-СВ-'РДа^О, которое заведомо будет выполняться, если
х,*е.=тЫ(В"Н-
(в-'рд
(В-'РДэ-О .
Это условие полностью соответствует условию допустимости обычного симплекс-метода.
Глава 7. Теория линейного программирования
Условие (ХД < (UB), эквивалентно неравенству
(в-'ьх-св-'рдж^ид,
которое будет выполняться, если
|(B-'b),-(U,),
л: <8, = тЫ ' - ' 1 (В-'Р,),
(В~'РД. <0
Наконец, третье условие будет выполнено, если выполняется неравенство х < иг Все три неравенства относительно х. можно обобщить в виде следующего условия.
лгу = тт{в1( 92, и).
Базис, формируемый для следующей итерации, зависит от того, какое значение (0,, 02 или и) примет переменная х}. Предполагая, что (Хв)г— исключаемая переменная, получаем следующие правила формирования базиса.
1. Если х. = Qj, то переменная (Хв)г исключается из базиса и принимает нулевое значение. Новый базис формируется точно так же, как в обычном симплекс-методе с вводимой переменной xt и исключаемой (Хв)г.
2. Если хл = 62, переменная (Хв)г исключается из базиса и принимает значение своей верхней границы. Новый базис формируется точно так же, как в обычном симплекс-методе, но с учетом того, что переменная (Хв)г равна верхней границе. Поскольку значения в, и 62 получены при условии, что все небазисные переменные равны нулю, необходимо выполнить преобразование новой небазисной переменной (Хв)г, чтобы она также приняла нулевое значение.
Это достигается с помощью подстановки (XB)r= (UB)r- (Xfi)', где (Хв)'>0.
Не имеет особого значения, когда выполняется эта подстановка: до или после вычисления нового базиса.
3. Если х^ = ujt то базисный вектор Хв остается неизменным, поскольку в данном случае никакая из текущих базисных переменных не принимает ни нулевого значения, ни значения своей верхней границы. Таким образом, переменная х} остается небазисной, но со значением своего верхнего предела. После подстановки дс = ы; - лгу выполняется следующая итерация симплекс-метода.
В случае равенства значений 0,, 02 и ыу выбор правила, в соответствии с которым переходим к следующей итерации симплекс-метода, произволен. Вместе с тем предпочтительнее использовать третье правило (л:у = и), так как в этом случае требуется выполнить меньший объем вычислений.
Подстановка xf = и} - x't изменяет исходные значения с}, Ру и b на cj = -cjt PJ = -Ру
и b' = b - UjPj. Это означает, что при выполнении модифицированного симплекс-метода на каждой итерации все вычисления (таких величин, как В"1, Хв и zy-cy) должны основываться на измененных значениях С, А и b (более подробно этот вопрос рассмотрен в упражнении 7.3.1.5).
7.3. Алгоритм решения задач с ограниченными переменными
Пример 7.3.1
Решим следующую задачу ЛП вышеописанным методом решения задач с ограниченными переменными.
при ограничениях
х,+у + 2х3<14,
2х1 + 4у + 3х3<43,
О < х, < 4, 7 < у < 10, 0 < х3 < 3.
Поскольку переменная у ограничена положительной константой не только сверху, но и снизу, производим замену у = х2 + 7, где 0 < х2 < 10 - 7 = 3.
Во избежание излишних вычислительных сложностей здесь мы применим не модифицированный симплекс-метод, а обычный симплекс-метод в виде компактных симплекс-таблиц.
Итерация 0
Базис Xi хг хз xt х5 Решение
z -3 -5 -2 0 0 35
xt 112 10 7
хъ 2 4 3 0 1 15
Имеем В = В"1 = I и Хв = (л:4, xs)T = B~'b = (7,1 Ъ)т. Принимая переменную х2 в качестве вводимой в базис переменной (z2 - с2 — -5), получаем B~lP2 = (1, 4)т. Отсюда следует
02 = оо (поскольку В_1Р2 > 0).
Так как по условию л:2 < 3, получаем значение, принимаемое переменной х2.
х2 = min{3,75, °о, 3} = 3 = и2.
Поскольку л:2 = и2, базис остается неизменным; переменная х2 в базис не вводится (остается небазисной), но принимает значение своей верхней границы. После подстановки х2 = 3 - х получаем новую симплекс-таблицу.
Базис | Х1 | / Х2 | хз | Xt | х5 | Решение |
z | -3 | -2 | ||||
Xi, | -1 | |||||
Хь | .. 2 | -Л |
Выполненная подстановка изменяет исходный вектор правых частей ограничений с Ь= (7, 15)г на Ь' = (4, 3)г. Эти изменения должны учитываться в последующих вычислениях.
Максимизировать z = Зх1 + 5у + 2х.
8, = mirH—, — > = 3,75 , что соответствует переменной х5,
Глава 7. Теория линейного программирования
Итерация 1. Определяем вводимую в базис переменную Базисный вектор Хв и обратная матрица В"1 (= I) такие же, как на предыдущей итерации. Вычисляем
в-'р.-а.г)'.
Отсюда следует
6, = nun j у, — > = 1,5 , что соответствует переменной х&,
92 = оо (поскольку В-1Р, > 0).
Так как по условию задачи де, < 4, получаем значение, принимаемое переменной
jeI-min{l,5,oo, 4} = 1,5 (=9,).
В данной ситуации переменная х, становится базисной со значением 1,5, переменная jc5 выводится из базиса и принимает нулевое значение. Получаем следующую симплекс-таблицу.
Базис | Х1 | Xi | Хь | Решение | ||
z | -1 | 5/2 | 3/2 | 109/2 | ||
Xi | 1/2 | -1/2 | 5/2 | |||
х, | -2 | 3/2 | 1/2 | 3/2 |
Итерация 2. Имеем новую обратную матрицу.
В =
о
Значения базисных переменных определяются так:
Хв = (*4> xj = В1 Ь' = (5/2, 3/2)т,
где Ь' = (4, 3)г— значения правых частей ограничений, вычисленные в конце нулевой итерации.
Определяем х как вводимую в базис переменную. Учитывая, что К = -Р2, получаем
Далее вычисляем
'5 2 1'
в'р; =(i,-2)r
= 2,5 , что соответствует базисной переменной xt,
= 1,25 , что соответствует базисной переменной хг.
Так как по условию х[ < 3, получаем значение, принимаемое переменной х.
х2 = min{2,5,1,25, 3} = 1,25 (= 82).
7.3. Алгоритм решения задач с ограниченными переменными
Таким образом, переменная х'г вводится в базис (со значением 1,25), из которого
исключается переменная дс, с ненулевым значением, равным ее верхней границе. Применяем подстановку х1 = 4 - х и получаем следующую симплекс-таблицу.
Базис | А | х2 | Хз | ха | Xs | Решение |
z | -1 | 5/2 | 3/2 | 109/2 | ||
ха | 1/2 | -1/2 | 5/2 | |||
-1 | -2 | 3/2 | 1/2 | -5/2 | ||
Далее в базис вводится переменная | х и исключается х | , что приводит к следующей | ||||
симплекс-таблиц | е. | |||||
Базис | А | х. | Хз | ха | Xs | Решение |
z | 1/2 | 7/4 | 5/4 | 223/4 | ||
Ха | ■1/2 | 5/4 | -1/4 | 5/4 | ||
/ X, | 1/2 | -3/4 | -1/4 | 5/4 |
Данная таблица представляет допустимое оптимальное решение. Оптимальные значения переменных х1У хг и х3 получаем обратной подстановкой: дс, = ui - х =4-0 = 4, хг = и2 - х'2 = 3 - 5/4 = 7/4 и х3 = 0. Теперь вычисляем значение переменной у: у = 12 + х2=7 + 7/4 = 35/4. Оптимальное значение целевой функции равно z = 223/4.
УПРАЖНЕНИЯ 7.3.1
1. Дана следующая задача линейного программирования.
Максимизировать z = 2xt + х2
при ограничениях
х1 + х2<3, 0 < х, < 2, 0 < х2 < 2.
a) Решите задачу графическим способом и определите последовательность крайних точек пространства решений, ведущих к оптимальному решению.
b) Решите задачу с использованием метода решения задач с ограниченными переменными и покажите, что данный метод порождает ту же последовательность крайних точек пространства решений, приводящую к оптимальному решению, что и графический способ.
c) Как алгоритм решения задач с ограниченными переменными распознает крайние точки пространства решений?
2. Решите следующую задачу ЛП методом решения задач с ограниченными переменными.
Максимизировать z = бде, + 2х2 + 8х3 + 4xt + 2xs + 10х6 при ограничениях
8х, +х2 + 8х3 + 2xt + 2хъ + 4х6 < 13, 0<x<l,j = l,2, ...,6.
Глава 7. Теория линейного программирования
3. Решите следующие задачи ЛП методом решения задач с ограниченными переменными.
a) Минимизировать z = бдс, - 2х2 - Зх3 при ограничениях
2х, + 4х2 + 2х3<8, х,-2х2 + 3х3<7, О < х, < 2, 0 < х2 < 2, 0 < х3 < 1.
b) Максимизировать z = Зх, + Ъх2 + 2х3 при ограничениях
х, + 2х2 + 2х3<10, 2х, +4х2 + 3х3< 15, О < х, < 4, 0 < х2 < 3, 0 < х3 < 3.
4. В следующих задачах некоторые переменные имеют положительные нижние границы. Решите эти задачи методом решения задач с ограниченными переменными.
a) Максимизировать z = Зх, + 2х2 - 2х3 при ограничениях
2х,+ х2 + х3<8, х, + 2х2 - х3 > 3, 1<х,<3, 0<х2<3, 2<х3.
b) Максимизировать z = xl + 2х2 при ограничениях
-х, + 2х2>0, Зх, +2х2< 10, -х, + х2< 1, 1<х,<3,0<х2<1.
c) Максимизировать z = 4х, + 2х2 + 6х3 при ограничениях
4х, - х2 < 9, -х, +х2 + 2х3<8, -Зх,+ х2 + 4х3<12, 1<х,<3,0<х2<5, 0<х3<2.
5. Рассмотрим матричное представление задачи с ограниченными переменными. Разобьем вектор X на две части (Хг, Хц), где элементами вектора Хц являются переменные, к которым в процессе выполнения алгоритма будет применена подстановка, эквивалентная их верхнему пределу. Тогда задачу ЛП с ограниченными переменными можно записать следующим образом.
f 7 ^
1 -с; -с,Л
0 D, D.
7.3. Алгоритм решения задач с ограниченными переменными
Пусть В (и Хв) — базисное решение текущей симплексной итерации, полученное после подстановки Хц = Uu - Х'и, где U„ — подмножество элементов вектора значений верхних границ U, соответствующего переменным Хц. Покажите, что в данном случае симплекс-таблица имеет следующий вид.
Базис | К | Решение | |
z | CSB_1DZ-CZ | — СвВ 1Du + Си | CsB-1 ь' + с„иц |
Xs | B"1D; | -В_1Оц | В"1 Ь' |
Здесь b' = b - DUUU.
6. В задаче из примера 7.3.1 выполните следующее.
a) На этапе итерации 1, используя матричные представления, проверьте, что Хв = (х4, х1)г = (5/2,3/2)г.
b) На этапе итерации 2 покажите, как на основе исходных данных задачи можно вычислить В"1. Затем, используя матричные представления, проверьте вычисленные в примере значения переменных х4 и х,.
7. Решите задачу из упражнения 3.1 с помощью модифицированного (использующего матричные представления) симплекс-метода.
8. Двойственный симплекс-метод решения задач с ограниченными переменными. Двойственный симплекс-метод (раздел 4.4) также можно модифицировать для учета явных ограничений, налагаемых на переменные. Для этого после подстановок xt = u;- x't (uj — верхняя граница переменной х-, если uf
бесконечна, заменяем ее достаточно большим положительным числом М) исходная задача записывается в двойственной форме. Далее выполняются следующие действия.
Шаг 1. Если значение какой-либо базисной переменной (Хв), превышает ее верхнюю границу, выполняем замену (ХД = (UB), - (Х6).'.
Шаг 2. Если базисное решение допустимо, вычисления заканчиваются.
В противном случае среди базисных переменных определяем исключаемую из базиса переменную хг как имеющую наибольшее отрицательное значение.
Шаг 3. В соответствии с условием оптимальности двойственного симплекс-метода определяем вводимую в базис переменную.
Шаг 4. Выполняем пересчет базиса. Переходим к шагу 1.
Примените описанный алгоритм к следующим задачам.
а) Минимизировать г = -Зх, - 2х2 + 2х3
при ограничениях
2х, + х2 + х3 < 8, -х, + 2х2 + х3> 13, 0<х,<2, 0<х2<3, 0<х3<1.
Глава 7. Теория линейного программирования
Ь) Максимизировать г = хг + Ъх2 - 2х3 при ограничениях
4x1 + 2х2 + 2х3 < 26, + Здс2 + 4х3> 17, О < х, < 2, 0 < х2 < 3, 0 < х3 (х3 сверху не ограничена).
7.4. МЕТОД ДЕКОМПОЗИЦИИ
Рассмотрим разработку производственного плана предприятия, состоящего из нескольких подразделений. Хотя каждое подразделение имеет собственные производственные возможности и соответствующие ограничения, производственные планы отдельных подразделений обобщаются на уровне управления предприятием. Таким образом, результирующая модель рассматриваемого предприятия будет содержать ограничения двух типов: общие, соответствующие уровню всего предприятия, и независимые, отображающие производственные ограничения отдельных подразделений. На рис. 7.5 показана структура ограничений для л подразделений. Отсутствие общих ограничений означает, что все подразделения независимы.
Метод декомпозиции предлагает эффективный вычислительный алгоритм решения задач со структурой ограничений, подобной показанной на рис. 7.5, путем разбиения исходной задачи на л подзадач, которые решаются независимо друг от друга. Вместе с тем отметим, что применение этого метода особенно оправдано, когда расчеты выполняются на вычислительном устройстве с ограниченной скоростью выполнения операций и ограниченным объемом памяти. Сегодня, когда вычислительная техника имеет огромную (по сравнению с недавним прошлым) производительность, необходимость в методе декомпозиции не так очевидна. Несмотря на это мы рассмотрим данный метод, поскольку он представляет интерес в теоретическом плане.
Общие ограничения
Независимые ограничения'
Подразделение 1
Подразделение 2
Подразделение л
Рис. 7.5. Структура декомпозиции задачи линейного программирования
Математическую модель, к которой применяется метод декомпозиции, запишем в следующем виде.
Максимизировать г = С,Х, + С2Х2 + ... + СлХп
при ограничениях
7.4. Метод декомпозиции
+ АпХл = bo
= Ь,
= ь2
D„Xn = Ьл
Х;>0, ; = 1,2.....п.
При необходимости ограничения в виде неравенств с помощью дополнительных переменных преобразуются в равенства.
Метод декомпозиции основан на определении крайних точек множеств {Xj DyXy = b;, Ху > 0}, / = 1, 2, п. Для этого необходимо, чтобы каждое множество {Xj^X^b,, X.>0} было ограниченным. Это требование выполнимо всегда, поскольку при необходимости для любого множества / можно добавить искусственное ограничение IX. < М, где М — достаточно большое положительное число.
Обозначим через Yyt, k=l, 2, KJt крайние точки множества {X. |DyX. = Ь>, X. > 0}. Тогда можно записать
ху=ЕРЛ' У-1,2,..., и,
Ki
где Р>4 > 0 для всех k и /*, причем = 1.
Теперь переформулируем исходную задачу в терминах крайних точек и получим так называемую главную задачу, определяемую следующим образом.
*1 к. к.
Максимизировать z = XCiyi*Pu +ZC2Y2*p2* + - + Zc»y«'p«4 при ограничениях
z a.y.»p.* +i a^*p^+-+i a»y»»p»*=ь° -
4=1 4=1 4 = 1
4=1
IP- =1-
4 = 1
P^ > 0 для всех k и j.
В главной задаче новыми переменными являются pJt. После того как будет найдено оптимальное решение Рд этой задачи, оптимальное решение исходной задачи
вычисляется путем обратных подстановок по следующей формуле.
Х,=1Р"Л , / = 1,2,...,п.
4 = 1
AiXi + D,X,
АгХ2 + D2X2
Глава 7. Теория линейного программирования
Может показаться, что для решения главной задачи необходимо предварительно найти все крайние точки Ylk, что является очень трудной задачей. К счастью, это не так.
При решении главной задачи с использованием модифицированного симплекс-метода (раздел 7.2) на каждой итерации нам необходимо определить вводимую и исключаемую переменные. Начнем с определения вводимой переменной. Зная текущий базис главной задачи (и, следовательно, матрицы Св и В"1), для любой небазисной переменной pyt. имеем
z.
где
■^-СвВ"Р^-Сд,
j Х1к
О
Напомним: чтобы определить, какая из небазисных переменных Рук должна войти в базис, следует найти
z,..,.-crt. = min {zjk-cjt.
по всем] и к
Если z .к. -сгк. <0 , тогда в соответствии с условием оптимальности задачи максимизации переменная р t, должна войти в базис. При выполнении обратного нера-
с;,4.. "Секрет" вычисле-
венства считаем, что оптимальное решение достигнуто. Теперь покажем, как можно вычислить разность zr
ний заключается в равенстве
mi" -cjt) = min{min{z;< -с,}} ■
>bccm;hAj 1 ; L * L ' 1 i
Это равенство вытекает из того, что каждое выпуклое множество, определяемое ограничениями DXy = Ьу, Ху > 0, имеет собственное независимое множество крайних точек. В соответствии с этим равенством мы можем найти разность z.j,k. - cJ4. за два этапа.
1. Для каждого выпуклого множества {XjD^X^b^, Ху>0} определяем крайнюю точку Y.t„ на которой достигается минимум разностей zjk - cjk, т.е. zjk, -<:^ = mmk{zik-cjk}.
2. Далее определяем zt.k,-сгк. = min^,, - с)к.}.
Из теории линейного программирования мы знаем, что конечное оптимальное решение ассоциируется с крайней точкой пространства решений. Поскольку каждое из множеств {X. | DyX. = bjt X. > 0} ограничено по определению, действия, выполняемые в п. 1, математически эквивалентны решению л задач линейного программирования вида
минимизировать ш. = {г; - с, | D.X. = Ь., Ху > 0}.
Фактически здесь целевая функция шу является линейной функцией от Ху (см. упражнение 7.4.1.8).
Таким образом, определение вводимой переменной pfk, в главной задаче сведено к решению л задач линейного программирования (меньшего размера) для вычис
7.4. Метод декомпозиции
ления "вводимых" крайних точек Yy,t„. Такой подход не требует определения всех крайних точек всех п выпуклых множеств. После того как требуемая крайняя точка определена, нетрудно определить все элементы вектора Р . На основе этой информации мы можем определить исключаемую переменную. Далее с помощью модифицированного симплекс-метода вычисляем следующую обратную матрицу В"1.
Пример 7.4.1
Решим с помощью метода декомпозиции следующую задачу ЛП.
Максимизировать z = 3xt + 5х2 + х3 + х4
при ограничениях
я, + х2 + х3 + х4 < 40, Ъх, + х2<2, х3 + х4> 5, х3 + 5х4 < 50, х2, х3, х4 — 0.
Данную задачу можно разбить на две подзадачи, которым будут соответствовать следующие множества переменных:
X, = (xv х2) , Х2 = (х3, х4) .
Основную задачу можно записать следующим образом.
Подзадача 1 | Подзадача 2 | Начальное базисное решение |
Р" Р« - Р„, | Р21 Рг2 - Р2А:, | Х5 Хв х7 |
C,Yn C,Y12 C,YlK, | C2Y21 C2Y22 ... C,Y,, | 0 -М -М |
AiY,, A,Y12 ... A,Y,X] 1 1 ... 1 0 0 ... 0 | AoY21 AoY22 ... A2Y2JCi 0 0 ... 0 1 1 ... 1 | 1 0 0 =40 0 1 0 =1 0 0 1 =1 |
С, = (3, 5), A, = (1, 1). Пространство решений D1X1 < Ьь 5xi +х2 < 12, xi, х2 >0. | С2 = (1, 1), Аа = (1, 1). Пространство решений 02Хг < Ь2: Хз + Х4 > 5, хз + 5х* < 50, Хз, Х4 > 0. |
Отметим, что дополнительная переменная х5 введена для преобразования общего ограничения к виду равенства
л;, + х2 + х3 + х4 + хь = 40.
Эта переменная не входит ни в одну подзадачу, ее значение находится как часть решения главной задачи. Другие переменные в начальном базисе, хе и х7, являются искусственными переменными.
Глава 7. Теория линейного программирования
Итерация 0
Х„ = (*5, хе, х7)т = (40, 1, if, Св = (0, -М, -М), В = В 1 = I.
Итерация 1
Подзадача 1 (j = 1). Имеем
z,-c,=CeB1
0.1)
-с,х,=
= {о,-м,-м)
-(3.5)
= -Зх, - 5х, - М.
Таким образом, соответствующая задача ЛП имеет следующий вид.
Минимизировать ш, - -Здс, - 5хг - М
при ограничениях
5х1 + х2< 12, Яр х2>0.
Решив эту задачу (обычным симплекс-методом), получаем
yu = (o, i2f, z;-c; = w;=-6o-m.
Подзадача 2 (j — 2). Соответствующая задача ЛП имеет следующий вид.
Минимизировать г, -с, =С6В
= (0,-Af,-Af)
(U)
С,Х, =
-(1.1)
= ~хъ ~хА-М.
при ограничениях
х3 + х4> 5, х3 + 5х4 < 50 *4^0.
Находим оптимальное решение этой задачи.
y21 = (50,0f, z;-c;=-50-Af.
Поскольку главная задача — задача максимизации и z* - с' < z* - с], а также г,*-с*<0, следовательно, переменная Рп, соответствующая крайней точке Y,,, должна быть введена в базисное решение.
7.4. Метод декомпозиции
Для определения исключаемой переменной запишем
f (о"
Р„ =
A,Y„ 1 О
'12} 1
Отсюда В"'РП = (12, 1, 0)т. Имея Хв = (х6, х6, х7)т = (40, 1, 1)г, делаем вывод, что из базисного решения следует исключить переменную хе (искусственную переменную).
Новый базис получается путем удаления из базиса вектора, соответствующего переменной х9, и введения в базис вектора Р„. Получим (проверьте!)
( 12 0
В =
1 О О 1
-12 0} 1 о
0 1
и новое базисное решение
Хв = (х„ рп, х7)т = В'(40, 1, 1)г = (28, 1, 1)т, Св = (0, C.Y,,, -М) = (0, 60, -М).
Итерация 2
Подзадача 1 (j = 1). Вы должны проверить, что соответствующая задача ЛП останется такой же, как и на первой итерации (это простое совпадение, а не общее правило). Ее оптимальное решение дает г,* -с = wt = 0 . Отсюда следует, что никакая из
оставшихся крайних точек пространства решений подзадачи 1 не может улучшить решение главной задачи. (Оптимальным решением этой подзадачи будет крайняя точка Y,,, которой соответствует переменная Рп, уже входящая в состав базиса. Именно поэтому z' -с[ = 0 .)
Подзадача 2 (j = 2). Снова вы должны проверить, что соответствующая задача ЛП такая же (опять совпадение), как и на первой итерации. Ее оптимальное решение
Y22 = (50, Of, z;-c;=-50-Af.
Отметим, что точка Y22 фактически совпадает с крайней точкой Y21, но мы используем нижний индекс 2, чтобы показать, что эта точка соответствует второй итерации.
Из решений обеих подзадач следует, что zj - с < 0 . Это указывает на то, что переменная р22, соответствующая крайней точке Y22, должна войти в базисное решение. Для определения исключаемой переменной запишем
р,, =
о 1
(1,1)
о
о
,1
Глава 7. Теория линейного программирования
Отсюда В"'Р22 = (50, 0, if. Поскольку Хв = (х5, рп, х7)т — (28, 1, if, из базисного решения следует исключить переменную х5.
Находим новый базис и новую обратную матрицу В"1 (проверьте!)
'50 | 0" | ||
в = | |||
ч 1 | 1, | ||
Г 1 | _п | ||
в' = | |||
V 50 |
Новое базисное решение равно
Хв = (р22, рп, х7)т = В",(40, 1, If = (14/25, 1, 11/25)', Св = (C2Y22, C,YU, -М) - (50, 60, -М).
Итерация 3
Подзадача 1 (j = 1). Вы должны проверить, что на этой итерации целевая функция для данной подзадачи имеет следующий вид.
(М А (М Л 2М ло
Минимизировать w=--2 х, + --4х,---1-48.
' 150 J 1.50 J " 50
Соответствующее оптимальное решение дает
Y13 = (o,of, z;-c; =
12 М 50
•48.
Подзадача 2 (j = 2). Здесь целевая функция имеет следующий вид (проверьте!).
М
Минимизировать w1=—(xi+xi)-M.
Находим оптимальное решение:
Y23 = (5,0f, ^.-с=~
Небазисная переменная хь. Исходя из вида главной задачи, разность z; - cj для переменной л:й необходимо вычислять отдельно.
= f1+^.48-^-,-MV,0,0f-0=l + ^. I 50 50 Г 50
Отсюда вытекает, что переменная хь не может улучшить решение.
Из приведенных вычислений следует, что вводимой в базис будет переменная Р23, соответствующая крайней точке Y23. Для определения исключаемой переменной вычисляем следующее.
Рз =
0 1 (1,1)
5 0
7.4. Метод декомпозиции
Отсюда В"'Р23 = (1/10, 0, 9/10). Поскольку Хв = (р22, р„, = (14/25, 1, 11/25)7", из базисного решения следует исключить искусственную переменную х7.
Находим новый базис и новую обратную матрицу В"1 (проверьте!).
В =
г | 5Ч | ||
V | К | ||
/ | |||
V |
Новое базисное решение равно
Хв = (Р22, Р„, Р2/ = В'(40, 1, If = (23/45, 1, 22/45f, Св = (C2Y22, C.Y,,, C2Y23) = (50, 60, 5).
Итерация 4
Подзадача 1 (j = 1). w1 = -2хг - 4х2 + 48. Получаем z* -с[ = wt = 0 . Подзадача 2 (j = 2). w2 = 0x4 + 0х5 + 48 = 48.
Небазисная переменная хь. г5 - с5 = 1. Отсюда следует, что решение, полученное на третьей итерации, оптимально.
С помощью обратной подстановки вычисляем оптимальное решение исходной задачи, х; = (*„ */ = puYu = 1(0, 12f = (0, 12f, X, = (х3, х4) = P22Y22 + p23Y23 =
= — (50. Of +—(5, Of = (28, 0)T. 45 45
Все остальные переменные равны нулю. Оптимальное значение целевой функции получим путем прямой подстановки в ее выражение значений соответствующих переменных.
УПРАЖНЕНИЯ 7.4.1
1. В каждой из следующих систем ограничений графически найдите допустимые крайние точки и определите пространство допустимых решений как функцию этих крайних точек. Если пространство решений не ограничено, добавьте необходимое искусственное ограничение.
а)
х, + 2х2 < 6, 2хх + хг < 8, -х, +х2< 1, *2<2, xv х2>0.
Глава 7. Теория линейного программирования
Ь)
2*! + х2 < 2, Зх, + 4х2> 12, ХрХ2>0.
с)
х,-х2<10,
2x^40,
ХрХ2>0.
2. В примере 7.4.1 крайние точки подпространств {X, | = b„ Х,>0) и {Х21 D2X2 = b2, Х2 > 0} можно найти графически. Используйте эту информацию, чтобы сформулировать в явном виде главную задачу. Затем покажите, что применение к главной задаче модифицированного симплекс-метода порождает такую же последовательность вводимых в базис переменных pVs, как и последовательное решение отдельных подзадач 1 и 2.
3. Дана следующая задача линейного программирования.
Максимизировать z = х, + Зх2 + 5х3 + 2х4
при ограничениях
2^ + х2 < 9,
х, + 4х2 < 8,
5Х; + Зх2 + 4х3 > 10,
х3 - 5х4 < 4,
х3 + х4<10,
"^1* x2j XZ7 Xi — ^"
Постройте в явном виде главную задачу (для этого используйте крайние точки подпространств, найденные графически) и затем решите ее модифицированным симплекс-методом.
4. Решите задачу из предыдущего упражнения методом декомпозиции и сравните процесс решения при использовании разных алгоритмов.
5. Примените метод декомпозиции к следующей задаче.
Максимизировать z = 6х, + 7х2 + Зх3 + 5х4 + х5 + х6 при ограничениях
Xj + х2 + х3 + х4 + х5 + х6 < 50,
Xj + х2< 10,
х2<8,
5х3 + х4<12,
х5 + х6>5,
х5 + 5х6 < 50,
Хр х2, х3, х4, х5, х6 > 0.
6. Продумайте необходимые изменения в применении метода декомпозиции к задаче минимизации, затем решите следующую задачу.
Минимизировать z = 5Xj + Зх2 + 8х3 - 5х4
7.5. Двойственность
при ограничениях
х, + х2 + х3 + х4 > 25, ох, + х2 < 20, 5л:, - х2> 5, х3 + х4 = 20, Л-J, л:2, л:3, л:4 ^ 0.
7. Решите следующую задачу методом декомпозиции.
Минимизировать z = 10yi + 2у2 + 4у3 + 8(/4 + уъ при ограничениях
Ух + 4(/2 - у3 > 8, 2у, + jy2 + i/a > 2, Зу, + г/4 + i/5 > 4, ^ + 2у4-(/6>Ю,
<Л.</2> #3> У4>У^0-
(Совет. Рассмотрите сначала задачу, двойственную к данной.)
8. Пусть при применении метода декомпозиции количество общих ограничений в исходной задаче равно г. Покажите, что целевую функцию для подзадачи j можно записать следующим образом.
Минимизировать wj = zl-cJ = (CsRAy - С;)Х; + С^У^
Здесь матрица R состоит из первых г столбцов матрицы В"1, а V — ее (г + у')-й столбец.
7.5. ДВОЙСТВЕННОСТЬ
Двойственные задачи и соотношения двойственности на элементарном уровне мы изучали в главе 4. В этом разделе рассмотрим теорию двойственности на более строгом (доказательном) уровне, в частности, представим доказательства соотношений двойственности, которые являются основой анализа чувствительности (см. главу 4). Эти теоретические построения послужат фундаментом для описанных далее методов параметрического программирования.
7.5.1. Матричное представление двойственной задачи
Пусть прямая задача ЛП с т ограничениями и п переменными уже записана в стандартной форме.
Максимизировать z = СХ
при ограничениях
АХ = Ь, Х>0.
Обозначим через Y = (yv у2, ут) вектор переменных двойственной задачи. В соответствии с правилами, представленными в табл. 4.2, получаем следующую двойственную задачу.
Минимизировать w = Yb
Глава 7. Теория линейного программирования
при ограничениях
YA>C,
Y — вектор свободных переменных (т.е. не имеющих ограничений в знаке). УПРАЖНЕНИЯ 7.5.1
1. Докажите, что задача, двойственная к двойственной задаче, совпадает с исходной (прямой) задачей.
2. Пусть прямая задача имеет вид: минимизировать z = {СХ | АХ > b, X > 0}. Сформулируйте соответствующую двойственную задачу.
7.5.2. Оптимальное решение двойственной задачи
В этом разделе устанавливаются соотношения между прямой и двойственной задачами и показывается, как определить оптимальное решение двойственной задачи на основе оптимального решения прямой задачи. Обозначим через В оптимальный базис прямой задачи, через Св — вектор коэффициентов целевой функции, соответствующих оптимальным базисным переменным Хв.
Теорема 7.5.1. Первая теорема двойственности. Для любой пары допустимых решений (X, Y) прямой и двойственной задач значение целевой функции в задаче минимизации ограничивает сверху значение целевой функции в задаче максимизации. Для пары оптимальных решений (X*, Y ) значения целевых функций совпадают.
Доказательство. Пара допустимых решений (X, Y) удовлетворяет всем ограничениям обеих задач. Умножая слева обе части ограничений задачи максимизации на вектор (свободных) переменных Y, получим
YAX = Yb = ш.
Аналогично, умножая справа ограничения задачи минимизации на вектор (неотрицательных) переменных X, будем иметь
YAX>CX = 2.
(Неотрицательность вектора X здесь существенна, так как определяет "направленность" неравенства.) Комбинируя последние два выражения, получаем неравенство z<w, доказанное для пары любых допустимых решений (X, Y).
Отметим, что теорема не указывает, какая задача прямая, а какая — двойственная. Это очень важно при нахождении оптимальных решений обеих задач.
Из доказанной части теоремы (z < w для пары любых допустимых решений) следует, что максимум функции z и минимум функции w будут достигнуты только тогда, когда обе эти функции примут одинаковое значение. Исходя из этого, можно построить оценку близости полученных допустимых решений к оптимальным путем сравнения разности 2 - w и величины (2 + и>)/2. Чем меньше отношение 2(2 - w)/(z + w), тем ближе данные решения к оптимальным. Но, конечно, из этого эмпирического правила не следует, что оптимальные значения целевых функций равны (2 + w)/2.
Если в одной из задач целевая функция примет бесконечное значение, что можно сказать о решении другой? Ответ очевиден: другая задача не должна иметь допустимых решений. Если это не так (т.е. обе задачи имеют допустимые решения), неравенство z < w обязательно должно выполняться, что невозможно, например,
При 2 = +оо или w = -оо.
Рассмотрим обратную ситуацию. Если одна из задач не имеет допустимых решений, то обязательно ли решение другой задачи будет неограниченным? Не
7.5. Двойственность
обязательно! В следующем примере и прямая, и двойственная задачи не имеют допустимых решений.
Прямая задача. Максимизировать z = {х1 + х2 | х1 - х2 <-1, ~х1 + х2 <-1, х„ х2>0}.
Двойственная задача. Минимизировать w = {-yt - у2 у, - у2> 1, -у, + у2 > 1,
Теорема 7.5.2. Оптимальное решение двойственной задачи равно
Y = CSB
где В — оптимальный базис прямой задачи, которому соответствует вектор Св коэффициентов целевой функции.
Доказательство. Для доказательства этой теоремы надо показать, что допустимое решение двойственной задачи можно вычислить по формуле Y = СВВ , и что в соответствии с теоремой 7.5.1 z = w для оптимальных решений.
Решение прямой задачи будет оптимальным, если выполняются неравенства гу - су> О для всехj (см. раздел 7.2.1), т.е.
СВВ 'А - С > 0.
Но решение Y допустимо, если оно удовлетворяет ограничению YA > С. Это доказывает равенство Y = СВВ-1 для допустимого решения двойственной задачи Y.
Равенство оптимальных значений z и w доказывается непосредственным сравнением выражений
w = Yb = CBB 'Ь,
Переменные двойственной задачи Y= СВВ-1 иногда называют симплексными мультипликаторами. Они также известны как двойственные цены — название, идущее от экономической интерпретации этих переменных (см. раздел 4.3.1).
Обозначим через Ру у'-й столбец матрицы А. Из теоремы 7.5.2 следует, что величины
zrcrCBKlPrcrYPj-ci
равны разностям между левыми и правыми частями ограничений двойственной задачи. В начале решения прямой задачи максимизации по крайней мере для одного j выполняется неравенство zt - с. < 0; это означает, что соответствующее ограничение YP. >с не удовлетворяется. Если достигнуто оптимальное решение прямой задачи, тогда выполняются неравенства z. - с > 0 для всех /; в этом случае соответствующее решение двойственной задачи Y= СВВ~' допустимо. Таким образом, если решение прямой задачи оптимально, то решение двойственной задачи автоматически допустимо. На этом соотношении построен двойственный симплекс-метод (раздел 4.4), в котором вычисления начинаются с недопустимого решения, "лучшего", чем оптимальное. Выполнение метода продолжается до тех пор, пока не будет достигнуто допустимое решение. В противоположность этому в "обычном" симплекс-методе (глава 3) вычисления начинаются с допустимого, но "худшего", чем оптимальное, решения и продолжаются до тех пор, пока не будет достигнуто оптимальное решение.
Глава 7. Теория линейного программирования
Пример 7.5.1
В следующей задаче ЛП оптимальный базис равен В = (Р,, Р4). Сформулируем двойственную задачу и найдем ее оптимальное решение, используя оптимальный базис прямой задачи.
Максимизировать z = Зх, + 5х2
при ограничениях
х, + 2х2 + х3 = 5, -х, + Зхг + xt = 2,
Х1 Х2> ^3' Х4 — ^*
Двойственная задача имеет следующий вид.
Минимизировать w = Ъу, + 2уг
при ограничениях
У~Уг - 3> 2у, + Зу2>Ъ,
«/,.«/, поимеем В = (х,, x4)r, тогда Св = (3, 0). Оптимальный базис и его обратная матрица равны следующему.
ч: >Н%
Переменные прямой и двойственной задач имеют следующие значения.
(x1,x/ = B-1b = (5, 7f,
((/l,y2) = CBB,=(3,0).
Оба решения допустимы и 2 = w = 15 (проверьте!). Таким образом, решения оптимальны.
УПРАЖНЕНИЯ 7.5.2
1. Проверьте правильность формулировки двойственной задачи в примере 7.5.1. Проверьте графически, что прямая и двойственная задачи не имеют недопустимых решений.
2. Дана следующая задача линейного программирования.
Максимизировать z = 50х, + 30х2 + 10х3 при ограничениях
2х1 + хг ' 1, 2хг - -5, 4x, + x3 = 6, х„ хг, х3>0.
a) Сформулируйте и запишите двойственную задачу.
b) Покажите с помощью непосредственной проверки, что прямая задача не имеет допустимого решения.
7.5. Двойственность
c) Покажите, что двойственная задача не имеет ограниченного решения.
d) На основе примеров задач из предыдущих упражнений найдите соотношение между свойствами недопустимости и неограниченности прямой и двойственной задач ЛП.
3. Дана следующая задача линейного программирования.
Максимизировать z = Ьхх + 12х2 + 4х3
при ограничениях
2х, - х2 + Зх3 = 2, хх + 2х2 + х3 + хл = 5, Ху7 x2t х3, хА — 0.
a) Сформулируйте и запишите двойственную задачу.
b) В каждом из следующих случаев сначала проверьте, что приведенный базис В является допустимым для прямой задачи. Затем, используя формулу Y = CSB вычислите значения переменных двойственной задачи. Кроме того, определите, является ли данное решение прямой задачи оптимальным.
а) В = (Р4,Р3). в)В-(Р„Р,).
б) В = (Р2,Р3). г) В = (Р,, Р4).
4. Дана следующая задача линейного программирования.
Максимизировать z = 2хх + 4х2 + 4х3 - 3xt при ограничениях
х, + 4х2 + xt = 8, xv х2, х3, х4>0.
a) Сформулируйте и запишите двойственную задачу.
b) Путем вычисления разностей г. - су для всех небазисных Ру проверьте, что базис В = (Р2, Р3) соответствует оптимальному решению.
c) Найдите оптимальное решение двойственной задачи.
5. Модель ЛП содержит две переменные хг и х2 и три ограничения типа "<". Соответствующие дополнительные (остаточные) переменные обозначены как х3, хА и ху Предположим, что B = (Pj, Р2, Р3)— оптимальный базис, а соответствующая обратная матрица имеет следующий вид.
,'0 -1 О В4 = 0 1 о
,1 1 -.
Ниже представлены оптимальные решения прямой и двойственной задач.
Хя*,)г = (2,6, 2)т, Y = (y1,(/2,(/3) = (0, 3, 2). Найдите оптимальное значение целевой функции.
Глава 7. Теория линейного программирования
6. Докажите следующее соотношение между оптимальными решениями прямой и двойственной задач:
£',(B-'P,).=j>A,.
где Св = (с„ с2, .... cj иР, = (о14, a2t, am/ для = 1, 2, л, (В'РД — /-Й элемент вектора В 'Рк.
7. Запишите задачу, двойственную к следующей.
Максимизировать z = {СХ | АХ = b, X — свободные переменные}
8. Покажите, что задача, двойственная к задаче
максимизировать z = {СХ | АХ < b, 0<L<X<U< <*>}, всегда имеет допустимое решение.
7.6. ПАРАМЕТРИЧЕСКОЕ ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
Параметрическое линейное программирование — это расширение техники анализа чувствительности, которую мы рассмотрели в разделе 4.5. Здесь исследуются изменения в оптимальном решении задачи ЛП, являющиеся результатом предопределенных непрерывных изменений коэффициентов целевой функции и значений правых частей ограничений.
Пусть задача ЛП определена следующим образом.
Максимизировать z = jcx|£Vjxl= b, X>oj.
В параметрическом программировании задаются изменения коэффициентов целевой функции и правых частей ограничений. Для этого используются функции С(£) и Ь(£), зависящие от параметра изменения t. Для определенности полагаем, что t > 0.
Основная идея параметрического анализа заключается в следующем. Вначале находится оптимальное решение задачи ЛП при t = 0. Затем на основании условий оптимальности и допустимости симплекс-метода определяется интервал 0 < t < t, значений параметра t, для которых решение, полученное при t = 0, остается оптимальным и допустимым. Значение t, называется критическим. Затем определяются следующие критические значения параметра t и соответствующие им оптимальные допустимые решения. Процесс заканчивается, когда будет найдено такое значение tr, что при любых значениях t > tr последнее решение остается неизменным либо решения не существует.
7.6.1. Параметрическое изменение коэффициентов целевой функции
Пусть Х„ , В, и С„ (0 — элементы оптимального решения, соответствующего
критическому значению tt (вычисления начались при t0 = 0 с оптимальным базисом В0). Далее определяем следующее критическое значение и соответствующий ему оптимальный базис, если он существует. Поскольку изменения в векторе коэффициентов целевой функции влияют только на оптимальность решения, текущее решение Хя = B~'b останется оптимальным при t > tt до тех пор, пока будет выполняться условие оптимальности
z.(f) - с jit) = С„ (ОВГ'Р, - cy(t) > 0 для всех
7.6. Параметрическое линейное программирование
Очередное критическое значение tM определяется как наибольшее t, t > tt, при котором выполняются все условия оптимальности.
Отметим, что приведенное неравенство не требует, чтобы вектор С(0 был линейной функцией от t; допустима функциональная зависимость любого вида — как линейная, так и нелинейная. Трудность использования нелинейных функций заключается лишь в том, что численное решение системы неравенств может быть очень трудоемким. (В упражнении 7.6.1.5 рассмотрен случай нелинейной функции.)
Пример 7.6.1
Рассмотрим задачу ЛП.
Максимизировать г = (3 - 60 х, + (2 - 2t) х2 + (5 + 50 х. при ограничениях
х, + 2х2 + х3< 40, Зх, + 2х3 < 60, х1 + 4х2 < 30,
Здесь С(0 = (3 - 6t, 2 - 2t, 5 + 5t), t > 0. Введем дополнительные (остаточные) переменные х4, х5 и х6.
Оптимальное решение при t0 = 0.
Базис | Xl | х2 | Хз | Х4 | Хь | х6 | Решение |
z | |||||||
хг | -1/4 | 1/2 | -1/4 | ||||
Хз | 3/2 | 1/2 | |||||
*6 | -2 |
Хйо - (х2, х3, х/ = (5, 30, 10f СВо(/) =(2-2t, 5 + 5t, 0),
в-' = о
-2
1 1
Условия оптимальности для текущих небазисных векторов Р,, Р4 и Р5 имеют вид {<:„(/)В-'Ру - с//)}.=| о = (4 + Ш, 1 - t, 2 + 3t) > 0.
Таким образом, решение остается оптимальным до тех пор, пока выполняются неравенства
4 + 14t>0,
1 -t>0,
2 + 3t> 0.
Глава 7. Теория линейного программирования
Первое и третье неравенства выполняются при всех положительных t (напомним, что t > 0), второе — справедливо при t < 1. Отсюда имеем, что £, = 1, т.е. решение остается оптимальным (и допустимым) для всех t из интервала 0 < t < 1.
При t = 1 разность z4(f) - ct(t) = 1 -1 равна нулю и становится отрицательной при t > 1. Поэтому при f > 1 вектор Р4 должен войти в базис, тогда вектор Р2 будет исключен из базиса (см. симплекс-таблицу с оптимальным решением при t = 0). Итак, при t = 1 (вследствие включения в базис вектора Р4) получаем новое решение Х^ .
Оптимальное решение при f, = 1. Имеем новый базис и новую обратную матрицу.
'1 | о4 | ' .1 о4 | |||
. ВГ = | о ; о | ||||
,0 | К | 0 0 1, |
Отсюда получаем
Х^ = (xt, х3, хв)т = В-'Ь = (10, 30, 30)т, Ся(0 =(0, 5 + 5i, 0).
Для небазисных векторов Р1; Р2 и Р5 условия оптимальности можно записать следующим образом.
{C,(0Br-P,-ciW}^=(^.-2 + 2,.^)20
В соответствии с этими условиями базисное решение Хв остается оптимальным для
всех t > 1. Это означает, что t2 = °° и вычислительный процесс параметрического анализа закончен. Отметим, что условие оптимальности -2 + 2t > 0 автоматически "запомнило", что решение Х^ оптимально в интервале, который начинается со значения £, = 1. Такое "запоминание" всегда имеет место при параметрическом анализе.
Оптимальные решения для всей области изменения параметра t представлены в следующей таблице. Значения целевой функции получены путем подстановки значений переменных в выражение целевой функции.
г | X1 | Хг | Хз | z |
0< f< 1 | 160 + 140г | |||
t> 1 | 150 + 150f |
УПРАЖНЕНИЯ 7.6.1
1. Пусть в примере 7.6.1 параметр t может принимать как положительные, так и отрицательные значения. Определите интервал изменения значений параметра t, при которых решение Х% остается оптимальным.
2. Проведите параметрический анализ задачи ЛП из примера 7.6.1, если целевая функция задана следующими выражениями.
a) Максимизировать z = (3 + 3i) xt + 2дг2 + (5 - 6t) х3.
b) Максимизировать z = (3 - 2t) дг, + (2 +1) x2 + (5 + 2t) x3.
c) Максимизировать z = (3 +1) x, + (2 + 2t) x2 + (5 - t) x3.
7.6. Параметрическое линейное программирование
3. Проведите параметрический анализ оптимального решения следующей задачи ЛП, здесь t > 0.
Минимизировать z = (4 - t) xl + (1 - 3t) x2 + (2 - 2t) x3 при ограничениях
3jc, +jc2 + 2jc3 = 3, 4xt + Зх, + 2x3 > 6, x, + 2x2 + bx3 < 4,
X j j X — 0 •
4. При выполнении параметрического анализа в этом разделе предполагалось, что оптимальное решение задачи ЛП при t = 0 получено обычным симплекс-методом. Однако в некоторых ситуациях предпочтительнее получить оптимальное решение двойственным симплекс-методом (раздел 4.4). Разработайте схему проведения параметрического анализа для такого случая и выполните анализ задачи ЛП из примера 4.4.1, предполагая, что целевая функция задана следующим выражением.
Минимизировать z = (3 + t) х, + (2 + 4t) x2
5. Пусть в примере 7.6.1 целевая функция нелинейная по t (t > 0) и задается следующим выражением.
Максимизировать z = (3 + 2t2) х, + (2 - 2t2) x2 + (5 - t) x3.
Найдите первое критическое значение tv
7.6.2. Параметрическое изменение правых частей ограничений
Параметрическое изменение вектора правых частей ограничений Ь(£) влияет только на свойство допустимости решения. В этом случае критические значения параметра t определяются на основе условия
Х„ = В'Ь(0>0.
Пример 7.6.2
Рассмотрим задачу ЛП.
Максимизировать z = Зх1 + 2х2 + Ъх3
при ограничениях
х, + 2х2 + x3<40~t, Зх, + 2х3 < 60 + 2t, х, + 4х2 < 30 - It,
Предполагается, что t > 0.
Оптимальное решение этой задачи при t = 10 = 0 приведено в примере 7.6.1. Имеем
ХВ(] - (х2, х3, х/ = (5, 30, 10)т,
■1 о
т 0
1 1.
Глава 7. Теория линейного программирования
Чтобы найти первое критическое значение используем условие допустимости Хя = В„'Ь(/) > 0, которое в данном случае примет вид
V | ' 5-t N | |||
= | 30 + t | > | ||
хь) | ,10-3/, | ,0, |
Эти неравенства выполняются при t < 10/3. Таким образом, t, = 10/3, и базис В0 остается допустимым при изменении параметра t в интервале 0 < t < 10/3. Отметим, что здесь значения базисных переменных хг, х3 и хв изменяются при изменении параметра t.
Значение базисной переменной х6 (= 10 - 3t) равно нулю при t = t, = 10/3 и становится отрицательным для t > 10/3. Следовательно, при t = 10/3 необходимо определить новый базис В,. Для этого применим модифицированный симплекс-метод (см. упражнение 7.2.2.5). Исключаемой из базиса будет переменная х6.
Новый базис при t = 10/3.
Имея переменную хе в качестве исключаемой из базиса, определяем вводимую в базис. Поскольку
то
х«„ = (Х2> хз> *в) и ся„ С) = (2> 5> °)>
к-^и,={^в0-ру-сл^14а-(4,1,2).
Далее вычисляем
{(В^'РД. };=М], = (строка в В"1, ассоциированная с х6) (Р„ Р4, Р5) =
= (3-я строка в В0') (Р„ Р4, Р5) -= (-2, 1, 1)(Р„Р4,Р6) = = (2,-2, 1).
Отсюда следует, что
e = min< —
соответствует переменной xt. Следовательно, в базис вводится вектор Р4. Вычисляем новый базис и обратную матрицу В~'.
ХВ; (^2' ^3> Х4^ '
'2 1 \
В,=(Р2,Р3,Р4) =
0 2 0 4 0 0
'0 0
7.6. Параметрическое линейное программирование
Следующее критическое значение t2 определяем из условия Хв = В, 'b(r) >0. Отсюда получаем следующее.
( 30-7/ ^ | |||
ХУ = | 30+/ | > | |
X4j | -10 + 3/ | ,0, |
i 2 ;
Это условие показывает, что В, остается допустимым базисом для 10/3 < t < 30/7.
При t = t2 = 30/7 новый базис можно получить с помощью модифицированного двойственного симплекс-метода, при этом исключаемой из базиса будет переменная х2.
Новый базис при t2 = 30/7.
Определив исключаемую переменную х2, находим вводимую переменную следующим образом. Поскольку
ХЯ| = (х2, х3, х/ и СЯ| (/) = (2, 5, 0),
то
Далее вычисляем
{(В['Р.)Д, }>=156 = (строка в В;', ассоциированная с x2) (Р,, Р5, Р6) = = (1-я строка в В^') (Plf Р5, Р6) =
-(o.O.±)(PlfP„ Р.)-
Поскольку все элементы неотрицательны, задача не имеет допустимых решений при £>30/7. Таким образом, параметрический анализ заканчивается в точке t = *2 = 30/7.
Оптимальные решения при различных значениях параметра t приведены в следующей таблице.
xi хг | Хз | z | |
0 < f S 10/3 | 0 5-f | 30 + f | 160+ 3f |
10/3 S f<30/7 | 0 (30 - 7()/4 | 30 + г | 165 + (3/2)f |
/>30/7 | Допустимых решений нет |
Глава 7. Теория линейного программирования
УПРАЖНЕНИЯ 7.6.2
1. Для задачи из примера 7.6.2 найдите первое критическое значение t, и определите векторы, составляющие матрицу В,, для следующих случаев.
a) Ь(*) = (40 + 2t, 60 - 3t, 30 + 6tf.
b) b(0 = (40 - t, 60 + 2t, 30 - 5t)T.
2. Проведите параметрический анализ оптимального решения следующей задачи ЛП, предполагая, что t > 0.
Минимизировать г = 4.x, 4- х2 + 2х3
при ограничениях
Зх, + х2 + 2хг = 3 + 3t, 4.x, + Зх, + 2х3 > 6 + 2f, х, + 2х2 + 5х3 < 4 - *,
3. При выполнении параметрического анализа в этом разделе предполагалось, что оптимальное решение задачи ЛП при £ = 0 получено обычным симплекс-методом. Однако в некоторых ситуациях предпочтительнее получать оптимальное решение двойственным симплекс-методом (раздел 4.4). Разработайте схему проведения параметрического анализа для такого случая и выполните анализ задачи ЛП из примера 4.4.1, предполагая, что вектор правых частей ограничений задачи задан следующим выражением (считаем, что t > 0).
b(0 = (3 + 2f, 6-t, 3-4г)т
4. Решите задачу из упражнения 2, предполагая, что вектор правых частей ограничений задан следующим выражением.
Ь(0 = (3 + 3t 6 + 2t 4 - t2f
Затем решите эту же задачу при условии, что параметр t может принимать как положительные, так и отрицательные значения.
7.7. МЕТОД КАРМАРКАРА
В симплекс-методе оптимальное решение находится путем продвижения вдоль граней пространства решений от одной угловой (крайней) точки к другой. Хотя на практике симплекс-метод применяется для решения очень больших задач, теоретически количество итераций, необходимых для достижения оптимального решения, может расти по экспоненциальному закону. Можно построить задачу ЛП с л переменными, при решении которой необходимо перебрать все 2" крайних точек, пока не будет достигнуто оптимальное решение.
В 1984 году Н. Кармаркар (N. Karmarkar) разработал алгоритм с полиномиальным временем выполнения, который "пробегает" по внутренним точкам пространства решений. Этот алгоритм особенно эффективен при решении очень больших задач ЛП.
Мы сначала рассмотрим основную идею метода Кармаркара, а затем остановимся на вычислительной реализации алгоритма.
7.7. Метод Кармаркара
7.7.1. Основная идея метода Кармаркара
Рассмотрим очень простой пример.
Максимизировать г = хх при выполнении ограничения
0<хх<2.
Вводим дополнительную (остаточную) переменную х2. Задача в стандартной форме будет записана следующим образом.
Максимизировать г = х1
при ограничениях
х^ ~~ х^ 2) хх, х2 > 0.
Эта задача представлена на рис. 7.6. Ее пространство решений совпадает с отрезком прямой АВ. Направление возрастания целевой функции z совпадает с положительным направлением оси хх.
х2
Рис. 7.6. Иллюстрация основной идеи метода Кармаркара
Начнем поиск оптимального решения с произвольной внутренней (не крайней) точки С пространства допустимых решений (отрезок АВ). Градиент целевой функции г = х, в точке С показывает направление скорейшего возрастания функции г. Если мы зафиксируем какую-нибудь точку вдоль градиента и опустим из нее перпендикуляр на пространство допустимых решений, то получим новую точку D с лучшим значением целевой функции. Такое улучшение значения целевой функции получено вследствие движения по направлению проекции CD градиента. Если мы повторим описанную процедуру для точки D, получим новую точку Е, которая будет еще ближе к точке оптимума В. Таким образом, если мы будем двигаться (но осторожно) в направлении проекции градиента, то, вероятно, рано или поздно
Глава 7. Теория линейного программирования
"споткнемся" о точку оптимума В. Если же необходимо найти минимум целевой функции (вместо ее максимума), следует перемещаться в направлении, противоположном проекции градиента, т.е. от точки В к точкеА, где хх = 0.
Конечно, данную процедуру нельзя считать алгоритмом (в обычном смысле), но идея очень интересная! Чтобы воплотить эту идею в алгоритм, необходимо выполнить модификации приведенной процедуры, гарантирующие, что, во-первых, последовательность шагов, сделанных вдоль проекции градиента, не "перескочит" через точку оптимума, во-вторых, в общем л-мерном случае направления, указанные проекциями градиентов, не приведут алгоритм к неоптимальной точке (т.е. не "зациклят" алгоритм на неоптимальной точке). Если реализовать эти условия, то получим вполне работоспособный алгоритм.
7.7.2. Алгоритм Кармаркара
Существует несколько вариантов алгоритма Кармаркара. Мы рассмотрим исходный вариант, предложенный его автором. Кармаркар предполагал, что задача ЛП приведена к следующему виду.
Минимизировать z = СХ
при ограничениях
АХ = 0, IX = 1, Х>0.
Здесь все ограничения представлены в виде однородных уравнений, за исключением ограничения IX = Z"_,x/ = 1, которое определяет «-мерный правильный симплекс.4 Обоснованность алгоритма Кармаркара "покоится" на выполнении двух условий.
1. Вектор Х=|—,—.....— ) удовлетворяет ограничениям АХ = О.
п п п)
2. min z = 0.
Кармаркар предложил алгебраические преобразования, приводящие общую задачу ЛП к виду, представленному выше. Эти преобразования показаны в следующем примере. Там также показано, как в результате преобразований добиться того, чтобы вектор X = (1/п, 1/п, 1/п) являлся допустимым решением системы АХ = 0 (условие 1). Преобразования, необходимые для выполнения условия 2 (min г = 0), мы не приводим из-за их громоздкости и трудоемкости.
4 Симплексом (n-мерным) называется выпуклая оболочка п точек X,, Х2, Х„, не лежащих на одной (п - 2)-мерной плоскости. Точки X,, Х2, Хп являются вершинами симплекса, при этом любую точку симплекса можно представить как выпуклую комбинацию (см. раздел 7.1) его вершин. Двухмерный симплекс — это отрезок, трехмерный — треугольник, четырехмерный — тетраэдр. (Здесь размерность симплекса определяется по размерности пространства, а не по размерности (п - 1)-мерной гиперплоскости, на которой он расположен.) В данном случае вершинами симплекса являются точки X, = (0, 1, ...,0), i= 1, л. Такой симплекс является частным случаем правильного симплекса. —Прим. ред.
7.7. Метод Кармаркара
Пример 7.7.1
Рассмотрим следующую задачу.
Максимизировать z = у,+ у2
при ограничениях
У, + 2у2<2, */„*/2>0.
С помощью дополнительной переменной у3 > О преобразуем ограничение у, + 2у2 < 2 в равенство:
i/, + 2i/2 + z/3 = 2.
Теперь введем неравенство
Ух + Уг + У г ^ U,
где U — достаточно большое положительное число, но такое, которое не удаляло бы ни одной допустимой точки исходного пространства решений. В данном примере, исходя из равенства у, + 2у2 + у3 = 2, достаточно взять U, равное 5. После введения еще одной дополнительной переменной у4 получаем
У, +У2 + У3 + У4 = 5-
Теперь можно сделать уравнение г/, + 2у2 + у3 = 2 однородным, умножив его правую часть на (г/, + у2 + у3 + у4)/5, поскольку последнее соотношение равно 1. Таким образом, после приведения подобных членов получаем
3У1+8у2 + 3Уз-2у4 = 0.
Чтобы преобразовать равенство ух + у2 + у3 + у4=Ъ в уравнение, определяющее симплекс, введем новые переменные хх = yjb, / = 1,2, 3, 4. Получаем следующую задачу ЛП.
Максимизировать z = 5дг, + 5дг2
при ограничениях
3^ + 8х2 + Злг3 - 2х4 = О, х, + х2 + х3 + х4 = 1, х>0, i = l,2, 3, 4.
Теперь обеспечим выполнение условия, что точка Х = (1/л, 1/п, 1/п), являющаяся центром (барицентром) симплекса, будет удовлетворять однородному уравнению. Для этого от левой части каждого однородного уравнения отнимем искусственную переменную с коэффициентом, равным алгебраической сумме всех коэффициентов левой части уравнения (в данном случае имеем 3+8+3-2 = 12). Эта искусственная переменная также прибавляется к уравнению симплекса и в виде штрафа появляется в выражении целевой функции. В нашем примере искусственная переменная хь войдет в задачу ЛП следующим образом.
Максимизировать z = Ьх, + Ьх2 - Мхь
при ограничениях
Зхх + 8хг + Злг3 - 2х4 - 12хъ = О, *,>(),/= 1,2.....5.
Для этой системы уравнений новый центр симплекса (1/5, 1/5, 1/5) является допустимым решением однородного уравнения. Значение константы М в выражении целевой функции должно быть достаточно большим, чтобы привести перемен-ную хь к нулевому значению (сравните с М-методом из раздела 3.4.1)._
Глава 7. Теория линейного программирования
Последний пример показывает, что любую задачу ЛП можно с помощью преобразований привести к виду, который необходим для выполнения алгоритма Кармаркара. Но эти преобразования громоздкие и неочевидные, поэтому их редко используют на практике. Существуют различные модификации алгоритма, которые не требуют обязательного выполнения второго условия (min г = 0).
Пример 7.7.2
Рассмотрим еще раз задачу из примера 7.7.1.
Максимизировать г=ух+у2
при ограничениях
Уг + 2уг<2,
Начнем с формулировки прямой и двойственной задач.
Прямая задача Двойственная задача
Максимизировать Уо = /1 + уг при ограничениях yi + 2у2 < 2,
Уь Уг 2 0.
Ограничения этих задач в стандартной форме запишутся так:
</, + 2</2 + 1/3 = 2,</з>0.
ш,-ш2 = 1,ш2>0. (1) Из условия оптимума у0 = w0 вытекает, что
yx+y2-2wx = 0. (2) Выбираем достаточно большое число М, чтобы выполнялось неравенство
y.+y^y. + w. + w^M. (3)
Теперь путем введения дополнительной переменной преобразуем неравенство (3) в равенство:
yi+y2 + y3 + wi + w2 + si=M<si*0- (4) Далее введем новую переменную s2 такую, что следующие два равенства, вытекающие из равенства (4), будут выполняться тогда и только тогда, когда s2 = 1.
</i + У г + Уз + wi + w2 + si - S2M = °>
y1 + y1 + ya + wl+w2 + sl+s2 = M + 1. (5)
При условии s2 = 1, что обусловливают равенства (5), ограничения (1) можно записать как
У, + 2у2 + уг-2з2 = 0.
wx-w2- ls2 = 0. (6)
Минимизировать щ = 2щ при ограничениях
w,> 1 2*,>lj
w, > 0.
7.7. Метод Кармаркара
Теперь определим новые переменные xv х2, х7 на основе соотношений
jf( = (M + l)i/,i=l12,3,
w
i-з
■ (М + 1)*., j = 4, 5,
Sl = (M+l)x6, s2 = (M + l)x7.
Подставляя последние выражения в равенства (2), (5) и (6), получим новые ограничения в виде равенств.
+ х0 - 2ха = О,
, + х2 + х3 + х4 + хь + хе - Мх7 = О, [ + хг + х3 + х4 + х5 + х6 + х7 = 1, + 2х2 + х3 - 2х7 = О, ■ х5 —~ х7 О, ,£0,у«1,2, 7.
Теперь осталось ввести искусственную переменную х3 в левую часть каждого ограничения — эта переменная будет новой целевой функцией, которую следует минимизировать. Если прямая задача имеет допустимое решение, то минимум этой целевой функции будет равен нулю. Но алгоритм Кармаркара дополнительно требует, чтобы точка
х-(- 1111111
удовлетворяла системе АХ = 0. Это условие можно выполнить для однородной системы (т.е. для системы, у которой правые части уравнений равны нулю), если соответствующий коэффициент при искусственной переменной хе в любом уравнении систем будет равен сумме всех остальных коэффициентов этого уравнения. С учетом этого замечания получаем следующую преобразованную задачу ЛП.
Минимизировать z = xs
при ограничениях
х, + х2 - 2х4 - 0ха = О, х
+ 2х2 + х3 - 2х7 - 2xs =
- Мх7 - (6 - M)xg = О, х, + %гх, + х, - %гхч - zxs = О,
ОС ^ OCrj I ^) у
х, + х, + я, + х, + ли + X* + X, + ха = 1, *,><), у-1,2, ...,8.
Отметим, что решение этой задачи дает оптимальные решения как прямой, так и двойственной задач.
Теперь опишем основные этапы алгоритма Кармаркара. На рис. 7.7, а показано типичное трехмерное пространство решений, определяемое однородной системой ограничений АХ = 0, состоящей из одного уравнения. В данном случае пространство решений совпадает с отрезком прямой АВ, лежащим внутри симплекса IX = 1, причем точка (1/3,1/3,1/3) является допустимой внутренней точкой пространства решений. Аналогично на рис. 7.7, б показано четырехмерное пространство решений (треугольник ABC), определяемое однородной системой ограничений, также состоящей из одного уравнения. В этом случае центром симплекса является точка (1/4, 1/4, 1/4, 1/4).
Глава 7. Теория линейного программирования
а) Трехмерное пространство решений
(О, 0, 0, 1)
(0,1,0,0)
б) Четырехмерное пространство решений Рис. 7.7. Трех- и четырехмерный симплексы
7.7. Метод Кармаркара
Принципиальная идея Кармаркара заключается в том, что вычисления начинаются с внутренней точки, соответствующей центру симплекса, далее в направлении проекции градиента определяется новая точка решения, которая должна быть строго внутренней, т.е. все ее координаты должны быть положительными. Это является необходимым условием сходимости алгоритма.
Чтобы новая точка решения была внутренней, она не должна выходить за пределы симплекса. (Это значит, что на рис. 7.7, а новая точка не может быть точкой А или В, а на рис. 7.7, б— не может совпадать с точками отрезков АВ, ВС и АС.) Для того чтобы определить такую точку, построим сферу, вписанную в симплекс. В л-мерном пространстве в правильный симплекс можно вписать сферу с максимальным радиусом г, равным lsjn(n -1) .5 Тогда пересечение сферы радиуса от (0 < а < 1) и пространства решений, определяемого системой АХ = 0, будет содержать только внутренние точки пространства решений с положительными координатами. В таком случае для определения новой точки решения можно перемещаться вдоль проекции градиента до тех пор, пока будем находиться внутри ограниченного пространства, являющегося пересечением шара радиуса аг и пространства, определяемого системой АХ = 0.
Новая точка решения не обязана быть центром симплекса. Поэтому, чтобы сделать алгоритм итерационным, необходимо найти способ перенести новую точку решения снова в центр симплекса. Для этого Кармаркар предложил оригинальную идею проективных преобразований. Пусть
xt
v,= ——, 1 = 1,2.....л,
где xkl — i-й элемент текущего решения, т.е. г-я координата текущей точки решения Xt. Такое преобразование правомерно, поскольку все xki > 0. Также отметим,
что по определению 1",у, = 1 (т.е. 1Y= 1). Это преобразование можно записать в
матричном виде
Y_ Р.'Х 1D/X'
где D,. — диагональная матрица, у которой i-й диагональный элемент равен хк1. Это преобразование осуществляет взаимно-однозначное отображение Х-пространства в У-пространство, поскольку нетрудно проверить, что из последней формулы следует
Х = ^
По определению min СХ = 0. Отсюда следует, что значение lDtY должно быть положительным. В таком случае исходная задача ЛП преобразуется в следующую.
Минимизировать z = CDtY
при ограничениях
ADkY = 0, 1Y-1, Y>0.
5 Здесь надо уточнить, что центр этой сферы находится в барицентре симплекса. Далее в этом разделе, не оговаривая этого явно, везде предполагается, что центры всех сфер совпадают с барицентром симплекса. — Прим. ред.
Глава 7. Теория линейного программирования
Преобразованная задача имеет тот же тип, что и исходная. Мы можем опять начать решение этой задачи с точки Y = (l/n, 1/п, 1/п), являющейся центром симплекса, и повторить действия, выполненные на предыдущем этапе. После каждой итерации на основании полученного Y-решения нетрудно вычислить значения исходных Х-переменных.
Теперь покажем, как определить новую точку решения для преобразованной задачи. На любой k-й итерации задача имеет следующий вид.
Минимизировать г = CDtY
при ограничениях
AD,Y = 0,
Y лежит в шаре радиуса аг.
Поскольку шар радиуса аг является частью пространства допустимых решений, определяемого ограничениями IX = 1, X > О, эти ограничения можно исключить из рассмотрения. Можно показать, что решение последней задачи вычисляется по следующей формуле
^новое ^текущее
ы
лить так: = (1/п, 1/п, 1/п), ср— проекция градиента, которую можно вычис-
с-р-рЧррУрксв/,
где Р = 1
Выбор параметра а — ключевой момент при построении алгоритма. Обычно а выбирается настолько большим, насколько это возможно, чтобы ускорить сходимость к оптимальному решению. Но при выборе слишком большого значения а можно "упереться" в запрещенную границу симплекса. В настоящее время не известно оптимальное значение а. Кармаркар предлагал использовать а = (п - 1)/Зл. Итак, алгоритм Кармаркара требует выполнения следующих этапов.
Этап О. Алгоритм начинается с точки Х0 = (1/п, 1/п, 1/п), вычисляются параметры г = — 1) и а = (п - 1)/Зп.
Основной этап к. Определяем
Dt = diag{x„......xj,
P =
I 1 J
и вычисляем
Y_-|IA
n n
IV, c.
1ЫГ
x4.,=
новое новое
где с= [I - РГ(РРГ)'P](CD/
7.7. Метод Кармаркара
Пример 7.7.3
Рассмотрим следующую задачу ЛП, которая уже приведена к форме, необходимой для выполнения алгоритма Кармаркара.
Минимизировать z = 2хх + 2х2 - Зх3
при ограничениях
*, - 2*2 + *з = °. хг + х2 + х3 = 1,
хх, х2, х3> 0.
Эта задача удовлетворяет всем условиям алгоритма Кармаркара, а именно точка X = (1/3, 1/3, 1/3) удовлетворяет уравнению х, - 2х2 + х3 = 0 и оптимальное значение целевой функции равно нулю (оптимальным решением является вектор (О, 0,6, 0,4)).
Итерация 0
с = (2, 2,-3), А = (-1,-2,3),
V 1 1 Ч 1 2
Мз'З'з} ' = а=9
= 0.33333,
D„ =
ЗУ |
Используя проективные преобразования, получаем У0: Итерация 1
III 3' 3' 3
cD0 = (2,2,-3)
'I 0 0Л
0 i о о о
ч
AD0= (-1,-2,3)
ЗУ
i О О
з
О I о
з
О 0 1
I _2
"з" 3'
(-- Л | |||
( 1 | 1 1 | ||
-2 1 | |||
ч 1 | 1 1 ) | I1 и | |
ч |
i о
о
ч з/
'10 0^ | г | |
I - РГ(РРГ)'Р = | 0 I 0 | - |
,0 0 1, | ч |
1 1
1 о
Г- - О
3 3
U 1 U
Глава 7. Теория линейного программирования
_1_ 42 ' 25 -20 -5N -20 16 4 ч -5 4 1 ,
Отсюда получаем
с =[I-Pr(PP') P](CDk)7 = 42
25 -20 -5"l -20 16 4 -5 4 1
( i з
2 3 1
126 '25^ -20 V-5y
Далее находим
Hc„ll = J25:+(-20);+(-5)Ao,257172. 1262
ill] -2x'x—!_x^-x(25.-2a-5)r: 3 3 Ъ) 9 V6 0,257172 126 v '
= (0,263340, 0,389328, 0,347332)г.
Теперь найдем Xt D Y i Hi
V — 0 hohoc _ _2_
ID Y
"'О д новое
1d,yho»« = -0,1,1X0,263340,0,389328,0,347332)r =±
- = YH0BlK = (0,263340,0,389328,0,347332/ ,
z, =0,26334. Итерация 2
cD, =(2,2,-3)
AD, =(1,-2,
0,263340 0
0 0,389328 0 0 0 0,347332 = (0,526680,0,778656, -1,041996)
(0,263340 0
0 0.389328 0 0 0 0,347332 = (-0,263340, -0,778656,1,041996)
(ppT =
I - РГ(РРГ) 'p =
-0,26334 -0,778656 1,041996^ 1 1 1 J
'-0,263340 Л -0,778656 1 1,041996 1
0,567727 0 0 0,333333J
( | 0^ | ( | |
- | |||
,0 | к | V |
Г-0,263340 1 -0,778656 1 1,041996 1
0,567727 0 V-0.263340 -0,778656 1,041996^1
0 0,33333
I
7.7. Метод Кармаркара
( 0,627296 -0,449746 -0,177550^ -0,449746 0,322451 0,127295 ч -0,177550 0,127295 0,050254
Далее вычисляем
C/l = [I-Pr(PPVP](CD/ =
' 0,627296 | -0,449746 | -0,177550' | ' 0,526680^ | ' 0,165193 N | |
-0,449746 | 0,322451 | 0,127295 | 0,778556 | = | -0,118435 |
v-0,177550 | 0,127295 | 0,050254 j | -1,041996 | -0,046757, |
Цс,, I = д/о, 165193- + (-0,118435)2 + (-0,046757)2 = 0,208571. Отсюда получаем
ч Т
1 1 IV 2
,3 З'З; 9 7б 0,208571 = (0,261479, 0,384849, 0,353671) Теперь для вычисления X, имеем
х (0,165193, -0,118435, -0,046757)7 =
'0,263340 | 0 | '0,261479s | '0,068858" | |||
0,389328 | 0,384849 | = | 0,149832 | |||
ч 0 | 0,347332, | ч0,35367 1, | 0,122841, |
1D,Y„,
ID Y
АЖЛ 1 новое
= 0,341531,
( 0,201616^ 0,438707 0,359677
2 = 0,201615.
Выполнив еще один этап алгоритма, получим решение, которое будет еще ближе к оптимальному (0,0,6,0,4). Кармаркар предлагает дополнительный этап, который позволяет перейти от полученного решения к оптимальной крайней точке. К сожалению, мы не имеем возможности рассмотреть его здесь.
УПРАЖНЕНИЯ 7.7
1. С помощью программы TORA покажите, что решение преобразованной задачи ЛП, приведенной в конце примера 7.7.2, дает оптимальное решение прямой и двойственной исходных задач. (Совет. Положите М=10 и задайте точность не менее 5 десятичных знаков.)
2. Преобразуйте следующую задачу ЛП к виду, необходимому для применения метода Кармаркара.
Максимизировать z = yt + 2у2
при ограничениях
у,-у,£2,
2j/1+J/2<4,
Глава 7. Теория линейного программирования
3. Выполните еще одну итерацию в примере 7.7.3 и убедитесь, что полученное решение приблизится к оптимальному.
4. Выполните три итерации алгоритма Кармакара для решения следующей задачи.
Максимизировать z = 4x, + x3+xt
при ограничениях
-2хх + 2х2 + х3 - х4 = О,
+ х2 + х3 + х4 = 1, хх,х2, х3, х4>0.
5. Выполните три итерации алгоритма Кармаркара для решения следующей задачи ЛП.
Максимизировать г = 2хг + х2
при ограничениях
хх + х2< 4, х„ х2>0.
ЛИТЕРАТУРА
1. Bazaraa М., Jarvis J., Sherali М. Linear Programming and Network Flows, 2nd ed., Wiley, New York, 1990.
2. Hooker J. Karmarkar's Linear Programming Algorithm, Interfaces, Vol. 16, No. 4, pp. 75-90, 1986.
3. Nering E., Tucker A. Linear Programming and Related Problems, Academic Press, Boston, 1992.
Литература, добавленная при переводе
1. Ашманов С. А. Линейное программирование. — М.: Наука, 1981.
2. Голыитейн Е. Г. Теория двойственности в математическом программировании и ее приложения. — М.: Наука, 1971.
3. Голыитейн Е. Г., Юдин Д. Б. Линейное программирование: Теория, методы и приложения. — М.: Наука, 1969.
4. Крона Г. Исследование сложных систем по частям — диакоптика. — М.: Наука, 1972.
КОМПЛЕКСНЫЕ ЗАДАЧИ
7.1. Имеем координаты трех точек:
А - (6, 4, 6, -2), В = (4, 12, -4, 8) и С = (-4, 0, 8, 4).
Разработайте процедуру, которая позволяла бы определить, является ли данная точка выпуклой комбинацией заданных точек. С помощью этой процедуры проверьте, будут ли следующие точки выпуклыми комбинациями точек А, В и С.
а) (3,5,4,2),
б) (5,8,4,9).
Комплексные задачи
7.2. Рассмотрим следующую задачу ЛП.
Максимизировать г = Зхх + 2х2
при ограничениях
х, + 2х2 < 6, 2хх +х2<8, -хх+х2<1, хх, х2>0.
Найдите оптимальное решение этой задачи (можно применить программу TORA). Затем, используя информацию, представленную в симплекс-таблице с оптимальным решением, определите второе (по отношению к "абсолютному" оптимуму) наилучшее решение (т.е. крайнюю точку пространства решений). Проверьте ответ, решив эту задачу графически. (Подсказка. Искомая крайняя точка будет смежной с точкой, соответствующей оптимальному решению.)
7.3. Интервальное программирование. Рассмотрим следующую задачу ЛП.
Максимизировать z = {СХ | L < АХ < U, X > 0},
где L и U — вектор-столбцы констант. Определим вектор Y > 0, такой, что АХ + Y = U. Покажите, что исходная задача эквивалентна следующей.
Максимизировать z = {СХ |AX + Y= U,0<Y<U-L,X>0}. Используя показанный прием, решите следующую задачу ЛП.
Минимизировать z = 5хх - 4х2 + 6х,
при ограничениях
20 < хх + 1х2 + Зж3 < 46, 10 < Зх, - х2 + х3 < 20, 18< 2хх + Зх2-х3<35, хх,х2, х3>0.
7.4. Рассмотрим следующую целочисленную задачу ЛП, где переменные принимают только значения 0 и 1.
Минимизировать z = {СХ | АХ < b, X = (0, 1)}.
Предположим, что известна верхняя граница целевой функции zmili. Введем ограничение
min max {u(b - АХ) + (z,™ - СХ)} > О,
где ц> 0. Это ограничение не нарушает ни одного из ограничений исходной задачи. Покажите, что определение //из этого ограничения фактически сводится к решению исходной задачи ЛП. (Совет. В данном случае условие целочисленности X = [0, 1] эквивалентно "непрерывному" ограничению 0 < X < 1. Сформулируйте двойственную задачу.)
7.5. В задаче 7.2 оптимальным решением является хх = 10/3, х2 = 4/3 и г = 38/3. Как будет изменяться оптимальное значение целевой функции в зависимости от параметра 0, если положить хх = 10/3 + 0 (на параметр 0 не налагаются ограничения в знаке)?
Глава 7. Теория линейного программирования
Предположим, что оптимальное решение задачи ЛП представлено следующим образом.
Максимизировать z = с0 - ^ (г, - с;)х;
при ограничениях
х, = х' - ^ a,,xli 1 = 1. 2, т, все х. и х: > О,
где — множество индексов небазисных переменных. Предположим, что на текущую базисную переменную х, = х' налагается ограничение х. > dt, где
dt — наименьшее целое, большее х]. После введения этого ограничения
оцените верхнюю границу оптимального значения целевой функции. Повторите процедуру оценки верхней границы при наложении ограничения xt < et, где е, — наибольшее целое, меньше х".
Рассмотрим следующую задачу линейного программирования.
Минимизировать z = (10i - 4) x, + {At - 8) x2 при ограничениях
2xx + 2x2 + x3 = 8, Ax, + 2x2 + xt = 6-2t, xx, x2, х3, х4 ^ 0,
где -оо < t < оо. С помощью параметрического анализа получены следующие результаты:
при -оо < t < -5 оптимальный базис: В = (Р,, Р4), при -5 < t < -1 оптимальный базис: В = (Р,, Р2), при -1 < t < 2 оптимальный базис: В = (Р2, Р3).
Найдите все критические значения параметра t при t > 2.
ГЛАВА 8
ЦЕЛЕВОЕ ПРОГРАММИРОВАНИЕ
Модели линейного программирования, рассмотренные в предыдущих главах, предполагали оптимизацию только одной целевой функции. Но возможны ситуации, когда в модели присутствует несколько (возможно, конфликтующих между собой) целевых функций. Например, честолюбивый политик может пообещать уменьшение национального долга и, одновременно, снижение ставок налогов. В таких ситуациях иногда невозможно найти единственное решение, оптимизирующее все конфликтующие целевые функции. Поэтому нужно искать компромиссное решение, учитывающее "важность" каждой целевой функции.
В этой главе представлены методы целевого программирования (многокритериальной оптимизации)1 для решения задач линейного программирования с несколькими целевыми функциями. Основное назначение этих методов— преобразование исходной задачи с несколькими целевыми функциями в задачу ЛП с одной целевой функцией. После решения преобразованной задачи получаем так называемое эффективное решение, поскольку может не существовать оптимального решения, доставляющего оптимум всем частным целевым функциям исходной задачи.
8.1. ФОРМУЛИРОВКА ЗАДАЧИ ЦЕЛЕВОГО ПРОГРАММИРОВАНИЯ
Рассмотрим пример, приводящий к задаче целевого программирования.
Пример 8.1.1
Файрвилл — небольшой городок, в котором проживает около 20 тысяч жителей. Предположим, городской совет разрабатывает ставки местного налогообложения. Ежегодная база налогообложения недвижимости составляет 550 миллионов долларов. Ежегодная база налогообложения розничных и оптовых продаж составляет 35 и 55 миллионов долларов соответственно. Ежегодное потребление городом бензина оценивается в 7,5 миллионов галлонов. Городской совет планирует разработать систему налоговых ставок, основанную на перечисленных базах налогообложения и учитывающую следующие ограничения и требования.
1 Задачи целевого программирования являются только подклассом задач, решаемых методами многокритериальной оптимизации. Подходы и методы, применяемые в многокритериальной оптимизации, отнюдь не исчерпываются теми методами, которые описаны в этой главе (см. список литературы в конце главы). — Прим. ред.
Глава 8. Целевое программирование
1. Налоговые поступления должны составить не менее 16 миллионов долларов от всех баз налогообложения.
2. Налог с розничных продаж не может превышать 10% от суммы всех собираемых налогов.
3. Налог с оптовых продаж не может превышать 20% от суммы всех налогов.
4. Налог на бензин не может превышать 2 центов за галлон.
Обозначим через хн, хр и хо ставки налогов (выраженные десятичными дробями) на недвижимость, розничную и оптовую торговлю соответственно, а через хв — налог на бензин, выраженный в центах на галлон. Пожелания городского совета можно записать следующим образом.
550ад + 35хр + 55л0 + 0,075хв > 16 (суммарные налоговые поступления) 35хр < 0,1(550хи + 35лр + 55х0 + 0,075*,,) (налог на розничную торговлю) 55хс < 0,2(550хн + 35хр + ЬЪхо + 0,075х„) (налог на оптовую торговлю) хе < 2 (налог на бензин) *„> V хо, х6 > 0.
После упрощения получаем три ограничения.
550х„ + 35хр + ЪЬх0 + 0,075хб > 16, о5хн - 31,5хр + 5,5л:,, + 0,0075*,, > 0, 110лг„ + 7хр - 44*„ + 0,015дг9 > 0. хб<2,
*„> *Р> Хо> Хб * °-
Каждое из этих неравенств представляет одну из целей городского совета, которую желательно добиться. Но эти цели могут конфликтовать друг с другом, и в лучшем случае мы можем попытаться достичь какого-нибудь компромиссного решения.
Способ, которым в целевом программировании достигается компромиссное решение, заключается в следующем. Сначала каждое неравенство преобразуется в частную задачу, в рамках которой можно удовлетворить данное ограничение. В нашем случае эти частные задачи записываются так:
550х„ + 35хр + ЬЬх0 + 0,075хе + 5,+ - j" = 16, 55х„ - 31,5хр + 5,5х0 + 0,0075х„ + - s; = 0, 110х„ + 7хр - 44хо + 0,015хб + ^ - s'3 = 0.
*6 + S4 ~ S4 = 2.
хн,хр,хо,хв>0, s*, s~ >0, i=l,2, 3,4.
Неотрицательные переменные s* и s. называются отклоняющими, поскольку они
показывают отклонение значений левых частей ограничений от соответствующих величин правых частей этих же ограничений.
8.1. Формулировка задачи целевого программирования
Отклоняющие переменные и s. зависимы по определению, поэтому они обе одновременно не могут быть базисными. Это означает, что на любом этапе решения задачи одним из симплексных методов только одна из пары отклоняющих переменных может принимать положительное значение. Если исходное i-e ограничение является неравенством типа "<" и s* > 0, то это ограничение выполняется. Если же
s. > 0, то данное ограничение не выполняется. Таким образом, определенные значения отклоняющих переменных s* и j~ либо соответствуют i-e ограничению, либо
нет. Это та гибкость, которая позволяет целевому программированию достичь компромиссного решения. Естественно, хорошее компромиссное решение минимизирует число невыполняемых ограничений.
В нашем примере первые три ограничения являются неравенствами типа ">", а четвертое— неравенством типа "<". Вследствие этого положительные значения отклоняющих переменных s,+, s2 , s$ и s4 будут указывать на то, что соответствующие ограничения не выполняются. Поэтому ведется поиск такого компромиссного решения, которое будет удовлетворять по возможности большему числу следующих частных целей (целевых функций).
Минимизировать G, = Минимизировать G2 - s2 Минимизировать G3 = s* Минимизировать Gt = s~
Как оптимизировать модель, имеющую несколько конфликтующих целевых функций? Для этого разработано множество разнообразных методов. В данной главе рассмотрим, во-первых, метод весовых коэффициентов и, во-вторых, метод приоритетов. Оба метода основаны на приведении множества частных целевых функций к одной целевой функции.
УПРАЖНЕНИЯ 8.1
1. Сформулируйте заново задачу о налогах из примера 8.1.1, предполагая, что городской совет определил дополнительное ограничение, которое заключается в том, что поступления от налога на бензин должны составлять не менее 10% от общих налоговых поступлений.
2. Руководство супермаркета планирует провести несколько специальных мероприятий для привлечения потенциальных покупателей. Два основных (наиболее популярных) мероприятия — эстрадный концерт и выставка искусств и ремесел — посещают практически все слои населения, которые менеджеры супермаркета условно разбивают по трем возрастным группам: ти-нэйджеры (подростковая группа), группа среднего возраста (сюда вошла и молодежь, вышедшая из подросткового возраста) и старшая возрастная группа. Стоимость одного концерта и одной выставки составляет 1 500 и 3 ООО долл. соответственно. Общий годовой бюджет этих мероприятий не должен превышать 15 ООО долл. Менеджеры супермаркета оценивают посещаемость своих мероприятий следующим образом.
Глава 8. Целевое программирование
Мероприятие | Количество посетителей | ||
Подростки | Средняя группа | Старшая группа | |
Концерт | |||
Выставка искусств |
Руководство супермаркета желает, чтобы их мероприятия посетило не менее 1000 подростков, 1200 людей из средней возрастной группы и не менее 800 потенциальных покупателей старшего возраста. Сформулируйте модель целевого программирования.
3. Университет Озарк проводит прием студентов. Всех поступающих можно разбить на три категории: жители данного штата, приезжие из других штатов и поступающие из других стран. Соотношения между мужчинами и женщинами среди поступающих данного штата и других штатов равны соответственно 1 : 1 и 3 : 2. Для "международных" студентов это соотношение составляет 8:1. При зачислении студентов на первый курс одним из основных факторов, влияющих на зачисление, является средний балл ACT (American College Test — Американский тест для поступающих в колледж). Статистика, накопленная университетом, свидетельствует, что средний балл ACT равен 27, 26 и 23 соответственно для поступающих данного штата, других штатов и других стран. Приемная комиссия университета при приеме первокурсников желает добиться следующего.
a) На первый курс желательно принять не менее 1200 студентов.
b) Средний балл ACT всех первокурсников должен быть не ниже 25.
c) Студенты-неамериканцы должны составлять не менее 10% от всего количества первокурсников.
d) Отношение количества женщин и мужчин желательно не менее 3 : 4.
e) Среди всех принятых на первый курс жители других штатов должны составлять не менее 20%.
Сформулируйте данную проблему как модель целевого программирования.
4. Птицефабрика ежедневно потребляет 3 тонны специальных кормов. Кормовая смесь состоит из известняка, зерна и соевой муки и должна удовлетворять требованиям рационального питания:
кальций — не менее 0,8 и не более 1,2%,
белок — не менее 22%,
клетчатка — не более 5% .
В следующей таблице приведен состав ингредиентов кормовой смеси.
Кальций | Белок | Клетчатка | |
Ингредиент | (в фунтах на фунт ингредиента) | ||
Известняк | 0,380 | 0,00 | 0,00 |
Зерно | 0,001 | 0,09 | 0,02 |
Соевая мука | 0,002 | 0,50 | 0,08 |
Сформулируйте модель целевого программирования. Как вы думаете, стоит ли в данной ситуации применять модель целевого программирования?
8.1. Формулировка задачи целевого программирования
5. Фабрика игрушек производит детские тележки, для которых на стадии конечной сборки необходимы четыре колеса и два сиденья. На фабрике работа организована в три смены, причем в течение одной рабочей смены производится несколько партий колес и сидений. В следующей таблице показаны объемы партий изделий в зависимости от рабочей смены.
Смена | Количество изделий в партии |
Колеса Сиденья | |
500 300 | |
600 280 | |
640 360 |
В идеале количество произведенных колес должно точно в два раза превышать количество произведенных сидений (напомним, что на каждую тележку идет четыре колеса и два сиденья). Но так как число произведенных изделий колеблется от смены к смене, невозможно обеспечить точный баланс между количествами произведенных колес и сидений. Фабрика планирует определить, какое количество партий изделий необходимо изготовлять каждую смену, чтобы свести к минимуму дисбаланс между произведенными колесами и сидениями. В первую смену можно произвести 4 или 5 партий изделий, во вторую — от 10 до 20 партий, а в третью — от 3 до 5. Сформулируйте задачу целевого программирования.
6. Завод продает четыре типа изделий, для производства которых используются токарный и сверлильный станки. Каждый из этих станков может работать 10 часов в рабочий день. В следующей таблице показано, сколько минут рабочего времени необходимо для изготовления изделия каждого типа.
Изделие Токарный станок Сверлильный станок
1 5 3
2 6 2
3 4 6
4 7 4
Завод пытается сбалансировать время использования станков таким образом, чтобы разность между полными временами работы станков не превышала 30 минут. Спрос на изделия каждого типа составляет не менее 10 единиц. Кроме того, количество изделий первого типа не может превышать количество изделий второго типа. Сформулируйте задачу целевого программирования.
7. Производство двух изделий требует двух последовательных операций. В следующей таблице показано время (в минутах) выполнения каждой операции при изготовлении изделий.
Операция | Изделие 1 | Изделие 2 |
Глава 8. Целевое программирование
Ежедневная квота на производство первого и второго изделий составляет соответственно 80 и 60 единиц. На выполнение каждой операции отводится по 8 часов в рабочий день. Сверхурочные работы не желательны, хотя при необходимости, чтобы выполнить производственный план, их можно применять. Сформулируйте задачу целевого программирования.
8. Городская больница планирует организовать для больных кратковременный (до 4 дней) стационар на свободных местах. Предполагается, что в течение 4-дневного периода будет 30, 25 и 20 больных, которым потребуется 1-, 2- и 3-дневный стационар. Также рассчитано, что на тот же период будет свободно 20, 30, 30 и 30 мест соответственно. Используйте целевое программирование, чтобы вычислить максимальное и минимальное количество больных, которых можно принять на кратковременное лечение.
9. Семейство Траппов собирается переезжать в новый город, где оба супруга нашли новую работу. Сейчас они пытаются определить идеальное местоположение своего нового дома, составив список своих пожеланий:
а) новый дом должен быть как можно ближе к месту работы м-ра Траппа (в пределах четверти мили),
б) дом должен быть как можно дальше от шумного аэропорта (не ближе 10 миль),
в) желательно, чтобы в пределах одной мили от дома был супермаркет.
Для решения своей задачи супруги нанесли на карту города координатную сетку и пометили место работы, аэропорт и супермаркет. Получили следующие их координаты: место работы— (1, 1), аэропорт— (20,15), супермаркет — (4, 7) (все расстояния приведены в милях). Сформулируйте задачу целевого программирования. (Примечание. Ограничения не обязательно должны быть линейными.)
10. Регрессионный анализ. Предположим, что в лабораторном эксперименте каждому значению yt независимого параметра у соответствует л измерений х , i=l,2, т, j = 1, 2, л, зависимой величины х. Требуется построить линию регрессии, проходящую через экспериментальные точки. Обозначим через bJt j = 0, 1, л, коэффициенты уравнения регрессии. Коэффициенты Ь; находятся из условия минимума суммы абсолютных значений разностей наблюдаемых и расчетных (т.е. рассчитанных на основании уравнения регрессии) значений зависимой величины. Сформулируйте эту задачу в виде модели целевого программирования.
11. Задача Чебышева. Здесь, в отличие от предыдущей задачи, коэффициенты регрессии находятся из условия минимизации максимума абсолютных значений разностей наблюдаемых и расчетных значений зависимой величины. Сформулируйте задачу целевого программирования.
8.2. АЛГОРИТМЫ ЦЕЛЕВОГО ПРОГРАММИРОВАНИЯ
В этом разделе представлены два метода решения задач целевого программирования. Оба метода основаны на сведении множества частных целей к одной целевой функции. В методе весовых коэффициентов единственная целевая функция формируется как взвешенная сумма исходных частных целевых функций. В методе приоритетов на частные цели устанавливаются приоритеты в порядке их важности.
8.2. Алгоритмы целевого программирования
Исходная задача решается путем последовательного решения ряда задач ЛП с одной целевой функцией таким образом, что решение задачи с низкоприоритетной целью не может "испортить" оптимального значения целевой функции с более высоким приоритетом.
Эти методы различны по своей природе и в общем случае дают оптимальные решения, не совпадающие между собой. Вместе с тем нельзя сказать, что один из этих методов лучше другого; в сущности, они предназначены для решения задач с разными предпочтениями в процессе принятия решений.
8.2.1. Метод весовых коэффициентов
Предположим, что модель целевого программирования имеет п целей следующего вида.
Минимизировать Gt, £ = 1,2,п.
В методе весовых коэффициентов обобщенная целевая функция определяется следующим образом.
Минимизировать г = m;,G1 + w2G2 + ... + wnGn.
Здесь wt (i = 1, 2, n)— положительные весовые коэффициенты, которые отображают предпочтения, отдаваемые каждой цели. Например, вариант ш, = 1 для всех i говорит о равнозначности всех целей. Задание значений весовым коэффициентам очень субъективно. В настоящее время разработаны различные методы (см. [1]), которые уменьшают субъективный фактор при определении весовых коэффициентов.
Пример 8.2.1
Новое рекламное агентство, в составе которого 10 рекламных агентов, получило контракт на рекламу нового продукта. Агентство может провести рекламную акцию на радио и телевидении. В следующей таблице приведены данные о количестве людей, охватываемых тем или иным видом рекламы, стоимость этой рекламы и количество необходимых рекламных агентов. Все эти данные отнесены к одной минуте рекламного времени.
Радио | Телевидение | |
Рекламная аудитория (млн. чел.) | ||
Стоимость (тыс. долл.) | ||
Количество рекламных агентов |
Реклама на радио и телевидении должна охватить не менее 45 миллионов человек (так называемая рекламная аудитория), но контракт запрещает использовать более 6 минут рекламы на радио. Рекламное агентство может выделить на этот проект бюджет, не превышающий 100 ООО долл. Сколько минут рекламного времени агентство должно купить на радио и сколько на телевидении?
Обозначим через дг, и х2 количество минут рекламного времени, закупленного соответственно на радио и телевидении. Для данной задачи целевого программирования можно задать следующие частные целевые функции.
Глава 8. Целевое программирование
Минимизировать G, = $,* (для выполнения условия по рекламной аудитории),
минимизировать G2 = s," (для выполнения условия по бюджету)
при выполнении ограничений
4х, + 8х, + 5* - s~ = 45 (условие по рекламной аудитории),
8jc, + 24х, + - *2 = 100 (условия по бюджету),
jc, + 2jc2 < 10 (ограничение по рекламным агентам), jc, < 6 (ограничение на рекламу по радио),
Менеджеры рекламного агентства считают, что выполнение условия по объему рекламной аудитории в два раза важнее, чем выполнение условия по бюджету. Поэтому обобщенная целевая функция будет записана следующим образом.
Минимизировать г = 2G, + G2 = 2 s* + .
Оптимальное решение этой задачи (полученное с помощью программы TORA) следующее: z = 10, х, = 5 минут, х2 = 2,5 минуты, = 5 миллионов человек. Остальные переменные равны нулю.
Тот факт, что оптимальное значение целевой функции не равно нулю, указывает, что по крайней мере одна из исходных целевых функций не достигла своего оптимального значения. Действительно, так как st* = 5, значит, объем рекламной аудитории меньше запланированного на 5 миллионов. При этом условие по бюджету выполнено, поскольку s~ = 0.
Еще раз повторим, что методы целевого программирования позволяют получить только эффективное решение задачи, которое не всегда будет оптимальным. Например, решение = 6 и х2 = 2 дает такой же объем рекламной аудитории (4x6 + 8x2= 40 миллионов человек), но при меньшей стоимости рекламной кампании (8x6+ 24 х 2 = 96 000 долл.). Существенно, что методы целевого программирования в общем случае не находят оптимум каждой целевой функции исходной модели. Этот "дефект" методов целевого программирования поднимает общий вопрос о "жизнеспособности" целевого программирования в качестве технологии оптимизации (дальнейшее обсуждение этого вопроса см. в примере 8.2.3).
УПРАЖНЕНИЯ 8.2.1
1. Решите задачу из упражнения 8.1.1, предполагая, что в обобщенную целевую функцию все частные целевые функции входят с одинаковыми весовыми коэффициентами. Будет ли в этом случае достигнут оптимум всех частных целевых функций?
2. Пусть в задаче упражнения 8.1.2 привлечение посетителей средней возрастной группы в два раза важнее, чем привлечение посетителей других возрастных групп. Найдите соответствующее решение и проверьте, будет ли достигнут оптимум всех частных целевых функций.
8.2. Алгоритмы целевого программирования
3. Пусть в задаче о приеме студентов на первый курс университета (см. упражнение 8.1.3) ограничение, касающееся общего количества принятых первокурсников, должно быть выполнено обязательно, остальные ограничения не являются жесткими. Кроме того, считаем, что ограничение на средний балл ACT в два раза важнее, чем остальные ограничения. .
a) Решите данную задачу и проверьте, все ли частные целевые функции достигнут своего оптимума.
b) Пусть ограничение на количество принятых первокурсников не является жестким, но все равно имеет в два раза важнее, чем ограничение на средний балл ACT. Как в этом случае изменится решение?
4. Можно ли в условиях задачи из упражнения 8.1.4 удовлетворить всем требованиям рационального питания?
5. Найдите решение задачи из упражнения 8.1.5 и определите, можно ли сбалансировать ежедневное производство колес и сидений.
6. В задаче из упражнения 8.1.6 выполнение ограничения, касающегося удовлетворения спроса на изделия, считается в два раза важнее, чем сбалансированность рабочего времени станков. Пусть также допустимы сверхурочные работы. Решите эту задачу и проверьте, все ли частные целевые функции достигнут своего оптимума.
7. В задаче из упражнения 8.1.7 производственные квоты должны быть реализованы в любом случае; при необходимости можно использовать сверхурочные работы. Найдите решение этой задачи и определите объем сверхурочных работ, если они используются.
8. Пусть в задаче из упражнения 8.1.8 все частные целевые функции в выражении обобщенной целевой функции имеют равные весовые коэффициенты. Могут ли все частные целевые функции достичь своего оптимума?
9. Отдел кадров компании составил следующую таблицу о своих пяти работниках, чтобы установить зависимость между заработком работника и его возрастом, образованием (выражается в количестве лет, проведенных в колледже) и опытом (количество лет работы в компании).
Возраст (года) | Образование (года) | Опыт (года) | Заработок (долл.) |
40 ООО | |||
48 ООО | |||
38 ООО | |||
36 ООО | |||
41 ООО |
Используя формулировку задачи целевого программирования из упражнения 8.1.10, постройте уравнение линейной регрессии у — Ь0 + Ь,х, + Ьгх2 + Ь3хъ на основе данных этой таблицы.
10. Решите предыдущую задачу, используя условие Чебышева из упражнения 8.1.11.
Глава 8. Целевое программирование
8.2.2. Метод приоритетов
В методе приоритетов п частных целевых функций ранжируются в порядке их важности, так как их оценивает специалист по принятию решений, т.е.
минимизировать G, = (наивысший приоритет),
минимизировать Gn = рп (наинизший приоритет). Переменные $ — это компоненты отклоняющих переменных, т.е. s. или s~, которые определяют i-ю целевую функцию. Например, в задаче из примера 8.2.1 А = si и А = si •
В методе приоритетов поочередно решаются задачи с одной целевой функцией, начиная с задачи с целевой функцией Gv имеющей наивысший приоритет, и заканчивая задачей с целевой функцией Gn, имеющей минимальный приоритет. В процессе решения последовательных задач решение задачи с целевой функцией, имеющей более низкий приоритет, не может ухудшить полученные ранее решения задач с целевой функцией, имеющих более высокий приоритет. Это означает, что если z(G) — оптимальное значение целевой функции Gt, то для всех i > 1 оптимизация любой целевой функции Gj (j1 > i) с меньшим приоритетом не может ухудшить значение z{G).
В литературе по целевому программированию описан "специальный" симплекс-метод, который гарантирует неухудшаемость решений задач с целевыми функциями более высокого приоритета. Этот метод использует правило исключения столбцов, которое применяется для удаления из оптимальной симплекс-таблицы задачи с целевой функцией Gk небазисной переменной xf с гу - с. * 0 до начала решения задачи с целевой функцией Gk+1. Это правило распознает, что небазисная переменная если она получит ненулевое значение, может ухудшить (но никогда не улучшит) оптимальное значение задачи с целевой функцией, имеющей более высокий приоритет.
К сожалению, этот метод изменения симплекс-таблиц требует более сложных вычислений, чем необходимо на самом деле. Мы покажем, что такого же результата можно достичь более простым способом.
Этап 0. Определяем частные целевые функции задачи и ранжируем их в порядке приоритетов: G, = рх у G2 = р2 у ... >- Gn = рп. Положим 1=1.
Этап i. Решаем i-ю задачу ЛП с целевой функцией Gr Обозначим через р'
полученное оптимальное значение отклоняющей переменной рг Если i = п, вычисления заканчиваются, поскольку решена последняя п-я задача. В противном случае вводим в задачу новое ограничение pt = р*, тогда значение pt не сможет измениться при решении последующих задач. Полагаем i = i + 1 и повторяем этап L
Последовательное введение дополнительных ограничений вида pt = р* теоретически не так "элегантно", как правило исключения столбцов. Однако это приводит точно к такому же результату. Кроме того, обоснование введения дополнительных ограничений совершенно очевидно и понятно.
Определенным аргументом в пользу правила исключения столбцов может служить то, что при использовании этого правила происходит удаление переменной, т.е. уменьшается размерность задачи. В то же время описанная выше процедура увеличивает размерность задачи при добавлении новых ограничений. Но если повнимательнее присмотреться к этим ограничениям (вида ft = р*), то легко изменить
8.2. Алгоритмы целевого программирования
вычисления таким образом, чтобы это ограничение учитывалось непосредственно путем подстановки значения р' вместо переменной р, что также уменьшает количество переменных в задаче. (Можно также использовать метод решения задач ЛП с ограниченными переменными из раздела 7.3 для выполнения замены р = р*,
предполагая при этом ограничение вида pt < р].) С этой точки зрения правило исключения столбцов, если отвлечься от его теоретической привлекательности, не имеет особых вычислительных преимуществ по сравнению с описанной выше процедурой. Но ради объективности мы продемонстрируем, как работает правило исключения столбцов в примере 8.2.3. В следующем примере покажем использование описанной выше упрощенной процедуры решения задач с приоритетами.
Пример 8.2.2
Решим методом приоритетов задачу из примера 8.2.1. Предположим, что наибольший приоритет имеет частная целевая функция, соответствующая условию, налагаемому на объем рекламной аудитории. Этап 0. G, >- G2, где
G,: минимизировать s* (условие по рекламной аудитории), G2: минимизировать s~2 (условие по бюджету). Этап 1. Решаем первую задачу ЛП.
Минимизировать G, = $* при выполнении ограничений
4jc, + 8jc2 + s - j," = 45 (условие по рекламной аудитории),
8х, + 24х2 + si - si = 100 (условие по бюджету),
+ 2jc2 < 10 (ограничение по рекламным агентам), jc, < 6 (ограничение на рекламу по радио), xx,xv si, si, si, s; >0.
Оптимальное решение этой задачи (найденное с помощью программы TORA) составляет х, = 5 минут, х2 = 2,5 минуты, si =5
миллионов человек, остальные переменные равны нулю. Решение показывает, что условие по объему рекламной аудитории не выполняется с дефицитом в 5 млн. чел.
В этой задаче мы имеем рх = s*x . Поэтому в следующей задаче добавим ограничение $1 = 5.
Этап 2. Теперь необходимо решить вторую задачу ЛП. Минимизировать G2 = si
при выполнении тех же ограничений, что и в предыдущей задаче, плюс дополнительное ограничение si =5. Мы можем решить эту
задачу, используя, как и на предыдущем этапе, программу TORA, и добавив с помощью опции MODIFY (Изменить) новое ограничение.
Глава 8. Целевое программирование
Но в данном случае в решении второй задачи нет необходимости, поскольку уже в решении первой имеем 5," = 0. Следовательно, решение первой задачи автоматически является оптимальным решением второй (можете проверить это утверждение с помощью программы TORA). Решение 5; = 0 показывает, что ограничение, касающееся бюджета рекламной компании, выполняется.
Дополнительное ограничение 5* = 5 можно также учесть путем подстановки значения 5 вместо переменной 5* в первое ограничение. В результате правая часть этого неравенства изменится со значения 45 на 40. Получим следующую задачу ЛП.
Минимизировать G2 = 5; при ограничениях
4jc, + 8х2 - s; = 40,
8х, + 24jc2 + 5,* - s; = 100, хг + 2х2 < 10,
X,) X2j 5, , 5, , 52 ^0.
В новой формулировке этой задачи на одну переменную меньше, чем в первой задаче.
Теперь мы используем ту же задачу, чтобы показать, что наилучшее решение получается тогда, когда в методе приоритетов используется оптимизация "настоящих" целевых функций, а не тех целевых функций, которые строятся только для того, чтобы выполнялись определенные ограничения. Следующий пример также демонстрирует правило исключения столбцов при решении задач целевого программирования.
Пример 8.2.3
Цели, поставленные в задаче из примера 8.2.2, можно переформулировать следующим образом.
Цель 1. Максимизировать объем рекламной аудитории (/>,).
Цель 2. Минимизировать стоимость рекламной кампании (Р2).
Математически эти цели можно выразить с помощью следующих целевых функций.
Максимизировать Р, = 4jc, + 8х2, минимизировать Р2 = 8х, + 24х2.
Отдельные ограничения на желаемый объем рекламной аудитории и стоимость рекламной кампании в данном случае излишни, поскольку для этих величин мы получим границы после решения соответствующих задач.
Получили новую задачу.
Максимизировать Р, = 4х, + 8х2, минимизировать Р2 = 8хх + 24х2
8.2. Алгоритмы целевого программирования
при ограничениях
х, + 2хг < 10,
л-,<6,
xvx2>0.
Сначала решим эту задачу с помощью процедуры, описанной в примере 8.2.2. Этап 1. Решаем первую задачу ЛП.
Максимизировать />, = 4jc, + 8хг
при ограничениях
хх + 2х2<