рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ИССЛЕДОВАНИЕ ОПЕРАЦИЙ

ИССЛЕДОВАНИЕ ОПЕРАЦИЙ - раздел Науковедение, Веление В Исследование Операций Едьмое Издание ...

ВЕЛЕНИЕ В

ИССЛЕДОВАНИЕ ОПЕРАЦИЙ

ЕДЬМОЕ ИЗДАНИЕ

м д и А .

 

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

LINEAR PROGRAMMING

Рис. 2.4. Графическое решение модели Reddy Mikks, полученное в системе TORA … При необходимости можно удалить график, а затем нарисовать его заново. Для этого щелкните на записи all xj>= 0 (все…

LINEAR PROGRAMMING OUTPUT SUMMARY

a) Определите единичную стоимость дополнительного фунта помидоров. b) Изменится ли оптимальное решение, если склад сможет принимать больше… c) Найдите новое оптимальное решение, если компания уменьшит объем пе­рерабатываемых помидоров до 50 000 фунтов за…

LINEAR PROGRAMMING OUTPUT SUMMARY

Рис. 2.24. Выходной отчет программы TORA для задачи разрезания рулонов бумаги При интерпретации результатов, полученных с помощью программы TORA, следу­ет… УПРАЖНЕНИЯ 2.5

Н т

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 - г22 + 1(1 - г33 < 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- 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, х х2, х3>0.

b) Максимизировать z = хх - Зх2 при ограничениях

х12<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 + х23<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 Pro­gramming — 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  

СпР 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, Prin­ceton, 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 Expan­sion 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 рк.

С точки зрения математики задача максимизации вероятности р эквивалентна за­даче максимизации величины 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), у32< 20 (маршрут 2-3), у43< 10 (маршрут 3-4), Уь~Уг^ 60 (маршрут3-5),

6.3. Задача поиска кратчайшего пути

y2-yt<15 (маршрут 4-2),

У54< 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

Спрос

От В Уд. стоимость

1 9999 2 9999 4 10

Зарача нахождения максимального йотой»

17 Оптимальное решение I Общая стоимость : 60 От-в

Промежуточные вычислении

Имя Узел Поток Спрос От В Единичный поток

N2 Я N3 Т а N4 1 4

Нахождение потока наименьшей стоимости

Р

Матрица пропускных <

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

Промежуточные вычислении

м N2 N3 N4 N5 Поток 40 50 0 -30 -60

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, т.е.

(, = Д.-Ц-Д;.

Свободный запас времени процесса (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 (Планирование проектаОМетод критического пути). В выходном окне доступна опция СРМ Cal­culations (Вычисления метода СРМ), после выбора которой поэтапово выполня­ются проходы вперед и назад, а также вычисляются запасы времени. Для соз­дания и работы с временным графиком нужно выбрать опцию СРМ Ваг 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 Applica­tions, 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, = {х22} — две различные точки из множества С. Если мно­жество С выпукло, тогда точка 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, Зх12 = 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-строки симплекс-таблицы:

Св[В-,12,Рз,Р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 = (Р345в) = 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. Теория линейного программирования

Вычисления условия оптимальности

снв:' = -,о,о,о

Ц " с)ггя = С„В-12) Р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 = (Р„Р256) =

(Ь 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 при ограничениях

х23 + х, + хв = 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,

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

Данная таблица представляет допустимое оптимальное решение. Оптимальные зна­чения переменных х хг и х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 < х33 сверху не ограничена).

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 Х

О

Напомним: чтобы определить, какая из небазисных переменных Рук должна войти в базис, следует найти

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,=CeB­1

0.1)

-с,х,=

= {о,-м,-м)

-(3.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,

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 при ограничениях

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 вычислите значения переменных двойственной задачи. Кро­ме того, определите, является ли данное решение прямой задачи оптимальным.

а) В = (Р43). в)В-(Р„Р,).

б) В = (Р23). г) В = (Р,, Р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)(Р„Р46) = = (2,-2, 1).

Отсюда следует, что

e = min< —

соответствует переменной xt. Следовательно, в базис вводится вектор Р4. Вычисляем новый базис и обратную матрицу В~'.

ХВ; (^2' ^3> Х4^ '

'2 1 \

В,=(Р234) =

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хх + Зх23<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<,

а-,<6,

jc„jc2>0.

Оптимальное решение этой задачи (полученное с помощью программы TORA) со­ставляет х, = 0, х2 — 5 и Р, = 40. Отсюда видно, что объем рекламной аудитории не может превысить 40 миллионов человек.

Этап 2. Добавим ограничение 4хх + 8х2 > 40, которое гарантирует, что решение, полу­ченное на предыдущем этапе, не будет ухудшено, и решаем следующую задачу ЛП.

Минимизировать/5,, = 8х1 + 24хг

при ограничениях

дг, + 2х2 < 10,

4дг, + 8х2 > 40, хх2>0.

Программа TORA дает следующее оптимальное решение этой задачи: Р2 = 96 000 долл., х: = 6 минут их2 = 2 минуты. Мы получили тот же объем реклам­ной аудитории (Р, = 40 млн. чел.), но за меньшую стоимость. Это результат того, что здесь мы искали оптимальные значения соответствующих величин, а не просто удовлетворяли ограничениям, как в примере 8.2.2.

Теперь решим ту же задачу, используя правило исключения столбцов. Это правило применяется последовательно к строкам симплекс-таблицы, соответствующим ча­стным целевым функциям.

Первая задача ЛП. Максимизация объема рекламной аудитории. При решении этой задачи симплекс-таблица содержит строки, соответствующие как целевой функции Pv так и целевой функции Р2. Строка целевой функции Р2 пока играет пассивную роль, но будет изменена перед решением второй задачи ЛП.

Первая задача решается за две симплексные итерации, как показано в следующей таблице.

Нижняя часть этой таблицы показывает оптимальное решение^ = 0, х2 = 5 и Рх = 40 первой задачи.

Глава 8. Целевое программирование

Итерация   Базис Xl Х2 Si s2 Решение
  Р, 1 -4 -8
    Рг -8 -24
    Si
    Si
  Pi 4 '
    Р2  
    *2 1/2 ч. 1/2 •
    s2  

Правило исключения столбцов применяется перед решением второй задачи для удаления из симплекс-таблицы с оптимальным решением первой задачи небазис­ной переменной хр для которой г1 - Cj ф 0. Такие переменные, приняв положитель­ные значения в задаче с более низким приоритетом, ухудшают решение задач с бо­лее высоким приоритетом.

Вторая задача ЛП. Минимизация стоимости рекламной кампании. Правило ис­ключения столбцов удаляет переменную s,, для которой г, - с, = 4. Из Р2-строки приведенной выше симплекс-таблицы видно, что если не удалить переменную sx, то на первой итерации решения второй задачи она должна войти в базис, при этом из базиса будет исключена переменная х2. После этого будет получено оптимальное решение второй задачи (в этом решении хх — х2 = 0), которое ухудшает оптимальное решение первой, поскольку теперь Р, = 0 вместо Р, = 40, как было ранее.

В данном случае вторая задача ЛП является задачей минимизации. После удале­ния переменной 5, в базис вводится небазисная переменная х, со значением разно­сти Zj - cjt равным 4 (> 0), что может улучшить значение целевой функции Р2. В следующей симплекс-таблице показаны две итерации решения второй задачи ЛП. Р,-строку можно удалить из этой таблицы, так как она не участвует в процессе поиска оптимального решения задачи с целевой функцией Р2.

Итерация Базис Xi Хг Si s2 Решение

Pi 40

1 ''-Рг 4 0 0 120

х2 1/2 1 0 5

s2 1 0 16 Pi 40

2 Рг 0 0 -4 96 х2 0 1 -1/2 2 Xi 1 0 16

Полученное здесь оптимальное решение (х, = 6, х2 = 2) со значениями целевых функций Р, = 40 и Р2 — 96 такое же, как и полученное ранее.

Литература

УПРАЖНЕНИЯ 8.2.2

1. Пусть в задаче из примера 8.2.2 бюджет рекламной компании возрос до 110 ООО долл. Желаемый объем рекламной аудитории остался неизмен­ным — 45 млн. чел. Найдите решение данной задачи методом приоритетов.

2. Решите задачу из упражнения 8.1.1, используя следующую иерархию при­оритетов частных целевых функций: G, у G2 у G3 у GA.

3. Вернитесь к задаче из упражнения 8.1.2. Пусть частные целевые функции, описывающие количество привлеченных посетителей подросткового, средне­го и старшего возрастов, обозначаются соответственно G2 и G,. Решите эту задачу при следующих иерархиях приоритетов частных целевых функций:

a) G,yG2y G3,

b) G3y G2y G,.

4. С помощью метода приоритетов решите задачу из упражнения 8.1.3, предпо­лагая, что порядок приоритетов частных целевых функций совпадает с по­рядком их описания в задаче.

ЛИТЕРАТУРА

1. Cohon Т. L. Multiobjective Programming and Planning. Academic Press, New York, 1978.

2. Ignizio J. P., Cavalier T.M. Linear Programming. Prentice-Hall, Upper Saddle River, NJ, 1994.

3. Steuer R. E. Multiple Criteria Optimization: Theory, Computations, and Applica­tion, Wiley, New York, 1986.

Литература, добавленная при переводе

1. Поляк Б. Т. Введение в оптимизацию. — М.: Наука, 1983.

2. Поспелов Г. С, Ириков В. А. Программно-целевое планирование и управле­ние. — М.: Сов. радио, 1976.

3. Соболь И. М., Статников Р. Б. Выбор оптимальных параметров в задачах со многими критериями. — М.: Наука, 1981.

4. Сухарев А. Г., Тимохов А. В., Федоров В. В. Курс методов оптимизации. — М.: Наука, 1986.

КОМПЛЕКСНЫЕ ЗАДАЧИ

8.1. 1 Лесозаготовительная компания использует три участка леса площадью 100 ООО, 180 ООО и 200 000 акров для заготовки древесины и последующих ле­сопосадок. Древесная продукция компании разбита на три основные катего­рии: пиломатериал, клееная фанера и древесная измельченная масса. Для каждого участка лесного массива возможны различные альтернативные ва­рианты его эксплуатации, которые различаются стоимостью разработок, арендной платой, периодом чередования вырубок и лесопосадок, объемом произведенной продукции. Эти альтернативы показаны в следующей таблице.

1 Задача основана на материалах статьи Rustagi К.Р. Forest Management Planning for Timber Prodaction: A Goal Programming Approach, Bulletin No. 89, Yale University, New Haven, 1976.

Глава 8. Целевое программирование

долл. в год/акр Период м3 в год/акр

Участок Альтернатива Стоимость Аренда чередова- Пиломатериалы Фанера Древесная

ния (годы) масса

А1
  А2
  A3
  А4
  А5
  А6
  А7
А1
  А2
  A3
  А4
  А5
  А6
А1
  А2
  A3
  А4
  А5

Для гарантии будущего производства необходимо, чтобы на каждый акр ле­са, выведенный из использования, приходилось столько же выведенных из использования акров леса, каков период чередования вырубок и лесопоса­док. Арендная плата — это собираемая плата на порубку леса.

Компания преследует следующие цели.

Ежегодное производство пиломатериалов, фанеры и древесной массы должно быть не менее 200 000,150 000 и 350 000 кубических метров соответственно.

1. Ежегодный бюджет на восстановление леса составляет 2,5 млн. долл.

2. Ежегодная арендная плата должна составлять 100 долл. за акр.

Какой вариант эксплуатации для каждого участка леса следует выбрать?

8.2. Благотворительная организация помогает детскому приюту. Для этого она привлекает волонтеров ежедневно с 8 до 14 часов. Волонтеры могут начать работу в любое время с 8 до 11 часов. Длительность работы волонтера не более 6 и не менее 2 часов. С 12 до 13 часов обеденное время. Благотворительная ор­ганизация считает, что в приюте ежедневно необходимо 15 волонтеров для работы с 8 до 9, 16 волонтеров — с 9 до 10, 18 волонтеров — с 10 до 11, 20 во­лонтеров — с 11 до 12 и 16 волонтеров — с 12 до 14 часов (но это работа на один час, так как с 12 до 13 обеденное время). Здесь частными целевыми функциями могут быть волонтеры (т.е. их количество), работающие в течение каждого часа с 8 до 14. Цель всей задачи — определить количество волонтеров, приступающих к работе в начале каждого часа, и длительность их работы. Сформулируйте и решите эту задачу как задачу целевого программирования.

ГЛАВА 9

ЦЕЛОЧИСЛЕННОЕ ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

Целочисленное линейное программирование (ЦЛП) ориентировано на решение задач линейного программирования, в которых все или некоторые переменные должны принимать целочисленные (или дискретные) значения. Несмотря на ин­тенсивные исследования, проводимые на протяжении последних десятилетий, из­вестные вычислительные методы решения задач ЦЛП далеки от совершенства. На сегодня не существует надежных вычислительных алгоритмов решения таких задач.

В настоящей главе рассматриваются сначала примеры задач целочисленного программирования, а затем методы их решения.

9.1. ПРИМЕРЫ ЗАДАЧ ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ

Рассмотрим сначала простые практические задачи, которые сводятся к задачам ЦЛП, затем обратимся к более сложным. Для удобства задачи, в которых все пере­менные должны быть целочисленными, называются полностью целочисленными, а задачи, в которых лишь некоторые переменные должны принимать целочисленные значения, — частично-целочисленными.

Пример 9.1.1. Распределение капиталовложений

Оценивается пять проектов с точки зрения их возможного финансирования на пред­стоящий трехлетний период. Следующая таблица содержит ожидаемую прибыль от реа­лизации каждого проекта и распределение необходимых капиталовложений по годам.

 

Проект   Расходы (млн. долл./год)   Прибыль
1 -й год 2-й год 3-й год (млн. долл.)

Доступный капитал 25 25 25

(млн. долл.)

Глава 9. Целочисленное линейное программирование

Предполагается, что каждый утвержденный проект Ьудет реализован за трехлет­ний период. Необходимо определить совокупность проектов, которой соответствует максимум суммарной прибыли.

Задача сводится к решению типа "да-нет" относительно каждого проекта. Опреде­лим двоичные переменные хг.

fl, если проект j утвержден,

[О, если проект у не утвержден. Задача ЦЛП будет записана следующим образом.

Максимизировать г = 20л:, + 40ж2 + 20ж3 + 15ж4 + 30ж5 при ограничениях

5ж, + 4ж2 + Зх3 + 7xt + 8*5 < 25,

ж, + 7х2 + 9ж3 + 4ж4 + 6ж5 < 25,

8ж, + 10ж2 + 2х3 + xt + 10*5 < 25,

ж,, х2, х3, ж4, ж5 = 0 или 1.

Оптимальным целочисленным решением (полученным с помощью программы TORA1) является ж, = х2 = х3 = ж4 = 1, xs = 0 с z = 95 млн. долл. Это решение означа­ет, что необходимо выбрать для финансирования все проекты, кроме пятого.

Интересно сравнить решение данной задачи ЦЛП с решением "обычной" задачи ЛП с теми же ограничениями, но без условия целочисленности переменных. За­дача линейного программирования получается в результате замены условия *. = О или 1 на ограничение 0<*;< 1 для всех у. Эта задача имеет решение ж, = 0,5789, х2 = х3 = х( = 1, *5 = 0,7368 и 2 =108,68 млн. долл. Такое решение с точки зрения целочисленной задачи лишено смысла, так как две переменные принимают дроб­ное значение. Можно было бы попытаться округлить полученный результат, что привело бы к ж, = *5 = 1. Полученное при этом решение является недопустимым, так как нарушаются ограничения задачи. Более существенным в этой ситуации является то, что округление применять нельзя, так как х} представляет решение типа "да-нет", для которого дробные значения лишены смысла.

УПРАЖНЕНИЯ 9.1.12

1. В модели распределения капиталовложений из примера 9.1.1 предположим, что проект 5 должен быть обязательно выбран, если выбирается либо проект 1, либо 3. Измените математическую модель, включив в нее новое ограниче­ние, и решите полученную задачу с помощью программы TORA.

2. Рассмотрите задачу о загрузке самолета грузами пяти типов. Вес и»,, объем и,, а также стоимость г, единицы груза каждого типа приведены в следую­щей таблице.

1 Для решения задач ЦЛП в программе TORA из основного меню выберите команду Inte­ger Programming (Целочисленное программирование). После ввода исходных данных (файл Ch9ToraCapitalBudgetEx9-l-l.txt) перейдите в выходное окно и для получения оптимально­го решения выберите Automated В&В (Автоматические вычисления методом ветвей и границ).

2 Задачи 3-6 в адаптированном виде заимствованы из книги Malba Tahan. El Hombre Que Calculaba, Editorial Limusa, Mexico City, 1994, pp. 39-182.

9.1. Примеры задач целочисленного программирования

Груз /' Вес единицы груза, Объем единицы груза, Стоимость единицы груза,

iv, (тонны) V/(куб. ярд) Г/ (100 долл.)

15 1 4

2 8 8 7

3 3 6 6

4 2 5 5

5 7 4 4

Максимальная грузоподъемность и объем самолета равны 112 тонн и 109 куб. ярдов соответственно. Сформулируйте в виде модели ЦЛП задачу определе­ния набора грузов, обеспечивающего максимальную стоимость груза, и найдите решение с помощью программы TORA.

3. Пусть есть 7 полных бутылок вина, 7 бутылок, заполненных наполовину, и 7 пустых бутылок. Необходимо распределить 21 бутылку между тремя пер­сонами так, чтобы каждый получил 7 бутылок. В то же время каждый дол­жен получить одинаковое количество вина. Сформулируйте эту задачу в виде задачи ЦЛП с ограничениями в виде равенств и найдите решение, используя программу TORA. (Совет. Используйте фиктивную целевую функцию, все коэффициенты которой равны нулю.)

4. Эксцентричный шейх оставил завещание относительно распределения ста­да верблюдов между тремя детьми: Тарик получает не менее половины ста­да, Шариф - не менее одной трети, а Маиса — по меньшей мере одну девя­тую часть. Остаток завещался благотворительной организации. В завещании не упоминался размер стада, говорилось лишь, что количест­во верблюдов — число нечетное и благотворительная организация получа­ет в точности одного верблюда. Сколько верблюдов оставил шейх и сколько получил каждый из его детей?

5. Супружеская пара фермеров посылает трех своих сыновей на базар продать 90 яблок, чтобы обучить их числам и обращению с деньгами. Самый старший Джим получил для продажи 50 яблок, Билл (средний) — 30 и самый млад­ший Джон— лишь 10. Родители поставили пять условий. 1. Цена яблок должна быть равна либо 1 долл. за 7 яблок, либо 3 долл. за 1 яблоко. 2. Каж­дый ребенок может использовать один или оба варианта цен. 3. Все дети должны вернуться с одинаковой суммой денег. 4. Каждый ребенок приносит домой сумму, которая является четным числом (без центов). 5. Сумма денег, полученная каждым из детей, должна быть максимальной при сформулиро­ванных условиях. Считается, что дети могут продать все яблоки, которые они имеют. Как дети могут выполнить требования своих родителей?

6. Капитан торгового судна, который хотел наградить трех членов команды за их героические усилия по спасению груза корабля во время неожиданного шторма, взял некоторую сумму денег у казначея и отдал приказ старшему помощнику распределить их поровну между тремя матросами после того, как корабль достигнет берега. Однажды ночью один из матросов решил взять свою (справедливую) третью часть заранее. После деления денег на три равные части осталась одна монета, которую матрос решил оставить себе (в дополнение к третьей части денег). На следующую ночь второй мат-

Глава 9. Целочисленное линейное программирование

рос решил осуществить такой же план и, повторив деление на три части ос­тавшейся суммы, присвоил себе еще и монету, которая осталась после де­ления. На третью ночь третий матрос взял третью часть того, что осталось, и одну дополнительную монету, которая осталась после деления. Когда ко­рабль достиг берега, старший помощник капитана разделил остаток денег поровну между тремя матросами и снова осталась одна монета. Старший помощник отложил эту монету в сторону и вручил матросам предназначен­ные им равные части. Сколько денег было в самом начале? Сформулируйте задачу в виде задачи ЦЛП и найдите оптимальное решение, используя про­грамму TORA. (Совет. Задача имеет бесконечно много целочисленных ре­шений. Предположите для удобства, что следует определить минимальную сумму денег, которая удовлетворяет условиям задачи. Увеличивая затем полученное решение на 1, рассмотрите его как нижнюю границу и получи­те новое минимальное решение. Продолжая таким образом, можно най­ти формулу для общего решения.)

7. Имеются следующие слова, состоящие из трех букв: AFT, FAR, TVA, ADV, JOE, FIN, OSF и KEN. Предположим, что буквам алфавита приписаны числа (метки), начиная с А = 1 и заканчивая Z = 26. Каждое слово помечается чис­лом, равным сумме числовых меток составляющих его трех букв. Например, слово AFT имеет метку 1 + 6 + 20 = 27. Необходимо выбрать пять из задан­ных восьми слов таким образом, чтобы получить максимальную суммарную метку. Вместе с тем выбранные пять слов должны удовлетворять следующе­му условию: (сумма меток первых букв) < (сумма меток вторых букв) < (сумма меток третьих букв).

Сформулируйте задачу в виде задачи ЦЛП и найдите ее оптимальное реше­ние, используя программу TORA.

8. Фирма, специализирующаяся на грамзаписи песен, заключила договор с вос­ходящей звездой эстрады на запись восьми песен. Продолжительность песен равна 8, 3, 5, 5, 9, 6, 7 и 12 минут соответственно. Фирма планирует исполь­зовать для записи двусторонние кассеты. Каждая сторона имеет длитель­ность звучания 30 минут. Фирма намерена распределить песни на две сторо­ны кассеты сбалансированным образом. Это значит, что продолжительность звучания песен на каждой стороне кассеты должна быть примерно одинако­вой (насколько это возможно). Сформулируйте задачу в виде задачи ЦЛП и найдите оптимальное решение.

9. Рассмотрите задачу из предыдущего упражнения, предположив, что харак­тер мелодий песен диктует условия, согласно которым третья и четвертая песни не могут быть записаны на одной стороне кассеты. Сформулируйте за­дачу в виде задачи ЦЛП. Возможно ли использование 25-минутной (для ка­ждой стороны) кассеты для записи 8 песен? Если нет, используйте модель ЦЛП, чтобы определить минимальную емкость кассеты для записи.

9.1. Примеры задач целочисленного программирования

Пример 9.1.2. Задача с постоянными затратами

Три телефонные компании предложили мне подписаться на их услуги по дальней связи в пределах Соединенных Штатов. Услуги компании MaBell стоят 16 долл. в месяц плюс 0,25 долл. за каждую минуту связи. Компания PaBell оценивает свои услуги в 25 долл. в месяц, но имеет поминутную оплату в 0,21 долл. Что касается компании BabyBell, месячная плата равна 18 долл., а стоимость минуты связи — 0,22 долл. Мои телефонные звонки на дальние расстояния в среднем составляют обычно 200 минут в месяц. Предполагается, что я не вношу помесячной платы, ес­ли не использую телефон для звонков на дальние расстояния, и что я могу распре­делять звонки между тремя компаниями, как мне хочется. Как я должен использо­вать три компании, чтобы минимизировать свой месячный телефонный счет?

Эта задача может быть легко решена без использования методов ЦЛП. Тем не менее поучительно сформулировать ее как целочисленную задачу.

Пусть

— количество минут разговора (на дальние расстояния) в месяц через компа­нию MaBell,

х2— количество минут разговора в месяц через компанию PaBell, х3— количество минут разговора в месяц через компанию BabyBell, (/, = 1, если хх > 0, и у, = 0 при x, = 0, у2 = 1, если хг > 0, и у2 = 0 при х2 = 0, у3 = 1, если х3 > 0, и у3 = 0 при х3 = 0.

Для обеспечения равенства г/ = 1 при положительном значении переменной xt ис­пользуем ограничение х <Myjt j — 1, 2, 3, где М— достаточно большое число, ко­торое не должно ограничивать величину х . Так как звонки на дальние расстояния занимают около 200 минут в месяц, т.е. xt < 200 для всех j, поэтому достаточно по­ложить М= 200.

Теперь можно сформулировать следующую задачу.

Минимизировать г = 0,25л:, + 0,21д:2 + 0,22л:з + 16у, + 2Ьу2 + 18у3 при ограничениях

*, + х2 + х3 = 200, ж, S200y„ *,<200у„ х3<200у3,

2/i> у 2' г/3 = 0или 1-

Формулировка задачи показывает, что помесячная у-я оплата за пользование теле­фоном является частью целевой функции г лишь при условии У,= 1, которое по оп­ределению может выполняться лишь тогда, когда х} > 0. Если в оптимальном ре­шении будет Xj = 0, то минимума функции z (с учетом положительности коэффициента при у) можно достичь только при равенстве нулю yjt что и требуется.

Оптимальным решением данной задачи (получено с помощью TORA, файл Ch9ToraFixedChargeEx9-l-2.txt) является х3 = 200, у3 = 1, все остальные перемен­ные равны нулю. Это значит, что копания BabyBell должна быть выбрана для

Глава 9. Целочисленное линейное программирование

услуг по дальней связи. Следует подчеркнуть, что информация, которую несет значение переменной j/3 = 1, является избыточной, так как такой же результат следует из хг > 0 (= 200). В самом деле, основной причиной использования пере­менных «/,, у2 и у3 является лишь учет месячной платы за телефон. В сущности, только эти двоичные переменные преобразуют исходную нелинейную задачу в частично-целочисленную, поддающуюся аналитическому решению.

Изложенная концепция "твердого гонорара" является типичной для задачи, известной в литературе как задача с постоянными затратами.

УПРАЖНЕНИЯ 9.1.2

1. Компания планирует производство некоторой продукции на трех станках, которой должно быть изготовлено не менее 2000 единиц. Минимальная про­изводительность любого станка равна 500 единиц. Следующая таблица со­держит необходимую информацию для рассматриваемой задачи.

Станок Расходы на переналадку Затрать! на производство единицы продукции Производительность (в единицах продукции)

Сформулируйте задачу в виде задачи ЦЛП и найдите ее оптимальное реше­ние, используя программу TORA.

2. Нефтедобывающая компания изучает вопрос о бурении четырех нефтяных скважин на двух нефтеносных участках. Издержки подготовки к бурению на каждом участке и затраты на бурение скважины ; на участке i (i=l, 2; j=l, 2, 3, 4) приведены в следующей таблице.

  Затраты на бурение скважины (млн. долл.) Издержки подготовки
Участок 12 3 4 к бурению (млн. долл.)
2 18 5
4 6 3 1

Сформулируйте задачу в виде задачи ЦЛП и найдите ее оптимальное реше­ние, используя программу TORA.

3. Рассматриваются три промышленных участка для размещения обрабаты­вающих заводов, которые снабжают своей продукцией трех потребителей. Данные об объемах производства продукции, объемах потребления и себе­стоимости (в долл.) перевозки продукции от заводов к потребителям содер­жатся в следующей таблице.

1 2 3 Объем производства

Спрос 1200 1700 1600

9.1. Примеры задач целочисленного программирования

В дополнение к транспортным, существуют еще фиксированные затраты в объеме 10 ООО, 15 ООО и 12 ООО долл., связанные с 1, 2 и 3 заводом соответственно. Сформулируйте задачу в виде задачи ЦЛП и найдите ее оптимальное решение, ис­пользуя программу TORA.

4. Повторите упражнение 3, предполагая, что спрос потребителей 2 и 3 умень­шился до 800 единиц.

Пример 9.1.3. Задача о покрытии

Для обеспечения безопасности студентов отдел безопасности американского уни­верситета устанавливает телефоны экстренного вызова на территории студенческо­го городка. Отделу желательно установить минимальное количество телефонов та­ким образом, чтобы на каждой из основных улиц этого городка был расположен по крайней мере один телефон. На рис. 9.1 представлены основные улицы (от А до К) студенческого городка.

Q

Улица А

а Я К

S

Улица В

®

Улица Е

ев Я Я

Улица С

ев Я К

Улица D

©

Рис. 9.1. Схема улиц студенческого городка

Логично расположить телефоны на пересечениях улиц так, чтобы каждый телефон мог обслуживать по меньшей мере две улицы. Из рис. 9.1 видно, что данное распо­ложение улиц требует не более восьми телефонов.

Определим, что переменная х} равна 1, если телефон расположен на перекрестке / (j =1,2, 8), и 0 в противном случае.

Условия задачи требуют установки по меньшей мере одного телефона на каждой из 11 улиц (от А до К). Поэтому задачу можно сформулировать следующим образом.

Минимизировать г = хг + х2 + х3 + xt + xs + х6 + х7 + xs

при ограничениях

Глава 9. Целочисленное линейное программирование

хх + х2 > 1 (улица А),

х2 + х3 > 1 (улица В),

xt + х& > 1 (улица С),

х7 + хе>1 (улица D),

х6 + х7 > 1 (улица £),

ж2 + ж6 > 1 (улица Р),

хг + хе > 1 (улица G),

ж4 + ж7 > 1 (улица Я),

х2 + xt > 1 (улица /),

ж5 + ж8 > 1 (улица J),

х3 + х& > 1 (улица К),

xt = 0 или 1,= 1, 2,8.

В соответствии с оптимальным решением задачи (полученным с помощью про­граммы TORA, файл Ch9ToraSetCoverEx9-l-3.txt) необходимо установить телефо­ны на перекрестках 1, 2, 5 и 7.

Рассмотренная выше модель является типичным представителем общего класса задач, именуемых задачами о покрытии. В этой модели все переменные являются двоичными. Все коэффициенты левой части каждого ограничения равны 0 или 1, а правая часть ограничений имеет вид ">1". Целевая функция всегда имеет вид с1х1 + сгх2 + ...+спхп, где С;>0 для всех j = 1, 2 п, и подлежит минимизации. В рассмотренном примере с; = 1 для всех Однако если величина с; будет равна стоимости установки телефона на ;'-м перекрестке, то эти коэффициенты могут принимать значения, отличные от 1.

УПРАЖНЕНИЯ 9.1.3

1. Компания ABC занимается доставкой грузов пяти потребителям. Можно вы­брать следующие маршруты перевозки грузов.

Маршрут Потребители
1, 2, 3, 4
4, 3, 5
1, 2, 5
2, 3, 5
1, 4, 2
1, 3, 5

Эти маршруты определяются грузоподъемностью автомобиля, доставляюще­го грузы. Например, на маршруте 1 автомобиль имеет грузоподъемность, достаточную для доставки грузов лишь потребителям 1, 2, 3 и 4. Следующая таблица содержит расстояния (в милях) между терминалом компании ABC и потребителями.

9.1. Примеры задач целочисленного программирования

  ABC
ABC

Необходимо выполнить дневные поставки пяти потребителям, минимизируя при этом пройденный суммарный путь. Оптимальное решение может быть таким, что один и тот же потребитель обслуживается более чем одним мар­шрутом. Но при реализации такого решения используется только один из этих маршрутов. Сформулируйте задачу в виде задачи ЦЛП и найдите опти­мальное решение, используя программу TORA.

2. Американский университет формирует комитет по рассмотрению жалоб студен­тов. В соответствии с указаниями, полученными из администрации, в эту комис­сию необходимо включить по крайней мере одну женщину, одного мужчину, од­ного студента, одного администратора и одного преподавателя. Выдвинуты десять кандидатур (обозначенных для удобства буквами от а до ;'). Принадлеж­ность этих кандидатур к различным категориям отражена в следующей таблице.

Категория Кандидатуры
Женщины а, £>, с, d, в
Мужчины f, 9, h, i, j
Студенты a, b, c, j
Администраторы e, f
Преподаватели d, g, h, i

Университет заинтересован создать наименьшую по составу комиссию, га­рантирующую представительство каждой из указанных категорий. Сформу­лируйте задачу в виде задачи ЦЛП и найдите ее оптимальное решение, ис­пользуя программу TORA.

3. Округ Вашингтон определил шесть городов, которые нуждаются в службе скорой помощи. Станции скорой помощи могут быть расположены в некото­рых или во всех шести городах. Однако в силу территориальной близости не­которых городов одна станция может обслуживать более одного населенного пункта. Единственным условием является время поездки; оно не должно превышать 15 минут. Приведенная ниже таблица содержит время поездки в минутах между шестью городами.

 

Глава 9. Целочисленное линейное программирование

Сформулируйте задачу в виде задачи ЦЛП, оптимальное решение которой определит наименьшее количество станций и их расположение. Найдите оп­тимальное решение, используя программу TORA.

4. Сокровища короля Тута находятся в музее в Новом Орлеане. План музея, со­стоящего из нескольких комнат, соединенных открытыми дверями, показан на рис. 9.2. Сторож, находящийся у двери, может наблюдать за двумя смеж­ными комнатами. Администрация музея заинтересована, чтобы в каждой комнате присутствовал сторож, но число сторожей должно быть минималь­ным. Сформулируйте задачу в виде задачи ЦЛП и найдите ее оптимальное решение, используя программу TORA.

I II

—I г

-±-1-1 ^

_Т т

Рис. 9.2. План музея

Пример 9.1.4. Ограничения типа "или-или"

Машиностроительная компания использует один станок для выполнения трех за­казов. Время выполнения, а также срок сдачи каждого заказа даны в приведенной ниже таблице. Сроки сдачи заказов вычисляются от начальной даты, т.е. предпо­лагаемого начала выполнения первого заказа.

Заказ Время выполнения заказа (дни) Срок сдачи заказа (дни) Штраф за задержку заказа (долл./день)

Требуется определить последовательность выполнения заказов, которая миними­зирует штраф за задержку сдачи заказов.

Определим переменную х как дату завершения заказа /, измеряемую в днях от на­чальной даты. Задача имеет два типа ограничений: 1) ограничения, которые гаран­тируют, что никакие два заказа не выполняются одновременно; 2) ограничения по срокам сдачи заказов. Сначала рассмотрим первый тип ограничений.

Два заказа i и /, время выполнения которых р, и pjt не будут выполняться одновре­менно, если

или xt > Xj + Pj, или Xj > xt + pt,

в зависимости от того, будет ли заказ i предшествовать выполнению заказа или наоборот.

9.1. Примеры задач целочисленного программирования

Поскольку все математические модели имеют дело лишь с совместными ограниче­ниями, мы преобразуем ограничения типа или-или, введя дополнительную двоич­ную переменную

fl, если заказ i предшествует заказу у, уи=п

(0, если заказ j предшествует заказу i.

При достаточно большом М ограничение типа или-или преобразуется в следующие два совместных ограничения.

My,j + [x,-xt)>Pj и M(-yil) + {xj-xi)>p,.

Указанное преобразование гарантирует, что лишь одно из двух ограничений может быть активным в любой момент времени. Если ytj = 0, первое ограничение является активным, а второе — избыточным (так как его левая часть будет содержать вели­чину М, которая намного больше р). Если у, =1, первое ограничение является из­быточным, а второе — активным.

Рассмотрим теперь ограничения по срокам сдачи заказов. При заданной дате cl сда­чи заказа j введем в рассмотрение неограниченную по знаку переменную Sj. Тогда соответствующее ограничение примет вид

*,+Р,+ ',-<*,■

Если Sj > 0, то заказ сдается в срок, если же sy < 0, получаем убытки, связанные с за­держкой сдачи заказа. Используя стандартную замену

Sj=s'j-s-, о,

приводим ограничение к виду

Xj+s)-S-j=dj-Pj.

Штраф за задержку сдачи заказа пропорционален s].

Математическая модель рассматриваемой задачи принимает следующий вид. Минимизировать z = 19л," + 12л; +34^

при ограничениях

хх2 + Му12>20, -ж, + х2 - Му12 > 5 - М, х,-х3 + Му,3>15, -х, + х3- Му13 > 5 - М, х2 - х3 + М у23 > 15, -*2 + *3-M</23>20-M, х, + sl - si =25-5,

x2 + sl -s; =22-20,

x3 + sl -s~ = 35-15,

X,, X2, X3, si, Sl, si, Sl, Sj, s3 >0, Ух2> УXV </23 = 0иЛи1-

408 Глава 9. Целочисленное линейное программирование

Целочисленные переменные у12, у13 и у23 введены для преобразования ограничений типа или-или в совместные ограничения. Конечная задача является частично-целочисленной задачей линейного программирования.

Для решения задачи выберем М = 100 — число, которое больше суммы времени изготовления всех трех заказов.

Оптимальным решением (полученным с помощью программы TORA, файл Ch9ToraEitherOrEx9-l-4.txt) является хг = 20, х2 = 0 и х3 = 25. Следовательно, оп­тимальной последовательностью выполнения заказов будет 2 —> 1 —> 3. В соответст­вии с оптимальным решением заказ 2 выполняется за время 0 + 5 = 5, заказ 1 — за время 20 + 5 = 25 и заказ 3 — за 25 + 15 = 40 дней. В результате выполнение заказа 3 задержано на 40 - 35 = 5 дней, что приводит к штрафу в размере 5 х 34 = 170 долл.

УПРАЖНЕНИЯ 9.1.4

1. Игральная доска состоит из девяти равных квадратов, расположенных 3x3. Требуется заполнить каждый квадрат числом из интервала от 1 до 9 таким об­разом, чтобы сумма чисел каждой строки, каждого столбца и каждой диагона­ли была равна 15. Определите числа в каждом квадрате для следующих случаев.

a) Числа в каждой строке и каждом столбце различны.

b) Числа во всех квадратах различны.

Запишите сформулированную задачу в виде задачи ЦЛП с ограничениями и решите ее с помощью программы TORA.

2. Станок используется для производства двух взаимозаменяемых видов про­дукции. Производительность станка позволяет за день изготовить не более 20 единиц продукции первого вида и 10 единиц второго вида. Существует альтернативная наладка станка, позволяющая ежедневно изготовлять не бо­лее 12 единиц продукции вида 1 и 22 единицы вида 2. Анализ рынка показы­вает, что максимальный суммарный спрос на два вида продукции составляет 35 единиц ежедневно. Предположим, что прибыль от производства единицы продукции первого и второго вида составляет 10 и 12 долл. соответственно. Какая из двух возможных настроек станка должна быть выбрана? Сформу­лируйте задачу в виде задачи ЦЛП и решите ее с помощью программы TORA. (Примечание. Сформулированная двухмерная задача может быть решена пу­тем перебора возможных решений после графического построения простран­ства допустимых решений. Этого нельзя сделать в «-мерной задаче.)

3. Некая компания производит три вида продукции. Ежедневные временные затраты и потребности сырья, необходимые на изготовление одной единицы продукции, приведены в следующей таблице.

Продукция Необходимое время (час./ед.) Необходимое сырье (фунты/ед.)

1 3 4

2 4 3

3 5 6

Доходы от производства единицы каждого вида продукции равны 25, 30 и 22 долл. соответственно. Компания имеет возможность организовать выпуск

9.1. Примеры задач целочисленного программирования

этой продукции в двух цехах своего производства. Цехи отличаются главным об­разом ресурсом рабочего времени и сырья, как показывает следующая таблица.

Цех Ресурс рабочего времени (часов в рабочий день) Ресурс сырья (фунты в день)

Сформулируйте задачу в виде задачи частично-целочисленного линейного программирования и используйте программу TORA для оптимального раз­мещения производства по цехам.

4. Рассмотрите задачу планирования производственной линии, связанной с из­готовлением двух различных изделий на одном станке. Последовательность выполнения необходимых для этого восьми операций изображена на рис. 9.3. Пусть Pj— время выполнения j-й операции 0 = 1, 2, п). Сроки сдачи изделий типа 1 и 2, которые определяются на основе некоторого ис­ходного момента, равны dl и d2 соответственно. Предполагается, что любая выполняемая на станке операция должна быть завершена до начала другой операции. Сформулируйте задачу в виде задачи частично-целочисленного линейного программирования.

Изделие 1 Изделие 2

Рис. 9.3. Отношения предшествования опера­ций для упражнения 4

5. Компания владеет фабрикой, которая производит изделия трех типов. Необ­ходимые трудовые затраты и потребности сырья для производства одной единицы каждого из трех типов изделий приведены в следующей таблице.

Тип изделия Необходимое время (час./ед.) Необходимое сырье (фунты/ед.)
Наличный дневной объем

Доходы от производства единицы каждого из трех типов изделий равны 25, 30 и 45 долл. соответственно. Если будет производиться изделие типа 3, то его ежедневный объем производства должен быть не менее 5 единиц. Сформули­руйте задачу в виде задачи частично-целочисленного линейного программиро­вания и используйте программу TORA, чтобы найти оптимальное решение.

6. Опишите невыпуклые заштрихованные области допустимых решений, кото­рые изображены на рис. 9.4, в виде набора одновременно выполняющихся

Глава 9. Целочисленное линейное программирование

ограничений. Используйте программу TORA, чтобы найти оптимальное ре­шение, которое максимизирует целевую функцию г = 2л;, + Зл:2 при ограни­чениях, определяющих область, изображенную на рис. 9.4, а.

^2 ^2

а б в

Рис. 9.4. Пространства решений для упражнения 6

7. Пусть требуется, чтобы любые k ограничений из следующих т ограничений были активными.

g,(xvx2.....*„)^Ь„ i = l,2, .... т.

Покажите, как это сделать.

8. Правая часть следующего ограничения может принимать одно из значений bi> Ь2> ът> т-е-

gixlt х2.....хп) < Ь„ Ъ2, ... или Ът.

Покажите, как можно представить это ограничение.

9.2. МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ

Методы решения задач целочисленного линейного программирования основаны на использовании вычислительных возможностей методов линейного программиро­вания. Обычно алгоритмы целочисленного программирования включают три шага.

Шаг 1. "Ослабление" пространства допустимых решений задачи цело­численного линейного программирования путем замены любой двоичной переменной у непрерывным ограничением 0 < у < 1 и от­брасывания требования целочисленности для всех остальных пе­ременных. В результате получается обычная задача линейного программирования.

Шаг 2. Решение задачи линейного программирования и определение ее оптимального решения.

Шаг 3. Имея полученное (непрерывное) оптимальное решение, добавляем специальные ограничения, которые итерационным путем изме­няют пространство допустимых решений задачи линейного про­граммирования таким образом, чтобы в конечном счете получи­лось оптимальное решение, удовлетворяющее требованиям целочисленности.

Разработаны два общих метода генерирования специальных ограничений, о ко­торых идет речь при реализации шага 3.

9.2. Методы решения задач целочисленного программирования

1. Метод ветвей и границ.

2. Метод отсекающих плоскостей.

Хотя ни один из упомянутых методов не дает надежных результатов при реше­нии задачи целочисленного линейного программирования, опыт вычислений сви­детельствует, что метод ветвей и границ более успешно решает задачу, чем метод отсекающих плоскостей.

9.2.1. Метод ветвей и границ

Впервые метод ветвей и границ был предложен в 1960 году А. Лэндом (A. Land) иДж. Дойгом (G. Doig) для решения полностью целочисленных и частично-целочисленных задач линейного программирования. Позднее в 1965 году Э. Бэлес (Е. Balas) разработал аддитивный алгоритм для решения задач с двоичными пере­менными. Этот алгоритм с вычислительной точки зрения оказался настолько прост (в основном используя только операции сложения и вычитания), что его рассматривали как возможный прорыв в методах решения задач ЦЛП общего вида.3 К сожалению, этот алгоритм не оправдал возлагаемые на него надежды. Более того, если первона­чально алгоритм не был связан с методом ветвей и границ, то вскоре было установле­но, что аддитивный алгоритм является частным случаем метода ветвей и границ.

В этом разделе мы представим только метод ветвей и границ и основы этого ме­тода объясним на численном примере.

Пример 9.2.1

Рассмотрим следующую задачу целочисленного линейного программирования.

Максимизировать z = 5*, + 4х2

при ограничениях

хх + х2< 5, 10*, + 6х2 < 45, х х2> 0 и целые.

На рис. 9.5 пространство допустимых решений задачи целочисленного линейного про­граммирования представлено точками. Соответствующая начальная задача линейного программирования (обозначим ее ЛПО) получается путем отбрасывания условий цело­численности. Ее оптимальным решением будет хх = 3,75, х2 = 1,25 и z = 23,75.

Поскольку оптимальное решение задачи ЛПО не удовлетворяет условию целочис­ленности, метод ветвей и границ изменяет пространство решений задачи линейного программирования так, что в конечном счете получается оптимальное решение за­дачи целочисленного линейного программирования. Для этого сначала выбирается одна из целочисленных переменных, значение которой в оптимальном решении задачи ЛПО не является целочисленным. Например, выбирая хх (= 3,75), замечаем,

3 Общую задачу ЦЛП можно выразить через двоичные переменные следующим образом. Любая целочисленная переменная х, значения которой не превышают конечной верхней границы и (т.е. 0 < х < и), может быть выражена через двоичные переменные с помощью представления х = 2°у0 + 2'у, + 22у2 +... + 2кyt, где к — наименьшее целое число, удовлетво­ряющее условию 2'*'-1>и,а y0,y,,...,yj —двоичные переменные.

Глава 9. Целочисленное линейное программирование

что область 3 < jc, < 4 пространства допустимых решений задачи ЛПО не содержит целочисленных значений переменной и, следовательно, может быть исключена из рассмотрения, как бесперспективная. Это эквивалентно замене исходной задачи ЛПО двумя новыми задачами линейного программирования ЛП1 и ЛП2, которые определяются следующим образом:

Рис. 9.5. Пространство решений задачи ЦЛП

пространство допустимых решений ЛП1 = пространство допустимых решений ЛПО

+ (х, < 3),

пространство допустимых решений ЛП2 = пространство допустимых решений ЛПО

+ (х, > 4).

На рис. 9.6 изображены пространства допустимых решений задач ЛП1 и ЛП2. Оба пространства содержат все допустимые решения исходной задачи ЦЛП. Это озна­чает, что задачи ЛП1 и ЛП2 "не потеряют" решения начальной задачи ЛПО.

Если мы продолжим разумно исключать из рассмотрения области, не содержащие целочисленных решений (такие как 3 < ж, < 4), путем введения надлежащих огра­ничений, то в конечном счете получим задачу линейного программирования, опти­мальное решение которой удовлетворяет требованиям целочисленности. Другими словами, будем решать задачу ЦЛП путем решения последовательности непрерыв­ных задач линейного программирования.

Новые ограничения х,<3 и х,>4 взаимоисключаемы, так что задачи ЛП1 и ЛП2 необходимо рассматривать как независимые задачи линейного программирования, что и показано на рис. 9.7. Дихотомизация задач ЛП — основа концепции ветвле­ния в методе ветвей и границ. В этом случае хх называется переменной ветвления.

Оптимальное решение задачи ЦЛП находится в пространстве допустимых решений либо задачи ЛП1, либо ЛП2. Следовательно, обе подзадачи должны быть решены.

9.2. Методы решения задач целочисленного программирования

ЛШ-

0 1 2 3 4 5

Рис. 9.6. Пространства решений задач ЛП1 и ЛП2

Выбираем сначала задачу ЛП1 (выбор произволен), имеющую дополнительное ог­раничение < 3.

Максимизировать z = 5х, + 4х2

при ограничениях

х, + х2 < 5, Юх, + 6х2<45, *,<3, xlt х2>0.

ЛПО

х1=3,75,х2= 1,25, z = 23,75

ЛП1

х1 = 3,х2=2, z = 23 Нижняя граница (оптимум)

ЛШ

х, = 4, х2= 0,83, z = 23,33

Рис. 9.7. Ветвление по переменной х; для создания задач ЛП1 и ЛП2

Оптимальным решением задачи ЛП1 (которое можно получить с помощью метода решения задач с ограниченными переменными, изложенного в разделе 7.3) являет-ся = 3, х2 = 2 и 2 = 23.

Глава 9. Целочисленное линейное программирование

Оптимальное решение задачи ЛП1 удовлетворяет требованию целочисленности пе­ременных Xj и х2. В этом случае говорят, что задача ЛП1 прозондирована. Это оз­начает, что задача ЛП1 не должна больше зондироваться, так как она не может со­держать лучшего решения задачи ЦЛП.

Мы не можем в этой ситуации оценить качество целочисленного решения, полу­ченного из рассмотрения задачи ЛП1, ибо решение задачи ЛП2 может привести к лучшему целочисленному решению (с большим значением целевой функции г). Пока мы можем лишь сказать, что значение г = 23 является нижней границей оп­тимального (максимального) значения целевой функции исходной задачи ЦЛП. Это значит, что любая нерассмотренная подзадача, которая не может привес­ти к целочисленному решению с большим значением целевой функции, должна быть исключена из рассмотрения, как бесперспективная. Если же нерассмотренная подзадача может привести к лучшему целочисленному решению, то нижняя гра­ница должна быть надлежащим образом изменена.

При значении нижней границы z = 23 исследуем задачу ЛП2 (единственную остав­шуюся нерассмотренную подзадачу). Так как в задаче ЛПО оптимальное значение целевой функции равно 23,75 и все ее коэффициенты являются целыми числами, то невозможно получить целочисленное решение задачи ЛП2 (пространство реше­ний которой более узко, чем в задаче ЛПО), которое будет лучше существующего. В результате мы отбрасываем подзадачу ЛП2 и считаем ее прозондированной.

Реализация метода ветвей и границ завершена, так как обе подзадачи ЛП1 и ЛП2 про­зондированы (рассмотрение первой привело к целочисленному решению, а второй — к заключению, что ее возможное целочисленное решение не может быть лучше сущест­вующего). Следовательно, мы заключаем, что оптимальным решением задачи ЦЛП яв­ляется решение, соответствующее нижней границе, а именно х, = 3, х2 = 2 и z = 23.

Остались без ответа два вопроса, связанные с реализацией описанной вычисли­тельной процедуры.

1. Можно ли было в задаче ЛПО выбрать переменную хг в качестве переменной ветвления вместо х,?

2. Можно ли было при выборе подзадачи для зондирования решить сначала задачу ЛП2 вместо ЛП1?

Ответы на оба вопроса положительные. Однако последующие вычисления могут значительно отличаться. Ситуация, когда первой решается задача ЛП2, иллюстри­руется схемой вычислений (рис. 9.8), подтверждающей высказанную мысль. Оп­тимальным решением задачи ЛП2 является хг = 4, х2 = 0,83 и z = 23,33 (проверьте с помощью программы TORA).

Поскольку значение переменной х2 (= 0,83) не является целым числом, задача ЛП2 исследуется дальше. Рассматриваем подзадачи ЛПЗ и ЛП4, используя ветви х2<0 и х2 > 0 соответственно. Это означает, что

пространство решений ЛПЗ = пространство решений ЛП2 + (х2 < 0) = = пространство решений ЛПО + (х, > 4) +(х2 < 0),

пространство решений ЛП4 = пространство решений ЛП2 + (х2 > 1) = = пространство решений ЛПО + (х, > 4) +(х2 > 1).

9.2. Методы решения задач целочисленного программирования

Рис. 9.8. Другой путь решения задачи примера 9.2.1

У нас есть три нерассмотренные подзадачи, которые должны быть решены, — ЛП1, ЛПЗ и ЛП4. Предположим, что мы произвольно выбрали первой задачу ЛП4. Эта за­дача не имеет решения и, следовательно, является прозондированной. В качестве следующей выберем подзадачу ЛПЗ. Ее оптимальным решением является jc, = 4,5, х2 = 0 и 2 = 22,5. Нецелочисленное значение переменной х, (= 4,5) порождает две вет­ви решений при ж, < 4 и х, > 5 и соответствующие им подзадачи ЛП5 и ЛП6. При этом

пространство решений ЛП5 = пространство решений ЛПО + (ж, > 4) + (х2 < 0) + + (х, < 4) = пространство решений ЛПО + (х, = 4) + (х2 < 0),

пространство решений ЛП6 = пространство решений ЛПО + (х, > 4) + (х2 < 0) + + (х, > 5) = пространство решений ЛПО + (ж, > 5) + (х2 < 0).

Теперь не рассмотрены подзадачи ЛП1, ЛП5 и ЛП6. Подзадача ЛП6 прозондирова­на, так как не имеет допустимых решений. Подзадача ЛП5 имеет целочисленное решение (х, = 4, *2 = 0, 2 = 20) и, следовательно, порождает нижнюю границу (г = 20) оптимального значения целевой функции задачи ЦЛП. Теперь остается лишь подзадача ЛП1, решение которой также является целочисленным (х, = 3, х2 = 2, 2 = 23). Следовательно, нижнюю границу значений целевой функции пола­гаем равной 23. Так как все подзадачи прозондированы, оптимальным решением задачи ЦЛП является решение, соответствующее последней нижней границе, а именно хх = 3, х2 = 2 и z = 23.

Глава 9. Целочисленное линейное программирование

Последовательность решения подзадач, показанная на рис. 9.8 (ЛПО, ЛП2, ЛП4, ЛПЗ, ЛП6, ЛП5, ЛП1), является наихудшей; тем не менее, она встречается на практике. Этот пример указывает на основную слабость метода ветвей и границ: как выбирать следующую подзадачу для исследования и как выбирать для нее пе­ременную ветвления?

В процессе решения, представленного на рис. 9.7, мы случайно наткнулись на хорошую нижнюю границу значений целевой функции на самой первой подзада­че ЛП1, что позволило прозондировать ЛП2 без детальных исследований и за­кончить вычисления. По существу, мы завершили вычисления, решив лишь одну подзадачу. В процессе решения, представленном на рис. 9.8, мы были вынужде­ны исследовать семь подзадач, и лишь тогда завершились вычисления метода ветвей и границ. Хотя имеются эвристические соображения, позволяющие "угадать", какая из ветвей может привести к улучшенному решению задачи ЦЛП (см., например, [3]), не существует строгой теории, которая всегда обеспе­чивала бы надежные результаты.

Теперь сформулируем алгоритм метода ветвей и границ в общем случае. Пред­положим, что рассматривается задача максимизации. Зададим нижнюю границу оптимального значения целевой функции z задачи ЦЛП равной Положим i = 0.

Шаг 2. (Зондирование и определение границы). Выбираем i-ю подзадачу линей­ного программирования ЛГО для исследования. Решаем ЛШ и зондируем ее, при этом возможна одна из трех ситуаций.

a) Оптимальное значение целевой функции задачи ЛГО не может улучшить текущей нижней границы.

b) ЛГО приводит к лучшему допустимому целочисленному решению, чем те­кущая нижняя граница.

c) ЛГО не имеет допустимых решений. Возможны два варианта.

a) Если задача ЛГО прозондирована, нижняя граница изменяется только при условии, что найдено лучшее решение задачи ЦЛП. Если все подзадачи прозондированы, необходимо закончить вычисления: оптимальным ре­шением задачи ЦЛП является то, которое соответствует текущей нижней границе, если такая существует. Иначе положить i = i + 1 и повторить шаг 1.

b) Если задача ЛГО не прозондирована, переходим к шагу 2 для выполнения ветвления.

Шаг 2. Ветвление. Выбираем одну из целочисленных переменных х:, оптималь­ное значение x'f которой в оптимальном решении задачи ЛГО не является

целым числом. Исключаем из пространства допустимых решений область [jty]<jt;<[jt]] + l (где [у]— наибольшее целое, не превосходящее v) путем

формирования двух подзадач ЛП, которые соответствуют ограничениям

хИ +

Положим i = i + 1 и переходим к шагу 1.

9.2. Методы решения задач целочисленного программирования

Описанный алгоритм применим для решения задач максимизации. Для реше­ния задач минимизации в алгоритме необходимо заменить нижнюю границу верх­ней (начальное значение которой равно z = +°°).

Алгоритм метода ветвей и границ непосредственно распространяется на задачи частично-целочисленного ЛП (в которых лишь некоторые из переменных должны принимать целочисленные значения). Если некоторая переменная является непре­рывной, то она никогда не выбирается в качестве переменной ветвления. Допусти­мая подзадача определяет новую границу для значения целевой функции, если значения дискретных переменных являются целочисленными и значение целевой функции улучшено по сравнению с текущей границей.

УПРАЖНЕНИЯ 9.2.1

1. Решите задачу ЦЛП из примера 9.2.1 методом ветвей и границ, начиная с пере­менной х2 как переменной ветвления. Решите подзадачи с помощью программы TORA, используя опцию MODIFY (Изменить) для задания верхней и нижней границ. Начните с решения подзадачи, включающей ограничение х2 ^ГхЛ .

2. Постройте дерево подзадач, получаемое при использовании метода ветвей и границ для каждой из приведенных ниже задач. Для удобства в нулевом узле в качестве переменной ветвления всегда выбирайте хх.

а) Максимизировать z = Зхх + 2х2

при ограничениях

2*, + 5х2 < 9, 4х, + 2х2 < 9, хх, х2 > О и целые.

Ь) Максимизировать z = 2хх + Зх2

при ограничениях

5х, + 7х2<35, 4ж, + 9х2 < 36, хх, х2>Ои целые.

с) Максимизировать z = хх + х2 при ограничениях

х + 5х2< 16, 6хх + Ъх2 < 27, хх, х2 > О и целые.

d) Минимизировать z = 5хх + 4х2

при ограничениях

Зх, + 2х2>5, 2хх + 3х2>7, хх, х2 > 0 и целые.

е) Максимизировать z = 5хх + 7х2 при ограничениях

х2< 13, 6хх + 9х2<41, х,, ж2>Оицелые.

Глава 9. Целочисленное линейное программирование

3. Решите задачи из предыдущего упражнения, предполагая, что на перемен­ную Xj не налагается условие целочисленности.

4. Покажите графически, что следующая задача ЦЛП не имеет допустимых ре­шений, а затем проверьте этот результат с помощью метода ветвей и границ.

Максимизировать z = 2х1 + х2

при ограничениях

10х, + 10х2 < 9, 10х, + 5х2> 1, хр х2 > 0 и целые.

5. Решите следующую задачу методом ветвей и границ. Максимизировать z = 18х, + 14х2 + 8х3 + 4х4

при ограничениях

15х, + 12х2 + 7х3 + 4х4 + х5 < 37, х,, х2, х3, х4, х5 = 0 или 1.

9.2.2. Метод ветвей и границ в системе TORA

Модуль целочисленного программирования системы TORA позволяет интерак­тивно генерировать деревья подзадач в методе ветвей и границ. Чтобы воспользо­ваться этой возможностью, в выходном окне модуля целочисленного программиро­вания выберите опцию User-guided В&В (Учебный режим метода ветвей и границ). В этом окне представлена вся информация, необходимая для создания дерева подза­дач. На рис. 9.9 показан внешний вид окна, в котором представлен корень N10 де­рева подзадач, которое соответствует задаче ЛПО на рис. 9.6 (файл ch9ToraB&BEx9-2-l.txt). Каждый узел определяется двумя цифрами, перед кото­рыми стоит буква N. Левая цифра определяет строку таблицы, в которой находится узел, а правая цифра представляет порядковое значение в пределах той же строки. Например, обозначение N10 на рис. 9.9 указывает, что узел 0 расположен в строке 1 (это единственный узел в этой строке). В программе TORA может быть не более 10 подзадач в одной строке. Но помните, что в автоматическом режиме нет каких-либо ограничений на количество генерируемых подзадач.

Далее следует выбрать переменную ветвления, щелкнув на любом из узлов, поме­ченных "х?". Эти узлы выделены зеленым цветом. Если щелкнуть на записи одного узла над областью, где расположено дерево, появится соответствующее решение. Как показано на рис. 9.10, из решения для узла N10 видно, что х, = 3,75 и х2 = 1,25. Так­же следует обратить внимание на то, какие переменные ограничены целыми значе­ниями. Щелчок на любой из переменных приведет к автоматическому созданию двух подзадач, которые соответствуют выделенной переменной ветвления. На рис. 9.11 показан результат выбора х, в качестве переменной ветвления в узле N10. К дереву были добавлены узлы N20 (соответствует новому ограничению х, < 3) и N21 (соответствует новому ограничению х, > 4). В узле N20 получено целочисленное ре­шение, поэтому он считается прозондированным. Прозондированные узлы выделя­ются красным или пурпурным цветом. Пурпурный цвет используется тогда, когда в прозондированном узле была достигнута текущая нижняя граница значения целе­вой функции, что в данном случае произошло с узлом N20. Узел N21 пока не прозон­дирован. Поэтому щелчок на нем приведет к созданию следующих узлов в строке 3 дерева. Этот процесс продолжается до тех пор, пока не будут прозондированы все узлы (т.е. пока все они не будут выделены красным или пурпурным цветами).

9.2. Методы решения задач целочисленного программирования

Рис. 9.10. Выбор переменной ветвления

Глава 9. Целочисленное линейное программирование

В верхнем правом углу выходного окна автоматически отслеживается нижняя и верхняя границы целевой функции. Эти границы вычисляются автоматически при зондировании узлов. TORA отбрасывает подзадачи, значения целевых функ­ций которых выходят за текущие границы. Тем не менее можно убрать границы (т.е. снять флажок с опции) для создания полного дерева подзадач. В этом случае узел будет прозондирован только тогда, когда будет получено целочисленное реше­ние или если оно будет недостижимо.

Важно отметить, что в автоматическом режиме TORA выполняет последова­тельное решение подзадач по принципу "первым пришел — первым ушел". По­этому, вероятнее всего, поиск вручную может привести к более эффективному де­реву подзадач, поскольку пользователь может осуществить лучший выбор следующего зондируемого узла.

УПРАЖНЕНИЯ 9.2.2

1. Следующее упражнение было создано для того, чтобы продемонстрировать неестественное поведение метода ветвей и границ в некоторых ситуациях даже для небольших по размеру задач. В частности, обратите внимание на то, сколько подзадач будет проверено прежде, чем будет найден оптимум.

Минимизировать у

при выполнении условий

2(ж,+ *, + ... +*16) + г/= 15. Все переменные двоичные.

9.2. Методы решения задач целочисленного программирования 421

Используя программу TORA в автоматическом режиме, ответьте на следую­щие вопросы.

a) Сколько подзадач было решено прежде, чем было найдено оптимальное решение?

b) Сколько подзадач было решено прежде, чем была проверена оптималь­ность найденного решения?

2. Дана следующая задача ЦЛП.

Максимизировать z — 18х, + 14лс2 + 8х3 при выполнении условий

15х, + 12л;2+ 7х3 < 43,

xlt х2, х3 — неотрицательные целые.

В системе TORA в режиме пошагового выполнения создайте дерево подза­дач с вычислением границ целевой функции и без такового. Как повлияет знание границ целевой функции на количество сгенерированных подзадач? Для сравнения всегда выбирайте переменную ветвления с наименьшим ин­дексом и зондируйте все задачи в текущей строке слева направо, затем пе­реходите на следующую строку.

3. Вернитесь к задаче из упражнения 2. Преобразуйте эту задачу в задачу ЦЛП с двоичными переменными, затем решите ее в программе TORA в автоматиче­ском режиме. Сравните размеры деревьев подзадач в каждом из упражнений.

4. В следующей задаче ЦЛП с двоичными переменными с помощью TORA сге­нерируйте дерево подзадач.

Максимизировать z = Зх, + 2хг - 5х3 - 2х4 + Зхь

при выполнении условий

х, + х2 + х3 + 2xi + хь < 4, 7ж, + Зх3 - 4xt + Зх5 < 8, Их, - 6х2 + Зх4 - Зх6 > 3, ж,, х2, х3, xf, хь = О или 1.

5. Используя программу TORA в режиме пошагового выполнения, покажите, что следующая задача не имеет допустимого решения.

Максимизировать z = 2х, + х2

при выполнении условий

10х, + НЦ, < 9, 10х, + 5х2 > 1, xv х2 = 0 или 1.

6. С помощью TORA создайте дерево подзадач в методе ветвей и границ для сле­дующей частично-целочисленной задачи и найдите ее оптимальное решение.

Максимизировать z = х, + 2х2 - Зх3

при выполнении условий

Зх, + 4х2 - х3 < 10, 2jc, - Зх2 + 4х3 < 20, х,, х2 неотрицательные целые, х3>0.

Глава 9. Целочисленное линейное программирование

7. В системе TORA создайте дерево подзадач для следующей задачи, полагая, что выполняется только одно ограничение.

Максимизировать г = ж1 + 2дг2 - Здг3

при выполнении условий

20х1 + Ьх2- х3<10, 12x, + 3x2 + 4x3<13, х„ х2, х3>0.

8. Преобразуйте представленную ниже задачу в частично-целочисленную, по­сле чего в системе TORA сгенерируйте для нее дерево подзадач. Каким будет оптимальное решение?

Максимизировать z = хх + 2лг2 + 5jc3

при выполнении условий

х + Ъхг - Ъхг>Ь, 2х12 + х3<10, х х2, х3 > 0.

9.2.3. Метод отсекающих плоскостей

Данный метод, как и метод ветвей и границ, начинает работу с оптимального ре­шения "обычной" (непрерывной) задачи линейного программирования. Однако вме­сто ветвления и построения границ этот метод видоизменяет пространство допусти­мых решений, последовательно прибавляя специальным образом построенные ограничения (именуемые отсечениями). Рассмотрим сначала идею этого метода на графическом примере, а затем покажем, как отсечения строятся алгебраически.

Пример 9.2.2

Продемонстрируем применение метода отсекающих плоскостей для решения сле­дующей задачи ЦЛП.

Максимизировать z = 7jc, + 10х2

при ограничениях

+ Зх2 < 6, Чхл3<ЗЬ, xv х2> 0 и целые.

Данный метод путем добавления отсечений (отсекающих плоскостей) преобразует пространство допустимых решений соответствующей задачи линейного программи­рования в выпуклый многогранник, вершина которого, соответствующая оптимуму, является целочисленной и представляет решение исходной задачи. На рис. 9.12 по­казан пример двух таких отсечений. Мы начинаем с оптимального решения непре­рывной задачи линейного программирования (хх, х2) = (4,5, 3,5) и z = 66,5. Затем прибавляем отсечение I, которое вместе с ограничениями исходной задачи линейного программирования приводит к оптимальному решению (xv х2) = (4 у , 3) с z = 62. По­сле этого прибавляется отсечение II, которое вместе с отсечением I и исходными огра­ничениями приводит к оптимальному решению (jc,, х2) — (4, 3) с z = 58. Последнее решение является полностью целочисленным, как и требуется.

9.2. Методы решения задач целочисленного программирования

Прибавленные отсечения не отбрасывают ни одной исходной допустимой целочис­ленной точки, но должны проходить по меньшей мере через одну целочисленную точку (допустимую или недопустимую). Этим основным требованиям должно удов­летворять любое отсечение.

В общем случае может потребоваться любое (конечное) число отсечений для дости­жения полностью целочисленной экстремальной точки. В действительности коли­чество необходимых для этого отсечений не зависит от размерности задачи в том смысле, что для решения задачи с небольшим количеством переменных и ограниче­ний может потребоваться больше отсечений, чем для задачи большой размерности.

Рис. 9.12. Последовательность построения отсечений

Метод отсекающих плоскостей начинает работу с решения непрерывной задачи ли­нейного программирования. В симплекс-таблице, соответствующей оптимальному решению задачи линейного программирования, следует выбрать одну из строк (называемую производящей), для которой базисная переменная нецелочисленная. Искомое отсечение строится на основании дробных составляющих коэффициентов производящей строки. По этой причине его называют дробным отсечением. Пока­жем построение дробного отсечения на нашем примере.

При дополнительных переменных хъ и х4 для ограничений 1 и 2 оптимальная сим­плекс-таблица исходной задачи имеет следующий вид.

Базис Х1 хг хз Xi Решение
z 63/22 31/22 66,5
хг 7/22 1/22 3,5
Х1 -1/22 3/22 4,5

Оптимальным непрерывным решением является jc1 = 4,5, jc2 = 3,5, хг = 0, xt = О иг = 66,5. Целочисленное отсечение получается в предположении, что все пере­менные задачи являются целочисленными. Поскольку коэффициенты исходной целевой функции являются целочисленными, то и значение г, соответствующее целочисленному решению, должно быть целочисленным.

Информация, содержащаяся в симплекс-таблице, соответствующей оптимальному решению, может быть записана в виде следующих уравнений.

z-уравнение: z + ||x3+|±х4 = 66^, ^..-уравнение: хг+^хг +^*4 =3^-^-уравнение: -^х, =4^.

Глава 9. Целочисленное линейное программирование

Так как в этом примере г, хх и х2 должны быть целочисленными и все они на дан­ный момент имеют дробные значения в оптимальной симплекс-таблице, любое из трех уравнений можно использовать в качестве производящей строки для построе­ния отсечения. Выберем (произвольно) для этой цели z-уравнение.

Z+ 22 ХЪ + 22*4 = ^2 (пРОИЗВОДЯ1Чая z-строка).

Для построения дробного отсечения каждый из нецелочисленных коэффициентов раскладывается на целую и дробную части при условии, что дробная часть являет­ся строго положительной. Например,

5 2

И)-

Разложение коэффициентов производящей z-строки приводит к следующему уравнению.

При переносе всех целочисленных слагаемых в левую часть уравнения, а всех дробных слагаемых в правую часть получаем следующее.

z+ 2V*4-66 = l-g*3-£*4.

Поскольку все переменные в рассматриваемой задаче принимают целочисленные значения, левая часть последнего уравнения должна быть целочисленной, откуда следует, что и правая часть также должна принимать целые значения. Перепишем ее следующим образом.

i-lir -S-r =1 2 22 3 22 4 2

:х __z.x =jl_(1£xх ) • - ' " 22*3 + 22 4/'

Поскольку х3, xt > О, выражение в скобках является неотрицательным. Поэтому величина т_тгхэ -£*4. будучи целочисленной, не может превышать 1/2. Следова­тельно, необходимое условие целочисленности можно записать следующим образом.

--2-х <0 2 22 3 22 4-и'

Это и есть дробное отсечение, порожденное z-строкой. Нетрудно убедиться, что ранее найденное оптимальное непрерывное решение хх = 4,5, х2 = 3,5, х3 = О, х4 = 0 не удов­летворяет отсечению. Действительно, так как xa = xt = О, отсечение не удовлетворяет­ся (оно приводит к неравенству 1/2 <0). Следовательно, если мы присоединим отсе­чение к конечной симплекс-таблице, то оптимальное решение новой симплекс-таблицы будет "двигаться" в направлении выполнения ограничения целочисленности. Можно таким же образом построить отсечение, исходя из производящей л^-строки или лг2-строки. Рассмотрим сначала jCj-строку. Имеем

Xl~22X3 + 22ХА = 4 2 (пРоизв°ДяЩая *f строка). Операция разложения приводит к уравнению

v(-1+iM0+£h=K)-

Соответствующим отсечением является

21 .. 3 ... 1

9.2. Методы решения задач целочисленного программирования

Аналогично

*2 + z2x3 + 22Х4 = 3 2 (пРоизв°Дящая *2"стРока) записывается в виде

v(0+i)v(0+Ata=(3+2-)-

Следовательно, в данном случае отсечение имеет вид

——х ——х + — <0 22*3 22 4 + 2

Любое из трех отсечений может быть использовано на первой итерации метода от­секающих плоскостей. Поэтому нет необходимости строить все три отсечения перед выбором одного из них.

Выбирая (произвольно) отсечение, порожденное д:2-строкой, записываем его сле­дующим образом.

'22ХЪ~72Х4 + $=~2' 51 ~° (отсечение

Это ограничение добавляется в качестве дополнительного в оптимальную сим­плекс-таблицу задачи.

Базис *i х2 Хз Si Решение
z 63/22 31/22 66,5
хг 7/22 1/22 3,5
Х1 -1/22 3/22 4,5
«1 -7/22 -1/22 -0,5

Таблица представляет оптимальное, но недопустимое решение. Для восстановле­ния допустимости решения применим двойственный симплекс-метод (см. раз­дел 4.4), что приведет к следующей симплекс-таблице.

Базис Х1 хг хз Хл S1 Решение
z
хг
Х1 1/7 -1/7 Ц
Хз 1/7 -22/7

Из-за дробных значений переменных jc, и х3 последнее решение все еще нецелочис­ленное. Выберем лг,-строку в качестве производящей, т.е.

vKh+(-'+fh=K)-

Соответствующее отсечение имеет вид

~4xa~7s,+s2=~i' s2~° (отсечение2).

426 Глава 9. Целочисленное линейное программирование

Присоединяя отсечение 2 к последней симплекс-таблице, получаем следующее.

базис Хх Хг Хз Ха S1 s2 Решение
z
хг
хх 1/7 -1,7 ц
хз 1/7 -22/7    
S2 -1/7 -6/7 -4/7
Применение двойственного таблице. симплекс-метода приводит к следующей симплекс-
Базис xx хг хз ха Si s2 Решение
z
хг
хх -1
хз -4
ха -7

Оптимальное решение (jc, = 4, хг = 3, г — 58), определяемое последней симплекс-таблицей, является целочисленным. То, что все элементы данной симплекс-таблицы являются целочисленными, не случайность. Это типичное явление при использовании дробных отсечений.

Важно подчеркнуть, что применение дробного отсечения предполагает целочис-ленность всех переменных, включая дополнительные. Это значит, что данный ме­тод применим только к решению полностью целочисленных задач.

Важность этого продемонстрируем на следующем примере. Рассмотрим огра­ничение

1 13

х. +-х2 <-,

1 3 2 2

л:,, хг> О и целые.

С точки зрения решения соответствующей задачи ЦЛП это ограничение преобразу­ется в уравнение путем введения неотрицательной дополнительной переменной s,, т.е.

1 13

1 3 - 1 2

Применение дробного отсечения предполагает, что ограничение имеет допусти­мое целочисленное решение по всем переменным, т.е. xv х2 и s,. Рассмотрев это уравнение, можем сказать, что оно может иметь допустимое целочисленное реше­ние переменных хх и х2 лишь в том случае, если переменная s, принимает нецело­численные значения. Следовательно, применение дробного отсечения приведет к недопустимому целочисленному решению, так как все переменные xlt х2 и s, не могут одновременно быть целочисленными. Тем не менее ограничение имеет до­пустимые целочисленные решения для рассматриваемых переменных х: и х2.

9.2. Методы решения задач целочисленного программирования 427 Есть две возможности исправить эту ситуацию.

1. Можно умножить все ограничения на соответствующую константу для уст­ранения дробей. Например, приведенное выше ограничение умножается на 6, что приводит к неравенству 6xt + 2х2 < 39. Любое целочисленное решение переменных х, и х2 автоматически дает целочисленное значение дополни­тельной переменной. Однако этот тип преобразования применим лишь для простых ограничений, так как значения необходимых целочисленных коэф­фициентов в некоторых случаях могут быть чрезвычайно большими.

2. Можно использовать специальные отсечения, именуемые частично-целочисленными. Они ориентированы на решение задач, в которых лишь часть переменных должна принимать целочисленные значения, а остальные (включая дополнительные) остаются непрерывными. Детальное изложение таких отсечений в этой главе не рассматривается (см. [3]).

УПРАЖНЕНИЯ 9.2.3

1. В примере 9.2.2 покажите графически, может ли каждое из следующих ог­раничений служить в качестве правильного отсечения.

a) х, + 2х2 < 10.

b) 2х, + л:2 < 10.

c) Зх2<10.

d) Зх12<15.

2. В примере 9.2.2 покажите графически, как следующие два правильных отсе­чения могут привести к оптимальному целочисленному решению.

Отсечение I. х, + 2х2 < 10.

Отсечение II. 3xj + х2 < 15.

3. Запишите отсечения I и II в примере 9.2.2 через уравнения для переменных х, и х2 и покажите, что они совпадают с отсечениями, которые графически показаны на рис. 9.12.

4. Покажите, что дробное отсечение не приводит к допустимому решению в приведенной ниже задаче, если не устранены все дроби в ограничении.

Максимизировать z = хх + 2х2

при ограничениях

1 13 1 2 " 4 х,, х2 > 0 и целые.

5. Решите следующие задачи методом отсекающих плоскостей и сравните оп­тимальное целочисленное решение с решением, полученным путем округле­ния соответствующего оптимального непрерывного решения.

а) Максимизировать г = 4х, + 6х2 + 2хъ

при ограничениях

4х,-4х2<5,

-х, + 6х2< 5,

-х, + х2 + х3< 5,

х,, х2, х3> 0 и целые.

Глава 9. Целочисленное линейное программирование

Ь) Максимизировать г = Зх, + хг + 3jc3 при ограничениях

у + 2х2 + х3 < 4, 4лг2 - Зх3 < 2, х1-3х2 + 2х3<3, xv х2, х3 > 0 и целые.

9.2.4. Вычислительный взгляд на задачи ЦЛП

На сегодняшний день, несмотря на 40 лет интенсивных исследований, не суще­ствует вычислительного алгоритма, приемлемого для решения всех разнообразных задач целочисленного программирования. Из представленных в этой главе двух ал­горитмов метод ветвей и границ считается более эффективным — практически все коммерческие программы, предназначенные для решения задач ЦЛП, используют этот метод. Метод отсекающих плоскостей более сложен и менее надежен, кроме того его реализация порождает серьезные проблемы, связанные с ошибками машинного округления. Было много попыток сделать этот метод эффективным для компьютер­ных вычислений, но они не увенчались большими успехами. В большинстве случаев метод отсекающих плоскостей используется как дополнительный метод при решении подзадач, генерируемых в процессе применения метода ветвей и границ.

Наиболее важным фактором, влияющим на процесс вычислений в целочисленном программировании, является количество целочисленных переменных. Существую­щие алгоритмы не решают задачу ЦЛП последовательно, т.е. не позволяют получать промежуточные целочисленные решения, отличные от оптимального, поэтому с вы­числительной точки зрения в задаче ЦЛП необходимо ограничиться по возможности меньшим числом переменных, принимающих целочисленные значения. Следую­щие советы могут оказаться полезными при решении практических задач.

1. Аппроксимировать целочисленные переменные непрерывными, где это воз­можно.

2. Сузить, насколько возможно, интервалы допустимых значений целочислен­ных переменных.

3. Избегать в модели ЦЛП использования нелинейных функций.

Уровень развития методов решения целочисленных задач не удовлетворяет тре­бованиям, которые диктуются их практической важностью. Маловероятно, что в целочисленном программировании будет получен новый теоретический прорыв. Представляется более вероятным, что новые технологические достижения в облас­ти компьютерной техники могут предложить новые пути повышения эффективно­сти алгоритмов решения задач ЦЛП.

9.3. ЗАДАЧА КОММИВОЯЖЕРА

Задачи такого типа известны под общим названием задача коммивояжера, в "классической" формулировке которой коммивояжер пытается определить кратчайший маршрут для одноразового посещения п городов. По существу, эта задача является задачей о назначениях с дополнительными ограничениями, кото­рые гарантируют исключение из оптимального решения неполных замкнутых маршрутов. (В задаче коммивояжера замкнутый маршрут, проходящий через

9.3. Задача коммивояжера

каждый пункт только один раз, называется циклом; цикл, проходящий через все пункты, называется полным, в противном случае — частичным или подциклом.) В задаче коммивояжера с п городами можно определить такие переменные:

|1,если город j достижим из города i, У [0, в противном случае.

Имея значения dtj, расстояния от города i до города j (считается, что йц = °° при i=j), задачу коммивояжера можно формализовать следующим образом.

Минимизировать г = ХХ^Л

при ограничениях

2Х= 1,1=1,2, ■■■'п<

7=1 и

хц = 0 или 1,

решение должно быть полным циклом.

Ограничения задачи, кроме последнего, определяют обычную задачу о назначе­ниях (см. раздел 5.4). В общем случае нет гарантии, что оптимальное решение за­дачи коммивояжера может быть получено путем решения соответствующей задачи о назначениях, т.е., что оптимальное решение задачи о назначениях образует пол­ный цикл. Более вероятно, что оно будет содержать частичные циклы, соединяю­щие вместе некоторые подмножества узлов сети. На рис. 9.13 показана задача коммивояжера, состоящая из 5-ти городов. Ребра, соединяющие узлы (города) се­ти, соответствуют дорогам с двухсторонним движением. На этом рисунке показано решение задачи коммивояжера и частичные циклы, соответствующие решению за­дачи о назначениях. Если задача о назначениях формирует полный цикл, то это бу­дет оптимальным решением задачи коммивояжера. Если оптимальное решение за­дачи о назначениях состоит из нескольких частичных циклов, то в эту задачу добавляются специальные ограничения, удаляющие решения с частичными цик­лами. Такие ограничения будут показаны далее в этом разделе.

Задача S-ти городов Решение задачи коммивояжера Решение задачи о назначениях (х12 — Хх — xw — x4i — х31 — 1) (хи — хп — xls — хн — ХЧ| — 1)

Рис. 9.13. Пример задачи коммивояжера для 5-ти городов

Глава 9. Целочисленное линейное программирование

Основные методы решения задачи коммивояжера построены на тех же основах, что и методы ветвей и границ и отсекающих плоскостей, рассмотренные в разде­ле 9.2. Прежде чем представлять эти методы, рассмотрим пример, демонстрирую­щий универсальность задачи коммивояжера для описания различных практиче­ских ситуаций (см. также упражнения 9.3.1).

Пример 9.3.1

Дневной график работы предприятия, производящего краски, включает изготов­ление партий белой (Б), желтой (Ж), красной (К) и черной (Ч) красок. Так как предприятие использует одно и то же оборудование для изготовления всех четырех типов краски, необходима его надлежащая чистка между изготовлением различ­ных партий краски. Приведенная ниже таблица содержит время чистки оборудо­вания в минутах, если за изготовлением краски, указанной в строке, следует изго­товление краски, указанной в столбце. Например, если за белой краской следует желтая, то время чистки равно 10 минут. Поскольку за определенным цветом краски не может следовать такой же цвет, то соответствующее время чистки пола­гается равным бесконечности. Необходимо определить оптимальную последова­тельность дневного производства четырех типов краски, которая минимизирует суммарное время чистки оборудования.

Время чистки в мин., если следующий цвет
Текущий цвет белый желтый черный красный
Белый оо
Желтый ОО
Черный ОО
Красный оо

Условия данной задачи можно представить "графически", поставив в соответствие каждому цвету краски узел сети, и приписав каждой дуге, соединяющей два узла, числовое значение, равное времени чистки. Задача, таким образом, сводится к оп­ределению кратчайшего контура, который начинается в одном узле, проходит че­рез оставшиеся три узла в точности по одному разу перед тем, как возвратиться в начальный узел.

Эту задачу можно решить путем полного перебора шести [(4-1)! = 3! = 6] возмож­ных контуров сети. Приведенная ниже таблица показывает, что последователь­ность узлов Б-»Ж—>К—>Ч—>Б определяет оптимальный контур.

Производственный цикл (контур) Суммарное время чистки

Б->Ж->Ч->К-»Б 10 + 19 + 25 + 45 = 99

Б-»Ж->К->Ч->Б 10 + 18 + 20 + 50 = 98

Б->Ч->Ж->К->Б 17 + 44 + 18 + 45 = 124

Б->Ч->К-»Ж->Б 17 + 25 + 40 + 20 = 102

Б->К->Ч-»Ж->Б 15 + 20 + 44 + 20 = 99

Б->К->Ж->Ч->Б 15 + 40 + 19 + 50 = 124

9.3. Задача коммивояжера

Метод полного перебора контуров практически применим лишь для задач малой размерности. Например, сеть с 11 узлами имеет 10! = 3 628 800 контуров. Следова­тельно, требуется более эффективный подход к решению таких задач.

Определим переменные хц равными 1, если узел ; достигается из узла г, и 0 в про­тивном случае. Необходимым условием для контура (цикла) является то, что узел I связывается лишь с одним узлом и узел j достигается лишь из одного узла. Считая М достаточно большим положительным числом, мы можем записать задачу пред­приятия, производящего краски, следующим образом.

Минимизировать г = МхББ + 10д:БЖ + ПхБЧ + 15a:£/f + 20хЖБ + Мхжж + 9хжч + хЧБ + 44д

при ограничениях

+ 18хжк + 50хЧБ + 44хчж + Мхчч + 25хчк + 4ЬхКБ + 40хкж + 20хкч + Мхкк

ХББ ХБЖ ХБЧ ХБК ~~ ^ '

ХЖБ ХЖЖ ХЖЧ ХЖК ~ ^ >

ХЧБ ХЧЖ ХЧЧ ХЧК ~~

ХКБ ХКЖ ХКЧ ХКК ~ ^ '

ХББ ХЖБ ХЧБ ХКБ = 1» X 4- X + X 4- X ~ 1

ЛГ£Ч 4- Хж1/ + Xt/1J + Хкч — 1, •"-як ХЖК ХЧК~^~ ХКК ~ 1 '

хц = 0 или 1 для всех i и

решение должно быть контуром (полным циклом).

Использование константы М в целевой функции гарантирует, что производство краски одного цвета не будет повторяться подряд.

УПРАЖНЕНИЯ 9.3.1

1. Менеджер проектов имеет 10 сотрудников, которые работают над шестью проектами, причем каждый работает одновременно над несколькими проек­тами, как показано в следующей таблице.

Сотрудники

Глава 9. Целочисленное линейное программирование

Менеджер должен встретиться с каждым из 10 сотрудников один раз в неделю для обсуждения их проблем. Беседа с каждым из них длится примерно 20 ми­нут, т.е. на разговоры со всеми сотрудниками уходит 3 часа 20 минут. Пред­лагается проводить встречи менеджера с группами сотрудников, работаю­щих над одним и тем же проектом, чтобы уменьшить суммарное время, которое тратится на совещания. Менеджер планирует составить график об­суждения проектов таким образом, чтобы уменьшить движение в офисе, т.е. сократить число сотрудников, входящих и выходящих из комнаты для со­вещаний. В какой последовательности необходимо рассматривать проекты?

2. Продавец книг, проживающий в городе А, один раз в месяц должен посетить своих четырех клиентов, которые проживают в городах Б, В, Г и Д соответст­венно. Приведенная ниже таблица содержит расстояния в милях между раз­личными городами.

  А Б В Г Д
А
Б
В
Г
Д

Необходимо составить маршрут движения продавца книг, минимизирую­щий суммарное расстояние. Сформулируйте задачу в виде задачи о назна­чениях ЦЛП.

3. Пусть в предыдущем упражнении города Б, В, Г и Д обозначены через 1,2,3 и 4, а город А разделен на два, которые обозначены через 0 и 5. Пусть мар­шрут продавца книг начинается в городе 0, проходит (в некотором порядке) через города 1, 2, 3 и 4 и заканчивается в городе 5. Определим переменную vt для города i (i = 0, 1, 5), которая удовлетворяет условиям 0 < и( < 5. Пусть xtj = 1, если в маршруте город j следует за городом г, и 0 в противном случае. Покажите, что ограничения

v-v+bx:<4., i = 0,l.....4, У= 1, 2.....5,

гарантируют исключение вчсех неполных маршрутов в решении задачи.

9.3.1. Применение метода ветвей и границ для решения задачи коммивояжера

Вначале алгоритм ветвей и границ применяется к задаче о назначениях, соот­ветствующей данной задаче коммивояжера. Если полученное оптимальное реше­ние образует полный цикл, то на этом вычисления заканчиваются. В противном случае в задачу необходимо ввести ограничения, удаляющие частичные циклы. Это создает ряд подзадач, которых в общем случае столько же, сколько переменных об­разуют один частичный цикл. В каждой подзадаче одна из таких переменных уста­навливается равной нулю (напомним, что переменные, ассоциированные с каким-либо циклом, имеют единичные значения). Решения этих подзадач могут либо сформировать, либо нет полный цикл. Если такой цикл сформирован в какой-либо подзадаче, то оптимальное значение целевой функции этой подзадачи дает верх­нюю границу длины полного цикла. Если же подзадача не формирует полный

9.3. Задача коммивояжера

цикл, то она снова разбивается на ряд новых подзадач в соответствии с переменны­ми, которые образуют частичные циклы в решении данной подзадачи. Этот процесс продолжается до тех пор, пока не будут рассмотрены все существующие подзадачи, либо пока не будет получено лучшее (меньшее) значение верхней границы длины полного цикла, или пока не будет доказано, что подзадачи не могут иметь лучшего решения. Оптимальным решением задачи коммивояжера будет полный цикл, на котором достигается наилучшее значение верхней границы.

Следующий пример проясняет детали применения метода ветвей и границ для решения задачи коммивояжера.

Пример 9.3.2

В следующей матрице записаны расстояния между 5 городами задачи коммивояжера.

ш=

ю

оо

9^ 2

Решение начальной задачи о назначениях (полученное с помощью TORA) следующее:

2 = 15, (хп = x3l = 1), (л:25 = л:54 = лг42 = 1), все остальные переменные равны 0.

Это решение порождает два частичных цикла (1-3-1) и (1-5-4-2). Это же решение обозначено как узел 1 дерева подзадач на рис. 9.14. Полученное значение целевой функции 2=15 принимаем в качестве нижней границы длины оптимального цик­ла, проходящего через все 5 городов.

(Т)

z = 15 (1-3-1)(2-5-4-2)

z=17 (2-5-2)(1-4-3-1)

z= 16 (1-3-4-2-5-1)

z = 21 (1-4-5-2-3-1)

z=19 (1-4-2-5-3-1)

Рис. 9.14. Дерево подзадач решения задачи коммивояжера методом ветвей и границ

Глава 9. Целочисленное линейное программирование

Прямолинейный способ определения верхней границы оптимального цикла за­ключается в том, чтобы выбрать какой-либо полный цикл и подсчитать его длину. Например, полный цикл 1-2-3-4-5-1 (выбран произвольно) дает общую длину 10 + 5 + 7+ 4+ 3 = 29. (Можно получить лучшее значение верхней границы, если взять другой полный цикл. Помните, что наименьшая верхняя граница — цель поиска методом ветвей и границ.)

Вычисленные нижняя и верхняя границы показывают, что длина оптимального полного цикла лежит в интервале от 15 до 29. Подзадачи, дающее решение с дли­ной цикла больше 29, отбрасываются как "не оправдавшие надежд".

Чтобы исключить частичные циклы в задаче узла 1, надо "разбить" эти частичные циклы путем принудительного приравнивания переменных х , задающих эти цик­лы, нулю. Частичный цикл 1-3-1 можно разбить, если положить х13 = 0 или х31 = О (одновременно только одну переменную). Аналогично частичный цикл 2-5-4-2 можно разбить, если ввести ограничения х = 0, хЬ4 = 0 или xi2 = 0. Каждое из по­добных ограничений порождает отдельную ветвь дерева подзадач (и, конечно, от­дельную подзадачу). Важно заметить, что нет необходимости разбивать все имею­щиеся частичные циклы — достаточно исключить только один частичный цикл. Причина этого в том, что введение в задачу нового ограничения автоматически влияет на значения всех переменных этой задачи, что создает "благоприятные" ус­ловия для формирования полного цикла. На основании этого аргумента обычно разбивают один частичный цикл, наименьший по количеству составляющих его дуг, поскольку это приводит к меньшему количеству новых ветвей в дереве подзадач.

Выбирая для удаления короткий цикл 1-3-1, получаем на дереве подзадач две вет­ви, определяемые условиями х13 = 0 и л:31 = 0, выходящие из узла 1. Новые задачи о назначениях строятся путем удаления из последней задачи переменной ветвления (т.е. хп или л:31), что уменьшает размер подзадач. Другой путь построения подзадач (который дает тот же самый результат при решении этих подзадач и который со­храняет их размер) заключается в том, чтобы назначить переменным ветвления значения расстояний, равные бесконечности. Например, в подзадаче с ограничени­ем л;13 = 0 расстоянию d13 присваивается значение °°.

Из двух имеющихся подзадач решим сначала задачу с условием л:13 = 0 (узел 2 на рис. 9.14) — порядок решения подзадач произвольный. Получаем решение 2=17, которое формирует два частичных цикла (2-5-2) и (1-4-3-1). Эту подзадачу разбива­ем на две путем введения дополнительных ограничений x2S = 0 и х52 = 0 так же, как это сделано в задаче узла 1.

Теперь имеется три нерешенные подзадачи, которые соответствуют узлам 3, 4 и 5 на рис. 9.14. Произвольно выбираем для решения подзадачу узлаЗ. В исходных данных для этой подзадачи устанавливаем dl3 = °° и d2b = °°. Ее решение дает 2 = 21 с полным циклом 1-4-5-2-3-1. Поскольку получено решение с полным циклом, то ветвления в узле 3 не будет.

Решение подзадачи узла 3 позволяет улучшить значение верхней границы, г = 21, оптимальной длины полного цикла. Это означает, что любая нерассмотренная под­задача, для которой можно показать, что она даст решение, превышающее или равное 21, можно отбросить и не рассматривать.

Из нерассмотренных подзадач 4 и 5 выбираем для решения подзадачу 4. Для ее ре­шения в данных исходной задачи о назначениях положим dn = °° и d52 = °°. Получа­ем решение этой подзадачи с 2 = 19 и полным циклом 1-4-2-5-3-1. Это решение предлагает новую верхнюю границу г = 19.

9.3. Задача коммивояжера

Осталась нерассмотренной только подзадача узла 5. Для ее решения в данных ис­ходной задачи о назначениях положим d31 = °°. Получаем решение с г = 16 и пол­ным циклом 1-3-4-2-5-1, а также новую верхнюю границу г = 16.

Нерассмотренных подзадач не осталось. Оптимальным циклом будет цикл 1-3-4-2-5-1 с длиной в 16 миль.

Сделаем замечание. Излишне длинная последовательность решения подзадач 1—» 2-> 3-> 4—> 5, приведшая к оптимальному решению в данном примере, снова пока­зывает основной недостаток метода ветвей и границ — невозможно предсказать по­следовательность выбора подзадач, ведущую к оптимальному решению наиболее коротким путем. Например, если первой была бы решена подзадача узла 5, то это дало бы значение верхней границы, равное 16. Это автоматически отбрасывает возможные подзадачи, порождаемые в узле 2.

Конечно, существуют эвристические подходы, позволяющие помочь в "предсказа­нии" последовательности подзадач, ведущей к оптимальному решению наиболее эффективным путем. Например, после того, как определены все ветви (подзадачи), выходящие из некоторого узла дерева подзадач, первой решается та подзадача, у которой исключаемой переменной хц соответствует наибольшее зна­чения расстояния dtj среди рассматриваемых подзадач. Если воспользоваться этим правилом в данном примере, то после определения подзадач узла 1 первой надо решать подзадачу 5, что приведет к оптимальному решению всего за два этапа. (Первый этап — решение подзадачи 5, второй этап — решение подзада­чи 2, которое дает худшее значение целевой функции (г = 17), чем существующая на тот момент верхняя граница, равная 16.)

УПРАЖНЕНИЯ 9.3.2

1. Решите задачу примера9.3.2, начав с удаления частичного цикла 2-5-4-2. При прохождении дерева подзадач примените следующие правила.

a) На каждом уровне дерева подзадач исследуйте подзадачи слева направо. Переходите на следующий уровень только после того, как будут рассмот­рены все подзадачи текущего уровня.

b) Исследуйте подзадачи "вертикально", начиная от нулевого узла и после­довательно проходя по ветвям, пока не будут рассмотрены все подзадачи одной последовательности ветвей.

2. Решите методом ветвей и границ задачу из упражнения 9.3.1.1.

3. Решите методом ветвей и границ задачу из упражнения 9.3.1.2.

4. Решите методом ветвей и границ задачу из упражнения 9.3.1.3.

9.3.2. Применение метода отсекающих плоскостей для решения задачи коммивояжера

Идея применения метода отсекающих плоскостей для решения задачи ком­мивояжера заключается в том, чтобы в первоначальную задачу о назначениях ввести дополнительные ограничения, гарантированно удаляющие частичные циклы. Эти дополнительные ограничения строятся следующим образом. Пусть в задаче коммивояжера с п городами каждому городу с номерами 2, 3, п ста­

Глава 9. Целочисленное линейное программирование

вится в соответствие непрерывная неотрицательная переменная и,. Тогда допол­нительные ограничения имеют вид

и, - ц. + nxIJ<n - 1, i = 2, 3, n,j = 2, 3, п, j.

Эти ограничения, добавленные в исходную задачу о назначениях, автоматиче­ски удаляют из решения частичные циклы, оставляя все полные циклы.

Пример 9.3.3

В следующей матрице записаны расстояния между 4 городами задачи коммивояжера.

'~ 13 21 26"

10 ~ 29 20

30 20 оо 5

Л2 30 7 о»

ш=

Данная задача коммивояжера формализуется как соответствующая задача о назна­чениях плюс следующие дополнительные ограничения, исключающие из решения частичные циклы. Все переменные xtj двоичные, все переменные ut неотрицательные. Задача решается как частично-целочисленная задача линейного программирования.

  х Л12   X Л21 *22 X Л23 X •*-24 х%   *33 X Л34 *41 ^42 *43 *44 «1 и2 и»  
                              -1   <3
                                -1 <3
                              -1   <3
                                -1 <3
                              -1   <3
                                -1 <3

Оптимальное решение этой задачи (полученное с помощью TORA) следующее:

и2 = 0, и3 = 1, ut = 2, л:12 = л:23 = x3i = х41 = 1, длина полного цикла = 59.

Это решение формирует полный цикл 1-2-3-4-1. Решение удовлетворяет всем до­полнительным ограничениям (проверьте!).

Чтобы показать, что частичные циклы не удовлетворяют дополнительным ограничени­ям, рассмотрим решение с частичными циклами (1-2-1) и (3-4-3): х12 = х21 = 1, хм = xa = 1. Теперь рассмотрим ограничения 4 и 6, представленные в выше приведенной таблице.

4x34 + u3-u4<3,

433 + ц4<3.

Подставив в эти выражения значения л:34 = xi3 = 1 и сложив их, получим невыпол­нимое неравенство 8 < 6, что говорит о невозможности частичного цикла 3-4-3.

Основным недостатком применения метода отсекающих плоскостей к решению за­дачи коммивояжера является то, что введение дополнительных ограничений резко увеличивает размер задачи, при этом количество таких ограничений возрастает по экспоненциальному закону при росте количества посещаемых городов.

Комплексные задачи

УПРАЖНЕНИЯ 9.3.3

1. Решите следующие задачи коммивояжера методом отсекающих плоскостей.

' -о 43 21 20Л

а) Задача с матрицей расстояний d, =

b) Задача из упражнения 9.3.1.2.

c) Задача из упражнения 9.3.1.3.

10 оо 9 22 20 10 оо 5 42 50 27 оо

ЛИТЕРАТУРА

1. Nemhauser G., Wolsey L. Integer and Combinatorial Optimization, Wiley, New York, 1988.

2. Salkin H., Mathur K. Foundations of Integer Programming, North-Holland, New York, 1989.

3. Taha H. Integer Programming: Theory, Applications, and Computations, Academic Press, Orlando, FL, 1975.

4. Wolsey L. Integer Programming, Wiley, New York, 1998.

Литература, добавленная при переводе

1. Белоусов Е. Г. Введение в выпуклый анализ и целочисленное программирова­ние. — М.: Изд-во МГУ, 1977.

2. Корбут А. А., Финкельштейн Ю. Ю. Дискретное программирование. — М.: Наука, 1968.

3. Ху Т. Целочисленное программирование и потоки в сетях. — М.: Мир, 1974.

КОМПЛЕКСНЫЕ ЗАДАЧИ

9.1. Развивающаяся компания владеет 90 акрами земли в растущей столичной зоне, где планирует построить офисные здания и торговый центр. Создан­ная собственность сдается в аренду на 7 лет и затем продается. Цена каждо­го здания оценивается в 10 раз выше суммы чистого дохода, полученного за последний год от сдачи здания в аренду. Компания оценивает, что проект будет включать торговый центр площадью в 4,5 миллиона квадратных фу­тов. Бизнес-план предусматривает строительство трех высотных офисных зданий и четырех зданий с садом.

Перед компанией стоит задача составления расписания работ. Если строи­тельство завершается очень рано, построенные здания могут остаться не­востребованными; если строительство завершается очень поздно, могут быть потеряны потенциальные арендаторы. Потребности в офисных пло­щадях на следующие 7 лет, вычисленные на основе соответствующего изу­чения рынка, показаны в следующей таблице.

Глава 9. Целочисленное линейное программирование

Потребность (тыс. кв. футов)

Год В высотных зданиях В офисах с садом

1 200  
2 220  
3 242  
4 266  
5 293  
6 322  
7 354  
Следующая таблица содержит предложения по площадям семи зданий.
Здания с садом Площадь (кв. футы) Высотные здания Площадь (кв. футы)
1 60 ООО 350 000
2 60 000 450 000
3 75 000 350 000
4 75 000

Суммарный доход от ренты оценивается в 25 долл. за квадратный фут. Те­кущие затраты равны 5,75 и 9,75 долл. за квадратный фут для офисов с са­дом и высотных зданий соответственно. Затраты на строительство равны 70 и 105 долл. за квадратный фут соответственно. Считается, что и стоимость строительства, и рентный доход возрастают примерно в соответствии с про­центом инфляции, равным 4%.

Каким образом компания должна спланировать строительство семи зданий?

9.2. 4 В Национальной университетской ассоциации женской спортивной гимна­стики проводятся соревнования, которые включают четыре вида спортив­ных состязаний: опорный прыжок, упражнения на разновысоких брусьях и бревне, а также вольные упражнения. Каждая команда может выставить шесть участников на каждый вид. Выступления гимнасток оцениваются по десятибалльной шкале. Статистика по университетской команде дает сле­дующие показатели по отдельным гимнасткам.

Показатели гимнасток

 
Опорный прыжок
Брусья
Бревно
Вольные упражнения

Общее число очков команды определяется путем суммирования пяти луч­ших индивидуальных показателей для каждого вида состязаний. Участник соревнований может выступать в одном виде или во всех четырех сразу. Эти

4 Задача основана на материалах статьи Ellis P., Corn R. "Using Bivalent Integer Pro--ramming to Select Teams of Intercollegiate Women's Gymnastic Competition", Interfaces, Vol.14, No. 3, 1984, pp. 41-46.

Комплексные задачи

две возможности взаимно исключают друг друга. Спортсмену разрешается участвовать максимум в трех видах, и по меньшей мере четыре участника команды должны соревноваться по четырем видам. Сформулируйте задачу ЦЛП, которую можно использовать для формирования гимнастической ко­манды, и найдите ее оптимальное решение, используя программу TORA.

9.3. 5 В 1990 году в Соединенных Штатах на телевидении функционировало при­мерно 180 ООО центров рекламы, что позволяло предоставить работу 2 миллио­нам человек. Исследования показывают, что в 2000 году более 700 000 компа­ний будут использовать труд примерно 8 миллионов человек для рекламы своей продукции на телевидении. Вопросами первостепенной важности являются необходимое количество центров рекламы на телевидении и их размещение.

Компания ABC занимается решением поставленных вопросов. Рекламный центр может быть расположен в одном из нескольких районов, выбранных компанией, и может обслуживать (частично или полностью) одну или не­сколько географических зон. Обычно понятие географической зоны ассо­циируется с одним или несколькими телефонными кодами. Центры рекла­мы на телевидении, которыми занимается компания ABC, расположены в восьми зонах с кодами 501, 918, 316, 417, 314, 816, 502 и 606. Следующая таблица содержит информацию о кандидатах на размещение центра; зонах, которые они обслуживают; и стоимости организации центра.

Размещение центра Коды обслуживаемых зон Стоимость (долл.)
Даллас 501, 918, 316, 417 500 000
Атланта 314, 816, 502, 606 800 000
Луисвилл 918, 316, 417, 314, 816 400 000
Денвер 501, 502, 606 900 000
Литл-Рок 417, 314, 816, 502 300 000
Мемфис 606, 501,316, 417 450 000
Сан-Луис 816, 502, 606, 314 550 000

Клиенты всех зон имеют доступ к каждому из рекламных центров 24 часа в сутки. Стоимость связи между центрами и соответствующими зонами (в долл. за час) приведена в следующей таблице.

Из зоны с кодом

В центр
Даллас
Атланта
Луисвилл
Денвер
Литл-Рок
Мемфис
Сан-Луис

5 Задача базируется на работе Spenser Т., Brigandi A., Dargon D., Sheehan М. "AT&T's Telemarketing Site Selection System Offers Customer Support", Interfaces, Vol. 20, No. 1, 1990, pp. 83-96.

Глава 9. Целочисленное линейное программирование

Компания ABC собирается выбрать три или четыре рекламных центра. Где они должны быть расположены?

9.4. 6 Электрическая компания, обслуживающая сельские районы, хочет опреде­лить количество своих сервисных центров и их местоположение. Компания об­служивает 5 районов, в которых проживает следующее число потребителей.

Район
К-во потребителей

Компания определила пять возможных мест для размещения своих сервис­ных центров. В следующей таблице приведены средние расстояния от этих возможных центров до районов потребления.

Сервисный центр

Район

Средняя скорость передвижения аварийных машин сервисных центров со­ставляет 45 миль в час. Компания хочет, чтобы пользователи в любом рай­оне ожидали аварийные машины не более 90 минут. Где должны распола­гаться сервисные центры?

6 Задача основана на материалах статьи Erkut Е., Myrdon Т., Strangway К. "Transatlanta Redesigns Its Service Delivery Network", Interfaces, Vol.30, No. 2, 2000, pp. 54-69.

ГЛАВА 10

ДЕТЕРМИНИРОВАННЫЕ МОДЕЛИ

ДИНАМИЧЕСКОГО

ПРОГРАММИРОВАНИЯ

Динамическое программирование (ДП) определяет оптимальное решение п-мерной задачи путем ее декомпозиции на п этапов, каждый из которых представ­ляет подзадачу относительно одной переменной. Вычислительное преимущество такого подхода состоит в том, что мы занимаемся решением одномерных оптими­зационных подзадач вместо большой л-мерной задачи. Фундаментальным принци­пом ДП, составляющим основу декомпозиции задачи, является оптимальность. Так как природа каждого этапа решения зависит от конкретной оптимизационной задачи, ДП не предлагает вычислительных алгоритмов непосредственно для каж­дого этапа. Вычислительные аспекты решения оптимизационных подзадач на ка­ждом этапе проектируются и реализуются по отдельности (что, конечно, не исклю­чает применения единого алгоритма для всех этапов).

10.1. РЕКУРРЕНТНАЯ ПРИРОДА ВЫЧИСЛЕНИЙ ДП

Вычисления в ДП выполняются рекуррентно в том смысле, что оптимальное решение одной подзадачи используется в качестве исходных данных для следую­щей. Решив последнюю подзадачу, мы получим оптимальное решение исходной задачи. Способ выполнения рекуррентных вычислений зависит от того, как произ­водится декомпозиция исходной задачи. В частности, подзадачи обычно связаны между собой некоторыми общими ограничениями. Если осуществляется переход от одной подзадачи к другой, то должны учитываться эти ограничения.

Пример 10.1.1. Задача о кратчайшем пути

Предположим, необходимо выбрать кратчайший путь между двумя городами. Сеть дорог, показанная на рис. 10.1, представляет возможные маршруты между исходным городом, находящимся в узле 1, и конечным пунктом, который нахо­дится в узле 7. Маршруты проходят через промежуточные города, обозначенные на сети узлами с номерами 2-6.

Глава 10. Детерминированные модели динамического программирования

Старт м

Рис. 10.1. Сеть дорог для примера 10.1.1

Мы можем решить эту задачу посредством полного перебора всех маршрутов меж­ду узлами 1 и 7 (имеется пять таких маршрутов). Однако в большой сети полный перебор является неэффективным с вычислительной точки зрения.

Чтобы решить эту задачу с помощью методов динамического программирования, сна­чала разделим ее на этапы. Вертикальные пунктирные линии на рис. 10.2 очерчивают три этапа задачи. Далее выполняются вычисления для каждого этапа в отдельности.

Рис. 10.2. Декомпозиция задачи на три этапа

Общая задача состоит в вычислении кратчайших (постепенно накапливаемых) рас­стояний ко всем вершинам этапа с последующим использованием этих расстояний в качестве исходных данных для следующего этапа. Рассматривая узлы, относящиеся к первому этапу, замечаем, что каждый из узлов 2, 3 и 4 связан с начальным узлом 1 единственной дугой (рис. 10.2). Следовательно, для первого этапа имеем следующее.

Этап 1. Итоговые результаты.

Кратчайший путь к узлу 2 равен 7 миль (из узла 1).

Кратчайший путь к узлу 3 равен 8 миль (из узла 1).

Кратчайший путь к узлу 4 равен 5 миль (из узла 1).

Далее переходим ко второму этапу для вычисления кратчайших (накопленных) расстояний к узлам 5 и 6. Рассматривая узел 5 первым, из рис. 10.2 замечаем, что

10.1. Рекуррентная природа вычислений ДП

есть три возможных маршрута, по которым можно достичь узла 5, а именно (2, 5), (3, 5) и (4, 5). Эта информация вместе с кратчайшими расстояниями к узлам 2, 3, и 4 определяет кратчайшее (накопленное) расстояние к узлу 5 следующим образом.

Кратчайший

I = min

чпуть к узлу 5 I ''=2.з.4

Кратчайший " (Расстояние от ^путь к узлу i J yysna / к узлу 5, 7 + 12 = 19

8+ 8 = 16 5+ 7 = 12

Аналогично для узла 6 имеем следующее.

Кратчайший ^ ( Кратчайший

= тЫ

путь к узлу 6) '=3 4 И путь к узлу i

-12 (изузла4).

Расстояние от чузла (' к узлу 6

S+ 9 = 17 :min< ? = 17 (изузла3).

15+ 13 = 18' 1 '

Этап 2. Итоговые результаты.

Кратчайший путь к узлу 5 равен 12 миль (из узла 4).

Кратчайший путь к узлу 6 равен 17 миль (из узла 3).

Последним шагом является третий этап. Конечный узел 7 можно достичь как из узла 5, так и 6. Используя итоговые результаты этапа 2 и расстояния от узлов 5 и 6 к узлу 7, получаем следующее.

'Кратчайший4 путь к узлу 1 /

12 + 9 = 21 :min( ) = 21 (из узла 5).

17 + 6 = 23' V У '

Этап 3. Итоговые результаты.

Кратчайший путь к узлу 7 равен 21 миле (из узла 5).

Приведенные вычисления показывают, что кратчайшее расстояние между узлами 1 и 7 равно 21 миле. Города, через которые проходит кратчайший маршрут, опре­деляются следующим образом. Из итоговых результатов третьего этапа следует, что узел 7 связывается с узлом 5. Далее из итоговых результатов второго этапа сле­дует, что узел 4 связывается с узлом 5. Наконец, из итоговых результатов первого этапа следует, что узел 4 связывается с узлом 1. Следовательно, оптимальным маршрутом является последовательность 1—> 4-* 5-* 7.

Теперь покажем, как рекуррентные вычисления динамического программиро­вания можно выразить математически. Пусть Дх,-) — кратчайшее расстояние до уз­ла х, на этапе /, d(xLljci) — расстояние от узла до узла дг,. Тогда / вычисляется на основе значений fLl с помощью следующего рекуррентного уравнения.

/(*,)= min {«/(*,_,,*,) + /-.(*,-.)}. 1 = 1.2,3.

все допустимые L 1 {xi--xi )-маршругы

При /' = 1 полагаем /0(*0) = 0. Это уравнение показывает, что кратчайшие расстояния /(дг,) на этапе / должны быть выражены как функции следующего узла дг,. В термино­логии динамического программирования дг, именуется состоянием системы на этапе /.

Глава 10. Детерминированные модели динамического программирования

В действительности состояние системы на этапе i— это информация, связывающая этапы между собой, при этом оптимальные решения для оставшихся этапов могут при­ниматься без повторной проверки того, как были получены решения на предыдущих этапах. Такое определение состояния системы позволяет рассматривать каждый этап отдельно и гарантирует, что решение является допустимым на каждом этапе.

Определение состояния системы приводит к следующему унифицированному положению.

Принцип оптимальности. На каждом этапе оптимальная стратегия определяет­ся независимо от стратегий, использованных на предыдущих этапах.

Применение принципа оптимальности демонстрируется вычислениями из при­мера 10.1.1. Например, на этапе 3 мы используем кратчайшие пути к узлам 5 и 6 и не интересуемся, как эти узлы были достигнуты из узла 1.

УПРАЖНЕНИЯ 10.1

1. Решите задачу из примера 10.1.1, предполагая, что используются следую­щие длины маршрутов:

d(l, 2) = 5,^(1,3) = 9,^(1,4) = 8,

d(2, 5)= 10, d(2, 6)= 17,

d(3, 5) = 4, d(3, 6)= 10,

d(4, 5) = 9, d(4, 6) = 9,

d(5, 7) = 8,

d(6,1) = 9.

2. Я — заядлый турист. Прошлым летом мы с другом отправились в пятиднев­ный поход по прекрасным Белым Горам в штате Нью-Гемпшир. Мы решили ограничить наше путешествие территорией, на которой расположены три хорошо известные вершины: Вашингтон, Джефферсон и Адаме. Гора Ва­шингтон имеет шестимильную тропу от подножия до вершины. Аналогич­ные тропы гор Джефферсона и Адамса имеют длину 4 и 5 миль соответствен­но. Тропы, соединяющие подножия этих трех гор, имеют следующую длину: 3 мили между вершинами Вашингтона и Джефферсона, 2 мили между вер­шинами Джефферсона и Адамса и 5 миль между вершинами Адамса и Ва­шингтона. В первый день мы стартовали от подножия вершины Вашингтона и вернулись в эту же точку к концу пятого дня. Нашей целью было пройти как можно более длинный путь. Мы также решили подниматься каждый день только на одну вершину и располагаться лагерем у подножия той горы, на которую мы решили восходить на следующий день. Кроме того, мы реши­ли, что не будем подниматься на одну и ту же вершину в течение двух дней подряд. Каким было расписание нашего похода?

10.2. РЕКУРРЕНТНЫЕ АЛГОРИТМЫ ПРЯМОЙ И ОБРАТНОЙ ПРОГОНКИ

В примере 10.1.1 вычисления проводились последовательно: от первого этапа до третьего. Такая последовательность вычислений известна как алгоритм прямой про­гонки. Этот же пример может быть решен с помощью алгоритма обратной прогонки, в соответствии с которым вычисления проводятся от третьего этапа до первого.

10.2. Рекуррентные алгоритмы прямой и обратной прогонки

Алгоритмы прямой и обратной прогонки приводят к одному и тому же реше­нию. Несмотря на то что алгоритм прямой прогонки представляется более логич­ным, в специальной литературе, посвященной динамическому программированию, неизменно используется алгоритм обратной прогонки. Причина этого в том, что в общем случае алгоритм обратной прогонки может быть более эффективным с вы­числительной точки зрения. Продемонстрируем использование алгоритма обрат­ной прогонки на примере 10.1.1. Мы также представим вычисления динамического программирования в компактной табличной форме.

Пример 10.2.1

Рекуррентное уравнение для алгоритма обратной прогонки в примере 10.1.1 имеет вид /(*,.)= min {d(x„xM) + fM{xM)}, / = 1,2,3,

вес допустимые [x,.x,.i )-маршругы

где ffixj = 0 для xt = 7. Соответствующей последовательностью вычислений будет

и-* и-* Л-

Этап 3. Поскольку узел 7 (xt = 7) связан с узлами 5 и 6 (х3 = 5 и 6) только одним маршрутом, альтернативы для выбора отсутствуют, а результаты третьего этапа можно подытожить следующим образом.

аХ}, х4) Оптимальное решение

Xi х4 = 7 h(Xi) x't

5 9 9 7

6 6 6 7

Этап 2. Так как маршрута (2, 6) не существует, соответствующая альтернатива не рассматривается. Используя значения f3(x3), полученные на третьем этапе, мы можем сравнить допустимые альтернативные решения, как показано в следующей таблице.

 

Хг ф2, Хз) + 6(*з) Оптимальное решение
Хз = 5 х3 = 6 «*) xl
12 + 9 = 21 21 5
8 + 9= 17 9 + 6 = 15 15 6
7 + 9=16 13 + 6 = 19 16 5

Оптимальное решение второго этапа означает следующее. Если вы находитесь в уз­ле (городе) 2 или 4, кратчайший путь к узлу 7 проходит через узел 5, а если в узле

3 — через узел 6.

Этап 1. Из узла 1 начинаются три альтернативных маршрута: (1, 2), (1, 3) и (1, 4). Используя значения f2(x2), полученные на втором этапе, вычисляем данные сле­дующей таблицы.

Оптимальное решение на первом этапе показывает, что кратчайший путь проходит через город 4. Далее из оптимального решения на втором этапе следует, что из города

4 необходимо двигаться в город 5. Наконец, из оптимального решения на третьем этапе следует, что город 5 связан с городом 7. Следовательно, полным маршрутом, имеющим кратчайшую длину, является 1—> 4—> 5—> 7, и его длина равна 21 миле.

Глава 10. Детерминированные модели динамического программирования

    ахи x2) + f2(x2) Оптимальное решение
Х х2 = 2 х2 = 3 х2 = Л  
7 + 21 = 28 8 + 15 = 23 5 + 16 = 21 21 4

УПРАЖНЕНИЯ 10.2

1. Для задачи из упражнения 10.1.1 получите рекуррентное соотношение об­ратной прогонки и используйте его для получения оптимального решения.

2. Для задачи из упражнения 10.1.2 получите рекуррентное соотношение об­ратной прогонки и используйте его для получения оптимального решения.

3. Определите кратчайший маршрут между городами 1 и 7 на сети дорог, пред­ставленной на рис. 10.3. Определите этапы и состояния системы с помощью алгоритма обратной прогонки, а затем решите задачу.

Рис. 10.3. Сеть для упражнения 3

10.3. ПРИЛОЖЕНИЯ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ

В данном разделе рассмотрено четыре примера, каждый из которых выбран для демонстрации методов динамического программирования. При рассмотрении каж­дого примера особое внимание обратите на три основных элемента моделей дина­мического программирования.

1. Определение этапов.

2. Определение на каждом этапе вариантов решения (альтернатив).

3. Определение состояний на каждом этапе.

Из перечисленных выше элементов понятие состояния, как правило, представ­ляется весьма сложным для восприятия. Рассмотренные в этом разделе приложе­ния последовательно показывают, что определение состояния меняется в зависи­мости от моделируемой ситуации. При рассмотрении каждого приложения полезно ответить на следующие вопросы.

1. Какие соотношения связывают этапы вместе?

2. Какая информация необходима для того, чтобы получить допустимые реше­ния на текущем этапе без повторной проверки решений, принятых на преды­дущих этапах?

10.3. Приложения динамического программирования

Мой опыт преподавания показывает, что понятие состояния удается глубже уяснить, если поставить под сомнение определение состояния, которое предложено в настоящей книге. Рекомендуем воспользоваться каким-либо другим определени­ем, которое покажется вам "более логичным", и применить его в рекуррентных вычислениях. В конечном счете вы сможете убедиться, что приведенные здесь оп­ределения обеспечивают корректное решение задач. В то же время предложенный подход будет способствовать вашему пониманию самой концепции состояния.

10.3.1. Задача о загрузке

Задача о загрузке — это задача о рациональной загрузке судна (самолета, авто­машины и т.п.), которое имеет ограничения по объему или грузоподъемности. Ка­ждый помещенный на судно груз приносит определенную прибыль. Задача состоит в определении загрузки судна такими грузами, которые приносят наибольшую суммарную прибыль.

Перед тем как представить соотношения динамического программирования, заметим, что рассматриваемая здесь задача известна также как задача о снаряже­нии, где пилот реактивного самолета должен определить наиболее ценные (необходимые) предметы, которые следует взять на борт самолета, или как задача о рюкзаке, в которой солдат (или турист) должен определить наиболее ценные предметы, подлежащие загрузке в ранец (рюкзак). Кажется, что три упомянутых названия для одной и той же задачи были выбраны для того, чтобы гарантировать равное представительство военно-морского флота, воздушных сил и армии!

Рекуррентное уравнение процедуры обратной прогонки выводится для общей задачи загрузки судна грузоподъемностью W предметов (грузов) п наименований. Пусть т, — количество предметов £-го наименования, подлежащих загрузке, г,— прибыль, которую приносит один загруженный предмет /-го наименования, w,— вес одного предмета 1-го наименования. Общая задача имеет вид следующей цело­численной задачи линейного программирования.

Максимизировать z = гхтх + г2т2+ ... + гпт„

при условии,что

иуи,+ w2mi + ... + w„m„< W, ть т2,т„>0 и целые.

Три элемента модели динамического программирования определяется сле­дующим образом.

1. Этап i ставится в соответствие предмету /'-го наименования, i = 1,2,п.

2. Варианты решения на этапе i описываются количеством т, предметов /-го на­именования, подлежащих загрузке. Соответствующая прибыль равна гр,. Зна­чение т,- заключено в пределах от 0 до [W/uv(], где [W/wJ — целая часть числа W/w,.

3. Состояние х, на этапе i выражает суммарный вес предметов, решения о по­грузке которых приняты на этапах i, i + 1,п. Это определение отражает тот факт, что ограничение по весу является единственным, которое связывает п этапов вместе.

Пусть f,(x)— максимальная суммарная прибыль от этапов /', /'+ 1, я при за­данном состоянии Xj. Проще всего рекуррентное уравнение определяется с помо­щью следующей двухшаговой процедуры.

Глава 10. Детерминированные модели динамического программирования

Выразим/;(*,) как функцию ,/^,(х/+1) в виде

/.(*,.)= max {пт,+/мм)}, / = 1,2,..., я,

г, =0.1.....VV '

где/^х^,) = 0.

Выразим х^, как функцию х,- для гарантии того, что левая часть по­следнего уравнения является функцией лишь X;. По определению х; - xUl представляет собой вес, загруженный на этапе /, т.е. хг = WjiTij или X,,, = х;- иуя;. Следовательно, рекуррентное уравнение приобретает следующий вид.

/(*,.)= max ^{rifn.+fM(xi-wimi)}, / = 1,2,..., п.

wi,=0.1.....

г, =0.1.....w'

Пример 10.3.1

В 4-тонный самолет загружаются предметы трех наименований. Приведенная ни­же таблица содержит данные о весе одного предмета w, (в тоннах) и прибыли г, (в тысячах долларов), получаемой от одного загруженного предмета. Как необхо­димо загрузить самолет, чтобы получить максимальную прибыль?

Предмет /' IV; г.

Так как вес одного предмета w, для всех наименований и максимальный вес W при­нимают целочисленные значения, состояние х, может принимать лишь целочис­ленные значения.

Этап 3. Точный вес, который может быть загружен на этапе 3 (предмет наименования 3), заранее неизвестен, но он должен принимать одно из значений 0, 1, 4 (так как W = 4 тонны). Состояния х3= 0 и х3= 4 представляют собой крайние случаи, когда пред­меты третьего наименования совсем не загружаются или загружают самолет полно­стью. Остальные значения х3 (= 1, 2 или 3) предполагают частичную загрузку самолета предметами третьего наименования. Действительно при этих значениях х3 все остав­шиеся емкости самолета могут быть заполнены предметами третьего наименования.

Так как вес w3 одного предмета третьего типа равен 1 тонне, максимальное количе­ство единиц этого типа, которое может быть загружено, равно [4/1] = 4. Это означа­ет, что возможными значениями х3 будут 0, 1, 2, 3 и 4. Решение т3 является допус­тимым лишь при условии, что w3m3<x3. Следовательно, все недопустимые альтернативы (те, для которых w3m3> х3) исключены. Следующее уравнение явля­ется основой для сравнения альтернатив на этапе 3.

/33) = max{l4m3}, max{m3} =

Шаг1.

Шаг 2.

10.3. Приложения динамического программирования 449 В следующей таблице сравниваются допустимые решения для каждого значения х3.

 

Xi 14/Пз         Оптимальное решение
т3 = 0 т3 = 1 т3 = 2 т3 = 3 т3 = 4   "h

Этап 2.

/2(х,) = max{47m, + /3(x, -3m,)}, тах{/и,} =

= 1.

47/772 + h(x2 - Зпь) Оптимальное решение

Xl /772 = 0 пь = 1 fi(x2) т

0 0+0=0 — 0 0

1 0 + 14=14 — 14 0

2 0 + 28 = 28 — 28 0

3 0 + 42 = 42 47 + 0 = 47 47 1

4 0 + 56 = 56 47+ 14 = 61 61 1

Этап 1.

 

    /,(*,) = max {3 lm, +/,(*,- Ъщ)}, in, max{m,} = 'a' _2_ = 2.
Х 31 т, + f2(xx -2m,) Оптимальное решение
mi =0 m, = 1 mi = 2 м(х,)     m
0 + 0 = 0 — —    
0 + 14=14 — —    
0 + 28 = 28 31+0 = 31 —    
0 + 47 = 47 31+14 = 45 —    
0 + 61 =61 31 + 28 = 59 62 + 0 = 62    

Оптимальное решение определяется теперь следующим образом. Из условия W= 4 следует, что первый этап решения задачи при хг = 4 дает оптимальное решение ml = 2, которое означает, что два предмета первого наименования будут загружены

в самолет. Эта загрузка оставляет х2 = xt - 2 т =4-2x2 = 0. Решение на втором этапе при хг=0 приводит к оптимальному решению т =0, которое, в свою оче­редь, дает х3 = х2- 3т' = 0-3x0 = 0. Далее этап 3 при х3 = 0 приводит к т =0.

Глава 10. Детерминированные модели динамического программирования

Следовательно, оптимальным решением задачи является т =2, т = О и т = 0* Соответствующая прибыль равна 62 ООО долларов.

В таблице для первого этапа нам, по существу, необходимо получить оптимальное решение лишь для xt = 4, так как это последний этап, подлежащий рассмотрению. Однако в таблицу включены также вычисления для х, = 0, 1, 2 и 3, которые позво" ляют провести анализ чувствительности решения. Например, что произойдет, если максимальная грузоподъемность самолета будет 3 тонны вместо 4? Новое опти­мальное решение может быть определено, начиная с х, = 3 на первом этапе и про­должая так, как мы поступали при я, = 4.

Задача о загрузке является типичным представителем задачи распределения ресурсов, в которой ограниченный ресурс распределяется между конечным чис­лом видов (экономической) деятельности. При этом целью является максимиза­ция соответствующей функции прибыли. В таких моделях определение состоя­ния на каждом этапе будет аналогично приведенному для задачи о загрузке: состоянием на этапе i является суммарное количество ресурса, распределяемого на этапах i,l+l,п.

Решение задачи о загрузке в Excel. Природа вычислений в динамическом про­граммировании такова, что делает невозможным разработку универсальных про­грамм для решения задач ДП. Возможно, этим объясняется отсутствие на сего­дняшний день коммерческих программных продуктов, рассчитанных на решение широкого класса задач ДП.

Здесь мы покажем, как решается в Excel один подкласс задач ДП — задача о загруз­ке с одним ограничением (файл chlOKnapsack.xls1). На рис. 10.4 показан рабочий лист Excel для решения задачи о загрузке методом обратной прогонки. Рабочий лист разбит на два раздела. В разделе, ограниченном столбцами Q:V, выводятся результаты вычис­лений. В другом разделе (столбцы А:Р) в его верхней части (строки 3-6) содержатся входные данные для текущего этапа, нижняя часть (строка 7 и ниже) зарезервирова­на для вывода результатов вычислений по этапам. Отметим, что максимальное воз­можное число альтернатив т, на этапе i не должно превышать 10 (ячейки D6:N6).

 

 

  А e | с D e F - о H •> к L U N О |P Q - R | S T , U | V
          Dynamic Prog lammir q (Backward) Knapsack Model      
Input Data and Step* Calculation* Ouput Solution Summary
Ilumber of *taae*1№*   Re*, limit, W-   ••Maximum WAv cannot exceed 10       x 1 m x 1 m
uirent stage- 1                            
Are m vatubt correct?                       1 Stage    
                          Optimum    
  r"m«                       Solution    
в                           f m    
                              1
                               
                           

Puc. 10.4. Шаблон Excel для решения задачи о загрузке

На рис. 10.5 показаны этапы вычислений для задачи примера 10.3.1. Вычисле­ния выполняются последовательно по этапам и пользователю необходимо предос­

1 Эта рабочая книга закрыта паролем от изменений, поэтому она не русифицирована. Кроме того, перед ее использованием следует установить в Windows (Панель управления^Язык и стандарты) региональные установки Английский (США), иначе не все вы­числения в этой книге выполняются корректно. Это замечание относится ко всем рабочим книгам и шаблонам Excel, которые упоминаются в оставшейся части книги. — Прим. ред.

10.3. Приложения динамического программирования

тавить основные данных для каждого этапа. Вычисления начинаются с этапа 3, для которого надо ввести следующие данные.

Что вводится Ячейки Количество этапов, N = 3 D3 Ограничение загрузки, W = 4 G3 Текущий этап = 3 С4 w3 = 1 Е4 гЗ = 14 G4

ш3 = (0,1, 2, 3, 4) D6:H6

Отметим, что допустимыми значения для т3 являются числа 0, 1, [W/w3] = = [4/1] =4 так же, как в примере 10.3.1. Рабочий лист автоматически проверяет правильность значений т, и выводит соответствующие сообщения в строке 5 (сообщения вида "yes" ("да"), "по" ("нет") и "delete" ("исключить")).

После ввода данных для этапа 3 рабочий лист "оживает" и выполняет все необ­ходимые вычисления автоматически (в столбцах В:Р). Значения -111111 указы­вают, что соответствующий вариант загрузки недопустим. Оптимальное решение (/з, тг) этого этапа приведено в столбцах О и Р. В столбце А выводятся значения /4. Поскольку вычисления начинаются с этапа 3, ft = 0 для всех значений х3. Поэтому ячейки А9:А13 оставлены пустыми (или могут быть заполнены нулями).

Закончив вычисления этапа 3, необходимо выполнить следующие шаги для соз­дания постоянной записи оптимального решения текущего этапа и подготовки ра­бочего листа к следующему этапу вычислений.

Шаг 1. Скопируйте значения х3 (диапазон С9:С13) и вставьте их в ячейки диапазона Q5:Q9, где будет храниться оптимальное решение 3-го этапа. Далее скопируйте значения (f3, m3) (диапазон 09:Р13) и вставьте их в диапазон R5:S9. Напомним, что необходимо скопи­ровать и вставить только значения (а не формулы, по которым вы­числялись эти значения). Для этого после копирования данных и выделения диапазона, где будут вставлены эти данные, выпол­ните команду ПравкаОСпециальная вставка и после появления од­ноименного диалогового окна установите в нем переключатель Значения; затем щелкните на кнопке ОК.

Шаг 2. Скопируйте значения f} из диапазона R5:R9 в диапазон А9:А13 (без использования диалогового окна Специальная вставка).

Шаг 3. Введите число 2 в ячейку С4, а также новые значения w2, г2 и т2. На этом заканчивается подготовка к выполнению этапа 2.

После выполнения этапа 2 рабочий лист следует подготовить к этапу 1 так же, как описано выше. После завершения этапа 1 полученное оптимальное решение интерпретируется точно так же, как показано в примере 10.3.1.

Я мог бы автоматизировать все вычисления на рабочем листе, чтобы сразу получить ко­нечный результат. Но я предпочел вовлечь пользователя в процесс получения решения. Уси­лия со стороны пользователя для этого необходимы минимальные, а наградой ему за эти уси­лия (я надеюсь) будет углубленное понимание вычислительных деталей решения задачи ДП.

Глава 10. Детерминированные модели динамического программирования

Этап 3

Этап 2

'S т i " :.У,

IX

 

 

 

 

 

 

 

 

 

          Input Data tnr Mar m ratcnfcrtiofrs     Ouput Solution Summary
Number of atanaa.N Pea. Nit*, W-   wi^ carrot шх rsd Stage Optvnum Solution x f m x 1 m
-utient агаре11] ?   I 1?»   ЭтапЗ   Этап 2
4r9m2v                       0 1 2 3 0 0 14 1 28 2 42 3 0 0
SteoeJ ml                   2 3 14 0 28 D 47 1
г2"т2-                  
f]   »2"m2- D                   Г2 m2
x2- D i11111                   0 0 56 4 81 1
x2-                   14 0      
x2-                   28 0    
x2-                   47 1    
x2-                   61 1    
                               

Этап I

 

 

. J * В с D E F H i J   к . L M N P Q Г R ~S I U V
        Dynamic Piooiamrnmg (Bachwardl Knapsack Model            
      ■■put Data and sta. ft Cetculetiona       Ouput sotait on Summary
3 Numbei of stay »,M- 4 uiiemcta^c 1 5 hrt mlYMln»scomet J RM.kmrl.W-   Z2           f m X f m
  _ t il- Hi         ЭтапЗ   Этап 2
  •« Г]       _       Stage 0 0 0 0
1_ml ■ г               Opttnum 14 1 14 0
7 Stage! rlNnl- D                   Solution 28 2 28 0
8 f? w1*ml«                 t1 rtvt 42 3 47 1
S 3 xi- 0                 D 56 4 61 1
10 14 xi- 1                       ЭтапЗ
11 28 xi- 2                   0 0
12 47 xi. 3                   14 0
13 81 Xi- 4                     31 1
I"                                 47 0
IS                                 62 2
^_                                  

Рис. 10.5. Этапы решения задачи примера 10.3.1

УПРАЖНЕНИЯ 10.3.13

1. В задаче примера 10.3.1 определите оптимальное решение, предполагая, что максимальная грузоподъемность самолета составляет 3 тонны.

2. Решите задачу о загрузке из примера 10.3.1 для каждого из следующих случаев.

a) w, = 4, г,= 70, ws= 1, г2= 20, w3= 2, г3= 40, W= 6.

b) и>,= 1, г, = 30, и>2= 2, г2= 60, w3= 3, г3= 80, W = 4.

3. Турист собирается в путешествие по дикой местности и должен упаковать в рюкзак предметы трех видов: пищу, средства первой помощи и одежду. Объем рюкзака составляет 3 кубических фута. Каждая единица пищи занимает

В этих упражнениях там, где возможно, выполните вычисления вручную, а затем про­верьте полученные результаты с помощью шаблона Excel chlOKnapsack.xls.

10.3. Приложения динамического программирования

1 кубический фут, упаковка средств первой помощи — четверть кубического фута, а отдельный предмет одежды — примерно половину кубического фута. Турист определил свои предпочтения весовыми коэффициентами 3, 4 и 5 — для пищи, средств первой помощи и одежды соответственно. Это означает, что одежда является самым ценным предметом среди остальных. Опыт под­сказывает туристу, что он должен взять не менее одного предмета каждого вида и не более двух комплектов средств первой помощи. Сколько единиц каждого наименования возьмет турист в поход? 4. Студент должен выбрать 10 факультативных курсов на четырех различных фа­культетах, причем на каждом факультете должен быть выбран по меньшей мере один курс. Эти курсы распределяются между факультетами таким образом, чтобы максимизировать объем "знаний". Студент оценивает знания по шкале в сто баллов и приходит к выводам, представленным в следующей таблице.

Номер курса

Факультет >7
II
III
IV

Какие курсы следует выбрать студенту?

5. У меня во дворе имеется небольшой огород 10 х 20 футов. Этой весной я соби­раюсь посадить овощи трех видов: помидоры, зеленые бобы и кукурузу. Огород разбит на ряды, длина которых равна 20 футам. Кукуруза и помидоры зани­мают ряды шириной 2 фута, а зеленые бобы — 3 фута. Помидоры мне нравятся больше, а бобы меньше. По 10-балльной шкале предпочтений я бы присвоил помидорам 10 баллов, кукурузе — 7 баллов и зеленым бобам — 3 балла. Неза­висимо от моих предпочтений, жена настаивает, чтобы я посадил не менее одного ряда зеленых бобов и не более двух рядов помидоров. Сколько рядов каждого вида овощей следует мне посадить?

6. "Жилище для человечества" — прекрасная благотворительная организа­ция, которая строит дома для бедствующих семей силами добровольцев. Та­кая семья может выбрать себе дом из трех типоразмеров: 1000, 1100 и 1200 квадратных футов. Дом каждого типоразмера требует выполнения опреде­ленного объема работ силами добровольцев. Филиал организации в городе Файтвилл получил пять заявок на предстоящие шесть месяцев. Комитет по надзору дает оценку каждой заявке в численном виде, принимая во внима­ние различные факторы. Более высокая оценка означает более острую по­требность в жилье. В течение предстоящих шести месяцев филиал организа­ции в этом городе может привлечь к работе максимум 23 добровольца. Следующая таблица содержит оценку каждой заявки и необходимое число добровольцев для ее выполнения. Какие заявки следует утвердить комитету?

Заявка Размер дома (фут2) Оценка Необходимое число добровольцев

Глава 10. Детерминированные модели динамического программирования

7. Шериф округа Вашингтон баллотируется на следующий срок. Денежные средства на предвыборную кампанию составляют примерно 10 ООО долларов. Хотя комитет по переизбранию хотел бы провести кампанию во всех пяти из­бирательных участках округа, ограниченность денежных средств предписы­вает действовать по-другому. Приведенная ниже таблица содержит данные о числе избирателей и денежных средствах, необходимых для проведения успешной кампании по каждому избирательному участку. Каждый участок может либо использовать все предназначенные деньги, либо вовсе их не ис­пользовать. Как следует распределить денежные средства?

Участок Число избирателей Необходимые средства (долл.)

8. Конструируется электронный прибор, состоящий из трех основных компо­нентов. Все компоненты соединены последовательно, поэтому выход из строя одного из них влечет за собой отказ всего прибора. Надежность (вероятность безаварийной работы) прибора можно повысить путем дублирования каждо­го компонента. Конструкция прибора допускает использование одного или двух резервных (параллельных) блоков, т.е. каждый компонент прибора может содержать до трех блоков, соединенных параллельно. Следующая таблица содержит данные о надежности г и стоимости компонентов прибора.

 

Число параллельных блоков Компонент 1 Компонент 2   Компонент 3
г1 с1 (долл.) г2 с2 (долл.) гЗ сЗ (долл.)
  10.6 0.7 0.5
  20.8 0.8 0.7
  30.9 0.9 0.9

Общая сумма, выделенная на конструирование прибора, равна 10 000 долл. Как следует сконструировать прибор? (Совет. Наша задача состоит в макси­мизации надежности г,/у, прибора. Это значит, что целевая функция является мультипликативной, а не аддитивной.)

9. Решите следующую задачу с помощью метода динамического програм­мирования.

Максимизировать z = уУ2—уп

при условиях

У + Уг+ -+У*=с, у,->0,1 = 1,2.....п.

(Подсказка. Это упражнение аналогично предыдущему упражнению, но с той лишь разницей, что переменные yt являются непрерывными.)

10. Решите следующую задачу с использованием метода динамического про­граммирования.

10.3. Приложения динамического программирования

Минимизировать z = y] + у; + ...+ у*

при условиях

УУг-Уп = с, у,>0, / = 1, 2,п.

11. Решите следующую задачу, используя метод динамического программирования.

Максимизироватьz = (у, +2)" + угуъ + (у4 -5)"

при условиях

У1 + У2 + Уз + У4< 5, у,-> 0 и целые, / = 1, 2, 3, 4.

12. Решите следующую задачу с помощью метода динамического програм­мирования.

Минимизировать z = max {Ду1),Ду2), —,fly„)}

при условиях

У1 + У2+- +Уп=С,

у,->0, / = 1,2,..., п.

Найдите решение задачи при условии, что п = 3, с =10, ДуО = _Vi + 5, ЛУг)-бу2+Зи/(у3)-уз-2.

10.3.2. Задача планирования рабочей силы

При выполнении некоторых проектов число рабочих, необходимых для реали­зации какого-либо проекта, регулируется путем их найма и увольнения. Посколь­ку как наем, так и увольнение рабочих связано с дополнительными затратами, не­обходимо определить, каким образом должна регулироваться численность рабочих в период реализации проекта.

Предположим, что проект будет выполняться в течение п недель и минимальная потребность в рабочей силе на протяжении /-Й недели составит Ь, рабочих. При иде­альных условиях хотелось бы на протяжении i-й недели иметь ровно £>, рабочих. Однако в зависимости от стоимостных показателей может быть более выгодным отклонение численности рабочей силы как в одну, так и в другую сторону от мини­мальных потребностей. Если х, — количество работающих на протяжении i-й неде­ли, то возможны затраты двух видов: l)Ci(x,-b,)— затраты, связанные с необхо­димостью содержать избыток х,-Ь, рабочей силы и 2) Сг(х,--Х/_,)— затраты, связанные с необходимостью дополнительного найма х, - рабочих.

Элементы модели динамического программирования определяются следующим образом.

1. Этап i представляется порядковым номером недели i,i= 1, 2, п.

2. Вариантами решения на t-м этапе являются значения дг, — количество рабо­тающих на протяжении ;'-й недели.

3. Состоянием на ;-м этапе является xt_x — количество работающих на протя­жении (/ - 1)-й недели (этапа).

Рекуррентное уравнение динамического программирования представляется в виде

/ (дг,_,) = min {С, (х, - Ь,) + С2 (х, - ) + (х,)}, i = 1,2.....л,

где/„+1(х„) = 0. Вычисления начинаются с этапа п при х„ = Ь„и заканчиваются на этапе 1.

Глава 10. Детерминированные модели динамического программирования

Пример 10.3.2

Строительный подрядчик оценивает минимальные потребности в рабочей силе на каждую из последующих пяти недель следующим образом: 5, 7, 8, 4 и 6 рабочих соответственно. Содержание избытка рабочей силы обходится подрядчику в 300 долл. за одного рабочего в неделю, а наем рабочей силы на протяжении одной недели обходится в 400 долл. плюс 200 долл. за одного рабочего в неделю.

Выражая С и С2 в сотнях долларов, имеем следующее.

bx = 5,b2=l, b3=&,b4=4,b5 = С,(дг, - Ы) = 3(дг, - Ы), х, > bh i C2(xi - xLl) = 4 + 2(Xj - x,_,), x, Этап 5. (bs = 6) 6, = 1,2.....5, ,>*,_,, ('= 1, 2,5.
Ci(x, - 6) + C^x, - xt) Оптимальное решение
Xi xf - 6    
4 3x0 + 4 + 2x2 = 8 5 3x0 + 4 + 2x1 = 6 6 3x0 + 0 = 0 8 6 0 6 6 6
Этап 4. (b4 = 4)
Ci(x4 - 4) + Q>(x4 - x3) + f,(xi)   Оптимальное решение
Хз x4 = 4 Xi = 5 Xt = 6  
8 3x0 + 0 + 8 = 8 3x1 + 0 + 6 = 9 3x2 + 0 + 0 = 6 6 6
Этап 3. (b} = 8)
C,(x3 - 8) + Сг(хз - x2) + Mx3)   Оптимальное решение
x2 x3 = 8    
7 3x0 + 4 + 2x1+6 = 12 8 3x0 + 0 + 6 = 6   12 8 6 8
Этап 2. (b2 = 7)
C,(x2 - 7) + Сг(хъ - x2) + h(x2)   Оптимальное решение
X x2 = 7 Хг = 8   х'г
5 3x0 + 4 + 2x2 + 12 = 20 3x1 +4 + 2x3 + 6 = 19 6 3x0 + 4 + 2x1 + 12 = 18 3x1 +4 + 2x2 + 6= 17 7 3x0 + 0+ 12 = 12 3x1 +4 + 2x1 +6= 15 8 3x0 + 0 + 12 = 12 3x1 +0 + 6 = 9   19 8 17 8 12 7 9 8

10.3. Приложения динамического программирования 457

Этап 1. (6, = 5)

  Ci(x, - 5) + С2(х, - хь) + f2(xi)   Оптимальное решение
Хо Xi = 5 Xi = 6 Xi = 7 X, = 8 fl(Xo) x'
0 3x0 + 4 + 2x5 3x1 + 4 + 2x6 3x2 + 4 + 2x7 3x2 + 4 + 2x8 33 5
+ 19 = 33 + 17 = 36 +12 = 36 + 9 = 35  

Оптимальное решение определяется последовательно таким образом.

x0 = 0 —> х — 5 —> х = 8 —> xj = 8 —> х = 6 —> х, =6. Полученному решению соответствует следующий план.

Номер недели (/) Минимум рабочей силы (Ь,) Количество фактически работающих (х,) Решение
Нанять 5 рабочих
Нанять 3 рабочих
Ничего не менять
Уволить 2 рабочих
Ничего не менять

УПРАЖНЕНИЯ 10.3.2

1. Решите задачу из примера 10.3.2 при следующих минимальных потребно­стях в рабочей силе.

a) 6, = 6, Ъг = 5, b3 = 3,ЬА = 6, Ъь = 8.

b) Ьх = 8, Ь2 = 4, b3 =7,bt = 8, Ьь = 2.

2. Пусть в примере 10.3.2 каждому уволенному рабочему выплачивается вы­ходное пособие в размере 100 долл. Найдите оптимальное решение задачи.

3. Туристическое агентство организовывает недельные поездки в Египет. В соответствии с договором на ближайшие четыре недели агентство должно обеспечить туристические группы арендными автомобилями в количестве семь, четыре, семь и восемь штук соответственно. Агентство заключает до­говор с местным дилером по прокату автомобилей. Дилер назначает аренд­ную плату за один автомобиль 220 долл. в неделю плюс 500 долл. за любую арендную сделку. Агентство, однако, может не возвращать арендованные автомобили в конце недели, и в этом случае оно должно будет платить только арендную плату в 220 долл. Каково оптимальное решение пробле­мы, связанной с арендой автомобилей?

4. Компания на следующие четыре года заключила контракт на поставку авиационных двигателей, по 4 двигателя в год. Доступные производствен­ные мощности и стоимость производства меняются от года к году. Компа­ния может изготовить пять двигателей за 1-й год, шесть — за 2-й, три — за 3-й и пять — за 4-й. Стоимость производства одного двигателя на протя­жении следующих четырех лет равна соответственно 300 000, 330 000, 350 000 и 420 000 долл. В течение года компания может произвести больше

Глава 10. Детерминированные модели динамического программирования

двигателей, чем необходимо, но в этом случае двигатели должны надле­жащим образом храниться до их отгрузки потребителю. Стоимость хране­ния одного двигателя также меняется от года к году и оценивается в 20 ООО долл. для первого года, 30 ООО долл. — для второго, 40 ООО долл. — для третьего и 50 000 — для четвертого. В начале первого года компания имеет один двигатель, готовый к отгрузке. Разработайте оптимальный план про­изводства двигателей.

10.3.3. Задача замены оборудования

Чем дольше механизм эксплуатируется, тем выше затраты на его обслуживание и ниже его производительность. Когда срок эксплуатации механизма достигает оп­ределенного уровня, может оказаться более выгодной его замена. Задача замены оборудования, таким образом, сводится к определению оптимального срока экс­плуатации механизма.

Предположим, что мы занимаемся заменой механизмов на протяжении п лет. В начале каждого года принимается решение либо об эксплуатации механизма еще один год, либо о замене его новым. Обозначим через r(t) и c(t) прибыль от эксплуа­тации г-летнего механизма на протяжении года и затраты на его обслуживание за этот же период. Далее пусть s(t) — стоимость продажи механизма, который экс­плуатировался t лет. Стоимость приобретения нового механизма остается неизмен­ной на протяжении всех лет и равна /.

Элементы модели динамического программирования таковы.

1. Этап i представляется порядковым номером года i, i = 1, 2, п.

2. Вариантами решения на /-м этапе (т.е. для /-го года) являются альтернати­вы: продолжить эксплуатацию или заменить механизм в начале /-го года.

3. Состоянием на <-м этапе является срок эксплуатации / (возраст) механизма к началу /-го года.

Пусть f{t) — максимальная прибыль, получаемая за годы от / до п при условии, что в начале /-го года имеется механизм r-летнего возраста. Рекуррентное уравнение имеет следующий вид.

Компания планирует определить оптимальную политику замены используемого в настоящее время трехлетнего механизма на протяжении следующих 4 лет (п = 4), т.е. вплоть до начала пятого года. Приведенная таблица содержит относящиеся к задаче данные. Компания требует обязательной замены механизма, который на­ходится в эксплуатации 6 лет. Стоимость нового механизма равна 100 000 долл.

где/„,,(.)==0.

Пример 10.3.3

10.3. Приложения динамического программирования

Возраст t (года) Прибыль r(t) (долл.) Стоимость обслуживания c(t) (ДОЛЛ.) Остаточная стоимость s(t) (долл.)
20 000
19 000 80 000
18 500 60 000
17 200 50 000
15 500 30 000
14 000 10 000
12 200 5 000

Определение допустимых значений возраста механизма на каждом этапе является нетривиальной задачей. На рис. 10.6 представлена рассматриваемая задача замены оборудования в виде сети. В начале первого года имеется механизм, эксплуати­рующийся 3 года (на графике рис. 10.6 по оси Y откладывается возраст механизма). Мы можем либо заменить его (3), либо эксплуатировать (С) на протяжении сле­дующего года. Если механизм заменили, то в начале второго года его возраст будет равен одному году, в противном случае его возраст будет 4 года. Такой же подход используется в начале каждого года, начиная со второго по четвертый.

1 2 3 4 5

Год принятия решения

Рис. 10.6. Схема возможной замены механизма для примера 10.3.3

Если однолетний механизм заменяется в начале второго или третьего года, то заме­нивший его механизм к началу следующего года также будет однолетним. К тому же, в начале 4-го года 6-летний механизм обязательно должен быть заменен, если он еще эксплуатируется; в конце 4-го года все механизмы продаются (77) в обязательном по­рядке. На схеме сети также видно, что в начале второго года возможны только меха­низмы со сроком эксплуатации 1 или 4 года. В начале третьего года механизм может иметь возраст 1, 2 или 5 лет, а в начале четвертого — 1,2,3 или 6 лет.

Глава 10. Детерминированные модели динамического программирования

Решение данной задачи эквивалентно поиску маршрута максимальной длины (т.е. приносящего максимальную прибыль) от начала первого года к концу четвер­того в сети, показанной на рис. 10.6. При решении этой задачи используем таблич­ную форму записи. (Числовые данные в таблице кратны тысячам долларов.)

Этап 4.

  С   Оптимум
t KQ + s(f+1)-c(r) КО) + s(f) + ■s(1)-c(0)-/ Щ Решение
19,0 + 60-0,6 = 78,4 20 +80 + 80 - 0,2-100 = 79,8 79,8
18,5 + 50- 1,2 = 67,3 20 + 60 + 80 - ■0,2- 100 = 59,8 67,3 С
17,2 + 30-1,5 = 45,7 20 + 50 + 80 - -0,2-100 = 49,8 49,8
Необходима замена 20 + 5 + 80 - -0,2-100 = 4,8 4,8
Этап 3.
  С   Оптимум
t К0-с(0 + М'+1) КО) + s(0 - с(0)-/+М1) Решение
19,0-0,6 + 67,3 = 85,7 20 + 80 - 0,2 - 100 + 79,8 = 79,6 85,7 С
18,5-1,2 + 49,8 = 67,1 20 + 60 - 0,2 - 100 + 79,8 = 59,6 67,1 С
14,0-1,8 + 4,8 = 17,0 20 + 10-0,2- -100 + 79,8 = 9,6 17,0
Этап 2.
  С   Оптимум
t /(0-c(0 + 6(f+1) to) + s(0 - с(0)-/+6(1)   Решение
19,0-0,6 + 67,1 =85,5 20 + 80 - 0,2 - 100 + 85,7 = 85,5 85,5 С или 3
15,5-1,7 + 19,6 = 33,4 20 + 30 - 0,2 - 100 + 85,7 = 35,5 35,5
Этап 1.
  С   Оптимум
t n[t)-c({) + f2(t+,) КО) + s{0 - с(0)-/+6(1) Щ Решение
17,2-1,5 + 35,5 = 51,2 20 + 50 - 0,2 - 100 + 85,5 = 55,3 55,3

На рис. 10.7 показана последовательность получения оптимального решения. В на­чале первого года оптимальным решением при / = 3 является замена механизма. Следовательно, новый механизм к началу второго года будет находиться в эксплуа­тации 1 год. При t = 1 в начале второго года оптимальным решением будет либо ис­пользование, либо замена механизма. Если он заменяется, то новый к началу третьего года будет находиться в эксплуатации 1 год, иначе механизм будет иметь возраст 2 года. Описанный процесс продолжается до тех пор, пока не будет опреде­лено оптимальное решение для четвертого года.

10.3. Приложения динамического программирования 461

м— Год 1 —мч— Год 2 —м*— Год 3 —►+»— Год 4 —м

Рис. 10.7. Решение примера 10.3.3

Следовательно, начиная с первого года эксплуатации механизма, альтернативны­ми оптимальными стратегиями относительно замены механизма будут (3, С, С, 3) и(3, 3, С, С). Общая прибыль составит 55 300 долл.

УПРАЖНЕНИЯ 10.3.3

1. Постройте сеть и найдите оптимальное решение в задаче из примера 10.3.3 в каждом из следующих случаев.

a) В начале первого года имеется механизм, находящийся в эксплуатации 2 года.

b) В начале первого года имеется механизм, находящийся в эксплуатации 1 год.

c) В начале первого года куплен новый механизм.

2. Мой тринадцатилетний сын занимается собственным бизнесом — косит га­зоны десяти клиентам. Каждому клиенту он косит траву три раза в год, по­лучая за один скошенный газон 50 долл. Он купил косилку за 200 долл. На протяжении первого года затраты на содержание и использование косилки равны 120 долл., и через год они увеличиваются на 20%. Одногодичная ко­силка может быть продана за 150 долларов, и с каждым годом ее стоимость уменьшается на 10%. Мой сын планирует продолжить свой бизнес, пока ему не исполнится 16 лет, и считает, что более выгодно менять косилку через каждые два года. Он объясняет это тем, что цена новой косилки увеличива­ется за год лишь на 10%. Справедливо ли его решение?

3. Группа ферм владеет трактором двухлетней давности и планирует разрабо­тать стратегию его замены на следующие пять лет. Трактор должен эксплуа­тироваться не менее двух и не более пяти лет. В настоящее время новый трактор стоит 40 000 долларов, и эта цена за год увеличивается на 10%. Те­кущая годичная стоимость эксплуатации трактора составляет 1300 долларов и, как ожидается, будет увеличиваться на 10% в год.

a) Сформулируйте задачу в виде задачи о кратчайшем пути.

b) Постройте соответствующее рекуррентное уравнение.

c) Определите оптимальную стратегию замены трактора на следующие пять лет.

4. Рассмотрим задачу замены оборудования на протяжении п лет. Цена новой единицы оборудования равна с долларов, а стоимость продажи после / лет эксплуатации равна s(t) = n-t при п > t и нулю — в противном случае. Годич­ная прибыль от эксплуатации является функцией возраста оборудования / и равна r(t) = п - t2 при п > t и нулю — в противном случае.

Глава 10. Детерминированные модели динамического программирования

a) Сформулируйте задачу как модель динамического программирования.

b) Определите оптимальную стратегию замены оборудования двухгодичной давности при с = 10 ООО долл., считая, что га = 5.

5. Решите задачу из предыдущего упражнения, предполагая, что возраст обо­рудования составляет 1 год и п = 4, с = 6000 долл., r(t) = п/(п + 1).

10.3.4. Задача инвестирования

Предположим, что в начале каждого из следующих га лет необходимо сделать инвестиции Р,, Р2п. Вы имеете возможность вложить капитал в два банка: пер­вый банк выплачивает годовой сложный процент rv а второй — г2. Для поощрения депозитов оба банка выплачивают новым инвесторам премии в виде процента от вложенной суммы. Премиальные меняются от года к году, и для /-го года равны qn и qn в первом и втором банках соответственно. Они выплачиваются в конце года, на протяжении которого сделан вклад, и могут быть инвестированы в один из двух банков на следующий год. Это значит, что лишь указанные проценты и новые день­ги могут быть инвестированы в один из двух банков. Размещенный в банке вклад должен находиться там до конца рассматриваемого периода. Необходимо разрабо­тать стратегию инвестиций на следующие га лет.

Элементы модели динамического программирования таковы.

1. Этап i представляется порядковым номером года /, i =1,2,..., п.

2. Вариантами решения на i'-м этапе (для i'-го года) являются суммы /, и /, ин­вестиций в первый и второй банк соответственно.

3. Состоянием х, на i-м этапе является сумма денег на начало /'-го года, которые могут быть инвестированы.

Заметим, что по определению /. = х, - /,. Следовательно,

*. = Л.

Xi = Pi + qu.Ji-i + Яии(Хи ~ A.i) =

= Л + (<7;-i,i - Яии)1ц + <7/.i.2*i-i. где i = 2, 3, га. Сумма денег xh которые могут быть инвестированы, включает лишь новые деньги и премиальные проценты за инвестиции, сделанные на протя­жении (i - 1)-го года.

Пусть f{x) — оптимальная сумма инвестиций для интервала от (-го до «-го года при условии, что в начале /-го года имеется денежная сумма х,. Далее обозначим через Si накопленную сумму к концу га-го года при условии, что // и (Xj - /,) — объе­мы инвестиций на протяжении /-го года в первый и второй банк соответственно. Обозначая а, = (1 + г,), i= 1,2, мы можем сформулировать задачу в следующем виде.

Максимизировать г = s, + s2 + ... + sn,

где

s, = /,<*'-''+(*,. -/,.)аГ'"'' = -сС'"')/, +аГ'"Ч, ' = 1.2,.... л -1,

s„ = (а, + <7„, - а2 - qn2)l„ + (а2 + <7„2)дг„.

Поскольку премиальные за га-й год являются частью накопленной денежной суммы от инвестиций, в выражения для s„ добавлены qni и q„2.

Итак, в данном случае рекуррентное уравнение для обратной прогонки в алго­ритме динамического программирования имеет вид

10.3. Приложения динамического программирования 463

/Л*Л=™*{*. + /,Лхш)}. i = l,2,....i-l.

где jfi+i выражается через jc, в соответствии с приведенной выше формулой, a/„+i(*„+i) = 0.

Пример 10.3.4

Предположим, вы хотите инвестировать 4000 долл. сейчас и 2000 долл. в начале каждого года, от второго до четвертого, считая от текущего года. Первый банк вы­плачивает годовой сложный процент 8% и премиальные на протяжении следую­щих четырех лет в размере 1,8, 1,7, 2,1 и 2,5% соответственно. Годовой сложный процент, предлагаемый вторым банком, на 0,2% ниже, чем предлагает первый банк, но его премиальные на 0,5% выше. Задача состоит в максимизации накоп­ленного капитала к концу четвертого года.

Используя введенные выше обозначения, имеем следующее.

Я, = 4 000 долл., P2 = Pa = Pt = 2 000 долл.,

а,=(1 +0,08)= 1,08,

а2 = (1 +0,078) = 1,078,

qn = 0,018, Чп = 0,017, Чп = 0,021, qn = 0,025,

<712 = 0,023, <722 = 0,022, <732 = 0,026, qa = 0,030.

Этап 4.

где 54 = (а, + qtl - а2 - qi2)It + (а, + qi2)xt = - 0,003/4 + 1,108лг4.

Функция 54 является линейной по /4 в области 0</4<д:4, и, следовательно, ее макси­мум достигается при /4 = 0 из-за отрицательного коэффициента при /4. Следовательно, оптимальное решение для этапа 4 может быть представлено в следующем виде.

    Оптимальное решение  
Состояние 14(х4)   Л"
х4 1,108x4  

Этап 3.

где

5, = (1,082 - 1,0 782)/а+ 1,0 782*8 = 0,00432/,+ 1,162 1jc3, xt = 2000 - 0,005/3 + 0,026jt3.

Следовательно,

/3}) = max {0,оо432/3 + 1.162Ц +1,108(2000-0,005/3 + 0,026х3)} = = max {2216-0,00122/, + 1,1909*,}.

0S/,S.I, L J

464 Глава 10. Детерминированные модели динамического программирования

  Оптимальное решение  
Состояние №з) ч
Хз 2216 + 1,1909хз

Этап 2.

/:W= maxjs2+/3l>3)},

где

s2 = (1,083 - 1,078а)/2 + 1,0783х2 = 0,006985/2 + 1,25273х2, х3 = 2000 - 0,005/., + 0,022х2.

Следовательно,

  max {0,006985/2 +1,2527х, + 2216 +1,1909(2000 - 0,005/2 + 0,022*2)} =
= max {4597,8 + 0,0010305/, +1,27893*,}. 0</,Sa, l j  
  Оптимальное решение  
Состояние Ь(хг) Ч
Хг 4597,8 + 1.27996X2 хг

Этап 1.

где

s, = (1,084 - 1,0784)/, + 1,0784х, = 0,01005/, + 1,3504л:,, х2 = 2000 - 0,005/, + 0,023х,.

Следовательно,

/,(*,) = max {0,01005/, +1,3504*, +4597,8 + 1,27996(2000 - 0,005/, +0,023*,)} = = max {7157,7 + 0,00365/, +1,37984*,}.

  Оптимальное решение  
Состояние m(Xi)  
*1 = $4000 7157,7 + 1,38349x1 $4000

При вычислениях в обратном направлении получаем следующее.

х2 = 2000 - 0,005 х 4000 + 0,023 х 4000 = 2072 долл., х3 = 2000 - 0,005 х 2072 + 0,022 х 2072 = 2035,22 долл., xt = 2000 - 0,005 х 0 + 0,026 х 2035,22 = 2052,92.

Следовательно, оптимальное решение будет записано следующим образом.

10.4. Проблема размерности

Год Оптимальное решение Решение, принимаемое инвестором Накопления

  = Х1 Инвестировать xi = 4000 долл. в первый банк .si = 5441,80 долл.
  = хг Инвестировать Хг = 2072 долл. в первый банк S2 = 2610,13 долл.
  = 0 Инвестировать хз = 2035,22 долл. во второй банк S3 = 2365,13 долл.
Л" = 0 Инвестировать х4 = 2052,92 долл. во второй банк и = 2274,64 долл.
        Всего 12 691,70 долл.

УПРАЖНЕНИЯ 10.3.4

1. Решите задачу из примера 10.3.4, предполагая, что rt = 0,085, г2 = 0,08. Кроме того, пусть Р, = 5000 долл., Р2 = 4000 долл., Р3 = 3000 долл. и Р4 = 2000 долл.

2. Некий инвестор с начальным капиталом в 10 000 долл. должен решить в конце каждого года, сколько денег истратить и сколько инвестировать. Каждый инве­стированный доллар возвращает а = 1,09 долл. в конце года. Истраченные у дол­ларов на протяжении каждого года приносят удовлетворение, определяемое ко­личественно как эквивалент получения g{y)=[y долларов. Решите задачу с помощью методов динамического программирования для периода в п = 5 лет.

3. Фермер имеет k овец. В конце каждого года он принимает решение, сколько овец продать и сколько оставить. Прибыль от продажи одной овцы в i-й год равна Количество овец в конце /'-го года удваивается к концу (/' + 1)-го года. Фермер планирует в конце п-то года полностью продать овец.

a) Получите общее рекуррентное уравнение для решения задачи.

b) Решите задачу при следующих данных: п = 3 года, к = 2 овцы, д, = 100 долл., рг = 130 долл., рг = 120 долл..

10.3.5. Модели управления запасами

Важной областью применения методов динамического программирования яв­ляются задачи управления запасами. В главах 11 и 16 рассмотрены некоторые за­дачи этого класса, при этом в главе 11 рассматриваются детерминированные моде­ли, а в главе 16 — стохастические.

10.4. ПРОБЛЕМА РАЗМЕРНОСТИ

Во всех рассмотренных выше задачах динамического программирования состоя­ние системы на любом этапе описывалось единственной переменной. Например, в за­даче о загрузке (раздел 10.3.1) вес предмета является единственным ограничением, которое учитывается при его погрузке. Вместе с этим объем судна также может быть ограничительной величиной. В этом случае говорят, что состояние системы явля­ется двухмерным, так как формируется двумя переменными: весом и объемом.

Увеличение числа переменных состояния системы влечет за собой увеличение объема вычислений на каждом этапе. Особенно это заметно в моделях динамиче­ского программирования при вычислениях с использованием таблиц, так как ко­личество строк каждой таблицы должно соответствовать всем возможным комби­

Глава 10. Детерминированные модели динамического программирования

нациям значений переменных состояния. Эти вычислительные трудности настоль­ко значительны в динамическом программировании, что в литературе на них ссы­лаются как на проклятие размерности.

Следующий пример приводится для иллюстрации проблемы размерности. Он также демонстрирует возможность решения задачи линейного программирования методами динамического программирования.

Пример 10.4.1

Предприятие обрабатывающей промышленности выпускает два вида продукции. Производственный процесс составляет 430 минут в день. Для производства едини­цы продукции первого вида требуется 2 минуты, а второго — 1 минута. На дневной объем производства продукции первого вида ограничений нет (кроме возможностей производственного процесса), максимальный ежедневный спрос на второй вид про­дукции равен 230 единиц. Реализация единицы продукции первого вида приносит прибыль в 2 долл., а второго— 5 долл. Необходимо найти оптимальное решение задачи максимизации прибыли методами динамического программирования.

Данная задача является следующей задачей линейного программирования.

Максимизировать г = 2хх + 5хг

при ограничениях

2jc, + х2 < 430,

х2<230,

xvx2>0.

Элементы модели динамического программирования таковы.

1. Этап / соответствует продукции /, /=1,2.

2. Альтернативой х, на i-м этапе является объем производства продукции (,/=1,2.

3. Состояние (vb wx) представляет количество ресурсов, необходимое для произ­водства продукции вида 1 и 2 (производственное время и ограничение на спрос) и используемое на этапах 1 и 2.

4. Состояние (v2, w2) представляет количество ресурсов, необходимое для произ­водства продукции вида 1 и 2 (производственное время и ограничение на спрос) и используемое на этапе 2.

Этап 2. Пусть /2(v2, w2) представляет максимальную прибыль для этапа 2 (прибыль от выпуска продукции вида 2) при заданном состоянии (v2, w2). Тогда

/2(v2, w2)= max {5x2}.

Следовательно, max{5x2} имеет место при x2 = min{v2, w2). Имеем следующее реше­ние для второго этапа.

  Оптимальное решение  
Состояние f2(v2, w2) x2
(v2, w2) 5 min{v2, w2} min{v2, w2)

10.4. Проблема размерности

Этап 1.

f(v,w) = 0max {2*1 +— 2л:,,w,)} = max [2xi +5min(v,-2х,,w,)}.

Оптимизация на первом этапе требует решения минимаксной задачи, что в общем случае является достаточно сложным делом. Для рассматриваемой задачи имеем и, = 430 и w1 = 230, что дает 0 < 2х, < 430. Так как min(430 - 2х,, 230) представляет собой нижнюю огибающую двух пересекающихся прямых (проверьте!), то

„„ „ [230, 0<х<100,

min(430-2x,,230) = 1

1 [430 - 2*,, 100<х, <215

и

[2х+1150, 0<х<100, /,(430,230)= тах{

J1K * [-8*,+2150, 100<х,<215.

Графически можно легко проверить, что функция/,(430, 230) достигает максималь-

ного значения при х, = 100. Итак, получаем следующее.  
  Оптимальное решение  
Состояние Ши kvi)  
(430, 230)

Для определения оптимального значения х2 заметим, что

v2 = v1 - 2х, = 430 - 200 = 230, w2 = w1 - 0 = 230.

Следовательно,

х2 = min{u2, w2) = 230. Итак, оптимальное решение имеет вид: х, = 100 единиц, х2 = 230 единиц, г = 1350 долл.

УПРАЖНЕНИЯ 10.4

1. Решите следующие задачи линейного программирования методами динами­ческого программирования.

a) Максимизировать г = 4х, + 14х2 при ограничениях

2х, + 7х2<21, 7х,+ 2х2<21, х„х2>0.

b) Максимизировать z = 8х, + 7х2 при ограничениях

2х, + х2 < 8, 5х, + 2х2<15, х,, х2 > 0 и целые.

Глава 10. Детерминированные модели динамического программирования

с) Максимизировать г = 7 х + 6хг + 5 х; при ограничениях

х, + 2х2 < 10, х1-3хг<9, xv х2>0.

2. Пусть в задаче из примера 10.3.1 о загрузке предметов п наименований огра­ничения самолета по весу и объему представлены величинами W и V соответ­ственно. Величины wh v, и г, представляют соответственно вес, объем и при­быль, отнесенные к одному предмету наименования г. Необходимо записать рекуррентное уравнение обратной прогонки для алгоритма динамического программирования решения сформулированной задачи.

ЛИТЕРАТУРА

1. Bertsekas D. Dynamic Programming: Deterministic and Stochastic Models, Prentice Hall, Upper Saddle River, N.J., 1987.

2. Denardo E. Dynamic Programming Theory and Application, Prentice Hall, Upper Saddle River, N.J., 1982.

3. Dreyfus S., Law A. The Art and Theory of Dynamic Programming, Academic Press, New York, 1977.

4. Sniedovich M. Dynamic Programming, Marcel Dekker, New York, 1991.

Литература, добавленная при переводе

1. Беллман Р. Динамическое программирование. — М.: ИЛ, 1960.

2. Беллман Р., Дрейфус С. Прикладные задачи динамического программирова­ния. — М.: Наука, 1965.

3. Вентцель Е. С. Исследование операций. — М.: Сов. радио, 1972.

4. Романовский И. В. Алгоритмы решения экстремальных задач. — М.: Наука, 1977.

КОМПЛЕКСНАЯ ЗАДАЧА

10.1. Компания проверяет состояние оборудования в конце каждого года и на основании этого принимает следующее решение: либо использовать его еще один год, либо заменить. Однако оборудование, которое находилось в эксплуатации три года, подлежит замене в обязательном порядке. Ком­пания планирует разработать стратегию замены имеющегося оборудова­ния на следующие 10 лет. Соответствующая информация содержится в приведенной ниже таблице. Считается, что в начале первого года все оборудование новое.

Комплексная задача

Стоимость содержания (долл.) Стоимость продажи (долл.) для Год Стоимость для данного возраста (лет) данного возраста (лет)

покупки покупки (долл.)
10 000 9 000 7 000 5 000
12 000 11 000 9 500 8 000
13 000 12 000 11 000 10 000
13 500 12 000 11 500 11 000
13 800 12 000 11 800 11 200
14 200 12 500 12 000 11 200
14 800 13 500 12 900 11 900
15 200 14 000 13 200 12 000
15 500 15 500 14 500 13 800
16 000 15 800 15 000 14 500

ГЛАВА 11

ДЕТЕРМИНИРОВАННЫЕ МОДЕЛИ УПРАВЛЕНИЯ ЗАПАСАМИ

Как в бизнесе, так и в производстве обычно принято поддерживать разумный запас материальных ресурсов или комплектующих для обеспечения непрерывно­сти производственного процесса. Традиционно запас рассматривается как неиз­бежные издержки, когда слишком низкий его уровень приводит к дорогостоящим остановкам производства, а слишком высокий — к "омертвлению" капитала. За­дача управления запасами — определить уровень запаса, который уравновешивает два упомянутых крайних случая.

Важным фактором, определяющим формулировку и решение задачи управле­ния запасами, является то, что объем спроса на хранимый запас (в единицу времени) может быть или детерминированным (достоверно известным), или вероятност­ным (описанным вероятностным распределением). В этой главе рассматриваются детерминированные модели управления запасами. Вероятностные модели (обычно более сложные) обсуждаются в главе 16.

11.1. ОБЩАЯ МОДЕЛЬ УПРАВЛЕНИЯ ЗАПАСАМИ

Природа задачи управления запасами определяется неоднократным размеще­нием и получением заказов заданных объемов продукции (в дальнейшем — хра­нимых запасов) в определенные моменты времени. С этой точки зрения стратегия управления запасами должна отвечать на следующие два вопроса.

1. Какое количество хранимого запаса следует заказать?

2. Когда заказывать?

Ответ на первый вопрос определяет экономичный размер заказа путем миними­зации следующей функции затрат.

( Суммарные 4

Затраты на ^

затраты системы управления запасами

приобретение.

оформление заказа

  'Затраты на"   ' Потери от4
+ хранение + дефицита
J заказа   запаса

Все эти стоимости должны быть выражены как функции искомого объема зака­за и интервала времени между заказами.

Глава 11. Детерминированные модели управления запасами

1. Затраты на приобретение определяются стоимостью единицы приобретае­мой продукции (хранимого запаса). Эта стоимость может быть постоянной или со скидкой, которая зависит от объема заказа.

2. Затраты на оформление заказа представляют собой постоянные расходы, связанные с его размещением (для изготовления продукции) на других про­изводствах. Эти затраты не зависят от объема заказа.

3. Затраты на хранение запаса представляют собой затраты на содержание запаса на складе. Этот вид затрат включает как процент на инвестированный капитал, так и стоимость хранения, содержания и ухода.

4. Потери от дефицита запаса — это расходы, обусловленные отсутствием запаса необходимой продукции. Они включают как потенциальные потери прибыли, так и более субъективную стоимость, связанную с потерей доверия клиентов.

Ответ на второй вопрос (когда заказывать?) зависит от типа системы управле­ния запасами, с которой мы имеем дело. Если система предусматривает периоди­ческий контроль состояния запаса (например, каждую неделю или месяц), мо­мент поступления нового заказа совпадает с началом периода. Если же в системе предусмотрен непрерывный контроль состояния запаса, новые заказы размеща­ются тогда, когда уровень запаса опускается до заранее определенного значения, называемого точкой возобновления заказа.

Модели управления запасами, рассматриваемые в этой главе, охватывают два типа детерминированных моделей: статические и динамические. В статических моделях рассматриваются ситуации, когда объем спроса на хранимую продукцию (запас) является постоянным во времени. В динамических моделях объем спроса является функцией времени.

11.2. СТАТИЧЕСКИЕ МОДЕЛИ УПРАВЛЕНИЯ ЗАПАСАМИ

В этом разделе рассмотрены три разновидности модели управления запасами, по­зволяющие определить экономичные размеры заказа со статическим объемом спроса.

11.2.1. Классическая задача экономичного размера заказа

Простейшие модели управления запасами характеризуются постоянным во времени спросом, мгновенным пополнением запаса и отсутствием дефицита. Вве­дем обозначения:

у — объем заказа (количество единиц продукции),

D — интенсивность спроса (измеряется в единицах продукции на единицу времени), t0 — продолжительность цикла заказа (измеряется во временных единицах).

Уровень запаса изменяется в соответствии с функцией, показанной на рис. 11.1, где использованы приведенные выше обозначения. Заказ объема у единиц размещает­ся и пополняется мгновенно, когда уровень запаса равен нулю. Затем запас равно­мерно расходуется с постоянной интенсивностью спроса D. Продолжительность цикла заказа для этого примера равна

у

г0 = — единиц времени.

11.2. Статические модели управления запасами

Уровень запаса У

Точки возобновления заказа

    /    
-й-       ... Средний запас = ^

Время

'о D

Рис. 11.1. Изменение запаса в классической модели

Средний уровень запаса определяется соотношением

v

средний уровень запаса = единиц.

Для построения функции затрат требуется два стоимостных параметра. К — затраты на оформление, связанные с размещением заказа,

h — затраты на хранение (затраты на единицу складируемой продукции в еди­ницу времени).

Суммарные затраты в единицу времени (обозначается TCU1) можно представить как функцию от у в следующем виде.

ТСЩу) = затраты на оформление заказа в единицу времени +

+ затраты на хранение запаса в единицу времени =

_ затраты на оформление + затраты на хранение за цикл ;0 _

K + h^ |.„

*+42

У_ {2 D

Оптимальное значение объема заказа у определяется путем минимизации по у функции ТСЩу). Предполагая, что у является непрерывной переменной, получаем необходимое условие минимума (в виде уравнения), из которого можно найти оп­тимальное значение у

£CUjj)=_KD Л=() dy у1 2

Это условие является также и достаточным, так как функция ТСЩу) выпуклая. Решение данного уравнения определяет экономичный объем заказа у .

2KD

Оптимальная стратегия управления запасами для рассмотренной модели фор­мулируется следующим образом.

1 TCU — сокращение от Total Cost per Unit time, т.е. суммарные затраты в единицу вре­мени. — Прим. ред.

Глава 11. Детерминированные модели управления запасами

Заказывать у'

единиц продукции через каждые t"0=— единиц времени, h D

В действительности пополнение запаса не может произойти мгновенно в мо­мент размещения заказа, как предполагалось ранее. Для большинства реальных ситуаций существует положительный срок выполнения заказа L (временное за­паздывание) от момента его размещения до реальной поставки, как показано на рис. 11.2. В этом случае точка возобновления заказа имеет место, когда уровень запаса опускается до LD единиц.

Уровень запаса

«-1

«-1

Время

Рис. 11.2. Точки возобновления заказа в классической модели

На рис. 11.2 представлено изменение уровня запаса во времени при условии, что срок выполнения заказа L меньше продолжительности цикла заказа t'0, что в об­щем случае выполняется не всегда. В противном случае определяется эффектив­ный срок Le выполнения заказа в виде

Le = L - п t*,

где п — наибольшее целое, не превышающее L/1'0. Такое решение оправдывается тем, что после п циклов (длиной /* каждый) ситуация управления запасами стано­вится такой же, как если бы интервал между размещением одного заказа и получе­нием другого был равен Le. Следовательно, точка возобновления заказа имеет место при уровне запаса LtD единиц продукции, и стратегия управления запасами может быть переформулирована следующим образом.

Заказывать у* единиц продукции, как только уровень запаса опускается doLJD единиц.

Пример 11.2.1

Неоновые лампы в университетском городке заменяются с интенсивностью 100 штук в день. Подразделение материального обеспечения городка заказывает эти лампы с опре­деленной периодичностью. Стоимость размещения заказа на покупку ламп составляет 100 долларов. Стоимость хранения лампы на складе оценивается в 0,02 долл. в день. Срок выполнения заказа от момента его размещения до реальной поставки равен 12 дней. Требуется определить оптимальную стратегию заказа неоновых ламп.

На основании приведенных данных имеем следующее.

11.2. Статические модели управления запасами

D = 100 единиц в день, К = 100 долларов за заказ,

Л = 0,02 доллара за хранение одной лампы в день, L = 12 дней.

Следовательно,

. 2KD /2x100x100 1ппп

у =.-=.-=1000 ламп.

А V 0.02

Соответствующая длина цикла составляет

. у' 1000

ta = — =-=10 дней.

D 100

Так как срок выполнения заказа L = 12 дней превышает продолжительность цикла t'0 (= 10 дней), необходимо вычислить Le. Число целых циклов, заключенных в L, равно

п = (наибольшее целое <L/t'0) = (наибольшее целое < 12/10) = 1. Следовательно,

Lp=L-nt'0 =12-1x10 = 2 дня.

Поэтому точка возобновления заказа имеет место при уровне запаса

LeD = 2 х 100 = 200 неоновых ламп.

Оптимальная стратегия заказа неоновых ламп может быть сформулирована сле­дующим образом.

Заказать 1000 ламп, как только уровень их запаса уменьшается до 200 единиц.

Дневные расходы, связанные с содержанием запаса в соответствии с оптимальной стратегией, равны

TCU(у) =j-+а(1) = Ц + 0,02рМj_20 долл. в день.

Ъ Too"

Решение классической задачи управления запасами в Excel. Шаблон Excel chllEOQ.xls разработан для решения этой задачи. Точная формулировка задачи, которая решается с помощью этого шаблона, приведена в упражнении 11.2.1.9. Применение шаблона продемонстрировано в примере 11.2.2 (раздел 11.2.2).

УПРАЖНЕНИЯ 11.2.1

1. В каждом из следующих случаев дефицит не допускается, а время выполне­ния заказа от момента его размещения до реальной поставки равно 30 дней. Требуется определить оптимальную стратегию управления запасами и соот­ветствующие дневные затраты.

a) К = 100 долл., Л = 0,05 долл., D = 30 единиц в день.

b) К= 50 долл., Л = 0,05 долл., D = 30 единиц в день.

c) К = 100 долл., Л = 0,01 долл., D = 40 единиц в день.

d) К = 100 долл., Л = 0,04 долл., D = 20 единиц в день.

Глава 11. Детерминированные модели управления запасами

2. Ресторан заказывает мясной фарш в начале каждой недели для удовлетворе­ния недельного спроса в 300 фунтов. Фиксированная стоимость размещения заказа равна 20 долл. Стоимость замораживания и хранения одного фунта фарша обходится ресторану примерно в 0,03 долл. в день.

a) Определите недельные затраты ресторана, связанные с существующей стратегией создания запаса.

b) Определите оптимальную стратегию управления запасами, предполагая, что время выполнения заказа от момента его размещения до реальной по­ставки равно нулю.

c) Вычислите разность между текущими недельными затратами рестора­на и теми, которые определяются оптимальной стратегией управления запасами.

3. Компания хранит на складе продукцию, которая потребляется с интенсив­ностью 50 единиц в день. За размещение заказа компания каждый раз пла­тит 20 долл. Стоимость хранения единицы продукции на складе обходится в 0,35 долл. в неделю.

a) Определите оптимальную стратегию управления запасами, если предпо­ложить, что время выполнения заказа от момента его размещения до ре­альной поставки равно 1 неделе.

b) Определите оптимальное количество заказов в течение года (считая, что год имеет 365 дней).

4. Отдел снабжения компании предложил две стратегии управления запасами. Стратегия 1. Объем заказа 150 единиц при точке возобновления заказа в 50 единиц и времени выполнения заказа 10 дней.

Стратегия 2. Объем заказа 200 единиц при точке возобновления заказа в 75 единиц и времени выполнения заказа 15 дней.

Затраты на оформление заказа равны 20 долл., а стоимость хранения едини­цы продукции на складе обходится в 0,02 долл. в день.

a) Какую из двух стратегий следует утвердить?

b) Если бы вы отвечали за разработку стратегии управления запасами, како­ва была бы ваша рекомендация?

5. Магазин прессует и складывает в поддоны пустые картонные упаковочные ко­робки для их последующей переработки. За день штабелируется пять поддо­нов. Стоимость хранения одного поддона на заднем дворе магазина составляет 0,10 долл. в день. Компания, которая перевозит поддоны в перерабатывающий центр, устанавливает оплату в 100 долл. за аренду своего погрузочного обору­дования плюс 3 долл. за перевозку каждого поддона. Изобразите графически изменение количества поддонов с течением времени и разработайте оптималь­ную стратегию доставки поддонов в перерабатывающий центр.

6. Отель использует внешнюю прачечную для стирки полотенец. За день в отеле накапливается 600 грязных полотенец. Прачечная забирает эти полотенца и заменяет их чистыми через постоянные промежутки времени. Стоимость од­нократной доставки полотенец в прачечную и обратно равна 81 доллар. Стирка одного полотенца обходится в 0,60 долл. Стоимость хранения в отеле грязного и чистого полотенец равна 0,02 долл. и 0,01 долл. соответственно.

11.2. Статические модели управления запасами

Как часто следует отелю пользоваться службой доставки полотенец? (Подсказка. В этой задаче имеется два типа складируемых предметов. Если количество грязных полотенец возрастает, то количество чистых уменьшает­ся с равной интенсивностью.)

7. Дана задача управления запасами, в которой склад пополняется равномерно (вместо мгновенного пополнения) с интенсивностью а. Продукция потребля­ется с интенсивностью D. Так как потребление происходит наряду с перио­дом пополнения, необходимо, чтобы было a >D. Стоимость размещения зака­за равна К, а стоимость хранения единицы продукции в единицу времени — h. Покажите, что если у — объем заказа и отсутствует дефицит, то

a) максимальный объем запаса равен у( - D/a),

b) общие затраты в единицу времени при заданном у равны

можно получить из формулы в п. с.

8. Фирма может производить изделие или покупать его у подрядчика. Если фир­ма сама выпускает изделие, то каждый запуск его в производство обходится в 20 долл. Мощность производства составляет 100 единиц в день. Если изделие закупается, затраты на размещение каждого заказа равны 15 долл. Затраты на содержание изделия на складе, независимо от того, закупается оно или произ­водится на фирме, равны 0,02 долл. в день. Потребление изделия фирмой оце­нивается в 260 000 единиц в год. Если предположить, что фирма работает без дефицита, определите, что выгоднее — закупать или производить изделия?

9. Предположим, что в упражнении 7 допускается дефицит и удельные потери от него составляют р долл. в единицу времени. Если w — величина дефицита и у — объем заказа, покажите, что имеют место следующие соотношения.

с) экономичный объем заказа равен

формулу экономичного объема заказа при мгновенном пополнении запаса

У =

Глава 11. Детерминированные модели управления запасами

11.2.2. Задача экономичного размера заказа с разрывами цен

Представленная в этом разделе модель управления запасами отличается от рас­смотренной в разделе 11.2.1 только тем, что продукция может быть приобретена со скидкой, если объем заказа у превышает некоторый фиксированный уровень q; та­ким образом, стоимость единицы продукции с определяется как

с,, если у < q.

с2, если у > q,

где с, > с2. Следовательно,

затраты на приобретение продукции в единицу времени = •

•о | L D

= Dcv y<q,

С-,У с, у _ — —*Zr = Dc2, y>q.

1. D

Используя обозначения из раздела 11.2.1, запишем общие затраты в единицу времени следующим образом.

TCU(y) =

TCU,{y) = Dcx+ — + ty, y<q, У 2

m. / гч KD h TCU2{y) = Dc2+-+ -у, y>q.

У 2

Графики функций 7'Ci7I и 7'Ci72 представлены на рис. 11.3. Так как значения этих функций отличаются только на постоянную величину, то точки их минимума совпадают и находятся в точке

Ут =

2KD

Затраты

Ут Q Рис. 11.3. Графики функций затрат

График функции затрат TCU(y), если идти от минимальных значений аргумен­тов, совпадает с графиком функции TCUt(y) до точки y = q,B которой меняется цена продукции, а затем совпадает с графиком функции TCU2(y). На рис. 11.3 показано, что определение оптимального объема заказа у' зависит от того, где находится точ­ка разрыва цены q по отношению к указанным на рисунке зонам I, II и III, которые определены как интервалы [0, ут), [ут, Q) и [Q, °°) соответственно. Величина Q (> ут) определяется из уравнения

11.2. Статические модели управления запасами

TCU2{Q)=TCU,{yJ

или

Отсюда получаем квадратное уравнение относительно Q:

Q.+(2(c2D-TCUM)+2KD=0

h ) h

На рис. 11.4 показано, как определяется оптимальное значение у

ут, если q находится в зоне I или Ш,

У =

q, если q находится в зоне П.

Затраты

Минимум

Я Ут Q

Случай 1: q в зоне I, у* = у,

Ут Я Q Случай 2: q в зоне II, у* = q

Минимум j-----^-

i ✓ ^- j. ^

I

_1_

Ут Q4

Случай 3: q в зоне III, у* = ут Рис. 11.4. Три случая оптимального решения

Алгоритм определения у можно сформулировать в следующем виде.

Этап 1. Вычисляем уп = . Если q попадает в зону I, полагаем у* = ут

В противном случае переходим к этапу 2. Этап 2. Находим Q из уравнения

Q.j2(c2D-TCUMQ+2_KD=Q

и определяем зоны II и III. Если q находится в зоне II, полагаем у = q. Иначе q находится в зоне III, тогда у* = ут.

Глава 11. Детерминированные модели управления запасами

Пример 11.2.2

Автомобильная мастерская специализируется на быстрой замене масла в автомо­билях. Мастерская покупает автомобильное масло в большом количестве по 3 долл. за галлон. Цена может быть снижена до 2,50 долл. за галлон при условии, что мас­терская покупает более 1000 галлонов. За день в мастерской обслуживается около 150 автомобилей, и на каждый из них для замены требуется 1,25 галлона масла. Мастерская хранит на складе большие объемы масла, что обходится в 0,02 долл. в день за один галлон. Стоимость размещения заказа на большой объем масла равна 20 долл. Срок выполнения заказа — 2 дня. Требуется определить оптимальную стратегию управления запасами. Дневное потребление масла равно

D = 125 автомобилей х 1,25 галлона = 187,5 галлона в день. Также имеем

h = 0,02 долл. за галлон в день, К = 20 долл.за заказ, L = 2 дня,

с, = 3 долл.за галлон, с2 = 2,50 долл. за галлон, q= 1000 галлонов. Этап 1. Вычисляем

2KD 2x20x187,5

= 612,37 галлонов.

h 0,02

Так как q = 1000 больше ут = 612,37, переходим к этапу 2. Этап 2. Вычисляем Q.

TCUl{ym)~clD++!^ = У,„ 2

, ,о-,с 20x187,5 0,02x612,37 „л пс

= 3x187,5 +-+ —-= 574,75.

612,37 2

Уравнение для Q имеет вид

, (2х(2,5х187,5-574,75)"| 2x20x187,5 2 +{ 0,02 Г+ 0,02

или Q2 - 10599,74Q + 375000 = 0.

Решением этого уравнения будет Q = 10564,5 (> ут). Следовательно,

Зона II = (612,37, 10564,5),

Зона III = (10564,5, °о).

Поскольку q (= 1000) находится в зоне II, оптимальный объем заказа равен у = = q= 1000 галлонов.

При заданном сроке выполнения заказа в 2 дня точкой возобновления заказа явля­ется 2D = 2 х 187,5 = 375 галлонов. Следовательно, оптимальная стратегия управ­ления запасами формулируется следующим образом.

Заказать 1000 галлонов масла, когда уровень запаса понижается до 375 галлонов.

11.2. Статические модели управления запасами

Решение задачи в Excel. Шаблон Excel chllEOQ.xls разработан для решения об­щей задачи управления запасами, описанной в упражнении 11.2.1.9. Его также мож­но использовать для решения задачи экономичного размера заказа с разрывами цен.

На рис. 11.5 показано решение с помощью этого шаблона задачи экономичного размера заказа с разрывами цен примера 11.2.2. Для решения задачи сначала необ­ходимо ввести исходные данные в ячейки СЗ:С11 раздела Input data. Если в данной задаче не используются какие-либо предусмотренные шаблоном исходные данные, то в соответствующие ячейки вводится число —1. Например, для решения общей задачи управления запасами без разрыва цен в ячейки СЗ:С5, где должны содержаться зна­чения с,, q и с2, вводится значение —1. Если введены не корректные исходные данные, то будет выведено соответствующее сообщение об ошибке. На рабочем листе шаблона выводятся как выходные результаты расчетов (раздел Model output results), так и ре­зультаты промежуточных вычислений (раздел Model intermediate calculations).

 

I 1 Generalized Economic Order Quantity (E00)
  Input data: Entet -1 in column С if data element is not applicable to your model
  Item cost, c1 -  
  Oty discount limit, Щ ~  
5 litem cost, c2 2.5  
  Setup cost, К =  
Demand tate, D = 187.5  
Production tale, a = -1  
Unit holdinq cost, h = 0.02  
10 Unit penalty cost, p '• -1  
J Lead time. L -  
v] Model output results:    
Order qty, y* = 1000 00  
Shortage qty. w* = 0.00  
15 Reorder point, R = 375.00  
16/CU(y*) = 482 50  
17 Purchase/prod. Cost =  
£etup cost/unit time = 3.75  
19 iHolding cost /unit time = 10.00  
20 shortage cost/unit time = 0 00  
21 Optimal inventory policy: Order 1000.00 units whenever level drops to 375 00 units
22 Model intermediate calculations:
ym ~ 612.37  
24 TCU1(ym)= 25 Q-equatiori. 26 Q = 574.75 СГ2 -10599 7449*Q + 375000 0000 = 0
10564 25
27 cycle length. Ю = 26 Optimization zone = 5.33 II  
29 Effectice lead time, Le = 2.00  

Рис. 11.5. Решение в Excel задачи примера 11.2.2

УПРАЖНЕНИЯ 11.2.2

1. Вернитесь к задаче из упражнения 11.2.1.6. Стоимость стирки одного гряз­ного полотенца равна 0,60 долл., но она может быть снижена до 0,50 долл., если отель поставляет в прачечную по меньшей мере 2500 единиц полотенец. Следует ли отелю воспользоваться скидкой?

2. Продукция используется с интенсивностью 30 единиц в день. Стоимость хра­нения единицы продукции равна 0,05 долл. в день, стоимость размещения заказа составляет 100 долл. Предположим, что дефицит продукции не до­пускается, стоимость закупки равна 10 долл. за единицу продукции, если объем закупки не превышает 500 единиц, и 8 долл. в противном случае. Оп­ределите оптимальную стратегию управления запасами при условии, что срок выполнения заказа — 21 день.

Глава 11. Детерминированные модели управления запасами

3. Комплектующие продаются по 25 долл. за единицу, но предлагается 10 % скидка при покупке партии от 150 единиц и выше. Компания в день ис­пользует 20 единиц комплектующих. Стоимость размещения заказа равна 50 долл., стоимость хранения единицы товара составляет 0,30 долл. в день. Следует ли компании воспользоваться скидкой?

4. В предыдущем упражнении определите пределы изменения скидки на цену комплектующих в процентах (предлагаемую за партию от 150 единиц и вы­ше), при которых компания не получит никакой финансовой выгоды.

5. В модели управления запасами, рассмотренной в этом разделе, предположи­те, что стоимость хранения единицы товара в единицу времени равна Л,, если объем хранимого товара меньше q единиц, и Л2 в противном случае, Л, > h2. Покажите, как в этом случае можно определить экономичный размер партии хранимого товара.

11.2.3. Многопродуктовая статическая модель с ограниченной вместимостью склада

Эта модель рассматривает задачу управления запасами п различных товаров, которые хранятся на одном складе ограниченной вместимости. Характер измене­ния запаса каждого товара в отдельности определяется функцией, показанной на рис. 11.1; предполагается, что дефицит отсутствует. Отличие от ранее рассмотрен­ных моделей состоит в том, что товары конкурируют между собой за ограниченное складское пространство.

Определим для товара i, i = 1, 2.....п, следующие параметры.

D, — интенсивность спроса,

Kt — стоимость размещения заказа,

Л( — стоимость хранения единицы товара в единицу времени, yt — объем заказа,

а, — необходимое пространство для хранения единицы товара,

А — максимальное складское пространство для хранения товаров п видов.

При отсутствии дефицита математическая модель сформулированной задачи имеет следующий вид.

ГК,Р, t h,y, У, 2

Минимизировать TCU[y1,y2,—,y„) = при ограничениях

у, >0, i= 1, 2, п. Алгоритм решения этой задачи можно описать следующим образом.

Этап 1. Вычисляются оптимальные объемы заказов без учета ограниче­ния по вместимости склада:

I = 1, 2,

11.2. Статические модели управления запасами

Этап 2. Осуществляется проверка, удовлетворяют ли найденные значения у' ограничению по вместимости склада. Если это так, вычисления

заканчиваются, при этом значения у', i = 1, 2, п являются оп­тимальными. В противном случае следует перейти к этапу 3.

Этап 3. Ограничение по вместимости склада должно удовлетворяться в форме равенства. Используется метод множителей Лагранжа для определе­ния оптимальных объемов заказа для задачи с ограничением.

На этапе 3 строится функция Лагранжа

ЦЛ,у12,...,уп) = ТСи(у12,...,у,,)-л(£а1у,-А =

КД , h,y, ■ -.У, 2 где Я (< 0) — множитель Лагранжа2.

Поскольку функция Лагранжа является выпуклой, оптимальные значения у, и Я находятся из следующих уравнений, которые представляют собой необходимые условия экстремума функции Лагранжа.

3L

—Чг- + — -Яа= 0, 2

У,

dL ЭЯ = -£ад.+А = 0.

Второе уравнение показывает, что ограничение по вместимости склада в опти­мальной точке должно удовлетворяться в форме равенства. Из первого уравнения следует, что

У,

Гкр.

Полученная формула показывает, что у] зависит от оптимального значения Я* множителя Лагранжа. Кроме того, при Я* = 0 значение у' является решением зада­чи без ограничения.

Значение Я* может быть найдено следующим образом. Так как по определению в поставленной выше задаче минимизации Я < 0, мы последовательно уменьша­ем Я на достаточно малую величину и используем ее в данной формуле для вы­числения соответствующего значения у'. Искомое значение Я* приводит к значе­ниям у*, t = l, 2, п, которые удовлетворяют ограничению по вместимости склада в форме равенства.

Пример 11.2.3

В разделе 20.1.1 детально рассмотрен метод множителей Лагранжа. Применение метода в данном случае является корректным, так как здесь функция ТСЩу,, угп,) выпуклая, задача имеет единственное линейное ограничение и, следовательно, выпуклое пространство решений. Метод может оказаться некорректным при Других ограничениях или при наличии более одного ограничения (см. раздел 20.1.2).

Глава 11. Детерминированные модели управления запасами

Рассмотрим задачу управления запасами, исходные данные для которой приведе­ны в следующей таблице.

Товар i К, (долл.) D-, (единиц в день) Л, (долл.) а; (кв. футы)

1 10 2 0,3 1

2 5 4 0,1 1

3 15 4 0,2 1

Общая площадь склада = 25 футов2

Вручную производить вычисления в этой задаче утомительно, поэтому воспользу­емся шаблоном chllConstrainedEOQ.xls.

На рис. 11.6 показан рабочий лист этого шаблона с исходными данными для рас­сматриваемой задачи. Исходные данные содержат все необходимые параметры для каждого вида запаса (товара). Начальное значение Л (ячейка СЮ) обычно устанав­ливается равным нулю, шаг изменения Л задается в ячейке СИ. Это начальное зна­чение Л и шаг изменения определяют точность вычисленного значения Л и объем выполненных вычислений.

  в с D E F G   H
      Constrained multi-item EOQ - [sum(ay)<A
Input data:
Nbr. of items =  
Constraint RHS, A = Enter 0 if sum(ay), 1 if sum(afy)    
  Iteml Item2 Item3    
Setup cost, К =      
Demand rate. D =      
Holding cost, h = 0.3 0.1 0.2      
Parameter, a =      
Initial X =            
X decrement = 0.1            
Output:
Calculations: Last tow gives the appioximate optimum        
Л y1 У2 y3        
0 000000 11 55 20.00 24.49        
-0 100000 8 94 11.55 17.32        
-0.200000 7 56 8.94 14.14        
-0.300000 6.67 7.56 12.25        
-0.400000 6.03 6.67 10.95        
               

Puc. 11.6. Решение в Excel задачи примера 11.2.3

Шаблон рассчитан на решение задач, содержащих не более 10 видов запаса. С по­мощью этого шаблона можно находить решение задач, где ограничение представ­лено в форме

11.2. Статические модели управления запасами

Такой тип ограничения может возникнуть в различных ситуациях, одна из них показана в упражнении 11.2.3.4. Для решения задач с таким типом ограничений следует ввести в ячейку G4 значение 1.

Данные в столбце М показывают, что значение Я* находится в интервале от -0,3 до -0,4. Шаблон позволяет получить значение Я с любой наперед заданной точностью. Для этого надо ввести в ячейку СЮ новое начальное значение -0,3 для Я и новое значение шага изменения, например 0,05. После ввода этих значений рабочий лист пересчитывается автоматически, в результате чего получаем новый (меньший) ин­тервал, содержащий значение Л. После нескольких подобных пересчетов я полу­чил значение Я* = -0,348, вычисленное с точностью 0,0005. Это значение Я* дает

у* = 6,34 единицы, у ~ 7,09 единицы, у ~ 11,57 единицы.

УПРАЖНЕНИЯ 11.2.33

1. Приведенные ниже данные относятся к задаче управления запасами для пя­ти видов продукции.

Продукция / К, (долл.) D, (единиц в день) п, (долл.) а, (кв. футы)

1 20 22 0,35 1,0

2 25 34 0,15 0,8

3 30 14 0,28 1,1

4 28 21 0,30 0,5

5 35 26 0,42 1,2

Общая площадь склада = 25 футов2

Определите оптимальный объем заказа.

2. Решите задачу из примера 11.2.3, предполагая, что сумма средних запасов всех предметов должна быть меньше 25 единиц.

3. Решите предыдущее упражнение, предполагая, что единственным ограниче­нием является денежная сумма в 10 000 долл., которая может быть потраче­на на приобретение запасов продукции. Стоимость закупки единицы про­дукции вида 1, 2 и 3 равна соответственно 100, 50 и 100 долл.

4. Приведенные ниже данные относятся к задаче управления запасами для че­тырех видов продукции. Компания желает определить экономичный объем заказа для каждого из четырех видов продукции таким образом, чтобы сум­марное количество заказов в год (365 дней) было не более 150.

Продукция / К, (долл.) 0, (единиц в день) hi (долл.)
0,1
0,2
0,2
0,1

При выполнении этих упражнений рекомендуем использовать шаблон chllConstrainedEOQ.xls.

Глава 11. Детерминированные модели управления запасами

Запишите функцию Лагранжа и получите формулы, необходимые для реше­ния данной задачи.

5. На основе уравнения в частных производных задачи управления запасами этой главы покажите, что в качестве начального значения Я в процедуре по­иска оптимального значения этого параметра можно взять величину

д. _ h ггаКР

где

й=-^—, а=-&—, KD =—-.

п п п

Примените это начальное значение в задаче из примера 11.2.3.

11.3. ДИНАМИЧЕСКИЕ ЗАДАЧИ ЭКОНОМИЧНОГО РАЗМЕРА ЗАКАЗА

Рассматриваемые здесь модели отличаются от представленных в разделе 11.2. Во-первых, уровень запаса контролируется периодически на протяжении конечно­го числа одинаковых периодов. Во-вторых, объем спроса на протяжении периода хотя и является детерминированным, но в то же время он динамический, посколь­ку может периодически меняться.

Ситуация, в которой имеет место переменный детерминированный спрос, называет­ся планированием потребностей ресурсов. Подход к решению такой задачи рассмот­рим на примере. Предположим, что на протяжении следующего года квартальный спрос на модели Ml и М2 некоторой продукции равен 100 и 150 единиц соответственно. Поставки квартальных партий реализуются в конце каждого квартала. Срок выпол­нения заказа на модели Ml и М2 равен 2 месяца и 1 месяц соответственно. Для изго­товления каждой единицы модели Ml и М2 используется 2 единицы комплектую­щих деталей S. Срок изготовления комплектующих равен одному месяцу.

На рис. 11.7 схематически представлено календарное планирование производства моделей Ml и М2. Построение плана начинается с отображения в виде сплошных стрелок квартального спроса на две модели, который имеет место в конце 3-, 6-, 9-и 12-го месяцев. Затем при известных квартальных сроках пунктирные стрелки ука­зывают начало производства каждой партии продукции Ml и М2 в 1-й и 2-й месяцы.

Чтобы вовремя начать производство партий двух рассматриваемых моделей, по­ставка комплектующих S должна совпадать с началом производства Ml и М2, т.е. с пунктирными стрелками в планах их производства. Эта информация представле­на сплошными стрелками на S-схеме, где учитывается, что спрос на комплектую­щие S равен 2 единицам на каждую единицу продукции Ml и М2. Если учесть, что срок изготовления комплектующих равен одному месяцу, пунктирные стрелки на S-схеме определяют план производства комплектующих. Исходя из указанных двух планов, можно определить соответствующий суммарный спрос на S, как это показано в нижней части рис. 11.7. Результирующий переменный (но известный) спрос на комплектующие S представляет собой типичную ситуацию, когда приме­няются динамические модели экономичного размера заказа. При указанном пере­менном спросе на комплектующие S задача, по существу, сводится к определению

11.3. Динамические задачи экономичного размера заказа

объемов производства в начале каждого месяца для уменьшения затрат, связанных с производством и хранением продукции.

В этом разделе представлены две модели. В первой не учитывается стоимость размещения заказа, а вторая модель учитывает такие затраты. Эта "маленькая" деталь порождает соответствующие отличия в сложности моделей.

Модель 1

1 2 3 4 5 6 7 8 9 10 11 12 Ч—I—I—I—I—I—I—I—I—I—I—I

Модель 2

0 123456789 10 11 12 I—I—I—I—I—I—I—I—I—I—I—I—I

200 300 200 300 200 300 200 300 Комбинированные требования i i i i i i ■ i на комплектующие S для —f—I—J—X—|——f—|—J—t—|—| изделий 1и2 0 123456789 10 11 12

Рис. 11.7. Календарное планирование производства двух моделей

УПРАЖНЕНИЕ 11.3.1

1. Определите суммарные потребности в комплектующих S в соответствии с рис. 11.7 в каждом из следующих случаев.

a) Поставка продукции Ml осуществляется каждый квартал.

b) Поставка продукции Ml осуществляется раз в три квартала.

11.3.1. Модель при отсутствии затрат на оформление заказа

В этой модели рассматривается задача календарного планирования производст­ва, рассчитанная на п равных периодов. Возможные объемы производства в каж­дый из периодов ограничены, однако они могут включать несколько уровней (например, два возможных объема производства могут определяться обычным ре­жимом работы и сверхурочными работами соответственно). На протяжении теку­щего периода могут производиться изделия для последующих периодов, но в этом случае должны учитываться затраты на их хранение.

Основные предположения модели состоят в следующем.

1. Отсутствие затрат на оформление заказа в любой период планирования.

2. Отсутствие (недопустимость) дефицита.

Глава 11. Детерминированные модели управления запасами

3. Стоимость производства единицы продукции в любой период либо является постоянной, либо имеет возрастающие предельные затраты (т.е. соответст­вующая функция затрат является выпуклой).

4. Стоимость хранения единицы продукции в каждый период является посто­янной величиной.

Предположение об отсутствии дефицита означает, что спрос на продукцию на протяжении текущего периода не может быть удовлетворен за счет ее производства в последующие периоды. Это предположение по крайней мере требует, чтобы сум­марные возможности производства за периоды 1, 2, i были равны суммарному спросу на продукцию за это же время.

На рис. 11.8 показано, когда производственные затраты на единицу продукции возрастают с увеличением уровня производства. Например, при двух возможных объемах производства, которые определяются обычным режимом работы и сверх­урочными работами, стоимость производства единицы продукции, производимой в сверхурочное время, выше, чем при обычном режиме работы.

Затраты

О Объем производства

Рис. 11.8. Выпуклая функция затрат

Рассматриваемую задачу п-этапного планирования можно сформулировать в виде транспортной задачи (см. главу 5) с kn пунктами производства и п потреби­телями, где k — количество возможных уровней производства на протяжении пе­риода (например, если на протяжении каждого периода используется регулярный и сверхурочный режимы работы, то k = 2). Производственные возможности каждо­го из kn пунктов производства определяют объемы поставок. Объемы потребления определяются объемом спроса для каждого периода. Себестоимость "перевозки" от пункта производства до пункта назначения определяется суммой затрат исполь­зуемого производственного процесса и стоимости хранения единицы продукции. Оптимальное решение такой транспортной задачи определит объемы производства продукции для каждого производственного уровня, которые минимизируют сум­марные затраты на производство и хранение.

Эту задачу можно решить без использования метода решения транспортных за­дач, представленного в главе 5. Обоснованность нового метода решения, показан­ного далее, следует из упомянутых предположений об отсутствии дефицита и вы­пуклости функции затрат на производство.

11.3. Динамические задачи экономичного размера заказа

Пример 11.3.1

Компания производит специальные вытяжки, которые используются в домашних каминах в период с декабря по март. В начале отопительного сезона спрос на эту продукцию низкий, в середине сезона он достигает своего пика и уменьшается к концу сезона. Учитывая популярность продукции, компания может использо­вать сверхурочные работы для удовлетворения спроса на свою продукцию. Сле­дующая таблица содержит данные о производственных мощностях компании и объемах спроса на протяжении четырех месяцев.

Возможности производства

Месяц Обычный режим работы (единицы) Сверхурочные (единицы) Спрос (единицы)

Стоимость производства единицы продукции равна 6 долл. в условиях обычного режима работы и 9 долл. при сверхурочных работах. Стоимость хранения единицы продукции на протяжении месяца равна 0,10 долл.

Чтобы гарантировать допустимое решение при отсутствии дефицита, требуется, чтобы суммарное предложение продукции (возможности производства) к началу каждого месяца по меньшей мере равнялось суммарному спросу. Об этом свиде­тельствует следующая таблица.

Месяц Суммарное предложение Суммарный спрос
90 + 50 = 140
140 + 100 + 60 = 300 100 + 190 = 290
300 + 120 + 80 = 500 290 + 210 = 500
500 + 110 + 70 = 680 500 + 160 = 660

В табл. 11.1 содержатся данные, относящиеся к рассматриваемой задаче, и ее ре­шение. Здесь Rt и О, соответствуют уровням производства в обычном и сверхуроч­ном режиме работы на протяжении периода i, i = l, 2, 3,4. Так как суммарное предложение в четвертом периоде превышает суммарный спрос, то введен искусст­венный пункт потребления (избыток), чтобы сбалансировать модель (это показано в табл. 11.1). Все "транспортные" маршруты из предыдущего в текущий период за­блокированы, так как дефицит отсутствует.

Себестоимости "перевозок" продукции вычисляются в виде суммы затрат на про­изводство и хранение. Например, соответствующая себестоимость от Я, до первого периода равна лишь стоимости изготовления в 6 долл., себестоимость от О, до чет­вертого периода — стоимости изготовления плюс стоимость хранения от первого периода до четвертого, т.е. 9 + (0,1 + 0,1 + 0,1) = 9,30 долл. Наконец, себестоимость перевозки до искусственного пункта потребления (избыток) равна нулю.

Оптимальное решение получается в один проход, начиная с первого столбца в на­правлении к столбцу "Избыток". Для каждого перспективного столбца спрос удов­летворяется с использованием самого дешевого маршрута4.

4 Доказательство оптимальности этой процедуры приведено в работе Johnson S.M. "Sequential Production Planning over Time at Minimum Cost", Management Science, Vol.3,1957, pp. 435-437.

490 Глава 11. Детерминированные модели управления запасами

Таблица 11.1

        Избыток  
      6,1   6,2   6,3    
я,                
      9,1   9,2   9,3    
о,             50->40->10
        6,1   6,2    
Я2                
        9,1   9,2    
Ог                
            6,1    
Яз                
            9,1    
Оз                
                 
Я,                
                 
о4               70->20
  ! ! !   ! !   !      

Начиная с первого столбца маршрут (Л,, 1) имеет самую дешевую себестоимость пе­ревозки, и мы назначаем перевозку максимально возможного объема, а именно min(90, 100) = 90 единиц, что оставляет 10 единиц неудовлетворенного спроса в первом столбце. Далее переходим к следующему по себестоимости маршруту (О,, 1) первого столбца и определяем перевозку min(50, 10) = 10 единиц, что теперь полностью удовлетворяет спрос для первого периода.

После удовлетворения спроса для первого периода мы переходим ко второму столбцу. Определение перевозок в этом столбце происходит следующим образом: 100 единиц по маршруту (R2, 2), 60 единиц по маршруту (02, 2) и 30 единиц по маршруту (О,, 2). Этим маршрутам соответствуют себестоимости "перевозок" в 6, 9 и 9,10 долл. При этом маршрут (R,, 2), транспортные расходы на единицу продук­ции для которого равны 6,10 долл., не рассматривается, так как весь запас R, был израсходован для первого периода.

Продолжая аналогичным образом, мы удовлетворяем спрос для третьего, а затем и четвертого столбцов. Оптимальное решение, выделенное жирным шрифтом в табл. 11.1, интерпретируется следующим образом.

11.3. Динамические задачи экономичного размера заказа

Период

Производство

Период 1 (обычный режим работы) Период 1 (сверхурочный режим работы)

Период 2 (обычный режим работы) Период 2 (сверхурочный режим работы) Период 3 (обычный режим работы) Период 3 (сверхурочный режим работы) Период 4 (обычный режим работы) Период 4 (сверхурочный режим работы)

Изготовить 90 единиц продукции для первого периода

Изготовить 40 единиц продукции: 10 для периода 1, 30 для периода 2 и 10 для периода 3

Изготовить 100 единиц продукции для второго периода

Изготовить 60 единиц продукции для периода 2

Изготовить 120 единиц продукции для третьего периода

Изготовить 80 единиц продукции для периода 3

Изготовить 110 единиц продукции для четвертого периода

Изготовить 50 единиц продукции для периода 4; осталась неиспользованной производственная мощность на 20 единиц продукции

Соответствующие суммарные затраты при этом равны

90 х 6 + 10 х 9 + 30 х 9,10 + 100 х 6 + 60 х 9 + 10 х 9,20 + + 120x6 + 80x9 + 110x6 + 50x9 = 4685 долл.

УПРАЖНЕНИЯ 11.3.2

1. Решите задачу из примера 11.3.1, предполагая, что стоимости производст­ва и хранения единицы продукции имеют значения, приведенные в сле­дующей таблице.

Период /' Стоимость единицы продукции при обычном режиме работы (долл.) Стоимость единицы продукции при сверхурочном режиме (долл.) Стоимость хранения единицы продукции до периода /' + 1
5,00 7,50 0,10
3,00 4,50 0,15
4,00 6,00 0,12
1,00 1,50 0,20

2. Изделие производится для удовлетворения заданного спроса на четырех вре­менных этапах в соответствии со следующими данными.

Удельные производственные затраты на этапах Диапазон объема производства _(долл.)_

(единицы)
1-3
4-11
12-15
16-25
Затраты на хранение одного изделия до следующего этапа (долл.) 0,30 0,35 0,20 0,25
Суммарный спрос (единицы)

Г лава 11. Детерминированные модели управления запасами

a) Найдите оптимальное решение, определяющее количество изделий, кото­рые необходимо изготовить на каждом из четырех этапов.

b) Предположим, что на этапе 4 требуется 10 дополнительных изделий. На каких этапах следует их изготовить?

3. В течение последующих пяти этапов спрос на некоторое изделие можно удовлетворить при обычном режиме работы, сверхурочных работах и суб­подряде. Субподряды можно использовать лишь при недостатке возможно­стей сверхурочных работ. Данные о производственных мощностях и объемах спроса приведены в следующей таблице.

Производственные мощности (единицы)

Этап Обычный режим работы Сверхурочные работы Субподряд Спрос

Предполагается, что затраты на производство единицы продукции на всех этапах одинаковы и составляют 4, 6 и 7 долл. при обычном режиме работы, сверхурочных работах и субподряде соответственно. Затраты на хранение единицы продукции на каждом этапе равны 0,50 долл. Требуется найти оп­тимальное решение.

11.3.2. Модель с затратами на оформление заказа

В рассматриваемой модели предполагается, что дефицит не допускается и за­траты на оформление заказа учитываются всякий раз, когда начинается производ­ство новой партии продукции. Здесь будут рассмотрены два метода решения этой задачи: точный метод динамического программирования и эвристический.

Данная задача управления запасами схематически представлена на рис. 11.9. На этом рисунке использованы обозначения следующих величин, определенных для каждого этапа i, i = 1, 2.....п.

2, — количество заказанной продукции (объем заказа),

D, — потребность в продукции (спрос),

х, — объем запаса на начало этапа L

i+i

D.

*»+1

Рис. 11.9. Схема управления запасами с затратами на оформление заказа

Стоимостные элементы в рассматриваемой задаче определяются так: Kt — затраты на оформление заказа,

ht — затраты на хранение единицы продукции, переходящей из этапа i в этап i +1.

11.3. Динамические задачи экономичного размера заказа

Соответствующая функция производственных затрат для этапа I задается формулой

где с[г) — функция предельных производственных затрат при заданном значении zt.

Алгоритм динамического программирования с общей функцией стоимости. По­скольку дефицит не допускается, задача управления запасами сводится к вычисле­нию значений zt, минимизирующих суммарные затраты, связанные с размещением заказов, закупкой и хранением продукции на протяжении п этапов. Затраты на хра­нение на £-м этапе для простоты предполагаются пропорциональными величине

которая представляет собой объем запаса, переходящего из этапа i в этап i + 1.

Для рекуррентного уравнения процедуры прямой прогонки состояние на этапе (пе­риоде) i определяется как объем запаса хм на конец этапа, где, как следует из рис. 11.9,

Это неравенство означает, что в предельном случае запас xj+l может удовлетворить спрос на всех последующих этапах.

Пусть /"|(х1+]) — минимальные общие затраты на этапах 1,2, i при заданной величине запаса xi+t на конец этапа i. Тогда рекуррентное уравнение алгоритма прямой прогонки будет записано следующим образом.

Требуется найти оптимальную стратегию в трехэтапной системе управления запа­сами, которая формулируется ниже. Начальный запас равен х1 = 1 единице про­дукции. Предполагается, что предельные затраты на приобретение продукции со­ставляют 10 долл. за каждую единицу для первых трех единиц и 20 долл. — за каждую дополнительную единицу.

Период/ Спрос, D; (единицы) Затраты на оформление заказа, К,(долл.) Затраты на хранение, Л, (долл.) 13 3 1

2 2 7 3

3 4 6 2

Функция производственных затрат для периода i равна Ct(z) = Kl + ct(z) для zt > 0, где

= Х, + 2, ~ А

0 <*,+1+1 + ...+£>„.

Пример 11.3.2

494 Глава 11. Детерминированные модели управления запасами

Этап 1. D, = 3, 0 < я2 < 2 + 4 = 6.

Ci(zi) + Л1*2 Оптимальное

 

 

Хг hx2 z, =2 решение
C,(z,) = 23  
            23 2
            34 3
            55 4
            76 5
            97 6
            118 7
            139 8

Так как я, = 1, минимальное значение z, равно D, - хг = 3 - 1 = 2.

Этап 2. Д, = 2, 0 < я, < 4.

_C2(z2) + h2x3 + f 1 (хЗ + D2 - z2)_Оптимальное

Z2 = 0 1 2 3 4 5 6 решение

хЗ h2x3 C2(z2) = 0 17 27 37 57 77 97 f2(x3) z"

0 + 55 = 55 17 + 34 = 51 27 + 23 = 50      
3 + 76 = 79 20 + 55 = 75 30 + 34 = 64 40 + 23 = 63    
6 + 97 = 103 23 + 76 = 99 33 + 55 = 88 43 + 34 = 77 63 + 23 = 86  
9 + 118 = 127 26 + 97 = 123 36 + 76 = 112 46 + 55 = 101 66 + 34 = 100 86 + 23 = 109
12 + 139 = 151 29 + 118 = 147 39 + 97 = 136 49 + 76 = 125 69 + 55 = 124 89 + 34= 109 + 23 123 =132

ЭтапЗ. D, = 4, я4 = 0.

  Сз(гз) + л3х4 + f2(Xi + D3-Z3)   Оптимальное
  гз = 0 1 2 3 решение
*4 л3л4 Сз(гз) = 0 16 26 36 z
0 0 0 + 123= 123 16 + 100 = 116 26 + 77 = 103 36 + 63 = 99 56 + 50 = 106 99 3

Оптимальное решение определяется следующим образом:

4 = 0) -> [23 = 3] -> (я4 = 0 + 4 - 3 = 1) -> [г2 = 3] -> (я2 = 1 + 2 - 3 = 0) -> [z, = 3]. Отсюда получаем решение-. ^ =2, гг = Ъ тл ц=Ъ, при этом общие затраты состав­ляют 99 долл.

11.3. Динамические задачи экономичного размера заказа

Решение задачи динамического программирования с общей функцией стоимо­сти в Excel. Шаблон Excel chllDynamicInventory.xls создан для решения общих за­дач управления запасами с произвольной функцией стоимости. Этот шаблон похож на шаблон chlOKanpsack.xls, описанный в разделе 10.3.1. В частности, шаблон chllDynamicInventory.xls выполняет вычисления только для одного периода и для вычислений следующего периода пользователь должен произвести некоторые под­готовительные операции.

На рис. 11.10 показано применение описываемого шаблона для решения задачи примера 11.3.2. Исходные данные надо вводить для каждого периода в отдельности (после вычислений очередного периода). Эти данные следует вводить в выделенные цветом ячейки. Коэффициенты функции затрат с,(г,) вводятся в строке 3: G3 = 10, НЗ = 20, 13 = 3. Это означает, что удельные затраты для первых трех единиц про­дукции составляют 10 долл., а для последующих — 20 долл. Отметим, что из зна­чения D, необходимо вычесть значение начального запаса (= 3 - х1 = 3 - 1 =2), эта разность вводится в ячейку С5. Также необходимо вручную ввести возможные зна­чения переменной 2,. Шаблон автоматически проверит правильность этих значений и выведет соответствующие сообщения в строке 6.

После ввода всех данных, необходимых для вычислений первого периода, рабочий лист пересчитывается автоматически, показывая оптимальные значения f , и 2, в столб­цах S и Т. Далее следует полученное решение (xv ft, z) переписать в область итоговых оптимальных решений в столбцах U:Z. Для этого, скопировав нужные данные и выде­лив диапазон ячеек, куда будут перенесены эти данные, надо выполнить команду Правка^Специальная вставка^Значения — по этой команде будут скопированы только значения (без формул), по которым они вычислены. (Более подробно эта операция пред­ставлена в разделе 10.3.1 при описании работы с шаблоном chlOKanpsack.xls.)

Далее для выполнения вычислений следующего периода надо скопировать зна­чения ft в столбец А, как показано на рис. 11.10, и ввести в ячейку Н2 номер оче­редного периода.

УПРАЖНЕНИЯ 11.3.3

1. Вернитесь к задаче из примера 11.3.2.

a) Имеет ли смысл рассматривать значение xt > 0?

b) Для каждого из следующих случаев определите допустимые интервалы значений для 2,, гг, гъ, х,, хг и х3. (Полезно представить каждый случай графически, как на рис. 11.9.)

i) xl = 4, остальные исходные данные не меняются,

ii) xl = 0, Dl = 5, D2 = 4 и D3 = 5.

2. Найдите оптимальное решение следующей четырехэтапной задачи управле­ния запасами.

Период / Спрос, Di (единицы) Затраты на оформление заказа, К/ (долл.) Затраты на хранение, hi (долл.)

Глава 11. Детерминированные модели управления запасами

Период 1

в C D E F G H I J К IS'T U V W X  
beiieral (Forward) D. iismic P oqrjmming Inventory Model            
Number of periods, N Current period-         Optimum solution
K1- 3 | h1- dill)-       Summary
Period 1 2               X f z X f z
£ D(1 to 3)= 2 I 2               Период 1    
An zl values correct?             шЩ Optimum □ 23 2    
Period 0 z1- Б Penodl 1 34 3    
fO C1(z1)= fl z1 2 55 4    
  x2= 0 23 2 3 76 5    
  x2= 1 34 3 4 97 Б    
  x2= 2 55 4 5 '118 7    
J2   x2= 3 76 5 6 139 8    
    x2= 4 97 Б      
  x2= 5 118 7      
  x2= E 139 8      
                       

Период 2

 

  в C D E F G H 1 к 1 % T IJ I V W X  
' 1 General (Forward) Dynamic Programming Inventory Model            
Number of periods, N= Current period^         Optimum solution
J_K!z M= ^1(z1)       Summarv
Period I 1               X f z X f z
I D(1 to 3)=               Пеои! ц 1 Период 2
Б ,Are zl vafuet romcff yei       ies e es Optimum 0 23 2 50 2
1 Period 1 z2- e Period2 1 34 3 63 3
~8 I 11 C2(z2)= f2 z2 2 55 4 77 3
x3= 50 2 3 76 5 100 4
  x3= Б4 63 3 4 97 Б 123 5
  x3= 77 3 5 118 7    
  x3= 100 4 Б 139 8  
  x3= 123 5    
                         
15                          
                           

Период 3

  в С D   F G ' H   ! is т U ' W Ix  
General (Forward) Dynamic Programming Inventory Model        
Number of periods, N Current period     Optimum solution
K1- Б | Ы tf(zlH 10     Summary
Period 1 2           X f z X f z
I D(1 to 3)- 2 I ? 4 | I_           Период 1 Период 2
Б Are zl value* correct? It >•(   >es     Optimum 0 23 2 50 2
Period 2 z3=     ' Penod3 1 34 3 63 3
f2 C3(z3)=     f3 z3 2 55 4 77 3
j x4= 0 11Б     99 3 3 76 5 100 4
i БЗ                   4 97 Б 123 5
                    5 118 7 Период 3
Ц                   6 139 8 99 3
                    1 i    
if                          

Puc. 11.10. Решение e Excel задачи примера 11.3.2

Затраты на приобретение первых шести единиц продукции составляют 1 долл. за каждую единицу и 2 долл. за каждую дополнительную единицу.

Проверьте вычисления, выполненные вручную, с помощью шаблона ch 11 Dy namicln ven tory. xls.

11.3. Динамические задачи экономичного размера заказа

3. Пусть стоимость хранения запаса определяется средним его объемом на про­тяжении периода. Получите соответствующее рекуррентное уравнение для алгоритма прямой прогонки.

4. Получите рекуррентное уравнение для алгоритма обратной прогонки и с его помощью решите задачу из примера 11.3.2.

5. Получите рекуррентное уравнение для алгоритма обратной прогонки, пред­полагая, что стоимость хранения запаса определяется средним его объемом на протяжении периода.

Алгоритм динамического программирования для задачи с постоянными или невозрастающими предельными затратами. Рассмотренную выше модель дина­мического программирования можно использовать при любых функциях затрат. Важным частным случаем этой модели является такая модель, в которой на эта­пе i как стоимость закупки единицы продукции, так и затраты на ее хранение — невозрастающие (вогнутые) функции объема закупаемой и хранимой продукции соответственно. Такая же ситуация возникает, когда функция стоимости, отне­сенная к единице продукции, является постоянной или когда предоставляется оптовая скидка.

При указанных выше условиях можно доказать следующее.5

1. При заданном начальном нулевом уровне запаса (д:, = 0) для любого этапа I оптимальной стратегией является удовлетворение спроса за счет либо новой закупленной продукции, либо запаса, но не обоих источников, т.е. г1х1 = 0. (При положительном начальном уровне запаса (д^ > 0) этот объем может быть списан из спроса последующих этапов, пока он не исчерпается.)

2. Оптимальный объем заказа zt на любом этапе i должен либо равняться нулю, либо в точности соответствовать спросу одного или более последующих этапов.

Использование указанных двух свойств с рекуррентным уравнением для алго­ритма прямой прогонки динамического программирования позволяет упростить схему вычислений.

Пример 11.3.3

Рассмотрим четырехэтапную модель управления запасами при следующих исход­ных данных.

Период /' Спрос, D, (единицы) Затраты на оформление заказа, К, (долл.)

1 76 98

2 26 114

3 90 185

4 67 70

5 Подробное доказательство изложено в работе Wagner Н. and Whitin Т. "Dynamic Version of the Economic Lot Size Model", Management Science, Vol. 5, 1958, pp. 89-96. Доказательство полу­чено при ограничивающем предположении, что затраты на единицу продукции постоянны и идентичны на всех этапах. Этот результат в дальнейшем был обобщен А. Вейноттом (A. Veinott) из Стэнфордского университета для вогнутых функций затрат, имеющих место на каждом этапе.

Глава 11. Детерминированные модели управления запасами

Начальный уровень запаса равен хх = 15 единиц. Затраты на закупку единицы про­дукции и ее хранение в течение одного периода для всех этапов одинаковы и состав­ляют 2 и 1 долл. соответственно. (Затраты на закупку и хранение единицы продук­ции приняты одинаковыми для всех этапов исключительно в целях упрощения.)

Решение определяется обычным алгоритмом прямой прогонки, за исключением того, что величины хм и 2, допускают "общие" платежи, как это следует из свойств функции затрат. Так как начальный запас х1 = 15, спрос на первом этапе уменьша­ется на эту величину и составляет 76 - 15 = 61 единицу.

Этап 1.D, = 61.

Ci(zi) + л1х2 Оптимальное

  Z, =61 87 177     решение
х2 л,х2 C,(z,) = 220 272 452     <
0 0         220 61
26 26         298 87
116 116         568 177
183 183         769 244
Заказ на этапе 1 для этапов 1,2 1,2,3   1, 2, 3, 4    
Этап 2. D2 = 26.
    Сг{2г) + Л2Х3 + Шз + Ог - ■а)   Оптимальное
  Z2 = 0   решение
Хз Л2Х3 Сг(2г) = 0   Ш z
0 0 0 + 298 = 298 166 + 220 = 386       298 0
90 90 90 + 568 = 658 436 + 220 = 656   656 116
157 157 157 + 769 = 926     637 + 220 = = 857 857 183
Заказ на этапе 2 для этапов 2,3   2, 3, 4  
Этап 3. £»3 = 90.
  С3(2з) + Л3Х4 + fe(x4 + Оз       Оптимальное
  2з = 0     решение
Хл Л3Х4 Сз(2з) = 0     Н(хл) г;
0 0 0 + 656 = 656 365 + 298 = 663       656 0
67 67 67 + 857 = 924   566 + 298 = 864   864 157
Заказ на этапе 3 для этапов   3, 4    

11.3. Динамические задачи экономичного размера заказа 499 Этап 4. Dt = 67.

  C4(z4) + л4х5 + /з(х5 + DA - 24) Оптимальное
  z4 = 0 решение
Xs л4х5 C4(z4) = 0 *4(Х5) z
0 0 0 + 864 = 864 204 + 656 = 860 860 67
Заказ на этапе 4 для этапов  

Оптимальная стратегия на основе приведенных таблиц определяется следующим образом.

6 = 0) [z4 = 67] (х4 = О) [z8 = О] -* (х8 = 90) -»[z2 = 116] (х2 = 0) [z, = 61]. Отсюда получаем решение: z =61, z = 116, zj = 0 и =67 при суммарных за­тратах 860 долл.

Решение в Excel задачи управления запасами с постоянными или невозрас-тающими предельными затратами. Шаблон Excel chllWagnerWhitin.xls, предна­значенный для решения этих задач, подобен шаблону chllDynamicInventory.xls, описанному выше. Различие между ними заключается только в том, что в шаблоне chllWagnerWhitin.xls используются общие платежи для состояний х и альтерна­тивных значений г. Для упрощения расчетов оптовые скидки не допускаются. На рис. 11.11 показаны вычисления первого периода для задачи из примера 11.3.3. Шаблон ограничен максимум 10 периодами.

Wagner-Whitin (Forward) Dynamic Programming Inventory Model

УПРАЖНЕНИЯ 11.3.4 1. С помощью шаблона chllWagnerWhitin.xls решите задачу из примера 11.3.3,… 2. Решите следующую 10-этапную детерминированную задачу управления за­пасами, предполагая, что исходный запас — 50…

Silver-Meal Heuristic Inventory Model

Рис. 11.12. Решение в Excel задачи из примера 11.3.4 Глава 11. Детерминированные модели управления запасами с четвертого периода. Поэтому, пропустив пустую строку от ранее вычисленных значений, вводим значение 4 в ячейку F18.…

ЛНР-Analytic Hierarchy Process

N О Input: Comparison matrix

Solution summary

Final ranking

Рис. 14.3. Решение в Excel задачи примера 14.1.2 Из-за ошибок округления результаты, полученные в Excel, немного отличаются от… 14.1. Принятие решений в условиях определенности — метод анализа иерархий

Повышение котировок (0,6)

Инвестиции в компанию В Повышение котировок (0,6) Понижение котировок (0,4) Рис. 14.4. Дерево решений для задачи инвестирования

Инвестиции в А

Мнение "за" (v,)

Инвестиции в В

Повышение котировок (т^) P{mxvx} =0.730

Понижение котировок (т2)

/Чт>]} =0.270 Повышение котировок (т,) />{m,|v,} = 0.730

Инвестиции в А

Повышение котировок (mj) P{w1|v2} =0.231 Понижение котировок (т2) P{m2v2} = 0.769 Повышение котировок (т{) Р{т^2) =0.231

Инвестиции в В

-$2000 $1500 $500 $5000 -$2000 $1500

Х-

(Ь-а)(с-а) 2(с-х)

(с-Ь){с-аУ

а<х<Ь, Ь<х<с.

Ь) Получите три значения, соответствующие треугольному распределению с параметрами (1, 3, 7), используя для этого три первых случайных числа первого столбца табл. 18.1.

8. Разработайте процедуру получения случайных значений, подчиняющихся распределению, плотность вероятности которого состоит из прямоугольника, граничащего слева и справа с двумя прямоугольными треугольниками (вертикальными катетами этих треугольников являются стороны прямо­угольника). Соответствующие основания левого треугольника, прямоуголь­ника и треугольника справа равны [а, Ь], [Ь, с] и [с, d], а < b < с < d. Каждый треугольник имеет высоту, равную высоте прямоугольника.

Определите пять случайных значений, которые соответствуют описанному выше распределению с набором параметров (а, Ь, с, d) = (1, 2, 4, 6), используя при этом пять первых случайных чисел из первого столбца табл. 18.1.

9. Геометрическое распределение. Покажите, как можно получить случайное значение, подчиняющееся геометрическому распределению

f(x)=p(l-p)', * = 0,1,2,...,

где х — число неудач в схеме Бернулли до первого появления успеха, р — веро­ятность успеха, 0 <р < 1. Сгенерируйте пять случайных значений прир = 0,6.

10. Распределение Вейбулла? Покажите, как можно получить случайное значе­ние, подчиняющееся распределению Вейбулла, плотность вероятности кото­рого имеет вид

f(x) = a$-axa-le Ы , х>0, где а> 0 — параметр формы, /?> 0 — параметр масштаба.

Метод сверток. Основная идея данного метода состоит в том, чтобы выразить искомую случайную величину в виде суммы других случайных величин, для кото­рых легко получить реализации случайных значений2. Типичными среди таких распределений являются распределения Эрланга и Пуассона, которые можно полу­чить из экспоненциального распределения.

1 В русской математической литературе это распределение также имеет название "распределение Вейбулла-Гнеденко". — Прим. ред.

2 Функцию распределения суммы случайных величин можно выразить через функции рас­пределения слагаемых в виде так называемого интеграла свертки, а операцию суммирования слу­чайных величин иногда называют операцией свертки. Отсюда идет название метода. — Прим. ред.

Глава 18. Имитационное моделирование

Пример 18.3.3. Распределение Эрланга

Случайная величина, имеющая распределение Эрланга с параметром т (т — целое число), определяется как сумма (свертка) т независимых случайных величин, каж­дая из которых имеет экспоненциальное распределение с параметром Л. Пусть у — случайная величина, подчиняющаяся распределению Эрланга с параметром т. Тогда

У = У1+У2+ — +Ут,

где у,- (/ = 1, 2, т) — независимые экспоненциально распределенные случайные величины, плотность вероятности которых задается формулой

/(у,) = ^ у, >0, 1 = 1,2, ...,т.

Как следует из примера 18.3.2, случайное значение, имеющее (/-е) экспоненциаль­ное распределение, вычисляется по формуле

y,.=-Q-jln(/?,), / = 1,2, ....т.

Следовательно, значение случайной величины Эрланга с параметром т можно вы­числить как

y = -^j[ln(/?J + b(/?2) + ... + ln(/?j] = -^jln(/?1/?2.../?,„).

В качестве иллюстрации применения этой формулы предположим, что т = 3 и Л = 4 события в час. Первые три случайных числа из первого столбца табл. 18.1 дают та­кой результат: RiR2R3 = 0,0589 х 0,6733 х 0,4799 = 0,0190, что в свою очередь при­водит к значениюу = -(1/4)1п(0,019) = 0,991 часа.

Пример 18.3.4. Распределение Пуассона

Если время между некоторыми событиями представляет собой случайную величину, распределенную по экспоненциальному закону, то распределение числа событий, про­исходящих в единицу времени, будет пуассоновским, и наоборот. Этот факт использу­ется для получения случайных значений, подчиняющихся распределению Пуассона.

Пусть для рассматриваемого распределения Пуассона среднее количество событий в единицу времени равно Л. Тогда время между событиями является случайной ве­личиной, имеющей экспоненциальное распределение со средним, равным 1/Л еди­ниц времени. Это означает, что на протяжении t единиц времени будет иметь место п событий (число п подчиняется распределению Пуассона) тогда и только тогда, когда

время до реализации события п < t < время до реализации события п + 1.

Это условие можно записать следующим образом:

f, + г2 + ... + г„ < t < г, + h + ... + tn+i, п > 0,

0 < г <г,, л = 0,

где t, — случайная величина, подчиняющаяся экспоненциальному распределению со средним 1/Л. Принимая во внимание результат примера 18.3.3, имеем

-fl]ln(/?,/?2.../?„)< /<-fi]ln(/?,/?2.../?„+,), п>0,

18.3. Элементы дискретного моделирования

0<г<~

я = 0.

Отсюда получаем

Л1Лг...Л„>е"1'>Л1Л2...Л,

п>0,

l>e-iJ>Rv /1 = 0.

Проиллюстрируем описанный подход на следующем примере. Пусть необходимо получить случайное значение, соответствующее распределению Пуассона со сред­ней частотой Л=4 события в час, при f = 0,5 часа. Это нам дает е'м = 0,1353. Ис­пользуя случайные числа первого столбца табл.18 1, замечаем, что Л, = 0,0589 меньше ем = 0,1353. Следовательно, /1 = 0.

Пример 18.3.5. Нормальное распределение

Центральная предельная теорема (см. раздел 12.4.4) утверждает, что сумма я оди­наково распределенных случайных величин стремится к нормально распределен­ной величине при бесконечном увеличении п. Мы используем этот результат для получения значений, соответствующих нормальному распределению с математиче­ским ожиданием ju и стандартным отклонением а.

Обозначим х = Л, + Л2 + ... + Д„, где Л1? Л2, Л„ — случайные числа, равномерно распределенные в интервале [0, 1]. В соответствии с центральной предельной тео­ремой случайная величина х является асимптотически нормальной величиной со средним л/2 и дисперсией я/12. Следовательно, случайная величина у, подчиняю­щаяся нормальному распределению N(ju, о) с математическим ожиданием ju и стан­дартным отклонением а, может быть получена из случайной величины х по формуле

Для удобства в практических задачах я обычно выбирается равным 12, что приво­дит предыдущую формулу к виду у = + ot* - 6).

Для демонстрации этого метода предположим, что необходимо получить случайное значение, соответствующее нормальному распределению N(10, 2) (математическое ожидание ц = 10 и стандартное отклонение сг= 2). Вычисляя сумму первых 12 слу­чайных чисел из первого и второго столбцов табл. 18.1, получаем х = 6,1094. Сле­довательно, у = 10 + 2(6,1094 - 6) = 10,2188.

Неудобство этой процедуры состоит в том, что необходимо генерировать 12 случай­ных чисел из интервала [0,1] для получения одного выборочного значения, соответ­ствующего рассматриваемому нормальному распределению, что делает ее малоэф­фективной с вычислительной точки зрения. В соответствии с более эффективной процедурой решения этой же задачи необходимо использовать преобразование

х

п

Глава 18. Имитационное моделирование

Бокс и Мюллер (Box and Muller) [1] доказали, что случайная величина х является стандартной нормально распределенной случайной величиной, т.е. имеет распре­деление N(0, 1). Следовательно, у = //+■ ах дает значение, подчиняющееся нормаль­ному распределению N(p., а). Эта процедура является более эффективной, так как требует генерирования всего двух случайных чисел из интервала [0, 1].

В действительности данный метод (метод Бокса-Мюллера) является еще более эф­фективным, так как Бокс и Мюллер доказали, что предыдущая формула дает дру­гое значение, также имеющее нормальное распределение N(0, 1), если cos(2/rf?2) за­менить на sin(2^/?2). Это значит, что два случайных числа R1 и R2 из интервала [0,1] можно использовать для одновременного получения двух значений, соответствую­щих нормальному распределению N(0, I).3

В качестве иллюстрации применим метод Бокса-Мюллера для нахождения значе­ний, подчиняющихся нормальному распределению N(10, 2). Два первых случай­ных числа первого столбца табл. 18.1 приводят к следующим значениям, подчи­няющимся нормальному распределению N(0, 1):

Следовательно, соответствующие значения, имеющие нормальное распределение N(10, 2), равны

УПРАЖНЕНИЯ 18.3.34

1. В задаче примера 18.3.3 вычислите случайное значение, соответствующее распределению Эрланга при т = 4 и X = 5.

2. В задаче примера 18.3.4 сгенерируйте три случайных значения, соответст­вующих распределению Пуассона для одночасового периода при математиче­ском ожидании 5 событий в час.

3. В задаче примера 18.3.5 сгенерируйте два случайных значения, соответст­вующих нормальному распределению N(8, 1), используя как метод сверток, так и метод Бокса-Мюллера.

4. Работы поступают в металлообрабатывающий цех в соответствии с распреде­лением Пуассона с математическим ожиданием шесть работ в день. Цех име­ет пять обрабатывающих центров, на которые контролер направляет полу­ченные работы строго по очереди. Определите одно случайное значение интервала между получением работ на первом обрабатывающем центре.

5. Проведен стандартный тест ACT среди выпускников одного класса средней школы небольшого городка. Результаты теста являются нормально распре­

Интересно отметить, что две случайные величины, получаемые в методе Бокса-Мюллера по схожим формулам, причем зависимые от одних и тех же равномерно распреде­ленных случайных величин, независимы между собой. — Прим. ред.

4 Для всех приведенных здесь задач используйте случайные числа из табл. 18.1, начиная с первого столбца.

у, = 10 + 2(-1,103) = 7,794, у2= 10 + 2(-2,108) = 5,782.

18.3. Элементы дискретного моделирования

деленной случайной величиной с математическим ожиданием 27 баллов и стандартным отклонением 3 балла. Используя метод Бокса-Мюллера, по­лучите случайные значения показателей шести выпускников этого класса.

6. Профессор психологии Ятаха проводит обучающий эксперимент, в котором мыши приучаются находить путь внутри лабиринта. Основой лабиринта яв­ляется квадрат. Мышь впускают в лабиринт через один из четырех его углов, и она должна найти путь через лабиринт таким образом, чтобы выйти из него через этот же угол. Конструкция лабиринта такова, что до своего выхода из лабиринта мышь должна пройти через оставшиеся три угла в точности по од­ному разу. Многовариантные пути лабиринта соединяют четыре его верши­ны строго в направлении вращения часовой стрелки. Профессор считает, что время, которое мышь тратит для перехода от одной вершины лабиринта до другой, является случайной величиной, равномерно распределенной на ин­тервале от 10 до 20 секунд. Опишите процедуру получения случайного зна­чения для времени пребывания мыши в лабиринте.

7. Пусть в ситуации, описанной в предыдущем упражнении, как только одна мышь покидает лабиринт, другая в тот же миг входит в него. Опишите про­цедуру получения случайного значения для количества мышей, которые пройдут лабиринт на протяжении 5 мин.

8. Отрицательное биномиальное распределение (распределение Паскаля). По­кажите, как можно вычислить случайное значение, имеющее отрицательное биномиальное распределение, плотность вероятности которого имеет вид

f(x)=[y+ Xx~iy{l-P)*= 0,1,2,..,

где х — число неудач в последовательности независимых испытаний Бернулли до получения у-го успеха, р — вероятность успеха, 0 <р < 1. (Подсказка. Слу­чайная величина, имеющая отрицательное биномиальное распределение, является сверткой (суммой) независимых случайных величин, подчиняю­щихся геометрическому распределению. См. также упражнение 18.3.2.9.)

Метод отбора.5 Данный метод разработан для получения значений случайных величин со сложными функциями плотностей вероятностей, к которым нельзя применить изложенные выше методы. Общая идея данного метода сводится к за­мене сложной плотности вероятности f(x) более удобной с аналитической точки зре­ния плотностью вероятности h(x). Затем значения, соответствующие плотности h(x), используются для получения значений, соответствующих исходной плотности f(x).

Для плотности вероятности f(x) определяем такую мажорирующую функцию g(x), что

g(x) > f(x), -со < X < со.

Теперь определим плотность вероятности h(x) путем нормализации функции g(x):

h(x) = -сю<х<сю. g{y)dy

В русскоязычной математической литературе этот метод иногда также называют мето­дом отказов, что больше соответствует английскому названию acceptance-rejection method. — Прим. ред.

Глава 18. Имитационное моделирование

В методе отбора последовательно выполняются следующие действия.

Этап 1. С помощью метода обратной функции или метода свертки получа­ем случайное значение л: = лс,, соответствующее плотности вероят­ности h(x).

Этап 2. Генерируем случайное число R из интервала [0,1].

ЭтапЗ. Если Д<следует принять х1 как искомое значение, со­ответствующее распределению f(x). Иначе необходимо вернуться к этапу 1, отбросив значение хг

Обоснованность этого метода вытекает из следующего равенства:

а

P{x<ax = xt принимается, -оо <*,<<»} = jf(y)dy, -оо<а<оо.

Это вероятностное соотношение означает, что значение х = xv удовлетворяющее условию этапа 3, в действительности является значением, соответствующим ис­ходной плотности вероятности f(x), что и требуется.

Эффективность предложенного метода можно повысить, уменьшив вероятность отклонения значения х1 на этапе 3. Эта вероятность зависит от выбранной функции g(x) и должна уменьшаться с выбором такой функции g(x), которая более "точно" мажорирует функцию f(x).

Пример 18.3.6. Бета-распределение

Используем метод отбора, чтобы найти значение, соответствующее бета-распреде­лению, плотность вероятности которого задается формулой

fix) = 6х(1 - х), 0< х<1.

На рис. 18.6 изображены функция^*) и мажорирующая ее функция g(x).

х

Рис. 18.6. Иллюстрация к методу отбора

Высота мажорирующей функции g(x) равна максимальному значению функции J[x), которого она достигает в точке* = 0,5. Это значит, что^(х) = 1,5, 0 <х < 1.

Функция плотности "замещающего" распределения h{x), также представленная на рис. 18.6, вычисляется согласно соотношению

h(x) =-^-_ = -J^_ = i, о<*<1.

площадь под g(x) 1x1,5

18.3. Элементы дискретного моделирования

Следующие действия демонстрируют применение процедуры метода отбора с ис­пользованием последовательности случайных чисел из табл. 18.1.

Этап 1. Использование числа R = 0,0589 приводит к случайному значению х = 0,0589, соответствующему плотности h(x).

Этап 2. Выбираем из табл. 18.1 следующее число R = 0,6733.

ЭтапЗ. Так как 7(0,0589)/g(0,0589) = 0,3326/1,5= 0,2217 меньше R = 0,6733, мы отбрасываем значение* = 0,0589.

Для получения второго значения повторяем действия.

Этап 1. Использование числа Л = 0,4799 (из первого столбца табл. 18.1) приводит к случайному значению х = 0,4799, соответствующему плотности И(х).

Этап 2. Выбираем из табл. 18.1 следующее число R = 0,9486.

Этап 3. Так как y(0,4799)/g(0,4799) = 0,9984 больше R = 0,9486, мы при­нимаем значение х = 0,4799 как соответствующее бета-распределению.

Из этого примера видно, что итерации метода отбора должны повторяться с новы­ми значениями случайных чисел, равномерно распределенных на интервале [0, 1], до тех пор, пока не будут выполнены условия этапа 3.

Эффективность метода отбора повышается в результате выбора такой мажори­рующей функции g(x), которая "облегала" бы функцию f(x) как можно более плотно, порождая в то же время приемлемую с аналитической точки зрения ап­проксимирующую функцию h(x). Например, метод будет более эффективным, если прямоугольную мажорирующую функцию g(x) на рис. 18.6 заменить ступенчатой (см. упражнение 18.3.4.2). С увеличением числа ступеней функция g(x) становится все более прилегающей к функции f(x), и, следовательно, возрастает вероятность принятия полученного случайного значения как искомого. Однако получение тесно прилегающей мажорирующей функции влечет за собой дополнительные вычисле­ния, которые могут стать чрезмерными, что, в свою очередь, может свести на нет преимущества высокой вероятности принятия полученных значений.

УПРАЖНЕНИЯ 18.3.4

1. В примере 18.3.6 продолжите выполнение процедуры метода отбора до полу­чения следующего приемлемого случайного значения.

2. Рассмотрим плотность вероятности бета-распределения из примера 18.3.6. Определите двухступенчатую "пирамидальную" мажорирующую функцию g(x) с двумя равными скачками величины 0,75. Получите случайное значе­ние, соответствующее бета-распределению, с использованием новой мажори­рующей функции и тех же случайных чисел из интервала [0, 1] (табл. 18.1), которые использовались в примере 18.3.6. Вывод, который можно здесь сде­лать, сводится к тому, что использование более точной мажорирующей функции повышает вероятность принятия полученного значения как иско­мого. Заметьте, однако, что объем вычислений, связанных с использованием новой функции, увеличился.

Глава 18. Имитационное моделирование

3. Определите функции g(x) и h(x) для применения метода отбора к плотности распределения следующего вида:

. sin(*) + cos(;c) „ ж

/<х) = —i-i-0<хй-.

w 2 2

Используйте случайные числа из первого столбца табл. 18.1 для получения двух значений, соответствующих плотности распределения f(x). (Совет. Для удобства используйте прямоугольную функцию g(x) над областью определе­ния функции f(x).)

4. Время между приходом клиентов в парикмахерскую описывается следую­щим распределением:

/(/)=у, 12 < г < 20.

Время стрижки является случайной величиной, плотность вероятности которой

/,(/) = £, 18<г<22.

Константы kx и кг выбираются из условия, что функции ft(x) и f2(x) являются плотностями вероятностей. Используйте метод отбора (и случайные числа из табл. 18.1), чтобы определить время ухода первого клиента из парикмахер­ской и время прихода второго клиента. Предположите, что первый клиент приходит в момент времени Т = 0.

18.4. ГЕНЕРИРОВАНИЕ СЛУЧАЙНЫХ ЧИСЕЛ

Равномерно распределенные случайные числа из интервала [0, 1] играют клю­чевую роль в получении выборок из любого вероятностного распределения. Истин­ные случайные числа из интервала [0, 1] можно генерировать лишь с помощью электронных приборов. Так как имитационные модели реализуются на компьюте­ре, использование электронных приборов для генерации случайных чисел слиш­ком бы замедлило процедуру имитационного моделирования. Кроме того, элек­тронные приборы активизируются случайным образом. Следовательно, невозможно по желанию воспроизвести одну и ту же последовательность случай­ных чисел. Этот факт чрезвычайно важен, так как для отладки, проверки и утвер­ждения имитационной модели часто требуется дублирование одной и той же после­довательности случайных чисел.

В имитационном моделировании единственным подходящим методом генера­ции случайных чисел из интервала [0, 1] является метод, основанный на арифме­тических операциях. Такие числа не являются истинно случайными, так как они могут быть определены заранее, поэтому их называют псевдослучайными.

Наиболее часто используется мультипликативный метод сравнений, который генерирует случайные числа из интервала [0, 1] с использованием арифметических операций. В соответствии с этим методом псевдослучайное число Rn при заданных значениях параметров и0, b,c,nm можно вычислить по следующей формуле:

ип = {bun_x +c)mod(/w), « = 1,2,..., „и.

*.=—. « = 1.2, .»

18.4. Генерирование случайных чисел

Начальное значение параметра и0 обычно называют начальным числом генератора случайных чисел.

Варианты мультипликативного метода сравнений, которые генерируют случайные числа с улучшенными статистическими характеристиками, описаны в книге [2].

Пример 18.4.1

Используя мультипликативный метод сравнений, сгенерируем три случайных чис­ла при следующих начальных данных: 6 = 9, с = 5, и0=11или=12.

ы, =(9xli + 5)modl2 = 8, R, =^ = 0,6667,

и2 =(9x8 + 5)modl2 = 5, Л2 =^- = 0,4167,

M3=(9x5 + 5)modl2 = 4, Л, = — = 0,3333.

Шаблон Excel chl8RandomNumberGenerator.xls реа­лизует описанный мультипликативный метод сравнений.6 На рис. 18.7 показаны случайные числа, сгенерированные в соответствии с начальными данными этого примера. Отме­тим, что сгенерированная последовательность случайных чисел состоит только из четырех различных чисел, затем эти числа повторяются. Конкретный выбор параметров и0, Ь, с, и т яв­ляется решающим фактором, определяющим статистические качества генератора случайных чисел, а также длины его цикла (по окончании цикла генерируемая последовательность начи­нает повторять себя, как на рис. 18.7). Исполь­зование параметров, выбранных "наобум", не дает хорошего генератора случайных чисел. Надежные генераторы, наряду с достаточно большой длиной цикла генерируемых случай­ных чисел, должны пройти соответствующие статистические проверки, чтобы гарантировать равномерное распределение на интервале [0, 1] полученной последовательности. На это усло­вие нужно обращать внимание при использова­нии непроверенного программного обеспечения в качестве генератора случайных чисел.

 

  А в
Multiplicative Congruential Method
Input data
b =
c =
u0 =
m =
How many numbers?
_R_ Output results^^^^^
Preii to <j»nei.
Generated random numbers
0.66667
0 41667
0.16667
0 91667
0.66667
16 17 0 41667
0.91667
s 0.66667
20 , 0.41667
 

Рис. 18.7. Сгенерированные в Excel случайные числа

Excel обладает несколькими встроенными средствами генерирования случайных чисел. Так, функция СЛЧИС генерирует равномерно распределенные на интервале [0, 1] числа, средство Генерация случайных чисел из надстройки Пакет анализа позволяет генерировать случайные числа, имеющие различные вероятностные распределения, в том числе равно­мерное, нормальное, Пуассона. — Прим. ред.

Глава 18. Имитационное моделирование

УПРАЖНЕНИЯ 18.4

1. С помощью шаблона chl8RandomNumberGenerator.xls сгенерируйте последо­вательность случайных чисел с начальными параметрами Ь = 17, с= 111, и0 = 7 и/71= 103 (см. пример 18.4.1) и определите длину цикла этой последовательности.

2. Найдите программу генератора случайных чисел для вашего компьютера и сге­нерируйте с его помощью 1000 случайных чисел из интервала [0,1]. Постройте гистограмму полученных чисел и визуально убедитесь в том, что есть веские основания считать, что они подчинены равномерному распределению из ин­тервала [0, 1]. Впрочем, чтобы проверить последовательность надлежащим об­разом, вам необходимо использовать следующие тесты: критерий согласия хи-квадрат (раздел 12.6), тест на независимость и корреляционный тест [2].

18.5. МЕХАНИКА ДИСКРЕТНОЙ ИМИТАЦИИ

Как указывалось выше, все дискретные имитационные модели в той или иной форме представляют ситуации, связанные с очередями, в которых есть два типа ос­новных событий: прибытие и уход. Эти события определяют моменты, в которые могут происходить изменения в статистике системы. В этом разделе детально об­суждаются вопросы сбора статистических данных, полученных в процессе наблю­дений над имитационной моделью. В разделе 18.5.1 на числовом примере детально рассмотрена имитация простой модели очереди с одним сервисом. В разделе 18.5.2 показана реализация такого же процесса в электронной таблице Excel.

18.5.1. Ручная имитация модели очереди с одним сервисом

Время между приходом клиентов в парикмахерскую является случайной вели­чиной, изменяющейся по экспоненциальному закону с математическим ожидани­ем 15 мин. В парикмахерской работает один мастер, который выполняет мужскую стрижку от 10 до 15 мин., время стрижки имеет равномерное распределение на этом интервале. Клиенты обслуживаются в порядке очереди. Требуется определить следующие параметры работы парикмахерской.

1. Среднюю занятость парикмахера.

2. Среднее количество ожидающих клиентов.

3. Среднее время ожидания клиента в очереди.

Логику работы имитационной модели можно описать в терминах событий, свя­занных с прибытием и уходом клиентов, следующим образом. Событие, связанное с прибытием клиента

1. Сгенерировать и сохранить время события, связанного с прибытием следую­щего клиента (текущее время моделирования + промежуток времени между приходами клиентов).

2. Если средство обслуживания (парикмахер) свободно,

а) начать обслуживание поступившего клиента, изменить состояние систе­мы на рабочее и скорректировать данные использования системы;

б) сгенерировать и сохранить хронологически время события, связанного с уходом клиента (текущее время моделирования + время обслуживания).

3. Если средство обслуживания занято, поставить поступившего клиента в оче­редь и увеличить ее длину на единицу.

18.5. Механика дискретной имитации

Событие, связанное с уходом клиента (окончание обслуживания)

1. Если очередь пуста, объявить систему свободной. Скорректировать данные использования системы.

2. Если очередь не является пустой,

а) начать обслуживание первого в очереди клиента. Уменьшить длину оче­реди на единицу и скорректировать данные использования системы;

б) сгенерировать и сохранить хронологически время события, связанного с уходом клиента (текущее время моделирования + время обслуживания).

В рассматриваемом примере время между приходом клиентов изменяется по экспоненциальному закону с математическим ожиданием 15 мин., а время обслу­живания распределено равномерно в интервале от 10 до 15 мин. Обозначим через р и q случайные значения времени между прибытием клиентов и их обслуживанием соответственно. Используя результаты раздела 18.3.2, получаем

р = -10 1п(Д) мин., 0 < R <1,

q = 10 + 5Rмин., 0<R <1.

В этом примере используем случайные числа R из табл. 18.1, начиная с первого столбца. Обозначим через Т время моделирования (время наблюдения над моде­лью). Предположим также, что первый клиент приходит в момент времени Т = 0 и средство обслуживания свободно.

Поскольку в процессе имитации выполняется много вычислений, ограничимся имитацией прихода только пяти клиентов. При этом рассмотрим все возможные ситуации, возникающие в процессе имитации. В следующем разделе с помощью шаблона Excel покажем имитацию без проведения вычислений вручную.

Прибытие клиента 1 в момент Т = 0. Второй клиент прибудет в момент времени

Т = 0 +р, = -15 1п(0,0589) = 42,46 мин.

Так как при Т = 0 система свободна, немедленно начинается обслуживание пер­вого клиента. Соответствующее время обслуживания вычисляется с использовани­ем равномерно распределенного случайного числа R= 0,6733. Первый клиент уй­дет из парикмахерской в момент времени

Г=0+д1 = 10 + 5х 0,6733 = 13,37 мин. Получаем следующий хронологический перечень будущих событий

Время Т Событие
13,37 Уход клиента 1
42,48 Приход клиента 2

Уход клиента 1 в момент Т = 13.37. Так как очередь пуста, средство обслужива­ния становится свободным. В то же время фиксируем, что система была занята от момента времени 7' = 0 до Т'=13,37. Имеем следующий скорректированный пере­чень будущих событий (в данном случае имеется только одно событие).

Время Т Событие
42,48 Приход клиента 2

Глава 18. Имитационное моделирование

Прибытие клиента 2 в момент Т = 42,48. Третий клиент прибудет в момент времени

Т = 42,48 + [-15 1п(0,4799)] = 53,49 мин.

Так как средство обслуживания свободно, начинается обслуживание второго клиен­та, и система объявляется занятой. Второй клиент оставит систему в момент времени

Т = 42,48 + (10 + 5 х 0,9486) = 57,22 мин.

Список будущих событий изменяется следующим образом.

Время Т Событие
53,49 Приход клиента 3
57,22 Уход клиента 2

Прибытие клиента 3 в момент Т = 53,49. Клиент 4 прибудет в момент времени

Т = 53,49 + [-15 1п(0,6139)] = 60,81 мин.

Так как система в это время занята (она занята до Т = 57,22), третий клиент по­мещается в очередь в момент Т — 53,49. Откорректированный список будущих со­бытий принимает следующий вид.

Время Г Событие
57,22 Уход клиента 2
60,81 Приход клиента 4

Уход клиента 2 в момент Т = 57,22. Клиент 3 покидает очередь для начала об­служивания. Время его ожидания в очереди равно

W3 = 57,22 - 43,22 = 3,73 мин.

Время ухода (время окончания обслуживания) третьего клиента:

Т = 57,22 + (10 + 5 х 0,5933) = 70,19 мин.

Список будущих событий принимает следующий вид.

Время Т Событие
60,81 Приход клиента 4
70,19 Уход клиента 3

Прибытие клиента 4 в момент Т = 60,81. Клиент 5 прибудет в момент времени

Т = 60,81 + [-15 1п(0,9341)] = 61,83 мин.

Так как система занята до Т = 70,19, четвертый клиент помещается в очередь. Откорректированный список будущих событий принимает следующий вид.

Время 7" Событие
61,83 Приход клиента 5
70,19 Уход клиента 3

Приход клиента 5 в момент Т = 61,83. Поскольку наша имитация ограничива­ется пятью клиентами, время прибытия шестого клиента генерировать не будем.

18.5. Механика дискретной имитации

Так как средство обслуживания в момент прихода клиента 5 занято, он в момент времени Т = 61,83 помещается в очередь. Имеем список будущих событий.

Время Т Событие
70,19 Уход клиента 3

Уход клиента 3 в момент Т = 70,19. Первый клиент в очереди (клиент 4) начи­нает обслуживаться. Его время ожидания в очереди составляет

W4 = 70,19 - 60,81 = 9,38 мин.

Время ухода клиента 4:

Т = 70,19 + (10 + 5 х 0,1782) = 81,08 мин. Откорректированный список будущих событий принимает такой вид.

Время Т Событие
81,08 Уход клиента 4

Уход клиента 4 в момент Т = 81,08. Клиент 5 начинает обслуживаться. Его вре­мя ожидания в очереди составляет

W5 = 81,08 - 61,83 = 19,25 мин. Время ухода клиента 5:

Т = 81,08 + (10 + 5 х 0,3473) = 92,82 мин. Откорректированный список будущих событий принимает такой вид.

Время Т Событие
92,82 Уход клиента 5

Уход клиента 5 в момент Т = 92,82. Клиентов в системе (в очереди и на обслу­живании) больше нет. Имитация заканчивается.

На рис. 18.8 показаны изменения длины очереди и использование сервиса (занятость системы) как функции времени имитации.

Длина очереди и занятость системы (т.е. парикмахера) являются переменными, за­висящими от времени. Поэтому их средние значения вычисляются следующим образом.

(Среднее значение переменнойЛ Площадь под кривой ^ зависящей от времени ) Период имитации

Применяя эту формулу для данных, показанных на рис. 18.8, получаем Средняя длина очереди = (А, + А2)/92,82 = 32,36/92,82 = 0,349 (клиента), Средняя занятость системы = (А3 + А4)/92,82 = 63,71/92,82 = 0,686 (парикмахера).

Среднее время ожидания в очереди является переменной, зависящей от количе­ства происшедших событий, и ее значение вычисляется по формуле

( Среднее значение переменной, ") _ Сумма наблюдений ^зависящей от количества событий) Количество событий

Из рис. 18.8 видно, что площадь под кривой длины очереди в действительности рав­на сумме времен ожидания трех клиентов, которые формировали очередь. Поэтому

W, + W2 + W3 + Wt + Ws = 0 + 0 + 3,73 + 9,38 + 19,25 = 32,36 мин.

Глава 18. Имитационное моделирование

Среднее время ожидания в очереди равно

W= 32,36/5 = 6,47 мин.

Длина очереди

г* ■Wc

_|_

JL _|_

Аг= 28,63 _I_

0 10 Занятость системы

20 30 40 50 60 70 80 90

-»i4          
Л,=13,37 1 1 1 At = 50,34 1 1 1 1 1  
0 10 30 40 60 70 80 90  

Рис. 18.8. Изменение длины очереди и использование сервиса во времени имитации

УПРАЖНЕНИЯ 18.5.1

1. Предположим, что в парикмахерской, о которой шла речь в разделе 18.5.1, работают два парикмахера, и клиенты обслуживаются согласно принципу "первым пришел — первым обслуживаешься". Предположим также, что время стрижки является случайной величиной, равномерно распределенной на интервале от 15 до 30 мин.; время между приходом клиентов распределе­но по экспоненциальному закону с математическим ожиданием 10 мин. Смо­делируйте вручную работу системы на протяжении 75 единиц времени. Из полученных результатов имитации определите среднее время ожидания кли­ента, среднее число ожидающих клиентов и среднюю занятость парикмахе­ров. Используйте случайные числа из табл. 18.1.

2. Классифицируйте следующие переменные как зависящие либо от количества событий, либо от времени.

a) Время отказа электронного прибора.

b) Объем запаса некоторого изделия.

c) Объем заказа на некоторый товар, внесенный в инвентарную опись.

d) Количество бракованных изделий в партии.

e) Время, необходимое для оценки результатов теста.

f) Количество автомобилей на стоянке агентства по прокату автомобилей.

3. Следующая таблица представляет изменение числа ожидающих в очереди клиентов в зависимости от времени имитации.

18.5. Механика дискретной имитации

Время имитации Т(часы) Число ожидающих клиентов
0< Т<3
3< Т<4
4< Т<6
6< Т<7
7 < Т< 10
10< Т< 12
12< Т< 18
18 < Т<20
20 < Т<25
Определите следующие величины.  
а) Среднюю длину очереди.  
Ь) Среднее время ожидания в очереди.  
Предположим, что в парикмахерской (раздел 18.5.1) работают три парик-
махера; их занятость характеризуется следующей таблицей.
Время имитации Т(часы) Число занятых парикмахеров
0< Т< 10
10 < Т<20
20 < Т<30
30 < Г < 35
35 < Т<40
40 < Т<60
60 < Т<70
70 < Т<75
75 < Т<80
80 < Т<90
90 < Т< 100

Определите следующие величины.

a) Среднее время работы парикмахеров.

b) Среднее время простоя парикмахеров.

18.5.2. Имитация модели очереди с одним сервисом в электронной таблице

Утомительные вычисления примера из раздела 18.5.1 указывают на необхо­димость использования компьютера как существенного инструмента для реали­зации имитационных моделей. В этом разделе будет показано, как создать рабо­чую книгу для имитации модели очереди с одним сервисом. Конечно, модель с одним сервисом очень проста и ее несложно смоделировать в электронной таб­лице. Для моделирования других моделей придется затратить больше усилий, но

Глава 18. Имитационное моделирование

использование специального программного обеспечения значительно облегчает эту работу (см. раздел 18.7).

В разделе 18.5.1 было показано, что для имитации модели очереди с одним сер­висом необходимы два основных элемента.

1. Список событий модели, упорядоченный в хронологическом порядке.

2. Диаграмма, с помощью которой отслеживаются изменения использования средств обслуживания и длины очереди.

Эти два элемента также остаются важными при имитации модели в электронной таблице (это же относится и к компьютерной имитации вообще). Различие состоит только в методах регистрации изменений в модели. Пусть, как и в разделе 18.5.1, клиенты обслуживаются в порядке их прибытия (дисциплина FIFO).

На рис. 18.9 показан шаблон рабочей книги Excel (файл chl8SingleServer-Simulator.xls). Входные данные позволяют представить время между поступле­ниями и время обслуживания одним из четырех способов: в виде константы или случайных чисел, имеющих экспоненциальное, равномерное или треугольное рас­пределения. Треугольное распределение полезно, поскольку с его помощью можно приближенно представить любое другое распределение. Для этого введите три чис­ла а, Ь и с, которые соответствуют наименьшему, наиболее вероятному и наиболь­шему значениям времени между поступлениями клиентов в систему или времени их обслуживания. Кроме того, необходимо ввести еще один параметр имитируемой модели — длительность имитации, которая в этой модели определяется количест­вом сгенерированных поступлений.

~Ё F G Hi J К [ М N О _01 Simulation of a Single-Server Queueing Model_

Simulation Calculations

  Constant =      
  Exponential:      
X Uniform: a = b = 15]
  Triangular a =   b =  

Output Summary

16 /laximum queue length: 17 «v queue length, Lq = 18 iAv nbr in system, Ls =

Т К

Максимизировать Е = ^^vf wa

при ограничениях

= 1 *=1

т К

11", =1,

-1 *=i

wlt>0, i = l,2,...,m; к = 1,2,-,К.

Сформулированная задача представляет собой задачу линейного программирования с переменными w,t. Покажем, что ее оптимальное решение автоматически гарантиру­ет, что q = 1 для одного k при любом i. Заметим, что в задаче линейного программиро­вания имеется т независимых уравнений (одно уравнение, соответствующее я = яР, избыточно). Следовательно, задача должна включать т базисных переменных. Однако можно показать, что wlt должно быть строго положительным по меньшей мере при

одном k для каждого /. Из этих двух утверждений можно заключить, что величина

может принимать только два значения (0 или 1), что и требовалось доказать. (Фактически полученный выше результат показывает также, что я, = X*-ivt'<* =VV > где k - альтернатива, соответствующая wjt > 0 .)

Пример 19.4.1

Ниже приведена формулировка задачи садовника без дисконтирования в виде за­дачи линейного программирования.

Максимизировать £ = 5,3w,, + 4,7w]2 + 3w2l + 3,lw22 - w31 +0,4w32 при ограничениях

wM + w12-(0,2wM + 0,3wl2 +0,lw22 + 0,05w32) = 0,

w2l + w22 -(0,5wu +0,6w]2 + 0,5w2] + 0,6w22 + 0,4w32) = 0, w31 + w32 -(0,3wn + 0,lwl2 + 0,5w2l + 0,3w22 + w3l + 0,55w32) = 0, w„ + wl2 + w2l + w22 + w3l + wi2 = 1, wlt It 0 при любых i и к.

Оптимальным решением является wn= w2l= w3l = 0, w12 = 0,1017, w22 = 0,5254 nw32 = 0,3729. Это означает, что q] =q=q = . Таким образом, оптимальная стратегия требует выбора альтернативы 2 (к = 2) при /'= 1, 2 и 3. Оптимальное значение Е равно 4,7x0,1017 + 3,1x0,5254 + 0,4x0,3729 = 2,256. Интересно отметить, что положитель­

19.4. Применение методов линейного программирования

ные значения wlk в точности равны значениям я,, соответствующим оптимальной стратегии, определенной с помощью метода полного перебора в примере 19.3.1, что доказывает непосредственную взаимосвязь между двумя методами решения.

Рассмотрим теперь марковскую задачу принятия решений с дисконтированием. В подразделе 19.3.2 эта задача описывается рекуррентным уравнением

/(/) = maxU + a£pj/(y) , / = l,2,...,m.

у»'

Это уравнение эквивалентно следующему:

т

/(/) > cC£,P-,f{j) + v., для всех ink ,

при условии, что при любом i функция f(i) достигает минимального значения. Рас­смотрим теперь целевую функцию

In

минимизировать Z^./(')'

где bt (> 0 при всех i) — произвольные константы. Можно показать, что оптимиза­ция этой функции (при ограничениях в виде приведенных выше неравенств) дает, что и требуется, минимальное значение f(i). Таким образом, задачу можно записать следующим образом.

m

Минимизировать ZV(')

при ограничениях

/(О _aZPijfU) - v'> при любых'и *.

/(/') не ограничены по знаку, / = 1,2,...,т. Двойственной к приведенной выше задаче является задача

т К

максимизировать ZZV*W>*

при ограничениях

К т К

*=1 1=1 *=1

и^>0при / = l,2,...,m; к = ,2,...,К.

Пример 19.4.2

Рассмотрим задачу садовника с коэффициентом дисконтирования а = 0,6. Если по­ложить Ъх = Ъг = b3 = 1, то двойственную задачу линейного программирования можно записать в следующем виде.

Максимизировать 5,3wM + 4,7w12 + 3w21 + 3,lw22 - w,, + 0,4w,2

756 Глава 19. Марковские процессы принятия решений при ограничениях

w„ + w,2-0,6[0,2wn + 0,3wl2 + 0,lw22 + 0,05w32] = l,

w21 + w22 -0,6[0,5wn +0,6wl2 + 0,5w2, + 0,6w22 + 0,4w32] = l, w,, + w32 -0,6[0,3wn + 0,lwl2 + 0,5w21 + 0,3w22 + w3P + 0,55w32] = 1, wlk > 0 при любых / и к.

Оптимальным решением будет w12 = w2] = w3] = 0, wn= 1,5678, w22 = 3,3528 и w32 = 2,8145. Из этого решения следует, что оптимальной стратегией является {1,2,2}.

УПРАЖНЕНИЯ 19.4

1. Сформулируйте указанные ниже задачи в виде задач линейного программи­рования.

a) Задача упражнения 19.3.2.1.

b) Задача упражнения 19.3.2.2.

c) Задача упражнения 19.3.2.3.

19.5. ПРИЛОЖЕНИЕ: ОБЗОР ТЕОРИИ ЦЕПЕЙ МАРКОВА

Рассмотрим дискретные моменты времени {tk}, k = l, 2.....и пусть Е, — слу­чайная величина, характеризующая состояние системы в момент tk. Семейство случайных величин } образует стохастический процесс. Состояния в момент

времени tk, в которых может находиться в этот момент система, формируют пол­ную и взаимно исключающую группу событий. Число состояний системы может быть конечным или бесконечным. Так, например, распределение Пуассона

P„(t) =-Ц и = 0,1,2,...

я!

представляет стохастический процесс с бесконечным числом состояний. Здесь слу­чайная величина п соответствует числу наблюдаемых событий в интервале от 0 до t (начальным моментом считается 0). Таким образом, состояния системы в любой момент t задаются случайной величиной п = 0, 1, 2, ...

Еще одним примером может служить игра с k подбрасываниями монеты. Каждое испытание (подбрасывание монеты) можно рассматривать как некоторый момент времени. Полученная последовательность испытаний образует случайный процесс. Состоянием системы при любом испытании является либо "герб", либо "решка".

В данном разделе приводятся сведения о таких случайных процессах, как марковские процессы и марковские цепи. Цепь Маркова является частным случаем марковских процессов. Цепи Маркова используются при изучении крат­косрочного и долгосрочного поведения стохастических систем с дискретным множеством состояний.

19.5.1. Марковские процессы

Марковский процесс описывает поведение стохастической системы, в которой наступление очередного состояния зависит только от непосредственно предшест­

19.5. Приложение: обзор теории цепей Маркова

вующего состояния системы. Если t0 < f, < ... < tn (п = 0,1, 2, ...) — моменты време­ни, то семейство случайных величин J4, } будет процессом Маркова тогда и только

тогда, когда оно обладает марковским свойством

Р{^ =*„|4,,_, =*„-„...,);„ =х0} = Р{^ =х.Ъ., =*.-i} для всех возможных значений случайных величин 4, ,4,,. —. 4, •

Вероятность р, = = хп 4, , = } называется переходной. Она представля­ет собой условную вероятность того, что система будет находиться в состоянии хп в момент tn, если в момент <„_, она находилась в состоянии хп_г Эту вероятность называют также одношаговой переходной, поскольку она описывает изменение со­стояния системы между последовательными моментами времени tni и tn. Анало­гично m-шаговая переходная вероятность определяется формулой

19.5.2. Цепи Маркова

Пусть Е2, £. 0 = 0, 1, 2, ...) — полная и взаимно исключающая группа со­стояний некоторой системы в любой момент времени. В исходный момент <0 систе­ма может находиться в одном из этих состояний. Пусть я'0' (у = 0,1,2,...) — вероят­ность того, что в момент t0 система находится в состоянии Ег Предположим также, что рассматриваемая система является марковской.

Определим р,у = Р{^,_ = у | ^ = /} как одношаговую вероятность перехода системы

из состояния г в момент времени <„., в состояние j в момент tn и допустим, что эти вероятности постоянны во времени. Удобнее представить вероятности перехода из состояния £, в состояние Ef в матричном виде

'Роо Poi Рог Роз
PlO Рп Р.2 Р,з
Р20 Р21 Р22 Ргз
Рзо Р31 Рз2 Рзз

V : : : : "V Матрица Р называется однородной матрицей переходов (переходных вероятно­стей), поскольку все переходные вероятности ptj фиксированы и не зависят от вре­мени. Вероятности р0 должны удовлетворять условиям

^Pj- = 1 для всех (',

j

pv > 0 для всех /' и у.

Матрица переходных вероятностей Р совместно с исходными вероятностями со­стояний полностью определяет цепь Маркова (или марковскую цепь). Обычно счита­ется, что цепь Маркова описывает переходный режим некоторой системы на одина­ковых интервалах времени. Однако иногда интервалы времени между переходами зависят от характеристик системы и, следовательно, могут быть неодинаковыми.

Глава 19. Марковские процессы принятия решений

Абсолютные и переходные вероятности. При заданных вероятностях состояний aJ°'J и матрице переходных вероятностей Р абсолютные вероятности состояний

системы после определенного числа переходов определяются следующим образом. Пусть |«у"'} — абсолютные вероятности состояний системы после га переходов, т.е.

в момент ta. Величины |а'п)| можно выразить в общем виде через и Р посред-

ством следующего соотношения:

(О (°) (°) . (о) . V (о)

Следовательно,

где р^ = ^PtlPiJ — двухшаговая вероятность, или переходная вероятность второ-

I

го порядка, т.е. вероятность перехода из состояния k в состояние j в точности за два шага.

Подобным образом по индукции можно показать, что

где р!"' — «-шаговая переходная вероятность (или переходная вероятность га-го порядка), определяемая рекуррентной формулой

р -L.P* Рч-ii

В общем виде для произвольных i и ; имеем

pMpW.о<«<„.

*

Эти уравнения известны как уравнения Колмогорова-Чепмена.

Элементы матриц переходов высших порядков Цр,'"'! можно получить непосред­ственно путем перемножения матриц. Так, например,

и в общем случае

|pW|=p-p = p-.

Следовательно, если абсолютные вероятности состояний определены в векторной форме как

то

aw=a(V.

19.5. Приложение: обзор теории цепей Маркова

Пример 19.5.1

Рассмотрим цепь Маркова с двумя состояниями. Матрица переходных вероятно­стей имеет вид

Р =

0,2 0,8 0,6 0,4

и а'0' = (0,7, 0,3). Найдем а'", а'41 и а"

Р2 =

^0,6 0,4

р4 = р2р2 р8=р4р4

0.443 0,557 0,418 0,582)'

Таким образом,

0,2 0,8Y0,2 0,8W0,52 0,48 0,6 0,4J _t,0,36 0,64j'

0,52 0,48Y0,52 0,48> 0,36 0,64Д0,36 0,64^

0,443 0,557 Y0.443 0,557^1 _(0,4291 0,5709^1

0,418 0,582Д0.418 0,582J ~ [0,4284 0,5716J"

m f 0,2 0,8Л

a<" =(0,7,0,3)^ o>4J = (0,32, 0,68),

,4) (0,443 0,557^1

a1 '=(0,7,0,3) =(0,436,0,564),

0,418 0,582

m (0,4291 0,57094;

a(8) =(0,7,0,3) =(0,4289,0,5711). ,4284 0,5716j

Отметим, что строки матрицы Р8 незначительно отличаются друг от друга. Кроме

(8) u п8

того, вектор а также несущественно отличается от каждой из строк матрицы Р . Это связано с тем, что абсолютные вероятности состояний после выполнения не­скольких переходов практически не зависят от начальных вероятностей а<0). В том случае, когда они действительно не будут зависеть от начальных вероятностей, их называют установившимися.

Классификация состояний марковских цепей. При рассмотрении цепей Марко­ва нас может интересовать поведение системы на коротком отрезке времени. В та­ком случае абсолютные вероятности вычисляются так, как показано в предыдущем разделе. Однако более важно изучить поведение системы на большом интервале времени, т.е. в условиях, когда число переходов стремится к бесконечности. В этом случае изложенный выше метод непригоден; требуется систематический подход, позволяющий прогнозировать долгосрочное поведение системы. Ниже вводятся определения состояний марковских цепей, которые необходимы для изучения дол­госрочного поведения системы.

Неприводимая марковская цепь. Цепь Маркова называется неприводимой, ес­ли любое состояние Ej может быть достигнуто из любого другого состояния £( за

конечное число переходов, т.е. при i Ф j pf > 0 для 1 < п < оо. В этом случае все со­стояния цепи называются сообщающимися.

Глава 19. Марковские процессы принятия решений

Замкнутое множество состояний и поглощающие состояния. Множество С состояний цепи Маркова называется замкнутым, если система, однажды оказав­шаяся в одном из состояний этого множества, будет находиться в множестве С в течение бесконечного интервала времени. Частным случаем замкнутого множест­ва является единственное состояние £у с переходной вероятностью рм= ■ В этом

случае состояние Ej называется поглощающим. Все состояния неприводимой цепи должны образовывать замкнутое множество, и ни одно подмножество этого множе­ства не может быть замкнутым. Замкнутое множество С удовлетворяет всем усло­виям, характеризующим марковскую цепь, и, следовательно, его можно подверг­нуть независимому анализу.

Пример 19.5.2

Рассмотрим цепь Маркова со следующей матрицей переходных вероятностей

 

 
  ( Л  
р = 1
  ч0 и

Эта цепь графически представлена на рис. 19.1. Как видно из рисунка, четыре со­стояния не составляют неприводимую цепь, поскольку состояний 0, 1 и 2 нельзя достичь из состояния 3. Состояние 3 образует замкнутое множество и, таким обра­зом, является поглощающим. Можно также утверждать, что состояние 3 соответ­ствует неприводимой цепи Маркова.

Рис. 19.1. Различные виды состояний цепи Маркова

Первое время возвращения. Важным понятием в теории марковских цепей яв­ляется первое время возвращения. Система, первоначально находящаяся в со­стоянии Ejt может вернуться в первый раз в это же состояние через п шагов, п > 1. Число шагов, за которое система возвращается в состояние Ejt называется первым временем возвращения.

Обозначим через вероятность того, что первое возвращение в состояние Ej

состоится на га-м шагу. Тогда при заданной матрице переходных вероятностей

Р = ||piy|| /j"' можно определить следующим образом:

19.5. Приложение: обзор теории цепей Маркова

Г В J JJ J JJ rjj!

или

/<2, = р(2)-/(У.

J JJ " JJ J л г II

По индукции нетрудно показать, что

/<"> = »<">_ у /.-)„(.—).

Отсюда следует, что вероятность по крайней мере одного возвращения в состоя­ние Ej задается формулой

fjj ~ ^-jfji ■

Следовательно, система обязательно вернется в состояние j, если /. = 1 . Обозначив через среднее время возвращения, получаем

»jj=t<]-

Если fB- < 1, то неизвестно, вернется ли система в состояние Et , и, следователь­но, ц^=°°.

Исходя из определения первого времени возвращения, состояния марковской цепи можно классифицировать следующим образом.

1. Состояние является невозвратным, если у < 1, т.е. ц;> =<х>.

2. Состояние является возвратным, если у. = 1.

3. Возвратное состояние является нулевым, если ци= ос, и ненулевым, когда

< оо (т.е. конечно).

4. Состояние называется периодическим с периодом t, если возвращение в него возможно только через число шагов, кратное <: t, 2t, 3t, ... Это означает, что

если п не делится на t без остатка, то pf = 0 .

5. Возвратное состояние является эргодическим, если оно ненулевое и аперио­дическое.

Если все состояния цепи Маркова являются эргодическими, то цепь неприводи-ма. В этом случае распределение абсолютных вероятностей состояний

aw=a(V

всегда однозначно сходится к предельному распределению при п —» оо, где предель-

U (о)

ное распределение не зависит от начальных вероятностей лк'. Справедлива следующая теорема.

Теорема 19.5.1. Все состояния в неприводимой бесконечной цепи Маркова мо­гут принадлежать к одному и только одному из следующих трех классов: невоз­

Глава 19. Марковские процессы принятия решений

вратных, возвратных нулевых или возвратных ненулевых состояний. Во всех случаях все состояния являются сообщающимися и имеют один и тот же период. В частном случае, когда в цепи конечное число состояний, она не может содер­жать только невозвратные или какие-либо нулевые состояния.

Предельные распределения в неприводимых цепях Маркова. Из приме­ра 19.5.1 видно, что с ростом числа переходов абсолютная вероятность состояний становится независимой от начального распределения. В данном разделе описы­вается метод вычисления предельного распределения вероятностей состояний в неприводимой цепи. Мы ограничимся рассмотрением только апериодических состояний, так как это единственный класс состояний, используемый в дальней­шем. Кроме того, анализ периодических состояний является довольно сложным.

Существование предельного распределения в неприводимой апериодической цепи зависит от класса ее состояний. Таким образом, рассматривая три класса со­стояний, указанных в теореме 19.5.1, можно сформулировать следующую теорему.

Теорема 19.5.2. Если в неприводимой апериодической цепи Маркова

а) все состояния невозвратные или нулевые, то р^п) —> 0 при га —» оо для всех i и j и предельного распределения не существует,

б) все состояния эргодические, то

lima'"'= я,, у = 0, 1, 2, ....

где nj — предельное (установившееся) распределение. Вероятности nj оп­ределяются однозначно и не зависят от я'0). Величины щ можно опреде­лить из системы уравнении

Среднее время возвращения в состояние j при этом определяется формулой

Пример 19.5.3

Рассмотрим задачу из примера 19.5.1. Для определения установившегося распреде­ления вероятностей используем соотношения

я, =0,2;!, +0,6ti2, 7i2 =0,871, +0,4ti2,

7t, + 7t2 = 1.

1 Заметим, что одно из уравнений nt = ^jt,p^ является избыточным.

19.5. Приложение: обзор теории цепей Маркова

Решением будет я-, = 0,4286 и лг = 0,5714. Эти результаты очень близки к значени­ям элементов вектора а(8) (и строкам матрицы Р8) из примера 19.5.1. Далее получаем значения среднего времени возвращения в первое и второе состояния

р„= —= 2,3, р22 = —= 1,75 . я, я2

Пример 19.5.4

Рассмотрим следующую цепь Маркова с тремя состояниями:

1 2

Р=1 2

а

0 ±

4 1 4 1 2

Такая матрица называется дважды стохастической, так как

1=1 у.|

где i — число состояний цепи Маркова. В таких случаях установившиеся вероят­ности равны л.,= 1/s для всех j. Поэтому для данной задачи л0 = лх = л2 = 1/3.

УПРАЖНЕНИЯ 19.5

1. Определите класс состояний приведенных ниже цепей Маркова и найдите их стационарные распределения.

а)

fl П 2    
3 4    
2)    
р о4
Я Р
Я Р
я Р
ll 0;

2. Найдите среднее время возвращения в каждое состояние цепи Маркова, за­данной следующей матрицей переходных вероятностей.

Глава 19. Марковские процессы принятия решений

(1 i Л 3 3 3

111 2 4 4'

111 U 5 5)

ЛИТЕРАТУРА

1. Derman С. Finite State Markovian Decision Process, Academic Press, New York, 1970.

2. Howard R. Dynamic Programming and Markov Processes, MIT Press, Cambridge, Mass., 1960. (Русский перевод: Ховард P. Динамическое программирование и марковские процессы. — М.: Сов. радио, 1964.)

Литература, добавленная при переводе

1. Дынкин Е. Б., Юшкевич А. А. Теоремы и задачи о процессах Маркова. — М.: Наука, 1967.

2. Кемени Дж., Снелл Дж. Конечные цепи Маркова. — М.: Наука, 1970.

ГЛАВА 20

КЛАССИЧЕСКАЯ ТЕОРИЯ ОПТИМИЗАЦИИ

В классической теории оптимизации для поиска точек максимума и минимума (экстремальных точек) функций в условиях как отсутствия, так и наличия ограниче­ний на переменные широко используется аппарат дифференциального исчисления. По­лучаемые при этом методы не всегда оказываются удобными при их численной реали­зации. Однако соответствующие теоретические результаты лежат в основе большинства алгоритмов решения задач нелинейного программирования (см. главу 21).

В этой главе изложены необходимые и достаточные условия существования экс­тремумов функций при отсутствии ограничений на переменные задачи, методы Яко­ба и Лагранжа для решения задач с ограничениями на переменные в форме равенств, а также условия Куна-Таккера для задач с ограничениями в виде неравенств.

20.1. ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ БЕЗ ОГРАНИЧЕНИЙ

Экстремальная точка функции /(X) определяет либо ее максимальное, либо ми­нимальное значение. С математической точки зрения точка 'Х.0 = (х1,xjyxj является точкой максимума функции /(X), если неравенство

/(X0 + h)</(X0)

выполняется для всех h = (А,, А;, Ап) таких, что |Aj достаточно малы при всех j. Другими словами, точка Х0 является точкой максимума, если значения функции / в окрестности точки Х0 не превышают /(Х0). Аналогично точка Х0 является точ­кой минимума функции /(X), если для определенного выше вектора h имеет место неравенство

/(X0 + h)>/(X„).

На рис. 20.1 показаны точки максимума и минимума функции одной переменной f(x) на интервале [а, Ь]. Точки xv х2, х3, х4 и хв составляют множество экстремаль­ных точек функции f(x). Здесь точки xv х3 и х6 являются точками максимума, а точки х2их4 — точками минимума функции f(x). Поскольку

f(x6) = max{/(^t), f(x3), /(*„)}, значение f(x6) называется глобальным или абсолютным максимумом, а значения f{xx) и f(x3) — локальными или относительными максимумами. Подобным образом, значение f(x4) является локальным, a f(x2) — глобальным минимумом функции f(x).

Глава 20. Классическая теория оптимизации

а хх х2 хг х4 х5 х6 b х Рас. 20.1. Экстремумы функции одной переменной

Заметим, что хотя точка х1 является точкой максимума функции f(x) (рис. 20.1), она отличается от остальных локальных максимумов f(x) тем, что по крайней мере в одной точке ее окрестности значение функции f(x) совпадает с f(x,). Точка х, по этой причине называется нестрогим (слабым) максимумом функции f(x), в отличие, например, от точки х3, которая является строгим максимумом f(x). Нестрогий максимум, следовательно, подразумевает наличие (бесконечного коли­чества) различных точек, которым соответствует одно и то же максимальное значе­ние функции. Аналогичные результаты имеют место в точке xt, где функция f(x) имеет нестрогий минимум. В общем случае Х0 является точкой нестрогого макси­мума функции f(x), если /(Х„ + h) < /(Х0), и точкой ее строгого максимума, если /(Х0 + h) < /(Х0), где h — вектор, определенный выше.

На рис. 20.1 легко заметить, что первая производная функции / (тангенс угла наклона касательной к графику функции) равна 0 во всех ее экстремальных точ­ках. Однако это условие выполняется и в точках перегиба и седловых точках функции /, таких как точка хь. Если точка, в которой угол наклона касательной к графику функции (градиент функции) равен нулю, не является в то же время точкой экстремума (максимума или минимума), то она автоматически должна быть точкой перегиба или седловой точкой.

20.1.1. Необходимые и достаточные условия существования экстремума

В этом разделе излагаются необходимые и достаточные условия существования экстремумов функции п переменных /(X). При этом предполагается, что первые и вторые частные производные функции f(X) непрерывны в каждой точке X.

Теорема 20.1.1. Необходимым условием того, что точка Х0 является экстре­мальной точкой функции /(X), служит равенство

V/(X0) = 0.

Доказательство. Из теоремы Тейлора следует, что при 0 < в< 1 имеет место разложение функции f(X)

/(Х„ + h) -/(Х0) = V/(X0)h + |hrIIh |Xi+0h,

20.1. Экстремальные задачи без ограничений

где h — вектор, определенный выше. Для достаточно малых значений остаточ­ный член yhrHh является величиной порядка И1 . Следовательно,

/(x0 + h)-/(x0) = v/(x0)h+o(/,;) = v/(x0)h.

Пусть Х0 — точка минимума функции /(X). Докажем от противного, что гради­ент V/(X0) функции /(X) в точке минимума Х0 равен нулю. Пусть это условие не вы­полняется; тогда для некоторого j должно выполняться условие

дх} дх; Знак Лу всегда можно выбрать таким образом, чтобы

а,*Ш<0.

Полагая остальные Л; равными нулю, из разложения Тейлора получаем неравенство

«X0 + h)</(X0).

Этот результат противоречит предположению, что Х0 — точка минимума. Следова­тельно, величина V/(X0) должна равняться нулю. Доказательство для точки мак­симума проводится аналогично.

Так как необходимое условие выполняется также в точках перегиба и седловых точках, точки, удовлетворяющие уравнению V/(X0) = 0, называют стационарными. Следующая теорема устанавливает достаточные условия того, что стационарная точка Х0 является экстремальной.

Теорема 20.1.2. Для того чтобы стационарная точка Х0 была экстремальной, достаточно, чтобы матрица Гессе Н в точке Х0 была

а) положительно определенной (тогда Х0 — точка минимума);

б) отрицательно определенной (тогда Х0 — точка максимума).

Доказательство. Согласно теореме Тейлора при 0 < в< 1 имеем

/(х, + ь) - /(х.) = v/(x,)h +UTm .

Поскольку X0 — стационарная точка, по теореме 20.1.1 V/(X0) = 0. Таким образом,

/(X0 + h)-/(X0) = ihrHh|x^0„. Если Х0 — точка минимума, то

f(X0 + h)>/(X0)

для всех ненулевых векторов h. Следовательно, в точке минимума Х0 должно вы­полняться неравенство

ihrHh|Xi.oh>0.

Непрерывность вторых частных производных функции /(X) гарантирует, что вели­чина ihrHh имеет один и тот же знак как в точке Х0, так и X0+r3i. Так как hrHh ^ представляет собой квадратичную форму (см. раздел А.3), ее значение (и, следова­

Глава 20. Классическая теория оптимизации

тельно, hrHh |x^oh) положительно тогда и только тогда, когда H|Xi —положитель­но определенная матрица. Это означает, что положительная определенность мат­рицы Гессе в стационарной точке Х0 является достаточным условием существова­ния в этой точке минимума. Путем аналогичных рассуждений доказывается, что стационарная точка является точкой максимума, если матрица Гессе в этой точке отрицательно определена.

Пример 20.1.1

Рассмотрим функцию

/(дс,,х2,х,) = .V, + 2хъ + х,х3 - х,2 -х- х. Необходимое условие экстремума VJ[) = 0 здесь принимает следующий вид.

^ = 1-2*. =0,

ох,

^- = х,-2хг =0, дх2

— = 2 + х2-2х3=0. сх3

Решением этой системы уравнений является точка Х0 = (1/2, 2/3, 4/3). Для проверки выполнения условия достаточности вычислим

' 52/ d2f д2/ }  
Эх,2 дх1дхг dxtdx} С
е2/ elL о2/  
OXjOX, дх ох23  
д2/ d2f 52/ V
ч ох,ох. ох,ох2 дх] /  

-2 1 1 -2

Угловые миноры матрицы Н |х равны -2, 4 и -6 соответственно. В этом случае Н |Xi

является отрицательно определенной матрицей (см. раздел А.З), откуда следует, что точка Х0 = (1/2, 2/3, 4/3) является точкой максимума.

В общем случае, когда матрица Н |х является неопределенной, точка Х0 должна быть седловой. Если же матрица Н |х оказывается полуопределенной, то соответ­ствующая точка Х0 может как быть, так и не быть экстремальной. При этом фор­мулировка достаточного условия существования экстремума значительно услож­няется, ибо для этого необходимо учитывать члены более высоких порядков в разложении Тейлора.

Применим достаточные условия, полученные в теореме 20.1.2, к функции одной переменной. Пусть у0 — стационарная точка функции тогда

20.1. Экстремальные задачи без ограничений

1) неравенство f(y0)<0 является достаточным условием существования мак­симума в точке у0;

2) неравенство / (i/0) > 0 является достаточным условием существования мини­мума в точке у0.

Если же для функции одной переменной / (у0) = 0, то необходимо исследовать производные высших порядков в соответствии со следующей теоремой.

Теорема 20.1.3. Если в стационарной точке уй функции f(y) первые (п- 1) ее производных равны нулю и f '"у0) *■ 0, то в точке у = у0 функция f(y) имеет

1) точку перегиба, если п — нечетное;

2) точку максимума, если п — четное и fM(y0) < 0;

3) точку минимума, если п — четное и f iny0) > 0.

Пример 20.1.3

Рассмотрим функцииДу) = у* п g(y) = у3. Для функцииДу) = у* имеем

/(у) -4/ = 0,

откуда получаем стационарную точкуу0 = 0. Далее находим

/(О) =/"(0) =/,3,(0) = 0. Так какfi4) = 24 > 0, тоу0 = 0 является точкой минимума (рис. 20.2). Для функции g{y) = у3 имеем

g'(y)=3.y2 = 0.

Следовательно, точка у0 = 0 является стационарной точкой. Поскольку g(0) =g (0) = 0, g<3)(0) = 6 и не обращается в нуль, точкау0 = 0 является точкой перегиба.

/О) //

  g(y)jy3
( 0 У

о

Рис. 20.2. Стационарные точки функций i(y) = у' и g(y) = у

УПРАЖНЕНИЯ 20.1.1

1. Найдите экстремальные точки следующих функций.

a) f(x) = х3 + х.

b) f(x) = х* + х2.

c) f(x) = 4*4 - х2 + 5.

Глава 20. Классическая теория оптимизации

d) /(*) = (Зх - 2)2х - З)2.

e) /(*) = 6л:5 -4х3 + 10.

2. Найдите экстремальные точки следующих функций.

a) /(X) = х,3 + х2 - Зх,х2 .

b) /(Х) = 2х2 + х2 + х3 +6(х, +х2 + x,) + 2x,x2xs.

3. Проверьте, что функция

/ (х,, х2, х,) = 2х,х2х3 - 4х,х, - 2х2х3 + х2 + х2 + х2 - 2л:, - 4х2 + 4х,

имеет стационарные точки (0, 3, 1), (0, 1, -1), (1, 2, 0), (2, 1, 1) и (2, 3, -1). Используйте достаточные условия для нахождения экстремумов функции.

4. Решите следующую систему уравнений путем превращения ее в задачу ми­нимизации нелинейной целевой функции при отсутствии ограничений на переменные.

х2 - xf = 0 , х2 - хх = 2.

(Подсказка, min / xv х2) имеет место при /(*,, х2) = 0.)

5. Докажите теорему 20.1.3.

20.1.2. Метод Ньютона-Рафсона

В общем случае использование необходимого условия экстремума V/(X) = 0 для поиска стационарных точек функции /(X) может быть сопряжено с трудностями, возникающими при численном решении соответствующей системы уравнений. Ме­тод Ньютона-Рафсона предлагает итерационную процедуру решения системы не­линейных уравнений. Несмотря на то что данный метод рассматривается в этом разделе именно в указанном контексте, на самом деле он относится к числу гради­ентных методов численного поиска экстремумов функций при отсутствии ограни­чений (см. раздел 21.1.2).

Рассмотрим систему уравнений

/,(Х) = 0,1=1,2, ...,т. Пусть X* — некоторая фиксированная точка. Используя разложение Тейлора, имеем /((Х) * /,(Х*) + V/,(Xk)(X - X*), i - 1, 2, т.

Следовательно, исходная система уравнений приближенно представима в виде

/,(Х*) + V/,(X')(X - X*) = 0, i = 1, 2.....т.

Эти уравнения можно записать в матричной форме:

Ак + ВДХ-Х*) = 0.

Предположим, что векторы /,(Х) независимы, тогда матрица В, является невырож­денной. В результате из предыдущего уравнения получим

х = х'-в;Ч,.

Идея метода Ньютона-Рафсона состоит в следующем. На первом шаге выбирается начальная точка Х°. С помощью полученного уравнения по известной точке X* можно вычислить координаты новой точки X**1. Процесс вычислений завершается в точке X", которая считается приближенным решением исходной системы, если Xm » X""1.

20.1. Экстремальные задачи без ограничений

Геометрическая интерпретация данного метода для функции одной переменной f(x) приведена на рис. 20.3. Связь между точками хк и хк+1 в этом случае выражается формулой

или

Рис. 20,3. Итерационный процесс в методе Нъютона-Рафсона

На рис. 20.3 видно, что положение точки хк+1 определяется углом 0 наклона ка­сательной к графику функции f(x) в точке хк, где tg0= fix").

Одним из недостатков изложенного метода является то, что для функций обще­го вида не всегда гарантируется его сходимость. На рис. 20.3 видно, что при выборе в качестве х° точки а итерационный процесс расходится. Простых рецептов для вы­бора "хорошего" начального приближения не существует.

Пример 20.1.3

Для демонстрации работы метода Ньютона-Рафсона рассмотрим задачу нахожде­ния стационарных точек функции

f{x) = (Зх - 2?(2х - З)2.

Чтобы найти стационарные точки, надо решить уравнение f'(x) = 0, которое в дан­ном случае принимает вид кубического уравнения

72х3 - 234л:2 + 241х - 78 = 0.

Глава 20. Классическая теория оптимизации j

Шаблон Excel ch20NewtonRaphson.xls методом Ньютона-Рафсона может решить лю­бое уравнение с одной переменной. На рис. 20.4 показано решение в этом шаблоне уравнения данного примера. Чтобы найти это решение, надо в ячейку СЗ ввести следующее выражение, заменив переменную х ссылкой на ячейку A3.

72л3 - 234л:2 + 24 Ьс -78 216х2-468*+ 241

Отметим, что числитель этого выражения является формулой для вычисления пер­вой производной функции f(x), а знаменатель — формулой второй производной, что и требуется для метода Ньютона-Рафсона при решении уравнения f'(x) = 0. Пе­ред началом вычислений также задается предел точности А (= 0,001) и начальное значение х0 (= 10). Если разность между значениями хь и Xм будет меньше предела точности, то процесс вычислений завершается. В данном примере метод сошелся к значению х = 1,5.

  А   С
Newton-Raphson (One-Variable) Method
Input data: Type f(A3)/f '(A3) in C3. where A3 represents x In f(x)
  #3HA4!
д = 0.0001  
  Initial x0= ю  
Solution: (excel i Si' te It if =eiertpd *0 rai  
x* = 1.50000]  
Calculations: ш rforroc*icui"
  x(k+1) f(x(k))/f '(x(k))
10.000000 7 032108 2 967892314
7.032108 5 055679 1.97642875
5.055679 3.741312 1.314367243
13. 3.741312 2.869954 0.871358025
2.869954 2.296406 0.573547408
2.296406 1.925154] 0.371251989
1.925154 1 694452 0.230702166
1.694452 1.565453
1 565453 1 511296 0.054156405
1 511296 1.500432 0 010864068
1 500432 1 500001 0 000431385
21 , 1.500001 1.500000 6 70394E-07

Рис. 20.4. Решение алгебраического уравнения методом Ньютона-Рафсона

На самом деле наша функция f(x) имеет три стационарные точки х = 2/3, х = 13/12 и х = 3/2. Оставшиеся две стационарные точки можно найти, если задать соответ­ствующие начальные значения, например, л:0 = 0,5 и х0= 1. В общем случае надо сделать несколько попыток решения задачи методом Ньютона-Рафсона при раз­личных начальных значениях, чтобы отыскать все корни уравнения. В данном примере нам "повезло" — мы знаем, что наше уравнение имеет три корня. Однако в случае сложных уравнений или уравнений, зависящих от нескольких перемен­ных, как правило неизвестно ни количество корней, ни их местоположение.

20.2. Задачи на экстремум при наличии ограничений

УПРАЖНЕНИЕ 20.1.2

1. Примените метод Ньютона-Рафсона для решения упражнений 20.1.1.1, с и 20.1.1.2, Ъ.

20.2. ЗАДАЧИ НА ЭКСТРЕМУМ ПРИ НАЛИЧИИ ОГРАНИЧЕНИЙ

В настоящем разделе рассматриваются задачи поиска экстремумов непрерывных функций при наличии ограничений на переменные. В разделе 20.2.1 рассматривается ситуация, когда дополнительные ограничения имеют вид равенств, а в разделе 20.2.2 — неравенств. Основная часть материала раздела 20.2.1 изложена в соответствии с [2].

20.2.1. Ограничения в виде равенств

В данном разделе рассматривается два метода решения оптимизационных задач при наличии ограничений в виде равенств: метод Якоби и метод Лагранжа. Метод Лагранжа можно логически получить из метода Якоби. Эта связь позволяет дать интересную экономическую интерпретацию метода множителей Лагранжа.

Метод приведенного градиента (метод Якоби). Рассмотрим задачу

минимизировать z = /(X)

при ограничениях

g(X) = 0,

где

X = (Xj, х2, хп),

S (.§!> &2> *

Функции /(X) и g,(X), t= 1, 2, т, предполагаются дважды непрерывно диффе­ренцируемыми.

Идея использования приведенного градиента заключается в том, чтобы найти замкнутое аналитическое выражение для первых частных производных функции /(X) во всех точках, удовлетворяющих ограничениям g(X) = 0. Соответствующие стационарные точки определяются из условия равенства нулю указанных частных производных. Затем можно использовать достаточные условия, сформулированные в разделе 20.1, для классификации найденных стационарных точек.

Для пояснения изложенной идеи рассмотрим функцию f(xv х2), график которой представлен на рис. 20.5. Предположим, что эту функцию необходимо минимизи­ровать при ограничении

g,(*i> х2) = хг - Ь = 0,

где Ь — некоторая константа. На рис. 20.5 видно, что кривая, которая проходит через точки А, В и С, состоит из значений функции f(x,, х2), для которых заданное ограничение выполнено. В соответствии с рассматриваемым методом определяются компоненты приведенного градиента функции f(xlt х2) в каждой точке кривой ABC. Точка В, в которой приведенная производная обращается в нуль, является стацио­нарной для рассматриваемой задачи с ограничением.

Теперь рассмотрим общую математическую формулировку метода. Из теоремы Тейлора следует, что для точек X + АХ из окрестности точки X имеем

/(х+дх)-/(х) = у/-(х)дх+о(дх2),

g(X + AX)-g(X) = Vg(X)AX + 0(Ax2).

Глава 20. Классическая теория оптимизации

Лх{2)

   
/ J / 1 1 1 1 х • : 1 ч в У7
х2 ----^ х2 = ь Линия минимального значения целевой функции

Рис. 20.5. Иллюстрация к методу Якоби

При Д#. -» 0 эти уравнения принимают вид

6/(X) = V/(X)c5X,

dg(X) = vg(X)sx.

Поскольку g(X) = 0, 9g(X) = 0 в допустимой области. Отсюда следует, что

о/(Х) - V/(X)3X = 0,

vg(x>ax = o.

Как видим, задача сводится к решению т + 1 уравнений с п + 1 неизвестными, ко­торыми являются 9/(Х) и ЭХ. Неизвестную величину Э/(Х) можно определить, как только будет найден вектор ЭХ. Это означает, что, по существу, имеется т уравне­ний с п неизвестными.

При т > п по меньшей мере т- п уравнений системы являются избыточными. После устранения избыточности количество независимых уравнений в системе ста­новится равным т (< п). Если т = п, решением является ЭХ = 0. При этом точка X не имеет допустимой окрестности, и, следовательно, пространство решений задачи состоит из единственной точки. Такая ситуация является тривиальной. Ситуацию, когдат<п, рассмотрим подробно.

Пусть X = (Y, Z), где

Y = (j/p уг, ...,ym)nZ = (z1,z2, ...,zn_m)

20.2. Задачи на экстремум при наличии ограничений

называются зависимыми и независимыми переменными соответственно. Перепи­сывая градиенты функций / и g в новых обозначениях, получим

v/(y, z) - (vy/, vz/), Vg(y, z) = (VYg, Vzg). Введем в рассмотрение матрицы

fvYg, ] J=vYg= ; ,

c = vzg =

Матрица JmXm называется матрицей Якоби, a CmX((1_m) — матрицей управления. Мат­рица Якоби J предполагается невырожденной. Это всегда можно обеспечить, по­скольку рассматриваемые т уравнений являются независимыми по определению. Поэтому компоненты вектора y можно выбрать среди компонентов вектора x та­ким образом, что матрица J окажется невырожденной.

Исходную систему уравнений с неизвестными 9/(Х) и ЭХ можно переписать в следующем виде

a/(y, Z) = vY/r3Y + vz/dZ, JoY = -CdZ.

Так как матрица J невырожденная, существует обратная матрица J-1. Следова­тельно,

sy = - j'caz.

Подставляя это выражение oY в уравнение для 9/(y, Z), можно выразить df через 9Z в следующем виде

a/(y, Z) = (Vzf-VYfJ1C)dZ.

Из этого уравнения получаем формулу для производных функции f по вектору не­зависимых переменных Z

v£/ =

gc/(Y,Z)

= vz/-vy/j-'c,

где VJ представляет вектор приведенного градиента функции / по z. Следователь­но, вектор vc/(y,z) должен обращаться в нуль в стационарных точках.

Достаточные условия экстремума в стационарной точке аналогичны изложен­ным в разделе 20.1. В этом случае элементы матрицы Гессе будут соответствовать компонентам вектора независимых переменных z. Между тем элементы матрицы Гессе должны быть приведенными вторыми производными. Чтобы показать, как они вычисляются, положим

ve/ = vz/-wc.

Глава 20. Классическая теория оптимизации

Отсюда следует, что i-й строкой приведенной матрицы Гессе является вектор dVcf/dzt. Заметим, что W — функция от Y, a Y, в свою очередь, — функция от Z. Следовательно, при вычислении частной производной Vc/ по zt следует применять правило дифференцирования сложной функции, а именно

dVj dVj by s dzt byj 8z,

Пример 20.2.1

Рассмотрим следующую задачу.

f(X) = xf+3x22+5Xlxl,

g, (X) = х,х3 + 2x2 + xj -11 = 0,

g2 (X) = x,2 + 2x,x2 + xl -14 = 0.

Известна допустимая точка X° = (1, 2, 3). Требуется оценить приращение функции/ (= 3J) в допустимой окрестности точки Х°.

Пусть Y = (хрх3) и Z = х2. Имеем

/б/ б/"

VY/ =

= (2xt+5x2,xlx,),

Vz/ = #- = 6x2> ox,

J =

C =

   
  Их,
   
   
(d8<)    
Bx2    
     
{dx2j    

y2x{+2x2ъ)

Оценка приращения д/ в окрестности допустимой точки X =(1, 2, 3), вызванного малым изменением 8х2 = 0,01, получается следующим образом:

J-'C =

6 6

' _6_ 1 ^  
 
 
, 12 12,  
  ( 2,83 4
  "1-2,50,
       

Следовательно, приращение функции/с учетом ограничений равно

3J=(VZ/-VY/J-'C)0Z =

6x2-(47,30)

'2,83s ,-2.5, дх2 =-46,01&2.

20.2. Задачи на экстремум при наличии ограничений

Если указана величина изменения дх2 независимой переменной х2, то допустимые значения дхх и 8х3 зависимых переменных хх и х3 определяются по формуле

з = -г'сэг.

При дх2 = 0,01 получаем

(сЬсЛ т. (-0,0283^1

= -J Сох, =

дх-

1, 0,0250)

Чтобы проверить точность полученной выше оценки для д/, можно вычислить зна­чения функции/в точках Х° и Х° + ЭХ. Получаем

Х° + ЭХ = (1 - 0,0283, 2 + 0,01, 3 + 0,025) = (0,9717, 2,01, 3,025).

Отсюда следует, что

ДХ) = 58 иДХ° + ЭХ) = 57,523

или

Й/=ЛХ° + ЭХ) -ДХ°) = -0,477.

Полученный результат свидетельствует об уменьшении значения функции / по сравнению с вычисленным выше в соответствии с формулой для Э</. Это различие между двумя полученными результатами (-0,477 и -0,4601) является следствием линейной аппроксимации в окрестности точки Х°. Поэтому приведенная выше фор­мула дает хорошие результаты лишь тогда, когда отклонения от точки Xе малы.

УПРАЖНЕНИЕ 20.2.1

1. Вернитесь к задаче из примера 20.2.1.

a) Вычислите величину 8J двумя способами, как это было проделано в при­мере, используя дх2 = 0,001 вместо дх2 = 0,01. Будет ли влияние линейной аппроксимации менее существенным при уменьшении величины Эдг2?

b) Установите зависимость между приращениями dxv дх2 и дх3 в допустимой точке Х° = (1,2,3) при условии, что точка (дг" + дх,,х2 +8х2,х, + 8х}) также является допустимой.

c) Если Y= (х2, х3) и Z = дг,, то каким должно быть значение dxv чтобы вели­чина приращения dj была такая же, как в рассмотренном примере?

Пример 20.2.2

Данный пример иллюстрирует процедуру использования метода приведенного гра­диента. Рассмотрим задачу

минимизировать /(X) = х + х + дг,

при ограничениях

g1(X) = x1+x2 + 3x3-2 = 0, Я2(Х) = 5х1 + 2дг23-5 = 0.

Глава 20. Классическая теория оптимизации

Определяем экстремальные точки целевой функции при наличии ограничений сле­дующим образом. Пусть Y = (х,, х2) и Z = х3. Тогда

VY/ =

= (2дг„2х2), 4J = $- = 2xv

ох.

J =

1 п

ч5 2,

J =

( 2 3 5 3 3

~ъ)

Следовательно,

Vc/ = !^ = 2a-,-(2x„2x2)

дсх,

( 2 3 5 V 3

0;

Ю 28 . --—х,-—хг + 2хъ.

В стационарной точке выполняется равенствоУ/= 0, которое вместе с ограниче­ниями g,(X) = 0 и g2(X) = 0 определяет искомую стационарную точку (или точки). В данном случае система уравнений

V/=0, £,(Х) = 0, &(Х) = О,

'10 -28 6' V   '0У
хг =
v 5     Л

имеет решение Х°»(0,81, 0,35, 0,28).

Далее устанавливаем тип полученной стационарной точки путем проверки выпол­нения достаточных условий экстремума. Так как х3 — независимая переменная, из равенства 7/= 0 следует, что

3.7 dx, dx2
дсх] " 3 [dx,j [dxj

+ 2 =

10 28

dx, dx2 + 2.

В соответствии с методом Якоби получаем

( dxA   ' £N
dx, dx2 = -j'C =
    , 3,

Теперь путем подстановки находим, что d2J 460 д,х 9 > 0 . Следовательно, X — точка

минимума.

20.2. Задачи на экстремум при наличии ограничений

Анализ чувствительности с помощью метода Якоби. Метод Якоби можно использо­вать для анализа чувствительности оптимального значения целевой функции / к малым изменениям правых частей ограничений оптимизационной задачи. В частности, можно определить, как повлияет на оптимальное значение функции / замена ограничения g,(X) = О на g,(X) = dgr Исследование такого типа именуется анализом чувствительности и в некотором смысле аналогично соответствующей процедуре, которая была рассмот­рена в линейном программировании (глава 4). Следует однако заметить, что анализ чувствительности в нелинейном программировании приводит к результатам, спра­ведливым лишь в малой окрестности экстремальной точки. Знакомство с такими процедурами будет полезно при изучении метода множителей Лагранжа.

Выше было показано, что

адт, z> = vY/dY + vz/az,

dg = JSY + CdZ.

Предположим, что dg * 0, тогда

бт = J"'ag- jt'c az.

Подставляя последнее выражение в уравнение для 3/(Y, Z), получаем

o/(Y,z) = vY/i-'ag+vc/az,

где Vc/ = V2./ -VY/J~'C, как было определено ранее. Полученное выражение для a/(Y, Z) можно использовать при анализе изменений целевой функции f в малой окрестности допустимой точки Х°, обусловленных малыми изменениями dg и дЪ.

В экстремальной (фактически любой стационарной) точке Х0 = (Y0, Z0) приве­денный градиент Vc/ должен быть равен нулю. Следовательно, в точке Х0 имеем

a/-(Y0,z0)=vYn/j-'ag(Y0,z0)

или

dg Y'J

вычисленному в точке Х0. Это значит, что влияние малых изменений dg на опти­мальное значение функции / можно оценить через скорость изменения функции / по отношению к изменениям g. Эти величины принято называть коэффициентами чувствительности.

Пример 20.2.3

Рассмотрим задачу из примера 20.2.2. Оптимальной точкой является X0=(x,V2V3°) = (0,81, 0,35, 0,28). Так как Y0 = (х°,х°2), то

Vv„/ =

'ид

чйх,'йх2,

= (2jc,°,2x2) = (1,62, 0,70).

Следовательно,

= VYo/J-'=(1,62,0,7)

( 2 I)

3 3

5 _ 1

3 3,

= (0,0876,0,3067).

Глава 20. Классическая теория оптимизации

Это свидетельствует о том, что изменение dgx = 1 приводит к увеличению значения целевой функции / приблизительно на 0,0867. Аналогично при dg2 = 1 имеет место увеличение значения/приблизительно на 0,3067.

Использование метода Якоби в задачах линейного программирования. Рас­смотрим задачу линейного программирования.

Максимизировать г — 2л:, + Зхг

при ограничениях

хх -Ь х2 ~Ь х3 = 5, хг — х2 + xt = 3,

^3' ^4 — ^'

Для каждого условия неотрицательности xf > 0 введем соответствующую (неотрицательную) дополнительную переменную w2. Таким образом, дг, - w2 = 0

или Xj = w2. При такой замене условия неотрицательности становятся неявными,

и исходная задача принимает вид

максимизировать z = 2w2 + 3w2

при ограничениях

w, + ve, + w, = 5,

= 3.

Для метода Якоби положим Y = (u>,, w2) и Z = (u>3, ц>4). (В терминологии линейного программирования векторы Y и Z образованы базисными и небазисными перемен­ными соответственно.) Следовательно,

J =

(2w, 2w7}

J-' =

J__1_

4ve, 4vv,

J__-1_

4vv, 4ve,

w, и W, * 0,

так что

'2w, 0 4 4 0 2w4, ,VY/ = (4w„6w2),Vz/ = (0,0),

Vc/ = (0,0)-(4w„6w2)

4vv, 4vv,

4ve2 4w2,

2w, 0 0 2w4 =(-5w3,w4).

Решение системы уравнений, состоящей из уравнения V/ = 0 и ограничений зада­чи, позволяет определить стационарную точку w1 = 2, w2=l, w3 = 0, w4 = 0. При этом матрица Гессе имеет вид

20.2. Задачи на экстремум при наличии ограничений

' 57    
  6>35rw4   '-5
     
Aw3acw4    

Поскольку Hc является неопределенной матрицей, стационарная точка не будет точкой максимума.

На самом деле полученный результат не является неожиданным, поскольку (небазисные) переменные w3 и ш4 (и, следовательно, х3 и х4) равняются нулю, как и предусмотрено теорией линейного программирования. Следовательно, решение, полученное с помощью метода Якоби, определяет ту или иную крайнюю точку про­странства допустимых решений рассматриваемой задачи, которая связана с кон­кретным выбором векторов Y и Z. При этом найденное решение может как быть, так и не быть оптимальным. Однако метод Якоби позволяет распознать оптималь­ное решение задачи путем использования достаточных условий экстремума.

Приведенные рассуждения свидетельствуют о том, что для оптимального реше­ния задачи линейного программирования необходимо менять конкретный выбор Y и Z, пока не будут выполнены достаточные условия. Пусть, например, Y = (w2, wt) и Z = (ц>,, w3). Тогда соответствующий приведенный градиент принимает вид

V,/ = (4wp0)-(6w2,0)

I

2ve2 l

2w.

о

2w.

(2w, 2w,

2ve3 0 =(-2wp6w3).

Соответствующая стационарная точка определяется значениями wl = О, w2 w3 = 0, wt=J&. Так как матрица

-2 0}

-Л,

Н =

0 -6)

является отрицательно определенной, то указанная точка — точка максимума.

Полученный результат можно проверить графически, используя рис. 20.6. Пер­вое из найденных решений (дс, = 4, хг = 1) не является оптимальным, в то время как второе (jc, = 0, х2 = 5) оказывается таковым. Читатель имеет возможность прове­рить, что две оставшиеся крайние точки пространства допустимых решений не яв­ляются точками максимума. Кроме того, с использованием достаточных условий экстремума можно показать, что в точке xt — 0, хг = 0 возникает минимум целевой функции рассматриваемой задачи.

Заметим, что введенные ранее коэффициенты чувствительности VYj/J"' в задаче

линейного программирования являются переменными двойственной задачи. Чтобы проиллюстрировать это на рассматриваемом численном примере, обозначим через и, и и2 соответствующие переменные двойственной задачи. В оптимальной точке w1 = 0, w2 = VJ, w3 = 0, w4 = -To" переменные двойственной задачи вычисляются по формуле

(«„«2) = VYr'=(6w2;0)

1

2w,

^2w4 2w4

=(з.о).

Глава 20. Классическая теория оптимизации

Рис. 20.6. Пространство решений задачи ЛП

В точке (3, О) целевая функция двойственной задачи равна 5и, + Зиг = 15 и совпадает с оптимальным значением целевой функции прямой задачи. Полу­ченное решение также удовлетворяет ограничениям двойственной задачи, т.е. является допустимым и, следовательно, оптимальным. Это значит, что коэффи­циенты чувствительности совпадают с переменными двойственной задачи линейного программирования.

Из процедуры применения метода Якоби к решению задач линейного програм­мирования можно сделать несколько общих выводов. Рассмотренный численный пример показывает, что в силу необходимых условий экстремума независимые пе­ременные задачи равны нулю. Достаточные же условия указывают на то, что мат­рица Гессе является диагональной. Следовательно, все диагональные элементы этой матрицы должны быть положительными, если в рассматриваемой точке имеет место минимум, и отрицательными — в случае максимума.

Из вышесказанного следует, что необходимое условие экстремума равносильно указанию на то, что оптимальное решение задачи следует искать только среди ее базисных решений. В этом случае в качестве небазисных переменных задачи ли­нейного программирования выступают независимые переменные. Достаточное же условие приводит к выводу, что между диагональными элементами матрицы Гессе и разностями zf - с, задачи линейного программирования (см. раздел 7.2), получае­мыми с помощью симплекс-метода, существует строгое соответствие.1

УПРАЖНЕНИЯ 20.2.2

1. Предположим, что задача из примера 20.2.2 решена следующим образом. Сначала из ограничений задачи выражаем переменные дс, и хг через дс3; затем используем полученные соотношения для представления целевой функции в зависимости лишь от переменной х3. Дифференцируя полученную целевую функцию по х3, находим точки минимума и максимума.

1 Формальное доказательство справедливости этих утверждений для общей задачи ли­нейного программирования можно найти в статье Taha Н. and Curry G. "Classical Derivation of the Necessary and Sufficient Conditions for Optimal Linear Programs", Operations Research, Vol. 19, 1971, pp.1045-1049. В этой статье показано, что все основные положения симплекс-метода могут быть получены с помощью метода Якоби.

20.2. Задачи на экстремум при наличии ограничений

a) Будут ли производные новой целевой функции (выраженные через пере­менную х3) отличаться от полученных с помощью метода Якоби?

b) В чем основное отличие описанной процедуры решения задачи от ме­тода Якоби?

2. Примените метод Якоби к решению задачи из примера 20.2.1, выбирая Y = (x2, х3) и Z = (л:,).

3. С помощью метода Якоби решите следующую задачу.

Минимизировать /(X) = ^х,2

при ограничении

П* = с,

где С — положительная константа. Пусть теперь правая часть ограничения равна С + S, где S— малое положительное число. Найдите соответствующее изменение оптимального значения целевой функции /.

4. Решите методом Якоби следующую задачу.

Минимизировать /(X) = 5х,2 + х + 2х,х2

при ограничении

g(X) = х,х2 - 10 = 0.

a) Найдите изменение оптимального значения целевой функции /(X), если ограничение задачи примет вид хухг - 9,99 = 0.

b) Найдите изменение значения целевой функции /(X) в окрестности допус­тимой точки (2, 5) при условии, что х1х2 = 9,99 и дх1 = 0,01.

5. Решите следующую задачу.

Максимизировать /(X) = х] + 2х + Юх] + 5х^х2

при ограничениях

g, (X) = jc, + х + Ъхгхг -5 = 0,

g2 (X) = xf + 5х,х2 + лг32 - 7 = 0.

Используйте метод Якоби для нахождения df(X) в окрестности допусти­мой точки (1, 1, 1). Пусть указанная окрестность определяется условия­ми dgl = -0,01, dg2 = 0,02 и дх1 = 0,01.

6. Решите следующую задачу.

Минимизировать /(X) = xf + х + х] + х

при ограничениях

g,(X) = ж, + 2ж2 + Зх3 + 5xt - 10 = 0,

g2(X) = ж, + 2ж2 + 5ж3 + 6ж4 -15 = 0.

а) Покажите, что при выборе х3 и xt в качестве независимых переменных ме­тод Якоби не дает оптимального решения.

Глава 20. Классическая теория оптимизации

b) Решите задачу, выбрав х, и х3 в качестве независимых переменных, и примените достаточные условия для исследования полученной стацио­нарной точки.

c) Найдите коэффициенты чувствительности для этой задачи. 7. Решите следующую задачу линейного программирования.

Максимизировать /(Х) = ^с;ху

при ограничениях

й(Х) = Е«Л-*,=0. '- = 1,2,..., и,

/=|

х^>0, j=l, 2, п.

Покажите, что если в этой задаче пренебречь условиями неотрицательности переменных, то приведенные производные Vcf(X) совпадают с разностями Ц-cv}, определяемыми условием оптимальности задачи линейного про­граммирования (раздел 7.2), а именно

{Zj - с) = {СвВ^Р, - с) для всех

Можно ли непосредственно применять метод приведенного градиента к реше­нию задачи линейного программирования? Почему можно или почему нельзя?

Метод множителей Лагранжа. Коэффициенты чувствительности метода Якоби можно использовать для решения задач с ограничениями в виде равенств. Пусть

x = vyj-'=^.

dg

Следовательно,

df-kdg = 0.

Это уравнение соответствует необходимым условиям стационарности точек, так как формула для — получена с учетом того, что Vcf = 0. Представленное уравнение

можно записать в более удобной форме, если перейти к частным производным по всем переменным xjt что приводит к системе уравнений

т-(/-»в) = о, ; = 1,2,...,и.

Полученные уравнения вместе с ограничениями задачи g(X) = 0 формируют систе­му, которая позволяет определить допустимые векторы X и X, удовлетворяющие необходимым условиям стационарности.

Описанная процедура составляет основу метода множителей Лагранжа, который позволяет определять стационарные точки задачи оптимизации с ограничениями в виде равенств. Формально схема этого метода представима в следующем виде. Пусть

L(X, k) = f(X)-Xdg(X).

20.2. Задачи на экстремум при наличии ограничений

Функция L называется функцией Лагранжа, а параметры X — множителями Ла-гранжа. Как следует из определения, эти множители имеют тот же смысл, что и коэффициенты чувствительности, фигурирующие в методе Якоби. Уравнения

—=0 и —=0 дк дХ

дают необходимые условия для определения стационарных точек функции /(X) при ограничениях g(X) = 0. Достаточные условия, используемые в методе множи­телей Лагранжа, будут сформулированы без доказательства. Определим матрицу

0 | Р

где

Р =

a2L(x,x) . .

и Q = —,—\ ддя всех ' и }■

ох ох.

Матрица Нв называется окаймленной матрицей Гессе.

Пусть имеется стационарная точка (Х0, Х0) функции Лагранжа L(X, X), и окайм­ленная матрица Гессе Н8 вычислена в точке (Х0, Х0). Тогда Х0 является следующим.

1. Точкой максимума, если, начиная с углового минора порядка 2т + 1, после­дующие п-т угловых миноров окаймленной матрицы Гессе Нв образуют знакопеременный числовой ряд, в котором знак первого члена определяется множителем (-l)m+I.

2. Точкой минимума, если, начиная с углового минора порядка 2т + 1, после­дующие п-т угловых миноров матрицы Нв имеют знаки, определяемые множителем (-1)"1.

Эти условия являются достаточными для определения экстремальной точки. Другими словами, экстремальной может оказаться стационарная точка, не удовле­творяющая этим условиям.

Существуют другие условия определения экстремальных точек задачи, которые являются как необходимыми, так и достаточными. Однако их практическое ис­пользование часто связано со значительными вычислительными трудностями. Оп­ределим матрицу

0 Р Л ,Pr Q-ulJ'

вычисленную в стационарной точке (Х0, Х0), где ju — неизвестный параметр. Пусть |Д| — определитель матрицы Д, тогда все п-т действительных корней ju, полинома |Д| = 0 должны быть

1) отрицательными, если Х0 — точка максимума,

2) положительными, если Х0 — точка минимума.

Глава 20. Классическая теория оптимизации

Пример 20.2.4

Рассмотрим задачу из примера 20.2.2. Функция Лагранжа имеет вид £(ХД) = xf + х22 + х2 + х2 + 3хъ - 2)-Х2(5дг, + 2.v2 + дг, -5).

Необходимые условия экстремума записываются в виде следующей системы уравнений.

— = 2х,-X,-5Х2=0, их,

^ = 2х21-2Х2=0, ох2

= 2x,-3Xt-X2 = 0,

дх,

^- = -(х)+х2+Зх,-2) = 0,

DL

= —(5лг, + 2х2 + х, — 5) = 0.

Решением этой системы являются векторы

Х0 = (*„ х2, xz) = (0,8043, 0,3478, 0,2826),

А. = (Я,, Л2) = (0,0870, 0,3043).

В этом решении объединены результаты примеров 20.2.2 и 20.2.3. Как видим, значения множителей Лагранжа X совпадают со значениями коэффициентов чувствительности, полученными в примере 20.2.3. Это указывает на то, что эти коэффициенты не зависят от выбора вектора зависимых переменных Y при реализации метода Якоби.

Чтобы показать, что найденная точка является точкой минимума, рассмотрим матрицу

Г0 0 1 13" 0 0 5 2 1 Н" = 1 5 2 0 0 12 0 2 0 ^3 1 0 0 2j

Здесь и = 3,/и = 2ии-/и=1. Следовательно, необходимо проверить только опреде­литель матрицы Ня, знак которого задается множителем (-1)2 в точке минимума. Так как detH* = 460 > 0, то Х0 является точкой минимума.

20.2. Задачи на экстремум при наличии ограничений

Пример 20.2.5

Рассмотрим задачу при ограничении минимизировать z = х2 + xl + х]

4х, +xl +2х,-14 = 0.

Функция Лагранжа имеет вид

ЦХ,) = х221+х2

-Х(4дг, +xl + 2х, -14).

Отсюда получаем необходимые условия экстремума в виде системы

дх,

= 2х,-4Х = 0,

= 2х2 - 2Ъ:2 = 0,

дх2

-= 2х,

дх,

dl

■2Х = 0,

— = -(Ах. + xl + 2*з -14) = 0, дХ v 2 3 >

решениями которой являются векторы

(Х„, A0), = (2, 2,1,1), (Х00)2 = (2,-2, 1, 1), (Х00)3 = (2,8,0, 1,4, 1,4). Используя достаточные условия, вычислим элементы матрицы

'0 4 2х2 2Л 4 2 0 0 2х2 0 2-2Х 0 {2 0 0

Так как /и = 1 и и = 3, то для того, чтобы стационарная точка была точкой миниму­ма, знак последних 3-1 = 2 угловых миноров должен определяться знаком мно­жителя (-1)"" = -1. Таким образом, в точке (Х^ Л0)1 = (2, 2, 1, 1) имеем

0 4 4 4 2 0 4 0 0

-32 < 0

0 4 4 2

4 2 0 0

4 0 0 0

2 0 0 2

= -64<0.

Вточке(Х0Д0)2 = (2, -2, 1, 1)

0 4^ 4 2 0 -4 0 0

= -32<0

0 4-42

4 2 0 0

-4 0 0 0

2 0 0 2

= -64<0.

Глава 20. Классическая теория оптимизации

Наконец, в точке (Х0, А0)3 = (2,8, 0, 1,4, 1,4)

0 4 0 4 2 0 0 0 -0,8 = 12,8 > 0 и

0 4 0 2

4 2 0 0

О 0 -0,8 О

2 0 0 2

= 32>0.

Отсюда следует, что (X,,), и (Х„)2 — точки минимума. Тот факт, что в точке (Х„)3 не удовлетворяются достаточные условия максимума или минимума, не означает, что эта точка не является экстремальной. Это следствие того, что используемые усло­вия являются лишь достаточными.

Для иллюстрации схемы проверки достаточных условий экстремума, которая ис­пользует корни полинома, рассмотрим матрицу

'0 4 2х2 2 ^

4 2-й 0 0

2 0 2-2X-U 0

к2 0 0 2-й,

А =

В точке (Х„, Я0), = (2, 2, 1,1) имеем

|Д| = V- 26/^+16 = 0,

откуда получаем ju= 2 и //=8/9. Так как все ju> 0, то (Х0), = (2, 2, 1) — точка мини­мума. В точке (Х0, Л0)2 = (2, -2, 1,1)

|Д| = 9//- 26// + 16 = 0,

что совпадает с рассмотренным выше случаем. Следовательно, (Х0)2 = (2,-2, 1) яв­ляется точкой минимума. Наконец, в точке (Х„, Л0)3 = (2,8, 0, 1,4, 1,4)

|Д| = 5//-6//-8 = 0,

откуда получаем ju=2 и //=-0,8, что свидетельствует о том, что точка (Х„)3 = (2,8, 0, 1,4) не является экстремальной.

УПРАЖНЕНИЯ 20.2.3

1. Методом Якоби и методом множителей Лагранжа решите следующую задачу линейного программирования.

Максимизировать /(X) = 5х, + Зх2

при ограничениях

^(Х) = х, + 2х2 + х3 - 6 = О, g2(X) = Зх, + х2 + хл - 9 = 0,

^"1* ^"2' ^"3> ^"4 ~

2. Найдите оптимальное решение следующей задачи.

Минимизировать /(X) = х1 + 2х22 + 1 Ох2

при ограничениях

g,(X) = xl+x22+x,-5 = 0, £2(Х) = лг, +5дг2 + х3-7 = 0.

20.2. Задачи на экстремум при наличии ограничений

Пусть g,(X) = 0,01 и g2(X) = 0,02. Найдите величину соответствующего изме­нения оптимального значения функции /(X).

3. Решите упражнение 20.2.2.6 методом множителей Лагранжа и проверьте, что полученные значения множителей Лагранжа совпадают со значениями коэффи­циентов чувствительности, полученными ранее при решении этого упражнения.

20.2.2. Ограничения в виде неравенств

В данном разделе показано, как метод множителей Лагранжа можно обобщить на случай задачи с ограничениями в виде неравенств. Основную часть раздела со­ставляет вывод условий Куна-Таккера, которые играют важную роль в нелиней­ном программировании.

Обобщенный метод множителей Лагранжа. Пусть дана задача, в которой требуется

максимизировать г = /(X)

при ограничениях

£(Х)<0, j = 1,2.....т.

Если в рассматриваемой задаче имеются условия неотрицательности переменных X > 0, то предполагается, что они включены в указанные т ограничений.

Основная идея обобщенного метода множителей Лагранжа состоит в том, что если точка безусловного оптимума функции /(X) не удовлетворяет всем ограничениям за­дачи, то оптимальное решение задачи с ограничениями должно достигаться в гра­ничной точке области допустимых решений. Следовательно, одно или несколько из т ограничений задачи должны выполняться как равенства. Поэтому вычислительная процедура обобщенного метода множителей Лагранжа включает следующие шаги.

Шаг 1. Решается задача без учета ограничений

максимизировать 2=/(Х).

Если полученное оптимальное решение удовлетворяет всем огра­ничениям задачи, вычисления заканчиваются, так как все огра­ничения являются избыточными. Иначе следует положить k = 1 и перейти к шагу 2.

Шаг 2. Активизируются любые k ограничений задачи (т.е. преобразовывают­ся в равенства), и оптимизируется функция /(X) при наличии k огра­ничений методом множителей Лагранжа. Если оптимальное решение этой задачи является допустимым по отношению к остальным огра­ничениям исходной задачи, вычисления заканчиваются: полученная точка является локальным оптимумом2. Иначе нужно сделать актив­ными другие k ограничений исходной задачи и повторить данный шаг. Если все подмножества, состоящие из k активных ограничений, не приводят к допустимому решению, следует перейти к шагу 3.

Шаг 3. Если k = m, вычисления прекращаются: задача не имеет допустимых решений. Иначе необходимо положить k — k + 1 и перейти к шагу 2.

В описанной вычислительной процедуре часто игнорируется то важное обстоя­тельство, что она не гарантирует получения глобального оптимума даже в тех

Локальный оптимум определяется из множества оптимумов, полученных в результа­те оптимизации целевой функции f(X.) при учете всех комбинаций из k ограничений-равенств, k = 1, 2, т.

Глава 20. Классическая теория оптимизации

случаях, когда задача имеет единственное оптимальное решение. Другим важным моментом является ошибочность интуитивного представления, что если p<q, то оптимальное значение целевой функции /(X) при р ограничениях-равенствах все­гда лучше, чем при q ограничениях-равенствах. В общем случае это имеет место лишь в том случае, когда набор из р ограничений является подмножеством набора из q ог­раничений. Рассматриваемый ниже пример служит иллюстрацией сказанного.

Пример 20.2.6

при ограничениях

Максимизировать z = - (2х - 5 )2 - (2дг2 -1 )2

л-, + 2х2 < 2, xitx2>0.

Графическое представление данной задачи (рис. 20.7) призвано помочь в понима­нии аналитических выкладок. Как видим, целевая функция задачи является во­гнутой, а область допустимых решений выпуклой. Отсюда следует, что эффектив­ный алгоритм должен гарантировать определение глобального оптимума. Однако обобщенный метод множителей Лагранжа, как будет показано, позволяет найти лишь точку локального максимума.

Рис. 20.7. Пространство решений для зада­чи примера 20.2.6

Точка безусловного экстремума находится как решение уравнений

— =-4(2*-5) = 0,

дх, У 1 '

—4(2дг2-1) = 0.

дх2

Отсюда имеем (xv х2) = (5/2, 1/2). Так как это решение не удовлетворяет условию .г, + 2лг2 < 2, ограничения поочередно активизируются. Рассмотрим ограничение х1 = 0. Функция Лагранжа в этом случае примет вид

L(x,,x2,) = —(2л:, - 5)2 -(2дг2 - if -Хх{.

20.2. Задачи на экстремум при наличии ограничений

Следовательно,

— = -4(2х.-5)-Х = 0,

дх, к '

— = -4(2х2-1) = 0, дх2 V 2 '

— = -х,= 0. дХ '

Решением этой системы будет точка (х,,х2) = (0, 1/2), которая является точкой максимума, в чем можно убедиться, используя достаточное условие. Поскольку эта точка удовлетворяет остальным ограничениям исходной задачи, вычислительная процедура завершается: (х12) = (0, 1/2) — точка локального максимума задачи. (Заметим, что если поочередно активизировать оставшиеся ограничения задачи хг > 0 и х, + 2х2 < 2, то получаются недопустимые решения.) Оптимальное значение целевой функции z = -25.

Как видно из рис. 20.7, допустимому решению (х,, х2) = (2, 0) рассматриваемой за­дачи, которое определяется точкой пересечения двух прямых х2 = 0 и х, + 2х2 = 2, соответствует значение целевой функции z = -2. Оно лучше значения функции z, которое получено с учетом одного активного ограничения.

Как следует из описанной вычислительной процедуры, при реализации обобщенно­го метода множителей Лагранжа на большее, чем получение приемлемого допустимого решения задачи, не следует рассчитывать. Особенно это проявляется тогда, когда целе­вая функция задачи не является одновершинной. Если в оптимизационной задаче име­ется единственный (глобальный) условный экстремум (как в примере 20.2.6), то, чтобы его найти, можно использовать откорректированный обобщенный метод множителей Лагранжа. Для этого необходимо провести сравнение безусловного оптимума и ус­ловных экстремумов, полученных с учетом всех возможных наборов активных огра­ничений, т.е. когда сначала отдельные ограничения делаются активными поочеред­но, затем рассматриваются пары активных ограничений, и так до тех пор, пока все т ограничений рассматриваемой задачи не станут активными. Наилучший из всех та­ких допустимых экстремумов является глобальным.

Если эту процедуру применить к решению задачи из примера 20.2.6, то для оп­ределения глобального экстремума необходимо решить семь задач. Это свидетель­ствует о том, что возможности использования обобщенного метода множителей Ла­гранжа для решения практических задач ограничены.

Условия Куна-Таккера. Данный раздел посвящен рассмотрению необходимых условий Куна-Таккера, которые позволяют определять стационарные точки в за­даче нелинейного программирования с ограничениями в виде неравенств. В основу изложения положен метод множителей Лагранжа. Эти условия являются также и достаточными, если выполняются определенные правила, которые описаны ниже.

Рассмотрим следующую задачу.

Максимизировать г = f(X)

при ограничениях

g(X)<0.

Глава 20. Классическая теория оптимизации

Ограничения-неравенства можно преобразовать в равенства с помощью неотрица­тельных дополнительных переменных. Пусть Sf[>Q) — дополнительная перемен­ная, которая прибавляется к левой части t-ro ограничения gt(X.) < 0 и пусть

S = (S„S1,...,ST и S2 =(S12,S22,...,5')r,

где т — общее количество ограничений-неравенств. Следовательно, функция Ла­гранжа записывается в виде

ДХ, S,A) = /(X)-X.[g(X) + S2].

При ограничениях g(X) < 0 необходимым условием оптимальности в задаче макси­мизации (минимизации) является неотрицательность (соответственно, неположи­тельность) множителей X. Приведем обоснование этого. Рассмотрим задачу макси­мизации. Так как множители X выражают скорость изменения целевой функции / по отношению к изменениям g, т.е.

то как только правая часть ограничения g(X) < 0 увеличивается и становится боль­ше нуля, область допустимых решений задачи расширяется и, следовательно, оп­тимальное значение целевой функции не может уменьшиться. Это значит, что X > 0. Аналогично в задаче минимизации при увеличении правой части ограниче­ния оптимальное значение функции / не может увеличиться, откуда следует, что X < 0. Если же ограничения задачи имеют вид равенств, т.е. g(X) = 0, то компоненты вектора X по знаку не ограничены (см. упражнение 20.2.4.2).

Указанные выше ограничения на вектор X должны рассматриваться как часть необходимых условий Куна-Таккера. Теперь получим остальные условия.

Вычисляя частные производные функции L по X, S и X и приравнивая их к ну­лю, получаем

J|= V/(X)-XVg(X) = 0,

— = -2XS =0, ; = 1,2,...,/и,

dS,

Из второй группы уравнений следуют такие результаты.

1. Если Я, не равняется нулю, то S2 = 0 . Это означает, что соответствующий это­му ограничению ресурс является дефицитным и, следовательно, полностью исчерпан (ограничение имеет вид равенства).

2. Если S2 > 0 , то Я, = 0. Это значит, что £-й ресурс дефицитным не является и,

следовательно, не влияет на значение целевой функции/(т.е. А.,. =-^- = 0).

fa

Из второй и третьей групп уравнений следует, что

Яд(Х) = 0, i=l,2,т.

20.2. Задачи на экстремум при наличии ограничений

Полученные условия фактически подтверждают предыдущий результат, ибо если Я, > 0, то gt(X) = 0 или S,2 = 0 . Аналогично при g^X) < О S2 > 0 и, следовательно, = 0.

Теперь для задачи максимизации можно сформулировать условия Куна-Таккера, необходимые для того, чтобы векторы X и X определяли стационарную точку:

Х>0, Vf(X)-XVg(X) = 0, Лд(Х)-0, i = l,2, .... те, g(X)<0.

Читатель имеет возможность самостоятельно убедиться, что эти условия примени­мы также к задаче минимизации, за тем лишь исключением, что вектор к должен быть неположительным, как это было установлено ранее. При решении как задачи максимизации, так и задачи минимизации множители Лагранжа, соответствую­щие ограничениям в виде равенств, по знаку не ограничены.

Достаточность условий Куна-Таккера. Если целевая функция и область допус­тимых решений рассматриваемой задачи обладают определенными свойствами, связанными с выпуклостью и вогнутостью, то необходимые условия Куна-Таккера являются также достаточными. Упомянутые свойства перечислены в табл. 20.1.

Таблица 20.1

  Требуемые свойства  
Тип оптимизации Целевая функция Область допустимых решений
Максимизация Вогнутая Выпуклое множество
Минимизация Выпуклая Выпуклое множество

Процедура проверки выпуклости или вогнутости некоторой функции является более простой, чем доказательство выпуклости множества допустимых решений экстремальной задачи. Так как выпуклость допустимого множества может быть установлена путем непосредственной проверки выпуклости или вогнутости функ­ций ограничений, по этой причине мы приводим перечень требований, которые легче использовать на практике. Чтобы установить эти требования, рассмотрим за­дачу нелинейного программирования в общей постановке.

Максимизировать или минимизировать z = f(X)

при ограничениях

g,(X)<0, 1=1,2.....г,

g,(X)>0, i = r+1.....р,

gt(X) = 0, i=p + l.....те.

При этом функция Лагранжа имеет вид

L(X,S,X) = /(X)-±Х,[gl(X) + S?]-±X,[g,(X)-S,2]- £ X,g,(X),

1=1 i=r+l i=p.l

где Я, — множитель Лагранжа, соответствующий i-му ограничению. Требования, ко­торые устанавливают достаточность условий Куна-Таккера, приведены в табл. 20.2.

Глава 20. Классическая теория оптимизации

Таблица 20.2

Требуемые свойства

Тип оптимизации fl[X)

9/W

А,

Максимизация

Минимизация

Вогнутая

Выпуклая

Выпуклая Вогнутая Линейная

Выпуклая

Вогнутая

Линейная

>0 (1</<г) <0 (r + <i<p)

Нет ограничений (р +1 < j < /и)

<0 (1 <i <г)

> 0 (г +1 < i < р)

Нет ограничений + < j < т)

В табл. 20.2 представлена лишь часть условий, упомянутых в табл. 20.1. Это связано с тем, что область допустимых решений задачи может быть выпуклой, и в то же время функции ограничений, которые ее формируют, могут не соответст­вовать требованиям, перечисленным в табл. 20.2.

Законность положений табл. 20.2 основана на том, что при сформулированных условиях функция Лагранжа L(X, S, Я) является вогнутой в задаче максимизации и выпуклой — в задаче минимизации. Это подтверждается тем, что если £,(Х) — выпуклая функция, то функция Яд(Х) оказывается выпуклой при At>0 и вогну­той— при Я, <0. Аналогичные рассуждения подтверждают все остальные условия. Заметим также, что линейная функция является как выпуклой, так и вогнутой. Наконец, если функция f вогнутая, то функция -/ является выпуклой, и наоборот.

Пример 20.2.7

Рассмотрим следующую задачу.

Минимизировать /(X) = х,2 + х + х,

при ограничениях

gl(X) = 2x,+x2-5<0, g2(X) = x,+x3-2<0, g3(X)=l-x,<0, g4(X) = 2-x2<0, g5(X) = -x3<0.

Поскольку рассматривается задача минимизации, то к < 0. Поэтому условия Куна-Таккера записываются в следующем виде.

(Я,, Я2, Я3, Я4, Я5) < 0,

(2 10)

(2х|,2х2,2х3)-(Х,Д2Д3Д4Д5)

1 0 1 -10 0 0-10 0 0-1

= 0,

20.2. Задачи на экстремум при наличии ограничений

g(X)<0.

Эти условия можно упростить и привести к виду

Я,, Я2, Я3, Я4, Я6 < О, 2х, - 2Я, - Я2 + Я3 = О, 2х2 - Я, + Я4 = О, 2х3 - Я2 + Я5 = О, A,(2xt2- 5) = О, Я213-2) = 0, Я3(1-*,) = 0, Я4(2-*2) = 0, Я^ = О, 2х,+хг<5, x,+x3<2,

Отсюда получаем решение: х, = 1, х2 = 2, х3 = 0, Я, = Я2 = Я5 = О, Я3 = -2, Я4 = -4. По­скольку и целевая функция ДХ), и область допустимых решений g(X) < 0 являются выпуклыми, функция £(Х, S, X) также должна быть выпуклой, и полученная ста­ционарная точка определяет глобальный минимум задачи. Рассмотренный пример показывает также, что решение системы, порожденной условиями Куна-Таккера, в явной форме может быть затруднительным. Следовательно, для численных рас­четов описанная процедура не подходит. Тем не менее условия Куна-Таккера иг­рают основополагающую роль при рассмотрении алгоритмов решения задач нели­нейного программирования в главе 21.

УПРАЖНЕНИЯ 20.2.4

1. Покажите, что условия Куна-Таккера для задачи

максимизировать ДХ)

при ограничениях

g(X)>0

совпадают с условиями, сформулированными в разделе 20.2.2, с той лишь разницей, что множители Лагранжа X должны быть неположительными.

2. Дана следующая задача.

Максимизировать /(X)

при ограничениях

g(X) = 0.

Покажите, что условия Куна-Таккера для этой задачи имеют вид

Vf(X)-XVg(X) = 0, g(X) = 0, X по знаку не ограничен.

Глава 20. Классическая теория оптимизации

3. Запишите необходимые условия Куна-Таккера для следующих задач.

a) Максимизировать /(X) = х32 + х,х3

при ограничениях

х, + х2 + х3 = 5, 5х2 - х2 - х3 > 0, х,>0, х2>0, х3>0.

b) Минимизировать /(X) = х,4+ х2+5х,х2х3

при ограничениях

х,2233 <10, х,322+4х32:20.

4. Дана задача

максимизировать ДХ)

при ограничениях

g(X) = 0.

Пусть ДХ) — вогнутая функция, а g,(X) (t = 1, 2, т) — линейные функ­ции. Покажите, что в этом случае необходимые условия Куна-Таккера ока­зываются также и достаточными. Верно ли последнее утверждение, если ё'ДХ) является выпуклой нелинейной функцией для всех г? Почему?

5. Дана задача

максимизировать /(X)

при ограничениях

^(Х)>0,^2(Х) = 0,^(Х)<0.

Сформулируйте условия Куна-Таккера для данной задачи и установите требова­ния к функциям, при реализации которых выполняются указанные условия.

ЛИТЕРАТУРА

1. Bazaraa М., Shrali Н. and Shetty С. Nonlinear Programming Theory and Algo­rithms, 2nd ed., Wiley, New York, 1993. (Существует перевод первого издания: Базара М., Шетти К. Нелинейное программирование. Теория и алгоритмы. — М.:Мир, 1982.)

2. Beightler С, Phillips D. and Wilde D. Foundations of Optimization, 2nd ed., Pren­tice Hall, N. J., 1979.

3. Rardin R. Optimization in Operations Research, Prentice Hall, N. J., 1998.

Литература, добавленная при переводе

1. Банди Б. Методы оптимизации. Вводный курс. — М.: Радио и связь, 1988.

2. Зангвилл У. И. Нелинейное программирование. — М.: Сов. радио, 1973.

3. Сухарев А. Г., Тимохов А. В., Федоров В. В. Курс методов оптимизации. — М.: Наука, 1986.

4. Поляк Б. Т. Введение в оптимизацию. — М.: Наука, 1983.

5. Химмельблау Д. Прикладное нелинейное программирование. — М.: Мир, 1975.

ГЛАВА 21

АЛГОРИТМЫ НЕЛИНЕЙНОГО ПРО ГРАМ М И РО В АН ИЯ

Методы решения задач нелинейной программирования условно можно разде­лить на два класса: прямые и непрямые методы. Примером прямых методов могут служить градиентные методы, где экстремум функции находится последовательно при движении в направлении возрастания или убывания функции в соответствии с вычисленными на каждом шаге значениями градиентов. В непрямых методах ис­ходная задача заменяется (аппроксимируется) другой задачей, оптимальное реше­ние которой можно найти. Сюда относятся методы квадратичного, сепарабельного и стохастического программирования.

21.1. АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧ БЕЗ ОГРАНИЧЕНИЙ

В этом разделе представлены два метода решения задач нелинейного програм­мирования без ограничений на переменные: метод прямого поиска и градиентный метод. В первом реализуется прямой поиск оптимальной точки в заданной области, тогда как во втором методе, чтобы найти экстремальную точку, используется гра­диент целевой функции.

21.1.1. Методы прямого поиска

Методы прямого поиска применяются главным образом для определения экс­тремумов функций одной переменной. Несмотря на то что такие задачи могут по­казаться тривиальными, в следующем разделе показано, что методы прямого по­иска находят применение и при решении многомерных задач.

Идея методов прямого поиска проста. Сначала определяется интервал неопре­деленности, который содержит искомую точку оптимума. Затем длина интервала последовательно уменьшается до тех пор, пока не будет найдена точка оптимума. Процедура строится таким образом, что длину интервала, содержащего оптималь­ное решение, можно сделать сколь угодно малой.

В данном разделе рассматривается метод дихотомического поиска1 и метод зо­лотого сечения. В обоих методах на интервале а<х<Ь ищется максимум функции f(x), имеющей на этом интервале только один максимум. (Такая функция называ­ется одновершинной.) Начальный интервал неопределенности состоит из исходного интервала I0 = (а, Ь).

1 В русскоязычной математической литературе этот метод обычно называется методом деле­ния отрезка пополам. — Прим. ред.

Глава 21. Алгоритмы нелинейного программирования

Пусть = (xL, xR) — интервал неопределенности на шаге I (на нулевом шаге xL = а и xR = b). Далее определяем хх и х2 такие, что

х, <хх2< хи.

Следующий интервал неопределенности /, определяется после вычисления зна­чений f(xx) и f(x2). При этом возможны три варианта.

1. Если f(xx) > f(x2), то точка экстремума х' должна лежать между xL и хг: х, < х < х2. Тогда положим xR = хг и получим новый интервал неопределен­ности/,= (х^ х2) (рис. 21.1, а).

2. Если f(xx) < f(x2), то хх < х" < xR. Тогда xL = хх и 7, = (хх, хй) (см. рис. 21.1, б).

3. Если f(xx) = f(x2), то хх<х < х2. Положим xL = ххи х„ = х2, тогда I, = (хх, х2).

а)

Рис. 21.1. Иллюстрации к прямым методам поиска б)

Поскольку здесь на каждом шаге гарантировано It < в результате сужается интервал, в котором находится точка максимума функции f(x). Алгоритм заканчи­вается на некотором шаге k, когда будет выполняться неравенство 1к < Д, где Д — значение заранее заданной точности.

Различие между методами дихотомического поиска и золотого сечения заклю­чается только в способе вычисления точек хх и х2. Формулы для вычисления этих точек, представлены в следующей таблице.

Метод дихотомического поиска

Метод золотого сечения

*1 = (xR + xL- Д)/2

V5-1 _

X2 = (Xr+Xl + A)/2

xi=xL+—^—(xx-xL)

21.1. Алгоритмы решения задач без ограничений

В методе дихотомического поиска значения х, и х2 симметричны относительно средней точки текущего интервала неопределенности. Это означает, что /, = 0,5(7,.,+ Д). Последовательное применение этого равенства доказывает, что длина конечного интервала неопределенности достигнет значения желаемой точности Д.

Идея метода золотого сечения не такая очевидная. Заметим, что в методе дихото­мического поиска вычисляются два значения f(xA и f(x2), но после сравнения одно из них отбрасывается. В методе золотого сечения, то значение, которое отбрасывается в методе дихотомического поиска, сохраняется и используется на следующем шаге.

Введем параметр а такой, что 0 < а < 1. Пусть

х, = xR - a(xR - хJ, x2 = xL+afxR-xLJ.

Тогда интервал неопределенности /, на шаге i равен или (xL, х2) или (х,, xR). Рас­смотрим ситуацию, когда ll = (xL, х2). Здесь точка х, содержится в интервале /(. На шаге i + 1 в качестве точки х2 выбирается точка х, с предыдущего шага, т.е.

х2(на шаге i + 1) = х,(на шаге г). Используя формулы для вычисления точек х, и х2, приведенные выше, это равенст­во можно переписать как

xl + «/"х/на шаге U - хJ = xR - a(xR - xj или, еще раз применяя аналогичную формулу для х2(на шаге i), в виде

xL + а[xL +а(xR- xj - xj = xR-a(xR- xj. Из последнего равенства после несложных преобразований получим

«VxR - хJ + a(xR - xj - (xR - xj = 0. Поделив последнее выражение на (xR - xL), получим уравнение относительно а:

d + а-1 =0.

Это квадратное уравнение имеет корни а = (-1±л/5)/2. Поскольку по условию 0 < а < 1, мы выбираем положительный корень а = (-1 + -Jb)12 = 0,681.

Метод золотого сечения построен таким образом, что каждый последующий ин­тервал неопределенности меньше предыдущего в а раз, т.е. = alt. По сравнению с методом дихотомического поиска этот метод сходится значительно быстрее (т.е. через меньшее число шагов получается интервал неопределенности заданной дли­ны Д, содержащий х*). Кроме того, метод золотого сечения требует в два раза мень­ше вычислений, чем метод дихотомического поиска, поскольку на каждом шаге используются вычисления, выполненные на предыдущем шаге.

Пример 21.1.1

Имеем следующую задачу.

[Зх, 0<х<2, Максимизировать /(х) = < х 20

Гз+Т' ~х~

Ясно, что максимум функции Дх) достигается в точке х = 2. В следующей таблице показаны вычисления для двух шагов методов дихотомического поиска и золотого сечения при Д = 0,1.

Глава 21. Алгоритмы нелинейного программирования

Метод дихотомического поиска Метод золотого сечения
Шаг 1 Шаг 1
/о = (0, 3) = (xL, xR), /о = (0, 3) = (xL, xR),
* =0,5(3+ 0-0,1) = 1,45, /(xi) = 4,35, х, = 3 - 0,618(3 - 0) = 1,146, /(X,) = 3,438,
хг = 0,5(3 + 0 + 0,1) = 1,55, tx2) = 4,65, хг = 0 + 0,618(3 - 0) = 1,854, f(x2) = 5,562,
<x2) > /(*) => xL = 1,45, h = (1,45, 3). /(x2) > /(X!) => xL = 1,146, /, = (1,146, 3).
Шаг 2 Шаг 2
/, = (1,45, 3) = (xl,xr), /i =(1,146, 3) = (xL, хд),
Xi = 0,5(3 + 1,45 - 0,1) = 2,175, /(Xi) = 5,942, Хт = x2 на шаге 1 = 1,854, /(Xi) = 5,562,
x2 = 0,5(3 + 1,45 + 0,1) = 2,275, tx2) = 5,908, Хг = 1,146 + 0,618(3 - 1,146) = 2,292, tx2) = 5,903,
fxi) > f(x2) => xR = 2,275, /, = (1,45, 2,275). tx2) > /(Xi) => xL = 1,854, /, = (1,854, 3).

Продолжая вычисления, получим с заданной точностью интервалы, содержащие точку максимума функции f(x).

На рис. 21.2 показан шаблон Excel ch21DichotomousGoldenSection.xls, предназначен­ный для поиска экстремумов функций описанными методами. Входными данными являются функция f(x) и константы a, b и Д. В данном примере функция f(x) зада­ется в ячейке ЕЗ с помощью формулы

=ЕСЛИ(СЗ<=2;3*СЗ;(-СЗ+20)/3) Отметим, что здесь ссылка СЗ играет роль переменной х. Константы а и Ь, введен­ные в ячейки В4 и D4, задают интервал поиска точки экстремума функции f(x). Значение предела точности Д вводится в ячейку ВЗ. Метод поиска задается путем ввода символа х в ячейку D5 (метод дихотомического поиска) или в ячейку F5 (метод золотого сечения).

На рис. 21.2 для сравнения показаны результаты вычислений в соответствии с обо­ими методами. Как видно на рисунке, метод золотого сечения потребовал всего 40 % числа итераций, выполненных методом дихотомического поиска.

УПРАЖНЕНИЯ 21.1.1

1. С помощью шаблона ch21DichotomousGoldenSection.xls решите задачу из примера 21.1.1, положив Д = 0,01. Сравните точность полученных результа­тов с данными, показанными на рис. 21.2.

2. Методом дихотомического поиска найдите максимумы следующих функций, полагая при этом, что Д = 0,05.

a) /(*)=•;—т, 2<х<4;

Ml

b) f(x) = х cosx, 0 < х < я;

c) f(x) = хsinnx, 1,5<х<2,5;

d) f(x) = -(х - З)2, 2<х<4;

_ ,. . Ах, 0<*<2, W [4-х, 2<*<4.

21.1. Алгоритмы решения задач без ограничений

в с d в

Dichotomoirs'Golden Section Seaich

Input data: Type f(C3) in E3, where C3 represents x m ■ )

0000000 1 450000 1 450000 1 812500 1.812500 1 903125 1 948438 1 971094 1 982422 1.988086 1 988086 1 989502 1 989502 1 969856 1 969856 1 989944 1 989989 1 9899B9 1990000 1 990000 3OXO00 3OXO00 2 275000 2 275000 2093750 2 093750 2093750 2093750 2.093750 2.093750 2 090918 2 090918 2 090210 2 090210 2 090033 2 0900ЭЗ 2 090033 2 090011 2 090011 2090005 1 450000 2.175000 1 812500 1 99Э750 1 903125 1 948438 1 971094 1 982422 1 988086 1 990918 1 989502 1 990210 1 989856 1 990033 1 989944 1 9899B9 1 990011' 1 990000 1.990005; 1 990003 1 550000 2.275000

1 912500

2 093750 2X3125 2 048438 2.071094 2 082422 2088086 2 090918 2 089502 2 090210 2089856 2 090033 2 089944 2089989 209X11 20900X 2090005 2 09X03

4 3500X

5 941667 5 4375X 5981250 5 709375 5 845313 5913281 5 947266 5 964258 5 972754 5968506 5.9706X 5969568 5.970099 5 969833 5 9699Б6 5 97X33 5 969999 5 97X16 5 9700X 4650X0 5 9X333 5 7Э75Х 5 968750 5 998958 5 983854 5 976X2 5 972526 5 970638 5 969694 5 970166 59699X 5 970048 5 969969 5 97X19 5.97X04 5 969996 5 9700X 5 969996 5 969999

ВС D 1 E

Dichotomou&'Golden Section Seaich

F

Input data: Type t{C3) in E3. *ajatg СЗ гедч .-ents и in f v>

0 000000

1 145898 1 854102 1 854102 1 854102 1 854102 1957428 1 957428 1 996894 3O0OOX 30000X 30000X 2 562306 2 291796 2124612 2124612 2 0X753 2 0X753 1 145898

1 854102

2 291796 2124612 2 021286

1 957428 2021286 1.996894"

2 021286

1 854102

2 291796 2 562306 2 291796 2124612 2 021286 2060753 2.021286 2 036361 3 437694 5 562306 5 902735 5 958463 5 992905 5 872283 5 992905 5 990683 5992905 5 5623X 5.902735 5 812565 5 902735 5 958463 5 992905 5.979749 5 992905 5X7X0

Рис. 21.2. Реализация методов прямого поиска в Excel

Получите формулу для определения максимального числа итераций, выпол­няемых в методе дихотомического поиска при заданной величине Д и длине начального интервала неопределенности 10 = Ь- а.

21.1.2. Градиентный метод

В этом разделе рассматривается метод решения задач нелинейного программи­рования с дважды непрерывно дифференцируемыми функциями. Основная идея метода заключается в построении последовательности точек с учетом направления градиента исследуемой функции.

Одним из градиентных методов является изложенный в разделе 20.1.2 метод Нью­тона-Рафсона, который ориентирован на решение систем уравнений. Здесь рассматри­вается еще один метод, который называется методом наискорейшего подъема2.

В русскоязычной математической литературе описываемый метод, называемый методом наискорейшего спуска, ориентирован на решение задач безусловной минимизации. — Прим. ред.

Глава 21. Алгоритмы нелинейного программирования

Согласно градиентному методу вычисления завершаются при нахождении точ­ки, в которой градиент функции равен нулю. Но это лишь необходимое условие для того, чтобы в данной точке находился оптимум. Чтобы удостовериться, что найде­на именно точка оптимума, обычно привлекаются свойства вогнутости или выпук­лости функции f(x).

Рассмотрим задачу максимизации функции f(X). Пусть Х° — начальная точка, с которой начинается реализация метода, УДХ*) — градиент функции f в fc-й точке X*. Идея метода сводится к определению в данной точке направления р, вдоль ко­торого производная по направлению df/dp достигает своего максимума. Это проис­ходит в том случае, когда последовательные точки X* и Х*+1 связаны соотношением

где г* — параметр, называемый длиной шага в точке X*.

Обычно значение параметра г выбирается из условия, чтобы в точке Х*^1 наблюдалось максимальное увеличение значения целевой функции /. Другими словами, если функция Л(г) определяется соотношением

то г равен значению г, на котором функция п(г) достигает максимума. Поскольку Л(г) является функцией одной переменной, чтобы найти ее максимум, можно при­менить метод поиска экстремума, описанный в подразделе 21.1.1, если, конечно, функция h(r) строго одновершинная.

Описанная процедура заканчивается, когда две последовательные точки X* и X**1 близки. Это эквивалентно тому, что rVf(Xk) = 0. Поскольку г Ф 0, последнее соотноше­ние означает, что в точке X* выполняется необходимое условие экстремума V/(X*) = 0.

Пример 21.1.2

Рассмотрим задачу максимизации функции

f(xl,x2) = 4х1 + 6х2 -2х] -2хххг -2х2. Функция Дх,, х2) является квадратичной, и нам известно, что ее абсолютный мак-

Решим эту задачу методом наискорейшего подъема. На рис. 21.3 изображена после­довательность получаемых точек. Градиенты в двух последовательных итерацион­ных точках с необходимостью являются ортогональными (перпендикулярными) друг к другу. Для данной функции градиент вычисляется по формуле

■ k+l

X" + rkVf(Xk),

h(r) = f(Xk + rVf(Xk)),

УДХ) = (4 - 4х, - 2x2, 6 - 2x, - 4x2). Пусть начальной точкой является Х° = (1, 1).

X = (l, l) + r(-2, 0) = (l-2r, 1).

21.1. Алгоритмы решения задач без ограничений

ДХ) = 4х, + 6х2 - 1ххг-2ххх2 - 2х22

1 1 3 2 х1

2 2

Рис. 21.3. Последовательность точек, ведущая к оп­тимуму функции

Отсюда получаем выражение для функции 1г(г):

h(r) =Д1 - 2r, 1) = -2(1 - 2rf + 2(1 - 2г) + 4.

Оптимальная длина шага г, при которой функция h(r) достигает максимума, равна 1/4. Таким образом, мы нашли, что X1 = (1/2, 1).

Итерация 2.

УДХ') = (0, 1).

Теперь следующая точка X2 определяется выражением

Х = (1,1) + К0,1) = (|,1+/-).

Следовательно,

h(r) = -2(1 + rf + 5(1 + г) + |.

Отсюда получаем г = 1/4 и X2 = (1/2, 5/4). Итерация 3.

УДХ2) = (-1,0). Точка X3 определяется выражением

Глава 21. Алгоритмы нелинейного программирования

Следовательно,

/i(r) = --(l-r)2+ -а-г)+ — 2 4 8

Отсюда получаем г = 1/4 и X = (3/8, 5/4). Итерация 4.

V/(X3) = (0, -).

Точка X4 определяется выражением

x=|VWanГ35+Г

,8 4J I. А) 1,8 4 Поэтому

*(0 = -|(5 + r)s+g(5 + r) + g.

Отсюда имеем г = 1/4 и X4 = (3/8, 21/16). Итерация 5.

удх4) = (-1,0).

о

Точка X5 определяется выражением

321V-i,oi=fc:^

Следовательно,

Х ,8'l6j ' Л &") { 8 '16

Л(Н =--(3-г) +— (3-г) +-.

v ' 32v ; 64v 128

Отсюда получаем г = 1/4 и Xй = (11/32, 21/16). Итерация 6.

V/(X5) = (0, -^).

Так как V/(X°) = 0, вычисления можно закончить. Получена приближенная точ­ка максимума X5 = (0,3437, 1,3125). Точный максимум достигается в точке Х* = (0,3333, 1,3333).

1. Покажите, что метод Ньютона-Рафсона (раздел 20.1.2), применяемый к ре­шению задачи максимизации строго вогнутой квадратичной функции, в об­щем случае сходится в точности за один шаг. Примените указанный метод к задаче максимизации функции

/(X) = 4,v, + 6х2 - 2.x2 - 2х,х, - 2х;.

21.2. Алгоритмы решения задач с ограничениями

2. Выполните не более пяти итераций метода наискорейшего спуска (подъема) для каждой из следующих задач. Во всех случаях положите Х° = О.

a) min/(X) = (*2-*?)*+(1-х,)*.

b) max/(X) = сХ + ХГАХ, где

с = (1,3, 5),

 

 

    Р 2
-5 -3
-3 -2 • 0
 
   
  ~2j

с) min/(X) = X[-х2 + xf-х,х2.

21.2. АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧ С ОГРАНИЧЕНИЯМИ

Общая задача нелинейного программирования с ограничениями записыва­ется в виде:

максимизировать (или минимизировать) z = /(X) при ограничениях

g(X) <0.

Условия неотрицательности переменных X > 0 составляют часть заданных ограни­чений общего вида. Предполагается также, что по крайней мере одна из функций f(X) или g(X) является нелинейной, и все функции непрерывно дифференцируемы.

Универсальных алгоритмов решения задач нелинейного программирования не существует, и связано это, главным образом, с разнообразием нелинейных функ­ций. Возможно, наиболее общим результатом, имеющим отношение к рассматри­ваемым задачам, являются условия Куна-Таккера. Как показано в разделе 20.2.2, эти условия являются необходимыми лишь для существования экстремума, за ис­ключением ситуации, когда функции /(X) и g(X) являются выпуклыми или вогну­тыми (тогда эти условия будут также достаточными).

В этом разделе рассматривается ряд алгоритмов решения задач нелинейного программирования, которые условно можно разделить на непрямые и прямые. В непрямых методах решение задачи нелинейного программирования сводится к решению одной или нескольких линейных задач, порожденных исходной. Пря­мые методы непосредственно имеют дело с исходной нелинейной задачей и позво­ляют построить последовательность точек, сходящуюся к точке экстремума.

В данном разделе непрямые методы представлены алгоритмами сепарабельного, квадратичного, геометрического и стохастического программирования. К числу прямых методов относится метод линейных комбинаций и метод последовательной безусловной максимизации, изложенный далее вкратце. С другими важными ме­тодами решения задач нелинейного программирования можно познакомиться, об­ратившись к приведенному в конце главы списку литературы.

21.2.1. Сепарабельное программирование

Функция /(ж,, х2.....хп) называется сепарабельной (разделимой), если она пред­ставляется в виде суммы п функций одной переменной /,(*,), f2(x2), /„(*„), т.е. ffx,, х2,хJ = f,(x,) + f/xj + ... + f/xj.

Глава 21. Алгоритмы нелинейного программирования

К примеру, линейная функция

h(х,, хг,хJ = а,х, + арсг + ... + а.х,, (здесь at, i = 1, 2, п — константы) является сепарабельной. Функция же

h(xl,x2,xi) = х +х, sin (лг2}) + х2е*'

таковой не является.

Некоторые нелинейные функции сепарабельными непосредственно не являют­ся, однако могут быть приведены к такому виду путем соответствующих подстано­вок. Рассмотрим, к примеру, задачу максимизации функции z = xtx2. Если ввести обозначение у = х1х2, то 1пу = пх1 + 1пх2 и задача принимает следующий вид.

Максимизировать z = у

при ограничении

щ = lnx, + lnx2,

т.е. она является сепарабельной. При такой замене предполагается, что перемен­ные х, и х2 принимают положительные значения, иначе логарифмическая функ­ция не определена.

В случае, когда переменные xi и х2 принимают и нулевые значения (т.е. х,, х2 > 0), можно поступить следующим образом. Пусть <5j и 82 — положитель­ные константы, введем новые переменные wl = лс, + 8Х и и>2 = х2 + 52. Эти переменные принимают только положительные значения. Теперь имеем

хххг = w1w2 - S2w1 - 8jv2 +

Пусть у = wxw2, тогда исходная задача эквивалентна следующей.

Максимизировать2 = у - S2w1 - 8jv2 + S,S2

при ограничениях

lni/= lnu + lnu>2, wx>Sv w2>S2.

В этой задаче все функции сепарабельные.

Примерами других функций, которые в результате замены переменных приво­дятся к сепарабельным, могут служить е''*'- и х['- . В этих случаях для реализации

свойства сепарабельности следует применить соответствующий вариант описанной выше процедуры.

В сепарабельной программировании рассматриваются задачи нелинейного про­граммирования, в которых как целевая функция, так и функции ограничений яв­ляются сепарабельными. В этом разделе рассматриваются методы приближенного решения задачи сепарабельного программирования, основанные на линейной ап­проксимации функций и на симплекс-методе линейного программирования.

Функцию одной переменной f(x) можно аппроксимировать кусочно-линейной функцией с помощью методов частично-целочисленного программирования (глава 9). Пусть требуется аппроксимировать функцию f(x) на интервале [а, Ь]. Обозначим через ак, k=l, 2, К, k-ю точку разбиения интервала [а, Ь], причем а = а, < а2 < ... < аК = Ъ. Тогда функция f(x) аппроксимируется следующей кусочно-линейной функцией:

к к

/<■*) - *=Z<v».

*=1 *=i

21.2. Алгоритмы решения задач с ограничениями

где tk — неотрицательный весовой коэффициент, связанный с fe-й точкой разбие­ния интервала. Весовые коэффициенты удовлетворяют условию

к

Методы частично-целочисленного программирования гарантируют корректность такой аппроксимации. В частности, аппроксимация является обоснованной в сле­дующих случаях.

1. Если не больше двух весовых коэффициентов tk имеют положительные значения.

2. Если значение tk больше нуля, то положительным может оказаться лишь один из смежных весовых коэффициентов tk+1 или tk_x.

Чтобы показать, как выполняются перечисленные условия, рассмотрим общую задачу сепарабельного программирования.

Максимизировать (минимизировать) z = (х>)

при ограничениях

Эту задачу можно привести к задаче частично-целочисленного программирования следующим образом. Обозначим через К, число точек разбиения для i-й переменной х,, а через а- — k-ю точку разбиения. Пусть t. — весовой коэффициент, ассоции­руемый с k-й точкой разбиения для i-й переменной. Тогда эквивалентная задача частично-целочисленного программирования имеет вид

максимизировать (или минимизировать) г = (а'* К

:=1 *=1

при ограничениях

1=1 t=l

О<// <у', i=l, 2,...,п,

Q<t4 <у1л1, к = %Ъ.....АГ,- — I,

0<г*' <у*'~

К,-

*=i

yf =0 или 1, it = 1,2.....К,, 1 = 1,2,...,п.

В аппроксимирующей задаче переменными являются /' и у*.

Данное представление свидетельствует о том, что в принципе любая задача се­парабельного программирования может быть решена методами частично­

Глава 21. Алгоритмы нелинейного программирования

целочисленного программирования. Трудность такого подхода к решению задачи связана с быстрым ростом числа ограничений при увеличении количества точек разбиения. В частности, проблематичной является вычислительная реализация процедуры, поскольку нет эффективных компьютерных программ для решения за­дач частично-целочисленного программирования большой размерности.

Для решения аппроксимирующей задачи можно использовать также обычный симплекс-метод (глава 3), дополненный правилом ограниченного ввода в базис. В этом случае игнорируются вспомогательные ограничения, содержащие у*. Со­гласно данному правилу в базисе может находиться не более двух положительных весовых коэффициентов if. Более того, два коэффициента if могут быть положи­тельными лишь тогда, когда они являются смежными. Таким образом, строгое ус­ловие оптимальности симплекс-метода только тогда используется для выбора пе­ременной /*, подлежащей введению в число базисных, когда она удовлетворяет

указанным выше требованиям. В противном случае анализ разностей (z* -с*) по­зволяет выбрать следующую переменную if , которая может быть сделана базис­ной. Процесс повторяется до тех пор, пока не будет выполнен критерий оптималь­ности или же установлена невозможность введения в базис новой переменной /* без

нарушения правила ограниченного ввода. В обоих случаях последняя симплексная таблица дает приближенное оптимальное решение исходной задачи.

Метод частично-целочисленного программирования позволяет найти глобаль­ный экстремум аппроксимирующей задачи, тогда как симплекс-метод с учетом правила ограниченного ввода в базис может гарантировать нахождение лишь ло­кального оптимума. Кроме того, приближенное решение, полученное любым из двух упомянутых методов, может быть недопустимым для исходной задачи, по­скольку при решении аппроксимирующей задачи могут быть обнаружены допол­нительные экстремальные точки, которые для исходной задачи экстремальными не являются. Это зависит от точности линейной аппроксимации исходной задачи.

Пример 21.2.1

Рассмотрим следующую задачу.

Максимизировать z = х, + х

при ограничениях

Зх, + 2х; < 9, хр х2 > 0.

Точное оптимальное решение этой задачи находится непосредственной проверкой: х, =0, х2 = 2,12 и г* = 20,25. Чтобы продемонстрировать использование метода ап­проксимации, рассмотрим отдельные функции

/,(*,) = *„

21.2. Алгоритмы решения задач с ограничениями

g;(x2) = 2xl

Функции/,(*,) и gl(xt) остаются в исходном виде, поскольку они уже являются ли­нейными. В этом случае хх рассматривается как одна из переменных. Для функций /2(дг2) и g~{x,) полагаем, что количество точек разбиения равно четырем (Кг = 4). Так

как значение*,, не может превышать 3, отсюда следуют данные, приведенные ниже.

к я' fM) **№)

Получаем

fM) = tlJM)+tL {4)+'1М^)+''Ш) =

= 0 х t +1 х /,: +16 х t + 81 х t* = i; +16/2 + 8 U*.

Аналогично

gf(x2) = 2t;+Stl + Stl Следовательно, аппроксимирующая задача принимает вид

максимизировать z = x,+1; +16/, + 8 У*

при ограничениях

Зх,+2/;+8/,3+18/24<9, t+t;+tl+l' = , ;* >0, * = 1,2,3,4, х,>0.

Исходная симплекс-таблица (в которой осуществлена перестановка столбцов для получения начального решения) выглядит следующим образом.

Базис Х1 t; t}2   S1   Решение
z -1 -1 -16 -81
S,
/:

Здесь 5, (> 0) — дополнительная (остаточная) переменная. (В этой задаче начальное решение является очевидным. В общем же случае для его получения могут понадо­биться искусственные переменные, см. раздел 3.4.)

Коэффициенты г-строки указывают на то, что в число базисных необходимо ввести переменную /4. Поскольку при этом переменная t уже входит в базисные в силу

Глава 21. Алгоритмы нелинейного программирования

правила ограниченного ввода в базис, она должна быть выведена из числа базисных перед тем, как базисной станет переменная /,4. Вместе с тем, согласно условию до­пустимости при введении в базисные переменной t* переменная s, должна выво­диться из базиса. Это значит, что t нельзя сделать базисной. Следующей подхо­дящей для введения в базисные является переменная t. Снова при этом переменная t должна быть выведена из числа базисных. Условие допустимости на этот раз позволяет вывести из числа базисных переменную t, что и требуется. Та­ким образом, получаем новую симплекс-таблицу.

Базис Xi '2 /23   S1 t Решение
z -1 -65
S: -6 -8
tl

Очевидно, что базисной следует сделать переменную t . То, что переменная t уже

является базисной, не противоречит правилу ограниченного ввода в базис. В соот­ветствии с симплекс-методом переменная s, исключается из числа базисных. Полу­чаем следующую симплекс-таблицу.

Базис Xi '2 t A S1 l Решение
z 37/2 -24 13/2 -36 45/2
t 3/10 -6/10 1/10 -8/10 1/10
t -3/10 16/10 -1/10 18/10 9/10

Из этой таблицы следует, что в базис могут вводиться переменные t иг,2. Пере­менная t не может быть базисной, поскольку не является смежной с переменными /2 и /2, которые уже находятся среди базисных. Далее, переменную гг также нель­зя сделать базисной, поскольку t* нельзя исключить из числа базисных. Поэтому

процедура решения задачи на этом завершается, и полученное решение является наилучшим допустимым решением аппроксимирующей задачи.

Воспользуемся найденными значениями t = 9/10 и('= 1/10, чтобы выразить по­лученное решение через переменные jc, ид:2. Получаем

х, = 0, х2~ 2t32+3t4=2^j+3^j=2,l, z = 0 + 2,14 = 22,5.

Полученное приближенное оптимальное значение для хг (=2,1) мало отличается от истинного оптимального значения (= 2,12).

Сепарабельное выпуклое программирование. Задача выпуклого сепарабельного программирования возникает в том случае, когда функции #/(х,) являются вы­

21.2. Алгоритмы решения задач с ограничениями

пуклыми, обеспечивая, таким образом, выпуклость области допустимых решений. Кроме того, считаем, что функции f,(x:) являются выпуклыми в задаче минимиза­ции и вогнутыми в задаче максимизации (см. табл. 20.2 в разделе 20.2.2). При этих условиях можно использовать следующий упрощенный метод аппроксимации.

Рассмотрим задачу минимизации. Пусть функция ft(x) имеет такой вид, как по­казано на рис. 21.4. Обозначим точки разбиения для функции f^x) через xt = ам, k = 0,

1, К,. Пусть xhi — величина изменения переменной xt на интервале (ак_,ак), k = 1,

2, К,, apfc — тангенс угла наклона линейного сегмента на том же интервале.

Тогда

Рис. 21.4. Кусочно-линейная аппроксимация выпуклой функции

Здесь предполагается, что 0 < хы < аы - a„_u, k = 1, 2, Кг

Так как функция /Дх,) выпуклая, то р„ < р,; <... < pKil. Это означает, что в задаче

минимизации при р < q большее влияние на значение целевой функции оказывает переменная хр1, чем xql. Следовательно, переменная хр1 всегда будет входить в реше­ние до того, как в него войдет xql При этом значения каждой переменной хк1 должны быть ограничены сверху величиной (akl - ak_hl).

Выпуклые функции ограничений glfa) аппроксимируются аналогичным обра­зом. Пусть p'tl — тангенс угла наклона А-го линейного сегмента, соответствующего функции g!(x{). Тогда функция g!(x,) аппроксимируется формулой

Следовательно, рассматриваемая задача принимает вид

■ I ( К:

минимизировать z = ^ ^9и- + / {aoi)

при ограничениях

V'-'

0<xkl<aki- ак_и, к=1, 2, ...,#„1=1,2,

где

Глава 21. Алгоритмы нелинейного программирования

, _g/K)-g/K-u)

Задача максимизации преобразуется аналогично. В этом случае р„ >p2l >...>pKl,

откуда следует, что при р < q переменная х всегда будет входить в решение раньше хд1 (см. упражнение 21.2.1.7).

Полученную задачу можно решить симплекс-методом, предназначенным для решения задач с ограниченными сверху переменными (раздел 7.3). При этом исче­зает необходимость в соблюдении правила ограниченного ввода в базис, поскольку выпуклость (вогнутость) функций гарантирует надлежащий выбор переменных.

Пример 21.2.2

Рассмотрим задачу

максимизировать z = хх - х2

при ограничениях

3x14+x2<243, х1+2х<Ъ2, хх > 2,1, jc2>3,5.

Отдельными (сепарабельными) функциями этой задачи являются

у!(*.) = *.. Ь{хг) = ~хг< gl(x,) = 3x*, g(x2) = x2,

gf(*.) = *.. g{xi) = l£-Эти функции выпуклые, что и требуется в задачах минимизации.

Область допустимых значений переменных хх и х2, как следует из ограничений за­дачи, определяется неравенствами 0<xt<3 и 0<;с2<4. Разбиваем эти интервалы изменения переменных х, и х2. Пусть А", = 3 и К2 = 4 при а01 = а02 = 0. Значения тан­генсов углов наклона, соответствующих отдельным функциям рассматриваемой задачи, приведены в следующих таблицах.

Для i = 1 имеем

к зил U (вил) = вил Ai *i'(a*i) = 3a*i   S.2(a*i) = ati P*. ХкЛ
 
Хц
*21
X31

21.2. Алгоритмы решения задач с ограничениями 813

Для i = 2 имеем

к         Pi,     Хк2
-1 -1  
-2 -1 Х22
-3 -1 *32
-4 -1 *42

Теперь задача принимает следующий вид.

Минимизировать z ~ хп + х21 + х31 - хп - х22 - х32 - х42 при ограничениях

Зхи + 45х21 + 195х311222 + х3242< 243, хп2131 + 2х12 + 6х22 + Юх32 + 14х42 < 32, хп21 "Ьх31 ^ 2,1,

■*12 + х22 + х}2 + *л2 ^ 3,5,

0<xtl < 1, к= 1, 2, 3, 0<xi2< 1,к= 1,2,3,4. С помощью программы TORA получено следующее оптимальное решение:

z = -0,52, хи = xl2 = 1, х13 = 0,98, х21 = х22 = х23 = 1, х24 = 0,5. Отсюда получаем решение исходной задачи (х,, х2) = (2,98, 3,5).

УПРАЖНЕНИЯ 21.2.1

1. Для следующей задачи постройте аппроксимирующую модель в виде задачи частично-целочисленного программирования.

Максимизировать z = е~х' + х, + (х2 +1)2

при ограничениях

х,2 + х2 < 3, х,, х2>0.

2. Решите аппроксимирующую задачу из предыдущего упражнения, используя правило ограниченного ввода в базис. Затем найдите оптимальное решение исходной задачи.

3. Рассмотрите следующую задачу.

Максимизировать z = х,х2х3

при ограничениях

х,2 + х, + х3 < 4, х,, х2, х3 > 0.

Постройте аппроксимирующую задачу в виде задачи линейного программирова­ния с учетом дальнейшего использования правила ограниченного ввода в базис.

Глава 21. Алгоритмы нелинейного программирования

4. Покажите, каким образом приведенная ниже задача может быть приведена к сепарабельному виду.

Максимизировать г = ххх2 + х3 + xtx3

при ограничениях

xtx2 + хг + ххх3 < 10,

5. Покажите, каким образом следующую задачу можно преобразовать в задачу сепарабельного программирования.

Минимизировать z = е2"'*"*2 + (х3 - 2)2

при ограничениях

jc, + х2 + х3 < 6, xitx2, х3>0.

6. Покажите, как следующую задачу можно преобразовать в задачу сепара­бельного программирования.

Максимизировать z = eVl + х2х3 + х4

при ограничениях

л;, + х2х3 + х3< 10,

xt не ограничена в знаке.

7. Покажите, что при реализации метода выпуклого сепарабельного програм­мирования оптимальное решение не содержит переменной хк1 > 0, если пере­менная xk_u не достигает своей верхней границы.

8. Решите представленную ниже задачу как задачу выпуклого сепарабельного программирования.

Минимизировать z = х,4 + 2х2 + х]

при ограничениях

х2 + х, + х3 < 4, |-*,+х,|<0,

х2 не ограничена в знаке.

9. Решите как задачу выпуклого сепарабельного программирования следую­щую задачу.

Минимизировать г = (л;, - 2)2 + 4.(х2 - б)2 при ограничениях

6л:, + 3(х2 + 1)2< 12, л:,, л:2>0.

21.2. Алгоритмы решения задач с ограничениями

21.2.2. Квадратичное программирование

Задача квадратичного программирования имеет следующий вид.

Максимизировать (или минимизировать) г = СХ + XTDX при ограничениях

АХ<Ь, Х>0,

где

X — (х,, х2.....xJT,

О = (с,, с2, сь), b = (b,,b2, ...,bm)T,

А =

D =

d ,-d

Функция X DX, где D — симметрическая матрица, является квадратичной фор­мой (см. раздел А.З). Матрица D будет отрицательно определенной в задаче максими­зации и положительно определенной — в задаче минимизации. Это означает, что функция z является строго выпуклой по переменным X в задаче минимизации и строго вогнутой — в задаче максимизации. Ограничения в этой задаче предполага­ются линейными, что гарантирует выпуклость области допустимых решений.

Решение сформулированной задачи основано на использовании необходимых условий Куна-Таккера. Так как целевая функция z строго выпуклая (или вогну­тая) и область допустимых решений задачи является выпуклым множеством, эти условия (как показано в разделе 20.2.2) также достаточны для установления нали­чия глобального оптимума.

Задачу квадратичного программирования рассмотрим для ситуации, когда це­левая функция подлежит максимизации. Изменение формулировки задачи при минимизации целевой функции является тривиальным. Общая постановка задачи имеет следующий вид.

Максимизировать г = СХ + XTDX

при ограничениях

G(X) =

<0.

Обозначим через X = (Я,, Я2, Яп)Т и U = (//,, р.2, р.п)т множители Лагранжа, свя­занные с ограничениями АХ - b < 0 и -X < 0 соответственно. Применяя условия Куна-Таккера, получаем

X>0,U>0, Vz - (Х UT)VG(X) = 0,

Глава 21. Алгоритмы нелинейного программирования

= 0, I = 1, 2,т,

PjXj = 0,j = l, 2, ...,п, АХ<Ь, -Х<0.

Отсюда имеем

VG(X) =

Vz = С + 2XTD,

Обозначим через S = b - АХ > 0 вектор дополнительных (остаточных) переменных. Тогда приведенные выше условия принимают следующий вид.

-2XTD + ХТА - UT = С, AX + S=b, UjXj = 0 = XiSi для всех i и j, X,U,X,S>0.

Так как DT = D, в результате транспонирования первой системы уравнений получим

-2DX + АТХ - U = Ст. Следовательно, необходимые условия можно записать в виде

-2D А -I 0 АО 0 1

X U гс

= 0 = XiSi для всех i и j, X, U, X, S > 0.

Все уравнения, за исключением p.xj = 0 = ЯД, являются линейными относи­тельно переменных X, X, U и S. Следовательно, исходная задача сводится к поиску решения системы линейных уравнений, удовлетворяющему дополнительным ус­ловиям fipc! = 0 = ЯД. Поскольку функция z строго вогнутая, а область допустимых решений представляет собой выпуклое множество, допустимое решение, удовле­творяющее всем этим условиям, должно быть единственным и оптимальным.

Решение рассматриваемой системы находится путем реализации этапа I двух-этапного метода (раздел 3.4.2). При этом единственным ограничением является не­обходимость удовлетворения условий ЯД = 0 = цх. Выполнение этого условия оз­начает, что если переменная Я( в базисном решении принимает положительное значение, то переменная S, не может быть базисной и принимать положительное значение. Аналогично переменные ц. и xj не могут одновременно принимать поло­жительные значения. Это обстоятельство подобно правилу ограниченного ввода в базис, которое было использовано в разделе 21.2.1.

Этап1 завершается обращением в нуль всех искусственных переменных только в том случае, если исходная задача имеет непустое множество допустимых решений.

21.2. Алгоритмы решения задач с ограничениями

Пример 21.2.3

Рассмотрим следующую задачу.

Максимизировать г = 4х, + 6х, - 2х - 2х,х, - 2х

при ограничениях

х, + 2х2 < 2, х,,х2>0.

Эту задачу можно записать в матричной форме

r-2 -iy*

максимизировать г = (4, 6) ' +(х,,х2)

-1

при ограничениях

(1,2)^|,2, х„х2>0.

Условия Куна-Таккера принимают следующий вид.

(4 2 1 2 4 2 1 2 О

-1 0 0^ 0-10 0 0 I,

     
х    
     
     
  =
    А
     
Ч51 )    

Начальная симплекс-таблица для этапа I строится путем введения искусственных переменных /?, и R2. Имеем

Базис *1 хг     Рг Я, Я2 S1 Решение
г -1 -1
Я -1
я2 -1
S1

Итерация 1. Поскольку //, = 0, вводимой в базис переменной может быть х,, при этом из числа базисных исключается переменная Rr Получаем следующую сим­плекс-таблицу .

Базис Х1 хг Хл   Рг я. Я2 S1 Решение
г 3/2 1/2 -1 -3/2
  1/2 1/4 -1/4 1/4
я2 3/2 1/2 -1 -1/2
S1 3/2 -1/4 1/4 -1/4

Глава 21. Алгоритмы нелинейного программирования

Итерация 2. Так как /и2 = О, вводимой в базис переменной является х2. В результате приходим к следующей таблице.

Базис Х1 хг   А1 М2 Я, я2 Si Решение
г -1 -1 -2
*1 1/3 -1/3 1/3 -1/3 2/3
Я1 -1 -2
х2 -1/6 1/6 -1/6 2/3 2/3
Итерация 3. Так как *i = 0, в число базисных можно ввести переменную Яг В ре-
зультате получаем симплекс-таблицу.          
Базис х, хг Л:     я. Я2 Si Решение
г -1 -1
  -1/3 1/6 1/3 -1/6 1/3
  -1/2 1/2 -1
Хг 1/6 -1/12 -1/6 1/12 1/2 5/6

Последняя таблица дает оптимальное решение рассматриваемой на этапе I задачи. Так как г = О, полученное решение хх = 1/3, хг = 5/6 является допустимым. Опти­мальное значение z вычисляется подстановкой полученного решения в выражение для целевой функции исходной задачи и равняется 4,16.

Средство Excel Поиск решения можно использовать для решения задач квадратич­ного программирования. На рис. 21.5 показано решение задачи из данного примера (файл ch21SolverQuadraticPrograinrning.xls). Исходные данные для задачи представле­ны в таком же виде, как и в задачах линейного программирования (см. раз­дел 2.4.2). Основное отличие состоит в том, что целевая функция сейчас нелинейна. Поскольку в данном примере целевая функция имеет вид

z = 4х, + 6х2 - Ix1 ~ ^х,х2 - 2x1,

в ячейку D5 записывается формула

=4*В10+6*С10-2*В1 (^2-2*810*С10-2*С10*2

Здесь в ячейках В10 и СЮ записаны значения xt и х2. Отметим, что ячейки В5:С5 не используются (в отличие от задач линейного программирования), поэтому мы ввели в них значения NL, показывающие, что ограничения нелинейны. Чтобы ука­зать, что переменные неотрицательны, надо или установить соответствующую оп­цию в диалоговом окне Параметры или задать нужные ограничения непосредствен­но в диалоговом окне Поиск решения.

21.2. Алгоритмы решения задач с ограничениями

D5

* =4*В10+6*С10-2*В10Л2-2"В10*С10-2*С10Л2

  А В   el . i F  
I Quadratic Programming Model    
Input data:          
    x1 x2     -  
      Totals   Limits  
  Objective NL NL 4 16P6R7      
Constraint 2 , <=  
  >=0 >=0 |  
8 ' Output results:  
  x1 x2 z      
Solution 0 333333 0 833333 4 166667      
____ __          

Поиск . ешения

хстансеить целевую ячейку |$D$5 Равной. минимальному значению г

г" минимальному значению изменяя ячейки

Рис. 21.5. Решение в Excel задачи примера 21.2.3

УПРАЖНЕНИЯ 21.2.2

1. Дана задача, в которой требуется

максимизировать z = 6х, + Ъх2 - 4jc,x2 - 2х2 - Ъх

при ограничениях

JC, + х2< 1, 2хх + Зх2 < 4, xt, хг> 0.

Покажите, что г — строго вогнутая функция, и решите задачу, используя алгоритм квадратичного программирования.

2. Дана следующая задача.

Минимизировать z = 2х,2 + 2х + Ъх] + 2ххх2 + 2х2х} +х,- Ъх2 - 5х3

при ограничениях

X, + X, + X > 1,

1 2 d

Зхх + 2х2 + ха<6, X ) ~ 0»

Покажите, что функция г — строго выпуклая, и найдите решение задачи ме­тодом квадратичного программирования.

Глава 21. Алгоритмы нелинейного программирования

21.2.3. Геометрическое программирование

В геометрическом программировании рассматриваются задачи нелинейного программирования специального вида. Подход геометрического программирова­ния позволяет находить решение исходной задачи с помощью соответствующей двойственной задачи.

Методами геометрического программирования решаются нелинейные задачи, в которых как целевая функция, так и функции ограничений имеют следующий вид:

г = /(х) =

где

uj=cjfl*?> У' = Ь2,...,М

(=1

Предполагается, что здесь все с > 0, а число N является конечным. Показатели степени а,, по знаку не ограничены. Функция /(X) имеет вид полинома, если не учи­тывать того, что показатели степени atj могут принимать отрицательные значения. По этой причине, а также в связи с тем, что все коэффициенты с; > 0, функция /(X) называется позиномом.

В этом разделе будут рассмотрены задачи геометрического программирования без ограничений. Исследование задач геометрического программирования с огра­ничениями выходит за рамки настоящей главы. Детальное рассмотрение излагае­мых здесь вопросов содержится в книге [2], глава 6.

Рассмотрим задачу минимизации позиномиальной функции /(X). Будем назы­вать эту задачу прямой. Предполагается, что переменные х, принимают строго по­ложительные значения, т.е. область х, < 0 недопустима. Далее будет показано, что требование х, * 0 является существенным при получении основных результатов.

Первые частные производные функции z в точке минимума должны обращаться в нуль. Следовательно,

ол, ;г1 олк , = 1

Поскольку по предположению все хк > 0, имеем

Г- = 0 = -Хв^, А =1.2,..., я.

Эх x,

■к у-1

Пусть z — минимальное значение функции z. Очевидно, что z > 0, так как z — по-зином, и все хк > 0. Обозначим

Из определения следует, что у1 > 0 и X^-i-vj =' ■ Величина yt характеризует относи­тельный вклад у'-го слагаемого V' в оптимальное значение целевой функции z'. Не­обходимые условия экстремума теперь можно записать в следующем виде.

I>V,=n. к = ,2.....п.

21.2. Алгоритмы решения задач с ограничениями

Z-Уу = У) > 0 для всех J-

Эти уравнения, именуемые условиями ортогональности и нормировки, определя­ют единственное решение для у при условии, что все уравнения независимы и п + 1 = N. Задача усложняется при N > п + 1, так как в этом случае решение для I/. не является единственным. Ниже показано, что и в этом случае существует воз­можность однозначно определить у. для минимизации функции z.

Пусть y'j — элементы единственного решения представленной выше системы

уравнений. Тогда величины г* и х], i = 1, 2,п , определяются следующим образом. Рассмотрим величину

Поскольку z* = -г , то

П Пс')"

В последнем выражении учтено условие X"-iav-vj = ^ • Следовательно, значение г" можно вычислить, как только будут определены все уг При известных у] и z мож­но определить U] = y'jZ ■ Значения х] находятся как решение системы уравнений

Рассмотренная процедура показывает, что исходная задача минимизации позино-ма z может быть сведена к решению системы линейных уравнений относительно у . При этом значения всех у' определяются из необходимых условий существования

минимума. Можно показать, что эти условия являются также и достаточными. До­казательство этого приводится в книге [2].

Фактически переменные yt определяют двойственные переменные, соответст­вующие прямой задаче минимизации z. Чтобы установить эту зависимость, запи­шем целевую функцию прямой задачи в виде

Определим теперь функцию

Глава 21. Алгоритмы нелинейного программирования

Поскольку yj = 1 и yj > О, в силу неравенства Коши[1] имеем w<z.

Функция w с переменными ух, у2, yN определяет задачу, двойственную к ис­ходной. Поскольку w является нижней границей значений z и рассматривается за­дача минимизации г, то, максимизируя функцию w, мы получим

w = max w = min z = z ■

У) *:

Это значит, что максимальное значение w (= w ) на множестве допустимых значений г/, совпадает с минимальным значением z (= z") на множестве допустимых значений xt.

Пример 21.2.4

В этом примере рассматривается задача, где N = п + 1, так что решение, получаемое из условий ортогональности и нормировки, является единственным. (Следующий пример иллюстрирует случай, когда N > п + 1.)

Рассмотрим задачу

минимизировать z = 7х,х;' + Зх,х3~[2] + 5х~3х,х3 + х,х,х3.

Эту функцию можно записать в виде

z = 7х!х,~'х° + Зх?хх,[3] + 5х73хх + ххх,

так что здесь

(с,, с2, с3, ct) = (7, 3, 5, 1), 'а,, а,, а,3 а14 ^ ( 1 0-3 Г

а,. а„ а,, а,.

-1111 0-211

ya3l я3, ап ам /

Условия ортогональности и нормировки приводят к системе уравнений

( 1 -3 Г V   4
-1 1 1 -v:  
-2 1 1 л  
ч [4] 1 К      

Эта система имеет единственное решение

.1.1

Следовательно,

   
   
   
>  
 
  v

= 15,23.

21.2. Алгоритмы решения задач с ограничениями 823 Из уравнения U) = y)z' следует, что

7л,х,' =(/, = ^(15,23) = 7,615,

3.v,jt,2 = {/, =-(15,23) = 2,538,

5л,3хЛ=(/3=^(15.23) = 3,173,

x,x2x, = =—(15.23) = 1,904. 8

Эта система имеет решение =1,316. х =1,21, .vj =1,2, которое является оптималь­ным решением прямой задачи.

Пример 21.2.5

Рассмотрим задачу

минимизировать с = 5.v,.v,' + 2.v, '.v, + 5.v, + .vj1. Условия ортогональности и нормировки приводят к системе уравнений

1-11 (У 1 10-1 \ 11 1

V,

У}

У*

о

Поскольку N > п + 1, эти уравнения не позволяют непосредственно определить ис­комые значения » Выражая уи у2 и у, через у4, имеем

' 1 -1 п f-v'l   ' 0 1
-1 1 0 1 V, 1 ' - = у4
, 1 1 b     У-у,,

или

v, =-

I - 3 -

Двойственную задачу можно записать в следующем виде.

Максимизировать iv =

-.0.5(1

0-5(1-vj

Глава 21. Алгоритмы нелинейного программирования

Максимизация w эквивалентна максимизации функции lnw, переход к которой уп­рощает вычисления. Получим

lnw = 0,5(1 - 3y4){lnl0 - 1п(1 - Зу4)} + 0,5(1 - у4){1п4 - 1п(1 - у4)} + у4{1п5 - lny4 + lnl - 1пу4}.

Значение у4, максимизирующее функцию lnw, должно быть единственным, поскольку прямая задача имеет единственный минимум. Следовательно,

+ln 5-{1+1пу4}+1п 1-{1+1пу4} = 0. После упрощений получаем

^ Г(1-3,у4)?(1-у4)?

у]

  ( 3 ^  
In 2х102 + 1п
   
  )  

или

>/(1-Зу4)3(1-,у4)

у:

= 12,6,

откуда у* =0,16 . Следовательно, yj=0,16, yj=0,42 и у,* = 0,26. Значение г* вычисляется по формуле

Следовательно,

, .26/ .42 / , ч0.16

= W=,-5-l ^ =9,661.

,0,26, 10,42 J l0,16J

с/3 = 0,16х9,661 = l,546 = 5xi, U4 =0,16x9,661 = 1,546 = х2.

Отсюда имеем х* =0,309 и xj =0,647 ,

УПРАЖНЕНИЯ 21.2.3

1. Решите следующую задачу методом геометрического программирования. Минимизировать z = 2xj 'xj + хх~2 + 4x,2 п ри x,, x2 > 0.

2. Решите следующую задачу методом геометрического программирования. Минимизировать z = 5х{х2х] + х, 2х3~' + 10х2 + 2xx'x2xf при xv х2, х3 > 0.

3. Решите следующую задачу методом геометрического программирования. Минимизировать z = 2х}х2 + 8х,"3х2 + Зх,х2 при xlt х2 > 0.

4. Решите следующую задачу методом геометрического программирования. Минимизировать z = 2х]х~2 + 4х,"2х2 + х,х, при х,, х2 > 0.

21.2. Алгоритмы решения задач с ограничениями

21.2.4. Стохастическое программирование

В стохастическом программировании рассматриваются задачи, в которых отдель­ные или все параметры являются случайными величинами. Такие ситуации типичны в реальных задачах, когда трудно определить точные значения параметров.

Основной подход к решению задач стохастического программирования состоит в преобразовании исходной вероятностной задачи в эквивалентную детерминиро­ванную. В данном разделе рассматривается оптимизационная задача с вероятност­ными ограничениями, которая имеет следующий вид.

Максимизировать z = 'YJcjxj

при ограничениях

^|ХаЛ - ^| - ' ~ai' 1 = 1.2, Xj>0 для всех j.

Название "вероятностные ограничения" обусловлено тем, что каждое ограни­чение задачи должно выполняться с вероятностью не меньшей, чем 1 - а,, О < at < 1. Предполагается, что все коэффициенты a:j и Ь1 являются случайными величинами. Далее рассматриваются три варианта. Первые два соответствуют предположениям о том, что только или а, или 6 являются случайными величинами, а третий объе­диняет эти два случая. Во всех трех ситуациях предполагается, что параметры яв­ляются нормально распределенными случайными величинами с известными мате­матическими ожиданиями и дисперсиями.

Ситуация 1. Предполагается, что все ац являются нормально распределенными случайными величинами с математическими ожиданиями М{а(.} и дисперсиями D{a:j}. Также известны ковариации covfa^a..} случайных величин а; и а...

Рассмотрим i-e ограничение задачи

и введем обозначение

рЩа,Л<Ь,>1-а!

hi=Yja,jxj.

Случайная величина Л. имеет нормальное распределение с математическим ожида­нием M{hl} = ^j".=iM{aij}xj и дисперсией D{h} = XrD,X, где Х = (xv х2, ...,хп)т,

I), = /-я матрица ковариации

Теперь имеем 'D{an} ■■■ cov{an,ahlY cov{a,„,aa} ••• D{all)

h-M(k) h-M(h)

Глава 21. Алгоритмы нелинейного программирования

h-M(h)

где ' - — стандартная нормально распределенная случайная величина с ну-

левым математическим ожиданием и единичной дисперсией. Это означает, что

Ph <!>,} = Ф

b,-M(h,)

где через Ф обозначена функция распределения стандартного нормального распре­деления.

Пусть Ка — значение стандартной нормально распределенной случайной вели­чины, определяемое из уравнения

Ф(К„. ) = !-«,

В этом случае неравенство P{h. < b) > 1 - at выполняется тогда и только тогда, когда

b,-M{h,)

Это приводит к детерминированному нелинейному ограничению, которое эквива­лентно исходному вероятностному

В частности, если ац — независимые нормально распределенные случайные вели­чины, тогда cov{av,a = 0 , и последнее неравенство принимает вид

i-i г'

Данное ограничение можно записать в виде ограничений задачи сепарабельного программирования (раздел 21.2.1), для чего используется замена переменных

>' = /; К Y, лля всех '•

Таким образом, исходное ограничение эквивалентно неравенству

£м{а,,}.г/ + к„у,<г>,

и уравнению

el

Ситуация 2. Здесь предполагается, что только bt является нормально распреде­ленной случайной величиной с математическим ожиданием М{Ь) и дисперсией D{b). Анализ этой ситуации проводится аналогично предыдущей. Рассмотрим сто­хастическое ограничение

pbl>Ydailx>a,.

21.2. Алгоритмы решения задач с ограничениями

Как и в первом случае, имеем

Yjaiixj-M{bi)

>а..

Это ограничение выполнимо лишь при выполнении неравенства

■<к„.

Итак, исходное вероятностное ограничение эквивалентно детерминированному линейному

у=1

Ситуация 3. Теперь предположим, что все параметры atj и bt являются нормаль­но распределенными случайными величинами. Перепишем ограничение

в виде

Так как все atj и bt распределены по нормальному закону, в соответствии с из­вестными результатами математической статистики величина ^"^fyXj-bf также

имеет нормальное распределение. Отсюда следует, что данный вариант подобен ва­рианту 1 и может быть рассмотрен аналогичным образом.

Пример 21.2.6

Рассмотрим задачу с вероятностными ограничениями

максимизировать г = 5х, + 6х2 + Зх,

при ограничениях

Р{аих, + а12х2 + ацх} < 8} > 0,95,

Р{5х, +х2 + 6хъ2 > 0,10,

причем все х;>0. Пусть — независимые нормально распределенные случайные величины со следующими значениями математических ожиданий и дисперсий

M{an} = l,M{al2} = 3,M{aJ = 9,

D{au) = 25, D{aJ = 16, D{aJ = 4.

Пусть параметр Ьг является нормально распределенной случайной величиной с ма­тематическим ожиданием 7 и дисперсией 9.

Глава 21. Алгоритмы нелинейного программирования

По таблице функции распределения стандартного нормального закона (приложение В) находим

Кщот~ 1,645, tfQj =*„.,„ = 1,285. Первое ограничение задачи эквивалентно детерминированному неравенству

х, + Зх, + 9х3 +1,645N/25x12 + 16x;+4x; < 8,

а второе ограничение — неравенству

5х, +хг + 6х3< 7 + 1,285 х 3 = 10,855.

Если положить

у2 = 25 х2 + 16х, + 4х3, исходная задача принимает следующий вид:

максимизировать г = 5х, + 6х2 + Зх3

при ограничениях

х, + Зх2 + 9х3 + 1,645у < 8, 25х,2 + 16х;+4х322 =0, 5х, + х2 + 6х3< 10,855,

*1> х2' х3'У~0'

и может быть решена методами сепарабельного программирования.

На рис. 21.6 показано решение рассматриваемой задачи стохастического програм­мирования в Excel (файл ch21SolverStochasticProgramming.xls). В данном случае нели­нейной является только левая часть второго ограничения, которая вводится в ячейку F7 в виде формулы

=25 *В 12Л2+16С12A2+4*D 12Л2-Е 12л2

УПРАЖНЕНИЯ 21.2.4

1. Преобразуйте следующую задачу стохастического программирования в эк­вивалентную детерминированную модель.

Максимизировать z = хх + 2x2 + 5д:3

при ограничениях

P{a,x, + Зх2 + а3х3 < 10} > 0,9,

Р{7хг + 5х2 + х32}>0,1, х х2, х3 > 0.

Пусть а, и а3 являются независимыми нормально распределенными случай­ными величинами с математическими ожиданиями М{а1) = 2 и М[а3} = 5 и дисперсиями D{al) = 9 и D{a3) = 16. Предполагается также, что Ь2 — нор­мально распределенная случайная величина с математическим ожиданием 15 и дисперсией 25.

21.2. Алгоритмы решения задач с ограничениями

  F7   =25*B 12Л2+16*C 12A2+4*D12Л2-Е12Л2    
  А В С D E ___F J G H
    Stochastic Programming Model      
Input data:
  x1 x2 x3 У      
          Totals   Limits
Objective   4.66129 i  
Constraint 1 1.646 2.529435 <=
Constraint 2 NL NL NL NL 7.4E-11 =
Constraint 3 о   10.856
  >=0     >=0  
Output results:              
  x1 x2 x3 У z    
Solution ' 7И9ч 1 37096» 4 66129    

Поиск решения

Установить целевую ячейку: |$F$5 ]4J Равной: максимальному значению <~ значению' |о~

минимальному значению

Изменяя ячейки:

|$В$12:$Е$12 Ограничения:

Предположить |

$В$12:$Е$12 >= О $F$6 <= $Н$6 $F$7 = JH$7 $Н8 <= $Н$в

~2

J

Добавить

Изменить

Удалить

| Вь ипнить ] Закрыть

Параметрь-

Восстановить

Справка

Рис. 21.6. Решение задачи стохастического программирования в Excel 2. Дана следующая задача стохастического программирования.

при ограничениях

Максимизировать z = х, + х + х3

PJxf + а2х + аЗЛ/х7 < 10} > 0,9,

хг, х2, х3 > 0.

Пусть параметры а2 и а3 — независимые нормально распределенные случай­ные величины с математическими ожиданиями 5 и 2 и дисперсиями 16 и 25 соответственно. Преобразуйте данную задачу в детерминированную задачу сепарабельного программирования.

21.2.5. Метод линейных комбинаций

Этот метод ориентирован на решение задач, в которых все ограничения являют­ся линейными:

максимизировать z = f (X)

при ограничениях

АХ<Ь,Х>0.

Глава 21. Алгоритмы нелинейного программирования

Основой метода линейных комбинаций является градиентный метод наиско­рейшего подъема (раздел 21.1.2). Известно, что в этом методе движение по направ­лению градиента может вывести за пределы области допустимых решений. Кроме того, в точке условного оптимума градиент не обязательно обращается в нуль. По­этому метод наискорейшего подъема необходимо модифицировать в целях его применения к рассматриваемой задаче с ограничениями.

Пусть X* — допустимая точка, полученная на fe-й итерации. Разложим целе­вую функцию /(X) в окрестности точки X* в ряд Тейлора. В результате получим

/(X)«/XX*) + V/(X*)(X - X*) = /(X*) - V/XX*)X* + V/XX*)X. Нам необходимо определить допустимую точку X = X", в которой достигается мак­симум функции /XX) при выполнении (линейных) ограничений задачи. Так как /XX ) - V/XX )Х — постоянное слагаемое, задача определения X сводится к реше­нию следующей задачи линейного программирования:

максимизировать wk(X) = Vf(Xk)X

при ограничениях

АХ<Ь,Х>0.

Так как целевая функция wk определяется градиентом функции /XX) в точке X*, улучшение имеющегося решения может быть обеспечено лишь тогда, когда шДХ") > шДХ*). Из разложения Тейлора следует, что выполнение этого условия не гарантирует, что /XX*) > /(X*), так как X* не обязательно находится в малой окрестности точки X*. Однако при выполнении условия wt(X") > wk(X.k) на от­резке (X*, X") должна существовать такая точка X**1, что /XX**1) > /XX*). Следо­вательно, задача сводится к определению такой точки X**1. Найдем эту точку следующим образом:

Xk" = (1 - r)Xk + гХ* = Хк + г(Х* - Хк), 0 < г < 1.

Отсюда следует, что точка X**1 является линейной комбинацией точек X* и X*. Так как X* и X* — точки выпуклой области допустимых решений, точка X**1 также яв­ляется допустимой. Если сравнить эту процедуру с методом наискорейшего подъе­ма (подраздел 21.1.2), параметр г можно рассматривать как длину шага.

Точка X**1 определяется из условия максимума функции /XX). Так как X*41 зави­сит лишь от переменной г, то Х*и определяется путем максимизации функции

h(r) = f[Xk + r(X* - Xk)].

Процедура повторяется до тех пор, пока на fe-й итерации не будет выполнено условие м>А(Х*) < шДХ*). В этой точке дальнейшее улучшение существующего ре­шения невозможно, процесс вычислений завершается, точка X* считается наи­лучшим решением.

Задачи линейного программирования, которые решаются на каждой итерации описанной процедуры, отличаются друг от друга лишь коэффициентами целевой функции. Поэтому для повышения эффективности вычислений можно использо­вать методы анализа чувствительности, рассмотренные в разделе 4.5.

21.2. Алгоритмы решения задач с ограничениями

Пример 21.2.7

Рассмотрим задачу квадратичного программирования из примера 21.2.3.

Максимизировать z = 4дг, + бх, - 2хг - 2ххх2 - 2х

при ограничениях

х, + 2дг, < 2,

лг,,дг2>0.

Пусть Х° = (1/2, 1/2) — начальная точка, которая является допустимой для рас­сматриваемой задачи. Имеем

удх) = (4 - 4х, - 2х2, 6 - 2дг, - 4х2).

Итерация 1.

удх°) = (i,3).

Соответствующая задача линейного программирования сводится к максимизации функции и>, =х, + Здг2 с учетом ограничений исходной задачи. Ее оптимальным ре­шением есть точка X* = (0, 1). Значения функции и>, в точках Х° и X* равны 2 и 3 со­ответственно. Следовательно, новая точка ищется в виде

х'=|!.-| + г

Л 2

(«НИ

Максимизация функции

-г 1+г

2 ' 2

•w-422

дает г = 1. Таким образом, X1 = (0, 1) и ДХ1) = 4. Итерация 2.

удх1) = (2, 2).

Целевой функцией новой задачи линейного программирования является w2 = 2хх + 2хг. Оптимальное решение этой задачи — X = (2, 0). Поскольку значения и>2 в точках X1 и X* равны 2 и 4, следует найти новую точку. Рассматриваем точку

X2 = (0, 1) + г[(2, 0) - (0, 1)] = (2г, 1 - г).

Максимизация функции

А(г) =Д2г, 1 - г)

дает г = 1/6. Таким образом, X2 = (1/3, 5/6), при этом ДХ2) = 4,16. Итерация 3.

удх2) = (1,2).

Здесь целевая функция имеет вид w3 = дг, + 2х2. Оптимальным решением задачи линей­ного программирования будут альтернативные точки X* = (0,1) и X* = (2, 0). Значение и>3 в обоих случаях совпадает со значением w3 в точке X2. Следовательно, улучшить имею­щееся решение невозможно. Получено приближенное оптимальное решение задачи: X2 = (1/3, 5/6) сДХ2) = 4,16. В данном случае оно совпадает с точным оптимумом.

Глава 21. Алгоритмы нелинейного программирования

УПРАЖНЕНИЕ 21.2.5

1. Решите следующую задачу методом линейных комбинаций.

Минимизировать /(X) = х + х -Зхх,

при ограничениях

Зле, + х2 < 3, 5х, - Зх2 < 5, xlt х2 > 0.

21.2.6. Алгоритм последовательной безусловной максимизации

В этом разделе приводится описание градиентного метода более общего вида. Предполагается, что целевая функция /(X) является вогнутой, а каждая функция ограничений g/X) — выпуклой. Кроме того, допустимая область задачи должна содержать внутренние точки. Это исключает как явное, так и неявное использова­ние ограничений в виде равенств.

Алгоритм последовательной безусловной максимизации основан на преобразо­вании исходной задачи с ограничениями в эквивалентную задачу без ограничений. Процедура в некоторой степени подобна применению метода множителей Лагран­жа. Преобразованная задача затем может быть решена методом наискорейшего подъема (раздел 21.1.2).

Введем новую целевую функцию

p(x,,)=/(x)+/(x-7iFT-I-L.

Ui*,(X) >i*J

где t — неотрицательный параметр. Наличие второй суммы обусловлено учетом тре­бований неотрицательности переменных исходной задачи, которые следует записать в виде -xt<0 для их согласования с остальными ограничениями вида g,(X)<0. По­скольку функция g/X) является выпуклой, будет вогнутой. Отсюда следует, что р(К, t) является вогнутой функцией от переменных X. Следовательно, функция р(Х, t) имеет единственный максимум. Поэтому решение исходной оптимизационной задачи с ограничениями эквивалентно максимизации функции р(Х, t).

Выполнение алгоритма начинается с произвольного выбора начального неотри­цательного значения t. Начальная точка Х° выбирается в качестве первого пробного решения. Эта точка должна быть внутренней точкой области допустимых решений, т.е. не должна находиться на ее границе. При заданном значении t оптимальное реше­ние (точка максимума) функции р(Х, t) находится методом наискорейшего подъема.

Точка, представляющая новое решение, всегда будет внутренней, ибо если ре­шение находится близко к границе области, то по крайней мере одна из функций l/g,(X) или -1/Xj примет очень большое отрицательное значение. Поскольку рас­сматривается задача максимизации р(Х, t), то такие решения автоматически ис­ключаются. Основной результат состоит в том, что последовательно получаемые решения всегда будут внутренними точками допустимой области. Следовательно, исходная задача может всегда рассматриваться как задача без ограничений.

Когда получено оптимальное решение, соответствующее заданному значению t, выбирается новое значение t, и процесс вычислений (методом наискорейшего подъ­ема) повторяется. Если t' — текущее значение t, то следующее значение t" необхо­димо выбирать так, чтобы выполнялись неравенства 0 < /* < t'.

Литература 833

Решение задачи методом последовательной безусловной максимизации завер­шается, когда для двух последовательных значений t соответствующие оптималь­ные решения X, полученные в результате максимизации функции р(Х, t), пример­но совпадают. В этом случае дальнейшие вычисления лишь незначительно улучшат полученное решение.

Практическая реализация алгоритма последовательной безусловной максими­зации имеет ряд нюансов, которые здесь не рассматриваются. В частности, сущест­венным фактором является выбор начального значения параметра t, который мо­жет повлиять на скорость сходимости алгоритма. Далее для определения начальной внутренней точки области допустимых решений могут потребоваться специальные алгоритмы. Соответствующие детали можно найти в книге [3].

ЛИТЕРАТУРА

1. Bazaraa М., Sherall Н. and Shetty С. Nonlinear Programming, Theory and Algorithms, 2nd ed.,Wiley, New York, 1993. (Русский перевод первого издания: Базара М., Шетти К. Нелинейное программирование. Теория и алгоритмы. — М.:Мир, 1982.)

2. Beightler С, Phillips D. and Wilde D. Foundations of Optimization, 2nd ed., Pren­tice Hall, Upper Saddle River, N. J., 1979.

3. Fiacco A. and McCormick G. Nonlinear Programming: Sequential Unconstrained Minimization Techniques, Wiley, New York, 1968. (Русский перевод: Фиакко A., Мак-Кормик Г. Нелинейное программирование. Методы последовательной без­условной минимизации. — М.: Мир, 1972.)

4. Rardin D. Optimization in Operations Research, Prentice Hall, Upper Saddle River, N. J., 1998.

Литература, добавленная при переводе

1. Банди Б. Методы оптимизации. Вводный курс. — М.: Радио и связь, 1988.

2. Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. — М.: Мир, 1985.

3. Зангвилл У. И. Нелинейное программирование. — М.: Сов. радио, 1973.

4. Сухарев А. Г., Тимохов А. В., Федоров В. В. Курс методов оптимизации. — М.: Наука, 1986.

5. Химмельблау Д. Прикладное нелинейное программирование. — М.: Мир, 1975.

ПРИЛОЖЕНИЕ А

КРАТКИЙ ОБЗОР ТЕОРИИ МАТРИЦ

А1. ВЕКТОРЫ

А.1.1. Определение вектора

Пусть pv р2, р„ — произвольные действительные числа. Обозначим через Р упорядоченное множество этих чисел: Р = {pv рг, ...,р„). В этом случае Р называется 71-мерным вектором (или просто вектором), apt — t-м элементом вектора Р. Напри­мер, Р = (2, 4) — 2-мерный вектор, у которогор, = 2 ир2 = 4.

А.1.2. Сложение и вычитание векторов

Пусть Р = (р12, ...,р„) и Q = (grI, q2,qn) — два n-мерных вектора. Тогда элементы вектора R = (ri; r2, г„), равного R = Р ± Q, определяются соотношениями г, =р, ± q,.

В общем случае для любых векторов Р, Q и S, имеющих одинаковую размер­ность, выполняются следующие соотношения.

А.1.3. Умножение вектора на скаляр

Для произвольного вектора Р и скаляра 6 (произвольного действительного чис­ла) произведение вектора Р на скаляр 6 определяет новый вектор Q, задаваемый со­отношением

В общем случае для любых векторов Р и S, имеющих одинаковую размерность, и произвольных скалярных величин в и у выполняются следующие соотношения. 6(Р + S) = 6Р + 6S (свойство дистрибутивности)

P±Q=Q±P

(P + Q) + S = P + (Q + S)

Р + (-Р) = О

(свойство коммутативности) (свойство ассоциативности) (существование нулевого вектора)

Q = eP = (ePl,ep2, ...,6р„).

6(уР) = (ву)Р

(свойство ассоциативности)

Приложение А. Краткий обзор теории матриц

А. 1.4. Линейная независимость векторов

Векторы Р,, Р2, Р„ называются линейно независимыми, если равенство

выполняется тогда и только тогда, когда все 6; равны нулю (Qj — произвольные действительные числа). Если указанное равенство выполняется при некоторых 6^0, то векторы Р,, Р2, Р„ называются линейно-зависимыми. Например, векто­ры Р1 = (1,2) и Р2 = (2, 4) линейно зависимы, поскольку существуют ненулевые числа б, = 2 и 92 = -1, при которых выполняется равенство

в.р. + вл-о.

А.2. МАТРИЦЫ

А.2.1. Определение матриц

Матрицей называется прямоугольный массив элементов, структурированный строками и столбцами. В матрице А элемент ац расположен на пересечении i-й строки и у'-го столбца массива. Говорят, что матрица имеет порядок (размерность) тхп, если она состоит из т строк и п столбцов. Например, матрица

имеет размерность 4x3. А.2.2. Типы матриц

1. Квадратная матрица — это матрица, имеющая одинаковое количество строк и столбцов (т.е. т = п).

2. Единичная матрица — квадратная матрица, у которой все диагональные

элементы равны 1, а все недиагональные матрица порядка 3x3 имеет вид

' О О

I

нулю. Например, единичная

О 1 О

10 0 1,

3. Вектор-строка — матрица, имеющая одну строку и п столбцов.

4. Вектор-столбец — матрица, имеющая т строк и один столбец.

5. Матрица Аг называется транспонированной к матрице А, если элемент atj матрицы Ат равен элементу ар матрицы А. Например,

( 4

и АГ:

2 5

3 6

1 2 3 4 5 6

А.2. Матрицы

6. Матрица В называется нулевой (В = 0), если все ее элементы равны нулю.

7. Две матрицы А = ||а,у|| и В = ||^|| равны тогда и только тогда, когда они имеют одинаковую размерность и atj = Ъц для всех i и j.

А.2.3. Арифметические операции над матрицами

Для матриц определены только операции сложения (вычитания) и умножения. Операция деления матриц не определена, но в некоторых случаях ее может заме­нить операция обращения матриц (см. раздел А.2.6).

Сложение и вычитание матриц. Сложение (вычитание) двух матриц А = |e,J|

иВ = возможно только тогда, когда они имеют одинаковую размерность. Мат­рица суммы получается путем сложения элементов матриц А и В, т.е.

D=A+B=IKL=K+^L-

Для произвольных матриц А, В и С, имеющих одинаковую размерность, спра­ведливы следующие соотношения.

А ± В = В ± А (свойство коммутативности)

А ± (В ± С) = (А ± В) ± С (свойство ассоциативности)

(А±В)Г = АГ±ВТ

Произведение матриц. Произведение АВ матриц А= ||а,у| и В = ||^|| определено

тогда и только тогда, когда количество столбцов матрицы А равно количеству строк матрицы В. Таким образом, если матрица А имеет размерность тхг, матри­ца В должна иметь размерность г х п, где тип — произвольные положительные целые числа. Пусть D = АВ. Тогда матрица D имеет размерность т х п, и ее элемен­ты dtj для всех i и j определяются формулой

Например, если

А =

1 3

2 4

и В =

5 7 9

6 8 0

то

D =

7 9

8 0

((1x5 + 3x6) (1x7+3x8) (1x9 + 3x0) (2x5 + 4x6) (2x7 + 4x8) (2x9 + 4xO)J~

_'23 31 9' ~ ч34 46 18)

В общем случае АВ Ф ВА, даже если произведение ВА определено. Произведение матриц обладает следующими свойствами.

ImA = А1„ = А, где Im и 1„ — единичные матрицы,

(АВ)С = А(ВС),

С(А + В) = СА + СВ,

(А+В)С = АС + ВС,

ос(АВ) = (аА)В = А(аВ), а — скаляр.

Приложение А. Краткий обзор теории матриц

Умножение блочных матриц. Пусть матрицы А и В имеют размерности тхг и rx п соответственно. Предположим, что эти матрицы представимы в виде сово­купности подматриц (блоков):

А =

  А12 А„  
  А 22 А23  
     
и В =   в22
  Iе»  
           

причем для всех I и j число столбцов в блоке А,у равно числу строк в блоке В/(. Тогда

А„В,212В22+А,зВ3Л

АхВ =

АцВ,, + А12В2, + А13В3|

Например,

А21В„+А22В2123В3

0)(4) + (2 3)

A21B1J + А22В22 + АИВ32

( 3) чч  
=
,2 6, ,8,  

\ (0 5

orb«.

4 + 2 + 24)

4) (40

+

'30> 44 61

А.2.4. Определитель квадратной матрицы

Для квадратной матрицы

А =

порядка п рассмотрим произведение ее элементов

где каждый столбец и каждая строка матрицы А представлены в точности одним элементом. Определим величину еЛЛ и , равную +1, если множество индексов /',, j2,

jn получено из множества натуральных чисел 1, 2, п четным числом парных перестановок, и равную -1 — в противном случае. Тогда скалярная величина

~^dhk-i. Pj,h--J. ' р

где суммирование ведется по всем л! перестановкам индексов /„ )г, jn, называет­ся определителем (детерминантом) матрицы А. Определитель матрицы обычно обозначается как detA или |А|.

  ч «12
А = «21 Я22 «23
  ,Я31 аъг аээ,

Например, если

то |А| = ап22а33 - а23а32) - а1221а33 - а31а23) + а1321а32 - а22а31). Определители обладают следующими свойствами.

1. Если все элементы какого-нибудь столбца или строки матрицы равны нулю, то определитель этой матрицы равен нулю.

2. Определитель транспонированной матрицы равен определителю исходной матрицы, т.е. |АГ| = |А|.

А.2. Матрицы

3. Если матрица В получена из матрицы А путем перестановки двух каких-либо строк (или двух столбцов), тогда |В| = -|А|.

4. Если две строки (или два столбца) в матрице одинаковы, то ее определитель равен нулю.

5. Значение определителя не изменится, если какую-либо строку матрицы (столбец) умножить на скаляр и затем прибавить ее к другой строке (столбцу).

6. Если каждый элемент какой-либо строки (столбца) умножить на скаляр а, то значение определителя также будет умножено на это число а.

7. Если А и В — две квадратные матрицы порядка п, то

|АВ| = |А| |В|.

Определение минора. Минором Mtj элемента atj в определителе n-го порядка |А| называется определитель (n-l)-ro порядка, получаемый после вычеркивания в матрице А i-й строки и /'-го столбца. Например, в определителе матрицы

имеем миноры

 

     
  ч,    
А =      
    а32 аээ,
«23 , м 22 = «и
Д33   «31

Присоединенная матрица. Обозначим через Atj = (-1)'+'М,у алгебраическое до­полнение элемента atj квадратной матрицы А. Тогда матрица, присоединенная к матрице А, определяется соотношением

(\ Ai Аг Аг

adjA = ||A,f =

А,2

Например, если

А = ( 2 з"

2 3 2 13 3 4,

тоА„ = (-1/(3 х 4 - 2 х 3) = 6, А12 = (-1/(2 х 4 - 3 х 2) = -2, и т.д. Отсюда получаем

adjA =

6 1 -5 -2 -5 4 -3 3 -1

А.2.5. Невырожденная матрица

Рангом матрицы называется порядок наибольшей квадратной подматрицы, оп­ределитель которой отличен от нуля. Квадратная матрица, определитель которой отличен от нуля, называется матрицей полного ранга или невырожденной матри­цей. Например, матрица

Приложение А. Краткий обзор теории матриц

А =

1 2

2 3 4

3 5 7

является вырожденной, поскольку

|А| = 1х(21 - 20) - 2х(14 - 12) + Зх(10 - 9) = 0. Вместе с тем матрица А имеет ранг г =2, так как

( 2

2 3

= -1*0.

А.2.6. Обратная матрица

Если В и С — две квадратные матрицы порядка п, причем такие, что ВС = СВ = I, тогда матрица В называется обратной к матрице С, при этом матрица С также будет обратной к матрице В. Обратные матрицы обозначаются как В-1 и С"1.

Теорема. Если ВС = I и В — невырожденная матрица, тогда С = В"1, причем матрица С определяется единственным образом.

Доказательство. По условию теоремы ВС = I. Тогда, умножая это равенство справа на В"1, получим В"'ВС = В_11, откуда следует, что 1С = В"1 или С = В"1. Теорема доказана.

Для невырожденных матриц справедливы также следующие результаты.

1. Если А и В невырожденные квадратные матрицы одинаковой размерности, то (АВ)"1 = В'А1.

2. Если А — невырожденная матрица, то из равенства АВ = АС вытекает, что В = С.

Обратные матрицы находят применение при решении систем линейных уравне­ний. Рассмотрим систему из п линейных независимых уравнений

' и ai2 ••• хЛ fV

21 «22 аъ, *2 _ ь1

«„2 •■• «,JUJ U/

где xt — неизвестные, а, и bt — заданные константы. Эта система в матричной фор­ме запишется

АХ = Ь.

Поскольку уравнения системы линейно независимы, матрица А будет невырож­денной, и, следовательно, будет существовать обратная к ней матрица. Таким обра­зом, имеем

А 'АХ = A 'b, откуда получаем решение системы: X = А_1Ь.

А.2. Матрицы

А.2.7. Методы вычисления обратных матриц

Метод присоединенной матрицы. Для невырожденной матрицы А порядка п справедлива формула

A"1=AadjA = rL; А А

Аг

Л

Например, для матрицы

А =

( 2 3

имеем adjA =

f 6 2 •3

-5 3 и |А| = -7. Поэтому

А"'=-

-7

6 -2 -3

-5^ 4

' 1 1 2 7 3 7

Я

1_

Метод последовательных исключений (метод Гаусса-Жордана). Рассмотрим блочную матрицу (А 11), где А — невырожденная матрица. Умножая слева эту матрицу на матрицу А1, получим

(А""1 А | A"'I) = (I | А"1).

Таким образом, при последовательном преобразовании строк исходной матри­цы, обеспечивающем преобразование матрицы А в I, одновременно матрица I пре­образуется в матрицу А"1.

Рассмотрим систему линейных уравнений

( 2 3^ 2 3 2 Ъ 3 4,

Вектор решений X и матрицу, обратную к матрице данной системы, можно по­лучить из соотношения

А"'(А 111 b) = (I | А"11 A~'b).

Реализация метода последовательных исключений приводит к следующей после­довательности действий. Исходная матрица имеет вид

V   f3>  
х1 =  
       
  3N
                 

Приложение А. Краткий обзор теории матриц

Итерация 1

Итерация 2

Итерация 3

f О О

< о

О 1

о о

-5 4 7

-2 -3

-3 2 3

О О

о о

О 1 о

О 0 1

7 2 7 3 7

О

2 -1 -3

7 5 7 3 7

3>| -2 -4

Таким образом, получили решение системы х, = 3/7, х2 = 6/7 и х3 = 2/7. Обрат­ная матрица А"' приведена справа от единичной матрицы и совпадает с обратной матрицей, полученной методом присоединенной матрицы.

Мультипликативное представление обратной матрицы. Предположим, что две невырожденные матрицы в и вслед различаются только одним вектор-столбцом. Пусть также дана обратная матрица в1. Имея матрицу в-1, можно вычислить мат­рицу BjCJJ с помощью формулы

в1 =ев"'.

след

Матрица е находится следующим образом. Обозначим через р. вектор-столбец матрицы в, который в матрице вслед заменен на вектор-столбец рг. Тогда матрицу е можно определить как m-мерную единичную матрицу, у которой r-й столбец заме­нен следующим столбцом.

^-(в-'р,.),

-(в-'р,).

(в"рд

+1 <— г-и элемент

-(в~'р,),„

Здесь предполагается, что (в"'р)г*0, в противном случае обратной матрицы В~л'сд не существует.

Докажем справедливость формулы в^'сд = ев-1. Обозначим через F лг-мерную

единичную матрицу, у которой r-й столбец заменен столбцом в_1р;, т.е.

F-(e1,...,e_1,B-,P|, егп,...,ет).

Поскольку матрица вмед отличается от матрицы в только r-м столбцом, который в матрице вс1ед совпадает с вектором р;, то легко проверить равенство

в„

BF.

А.2. Матрицы

Отсюда получаем

*С =(BF)'=F,B1.

Теперь осталось положить Е = F~ .

Мультипликативная форма используется для вычисления матрицы, обратной к любой невырожденной матрице В. Вычисления начинаются с матрицы В0 = I = В„'. Далее строится матрица В, как единичная матрица, у которой первый столбец совпадает с первым столбцом матрицы В. Тогда

В~' =£,80' =Е,1 = Е, .

Далее подобным образом строится матрица В2 и вычисляется В;'. На i-м шаге,

если на основе единичной матрицы путем замены ее первых i столбцов столбцами матрицы В построена матрица В,, то

В,1 = EjB(_!j ==EiEi_1B(^T =... — Е(Е^Г..Е,.

Это означает, что для исходной матрицы В обратную к ней можно вычислить по формуле В;' =Е,„Е,„-,-Е1

Следующий пример иллюстрирует применение мультипликативного представ­ления обратной матрицы. Пусть дана следующая матрица, для которой надо вы­числить обратную.

r2 1 ОЛ

В = 0 2 0 4 0 1

Шаг О

вп=в;' =

( о ол 0 1 о 0 0 I

Шаг!

В, =

(2 0 0^ 0 1 о 4 0 1,

BP =Р

Е, =

1 >* +-0 0 2

1 0 0 1 в'

( 1    
   
,-2 I

Шаг 2

В2 =

{г 1 о) о 1 о

v

4 0 1 в, в-'р.

о о

(I

0 1 о -2 0 1 2

2 2

-2

V

Приложение А. Краткий обзор теории матриц

е, =

2 О

_1 2

+ 1/2 О [О -(-1)12 1

-I о'

О I О 2

О 1 1

в = в;' =е,в,' =

1 — о

о I О

О 1 1

о о

О 1 о -2 О 1

)

2 О -2

— О

О 1

Метод блочных матриц. Пусть две невырожденные матрицы А и В представимы в следующем блочном виде, причем подматрица Ап невырожденная.

 

А„     Гв„ в,:
(рхр) (Р*а) и в = (рхр) (pxq)
А31 А 22 В2, В22
(ахр) (qxq) ^   y(qxp) (qxq)

А =

Пусть В будет матрицей, обратной к матрице А. Тогда из равенства АВ = 1л сле­дует, что

AnBu+A12B21=I,, А„В12 + А12В22 = 0. Аналогично из равенства ВА = 1п получаем

В21Ап22А21=0,

В212 + В22А22 = 1?.

Так как подматрица А„ невырожденная, то |АИ| * О, и существует обратная мат­рица А,,1. Тогда из приведенных уравнений получаем

В„- A"' +(A„'A12)D-1(A21A„I), B12 = -(A-'AI2)D-1, B.^-D-'CA^A-'),

B!2 = D', гдеБ = A22-A2,(A-'A12).

Для иллюстрации применения этих формул разобьем матрицу

на блоки Ап = (1), А12 = (2, 3), А21 =

  2 ЪЛ
3 2
  3 4J
Чз

Здесь А",' = 1 и

D = 3 2^ 3 4 (0(2, 3) = -1 -4Ч

-3 -5,

А.З. Квадратичные формы

D'=--

Г-5 4) 3 -1

( 5 _4)

7 7

3 1_

1 1

Далее вычисляем

~i,в,2=В1,В2,:

Г2>   ' 5 _4Ч
7 3 и В22 = 7 1
,7,   . 7 7,

Теперь нетрудно получить матрицу В = А"1.

А.З. КВАДРАТИЧНЫЕ ФОРМЫ

Пусть X = (xv х2.....хп) и

Тогда функция

2(Х) = ХгАХ = ££асЛ

называется квадратичной формой. Всегда можно считать, что матрица А симмет­рическая. В самом деле, значение квадратичной формы не изменится, если каждый коэффициент из пары ац и ajt (i Ф j) заменить на (ati + а)/2. В дальнейшем свойство симметричности матрицы А будет предполагаться. Для примера приведем квадратичную форму

  0 Г V
<2(Х) = и„х,,;Сз) 2 7  
  ч3 0 2,  

которая совпадает с формой

  'l 1 2^ ( х
  1 7 X,
  ,2 3 2, хъ)

Отметим, что во второй квадратичной форме матрица симметрическая. Различают следующие типы квадратичных форм.

1. Квадратичная форма называется положительно определенной, если Q(X) > О для всех X * О.

2. Квадратичная форма называется положительно полуопределенной, если Q(X) > 0 для всех X и существует такой вектор X * О, что Q(X) = 0.

3. Квадратичная форма Q(X) называется отрицательно определенной, если квадратичная форма -Q(X) является положительно определенной.

Приложение А. Краткий обзор теории матриц

4. Квадратичная форма Q(X) называется отрицательно полуопределенной, ес­ли квадратичная форма -Q(X) является положительно полуопределенной.

5. Во всех остальных случаях квадратичная форма называется неопределенной.

Можно доказать, что необходимыми и достаточными условиями того, что квад­ратичная форма будет принадлежать одному из перечисленных выше типов, явля­ются следующие утверждения.

1. Квадратичная форма Q(X) будет положительно определенной (полуопределенной), если значения всех угловых миноров определителя |А| положительны (неотрицательны).[5] В этом случае матрица А называется по­ложительно определенной ( полуопределенной).[6]

2. Квадратичная форма Q(X) является отрицательно определенной, если значения fc-x угловых миноров определителя |А| отличны от нуля и имеют знак (-1)*, k = 1, 2,п. В этом случае матрица А называется отрицательно определенной.

3. Квадратичная форма Q(X) является отрицательно полуопределенной, если значения fc-x угловых миноров определителя |А| равны нулю либо имеют знак (-1)*, ft-1,2,..., в.

А.4. ВЫПУКЛЫЕ И ВОГНУТЫЕ ФУНКЦИИ

Функция /(X) называется строго выпуклой, если для произвольных двух раз­личных точек X, и Х2 выполняется неравенство

«АХ, + (1 - Х)Х2) < X ДХ,) + (1 - X)f(X2),

где О <Х< 1. Функция /(X) называется строго вогнутой, если функция -/(X) — строго выпукла.

Специальным случаем выпуклой (вогнутой) функции является квадратич­ная форма[7]

/(X) = СХ + ХГАХ,

где С — вектор констант, а А — симметрическая матрица. Можно показать, что функция /(X) будет строго выпуклой, если матрица А положительно определенная, и строго вогнутой, если А — отрицательно определенная матрица.

Литература 847

ЛИТЕРАТУРА

1. Hadley G. Matrix Algebra, Addison-Wesley, Reading, Mass., 1961.

2. HohnF. Elementary Matrix Algebra, 2nded., Macmillan, New York, 1964.

3. Press W., Flannery В., Teukolsky A. and Vettering W. Numerical Recipes: The Art of Scientific Computing, Cambridge University Press, Cambridge, England, 1986.

Литература, добавленная при переводе

1. Ефимов Н. В. Квадратичные формы и матрицы. — М.: Наука, 1967.

2. Ланкастер П. Теория матриц. — М. Наука, 1978.

3. Хорн Р., Джонсон Ч. Матричный анализ. — М.: Мир, 1989.

ЗАДАЧИ

А.1. Покажите, что следующие векторы являются линейно-зависимыми.

А.2.

А.З. А.4.

А.5.

 

 

      '-2>   ( Г    
а) -2 >   -2    
  , з,   -2J   -1    
      ' 4Ч        
  -3   -6        
Ь)   t        
         
  , 5,            
Для данных матриц  
  ' 9^     '1 -1 2^
А = -8 и В = 4 8
  2,     6 10,

найдите

a) А + 7В;

b) 2А-ЗВ;

c) (А + 7В)Г.

Для матриц из задачи А.2 покажите, что АВ * ВА. Даны блочные матрицы

А =

'
-6
,4

И В:

2 3

1 2 3 1 -4 5^

6 7 0 9

Найдите произведение АВ, используя блочную структуру матриц.

Для матриц из задачи А.2 найдите А"1 и В-1

a) методом присоединенной матрицы,

b) методом последовательных исключений,

Приложение А. Краткий обзор теории матриц

c) используя мультипликативное представление обратных матриц,

d) методом блочных матриц. А.6. Даны матрицы

В =

(2 О 4

 

 

-1
   
2,

Предположим, что в матрице В третий вектор-столбец Р3 заменяется на век­тор-столбец V3 = Р, + 2Р2. В этом случае полученная матрица будет вырож­денной. Покажите, как с помощью мультипликативного представления об­ратной матрицы можно обнаружить вырожденность исходной матрицы.

А.7. С помощью мультипликативного представления обратной матрицы опреде­лите, какая из следующих систем уравнений имеет единственное решение, не имеет решения или имеет бесконечно много решений.

a) jcj + 2x2 = 3, ж, + 4*2 = 2.

b) хх + 2хг = 5, -jc, - 2х2 = -5.

c) хг3 = 5, 4х, + х2 + Зл;3 = 8, ж, + Зл:2 - 2х3 = 3.

А.8. Проверьте правильность формул вычисления обратных матриц с блочной структурой, приведенные в подразделе А.2.7.

А.9. Найдите матрицу, обратную к матрице

где В — невырожденная матрица.

АЛО. Покажите, что следующая квадратичная форма является отрицательно оп­ределенной.

Q(xt, х,) = 6х, + Зх, - 4х,х, - 2х,2 - Зх;.

А.11. Покажите, что следующая квадратичная форма является положительно определенной.

2(х,,х,,х3) = 2xj" +2x1 + 3х3 + 2х,х, +2х,х3. А.12. Покажите, что функция f(x) = е" строго выпукла на всей действительной оси. А. 13. Покажите, что квадратичная форма

/(х,,х,,х3) = 5xf +5х3 +4х3 +4х,х, + 2х,х3.

является строго выпуклой. А.14. В условиях задачи А. 13 покажите, что функция-f(xv х2, х3) строго вогнута.

ПРИЛОЖЕНИЕ Б

TORA.КРАТКОЕ ОПИСАНИЕ

Программная система оптимизации TORA — это Windows-приложение, в кото­ром реализовано большинство алгоритмов, рассматриваемых в этой книге. Досто­инством этой программы является то, что ее можно использовать как в режиме обучения, так и в автоматическом режиме. Режим обучения (пошаговый режим выполнения вычислений) чрезвычайно полезен, поскольку в этом режиме можно разобраться в работе самого алгоритма. При этом не нужно вручную выполнять ог­ромное количество утомительных вычислений, которые лежат в основе большин­ства алгоритмов исследования операций.

TORA является самодостаточной системой, в том смысле, что все инструкции и пояснения, необходимые для работы с этой программой, заключены в названиях пунктов меню, командных кнопок, опций и других элементов управления. TORA не имеет руководства пользователя, поэтому в этом приложении будут кратко опи­саны основные средства данной системы оптимизации.

Система TORA может работать только с разрешением экрана 800x600 или 1024x768 пикселей. Желательно, чтобы было установлено разрешение 1024x768 пикселей, поскольку в этом случае размещение элементов управления будет более удобным и пропорциональным.

Б.1. ГЛАВНОЕ МЕНЮ

На рис. Б.1 показано Main Menu (главное меню) программы. После выбора како­го-либо элемента из этого меню появится новое окно, в котором нужно будет вы­брать режим ввода исходных данных решаемой задачи.

Linear Equations ► Linear Programming Transportation model Integer programming Network models ► Project Planning ► Queuing analysis Zero-5um Games

EXIT TORA

Рис.Б.1. Главное ме­ню системы TORA

850 Приложение Б. TORA. Краткое описание

Б.2. РЕЖИМ ВВОДА ДАННЫХ И ФОРМАТЫ ЧИСЕЛ

В окне задания режима ввода данных (рис. Б. 2) определяются два параметра ввода.

Рис. Б.2. Окно задания режима ввода данных

1. Можно выбрать, следует ли ввести новый набор данных для решаемой задачи (выбрано по умолчанию) или загрузить данные из файла, ранее созданного в программе TORA.

2. Можно определить формат чисел (десятичный или экспоненциальный), а так­же установить точность вводимых данных.

Код десятичного формата (установлен по умолчанию) выглядит как NNNNN.DD, тогда как код экспоненциального формата выглядит как N.NNNNNeDD. По умолча­нию установлено пять разрядов для целой части числа (код N) и два разряда для дробной части числа (код D). Количество разрядов можно изменить на любое другое (разумное) число.

Б.З. ОКНО ВВОДА ДАННЫХ

В левой верхней части окна ввода данных (рис. Б.З) вводятся параметры решае­мой задачи. В зависимости от значений введенных параметров может измениться таблица ввода данных, расположенная в средней части экрана. Также вид таблицы ввода данных зависит от выбранной в главном меню модели (например, вид табли­цы для задачи линейного программирования отличается от вида таблицы для транспортной модели). Изменить таблицу ввода данных можно такими же спосо­бами, какими настраивается внешний вид рабочего листа электронных таблиц.

Можно вставлять и удалять столбцы или строки, а также копировать и вставлять их содержимое. Для этого сначала щелкните на заголовке требуе­мого столбца или строки. Затем из меню EditGrid (Редактировать таблицу) выбе­рите нужную команду. Все команды меню можно выполнить с помощью комбинаций

Б.4. Меню Solve/Modify

клавиш <CTRL+I>, <CTRL+D>, <CTRL+C> и <CTRL+P>, которые выполняют встав­ку и удаление столбца или строки и копирование и вставку скопированного со­держимого соответственно. Любую операцию можно отменить, нажав комбина­цию клавиш <CTRL+U>.

■ДшШИМИДИИШи- ™ 1L<

__

____ _1 tHFAJt pRQQHIWMIHr,______ _

EdRmo Grid

»CNck Maxmzo0Mrniz«)-c«l to changr It to Nntnin(MBdmin) »To DELETE, MSERT, COPY, or PASTE ■ cotumnfrow), cock IWMfeng

con of (argot cotumnirow}, thin люк* pull down EdiGrrd menu ?*For INSERT mod*. ■ ingto(doubte) chck of tarof* rowJcotumn wM

pfaca new romJcotumn attorflMfore) target ronMcofcjmn

INPUT isRID LINEAR PROGRAMMING

Pwc. Б.З. Окно ввода данных

После ввода всех данных щелкните на кнопке Solve Menu (Решить). На экране появится окно с запросом, следует ли сохранить данные. Если нужно, сохраните данные. После этого на экране появится меню Solve/Modify (Решить/изменить).

Nbr of Variables No ot Constraints |

Б.4. МЕНЮ SOLVE/MODIFY

Меню Solve/Modify, показанное на рис. Б.4, содержит команды, которые исполь­зуются для решения выбранной задачи. Важной особенностью системы TORA яв­ляется то. что она позволяет проводить вычисления в автоматическом режиме или в режиме пошагового выполнения. Чтобы решить задачу в последнем режиме, вы­берите в подменю Solve Problem (Решить задачу) команду Iterations (Итерации), а затем метод решения задачи.

Если нужно просмотреть или внести изменения в исходные данные, выберите команду View/Modify Input Data (Просмотреть/изменить исходные данные). В ре­зультате появится окно ввода данных.

Приложение Б. TORA. Краткое описание

 

 

     
1 Soke Problem > 1 Graphical j_
View/Modtfy Input Data I ЮЯ2ЕЭИ Ftr,fi' —*ton '_
MAIN Menu Ext TORA || Iterations > АН-slack starting solution j
  M-meth d Two-phase method Bounded simplex Dual simplex

Рис. Б.4. Меню Solve/Modify

Б.5. ФОРМАТ РЕЗУЛЬТАТА

В окне формата выходных результатов, которое показано на рис. Б. 5, можно ус­тановить точность, с которой будут выведены полученные результаты. Это окно очень похоже на окно режима ввода данных, которое было описано в разделе Б.2.

Рис. Б.5. Окно формата выходных ре­зультатов

Б.6. ВЫХОДНЫЕ РЕЗУЛЬТАТЫ

В окне выходных результатов (в зависимости от решаемой задачи) результаты расчетов можно представить или графически или в текстовом виде (рис. Б.6 ирис. Б.7). Полученные результаты можно вывести на принтер, щелкнув на кноп­ке Write to Printer.

Б.6. Выходные результаты 853

Рис. Б.7. Выходные результаты в графическом виде

ПРИЛОЖЕНИЕ В

СТАТИСТИЧЕСКИЕ ТАБЛИЦЫ

Таблица В.1. Функция нормального распределения /-'(.-.)=-,= Г e'rndt

ч/2тс J-

z 0,00 0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09
0,0 0,5000 0,5040 0,5080 0,5120 0,5160 0,5199 0,5239 0,5279 0,5319 0.5359
0,1 0.5398 0.5438 0.5478 0,5517 0,5557 0,5596 0,5636 0,5675 0,5714 0,5753
0,2 0,5793 0,5832 0.5871 0,5910 0,5948 0,5987 0,6026 0,6064 0,6103 0,6141
0,3 0,6179 0.6217 0,6255 0,6293 0,6331 0,6368 0,6406 0,6443 0,6480 0,6517
0,4 0,6554 0,6591 0,6628 0,6664 0,6700 0,6736 0,6772 0,6808 0,6844 0,6879
0,5 0,6915 0,6950 0,6985 0,7019 0.7054 0,7088 0,7123 0,7157 0,7190 0,7224
0,6 0,7257 0,7291 0,7324 0,7357 0.7389 0,7422 0,7454 0,7486 0,7517 0,7549
0,7 0,7580 0,7611 0.7642 0,7673 0,7704 0,7734 0,7764 0,7794 0,7823 0,7852
0,8 0,7881 0,7910 0.7939 0,7967 0,7995 0,8023 0,8051 0,8078 0,8106 0,8133
0,9 0,8159 0,8186 0,8212 0,8238 0,8264 0,8289 0,8315 0,8340 0,8365 0,8389
1,0 0,8413 0,8438 0,8461 0,8485 0,8508 0,8531 0,8554 0,8577 0,8599 0,8621
1,1 0,8643 0,8665 0,8686 0,8708 0,8729 0.8749 0,8770 0,8790 0,8810 0,8830
1,2 0,8849 0,8869 0,8888 0,8907 0,8925 0,8944 0,8962 0,8980 0,8997 0,9015
1,3 0,9032 0,9049 0.9066 0,9082 0.9099 0,9115 0,9131 0,9147 0,9162 0,9177
1,4 0,9192 0,9207 0,9222 0,9236 0,9251 0,9265 0,9279 0,9292 0,9306 0,9319
1,5 0,9332 0,9345 0,9357 0,9370 0,9382 0,9394 0,9406 0,9418 0,9429 0,9441
1,6 0,9452 0,9463 0,9474 0,9484 0,9495 0,9505 0,9515 0,9525 0,9535 0,9545
1,7 0,9554 0.9564 0,9573 0,9582 0,9591 0.9599 0,9608 0,9616 0,9625 0,9633
1,8 0,9641 0,9649 0,9656 0.9664 0,9671 0.9678 0,9686 0,9693 0.9699 0,9706
1,9 0,9713 0,9719 0,9726 0,9732 0,9738 0,9744 0,9750 0,9756 0,9761 0,9767
2,0 0,9772 0,9778 0,9783 0,9788 0,9793 0,9798 0,9803 0,9808 0,9812 0.9817
2,1 0,9821 0,9826 0,9830 0.9834 0,9838 0,9842 0,9846 0,9850 0,9854 0,9857
2.2 0,9861 0,9864 0,9868 0,9871 0.9875 0.9878 0,9881 0,9884 0,9887 0,9890

Приложения В. Статистические таблицы

Окончание табл. В.1

Z 0,00 0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09
2,3 0,9893 0,9896 0,9898 0,9901 0.9904 0,9906 0,9909 0,9911 0,991.3 0,9916
2,4 0,9918 0,9920 0,9922 0,9925 0,9927 0,9929 0,9931 0,9932 0,9934 0,9936
2,5 0,9938 0,9940 0,9941 0,9943 0,9945 0,9946 0.9948 0,9949 0,9951 0,9952
2,6 0,9953 0,9955 0,9956 0.9957 0,9959 0,9960 0,9961 0,9962 0,9963 0,9964
2,7 0,9965 0,9966 0,9967 0,9968 0,9969 0,9970 0,9971 0.9972 0,9973 0,9974
2,8 0,9974 0,9975 0,9976 0,9977 0,9977 0,9978 0,9979 0,9979 0,9980 0,9981
2,9 0,9981 0,9982 0.9982 0,9983 0.9984 0,9984 0,9985 0,9985 0,9986 0,9986
3,0 0,9987 0.9987 0,9987 0,9988 0.9988 0.9989 0,9989 0,9989 0,9990 0,9990
ЗЛ 0,9990 0,9991 0,9991 0,9991 0,9992 0,9992 0,9992 0,9992 0,9993 0,9993
3,2 0,9993 0,9993 0,9994 0,9994 0,9994 0.9994 0.9994 0,9995 0,9995 0,9995
3,3 0,9995 0,9995 0,9995 0,9996 0,9996 0,9996 0,9996 0,9996 0,9996 0,9997
3,4 0.9997 0,9997 0,9997 0,9997 0,9997 0,9997 0,9997 0.9997 0,9997 0,9998
3.5 0,9998                  
4,0 0.99997                  
5,0 0,9999997                  
6,0 0.999999999                
Источник: Miller I. and Freund J. Upper Saddle River, N. J., 1985. . Probability and Statistics for Engineers, Prentice Hall,
Таблица B.2. Процентные точки распределения Стьюдента taV    
V «=0,10   а-=0,05   a =0,025   а =0,01 or= 0,005 V
3,078   6,314   12,706   31,821 63,657
1,886   2,920   4,303   6,965 9,925  
1.638   2,353   3,182   4,541 5,841  
1,533   2,132   2,776   3,747 4,604  
1,476   2,015   2,571   3,365 4,032  
1,440   1,943   2,447   3,143 3,707  
1.415   1,895   2.365   2,998 3,499  
1.397   1,860   2.306   2,896 3,355  
1,383   1,833   2,262   2.821 3,250  
1,372   1,812   2,228   2,764 3,169  
1,363   1.796   2,201   2,718 3,106  
1,356   1,782   2,179   2,681 3,055  
1,350   1,771   2,160   2.650 3.012  
1,345   1,761   2,145   2,624 2,977  
1,341   1,753   2,131   2,602 2,947  
1,337   1,746   2,120   2,583 2,921  
17 18 1,333 1,330   1,740 1,734   2,110 2,101   2,567 2,552 2,898 2,878   17 18

Приложения В. Статистические таблицы

Окончание табл. В.2

V «=0.10 а =0,05 а = 0,025 а=0,01 а =0,005 V
1,328 1,729 2,093 2,539 2,861
1.325 1,725 2,086 2,528 2,845
1,323 1,721 2,080 2.518 2,831
1,321 1,717 2,074 2.508 2,819
1,319 1,714 2,069 2.500 2,807
1,318 1,711 2,064 2,492 2,797
1,316 1,708 2,060 2,485 2,787
1,315 1,706 2,056 2,479 2,779
1,314 1,703 2,052 2,473 2,771
1,313 1,701 2,048 2,467 2,763
1,311 1,699 2,045 2,462 2,756
со 1,282 1,645 1.960 2,326 2,576 со

Данная таблица публикуется с разрешения Macmillan Publishing Co., Inc., взята из Statistical Methods for Research Workers, 14th ed., by R. A. Fisher. Copyright © 1970, Univer­sity of Adelaide.

Таблица В.З. Процентные точки распределения xl

V a= 0,995 ОГ=0,99 a= 0,975 a= 0,95 a= o,05 a= 0.025 « = 0.01 a= 0.005 V
0.0000393 0,000157 0,000982 0,00393 3,841 5.024 6,635 7,879
0,0100 0.0201 0,0506 0,103 5,991 7,378 9,210 10,597
0,0717 0,115 0,216 0,352 7,815 9,348 11.345 12,838
0,207 0,297 0,484 0,711 9,488 11,143 13,277 14,860
0,412 0.554 0,831 1,145 11,070 12,832 15,056 16,750
0,676 0,872 1,237 1,635 12,592 14,449 16,812 18,548
0,989 1,239 1,690 2,167 14,067 16,013 18.475 20,278
1,344 1,646 2,180 2,733 15,507 17,535 20,090 21,955
1.735 2,088 2,700 3,325 16,919 19,023 21,666 23,589
2,156 2,558 3.247 3.940 18,307 20.483 23.209 25,188
2,603 3,053 3.816 4.575 19,675 21,920 24,725 26,757
3.074 3,571 4,404 5.226 21,026 23,337 26,217 28,300
3,565 4,107 5,009 5,892 22,362 24,736 27,688 29,819
4,075 4,660 5,629 6,571 23,685 26,119 29.141 31,319
4,601 5,229 6,262 7,261 24,996 27.488 30,578 32,801
5,142 5,812 6,908 7,962 26,296 28,845 32,000 34,267
5,697 6,408 7,564 8,672 27.587 30,191 33,409 35,718
6,265 7,015 8,231 9,390 28,869 31,526 34,805 37,156
6,844 7,633 8,907 10,117 30.144 32,852 36,191 38,582
7,434 8,260 9,591 10.851 31,410 34,170 37,566 39,997

Приложения В. Статистические таблицы

Окончание табл. В.З

V а= 0,995 а= о.99 а= 0.975 а= 0,95 «=0,05 а= 0.025 <ar=o,oi а= 0.005 V
8,034 8.897 10.283 11,591 32,671 .35.479 38,932 41.401
8,643 9,542 10,982 12.338 33,924 36,781 40,289 42.796
9,260 10,196 11,689 13.091 .35.172 38.076 41,638 44,181
9,886 10,856 12,401 13,484 36,415 39,364 42.980 45.558
10,520 11.524 13.120 14,611 37.652 40,646 44.314 46,928
11,160 12,198 13.844 15.379 38.885 41,923 45,642 48,290
11,808 12,879 14,573 16,151 40,113 43.194 46,963 49.645
12,461 13.565 15.308 16.928 41.337 44.461 48,278 50.993
13,121 14,256 16.047 17,708 42,557 45.772 49,588 52.336
13,787 14.953 16.791 18.493 43,773 46,979 50.892 53.672

Эта таблица с разрешения администрации Biometrika основана на табл. 8 из Biometrika Tables for Statisticians, Vol. 1.

ПРИЛОЖЕНИЕ Г

ЧАСТИЧНЫЕ ОТВЕТЫ К НЕКОТОРЫМ УПРАЖНЕНИЯМ

ГЛАВА 1

УПРАЖНЕНИЯ 1.1

4. с) 17 минут.

ГЛАВА2

УПРАЖНЕНИЯ 2.1

1. а) -ж, + х2> 1.

с) jc, - х2 < 0.

е) 0,5л:, - 0,5jc2>0. 3. 4 тонны в день.

УПРАЖНЕНИЯ 2.2.1

1. а) и е). См. рис. ГЛ.

2. a)nd). См. рис. Г.2.

(а)

(а)

Рис. Г.1 Рис. Г.2

5. На игру отводится 4 часа, на учебу — 6 часов, г = 14.

Приложение Г. Частичные ответы к некоторым упражнениям

УПРАЖНЕНИЯ 2.2.2

2. Оптимальное решение: jc, = 450, х2 — 350, z — 450 долл.

5. Пусть jc, — количество нефти, получаемой из Ирана (тыс. баррелей в день), х2 — количество нефти, получаемой из Дубай (тыс. баррелей в день). Задача ЛП:

минимизировать z = x, -1- х2 при ограничениях

-0,6*, + 0,4х2<0,

0,2;^ + 0,1х2> 14,

0,25*^ +0,6;t2 > 30,

ОДх, + 0,15х2> 10,

0,15х, +0,lx2>8,

jc,, x2>0.

Оптимальное решение: x, = 55, x2 = 30, z = 85.

УПРАЖНЕНИЯ 2.3.1

1. b) -1 <c,/c2< 2/3. См. рис. Г.З.

3' 2 1

0 1' 2" 3 xx Рис. Г.Л

2. Пусть х, — количество закупаемых банок колы А1, х2 — количество заку­паемых банок колы В&К. Задача ЛП:

максимизировать z — х, + хг при ограничениях

х1+х.2< 500, 2х, - х2 < 0, х, > 100, хх, х2 > 0.

a) х, - 100, х2 = 400, z = 33 долл.

b) Представим ограничение jc, > 100 в виде lim(x,-8х?)> 100. Тогда

lim — < — <- или -°° < с, Ic < 1. См. рис. Г.4.

>о -6 < 1 12

7. Пусть х, — количество произведенных упаковок томатного сока, х2 — коли­чество произведенных упаковок томатной пасты. Задача ЛП:

максимизировать z = 18х, + 9х2 при ограничениях

24х, + 8х2< 60000, jc, < 2000, хг< 6000, х„ х2> 0.

a) х, — 500, х2 = 6000, z = 63 тыс. долл.

b) 0 < с,/с2 < 3, с2 / 0. См. рис. Г.5.

Глава 2

УПРАЖНЕНИЯ 2.3.2

1. Пусть х1 — количество произведенных шляп первого типа, хг — количество произведенных шляп второго типа. Задача ЛП:

максимизировать г = 8л:, + 5х2 при ограничениях

г2< 400, х1 < 150, х2< 200, хг, х2>0.

a) См. рис. Г.6. х, = 100, х2 = 200, z = 1800 долл. в точке В.

b) Стоимость возрастания производства на одну шляпу второго типа состав­ляет 4 долл. в интервале (200, 500).

c) Стоимость возрастания предельного спроса на одну шляпу первого типа составляет 0 долл. в интервале (100, <=■=•).

d) Стоимость возрастания предельного спроса на одну шляпу второго типа составляет 1 долл. в интервале (100, 400).

А = (0, 200)

Л = (100, 200) оптимум С =(150, 200) £> = (150, 100) £ = (150, 0) F= (0,400)

Пусть х, — количество минут рекламы по радио, х2 — количество минут рекламы на телевидении. Задача ЛП:

максимизировать z = х, + 25х2 при ограничениях

15л:, + 300х2 < 10 000, -я, + 2х2 < 0, х, < 400, ххг> 0.

Приложение Г. Частичные ответы к некоторым упражнениям

a) jc, = 60,61, х2 = 30,3, 2 = 818,18.

b) Стоимость единицы месячного лимита на рекламу по радио составляет 0 в интервале (60,61, °°).

c) Стоимость 1 долл. бюджета составляет 0,082 в интервале (0, 66000).

8. Пусть jc, — количество произведенного средства А, хг — количество произ­веденного средства В. Задача ЛП:

максимизировать г = 8jc, + 10jc2 при ограничениях

0,5*, + 0,5jc2 < 150, 0,6jc, + 0,4jc2 < 145,

30 < jc, < 150, 40 < х2 < 200, х2 > 0.

a) jc, = 100, х2 = 200, г = 2800 долл.

b) Стоимость единицы сырья I составляет 16 долл. в интервале (115, 154,17). Стоимость единицы сырья II составляет 0 долл. в интервале (140, <=■=>).

УПРАЖНЕНИЯ 2.4

1. а) Один дополнительный фунт муки стоит 55 центов.

b) Общая стоимость пищевой добавки, производимой за день, равна 495 долл.

c) Текущее решение останется оптимальным.

УПРАЖНЕНИЯ 2.5

1. Ь) Чистая прибыль банка составит 0,936 млн. долл. 4. а) Потери бумаги составят 1150 кв. футов.

b) Возможны варианты разрезки (3, 0, 0), (1, 1, 0) и (1, 0, 1) с соответствую­щими потерями на один фут 0, 3 и 1.

c) Количество стандартных рулонов уменьшится на 30.

6. а) Пусть jc, — количество произведенного за неделю желтого сахара (тонны), х2 — количество произведенного за неделю белого сахара (тонны), jc3 — количество произведенной за неделю сахарной пудры (тонны), jc4 — ко­личество произведенной за неделю мелассы (тонны). Задача ЛП:

максимизировать z = 150л;, + 200jc2 + 230jc3 + 35jc4 при ограничениях

0,76*, + 0,95х2 + х3 < 912, jc, > 25, х2 > 25, х3 > 25, 0 < xt < 400.

Оптимальное решение: jc, = 25, jc2 = 25, х3 = 869,25, jc4 = 400, г = 222 677,50 долл.

Ь) Стоимость тонны сиропа составляет 55,94 долл. в интервале (187,15, оо).

9. а) Обозначим через я сумму инвестиций в проект г, i = 1, 2, 3, 4, через у1

сумму денег, положенную в банк в у'-м году, j =1,2,..., 5. Задача ЛП:

максимизировать z = у5 при ограничениях jc, + *2 + jc4 + (/,<10 000,

0,5jc, + 0,6jc2 - jc3 + 0,4jc4 + 1,065г/, - y2 = 0, 0,3x, + 0,2jc2 + 0,8jc3 + 0,6xt + l,065j/2 - y3 = 0, 1,8jc, + l,5x2 + l,9x3 + 1,8jc4 + l,065t/3 - y4 = 0,

Глава 3

1,2л:, + 1,3х2 + 0,8*3 + 0,95xt + 1,065(/4 - уь = 0,

л-„л-2, х3, xt,yvyz, у3, yt>0.

Оптимальное решение: хх = 0, х2 = 10 ООО долл., х3 = 6000 долл., xt = 0, (/, = 0, у2 = 0, (/3 = 6800 долл., у4 = 33 642 долл., г = 55 628,73 долл. на начало 5-го года.

b) Доходность инвестиций составляет 5,36%.

c) Сумма, которая будет получена в конце 5-го года, уменьшится на 1000x0,373 = 3730 долл.

12. а)

максимизировать г = 30л-, + 20х2 + 50х3 при ограничениях 2л:, 4- Зл-2 + 5л-3 < 4000, 4л-, + 2л-2 + 7л-3 < 6000, л-, + 0,5л-2 + 0,33*3 < 1500, 2л-,-Зл-2 = 0, 5л-2 - 2л"3 = 0, л-, > 200, *2 > 200, х3 > 150. Оптимальное решение: *, = 324,32, х2 = 216,22, х3= 540,54, г — 41081,08 долл.

b) Нецелесообразно, поскольку двойственная цена материала А составляет 10,27 долл.за единицу.

c) Нет, поскольку двойственная цена материала В равна нулю.

15. а) Следует вложить 100 000 долл. в проект А в первом году и 170 000 долл. в проект В во втором году. Ь) Один доллар инвестиций приносит 5,10 долл. в конце срока инвестирования.

ГЛАВА3

УПРАЖНЕНИЯ 3.1.1

1. 2 тонны в день сырья Ml и 1 тонну в день сырья М2.

4. Обозначим как xt) количество изделий i, произведенных на станке i = 1, 2; /' = 1, 2. Получаем задачу ЛП:

максимизировать г = 10(*,, + *,2) + 15(х2, + л:22) при ограничениях

ЛГ,, "Ь x2, Х,2 х22 ^1

л22 о2 и,

хи + x2l +s3 = 200, л-,2 + *22 + st = 250, все переменные хц и s, неотрицательны.

УПРАЖНЕНИЯ 3.1.2

2. Обозначим через xt количество произведенной продукции i, i = 1, 2, 3. Полу­чаем задачу ЛП:

Приложение Г. Частичные ответы к некоторым упражнениям

максимизировать г = 2л:, + 5х2 + Зх3 - 15 л, -10.*, при ограничениях

2л-, +х2 + 2х3 + s; - = 80,

хг + х2 + 2х3 + 5,* - s~2 = 65,

все переменные неотрицательные. Оптимальное решение: л:, = 0, х2 = 65, остальные переменные равны 0, г = 325.

УПРАЖНЕНИЯ 3.2

1. е)л-, = 6/7, л, = 12/7, г = 48/7.

е) л:, = 0, х2 = 3 и хх = 6, х2 = 0. 4. Недопустимые базисные решения:

(л-,, х2) = (26/3, -4/3), (л-,, х3) = (8, -2),

(л-,, х4) = (6, -4), (л-2, хг) = (16, -26),

(л-2, х4) = (3, -13), (х„ л-4) = (6, -16).

УПРАЖНЕНИЯ 3.3.1

3. а) Только пара (А, В). Остальные пары состоят из угловых точек, которые не являются смежными.

Ь) Только последовательность (i). В других последовательностях присутст­вуют или две последовательные угловые точки, которые не являются смежными, или осуществляется возврат к пройденной угловой точке.

УПРАЖНЕНИЯ 3.3.2 1.

Базисная переменная х1 х2 хЗ х4
Значение 1,5 0,8
Исключаемая переменная х7 х7 х8 х5

6. Ь) Значение г могут увеличить переменные л:2, хъ и х6. Если в базис вводится переменная л:2, тогда Дг = +20. Если вводится переменная л:5, тогда Аг = 0. Если переменная х6 — Аг = °°.

УПРАЖНЕНИЯ 3.4.1

3. а) 2 = (8М - 4)л-, + (6М - 1)л-2 - Ms2 - Ms3 = ЮМ.

b) 2 = (ЗМ - 4)л-, + (М - 1)л-2 = ЗМ. 6. Начальная симплекс-таблица:

Базис х1 х2 хЗ х4 Решение
z -1 -12 -8
хЗ
х4

Глава 4

УПРАЖНЕНИЯ 3.4.2

1. а) Сумма значений искусственных переменных — это мера "недопусти­мости" решения. Поэтому сумма значений искусственных переменных всегда минимизируется.

7. Никакая базисная переменная, имеющая положительный коэффициент в г-строке в конце первого этапа, не может принять положительное значение на вто­ром этапе, поскольку тогда значение целевой функции на первом этапе должно быть положительным, что указывает на недопустимость решения на этом этапе.

УПРАЖНЕНИЯ 3.5.1

1. a) A->£->C->D.

b) В точке А — одна итерация, в точке В — одна итерация, в С — три, в D — тоже одна.

УПРАЖНЕНИЯ 3.5.2

1. Альтернативные оптимальные базисные решения: (0,0, 10/3), (0, 5,0) и (1,4, 1/3). Альтернативные оптимальные небазисные решения: (а2, бОд, (10/3)01, + За2), а, + а2 + а3 = 1, все at > 0.

УПРАЖНЕНИЯ 3.5.3

1. а) Пространство решений не ограничено в направлении оси х2.

2. Ь) Целевая функция не ограничена, поскольку коэффициент при переменной х2

в выражении целевой функции положителен.

УПРАЖНЕНИЯ 3.5.4

1. Это требование удовлетворить нельзя — можно произвести не более 275 еди­ниц изделий.

ГЛАВА 4

УПРАЖНЕНИЯ 4.1

2. Пусть (/,, у2иу2 — переменные двойственной задачи.

Максимизировать из = 3(/, + Ьу2 + 4у3 при ограничениях у, + 2у2 + 5(/3 < 5, 2у, - 4у2 + у, < 12, (/, > 0, у2 > 0, у3 не имеет ограничения в знаке.

4. с) Пусть (/, и у2 — переменные двойственной задачи.

Минимизировать w = 5(/, + 6у2 при ограничениях 2(/, + 3j/2 = 1, (/, - у2 = 1, г/, и у2 не имеют ограничений в знаке.

5. Ограничение двойственной задачи, соответствующее искусственной пере­менной, имеет вид у2>-М. Последнее неравенство эквивалентно условию, что переменная у2 не ограничена в знаке.

Приложение Г. Частичные ответы к некоторым упражнениям

УПРАЖНЕНИЯ 4.2.1

1. а) Операция AV, недопустима, е) V2A = (-14-32).

УПРАЖНЕНИЯ 4.2.2

2. а) Обратная матрица =

'loo

А- . о

-I о .

з

УПРАЖНЕНИЯ 4.2.3

2. Пусть (/, и у2 — переменные двойственной задачи.

Минимизировать w = ЗОг/, + 40(/2 при ограничениях </, + уг > 5, 5</, - Ъу2 > 2, 2</, - 6</2 > 3, </, > -М, у2 > 0. Решение: (/, = 5, у2 = 0, w = 150.

3. а) Пусть </, и j/2 — переменные двойственной задачи.

Минимизировать w = 3(/, + 4г/2 при ограничениях (/t + 2у2 > 1, 2г/, - г/2 > 5, (/, > 3, г/2 не ограничена в знаке. Ь) Решение: (/, = 3, у2 = -1, и; = 5.

УПРАЖНЕНИЯ 4.2.4

1. а) Проверка допустимости: {х2, х4) = (3, 15) => решение допустимо.

Проверка оптимальности: коэффициенты при х2 и х4 в 2-строке симплекс-таблицы равны соответственно 0 и 2 => решение оптимально.

7. a) b, = 30, Ь2 = 40.

Ь) а = 23, b = 5, с = -10, d = 5, е = 0.

УПРАЖНЕНИЯ 4.2.5

2. а) Решения прямой и двойственной задач не допустимы. Ь) Решения допустимы, но не оптимальны.

УПРАЖНЕНИЯ 4.3.1

2. Пусть jc,, х2, хъ и х4 — объемы ежедневного производства кабелей четырех типов. Задача ЛП:

максимизировать г = 9,4*, + 10,8*2 + 8,75*3 + 7,8*4

при ограничениях

10,5*, + 9,3*2 + 11,6*3 + 8,2*4 < 4800, 20,4*, + 24,6*2 + 17,7*з + 26,5*4 < 9600, 3,2*, + 2,5*2 + 3,6*3 + 5,5*4 < 4700,

Глава 4

Ьхл + 5х, + + Ъхх < 4500, x, > 100, х2 > 100, хг > 100, х4 > 100. Оптимальное решение: хх = 100, х2 = 100, х3 = 138,42, х4 = 100, 2 = 4011,16.

b) Только для пайки можно увеличить ежедневный фонд времени, посколь­ку соответствующая двойственная цена положительная (= 0,4944).

c) Двойственные цены отрицательные или нулевые. Поэтому компании не вы­годно выполнение требования заданного минимального уровня производства.

УПРАЖНЕНИЯ 4.3.2

2. Производство новой игрушки прибыльно, так как соответствующая приве­денная стоимость равна ух + Зу3 - 4 = -2.

УПРАЖНЕНИЯ 4.4.1

1. а) Нет, поскольку точка £ соответствует допустимому решению — в двойст­венном симплекс-методе промежуточные решения должны быть недопус­тимыми, пока не будет достигнуто оптимальное решение.

4. с) Добавляется ограничение хх < М. Задача не имеет допустимого решения.

УПРАЖНЕНИЯ 4.5.1

4. Пусть Q обозначает еженедельный объем корма. Оптимальное решение: из­вестняк = 0,028Q, зерно = 0.649Q, соевая мука = 0,323Q. Стоимость = = 0,81221Q.

УПРАЖНЕНИЯ 4.5.2

1. a) -20<D2<400,D3>-20.

5. а) Дефицитные ресурсы: резисторы и конденсаторы. Микросхемы не явля-

ются дефицитным ресурсом.

b) Стоимости одного резистора, одного конденсатора и одной микросхемы составляют соответственно 1,25, 0,25 и 0 долл.

g) Прибыль возрастет на 250 долл., дополнительные затраты равны 200 долл., чистая прибыль составит 50 долл.

УПРАЖНЕНИЯ 4.5.3

1. а) Новое ограничение Ахх + х2 + 2х3 < 570 избыточно.

УПРАЖНЕНИЯ 4.5.4

2. а) Текущее решение остается оптимальным.

c) Новое решение: хх = 2, х2 = 2, х3 = 4, г = 14.

УПРАЖНЕНИЯ 4.5.5

2. Ь) Оптимальное решение не изменится.

d) Новое решение: = 10, х.г = 102,5, х3 = 215, г = 665.

Приложение Г. Частичные ответы к некоторым упражнениям

6. Ь) Наименьший удельный доход от первого продукта, сохраняющий текущее оптимальное решение, равен 6 долл.

с) Новое решение: хх = 0, х2 = 165, х3 = 10, г = 4105.

9. а) 1,25-0,25(1,+ 0,5d2>0, 0,25 + 0,75d, - 0Мг>0.

УПРАЖНЕНИЯ 4.5.6

1. 42,86%.

3. а) Производство новой модели (модели пожарной машины) экономически не выгодно.

ГЛАВА 5

УПРАЖНЕНИЯ 5.1

4. Надо назначить очень высокую стоимость М перевозок от Детройта до фик­тивного пункта назначения.

6. а) и Ь) Следует положить М — 10 000. Общая стоимость равна 49 710 долл. Решение показано в следующей таблице.

        Предложение
Станция 1
Станция 2
Станция 3
Внешняя сеть м
Спрос        
9. Решение (в млн. галлонов) показано в таблице. Бензохранилище 2 недополу­чит 2 млн. галлонов. Общая стоимость равна 304 000 долл.
  Бх1   Бх2   БхЗ   Предложение
Завод 1 м
Завод 2
Завод 3 б
Фиктивный завод м
Спрос        

Глава 5 869

УПРАЖНЕНИЯ 5.2

2. Общая стоимость равна 804 долл.

 

Рабочий Новые Ночная 2-дневная 3-дневная Остаток
день полотна заточка заточка заточка
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресенье

5. Оптимальное решение: в первый месяц следует произвести 500 тонн продук­ции, из которых 100 тонн предназначены для покрытия спроса второго ме­сяца; во второй месяц — 600 тонн продукции, из которых 200 тонн предна­значено на покрытие спроса третьего месяца и 180 тонн — на покрытие спроса четвертого; в третий месяц следует произвести 200 тонн продукции; в четвертый также будет произведено 200 тонн продукции. Общая стоимость производства равна 190 040 долл.

УПРАЖНЕНИЯ 5.3.1

1. а) Метод северо-западного угла: хп = 5, хп = 1, хгг = 4, х23 = 3, х33 = 7, стои­мость = 42 долл. Метод наименьшей стоимости: хи = 5, я=1, х22 = 5, x23 = 2, х33 = 7, стоимость = 37 долл. Метод Фогеля: такое же начальное решение, как и в методе наименьшей стоимости.

УПРАЖНЕНИЯ 5.3.2

5. а) Стоимость равна 1475 долл. Ь) с12>3,с13>8,С23>13,с31>7.

УПРАЖНЕНИЯ 5.4

5. Билет 1: отправка из Далласа 3 июня, возвращение 28 июня. Билет 2: от­правка из Атланты 7 июня, возвращение 10 июня. Билет 3: отправка из Ат­ланты 12 июня, возвращение 17 июня. Билет 4: отправка из Атланты 21 ию­ня, возвращение 25 июня. Стоимость билетов 1180 долл. Задача имеет альтернативные решения.

6. Оптимальное размещение: станок 1 — место d, станок 2 — место с, ста­нок 3 — место а, станок 4 — место Ь.

УПРАЖНЕНИЯ 5.5

4. Общая стоимость равна 1550 долл. Решение показано в следующей таблице. Задача имеет альтернативное оптимальное решение.

Приложение Г. Частичные ответы к некоторым упражнениям

  Магазин 1 Магазин 2 Магазин 3
Фабрика 1
Фабрика 2

ГЛАВА6

УПРАЖНЕНИЯ 6.1

1. а) 1-3-4-2. Ь) 1-5-4-3-1. с) 1-3-4-5-1. d) См. рис. Г.7. е) См. рис. Г.7.

Остовное дерево

4. Цифры 1 и 8 должны обязательно располагаться в центральных квадрати­ках. Задача имеет несколько решений (рис. Г.8).

Рис. Г.8

УПРАЖНЕНИЯ 6.2

2. а) 1-2-5-6-4-3 или 3-1-2-5-6-4. Общая длина составит 14 миль.

5. Платформы с высоким давлением газа: 1-2-3-4-6. Платформы с низким давлением газа: 1-5-7 и 5-9-8. Общая длина составит 53 мили.

УПРАЖНЕНИЯ 6.3.1

1. Замена автомобилей должна произойти в 2001 и 2004 годах. Общая стои­мость равна 8900 долл. (рис. Г.9).

Рис. Г.9

Глава 6

5. Для каждой дуги, соединяющей узлы (i, v) и (i + 1, vM), следует определить ве­личины p(q) — необходимость в баллах (число вещей i). Решение: надо взять по одной вещи 1 и 2. Значение необходимости равно 80 баллов (рис. Г.10).

Рис. Г. 10

УПРАЖНЕНИЯ 6.3.2

1. с) 4-5-6-8 или 4-6-8, длина обоих маршрутов равна 8.

УПРАЖНЕНИЯ 6.3.3

1. а) 5-4-2-1, длина маршрута равна 12. 3. Связь между районами 1 и 2: маршрут 1

Связь между районами 1 и 4: маршрут 1

Связь между районами 1 и 5: маршрут 1

УПРАЖНЕНИЯ 6.3.4

1. а) Оптимальное решение: 1-3-4-5, длина маршрута равна 90.

УПРАЖНЕНИЯ 6.4.1

1. Разрез 1: (1, 2), (1, 4), (3, 4), (3, 5), пропускная способность разреза равна 60. УПРАЖНЕНИЯ 6.4.2

1. а) Величина неиспользованных пропускных способностей через дугу (2, 3) равна 40, через дугу (2, 5) — 10, через дугу (4, 3) — 5, через остальные дуги равна нулю.

b) Величины потоков, проходящих через узлы 2, 3 и 4, равны соответствен­но 20, 30 и 20 единиц.

c) Нет, поскольку в этой сети "узким местом" являются дуги, исходящие из узла 1.

-3-2, длина маршрута = 500 миль. -3-2-4, длина маршрута = 700 миль. -3-5, длина маршрута = 800 миль.

Приложение Г. Частичные ответы к некоторым упражнениям

7. Максимальное количество таких распределений работ равно 4. Одно из рас­пределений работ: Ральф — работа 3, Мэй — работа 1, Бен — работа 2, Ким — работа 5, Кен остается без работы.

УПРАЖНЕНИЯ 6.5.1

1. См. рис. Г.11.

[430] [-100] [-110] [-95] [-125] Рис. Г.11

УПРАЖНЕНИЯ 6.5.2

1. Задача ЛП до исключения нижних границ пропускных способностей дуг: минимизировать г = х12 + 5х13 + Зх24 + 4х32 + 6xSi при ограничениях

*,2+*13=5°. ~Х2 X2i ~ Х32 * 40, -*18 + ХЪ2 + *34 = 20, ~Х21 ~ ХМ ~ "SO,

30 < х13 < 40, х24 > 10, х32 > 10. Задача ЛП после исключения нижних границ пропускных способностей дуг: Минимизировать г = х12 + 5х13 + Зх24 + 4х32 + 6х34 при ограничениях

х12 + х13 = 20,

—x -4- x — x = —40

12 24 32 ^ '

~хп + хш + х-м = 40'

24 - х34 = —20, x„<10.

УПРАЖНЕНИЯ 6.5.3

1. Следует произвести 210 единиц продукции на первом этапе и 220 единиц — на третьем. Общая стоимость производства составит 9 895 долл.

5. Школа 1 принимает 450 учащихся из второй общины национальных мень­шинств и 1000 из первой "обычной" общины. Школа 2 принимает 500 уча­щихся из первой общины национальных меньшинств, 300 человек из треть­ей общины национальных меньшинств и 1000 из второй "обычной" общины. Значение целевой функции, определяемой как произведение количества учащихся на расстояние от их местожительства до школы, равно 24 300. За­дача имеет альтернативное решение.

Глава 7 873

УПРАЖНЕНИЯ 6.6.1

1. См. рис. Г.12.

Рис. Г .12

УПРАЖНЕНИЯ 6.6.2

1. Критический путь: 1-3-4-5-6-7, длительность проекта равна 19. 3. Длительность проекта — 38 дней.

УПРАЖНЕНИЯ 6.6.3

3. а) Максимальный сдвиг равен 10.

5. а) Критический путь 1-3-6, длительность проекта — 45 дней.

b) Необходимо пометить "красными флажками" процессы A, D и Е.

c) Начала процессов С, D, G и Н задерживаются на 5 дней. На процесс Е на­чало процесса А не влияет.

d) Минимально необходимо две единицы этого оборудования.

ГЛАВА 7

УПРАЖНЕНИЯ 7.1.1

2. Точки (1, 0) и (0, 2) принадлежат множеству Q, но точки прямой

Ml, 0) + (1 - к)(0, 2) = (Х,2- 2) не принадлежат множеству Q при 0 < X < 1.

УПРАЖНЕНИЯ 7.1.2

2. Ь) Решение единственно (рис. Г. 13). d) Бесконечное множество решений, f)

Решения не существует.

3. а) Этот набор векторов образует базис, поскольку detB = -4.

d) Этот набор векторов не образует базис, поскольку в данном случае в базисе должно быть ровно три независимых вектора.

Приложение Г. Частичные ответы к некоторым упражнениям

. х, > 1,0 < х, < 1

УПРАЖНЕНИЯ 7.1.3

1. Базисное решение Хв = (х3, х4)т = (2, 1,5)т допустимо. 4. Оптимальное значение целевой функции равно 34. Исходная задача ЛП: максимизировать z = 2х, + 5х2 при ограничениях х, < 4, х2 < 6, х, + х2 < 8, х,, х2 > 0.

УПРАЖНЕНИЯ 7.2.1

1. а) Необходимо исключить из базиса вектор Р,. Ь) Вектор Р4 может быть частью

допустимого базиса В = (Р2> Р4).

2. Для базисного вектора Хв имеем

{г, - с} = СВВ]В - Ся - Св1 - Св = Св - Св = 0.

7. Из условия невырожденности следует, что количество смежных крайних то­чек должно быть п-т.

10. В случае вырожденности число крайних точек меньше числа базисных решений.

11. а) Новое х, = (Старое х.)/а. Ь) Новое х = (5(Старое х.)/а.

УПРАЖНЕНИЯ 7.2.2

2. Ь) (х123) = (1,5, 2, 0),г = 5.

УПРАЖНЕНИЯ 7.3

2. (х„ х2, х3, х4, х5, х6) = (0, 1, 0,75, 1, 0, 1), г = 22.

УПРАЖНЕНИЯ 7.4

1. с) Добавляется искусственное ограничение х2 < М. Тогда

р х2) = аДО, 0) + а2(10, 0) + а3(20, 10) + а4(20, М) + а5(0, М), а, + а2 + а3 + а4 + а5 = 1, а > 0, i = 1, 2, 5.

2. Подзадача 1: (х„ х2) = аДО, 0) + а2(12/5, 0) + а3(0, 12). Подзадача 2: (х3, х4) = (5,(5, 0) + р2(50, 0) + р3(0, 10) + р4(0, 5). Оптимальное решение: а, = а2 = 0, а3 = 1 => х, = 0, х2 = 12,

р, = 0,4889, Р2 = 0,5111, рз = Р4 = 0 х3 = 28, х4 = 0.

Глава 8

6. Поскольку исходная задача является задачей минимизации, каждая подза­дача должна быть задачей максимизации. Оптимальное решение: (ас,, х2, х3, х4) = (5/3, 10/3, 0, 20), z = -245/3.

УПРАЖНЕНИЯ 7.5.1

2. Максимизировать w = Yb при ограничениях YA < С, Y > 0.

УПРАЖНЕНИЯ 7.5.2

5. Первый способ: если Хв = (2, 6, 2)т, тогда (6Р Ь2, Ьг) = (4, 6, 8) => оптимальное значение целевой функции двойственной задачи = 34.

Второй способ: если Y ^ (0, 3, 2), тогда (с,, с2) = (2, 5) => оптимальное значе­ние целевой функции прямой задачи = 34.

7. Минимизировать w = Yb при ограничениях YA = С, переменные Y произ­вольного знака.

УПРАЖНЕНИЯ 7.6.1

1. -2/7<<<1.

2. а)

Базисное решение Интервал применимости
(хз. хз, хв) = (5, 30,10) 0</< 1/3
2, Хз, х,) = (25/4, 90/4, 5) 1/3 < 1< 5/12
2, Xi, Xi) = (5/2, 15, 20) 5/12<<<°°

5. {г. - С;}у.145 = (4 - St/2 - 3t2/2, 1 - t2, 2 - t/2 + t"/2). Базис остается оптималь­ным при 0 < t < 1.

УПРАЖНЕНИЯ 7.6.2

1. a) tL = 10, В, = (Р2, Р3, Р4).

2. Для ( = 0 имеем (xv х2, х6) =(0,4,1,8,1). Этот базис сохраняется при 0 < (< 1,5. При t > 1,5 это решение становится недопустимым.

ГЛАВА8

УПРАЖНЕНИЯ 8.1

1. Вводится еще одна целевая функция: минимизировать G5 = sl при дополни­тельном ограничении 55л; „ + 3,5хр + 5,ох0 - 0,0675х5 + - s< = 0.

3. Обозначим через ас, количество первокурсников — жителей данного штата, через х2 — число первокурсников — жителей других штатов, через ха — ко­личество первокурсников-неамериканцев. Частные целевые функции:

минимизировать G, = .v,+, i = 1, 2, 5, при ограничениях

х, + х2 + х3 + s; - s; = 1200,

Приложение Г. Частичные ответы к некоторым упражнениям

2х, + х2 - 2х3 + s2 - s2 = О, -ОЛх^-0,lx2 + 0,9x3+ s*} - s; = 0,

одгб^-о.обх;,- 0,556*3+ s; - st =о,

-0.2х1+0,8х2-0,2х3-г- s; - s~5 =0, все переменные неотрицательны.

5. Обозначим через х. количество партий изделий, изготовленных в у-ю смену, j = 1, 2, 3. Получаем задачу:

минимизировать s* + s~ при ограничениях -100х1 + 40х2 - 80л:3 + s; - s; = О, 4 < х, < 5, 10 < х2 < 20, 3 < х3 < 5.

УПРАЖНЕНИЯ 8.2.1

1. Целевая функция: минимизировать z = sf + s2 + + s~ + .

Решение: хн = 0,0201, xp = 0,0457, xo = 0,0582, хв = 2 цента, s~5 = 1,45, все ос­тальные s, равны нулю. Сумма налога на бензин составляет 1,45 млн. долл. вместо желаемых 1,6 млн.

4. Пусть х, — количество известняка (фунты), потребляемого в день для приго­товления кормовой смеси, х2 — количество зерна (фунты), потребляемого в день, х3 — количество соевой муки (фунты), потребляемого в день.

Целевая функция: минимизировать z = sf +s2 +s3+ +sl .

Решение: x, = 166,08, x2 = 2778,56, x3 = 3055,36, 2 = 0. Все цели удовлетво­ряются.

7. Для производства 80 единиц первого изделия и 60 единиц второго необходи­мо использование сверхурочных работ: 100 минут для первой операции и 120 минут — для второй.

УПРАЖНЕНИЯ 8.2.2

2. Оптимизация целевой функции G, дает хя = 0,0204, х = 0,0457, хо = 0,0582, х„ = 2, другие переменные равны 0. Цели Gv G2, G3 и G4 удовлетворяются, цель Gs — нет. Оптимизация целевой функции Gb дает такое же решение, что и оптимизация целевой функции Gv плюс =1,45 . Это указывает на то, что цель Gs удовлетворить невозможно.

ГЛАВА 9

УПРАЖНЕНИЯ 9.1.1

3. Обозначим через х,у количество бутылок типа i, полученных индивидуумом j, при этом i = 1 (полная бутылка), 2 (заполненная наполовину), 3 (пустая), ; = 1, 2,3. Возможное решение: хп = 3, х21 = 1, х31 = 3, х12 = 3, х22=1, х32 = 3, х13 = 1, х23 = 5, х33 = 1. Задача имеет и другие решения.

Глава 9

6. Пусть у — исходная сумма денег, ху — сумма, взятая в ночь j, j = 1, 2, 3, х4 — конечная сумма, полученная каждым моряком. Задача ЦЛП:

минимизировать г — у при ограничениях

Зх, -y = 2,xt + Зх2 - у = 2, х, + х2 + Зх3 - у = 2, у - х, - х2 - х3 - Зх4 = 1.

Все переменные неотрицательные целые.

Решение: у = 79 + 81п, п = 0, 1, 2.....

8. На первой стороне кассеты записываются песни 5, 6 и 8, на второй — 1, 2, 3, 4 и 7. Емкость кассеты должна быть не менее 28 минут на каждой стороне. Задача имеет и другие решения.

УПРАЖНЕНИЯ 9.1.2

1. Пусть х — количество продукции, произведенной на станке j = 1, 2, 3; yt = 1, если станок j используется, и yi = 0 в противном случае. Задача ЦЛП:

минимизировать z = 2х, + 10х2 + 5х3 + ЗООу, + 100j/2 + 200i/3

при ограничениях

х, + х2 + х3 > 2000, х, - 6001/, < 0, х2 - 800у2 < 0, х3 - 1200i/3 < 0,

х,, х2, х3 > 500 и целые, </,, у2, у3 = 0 или 1.

Решение: х, = 600, х2 = 500, х3 = 900, z = 11 300 долл.

2. Решение: на участке 1 следует бурить скважины 1 и 2, на участке 2 — сква­жины 3 и 4, z = 18.

УПРАЖНЕНИЯ 9.1.3

1. Пусть переменные х^ равны 1, если выбран маршрут у, и равны 0 в противном случае. Задача ЦЛП:

минимизировать z = 80х, + 50х2 + 70х3 + 52х4 + 60х5 + 44х6

при ограничениях

х, + х3 + х5 + х6 > 1, х, + х3 + х4 + х5 > 1, х, + х2 + х4 + х6 > 1,

х, + х2 + х5 > 1, х2 + х3 + х4 + х6 > 1, xt = 0 или 1 для всех у.

Решение: х5 = х6 = 1. Следует выбрать маршруты (1, 4, 2) и (1, 3, 5), z = 104.

2. Решение: в комитет должны войти кандидатуры a, d, f. Задача имеет и дру­гие решения.

УПРАЖНЕНИЯ 9.1.4

1. а) Задача имеет несколько решений, среди которых следующие.

6 4 5

4 5 6

5 6 4

3. Производство следует организовать во втором цехе, при этом продукции 1 следует производить 26 единиц, продукции 2 — 3 единицы, продукции 3 — 0.

Приложение Г. Частичные ответы к некоторым упражнениям

УПРАЖНЕНИЯ 9.2.1

1. а) г = 23, дс, = 3, х2 = 2.

е) г = 37, х, = 6, х2 = 1. 1. a) z = 7,25, = 1,75, х2= 1.

е) г = 37, (х, = 4,6, х2 = 2) или (х, = 6, х2 = 1).

УПРАЖНЕНИЯ 9.2.2

1. а) 9 подзадач.

Ь) 25,739 подзадач.

3. Задача ЦЛП с двоичными переменными:

максимизировать z = 18</n + 36</12 + 14t/2] + 28y22 + 8y31 + 16i/32 + 32t/33 при ограничении 15yn + S0y12 + 12y21 + 24y22 + 7y3l + Uy32 + 28y33 < 43.

Все переменные двоичные. Решение: z = 50, yi2 = 1, j/2] = 1, остальные переменные равны 0.

УПРАЖНЕНИЯ 9.2.3

1. а) Да, поскольку это отсечение проходит через целочисленные точки (допустимые и недопустимые) и при этом не исключает ни одной допус­тимой целочисленной точки.

6. Ь) Оптимальное целочисленное решение: (х,, х2, х3) = (5, 2, 3), 2 = 23.

Решение, полученное путем округления соответствующего оптимального непрерывного решения: (л:,, х2, х3) = (5, 3, 3). Это решение недопустимо.

УПРАЖНЕНИЯ 9.3.1

1. Количество сотрудников, входящих в комнату для совещаний и выходящих из нее, а также работающих над соответствующими проектами, показано в следующей таблице.

Проект

  Проект 4

ГЛАВА 10

УПРАЖНЕНИЯ 10.1

1. Маршрут 1-3-5-7, длина маршрута 21 миля.

Глава 10

УПРАЖНЕНИЯ 10.2

3. Маршрут 1-2-3-5-7, длина маршрута 17 миль.

УПРАЖНЕНИЯ 10.3.1

2. а) Решение: прибыль равна 120, (иг,, т2, тъ) = (0, 0, 3) или (0, 2, 2) или

(0, 4, 1)или(0, 6, 0).

4. Решение: общая сумма баллов 250. Выбор курсов: на факультете I курс 2, на факультете II курс 3, на факультете III курс 4, на факультете IV курс 1.

6. Пусть х. = 1, если принимается заявка j, и xi = 0 в противном случае. Задача о загрузке:

максимизировать г = 78х, + 64х2 + 68х3 + 62х4 + 85х5 при ограничении

7х, + 4х2 + 6лг3 + ох4 + 8х5 < 23, xt = 0 или 1 для всех j. Решение: принять все заявки, кроме первой. Общая оценка = 279.

УПРАЖНЕНИЯ 10.3.2

1. а) Решение: на 1-й неделе принять 6 человек, на 2-й неделе уволить 1 чело-

века, на 3-й неделе уволить 2 человека, на 4-й неделе принять 3 человека, на 5-й неделе принять 2 человека.

3. На каждую из четырех недель следует арендовать 7, 4, 8 и 8 автомобилей со­ответственно.

УПРАЖНЕНИЯ 10.3.3

2. а) С—> С—>3—> С, затраты = 458 долл.

УПРАЖНЕНИЯ 10.3.4

1. Первый год: инвестировать 5000 долл. в первый банк. Второй год: инвести­ровать 4090 долл. во второй банк. Третий год: 3090 долл. в первый банк. Четвертый год: инвестировать 2065 долл. в любой банк.

ГЛАВА 11

УПРАЖНЕНИЯ 11.2.1

2. а) Суммарные затраты в неделю составляют 51,50 долл.

Ь) Оптимальная стратегия: заказывать 239,05 фунта фарша, как только его запас опустится до нулевого уровня. Суммарные затраты в неделю соста­вят 50,20 долл.

1. а) Необходимо сделать заказ на 200 единиц продукции в том случае, когда уровень запаса опустится до 150 единиц.

Ь) Приблизительно 91 заказов.

Приложение Г. Частичные ответы к некоторым упражнениям

УПРАЖНЕНИЯ 11.2.2

1. Отелю следует воспользоваться скидкой, поскольку стоимость стирки пар­тии из 1800 полотенец составит 414 долл., а партии из 2500 — 356,94 долл.

3. Да, для заказа партии в 150 единиц при нулевом уровне запаса. Затраты в день составят 479,17 долл.

УПРАЖНЕНИЯ 11.2.3

1. Оптимальное решение, найденное с помощью Excel: ух = 4,41, j/2=6,87, у3 = 4,12, у4 = 7,2, уъ = 5,8.

( K,D, А И ( -к
  {у, 2 J v

Y^i-150

4г у, )

ft.

Решение, найденное с помощью Excel: i/, = 155,3, уг= 118,82, у3 = 74,36, у, = 90,10, X = -0,0564.

УПРАЖНЕНИЯ 11.3.1

1. а) 500 единиц комплектующих в кварталы 1,4, 7 и 10.

УПРАЖНЕНИЯ 11.3.2

3. Первый этап: 100 единиц продукции произведено в обычном режиме, 50 — за счет сверхурочных работ и 23 единицы — на условиях субподряда. Второй этап: 40 единиц продукции произведено в обычном режиме, 60 единиц — за счет сверхурочных работ и 80 — на условиях субподряда. Третий этап: 90 единиц продукции в обычном режиме, 80 единиц — за счет сверхурочных работ и 70 — на условиях субподряда. Четвертый этап: 60 единиц продукции в обычном режиме и 50 единиц — за счет сверхурочных работ. Пятый этап: 60 единиц продукции в обычном режиме, 50 — за счет сверхурочных работ и 83 — на условиях субподряда.

УПРАЖНЕНИЯ 11.3.3

1. а) Нет, поскольку нет необходимости в запасах после окончания периодов планирования.

b) i) 0 < z, < 5, 1 < г2 < 5, 0 < г3 < 4, х, = 4, 1 < х2 < 6, 0 < х3 < 4.

1. а) г, = 7, г2 = 0, г3 = 6, г4 = 0. Общие затраты составляют 33 долл.

УПРАЖНЕНИЯ 11.3.4

1. В первый период нет заказа, во второй — заказ на 112 единиц, в третий нет заказа, в четвертый период заказ на 67 единиц; стоимость = 632 долл.

УПРАЖНЕНИЯ 11.3.5

1. В январе необходимо произвести 210 единиц изделия, 255 единиц изделия в апреле, 210 — в июле и 165 — в октябре. Общая стоимость = 1930 долл.

Глава 12

ГЛАВА 12

УПРАЖНЕНИЯ 12.1.1

1. а) 0,15, 0,25. Ь)0,571. с)0,821.

2. п>23.

3. /г>253.

УПРАЖНЕНИЯ 12.1.2

4. Обозначим через р вероятность победы Лизы. Тогда вероятность победы Джона равна Зр, что совпадает с вероятностью победы Джима. Вероятность победы Анны равна 6р. Вероятностьр находится из равенства р + Зр + Зр + 6р = 1.

УПРАЖНЕНИЯ 12.1.3

1. а) 0,4.

5. 0,9545.

УПРАЖНЕНИЯ 12.2.1

2. К = 20.

3. Р{потребность> 1100} = 0,3.

УПРАЖНЕНИЯ 12.3.1

3. а) Р{х>50} = 2/3.

Ь) Ожидаемое число непроданных газет — 2,67.

УПРАЖНЕНИЯ 12.3.2

1. Математическое ожидание — 3,667, дисперсия— 1,556.

УПРАЖНЕНИЯ 12.3.3

1. a) P{xl = l,2, 3}=Р{х2= 1, 2, 3} = (0,4, 0,2, 0,4). b) Нет.

УПРАЖНЕНИЯ 12.4.1

1. (0,5)10.

3. Вероятность этого события равна 0,0547 при условии, что все предсказания будут случайными (т.е. все исходы будут равновероятными).

УПРАЖНЕНИЯ 12.4.2

1. 0,8646.

3. а) Р0»0.Ь)Р„г,=.1.

Приложение Г. Частичные ответы к некоторым упражнениям

УПРАЖНЕНИЯ 12.4.3

1. X = 12 посетителей в минуту. P{t < 5 сек.} = 0,63.

УПРАЖНЕНИЯ 12.4.4

2. 0,0014.

ГЛАВА 14

УПРАЖНЕНИЯ 14.1.1

1. wA = 0,44214, wB = 0,25184, wc = 0,30602.

УПРАЖНЕНИЯ 14.1.2

1. ws = 0,331, Wj = 0,292, wM = 0,377. На работу следует принять Маиса. 3. wp = 0,502, wH = 0,498, CRA = 0,0072 < 0,1.

УПРАЖНЕНИЯ 14.2.1

2. а) См. рис. Г.14.

b) МУ(Кукуруза) = -8250 долл., МУ(Бобы) = 250 долл. Следует выбрать со­евые бобы.

6. а) См. рис. Г.15.

Ь) МУ(Игра) = -0,025 долл. В эту игру не следует играть.

0,125 (ГГТ)

Кукуруза

Соевые бобы

U 0,25

0,30

D 0,45 U 0,25

0,30

D 0,45

30 000

-35 ООО

10 000

-5 000

Играть

3,5

0,125 (ГГР)

0,125 (ГРГ)

1,1

0,9

0,125 (ГРР)

О о,

125 (PIT)

1,1

0,125 (РГР)

0,125 (РРГ)

0,125 (РРР)

Не играть

Рис. Г.14

Рис. Г.15

Глава 14

УПРАЖНЕНИЯ 14.2.2

2. Пусть 2 обозначает событие, что в партии из 5-ти деталей обнаружена одна дефектная. Тогда Р{Аг) = 0,6097, Р{Вг) = 0,3903.

4. а) Если публиковать самостоятельно, то ожидаемый доход составит 196 тыс. долл. Если роман отдать издателю, то ожидаемый доход составит 163 тыс. долл.

Ь) Если исследование предсказывает успех романа, то его следует публико­вать самостоятельно, иначе его надо отдать издателю.

7. Ь) Если в результате проверки оба изделия являются качественными, то пар­тия изделий отправляется потребителю А.

УПРАЖНЕНИЯ 14.2.3

1. а) Нет смысла, так как МУ(возврат) = 5 долл.

b) Для 0 < х < 10 Щх) = 0, U(x) = 100 при х = 10.

c) Да, надо играть.

2. Лотерея: Щх) = 100 - 100р.

УПРАЖНЕНИЯ 14.3

1. а) По всем критериям следует выбрать альтернативу а3. Ь) Все критерии указывают или на альтернативу а2 или а3.

УПРАЖНЕНИЯ 14.4.1

1. а) Седловая точка (2, 3). Цена игры равна 4.

3. а) Обозначим через v цену игры. Тогда 2 < v < 4.

УПРАЖНЕНИЯ 14.4.2

1. Каждый игрок должен использовать смешанные стратегии 50-50. Цена игры равна 0.

3. а) (^,^ = (0,5,0,5), (yvy2,y3) = (0,0,65, 0,35), и = 0,5.

b) (xv х2, х3) = (0,25, 0,75, 0), (г/„ у2) = (0,75, 0,25), v = 5,75.

УПРАЖНЕНИЯ 14.4.3

2. a) UA: (*„ х2, х3, х4) = (0, 0,5, 0, 0,5), DU: (г/„ у2, у3, yt) = (0,14, 0,34, 0,27,

0,25), и = 0,5.

4. Оба игрока применяют стратегии (1, 2) и (2, 1) с вероятностями 0,571 и 0,429 соответственно.

ГЛАВА 15

УПРАЖНЕНИЯ 15.1

2. 1-й день: продавать, если предлагают высокую цену. 2-й день: продавать, если предлагают высокую или среднюю цены. 3-й день: продавать за любую цену.

Приложение Г. Частичные ответы к некоторым упражнениям

УПРАЖНЕНИЯ 15.2

1. Первый год: инвестировать все 10 ООО долл. Второй год: инвестировать все накопленные деньги. Третий год: воздержаться от инвестиций. Четвертый год: инвестировать все накопленные деньги.

4. Центр 1 — 2 велосипеда, центры 2 и 3 — по 3 велосипеда. УПРАЖНЕНИЯ 15.3

3. Игра 1: ставка — 1 долл. Игра 2: ставка — 1 долл. Игра 3: ставка — 1 долл., если был выигрыш в предыдущей игре, иначе третью игру пропустить.

ГЛАВА 16

УПРАЖНЕНИЯ 16.1.1

1. а) Заказ в 1000 единиц следует делать тогда, когда уровень запаса опустится до 537 единиц.

УПРАЖНЕНИЯ 16.1.2

1. а) 3,125 заказов. Ь) 312,50 долл. в месяц, с) 408 долл. d) 2,0397 долл. е) 0,06. 3. у = 316,85 галлонов, R" = 58,73 галлонов.

УПРАЖНЕНИЯ 16.2.1

3. 19<р<35,7.

6. Приблизительно 39 пальто.

УПРАЖНЕНИЯ 16.2.2

1. Если х < 3,528, то заказ = 8 - х, иначе заказ не делать.

УПРАЖНЕНИЯ 16.3,А

2. Если х < 4,61, то заказ = 4,61 - х, иначе заказ не делать.

ГЛАВА 17

УПРАЖНЕНИЯ 17.1

1. а) Эффективность обслуживания—71%.

Ь) Оба требования нельзя удовлетворить одновременно.

УПРАЖНЕНИЯ 17.2 1.

Ситуация Клиент Сервис
а Самолет Взлетно-посадочная полоса
b Пассажир Такси

Глава 17

УПРАЖНЕНИЯ 17.3

2. b) Л = 6 заявок в час, средний интервал времени между поступлениями зая­вок = 1/6 часа.

с) р. = 5 обслуживании в час, среднее время обслуживания = 0,2 часа.

5. a) f(t) = 20exp(-20<), t > 0. b) P{t > 15/60} = 0,00674.

9. Официант 02 получает 2 цента с вероятностью P{t < 1} = 0,4866 и платит 2 цента с вероятностью P{t > 1} = 0,5134. Средний выигрыш официанта О, за восьми­часовой период составляет 17,15 центов.

12. a) P{t< 4 минуты} = 0,4866.

b) Среднее время ожидания = 6,208.

УПРАЖНЕНИЯ 17.4.1

1. Р„>5(1 час) = 0,5595.

4. a) P2(t = 7) = 0,24167.

6. а) Вычисляем К =1/10 + 1/7. P2(t = 5) = 0,219.

УПРАЖНЕНИЯ 17.4.2

2. a) [xt =9, p0(t = 3) = 0,00532.

c) = 3, р„<17(* = 1) = 0,9502.

5. it =4, р0(4) = 0,37116.

8. а) Средний недельный объем заказа = 25 - 7,11 = 17,89. b) иг = 12, p0(t = 4) = 0,00069.

УПРАЖНЕНИЯ 17.5

3. а) р„>3 = 0,4445. b) Ь)р„<2 = 0,5555.

6. а) ру = 0,2,у = 0, 1,2, 3,4.

b) Ожидаемое число клиентов в парикмахерской — 2.

c) р4 = 0,2.

УПРАЖНЕНИЯ 17.6.1

1. a) Lq = 1р6 + 2р1 + Зр8 = 0,1917 автомобиля.

c) 0,1263 автомобиля в час.

d) Среднее количество свободных мест на стоянке = с - (Ls - L?) =

8 8

= с-£нр„+ £ (п-с)р„ .

Приложение Г. Частичные ответы к некоторым упражнениям

УПРАЖНЕНИЯ 17.6.2

2. а) р0 = 0,2.

b) Среднемесячный заработок = 50 х pt = 375 долл.

c) Средняя плата = 40 xL?= 128 долл.

5. а) р0 = 0,4. Ь) L, = 0,9.

d) р„г, = 0,0036.

6. Не менее 13 мест.

УПРАЖНЕНИЯ 17.6.3

1. Р{т> 1} = 0,659.

5. 37,95 долл. за 12-часовый рабочий день.

УПРАЖНЕНИЯ 17.6.4

1. а) р0 = 0,3654.

b) Wq = 0,207 часа.

c) Количество свободных мест = 4 - Lq = 3,212.

e) р. = 10 уменьшит Wq примерно до 9,6 минуты.

4. а) р8 = 0,6.

с) Вероятность появления свободного места на конвейере не превышает 0,4 при любой производительности конвейера. Поэтому загрузка сборочного цеха не может превысить 60%.

7. а) 1-р5 = 0,962.

b) А. я = А.р5 = 0,19 клиентов в час.

УПРАЖНЕНИЯ 17.6.5

1. а) 0,711. Ь) 0,596.

c) 0,4 автомобиля для с = 2 и 0,8 — для с = 4.

d) Пять и более автомобилей.

5. Не менее 10 мест. 7. а) р„г4 = 0,65772.

Ь) Ь) 0,667 ЭВМ.

УПРАЖНЕНИЯ 17.6.6

2. с) 81,8%.

a) d)p2+p3+pt = 0,545. 4. а) р40 = 0,00014.

b) Рзо+Рз1 + -+Рз9 = 0,02453.

Глава 17

d) Среднее количество занятых мест = Lt - Lq = 20.

f) Вероятность того, что стоянка будет полностью заполнена, равна 1 -р„<29 = = 0,02467. Число студентов, которые не смогут припарковаться на про­тяжении восьмичасового периода, примерно равно 4.

УПРАЖНЕНИЯ 17.6.7

2. а) Примерно 7 мест. Ь) р„>8 = 0,2911.

УПРАЖНЕНИЯ 17.6.8

1. Ь) Среднее число свободных механиков = 4 - (L, - Lq) = 2,01 механиков, d) Р{2 или 3 механика свободны} = р0 + р, = 0,34492.

4. a) Lt = 1,25 станка.

b) р0 = 0,33341.

c) W, = 0,25 часа.

6. X = 2 крика на одного ребенка в час, и, = 0,5 ребенка в час, R = 5, К = 5.

a) Среднее число бодрствующих малышей = 5 - Ls = 1.

b) Р5 = 0,32768.

c) p„S2 = 0,05782.

УПРАЖНЕНИЯ 17.7

2. a) M{i) = 14 мин.т, D{r} = 12 мин.[8], L, = 7,867 автомобиля.

4. X = 0,0625 заказа в минуту, M{t) = 15 мин., D{t) = 9,33 мин.[9].

a) Р0 = 0,0625.

b) Lq = 7,3 заказа.

c) Wt = 132,17 мин.

УПРАЖНЕНИЯ 17.9.1

2. Примените модель (М/М/1): (GD/10/10). Один час работы первого механика стоит 431,50 долл., второго — 386,50 долл.

4. Ь) ,-Х + ^.

с) Оптимальное значение производительности станка составляет 2725 изде­лий в час.

УПРАЖНЕНИЯ 17.9.2

2. а) Работа двух механиков стоит 86,4 долл. в час, трех механиков — 94,8 долл. в час.

Ь) Потери при работе двух механиков составят 30 xW, = 121,11 долл., при работе трех механиков — 94,65 долл.

Приложение Г. Частичные ответы к некоторым упражнениям

3. а) Выиграет 5 920 долл. в месяц.

Ь) Дополнительный выигрыш в 2 880 долл.

УПРАЖНЕНИЯ 17.9.3

1. а) 5 механиков. Ь) 4 механика.

ГЛАВА 18

УПРАЖНЕНИЯ 18.1

4. а) Р{Т} = Р{Р} = 0,5. Если 0 < R < 0,5, то игрок А получает 10 долл., если же

0,5 < R < 1, то игрок Б получает 10 долл.

УПРАЖНЕНИЯ 18.2

1. а) Дискретный тип.

УПРАЖНЕНИЯ 18.3.1

4. См. рис. Г.16.

Л2 -^4 ^5

1 1 1 1 > ■
0 | 30 90 | 120  
               

£>i D2 £>3 D4 D5

Рис. Г. 16

УПРАЖНЕНИЯ 18.3.2

1. t = -ln(l - R)/X, X = 4 клиента в час.

Клиент R t Время прибытия

1 — — 0

2 0,0589 0,015 0,015

3 0,6733 0,280 0,295

4 0,4799 0,163 0,458

Глава 19

УПРАЖНЕНИЯ 18.3.3

1. у = -(1/5) х 1п(0,0589 х 0,6733 х 0,4799 х 0,9486) = 0,803 часа. 6. t = jc, + х2 + х3 + xv где я, = 10 + R:, I = 1, 2, 3, 4.

УПРАЖНЕНИЯ 18.5.1

1. а) Зависит от количества событий. Ь) Зависит от времени.

УПРАЖНЕНИЯ 18.6

2. Доверительный интервал 15,07 < ц < 23,27.

ГЛАВА 19

УПРАЖНЕНИЯ 19.1

2. Стационарные стратегии: не удобрять, удобрять при состоянии 1, удобрять при состоянии 2, удобрять при состоянии 3, удобрять при состоянии 1 или 2, удобрять при состоянии 1 или 3, удобрять при состоянии 2 илиЗ, удобрять при любом состоянии.

УПРАЖНЕНИЯ 19.2

1. Первый и второй годы: рекламную кампанию следует проводить только при снижении доходов. Третий год: рекламная кампания не проводится.

3. Заказать 2 холодильника при полном отсутствии их в магазине, в противном случае заказ не делать.

УПРАЖНЕНИЯ 19.3.1

1. Рекламная кампания проводится всегда при состоянии 1.

ГЛАВА 20

УПРАЖНЕНИЯ 20.1.1

1. а) Нет экстремальных точек.

b) Минимум в точке х = 0.

c) Точка перегиба при х = 0, минимум при х = 0,63 и максимум при х = -0,63.

4. (^.jg-t-l, 1) или (2, 4).

УПРАЖНЕНИЯ 20.2.1

1. Ь) дх1 = 2,83дх2,дх3 = -2,5дх2.

Приложение Г. Частичные ответы к некоторым упражнениям

УПРАЖНЕНИЯ 20.2.2

3. Система уравнений: 2 ...,n.df=2dC(2-")/".

х~ х- —­= 0,1=1,2, п-1. Решение: х- = '4с , i = 1, 2,

6. b) Решение: г = 375/74, (*„ хг, х3, х4) = (-5/74, -10/74, 155/74, 60/74) — точка минимума.

УПРАЖНЕНИЯ 20.2.3

1. Точки минимума: (х,, х2, х3, Л,, Л2) = (-14,4, 4,56, -1,44, 38,5, -67,3) и (4,4, 0,44, 0,44, 10,2, -1,4).

ГЛАВА 21

УПРАЖНЕНИЯ 21.1.1

2. с) л: = 2,5. е) х = 2.

3. Максимальное число итераций ~ 1,44 1п[(6 - а)/(Д - 1)].

УПРАЖНЕНИЯ 21.1.2

1. На основании формулы Тейлора имеем V/(X) = V/(X°) + Н(Х- Х°). Матрица Гессе Н не зависит от X, поскольку функция /(X) квадратичная. По этой же причине последнее равенство выполняется точно, так как все производные выше второй степени равны нулю. Из уравнения V/(X) = 0 находим

X = Х° + H"'V/(X°). Это значение X удовлетворяет уравнению V/(X) = 0, следо­вательно, оно является оптимумом независимо от начального значения Х°.

УПРАЖНЕНИЯ 21.2.1

2. Оптимальное решение: jc, = 0, х2 = 3, г = 16.

4. Пусть wj = х} + 1, j = 1, 2, 3, vx = wxw2, v2 = 10,103. Аппроксимирующая задача ЛП:

максимизировать г = и, + v2 - 2wt - w2 + 1 при ограничениях и, + v2 - 2ш, - w2 < 9, lnu, - lnw, - lnw2 = 0, lnu2 - lnw, - lnw3 = 0, все переменные неотрицательные.

УПРАЖНЕНИЯ 21.2.2

1. Решение: jc, = 1, х2 = 0, г = 4.

2. Решение: хг = 0, jc2 = 4, 2 = 0,7.

Глава 21

УПРАЖНЕНИЯ 21.2.3

2. Решение: (*„ х2) = (1,39, 1,13).

УПРАЖНЕНИЯ 21.2.4

2. Максимизировать г = х, + х/ + х3 при ограничениях

х,2 + Ъх + 2^X3" +1,28у < 10 , 16х22 + 25х3 - у все переменные неотрицательные.

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

А

AMPL, 58; 63

решение задач ЛП, 66 Arena, 734 AweSim, 734

С

СРМ, 298

Е

Excel, 217; 218

критерии принятия решений, 578

метод Сильвера-Мила, 503

методы принятия решений, 556

поиск

кратчайшего пути, 268 максимального потока, 281 потока наименьшей стоимости, 297

построение гистограмм, 529

решение задач

линейного программирования, 61 нелинейного программирования, 818 динамического программирования, 495 о загрузке, 450

управления запасом, 475; 499

F

FIFO,631 FORTRAN, 734

G

GAMS, 63 GPSS, 734 GPSS/H, 734

L

LIFO, 631

LINGO, 58; 63; 217; 222 решение задач ЛП, 64

м

MPL, 63

Р

PERT, 298; 315

s

SIMAN, 734 SIMSCRIPT, 734 SLAM, 734

T

TORA, 117; 217

выполнение симплекс-метода, 117

графическое решение, 44

метод

СРМ, 310

PERT, 317

ветвей и границ, 418 нахождение минимального остовного

дерева, 248 поиск максимального потока, 276 решение задач ЛП, 58

А

Алгебраическое дополнение, 841 Алгоритм

Дейкстры, 255

динамического программирования с постоянными предельными затратами, 497 с общей функцией стоимости, 493

Кармаркара, 368

нахождения

кратчайшего пути, 255 максимального потока, 271

обратной прогонки ДП, 444

последовательной безусловной максимизации, 832

построения минимального остовного дерева, 245

прямой прогонки ДП, 444

Предметный указатель

решения задач с ограниченными

переменными, 338 симплекс-метода, 104; 107 Флойда, 255; 259

Алгоритмы

нелинейного программирования, 797 решения задач без ограничений, 797 решения задач с ограничениями, 805 целевого программирования, 386

Анализ чувствительности, 29; 141 графический, 47

добавление новых ограничений, 181 изменение коэффициентов целевой

функции, 47; 183 оптимального решения, 171 параметрическое программирование, 360 с помощью метода Якоби, 779 стоимость ресурсов, 53 Апостериорные вероятности Байеса, 566

Б

Байеса теорема, 510 Бокса-Мюллера метод, 712

в

Ведущая строка, 110 Ведущий

столбец, 110

элемент, 110;126 Векторы

линейно независимые, 838

определение, 837 Венгерский метод, 227

как симплекс-метод, 232 Вероятностные модели управления

запасами, 607

без затрат на оформление заказа, 616 многоэтапные, 622 экономичного размера заказа, 607 одноэтапные, 615

при затратах на оформление заказа, 619

с непрерывным контролем уровня запаса, 607 Вероятность

переходная, 757

условная,510 Выборка, 527

Вырожденность в симплекс-методе, 128; 129

г

Генерирование выборочных значений, ме­тод, 706

Бокса-Мюллера, 712

обратных функций, 706

отбора, 713

сверток,709 Генерирование случайных чисел, 716

мультипликативный метод сравнений,716 Геометрическое программирование, 820 Гистограмма частот, 527 Гурвица критерий, 576

д

Двойственная задача, 141

ограничения, 161

построение, 142 Двойственные цены, 59; 159 Двойственный симплекс-метод, 164

с искусственными ограничениями, 168 Двухэтапный метод, 124 Дейкстры алгоритм, 255 Дерево, 244

остовное, 244

решений, 560 Диаграмма интенсивностей переходов, 645 Динамическое программирование, 441

алгоритм

обратной прогонки, 444 прямой прогонки, 444

вероятностное, 595

детерминированные модели, 441

принцип

декомпозиции, 441 оптимальности, 441; 444

проблема размерности, 465 Дискретная имитация, 718 Дискретное моделирование, 703

генерирование выборочных значений, 706

определение события, 704

элементы, 704 Достаточное правило

допустимости, 180

оптимальности, 188

з

Задача

замены оборудования, 458

Предметный указатель

инвестирования, 462; 598 коммивояжера, 428

нахождения кратчайшего пути, 237; 250

о загрузке, 447

о кратчайшем пути, 441

о максимальном потоке, 269

о назначениях, 226

о покрытии, 403

о рюкзаке, 255; 447

о снаряжении, 447

планирования рабочей силы, 455

распределения оборудования, 201

распределения ресурсов, 450

управления запасами, 201; 471; 742

Чебышева, 386

экономичного размера заказа, 472 Задача оптимизации без ограничений, 765 метод

множителей Лагранжа, 784

Ньютона-Рафсона, 770

приведенного градиента, 773

обобщенный множителей Лагранжа, 789 при наличии ограничений, 773 условия Куна-Таккера, 791 Задача принятия решений, 21; 738 с бесконечным числом этапов, 738 с конечным числом этапов, 738 Запас времени,308 общий, 308 свободный, 308

и

Имитационное моделирование, 24; 697

дискретные модели, 703

метод Монте-Карло, 698

методы сбора статистических данных, 727

непрерывные модели, 703

типы моделей, 703

элементы дискретного моделирования, 704

языки, 733 Интервал

неопределенности, 797

оптимальности, 47

предсказания, 545 Искусство моделирования, 25 Источник, 631

бесконечной мощности, 632

конечной мощности, 632

к

Кармаркара метод, 366 Квадратичная форма, 847

неопределенная, 848

отрицательно определенная, 847

отрицательно полуопределенная, 848

положительно определенная, 847

положительно полуопределенная, 847 Квадратичное программирование, 815 Кендалла обозначения, 651 Классическая теория оптимизации, 765 Колмогорова-Чепмена уравнение, 758 Контур кратчайший, 430 Коэффициент

согласованности, 555 стохастический, 555

корреляции, 545

чувствительности, 779 Критерий

Гурвица, 576

Лапласа, 575

максиминный, 576

ожидаемого значения, 560

предельного уровня, 566

согласия, 530

Сэвиджа, 576

хи-квадрат, 531 Куна-Таккера условия, 791

л

Линейное программирование, 33 анализ чувствительности, 171 двойственная задача, 141; 355

матричное представление, 355 допустимое решение, 35 изменение модели, 188 интервальное, 379 компьютерное решение, 58 метод

Кармаркара, 366

Якоби, 780 оптимальное допустимое решение, 35 параметрическое, 360 примеры моделей, 70 прямая задача, 141 сетевые модели, 243; 285 соотношения двойственности, 148 стандартная форма задачи, 95; 141 теория, 321

двойственности, 355

Предметный указатель

транспортные модели, 193 целевая функция, 36 целочисленное, 397 элементы задачи, 34 Литтла формула, 652

м

Марковская задача принятия решений,

как задача линейного программирования, 752 Марковские процессы принятия

решений, 737 Маршрут

кратчайший, 429 Матрица, 146

блочная, 840

Гессе, 767; 775 окаймленная, 785

дважды стохастическая, 763

доходов, 737

единичная,147; 838

квадратная,838

невырожденная, 324; 841

обратная, 148; 842 методы вычисления, 843 мультипликативное представление, 844

парных сравнений, 552

переходных вероятностей, 737; 757

присоединенная, 841

сравнений, 553

транспонированная, 838

управления,775

Якоби,775 Метод

PERT, 315

анализа иерархий, 549 блочных матриц, 846 Бокса-Мюллера, 712 венгерский, 227 весовых коэффициентов, 387 ветвей и границ, 411 Гаусса-Жордана, 110; 843 градиентный, 770; 801 декомпозиции, 346 дихотомического поиска, 797 золотого сечения, 797 исключения переменных, 110 итераций по стратегиям, 746

с дисконтированием, 750 Кармаркара, 366 критического пути, 298; 304

линейных комбинаций, 829 множителей Лагранжа, 784 Монте-Карло, 698 наименьшей стоимости, 209 наименьших квадратов, 544 наискорейшего подъема, 801 Ньютона-Рафсона, 770 обобщенный множителей Лагранжа, 789 обратных функций, 706 отбора, 713

отсекающих плоскостей, 422

повторения, 730

подынтервалов, 728

полного перебора стратегий, 743

последовательных исключений, 843

потенциалов, 212

как симплекс-метод, 225 приведенного градиента, 773 приоритетов, 390 присоединенной матрицы, 843 сверток, 709

северо-западного угла, 208 скользящего среднего, 537 Фогеля, 210 циклов, 730

экспоненциального сглаживания, 541

Якоби, 773 Методология исследования операций, 28 Методы

вычисления обратных матриц, 843 прогнозирования, 537 прямого поиска, 797 сетевого планирования, 298 Методы прогнозирования, 537 интервал предсказания, 545 метод

наименьших квадратов, 544 скользящего среднего, 537 экспоненциального сглаживания, 541 регрессионный анализ, 544 Методы сбора статистических данных, 727 повторения, 730 подынтервалов, 728 циклов, 730 Минор, 841 М-метод, 119

Многокритериальная оптимизация, 381 Множество

выпуклое, 321

крайние точки, 321 Множители Лагранжа, 483; 785 Модели

Предметный указатель

исследования операций, 21; 24 линейного программирования, 33 построение, 29 проверка адекватности, 29 решение, 29 рождения и гибели, 637 сетевые, 243 чистого рождения, 637 чистой гибели, 641 Модели управления запасами алгоритм динамического

программирования, 493; 497 детерминированные, 471 динамические задачи, 486 задача экономичного размера заказа с

разрывами цен, 478 классическая задача экономичного

размера заказа, 472 многопродуктовые статические, 482 отсутствие затрат на оформление

заказа, 487 планирование потребностей ресурсов, 486 с затратами на оформление заказа, 492 статические, 472 стратегии, 471

точка возобновления заказа, 472 эвристический подход Сильвера-

Мила, 500 экономичный размер заказа, 471 Модель динамического программирования с бесконечным числом этапов, 743 с конечным числом этапов, 739

н

Нелинейное программирование

алгоритм последовательной безусловной

максимизации, 832 метод

градиентный, 801

дихотомического поиска, 797

золотого сечения, 797

линейных комбинаций, 829

наискорейшего подъема, 801 методы

прямого поиска, 797

непрямые, 805

прямые, 805 условия Куна-Таккера, 791; 815 Ньютона-Рафсона метод, 770

о

Обозначения Кендалла, 651 Ограничения

вероятностные, 825

вторичные, 182

типа"или-или",406 Оператор треугольный, 259 Определитель матрицы, 840 Отсечение, 422

дробное, 423 Очередь, 631

принцип построения, 631

с приоритетом, 631

п

Переменные

базисные, 101

ветвления, 412

вводимые в базис, 105; 108

дополнительные, 96

избыточные, 96

исключаемые из базиса, 105

искусственные, 119

небазисные, 101

остаточные, 96

отклоняющие, 382

решения, 23

свободные, 97 Позином, 820

Показатель оптимизма, 577 Поллачека-Хинчина формула, 680 Построение временного графика, 307 Правило

исключения столбцов, 390

красного флажка, 309

ограниченного ввода в базис, 808 Преобразования проективные, 373 Приведенная стоимость, 161 Принцип

недостаточного основания, 575

оптимальности динамического программирования, 444 Принятие решений, 549

в условиях

неопределенности, 575 определенности, 549 риска, 560

дерево решений, 560

коэффициент согласованности, 555

критерий

Предметный указатель

Гурвица, 576 Лапласа, 575

ожидаемого значения, 560 предельного уровня, 566 Сэвиджа, 576 максиминный, 576 согласованность матрицы сравнений, 5 функция полезности, 571 Проблема размерности, 465 Программирование геометрическое, 820 интервальное, 379 квадратичное, 815 параметрическое, 360 сепарабельное, 805 стохастическое, 825 Процесс

марковский, 756 стохастический, 756 Путь в сети, 244

р

Распределение

бета-распределение, 714

биномиальное, 520

Вейбулла,709

геометрическое, 709

нормальное, 524; 711

отрицательное биномиальное, 713

отрицательное экспоненциальное, 523

Пуассона, 522; 637; 710; 756 усеченное, 642

равномерное, 708

стандартное нормальное, 525

треугольное, 708

экспоненциальное, 707

эмпирическое, 527

Эрланга, 710 Ребро, 244

ориентированное, 244 Регрессионный анализ, 386; 544 Решение

базисное, 323

базисное допустимое, 101

допустимое, 23; 35

локально оптимальное, 23

недопустимое, 101

оптимальное, 23

оптимальное допустимое, 35

эффективное, 381; 388

Решения

альтернативные оптимальные, 132 вырожденные, 129 неограниченные, 134 псевдооптимальные, 137

с

Свойство марковское, 757 Сепарабельное программирование, 805

выпуклое, 810 Сетевые модели, 243; 283 алгоритм

нахождения кратчайшего пути, 255 нахождения максимального потока, 271 построения минимального остовного дерева, 245 алгоритмы решения, 243 задача

нахождения кратчайшего пути, 250

о максимальном потоке, 269 как задача линейного

программирования, 285 метод критического пути, 304 методы планирования, 298 нахождение потока наименьшей

стоимости, 283 определения, 244

построение временного графика, 307

симплексный алгоритм, 291 Сети PERT, 315 Сеть, 244

ориентированная, 244

остаточная, 271

проекта, построение, 299

пропускная способность разреза, 270

разрез, 270

с нижними границами пропускных способностей, 279

связная, 244 Сильвера-Мила эвристический метод, 500 Симплекс, 373 Симплекс-метод, 95

алгоритм, 104

альтернативные оптимальные решения,

128;132 базис, 324

вырожденность, 128; 129 двойственный, 164

решения задач с ограниченными переменными, 345 двухэтапный метод, 124

Предметный указатель

зацикливание, 130

искусственное начальное решение, 119 матричное представление, 323 метод декомпозиции, 346 М-метод, 119 модифицированный, 329

двойственный, 338 неограниченные решения, 128; 134 обобщенный, 170

отсутствие допустимых решений, 128; 136 решение задач с ограниченными

переменными, 338 условие допустимости, 330 Симплексные мультипликаторы, 59; 159 Симплексный алгоритм для сетей с ограниченной пропускной способностью, 291 Симплекс-таблица, 110; 112 вычисление, 152 матричное представление, 327 Система планирования и руководства

программами разработок, 298 Системы массового обслуживания, 629 дисциплина очереди, 631 источник, 631 модели

предпочтительного уровня обслуживания, 690

принятия решений, 683

с одним сервисом, 655

с параллельными сервисами, 666

самообслуживания, 674

со стоимостными характеристиками, 684 общая модель, 644 основные компоненты, 631 очередь, 631 переходный режим, 644 с пуассоновским распределением, 650 сервис, 631 стационарные, 651 стационарный режим, 644 типы моделей, 650; 651 формула

Литтла, 652

Поллачека-Хинчина, 680

характеристики, 631 Случайная величина

дискретная, 511

непрерывная, 511 Соотношения двойственности, 148 Средство Поиск решения, 58; 61 Стоимость единицы ресурса, 59; 159

Стохастическое программирование, 825 Стратегия, 737

оптимальная, 737

смешанная, 581

стационарная, 738

управления запасами, 471

чистая, 581 Сэвиджа критерий, 576

т

Теневые цены, 59; 159 Теорема

Байеса, 510

двойственности

об оптимальном решении, 357 первая, 356

центральная предельная, 525 Теория вероятностей

выборка, 527

дисперсия,515

закон сложения вероятностей, 508 законы, 507 ковариация,517 математическое ожидание, 514 объединение событий, 508 пересечение событий, 508 плотность распределения

вероятностей, 511 пространство событий, 507 распределения вероятностей, 511 случайные величины, 511 события, 507

независимые, 508; 5 10

несовместные, 508 совместные распределения

вероятностей, 517 теорема Байеса, 510 условные вероятности, 510 функция распределения, 512 центральная предельная теорема, 525 эксперимент, 507 эмпирические распределения, 527 Теория двойственности, 141; 355

экономическая интерпретация, 158 Теория игр, 580

графическое решение, 584

игры двух лиц с нулевой суммой, 580

решение

оптимальное, 581

в смешанных стратегиях, 584

методами ЛП, 588 смешанная стратегия, 581 стратегии, 580 цена игры, 581 чистая стратегия, 581 Точка

допустимая, 830 крайняя,322 перегиба, 766 седловая, 581;766 стационарная,767 Точки пространства решений крайние, 95 угловые, 95 Транспортная таблица, 195 Транспортные модели, 193 метод

венгерский, 227 наименьшей стоимости, 209 потенциалов, 212 северо-западного угла, 208 Фогеля, 210 несбалансированные, 196 нетрадиционные, 201 определение начального решения, 208 решение, 206

с промежуточными пунктами, 233 сбалансированные, 196

у

Уравнение баланса, 645

Колмогорова-Чепмена, 758 обратное рекуррентное, 739 Условие

допустимости,114

двойственное, 164

снмплекс-метода, 330 неотрицательности переменных, 35 нормировки, 821 оптимальности, 114

двойственное, 164

симплекс-метода, 330 ортогональности, 821 Условия Куна-Таккера, 791; 805

Ф

Флойда алгоритм, 255 Фогеля метод, 210

Предметный указатель

Формула Литтла, 652

Поллачека-Хинчина, 680 Функция

вогнутая, 848 вогнутая строго, 848 выпуклая,848 выпуклая строго, 848 Лагранжа, 483; 785 мажорирующая, 713 одновершинная, 797 позином, 820 позиномиальная, 820 полезности, 571 сепарабельная, 805 целевая линейная, 36

Ц

Целевая функция, 23 Целевое программирование, 381 метод

весовых коэффициентов, 387

приоритетов, 390 Целочисленное линейное программирование, 397 метод

ветвей и границ,411

отсекающих плоскостей, 422 методы решения, 410 частично-целочисленные задачи, 397 Цепи Маркова, 737; 756; 757 абсолютные вероятности, 758 классификация состояний, 759 матрица переходных вероятностей, 757 неприводимые, 759

апериодические, 762 первое время возвращения, 760 переходные вероятности, 757 поглащающие состояния, 760 предельные распределения, 762 теория,756

уравнение Колмогорова-Чепмена, 758 эргодические, 761 Цикл в сети, 244

ориентированный, 244

э

Эвристический подход, 24 Экстремум

Предметный указатель

глобальный, 765 Д локальный, 765

нестрогий, 766 Языки имитационного моделирования, 733

строгий, 766 Якоби метод, 773

условия существования, 766

Научно-популярное издание

Хемди А. Таха

Введение в исследование операций

7-еиздание

Литературный редактор

Верстка

Художественный редактор Корректоры

О.Ю. Белозовская В.И. Бордюк В.Г. Павлютин

З.В.Александрова у Л Л. Гордиенко, JT.B. Чернокозинская

Издательский дом "Вильяме". 101509, Москва, ул. Лесная, д. 43, стр. 1.

Подписано в печать 24.01.2005. Формат 70X100/16. Гарнитура Times. Печать офсетная. Усл. печ. л. 73,53. Уч.-изд. л. 48,87. Тираж 3000 экз. Заказ № 560.

Отпечатано с диапозитивов в ФГУП "Печатный двор"

Министерства РФ по делам печати, телерадиовещания и средств массовых коммуникаций. 197110, Санкт-Петербург, Чкаловский пр., 15.

ИССЛЕДОВАНИЕ ОПЕРАЦИИ

седьмое издание

ХЕМДИ А. ТАХА

. [анное -и и охраняя направленность преды гущих шести изданий, пред. тгает сбалансирован , одход в изложении теории, практики и компьютерной реализации методов исор ювания операций Сложные математические концепции объясняются с помощью множ' i тва тщат- 1ьно по н-оранных числовых примеров, часто исключают»» домп^дж^сть в стр мич шшэытичег ».мч юкл.шг imtk<x Книга гчыгржж по 1робный Sop многих практических ситуаций, а в конце глав приводятся комплексные задачи, предназначенные для анализа на занятиях со студентами Большое внимание "^еляется интенсивному использованию • оответствующего программного обегпечення для того, i гобы по чер путь роль < ^временных программных 1цг и гв как эффгктшкммч шчууш-имм» в peuuиии практичпкнх «41Дач исс и ювания операций

Новое в седьмом издании

• Пгдактич» t$M »-**дый симсывм-чый в uwrr алгоритм и мет«м и монстрируется и объясняется с помощью соответствующего программного обеспечения, что значительно облегчает процесс их изучения н освоения.

• Мощная программная система TORA предлагает новую и уникальную возможность обучения в режиме "ошаговых вычислений, обладая средствами от графического решения з^дач линейного программирования

w динам ичес»-го i ктт«»ення вре и графш швме »чи крип гкиго пути и генерирования дерев, • ач в мете ie ветвей и границ

• Шаблоны Ext 11 разработаны для решения общих задач динамического программирования, задач управл н

шасамн и анализа иерархии, для работы с этими шаО юнами достаточно просто ввести новые исходные анные

• Средство Excel Поиск решения нгпол. ■■• гея для решения транспортных и а -вых адач ад* [нней • го и нг MiH-ihiriri I программиро; ия

• На примере к» ммерче< х i 1 ов AMPL н LINGO показано решение крупных практических задач

ннеиного и целочисленного программирования

• Первая глава начит» (ьно облегчена и упрощена.

• В книгу включен новый материал вводная первая глава, обобщенный симплекс-мет*4!, представление все» сетевых моделей в виде линейных моделей, решение задачи коммивояжера и метод золото i ••чения

• В большинство глав добавлено много новых упражнений

• В приложении Г приведены ответы к некоторым задачам

На компакт-диске

• Простая в использовании и с понятным интерфейсом система оптимизации TORA

• Более 20 готовых шаблонов Ехо'1.

• Шаблоны Ext' 1, использующие ср дство Поиск решения

• Примеры применения коммерческих пакет MPL и LINGO

Издательский дом ВИЛЬЯМС www.williamspubhshing.com

Pearson ^entice Hall

Education wwMtprenthall.

 

ISBN 5-8459-074O-3
llllllllllllllllllllllllllllll csoio
     
9 "7858^^0740011 ^      
 

T2

ES-^


[1] Неравенство Коши (неравенство между средним арифметическим и средним геометриче-

ск,.м) устанавливает, что при Zj > 0 выполняется ^J,%Zy - ГТ"-|'гу'"' 'Где>^ и Xji^y = ' •

0,5(1-3v4)

ск,.м) устанавливает, что при Zj > 0 выполняется ^J,%Zy - ГТ"-|'гу'"' 'Где>^ и Xji^y = ' •

0,5(1-3v4)

[4] Неравенство Коши (неравенство между средним арифметическим и средним геометриче-

fc-м угловым минором определителя матрицы А„х„ называется определитель вида а,, ■■■ а»

к = 1,2,.

В этой формулировке допущена неточность относительно положительно полуопреде­ленных форм: квадратичная форма будет положительно полуопределенной тогда и только тогда, когда все главные миноры определителя матрицы А будут неотрицательны. Главны­ми минорами называются определители, полученные путем вычеркивания из матрицы А строк и столбцов с одинаковыми номерами, т.е. главные миноры симметричны относительно главной диагонали. — Прим. ред.

[7] Строго говоря, здесь приведена не квадратичная форма, а сумма квадратичной и линей­ной форм. — Прим. ред.

[8]t = a + (b-a)R.

4. а) Если 0<Д<0,2, то запрос = 0; если 0,2<Д<0,5, запрос = 1; если 0,5 <R < 0,9, запрос = 2; если 0,9 <R< 1, запрос = 3.

9- jc — 0, если 0<R<p; в противном случае значение х равно наибольшему це­лому, не превышающему величины 1и(1 - i?)/ln(l - р).

[9]t = a + (b-a)R.

4. а) Если 0<Д<0,2, то запрос = 0; если 0,2<Д<0,5, запрос = 1; если 0,5 <R < 0,9, запрос = 2; если 0,9 <R< 1, запрос = 3.

9- jc — 0, если 0<R<p; в противном случае значение х равно наибольшему це­лому, не превышающему величины 1и(1 - i?)/ln(l - р).

– Конец работы –

Используемые теги: исследование, операций0.038

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ИССЛЕДОВАНИЕ ОПЕРАЦИЙ

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Маркетинговые исследования в оптовой торговле на примере комплексного исследования рыночных комплексов и оптовых рынков г. Екатеринбурга
Объектом данной курсовой работы выступают мелкооптовые рынки в целом, и выявление современного состояния и направлений развития оптовых рынков г.… Целью данной курсовой работы выступило подробное изучение основных этапов… Для достижения данной цели потребовалось решение следующих задач Исследовать структуру вещевой и продуктовой панели…

ДОКЛАД по дисциплине Теория игр и исследование операций На тему: Теория игр, графический метод в теории игр
МИНОБРНАУКИ РОССИИ... ФГБОУ ВПО ВОСТОЧНО СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕХНОЛОГИЙИ УПРАВЛЕНИЯ...

Курс лекций по дисциплине: МЕТОДЫ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ... МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ... Курс лекций по дисциплине...

Криминалистическое исследование документов. Новые и перспективные методы исследования письменной речи
Для того, чтобы выразить общую мысль, стоит воспользоваться весьма выразительной и точной по формулировке цитатой одного блестящего криминалиста… Записки криминалиста.Саратов Изд-во СВШ МВД РФ, 1991. Столь ценная мысль… В рамках данной курсовой работы я постараюсь раскрыть один из наиболее значимых вопросов исследования документов, в…

Криминалистическое исследование документов. Новые и перспективные методы исследования письменной речи
Для того, чтобы выразить общую мысль, стоит воспользоваться весьма выразительной и точной по формулировке цитатой одного блестящего криминалиста:… В рамках данной курсовой работы я постараюсь раскрыть один из наиболее… Без сомнения, определение личности лица, исполнившего какой-либо текст, особенно на ранних стадиях расследования,…

ИССЛЕДОВАНИЕ ДОСТИГНУТОГО УРОВНЯ РАЗВИТИЯ ВИДА ТЕХНИКИ, ЭКСПЕРТИЗА ОБЪЕКТА ТЕХНИКИ НА ПАТЕНТНУЮ ЧИСТОТУ, ИССЛЕДОВАНИЕ ПАТЕНТОСПОСОБНОСТИ ОБЪЕКТА ТЕХНИКИ
Государственное образовательное учреждение... Высшего профессионального образования... Тольяттинский государственный университет...

Международные маркетинговые исследования. Услуги современных агентств международных маркетинговых исследований
Международный маркетинг представляет собой определенный образ мышления, подход к принятию производственных решений с позиции наи¬более полного… Для того чтобы оценить с высокой точностью последствия своей деятельности,… Информация, получаемая в ходе проведения маркетинговых исследований, дает возможность принятия адекватных и…

ИССЛЕДОВАНИЕ ОПЕРАЦИЙ. Методические указания по выполнению лабораторных работ
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ... СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ ТУСУР... Кафедра автоматизированных систем управления АСУ...

Работы относятся к первой части курса Исследование операций – к теории массового обслуживания и надежности
Б... УДК Бомас В В Ескин В И Красовская М А Лабораторные работы по курсу Исследование операций М Изд во МАИ с ил...

Исследованию операций в экономике
Содержательная постановка Осознание цели Построение модели Идентификация, верификация модели Формирование класса стратегий Поиск методов решения… Для Yt случайная величина MW max, PWW0 P4. Марковские процессы один из видов… Устанавливает связь между будущим и текущим.

0.029
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам