МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Экономический факультет А. Б. Хуторецкий, А. А. Горюшкин МАТЕМАТИЧЕСКИЕ МОДЕЛИ И МЕТОДЫ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ Курс лекций Часть 1 черновой вариант Новосибирск 2014 УДК 519.8(075.8) ББК 22.18я73 Х68 Хуторецкий А. Б., Горюшкин А. А. Математические методы и модели исследования операций. Курс лекций. – Новосиб. гос. ун-т. / Новосибирск, 2014. 124 с. Пособие предназначено для студентов экономического факультета НГУ (бакалавриат, направление обучения «Менеджмент», третий семестр). Курс лекций включает: введение в предмет (основные понятия и подходы исследования операций); теорию линейного программирования и ее интерпретации, связанные с приложениями в экономике; задачи календарного планирования с помощью сетевых моделей; элементы теории игр. Кроме того, изложены подходы к анализу модели «игра с природой», которая формально является частным случаем статической игры в нормальной форме, но отражает ситуацию объективной, а не субъективной неопределенности. Таким образом, слушатели получат представление об инструментарии разработки решений в детерминированной ситуации и условиях неопределенности. Теоретические результаты обоснованы доказательствами (как правило) или ссылками на источники, содержащие соответствующие доказательства. В пособие включены примеры, иллюстрирующие теоретический материал. Рекомендовано методическим советом ЭФ НГУ в качестве учебно-методических материалов. Издание подготовлено в рамках реализации Программы развития государственного образовательного учреждения высшего профессионального образования «Новосибирский государственный университет» на 2009-2018 годы © Новосибирский государственный университет, 2014 © Хуторецкий А. Б., Горюшкин А. А., 2014 Оглавление Предисловие ....................................................................................................................................... 4 Сокращения и обозначения ............................................................................................................... 6 1. Введение в предмет........................................................................................................................ 9 1.1. Предмет и метод исследования операций ............................................................................ 9 1.2. Операционное исследование................................................................................................ 10 1.2.1. Этап 1: содержательное описание операции ........................................................... 10 1.2.2. Этап 2: построение математической модели операции .......................................... 11 1.2.3. Этап 3: исследование математической модели операции ...................................... 13 1.2.4. Этап 4: разработка рекомендаций ............................................................................ 14 1.3. Типы ситуаций принятия решений ..................................................................................... 15 1.3.1. Детерминированная ситуация ................................................................................... 15 1.3.2. Ситуация риска ........................................................................................................... 15 1.3.3. Природная неопределенность ................................................................................... 16 1.3.4. Субъективная неопределенность .............................................................................. 16 Дополнительная литература к разделу 1 ................................................................................... 17 2. Линейное программирование ..................................................................................................... 17 2.1. Задача нелинейного программирования ............................................................................. 17 2.2. Задача линейного программирования ................................................................................. 18 2.3. Экономическая интерпретация задачи линейного программирования ........................... 22 2.4. Свойства задачи линейного программирования ................................................................ 24 2.4.1. Общие свойства .......................................................................................................... 24 2.4.2. Свойства задачи в канонической форме .................................................................. 24 2.5. Основные идеи симплекс-метода ........................................................................................ 26 2.5.1. Приведение задачи к данному базису ...................................................................... 27 2.5.2. Признак оптимальности и признак неограниченности .......................................... 28 2.5.3. Переход к смежному базису...................................................................................... 29 2.5.4. Улучшение плана ....................................................................................................... 30 2.5.5. Вычислительная схема, конечность и трудоемкость симплекс-метода ............... 31 2.5.6. Проверка совместности задачи и построение исходного базиса .......................... 32 2.6. Двойственность в линейном программировании .............................................................. 34 2.6.1. Экономическая мотивация построения двойственной задачи............................... 34 2.6.2. Двойственная задача для общей задачи линейного программирования .............. 35 2.6.3. Двойственная задача для канонической формы...................................................... 37 2.6.4. Основные теоремы теории двойственности ............................................................ 39 2.6.5. Интерпретации ........................................................................................................... 42 2.7. Особые случаи при решении задач линейного программирования ................................. 43 2.7.1. Анализ неограниченной задачи ................................................................................ 43 2.7.2. Анализ несовместной задачи .................................................................................... 44 2.7.3. Поиск альтернативных решений .............................................................................. 45 2.8. Анализ чувствительности..................................................................................................... 48 2.8.1. Устойчивость оптимального базиса ......................................................................... 48 2.8.2. Чувствительность к изменениям коэффициентов целевой функции .................... 51 2.8.3. Чувствительность к изменениям правых частей ограничений .............................. 54 2.8.4. Нормы замещения ...................................................................................................... 57 2.9. Примеры ................................................................................................................................. 59 Дополнительная литература к разделу 2 ................................................................................... 71 Приложения ...................................................................................................................................... 72 Приложение 1. Доказательство теоремы 2.4 ............................................................................. 72 Приложение 2. Доказательство теоремы 2.11 ........................................................................... 72 Приложение 3. Доказательство теоремы 2.12 ........................................................................... 74 Приложение 4. Доказательство теоремы 2.15 ........................................................................... 75 Приложение 5. Доказательство леммы 2.6 ................................................................................ 75 Приложение 6. Доказательство леммы 2.20 .............................................................................. 76 Приложение 7. Доказательство теоремы 2.22 ........................................................................... 78 Литература ........................................................................................................................................ 79 Предисловие Курс «Математические методы и модели исследования операций» играет особую роль в подготовке студентов экономических специальностей. Объединяя экономическую теорию с математическим аппаратом, он должен дать слушателям методики и инструменты для анализа реальных ситуаций и выбора целесообразных решений. В рамках бакалавриата по направлению обучения «Менеджмент» основная задача курса – подготовить теоретическую базу для дисциплины «Принятие управленческих решений». Курс читается в третьем семестре. Обилие материала требует от лектора тщательного выбора тематики и дисциплинированного изложения, а от студентов – интенсивной самостоятельной работы. После предисловия расположены списки сокращений и обозначений. Вводная глава 1 содержит традиционный материал: предмет и метод исследования операций, методика операционного исследования, подходы к моделированию операций в детерминированных ситуациях, а также – в условиях риска и неопределенности. Глава 2 посвящена теории линейного программирования и ее интерпретациям, связанным с приложениями в экономике. Теория двойственности (раздел 2.6) изложена применительно к общей задаче линейного программирования, а не только для задач в стандартной или канонической форме. Подробный анализ устойчивости и чувствительности решений в задачах линейного программирования и использование результатов такого анализа – содержание раздела 2.8. В главе 3 описаны основные методы календарного планирования с помощью сетевых моделей. Особенностью изложения является использование моделей типа «работы – вершины». Именно на такие модели (в отличие от традиционных моделей типа «работы – дуги») ориентирован MS Project, самый популярный пакет программ сетевого планирования. Элементы теории бескоалиционных игр включены в главу 4. Последовательно сужая класс рассматриваемых игр, мы даем определения и формулируем основные свойства игр в нормальной форме, игр с постоянной суммой, антагонистических и матричных игр. Дальнейшие разделы теории игр, к сожалению, не укладываются в рамки семестрового курса. В главе 5 изложены подходы к анализу модели «игра с природой», которая формально является частным случаем игры двух лиц в нормальной форме, но отражает ситуацию объективной, а не субъективной неопределенности. Приведены редко включаемые в учебники аксиоматические обоснования, так называемых, системных критериев принятия решений (критерии Лапласа, Вальда, Гурвица, Сэвиджа). Таким образом, слушатели получат представление об инструментарии выбора целесообразных решений в детерминированной ситуации и в условиях неопределенности. Анализ рисковых ситуаций является предметом самостоятельного курса и поэтому не включен в наше пособие. Для каждой модели исследования операций, изложенной в пособии, сформулированы условия ее применимости, методы анализа модели и варианты применения результатов анализа для принятия управленческих решений. Компьютерный анализ моделей позволяет обойти вычислительные подробности методов исследования операций и сосредоточиться на их теоретическом обосновании. Для полноты изложения мы даем точные формулировки всех необходимых определений и утверждений. Теоретические результаты обоснованы доказательствами (как правило) или ссылками на источники, содержащие соответствующие доказательства. Громоздкие доказательства вынесены в приложения. К каждой главе приложены набор иллюстрирующих теорию примеров и список литературы для дополнительного чтения. Основной текст пособия разбит на разделы трех уровней. Разделы первого уровня (главы) занумерованы. Разделы второго уровня (параграфы) занумерованы внутри главы, разделы третьего уровня (подпараграфы) – внутри параграфа. Ссылаться на раздел первого, второго, третьего уровня будем следующим образом: «раздел N1», «раздел N1.N2», «раздел 4 N1.N2.N3» соответственно, где N1 – номер главы, N2 – номер параграфа в главе N1, N3 – номер подпараграфа в параграфе N2 главы N1. Предположения, леммы, теоремы, следствия и формулы имеют двухуровневую нумерацию в пределах каждой главы. Например, теорема 2.4 – это четвертая теорема раздела 2, (3.1) – первая формула раздела 3. Таблицы и рисунки имеют сплошную нумерацию. Латинские обозначения будем писать курсивом. Мы не используем полужирный шрифт для векторных и матричных обозначений, размерность переменной или параметра всегда ясна из контекста. Основные термины при первом употреблении выделены курсивом. Знак # отмечает конец доказательства. Литература, использованная при подготовке пособия, указана в подстраничных сносках и в списке литературы. Авторы благодарны студентам экономического факультета Новосибирского государственного университета за помощь в устранении опечаток, неточностей и прочих недостатков текста. 5 Сокращения и обозначения Сокращения БДР – базисное допустимое решение. ЗЛП – задача линейного программирования. ИСДС – процедура исключения сильно доминируемых стратегий ЛП – линейное программирование. ЛПР – лицо, принимающее решения. МКП – метод критического пути. ОПДО – область постоянства двойственных оценок. ОПОР – область постоянства оптимального решения. ОСОБ – область сохранения оптимального базиса. РВ – «работы – вершины» (тип модели проекта) РД – «работы – дуги» (тип модели проекта) ЦФ – целевая функция Обозначения общие a M – a есть элемент множества M, a принадлежит M. {a1, …, an, …} – множество, состоящее из элементов, указанных в фигурных скобках. {a M | P(a)} – множество всех элементов множества M, удовлетворяющих условию P. (a1, …, an) – упорядоченный набор объектов произвольной природы. AB = {(a, b) | a A, b B} – декартово произведение множеств A и B. S – множество возможных состояний объекта управления. A – множество возможных состояний внешней среды. X(a) – множество допустимых решений при состоянии a внешней среды. (a, x) – функция реализации, указывает состояние, в которое переходит объект, если в состоянии a внешней среды применить к нему управление x X(a). S*(a) – множество желательных состояний объекта управления при состоянии a внешней среды. X *(a) – множество целесообразных решений при состоянии a внешней среды. Точечно-множественное отображение f : A → B сопоставляет каждому элементу a множества A некоторое (возможно, пустое) подмножество f(a) множества B. R – множество всех действительных чисел. R+ – множество всех неотрицательных действительных чисел. Rmn – множество всех матриц размерности mп с элементами из R. Rn – арифметическое векторное пространство размерности n, Rn = Rn1, R1 = R. max{M} – наибольшее число из множества M R. f(x) → max при условии x X – запись задачи максимизации: найти хотя бы один элемент x X такой, что f(x) ≥ f(x′) для всех x′ X. Argmax{f(x) | x X} (Argmin{f(x) | x X}) – множество всех точек максимума (минимума) функции f(x) на множестве X. P(a) – задача параметрической оптимизации: F(a, x) → max при условии x X(a), a A. V(a) = max{F(a, x) | x X(a)} – функция максимумов, оптимальное значение целевой функции в задаче P(a). AT – результат транспонирования матрицы A. [A]i, [A]j – строка с номером i и столбец с номером j, соответственно, матрицы A. det(A) – определитель матрицы A. rank(A) – ранг матрицы A. 0n – нуль-вектор в Rn. ei – единичный вектор из Rn с единицей в позиции i. Если a Rn и b Rn, то [a, b] – отрезок в Rn. 6 Для целых чисел m и n: m, n = {m, … ,n}, если m ≤ n, и m, n = , если m > n. E[ξ] – математическое ожидание случайной величины ξ. Линейное программирование B(β) – базисная матрица для базиса β. B–1(β) – обратная базисная матрица. j(i, β) – номер столбца матрицы ЗЛП, который в базисе β этой матрицы стоит на месте i. N(β) – множество номеров столбцов, входящих в базис β, базисное множество. xб(β) и xн(β) – базисная и небазисная части вектора x относительно базиса β. P(β) – результат приведения задачи линейного программирования P (записанной в канонической форме) к базису β. A(β), b(β), z(β), F(β) – параметры задачи P(β). P* – задача, двойственная к задаче линейного программирования P. x(β) и y(β) – базисные векторы задач P и P*, порожденные базисом β. P(A, b, c) – возмущенная ЗЛП в канонической форме. P0 = P(A0, b0, c0) – исходная ЗЛП. V(A, b, c) – функция максимумов возмущенной ЗЛП. P(c) = P(A0, b0, c). Uc(s) – множество всех значений cs, при которых оптимальный базис задачи P0 остается оптимальным в задаче P(c). P(b) = P(A0, b, c0). Ub(r) – множество всех значений br, при которых оптимальный базис задачи P0 остается оптимальным в задаче P(b). При фиксированных k 1, m и l 1, m определим вектор b(, δ) = (bi | i 1, m )T следующим образом: bk = bk0 + , bl = bl0 – α, bi = bi0 для i{k, l}. Ukl(α) – множество всех , для которых b(, δ) ОПДО. rkl – норма замещения ингредиента l ингредиентом k. dkl(α) и Dkl(α) – границы замещения ингредиента l ингредиентом k в отношении 1:α, границы промежутка Ukl(α). Сетевое планирование G = (V, E) – ориентированный граф (орграф), имеющий множество вершин V и множество дуг E V 2. 〈x1, …, xn+1〉 – путь в графе. A ≺ B – работа A предшествует работе B. A ≺≺ B – работа A непосредственно предшествует работе B. l(μ) – длительность пути μ в сетевой модели проекта. T – директивный срок завершения проекта. F(i) – множество всех путей в графе G, для которых вершина i является конечной. B(i) – множество всех путей в графе G, для которых вершина i является начальной. d = (ti | iV)T – вектор длительностей работ проекта, сетевой моделью которого является граф G = (V, E). ESi – ранний срок начала работы i. LSi – поздний срок начала работы i. L – длительность критического пути. Fi(x) – резерв работы i при плане x. TFi – полный резерв работы i. wik – количество ресурса k, необходимое для выполнения работы i. Ut(x) – множество всех работ, происходящих в период [t – 1, t] при календарном плане x. Rkt (x) – потребность в ресурсе k на отрезке [t – 1, t] при календарном плане x. 7 Skt – поставка ресурса k в промежутке [t – 1, t]. Кс и Kн – множества номеров складируемых и нескладируемых ресурсов соответственно. t S k (x) – количество ресурса k, доступное в период [t – 1, t] при календарном плане x. Теория игр I – множество всех игроков. Xi – множество всех стратегий игрока i I. X = {(x1, …, xm) | xi Xi для всех i I} – множество исходов игры. ui: X → R функция выигрыша игрока i. Для любого исхода x = (x1, …, xm) X и каждого игрока i I обозначим x–i набор стратегий всех игроков, кроме игрока i: x–i = (x1, …, xi–1, xi+1, …, xm). X–i = {x–i | x X}. Записи x = (x1, …, xm)X и x = (xi, x–i) эквивалентны. Ri(x–i) – отображение отклика игрока i. eik – вырожденная смешанная стратегия игрока i, соответствующая его чистой стратегии с номером k. Игры с природой S – множество стратегий ЛПР; для конечной игры S = {si | i 1, m }. A – множество сценариев (стратегий природы); для конечной игры A = {aj | j 1, n }. uij – выигрыш, который даст ЛПР стратегия si S в условиях сценария aj A. U = (uij | i 1, m , j 1, n ) Rmn – матрица последствий (стратегическая матрица). La(si), Wa(si), Hu(, si), Sa(si) – функции выбора в критериях Лапласа, Вальда, Гурвица (с параметром ), Сэвиджа соответственно. , SWa , S Hu – множества стратегий, оптимальных по критерию Лапласа, Вальда, S La (λ) , SSa Гурвица (с параметром ), Сэвиджа соответственно. MWa(p) и MSa(p) – функции выбора в критериях Вальда и Сэвиджа для смешанных стратегий. и M Sa – множества смешанных стратегий, оптимальных по критериям Вальда и СэMWa виджа. ≽ – отношение предпочтения на множестве стратегий. si ≻ sk означает: si ≽ sk и неверно, что sk ≽ si (отношение строгого предпочтения на множестве стратегий). si ~ sk означает: si ≽ sk и sk ≽ si (отношение эквивалентности на множестве стратегий). 8 1. Введение в предмет 1.1. Предмет и метод исследования операций Термин «исследование операций» 1 впервые использовал в 1939 г. А.П. Раув, руководитель одной из научных групп ВВС Великобритании, имея в виду разработку военных операций и оценку их эффективности. В 1941 г. в английской армии уже действовали многочисленные отделы исследования операций2. Подходы и математические модели, развитые в рамках исследования операций, оказались применимыми не только в военном деле, но и в технике, промышленности, экономике, управлении. Поэтому теперь термин «операция» трактуют очень широко: как любое целенаправленное действие (мероприятие, совокупность мероприятий). Целенаправленность операции возможна, только если она управляема, то есть ее исход зависит от некоторых управляемых параметров. Совокупность значений управляемых параметров – это решение, или управление. Менеджер принимает решения (выбирает управления) и отвечает за их последствия (результаты). Он – лицо, принимающее решения (ЛПР), или оперирующая сторона (термин ЛПР может относиться и к группе, например, к совету директоров). ЛПР является элементом управляющей системы, которая в совокупности с объектом управления образует систему управления (см. рис. 1). Состояние внешней среды Объект управления Состояние объекта управления Управляющие воздействия Степень достижения цели Управляющая система Система управления Рис. 1. Структура системы управления В каждый момент объект управления находится в некотором состоянии. Цель операции определяет множество желательных состояний объекта. Предположение 1.1. Управляющая система способна идентифицировать текущее состояние объекта, которое может изменяться под воздействием управления. Множество желательных состояний объекта зависит от состояния внешней среды в период выполнения операции. Будем считать, что это состояние внешней среды описано набором неуправляемых параметров. Исход операции (состояние объекта управления после завершения операции) зависит от состояния внешней среды в период выполнения операции и от управляющего воздействия (решения). 1 2 operations research (англ.). Об истории возникновения и развития исследование операций см. [1], [2]. 9 Если текущее состояние объекта не принадлежит множеству желательных состояний, то ЛПР стремится найти управление, переводящее объект в желательное состояние. Такое управление (решение) будем называть целесообразным. Исследование операций дает теоретическую основу и прикладные методики для разработки целесообразных решений. Предметом исследования операций является подготовка аналитической информации и рекомендаций для принятия решений. Как правило, невозможно провести натурный эксперимент, чтобы выяснить реакцию объекта на предполагаемое решение. Поэтому для поиска целесообразных решений операцию необходимо моделировать. Моделирование – это исследование объекта посредством изучения его модели. Модель объекта – искусственная или естественная система, которая находится в объективном соответствии с исследуемым объектом, способна замещать его в интересующих исследователя отношениях и в результате исследования дает информацию о моделируемом объекте.3 В исследовании операций моделируемым объектом является операция. Математическая модель операции – это такая модель, которая описана на языке математики и может быть исследована средствами математики. Метод исследования операций – построение и анализ математической модели операции. 1.2. Операционное исследование Построение и анализ математической модели операции осуществляется в ходе операционного исследования. Этим занимаются, как правило, специалисты по исследованию операций (операционисты) по заказу ЛПР и с участием представителей заказчика. Операционное исследование – творческий процесс, который трудно и, вероятно, не следует унифицировать. Однако структуризация этого процесса возможна и полезна. Перечислим основные этапы операционного исследования. 1.2.1. Этап 1: содержательное описание операции Схема содержательного описания операции представлена на рис. 2. Управляемые параметры Неуправляемые параметры ОПЕРАЦИЯ Исход операции ЦЕЛЬ ОПЕРАЦИИ и условия Рис. 2. Схема содержательного описания операции На этом этапе участники операционного исследования изучают систему, в рамках которой выполняется операция, выявляют факторы, определяющие состояния объекта и внешней среды, формулируют цель операции. Описание операции должно дать ответ на следующие основные вопросы: – какие неуправляемые параметры (внешние воздействия) влияют на операцию и какие значения они могут принимать? – какие управляемые параметры можно использовать для воздействия на объект управления? – какие параметры описывают состояние объекта до операции и после ее завершения? – как связаны между собой управляемые, неуправляемые и результирующие параметры? – как оценить степень достижения цели операции при фиксированных значениях результирующих параметров? 3 Формулировка А.А. Ляпунова, приведена в работе [3]. 10 1.2.2. Этап 2: построение математической модели операции На этом этапе операционист строит математическую модель, которая формализует полученное на предыдущем этапе содержательное описание операции. В математической модели операции управляемым параметрам соответствуют переменные, значения которых должны быть определены в результате анализа модели. Неуправляемым параметрам соответствуют параметры модели. Совокупность значений параметров модели описывает состояние внешней для объекта управления среды. Состояние объекта после выполнения операции (исход операции) модель описывает набором значений результирующих показателей. Как правило, математическая модель операции включает ограничения, которые указывают множества возможных значений параметров модели, переменных и результирующих показателей, а также соотношения между этими значениями. Для описания множества желательных состояний нужен способ оценки исхода операции, позволяющий выяснить, в какой степени достигается цель операции. Оценку исхода операции будем называть результатом операции. Из сказанного следует, что математическая модель операции обычно имеет структуру, представленную на рис. 3. Переменные Параметры модели ОГРАНИЧЕНИЯ Результирующие показатели РЕЗУЛЬТАТ ОПЕРАЦИИ и условия Рис. 3. Структура математической модели операции Учитывая предположение 1.1, будем считать, что исходное состояние объекта управления определено и известно ЛПР. Исходное состояние объекта и состояние внешней для него среды определяют возможности управления объектом, в первую очередь – множество решений, обеспечивающих выполнение операции. Определения и обозначения. A – множество всех возможных состояний внешней (для объекта управления) среды. Множество допустимых решений X(a), где a A, – это множество всех наборов значений переменных, которые обеспечивают выполнение операции в состоянии a внешней среды (при фиксированном исходном состоянии объекта управления). При данном исходном состоянии объекта управления и известном состоянии внешней среды допустимое решение определяет состояние объекта управления после выполнения операции (то есть исход операции). Определения и обозначения. S – множество всех возможных состояний объекта управления. Функция реализации s = (a, x) для любой пары (a, x), где a A и x X(a), указывает состояние s S, в которое переходит объект управления (из исходного состояния), если в состоянии a внешней среды применить к нему управление x. Правильно построенная модель должна описывать: множества A и S; множества X(a) для всех a A; функцию реализации s = (a, x), определенную для всех a A и x X(a). Далее мы будем рассматривать только такие модели. Из целенаправленности операции (см. раздел 1.1) следует, что ЛПР имеет цель. В соответствии с этой целью модель должна описывать множество желательных состояний объекта управления при каждом возможном состоянии внешней среды (и фиксированном исходном состоянии объекта). 11 Обозначения. При фиксированном состоянии a внешней среды S (a) для a A – множество желательных состояний объекта управления, X *(a) = {x X(a) | (a, x) S *(a)} – множество целесообразных решений. * Поскольку ЛПР стремится выбрать целесообразное решение (см. раздел 1.1), общая модель операции – это задача выбора решения, определенная ниже. Определение. Задача выбора решения имеет вид: для данного a A найти x X *(a). Для описания множества желательных состояний в задаче выбора решения обычно используют оценочную функцию. Определение. Функция h(a, s) является оценочной для рассматриваемой операции, если выполнены следующие условия: (а) функция определена для всех a A и s S; (б) если s S и s′ S, то h(a, s) ≥ h(a′, s′) тогда и только тогда, когда при состоянии a внешней среды и состоянии s объекта управления цель операции достигается не хуже, чем при состоянии a′ внешней среды и состоянии s′ объекта управления. Предположение 1.2. Оценочная функция h(a, s) определена. Следствие 1.1.4 При каждом состоянии a внешней среды желательными состояниями объекта управления являются те, в которых функция h(a, s) достигает максимума по s на множестве S, S *(a) = {s S | h(a, s) ≥ h(a, s′) для всех s′ S}. От оценки состояний объекта управления легко перейти к оценке решений. Определение. Подставив функцию реализации вместо второго аргумента оценочной функции, получим целевую функцию (ЦФ) F(a, x) = h(a, (a, x)). Из определений следует, что чем лучше достигается цель, тем больше значение ЦФ. Другими словами, значение целевой функции F(a, x) является показателем эффективности (качества) решения x при состоянии a внешней среды. Следствие 1.2.5 Множество решений, целесообразных при состоянии a внешней среды, состоит из точек максимума функции F(a, x) по x на множестве X(a): X *(a) = {x X(a) | F(a, x) ≥ F(a, x′) для всех x′ X(a)}. Заметим, что функция реализации, оценочная функция и целевая функция обычно описываются формулами, но могут быть заданы и другими способами (таблично или алгоритмически). Определения. Если множество X *(a) описано в соответствии со следствием 1.2, его элементы (целесообразные решения) называют оптимальными решениями в состоянии a внешней среды. Задача максимизации функции f(x) на множестве X записывается следующим образом: (1.1) f(x) → max при условии x X. Решением задачи (1.1) является любой элемент x* X такой, что f(x*) ≥ f(x) для всех x X. Если x* – решение задачи (1.1), то f(x*) – оптимальное значение целевой функции. При сделанных предположениях для любого a A задача выбора решения, она же модель операции, является задачей максимизации: (1.2) F(a, x) → max при условии x X(a). 4 Доказательство очевидно (использует определения и предположение 1.2). Легко выводится из следствия 1.1. 5 12 Определение. Задача (1.2) – это задача параметрической оптимизации (параметром является состояние внешней среды a A). Мы обсудили моделирование операции, которая имеет единственную цель. Однако реальные операции часто являются многоцелевыми. Такие операции можно моделировать задачами многокритериальной оптимизации6. Чтобы упростить модель и сделать ее однокритериальной, часто моделируют выбор решения, целесообразного в отношении одной из целей, которую считают основной, при ограничениях, обеспечивающих приемлемые уровни достижения других целей. 1.2.3. Этап 3: исследование математической модели операции В соответствии с разделом 1.2.2 математической моделью операции является задача параметрической оптимизации (1.2), в которой значения неуправляемых параметров ограничены условием a A. На этапе 3 операционист анализирует эту задачу. Основное содержание анализа – выбор (или разработка) методов решения прямой и обратной задач исследования операций. Прямая задача исследования операций отвечает на вопрос «что будет, если в состоянии a внешней среды реализовать решение x?». Понятно, что если x X(a), то операция невыполнима, если же x X(a), то объект перейдет в состояние s = (a, x). Следовательно, чтобы решить прямую задачу, нужны алгоритмы, позволяющие для выбранной модели проверять допустимость решения и вычислять функцию реализации. Обратная задача исследования операций отвечает на вопрос «как при состоянии a внешней среды перевести объект управления в одно из желательных состояний?». Решением обратной задачи является любое целесообразное управление. Следовательно, обратная задача исследования операций совпадает с задачей выбора решения. Конечно, нет единого метода решения задачи в столь общей постановке. Мы будем изучать модели, для которых обратная задача исследования операций решается известными методами, что позволяет находить целесообразные решения во многих ситуациях. Математическая модель операции является, в сущности, гипотезой о свойствах системы управления, объекта управления и операции. Поэтому параллельно с анализом происходит проверка адекватности (верификация) модели для устранения возможных противоречий с теоретическими представлениям и эмпирическими данными. Невозможно дать «рецепт» теоретической проверки модели. Исследователь должен выводить из модели следствия и сопоставлять их с теоретическими представлениями о моделируемом объекте. Такими следствиями являются, в частности, свойства модели, выявляемые при анализе модели. Часто теория способна указать целесообразное решение при некоторых (например, очень больших или очень малых) значениях неуправляемых параметров. Полезно проверить, согласуются ли с этими теоретическими выводами решения, полученные с помощью модели. Укажем некоторые возможности проверки модели в случае, когда она записана в виде задачи параметрической оптимизации (1.2). Определения и обозначения. A0 – множество всех a A, при которых задача (1.2) имеет решение. Если a A0 и x X*(a), то положим V(a) = F(a, x) (функция максимумов, оптимальное значение целевой функции при состоянии a внешней среды). В некоторых случаях удается проверить, подтверждает ли теория, что при a A0 оптимальное решение отсутствует. Проверка облегчается тем, что только следующие три причины могут вызвать неразрешимость задачи. 6 О многокритериальной оптимизации и ее приложениях в экономике см. [4]. 13 1. X(a) = , нет допустимых решений, задача несовместна. 2. X(a) и целевая функция на множестве X(a) принимает сколь угодно большие значения, задача неограниченна. 3. X(a) , множество значений целевой функции {F(a, x) | x X(a)} имеет точную верхнюю границу, которая не принадлежит этому множеству, не достигается ни при каком допустимом решении, задача незамкнута. Множество допустимых решений X(a) для каждого a и функция реализации (a, x) являются элементами модели (см. раздел 1.2.2). Во многих случаях модель позволяет найти множество A0 состояний внешней среды, при которых оптимальное решение существует, и функцию максимумов V(a). Поэтому для верификации модели можно использовать заслуживающий доверия сценарий или прогноз, утверждающий, что при состоянии a0 внешней среды может быть достигнуто состояние s объекта. Если a0 A0, то можно предположить, что модель недостаточно согласована со сценарием. Если же a0 A0, уравнение (a0, x) = s имеет решение x0 и V(a0) F(a0, x0), то можно считать, что модель не противоречит сценарию. Для эмпирической проверки модели можно использовать ретроспективную информацию. Если когда-то, при состоянии a0 внешней среды, было реализовано решение x0, то при a0 A0 должны выполняться соотношения x0 X(a0) и V(a0) F(a0, x0); если же решение x0 при состоянии a0 внешней среды не удалось осуществить, то x0 X(a0). Проверка модели может выявить ее несоответствие тем представлениям об операции, которые были сформированы на этапе 1. В таком случае придется вернуться к этапам 1 и 2, чтобы уточнить описание операции и/или модифицировать модель. 1.2.4. Этап 4: разработка рекомендаций На этапе 3 операционист исследует задачу параметрической оптимизации (1.2), которая является моделью операции. На этапе 4 в модель подставляют значения неуправляемых параметров, соответствующие состоянию a0 внешней среды в период выполнения операции (см. раздел 1.3). Операционист решает полученную задачу максимизации P(a0), интерпретирует результаты, разрабатывает рекомендации для принятия решений и составляет отчет об операционном исследовании. Важная часть этапа 4 – послеоптимизационный анализ, содержание которого зависит от того, разрешима ли задача (1.2) при a = a0. Если задача P(a0) неразрешима, a0 A0, то в ходе послеоптимизационного анализа следует выявить причину неразрешимости (используя результаты этапа 3) и, по возможности, указать пути ее устранения. Если задача P(a0) разрешима, то послеоптимизационный анализ заключается в проверке единственности решения и анализе его устойчивости. Следует выяснить, существуют ли оптимальные решения, отличные от найденного, и, если существуют, описать их как можно полнее. Это важно, так как исход операции, как правило, можно оценивать по разным критериям и целевая функция задачи P(a0) выражает лишь один из них. Множественность оптимальных по этому критерию решений позволяет провести дополнительную оптимизацию по критериям, которые отражены только в ограничениях модели или совсем в ней не учтены. Операционист может предъявить ЛПР все найденные оптимальные решения с указанием их сравнительных достоинств и рекомендовать предпочтительное решение; окончательный выбор остается, конечно, за ЛПР. Анализ устойчивости (эквивалентный термин – анализ чувствительности) решения – это исследование зависимости множества оптимальных решений и оптимального значения целевой функции от неуправляемых параметров. Такое исследование полезно по следующим причинам. 1) Значения параметров модели часто являются средними величинами (как, например, цена товара или удельная трудоемкость продукции); фактическое значение такого параметра может немного отличаться от значения, использованного в модели. Кроме того, возможны 14 непредвиденные изменения характеристик внешней среды. Анализ устойчивости позволяет выяснить, насколько сильно влияют изменения параметров модели на оптимальное решение и оптимальное значение целевой функции. Чем сильнее это влияние, тем точнее следует определять значение параметра. Если в математической модели есть малозначимый параметр, то следует рассмотреть возможность упрощения модели посредством его исключения. 2) Во многих случаях параметр, неуправляемый для рассматриваемой операции, является управляемым в другой, предшествующей операции. Например, показатели, определяемые на этапе перспективного планирования, неуправляемы в задаче текущего планирования. Операционист может рекомендовать ЛПР пересмотреть ранее принятое решение, чтобы улучшить результат анализируемой операции. Оптимальное решение и результаты послеоптимизационного анализа используются при разработке рекомендаций. Заключительная стадия этапа 4 – представление результатов исследования для заказчика и подготовка отчета. Отчет должен убедить ЛПР в том, что результаты исследования хорошо обоснованы и рекомендации заслуживают доверия. Поэтому в отчете следует (без излишних технических и математических подробностей) описать все этапы операционного исследования: гипотезы, положенные в основу модели, и их обоснования; математическую модель операции и основные свойства модели; способы и результаты проверки адекватности модели; наконец, собственно рекомендации с указанием того, каким образом они выведены из модели. Часто отчет содержит еще и план организационных мероприятий, обеспечивающих реализацию рекомендуемого решения. 1.3. Типы ситуаций принятия решений Специфика ситуации, в которой ЛПР принимает решение, существенно влияет на способ описания и структуру модели операции. Важнейшая характеристика ситуации – степень информированности ЛПР к моменту принятия решения о состоянии внешней среды (значениях неуправляемых параметров) в период выполнения операции (реализации решения). Как правило, принятие и реализация решения разнесены во времени, и нет оснований предполагать, что ЛПР точно знает, в каких условиях будет выполняться принятое им решение. В любой ситуации параметры, описывающие состояния внешней среды и объекта управления следует выбирать так, чтобы состояние внешней среды и управление однозначно определяли результат операции (см. раздел 1.2.2). 1.3.1. Детерминированная ситуация Если значения неуправляемых параметров можно считать известными, то ситуацию принятия решения называют детерминированной (определенной). В этом случае ЛПР знает (прогнозирует) состояние a0 вешней среды в период реализации операции. Тогда, как показано в разделе 1.2.2, предположение 1.2 позволяет свести задачу поиска целесообразного решения к задаче максимизации (1.2) при фиксированном а = a0. Для решения задачи используют подходящие разделы математического программирования. Прочие ситуации выбора различаются «степенью неопределенности» внешних параметров. В любом случае формулировка модели может использовать только ту информацию о состояниях внешней среды, которая доступна ЛПР в момент принятия решения. 1.3.2. Ситуация риска Выбор в условиях риска (при стохастической, или вероятностной неопределенности) возникает, если некоторые характеристики внешней среды описаны как случайные величины с известными или допускающими статистическую оценку распределениями. В этом случае самый употребительный подход состоит в следующем. Пусть состояние внешней среды описано случайной величиной ξ (вообще говоря, векторной), принимающей значения из множества A и имеющей функцию распределения Dξ. 15 Будем считать Dξ параметром модели. Для простоты предположим, что множество допустимых решений X не зависит от состояния внешней среды. Для каждого xX исход и результат операции зависят от случайной величины ξ и являются, следовательно, случайными величинами. Первая принимает значения на множестве S, вторая (если выполнено предположение 1.2) – на множестве действительных чисел. Тогда можно говорить об ожидаемом исходе и ожидаемом результате операции. Пусть f(ξ, x) – оценка исхода (результат) операции в случае реализации решения x при состоянии ξ внешней среды. Это случайная величина. Ее математическое ожидание E[ f(ξ, x)] зависит только от Dξ и x, это ожидаемый результат операции при решении x. Положим F(Dξ, x) = E[ f(ξ, x)]. Тогда целью ЛПР можно считать максимизацию функции F(Dξ, x) на множестве X. Таким образом, если в рисковой ситуации внешнюю среду описать распределением соответствующей случайной величины, а состояние объекта управления после выполнения операции оценивать величиной ожидаемого результата7, то задача поиска решения сводится к задаче максимизации функции F(Dξ, x) на множестве X. Этот прием называют осреднением по случайным параметрам. Риск состоит в том, что ожидаемый результат может быть получен не при каждом выполнении операции, а только в среднем, при многократном ее повторении8. ЛПР определяет, можно ли использовать осреднение при выборе решений. Если нужно получить пусть не лучший, но надежный результат, то осреднение недопустимо. 1.3.3. Природная неопределенность В ситуации природной (интервальной) неопределенности для некоторых неуправляемых параметров известны только множества возможных значений. В этом случае возможные состояния внешней среды называют сценариями, а решения ЛПР – стратегиями. Для выбора стратегии обычно используют модель игры с природой и применяют различные варианты принципа гарантированного результата9. Пусть A – множество всех возможных состояний внешней среды. Будем считать это множество параметром модели. Допустим также, что множество X допустимых стратегий ЛПР не зависит от состояния внешней среды. Пусть результат применения стратегии x в условиях сценария a равен f(a, x). Тогда стратегия x в худшем случае даст результат F(A, x) = min{f(a, x) | a A}. Это гарантированный результат в том смысле, что выбор стратегии x при любом сценарии гарантирует получение результата, не меньшего чем F(x). Естественно считать, что ЛПР стремится максимизировать гарантированный результат. Таким образом, если в ситуации природной неопределенности внешнюю среду описать множеством сценариев, а состояние объекта управления после выполнения операции оценить величиной гарантированного результата, то задача поиска решения сводится к задаче максимизации функции F(A, x) на множестве X. 1.3.4. Субъективная неопределенность Ситуация субъективной (игровой) неопределенности возникает, если какие-то ЛПР, преследующие собственные цели, влияют на состояние внешней среды. Другими словами, некоторые неуправляемые параметры зависят от поведения целеустремленных агентов. 7 Заметим, что ожидаемая оценка исхода (ожидаемый результат) и оценка ожидаемого исхода не всегда совпадают, см. [5, раздел 6.4]. Подробнее об оценке исходов операции в ситуации неопределенности см. [7, §8 главы II]. 8 Точнее: среднее (по реализациям) значение случайной величины сходится по вероятности к ее математическому ожиданию (закон больших чисел, см. [6, §1 главы 10]). 9 См. раздел 5. Для дальнейшего изучения рекомендуем [7, §8 главы II]. 16 Подходы к выбору стратегии при субъективной неопределенности дает теория игр10. В моделях теории игр решение игрока называют стратегией, а его результат – выигрышем. Модели различаются предположениями об информированности игроков и правилах игры. Исследуя игру, обычно стремятся найти такие сочетания стратегий (всех игроков), при которых возникает теоретико-игровое равновесие (определение равновесия зависит от типа модели). Для этого приходится, как правило, решать задачи параметрической оптимизации. В некоторых случаях (как в антагонистических играх11) равновесные стратегии каждого игрока (если они существуют) максимизируют его гарантированный результат. Дополнительная литература к разделу 1 История исследования операций: [1], [2], [8, глава 1]. Методология исследования операций: [8, глава 1], [9, §§1, 2, 4], [10], [11, глава 1]. Построение математической модели операции: [9, §3], [12, глава 1], [13, лекция 1]. Модели выбора в условиях неопределенности: [7, гл. II, §8], [9, §5], [14, стр. 4 – 7]. Многокритериальные задачи исследования операций: [4], [9, §6]. 2. Линейное программирование 2.1. Задача нелинейного программирования Обозначения. R – множество действительных чисел. Rn – арифметическое векторное пространство размерности n, множество всех векторовстолбцов вида x = (x1, …, xn)T, где xi R для всех i; R1 = R. Предположение 2.1. В модели конечное число переменных, все они принимают действительные значения. Мы будем рассматривать только модели, для которых выполнено предположение 2.1. Широкий класс таких моделей описывает следующее определение. Определение. Задача математического программирования имеет вид f(x) → max при условии x X Rn. (2.1) Пусть в задаче (1.2) n переменных. Тогда решение x можно представить вектором из Rn и для каждого состояния внешней среды a A задача (1.2) является задачей математического программирования. Задачу минимизации на множестве X Rn можно привести к виду (2.1), используя следующее утверждение. Теорема 2.1 (о замене минимизации максимизацией)12. Точка x0 минимизирует функцию f(x) на множестве М, если и только если она максимизирует функцию –f(x) на том же множестве. Теперь конкретизируем описание множества допустимых решений X в задаче (2.1). Определения и обозначения. Для целых m и n обозначим m, n множество всех целых чисел от m до n: m, n = {m, …, n}, если m ≤ n, и m, n = , если m > n. 10 См. раздел 4. Развернутое изложение теории игр с экономическими приложениями – в [15]. См. раздел 4.5. 12 Доказательство поручаем читателю. 11 17 Задача нелинейного программирования имеет вид: f(x) → max при условиях: xR , n gi(x) = bi для i 1, m1 , (2.2) (2.3) (2.4) (2.5) gi(x) ≤ bi для i m1 1, m . В этой задаче m ограничений. Среди них есть ограничения-равенства (2.4), если m1 > 0, и ограничения-неравенства (2.5), если m > m1. Вектор xRn является допустимым решением задачи (2.2) – (2.5), если он удовлетворяет условиям (2.3) – (2.5). Задача (2.2) – (2.5) совместна, если множество ее допустимых решений непусто. Для задачи (2.2) – (2.5) с множеством допустимых решений X вектор x*X является оптимальным решением, если f(x*) ≥ f(x) для всех x X. Задача (2.2) – (2.5) с множеством допустимых решений X ограниченна, если f(x) ≤ M для всех x X и некоторого M R. Задача (2.2) – (2.5) разрешима, если множество ее оптимальных решений непусто. Из определения следует, что задача математического программирования является задачей нелинейного программирования, если множество ее допустимых решений есть множество всех решений конечной системы уравнений и/или нестрогих неравенств. Ограничения, первоначально записанные в форме g(x) ≥ b приводятся к виду (2.5) умножением на –1 с изменением знака неравенства. Предположение 2.2. Связи между параметрами и переменными в модели операции описаны равенствами вида g(a, x) = b и/или нестрогими неравенствами вида g(a, x) ≤ b. Если выполнены предположения 2.1 и 2.2, то задача (1.2) для каждого a A является задачей нелинейного программирования. 2.2. Задача линейного программирования Линейным программированием (ЛП) Т. Купманс в 1951 г. предложил назвать оптимизацию (максимизацию или минимизацию) линейной функции при линейных ограничениях (равенствах и/или нестрогих неравенствах). Несколько ранее, в 1947 г., Дж. Данциг разработал метод решения задач ЛП – симплекс-метод, о котором мы будем говорить в разделе 2.5. Еще раньше (начиная с 1939 г.) были опубликованы работы Л. В. Канторовича, посвященные теории и приложениям ЛП. В 1975 году. Л. В. Канторович и Т. Купманс получили Нобелевскую премию по экономике «за вклад в теорию оптимального использования ресурсов». Если в задаче (2.2) – (2.5) функции f и gi для всех i линейны, то она относится к классу задач линейного программирования (ЗЛП). Определения и обозначения. В общем виде ЗЛП записывается следующим образом. n f(x) = c x j j 1 j max (min) при условиях: a x j = bi, i 1, m1 ; (2.7) x j bi, i m1 1, m2 ; (2.8) x j bi, i m2 1, m ; (2.9) ij j a ij j a ij (2.6) j xj 0 для j 1, n1 ; xj 0 для j n1 1, n2 ; n2 n. 18 (2.10) Здесь x = (x1, …, xn)T Rn – вектор переменных, (2.7) – (2.9) – общие ограничения, (2.10) – ограничения по знаку. ЗЛП в стандартной форме имеет вид: n f(x) = c x j 1 j j max (min) при условиях a x ij j () bi для i 1, m , xj 0 для всех j. j Другими словами, задача (2.6) – (2.10) имеет стандартную форму, если все переменные неотрицательны (n1 = n), а все общие ограничения являются неравенствами вида (2.9) в задаче максимизации (m1 = m2 = 0) и вида (2.8) в задаче минимизации (m1 = 0, m2 = m). При m1 = m и n1 = n получим ЗЛП в канонической форме (2.11) – (2.13)13. n f(x) = c x j 1 j j max (min) при условиях: a x ij j = bi для i 1, m ; j (2.11) (2.12) xj 0 для всех j. (2.13) Задача (2.6) – (2.10) имеет каноническую форму, если все переменные неотрицательны, а все общие ограничения являются равенствами. Для матричной записи ЗЛП введем следующие обозначения. Определения и обозначения. R – множество всех матриц размерности mп с элементами из R. 0n – нуль-вектор в Rn. В любой форме записи ЗЛП матрица A = (aij) Rmn – это матрица задачи, b = (b1, …, bm)T – вектор правых частей ограничений, с = (с1, …, сn) – вектор коэффициентов ЦФ. mn Матричная запись стандартной формы ЗЛП: cx max (min) при условиях A∙x () b и x 0n. Матричная запись канонической формы ЗЛП: cx max (min) при условиях A∙x = b и x 0n. Общая запись ЗЛП удобна при построении математической модели операции, стандартная форма хорошо интерпретируется, каноническая форма используется при решении ЗЛП симплекс-методом и в теоретическом анализе. Приводя задачу оптимизации к виду, удобному для решения или анализа, нужно обеспечивать ее сводимость к модифицированной задаче или эквивалентность этих двух задач. Формулировка точного определения сводимости14 задач оптимизации выходит за рамки нашего курса. Ограничимся следующим нестрогим определением. Определения. Задача P1 сводится к задаче P2, если существует эффективный алгоритм, который по результатам решения задачи P2 находит оптимальное решение задачи P1 или определяет, что эта задача неразрешима. Задачи P1 и P2 эквивалентны, если P1 сводится к P2 и P2 сводится к P1. Ниже мы укажем способы приведения произвольной ЗЛП к стандартной и канонической формам с сохранением эквивалентности. 13 Каноническую форму задачи ЛП называют также стандартной или основной, а стандартную – симметричной. 14 О сводимости и эквивалентности задач оптимизации см. [16, стр. 26, 27]. 19 Теорема 2.2 (переход от общей формы к стандартной)15. (а) Общая задача максимизации вида (2.6) – (2.10) эквивалентна следующей задаче в стандартной форме с вектором переменных z, компонентами которого являются xj для j 1, n1 , uj для j n1 1, n2 , vj и wj для j n2 1, n . n1 f1(z) = cjxj – j 1 n1 aij x j – j 1 n1 c ju j + j n1 1 n2 aij u j + j n1 1 – aij x j + j 1 n2 n c (v j n2 1 n a (v j n2 1 n2 ij aij u j – j n1 1 j j j w j ) max при условиях: w j ) ≤ bi для i 1, m1 m2 1, m ; n a (v j n2 1 ij j w j ) ≤ –bi для i 1, m2 ; (2.14) (2.15) (2.16) все переменные неотрицательны. (2.17) Задачи (2.6) – (2.10) и (2.14) – (2.17) разрешимы или неразрешимы одновременно. (б) Если задачи (2.6) – (2.10) и (2.14) – (2.17) разрешимы, то оптимальные значения их целевых функций совпадают. (в) Задача (2.14) – (2.17) несовместна (неограниченна) тогда и только тогда, когда несовместна (неограниченна) задача (2.6) – (2.10). Доказательство. (а) Обе части каждого из ограничений (2.8) умножим на –1 с изменением знака неравенства, а ограничение группы (2.7) с номером i 1, m1 заменим эквивалентной системой неравенств: aij x j bi и – aij x j ≤ –bi. j j Полученную ЗЛП обозначим P, она эквивалентна задаче (2.6) – (2.10), и ее общие ограничения соответствуют стандартной форме. Переменным xj с номерами j n1 1, n2 (если такие существуют) сопоставим переменные uj ≥ 0; если j n2 1, n , то переменной xj сопоставим переменные vj ≥ 0 и wj ≥ 0. В общих ограничениях и целевой функции задачи P выполним замены переменных: xj = –uj для j n1 1, n2 и xj = vj – wj для j n2 1, n . (2.18) Получим задачу (2.14) – (2.17) с вектором переменных z. Множества допустимых решений задач (2.6) – (2.10) и (2.14) – (2.17) обозначим X и Z соответственно. Пусть x = (xj | j 1, n )T X. Построим вектор z(x) с координатами xj для j 1, n1 , uj = –xj для j n1 1, n2 , vj = max{xj, 0} и wj = max{–xj, 0} для j n2 1, n . Все компоненты вектора z(x) неотрицательны и vj – wj = xj. Из построения задачи (2.14) – (2.17) следует, что z(x) Z, причем f(x) = f1(z(x)). Обратно, пусть z Z. Не изменяя xj для j ≤ n1, вычислим xj для j > n1 по формулам (2.18). Легко убедиться в том, что построенный таким образом вектор x(z) лежит в X и f(x(z)) = f1(z). * * Пусть X и Z – множества оптимальных решений задач (2.6) – (2.10) и (2.14) – (2.17) соответственно. Из доказанного следует, что x* X * эквивалентно z(x*) Z * и z* Z * эквивалентно x(z*) X *. Тогда задачи (2.6) – (2.10) и (2.14) – (2.17) эквивалентны: они разрешимы (или неразрешимы) одновременно, и по оптимальному решению одной из этих задач легко найти оптимальное решение другой. (б) Пусть x* X *. Тогда z(x*) Z *, причем f(x*) = f1(z(x*)). 15 Теорема сформулирована для задач максимизации. Используя теорему 2.1, легко получить аналогичный результат для задач минимизации. 20 (в) Несовместность задачи означает, что множество ее допустимых решений пусто. Неограниченность задачи максимизации означает, что ее ЦФ на множестве допустимых значений принимает как угодно большие значения. Из предыдущих рассуждений ясно, что {f(x) | x X} = {f1(z) | z Z}. Отсюда следует утверждение (в). # Теорема 2.3 (переход от общей формы к канонической)16. (а) Задача максимизации общего вида (2.6) – (2.10) эквивалентна следующей ЗЛП в канонической форме с вектором переменных z, компонентами которого являются xj для j 1, n1 , uj для j n1 1, n2 , vj и wj для j n2 1, n , si для i m1 1, m . n1 f1(z) = cjxj – j 1 n1 a x j 1 ij n1 aij x j – j – n2 c ju j + j n1 1 n2 a u j n1 1 ij n2 aij u j + + w j ) = bi для i 1, m1 ; (2.20) j w j ) – si = bi для i m1 1, m2 ; (2.21) j w j ) + si = bi для i m2 1, m ; (2.22) j a (v a (v n1 n2 n j n1 1 (2.19) n j n2 1 j 1 w j ) max при условиях: j n2 1 j n1 1 aij u j + c (v j n2 1 n j j 1 aij x j – n ij a (v j n2 1 ij ij j j все переменные неотрицательны. (2.23) Задачи (2.6) – (2.10) и (2.19) – (2.23) разрешимы или неразрешимы одновременно. (б) Если задачи (2.6) – (2.10) и (2.19) – (2.23) разрешимы, то оптимальные значения их целевых функций совпадают. (в) Задача (2.19) – (2.23) несовместна (неограниченна) тогда и только тогда, когда несовместна (неограниченна) задача (2.6) – (2.10). Доказательство. (а) Не изменяя ограничения (2.7), заменим неравенства (2.8) и (2.9) уравнениями aij x j – si = bi и aij x j + si = bi j j соответственно. Переменные si для i m1 1, m объявим неотрицательными.17 Получим эквивалентную исходной задачу с ограничениями-равенствами и переменными xj и si. Эту задачу заменой переменных по формулам (2.18) преобразуем к виду (2.19) – (2.23). Множества допустимых решений задач (2.6) – (2.10) и (2.14) – (2.17) обозначим X и Z соответственно. Каждому x X сопоставим вектор z(x) с координатами: xj для j 1, n1 ; uj = –xj для j n1 1, n2 ; vj = max{xj, 0} и wj = max{–xj, 0} для j n2 1, n ; а также si = | aij x j – bi| для i m1 1, m . j Легко проверить, что z(x) Z и f(x) = f1(z(x)). Пусть z Z. Построим вектор x(z) следующим образом: координаты xj для j ≤ n1 возьмем из вектора z, а значения xj для j > n1 вычислим по формулам (2.18). Понятно, что x(z) X и f(x(z)) = f1(z). Доказательство утверждения (а) завершается, как в теореме 2.2. Утверждения (б) и (в) доказываются так же, как соответствующие утверждения теоремы 2.2. # 16 Теорема сформулирована для задач максимизации. Используя теорему 2.1 легко получить аналогичный результат для задач минимизации. 17 Часто si называют переменной избытка, если m1 < i ≤ m2, и переменной недостатка, если m2 < i ≤ m. 21 Следствие 2.1.18 Для всякой ЗЛП существуют эквивалентные ей задачи в стандартной и канонической формах. Заметим, что задача в стандартной (или канонической) форме, эквивалентная данной ЗЛП, определена не единственным образом. В дальнейшем мы будем считать, что для приведения ЗЛП общего вида к стандартной (или канонической) форме использован алгоритм, указанный в доказательстве теоремы 2.2 (или теоремы 2.3). Определения. Задачу в стандартной (канонической) форме, полученную из задачи общего вида способом, который описан в доказательстве теоремы 2.2 (теоремы 2.3), назовем правильно построенной стандартной (канонической соответственно) формой исходной задачи. Доказывая теоремы 2.2 и 2.3, мы установили полезные связи между ЗЛП общего вида и ее правильно построенными стандартной и канонической формами. Сформулируем их. Следствие 2.2.19 Пусть P – произвольная ЗЛП с вектором переменных x, целевой функцией f(x) и множеством допустимых решений X, P1 – правильно построенная стандартная (или каноническая) форма задачи P с вектором переменных z, целевой функцией f1(z) и множеством допустимых решений Z. Тогда для всякого x X существует вектор z Z такой, что f(x) = f1(z), и для всякого z Z существует вектор x X такой, что f1(z) = f(x). 2.3. Экономическая интерпретация задачи линейного программирования Предположим, что объект управления в течение планового периода может в различных сочетаниях применять n технологических способов (или просто способов). Предположим также, что в реализации технологических способов участвуют ингредиенты (материальные и трудовые ресурсы, оборудование, другие факторы производства, полуфабрикаты, конечные продукты, полезности) с номерами 1, ..., m. Каждый ингредиент рассматриваемая система может производить и/или потреблять. Мерой использования технологического способа в плановом периоде является его интенсивность, определенная в соответствии с содержанием способа и принимающая неотрицательные действительные значения. Обычно интенсивность использования способа характеризуют объемом производства или потребления (за рассматриваемый период) какого-то (основного для данного способа) ингредиента. Пусть xj 0 – интенсивность использования способа j (xj = 0 означает, что способ не применяется). Тогда вектор x = (x1, ..., xn)T естественно назвать планом деятельности объекта управления. Выбор плана – задача управляющей системы. Пусть gi(x) – чистое потребление ингредиента i за плановый период при плане x (разность потребления и производства); gi(x) < 0 означает, что в системе к концу периода образуется избыток ингредиента i, равный |gi(x)|. В начале периода система имеет запас bi ингредиента i; bi < 0 означает, что система управления имеет обязательство по поставкам ингредиента i во внешнюю среду (в течение планового периода) в размере |bi|. Допустим, что план x дает системе (в течение планового периода) полезность (например, прибыль или условно чистый доход) f(x). Модель для выбора оптимального плана запишем следующим образом. f(x) max при условиях: gi(x) bi для i 1, m , x 0n. 18 19 Доказательство очевидно (см. теоремы 2.2 и 2.3). Доказательство очевидно (см. теоремы 2.2 и 2.3). 22 (2.24) Это задача нелинейного программирования. Смысл ограничения (2.24) зависит от знака bi. Неотрицательное bi – это исходный запас ингредиента i, потребление не должно его превышать. Если же bi < 0, то и левая часть неравенства должна быть отрицательной. В таком случае |bi| мы интерпретируем как обязательство: внешнее (по поставке ингредиента i во внешнюю для системы среду) или внутреннее (по накоплению ингредиента i в системе). Условие (2.24) в этом случае удобно записать в виде –gi(x) |bi|: чистое производство ингредиента должно покрывать запланированные поставки. Для того чтобы задачу планирования можно было формализовать в виде задачи линейного программирования, должны выполняться следующие условия. Делимость. Если способ может применяться с интенсивностями a и b (a < b), то его можно применять с любой интенсивностью x [a, b]. Пропорциональность. Затраты, выпуски и полезность, производимые каждым способом, пропорциональны его интенсивности. Аддитивность. Затраты и выпуски ингредиента, производимые разными способами, суммируются; полезность, производимая разными способами, тоже суммируется. Предположим, что перечисленные условия выполняются. Из принципа пропорциональности следует, что затраты, выпуски и полезность, порождаемые каждым способом, зависят от его интенсивности и не зависят от интенсивностей других способов. Пусть aij – удельное потребление ингредиента i технологическим способом j; aij < 0 означает, что способ j при единичной интенсивности производит |aij| единиц ингредиента i. Пусть xj – интенсивность использования технологического способа j, cj – его удельная (при единичной интенсивности) полезность. Из сформулированных выше свойств системы управления с очевидностью следует, что чистое потребление ингредиента i 1, m и целевая функция задачи принимают вид gi(x) = a x ij j и f(x) = j c x j j . j Теперь можем записать задачу планирования следующим образом: f(x) = c j x j max при условиях: aij x j bi для i 1, m , x 0n. j j Получили ЗЛП в стандартной форме. Ее целевая функция описывает суммарную полезность плана x, левая часть ограничения с номером i – это чистое потребление ингредиента i при плане x. Обозначения. Столбец с номером j и строку с номером i матрицы A обозначим [A]j и [A]i соответственно. Столбец [A]j дает технологическое описание способа j деятельности системы, указывая, в каких количествах потребляются/производятся ингредиенты при единичной интенсивности использования этого способа. Величина cj (удельная полезность) добавляет к этому описанию экономическую компоненту. Введем вектор переменных недостатка s = (si | i 1, m ) и перейдем к правильно построенной канонической форме20: c j x j max при условиях: aij x j + si = bi для i 1, m , x 0n, s 0m. j j Если bi 0, то si – это неиспользованный при плане x остаток ингредиента i. Если bi < 0, то si есть объем производства ингредиента i сверх обязательства |bi|. 20 См. раздел 2.2. 23 2.4. Свойства задачи линейного программирования 2.4.1. Общие свойства Определения. Многогранное множество – это совокупность всех решений системы линейных уравнений и нестрогих линейных неравенств. Ограниченное многогранное множество называется многогранником. Вектор x Rn является выпуклой линейной комбинацией или взвешенным средним векторов x1, …, xk из Rn, если k x= ai xi , где ai ≥ 0 для i 1, k и i 1 k a = 1. i 1 i Множество M Rn выпукло, если любая выпуклая линейная комбинация точек из M принадлежит этому множеству. Множество всех выпуклых линейных комбинаций векторов x0 и x1 из Rn – это отрезок [x0, x1] с концами x0 и x1; [x0, x1] = {(1 – )x0 + x1 | [0, 1]}. (x0, x1) = [x0, x1] \ {x0, x1} – множество внутренних точек отрезка. Точка множества называется угловой (крайней, экстремальной), если она не является внутренней точкой никакого отрезка, лежащего в этом множестве. Угловые точки многогранного множества называют вершинами. Теорема 2.4 (о выпуклости многогранного множества)21. Всякое многогранное множество выпукло. Теорема 2.5 (о свойствах ЗЛП). Множество допустимых и множество оптимальных решений ЗЛП (2.6) – (2.10) обозначим X и X * соответственно. (а) X и X * – многогранные и, следовательно, выпуклые множества.22 (б) Число угловых точек (вершин) множества X конечно.23 (в) X * (задача разрешима), если и только если она совместна и ограниченна24. (г) Если задача (2.6) – (2.10) включает условие неотрицательности всех переменных (например, записана в стандартной или канонической форме) и X * , то в X * есть угловая точка множества X.25 Утверждения (а) и (б) характеризуют структуру множеств X и X *. Утверждение (в) дает критерий разрешимости ЗЛП. Из утверждения (г) следует, что решения ЗЛП в канонической форме можно искать среди вершин множества ее допустимых решений, а их – конечное число по утверждению (б). Можно предположить, что решение любой ЗЛП упростится, если предварительно привести ее к канонической форме, используя теорему 2.3. 2.4.2. Свойства задачи в канонической форме В этом разделе будем изучать задачу линейного программирования P в канонической форме (2.11) – (2.13) с ограничениями Ax = b (где A Rm×n, b Rm) и x ≥ 0n. Нас интересуют, конечно, разрешимые задачи. В таких задачах система уравнений Ax = b совместна. Теорема 2.6 (исключение зависимых ограничений).26 Если система уравнений Ax = b совместна и одна из строк матрицы A линейно зависит от других, то исключение соответствующего уравнения не изменяет множество решений системы. 21 Доказательство в приложении 1. Доказательство оставляем читателю в качестве упражнения. 23 Доказательство: [17, теорема 2.19]. 24 Доказательство для канонической формы: [18, стр. 155, теорема 1]. Утверждения (а) и (б) теоремы 2.3 позволяют распространить утверждение на ЗЛП общего вида. 25 Более общий результат доказан в [19] (следствие 32.3.1). 26 Доказательство этого почти очевидного утверждения приведено в [11] (замечание 22 на стр. 109). 22 24 Из теоремы 2.6 следует, что если задача P совместна, то, исключив из нее «лишние» ограничения, можно получить эквивалентную задачу, в матрице которой все строки линейно независимы. Поэтому, рассматривая совместную задачу в канонической форме, мы часто будем предполагать, что строки матрицы задачи линейно независимы. Заметим, что линейная независимость строк матрицы A гарантирует27 разрешимость системы уравнений Ax = b, при этом задача (2.11) – (2.13) может быть несовместной (если система уравнений не имеет неотрицательных решений). В соответствии с утверждением (г) теоремы 2.5 оптимальное решение ЗЛП в канонической форме достаточно искать среди угловых точек множества ее допустимых решений. Поэтому желательно найти описание таких точек, более удобное, чем то, которое содержится в определении угловой точки. Определения и обозначения. Пусть A Rm×n. rank(A) – ранг матрицы A. Базис матрицы A – это максимальный набор ее линейно независимых столбцов. Будем записывать базис матрицы в виде упорядоченного набора столбцов: β = ([A]j(1,β), …, [A]j(r,β)), где r = rank(A), j(i, β) – номер в матрице A столбца, занимающего позицию i в базисе β. Для упрощения обозначений будем писать j(i) вместо j(i, β), где это допустимо. Лемма 2.1. Если строки матрицы A линейно независимы, то m ≤ n, rank(A) = m, всякий базис матрицы A состоит из m линейно независимых столбцов и всякая базисная матрица является квадратной и невырожденной. Доказательство. Ранг матрицы равен максимальному числу линейно независимых строк и максимальному числу линейно независимых столбцов в этой матрице.28 Тогда ранг матрицы A равен m и в ней есть хотя бы m столбцов, откуда следует, что m ≤ n. Остальные утверждения легко следуют из определений. # Определения и обозначения. Пусть A Rm×n – матрица задачи P, строки матрицы линейно независимы, β = ([A]j(1), …, [A]j(m)) – базис матрицы29. Множество N(β) = {j(i) | i 1, m } называют базисным множеством, а переменные задачи P с номерами jN(β) – базисными переменными. Относительно базиса β любой вектор x размерности n1 (столбец) или 1n (строку) можно разбить30 на базисную часть xб(β) и небазисную часть xн(β). Базисная часть состоит из координат вектора x с номерами j N(β) в том порядке, в котором соответствующие столбцы входят в базис. Небазисная часть состоит из координат вектора x с номерами j N(β) в том порядке, в котором соответствующие столбцы входят в матрицу A. Базисная и небазисная части вектора-столбца (вектора-строки) тоже являются столбцами (строками). Решение x системы уравнений Ax = b, для которого xн(β) = 0n–m (небазисные координаты вектора x равны нулю), – это базисный вектор задачи P, порожденный базисом β, обозначим его x(β). Матрицу B(β) составленную из столбцов базиса β в том порядке, в котором они входят в базис, называют базисной матрицей31. Обратная базисная матрица B–1(β) – это матрица, обратная к базисной.32 Матрицу, составленную из небазисных столбцов матрицы A в том порядке, в котором они входят в A, обозначим M(β). 27 По теореме Кронекера-Капелли, см. [20, §5, теорема 1] См. [20, §4] (теорема 2 и следствие из нее). 29 В базисе m столбцов по лемме 2.1. 30 Вспомним, что m ≤ n по лемме 2.1. 31 Это квадратная матрица по лемме 2.1. 32 Она существует по лемме 2.1. 28 25 Мы будем опускать явное указание на базис β и писать M, B, B–1, xб, xн вместо M(β), B(β), B (β), xб(β), xн(β), если это не приводит к разночтениям. –1 Следствие 2.3. Пусть A Rm×n – матрица задачи P и строки матрицы A линейно независимы. Каждый базис β матрицы A порождает единственный базисный вектор x = x(β) задачи P, который определяется следующим образом: xб(β) = B–1(β)b и xн(β) = 0n–m. Доказательство. Пусть β – базис матрицы A. Систему ограничений задачи P можно записать в виде Bxб + Mxн = b. Если x = x(β), то xн = 0n–m по определению. Тогда xб = B–1b. # Заметим, что базисный вектор задачи (2.25) удовлетворяет ее общим ограничениям, но может нарушать условие неотрицательности. Поэтому нужно следующее определение. Определение. Пусть A Rm×n – матрица задачи P, строки матрицы линейно независимы, β – ее базис. Если x = x(β) и xб(β) ≥ 0m, то β – допустимый базис, а x – базисное допустимое решение (БДР)33 задачи P. Теорема 2.7 (алгебраическое описание угловых точек).34 Пусть X – множество допустимых решений задачи P в канонической форме и строки матрицы задачи линейно независимы (rank(A) = m). Тогда угловыми точками множества X являются БДР задачи P, и только они. Следствие 2.4. В условиях теоремы 2.7 задача P совместна, если и только если у нее есть БДР. Доказательство. Если задача P имеет БДР x, то X ≠ , задача совместна. Теперь допустим, что задача P совместна, X ≠ . Рассмотрим задачу P1, ограничения которой совпадают с ограничениями задачи P, а ЦФ тождественно равна нулю. Множество оптимальных решений задачи P1 равно X и, следовательно, непусто. Тогда по утверждению (г) теоремы 2.5 у множества X есть угловая точка. По теореме 2.7 это БДР задачи P. 2.5. Основные идеи симплекс-метода Используя результаты разделов 2.1 и 2.4, можно предложить следующий подход к решению ЗЛП общего вида. Приведем задачу к канонической форме.35 Проверим совместность системы уравнений (общих ограничений канонической формы). Если система несовместна, то и задача несовместна. Если система уравнений совместна, то исключим линейно зависимые уравнения.36 Получим задачу P, эквивалентную исходной ЗЛП, пусть A Rm×n – матрица задачи P. Каждый базис матрицы A содержит m столбцов по лемме 2.1. Из наборов по m столбцов матрицы A выберем все линейно независимые. Это базисы матрицы. Для каждого базиса построим базисный вектор. Неотрицательные базисные векторы – это БДР задачи P. Если их нет, то задача несовместна по следствию 2.4. Допустим, что задача совместна (БДР существуют). Если задача ограниченна, то она разрешима по утверждению (в) теоремы 2.5. Тогда, по утверждению (г) той же теоремы, среди решений задачи P есть угловая точка множества допустимых решений, и это БДР по теореме 2.7. Следовательно, оптимальным решением задачи является БДР, на котором ЦФ принимает наибольшее значение. Необходимость проверки всех наборов по m из n столбцов матрицы A делает изложенный выше алгоритм слишком трудоемким. Процедуру можно ускорить, если организовать ее так, чтобы в процессе перебора БДР значение ЦФ не убывало (последовательное улучшение плана). Эту идею реализует симплекс-метод. 33 Эквивалентный термин – опорный план. Доказательство более общей теоремы (при rank(A) ≤ m) см., например, в [18, стр. 118, теорема 1]. Пример 2.1 раздела 29 иллюстрирует теорему 2.7. 35 В соответствии с теоремой 2.3. 36 См. теорему 2.6. 34 26 2.5.1. Приведение задачи к данному базису Рассмотрим ЗЛП в канонической форме: f(x) = cx → max при условиях Ax = b и x ≥ 0n, (2.25) где A = (aij | i 1, m , j 1, n ), x = (xj | j 1, n ) , b = (bi | i 1, m ) , c = (cj | j 1, n ). Будем считать, что строки матрицы A линейно независимы. Зафиксируем базис β матрицы A (по лемме 2.1 он состоит из m столбцов) и преобразуем задачу к виду, удобному для дальнейших рассуждений. T T Обозначения. A(β) = B–1(β)A = (aij(β) | i 1, m , j 1, n ) Rm×n. b(β) = B–1(β)b = (bi(β) | i 1, m )T Rm. z(β) = с – cб(β)A(β) = (zj(β) | j 1, n ) R1×n. F(β) = cб(β)b(β) R. Обозначим P(β) следующую ЗЛП: f(x; β) = z(β)x + F(β) → max при условиях A(β)x = b(β) и x ≥ 0n.37 Лемма 2.2 описывает специфическую структуру задачи P(β). Лемма 2.2. Пусть β = ([A]j(1), …, [A]j(m)). (а) Общее ограничение с номером i 1, m задачи P(β) имеет вид xj(i) + a (β) x jN (β ) ij j = bi(β) (2.26) (базисная переменная xj(i) входит в уравнение i с коэффициентом 1 и не входит в другие уравнения). m (б) zj(β) = с j c j (i ) aij (β) для всех j, причем zj(β) = 0 для j N(β) i 1 (целевая функция выражена через небазисные переменные). Доказательство. (а) Общие ограничения задачи P(β) имеют вид A(β)x = b(β). Столбец j матрицы A(β) получается умножением строк матрицы B–1 на соответствующий столбец матрицы A: [A(β)]j = [B–1A]j = B–1[A]j. Если j = j(i) N(β), то [A]j = [B]i (позицию i в матрице B занимает столбец j(i) матрицы A). Тогда [A(β)]j(i) = B–1[B]i = [B–1B]i = ei. Это доказывает утверждение (а). (б) По определению сб = (cj(i) | i 1, m ). Тогда m zj(β) = [с – cб(β)A(β)]j = cj – [cб(β)A(β)]j = cj – cб(β)[A(β)]j = с j c j (i ) aij (β) . i 1 Пусть j = j(i) N(β). В пункте (а) мы доказали, что [A(β)] = ei. Тогда cб(β)[A(β)]j(i) = cj(i) и zj(i)(β) = 0. # j(i) Определения. Переход от задачи P к задаче P(β) будем называть приведением задачи P к базису β. Задача P(β) – это задача P, приведенная к базису β. Последнее определение оправдано тесными связями, которые, как показывает следующая теорема, существуют между задачами P и P(β). 37 Здесь мы немного расширяем определение ЗЛП (см. раздел 2.2), допуская, что ЦФ задачи может содержать постоянное слагаемое. Понятно, что такое слагаемое не изменяет множества допустимых и оптимальных решений задачи. 27 Теорема 2.8 (о свойствах задачи, приведенной к базису β). Пусть β – базис матрицы A, X – множество допустимых решений задачи P, x(β) = (xj(β) | j 1, n )T – базисный вектор, порожденный базисом β. (а) Множества допустимых решений задач P и P(β) совпадают. (б) Целевые функции задач P и P(β) совпадают на множестве X. (в) Задачи P и P(β) эквивалентны. (г) Базисная часть вектора x(β) относительно базиса β равна b(β). (д) Если базис β является допустимым, то b(β) ≥ 0m и f(x(β)) = F(β). Доказательство. (а) Умножив обе части векторного равенства Ax = b слева на обратную базисную матрицу, получим эквивалентную систему уравнений (B–1A)x = B–1b, или (2.27) A(β)x = b(β). Отсюда следует, что множества допустимых решений задач P и P(β) совпадают. (б) Пусть xX. Тогда для x выполнено равенство (2.27). Поэтому f(x) = сх = сх – сб[A(β)x – b(β)] = [с – сбA(β)]x + cб(β)b(β) = z(β)x + F(β) = f(x; β). (в) Из утверждений (а) и (б) следует, что разрешимость задачи P эквивалентна разрешимости задачи P(β) и множества их оптимальных решений (возможно, пустые) совпадают. Поэтому задачи P и P(β) эквивалентны. (г) Из определений векторов x(β) и b(β) видим, что b(β) = B–1b и базисная часть вектора x(β) относительно базиса β тоже равна B–1b. (д) Для допустимого базиса β имеем x(β)X и f(x(β)) = f(x(β); β) по утверждению (б). Базисная часть вектора x(β) равна b(β) по утверждению (г) и неотрицательна, так как x(β) X. Если j N(β), то zj(β) = 0 по утверждению (б) леммы 2.2; если j N(β), то xj(β) = 0. Поэтому f(x(β); β) = F(β). #. Процедуру приведения задачи P к базису β можно представить следующим образом. Сначала систему уравнений Ax = b приводим к виду (2.26) умножением слева на обратную базисную матрицу. Затем из (2.26) выражаем базисные переменные через небазисные и полученные выражения подставляем в ЦФ, вследствие чего она принимает вид f(x; β).38 В следующем разделе мы увидим, что из задачи P(β) можно извлечь информацию, полезную для решения задачи P. 2.5.2. Признак оптимальности и признак неограниченности В этом разделе будем рассматривать задачу P(β), которая является результатом приведения задачи P вида (2.25) к допустимому базису β. По-прежнему считаем строки матрицы задачи линейно независимыми. Теорема 2.9 (признак оптимальности). Если β – допустимый базис и zj(β) ≤ 0 для всех j в задаче P(β), то x(β) – оптимальное решение задачи P. Доказательство. Пусть zj(β) ≤ 0 для всех j и x – допустимое решение задачи P(β). Тогда x ≥ 0n, zj(β)xj ≤ 0 для всех j и f(x; β) = z j (β) x j + F(β) ≤ F(β). j При этом f(x) = f(x; β) по утверждению (б) теоремы 2.8 и f(x(β)) = F(β) по утверждению (д) теоремы 2.8. Следовательно, x(β) – оптимальное решение задачи P. # В некоторых случаях задача P(β) позволяет выявить неограниченность задачи P. Теорема 2.10 (признак неограниченности). Если β – допустимый базис и существует номер s такой, что zs(β) > 0 и ais(β) ≤ 0 для всех i, то задача P неограниченна. 38 В явном виде эта подстановка выполнена в [11, §4.5.4]. 28 Доказательство. Допустим, что zs(β) > 0 и ais(β) ≤ 0 для некоторого s и всех i. Множества допустимых решений задач P и P(β) обозначим X и X(β) соответственно. Пусть x(β) = (xj(β) | j 1, n ) – БДР, порожденное базисом β. Из (2.26) следует, что столбцы матрицы A(β) с номерами из N(β) являются единичными, поэтому s N(β). Тогда xs(β) = 0 по определению базисного вектора. Определим вектор v Rn следующим образом: vs = 1, vj(i) = –ais для i 1, m , vj = 0 для j N(β) {s}. Пусть u(ε) = x(β) + εv. Легко проверить, что u(ε) X(β) для всех ε [0, +∞). По утверждению (б) леммы 2.2 имеем zj(β) = 0 для j N(β). Поэтому f(u(ε); β) = z(β)u(ε) + F(β) = z(β)x(β) + ε z j (β)v j + F(β) = F(β) + εzs(β). j Следовательно, f(u(ε); β) → +∞ при ε → +∞, функция f(u(ε); β) неограниченно растет на множестве X(β). Из утверждений (а) и (б) теоремы 2.8 следует, что функция f(x) на множестве X принимает как угодно большие значения, задача P неограниченна. # Применение теоремы 10 см. в примере 2.3 раздела 2.9. Для выяснения геометрического смысла теоремы 2.10 введем следующее определение. Определение. Пусть x0 Rn, v Rn \ {0n}. Множество {x0 + v | R+} – это луч в Rn, выходящий из точки x0 в направлении v. Если для допустимого базиса β выполнен признак неограниченности, то доказательство теоремы 2.10 дает способ построения ненулевого вектора v ≥ 0n такого, что все точки луча, выходящего из БДР x(β) в направлении v, являются допустимыми решениями задачи и ЦФ задачи неограниченно растет при движении вдоль этого луча от точки x(β). Следствие 2.5.39 Пусть задача P(β) является результатом приведения задачи P вида (2.25) к допустимому базису β. Если для задачи P(β) не выполняется ни признак оптимальности (теорема 2.9), ни признак неограниченности (теорема 2.10), то: (а) zs(β) > 0 для некоторых значений s; (б) если zs(β) > 0, то существует r такое, что ars(β) > 0. 2.5.3. Переход к смежному базису Рассматриваем задачу P вида (2.25) с матрицей A ранга m. Пусть β = ([A]j(1), …, [A]j(m)) – базис матрицы A и P(β) – результат приведения задачи P к базису β. Лемма 2.3. Пусть β – базис матрицы A, s N(β) и ars(β) ≠ 0 в задаче P(β). Если в базисе β столбец [A]j(r) заменить столбцом [A]s, то получим базис β′ матрицы A, отличный от β. Доказательство. По условию мы исключаем из базиса столбец j(r) и к оставшемуся набору столбцов добавляем столбец s. Полученный набор столбцов обозначим β′, множество номеров столбцов из β′ обозначим N(β′). Ясно, что N(β′) = (N(β) \ {j(r)}) {s}. Из s N(β) следует, что β′ ≠ β. Столбцы матрицы A(β) с номерами из N(β) \ {j(r)} имеют нули в строке r по утверждению (а) леммы 2.2, но ars(β) ≠ 0 по условию. Поэтому столбец [A(β)]s линейно независим от столбцов матрицы A(β) с номерами из множества N(β) \ {j(r)}. Тогда столбцы с номерами из N(β′) образуют базис матрицы A(β), которая получена из A невырожденным линейным преобразованием, сохраняющим линейную независимость векторов. Следовательно, β′ является базисом матрицы A. # Определение. Базисы β и β′ матрицы A называют смежными, если все столбцы базиса β, кроме одного, совпадают с соответствующими столбцами базиса β′. 39 Доказательство (с использованием теорем 2.9 и 2.10) поручаем читателю. 29 Лемма 2.3 дает способ порождения базисов, смежных с базисом β. Если такой базис β′ зафиксирован, то известна его базисная матрица и можно привести задачу P к этому базису, как описано в разделе 2.5.1. Ниже мы покажем, как построить задачу P(β′), используя задачу P(β), а не P. Теорема 2.11 (о переходе к смежному базису).40 Пусть zs(β) ≠ 0, s ≠ j(r) и ars(β) ≠ 0 в задаче P(β), а базис β′ получен из базиса β заменой столбца [A]j(r) столбцом [A]s. Положим arj (β)ais (β) arj (β ) aij = aij(β) – для i ≠ r, j ≠ s; arj = для всех j; ais = 0 для i ≠ r; ars (β) ars (β ) br (β)ais (β) b (β ) для i ≠ r, br = r ; ars (β) ars (β ) z s (β)arj (β) z (β)br (β) z j = zj(β) – для j ≠ s, z s = 0; F ′ = F(β) + s ; ars (β) ars (β) bi = bi(β) – (2.28) A′ = ( aij | i 1, m , j 1, n ); b′ = ( bi | i 1, m )T, z′ = ( z j | j 1, n ). Тогда A(β′) = A′, b(β′) = b′, z(β′) = z′ и F(β′) =F ′. Другими словами, результатом приведения задачи P к базису β′ является следующая задача P(β′): f(x; β′) = z′x + F ′ → max при условиях A′x = b′, x ≥ 0n. Теорема 2.11 дает формулы, выражающие параметры задачи P(β′) через параметры задачи P(β). Эти формулы можно получить следующим образом: выразить xs из уравнения с номером r задачи P(β) и полученное выражение подставить в другие уравнения и в ЦФ этой задачи.41 Определения. Рассмотрим систему линейных уравнений Ax = b с матрицей A = (aij). Если ars ≠ 0, то можно выразить переменную xs из уравнения с номером r и подставить полученное выражение в другие уравнения. Получим систему уравнений, эквивалентную исходной и не содержащую переменной xs. Описанная выше процедура – это жорданово исключение с направляющим столбцом s, направляющей строкой r и разрешающим элементом ars. 2.5.4. Улучшение плана Пусть задача P имеет вид (2.25), rank(A) = m, β = ([A]j(1), …, [A]j(m)) – допустимый базис матрицы A, P(β) – результат приведения задачи P к базису β и x(β) – БДР задачи P, порожденное базисом β. Если выполняется признак оптимальности (теорема 2.9) или признак неограниченности (теорема 2.10), то решение задачи P закончено. В противном случае, поскольку оптимальный план не найден и неразрешимость задачи P не доказана, нужно продолжать анализ задачи, например, перейти к смежному базису. Из предыдущего раздела ясно, что выбор смежного базиса эквивалентен выбору разрешающего элемента, то есть направляющего столбца и направляющей строки. Теорема 2.12 (ниже) указывает, как следует их выбрать, чтобы: (а) базис β′ и порожденный им базисный вектор x(β′) задачи P были допустимыми; (б) значение ЦФ задачи P не убывало при переходе от x(β) к x(β′). Определение. БДР x(β) и базис β называются вырожденными, если в базисной части вектора x(β) есть хотя бы одна нулевая координата, и невырожденными – в противном случае. Теорема 2.12 (о переходе к смежному базису).42 Пусть β – допустимый базис матрицы A задачи P вида (2.25), rank(A) = m, P(β) – результат приведения задачи P к базису β, s ≠ j(r) и 40 Доказательство см. в приложении 2. Доказательство см. в [11, стр. 146 – 147]. 42 Доказательство в приложении 3. 41 30 набор столбцов β′ получен из β заменой столбца [A]j(r) на столбец [A]s. Предположим, что ars(β) > 0, zs(β) > 0 и br(β)/ars(β) ≤ bi(β)/ais(β) для всех i таких, что ais(β) > 0. Тогда (а) β′ – допустимый базис матрицы A и x(β′) – БДР задачи P; (б) f(x(β′)) ≥ f(x(β)); (в) если x(β) – невырожденное БДР, то f(x(β′)) > f(x(β)). Если β – допустимый базис и для задачи P(β) не выполняется ни признак оптимальности, ни признак неограниченности, то зафиксируем s такое, что zs(β) > 043. На конечном (и непустом по следствию 2.5) множестве индексов i, для которых ais(β) > 0, найдем минимум отношения bi(β)/ais(β). Положим r равным тому i, на котором достигается минимум. Тогда все условия теоремы 2.12 будут выполнены. Найдем допустимый план x(β′). По значению ЦФ он не хуже плана x(β) и лучше его, если x(β) – невырожденное БДР. Геометрически переход к смежному допустимому базису означает «движение» от вершины x(β) многогранного множества допустимых решений к вершине x(β′) по ребру, соединяющему эти вершины. 2.5.5. Вычислительная схема, конечность и трудоемкость симплекс-метода Решая задачу P вида (2.25), симплекс-метод осуществляет перебор допустимых базисов матрицы A и соответствующих БДР задачи P. Это направленный перебор, так как значения ЦФ на последовательных БДР не убывают. Последовательность операций при реализации симплекс-метода изображена на рис. 4 (раздел 2.5.6). Симплекс-метод начинает решение задачи P с задачи P(β1) для некоторого исходного допустимого базиса β1 (способ построения исходного базиса обсудим в разделе 2.5.6). Предположим, что построен очередной допустимый базис βk. По следствию 2.4 задача P совместна. Тогда, по утверждению (в) теоремы 2.5, она либо неограниченна, либо разрешима. По базису βk легко построить соответствующее БДР x(βk).44 Если для задачи P(βk) выполняется признак оптимальности или признак неограниченности, то решение задачи P на этом закончено. Допустим, что ни один из указанных признаков не выполнен для задачи P(βk). Тогда по следствию 2.5 существуют номера s и r такие, что zs(βk) > 0 и ars(βk) > 0. Из теоремы 2.12 следует, что, при правильном выборе разрешающего элемента, в результате замены столбца, занимающего позицию r в базисе βk, столбцом [A]s получим очередной допустимый базис βk+1, причем f(x(βk+1)) ≥ f(x(βk)). Описанную последовательность операций называют итерацией симплекс-метода. Базис βk порождает БДР x(βk). Если все эти БДР невырожденны, то они различны, так как f(x(βk+1)) > f(x(βk)) для всех k по теореме 2.12. Но число БДР конечно45. Поэтому процедура завершится за конечное число итераций. Если в последовательности x(βk) есть вырожденные БДР, то возможно зацикливание, при котором, начиная с некоторой итерации, базисы циклически повторяются. Исключить зацикливание удается благодаря тому, что номера направляющего столбца и направляющей строки, удовлетворяющие условиям теоремы 2.12, определены, вообще говоря, не однозначно. Существуют различающиеся правилами выбора разрешающего элемента варианты симплекс-метода, которые, допуская повторение БДР, исключают повторение базисов. Чаще всего используют лексикографический симплекс-метод46 или правило Блэнда47. Поскольку число базисов конечно (не больше числа сочетаний из n по m), симплекс-метод и в этом случае закончит работу за конечное число итераций. 43 Существует по следствию 2.5. См. следствие 2.3. 45 См. утверждение (б) теоремы 2.5 и теорему 2.7. 46 См. [21, раздел 2.3.2]. 47 Там же, раздел 2.3.3. 44 31 Из описания симплекс-метода ясно, что он завершает работу, только если выполняется признак оптимальности или признак неограниченности. Следовательно, если найден исходный допустимый базис, то симплекс-метод за конечное число итераций либо найдет базисное оптимальное решение задачи P, либо сообщит, что задача неограниченна. Трудоемкость (число итераций) симплекс-метода для конкретной ЗЛП существенно зависит от правила выбора разрешающего элемента. Почти для всех описанных в литературе вариантов симплекс-метода построены примеры с экспоненциальной зависимостью трудоемкости от размерности задачи: числа общих ограничений (m) и числа переменных (n). Однако вопрос о том, существует ли правило выбора разрешающего элемента, обеспечивающее полиномиальную зависимость трудоемкости симплекс-метода от размерности задачи, все еще открыт. Замечательным свойством симплекс-метода является его хорошее поведение «в среднем». В обширных вычислительных экспериментах показано, что среднее число итераций линейно зависит от размерности задачи.48 2.5.6. Проверка совместности задачи и построение исходного базиса Для применения симплекс-метода к ЗЛП в канонической форме нужен исходный допустимый базис. Если он существует, то задача совместна по следствию 2.4. Поэтому в ходе построения исходного базиса проверяется совместность задачи. В некоторых задачах исходный базис очевиден. Пусть, например, исходная ЗЛП записана в стандартной форме с максимизируемой ЦФ и неотрицательными правыми частями ограничений. Переходя к канонической форме, мы введем переменные недостатка49, столбцы которых образуют допустимый базис. В общем случае обычно применяют метод искусственного базиса (другое название – двухфазный метод), который кратко описан ниже. Пусть дана задача P вида (2.25): f(x) = cx → max при условиях Ax = b и x ≥ 0n. Здесь мы не требуем, чтобы строки матрицы A были линейно независимы, но предполагаем, что b ≥ 0m (этого можно добиться, умножив некоторые уравнения на –1). Для каждого i 1, m в левую часть уравнения с номером i введем неотрицательную вспомогательную переменную ti и положим t = (ti | i 1, m ). Рассмотрим следующую ЗЛП P0: m f0(x, t) = t i 1 i → min при условиях Ax + t = b, x ≥ 0n, t ≥ 0m. Проверку совместности задачи P обеспечивает следующая теорема. Теорема 2.13 (критерий совместности задачи). (а) Задача P0 разрешима. (б) Задача P совместна тогда и только тогда, когда оптимальное значение ЦФ в задаче P0 равно нулю. Доказательство. (а) Задача P0 имеет допустимое решение (x0, t0) = (0n, b). Значения функции f0(x, t) на множестве допустимых решений задачи ограничены сверху нулем. Следовательно, задача P0 разрешима по утверждению (в) теоремы 2.5. (б) Если задача P имеет допустимое решение x0, то (x0, 0m) – допустимое решение задачи P0, причем f0(x0, 0m) = 0. Это оптимальное значение ЦФ в задаче P0, так как f0(x, t) ≥ 0 для всех допустимых пар (x, t). Обратно, пусть (x*, t*) – оптимальное решение задачи P0, которое существует по утверждению (а), и f0(x*, t*) = 0. Но f0(x*, t*) – это сумма неотрицательных ко- 48 49 Подробней о трудоемкости симплекс-метода см. [21, раздел 2.8], [22, sections 11.3 – 11.5]. См. теорему 2.3. 32 ординат вектора t*, поэтому t* = 0m. Понятно, что в этом случае x* – допустимое решение задачи P. # Начало: дана ЗЛП в канонической форме нет Допустимый базис существует? Задача несовместна да Построение базиса β1, k ≔ 1 Приведение задачи к базису βk Признак оптимальности выполняется? да Найдено оптимальное решение x(βk) нет Задача неограниченна Признак неограниченности выполняется? нет Выбор базиса βk+1, k ≔ k + 1 Конец Рис. 4. Принципиальная схема симплекс-метода На рис. 4 изображена принципиальная схема симплекс-метода. Нам осталось обсудить начало процедуры в случае совместности задачи: построение исходного допустимого базиса. Матрица A0 задачи P0 состоит из столбцов матрицы A и единичных столбцов коэффициентов при вспомогательных переменных. Строки матрицы задачи линейно независимы. Столбцы вспомогательных переменных образуют базис β0 матрицы A0, который порождает допустимое решение (x0, t0) = (0n, b). Симплекс-метод, начиная с допустимого в задаче P0 базиса β0, найдет ее оптимальное базисное решение. Пусть β* – оптимальный базис задачи P0, (x*, t*) – соответствующее оптимальное решение. Если f0(x*, t*) > 0, то задача P несовместна по теореме 2.13. Значение f0(x*, t*) можно в этом случае интерпретировать как «меру несогласованности» ограничений задачи P. Предположим, что f0(x*, t*) = 0. Тогда t* = 0m и задача P совместна. В этом случае задача * P0(β ), которая является результатом приведения задачи P0 к базису β*, используется для выявления линейно зависимых строк матрицы задачи P (если они есть): в соответствующих уравнениях задачи P0(β*) правые части и коэффициенты при переменных xj равны нулю. Удалив линейно зависимые уравнения из исходной задачи P, получим эквивалентную задачу P1. Затем базис β* по несложным правилам50 преобразуется в допустимый базис β1 задачи P1, порождающий БДР этой задачи. С базиса β1 можно начинать решение задачи P1 симплексметодом. Описанный выше алгоритм (с модификациями, ускоряющими приведение задачи к текущему базису) реализован в надстройке «Поиск решения» пакета программ MS Excel. Пример решения ЗЛП симплекс-методом с применением метода искусственного базиса см. в разделе 2.9 (пример 2.2). 50 Полное изложение и обоснование метода искусственного базиса: [23, стр. 152 – 154], [21, раздел 2.4]. 33 2.6. Двойственность в линейном программировании Каждой ЗЛП (которую в этом контексте называют прямой задачей) соответствует так называемая двойственная задача, которая тоже является задачей линейного программирования. Связи между прямой и двойственной задачами важны для теории линейного программирования и для прикладного экономического анализа. 2.6.1. Экономическая мотивация построения двойственной задачи Рассмотрим ЗЛП в стандартной форме: (2.29) f(x) = cx → max при условиях Ax ≤ b и x ≥ 0n. Упрощая изложенную в разделе 2.3 экономическую интерпретацию этой задачи, предположим, что моделируемая система – это предприятие, применяющее однопродуктовые технологические способы: способ j 1, n производит продукт j. Интенсивность использования способа будем измерять количеством произведенного продукта, тогда xj – это плановый объем производства продукта j. В список ингредиентов включим только используемые предприятием ресурсы (с номерами i 1, m ). Тогда aij – расход ресурса i на единицу продукта j (удельная ресурсоемкость), bi ≥ 0 – наличие ресурса i. Предположим сначала, что предприятие максимизирует выручку. Тогда cj – цена продукта j. Допустим, что некто хочет купить имеющиеся на предприятии ресурсы. Если потенциальный покупатель заплатит yi за единицу ресурса i, то суммарный платеж составит m h(y) = yb i 1 i i = yb, где y = (yi | i 1, m ), b = (bi | i 1, m )T. (2.30) Понятно, что покупатель стремится минимизировать эту сумму. Однако владеющее ресурсами предприятие, используя ресурсы 1, …, m в количествах a1j, …, amj соответственно, может реализовать технологический способ j с единичной интенсивностью, произвести единицу продукта j и получить доход cj. Поэтому предприятие не продаст указанный комплект ресурсов дешевле, чем за cj. Это значит, что искомые цены ресурсов yi должны удовлетворять условиям (2.31) aij yi ≥ cj для j 1, n . i Таким образом, вектор «справедливых» цен y должен быть решением задачи минимизации функции (2.30) с условиями (2.31) и y ≥ 0m. Это и есть задача, двойственная к ЗЛП в стандартной форме. Предположим теперь, что предприятие максимизирует прибыль и cj – удельная прибыль от продукта j. При калькуляции удельной прибыли в составе себестоимости учитываются затраты на приобретение ресурсов. Эти затраты покупатель ресурсов должен компенсировать. Поэтому следует определить только неотрицательные «надбавки» к тем ценам, которые использовались при расчете себестоимости продукции. Вектор надбавок y = (yi | i 1, m ) должен удовлетворять условиям (2.31), которые при такой интерпретации требуют, чтобы прибыль от продажи комплекта ресурсов (a1j, …, amj) была не меньше прибыли от использования этого комплекта в производстве. Функция (2.30) теперь описывает суммарную надбавку к исходной стоимости ресурсов, и покупатель стремится эту надбавку минимизировать. Получили ту же двойственную задачу. Обозначения и определения. Двойственную задачу для задачи P обозначают P*. Для задачи P в стандартной форме (2.29) задача P* имеет вид h(y) = yb → min при условиях yA ≥ c и y ≥ 0m. Сформулируем правила построения двойственной задачи для задачи максимизации в стандартной форме (для произвольной ЗЛП мы сделаем это в следующем разделе). Предва34 рительно заметим, что правила Д1 – Д3 и Д6 применимы к любой линейной задаче максимизации, а правила 4 и 5 будут впоследствии дополнены. Д1. Каждому общему ограничению прямой задачи сопоставляем двойственную переменную. Д2. Каждой переменной прямой задачи сопоставляем общее ограничение двойственной задачи (двойственное ограничение). Д3. В левой части двойственного ограничения стоит скалярное произведение вектора коэффициентов при соответствующей переменной прямой задачи на вектор двойственных переменных. Правая часть двойственного ограничения – коэффициент ЦФ прямой задачи при соответствующей переменной. 4. Если переменная прямой задачи неотрицательна, то левая часть соответствующего двойственного ограничения не меньше правой. 5. Если в общем ограничении прямой задачи левая часть не больше правой, то соответствующая двойственная переменная неотрицательна. Д6. Целевая функция двойственной задачи есть скалярное произведение вектора правых частей общих ограничений прямой задачи на вектор двойственных переменных. В двойственной задаче ЦФ минимизируется. Итак, мы из содержательных соображений построили двойственную задачу для стандартной формы. Теперь перейдем к общему случаю, используя то, что любую ЗЛП можно привести к эквивалентной задаче в стандартной форме (следствие 2.1). 2.6.2. Двойственная задача для общей задачи линейного программирования Исходя из правил Д1 – Д3, 4, 5 и Д6, можно обосновать построение двойственной задачи для произвольной ЗЛП. Правила Д1 – Д3 и Д6 справедливы, как мы увидим, для линейной задачи максимизации общего вида. Правила 4 и 5 для применимости к любой ЗЛП на максимум потребуют дополнений. Сначала рассмотрим линейную задачу максимизации общего вида (2.6) – (2.10), обозначим ее P. n c x f(x) = max при условиях: (2.32) x j = bi, i 1, m1 ; (2.33) x j bi, i m1 1, m2 ; (2.34) x j bi, i m2 1, m ; (2.35) j j 1 a j ij j a ij j a ij j (2.36) xj 0 для j 1, n1 ; xj 0 для j n1 1, n2 ; n2 n. 51 Правильно построенную стандартную форму задачи P обозначим P1. По теореме 2.2 задача P1 выглядит следующим образом (z – вектор переменных задачи). n1 f1(z) = c j x j – j 1 n1 aij x j – j 1 n1 c ju j + j n1 1 n2 aij u j + j n1 1 – aij x j + j 1 n2 n2 c (v j n2 1 n a (v j n2 1 ij aij u j – j n1 1 n j j j w j ) max при условиях: w j ) ≤ bi для i 1, m1 m2 1, m ; n a (v j n2 1 ij j w j ) ≤ –bi для i 1, m2 ; все переменные неотрицательны. 51 См. раздел 2.2. 35 Для задачи P1 построим двойственную задачу P1* по правилам, сформулированным в разделе 2.6.1. А именно, общим ограничениям первой группы сопоставим двойственные переменные αi (i 1, m1 m2 1, m ), ограничениям второй группы – переменные βi (i 1, m2 ). Задача P1* имеет следующий вид. m1 m2 bi (αi βi ) – i 1 i m1 1 m1 m2 aij (αi βi ) – i m1 1 m2 – aij (αi βi ) + a β i 1 m1 i m1 1 i 1 m1 i m1 1 ij i m2 a β ij i i m1 1 i 1 → min при условиях: i m a α i m2 1 a α i m2 1 aijβi + – aij (αi βi ) + i ≥ cj, j 1, n1 ; (2.37) ≥ –cj, j n1 1, n2 ; (2.38) i ≥ cj, j n2 1, n ; (2.39) i ≥ –cj, j n2 1, n ; (2.40) ij m – m2 aij (αi βi ) – b α i m2 1 aijβi + i 1 m1 m biβi + ij i m a α i m2 1 ij m – a α i m2 1 ij i все переменные неотрицательны. (2.41) Здесь ограничения (2.37), (2.38), (2.39) и (2.40) соответствуют по правилу 4 переменным xj, uj, vj и wj задачи P1. Ограничения (2.38) умножим на –1 с изменением знака неравенства. Ограничения (2.39) и (2.40) заменим эквивалентными им равенствами m1 aij (αi βi ) – i 1 m2 aijβi + i m1 1 m a α i m2 1 ij i = cj, j n2 1, n . В полученной задаче сделаем следующие замены переменных: yi = αi – βi для i 1, m1 , yi = –βi для i m1 1, m2 и yi = αi для i m2 1, m . Положим y = (yi | i 1, m ). Из (2.41) следует, что переменные yi не ограничены по знаку для i 1, m1 , неположительны для i m1 1, m2 и неотрицательны для i m2 1, m . Получим задачу, эквивалентную задаче P1* . m h(y) = b y i 1 m a i 1 ij yi ≥ cj, j 1, n1 ; m i i → min при условиях: a i 1 ij yi ≤ cj, j n1 1, n 2 ; m a i 1 ij yi = cj, j n2 1, n ; yi ≥ 0i для i m2 1, m , yi ≤ 0i для i m1 1, m2 . (2.42) (2.43) (2.44) Определение. Для задачи (2.32) – (2.36) двойственной является задача (2.42) – (2.44). На основании (2.43) дополним частное правило 4 раздела 2.6.2 до общего правила Д4. Д4. Если переменная прямой задачи неотрицательна (неположительна, не ограничена по знаку), то левая часть соответствующего двойственного ограничения не меньше (не больше, равна) правой части. Из (2.44) видно, каким образом следует дополнить частное правило 5 раздела 2.6.2. Д5. Если левая часть ограничения прямой задачи не больше (не меньше, равна) правой части, то соответствующая двойственная переменная неотрицательна (неположительна, не ограничена по знаку). Правила Д1 – Д6 определяют двойственную задачу для любой ЗЛП, в которой ЦФ максимизируется. Рассмотрим теперь задачу минимизации. 36 Определение. Задача P является двойственной для линейной задачи минимизации Q, если Q совпадает с P*. Из этого определения ясно, что для построения задачи, двойственной к задаче минимизации, нужно: правила Д1 – Д3 оставить без изменений; в правилах Д4 и Д5 поменять местами выражения «не меньше» и «не больше»; в правиле Д6 указать, что в задаче, двойственной для задачи минимизации, ЦФ следует максимизировать. Следствие 2.6.52 (P*)* = P, задачи P и P* являются взаимно двойственными. Определение. Компоненты оптимального решения двойственной задачи P* называют двойственными оценками ограничений задачи P. Эквивалентные термины: теневые цены, объективно обусловленные оценки. 2.6.3. Двойственная задача для канонической формы Основные результаты теории двойственности удобно доказывать, используя задачу в канонической форме. Пусть P – линейная задача максимизации и P1 – ее правильно построенная каноническая форма. В этом разделе мы покажем, что задача P* эквивалентна задаче P1* , и изучим свойства задачи, двойственной для ЗЛП в канонической форме. Пусть задача P имеет общий вид (2.32) – (2.36). По теореме 2.3 правильно построенная каноническая форма P1 задачи P выглядит следующим образом. n1 cjxj – f1(z) = j 1 n1 a x ij j 1 n1 a x j 1 n1 ij j – aij x j – j 1 j – n2 c (v j n1 1 j n2 1 n2 ij ij a (v + j n2 a u j n2 1 n a (v + j j j w j ) max при условиях: j w j ) = bi для i 1, m1 ; n a u j n1 1 j n1 1 n c ju j + j n2 1 n2 ij j w j ) – si = bi для i m1 1, m2 j w j ) + si = bi для i m2 1, m ; n aij u j + a (v j n1 1 j n2 1 ij ij все переменные неотрицательны. Применив к этой задаче правила Д1 – Д6, построим задачу P1* . Общим ограничениям с номерами i 1, m задачи P1 сопоставим двойственные переменные yi. Пусть y = (yi | i 1, m ). Задача P1* имеет следующий вид. m b y h(y) = i 1 m i a i 1 ij i → min при условиях: yi ≥ cj, j 1, n1 ; (2.45) m – aij yi ≥ –cj, j n1 1, n2 ; i 1 m a i 1 ij yi ≥ cj, j n2 1, n ; (2.46) (2.47) m – aij yi ≥ –cj, j n2 1, n ; (2.48) –yi ≥ 0 для i m1 1, m2 , yi ≥ 0 для i m2 1, m . (2.49) i 1 52 Из определения двойственной задачи для линейной задачи минимизации. 37 Здесь ограничения (2.45), (2.46), (2.47) и (2.48) соответствуют по правилу Д4 переменным xj, uj, vj и wj задачи P1, а ограничения (2.49) – переменным si (эти переменные входят в ЦФ задачи P1 с нулевыми коэффициентами). Заменим ограничения (2.47), (2.48) эквивалентными им равенствами m a i 1 ij yi = cj, j n2 1, n , а ограничения (2.49) для i m1 1, m2 эквивалентными неравенствами yi ≤ 0. Легко видеть, что получилась задача (2.42) – (2.44). Теорема 2.3 и следствие 2.2 устанавливают тесные связи между ЗЛП общего вида и ее правильно построенной канонической формой. Соответствующие двойственные задачи связаны еще сильнее: как показано выше, они почти идентичны. Следствие 2.753. Пусть P – линейная задача максимизации общего вида, P1 – ее правильно построенная каноническая форма. Задачи P* и P1* эквивалентны, они имеют одинаковые векторы переменных, множества допустимых решений, целевые функции и множества оптимальных решений. Задача P* несовместна (неограниченна) тогда и только тогда, когда несовместна (неограниченна) задача P1* . Таким образом, любую двойственную задачу можно заменить задачей, двойственной для подходящей канонической формы. Поэтому предположим, что задача P записана в канонической форме и имеет вид: n f(x) = c x j 1 j j max при условиях a ij x j = bi для всех i 1, m , xj 0 для всех j, j или в матричной форме: f(x) = cx → max при условиях Ax = b, x ≥ 0n. Сформируем задачу P* по правилам Д1 – Д6: h(y) = bi yi → min при условиях aij yi ≥ cj для всех j, i (2.50) i или в матричной форме: (2.51) h(y) = yb → min при условии уA ≥ c. Зафиксируем базис β матрицы A. Базисным (относительно базиса β) переменным соответствуют в задаче P* ограничения с номерами j N(β). Предположим, что эти ограничения выполняются как равенства: (2.52) yB(β) = cб(β). Эта система уравнений имеет единственное решение, так как матрица B(β) – невырожденная. Определение. Решение системы (2.52) обозначим y(β), это базисный вектор задачи P*, порожденный базисом β. Лемма 2.4 (свойства базисных векторов). Пусть β – базис матрицы A. (а) y(β) = cб(β)B–1(β). (б) z(β) = c – у(β)A. (в) Вектор y(β) является допустимым решением задачи P*, если и только если z(β) ≤ 0n. (г) f(x(β)) = h(y(β)). Доказательство. (а) Равенство следует из (2.52). (б) По определению54 z(β) = c – cб(β)A(β), где A(β) = B–1(β)A. Тогда, учитывая утверждение (а), z(β) = c – (cб(β)B–1(β))A = c – у(β)A. 53 54 Для доказательства достаточно сравнить задачи (2.42) – (2.44) и (2.45) – (2.48). См. раздел 2.5.1. 38 (в) Из утверждения (б) следует, что при y = у(β) ограничения задачи (2.51) эквивалентны zj(β) ≤ 0 для всех j. (г) Пусть x = x(β). Тогда f(x(β)) = cx(β) = cб(β)xб(β) = cб(β)(B–1(β)b), так как xн(β) = 0n–m и xб(β) =B–1(β)b по определению55. Используя утверждение (а), получаем f(x(β)) = (cб(β)B–1(β))b = y(β)b = h(y(β)). # Исходное определение вектора z(β) выражает его через коэффициенты ЦФ задачи P и элементы матрицы задачи P(β). Утверждение (б) леммы 2.4 дает альтернативное выражение для вектора z(β), выявляя его связь с базисным вектором двойственной задачи. Всякий базис матрицы A порождает в задачах P и P* базисные векторы, на которых целевые функции соответствующих задач принимают одинаковые значения (по утверждению (г) леммы 2.4). 2.6.4. Основные теоремы теории двойственности Основные теоремы теории двойственности устанавливают связи между прямой и двойственной задачами. Обычно эти теоремы доказывают для одной из простых форм ЗЛП, а затем переносят на общий случай. Мы будем использовать в качестве исходной каноническую форму ЗЛП. Обозначения. Пусть P – произвольная ЗЛП с максимизируемой целевой функцией, P1 – ее правильно построенная стандартная форма. Будем в этом разделе использовать следующие обозначения56. Вектор переменных Целевая функция Множество допустимых решений Множество оптимальных решений P x f(x) X X* Задача P1 P1* и P* z y f1(z) h(y) Z Y Z* Y* Теорема 2.14 (основное неравенство теории двойственности). При введенных выше обозначениях для любых x X и y Y справедливо неравенство f(x) ≤ h(y). Доказательство. Пусть x X и y Y. Предположим сначала, что задача P записана в канонической форме (2.50). Тогда задача P* имеет вид (2.51). С учетом неотрицательности вектора x имеем h(y) = yb = y(Ax) = (yA)x ≥ сx = f(x). Пусть теперь P – задача общего вида. Мы доказали, что f1(z) ≤ h(y) для любого z Z. По следствию 2.2 для x X найдется вектор z Z такой, что f1(z) = f(x). Поэтому f(x) ≤ h(y). # Из теоремы 2.14 легко получить выводы о совместности, ограниченности и разрешимости взаимно двойственных задач. Следствие 2.8. (а) Если одна из задач P, P* совместна, то другая ограниченна. (б) Для разрешимости задач P и P* необходимо и достаточно, чтобы они обе были совместны. Доказательство. (а) Предположим, что задача P*совместна и y Y. Тогда f(x) ≤ h(y) для всех x X по теореме 2.14. Случай совместности задачи P рассматривается аналогично. (б) Необходимость очевидна, докажем достаточность. Пусть задачи P и P* совместны. Тогда обе они ограниченны по утверждению (а). Теперь разрешимость задач P и P* следует из утверждения (в) теоремы 2.5. # 55 56 См. раздел 2.4.2. Последний столбец таблицы обоснован следствием 2.7. 39 Важнейшие связи между взаимно двойственными задачами устанавливает следующая теорема. Теорема 2.15 (первая теорема двойственности).57 Задача P разрешима тогда и только тогда, когда разрешима задача P*. Если задачи P и P* разрешимы, то оптимальные значения их целевых функций совпадают. Следствие 2.9. Если x* и y* – допустимые решения задач P и P* соответственно, то равенство f(x*) = h(y*) является необходимым и достаточным условием оптимальности x* и y* (в задачах P и P* соответственно), Доказательство. Пусть x* X * и y* Y *. Тогда f(x*) = h(y*) по теореме 2.15. Обратно, пусть x* X, y* Y и f(x*) = h(y*). Из теоремы 2.14 следует, что f(x) ≤ h(y*) = f(x*) ≤ h(y) для всех x X и y Y, а это значит, что x* X * и y* Y *. # Следствие 2.9 указывает критерий оптимальности пары допустимых решений взаимно двойственных ЗЛП. Если задача P имеет каноническую форму, то можно сформулировать критерий оптимальности для пары базисных векторов, порожденных базисом β. Определения. Пусть A – матрица задачи P в канонической форме и β – базис матрицы A. Базис β называют двойственно допустимым, если zj(β) ≤ 0 для всех j.58 Базис оптимален, если он является допустимым и двойственно допустимым. Следствие 2.10. Пусть β – базис матрицы A задачи P в канонической форме (2.50). Векторы x(β) и y(β) оптимальны в задачах P и P* соответственно, если и только если базис β оптимален. Доказательство. По определению базис β оптимален, если он является допустимым и двойственно допустимым. Это эквивалентно x(β) X и y(β) Y.59 При этом f(x(β)) = h(y(β)) по утверждению (г) леммы 2.4. Тогда, по следствию 2.9, оптимальность базиса β эквивалентна x(β) X * и y(β) Y *. # Из утверждения (в) теоремы 2.5 следует, что ЗЛП может быть разрешима, несовместна или неограниченна. Если одна из взаимно двойственных задач неограниченна, то другая несовместна.60 Поэтому для пары взаимно двойственных задач может выполняться только один из трех случаев: обе задачи разрешимы; одна из задач неограниченна, а другая несовместна; обе задачи несовместны. Первый случай реализуется для всех разрешимых задач, второй – для всех неограниченных. Реализуемость третьего случая доказана примерами 61. Еще один критерий оптимальности дает следующая теорема. Теорема 2.16 (вторая теорема двойственности, теорема равновесия62). Пусть задача P имеет общий вид (2.32) – (2.36), x и y – допустимые решения задач P и P* соответственно. Тогда x и y оптимальны в задачах P и P* соответственно, если и только если выполняются условия дополняющей нежесткости63: n m j 1 i 1 уi( aij x j – bi) = 0 для всех i; xj( aij yi – cj) = 0 для всех j. (2.53) Доказательство. Пусть x X и y Y. 1. Предположим, что x X * и y Y *. Из правила Д6 построения двойственной задачи и следствия 2.9 получаем 57 Доказательство см. в приложении 4. Это определение оправдано утверждением (в) леммы 2.4. 59 См. определение x(β) в разделе 2.4.2 и утверждение (в) леммы 2.4. 60 Это эквивалентная переформулировка утверждения (а) следствия 2.8. 61 См. [21, пример 3.12]. 62 Связь между теоремой 2.16 и экономическим равновесием разъяснена в разделе 2.6.5. 63 Термин обоснован следствием 2.11 (ниже) и предшествующим ему определением. 58 40 n c x j j 1 m j = f(x) = h(y) = b y . i 1 i (2.54) i Из правила построения двойственной задачи Д4 следует, что m xj( aij yi – cj) ≥ 0 для всех j. i 1 Аналогично, из правила Д5 следует, что n yi( aij x j – bi) ≤ 0 для всех i. j 1 Поэтому, учитывая (2.54), n 0≤ m x ( a j 1 n j i 1 m ij yi c j ) = = aij x j yi – j 1 i 1 n m n aij x j yi – c x j 1 j 1 i 1 m m n i 1 i 1 j 1 j j = bi yi = yi ( aij xi bi ) ≤ 0. Следовательно, первая и последняя суммы равны нулю. Но все слагаемые первой суммы неотрицательны, а последней – неположительны. Значит, эти слагаемые равны нулю, что доказывает равенства (2.53). 2. Предположим, что условия (2.53) выполнены. Тогда n f(x) = cj xj = j 1 m n aij x j yi = i 1 j 1 m b y i 1 i i = h(y). Из следствия 2.9 получаем x X * и y Y *. # Заметим, что левая часть каждого из условий дополняющей нежесткости – это произведение координаты допустимого решения одной из взаимно двойственных задач на разность левой и правой частей соответствующего ограничения другой задачи. Оптимальность в обеих задачах достигается в точности тогда, когда хотя бы один из сомножителей каждого такого произведения равен нулю. Определение. Ограничение ЗЛП называется жестким, если оно выполняется как равенство для любого оптимального решения задачи, и нежестким в противном случае. Следствие 2.11. Предположим, что в задаче P нет ограничений-равенств и все переменные ограничены по знаку64. Тогда: (а) если ограничение по знаку для некоторой переменной в задаче P (P*) является нежестким, то соответствующее общее ограничение задачи P* (P) является жестким; (б) если общее ограничение задачи P (P*) является нежестким, то ограничение по знаку для соответствующей переменной задачи P* (P) является жестким. Доказательство. Пусть ограничение по знаку для переменной xs задачи P является нежестким. Тогда существует x* = ( x *j | j 1, n ) X * такой, что x s* ≠ 0. Из второго условия (2.53) при j = s следует, что общее ограничение задачи P* выполняется как равенство для любого y Y * и, следовательно, является жестким в задаче P*. Остальные утверждения следствия 2.11 доказываются аналогично. # Вычисление двойственных оценок см. в примере 2.4 раздела 2.9. 64 В этом случае, по правилам Д4 и Д5, в задаче P* тоже нет ограничений-равенств и все ее переменные ограничены по знаку. 41 2.6.5. Интерпретации Вернемся к задаче P в стандартной форме f(x) = c j x j max при условиях a ij j x j bi для i 1, m , x 0n, j В разделе 2.3 показано, что эта задача является моделью оптимизации плана деятельности некоторого предприятия. Двойственная задача P* имеет вид h(y) = bi yi min при условиях aij yi ≥ cj для j 1, n , y 0m. i i Первая теорема двойственности (теорема 2.15) утверждает, что если задача P разрешима, то существуют теневые цены ингредиентов. Пусть x* и y* – оптимальные решения задач P и P* соответственно (план деятельности и теневые цены ингредиентов). Ограничения задачи P описывают ограничения на использование ингредиентов и обязательства по производству. Ограничения задачи P* указывают основное свойство теневых цен: измеренная в этих ценах чистая стоимость реализации технологического способа с единичной интенсивностью (стоимость потребляемых ингредиентов за вычетом стоимости производимых ингредиентов) не меньше его удельной полезности. Предприятие имеет запас ингредиента i, если bi > 0, и обязательство по производству ингредиента i, если bi < 0. Целевая функция h(y) задачи P* описывает чистые затраты предприятия (стоимость запаса за вычетом стоимости обязательного производства) при ценах y. Эти затраты минимальны при теневых ценах. По первой теореме двойственности минимальные затраты предприятия h(y*) равны максимальной полезности f(x*), которую предприятие может получить. Это значит, что при теневых ценах, с учетом затрат h(y*), предприятие получит нулевую выгоду. Формульная запись первой теоремы двойственности f(x*) = h(y*) = bi yi* i представляет эффект от реализации оптимального плана как сумму эффектов, порожденных запасами отдельных ингредиентов. Помимо прочего, это значит, что величина yi измеряется в «единицах полезности на единицу ингредиента i». Можно предположить, что рост запаса ингредиента i вызовет пропорциональный рост максимальной полезности со скоростью yi* . Это предположение для широкого класса задач будет подтверждено в разделе 2.7. Следовательно, увеличение bi на небольшую величину ε позволит увеличить полезность на ε yi* . Пусть pi – текущая цена (в единицах полезности) ингредиента i. Тогда покупка единицы ингредиента i уменьшит (а продажа – увеличит) максимальную полезность на yi* . Следовательно, предприятию выгодно купить некоторое количество ингредиента i, если pi < yi* , и продать, если pi > yi* . Если же pi = yi* , то предприятие не может получить выгоду от изменения исходного запаса ингредиентов. В этом смысле теневые цены являются ценами равновесия. При y = y* разность между правой и левой частями двойственного ограничения с номером j можно интерпретировать как эффективность технологического способа j: полезность этого способа при единичной интенсивности за вычетом стоимости (в теневых ценах) используемых ингредиентов: z *j = cj – aij yi* . i Таким образом, использование способа j с единичной интенсивностью дает эффект z *j . Если β – оптимальный базис канонической формы задачи P, то y* = y(β) – оптимальное решение задачи P* по следствиям 2.10 и 2.7. При этом z *j = zj(β) по утверждению (б) леммы 2.4. Вели- 42 чину z *j называют относительной стоимостью65 (а также оценкой или приведенной стоимостью) технологического способа j. Ограничения задачи P* требуют, чтобы оценки всех способов были неположительны. По второму из условий (2.53) z *j = 0, если x *j > 0. Это значит, что в оптимальном плане с ненулевой интенсивностью реализуются только способы, имеющие максимальные (нулевые) оценки. В соответствии с первым из условий (2.53) в оптимальном плане ингредиент с положительной оценкой используется полностью и, напротив, недоиспользованный ингредиент имеет нулевую оценку (так как увеличение его запаса не дает прироста полезности). Величину bi можно интерпретировать как предложение (возможно, отрицательное) ингредиента i. Тогда общее ограничение с номером i задачи P требует, чтобы спрос предприятия на ингредиент i не превышал предложение этого ингредиента. Вторая теорема двойственности (теорема 2.16) утверждает, что при оптимальном плане и теневых ценах спрос равен предложению для любого ингредиента с ненулевой ценой. Это один из признаков экономического равновесия.66 2.7. Особые случаи при решении задач линейного программирования Особым случаем является, конечно, неразрешимость задачи вследствие ее несовместности или неограниченности.67 Эти ситуации выявляются в ходе решения задачи симплексметодом и анализируются в рамках послеоптимизационного анализа (см. раздел 1.2.4). Если задача разрешима, особыми ситуациями являются неединственность и вырожденность решения. Неединственность решения выявляется в процессе послеоптимизационного анализа. Случай вырожденности решения мы рассматривать не будем, поскольку он не имеет существенного прикладного значения68. 2.7.1. Анализ неограниченной задачи Неограниченность задачи означает, что отраженные в ней ресурсы позволяют получить сколь угодно большую полезность. Это вряд ли возможно. Поэтому операционист должен предположить ошибку в постановке или формализации задачи (см. разделы 1.2.1 и 1.2.2) и попытаться устранить эту ошибку. Рассмотрим задачу линейного программирования P в канонической форме f(x) = сx → max при условиях Ax = b и x ≥ 0n, где A = (aij | i 1, m , j 1, n ), b Rm, c R1n, x Rn. Теорема 2.17 (о неограниченной ЗЛП). Пусть задача P0 получена из задачи P заменой вектора b на вектор 0m. Если задача P неограниченна, то существует ненулевое допустимое решение задачи P0, на котором ЦФ этой задачи принимает положительное значение. Доказательство. Предположим, что задача P неограниченна. Тогда она совместна, и без ограничения общности можно считать, что строки матрицы A линейно независимы.69 В ходе решения задачи симплекс-методом на какой-то итерации будет выполнен признак неограниченности. В этой ситуации будут известны очередной допустимый базис β и задача P(β), которая является результатом приведения задачи P к базису β. Задача P(β) имеет вид70: f(x; β) = z(β)x + F(β) → max при условиях A(β)x = b(β) и x ≥ 0n. Поскольку выполнен признак неограниченности71, существует номер s N(β) такой, что zs(β) > 0 и ais(β) ≤ 0 для всех i. Построим вектор v Rn, как в доказательстве теоремы 65 См. [24, cтр. 50]. Поэтому теорему 2.16 называют теоремой равновесия. 67 См. утверждение (в) теоремы 2.5. 68 Об анализе вырожденного решения см. [11, §4.10.4]. 69 См. теорему 2.6. 70 См. раздел 2.5.1 71 См. теорему 2.10. 66 43 2.10: vs = 1; vj = –ais(β), если j N(β) и j = j(i); vj = 0, если j N(β) и j ≠ s. Заметим, что вектор v неотрицателен и не равен нулю. Пусть x(β) – БДР, порожденное базисом β. Точка x() = x(β) + v допустима в задаче P(β) при любом ≥ 0 и f(x(); β) = zs(β) + F(β) (см. доказательство теоремы 2.10). Тогда, по утверждениям (а) и (б) теоремы 2.8, точка x() допустима в задаче P и f(x()) = zs(β) + F(β). Отсюда следует, что Ax() = b и Ax( + 1) = b при > 0. Тогда Av = A[x( + 1) –x()] = 0m. При этом f(v) = с[x( + 1) – x()] = f(x( + 1)) – f(x()) = zs(β) > 0. Таким образом, вектор v ≠ 0n удовлетворяет ограничениям задачи P0 и доставляет ее ЦФ положительное значение. # Теорема 2.17 показывает, что для неограниченной задачи можно построить ненулевой план v, реализуемый при нулевых правых частях ограничений и имеющий положительную полезность. Вектор v указывает сочетание интенсивностей использования технологических способов, которое якобы позволяет системе извлекать неограниченную пользу из ограниченных ресурсов. Причина в том, что при исходном векторе b может быть реализован как план x(λ), так и план x(λ + 1) = x(λ) + v. «Надбавка» v к плану x(λ) реализуется без дополнительных ресурсов, но дает дополнительную прибыль zs(β) > 0, работает «экономический вечный двигатель». Следовательно, анализируя вектор v, можно локализовать присутствующую в модели ошибку.72 2.7.2. Анализ несовместной задачи Вспомним сформулированную в разделе 2.3 интерпретацию задачи линейного программирования P в стандартной форме f(x) = c j x j max при условиях aij x j bi для i 1, m , x 0n. j j Столбец с номером j матрицы задачи описывает технологический способ, который при единичной интенсивности потребляет aij (если aij > 0) или производит |aij| (если aij < 0) единиц ингредиента i. Условие aij x j b j ограничивает сверху потребление ингредиента i величиной bi (при bi ≥ 0) или ограничивает снизу выпуск ингредиента величиной |bi| (при bi < 0). Положительные bi описывают ресурсный потенциал системы, а отрицательные – ее внешние и внутренние обязательства. Тогда несовместность задачи означает, что включенные в модель технологии при доступных ресурсах не обеспечивают выполнение обязательств. Если несовместная задача возникла при моделировании существующей системы, которая, пусть не оптимально, но работает, то модель наверняка неадекватна. Приходится признать, что модель не выдержала проверку73, и вернуться к начальным этапам операционного исследования, чтобы уточнить описание и/или формализацию операции74. Более интересная ситуация возникает, если ЗЛП моделирует проект адаптации системы к изменившимся внешним условиям, или создания новой системы, или модификации действующей. В основе такого проекта – цели и обязательства, к которым подбирают технологии и ресурсы. В этом случае «противоречивая модель может быть адекватным отражением действительных противоречий»75, вследствие которых проект нуждается в доработке. Анализ задачи может указать целесообразные направления совершенствования проекта. Нетрудно перечислить возможные способы устранения несовместности: установить более скромные внутренние обязательства, уменьшить внешние обязательства, привлечь до- 72 См. пример 2.5 раздела 2.9. О проверке математической модели операции см. в разделе 1.2.3. 74 См. разделы 1.2.1 и 1.2.2. 75 [25, стр. 8]. 73 44 полнительные ресурсы, применить более эффективные технологии. Мы рассмотрим первые три варианта корректировки задачи, которые формально сводятся к изменению правых частей ограничений.76 Итак, предположим, что мы хотим сделать несовместную задачу P разрешимой, изменяя правые части ограничений. Задача P имеет пустое множество допустимых решений. Чтобы его расширить, нужно увеличивать bi. Допустим, что правую часть ограничения с номером i увеличили на δi. Это означает приобретение δi единиц ингредиента i при bi ≥ 0 и отказ от производства δi единиц ингредиента i при bi < 0. Понятно, что δi ≥ 0 для всех i и δi ≤ |bi| при bi < 0 (недопроизводство не может быть больше обязательства по производству). В любом случае увеличение правой части ограничения связано с каким-то ущербом (как плата за дополнительный ресурс или штраф за невыполненное обязательство). Допустим, что этот ущерб пропорционален δi (удельный ущерб равен ri) и соизмерим с ЦФ f(x). Будем считать, что при bi ≥ 0 количество ингредиента i, которое можно приобрести с удельными затратами ri, ограничено величиной di (ограничение предложения). Введем вектор переменных Δ = (δi | i 1, m )T и запишем задачу линейного программирования Q, определяющую корректировки правых частей ограничений задачи P. f1(x, Δ) = f(x) – ri δ i → max при условиях: i Ax ≤ b + Δ, что эквивалентно a x ij j – δi ≤ bi для всех i; j x 0n; 0 ≤ δi ≤ di, при bi ≥ 0; 0 ≤ δi ≤ |bi| при bi < 0. Задача Q совместна: допустимое решение получим, положив x = 0n, δi = 0 при bi ≥ 0 и δi = |bi| при bi < 0. Если задача ограниченна, то ее решение указывает самую выгодную корректировку правых частей ограничений задачи P и оптимальный план, удовлетворяющий скорректированным ограничениям.77 Неограниченность задачи Q маловероятна (так как переменные δi ограниченны), но может возникнуть при неудачном сочетании параметров задачи. В этом случае найдется луч допустимых решений задачи Q.78 Из точек этого луча можно будет выбрать подходящую корректировку задачи P. 2.7.3. Поиск альтернативных решений В отличие от неограниченности и несовместности задачи, неединственность решения – позитивное явление: из решений, оптимальных по критерию, отраженному в ЦФ, можно выбрать лучшее по какому-то другому критерию. Поэтому на этапе послеоптимизационного анализа разрешимой задачи желательно как можно полнее описать множество ее оптимальных решений. Из утверждения (а) теоремы 2.5 следует, что всякая выпуклая линейная комбинация оптимальных решений тоже является оптимальным решением. Поэтому множество всех оптимальных решений ЗЛП может быть пустым (если задача неразрешима), одноэлементным (если задача имеет единственное решение) или бесконечным. Будем считать, что задача P записана в канонической форме: f(x) = cx → max при условиях Ax = b, x ≥ 0n, mn m где A R , b R , c R1n, x Rn. Предположим, что задача разрешима. По теореме 2.6 без ограничения общности можно считать, что строки матрицы A линейно независимы. Тогда каждый базис матрицы содержит m столбцов по лемме 2.1. Поскольку задача P разрешима, симплекс-метод найдет допустимый базис β такой, что zj(β) ≤ 0 для всех j,79 и соответствующее базисное оптимальное решение x(β). 76 О корректировке несовместной ЗЛП введением нового технологического способа см. [11, стр. 211 – 217]. 77 См. пример 2.6 раздела 2.9. См. раздел 2.7.1. 79 Оптимальный базис, см. раздел 2.6.4. 78 45 Обозначения. X – множество допустимых решений задачи P. X * – множество всех оптимальных решений задачи P. Х0 – множество всех x X, для которых cx ≥ f(x(β))80 и xн(β) ≠ 0n–m. Лемма 2.5. Пусть x(β) – решение задачи P, порожденное оптимальным базисом β. (а) Если задача Р имеет решение x* ≠ x(β), то x* Х0. (б) Если Х0 ≠ , то любой вектор из Х0 является решением задачи Р, отличным от x(β). Доказательство. (а) Допустим, что задача Р имеет решение x* ≠ x(β). Понятно, что x* X и f(x*) = cx* = f(x(β)). Предположим, что xн (β) = 0n–m. Тогда B(β) xб (β) = b и xб (β) = B–1(β)b = b(β). Теперь из утверждения (г) теоремы 2.8 следует, что x* = x(β), что противоречит выбору x*. Следовательно, xн (β) ≠ 0n–m и x* Х0. (б) Допустим, что Х0 ≠ и x' Х0. Тогда x' X, xн (β) ≠ 0n–m и f(x') = f(x(β)). Следовательно, x' X *. При этом x' ≠ x(β), так как небазисная часть вектора x(β) относительно базиса β равна нулю по определению. # Средством проверки существования отличных от x(β) (альтернативных) решений задачи P является следующая задача линейного программирования P0: f0(x) = x j → max при условиях cx ≥ f(x(β)), Ax = b, x ≥ 0n. j N ( β ) Теорема 2.18 (критерий существования альтернативного решения). Пусть x(β) – решение задачи P, порожденное оптимальным базисом β. Задача Р имеет альтернативное решение, если и только если задача Р0 либо неограниченна, либо имеет оптимальное решение с положительным значением ЦФ. Доказательство. Допустим, что задача Р имеет решение x* ≠ x(β). Тогда, по утверждению (а) леммы 2.5, x* Х0. Из определения множества Х0 следует, что x* является допустимым решением задачи P0 и f0(x*) > 0. Тогда задача Р0 либо неограниченна, либо имеет оптимальное решение с положительным значением ЦФ. Обратно, допустим, что задача Р0 либо неограниченна, либо разрешима и оптимальное значение ее ЦФ положительно. Тогда f0(x) > 0 для какого-то допустимого решения x задачи Р0. Отсюда следует, что xн(β) ≠ 0n–m, x Х0 и x является альтернативным решением задачи P по утверждению (б) леммы 2.5. # Теорема 2.18 позволяет не только проверить единственность решения задачи P, но и найти альтернативные решения, если они существуют. Действительно, если задача P0 неограниченна, то, как показано в разделе 2.7.1, можно найти луч {x0 + v | ≥ 0} допустимых решений этой задачи. Все точки этого луча, кроме, быть может, точки x0, лежат в Х0 и являются альтернативными решениями задачи P по лемме 2.5. Если же задача P0 имеет решение x' с положительным значением ЦФ, то x' лежит в Х0 и является альтернативным решением задачи P. Более того, из выпуклости множества X * (утверждение (а) теоремы 2.5) следует, что и все внутренние точки отрезка [x(β), x'] оптимальны в задаче P. Более подробную информацию о множестве X * можно получить, используя задачу P(β), полученную приведением задачи P к оптимальному базису β.81 Запишем задачу P(β) следующим образом: f(x; β) = z(β)x + F(β) → max при условиях A(β)x = b(β), x ≥ 0n. 80 Функция f(x) на множестве X не может принимать значения, превышающие f(x(β)), так как x(β)X *. Поэтому в условии cx ≥ f(x(β)) знак неравенства можно заменить знаком равенства. 81 См. раздел 2.5.1. 46 Здесь A(β) = (aij(β) | i 1, m , j 1, n ), b(β) = (bi(β) | i 1, m )T, z(β) = (zj(β) | j 1, n ). Из оптимальности базиса β следует, что b(β) ≥ 0n и zj(β) ≤ 0 для всех j. Обозначения. I0 = {i | bi(β) = 0}. U0 – множество всех векторов u = (uj | j N(β))T Rn–m, удовлетворяющих условиям: z j (β)u j = 0, aij (β)u j ≤ 0 для всех iI0, u ≥ 0n–m, u ≠ 0n–m. j N ( β ) jN ( β ) Лемма 2.6.82 (а) Если задача P имеет решение x* ≠ x(β), то xн (β) U0. (б) Если u U0, то существует решение x* задачи P такое, что x* ≠ x(β) и xн (β) = u для некоторого > 0. Следствие 2.1283. Задача P имеет альтернативное решение, если и только если U0 ≠ . Следствие 2.12 дает еще один критерий существования альтернативного решения. Он менее удобен, чем критерий, указанный теоремой 2.18. Полезность леммы 2.6 в том, что из нее выводятся легко проверяемые частные условия существования альтернативного решения. Теорема 2.19 (условия существования альтернативного решения). (а) Если задача P имеет альтернативное решение, то zk(β) = 0 для какого-то kN(β). (б) Для существования альтернативного решения в задаче P достаточно, чтобы при некотором k N(β) выполнялись условия zk(β) = 0 и aik(β) ≤ 0 для всех i I0. (в) Если решение x(β) задачи P невырожденное, то для существования альтернативного решения необходимо и достаточно, чтобы zk(β) было равно нулю при некотором k N(β). Доказательство. (а) Допустим, что задача P имеет альтернативное решение x* = ( x j | j 1, n )T. Тогда, по утверждению (а) леммы 2.6, xн (β) U0. Поэтому xн (β) ≠ 0n–m и z (β) x jN (β ) j j = 0. Значит, существуют значения k N(β), для которых xk ≠ 0, и zk(β) = 0 для всех таких k. (б) Пусть k N(β), zk(β) = 0 и aik(β) ≤ 0 для всех i I0. Положим uk = λ > 0 и uj = 0 для всех остальных j N(β). Очевидно, что построенный вектор u = (uj | j N(β))T принадлежит U0. Тогда задача P имеет альтернативное решение по следствию 2.12. (в) Необходимость следует из утверждения (а), докажем достаточность. Пусть решение x(β) невырожденное. Тогда базисная часть вектора x(β) положительна. По утверждению (г) теоремы 2.8 она равна b(β). Следовательно, I0 = . Поэтому выполнены условия утверждения (б) и альтернативное решение существует. # Утверждение (а) теоремы 2.19 дает необходимое, а утверждение (б) – достаточное условие существования альтернативного решения. Утверждение (в) показывает, что в невырожденном случае необходимое условие оказывается и достаточным. Уточним утверждение (в) теоремы 2.19. Следствие 2.13. Если β – невырожденный оптимальный базис, k N(β) и zk(β) = 0, то существует альтернативное решение x(k) задачи P, у которого координата с номером k не равна нулю, а остальные небазисные координаты равны нулю. 82 83 Доказательство в приложении 5. Из леммы 2.6. 47 Доказательство. Утверждение (в) теоремы 2.19 мы доказали сведением к утверждению (б) той же теоремы. Из доказательства утверждения (б) теоремы 2.19 видно, что для каждого k N(β), удовлетворяющего условию этого утверждения, можно построить вектор u(k) U0, у которого только координата с номером k не равна нулю. По утверждению (б) леммы 2.6 для каждого такого k существует альтернативное решение x*(k), небазисная часть которого пропорциональна u(k). Это значит, что из небазисных координат вектора x*(k) только одна (с номером k) не равна нулю. # Следствие 2.13 показывает, что при невырожденном базисе β для каждого k N(β) такого, что zk(β) = 0, существует решение x*(k) задачи P, у которого координата с номером k не равна нулю, а остальные небазисные координаты равны нулю. Поскольку небазисная часть вектора x(β) равна нулю, все решения x*(k) в совокупности с исходным решением x(β) линейно независимы. Из утверждения (а) теоремы 2.5 следует, что любая выпуклая линейная комбинация векторов x*(k), в которой коэффициент при x(β) не равен единице, являются альтернативными решениями задачи P. Найти решения x*(k) легко: нужно для каждого подходящего k решить задачу максимизации xk при ограничениях задачи P0, то есть при ограничениях исходной задачи P с дополнительными условиями: cx ≥ f(x(β)) и xj = 0 для всех j N(β) {k}.84 Заметим, что нулевое значение zk(β) для некоторого k N(β) не является, вообще говоря, достаточным условием существования альтернативного решения, как показывает пример 2.8 раздела 2.9. 2.8. Анализ чувствительности Анализом чувствительности (или устойчивости) в теории оптимизации называют изучение влияния изменений параметров оптимизационной задачи на оптимальное решение и оптимальное значение ЦФ. Это основная часть послеоптимизационного анализа разрешимой ЗЛП. Будем рассматривать задачу P0 в канонической форме f(c0, x) = c0 x → max при условиях A0x = b0, x ≥ 0n, где A0 = ( aij0 | i 1, m , j 1, n ), b0 = ( bi0 | i 1, m )T, c0 = ( с 0j | j 1, n ). Будем считать, что задача P0 разрешима и строки матрицы A0 линейно независимы. Тогда, по лемме 2.1, всякий базис матрицы A0 состоит из m столбцов, а его базисная матрица имеет размерность mm. Поскольку задача P0 разрешима, симплекс-метод найдет оптимальный базис β такой, что zj(β) ≤ 0 для всех j, и соответствующее базисное оптимальное решение x(β). Определения и обозначения. Заменив в задаче P0 матрицу A0 и векторы b0, c0 соответственно матрицей A Rmn и векторами b Rm, c Rn, получим возмущенную задачу P(A, b, c). Понятно, что P0 = P(A0, b0, c0). Набор (A, b, c) параметров возмущенной задачи будем считать точкой в пространстве Rk, где k = mn + m + n. 2.8.1. Устойчивость оптимального базиса Определения и обозначения. Базис β назовем двойственно невырожденным, если zj(β) ≠ 0 для всех jN(β). Пусть N(β) = {j(1), …, j(m)}, B0 = B(β) – базисная матрица для базиса β. Заменив каждый столбец базиса β и матрицы B0 столбцом матрицы A с тем же номером, получим набор столбцов β(A) и матрицу B. 84 См. пример 3 раздела 2.7.4. 48 Предположим, что столбцы из набора β(A) линейно независимы и, следовательно, β(A) является базисом матрицы A. Тогда базисные векторы задач P(A, b, c) и P*(A, b, c), порожденные базисом β(A), обозначим x(A, b) = (xj(A, b) | j 1, n )T и y(A, c) = (yi(A, c) | i 1, m ). В соответствии с утверждениями (б) лемм 2.2 и 2.4 положим z(A, c) = с – сб(β)(B–1A) = с – y(A, c)A = (zj(A, c) | j 1, n ). Теорема 2.20 (об устойчивости оптимального базиса). Оптимальный, невырожденный и двойственно невырожденный базис β задачи P0 сохраняет указанные свойства в некоторой окрестности O точки (A0, b0, c0) в пространстве Rk. А именно, для всех (A, b, c) O совокупность столбцов β(A) является оптимальным, невырожденным и двойственно невырожденным базисом задачи P(A, b, c), а векторы x(A, b) и y(A, c) оптимальны в задачах P(A, b, c) и P*(A, b, c) соответственно. Доказательство. По условию det(B0) 0. Определитель есть непрерывная функция элементов матрицы, поэтому det(B) 0 и столбцы матрицы B линейно независимы, если вектор (A, b, c) лежит в некоторой окрестности O1 точки (A0, b0, c0). Следовательно, столбцы из β(A) образуют базис матрицы A при (A, b, c) O1. Оптимальность базиса означает его допустимость и двойственную допустимость. Из допустимости и невырожденности базиса β в задаче P0 следует, что B01 b0 > 0m. Тогда найдется окрестность O2 точки (A0, b0, c0) такая, что B–1b > 0m для (A, b, c) O2. Из двойственной допустимости и двойственной невырожденности базиса β в задаче P0 следует zj(A0, c0) < 0 для всех jN(β). Тогда найдется окрестность O3 точки (A0, b0, c0) такая, что zj(A, c) < 0 для jN(β), если (A, b, c) O3. Таким образом, для (A, b, c) O = O1 O2 O3 столбцы из β(A) образуют оптимальный базис задачи P(A, b, c), который является также невырожденным и двойственно невырожденным. Тогда векторы x(A, b) и y(A, c) оптимальны в задачах P(A, b, c) и P*(A, b, c) соответственно по следствию 2.10. # Из теоремы 2.20 следует, что в «нормальной» ситуации оптимальный базис (точнее, его базисное множество) сохраняется при небольших вариациях параметров задачи. Пример 2.9 раздела 2.9 иллюстрирует теорему. Благодаря устойчивости оптимального базиса удается оценить чувствительность оптимального решения и оптимального значения ЦФ к изменениям параметров задачи. Определения и обозначения. x = x(A0, b0) = ( x 0j | j 1, n )T, y0 =y(A0, c0) = ( yi0 | i 1, m ). 0 z0 = z(A0, c0) = с0 – cб0 ( B01 A0) = с0 – y0A0 = ( z 0j | j 1, n ). Элементы матрицы B–1, если она существует, обозначим βrs: B–1 = (βrs | r 1, m , s 1, m ). Элементы матрицы B01 обозначим β 0rs : B01 = ( β 0rs | r 1, m , s 1, m ). Если задача P(A, b, c) разрешима, то функция максимумов V(A, b, c) в точке (A, b, c) определена и равна оптимальному значению ЦФ в задаче P(A, b, c). Теорема 2.21 (о маргинальных значениях).85 Предположим, что базис β удовлетворяет условиям теоремы 2.20. Тогда в некоторой окрестности O точки (A0, b0, c0) определены функция V(A, b, c) и вектор-функции x(A, b), y(A, c), причем: V 0 0 0 V 0 0 0 ( A , b , c ) = xs0 ; ( A , b , c ) = yi0 ; bi сs 85 Доказательство в приложении 6. Название теоремы связано с тем, что частные производные являются предельными (marginal – англ.) величинами. 49 V 0 0 0 ( A , b , c ) = – yi0 x 0j ; aij x j 0 0 y ( A , b ) = i ( A0 , c 0 ) = 0; br сs x j 0 0 x ( A , b ) = β 0ki , если j = j(k) N(β), иначе j ( A0 , b 0 ) = 0. bi bi Теорема 2.20 гарантирует оптимальность, невырожденность и двойственную невырожденность базиса β(A) в окрестности O точки A0. Поэтому в теореме 2.21 точку A0 можно заменить любой точкой окрестности O. Применение теоремы 2.21 демонстрирует пример 2.10 раздела 2.9. 0 Зная частные производные функции n переменных F(x) в точке x0 = ( x j | j 1, n )T, можно при переходе от x0 к точке x = (xj | j 1, n )T оценить прирост функции через приросты ее аргументов. По определению дифференцируемости функции в точке86 F(x) – F(x0) = F x j ( x 0 ) ( x j x 0j ) + о(|x – x0|). j 87 Ниже мы увидим, что для функций V(A, b, c), x(A, b) и y(A, c) в некоторых частных случаях эта приближенная формула становится точной и описывает изменения функций при переходе от задачи P0 к возмущенной задаче P(A, b, c). Теоремы 2.20 и 2.21 справедливы, если оптимальный базис задачи P0 является невырожденным и двойственно невырожденным. Проанализируем эти условия. Рассмотрим задачу P в канонической форме с матрицей A: f(x) = с j x j → max при условиях aij x j = bi для всех i и xj ≥ 0 для всех j. (2.55) j j Будем считать, что задача разрешима и строки ее матрицы линейно независимы. Множества оптимальных решений задач P и P* обозначим соответственно X * и Y *. Для этой задачи нетривиальным является только одно из условий дополняющей нежесткости (2.53), которое должно выполняться для любой пары векторов x = (xj | j 1, n )T X * и y = (yi | i 1, m ) Y * xj( aij yi – cj) = 0 для всех j. i Это условие требует, чтобы хотя бы один из сомножителей в левой части равенства был равен нулю. Более сильное требование сформулировано ниже. Определения и обозначения. Пусть P – произвольная ЗЛП в канонической форме с матрицей A, β – базис матрицы A. Базисные векторы задач P и P*, порожденные базисом β, обозначим x(β) = (xj | j 1, n )T и y(β) = (yi | i 1, m ) соответственно. Базис β удовлетворяет условию строгой дополняющей нежесткости, если для каждого j ровно один из сомножителей равен нулю в произведении xj( aij yi – cj). i Переменную назовем существенной в задаче P, если существует допустимое решение задачи, в котором эта переменная имеет положительное значение. Теорема 2.22 (об условиях единственности решения).88 Пусть задача P записана в канонической форме (2.55), все ее переменные существенны и β – ее оптимальный базис. Тогда следующие условия эквивалентны: 86 87 См. [26, стр. 251 – 252]. См. утверждения (б) следствий 2.14 и 2.15. 50 (а) базис β является невырожденным и двойственно невырожденным; (б) базис β удовлетворяет условию строгой дополняющей нежесткости; (в) базис β является единственным оптимальным базисом в задаче P, причем каждая из задач P и P* имеет единственное решение. Таким образом, основным содержанием условий, обеспечивающих устойчивость оптимального базиса и существование указанных в теореме 2.21 частных производных, является однозначная разрешимость задач P и P*. 2.8.2. Чувствительность к изменениям коэффициентов целевой функции Предположение 2.3. Возмущения распространяются только на вектор с0. Параметрами возмущенной задачи являются координаты вектора с. Определения и обозначения. Учитывая предположение 2.3, будем вместо P(A, b, c), P*(A, b, c) и V(A, b, c) писать P(с), P*(с) и V(с). Элементы матрицы A0(β) = B01 A0 обозначим αij: A0(β) = (αij | i 1, m , j 1, n ). Базисный вектор, порожденный базисом β в задаче P*(c), обозначим y(c) = (yi(c) | i 1, m ). Положим z(c) = (zj(c) | j 1, n ) = с – cбA0(β) = с – y(c)A0. Множество всех векторов с, для которых базис β является оптимальным в задаче P(c), назовем областью постоянства оптимального решения (ОПОР).89 Теорема 2.23 (о чувствительности к изменениям коэффициентов ЦФ). (а) ОПОР совпадает с множеством решений следующей системы линейных неравенств относительно координат вектора c: m c i 1 j (i ) α ij ≥ cj для j N(β). (2.56) (б) Если c ОПОР, то векторы x0 и y(c) оптимальны в задачах P(c) и P*(c) соответственно, причем y(c) и V(c) линейно зависят от cб: y(c) = cб B01 , V(c) = cб xб0 . (2.57) 0 (в) Если все неравенства (2.56) являются строгими, то x – единственное решение задачи P(c). В противном случае при условии невырожденности решения x0 задача P(c) имеет альтернативное решение. Доказательство. (а) Допустимость базиса β в задаче P(c) следует из его допустимости в задаче P0. Тогда базис β оптимален в задаче P(c), если и только если он является двойственно допустимым, то есть zj(c) ≤ 0 для всех j. Отсюда, учитывая определение вектора z(c), получаем (2.56). (б) Пусть c ОПОР. Тогда базис β оптимален в задаче P(c) по определению ОПОР, а векторы x0 и y(c) оптимальны в задачах P(c) и P*(c) соответственно по следствию 2.10. При этом y(c) = cб B01 по определению и V(c) = cx = cб xб0 , так как xн0 = 0n–m. (в) Если все неравенства (2.56) являются строгими, то zj(c) < 0 для всех j N(β) и x0 – единственное решение задачи P(c) по утверждению (а) теоремы 2.19. В противном случае zj(c) = 0 для некоторого j N(β). Если при этом решение x0 невырожденное, то альтернативное решение существует по утверждению (в) теоремы 2.19. # Из формул (2.57) следует, что значения производных функций V(A, b, c) и xj(A, b) по cs, установленные теоремой 2.21 для точки (A0, b0, c0), сохраняются для точки (A0, b0, c), если c ОПОР. 88 89 Доказательство в приложении 7. Этот термин обоснован утверждением (б) теоремы 2.23. 51 Формулы (2.56) и (2.57) можно записать в более удобной форме, если представить вектор с как сумму исходного вектора c0 и некоторого вектора приращений. Следствие 2.14. Пусть c = c0 + Δ, где Δ = (δj | j 1, n ). (а) с ОПОР, если и только если m α δ i 1 ij j (i ) – δj ≥ z 0j для всех j N(β). (2.58) (б) Если Δ удовлетворяет условиям (2.58), то y(c) = y0 + Δб B01 , V(c) = V(c0) + Δб xб0 . Доказательство. (а) Подставим c = c0 + Δ в неравенство (2.56) и преобразуем его, учитывая определение вектора z0: m 0 ≤ (c 0j (i ) δ j (i ) )αij – ( c 0j + δj) = i 1 m δ j (i )αij – δj – ( c 0j – i 1 m c0j (i ) αij ) = i 1 m δ i 1 j (i ) αij – δj – z 0j , что эквивалентно (2.58). (б) Преобразуем выражения (2.57): y(c) = cб0 B01 + Δб B01 = y0 + Δб B01 , V(c) = cб0 xб0 + Δб xб0 = V(c0) + Δб xб0 . # Следствие 2.14 выражает ОПОР, y(c) и V(c) через приращения координат вектора c0. Теперь, в рамках предположения 2.3, рассмотрим частный случай, когда изменяется только координата вектора c0 с номером s, cj = с 0j для j s. Обозначение. Допустим, что задачи P(c) и P0 различаются только значениями коэффициента ЦФ при xs. Тогда Uc(s) – множество всех значений cs, при которых базис β остается оптимальным в задаче P(c). Теорема 2.24 (ОПОР при изменении одного коэффициента ЦФ). Пусть задачи P(c) и P0 различаются только значениями коэффициента ЦФ при xs. (а) Uc(s) – это непустой (возможно бесконечный) промежуток в R (точка, отрезок, луч, прямая). Если s N(β), то Uc(s) = (–∞, с s0 + | z s0 |]. (б) Если cs Uc(s), то вектор x0 оптимален в задаче P(c). (в) Пусть cs Uc(s). Если s N(β), то y(c) = y0, если же s = j(k) N(β), то yi(c) = yi0 + (cs – с s0 ) β 0ki для всех i. (г) Если cs Uc(s), то V(c) = V(c0) + (cs – с s0 ) xs0 . (д) Если cs – внутренняя точка промежутка Uc(s), то x0 – единственное решение задачи P(c). Если cs – граница промежутка Uc(s) и базис β является невырожденным, то задача P(c) имеет альтернативное решение, в котором xs > 0. Доказательство. По определению Uc(s) ОПОР. (а) Поскольку cj = с 0j для j s, система линейных неравенств (2.56) содержит одну неизвестную величину cs и описывает многогранное множество в R, непустое, так как с0 Uc(s). Это промежуток в R (точка, отрезок, луч, прямая). Если s N(β), то сj(i) = с 0j (i ) для всех i и cj = с 0j для всех отличных от s номеров i N(β). Поэтому неравенство (2.56) при j ≠ s эквивалентно z 0j ≤ 0 и выполняется, так как базис β оптимален в задаче P0. При j = s неравенство (2.56) имеет вид m c i 1 0 j (i ) αis ≥ cs. Вычитая из обеих частей неравенства с s0 , получим: – z s0 ≥ cs – с s0 , или cs (–∞, с s0 – z s0 ]. При этом z s0 ≤ 0, так как базис β оптимален в задаче P0. (б) Утверждение (б) следует из соответствующего утверждения теоремы 2.23. 52 (в) Из (2.57) получаем yi(c) = c β . 0 j ( r ) ri r Если s N(β), то cj(r) = с 0j (r ) для всех r и y(c) = y0. Пусть s = j(k) N(β). Тогда yi(c) = c β + (cs – с s0 ) β 0ki = yi0 + (cs – с s0 ) β 0ki . 0 0 j ( r ) ri r (г) Утверждение (г) легко следует из (2.57). (д) Все неравенства (2.38) в точке c являются строгими, если и только если cs – внутренняя точка промежутка Uc(s). В условиях предположения 2.4 неравенства (2.36) эквивалентны (2.38). Поэтому утверждение (д) выводится из следствия 2.13. # Промежуток Uc( j) указывает, в каких границах изменение коэффициента ЦФ при xj сохраняет оптимальность решения x0. Заметим, что из формулы утверждения (г) теоремы 2.24 можно найти значение производной функции V(c) по cs на промежутке Uc(s). Оно совпадает со значением, указанным теоремой 2.21. Допустим, что задача P0 решена с помощью надстройки «Поиск решения» MS Excel. В таблице «Изменяемые ячейки» отчета об устойчивости столбцы «Допустимое Увеличение» и «Допустимое Уменьшение» указывают отклонения границ промежутков Uc( j) от с 0j для всех j 1, n . Бесконечные отклонения, в частности, те, которые соответствуют нижним границам Uc( j) для j N(β), MS Excel заменяет числами 1E+30 = 1030. Теоремы 2.21 – 2.24 позволяют прогнозировать последствия изменения коэффициентов ЦФ задачи P0: теорема 2.21 дает приближенные оценки, из теорем 2.22 – 2.24 получаем точные значения в границах ОПОР. Полный и точный прогноз можно получить, решив задачу P(c). Если задача P0 решена не «вручную», а с помощью подходящего математического обеспечения, то, как правило, нетрудно изменить исходные данные и решить модифицированную задачу. Но теоремы 2.21 – 2.24 незаменимы при решении обратных задач, в которых нужно найти подходящее в каком-то смысле значение коэффициента ЦФ. При анализе обратной задачи часто бывает полезным следующее простое утверждение. Лемма 2.7. Если БДР x(β) порождается также базисом β' ≠ β, то оно вырожденное. Доказательство. Из β' ≠ β следует N(β') ≠ N(β). Пусть x(β) = (xj | j 1, n ). По условию x(β) = x(β'). В базисе β столько же столбцов, сколько в β', поэтому существует j N(β) \ N(β'). Из j N(β') следует xj = 0. Но j N(β), поэтому x(β) – вырожденное БДР. # Сформулируем методику решения двух обратных задач.90 Задача 2.1. Предположим, что β – невырожденный базис и изменяется только коэффициент ЦФ при переменной xj. Нужно найти такое значение cj, при котором x0 останется оптимальным решением возмущенной задачи, а оптимальное значение ЦФ будет равно заданной величине F. Решение. Если x 0j = 0 (в частности, если j N(β)), то задача неразрешима, так как cj не влияет на значение ЦФ. Пусть x 0j > 0. БДР x0 должно быть оптимальным в задаче P(c), и оно имеет единственный базис β по лемме 2.7. Поэтому искомое значение cj не должно выводить вектор c из ОПОР, то есть cj Uc(( j). Тогда F = V(c) = V(c0) + (cj – с 0j ) x 0j по утверждению (г) теоремы 2.24. Отсюда F V (c 0 ) cj = с 0j + . x 0j Это значение cj решает задачу, если cj Uc( j), в противном случае задача неразрешима. # 90 Применение методики см. в примере 2.11 раздела 2.9. 53 Задача 2.2. Сохраняя предположения задачи 2.1, допустим, что s N(β) (следовательно, xs0 = 0). Нужно найти наименьшее значение cs, при котором переменная xs (например, выпуск продукта s) войдет с ненулевым значением в оптимальное решение возмущенной задачи. Решение. Из утверждения (а) теоремы 2.24 получаем Uc(s) = (–∞, с s0 + | z s0 |]. По утверждению (д), если cs < сs0 + | z s0 |, то x0 является единственным решением задачи P(c). Поскольку xs0 = 0, искомое значение cs должно быть не меньше чем сs0 + | z s0 |. Из s N(β) следует, что cj(i) = с 0j (i ) для всех i, поэтому при cs = сs0 + | z s0 |, на границе Uc(s), имеем: m zs(c) = cs – c j (i )αis = ( с s0 + | z s0 |) – i 1 m c i 1 0 j (i ) αis = z( с s0 ) + | z s0 | = 0. Тогда по следствию 2.13 задача P(c) имеет альтернативное решение с положительным значением переменной xs. 2.8.3. Чувствительность к изменениям правых частей ограничений Откажемся от предположения 2.3 и рассмотрим еще один частный случай возмущенной задачи. Предположение 2.4. Возмущения распространяются только на вектор b0. Параметрами возмущенной задачи являются координаты вектора b. Определения и обозначения. Учитывая предположение 2.4, будем вместо P(A, b, c), P*(A, b, c) и V(A, b, c) писать P(b), P*(b) и V(b). Базисный вектор, порожденный базисом β в задаче P(b), обозначим x(b) = (xj(b) | j 1, n ). Множество всех векторов b, для которых базис β является оптимальным в задаче P(b), назовем областью постоянства двойственных оценок (ОПДО).91 Теорема 2.25 (о чувствительности к изменениям правых частей ограничений). (а) ОПДО совпадает с множеством решений следующей системы линейных неравенств относительно координат вектора b: B01 b ≥ 0m, или β 0ri bi ≥ 0 для всех r 1, m . (2.59) i (б) Если b ОПДО, то y является вектором двойственных оценок в задаче P(b), а оптимальное решение задачи и максимальное значение ЦФ линейно зависят от b: xj(b) = β is0 bs для j = j(i) N(β) и xj(b) = 0 для j N(β); V(b) = yi0bi . 0 s i (в) Решение x(b) задачи P(b) является невырожденным БДР, если вcе условия (2.59) выполняются как строгие неравенства, и вырожденным – в противном случае. Доказательство. (а) Задача P*(b) отличается от задачи P0* только целевой функцией, поэтому y0 = y(β) – допустимое решение задачи P*(b), что эквивалентно двойственной допустимости базиса β в задаче P(b) по утверждению (в) леммы 2.4. Следовательно, базис β оптимален в задаче P(b), если и только если он является допустимым в задаче P(b), то есть B01 b ≥ 0m. (б) Пусть b ОПДО. Тогда базис β оптимален в задаче P(b), а x(b) и y0 оптимальны в задачах P(b) и P*(b) соответственно по следствию 2.10. Положим x = x(b). Имеем xб(β) = B01 b и xн(β) = 0n–m по определению, V(b) = f(x(b)) = h(y0) = y0b по теореме 2.15. 91 Термин обоснован утверждением (б) теоремы 2.25. 54 (в) Из утверждения (б) следует, что в базисной части вектора x(b) есть нулевая координата, если и только если хотя бы одно из неравенств (2.59) выполняется как равенство. # Из утверждения (б) теоремы 2.25 следует, что значения производных функций V(A, b, c) и xj(A, b) по bi, установленные теоремой 2.21 для точки (A0, b0, c0), сохраняются для точки (A0, b0, c), если c ОПОР. Утверждение (б) теоремы 2.25 можно записать в более удобной форме, если представить вектор b как сумму исходного вектора b0 и некоторого вектора приращений. Следствие 2.15. Пусть b = b0 + Δ, где Δ = (δi | i 1, m )T. (а) b ОПДО, если и только если xб0 + B01 Δ ≥ 0m. (б) Если x = x(b), то xб = xб0 + B01 Δ. (в) Если xб0 + B01 Δ ≥ 0m, то V(b) = V(b0) + y0Δ. Доказательство. (а) Подставим b = b0 + Δ в неравенство (2.59) и преобразуем его, учитывая определение БДР: 0m ≤ B01 b = B01 b0 + B01 Δ = xб0 + B01 Δ. (б) По определению БДР имеем xб = B01 b. Последнее выражение преобразуем, как в доказательстве утверждения (а). (в) Если xб0 + B01 Δ ≥ 0m, то b ОПДО по утверждению (а). Тогда V(b) = y0b по утверждению (б) теоремы 2.25. Отсюда V(b) = y0b0 + y0Δ = V(b0) + y0Δ. # Следствие 2.15 выражает ОПОР, x(b) и V(b) через приращения вектора b0. Усиливая предположение 2.4, рассмотрим случай, когда изменяется только координата вектора b0 с номером r, bi = bi0 для i r. Обозначение. Допустим, что задачи P(b) и P0 различаются только значениями правой части ограничения с номером r. Тогда Ub(r) – множество всех значений br, при которых базис β остается оптимальным в задаче P(b). Теорема 2.26 (ОПДО при изменении правой части одного ограничения). Пусть задачи P(b) и P0 различаются только значениями правой части ограничения с номером r. (а) Ub(r) – это непустой (возможно, бесконечный) промежуток в R (точка, отрезок, луч, прямая). (б) Если br Ub(r), то вектор y0 оптимален в задаче P*(b). (в) Если br Ub(r), то xj(b) = x 0j + (br – br0 ) β ir0 для j = j(i) N(β) и xj(b) = 0 для jN(β). (г) Если br Ub(r), то V(b) = V(b0) + (br – br0 ) yr0 . (д) Решение x(b) задачи P(b) является невырожденным БДР, если br – внутренняя точка промежутка Ub(r), и вырожденным, если br – граничная точка промежутка Ub(r). Доказательство. Утверждение (а) следует из того, что br0 Ub(r) и множество решений системы линейных неравенств (2.59) относительно одной неизвестной br является многогранным множеством в R. Утверждение (б) следует из утверждения (б) теоремы 2.25. Утверждения (в) и (г) получаются из утверждений (б) и (в) следствия 2.15, если вектор Δ определить следующим образом: δr = br – br0 , δi = 0 при i ≠ r. Утверждение (д) следует из утверждения (в) теоремы 2.25. # Промежуток Ub(i) указывает, в каких границах изменение правой части ограничения с номером i сохраняет вектор теневых цен y0. Заметим, что из формул, приведенных в утверждениях (в) и (г) теоремы 2.26, можно найти производные функций x(b) и V(b) на промежутке Ub(i). Они согласуются со значениями производных, указанными теоремой 2.21. 55 Допустим, что задача P0 решена с помощью надстройки «Поиск решения» MS Excel. Тогда столбцы «Допустимое Увеличение» и «Допустимое Уменьшение» таблицы «Ограничения» отчета об устойчивости указывают отклонения границ промежутков Ub(i) от bi0 для всех i 1, m . Отклонения, соответствующие бесконечным границам, MS Excel заменяет числами 1E+30 = 1030. Теоремы 2.21, 2.25 и 2.26 позволяют прогнозировать последствия изменения правых частей ограничений задачи P0: первая дает приближенные оценки, другие – точные оценки в границах ОПДО. Как и в разделе 2.8.2, прикладная полезность теорем об устойчивости и чувствительности связана, в основном, с возможностью решения обратных задач, в которых нужно найти подходящее в каком-то смысле значение правой части ограничения. Проанализируем две такие задачи (см. также пример 2.12 раздела 2.9). Задача 2.3. Предположим, что изменяется только правая часть ограничения с номером i. Нужно найти такое значение bi (например, запас ресурса i), при котором в возмущенной задаче базис β останется оптимальным и оптимальное значение ЦФ будет равно данному числу F. Решение. Чтобы базис β был оптимален в возмущенной задаче, искомое значение bi должно лежать в Ub(i). Пусть bi Ub(i). Тогда базис β оптимален и утверждение (г) теоремы 2.26 дает уравнение F = V(b) = V(b0) + (bi – bi0 ) yi0 . При yi0 = 0 значение V(b) не зависит от bi, вследствие чего задача неразрешима. Пусть yi0 0. Тогда из приведенного выше уравнения найдем F V (b 0 ) . yi0 Если это значение bi не лежит в Ub(i), то V(b) = F недостижимо без изменения базиса. Если же bi Ub(i), то bi решает задачу. Пусть bi Ub(i) и вектор b получен из b0 заменой bi0 на bi. Тогда по формулам утверждения (в) теоремы 2.26 найдем оптимальный план x(b) возмущенной задачи, для которого V(b) = F. # bi = bi0 + Задача 2.4. Предположим, что изменяется только правая часть ограничения с номером r и базис β является двойственно невырожденным. Нужно найти такое значение br, при котором в возмущенной задаче базис β останется оптимальным и оптимальное значение переменной xj (например, производство продукта j) будет равно заданной величине v > 0, v ≠ x 0j . Решение. Чтобы базис β был оптимален в возмущенной задаче, искомое значение br должно лежать в Ub(r). Пусть br Ub(r). Тогда базис β оптимален, а из его двойственной невырожденности следует, что x(b) – единственное решение возмущенной задачи, см. утверждение (а) теоремы 2.19. Из утверждения (в) теоремы 2.26 получаем xj(b) = x 0j + (br – br0 ) β ir0 для j = j(i) N(β) и xj(b) = 0 для j N(β). Следовательно, задача неразрешима, если либо jN(β), либо j = j(i) N(β) и β ir0 = 0. Допустим, что j = j(i) N(β) и β ir0 0. Из условия v = xj(b) найдем br = br0 + v x 0j β ir0 . Если это значение br не лежит в Ub(r), то значение xj = v в оптимальном плане недостижимо без изменения базиса. Пусть br Ub(r) и вектор b получен из b0 заменой br0 на br. Тогда по формулам утверждения (в) теоремы 2.26 найдем оптимальный план x(b) возмущенной задачи, для которого xj(b) = v. # 56 2.8.4. Нормы замещения В реальности нередко возникает возможность бартера, то есть замены некоторого количества одного из ингредиентов каким-то количеством другого ингредиента. Зафиксируем номера ингредиентов: k и l. Цель этого раздела – выяснить, в каких объемах и пропорциях целесообразно заменять ингредиент k ингредиентом l (предполагая, что модель линейна и измененный вектор правых частей ограничений попадает в ОПДО). Будем использовать обозначения раздела 2.8.3. Определения и обозначения. Оптимальный базис β задачи P0 порождает базисный вектор x(β) = x0 = ( x 0j | i 1, m ) этой задачи и базисный вектор y(β) = y0 = ( yi0 | i 1, m ) задачи P0 . B01 = ( β rs | r 1, m , s 1, m ) – обратная базисная матрица для базиса β. Если yl0 ≠ 0, положим rkl = yk0 / yl0 . Для k 1, m и l 1, m определим вектор b(, δ) = (bi | i 1, m )T следующим образом: bk = bk0 + , bl = bl0 – α, bi = bi0 для i{k, l}. (2.60) 0 Заменив в задаче P0 вектор b вектором b(δ), получим возмущенную задачу P(b(, δ)). Переход от задачи P0 к задаче P(b(, δ)) будем интерпретировать как замещение ингредиента l ингредиентом k в количестве и в отношении 1:α (каждая единица ингредиента k замещает α единиц ингредиента l). Заметим, что знаки α и не фиксированы. Будем считать замещение целесообразным, если оно приводит к увеличению оптимального значения ЦФ: V(b(, δ)) > V(b0). Ингредиент i назовем выгодным, если yi0 > 0 и невыгодным, если yi0 < 0.92 Теорема 2.27 (о замещении ингредиентов). Пусть b(, δ) ОПДО и δyl0 ≠ 0. Тогда справедливы следующие утверждения. (а) V(b(, δ)) > V(b0), если и только если либо δyl0 > 0 и rkl > α, либо δyl0 < 0 и rkl < α. (б) Множество всех , для которых b(, δ) ОПДО, совпадает с множеством решений системы линейных неравенств: x 0j (i ) + ( βik0 – α βil0 ) ≥ 0 для всех i 1, m . Доказательство. Из (2.60) ясно, что b(, δ) = b0 + Δ, где Δ = (δi | i 1, m )T, k = , l = – α, i = 0 для i {k, l}. (а) Вектор y0 = y(β) является вектором двойственных оценок в задаче P0 (по следствию 2.10) и в задаче P(b(, δ)) (по утверждению (б) теоремы 25). Тогда V(b(, δ)) = V(b0) + y0Δ по утверждению (в) следствия 2.15 и V(b(, δ)) > V(b0) эквивалентно y0Δ > 0. Учитывая структуру вектора Δ, получим δy k0 – α δyl0 > 0, или δy k0 > α δyl0 . Разделив обе части последнего неравенства на δyl0 , получим rkl > α, если δyl0 > 0, или rkl < α, если δyl0 < 0. (б) Утверждение (а) следствия 2.15 дает систему неравенств, описывающую ОПДО: xб0 + B01 Δ ≥ 0m. В скалярной записи, с учетом структуры вектора Δ, получим x 0j (i ) + ( βik0 – α βil0 ) ≥ 0 для всех i 1, m . # Утверждение (а) описывает множество пар (α, δ) таких, что замещение ингредиента l ингредиентом k в количестве и в отношении 1:α целесообразно. Если ингредиент l выгоден 92 Задача P0, по предположению, записана в канонической форме, поэтому двойственные оценки не ограничены по знаку. 57 ( yl0 > 0), то за каждую единицу ингредиента k целесообразно отдать (при > 0) меньше rkl или получить (при < 0) больше rkl единиц ингредиента l. Аналогично, если ингредиент l невыгоден, то за каждую единицу ингредиента k целесообразно отдать больше rkl или получить меньше rkl единиц ингредиента l. В любом случае объем замещения δ ограничен условием b(, δ) ОПДО, так как при b(, δ) ОПДО двойственные оценки задачи P0, как правило, не совпадают с двойственными оценками задачи P(b(, δ)) и, следовательно, не дают достаточной информации для обоснования выгодности замещения. Утверждение (б) дополняет утверждение (а) описанием (для каждого α) тех значений δ, при которых b(, δ) ОПДО. Из доказательства утверждения (а) видно, что V(b(, δ)) = V(b0), если α = rkl. Следовательно, rkl – «нейтральная» пропорция обмена, при которой замещение, удовлетворяющее условию b(rkl, δ) ОПДО, не влияет на оптимальное значение ЦФ. Определения. Величину rkl называют нормой замещения ингредиента l ингредиентом k. При фиксированном α множество всех , для которых b(, δ) ОПДО, обозначим Ukl(α). Следствие 2.16. Множество Ukl(α) – замкнутый (возможно, бесконечный) промежуток в R, не совпадающий с R и включающий ноль. Доказательство. Утверждение (б) теоремы 2.27 описывает Ukl(α) как множество решений системы линейных неравенств x 0j (i ) + (βik – αβil) ≥ 0 для i 1, m . Если βik – αβil = 0, то соответствующее неравенство выполняется, так как x0 ≥ 0n. Кроме того, ≥ – x 0j (i ) /(βik – αβil), если βik – αβil > 0, ≤ – x 0j (i ) /(βik – αβil), если βik – αβil < 0. Поэтому решением системы неравенств является промежуток с левым концом dkl(α) = max{– x 0j (i ) /(βik – αβil) | βik – αβil > 0} и правым концом Dkl(α) = min{– x 0j (i ) /(βik – αβil) | βik – αβil < 0}.93 Если βik – αβil < 0 для какогото i, то dkl(α) (–, 0], иначе dkl(α) = –. Если βik – αβil > 0 для какого-то i, то Dkl(α) [0, +), иначе Dkl(α) = +. Обе границы бесконечны, только если βik – αβil = 0 для всех i, но тогда столбцы k и l матрицы B01 были бы пропорциональны, что невозможно. Поэтому Ukl(α) ≠ R. Ukl(α) ≠ , так как 0 Ukl(α). # Определение. Промежуток Ukl(α) указывает границы замещения ингредиента l ингредиентом k в отношении 1:α. Поскольку 0 Ukl(α), этот промежуток может содержать отрицательные числа. Отрицательное значение Ukl(α) описывает «обратную» замену: правая часть ограничения с номером k уменьшается на ||, а правая часть ограничения с номером l увеличивается на α||. Предположим, что задача P0 является правильно построенной канонической формой задачи планирования производства, которую обозначим P. Если ограничения задачи P с номерами k и l являются ресурсными, то bk, bl, y k0 , yl0 и rkl неотрицательны. Тогда интерпретация утверждения (а) теоремы 2.27 очевидна: при > 0 выгодно отдать за единицу ресурса k меньше rkl единиц ресурса l и невыгодно отдать больше; при < 0 выгодно получить за единицу ресурса k больше rkl единиц ресурса l и невыгодно получить меньше. Аналогичные интерпретации легко сформулировать для ресурса и продукта или двух продуктов. Предположим, например, что система, описанная задачей P, должна произвести не менее bk > 0 продукта k и может потребить не более bl > 0 ресурса l. Тогда в задаче P присутствуют ограничения 93 Как обычно, мы считаем, что максимальный элемент пустого множества равен –∞, а минимальный – равен +∞. 58 a kj x j ≥ bk и j a x lj j ≤ bl. j В соответствии с правилами построения двойственной задачи y k0 ≤ 0 и yl0 ≥ 0. Допустим, что обе оценки не равны нулю. Тогда rkl < 0. Прирост bl (дополнительный ресурс) увеличивает, а прирост bk (дополнительные обязательства) уменьшает оптимальное значение ЦФ. Пусть Ukl(α). При > 0 имеем δyl0 > 0. Выгодно принять дополнительные обязательства в размере , если α < rkl, то есть α < 0 и |α| > |rkl|. Это значит, что за каждую дополнительно выпущенную единицу продукта k нужно получить больше |rkl| единиц ресурса l. При < 0 выгодно отказаться от производства единиц продукта k, отдавая (для компенсации) α < |rkl| единиц ресурса l за каждую единицу недопоставки. Если α = rkl, то ущерб | δy k0 | от увеличения bk на в точности компенсируется выгодой от увеличения bl на |rkl|. Легко узнать, выгодно ли обменять l единиц ингредиента l на k единиц ингредиента k, достаточно решить соответствующую задачу P(b). Изложенная выше теория позволяет отвечать на более трудные вопросы. Мы можем выяснить, при каких значениях α выгодно увеличить ( > 0) правую часть ограничения k, уменьшая правую часть ограничения l в отношении 1:α. По утверждению (а) теоремы 2.27 должно выполняться условие α < rkl при yl0 > 0 и условие α > rkl – при yl0 < 0 (см. пример 2.13 раздела 2.9). Если подходящее значение α зафиксировано, то можем узнать, в каких границах выгодно замещать ингредиент l ингредиентом k в отношении 1:α. По утверждению (а) теоремы 2.27 при α < rkl выгодны те значения Ukl(α), которые по знаку совпадают с yl0 , при α > rkl следует выбирать значения Ukl(α), противоположные yl0 по знаку. Подчеркнем, что полезность перехода от задачи P0 к задаче P(b(, δ)) невозможно оценить, опираясь только на результаты решения задачи P0, если при этом переходе изменяется оптимальный базис. Другими словами, все рассуждения раздела 2.8.4 справедливы только для b(, δ) ОПДО. 2.9. Примеры Пример 2.1 (базисы и вершины). Рассмотрим следующую ЗЛП в стандартной форме: f(x) = x1 + x2 + 3x3 → max при условиях x1 + x3 ≤ 2, x2 + x3 ≤ 2, x = (x1, x2, x3)T ≥ 03. x3 2 S 1 O 1 1 A 2 x1 C 2 B x2 Рис. 5. Иллюстрация к примеру 2.1 На рис. 5 изображено множество X допустимых решений задачи. Плоскость x1 + x3 = 2 параллельна координатной оси Оx2, а оси Оx1 и Оx3 пересекает в точках (2, 0, 0) и (0, 0, 2) со59 ответственно. Следовательно, это плоскость треугольника SAB. Аналогично, легко проверить, что треугольник SBC лежит в плоскости x2 + x3 = 2. Плоскости SAB и SBC пересекаются по прямой SB и ограничивают множество X. Поскольку все переменные неотрицательны, множество X ограничено также координатными плоскостями. Точка O допустима, поэтому множество допустимых решений задачи состоит из внутренних и граничных точек пирамиды SOABC, изображенной на рис. 5. Запишем каноническую форму задачи: fк(u) = x1 + x2 + 3x3 → max при условиях x1 + x3 + s1 = 2, x2 + x3 + s2 = 2, u = (x1, x2, x3, s1, s2)T ≥ 05. Здесь u – вектор переменных канонической формы. ЦФ канонической формы формально зависит от пяти переменных (хотя фактически – от трех), поэтому она обозначена не так, как ЦФ исходной задачи. Матрица канонической формы (над столбцами указаны соответствующие переменные): x1 x2 x3 s1 s2 1 0 1 1 0 А = 0 1 1 0 1 . Система уравнений канонической формы имеет вид Au = b = (2, 2)T. Строки матрицы линейно независимы, поэтому все ее базисы состоят из двух столбцов (см. лемму 2.1). Из пяти столбцов можно составить 10 пар (см. табл. 1). В двух из них столбцы линейно зависимы, остальные соответствуют базисам. Таблица 1 Базисы матрицы A Номер пары Номера столбцов Номер базиса, i Обозначение базиса 1 1, 2 1 β1 2 1, 3 2 β2 3 1, 4 – – 4 1, 5 3 β3 5 2, 3 4 β4 6 2, 4 5 β5 7 2, 5 – – 8 3, 4 6 β6 9 3, 5 7 β7 10 4, 5 8 β8 Для базиса β1 имеем N(β1) = {1, 2}. Запишем базисную матрицу и обратную к ней: 1 0 B(β1) = 0 1 = B–1(β1). Приведем систему уравнений канонической формы к базису β1 умножением на B–1(β1) слева: A(β1)u = (B–1(β1)A)u = B–1(β1)b = b(β1). Поскольку B–1(β1) – единичная матрица, A(β1) = A и b(β1) = b. Следовательно, uб(β1) = (x1, x2)T = b(β1) = (2, 2)T и u(β1) = (2, 2, 0, 0, 0)T. Видим, что uб(β1) > 02, поэтому β1 – допустимый базис и u(β1) – БДР. Этому БДР соответствуют допустимое решение (2, 2, 0)T исходной задачи и вершина B на рисунке. Перейдем к базису β2. Для него 1 1 1 1 0 N(β2) = {1, 3}, B(β2) = 0 1 , B–1(β2) = 0 1 , b(β2) = B–1(β2)b = 2 (для вычисления обратной матрицы можно использовать функцию МОБР пакета MS Excel). Отсюда uб(β2) = (x1, x3)T = b(β2) = (0, 2)T ≥ 02, и β2 – допустимый базис. Он порождает БДР u(β2) = (0, 0, 2, 0, 0)T, которому соответствуют допустимое решение x = (0, 0, 2)T исходной задачи и точка S на рисунке. Аналогично, для базиса β3: 1 0 2 x N(β3) = {1, 5}, B(β3) = 0 1 = B–1(β3), b(β3) = 2 = uб(β3) = 1 > 02. s2 T Тогда u(β3) = (2, 0, 0, 0, 2) . БДР u(β3) соответствует допустимому решению x = (2, 0, 0)T исходной задачи и точке A на рисунке. Для базиса β4 имеем: x 0 1 1 1 0 N(β4) = {2, 3}, B(β4) = 1 1 , B–1(β4) = 1 0 , b(β4) = 2 = uб(β4) = 2 . x3 60 Тогда u(β4) = (0, 0, 2, 0, 0)T = u(β2), базисы β2 и β4 порождают одно и то же БДР, которому соответствует точка S. Перейдем к базису β5: N(β5) = {2, 4}, 0 1 2 x B(β5) = 1 0 = B–1(β5), b(β5) = 2 = uб(β5) = 2 > 02. s1 T Можем записать u(β5) = (0, 2, 0, 2, 0) , это БДР, соответствующее точке C на рис. 5. Анализ остальных базисов поручаем читателю. Пример 2.2 (симплекс-метод и метод искусственного базиса). Предприятие, выпускающее продукцию трех видов (A, B, C), составляет план производства на месяц. План должен максимизировать прибыль при условии, что полученная за месяц выручка обеспечит оборотный капитал в размере 2800 тыс. руб., необходимый для работы предприятия в следующем месяце. Предварительный анализ показал, что только ограниченность трудовых ресурсов и производственных мощностей (используется оборудование двух типов) может лимитировать производство. Информация, необходимая для формализации задачи, сведена в табл. 2. Денежные величины указаны в тыс. руб. Ресурсами являются рабочая сила (измеряется в человеко-часах) и оборудование двух типов (точнее – время работы оборудования, измеряемое в станкочасах, машино-часах и т.п.). Коэффициенты удельной ресурсоемкости показывают, сколько ресурсов каждого типа (человеко-часов, времени работы оборудования) требуется для производства единицы продукции. В последнем столбце указано, сколько человеко-часов и, соответственно, часов работы оборудования каждого типа можно использовать за месяц. Таблица 2 Исходные данные к примеру 2.2 Ресурс Оборудование типа 1 Оборудование типа 2 Рабочая сила Оптовая цена Удельная прибыль Характеристики продукции A B C Удельная ресурсоемкость 1 2 4 3 3 1 2 4 6 7 8 9 2 4 5 Наличие 721 900 1470 Пусть x1, x2, x3 – плановые объемы производства продукции A, B, C соответственно за месяц, x = (x1, x2, x3). Моделью операции является следующая задача P. 2x1 + 4x2 + 5x3 → max при условиях: x1 + 2x2 + 4x3 ≤ 721, 3x1 + 3x2 + x3 ≤ 900, 2x1 + 4x2 + 6x3 ≤ 1470, 7x1 + 8x2 + 9x3 ≥ 2800, x ≥ 03. Каноническую форму этой задачи обозначим P1, она имеет вид: f(x, s) = 2x1 + 4x2 + 5x3 → max при условиях x1 + 2x2 + 4x3 + s1 = 721, 3x1 + 3x2 + x3 + s2 = 900, 2x1 + 4x2 + 6x3 + s3 = 1470, 7x1 + 8x2 + 9x3 – s4 = 2800, x ≥ 03, s = (s1, s2, s3, s4)T ≥ 04. Приведем задачу P к канонической форме P1 с матрицей: x1 x2 x3 s1 s2 s3 s4 1 2 4 1 0 0 0 3 3 1 0 1 0 0 А = 2 4 6 0 0 1 0 . 7 8 9 0 0 0 1 Базисными переменными для первых трех ограничений задачи P1 могут служить s1, s2 и s3 соответственно (каждая из этих переменных входит в «свое» ограничение с коэффициентом 1 и не входит в другие ограничения). Но базисная переменная для четвертого ограничения не очевидна, поэтому будем строить вспомогательную задачу P0 для поиска первого БДР задачи P1. 61 Достаточно добавить искусственную базисную переменную t в четвертое ограничение задачи P1, поэтому задача P0 имеет вектор переменных u = (x1, x2, x3, s1, s2, s3, s4, t)T, матрицу x1 x2 x3 s1 s2 s3 s4 t 1 2 4 1 0 0 0 0 3 3 1 0 1 0 0 0 0 А = 2 4 6 0 0 1 0 0 , 7 8 9 0 0 0 1 1 вектор правых частей ограничений b = (721, 900, 1470, 2800)T и ЦФ f0(u) = –t с вектором коэффициентов c0 = (0, 0, 0, 0, 0, 0, 0, –1). Исходный базис этой задачи образован столбцами переменных s1, s2, s3, t: β10 = ([А0]4, [А0]5, [А0]6, [А0]8). Базисная матрица B( β10 ) – единичная, поэтому B–1( β10 ) = B( β10 ), A0( β10 ) = B–1( β10 )A0 = A0 и b( β10 ) = B–1( β10 )b = b. Далее находим: cб( β10 ) = (0, 0, 0, –1), z( β10 ) = с0 – cб0 (β10 ) A0( β10 ) = с0 – cб( β10 )A0 = (7, 8, 9, 0, 0, 0, –1, 0), uб( β10 ) = b( β10 ) ≥ 04, F( β10 ) = cб( β10 )b( β10 ) = –2800 = f0(u( β10 )). Видим, что β10 – допустимый базис, признак оптимальности не выполняется (так как в z( β10 ) есть положительные компоненты) и признак неограниченности не выполняется (так как в каждом столбце матрицы A0( β10 ) = A0, соответствующем положительной компоненте вектора z( β10 ), есть положительный элемент). Поэтому будем переходить к другому базису. Выберем столбец переменной x3 в качестве направляющего (так как z3( β10 ) > 0). Находим минимальный элемент множества {bi( β10 )/ ai03 (β10 ) | i 1, 4 , ai03 (β10 ) > 0} = {721/4, 900/1, 1470/6, 2800/9}. Он соответствует первой строке матрицы A0( β10 ), эта строка и становится направляющей. Другими словами, мы выводим из базиса столбец [А0]4 (который соответствует s1, базисной переменной для первой строки) и вводим в базис столбец [А0]3. Приведение задачи P0 к новому базису β 02 = ([А0]3, [А0]5, [А0]6, [А0]8) можно выполнить по формулам, указанным в теореме 2.1194, но мы будем использовать базисную матрицу и обратную к ней95: 4 1 B( β 02 ) = 6 9 0 1 0 0 0 0 1 0 0 0 , –1 0 0 B ( β2 ) = 1 0.25 0.25 1.5 2.25 0 1 0 0 0 0 1 0 0 0 . 0 1 Далее вычисляем: 0.25 0.5 1 0.25 0 0 0 0 180.25 2.75 2.5 0 0.25 1 0 0 0 719.75 –1 0 0 A ( β ) = B ( β )А = 0.5 1 0 1.5 0 1 0 0 , b( β 2 ) = B ( β 2 )b = 388.5 , 4.75 3.5 0 2.25 0 0 1 1 1177.75 0 0 0 0 0 0 0 0 cб (β 2 ) = (0, 0, 0, –1), z( β 2 ) = с – cб (β 2 ) A ( β 2 ) = (4.75, 3.5, 0, –2.25, 0, 0, –1, 0), 0 0 2 –1 0 2 0 F( β 02 ) = cб0 (β02 ) b( β 02 ) = –1177.75 = f0(u( β 02 )). Значение ЦФ задачи P0 на второй итерации увеличилось, но признак оптимальности не выполнен, так как z1( β 02 ) и z2( β 02 ) положительны. Признак неограниченности не выполняется, так как в первых двух столбцах матрицы A0( β 02 ) есть положительные элементы. Строим новый базис. 94 95 Этот путь решения реализован в [11, пример 22 на стр. 164]. Обратную матрицу и, далее, произведения матриц легко найти с помощью MS Excel. 62 Теперь направляющим столбцом будет первый, так как в нем находится максимальный элемент z( β 02 ). Ищем min{bi( β 02 )/ ai01 (β 02 ) | i 1, 4 , ai01 (β 02 ) > 0} = = min{180.25/0.25, 719.75/2.75, 388.5/0.5, 1177.75/4.75}. Минимум достигается при i = 4, поэтому строка 4 становится направляющей. В новый базис войдет первый столбец вместо восьмого (которому соответствует переменная t, базисная для четвертой строки): β 30 = ([А0]3, [А0]5, [А0]6, [А0]1). Тогда 4 0 0 1 0.37 0 0 0.05 1 1 0 3 –1 0 1.05 1 0 0.58 B( β ) = 6 0 1 2 , B ( β 3 ) = 1.26 0 1 0.11 . 9 0 0 7 0.47 0 0 0.21 (Значения элементов обратной матрицы и результаты дальнейших вычислений округлены). 0 3 0 0.05 0.05 0 0.58 0.58 1 0.11 0.11 , 0 0.21 0.21 b( β 30 ) = B–1( β 30 )b = (118.26, 37.89, 264.53, 247.95)T, 0 0 A ( β ) = B ( β )А = 7 0 1 0 0 3 –1 0 0 3 0.32 0.47 0.63 0.74 1 0.368 0 1.05 0 1.26 0 0.47 0 1 0 0 cб0 (β30 ) = (0, 0, 0, 0), z( β 30 ) = с0 – cб0 (β30 ) A0( β 30 ) = (0, 0, 0, 0, 0, 0, 0, –1). Видим, что выполнен признак оптимальности, z( β 30 ) ≤ 08. Построим текущее БДР u0 = u( β 30 ): uб0 (β30 ) = ( x30 , s 20 , s30 , x10 )T = b( β 30 ) и uн0 (β30 ) = 04, откуда u0 = ( x10 , x20 , x30 , s10 , s 20 , s30 , s 40 , t0)T = (247.95, 0, 118.26, 0, 37.89, 264.53, 0, 0)T. При этом f0(u*) = –t* = 0. Следовательно, вектор v = ( x10 , x20 , x30 , s10 , s 20 , s30 , s 40 )T является допустимым решением задачи P1. Поскольку β 30 ― базис матрицы A и vн( β 30 ) = 03, вектор v есть БДР задачи P1, порожденное базисом β 30 . Положим β1 = β 30 = ([А]3, [А]5, [А]6, [А]1) и с этого базиса начнем решение задачи P1. Вектор b(β1) = b( β 30 ) уже посчитан, матрица A(β1) получается из матрицы A0( β 30 ) удалением последнего столбца. ЦФ задачи P1 имеет вектор коэффициентов c = (2, 4, 5, 0, 0, 0), поэтому cб(β1) = (5, 0, 0, 2). Тогда z(β1) = с – cб(β1)A(β1) = (0, 0.95, 0, –0.89, 0, 0, 0.16). Вектор z(β1) имеет две положительные координаты, следовательно, v – не оптимальное решение задачи P. Признак неограниченности (для задачи P1) не выполняется, продолжаем оптимизацию. Выбираем второй столбец матрицы A в качестве направляющего. Ищем min{bi(β1)/ai2(β1) | i 1, 4 , ai2(β1) > 0} = = min{118.26/0.32, 37.89/0.47, 264.53/0.63, 247.95/0.74}. Минимум достигается при i = 2, строка 2 становится направляющей. В новый базис войдет второй столбец вместо пятого (которому соответствует переменная s2, базисная для второй строки): β2 = ([А]3, [А]2, [А]6, [А]1). Тогда 0.(3) 0, (6) 0 0.(3) 1 2.(2) 2, (1) 0 1.(2) 3 , –1 B (β ) = , 2 2 2.(6) 1, (3) 1 0.(6) 7 2.(1) 1, (5) 0 1.(1) 0 0 1 0.(3) 0, (6) 0 0.(3) 0 1 0 1.(2) 2, (1) 0 1.(2) A(β2) = B–1(β2)А = . 0 0 0 .(6) 1, (3) 1 0.(2) 1 0 0 2.(1) 1, (5) 0 1.(1) 4 1 B(β2) = 6 9 2 3 4 8 0 0 1 0 63 Найдем b(β2) = B–1(β2)b = (92, 80, 214, 189)T. При этом cб(β2) = (5, 4, 0, 2) и z(β2) = с – cб(β2)A(β2) = (0, 0, 0, –3, –2, 0, –1) ≤ 0. Следовательно, выполнен признак оптимальности для задачи P1, ее оптимальное решение имеет вид: v* = ( x1* , x 2* , x3* , s1* , s2* , s3* , s4* )T = (189, 80, 93, 0, 0, 214, 0)T. Решением исходной задачи P является вектор x* = (189, 80, 93)T, который указывает оптимальные объемы производства продукции A, B, C соответственно. При таком плане прибыль предприятия будет равна 1163 тыс. руб., а выручка составит 2800 тыс. руб. 64 Пример 2.3 (выявление неограниченности задачи). Рассмотрим следующую задачу P: 3x1 + x2 + 2x3 → max при условиях 2x1 + 2x2 − 6x3 ≤ 2, 3x1 − 5x2 + 2x3 ≤ 4, −4x1 + x2 + 4x3 ≤ 3, x = (x1, x2, x3)T ≥ 03. Матрицу этой задачи обозначим A. Введем переменные недостатка s1, s2, s3 и приведем задачу к канонической форме P1. Задача P1 имеет вектор переменных u = (x1, x2, x3, s1, s2, s3)T, вектор правых частей ограничений b = (2, 4, 3)T и целевую функцию f(u) = 3x1 + x2 + 2x3 с вектором коэффициентов c = (3, 1, 2, 0, 0, 0). Запишем матрицу задачи P1: x1 x2 x3 s1 s2 s3 2 2 6 1 0 0 А1 = 3 5 2 0 1 0 , 4 1 4 0 0 1 Последние три столбца матрицы А1 образуют исходный базис β1 с единичной базисной матрицей B(β1). Понятно, что А1(β1) = А1, b(β1) = b и cб(β1) = (0, 0, 0). Тогда z(β1) = с – cб(β1)A1(β1) = с. Признаки оптимальности и неограниченности не выполняются: у вектора z(β1) есть положительные компоненты и в соответствующих им столбцах матрицы А1(β1) есть положительные элементы. Выберем столбец 1 в качестве разрешающего, тогда min{bi(β1)/ai1(β1) | i 1, 3 , ai1(β1) > 0} = min{2/2, 4/3} достигается при i = 1, строка 1 (с базисной переменной s1) станет разрешающей. В базис войдет первый столбец вместо четвертого: β2 = ([A1]1, [A1]5, [A1]6). Найдем 2 0 0 0.5 0 0 1 1 3 0.5 0 0 B(β2) = 3 1 0 , B–1(β2) = 1.5 1 0 , А1(β2) = 0 8 11 1.5 1 0 , 4 0 1 2 0 1 0 5 8 2 0 1 b(β2) = (1, 1, 7)T, cб(β2) = (3, 0, 0), z(β2) = (0, –2, 11, –1.5, 0, 0). Признаки оптимальности и неограниченности не выполняются. Столбец 3 и строка 2 с базисной переменной s2 становятся разрешающими, β3 = ([A1]1, [A1]3, [A1]6). Тогда 0.(09) 0.(27) 0 2 6 0 –1 3 2 0 , B (β3) = 0.1(36) 0.(09) 0 , B(β3) = 4 4 1 0.(90) 0.(72) 1 0.(09) 0.(27) 0 1 1.(18) 0 А1(β3) = 0 0.(72) 1 0.1(36) 0.(09) 0 , cб(β3) = (3, 2, 0), z(β3) = (0, 6, 0, 0, –1, 0). 0.(90) 0.(72) 1 0 0.(81) 0 Видим, что z2(β3) > 0 и ai2 < 0 для всех i. Задача неограниченна по теореме 2.10. Пример 2.4 (вычисление двойственных оценок). Пусть P – задача примера 2.1. Положим x = (x1, x2, x3)T и запишем задачу P следующим образом: f(x) = 2x1 + 4x2 + 5x3 → max при условиях g1(x) = x1 + 2x2 + 4x3 ≤ 721, g2(x) = 3x1 + 3x2 + x3 ≤ 900, g2(x) = 2x1 + 4x2 + 6x3 ≤ 1470, g4(x) = 7x1 + 8x2 + 9x3 ≥ 2800, x ≥ 03. * Ее оптимальное решение: x = ( x *j | j 1, 3 )T = (189, 80, 93)T. Легко посчитать, что (g1(x*), g2(x*), g3(x*), g4(x*)) = (721, 900, 1256, 2800). Построим задачу P* с вектором переменных y = (y1, y2, y3, y4): h(y) = 721y1 + 900y2 + 1470y3 + 2800y4 → min при условиях y1 + 3y2 + 2y3 + 7y4 ≥ 2, 2y1 + 3y2 + 4y3 + 8y4 ≥ 4, 4y1 + y2 + 6y3 + 9y4 ≥ 5, y1 ≥ 0, y2 ≥ 0, y3 ≥ 0, y4 ≤ 0. * * Пусть y = ( yi | i 1, 4 ) – оптимальное решение задачи P* (вектор двойственных оценок ограничений задачи P). Из x* > 03 следует, что ограничения по знаку для x1, x2 и x3 являются нежесткими в задаче P. Тогда, по утверждению (а) следствия 2.11, первые три ограничения 65 задачи P* являются жесткими. Ясно также, что третье ограничение задачи P является нежестким. Тогда, по утверждению (б) следствия 2.11, ограничение по знаку для y3 является жесткими в задаче P*. Следовательно, вектор y* удовлетворяет следующим условиям: y1 + 3y2 + 2y3 + 7y4 = 2, 2 y1* + 3 y2* + 4 y3* + 8 y4* = 4, 4 y1* + y2* + 6 y3* + 9 y4* = 5, y3* = 0. Решив эту систему уравнений, найдем y* = (3, 2, 0, –1). На основании интерпретации двойственных оценок можно утверждать, что, при прочих равных условиях, увеличение времени работы оборудования типа 1 на ε позволит предприятию увеличить прибыль на 3ε тыс. руб., а уменьшение потребности в оборотном капитале на ε даст увеличение прибыли на ε. Легко проверить, что h(y*) = f(x*) = 1163 (в соответствии с теоремой 2.15). Вспомним, что в разделе 4.5.7 мы для канонической формы P1 задачи P нашли базис β2 = ([А]3, [А]2, [А]6, [А]1) –1 такой, что b(β2) = B (β2)b > 0 и z(β2) ≤ 0. Это оптимальный базис задачи P1. Мы нашли также оптимальное решение задачи P1: v* = (189, 80, 93, 0, 0, 214, 0)T. Вектор коэффициентов ЦФ задачи P1 (см. раздел 4.5.7) имеет вид c = (2, 4, 5, 0, 0, 0). Тогда vб* (β 2 ) = b(β2) = (93, 80, 214, 189)T и cб(β2) = (5, 4, 0, 2). Легко проверить, что B–1(β2)b = vб* (β 2 ) и cб(β2)B–1(β2) = y*. Это значит, что v* и y* – базисные векторы задач P1 и P* соответственно, порожденные базисом β2. Заметим, что, решив задачу с помощью надстройки «Поиск решения» пакета MS Excel, мы найдем двойственные оценки ограничений в столбце «Теневая цена» таблицы «Ограничения» отчета об устойчивости. Пример 2.5 (анализ неограниченной задачи). В примере 2.3 мы «вручную» обнаружили несовместность задачи P. Здесь мы проанализируем ту же задачу с помощью MS Excel. Для начала попытаемся решить задачу P (не приводя ее к канонической форме), используя надстройку «Поиск решения». Получим сообщение «Значения целевой ячейки не сходятся», которое означает неограниченность задачи. Тем не менее, в изменяемых ячейках, которые соответствуют переменным x1, x2, x3, появятся значения: x0 = (1.(27), 0, 0.(09))T = (14/11, 0, 1/11)T. Это допустимое решение задачи P. Чтобы найти соответствующее допустимое решение канонической формы P1, вычислим значения переменных недостатка по формулам si0 = bi – gi(x0), где gi(x) – левая часть ограничения с номером i {1, 2, 3} задачи P. Получим допустимое решение задачи P1: u0 = (14/11, 0, 1/11, 0, 0, 65/11)T. Из доказательства теоремы 2.17 следует, что множество допустимых решений неограниченной ЗЛП в канонической форме содержит исходящий из БДР задачи луч, вдоль которого ЦФ неограниченно растет. Точка u0 – начало такого луча. Мы хотим найти его направляющий вектор v. Для этого, в соответствии с теоремой 2.17, нужно найти базис β, порождающий БДР u0. Строки матрицы A1 задачи P1 (см. пример 2.3) линейно независимы, поэтому базис должен включать три столбца. В векторе u0 три ненулевые компоненты: x10 , x30 и s30 . Соответствующие столбцы матрицы A линейно независимы и, следовательно, образуют базис β = ([A1]1, [A1]3, [A1]6). Это базис β3, который мы построили в примере 2.3. Там же, зная базисную матрицу B(β3), мы нашли матрицу A1(β) задачи P1, приведенной к базису β = β3, и вектор z(β). Оказалось, что z2(β) = 6 > 0 и соответствующий столбец матрицы A1(β) имеет вид (–1.(18), –0.(72), –0.(81))T = (–13/11, –8/11, –9/11)T. Заметим, что переменные x2, s1 и s2 – небазисные, а переменные x1, x3 и s3 являются базисными для строк с номерами 1, 2 и 3 соответственно. Тогда (см. доказательство теоремы 2.17) v = (13/11, 1, 8/11, 0, 0, 9/11)T. Для удобства выберем в качестве направляющего пропорциональный вектор v0 = (13, 11, 8, 0, 0, 9)T. 66 Пусть задачи P0 и P10 получены из задач P и P1 соответственно заменой вектора b правых частей ограничений на 03. По теореме 2.17 вектор v0 является допустимым решением задачи P10 . Тогда x0 = (13, 11, 8)T – допустимое решение задачи P0. Проинтерпретируем полученный результат. Предположим, что задача P формализует выбор плана, максимизирующего прибыль, для предприятия, которое может применять три линейных технологии, используя три ингредиента-полуфабриката. Каждая технология два ингредиента потребляет и один – производит, порождая прибыль. Технологические способы описаны столбцами матрицы A и коэффициентами ЦФ. Например, способ 3 при единичной интенсивности потребляет две единицы ингредиента 2 и четыре – ингредиента 3, а производит 6 единиц ингредиента 1 и две единицы прибыли. Вектор b указывает исходные запасы ингредиентов. Переменные задачи P – плановые интенсивности применения технологических способов. Мы показали, что x0 = (13, 11, 8)T – допустимое решение задачи P0. Это значит, что предприятие при нулевых исходных запасах ингредиентов может реализовать план x0 и получить «из ничего» прибыль 313 + 11 + 28 = 66. Следует предположить, что в исходной постановке задачи есть неточность, например, при описании технологий не учтен какой-то ограниченный ресурс. Пример 2.6 (анализ несовместной задачи). Допустим, что предприятие производит ингредиент 2 (продукт) из ингредиента 1 (ресурс), используя два технологических способа. При единичной интенсивности первый способ потребляет единицу ресурса, производит шесть единиц продукта и дает две единицы полезности, а второй способ потребляет две единицы ресурса, производит 10 единиц продукта и дает 5 единиц полезности. Предприятие имеет две единицы ресурса и должно произвести (поставить по договору), как минимум, двадцать четыре единицы продукта. Будем считать, что полезность, которую предприятие максимизирует, – условно чистый доход, учитывающий только доходы и затраты, пропорциональные интенсивностям использования технологических способов. В частности, затраты на приобретение исходного запаса ресурса для рассматриваемой задачи являются постоянными и не учитываются при расчете полезности. Моделью операции является следующая ЗЛП: f(x) = 2x1 + 5x2 → max при условиях x1 + 2x2 ≤ 2, 6x1 + 10x2 ≥ 24, x = (x1, x2)T ≥ 02. Задача несовместна: ни один из доступных технологических способов не производит больше шести единиц продукта из единицы ресурса, поэтому предприятие может выпустить не более 12 единиц продукта. Надстройка «Поиск решения» MS Excel в током случае дает сообщение «Поиск не может найти подходящего решения». Чтобы применить подход, описанный в разделе 2.7.2, переведем задачу в стандартную форму: 2x1 + 5x2 → max при условиях x1 + 2x2 ≤ 2, –6x1 – 10x2 ≤ –24, x = (x1, x2)T ≥ 02. Предположим, что предприятие может приобрести достаточное количество ресурса по цене r1 и/или отказаться (частично или полностью) от поставок продукта, выплатив штраф r2 за каждую не поставленную единицу товара. Тогда задача Q, определяющая целесообразную корректировку правых частей ограничений, имеет вид: f1(x, Δ) = f(x) – (r1δ1 + r2δ2) → max при условиях x1 + 2x2 – δ1 ≤ 2, –6x1 – 10x2 – δ2 ≤ –24, x ≥ 02, δ1 ≥ 0, 0 ≤ δ2 ≤ 24. Здесь Δ = (δ1, δ2)T вектор приращений правых частей ограничений, δ1 – приобретаемое количество ресурса, δ2 – разница между договорной и фактической поставкой продукта. Используя MS Excel, легко решить задачу при различных сценариях (наборах значений параметров). Результаты расчетов для двух вариантов приведены в табл. 3. Таблица 3 Оптимальные решения задачи Q для двух сценариев 1 2 Сценарий r1 r2 18 6 18 2 Решение x2 δ1 0 2 0 0 x1 4 2 67 δ2 0 12 В первом сценарии предприятие докупает две единицы ресурса, реализует первый технологический способ с интенсивностью 4, производит 24 единицы продукта и выполняет поставку. Во втором сценарии штраф существенно меньше, поэтому предприятие по той же технологии перерабатывает только имеющийся ресурс и сокращает поставку вдвое (с выплатой соответствующего штрафа). В обоих вариантах значение ЦФ f1(x, Δ) отрицательно, производственная прибыль не покрывает дополнительные затраты. Пример 2.7 (альтернативное решение). Проверим существование альтернативных решений для ЗЛП f(x) = 9x1 + 18x2 + 6x3 → max при условиях: g1(x) = x1 + x2 + x3 ≤ 10, g2(x) = 6x1 + 12x2 + 4x3 ≤ 63, g3(x) = 12x1+ 15x2 + 11x3 ≥ 117, x = (x1, x2, x3)T ≥ 03. Обозначим эту задачу P, а ее каноническую форму – P0. Введем переменные избытка s1, s2 для первых двух ограничений и переменную недостатка s3 для третьего ограничения. Положим: s1(x) = 10 – g1(x), s2(x) = 63 – g2(x), s3(x) = g3(x) – 117, u(x) = (x1, x2, x3, s1(x), s2(x), s3(x))T. Отображение x u(x) устанавливает взаимно однозначное соответствие между допустимыми решениями задач P и P0 Для задачи P0 запишем вектор коэффициентов ЦФ и матрицу задачи: x1 x2 x3 s1 s2 s3 1 1 1 1 0 0 А0 = 6 12 4 0 1 0 , 12 15 11 0 0 1 0 с = ( 9, 18, 6, 0, 0, 0). С помощью MS Excel найдем решение x* задачи P и оптимальное значение ЦФ: x* = (0, 3.125, 6.375)T, F: = f(x*) = 94.5. Соответствующее БДР задачи P0: u(x*) = (0, 3.125, 6.375, 0.5, 0, 0)T. Ненулевые координаты вектора u(x*) указывают линейно независимые столбцы матрицы А0 (с номерами 2, 3, 4), которые образуют базис β решения u(x*) и базисную матрицу B. Следовательно, u(x*) – невырожденное БДР. Найдем cб0 (β) = (18, 6, 0) и, используя MS Excel, последовательно вычислим B–1 (обратную базисную матрицу), A0(β) = B–1А0 (матрицу задачи, полученной приведением задачи P0 к базису β) и вектор z(β) = с0 – cб0 (β) A0(β) = (0, 0, 0, 0, –1.5, 0). Столбцы с номерами 1 и 6 не входят в базис и z1(β) = z6(β) = 0. По следствию 2.13 существуют оптимальные решения u*(1) и u*(6) задачи P0 такие, что первая координата (x1) положительна в u*(1) и шестая координата (s3) положительна в u*(6). Решив задачу максимизации x1 при ограничениях задачи P и дополнительном ограничении f(x) ≥ F, найдем альтернативные решения задач P и P0: x** = (9.5, 0.5, 0)T, u** = (9.5, 0.5, 0, 0, 0, 4.5)T. ** * Заметим, что u ≠ u (1), так как, по следствию 2.13, в u*(1) координаты с номерами 5 и 6 (небазисные, отличные от x1) должны быть равны нулю. Добавим условие s3(x) = g3(x) – 117 = 0 или, эквивалентно, потребуем, чтобы третье ограничение задачи P выполнялось как равенство. Решив полученную задачу, найдем альтернативное решение u*(1) задачи P0, указанное следствием 2.13, и соответствующее решение x*(1) задачи P: x*(1) = (8.5, 1, 0)T, u*(1) = (8.5, 1, 0, 0.5, 0, 0)T. Теперь при ограничениях задачи P и дополнительном ограничении f(x) ≥ F будем максимизировать функцию s3(x) = g3(x) – 117, или, эквивалентно, функцию g3(x). Найдем новые решения задач P и P0: x*(6) = (0, 2.875, 7.125)T, u*(6) = (0, 2.875, 7.125, 0, 0, 4.5)T. Таким образом, для каждой из задач P и P0 мы нашли четыре оптимальных решения. По утверждению (а) теоремы 2.5 выпуклая линейная комбинация решений ЗЛП тоже является ее решением. Поэтому, комбинируя найденные решения задачи P, можно, например, для 68 любого a [0, 7.125] найти оптимальное решение этой задачи, в котором x3 = a. Аналогично, для любого b [0, 4.5] можно найти оптимальное решение задачи P0, в котором s3 = b. Пример 2.8 (единственность вырожденного решения). Рассмотрим следующую задачу в канонической форме с вектором переменных x = (xj | j 1, 5 )T: f(x) = –x1 – 2x4 → max при условиях –x1 + x2 – x4 + x5 = 0, x1 + x3 + x4 = 2, x ≥ 05. Заметим, что задача приведена к базису β, составленному из столбцов переменных x2 и x3 (в указанном порядке), N(β) = {2, 3}. Действительно, столбцы базисных переменных образуют единичную подматрицу матрицы задачи и ЦФ выражена через небазисные переменные. Следовательно, b(β) = (0, 2)T. Пусть x = x(β). Тогда xб(β) = (x2, x3)T = b(β) ≥ 02, и β – допустимый базис. При этом f(x) = z j (β) x j + F(β), j откуда z(β) = (–1, 0, 0, –2, 0), F(β) = 0. Из xб(β) = (0, 2)T следует, что x(β) = (0, 0, 2, 0, 0). Вектор z(β) неположителен, поэтому базис β оптимален и x(β) – оптимальное БДР. Оно вырожденное, так как 2 N(β) и x2 = 0. Заметим, что z5(β) = 0 и 5 N(β), необходимое условие существования альтернативного решения выполнено. Несмотря на это, x(β) – единственное решение задачи. Действительно, для всякого оптимального решения x должно выполняться равенство f(x) = f(x(β)) = 0. При x ≥ 05 это возможно, только если x1 = x4 = 0. Подставив эти значения в ограничения задачи, найдем x3 = 2 и x2 + x5 = 0, откуда x2 = x5 = 0. Следовательно, x = x(β), необходимое условие существования альтернативного решения не является достаточным. Пример 2.9 (условия сохранения оптимального базиса). Допустим, что предприятие использует три вида сырья для изготовления четырех видов продукции. Наличие сырья в плановом периоде, расход сырья на единицу продукции и прибыль от единицы продукции каждого вида указаны в табл. 4. Предприятие стремится максимизировать прибыль за плановый период. Таблица 4 Информация к примеру 2.9 Номер сырья 1 2 3 Прибыль Номер продукта 1 2 3 4 Затраты сырья на единицу продукта 2 1 0.5 4 1 5 3 0 3 0 6 1 7 3 6 12 Наличие 2400 1200 3000 Пусть P0 – каноническая форма задачи поиска оптимального плана производства, xj – плановый объем производства продукта j 1, 4 , si – переменная недостатка для ограничения на использование ресурса i. Вектор переменных задачи P0 имеет вид u = (uj | j 1, 7 )T = (x1, x2, x3, x4, s1, s2, s3)T. Запишем матрицу задачи и вектор коэффициентов ЦФ: 2 1 0.5 4 1 0 0 A0 = 1 5 3 0 0 1 0 , 3 0 6 1 0 0 1 0 0 0 0 с = ( с j | j 1, 7 ) = (7, 3, 6, 12, 0, 0, 0), b = ( bi | i 1, 3 )T = (2400, 1200, 3000)T. Проверим, что задача P0, удовлетворяет условиям теоремы 2.20. Решив эту задачу с помощью MS Excel, найдем оптимальное решение u* = (0, 0, 400, 550, 0, 0, 50)T, вектор двойственных оценок y* = (3, 1.5, 0) и оптимальное значение ЦФ, равное 9000. Столбцы матрицы A0 с номерами 3, 4 и 7 соответствуют ненулевым координатам вектора u*, линейно независимы и, следовательно, образуют базис β оптимального решения. Это невырожденный базис, так как uб (β) = (400, 550, 50)T > 03. 69 В столбце «Нормир. стоимость» таблицы «Изменяемые ячейки» отчета об устойчивости находим вектор z = (–0.5, –7.5, 0, 0, –3, –1.5, 0). Из z ≤ 07 следует, что β – оптимальный базис, двойственно невырожденный, так как zн(β) = (–0.5, –7.5, –3, –1.5) < 04. Итак, базис β – оптимальный, невырожденный и двойственно невырожденный, условия теоремы 2.20 выполнены. Поэтому при небольших изменениях параметров задачи P0 базис, образованный столбцами 3, 4 и 7 матрицы возмущенной задачи, сохраняет указанные свойства базиса β. Пример 2.10 (использование производной функции значений по параметру). Для задачи примера 2.9 оценим уменьшение удельных затрат сырья 1 на продукт 4, вследствие которого оптимальная прибыль станет равной примерно 9400. 0 Предположим, что мы заменили a1,4 = 4 величиной a1,4 = 4 – . Поскольку условия теоремы об устойчивости оптимального базиса выполнены, можем применить теорему 2.21 (о маргинальных значениях): V ( A0 , b 0 , c 0 ) = – y1* x4* . a1, 4 Переходя к конечным разностям, получим ΔV ≈ –Δa1,4 y1* u 4* . В нашем примере ΔV = 400, Δa1,4 = – , поэтому 400 –(–) y1* u 4* = 5503, откуда ≈ 0.(24) = 8/33. Решив возмущенную задачу (при a1,4 = 4 – 8/33), увидим, что оптимальная прибыль приблизительно равна 9425.8 и отклоняется от указанной в условии величины примерно на 2.75 %. Пример 2.11 (изменение коэффициента ЦФ). Для задачи примера 2.9 ответим на следующие вопросы. При каком увеличении прибыльности продукта 3 максимальная прибыль вырастет до 10000? Как нужно увеличить прибыльность продукта 1, чтобы его производство вошло в оптимальный план? Чтобы ответить на первый вопрос, рассмотрим возмущенную задачу P(c)96, в которой коэффициент ЦФ при x3 на δ отличается от исходного значения, с3 = с30 + δ (остальные параметры задачи P0 неизменны). Допустим, что с3 Uc(3). Тогда V(c) = V(c0) + δ x3* по утверждению (г) теоремы 2.24. Из условия V(c) = 10000 находим δ = (10000 – 9000)/400 = 2.5. Из отчета об устойчивости видим, что с30 + δ Uc(3), если δ [–1.5, +∞). Следовательно, при δ = 2.5 имеем с3 Uc(3) и V(c) = V(c0) + δ. Поэтому, если увеличить прибыльность продукта 3 на 2,5 (с3 = с30 + 2.5 = 8.5), максимальная прибыль будет равна 10000. Второй вопрос относится к возмущенной задаче P(c), которая отличается от P0 только значением коэффициента ЦФ при x2, с2 = с 20 + δ. Переменная x2 – небазисная для базиса β и остается небазисной в решении задачи P(c), если с2 Uc(2). Последнее соотношение, в соответствии с отчетом об устойчивости, эквивалентно δ (–∞, 7.5]. По утверждению (д) теоремы 2.24 при δ = 7.5 и с2 = 9.5 задача P(c) имеет решение, в котором x2 > 0. Пример 2.12 (изменение правой части ограничения). Продолжим анализ задачи примера 2.9. Сколько единиц сырья 1 нужно приобрести (при неизменной цене), чтобы довести прибыль предприятия до 9450? При каком увеличении запаса сырья 1 выпуск продукта 4 в оптимальном плане будет равен 600? Рассмотрим возмущенную задачу P(b)97, в которой вектор b отличается от b0 только значением b1 = b10 + δ. Допустим, что b Ub(1). Тогда, по утверждению (г) теоремы 2.26, V(b) = V(b0) + (b1 – b10 ) y10 = 9000 + 3δ. По условию V(b) = 9450, откуда δ = 150. В отчете об 96 97 См. раздел 2.8.2. См. раздел 2.8.3. 70 устойчивости видим, что b Ub(1) эквивалентно δ [–2200, 200]. Поэтому при δ = 150 оптимальное значение ЦФ в задаче P(b) будет равно 9450. Для ответа на второй вопрос, зная оптимальный базис β задачи P0, найдем обратную базисную матрицу: 0 0.(3) 0 0 1/ 3 0 B01 = 0.25 0.041(6) 0 = 0.25 1 / 24 0 = ( β ir0 | i 1, 3 , r 1, 3 ). 0.25 1.958(3) 1 0.25 47 / 24 1 Пусть u – решение рассмотренной выше задачи P(b), где b = b0 + Δ и Δ = (δ, 0, 0)T. Столбец коэффициентов при x4 занимает вторую позицию в базисе β, j(2) = 4. Поэтому, если b Ub(1), то u4 = x4 = u 4 + δ β 02,1 = 550 + 0.25δ в соответствии с утверждением (в) теоремы 2.26. Из x4 = 600 найдем δ = 200. Мы знаем, что из δ [–2200, 200] следует, b Ub(1). Поэтому, увеличив запас сырья 1 на 200, получим задачу P(b), в решении которой выпуск продукта 4 равен 600. Пример 2.13 (замещение ресурсов). Продолжаем анализировать задачу примера 2.9. Выясним, при каких значениях α выгодно уменьшать потребление сырье 2, увеличивая потребление сырья 1 в отношении 1:α. Для этого найдем норму замещения сырья 2 сырьем 1: r1,2 = y1* / y2* = 3/1.5 = 2. Описанная выше замена означает переход к задаче P(b) при b = b0 + Δ и Δ = ( b10 + , b20 – α, 0)T, причем > 0. Тогда δy20 > 0 и V(b) > V(b0) эквивалентно r1,2 > α по утверждению (а) теоремы 2.27. Другими словами, выгодно получить некоторое количество сырья 1, отдавая за каждую единицу этого сырья менее двух единиц сырья 2. Теперь зафиксируем α = 1.5 и выясним, какое количество сырья 1 выгодно приобрести, отдавая за каждую единицу этого сырья α единиц сырья 2. Для этого найдем промежуток U1,2(1.5)98. По утверждению (б) теоремы 2.27 он совпадает с множеством решений системы линейных неравенств: u j (i ) + ( β i01 – α βi02 ) ≥ 0 для всех i 1, 3 . В нашем случае оптимальный базис имеет вид β = ([A0]3, [A0]4, [A0]7), поэтому j(1) = 3, j(2) = 4, j(3) = 7. Обратную базисную матрицу B01 мы нашли в примере 2.12. Получаем: u3* + ( β10,1 – α β10, 2 ) = 400 – 0.5 ≥ 0, u 4* + ( β 02,1 – α β 02, 2 ) = 550 + 0.3125 ≥ 0, u7* + ( β 30,1 – α β 30, 2 ) = 50 + 2.6875 ≥ 0. Отсюда U1,2(1.5) = [–18.67, 800] (левая граница округлена). Таким образом, выгодно получить до 800 единиц сырья 1, отдавая за каждую единицу этого сырья 1.5 единиц сырья 2. Заметим, что рассматриваемое замещение может быть выгодным и за пределами промежутка U1,2(1.5). Чтобы проверить это, нужно анализировать описанную выше возмущенную задачу P(b) при δ = 800. Дополнительная литература к разделу 2 Основные предположения: [11, §4.2.1], [27, разделы 3-1 и 3-2]. Примеры линейных моделей: [11, §4.2.2], [17, §2 главы I], [21, раздел 1.5], [27, разделы 1-2, 1-3, 3-2 – 3-7], [28, §1], [29, §9], [30, раздел 4.6]. Формы записи ЗЛП: [11, раздел 4.1], [17, §3 главы I], [21, раздел 1.3], [27, раздел 3-8], [28, §1], [30, раздел 4.1]. Свойства ЗЛП: [11, разделы 4.3 и 4.4], [17, глава II], [27, раздел 7-1], [28, §2 и §6], [29, §8], [31, §§3 – 5 главы 1]. 98 См. следствие 2.16. 71 Симплекс-метод: [11, разделы 4.5 – 4.7], [17, главы V, VI], [21, раздел 1.4, глава 2], [27, глава 5 (разделы 6-1, 7-2, 7-3), главы 9 и 11], [28, §§3 – 5], [30, глава 2], [31, §§3 – 5 и 7 главы 4]. Теория двойственности: [11, разделы 4.8 и 4.9], [17, глава III], [21, глава 3], [28, §7], [27, разделы 6-2 – 6-5, 12-1 – 12-3], [29, §§9 – 12], [30, разделы 4.1 – 4.3]. Анализ неразрешимой ЗЛП: [11, §4.10.1 и §4.10.2], [32]. Вырожденность: [11, §4.10.4], [30, раздел 4.5]. Анализ чувствительности: [11, раздел 4.11], [27, раздел 12-4], [29, §28], [30, раздел 4.4]. Приложения Приложение 1. Доказательство теоремы 2.4 Определения. Пусть a Rn \ {0n}. Гиперплоскость в Rn – это множество всех решений x Rn линейного уравнения ax = b. Замкнутое полупространство в Rn – это множество всех решений x Rn линейного неравенства ax ≤ (≥) b. Следствие П1.1 (из определений).99 Многогранное множество M Rn является пересечением конечного числа гиперплоскостей и замкнутых полупространств в Rn. Теорема П1.1 (критерий выпуклости множества). Для выпуклости множества M Rn необходимо и достаточно, чтобы любой отрезок с концами из M целиком лежал в этом множестве.100 Следствие П1.2 (из теоремы П1.1). Гиперплоскости и замкнутые полупространства в R являются выпуклыми множествами. Доказательство. Пусть M Rn – гиперплоскость или замкнутое полупространство. Тогда M = {x Rn | ax ⨀ b}, где ⨀ {≤, =, ≥}. Пусть x1 M, x2 M и x [x1, x2]. Это значит, что ax1 ⨀ b, ax2 ⨀ b (П1.1) и x = (1 – )x1 + x2 для некоторого [0, 1]. Суммируя результаты умножения соотношений (П1.1) на неотрицательные числа (1 – ) и , получим: ax = (1 – )ax1 + ax2 ⨀ (1 – )b + b = b. Следовательно, x M и множество M выпукло по теореме П1.1. # n Лемма П1.1. Пересечение выпуклых множеств является выпуклым множеством. Доказательство. Пусть множества M1 и M2 выпуклы, M = M1∩M2, x1 M и x2 M. Тогда точки x1 и x2 принадлежат обоим множествам M1 и M2. Из теоремы П1.1 следует, что отрезок [x1, x2] вложен как в M1, так и в M2. Следовательно, [x1, x2] M1∩M2 = M и множество M выпукло по теореме П1.1. # Теорема 2.4 (о выпуклости многогранного множества). Всякое многогранное множество выпукло. Доказательство. Из следствий П1.1 и П1.2 ясно, что многогранное множество является пересечением конечного числа выпуклых множеств. Тогда оно выпукло по лемме П1.1. # Приложение 2. Доказательство теоремы 2.11 Рассмотрим ЗЛП в канонической форме: f(x) = cx → max при условиях Ax = b и x ≥ 0n, где A = (aij | i 1, m , j 1, n ), x = (xj | j 1, n )T, b = (bi | i 1, m )T, c = (cj | j 1, n ). Будем считать, что строки матрицы A линейно независимы. Зафиксируем базис β матрицы A. По лемме 99 Доказательство очевидно. Необходимость очевидна, достаточность доказана в [19, теорема 2.2]. 100 72 2.1 он состоит из m столбцов, β = ([A]j(i) | i 1, m ). Пусть задача P(β) является результатом приведения задачи P к базису β. Теорема 2.11.101 Пусть zs(β) ≠ 0, s ≠ j(r) и ars(β) ≠ 0 в задаче P(β), а базис β′ получен из базиса β заменой столбца [A]j(r) столбцом [A]s. Положим arj (β)ais (β) arj (β ) aij = aij(β) – для i ≠ r, j ≠ s; arj = для всех j; ais = 0 для i ≠ r; (П2.1) ars (β) ars (β ) b (β)ais (β) b (β ) bi = bi(β) – r для i ≠ r, br = r ; (П2.2) ars (β) ars (β ) z j = zj(β) – z s (β)arj (β) ars (β) для j ≠ s, z s = 0; F ′ = F(β) + z s (β)br (β) ; ars (β) (П2.3) A′ = ( aij | i 1, m , j 1, n ); b′ = ( bi | i 1, m )T, z′ = ( z j | j 1, n ). Тогда A(β′) = A′, b(β′) = b′, z(β′) = z′ и F(β′) =F ′. Другими словами, результатом приведения задачи P к базису β′ является следующая задача P(β′): (П2.4) f(x; β′) = z′x + F ′ → max при условиях A′x = b′, x ≥ 0n. Доказательство. Прежде всего заметим, что набор столбцов β′ является базисом по лемме 2.3. В ограничениях задачи P(β) выделим слагаемые, содержащие переменную xs: ars(β)xs + arj (β) x j = br(β); ais(β)xs + aij (β) x j = bi(β) для i ≠ r. j s j s Обе части ограничения с номером r разделим на ars(β) ≠ 0, после чего оно примет вид arj x j = br . j Для каждого i ≠ r умножим уравнение с номером r на ais(β)/ars(β) и результат вычтем из уравнения с номером i: a (β ) a (β ) [ais(β)xs + aij (β) x j ] – is [ars(β)xs + arj (β) x j ] = bi(β) – is br(β), или ars (β ) ars (β ) j s j s ais (β)arj (β) ais (β ) br(β), что эквивалентно aij x j = bi . ars (β ) ars (β) js j Мы преобразовали систему уравнений A(β)x = b(β) в систему A′x = b′, применяя элементарные преобразования строк102, что эквивалентно умножению первой системы слева на некоторую невырожденную матрицу103. При этом система A(β)x = b(β) является результатом умножения системы уравнений задачи P слева на B–1(β). Следовательно, система уравнений A′x = b′ получается из системы Ax = b умножением слева на некоторую невырожденную матрицу M. Из определения базиса β′ следует, что (П2.5) j(i, β′) = j(i, β) для i ≠ r и j(r, β′) = s. s Из (П2.1) видно, что [A′] = es. Пусть j N(β′) \ {s} = N(β) \ {j(r)}. Тогда j = j(i, β) = j(i, β′) для какого-то i ≠ r, [A(β)]j = ei по (2.26), откуда arj(β) = 0. В таком случае из (П2.1) следует, что aij = aij(β) для всех i, [A′]j = [A(β)]j = ei. Следовательно, столбцы с номерами j N(β′) об0xs + [a (β) ij ]x j = bi(β) – разуют базисную матрицу B(β′) в матрице A и единичную подматрицу – в матрице A′ = MA. Это значит, что M = B–1(β′), A′ = A(β′) и b′ = b(β′). Из (П2.3) и утверждения (б) леммы 2.2, примененного к базису β′, получаем z s = 0 = zs(β′). 101 Обозначения см. в разделе 2.5.1. См. [20, стр. 150]. 103 Там же, стр. 181 – 182. 102 73 Пусть j ≠ s. Применяя утверждение (б) леммы 2.2 к базису β′ и учитывая (П2.5), получим m zj(β′) = с j c j (i ,β) aij (β) = cj – [ c j (i ,β ) aij (β) + csarj(β′)]. ir i 1 Подставим в последнее выражение формулы (П2.1), затем используем утверждение (б) леммы 2.2 применительно к базису β: arj (β)ais (β) a (β) ) + cs rj zj(β′) = cj – [ c j (i ,β ) (aij (β) ]= ars (β) ars (β) ir m = [cj – c i 1 arj (β ) arj (β) a (β) ] + cj(r, β)arj(β) – cs j ( i ,β ) ij c ars (β) + c i r arj (β)ais (β) j ( i ,β ) ars (β) = arj (β) z s (β) = z j . ars (β ) ars (β) i r Следовательно, z(β′) = z′. Из определения F(β′), (П2.5) и доказанного выше равенства b′ = b(β′) следует, что m b (β)ais (β) b (β ) ] + cs r F(β′) = c j (i ,β)bi (β) = c j (i ,β )bi + cs br = c j (i ,β ) [bi (β) r = ars (β) ars (β ) ir ir i 1 = zj(β) – [cs – (cj(r, β)ars(β) + a (β) )] = zj(β) – j ( i ,β ) is br (β)ais (β) b (β ) + cs r = ars (β) ars (β ) i r i 1 z (β)br (β) b (β ) = F(β) + r [cs – cj(r, β)ars(β) – c j (i ,β ) ais (β) ] = F(β) + s = F ′. ars (β) ars (β ) i r Таким образом, задача (П2.4) совпадает с задачей P(β′). # m = c b (β) – cj(r, β)br(β) – j ( i ,β ) i c j ( i ,β ) Приложение 3. Доказательство теоремы 2.12 Теорема 2.12 (о выборе разрешающего элемента). Пусть β = ([A]j(i) | i 1, m ) – допустимый базис матрицы A задачи P вида (2.25), P(β) – результат приведения задачи P к базису β, s ≠ j(r) и набор столбцов β′ получен из β заменой столбца [A]j(r) на столбец [A]s. Предположим, что ars(β) > 0, zs(β) > 0 и br(β)/ars(β) ≤ bi(β)/ais(β) для всех i таких, что ais(β) > 0. Тогда (а) β′ – допустимый базис матрицы A, x(β′) – БДР задачи P; (б) f(x(β′)) ≥ f(x(β)); (в) Если x(β) – невырожденное БДР, то f(x(β′)) > f(x(β)). Доказательство. Из zs(β) > 0 следует, что s ≠ j(r) (так как zj(β) = 0 для j N(β) по утверждению (б) леммы 2.2). Тогда набор столбцов β′ является базисом матрицы A по лемме 2.3. Параметры задачи P(β′) определены формулами, указанными в теореме 2.11. Из утверждения (д) теоремы 2.8 следует b(β) ≥ 0m. (а) По утверждению (г) теоремы 2.8 базисная часть вектора x(β′) относительно базиса β′ равна b(β′). Допустимость базиса β′ и базисного вектора x(β′) эквивалентна неотрицательности вектора b(β′). По условию ars(β) > 0. Тогда br(β′) ≥ 0 по (2.28). Для i ≠ r по теореме 2.11 имеем bi(β′) = bi(β) – ais(β)[br(β)/ars(β)]. Если ais(β) ≤ 0, то bi(β′) ≥ bi(β) ≥ 0, так как ars(β) > 0 и br(β) ≥ 0. Если же ais(β) > 0, то по условию br(β)/ars(β) ≤ bi(β)/ais(β). Тогда bi(β′) ≥ bi(β) – ais(β)[bi(β)/ais(β)] = 0. Следовательно, β′ – допустимый базис и x(β′) – БДР задачи P по определению. (б) По утверждению (д) теоремы 2.8 имеем f(x(β)) = F(β) и f(x(β′)) = F(β′). По теореме 2.11 F(β′) = F(β) + zs(β)[br(β)/ars(β)]. Из zs(β) > 0, ars(β) > 0 и br(β) ≥ 0 следует, что F(β′) ≥ F(β). (в) Если x(β) – невырожденное БДР, то br(β) > 0, zs(β)[br(β)/ars(β)] > 0 и F(β′) > F(β). # 74 Приложение 4. Доказательство теоремы 2.15 Обозначения. Пусть P – произвольная ЗЛП с максимизируемой целевой функцией, P1 – ее правильно построенная стандартная форма. Будем использовать следующие обозначения104. Задача P P1 P1* и P* Вектор переменных x u y Целевая функция f(x) f1(u) h(y) Множество допустимых решений X U Y * * Множество оптимальных решений X U Y* Теорема 2.15 (первая теорема двойственности). Задача P разрешима тогда и только тогда, когда разрешима задача P*. Если задачи P и P* разрешимы, то оптимальные значения их целевых функций совпадают. Доказательство. 1. Допустим, что задача P разрешима и x* X *. Тогда задача P1 разрешима по утверждению (а) теоремы 2.3. Из описания симплекс-метода следует, что существует оптимальный базис β задачи P1. Он порождает оптимальное БДР u(β), причем f1(u(β)) = f(x*) по утверждению (б) теоремы 2.3. Тогда y(β) Y и f1(u(β)) = h(y(β)) по утверждению (в) леммы 2.4. По следствию 2.9 вектор y(β) оптимален в задаче P1* . Следовательно, y(β) Y *и f(x*) = f1(u(β)) = h(y(β)). 2. Пусть задача P* разрешима и задача P1 имеет вид: f1(u) = c j u j → max при условиях aij u j = bi для всех i, uj ≥ 0 для всех j. j j Запишем задачу P : h(y) = bi yi → min при условиях * 1 i Эта задача эквивалентна следующей задаче Q: (bi ) yi → max при условиях i a ij yi ≥ cj для всех j. i a ij yi ≥ cj для всех j. i Построим задачу Q* (с переменными zj) по правилам Д1 – Д6 раздела 2.6.2: c j z j → min при условиях aij z j = –bi для всех i, zj ≤ 0 для всех j. j j Замена переменных zj = –uj показывает, что задачи P1* и Q* эквивалентны. Из разрешимости задачи P* следует разрешимость задач P1* и Q, откуда, как доказано выше, следует разрешимость Q* и P1. Тогда, по утверждению (а) теоремы 2.3, разрешима и задача P. # Приложение 5. Доказательство леммы 2.6 Рассмотрим задачу P записанную в канонической форме: f(x) = cx → max при Ax = b, x ≥ 0n, где A Rmn, b Rm, c R1n, x Rn. Множество допустимых решений задачи P обозначим X, множество всех ее оптимальных решений обозначим X *. Предположим, что задача разрешима, X * ≠ . Пусть β – оптимальный базис задачи P и x(β) – соответствующее базисное оптимальное решение. Обозначения. Х0 – множество всех x X, для которых cx ≥ f(x(β)) и xн(β) ≠ 0n–m.105 I0 = {i | bi(β)= 0}. 104 105 Последний столбец таблицы обоснован следствием 2.7. Из оптимальности x(β) следует, что cx = f(x(β)) для всех x X0. 75 U0 – множество всех векторов u = (uj | j N(β))T Rn–m, удовлетворяющих условиям: z j (β)u j = 0, aij (β)u j ≤ 0 для всех i I0, u ≥ 0n–m, u ≠ 0n–m. j N ( β ) jN ( β ) Лемма 2.6. (а) Если задача P имеет решение x* ≠ x(β), то xн (β) U0. (б) Если u U0, то существует решение x* задачи P такое, что x* ≠ x(β) и xн (β) U0 для некоторого > 0. Доказательство. (а) Допустим, что задача P имеет решение x* = ( x j | j 1, n ) T ≠ x(β). Тогда x* Х0 по утверждению (а) леммы 2.5, и xн(β) ≠ 0n–m. Из x(β) X * и x* X * следует, что f(x(β); β) = f(x*; β). Но zj(β) = 0 для j N(β) по утверждению (б) леммы 2.2, поэтому z j (β) xj = f(x*; β) – F(β) = f(x(β); β) – F(β) = z j (β) x j (β) = 0. jN ( β ) j N ( β ) * Вектор x удовлетворяет ограничениям задачи P(β) по утверждению (а) теоремы 2.8. Уравнение с номером i в этой задаче имеет вид (2.26), поэтому x j (i ) + aij (β) xj = bi(β). jN (β ) Если i I0, то bi(β) = 0 и из последнего равенства получаем aij (β) xj = – xj (i ) ≤ 0. jN (β ) н Следовательно, x (β) U0. (б) Предположим, что u = (uj | jN(β))T U0. Тогда u U0 при любом > 0. Определим вектор x* = ( x j | j 1, n )T следующим образом. Для jN(β) положим x j = λuj. Если j N(β), то j = j(i) для некоторого i 1, m ; положим x j (i ) = bi(β) – λ a (β)u jN (β ) ij j = bi(β) – a (β) x jN (β ) ij j . При таком определении x* удовлетворяет общим ограничениям задач P(β) и P. Пусть I1 – множество всех i таких, что aij (β)u j > 0. jN (β ) Из определения множества U0 следует, что I1∩I0 = , следовательно, bi(β) > 0 для всех i I1. Если I1 = , то x* ≥ 0n для любого ≥ 0, так как b(β) ≥ 0n; положим 0 = +∞. Если I1 ≠ , то положим bi (β) | aij (β)u j 0 > 0. λ0 = min aij (β)u j jN (β ) j N (β ) * В любом случае выберем (0, λ0). Теперь вектор x полностью определен. Легко видеть, что x* ≥ 0n. Используя утверждение (б) леммы 2.2, определение множества U0 и утверждение (д) теоремы 2.8, получим: f(x*; β) = z j (β) xj + F(β) = z j (β)u j + F(β) = F(β) = f(x(β); β). jN ( β ) j N ( β ) Но тогда, по утверждению (в) теоремы 2.8, f(x*) = f(x(β)), поэтому x* X *. # Приложение 6. Доказательство леммы 2.20 Рассматриваем разрешимую задачу P0 в канонической форме 76 f(c0, x) = c0 x → max при условиях A0x = b0, x ≥ 0n, где A0 = ( aij0 | i 1, m , j 1, n ), b0 = ( bi0 | i 1, m )T, c0 = ( с 0j | j 1, n ). Будем считать, что строки матрицы A0 линейно независимы. Тогда, по следствию 2.3, всякий базис матрицы A0 состоит из m столбцов, а его базисная матрица имеет размерность mm. Пусть β – оптимальный базис задачи P и x(β) – соответствующее базисное оптимальное решение. Определения и обозначения. Заменив в задаче P0 матрицу A0 и векторы b0, c0 на матрицу A Rmn и векторы b Rm, c Rn соответственно, получим возмущенную задачу P(A, b, c). Понятно, что P0 = P(A0, b0, c0). Набор (A, b, c) параметров возмущенной задачи будем считать точкой в пространстве Rk, где k = mn + m + n. Базис β назовем двойственно невырожденным, если zj(β) ≠ 0 для всех jN(β). Пусть N(β) = {j(1), …, j(m)}, B0 = B(β) – базисная матрица для базиса β. Заменив каждый столбец базиса β и матрицы B0 столбцом матрицы A с тем же номером, получим набор столбцов β(A) и матрицу B. Предположим, что набор β(A) является базисом матрицы A (столбцы из β(A) линейно независимы). Тогда базисные векторы задач P(A, b, c) и P*(A, b, c), порожденные базисом β(A), обозначим x(A, b) = (xj(A, b) | j 1, n ) и y(A, c) = (yi(A, c) | i 1, m ). В соответствии с утверждением (б) леммы 2.4 положим z(A, c) = (zj(A, c) | j 1, n ) = с – y(A, c)A. Пусть x0 = x(A0, b0) = ( x 0j | j 1, n )T, y0 =y(A0, c0) = ( yi0 | i 1, m ), z0 = z(A0, c0) = ( zi0 | j 1, n ). Элементы матрицы B–1, если она существует, обозначим βrs: B–1 = (βrs | r 1, m , s 1, m ) и положим B01 = ( β 0rs | r 1, m , s 1, m ). Если задача P(A, b, c) разрешима, то функция максимумов V(A, b, c) в точке (A, b, c) определена и равна оптимальному значению ЦФ в задаче P(A, b, c). Теорема 2.21 (о маргинальных значениях). Предположим, что базис β удовлетворяет условиям теоремы 2.20. Тогда в некоторой окрестности O точки (A0, b0, c0) определены функция V(A, b, c) и вектор-функции x(A, b), y(A, c), причем: V 0 0 0 V 0 0 0 ( A , b , c ) = xs0 ; ( A , b , c ) = yi0 ; (П6.1) bi сs V 0 0 0 ( A , b , c ) = – yi0 x 0j ; aij x j (П6.2) yi 0 0 ( A , c ) = 0; (П6.3) br сs x j 0 0 x j 0 0 ( A , b ) = β 0ki , если j = j(k) N(β), иначе ( A , b ) = 0. (П6.4) bi bi Доказательство. Пусть O – окрестность точки (A0, b0, c0), построенная в теореме 2.20, и (A, b, c) O. Тогда β(A) – оптимальный базис в задаче P(A, b, c). 1. Векторы x(A, b) и y(A, c) оптимальны в задачах P(A, b, c) и P*(A, b, c) соответственно по следствию 2.10. Тогда V(A, b, c) = cx(A, b) = y(A, c)b для любой точки (A, b, c) O по теореме 2.15. Отсюда, поскольку x(A, b) не зависит от c, а y(A, c) не зависит от b, получаем (П6.1). 2. Для любой точки (A, b, c) O имеем xj(A, b) = 0 для jN(β) и V(A, b, c) = c j x j ( A, b) = c j x j ( A, b) , ( A0 , b 0 ) = jN (β ) j Тогда 77 V ( A, b, c) = aij sN (β ) cs xs ( A, b) . aij –1 Из y(A, c) = cбB следует, что cб = y(A, c)B. Поэтому для s N(β) имеем cs = yr ( A, c)ars . r Отсюда V ( A, b, c) = aij ( y ( A, c)a sN ( β ) r rs r Соотношение ) xs ( A, b) = aij a sN (β ) y ( A, c) r r sN (β ) ars xs ( A, b) . aij (П6.4) x ( A, b) = br rs s является тождеством по A и b в O. Дифференцируя его по aij, получим: [ars xs ( A, b)] ≡ 0. sN (β ) aij (П6.5) При этом xs x ( A , b ) a ( A, b), если (r , s) (i, j ), j rs a ij [ars xs ( A, b)] = aij a xs ( A, b) в других случаях. rs aij Подставим эти выражения в (П6.5): x ars s ( A, b), если r i и j N (β), x j ( A, b) s arj N (β ) [ars xs ( A, b)] = 0≡ sN (β ) aij a xs ( A, b) в других случаях. sN (β ) rs aij Отсюда x j ( A, b), если r i и j N (β), x ars s ( A, b) = aij sN (β ) 0 в других случаях. Тогда из (П6.4) находим y i0 x 0j , если j N (β), V 0 0 0 (A ,b ,c ) = aij 0 в других случаях, что доказывает (П6.2) для j N(β). Формула (П6.2) верна и для jN(β), так как x 0j = 0 при jN(β). 3. Из определений векторов x(A, b) и y(A, c) следует, что x(A, b) не зависит от c, y(A, c) не зависит от b, xj(A, b) = β ki bi для j = j(k) N(β) и xj(A, b) = 0 для jN(β), i если (A, b, c) O. Поэтому выполняются соотношения (П6.3) и (П6.4). # Приложение 7. Доказательство теоремы 2.22 Рассмотрим задачу P в канонической форме с матрицей A Rmn: f(x) = с j x j → max при условиях aij x j = bi для всех i и xj ≥ 0 для всех j. j j Пусть X * и Y * – множества оптимальных решений задач P и P* соответственно. 78 (П7.1) Теорема 2.22 (об условиях единственности решения). Пусть задача P записана в канонической форме (П7.1), все ее переменные существенны и β – ее оптимальный базис. Тогда следующие условия эквивалентны. (а) Базис β является невырожденным и двойственно невырожденным. (б) Базис β удовлетворяет условию строгой дополняющей нежесткости. (в) Базис β является единственным оптимальным базисом в задаче P, причем каждая из задач P и P* имеет единственное решение. Доказательство. Пусть B = B(β). Из оптимальности базиса β следует, что zj(β) ≤ 0 для всех j. По следствию 2.10 векторы x(β) = (xj(β) | j 1, n )T и y(β) = (yi(β) | i 1, m ) оптимальны в задачах P и P* соответственно. По теореме 2.16 они удовлетворяют условию дополняющей нежесткости. 1. Пусть справедливо утверждение (а). Тогда xj(β) > 0 для всех j N(β) и zj(β) = cj – aij yi (β) < 0 для всех jN(β). i Отсюда следует (б). 2. Допустим, что выполнено условие (б) и x′ = ( xj | j 1, n )T X *. Если xj = 0 для всех jN(β), то базисная часть вектора x′ удовлетворяет уравнениям aij x j = bi для всех i. jN ( β ) Матрицей этой системы уравнений является невырожденная матрица B, единственным решением системы является базисная часть вектора x(β). Тогда x′ = x(β). Если же xj > 0 для некоторого jN(β), то zj(β) = 0 по условию дополняющей нежесткости. Но xj(β) = 0 и, по условию (б), zj(β) < 0, противоречие. Допустим теперь, что выполнено условие (б) и y′ = ( у i | i 1, m ) Y *. Тогда y′ удовлетворяет ограничениям задачи P*, y′A ≥ с. Если y′B(β) = сб(β), то y′ = сб(β)B–1(β) = y(β). В противном случае aij yi > cj для некоторого j N(β). i Тогда xj(β) = 0 по условию дополняющей нежесткости. Но zj(β) = 0 по утверждению (б) леммы 2.2 и xj(β) > 0 по условию (б), противоречие. Допустим, что при условии (б) существует оптимальный базис β′ ≠ β. Тогда x(β′) X * и x(β′) = x(β) по доказанному. Из β′ ≠ β следует, что существует j N(β) \ N(β′). Тогда zj(β) = 0 по утверждению (б) леммы 2.2 и xj(β) > 0 по условию (б). При этом xj(β′) = 0, так как jN(β′), противоречие. Таким образом, из (б) следует (в). 3. Предположим, что выполнено условие (в), тогда X * = {x(β)} и Y * = {y(β)}. Если x(β) – невырожденное БДР и zj(β) = 0 для какого-то jN(β), то задача P имеет альтернативное решение по утверждению (в) теоремы 2.19, противоречие. Следовательно, если базис β невырожденный, то он и двойственно невырожденный. Допустим, что базис β является вырожденным. Тогда у БДР x(β) есть альтернативный оптимальный базис106, что противоречит условию (в). Поэтому выполняется (а). # Литература 1. Акоф Р., Сасиени М. Основы исследования операций. М.: Мир, 1971. 2. Майзер Х. История развития и использование методов исследования операций / Исследование операций: В 2 т. Под ред. Дж. Моулдера, С. Элмаграби. М.: Мир, 1981. Т. 1. С. 13 – 80. 106 См. [11, утверждение 28 на стр. 228]. 79 3. Новик И.Б., О философских вопросах кибернетического моделирования. М., Знание, 1964. 4. Полищук Л.И. Анализ многокритериальных экономико-математических моделей. Новосибирск: Наука, 1989. 5. Бусыгин В.П., Желободько Е.В., Цыплаков А.А. Микроэкономика: третий уровень. В 2 т. Т. 1. Новосибирск: Издательство СО РАН, 2008. 6. Феллер В. Введение в теорию вероятностей и ее приложения. В 2 т. Т. 1. М.: Мир, 1964. 7. Гермейер Ю.Б. Введение в теорию исследования операций. М.: Наука, 1971. 8. Шикин Е.В., Чхартишвили А.Г. Математические методы и модели в управлении. 2 изд., испр. М.: Дело, 2002. 9. Вентцель Е.С. Исследование операций: задачи, принципы, методология. 2 изд. М.: Наука, 1988. 10. Эйджин Н. Методика проведения исследования операций / Исследование операций: В 2 т. Под ред. Дж. Моулдера, С. Элмаграби. М.: Мир, 1981. Том 1. С. 37 – 65. 11. Хуторецкий А.Б. Модели исследования операций: введение в предмет, нелинейное программирование, выпуклое программирование, линейное программирование. Новосибирск: Издательство СО РАН, 2006. 12. Мур Д., Уэдерфорд Л.Р. и др. Экономическое моделирование в Microsoft Excel. 6 изд. М.: Издательский дом «Вильямс», 2004. 13. Розен В.В. Математические модели принятия решений в экономике. М.: Книжный дом «Университет», Высшая школа, 2002. 14. Гермейер Ю.Б., Морозов В.В., Сухарев А.Г., Федоров В.В. Задачи по исследованию операций. М.: Изд-во МГУ, 1979. 15. Печерский С.Л., Беляева А.А. Теория игр для экономистов. Вводный курс. СПб.: Изд-во Европ. Ун-та в С.-Петербурге, 2001. 16. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982. 17. Ашманов С.А. Линейное программирование. М.: Наука, 1981. 18. Васильев Ф.П. Численные методы решения экстремальных задач. М.: Наука, 1980. 19. Рокафеллар Р. Выпуклый анализ. М.: Мир, 1973. 20. Беклемишев Д.В. Курс аналитической геометрии и линейной алгебры. 7 изд. М.: Высш. школа, 1998. 21. Шевченко В.Н., Золотых Н.Ю. Линейное и целочисленное программирование. Нижний Новгород: Изд-во Нижегородского госуниверситета, 2004. 22. Schrijver A. Theory of Linear and Integer Programming. Chichester: John Wiley & Sons, 1998. 23. Ашманов С.А., Тимохов А.М. Теория оптимизации в задачах и упражнениях. М.: Наука, 1991. 24. Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. М.: Мир, 1985. 25. Ермольев Ю.М., Ляшко И.И., Михалевич В.С., Тюптя В.И. Математические методы исследования операций. Киев: Вища школа, 1979. 26. Кудрявцев Л.Д. Курс математического анализа. В 3 т. Т.2. М.: Дрофа, 2004. 27. Данциг Дж. Линейное программирование, его применения и обобщения. М.: Прогресс, 1966. 28. Васильев Ф.П., Иваницкий А.Ю. Линейное программирование. М.: Факториал, 1998. 29. Еремин И.И., Астафьев Н.Н. Введение в теорию линейного и выпуклого программирования. М.: Наука, 1976. 30. Муртаф Б. Современное линейное программирование. М.: Мир, 1984. 31. Абрамов Л.М., Капустин В.Ф. Математическое программирование. Л.: Изд-во ЛГУ, 1981. 80 32. Еремин И.И. Противоречивые модели оптимального планирования. М.: Наука,1988. 33. Гончаров Е.Н., Ерзин А.И. Залюбовский В.В. Исследование операций. Примеры и задачи. Новосибирск: НГУ, 2005. 34. Грей К.Ф., Ларсон Э.У. Управление проектами: практическое руководство. М.: Дело и Сервис, 2003. 35. Зайцев М.Г., Варюхин С.Е. Методы оптимизации управления и принятия решений: примеры, задачи, кейсы. 2 изд., испр. М.: Издательство «Дело» АНХ, 2008. 36. Алтаев В.Я., Когутовская Л.А. Сетевые методы планирования капиталовложений. М.: Наука, 1976. 37. Филлипс Д., Гарсиа-Диас А. Методы анализа сетей. М.: Мир, 1984. 38. Евстигнеев В.А., Касьянов В.Н. Словарь по графам в информатике. Новосибирск: ООО «Сибирское Научное Издательство», 2009. 39. Вентцель Е.С. Исследование операций. М.: Советское радио, 1972. 40. Майника Э. Алгоритмы оптимизации на сетях и графах. М.: Мир, 1981. 41. Воробьев Н.Н. Теория игр для экономистов-кибернетиков. М.: Наука, 1985. 42. Васин А.А., Морозов В.В. Теория игр и модели математической экономики. М.: МАКС Пресс, 2005. 43. Петросян Л.А., Зенкевич Н.А., Семина Е.А. Теория игр. М.: Высш.. шк.; Кн. дом «Университет», 1998. 44. Milnor J.W. Games against Nature / C.H. Coombs, R.L. Davis, R.M. Thrall, еds. Decision Processes. New York: Wiley, 1954. P. 49 – 60. 45. Бабенко Т.И., Барабаш С.Б. Методы принятия управленческих решений (в среде Excel). Новосибирск: Издательство СО РАН, 2006. 46. Виленский П.Л., Лившиц В.Н., Смоляк С.А. Оценка эффективности инвестиционных проектов. Теория и практика. 2 изд., перераб., доп. М.: Дело, 2002. 47. Волков И.К., Загоруйко Е.А. Исследование операций. М.: Издательство МГТУ им. Н.Э. Баумана, 2000. 48. Таха Х.А. Введение в исследование операций. 7 изд. М.: Издательский дом «Вильямс», 2005. 81 Учебное издание Хуторецкий Александр Борисович, Горюшкин Антон Андреевич МАТЕМАТИЧЕСКИЕ МОДЕЛИ И МЕТОДЫ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ Курс лекций Подписано в печать . .2014 г. Формат . Уч.-изд. л. . Усл. печ. л. . Тираж 200 экз. Офсетная печать. Заказ № . Редакционно-издательский центр НГУ; 630090, Новосибирск, ул. Пирогова, 2 82