Текст
                    APPLIED
NONLINEAR
PROGRAMMING
David M. Himmelblau
The University
of Texas, Austin, Texas
McGraw-Hill Book Company
1972


APPLIED NONLINEAR PROGRAMMING David M. Himmelblau The University of Texas, Austin, Texas McGraw-Hill Book Company 1972
Д. Химмелъблау ПРИКЛАДНОЕ НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ Перевод с английского И. М. БЫХОВСКОЙ и Б. Т. ВАВИЛОВА Под редакцией М, Л. БЫХОВСКОГО ИЗДАТЕЛЬСТВО «МИР» МОСКВА 1975
УДК 51.380.115 Книга посвящена методам оптимального управления системами с нелинейными целевыми функциями. Описаны методы нелинейного программирования как при отсутствии ограничений на управляю- управляющие переменные, так и при наличии ограничений. Рассматриваются такие вопросы, как возможность получения решения, время оптими- оптимизации, точность решения и т, д. Для наиболее важных методов при- приводятся программы решения на языке ФОРТРАН. Каждая глава содержит много примеров, не только поясняющих теорию, но и иллю- иллюстрирующих необходимые вычислительные процедуры и используе- используемые программы.. Книга представляет интерес для специалистов по автоматическо- автоматическому управлению, вычислительной технике и прикладной математике. Редакция литературы по новой технике (с) Перевод на русский язык, «Мир», 1974 3314-429 1484 041 @1)-75
ПРЕДИСЛОВИЕ Цель этой книги состоит в том, чтобы в доступной форме изложить некото- некоторые из наиболее эффективных методов нелинейного программирования и дать сравнительную оценку этих методов Для решения общей задачи нелинейного про- программирования было предложено довольно много алгоритмов, однако лишь не- немногие из них оказались эффективными для задач большой размерности. Ни один из этих алгоритмов не имеет по отношению к другим таких преимуществ, чтобы его можно было считать универсальным средством решения любых задач не- нелинейного программирования. В данной книге описанию используемых методов уделяется больше внима- внимания, чем математическим доказательствам сходимости алгоритмов нелинейного программирования для определенных типов задач. Такие доказательства, разу- разумеется, важны, однако они применимы только к весьма узким категориям задач и^могут служить лишь как дополнительная информация для исследователя, при- применяющего тот или иной алгоритм. В отличие от линейного программирования при решении задачи нелинейного программирования выбранный алгоритм может оказаться эффективным, даже если не удается доказать его сходимость. Справед- Справедливо и обратное утверждение, а именно: наличие доказательства сходимости алго- алгоритма в частных случаях может не означать, что ои окажется удовлетворитель- удовлетворительным для более сложных задач. ' В книге подробно описаны те алгоритмы нелинейного программирования, которые оказались достаточно эффективными на практике. При сравнении алго- алгоритмов были использованы следующие критерии: П надежность; 2) скорость решения; 3) время подготовки задачи для решения; 4) точность решения; 5) степень выполнения ограничивающих условий. Рассматриваемые методы предназначены для оптимизации значения некоторой нелинейной функции при ограничениях в виде равенств и (или) неравенств, содержащих функции большого числа переменных. Все эти переменные являются детерминированными (в отличие от случайных, или стохастических, переменных). Описанные методы могут быть практически реализованы лишь при помощи совре- современных цифровых или гибридных ЭВМ. Использование аналоговых вычислитель- вычислительных машин ие рассматривается. Не рассматриваются также ни целочисленное (или дискретное) программирование, ни методы поиска оптимального решения динами- динамических задач, т. е. задач, в которых время является одним из параметров. В этой книге мы не стремимся раскрыть отдельные тонкости методов оптими- оптимизации, однако здесь приведены все необходимые подробности, позволяющие чи- читателю проследить существенные этапы каждого из рассматриваемых методов. Нередко оказывается, что детали программирования некоторого алгоритма, особенно в часто повторяемых процедурах, заметно влияют на качество работы ал- алгоритма в целом. Подробно рассмотренные примеры в конце каждого раздела пояс- поясняют вычислительные аспекты алгоритмов; для иллюстрации логической струк- структуры алгоритмов приведено большое количество блок-схем. Приложение Б содер- содержит несколько машинных программ для наиболее удачных алгоритмов. Благодаря
Предисловие тому что для всех алгоритмов используются одни и те же обозначения, можно глуб- глубже понять их структурные связи друг с другом и общие свойства. Книга состоит из трех частей. Первая часть содержит две главы. Глава 1 пред- представляет собой краткое введение; в гл. 2 формулируется общая задача нелинейного программирования, рассматривается связь нелинейного программирования с дру- другими видами математического программирования и, наконец, устанавливаются необходимые и достаточные условия существования оптимального решения. Во второй части рассматриваются алгоритмы нелинейного программирования при отсутствии ограничений. В гл. 3 описывается градиентный метод, метод вто- вторых производных и другие связанные с ними стратегии, в которых используются производные. Глава 4 посвящена рассмотрению стратегий поиска. В гл. 5 дается оценка различных алгоритмов оптимизации при отсутствии ограничений. В третьей части описываются алгоритмы оптимизации при наличии ограни- ограничений. Глава 6 посвящена рассмотрению методов линеаризации. В гл. 7 изло- изложены методы штрафных функций, а в гл. 8 описан метод скользящего допуска. Оценки алгоритмов оптимизации при наличии ограничений приводятся в гл. 9. Приложение А содержит ряд упражнений с соответствующими решениями. Кроме того, в каждой главе (за исключением первой) приводятся дополнительные задачи, предлагаемые читателю для решения. Для понимания описанных в книге алгоритмов необходимо знание основ ма- математического анализа, некоторое умение обращаться с матрицами и векторами, а также знакомство с методами решения задач линейного программирования. В приложении В приводятся основные сведения из матричной алгебры. Для чтения машинных программ необходимо знание основ программирования на ФОРТРАНе. Однако эти программы снабжены необходимыми инструкциями, так что их можно использовать, владея лишь методикой перфорирования. Такого рода «механиче- «механический» подход к использованию программ иногда оказывается вполне приемлемым, однако при отсутствии должной осторожности он может привести к ошибкам. Д. М. Химмельблау
Часть I ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ В первой части книги сформулирована задача нелинейного программирования, показана ее связь с реальными физическими задачами, а также приведена терминология, связанная с нелиней- нелинейным программированием. Кроме того, здесь описаны методы, с по- помощью которых можно определить, действительно ли предполага- предполагаемое оптимальное решение является оптимальным.
Глава 1 ВВЕДЕНИЕ На протяжении всей своей истории люди при необходимости принимать решения прибегали к сложным ритуалам. Они устраивали торжественные церемонии, приносили в жертву животных, гадали по звездам и следили за полетом птиц. Они полагались на народные приметы и старались следовать примитивным правилам, облегчаю- облегчающим им трудную задачу принятия решений. В настоящее время для принятия решения используют новый и, по-видимому, более научный «ритуал», основанный на применении электронно-вычисли- электронно-вычислительной машины. Без современных технических средств человече- человеческий ум, вероятно, не может учесть многочисленные и разно- разнообразные факторы, с которыми сталкиваются при управлении пред- предприятием, конструировании ракеты или регулировании движения транспорта. Существующие в настоящее время многочисленные мате- математические методы оптимизации уже достаточно развиты, что по- позволяет эффективно использовать возможности цифровых и гиб- гибридных вычислительных машин. Одним из этих методов является математическое программирование,, включающее в себя как частный случай нелинейное программирование. Термин «математическое программирование» предложен Робер- Робертом Дорфманом приблизительно в 1950 г.; теперь он объединяет линейное программирование, целочисленное программирование, вы- выпуклое программирование, нелинейное программирование и програм- программирование при наличии неопределенности. Нелинейное програм- программирование имеет дело с оптимизацией нелинейных функций при линейных и (или) нелинейных ограничениях. Типичными областями его применения являются прогнозирование, планирование промыш- промышленного производства, управление товарными ресурсами, контроль качества выпускаемой продукции, планирование обслуживания и ремонта, проектирование технологических линий (процессов), учет и планирование капиталовложений. Пока еще не существует общего метода решения нелинейных задач оптимизации, такого, как, например, симплексный алгоритм, разработанный для задач линей- линейного программирования. Нелинейное программирование при реше- решении задач включает в себя элементы экспериментирования. Его развитие до сих пор сводилось к предложениям частных алгоритмов,
Введение программированию их, проверке результатов применения этих алгорит- алгоритмов в конкретных задачах, представляющих практический интерес, и построению лучших алгоритмов на основе приобретенного опыта. Последние двадцать лет в области математического програм- программирования значительные усилия были сконцентрированы на линей- линейном программировании. Полученные результаты столь значительны, что достигнутый здесь уровень позволяет решать большинство практических задач. Что же касается нелинейного программи- программирования, то, хотя здесь и было предложено большое число различных стратегий поиска решений, успешное применение нашли лишь не- немногие алгоритмы^ Область применения разработанных алгоритмов нелинейного программирования весьма ограничена. В связи с даль- дальнейшим развитием ЭВМ и растущей необходимостью более точно решать задачи, представляющие практический интерес, возникает необходимость в методах решения задач нелинейного программи- программирования с более широкой областью применимости. Большинство практических задач имеет несколько (а некоторые, возможно, даже бесконечное число) решений. Целью оптимизации является нахождение наилучшего решения среди многих потенци- потенциально возможных в соответствии с некоторым критерием эффектив- эффективности или качества. Задача, допускающая лишь одно решение, не требует оптимизации. Оптимизация может быть осуществлена при помощи многих стратегий, начиная с весьма сложных анали- аналитических и численных математических процедур и кончая разумным применением простой арифметики. Предполагая, что подлежащая оптимизации задача некоторым образом определена (не обязательно математически), можно классифицировать общие методы оптими- оптимизации следующим образом: 1. Аналитические методы, использующие классические методы дифференциального и вариационного исчислений. Эти методы заклю- заключаются в определении экстремума функции / (х) путем нахождения тех значений х, которые обращают в нуль производные / (х) по х. В случае поиска экстремума / (х) при наличии ограничений приме- применяются такие методы, как метод множителей Лагранжа и метод ограниченных вариаций. При использовании аналитических методов задача оптимизации должна быть сформулирована математически с тем, чтобы можно было обращаться со всеми фигурирующими в ней функциями и переменными при помощи известных правил. Для решения больших существенно нелинейных задач аналитические методы оказываются непригодными, и поэтому в данной книге они не рассматриваются. 2. Численные методы, использующие предшествующую инфор- информацию для построения улучшенных решений задачи при помощи итерационных процедур. Численные методы применяются для решения задач, которые не могут быть решены аналитически, и, поскольку практические задачи поддаются решению численными
10 Глава 1 методами, именно эти методы нелинейного программирования явля- являются предметом обсуждения в данной книге. К другим общим методам, которые эффективно применяются при решении задач оптимизации, но которые здесь не рассматрива- рассматриваются, относятся следующие: 3. Графические методы, основанные на графическом изображе- изображении функции, подлежащей максимизации или минимизации, в зависимости от одной или нескольких переменных. Экстремум функции в этом случае получают непосредственно путем анализа ее графика. Преимущество графических методов состоит в том, что они просты и сразу показывают, существует решение или нет. С другой стороны, они применимы в тех случаях, когда критерий качества является функцией одной или максимум двух независи- независимых переменных. 4. Экспериментальные методы. Экстремум функции можно иногда найти, экспериментируя непосредственно с реальными переменными вместо того, чтобы исследовать соответствующую мате- математическую модель. Результаты одного эксперимента используют- используются для планирования следующего эксперимента, позволяющего получить улучшенные результаты. 5. Методы исследования различных вариантов. Эти методы осно- основаны на анализе нескольких возможных решений одной и той же задачи с целью выбора наилучшего. Таким образом, «наилучшее» решение, полученное методом исследования различных вариантов, будет скорее всего лишь субоптимальным. При выборе наиболее подходящего способа описания реальных процессов приходится сталкиваться с рядом трудностей, которые для удобства обсуждения можно подразделить на две группы. Одна группа связана с построением математической модели про- процесса, а другая — с численными методами решения. В этой книге мы можем только отметить эти трудности и, где возможно, указать пути их устранения при описании того или иного конкретного ал- алгоритма. Математическая модель содержит функции, участвующие в про- процедуре оптимизации. Очевидно, для того чтобы искомый экстремум имел физический смысл, выбранная модель должна адекватно отра- отражать существенные черты реального процесса. Но даже если это требование выполнено, при построении модели встречаются следу- следующие типичные затруднения: 1. Оптимизируемый критерий может быть нечувствительным к изменениям независимых (оптимизируемых) переменных и по- поэтому не удается определить четко выраженный экстремум. 2. Оптимизируемый критерий или некоторые из ограничений могут принимать в области поиска решения неограниченные зна- значения; значения частных производных в математической модели также могут стать неограниченными. Особенно подвержены этой опасности
Введение 11 модели с полиномами в знаменателе. Так, например, значения функции b0 г + 6 и ее первой частной производной по хг дхг (V, + 63*гJ обращаются в бесконечность при Ь2хх = — Ь3х^. Эту трудность можно преодолеть, ограничив области допустимых значений неза- независимых переменных путем введения дополнительных ограничений в задачу, или. же изменив формулировку самой математической модели. 3. Переменные могут быть плохо масштабированы. Трудности масштабирования могут возникнуть, например, когда один из членов в выражении для критерия имеет существенно иной порядок величины, чем другой. При этом критерий становится нечувстви- нечувствительным к изменениям значений переменных в мевьшем члене. Например, значение целевой функции у= 100*? —0,010*1 будет мало зависеть от изменения х2, если только значение #2 вслед- вследствие используемых физических единиц измерения не окажется много больше значения хх. Если х2 представляет собой величину того же порядка, что и хи то либо одну переменную, либо обе пере- переменные можно умножить на масштабные множители, в результате чего оба члена в правой части приведенного выше соотношения ока- окажутся величинами одного и того же порядка. Положим, например, xt = Ю*!, х\ = 1(Г2 ~х\, х2 = КГ1*,;, х\ = \Qhcl. Тогда члены в выражении для целевой функции становятся вели- величинами одного порядка. После того как найден экстремум для у = х\ — х\, можно определить значения хх и х2 по значениям Xi и #2. Конечно, не всегда удается так легко изменить масштаб функций в матема- математической модели, как это сделано в рассмотренном примере. 4. В плохо построенной математической модели переменные мо- могут оказаться взаимосвязанными. Взаимное влияние переменных можно проиллюстрировать на примере очень простого критерия, в который входит произведение двух параметров: у = 2х,х2 + 10.
12 Глава 1 Здесь каждая из переменных хг и хг может принимать различные значения при заданном значении произведения хгхй. В том случае, когда имеет место взаимное влияние переменных, осуществлять масштабирование гораздо сложнее. Для исключения членов, со- содержащих произведение двух переменных, квадратичные формы можно привести к каноническому виду. При этом определяются новые координатные оси, называемые главными осями, относитель- относительно которых данная поверхность второго порядка симметрична. На- Например, поверхность у = 7Х\ + 64 + 5хз — ixjxt — 4х2х3 — 6*! — 24*2 + 18х3 + 18 путем смещения начала координат и поворота координатных осей может быть приведена к виду у _ 18 = Ъх\ + 6^2 + 9д|. В новой системе координат масштабирование каждого члена зна- значительно проще, чем в исходной системе. Нелинейные функции можно сделать квадратичными при помощи подходящего преобра- преобразования модели или разложения соответствующих функций в ряд Тейлора с сохранением конечного числа членов. Более тонким примером, в котором взаимное влияние переменных оказывается также весьма ощутимым, является следующий: у = хгеьл. 5. В математической модели может оказаться, что некоторые из переменных исключаются путем их надлежащего преобразова- преобразования. Пусть, например, у = х\ + 2 хЛ + х\ + 2 = to + х2J + 2. После преобразования xt + х.г = хг получим Таким образом, вместо двух переменных в выражении для у оста- осталась только одна переменная хх, которую и следует варьировать, чтобы найти экстремум у. Вторая группа трудностей связана с численными методами решения задачи оптимизации: 1. Как выбрать подходящие начальные значения независимых переменных? Поскольку задача содержит нелинейные функции, то в отличие от анализа линейных систем при этом возможно суще- существование нескольких экстремумов. Следовательно, если начальные значения переменных находятся слишком далеко от искомого экс- экстремума, оптимизация может закончиться не в точке глобального экстремума, а в некоторой точке, соответствующей локальному экстремуму. Часто приблизительно оптимальные значения незави-
Введение 13 симых переменных можно получить на основе ранее проведенных исследований или исходя из физических соображений. В крайнем случае молшо выбрать несколько начальных векторов из допустимой области и проверить, дают ли они одно и то же значение критерия в точке экстремума. Но при таком подходе имеются свои трудности; о них уже упоминалось в связи с обсуждением проблемы построения адекватной модели. 2. Как учесть стохастическую (случайную) природу физических переменных? Реальная возможность того, что коэффициенты и пере- переменные в математической модели могут быть случайными величи- величинами, в этой книге не рассматривается. 3. Как уменьшить ошибки вычислительной процедуры? Пог- Погрешности, возникающие при учете лишь конечного числа членов при разложении функций в ряды, снижают эффективность многих алгоритмов. Устойчивость решения зависит от того, сходится ли в пределе решение «аппроксимирующей» задачи нелинейного про- программирования к решению исходной задачи. Могут возникнуть так- также неприятности из-за ошибок округления в процессе оптимиза- оптимизации, особенно при аппроксимации производных разностными выра- выражениями. Как и любой математический аппарат, методы нелинейного программирования нельзя слепо применять для решения той или иной задачи без тщательного предварительного анализа. Практи- Практическое применение методов нелинейного программирования требует от исследователя определенного искусства. При этом совершенно необходимо корректное построение модели и применение подхо- подходящих численных процедур. Книга состоит из трех частей. Первая часть посвящена пробле- проблеме нелинейного программирования. Во второй части дается описа- описание различных методов нелинейного программирования при от- отсутствии ограничений и проводится их сравнение. Наконец, в тре- третьей части рассматриваются рабочие алгоритмы для нелинейно- нелинейного программирования при наличии ограничений и проводится их сравнительная оценка. В приложениях содержатся упражнения (вместе с решениями), а также неопубликованные до сих пор ма- машинные программы алгоритмов нелинейного программирования.
Глава 2 ЗАДАЧА НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ И ЕЕ ОПТИМАЛЬНОЕ РЕШЕНИЕ В технике, экономике и естественных науках, как, впрочем, и б других областях, часто возникают задачи оптимизации сложной совокупности оборудования, операций, цепей или процессов. Тре- Требуется минимизировать или максимизировать некоторую функцию, называемую целевой функцией, которая характеризует цену, вес, общую эффективность или нечто подобное при определенных огра- ограничениях. Подобные задачи оптимизации, сформулированные ма- математически, могут быть объединены под общим названием задача нелинейного программирования; методы решения таких задач лежат в основе нелинейного программирования. В этой главе сначала до некоторой степени формально описывается общая задача нели- нелинейного программирования и некоторые специальные вопросы, Затем на примере демонстрируется связь между тем, что мы хотели бы получить при оптимизации реального процесса, и математическим описанием оптимизации. Далее приводятся необходимые определе- определения и терминология и, наконец, описываются условия оптимальности. 2.1. ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Задачей линейного программирования называется задача, в ко- которой минимизируемым или максимизируемым критерием является линейная функция, причем на переменные налагаются ограничения, которые представляются линейными функциями. Комбинация ска- скаляров или векторов, обычно обозначаемых Х{, называется линей- линейной, если она может быть записана в виде с1Х1 + с2Х2 + .-. +спХп, B.1.1) где все коэффициенты с — константы. Например, функция линейна относительно переменных xlt x2, х3, тогда как функция 2л;? + ххх2 + Зе*3 нелинейна относительно тех же переменных. Величины Хи ..., Хп называются линейно зависимыми, если для некоторого набора ct в предположении, что не все с{ равны нулю, имеет место следующее
Задача нелинейного программирования 15 равенство: с1Х1 + с2Х2 + • • • + спХп = g ctXt = 0. B.1.2) п С другой стороны, если 2 СА = 0 только тогда, когда все коэф- 1=1 фициенты с,- равны нулю, то Х1( ..., Хп называются линейно неза- независимыми. Линейное программирование стало быстро развиваться после второй мировой войны, привлекая внимание математиков, эконо- экономистов и инженеров благодаря возможности широкого практиче- практического применения, а также математической стройности. Применение линейного программирования оказалось плодотворным в таких областях, как: 1. Оптимальное регулирование полетов на воздушных линиях. 2. Распределение во времени транспортировки грузов с заво- заводов и складов к базам. 3. Размещение электронного оборудования на морских судах. 4. Планирование промышленного производства. 5. Система оплаты контрактов. 6. Проектирование систем связи и распределение в них пото- потоков сообщений. 7. Распределение кадров. 8. Организация максимальных потоков в транспортных сетях. 9. Эффективное смешивание бензина. Широкое привлечение внимания к линейному программированию привело к тому, что до некоторой степени была преувеличена его значимость; часто упускали из виду, что оно применимо лишь тогда, когда выполняются лежащие в его основе гипотезы, которые в свою очередь базируются на линейном математическом представ- представлении реального мира. В нелинейном программировании не ис- используются столь сильные упрощения. Хотя задача линейного программирования может быть сформу- сформулирована по-разному, запишем ее в следующей форме [1, 2]: п минимизировать у— 2 cixt B.1.3а) >=1 при ограничениях п 2 tk,xt - 6/ > 0, /= 1,...,«, B.1.36) 1 — 1 *,>0, *=1, .... п, B.1.3b) где a, b не — константы, ах — искомые переменные. Для решения задачи, выраженной уравнениями B.1.3), были предложены раз- различные методы, которые можно найти в списке литературы, поме- помещенном в конце этой главы. Предполагается, что читатель знаком
16 Глава 2 с модифицированным симплексным методом решения. На фиг. 2.1.1 дано геометрическое представление граничных плоскостей для сле- следующей типичной задачи линейного программирования: максимизировать у = 3xl-Jr 5#2 -f- 4х3 при ограничениях 2xt + Зх2 < 8, Зд;1 + 2д:3 + 4л:3< 15 для неотрицательных значений xlt x2 и х3. Здесь целевая функция изображена двумя плоскостями, соответствующими постоянным ssAj-) (ОД2) f(x)*O Ф и г. 2.1.1. Геометрическое представление функций в задаче линейного програм- программирования. ее значениям. В обозначениях B.1.3) эта задача может быть пере- переформулирована следующим образом: минимизировать —у == — (Зд^ + Ъхг + 4х3) при ограничениях B З)
Задача нелинейного программирования 17 -C*1 + 2*а + 4х3)+ 15 > О, *i>0, *2>0. *з>0- Приведенный ниже пример показывает, как на основании имею- имеющейся информации математически формулируется задача линейного программирования. Пример 2.1.1. Формулировка задачи линейного программирования Этот пример иллюстрирует связь между уравнениями B.1.3) и реальной задачей. Фирма грузовых перевозок ассигновала 600 000 долл. на приобретение грузовиков трех типов. Грузовик А стоит 10 000 долл., грузовик В — 20 000 долл. и грузовик С — 23 000 долл. Сколько грузовиков каждого типа нужно заказать, чтобы получить наибольшую производительность в тонно-милях на один день с учетом приведенных ниже условий? Грузовик А требует для обслуживания одного водителя на каж- каждую смену, максимальное число смен в сутки 3, производительность 2100 тонно-миль за каждую смену. Грузовик В требует для обслуживания двух водителей на каждую смену, максимальное число смен в сутки 3, производительность 3600 тонно-миль за каждую смену. Грузовик С требует для обслуживания двух водителей на каж- каждую смену, максимальное число смен в сутки 3, производительнссть 3780 тонно-миль за каждую смену. Кроме того, число водителей должно быть не больше 145, чис- число грузовиков — не больше 30. Эта задача может быть сформулирована в терминах линейного программирования следующим образом. Обозначим число смен индексами 1, 2 и 3, а число грузовиков каждого типа — прописны- прописными буквами А, В и С. Сначала необходимо выбрать критерий опти- оптимальности. В данном примере этим критерием является произво- производительность, соответствующая функции B.1.3а): у = 2100Лх + 4200Л2 + 6300Л3 + 3600В! + 7200В2 + 10 800В3+ + 3780С,з '+ 7560С2 + 11 340С3, где у — количество тонно-миль. Запишем далее выражения для ограничений. Здесь мы имеем дело с ограничениями трех типов: 1) общая стоимость всех грузовиков не должна превышать 600 000 долл., 2) число грузовиков должно быть не более 30, 3) число во- водителей должно быть не более 145: 1) 10 000 (Лх + А2 + 4) + 20 000 (Дх + Вя + В3) + 23 000 (Сх + + С2 + С3) < 600 000;
18 Глава 2 2) At + A3+B1+B.i C2 + C3<30; 3) 4 + 2Л2 + 34 + 2B, + 4B, + 6S3 + 2CX + 4C2 + 6C3 < 145. Кроме того, поскольку грузовики являются физическими объекта- объектами и их число не может быть отрицательной величиной, имеют место следующие неравенства, соответствующие условиям B.1.3в): 4>0, В,>0, Ct>0, i=l, 2, 3. Поставленная так задача может быть решена соответствующим методом линейного программирования; в результате определяется количество грузовиков типов А, В и С, максимизирующее вели- величину у. Решение: 12 грузовиков типа А, 0 грузовиков типа В и 18 гру- грузовиков типа С. Матричные обозначения позволяют в компактной форме форму- формулировать задачи математического программирования и описывать алгоритмы их решения. В приложении В приведены некоторые ос- основные сведения о матрицах. Пусть х и с — векторы-столбцы раз- размерности п X 1 в Еп (т. е. в «-мерном евклидовом пространстве переменных), а — матрица констант размерности п X т и b — век- вектор-столбец размерности т X 1: х = an al2' "V Тогда в матричных обозначениях следующим образом: минимизировать у з== / (х) = сгх при ограничениях агх> х>0, iA-i уравнения B.1.3) запишутся B.1.4а) B.1.46) B.1.4b) где верхний индекс Т обозначает транспонирование. Вектор х*, удовлетворяющий соотношениям B.1.4), представляет собой иско- искомое решение задачи. 2.2. ОБЩАЯ ЗАДАЧА НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В самом широком смысле общая задача нелинейного програм- программирования заключается в отыскании экстремума целевой функции при заданных ограничениях в виде равенств и (или) неравенств. Ограничения могут быть линейными и (или) нелинейными. Однако общепринята несколько более узкая постановка общей задачи не-
Задача нелинейного программирования 19 линейного программирования, в которой исключаются из рассмотре- рассмотрения следующие специальные случаи: 1, Переменные принимают лишь целочисленные значения (не- (нелинейное целочисленное программирование). 2. Ограничения включают как параметр время, при этом исполь- используются дифференциальные уравнения (оптимальное управление, динамическая оптимизация). Пусть непрерывная функция f(x) представляет собой целевую функцию, ^(х),..., hm(x) задают ограничения в виде равенств, а gm+[ (х),..., gp(x) — ограничения в виде неравенств, где х = [хг,... ..., хп]т — вектор-столбец компонент xL,..., хп в «-мерном евклидовом пространстве. Как и в линейном программировании, переменные х1, ..., хп могут быть конструктивными параметрами, установками регулято- регулятора, показаниями измерительных приборов и т. д., тогда как целе- целевая функция может представлять собой стоимость, вес, годовой доход и т. д., а ограничения — технические требования, условия работы, пропускную способность или факторы безопасности, при- присущие данному процессу. Формально задача нелинейного программирования может быть сформулирована следующим образом: минимизировать /(х), х??п, B.2.1) при пг линейных и (или) нелинейных ограничениях в виде равенств А/(х) = 0, j = l, .... пг, B.2.2) и (р — пг) линейных и (или) нелинейных ограничениях в виде неравенств g/(x)>0, i = m + l, ..., p. B.2.3) Хотя в некоторых частных случаях ограничения в виде равенств могут быть явно разрешены относительно выбранных переменных, которые затем исключаются из задачи как независимые переменные, и в задаче остаются только ограничения в виде неравенств, чаще всего ограничения в виде равенств не могут быть явно разрешены и потому сохраняются. Иногда встречается другое представление выражений B.2.1) — B.2.3): минимизировать {/ (х) | х ? R), B.2.4) где R — область пространства переменной х, для которой выполне- выполнены условия B.2.2) и B.2.3), например R = {х | hj (х) = 0, g, (x) > 0 для всех /}. B.2.5) Знак неравенства в выражении gt (x) >- 0 может быть изменен на обратный путем умножения на —1, что не изменит математической постановки задачи.
20 Глава 2 В качестве простого примера задачи нелинейного программи- программирования, которую можно проиллюстрировать графически, приведем следующую: минимизировать / (х) = х\ + х\ + 2х2 при ограничениях Мх) = 44*2-1=0, ?з (х) = % > О, g4 (х) = .v2 > 0. На фиг. 2.2.1 целевая функция изображена пунктирными линиями, ограничение в виде равенства — жирной сплошной прямой, а гра- h,(x) (X) Линии уровней fCx) Фиг. 2.2.1. Геометрическое представление функций в задаче нелинейного про- программирования. ница области, определяемой ограничениями в виде неравенств,— линиями со штриховкой (нанесенной с внутренней стороны области). В каждой точке хгс-мерного пространства переменных хг, ..., хп функция / (х) имеет определенное значение, и, следовательно, это л-мерное пространство представляет собой скалярное поле
Задача нелинейного программирования 21 для критерия оптимальности. Как показано на фиг. 2.2.1, в этом пространстве можно вычертить семейство линий уровней (эквипо- (эквипотенциальных гиперповерхностей) для выбранных значений функ- функции / (х). Пространство переменных х1г .., хп является также ска- скалярным полем для функций ограничений, для которых также можно изобразить графически эквипотенциальные гиперповерхности. При помощи классических методов анализа в общем случае невозможно заранее выявить расположение точки х*, которая соответствует минимальному (или максимальному) значению функции / (х), поскольку она может находиться на пересечении ограничивающих поверхностей или между ними. Задачи линейного и квадратичного программирования могут рассматриваться как два частных случая общей задачи нелинейно- нелинейного программирования. Если и функция B.2.1), и уравнения B.2.2), и неравенства B.2.3) линейны, то мы имеем дело с задачей линейного программирования. Если же целевая функция квадратична, а ограничения линейны, то имеет место задача квадратичного програм- программирования: минимизировать / (х) = а0 + сгх + xrQx B.2.6а) при ограничениях агх > Ь, B.2.66) х > 0, B.2.6b) где Q — положительно определенная или неотрицательно опреде- определенная квадратичная симметрическая матрица, а а и b — матрицы коэффициентов, определение которых дано выше в связи с уравне- уравнением B.1.4). В приложении В дано определение положительно определенной матрицы. Иногда в задачу квадратичного програм- программирования включают линейные ограничения в виде равенств агх = Ь. B.2.6г) Примером задачи квадратичного программирования может служить следующая: минимизировать / (х) = 0,5л;? + 0,5x1 — хх — 2х2 при ограничениях (N 2 gt (x):5-xl — 4x2 > 0, g» (x): *i > 0, Во всех трех классах задач — нелинейных, линейных и квадра- квадратичных — нужно найти вектор х* == [х\, ,,., х*п ]г, минимизирующий
22 Глава 2 (или, наоборот, максимизирующий) функцию / (х) при следующих условиях: hj (х) = 0, / = 1, ..., т, и gj (х) > 0, / = т + 1, ..., р. 2.3. СВЯЗЬ ЗАДАЧИ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ С РЕАЛЬНЫМ ПРОЦЕССОМ В некоторых задачах оптимизации, таких, как задача миними- минимизации по методу наименьших квадратов («минимизировать сумму квадратов отклонений наблюдаемого выходного сигнала от жела- желаемого») или минимизация интеграла, появляющегося в вариацион- вариационной задаче, постановку задачи нелинейного программирования можно легко связать с рассматриваемой физической задачей. Но в других случаях это не так. Рассмотрение только математической постановки задачи нелинейного программирования само по себе не позволяет выявить все факторы, от которых зависит оптимиза- оптимизация реального процесса. В этом разделе будет кратко рассмотрена взаимосвязь физической задачи и ее математического представления. При оптимизации реального процесса параметры и (или) пере- переменные связаны физическими законами, такими, как законы сохра- сохранения массы или энергии, которые должны быть включены в задачу нелинейного программирования как ограничения в виде равенств, даже если они только подразумеваются. Таким образом, одна группа ограничений состоит из функциональных связей, которые сле- следует учитывать, чтобы оптимизация была физически осуществимой. Вторая группа ограничений включает заданные предельные диапа- диапазоны значений переменных или параметров, обеспечивающие их физическую реализуемость или совместимость с данным процессом; к этой группе относятся ограничения в виде неравенств. Заменять эти ограничения или добавляться к ним могут эмпирические связи, как правило, выражаемые равенствами. Наконец, для упрощения уравнений модели процесса часто вводят новые переменные, которые образуют дополнительные ограничения в виде равенств в том слу- случае, когда исходные уравнения не могут быть разрешены в явном виде относительно определяемой переменной. На фиг. 2.3.1 показа- показаны связи между различными частями задачи нелинейного програм- программирования и алгоритмом решения. Каждое ограничение в виде равенства уменьшает на единицу число степеней свободы в модели процесса и приводит к появлению еще одной зависимой переменной. Обычно предполагается, что урав- уравнения модели процесса записываются достаточно аккуратно, так что все равенства являются независимыми; если же из-за невнима- невнимательности или ошибки в задачу включаются два избыточных, или, другими словами, зависимых, уравнения, то число степеней сво- свободы будет отличаться от действительного. Число остаточных сте-
Задача нелинейного программирования 23 пеней свободы должно соответствовать числу независимых пере- переменных (часто называемых переменными решения) в рассматривае- рассматриваемой задаче нелинейного программирования. Оно является важным понятием в задаче оптимизации любого типа при ограничениях в виде равенств, ибо если число переменных равняется числу независимых ограничений в виде равенств, то оптимизировать нечего— значения всех переменных можно непосредственно Целевая Функция ffx) / \ Параметры \ t Алгоритм, нелинейного програлгмирова - ния f 4 Ъ Независшпые переменные ос к i Ограничения в виде равенств Л@с)=О в виде неравенствfffrteO Фиг. 2.3.1. Соотношение между отдельными частями задачи нелинейного про- программирования и алгоритмом решения. определить из совместного решения системы ограничений в виде равенств h,- (х) = 0, / = 1, ..., п. Если число переменных превышает т — число независимых ограничений в виде равенств, то единствен- единственный способ решения, приемлемый для данной модели процесса,— это варьирование (п — т) переменных решения, пока целевая функция не достигнет своего оптимального значения. Если число независимых ограничений в виде равенств превышает число пере- переменных, то также возникает необходимость оптимизации, однако следует иметь в виду, что целевая функция в этом случае должна представлять собой некоторый статистический критерий, например такой, как в методе наименьших квадратов. Поскольку в задачах нелинейного программирования, соответ- соответствующих некоторым физическим процессам, исключение зависи- зависимых переменных путем подстановки нелинейных функций может представлять некоторые трудности, одну или несколько зависимых переменных можно рассматривать как переменные решения наря- наряду с действительно независимыми переменными. Например, в за- задаче минимизировать / (х) = х\ — Зл| + х& + ХА + хз + 6
24 Глава 2 при ограничениях h (x) = (Xl -х2 + 2f - (V72 + xs + 2f = 0, весьма просто разрешить ограничение h2 (х) = хг + х2 + х3 + 3 = = 0 относительно ха, исключить хг из / (х) и /гх (х) и устранить А2 (х), тогда как разрешить hx (х) относительно х± или л;2, чтобы исключить одну из этих переменных из целевой функции, гораздо сложнее. Обычно оказывается проще, особенно если задача содер- содержит несколько нелинейных ограничений типа равенств, сохранить (как это имеет место в данной задаче) hx (х) как функцию-ограниче- функцию-ограничение и в вычислительной процедуре рассматривать х как вектор, состоящий из двух переменных. Тем не менее на самом деле здесь имеется лишь одна остаточная степень свободы. Некоторые алгорит- алгоритмы используют преимущества уменьшенного числа степеней свобо- свободы, учитывая ограничения в виде равенств и активные ограничения в виде неравенств путем поиска оптимума в пространстве меньшего числа измерений. При исключении одной из переменных в целевой функции пу- путем подстановки необходимо соблюдать осторожность, чтобы не изменить область определения переменных. Например, если / (х) = = — х\ + х2 и h (х) = — х\ — х\ -f- 1 = 0, область изменения хг должна быть ограничена пределами — 1 < хг < 1, поскольку мень- меньшие или большие значения хг дают мнимые значения xv Исключе- Исключение хх путем подстановки х\= 1 — х\ приводит к / (хг) = f (х) = = хг + х\ — 1 и кажется, что величина хг может быть неограни- неограниченной, тогда как в действительности, чтобы задача не изменилась, к функции f (х2) нужно добавить ограничение — 1 < хг < 1. В качестве иллюстрации понятия остаточных степеней свободы для п > т рассмотрим задачу нахождения объема и линейных размеров наибольшего ящика, у которого сумма длины и попереч- поперечных размеров не превышает 1,8 м. (Ответ: V = 0,6 X 0,3 X 0,3 = = 0,05 м3.) Эту задачу можно сформулировать как задачу макси- максимизации, в которой критерием качества является объем ящика: Максимизировать f (х) = ххх2хъ, х с Es, при указанных выше условиях на линейные размеры; кроме того, имеются неявные усло- условия, требующие, чтобы размеры были неотрицательными: gt (х) :1,8-х! — 2х2 — 2х3 > 0, /=1, .... 3. Если исследователь забудет включить в задачу эти неявные огра- ограничения, то он может получить правильное математическое решение, не имеющее никакого отношения к действительности,
Задача нелинейного программирования 25 Поскольку задача не включает ограничений в виде равенств, она имеет три остаточные степени свободы; это значит, что все три переменные можно изменять независимо при условии, что не нару- нарушаются ограничения в виде неравенств. Если ввести в задачу огра- ограничение в виде равенства, например требование о том, чтобы высота и ширина ящика были равны, т. е. At (х) = х2 — х3 = 0, то задача будет иметь лишь две остаточные степени свободы. Очевидно, что в этом простом примере одну переменную х2 или х3 можно исключить из целевой функции и задача сведется к максимизации объема путем изменения лишь двух независимых переменных. Однако в более реальных задачах исключение одной переменной из целевой функции может оказаться неосуществимым. Вопрос о том, какие конкретные переменные взять в качестве независимых, а какие — в качестве зависимых, решается в некотором отношении произвольно, но ис- исследователь должен всегда иметь в виду определенные естественные оптимизирующие переменные, связанные с данной моделью процес- процесса, которые либо легко контролируются, либо являются удобными в математическом отношении. В приведенном ниже примере 2.3.1 формулируются отдельные части задачи нелинейного программирования для иллюстрации того, как в подобных задачах реальное явление связано с его математи- математическим представлением. Заметим, что переменные являются тем механизмом, при помощи которого осуществляется передача инфор- информации между целевой функцией и заданными ограничениями. В це- целевую функцию могут входить как зависимые, так и оптимизирую- оптимизирующие переменные. Пример 2.3.1. Моделирование и оптимизация работы доменной печи Плавка в доменной печи является распространенной и важной технологической операцией на любом сталелитейном заводе. В не- некоторых отношениях она может рассматриваться как типичный промышленный процесс. Имеется довольно большое число сущест- существенных переменных этого процесса (некоторые из них не могут быть измерены), взаимодействующих весьма сложным образом; следует учитывать большое число ограничений; условия работы завода часто таковы, что оптимальная рабочая точка значительно изменя- изменяется со временем. Таким образом, подробное исследование задачи оптимизации работы доменной печи оказывается поучительным, обнаруживая характер и степень трудностей, встречающихся при математическом представлении типичного промышленного про* цесса.
Таблица П.2.3.1 Связь между процессом и его математическим представлением Процесс Анализ процесса Математическое представление Передача внешней информации и инфор- информации о процессе при помощи перемен- переменных и параметров Связь между процессом и его математическим представлением Известняк Кокс В КоксА PyyaJ Руда 2 РудаЗ Загрузка железного I Вбгссод газа Шлак Чугун в чушках Связь между целевой цесса Входные и выход- Сопутствующие цены ные переменные и доходы Руда 1: хх Руда 2:х2 и т. д. Загрузка же- железного ме- металлолома: хв Кокс А: х1 Кокс В: х$ Чугун в чуш- чушках: F Газ: G Предельные сг производствен- производственные затраты с2 Рыночная цена св Рыночная цена с, Рыночная цена с8 Рыночная цена ср Расчетная цена cG Оптимизирующие перемен- переменные, зависимые перемен- переменные и коэффициенты функцией и моделью про- Целевая функция f(x) Минимизировать f (х) = сххх + с2х2 -j- р Al + ••• +cGG + Модель процесса
Материальные и энергетические балансы Баланс металла Баланс шлака Газовый баланс Энергетический баланс Балансы элементов (О, Н, S, Si, и т.д.) Ограничения процесса Количество кокса Скорость производства жидкого ме- металла Пригодность руды Элементы в шлаке Элементы в металле Основность Ограничения в реализации Ограничения в виде ра- равенств М*)=0, /= 1, ...,т. 1 \ / з г 1/7 ! ¦ i — ft \ иЗ д. I * - — U / О\ °10 а"\ 8/ %2 X (дс, + Д?8) Tj + + a13FT2 H =0 и т.д. Ограничения в виде не- неравенств gj (х) ^ 0, i=m+ 1 у», [*,?(*! + * + + ...)]< 0,2, а42 ^ (Ca + Mg)/ /(Si + Al) и т.д.
28 Глава 2 Описание процесса Доменная печь работает полунепрерывно. Сырьем являются железная руда, содержащая приблизительно 20—60% железа в окислах, разнообразные окислы других металлов и неметаллов, а также кокс, образующий при сгорании доменный газ. Кроме газа, который может служить средством подогрева для других процессов, выход печи состоит из расплавленного железа, все еще содержащего некоторые примеси (в заметных количествах углерод и фосфор), которые должны быть удалены в процессе изготовления стали, и шлака, содержащего большинство примесей, который не представ- представляет ценности. Стоимости железной руды и коксового топлива при- приблизительно одинаковы. Требуется выбирать руду, скорость про- производства и тип процесса, которые бы максимизировали «доход» от производства или минимизировали стоимость изготовления требу- требуемого количества расплавленного металла нужного качества. В табл. П.2.3.1 схематически изображен поток материалов в до- доменной печи, являющейся частью большого завода. Улучшение качества этого (или любого другого) процесса с ис- использованием вычислительных, а не экспериментальных методов может быть осуществлено следующими этапами: 1. Анализ процесса, при котором определяются важные пере- переменные и специфические характеристики задачи. 2. Определение целевой функции и критерия качества (прибыль, эксплуатационные расходы, объем и т, д.) и выражение критерия в виде математической функции. 3. Разработка математической модели процесса, которая свя- связывает переменные входа и выхода и перечисляет ограничения, 4. Применение процедуры оптимизации к математической поста- постановке задачи. Эти этапы схематически представлены в табл, П.2.3,1, Поясним некоторые понятия, лежащие в основе представленных здесь урав- уравнений. Целевая функция При формулировке критерия в виде функции стоимости следует рассмотреть две категории затрат: 1. Затраты, связанные с движением материалов (входные и вы- выходные переменные), как, например, затраты на приобретение ма- материалов за вычетом дохода от продажи побочных продуктов. 2. Затраты на осуществление технологических процессов, ко- которые связываются с переменными процесса путем анализа или с помощью эмпирических кривых. В табл, П,2.3,1 приведена типичная целевая функция.
Задача нелинейного программирования 29 Математическая модель Следующим шагом в формулировании задачи является построе- построение математической модели процесса путем рассмотрения основных химических и физических явлений, лежащих в его основе. В случае доменной печи типичными являются следующие обстоятельства: 1. Железная руда. В ограниченных количествах пригодны руды различных градаций. Разные руды имеют различный процент желе- железа и различные виды и количество примесей. Предполагается, что доля руды каждого типа, переходящей в расплавленный металл, имеет определенную величину. 2. Кокс. Количество сжигаемого кокса в любой печи существен- существенно ограничено ее конструкцией. Скорость расхода кокса может определяться на основе эмпирических соотношений, разработанных с помощью множественной регрессии. 3. Качество руды. Должно иметь место ограничение на количе- количество используемых «твердых» руд. Аналогично должно быть нало- наложено ограничение на количество очищенной руды, избыток кото- которой нарушает поток газа в печи и ограничивает выход продукции. 4. Фосфор. Весь фосфор из сырья поступает в расплавленный металл. Устанавливается верхний предел допустимого содержания фосфора, хотя иногда и предписываются точные количества. Обыч- Обычно дешевле производить железо с большим содержанием фосфо- фосфора, однако гораздо дороже затем его очищать. 5. Другие элементы. Окислы кальция, кремния, магния и алю- алюминия выходят в шлаки. Две трети марганца поступает в расплав- расплавленный металл, и устанавливается ограничение на допустимое количество этой примеси. Количество серы в загрузке не должно превышать 1,6% общего веса шлака; в противном случае слишком много серы попадает в расплавленный металл. 6. Шлак. По техническим причинам уровень примесей в шлаке должен контролироваться. При этом устанавливаются верхний предел на процентное содержание магния, верхний и нижний преде- пределы на процентное содержание кремния и алюминия и узкие пределы на отношение основностей (СаО + MgO /SiO2 + А12О3). Исходя из этих и других факторов оказывается возможным получить: 1. Набор входных и выходных переменных, 2. Уравнения установившихся материальных и энергетических балансов между входом и выходом. 3. Набор ограничений на входные и выходные переменные для условий производства и рынка. Типичные взаимосвязи показаны в табл. П.2.3.1. Как и следовало ожидать, основными недостатками формули- формулирования этой задачи нелинейного программирования являются незнание истинных значений параметров в уравнениях мате-
30 Глава 2 риального и энергетического баланса; предположение об установив- установившихся условиях, тогда как в действительности в процессе имеют место изменения; стохастическая, а не детерминистическая природа переменных и параметров и т. д. Тем не менее это скорее недостатки анализа на стадии построения модели, чем на стадии оптимизации, что является основным предметом этой книги. 2.4. ОБОЗНАЧЕНИЯ И ТЕРМИНОЛОГИЯ Чтобы выделить определенные аспекты используемой в книге терминологии, в этом разделе сделаны некоторые предварительные замечания относительно ряда терминов, довольно часто встречаю- встречающихся в литературе по оптимизации. 2.4.1. ОПТИМАЛЬНЫЕ РЕШЕНИЯ Вектор х* = [х[, ..., х*„]т, удовлетворяющий соотношениям B.2.1) — B.2.3), называется оптимальной точкой, а соответствую- соответствующее значение f (x*) — оптимальным значением целевой функции. Пара х* и / (х^) составляет оптимальное решение. Как показано на примере мультимодальной функции на фиг. 2.4.1, могут сущест- существовать различные типы оптимальных решений, если целевая функ- функция не является унимодальной (т. е. имеющей один экстремум), Глобальное оптимальное решение представляет собой наименьшее значение / (х), тогда как локальное (или относительное) оптимальное решение представляет собой наименьшее значение / (х) в окрестности некоторого вектора х. Как для глобального, так и для локального минимума f(x*)</(x), но для глобального оптимального решения это соотношение выпол-. няется для всех х в Еп, тогда как для локального оптимального решения это имеет место только для малой области ?, где \\ х — — х*||<;&- Если принимается во внимание и точность решения, го условие оптимальности можно представить в виде где у — некоторая малая величина. Все алгоритмы, описываемые в последующих главах, дают лишь локально оптимальные решения, так как на каждом этапе решения при движении к х* они зависят в основном от локальных свойств целевой функции и ограничений. Правда, некоторые алгоритмы, такие, как алгоритм, описываемый в гл. 8, вероятнее всего, закон-
Задача нелинейного программирования 31 Локальные при отсутствии / ограничений Седловая точка Глобальный оптимум Фиг. 2.4.1. Классификация оптимальных решений. чатся в точке глобального оптимума, так как здесь при поиске рассматривается широкий диапазон изменения х, однако сходимость к глобальному оптимуму не может быть гарантирована без допол- дополнительных сведений относительно природы целевой функции и ограничений. На практике предположение о том, что локальный экс- экстремум является глобальным, может быть проверено путем ис- использования нескольких начальных векторов, но даже если найдено только одно локальное решение, в общем случае нельзя показать, что это решение обязательно является глобальным оптимумом. К счастью, для задач, соответствующих действительным физиче- физическим процессам, целевая функция обычно является хорошей и об- обладает единственным экстремумом. Поэтому для большинства практических целей использование численных процедур, дающих локальное решение задачи программирования, не является боль- большим недостатком. 2.4.2. ВОГНУТОСТЬ И ВЫПУКЛОСТЬ Понятия вогнутости и выпуклости полезны при определении того, при каких условиях локальное оптимальное решение является также глобальным оптимальным решением, что представляется важным в случае множественных оптимумов. Функция ф (х) называется выпуклой в области R, если для лю- любых двух векторов хх и Xj ^ R ф (9Xl + A - в) х2) < 90 (х,) + A - 6) ф (зд, B.4.1)
32 Глава 2 где 0 — скаляр, изменяющийся в диапазоне 0 < 9 < 1. Функ- Функция ф (х) является строго выпуклой, если для \г Ф х2 в выражении B.4.1) используется знак неравенства (<). (Векторное неравенство х > у означает, что хс > ус для каждого элемента; в случае х > у справедливо неравенство xt > ус для всех г.) Существуют и другие гс. х х X а 6 Фиг. 2.4.2. Выпуклые (а) и вогнутые (б) функции (в данной области изменения х). определения выпуклости, предложенные Понстейном [3]. На фиг. 2.4.2 геометрически изображена строго выпуклая функция одной независимой переменной; выпуклая функция не может принимать значения, большего чем значения функции, полученной линейной интерполяцией между ф (xj) и ф (х2). Если имеет место неравенство, обратное B.4.1), то функция называется вогнутой. Таким образом, функция 0(х) вогнутая (строго вогнутая), если — ф (х) выпуклая (строго выпуклая). Линейные функции одновременно и вогнутые и выпуклые. Дифференцируемая выпуклая функция обладает следующими свойствами: 1) 0(х2)—0(x1)>Vr0(x1)(x2 — xx) для всех хг, х,; 2) матрица вторых частных производных ф (х) пох (матрица Гессе) положительно определенная (или положительно полуопределенная) для всех х, если ф (х) строго выпуклая (или просто выпуклая); 3) в области R функция ф (х) имеет только один экстремум. B.4.2) Требование унимодальности функции является значительно более слабым, чем требование вогнутости или выпуклости, посколь- поскольку, как видно из фиг. 2.4.3, а, унимодальность не требует ни не- непрерывности, ни единственности производной. Множество точек (или область) называется выпуклым в п-мер- ном пространстве, если для всех пар точек хг и Хг, принадлежащих этому множеству, отрезок прямой линии, соединяющей их, также
Задача нелинейного программирования 33 Фиг. 2.4.3. Унимодальная (а) и мультимодальная (б) функции. полностью принадлежит множеству. Так, каждая точка х, опреде- определяемая выражением х = 9хх + A — 8) х2, 0 < 9 < 1, также принадлежит множеству. На фиг, 2,4.4 изображены выпук- выпуклое и невыпуклое множества в двумерном пространстве. Например, следующая группа выражений определяет выпуклую область (воз- (возможно, пустую или неограниченную): ajx = bh если все g/ (x) выпуклы (фиг. 2.4.5). Заметим, что из понятия выпуклости вытекает один важный результат математического программирования [4]. Задача нелиней- нелинейного программирования, представленная в виде задачи выпуклого программирования, формулируется следующим образом ": минимизировать / (х) при ограничениях Si Vх/ ^ и> 1 = >¦>¦¦¦, Р, где / (х) — выпуклая функция и каждая функция, задающая огра- ограничение в виде неравенства,— вогнутая функция (ограничения образуют выпуклое множество). При этом можно показать справед- справедливость следующего положения: локальный минимум является также и глобальным минимумом. Аналогично локальный максимум ' Иногда в задаче выпуклого программирования ограничения в виде ра- равенств hj (х) = 0 добавляются к ограничениям в виде неравенств; и в этом слу- случае hj (х) должны быть линейны. 2 — 844
34 Глава 2 а б Фиг. 2.4.4. Выпуклое (а) и невыпуклое (б) множества. является глобальным максимумом, если целевая функция вогну- вогнутая, а ограничения образуют выпуклое множество, Рассмотрим следующую задачу (фиг. 2.4.5): минимизировать / (х) == х\ + х\ — <ixx + 4 при ограничениях &(х) = *1-* + 2>0, = Ч > 0. Внимательное изучение кривых (к тому же выводу можно прий- прийти и аналитически) показывает, что ограничения образуют выпук- выпуклую область (допустимая часть области заштрихована), поскольку функции gx (x) и g3 (x) (и g4 (x)) линейные и, следовательно, во- вогнутые (правда, они одновременно и выпуклые), а функция f2 (x) строго вогнутая. Можно показать, что функция g2 (x) вогну- вогнутая, заметив, что матрица Гессе функции — g2 (x) положительно полуопределенная: дх\ (х) (x) о o Целевая функция / (х) строго выпуклая, и локальный оптимум, являющийся также и глобальным оптимумом, достигается в точке х* = [0,58 1,34 f, где/(х) -3,80. В задаче линейного программирования, имеющей оптимальное решение, целевая функция всегда выпуклая, а ограничения обра-
2*0 Фиг. 2.4.5. Задача выпуклого программирования, иллюстрирующая допустимую область (представляю- (представляющую собой выпуклое множество) и глобальный оптимум.
36 Глава 2 зуют выпуклое множество, так что локальный оптимум всегда яв- является в то же время и глобальным оптимумом. Ограничения в за- задаче квадратичного программирования те же, что и в задаче линей- линейного программирования, а целевая функция выпуклая, если xrQx является положительно полуопределенной; следовательно, матрица Q должна быть неотрицательно определенной. Однако только при особых обстоятельствах можно показать, что общая нелинейная функция / (х) является выпуклой, а ограничения образуют выпуклое множество. Так, одной из самых серьезных трудностей является то, что нелинейные равенства не могут быть частью выпуклой облас- области, содержащей больше чем одну точку, поскольку прямая линия, соединяющая две любые несмежные точки, удовлетворяющие дан- данному равенству, не может в то же время проходить и через другие точки, удовлетворяющие этому равенству, как это требуется для выпуклости. Тем не менее в особом случае, когда ограничивающее множество образовано лишь ограничениями в виде неравенств и все функции-ограничения являются вогнутыми, так что точки, для которых gj (х) >• 0, образуют выпуклое множество, задача не- нелинейного программирования может представлять собой задачу выпуклого программирования. 2.4.3. ДОПУСТИМОСТЬ Любой вектор х, удовлетворяющий ограничениям в виде ра- равенств и в виде неравенств, называется допустимой точкой или допустимым вектором. Множество всех точек, удовлетворяющих ограничениям, образует допустимую область / (х), которую будем обозначать через R; любая точка вне R называется недопустимой. Условный оптимум представляет собой локальный оптимум, лежа- лежащий на границе допустимой области. Если ограничения имеют вид равенств, то допустимый вектор х должен лежать на пересече- пересечении всех гиперповерхностей, соответствующих h/ (х) = 0. При ограничениях в виде неравенств точка х может быть либо внутрен- внутренней точкой (допустимой точкой), либо граничной точкой (тоже до- допустимой точкой), либо внешней точкой (недопустимой точкой). Для внутренней точки gj (x) > 0; в случае граничной точки удовлетво- удовлетворяется по крайней мере одно равенство gj (x )= 0, а для внешней точки имеет место по крайней мере одно неравенство gj (x) < 0. Множество точек, удовлетворяющих равенствам gj (х), / = 1, ... ..., р, определяет граничные поверхности системы ограничений, заданных в виде неравенств. Активным, или связывающим, ограни- ограничивающим неравенством называется такое, которое для данного х превращается в равенство g,- (x) = 0. Область допустимых зна- значений переменных может быть односвязной (фиг. 2.4.6, а) и неодно- связной (фиг. 2.4.6, б), В последнем случае может оказаться, что
Задача нелинейного программирования 37 данный алгоритм нелинейного программирования допустит обсле- обследование одной или нескольких допустимых областей, если процеду- процедура поиска не будет включать большое число начальных векторов. К счастью, большинство задач нелинейного программирования, Линии уровней целевой функции Линии Уровней целевой функции а Допустимая a&iiacmt Ф .и г. 2.4.6. Примеры односвязной (а) и неодносвязной (б) областей допустимости (относящихся к ограничениям в виде неравенств). относящихся к реальным процессам, формулируется так, что допус- допустимая область является односвязной. В разд. 6.2 излагается наи- наиболее подходящий способ преобразования недопустимой точки в допустимую (внутреннюю) точку, 2.4.4. ГРАДИЕНТ Множество точек, для которых целевая функция имеет постоян- постоянное значение, называется линией уровня f (х). Несколько таких линий уровней изображено на фиг. 2.4.7. Если целевая функция непрерывна и дифференцируема, то существует градиент f (x), определяемый как вектор-столбец из первых частных производных / (х) по х, значения которых берутся в данной точке х. Верхний ин- индекс k, k — О, 1, ..., используется для обозначения точки в Еп, в которой берется значение градиента, и, таким образом, градиент в x(ft) равен B.4.3) Выражение \Tf(x(k)) обозначает вектор-строку. В литера- литературе, посвященной векторам и матрицам, доказывается, что гра-
за Глава 2 диент скалярной функции направлен в сторону наискорейшего увеличения функции, т. е. наискорейшего подъема, и что он орто- ортогонален линии уровня / (х), проходящей через данную точку х(/!). Вектор, противоположный этому градиенту (отрицательный гради- градиент), направлен в сторону наискорейшего спуска. Любой вектор i \НаправлетМ хНаискорей- еео спуска Направление vf(x) Фиг. 2.4.7. Градиент (направление наискорейшего подъема) и направление наи- наискорейшего спуска в двух точках. v, ортогональный \f (xik)) [так же, как и касательная плоскость к / (х(*>) в точке х(*>], может быть записан как v7^/(х(*>) = 0. Следует отметить, что градиент не является направлением наи- наискорейшего увеличения / (х), если рассмотрение ведется не в ев- евклидовой, а в какой-то другой метрике. Например, если определять длину вектора х не по формуле ||х|| = (хгх)'/г, а по формуле W = 2 II*/II, то направление наискорейшего увеличения / (x(ft)) можно получить, находя ту компоненту \f (х(*>), которая имеет наибольшее абсолютное значение, и полагая соответствующую компоненту х равной либо +1, либо—1 (в зависимости от знака компоненты градиента), а остальные компоненты приравнивая к нулю, как, например, в симплекс-методе при линейном программи- программировании,
Задача нелинейного программирования 39 2.4.5. АППРОКСИМАЦИЯ ФУНКЦИИ Для некоторых процедур математического программирования, которые будут рассмотрены позднее, необходимо осуществлять линейную или квадратичную аппроксимацию функций /(х), gj (x) и hj (x). Например, линейная, или первого порядка, аппрокси- аппроксимация целевой функции / (х) может быть выполнена с помощью усеченного ряда Тейлора в окрестности х(*>: / (х) «/= (х(*>) + V7 Л (х - х(*>). B.4.4) Квадратичную аппроксимацию / (х) можно получить, отбрасывая в рядах Тейлора члены третьего и более высокого порядков: дх\ <^(x(ft>) дхпдхг ¦дхудхп &f (х(*>) где V2/ (Х<А)) — матрица Гессе f (x), H (х), представляющая собой квадратную матрицу вторых частных производных / (х), взятых в точке x[k): B,4.6) 2.5. НЕОБХОДИМЫЕ И ДОСТАТОЧНЫЕ УСЛОВИЯ ОПТИМАЛЬНОСТИ РЕШЕНИЯ В области нелинейного программирования большое внимание было уделено определению необходимых и достаточных условий того, чтобы некоторый вектор решения х являлся локальным экстре- экстремумом. Критерий оптимальности решения для некоторых особых случаев нелинейного программирования, описанных формулами B.2.1) — B.2.3), был сформулирован выше. Однако структура задачи нелинейного программирования в общем случае такова, что полностью критерий оптимальности еще не разработан. Вследствие этого здесь будут рассмотрены только некоторые особые случаи, но они достаточно важны и часто встречаются на практике. Условия, при которых некоторый вектор х является решением задачи нели- нелинейного программирования, будут сформулированы в виде теорем без доказательств (поскольку это выходит за рамки данной книги), а для читателей, желающих познакомиться с этим вопросом по- подробнее, приведены необходимые ссылки на литературу.
40 Глава 2 2.5.1. НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ БЕЗ ОГРАНИЧЕНИЙ Постановка задачи: минимизировать / (х), х ? Е". B.5.1) Для задачи нелинейного программирования при отсутствии огра- ограничений необходимыми условиями того, что х* — точка локального минимума задачи B.5.1), являются: 1) функция / (х) дифференцируема в точке х*; 2) \f (х*) = 0, т. е. существует стационарная точка в х*. Достаточные условия того, что х* — точка локального минимума задачи B.5.1), кроме приведенных выше условий 1 и 2, включают следующее: 3) v2/ (х*)>0, т. е. матрица Гессе положительно определенная. (Соответствующие условия для максимума те же самые, за исключе- исключеПх) зс* * О х а б Фиг. 2.5.1. Геометрическое представление функций в задаче нелинейного программирования. нием того, что матрица Гессе для / (х*) должна быть отрицательно определенной.) На фиг. 2.5.1 показано, что возможно существование минимума, который не удовлетворяет необходимым и достаточным условиям. Однако, если достаточные условия удовлетворены, х* обязательно будет точкой минимума. 2.5.2. НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ С ОГРАНИЧЕНИЯМИ В ВИДЕ РАВЕНСТВ И НЕРАВЕНСТВ Постановка задачи: минимизировать / (х), х при ограничениях u() Еп, т, B.5.2)
Задача нелинейного программирования 41 Задача B.5.2) идентична B.2.1) — B.2.3). Необходимые условия того, что х* является точкой локального минимума, могут быть сформулированы в двух теоремах, первую из которых (теорема 2) можно назвать условиями первого порядка (потому что входящие в них функций предполагаются дифференцируемыми), а вторую (теорема 3) — условиями второго порядка (потому что входящие в них функции предполагаются дважды дифференцируемыми). Начнем со следующего понятия: если х* — точка локального минимума, то значение функции / (х) не может уменьшаться при движении вдоль любой гладкой дуги, направленной из х* внутрь допустимой области. Пусть вектор v касателен к дуге, идущей из точки х*. Следуя Фиакко и Мак-Кормику [5], разделим ненулевые векторы v на три класса Vt, каждый из которых представляет собой множество v, определяемое следующим образом: Класс Ограничения в ви- виде неравенств для активных ограничений для активных ограничений vrV© (х*) < 0 ) хотя бы для одного актив- активного ограниче- ограничения Ограничения в ви- виде равенств | vTyjhj (x*) =0 { для всех I / = 1,. . ., m , v\h,- (x*) = 0 для всех / = 1 m хотя бы для одного ограни- ограничения Целевая функция И {vrv/(x*)>0} и {vTv/(x*)<0} Все допустимые изменения х* попадают в объединение VyuV2,vi, если v содержится в V2, значение функции / (х) уменьшается, а если v содержится в Vv значение / (х) увеличивается или остается констан- константой. По существу необходимое условие первого порядка представ- представляет собой требование, чтобы множество V3 было пустым. Если V3 пусто, то существование множителей Лагранжа мо- может быть доказано в виде следующей теоремы. Теорема 1 [5]. Если (а) вектор х* удовлетворяет условиям задачи B.5.2), (б) функции f (x), gj (x) и hj (x) дифференцируемы и (в) в точке х* множество V3 пусто, то существуют векторы (множители Лагранжа) и* и w*, такие, что совокупность векторов х*, u*, w* удовлетворяет соотношениям A) Л/(х*) = 0, / = 1 т, B) C)
42 Глава 2 D) u!>0, /=m+l, .... p, E) VL (x*. u*. w*) = 0. В соотношении E) функцию m p L (x, u, w) = f (x) + 2 Wjhj (x) — S ы/g/ (x) /=1 /=m+l можно рассматривать как обобщенную функцию Лагранжа задачи B.5.2); следовательно, уравнение E) можно записать как т р VL (х*. u*. w*) - у/ (х*) + S wfihi (х*) - 2 «*V?/ (x*) - 0. Чтобы выяснить, при каких условиях множество V3 оказывает- оказывается пустым, необходимо еще одно понятие, а именно порядок ограни- ограничений. Начнем с ограничений первого порядка. Следуя известной работе Куна и Таккера [4], предположим, что x(ft) —допустимая точка для задачи B.5.2) и что функции h± (x), ..., hm (x), gm+i (x), ..., gp (х) дифференцируемы в точке х(*>. К ограничениям первого порядка относятся такие, когда для каждой граничной точки множества ограничений, состоящего из ограничений в виде равенств и активных ограничений в виде неравенств, должна существо- существовать гладкая кривая, заканчивающаяся в этой граничной точке и целиком лежащая внутри области, заданной ограничивающими поверхностями. Если х* соответствует локальному минимуму, то значения / (х) не могут убывать при перемещении вдоль такой кривой из точки х* внутрь допустимой области. Достаточным условием того, чтобы ограничения были первого порядка, является то, что все градиенты активных ограничений в виде неравенств и градиенты ограничений в виде равенств, взятые в некоторой пробной точке х*, линейно независимы. Убедиться в том, что множество Vs пусто, можно различными способами, но лучше всего это сделать, опираясь на понятие огра- ограничения первого порядка, что приводит к теореме 2. Теорема 2 [5, 7]. Если функции /(х), Мх), ..., hm(x), gm+i (x), ..., gp (x) дифференцируемы в точке х* и если в точке х* ограничения являются ограничениями первого порядка, то необходимое условие наличия в точке х* локального минимума задачи B.5.2) состоит в том, что существуют множители Лагранжа и* и w*, такие, что совокуп- совокупность векторов х*, и*, w* удовлетворяет соотношениям A) — E) теоремы 1. Чтобы учесть нелинейный характер функций в задаче B.5.2), Мак-Кормик [6] сформулировал необходимые условия второго по- порядка наличия в точке х* локального минимума. Предположим,
Задача нелинейного программирования 43 что функции f (х), AJx), ..., hm(x), gm+i gp(x) дважды диффе- дифференцируемы в точке х(/г), удовлетворяющей условиям задачи B,5.2). Пусть v — любой ненулевой вектор, такой, что (x<ft)) = О ДЛЯ всех активных ограничений в виде нера- неравенств, (х№>) = 0 для всех ограничений в виде равенств. Тогда если вектор v является касательным к некоторой дважды дифференцируемой кривой т|э F), 0 ;> 0, вдоль которой g/ (*ф @)) = = 0 для всех активных ограничений в виде неравенств и h/ (ij) @)) = = 0 для всех ограничений в виде равенств, то в х(/г) ограничения являются ограничениями второго порядка. Достаточным условием того, чтобы в точке x(fe) ограничения были ограничениями второго порядка, является то, что градиенты активных ограничений в виде неравенств и градиенты ограничений в виде равенств в этой точке линейно независимы. Теперь можно сформулировать необходимые условия, при которых ограничения являются ограничениями второго порядка. Теорема 3 [7]. Если (а) функции f (x), hx(\),..., hm (x), gm+i (x), ..., gp(x) дважды дифференцируемы в точке х* и (б) в х* выполняются классификацион- классификационные условия ограничений первого и второго порядков, то необходимыми условиями наличия в точке х* локального минимума задачи B.5.2) является существование векторов w* = [w\,..., w*m]Tn u* = [и*т+х, ... • ••) и*р\Т, для которых A) Ау(х*) = 0, / = 1, .... т, B) ?,(**) >0> 1 = т + 1, ..., р, C) ы!>0, j = m+l, .... р, (в) D) ы;^(х*) = 0, / =/я+ 1, ...,/>, E) \L (x*, u*, w*) = О, и (г) для любого ненулевого вектора v, такого, что vT\gj (х*) = О для всех активных ограничений в виде неравенств и vr у А,- (х*) = О для всех ограничений в виде равенств, справедливо соотношение F) vTy2L (х*. u*, w*) v > 0. Если условия vTygj(x*) = 0 и УГу/г,- (х*) = 0 выполняются лишь при v = 0, то соотношение F) удовлетворяется тривиальным обра- образом, так как активные ограничения пересекаются, задавая, таким об- образом, единственное решение.
44 Глава 2 Достаточные условия того, что в точке х* имеет место изолиро- изолированный н локальный минимум задачи B.5.2), такие же, как и не- необходимые условия (а), (в) и (г) теоремы 3, если вместо F) части (г) теоремы имеет место следующее условие: (г') для любого ненуле- ненулевого вектора v, для которого vrvg,- (х*) = 0 в случае активных ограничений-неравенств, vT\gj (х*) > 0 для неактивных ограни- ограничений-неравенств и vry/t/ (x*) = 0 для всех ограничений в виде равенств, справедливо следующее соотношение [6,7]: F') vVMx*. «*. w*)v>0. Другое достаточное условие дается теоремой 4, Теорема 4 [6]. Если функции / (x), hj_ (x), ...,hm (x), gm+l (х), ..., gp (x) дваж- дважды дифференцируемы по х, выполняются необходимые условия A) — E) теоремы 3 и детерминант матрицы Якоби для функ- функций hj (x), Ujg/ (x) и yL (x, u, w) no (x, u, w) не обращается в нуль в (х*, и*, w*), то в точке х* удовлетворяются фигурирующие в теореме 3 достаточные условия того, что в точке х* имеет место локальный минимум. Пример 2.5.1. Необходимые и достаточные условия существования локального минимума в задаче с ограничениями в виде неравенств Рассмотрим следующую задачу: минимизировать / (х) = х\ + хй при ограничениях gx(x) = -(*? +;ф + 9 >0; g2 (х) = — хх — х2 + В этой задаче gx (х) >• 0 — активное ограничение, тогда как ограничение g2 (х) >• 0 не является активным (фиг. П.2.5.1). Нетрудно убедиться, что функции gt (x) и g2 (x) дважды диффе- дифференцируемы. Поскольку имеет место лишь одно активное ограни- ограничение (gx (x) > 0), нет необходимости проверять, выполняются ли условия первого и второго порядков. С помощью теорем 1 и 2 нужно показать, что существуют векторы х* и и*, удовлетворяющие перечисленным ниже условиям. '' «Изолированный» формально означает, что для 0 < || х || < е, где 8 до» статочно мало, / (х) > f (x*).
Задача нелинейного программирования 45 Линии. I #ровНейГ(*) III/ ~ III, Фиг Функции gx (x*) и g2 (x*) неотрицательны, т, е. (а) Любая точка внутри или на границах заштрихованной области является допустимой точкой х: 2д;* г 2;к* 1 Г 1 1 l 1 J~ 4-24J |-U °' (б) или 2х\ + 2х\и\ + м; = О, 1 + 2х2и\ + и'2 = О, 1
.» Глава 2 4о ^ «;>о и «;>о. (г) Р 0 ^граничениях (в) и] и и* положить равными нулю, то воз- возникнет щ)?>'ГивоРечие в соотношениях (б) (поскольку тогда имели бы 1 = о> следовательно, не все и* могут быть нулями. Предпо- „~ , „-о til = 0, Тогда из первого ограничения в (б) будет следо- вать что Л**б° х\ = °> либ° (* + «i) = °. но последнее невозмож- потомУ чт0 "^ не МОГУТ ^ыть отрицательными. Следовательно, х*'_ q 1^оСколькУ ы* ?=^, то в силу ограничений (в) минимум возможен л»160 ПРИ *i2 + Х12 = 9. либ° ПРИ 4 = ± 3« °ДнаК0 ПРИ v* _ ч РгЛЯ учесть, что х\ = 0, нарушается второе ограничение / ч iaKntf образом, вектор х* найден, а именно х* = [0 —3] . При этом »\ = 1/в» и2 = ° и ограничивающие условия (б), (в) и (г) оказывающей удовлетворенными. Таким образом, необходимые дервого порядка полностью выполняются, НеобхоДИмое условие второго порядка, которое также должно быть выполЯено> заключается в том. чт0 Для !> или у . (О) + °2 ¦ F) = °. т- е- Для любого vx и v2 = 0, должно иметь ^ecVo следующее соотношение: [»! 0] v2L (x*, u*) q1 Поскольку , ,. , 2A + 0 получаем „ , , n. Л ^ А J 4t»f«, (I + и.) >0>0. Следователь110, необходимые условия второго порядка и достаточные условия удовлетворяются. Чтобы определить, удовлетворяются ли альтернативные доста- 1) q-ecb оставляется только уравнение vrygt (x*) = 0, так как ограничение, .«?« /ЬуЯкчией ^2 (х). является неактивным. — Прим. перее. ЗаДввэемое 4?j
Задача нелинейного программирования 47 точные условия, образуем матрицу Якоби для функций wi ( х1 — х2 -\- 9), "г(— Ч — Х2+ 1). ZXj -(- ZUjXj 4" U2> 1 + 2ихх2 + м2 по хх, х2, иги м2 соответственно: — ZX-^li-^ ZXyll-^ \ Xj J^2 ~~р У/ О 2ы, 2х2 При х\ = 0, х! = — 3 и и; = Ve, Mj = ° О Ч Ч "т 1 1 det J = det О о _8_ 6 О 1 О о _1_ 3 О О" О 4 О 1 -6 1 ^=0. Таким образом, выполняются и альтернативные достаточные усло- условия того, что вектор х* = [0 —3]г является локальным минимумом. Пример 2.5.2. Необходимые и достаточные условия существования локального минимума при наличии ограничений как в виде ра- равенств, так и в виде неравенств В качестве примера задачи нелинейного программирования, со- содержащей ограничения как в виде равенств, так и в виде нера- неравенств, рассмотрим следующую задачу: минимизировать / (х) = х? + х2, х ? Еп, при ограничениях h() 1 l9 0 В соответствии с теоремой 3 функции hx (x), g2 (x) и g3 (x) должны быть дважды дифференцируемы, а градиенты активных ограничений в виде неравенств, а также ограничений в виде равенств должны быть линейно независимы, чтобы выполнялись условия первого и второго порядков. Предположим, что некоторая точка А с координатами х* = [—2,37 — 1,84]г, находящаяся на пересечении hx (x) и g2 (x), на фиг. П. 2.5.2 рассматривается как возможный локальный оптимум. Образуем линейную комбинацию векторов-градиентов активных
48 Глава 2 ограничений или cxvfti (x*) + c2\g2 (x*) = 0, Г2х*1 Г 1 Cl 2x\ J- (а) v2j ^ "Л2^ Можно показать несколькими способами, что единственным векто- вектором с, удовлетворяющим уравнению (а), будет сх = с2 — 0; следо- Х2 Линии„ уровней f(x.) вательно, градиенты активных ограничений линейно независимы, и, таким образом, выполняются условия первого и второго порядков. Проверим теперь, выполняются ли необходимые условия первого порядка теорем 1 и 2. При этом в выбранной точке х*=[—2,37—1,84] должно быть выполнено каждое из следующих условий: 1. К (х*) = х;2 + х*22 - 9 = 0, (- 2,37J + (- 1,84J -9 = 0, g2 (х*) = -(*; + х;2) + 1 > 0, -(- 2,37) - (-1,84J +1 = 0,
Задача нелинейного программирования 49 gs(х*) = -(*; + 4) + 1 >0, -(-2,37)-(- 1,84) + 1 >О. 2. и\ > О и и; > О. з. «;(-*;-*? Поскольку в этом примере точка х* выбрана произвольно для проверки на локальный минимум, подставим эту точку х* = = [—2,37 —1,84]г в выражения, приведенные в условиях 2—4, и проверим, существуют ли такие скаляры w\, u2 и и*3, которые удо- удовлетворяют соотношениям 2 (- 2,37) + w\ B) (- 2,37) + К + и'3 = О, 1 + w\ B)(- 1,84) + Щ{- 1,84) + и; = О, w] = — 0,779 •), и; «=1,05. Следовательно, скаляры w\ = —0,779, и; =1,05, (б) удовлетворяют необходимым условиям первого порядка в теореме 2. Чтобы выяснить, удовлетворяются ли дополнительные требо- требования теоремы 3 в отношении необходимых условий второго по- порядка, помимо изложенных в теоремах 1 и 2, поступим следующим образом. Определим вектор v при помощи двух уравнений, получен- полученных из ограничения в виде равенства и активного ограничения в виде неравенства: = 0, -2х\_ V*] I о./ I = 0, или — 2,370!—1,840,== 0, —Vl + 3,68у2 = 0. (В) 11 Так как из второго уравнения условия 3 следует, что и\ = 0. — Прим. перев.
50 Глава 2 Единственным вектором v, удовлетворяющим (в), является нулевой вектор. Следовательно, существует единственное решение данной задачи на пересечении ограничений, заданных функциями g2 (x) и hx (х). Заметим также, что в этой конкретной задаче 0 О 0 -2 или (при w\ = —0,779 и и\ — 1,05) неравенство >0>0 (г) удовлетворяется для любых ненулевых векторов v. С другой стороны, достаточные условия того, что в точке х* име- имеет место локальный изолированный минимум, следуют и из теоремы 4, поскольку детерминант матрицы Якоби не равен нулю: I __ " 2x\ -u; 2 + 2a>; 0 det J = det 9x — 2u.;x — «3 0 2(w\ + t ~— 4,74 — 1,05 0 0,44 0 0 2 0 0 2x\ 4) 2xl — 3,68 3,86 0 0 0,54 0 ( X* д 0 1 2x\ 0 0 0 -4,74 -3,68 ?+ 1) 0 —0,02 0 1 — 3,68 0 0 (— x\~ x\ 1 1 0 ~ 0 +5,21 1 1 + D * #0. Выше при иллюстрации применения теорем о локальной опти- оптимальности использовались лишь простые задачи. В случае задач большой размерности эти теоремы также применимы, но здесь могут возникнуть значительные трудности, связанные с необхо- необходимостью находить аналитические выражения для производных нелинейных функций / (х), g (x) и h (x). 2.6. ЭФФЕКТИВНЫЕ МЕТОДЫ ОДНОМЕРНОГО ПОИСКА Многие из алгоритмов, которые будут описаны ниже, основа- основаны на использовании эффективных методов одномерной оптимиза- оптимизации для обнаружения минимума функции одной переменной. В кни- книге Уайлда [8] и в других работах, посвященных общей теории опти- оптимизации, излагается несколько достаточно эффективных методов
Задача нелинейного программирования 51 одномерного поиска, позволяющих определять интервал значений, внутри которого лежит минимум той или иной функции. Для прак- практического применения этих методов необходимо знать начальный интервал неопределенности А<0), содержащий минимум целевой функции / (х) и в котором функция /(х) унимодальна. Существуют различные методы (некоторые из них приведены в табл. 2.6.1) умень- уменьшения начального интервала А<0) до некоторого конечного А . Мы ограничимся лишь несколькими замечаниями, касающимися (п Таблица 2.6.1 Эффективность одномерных методов поиска - число вычислений функции, Fn — число Фибоначчи для п оценок) Непоследовательные методы Равномерный поиск Равномерный поиск делением пополам Е 2 я+1 1 I+' Последовательные методы Поиск делением пополам Поиск Фибоначчи Поиск методом золотого сечения в 1 2<1/2 1 Рп @.618I-" этих методов, а затем перейдем к некоторым другим методам, кото- которые обычно на практике оказываются более эффективными. Уайлд определил эффективность процедуры, включающей п вы- вычислений целевой функции, как E = д@) В табл. 2.6.1 сравнивается эффективность пяти различных методов. В табл. 2.6.2 сравниваются количества вычислений функции / (х), необходимые для уменьшения начального интервала, равного 5 • Ю-1, Оказывается, что относительная эффективность двух хорошо известных методов золотого сечения и поиска Фибоначчи несколько выше эффективности поиска последовательным делением пополам и существенно превосходит эффективность поиска непоследователь- непоследовательными методами. Поиск с помощью метода золотого сечения основан на разбие- разбиении отрезка прямой на две части, известном как «золотое сечение». При этом отношение длины всего отрезка к большей части равно отношению большей части к меньшей. Здесь используются
52 Глава 2 две дроби Фибоначчи: 3-/5 «0,38, г 2 Заметим, что Fx = (F2J и Ft + F2 = 1. Поиск необходимо начи- начинать в таком направлении, чтобы значение функции / (х) уменьша- уменьшалось. Таблица 2.6.2 Количество вычислений функции, необходимое дли уменьшения начального интервала, равного 5-10 ,-1 Уменьшение интервала до 5-10—3 5. Ю-5 Непоследовательные методы равномерный поиск 199 19 999 равномерный поиск делени- делением пополам 198 19 998 Последовательные методы поиск мето- методом золотого сечения 11 21 поиск Фибо- Фибоначчи 11 21 поиск делени- делением пополам 14 28 Начальный отрезок А, включающий минимум / (х), может быть получен с помощью, например, последовательной серии нескольких возрастающих шагов по независимой переменной. Обозначим пос- последние три значения х через л:з0) (последняя точка), xf] и xf\ где / D0)) > /D0)), и пусть А(&) = xf — xf\ Рассмотрим фиг 2.6.1. В соответствии с этим рисунком, если мы находимся на k-м этапе, то (k -j- 1)-й интервал нужно вычислять следующим образом. Определим Если / (yf) < f (yf\ то A(fc+1) if®; если /{y?)>f(yf), то ИЛИ то = yf = (# -yP) и xf) и xf+l) = xf\ = (yr-xT) = ^-yV) и
Задача нелинейного программирования 53 Для большей точности каждый раз определяются две новые точки (а не одна новая точка), поскольку значения Fx и F2 не явля- являются точными; при оперировании только с одной новой точкой ошиб- ошибки округления при вычислении могут привести к потере интервала, содержащего минимум. В другом классе методов одномерной минимизации текущая точ- точка х вблизи х* [значение независимой переменной, соответствующей Фиг. 2.6.1. Поиск методом золотого сечения (золотой поиск). Начальные точки: ху\ *| н *з Поскольку /<«">>>>/№«4 ДA) = D0)-г/<1°)). а '{'Wi0' и 41)=40) 1 ницамн интервала для этапа 1. 41) являются гра- минимуму f (x)] определяется с помощью экстраполяции и интер- интерполяции. Были предложены квадратичные и кубические формулы аппроксимации либо только значения функции, либо и функции и производных. Коггинс [9] отметил, что, пользуясь некоторыми из методов, основанных на аппроксимации функции полиномом, про- проходящим через выбранные точки, можно легче обнаружить минимум / (х) при заданной точности, чем методами, указанными в табл. 2.6.1. Бокс, Дэвис и Свенн [10] предложили использовать алгоритм Дэ- виса, Свенна и Кзмпи (ДСК) [11 ] для определения интервала, содер- содержащего точку минимума, чтобы все последующие вычисления про- проводились по алгоритму Паузлла [12]. Описание этих двух алго- алгоритмов приведено ниже. При одномерном поиске по алгоритму ДСК проводятся возрас- возрастающие по величине шаги до тех пор, пока не будет пройден мини- минимум, а затем выполняется одноразовая квадратичная интерполя- интерполяция, На фиг, 2,6,2 показана такая процедура (здесь х(т) — первое
54 Глава 2 из значений х, для которого зарегистрировано отклонение от ми- минимума, а Ах — длина шага), состоящая из следующих шагов: Шаг 1. Вычислить / (х) в начальной точке х<°>. Если / (х<°> + + Ах) < / (х<°>), то перейти к шагу 2. Если /(х<°> + А*)>/(jc<°>), положить Ал; = — Ах и перейти к шагу 2. Шаг 2. Вычислить х<*+1> = л*> + А*- Я/аг 3. Вычислить f(x<fc+1>). Я/аг ¦#. Если / (#+") < / (х№)), удвоить Ад: и вернуться к ша- шагу 2 при & = k -f- 1. Если /(дс(*+1))>-/(^)), обозначить х№+1) через Фиг. 2.6.2. Одномерная минимизация методом ДСК. x(m)( x(k) Через xf-m^l) и т. д., уменьшить Ах наполовину и вернуть- вернуться к шагам 2 и 3 для еще одного (только одного) вычисления. Шаг 5. Из четырех равноотстоящих значений х{х(т+1\ xtm~l), xf-m~^} исключить либо х^т\ либо х^т~2> в зависимости от того, какое из них находится дальше от х, соответствующего наи- наименьшему значению f (х). Пусть х(а), x<*> и х(с) — оставшиеся три значения х, где х(Ь) — центральная точка а х^а) = х<ь> — Ад: и jc(c) = = х^ + Ах. Шаг 6. Провести квадратичную интерполяцию для определения х*: Эти шаги завершают первый этап метода ДСК. При желании про- должить эту процедуру нужно начать из х* или из х , если / (д: ) < < f (**)» уменьшить Ал- и начать с первого шага, В алгоритме Пауэлла квадратичная аппроксимация проводится путем использования первых трех точек, полученных в направлении поиска. Затем определяется точка х, соответствующая минимуму квадратичной функции. Такая квадратичная аппроксимация про- продолжается до тех пор, пока с требуемой точностью не обнаруживается минимум / (х). Алгоритм Паузлла строится следующим образом (фиг. 2.6.3):
Задача нелинейного программирования 55 Шаг 1. От начальной точки хA) нужно перейти к х{2) = х{1) Ах. Шаг 2. Вычислить f(xfli) и f (лЯ). Шаг 3. Если f(^)>f(x^), положить х® = *»> + 2&х. Если /(х<1))</:(х<2>), положить хР) = хМ — Дл:. /Z/яг 4. Вычислить f(xP>). Этап 2 '*> Фиг. 2.6.3. Одномерная минимизация методом Пауэлла. Шаг 5. Вычислить приближенное значение х в точке минимума f(x) по формуле Ц f Шаг 6. Если х* и любое из значений х{хт, хB\ хC)}, соответ- соответствующих минимуму f (x), отличаются меньше, чем на предписан- предписанную точность х или точность соответствующих значений функции / (х), закончить поиск. В противном случае вычислить / (х*) и исключить из множества {хA), хB), хC)) то значение х, которое соответствует наибольшему значению / (х), если, однако, при этом не будет потерян интервал, в котором находится минимум / (х), В этом случае следует так исключить х, чтобы сохранить этот интервал. Перейти к шагу 5. Работа алгоритма продолжается до тех пор, пока не будет дос- достигнута желаемая точность, упомянутая в шаге 6. Комбинация алгоритмов ДСК и Пауэлла оказалась эффективнее
56 Глава 2 по сравнению с каждым из этих алгоритмов в отдельности. Комбинированный алгоритм ДСК — Пауэлла состоит из одного этапа (шаги с 1 по 6) алгоритма ДСК, на котором определяется интервал, в котором находится минимум / (х), шага 6 алгоритма Пауэлла и затем, если это оказывается необходимым, шагов 5 и 6 алгоритма Пауэлла. Прямое сравнение метода одномерного поиска ДСК — Пауэл- Пауэлла, например, с методом золотого сечения с точки зрения требуемого времени или числа проведенных вычислений значений функ- функции имеет не очень большой смысл. Правда, такое срав- сравнение позволяет исключить плохие методы; важно, од- однако, знать, насколько эф- эффективен алгоритм одно- одномерного поиска при реше- решении оптимизационных задач S I \^ большой размерности. Я 5.0hS\ Ha фиг_ 2.6.4 приводят- приводятся данные относительно времени решения двух за- задач, одна из которых с двумя, а другая с четырьмя независимыми переменны- ю' IO~B ми (см. разд. 3.4). Задача 1. Функция Ро- зенброка UT' Ю'г Критерий окончания ,,/*). процесса '< ' Фиг. 2.6.4. Время решения двух задач при использовании различных методов одномер- одномерного поиска. ¦ золотой поиск, задача 1; П золотой поиск, за. дача 2; 0 метод ДСК — Пауэлла, задача 1; О ме- -f- A — %-Л , тод ДСК — Пауэлла, задача 2. Задача 2. Функция Флетчера — Пауэлла f (х) = К + 10х2J + 5 (х, - xtf + (х2 - 2x3f + 10 (Xl - Xi)\ При различных критериях окончания процесса, выраженных через относительное приращение / (х), методы поиска ДСК — Пауэлла и золотого сечения оказались примерно одинаково эффективными в смысле времени решения, за исключением случая самого низкого (по точности) значения критерия AСГ1). На фиг. 2.6.5 приведены графики зависимости числа оптимиза- оптимизационных этапов на одну независимую переменную от значений
Задача нелинейного программирования 57 критерия окончания процесса. Число этапов для поиска методом золотого сечения в задаче 2 оказалось настолько большим (выходя- (выходящим за поле графика), что его пришлось опустить. На фиг. 2.6.6 по- показано, как изменялось количество вычислений значений функции Критерий окончания процесса Фиг. 2.6.5. Число этапов, проведен- проведенных до окончания процесса, прн ис- использовании различных методов одно- одномерного поиска. ¦ золотой поиск, задача 1; • метод ДСК— Пауэлла, задача 1; О метод ДСК—Пауэлла, аадача 2. Фиг. 2.6.6. Относительное количест- количество вычислений значений функции на независимую переменную прн исполь- использовании различных методов одномерно- одномерного поиска. ¦ золотой поиск, задача I: Q золотой по- поиск, задача 2; ф метод ДСК — Пауэлла, задача 1; G метод ДСК—Пауэлла, задача 2. при различных методах одномерного поиска в зависимости от крите- критерия окончания процесса. Если для вычисления целевой функции требуется значительное время, то, как видно из фиг. 2.6.6, поиск методом ДСК — Паузлла предпочтительнее. Данные относительно числа вычислений частных производных (компонент градиента) не приводятся, но следует иметь в виду, что на каждом этапе зада- задачи 1 требовалось вычислять значения производных дважды и четы- четыре раза вычислялись производные на каждом этапе задачи 2. Если минимизируемая функция локально не унимодальна, как это предполагалось выше, необходимо добавить к программе одномерного поиска дополнительную логическую процедуру, чтобы быть уверенным в том, что величина шага выбрана так, что гарантируется продвижение к тому локальному минимуму,
58 Глава 2 В Локальный минсиниж Глобальный | JKUHUJKI/JK \ Фиг. 2.6.7. Одномерный поиск локального минимума мультимодальной целевой функции приводит к неограниченному решению. который определяется. Например, фиг. 2.6.7 иллюстрирует, как боль- большой начальный шаг может привести к неограниченному решению, когда в действительности мы ищем локальный минимум. 2.7. КЛАССИФИКАЦИЯ МЕТОДОВ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Для решения общей задачи нелинейного программирования было предложено довольно много алгоритмов, поскольку ни один из них не оказался значительно лучше других. Выбор того или иного ме- метода определяется конкретным содержанием задачи и опытом иссле- исследователя. В табл. 2.7.1 приводятся некоторые способы классификации задач нелинейного программирования. Последующие главы этой книги основываются на схеме классификации задач по их постановке, которая в этой таблице обозначена номером 1.1. Но не менее важной является схема, основанная на характерных различиях методов решения (классификация 2 в табл. 2.7.1). Поскольку и технический и программный уровень современных ЭВМ изменяется очень быстро, в этой книге не рассматриваются методы оптимизации с точки зре-
Задача нелинейного программирования 59 Таблица 2.7.1 Классификация методов нелинейного программирования 1. Классификация по некоторым аспектам постановки задачи 1.1. Характер целевой. функции (с ограничениями, без ограничений) (а) Без ограничений (б) Ограничения в виде равенств (в) Ограничения в виде неравенств (г) Ограничения как в виде равенств, так и в виде неравенств 1.2. Дискретные (целочисленные) переменные; переменные, принимающие не- непрерывные значения 1.3. Выпуклое, квадратичное, сепарабельное и т. д. программирование 2. Классификация по характерным чертам методов решения 2.1. Методы, использующие производные; методы, не использующие произ- производные (поиск) 2.2. Аналитическое определение производных; численное определение произ- производных 2.3. Методы, использующие первые производные; методы, использующие вто- вторые производные 2.4. Градиентные методы; методы, ие использующие градиент 2.5. Градиентный метод с малым шагом; градиентный метод с большим шагом 2.6. Одновременная итерация по всем переменным в процессе поиска; релак- релаксация (последовательный поиск каждый раз по одной переменной) 2.7. Методы внутренней точки; методы внешней точки 2.8. Детерминированный поиск; случайный поиск 2.9. Начальный вектор находится в допустимой илн в недопустимой области 3. Классификация по типу вычислительных машин, применяемых при проведе- проведении алгоритма 3.1 Цифровая, гибридная или аналоговая машина 4. Классификация по используемому языку программирования ния категорий 3 или 4. Гилберт [13] составил аннотированную биб- библиографию по методам параметрической оптимизации, применимым для гибридных ЭВМ. ЗАДАЧИ 2.1. Запишите следующие задачи линейного программирования в матричной форме: а) минимизировать f (х) = Зхг + 2х2 + *з при ограничениях- &(х) = 2*i + Зх2 + х3 > 10, ga(x) =Xj + 2x2 + х3>151 б) максимизировать f (х) = 5^ + Юдса + 12*3 при ограничениях gl (х) = 1бхг + Ю*2 + Юх3< 200, = хх > 0,
60 Глава 2 ga (x) = Ч > 0. gt(x) = *3>0, hx (x) = 10^ + 25х2 + 20х3 = 300. 2.2. Запишите в матричных обозначениях путем введения соот- соответствующих матриц следующую целевую функцию: / (х) = 3 + 2хх + Зх2 + 2х\ + 2ххх% + Ьх% х = [хх х2 F. 2.3. Приведите задачу 2.37 к стандартной форме задачи нелиней- нелинейного программирования, описываемой уравнениями B.2.1) — B.2.3). 2.4. Классифицируйте следующие задачи как 1) линейные, 2) квадратичные, 3) выпуклые, 4) нелинейные задачи программиро- программирования (одна и та же задача может классифицироваться по несколь- нескольким признакам): 2.1а, 2.15, 2.16, 2.16, 2.6, 2.18. 2.11, 2.5. Определите, какие из приведенных ниже матриц являются 1) положительно определенными, 2) отрицательно определенными, 3) не относятся ни к одной из упомянутых категорий: (а) [1 01 (б) [1 П (в) Г0.1 0] (г) Г 1 -21 [О lj' Ь lj1 [з lj' [-2 lj- 2.6. Изобразите графически целевые функции и ограничения для следующих задач нелинейного программирования: а) минимизировать / (х) = 2х* — 2ххх% + 2х\ — 6хг -\- 6 при ограничении gl (х) = хх + х% < 2; б) минимизировать / (х) = х\ — Зххх2 + 4 при ограничениях ^1(х) = 5х1 + 2ха>18, Л, (х) = — 2хх + А = 5; в) минимизировать / (х) = — Ъх\ + х\ при ограничениях
Задача нелинейного программирования 61 2.7. Исследуйте задачи 2.1а, 2.16, 2.38 и задачу 13 (в приложении А). Для каждой задачи укажите 1) полное число переменных и 2) число независимых переменных. Предложите подходящую систему переменных для обеих категорий. 2.8. Сформулируйте следующие задачи в виде задач нелинейного программирования. а) Найти длину, высоту и ширину прямоугольного резервуара, открытого сверху, которые дают максимальный объем при фикси- фиксированной площади поверхности А (А — площадь стенок + пло- площадь дна). б) Найти кривую наискорейшего спуска из одной точки в другую, т. е. траекторию, по которой должна двигаться частица, чтобы время перехода было минимальным. (Такая кривая называется бра- брахистохроной.) Такая классическая задача впервые была предложе- предложена Джоном Бернулли в 1696 г. в) Конденсирующийся пар при температуре Ts в теплообменнике используется для нагревания масла от температуры 7\ до Г2. Эффективный выигрыш от добавочной площади теплообменника может быть выражен в виде дополнительной прибыли исходного состояния: R --= QCQe — ACFr — гСс, A) стоимость стоимость приобретенной дополнительного энергии объема теплообменника где R — дополнительные годовые доходы, долл/год; Q — скорость передачи тепла, БЕТ/ч; Cq — удельная стоимость переносимой дополнительной энергии, долл/БЕТ; 0 — количество рабочих часов в год; А — дополнительная площадь теплообменника, используемая в передаче тепла, фут2; Ср — удельная дополнительная стоимость площади теплообмен- теплообменника, долл/фут2; г — относительные ежегодные издержки, [издержка, долл]/[стои- долл]/[стоимость, долл • (год)]; Сс — стоимость теплообменника без добавочной площади, долл/ч. Уравнение энергетического баланса, представляющее собой огра- ограничение для целевой функции A) (полученное на основе макроско- макроскопической модели теплообменника в установившемся режиме), имеет следующий вид: где W — скорость потока (константа), фунт/ч;
62 Глава 2 Ср— теплоемкость (константа), БЕТ/фунт • °F; U — общий коэффициент теплопередачи (константа), БЕТ/ч • фут2 • ЛГ. Найти максимум годового дохода. г) Капиталовложения в трубопроводы и соответствующие уста- установки составляют часть общих вложений в химическое предприятие. Поэтому необходимо выбирать такие размеры труб, при которых суммарные издержки, включающие в себя некоторые постоянные издержки и издержки при работе насоса, минимальны. Оптимальная стоимость трубы может быть выражена следующим образом: С = ЛрдТ/й + XDn + (\+F)XDnKF, A) постоянная составляющая издержек и издержки монтажа где С — общая стоимость, долл/ (год ¦ фут); А — константа; q — скорость потока жидкости, фут3/с; р — плотность жидкости, фунт/фут3; ц0 — вязкость жидкости, сантипуаз; К — стоимость электроэнергии, долл/квт • ч; W — механическая работа, фут • фунт/фунт; #g — количество рабочих часов в год; Е — коэффициент полезного действия двигателя и насоса (без- (безразмерная величина); V — средняя линейная скорость жидкости, фут/с; D — внутренний диаметр трубы, дюйм; L — длина трубы; X — стоимость 1 фута новой трубы диаметром 1 дюйм, долл/фут; п — константа, зависящая от типа трубы; F — отношение общей стоимости монтажа к стоимости трубы; K.F — ежегодные постоянные издержки, включающие расходы на ремонт. Уравнение баланса механической энергии для потока жидкости имеет вид Для вязкого потока (Nr& < 2100) где / — коэффициент трения;
Задача нелинейного программирования 63 Nfte — число Рейнольдса; ge — 32,17 фут • фунт массы/с2 ¦ фунт силы; J — относительные потери вследствие сочленений и изгибов (безразмерная величина). Найти минимум стоимости, соответствующий оптимальному диа- диаметру трубы. 2.9. Что такое унимодальная функция и каково ее значение в теории оптимизации? 2.10. Разделить локальный и глобальный экстремумы следующей целевой функции: / (х) = 2х\ + х\ + х\х\ + 4зд + 3. 2.11. Укажите число независимых переменных в следующей задаче: • о с t минимизировать —^- х\ + -я- х\ + -j- х\ — \xxx% + Ъхххг — при ограничениях ух = 13^ — 4х2 + З^з + Vi + 3#5 > 0, г/2== - 4^.+ 5д;2 — 2х3 + уь — 1 > 0, г/3 э Зхх - 2*2 + ^з - 2*/4 — 2 > 0, 2.12. Приведите пример выпуклой целевой функции, вогнутой целевой функции, выпуклой целевой функции при вогнутых ограни- ограничениях в виде неравенств, 2.13. Является ли следующая задача: 200 минимизировать /(х) = 100% -\ при ограничениях о , зоо , , хъ х2 > 0 задачей выпуклого программирования? 2.14. Приведите пример положительно определенной матрицы; полуопределенной матрицы. 2.15. Приведите целевую функцию, у которой имеется более одного локального минимума, но не бесконечное число, Выделите глобальный минимум.
64 Глава 2 2.16. Являются ли следующие векторы: A) х = [5 2 10]г, B) х = [10 2 7,5]г, C) х = [0 0 Of (а) допустимыми или недопустимыми по отношению к условиям задачи 2.16; (б) внутренними или внешними векторами? 2.17. Заштрихуйте область допустимых значений в задачах 2.6 нелинейного программирования. Является ли в этих задачах х = [1 1] внутренней, граничной или внешней точкой? 2.18. Укажите, какая часть изображенной на фиг. 3.2.18 функ- функции является выпуклой, а какая вогнутой. Фиг. 3.2.18. 2.19. Является ли квадратичная функция /(х) =10+ 10*! + х2 — 6х* — Ъх\ выпуклой, вогнутой, невыпуклой и невогнутой или и выпуклой и вогнутой? Является ли в общем случае квадратичная функция либо только выпуклой, либо только вогнутой? 2.20. Сепарабельные функции — это такие функции, которые могут быть записаны в виде * (х) = 2 ф, (х). Например, х\ + х\ -f x\ является сепарабельной функцией, поскольку гИх) = 24 Показать, что если все слагаемые, входящие в сепарабельную функцию, выпуклые, то сепарабельная функция также является выпуклой. 2.21. Выясните, являются ли выпуклыми следующие целевые функции: (а) /(х) = 3*2-4*^ + 4
Задача нелинейного программирования 65 2.22. Что является областью допустимых значений для х при ука- указанных ниже ограничениях? Изобразите графически область допус- допустимых значений для двумерных оптимизационных задач со следую- следующими ограничениями: (а) М*) = *! + **-3 = 0, h( 2 lQ К (х) = *i + х2 + *з = 0; (B)g1(x) = x1-x|-20 g2(x) = x1 — x2 + (г) h1(x)^3fil + 4 + gi(x) = x1 — x2 + ёг (х) - xx > 0, 2.23. Ответьте на приведенные ниже вопросы к следующей зада- задаче (в каждом случае докажите правильность ответа): минимизировать / (х) = -j- х* j- х\ — хг при ограничениях *?+х| = 4, хх — х2 < 2. (а) Является ли данная задача задачей выпуклого программиро- программирования? (б) Является ли точка х = [1 1]г допустимой? (в) Является ли точка х = [2 2]г внутренней? (г) Является ли / (х) унимодальной функцией? 2.24. При каких условиях локальный минимум будет одновре- одновременно и глобальным минимумом? (Постарайтесь дать краткий ответ.) 2.25. Найдите выражения для градиента приведенных ниже целевых функций и вычислите значения градиента в указанных точках: (а) (б) /W- /00 = 3*2- 4*2- -2^ + 6** в точке в точке - 2ххх.г + 2x1 в точке х в точке х X X = ; = [0 = [1 [-1 [-1 01 2] т » т. > of, ¦If.
66 Глава 2 2.26. Чему равен градиент / (х) = ххех* + ххх% в точке х — [2 3] ? 2.27. Аппроксимируйте / (х) задачи 2.26 в точке х = [1 1]г с помощью квадратичного приближения. 2.28. Аппроксимируйте с помощью A) линейных членов (перво- (первого порядка) ряда Тейлора и B) квадратичных (второго порядка) членов ряда Тейлора целевую функцию f (х) = ех'+2*2 — Юхл в точке х = [! UT- 2.29. Если для ограничений выполняются условия второго по- порядка, выполняются ли также условия первого порядка? 2.30. Укажите необходимые и достаточные условия максимума функции одной переменной. 2.31. Было найдено два решения задачи нелинейного програм- программирования минимизировать / (х) = 7хх — 6х2 + 4х3 при ограничениях следующего вида: X = s (х) — 5*i 0,947 0,207 _— 0,0772. = 5,08, + 3x1— 1 = 0, х2 — Зх3 — 6 = 0 х = 0,534 0,535 .— 0,219. = — 0,346. Одно из этих решений, очевидно, является максимумомг а другое — минимумом. Убедитесь, что эти векторы х удовлетворяют необходимым и дос- достаточным условиям соответственно для максимума и для минимума. 2.32. Известно, что следующая задача: минимизировать / (х) == 100 (х2 — х^) + A — л^J при ограничении имеет локальный минимум в точке х* = [1 1 ]г. Убедитесь, что необходимые условия для локального оптимума удовлетворены. Является ли этот локальный оптимум также и глобальным?
Задача нелинейного программирования 67 2.33. Очевидно, что целевая функция имеет минимум в точке х = 0. Можно ли к этой целевой функции применить критерии разд. 2.5? 2.34. Определите, является ли локальным минимумом седловая точка функции f (х) = 1 — х\ — 4ххх2 — х\, ограниченной цилиндром х? + 4 = 2. 2.35. Для следующей задачи: минимизировать / (х) = х\ при ограничениях проверьте, удовлетворяет ли предполагаемое решение х = [0 0]г теоремам, приведенным в разд. 2,5, 2.36. Определите, является ли оптимальным (с точностью до двух значащих цифр) предполагаемое решение х=[0,82 0,43 0,77] задачи минимизировать f (х) = -^±^ + -^Щ- + ^F при ограничениях 4*i + 7х2 + Зх3 < 10, 3*! + 4х2 + 5х3 < 8, х^, х2, х3 ~^- 0. 2.37. Определите, является ли оптимальным (с точностью до двух значащих цифр) предполагаемое решение х = [0,75 0,75 0,69]т задачи 2 13 МИНИМИЗИрОВаТЬ f (X) = т-yr-z- -] i-^-s- -| ртг-з- при ограничениях 3^ + 4х2 + 5х3 = 8, хъ хъ xa ^ 0. 2.38. Следующая задача: минимизировать / (х) = ±хх — х\ — \2
68 Глава 2 при ограничениях 26^ 4 — х\ + 10лг2 — х\ — 34 > 0, х1( х2 >0 была численно решена, и получен ответ, который, как казалось, является искомым решением, а именно вектор х = [1,000 4,900 ]г. Покажите, удовлетворяет ли найденный вектор необходимым и дос- достаточным условиям того, что он является решением данной задачи. Приведите все вычисления. 2.39. Минимизируйте f (х) = х2 — х, начиная из точки х = 3, с помощью следующих методов одномерного поиска: (а) метода золотого сечения; (б) метода ДСК — Пауэлла; (в) метода ДСК. Пусть |Дх@)| = 0,1. Выполните число вычислений функции, до- достаточное, чтобы получить | Ax№'|< 10~3. Постройте график зави- зависимости [/(х(*+1)) — f(&k))] от последовательности номеров k для каждого метода. Для этого вы можете методом ДСК определить интервал, в котором находится минимум, при использовании про- процедуры поиска методом золотого сечения. 2.40. Найдите минимум f (x) в направлении наискорейшего спус- спуска, начиная из точки х@) = [2 2]г для /(х) = х\ + 2Ъх\- [Указание: пусть х"> == х@) + Xyf (х(°>). Минимизируйте f(x<n) по X.] 2.41. Пусть требуется найти действительные корни уравнения fx (х) = 3000 — 1 ООх2 — 4х* — 6х* = 0. (а) Как можно привести эту задачу к виду задачи оптимизации? Предположим далее, что требуется найти действительные корни одновременно уравнений (а) и (б). fa (х) = бх4 + 4*3 + 1 ООх2 — 3000 = 0. (б) Как можно привести эту последнюю задачу к задаче оптимиза- оптимизации? 2.42. Коэффициенты в эмпирической модели у = ро + Pi#i + + Р2х2 должны оцениваться по методу наименьших квадратов, т. е. путем минимизации суммы квадратов разностей между предсказан- предсказанными значениями у (используя оценки коэффициентов) и экспери- экспериментальными значениями у. Сформулируйте эту задачу как зада- задачу оптимизации.
Задача нелинейного программирования 69 2.43. Покажите, что целевая функция Г— 3,03 1,3451 = 55,84 + [7,31 26,65] х + хг[ ^ш 696 Jx. где хг = [xt x2f, строго выпукла. Покажите, что —g(x) строго вогнута, если g(x) = 85,72 + 21,85^ + 8,59^ — 9,20*2 —5,18^ —6,26хл. Затем покажите, что экстремум, полученный при минимизации / (х), является глобальным экстремумом. ЛИТЕРАТУРА 1. Dantzig Q. В., Linear Programming and Extension, Princeton Univ. Press, Prin- Princeton, N. J., 1963. 2. Wilde D. J., Beightler C. S., Foundations of Optimization, Prentice-Hall, Inc., Englewood Cliffs, N. J., 1967. 3. PonsteinJ.,/. SIAMRev.,9, 115A967). 4. Kuhn W. W., Tucker A. W., Nonlinear Programming, Proc. 2nd Berkeley Symp. on Mathematical Statistics and Programming, Univ. of California Press, Berkeley, 1951, pp. 481—493. 5. Fiacco A. V., McCormick Q. P., Nonlinear Programming, Wiley, Inc., N. Y., 1968. 6. McCormick Q. P., SIAM J. Appl. Math., 15, 641 A967). 7. Pennisi L., Trans. Am. Math. Soc., 74, 177 A953). 8. Wilde D.J., Optimum Seeking Methods, Prentice-Hall, Inc., Englewood Cliffs, N. J., 1964. 9. Coggins Q. F., Univariate Search Methods, Imperial Chemical Industries Ltd., Central Instr. Lab. Res. Note 64/11, 1964. 10. Box M. J., Davies D., Swann W. H., Nonlinear Optimization Techniques, Che- Chemical Industries Monograph 5, Oliver and Boyd, Edinburgh, 1970. 11. ICI Note 64/3, 1964. 12. Powell M. J. D., Computer J., 7, 155 A964); см. также Walsh J., ed., Numerical Analysis, Academic Press Inc., London, 1966. 13. Gilbert E. Q., Simulation, 10, 350 A967). ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА Fiacco A. V., Sequential Unconstrained Minimization Methods for Nonlinear Prog- Programming, Ph. D. Dissertation, Northwestern Univ.; Evanston, 111., 1967. Fiacco A. V., McCormick G. P., Sequential Unconstrained Minimization Techniques for Nonlinear Programming, Wiley, N. Y., 1968. Kunzi H. P., Zum heutigen stand der nichtlinearen Optimierungs Theorie, Unterneh mersforsch, 12, 1 A968). Kunzi H. P., Krelle W., Oettli W., Nonlinear Programming, Blaisdell, Walthara, Mass., 1966.
70 Глава 2 Kunzi H. P., Tzscharch H. Q., ZehnderC. A., Numerical Methods of Mathematical Optimization, Academic Press, N. Y., 1968. MangasarianO. L., Nonlinear Programming, McGraw-Hill, N. Y., 1969. Mangasarian O. L., Fromovitz. The Fritz-John Necessary Optimality Conditions in the Presence of Equality and Inequality Constraints, J. Math. Anal. Appl., 17, 34 A967) Schechter R. S., Beveridge Q. S. G., Sufficiency Conditions in Constrained Varia- Variations, Ind. Eng. Chem. Fundamentals, 5, 571 A966). Schechter R. S., Beveridge G. S.G., Optimization: Theory and Practice, McGraw- Hill, N. Y., 1970. Wilde D. J., Beightler С S., Foundations of Optimization, Prentice-Hall, Englewood Cliffs, N. J., 1967. Zangwill W. I., Nonlinear Programming: A Unified Approach, Prentice-Hall, Eng- Englewood Cliffs, N. J., 1969.
Часть II МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ БЕЗ ОГРАНИЧЕНИЙ В приведенной выше табл. 2.7.1 при классификации задач нели- нелинейного программирования по характерным чертам метода решения выделяются методы, использующие при оптимизации произ- производные, и методы, которые не используют производные,— обычно известные как методы поиска. Ниже в гл. 3 описываются методы первой группы, а в гл. 4 рассматриваются методы второй группы, причем обе для задач без ограничений. Затем в гл. 5 сравнивается эффективность различных методов. Конечно, это не слишком четкая классификация, поскольку некоторые методы являются смешанными, например определение составляющих градиента целевой функции по разностным схемам или минимизация в направлении градиента с помощью методов поиска. Здесь мы имеем возможность рассмот- рассмотреть только некоторые из многих методов решения задачи нелиней- нелинейного программирования без ограничений; выбраны были те из них, которые, с одной стороны, достаточно эффективны, а с другой сторо- стороны, связаны с алгоритмами, обсуждаемыми в последующих главах, посвященных нелинейному программированию при ограничениях. Некоторые важные алгоритмы нелинейного программирования при ограничениях требуют использования эффективной процедуры минимизации без ограничений.
Глава 3 МЕТОДЫ МИНИМИЗАЦИИ БЕЗ ОГРАНИЧЕНИЙ, ИСПОЛЬЗУЮЩИЕ ПРОИЗВОДНЫЕ Общая задача нелинейного программирования без ограничений сводится к следующей: минимизировать/(х), х ? Еп, C.0.1) где / (х) является целевой функцией. Руководствуясь замечаниями разд. 2.5.1, при решении этой задачи мы используем методы миними- минимизации, которые приводят к стационарной точке / (х), определяемой уравнением v/ (* ) = 0. В этой главе рассматривается вопрос о том, как решить задачу C.0.1) с помощью алгоритмов, использу- использующих первую и вторую частные производные / (х). Сначала описы- описывается поиск методом наискорейшего спуска, затем излагаются метод Ньютона, метод сопряженных направлений и, наконец, некоторые из методов, аппроксимирующих (путем использования только первых производных) направления, определяемые методом Ньютона. 3.1. ГРАДИЕНТНЫЕ МЕТОДЫ В этом разделе кратко излагается стратегия градиентных (наи- (наискорейшего спуска) методов оптимизации без ограничений; в вы- вычислительном аспекте эти методы используют только первые про- производные целевой функции. На k-м этапе переход из точки x(ft) в точку x(ft+1) описывается следующим соотношением: х№+1) „ х(« + дхда ^ Х№) л. UkQk) = х№ + a*(*>s№>, C.1. где Дх<*>— вектор перехода из точки х(*> в точку s<*> — единичный вектор в направлении Лх№>; s№) — любой вектор в направлении Дх<*>; — скаляры, определяемые соотношениями
Методы минимизации, использующие производные 73 3.1.1. МЕТОД НАИСКОРЕЙШЕГО СПУСКА Применение метода наискорейшего спуска для решения задачи минимизации без ограничений было рассмотрено еще известным французским математиком Коши. Как отмечалось в разд. 2.4.4, градиент целевой функции / (х) в любой точке х есть вектор в направ- направлении наибольшего локального увеличения / (х). Следовательно, нужно двигаться в направлении, противоположном градиенту / (х), т. е. в направлении наискорейшего спуска, поскольку отрица- отрицательный градиент / (х) в точке х(*' направлен в сторону наиболь- наибольшего уменьшения / (х) по всем компонентам х и ортогонален линии уровня / (х) в точке х( К Введение направления, противоположного нормированному (единичному) градиенту/(х), т. е. направления скорейшего спуска, определяемого в точке х(*' по формуле в C.1.1) дает следующую формулу перехода из x(ft) в х(А+1): = х<*> — Wtof (х<*>). C.1.3) Отрицательный градиент дает только направление оптимизации, но не величину шага. При этом можно использовать различные про- процедуры метода наискорейшего спуска в зависимости от выбора X и определения выражения || \f (х(*>) |. Поскольку один шаг в на- направлении наискорейшего спуска в общем случае не приводит в точ- точку минимума / (х), формула C.1.3) должна применяться несколько раз, до тех пор пока минимум не будет достигнут. В точке минимума все составляющие вектора градиента равны нулю. В случае когда целевая функция / (х) = х/а хгАх, выражение yf (x{k)) — Ах(*' мо- может быть непосредственно подставлено в C.1.3). Процедура строго наискорейшего спуска может закончиться в стационарной точке (в которой составляющие градиента / (х) равны нулю) различного типа. Обычно бывает необходимо опреде- определить, является ли данная точка точкой локального минимума (т. е. решением) или седловой точкой. Если это седловая точка, то следует применить какой-либо неградиентный метод, чтобы выйти из нее, после чего минимизация может продолжаться, как и ранее. Тип стационарной точки может быть проверен путем иссле- исследования матрицы Гессе (если ее возможно получить) целевой функ- функции, взятой в данной стационарной точке. Если эта матрица не явля- является положительно определенной, то стационарная точка — седло- седловая. В качестве критерия окончания последовательной процедуры при движении в направлении наискорейшего спуска применяются
74 Глава 3 различные правила, основанные либо на значении / (х) и величинах х( ^-1 v/ (x). либо на некоторой их комбинации, а также на со- соответствующих значениях этих величин на предыдущих шагах. Успех того или иного метода в смысле эффективности сходимости к локальному минимуму зависит от этих правил, а также и от са- самой задачи. При выборе размера шага применяются два общих метода, хотя могли бы быть рассмотрены и многие другие возможности. В первом методе при переходе из точки x(ft) в точку х(*+1) целевая функция минимизируется по %, в другом методе величина К выбирается фик- фиксированной или меняется от шага к шагу. Рассмотрим сначала случай, когда X выбирается так, чтобы ми- минимизировать / (х) в заданном направлении. При этом на каждом шаге старая информация отбрасывается и заменяется новой ин- информацией, так что никакого ускорения оптимизации осуществить нельзя. Сходимость метода наискорейшего спуска в такой постановке может быть доказана [ 1 ]. Можно показать, что для выпуклой целевой функции, имеющей производные до третьего порядка (и для неко- некоторых других функций при еще более слабых ограничениях), этот метод в пределе сходится при k-*- oo. Тем не менее упомянутое свойство метода наискорейшего спуска не является большим его достоинством на практике, поскольку скорость сходимости может быть слишком медленной, как это оказывалось в многочисленных экспериментах, а также предсказывается теорией [2]. При определении точки х(*+1) на основе формулы C.1.3) / (х) мо- может быть формально минимизирована путем вычисления X из урав- уравнения _ В качестве конкретного примера предположим, что / (х) — квадра- квадратичная функция [имея это в виду, подставим в уравнение B.4.5) й вместо (х — х(*>)]. Тогда = 0 = V7 (х<*>)> + (W HU» C.1.4) что дает следующее выражение для Я,'*': до = _ V( > • C-1 -5) (>>)г н»« Функцию / (х) можно минимизировать также с помощью одного из методов одномерного численного поиска, изложенных в разд. 2.6. Интересной чертой процедуры минимизации в случае квадра- квадратичной целевой функции является то, что у/ (х(*+1)) ортогонален sik),
VfCcc'**") Ф иг. 3.1.1. Иллюстрация того, что для квадратичной целевой функции (s^)T у/ (х*"*'1)= 0, если / (х) минимизируется в направлении s'*'- Линии уровней f(ас) я?» Фиг. 3.1.2. Зигзагообразная траектория оптимизации при использовании метода наискорейшего спуска.
76 Глава 3 Это можно показать следующим образом. Отметим, что если то градиент f (x) равен V/(x)-b + Hx, C.1.6) так что V/ (х<°>) = b + Нх<°>, Подстановка выражения для у/ (х</г>) в C.1.4) приводит к уравнению (Ь + Нх(У s№)+ C»)Г mmsik) = 0. После подстановки x№+D— x(ft) вместо W*>s^> и преобразования по- получаем (>)Г (Ь + Нх<*>) + (s<*>)r Н (x^+D — х<«) = 0, или (s<ft))r (b + Hx<*+'>) = (s(«)r v/ (х'*+1)) = 0. C.1.7) Другими словами, градиент в х(*+1> ортогонален предыдущему на- направлению поиска s(*} (фиг. 3.1.1). Если в методе наискорейшего спуска выбирается фиксированное значение скаляра к или величи- величина X переменная, то она должна тщательно контролироваться во избежание как неожиданного роста / (х), так и чрезмерного числа шагов, необходимого для достижения решения. Первое произойдет, если % слишком велико, а второе, если % очень мало или если К настолько велико, что приводит к колебаниям около точки минимума (фиг. 3.1.2). Таким образом, величина к должна уменьшаться при приближении к точке минимума. Один из возможных методов кон- контроля к предполагает установление некоторого критерия для К, основанного на использовании угла 0 между последовательными векторами шагов в процессе минимизации. Например, если этот угол становится меньше, чем некоторая заданная величина, то ве- величина К должна быть умножена на некоторую заранее определен- определенную константу а; если угол становится больше, то % нужно разде- разделить на а. Пример 3.1.1. Метод наискорейшего спуска В этом примере описывается несколько циклов метода наиско- наискорейшего спуска с целью иллюстрации методики решения задач минимизации.
Методы минимизации, использующие производные 77 Рассмотрим задачу минимизировать / (х) = х\ 25л|. Возьмем сначала фиксированную длину шага к, начальное значение которой равно единице. На каждом этапе нам понадобят- понадобятся значения следующих функций: дхг Начиная с точки х< следующими этапами: <0) = [2 2]т, поиск минимума осуществляем Этап 0 1 2 3 2 1,96 1,88 0,88 * 2 1,00 0 0 dx, 4 3,92 3,76 a/ (x(*b dx2 100 50 0 11 V/<*<*>> II ~ 100 50,1 3,76 Величина шага при переходе к следующе- следующему этапу Д*, —0,04 —0,078 —1,00 д*, —1,00 — 1,00 0 На фиг. П.3.1.1, а можно проследить траекторию поиска. Для того чтобы метод сходился, к обычно нужно уменьшать, иначе при подходе к минимуму возникнут колебания («назад— вперед»). Заметим, что в точке минимума х = [0 0]гу/(х) = 0. Ниже приводятся результаты трех соответствующих этапов вычисления, в которых вместо использования фиксированного к ищется минимум / (х) в направлении наискорейшего спуска: Этап k 0 1 2 3 2,003 1,850 0,070 2 1,92 0,070 0,070 х2 2 —0,003 0,070 —0,000 df <x(*>) а*, 4 3,84 0,14 df (x№>) дх2 100 —0,15 3,50 f(x<*>> 104 3,19 0,13 Следует обратить внимание на то, что на фиг. П.3.1.1, а градиент / (х) в начале поиска не направлен в точку минимума, поскольку коэффициенты при хх и хг различны,
78 Глава 3 Путем замены переменной у = 5хг минимизируемая функция принимает вид /(х) = *? + »*, и вектор градиента в точке хх = 2, у = 5xz = 10 действительно направлен в точку минимума, поскольку коэффициенты при хг и у теперь одни и те же; см. фиг. П.3.1.1, б. Если нелинейная целевая функция слишком сложна, чтобы ее можно было продифференцировать аналитически, то составля- mx«» X, хЛинш уровней f(x) б Фиг. П.3.1.1. ¦ фиксированное Я(х<*)); • f (x), минимизируемая на каждом шаге.
Методы минимизации, использующие производные 79 ющие градиента, являющиеся частными производными по оптими- оптимизируемым переменным, аппроксимируются разностными соотноше- соотношениями. Например, для функции двух переменных разностные фор- формулы имеют вид (если разности берутся вперед) df (*<*>) f ((*<*> + fij, xf) - / (х?К xf) -» jr , (а) дхх (б) где б; — некоторые малые отклонения. При этом необходимо вычи- вычислить целевую функцию лишь в трех точках, а именно в точках (*f> xp), [(*f> + бх), xf] и [xf\ Dft) + 6s)] на каждый цикл k. Величины бг в общем случае выбираются так, чтобы ошибка в ап- аппроксимации производной не превышала разумного уровня. Поскольку градиент не обязательно направлен в сторону минимума в х№> и градиент заново вычисляется на каждом этапе, величина этой ошиб- ошибки существенна главным образом в окрестности минимума, где /(H у) Для иллюстрации ниже приводятся компоненты градиента для данного примера, вычисленные по разностным формулам (а) и (б) при 6j = б2 = 0,05: Точка 2 0,01 хг 2 0,01 .. + «. 2,05 0,06 * + * 2,05 0,06 df (x№) а*, прибли- приближенно 4,05 0,070 точно 4,00 0,02 df (x«0) дх2 прибли- приближенно 101,25 1,80 точно 100,0 0,50 Из таблицы видно, что на некотором расстоянии от минимума разностная аппроксимация производных вполне приемлема, однако вблизи минимума она недостаточно удовлетворительна. Конечно, можно уменьшать величину б,- в процессе поиска или использовать более подходящие аппроксимирующие формулы для производных, но здесь мы не будем обсуждать эти вопросы, поскольку имеются другие методы оптимизации без ограничений, более предпочтитель- предпочтительные, чем метод наискорейшего спуска. Основной трудностью при использовании метода наискорейше- наискорейшего спуска, как уже видно из приведенного примера, является его зависимость от выбора масштаба оптимизируемых переменных. Если гипер пространство очень вытянуто, так что образует
80 Глава 3 «хребет» или «овраг» (отношение максимального значения Н (х) к ми- минимальному в каждой точке велико), процедура наискорейшего спус- спуска сходится слишком медленно, чтобы быть эффективной, или может вообще не сойтись за разумное время. На фиг. 3.1.3 иллюстрируется Проекция vf6&) на поверхность f(x) Фиг. 3.1.3. Типичная зигзагообразная траектория оптимизация при использова- использовании метода наискорейшего спуска в узкой впадине. эта трудность; направление наискорейшего спуска оказывается почти ортогональным наилучшему направлению достижения мини- минимума / (х). Одним из выходов в этой ситуации является использо- использование информации второго порядка (информации, даваемой вторы- вторыми частными производными целевой функции по независимым пере- переменным или их приближениями). Этот вопрос будет рассматриваться в разд. 3.2 и 3.4. Другим подходом, с которого мы и начнем, является изменение масштаба независимых переменных в целевой функции.
Методы минимизации, использующие производные 81 3.1.2. МАСШТАБИРОВАНИЕ НЕЗАВИСИМЫХ ПЕРЕМЕННЫХ В примере 3.1.1 было показано, что с изменением масштаба переменных (координат) меняется и направление наискорейшего спуска. Таким образом, произвольное изменение единиц измерения независимых переменных изменяет направление наискорейшего спуска и влияет на эффективность градиентной минимизации. Избежать эту трудность можно путем введения безразмерных пере- переменных, полученных делением каждой переменной на интервал ее изменения, как, например, П-Тг' Р Pa —Pi где в данном случае Т обозначает температуру, а р — давление. Но даже это преобразование искусственно подразумевает, что расстоя- расстояние /72 — Рх то же, что и Га — Тх. Если в n-мерной задаче принять следующее общее определение расстояния в Еп: ^_ \dx1\r+\dxt\'+ ¦•¦ +\dxn\r as , где г — индекс метрики, то можно показать [3], что отношение изме- изменений любых двух немасштабированных координат (при наиско- наискорейшем спуске) дается формулой ау(х)/а* dXj = Ч- df(x)/dxj C.1.8) Знак плюс используется, когда частные производные одного знака, а минус — когда производные разных знаков. В случае обычной метрики (г = 2) получаем dxt . dxf — dfi что соответствует направлению, определяемому градиентом. Предположим далее, что для оптимизируемых переменных про- производится изменение масштаба (единиц измерения), так что где Xi — масштабированная переменная. Обычно такая замена линейна, как, например, в случае перевода температуры из шкалы в градусах Цельсия в шкалу в градусах Фаренгейта: Г (в °F) = 1,87A! СС) + 32, при этом величины ^ — дф (*,)/дх( — константы. Тогда можно по- показать, что отношение изменений любых двух масштабированных
82 Глава 3 переменных будет следующим: Г/<Г~". C.1.9) ?, df (к)/дх, Влияние выбора масштаба определяется отношением \\ijpi\r/(r~l). В случае г = 2 dxt = df(x)/dxj /jxA» die/ df(x)/dxj VIх// откуда можно заключить, что относительное изменение переменных Х[ и Xj зависит от масштабных множителей. Следовательно, един- единственного направления наискорейшего спуска не существует. Некоторые интересные выводы могут быть получены при таких индексах метрики, как г = О, г = 1 и г=оо. В случае г = О, что соответствует ds—(\dx1\\dx2\...\ dxn\jTn, отношение dxjdxj одно и то же как для немасштабированных, так и для масштаби- масштабированных переменных. Бокс и Вильсон [4] осуществили такое же масштабирование путем приравнивания скорости изменения целе- целевой функции по одной из безразмерных переменных к скорости изменения по другой безразмерной переменной. В случае г = 1 уравнение C.1.8) приводит к откуда следует, что на каждом этапе оптимизации соответствующий шаг осуществляется лишь в одном координатном направлении, а именно в направлении, соответствующем наибольшей частной про- производной. Это соответствует попеременному поиску по одной ко- координате, причем выбор шага определяется величиной д[/дх(. И наконец, г — ± оо соответствует ds — ± dxk, где | dxk \ = = max(|dx/|) при г = + °° и | dxk | = min (| dXj \) при г = —оо. При этом из уравнения C.1.8) следует dx, -^^ т. е. на каждом последовательном этапе оптимизации все координа- координаты изменяются на одну и ту же величину. Очевидно, что, применяя подходящий индекс метрики и проводя масштабирование, можно получить широкий выбор направлений для использования их в ка- качестве направления наискорейшего спуска. Проблема выбора ин- индекса метрики в задаче оптимизации еще не изучена, но, видимо, этот подход может послужить основой улучшения алгоритмов.
Методы минимизации, использующие производные 83 3.2. МЕТОД ВТОРЫХ ПРОИЗВОДНЫХ (МЕТОД НЬЮТОНА) И СВЯЗАННЫЕ С НИМ АЛГОРИТМЫ Направление поиска, соответствующее наискорейшему спуску, можно интерпретировать как следствие линейной аппроксимации целевой функции (фиг. 3.2.1, а). С другой стороны, методы вторых производных, среди которых лучше всего известен метод Ньюто- Ньютона1», возникли из квадратичной аппроксимации / (х), определяемой уравнением B.4.5). Они используют информацию второго порядка, содержащуюся во вторых частных производных целевой функции / (х) по независимым переменным. 3.2.1. МЕТОД НЬЮТОНА Направление поиска s в методе Ньютона выбирается следующим образом. Если х — х( ' в уравнении B.4.5) заменить на величину Ax{k) = x(fe+1> —\{к\ определенную из уравнения C.1.1), то квад- квадратичная аппроксимация функции / (х) через переменные Ах(к) представляется следующим образом: f(x(/<+D) = f(X(fc)) + v?y(X(fc))дх(*> + _i_(дх(>9)ГV2f(xW)дх<*)_ C2.1) Минимум функции / (x) в направлении Дх( ' определяется диффе- дифференцированием / (х) по каждой из компонент Ах и приравниванием нулю полученных выражений. Последнее приводит к Дх<*> = — [V2/ (х^)]-1 vf (x(fc>), C.2.2) где [V2/^*')]—матрица, обратная матрице Гессе H(x<fc>), опре- определенной в разд. 2.4 (матрица вторых частных производных /(х) по х, взятая в точке x(ft)). Подстановка выражения C.2.2) в уравнение C.1.1) определяет переход из x(fc> в х(*+1) по методу Ньютона: Заметим, что здесь и направление и величина шага точно опреде- определены. Если / (х) — квадратичная функция, то для достижения ми- минимума / (х) достаточно только одного шага. Но в случае общей не- нелинейной целевой функции минимума / (х) нельзя достичь за один шаг, поэтому уравнение C.2.3) обычно приводят к виду C.1.3) путем введения специального параметра длины шага %: (з.2.4) '' Название объясняется тем, что решение системы уравнений yf (х) = 0 ме- методом Ньютона приводит к уравнению C.2.2); иногда они называются методами квазилинеаризации.
84 Глава 3 гс„ а «Г, x(k) б Фиг. 3.2.1. Сравнение метода наискорейшего спуска и метода Ньютона с точки зрения аппроксимации целевой функции. а — наискорейший спуск: аппроксимация первого порядка (линеаризация) функции / (х) в точке х№; б — метод Ньютона: аппроксимация второго порядка (квадратичная) функции / (х) в точке х(*). Отношение ^№>/||[V2f (x^)) [V/(x№>)]||— просто некоторый скаляр А,*№); поэтому уравнение C.2.4) чаще записывают следующим образом: x*+i> = х№> _ ^«н-i (х№)} ?/ (х(*)). (з.2.4а) Следует обратить внимание на то, что направление поиска теперь задается вектором s(ft> = —H~l(x(*))v/(x(*)). Уравнение C.2.4а)
Методы минимизации, использующие производные 85 применяется итеративно, как и уравнение C.1.3), пока не бу- будет удовлетворен некоторый критерий окончания процесса. Заметим, что уравнение C.2.4а) включает в себя обращение мат- матрицы, и необходимо соблюдать осторожность с тем, чтобы выбирае- выбираемая процедура решения обеспечивала положительную определен- определенность обратной матрицы (см. ниже). В этом отношении многие стан- стандартные ЭВМ-программы для обращения матриц являются неудов- неудовлетворительными [5]. Заметим также, что этот метод требует вы- вычисления значений аналитических вторых частных производных или их аппроксимаций, что может оказаться в некоторых случаях непрактичным. Критерий, гарантирующий сходимость метода Нью- Ньютона в предположении, что функция / (х) дважды дифференцируема, заключается в том, что матрица, обратная матрице Гессе целевой функции, должна быть положительно определенной (см. приложение ВI»: (V2/ (х№))]--' =H~' (х№)) > 0. C.2.5) Пример 3.2.1. Сравнение методов, основанных на использовании производных первого и второго порядков Чтобы продемонстрировать использование уравнений C.1.3) и C.2.3), возьмем плохо масштабированную целевую функцию, рассмотренную Розенброком [6], две линии уровней которой (/ (х) = = 8 и / (х) = 4) приведены на фиг. П.3.2.1: -xlr + (\-x1)\ (a) Геометрически / (х) интерпретируется как медленно спадающий искривленный овраг с самой низкой точкой х* = [1 1]г, где / (х*) = 0. Метод наискорейшего спуска Рассмотрим точку х№) = [-0,5 0,5]г, в которой f(x№)) = 8,5. Нор- Нормированный градиент f (х) в точке x<fc) = [—0,5 0,5]г равен Вектор, противоположный вектору нормированного градиента в x(fc), 7k) = [—0,685 —0,729]г, как видно из фиг, П.3.2.1, указывает направление наискорейшего спуска и ортогонален уров- уровню / (х), проходящему через х( ', '' Здесь мы оставили принятое автором краткое обозначение положительной определенности матрицы А : А > 0, хотя оно и не совсем точное. — Прим. перев.
86 Глава 3 Чтобы найти новый вектор х( +1>, необходимо выбрать величину %. Например, можно выбрать заранее определенное значение Я или найти то значение К, при котором / (х) достигает минимума в направ- Направление в методе Ньютона (*) «(*) . [-0,685 I -2,0 Направление наиско- наискорейшего спуска 2,0 Фиг. П.3.2.1. Градиентный метод и метод вторых производных в случае функции Розенброка. лении, задаваемом единичным вектором s(ft), В точке х{к) = [—0,5 0,5]г уравнение C.1.1) имеет вид '' —*(*> ' . (в) 0,5J [0.729J Отсюда / (х»+») = f (%) = 100 [0,5 — 0,729* — @,5 + 0,685*)а]2 + + A,5 + 0,685*J. (г) Минимум f(ty по * достигается в точке А, = 0,164. Подстановка \№) =0,164 в уравнение (в) дает новую точку х<*+'' = [—0,612 0,381]г, в которой /(х) = 2,6 (см. фиг. П.3.2.1). Новый вектор s»+i) определяется уравнением C.1.2) для точки х^+'э, а затем находится и x(ft+2) в направлении s'^1' аналогично тому, как была найдена х(*+1).
Методы минимизации, использующие производные 87 Эта итерационная процедура продолжается до тех пор, пока стано- становится уже невозможным уменьшать величину / (х) или пока не будет удовлетворен некоторый выбранный критерий окончания процесса. Интересно, что метод наискорейшего спуска, как видно из этого приме- примера, не применим для продвижения вдоль изогнутого оврага функции Розенброка. Метод Ньютона Рассмотрим теперь метод Ньютона, начиная из точки х(*'= [—0,5 0,5]г« Тогда х(*+1> определяется путем использова- использования уравнения C.2.3) или C.2.4а) следующим образом: 2 + 1200Х? + 2) (- 400x01 400x0 200 102 2001 200 200]' ур () Г(- 400х2 V' ' L (— 0 Г Г-0,031 [-0,22]' "-0,51 . Г- 0,031 Г— 0,53 '[— 0,22] ~[ 0,28 * В точке x<*+i) = [— 0,53 0,28]г значение f(x) равно 2,33. По- Полученный вектор Ах№» = [— 0,03 — 0,22]г изображен на фиг. П.3.2.1. у р [р ф Новый вектор Лх^+'» вычисляется в точке х<*+1> с помощью уравне- уравнения C.2.2), х№+2> определяется из уравнения C.2.3). Альтернативная процедура заключается в вычислении s№) = = FT1 (x№>) vf (x(fc>), как и в предыдущем методе, и в поиске неко- некоторого % в направлении s№>, минимизирующего /(х) в соответствии с уравнением C.2.4а). В любом случае итерационная процедура повторяется, пока не будет удовлетворен определенный крите- критерий окончания процесса или до тех пор, пока становится невозмож- невозможным уменьшать величину / (х). На практике, чтобы уменьшить время решения, элементы Н (х) могут вычисляться не на каждом шаге. Если используется уравнение C.2.3), то метод Ньютона автома- автоматически дает последовательность длин шагов, соответствующих расстоянию до минимума для квадратичных функций, аппрокси- аппроксимирующих функцию/(х) в последовательных точках x(ft). Например,
88 Глава 3 квадратичная аппроксимация функции Розенброка в x(fe> = = [—0,5 0,5]г представляет собой q (x{k)) = —5,25 — 2л;, + -(- 50л;2 + 200x^2 -f 51a;i + 100x1 и минимум q (x{k)) достигается в х = [—0,53 0,28]г. С другой стороны, методы, основанные на производных первого порядка, линеаризуют / (х) в х , но ли- линейная функция не имеет минимума (или максимума), не считая концов; следовательно, нужно выбирать определенную длину шага в направлении, ортогональном линеаризованной функции / (х). 3.2.2. ГЕОМЕТРИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ Теперь дадим геометрическую интерпретацию локальной квад- квадратичной аппроксимации целевой функции и проиллюстрируем важность требования положительной определенности Н~' (х). Функция второго порядка (квадратичная) может быть, как видно ж. Минимум оа. *7 —f Фиг. 3.2.2. Преобразование координат к главным осям. Хи х2 — исходные координаты; х\, хг — канонические координаты. из фиг. 3.2.2, преобразована к новой системе координат путем переноса начала системы координат в точку экстремума функции и последующего поворота осей для достижения симметрии. Обозна- Обозначим старые координаты через хх и х2, а новые координаты, называе- называемые главными осями,— через хх и хг. Эти два преобразования дают новое, записанное в главных осях выражение для целевой функции, называемое канонической функцией, причем эта функция много проще исходной, поскольку исключены все члены первого порядка и перекрестные члены. Например, в случае двух независимых переменных квадратич- квадратичная целевая функция или квадратичная аппроксимация целевой функции в соответствии с уравнением B.4.5) будет иметь следую- следующий вид: / \"/ — 0 ~1 11 " 2 2 ~~i 11 1 I 22 } I 12 1 2 " 21 2 1* l*J»«»D) C-2.7) Уравнение C.2.6) преобразуется в каноническое уравнение
Методы минимизации, использующие производные 89 где / (х*) — значение / (х) в центре квадратичной поверхности, а Ъп и &аа —¦ преобразованные коэффициенты (знак ~ обозначает «в канонической форме»). Перенос начала координат на фиг. 3.2.2 со- соответствует исключению в уравнении C.2.6) линейных членов, а пово- поворот осей — исключению перекрестных членов. Кроме того, на фиг. 3.2.2 на крайнем справа рисунке представлен результат масштаби- масштабирования преобразованных переменных, так что уровни целевой функции становятся окружностями. На фиг. 3.2.3 приводятся ти- типичные примеры двумерных функций в исходных и в главных осях. Элементы матрицы Гессе целевой функции Н (х) можно легко свя- связать с коэффициентами уравнений C.2.6): Кроме того, коэффициенты Ьп и &22 в уравнении C.2.7) являются собственными значениями матрицы 1/2Н (х ') (доказательство этого факта можно найти во многих руководствах по теории матриц и линейной алгебре). Матрица, обратная матрице Гессе целевой функции, взятой в точке x(fc>, дает меру кривизны функции / (х) в окрестности x(fc>. В табл. 3.2.1 интерпретируется информация, содержащаяся в каноническом представлении C.2.7) исходной функции C.2.6). Если | Ьп | > | &221, то линии уровней вытягиваются вдоль хг (мень- (меньший коэффициент) и наоборот. Если центр расположен по оси х2 на бесконечности и Ьп отрицателен, то линии уровней представляют собой параболы, как показано на фиг. 3.2.3, е. Каждая из вырож- вырожденных поверхностей, изображенных на фиг. 3.2.3, д, называемая оврагом или хребтом, имеет место, когда один из коэффициентов по абсолютной величине много меньше другого. В качестве просто- простого примера возьмем функцию / (х) = х\ + Л + 2ххх2, которая в результате подстановки х = хх -f- x2 преобразуется в / (х) = = f (х) = х2. Тогда Ьп = 1, а Ь22 = 0, что соответствует варианту 9 в табл. 3.2.1. Изложенное можно легко распространить на случай функций более чем двух независимых переменных. Например, когда все Ьи равны между собой, поверхности постоянного уровня целевой функции представляют собой гиперсферы; когда один или большее число коэффициентов Ьи относительно малы, имеет место гипер- гиперовраг (хребет) и т. д. Одним из основных требований того, чтобы любая процедура оптимизации была успешной, является возможность быстро дви- двигаться в локальной области вдоль узкого оврага (при минимизации) в направлении минимума целевой функции. Другими словами,
Фиг. 3.2.3 {at б). Геометрия целевых функций второго порядка двух незавн мых переменных.
фиг. 3.2.3 (в, г).
Фиг. 3.2.3 (д, е),
Методы минимизации, использующие производные 93 хороший алгоритм должен дать направление поиска, имеющее боль- большую составляющую вдоль оврага. Овраги (хребты в случае макси- максимизации) встречаются весьма часто, по крайней мере локально. При этом вовсе не обязательно, чтобы функция, аппроксимирующая Интерпретация канонической функции Таблица 3.2.1 Коэффициенты вври- ант 1 2 3 4 5 6 7 8 9 10 11 соотношение hi ~ hi hi = ~Ь* ~bn >~h2 hi > hi "hi ^ *22 ^22 = 0 hi=* Знаки ~ьи~ь„ + + + - — Тип линии уровня Окружность * Эллипс Гипербола » Прямая Парабола Геометрическая ин- интерпретация Круговой холм Круговая впадина Эллиптический холм Эллиптическая впа- впадина Симметричное сед- седло То же Вытянутое седло Стационарный ]> хребет Стационарный '* ов- овраг Поднимающийся1'2* хребет Спадающий Il2> ов- овраг Центр Максимум Минимум Максимум Минимум Седловая точка То же » Нет На со То же 2.3 Фиг. 3. а а б б в в г д д е е ') Вырождение поверхности. 2) К соотношению! приведенному в названии таблицы, нужно добавить два линейных члена. целевую функцию, была вырожденной. Так, например, в типичном случае, представленном на фиг. 3.2.3, б в верхней и нижней облас- областях, линии уровней напоминают овраги. Овраг располагается в на- направлении собственного вектора, соответствующего малому соб- собственному значению матрицы Гессе целевой функции. Например, для случая функции f (х) = х\ + 25л| из примера 3.1.1 (проиллю- (проиллюстрированного на фиг. П.3.1.1, а) матрица Гессе постоянна и равна [2 0] Н~ 0 50Г
94 Глава 3 Для этой матрицы собственные значения, полученные из характе- характеристического уравнения B — Р) E0 — р) = 0, равны рп = 2 и Ра2 == 50. (В случае диагональной матрицы собственные значе- значения — это элементы главной диагонали.) Собственный вектор, со- соответствующий рш может иметь любое значение для компоненты в направлении хх до тех пор, пока компонента в направлении х2 равна нулю. Читатель, видимо, уже заметил, как овраг на фиг. П.3.1 Л, а вытягивается в направлении xv Еще раз отметим, что направление—H~'v/(x). вычисленное в различных точках пространства х, всегда совпадает с направлением к точке минимума Функция V/(x) X [ Г- (-1) 2 = [2 if 100 J ° x = [2 0]Г (-1) ш -. 1 -J 2 i [o] = [~o] -° 50J В этом примере вектор —Н ' (х) v/ (x) совпадает с направлением в точку минимума, поскольку функция / (х) квадратичная, но, да- даже если целевая функция не квадратичная, в общем случае вектор —Н—1у/ (х) имеет большую составляющую, параллельную собствен- собственному вектору, соответствующему малому собственному значению Н (х), и направления поиска, как требуется, приблизительно совпа- совпадают с главными осями при аппроксимации функции в точке x(ft). Основным недостатком метода Ньютона (кроме трудностей, свя- связанных с определением аналитических производных) является то, что улучшение значения целевой функции с каждым циклом гаран- гарантируется только в том случае, если матрица Гессе целевой функции Н (х) = v2/ (xlk)) положительно определена. Н (х) является поло- положительно определенной для строго выпуклых функций, поэтому в случае функций более общего вида метод Ньютона может привести к направлениям поиска, расходящимся от точки минимума f (x). Чтобы ясно себе представить, почему выполнение условия C.2.5) необ- необходимо для обеспечения сходимости, вспомним, что действительная симметрическая матрица положительно определена тогда и только тогда, когда ее собственные значения положительны. При минимиза- минимизации, какэто видно из фиг. 3.2.3, когда все собственные значения H(x(ft)) положительны, локальная квадратичная аппроксимация соответ- соответствует круговой или эллиптической впадине, имеющей минимум.
Методы минимизации, использующие производные 95 С другой стороны, если пара собственных значений имеет противо- противоположные знаки, то, как видно из фиг. 3.2.3, квадратичная аппрок- аппроксимация представляет собой седло, не имеющее локального миниму- минимума. В последнем случае вектор, определяемый уравнением C.2.3) [или C.2.4а) ] и представляющий в смысле метода Ньютона наилуч- наилучшее направление поиска, будет направлен к седловой точке вместо того, чтобы уходить от нее в направлении «вниз». 3.2.3. ПРИВЕДЕНИЕ МАТРИЦЫ ГЕССЕ К ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННОМУ ВИДУ Некоторые авторы предложили дополнительные преобразования, делающие матрицу Гессе положительно определенной на каждом этапе минимизации. Гринштадт [7] построил схему на основе ана- анализа собственных значений, которая обеспечивает положительную определенность приближения *>. Пусть матрица Н (х) аппрокси- аппроксимирует Н (х), Масштабируем матрицу Н (х) следующим образом: С-1(х), C.2.8) где С (х) — диагональная матрица, элементы которой равны Си — = (|А;4I/\ т- е- представляют собой положительные квадратные корни из абсолютных значений элементов главной диагонали Н (х). Тогда в матрице П все элементы главной диагонали либо положи- положительны, либо отрицательны. Например, пусть тогда 2 Поскольку С" (х) и Н(х) неособенные и порядка о, то обратная матрица к их произведению является произведением их обратных матриц, взятых в обратном порядке, или = С(х)Н(х)С(х). ') Аппроксимации, используемой вместо Н (х) в уравнениях C,2.3) и C.2.4а).— Прим. перев.
96 Глава 3 Тогда Н ' может быть вычислена по масштабированной матрице: В своей работе Гринштадт указал, что ЕГ1 (х) можно выразить через собственные значения ас и собственные векторы матрицы П (х). Собственные векторы матрицы, обратной к данной, равны собственным векторам исходной матрицы, а собственные значения обратной матрицы — просто обратные величины собственных зна- значений исходной матрицы (аГ1). Таким образом, п IT (x) = 2 аГЧе[, где ег __ нормированный собственный вектор, соответствующий соб- собственному значению а,-. Затем вместо IT (x) в формуле C.2.9) ис- используется ЕГ1 (х): П-1(х)=2|а1.|-1е,еГ (где любое а,- = 0 заменяется малой положительной величиной), так что теперь обеспечена положительная определенность Н~' (х) при вычислении ее по формуле Н (х) = С (х) П (х) С (х). C.2.10) В качестве простого примера предположим, что матрица Н = И 21 ~ = ; Н~ не является положительно определенной. [2 1J Вычислим Г 1 01 Г1 2 о iJU i Собственными значениями П являются аг = —1 и ос^ — 3, и соот- соответствующие нормированные собственные векторы имеют вид V2 V2 L К2 J V2 .
Методы минимизации, использующие производные 97 Следовательно п—' i ~~ — l l + 3 > 1 ol V2 °J 1 ol 1 п /2 °_ 1 > Затем вместо IT возьмем 1 — 1 1 3 Г 1 LW Г 1 V2 1 V2 0 0 0 1 1 " /2 У 2 0 0 1 1 '2 /2 0 0 Г ' ' V 2 /2 0 0 Г ! 0 т~ - 1 ~| К 2 ( ) 1-1 и после подстановки П ' в уравнение C.2.10) новая матрица Н ' становится положительно определенной: г_2_ J_ 3 з _L _L L з 3 J Заметим, что здесь любое собственное значение, абсолютная вели- величина которого меньше 10", заменяется на 10~4. Маркуардт [8], Левенберг [9] и Голдфилд, Квондт и Тротер [10] предложили другую вычислительную схему для обеспечения поло- положительной определенности приближения матрицы Н~' (х): = С-1 (х)(П(х) г1 с-1 , C.2.11) где р — положительная константа, такая, что р>—min \щ). Так как собственными значениями (П (х) + pi) являются (щ + 4- Р), то уравнение C.2.11) обеспечивает положительную определен- определенность Н~' (х), поскольку использование подходящего значения р в формуле C.2.11) в сущности «уничтожает» отрицательные и малые собственные значения матрицы, аппроксимирующей матрицу Гессе. Заметим, что при достаточно большом р произведение pi может
98 Глава Ь «подавить» П (х), и тогда процесс минимизации приблизится к поис- поиску методом наискорейшего спуска. Зварт [11] предложил третий путь обеспечения положительной определенности для приближения Н (х). Основным шагом является нахождение унитарной вещественной матрицы U, такой, что после применения преобразования х = Ux получается диагональная матрица Гессе целевой функции Н (х<«) - UrH (x«) U = Лп ... О О ... к пп C.2.12) Этот шаг соответствует повороту осей на фиг. 3.2.2. Для построения унитарной матрицы U необходимо определить собственные значе- значения и собственные функции Н (х(*'). Затем, если какие-либо эле- элементы на диагонали матрицы Н (x(ft)) оказываются отрицательными или малыми, то они заменяются некоторой малой положительной величиной, что приводит к модифицированной матрице Н* (х(/г)). Таким образом, в процессе поиска направление, соответствующее собственному значению, имеющему не тот знак, который нужен, не рассматривается, и, кроме того, на выбор направления поиска не оказывают доминирующего влияния никакие слишком малые соб- собственные значения. Наконец, направление поиска находится с по- помощью следующего соотношения: eW = _ Н * (Х<«) у/ (х№>). C.2.13) Метод Ньютона имеет очевидное преимущество, заключающееся в квадратичной сходимости в окрестности минимума целевой функ- функции (если Н (х) > 0 и целевую функцию можно достаточно хорошо аппроксимировать квадратичной функцией), т. е. как раз там, где особенно проявляются слабые стороны методов наискорейшего спуска. Наоборот, в области, далекой от минимума, методы наиско- наискорейшего спуска могут оказаться лучше. Отсюда можно сделать вывод, что подходящая комбинация метода наискорейшего спуска и метода Ньютона должна оказаться эффективнее каждого из них в отдельности. Такие комбинированные процедуры излагаются в разд, 3.4. 3.3. СОПРЯЖЕННОСТЬ И СОПРЯЖЕННЫЕ НАПРАВЛЕНИЯ Как будет видно ниже, квадратичная целевая функция п неза- независимых переменных, имеющая минимум, может быть минимизиро- минимизирована за п шагов (или менее), если шаги предпринимаются в так называемых сопряженных направлениях. Хотя используемые в ре-
Методы минимизации, использующие производные 99 альных задачах схемы оптимизации, оказывающиеся эффективными для квадратичных целевых функций, иногда могут плохо работать (и в общем случае основанный на этом подход не даст сопряженных направлений поиска) при более сложных целе- целевых функциях, тем не менее этот подход представляется вполне ра- разумным. Прежде чем описывать какие-либо алгоритмы, следует сначала определить и проиллюстрировать свойство сопряженности. В этом разделе предполагается, если это не оговаривается особо, что целевая функция квадратична и имеет вид где Н — положительно определенная матрица. 3.3.1. СОПРЯЖЕННОСТЬ Предположим, что процесс минимизации / (х) начинается в х<0) с начальным направлением s , выбранным произвольно или по какому-либо определенному правилу. Для удобства возьмем его в виде единичного вектора, т. е. (s@))r s@) = 1. Тогда вектор хA) будет равен x<i> = х<°> + Я%?°>, C.3.1) где длина шага Я@) определяется из условия минимума / (х@> + + As@)) по К как это следует из уравнения C.1,4): - о - V7 (*(V0) f (*Vv V (x Таким образом, C.3.2) После того как по формулам C,1.1) и C.2.2) вычислен хA>, для продолжения процесса минимизации f (x) должно быть выбрано новое направление. Это новое направление s ' называется сопря- сопряженным к старому направлениюs@), если (sA>)r [\*f (x<0)) ]s<0) = 0. В общем случае система п линейно независимых направлений поиска s@), sA), ..., в'""'1 называется сопряженной по отношению к неко- некоторой положительно определенной (квадратной) матрице Q [12], если ($('))г Qs</> _о, 0 < IФ j < п - 1. C.3.3)
100 Глава 3 (Мы предполагаем, что Q — невырожденная матрица.) Примером Q может служить матрица Гессе целевой функции Н. Сопряженность — понятие, аналогичное ортогональности; дей- действительно, когда Н = I, то в соответствии с уравнением C.3.3) (s('')r s(/1 = 0. Заметим далее, что с точки зрения топологических характеристик квадратичной функции, обсуждавшихся в предыду- предыдущем разделе, если целевая функция преобразована к каноническому виду, скажем, f (х) = bnx\ -f Ъ22х\ — хпх, то собственные зна- значения Vs Н находятся на диагонали Н: Н = Таким образом, сопряженность можно интерпретировать как ор- ортогональность в пространстве преобразованных координат, если направления поиска масштабированы подходящими функциями собственных значений. В новых координатах имеем l' Sl , S2 S2 _ Z(i\T~(i) _ r. где ~=- И п. Поскольку сопряженные направления линейно независимы, то любой вектор v в пространстве Е" можно выразить через s<0), sA), ... следующим образом: и—1 v = 2 v«s«, C.3.4) /=о где v« = (»(Д)гН(х)у (sw)rH(x)sw ' Для некоторой матрицы Н всегда существует по крайней мере одна система из о взаимно сопряженных направлений, так как сами собственные векторы Н представляют собой такую систему. В дальнейшем при использовании сопряженных направлений потребуется следующее соотношение для квадратичной функции: п—1
Методы минимизации, использующие производные 101 Чтобы убедиться в его справедливости, рассмотрим матрицу 1 a,sw (s(/))r. Умножение ее справа на Hs<*> дает [n-l "I 2 aysw (s01K" HsW = ats<*>(s<*>)rHs№> = sW, /=o J 2 если положить ak = Таким образом, соотношение C.3.4а) доказано. Приведенный ниже числовой пример поможет уяснить понятие сопряженности. Пример 3.3.1. Сопряженные направления В качестве примера выбора и построения сопряженных направ- направлений рассмотрим следующую задачу: минимизировать f (х) = х\ + х\ — 4, начиная из точки х<0) = [4 4]г. Поскольку f (x) с самого начала представляет собой квадратичное выражение, нет необходимости ее аппроксимировать. Потребуются следующие матрицы и векторы: (X — Х»>) = 2x2 2 О Вектор хA) вычисляется по формуле хA) = х@> + xf -га—ei- В качестве s@) можно выбрать любое направление, например на- направление градиента, но в иллюстративных целях мы выберем про- произвольное направление 2 Уз 2
102 Глава 3 Заметим, что так как г 1 2 \'Ъ L 2 J = 1. 1@) Длина шага К вычисляется по формуле C.3.2): ДО» = — Тогда [8 8] УЪ] 2 J - 1 - 2 Уз L 2 .  01 .0 2J 1 - 2 УЗ - 2 . s<0' = — 5,46. Г-2,731 L-4.74J -Г 1>271- — [ — 0.74 J Следующее направление минимизации s(I) выбирается сопряжен- сопряженным к s@), используя уравнение C.3.3) при Q = Н: Й ;о> 2 J = 0. Необходимо еще одно добавочное уравнение (нормировки) = 1. Из этих уравнений имеем н- так что sA) = [_ УЗ! + ]
Методы минимизации, использующие производные 103 Затем из уравнения, аналогичного C.3.2), вычисляется длина шага А,A): [2,54— 1,48] *,<» = — [ 2~ tJl г V3~\ 2 1 L 2 J 2 01 0 2| 2 1 2 = 1,47, /3 1 На фиг. П.3.3.1 изображена траектория поиска. В этом конкретном случае целевая функция сферическая; таким образом, направления поиска не только сопряжены, но и ортогональны.
104 Глава 3 Можно показать, что векторы s , построенные как сопряжен- сопряженные направления, линейно независимы в смысле, изложенном в разд. 2.1. Единственный возможный дополнительный вектор, который взаимно сопряжен со всеми п направлениями s@), ... ..., s'""', — нулевой. Таким образом, изложенный выше пример иллюстрирует общее правило, заключающееся в том, что если используются сопряженные направления, то любая квадратичная функция п переменных, имеющая минимум, может быть миними- минимизирована за п шагов, по одному в каждом из сопряженных направ- направлений. Более того, порядок использования этих направлений несу- несуществен. Это правило для сопряженных направлений можно доказать следующим образом. Запишем целевую функцию в виде f (х) = = а + хЛЬ + -g- хгНх, при этом vf (х) = Ь + Нх и в точке миниму- минимума f(x), где vf (х*) = 0, х* = —H~'b. Следует также заметить, что из коммутативности скалярного произведения \Tf(x»i)**> = (si®O у/ (х№)) (что можно получить и непосредственным перемножением элементов). На я-м шаге в результате применения формул C.1.1) и C.3.2) имеем л-1 ^ На каждом шаге мы минимизируем f (х(й + ta№') в направлении s№>, чтобы получить №\ что приводит к выражению = Х(о» _ V Кроме того, )г Vf (x(ft)) = (?*>)г(Нх<*> + b) = a—i —¦ т *~*. так как все произведения (s№)) Hs(i) обращаются в нуль вследствие того, что векторы s сопряжены. Таким образом,
Методы минимизации, использующие производные 105 По аналогии с формулой C.3.4) выразим векторы x@)HH~Jb че- через систему сопряженных векторов s(ft): " / H-ih_/v Подстановка этих выражений в C.3.56) дает х(п) = - H~'b. C.3.6) Таким образом, точка х" (результат я-ro шага) совпадает с миниму- минимумом / (х). Говорят, что некоторый метод обладает свойством квадратичного окончания, если применение его гарантирует достижение минимума квадратичной целевой функции за точно определенное число шагов. В случае методов сопряженных градиентов требуется п шагов, тогда как, например, в методе Ньютона — только один шаг. Покажем далее, что для сопряженных направлений (или просто линейно независимых направлений, что в этом случае одно и то же), если каждый раз / (х) минимизируется в сопряженном направлении s в соответствии с формулой C.1.4), то [(s(/))r v/(x"')l = 0. 0 </</— 1, при использовании не более я направлений. Мы уже видели ранее в разд. 3.1, что для квадратичной функции Vf(x(") = b + Hx(". Следовательно, / /—I \ /-1 г /y^h Ь -4- Н ( v^ J_ "S1 \Р^^ I h -J- Hy^ -J- H "^ Л (/)q(^ V i=k ) i=k где x( ' — произвольная точка, из которой начинается поиск в со- сопряженных направлениях. Поскольку то /-1 Умножение этого уравнения слева на (s( ~'') дает Первый член в правой части равен нулю, поскольку, как было показано в подразд. 3,1.1, градиент в данной точке ортогонален
106 Глава 3 предыдущему направлению поиска, если точка получается в резуль- результате минимизации функции в этом направлении. Кроме того, все члены в сумме исчезают вследствие сопряженности. Таким образом, (s{k~l))T у/ (х{1)) — 0, и поскольку приведенные выше рассуждения справедливы для любого индекса к, изменяющегося от 1 до /, то О </</-!. C.3.7) Определим теперь матрицу X ' размерности п X i, в которой каждый элемент представляет собой Xю = [(хA) - х@)) (хB) = [Ах@)АхA) ... А или '(Ах'0»O" (Дх(У C.3.8) В соответствии с уравнением C.3.7) имеем (Х('У у/ (x(i)) = 0, i < л — 1. Возьмем далее еще одну матрицу размерности п X i: 0й = [(V/ (Л - V/ (х@)>) (у/ (хB)) - у/ (х0))) .. . ... (V/ (х(") - у/ (х0-11))] = [Ag@> Ag(I) ... V'l. где Ag(I) = у/ (xA+1>) — v/(x(l)). Из выражения для градиента / () g / (х) следует V/ (х) --= у/ (х</г)) + V2f (x(fe)) (x - х(\ и если положить х = х(*+1), то V/ ( V/ (х№)) = V2/ C.3.9) ). C.3.10)
Методы минимизации, использующие производные 107 Тогда на основании C.3.8) имеем (ХAУ [у/ (х0+1)) - у/ (xw)l = 0 C.3.11) или (GAY {х'Ж) - xw] = О, 0 < i < / < я - 1, C.3.12) если шаги К{0) s@), K{1) sA),... осуществляются в сопряженных на- направлениях. После изложения некоторых важных свойств сопряженности можно перейти к рассмотрению алгоритмов минимизации f (x), использующих сопряженные направления. 3.3.2. МЕТОД СОПРЯЖЕННОГО ГРАДИЕНТА В методе сопряженного градиента Флетчера — Ривса [ 13| строится последовательность направлений поиска s, являющихся линейными комбинациями — у/ Ыку), текущего направления наискорейшего спуска, и s@), ..., s'*', предыдущих направлений поиска, причем весовые коэффициенты выбираются так, чтобы сделать направления поиска сопряженными. Упомянутые веса такие, что для вычисления нового направления поиска в точке х ' используются только теку- текущий градиент и предпоследний градиент. Эта идея заимствована из метода решения систем линейных уравнений, предложенного Хестенсом и Штифлем [14], а также Бекменом [15]. Изложим существо идеи. Пусть исходным направлением поиска будет s@) = — \f (х@)). Затем положим хA) — х@) = Я*@У0) и построим где (ох — скалярный вес, который выбирается так, чтобы сделать s(i) и s@) сопряженными по отношению к Н: (s@))rHs<!) = 0. C.3.13) Чтобы исключить (s@))r из уравнения C.3.13), воспользуемся урав- уравнением C,3.10) и заметим, что для квадратичной функции Н = Нг , (Окг _ (х("-х'°))Г [V/(x">)-Vf(x<°>)fH-' Vs ) — к'ф) I'M Следовательно, [V/ (хA)) - V/ (x@))f [- V/ (х(") + co,s@)] - 0. Вследствие изложенных в подразд. 3.3.1 свойств все перекрестные члены исчезают, так что yrf(x">)yf(x">)
103 Глава 3 Направление поиска s<2) представляется в виде линейной ком- комB) A @ бинации — vf (xB)). sA) и s@), причем так, чтобы оно было сопря- сопряжено с sA). Распространяя эти выкладки на s<2), sC),... (детали пре- Ф и г. 3.3.1. Траектория поиска минимума функции Розепброка методом Флет- чера — Ривса (числа указывают номер шага, т. е. последовательные направления поиска). образований мы вынуждены опустить, но они являются прямым продолжением изложенного, если учесть, что (sik))T\f (х№+1)) = О приводит к у7/ (x№>) Vf (х№+1)) = 0), получаем общее выражение для юА: ->~й V/ (* V7"/ (х<*-") C.3.14)
Методы минимизации, использующие производные 109 Все весовые множители, предшествующие &k, а именно «>ft_i, со/ь_2,..., оказываются нулями, что представляется весьма тонким и инте- интересным результатом. Ниже приводятся операции этого алгоритма: 1. В х@) вычисляется 2. На k-м шаге с помощью одномерного поиска в направлении s<A>) находится минимум f(x). Это определяет точку х№+1). 3. Вычисляются /(х№+1)) и vf(x(ft+1>)- 4. Направление s№+1) определяется из соотношения v / (x ) v/ (x ) После (n -f 1)-й итерации (k — n) процедура циклически повторяется с заменой х@) на х("+1). 5. Алгоритм заканчивается, когда ||s№)|<e, где е — произволь- произвольная константа. Прежде всего заметим, что здесь не требуется обратимость матрицы. Другим преимуществом этого алгоритма является то, что программа требует довольно ограниченной памяти ЭВМ по сравнению с (л X л)-матрицами разд. 3.4. На фиг. 3.3.1 изобра- изображена траектория минимизации для функции Розенброка. Оценива- Оценивание алгоритма Флетчера — Ривса для некоторых тестовых задач проведено в гл. 5. 3.3.3. ПАРТАН-МЕТОДЫ В работе Ша, Бюлера и Кемпторна [16] описаны несколько ал- алгоритмов, использующих сопряженные направления (общий партан- метод) и сопряженные градиенты (партан-метод наискорейшего спуска, модифицированный партан-метод). Рабочую программу для этих методов можно получить в фирме Electronic Associates Inc., Princeton, N. J. Партан представляет собой сокращение от терми- термина parallel tangents (параллельные касательные). На фиг. 3.3.2 проиллюстрирована сущность этой процедуры для случая квадра- квадратичной функции двух независимых переменных. Рх и Р2 — любые две точки плоскости (хъ х2). Сначала движемся из Р2 параллельно касательной к линии уровня в Рх до тех пор, пока не будет достиг- достигнут минимум f (x) в некоторой точке Р3. При этом оказывается, что касательные в Рх и Р3 параллельны, а минимум / (х) находится на линии, проходящей через точки Рх и Р3. В этом методе используется тот факт, что параллельность линий сохраняется при общем аффинном (т. е. по существу каноническом)
по Глава 3 преобразовании пространства независимых переменных, так что на некоторые аспекты поиска минимума не будет влиять масштаб со- соответствующих переменных. Часть процедуры основана на методе акселерации, разработанном Форситом и Моцкиным [17] для ис- использования его в алгоритме наискорейшего подъема. Общий партан-алгоритм по существу заключается в следующем (фиг. 3.3.3). Пусть х@), хB), х<3), ...— последовательность векто- Касателъная /с линии уровня в Pt Р, Фиг. 3.3.2. Метод параллельных касательных (партан-метод) в двумерном случае. ров х в Еп, Пи — плоскость, касательная к линии уровня / (х) в точке х{к). Каждый шаг делается в направлении минимума / (х). Из точки х@) (пронумерованной так для симметрии) нужно двигать- двигаться вдоль ломаной линии х<0) х<2) хC) хD> ..., на продолжении которой xim~l)x{m) точка х(т) представляет собой точку минимума. Начальное направление х@)хB) произвольно; направление хB) х ' произвольно, но параллельно я0; затем берется х колли- неарнох<0) и хC). Повторяя процедуру для k = 2,3,..., проводится х<2*)хBи-1) параллельно Я()( Па> п^ ###> я2а_о, а хB*+2) берется кол- линеарно хB*~2) и xBfe+I). В работе Ша, Бюлера и Кемпторна пока- показано, что если / (х) — квадратичная «-мерная функция, имеющая единственный минимум, т. е. положительно определенная квадра- квадратичная форма или ее монотонная функция, то общий партан-алгоритм приводит к минимуму в точке х(^п) или ранее. Таким образом, этот метод обладает свойством квадратичного окончания. Направления, полученные с помощью общего партан-алгоритма, являются сопряженными, что можно показать для случая квадра- квадратичной целевой функции {f (х) = -*¦ хгНх) п независимых перемен- переменных. Действительно, градиент / (х) равен у/ (х) == Нх. путь оптимизации из х@) проходит вдоль вектора Поскольку (х<0) — х<2*)
ccH) Произвольное направление Направление^ произвольное, N Направление, произвольное но параллельное Фиг. 3.3.3. Общий партан-алгоритм. "•¦-•- наискорей- наискорейший спуск — — итерационный, партан- Фиг. 3.3.4. Сравнение траекторий метода наискорейшего спуска, итерационного и модирицированного партан-метода.
112 Глава 3 (фиг. 3.3.4), пока не будет достигнут минимум / (х) (точка хB)), век- вектор (х@> — хB)) параллелен я2, касательной плоскости в хB). Кроме того, вектор (х@> — хB)) перпендикулярен градиенту / (х) в точке хB), \f (xB)) = Нх<2). Следовательно, (х@, _ х(yv/ (хB^ = (х@, _ хB))ГНх*2, = 0) V7 (хB)) (х@) - хB)) = (хB))гН (х@) - хB)) = О, так что (х@))гНхB) = (хB))гНх<2). Продолжая построение, получаем (х@))гНхB) = (хB>)гНхB> = (хD))гНхB) = • • • = (хBА))гНх<2) = = (хB))гНх@> = (хB))гНхB) = (хB))гНхD) = = • • • = (хB»)гНх(ад. В общем случае все эти величины равны (хB/))гНхBА:). Кроме того, из построения требуется, чтобы вектор (хB) — х{3)) (фиг. 3.3.4) был параллелен зт0, или (xB)-xC))V(x@)) = 0. Аналогичный анализ приводит к / = 0, 1 А-1, А= 1, 2 л-1. Особый интерес представляют следующие разности: - (х(А+2))гНхB"-2) - О, Вычитание второго уравнения из первого дает (х(*+2) - х(А))гН (хB"> - хB"-2)) = 0. C.3.15) Уравнение C.3.15) показывает, что направления (хB) — х@)), (х<4) — — хB)), ... вплоть до (хBп) — хB"~2)) взаимно сопряжены. В партан-методе наискорейшего спуска направления, произволь- произвольные в общем партан-методе, выбираются следующим образом. В точках х@), хB), хD),..., х<2*'нужно двигаться в направлении от- отрицательного градиента. Этот подход согласуется со случаем, когда / (х) квадратична и при определении первых производных не имеют места ошибки. При этом партан-метод наискорейшего спуска имеет конечную сходимость. Следовательно, в выборе некоторых направ- направлений уже отсутствует произвольность, и процедура становится инвариантной относительно поворота осей, т. е. преобразований вида у = Ux, где U — ортогональная матрица. Тем не менее выбор масштаба в партан-методе наискорейшего спуска оказывает влия- влияние на промежуточные шаги.
Методы минимизации, использующие производные 113 Ниже приводятся операции алгоритма итерационного партан- метода: 1. Определяется направление отрицательного градиента (наис- (наискорейший спуск) в точке х@>. 2. Определяется точка минимума хB) функции / (х) вдоль направления отрицательного градиента из х'0). 3. Определяется направление отрицательного градиента в точке хB). 4. Определяется точка минимума х<3) функции / (х) вдоль отри- отрицательного градиента из хB). 5. Точки х<0) и хC) соединяются прямой, вдоль которой опре- определяется местонахождение минимума / (х); эта точка обозначается через хD). 6. Процедура повторяется с начальной точкой хD). Если задача содержит п переменных, то следует проделать п градиентных шагов, а затем соединить ху0) с х(п+|). Показанные на фиг. 3.3.4 шаги из х@) в хB), из хB) в хC), из х<4) в х<5) и из хE) в хF) (не показан) являются шагами в направлении наискорейшего спуска. Итерационный партан-метод оказался значительно менее эффек- эффективным по сравнению с модифицированным партан-методом, ко- который начинается пятью первыми шагами итерационного партан-ме- тода, а затем продолжается следующим образом (для случая двух переменных): 6'. Находится направление отрицательного градиента в точке хD>. 7. Определяется точка минимума хE) функции / (х) вдоль на- направления отрицательного градиента. 8. Точки хB) и х<5) соединяются прямой, вдоль которой опре- определяется местонахождение минимума; эта точка обозначается че- через хF). 9. Шаг 6' повторяется с использованием точки, определенной на шаге 8, вместо х<4). В каждом цикле в точках xBft), k = 2, 3,... ,.., используется направление наискорейшего спуска, а на шаге акселерации точки хB*~2) соединяются с хB*+1). Эффективность партан-алгоритма оценивается в гл. 5. 3.3.4. МЕТОД ЗАУТЕНДАИКА (МЕТОД ПРОЕКЦИИ) Заутендайк [18] предложил алгоритм, использующий сопряжен- сопряженные направления, полученные с помощью проектирующей матрицы. Хотя проектирующие матрицы описываются в разд. 6.3, можно при- привести здесь основные шаги этого алгоритма:
114 Глава 3 1. Начать в х@) и положить проектирующую матрицу Р@) = I. 2. Для k-vo шага проектирующая матрица вычисляется следу- следующим образом: Р» = I - G№) [(G^G^T1 (G(V = = Р№-:) _ Р»-1^**» [(Ag№))r P№-'>Ag( V' (Ag<ft)) Р*- C-3.16) 3. Если P(V(x(ft))=^0, положить s№) = — Р%/ {xik)) и мини- минимизировать f (х) в направлении sik); точка минимума х(*+1'. По- Повторить шаг 2. После того как пройдено п направлений поиска, на- начать снова с шага 1 при х@) = х("'. 4. Если Р(/\/ (х'*1) = 0 и v/(x(ft)) = 0, закончить поиск. 5. Если P(ftV/ (x(ft)) = 0, a v/(x(fc))=^0, снова начать с шага 1, положив х@) = х№). Так как после проведения п итераций Р(га) = 0, то должен быть начат новый цикл итераций. Поскольку первым направлением поиск'а при повторном цикле является направление наискорейшего спуска, можно показать [19], что этот алгоритм минимизирует квадратичную функцию, имеющую положительно определенную матрицу Гессе, не более чем за п этапов. Полезно сравнить уравнение C.3.16) с C.4.11). 3.3.5. МНОГОПАРАМЕТРИЧЕСКИИ ПОИСК В работе Миля и Кентрелла [20] предложен метод поиска, ос- основанный на использовании двух подбираемых параметров для мини- минимизации / (х) в каждом из направлений поиска. В этом алгоритме последовательность шагов определяется формулой х№+1) = х(*> _ ^.v/ (х(*,} + ^Дх'*-1'. (з.з. 17) На каждом шаге целевая функция f (х(А| — %oyf (x{k)) -f A^Ax'*-") минимизируется как по %0, так и по Ки а затем вычисляется х(*+1) по формуле C.3.17). При этом можно показать, что yTf (x(k)) x X V/ (х№+!>) = 0, Vr/ (x(ft+1)) Ax(ft+1) = 0 и Vr/ (х(*+1)) Ах№) = 0. На первом шаге Ах'*' = 0, а х@) должно быть задано. На &-м шаге: 1. Вычисляются х(*>, yf(x(k)) и Ах^-1'= х№ — х^1'. 2. Пользуясь одним из эффективных способов двумерного поис- поиска типа описанных в этой и следующей главе, находятся с требуе- требуемой точностью Х^ и Х\к\
Методы минимизации, использующие производные 115 3. По уравнению C.3.17) вычисляют х(/г+1) и переходят к п. 1. 4. Каждый (п + 1)-й шаг начинается с Ах'*' = 0. 5. Процесс заканчивается, когда | Д/ (х) | < s. Для квадратичной функции приведенный выше алгоритм совпа- совпадает с алгоритмом Флетчера — Ривса, однако он требует большего ю 5 - -/5 щ флетчер- Риес О Миль - Кентрелл 10 IS Число шагов го ЗО Фиг. 3.3.5. Алгоритм Миля и Кеятрелла двухпараметрического поиска в случае функции VI из табл. 5.2.1. времени, так как на каждом шаге проводится двумерный поиск. В случае неквадратичных функций при использовании алгоритма Флетчера — Ривса выбирается в сущности на каждом шаге наилуч- наилучшее значение параметра Хо при постоянном отношении ^А,,, тогда как алгоритм Миля и Кентрелла оптимизирует как \, так и %г. На фиг. 3.3.5 приведены результаты проведенного Милем и Кент- реллом сравнения их алгоритма с разновидностью метода Ньютона для двумерного поиска при оптимизации целевой функции VI из табл. 5.2.1. Значения времени реализации алгоритмов Миля — Кент- Кентрелла и Флетчера — Ривса на ЭЕМ Барроуз Б 5500 составляли 8,8 и 11,9 с соответственно. Крэгг и Леви [21 ] распространили метод двухпараметрического поиска на случай большего числа параметров, когда на каждом шаге осуществляется поиск более высокой размерности с целью получения значений параметров, минимизирующих / (х) в данном
116 Глава 3 Таблица 3.3.1 Сравнение алгоритмов многопараметрической оптимизации при уменьшении /(х) до 10~13 121] Метод Градиентный Флетчера — Ривса Дэвидона — Флет- Флетчера — Пауэлла Миля — Кентрелла (двухпараметри- ческий) 3) Крэгга — Леви (че- тырехпараметри- ческийL) Ньютона, неисправ- неисправленный Ньютона, исправ- исправленный Раздел данной книги, где описан метод 3.1 3.3.2 3.4.2 3.3.5 3.3.5 3.2 3.2 Функция 1 Ч число шагои 29 21 2 2 6 21 вре- время 2) Функция VI ') число шагов в ре. мя2) Функция X ') число шагов время *' Неудачен для решения задачи 1,2 1,1 0,6 0,6 0,1 0,3 29 39 18 4 2,4 4,5 2,0 1,4 Сходится к неоптималь- неоптимальной стацио- стационарной точке 39 1,5 68 30 32 7 25 25 14,0 6,7 12,8 5,0 1,6 1,6 *)См. табл. 5.2.1. 2> Время в секундах на ЭВМ Барроуз Б 5500. ' Использует метод Ньютона, модифицированный так, чтобы матрица Гессе была положи- положительно определенной при оптимизации параметров ^,. ) В случае функции Розенброка (функция I) применялнсь только два параметра. направлении. Каждый следующий вектор х вычисляется по формуле | C.3.18) при т < п — 1. На начальных шагах алгоритма неизвестные АхA) можно положить равными нулю. В табл. 3.3.1 проводится сравнение некоторых алгоритмов с алгоритмом Крэгга — Леви, в котором для проведения (т + 1)-мерного поиска % был использо- использован модифицированный метод Ньютона. Тот факт, что для поиска был использован метод Ньютона, безусловно, способствовал боль- большей эффективности соответствующих алгоритмов. В работе, к сожале- сожалению, не приводятся данные о количестве потребовавшихся вычислений целевой функции.
Методы минимизации, использующие производные 117 3.4. МЕТОДЫ ПЕРЕМЕННОЙ МЕТРИКИ Существует класс методов, называемых методами переменной метрики 1\ квазиньютоновскими или градиентными с большим ииггом, которые аппроксимируют матрицу Гессе или обратную к ней, но используют для этого только первые производные. В большинстве этих методов применяются сопряженные направления, хотя в не- некоторых это не делается. При использовании методов переменной метрики новый вектор х вычисляется по вектору предыдущего шага с помощью уравнения, аналогичного уравнениям C.1.3) и C.2.4а): х<*+" = х(*> + lwl(k) = х№) _ I* <*> ц (х№)) у/ (х(*>), C.4.1) где матрица ц (х( '), которую иногда называют матрицей направле- направлений, представляет собой аппроксимацию Н~' (х). В уравнениях разд. 3.1 т] (х(й)) является единичной матрицей, а в разд. 3.2 ц(х(к)) представляет собой матрицу, обратную матрице Гессе целевой функции Н~' (х). Однако при использовании Н~' (х) необходимо было точно вычислять вторые частные производные / (х) и обра- обращать матрицу Н (х), тогда как в методах переменной метрики для вычисления т] (х(/г)) используются различные соотношения, не тре- требующие ни того, ни другого. Вспомним полезное соотношение C.3.10), связывающее х(*+1) и x(fc>, для случая квадратичной целевой функции (или квадратичной аппроксимации целевой функции) Vf {x<k+l) _ V/(X<*>) = н (x(k) (x(*+I> - x№>). C.4.2a) Умножая обе части этого уравнения на Н-1(х(й)), получаем х<*+» _ хе*> = н-1 (A [Vf (x(*+1)) - v/ (Л]. C.4.26) При этом если /(х) квадратична, тоH(x(ft)) = Н, т. е. постоянная матрица. Уравнение C.4.26) можно рассматривать как систему п линейных уравнений, содержащих п неизвестных параметров, ко- которые нужно оценить для того, чтобы аппроксимировать Н~'(х) или Н (х) при заданных значениях / (х), \f (x) и Дх на более ран- ранних этапах поиска. Для решения этих линейных уравнений могут быть использованы различные методы, каждый из которых приводит к различным методам переменной метрики. В довольно большой группе методов Н~'(х(*+1)) аппрокси- аппроксимируется с помощью информации, полученной на &-м шаге: Н-1 (х<*+1))»ш)(*+1) = ю Ык) + АЛ№)), C.4.3) '* В более строгом смысле понятие «переменная метрика» относится лишь к тем методам, в которых делается преобразование независимых переменных, чтобы промасштабировать их более равномерным образом, но мы не будем употреблять этот термин в таком смысле.
118 Глава 3 где ц — матрица, аппроксимирующая Н~' (х). (Аргумент х матрицы ц опущен в целях экономии места; таким образом, верхний индекс в записи Tj будет обозначать шаг.) Ах(к) представляет собой опре- определяемую матрицу, аю — масштабный множитель, константа, обыч- обычно равная единице. Выбор Ак/ ' по существу определяет метод пе- переменной метрики. Для обеспечения сходимости ах(к+1) должна быть положительно определенной и удовлетворять уравнению C.4.26) в том случае, когда она заменяет Н~'. На (k + 1)-м шаге мы знаем хт, v/(*№)), v/(x<*+") и ПЛ и хо- хотим вычислить ?|(ft+1), так чтобы удовлетворялось соотношение i|(&+1)Ag(ft) = — Ах(*>. C.4.2в) Пусть Дк1(й) = ц(к+1) — т|№). Тогда уравнение Дц^Дб^ = — Ax(fc) — т|№)Дб№) C.4.2г) СО нужно разрешить относительно Дц***. Прямой подстановкой ре- результата можно показать, что уравнение C.4.2г) имеет следующее решение: л (*) 1. Ах«уг со ( >4< где у и z — произвольные векторы размерности «XI. Если для ю = 1 выбирается специальная линейная комбинация двух направ- направлений Дх(й) и m^'Ag'*', а именно то используем алгоритм Бройдена (описанный в разд. 3.4.1); ес- если же берется то матрицу t]( +1) вычисляем с помощью алгоритма Дэвидона — Флет- чера — Пауэлла (описанного в разд. 3.4.2). Поскольку у и z — про- произвольные векторы, то оказываются допустимыми и другие воз- возможности, которые будут рассмотрены в последующих разделах. Если шаги Ах'*' определяются последовательно путем минимиза- минимизации / (х) в направлении s( \ то все методы, с помощью которых вычисляют симметрическую матрицу т)(*+1), удовлетворяющую C.4.2в), дают направления, являющиеся взаимно сопряженными (в случае квадратичной целевой функции).
Методы минимизации, использующие производные 119 3.4.1. СЛУЧАИ. КОГДА Дт)(й> ИМЕЕТ РАНГ 1 Бройден [22], описывая методы решения систем линейных урав- уравнений, показал, что если Atj№) оказывается симметрической матри- матрицей ранга 1 и должно удовлетворяться соотношение ti<ft+l>Ag(ft) = = Дх№>, то единственным возможным выбором Ar|(ft) является А (*, _ [(Ах(*>) - ц<*> (Ag<*>)] |(AXW) - ц<*> (Ag(fe))f n , -. 1 [(Ax<*>)tf>(Ag<V(Ag(fc)) ' [ ' где в целях экономии места мы положили В простейшем алгоритме этого типа минимизация начинается с выбора начальной точки х<0> и некоторого к/0' > 0; затем после- последовательно применяются уравнения C.4.1), C.4.3) и C.4.5) до тех пор, пока, скажем, | у/ (x(ft)) || < е. Если для каждого направления поиска tik) представляет собой скаляр, минимизирующий /(х) в этом направлении, то данный метод дает сопряженные направле- направления поиска. Таким образом, при определенных ограничивающих условиях описанному алгоритму обеспечена сходимость. В частном случае, когда целевая функция п независимых переменных квадра- квадратична, так что несингулярная матрица Гессе Н является постоянной, то можно доказать, что после п шагов т](га) = Н~', если т)@) > 0, если т](&+1) вычисляется из уравнений C.4.3) и C.4.5), если х'*+1) вычисляется из уравнения C.4.1) и, наконец, если (Ах(А:)) являются линейно независимыми направлениями. Одной из интересных осо- особенностей методов ранга 1 является то, что % (или %*) в уравнении C.4.1) не обязательно должно быть параметром, минимизирующим / (х). Бройден показал, что к может быть произвольным параметром, пока не возникла сингулярность ц или знаменатель в правой части уравнения C.4.5) не обратился в нуль. Это свойство позволяет отка- отказаться от одномерного поиска, если можно найти адекватный альтер- альтернативный метод определения К (см. разд. 3.4.5). В работе Голдфар- ба [23] приводятся теоремы, детализирующие достаточные условия сходимости алгоритмов ранга 1. Следует отметить, что излагаемые в данном разделе методы не требуют обращения матриц. В случае, когда целевая функция не является квадратичной, применение уравнения C.4.5) может привести к следующим нежела- нежелательным явлениям: 1. Матрица ц может перестать быть положительно определен- определенной. В этом случае необходимо обеспечить положительную
120 Глава 3 определенность матрицы ц<к+1) с помощью одного из методов, отмеченных в разд. 3.2. 2. Вычисляемая величина Ау[к) может стать неограниченной (иногда даже в случае квадратичных функций вследствие ошибок округления). 3. Если Ах(к) = — %* {к)ц (х(к)) v/ (x(to) случайно совпадает с на- направлением предыдущего этапа, матрица ^(х'*') становится син- сингулярной или неопределенной. В алгоритме Бройдена это тоже будет иметь место, если в процессе определения направления поиска по уравнению C.4.1) либо уравнение либо уравнение приводит к т,<*+» = rf >, т. е. к Arf > = 0. На фиг. 3.4.1 изображены траектории поиска минимума функции Розенброка по алгоритму Бройдена с помощью одномерного по- поиска ДСК—Пауэлла. Следует обратить внимание на то, что большой начальный шаг (шаг вдоль отрицательного градиента) в одномерном поиске приводит к проскакиванию левой части изогнутого оврага, тогда как при малом начальном шаге минимизация проходит пол- полностью вдоль оврага. Машинная программа алгоритма Бройдена приводится в приложении Б. Дэвидон [24] предложил по существу ту же схему вычисления Ач[к\ что и уравнение C.4.5), за исключением того, что Ач[к) ум- умножается на некоторую функцию двух параметров для того, чтобы ограничить изменение t](A:) на каждом шаге, с тем чтобы At](ft) не было «слишком большим», и сохранить положительную определен- определенность t](ft+1). В этом алгоритме принимается К* = 1. Если после вычисления т/{к+1) оказывается, что / (х(*+1)) > / (х(/г)), то на сле- следующей итерации х(*+1) заменяется на х(й). Хотя здесь не испо- используется одномерный поиск, хороший выбор X* и упомянутых двух параметров оказывает значительное влияние на эффективность ал- алгоритма. В работе Пауэлла [25] приводится дополнительный список работ, в которых предлагается использовать уравнение C.4.5) или его эквивалент. Муртаг и Сарджент [26] показали, что одно из условий сходи- сходимости к стационарной точке заключается в том, что норма tj дол- должна быть ограничена и сверху, и снизу. Что касается нижней границы, то можно избежать прямого вычисления нормы матрицы, используя более сильное условие по отношению к уже вычислен-
Методы минимизации, использующие производные 121 Фиг. 3.4.1. Траектории поиска при минимизации функции Розенброка с помощью алгоритма Бройдена (числа обозначают этапы, т. е. различные направления поиска). __ большой начальный шаг в выбранном направлении поиска; •— — — малый на- начальный шаг в выбранном направлении поиска. ным векторам: п II v/(*<*>) II где р, (здесь и ниже) — константы. Другое условие сходимости за- заключается в ограничении угла между направлением поиска и на- направлением наискорейшего спуска так, чтобы функция f (x) уменьшалась при К* > О (конечно, при r)(fe) > ОI': „(ft)' '' Напомним, что у автора матрицы. — Прим. перев. > 0 означает положительную определенность
122 Глава 3 В случае, если эти, а также еще несколько менее значительных условий удовлетворены, можно выбрать А,* таким, что / (Х<*>) - / (х'*+1)) > Рзг V/ (Л W (Л- Основываясь на этих концепциях, Муртаг и Сарджент предложи- предложили следующий алгоритм. На k-ш этапе: 1. Положить Кчк) = 1. 2. Сделать шаг, используя уравнение C.4.1). 3. Если f у/ (x(ft)) || < vlt продолжить одномерный поиск мини- минимума. 4. Провести проверку (тест) выполнения неравенства / (Л - / (Х<*+1>) > р3г V/ (Л лЛ v/ (Л > о. Если это неравенство не удовлетворяется, исключить один шаг из одномерного поиска и вернуться к п. 2. Если одномерный поиск сходится, но тест не удовлетворяется, уменьшить А,* в 2 раза и вер- вернуться к п. 2. При одномерном поиске считается, что сходимость имеет место, когда либо | vrf (х(*+1)) Дх(А) | < v,, либо ДА»||tj'V (x(ft)) | < vlt где ДА,* — изменение АЛ 5. Проверить выполнение условия А,* > v2 и II V/ (*П | Увеличить масштаб A,*(fc) и уменьшить масштаб tj(fc), если- это необходимо, чтобы выполнялись тесты 4 и 5. 6. Проверить, является ли все еще положительно определенной матрица направлений. Если нет, задать заново т]F); в противном случае вычислить поправку для ij(ft) с помощью формулы C.4.5). Задать заново матрицу направления можно, положив ri<ft+1) = I или ц{к+1) = тД 3.4.2. МЕТОД ДЭВИДОНА —ФЛЕТ-ЧЕРА—ПАУЭЛЛА В хорошо известном методе Дэвидона [271, модифицированном Флетчером и Пауэллом [28|, выбирается матрица Atj, имеющая ранг 2. Здесь также не нужна операция обращения матрицы. Матрица на- направлений т) перевычисляется таким образом, чтобы для квадратич- квадратичной целевой функции в пределе после п шагов она равнялась Н~'. Исходная матрица tj обычно выбирается в виде единичной мат- матрицы щ = I (но может быть и любой симметрической положи- положительно определенной матрицей), так что исходное направление ми-
Методы минимизации, использующие производные 123 нимизации — это направление наискорейшего спуска. Оценка элементов Н~' в точке х* (экстремум) тем лучше, чем лучше мы выберем по сравнению с единичной матрицей исходную тц'0', однако выбор т)@) = I определенно предпочтительнее ПрираВНИВа- ния элементов щ значениям аналитических частных производных или их конечно-разностных приближений в начальной точке х@). В ходе оптимизации имеет место постепенный переход от градиент- градиентного направления к ньютоновскому; при этом используются преиму- преимущества каждого из этих двух методов на соответствующем этапе. Доказательство сходимости данного алгоритма может быть приве- приведено только для случая квадратичной целевой функции с поло- положительно определенной матрицей Гессе [см. формулу C.4.6)]. Соотношение для Дт)'*0 в алгоритме Дэвидона — Флетчера—Па- уэлла, как было отмечено ранее, можно получить путем подстанов- подстановки в уравнение C.4.4). Тогда имеем * К ' где обозначения те же, что и в формуле C.4.5). Следует отметить что вторая и третья матрицы в правой части C.4.5а) являются, симметрическими, так что если матрица ц( ' — симметрическая, то и т)<6+1) будет симметрической. Рекуррентное соотношение C.4.5а) на практике вполне удовлет- удовлетворительно, если: 1) ошибка при вычислении \f (x(ft)) невелика; 2) rfk) не становится «плохой». Роль матрицы A(fe) в формуле C.4.5а) заключается в обеспечении того, чтобы 1\ -»- Н", тогда как матрица B<fe) обеспечивает поло- положительную определенность ц{ ' на всех этапах и в пределе исклю- исключает начальную матрицу т/ К Используем формулу C.4.5а) на нескольких этапах, начиная с ч\@): (А@) + АA)) - (В№
124 Глава 3 В случае квадратичной функции сумма матриц АA) должна рав- равняться Н при k — п — 1, а сумма матриц В<1) строится так, чтобы она сократилась с матрицей, выбранной в качестве исход- исходной матрицы i)@) (здесь единичной матрицей). Таким образом, метод Дэвидона — Флетчера — Пауэлла отражает до некоторой сте- степени в текущем значении tj всю предыдущую информацию. Следует отметить, что в случае квадратичной целевой функции в алгоритме Дэвидона — Флетчера — Пауэлла используются сопряженные направления. Для того чтобы последнее направление s'™' было сопряжено по отношению ко всем предыдущим направле- направлениям, должно выполняться равенство или при s(n-!) = — -n*"-^ V/ (x<n-J)) (Х(П~У Hrj-" V/ (x-") = 0, C.4.6) где Х определяется в соответствии с уравнением C.3.8). Уравнение C.4.6) будет справедливо, если Н^"' = I или ц{п~1) — Н~', поскольку при этом оно сводится к уравнению C.3.8). Таким обра- образом, метод Дэвидона — Флетчера — Пауэлла можно отнести к катего- категории методов, использующих сопряженные направления. В случае общей целевой функции эффективность метода Дэвидона — Флет- Флетчера— Пауэлла является скорее следствием использования сопря- сопряженных направлений, чем близкой аппроксимации Н~' мат- матрицей г\. Зная теперь, что в случае квадратичной функции направления п—1 поиска являются сопряженными, можно легко показать, что 2 А@ = (=0 = Н~~'. Заметим, что из уравнения C.4.26) следует, что Ag(*'= — НДх^. При этом числитель и знаменатель A(k) соответственно {:авны Следовательно, s(° <s<°)r У А"» = У s(°<s<°)r - Н-1 C 4 7) (s('>)rHS('> где правое равенство вытекает из уравнения C.3.4а). Хотя Дэвидон в данном направлении поиска использовал толь- только один шаг длиной К*( \ которая определяется с помощью куби-
Методы минимизации, использующие производные 125 ческой интерполяции между А,* = 0 и L/l I C.4.8) a fn — наименьшее ожидаемое значение / (х), в большинстве ва- вариаций алгоритма Дэвидона функция минимизируется в каждом выбранном направлении поиска. Для определения минимума / (х) по К в данном направлении можно применить почти любую эффективную процедуру одномерного поиска (см. разд. 2.6). Очень важно, чтобы эта процедура была эффективной, поскольку относи- относительно большая часть всего времени вычисления приходится на одномерный поиск. Флетчер и Пауэлл предложили выбирать первую длину из после- последовательности X* с помощью уравнения C.4.8) либо положить А.*@) = 1. В гл. 5 при оценке эффективности этого метода исполь- используются два хорошо известных различных способа одномерного по- поиска. В приложении Б содержатся их соответствующие машинные программы. Чувствительность метода Дэвидона — Флетчера — Пауэлла к критерию окончания процесса в одномерном поиске оказалась мень- меньшей, чем можно было ожидать, в отношении как времени оптимиза- оптимизации, так и числа вычислений функции. Например, в табл. 3.4.1 приведены число шагов, количество вычислений функции и значе- значения функции Розенброка, начиная с точки х@) = [—1,2 1]г. Из таблицы ясно видно, что, хотя требуется значительно больше шагов, если одномерный поиск проведен недостаточно точно, тем не менее общее число вычислений функции и время, требуемое для минимиза- минимизации функции Розенброка, приблизительно одинаковы для разной точности одномерного поиска, хотя, пожалуй, цифры несколько лучше в случае е = 10~3, чем для е = 10 * или е = 10~5, где ё — критерий окончания одномерного поиска по отношению к %*щ [уравнение C.4.1)]: Я* <*+'> + Я* №) Опыт показал, что в некоторых задачах нельзя достичь мини- минимума целевой функции с помощью методов переменной метрики, если степень точности одномерного поиска недостаточна; поэтому рекомендуется, чтобы точность одномерного поиска была по крайней мере эквивалентна точности, требуемой для окончания основного алгоритма. Цена этого в смысле времени и (или) числа вычислений функции относительно невелика, тогда как надежность любого из этих методов значительно увеличивается. Флетчер и Пауэлл предложили, чтобы минимизация заканчива- заканчивалась в точке, где при вычислении как вектора — "n'^V/ (x<ft))> так и
126 Таблица 3.4.1 Число вычислений функции Розенброка в процессе ее минимизации до значения 10~10 при различных значениях критерия окончания одномерного поиска 8 шаг к 0 1 2 3 4 5 6 7 8 9 10 И 12 13 14 15 16 17 18 19 20 21 8 = л') 16 22 и 16 15 16 14 18 15 18 15 18 17 18 16 13 17 13 16 6 9 1 о-1 /<х>2> 1,4-10-' 2,3-10-' 1,6-10-' 1,5-10-' 1,5-10-' 1,4-10-' 1,4-10-' 1,0-10-' 1,0-10-' 6,6-10-2 6,3- Ю-2 2,5-10-2 2,0-10-2 1,6-10-2 7,2-Ю-3 5,2-Ю-3 4,1-Ю-4 1,6-Ю-4 6,6-Ю-6 1,5-10~6 7,6-10-'° 1,2-10-'° шаг к 0 1 2 3 4 5 6 7 8 9 10 11 8 = П» 27 32 24 25 25 27 27 23 25 25 19 И о—3 1 (х) 2) 1,9-10-' 1,9-10"' 1,2-10-' 8,2-10-2 4,3-10-2 2,2-10-2 1,1-10-2 3,9-Ю-3 8,6-10~4 1,7-Ю-5 2,0-10~7 8,8-10-" шаг к 0 1 2 3 4 5 6 7 8 9 10 11 8 = л') 36 31 34 34 35 36 36 33 34 35 28 9 i О—5 / (X) 2) 1,9-10-' 1,9-10-' 1,2-10-' 7,6-Ю-2 4,2-10-2 2,1-Ю-2 9,5-Ю-3 3,2-Ю-3 6,1 • 10 2,6 10—5 4,5-10~7 4,6-10-" ') п — число вычислений функции иа одном шаге. 2) Значение функции в конце шага. Общее число вычислений фуикции Относительное время Е = 10~! 320 1,14 е= Ю-3 290 1,00 8 = Ю-5 380 1,12
127 Пуск I * Если к*О,вичислить Vf(x"") и положить v<o)= i * Определит ь Л пишем минимизации f [х. '- A*Tj(k>vf cx<ki)] с по- помощью одномерноео поиска по Л* \ \ \ Вычислить \ ля№> vfCx^'b-vUx'») Вычислить ¦ ,ь\ /ь) т у*) дх^Чдас' ') вда v(k)Af\*f\W? Tfk*%i}'k\ Am-Bm *• i Да Лровери/лб} выполняются ли при /=/,..., /7 соотношения 1 г, или |ДГ<ХI >С, , U "f(OC) ~*j —/*'| f ш Xf-O 1 Останов Фиг, 3,4,2. Блок-схема метода Дэвидона — Флетчера — Пауэлла,
128 Глава 3 -Q5 Фиг. 3.4.3. Траектории поиска при минимизации функции Розенброка методом Дэвидона — Флетчера — Пауэлла (числа указывают номера шагЬв, т. е. различ- различных направлений поиска). большой начальный шаг в выбранном направлении поиска, к* => I; — ма- малый начальный шаг в выбранном направлении поиска, ?ь* = 10~3. вектора —Я,*( V V/ (х(') выполняется один из следующих двух пунктов: 1. Каждая составляющая этих двух векторов меньше, чем некоторая наперед заданная величина. 2. Вычисленная длина (\\ || ) каждого из этих векторов в точке минимума меньше наперед заданной величины. В гл. 5 при сравнении различных методов вместо этих показа- показателей успешно применены два других критерия окончания про- процесса, приведенные на фиг. 3.4.2, где представлена блок-схема метода Дэвидона — Флетчера — Пауэлла. На фиг. 3.4.3 приведены
Методы минимизации, использующие производные 12Э траектории алгоритма Дэвидона — Флетчера — Пауэлла для функ- функции Розенброка при двух различных величинах начальных ша- шагов в одномерном поиске X* = 1 и X* = 10~3; эти траектории совершенно аналогичны приведенным на фиг. 3.4.1. Пример 3.4.1. Метод Дэвидона — Флетчера — Пауэлла Проиллюстрируем применение метода Дэвидона — Флетчера — Пауэлла на примере следующей задачи: минимизировать 4 (хх — 5J + (*в — бJ. В соответствии с изложен- изложенным выше алгоритмом исполь- 12 зуем следующее рекуррент- рекуррентное соотношение: 10 где „<*> уравнением 8 I_ и \у ' задается C.4.5а). Пусть Ti@) = I и началь- начальный вектор х<0) = [8 9]г. То- Тогда новый вектор х вычис- вычисляется по формуле (а): О 2 4 6 8 от, Фиг. П.3.4.1. Траектория поиска алго- алгоритма Дэвидона — Флетчера — Пауэлла. Поскольку целевая функция весьма проста, то для наглядности можно определить Я,*@) путем минимизации / (хA)) по К*, исполь- используя аналитические методы вместо процедуры поиска: / (хA)) = 4 [(8 - 24?,*) - 5]2 + [(9 - 6Я*) - б]2, -^1 = = 0 = 51—390?,*, или Я,* @) = 0,1307. Итак, на этом шаге хA) = [4,862 8,215]г, а /(х) = 4,985, как показано на фиг. П.3.4.1. В точке хA) V/(xA)) = [—1,108 4,43 if,
130 Глава 3 так что = [-25,108 — 1,569]г. Затем вычисляется kiA): Г—3,13 01 Г—3,13 —0,7851 „) П 0] , [-0,785 oj[ О О j + Г1 01 Г-25,108 01 Г—25,108 —1,5691 Г1 О [О ij[— 1,569 oj L 0 О J[0 I -2 Л 1,270-10-' —3,149-10 = [—3,149- 10~2 1,0038 Теперь снова по уравнению (а) можно вычислить х : 2)]_|Ч862]_ Г 1,270-10-' 3,149-Ю-2] Г-1,108 "8,215 1-3,149.10-2 1>0038 Л 4,431 Как и ранее, Я,*A) получается путем минимизации / (хB)) по %*. Последующие шаги оптимизации сведены в табл. П.3.4.1а, Таблица П.3.4.1а Шаг k 0 1 2 3 М к\ 8,000 4,862 5,000 5,000 x(k) 9,000 8,215 6,000 6,000 дЦхЩ дх, 24,000 —1,108 3,8 МО 0 d/fxW) дх2 6,000 4,431 2,55-Ю-9 0 45,000 4,985 9,06 Ю-15 0 *•» 0,1307 0,4942 1.С00 Шаг О Г 1,250 [—8,882 1 0 1 0 1 j ю-' ю-16 Шаг 2 —8,882- 5,000 10 10 1,270 —3,149 • ю-1 •Ю-2 1,250- -1,387- Таблица П.3.4.16 Шаг 1 -3,149-10—21 1,0038 J Шаг 3 Ю-1 1,387-Ю7] 10~'7 5,000-10~' J
Методы минимизации, использующие производные 131 В табл. П.3.4.16 приведены величины элементов матрицы т) на каждом шаге поиска, которую можно сравнить с матрицей, обрат- обратной матрице Гессе Н~', в точке х* == [5 б]т: Н= 1 и Н- j i О На практике оказалось, что в методе Дэвидона — Флетчера — Пауэлла и других методах переменной метрики могут иногда встре- встречаться отрицательные шаги, или эти методы могут оканчиваться в нестационарной точке. Бард [291 показал, что такое течение про- процесса является следствием того, что матрица т) становится сингу- сингулярной. Если матрица г\ становится почти сингулярной, то направ- направления поиска могут быть выбраны так, как в случае, если бы в задаче были плохо выбраны масштабы переменных, несмотря на то что на самом деле это не так.. «Почти сингулярности» можно избежать путем увеличения числа получаемых значащих цифр при вычислениях или путем масштабирования элементов вектора х с тем, чтобы сделать порядок диагональных элементов А<0) близ- близким к единице. Если же эти операции недопустимы, т. е, если косинус угла между v / (х{к)) и v\{k) v/ (x(ft>) меньше, чем 10", матрицу т) можно перезадать в виде диагональной матрицы, у кото- которой элемент % представляет собой отношение t-ro элемента Дх№) к г-му элементу yf (x(fe>). Были предложены и другие методы, в которых поиск начинается заново с пересмотренной матрицей на- направлений; несколько подобных примеров приведено в гл. 5. Осталось рассмотреть последний вопрос: может ли метод Дэви- Дэвидона — Флетчера — Пауэлла успешно применяться в том слу- случае, когда оценивание производных осуществляется с помощью разностных схем? Если да, то исчезнет неудобство, заключающееся в необходимости получения аналитических формул для вычисления производных, и процедура Дэвидона приблизится к методам, не включающим вычисление производных (методам поиска). Здесь следует обратить внимание на то, что ошибки округления и аппро- аппроксимации при вычислениях могут сместить оценки производных. Стюзрт [30] показал, как компоненты градиента можно оценить с помощью отношений разностей, распространяя таким образом метод Дэвидона на задачи нелинейного программирования (без ограничений), в которых производные или вообще не могут быть найдены аналитически, или это нельзя сделать достаточно легко. Информация, получаемая в процессе минимизации, используется для определения оптимального размера шага в разностных
132 Глава 3 уравнениях. Хотя модифицированный метод Стюарта вычисления приближенных значений производных очень эффективен в некото- некоторых задачах, он иногда либо совсем не годится, либо приводит к существенно большему числу вычислений функций для достиже- достижения той же степени точности, которая получается методом пере- Таблица 3.4.2 Сравнение методов переменной метрики ', использующих разностные оценки производных, с алгоритмом Пауэлла на примере пяти тестовых задач (Приведенные числа представляют собой количество вычислений функции.) Метод Пауэлла 2> Дэвидона — Флет- Флетчера— Пауэлла (а) (б) Бройдена (а) (б) Задача 2 (приложе- (приложение А) 262 132 121 139 112 Задача 29 (приложе- (приложение А) 136 1625 1123 4336 Задача 32 (приложе- (приложение А) 700 305 205 167 Не приводит к ре- решению Задача 34 (приложе- (приложение А) 86 218 231 230 176 Задача VI, табл. 5 (приложение А) 291 702 Не приводит к ре- решению 1251 Не приводит к ре- решению '' Включающих одномерный поиск ДСК-Пауэлла. 2> См. гл. 4. (а) г] = 10—8, m = 10~8, 6 = 10~7. (б) 10—I4. m = 10—14. 6 = 10—13. менной метрики, использующим аналитические выражения для производных. В табл. 3.4.2 сравниваются количества вычислений функции для алгоритма Пауэлла, одного из лучших алгоритмов, не использую- использующих производные, и алгоритмов Дэвидона — Флетчера — Пауэлла и Бройдена, в которых аналитические выражения производных заме- заменены оценками производных по методу Стюарта. В методе Стюарта требуется, чтобы пользователем были заданы следующие три про- произвольных параметра: т] — порядок значащих цифр, допускаемых ЭВМ; m — верхняя граница отрицательного логарифма отношения ошибки текущей оценки производной к предыдущей оценке произ- производной; б — величина шага, который должен быть использован при вычислении компонент первых двух градиентов,
Методы минимизации, использующие производные 133 Как т], так и m зависят от используемой вычислительной машины, тогда как б связана с минимизируемой функцией. В табл. 3.4.2 приведены результаты для двух систем значений упомянутых параметров. В нее не включены данные для алгоритмов Дэвидона — Флетчера — Пауэлла и Бройдена, применяющих аналитические производные (эти данные можно найти в гл. 5), поскольку трудно решить, какой вес придавать трудоемкости операций по вычислению производных относительно операций по вычислению функций. Результаты, полученные для случая изогнутого оврага (задача 34 из приложения А) и функции Розенброка (задача 2 из приложе- приложения А), отличаются от опубликованных Стюартом, но это и не удивительно, поскольку использовались различные б и разные крите- критерии окончания процесса. Во всех задачах, кроме задачи 2, началь- начальный выбор б = 10~7 давал оценки производных с малой началь- начальной ошибкой, но в последующем ошибка становилась существен- существенной. В одной задаче такая ошибка случайно уменьшила число вычислений функции до величины, меньшей, чем имеет место в ана- аналитических процедурах. С другой стороны, при б = 10~13 полу- получали большие начальные ошибки. Поскольку компоненты двух начальных градиентов должны вычисляться на основе параметров, задаваемых пользователем, не стоит рекомендовать методы Стюар- Стюарта как более предпочтительные по сравнению с методами, исполь- использующими аналитические производные, и, как видно из табл. 3.4.2, метод Стюарта, как правило, не будет таким же эффективным, как алгоритм Пауэлла. 3.4.3. АЛГОРИТМЫ ПИРСОНА Пирсон [31 ] предложил несколько методов вычисления матрицы 1), использующих сопряженные направления поиска. Алгоритмы Пирсона можно получить, задавая различным образом векторы у и z в уравнении C.4.4). 1. Алгоритм Пирсона № 2. Положим в уравнении C.4.4) у = = z = Ax(fe>, а со = 1. Тогда C.4.9) Vo> = R@>, где R<0) — произвольная положительно определенная симметриче- симметрическая матрица. Алгоритм Пирсона № 2 обычно приводит к «плохим» матрицам направлений. Фиг. 3.4.4 иллюстрирует задачу 35 из приложения А, для которой (начиная из х( ' = [2 0,2]г при т| } = I)
134 Глава 3 была получена следующая последовательность матриц направ- направлений: Шаг 0 1 2 3 4 Матрица направлений т)^' 1 и 1 j 0,36754 0,15788] 0,99148 0,75250J Г 0,36636 0,15383] [0,88737 0,39527] 10,35793 0,11330] [0,85656 0,32020j [,35576 0,12809 [0,85077 0,30633 Определитель цМ 1,00000 0,12004 0,00831 0,00043 —0,00001 Таким образом, через четыре шага матрица направлений пере- перестает быть положительно определенной и на последующих шагах остается «плохой», колеблясь между положительно определенной и не положительно определенной. Повторение начала алгоритма через каждые п шагов (т. е. приравнивание т](*+1) к R@) после каждых п шагов) помогает избежать трудностей подобного рода. 2. Алгоритм Пирсона № 3. Положим в уравнении C.4.4) у = z = = т| Ag , а <й = 1. Тогда [ц (Ag )] , C.4.10) т] = К . Траектория поиска алгоритма Пирсона № 3 при минимизации функ- функции Розенброка по существу та же, что и изображенная на фиг. 3.4.3, за исключением того, что на каждом этапе делаются мень- меньшие шаги. Пирсон исследовал также разновидность этого алгоритма с циклическим перезаданием матрицы г\, 3. Проективный алгоритм Ньютона — Рафсона. Пирсон пред- предложил так называемый проективный алгоритм Ньютона — Рафсо- Рафсона (PNR), который может быть получен из уравнения C.4.4) при со оо и z v\(k)Ag{k): ^^^ ^ C.4.11) Уравнение C,4,11) аналогично алгоритму Заутендайка [описан-
Методы минимизации, использующие производные 135 Колебания, начавшиеся в точке jc(*> -1,00 L Фиг. 3.4.4. Задача 35, приложение А. ному в разд. 3.3.4], если проектирующую матрицу в уравнении C.3.12) заменить матрицей направлений v\{k). Величина (fe(fe является проекцией Ag ', ортогональной G , и на каждых п Шагах R(ft> является аппроксимацией Н~' (x(fe)), так что в сущ- сущности осуществляется (приближенно) поиск Ньютона. Когда k (k) кратно п, числу независимых переменных, матрица ц заменяется на R(ft), Тогда d№+') „ d№) i (Ax<fe> C.4.12) Некоторые результаты, относящиеся к алгоритмам Пирсона, включены в материалы по оцениванию алгоритмов, приведенные а гл. 5,
136 Глава 3 3.4.4. ДРУГИЕ МЕТОДЫ УЛУЧШЕНИЯ НАПРАВЛЕНИЙ Гринштадт [32] вывел общее соотношение для А^ путем миними- минимизации с помощью множителей Лагранжа нормы Ах\, определенной следующим образом: N (Дц) = Тг [WAV*' W (Atj№))r] (где W — положительно определенная симметрическая матрица) при условиях 1) Ат)№) всегда симметрическая: Atjw = (Ат)№))г; 2) i\ik+l) Ag(ft> = Ax(ft), или имеет место его эквивалент — уравне- уравнение C.4.2в). Полученное соотношение имеет вид + W-'Ag№) (Axft))r - 4(*>Ag№ (Ag№))r W-1 - W~V (Ag(ft)) V( .HT1 , m [(Ag№))rAx№) - C.4.13) Гринштадт рассмотрел два варианта: W~' = r]<fc) и W = I; однако применение уравнения C.4.13) в тестовых задачах в слу- случае W~' = I дало плохие результаты, тогда как>У~' = ц{к) привело к результатам, вполне сравнимым с результатами, полученными с помощью алгоритма Дэвидона — Флетчера — Пауэлла. В работе Голдфарба [33J указывается, что если положить W1 = = iy , то получается следующее уравнение: -(ЗЛ14) Если же принять W~' = y[k+l), то AilS*' - Наконец, если взять W~' = г]№+1> — r\{k) = Дц№), то получается урав- уравнение C.4.5) (даже если W~' и не имеет обратной матрицы, по- поскольку Ацт в уравнении C.4.5) имеет ранг 1). Аналогично к урав-
Методы минимизации, использующие производные 137 нению C.4.5) приводит подстановка ИЛИ W-1 - «W _ Ax'fe)(Ax'fe))r Уравнение C,4.5а) можно получить, положив = f(Ag(Y Л№+1> Ag( W+" - KAg(Y № g'W = = „<*+'> _ Г (Ag'fe))rAx^ I1/' 4 [ (Ag^T^'AgW J Выражения C.4.14) и C.4.15) дают поправки к т)( \ обеспечи- обеспечивающие квадратичное окончание процесса для случая строго вы- выпуклой квадратичной целевой функции, так же, как это имеет место и при использовании формул C.4.5) и C.4.5а). Тем не менее только формула C.4.5а) и C.4.15) сохраняют положительную определенность ц. Голдфарб показал, что каждое из уравнений C.4.5), C.4.5а), C.4.14) и C.4.15) может быть записано в виде линейной комбинации остальных, и в частности А% = 7АЛC.4.5а) + A — V) ДЛC.4.5). Д%1 = 7~'Д11C.4.5а) + A — Y) ДЛC.4.5), где У Следовательно, в общем случае можно записать Aif> = aAi]№) + A — a) Aijj*). C.4.16) Выбирая различные а, можно получить любое из полученных выше уравнений для Atj(fc). 3.4.5. МЕТОД ФЛЕТЧЕРА Во всех описанных выше процедурах минимизации после вы- вычисления направления поиска целевая функция минимизируется в этом направлении при помощи одномерного поиска. Поскольку наибольшее количество вычислений приходится на операции
138 Глава 3 одномерного поиска, естественно возникает вопрос, будут ли доста- достаточны для решения задачи один или несколько шагов минимиза- минимизации. Флетчер [34] предложил алгоритм, в котором отброшено усло- условие квадратичного окончания процесса, т. е. окончания процесса за п шагов в случае квадратичной целевой функции, но в то же время сохранено свойство, состоящее в том, что для квадратичных функций матрица направлений ц -*¦ Н (х) в том смысле, что со- собственные значения х\ стремятся к собственным значениям Н~'. Заметим, что соотношение для Ах?к), которое входит в уравнение C.4.3), основано именно на этом свойстве при условии выполнения следующего равенства: Л(*-М>дё№> = дх»), т. е. Улучшающее соотношение Флетчера основано на рекуррент- рекуррентном соотношении для обратных матриц >г 1 C.4.17) соотношении, которое приводит к равенству (r\^+l'>)~1 Axlk) = Ag№\ Поменяв в C.4.17) местами Ах№) с Ag№) и rf+1) с (rf+У1, при- приходим к рекуррентной формуле <И-0 _ Г, Ax№)(Ag№>)H №)Г __ 1 *"[ (Ax<VAg<»J4 [ Описываемый алгоритм использует соотношение C.4.5а), если ( и C.4.18), если (Ag(ft))rH-' (x(ft)) Ag№> Можно также использовать линейные комбинации уравнений C.4.18) и C.4.5а). Из рассмотрения тестовых задач, описанных в гл. 5, видно, что в большинстве случаев направления, получен- полученные на первых этапах оптимизации, основаны на уравнении C.4.5а), а уравнение C.4.18) применяется лишь на последних этапах. По- Поскольку матрица г\, вычисленная с помощью уравнения C.4.5а), стремится к нулю с увеличением числа шагов, a tj, вычисленная с помощью соотношения C.4.18), стремится к бесконечности, имеет смысл применять оба типа уравнений. Тем не менее эффективной !> процедуру Флетчера делает скорее не метод вычисления ц, а кубическая интерполяция при отыска- ' Поиск ДСК-Пауэлла с масштабированием (см, приложение Б) оказывается не менее эффективным.
Методы минимизации, использующие производные 139 нии минимума в данном направлении и ограниченная длина шага. При этом скаляр % выбирается с помощью уравнения, аналогичного C,4.8): -2[/(х'*>)-/ниж] где /„„ж — нижняя оценка значений / (х). (Если / (х) оказывается ниже, чем fmx, то имеет место окончание процесса.) Для достиже- достижения минимума в направлении поиска используется кубическая интерполяция на интервале, между x(fe> и х(к) + К' s(ft). Поскольку для проведения кубической интерполяции не требуется использо- использование всего интервала, содержащего минимум, и результат интер- поляции может.оказаться неудовлетворительным, если х ' нахо- находится на вогнутой части аппроксимирующего полинома, Флетчер ограничил значение К следующим образом: либо оно должно быть меньше, чем значение X', получаемое с помощью кубической интер- интерполяции, либо где верхний индекс s обозначает номер в последовательности шагов при одномерном поиске. После каждого шага проводится тест Я<5> V2"/(х( V*> и если он удовлетворен, то этап считается завершенным. В против- противном случае продолжается кубическая интерполяция. Окончательно процесс завершается, когда Д^ < н = 10~5. Во избежание большого влияния ошибок округления или ошибок программ вычисления про- производных программа останавливается, когда f (х(*+1)) > f (x№)) и (Дх<Удб№+1)<0 и (или) (Дх(Удб№)>0. Используя ряд тестовых задач, Флетчер сравнил приведенный выше алгоритм с алгоритмом Дэвидона — Флетчера — Пауэлла и показал, что он столь же эффективен, как и последний. При этом оказалось, что число итераций в каждом направлении поиска уменьшилось, однако для компенсации пришлось увеличить число направлений поиска. В гл. 5 приводятся некоторые результаты применения алгоритма Флетчера к другим тестовым задачам. 3.4.6. АППРОКСИМАЦИЯ МАТРИЦЫ ГЕССЕ Вместо аппроксимации Н~' (x(ft+1)), как это делается в уравнении C.4.3), можно аппроксимировать матрицу Н(х<*+1)), а затем по- построить обратную к ней. Таким образом, Н (х(*+1))« Г№+1) = Г№> + ДГ(*>, C.4.19)
140 Глава 3 где Г№) — оценка Н (х№)), а матрица ДГ№) — симметрическая матри- матрица ранга 1, такая, что Г№+1) удовлетворяет уравнению г№+1)Дх№) = = Ag. При этом ЛГ(*> - t(Ag(ft)) - Г<*>(Лх'*>)] [(Ag'fe)) - Г'*> (Ax<*>)f „ . 9П Условия сходимости здесь те же, что и описанные в подразд. 3.4.1. Поскольку (Г(*+1))~' может не быть положительно определенной, следует использовать ограничительные предположения, сделанные в разд. 3.2, для обеспечения положительной определенности. В ка- качестве исходной Г@) можно выбрать (ц'0'). Соотношение C.4.20) аналогично C.4.5), если иметь в виду, что в случае квадратичной аппроксимации Ag'*' = НАх'*' (здесь) и Ax(ft) = = flr'Ag**' (в подразд. 3.4.1). В принципе возможно записать выра- выражения для АГ'*', эквивалентные приведенным в подразд. 3.4.2—3.4.4, но сомнительно, будет ли при этом уменьшаться объем вычислений при решении задачи оптимизации, поскольку обращение матрицы должно будет производиться на каждом этапе. Рассмотрим далее алгоритм Голдштейна и Прайса [35], оказав- оказавшийся достаточно эффективным при решении ряда задач. Хотя этот алгоритм и не попадает строго в категорию методов переменной метрики, тем не менее здесь на каждом этапе проводится аппрокси- аппроксимация Н (х) при помощи разностной схемы, основанной на полуфак- ториальном построении, а затем осуществляется обращение мат- матрицы. При этом для оценки Н (x(fe)) требуется лишь информация о / (x(ft)) и v/ (x(fc>). Голдштейн и Прайс утверждают, что данный алгоритм минимизирует / (х), если она представляет собой выпук- выпуклую целевую функцию, при условии выполнения некоторых срав- сравнительно простых ограничений. На k-м этапе алгоритм выглядит следующим образом (величины 0<б<1/2 и г>0 задаются заранее): Шаг 1. Вычисляется в качестве аппроксимации Н(х(/г>) матрица Н (x(fe>) размерности п х и, /-й столбец которой определяется по формуле где в(*> = г|ф(х(*-1)| для 9@) = г, I/ = /-й столбец единичной матрицы I размерности п х п.
Методы минимизации, использующие производные 141 Ф (х(*') — вектор-столбец, определяемый по формуле — v/ (х(*>), если k = 0 или Н (х(*>) сингулярна, или [V7) (x(fe)) Н~' (х(к) yf (x(k))] < 0, ~' так что Н~' не является положительно опреде- определенной; — Н (х(к)) v/ (\(k)) в противном случае. Заметим, что Н (x(fe)) не обязательно симметрическая матрица, и если то предлагаемое направление поиска ф (x(ft)) и направление гра- градиента V/ (х</()) отличаются более чем на 90°. Поскольку поиск проводится в «минус»-направлении, то отрицательный знак при квадратичной форме приводит к компоненте в направлении поло- положительного градиента. Шаг 2. Вычисляется Выбирается %{к) так, чтобы б < F (х(к\ 1) или б < F {х(к\ К{к)) < 1 — — б, К{к)Ф\. Эти критерии нужны для того, чтобы не допускать шагов поиска, которые далеко выходят за область линейного изме- изменения целевой функции в окрестности х(*', предполагавшуюся при аппроксимации Н (х). Шаг 3. Берется х(*+1) = х(*> + к% (х(*>). Шаг 4. Процесс заканчивается, когда || ф (х(*')| < е. Таким образом, если матрица Н (х(*') сингулярна, или не при- приводит к «направлению вниз», этот метод сводится к методу наиско- наискорейшего спуска. Параметр г следует выбирать так, чтобы матрица Н (х(к)) аппроксимировала Н (х{к)) как можно ближе. Величина б выбирается так, чтобы значения f (х{к)), k = 1, 2, ..., представляли собой монотонно убывающую последовательность; чем ближе зна- значение б к 1/2, тем в большей степени f (xw + tap (x(*')) прибли- приближается к своему минимуму по к. Голдштейн и Прайс отметили, что этот алгоритм по своей эффективности в отношении необходимого объема функциональных и градиентных вычислений при решении задачи Розенброка эквивалентен алгоритму Дэвидона — Флет- чера — Пауэлла. Для задач с плохо выбранными масштабами пе- переменных он оказывается менее удовлетворительным, посколь- поскольку при этом фактически осуществляется движение по методу
142 Глава 3 наискорейшего спуска. Наиболее интересной чертой данного алго- алгоритма является сравнительно малое число шагов одномерного поис- поиска, приходящихся на каждое новое направление движения (этап): около одного-двух на этап. Некоторые результаты применения этого алгоритма для решения тестовых задач приведены в гл. 5. 3.5. КРАТКИЙ ОБЗОР АЛГОРИТМОВ ПРОГРАММИРОВАНИЯ БЕЗ ОГРАНИЧЕНИЙ В этой главе были рассмотрены некоторые методы оптимизации без ограничений. В табл. 3.5.1 приведены в виде сводки для основ- основных алгоритмов рекуррентные соотношения, используемые для вычисления r\ {xik)) s= tj(*' или s(fe), входящее в соотношение Дх(*> = x(*+" - х(*> = Л(*> = -K*l\ (x{k) V/ (x(/i)). Сравнение относительной эффективности алгоритмов мы отложили до гл. 5., так чтобы методы поиска, описанные в гл. 4, также могли быть включены в это сравнение. ЗАДАЧИ 1) 3.1. Ответьте на следующие вопросы относительно метода наи- наискорейшего спуска: а) Если целевая функция (без ограничений) плохо масштабиро- масштабирована, каким будет начальное развитие поиска: медленным или быстрым? Каким будет движение вблизи экстремума: быстрым или медленным? б) Если выбрано направление градиентного поиска в точке х(&), как нужно выбрать размер шага, чтобы достичь следующей точки х(Ж)? 3.2. Докажите, является ли метод наискорейшего спуска методом, использующим сопряженные направления при минимизации квад- квадратичной функции с положительно определенной матрицей Гессе. 3.3. Что является направлением наискорейшего спуска в точке х = [1 1]г для целевой функции / (х) = х\ + 2x%? Является ли эта функция плохо масштабированной? 3.4. Определите вектор, представляющий собой направление наискорейшего подъема в точке х = [1 1]г для целевой функции в задачах 2.1а, 2.6а, 2.13, 2.32. 3.5. Проведите два шага оптимизации методом наискорейшего спуска, начиная из х = [1 1 ]т для целевой функции / (х) = х\ + 2х|. ' Дополнительные задачи, которые можно использовать при изучении этой главы, можно найти в списке задач, помещенном в конце гл. 4.
Методы нелинейного программирования без ограничений, использующие производные Таблица 3.5.1. Метод Раздел Рекуррентное соотношение Наискорейшего спуска Ньютона Гринштадта Маркуардта Бройдена, ранг 1 Дэвидона — Флетчера — Пауэлла Пирсона № 2 Пирсона № 3 Проективный Ньютона Проекции Заутендайка (если Р = tj) Гринштадта и Голдфарба Флетчера Флетчера — Ривса 3.1.1 3.2 3.2 3.2 3.4.1 3.4.2 3.4.3 3.4.3 3.4.3 3.3.4 3.4.4 3.4.5 3.3.2 Аппроксимации Н (х) Голдштейиа и Прайса 3.4.6 3.4.6 = — [VV (х Ч ~\ (AgfT, tj(*+1)= ti<ft)+ уравнение C.4.13) _(*+!) _ уравнение C.4.18) i Vr/(x»)Vf(x<*») I j Применяется разностная схема для аппроксимации элементов Н (x(fc)) или используется (*>
144 Глава 3 Сначала используйте фиксированную величину шага. Затем мини- минимизируйте / (х) на каждом шаге либо численно, либо аналитически. 3.6. Рассмотрите следующие целевые функции: а) J? б) / (х) = (хг + 5J + {х2 + 8J + (х3 + 7J + 2х\х\ Будет ли метод Ньютона сходиться для этих функций? 3.7. Рассмотрите минимизацию целевой функции f (х) = х\ + ххх2 — х\х\ методом Ньютона, начиная из точки х@) = [1 1]г. Машинная про- программа, тщательно составленная для метода Ньютона, оказалась неудачной. Объясните возможную причину (причины) неудачи. 3.8. Что является начальным направлением поиска по методу Ньютона для задачи 3.3? Какова длина шага? Сколько понадо- понадобится шагов (направлений поиска) для решения задачи 3.17, для решения задачи 3.37? 3.9. Объясните топологию следующих целевых функций, ис- используя фиг. 3.2.2 и табл. 3.2.1: а) 3*! + 2x1 б) 3 + 2хх + Зх2 + 2х\ + 2ххх2 + 6x1; в) 3 + 2*! — Зх2 + 2х\ + 2х^г + 6x1; г) 2>х\ — 4хгх2 + х\. 3.10. Аппроксимируйте целевую функцию из задачи 3.34д с помощью квадратичной функции. Интерпретируйте топологию целевой функции, используя аппроксимирующую функцию. 3.11. Является ли матрица Гессе для / (х) = Ъх\ + Ъх\ + х\ — — 2хххг всегда положительно определенной? Выясните то же для 2х\ — х\ — ххх2. 3.12. Как можно аппроксимировать матрицу Гессе для функ- функции / (х) = 2xi — 2x1 — хххг с помощью положительно определен- определенной матрицы (а) методом Гринштадта, (б) методом Маркуардта? 3.13. Что можно сказать о сходимости метода Ньютона, исходя из рассмотрения матрицы Гессе целевой функции в задачах 3.346, 3,34д, 3.36? 3.14. Какие типы поверхностей представлены следующими выражениями (имеется в виду классификация, представленная на фиг. 3.2.3 и в табл. 3.2.1): а) х\ — ххх% + х\; б) х\ + 2ххх2 + х\; В) 2л:? + 2х\ + 8x1 — 4х%х2 + \2ххх3 + 8хгх3?
Методы минимизации, использующие производные 145 3.15. Задана функция / (х) = х\ + xl +2л| — хххг; образуйте систему сопряженных направлений. Проведите два этапа миними- минимизации в сопряженных направлениях, минимизируя / (х) в каждом направлении (т. е. на каждом шаге). Изобразите траекторию поиска и несколько линий уровня целевой функции. 3.16. При каких значениях х направления 1 — Уз 1 Уз 1 Уз" 2 Уз о являются сопряженными для функции / (х) = х\ + ххх2 + НУ линейно независи- независи3.17. Являются ли направления мыми? Ортогональными? Сопряженными? 3.18. Возможно ли, чтобы ортогональные направления были сопряженными направлениями? Объясните. 3.19. Покажите, что направления поиска sA) = [0,453—0,892]т и sB) = [0,608—0,794 ]т, используемые при минимизации функции Розенброка / (х) = 100 (*2—*iJ+ (I— xxf в точке х= [—0,702 0,462]г, сопряжены. 3.20. Покажите, что выражение C.3.14) является правильные весовым множителем для метода сопряженного градиента. 3.21. Дают ли одну и ту же последовательность направлений поиска sA>, sB) и т. д. методы, использующие сопряженные направ- направления и начинающиеся из одной и той же исходной точки х@) и с одним и тем же s( '? Ответьте да или нет и приведите простой пример для объяснения ответа. 3.22. Сравните методы переменной метрики по трем показа- показателям: а) значениям элементов матрицы направлений; б) направлениям поиска; в) векторам х для выбранных вами задач по нескольким этапам, начинающимся с одного и того же вектора х. 3.23. Для каждого из методов переменной метрики, приведен- приведенных в разд. 3.4, укажите значения элементов матрицы направле- направлений на первых трех этапах поиска для задач 3.34г, 3.37, 3.40а, 3.24. Вычислите матрицу направлений с помощью выбранного вами метода переменной метрики для одной из целевых функций, приведенных в задаче 3,39,
146 Глава 3 3.25. Дана начальная матрица направлений ц@) = I; что пред- представляет собой цA) по алгоритму Дэвидона—Флетчера — Пауэлла, если /(х) = 4 + 24, а х@) = [1 if? 3.26. После начального поиска при минимизации функции Розенброка матрица направлений в точке хA) = [1,441 2,078]г имела вид 3,467 • Ю-11 8,578- Ю-1]' Каково будет следующее направление поиска в выбранном вами методе? 3.27. После 13 этапов минимизации функции Розенброка машин- машинная программа остановилась в точке х = [1 1]г. В этой точке гра- градиент в сущности —нулевой вектор. Какова будет матрица направ- направлений в выбранных вами методе и задаче? 3.28. Использует ли алгоритм Голдштейна — Прайса сопря- сопряженные направления? 3.29..Выведите рекуррентное уравнение для вычисления мат- матрицы направлений с помощью (а) алгоритма Дэвидона — Флет- Флетчера — Ривса, б) алгоритмов Пирсона, в) алгоритма Бройдена, если нужно максимизировать, а не минимизировать целевую функ- функцию. 3.30. Все алгоритмы гл. 3 выражены в виде задачи минимиза- минимизации. Как простейшим способом использовать эти алгоритмы для максимизации, а не минимизации? 3.31. На седьмом этапе метода Дэвидона — Флетчера — Пауэл- Пауэлла для случая функции Розенброка были получены следующие значения: f (х) = 0,19469; хх = 1,4409; х, = 2,0779; Щ{у?)\дхх = —0,1455; df(\)/dx2 — 0,3565; матрица направлений 0,1544 —0,34671 __ 0,3467 0,8577 J' Каковы будут направления поиска на последующих двух эта- этапах? 3.32. Целевая функция / (х) = A + 8* - 7x1 + -f *? - 4" ) является бимодальной и имеет седловую точку в х = [2 2 ]т, где / (х) = 2. Определите, какой из локальных оптимумов является глобальным. Проведите один этап поиска, начиная из седловой точки. Для облег-
Методы минимизации, использующие производные 147 чения решения проведите линии уровней функции / (х) на плоскости 3.33. Решите каждую из следующих систем уравнений путем минимизации суммы квадратов разностей 2 (dt — ОJ: а) xt + 3 lg xx — xl = 0, 2л;? — хххг — 5xx + 1 = 0; б) *? + (х2-1J-5 = 0, (^_1)* + ^—1 = 0. в) Систему 24 нелинейных уравнений с 24 переменными, пред- предложенную Пэком и Суоном [361. 3.34. Минимизируйте следующие функции двух независимых переменных: а) ± {1 - cos 360 [B* - IJ + Bу - If}42} [l - {У~^ ]; б) y + sinx; в) _1@_*)* + A-*)»; г) _ха + л:-г/2 + у + 4; 3.35. Предприниматель может производить товар А с затрата- затратами в 20 центов за фунт и товар В с затратами в 10 центов за фунт. Служащие, занимающиеся вопросами сбыта, полагают, что фирма может продавать 1 000 000/х2у фунтов товара А в день и 2 000 0001ху2 фунтов товара В в день, х — продажная цена А в центах за фунт, а у — продажная цена В в центах за фунт. Определите максималь- максимальную прибыль, если А и В продаются по одной и той же цене. Чему равны в этом случае хну? Определите максимальную прибыль, если А и В продаются по разным ценам. Чему равны при этом х и у? 3.36. Ежегодные расходы, связанные с эксплуатацией газового компрессора на трансконтинентальном газопроводе, выражаются формулой __ KQZ где С — эксплуатационные расходы, долл/год; Q — количество накачиваемого газа, фут8/день; L — расстояние между компрессорными станциями, мили; Рг — давление на выходе, фунт/кв, дюйм;
148 Глава 3 Р2 — давление при всасывании, фунт/кв. дюйм; D — диаметр трубопровода, дюйм; К, Къ %> s> b — константы. Кроме того, П2,6 /п2 р2-,0,54 п— к ( ' ~ 2' ^ А2 ^0,5420,54 При Z = 1, К = 1370, L = 20, Ь = 1,476, Кх = 0,081, s = 100 и /*С2 — 1,13 определите Рх и Р2, минимизирующие С. 3.37. Максимизируйте следующую целевую функцию: f (х) = х\ ехр [х2 — х\ — 10 (хх — х,J]. Сравните траектории оптимизации в пространстве х при использо- использовании следующих методов: а) наискорейшего спуска; б) модифицированного партан-метода; в) метода Ньютона; г) метода переменной метрики; д) Флетчера — Ривса; е) Голдштейна — Прайса. 3.38. Максимизируйте следующую целевую функцию: f (х) = @,35 + 0,40^ + 0,31x2L @,85 — 0,60^ + + 0,85x2L ехр [2,00 — @,35 + 0,40^ + 0,35*2L — — @,85 — 0,60^ + 0,85x2)*]. Сравните траектории оптимизации в пространстве х при использо- использовании следующих методов: а) наискорейшего спуска; б) продолженного (модифицированного) партан-метода; в) метода Ньютона; г) метода переменной метрики; д) Флетчера — Ривса; е) Голдштейна — Прайса. 3.39. Начиная с точки \ik) — [1 — 23lr, определите точку x(fe+1>: 1) методом наискорейшего спуска; 2) модифицированным партан- методом; 3) методом Ньютона; 4) методом Дэвидона — Флетчера — Пауэлла; 5) методом сопряженного градиента для следующих целевых функций: a) б) f (х) = 2х\ + 2хгх2 + 3x1 + х3; в) \ l
Методы минимизации, использующие производные 149 3.40. Минимизируйте следующие функции, начиная с вектора х@) = [2 -2,5 2 -2,5]г: a) f(x) = x2l+xl + xl + xi; б)/(х) = (х1-х2J + (д;3-х4J; в) f (х) = х\ + х2 + х\ + хх + 16*?*, + 8xlx3 + xfx4 + 2. 3.41. Функция, описанная Уилингом [37], позволяет оценивать способность того или иного алгоритма преодолевать разрывы. Эта функция имеет форму пирамиды в трех измерениях, а ее линии уровня на плоскости хъ х2 представляют собой ромбы с разрывами вдоль главных осей. Найти максимум / (х), а также х*: а) методом наи- наискорейшего спуска; б) модифицированным партан-методом; в) мето- методом Ньютона, г) методом переменной метрики; д) методом сопря- сопряженного градиента. (Максимум имеет место в начале координат.) Уилинг начинал оптимизацию с точки х@) = [10 10]г, где / (х) = = —40; попробуйте другие начальные векторы. 3.42. Если целевая функция имеет общий вид (9, (а) то можно показать, что максимум f(x) имеет место в точке, соот- соответствующей максимуму каждого сомножителя, т. е. в точке х{ = i. Используйте функцию (а) в качестве тестовой функции и вычисли- вычислите выбранным вами методом максимальное значение следующей функции: / (х) = х1х1х1х'1е~(Х1+Х:'+Хз+х'). Сравните результат с извест- известным максимумом. Используйте две начальные точки: х = 3 4 —¦ 1 и х@) = [1 1 1 1]г. 3.43. Следующая функция, согласно Бруксу [38], представляет собой длинный узкий хребет с максимумом в точке х* = [1 1] : f (х) = xiexp [1 — х\ — 20,25 (хх — лг2J]. Найдите максимум / (х), начиная с векторов х<0) = [0,1 0,1 ]г и х@> = [1,9 0,1 ]т, с помощью выбранного вами метода. Изобразите эту функцию и траекторию оптимизации на плоскости (хи х2). 3.44. Известно, что при статистическом анализе данных аппрок- аппроксимировать некоторый процесс экспоненциальными функциями довольно трудно вследствие взаимодействия параметров. По- Последнее приводит в пространстве параметров к гиперболиче- гиперболическим хребтам. В качестве примера минимизируйте сумму квадратов
150 отклонений где Глава 3 — i О/наблюдаемое — ^/предсказанное)!! {/предсказанное — "Т К1 для следующих данных: t 0,5 1.0 1,5 ^наблюдаемое 0,263 0,455 0,548 Изобразите графически поверхность суммы квадратов для полу- полученных значений коэффициентов. 3.45. Повторите задачу 3.44 для модели U — а и данных ^наблюдаемое 0,126 0,219 0,076 0,126 0,186 Xl 1 2 1 2 0,1 Xl 1 1 2 2 0 3.46. Аппроксимируйте минимальное значение интеграла 1 при следующих граничных условиях: dy/dx = 0 при х = 0 и у ~ 0 при х = 1. Указание. В качестве пробной функции возьмите у (х) = — а (I — х2), удовлетворяющую граничным условиям, и найдите значение а, минимизирующее интеграл, Улучшит ли оценку мини-
Методы минимизации, использующие производные 151 мума интеграла более сложная пробная функция, удовлетворяю- удовлетворяющая граничным условиям? 3.47. В задаче, связанной с проблемой принятия решения, желательно минимизировать ожидаемый риск, определяемый сле- следующим образом: 8 {риск} = A - Р) сх 11 - F (b)] + Pc2Q (A где F(b)= J e^^du, q = 1,25 • 103, c, = 15, 9 = 2000, P = 0,25. Найдите минимальный ожидаемый риск и значение Ь. 3.48. Пекарня, производящая однофунтовые батоны хлеба, обычно выпускает 10 000 фунтов хлеба в день. Вследствие возник- возникшего периода острой конкуренции рыночная цена этого продукта упала так низко, что предприятие работает-с убытком. При нормаль- нормальном производстве A0 000 фунтов в день, 300 дней в году) имеют место следующие расходы: 1) расходы, связанные с затратами труда и контролем, стои- стоимость пара, расходы по продаже и на социальное обеспечение и т. д.: 600 долл/день; 2) цена сырья: 0,075 долл/фунт продукции; 3) ежегодные налоги, страхование и т. д., доходящие до 25% вложений: 300 000 долл. Предположим, что расходы, указанные в п. 1 и 2, линейно за- зависят от количества продукции, тогда как расходы п. 3 остаются постоянными. На хлеб спрос постоянный, и эксперты в этой облас- области считают, что ни один новый процесс по его изготовлению не явля- является допустимым. Сотрудники производственного отдела совместно с отделом реа- реализации и учета выяснили, исходя из наилучших доступных дан- данных, что себестоимость в долларах на единицу продукции задается (в пределах производства от 0 до 20 000 фунт/день) уравнением С — C°°000 долл/день) @,23/год) 400 долл/день . - „„,-,. , Ь ~ C00 день/год) (Р фунт/год) "•" PN фунт/день ' "*" и>и °/ФУнт "Г где Р — фактическая продукция в фунтах в день, a Pn — произ- производительность при нормальных условиях, 10 000 фунт/день. Отдел реализации определил, что продажная цена (включая возвраты) в следующем месяце в среднем будет равна 18,1 цент/фунт. Основываясь на приведенных выше данных, какой объем произ-
U(t 1 X \T Л) A j Co- 1 hn -ta) ¦ +" 1 \ К 1 152 Глава 3 водства вы посоветуете установить в качестве оптимального на следующий месяц? 3.49. Оправдана ли экономически тепловая изоляция большой цистерны для хранения нефти и ¦ если да, то какова оптимальная толщина этой изоляции? Расходы могут быть разделены на две категории: а) стоимость установки и б) текущие расходы. Стоимость установки (в долл/год) тепловой изоляции равна cxc2Ax. Для поддержания нужной вязкости нефти в цистерне должна быть установлена также обогревающая спираль; стоимость ее установки (в долл/год) равна где Текущие расходы на цистерну (в долл/год) составляют c3c6Q. Найти минимальную величину расходов и требуемую толщину изоляции х при следующих данных: А = 8000; t0 = 120; ta = 40; ts = 250;- k = 0,024; cx = 4; c2 = 0,20; c3 = 0,8; c4 = 0,262; cb = = 1,5 • 10~6; c6 = 4000; /io=15 + 60л; + 10x3; ha = 4,0—Юх; U = = 17. Что означает отрицательное значение х? Обозначения сх — стоимость изоляционного материала, долл/(фут2 поверх- поверхности) • (фут толщины); с2 — амортизационный коэффициент (безразмерный); с3 — стоимость нагревающей поверхности, долл/фут2; с4 — амортизационный коэффициент (безразмерный); сь — стоимость пара, долл/БЕТ; с6 — количество рабочих часов в год, ч; А — площадь изоляции, фут3; ha — коэффициент теплоотдачи стенки цистерны воздуху, БЕТ/ч • фут3 • °F; h0 — коэффициент теплоотдачи нефти стенке цистерны, БЕТ/ч • фут3 • °F; k — теплопроводность изоляции, БЕТ/ч • фут • °F; Q — тепловые потери, БЕТ/ч; U — коэффициент теплопередачи между спиралью и нефте- нефтепродуктом, БЕТ/ч • фут3 • °F; ta — температура окружающего воздуха, °F; t0 — температура нефти, °F; ts — температура спирали обогрева, °F; х — толщина изоляции, фут.
Методы минимизации, использующие производные 153 ЛИТЕРАТУРА 1. Goldstein A. A., Numerical Math., 4, 146 A962). 2. Akaike H., Ann. Inst. Statist. Math., Tokyo, 11, 1 A959). 3. Elder H., Ph. D. Dissertation, Purdue Univ., Lafayette, Ind., 1966. 4. Box G. E. P., Wilson К. В., J. Roy. Statist. Soc, B13, 1 A951). 5. Langley J. W., J. Am. Statist. Assoc., 62, 819 A967). 6. Rosenbrock H. H., Computer J., 3, 174 A960). 7. Greenstadt J., Math. Computation, 21, 360 A967). 8. Marquardt D. W., J. SI AM, 11, 431 A963). 9. Levenberg K.., Quart. Appl. Math., 2, 164 A944). 10. Goldfeld S. M., Quandt R. E., Trotter H. F., Econometrica, 34, 541 A966). 11. Zwart P. В., Nonlinear Programming: A Quadratic Analysis of Ridge Paraly- Paralysis, Washington Univ., Rep. COO-1493-21, St. Louis, Mo., Jan. 1969. 12. Hestenes M. R., The Conjugate Gradient Method for Solving Linear Systems, in Proc. of the Symp. on Applied Mathematics, Vol. VI, McGraw-Hill, N. Y., 1956, pp. 83—102. 13. Fletcher R., Reeves С. М., Computer J., 7, 149 A964). 14. HestenesM. R., Stiefel E. L., J. Res. Natt. Bur. Std., B49, 409 A952). 15. Beckman F. S., The Solution of Linear Equations by the Conjugate Gradient Method, in: Mathematical Methods for Digital Computers, Ralston A., Wilf H. S., eds., Vol. 1, Wiley, Inc., N. Y., 1960. 16. Shah B. V., Buehler R. J., Kempthome O., J. SI AM, 12, 74 A964). 17. Forsythe G. E., Motzkin T. S., Bull. Am. Math. Soc, 57, 183 A951). 18. Zoutendijk G., Methods of Feasible Directions, American Elsevier Publ. Co., N. Y., 1960. 19. McCormick G. P., Pearson J.D., Chap. 21 in: Optimization, Fletcher R, ed., Academic Press Inc., London, 1969. 20. Miele A., Cantrell J. W., Rice Univ. Aero-Astronautics Rept. 56, Houston, Tex., 1969. 21. Cragg E. E., Levy A. V., Rice Univ. Aero-Astronautics Rept. 58, Houston, Tex., 1969. 22. BroydenC. G., Math. Computation, 21, 368 A967). 23. Goldfarb D., Chap. 18 in: Optimization, Fletcher R., ed., Academic Press Inc., N. Y., 1969. 24. Davidon W. C, Computer J., 10, 406 A968); Chap. 2 in: Optimization, Flet- Fletcher R., ed., Academic Press Inc., N. Y., 1969. 25. Powell M.J.D., Rank One Methods for Unconstrained Optimization, AERE Rept. TP 372, 1969. 26. MurtaghB. A., Sargent R. W. H., in: Optimization, Fletcher R., ed. , Academic Press Inc., London, 1969. 27. Davidon W. C, USAEC Doc. ANL-5990 (rev.), Nov. 1959. 28. Fletcher R., Powell M. J. D., Computer J., 6, 163 A963). 29. Bard Y., On a Numerical Instability of Davidon-like Methods, IBM N. Y. Sci. Center Rept. 320-2913, Aug. 1967. 30. Stewart G. W., J. Assoc. Computer Machinery, 14, 72 A967). 31. Pearson J. D., Computer J., 13, 171 A969). 32. Greenstadt i.,Math. Computation, 24, 1A970). 33. Goldfarb D., Math. Computation, 24, 23 A970). 34. Fletcher R., Computer J., 13, 317 A970). 35. Goldstein A. A., Price J. F., Numerical Math., 10, 184 A967). 36. Pack D. C, Swan G. W., J. Fluid Mech., 25, 165 A966). 37. Wheeling R. F., Comm. Assoc. Computer Mach., 3, 632 A960). 38. Brooks S. H., Operations Res., 7, 430 A959).
154 Глава 3 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА ОБЩИЕ ВОПРОСЫ Box M. J., A Comparison of Several Current Optimization Methods, and the Use of Transformations in Constrained Problems, Computer J., 9, 67 A966). Dorn W. S., Nonlinear Programming: A. Survey, Management ScL, 9, 171 A963). HestenesM. R., J. Opt. Theory and Appl., 4, 303 A969). Hurt J. J., A Review of Algorithms for Optimization, Univ. of Iowa Rep. 22, June 1970. Kowalik J., Osborne M. R., Methods for Unconstrained Optimization Problems, American Elsevier, N. Y., 1968. Meyers G. E., Properties of the Conjugate Gradient and Davidon Methods, J. Opt. Theory Appl., 2 A968). Powell M. J. D., A Survey of Numerical Methods for Unconstrained Optimization, SI AM Rev., 12, 79 A970). Ribiere G., Sur la methode de Davidon-Fletcher-Powell pour la minimisation des fonctions, Management Sci., 16, 572 A970). Schechter R. S., Beveridge G. S. C, Optimization: Theory and Practice, McGraw- Hill, N. Y., 1970. Spang H. A., Ill, A Review of Minimization Techniques for Nonlinear Functions, SI AM Rev., 5, 343 A962). Topkis D. M., Veinott A. F., On the Convergence of Some Feasible Direction Algo- Algorithms for Nonlinear Programming, J. SI AM Control, 5, 268 A967). Wilde D. J., Optimum Seeking Methods, Prentice-Hall, Englewood Cliffs, N. J., 1964. Wilde D. J., Bejghtler C. S., Foundations of Optimization, Prentice-Hall, Engle- Englewood Cliffs, N. J., 1967. Wolfe P., Recent Developments in Nonlinear Programming, Advan. Computers, 3, 155—187 A962). ДРУГИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ БЕЗ ОГРАНИЧЕНИЙ, ИСПОЛЬЗУЮЩИЕ ПРОИЗВОДНЫЕ Booth A. D., An Application of the Method of Steepest Descents to the Solution of Systems of Nonlinear Simultaneous Equations, Quart. J. Mech. Appl. Math., 11, 460, 191 A949). Broyden С G., The Convergence of a Class of Double-Rank Minimization Algorithms; 1. General Considerations, J. Inst. Math. Appl., 6, 76 A970). Broyden С G., The Convergence of a Class of Double-Rank Minimization Algorithms; 2. The New Algorithms, J. Inst. Math. Appl., 6, 222 A970). Crockett J. G., Chernoff H., Gradient Methods of Maximization, Pacific J. Math., 5, 33 A955). Curry H. D., The Method of Steepest Descent for Nonlinear Minimization Problems, Quart, Appl. Math., 2, 258 A944). Dixon L. С W., Biggs M. C, Meander — A Newton Based Procedure for iV-Dimen- sional Function Minimization, Technical Rept. № 9, The Hatfield Polytechnic, Hatfield, England, April 1970. Goldfield S. M., Quandt R. E., Trotter H. F., Maximization by Quadratic Hill Clim- Climbing, Econometrica, 34, 541 A966). Huang H. Y., Levy А. В., J. Opt. Theory and Appl., 6, 269 A970). Jacobson D. H., Oksman W., An Algorithm That Minimizes Homogeneous Functi- Functions of N Variables in N + 2 Iterations and Rapidly Minimizes General Fun- Functions, Technical Rept. № 618, Division of Engineering and Applied Physics, Harvard Univ., Cambridge, Mass., Oct. 1970.
Методы минимизации, использующие производные 155 Marquardt D. W., An Algorithm for Least Squares Estimation of Nonlinear Para- Parameters, SI AM J., 11, 431 A963). Murtagh B. A., Sargent R. W. H., A Constrained Minimization Method with Qua- Quadratic Convergence, Chap. 14 in: Optimization, Fletcher R., ed., Academic Press Inc., London, 1969. Murtagh B. A., Sargent R. W. H., Computer J., 13, 185 A970). Papaioannou Т., Kempthorne 0., Parallel Tangents and Steepest Descent Opti- Optimization Algorithm, Wright-Patterson Air Force Base Rept. ARL 70-0117, July 1970. Powell M. J. D., An Iterative Method for Finding Stationary Values of a Function of Several Variables, Computer J., Vol. 5, 1962. Shah B. V., Buehler R. J., Kempthorne O., Iowa State Univ. Statist. Lab. Tech. Rept. 3, 1961; 2 (rev.), 1962; J. Soc. Ind. Appl. Math., Vol. 12, 1964. Shanno D. F., SI AM J. Numer. Anal., 7, 366 A970). Shanno D. F., Math. Computation, 24, 647 A970). Shanno D. F., Kettler P. C, Math. Computation, 24, 657 A970). Siddall J. N., Optisep Designers Optimization Subroutines, McMaster Univ. Rept. ME/70/DSN/REP/1, Faculty of Engineering, Hamilton, Ontario, Canada, 1970.
Глава 4 МЕТОДЫ МИНИМИЗАЦИИ БЕЗ ОГРАНИЧЕНИИ, НЕ ИСПОЛЬЗУЮЩИЕ ПРОИЗВОДНЫЕ (МЕТОДЫ ПОИСКА) В отличие от гл. 3, где изложено решение задачи нелинейного программирования C.0.1) с помощью методов, использующих про- производные (или их аппроксимации), в этой главе рассматриваются методы оптимизации, не использующие производные. Эти методы обычно называют методами поиска. В типичном методе поиска направления минимизации полностью определяются на основании последовательных вычислений целевой функции / (х). Как правило, при решении задач нелинейного программирова- программирования при отсутствии ограничений градиентные методы и методы, использующие вторые производные, сходятся быстрее, чем прямые методы поиска. Тем не менее, применяя на практике методы, ис- использующие производные, приходится сталкиваться с двумя глав- главными препятствиями. Во-первых, в задачах с достаточно боль- большим числом переменных довольно трудно или даже невозможно получить производные в виде аналитических функций, необходимых для градиентного алгоритма или алгоритма, использующего произ- производные второго порядка. Хотя вычисление аналитических произ- производных можно заменить вычислением производных с помощью разностных схем, как описано в разд. 3.4, возникающая при этом ошибка, особенно в окрестности экстремума, может ограничить применение подобной аппроксимации. В принципе можно исполь- использовать символические методы для аналитических выражений про- производных, но эти методы требуют значительного развития, прежде чем они станут подходящим практическим инструментом. Во вся- всяком случае, методы поиска не требуют регулярности и непрерыв- непрерывности целевой функции и существования производных. Вторым обстоятельством, правда, связанным с предыдущей проблемой, является то, что при использовании методов оптимизации, осно- основанных на вычислении первых и при необходимости вторых произ- производных, требуется по сравнению с методами поиска довольно большое время на подготовку задачи к решению. Вследствие изложенных выше трудностей были разработаны алгоритмы оптимизации, использующие прямой поиск, которые, хотя и медленнее реализуются в случае простых задач, на практике могут оказаться более удовлетворительными с точки зрения поль- пользователя, чем градиентные методы или методы, использующие
Методы минимизации, не использующие производные 157 вторые производные, и решение задачи с их помощью может обой- обойтись дешевле, если стоимость подготовки задачи к решению высока по сравнению со стоимостью машинного времени. В данной главе рассмотрены лишь некоторые из многих существующих алгорит- алгоритмов прямого поиска, причем при выборе мы руководствовались их эффективностью при решении тестовых задач, 4.1. ПРЯМОЙ ПОИСК По существу методы поиска простейшего типа заключаются в изменении каждый раз одной переменной, тогда как другие остают- остаются постоянными, пока не будет достигнут минимум. Например, в одном из таких методов переменная х1 устанавливается постоян- постоянной, а хг изменяют до тех пор, пока не будет получен минимум. Затем, сохраняя новое значение х2 постоянным, изменяют хъ пока не будет достигнут оптимум при выбранном значении х2 и т. д. Однако такой алгоритм работает плохо, если имеет место взаимо- взаимодействие между х1 и хг, т. е. если в выражение для целевой функции входят члены, содержащие произведение х±х2. Таким образом, этот метод нельзя рекомендовать, если пользователь не имеет дела с целевой функцией, в которой взаимодействия не существенны. Хук и Дживс [1] предложили логически простую стратегию поиска, использующую априорные сведения и в то же время отвер- отвергающую устаревшую информацию относительно характера тополо- топологии целевой функции в Еп. В интерпретации Вуда [2] этот алгоритм включает два основных этапа: «исследующий поиск» вокруг базисной точки и «поиск по образцу», т. е. в направлении, выбран- выбранном для минимизации. На фиг. 4.1.1 представлена упрощенная информационная блок-схема этого алгоритма. Рассматриваемый алгоритм прямого поиска состоит из следую- следующих операций. Прежде всего задаются начальные значения всех элементов х, а также начальное приращение Ах. Чтобы начать «исследующий поиск», следует вычислить значение функции / (х) в базисной точке (базисная точка представляет собой начальный вектор предполагаемых искомых значений независимых переменных на первом цикле). Затем в циклическом порядке изменяется каждая переменная (каждый раз только одна) на выбранные величины приращений, пока все параметры не будут таким образом изменены. В частности, х[0) изменяется на величину Axj0), так что х\1) = = л:}0' + Адг'0'. Если приращение не улучшает целевую функцию, я!0' изменяется на —Axi0) и значение / (х) проверяется, как и ранее. Если значение / (х) не улучшают ни х\0) + Axi0), ни х\0) — Ax(i0), то лгA0> оставляют без изменений. Затем xf] изменяют на величину Ах(°} и т, д., пока не будут изменены все независимые переменные,
158 Глава 4 что завершает один исследующий поиск. На каждом шаге или сдвиге по независимой переменной значение целевой функции сравнивается с ее значением в предыдущей точке. Если целевая функция улучшается на данном шаге, то ее старое значение заме- заменяется на новое при последующих сравнениях. Однако если ПрОИЗ- 1 I Вычислить f(x) в базисной точке (вна- (вначале это точка I Провести исследующий поиск типа / us базисной точки. После последнего возмущения стала ли fCC) меньше, чем г(ас) е старой базисной точке Т Mem i Да Является ли величина возмущения (ах) лсеныие некоторого капере? задан- заданного малого числа ? Нет 7 ] 1 Останае Уменьшитб параметр возму- возмущения I Задать новую базис- нуюточку ?(*<'> ).f (ас) I ylpoeecmtt поиск no образцу I /Травести исследующий поиск типа //. После последнего воз- возмещения стала ли f(x)jnent- cue, чеяг f(xe") в © ? Да J Нет Ф и г. 4.1.1. Информационная блок-схема мннимнзации прямым поиском. веденное возмущение по х неудачно, то сохраняется прежнее зна- значение / (х). После проведения одного (или более) исследующего поиска применяется стратегия поиска по образцу. Удачные изменения переменных в исследующем поиске [т. е, те изменения переменных, которые уменьшили / (х) ] определяют вектор в Е", указывающий некоторое направление минимизации, которое может привести к успеху. Серия ускоряющихся шагов, или поиск по образцу, проводится вдоль этого вектора до тех пор, пока / (х) уменьшается при каждом таком поиске. Длина шага при поиске по образцу
Методы минимизации, не использующие производные 159 в данном координатном направлении приблизительно пропорцио- пропорциональна числу удачных шагов, имевших место ранее в этом коорди- координатном направлении во время исследующих поисков за несколько предыдущих циклов. Для ускорения процесса оптимизации изме- 1,2 Фиг. 4.1.2. Прямой поиск минимума функции Розенброка, начиная из точки х( }=[—1,2 1,0]г. В отмеченных точках указано число удачных шагов поиска по образцу. нение размера шага Ах в поиске по образцу осуществляется путем введения некоторого множителя при величине Ах, используемой в исследующих поисках. Исследующий поиск, проводимый после поиска по образцу, называется исследующим поиском типа II; успех или неудачу поиска по данному образцу нельзя устано- установить до завершения исследующего поиска типа II.
160 Глава 4 Если / (х) не уменьшается в процессе исследующего поиска типа II, то говорят, что данный поиск по образцу неудачен, и про- проводится новый исследующий поиск типа I для определения нового удачного направления. Если исследующий поиск типа I не дает нового удачного направления, то последовательно уменьшают Ах, пока либо можно будет определить новое удачное направле- направление, либо Ахг не станет меньше, чем некоторая заранее установлен- установленная допустимая величина. Невозможность уменьшить /(х), когда Ах достаточно мало, указывает на то, что достигнут локальный опти- оптимум. Описанная последовательность поисков заканчивается, если оказываются удовлетворенными условия трех основных тестов. Первый тест проводится после каждого исследующего поиска и поиска по образцу: изменение целевой функции сравнивается с за- заранее установленной малой величиной. Если значение целевой функции не отличается на величину, большую, чем это число, от предыдущего основного значения целевой функции, исследующий поиск или поиск по образцу считается неудачным. В противном случае проводится тест для определения, увеличилась ли целевая функция (неудача) или уменьшилась (удачный поиск). Этот второй тест нужен для того, чтобы быть уверенным, что значение целевой функции все время улучшается. Третий тест проводится после неу- неудачи в исследующем поиске на стадии уменьшения изменения Ах. Поиск может быть закончен, если на данном шаге изменение каждой переменной Ах'Р оказывается меньше, чем некоторое за- заранее определенное число. На фиг. 4.1.2 приведена траектория прямого поиска при мини- минимизации функции Розенброка, начиная с вектора х@>= [—1,2 1,0]г, Пример 4.1.1. Максимизация (без ограничений) прямым поиском по Хуку и Дживсу Максимизировать целевую функцию начиная из х<0> = [2,00 2,80]г с начальным Ах, равным [0,60 0,84]г. Исходное значение / B,00; 2,80) в базисной точке х@> равно 0,059. Сначала проводится исследующий поиск типа I для определения удачного направления. (Такая процедура называется исследую- исследующим поиском типа I в противоположность исследующему поиску типа II, который следует за поиском по образцу. После прове- проведения исследующего поиска типа II принимается решение по поводу того, было ли предыдущее движение по образцу успешным
Методы минимизации, не использующие производные 161 или неудачным.) x(i" = 2,00 + 0,60 = 2,50, / B,60; 2,80) = 0,048 (неудача); 4° = 2,0 — 0,60 =* 1,40, /A,40; 2,80) = 0,073 (успех); xf = 2,80 + 0,84 = 3,64, /A,60; 3,64) =» 0,052 (неудача); xf = 2,80 — 0,84 = 1,96, /A,40; 1,96) = 0,104 (успех). Исследующий поиск оказался удачным. Заметим, что при каждом поиске выбирается последний удачный вектор х. Новым базисным вектором будет A,40; 1,96). Теперь из точки A,40; 1,96) проводится поиск по образцу в соответствии с правилом акселерации Jk+l) __ о (ft) F) М — 6Л[ Л[ , где xf — предыдущий базисный вектор х. В данном случае это начальный вектор х » дгР = 2A,40) — 2,00 = 0,80, xf = 2 A,96)-2,80= 1,12, /@,8; 1,12) =0,22. Наконец проводится исследующий поиск типа II; неудача или успех его оценивается путем сравнения с /@,8; 1,12) = 0,22: xf =. 0,80 + 0,60 = 1,40, / A,40; 1,12) = 0,14 (неудача); xf = 0,80 — 0,60 = 0,20, / @,20; 1,12) = 0,38 (успех); 43) - 1,12 + 0,84 = 1,96, / @,20; 1,96) = 0,19 (неудача); Д3> = 1,12 — 0,84 = 0,28, / @,20; 0,28) = 0,67 (успех). Чтобы определить, оказался ли поиск по образцу успешным, сравни- сравнивают /@,20; 0,28) = 0,67 с /A,40; 1,96) = 0,104. Поскольку поиск по образцу успешен, то новой базисной точкой будет х<3> = = [0,20, 0,28 ]т; при этом старая базисная точка представлена век- вектором хA> = [1,40 1,96]г. Затем вновь проводится поиск по образцу: xf = 2 @,20) — 1,40 = — 1,00, xf = 2 @,28) -1,96 = -1,40, /(- 1,00; -1,40) = 0,51. После этого проводится исследующий поиск типа II: «Р = — 1,00 + 0,60 = — 0,40, / (— 0,40; — 1,40) = 0,43 (неудача);
162 Глава 4 х\ f = _ 1,00 — 0,60 = - 1,60, / (- 1,60; — 1,40) - 0,43 (неудача); xf - 1,40 + 0,84 = - 0,56, / (— 1,00; - 0,56) = 3,18 (успех). Поскольку f (—1,00; —0,56) = 3,18 > f @,20; 0,28) = 0,67, поиск по образцу представляется успешным и х<5>= [—1,00—0,56]г становится новой базисной точкой, а х<3) — старой базисной точкой. Эта последовательность поисков продолжается до тех пор, пока не будет достигнута ситуация, при которой в конце исследующего поиска типа II значение / (х) окажется меньшим, чем значение / (хF>) в последней базисной точке. Тогда, если даже исследующий поиск типа II является успешным при одном или более возмуще- возмущениях, говорят, что последний поиск по образцу неудачен и про- проводят из предыдущей базисной точки исследующий поиск типа I для определения нового удачного направления, В иллюстра- иллюстративных целях продолжим поиск из х<5)= [—1,00 —0,56 ]т, 3 ас, (^.Базисные векторы Шаги исследующего поиска Шаги поиска по образцу •••»••••• успех + + + + неудача Фиг. П.4.1.1.
Методы минимизации, не использующие производные 163 Поиск по образцу: xf> = 2 (— 1,00) — 0,20 = — 2,20, xf = 2 (— 0,56) — 0,28 = — 1,40, /(-2,20; -1,40) = 0,29. Исследующий поиск типа II: xV = - 2,20 + 0,60 = - 1,60, f(— 1,60; - 1,40) = 0,43 (успех); л?> = — 1,40 + 0,84 = — 0,56, /(— 1,60; - 0,56) = 1,49 (успех). Однако поскольку / (—1,60; —0,56) = 1,49 < f (—1,00; —0,56) = = 3,18, то, несмотря на то что исследующий поиск типа II оказался успешным, поиск по образцу считается неудачным, и из х<5) = = [—1,00 — 0,56]т начинают исследующий поиск типа I. Когда достигается стадия, на которой ни исследующий поиск типа I, ни поиск по образцу (вместе с исследующим поиском типа II) не являются успешными в любом координатном направлении, говорят, что они оба неудачны и возмущение Ах уменьшают следую- следующим образом: — А^.предыдущее | где | — число последовательных неудач в исследующих поисках при данной величине шага, начиная от последнего успешного иссле- исследующего поиска. (В этом примере максимум / (х) -> оо при хх -> —1 и х2 -> 0.) 4.2. ПОИСК ПО ДЕФОРМИРУЕМОМУ МНОГОГРАННИКУ Нелдер и Мид [3] предложили метод поиска, несколько более сложный по сравнению с прямым поиском, но оказавшийся весьма эффективным и легко осуществляемым на ЭВМ. Чтобы читатель смог оценить стратегию Нелдера и Мида, кратко опишем сим- симплексный поиск Спендли, Хекста и Химсворта [4], разработан- разработанный в связи со статистическим планированием эксперимента. Вспомним, что регулярные многогранники в Е" являются симплек- симплексами. Например, как видно из фиг. 4,2.1, для случая двух пере- переменных регулярный симплекс представляет собой равносторонний треугольник (три точки); в случае трех переменных регулярный симплекс представляет собой тетраэдр (четыре точки) и т. д. При поиске минимума целевой функции / (х) пробные векторы х могут быть выбраны в точках Еп, находящихся в вершинах сим- симплекса, как было первоначально предложено Спендли, Хекстом и
164 Глава 4 Химсвортом. Из аналитической геометрии известно, что коорди- координаты вершин регулярного симплекса определяются следующей матрицей D, в которой столбцы представляют собой вершины, пронумерованные от 1 до (п + 1), а строчки — координаты, i при- Фиг. 4.2.1, Регулярные симплексы для случая двух (а) и трех (б) независимых переменных. ф обозначает наибольшее значение f (х). Стрелка указывает направление наиско- наискорейшего улучшения. нимает значения от D = ~0 0 0 0 1 до п: dx d2 .. d2 dx ., d2 d2 . . d2 d% .. • d2 ¦ d2 .d2 . dx_ — матрица n X (n -f 1), где n/2 (Vn + 1 - 1), t — расстояние между двумя вершинами. Например, для п — 2 и t — 1 треугольник, приведенный на фиг, 4,2,1, имеет следующие координаты: Вершина 1 2 3 0 0,965 0,259 *2, 1 0 0,259 0,965
Методы минимизации, не использующие производные 165 Целевая функция может быть вычислена в каждой из вершин симплекса; из вершины, где целевая функция максимальна (точка А на фиг. 4.2.1), проводится проектирующая прямая через центр тяжести симплекса. Затем точка А исключается и строится новый симплекс, называемый отраженным, из оставшихся прежних точек и одной новой точки В, расположенной на проектирующей прямой на надлежащем расстоянии от центра тяжести, Продолже- 1 Фиг, 4.2.2. Последовательность регулярных симплексов, полученных при мини- минимизации / (х). — проекция. ние этой процедуры, в которой каждый раз вычеркивается вершина, где целевая функция максимальна, а также использование правил уменьшения размера симплекса и предотвращения циклического движения в окрестности экстремума позволяют осуществить поиск, не использующий производные и в котором величина шага на любом этапе k фиксирована, а направление поиска можно изменять. На фиг. 4.2.2 приведены последовательные симплексы, построенные в двумерном пространстве с «хорошей» целевой функцией. Определенные практические трудности, встречающиеся при использовании регулярных симплексов, а именно отсутствие уско- ускорения поиска и трудности при проведении поиска на искривленных «оврагах» и «хребтах», привели к необходимости некоторых улучше- улучшений методов [5]. В этом разделе мы изложим метод Нелдера иМида, в котором симплекс может изменять свою форму и таким образом уже не будет оставаться симплексом. Именно поэтому здесь исполь- использовано более подходящее название «деформируемый многогранник». В методе Нелдера и Мида минимизируется функция п независи- независимых переменных с использованием п+1 вершин деформируемого мно- многогранника в Еп. Каждая вершина может быть идентифицирована
166 Глава 4 вектором х. Вершина (точка) в Еп, в которой значение / (х) максимально, проектируется через центр тяжести (центроид) ос- оставшихся вершин. Улучшенные (более низкие) значения целевой функции находятся последовательной заменой точки с максималь- максимальным значением / (х) на более «хорошие» точки, пока не будет найден минимум / (х). Более подробно этот алгоритм может быть описан следующим образом. Пусть xf> = [*8\ ... , xff, .... x?hT, i = l п + 1, явля- является i-й вершиной (точкой) в Еп на k-u этапе поиска, k = 0, 1 и пусть значение целевой функции в xf равно / (xi'). Кроме того, отметим те векторы х многогранника, которые дают максимальное и минимальное значения /(х). Определим /(xf) = max{/(xf>), & где xf = xf>, и где xf — хР. Поскольку многогранник в Еп состоит из (я+1) вершин xlf ... , Xn+i, пусть х„+2 будет центром тяжести всех вер- вершин, исключая xft. Тогда координаты этого центра определяются формулой 4- [(I $)- где индекс / обозначает координатное направление. Начальный многогранник обычно выбирается в виде регуляр- регулярного симплекса (но это не обязательно) с точкой 1 в качестве начала координат; можно начало координат поместить в центре тяжести, как это имеет место в машинной программе в приложении Б. Про- Процедура отыскания вершины в Е", в которой / (х) имеет лучшее зна- значение, состоит из следующих операций: 1, Отражение — проектирование Хйй через центр тяжести в соответствии с соотношением х&з = А-2 + а (х&2 - xf>), D.2.2) где а > 0 является коэффициентом отражения; х^+г — центр тя- тяжести, вычисляемый по формуле D.2.1); xlfe> — вершина, в которой функция / (х) принимает наибольшее из п + 1 ее значений на k-м этапе. 2. Растяжение. Эта операция заключается в следующем: если f (х^з) < f (x/fc>), то вектор (xjj+з — х^_2) растягивается в соответст- соответствии с соотношением & 4 f x<*U D.2.3)
Методы минимизации, не использующие производные 167 где у > 1 представляет собой коэффициент растяжения. Если / (х«\4) < f (xf), то xf заменяется на х^4 и процедура продолжает- продолжается снова с операции 1 при k — k-\-\. В противном случае xf за- заменяется на х^+з и также осуществляется переход к операции 1 при k = k + 1. 3. Сжатие. Если / (х^+з) > f (xf') для всех 1фк, то вектор (xf — Хд+г) сжимается в соответствии с формулой D.2.4) где 0 < (J < 1 представляет собой коэффициент сжатия. Затем xf за- заменяем на Хп\-5 и возвращаемся к операции 1 для продолжения поиска на (k + 1)-м шаге. 4. Редукция. Если f (х(Д.3) > / (xf), все векторы (xf — xf), i = = 1, ... , «+1, уменьшаются в 2 раза с отсчетом от хР в соот- соответствии с формулой xf = xf 4-0,5 (xf - xf), /=1,...,л + 1. D.2.5) Затем возвращаемся к операции 1 для продолжения поиска на (k 4- 1)-м шаге: Критерий окончания поиска, использованный Нелдером и Ми- дом, состоял в проверке условия ) 8, D,2.6) где е — произвольное малое число, а /(х(„\2) — значение целевой функции в центре тяжести хЦ-2. На фиг. 4.2.3 приведена блок-схема поиска методом деформируе' мого многогранника, а на фиг. 4.2.4 показана последовательность поиска для функции Розенброка, начиная из х<0> =[—1,2 1,0]г. Деформируемый многогранник в противоположность жесткому симплексу адаптируется к топографии целевой функции, вьь тягиваясь вдоль длинных наклонных плоскостей, изменяя направ- направление в изогнутых впадинах и сжимаясь в окрестности минимума. Коэффициент отражения а используется для проектирования вершины с наибольшим значением / (х) через центр тяжести дефор- деформируемого многогранника. Коэффициент у вводится для растяже- растяжения вектора поиска в случае, если отражение дает вершину со зна- значением /(х), меньшим, чем наименьшее значение / (х), полученное до отражения. Коэффициент сжатия р используется для уменьше- уменьшения вектора поиска, если операция отражения не привела к вершине со значением / (х), меньшим, чем второе но величине (после наи- наибольшего) значение / (х), полученное до отражения. Таким обра- образом, с помощью операций растяжения или сжатия размеры и форма
Пуск Вычислить начальные значе- значениях'?,1=1,2,..., п+1, и fix1") начального симплекса Вычислить xhuxtuc Отражение .¦ вычислить Вычислить Л Выполняется ли нерабеяство Выполняется ли неравен- с/лео f(xnt3)<f(xi)gM всех Да Растяжение: вычис- вычислить х„^х„,г* Вычислить выполняется ли неравенство f$f Нет Нет выполняется ли не- ' равенства fCCn.3)< f(Xk) ? Да \ Нет 1 \Эаженить xh на х„ ± Сжатие ¦¦ вычислить ж „ ,s = Заменить ж, на ас , Заменить жА на хп. Нет Вычислить Нет Выполняется ли неравенство f Заменить х. на х„^ \ ' Да Peffi/кция: заменить все X; на x+Uxi- Да Останов Фиг, 4.2.3. Информационная блок-схема поиска методом деформируемого мно<
Методы минимизации, не использующие производные 169 деформируемого многогранника масштабируются так, чтобы они удовлетворяли топологии решаемой задачи. Естественно возникает вопрос, какие значения параметров ot, p и 7 должны быть выбраны. После того как деформируемый -Q5 Фиг. 4.2.4. Поиск минимума функции Розенброка методом деформируемого мно- многогранника, начиная сточких'°^= [—1,2 1,0]7" (числа указывают номер шага). многогранник подходящим образом промасштабирован, его разме- размеры должны поддерживаться неизменными, пока изменения в топо- топологии задачи не потребуют применения многогранника другой формы. Это возможно реализовать только при а = 1. Кроме того, Нелдер и Мид показали, что при решении задачи с а = 1 требуется меньшее количество вычислений функции, чем при а < 1. С другой
170 Глава 4 стороны, а не должно быть много больше единицы, поскольку 1) деформируемый многогранник легче адаптируется к топологии задачи при меньших значениях а, особенно когда необходимо изме- изменять направление поиска, столкнувшись с изогнутой впадиной, и 2) в области локального минимума размеры многогранника долж- должны уменьшаться и большое а в этих условиях замедлит сходимость. Таким образом, значение а = 1 выбирается как компромисс. Влияние Таблица 4.2.1 и у на решение тестовой задачи 3 (приложение А)х) р 0,2 0,4 0,6 0,8 0,5 0,5 0,5 0,5 0,5 0,5 V 3 3 3 3 2,2 2,4 2,6 2,8 3,0 3,2 f (*') 58,903 58,903 58,903 58,903 58,903 58,903 58,903 58,903 58,903 58,903 Количество шагов к 90 55 81 95 47 45 49 57 70 46 Время реше- решения, с 0,381 0,287 0,388 0,414 0,238 0,247 0,287 0,304 0,343 0,266 Точность определения х* и f (х*) 2,7-10—7 7,1 • Ю-8 2,8-10—7 9,3-Ю-7 9,1-Ю-7 6,5-Ю-7 8,5-10—7 8,1 Ю-7 8,6-Ю-7 8,5-10—7 1) Другие параметры, использованные прн решении тестовой задачи 3, имели следующие значения: о=1, t = 0,5, е = 10~^. В качестве начальной взята точка х(") = [90 10]^. Чтобы выяснить, какое влияние на процедуру поиска имеет выбор р и у, Нелдер и Мид (а также Павиани [6]) провели решение нескольких тестовых задач, используя большое число различных комбинаций значений р и у. В качестве удовлетворительных зна- значений этих параметров при оптимизации без ограничений Нелдер и Мид рекомендовали а = 1, Р = 0,5 и у = 2. Размеры и ориента- ориентация исходного многогранника в некоторой степени влияли на вре- время решения, а значения а, р и у оказывали значительно большее влияние. Павиани отмечает, что нельзя четко решить вопрос отно- относительно выбора Р и у и что влияние выбора Р на эффективность поиска несколько более заметно, чем влияние у. В табл. 4.2.1 при- приведены типичные результаты для тестовой задачи 3 (см. приложе- приложение А), в которой в качестве оптимизирующей подпрограммы использовался алгоритм Нелдера и Мида. Павиани рекомендует следующие диапазоны значений для этих параметров: 0,4 < Р < 0,6, 2,8 < v < 3,0.
Методы минимизации, не использующие производные 171 При 0 < Р < 0,4 существует вероятность того, что из-за уплоще- уплощения многогранника будет иметь место преждевременное окончание процесса. При Р >¦ 0,6 может потребоваться избыточное число шагов и больше машинного времени для достижения окончательного реше- решения. Пример 4.2.1. Поиск методом деформируемого многогранника Для иллюстрации метода Нелдера и Мида рассмотрим задачу минимизации функции / (х) = 4 (хх — 5J + (*2 — бJ, имеющей мини- минимум в точке х* = [5 6]г. Поскольку /(х) зависит от двух перемен- переменных, в начале поиска используется многоугольник с тремя верши- вершинами. В этом примере в качестве начального многогранника взят треугольник с вершинами х|0) = [8 9]г, xf = [10 1 if и xf = [8 1 l]r, хотя можно было бы использовать любую другую конфигурацию из трех точек. На нулевом этапе поиска, k = 0, вычисляя значения функции, получаем /(8, 9) = 45, /A0, 11) = 125 и / (8, 11)== 65. Затем отра- отражаем xf = [10 11]г через центр тяжести точек xf и хз0) [по фор- формуле D.2.1)], который обозначим через xiC): с тем, чтобы получить х^С). ^ = 8 +1(8—10) = б, 4°>2 = 10 + 1A0 —11) = 9, fF,9)=13. Поскольку / F,9) = 13 < / (8,9) = 45, переходим к операции растяжения: 4?i = 8 + 2F — 8) = 4, х?>2= 10 + 2(9-10) «8, fD,8) = 8. Поскольку f D, 8) = 8 < / (8, 9) = 45, заменяем х?' на х?0) и полага- полагаем Хб0> = х-1* на следующем этапе поиска. Наконец, поскольку _1 [72 + 132 + 4423Vs = 26,8 > 10~Л О
/ и 1 V 3) 7 /// \ \\ ш i i- \ '(/ Ж: t xf) х<*> и 1 О 2 А 6 в - , л _...,,., ,, .Фиг. П.4.2.16. Траектория поиска с помощью алго- Ф и г. П.4.2.1а. Метод Нелдера и Мида при отсутствии ограничении. ритма Нелдера и Мида.
Методы минимизации, не использующие производные 173 начинаем этап поиска k — 1. На фиг. П 4.2.1а приведена траекто- траектория поиска на начальных этапах, а в табл. П.4.2.1 приведены координаты вершин и значения / (х) для четырех дополнительных Таблица П.4.2.1 Пять Этап 0 0 0 0 0 1 2 3 4 этапов вычисления функции Вершины 40) 40) 40) 40) М) _ v«0 А2 — 6 B) A) 43) = 42) 44) = 43) 45) = 44) методом Нелдера и Мида при минимизации /00 =4(*i -5J + (x2 -6f многогранника Х\ 8 10 8 6 4 4 6 5 5 *2 9 11 11 9 8 6 8 7,5 5,5 Значения 1 (X) 45 125 65 13 8 4 8 2,25 0,25 Замечания */ = 40) «*=-*? Получена отражением с по- помощью формулы D.2.2) Получена растяжением по формуле D.2.3) 40) заменяется на 4°' ¦= 2 4°' заменяется на 4'' вя 4°) заменяется на л^' а xf^ заменяется на 44> 4 заменяется на 45' этапов. На фиг. П 4.2.16 изображена полная траектория поиска до его окончания. Для уменьшения / (х) до значения 1 • 10~6 потре- потребовалось 32 этапа. 4.3. МЕТОДЫ РОЗЕНБРОКА И ДЭВИСА, СВЕННА, КЕМПИ Метод Розенброка [7] является итерационной процедурой, име- имеющей некоторое сходство с исследующим поиском Хука и Дживса (изложенным в разд. 4,1), которое состоит в том, что предприни- предпринимаются малые шаги во время поиска в ортогональных направле- направлениях. Однако здесь вместо непрерывного поиска по координатам, соответствующим направлениям независимых переменных, после каждого цикла координатного поиска можно сделать улучшение путем сведения направлений поиска в ортогональную систему, принимая весь шаг предыдущего этапа в качестве первого блока
174 Глава 4 при построении новой системы координат. Метод Розенброка опре- определяет местонахождение xik+[\ используя последовательные одно- одномерные поиски, начиная с исходной точки х{к\ вдоль системы орто- нормированных направлений sf\ ..,, s^', полученных при помощи процедуры Грама — Шмидта, так что направления поиска вытя- вытягиваются вдоль главных осей квадратичной аппроксимации целе- целевой функции. Поскольку эти оси являются собственными векторами Н (х) и представляют собой особый случай сопряженных направ- направлений, этот метод в некоторой степени аналогичен методу сопря- сопряженных направлений в смысле сходимости, если применяется к квадратичной аппроксимации целевой функции. Рассматриваемый метод реализуется следующим образом. s(n>—единичные векторы в Еп, где индекс k = обозначает этапы поиска. Ортонормированные векторы строятся на основании информации, полученной на (k — 1)-м этапе, по формулам D.3.1) и D.3.2), приведенным ниже. На начальном этапе k — 0 направления s<0>, ..,, $ обычно берутся параллельными осям дг^ ...,хп. В общем случае ортогональные нап- направления поиска могут быть выражены как комбинации координат независимых переменных следующим образом: Пусть = 0,1, Г» Si , ... е (ft) sl , ... >) Л8<*> « а% + а{Х + • • • + А, где 6г — единичный вектор в направлении xh а ац представляют собой направляющие косинусы s,. В матричном обозначении Рассмотрим &-й этап, и пусть xoft) = х^"' представляет собой точку в ?", из которой начат поиск, a hlt ... f Kn — соответствующие длины шагов, связанные с направлениями sx sn. Поиск начинается из xSf' путем введения возмущения, равного Mft> s<A), в первом координатном направлении. Если значение / (хо*' + + "$ s\k)) равно или меньше, чем / (хо°), шаг считается успешным и полученная пробная точка заменяет хо*\ Я,!*' умножается на мно- житель «>0 и вводится возмущение по направлению S2 . Если зна-
Методы минимизации, не использующие производные 175 чение / (x|f + ffi sf) больше, чем / (xoft)), то шаг считается неудач- неудачным, Хо' не заменяется, Кр умножается на множитель f$ ¦< 0 и сно- снова задается возмущение по направлению S2ft>. Розенброк предложил в общем случае брать значения параметров равными а = 3 и Р = = — 0,5. После того как пройдены все п направлений siA>, .... sf\ сно- снова возвращаются к первому направлению s|ft) и вводится возмуще- возмущение с длиной шага, равной <&}к) или p7,<ft>, в зависимости от резуль- результата предыдущего возмущения по направлению si*°. Возмущения по выбранным направлениям поиска задаются до тех пор, пока по каждо- каждому из направлений за успехом не последует неудача. При этом k-vi этап поиска заканчивается. Поскольку получение одинаковых значе- значений функции рассматривается как успех, успех в конце концов дости- достигается по каждому направлению, так как множители при К{к) умень- уменьшают последовательно длины шагов, Последняя полученная точка становится начальной точкой следующего этапа, хо*+1) = х^'. Нормированное направление s/*' берется параллельным (х(о*+1) — xoft>), а остальные направления выбираются ортонормиро- ванными друг к другу и к s'fe+1> с помощью одного из методов, описанных ниже. Дэвис, Свенн и Кемпи (ДСК), как это изложено в работе Свен- на [8], модифицировали поиск Розенброка в направлениях s\\ ... ,.. , s(nft) путем отыскания минимума / (х) в каждом из направлений s|ft) способом, напоминающим поиск Дэвидона — Флетчера — Пауэлла. Объясним это подробнее. Пусть х'&) представляет собой точку, в ко- которой /(x'ft)) принимает минимальное значение в направлении sf\ Для каждого этапа k существует п векторов \\) я п оптимальных значений целевой функции /(x[-ft)). Начиная с xoft), определяется Х*{к) в направлении s'*' так, чтобы значение f (хо' + A,i( Jsi J) становилось минимальным. Затем принимается xf = х^' + k'i{k)s[k). Начиная с \\к), определяется ^ так, чтобы f (к\к) + %1{%2к)) принимало минималь- минимальное значение. Затем принимается xj>J — xi) + ^2( '4 ' и т. д. Изложенная схема поиска обобщается следующим образом. На- Начиная с х'^ь определяется X*t{k) в направлении sf* так, чтобы / (xfli + A,i*<ft)sf') обращалась в минимум. Затем принимается х?' = = Х(-^1 + ^,*(*'sift). Этот поиск последовательно повторяется, всегда начиная из предыдущей точки, пока не будут найдены все х(-, i = =s I, ... , п. Дэвис, Свенн и Кемпи определяли К*^ с помощью алгоритма линейного поиска, описанного в разд. 2.6. Однако вместо
176 Глава 4 него может быть использован любой эффективный метод одномер- одномерного поиска. После завершения k-vo этапа либо с помощью оригинального метода Розенброка, либо его модификации с использованием метода ДСК в точке х?+1) = xi? вычисляются векторы новых направле- направлений поиска. В сущности здесь ортогональные направления поиска поворачиваются по отношению к предыдущим направлениям так, что они оказываются вытянутыми вдоль оврага (или хребта), и таким образом исключается взаимодействие переменных. Пусть А\к) представляет собой алгебраическую сумму всех успешных шагов (суммарное перемещение) в направлении si*0 на k-м этапе; в случае метода ДСК справедливо равенство Af* = ^<ft), Опре- Определим п векторов Аь ..., А„ следующим образом: D.3.1) Таким образом, A(i} является вектором перехода из Хо'г) в хо , ABft) — вектором перехода из х'*' в х(о&+1) и т. д. A[k) представляет собой полное перемещение с ?-го этапа на (k+l)-a этап, Аз0 — полное перемещение, но без учета продвижения, сделанного во вре- время поиска в направлении s(ife) и т. д. В модифицированном методе Розенброка с использованием алго- алгоритма ДСК во избежание обращения в нуль любого из s'ft) (ибо в этом случае данный алгоритм перестает работать) Лиев D.3.1) нумеруются нижними индексами, так что направления поиска |Л^|>|Л^|> • ¦ • >|Л(„*'|. Тогда если любые т из Af> обра- обращаются в нуль, то отыскивают новые направления, как описано ни- ниже, лишь для тех (п — т) направлений, для которых А\) Ф 0; ос- оставшиеся т направлений остаются неизменными: sp+1) = sf>, i = (n-m)+l п. Таким образом, в методе ДСК векторам с ненулевыми Л припи- приписываются первые (п — т) номеров. Так как первые (п — т) век- векторов взаимно ортогональны и Л, = 0 для i — п — т + 1, ¦¦¦, п, первые п — т векторов не будут иметь составляющих в направле- направлениях s'*+I), i = n — т+ 1, ..., п. А поскольку эти последние направления взаимно ортогональны, то из этого следует, что все направления являются взаимно ортогональными. Свенн указывает, что на практике оказалось более удобным изменить критерий для перегруппировки направлений и вместо
Методы минимизации, не использующие производные 177 Л;' = 0 использовать | Л'" | < 8, где 8 — заданная точность х или / (х). Эта модификация слегка повлияла на ортогональность векторов sf\ но весьма несущественно. Оказалось, что в случае линейного поиска редукция длины шага с коэффициентом 0,1 умень- уменьшает число вычислений целевой функции, и поэтому она вводилась в программу ДСК каждый раз так, чтобы расстояние между xif' и х\к+[) оказывалось меньше, чем длина шага на k-м этапе. В обоих методах новые направления определяются следующим образом. Первый единичный вектор s|*+I) из нового набора направ- направлений на (k + 1)-м этапе направляют так, чтобы он совпадал с направлением результирующего перемещения на предыдущем эта- этапе А(*', Остальные направления поиска строятся как взаимно ортогональные к Ajft) единичные векторы (ортонормированные векторы) с помощью метода Грама — Шмидта. Подробное описа- описание этого построения можно найти в работах по теории матриц и линейной алгебре. Таким образом, набор ортонормированных векторов s(f+I) , ..., s^+1> на (k + 1)-м этапе вычисляется при по- помощи следующих соотношений: :рнц_. в<*)| , л о где | А,-1| — норма А(-. Та же процедура поиска, которая проводилась на k-u этапе, повторяется затем на (k + 1)-м этапе, начиная с точ- ки х?+° = х<*>. Палмер [9] показал, что BJ+i и |B^i| пропорциональны Л(/' (при условии, что 2 (Af'J ф 0). Следовательно, при вычислении If+l) = BfV || bf || величина Af' сокращается, и, таким образом, "sf+1) остается определенным, если даже Ajft) = 0. Имея это в виду,
Пуск Установить начальные величи- величины tuasoe (i-f, •.. , п) A xf=0,01x1", если дх;. >0,1 , й яес°}= 0,1 , если л асг < 0,1 Вычислить значения целевой функ- функции и <рункций~ ограничений Находятся ли переменная и рднк- иии-ограничения в пределах соагветс- тву/оших границ? .. Нет Является ли это нулевн-М циклом1- Добавить к npeffuffyu(ejny xi длину шаги в новом ЪНет \нет Улучшилась ли значе- ние целевой функции1, Задать art- в виде прежнего значения Заменить А ас, А. Зсыкенить л дег на -0,5&Ж( Положить Мрт Оказались ли асе направления по- поиска неуд-ачкылн* хотя бьм&инраз? Вычислить новые направления поиска и начальный вектор ж Нет Превысило ли число этапов предписан - ный предел ? Нет Достаточно ли лгало изменение Целевой (рункции и (или) компо- компонент век/пора ж ? ХДа Останов Фиг. 4.3.1. Информационная блок-схема алгоритма Розенброка (логическая часть, служащая для реализации ограничений, здесь опущена).
Методы минимизации, не использующие производные 179 Палмер предложил для вычисления s'*+1) пользоваться приводимы- приводимыми ниже формулами, что значительно уменьшит необходимое коли- количество арифметических операций и объем памяти ЭВМ [вывод фор- формул D.3.3) приведен в упомянутой статье Палмера]: При этом не требуется перегруппировка элементов Л*'- Если = 0, то sp+1) = s'^i, кроме случая, когда 2 (Л?'J = 0. Метод Розенброка не обеспечивает автоматическое окончание поиска после того, как найден экстремум / (х). Поиск либо прово- проводится на определенном числе этапов, либо заканчивается, как только величина Аг становится меньше определенного значения на нескольких последовательных этапах. В случае модифицирован- модифицированного метода Розенброка (с использованием алгоритма ДСК) после каждого этапа расстояние А\к) сравнивается с размером шага 6f, использованного для получения A\k) в линейном поиске. Если Л(*' < б'*', то б'*' делят на 10, и дальнейший поиск осу- осуществляется в k прежних направлениях с новым 6,. Если A(*} >• > б(*', то поиск продолжается на (k + 1)-м этапе, как было опи- описано выше. На фиг. 4.3.1 представлена информационная блок-схема алго- алгоритма Розенброка, а на фиг. 4.3.2 приведена траектория поиска при минимизации функции Розенброка с помощью этого алгоритма. Пример 4.3.1. Метод Розенброка Проиллюстрируем алгоритм Розенброка в приложении к задаче примера 3.4.1. Минимизировать / (х) == 4 (х^ — 5J + (*2 — бJ. Известно, что эта функция имеет минимум в точке х*= [5 6]г, где /(х*) = 0. (В це- целях экономии места будем округлять числа.) Начнем из точки х@>=[8 9]г, где f (х@)) = 45,000, ^ = 0,10. При этом направления начального поиска совпадают с координатными осями хг и х2: *-[!]•*-[?]•
180 Глава 4 Фиг, 4.3.2. Траектория поиска при минимизации функции Розенброка методом Розенброка (числа обозначают количество вычислений целевой функции). Сначала вычислим / (х) в точке _ Г8,00 + 0,10. П Г8,10'| Х== [9,00 +0,Ю •0j = L9,00j' Здесь / (х) == 47,44, т. е, имеет место неудача. Затем вычислим / (х) в точке Г8,00 + 0,Ю-01 Г8,00] [9,00 + 0,10 •lj==[9)ioj-
Методы минимизации, не использующие производные 181 Здесь / (х) = 45,61 и снова имеет место неудача. Таким образом, на следующем цикле и Xlt и Х2 должны быть умножены на Р = —0,5, или Х3 = А,4 = —0,50 • 0,10 = —0,05. Возмущение проводится из последнего успешного значения х, т. е. из точки х = [8,00 9,00]т, Сначала вычислим / (х) в точке Г8,00-0,05- 1 "I Г7.95" J [J Здесь / (х) = 43,81, что означает успех. Затем вычислим / (х) в точке ,95П Г7.95 — 0,05 • 01 Г7,95 = [9,00 — 0,05 • lj = |_8,95 где / (х) = 43,125, что снова означает успех. На следующем цикле X умножается на 3, т. е. Х6 — Х6 = 3 • (—0,05) = —0,15. Ниже приведены несколько последовательных циклов первого этапа. Номер поиска 5 6 7 8 9 10 11 12 -0,15 -0,15 —0,45 —0,45 —1,35 —1,35 —4,05 —4,05 х\ 7,80 7,80 7,35 7,35 6,00 6,00 1,95 6,00 н 8,95 8,80 8,80 8,35 8,35 7,00 7,00 2,95 f (х) 40,06 39,20 29,93 27,61 9,522 5,000 32,21 13,30 Успех (S) или неудача (F) ел ел ел ел ел ел F F Теперь уже в каждом координатном направлении за успехом по- последовала неудача, и, таким образом, закончился нулевой этап по- иска. Затем вычисляются новые направления поиска так, чтобы si было направлено вдоль вектора, идущего из х(о ' = [8 9] в хо!> = = [6 7]г, причем последняя точка соответствует наилучшему зна- чению /(х), полученному на нулевом этапе; S2' ортонормировано к si*' (фиг. П. 4.3.1а). Векторы A(i0) и Af вычисляются по формуле D.3.1), a si1» и s^ —по формуле D.3.2). — 2 — 2 Ai0) 4-2.1'
182 Глава 4 :<1) _ [-2 -2]г = Г 1 \_Y -[О -2] [1 -И7 Г 1 1 L /2 J Г * 1 1 L /2-J V2 ] V2 J х = _ [4,5681 = U.568J' В первом цикле на первом этапе поиска (k = 1) берем Ях = Я2 = = —4,05 • (—0,5) = 2,025, Сначала вычислим / (х) в направлении поиска 1 в точке Г6.000 + B,025) • (— 0,706)"| 1.7,000 + B,025) • (— 0,706)J Здесь / (х) = 0,9327, что означает успех, Затем вычислим / (х) в направлении поиска 2 в точке 1,568 + B,025) • @,706) [5,688 + B,025) .(—0,706), Здесь / (х) = 7,474, что означает неудачу. Остальные данные для первого этапа приведены ниже: х = )Г 6.000 Номер поиска 3 4 5 6 7 8 % 6,075 —1,125 —3,038 0,506 1,518 1,518 0,272 3,852 6,716 4,926 3,852 6,000 1,272 6,284 7,716 5,210 4,136 4,136 Пх) 11,175 5,351 14,722 0,646 8,743 7,473 Успех (S) или неудача (F) F F F S F F Поскольку движение в направлении 1 приводит к успеху в первых двух поисках, а в направлении 2 — к неудаче, то в поис- поисках 3 и 4 берем Х9 = 3 • 2,025 = 6,075 и ^4 = —0,5 • 2,025 = = —1,0125 соответственно. Заметим, что после неудачи в поисках 3 и 4 %3 = 6,075 и Я,4 = —1,0125 умножаются на —0,5, что дает соответственно ^6 и Я„. После поиска 6 имел место успех по каждому направлению, а после поиска 8 произошли две последовательные неудачи, так что в соответствии с данным алгоритмом на этом
ю 9 8 7 ~ Направление (8,9) | Направление поиска 2 S 6 7 в 9 Фиг. П.4.3.1а. Фиг. П.4.3.16. Траектория поиска для алгоритма Розенброка,
184 Глава 4 этап 1 закончился. Теперь должно быть определено новое направле- направление поиска. На этом мы закончим рассмотрение данного примера. Однако приведенная выше процедура была продолжена пока не был удовлетворен критерий сходимости [это потребовало 111 вычисле- вычислений значений целевой функции, и относительное отклонение f (x(ft)) от правильного значения, равного 0, составило 5,5 • 10~п, относительное отклонение хх равнялось 3,0 • 10~6, а отклонение хг составило 4,4 • 10~6]. На фиг. П.4.3.16 показана траектория основной части миними- минимизации на первых четырех этапах C4 вычисления функции); после проведения этих этапов были получены хD) = [5,036 5,938 ]т и / (хD))= 9,46 • 10~3. Остальные 77 вычислений функции понадоби- понадобились для увеличения точности х и / (х). 4.4. МЕТОД ПАУЭЛЛА В методе Пауэлла [10], который является развитием алгоритма Смита [11], определяется местонахождение минимума некоторой квадратичной функции / (х) при Н > 0 путем проведения последова- последовательных одномерных поисков, начиная с точки х^, вдоль системы полученных сопряженных направлений. Напомним (см. подразд. 3.3.1), что два направления поиска S/ и вг называются сопряжен- сопряженными, если (S/)rQst. = 0, 1Ф1, (S/)rQst.>0, t = /, где Q = y2f (x( ') — положительно определенная квадратная матрица. Нижние индексы обозначают векторы одного этапа (последние обозначаются верхним индексом). Идея алгоритма Пауэлла в сущ- сущности заключается в том, что если на данном этапе поиска опре- определяется минимум квадратичной функции / (х) вдоль каждого из р (р < п) сопряженных направлений и если затем в каждом направ- направлении делается некоторый шаг, то полное перемещение от начала до р-го шага сопряжено ко всем поднаправлениям поиска. Таким образом, этот метод аналогичен партан-методу, описанному в под- подразд. 3.3.3. Переход из точки х'о^ в точку х^> определяется формулой х?> = х(о*> +  l\k)sf\ l=*\ m~\, D.4.1) 1=0 Вычислительная процедура данного алгоритма проводится следую- следующим образом. В точке х(р0) в Еп начальные направления sj0) s^,0)
Методы минимизации, не использующие производные 185 берутся параллельными координатным осям Е". Первый шаг делает- делается в направлении s^, т. е. минимизируется / (хоО) + Xs^) по Я (с по- помощью одномерного поиска) для вычисления Яд0). Затем полагается -Zft Фиг. 4.4.1. Метод поиска Пауэлла. x(i0) = х@0) + Я-оМ0'. Как видно на фиг. 4.4.1, в точке x(i0) имеет мес- место первый обнаруженный минимум. Затем вдоль каждого из п на- направлений si0), i = 1, ..., п, в свою очередь минимизируется /(х'0) + + Яв@)), определяется соответствующее Я*0' и последовательно вычис- вычисляются по формуле D.4.1) новые значения xi0). На фиг. 4.4.1 показано расположение точек 4 , А , х\ 'и х3 для следующей целевой функции, представляющей собой функцию двух переменных: f (х) = лХ\ -\- Х2 — Х^Хр
186 Глава 4 Координатные оси в Еп имеют направления Они ортогональны, т. е. (s|n))r (s20)) = 0, но не сопряжены, поскольку (s(i0))r Hs20) == 4 Ф 0. Расположение соответствующих минимумов / (х) показано в следующей таблице: Итерация 0 1 2 тт [0 1] [1 0] [0 1] —1 —1,75 —0,875 (х<0) \Т \Xi + V [2 1] [0,25 1] [0,25 0,125] f (x|°^ ,) в точке минимума 7 0,875 0,109 Чтобы понять, какую роль в алгоритме Пауэлла играют сопря- сопряженные направления, рассмотрим следующую теорему, имеющую место для квадратичных целевых функций: Теорема Если при начальной точке х@) поиска в направлении s минимум f(x) находится в некоторой точке х(а) и если при начальной точке хA) ф х@) поиска в том же самом направлении s минимум f (x) находится в точке х<6),- то при f (х(&)) < / (х(а)) направление (х((>) — х(а>) сопряжено с s. Приведем доказательство этой теоремы. Из формулы C.3.7) следует, что для первого поиска и для второго Вычитая, получаем srH(xF>-x(fl>) = 0. Следовательно, s и (хF)— х(а>) сопряжены. Из фиг. 4.4.1 видно, что где хоО> соответствует точке х@) в формулировке теоремы, а любая точка на прямой (хз0> — Х20>) соответствует точке хA). Для примера фиг. 4.4.1 [@,25-0,25)@,125- 1,000)]Г 4 — ПГ @,26 — 2,00) 1 U ' М ' "[—I 2J [@,125- 1,000) J
Методы минимизации, не использующие производные 187 Эта теорема непосредственно может быть распространена на слу- случай нескольких сопряженных направлений; если, начиная из х@), точка х(а) определяется после использования р сопряженных направлений (р<л) и аналогично если, начиная из хA), точка хF) определяется после использования тех же направлений и / (х) минимизируется на каждом шаге, то вектор (х((>) — х<а>) соп- сопряжен ко всем р направлениям. Таким образом, мы определили два сопряженных направления, в которых следует вести поиск. Следовательно, направление si0) должно быть заменено на направление вектора (хз0> — х[0)), пред- представляющего собой полное перемещение из первого минимума. Направления поиска на следующем этапе таковы: si" = s?>, Второй этап поиска снова начинается минимизацией, на этот раз вдоль направления s'j*. Затем осуществляются, если это оказыва- оказывается необходимым, перемещения в направлениях si1* и s^1'. Вспомним, однако, что для квадратичной целевой функции двух переменных после использования двух сопряженных направлений сразу достигается минимум (фиг. 4.4.1). Алгоритм Пауэлла несколько отличается от простых начальных шагов, описанных выше. В общем случае на k-u этапе метода Пауэлла используются я линейно независимых направлений поиска; при этом поиск начи- начинается в некоторой точке Xoft) = х^1' и проводится следующим образом: Шаг 1. Начиная из хр, с помощью какого-либо одномерного поиска определяется %\k) так, чтобы / (х^ + А^**) принимала мини- минимальное значение, и полагается х1^ = xd*' + %\k)sp. Начиная из хр, определяется %Р так, чтобы / (х[к) + А^г0) обращалась в минимум, и полагается хР = x(ift> + Xpsp. Поиск продолжается последователь- последовательно в каждом направлении, всегда начиная из самой последней точки последовательности, пока не будут определены все %f\ i= I, ..., п. Величина Хр, полученная при минимизации / (х) в направлении s^**, используется на шаге 4 (см. ниже). Шаг 2. Пауэлл отметил, что поиск, осуществляемый в соответ- соответствии с шагом 1, может привести к линейно зависимым направле- направлениям поиска (см. разд. 4.3), как, например, в случае, когда одна из компонент s(fe) становится тождественным нулем, поскольку в этом направлении не может быть движения. Следовательно, два направления могут стать коллинеарными, Таким образом, не
188 Глава 4 следует заменять старое направление на новое, если после этого нап- направления нового набора становятся линейно зависимыми. Пауэлл показал также (на примере квадратичной функции), что при нор- нормировании направлений поиска в соотг.етствии с формулой определитель матрицы, столбцы которой представляют собой на- направления поиска, принимает максимальное значение тогда и только тогда, когда s'S) взаимно сопряжены относительно Н. Он пришел к выводу, что направление полного перемещения на k-м этапе s( ) должно заменять предыдущее направление только в том слу- случае, когда заменяющий вектор увеличивает определитель матрицы направлений поиска, поскольку только тогда новый набор направ- направлений будет более эффективным. Следовательно, после минимиза- минимизации / (х) в каждом из п направлений, как на шаге 1, проводится один дополнительный шаг величиной (xj,ft) — xjf'), соответствую- соответствующий полному перемещению на k-м этапе и приводящий в точку Bх{п) — x@S)). Затем проводится тест (см, шаг 3), чтобы убедиться, уменьшается ли определитель матрицы направлений поиска путем включения нового направления и отбрасывания старого. Шаг 3. Обозначим наибольшее уменьшение / (х) в каком-либо направлении поиска на k-м этапе через A(fe)= max {/(xfi,) 1 = 1, ..., П Направление поиска, соответствующее этому максимальному изме- изменению /(х), обозначим через s^. Чтобы сделать обозначения более компактными, положим /х = / (хо°), f2 ~ f (x^) и fs = f Bх^> — х^), где хР = хГ" и х<*> = Х& + ХХ = х!,*> + | W. Тогда если fah* (или) (/1-2/8 f8)(/1/,)(f1f3) следует использовать на (k-\- 1)-м этапе те же направления sf\ ..., s(n\ что и на k-м этапе, т. е. sf+1) = s\k) для i = 1, ..., п, и на- начать поиск из точки х^1» = х<?> [или из xtbk+l) = 2xin)~xi0k)^x{n%l в зависимости от того, в какой точке х функция f (x) принимает наименьшее значение]. Шаг 4. Если тест на шаге 3 не удовлетворен, то ищется мини- минимум f (x) в направлении вектора s( \ проведенного из x(oft> в x(nft); точ- точка этого минимума берется в качестве начальной для следующего (&+1)-го этапа. Система направлений, используемых на (&+1)-м этапе, та же, что и на k-м этапе, за исключением направления s^, которое заменяется на s(/i). Однако s(w помещают в последний стол- столбец матрицы направлений, а не на место s^. Следовательно, на
Методы минимизации, не использующие производные 189 (k + 1)-м этапе будут использоваться следующие направления: Шаг 5. Критерий удовлетворительной сходимости для метода Пауэлла, используемый для определения момента окончания поис- поиска в конце любого этапа, состоит в том, что изменение по каждой независимой переменной должно быть меньше, чем заданная точ- ность ег, i = 1, ,.., п, или З [] < 0,1 е. г, , , , || ^ ^ | < , Зангвилл [12] показал, что процедура Пауэлла (немного моди- модифицированная) будет сходиться к точке, в которой градиент /(х) равен нулю, если / (х) — строго выпуклая функция. Такая точка представляет собой локальный экстремум. На фиг. 4.4.2 приведена информационная блок-схема алгоритма Пауэлла, а на фиг. П.4.4.2 показана траектория поиска при мини- минимизации функции Розенброка. Пример 4.4.1. Метод Пауэлла Продемонстрируем метод Пауэлла на примере следующей зада- задачи: минимизировать / (х) = 4 (хх — 5J + (х2 — бJ, начиная из точки х@) = [8 9]г. В точке х@) функция / (х@)) имеет значение 45, 000. Сначала минимизируется / (х@), Я) по X с помощью одно- одномерного поиска в координатном направлении хх (хг остается равным 9,000): 8,000 7,992 7,952 7,752 6,752 1,752 5,460 4,043 6,335 4,919 5,000 /(к) 45,000 44,808 43,857 39,294 21,278 51,198 9,847 12,657 16,135 9,026 9,000 (минимум / (х(°))
Пуск Если k=0, st- полагаются парал- параллельными координатным осям, образующим En Да, Hem Определить Л; путем ми- нилшшции f(x'r' +Atsf) с помощью одномерного поис- поиска по Нет Вычислит» sf^H!,fi"'^^!,...,n. Индексом т обозначить на- направление slm, соответотвую- СП ?t B) (f(xf) - Оста- Останов Выполняются ли неравенства lf(x(*"'-)\<l0-'° и Заменить s^на s'k>;для других направлений sf'Ksf, i*t,...n; Определит* минимум f(x't}) в направлении s(*} начиная из ас/*; Положит» х равным х(*''* Hem Положить Положить Положить «o; « Фиг, 4.4.2. Информационная блок-схема для метода Пауэлла.
Методы минимизации, не использующие производные 191 Затем одномерный поиск осуществляется в направлении х2, начиная из точки с координатами х[1) — 5,000 (эта координата остается далее постоянной) и 41' = 9,000: 9,000 8,991 8,946 8,721 7,596 1,971 6,142 4,549 7,127 5,534 6,000 /(X) 9,000 8,946 8,678 7,403 2,547 16,232 0,024 2,104 1,271 0,217 5,44.10~15 Осуществление шага т$\.\ == 2х^0) — хоО) приводит к 2 Г5,0001 _ Г8.0001 = Г2.0001 L6.000J L9,000J [ 3,000 J' В этой точке / (x^i) = 45,000. При этом значение А(С) равно А(С) = max {[/ (8,9) - /E,9)], [/ E,9) -/ E,6)]} = 36. Заметим также, что f B,3) = 45,000 > f (8,9) = 45,000 и [/ (8,9) - 2/ E,6) + f B,3)] [f (8,9) - f E,6) - 36]* > > 0,5 ¦ 36 [/ (8,9) - f B,3)]2 > 729 > 0. Следовательно, на следующем этапе вектор поиска будет тот же, что и на предыдущем. Тем не менее поиск заканчивается в точке х* = [5 6]г, поскольку критерий сходимости удовлетворен. На фиг. П.4.4.1 приведена траектория поиска. Пример 4.4.2. Метод Пауэлла для функции Розенброка Применение алгоритма Пауэлла к функции Розенброка
192 Глава 4 12 Ю, показывает, что происходит при минимизации неквадратичной функции. Начнем с точки х(С) = = [-1,2 1,0 ]г, где /(х@)) = = 24,2. Начальные направления поиска следующие: Сначала минимизация f (х) осу- осуществляется в направлении по- поиска si(C), т. е. в направлении хх (детали этой процедуры здесь не приводятся), что приводит к точ- точке x(i0) = [—0,995 l.OOOf, в ко- которой / (х(,0)) = 3,990. Затем осу- осуществляется поиск, использую- щии вектор s2 , т. е. в направ- направлении х2, что дает Х20) = [— 0,995 0,990]г, где / (xi0)) = 3,980. Пос- После выполнения шага "—0,995 _ 0,990 хз°> -г Г—1,2001 Г-0,7901 L l.OOOJ |_ 0,980 J О 2 4 6 в х. Фиг. П.4.4.1. Траектория поиска в случае использования алгоритма Пау- элла (числа обозначают количество вы- вычислений целевой функции). где f (x3U)) = 15,872, вычис- ' ляются новые направления по- поиска: si» = Y@) = х2 A 82 <о> _ Г— 0,9951 Г— 1,2001 = Г 0,205] ° [ 0,990j L 1.000 J L— O.OlOj + (sil)f2 = V 4,21 • 10~2 = 0,206, Г 0,999 ] [—0,0488]' поскольку не удовлетворяется упомянутый выше (см. шаг 3) крите- критерий (А@) - 24,2 - 3,99 = 20,21), @) /(х@)) = 24,2 (а)
Методы Минимизации, не использующие производные 193 [24,2—2 • 3,980+ 15,372] [24,2-2,980-20,21 ]2< <0,5 • 20,21 • B4,2 - 15.872J. (б) Результаты нескольких дополнительных этапов поиска, начи- начиная с точки Xq1' = [—0,990 0,990] , приведены в следующей таб- таблице: Этап 1 2 3 (S [0 [0 [0,453 1] 1] — 0,892] ( [0,205 [0,453 [0,608 s'V —0,010] —0,892] —0,794] xo = x\l) = [ 41» = [ 42' = 42> = 42) = 43) = x2 — ж(*> —0,990 —0,990 —0,984 —0,761 -0,761 -0,702 —0,503 -0,538 —0,466 О.ЭЭО]7 0,990f 0.979]7" 0,540f 0,579]r 0,462]r 0,203]7 0,273]r 0,178JT 3,969 3,959 3.948 3,257 3,101 2,986 2,510 2,396 2,301 На фиг. П.4.4.2 представлена траектория поиска. В общей слож- сложности для получения минимума целевая функция вычислялась 1562 раза, при этом минимум имел место в точке х* = [1,000 1,000] и /(х*) = 1,338 ¦ 106«0. 4.5. МЕТОДЫ СЛУЧАЙНОГО ПОИСКА Излагаемые ниже методы случайного поиска наименее изящны и эффективны по сравнению со всеми другими алгоритмами поис- поиска, однако благодаря использованию современных высокоскорост- высокоскоростных цифровых и гибридных вычислительных машин эти методы все-таки оказываются практически полезными. Обзор различных ти- типов методов случайного поиска сделан Бруксом [13]. Фавро [ 14 ] и Ман- сон предложили методы выполнения случайного поиска на аналого- аналоговой вычислительной машине. Митчелл 115 ] предложил метод, исполь- использующий гибридную вычислительную машину, в которой выбор различных стратегий случайного поиска и изменение величины
194 Глава 4 1,5 ccf -0,5 Фиг. П.4.4.2. Траектория поиска при использовании алгоритма Пауэлла (числа обозначают количество вычислений целевой функции). шага осуществляются логическим блоком цифровой части. Ниже кратко излагаются некоторые процедуры, использующие случайный поиск. 4.5.1. КОМПЛЕКСНЫЙ МЕТОД Хотя комплексный метод был разработан Боксом [161 примени- применительно к задачам нелинейного программирования с ограничениями в виде неравенств, мы включили его в" настоящий раздел потому, что он основывается на использовании случайных направлений поиска. Этот метод возник из симплексного метода Спендли и др., описанного в разд. 4.2. Здесь вершины вычеркиваются и добавля-
Методы минимизации, не использующие производные 195 ются, как и в симплексном методе, но не делается попытки сохра- сохранить регулярную фигуру, что характерно для симплекс-метода. Затруднение, встречающееся при использовании метода Спенд- ли и Нелдера, а также метода Мида при часто повторяющемся ог- ограничении, состоит в том, что необходимо удалять каждый раз недопустимую вершину многогранника, пока не будет получена допустимая вершина. После ряда таких операций многогранник становится размерности (п — 1) или меньшей и процедура поиска значительно замедляется. Более того, если данное ограничение пе- перестает быть активным, то такой «сплющенный» многогранник трудно «расширить» снова в «-мерное пространство. Чтобы избежать этих трудностей, Бокс выбрал многогранник с более чем п + 1 верши- вершиной, который он назвал комплексом. (Митчелл и Каплан, работа которых приведена в списке литературы в конце этой главы, описали комплексный метод, не использующий случайную процедуру.) В комплексном методе используются (л + 1) или более вершин р (каждая из которых должна удовлетворять ограничениям на всех k этапах). Сначала определяется некоторая начальная точка х'0', а затем выбираются (р — 1) дополнительных вершин с помощью псев- псевдослучайных чисел в соответствии со следующим соотношением: xp = Li + r!0)(Ul.-Ll.), f = 2, р, где L,- и М[ представляют собой соответственно нижнюю и верх- верхнюю границы для Х{, a rl0) является диагональной матрицей псев- псевдослучайных чисел, равномерно распределенных на интервале @,1). Если границы неизвестны, то исходный многогранник должен быть выбран так, чтобы он покрывал область поиска. Затем целевая функция вычисляется в каждой вершине, и вер- вершина, в которой / (х) имеет наихудшее значение, заменяется новой вершиной, находящейся на прямой, проходящей через отброшен- отброшенную точку и центр тяжести оставшихся точек на расстоянии, рав- равном или большем, чем расстояние от отброшенной точки до центра тяжести. Если окажется, что в новой вершине имеет место наихуд- наихудшее значение / (х) по сравнению со всеми вершинами в новом мно- многограннике, она заменяется другой вершиной, расположенной на расстоянии, равном половине расстояния от новой вершины до центра тяжести. (Если нарушается ограничение, то новая вершина также передвигается на половину расстояния к центру тяжести.) Исходя из эмпирических исследований, Бокс предложил, чтобы растяжение многогранников определялось множителем, равным 1,3, и чтобы при поиске использовались р — In вершин. Растяже- Растяжение на этапе отражения многогранника и использование более чем (п + 1) вершин являются как раз теми чертами процедуры, которые предназначены для предотвращения «уплощения» много- многогранника, когда поиск происходит вблизи ограничений. Процедура
196 Глава 4 поиска продолжается, пока многогранник не будет стянут в центр тяжести в пределах заданной точности. Числовые результаты, полученные Хиллари [17], показали, что скорость сходимости комплексного метода зависит от характера исходного многогранника. С другой стороны, Бокс пришел к вы- выводу, что метод Розенброка более эффективен, чем симплексный или комплексный метод для задач без ограничений, и что при увеличе- увеличении размерности п функции / (х) количество необходимых вычисле- вычислений целевой функции для комплексного и симплексного методов возрастает вдвое быстрее, чем для метода Розенброка. 4.5.2. ПОВТОРЯЮЩИЙСЯ СЛУЧАЙНЫЙ ПОИСК Келли и Уилинг [18] предложили алгоритм полностью случай- случайного поиска на каждом этапе минимизации. После того как задана начальная точка х@>, строится случайная траектория для после- последовательности шагов, каждый из которых проводится в направле- направлении от некоторой точки х, где / (х) минимальна на данном этапе случайного поиска, до следующей точки х, соответствующей еще более низкому значению функции. Таким образом, начиная из точки х ', случайное значение х ' получается по следующему соотношению: xW-.)=x(*) + X«*)^I^r + A_p)r(*,ji D.5.1) где К{к) — величина шага, скаляр, который увеличивается после успешного шага и уменьшается после неудачного шага; z( ' — вектор «предыстории», указывающий среднее направле- направление поиска на предыдущих шагах: OYHV г{к) — единичный вектор нормальных отклонений, реализуемый генератором псевдослучайных чисел; р— коэффициент, изменяемый в процессе поиска; у — постоянный весовой множитель; S(S) — вектор масштабных множителей для «подходящего» мас- масштабирования пространства х; На k-ы этапе, чтобы получить xfc+1, случайный вектор х{к) и вектор предыстории z(S) усредняются, как видно из соотношения D.5.1). Вектор xk+i будет принят или отвергнут в зависимости от того, выполняется или нет неравенство / (xfe+1) < / (x(fe)). После того как xk+1 принят (или отвергнут), ttk) увеличивают (или уменьшают) с помощью множителя, грубо говоря, зависящего
Методы минимизации, не использующие производные 197 f Фиг. 4.5.1. Типичная траектория при случайном поиске. Пунктирными стрелка- стрелками представлены исследующие шаги, которые были отвергнуты, а сплошными стрелками — шаги, на которых значения целевой функции уменьшались. от того, был ли поиск трудным или легким. На фиг. 4.5.1 приведена гипотетическая траектория поиска в двумерном случае. Проведенные испытания этой программы на некоторых задачах показывают, что она работает в общем случае менее удовлетвори- удовлетворительно, чем другие алгоритмы, описанные ранее в гл. 3 и в настоя- настоящей главе. Мы не будем обсуждать этот вопрос подробно (тем не менее читатель может обратиться к табл. 9.3.3 и 9.3.4). 4.5.3. СЛУЧАЙНЫЙ ПОИСК С ПОСТОЯННЫМ РАДИУСОМ ПОИСКА И СЛУЧАЙНЫМ НАПРАВЛЕНИЕМ На фиг. 4.5.2 проиллюстрирован метод поиска, в котором ра- радиус поиска в любом направлении постоянен, но направление поиска случайно. В двумерном случае проводится окружность с начальным вектором х@) в качестве центра. В я-мерном случае это соответствует гиперсфере. В выбранных случайным образом точках на этой окружности вычисляют / (х) и отмечают точку х@) с наилучшим значением целевой функции. Затем проводят поиск вдоль прямой, проходящей через х и х , и отмечают точку х ;, где / (х) имеет минимальное значение. После этого процедура по- повторяется, начиная сточки хA). С увеличением радиуса окружности поиска (однако так, чтобы он не был слишком большим) точка хA> будет приближаться к х* (искомая точка минимума). Любая точка на сегменте, заключенном между пунктирными линиями на фиг; 4.5.2, лучше, чем точка, определенная минимизацией по методу
198 Глава 4 наискорейшего спуска, ио хуже, чем точка х ', полученная по методу, использующему производные второго порядка. Чтобы получить удовлетворительную сходимость, последовательность радиусов окружностей (или гиперсфер) периодически уменьшается. Поиск может быть ускорен, если течки на гиперсфере выбираются слу- случайно, но с ограничением, чтобы они отклонялись по крайней мере Сектор, дающий .лучшее направление, челг градиент ас'' us окружности окру sc(Ou3 окружности N4 ^Направление поиска \для окружности №1 Направление поиска окружности /v*2 ж по метод;/ наискорейшего спуска Направление отрицательного градиента Фиг. 4.5.2. Случайный поиск, иллюстрирующий эффект изменения радиуса поиска. не более чем на некоторый минимальный угол как по отношению друг к другу, так и к предыдущему направлению поиска. Этот минимальный угол может быть также изменен во время поиска. Можно показать, что если выбирать направляющие косинусы Dt определенным образом, то случайные направления поиска будут покрывать пространство х по закону равной вероятности. Действи- Действительно, определим направляющие косинусы следующим образом: где dt — случайная переменная, подчиняющаяся нормальному за- закону распределения с математическим ожиданием, равным 0, и дисперсией о1. В двумерном случае угол поиска равен ф =- arctg -^- = arctg -A-.
Методы минимизации, не использующие производные 199 Можно показать, что переменная ф равномерно распределена в интервале (—я/2, я/2). Если размерность задачи равна п, то углы фк, спроектированные на любую координатную плоскость, также равномерно распределены. Для сравнения случайного поиска, описанного выше, с неслу- неслучайным поиском определим относительное улучшение, или «выиг- «выигрыш», в / (х) за один этап как Если в окрестности х№> на поверхности гиперсферы выбирается М векторов х и линейный поиск проводится в каждом направлении 50 100 Фиг. 4.5.3. Математическое ожидание выигрыша на цикл в зависимости от чис- числа векторов х, использованных для определения направления поиска (целевая функция — сфероидальная) [20]. п — размерность задачи. x(k), то можно получить математическое ожидание величины Е (Щ как функции М и размерности п. На фиг. 4.5.3 приведены графики математического ожидания Е (k) для задачи со сфероидальной целе- целевой функцией. Эти графики могут быть интерпретированы следую- следующим образом. Сравним п — 18 и М = 3, что дает Е C) « 0,12, с п = 18 и М = б, что дает Е F) як 0,17. На двух циклах с М — 3 выигрыш будет ~ 0,24 по сравнению с 0,17 для того же числа
200 Глава 4 вычислений целевой функции при М = 6. Следовательно, при п = = 18 более эффективно использовать меньшее число векторов х на гиперсфере, но чаще делать итерации. Общий принцип, заключающийся в том, что для хорошо промас- штабированных функций регулярная процедура минимизации более шиии 1000 too С ю 0,1 0,01 : 1" n'lli • —i r- III 1 1  [1 1 IT А ш Д. д. * t АДДд Я * ,,Г . ., , t .... i hi ¦ 10 100 WOO 1QOOO Число вычислении функции Фиг. 4.5.4. Сравнение трех методов для случая 18-мерной задачи. ¦ градиентный метод; Д повторяющийся случайный поиск; 9 метод, использую- использующий направления линейного поиска, определяемые по 18 случайным точкам на гиперсфере* f (х) = х\ + 2х\ + Зх\ + ix\ + 5*| + 6д;| + 7x1- + 8* + 9j| + 10* + 0,9*^ -|- 0,8*^2 + 0,7х^з + Q,6x2u + 0,^ эффективна, чем чисто случайная, проиллюстрирован на фиг. 4.5,4, где сравниваются три метода: 1) градиентный метод (подразд. 3.1.1); 2) повторяющийся случайный поиск (подразд. 4.5.2); 3) метод, использующий направления линейного поиска, опре- определяемые по случайным точкам на гиперсфере (подразд. 4.5.3). Второй и третий методы минимизации приблизительно равно- равноценны по эффективности и оба менее предпочтительны, чем первый метод. Случайные методы и методы «последовательного перебора переменных» без поворота осей менее эффективны, чем неслучай- неслучайные методы, описанные в предыдущих разделах.
Методы минимизации, не использующие производные 201 ЗАДАЧИ') 4.1. Для целевой функции проведите три этапа поиска Хука — Дживса. Используйте Лх@> = = [0,5 0,5]г, начиная с базисной точки х@) = [2 if. (На каждом этапе проводится локальное исследование с последующим ускоре- ускорением.) 4.2. Продолжите поиск Хука — Дживса из точки х{7) примера 4.4.1 для этапов. 4.3. Определите регулярную симплексную фигуру в трехмер- трехмерном пространстве, такую, что расстояние между вершинами равно 0,2 и одна вершина находится в точке (—1,2 —2). 4.4. Используйте симплексную фигуру, построенную в задаче 4.3, для проведения восьми циклов отбрасывания вершин и полу- получения новых при поиске минимума целевой функции 4.5. Трехмерный оптимальный, симплексный поиск минимума дал следующие промежуточные результаты: Вектор х [0 0 0]г [-1/3 -1/3 -1/3]г [-1/3 -4/3 -1/3]г [_1/3 —1/3 —4/3]т Значение целевой фуикцнн 4 7 10 5 Какая следующая точка подлежит вычислению в процессе поиска? Какая точка опущена? Что будет центром тяжести нового сим- симплекса? 4.6. Для функции / (х) = 4*1 + х\ — 40*! — 12х2 + 136, начиная из точки х@) = [4 8]г, проведите этапов поиска Нелдера и Мида, включая отражение, расширение или сжатие и т. д., пока не буд>т исключены три исходные вершины симплекса. 4.7. Что будет исходным симплексом в случае поиска Нелдера ' Дополнительные задачи, подходящие для этой главы, можно найти среди задач, помещенных в конце гл. 3.
202 Глава 4 и Мида для функции / (х) = 2xf + хр Какая из вершин исключа- исключается первой? Второй? 4.8. Путем подбора величин р* и у в алгоритме Нелдера и Мида найдите их оптимальные значения для задач 26—32 из прило- приложения А. 4.9. Придавая параметрам аи Р в методе Розенброка разные значения, определите наиболее эффективные из них для случая квадратичной функции /(х) =10*?+ 0,1*1. Повторите то же для /(х) = 0,1*?+10*|. 4.10. В конце одного этапа метода Розенброка имели место следующие значения при поиске минимума / (х): Начало Неудача Успех Успех Неудача Неудача Результат Х2 Начало Неудача Успех Успех Неудача XI 3 4 2 1,5 -1,5 *2 7 8 8 7,5 10,5 а) Какие два направления поиска использорались на этом этапе? б) Каковы должны быть два новых направления? 4.11. Используйте поиск Розенброка для обнаружения мини- минимума целевой функции при р = 1/2 и а — 3, пока дальнейшее улучшение не станет невоз- невозможным. 4.12. Каковы будут два следующих этапа в методе Розенброка после вычисления функции / (х) = 4 {х1 — 5K + (х2 — бJ в точке х =[7,35 8.80F ? Предположите, что должно быть получено новое направление поиска и при этом sk — [1 0]г, s., = [0 1]г. 4.13. После минимизации функции/ (х) == 2х\ + х\ + ххх2 мето- методом Пауэлла вектор х оказался равным х = [0,371 0,11б1г и /(х)= = 0,443. Затем было вычислено новое направление поиска и достигнута точка х = [0,574 0,308]г. Каково следующее направление поиска? 4.14. Выпишите направление поиска для метода Пауэлла в слу-
Методы минимизации, не использующие производные 203 чае минимизации / (х) ¦= 2х\ -\- х\ — xLx2, начиная из точки х@> = = [2 2]г. 4.15. Найдите направление, ортогональное вектору s== I—— в точке f *_ ! LF L V з У'з у з J x = [О О 0] . Найдите направление, сопряженное к s для целевой функции f (x) = = х1 + 2х\ — ХуХг в той же точке. 4.16. Поскольку метод Пауэлла использует сопряженные на- направления, можно ли гарантировать отыскание минимума квадра- квадратичной целевой функции п переменных за п шагов? 4.17. Выпишите четыре первых направления поиска для метода Пауэлла в случае минимизации / (х) = х\ + ехр {х\ + х\), начи- начиная из точки х@) = [2 2]т. 4.18. Объясните, как методом Пауэлла получают набор сопря- сопряженных направлений поиска для трехмерной задачи. После про- продвижения в двух направлениях поиска опишите подробно определе- определение третьего направления. Станут ли все направления поиска сопряженными после двух этапов? 4.19. Даст ли метод Пауэлла тот же набор направлений поиска, что и метод Розенброка, если начать из той же начальной точки х? 4.20. Пара уравнений х\-\- х\= \ и xL + х.2 = 1 имеют решения A,0) и @,1). Линии уровней / (х) = (х? + х\ - IJ + (*i + х, - IK показывают, что имеют место минимумы в точках A,0) и @,1) и седловая точка D~1/3, 4~1/3). Могут ли методы поиска обнаружить оба минимума или только единственный минимум? Объясните. 4.21. Начиная из точки х = [3 3]г, постройте траектории (с указанием значений целевой функции / (х) в зависимости от числа итераций) для следующих методов поиска при решении задачи 4.20: а) Хука — Дживса, б) Нелдера — Мида, в) Розенброка, г) Пауэлла. Что произойдет, если начать из седловой точки? 4.22. Рассмотрите функцию / (х) = (х\ + xl) V *1+* V\ +xl + 0,25* х\+4
204 Глава 4 а) Постройте линию уровня / (х) для / (х) = 1, используя прибор для вычерчивания кривых. б) С помощью метода наискорейшего спуска за 8 итераций были достигнуты следующие точки: B) x(8) XI 0,119 0,007 —0,598 —0,012 0,677 0,006 —0,502 —0,005 f (x) 1,000 0,006 1,000 0,005 Сравните их с результатами других методов поиска. Какой метод оказывается лучшим? 4.23. Найдите наилучшие оценки параметров b0, bi и с модели путем минимизации суммы квадратов разностей 2 (Уг — Ужсп. if, ес- если дано Ушт. i 51,6 53,4 20,0 —4,2 —3,0 -4,8 X 0,4 1,4 5,4 19,5 48,2 95,9 Используйте методы а) Хука — Дживса, б) Нел дер а — Ми да, в) Пауэлла, г) Розенброка, д) случайного поиска. 4.24. Минимизируйте полную величину капиталовложений на расширение производства Р в (долларах), если дано, что и=1 / ,„ \ 0,559 / „_1 ч 0,88 / ,„ \ 0,559 p^mokr + Vkrli^-] + fво — 2 */)
Методы минимизации, не использующие производные 205 где k0 — начальный размер вложений, a kt — размер дополнитель- дополнительных вложений, в целых числах, т. е. kL= 1, 2, 3... . Найдите ми- минимальное п, п = 1, 2, 3, ..., и соответствующие к, если kn — 1. 4.25. Найдите минимум и максимум функции / (х) = 20 + 0,3^ — 4х2 + 0,3л;? + 0,3*2 + ОДед, одним из методов поиска. Начинайте из точек а) х@> = [0,25 2,5]г, б) х@> = [2,5 2,5]7', в) х<°> = [_0,25 -2,5]г. 4.26. Функция 7x1 + х Л - -т *') (^е~"а)F имеет два максимума и седловую точку. Для (a) F (xs) = 1 и (б) Т7 (х3) = х3е~(дс'+1> найдите глобальный оптимум с помощью какого- либо метода поиска. [Ответ: (а) х* = [4 2]г и (б) х* = [4 2 if.] 4.27. Можно ли найти решение задачи 4.26, начиная из точек (а) х@>= [2 if и (б) х@)= [2 1 if. Повторите для (а) х<0> = [2 2)Т и (б) х@> =[2 2 1]г, (Указание: [2 2 1]г —седловая точка.) 4.28. Имеет ли функция минимум? Максимум? 4.29. Минимизируйте (а) f (х) = 1 + *i + Ч + хз + Ч + ЧЧ + *1*з + ^1^4 ^а + х2х4 + XgX4 + x2i ~\- Х2 + хз + х\, начиная из точек х<0> = [— 3 .„30 -4 -0,1]ги х@> = [0,5 1,0 8,0 -0,7]г, (б) / (х) = хгх\х\х\ [ехр — (Ху + х2 -f x3 + ^4I. начиная из точки х@> = [3 4 0,5 if. 4.30. Определите коэффициенты уравнения у = ахьЫ/ по следующим экспериментальным данным путем минимизации суммы квадратов разностей между экспериментальными и пред- предсказанными значениями у.
206 Глава 4 S'skcii. I 46,5 591 1285 36,8 241 1075 1024 151 80 485 632 2,0 6,0 9,0 2,5 4,5 9,5 8,0 4,0 3,0 7,0 6,5 36,0 8,0 3,0 6,25 7,84 1,44 4,0 7,0 9,0 2,0 5,0 4.31. Стоимость очищенной нефти, перевозимой морским путем через Малаккский пролиэ в Японию (в долларах на килолитр), определяется в виде линейной суммы стоимости неочищенной неф- нефти, затрат на страхование, таможенных тарифов, затрат на фрахт нефти, затрат на погрузку и разгрузку, платы за морскую стоянку судна, затрат, связанных с подводным перекачиванием и хранением, стоимости площади под цистернами, стоимости очистки и затрат на перевозку продуктов [19]: , , , 2,09 • Ю*Г-°'3017 , 1,064 • 10<W0-4925 , С — Сс + Ct~{- Сх-\ ' ' 360 4,242- 1Q.WJ952+ 1,813ф 52,47? • 360 52,47? • 360 4,25 ¦ 108д (nt ¦ 1,2?) ______ "¦" 52,47? 5,042 . 10«?-0'1899 360 1,2?) 360 0,1049?а671 360 где а — фиксированные ежегодные расходы в относительных вели- величинах @,20); сс — цена неочищенной нефти, долл/кл A2,50); q — страховка, долл/кл @,50); сх — таможенные тарифы, долл/кл @,90); i — норма процента @,10); п — число портов B); р — цена земли, долл/м2 G000); q — производительность установки для очистки нефти, бар- баррель/день; t — объем танкера, кл. Считая значения, указанные в скобках, заданными, вычислите минимальную стоимость нефти, оптимальный объем танкера и
Методы минимизации, не использующие производные 207 производительность установки для очистки нефти следующими методами (заметим, что 1 кл = 6,29 баррель): а) Хука — Дживса, б) Нелдера — Мида, в) Розенброка, г) Пауэлла, д) случайного поиска. ЛИТЕРАТУРА 1. Hooke R., Jeeves Т. А„ J. Assoc. Computer Mach., 8, 212 A962). 2. Wood C. F., Application of «Direct Search» to the Solution of Engineering Pro- Problems, Westinghouse Res. Lab. Sci. Paper 6-41210-1-P1, 1960. 3. Nelder J. A., Mead R., Computer J., 7, 308 A964). 4. Spendley W., Hext G. R., Himsworth F. R., Technometrics, 4, 441 A962). 5. Box M. J., Computer J., 8, 42 A965); Campey I. G., Nickols D. G., Simplex Minimization, Imperial Chem. Industries, Ltd., 196J. 6. Paviani D., Ph. D. Dissertation, The Univ. of Texas, Austin, Tex., 1969. 7. Rosenbrock H. H., Computer J., 3, 175 A960). 8. Swarm W. H., Report on the Development of a New Direct Search Method of Optimization, Imperial Chem. Industries, Ltd. Central Instr. Lab. Res. Note 6413, 1964. 9. Palmer J. R., Computer J., 12, 69 A969). 10. Powell M. J. D., Computer J., 7, 155 A964); 7, 303 A965). 11. Smith С S., The Automatic Computation of Maximum Likelihood Estimates, NCB Sci. Dept. Rept. SC846/MR/40, 1962. 12. Zangwill W. I., Computer J., 10, 293 A967). 13. J. Operations Res., 6, 244 A958). 14. Favfeau R. R., Franks R. G. E., Statistical Optimization, Proc. 2nd Intern. Conf. for Analog Computation, Strasbourg, 1958, Presses Academiques Euro- peenes, Brussels, 1959, p. 437. 15. Mitchell B. A., Simulation, 4, 399 A965). 16. Box M. J., Computer J., 8, 42 A965). 17. Hilleary R. R., U. S. Naval Postgraduate School Techn. Rept./Res. Paper 59, March 1966. 18. Kelly R. J., Wheeling R. F., A Digital Computer Program for Optimizing Non- Nonlinear Functions, Mobil Oil Corp., Research Dept., Central Research Div., Princeton, N. J., July 1962. 19. Uchiyama Т., Hydrocarbon Process, 47 A2), 85 A968). 20. Kushner H., Efficient Iterative Methods for Optimizing the Performance of Multi-parameter Noisy Systems, MIT Lincoln Lab. Rept. 22G-0043 (AD 245802), Oct. 1960. ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА ОБЩИЕ ВОПРОСЫ Box M. J., A Comparison of Several Current Optimization Methods, and the Use of Transformations in Constrained Problems, Computer J., 9, 67 A966). Dorn W. S., Nonlinear Programming: A Survey, Management Sci., 9, 171 A963). Kowalik J., Osborne M. R., Methods for Unconstrained Optimization Problems, American Elsevier, 1968.
208 Глава 4 Powell M. J. D., A Survey of Numerical Methods for Unconstrained Optimization, SIAM Rev., 12, 79 A970). Schechter R. S., Beveridge G. S. G., Optimization: Theory and Practice, McGraw- Hill, N. Y., 1970. Spang H. A., Ill, A Review of Minimization Techniques for Nonlinear Functions, SI AM Rev., 4, 343 A962). Wilde D. J., Optimum Seeking Methods, Prentice-Hall, Englewood Cliffs, N. J., 1964. Wilde D. J., Beightler С S., Foundations of Optimization, Prentice-Hall Engle- Englewood Cliffs, N. J., 1967. Wolfe P., Recent Developments in Nonlinear Programming, Advan. Computers, 3, 155—187 A962). ДРУГИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ БЕЗ ОГРАНИЧЕНИЙ, НЕ ИСПОЛЬЗУЮЩИЕ ПРОИЗВОДНЫЕ НЕСЛУЧАЙНЫЙ ПОИСК Berman G., Minimization by Successive Approximations, SIAM Numerical Ana- Analysis, 3, 123 A966). Berman G., Lattice Approximations to the Minima of Functions of Several Variab- Variables, J. Assoc. Computer Mach., 16, 286 A969). Campey I. G., Nickols D. G., Simplex Minimization, Imperial Chemical Industries, Ltd., Aug. 1961. Fletcher R., Functional Minimization without Evaluating Derivatives, Computer J., 8, 33 (April 1965). Kiefer J., Sequential Minimax Search for a Minimum, Proc. Am. Mach. Soc, 4, 502 A953). Kiefer J., Optimum Sequential Search and Approximation Methods under Minimum Regularity Assumptions, SIAM J., 5, 105 A957). Mitchell R. A., Kaplan J. L., Nonlinear Constraint Optimization by a Nonrandom Complex Method, J. Res. Natl. Bur. Std., 72C, 249 A968). Spendley W., Hext G. R., Himsworth F. R., The Sequential Application of Simplex Designs in Optimization and Evolutionary Operation, Technometrics, 4, 441 A962). Swann W. H., Report on the Development of a New Direct Search Method of Opti- Optimization, Imperial Chemical Industries, Ltd., Central Instr. Lab. Res. Note 64/3, 1964. Vignes J., Algorithme pour la determination d'un extremum local d'une fonction de plusiers variables, Rev. Inst. Frang. Petrole, 23, 537 A968). Whitte B. F. W., Two New Direct Minimum Search Procedures for Functions of Several Variables, Spring Joint Computer Conf., Washington, D. C, April 1964. Wood С F., Application of «Direct Search» to the Solution of Engineering Problems, Westinghouse Res. Lab. Sci. Paper 6-41210-1-P1, 1960. СЛУЧАЙНЫЙ ПОИСК Bekey G. A., Gran M. H., Sabroff A. E., Wong A., Parameter Optimization by Random Search Using Hybrid Computer Techniques, Proc. Fall Joint Compu- Computer Conf., 1966, p. 191. Brooks S. H., A Discussion of Random Methods for Seeking Maxims, J. Operations Res., 6, 244 A958).
Методы минимизации, не использующие производные 209 Brooks S. H., A Comparison of Maximum Seeking Methods, J. Operations Res. Soc. Am., 7 A959). Favreau R. R., Franks R. G. E., Random Optimization by Analog Techniques, Proc. 2nd Intl. Conf. for Analog Computation, Strasbourg, France, Sept. 1958, Pres- Presses Academiques Europeenes, Brussels, 1959, pp. 437, 443. Gallagher P. J., MOP-1, An Optimizing Routine for the IBM 650, Can. G. E. Civi- Civilian Atomic Power Dept. Rept. R60cAP35, I960. McArthur D. S., Strategy in Research, Alternative Methods for the Design of Expe- Experiments, IRE Trans., EM-8, 34 A961). Matyas J., Random Optimization, Automatic and Remote Control, 26, 244 A965). Mitchell B. A., A. Hybrid Analog-Digital Parameter Optimizer for ASTRAC II, Simulation, 4, 398 A965). Munson J. K., Rubin A. I., Optimization by Random Search on the Analog Compu- Computer, IRE Trans., EC-8, 200 A959). Schumer M. A., Steiglitz K., IEEE Trans. Autom. Control, AC-13, 270 A968). Shimuzu Т., A Stochastic Approximation Method for Optimization Problems, J. Assoc. Computer Mach., 16, 511 A969). Zellnik H. E., Sondak N. E., Davis R. S., Gradient Search Optimization, Chem. Eng. Progr., 58 (8), 35 A962).
Глава 5 СРАВНЕНИЕ АЛГОРИТМОВ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ПРИ ОТСУТСТВИИ ОГРАНИЧЕНИИ В этой главе будет проведено сравнение эффективности алгорит- алгоритмов, описанных в гл: 3 и 4 (не всех, конечно, но большинства из них). Особый интерес представляют ответы на следующие вопросы: 1. Какие алгоритмы являются лучшими, а какие худшими? 2. Как влияет природа задачи, а именно степень нелинейности, число переменных и т. д. на качество работы алгоритма? 3. Какова эффективность алгоритмов, не использующих произ- производных, по сравнению с алгоритмами, использующими их? 4. Почему определенные алгоритмы в некоторых условиях не работают? Прежде чем проводить сравнение качества работы различных алгоритмов, необходимо сначала установить подходящие критерии оценки. Сначала рассмотрим различные критерии, а затем, исполь- используя два из них, оценим некоторые алгоритмы. 5.1. КРИТЕРИИ ОЦЕНКИ Прежде чем оценивать эффективность различных алгоритмов при отсутствии ограничений, сделаем несколько замечаний отно- относительно критериев, используемых при оценивании эффективности алгоритмов. Алгоритмы можно исследовать как с теоретической, так и с экспериментальной точек зрения. Первый подход может быть использован только для весьма ограниченного класса задач, поэтому мы будем оценивать эффективность алгоритмов с помощью эксперимента, т. е. решения тестовых задач. Алгоритмы могут быть проверены на специальных задачах как с малым, так и с большим числом переменных, на задачах с различной степенью нелиней- нелинейности, а также на задачах, возникших из практических приложе- приложений, таких, как задачи минимизации суммы квадратов, решение систем нелинейных уравнений и т. п. Можно надеяться, что иссле- исследование эффективности алгоритма при решении различных задач позволит предсказать общую эффективность алгоритма при реше- решении других задач. Одним из важнейших вопросов является вопрос о широте при- применения алгоритма, т. е. можно ли с помощью данного алгоритма решить большинство задач? Конечно, любой алгоритм может ока-
Сравнение алгоритмов при отсутствии ограничений 211 за7ься бессильным решить специальным образом построенную («патологическую») задачу. Даже и для других, не обязательно «патологических» задач мы не можем требовать, чтобы алгоритм решал все возможные задачи, поскольку легко поставить задачу нелинейного программирования без ограничений, приводящую к отрицательным аргументам, делению на нуль, разрывам и т. п. Более того, нельзя ожидать, что данный алгоритм выберет гло- глобальный минимум, если в задаче имеется более одного минимума, но он может считаться успешным, если ему удается достичь по край- крайней мере локального минимума. Кроме того, то, что один человек считает успехом, другой может расценивать как неудачу. Напри- Например, рассмотрим задачу 31 из приложения А, иллюстрированную фиг. 5.2.7 (метод штрафной функции), у которой глобальный ми- минимум находится на —оо, а локальный минимум — в окрестности точки A,7; 1,3). Если процедура минимизации осуществляется в направлении глобального минимума, должно ли это считаться успехом или неудачей? Если эта процедура используется как под- подпрограмма в методе штрафной функции, то здесь скорее ищется локальный, а не глобальный минимум. Результаты любого экспериментального сравнения алгоритмов в значительной степени зависят от того, как алгоритмы запрограм- запрограммированы для ЭВМ. Мелкие детали программирования могут оказывать существенное влияние на эффективность алгоритма. Небольшие изменения в критериях окончания процесса, процеду- процедурах одномерного поиска, тестах на сингулярность матриц, процеду- процедурах обращения матриц, перезадания и т. п. сильно влияют на эффективность алгоритма. Даже изменение начального шага в одно- одномерном поиске, как было показано в разд. 3.4, оказывает серьез- серьезное влияние на траекторию поиска при минимизации функции Розенброка. Некоторые из этих факторов игнорировались авторами при сообщении результатов проверки того или другого алгоритма, поскольку они считались не связанными собственно с алгоритмом, тем не менее их вклад в работоспособность алгоритма не должен оставаться незамеченным. Для повышения эффективности многих алгоритмов требуется введение эвристической логики. Такая логи- логика основывается на опыте экспериментальных неудач и имеет мало общего с фундаментальным понятием, лежащим в основе алгорит- алгоритма, но тем не менее делает его работоспособным. В этой главе рассматриваются следующие критерии для оцени- оценивания алгоритмов нелинейного программирования при отсутствии ограничений: 1. Успех в достижении оптимального решения (в пределах заданной точности) для широкого круга задач. 2. Число необходимых вычислений целевой функции. 3. Машинное время, требуемое для реализации алгоритма (в пределах желаемой степени точности).
212 Глава 5 ¦f(x) f(x) \ f(x(k)) Фиг. 5.1.1. Объединенные крнтерии окончания процесса минимизации / (х)для двумерного случая. Критерий, основанный на неравенстве приводит к преждевременному окончанию процесса на плоском плато; критерий, основанный только на неравенстве приводит к преждевременному окончанию на крутом спаде. Ниже мы рассмотрим некоторые вопросы, касающиеся выбора того или другого из этих критериев и связанной с ними неопреде- неопределенности. Основной критерий, используемый при оценивании алгоритмов общего типа, заключается в том, может ли данный алгоритм ре- решить большинство предложенных задач. С этим связано понятие о приемлемой точности решения, т. е. точности определения значе- значений целевой функции / (х*) и элементов вектора х*. Обычно
Сравнение алгоритмов при отсутствии ограничений 213 точность решения зависит от критериев окончания, применяющихся для определения момента завершения вычислительной процедуры. Чтобы добиться некоторой стандартизации в критерии окон- окончания, во всех излагаемых здесь (ранее не опубликованных) рабо- работах алгоритмы модифицировались так, чтобы одна и та же относи- относительная ошибка как в определении оптимального вектора х, х*, так и в определении / (х*) была общей основой при выборе момента прекращения поиска в каждой программе. На фиг. 5.1.1 видно, почему должны удовлетворяться оба критерия. Если алгоритм заканчивается только из-за того, что относительное изменение / (х) меньше некоторого малого числа, плоское плато может выз- вызвать преждевременное окончание. Если же алгоритм заканчивается только на основании относительного изменения в элементах х, крутой склон может вызвать преждевременное окончание. Исполь- Использование для этой цели только составляющих градиента может при- привести к окончанию в седловой точке, а при минимизации штрафных функций составляющие градиента могут быть малы, но, несмотря на это, вектор х может значительно изменяться. Следует отметить одно обстоятельство, касающееся критериев окончания и заключаю- заключающееся в том, что, когда / (х) и (или ) х стремятся к нулю, критерием окончания должно быть изменение функции или переменной по отношению к некоторому значению, а не по отношению к их теку- текущему значению, чтобы избежать деления на малое число. Некото- Некоторые авторы в качестве критериев окончания использовали норму V/ (х), норму х или норму s, и, хотя эти критерии являются вполне адекватными, в большинстве случаев они имеют те же недостатки, которые проиллюстрированы на фиг. 5.1.1. Если данная задача может быть решена рассматриваемым алго- алгоритмом, то второй широка применяемый критерий начинает играть важную роль. В этом случае мерой эффективности алгоритма явля- является количество вычислений функции / (х), необходимых для дости- достижения определенной точности в / (х) и х. Безусловно, этот крите- критерий лучше, чем критерий, использующий число этапов, поскольку последнее меняется в очень широких пределах для разных алго- алгоритмов и во многих алгоритмах понятие «этап» означает нечто совершенно отличное от выбора нового направления поиска. Тем не менее число вычислений целевой функции само по себе не слиш- слишком подходит в качестве меры эффективности для алгоритмов с очень разными стратегиями, поскольку число вычислений целевой функции для выбора направления поиска по отношению к числу вычислений функции при движении в данном направлении сильно меняется от стратегии к стратегии. Более того, с каким весом долж- должно браться количество вычислений производных по отношению к вычислениям самой целевой функции, чтобы при оценке методов, использующих производные, учитывались и количество вычисле- вычислений целевой функции, и количество вычислений производных?
214 Глава 5 Наконец, количество вычислений функции может быть уменьшено с помощью всевозможных тестов, также требующих машинного времени, специальных эвристических операций, матричных опе- операций и т. д., так что сравнение, основанное только на количестве вычислений функции, может легко ввести в заблуждение. Следовательно, третий из упомянутых выше критериев — машин- машинное время, необходимое для реализации алгоритма, также может рассматриваться как мера эффективности алгоритма. Хотя относи- относительное время решения не является особенно подходящей мерой эф- эффективности алгоритмов нелинейного программирования при отсут- отсутствии ограничений, за неимением лучшей меры часто приходится ис- использовать именно ее. В разд. 9.1 сделаны некоторые замечания по поводу трудностей, которые могут возникнуть при использовании в качестве критерия времени решения. Для простых тестовых за- задач время, требуемое для ввода данных и извлечения из памяти команд печати (но не самой печати) в программе с не очень детальной распечаткой, скажем только х и / (х) на каждом этапе, может быть в 2—3 раза больше времени, оцениваемого без учета этих фаз про- программы. В ЭВМ, где центральный процессор работает по несколь- нескольким программам в режиме разделения времени, полное время с уче- учетом сумммарного времени ввода — вывода может в 2 или 3 раза превысить время, необходимое для решения. Таким образом, тип ЭВМ, тщательность программирования алгоритма и характер учи- учитываемого времени имеют существенное значение при использо- использовании времени решения в качестве критерия. Подобная информация обычно опускается в публикациях, описывающих работу того или иного алгоритма. 5.2. ТЕСТОВЫЕ ЗАДАЧИ Различные авторы алгоритмов нелинейного программирования использовали для их проверки большое число тестовых задач. Некоторые из этих тестов использовались так часто, что стали играть роль «классических», поскольку много раз применялись для сравнения качества работы разных алгоритмов, обычно, чтобы показать, что новый алгоритм не хуже или лучше предшествующего. В табл. 5.2.1 приведены десять целевых функций, которые доста- достаточно часто встречались в литературе в качестве тестовых функций; задачи 25—35 из приложения А представляют собой дополнитель- дополнительный набор тестовых задач, причем некоторые из них раньше не использовались. На фиг. 5.2.1—5.2.8 приведены линии уровней двумерных целевых функций. Функция Розенброка (функция I в табл. 5.2.1 и задача 2 в приложении А), которая многократно рас- рассматривалась в гл. 3 и 4, имеет крутую закругленную впадину вдоль кривой хг — *i; целевая функция II также имеет впадину, но более мелкую; у функции III имеется крутая впадина вдоль
Таблица 5.2.1 Функции нелинейного программирования при отсутствии ограиичеиий, применявшиеся в качестве тестовых функций I: II: III: IV: V: VI: VII: VIII IX: X: Функция 100 (x2 — *iJ + (l — XjJ (*2 — *lJ + A — ^lJ (y v^\2 _1_ 1 ftfi /1 v \2 100 (*,_jC)«+(i_Xl)» [1.5-*! A - Jts)]» + [2,25 - Xi A-xf)]2 + + [2,625 - xt A - *|)]2 100 (x, — д^J + A — xxJ + 90 (x4 — X3J + A — — x3K+ 10,1 (xa— lJ-f (x4— IJ + 19,8 (x, — 1) X X(*4—1) „j_ JQ C^ % \4 ¦ vci — ^2) ~r iUU (x2 — ^3)" -f- t§ (#3 — ли) ~г ^1 -j- t /v 1 \2 ~~i V 4 ~~" / функция Р задачи 10 из приложения А функция Р задачи 18 из приложения А Литература [1] [2] [2] [2] [3] [4]Ч [5]2> [6] Ссылка на ли- литературу да- дана в прило- приложении А Начальный вектор (-1,2; 1) (-1.2; 1) (-1,2; 1) (-1,2; 1) (-3,-1, -3, -1) (-3, -1, 0, 1) A. 2, 2, 2) Детали изложены в приложении А; описание функции Р см. в гл. 7 Детали изложены в приложении А; описание функции Р см. в гл. 7 Значения f (х*) 0 0 0 0 0 0 0 0 Детали жеиии ции Р Детали жеиии ции Р Мх) в точке минимума A, A. A, A. C, A. @, [0, Xs 1) 1) 1) 1) у) 1. 1, О 0, 0, 0) 1, 1, A ± ля)] изложены в прило- А; см описание фуик- в гл. 7 изложены в ярило- А; см. описание функ- в гл. 7 1) Функция имеет несколько локальных минимумов; это обстоятельство может вызвать преждевременное окончание процесса. 2) Заметим, что матрица Гессе этой функции в точке минимума сингулярна.
-roa -1,00 Ф и г. 5.2.1, Функция J: / (х) = 100 (х2 — *fJ + A — -1,00 - Фиг. 5.2.2. Функция II: / (х) = (х2 — xfJ + A Ч) -xj».
3J00 2,00 -1,00 0,00 1,00 2,00 or, -1,00 L Фиг. 5.2.3. Функция III: / (x) = (хг — x\)-\-100 A— хг Фиг. 5.2.4. Функция IV: /(х)=1ОО(ха—* + A
-4,00 -3,00 -2,00 -1,00 QOO -WO -5,00 L Ф и г".'2".5.' Функция V: / (х) =^ [1,5 — хг A — ха)]2 + [2,25— ф и г- 5.2.6. Функция 28 приложения А: / (х) * 625 i х (\ — л ^1^ -А— (х -А~- х^ 7^
219 4,00 3,00 2,00 -1,00 1,00 2,00 3,00 4,00 5,00 x, ? разрыв -2,00 Фиг. 5.2.7. Функция 31 приложения А: / (х) = (хг — 2J + (х2 — IJ + 0,04 , 1 , „ , .,„ 2,00 SfiO -1,00 аоо 1,00 2,00 Фиг. 5.2.8. Функция 33 приложения А: / (х) = е _ „-<*!-*$> [2Х\+ Зх%
220 Глава 5 прямой Xi = 1; у функции IV крутая впадина вдоль кривой jc2 == = х\\ функция Биля V также имеет узкую закругленную впадину, приближающуюся к прямой х2 — I. Функции IX и X представ- представляют собой штрафные функции (они будут описаны в гл. 7). 5.3. ОЦЕНИВАНИЕ АЛГОРИТМОВ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ПРИ ОТСУТСТВИИ ОГРАНИЧЕНИЙ Сначала рассмотрим некоторые опубликованные работы, а за- затем обратимся к неопубликованным результатам и сравним боль- большинство алгоритмов, изложенных в гл. 3 и 4, на единой основе. В работе Леона [7] среди других алгоритмов сравниваются в частности следующие: 1) Метод Дэвидона в том виде, как его запрограммировал Стивене [8]. 2) Программа Баера [9]. Эта программа генерирует последо- последовательность ограниченных минимумов и проводит между ними интерполяцию в окрестности / (х). 3) Партан-метод наискорейшего спуска. 4) Модифицированный партан-метод [10]. 5) Итерационный- партан-метод. При этом используются первые пять целевых функций, приведен- приведенных в табл. 5. 2. 1. Соответствующая таблица результатов (табл. 5.3.1) содержит несколько начальных векторов, конечный вектор х, значение / (х) в конечном х и относительное машинное время, необходимое для выполнения минимизации. Все значения, за исклю- исключением относительных значений времени, округлены до третьего десятичного знака. Партан-метод наискорейшего спуска и итера- итерационный партан-метод не включены в табл. 5.3.1, поскольку эти алгоритмы работали очень плохо в том смысле, что в значительной части тестовых решений конечные векторы х отклонялись от известных векторов х*, соответствующих минимуму, более чем на 5%, а во многих случаях эти отклонения составляли свыше 100%. Из табл. 5.3.1 следует, что процедура Дэвидона — Флетчера — Пауэлла представляется наилучшей в смысле общего метода нели- нелинейного программирования при отсутствии ограничений в отно- отношении получения правильных значений вектора х в точках мини- минимума целевой функции. Процедура Баера приводила к ошибкам при минимизации целевой функции Биля, если процесс начинался с некоторых определенных начальных векторов, тогда как модифи- модифицированный партан-метод оказался неспособным справиться с функ- функцией Розенброка. Поскольку относительные значения времени выполнения алгоритмов были приблизительно одинаковы, метод
Таблица 5.3.1 Функция I 11 III IV V Начальные значения *i х2 Их) — 1,200 1,000 24,200 —2,000—2,000 3609,0 5,621—3,635 1,24-105 —0,221 0,639 36,320 —2,000 —2,000 45,000 0,803—0,251 0,840 0,211 3,505 12,600 2,000—2,000 136,00 1,992—3,222 150,10 1,986 5,227 98,86 1,200—2,000 1389,8 0,248—3,082 964,54 —1,200—1,000 57,840 0,000 0,000 14,200 8,000 0,200 81,700 5,000 0,800 0,490 8,000 0,800 2,042 Результаты минимизации пяти целевых функций различными Дэвидои конечные значения 1,000 1,000 3,4-10-" 1,000 1,000 6,5-10-" 1,000 1,000 9,3- Ю-13 1,000 1,000 7,5-Ю5 1,000 1,000 1,4-10~12 1,000 1,000 5,8-Ю-15 1,000 1,000 1,5-Ю-14 1,000 1,000 5,5-Ю-12 1,000 1,000 1,1-Ю-12 1,000 1,000 2,7-Ю-12 1,000 1,000 2,3-Ю-13 1,000 1,000 5,6-10~13 1,000 1,000 9,2-10~13 3,000 0,500 1,8- Ю-15 3,000 0,500 1,0-10-" 3,000 0,500 2,2-Ю-13 3,000 0,500 2,8-10~12 отно- си- тель- ное вре- время') 1,00 0,64 0,78 0,66 0,51 0,26 0,30 0,44 0,34 0,23 0,95 0,92 1,00 0,54 0,67 0,42 0,62 методами Баер конечные значения *i Ч f(x) 1,000 1,000 2,7-Ю-12 1,000 1,000 4,3-Ю-12 1,000 1,000 1,0- Ю-12 1,000 1,000 1,7 -10-12 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 ,000 7,2-10~16 ,000 9,7-10-" ,000 2,9-10~15 ,000 5,6-10~15 ,000 2,6-Ю-10 ,000 2,2-10~12 ,000 2,1 -10—13 ,000 1,0 -10—8 ,000 5,2-10~14 3,000 0,500 2,3-Ю-12 2,045 0,075 5,4- КГ 3,000 0,500 3,6-10~14 7,996 0,874 3,8-1Q-1 отно- си- тель- но» вре- мя') 0,50 1,71 1,62 0,92 1,77 1,11 0,29 0,50 0,20 0,32 1,05 0,90 0,98 0,37 1,21 0,94 0,10 Модифицированный партан-метод конечные значения 0,939 0,882 3,7-Ю-2 1,002 1,003 4,0-Ю-6 1,000 1,000 9,6-10—3 0,940 0,883 3,6-10-3 0,999 1,000 1,0-10 0,991 0,979 9,2-10—5 1,000 1,000 2,2-10~16 1,000 1,000 4,7-10-" 1,000 1,000 1,Ы0-12 1,000 1,000 1,0-10—12 1,000 0,999 9,8- Ю 1,000 1,000 9,9-10—13 1,000 1,000 1,1 -10—13 2,999 0,500 3,3- \0~7 3,002 0,501 8,7-10—7 3,000 0,500 3,7-10~13 3,000 0,500 Ы0° Отно- си- тель- ное вре- время1) 0,50 0,35 0,41 0,50 0,34 0,19 0,27 0,17 0,16 0,12 0,94 1,16 1,15 1,07 0,40 0,43 0,37 ') Время, отнесенное ко времени минимизации функции I методом Дэвидона, начиная с точки х@) = [—1,2 1,0].'*
222 Глава 5 Сравнение нескольких методов миними Функция и Метод Дэвидона — Флетчера — Пауэлла Уортман [11] !•& Флетчер—Пауэлл [12] т о о ? Метод Ньютона (Уортман [II]) Ц-1, 2, 1, 0) I (—2, 547, 1, 489) 11@,211, 3,505) IV (-1, 2, 1, 0) IV @, 248, —3, 082) V@, 0) V(8, 0, 8) VI C, —1, 0, 1) rt-12 1 -10" 6-10~16 i -ю-u о 1/л—12 7-10~15 7-10-14 7-10 5 10 ,-ю 23 16 9 21 23 12 21 32 120 87 36 120 115 39 119 149 1 -10- 18 -13 ,-16 ,-18 ,-15 -19 ,-17 2,5-10" 10 0.251) ¦10 12 17 20 8 25 16 9 400 26 ') Матрица Гессе не является положительно определенной, поэтому был испол 98 130 28 127 71 31 1922 95 тьзован поиск Дэвидона — Флетчера — Пауэлла представляется предпочтитель- предпочтительнее других. В другом исследовании, проведенном Уортманом [11], приме- применялись методы Дэвидона — Флетчера — Пауэлла и Ньютона сов- совместно с методами поиска Хука — Дживса и Пауэлла (описанными в гл. 4); последние включались в качестве подпрограмм полных машинных программ решения. Были проверены функции I, II, IV и VII табл. 5.2.1. В табл. 5.3.2 приведены результаты Уорт- мана, а также некоторые данные, полученные другими авторами, в виде количества необходимых вычислений функции. (В табл. 7.2.1 представлены некоторые соответствующие результаты для функции IX табл. 5.2.1.) В табл. 5.3.2 в столбце «этапы» приведены числа успешных направлений поиска (т. е. число минимумов, най- найденных при осуществлении линейных поисков по этим направле- направлениям). В процессе линейного поиска осуществлялись последова- последовательный поиск и подгонка кривой. Используя процедуру Хука и Дживса, Уортман немного моди- модифицировал ее по сравнению с описанной в разд. 4.1 так, что в слу- случае успешного шага следующее значение х( берется в два раза боль- большим предыдущего хс, тогда как при неудаче следующее значение xt берется в два раза меньшим предыдущего х{. Для поиска по методу Хука и Дживса столбец «этапы» относится к исследующему поиску и, возможно, продвижению по образцу, тогда как в случае поиска по методу Пауэлла этап включает обнаружение минимума
Сравнение алгоритмов при отсутствии ограничений 223 Таблица 5.3.2 зации при отсутствии ограничений Метод Дэвиса — Свеина • Кемпи (Флетчер [13]) Метод Хука и Дживса (Уортман [11]) Метод Пауэлла (Уортман [11]) Пауэлл [12] Щ а 9-Or щ чис чис фун 1,5. Ю -12 21 187 1,6- Ю -11 12 196 10 10 10 10 10 ю- 10 ю- ,-9 ,-ю -9 -7 -10 87 142 40 106 44 43 56 100 353 588 168 458 181 181 230 769 ю-14 10-14 6-ю г-16 1-13 ,-16 ,-15 3-10 ,-17 -9 17 24 7 9 19 192 216 66 202 333 77 119 89 7-Ю -10 5. Ю -9 методом наискорейшего спуска; «конечное = С7-94 0.858]г 13 151 16 235 с помощью линейного поиска в каждом из N независимых коорди- координатных направлений и, возможно, в смешанном направлении. Все конечные значения элементов вектора независимых пере- переменных отклонялись от истинных значений элементов х* не боль- больше, чем на 10~5 A0~~4 для процедуры Хука — Дживса), за исклю- исключением особо отмеченных случаев. Приведенное здесь число вычис- вычислений функции несколько больше, чем в случае, если бы удалить одну из частей программы, работающей как машинная подпро- подпрограмма, и использовать ее отдельно. Тем не менее алгоритм Дэви- дона — Флетчера — Пауэлла оказывается почти таким же удов- удовлетворительным, как и метод Ньютона. (Когда в этих примерах при использовании алгоритма Ньютона матрица Гессе оказывалась не положительно определенной, матрица направлений заменялась единичной матрицей, т. е. в качестве направления поиска выбира- выбиралось направление отрицательного градиента.) В табл. 5.3.3 для нескольких алгоритмов приводится число этапов, приведенных в сообщении Пирсона, необходимых, чтобы уменьшить f (х) ниже уровня 10~13. Эти числа в сущности не явля- являются количеством проведенных вычислений функции, поскольку на каждом этапе для обнаружения минимума / (х) осуществлялся одномерный поиск Фибоначчи. Изменяя критерий окончания про- процесса одномерного поиска, получим различное число итераций; следовательно, данные, приведенные в таблице, должны рассматри- рассматриваться скорее как относительные, чем как абсолютные. Столбец
Таблица 5.3.3 {§ Алгоритм Пирсона №2 Пирсона №3 Дэвидона — Флетче- ра — Пауэлла Ньютона Флетчера — Рнвса Проективный Ньютона (Пирсона) Проективный (Заутендайка) Число этапов для Раздел 3.4.3 3.4.3 3.4.2 3.2.1 3.3.2 3.4.3 3.3.4 уменьшения / (х*) Функция I по табл. 5.2.1 (функция Розенброка) без пере- перезадания 18 21 19 12 — 36 — с пере- перезаданием 31 37 35 — 16 21 42 до значений, меньших 10~13 ]15] Функция VI по табл. 5.2.1 (функция Вуда) без пере- задаиия 36 46 40 23 — 58 — с пере- перезаданием 47 47 49 _ 30 55 65 Функция IX по табл. 5.2.11) без пере- задакия 27 F2) 33 F7) 27 F0) U B2) — 31 B0) B6) с пере- перезаданием 22 F0) 22 E4) 22 E6) — 34 (F) 67 E4) G0) Функция X без перезадакия 134 B21) 136 B46) 406 E00) 30 D8) — 166 B30) A20) по табл. 5.2.12) с пере- перезаданием 98 A87) 100 A68) 97 A69) — >489 (F). 113 A86) BП) 1) Числа без скобок для г = 1; со скобками — для г = 2,44-10—* (см. гл. 7). 2) Числа без скобок для г = 1; со скобками — для г = 0.0625 (см. гл. 7). F — неудача ^^^^
Сравнение алгоритмов при отсутствии ограничений 225 «с перезаданием» указывает, что после (п + 1)-го шага величина т)""* задавалась заново равной R@) и алгоритм повторялся; в методе Флетчера — Ривса и проективном методе начальная точка всегда должна перезадаваться. Метод Ньютона всегда оказывался лучшим; что же касается остальных методов, то, за исключением метода Флетчера — Ривса, который не сработал в некоторых тестах, все они оказались прибли- приблизительно равной эффективности. Из табл. 5.3.3 видно, что переза- перезадание ц дает существенный выигрыш для целевых функций, полу- полученных с использованием понятия штрафной функции, ибо, как только х приближается к активным ограничениям, матрица Гессе для штрафной функции становится очень «плохой». Для других функций задание заново и\ не приводит к каким-нибудь преимущест- преимуществам. Мак-Кормик и Пирсон [14] пришли к выводу, что использова- использование методов переменной метрики с перезаданием является наиболее подходящим на ранних этапах оптимизации, тогда как отказ от перезадания предпочтителен на более поздних этапах, когда х ока- оказывается настолько близок к х*, что эффективными становятся свойства сопряженности алгоритмов переменной метрики. Рассмотрение приведенных выше результатов тестов дает лишь частичную картину относительной эффективности алгоритмов не- нелинейного программирования при отсутствии ограничений, пос- поскольку в каждом исследовании использовались различные методы одномерного поиска, разные критерии окончания процесса и раз- различные методы подсчета количества вычислений функции. Более желательным является проведение оценивания с использованием единого набора, стандартов и тестовых задач. Для уменьшения объема данных, которые могут быть получены при решении тесто- тестовых задач, до разумно достижимого предела мы воспользуемся тем фактом, что все алгоритмы уменьшают (по крайней мере долж- должны уменьшать) целевую функцию монотонно от этапа к этапу. Так, представляется разумным строить графики [/ (х) — / (х*) ], J f (х) | или, что еще лучше, lg [/ (х) — f (х*) ] в зависимости от количества вычислений функции или времени, т. е. кривые типа изображенных на фиг. 5.3.1 и 5.3.2. Можно было бы взять | х —х* | или другой критерий для сравнения, но эти функции не будут уменьшаться монотонно. Такие кривые дают эмпирическую меру скорости сходимости соответствующих алгоритмов. Заметим, что если заканчивать процесс оптимизации всегда при заданной разум- разумной степени точности в [/ (х) —- / (х*I, скажем 10~10, то можно использовать соответствующее этому уровню число вычислений функции или время в качестве единственной меры эффективности алгоритма. Хотя абсолютные значения количества вычислений функции или времени могут не иметь большого смысла, относитель- относительное ранжирование алгоритмов по этим величинам оказывается ра- разумным количественным механизмом сравнения.
0 - » <> Флет иер- Ривс * » ТТауэлл +- ф ГЪлдилтпейн-Прайс о——оРозенброк 1 Л Хук-Дживс - _ _ Нелдер-Мир • •• Бройден Аг— • -чД Дэвидон - Флетчер - /Тауэл-л О- - —<^> Пирсон 3 Миртае - Сарджент №д с пере- заданием (чаетнйе сообщение) флетчер V М I О 100 200 300 400 *v 1000 Эквивалентное число вашислений функции Фиг. 5.3.1. Сравнение алгоритмов нелинейного программирования при отсутст» вии ограннчений для функции Розенброка.
«О Флетчер - Ривс » ¦¦¦•¦ • Паумл ф Голдштейн- Прайс О———О Розенброк Лулт -Дживс «- - „ Нелgep-Mug Бропден Дэвидон - Флетчер - ТТаузмл Пирсон Муртаг —Сарджент №3 с перезаданием (частное сообщение) -75 5000 /7 /ЛЙР 2000" 3000 4000 Эквивалентное количество вычислений Фиг. 5.3.2. Сравнение алгоритмов нелинейного программирования при отсутствии ограничений для функции Вуда.
228 Глава 5 Попытки сравнения различных алгоритмов на основе количества вычислений функции могут быть менее удовлетворительными, чем сравнение с использованием времени решения, особенно если последнее может быть определено для одной и той же ЭВМ, исполь- используются общие подпрограммы и задачи решаются до одной и той же степени точности. В качестве примера приведем (см. фиг. 5.3.1) одну из причин, почему использование количества вычислений функции в качестве критерия является не очень подходящим. Эквивалентное число вычислений функции в методе Пауэлла пред- представляет собой просто число вычислений целевой функции; в методе Флетчера — Ривса оно представляет собой количество обращений к функциональной подпрограмме, составленной так, что один градиентный вызов (содержащий две производные) эквивалентен одному вызову целевой функции; в алгоритме Голдштейна —• Прай- Прайса вычисление двух компонент градиента также считается эквива- эквивалентным одному вычислению целевой функции. На фиг. 5.3.2 один градиентный вызов эквивалентен двум обращениям к вычислению целевой функции. Однако компоненты градиента в алгоритме Голд- Голдштейна — Прайса вычисляются гораздо чаще, чем в алгоритме Флетчера — Ривса, что приводит к некоторому относительному искажению при сравнении по этому критерию указанных алгорит- алгоритмов из-за произвольного определения эквивалентного количества вычислений функции. Именно поэтому время решения до заданного значения lg [/ (х) —/ (х*)], а не эквивалентное количество вычисле- вычислений функции было выбрано в качестве единственной наиболее под- подходящей меры эффективности. Там, где это было удобно, применялись метод золотого сечения и поиск ДСК — Пауэлла. Эти методы описаны в разд. 2.6. В при- приложении Б содержатся машинные программы этих процедур и ряда алгоритмов. Критерии окончания процедур одномерного поиска были одними и теми же. Окончание процедур основных алгоритмов тоже проводилось по одним и тем же критериям. Для оценивания времени решения все тестовые задачи решались на одной и той же машине ЭВМ CDG 6600. Время печатания, периферичес- периферической обработки информации и время работы на пульте исключены из времени, приведенного в табл. 5.3.4, так что эти данные действительно представляют собой число секунд, необходимых для реализации алгоритмов без какого бы то ни было прерывания процесса. В табл. 5.3.5 дана оценка алгоритмов на основании данных табл. 5.3.4. Все алгоритмы вместе со своими подпрограммами ран- ранжировались в порядке возрастания времени от номера 1 (самый быстрый) до номера 11. Алгоритм Пирсона № 2 не рассматривался из-за повторяющихся неудач. (Оценки некоторых других менее надежных алгоритмов приводились в гл. 3 и 4.) После ранжиро- ранжирования по каждой задаче результаты были усреднены по всем 11
Таблица 5.3.4 Сравнение времени решения (в секундах) для одиннадцати тестовых задач с помощью одиннадцати алгоритмов Алгоритм Бройдена дек 3 Дэвидона — Флет- чера —- Пауэлла дек 3 Пирсона №2 дек 3 Пирсона №3 дек 3 Раздел 3.4.1 3.4.2 3.4.3 3.4.3 2A')) 0,0132) 0,0162> 0,014*) 0,01 б2) >1,00 >1,00 0,058 0,051 VI1) 0,089 0,092 0,088 0,113 F F 2,900 @,314)°) 3,012 A,199K> (Задачи из 2S (VII1)) 0,060 0,046 0,104 0,088 F F >100 2,763 приложения 28 0,040 0,012 0,027 0,010 >1,00 >1,00 0,028 0,011 А или табл. 29 0,031 0,018 0,099 0,046 F F 0,059 0,106 5.2.1) J0 0,024 0,021 0,027 0,025 F F 0,046 0,065 31 0,010 0,006 0,008 0,019 0,008 0,011 0,008 0,010 32 0,125 0,109 0,052 0,121 F F >10 >ю 33 0,015 0,016 0,015 0,016 0,022 F 0,024 0,016 34 0,037 0,132 0,056 0,134 F — >10 >ю 35 (V») 0,013 0,012 0,015 0,010 F F 0,016 0,013
Продолжение табл. 5.3.4 Алгоритм Голдштейна — Прайса дек 3 га Флетчера — Ривса дек 3 Флетчера Хука — Дживса Нелдера—Мида Розенброка Пауэлла дек 3 Раздел 3.4.6 3.3.2 3.4.5 4.1 4.2 4.3 4.4 2 (I1)) 0,01 б2) 0,013 — 0,027 — 0,022 0,100 0,097 0,058 0,035 0,050 VI1) 0,079 0,089 — 25,04> 0,330 0,024 0,152 0,154 0,378 0,041 0,098 (Задачи из 1 2S (VII1)) 0,100 0,057 — 0,144 2,330 0,050 0,067 0,072 0,097 0,084 0,174 1риложения 28 0,052 0,014 0,081 0,055 _ 0,006 0,008 0,024 0,035 0,006 0,021 А или табл. , 29 0,026 0,044 — 0,069 — 0,018 0,167 0,036 0,125 0,014 0,106 >.2.1) 30 0,021 0,029 — 0,019 _ 0,012 0,018 0,148 0,131 0,014 0,028 31 0,096 0,145 — 0,015 — 0,004 0,012 ?) 0,025 0,005 0,015 32 0,066 0,149 0,094 F F 0,050 0,127е) 0,685е) 0,202") 0,178 0,857 33 0,035 0,020 — 0,0135> — 0,010 0,054 0,019 0,027 0,017 0,018 34 0,158 0,097 0,043 0,064 0,975 0,028 F 0,531 0,148 0,025 0,108 35 (V1)) 0,014 0,016 — 0,012 — 0,011 0,009 0,014 0,025 0,012 0,027 1) Римские цифры означают иомер задачи по табл. 5.2 i. 2) Время увеличивается на 70—100%, если поиск проходит по изогнутой впадине. 3) С перезаданием. 4) С перезаданием на (п + 1)-м этапе. 5) Работает только с масштабированием (см. машинную программу в приложении Б). 6) Закончил решение иа плоском плато до достижения минимума. 7) Поиск стал уходить в направлении глобальиого минимума иа —со. Обозначения: ДСК — метод ДСК; 3 — метод золотого сечеиия; F — неудача; ГП — метод Голдштейна ¦ ¦ Прайса.
Сравнение алгоритмов при отсутствии ограничений 231 задачам, причем предполагалось, что задачи имеют равный вес. Конечно, можно было бы считать, что более трудные задачи должны иметь больший вес, чем более легкие, но это не было сделано. Тем не менее возможное различие при применении двух подпро- подпрограмм одномерного поиска было исключено путем слияния двух ранжировок в одну общую для каждого алгоритма. Интересным результатом такого ранжирования было то, что алгоритмы оказалось возможным объединить в группы. В табл. Таблица 5.3.5 Оценка алгоритмов нелинейного программирования при отсутствии ограничений, исходя из времени решения Классификация Наилучший Хороший Благоприятный Ненадежный Алгоритм ( Флетчера Дэвидона - Флетчера—Пауэлла Бройдена Пауэлла Голдштейна —Прайса i Нелдера — Мида Розенброка \ Флетчера — Ривса Хука —5Дживса v. Пирсона № 3 Пирсона №2 5.3.5 приведены в порядке уменьшения ранга (увеличения времени решения) различные алгоритмы. Эти алгоритмы разбиты на группы в соответствии с их качественными характеристиками: «наилуч- «наилучший», «хороший» и «благоприятный». Ввиду ограниченного набора тестовых задач такая классификация представляется более разум- разумной, чем непрерывная классификация. Внутри каждой группы алго- алгоритмы расположены в порядке вычисленного ранга. Как и следовало ожидать, алгоритмы поиска работают медлен- медленнее, чем алгоритмы, использующие производные, но особенно инте- интересно то, что алгоритм Пауэлла имеет высокую эффективность. Алгоритмы Бройдена и Пауэлла в более сложных задачах (таких, как задачи 26 и 32), по-видимому, работают лучше, чем алгоритм Дэвидона — Флетчера — Пауэлла, тогда как для некоторых более простых задач имело место обратное. Пять алгоритмов попадают в класс «благоприятных» алгорит- алгоритмов. Каждый из этих алгоритмов обычно требовал больше времени, чем алгоритмы из «наилучшего» класса. Кроме того, эти алгоритмы менее надежны, чем алгоритмы из «наилучшей» группы, поскольку они могут закончиться преждевременно или быть неэффективными
232 Глава 5 из-за чрезмерно избыточного использования машинного времени. В методах, использующих производные, медленные колебания в процедуре поиска указывают на то, что матрица направлений ста- становится почти сингулярной. Включение в алгоритм подходящей процедуры перезадания начальной точки, восстанавливающей мат- матрицу направлений до положительно определенной формы, возмож- возможно, может улучшить некоторые методы переменной метрики. Алгоритмы Хука — Дживса, Нелдера — Мида и Розенброка оказались довольно слабыми при решении задачи статистической оценки (задача 32). В этой задаче в окрестности минимума целевая функция была нечувствительна к изменениям переменных, т. е. в этой области целевая функция имела вид плато. Все тестовые задачи, результаты решения которых использо- использованы при построении табл. 5.3.5, содержали всего лишь несколько переменных. Очень важно выяснить, как ведут себя эти алгоритмы с увеличением размерности задачи. К сожалению, в этом отноше- отношении имеется очень мало данных. Для выяснения этого вопроса Флетчер и Пауэлл A963 г.) предложили тестовую функцию для задачи минимизации, содержащую регулируемое число пере- переменных: / (x) — 2 \ Ef— 2 (A4 s'n xl "T" B4 cos хй (=iL /=i Функция E.3.1) соответствует решению совместной системы транс- трансцендентных уравнений п 2 (A/ sin X/ -\- Bij cos xj) = Et, i = 1, ... , n, полученному минимизацией суммы квадратов разностей. Коэффи- Коэффициенты Ац и Вц генерируются в виде псевдослучайных целых величин с равномерным (прямоугольным) распределением вероят- вероятностей на интервалах —100 < At] < 100 и —100 < Вц < 100; Значения Et были промоделированы путем генерирования различ- различных по величине групп из Xj от я = 5 до п = 100 как псевдо- псевдослучайных действительных чисел в интервале от —я до я. Целевая функция /(х) минимизировалась по отношению к век- вектору х = \xlt ..., хп]т, начиная с вектора х@) = [xt + 0,1 бх, ..., хп + + 0,1б„]г, где б/— случайные числа на интервале от —я до я. В табл. 5.3.6 приведено эквивалентное количество вычислений функ- функции, необходимое для уменьшения изменения каждого х,- до вели- величины, меньшей чем 10~4. Для разных начальных векторов могут быть достигнуты различные минимумы, так как, конечно, такая функция, как E.3.1), имеет много минимумов; с другой стороны, при некоторых начальных векторах локальный минимум может быть и не найден.
Сравнение алгоритмов при отсутствии ограничений 233 Хотя табл. 5.3.6. может дать только качественное представление относительно эффективности соответствующих алгоритмов при ре- решении задач большой размерности, создается впечатление, что методы Дэвидона — Флетчера — Пауэлла и Пауэлла A964 г.), грубо говоря, эквивалентны и явно лучше других методов, за исклю- Таблица 5.3.6 Влияние размерности на алгоритм минимизации (Средние значения эквивалентного количества вычислений функции1), взятые из работы Бокса [16]) Алгоритм Флетчера — Ривса Дэвидона — Флетчера — Пауэлла Нелдера — Мида Розенброка Дэвиса — Свенна — Кемпи Пауэлла A964) Пауэлла A965) Раздел 3.3.2 3.4.2 4.2 4.3 4.3 4.4 [17] Число переменных 5 286 126 241 426 298 103 22 10 1925 358 890 1258 1530 399 35 20 8150 1910 9760 7770 6450 1863 56 1) Эквивалентное количество вычислений функции для методов, использующих производ- производные, означает, что одно вычисление функции плюс п вычислений производных считаются как (и ¦¦)-1) эквивалентных вычислений функции. чением метода Пауэлла A965 г.). Высокая эффективность алгоритма Пауэлла A965 г.) при решении задач типа E.3.1) приводит к воп- вопросу: насколько эффективны рассмотренные алгоритмы при приме- применении их к тому или иному специальному типу задачи минимиза- минимизации суммы квадратов и, в частности, каковы они по сравнению с классическим методом наименьших квадратов Гаусса? Для целевой функции, представляющей собой сумму квадратов /(х)= 1=1 где J (х) = 2Jr(xH(x), матрица Якоби размерности q X п: J(x) = дх1 дф„ дх. дхп дф„ дхп
-16 — -Флетчер-/7ауэлл±золотое сечение -^ Пирсон 3 + золотое сечение D- ¦ —О Бройден+ золотое сечение i Метод наименьшая: квадратов Ю II 12 0 1 2 3 4 5 б 7 8 i Число этапов Фиг. 5.3.3. Сравнение различных методов при использовании их для решения за- задач, сводящихся к задаче минимизации суммы квадратов (задача 35 из приложе- приложения А).
Сравнение алгоритмов при отсутствии ограничений 235 а 0— вектор-столбец из q функций. Если градиент в точке х№+1' аппроксимируется по формуле E.3.2) а ф (х( +') в свою очередь аппроксимируется членом первого порядка разложения в ряд Тейлора ф (х(/г+1)) = ф (х№)) + J (х(/г)) (х(/г+1) - xw), E.3.3) то подстановка E.3.3) в E.3.2) дает приближенное выражение для градиента целевой функции в новой точке. Необходимые условия существования минимума в точке х(Дг+1), состоящие в том, что у/ (х(/г+1)) = 0, приводят к вычислению х(/г+1) по методу наимень- наименьших квадратов Гаусса: = х(« _ [f (XW) j (Х№))Г1 f (х (Модификация Левенберга — Маркуардта, отмеченная в разд. 3.2, заключается в замене [Jr(x(ft)) J(x№))] на [Jr(x№>) J(x№)) + pi].) При использовании метода Гаусса или метода Маркуардта требуется такой алгоритм обращения матриц, который гарантировал бы положительную определенность получаемой обратной матрицы при положительно определенной исходной матрице. К сожалению, такая процедура отсутствует во многих широко используемых ма- машинных вычислительных методах программирования. Алгоритм Гаусса состоит в следующем. Начиная из точки х(А°: 1) определить J(x№)) и вычислить [Jr(x№)) J(xw)]~1 и 0(xw); 2) по формуле E.3.4) вычислить х№+1); 3) повторять переход от шага 2 к шагу 1, пока не будет удовлет- удовлетворен критерий окончания процесса. На фиг. 5.3.3 сравнивается метод наименьших квадратов Гаус- Гаусса с другими методами минимизации при решении систем уравнений, но это не слишком показательно, поскольку один этап в ме- методе наименьших квадратов не то же, что один этап в других мето- методах. Аналогично трудно сравнивать количество вычислений функ- функции и количество вычислений производных. В табл. 5.3.7 приво- приводится время решения (на ЭВМ CDC 6600) семи задач методом наименьших квадратов, а также лучшее время, полученное при ис- использовании алгоритмов табл. 5.3.4. Задача 29 из приложения А не была решена из-за возникшей неопределенности матрицы (iTi). (В таблицу включена и статистическая задача — задача 32 из приложения А.) Из табл. 5.3.7 видно, что для задач этого специального ти- типа метод Гаусса может конкурировать с лучшим из алгоритмов
Таблица 5.3.7 Сравнение метода наименьших квадратов с другими методами (лучшими по времени решения) для целевых функции, представляющих собой сумму квадратов Задача (приложение А} 2 26 28 30 32 34 35 Время решения мето- методом наименьших квадратов, с 0,012 0,058 0,013 0,015 0,061 0,020 0,017 Лучшее время решения другими методами, с 0,013 (мегод Бройдена) 0,046 (метод Бройдена) 0,006 (метод Пауэлла, Флетчера) 0,012 (метод Флетчера) 0,050 (метод Флетчера) 0,025 (метод Пауэлла) 0,010 (метод Дэвидона— Флетчера—Пауэлла) Таблица 5.3.8 Результаты применения различных алгоритмов при решении задач минимизации суммы квадратов Группа А В С Пол- Полный ранг 1 2 3 4 5 Алгоритм Гаусса Маркуардта (разд. 3.2) Бройдена (подразд. 3.4.1I) (подразд. 3.4.6) Алгоритм Дэвидона — Флетчера — Пауэлла (подразд. 3.4.2) Средняя сумма рангов 26 32 73 77 97 Число попаданий в классы II 0 0 2 3 3 III 0 0 2 1 3 1) Здесь собственные значения могут устанавливаться иа некоторых абсолютных уровнях, как это следует из процедуры Гринштадта (разд. 3.2). Таблица 5.3.9 Влияние количества оцениваемых параметров на работу алгоритма при решении задачи минимизации суммы квадратов Алгоритм Гаусса Маркуардта (разд. 3.2) Бройдена (подразд. 3.4.1) Дэвидона — Флетчера — Пауэлла (подразд. 3.4.2) Ранг для указанного числа параметров 3 ел со to — 5 2 1 3 5 6 1 2 3 5 8 2 1 5 4 10 1 2 5 3
Сравнение алгоритмов при Отсутствии ограничений 237 нелинейного программирования при отсутствии ограничений. В дру- других работах [18—21], где рассматривается специальный случай решения системы совместных нелинейных уравнений путем мини- минимизации невязок, показывается, что методы переменной метрики не всегда являются надежными. При исследовании алгоритмов вычисления нелинейных оценок в статистических задачах Бард [22] проверил пять существенно нелинейных моделей, содержащих от трех до десяти параметров, охарактеризовал работу каждого алгоритма для каждой из задач (ранг 1 определялся как лучший), а затем классифицировал резуль- результаты следующим образом: класс I: лучшие результаты; класс II: не такие хорошие результаты, как в классе 1, но вполне приемлемые. класс III: неприемлемые результаты и (или) отсутствие сходи- сходимости. В табл. 5.3.8 приведена средняя сумма рангов для различных алгоритмов и число попаданий каждого алгоритма в классы II и III. С увеличением числа оцениваемых параметров ранги в столбце 2 табл. 5.3.8 сдвигаются ненамного, как это видно из табл. 5.3.9. Хотя методы Гаусса и Маркуардта с увеличением числа параметров все еще представляются лучшими, метод Дэвидона — Флетчера — Пауэлла становится относительно более предпочтительным, ЛИТЕРАТУРА 1. Rosenbrock H. H., Computer J., 3, 175 A960). 2. Whitte В. F., Hoist W. R., Spring Joint Computer Conf., Washington, D. C, 1964. 3. Beale E. M. L., On an Iterative Method of Finding a Local Minimum of a More Than One Variable, Princeton Univ. Stat. Techn. Res. Group Techn. Rept. 25, Nov. 1958. 4. WoodC. F., Westinghouse Res. Labs. 5. Powell M. J. D., Computer J., 7, 155 A964). 6. Cragg E. E., Levy A. V., Rice Univ. Aero-Astronautics Rept. 58, Houston, Tex., 1969. 7. Leon A., A Comparison Among Eight Known Optimizing Procedures, in: Recent Advances in Optimization Techniques, Lavi A., Vogl T. P., eds., Wiley, Inc. N. Y., 1966. 8. Stevens D. F., Instructions for the Use of VARMINT, Univ. of California, Law- Lawrence Radiation Lab., Berkeley, June 1961. 9. Baer R. M., Computer J., 5, 193 A962). 10. Doerfler Т. Е., Partan Minimization- by Method of Parallel Tangents, Iowa State Univ., Ames, Iowa, April 1964. 11. Wortman J. D., NLPROG, Ballistic Res. Lab. Mem. Rept. 1958, Aberdeen Proving Grounds, Md., Jan. 1969. 12. Fletcher R., Powell M. J. D., Computer J., 6, 163 A963). 13. Fletcher R., Computer J., 8, 33 A965). 14. McCormick G. P., Pearson J. D., Chap. 21 in: Optimization, Fletcher R., ed., Academic Press, Inc., London, 1969.
238 Глава 5 15. Pearson J. D., Computer J., 13, 171 A969). 16. Box M. J., Computer J., 9, 67 A966). 17. Powell M. J. D., Computer J., 7, 303 A965). 18. Box M. J., Computer J., 9, 67 A966). 19. Barnes J. G. P., Computer J., 8, 66 A965). 20. Powell M. J. D., Computer J., 7, 303 A965). 21. Spendley W., Chap. 16 in: Optimization, Fletcher R., ed., Academic Press, Inc., London, 1969. 22. Bard Y., Comparison of Gradient Methods for the Solution of Nonlinear Para- Parameter Estimation Problems, IBM N. Y. Sci. Center Rept. 320-2955, 1968; SI AM J. Numerical Anal., 7, 157 A970).
Часть HI МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ПРИ НАЛИЧИИ ОГРАНИЧЕНИИ В области нелинейного программирования с ограничениями х> методы решения менее разработаны по сравнению с областью не- нелинейного программирования, охватывающего круг задач, в кото- которых ограничения отсутствуют. При решении задач нелинейного программирования с ограничениями встречаются гораздо большие трудности, чем при решении сопоставимых (т. е. обладающих приблизительно такой же размерностью и такой же «степенью» нелинейности) задач безусловной оптимизации по той причине, что искомое решение должно подчиняться дополнительному требо- требованию, а именно удовлетворять фигурирующим в задаче ограничи- ограничивающим условиям. Опубликованные вычислительные процедуры решения задачи нелинейного программмирования, содержащей ограничения, в большинстве своем опираются на один из следующих подходов: 1. Распространение аппарата линейного программирования на условия нелинейного программирования путем использования про- процедуры последовательной (повторяемой определенное число раз) линейной аппроксимации. 2. Преобразование задачи нелинейного программирования с ограничениями в эквивалентную ей последовательность задач безусловной оптимизации путем введения в рассмотрение штраф- штрафных функций. 3. Использование скользящих допусков, позволяющих опери- оперировать в процессе решения задачи оптимизации как с допустимыми, так и с недопустимыми (но близкими к допустимым) векторами в пространстве решений. Основные характеристики и потенциальные возможности ряда методов решения задач нелинейного программирования при нали- наличии ограничений в систематизированном виде представлены в *' Задача нелинейного программирования при наличии ограничений в общей постановке представлена соотношениями B.2.1) — B.2.3).
Характеристики некоторых методов нелинейного программирования при наличии ограничений Таблица А Структурные харак- характеристики решаемых задач и характерис- характеристики метода Целевая функция Позволяет манипули- манипулировать с ограниче- ограничениями в виде ра- равенств Позволяет манипули- манипулировать с ограниче- ограничениями в виде нера- неравенств Начальная точка Позволяет решать не- вылуклые задачи Скорость сходимости Промежуточные ре- решения J Метод аппрок- сими- симирующего програм- мирова- мирования (под- (подразд. 6. 1.1) Л иНЛ Нет НЛ» д Да Низкая Д ПОП (подраэд. 6.1.2) Л иНЛ Нет Л иНЛ Д н Н Да Низкая Д Глава 6 Методы линейной аппроксимации Метод НЛП (разд. 6.2) Л яНЛ Л и НЛ Л ИНЛ ДиН Да Низкая Д в Н Метод Розеиа (проек- (проекции гра- градиента 1 (подразд. 6.3.1) Л иНЛ Л Л и НЛ2) д Да Высокая3' Д огмоп (лодразд. 6.3.2) Л иНЛ Л иНЛ Л иНЛ Д я Н Да Низкая ДиН Проек- Проективный вариант метода Дэвидо- на — Флетче- ра-Пау- алла 'лод- 'лодразд. 6.3.3) Л иНЛ Л Л ННЛ д Да Средняя Д Метод допус- допустимых направ- направлений (разд. 6.4) Л иНЛ Нет Л иНЛ Д Да Высокая Д Метод приве- приведенного градиен- градиента (разд 6.5) Л иНЛ Л иНЛ Л иНЛ ДиН Да Средняя Д Глава 7 Методы преобразования целевой функции (методы штрафных функций) Метод Розен- брока (под- (подразд. 7.1.2) Л иНЛ Нет Л иНЛ Внутр. Да Средняя Д Метод Дэвидо- на-МБП (под- (подразд. 7.1.3) Л иНЛ Нет Л иНЛ Внутр. Да Средняя Д МПБМ (разд. 7.2) Л иНЛ Л Л иНЛ Виутр. Да Высокая Внутр. Глава 8 Метод скользя- скользящего до- допуска Л иНЛ Л иНЛ Л иНЛ Д нН Да Низкая ДиН " Неэффективен при решении задач с линейными ограничениями. 2) Весьма неэффективен при решении задач с нелинейными ограничениями. 3' Применим только для решения задач с линейными ограничениями. Обозначения: Л — линейная (ые), НЛ — нелинейная (ые>, Д — допустимая (ие), Н — не является допустимой (не являются допустимыми).
Методы нелинейного программирования 241 табл. А; более подробно эти методы обсуждаются в гл. 6—8. Сле- Следует отметить, что в табл. А включены только те методы, которые удовлетворяют ряду конкретных требований; при этом основными критериями являются: 1) относительно высокая эффективность рассматриваемого ме- метода как инструмента, позволяющего получать численные решения задач нелинейного программирования; 2) простота логики построения вычислительных процедур; 3) наличие машинных программ, позволяющих реализовать рассматриваемый алгоритм на ЭВМ,
Глава 6 ПРОЦЕДУРЫ МИНИМИЗАЦИИ ПРИ НАЛИЧИИ ОГРАНИЧЕНИЙ: МЕТОДЫ ЛИНЕЙНОЙ АППРОКСИМАЦИИ Поскольку методы линейного программирования успешно при- применяются для решения задач большой размерности при ограниче- ограничениях, записанных как в виде равенств, так и в виде неравенств (разумеется, линейной структуры), способ решения задач нелиней- нелинейного программирования с помощью процедуры линеаризации, реализуемой по надлежащим образом построенной схеме итера- итерационного процесса, относится к числу наиболее очевидных. Два из рассматриваемых ниже методов (возможно, являющихся в неко- некотором отношении наиболее эффективными) предполагают линеари- линеаризацию только ограничений, оставляя целевую функцию нелиней- нелинейной на всех этапах минимизации. Один из этих методов основан на использовании проектирующих матриц, позволяющих проекти- проектировать вектор, который определяет направление поиска оптималь- оптимальной точки, на подпространство, связанное с некоторой модифициро- модифицированной совокупностью активных ограничений; во втором методе используется идея приведенного градиента, определение которого дается в разд. 6.5. Линейная аппроксимация фигурирующих в задаче [см. соотно- соотношения B.2.1) — B.2.3I нелинейных функций достигается путем замены этих функций членами первого порядка в соответствующих разложениях в ряд Тейлора в окрестности рассматриваемой точки х(&). В результате повторяющегося процесса линеаризации нелиней- нелинейных функций путем разложения их в ряд Тейлора в окрестности каждого промежуточного решения образуется последовательность х(с), х1, ..., x(fe), которая при определенных условиях сходится к оптимальному решению х* исходной задачи нелинейного про- программирования. Чтобы пояснить сущность данного метода, обра- обратимся к задаче нелинейного программирования в ее общей поста- постановке [см. соотношения B.2.1) — B.2.3)], т. е. рассмотрим следую- следующую задачу: минимизировать / (х), х ? Е% при ограничениях . Л,(х) = 0, t= 1, ..., m, ^60 j i = m+ 1, ... , p.
Методы линейной аппроксимации 243 Эта задача может быть модифицирован^ путем замены каждой из фигурирующих в F.0.1) нелинейных функций двумя первыми членами в соответствующем разложении в ряд Тейлора в окрест- окрестности xw. В результате вместо F.0.1) нам потребуется минимизировать / (х№)) + v7(x(W) (х — х№)), х ? Еп, при ограничениях А, (х№)) + V % (х№)) (х - х*>) = 0, i = l m, 6 Q & (х№)) + Vrgi (x(ft)) (x - х№)) > 0, i = т + I /,. Поскольку /(х№)), V/(x№)), /гЛх№)), уМЛ, ^-(х№)) и V^(x№)) яв- ляются либо постоянными векторами, либо скалярными констан- константами (значения которых вычисляются в точке x<ft)), задача F.0.2) представляет собой задачу линейного программирования. Чтобы проиллюстрировать метод линеаризации задачи нели- нелинейного программирования в окрестности некоторой точки х№), рассмотрим следующую частную задачу: минимизировать f (х) = 4хх — х% — 12, х ? ?"*, при ограничениях g2 (х) = 10xx — х\ + 10х2 — ^2 — 34 g3 (х) = Ху > 0, g-4 (х) = Jfj > 0. Пусть х(к) — [2 4]г. Замена фигурирующих в данном примере не- нелинейных функций на аппроксимирующие их (в окрестности \(k)) линейные выражения приводит к следующей задаче линейного программирования: минимизировать / (х№>) = 4хх — 8х2 + 4, х ? Еп, при ограничениях hx (x(ft)) = 45 — 4хг — Sx2 = 0, Чтобы оттенить то обстоятельство, что вместо исходных функций взяты их линейные аппроксимации, мы воспользовались зна- знаком (~). Метод оптимизации, требующий линеаризации только
244 Глава 6 ограничений и не предполагающий линеаризации целевой функции, иллюстрируется геометрически на фиг. 6.0.1. Таблица 6.0.1, содержащая перечень алгоритмов, описание которых дается в настоящей главе, может служить ориентиром при ознакомлении с основными характеристиками указанных ал- 6 5 2 1 0 "Ч •Г ' ¦ У—f< $ \\ \ V к / / / / / / у / / * 4 / ^v \ 1 J///1^ ///////A////////A'///////A////////Y 1 Фиг. 6.0.1. Пример линеаризации ограничений в окрестности точки, заданной вектором х^ = [2 4)г. горитмов. Некоторые другие алгоритмы, являющиеся по сравне- сравнению с алгоритмами, приведенными в табл. 6.0.1, менее эффектив- эффективными или оказывающиеся достаточно эффективными лишь приме- применительно к задачам специального типа (как, например, к задачам выпуклого программирования или к задачам, в которых фигури- фигурируют только линейные ограничения), а также алгоритмы, характе- характеристики которых пока не опубликованы, здесь не описываются, хотя ссылки на них можно найти в конце данной главы. Методы, описанию которых посвящена настоящая глава, образуют своего рода «ряд», начинающийся методами с плохими характеристиками и заканчивающийся методами, которые можно отнести к разряду отличных. Сходимость к искомому решению задачи F.0.1) гарантируется, если выполняются следующие условия:
Методы линейной аппроксимации 245 I)f(x), lii(x), ...Дт(х), gm+i(x), ,.., gp(\) являются непрерыв- ными и дифференцируемыми функциями; 2) функция / (х) выпуклая, а сумма 2 ^/ (х) выпуклая в Я; 3) ^,„+1 (х), ..., gp(\) представляют собой вогнутые функции; 4) допустимая область непуста, т. е. действительно существуют такие значения составляющих вектора х, для которых удовлетво- удовлетворяются все условия, определяемые ограничениями задачи (т. е. задача имеет решение); 5) множество R замкнутое и выпуклое; 6) существует е>0, такое, что |Ау-(х)|<е (/=1,..., пг) и g,-(x)> — е (j = m -f I, ..., р), т. е. фигурирующие в условиях функции ограничены. Характеристики методов линейной аппроксимации Таблица 6.0.1 Методы Аппроксимирующее линейное программирование МАП ПОП НЛП Проективные Розена (проекции гра- градиента) • Обобщенного градиентно- градиентного поиска Дэвидона — Голдфарба — Дэвиса Заутеидайка (допусти- (допустимых направлений) Приведенного градиента Обобщенного приведен- приведенного градиента Раз- Раздел 6.1.1 6.1.2 6.2 6.3.1 6.3.2 6.3.3 6.4 6.5 Целевая функция Л л л л л л л л и и и и н и и и НЛ НЛ НЛ НЛ НЛ НЛ НЛ НЛ Ограни- Ограничения в виде равенств Л и НЛ Л и НЛ Л2) Л и НЛ Л — Л и НЛ Огранн- в ения виде неравенств Л Л л л л л л и НЛ и НЛ и НЛ Л2) и НЛ и НЛ и НЛ и НЛ Начальный вектор д Д и Д и Д Д и Д д Д и 1) н н н н ') Внутренняя точка при необходимости без труда находится путем минимизации суммы квадратов нарушенных ограничений в виде неравенств. 2) Существующие в настоящее время машинные программы обеспечивают лишь решение задач с линейными ограничениями. Обозначения; Д — допустимый (ая, ые), Н — ие являющийся допустимым, Л — линей- линейный (ая, ые), НЛ — нелинейный (ая, ые). На практике любой из алгоритмов, включенных в табл. 6.0.1, позволяет найти локальный оптимум даже в тех случаях, когда условия 1—6 не выполняются (при этом многое зависит от харак- характера решаемой задачи). Специфические тонкости большинства из описанных в данной главе алгоритмов будут отмечены в гл. 9,
246 Глава 6 6.1. АППРОКСИМИРУЮЩЕЕ ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ 6.1.1. МЕТОД АППРОКСИМИРУЮЩЕГО ПРОГРАММИРОВАНИЯ (МАП) Гриффиц и Стюарт (фирма «Шелл-Ойл») [1] описали метод ап- аппроксимирующего программирования, который основан на много- многократном применении алгоритмов линейного программирования, обеспечивающем в пределе сходимость последовательности решений промежуточных задач линейного программирования к решению задачи нелинейного программирования F.0.1). (Такой метод иногда называют градиентным методом с малой длиной шага в от- отличие от так называемого крупношагового градиентного метода, описание которого дано в разд. 6.3.) После выполнения проце- процедуры линеаризации задача формулируется так: минимизировать f(x) — f(x{k)) = ? dlA. Axf> при условии, что имеют место ограничения в виде равенств / - 1, .... т, F.1.1) и ограничения в виде неравенств Sdgt (x(ft)) А №) , *к / _ т , 1 _ —^—щ > — gt (х ), l = т + 1, ... , р, где Axf] = (xt — xf). Метод аппроксимирующего программирования позволяет учитывать все ограничения, записанные в виде нера- неравенств, и этим отличается от некоторых из рассматриваемых ниже методов, которые оперируют лишь активными ограничениями в виде равенств. [В методе Гласса и Купера [2], который подробно здесь не обсуждается, даже в том случае, когда неравенство, полученное в результате линеаризации исходного ограничения, удовлетворя- удовлетворяется при одновременном нарушении соответствующего неравенства в F.0.1) (и, следовательно, х выходит за пределы допустимой об- области), направление поиска можно выбрать правильным и, таким образом, вновь оказаться в пределах допустимой области, если к правой части линеаризованного неравенства прибавить кон- константу. ] Метод Гриффица и Стюарта реализуется по следующей схеме. Пусть х(*' —допустимая точка в R. Произведем в F.0.1) замену нелинейных функций их линейными аппроксимациями, найден-
Методы линейной аппроксимации 247 ными в окрестности точки х(*\ Это приводит к соотношениям, име- имеющим вид F.1.1) [=з F.0.2)]. Затем решим задачу линейного про- программирования, представленную этими соотношениями, при сле- следующем добавочном условии: 6* _ | xf+1) - xf | >0, / = I, ...,«, F.1.2) где \xf+l)— xf\— абсолютное значение приращения Xj, а 8f^>Q (/= 1, ..., п) есть малая величина, ограничивающая длину шага при перемещении в том или ином направлении и, таким образом, не позволяющая вектору х выходить за пределы допустимой области задачи F.1.1). Решение задачи F.1.1) с учетом F.1.2) для разности х — xw при х, обозначенном теперь как х, дает = х№)+(х~-ход). Вычислив х(*+|), мы многократно повторяем указанную выше операцию при постепенном уменьшении 8(ft) (с тем, чтобы довести отклонения элементов х до величины, определяемой принятым допуском), стремясь достичь такой ситуации, когда минимизирую- минимизирующая поправка к найденному на предыдущем шаге значению / (х) оказывается меньше некоторого наперед заданного (малого) числа. В задаче F.1.1) дополнительные ограничения для х можно ввести и несколько иным способом. Обозначим х — x{k) при х > х<&) через А+ x(ft), а при х < x(k) через Л~ х(А). Тогда, прежде чем реа- реализовать очередную аппроксимирующую процедуру, следует учесть ограничения для допустимых перемещений в пространстве решений, определяемые следующими соотношениями: pf>A+xf> + qfA'xf <mf\ /=!,...,«, F.1.3) где 1, m(k) m^ — максимально допустимое перемещение вдоль /-й оси координат на k-м шаге; L,- — нижняя граница для х,-; Uj — верхняя граница для xf. Если A~xf = 0, то pf)A+xf) < mf. Когда значение xf близко к сво- своему верхнему пределу, т. е. {Uj — xf)^0, то в {1, mflUj — xf) максимальным оказывается член tnf/Uj — xf\ Следовательно, X/ — xf1 < Uj — xf\ пли Xj < Uj, т. е. мы имеем гарантию, что
248 Глава 6 Xj не может превысить свое верхнее предельное значение. Анало- Аналогичные рассуждения применительно к условиям, когда Д+х№) = О, позволяют убедиться в том, что x-t не может принимать значений, меньших Lj. Соотношения F.1.1) и F.1.3) образуют систему линейных соот- соотношений, которая и подлежит анализу с помощью методов линей- линейного программирования. Первый шаг в процессе поиска решения данной задачи линейного программирования с помощью модифи- модифицированного симплексного метода заключается во введении в рас- рассмотрение переменных еще двух категорий, а именно так называе- называемых ослабляющих и искусственных переменных. С помощью ослаб- ослабляющих переменных ограничения в виде неравенств преобразуются в ограничения в виде равенств. Используя для обозначения ослаб- ослабляющих переменных символ щ, можно записать ограничения, ко- которые в F.1.1) фигурируют как неравенства, в следующем виде: S °Sg?LД+xf'-S &gb-try-tf —ft(Л. /=1 7=1 i = m+ I, ..., р, где ulk) > 0. Чтобы преобразовать в равенства ограничения F.3.1), также используются ослабляющие переменные (обозначим их через vj)\ в результате вместо F.3.1) получим п№ Л + Jfc) I J®\-VW i „<*> _ т / — 1 и Р,- A Xj -\- gj l\ Xj -j- V/ = Itlj, I — I, . . . , П. Искусственные переменные wt вводятся лишь с той целью, что- чтобы иметь возможность задать в качестве начальной допустимую точку в случае, когда начальный вектор х оказывается вне преде- пределов допустимой области. Путем включения искусственных пере- переменных в ограничения, записанные в виде равенств, и в ограниче- ограничения в виде неравенств получаем i = 1, ... , т, 7=1 /=I i = m-\- 1, .... p, где wt ;> 0. Искусственные переменные отличны от нуля, если условие, определяемое соответствующим ограничением, не удовле- удовлетворяется. Применение модифицированного симплексного метода позволяет обратить каждую из искусственных переменных в нуль путем минимизации 2wr
Методы линейной аппроксимации 249 Пока на каждом шаге процесса поиска получаемое решение оказывается допустимым, метод аппроксимирующего программирова- программирования «работает» весьма быстро. Однако в случае, когда на каком-либо шаге вектор х, дающий минимизирующую поправку к значению целевой функции / (х), выходит за пределы допустимой области, процесс в значительной степени замедляется. В ходе линейного программирования вначале стремятся удовлетворить ограничения, не позволяющие вектору х выходить за пределы допустимой области, а затем пытаются улучшить значение целевой функции. При этом не исключена возможность того, что решением F.1.1) и F.1.3) на следующем шаге снова будет такой вектор х, который, обеспе- обеспечивая минимизирующую поправку к полученному ранее значению f (x), окажется вне допустимой области. Таким образом, как только сразу несколько ограничений становятся активными, МАП начи- начинает работать весьма медленно. Следует отметить, что, поскольку на каждом этапе минимизации осуществляется полная релинеари- зация рассматриваемой задачи, вся ранее полученная информация становится бесполезной; следовательно, МАП может быть применен для решения невыпуклых задач. Промежуточные решения при использовании МАП являются либо допустимыми, либо близкими к допустимым. Олсон [3] показал, каким образом данные относительно осцил- осциллирующего поведения алгоритма на предшествующих этапах про- процесса поиска могут быть использованы с целью увеличения или уменьшения максимальной длины шага т,-. К числу наиболее широко известных в этой связи правил относятся следующие: Вариант I II На k-м шаге >4 >5 <8 Ретроспективные данные относительно приращений переменных +, -, +, - +, - - -, - +, +, + +> —i +> —> +> - - - +, +, + Изменение длины шага ту mf + '> = a2m<-ft) mf + 1» = 0,5mf mf+ l) = 0,8 \xf> —xjb Здесь ах есть коэффициент сжатия (или сокращения), значения ко- которого лежат в интервале от 0,5 до 0,8; а2 — коэффициент расшире- расширения (или растяжения), значения которого лежат в интервале от 1,2 до 1,5; х/ь — предельная верхняя или нижняя граница X/ в направлении перемещения на k-м шаге. На фиг. 6.1.1 приведена обобщенная блок-схема обработки данных при машинной реализации алгоритма МАП. На основе данного алгоритма Гриффицу и Стюарту удалось решить задачу,
Таблица 6.1.1 Применение МАП при i Этап Значение целевой функции Число изменений переменных Переменные (начальное значение дано в скобках) Исходный материал A7,00) Температура (920,0) Высокооктановый бензин A04,0) Обычный бензин A56,в) Время, мин Запись матрицы LP/90 1 100,0 22 18,00 930,0 92,8 172,8 10,4 3,1 2 107,9 22 19,00 925,1 104,3 172,8 5,6 2,1 фограммироваиии процесса очистки 3 116,9 21 20,00 924,9 108,1 173,0 4,1 2,8 . . . • • • . . . . . . . . . . . . . . . . . . Ш 122,0 8 21,67 915,4 103,4 162,2 4,3 2,0 17 122,1 5 21,67 915,4 103,5 162,7 4,2 2,0 иефти 18 122,1 4 21,67 915,4 103,9 162,1 4,1 1,9 . . . . . . • • • . . . . . . • - • 27 122,0 4 21,69 916,4 103,8 161,1 4,2 4,2 28 122,1 4 21,69 917,2 103,7 160,4 4,5 2,1 29 122,0 5 21,70 915,7 103,8 161,5 4,4 3,4
Методы линейной аппроксимации 251 содержащую примерно 30 переменных, при числе нелинейных огра- ограничений, превышающем 100. Олсон провел анализ затрат машинно- машинного времени (применительно к возможностям электронно-вычислитель- Пуск Считывание начального век- вектора ас Считывание аппроксимирующих tpi/нкций, наименований строк, ос - лабляющих: переменных, исходных оазисных заголовков Вычисление матрицы ЛП и ее запись Нахождение решения для матрицы Лл с помощью noff программы ?.Р/9О;ввс/д в запо- запоминающее устройство значении теневых переменных и приращений Проверка сходимости- требует- требуется ли производить замену базисного вектора ? Останов Да Вычисление составляющих нового базисного вектора Ф и г. 6.1.1. Блок-схема вычислительного процесса для алго- алгоритма МАП. ной машины IBM 7094), расходуемого при реализации МАП в интер- интервале между записью матрицы и фазой линейного программирования (см. блок-схему 6.1.1). При этом в нелинейных функциях решае- решаемой задачи фигурировали 27 переменных, а матрица линейного программирования содержала 205 строк. Суммарное время для 29 шагов процесса поиска составило 229 мин. Заметим, что метод Гриффица и Стюарта оказывается относительно малоэффективным при решении задач оптимизации без ограничений (по сравнению с другими методами, предназначенными для решения этих задач) и при решении задач линейного и квадратичного программирования.
252 Глава б Пример 6.1.1. Аппроксимирующее программирование Метод Гриффица и Стюарта можно проиллюстрировать на сле- следующем примере. Пусть требуется минимизировать / (х) = х\ + х% — при ограничениях g1 (х) = 11 - х\ + 6x g2 (х) - хЛ - Зх, - е*'-3 + 1 > 0, (а) g3 (х) == — 10х2 - 4х2 > О, е*'-3 + 1 > 0, На фиг. П.6.1.1 дано графическое представление (топография) задачи (а); пунктирными линиями изображены уровни целевой О, 0 1 2 3 4 5 6 7 \8 9 Ю 11 12 1д \14 15 \ да Фиг. П.6.1.1. Геометрическое представление (топография) задач (а) и (б). функции / (х), а сплошными кривыми—два первых нелинейных ограничения, соответствующие gt (х) =0 (/ = 1, 2). Оси коорди- координат соответствуют уравнениям gA (х) = 0 и g4 (х) = 0. Решением задачи (а) является х* = [5,27 3,68 ]г; при этом / (х) = —79,9. Начальные шаги процедуры поиска решения сводятся к следую- следующему: 1. В качестве начальной (допустимой) точки выбирается х<0) =* = [4 3]г, в которой f (х°) = —69. 2. Линейная аппроксимация задачи (а) в окрестности точки
Методы линейной аппроксимации 253 х@) = [4 3]г достигается путем замены фигурирующих в (а) нелинейных функций их линейными приближениями; линеаризация приводит к следующей задаче: минимизировать f (х@)) = — 8х1 — 4х2 — 25 при ограничениях А (х@)) - — 2*i - 4*2 + 27 > О, ft (х@)) = 0,28^ + х2 - 2,84 > 0, (б) Как уже отмечалось выше, символ ~ означает, что берется линей- линейное приближение рассматриваемой функции. Допустимая область,- определяемая линеаризованными ограничениями задачи (а) в окре- окрестности х@) = [431 , ограничена на фиг. П.6.1.1 сплошными пря- прямыми, а уровни линеаризованной целевой функции f (x<0)) представле- представлены пунктирными прямыми. Решением задачи (б) является хA) = «= [13,5 0] ; этот вектор допустим по отношению к задаче (б) и не является допустимым по отношению к задаче (а). Чтобы предотвратить выход х из допустимой области задачи (а), на х накладывают ограничения вида F.1.2), т. е. полагают /=1, .... п. (в) Начальное значение б@) можно выбирать произвольным образом; для задачи (а) подходящим оказывается, например, 8@)=[0,5 0,5]г. Заметим, что перемещение от точки х@) == [4 3]г к точке х(|) = =з [13,5 0]г сопряжено с существенным увеличением Xi и заметным уменьшением хг. Учтем теперь условие (в). В полученной точке хA) = [D -4- 0,5) C-0,5)]г = [4,5 2,5]г функция f (хA)) = — 70,65. На следующем шаге (k = 1) положим бA) = 0,8б@) = [0,4 0,4]г. Линейный эквивалент задачи (а) в окрестности хA) = [4,5 2,5]г име- имеет следующий вид: минимизировать / (х0)) = — 7хг — Ъх2 — 36 при ограничениях A) 31,4 - 3^ - 4х2 > О, 5,42 - 1,98% + 1,5^2 >0, (г)
254 Глава 6 Решением задачи (г) является хB) = [5,45 3,58]г; данная точка расположена весьма близко к допустимой области задачи (а). На- Наложив дополнительное условие | xf — xf | < б/" (/ = 1, ..., я), в ка- качестве допустимой точки хB> получаем х<2) = [4,9 2,9]г; в этой точ- точке / (хB)) = 75,1. Следующий шаг (k = 2) состоит в выполнении вычислительной процедуры по приведенной выше схеме при 6<2)<; < 8Ш (например, при бB) = 0,8б(|)). Итерационный процесс заканчи- заканчивается, как только выполняется условие |8№)j<J?| (где |е| — до- достаточно малая величина) и х№+" оказывается внутри допустимой области. На каждом шаге при выходе х из допустимой области, прежде чем продолжать процесс минимизации, методом линей- линейного программирования определяется решение, являющееся до- допустимым. 6.1.2. МЕТОД ПОП В 1965 г. Г. Смитом был разработан метод отыскания оптимально- оптимального решения, основанный (аналогично методу, рассмотренному в разд. 6.1.1) на линеаризации и пригодный для решения задач не- нелинейного программирования в случае, когда ограничения в виде равенств отсутствуют. Этот метод положен в основу универсальной машинной программы, известной под названием ПОП " (программа оптимизации процессов). В соответствии с ПОП процедура линеари- линеаризации выполняется на каждом шаге и каждая из промежуточных линейно-оптимизационных задач решается с помощью модифици- модифицированного симплексного метода. Повторяющийся процесс линеари- линеаризации (релинеаризация) осуществляется в окрестности найденной на предыдущем шаге оптимальной точки, а предельные значения для длины шага устанавливаются с таким расчетом, чтобы не выйти за рамки, вне которых соотношения, полученные в результате ли- линеаризации, не могут быть использованы. Как уже отмечалось вы- выше, с помощью рассматриваемого метода не удается решать задачи с ограничениями, записанными в виде равенств; исключение со- составляют случаи, когда каждое из равенств может быть представ- представлено в виде двух неравенств, например, по следующей схеме: равенство h (x) = О заменяется эквивалентной ему парой неравенств Mx) + S>0 и Мх)-?<0. (В подобных ситуациях в процессе поиска оптимального решения значение | постепенно уменьшается.) Однако такой способ обращения '> Подробный анализ ПОП (в английском варианте POP — Process Optimb zation Program) содержится в работе [4].
Пуск Считывание исход ных данных Считывание и ввод функций f(x) и (г?(х) Вычисление частных произ- производных fCx) и ) Вычисление значений функ- функций в заданной точке Построение матрицы ли- линейного программирования Вычисление вектора, допусков;выявле- допусков;выявление недопустимых составляющих векто- вектора ж i вычисления, позволяющие праве - рить, не esixcjffu/n ли век/пор ж за уста- новленнй1в пределы Решение задачи линейного про- гралын ирования Нахождение числовых значе- значений теневых паралгетров Проверка на сзсодил*ость к ло- локальному onmujKyjnt/ Останов Определение числовых значений независимых переменных для следующего цикла Фиг, 6,1.2. Блок-схема вычислительного процесса для алгоритма ПОП II,
256 Глава 6 с ограничениями в виде равенств редко оправдывает себя на практике. Поэтому ПОП, вообще говоря, используется лишь для решения задач следующего вида: минимизировать / (х), х ? Е", при ограничениях gt(x)>0, i=\ p, F.1.4) Lj^Xj<CUh /= 1, .... п. При решении локально линеаризованной задачи нелинейного про- программирования применяют метод линейного программирования та- таким образом, чтобы последовательность решении промежуточных линеаризованных задач сходилась к решению исходной нелиней- нелинейной задачи F.1.4). Получаемые при этом векторы х могут быть как допустимыми, так и недопустимыми. На фиг. 6.1.2 приведена в общем виде блок-схема вычислительного процесса (или блок- схема обработки данных) при реализации алгоритма Смита. ПОП автоматически формирует матрицу локального линейного программирования (ЛП) (фиг. 6.1.3), элементы которой выража- выражаются через коэффициенты линеаризованной модели. При этом в строках, номера которых равны или превосходят (п + 1), распо- располагаются значения первых частных производных целевой функ- функции и функций, фигурирующих в ограничениях, по независимым переменным Xj. Числовые значения этих частных производных бе- берутся в точке, задаваемой текущим вектором х. Следует отметить, что отдельная строка отводится для каждой независимой перемен- переменной Xj. Кроме того, каждому активному ограничению соответ- соответствует отдельная строка. Матрица, ассоциированная с алгоритмом линейного програм- программирования, содержит также ряд дополнительных строк и столб- столбцов, в частности следующие столбцы: /. Вектор-столбец, задающий предельные значения для пере- перемещений в пространстве решений (вектор допусков). Элементы этого столбца, расположенные в первых п строках, которые ас- ассоциируются с независимыми переменными, представляют собой наименьшие значения пределов перемещений вдоль соответствую- соответствующих этим переменным направлений (или, другими словами, наи- наикратчайшие расстояния до ближайшей границы внутри допусти- допустимой области по каждому из упомянутых направлений). Элементы, расположенные в строках с порядковыми номерами, лежащими в интервале от (п + 1) до (п + т + 4), представляют собой либо текущее значение gt, либо разность между текущим и ближайшим предельным значением g(. 2. Вектор-столбец, ассоциированный с вспомогательными опе- операциями. Этот вектор-столбец используется при выполнении вы- вычислений неявного характера, а также в связи с реализацией над-
Методы линейной аппроксимаций 257 лежащих вычислительных процедур в тех случаях, когда исходный (на рассматриваемом шаге) вектор выходит из допустимой области. Если какая-либо из независимых переменных х{ принимает не- недопустимое значение, допустимость восстанавливается путем заме- Xj \. Номер >v столбца Номер Ny строки N. 1 2 п n + l п+2 я + 3 п + т + 1 п + т + 2 п + т + 3 1 2 ... л 1 0 0 1 Вспомогательная операция Функциональное уравнение Штрафная по- поправка п + 1 Вектор-столбец, управляющий вспомогательными операциями 1 -500 п + 2 Вектор допусков 100 гс + 3 Рабочее поле Фиг. 6.1.3. Структура части матрицы линейного программирования. ны данного значения xt на наименьшую из разностей между рас- рассматриваемым значением этой переменной и ее предельными зна- значениями. На данном шаге требуется также внести надлежащие из- изменения в структуру вектора допусков. Возникающие нарушения ограничивающих условий временно устраняются путем комбини- комбинирования составляющих получаемого вектора с произвольно выби- выбираемыми элементами, которым придаются значения 100 и — 500 (см. матрицу на фиг. 6.1.3). Промежуточные задачи линейного программирования решаются с помощью модифицированного симплекс-алгоритма. Для каждого
258 Глава 6 из промежуточных решений в соответствии с машинной программой вычисляется приращение вектора х (которое мы обозначим через Ах) и осуществляется слежение за тем, чтобы значение целевой функции в точке (х + Ах) улучшилось по сравнению со значением / (х), найденным на предыдущем шаге (т. е. в точке x(fe>) при не- незначительных аппроксимационных погрешностях [см. приведен- приведенные ниже соотношения F.1.5)]. Каждый такой цикл построения матрицы линейного программирования и решения промежуточной линеаризованной задачи называется петлей. Петли повторяются в автоматическом режиме до тех пор, пока не будет найдено опти- оптимальное решение или пока число выполненных вычислительных циклов не превысит максимально допустимое значение, установ- установленное пользователем. 1. Нахождение числовых значений частных производных. Как уже отмечалось выше, чтобы сформировать матрицу линей- линейного программирования, требуется знать значения первых частных производных целевой функции и функций, фигурирующих в огра- ограничениях, по каждой из независимых переменных х-г Для прибли- приближенного вычисления этих частных производных в ПОП исполь- используется численный метод центрированных разностей. Чтобы опре- определить значение первой частной производной целевой функции по независимой переменной Xj в текущей точке x(fe>, по программе на- находятся значения / (х) в точках х(*> + б/ и x(fe> — б/, где вектор б/ определяется параметрами, устанавливаемыми пользователем. Тогда на k-м шаге числовое значение первой частной производной целевой функции по х, вычисляется по формуле /(x&/) , , dxj ~ 26/ ' ' ~ ' ' ' " ' ' где ж»» + б; - [x\k\ х?\ ...,#> + 6„ ..., *<?>f и &-*, = [&,#>, ...,*}*>-в, Wf. Аналогично для вычисления первых частных производных gt (x) используется формула dgC(x{k)) __ g< (x(*> + &/) - gi (x(fe> - 6/) _ дх,- 26/ i = 1, . . ., p, /= 1, . .., П. На протяжении всего процесса оптимизации выбранные вначале значения б/ остаются неизменными, причем от выбора этих значе- значений существенно зависит точность численных оценок упомянутых выше частных производных. 2. Адаптивные предельные значения для длины шага. Исполь- Используемые в ПОП II предельные значения для перемещения в про- пространстве решений (или длины шага) в направлениях, ассоцииро-
Методы линейной аппроксимации 259 ванных с независимыми переменными X/, можно получить одним из следующих способов (выбор остается за пользователем). Во- первых, упомянутые предельные значения могут устанавливаться пользователем по его усмотрению и рассматриваться как исходные данные (так, например, длина шага может составлять 10% от дли- длины рассматриваемого диапазона изменений xj); в этом случае про- программой предусматривается (после выполнения надлежащего мас- масштабирования, описание которого приводится ниже) правило обращения с такого рода фиксированными входными данными. Воз- Возможен и другой вариант, когда вычисление предельных значений для длины шага при реализации каждой петли возлагается на саму программу. Оценивание адаптивных предельных значений для длины шага осуществляется способом, аналогичным способу на- нахождения числовых оценок первых частных производных / (х) и gt (x) no Xj. В соответствии с программой для независимых перемен- переменных Xj вычисляются максимальные значения перемещений, при ко- которых погрешность, обусловленная линеаризацией (см. ниже), не превышает максимально допустимую погрешность, указанную на входе как для целевой функции, так и для каждого из ограни- ограничений. По программе находятся числовые значения / (х) и ?, (x) (i = 1, ..., п) в текущей точке х(*\ а также в точках x(fe> + о,- и x(fe) — б/. Поскольку оценивание адаптивных предельных значе- значений для длины шага выполняется одновременно с нахождением чи- числовых значений первых частных производных, вычисление / (х) и gt (x) (i = 1, ..., п) в точках, задаваемых векторами х + б/, х и х — б/, осуществляется только один раз сразу для обеих из ука- указанных целей. Затем в соответствии с ПОП находится линеариза- ционная погрешность для целевой функции по формуле '(х + а') + /(ж-а'), /=1, ..., п, F.1.5а) и для функций gt (x) с помощью следующих соотношений: F , - а <х\ ~ 8i (х + Ь/) + 8i (х ~ 6/) ; - 1 п- i - с и — gt (Х) 2 , / — 1, ..., п, i — = 1, ..., р. F.1.56) Получаемые числовые погрешности используются для нахожде- нахождения предельного значения перемещения по Xj. Если исходить из точности линеаризации целевой функции, то предельное значение для длины шага получается в виде AX/,0,max = б/ X / максимально допустимая линеаризационная \Vi I погрешность для целевой функции I , . F.1.6а)
260 Глава 6 а если исходить из точности линеаризации ограничений, то / максимально допустимая линеаризационная \ 7а I ) /, I, max = 0/1 у р с I погрешность для функций gi (х) = 0/1 / = 1, ..., п, i = 1, ..., т. F.1.66) Для каждой независимой переменной X/ предельное значение длины шага, используемое в процессе решения локальной (полу- (полученной методом линеаризации в точке x(fe>) подзадачи линейного программирования, равняется (в зависимости от того, что окажется меньшим по своему значению) либо A) наименьшему из Ал:,-, ,(i = = 0,..., т), либо B) удвоенному предельному значению, установлен- установленному априори. Альтернатива B) может иметь место, если только / (х) и g{ (x) линейны по х,-. Метод нахождения адаптивных предельных значений для длины шага по каждому из направлений в простран- пространстве решений позволяет варьировать упомянутыми предельными значениями с учетом степени кривизны той или иной модели. С дру- другой стороны, предельные значения длины шага могут оказаться слишком малыми; в этом случае процесс оптимизации сильно замед- замедляется. При этом независимо от того, как выбраны предельные значения длины шага, последние умножаются на переменную величи- величину \, которая равняется вначале единице, а затем (по мере прибли- приближения к оптимуму) постепенно убывает (см. описание соответствую- соответствующей процедуры в следующем подразделе). 3. Завершение вычислительной процедуры. Алгоритмом, зало- заложенным в ПОП II, предусматриваются два автономных критерия определения оптимума. Если безусловный оптимум (экстремум) находится в точке, которая расположена вне области, определяемой ограничениями задачи, то соответствующий условный экстремум достигается в конце фазы линейного программирования при полу- получении такой ситуации, когда ни одна из компонент вектора х(*+'> — — x(fe> не превышает соответствующее предельное значение длины шага. Если же безусловный экстремум лежит внутри или на грани- границе области, задаваемой ограничениями исходной задачи, то соот- соответствующий условный экстремум достигается в силу того, что либо точка, определяемая текущим вектором х, осциллирует относи- относительно оптимальной точки, либо последовательность перемещений в пространстве решений при очень малых оптимизирующих поправках к текущим значениям / (х) приводит к тому, что ? начи- начинает принимать значения, меньшие предельных значений, предпи- предписанных пользователем. Логика тестов на завершение вычислитель- вычислительной процедуры отражена в общих чертах на блок-схеме, приве- приведенной на фиг. 6.1.4. Если приращение х, соизмеримо с предельным значением длины
Пуск Является ли решение ли- линеаризованной задачи (за- (задачи линейного програм- программирования) допустимым*. Выполняется ли условие ftac^wx f faff) ? Sy/fem Сохранить х* Нет выполняется ли условие асу*77* X/ * Sf, т.е. совпадает ли пе- перемещение по каждому из на- направлений со своим пределлным значением Т г З'О ,Да V ,Д<* Является ли af(x' ') - affx' умалой величиной Hen L-O S= AfAXSMP Нет Нет Да | Уменьшить значат I FS [Выполняется ли условие ? ^ f .? 'Безусловный оп- mujHUJU лежит в//е оляасти, оп- ределяелгой огра- ограничениями за- уачи) Нет L*MAXLM? Нет Да Выполняется ли условие ? < 1 ? Увеличить значе- значениеС ; /.= 0 / находится внутри или на границе области, оп- определяемой ограни чена>, Индикатор цикла, мен*- иге допустимого макси- максимума ? \Нгт к /ми задачи) Если решение недо- недопустимо, отметил в распечатке; если ре- решение допустимо, дать распечатку Да t Да Пило реализовано Oojzee девяти циклов1. Останов V Завершить еще agu/t цикл Фиг. 6.1.4. Блок-схема вычислительного процесса, основанного на использова- использовании критериев сходимости в алгоритме ПОП II. MAXLM — максимально допустимое число последовательных «больших» шагов игеремещеннй), предшествующих началу возрастания 1. (Как правило, | = 3.) MAXSM — Максимально допустимое число «мелких» шагов («малых* перемещении), которое может иметь место до того, как | начнет убывать. (Как правило, | = 2.) |* — минимальное из допустимых значений |. (Чаще всего 1 = 0,05.)
262 Глава 6 шага, то весьма вероятной оказывается возможность продолжить оптимизационный процесс путем дополнительных перемещений в указанном направлении. Тест окончания процесса осуществляется с той целью, чтобы установить,— большой или незначительной — можно считать положительную оптимизирующую поправку к те- текущему значению целевой функции. Оптимизирующая поправка считается большой, если она превышает некоторое фиксированное число, установленное пользователем '*, и незначительной, если это условие не выполняется. Данный классификационный признак используется в связи с заданием в вычислительной программе изме- изменений по счетчикам больших перемещений L и малых перемещений 5. На фиг. 6.1.4 случай, когда S = +1 и L = +1, означает, что показание каждого из счетчиков возрастает на единицу; случай же, когда L = 0 и S = 0, указывает на то, что счетчики больших и малых перемещений устанавливаются на 0. Смит рекомендует увеличивать предельное значение длины шага путем умножения \ на 2 и уменьшать это значение в такой же пропорции (т. е. путем деления множителя | на 2). Для компоновки машинной программы, реализующей алгоритм ПОП II, требуется, чтобы пользователь подготовил специальную подпрограмму (называемую моделью), назначение которой состоит в том, чтобы обеспечить нахождение числовых значений целевой функции / (х) и функций gt (x) для заданного вектора x(ft>. Под- Подпрограмма модели должна обеспечивать переоценку значений / (х) и gf (x) после завершения каждого этапа линейного програм- программирования. Кроме того, пользователь должен задать полный набор входных данных, включая начальный вектор х, нижнюю и верхнюю границы значений независимых переменных и большое число дру- других параметров оптимизации и контроля за протеканием вычисли- вычислительного процесса. В саму программу может быть внесено так мно- много различного рода коррекций, что часто остается неясным, какое влияние оказывает тот или иной параметр на ход оптимизационного процесса. В гл. 9 будет проведено сравнение алгоритма ПОП II с други- другими оптимизационными алгоритмами; однако подробные примеры в данной связи приводиться не будут, поскольку это было бы со- сопряжено с рассмотрением большого числа различных альтернатив, каждая из которых требует проведения серьезного анализа с тем, чтобы стала ясной связь того или иного из возможных вариантов с базовой структурой рассматриваемого алгоритма. ' Смит в качестве наиболее типичиой пороговой коистанты называет число 0,25; при этом, однако, следует, иметь в виду, что размерность коидтанты должна совпадать с размерностью целевой функции,
Методы линейной аппроксимации 263 6.1.3. ТРУДНОСТИ, ВОЗНИКАЮЩИЕ ПРИ АППРОКСИМИРУЮЩЕМ ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Цварт [5] обратил внимание на следующие четыре трудности, которые возникают при решении задач нелинейного программиро- программирования путем многократной линеаризации и использования аппара- аппарата линейного программирования: 1. Оптимизация происходит медленно, если стремиться сделать векторы x{k-[), x{k\ x(fe+", ... допустимыми или очень близкими Направление возрастания f(oc) Область решений .Допустимая точка лс + Точка ж**4'*внедопу- I J Допустимая область Разрешенное отклонение ^ от ffonycmuJHbipc значении Фиг. 6.1.5. Влияние размера допуска на длину шага в двумерной задаче. Квад- Квадрат, изображенный пунктирными линиями, представляет значения б'. ', фигури- фигурирующие в соотношении F.1.2.); g (х'*') = 0 представляет собой линеаризованное ограничение. к допустимым. На фиг. 6.1.5 иллюстрируется случай, когда малый допуск при учете ограничений приводит к тому, что поиск опти- оптимального решения оказывается слишком «мелкошаговым», т. е. протекает медленно. При увеличении допуска решение задачи не- нелинейного программирования может остаться недопустимым, если произойдет останов работы ЭВМ из-за ограничений по времени. 2. Трудно сравнивать следующие один за другим два вектора х, которые приводят к разным значениям / (х) и в различной степени нарушают некоторое подмножество ограничений. Действительно, допустим, что мы хотим сравнить векторы х(*> и x[k+lK Пусть / (x(ft>) < f (x(ft+!)), но ограничение g1 (x) > 0 для х(*' нарушается сильнее, нежели ограничение gx (x) > 0 (или, возможно, другое ограничение g2 (x) > 0) для вектора х<*+1>. Можно ли утверждать, что первый из этих векторов предпочтительнее второго? 3. Если целевая функция характеризуется высокой степенью нелинейности, то на основе решения линеаризованной задачи
¦f(x) = 20 a A g,(x) «= О на поверхности o.(oc) >0 под поверхно- поверхностью Растяжение лианеризованной ограничивающей поверхности в окрестности х( ' Фиг. 6.1.6. а — пересечение уровней целевой функции с поверхностью, заданной активным ограничением; б = контуры, получаемые на поверхности, заданной линеаризованным ограничением.
Методы линейной аппроксимации 265 направление поиска оптимальной точки может быть выбрано слишком неточно. Вспомним, что одна из трудностей градиентного метода, изложенного в гл. 3, заключается в том, что градиент оказывается направленным в сторону минимума,если только масштаб по каждой кз переменных выбран таким, что уровни целевой функции представ- представляют собой гиперсферы. Линейное программирование не позволяет правильно выбрать направление оптимизирующего поиска также и в том случае, когда поверхность, ограничивающая допустимую область, слишком растянута. На фиг. 6.1.6, а изображена целевая функция и ограничивающая поверхность gt (x), а на фиг, 6.1.6, б показано направление поиска на ограничивающей поверхности (от х<*> к х<*+')), определяемое с помощью линейного программи- программирования для б/, соответствующего показанному кубу. Приведен- Приведенный на фиг. 6.1.6, б дополнительный рисунок содержит более по- подробную информацию относительно направления оптимизирующего поиска на линеаризованной гиперповерхности, определяемой ограничениемgj (х***) = 0. Аналогичная трудность возникает в тех случаях, когда ограничивающая поверхность имеет ребристую структуру, если даже вид целевой функции достаточно близок к линейному. 4. Следует, кроме того, отметить, что при использовании метода аппроксимирующего линейного программирования трудно при- придумать такую процедуру учета априорных данных, которая бы надлежащим образом ускоряла процесс оптимизации. 6.1.4 КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ И ДРУГИЕ ПРИБЛИЖЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Вместо того чтобы аппроксимировать целевую функцию линей- линейной функцией, ее с равным успехом можно аппроксимировать не- некоторой квадратичной формой. Уилсон [6] и Бил [7] разработали алгоритмы, реализующие подобный подход на практике; однако при этом не всегда оказывается ясным, позволяют ли такого рода более сложные алгоритмы сократить время выполнения вычисли- вычислительных процедур по сравнению с временем, требуемым для ре- решения исходной задачи методом линейной аппроксимации. В этой связи накоплен незначительный практический опыт. Можно от- отметить лишь вычислительную программу, предложенную Уилсо- ном; однако эта программа в конструктивном плане еще не дора- доработана, Грэйвс и Уинстон [8], обнаружив, что при оптимизации без ограничений учет квадратичных членов в разложении функций в ряд ускоряет сходимость, расширили метод линейной аппрокси- аппроксимации путем введения в рассмотрение при решении общей задачи
266 Глава 6 нелинейного программирования членов второго порядка. При этом были сформулированы условия первого порядка для локальной ста- стационарной точки. Для задачи без ограничений алгоритм указан- указанных выше авторов переходит в обычный алгоритм спуска, учиты- учитывающий квадратичные члены. В случае когда ограничения линей- линейны, а целевая функция имеет квадратичную форму, алгоритм Грэйвса и Уинстона становится тождественным алгоритму Франка и Вольфа [9]. Грэйвсом и Уинстоном при решении задач 8, 10, 11 и 18, приведенных в приложении А, установлено, что при исполь- использовании метода квадратичной аппроксимации для достижения за- заданной точности при нахождении оптимума требуется гораздо меньше итераций, нежели в случае метода, основанного на линеа- линеаризации исходных функций. Для упомянутых задач, начиная из точки, заданной вектором х@> = [333 ЗГ, получаем: Номер задачи 10 18 11 8 При учете только первых производных число итераций >200 >200 7 50 1 (х*) —32,3163 —32,8153 —30665,29 2,25- Ю-6 При учете вторых производных число итераций 9 16 32 f (х*) —32,3487 —32,3478 0 Интересно отметить, что, несмотря на различие в необходимом количестве итераций, машинное время, требуемое для поиска опти- оптимального решения методом квадратичного программирования (с ис- использованием матрицы Гессе), составляло 60—90% машинного времени, расходуемого при поиске оптимума методом линейной аппроксимации. Поскольку критерии завершения вычислитель- вычислительных процедур (останова) были для этих методов разными, метод квадратичного программирования, возможно, несколько более эф- эффективен, нежели это можно заключить на основе приведенных выше данных. 6.2. АЛГОРИТМ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Метод нелинейного программирования (сокращенно — метод НЛП) разработан Барнсом [10]. Он представляет собой обобщение алгоритма, предложенного Дибелла и Стивенсом [11]. Алгоритм Дибелла и Стивенса предназначался для решения задач нелинейного программирования при наличии ограничений только в виде равенств (плюс ограничения, задающие верхний и нижний пределы изменения значений независимых переменных); данный алгоритм основан на
Методы линейной аппроксимации 267 использовании линейной аппроксимации нелинейных функций в окрестности некоторой допустимой или почти допустимой точки х(*>. Идея Дибелла относительно минимизации f (x) путем приме- применения градиентного и линейно-аппроксимативного методов полу- получила дальнейшее развитие у Барнса, которому удалось обобщить упомянутый выше алгоритм на случай, когда в дополнение к огра- ограничениям в виде равенств имеют место записанные в общем виде ограничения в виде неравенств. Таким образом, с помощью алго- алгоритма НЛП можно решить задачу нелинейного программирования F.0.1). При реализации данного алгоритма в качестве начального могут использоваться как допустимые векторы, так и векторы, выходящие за пределы допустимой области. Если х@> не является допусти- допустимым, алгоритм реализует фазу наискорейшего спуска с тем, чтобы получить такой вектор х, для которого множество ограничивающих условий «почти» удовлетворяется. Затем алгоритм работает на ос- основе метода линейной аппроксимации с применением аппарата ли- линейного программирования и, следовательно, обеспечивает по- построение надлежащей матрицы локального линейного программиро- программирования, элементами которой являются значения первых частных производных целевой функции и функций gt (x) по независимым переменным. Задача линейного программирования решается с по- помощью модифицированного симплексного метода; при этом к зна- значению целевой функции добавляется оптимизирующая (минимизи- (минимизирующая) поправка в небольшой области, являющейся окрест- окрестностью текущей точки х. После этого процедура линейного про- программирования повторяется. На любом этапе вычислительного процесса, когда в качестве текущего решения находится вектор х, отклоняющийся от допустимой области сверх установленного предела, повторяется фаза наискорейшего спуска. При обсуждении алгоритма НЛП удобно отдельно рассмотреть фазу наискорейшего спуска и фазу линейного программирования. Фаза наискорейшего спуска в алгоритме НЛП сопряжена лишь с повышением степени допустимости вектора х с точки зрения уче- учета подмножеств ограничений ht (х) = 0 и gt (x) ;> 0; на этом этапе об улучшении значения целевой функции не заботятся. Подпро- Подпрограмма наискорейшего спуска реализует безусловную минимиза- минимизацию суммы квадратов остаточных погрешностей, т. е. выражения m p Г(х) = 2Л?(х)+ 2 fyg?(x). F.2.1) 1=1 t=m+l Совершенно очевидно, что для ограничений в виде равенств оста- остаточная погрешность равняется ht (x) (i = 1, ..., m), а для огра- ограничений, записанных в виде неравенств, остаточная погрешность равняется gt (x), если gi (x) < 0, и обращается в нуль за счет
268 Глава 6 оператора Хевисайда G1,), еслиg,(x) >0(i = m + 1, ..., р); другими словами, Ui — 0 при gt (x) > 0. Сумма квадратов остаточных по- погрешностей вычисляется перед началом каждого этапа наискорей- наискорейшего спуска и каждого этапа линейного программирования неза- независимо от того, принадлежал ли предыдущий текущий вектор х допустимой области. После вычисления Т (х) машинная программа осуществляет тесты, разработанные на основе анализа большого количества прак- практических результатов решения различных «пробных» задач. С помощью этих тестов можно убедиться в том, что точка, заданная вектором х, действительно находится вблизи допустимой области, либо установить обратное. Если рассматриваемая точка находится достаточно близко от допустимой области, вычислительный процесс переходит в стадию линейного программирования, осуществляе- осуществляемого по алгоритму Гриффица и Стюарта (см. разд. 6.1); в против- противном случае вычисления продолжаются в режиме наискорейшего спуска. Ускорение или замедление вычислительного процесса на стадии линейного программирования достигается путем варьирования мак- максимального значения величины Ллгу. В тех случаях, когда точка, заданная вектором х, осциллирует относительно «хребта» или «до- «долины», в рассмотрение вводится параметр ру, меняющий знак, как только два последовательных шага Ах/ оказываются противо- противоположными по знаку. Параметр ру воздействует на счетчик к,- (где вначале устанавливается единица), который используется для того, чтобы определять необходимость изменения предельной длины шага ту. Значение к/ определяется числом, которое показывает, сколько раз перемещение по переменной х, осуществлялось в одном и том же направлении. Таким образом, числовое значение к,- от- отражает количество благоприятных (оптимизирующих / (х)) прира- приращений X; в одном и том же направлении; значение kt вновь стано- становится равным единице, как только направление перемещения по Xj меняется на противоположное. Если ру меняет знак, то вместо значения ту, которое использовалось на предыдущем шаге, берет- берется значение т/2. Если же знак р/ не меняется, а числовое значение к/ превышает 4, значение ту, использовавшееся на предыдущем шаге, удваивается. Акселерация вычислительного процесса может вывести вектор х за пределы допустимой области; однако так как сумма квадратов остаточных погрешностей (Т (х)) вычисляется по- после каждого изменения х, то в случае слишком больших отклонений текущей точки от границы допустимой области начинает работать метод наискорейшего спуска. После каждого перемещения в пространстве решений на ста- стадии линейного программирования проводится тест, цель которого Состоит в том, чтобы выяснить, является ли используемое прира- приращение Ах/ по своему абсолютному значению меньше некоторой за-
Методы линейной аппроксимации 269 у #> п у у у I * г- 1 ; ff(x)=f0aCfX,2+10ace-a:*-34 ±0 0 1 2 3 4 S ас, Ф и г. 6.2.1. Траектория поиска оптимального решения с помощью алгоритма НЛП для условий задачи, проиллюстрированной на фиг. 6.0.1. ранее установленной (по усмотрению пользователя) константы г (данная константа может быть выбрана произвольно, но следует иметь в виду, что она должна быть одной и той же для всех незави- независимых переменных). Если условие \х^ — л^'^^е выполняется, поиск за- заканчивается; в противном случае поиск оптимального решения продолжается. На фиг. 6.2.1 показана траектория поиска применительно к ус- условиям задачи, проиллюстрированной на фиг. 6.0.1. 6.3. ПРОЕКТИВНЫЕ МЕТОДЫ Проективные методы образуют целое семейство. Иногда их называют методами допустимых направлений или градиентными методами с большой длиной шага; последнее название подчеркивает разницу между алгоритмами данного класса и алгоритмами, рас- рассмотренными в разд. 6.1, которые можно назвать градиентными ме- методами при малой длине шага. Сущность этих методов заключается в следующем: линейные или линеаризованные ограничения обра- образуют линейное многообразие (определяемое пересечением ограни- ограничений), на которое можно спроектировать выбранное направление поиска s в пространстве решений (см. разд. 6.3.1 и 6.3.2). Один из первых опубликованных методов такой структуры, а именно метод
270 Глава 6 Розена [12—16], по-видимому, является наиболее хорошо известным, поскольку для его реализации на ЭВМ существуют готовые машин- машинные программы. Все проективные методы (или методы допустимых направлений) предполагают реализацию на каждом k-м этапе указанной ниже по- последовательности шагов: 1. Алгоритм начинает работу в допустимой точке х<*>. 2. Определяется допустимое направление s(*> (точное опреде- определение допустимого направления будет дано позднее). 3. В допустимом направлении выбирается шаг длиной №*>, минимизирующий / (х), но в то же время сохраняющий вектор х<*+и = х<*) + W*>s<*> допустимым. Алгоритмы рассматриваемого семейства отличаются друг от друга прежде всего способами определения направления s(ft>; од- однако все они характеризуются тем, что поиск начинается с допусти- допустимого решения и развивается (при линеаризованных ограничениях) в направлении, обеспечивающем уменьшение целевой функции при сохранении текущей точки х внутри допустимой области. Заметим, что большинство алгоритмов решения задач линейно- линейного программирования представляет собой модифицированные ал- алгоритмы обращения матрицы. Так, например, симплексный метод линейного программирования соответствует методу обращения мат- матриц, известному под названием «метод Гаусса — Жордана». Метод Фриша и метод Розена представляют собой два различных подхода к обращению симметрической матрицы АГА (где А — матрица, элементами которой являются коэффициенты при независимых пе- переменных в соотношениях, задающих ограничения). Однако следует отметить, что проективные методы не требуют, чтобы все ограниче- ограничения в виде неравенств были заменены эквивалентной системой огра- ограничений в виде равенств путем введения в рассмотрение ослабляю- ослабляющих переменных (как это имеет место в линейном программирова- программировании); проективные методы на каждом итерационном шаге вовлекают в вычислительный процесс по возможности минимальное количе- количество ограничений в виде неравенств из числа активных ограниче- ограничений. Прежде чем перейти к рассмотрению алгоритма Розена, пояс- поясним более подробно понятие проекции. То, что здесь подразумевается под проекцией, ассоциируется с понятием проекции вектора, описывающего локальное приращение функции при перемещении в заданном направлении. Пусть Аг = [а, а2 ... а„] — прямоугольная матрица с ли- линейно независимыми вектор-столбцами, определяющими некоторое пространство R. Допустим, что А допускает разбиение на две мат- матрицы А[ = [ах ... а,] и А^_/ [a/+i ... а„]. На векторы, входящие в Аг> натянуто n-мерное пространство, и, следовательно, любой вектор в R может быть однозначно представлен в виде линейной
Методы линейной аппроксимации 271 комбинации векторов а/, т. е. п х = 2 туа/ или х = Агт. F.3.1а) (Таким образом, коэффициенты t/ представляют собой координаты вектора х относительно базиса А.) С другой стороны, векторы, со- составляющие матрицу А[, задают пространство лишь 1-й размерности, и, следовательно, только для некоторого подмножества векторов в R имеет место соотношение i х = 2 туа/ или х == А[т. F.3.16) т /=1 Уравнение ау- х = 0 определяет в R гиперплоскость, проходя- проходящую через начало координат. Обозначим пересечение множества всех гиперплоскостей с / = 1, 2, ..., / (т. е. систему уравнений А/Х = 0), формирующих линейное многообразиеХ) размерности (п — /), через М- Ортогональная проекция хпаМ (которую обозна- обозначим через х jf) обладает тем проективным свойством, что х» их — — Х/1 ортогональны, т. е. Тогда «-мерная квадратная проектирующая матрица Рг, опреде- определяемая условием хм = Р,х F.3.2) и вычисляемая с помощью соотношения [17] Рг=1-А[(АЛГГ'А„ F.3.3) позволяет найти хд. В одном предельном случае Ро = I. Это озна- означает, что если подмножество I векторов пусто (т. е. I = 0), то х ., — 1) Понятие многообразия в Еп почти совпадает с понятием подпространства в Еп. Разница заключается лишь в том, что многообразие не обязано включать в себя начало координат, как это должно быть в случае подпространства. Когда говорят, что линейное многообразие М имеет размерность (п —/), то имеют в виду то обсто- обстоятельство, что если рассмотреть систему линейных уравнений Агх=&,то наиболь- наибольшее число линейно независимых векторов, формирующих решение, оказывается равным (п — /). Например, если Ат есть (/ X /г)-матрица (п > 1), причем каждая из / строк определяет линейно независимое уравнение, то (п — /) есть число независи- независимых переменных в системе уравнений, а / соответствует числу ограничений (или числу зависимых переменных). В Еп точка имеет размерность 1 = 0, так что п ¦— I = п; гиперплоскость имеет размерность I = 1, и, следовательно, п — / = — п — 1 и т. д. Таким образом, добавление независимого уравнения к заданной системе линейно независимых уравнений сокращает размерность многообразия М на единицу.
272 Глава 6 Допустимая о&ласть Фиг. 6.3.1. Проекция градиента на активные ограничения в случае ограничений в виде неравенств. В точке А активно одно ограничение, и, следовательно, п —I = 2—1 = 1; в точке В активными являются два ограничения, и, таким образом, п—1 = 2—2=0. В точке х'*~~'', являющейся внутренней допустимой точкой, активные ограничения отсутствуют и Ро = I, так что проекция градиента у/ (х'*~~')) совпадает с самим градиентом. Заметим, что на пе- пересечении в точке х(") двух активных ограничений Р, -з 0 я единственной возможной про- проекцией градиента у /(х'^)) является указанная точка. = х; следовательно, вектор х совпадает со своей проекцией. В дру- другом предельном случае Р„ = 0, т. е. подмножество векторов в R является полным, и, следовательно, / = п, а хд^ = 0 (проекция на точку есть нуль-вектор, как показано на фиг. 6.3.1). В случае когда на пересечение подмножества ограничений проектируется градиент целевой функции в точке х(А> (т. е. \ f (x(ft))), метод опти- оптимизации называется методом проекции градиента. 6.3.1. МЕТОД ПРОЕКЦИИ ГРАДИЕНТА (МЕТОД РОЗЕНА) Обратимся теперь к рассмотрению метода Розена. По существу этот метод минимизации представляет собой метод наискорейшего спуска, применяемый в сочетании с ортогональным проектировани- проектированием отрицательного градиента на линейное многообразие ограниче- ограничений или их аппроксимаций. В допустимой точке х^) ограничения, имеющие вид равенств (активные ограничения), линеаризуются (если являются нелинейными) и временно заменяются соответ- соответствующими (т. е. касательными к ним в точке х(А>) гиперплоскостя- гиперплоскостями. Предполагается, что эти гиперплоскости линейно незави- независимы и, следовательно, нормали к ним также линейно независимы. (Как показано Розеном, метод проекции градиента не позволяет манипулировать ограничениями, представляющими собой линейные
Методы линейной аппроксимации 273 комбинации других ограничений). Эти нормали (соответствующие составляющие как для \gj (х<*>), так и для уй, (х<*>) будем обозна- обозначать через dg{ (x^)/dxj) используются для составления проекти- проектирующей матрицы, которая проектирует градиент целевой функции \f (х), найденный в точке x(ft>, на пересечение касательных гипер- гиперплоскостей. В пространстве без ограничений п переменных форми- Ф и г. 6.3.2. Метод проекции градиента при активных ограничениях в трехмерном пространстве. Допустимая область представляет собой многогранник, состоящий из граней (дву- (двумерные многообразия), ребер (одномерные многообразия) и вершин (нульмерные многообразия). Стрелка указывает направление проекции градиента. х(") — началь- начальная точка; х(') — минимальное смещение в (х(') _ х(О))-напрявлении и т. д. руют и-мерную область. Однако, если в точке х(*> должны удов- удовлетворяться / ограничивающих условий (ограничивающие условия в виде равенств плюс активные ограничивающие условия в виде неравенств), размерность пространства, ассоциированного с ли- линейно независимыми векторами, уменьшается на I, т. е. становится равной (п — I). Понятие приведенный базис, или базис при наличии ограничений, означает совокупность линейно независимых гипер- гиперплоскостей, пересечения которых ограничивают область поиска. Основной особенностью метода проекции градиента является то, что он преобразует (проектирует) градиент целевой функции так, что его составляющие лежат в (п — /)-мерном многообразии, опре- определяющем допустимую область, в которой удовлетворяются / огра- ограничений в виде равенств. Рассмотрим фиг. 6.3.2. Обозначим через А, матрицу (размером п X /) частных произ- производных активных ограничений (для экономии места зависимость
274 Глава 6 At от х(*) будет предполагаться, но не будет указываться в обо- обозначениях в явном виде): А,= dgl дх, дхп (x(fe>) дх1 дх„ din В силу соотношений F.3.2) и F.3.3) проекция \f (х** ные ограничения определяет новое направление поиска A)) = Vf (x(k) - A[ (A,Aj)-lA,Vf (x(fe)) на актив- активF.3.4) Выражение (AtAj)~lAi \f (х(*>) = и можно рассматривать как вектор-столбец, элементами которого являются множители Ла- гранжа (так называемые теневые параметры). С его помощью можно определить новое направление При этом составляющие щ вектора и позволяют уточнить, можно ли в ходе поиска по данному направлению получить дополнительные оптимизирующие поправки для целевой функции. Если какая-либо из составляющих щ отрицательна, соответствующее ограничение в виде неравенства можно исключить из приведенного базиса до того, как будет продолжен оптимизационный поиск. Из-за взаим- взаимного пересечения ограничений одновременное удаление из приве- приведенного базиса более одного ограничения в практическом отноше- отношении нецелесообразно; при этом удаляется то ограничение, которое соответствует наибольшей по абсолютной величине составля- составляющей и,-, Если активные ограничения линейны, составляющие вектора нового направления s(*+4 будут лежать на самих ограничениях (фиг. 6.3.2). Если же активные ограничения нелинейны, как это имеет место в задаче, иллюстрируемой на фиг. 6.3.3, то состав- составляющие вектора нового направления будут лежать на гиперпло- гиперплоскостях, касательных к ограничениям в точке хD Таким образом, в случае, когда у некоторой граничной точки дальнейшее -переме- -перемещение по градиенту целевой функции сопряжено с выходом за пределы допустимой области, вместо перемещений по составляю- составляющим градиента производится перемещение по составляющим проек- проекции градиента. Следовательно, если задача содержит нелинейные ограничения, а х^+Ч оказывается вне допустимой области, то при- применяется (в том или ином виде) алгоритм проекции градиента, что позволяет вернуться в ближайшую допустимую точку. После этого работа алгоритма повторяется. Оптимизационный процесс реали-
Методы линейной аппроксимации 275 зуется большими шагами с линейными ограничениями, причем в конце каждого этапа текущий вектор х непременно является до- допустимым и либо лежит на поверхности, порождаемой одним из ограничений, либо может быть разложен на составляющие, лежа- лежащие в плоскостях, представляющих некоторое подмножество ограни- ограничений. В случае задачи оп- оптимизации без ограничений метод Розена сводится к ме- методу наискорейшего спус- спуска, описание которого приведено в гл. 3. Переходя к подробному описанию алгоритма Розе- Розена, мы вместо общей зада- задачи F.0.1) ограничимся рас- рассмотрением задачи нели- нелинейного программирования с линейными ограничени- ограничениями, поскольку данными относительно его практи- практического применения в ус- Ч^ ^^^ j \ Активное ловиях общей постановки ¦ л^^ограничение задачи F.0.1) МЫ пока не Линеаризованное располагаем1). Рассматри- активное огра- ваемый алгоритм начинает ничение работу с допустимой точ- ф и г" 63-3- Метод пРое?«ии градиента при умулу v- Muiijunmun ш-i активном ограничении. Если активное огра- ки и продолжает эффек- ничение в точке х<5) нелинейН01 точка х<6) ТИВНО действовать как может оказаться вне допустимой области, метод наискорейшего спу- спуска до тех пор, пока не будет достигнута точка, для которой становятся активными одно или несколько ограничений. Если за- задача содержит ограничения в виде равенств, активные ограниче- ограничения имеют место на каждом этапе вычислительного процесса; если же в задаче фигурируют ограничения только в виде неравенств, то по истечении некоторого времени мы долж- должны оказаться в граничной точке (если решение задачи не представляется внутренней точкой). В граничной точке х(*° функция g{ (xik)) = 0 и hi (xlk) = 0 для i = 1, ..., /, где I < п (п — число переменных). В методе Розена у / (х<*') проектируется на пересечение I ограничений {хда|^ (х№)) = 0 и ht (x{k) = 0, i=l /}. Пусть Р; = I — А[ (А Дг)-' А, — проектирующая матрица. При 1 = 0 (в этом случае x{k> является внутренней ^ В подразд. 6.3.3 обсуждается метод аккомодации нелинейных ограничений, прошедший экспериментальную проверку.
276 Глава б точкой) Ро представляет собой единичную матрицу (Ро = I). Про- Проекция v/ (X<A°) на пересечение всех гиперповерхностей g, (x(A)) = = 0 и hi(x(k)) = 0 (i—l, ..., I) находится с помощью соотношения F.3.4). В разд. 2.5 отмечалось, что x(fe) является решением задачи нелинейного программирования тогда и только тогда, когда Pt x X v/(x<fe>)=0 и и = (А; А[)~'А;у/(x(ft)) >0. С учетом этого обстоятель- обстоятельства рассмотрим отдельно случаи Pt\f (xlk)) ф 0 и Р,у/ (x(ft>) = 0. (Если решением является внутренняя точка, то Ро\[ (х<А)) = ( ) ) Условие 1: P/V/(x№)#0. Пусть s есть единичный вектор в направлении проекции D) на пересечение всех ограничений gi (х*) = 0 и ht (x*) = 0: У» = Р"Пх2 . F.3.5) Как обычно, воспользуемся соотношением Путем одномерного перемещения из точки х(*' вдоль проекции градиента можно определить такое Я, которое минимизирует значение f(x) и одновременно сохраняет x(*+i> внутри допустимой области. Точнее говоря, в результате одномерного перемещения в направле- направлении sik) мы определяем Я* = max {% \xik) + hs(k) ? R], где R~ == {x|g((x)>0 и Л((х)=0, i = 1, .... p), а затем находим %{k\ удовлетворяющее условию 0 < Я(И< X*, так что значение /(х(А) + *') в направлении s<A) оказывается минимальным. Тогда зна- значение X* есть максимальная длина шага, который можно сделать в направлении s(A) из точки x(fc), не выходя при этом за пределы допустимой области R. Если кк) < X*, то число ограничений в виде равенств, которые удовлетворяются в точке x(fe+1), не меняется; иначе говоря, gt (x(fe+1)) = 0 и hc(x(k+i) = 0 для i=\ I, и, следовательно элементы а.ц матрицы А/( используемой на (к + 1)-м шаге, оста- остаются без изменений. С другой стороны, если к^к) = X*, то в точке х'*"^1' в дополнение к / ограничениям, которые учитывались в точке х(*> в виде равенств (и сохраняющим вид равенств при переходе от х(*> к x(fe+!)), должны приниматься во внимание нелинейные ограничения (одно или более), представленные в виде соответ- соответствующих равенств. Рассмотрим переход от х° к хA), показанный
Методы линейной аппроксимации 277 графически на фиг. 6.3.2. В этом случае производится вычисление элементов новой матрицы А, которая включает в себя все ограни- ограничения, принимающие в точке x(fe+1) вид равенств. В дальнейшем работа алгоритма повторяется. Условие 2: P,\f (xik)) = 0. Из формулы F.3.1а) следует, что у/(х<А)) можно выразить через А[ и и, а именно V/(xU)) = A[u. F.3.6) Умножая F.3.6) слева на (A;Af)-1A,, получаем Если щ > О для всех значений i = 1, ..., /, то х(*> есть иско- искомое решение. В противном случае подбираем такое ит < 0, для ко- которого значение || ат || ит отрицательно" и максимально по модулю, пренебрегаем соответствующей гиперплоскостью, вычер- вычеркиваем в матрице А, т-ю строку и возвращаемся к соотношению F.3.5). Новая проектирующая матрица Pf_i удовлетворяет условию Таким образом, на каждом этапе вычислительного процесса возможны следующие варианты: 1) совокупность активных огра- ограничений может остаться без изменений; 2) в дополнение к имев- имевшим место может добавиться одно активное ограничение; 3) из со- совокупности активных ограничений одно ограничение может быть исключено. Случай, когда условию 2 удовлетворяют два или более активных ограничения, называется вырожденным. Подробное обсуждение вопросов, связанных с вырождением, можно найти у Кюнци [18] или у Флетчера [19]. В этих работах описыва- описываются эффективные способы нахождения (Ai+iAf+{}~1 и (AhALi) яри заданной матрице (A/Af)"; методика вычисления (Ац^А/7^) и (А/ iAj_i) ' рассматривается также в разд. 6.3.3. 6.3.2. ОБОБЩЕННЫЙ ГРАДИЕНТНЫЙ МЕТОД ОПТИМИЗАЦИОННОГО ПОИСКА Программа, реализующая обобщенный градиентный метод опти- оптимизационного поиска, разработанная Кроссом и Кефартом (Union Carbide Corp., Oak Ridge, Term., USA), позволяет одновременно опе- оперировать как линейными, так и нелинейными ограничениями, запи- записанными в виде равенств и неравенств. Эта программа осуществляет оптимизационный поиск методом наискорейшего спуска внутри '' Символ Ц || здесь используется для обозначения нормы вектора аот.
278 Глава 6 допустимой области; при этом численная аппроксимация частных производных целевой функции (по формуле упреждающей разности) и длина шага в заданном направлении на (k -\- 1)-м этапе являются функциями числа результативных шагов на k-u этапе вычислительно- вычислительного цикла. При наличии нетривиальных ограничений (т. е. ограниче- ограничений, не имеющих вид L/ < X/ < U/) после их линеаризации приме- применяется метод проекции градиента. При этом необходимо иметь записанные в явном виде аналитические выражения для частных производных функций, задающих нетривиальные ограничения. В окрестности ограничения используется параболическая аппро- аппроксимация вектора-градиента, что позволяет определить (приближен- (приближенно) точку касания ограничивающей гиперплоскости с поверхностью данного ограничения. Машинная программа содержит также ряд специализированных стратегий для манипулирования с «хребтами» и тривиальными ограничениями, а также для ускорения сходимо- сходимости промежуточных точек к оптимальному решению. В процессе оптимизации для перехода от недопустимой начальной (стартовой) точки к допустимой используются проективные методы. На фиг. 6.3.4 показана полученная градиентным методом траек- траектория оптимизациснного поиска в области оврага (являющегося эквивалентом хребта в задаче максимизации). Наличие оврага можно установить, обнаружив изменение знака составляющих гра- градиента целевой функции (например, изменение знака градиента целевой функции по переменной х2). Чтобы ускорить оптимиза- оптимизационный поиск в области оврага, в точке хD) длина шага при пере- перемещении по #2 сокращается до 0,64 его первоначальной длины, так что траектория проходит по ломаной, представленной на графике пунктирными линиями (не совпадающей с ломаной, представленной сплошными линиями). Если после первого сокращения длины шага знак частной производной продолжает «осциллировать», следует провести дальнейшее уменьшение шага. Если же осцилляция знака прекращается, то длина шага в направлении х2 умножается на 1,25. Другой способ ускорения сходимости, используемый при фор- форсировании вычислительного процесса на «градиентной» стадии оп- оптимизационного поиска, заключается в применении метода парал- параллельных касательных (см. разд. 3.3.3), с помощью которого после прохождения точек 2 и 4 на фиг. 6.3.5 удается попасть в точку А, минуя точки 5—8. Когда нарушенным оказывается тривиальное ограничивающее условие (т. е. условие L,- < х,- < Uj), производится сокращение длины шага путем умножения текущего значения длины шага на отношение разности между значением х]^ и граничным значением Xj к длине шага, фактически реализованного в направлении Xj. В ситуациях, когда условие L; < xj < U,- нарушается сразу для двух или более переменных, длина шага сокращается в такой
ж, Фиг. 6.3.4. Корректировка траектории оптимизационного поиска на этапе исполь- использования метода проекции градиента. Фиг. 6.3.5. Использование партан-метода на некотором этапе использования метода проекции градиента.
280 Глава 6 степени, чтобы удовлетворить ближайшему ограничивающему усло- условию. Если проекция осуществляется на ограничивающее условие, имеющее вид неравенства, используется другая вычислительная процедура. Составляющая «5/ (х^/дх/ приравнивается нулю, а при проектировании градиента целевой функции переменная X] исклю- исключается из рассмотрения путем приравнивания нулю dgy (x^)/dxj для каждого /-го ограничения, принимающего при проектировании градиента вид строгого равенства. Таким образом, операция про- проектирования выполняется в подпространстве, в котором /-я коорди- координата отсутствует. Когда нарушаются нетривиальные, причем нелинейные, огра- ограничения, для нахождения следующей допустимой точки может потребоваться несколько последовательных итераций. Пусть Ах есть n-мерный вектор-столбец, переводящий вектор х, не являю- являющийся допустимым, в допустимый вектор x(fe+'>, a Ab представ- представляет собой р-мерный вектор-столбец, показывающий, какие изме- изменения требуется произвести в ограничениях задачи, чтобы они ока- оказались удовлетворенными. В линейном приближении ЛЬ = ААх, F.3.7) где А — матрица первых частных производных по xt функций, задающих ограничения. Приращение вектора х (т. е. Ах) находится путем умножения Ат на р-мерный вектор у.Ах — Ату, так что АЬ == ААГ7. Следовательно, поскольку АЬ и А известны, 7 = (AAr)-'Ab. F.3.8) Фактически реализуемый шаг находится из соотношения F.3.9) где h — та часть матрицы, которая ассоциируется с активными ограничениями. Чтобы знать, какие из ограничений в виде неравенств следует в каждой текущей точке рассматривать как равенства в дополнение к исходной совокупности ограничений в виде равенств для каждого ограничения, записанного в виде неравенства, находится скаляр- скалярное произведение градиента целевой функции (или отрицательного градиента в случае минимизации) и единичной нормали nt к соот- соответствующей ограничивающей поверхности: При этом ограничение, соответствующее наибольшему значению такого скалярного произведения, добавляется к первоначальной совокупности ограничений-равенств также в виде равенства. Затем
Методы линейной аппроксимации 281 \f (xth)) проектируется на полученное таким способом множество ограничений, после чего этот вычислительный цикл повторяется до тех пор, пока проекция градиента на пересечение ограничений не определит допустимое направление. Так, например, изображен- изображенное на фиг. 6.3.6, а скалярное произведение v/ (x(ft)) и единичной нормали в точке х(*> указывает на то, что к множеству активных ограничений следует присоединить ограничение, представленное функцией g2 (x(fe))- Поскольку проекция у/ (х(/г)) на g-2(x(*>)—0 определяет допустимое направление, ограничение, задаваемое функ- функцией gt (x(k)), в систему активных ограничений включать не сле- следует. Таким образом, несмотря на то что у/ (x(/f>) может нарушать сразу несколько ограничений-неравенств, не всегда возникает не- необходимость проектировать \f (x(fe)) на все нарушаемые ограни- ограничения. Если при перемещении в допустимом направлении встре- встречается другое ограничение, то его добавляют к системе активных ограничений, после чего вновь ищется проекция yf (x). Исклю- Исключение ограничений из группы ограничений в виде равенств осуще- осуществляется на стадии, предшествующей вычислению нового градиента целевой функции. На фиг. 6.3.6, б показано, что происходит в оптимальной точке x(fe). Как и в случае, иллюстрированном на фиг. 6.3.6, а, в группу активных ограничений вводится ограничение, задаваемое функ- функцией g2 (x(*>), поскольку vTf fo«h V& (x'fe)) > r,Tf (xik)) vgl Однако при этом проекция v/(x<*') на ?2(хОД) нарушает ограни- ограничение, представленное функцией gi(x(fe)), и, следовательно, не является допустимым вектором. Поэтому gx (x<fe)) добавляется к системе активных ограничений, и yf(x(k)) проектируется на пересечение ограничений, представленных функциями gx (x(fe)) и g2 (xk), что дает нуль-вектор. Оптимизирующий поиск заканчивается, если на двух последовательных этапах вычислительного процесса не удалось определить такие перемещения в пространстве решений, кото- которые вносили бы минимизирующую поправку в значение целевой функции. Сравнение обобщенного градиентного метода (основные элемен- элементы которого представлены на фиг. 6.3.7) с другими алгоритмами оптимизации проводится в гл. 9. В работе Кросса [20] отмечается, что обобщенным градиентным методом решались задачи нелиней- нелинейного программирования, содержащие около 50 ограничений при таком же количестве переменных. Одна из трудностей, с которой сопряжено применение рас- рассмотренного выше метода, состоит в том, что значения элементов
а ас, Фиг. 6.3.6. Включение ограничений в виде неравенств в систему активных огра- ограничений при оптимизационном поиске обобщенным градиентным методом с по- последующим применением метода проекции градиента, а *= неоптимальная точка; б — оптимальная точка.
Пуск НВ и Ввод констант ипеременУшос I Нахождение допустимой '/партооой точки,если&? 'е является gongcmuMoib Вычисление для i ¦/,..-, а значений df(x)/dxi = *-(a:/m'>-3:i<m>>I х[т'>- значение jr,- на послед- последнем из перемещений в пространстве рвше- п;Х- г - значение jci на минимширдющелг f(Vl перемещении, не- непосредственно предше- стедющем зг/ '' IToqdop napadojidi аппроксимирующей 3 преоы- " цих значения гЬчХиопредагтоеминилсг/лга Да жит ограничения,данная Определение иеле сообразности вы- выполнения процедд- ~ ч дсхорения сходи- мости Вычисление частных производных f(x) с помощью упреждающих разно- разностей Имеют ли мес- место ограничения ? колеба- колебания знака част- Пих производных Да Нет проектирование градиента для по лучеяия допусти- допустимого направления 7/zmuAfu3aiiU0#w?v nouofca (АхсР-рагность лнежду верасней и ниж- нижней границами для ос^) В случаях когда- значение переменной оказывается граничным, число перемен ньсх при очередном изменении направ- направления сокращаетоя на единицу Вычисление лсс^Ы?,..., п) по шкале, установленпой для каждой составляющей пробно- пробного на/грав^ения (направления оптимизационного поиска) Имеют ли место ограничения ? 3uivucjreHu-e нового век- вектора ас; ж(**°жх"г}+ ах(**. Если при этом для той или иной переженной граничные условия не выполняются,зна- выполняются,значение &Ki уменьшают (при наличии ог- ограничений эта операция отсутствует) Продолжение переме- перемещения в пробном на- направлении- Есяи опти- оптимизационный процесс развивается олишкам тленно, производится •ecjuomp длины шаги eju, чтайы ускорить сходимость Предельное значение $Ьм числа разрешен- разрешенных прохождений че- через &док <$ превыше- превышено? /Да Минизаиия закан - Чшается, если точ- точка не попадает на границу, в против - Hojh ojrgvae еозера - Щаются к блоку® Тре- ^про- хожде- хождение Нет Первое, второе или,, mpemte прохождения ипи рационного процесса через данный блок? ?рое про- де- 'жождение ние Вазврищаюл к блоку Я Нет Число предыдущих успешных ш.а.грв на стадшг,следую- Ufea За tfjio/fOM @ Число предыдущих успешных шагов на стадии, следу» щей за блокол* @ пре- нииает единицу ? Число предшеотедющих ш.агое, начиная с&лока ф, больше единицы * Возвращаются кбло/с ffjne/om ли место ограничения ? Мет Да. Да. Параболическая аппрок- аппроксимация f(x1npu по- попарном совмещении трем последних значении an - " ъсимирующих и аакт- 'ких зтгченип целе ' Функции и выделение среди этих значений леи нимальпого (для eso оола нвйщезо испытания) Фиг. 6.3,7. Блок-схема вычислительного процесса на основе обобщенного гра- ПИРТТТТТПГП МРТПТТЯ
284 Глава 6 матрицы А представляют собой лишь аппроксимации их'истинных значений, так как частные производные фигурирующих в задаче функций вычисляются в точках, не являющихся допустимыми. Поэтому в тех случаях, когда в ходе итерации из-за слишком гру- грубых нарушений ограничений не удается получить допустимую точку с точностью до установленного ранее допуска, после опреде- определенного числа итераций алгоритм вычисляет новый градиент и уменьшает длину шага с тем, чтобы найти в результате допустимую точку. Другая трудность, возникающая в случае нелинейных огра- ограничений, заключается в том, что поверхности линеаризованных ограничений могут в какой-нибудь точке совпадать с граничной поверхностью. Тогда матрица ААГ становится вырожденной. Вы- Вырожденность матрицы ААГ может быть обусловлена также допол- дополнительным введением слишком большого числа ограничивающих поверхностей в имеющуюся уже систему активных ограничений, так что локальное решение может оказаться «избыточно обуслов- обусловленным». Вырождение устраняется путем замены /-го диагональ- диагонального элемента матрицы ААГ на единицу всякий раз, когда этот элемент равняется нулю. Поскольку /-я составляющая век- вектора АА/ (х) в таких случаях также равна нулю, параметр %j ока- оказывается равным нулю независимо от наличия и вида /-го ограни- ограничения. Если перемещение в новом направлении не улучшает зна- значение / (х) (или Ру/(х) =0), ищется новый градиент v/(х) и реализуется описанная выше операция проектирования \f (x) на подмножество активных ограничений. Пример 6.3.1. Обобщенный градиентный метод Рассмотрим следующую задачу: минимизировать / (х) =4хг — х\ — 12 при ограничениях hv (х) = 25 — х\ — х\ = 0, gt (х) = 10*! — х\ + Юх2 — 4 — 34 > О, Фигурирующие в данной задаче функции изображены графически на фиг. 6.0.1. Начнем итерационный процесс с недопустимой (но являющейся внутренней) точки х@> = [2 4] и наложим нижние ограничения @ 0) и произвольные верхние ограничения A0° 10е) на хх и х2 соот- соответственно. Частные производные целевой функции и функций,
Методы линейной аппроксимации 285 задающих нетривиальные ограничения, имеют следующий вид: а/(ж) а д/(х) _ „ QgzW щ 9v oga Iх; _ in Ov- Значения частных производных в начальной точке (в приведенном выше порядке) запишем в виде матрицы 4 —81 — 4 —8 6 2 Вычислим прежде всего матрицу А (в точке х@) = [2 4]г актив- активным является лишь ограничение hy (x) = 0), воспользовавшись соотношением I, k = 1,..., л», , л а«/ А дх, ' где га* — суммарное число активных ограничений из числа ограни- ограничений, записанных в исходной формулировке задачи в виде не- неравенств, и ограничений, имеющих по условию задачи вид равенств. В рассматриваемом случае (при га* = 1) А@) = off = — 4 (— 4) + [- 8 (— 8)] = 80. После этого вычисляется матрица ЛЬ, которая показывает, какие приращения должны получить фигурирующие в задаче функ- функции, задающие ограничения (в виде равенств и активных неравенств), чтобы соответствующие ограничения удовлетворялись при «старте» из точки х@> =[2 4]г; в рассматриваемом случае ЛЬ содержит всего один элемент ?@) g так как значение ht (х) в точке х = [2 5]г равняется пяти. Из фор- формулы F.3.7) следует, что Дх = A~'Ab. Таким образом, Лх = 1/80 (—5) =— 0,0625. На первом шаге (k = i) вектор хA> находится с помощью фор- формулы F.3.9): Х> ~~ Х> + *"*' ". дх/ хA} = 2,00 — 0,0625 (- 4) = 2,25, xil) - 4,00 - 0,0625 (— 8) = 4,50.
286 Глава 6 Последовательно реализуя шаги итерационного процесса, получаем (числа округлены): Порядко- Порядковый номер шага k 1 2 3 XI 2,250 2,236 2,236 х2 4,500 4,472 4,472 Mi («(*), d*l —4,500 —4,472 —4,472 Mi (ж(*)) а*2 —9,000 —8,944 —8,944 h (x<ft>) —3,125-10~' —9,645-10~4 —9,302 10~9 hx 3,083-10~3 9,644-10—6 После третьего шага условие допуска для h% (x(ft>) оказывается выполненным и значения независимых переменных последователь- последовательно смещаются на величину a (Uj— L/), где а =0,005 (значение этой константы можно выбирать произвольным образом по усмот- усмотрению пользователя), a Uj и L, (/ =1, 2) представляют собой верх- верхние и нижние предельные значения (границы) для хх и х2 соответ- соответственно. В рассматриваемом примере a (Uj — Lj) =0,005 • 10е = = 5 • Ш3 как для хи так и для х2, так что смещения текущих зна- значений этих переменных имеют следующий вид: 2,236 + 0 2,236 + 5-103 2,136 + 0 43) + 6*2 4,472 + 0 4,472 + 0 4,472 +5-103 1 (х) нли / (х + 6х) —23,05 1,99-10» -2,50-107 Эти смещения используются при вычислении новых составляющих градиента функции / (х): f j, . ¦ . , хп) — f (x) 1,99- 104- • 23,05) = 4,00, 5 • 10» — 2,50- 10~7 — (—23,05) _ (Старые значения составляющих градиента целевой функции заме- заменяются на вновь вычисленные.) Следовательно, на шаге 4 (k =4) поиск осуществляется сравнительно большими перемещениями и на шаге 6 приводит к вектору хF) = [0 5,590]т, для которого ftj (х) =- 6,250, a gi (х) =- 9,348.
Методы линейной аппроксимации 287 о 0 12 3 4 Фиг. П.6.3.1. Траектория оптимизационного поиска обобщенным градиентным методом. Теперь, поскольку условие g2 (x) > 0 не удовлетворяется, на- наряду с ограничением ht = 0 необходимо учитывать также и ограни- ограничение, заданное функцией g2 (x). При этом имеем 1,250 • 102 1,319 • 101 1,319 • 101 1,393 6,545- 10131 6,113 На следующем шаге матрица А превращается в единичную матри- матрицу. Для ряда последующих шагов итерационного процесса полу- получаем АЬ Г6.250] = [9,348] ' Лх = Г^ 6,545- 10131 L 6,113- 1014J- Номер шага k 7 8 9 10 0 0 1,70 4.00 М х2 0 0 1,70 4,00
288 Глава 6 На десятом шаге (k = 10) матрица А, к сожалению, становится вы- вырожденной: А = Г 128 —321 L—32 8_|' так что работа алгоритма преждевременно прекращается. Траек- Траектория оптимизационного поиска показана на фиг. П.6.3.1. 6.3.3. ОБОБЩЕННЫЙ МЕТОД ДЭВИДОНА Прежде всего изложим методы сопряженных направлений и переменной метрики при наличии линейных ограничений, а затем покажем, каким образом можно подойти к решению проблемы согласования и учета нелинейных ограничений. В данном подраз- подразделе в основном используются результаты Дэвидона [21], который впервые сформулировал существо метода, результаты Голдфар- ба [22, 23], проанализировавшего метод с использованием алгебры матриц, а также работы Дэвиса [24] и Муртага и Сарджента [25], которым удалось модифицировать метод Дэвидона и разработать машинную программу, позволяющую реализовать предлагаемый метод на ЭВМ. Хотя и предполагается, что на каждом этапе опти- оптимизационного процесса для определения направлений пробного поиска работает алгоритм Дэвидона — Флетчера — Пауэлла или алгоритм Бройдена, следует иметь в виду, что вместо них можно успешно использовать почти любой из методов, описание которых дано в гл. 3. Дэвидон в своей первой статье по данному вопросу утверждал, что его метод можно распространить на случай нелинейного про- программирования при линейных ограничениях как в виде равенств, так и в виде неравенств путем понижения ранга матрицы т)(*> на единицу для каждого активного ограничения и переопределения T)(ft» с тем, чтобы каждая составляющая вектора х(*+1( =x(ft) -f- -}- Ax(fr) удовлетворяла всем активным ограничениям [см. C.4.1I. Используя при этом подход, представленный соотношениями F.3.2) и F.3.3), можно определить так называемую обобщенную проекти- проектирующую матрицу. Обозначим через х « ортогональную проекцию вектора х [26], связанную с данной матрицей Q: хм = Р;х, F.3.10) где матрица Р{ определяется соотношением Р, = I — Af (A,QA[r' A,Q. F.3.11)
Методы линейной аппроксимации 289 Сравнивая это выражение с соотношениями F.3.2) и F.3.3), мы ви- видим, что в последних Q =1. Кроме того, Таким образом, Р, есть обобщенная проектирующая матрица, поз- позволяющая проектировать х на многообразие М в соответствии с метрикой Q. Затем положим Q = т|<*>, где ц<*> — оценка обращенной матрицы Гессе, описание которой дано в разд. 3.4, посвященном оптимизации при отсутствии ограничений. Напомним, что направление оптимизационного поиска в случае, когда задача нелинейного программирования не содержит ограни- ограничений, может быть найдено методом Дэвидона (см. разд. 3.4): Здесь i]oft> есть rj в точке x{k) при отсутствии ограничений. Если имеется / активных ограничений (А,х =Ь), то, как уже установ- установлено с помощью F.3.4), Один из способов комбинированного использования понятия проек- проектирующей матрицы и метода Дэвидона позволяет определить на- направление оптимизационного поиска в виде fe)), F.3.12) где fy задается соотношением F.3. ИI» при Q = tiofe), a [ (а, ^«аГгЧлР». F-з. 13) В принятых здесь обозначениях т)/А) есть матрица щ в точке x(ft> при / активных ограничениях, имеющих место в точке x(fe>. Напри- Например, накладывая ограничение ajx =b на целевую функцию задачи без ограничений, с помощью F.3.13) получаем (ft) T (fe) Tlj = Т|о „ , ¦ , [О.оАоа) Голдфарб показал, что в случае квадратичной целевой функции п переменных при / ограничениях в виде равенств использование '' Если определить s'ft> с помощью соотношения s(ft) = — Р; Itj^' yf в котором предполагается, что проектирующая матрица проектирует шаг в виях соответствующей задачи без ограничений на ограничивающую повер: исходной задачи, то Р] запишется (по Голдфарбу) в виде
290 Глава б для определения направлений оптимизационного поиска соотно- соотношения F.3.12) в комбинации с поэтапной линеаризацией обеспе- обеспечивает сходимость последовательности промежуточных решений к оптимальному за (п — t) итераций. Матрица ц обновляется (кор- (корректируется) способом, предложенным Бройденом (алгоритм еди- единичного понижения ранга); при этом следует иметь в виду, что эф- эффективность рассматриваемого здесь метода связана с тем, что главная задача состоит не в нахождении проектирующей матрицы Р, (или Pi) в явном виде на каждом этапе вычислительной процеду- ры, а в определении поправок к Рг по отношению к предыдущему этапу. Если имеется одно или несколько ограничений, которые в ходе оптимизационного поиска в заданном направлении оказываются нарушенными, то эти ограничения добавляются к совокупности ограничений в виде равенств и учитываются при формировании тM/'. С другой стороны, ограничения, записанные в исходной фор- формулировке задачи в виде неравенств, могут исключаться из систе- системы активных ограничений, если направление оптимизационного поиска оказывается таким, что эти ограничения из группы т огра- ограничений-неравенств вида при этом более не нарушаются. Голдфарб установил следующее со- соотношение, позволяющее исключать ограничение в виде неравен- неравенства из группы, состоящей из / активных ограничений: № = 4k) + РтГр^!г' , F.3.14) Где Ь/ =[Ьц Ь/2 ... bjn}, т. е. Ь,- представляет собой строку матри- матрицы Вт, соответствующую /-му ограничению, подлежащему исклю- исключению из совокупности активных ограничений, a Pm_i находится с помощью F.3.3) при исключении /-го ограничения в виде неравен- неравенства из множества т ограничений-неравенств (являющихся на пре- предыдущем шаге активными): Рт_, = I - В?_! (Bm_1B^_,)-1Bm_i. F.3.15) Теперь остается лишь ответить на следующий вопрос: как можно определить, какое из ограничений в виде неравенств становится активным в точке х(*>? Как уже отмечалось в разд. 6.3.1, это позволяют сделать так называемые теневые параметры, т. е. состав- составляющие вектора и, определение которого дано в связи с рассмотре- рассмотрением соотношения F.3.4):
Методы линейной аппроксимации 291 Отрицательное значение щ соответствует ограничению, которое можно исключить из базисной совокупности ограничений, причем для этого выбирается ограничение с наибольшим абсолютным зна- значением Uj. Поскольку из совокупности активных ограничений мож- можно исключить лишь ограничения в виде неравенств (ограничения, записанные в виде равенств, всегда активны), можно избежать вычисления и, ограничившись вычислением лишь вектора *)). F.3.16) Кроме того, как отмечалось в разд. 6.3.1, существуют более эф- эффективные способы вычисления (В,„Вт)~' при заданных (Bm+iBm+i) и (Bm-iBm-i)*1, нежели прямой способ перемножения матриц с последующим выполнением операции нахождения обратной матрицы. Используя i)f!, P; и и, определение которых дано выше, можно рассматривать метод Дэвидона как метод решения задач нелиней- нелинейного программирования при линейных ограничениях. Начальная допустимая точка х<0' предполагается известной; в противном слу- случае для того, чтобы алгоритм начал работать, ее нужно отыскать. Если х(°! — внутренняя точка R и ограничения в виде равенств отсутствуют, к]о°! принимается равной I. Если х@> лежит на / линейно независимых гиперплоскостях (т. е. удовлетворяет / огра- ограничениям в виде равенств), то i)/o! находится путем /-кратного применения F.3.13а) при начальном условии щ @) =1. Таким об- образом, множество независимых ограничений в виде равенств оказы- оказывается включенным в исходную совокупность базисных ограниче- ограничений, и, следовательно, только ограничения в виде неравенств либо вводятся в базис, либо из него исключаются. Предполагается, что на k-u этапе оптимизационного поиска мы знаем x(fe), / (х(/е)), v/ (x<ft)) и 11</!); будем также считать, что х(*> принадлежит R и многообразию М, задаваемому пересечением / линейно независимых гиперплоскостей, представляющих актив- активные ограничения (базисную совокупность ограничений). Схема даль- дальнейшего развития вычислительного процесса, предложенная Дэви- сом, включает следующие операции: /. Выделение активных ограничений из числа ограничений, имеющих вид неравенств. Вычисляют s(ft) = — i]\k\ \f (x(/e)) и с по- помощью формулы F.3.16) и. Если |js(fe}| = 0 и и,>0 при любом зна- значении /, оптимум х* найден и работа алгоритма заканчивается; в противном случае осуществляется переход к шагу 2. 2. Перестройка базиса ограничений. Из базисной совокупности ограничений исключается то ограничение в виде неравенства, ко- которое соответствует наибольшему по модулю отрицательному зна- значению Uf, эта операция выполняется с помощью формулы F.3.14).
292 Глава 6 Вычисляется s'*> =—TjfV/ (x<fe>); затем, как и в случае приме- применения алгоритма проекции градиента (алгоритма Розена), убеж- убеждаются в том, что вновь определенный вектор s(fe> задает допусти- допустимую (по отношению ко всем неактивным ограничениям) точку. Если точка, задаваемая вектором s№>, не является допустимой, используют соотношение F.3.13а) и прибавляют к базисной системе ограничений те ограничения в виде неравенств, которые при этом нарушаются. После этого с помощью формулы F.3.12) находится новое значение s(*>. Эта процедура выполняется (от начала рассмат- рассматриваемого шага) столько раз, сколько необходимо для получения допустимого направления. Если для некоторого k справедливо ра- равенство || вдопуст II =0, возвращаются к шагу 1; в противном случае переходят к шагу 3. 5. Одномерный оптимизационный поиск. По схеме, описание которой дано в разд. 3.4 и 2.6, реализуется одномерный оптимиза- оптимизационный поиск в допустимом направлении. Если при единичном перемещении в процессе одномерного оптимизационного поиска нарушается одно из ограничений, переходят к шагу 5. В против- противном случае фиксируется точка, соответствующая наименьшему значению / (х). 4. Переход к новой матрице. Если в процессе линейного опти- оптимизационного поиска группа активных ограничений не меняется, осуществляется переход от матрицы т)'*' к матрице T)f+1» с исполь- использованием при этом либо метода Дэвидона — Флетчера — Пауэлла, либо метода Бройдена (см. разд. 3.4). Затем возвращаются к шагу 1. 5. Формирование новой группы базисных ограничений. Группа базисных ограничений расширяется за счет введения в нее нового ограничения, а именно того, которое оказалось нарушенным на шаге 3. Затем возвращаются к шагу 1. Для определения направления оптимизационного поиска Муртаг и Сарджент использовали проектирующую матрицу Р/, т. е. пола- полагали V (x<ft>) = где u\k) s= (A/tio*)Af)~1A/Ti*V/: (х<&>) можно рассматривать как вектор, составляющими которого являются ассоциированные с активными ограничениями множители Лагранжа; с их помощью можно опреде- определить, какие ограничения следует исключить из базиса. Выражение [\// (х№!) — i]dwuJwJ интерпретируется как разность между градиен- градиентом /(х) в точке х№> и соответствующим градиентом т]оИи|й в най- найденной стационарной точке,
Методы линейной аппроксимации 293 Алгоритм Муртага — Сарджента весьма похож на алгоритм Дэ- виса. На k-м этапе реализуются следующие шаги: 1. Вычисляется и|й = M}ft)A,i$V/ (x№>)> где Mf> — аппроксима- аппроксимация (а^аГг1. 2. Вычисляется Дх№) = - 3. Вычисляется Р= max i где пгц — /-й диагональный элемент матрицы М' \ 4. Если |Ах№)||<е и р<8, вычислительный процесс заверша- завершается; в противном случае осуществляется переход к следующему шагу. 5. Вносятся изменения в базисную группу ограничений (если в этом имеется необходимость): а) к базису добавляется некоторое ограничение. Если точка х№) оказывается на поверхности, связанной с новым базисным ограни- ограничением, то g!+i (х№)) — 0. Если же (Axmfygi+1 (x№)) > 0, то в си- систему базисных ограничений вводят gz+i (х№>), а затем возвращаются к шагу 1; б) некоторое ограничение исключается из базиса. Если JAx(ft)f< 3, то выбранное }-е ограничение исключают из группы базис- базисных ограничений, а затем возвращаются к шагу 1. При включении в базис нового ограничения перестройка матри- матрицы Mf осуществляется следующим образом: гмп м12 hi M22 где м „г М12 = М21 = — Аи А12Ао , М22 = Ао~' (скаляр), ]• АЦ1 = М?\ А12 = A2r, = A^V'+i (Л, Ао = Ам — АмАп'Лц (скаляр).
294 Глава 6 При исключении ограничения из базиса матрица Mf заменяется матрицей 6. Осуществляется оптимизационный поиск в направлении про- проекции: Параметр Я подбирается так, чтобы значение / (х) уменьшалось, а вектор х оставался допустимым; при этом используется одномер- одномерный поиск. 7. Вычисляется Ag(ft) = v/(*<ft+1>) — V/(x(fc>). 8. Перестраивается матрица ц при использовании метода Брой- дена: Осуществляется проверка с тем, чтобы убедиться в положительной определенности матрицы x\ik+lK Если ц<к+и не является положитель- положительно определенной, х$+1) приравнивается т)ой). 9. Перестраивается матрица Mf: + (Ax» - n^AgW^Ag») + [Ax<fc» - 4№>Ag№>jrA[ [Mf A/ (Ax<fc> - njf Затем возвращаются к шагу 1. Как обобщить метод Дэвидона на случай нелинейных ограниче- ограничений? Если ограничения локально линеаризованы, то выбранный метод минимизации должен обеспечить возвращение из точки, не являющейся допустимой, в допустимую область (как, например, это имело место для хF) на фиг. 6.3.3) и гарантировать, что при этом значение / (х) действительно улучшится. Приведенный ниже ал- алгоритм такого обобщенного метода предложен Дэвисом [24] и осно- основан на результатах, полученных Розеном [14]. На фиг. 6.3.8 графи- графически представлены активное ограничение, заданное функцией gi (x); два неактивных ограничения, заданных функциями g2 (x) ng3 (x); линии уровней целевой функции/ (х) в точке x(fe); плоскость, касательная к / (х№) в точке x(fc); плоскость, касательная к gt (x<fe)) в точке х<&) (последняя представляет собой линеаризованное огра- ограничение gt (x(fc>) =0). Активным нелинейным ограничением будем считать ограничение, линейная аппроксимация которого является активной в соответствии с соотношением F.3.15). Вектор «возврата» г (x(fc)) соединяет недопустимую текущую точку с точкой, принад-
Методы линейной аппроксимации 295 лежащей допустимой области: г (х№>) = Br (BBrr'0W. F-3.17) где В — матрица, строки которой состоят из элементов, представ- представляющих собой найденные в точке xl*> значения частных производ- Ограниченное направление поиска s - Плоскость, ка сатвльная к члоскоста, касательная* к f(oc) в точке х * 'ууууу///у//ууу/Ууу/уууууууУуууу/у/уууу/////у/7у у\ дг(х)=О Фиг. 6.3.8. Метод Дэвидона, обобщенный на случай нелинейных ограничений. ных активных ограничений в виде неравенств по каждой из пере- переменных, а ф—вектор-столбец, элементами которого являются аб- абсолютные значения функций, задающих активные ограничения, вычисленные в точках, лежащих на s(fe) в окрестности x(fc>. Наконец, вектор, задающий направление оптимизационного поиска s(*', есть проекция вектора — T)<ft>\7/ (x(fe)) на пересечение всех активных линейных ограничений и активных ограничений, полученных из нелинейных ограничений с помощью линеаризации (последние представляют собой гиперплоскости, касательные к соответствую- соответствующим нелинейным ограничениям). Метод, предложенный Дэвисом, имеет следующую структуру '': Шаг 1. По аналогии с шагом 1 алгоритма, используемого в слу- случае линейных ограничений, выявляются активные ограничения в '> Ограничения в виде равенств, по-видимому, также могут быть включены в рассмотрение; однако никаких специальных правил Дэвисом по этому поводу указано не было.
296 Глава 6 виде неравенств путем рассмотрения линеаризованных (в окрест- окрестности точки х№)) ограничений, заменяющих соответствующие не- нелинейные ограничения. Шаг 2. Поскольку при использовании аппроксимирующих функ- функций на каждом шаге итерации происходит изменение базиса огра- ограничений, вычисляется матрица rjf для / активных линейных огра- ограничений в виде неравенств [вместо того, чтобы в ходе «согласова- «согласования» активных линеаризованных ограничений применять для понижения и повышения ранга матрицы ц требующие больших временных затрат соотношения F.3.13а) и F.3.14)]. Матрица ц^ вводится в память ЭВМ; затем понижается ранг дубликата ц^ путем последовательного применения соотношения F.3.13а) для каждого активного линеаризованного ограничения, в результате чего формируется матрица 4f\ где / — суммарное число активных ограничений. Наконец, находится Шаг 3. Чтобы начать оптимизационный поиск в точке x(ft+1) осуществляется одномерное перемещение вдоль направления s(*>. Это перемещение реализуется следующим образом. Длина шага ЯЯ выбирается равной меньшему из чисел а и р\ где а — удвоенное перемещение в сторону минимума по алгоритму Ньютона, а Р — расстояние до ближайшего линеаризованного ограничения вдоль s(fc). Данная процедура гарантирует, что минимизация превращается в безусловную (т. е. в минимизацию при отсутствии ограничений) и что нерациональный выбор длины шага будет при этом исключен. Далее находится xf4 = x(fc> -f WV> (фиг. 6.3.8) и осуществляет- осуществляется проверка с целью выяснения, не нарушается ли какое-либо из нелинейных ограничений. Если какое-нибудь из ограниче- ограничений, задаваемых функциями gt (х\к)), нарушается, то по направ- направлению вектора г (x(k)) производится перемещение из xf к допу- допустимой области. Чтобы избежать излишних операций, связанных с вычислением значений g{ (x(ft)), указанное выше перемещение всегда осуществляется до точки пересечения r(x(fc)) с плоскостью, касательной к контуру / (x(fc)). т- е- в точку хг'. (Эта точка яв- является внутренней, так как она находится в области, лежащей меж- между плоскостью, касательной к контуру целевой функции / (x(k}), и ограничивающими поверхностями.) После установления отрезка Xi' — X2fc> проводится интерполяция с целью отыскания точки хР на поверхности, определяющей ближайшее к хр ограничение с точностью до установленного допуска. Если точка хр не удовлетворяет активным ограничивающим условиям, то из точки x(fc) производится новое перемещение при
Методы линейной аппроксимации 297 сокращенной длине шага и, таким образом, находится новая точ- точка xi*. После отыскания граничной точки хз&> производится проверка, цель которой заключается в том, чтобы установить, существует ли минимум на дуге, соединяющей x(fc) и xf (см. в этой связи шаг 4). ж. Плоскость, касательная к Ф и г. 6.3,9. Экстраполяция при поиске граничной точки в случае, когда наруша- нарушается новое ограничение. Если существование минимума установлено, производится уточне- уточнение его положения путем надлежащей интерполяции. Этот минимум обозначим через х(*+и. Если существование минимума установить не удается, то из точки хзй> предпринимается шаг длиной К в на- направлении s(fe> и повторяется шаг 1, в результате чего определя- определяется точка х'М (фиг. 6.3.9). Если в точке хз№> оказывается нарушенным какое-либо другое из нелинейных ограничений (на фиг. 6.3.9 этот момент проиллюст- проиллюстрирован на примере ограничения, заданного функциейg2 (x)), гра- граничная точка x(fc+" определяется с помощью экстраполяции вдоль линии, соединяющей хз'** и непосредственно предшествующую ей точку хзА> (см. шаг 4). После этого осуществляется переход к шагу 5. Шаг 4. Прекращение оптимизационного поиска в окрестности х№+1) может иметь место при разных условиях. За исключением случая, когда оказываются нарушенными т новых ограничений (т > 1), поиск обычно прекращается, если оказывается, что
298 Глава 6 f (хз№)) > / (X3ft)) или у7/ (хз№)) s№) > 0, так как минимум функции / (х) находится на прямой х3№> — xf\ При этом производится ин- интерполяция с целью более точного определения положения миниму- минимума функции /(х) на той прямой (точки xf). После этого из точки Таблица 6.3.1 Сравнение четырех методов о U Задача ') 10 11 18 Метод а б в г а б в г а б в г Число ограничений, активных в минимуме 5 5 И Количество вычис- вычислений / (X) 120 12 8 7 109 94 10 9 712 657 227 124 Число нелиней- нелинейных ограничений 0 0 0 114 111 22 805 794 421 1) В качестве начальной выбирается точка, лэжащая в допустимой области. xf предпринимается шаг в направлении «наискорейшего спуска» к ближайшей границе и находится точка x(fe+1>. Дэвисом установлено, что для выпуклых функций-ограничений положение х№+1) можно определить путем нахождения пересечения —у/ (xf') и s(fc) в точке Х5* (не являющейся допустимой) с последующей интерполяцией или экстраполяцией (для вогнутых ограничений) между точками xf* и X5fc). Данная процедура для двумерного случая иллюстрируется на фиг. 6.3.10. Заметим, что при вогнутом ограничении х№+1) сле- следует находить путем линейного поиска вдоль —\f (xf'), так как точки ж?1 и X5fe) совпадают. Если в процессе поиска минимума /(х) путем перемещения вдоль линии хз° — хз№> значение /(х) не получается меньшим f(\f}), то полагают х№+1) = х?\ Шаг 5. Как только положение точки x(fc+I) оказывается установленным, по аналогии с шагом 5 оптимизационной процедуры при линейных ограничениях к r\\k) добавляются новые активные линеаризованные ограничения, после чего возвращаются к шагу 1,
Плоскость, касательная it f(ar*) в точке х' а осг д(ос) х3 ^_ \ 7 "¦ «i -^^ ^тельная в точке ,, S ств. каса к flat*) or* Фиг, 6.3.10. Определение
300 Глава 6 Шаг 6. Если группа активных ограничений остается без изме- изменений, осуществляется переход от матрицы г]/*) к новой матрице i\\k+i) по схеме, представленной шагом 4 оптимизационной про- процедуры при линейных ограничениях. Описанная выше процедура воспринимается пока лишь как «красивая абстракция». Поскольку относительно эффективности метода Дэвидона при нелинейных ограничениях известно очень мало, мы предлагаем читателю ознакомиться с табл. 6.3.1, в кото- которой проводится сравнение: а) комбинации метода Дэвидона с МБП'' (описание метода см. в разд. 7.1.3); б) комбинации метода Голдфарба с МБП; в) метода Дэвидона — Дэвиса (описание метода дано выше); г) метода Муртага и Сарджента (аналогичного методу Дэвиса). При этом анализировались результаты, полученные при рас- рассмотрении задач 10, 11 и 18, приведенных в приложении А, а также и ряда более простых задач. Применительно к задачам, содержащим только линейные огра- ограничения (в таблице ссылки на такого рода задачи отсутствуют), сочетание метода Голдфарба с МБП оказывается гораздо эффек- эффективнее сочетания метода Дэвидона и МБП; однако при решении задач с нелинейными ограничениями эти комбинированные методы почти равноценны. С точки зрения эффективности оба они значи- значительно уступают методу Дэвидона — Дэвиса. 6.4. МЕТОД ДОПУСТИМЫХ НАПРАВЛЕНИЙ (МЕТОД ЗАУТЕНДАЙКА) Как уже отмечалось выше, для каждой допустимой точки х(*> в R может существовать множество различных допустимых направ- направлений оптимизационного поиска [27]. Сущность методов допусти- допустимых направлений сводится к следующему: поиск начинается в допустимой точке пространства решений и реализуется (при линеа- линеаризованных ограничениях) по траектории, обеспечивающей улуч- улучшение значений целевой функции и вместе с тем никогда не вы- выходящей за пределы допустимой области. В этом смысле предло- предложенный Розеном метод проекции градиента представляет собой одну из модификаций метода допустимых направлений. Однако необходи- необходимо обратить внимание на следующее: проекция градиента v/ (x(*>) на подмножество ограничений, содержащее x(fc>, задает направле- направление поиска, соответствующее (относительно евклидовой метрики) направлению наискорейшего спуска для целевой функции, тогда МБП — метод барьерных поверхностей.
Методы линейной аппроксимации 301 как в методе Заутендайка используется другая метрика, а именно метрика, определяемая соотношением ||Лх|=тах{|А^/, .... \Ахп\}. Данная метрика приводит к тому, что в качестве допустимого вы- выбирается такое направление, которое обеспечивает наибольшую минимизирующую поправку к значению целевой функции без на- нарушения какого-либо из ограничений. Метод Заутендайка позволяет оперировать как с линейными, так и с нелинейными ограничениями; однако с его помощью не удается решать задачи с ограничениями в виде равенств. Задача, рассмотрению которой посвящен данный раздел, по существу пред- представляет собой задачу F.1.1) без ограничений в виде равенств. Линеаризация фигурирующих в этой задаче функций путем их разложения в ряд Тейлора в окрестности точки х'*1 приводит к следующей задаче: минимизировать / (х№)) + \Tf (x(ft)) (x — х№)), х ? Еп, при ограничениях St (Л + \Tgi (Л (х - х№)) > 0, i = 1, .. . , р. F.4.1) Процедура Заутендайка устанавливает наиболее благоприят- благоприятные г) из возможных направлений оптимизационного поиска при отправной точке х№ путем решения некоторой (связанной с исход- исходной задачей) подзадачи, а именно путем решения задачи F.4.5), структура которой указана ниже. Перемещение из точки х№) в точку х№+1), как обычно, задается соотношением х(*+1) = х№) + K(k)s(k). Подстановка в задаче F.4.1) вместо вектора х его текущего значения х№+1) приводит к задаче минимизации f (х№)) + Xw\Tf (x№)) s№) при ограничениях gi (х№)) + Я, V& (х№)) ^ > 0, i = 1, • • ¦, Р. F.4.2) Поскольку f (x№)) и g( (x№)) > 0 являются константами, необходимые и достаточные условия реализации перемещения из точки x(fe) в точку х№+1) в связи с решением задачи F.4.2) [причем такого пе- перемещения, когда точка х№+1) остается допустимой с точки зрения '' В смысле получения наибольшей минимизирующей поправки к значению / (х) при перемещении из точки x(fe' в точку x№+1J без нарушения какого- либо из ограничений.
302 Глава 6 условий задачи F.4.1)] имеют следующий вид: 0 F.4.3) f=l, ..., p. F.4.4) Любой Еектор s(k), удовлетворяющий неравенствам F.4.3) и F.4.4), одновременно является вектором допустимого направления. Метод Заутендайка выделяет допустимое направление, обеспе- обеспечивающее получение наибольшей минимизирующей поправки к значению целевой функции / (х) на шаге от точки х(*> к точке х(*+" путем решения следующей задачи линейного программирования: минимизировать v7 (xW) sm, s№) g E'\ при ограничениях VWWO, i=\,...,p. F.4.5) Решая задачу F.4.5), мы определяем составляющие вектора допу- допустимого направления, вдоль которого следует перемещаться из точки х(*> в точку х(*+'>. Каждый из этапов реализации метода Заутендайка имеет сле- следующую алгоритмическую структуру: 1. Пусть х<*>— некоторая допустимая точка задачи F.0.1), в которой отсутствуют, однако, ограничения в виде равенств. 2. Вычисляются градиенты функции / (х) и функций gt (х) (i — 1, ..., р) в точке x(fe) и решается задача линейного програм- программирования F.4.5), в результате чего находится допустимое направ- направление s(/!). Решение задачи F.4.5) находится с помощью любого из алгоритмов линейного программирования. 3. Если у7/ (х№)) s</!' <;0, то определяется максимальная длина шага К*, осуществляемого в направлении s№) без выхода за преде- пределы допустимой области задачи F.0.1); Я* получается из условия X* = max {Я| x(fc) + Ks^k> ? Щ. Значение Я* может быть найдено с помощью одномерного поиска в направлении s ', начиная из точки х№). Затем определяется такое значение %(к), удовлетворяющее условию 0 < Я(/!) < к*, для которого f (x№) + ^№)s(W) есть минималь- минимальное значение целевой функции в направлении sw. Новая точка определяется из х№+1) = x<fc) + A,(fc)s<fc). Теперь возвращаются к шагу 2 с тем, чтобы начать оптимизационный поиск на (k + 1)-м этапе вычислительного процесса. 4. Если у7/ (х№)) s№) = 0, оптимизационный поиск заканчивает- заканчивается, так как дальнейшее уменьшение значения / (х) не представляется возможным. Заутендайком дано также описание модифицированного метода допустимых направлений [28], в рассмотрении которого пока нет
Методы линейной аппроксимации 303 особой необходимости. Опубликованные сведения относительно ма- машинных программ, которые позволяли бы реализовать метод Зау- тендайка на ЭВМ, крайне бедны; тем не менее некоторые результа- результаты известны [28]. Рассмотренный выше метод Заутендайка по сравнению с другими методами, применяемыми при аналогичной постановке задачи нелинейного программирования, является более «быстродействующим». Кроме того, он имеет то преимущество, что позволяет оперировать как с линейными, так и с нелинейными ограничениями, имеющими вид неравенств. Однако нет достаточно данных, доказывающих эффективность данного метода при реше- решении задач с большим числом нелинейных ограничений. 6.5. МЕТОД ОБОБЩЕННОГО ПРИВЕДЕННОГО ГРАДИЕНТА (МОПГ) Алгоритм обобщенного приведенного градиента [30—32] пред- представляет собой модификацию алгоритма Вольфа [33], которая может быть использована для решения задач при нелинейном характере и целевой функции и ограничений. Структура данного метода пред- предполагает реализацию (по отношению к нелинейным функциям) линейно-аппроксимирующих процедур; определение новых пере- переменных, ортогональных к некоторым из ограничений; приведение градиента целевой функции к преобразованному таким способом базису. (Вольфом подробно рассматривается связь метода приведен- приведенного градиента в его первоначальной формулировке и симплексного метода линейного программирования.) Хотя задача, решаемая ме- методом приведенного градиента, формируется в общем виде как за- задача минимизации/ (х), х ? Еп, при ограничениях Мх) = 0, '= 1 «. F.5.1) Lj^Xj^U,; /= 1, ..., п, ограничения в виде неравенств удается включить в оптимиза- оптимизационную схему путем вычитания из левых частей ограничений, имеющих вид неравенств, неотрицательных ослабляющих перемен- переменных, что превращает ограничения-неравенства в ограничения-ра- ограничения-равенства вида при неограниченных предельных значениях переменных v[t т. е. — оо <; у,- < оо. (Переменные vt добавляются к п переменным исходной задачи.) Если в соответствии с принятым предположением выполняется условие невырожденности, в структуре обобщенного алгоритма
304 Глава 6 приведенного градиента различают две системы переменных: т ба- базисных (зависимых) переменных х/ формируют подмножество /, а (л — т) небазисных (независимых) переменных хд образуют под- подмножество К- При этом зависимые переменные неявным образом определяются через независимые переменные; следовательно, / (х) есть функция лишь (п — т) независимых переменных. Поясним используемые в данном разделе специальные обозначения: — (т х 1)-мерная матрица, — (m X т)-мерная квадратная мат- матрица («базисная» матрица), дхт J 'xjl дх, m+l „Tf _\df(x) V*ll ~[~~dxT " дхп df(x) дхт 'x\ 1 — — [1 X (л — т)]-мерная матрица, A x т)-мерная матрица, df(x) dxK df(x) m-И dx. df(x)] = dxn = 2 [1 X (л — /п)]-мерная матрица (матрица приведенного градиента), dx, dXl dXj dxK dh d*K dxm+l dxm -dxm+l " r*i(x) dxm+l dhm (x) dxn dxm ' dxn J dh,o 0 dxn dhm (x) — [m x (n — #г)]-мерная матрица, — [m x (n — т)]-мерная матрица. хт+1 dxn 6.5.1. ПРИВЕДЕННЫЙ ГРАДИЕНТ Поскольку ограничения в виде равенств отражают зависимость между переменными задачи F.5.1) лишь в неявной форме, непосред- непосредственное сокращение размерности этой задачи, вообще говоря, неосуществимо. Другими словами, уравнения, задающие упомяну- упомянутые выше ограничения, не могут быть разрешены относительно зависимых переменных с тем, чтобы их можно было путем соответ-
Методы линейной аппроксимации 305 ствующих подстановок исключить из структуры целевой функции и, таким образом, выразить целевую функцию только через неза- независимые переменные. Однако метод ограниченных вариаций поз- позволяет сократить размерность задачи и делает возможным исполь- использование приведенного градиента в качестве одного из критериев при установлении оптимальности. Чтобы проиллюстрировать эту идею, рассмотрим частный случай задачи F.5.1), предположив, что целевая функция зависит всего от двух переменных при единственном огра- ограничении в виде равенства, а именно рассмотрим следующую задачу: минимизировать / (хи х2) при ограничении II (Xi, Х2) = U. При бесконечно малых приращениях хг и х% имеем Фиг. 6.5.1. Допустимые пе- перемещения в случае, когда минимизация / (х) осущест- осуществляется при единственном ограничении в виде равен- равенства h (х) = 0; А н В — до- допустимые точки, тогда как точка С не является допусти- допустимой. Приведенные выше выражения линейны относительно dxx и dx2, так что из выражения для df (x) либо dxu либо dx2 можно исклю- исключить. На фиг. 6.5.1 показано, что единственно допустимыми пере- перемещениями являются перемещения вдоль ограничения h (xu хг) — Решим уравнение dh (x) =0 относительно dx2: Кроме того, л , х dh (x) dh ¦dxv "~°* dh i Полученное решение подставим в выражение для df (x): df(x) Отсюда получим следующее выражение для приведенного градиента: df(x) = df(x) df(x) [dft(x) j-' dh(x) dxt 3xx dx2 I dx2 J dxx Необходимым условием минимума / (x) является равенство нулю дифференциала df (х) (т. е. df (x) =0). По аналогии со случаем минимизации без ограничений можно записать это условие в виде df(x) йхЛ = 0.
306 Глава 6 Возвращаясь к общей формулировке задачи F.5.1), выразим обобщенный приведенный градиент через компоненты градиента целевой функции, матрицу, обратную по отношению к базисной, и якобиан для ограничений, имеющих вид равенств. Для df (х) по- получаем df (х) = ylKfdxK + Vx/f^x/. Путем перемножения матричных элементов нетрудно показать, что приведенный градиент можно записать в виде (Следует помнить, что такие производные, как dxm+i/dxm+2 или dxm+i/dxn, обращаются в нуль, так как переменные xt (i — = m + 1, ..., л) являются независимыми.) Чтобы исключить из соотно- соотношения F.5.2) неудобную для дальнейшего анализа матрицу dx.i/dxK, заметим, что dht (х) = у1к1ц (х) dxK + Vljhi (x) dx, = 0, i = 1, .,., т, так что ^iL==_(*) (-* j . F.5.36) Подставляя F.5.36) в F.5.2), получаем для обобщенного приведен- приведенного градиента ^(Х) __ х,Т f \7Т f ( ^h Y~V ^ \ /R В Л\ Их.. — Vx/c/ Vx;/ a_ I лх__ • ^D.O.t; Заметим, что число составляющих вектора приведенного гра- градиента равняется числу независимых переменных (по одной состав- составляющей на каждую независимую переменную). На фиг. 6.5.2 дано графическое представление приведенного градиента для следующей задачи квадратичного программирования, включающей одно ограничение в виде равенства: минимизировать / (х) — х\ + х\ при ограничении h(x) = 2xi + xt—\ =0. Пусть хх есть независимая (небазисная) переменная, а х2 — зави- зависимая (базисная) переменная. Частные производные функций
Методы линейной аппроксимации 307 I J У У У У* У* Уровни ( , 2 '\у X уК "У / 3 2 0 y*J У ^ ¦»—— -2 -3 г Значения приведенного градиента dfCX) «6 axt ^Р\^-\^у-2 2 щ У / \ J Фиг. 6.5.2. Приведенный градиент: условный минимум находится на линии h (х) = 0 в точке х* = [0,4 О,2]7 (в этой точке приведенный градиент обращается в нуль). / (х) и h (x) имеют следующий вид: (x) 1. Для обобщенного приведенного градиента получаем df (х) = df (х) df (х) | dh (x) j-' dh (x) = = 2xx — 2x2 ¦ 1 • 2 = 2лгх — 4д;г.
ЗОЙ Глава 6 Перемещение из любой допустимой точки вдоль ограничения h (х) = = 0 до тех пор, пока df (iaC)ldx1 не обратится в нуль, обеспечивает минимизацию / (х). Можно интерпретировать приведенный градиент и другим обра- образом, опираясь на понятие двойственной по отношению к F.5.1) задачи математического программирования''. Нетрудно показать, что условия Куна — Таккера (см. подразд. 2.5.4) для двойствен- двойственной по отношению к F.5.1) задачи (если она является задачей вы- выпуклого программирования) имеют следующий вид: _va"W = 0) F.5.56) Zj <[ 0, если Xj = Lj, Zj >0, если Xj = U/, / = /ra + 1, ..., n, F.5.5b) 2/ = 0, если L;- < Xj < [//, где z = [2m+i ... zn], a v = [vt ... vm]. Если положить z == (df (x)/dx^), то подстановка F.5.56) в F.5.5а) приводит к F.5.4). Таким образом, значения составляющих при- приведенного градиента служат ориентиром при отыскании оптималь- оптимального вектора х (поиск состоит в отыскании точки, в которой при- приведенный градиент целевой функции обращается в нуль). 6.5.2. НАПРАВЛЕНИЕ ОПТИМИЗАЦИОННОГО ПОИСКА Алгоритм обобщенного приведенного градиента начинает рабо- работу с допустимой точки. Если же относительно условий рассматри- рассматриваемой задачи вектор х не является допустимым и, следовательно, возникает необходимость вводить в рассмотрение (при записи огра- ограничений) искусственные переменные, то значения последних посте- постепенно сводят к нулю путем добавления к целевой функции штраф- штрафного члена (см. гл. 7), что в итоге делает вектор х допустимым. С этой целью можно также использовать и сам алгоритм обобщенного приведенного градиента, минимизируя (или максимизируя) значе- значение каждой искусственной переменной (или суммы абсолютных значений этих переменных). Если приведенный градиент ни на одном из этапов вычислительной процедуры не обращается в нуль, произ- ' В математическом программировании понятие двойственности отражает то обстоятельство, что если существует допустимый оптимальный вектор х, являю- являющийся решением задачи минимизации (которую называют исходной), то этот же вектор является решением соответствующей задачи максимизации (которую на- называют двойственной).
Методы линейной аппроксимации 309 водится замена текущего вектора по стандартной формуле x№+i) ^ X№) + a,<*»A«>t (б.б.б) где X > 0, а п элементов вектор-столбца А(*> задают направление оптимизационного поиска по алгоритму обобщенного приведенного градиента. При этом компоненты Ду, соответствующие независи- независимым (небазисным) переменным, определяются способом, который отличается от способа определения А/ для зависимых (базисных) переменных. Начнем с обсуждения способа определения состав- составляющих Ду, соответствующих независимым переменным. Индекс К, обозначающий подмножество независимых перемен- переменных, ниже всюду (за исключением случаев, когда окажется необ- необходимым различать х/ и хк) будет опускаться. Направления опти- оптимизационного поиска Ду (/ ==пг-\- 1, ..., п), соответствующие независимым переменным, определяются через значения состав- составляющих приведенного градиента следующим образом: д<*>=о(еСЛИ ^^Ui Иг?)>0' ' (если xf = Lj и zf]<0, &f> = — zf, если Lj < xf < Uj, где Zj, согласно приведенному выше определению [см. соотношения F.5.5в)], представляют собой составляющие приведенного гради- градиента (т. е. z = df (x)/dxK). Так, например, на графике, приведен- приведенном на фиг. 6.5.2, в точке х<0> = [1 —1]т имеем Ai0) = —zf' = = — (df X (х)№хг) = —6; следовательно, х^ = 1 — 6Я, а в точке х@> = имеем — гA0) = 9 и х^ = 1+9^. Если ограничения линейны, то в силу F.5.6) метод обобщенного приведенного градиента совпадает с методом приведенного гради- градиента, предложенным Вольфом. В соответствии с данным алгорит- алгоритмом составляющие Af] при этом также обращаются в нуль, когда значение х,- становится очень близким либо к нижнему предельному значению I/, либо к верхнему предельному значению [/,-; при этом прилагательное «близкий» понимается в том смысле, что разница между Xj и Lj (или Uj) не превосходит некоторое произвольное малое число е. Ниже рассматриваются два других варианта алгоритма обоб- обобщенного приведенного градиента, с помощью которых можно выби- выбирать Af для независимых переменных. 1. Симплекс-модификация метода обобщенного приведенного граднен- ia. Пусть
310 Глава 6 по значениям /, для которых L; <c xf < Uj. Положим I 0, если }Ф1, ' I— г™, если / = /. Если целевая функция и ограничения линейны, симплекс-модифи- симплекс-модификация метода обобщенного приведенного градиента эквивалентна симплексному методу линейного программирования. Симплекс- модификация метода обобщенного приведенного градиента облада- обладает тем достоинством, что с ее помощью удается сократить количество вычислительных операций, необходимых для определения на- направлений оптимизационного поиска A<fe>, причем последние ока- оказываются независимыми от того, в каких единицах измеряются составляющие вектора х. 2. Циклический вариант метода обобщенного приведенного гра- градиента. В рамках данного варианта составляющие вектора A(fc) определяются по следующей схеме: Номер итерации 1 2 и т. д. 1 Af = i о, / -42). U, /= ! /?= 1 j 2 /?=2 После выполнения п такого рода операций вычислительный цикл повторяется. Рассматриваемая модификация метода обобщенного приведенного градиента также «индифферентна» по отношению к выбору единиц измерения составляющих вектора х. Наконец, направления оптимизационного поиска для незави- независимых переменных можно (при желании) вводить в блок-схему алго- алгоритма обобщенного приведенного градиента и другими способами, отличающимися от только что рассмотренных, например с помощью метода сопряженных градиентов (см. подразд. 3.3.2), Вычислительные эксперименты показывают, что, прежде чем говорить о преимуще- преимуществах методов определения оптимизационных направлений, не сов- совпадающих с симплекс-модификацией и циклическим вариантом ме- метода обобщенного приведенного градиента, необходимо вначале накопить определенный опыт логического и экспериментального характера. Перейдем теперь к рассмотрению вопроса о выборе направлений оптимизационного поиска для зависимых переменных. При этом направляющий вектор \Х1 для определения составляющих вектора
Методы линейной аппроксимации 311 х, входящих в подмножество х/, выбирается иначе, чем для неза- независимых составляющих этого вектора, входящих в подмножество Хк- Мы знаем, что если ограничения линейны, то их можно разре- разрешить относительно базисных (зависимых) переменных, выразив последние в явном виде через независимые (небазисные) перемен- переменные. В случае же нелинейных ограничений сделать это не всегда удается. Поэтому при наличии нелинейных ограничений вектор направления оптимизационного поиска для подмножества х7 опре- определяется по существу с помощью линеаризации ограничений по схеме, заданной соотношением F.5.3а) или F.5.36): или в разностном виде Так, например, обращаясь к иллюстрации, приведенной на фиг. 6.5.2, мы видим, что по отношению к точке х@) перемещение Д(,0) ==_ 6, и, следовательно, AjP> = — A) B) (— 6) = 12. 6.5.3. МЕТОД ОПТИМИЗАЦИОННОГО ПОИСКА В ЗАДАННОМ НАПРАВЛЕНИИ С ЦЕЛЬЮ НАХОЖДЕНИЯ ДОПУСТИМОЙ ТОЧКИ Опишем сначала процедуру завершения поиска длины шага, уменьшающего / (х), с использованием как зависимых, так и не- независимых переменных, а затем поясним, каким образом удается подобрать значения зависимых переменных так, чтобы текущее значение / (х) получило дополнительную минимизирующую по- поправку при сохранении вектора х внутри или на границе допусти- допустимой области. Прежде всего определим, какими должны быть зна- значения Xtk) в соотношении F.5.6). Как обычно, значение целевой функции в точке (х(/с) -f XA{f") минимизируется при помощи пара- параметра X на k-м шаге (т. е. Xk), значение которого определяется в процессе одномерного дихотомического поиска. Значения Х(к) ле- лежат в интервале, определяемом неравенствами 0 < Я,'' < "Кт, где Хт = т\п{Х1, Х2), F.5.8) и для / =1, ..., п имеют место соотношения _ Lax 11д№)!Р
312 Глава 6 где Х'з — наибольшее из возможных значений X, для которого переход в допустимую точку реализуется при улучшении значения целевой функции / (х) без изменения подмножества базисных пере- переменных х/, которые использовались на р предыдущих итерациях. Индекс k означает порядковый номер текущего шага, а индекс i — порядковый номер итерации, связанной с Х3. Величина Хг выбирает- выбирается с учетом данных, полученных на k-м шаге. После выбора X путем минимизации / (X) может обнаружиться, что разность окажется меньше некоторого заранее заданного критического зна- значения. В этом случае значение X можно постепенно увеличивать, скажем вдвое, до тех пор, пока не будет выполняться условие Таким путем от неудовлетворительного (слишком малого) выбора Хт осуществляется переход к более оптимальным значениям этого параметра; однако при этом возникают дополнительные трудности. Абади и Гигоу проанализировали ряд других факторов, влияющих на выбор X. Оказалось, что в любом случае в каждом из направ- направлений Д}** реализуется перемещение с шагом длиной Х{к'^, за исключением тех ситуаций, когда для той или иной независимой переменной граничное условие, задаваемое предельным значением Lj (или U/), не выполняется; в таких случаях граничным значением соответствующей переменной становится ее значение на (k -\- 1)-м шаге, т. е. xf+1). Если X определяется дихотомическим поиском, то, подставляя найденное значение этого параметра в F.5.6) и учитывая F.5.7), мы обнаруживаем, что некоторые из составляющих xf оказыва- оказываются недопустимыми (обозначим их через х/А)), причем такая си- ситуация при нелинейных ограничениях вполне объяснима. В таких случаях для нахождения допустимого вектора х?+1) преобразуются лишь базисные (зависимые) переменные. Предположим, что в точке (х(к+1), xf+I)) выполняется условие h(x$+I), xf+1)^0. Если огра- ограничения линеаризуются путем замены нелинейных функций усе- усеченным рядом Тейлора, можно определить такой вектор xf+y>, для которогоh (xx+1), xf+1)) обращается в нуль, т. е.
Методы линейной аппроксимации 313 откуда следует, что (Й4-1) (?4-1) / СП \ • / (fe-4-1) (fe"W)\ /С С П\ х/ -х/ =-[-qTi) h(xx ,X/ ). F.5.9) С соотношением F.5.9) связывают понятие «итерация методом Нью- Ньютона»1'. Построенный с помощью этого метода итерационный про- процесс продолжается до тех пор, пока не будет получен один из при- приведенных ниже результатов. Заметим, что если точка (х$+1), х}*+1>) является допустимой в пределах заданного интервала, как это показано, например, на фиг. 6.5.3а, тох№+1) превращается в xf+1). A) Если /(х$+1), х(/+1))< <С/(х(к, х(/'), где индекс i обозначает последний из допустимых те- текущих векторов, то итерационный процесс по методу Ньютона за- заканчивается и оптимизационный поиск продолжают, беря в качестве отправного соотношение F.5.6). B) Если точка х^+1) является внут- внутренней или граничной и тем не менее 2> /(х$+1>, xf+1)) > / (х$, х/1) или если итерационный процесс с помощью F.5.9) не обеспечивает сходимость за определенное (фиксированное) число шагов (итера- (итераций), то производится уменьшение (в некоторой заданной пропор- пропорции, например вдвое или в десять раз) значения К и повторяется итерация по схеме, вытекающей из соотношения F.5.9). C) Если первые две из описанных выше ситуаций не реализуются и послед- последняя из найденных с помощью F.5.9) точек не является ни внутрен- внутренней, ни граничной, то вносятся надлежащие изменения в базис. Отрезок прямой, соединяющий точку х(/+1) с точкой, полученной из F.5.9), пересекает поверхность параллелотропа, заданного входя- входящими в задачу F.5.1) векторами L и U, в точке, где одна из перемен- переменных (обозначим ее через хг) подмножества xi принимает либо свое верхнее предельное значение Ur, либо свое нижнее предельное значение Lr. Рассмотрим фиг. 6.5.3, б; здесь в роли такой перемен- переменной хг выступает х3. Переменная хг, принимающая свое граничное значение, исключается из базиса и заменяется переменной xs из подмножества хк. После этого применительно к новому набору независимых переменных выполняется итерация по Ньютону, Правила выбора переменной, заменяющей исключаемую из ба- базиса переменную хп могут быть различными. Значение переменной, вводимой в базисный набор переменных, не должно совпадать с '' Если базис содержит ослабляющие переменные, появляющиеся из-за на- наличия ограничений в виде неравенств, то вместо F.5.9) используется более эффек- эффективное рекуррентное соотношение, описание структуры которого можно найти в соответствующих публикациях (см цитируемую литературу). 2' При этом осуществляются также некоторые дополнительные контрольно- вычислительные тесты.
„да Плоскость, касательная X h(x)=O в точке ж.1" & точка при новой зависимой переменной а:г а б Фиг. 6.5.3. Оптимизационный поиск методом обобщенного приведенного градиента и преобразование зависимых переменных. Здесь х3 — зависимая переменная, а хг и хг — независимые переменные. Имеет место нелинейное ограничение в виде равенства А (х) =0, а также требуется, чтобы выполнялись условия 0^^-^ 100 (/= 1,2,3). На фиг. а показано положение новой допустимой точки. На фиг. б представлена схема изменения базиса путем исключеиня из него х3 н введения в базис переменной хг.
Методы линейной аппроксимации 315 соответствующим граничным значением (Ls или Us), причем пред- предпочтение отдается такой ситуации, когда это несовпадение оказы- оказывается значительным. Пусть К' — совокупность индексов переменных из множества К, ко- которые могут быть введены в базис в ходе итерационного процесса; Q, — г-я строка матрицы (dh/dx;), где г — индекс переменной, подлежащей исключению из базиса; dh/dxk — k-н столбец матрицы (dh/dx); dk = min {(xk - Lk), (Uk- xk)}; f+2)f) )-A;f)) при допустимых x f+2) и x f; f; e — произвольное малое число. Тогда, если через s обозначить индекс переменной, подлежащей включению в баше, то значение этого индекса определяется из следующих критериев: Критерий 1: Q. F.5.10) Если F.5.10) не позволяет определить переменную xs, например, по той причине, что | Q, (dh/dxs) | < е, то для этой цели исполь- используется критерии, формулировка которого приводится ниже. Критерий 2: а) Если xr —Lr (т. е. если хг принимает свое нижнее предель- предельное значение), то б) Если хг = Ur (т. е. если хг принимает свое верхнее предель- предельное значение), то {|^|^} F.5.116) Если при выполнении ньютоновской итерации для определения х, получается К =0, то используются некоторые другие критерии поиска; подробное описание этих критериев можно найти у Абади и Гигоу. Схема итераций по Ньютону может быть улучшена, если при переходе от одного вычислительного этапа к другому не допускать слишком больших приращений для элементов базисной матрицы. Например, можно рассматривать отношение А^. к норме Д# и в слу- случаях, когда это отношение превышает некоторое заранее установ- установленное критическое значение, исключать переменную х, из базиса, заменяя ее другой переменной по указанному выше правилу. В осо- особых ситуациях, когда на первых итерациях все базисные пере- переменные являются ослабляющими, при реализации итерационной
316 Глава б процедуры по Ньютону находят практическое применение некото- некоторые специальные правила, позволяющие избегать слишком боль- больших изменений в группе базисных переменных. 6.5.4. КРИТЕРИИ ЗАВЕРШЕНИЯ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА В экстремальной точке составляющие вектора А обращаются в нуль. Первый тест, состоящий в исследовании на сходимость, заключается в том, чтобы проверить, выполняется ли условие | Af1 j <С е | А/1' |, /' — т + 1, ..., п, где е — некоторое малое число. Второй тест состоит в проверке выполнения условия Г < Гтах, где — некоторый (произвольным образом выбранный) параметр. 6.5.5. МЕТОДЫ СОКРАЩЕНИЯ ВРЕМЕНИ РЕАЛИЗАЦИИ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА Вместо того чтобы заново вычислять (dh/dx/)" каждый раз, когда данная матрица должна использоваться в вычислительной процедуре, оказывается возможным аппроксимировать (dh/dxi)~l с помощью метода, который впервые был предложен Билем. Пред- Предположим, что в точке х№) матрица (dh/dxi)~l найдена. Тогда в со- соответствии с методикой, предложенной Абади и Гигоу, на неко- некотором последующем 1-м шаге Данная аппроксимация еще подлежит тщательному анализу; вме- вместе с тем можно утверждать, что она выглядит весьма многообеща- многообещающей. В тех случаях, когда приближение оказывается слишком гру- грубым, с помощью специальной машинной «подпроцедуры» удается заново вычислить элементы матрицы, обратной по отношению к базисной. Абади и Гигоу предлагают для определения погреш- погрешностей, возникающих при аппроксимации, ряд соетветствующих тестов. Оптимизационный поиск можно также осуществлять (только внутри допустимой области) с помощью метода наискорейшего спуска, находя при этом ряд следующих одна за другой точек х(*>, х(*+1), ..., х<*+"> и перемещаясь в направлении х(*+р) — x<ft>.
Методы линейной аппроксимации 317 Основываясь на эмпирических данных, Абади и Гигоу рекомен- рекомендуют принимать р =2. Более поздние машинные (переведенные на язык кодов) вариан- варианты алгоритма обобщенного приведенного градиента, ориентиро- ориентированные, правда, на решение задач с линейными ограничениями, можно найти в специализированной библиотеке VIM Library') по номенклатуре Е4 EDF PHIMAX и Е4 EDF PHIMAQ. Имеются сведения о том, что метод обобщенного приведенного градиента ус- успешно применялся Вольфом при решении задач с нелинейными це- целевыми функциями при наличии от 200 до 300 линейных ограни- ограничений и при числе переменных, равном 1000 [34]. Качество работы машинной программы, составленной в 1969 г. на основе алгорит- алгоритма обобщенного приведенного градиента, проанализировано в гл. 9 путем рассмотрения ряда тестовых задач. Пример 6.5.1. Метод обобщенного приведенного градиента Рассмотрим следующую частную задачу: минимизировать / (х) = 4хх — х\ — 12 при ограничениях Мх) = 25 — xi — *1 = 0, gt (х) = Юх, — х\ + Юх2 - х\ - 34 > 0, *i > 0, Функции /(х), hx (х), g2 (x), gs(x) и gi{x) графически изображены на фиг. 6.0.1. Поскольку начальная точка х<0) =[2 4]г не является допусти- допустимой и так как нетривиальным компонентом задачи является огра- ограничение g2 (x) > 0, мы вводим аддитивным способом искусствен- искусственную переменную х-6 в ограничение в виде равенства и вычитаем из левой части ограничения g2 (х) ;> 0 ослабляющую переменную лг4. Частные производные целевой функции и функций, задающих огра- ограничения, по переменным хх и х% имеют следующий вид: 0/00 дх, = 4 ОГ(Х> 2*. dga(x) ~1^ Поступили в указанную библиотеку 9 мая 1968 г.
318 Глава 6 Итак, в задаче фигурируют четыре переменные хи хъ лг? и xt и два ограничения в виде равенств, выраженные функциями ftx (х) и gf2 (x); следовательно, две переменные будут независимыми и две — зависимыми. Начнем вычисления, рассматривая в качестве неза- независимых переменные хг и х2, а в качестве зависимых (или базис- базисных) — переменные х3 и х4. Приступая к поиску допустимого ре- решения, вычтем из / (х) величину 105x3 и будем считать, что -1010<х3<0 и 0<х4<1010. Тогда № С3 Для формирования приведенного градиента нужны матрицы [dh (х'^/дх/р1 и [dh (х@))/дхк]; другими словами, необходим якобиан, вычисленный в х@) по каждому из подмножеств переменных: дх3 дх4 1 О О —1 дх3 dxt Из F.5.4) для приведенного градиента получаем ^ _81_ 01-4 —4 —81 j ^ J = [—3,99996 - 10б — — 8,00008 - 10в]. Далее вычисляется норма приведенного градиента с тем, чтобы проверить, не оказывается ли она ниже числового значения кри- критерия, определяющего условия завершения вычислительного цикла при данной текущей точке и с учетом граничных значений перемен- переменных; выясняется, что норма градиента равняется 8,944 • 105, что превышает значение упомянутого выше критерия. После этого находятся направления оптимизационного поиска для независимых переменных; для этого определяются д№> = _ JUL± = _ 8,00008 • 105. По завершении этой вычислительной процедуры ищутся направ- направления поиска для зависимых переменных; используя F.5.7), по-
Методы линейной аппроксимации 319 лучаем д@)_ аь дх, о - -1 h(x@)) 1 дхк ]' 4 6 — 3,99996 • 105 00008 • 105 Г-з, [-8,1 8,000 • 10е 4,000 • 10е] ¦ 106J ' Определив направления поиска, найдем К, минимизирующее / (х) [см. F.5.6)]: Переменные и целевая функция Хз 2 4 —5 6 ~5-105 Этап поиска 1 2,250 4,500 —2,842-10~14 8,500 —23,250 2 2,125 4,250 —2,500 7,250 24,997-105 последний 2,250 4,500 0 8,500 —23,250 Окончательное значение К равняется 6,250 • 10 7. Теперь используем последовательно F.5.9), стремясь подобрать значения зависимых переменных таким образом, чтобы вектор х стал допустимым: 0 1 Г1 0]|"— 0,31251 [0,31251 5j"U,l 8,500 -1JL- 0,3125 J ,1875 Поскольку вектор х~= [2,250 4,500 0,3125 8.187]7" не был допу- допустимым, осуществляется поиск нового значения К; в результате выполнения пяти итераций методом Ньютона находим допусти- допустимую точку: хA) = [1,568 4,748 0 4,161]г, При этом и .*! и х2 продолжают оставаться независимыми перемен- переменными, а х.А обращается в нуль. Теперь переходим к вычислению составлящих нового реду- редуцированного градиента и, следовательно, опять приступаем к вы- выполнению описанной выше процедуры. Последовательность значе- значений составляющих вектора х указана на фиг. П.6.5.1. Приведенный градиент вычисляется при этом еще только раз, а все остальные вы- вычислительные операции проводятся с целью нахождения допусти- допустимого вектора и определения момента завершения вычислительного цикла. В общей сложности значения функций, задающих ограниче- ограничения, вычислялись 103 раза, целевая функция 110 раз, а градиент
320 Глава б Фиг. П.6.5.1. Траектория поиска методом обобщенного приведенного градиента. целевой функции 27 раз. При этом замена базисных переменных осу- осуществлялась дважды (фактически это сводилось к перенумерации переменных). ЗАДАЧИ') 6.1. Выполните линеаризацию фигурирующих в задачах 6.17, 6.22, 6.28 и 6.29 целевых функций и ограничений в окре&гности вы- выбранной точки. Для одномерных и двумерных задач изобразите графически исходные целевые функции и их линейные аппроксимации. 6.2. Можете ли вы линеаризовать целевую функцию задачи 6.20? 6.3. Проверьте, выполняются ли для задач 6.17, 6.18, 6.20, 6.23,6.28 и 6.29 условия, гарантирующие сходимость к оптимальному решению (см. стр. 242—243). 6.4. Выполните два этапа алгоритма Гриффица и Стюарта для задачи, приведенной в примере 6.2.1 (используя вычислительную процедуру, приведенную в связи с рассмотрением примера 6.1.1). Для получения допустимого вектора х либо воспользуйтесь ') Ряд задач, имеющих отношение к содержанию данной главы, можно найти также в конце гл. 7 и в приложении А.
Методы линейной аппроксимации 321 машинной программой для алгоритма линейного программирования, либо выполните все вычисления вручную. 6.5. Повторите задачу 6.4 применительно к условиям задачи 6.25. 6.6. Составьте машинную программу, реализующую алгоритм ПОП II. Решите задачу, приведенную в примере 6.2.1. Ответьте на следующие вопросы: а) Значения каких параметров необходимо задать (из рекомен- рекомендуемого набора), чтобы получить искомое решение? б) Каким образом сравниваются значения производных, получен- полученные численным методом, с соответствующими значениями этих производных, найденными в аналитическом виде? в) Какие трудности возникают при решении рассматриваемой вами задачи и как они выглядят по сравнению с трудностями, опи- описанными в разд. 6.1.3? г) Какие усовершенствования алгоритма могли бы вы предло- предложить? 6.7. Составьте матрицу приращений, структура которой приве- приведена на фиг. 6.1.3, необходимую при использовании алгоритма ПОП, для задачи, приведенной в примере 6.1.1 (за исключением столб- столбцов с порядковым номером / > п + 1 и строк с порядковым номе- номером i > п + m + 2). Положите б/ = 0,001, Вычислите также погрешности за счет линеаризации. 6.8. Найдите проекцию градиента целевой функции / (х) = 5*! — Зх2 + 6х3 на (хг — х2)-плоскость (данная плоскость соответствует ограниче- ограничению х3 = 0). Изобразите графически у/ (х) и найденную вами проек- проекцию градиента на (хг — х2)-плоскость. 6.9. Повторите задачу 6.8, взяв в качестве целевой функции При этом вычислите градиент этой функции в точке A, —1,1) и спроектируйте его на (хх — х2)-плоскость. 6.10. Предложите процедуру минимизации, основанную на методе проекции градиента, с тем чтобы найти минимум функции / (х) = х\ + х\ + х\ — 2ххх2 при ограничениях Мх) = 2х1 + х2 — 4 = 0 и h2 (х) = 5*! — х3 — 8 = 0. Реализуйте практически три этапа предложенной вами процедуры. На каждом этапе укажите составляющие градиента целевой функции, структуру проектирующей матрицы, составляющие вектора неза- независимых переменных и значение / (х).
322 Глава 6 6.11. Определите проекцию градиента в точке х = [1 1] для следующей задачи: минимизировать / (х) = Ъх\ — Ъх\ при ограничениях *i>0, 6.12. Определите проекции градиента целевой функции на из f(x) = ; ограничения точки к! + х1 + А1(х) = х = Хз — 2ху 2хх + х2 = [1 1 х2 —12ххх — 6=0, -8>0 If. 6.13. Должна ли проектирующая матрица быть обязательно по- положительно определенной? 6.14. Покажите, что соотношение F.3.11) справедливо и для обоб- обобщенной проектирующей матрицы. 6.15. Докажите, что при исключении ограничения в виде нера- неравенства из группы активных ограничений правомерно использо- использовать соотношение F.3.14). 6.16. Подготовьте машинную программу, реализующую алго- алгоритм, предложенный Дэвисом (см. подразд. 6.3.3). Вначале составь- составьте вариант программы, пригодный для решения задач с линейными ограничениями, а затем видоизмените подготовленную вами про- программу применительно к условиям нелинейных ограничений. Каким образом вы считаете возможным эффективно учитывать в ходе вы- вычислений ограничения в виде равенств? 6.17. Рассмотрите следующую задачу (вытекающую из мате- математической модели функционирования сушильного аппарата): минимизировать / (х) = 0,0064^ [ехр (— 0,184х?'3л;2 — 1)] при ограничениях ft (х) = 1,2 • 10м - C000 + Xl) х]хг > 0, gt (х) = 4,1- ехр @,184х?'3л:2) > 0, где х1— скорость газа, а х2— глубина ванны. Начиная поиск из точки х = [31000 0,345] , покажите, что локальный оптимум соответ-
Методы линейной аппроксимации 323 ствуетточкех* = [31800 0,342]г. Насколько строго в этой точке удовлетворяются условия, представленные указанными выше огра- ограничениями? Является ли локальный минимум истинным минимумом? Является ли локальный минимум глобальным минимумом?^(См. гл. 2.) Можно ли прийти в ту же точку х*, выбрав в качестве отправной точку х<°> = [0 Of? Точку х'°» = [1 1]г? 6.18. Суммарные затраты, связанные с сооружением ректифи- ректификационной колонны, можно записать в виде С = CDAN + CSHAN + C, + Cd + C + C,+ С„ (а) где С — суммарные затраты, долл; Ср — стоимость одного квадратного метра горизонтального перекрытия монолитными плитами, долл/фут2; А — площадь поперечного сечения колонны, фут2; N — число монолитных плит (равняется числу горизонтальных перекрытий), Nmin — минимальное число горизонталь- горизонтальных перекрытий (монолитных плит); Cs — удельные затраты, связанные с сооружением фермы, долл/фут3; Н — расстояние между горизонтальными перекрытиями (меж- (между монолитными плитами), фут; С, — стоимость (плюс затраты на монтаж) подающего насоса (насоса накачки), долл; Cd — стоимость (плюс затраты на монтаж) системы насосов, обеспечивающих ректификационный процесс, долл; Сь — стоимость (плюс затраты на монтаж) насоса откачки низ- низких фракций, долл; С[ — стоимость (плюс затраты на монтаж) насоса, обеспечи- обеспечивающего повторную перегонку промежуточных фракций, долл; Сх — другие фиксированные затраты, долл. Задача заключается в минимизации суммарных затрат при за- заданных спецификационных характеристиках выходного продукта и пропускной способности ректификационной колонны, а также при фиксированных стоимостных характеристиках, относящихся к функционированию всех видов насосных установок (т. е. С/, Cs, Q и Сь фиксированы). После подбора строительного материала становятся фиксированными Ср, Cs и Сх. Переменные, описывающие технологический процесс, связаны двумя (установленными эмпирически) соотношениями: (в)
324 Глава 6 Исходное сырье Дистиллат Флегма ^в Остаток Для простоты положим а = Р = 1; тогда " = \\ - (NminIN)\ \D-)mla ' {&) A = K(L + D). (в') Некоторые из типовых ректификационных колонн характеризуются следующими значениями указанных выше параметров: ср = cs = н = с,= 30, 10, 2, 4000, с,- F — D = Nmin = 8000, 1500, 1000, 5, Cd = 3000, тг = 1. Cb = 2000, 1 ч • фут' JV 100 фунт * Затраты на перекачку, обеспечивающую повторную перегонку, вы- выражаются формулой CL = 5000 + 0,7L. (г) а) Определите подходящее решение для этого процесса, т. е. значения независимых переменных. Какие из переменных являются зависимыми? б) Определите минимальные суммарные затраты и найдите соот- соответствующие им числовые значения переменных. 6.19. Майлендер [35] показал, что сформулированную Боксом [36] задачу, заключающуюся в минимизации / (х) = Ьо + а01хг +
Методы линейной аппроксимации 325 при ограничениях О < аахг + B ацхЛ хх <Ьг, t = 1, 2, 3, \/=2 / хг > 0, 1,2 < х2 < 2,4, 20,0 < х3 < 60, 9,0 < х4 < 9,3, 6,5 < хъ < 7,0, можно преобразовать в задачу линейного программирования с по- помощью подстановок yl = xxxt (i = 2, 3, 4, 5) и уг = xv При этом получается следующая задача линейного программирования: 5 минимизировать g(y)=bo+ 2 при ограничениях 5 2 i=\, 2, 3, yt>0, t=hb, — 1,2 0x>O, 2,4^ —f/2>0, , 60,0«/]-f/3>0, 9,3^—г/4>0, Й —6,5y1>0, 7,0«/1-f/5>0, Используя метод нелинейного программирования (НЛП) для исходной задачи, подтвердите оптимальность решения, полученно- полученного с помощью линейного программирования, а именно убедитесь, что g = 5 280 344,9, у1 = 4,53743, у2 = 10,88983, у3 = 272,24584, yt = 42,19811, уь = 31,76202, т. е. если вернуться к исходным переменным, то будем иметь / = _ 5 280 344,9, Xl = 4,53743, х2 = 2,40000, х2 = 60,00000, х4 = 9,30000, хь = 7,00000. Интересно отметить, что исходная нелинейная задача не являет- является выпуклой: допустимая область невыпукла, целевая функция также не является выпуклой. Тем не менее полученная в результате указанной выше замены переменных линейная задача (эквивалент- (эквивалентная исходной) оказывается выпуклой.
326 Глава 6 Ниже указаны значения фигурирующих в задаче постоянных коэффициентов: а01 = — 8 720 288,795, ао2 = — 150 512,524, аоз= — 156,695, ао4 = — 476 470,319, а05 = _ 729 482,825, а11= — 145 421,4004, а12= 2931,1506, а13 = — 40,4279, аи = 5 106,1920, aj5= 15 711,3600, а21 = — 155 011,1055, а22 = 4 360,5334, а23 = 12,9492, а24 = 10 236,8839, а.гъ= 13 176,7859, а31 = — 326 669,5059, а32 = 7390,6840, а33 = - 27,8987, а34 = 16 643,0759, а35 = 30 988,1459, Ьо = — 24 345,0, &! = 294000,0 62 = 294000,0, 63 = 277 200,0. 6.20. Найдите минимальное значение интеграла 1 при ограничении 6.21. Определите максимальное и минимальное расстояния от начала координат кривой: Ъх\ + бл:^ + 5л| = 8. 6.22. Найдите максимальное значение функции f (х) = 20,21 — 46,38*! + 59,42л:2 + 16,30*^ + + 8,34лг? + 4,26x1 на ограничивающей окружности с радиусом, равным 3. Какова структура вектора х? 6.23. Фирма, выпускающая химическую продукцию, продает три вида продукции. Этой фирмой установлено, что функция дохо- дохода имеет вид / = Юх + 4,4f/2 + 2г, где х, у и г представляют собой месячные нормы выработки продукции первого, второго и третьего вида соответственно. На основе анализа графиков распределения уровней спроса на выпускаемую продукцию фирмой выявлены сле- следующие предельные условия норм выработки упомянутых выше видов
Методы линейной аппроксимации 327 продукции: х>2, Кроме того, фирма должна иметь в виду, что объемы имеющихся в наличии сырьевых материалов ограничены; это приводит к сле- следующим ограничениям, которые должны учитываться при состав- составлении производственного графика: x + 3y + 2z<29. Составьте наиболее рациональный для данной фирмы производ- производственный график и определите максимальное значение функции сум- суммарного дохода фирмы. 6.24. Минимизируйте половину квадрата расстояния отточки х = = [2 3 —1 f до тетраэдра, заданного соотношениями w — — х1 — х2 — х3 + 3 >> О, Примечание. Целевая функция имеет вид / (х) = ± [(х - 2J + (у- ЗJ + (z + If]. 6.25. При определении условий химического равновесия стал- сталкиваются со следующей задачей: минимизировать f (х) = при ограничениях Х\ -г 2х2 4- 2х3 -\- А*6 -f ^ю = 2, „ 1^ 9v J_ v _L v 1 Лд ~р ЛЛ^ ~p Ag ~J~ Л7 —¦ 1 , Y I 4» f y, I Ov I « __ 1 Л3 ~Г Л7 ~T Л8 ~T~ ^Л9 Т л10 '— Xl Пусть P ~ 750, a ^ имеет следующие значения: 1 1 2 3 4 5 —10,021 —21,096 —37,986 — 9,846 —28,653 1 6 7 8 9 10 щ -18,918 —28,032 —14,640 —30,594 —26,111 Определите х* и / (х*).
328 Глава ё 6.26. Система, состоящая из трех последовательно соединенных теплообменников (см. схему на стр. 329), реализует обычный поэтап- поэтапный процесс теплообмена без повторных циклов. Обозначения для температур, характеризующих каждый из этапов теплообмена, при- приведены на схеме (предполагается, что температуры измеряются по шкале Фаренгейта). Процесс теплообмена осуществляется следу- следующим простым способом: холодная жидкость нагревается в каждом из теплообменников горячей жидкостью, поток которой перпенди- перпендикулярен потоку нагреваемой жидкости. Допустим, что каждый из теплообменников можно описать следующей стационарной макромо- макромоделью : Предположим, что скорости всех потоков одинаковы и равняются W, а также будем считать, что теплоемкость жидкости в любом узле системы постоянна и равна Ср. Задача заключается в определении площади поверхности теплообмена А для каждого из теплообменни- теплообменников, так чтобы суммарная площадь, обеспечивающая теплообмен в системе, была минимальной. Ниже приводятся входные (исходные) данные для фигурирующих в приведенной модели постоянных коэф- коэффициентов: Г0=100Т, U T3 == 500 °F, U tn = 300 °F, U. t21 = 400 °F, ta = 600 °F, WCP = 10B БЕТ/Т. t = 120 ',= 80 в= 40 БЕТ/ч • БЕТ/ч • БЕТ/ч • (футJ (ФутJ (футJ (Примечание, Данная задача нередко решается с помощью динами- динамического программирования.) 6.27. Минимизируйте f to - при ограничениях 4*! + 7х2 + Зх3 < 10, 3xt + 4х2 + 5х3 < 8, Xi, x2, xs ~^> 0. 6.28. Определите глобальный минимум и глобальный максимум функции / (х) = хг sin x% — 4*!
Методы линейной аппроксимации 329 при ограничениях t (х) = х2 sin x2 — х\ — хх — О, gt (х) = хх < 4, (Примечание. Приведенная здесь целевая функция имеет несколько минимумов и максимумов.) 6.29. Определите минимум целевой функции 15лг2 при ограничении (Примечание. Данная целевая функция имеет два локальных ми- минимума.) Теплообменник 1 т Теплообменник 2 т Теплообменник 3 ЛИТЕРАТУРА 1. Griffith R. E., Stewart R. A., Management Sci., 7, 379 A961). 2. Glass H., Cooper L., J. Assoc. Computer Mach., 12, 71 A965). 3. Olson F. A., ACM SIGMAP Workshop, IBM Data Processing Div., June 14—. 15, 1966. 4. Smith H. V., A Process Optimization Program for Nonlinear Systems: POP II, IBM Gen. Program Library 7090 H9 IBM 0021, 1965. 5. Zwart P. В., SIGMAP Workshop on Nonlinear Programming, Yorktown Heights, N. Y., 1967. 6. Wilson R. В., Ph. D. Dissertation, Harvard Univ. Graduate School of Busi- Business Administration, Boston, 1963. 7. Beale E. M. L., Numerical Methods, in: Nonlinear Programming, Abadie J., ed., Interscience Publ., N. Y., 1967. 8. Graves G. W., Whinston А. В., Univ. Calif. Western Management Sci. Inst. Paper 108, Los Angeles, Sept. 1966. 9. Frank M., Wolfe P., Naval Res. Logistics Quart., 3, 95 A956). 10. Barnes G. K., M. S. Thesis, Univ. of Texas, Austin, Tex., 1967. 11. DiBella С W., Stevens W. F., Ind. Eng. Chem. Process Design Develop., 4, 16 A965). 12. Frisch R., The Multiple Method for Linear Programming, Mem. Univ. Socia- lokon Inst., Oslo, Oct. 1955.
330 Глава 6 13. Zoutendijk G., Methods of Feasible Directions, Elsevier Publ. Co., Amsterdam, 1960. 14. Rosen J. В., J. Soc. Ind. Appl. Math., 8, 181 A960); 9, 514 A961). 15. Rosen J. В., Merrill R. P., Gradient Projection — GP90, Share Program 7090-K2-3430GP90. 16. Murtagh B. A., Sargent R. W. H., Chap. 14 in: Optimization, Fletcher R., ed., Academic Press, London, 1969. 17. Householder A. S., The Theory of Matrices in Numerical Analysis, Blaisdell Publ. Co., Waltham, Mass., 1964, p. 8. 18. Kunzi H. P., Krelle W., Nonlinear Programming, Blaisdell Publ. Co., Waltham, Mass., 1966. 19. Fletcher R., J. Inst. Math. Appl., 5, 2 A969). 20. Cross K- E., AEC Doc. K-1746, May 30, 1968. 21. Davidon W. C, AEC Doc. ANL-5990 (rev.), 1959. 22. Goldfarb D., Ph. D. Dissertation, Princeton Univ., Princeton, N. J., 1966. 23. Goldfarb D., Lapidus L., Ind. Eng. Chem. Fundamentals, 7, 142 A968). 24. Davies D., The Use of Davidon's Method in Nonlinear Programming, ICI Ltd. Rept. MSDH/68/110, Aug. 1968; Doc. N69-33235 from CFSTI, Springfield, Va. 25. Murtagh B. A., Sargent R. W. H., Chap. 14 in: Optimization, Fletcher R., ed., Academic Press, London, 1969. 26. Householder A. S., The Theory of Matrices in Numerical Analysis, Blaisdell Publ. Co., Waltham, Mass., 1964, p. 10. 27. Zoutendijk G., Methods of Feasible Directions, Elsevier Publ. Co., Amsterdam, 1960. 28. Zoutendijk G., SI AM J. Control, 4, 194 A966). 29. Wolfe P., Recent Developments in Nonlinear Programming, Rand Corp. Rept. R-401-PR, 1962. 30. Abadie J., Carpentier J., Generalization de la methode du gradient reduit de Wolfe au cas de contraintes nonlineaires, Proc. IFORS Conf.; Chap. 4 in: Opti- Optimization, Fletcher R., ed., Academic Press, London, 1969. 31. Fatire P., Huard P., Rev. Franc Recherche Operationelle, 9, 167 A965). 32. Abadie J., Guigou J., Gradient reduit generalise, Electricite de France Note Hi 069/02, April 15, 1969. 33. Wolfe P., Notices Am. Math. Soc, 9 D), 308 A962); Methods of Nonlinear Programming, in: Recent Advances in Mathematical Programming, Gra- Graves R. L., Wolfe P., eds., McGraw-Hill, N. Y., 1963, pp. 76—77. 34. Kflnzi H. P., Unternehmensforschung, 12, 1 A968). 35. Mylander W. C, Computer J., 8, 391 A965). 36. Box M. J., Computer J., 8, 42 A965). ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА ОБЩИЕ ВОПРОСЫ Abadie J., Numerical Experiments with the GRG Method, in: Integer and Nonli- Nonlinear Programming, Abadie J., ed., North Holland Publ. Co., Amsterdam, 1970. Bellmore M., Greenberg H. J., Jarvis J. J., Generalized Penalty-function Concepts in Mathematical Optimization, Operations Res., 18, 193 A970). j. Carpentier J., Abadie J., Generalisation de la methode du gradient reduit de Wolfe au cas de contraintes nonlineaires, Proc. IFORS Congr., Cambridge, Mass., Aug. 29 — Sept. 2, 1966. Charnes A., Cooper W. W., Nonlinear Power of Adjacent Extreme Point Methods in Linear Programming, Econometrica, 25, 132 A957). Davies D., Some Practical Methods of Optimization: Notes for the NATO Summer
Методы линейной аппроксимации 331 School, on Integer and Nonlinear Programming, Academic Press, N. Y., June 18—20, 1969. Davies D., Review of Constrained Optimization, Clearinghouse for Federal Scienti- Scientific and Technical Information, Document N 69-36898, Sept. 30, 1968. Dennis J. В., Mathematical Programming and Electrical Networks, MIT, Cam- Cambridge, Mass., 1959. Faure P., Huard P., Resolution de programmes mathematiques a fonction nonli- neaire par la methode du gradient reduit, Rev. Franc. Recherche Operationelle, № 36, 167 A965). Fletcher R., Clearinghouse for Federal Scientific and Technical Information, Docu- Document N 69-37016, Sept. 30, 1968. Griffith R. E., Stewart R. A., A Nonlinear Programming Technique for Optimiza- Optimization of Continuous Processing Systems, Management Sci., 7, 379 A961). Kleinbohm K., Ein Verfahren zur approximativen Losungvon konvexen Program- men, Ph. D. dissertation, Univ. of Zurich, 1966. Leviton E. S., Polyak В. Т., Constrained Minimization Methods, USSR Compu- Computational Math, and Math. Phys., 6, 1 A966). Rosen J. В., The Gradient Projection Method for Nonlinear Programming, Part I, J. Soc. Ind. Appl. Math., 8, 181 A960); Part II, 9, 514 A961); IBM Share Program 1399. Wolfe P., Methods of Nonlinear Programming, in: Nonlinear Programming, Aba- die J., ed., North Holland Publ. Co., Amsterdam, 1967. Zoutendijk G., Methods of Feasible Directions, American Elsevier, N. Y., 1960. СХОДИМОСТЬ АЛГОРИТМОВ Topkis D. M., Veinott A. E., On the Convergence of Some Feasible Direction Algo- Algorithms for Nonlinear Programming, J. SI AM Control., 5, 268 A967). Zangwill W. I., Convergence Conditions for Nonlinear Programming Algorithms, Management Sci., 16, 1 A969). ДРУГИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ПРИ НАЛИЧИИ ОГРАНИЧЕНИЙ, ИСПОЛЬЗУЮЩИЕ ЛИНЕАРИЗАЦИЮ Cheney E. W., Goldstein A. A., Newton's Method for Convex Programming and Tchebycheff Approximation, Numerical Math., 4, 253 A959). De Remus L. V., Nonlinear Partition Programming, SIGMAP Workshop on Non- Nonlinear Programming, IBM Corporation, Yorktown Heights, N. Y., 1968. DiBella С W., Stevens W. F., Process Optimization by Nonlinear Programming, Ind. Eng. Chem. Process Design Develop., 4, 16 A965). Glass H., Cooper L., Sequential Search: A Method for Solving Constrained Optimi- Optimization Problems, J. ACM, 12, 71 A965). Graves G. W., Whinston А. В., The Application of a Nonlinear Programming Al- Algorithm to a Second Order Representation of the Problem, Univ. of California at Los Angeles, Western Management Sci. Inst. Paper 108, Sept. 1966 (AD641196). Hartley H. O., Hocking R. R., Convex Programming by Tangential Approximation, Management Sci., 9, 600 A963). Hartley H. O., et al., Convex; A Computer Program for Solving Convex Prog- Programs, Techn. Rep. № 23, Texas A and M Univ., College Station, Texas, July 1970. Hilleary R. R., The Tangent Search Method of Constrained Minimization, U. S. Naval Postgraduate School Techn. Rept. Res. Paper 59, March 1966 (AD 632121).
332 Глава 6 Kelley J. E., The Cutting-plane Method for Solving Convex Programs, J. Soc. Ind. Appl. Math., 8, 703 A960); Method of Gradients, Chap. 6 in: Optimization Techniques with Applications, Leitmann G., ed., Academic Press, N. Y., 1962. Kunzi H. P., The Duoplex Method in Nonlinear Programming, J. SI AM Control, 4, 130 A966). McGuire S. W., Hocking R. R., Hartley H. O., Spherical Programming: A Convex Programming Algorithm, Techn. Rep. № 5, Inst. of Statistics , Texas A and M Univ., College Station, Texas, Oct. 1968. Miele A., Huang H. Y., Heideman J. C, Sequential Gradient-restoration Algorithm lor Minimization of Constrained Functions — Ordinary and Conjugate Gra- Gradient Methods, J. Optimization Theory Appl., 4, 213 A969). Mills D. H., Extending Newton's Method to Systems of Inequalities, Proc. 6th In- Intern. Symp. on Math. Programming, Princeton, N. J., Aug. 1967. Mugele R. A., A Program for Optimal Control of Nonlinear Processes, IBM Sy- Systems J., 1, 2 A962). Pinskef I. S., The Alternance Method (for Solution of Problems in Nonlinear Pro- Programming), Automatic Remote Control, 25, 280 A964). Shanno D. F., An Accelerated Gradient Projection Method for Linearly Constrained Nonlinear Estimation, SI AM f. Appl. Math., 18, 322 A970).
Глава 7 ПРОЦЕДУРЫ МИНИМИЗАЦИИ ПРИ НАЛИЧИИ ОГРАНИЧЕНИЙ! МЕТОДЫ ШТРАФНЫХ ФУНКЦИЙ В публикациях по нелинейному программированию методы штрафных функций представлены в различных вариантах, которые, однако, имеют одну общую черту: во всех этих методах осуществля- осуществляется преобразование задачи нелинейного программирования при на- наличии ограничений либо в одну (эквивалентную исходной) задачу без ограничений, либо в эквивалентную последовательность задач без ограничений. Пусть, например, мы хотим найти минимум функ- функции /(х) = (х1_3J + (х2-2J при ограничении h(x) = xl + xt — 4 = 0. Прибавим h2 (x) к целевой функции / (х), в результате чего получим новую целевую функцию Р (х) = (Xl - ЗJ + (хг - 2J + (х, + х2- 4J, значения которой будем считать свободными от каких-либо ограни- ограничений [h2 (x) здесь выступает в роли «штрафа»!. В процессе миними- минимизации Р (х) «штрафная добавка» к / (х) способствует тому, чтобы век- вектор хв некоторой степени удовлетворял исходному ограничивающему условию (h (х)=0). Совершенно очевидно, что, пока условие /i(x) = О удовлетворяется (в пределах установленного допуска), значение штрафного члена пренебрежимо мало, и Р (х*) -> Дх*) при х ->- х*. Преимущество, которое мы получаем за счет перехода от задачи ми- минимизации при наличии ограничений к задаче минимизации в от- отсутствие ограничений, состоит в том, что в последнем случае мини- минимизация может осуществляться с помощью гораздо, более простых (по сравнению с первым случаем) алгоритмов. При использовании методов штрафных функций получается максимальный оптимизи- оптимизирующий эффект за счет постоянного компромисса между необхо- необходимостью удовлетворения ограничений и процессом минимизации / (х), который достигается путем присвоения надлежащих весов це- целевой функции и функциям, задающим ограничения. На фиг. 7.0.1 графически представлена преобразованная целевая функция, по- полученная путем добавления к / (х) штрафной функции (с весовым коэффициентом, равным единице).
334 Глава 7 6 5 \ > «5 2 1 i 7 0 а ~ \ _^ ~(№? (Ъ-2J % У /\ 1 ^ S 6 х, \ X, (ecf+x2-4)a Фиг. 7.0.1. о =. графическое представление исходной задачи; б — уровни штрафной функции. Методы штрафных функций можно разделить на два класса: 1) параметрические методы и 2) непараметрические методы. Пара- Параметрические методы характеризуются наличием одного или несколь- нескольких надлежащим образом подобранных параметров, входящих в структуру штрафной функции (которая строится с помощью функ- функций-ограничений) в качестве весовых коэффициентов, К числу ти-
Методы штрафных функций 335 пичных параметрических методов относится метод последователь- последовательной безусловной минимизации (ЛЩБМ), предложенный Фиакко и Мак-Кормиком [1 ], а также метод Зангвилла [2]. С другой стороны, в непараметрических методах, таких, как «метод центров» Гуарда [3] и предложенный Фиакко и Мак-Кормиком непараметрический МПБМ [4], целевая функция рассматривается как функция, зада- задающая дополнительное искусственное ограничение, постепенно «уп- «уплотняемое» по мере получения информации в ходе решения задачи. Параметрические методы распадаются на три категории: 1) методы внутренней точки; 2) методы внешней точки и 3) комби- комбинированные методы. При использовании методов внутренней точки уровень целевой функции удерживается в отдалении от границы допустимой области (т. е. точка х(А) постоянно находится внутри до- допустимой области) с помощью штрафной функции. Методы внешней точки (такие, как методы Зангвилла, Петрижковского [5]) и метод Фиакко и Мак-Кормика [6], наоборот, генерируют последователь- последовательность точек, которые выходят за пределы допустимой области, но дают в пределе допустимое решение. Штрафная функция не позво- позволяет вектору х слишком удаляться от границы допустимой области. В комбинированных методах (использование которых особенно необходимо в случае, когда ограничения имеют вид равенств) в ходе минимизации одни из ограничивающих условий удовлетворяют- удовлетворяются, а другие не удовлетворяются; однако все условия в пределах заданного допуска оказываются удовлетворенными при достижении исходного решения. МПБМ является комбинированным методом. Для полноты классификационной картины отметим, что в работе [6] перечислены и кратко описаны непараметрические методы внеш- внешней точки. Хороший исторический обзор большинства методов штрафных функций можно найти в монографии Фиакко и Мак-Кор- Мак-Кормика [6]. Итак, в основу методов штрафных функций в области нелинейно- нелинейного программирования положена идея преобразования общей не- нелинейной задачи B.2.1) — B.2.3) в последовательность задач без ограничений путем добавления к целевой функции одной или не- нескольких функций, задающих ограничения, с тем, чтобы ограни- ограничения, как таковые, в задаче оптимизации не фигурировали. Фор- Формально преобразование задачи, представленной соотношениями B.2.1) — B.2.3), в задачу минимизации без ограничений осуще- осуществляется путем перехода от B.2.1) — B.2.3) к задаче минимизации Будем называть Р (х№), р№)) обобщенной присоединенной функцией " или же просто штрафной функцией. В формуле G.0.1) pf' > 0 ' Иногда Р (я* ', р' ') называют расширенной функцией.— Прим. перее.
336 Глава 7 представляют собой весовые коэффициенты, Н (ht (x(fe>)) и G (g{ (x№))) яв- являются функционалами соответственно ht (х№)) и g( (х№)) [эти функцио- функционалы выбираются с учетом ряда конкретных требований (см. ниже)], a k = О, 1, ... есть число завершенных этапов вычислительного опти- оптимизационного процесса. Типичными требованиями, из которых исходят при выборе функ- функционала G(gt(xk)), являются следующие: 1. G (gt (х)) ->- + °° при g( (x) -> 0+, для чего необходимо, чтобы точка, определяемая вектором х, всегда была внутренней, т. е. чтобы {Hi l } 2. G2 (g[ (x)) -> 0 при gj(x)->0 . При таком выборе функционала G оперируют только с внешними точками: {x|g( (х)<;0}. 3. G3fe(x))>0 при gt(x)<0 и G4fe(x)) = O при gt(x)>0. При таком выборе функционала G не заботятся о том, чтобы ограни- ограничивающие условия удовлетворялись на промежуточных этапах вы- вычислительного процесса, хотя, естественно, требуют, чтобы эти ус- условия удовлетворялись в точке, определяющей искомое решение. В случае когда ограничения имеют вид равенств, как правило, требуют, чтобы Н (ht (х)) -> 0 при \ (х ) -> 0. При этом обычно полагают Н (Нс (х)) = /г? (х). При любом (из указанных выше) выборе функционалов H(h( (x)) и G(gt (x)) требуют, чтобы 2 t=m+l x№)))=0, G.0.2) lim ft-*-Co Другими словами, влияние входящих в Р (x(fe), p№>) функций-ог- функций-ограничений на значение данной присоединенной функции постепенно по мере развития процесса оптимизационного поиска ослабевает, а в пределе полностью исчезает, так что последовательность проме- промежуточных значений Р (x(ft), p(ft)) сходится к тому же значению, что и соответствующая последовательность значений / (x(fe)), и, следо- следовательно, экстремум Р (х) совпадает с экстремумом f (x). В данной главе будет проведено краткое обсуждение некоторых вариантов методики штрафных функций, а затем дано несколько более детальное описание метода последовательной безусловной минимизации.
Методы штрафных функций 337 7.1. МЕТОДЫ ШТРАФНЫХ ФУНКЦИЙ СПЕЦИАЛЬНОЙ СТРУКТУРЫ 7.1.1. ИСПОЛЬЗОВАНИЕ МНОЖИТЕЛЕЙ ЛАГРАНЖА Методы, основанные на использовании множителей Лагранжа, относятся к категории параметрических методов штрафных функ- функций, поскольку для них характерно то, что функции-ограничения вводятся в структуру модифицированной целевой функции сов- совместно с некоторым переменным параметром. Чтобы обобщить ме- метод множителей Лагранжа, ограничения в виде неравенств следует преобразовать в ограничения, имеющие вид равенств, путем введения надлежащих ослабляющих переменных (на каждое ограничение- неравенство по одной ослабляющей переменной). Задача нелиней- нелинейного программирования в общей постановке [см. соотношения B.2.1) — B.2.3I принимает при этом следующий вид: минимизировать f (х), х ? Еп, при ограничениях А,(х) = 0, 1 = 1, ... , m, l gt(x) — v* = 0, г = т+ 1, ... , р. Если вычесть v] из gt (х) (г = т + 1 р), то можно гаранти- гарантировать, что ограничивающее условие, имеющее в исходной постанов- постановке задачи вид неравенства, действительно выполняется. Тогда мож- можно определить обычным образом функцию Лагранжа Р (х, <в) = / (х) + 2 «А (х) + 2 <°> & (х) - v\\, G.1.2) t=l i=m+l где <dt {i — 1, ..., p) — неотрицательные и не зависящие от х весовые коэффициенты, которые можно отождествить с множителями Лагранжа. Для того чтобы х* было решением общей задачи нели- нелинейного программирования B.2.1) — B.2.3), необходимо и доста- достаточно [81, чтобы: 1) функция / (х*) была выпуклой, 2) в окрестности х* ограничения задачи были выпуклы и 3) в точке х* удовлетворя- удовлетворялась следующая система уравнений [определяющая стационарное решение G.1.2)]: =0 при / = !,...,«, -^р- = 0 при i = l, ..., p, G.1.3) дР (x*) 1. = 2co(u? = 0 при i = m + 1, ... , p, Wj>0, f = 1, ... , p.
338 Глава 7 Короче говоря, условный минимум / (х) имеет место в стационар- стационарной точке для Р (х, со, v) и, в частности, в седловои точке (х, а>, v)- пространства, так что задача с ограничениями превращается в за- задачу определения седловои точки в отсутствие ограничений. Пример 7.1.1. Использование множителей Лагранжа Рассмотрим в качестве примера следующую задачу: минимизировать у = хгх2, х ? Е", при ограничении gr (х): 25 — х\ — х\ > 0. (а) Подлежащая минимизации присоединенная функция имеет вид (б) P (x, со) = xxx2 — со,- B5 — x\ — x\ — v\). Необходимые условия существования экстремума: -^- = х2 + 2соЛ = О, дР Л дх.г ~ %х "•" COlA'2 ~~ ' дР дР dv1 Совместные решения уравнений (в) при ^ = 0 и ых Ф 0 приведены в табл. П.7.1.1. Таблица П.7.1.1 Решение задачи (а) с помощью метода множителей Лагранжа = 25-4-^ = 2@^ = 0. ^ = (в) со 0 0,5 0 | +3,54 1 -3,54 |+ 3,54 1 -3,54 0 { -3,54 1 +3,54 | +3,54 1 -3,54 Точка D А В С 5 0 0 0 0 /(х) 0 — 12,5 —12,5 + 12,5 + 12,5 Примечание Седловая точка Минимум Минимум Максимум Максимум Векторы х* являются стационарными решениями задачи (а). Заме- Заметим, что решения при щ > 0 являются минимумами, при ю,- < 0 — максимумами, а при ^ = 0 — седловои точкой задачи (а). Функ- Функции, фигурирующие в задаче (а), представлены графически на
Методы штрафных функций 339 Фиг. П.7.1.1. фиг. П.7.1.1. Уровни целевой функции (гиперболы) изображены пунктирными кривыми, а допустимая область заштрихована. Эта область ограничена окружностью^ (х) = 0. Точки А и D соответ- соответствуют двум (указанным в табл. П.7.1.1) минимумам, точки В и С — двум (также указанным в табл. П.7.1.1) максимумам, а Е является седловой точкой .целевой функции / (х). Метод множителей Лагранжа интенсивно изучался многими спе- специалистами (см. список литературы, приведенный в конце главы). Этот метод может оказаться непригодным в случае невыпуклых за- задач, для решения которых успешно применяются другие методы штрафных функций. Метод множителей Лагранжа мало эффективен в случае задач нелинейного программирования большой размернос- размерности, поскольку совместное решение системы уравнений, аналогич- аналогичной (в) в примере П.7.1.1, требует применения численных методов, и соответствующие вычислительные процедуры реализовать не легче, чем алгоритмы оптимизации. Более того, многократно повторяемые процедуры решения упомянутых выше уравнений должны быть
340 Глава 7 выделены из общей программы. Для данного метода и соответствую- соответствующих вычислительных процедур было составлено несколько машин- машинных программ, но ни одна из них не оказалась достаточно эффектив- эффективной при решении задачи нелинейного программирования общего вида. 7.1.2. МЕТОД РОЗЕНБРОКА ДЛЯ РЕШЕНИЯ ЗАДАЧ ОПТИМИЗАЦИИ ПРИ НАЛИЧИИ ОГРАНИЧЕНИЙ Задача минимизации / (х), х ? Еп, при ограничениях ft(x)>0, i=l, ...,р, G.1.4) была преобразована Розенброком таким образом, что оказался применимым для ее решения метод, описание которого дано в разд. 4.3. Решение задачи G.1.4) эквивалентно определению мини- минимума не связанной никакими ограничениями присоединенной функ- функции Р (x№), U) = f (x(ft)) П % (х№>) gt (x!\ G.1.5) где % - 0 при ft (x<k)) < 0 и % = 1 при ft (х№)) > 0 (i = 1, ... , р). Таким образом, присоединенная функция, определяемая соотно- соотношением G.1.5), вне допустимой области обращается в нуль. Пред- Предполагается, что в каждой точке допустимой области целевая функция принимает отрицательное значение, т. е. {f (х) < 0| х ? R). Если бы в некоторых или даже во всех точках х ? R значения / (х) ока- оказались положительными, мы могли бы вычесть из f (x) большое по- постоянное число К, так что имело бы место условие f (х) = [/ (х) — — К] < 0. Ясно, что характер задачи (минимизировать / (х)) при этом остался бы прежним. При решении сформулированной выше задачи численный оптимизационный поиск может начинаться не только с внутренней точки х@), но также и с точки, слегка выходя- выходящей за пределы допустимой области. Для минимизации Р (х) ис- используется разработанная Розенброком процедура безусловной минимизации в том виде, в каком она представлена в разд. 4.3. После- Последовательность точек х@), хA), ..., x<ft), получаемая при этом, явля- является допустимой. Чтобы увидеть взаимосвязь между функцией G.1.5) и присоеди- присоединенной функцией типа G.0.1), требуется лишь прологарифмировать правую и левую части G.1.5), изменив предварительно их знаки и перейдя от минимизации к максимизации. В результате придем к задаче максимизации 1п [- Р (х<*>) ] = In [- / (х№))] 4- jj (In %) + 2 In ft (x№)). G.1.6) (=1 i=!
Методы штрафных функций 341 [Умножение G.1.5) на —1 необходимо по той причине, что Р(х№)) и /(х№)) здесь являются отрицательными величинами.] Совершенно очевидно, что минимизация / (х) <с 0 эквивалентна максимизации In [— / (х)] > 0. Поскольку 2 In Ч1С на любой стадии вычислитель- ного процесса является константой (хотя значение этой константы, возможно, и не полностью конкретизировано), можно положить р? = = 1 и считать, что In gt (x(k)) = G (gt (x№))) (i = 1, ..., p), в резуль- результате чего соответствие между G.1.5) и G.0.1) оказывается установ- установленным. Вычислительная практика с применением машинных программ, построенных на основе метода Розенброка, показывает, что этот метод не позволяет оперировать ограничениями в виде равенств и не представляется удовлетворительным для решения задач, содер- содержащих нелинейные ограничения в виде неравенств (см. гл. 9). 7.1.3. МЕТОД ВНУТРЕННЕЙ ТОЧКИ (ОБЪЕДИНЕНИЕ МЕТОДА БАРЬЕРНЫХ ПОВЕРХНОСТЕЙ И МЕТОДА ДЭВИДОНА) Бокс, Дэвис и Свен [9] объединили метод Дэвидона с предложен- предложенным Кэрролом [10] методом барьерных поверхностей (МБП), по- построив таким образом своеобразный параметрический метод внутрен- внутренней точки, позволяющий эффективно решать задачи нелинейного программирования при наличии ограничений. Метод Кэррола осно- основывался на использовании штрафной функции вида G.1.7) где г — параметр, значения которого убывают с каждым циклом, а a>i (i = 1, ..., р) — положительные весовые коэффициенты (ве- (веса). При приближении к границе изнутри, т. е. как только gt (x) ->¦ -у 0, «штраф» становится большим. Соотношение G.1.7) преобра- преобразует задачу нелинейного программирования при наличии ограниче- ограничений в задачу без ограничений с гораздо более сложной (по сравнению с исходной задачей) структурой, но зато характеризующуюся на- наличием весьма сильных барьеров вдоль границы допустимой области. Построив штрафную функцию и определив внутреннюю точку, приступаем к реализации процедуры минимизации Р (х, г) при за- заданном начальном значении г@). Тогда конечная для первого этапа вычислительной процедуры точка х становится исходной (старто- (стартовой) точкой для минимизации функции Р при уменьшенном значении г и т. д. Завершающий этап минимизации реализуется при очень малом значении г, так что результирующая точка х с точностью до
342 Глава 7 установленного допуска может (если требуется) оказаться либо на одной из ограничивающих поверхностей, либо сразу на нескольких поверхностях, заданных ограничениями задачи. На каждом этапе безусловной минимизации Бокс, Дэвис и Свен использовали метод Дэвидона — Флетчера — Пауэлла. Доказательство корректности данного подхода приведено в подразд. 7.2.2. На эффективность МБП существенно влияют и выбор началь- начального значения г (г@)), и метод сокращения значений г в ходе мини- минимизации, и выбор весовых коэффициентов. Если в Р (х, г) значение г0) выбирается слишком малым, на начальной стадии процесса ми- минимизации мы придем к минимуму функции /(х), который вряд ли окажется вблизи условного минимума в точке х*. Следовательно, движение вдоль траектории, которая должна привести к х*, будет связано со значительными временными затратами. С другой стороны, если значение г<°> слишком велико, то на первых этапах вычисли- вычислительного процесса текущая точка неизбежно окажется слишком да- далеко за пределами допустимых границ и поиск из-за необходимости возврата в пределы допустимой области также окажется весьма за- затяжным. Бокс, Дэвис и Свен [9] считают, что на начальной стадии оптимизационного процесса угол между yf (х@)) и \Р (х@), г@)) должен быть острым, а значение г должно увеличиваться или уменьшаться путем умножения или деления начального значения этого параметра на некоторое число до тех пор, пока угол между \f (х^) и \Р (х№), г<*>) не станет тупым. Кроме того, должно выполняться условие И0' > Ю~4. (На практике упомянутые выше авторы чаще всего просто полагают г@) = 50.) Они рекомендуют также при переходе от одного этапа вычислительного процесса к последующему умножать текущее значение г на 0,1 (или на число, лежащее в интервале от 0,02 до 0,1), что обеспечивает постепенное уменьшение этого параметра. Фиакко и Мак-Кормик A963 г.) предъявляют к выбору г несколько иные требования; подробное об- обсуждение их рекомендаций содержится в подразд. 7.2.1. Относительно со, рекомендации Бокса, Дэвиса и Свена сводятся к следующему: значения со4 должны выбираться с таким расчетом, чтобы все слагаемые в G.1.7) после надлежащего масштабирования оказывались по возможности величинами одного порядка. Данными авторами разработан эмпирический метод «подгонки» значений со/? основанный на том, что со,- для часто нарушаемых ограничений слишком малы и, следовательно, в этих случаях значения со,- следует увеличивать. -^в Дэвис [11 ] считает, что в случае, когда ограничЩЦРиеравенства приводят к Р-функциям вида GЛ-8а)
Методы штрафных функций 343 Р3 = f (х) + k 2 Ч log [- ft (х)], Л > 0, G.1.8в) ©; следует полагать равными нулю до тех пор, пока не окажется нарушенным хотя бы одно из ограничений. Для активных ограни- ограничений со,- полагаются равными единице. В качестве значения k Дэ- вис рекомендует брать значение множителя Лагранжа, ассоции- ассоциированного с первым из нарушенных ограничений. Так, например, в приведенном выше выражении для Р± (применительно к активным ограничениям g{ (х) >> 0) где значения градиентов /(х) и g(x) вычислены в последней из текущих допустимых точек. Вместо того чтобы вычислять kt для каж- каждого дополнительного ограничения и пересматривать значения k{ на каждом этапе вычислительного процесса, представляется целесооб- целесообразным (эта идея также принадлежит Дэвису) величину k, опре- определенную с помощью G.1.9), при переходе от одного этапа ите- итерационного процесса к следующему уменьшать путем умножения на число, лежащее в интервале от 10~2 до 10~~4. Если задача содержит ограничения в виде равенства, то (по Дэвису) к Р-функции (вида Ри Р2 или Ps) добавляется выражение, соответствующее второму слагаемому в правой части G.0.1). Фиакко и Мак-Кормик, используя МПБМ, полагали все со( рав- равными единице, хотя и обсуждали в своей книге (см. список литера- литературы в конце данной главы) другие варианты выбора весовых коэф- коэффициентов. Некоторые результаты, полученные при решении проб- пробных задач путем комбинированного применения МБП и метода Дэвидона, приведены в табл. 9.3.4. 7.1.4. МЕТОД ВЕИСМАНА Вейсман [12] разработал структуру комплексного метода (из- (известного под названием «МИНИМАЛ»), позволяющего реализовать в рамках одной машинной программы сразу три алгоритма, а именно алгоритм прямого поиска, предложенный Хуком и Дживсом, ал- алгоритм случайного поиска и алгоритм, основанный на использова- использовании штрафной функции. Штрафная функция строится следующим об- образом; Р(х, r) = /(x) + 2J W(x), G.1.10)
344 Глава 7 где 6\ = A — U() равняется нулю, если ограничивающие условия удовлетворяются, и единице, если ограничения оказываются на- нарушенными. При этом ограничения в виде равенств преобразуются в ограничения-неравенства, т. е. записываются в виде где Е; — величина допуска, ассоциированного с соответствующим исходным ограничением в виде равенства. Минимизация Р осуществляется методом Хука и Дживса для не- некоторой поэтапно возрастающей последовательности значений гг Поиск заканчивается либо когда оказываются удовлетворенными все ограничивающие условия, либо когда абсолютная разность меж- между значениями gt (x) в начале и конце поиска оказывается меньше некоторого заранее установленного доверительного числа (например, 10~4). Вейсман выбирал начальные значения rt так, чтобы ад _ 0,02 ' Р*й(х@))/(х<°>)' где р* — число ограничений. В конце каждого этапа значения rf' для каждого нарушенного (на k-u этапе) ограничения умножаются на 8; полученное в результате новое значение г используется на (k + 1)-м этапе. В конце каждого этапа оптимизационного поиска методом Хука и Дживса реализуется, кроме того, случайный (рандомизирован- (рандомизированный) поиск. Пространство Еп делится на 10 гиперсфер с центром в точке х, оказавшейся наиболее предпочтительной в результате поис- поиска методом Хука и Дживса. В п случайно выбранных точках внутри каждой гиперсферы (число п задается заранее) находятся значения целевой функции, и, если попадается точка, дающая минимизирую- минимизирующую поправку менее 10% предыдущего значения f (x) (т. е. значе- значения / (х), найденного в предыдущей точке х), поиск методом Хука и Дживса повторяется. На следующем (k + 1)-м этапе стартовой (исходной) является точка, в которой значение / (х) оказывается наименьшим среди всех значений, полученных на предыдущих k этапах оптимизационного поиска по любому из упомянутых выше алгоритмов. 7.1.5. ДРУГИЕ МЕТОДЫ ШТРАФНЫХ ФУНКЦИИ 1. Метод компенсирующих констант (МКК)''. Фиакко и Мак-Кор- микв работе [13] описали метод, в структуре которого с неравенства- неравенствами можно обращаться так же, как и с равенствами, за счет исполь- использования положительных ослабляющих констант (примерно в том же D Этот метод представляет собой одну из модификаций метода внешней точки.
Методы штрафных функций 345 смысле, в каком это делалось в связи с рассмотрением G.1.1)). Этот метод предполагает использование штрафной функции Р (х, Л с) = I (х) + (г№))-' i \gi (Л - сЛ\ G.1.11) i=m+l где ci > 0. Штрафная функция такого вида достигает экстремума в результате последовательных перемещений в направлении иско- искомой точки со стороны недопустимой области и имеет то преимущест- преимущество, что поиск допустимой точки в начале вычислительного про- процесса можно не проводить. Относительно эффективности исполь- использования такого рода штрафной функции вряд ли можно сделать достаточно аргументированное заключение, так как «эксперимен- «экспериментальных» данных по этому вопросу явно недостаточно. 2. Метод внутренней точки. Фиакко и Мак-Кормик [13] пред- предложили другой вид штрафной функции в рамках алгоритма внут- внутренней точки: Р(Л x(fe-I») = [/(x№-1»)-f(x№))]-1 + 2^(x(V. G.1.12) i Ограничения в виде равенств могут быть включены в схему алго- алгоритма по аналогии с G.0.1). Функция G.1.12), однако, исследована еще недостаточно. 3. Метод центров (разновидность метода внутренней точки). Гуард [14] описал алгоритм оптимизации, основанный на исполь- использовании следующей модификации целевой функции: №) *» №»№Л. G-1.13) Несмотря на то что функция G.1.13) не является выпуклой, Гуарду удалось доказать, что получаемый на k-u этапе локальный оптимум является также глобальным оптимумом целевой функции. Следует, однако, заметить, что метод центров на практике недостаточно хо- хорошо зарекомендовал себя, поэтому логика построения вычислитель- вычислительной процедуры и подробное описание метода центров на языке ма- машинной программы здесь не приводятся (читатель может обратить- ся по этому вопросу к оригинальному источнику), 7.2. МЕТОД ПОСЛЕДОВАТЕЛЬНОЙ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ (КОМБИНИРОВАННЫЙ МЕТОД ШТРАФНЫХ ФУНКЦИЙ) Алгоритм нелинейного программирования, называемый сокра- сокращенно МПБМ1' (метод последовательной безусловной минимизации), является обобщением метода барьерных поверхностей, который *> Этот алгоритм разработан в одном из научно-исследовательских учреждений США (Research Analysis Corp., McLean, Va.).
346 Глава 7 был предложен Кэрролом [15]. Фиакко и Мак-Кормик [16] раз- развили этот метод, доказали его эффективность и распространили его алгоритмическую структуру на случай, когда среди ограниче- ограничений задачи имеют место ограничения в виде равенств. Соответ- Соответствующие машинные программы имеются в Корпорации по научным исследованиям и разработкам (США), а также в лабораториях бал- баллистических исследований (США) [17]. Алгоритм МПБМ разработан для решения задачи нелинейного программирования вида B.2.1) — B.2.3), в которой / (х) и gt (x) (i = т + 1 р) могут быть не- нелинейными функциями независимых переменных, a ht (x) (i — = 1, ..., т) должны быть линейными функциями независимых переменных. При таких условиях гарантируется сходимость после- последовательности промежуточных решений к оптимальному решению задачи нелинейного программирования. В основном МПБМ сводится к следующему: ищется решение неко- некоторой последовательности задач без ограничений, причем в пределе находится минимум исходноизадачи нелинейного программирования. В переложенном на язык машинных программ варианте МПБМ, относящемся к 1967 г., задача нелинейного программирования преоб- преобразуется в последовательность задач без ограничений путем построе- построения Р-функции следующего вида: Р(х№\ Л = /(х№') + (Л-1/2|^(хШ) + ^ i —гщг, G-2.1) где значения весовых коэффициентов г положительны и образуют монотонно убывающую последовательность {г\ г@) > гт > ... > > 0}. На фиг. 7.2.1 графически представлена Р-функция, являю- являющаяся частным случаем G.2.1), а именно Р(х) = Dх1-^-12) + г( *—! 5 + ~i- + - для трех различных значений г; в этом случае целевую функцию исходной задачи нелинейного программирования и функции, за- задающие ограничения, легко выделить путем почленного сопостав- сопоставления данной Р-функции с G.2.1). Пунктирной кривой изображена траектория поиска минимума Р (х, г). Заметим, что вначале Фиакко и Мак-Кормик предпочитали задавать G-функционал ограничений-неравенств в виде своего рода «барьера», который в задачах минимизации добавлялся к целевой функции, а в задачах максимизации вычитался из / (х). Этот функ- функционал имел следующий вид:
a 2,0 4,0 6,0 8,0 Фиг. 7.2.1. Уровни Р-функции.
348 Глава 7 Как только хотя бы одна из функций g, (х<*>) ->¦ 0 внутри допустимой области, G (g (х№>))-> <х>; отсюда и происходит понятие «барьер». При уменьшении г<*> влияние барьера уменьшается и точку х удает- удается приблизить к границе, ассоциированной с ограничениями-нера- ограничениями-неравенствами. Как уже отмечалось выше, можно выбрать G-функционал иным способом, например в виде G(((ft))) 2i{0 (ik))}2 2 ИЛИ rt j to 0) = sln Переложенный на язык машинных программ в 1970 г. вариант МПБМ основывался на использовании штрафной функции 4ri ? х»>). G.2.1а) r i=l i=m+l Как в этом варианте МПБМ, так и в варианте, описание которого приведено выше, функционал Н (h (x№>)) представлял собой просто сумму квадратов ht (х), так что при /¦<*> -> 0 ограничивающие ус- условия в виде равенств удовлетворялись с непрерывно возрастающей точностью. Хотя каждое из ограничений в виде равенства можно в принципе разбить на два неравенства и затем иметь дело с неравен- неравенствами, на практике такой прием оказывался весьма неудовлетвори- неудовлетворительным — он в значительной степени замедляет оптимизационный поиск и порождает тенденцию к преждевременному прекращению вычислительного процесса. Процедура минимизации функций G.2.1) и G.2.1а) начинается с внутренней (или граничной) точки, т. е. сточки х@), в которой все ограничивающие условия в виде неравенств удовлетворены. После вычисления г@> точка хA> определяется путем минимизации Р (х, г<0)). Затем вычисляется гA) и путем минимизации Р (х, г'1') нахо- находится точка х<2) и т. д. При выполнении описанной выше процедуры возникает ряд по- помех. Во-первых, ассоциированная с Р-функцией матрица Гессе по мере приближения к экстремуму начинает вести себя все хуже; поэтому направления оптимизационного поиска могут в этих ус- условиях стать ошибочными. Во-вторых, скорость сходимости зависит от начального выбора г<0) и от способа редуцирования данного па- параметра. Наконец, данные относительно «топологии» f (х) и Р (х, г) в большинстве случаев при переходе от одного этапа вычислений к другому оказываются обесцененными (даже в' тех случаях, когда алгоритм предполагает выполнение экстраполяции того или иного вида).
Методы штрафных функций 349 7.2.1. МЕТОДИКА ОПРЕДЕЛЕНИЯ ПАРАМЕТРА Г В первых вариантах МПБМ в качестве весового коэффициента г№))~~1/2 перед 2 h] (x№)) использовался множитель (г№))~~1/2, поскольку, как 1=1 показал Фиакко A966 г.) путем сравнения Р-функции и f(x) вбли- Фиг. 7.2.2. Траектория минимума функции Р (х, r{k)) = Dх, + *2) + л№) (— + — зи экстремума при очень малых г, вектор х в окрестности искомого минимума Р(х, г) можно представить в виде некоторого полинома по г1' (фиг. 7.2.2). В последующих вариантах МПБМ для суммы 2 Л?(х№)) использовался весовой коэффициент (г**')". Весовой коэф- коэффициент для той компоненты Р- функции, которая обусловлена на- наличием ограничений-неравенств, в обоих вариантах выбирался рав- равным г{Щ. Фиакко и Мак-Кормик предложили три способа выбора началь- начального значения г<°>: а) г<°> = 1. G.2.2) б) Выбирается такое значение г@), которое минимизирует норму градиента Р-функции [т. е. функции Р (х@), г<0)) относительно г], что дает ^"""""'Х G.2.3)
350 Глава 7 где х@) — внутренняя допустимая точка, R(xi0>) — У\ 1/ёГ» (х)' гт+1 (х@)) — вектор-столбец, составленный из вычисленных в точке х@) первых частных производных R(x) по х. Мы видим, что при построении R (х<0>) учитываются только ограничения, которые имеют вид неравенств. в) Значение г@) выбирается так, чтобы минимизировать превы- превышение функции Р (х, г@)) относительно его минимального зна- значения (эту величину называют метрически взвешенным градиентом Р-функции); при этом г<0) задается следующим соотношением'': ( vR(xm)[v*«(x<w)r1v«(xm)} ' * ' где vai? (х@)) — матрица Гессе для R (х) = j^ 1/g, (x), вычисленная в точке х@). Соотношение G.2.4) может быть применено лишь в том случае, когда \R (х@)) Ф 0, так что /-@)=?0. При слишком больших значениях /0) минимизационный процесс начинается во внутренних точ- точках, лежащих слишком далеко от границы допустимой области, тогда как при слишком малых г*0' начальное решение оказывается чрезмерно близким к границе, задаваемой ограничениями задачи. В обоих случаях, для того чтобы оказаться в нужном месте допус- допустимой области, приходится тратить дополнительное машинное время. Из указанных выше трех способов задания г®> наиболее удобным с практической точки зрения оказывается первый (в большинстве машинных программ, составленных на основе МПБМ, полагают /-да = 1); именно этот вариант рассматривается в гл. 9. Однако, чтобы достичь при решении задачи наибольшей точности, пред- предпочтение следует отдать выражению G.2.4), хотя расход машинного времени из-за слишком больших начальных значений г@) будет при этом большим. Соотношение G.2.3) применяется в тех случаях, когда отсутствуют данные о вторых частных производных функции R по х. Если в результате вычислений по формуле G.2.3) или по формуле G.2.4) окажется, что г<0) < 0, оптимизационный поиск начинается в точке х(°> одним из методов, описанных в гл. 3. При этом И°> вычисляется в каждой новой точке х№), пока не будет по- получено положительное значение г<0)(вэтом случае оптимизационный поиск продолжается с помощью МПБМ) или пока не будет достигнут безусловный минимум целевой функции задачи B.2.1) — B.2.3). В последнем случае х* есть внутренняя точка, и поиск, таким обра- ') Этим соотношением г'0' задается точно, если Р-функция является квад- квадратичной.
Методы штрафных функций 351 зом, заканчивается. Фиакко и Мак-Кормиком экспериментально было показано, что после определения г<°> одним из указанных выше способов эффективность алгоритма не изменится в значительной степени, если последовательность г*1', г12*, ..., /-<*> индуцировать простым соотношением /;<*» = г**-1»/с, где с > 1 есть константа (обычно полагают с = 4). Такой простой способ определения каж- каждого последующего значения r(k) в ходе итерационного процесса существенно упрощает процедуру эктраполяции, описание которой дано в подразд. 7.2.3. 7.2.2. УСЛОВИЯ СХОДИМОСТИ МПБМ Можно доказать, что при определенных условиях последова- последовательность безусловных минимумов Р (х, г<*>) будет стремиться к решению задачи нелинейного программирования B.2.1) — B.2.3) по мере приближения к нулю значений г№). Существенным является ус- условие выпуклости Р-функции. Условия сходимости (ср. их с условия- условиями, перечисленными на стр. 242—243) выглядят следующим образом: Условие 1. Объединение множества, содержащего все точки х, удовлетворяющие ограничивающим условиям в виде равенств ht (х) = 0 (i — 1, ..., m), и множества S*, содержащего все точки х, удовлетворяющие ограничивающим условиям g,- (x) >0 (i = = m + 1, ..., р), должно быть непустым. Другими словами, задача должна иметь допустимую область. Условие 2. Функции / (х), hl (x), ..., hm (x), gm+l (x), ...,gp(x) должны быть дважды непрерывно дифференцируемыми, если возникает необходимость применять метод, основанный на исполь- использовании вторых производных (см. подразд. 7.2.3, шаг 3). Условие 3. Для любого конечного q и любого /-<*> > 0 множество точек х, удовлетворяющих неравенству и принадлежащих множеству S*, должно быть ограниченным. Условие 4. Целевая функция / (х) должна быть выпуклой, а функции ^ (х) ({ = 1, ..., т) должны быть линейными (точ- (точнее, сумма 2^? (х) должна быть выпуклой). Условие5. Функции^ (х) (i = т + 1, ..., р) должны быть во- вогнутыми. Условие 6. Матрица Гессе для Р -функции относительно х (т. е. матрица, составленная из вторых частных производных Р-функции по независимым переменным) не должна обращаться в нуль ни для одной из точек, принадлежащих множеству S*. Выполнение условий 1—6 полностью гарантирует сходимость к решению задачи нелинейного программирования, представленной соотношениями B.2.1) — B.2.3); однако сходимость может иметь место даже и тогда, когда эти условия полностью не выполняются.
352 Глава ? Опираясь на условия 1—6, Фиакко и Мак-Кормик доказали следующую теорему сходимости: Теорема 1 (сходимость для исходной задачи) Если задача нелинейного программирования удовлетворяет ус- условиям 1—6, то: а) каждая функция Р (х, гт) имеет минимум в некоторой точ- точке х (r{k)) множества S* и б) lim P (х (/*'), rm) = min/ (х) = / (х*), т. е. последовательность безусловных минимумов P(x(r(H)), r(k)) стремится к решению /(х*) исходной задачи нелинейного программирования при ?->оо. Кроме того, при выполнении условий 1—6 Р-функция есть вы- выпуклая функция в S*. С задачей нелинейного программирования B.2.1) — B.2.3) ассо- ассоциированы две двойственные задачи: одна из них относится к слу- случаю, когда функции ht (x) (t = 1, ..., т) нелинейны, а другая — к случаю, когда эти функции линейны. Если функции ht (х) нели- нелинейны, то нелинейную задачу B.2.1) — B.2.3) необходимо (путем записи каждого из равенств в виде двух неравенств) переформули- переформулировать следующим образом: Задача А: минимизировать / (х), х ? Еп, при ограничениях Л?(х)>0, 1= 1, ..., т, ,?25) g,(x)>0, i = т+ 1, ... , р. Двойственной по отношению к задаче А является задача Л': максимизировать при ограничениях Щ W, Е(х, Е (х, >о, >о, и, и. W) W) {¦ = i -. = /(х)- S = 0, = т + 1, ... = 1, ... , т, 11 т1 (х) + 2 )w,f G а .2 (х) .6) гдеух?(х, u, w) есть вектор, составляющими которого являются первые частные производные.Е (х, u, w) по независимым переменным. Следует иметь в виду следующее: когда функции ht (x) нелинейны, нет гарантии того, что решение задачи А' совпадает с / (х*), т. е. с решением задачи А. (Опыт говорит о том, что это весьма маловеро- маловероятно.)
Методы штрафных функций 353 Если функции ht (x) линейны, задача А может быть представ лена в эквивалентной форме В: Задача В: минимизировать / (х), х ? Еп, при ограничениях hi(x)>0, i=\, ... , m, — ft,(x)>0, i=l, ..., m, G.2.7) gi(x)>0, i = m + 1, .. . , p. Задача, двойственная по отношению к задаче В, формулируется следующим образом: Задача В': р максимизировать Е (х, u, w, w') = / (х) — 2 ui8t (x) + при ограничениях Vx? (x, u, w, w') = 0, щ > 0, t = m + 1 p, ,? 2 g) a); > 0, i = 1 /n, ш,- >0, i = 1, ..., m. Двойственная задача В' имеет решение в некоторой точке (х*, ц*, w*, w'*), где Е (х*, u*, w*, w'*) = /(х*), т. е. совпадает с решением задачи В. Фиакко и Мак-Кормик доказали следующую теорему сходимости применительно к условиям двойственной задачи: Теорема 2 (сходимость для двойственной задачи) При выполнении условий A—6) МПБМ генерирует точки {х (rm), a (rik)), w (r(k)), w' (rik))}, являющиеся допустимыми и обла- обладающие следующим свойством: WmE(x(rm), u (rik)), w(r(k\ w'(/fc))) = /(x*). ft-» со Таким образом, наряду с решением задачи А (или В), которую мы называем исходной, алгоритм, основанный на МПБМ, генери- генерирует также последовательность точек, приводящую к решению задачи А' (или В'), двойственной по отношению к А (или В). Поскольку / (х*) есть максимальное значение Е (х, u, w, w'), то, как только условия 1—6 оказываются выполненными, имеет место следующее неравен- неравенство: Е (х (rm), u (Л, w (Л, w' (Л) < / (х*) < Р (х (/*>)). G.2.9)
354 Глава 7 Неравенство G.2.9) можно использовать [если задача удовлетво- удовлетворяет условиям A—6) ] для определения момента, когда в процессе реализации вычислительного процесса на ЭВМ сходимость после- последовательности промежуточных решений к решению исходной задачи нелинейного программирования оказывается практически достиг- достигнутой. 7.2.3. ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА В общем случае вычислительный алгоритм реализует следующие шаги (фиг. 7.2.3)": Шаг 1. Пользователь выбирает точку х<°>, принадлежащую множеству S* (т. е. такую точку х<°), для которой gt (х<°>) >¦ О, i — т + 1, ..., р). Другими словами, начальная точка должна быть внутренней точкой (в соответствии с определением, приве- приведенным в гл. 2). Поскольку Р-функция может иметь несколько ми- минимумов, то, начиная поиск с точки, не являющейся внутренней, можно прийти к минимуму, не являющемуся допустимым. Если требуемая внутренняя точка неизвестна, ее можно найти повторным применением метода МПБМ. В варианте МПБМ, относящемся к 1967 г., фиксировалось первое нарушенное ограничение-неравен- ограничение-неравенство, причем функция, соотпетствующая этому ограничению, рассмат- рассматривалась как временная целевая функция и с помощью МПБМ ми- минимизировалось отрицательное значение этой функции при учете совокупности удовлетворенных ограничивающих условий в виде неравенств. Как только все эти ограничивающие условия оказы- оказываются удовлетворенными, упомянутое выше выделенное ограниче- ограничение переводится в разряд обычных ограничений и процедура пов- повторяется относительно другого нарушенного ограничения, т. е. фик- фиксируется новая временная целевая функция. В варианте МПБМ, относящемся к 1970 г., для определения внутренней точки осу- осуществлялась минимизация взятой с отрицательным знаком суммы всех gt (x), для которых соответствующие ограничения оказывались нарушенными. В обоих из указанных выше вариантах МПБМ ограничивающие условия в виде равенств удовлетворяются лишь на заключительном этапе решения исходной задачи. Следует отметить, что если оказываются нарушенными сразу несколько ограничений с высокой «степенью» нелинейности, то оп- определение допустимой начальной (стартовой) точки может потре- потребовать значительных временных затрат. Поэтому всякий раз, когда допустимую начальную точку удается «увидеть» без дополнительных вычислений, следует именно с нее и начинать итерационный процесс. '' Фиг 7.2.3 позволяет провести сравнение траектории последовательности минимумов Р (х, г), найденных с помощью МПБМ, с траекторией поиска, получен- полученной проективным методом.
Методы штрафных функций 355 Шаг 2. После определения стартовой точки в соответствии с ал- алгоритмом находится положение минимума Р-функции [определенной формулами G.2.1) или G.2.1а)] для текущего значения л<«. Вероят- Вероятно, большая часть машинного времени потребуется на отыскание с помощью МПБМ последовательности внутренних точек, миними- минимизирующих Р-функцию для каждого значения л№>, Направление Допустимая область X, Фиг. 7.2.3. Сравнение траектории оптимизационного поиска, полученной мето- методом штрафных функций, с траекторией минимизации, найденной проективным методом. <7 (х) ^ 0 — нелинейное ограничение с виде неравенства. Стрелками изображена траектория, полученная проективным методом; точками изображена траектория, получен- полученная методом штрафных функций. оптимизационного поиска находится с помощью описанного в разд. 3.3 метода Ньютона путем предварительного умножения гра- градиента функции Р (х, гЩ на матрицу, являющуюся обратной по отношению к матрице вторых частных производных Р (х, гЩ по независимым переменным, или (как альтернативный вариант) с помощью метода Бройдена (см. подразд. 3,4.1), аппроксимирующего [у2Р (х, или = - [у*Р (X (k\ №\ G.2.10) №) ). G.2.10а) Длина шага, как обычно, определяется путем минимизации моди- модифицированной Р-функции. Как только направление поиска оказы- оказывается установленным, в рамках МПБМ производится поиск ме- методом Фибоначчи с тем, чтобы определить положение минимума
355 Глава 7 Р (х, /-<*>) на расстоянии Дх<А> от х<*> в направлении поиска [тогда как в структуре метода НЛП предполагается сочетание поиска и экстраполяции (подгонки)] для того, чтобы перейти к минимизации методом линейной аппроксимации. Применение метода Ньютона сопряжено с определенной «опас- «опасностью», поскольку поведение матрицы, обратной к матрице Гессе для Р-функции, может оказаться весьма неудовлетворительным. Мюррэй [18 ] показал, что даже в случае задач с хорошо выбранными масштабами для переменных, матрица Гессе дляР (х, г<*>) ведет себя неудовлетворительно. Новая информация, полученная на том или ином этапе вычислительного процесса, может оказаться недостаточ- недостаточной для того, чтобы скомпенсировать увеличение погрешности в информации, полученной на предыдущем этапе. Флетчер и Мак-Канн [19] рассмотрели отношение наибольшего из собственных значений матрицы Гессе для Р-функции к наимень- наименьшему собственному значению этой матрицы в качестве некоторого критерия; ими было установлено, что применение метода Ньютона приводит к неудовлетворительному поведению матрицы Гессе, тогда как метод Дэвидона — Флетчера — Пауэлла приводит хотя и к приближенной, но удовлетворительно ведущей себя матрице, обрат- обратной по отношению к матрице Гессе для Р-функции. Флетчером и Мак-Канномпредложенаопределеннаястратегия ускорения процесса минимизации / (х) путем использования наряду с г собствен- собственных значений Р (х, г) для выявления на каждом этапе вычислитель- вычислительного процесса (когда значение г уменьшается) наиболее удовлетво- удовлетворительной структуры матриц, задающих направление оптимиза- оптимизационного поиска. Как показало решение пяти пробных (тестовых) задач, включая задачи 10, 11 и 18, приведенные в приложении А, экстраполяция позволяет сократить (по сравнению с методом Нью- Ньютона) количество вычислительных операций (определение направ- направления поиска + линейный поиск) на 15—50%. Из-за необходимости приведения (в рамках МПБМ) матрицы Гессе для Р-функции к регулярному виду (если эта матрица не яв- является положительно определенной) берется направление поиска, совпадающего с отрицательным градиентом, т. е. матрица, обратная к матрице Гессе для Р-функции, полагается равной единичной мат- матрице. Хотя Фиакко и Мак-Кормик утверждают, что практическое при- применение методов «первых производных» и метод Дэвидона при ми- минимизации Р-функции не было в такой же степени успешным, как использование метода Ньютона, Уортман [17] считает, что миними- минимизация методом Дэвидона — Флетчера — Пауэлла требует наимень- наименьших затрат времени. В табл. 7.2.1 приведены некоторые результаты, полученные Уортманом для задачи 18 из приложения А с помощью различных минимизационных подпрограмм. Метод Ньютона имел при этом структуру, описание которой дано в гл. 3, если не считать,
Методы штрафных функций 357 что, когда \2Р не был положительно определенным, у2Р заменя- заменялось на единичную матрицу I, т. е. направление поиска осуществ- осуществлялось вдоль отрицательного градиента. Небольшие отличия имели место между МПБМ и методом НЛП в отношении условий завер- завершения вычислительных операций; однако в целом эти методы рав- равноценны. Таблица 7.2.1 Сравнение различных методов поиска при минимизации Р-функции задачи 18, приведенной в приложении Л /(X*) Полное число этапов Одномерный линейный поиск (число шагов) Количество вычислений значений целевой функ- функции Количество вычислений значений Р-функции Время, мин МПБМ '> 32,3519 92 Метод Ньютона 32,3488 88 292 487 1,14 Метод Дэвидо- на — Флетче- ра — Пау- Пауэлла 32,3488 272 1086 1331 0,73 Метод Пауэлла 32,3488 455 7164 27 987 27 458 4,71 Метод Хука и Джнвса 32,3526 1363 37 485 34 054 4,72 ') Фнакко и Мак-Кормвк. В методе Хука и Дживса вычислительный этап состоит из струк- структурно-аналитического и по необходимости моделирующего поиска. В методе Пауэлла на каждом этапе находится линеаризованный ми- минимум в п независимых направлениях, и не исключается возмож- возможность того, что на каком-либо из этапов реализуется поиск в «состав- «составном» направлении (см. гл. 4). За исключением случаев применения методов Хука и Дживса, составляющие вектора х определялись с точностью до 10~5—10~4 от их истинных значений (см. в этой связи приложение А). Во всех случаях все ограничивающие условия в виде неравенств были полностью удовлетворены. Как метод Дэви- дона — Флетчера — Пауэлла, так и метод Ньютона позволили найти минимум целевой функции быстро и с большой степенью точ- точности. В одном из своих исследований Табак [20] приводит данные от- относительно временнйх затрат при минимизации Р-функции на ИБМ 360/91. Эти данные содержатся в табл. 7.2.2. Они относятся к следующей задаче:
358 Глава 7 минимизировать / (х) = схх + хг + хь при ограничениях Bx1 - 1) х\ + Bx1 — хх {bxlxl Dxlxl — 2x1 — 2x1 + х\ + х\) + Bx1 — \)х\] ^6 (х3хй х\ х\ — •^6 ^ ¦"'6imax- Тестовые решения задач 1, 2, 4, 5 и 11 из приложения А (соот- (соответствующие результаты приведены в табл. 7.2.3) показывают, что Таблица 7.2.2 Минимизация Р-фуикцин Метод Ньютона Проекции приведенного градиента Проективный Ньютона — Пирсона Пирсона 3 различными методами Машинное время, о Метод 1,40 2,10 2,93 6,13 Бройдена Флетчера — Ривса Пирсона 2 Наискорейшего спуска Машинное время, с 6,63 7,66 32,24 67,53 перечисленные методы минимизации с применением машинной про- программы «МПБМ-1970» в грубом приближении эквивалентны, если используется аналитическая запись частных производных, но оказы- оказываются малоэффективными в условиях поиска без использования производных в их аналитической записи (т. е. в условиях «чистого» поиска). Завершение поиска минимального значения Р-функции в МПБМ определяется на каждом этапе вычислительного процесса одним из трех критериев сходимости; выбор критерия осуществляется поль- пользователем. Работа программы заканчивается, если выполняется одно из следующих условий: a) |v^(x№),
Методы штрафных функций 359 Другими словами [см. соотношение G.2.10) J, останов имеет место, если дР(х, *= 1, ..., п. «\ Данный критерий останавливает минимизационныи поиск, если , I — 1, ... , ti. =l, ... , и, где вертикальные линии показывают, что берется абсолютное зна- значение величины дР'дхг Критерий «а» использовался исключительно Таблица 7.2,3 Временные затраты 1) на решение некоторых задач нелинейного программирования с помощью МПБМ A970 .) Номер Критерий задачи останова 2) Методы минимизации Ньютона с ными в производ- аналитиче- ской записи Бройдена Только значений Фиакко и мик вычисление функций, Мак-Кор- 1 I 0,53 0,56 0,94 2 0,67 1,01 1,23 2 1 0,76 0,85 2 0,68 0,88 Р ешени е 1 2,05 4,39 най! 4 2 2,27 4,80 ги ие 5 1 0,99 1,01 удалое .ь 2 1,33 1,30 и 1 0,98 1,65 3,40. ') Основное время машинной обработки данных в секундах на CDC 6600. 2> См. подразд. 7.2.3 (шаг 5). в связи с решением задач, рассматриваемых в гл. 9 (при в = 10~7). В табл. 7.2.4 приведены некоторые данные применительно к усло- условиям задачи 1 из приложения А; эти данные позволяют провести сравнение эффективности сформулированных выше критериев ос- останова. Шаг 3. В МПБМ вектор х№+!) задается соотношением где s'fe) определяется либо формулой G.2.10), либо G.2.10а). Чтобы избежать манипулирования с точками, лежащими вне допустимой области, необходимо располагать некоторым методом выявления
360 Глава 7 ситуаций, когда оказывается нарушенным то или иное ограниче- ограничение в виде наравенства. Шаг 4. Рассмотрим теперь ускорение процесса поиска решения путем экстраполяции. Без акселерационного шага МПБМ обес- обеспечивает сходимость к условному экстремуму слишком медленно Таблица 7.2.4 Результаты применения МПБМ A970 г.) при различных критериях останова в связи с решением задачи 1 из приложения A *) Останов при минимизации Р-функцни 2) Метод Ньютона Критерий а Критерий б Критерий в Метод Бройдена Критерий а Критерий б Критерий в Только вычисление зна чений функции Критерий а Критерий б Критерий в Останов по завершении всего миннмизационного процесса "! Критерий 1 0,529 C2) 0,703 A06) 0,604 (93) Критерий 1 0,563 D9) 0,729 D9) 0,597 D9) Критерий 1 0,944 A12) 1,316 A87) 0,703 E8) Критерий 2 0,670 C8) 0,832 A29) 0,884 A27) Критерий 2 1,013 F4) 1,190 F1) 0,974 F4) Критерий 2 1,234 A46) 1,679 B23) 1,002 (91) Критерий 3 0,606 C8) 0,815 A29) 0,785 A27) Критерий 3 0,967 F4) 0,955 F1) 1,112 F4) Критерий 3 1,231 A64) 1,462 B14) 1,051 (91) 1) Чистое машинное время в секундах; в скобках указано число вычислительных этапов. 2) См. подразд. 7.2.3 (шар 2). 3) См. подразд. 7.2.3 (шаг 5). (так как вблизи границы процесс минимизации проходит медленно). Именно для преодоления этой трудности используется прием по- последовательного уменьшения весового коэффициента г с тем, чтобы получить последовательность минимумов Р (х, /¦<*>) и соответствую* щих значений х**). После этого по трем точкам х**-1), x<fc> и x<H-i) можно найти приближенный экстремум. Данная процедура оказывается эффективной при решении многих задач, но становится явно неудовлетворительной при сильном «сгущении» текущих точек. После того как удается отыскать несколько минимумов функции Р (х<&>, /-<*>), МПБМ экстраполирует значения составляющих векто- вектора х путем их представления в виде полинома по степеням г1/». (Если функция Р (х<й, №) строго выпукла, то для каждого г®> существует только один минимум Р (х(&>, /¦<*>)). Экстраполяционные процедуры, основанные на использовании двух или трех последо- последовательных значений х, соответствующих минимальным значениям
Методы штрафных функций 361 Р-функции, называются процедурами первого и второго прибли- приближений соответственно (фиг. 7.2.4). Укажем, что Фиакко и Мак-Кормик доказали, что траектория, проходящая через точки х (г(*>) (каждая из которых является ре- решением подзадачи безусловной минимизации Р (х, гЩ), прибли- f Первое при- приближение I хф) Второе приближение О 1 2 д 4 5 в 7 дг Фиг. 7.2.4. Метод экстраполяции для ускорения оптимизационного поиска с по- помощью МПБМ. зительно линейна по (г№'I/а при r(k) ->¦ 0 (т, е. для малых значе- значений г<*>): х (гт) да х @) + а (г№)I/2 G.2.11) и ''"'", G.2.12) где а — некоторая константа, а х @) — значение х (г(*>) при № -*• ->¦ 0. Таким образом, приближение первого порядка к решению за- задачи нелинейного программирования находится путем решения урав- уравнений G.2.11) и G.2.12) относительно х @), в результате чего имеем с'/ах (г<*>/с) — х (/•<*>) G.2.13) Для получения экстраполяционных оценок во втором приближении полагаем
362 Глава 7 Разрешив G.2.14) относительно х @), получаем ., /лч -. * ('№>) ~ (с + gV') * W '/ x(U) (c Соотношения G.2.13) и G.2.15) используются в МПБМ для уско- ускорения процесса оптимизационного поиска и, следовательно, для эко- экономии машинного времени. Шаг 5. Итак, тесты на сходимость выполнены. Алгоритм со- содержит три критерия завершения оптимизационного поиска (вы- (выбор критерия предоставляется пользователю). Машинная программа реализует останов (прекращение итерационного процесса), если удовлетворяется один из следующих критериев: I) f /v frWW I (Л (/' ')) j E (x (r№)), u (№), vi (rik)), w' (rik))) "" 0> где функция Е определена в подразд. 7.2.2. 2) [Следует заметить, что этот критерий не содержит члена, «который позволял бы проверить, удовлетворяются ли условия ht (x (гЩ = = 0, i == 1, ..., т.] 3) Значение /(х*) в первом приближении 1 <-• fl Е (х (r<«), u (г*)), w (r<«). w' (/¦»>)) ^ °' где 90 — некоторая константа, значение которой выбирается поль- пользователем. Критерии 1 и 3 являются логическим развитием G.2.9). Значения целевых функций исходной и двойственной задач при уменьшении /¦<*> обнаруживают тенденцию к совпадению (по край- крайней мере в задачах с линейными ограничениями в виде равенств), а функции Е и Р стремятся к / (х*). Вычисления заканчиваются, если выполняется выбранный критерий. В противном случае ал- алгоритм реализует переход к шагу 6. Ряд результатов применительно к условиям задачи 1 из приложения А (с использованием критериев 1—3) приведен в табл. 7.2.4; в гл. 9 критерий 1 применяется при реализации вычислительных процедур. Шаг 6. Как отмечалось выше, машинная программа обеспечи- обеспечивает уменьшение значения №. Шаг 7, Машинная программа обеспечивает приближенное вы- вычисление минимума Р-функции для уменьшенного значения г№> с помощью экстраполяционных формул, приведенных в связи с описанием шага 4. Шаг 8. Исходя из результата, полученного на шаге 7, программа реализует переход к шагу 3, и итерационный процесс продолжается в установленном выше порядке.
Методы штрафных функций 363 В варианте МПБМ, относящемся к 1967 г., кроме задания це- целевой функции и ограничений, выраженных через независимые пе- переменные, от пользователя требовалось также ввести в программу аналитические выражения первых и вторых частных производных / (х) и функций, задающих ограничения, по независимым перемен- переменным задачи. В варианте МПБМ 1970 г. пользователю предоставляет- предоставляется возможность определить программным способом приближенные значения вторых частных производных с помощью разностных соотношений, содержащих аналитическое представление первых частных производных; эта особенность машинной программы не была, однако, в достаточной степени опробована. Кроме того, МПБМ 1970 г. позволяет применять алгоритм Бройдена с использованием аналитической записи первых частных производных или метод оптимизационного поиска, в котором частные производные вообще не используются. Пользователь должен также задать начальный вектор х, который не обязательно является допустимым, а также заранее установить значения некоторых из фигурирующих в про- программе параметров и констант. Пример 7.2.1. Метод последовательной безусловной минимиза- минимизации (МПБМ) Рассмотрим задачу, которая уже решалась в предыдущей главе (здесь она будет решена с помощью МПБМ): минимизировать f (х) = 4х± — х\ — 12 при ограничениях Мх) = 25—*? — *! = 0, g2 (х) = 10*! — х\ + 10*2 — х\ — 34 Функции / (х), hj (х), g2 (х), g3 (х) и <§4 (х) изображены графически на фиг. 6.0.1. Начнем оптимизационный поиск с точки х@> = [1 Пг, в кото- которой / (х°) = — 9; однако, поскольку точка х'о) является внешней, в соответствии с МПБМ определим прежде всего внутреннюю точку х (не являющуюся допустимой по отношению к ограничению hx (x) = = 0) путем минимизации — g, (x) при ограничениях g3 (x) > 0 и <§4 (х) > 0, которые не должны при этом нарушаться. Построим первую из вспомогательных Р-функций в виде i=3
364 Глава 7 В точке х@) =* [1 1)г имеем — gB(x) = 16 и [A/*х) + A/х2)] = 2> так что Р' (х@)) = 18. Присоединенная (расширенная) целевая функция (которая подлежит максимизации) двойственной задачи имеет сле- следующий вид: ^=14. (б) Минимизация функции Р' выполняется методом Ньютона (см, разд. 3,3). Для частных производных функции Р' имеем = -10 + 2*! L, Ч L 4 Таким образом, направление поиска и длина шага в случае мини- минимизации Р' задаются соотношением s = _ -'Г—9 -9 2,25 2,25 (в) Шаг длиной 2,25 реализуется вдоль каждой оси координат, в ре- результате чего получаем внутренний вектор х следующего вида: (г) х<°>' = х<°> + s = 3,25 Для этого вектора удовлетворяются все ограничивающие условия в виде неравенств, а / (х) = — 20,25. Построим теперь основную Р-функцию: k>) .-¦'¦'¦ ' • (д) — л, — х\ — 34 В точке х = [3,25 3,25] при г = 1 эта функция принимает значение 529,716. Подлежащая максимизации целевая функция двойствен- двойственной задачи имеет вид г , #2 34 2rh\{x) и принимает в точке х = [3,25 3,25) значение 1047,72.
Методы штрафных функций 365 Вычислим прежде всего частные производные Р-функции в точке х = [3,25 3,25 f: дР 46505 g 69084 ^ = 84,525, = 84,525. Матрица Гессе для функции Р не является положительно опре- определенной, так как при положительном значении определяющего элемента Г69.084 84,5251 [84,525 69,084] Поэтому составляющие вектора, определяющего направление поис- поиска, направлены вдоль составляющих отрицательного градиента функции Р, Вектор х@>' изменяется следующим образом: X = X @)' + Ах@), и для начального шага теперь имеем 149,7551 [3,251 Г 46,505 [60,256J ~ [3,25J 157,006 Далее процесс минимизации Р-функции реализуется методом Фи- Фибоначчи; поиск продолжается до тех пор, пока не будет достигнута точка х = [3,516 3,577 ]г (в действительности результаты поиска оказываются вычисленными с точностью до пятого десятичного знака). Теперь вновь вычислим частные производные Р-функции: Я Р Л2 р Л2 р -^—• = 6,119, —-=99,613, °хдх =100,628, S- = 2,160, 4т- = 101,024, -й- = 100,628. При этом матрица Гессе для функции Р опять не является положи- положительно определенной, так как det|" 99,613 100,628 6 [100,628 101,024 Таким образом, поиск методом Фибоначчи вновь реализуется в на- направлении отрицательного градиента; этот поиск осуществляется До тех пор, пока не будет достигнута точка х = [2,137 4.7O237'. Минимизация функции Р продолжается следующим образом. В точке
366 Глава 7 ло 0 1 2 3 4 5 xt Фиг. П.7.2.1. Траектория оптимизационного поиска с помощью МПБМ (числа означают порядковый номер вычислительного этапа). х, для которой матрица Гессе для Р-функции положительно опре- определена, используется соотношение G.2.10). После 23 итераций вдоль соответствующих направлений опти- оптимизационного поиска значение параметра г (начальное значение г — = 1) начинают вчетверо уменьшать. Значения переменных жх и х2, а также функций / (х), Р (х, г) и Е (х, г), вычисленные при умень- уменьшении г, приведены ниже: Номер этапа 13 23 33 42 51 55 62 68 г 1 1/4 1/16 1/64 1/256 1/024 1/4096 1/16384 В (х, г) —32,990 —32,270 —32,065 —32,011 -31,997 —31,993 —31,993 -31,992 Мх) —31,583 —31,807 —31,902 -31,948 —31,970 —31,944 —31,987 —31,990 Р (х, г) —29,400 —30,959 —31,547 —31,788 —31,895 —31,944 —31,969 —31,981 1,150 1,073 1,037 1,019 1,010 1,006 1,004 1,002 х2 4,918 4,909 4,904 4,902 4,900 4,899 4,899 4,899 К (х) — ШЛО —2,53.10-' —1,26-10-' —6,34-Ю —3,17-10~2 —1,58.10~2 —7,94-Ю-3 —3,95-Ю-3
Методы штрафных функций 367 Отметим, что имеет место типичная сходимость функций Ри?к минимальному значению функции/ (х). Обратим также внимание на верхнюю границу, определяемую функцией Р, и нижнюю границу, задаваемую функцией Е. Количество вычислений, связанных с получением оценок указанных выше функций и их частных произ- производных, на разных этапах оказывается различным и варьируется от 11 на первом этапе до 4 на последнем этапе (число вычислений упомянутого характера зависит, разумеется, от требуемой точности результатов вычислений при одномерном поиске). Траектория оптимизационного поиска показана на фиг. П.7.2.1. ЗАДАЧИ Ч 7.1. Рассмотрите следующую задачу: минимизировать / (х) = х\ -f 6^ -f- х\ + 9 при ограничениях g({x): xt>0, (t = l, 2). Пусть минимизация осуществляется с помощью МПБМ, начиная из точки х<°> = [1 0,5 Г. а) Вычислите /-С3', используя соотношения G.2.2) — G.2.4). Ка- Какой способ задания г<0), с вашей точки зрения, является наиболее предпочтительным? б) Постройте функцию Р (х, гЩ. в) Найдите хО и / (х<'>) с помощью любой оптимизационной про- процедуры в рамках МПБМ. Каким образом можно избежать опасности выхода за пределы допустимой области? г) Реализуйте некоторую последовательность этапов оптими- оптимизационного процесса. д) Какие из шести условий, сформулированных в подразд. 7.2.2, выполняются для рассматриваемой задачи? е) Выполните проверку на сходимость на каждом из вычисли- вычислительных циклов, используя критерии останова, сформулированные в разд. 7.2. Удовлетворяются ли критерии останова, если Р-функция выпуклая? 7.2. Можно ли сформулировать задачу, двойственную по отно- отношению к задаче 7.1? При положительном ответе сформулируйте соответствующую двойственную задачу и реализуйте несколько итерационных циклов при ее решении. Исследуйте тенденции, ко- которые обнаруживают решения исходной и двойственной задач, и проверьте, выполняются ли неравенства G.2.9). Ряд задач, имеющих отношение к содержанию данной главы, можно найти также в конце гл. 6 и в приложении А.
368 Глава 7 7.3. Повторите пункты задачи 7.1 применительно к условиям следующих задач: а) минимизировать / (х) = х\ + Л при ограничении h (х) = х\ + х\ — 9*2 + 4,25 = 0; б) минимизировать / (х) = е*' + ех* при ограничениях h{x) = x\ + xl — 9 = 0, = х1 + хг — 1 > 0, (х) = хг > 0, 7.4. Прокомментируйте структурные особенности Р-функций, построенных для решения следующей задачи: минимизировать /(х) при ограничениях g-j(x)>0, i= I, 2, ... , m, начиная с допустимой стартовой (начальной) точки. Упомянутые выше Р-функции имеют следующий вид: 1 т а) Р(х, х№)) = -—^——— б)Р(х№>) =/(x(fc))-r№)| i=l Какие преимущества имеют эти функции по сравнению с G.2.1)? Какие неудобства возникают при их использовании? 7.5. Изобразите графически уровни штрафной функции Фиак- ко — Мак-Кормика для следующей двумерной задачи: минимизировать / (х) = (х1 — ЗJ + (хг — 2J при ограничении h (х) = х1 + х, — 4 = 0. Используйте различные значения параметра г. 7.6. Задача оптимального размещения в трехмерном простран- пространстве единицы оборудования относительно конфигурации, уже со- содержащей (п — 1) фиксированных (в смысле дислокации) единиц оборудования, формулируется следующим образом: минимизировать S = 2 с, l(Xli - х,Г + (x2j - x%f + (x3/ - xl)]l/\
Методы штрафных функций 369 где 5 — суммарные затраты, хх, хг, х3 — координаты местонахож- местонахождения новой единицы оборудования относительно «нулевой точ- точки», X\j, x2j, *з/ — координаты уже имеющегося оборудования. Ограничения имеют вид Зл^ + Зя3 < 30 и xv хг, х3 > 0. Значения с/ и Хц указаны в приведенной ниже таблице: / 1 2 3 4 5 6 7 8 <7 1 1 1 1 1 1 1 1 0 10 10 0 0 10 10 0 0 0 10 10 0 0 10 10 0 0 0 0 10 10 10 10 а) Покажите, что S — выпуклая функция. {^Замечание. Алгебраи- Алгебраическая сумма выпуклых функций есть также выпуклая функция, поэтому требуется лишь убедиться в том, что [(х1 — aLJ + (х$ — агJ + 4- (#з — азJ)'/! представляет собой выпуклую функцию. Используйте в ходе доказательства неравенство Коши — Шварца и соотношение B.4.1), прибавив к правой и левой его частям 3 Ч в2 2 х1 + A— 9J2 #?. Можно также воспользоваться свойствами «а» и «б», ассоциированными с B.4.2).) б) Покажите, что функция, задающая ограничение, является выпуклой. в) Докажите, что для рассматриваемой задачи выполняются условия 1—6, сформулированные в подразд. 7.2.2. г) Постройте Афункцию. д) Покажите, что для г<0> = 100 при стартовой (начальной) точке х<°) = [0 2 о!г и S — 86 540 первый этап оптимизационного поиска вдоль градиента функции Р (х) приводит в точку хA> = = [1,03 1,03 1,03]т, для которой Р (х) = 97,237 и S (х) = 82,782. е) Каким должно быть очередное значение г?
370 Глава 7 ж) Сколько потребуется итераций для того, чтобы понизить значения составляющих вектора \Р (х) до числа, меньшего 10~2? 1(Г4? з) Покажите, что решение рассматриваемой задачи имеет сле- следующий вид: х* = [1/3 1/3 1/3]г, Р(х) = 71,817, 5(х) = 71,816. 7.7. Проверьте, удовлетворяют ли задачи 6.17, 6.18, 6.20, 6.25 и 6.27 условиям сходимости МПБМ. 7.8. Рассмотрите следующую задачу: минимизировать / (х) = (хх — 2J + (*2 — 1J при ограничениях h2 (х) = хх — 2х2 + 1 = 0. а) Постройте Р-функцию Фиакко — Мак-Кормика при г = = 0,04. Изобразите построенную Р-функцию графически (если смо- сможете найти надлежащий способ графического изображения уровня этой функции). б) Определите направление оптимизационного поиска из на- начальной внутренней точки х<°) = [0,7489 0,5485]г. в) Найдите вектор хA>. г) Может ли одна из точек х(й оказаться вне допустимой об- области? Ответ поясните. 7.9. Преобразуйте задачи, указанные в упражнении 7.7, в за- задачи минимизации путем использования надлежащих Р-функций. 7.10. Сравните (для некоторого числа итераций) скорость мини- мизационного процесса для задачи, приведенной в подразд. 7.2.1, со скоростью минимизации, если в качестве обобщенной присоеди- присоединенной функции (вместо рассмотренной в подразд. 7.2.1) взять следующие функции: а) Р (х№), Л = / (х) + -L_ 2 [gi (х№)) - с? + -L. 2 [ht (x№) - б) функцию, фигурирующую в G.2.1а). Придайте константе с некоторое конкретное значение. 7.11. Сравните Р-функцию, изображенную графически на фиг. 7.2.1, с Р-функциями, упомянутыми в упражнении 7.10. На- Начертите линии уровней этих Р-функций при таких же значениях хх и хг, как в случае, проиллюстрированном на фиг. 7.2.1. Ответьте для каждого из вариантов выбора Р-функции на следующие во- вопросы:
Методы штрафных функций 371 а) Сохраняется ли разрывность на границе области внутрен- внутренних точек? б) Как повлияет на траекторию поиска выбор стартовой (на- (начальной) точки? По-прежнему ли необходимо выбирать в качестве стартовой (начальной) внутреннюю точку? 7.12. Рассмотрите следующую задачу: минимизировать / (х) = \хх — х\ — 12 при ограничениях gx (х) = 10*! — х\ + 10*2 — х\ — 34 > 0, g2 (х) = *!>(), g3 (X) = Xj > 0, выбрав в качестве начальной точку х<0) = [2 4]г, Изобразите графически уровни /(х) в области 0<хх<6, 0<х2<6 (пусть это будет график А). Наложите на полученное вами графи- графическое изображение кривую, заданную уравнением gx (x) = 0. Начертите уровни постоянных значений для функции G.1.7) при и, = 1 и значениях г, равных 100, 1, 10~2, 10~4 (т. е. требуется начертить четыре графика: В1, В2, ВЗ, В4). Для каждого значения г минимизируйте Р (х, г), начав оптимизационный поиск в точке х@> и используя алгоритм Дэвидона — Флетчера — Пауэлла. Изобра- Изобразите графически траектории поиска отдельно для случаев Bl, B2 и ВЗ и наложите графики этих траекторий на график А. Какие выводы можно сделать относительно выбора г<°>? 7.13. Мощность, потребляемая миксером-нагревателем промыш- промышленного назначения, выражается формулой Р = 2,63- \Q где L — диаметр импеллера, фут; п — скорость вращения импел- импеллера, об/мин; ц — вязкость; s — удельный вес; a F — эмпиричес- эмпирическое выражение. Для чисел Рейнольдса '\ превышающих 150, F — (n/3750snL2H'05, тогда как для чисел Рейнольдса, меньших 150, F = = 33,3/C750snL2/jxH'75- Определите минимальную мощность, требуемую для функцио- функционирования миксера, вмещающего 6000 галлонов жидкости, удель- удельный вес которой равняется 0,8, а вязкость — 200. Числа Рейнольдса выражаются через диаметр импеллера, скорость враще- вращения импеллера, удельный вес перемешиваемой жидкости и ее вязкость.
372 Глава 7 Исходные данные. Для простоты будем считать, что зазор между импеллером и внутренней поверхностью бака, в которую заливает- заливается жидкость, равняется 8 дюймам. Число Рейнольдса определяется по формуле Re Стоимость бака находится из расчета 100 долл на 1 фунт металла, а толщина стенки бака должна быть не менее 0,25 дюйма при вы- высоте до 6 футов и не менее 0,375 дюйма при высоте, превышающей 6 футов. Ежегодные расходы, связанные с обслуживанием и капи- капитальным ремонтом миксера, составляют 25% стоимости бака; за- затраты на энергоснабжение 0,01 долл за 1 кВт-ч. Суммарное время эксплуатации миксера в течение года составляет 6000 ч. 7.14. Разработка оптимальной модели функционирования хими- химического завода сопряжена с необходимостью решения следующей задачи: максимизировать ,. ч 8400г — 2,2s— 1041,6 @,3*5 + 0,0068d) 1Г1 ДХ) = g 1U, где z = 0,Зл:5 — 0,02%! — 0,03x2 — 0,01t/5 + 0,0068d, s = Ух + Уг + Уз + У* + Уь + Ув> при ограничениях Y у и С1У1У2 _ о Л1 лзУ1 ^г и> Х2 Л3»2 р S2 — "» v ,1 _L 9 c^ суУ — лзУз *т L 0,10,A -х3)-у6 + где с, = 5,9755-10». с2 = 2,5962- 10" cs = 9,6283-1015
Методы штрафных функций 373 7.15. Галлер и Готас [21] сформулировали следующую задачу нелинейного программирования, связанную с проблемой оптими- оптимизации затрат на эксплуатацию фильтровальной установки (подроб- (подробности, относящиеся к постановке задачи, см. в работе [21]): минимизировать + 2Г~ + 2 при ограничениях X 8,34 X 365 XsLe) ' О < х3 < 45, 3<х2<10, тах{10, D3660^ г р. e ' Найдите минимум f (x) и определите х*, основываясь на следующих данных: Cl = 80, Ki = 0,219, с5 = 3,2-10~4, р = 0,7, св = 5,55, я = 3,14159, с7 = 0,01, Li = 200, Le = 30. 7.16. Клейн и Климпел в работе [22] описали задачу нелиней- нелинейного программирования, связанную с поиском оптимального реше- решения относительно выбора мест для строительства промышленных предприятий и определения размера этих предприятий в каждом из выбранных мест; предполагается, что речь идет о выработке решения для некоторого заранее установленного интервала вре- времени. Основной и оборотный капитал можно записать в следующем виде: Основной капитал = а0 + а^"', Оборотный капитал = Ьо + ЬХР + b2Sa>,
374 Глава 7 Здесь S — размер предприятия, Р — проектная мощность пред- предприятия (объем продукции, выпускаемой за год), а0, Ьо, аъ &х и Ъг — известные константы, определяемые эмпирическим способом. Затраты в течение года (переменная величина) определяются с помощью следующей формулы: Затраты = Р (сх + c2S + c3SCi). Предполагается, что при заданном пункте отправления и фик- фиксированном пункте назначения транспортные расходы пропорцио- пропорциональны объему перевозок. Целевой функцией является чистый дисконтированный капитал (ЧДК), т. е. сумма дисконтированных капиталовложений; при этом норма дисконтирования полагается равной 10%. Предполагается, что движение всех денежных средств, за исклю- исключением вкладов на капитальное строительство, происходит в течение года равномерно; оборотный капитал учитывается (либо со зна- знаком плюс, либо со знаком минус) дискретно в начале каждого года, а основной капитал учитывается (со знаком плюс) лишь в начале планового периода (т. е. в начале «нулевого» года). В непрерывном представлении коэффициенты дисконтирования выглядят следующим образом: 1. Для одновременных вкладов F- = е~гу где г — процентная ставка на размещенный капитал, у — длитель- длительность периода в годах. 2. Для равномерно (во времени) реализуемых вкладов F - е'~1 с~гу Переменная у может принимать как положительные (после на- начала отсчета времени), так и отрицательные значения (до начала отсчета); в конце года, являющегося началом отсчета времени, у = о. Поскольку цены и статьи дохода Клейном и Климпелом не рас- рассматривались, максимизация ЧДК эквивалентна минимизации се- себестоимости. Обозначим через Pqk объем продукции, доставленной с t-ro пред- предприятия (i = 1, 2, 3, 4) на рынок сбыта / (/ = 1, 2, 3) в течение &-го года (k = 0, 1, 2, 3). Пусть St и Sj представляют собой соответствен- соответственно размер 1-го промышленного предприятия и переменную, прини- принимающую значение 0 или 1 в зависимости от того, равняется или не равняется нулю величина S,-. Обозначим через MOjk уровень спро- спроса в /-м пункте сбыта в &-м году. Наконец, для удобства обозначим через Рт суммарный объем продукции, выпускаемой ?-м предприя- предприятием в k-u году.
Чистый дисконтированный капитал Таблица А 1. Доля основного капитала (предприятие № 1) Год 0A967) Основной капитал 0.7^ + 1,5^ Коэффициент 'дисконтирова- 'дисконтирования 1,0517 Дисконтированный основной капитал -0,7362 S, — 1,5775 S?'6 2. Доля оборотного капитала (предприятие № 1) Конец года 0 1 2 3 Оборотный капитал 0,4 S, + 0,2 Рш + 0,05 S?-6 0,2(Р102-Рш) 0,2(Pia8-P102) —0,4 S2 — 0,2 Р103 — 0,05 S?'6 Коэффициент дисконтирова- дисконтирования 1,000 0,9048 0,8187 0,7408 Дисконтированный оборотный капитал при норме дисконтирования, равной 10% —0,4 ^ — 0,2 Рш — 0,05 S?'6 —0,1810 Р102 +0,1810 Р101 -0,1637 Р103 +0,1637 Р102 +0,2963 S\ + 0,1482 Р103 + 6,0370 S?'6 3. Учет эксплуатационных н прочих затрат (предприятие № 1) а. Таблица затрат (без учета транспортных расходов) Год 1 2 3 Показа- Показатель р ^102 Амортизация" 0,4667 Sx + 1,0 S?'6 0,1167 Si + 0,25 S?'6 o.neeSi + o.KS?-6 Другие затраты 0,03 St — 0,01 St + 0,05 S^45 + 0,07 S°'6 + 0,1 Plo, — 0,005 PlolSt + + 0,4 Plolsr0'55 0,03 S, — 0,01 Sx + 0,05 S?'45 + 0,07 S^'6 + 0,095 P102 — 0,0048 P102Si + + 0,38 P102Sr0'55 0,03 Sx — 0,01 St — 0,05 S?'45 + 0,07 S^6 + 0,0903 P103 — - 0,0045 PiojSi + 0,361 PjojSx
Продолжение табл. А б. Результаты дисконтирования затрат (предприятие № 1I) Год Результаты дисконтирования прн норме дисконтирования, равной 10% 0,1983 St + 0,0049 St — 0.0247S?'45 + 0,4221 sf6 — 0,0495 Plol + 0,0025 PwlSt — 0,1979 P10iS7°'55 0,0348 St + 0,0045 St — 0,0224 S°'45 + 0,0720 S°'6 — 0,0425 P102 + 0,0020 P102S, — 0,1702 P102S^0-55 0,0315 S, + 0,0041 S, — 0,0203 Sf4b + 0,0651 S?'6 — 0,0366 P103 + 0,0017 P103S1 — 0,1463 PU3S\-b5 4. Учет транспортных расходов (при перевозках с предприятяя № 1) Год 1 2 3 Коэффициент дисконтирова- дисконтирования 0,9516 0,8611 0,7791 Транспортные расходы 0,8Pm + 0,5Pm 0,7 Рш + 0,45 Р132 0,6Р1гз + 0,4Р133 Результаты дисконтирования при норме дисконтирования,, равной 10% — 0,396 Р121 — 0,247 Р181 — 0,313 Р122 — 0,201 Р132 -0,243 Р123-0.162Р133 ') Приведенные здесь результаты получены с помощью методов так называемых наклонных и горизонтальных дисконтирующих сечений.
Таблица Б Целевая функция — °>5753 St — 1,0313 Sf6 — 0,0685 Рш - 0,0597 Pl02 — 0,0522 Р103 + + 0,0135 St — 0,0674 S?'45 + 0,0025 Pi01St + 0,0020 PM2Si + 4- 0,0017 P103Si - 0,1979 PlolS-°'55 - 0,1702 P102Sf °'55 - — 0,1463 Рмз^Г0'55 — 0,396 Р121 — 0,247 Р,31 - 0,313 Р122 — — 0,202 Р132 — 0,243 Р123 — 0,162 Р133 — 0,3428 S2 — 0,8920 S°/ — — 0,0685 Р201 — 0,0597 Р202 — 0,0522 Р203 + 0,0135 S2 — 0,0809 S°2A5 + + 0,0025 P2Q1S, + 0,0020 РгоЛ2 + 0,0017 P203S2 - 0,2227P201S7°>55 - — 0,1914 P202S70>55 - 0,1645 P208Sf °'55 — 0,396 P2U — 0,495 P281 — — 0,313 P21S — 0,448 P282 — 0,243 PS18 — 0,405 P238 — 0,3164 S3 — — 1,2987 S0/ — 0,0942 P301 — 0,0819 P802 — 0,0712 P303 - 0,0539 s?'45 4 4- 0,0030 PmS3 4- 0,0026 P30iS3 4- 0,0022 P303S3 — 0,2227 P3MS^0'55 - — 0,1914 P302S^0'55 — 0,1645 P303Sf0l55 — 0,247 P811 — 0,495 Pm — — 0,202 P312 — 0,448 P322 — 0,162 P313 — 0,405 P323 — 0,2441 S4 — — 1,3707 S°lG — 0,0577 P401— 0,0504 P40J— 0,0440 P403 4- 0,0020 PwlS4 -\ 4- 0,0017 Pi0iSt 4- 0,0015 P^sSi — 0,1484 PiolS^°<55 — — 0,1276 P402S70'55 - 0,1097 P403S4-°-65 - 0,495 P411 - 0,099 P421 - — 0,040 P431 — 0,448 P412 — 0,090 P422 — 0,040 P432 — 0,405 P413 — — 0,088 P423-0,041 P483 Таблица В Коистаиты A) Sx 4- S2 4- S3 + S4 = 10 B) PU1 + P2l] 4- P311 + P411 = 1 C) PU2 + P212 4- P312 + P4l2. 4 D) P113 + P213 + P313 + P413 = 5 E) ^lM + P22l 4" ^821 ~Ь ^421 — 2 F) Pj22 + P222 4" ^322 ~Ь ^452 == « G) P123 + P™ + P823 + P™ = 2 (8) Pm + P231 + P331 4- P431 = 4 0) P132 4- Рм, + Р332 4- Pi32 = 3 A0) P133 + Pm + PSB + P433 = 2 A1) P10] - S2 < 0 A2) PI02 - S, < 0 A3) PI03 - St < 0 A4) P^ - S2 < 0 A5) P202 - S2 < 0 A6) P203 - S2 < 0 A7) P30] - S3 < 0 A8) P302 - S3 < 0 A9) P303 - S3 < 0 B0) P401 - S4 < 0 B1) P402 - S4 < 0 B2) P403 - S4 < 0
3?8 l'лава 7 Задача нелинейного программирования заключается в том, чтобы определить St и Pijk, максимизирующие ^ ЧДК (с учетом транспортных расходов) i при ограничениях S{>0, Pi,k>0. В табл. А показан способ определения ЧДК для предприятия № 1; для других предприятий ЧДК находится аналогичным обра- образом. В табл. Б приведена полная структура целевой функции, а в табл. В указаны 22 ограничения: одно ограничение в виде равенст- равенства, лимитирующее полную производственную мощность предприя- предприятия A0 миллионов фунтов в год), девять равенств, обусловленных требованием полного удовлетворения спроса на трех рынках сбыта в течение года, и 12 неравенств, ограничивающих превышение парциальных производственных мощностей рассматриваемого предприятия. Кроме того, следует иметь в виду условия неотрица- неотрицательности для всех переменных (число переменных равняется 40). Таким образом, рассматриваемая задача содержит 10 ограничений в виде равенств и 52 ограничения в виде неравенств. ЛИТЕРАТУРА 1. Fiacco А. V., McCormick G. P., Nonlinear Programming, Wiley, N. Y., 1968. 2. Zangwill W. I., Management Sci., 13, 344 A967). 3. Huard P., Resolution de programmes mathematiques a contraintes nonlineaires par la methode des centres, Note Electricite" de France, HR 5690/3/317, 1964; см. также The Method of Centers in: Course A., Nonlinear Programming, North Holland Publ. Co., Amsterdam, 1965. 4. Fiacco A. V., McCormick G. P., Operations Res., 16, 820 A968). 5. Pietrzykowski Т., Application of the Steepest Descent Method to Concave Pro- Programming, Proc. IFIPS Congr., Munich, North Holland Publ. Co., Amsterdam, 1962. 6. Fiacco A. V., McCormick G. P., J. Soc. Ind. Appl. Math., 15, 505 A967). 7. Fiacco A. V., Ph. D. Dissertation, Northwestern Univ., Evanston, 111., 1967. 8. Dennis J. В., Mathematical Programs and Electrical Networks, Wiley, N. Y., 1959. 9. Box M. J., Davies D., Swann W. H., Nonlinear Optimization Techniques, ICI Monograph of Mathematics and Statistics, № 5, Oliver and Boyd Ltd., London, 1969. 10. Carrol С W., Operations Res., 9, 169 A961). 11. Davies D., Some Practical Methods for Optimization, Notes for the NATO Sum- Summer School on Integer and Nonlinear Programming, June 8—20, 1969. 12. Weisman J., Ph. D. Dissertation, Univ. of Pittsburgh, Pa., 1968. 13. Fiacco A. V., McCormick G. P., SI AM J. Appl. Math., 15, 505 A967). 14. Huard P., p. 209 in: Nonlinear Programming, Abadie J., ed., North" Holland Publ., Amsterdam, 1967.
Методы штрафных функций 379 15. Carroll С. W., Operations Res., 9, 169 A961); Ph. D. Dissertation, Inst. of Paper Chemistry, Appleton, Wis., 1959. 16. Fiacco A. V., McCormick G. P., Management Sci., 10, 360, 601 A964); 12, 816 A966). 17. Wortman J. D., BRL 1958 (NLPROG), Jan. 1969. 18. Murray W., Proc. 6th Intern. Symp. on Mathematical Programming, Princeton, N. J., 1967. 19. Fletcher R., McCann A. P., Chap. 13 in: Optimization, Fletcher R., ed., Acade- Academic Press, London, 1969. 20. Tabak D., IEEE Trans. Automatic Control, AC14, 572 A969). 21. Galler W. S., Gotas H. В., J. Sanit. Eng. Div., Am. Soc. Civil Engr., SA1, 163 A966). 22. KleinM., Klimpel R. R., J. Indus. Eng., 18, 90 A967). ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА МЕТОДЫ МНОЖИТЕЛЕЙ ЛАГРАНЖА Arrow К. J., Hurwicz L., Gradient Methods for Constrained Optimization, J. Ope- Operations Res. Soc, 5, 258 A957). Bard Y., Greenstadt J. L., A. Modified Newton Method for Optimization with Equality Constraints, in: Optimization, Fletcher R., ed., Academic Press, London, 1969. Dorn W. S., On Lagrange Multipliers and Inequalities, J. Operations Res. Soc, 9, 95 A961). Everett H., Generalized Lagrange Multiplier Methods for Solving Problems of Opti- Optimal Allocation of Resources, Operations Res., 11, 399 {1969). Falk J. E., Lagrange Multipliers and Nonconvex Programs, Res. Analysis Corp. Techn. Paper RAC-TP-335, Nov. 1968; Lagrange Multipliers and Nonlinear Programming, J. Math. Analysis Appl., 19, 141 A967). Klein В., Direct Use of Extremal Principles in Solving Certain Optimizing Problems Involving Inequalities, J. Operations Res. Soc, 3, 169 A955). Kuhn H. W., Tucker A. W., Nonlinear Programming, Proc. 2nd Berkeley Symp. on Math. Statist. Prob., Univ. California Press, Berkeley, Calif., 1951, p. 481. Takahashi I., Variable Separation Principle in Mathematical Programming, J. Operations Res. Japan, Vol. 6 A964). Zwart, J. Opt. Theory and Appl., 6, 150 A970). МПБМ Bracken J., McCormick G. P., Selected Applications of Nonlinear Programming, Wiley, N. Y., 1968. Fiacco A. V., McCormick G. P., Nonlinear Programming: Sequential Unconstrai- Unconstrained Minimization Techniques, Wiley, N. Y., 1968. Lootsma F. A., Logarithmic Programming: A Method of Solving Nonlinear Program- Programming Problems, Phillips Res. Rept., 22, 329 A967); Constrained Optimization via Penalty Functions, Phillips Res. Rept., 23, 408 A968). Pomentale Т., A New Method for Solving Conditioned Maxima Problems, J. Math. Analysis Appl., 10, 216 A965). Schmit L. A., An Integrated Approach to Structural Analysis and Synthesis, AIAA J., 3, 1104 A964). ДРУГИЕ МЕТОДЫ Allran R. R., Johnsen S. E. J., Computer J., 13, 171 A970). BellmoreM., Greenberg H. J., Jarvis J. J., Oper. Res., 17, 229 A969).
380 , Глава 7 Fletcher R., McCann A. P., Acceleration Techniques for Nonlinear Programming, in: Optimization, Fletcher R., ed., Academic Press, London, 1969. Haarhoff P. C, Buys J. D., Computer J., 13, 78 A970). Huard P., Resolution of Mathematical Programming with Nonlinear Constraints by the Method of Centers, in: Nonlinear Programming, Abadie J., ed., North Holland Publ. Co., Amsterdam, 1967. Kelley H. J., Denham W. G., Johnson I. L., Wheatley P. O., An Accelerated Gra- Gradient Method for Parameter Optimization with Nonlinear Constraints, J. Astro- nautical Sci., 13, 166 A966). Kowalik J., Osborne M. R., Ryan D. M., A New Method for Constrained Optimiza- Optimization Problems, Operations Res., 17, 973 A969). Lasdon L. S., An Efficient Algorithm for Minimizing Barrier and Penalty Functi- Functions, Techn. Memorandum № 210, Operations Res. Depart., Case Western Re- Reserve Univ., Dec. 1970. Lootsma F. A., Boundary Properties of Penalty Functions for Constrained Minimi- Minimization, Nat. Techn. Inform. Service, Document N70-33412, 1970. Morrison D. D., Optimization by Least Squares, SI AM J., Numerical Analysis, 5, 83 A968). Murray W., Constrained Optimization, Nat. Phys. Lab. Rept. № NA79, Aug. 1969. Murray W., Behavior of Hessian Matrices of Barrier and Penalty Functions Arising in Optimization, Nat. Phys. Lab. Rept. № NA 77, April 1969. Powell M. J. D., A Method for Nonlinear Constraints in Minimization Problems, in: Optimization, Fletcher R., ed., Academic Press, London, 1969. Schwartz L. E., Large Step Gradient Methods, Chap. 8 in: Optimization, Fletcher R., ed., Academic Press, London, 1969. Siddall J. N., McDonald J. F., OPTIPAC: The Designers Optimization Problem Solver, 2 vols., McMaster Univ., Mech. Engineering Depart., Hamilton, Ont., Canada, Oct. 1969.
Глава 8 ПРОЦЕДУРЫ МИНИМИЗАЦИИ ПРИ НАЛИЧИИ ОГРАНИЧЕНИЙ: МЕТОД СКОЛЬЗЯЩЕГО ДОПУСКА Напомним, что в общей постановке задача нелинейного програм- программирования формулируется следующим образом: минимизировать / (х), х ? Еп, при ограничениях ft,(x) = 0, i = 1, .... m, j ?г(х)>0. i = m + 1, ... , р, где функции /(х), hL (х) и g( (x) могут быть как линейными, так и нелинейными''. При практической реализации на ЭВМ многих методов нелинейного программирования значительная доля машин- машинного времени тратится на то, чтобы обеспечить строгое выполнение требований допустимости. Алгоритм скользящего2' допуска [1] позволяет улучшить значения целевой функции как за счет инфор- информации, получаемой в допустимых точках пространства решений, так и за счет информации, которую удается получить при прохож- прохождении через некоторые точки, лежащие вне допустимой области, но являющиеся близкими к допустимым; для краткости будем на- называть их почти допустимыми точками. Интервалы, в пределах которых точки можно считать почти допустимыми, в ходе оптими- оптимизационного поиска постепенно сокращаются, так что в пределе (по мере приближения к искомому решению задачи нелинейного программирования) в системе соотношений (8.0.1) учитываются только допустимые точки х. При такой стратегии оптимизационного поиска задачу (8.0.1) можно заменить более простой (но имеющей то же самое решение) задачей минимизации /(х), х ? Еп, при ограничении Ф№)-7(х)>0, (8.0.2) где фk) — значение критерия скользящего допуска на k-м этапе поиска [этот критерий определяется соотношениями (8.1.1)], а Т (х) ' Как уже отмечалось в разд. 2.1, при линейной структуре всех фигурирую- фигурирующих в (8.0.1) функций мы имеем дело с задачей линейного программирования. ' Иногда говорят «нежесткого допуска».
382 Глава 8 представляет собой положительно определенный функционал над множеством всех функций, задающих ограничения (как в виде ра- равенств, так и в виде неравенств) в задаче (8.0.1). Функционал Т (х) является мерой степени нарушения ограничений рассматриваемой задачи [определение Т (х) дано с помощью соотношения (8.1.5) в разд. 8.1]. В разд. 8.2 приводится стратегия алгоритма. Разд. 8.3 посвящен описанию процедуры определения необходимой совокуп- совокупности как допустимых, так и почти допустимых точек, а в разд. 8.4 обсуждается вычислительная процедура в начале оптимизационного поиска. Отметим, что хотя при решении задач безусловной миними- минимизации используется так называемый метод деформируемого много- многогранника, предложенный Нелдером и Мидом (см. разд. 4.2), так как он оказывается исключительно эффективным, при решении задачи безусловной минимизации можно применять и другие методы, не связанные со стратегией скользящего допуска. Таким образом, метод Нелдера и Мида можно заменить любым другим методом определения безусловного минимума, если при этом га- гарантируется надлежащая степень эффективности вычислительных процедур. Получаемая при этом последовательность векторов х будет просто представлять собой последовательность точек в Еп, а не вершины специально построенного многогранника. 8.1. ОПРЕДЕЛЕНИЕ Ф, Г(х) И ПОЧТИ ДОПУСТИМЫХ ТОЧЕК 8.1.1. КРИТЕРИЙ ДОПУСКА Ф В качестве критерия допуска Ф выбирается положительно опре- определенная убывающая функция координат точек, являющихся вер- вершинами деформируемого многогранника в Еп, т. е. Ф№) = Ф№) (xf', хг, ... j х)+ь x^4_2). Функция Ф служит критерием допуска для нарушения ограничений решаемой задачи на протяжении всего процесса оптимизационного поиска и, кроме того, является кри- критерием, позволяющим определить момент прекращения процедуры оптимизации. Варианты конкретного выбора Ф многочисленны; здесь мы рассмотрим лишь одну из возможностей, представив функ- функцию Ф в следующем виде: Ф = rnin |Ф , —-г—:—211х' "~X/i+2l}» [ '¦=• ' (8.1.1) где t — величина, характеризующая размер исходного много- многогранника;
Метод скользящего допуска 383 m — число ограничений в виде равенств; xf] — вектор, задающий положение г-й вершины многогран- многогранника в Еп; г = (п — т) — число степеней свободы целевой функ- функции / (х) в задаче (8.0.1); х>4-2 — вектор, задающий положение вершины, которая со- соответствует «центру тяжести» рассматриваемого много- многогранника при п = г [см. соотношение D.2.1)]; k — 0, 1, ...—индекс, указывающий число пол- полностью законченных этапов вычислительного про- процесса; ф№-1) — значение Ф на (k — 1)-м этапе оптимизационного поис- поиска. Обозначим второй член в фигурных скобках соотношения (8.1.1) через B{k), т. е. положим (8Л.2) где x\f 0" = 1 п) — координаты t-й вершины нежесткого мно- многогранника в Еп. Заметим, что 0(ft> представляет собой среднее рас- расстояние от точек x\k) (i — 1, ..., г + 1) до центра тяжести х'+2 выбранного многогранника в Еп. Чтобы понять поведение функции Ф№>1 необходимо прежде всего рассмотреть величину Э. Очевидно, что Э зависит от размеров упомянутого выше многогранника, ко- которые могут оставаться неизменными, увеличиваться или умень- уменьшаться в зависимости от того, какая из четырех описанных в разд. 4.2 операций используется для перехода от х'*' к xf \ Та- Таким образом, Ф{к) ведет себя как положительно определенная убы- убывающая функция х, хотя 9№) может в ходе оптимизационного поис- поиска либо возрастать, либо убывать, а по мере приближения к опти- оптимальной точке и В{к), и Ф{к) устремляются к нулю, т. е. образуется последовательность Ф@'>Ф("> •¦• >Ф(/е)>0. (8.1.3) Если при использовании метода Нелдера и Мида улучшение значений / (х) с помощью D.2.2) оказывается невозможным, вер- вершины деформируемого многогранника постепенно приближают к той вершине, которая соответствует наименьшему значению целевой функции. В пределе имеет место полное вырождение деформируе- деформируемого многогранника в точку, соответствующую стационарному
384 Глава 8 значению f (x). Таким образом, по мере приближения к стационар- стационарному значению f (x) величина Bik), определяемая соотношением (8.1.2), постепенно уменьшается, так как среднее расстояние между вершинами многогранника и его центром тяжести сокращается до нуля. Поскольку на k-м этапе оптимизационного поиска O(fc) пола- полагается равной наименьшему из значений либо ф'*', либо Bik)t величина Ф(*' также уменьшается и в пределе имеем 0. (8.1.4) 8.1.2. КРИТЕРИЙ Т(х) КАК «МЕРА» СТЕПЕНИ НАРУШЕНИЯ ОГРАНИЧЕНИЙ Рассмотрим теперь функционал Г(х) над множеством ограни чений задачи (8.0.1): | 2 2 %etV$\ (8.1.5) где Ui — оператор Хевисайда, обладающий следующим свойством: Ut — 0 при gt (х) > 0 и 111 — 1 при gt (x) < 0. Таким образом, функционал Т (х) представляет собой взятый с положительным знаком квадратный корень из суммы квадратов функций, задающих полную совокупность нарушенных ограничений задачи (8.0.1). За- Заметим, что Т (х) > 0 при любом х ? Еп. В частности, обратим m внимание на то, что если сумма 2 Л? (х) является выпуклой, а фун- (=1 кции gt (x) (i = m + 1, ..., р) вогнуты, то Т (х) есть выпуклая функция, обладающая глобальным минимумом Т(х) = 0 для лю- любого допустимого вектора х, т. е. для любого {x|fy (x) = 0, gt (х) > 0 (/ = 1, ..., р)}. Кроме того, Т (х) > 0 для любого век- вектора х, не являющегося допустимым. Для заданного х(*> ? Еп вычисленное с помощью формулы (8.1.5) значение Т (х) можно ис- использовать для различения допустимых и недопустимых точек. Если Т (х<*>) = 0, то точка х<*> допустима; если Т (х) > 0, то точ- точка х<*>не является допустимой. При этом существенным является следующее обстоятельство: если значение Т (х(*>) мало, то это означает, что точка х№) расположена относительно недалеко от гра- границы допустимой области; при большом же значении Т (х(/е)) точка х(*> лежит на значительном расстоянии от границы допустимой области.
Метод скользящего допуска 385 8.1.3. ПОЧТИ ДОПУСТИМЫЕ ТОЧКИ (КВАЗИДОПУСТИМОСТЬ) Почти допустимыми точками называются такие точки х ? Еп, которые не являются допустимыми, но в то же время почти допу- допустимы в указанном ниже смысле. Чтобы установить четкое различие между допустимыми, почти допустимыми и недопустимыми точками, рассмотрим значение Ф на k-м этапе оптимизационного поиска, т. е. значение Ф в точке х№) ? Еп. Говорят, что вектор х(*> является: 1) допустимым, если T(x<ft)) = 0; 2) почти допустимым, если О < Т (х(/е)) < Ф№); 3) недопустимым, если Г(хда)>Ф(/г). Таким образом, область квазидопустимости определяется соотно- соотношением > — Т(х)>0. (8.1.6) Любое перемещение из точки x(ft> в точку х№+1) называется допус- допустимым, если Т (х№+1>) = 0, почти допустимым, если О < Т (x(ft+1>) < <Ф№), и недопустимым, если Т (х(*+1)) > Ф№>. Отметим, что значе- значение Ф на (k -j- 1)-м этапе оптимизационного поиска находится толь- только после того, как определяется, что точка х ' является либо до- допустимой, либо почти допустимой. 8.2. СТРАТЕГИЯ АЛГОРИТМА СКОЛЬЗЯЩЕГО ДОПУСКА В этом разделе мы покажем, что задачу нелинейного програм- программирования в общей формулировке (8.0.1) можно заменить более простой задачей минимизации / (х) при единственном «укрупненном» ограничении в виде неравенства, а именно задачей следующей струк- структуры: минимизировать f (х), к ? Еп, при ограничении ф<*> _ т (х) > 0. (8.2.1) Поиск методом деформируемого многогранника (т. е. методом Нел- дера и Мида) удобен и эффективен, хотя и не относится к числу основных методов при минимизации f (x) в отсутствие ограниче- ограничений, т. е. когда ограничение в (8.2.1) не является активным. Однако этот метод используется и для минимизации Т (х) (см. разд. 8.3) при ограничении, фигурирующем в (8.2.1), если это ограничение активно. Общая схема работы алгоритма выглядит следующим об- образом: по мере развития оптимизационного поиска уменьшается
386 Глава 8 значение Ф', что приводит к сужению области квазидопусти- квазидопустимости, и процедура минимизации f (x) отделяется от этапов, служащих для выполнения ограничения, указанного в (8.2.1). При заданном <D(ft> в точке x(ft+'> имеет место один из следующих вариантов: 1) Т'(х('г+1))< Ф(к). В этом случае точка х(*+1) является либо до- допустимой, либо почти допустимой; соответствующее перемещение можно считать разрешенным. 2) Г(х(*+1))>Ф№>. В этом случае точка xtt+1) классифицируется как недопустимая; необходимо отыскать вместо х(й+1> другую точку, которая либо лежала бы ближе к границе допустимой области, либо принадлежала допустимой области. Один из способов перемещения точки х№+'> в сторону допустимой области состоит в уменьшении значения Т (х(*+'>) в соответствии с (8.1.5) до тех пор, пока не будет выполнено условие Т (x(k+i)) < Ф(к). Чтобы убедиться в том, что решение задачи (8.2.1) эквивалент- эквивалентно решению задачи (8.0.1), достаточно проанализировать поведе- поведение Ф(/е). Поскольку Ф(й есть положительно определенная невоз- невозрастающая функция, так что Ф№ = 0 лишь в том случае, когда дальнейшее улучшение значения / (х) для задачи (8.2.1) невозмож- невозможно, область квазидопустимости, определяемая соотношением (8.1.6), постепенно уменьшается по мере того, как оптимизационный поиск приближает нас к решению задачи (8.2.1). В пределе, когда все вершины \f} (i = 1, ..., г + 1) деформируемого многогранника в Е" стягиваются в одну точку х*, Ф* = 0 и условию (8.1.6) могут удовлетворять лишь допустимые точки х, т. е. точки {х | ht (x) = — 0> Si (х) > 0 (i — 1, ..., р)}. Другими словами, если Ф(А) = 0, то, поскольку Т (х) не может принимать отрицательных значений, единственно возможным значением Т (х) является Т (х) = 0, что эквивалентно требованию, чтобы были удовлетворены все ограни- ограничивающие условия в задаче (8.0.1). Поскольку критерий допустимости Ф есть положительно опре- определенная невозрастающая функция над последовательностью точек х@\ хО, ..., x(ft>, ..., х*, которые генерируются в ходе оптими- оптимизационного поиска, а также в силу того, что Ф не зависит ни от / (х), ни от функций, задающих ограничения задачи, и в пределе Ф* = 0, сходимость алгоритма гарантируется по следующим причинам: 1. Невозрастающее поведение критерия допустимости обеспе- обеспечивается самим способом построения Ф [см. формулу (8.1.1)]. Если бы функция Ф могла неограниченно возрастать, появилась бы воз- возможность улучшать значение f (x), все более удаляясь от границы допустимой области. 2. Когда решением задачи (8.0.1) является внутренняя точка (при отсутствии ограничений в виде равенств), сходимость алго- алгоритма гарантируется в силу свойства деформируемого многогран-
Метод скользящего допуска 387 ника вырождаться в точку лишь при достижении оптимума / (х) в за- задаче (8.0.1). При этих обстоятельствах Т (х) не влияет на сходи- сходимость алгоритма, так как на заключительных этапах поиска точки xf* (i — I, ..., г + 1) являются внутренними и, таким образом, Т (xf1) = 0, откуда следует, что в (8.1.6) ограничивающие условия в виде неравенств удовлетворяются для любых xf и задача (8.0.1) не содержит активных ограничений. 3. Когда оптимум задачи (8.0.1) достигается в точке, не являю- являющейся внутренней [либо потому, что х* является граничной точ- точкой, либо потому, что задача (8.0.1) содержит только ограничения в виде равенств], сходимость гарантируется за счет условия (8.1.6), т. е. в силу того, что Ф№> — Т (х) > 0. Деформируемый многогранник не начнет вырождаться в точку до тех пор, пока не будет найдено такое улучшенное значение / (xf), для которого Ф(/е) — Т (x(f>) > >0. Пусть xf — вершины деформируемого многогранника, такие, что ф№) _ т ^х№)^ ^. о, a f (xf) — наилучшее значение / (х), полученное на k-м этапе оптимизационного поиска. Обозначим через xf"' вер- вершины, полученные путем построения точек, симметричных точ- точкам Xftft> относительно центра тяжести многогранника, так чтобы Ф№) - Т (xf+1>) > 0. Если /(xf+1))>/(xf) для любого симмет- симметричного преобразования относительно центра тяжести, Ф( ' будет убывать вследствие сжатия элементов многогранника. Таким образом, значения Ф(И уменьшаются, и xf должны удовлетворять ограничи- ограничивающим условиям задачи (8.0.1) с постоянно возрастающей точнос- точностью, пока оптимизационный поиск не прекратится из-за того, что окажется выполненным условие Ф№) < е. С другой стороны, если f(xf+I>) </(xf), то значение ФШ) не уменьшится, поскольку никаких сжатий многогранника не будет иметь места, и xf заменяется на более подходящую вершину. По- Построение симметричных (относительно центра тяжести) точек и рас- растяжение элементов деформируемого многогранника осуществляют- осуществляются в ходе поиска допустимой или почти допустимой точки [для ко- которой / (x'ft+1>) < / (xf)] столько раз, сколько это необходимо. Таким образом, преждевременное прекращение поиска в окрест- окрестности нелокального оптимума не имеет места, так как деформируе- деформируемый многогранник не вырождается в точку, если существует та- такой вектор x(f+1), для которого Ф(й — Т (x\k+l)) > 0 и f (xf+X)) < < / (х* ± в). Одно из преимуществ стратегии скользящего допуска, нашед- нашедшее отражение в структуре задачи (8.2.1), заключается в том, что степень нарушения ограничений, содержащихся в задаче (8.0.1),
388 Глава 8 по мере приближения к искомому решению этой задачи постепенно уменьшается. Поскольку на первых этапах поиска ограничения задачи (как в виде равенств, так и в виде неравенств) должны удов- удовлетворяться весьма приблизительно и лишь при поиске непосред- непосредственно в окрестности искомого решения задачи (8.2.1) требуется большая точность, полный объем вычислений в процессе оптими- оптимизации по сравнению с другими методами существенно сокращается. Другим преимуществом стратегии скользящего допуска явля- является то, что оказывается удобным использовать Ф(** в качестве критерия окончания процесса поиска. Во всех возникающих на практике ситуациях оптимизационный поиск достаточно продол- продолжать до тех пор, пока Ф№> не станет меньше некоторого произволь- произвольным образом выбранного положительного числа е. На заключитель- заключительных этапах поиска Ф(й является также мерой среднего расстояния от вершин деформируемого многогранника x'ft) (i — 1, ..., г + 1) до его центра тяжести xfj.2. Если Ф№ < е, то значительное число вершин xf содержится внутри гипосферы радиуса s. (Если бы последний из рассматриваемых многогранников был правильным, внутрь гиперсферы радиуса е попали бы все вершины xf'; в силу же того, что многогранник является неправильным, некоторые из вершин выходят за пределы упомянутой гиперсферы.) Таким об- образом, если Ф(к) <; е, не исключается возможность того, что зна- значение / (х) не удастся улучшить без дальнейшего уменьшения раз- размеров деформируемого многогранника. Отсюда, в частности, сле- следует, что замена е -у 2s в точке xf\ соответствующей наилучшему значению / (х) (т. е. в точке х'*'), не приведет к улучшению целевой функции. Следовательно, к моменту прекращения оптимизацион- оптимизационного поиска выполняется следующее условие: /(х^)</(х*±е). (8.2.2) Поскольку условие (8.1.6) удовлетворяется при любом перемеще- перемещении в пространстве решений, если Ф№) < е, то условие е — — Т (х\®) > 0, очевидно, также выполняется, и мы имеем < s. (8.2.3) Из соотношения (8.2.3) следует, что при прекращении поиска сум- суммарное значение функций, ассоциированных с нарушенными ограниче- ограничениями, не превышает б. Само собой разумеется, что и значение каж- каждой отдельно взятой функции, ассоциированной с тем или иным из нарушенных ограничений, также не может превысить е.
Метод скользящего допуска 389 Пример 8.2.1. Стратегия скользящего допуска Рассмотрим следующую задачу: минимизировать / (х) = х\ + х\, х ? Е", при ограничении hx (х) = *? + х\ — 9х2 + 4,25 = 0. Уровни целевой функции f (x) и геометрическое место точек, для которых hx (х) = 0, показаны на фиг. П.8.2.1. Решением задачи (а) Фиг. П.8.2.1. Минимизация при наличии ограничений с помощью алгоритма скользящего допуска. (а) является точка х* = [0 0,5]г, в которой / (х*) = 0,25 и ht (x*) = = 0. В соответствии с методом скользящего допуска задача (а) преобразуется в задачу минимизировать /(х) = х\ + х\, х ? ?"', при ограничении Ф№)-Г(х)>0, где Г(х) = \{х\ + хЪ—9х2 + 4,25J]'/ рр мом примере г — (п — гп) = 1, так что при отыскании минимума / (х) можно использовать г + 1 = 2 вершин. Однако в силу того, (б) Заметим, что в рассматривае-
рассматривае390 Глава 8 что методика интерполяции (см. разд. 8,3.2) требует три опорные точки, число вершин q всегда должно удовлетворять условию q > 3. Именно поэтому в данном примере рассматриваются три вершины деформируемого многогранника. При десяти переменных и пяти ограничениях будет использовано только пять вершин. Для иллюстрации работы алгоритма скользящего допуска ниже при- приводится подробное описание вычислительных операций на первых двух этапах решения задачи (б). В качестве начального выбирается вектор х@)=[4 4,5]г, а величина, характеризующая размер исходного многогранника, / = 1 (при этом мы будем иметь многогранник с единичными ребрами и центром тяжести в точке х@>). В силу (8.1.1) при t = 1 и т = 1 имеем Ф<0) == 4. Вершины исходного многогран- многогранника расположены в точках xf = [3,592 4,092]г, xf = [4,558 4,351[г и хзС) = |3,85 5,06]г. Для соответствующих значений / (х) имеем /(xf) =* 29,64, /(xf) - 40,4 и /(xf) * 40,4. НУЛЕВОЙ ЭТАП ОПТИМИЗАЦИОННОГО ПОИСКА (ft = 0) Вершина, соответствующая наименьшему (на данном этапе) зна- значению f(x), находится в точке х'0) = хГ[в этой точке /(xjC)) = 29,64], а вершина, соответствующая наибольшему (на данном этапе) значе- значению /(х), находится в точке х)?1 = xf [в этой точке /(х(л0)) = 40,4]. Значение Т(х) = [(*? + *f— 9х2 + 4,25J]'/2 в точке xf равняется T(xf) = 2,65, и, поскольку Ф@) — Т (xf) > 0, неравенство (8.1.6) удовлетворяется и точка xiC) может рассматриваться как почти до- допустимая. Нет никакой необходимости в том, чтобы неравенство (8.1.6) удовлетворялось для двух других вершин, поскольку в процессе оптимизации эти вершины будут заменены другими вершинами с улучшенными значениями f(x). Согласно D.2.1), центр тяжести для оставшихся вершин находится в точке xf = [4,07 4,22]г. В соот- соответствии с D.2.2) при а = 1 точка, симметричная точке xi0> относи- относительно Х40), задается вектором х$" = [4,28 3,37]г. В точке xf функционал Т(х) принимает значение T^xf) = 3,75. Поскольку Ф@) — Т (xf') > 0, точка х|0> является почти допустимой; при этом / (х?}) = 29,6. Вследствие того что / (xf) < / (xi0)), соглас- согласно D.2.3), при y = 2 следующий шаг состоит в выполнении опера- операции растяжения, что дает xf = [4,49 2,52]т; в этой точке Г(х§") = == 8. Поскольку Ф<0) — Т (Хб0)) < 0, точка xf не является почти до- допустимой и поэтому отбрасывается. Таким образом, минимизация Т (х) начинается из точки xf и продолжается до тех пор, пока не будет удовлетворено неравенство (8.1.6).
Метод скользящего допуска _ Получающаяся в результате минимизации 7"(х) нова!1 вершина Хб°' задается вектором xf — [3,32 2,40]г, для которого Т(ш ) — 0.59, и, следовательно, точка Хб0> почти допустима. Теперь нетрудно убе- убедиться, что в почти допустимой точке xf] функция /Чхб0)) =* 1^,8. По- Поскольку /(х?0))</(хГ), точка xjp^xf заменяется на xf; на этом нулевой этап (k = 0) оптимизационного поиска заканчивйется- Как показано на фиг. П.8.2.1, вершина Хб0) отождествляется с •рчкой х . ПЕРВЫЙ ЭТАП ОПТИМИЗАЦИОННОГО ПОИСКА (ft * О Вершинами деформируемого многогранника в начала первого (k = 1) этапа оптимизационного поиска являются точки xi = = [3,592 4,092jr, xf = [4,558 4,35lf и х0) = [3, 32 2,40! • Обра- Обратим внимание на то, что при переходе от этапа к этапу пС0ИСХ0Дит замена только одной вершины многогранника. С помощью формулы (8.1.1) для критерия допуска получаем Фс1) = 0,745. Верш^ы. в ко" торых f (x) принимает наибольшее и наименьшее (на Данном этапе) значения, находятся соответственно в точках Хй1 = х; и х* = = хA) [при этом имеем /(х}") = 16,8 и Т(х?) = 0,591. Поскольку ФA) — Т (х|ъ) > 0, неравенство (8.1.6) оказывается выполненным, и поиск продолжается. Центр тяжести находится в точ«е *¦ ** = [3,45, 3,29]г.- Симметричное отображение точки xi" = Хг' относи- относительно точки Х41' дает точку xf == [2,34 2,23]г, в которой Т Щ ) = = 5,50. В силу того что ФA) — Г(х|1))<0, точка xf не является допустимой; поэтому осуществляется минимизация Г(х), исходя из ТОЧКИ Х5*. В новой точке xf = [3,1 2,if имеем T(xf)=0,64. Поскольку Ф — Т (\5)) > 0, производится вычисление f(x) в точке xf. Нетруд- но убедиться, что j (х^) = 14,01. В силу того что / (х.?1') < ^ (х' ) 2 резу в уд, j (^) , у / () соответствии с D.2.3) выполняется операция растяжения, б резуль- результате чего получаем х^" = [2,75 09]г. В этой точке Г D") =4'5- По" скольку точка Хб} не является допустимой, производится м!(нимиза" ция Т(х) при стартовой точке Хв" и находится новая точка хб =• = [2,92 1,90]г, в которой Г(х?") = 0,71, так что эта нова» точка хе' оказывается почти допустимой. В силу того что /(Хб')<?мх' )» x/j'* = xf заменяется на Хб'; на этом первый этап (k = 1) оп'гимиза" ционного поиска заканчивается. Точка х(б' отождествляется (см- фиг. П.8.2.1) с точкой х<2>. Вычислительная процедура, выполняемая по схеме, проиллю" стрированной для первых двух (k — 0 и k == 1) этапов оп?™1133'
ЗЙ2 Глава 8 ционного поиска, повторяется на последующих этапах k — 2, 3, ...; при этом на каждом этапе вершина, соответствующая наибольшему значению / (х), заменяется на новую вершину, получаемую путем выполнения соответствующих операций по методу Нелдера и Мида. Эти операции повторяются до тех пор, пока найденное с помощью (8.1.1) значение Ф<А) не будет удовлетворять условию Ф(к) < г, где 8 — заранее выбранное число. При выполнении указанного вы- выше условия оптимизационный поиск заканчивается. Подробно каждый шаг алгоритма скользящего допуска описан в разд. 8.4, где содержится также блок-схема алгоритма. 8.3. ПРОЦЕДУРА ОТЫСКАНИЯ ДОПУСТИМЫХ И ПОЧТИ ДОПУСТИМЫХ ТОЧЕК В предыдущем разделе было установлено, что в процессе опти- оптимизационного поиска при улучшении значений целевой функции / (х) используются только допустимые или почти допустимые точки. Если какая-либо точка х"=> оказывается с точки зрения критерия Ф недопустимой, необходимо определить другую точку, которую мож- можно было бы квалифицировать либо как допустимую, либо как почти допустимую. Отыскание либо допустимой, либо почти допустимой точки осуществляется за счет минимизации Т (x(fe)) над множеством всех точек пространства решений; при этом процесс минимизации Т (x<ft>) продолжается до тех пор, пока не окажется выполненным неравенство (8.1.6). Для минимизации Т(х) методом Нелдера и Мида необходимо построить новый многогранник в окрестности недопустимой точки x(fe). Чтобы не возникло путаницы, будем обозначать вершины мно- многогранников, рассматриваемых в связи с процедурой улучшения зна- значения /(х), через хР (i — 1, .... г + 1), а вершины многогранников, рассматриваемых при отыскании допустимых или почти допустимых точек путем минимизации Т(х),— через xf'(t = 1, ..., п+l). По- Последовательность векторов, генерируемых в процессе минимизации Т(\), для каждого недопустимого вектора x'w будет, таким образом, представляться последовательностью \f\ х|", ..., xf (t=l, ... .,. , п -f- 1), где индекс s обозначает число полностью завершенных этапов процесса минимизации Т(\). В любой процедуре минимиза- минимизации Т (х) в качестве начальной всегда берется точка х@> = х/и, где х\к) — недопустимая точка на k-u этапе процесса минимизации / (х). Последняя вершина последовательности х|0), xf xf считается достигнутой в том случае, когда для некоторого xf выполняется
Метод скользящего допуска 393 условие Т (xf) < Ф№>. При этом недопустимая вершина xf заменя- заменяется допустимой или почти допустимой вершиной xf, для которой ф№_Г(хГ>)>0, гдех1*' = хР. Процедура отыскания допустимых или почти допустимых точек будет описана в подразд. 8.3.3, а до этого рассмотрим: 1) метод получения (п -f-1) вершин исходного многогранника в Е" (подразд. 8.3.1); 2) метод интерполяции между внутренними и внешними точ- точками (подразд. 8.3.2). 8.3.1. МЕТОД ПОЛУЧЕНИЯ (п + 1) ВЕРШИН ИСХОДНОГО МНОГОГРАННИКА Пусть х<0> = \\к) — недопустимая точка в Еп. Чтобы приступить к поиску в связи с минимизацией значения Т (х) методом Нелдера и Мида, требуется задать (л + 1) исходных точек х'0> (i = = 1, ..., п + 1), которые могут (либо не могут) образовывать правильный многогранник в Еп. Эти (п + 1) вершин должны быть выбраны таким образом, чтобы п векторов, соответствующих любому подмножеству п вершин, были линейно независимы. На практике всегда оказывается наиболее удобным строить правильный многогранник, беря в качестве базовой точки х<0>. Вершины исходного многогранника в Еп [число вершин, как уже отмечалось, равняется (п + 1)] находятся с помощью соотношения xf'=x@) + D(, t=l я + 1, (8.3.1) где D; — вектор-столбец, составляющими которого являются эле- элементы 1-го столбца [п х (п -f 1)]-мерной матрицы. Определение этой матрицы дано в разд. 4.2. Траектория поиска, получаемая путем минимизации Т (х) ме- методом Нелдера и Мида, зависит от размера и ориентации исходного многогранника в пространстве решений. В случае когда размеры многогранника малы по сравнению с размерами допустимой об- области, траектория поиска почти не зависит от ориентации этого мно- многогранника в Еп. При малых значениях / траектория поиска (по крайней мере на первых этапах поиска) мало отличается от тра- траектории, получаемой методом наискорейшего спуска. Чтобы проиллюстрировать влияние размеров многогранника на ход оптимизационного поиска на начальных этапах, рассмотрим со- совокупность ограничений (8.3.2), которые графически представлены
394 Глава 8 на фиг. 8.3.1: (8.3.2) Допустимая область указана здесь штрихами по ее периметру. В любой точке допустимой области Т (х) = 0, тогда как в любой точке, лежащей вне допустимой области, Т (х) > 0. Уровни Т (х) = Фиг. 8.3.1. Влияние размеров исходного деформируемого многогранника на ход минимизации Т (х). = 12, Т (х) = 9,5 и Т (х) =4, выходящие за пределы указанной допустимой области, показаны на фиг. 8.3.1 пунктирными кривы- кривыми. На фиг. 8:3.1 изображены также два равносторонних тре- треугольника, имеющих общую вершину в недопустимой точке х№> = = [1,2 3,4]г, в которой Т (x(ft>) = 4. Если применить методы Нелдера и Мида, то потребуется всего один этап для того, чтобы установить допустимую точку х"\ начав с рассмотрения большего из упомянутых двух треугольников. Если начать рассмотрение с меньшего треугольника, то допустимую точку хC) удастся опре- определить лишь по завершении трех этапов. Направление наискорей- наискорейшего спуска для Т (х) в точке х(/г) задается вектором s = = I—0,4 0,9] . (Это направление также показано на фиг. 8.3.1.) Чем меньше размеры исходного многогранника, тем ближе проходит траектория поиска к траектории наискорейшего спуска. Чтобы предотвратить возможность осцилляции с пересечением границы допустимой области, весьма желательна такая ситуация, когда
Метод скользящего допуска траектория поиска при минимизации Т (х) не слишком сильно уда- удаляется от траектории наискорейшего спуска для Т (х). В алгоритме скользящего допуска величина, характеризующая размер исходного многогранника, при минимизации Т Кл на ?_м этапе определяется с помощью эмпирической формулы / - 0,05 ОЛ (8 З.з) где Ф<&) — значение критерия допуска, вычисленное с помощью (8.1.1) на k-м этапе. Следует помнить, что размеры многогранника используемого при минимизации / (х), фиксируются в начале этой вычислительной процедуры и сокращаются только, когда векторы х не приводят к улучшению значения / (х). На первых этапах поиска почти допустимые точки ^(*) распо- расположены дальше от границы допустимой области, нежели ца этапах завершающих оптимизационный процесс. На фиг. 8.3.1 множество точек, для которых Т (х) = 0, образует допустимую область а мно- множество точек, для которых 0 < Т (х) < Ф№), образует квазидо- квазидопустимую область. Квазидопустимая область при Ф(А) .^_ j пред- представлена на фиг. 8.3.1 узкой полосой, обрамляющей Допустимую область. Следует отметить, что эта полоса в случае линейных ограни- ограничений оказывается более широкой, чем в случае нелинейных огра- ограничений. 8.3.2. МЕТОД ИНТЕРПОЛЯЦИИ МЕЖДУ ВНУТРЕННИМИ И ВНЕШНИМИ ТОЧКАМИ В случае когда задача (8.0.1) содержит только ограничения в виде неравенств, метод Нелдера и Мида может оказаться неэф- неэффективным. Проиллюстрируем это, рассмотрев следующую задачу: минимизировать / (х) = — х1 — х2 при ограничениях ffi(x):9 — х\ — xl>0, (8l3-4) На фиг. 8.3.2 допустимая область задачи (8.3.4) показана заштри- заштрихованной кромкой на внутренней пограничной части контура заданного уравнениями gt (x) =0(i = 1, 2, 3), а уровни целевой функции / (х) изображены наклонными пунктирными линиями До- Допустим, что на k-м этапе поиска вершины многогранника (фактиче- (фактически треугольника), рассматриваемого в связи с минимизацией / (х) находятся в точках х\к) = [0,7 0,7]г, х^ = [1 2,7]г и xf> _! = [2,5 1,8]г (фиг. 8.3,2). В этих точках / (х) принимает соответст- соответственно значения /(xi**) = - 1,4, / (х^) = - 3,7 и f (xCft)) « _ 4,3. Симметричное отображение точки x\k) относительно центра тяжести
396 Глава 8 точек Х2*' и хз*' (соответствующая процедура обсуждалась в разд. 4.2) дает точку хE* = [2,8 3,8]г, лежащую вне допустимой области. В результате безусловной минимизации Т (х) методом Нелдера и Мида находится допустимая точка хC> = [1,15 2,15] (фиг. 8.3.2). 5 \ ч ч ч ч ч Ч д i 7 I I '////////A \ ч u > ч * ч V////// fro* /fJf- ftjy / xat) 4 4 <^ 4* 4 SI 4 ^ f(x)*-5 4 V 0 / 2 3 A 5 x3 Фиг. 8.З.2. Пример «выброса» при нарушенных ограничениях (метод Нелдера и Мида). Траектория поиска, в результате которого удалось найти точку /ч х3, представлена пунктирной ломаной линией 0, 1,2, 3. Поскольку точка xf находилась на относительно большом расстоянии от гра- /ч ницы допустимой области, точка х<3> оказалась глубоко внутри до- допустимой области задачи (8.3.4). После замены х^ на хC) (последнюю точку для удобства будем также обозначать через х^) получаем / (хеР) = — 3,3. Заметим, од- однако, что вершине xjf' теперь соответствует наибольшее [по сравне- сравнению со значениями /(х) в двух других вершинах] значение /(х). Действительно, f (xf) = — 3,3, тогда как / (х?») = — 3,7 и / (xf) « = — 4,3. Отсюда следует, что точка X5W подлежит симметричному отображению относительно центра тяжести точек х<> и Хз , в ре- результате чего получается новая точка, лежащая вне допустимой области. Такого рода осцилляция относительно границы допусти- допустимой области может продолжаться достаточно долго без существен-
Метод скользящего допуска 397 ного улучшения значения / (х). Чтобы в какой-то мере исправить ситуацию (которая, как правило, возникает при решении задач, содержащих только ограничения-неравенства), по отношению к внутренним и внешним точкам осуществляется квадратичная ин- интерполяция, с помощью которой находится точка х, лежа- лежащая вблизи от границы, заданной нарушенными ограничениями. На фиг. 8.3.2 нарушенным является ограничение, задаваемое функ- функцией g1 (х). Пусть x(s> — внутренняя точка, a x(s-1) — ближайшая к ней внеш- внешняя точка, найденная путем минимизации Т(\). Если вновь обратить- обратиться к фиг. 8.3.2, то нетрудно убедиться, что x(s> = хC> = 11,15 2,15]г, a, \{s~l) — хB) = [2,35 2,9]г. Любая точка на отрезке между точка- точками x(s> и х^ задается соотношением х = x(s) -Ь Xis)s при 0 < Xis) < X*, (8.3.5) где Я* = ИГ (xf~l) — xf'J есть расстояние от точки x(s) до точки Jj=l л x{s~l\ a s = (x^' — \(S>)/X* представляет собой единичный вектор в направлении x(s~'' — x(s>. Пусть Z (х) = ^ St (х)> гДе Р — суммар- суммарное число ограничений в виде неравенств, оказавшихся нарушенны- нарушенными в точке x(s-I>. Вычислим Z (х) в точках x(s\ x(s> + 0,5X,*s и х^1' = = x(s) + k*sи положим гх= Z E(s)), г2= Z (x(s) + 0,5X,*s) и г3 = —Z(x ). Таким образом, гг, z2 и г3 представляют собой значения Z(x) в трех одинаково отстоящих друг от друга точках, располо- расположенных вдоль вектора x<s) — x(s-I>. Желательно найти такую точку х*, в которой Z (х*) почти не отличается от нуля. Такая точка опре- определяется соотношением (8.3.6) где а =гх — 2г2 +23, a Р =3гг —4z2 + z3. Соотношение (8.3.6) можно получить, записывая приближение Z (х) с точностью до вто- второго порядка в интервале, определяемом Я*. При этом рассматри- рассматриваются только положительные вещественные корни (Р2 — 8a?!I/2. В примере, проиллюстрированном на фиг. 8.3,2, Z(x)=(9 — ~х\ — х%\ i(s) = [l,15 2,15]г ихи = |2,3 2,59j7. Следователь- Следовательно, Я* = 1,37, s = [0,837 0,5481г и x(s) + 0,5X,*s = [1,72 2,53]г. При этом получаем гг = Z (x(s)) = 9,3, г% = Z(x(s> + 0,5^*s) = 0,36 и
Глава 8 zs = Z (x{s~b) = 22. Отсюда следует, что а = 30,6 и Р = 48,8. С помощью формулы (8.3.6) находим L2.15J L0,548j [2, Значение Z (х) в точке х* равняется Z (х*) =0,005, и, следова- А тельно, точка х* может рассматриваться по существу как гранич- ная точка. В чрезмерно точном определении положения х* нет ни- какой необходимости. Если значение Т (х*) в точке х*, найденное с помощью (8.1.5), не удовлетворяет требованию допустимости (8.1.6), то осуществляется переход к новой точке х* путем переме- щения вдоль s по направлению к x(s); при этом процедура пошаго- пошагового перемещения в указанном направлении продолжается до тех пор, пока не будет выполнено условие Т (х*) < Ф(/г). 8.3.3. ПРОЦЕДУРА НАХОЖДЕНИЯ ДОПУСТИМЫХ И ПОЧТИ ДОПУСТИМЫХ ТОЧЕК Процедура, в результате которой удается получить либо допу- допустимую, либо почти допустимую точку, выглядит следующим об- образом: 1. Пусть х@> = xf° есть недопустимая точка в Еп, Ф{к) — зна- значение критерия допустимости, найденное с помощью соотношения (8.1.1) на k-м этапе процедуры оптимизационного поиска. Пусть t=0,05<$w есть параметр размера исходного многогранника, ас- ассоциированного с минимизацией Т (х), начиная из точки х@>. С по- помощью процедуры, описание которой дано в подразд. 8.3.1, и определяют (я -f 1) вершин х'0> (i = 1, .... п -f 1), требуемых для выполнения начального шага в связи с минимизацией Т (х). С по- помощью соотношения (8.1.5) вычисляется значение Т (х) в каждой из (п + 1) вершин, т. е. находится Т (х|0>) при t =1, ..., п -\-\. 2. При а = 1, р=0,5иу=2с помощью процедуры Нелдера и Мида минимизируется Т (х). В конце каждого s-ro этапа наи- наименьшее из значений Т (х> ) (t = 1, ..., п -\-1), т. е. Т (x/s)), сравнивается с Ф№). 3. Если Т (xf) > Ф№), найденная точка является либо допусти- допустимой, либо почти допустимой. Если Т (xf) > 0, недопустимая точка xf заменяется на точку x/s>; при этом точка xf = xf окажется ли-
Метод скользящего допуска 399 бо допустимой, либо почти допустимой и минимизация Т(х) закан- заканчивается. Если же T(xf) = 0 и m = 0, переходят к шагу 7, описа- описание которого дано ниже. 4. Если Т (xf) > Ф(/г), вычисляется величина где Т (\t\-2) — значение Т (х) в центре тяжести многогранника на s-м этапе минимизации Т(х). 5. Если o4(s>>10~7, возвращаются к шагу 2 и продолжается минимизация Т (х) на (s -f- 1)-м этапе. 6. Если o4(s) < 10~, деформируемый многогранник близок к вы- вырождению в точку, тогда как допустимую (или почти допустимую) точку так и не удалось найти. При </Z<s) < 10~7 и при наличии боль- большого числа нелинейных ограничений (как в виде равенств, так и в виде неравенств), формирующих структуру Т (х) и, следователь- следовательно, определяющих значения Т (х) в вершинах x\s\ в ходе выпол- выполнения процедуры Нелдера и Мида могут возникнуть серьезные за- затруднения. В этом случае Т (х) оказывается весьма сложной функ- функцией в недопустимой области Еп. Пусть хг есть вершина, соот- соответствующая наименьшему значению Т (х), найденному с помощью процедуры Нелдера и Мида. Вместо того чтобы прекратить поиск в точке x{s>, потеряв возможность определения допустимой или поч- почти допустимой точки, алгоритм продолжает работу, реализуя поиск вдоль каждого из направлений, параллельных осям координат, и осуществляется поиск минимума Т (х) по следующей схеме. Пусть X/ (/=1, ..., п)—точки, соответствующие наименьшим среди всех значений Т (х), найденным на траекториях, параллельных осям координат. Начиная из хг, определяется Xi, соответствую- соответствующее минимальному значению Т (х) при перемещении в направле- направлении, параллельном координатной оси хг\ затем, начиная из х\, определяется хг и т. д. Этот процесс продолжается до тех пор, пока не будут определены х, для всех п значений индекса /. Используе- Используемая при этом методика заключается в определении такого интерва- интервала /0) который содержал бы точку с минимальным значением Т (х) в выбранном направлении. После этого осуществляется одномер- одномерный поиск методом золотого сечения [2]. Этот поиск продолжается до тех пор, пока длина интервала, содержащего точку х,, не умень- уменьшится до 0,01 Ф№>. Цель такого одномерного поиска состоит в том,
400 Глава 8 чтобы найти новую точку, не совпадающую с x's), и повторить вы- вычислительные операции, начиная с шага 1, при больших размерах исходного многогранника. В конце каждого одномерного поиска в направлениях, парал- параллельных осям координат, производится проверка с целью выясне- ния, выполняется ли для нового значения Т (х,) условие Т (х,) < < Фк). Если это условие выполняется, xf9 заменяется на xi и процедура минимизации Т (х) заканчивается. Если после прове- проведения поиска в каждом из координатных направлений допустимую (или почти допустимую) точку определить все же не удалось, алго- алгоритм реализует переход к шагу 1 и все операции вновь повторяют- повторяются по схеме, предусмотренной методом Нелдера и Мида. При этом в качестве начальной вновь выбирается точка х„, т. е. точка, в ко- которой Т (х) принимает минимальное значение в ходе перемещения в направлении, параллельном л-й оси координат. Если в резуль- результате трехкратного выполнения всей процедуры от шага 1 до шага 6 допустимую или почти допустимую точку найти не удается, мини- мизационный поиск прекращается и квалифицируется как безре- безрезультативный. 7. Если Т (х?*) = Т (xf') = 0, то, прежде чем вернуться к проце- процедуре минимизации / (х), осуществляется интерполяция, описание ко- которой дано в подразд. 5.4.2. В результате интерполяции добиваются того, чтобы точка xf = x|s> не была слишком удалена от границ, задаваемых теми ограничениями, которые были нарушены непосред- непосредственно перед тем, как была найдена точка x;(s>. 8.4. НАЧАЛО И ОКОНЧАНИЕ ПОИСКА В данном разделе приводится описание процедуры начала поис- поиска с целью минимизации f (х). Напомним, что при минимизации Т (х) использовались все (п -j- 1) вершин многогранника, где п — суммарное число переменных (как независимых, так и зависимых) задачи (8.0.1), тогда как при минимизации / (х) рассматриваются лишь (г + 1) вершин, где r=(« — m) есть число «степеней сво- свободы» целевой функции. Еслит =0 [т. е. если задача (8.0.1) не со- содержит ограничений в виде равенств], то г = п, и при поиске ми- минимума / (х) мы имеем такое же число степеней свободы, как и при минимизации Т (х). Приступая к поиску минимума целевой функции / (х) с помощью алгоритма скользящего допуска, мы должны знать начальную точ- точку х@>, /, Ф@> и г. Для того чтобы поиск минимума / (х) был начат при правильном выборе размеров деформируемого многогранника,
Метод скользящего допуска 401 параметр t должен быть задан как функция интервала ожидаемых вариаций переменных х рассматриваемой задачи. Как правило, оказываются известными нижняя и верхняя границы изменения х; тогда для оценки наиболее рационального значения t можно вос- воспользоваться следующей формулой: 2 (8-4.1) где (U( — Lt) — разность между верхним и -нижним предельными значениями, которые может принимать переменная хг Таким об- образом, если Ul и L, (i — 1, ..., п) известны, установить подходящее исходное значение t удается относительно легко. В рамках рассматриваемого алгоритма локальные минимумы исключаются проще, если исходный многогранник охватывает весь- весьма большую область пространства решений. Стратегия алгоритма не зависит ни от локальных свойств / (х), ни от сочетаний харак- характеристик / (х) и функций, задающих ограничения (с противополож- противоположной ситуацией сталкиваются, например, при использовании методов проекции градиента). На каждом этапе оптимизационного поиска методом скользящего допуска информация, необходимая для реа- реализации-очередного перемещения в пространстве решений, полу- получается за счет рассмотрения (г -f 1) вершин деформируемого мно- многогранника в Е". Таким образом, алгоритм скользящего допуска имеет весьма важное преимущество, которое заключается в том, что в самом начале поиска удается получить существенный объем ин- информации относительно / (х) за счет рассмотрения большого числа вершин деформируемого многогранника. При этом увеличивается вероятность того, что некоторые из найденных х\к) будут соответст- соответствовать локальному оптимуму, лучшему любого другого локально- локального оптимума. Практика решения задач, характеризующихся нали- наличием многочисленных локальных оптимумов, подтверждает эф- эффективность алгоритма скользящего допуска при исключении из рассмотрения побочных локальных оптимумов. Разумеется, ни- никакая из реализуемых на ЭВМ вычислительных процедур не мо- может гарантировать глобальность найденного экстремума при ре- решении задачи, целевая функция которой обладает множеством ло- локальных экстремумов. Представляется также целесообразным выбирать в качестве точки х<°>, относительно которой строится исходный многогранник, допустимую или почти допустимую точку. Если исходный много- многогранник строить относительно точки, лежащей далеко за пределами Допустимой области, то придется производить замену г -f 1 вер- вершин на другие вершины, расположенные ближе к границе допу- допустимой области,
Пуск Найти ocf1 <i=f,..r, t+l)t выполнив процедуру описание которой содержится в разд. 5.S Да А. Минимизировал, Т(х(*'\так чтобы выполнялось условие Положить xf}» зс|" Вычислить f f«(-> Останов Нет Определить эс?+3 « ж/^* wfae^- »fft*'j Минимизировать Т{зе11г\), так Положить ж1*2=-хУ Вычислили тЫ'"г) Men *r^f ^ ^ '1ЖЛ , Hem J. г^)< ^Г«Г;) ? Да- Положи.!? Определить х^д • зс^г^Сзс^-х^) Минимизировать T(xibl) так чтобы T(xf) **"'' Положить хг* - X; Вбщислигпь fix1"*) Ла ± Да. hter, • Положить Минимшироеалп, Т(ос' ; ) так Положить хе , = х'- . Вычислить f(x(^3) Доложить ; Моложить Определить новые значения Определить ж'"- х"'+0,5 (xf'-x"'), U,..., г./ J фиг. 8.4.1. Блок-схема алгоритма скользящего допуска.
Метод скользящего допуски 403 Процедура отыскания вершин xf'(i=l, ..., г + \) реализует- реализуется по следующей схеме. С помощью (8.1.1) вычисляется Ф<0) = 2 (пг -\- + 1)/ и находится значение Т (х) в исходной точке х<0>. Если Т (х<0)) < Ф<0), то х<0) является либо допустимой, либо почти допусти- допустимой точкой, и исходные вершины xf'(t = 1, ... , г + 1) находятся с помощью процедуры, описание которой дано в подразд. 8.3.1. Если Т (х<0)) > Ф<0), то Т (х) минимизируется до тех пор, пока не бу- будет найдена допустимая или почти допустимая точка х; именно эта точка и выбирается в качестве базовой при построении исходного многогранника. Работа алгоритма заканчивается при двух обстоятельствах: 1. Когда Ф№> < 8. В этом случае поиск считается завершенным и квалифицируется как успешный (именно такая ситуация возни- возникает в подавляющем большинстве случаев). 2. Когда с помощью процедуры, описание которой приведено в разд. 8.3, не удается найти допустимую или почти допустимую точку. В этом случае поиск заканчивается, производится замена стартовой точки х<0) и/или осуществляется переход к другому на- набору значений параметров а, р, у, t и е. В обычных условиях реко- рекомендуется принимать а = 1, р =0,5, у =2 и е = 1(Р . На фиг. 8.4.1 представлена блок-схема, дающая общее пред- представление о логической схеме алгоритма скользящего допуска. Список соответствующих машинных команд на языке ФОРТРАН приведен в приложении Б. Пример 8.4.1. Метод скользящего допуска В качестве примера рассмотрим следующую задачу: минимизировать / (х) = 4хг — х\ — 12 при ограничениях Мх) = 25 — х\— л| = 0, g2 (x) = 10*! — x2i Лслевая функция и ограничения этой задачи изображены гра- графически на фиг. 6.0.1 и П.8.4.1. В качестве начальной (стартовой) точки возьмем недопустимую точку хоО> =[1 1]г, а начальную ве- величину параметра размера многогранника положим равным t = = 0,30. Тогда, согласно (8.1.1), для критерия допуска на старте будем иметь Ф@) = 2(/п+ 1)/ = 2 хA + 1) ХО,ЗО= 1,20.
404 Глава 8 s 4 3 г 1 0 Jam у у у у у у у у у у у у у у у > у у у у у у у 7 / / I у у 1 s' \ \ А т / / // f 1 ^" ' 1 X .'-' / X ^ / ' \ Уь> V /^ 1 \ \ - з\ &o Фиг. П.8.4.1. Траектории поиска с помощью алгоритма скользящего допуска (числа указывают порядковые номера этапов оптимизационного процесса). В точке хоО> =[1 1]г значения функций, задающих нарушенные ограничения, таковы: так что значение Т (хо0>), вычисленное с помощью соотношения (8.1.5), равняется Т (xi°) = [B3J + (- 16) х 2]*Л = 28,02. Мы видим, что Т (хо0>) > Ф<0). Следовательно, на первом цик- цикле работы алгоритма осуществляется поиск почти допустимого вектора. Чтобы начать процедуру минимизации Т (х), построим равно- равносторонний треугольник, каждая сторона которого равняется 0,06: Вершина 1 2 3 *1 1,000 1,057 1,015 Хг 1,000 1,015 1,057
Метод скользящего допуска 405 Теперь методом деформируемого многогранника (обсуждений данного метода см. в разд. 4.2) осуществляется минимизация Т (х) = [hi (х) + U.?22 (х) + U,gl (х) + Uigt (x)]v\ где Ut — оператор Хевисайда. В результате получается после- последовательность вершин, указанных в приведенной ниже таблице: Новая вершина 4 5 6 7 8 7 8 9 1,110 1,072 1,243 1,253 1,600 1,794 1,426 2,584 ч 1,110 1,221 1,381 1,683 2,154 2,993 1,918 4,356 Удовлетворяются ли ограничивающие условия в виде неравенств? Нет » » » » Да Нет Да из (X) Да » » » » » » Да » » » » » » * (Напомним, что К( = 0, если соответствующее ограничивающее условие удовлетворено.) В точке Х90) удовлетворяются все ограни- ограничения-неравенства, так что единственным нарушенным ограниче- ограничением в этой точке является ограничение h (хэ0>) = 0,648. Отсюда следует, что Теперь алгоритм переключается на минимизацию целевой функ- функции / (х). В точке х^ =[2,584 4,356]г имеем / (х'о") =2,063. Да- Далее строится новый симплекс при следующих координатах вершин: Новая вершина 0 1 2 3 *i 2,584 2,559 2,617 2,574 *« 4,356 4,331 4,347 4,389 На этом этапе оптимизационного поиска значение критерия допу- допуска ФA), найденное с помощью (8.1.1), равняется ФA) = min {1,20; 0,0447} = 0,0447, т. е
406 Глава 8 фA) ^ j^x Щу Следовательно, необходимо вновь перейти к поиску почти допустимой точки, начиная с хо2> = х'Р = [2,574 4,389]г. В у Все последующие этапы поиска в точности воспроизводят опи- описанные выше процедуры, и мы их подробно не рассматриваем. Ре- Таблица П.8.4.1 Этап 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 *i 2,574 2,600 2,599 2,578 2,549 2,457 2,278 1,814 1,059 1,015 1,015 1,003 1,003 1,003 1,002 1,001 1,001 1,001 1,001 1,001 1,001 1,001 1,001 х2 4,389 4,274 4,270 4,284 4,301 4,355 4,451 4,659 4,886 4,896 4,896 4,898 4,898 4,898 4,899 4,899 4,899 4,899 4,898 4,898 4,898 4,898 4,989 fix) —20,966 —19,867 —19,836 —20,041 —20,029 —21,137 —22,703 —26,457 —31,636 —31,916 —31,916 —31,983 —31,983 —31,983 —31,989 —31,993 —31,992 -31,991 —31,991 —31,992 —31,992 —31,992 —31,992 Ф 4,47-10~2 7,13-10~3 6,33-10~3 1,22-10~3 6,33-Ю-3 6,33-10~~3 6,33-10~3 6,22-10~~3 6,33-10~3 6,33-10~3 6,33-10"~3 6,33-10~3 6,33-10~~3 6,33-Ю-3 2,24-10~ 1,11-10—3 2,43-10~4 2,43-10~4 3,95-10~5 3,95-10~5 3,95-10~5 1,00-10~5 8,82-10~6 ft, (х) —8,94-10"' -3,01 -10~2 6,68-10~3 -6,74-10~4 6,33-10~4 —2,06-10~4 —5,42-10~3 —6,05-10~ 4,79-10~3 —3,64-10~3 —3,64-10~3 —1,77-10~3 —1,77-10~3 —1,77-10~3 —2,03-10~4 -1,43-Ю-3 —7,01-10~4 6,59-10~5 7,69-10~5 —3,34-10~5 —3,50-10~5 -3,50-10~5 5,53-Ю-6 зультаты, полученные в ходе оптимизационного поиска с помощью алгоритма скользящего допуска, приведены в табл. П.8.4.1 (эти ре- результаты округлены до третьего десятичного знака). Мы видим, что на десяти последних этапах минимизирующие поправки для х и f (x) незначительны. Однако в результате реализации этих эта- этапов достигается более строгое выполнение ограничения-равенства. Траектория поиска изображена на фиг. П.8.4.1. Следует обратить внимание на то, как в процессе поиска происходит постепенный пе- переход к точкам, обеспечивающим более строгое выполнение усло- условия /гх (х) =0.
Метод скользящего допуска 407 8.5. МЕТОДЫ РЕШЕНИЯ ЗАДАЧ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ С ЗОНАЛЬНОЙ НЕОПРЕДЕЛЕННОСТЬЮ Известны примеры задач нелинейного программирования, в ко- которых целевая функция и, возможно, некоторые из ограничений в некоторых зонах (или областях) Е" не определены. Чтобы не до- допустить в таких случаях преждевременного прекращения поиска, необходимо переформулировать задачу, введя запрет на те векто- векторы х, для которых хотя бы одна из функций / (х), ht (x) и gt (x) од- однозначно не определена или теряет физический смысл. Для иллю- иллюстрации этой идеи рассмотрим следующую задачу: минимизировать / (х) = (х\ -{- х% — 4х2 — 45)*/8 -f- -f (In Xl (x2 - 2)]», х е Еп, при ограничении ^(x) = 64-x?-x22>0. (8.5.1) Поскольку квадратный корень из отрицательного числа и лога- логарифм отрицательного числа не имеют смысла, целевая функция задачи (8.5.1) не определена в точках, для которых (xi + xt — 4x2 — 45)<0, хх<0 или (х2 — 2)<0. В области, показанной на фиг. 8.5.1 заштрихованной кромкой по внутренней стороне контура, образованного дугой окружности, кото- которая задается уравнением g2 (х) = х\ + х\ — 4я2 — 45 = 0, и отрезка- отрезками прямых, описываемых уравнениями g3 (х) = хх — 0 и g4 (x) = — х2 —2 = 0, все функции, фигурирующие в задаче (8.5.1), опреде- определены. Обратим внимание на то, что значительная часть допусти- допустимой области, определяемая условием gx (x) >• 0, по указанным выше причинам исключается из рассмотрения. Другими приме- примерами, в которых некоторые из функций, фигурирующих в форму- формулировке задачи, зонально не определены, являются задачи 4, 9 и 17 в приложении А. Если алгоритм скользящего допуска используется для решения задачи нелинейного программирования в общей постановке, то эту задачу необходимо привести к такому виду, когда заведомо устраня- устраняется возможность манипулирования с точками х, лежащими за пределами области определения рассматриваемой задачи. Один из способов устранения из рассмотрения зон, в которых задача не определена, заключается в надлежащей замене переменных На- Например, замена переменных хх и хг в задаче (8.5.1) по формулам *i = 7 + ег\ х2 = 2 + ?\ где z — новый вектор, приводит к следующей задаче:
408 Глава 8 8 У ///////////////////////////////////////// Фиг. 8.5.1. Графическое изображение области определения для задачи (8.5.1). минимизировать / (z) = (еа« + Ие2» + е2^)'Л + [In (8 + e*')ez>]2, при ограничении gt (z) = 11 — 14е2< — е2г» — 4ег* — е1^ > 0, где / (z) определена теперь для любого вектора z. В результате преобразования (8.5.1) в (8.5.2) формулировка задачи оказывается полностью корректной и допускает применение алгоритма сколь- скользящего допуска в его обычном виде. После того как будет найдено оптимальное решение z* задачи (8.5.2), значение х* нетрудно вы- вычислить, используя соотношения, с помощью которых производи- производилась замена переменных. Когда в некоторых зонах области изменения х не определена лишь целевая функция, для каждого члена в выражении для / (х), приводящего к неопределенности в указанном выше смысле, необ- необходимо ввести вспомогательное ограничение в виде неравенства gp+i (х): Fp+t (x) - Ф(*> >0, i = р + 1, ... , р + q, (8.5.3) где Fp+i (к) — i-я компонента в структуре целевой функции, за счет которой / (х) теряет определенность в отдельных зонах Еп, a q—¦
Метод скользящего допуска 40Э число таких компонент в выражении для / (х). Дополнительные ограничения вида (8.5.3) добавляются к р исходным ограничениям задачи нелинейного программирования, и «уточненная» задача решается обычным способом. Путем вычитания Ф(*( из Fp+t (х) (i = р + 1, ..., р 4- Я) мы исключаем из рассмотрения те векторы х, для которых Fp+i (х) < 0 в случаях, когда выполняется усло- условие (8.1.6). Таким образом мы добиваемся того, чтобы неравен- неравенство (8.1.6) выполнялось лишь при условии Fp+i (х) > 0 (i— = Р + 1 Р +<?)• Переходя к более подробному рассмотрению, допустим вначале, что одна из компонент Fp+i (x) в текущей точке х такая, что —Fp+i (х) > 0, т. е. Fp+i (х) < 0. Поскольку по определению Ф№> > 0, из (8.5.3) следует, что gp+l (х) = Fp+i (х) — Ф(^<;0, т. е. в теку- текущей точке х функция gp+i (x) принимает отрицательное значение. Предположим, кроме того, что для всех остальных ограничений Л,-(х) = 0(i= 1, ..., ш), Ых)>° (t = m+l p+i— I, p + + » + 1 Р + Ф- Тогда будем иметь Т (х) = + [(— Fp+i (x) — _ ф№)J]'/г = Fp+i (х) + Ф№)- Поскольку Т (х) > Ф№), условие (8.1.6) не выполняется, и, следовательно, необходимо минимизировать Т (х) до тех пор, пока не будет выполняться условие Fp+i (x) > 0. В силу определения Т (х) очевидно, что для любой компоненты Fp+u удовлетворяющей условию 0 < Fp+i (x) < Ф(й, неравенство (8.1.6) выполняется даже в том случае, когда gp+i (x) < 0. При Fp+i (x) > Ф(И имеет место неравенство gp+i (x) > 0, что никак не сказывается на поведении Т (х). Аналогичные рассуждения спра- справедливы и тогда, когда в точке х оказываются нарушенными сразу несколько ограничений в виде равенств и/или в виде неравенств, так как в структуру Т (х) входят все нарушаемые ограничения. Добавление к исходным ограничениям общей задачи нелинейного программирования (8.0.1) ограничений (8.5.3) приводит к следую- следующему выражению для Т (х): fm p+q -j»/2 f j Sft?W+ >J ВД(х) . (8.5.4) Формула (8.1.5) используется при определении Т (х) в тех слу- случаях, когда все функции, фигурирующие в формулировке задачи (8.0.1), определены для всех значений х 6 Е"; в случае же, когда некоторые из упомянутых выше функций зонально не определены (т. е. определены не для всех х С Еп), следует использовать фор- формулу (8.5.4). Чтобы проиллюстрировать описанную выше процедуру, преоб- преобразуем задачу (8.5.1) в следующую задачу: минимизировать / (х) = (х\ 4- х\ — 4х2 — 45Oг 4- [In хх (хг — 2)f (8.5.5)
410 Глава 8 при ограничениях ?1(х) = б4-л:2_л|>0, g2 (х) = х\ + х\ — 4х2 — 45 — Ф№) > О, ёГ3(х) = х1-Ф№>0, Я4(х) = ^2-2-Ф№) Функции gf( (x) (i =1, 2, 3, 4) определены для любого х ? Еп; однако, поскольку вычисление / (х) возможно лишь при выполне- выполнении неравенства (8.1.6), отрицательные значения (х\ -\- х\ — 4д:2 — — 45), *i и {хг — 2) оказываются недопустимыми. Путем исполь- использования рассмотренной вычислительной схемы были успешно ре- решены, в частности, задачи 4, 9 и 17 из приложения А. Следует, однако, еще раз отметить, что описанная выше про- процедура оказывается неприменимой в случае, когда зонально (т. е. для некоторых х ? Е") не определены одновременно и целе- целевая функция, и функции, задающие ограничения задачи. ЛИТЕРАТУРА 1. Paviani D., Himmelblau D. M., Operations Res., 17 A969). 2. Wilde D. J., Optimum Seeking Methods, Prentice-Hall, Inc., Englewood Cliffs, N. J., 1962, p. 32.
Глава 9 ОЦЕНКА ЭФФЕКТИВНОСТИ МЕТОДОВ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ПРИ НАЛИЧИИ ОГРАНИЧЕНИЙ Целесообразность выбора того или иного из рассмотренных вы- выше алгоритмов в целях его практического использования опре- определяется эффективностью этого алгоритма при решении конкрет- конкретного класса задач нелинейного программирования с помощью ЭВМ. Как и следовало ожидать, ни один из алгоритмов нелинейного программирования, рассмотрению которых посвящены гл. 6—8, не может считаться наилучшим по сравнению с другими алгорит- алгоритмами при решении любых задач нелинейного программирования и при любых обстоятельствах. Прежде чем перейти к оцениванию эффективности конкретных алгоритмов нелинейного программи- программирования при наличии ограничений, рассмотрим вопрос относитель- относительно критериев, которые следует иметь при этом в виду, После обсуждения используемых критериев эффективности приводятся результаты сравнительного анализа различных алгоритмов. Нако- Наконец, излагаются некоторые общие соображения и выводы, которые могут послужить своего рода ориентиром для тех, кто намерен применять алгоритмы нелинейного программирования на прак- практике. 9.1. КРИТЕРИИ, ИСПОЛЬЗУЕМЫЕ ПРИ ОЦЕНКЕ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ На вопрос о том, какой из критериев оценки нелинейного программирования наилучший, можно дать лишь «комплексный» (т. е. развернутый) ответ. Ответ на этот вопрос в значительной степени зависит от того, к какому классу (или типу) относится рассматриваемая задача, от глубины предварительного анализа структурных особенностей задачи и от осведомленности пользо- пользователя относительно конфигурации и размеров допустимой об- области, ассоциированной с решаемой задачей. К числу важных критериев, используемых при оценивании «качества» того или ино- иного алгоритма, относятся следующие: 1) время, необходимое для реализации серии вычислительных процедур (число операций и время их выполнения);
412 Глава 9 2) степень сложности задачи (размерность, число ограниче- ограничений в виде неравенств, число ограничений в виде равенств); 3) точность решения по отношению к оптимальному значению х* и (или) по отношению к / (х*), /i(x*), g (х*) и v/ (x*); 4) простота практического использования алгоритма (время, необходимое для ввода исходных данных и записи функций в па- память ЭВМ); 5) простота машинной программы, реализующей рассматри- рассматриваемый алгоритм. Наконец, важное требование, предъявляемое к алгоритму не- нелинейного программирования, заключается в том, чтобы 6) он позволял решать задачи, которые представляют практиче- практический интерес (нельзя считать, что какой-либо из алгоритмов окажет- окажется эффективным при решении любой задачи, и требовать, чтобы он решал «патологические» задачи, т. е. задачи, которые специально «подобраны», чтобы создать трудности для данного алгоритма). Следует отметить, что указанные выше критерии носят гло- глобальный, а не «локальный» характер в том смысле, что они отно- относятся ко всем этапам процесса оптимизации (начиная с первого и кончая последним), а не к каким-либо отдельным этапам опти- оптимизационного поиска. Наиболее широко используемыми критериями при оценивании относительной эффективности машинных программ, предназна- предназначенных для решения задач нелинейного программирования, являют- являются количество вычислений значений функций, требуемое для полу- получения оптимального решения той или иной тестовой задачи с за- заданной степенью точности, и (или) затраты машинного времени, сопряженные с решением рассматриваемой тестовой задачи. Коли- Количество вычислений значений функций показывает, сколько раз воз- возникает необходимость в определении числовых значений целевой функции и (или) той или иной функции из совокупности функций, задающих ограничения задачи (а также числовых значений произ- производных упомянутых выше функций), прежде чем будет найдено решение рассматриваемой задачи нелинейного программирования. Этот критерий является менее значимым в тех случаях, когда за- задача содержит большое число ограничений при сравнительно не- небольшом числе переменных, так как временные затраты, требуе- требуемые для определения точки, в которой следует вычислить значения / (х) и (или) ht (x) и gt (x), нередко в несколько раз превышают временные затраты, связанные с нахождением самих значений ука- указанных выше функций. Таким образом, машинное время, требуемое для выполнения последовательности процедур оптимизации, является наиболее часто используемым критерием, позволяющим сравнивать эффек- эффективность различных алгоритмов нелинейного программирования. Вопрос о затратах машинного времени при использовании про-
Нелинейное программирование при наличии ограничений 413 грамм, реализующих различные вычислительные алгоритмы, ис- исследовался Стоккером Ш, Хольцманом [2] и Колвиллом [3]. Поскольку разные ЭВМ имеют различные характеристики и неоди- неодинаковое быстродействие, разработаны стандартные таймер-про- таймер-программы для перерасчета временных затрат при переходе от одного типа ЭВМ к другому. В результате можно проводить сравнение значений времени по единой (приведенной) шкале, которую Таблица 9.1.1 Машинное время, требуемое для реализации стандартной таймер-программы Автор Абади Боас Колвилл Дэвис Кефарт Мак-Кормик Хольцман Стоккер Тип ЭВМ IBM 7094 CDC 6400 IBM 360/50 English Electric KDF9 IBM 7094 IBM 360/50 CDC 6600 Программа МОПГ МОПГ (модифициро- (модифицированный) Оптим ПОП II Разн. ОГМОП МПБМ Время, с 63,0 20,5 119,7 168,0 362,0 128,2 599,0 140,0 22,0 называют шкалой стандартизированного машинного времени. Типичная стандартная таймер-программа, составленная на язы- языке ФОРТРАН Колвиллом (см. приложение Г), сводится к прос- простому десятикратному повторению операции инверсии по отношению к матрице размерности 40 X 40. В табл. 9.1.1 приведены вре- временные затраты по реализации таймер-программы; указанные временные характеристики для различных типов ЭВМ заимство- заимствованы у различных авторов (Колвилл, Дэвис, Стоккер и др.). Необходимо, однако, подчеркнуть, что сравнительные оценки стандартизированных временных затрат нельзя считать достаточ- достаточно точными показателями при оценивании эффективности различ- различных машинных программ. Оказывается, что при решении одной и той же тестовой задачи на различных ЭВМ в оценках стандарти- стандартизированных временных затрат имеют место значительные расхож- расхождения. Для иллюстрации в табл. 9.1.2 дано сравнение стандар- стандартизированных временных затрат при решении тестовых задач 10, 11, 15 и 19 из приложения А (с помощью метода МПБМ); со- содержащиеся в этой таблице данные заимствованы у Колвилла и Стоккера (оба автора пользовались одной и той же программой). Данные, приведенные в табл. 9.1.2, показывают, что сравнение
414 Глава 9 эффективности машинных программ на основе оценок затрат мг- шинного времени по приведенной (стандартизированной) шкал^ вводит в некоторой степени в заблуждение. «Корректной» стан- стандартной таймер-программой могла бы быть лишь такая программа, в которой принимались бы в расчет полиморфные факторы вычис- вычислительной логики, структурные и емкостные характеристики па- памяти ЭВМ, конфигурационные и временные характеристики вычис- вычислительного комплекса (центрального процессора и периферийных устройств), объем распечатываемой информации и т. д., имею- Таблица 9.1.2 Сравнение стандартизированных временных затрат при решении задач 10, 11, 15 и 19 приложения А Метод Колвилла Стоккера Номер задачи 10 0,0162 0,127 И 0,0282 0,048 15 0,1511 0,253 19 0,238 0,719 щие место в различных типах ЭВМ и разных видах программного обеспечения. Чистое машинное время1', требуемое для решений той или иной задачи, существенно зависит от того, с какой точностью нуж- нужно определить оптимальное решение, а также от величины допуска при выполнении ограничивающих условий на этапах, непосред- непосредственно предшествующих завершению оптимизационного поиска. Чтобы критерий, на основании которого производится сравне- сравнение эффективности используемых при программировании алго- алгоритмов, «работал» однозначно, при решении тестовой задачи необ- необходимо стремиться к достижению одной и той же степени точности. Вообще говоря, не исключено, что машинная программа, поз- позволяющая решить задачу быстро, но в грубом приближении, окажется предпочтительнее какой-либо другой машинной про- программы, с помощью которой та же самая задача решается гораздо дольше, хотя и с большей точностью определения оптимальных значений х и / (х) и (или) выполнения ограничивающих условий ht (х) = 0 и g( (х) >• 0. К сожалению, критерии останова, исполь- используемые в разных программах, различны, и, следовательно, точ- точность решения одной и той же задачи с помощью разных программ также оказывается неодинаковой. В разд. 9.3 вместо попытки унифицировать критерии завершения работы программы (унифи- ^ «Чистое» машинное время не включает время на подготовку, считывание и распечатку, время задержки данных в системе разделения времени в периферий- периферийном контуре и т. п.
Нелинейное программирование Ари наличии ограничений 415 кация такого рода сильно отразилась бы на всей схеме вычисли- вычислительного процесса) проводится сравнение программ другим спо- способом (по методике, предложенной автором данной книги). Другим важным критерием, используемым при сравнении ма- машинных программ, является показатель, характеризующий сте- степень простоты (или сложности) подготовки задачи к решению поль- пользователем. Хотя этот аспект анализа и носит в известной степени качественный характер, два существенных фактора, влияющих на решение вопроса о целесообразности использования той или иной программы, требуют особого рассмотрения. Один из них — это фактор, обусловленный возможностью возникновения ошибок в процессе подготовки данных человеком («вручную»). Програм- Программы, требующие выполнения громоздких и трудных подготовитель- подготовительных операций, более подвержены влиянию ошибок человека, не- нежели программы, подготовительные операции для которых просты. Другой фактор является чисто экономическим. Затраты, свя- связанные с решением задачи математического программирования, складываются из затрат на подготовительные операции и стоимости машинного времени, расходуемого на решение задачи. Таким образом, решение задачи с использованием менее эффективной программы, которая, однако, не требует больших трудозатрат на подготови- подготовительном этапе, может обойтись дешевле, нежели решение той же самой задачи с помощью высокоэффективной программы, требую- требующей большого объема подготовительных работ. Такого рода эко- экономические расчеты с трудом поддаются сравнению, поскольку упомянутые выше расходы сильно варьируются в зависимости от конкретной ситуации; тем не менее экономические соображения представляются весьма существенными. Некоторые машинные программы содержат большое число па- параметров, удачный выбор которых повышает эффективность при- применяемого алгоритма. Все упомянутые выше разработчики про- программ предлагают придавать входящим в программы параметрам и константам их средние значения; однако при этом максимально возможная эффективность программы при решении той или иной конкретной задачи может оказаться недостигнутой. В некото- некоторых программах содержится настолько большое число перемен- переменных параметров, что в итоге определяющий программу вычисли- вычислительный алгоритм можно рассматривать как функцию некото- некоторого набора параметров. Если программа оказывается малоэффек- малоэффективной при каком-либо конкретном наборе значений параметров, ее можно подправить путем перехода к другому набору значений этих параметров. Наличием чрезвычайно большого числа подоб- подобных параметров особенно отличается ПОП II. Необходимость учета всех упомянутых выше факторов в опре- определенной степени затрудняет интерпретацию результатов оцени- оценивания эффективности алгоритмов путем решения тестовых задач.
416 Глава 9 В частности, оказывается, что эффективность того или иного ал- алгоритма, оцениваемая на основе требуемого машинного времени при решении тестовых задач (и в несколько меньшей степени — оценка, основанная на количестве тестовых задач, решенных с помощью рассматриваемого алгоритма), является в значительно большей степени качественной, чем это представляется на первый взгляд. Учитывая изложенные выше соображения, проведем анализ эффективности различных алгоритмов нелинейного программиро- программирования, исходя из следующих критериев. Первый и наиболее важ- важный критерий сводится к ответу на вопрос: удается ли вообще ре- решить с помощью рассматриваемой программы поставленную зада- задачу? Этот критерий выбран потому, что для пользователя наиболее ценным качеством машинной программы является ее способность обеспечивать решение самых разнообразных задач нелинейного программирования. Вторым критерием является требуемое количество машинного времени. Наконец, используется и третий критерий, характеризующий трудоемкость подготовительных про- процедур, осуществляемых вручную на этапе, предшествующем реа- реализации той или иной программы на ЭВМ. Этот критерий приоб- приобретает весьма важное значение при сравнении временных затрат на подготовительном этапе применительно к схеме оптимизации мето- методами прямого поиска с соответствующими временными затратами в случае, когда используются методы, требующие знания анали- аналитического вида частных производных. 9.2. СРАВНЕНИЕ НЕКОТОРЫХ АЛГОРИТМОВ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ПРИ НАЛИЧИИ ОГРАНИЧЕНИИ: ДВУМЕРНЫЕ ЗАДАЧИ Чтобы проиллюстрировать поведение траектории поиска эк- экстремума задачи нелинейного программирования при наличии ограничений в двумерном пространстве, с помощью множествен- множественной регрессии была построена целевая функция специальной струк- структуры (табл. 9.2.1). Эта функция в заданном интервале значений двух независимых переменных имеет один пик и одну седловую точку. Рассмотрен ряд конкретных задач, каждая из которых сво- сводится к максимизации целевой функции при наличии некоторого множества ограничений-неравенств, приведенных в табл. 9.2.2. Пять таких задач, конкретизированных путем выбора под- подмножества ограничений-неравенств, приведены в табл. 9.2.3, а целевая функция, ограничения и соответствующие траектории, исходящие из недопустимой начальной точки х@) = [95 10]г, изоб-
«—a—г ПОП U ч __ _^_ алгоритм »- А1/Шч(ГЗб7) алгоригтын Розенброка алгоритм скользящего МОПГ Фиг. 9.2.1. Задача 1. _*_* НЛП глго, Poaet, Фиг. 9.2.2. Задача 2, . алгоритм Рока МОПГ алгоритм сколищего двпдсюа
418 Глава 9 ражены графически на фиг. 9.2.1—9.2.5. Пик целевой функ- функции находится в точке с координатами х1 = 81,154841 и х2 = = 69,135588; в этой точке целевая функция принимает значение 61,9059345. Условный максимум находится в точке с координата- координатами х1 = 75,000000 и х2 — 65,000000; в этой точке значение це- целевой функции равняется 58,9034360. Таблица 9.2.1 Целевая функция t (x) = В, + В, + B9 (*!>' (ж,) + В„ Ctj» (ж (х,) 4- В, (л;,J -J- Bt (x,K - 4- В10 (*,)< (*2) 4- Ви (лг2 -|- В20{ехр [0,0005 (xj (х2)]} в2 = Вз = в4 = в,6 = в7 = в8 = fi8 = 6,0 = 75,1963666677 — 3,8112755343 0,1269366345 — 0,0020567665 0,0000103450 -6,8306567613 0,0302344793 — 0,0012813448 0,0000352559 — 0,0000002266 ?В,(х J +В W (х. J» 4- в, (х$ - 12 (х2у 4 в,„ г)' + В18 (л,) Ви = BJ3 = В14 = вы = fin = В,8 = вго = V В, (х.) (х2) + В, (Xl)* Ы + 4 . р КО 1 . (¦^а) г -4 1 „ -4- I 0 1 W + в,, (*,)'(*,)' + 0,2564581253 — 0,0034604030 0,0000135139 -28,1064434908 — 0,0000052375 — 0,0000000063 0,0000000007 0,0003405462 — 0,0000016638 — 2,8673112392 Задача 3 (фиг. 9.2.3) позволяет наглядно представить ряд ти- типичных характеристик машинных программ, к обсуждению кото- которых мы и переходим. 1. Алгоритм скользящего допуска. Каждый из векторов, изоб- изображенных на фиг. 9.2.3, соединяет следующие одна за другой наи- наилучшие точки, генерируемые в процессе оптимизационного поис- поиска. Напомним, что в методе скользящего допуска используется симплекс с (л + 1) вершинами, где п — число независимых пере- переменных. Следовательно, на каждом этапе поиска наилучшей точ- точкой является та вершина рассматриваемого на данном этапе сим- симплекса, в которой целевая функция принимает наибольшее (по от- отношению к остальным вершинам) значение. Поскольку начальная точка не является допустимой, програм- программа реализует поиск новой точки, удовлетворяющей исходному критерию допуска. Этот шаг поиска изображен графически пер- первым вектором, проведенным из точки с координатами хх = 90,0 и х2 — 10,0 в точку с координатами хг = 68,787 и х2 = 31,213. Следует отметить, что поиск точки, удовлетворяющей критерию допуска, реализуется по наикратчайшему пути вблизи границы допустимой области. Тот факт, что траектория поиска, кроме того,
70 г 10 20 30 40 50 60 70 80 90 x, ——•поп it _^ ^ алгоритм •" МПБМ(Г067) алгоритм Розенброка алгоритм скользящего опг" Фиг. 9.2.3. Задача 3. (Jo) 10 20 SO 40 50 60 70 80 90 х, -~—> нлп x МОПГ . алгоритм скользящею допуска г, Q О А Чапа
420 Глава 9 Таблица 9.2.2 Ограничения-неравенства, используемые для построения двумерных моделей при заданной целевой функции (см. табл. 9.2.1) gi (х): Ч > 0 s (x)' 75 0 я. "> О g6(x): дгЛ- 700,0 >0 sfi IXI" I O,\J —~— л /т /vV П1^ П v „ /v\. v С Л s8 v /• 2 ^~^ of\j gB (x): (*2 — 50,0K - 5,0 (>;i — 55,0) > 0 ft „(ж* at,-54,0>0 30,0 gn (x): -2QQ- (л:2 — 45,0) — (x, — 45,0) > О 40 0 gn W: -«i — 35,0 - -^ (Xg _ 40,0) >0 перпендикулярна линиям уровней целевой функции, является простой случайностью. Четыре последующих шага в процессе оптимизационного поис- поиска имеют длину, превышающую линейный размер допустимой об- области, так как длина ребра первоначального симплекса прини- принималась равной пяти единицам. Если бы размеры исходного сим- симплекса были меньше указанных выше, траектория поиска про- проходила бы ближе к границе, определяемой ограничением 9, и, следовательно, затраты машинного времени были бы более зна- значительными. Пять первых шагов оптимизационного поиска позволяют определить точку вблизи оптимума; однако окончательная сходи- Таблица 9.2.3 Варианты двумерных задач нелинейного программирования при наличии ограничений Номер задачи 1 2 3 4 5 Номер фигуры 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 Номера ограничений 1, 2, 3, 4, 5 5, 6, 7, 8 5, 6, 7, 8, 9 5, 6, 7, 8, 9, 10 5, 6, 7, 8, 9, 11, 12
Нелинейное программирование при наличии ограничений 421 мость к оптимальному решению достигается лишь в ходе реали- реализации дополнительных 39 итерационных этапов, что объясняется постепенным уменьшением размеров симплекса на завершаю- завершающих стадиях вычислительного процесса. (Чтобы избежать чрез- чрезмерной громоздкости графического изображения, на фиг, 9.2.3 70 60 * во SO х, • * */7ОП // -* — — НЛП » МЛБП . алгоритм /ЪэеЩгека тл/v,*» алгоритм скользящего допуска Фиг. 9.2.5. Задача 5. эти 39 шагов, работы алгоритма не представлены.) Вектор х осцил- осциллирует в окрестности точки, лежащей на расстоянии около пяти единиц от оптимума; процесс осцилляции продолжается до тех пор, пока размеры симплекса не уменьшатся до такой степени, когда станет возможным получение дополнительных минимизирующих поправок к значению целевой функции (т. е. дальнейшее переме- перемещение в направлении к искомой оптимальной точке). 2. Алгоритм НЛП. Каждый из векторов, формирующих траек- траекторию алгоритма, соединяет следующие одна за другой точки, получаемые в ходе оптимизационного поиска. На пяти первых шагах от исходной точки реализуются перемещения по алгорит- алгоритму наискорейшего спуска, поскольку получаемые при этом точ- точки лежат далеко за пределами допустимой области. Шестой шаг, предпринимаемый из точки, лежащей вне допустимой области,
422 Глава 9 переводит траекторию поиска внутрь допустимой области и осу- осуществляется по алгоритму линейного программирования. Все по- последующие шаги реализуются методом линейного программиро- программирования. Перемещения с помощью линейного программирования производятся вдоль ограничивающих поверхностей (отметим, в частности, что последние шаги реализуются вдоль ограничений 9 и 7). 3. МПБМ (вариант, относящийся к 1967 г.). При использова- использовании МПБМ вначале осуществляется поиск внутренней точки; схе- схема поиска выглядит следующим образом. При заданной началь- начальной точке нарушаются ограничения 7 и 8; поэтому с помощью МПБМ прежде всего минимизируется взятая со знаком минус фун- функция, задающая ограничения 7 (при этом должны удовлетворяться ограничивающие условия 5, 6 и 9), после чего минимизируется взятая со знаком минус функция, задающая ограничение 8 (при этом должны удовлетворяться ограничивающие условия 5, 6, 7 и 9). В результате получается внутренняя точка, лежащая в окрестности точки с координатами Ху = 31 и х2 — 48. Таким обра- образом, первые два вектора, соединяющие первоначальную недопус- недопустимую стартовую точку с внутренней (допустимой) точкой, полу- получаются в результате большого числа итерационных этапов (на рисунке микроструктура итерационного процесса не представ- представлена). Завершающая часть оптимизационного поиска сводится к ре- решению девяти сопутствующих подзадач (см. описание МПБМ в гл. 8), в результате чего обеспечивается сходимость к условному экстремуму, являющемуся решением исходной задачи. Заключи- Заключительные шаги поиска для удобства показаны на фиг. 9.2.3 в сгруп- сгруппированном виде. При использовании варианта МПБМ, отно- относящегося к 1967 г., вид траектории оптимизационного поиска за- зависит от порядка рассмотрения ограничений, тогда как в варианте МПБМ, относящемся к 1970 г., такая зависимость не имеет мес- места, так как алгоритм минимизирует сразу сумму всех функций, ассоциированных с нарушенными ограничениями. Интересно от- отметить, что МПБМ-1970 в случае задачи 1 заканчивает работу воз- возле седловой точки; попытки применить данный метод для решения других задач оказались безуспешными. 4. Алгоритм Розенброка. За исключением первого вектора тра- траектории поиска, который просто соединяет исходную точку с внут- внутренней (допустимой) точкой решаемой задачи, каждый из после- последующих векторов, получаемых с помощью алгоритма Розенброка, ассоциируется с новой минимизирующей поправкой к пред- предшествующему значению целевой функции. Машинная программа обеспечивает поиск допустимой начальной точки путем максими- максимизации суммы значений функций, задающих нарушенные ограни- ограничения (в результате последовательной минимизации эта сумма
Нелинейное программирование при наличии ограничений 423 обращается в нуль); другими словами, все ограничивающие усло- условия оказываются выполненными. Для простоты на фиг. 9. 2. 3 показан лишь вектор, соединяющий исходную точку с первой из допустимых точек рассматриваемой задачи. Поскольку в направ- направлении поиска допустимой точки методом Розенброка длина пер- первоначального шага полагается равной одной десятой исходного значения каждой из независимых переменных, длина каждого из шагов на начальной стадии поиска составляла девять единиц в направлении xt и одну единицу в направлении х2. Так как при этом значения функций, задающих нарушенные ограничения, улуч- улучшались, поиск продолжался почти в одном и том же направлении (длина каждого из шагов в направлении xt значительно превыша- превышала длину каждого из шагов в направлении х2). Дальнейший поиск оптимальной точки при старте из первой допустимой точки включал дополнительно 136 этапов, по за- завершении которых вычислительный процесс заканчивался. Точ- Точка, полученная в результате реализации первых шести этапов, оказалась весьма близкой к условно-оптимальной точке хх= = [74,72669 64,99136]г. На фиг. 9.2.3 микроструктура работы алгорит- алгоритма на протяжении 130 этапов не представлена. (Интересно отме- отметить, что алгоритм Розенброка при решении задач 1, 2 и 5 при- привел к седловой точке, а в условиях задачи 4 оказался не в состо- состоянии определить допустимую точку.) 5. ПОП II. Наиболее примечательной особенностью ПОП II яв- является то, что оптимизационный поиск осуществляется при малой длине шага. Линейно программирующая стадия ПОП II генери- генерировала траекторию поиска, проходящую почти вдоль ограниче- ограничений 9 и 7. (На фиг. 9.2.3 точки, попадающие на ограничивающую поверхность 9, не показаны, так как они расположены слишком близко друг от друга.) 6. Алгоритм ОГМОП (вариант, разработанный фирмой «Юньон Карбайд»). Машинная программа, реализующая этот алгоритм, оказалась не в состоянии решить задачу 3. При решении зада- задачи 1 была найдена точка х = [13,8 50,6]г, лежащая неподалеку от седловой точки. В процессе решения задач 2—5 на одной из стадий оптимизационного поиска после выполнения операции про- проектирования частные производные функций, задающих ограниче- ограничения, оказывались равными нулю. 7. Алгоритм МОПГ. Метод обобщенного приведенного градиен- градиента относится к числу методов, индуцирующих траекторию поис- поиска, проходящую весьма близко к ограничивающей поверхности, которая определяется ограничением в виде неравенства. В силу этого обстоятельства при решении задачи 3 «останов» имеет место не при достижении глобального оптимума, а при «попадании» в локальный оптимум, лежащий в окрестности точки с координа- координатами хх = 12 и х2 = 53. Следует отметить, что результат поиска
424 Глава 9 зависит от стартовой точки. При решении задачи 4 глобальный оптимум был достигнут при заданной стартовой точке по той при- причине, что локальный (неглобальный) оптимум и седловая точка задачи оказались вне допустимой области из-за наличия ограни- ограничения 10. 9.3. СРАВНЕНИЕ НЕКОТОРЫХ АЛГОРИТМОВ ОПТИМИЗАЦИИ ПРИ НАЛИЧИИ ОГРАНИЧЕНИЙ В СЛУЧАЕ БОЛЕЕ СЛОЖНЫХ ЗАДАЧ Для оценки эффективности некоторых алгоритмов нелинейно- нелинейного программирования при наличии ограничений как с вычисли- вычислительной, так и с других точек зрения Стоккер [1] применял эти алгоритмы при решении тестовых задач на ЭВМ CDC 6600. Кол- вилл [3] исследовал еще большее (по сравнению со Стоккером) чис- Ограничения в виде нера венств Нелинейные Линейные Отсутствуют нелинейные А1 А2 A3 Ограничения в виде равенств линейные В1 В2 С2 Таблица 9.3.1 отсутствуют С1 D Е ло алгоритмов, хотя и приводит меньше подробностей относительно их достоинств. В дополнение к результатам Стоккера и Колвилла приведем в данном разделе результаты, которые не были опуб- опубликованы. Большинство тестовых задач, содержащихся в при- приложении А, заимствовано из опубликованных источников; осталь- остальные тестовые задачи приложения А подготовлены нами специаль- специально. Некоторые из этих задач можно считать типичными задачами нелинейного программирования в том смысле, что они (или их аналоги) часто встречаются при решении конкретных практиче- практических проблем. Эти тестовые задачи представляют различные груп- группы (классы) задач нелинейного программирования, т. е. это зада- задачи с различными типами входящих в них функций, с разными структурными характеристиками, с неодинаковой степенью слож- сложности и различным количеством независимых переменных. Практически во всех рассматриваемых задачах целевые фун- функции нелинейны. Системы же ограничений варьируются: наибо- наиболее тривиальными являются системы ограничений, состоящие из одних лишь линейных ограничений в виде неравенств, а наи- наиболее полными (в структурно-аналитическом отношении) — си-
Таблица 9.3.2 Классификация машинных программ, предложенная Колвиллом Методы прямого поиска (МПП) Оптим (фирма «Мобил Ойл») Последовательный поиск (фирма «Гласе и Купер») Комбинированный поиск Розенброка Клингмана и Химмельблау Симплексный поиск (фирма «Шелл Дивелопмент») Проб Метод скользящего дЬпуска2) Мелкошаговые градиентные ме- методы (МГМ) ПОП/360 (IBM) Рикошет (Гринштадт) Программа «Карбайд» ОГМОП Метод аппроксимирующего программирования Подъем с уклонением (фир- (фирма «Шелл-Дивелопмент»). НЛП2> Крупношаговые градиентные ме- методы (КГМ) МОПГ3) Метод допустимых направ- направлений (IBM) Сочетание метода Дэвидона с МБП Выпуклое программирование (IBM, Франция) Метод сопряженных гради- градиентов (Голдфарб) Проективный метод с пере- переменной метрикой (My ртагJ* Метод проекции градиента («Шелл Дивелопмент») Улучшенный метод проекции градиента (институт Пас- Паскаля) Модифицированный метод приведенного градиента (институт Паскаля) Модифицированный метод допустимых направлений Методы вторых производных (МВП) (IBM, ФРГ) Гаусса—Ньютона — Кзролла МПБМ Солвера Производные и форма нх представления Отсутствуют » » » Аналитическая запись Отсутствуют » Числовые значения Аналитическая запись Числовые значения Аналитическая запись Числовые значения » Аналитическая запись Аналитическая запись То же » » » » » » » » » Аналитическая запись или числовые значения Аналитическая запись Ссылка на раздел (подраздел) 4.5.2 б1) 4.5.1 7.1.2 J. Accos. Computer Math., 11,400A964) К 1) О ' 8.1 6.1.2 J. SI AM Appl. Math., 14,3A966) 6.3.2 6.1.1 6.2 6.5 6.4 7.1.3 6.3.3 6.3.3 6.3.1 6.4 5.3 7.2 6.1.4 ') Ссылки на опубликованные работы см. в конце указанной главы. 2) В обзов Колвнлла A9S8 г.) ие включен.
426 Глава 9 стемы, содержащие нелинейные ограничения как в виде равенств, так и в виде неравенств. В табл. 9.3.1 представлена своего рода классификационная схема, согласно которой задачи нелинейного программирования в зависимости от типа системы ограничений делятся на пять основных классов. Последовательность А, В, С, D и Е (и индексы подклассов 1, 2 и 3) соответствует порядку умень- уменьшения сложности задачи, хотя и не исключено, что задача с един- единственным нелинейным ограничением в виде равенства (класс А) окажется менее сложной, нежели задача, содержащая линейные ограничения в виде равенств и нелинейные ограничения в виде неравенств (класс В). Таблица 9.3.3 Среднее стандартизированное время при использовании программ классов А, В, С, D и Е1) Номер задачи (приложение А) 15 19 7 11 14 18 10 8 Класс А2 В2 С1 С1 С1 С1 D Е Категория (тнп) ^ мпп ' 0,179 — 0,089 0,295 — — 0,384 0,026 мгм 0,060 0,305 0,054 0,017 0,326 0,055 0,049 кгм 0,049 0,148 0,033 0,023 — 0,220 0,027 0,025 мвп 0,238 — 0,019 — 0,151 0,023 0,025 ') Заимствовано у Колвнлла A938). 2> См. табл. 9.3.2. Колвилл собрал данные об эффективности более тридцати различ- различных машинных программ, предназначенных для решения задач нелинейного программирования; он проанализировал «работу» этих программ для восьми стандартных тестовых задач, а именно задач 7, 8, 10, 11, 14, 15, 18 и 19, приведенных в приложе- приложении А. Анализ проводился методом «коллективных усилий», пред- предполагающим участие в испытаниях программ нескольких специ- специалистов. Каждый из участников испытаний должен был решить совокупность тестовых задач, выбирая по своему усмотрению метод решения, машинную программу и типЗВМ. Колвилл сгруп- сгруппировал все программы таким образом, что получилось четыре больших класса; классификация Колвилла приведена в табл. 9.3.2. Эффективность каждого из этих классов можно оценить с единой точки зрения, взяв за основу среднее стандартизированное время, требуемое для решения каждой из тестовых задач (табл. 9.3.3).
Нелинейное программирование при наличии ограничений 427 Поскольку многие из машинных программ оказались слишком неэффективными при решении тех или иных задач и не учитывался такой показатель, как число случаев, когда задача в установлен- установленное время не была решена, а условия распечатки и останова были в разных испытаниях различными (не говоря уже о том, что име- имели место и другие трудности в установлении оценочных показа- показателей "), среднее стандартизированное время представляет собой лишь грубую характеристику эффективности каждой из групп алгоритмов. В работе Колвилла отсутствуют данные о среднем стандартизированием времени, которое тратится на решение за- задачи 14, так как в этом случае имеет место большое число локаль- локальных оптимумов. Кроме того, Кдлвилл не приводит данных отно- относительно того, удается ли решить методом прямого поиска задачи 18 и 19. Как и следовало ожидать (см. табл. 9.3.3), метод пря- прямого поиска (МПП) оказывается наиболее медленно действующим, а крупношаговые градиентные методы (КГМ) и методы «вторых произ- производных» (МВП) — наиболее быстродействующими. Некоторое уди- удивление вызывает тот факт, что мелкошаговые градиентные методы (МГМ) работают так же быстро, как и КГМ и МВП. Время, расходуемое на выполнение подготовительных опера- операций, представляет собой другой существенный критерий эффек- эффективности машинной программы, предназначенной для решения задач нелинейного программирования. Соответствующие данные для типов программ, перечисленных в табл. 9.3.2, приведены в табл. 9.3.4. Указанные в табл. 9.3.4 временные затраты на выполнение подготовительных операций в известной степени оце- оценены по минимуму и не включают затрат времени, требуемых для ознакомления с самой программой (т. е. предполагается, что поль- пользователю структура программы известна), а также возможные по- потери времени в тех случаях, когда подготовительные операции приходится выполнять заново из-за неполадок в работе программы при первых ее «испытаниях». Временные затраты, связанные с выполнением подготовительных операций пользователями, кото- которые не знакомы с МПБМ, ПОП II и алгоритмом НЛП, оказывают- оказываются в 2—5 раз выше соответствующих оценочных данных, приве- приведенных в табл. 9.3.4. Представляется маловероятным, чтобы оценки временных затрат для методов, основанных на исполь- использовании аналитической записи вторых производных (например, МПБМ), оказались справедливыми и для других задач, посколь- поскольку, например, в задаче, с девятью нелинейными ограничениями (при десяти переменных) требовалось бы вычислить (причем без ошибок) 100 первых частных производных и 550 вторых частных производных. За исключением тех случаев, когда большинство частных производных равно нулю или является константами, на ''См. разд. 5.1 н9.1.
428 Глава 9 выполнение этих операций потребуется определенное время. С другой стороны, если использовать дополнительную программу «символического типа», время, требуемое на вычисление произ- производных, возможно, удалось бы сократить. Следует отметить, что Таблица 9.3.4 Время (в часах), расходуемое на подготовительные операции при решении тестовых задач с помощью некоторых из алгоритмов, приведенных в табл. 9.3.1 Алгоритм Скользящего допус- допуска !) Оптим 2) ПОП 360 2) МАП2) НЛП1) ОГМОП1) ОГМОП 2> МОПГ1)A970) МОПГ 2> Дэвидона — МБП 2> Минимал 2) МПБМ A967) Розенброка J) Проективный с пе- переменной метри- метрикой2) Куранта 2> Произ- Производные О О Ч Ч А А Ч А А А О А3) О А А 7 0,3 1,5 1,0 — 1,5 — 6,0 6,0 5,0 6,0 0,8 4,0 1) 0,3 6,0 4,0 Номер задачи (см. 8 0,1 0,1 0,5 1,0 1,0 0,5 3,0 0,4 1,5 1,0 0,5 1,51) — 2,0 1,0 10 0,5 1,0 2,0 — 1,0 0,5 5,0 1,0 2,0 2,0 1,5 3,5 2) 0,8 2,0 3,0 11 0,1 1,0 1,0 — 0,8 0,4 4,0 1,0 2,0 3,0 1,0 4,0 2> 0,8 3,0 2,0 приложение i 14 0,4 2,0 2,0 — 1,5 1,5 _ 1,0 — — — — — — — 15 0,1 — 2,0 — 1,3 1,2 6,0 1,5 4,0 — 1,0 — — — 3,0 18 0,5 — 2,0 — 1,2 0,7 4,0 1,0 2,0 4,0 — 6,0 2> .— 3,0 2,0 19 0,5 — 2,0 — 0,8 2,0 6,0 3,5 4,0 4,0 1,0 3,0 2) — 4,0 4,0 ') Неопубликованные данные. 2) Заимствовано у Колвилла A958 г.) 3) Требуется вычнсленне вторых частных производных. Обозначения: А — аналитическая запись, Ч — числовые значения, О — производные не нс- пользуются. у малоопытного специалиста лишь программа скользящего до- допуска не отнимает много времени в процессе подготовки задачи к решению на ЭВМ; в этом случае требуется перенести на перфо- носители лишь данные относительно целевой функции, ограни- ограничений и стартовой точки х<0). Стоккер оценил эффективность тех же самых программ, что и в работе Колвилла; кроме того, Стоккер получил соответствующие данные для алгоритма НЛП и алгоритма скользящего допуска. В табл. 9.3.5 указано стандартизированное время для раз- различных типов программ и разных задач (из числа задач, приве-
Таблица Стаидартизироваииое время, требуемое при решении восьми тестовых задач с помощью различных алгоритмов Алгоритм Оптим ПОП 3606 ПОП Hd МАП6 нлп" Проекции градиента6 огмоп* огмотг МОПГ A970)" МОПГ A970)" Дзвндона — МБП6 Номер раздела 4.5 6.1 6.1 6.1 6.2 6.3.1 6.3.2 6.3.2 6.5 6.5 7.1.3 7 0,142" 0,044 0,078 е 0,073 / 0,094 0,022 0,176 0,022 8 0.0106 0,011 0,135 0,086 0,638 0,040 0,062 е 0,010 0,072 0,006 Номер задачи (ск 10 0,1006 0,037 е 0,074 0,0127 0,023 е 0,008 0,069 0,039 п") 0,014" 0,016 е 0,110 f 0,016 0,104 0,006 е 0,015 I. приложение А) 14") 0,250* 0,067 е g t 0,031 / е f 15 е, с 0,090 / 0,353 ; 0,049 е 0,008 0,415 / 18 е, b 0,168 е 4,15 f 0,686 е 0,084 0,242 0,384 19 е, с 0,313 f 2,52 0.093& 0,328 0,589 0,018 0.132 0,272
Продолжение табл. 9.3.5 Алгоритм Минимал'1 Метод центров6 МПБМ A968) Ь d МПБМ A970)с Розенброка Ь d Скользящего допуска' Проективный с переменной метри- метрикой6 Куранта* Номер раздела 7.1.4 7.1.5 7.2 7.2 7.2 4.3.6 7.1.2 8.3 6.3.3 Номер задачи (см. приложение А) 7 0,118 / 0,045 0,193 0,025 0,036 8 0,087 0,082 0,032 0,023 0,016 0,004 ю 0,412 0,016 0,127 0,424 е 0,344 0,006 0,026 И °) 0,103 0,186 0,028 0,048 0,358 0,078 0,121 0,006 0,025 14°) е S f f 1,31 15 0,184 / f f f f 0,214 f 0,072 18 e 0,151 2,53 0,159 e e 22,8 0,574 0,380 19 0,875 0.238 0,719 t f 6,45 0,062 0,209 Обозначения a — при допустимом начальном векторе; b — Colville A. R. A Comparative Study on Nonlinear Programming Codes, IBM N.Y., Sci. Center Rept. 320-2949, June 1968, Supplement, 1969; с — не опубликовано; d — Stocker D. C, M. S. Thesis. Univ. of Texas, Austin. Tex., 1969: e — не позволяет иайтн решение задачи; / — к данной задаче алгоритм неприменим; g — решение не получено вследствие ошибок при вычислении производных; h — Holzman A. G., Comparative Analysis of Nonlinear Programming Codes with the Weismann Algorithm, SRCC Rept. 113, Univ. of Pittsburgh, Pitt- Pittsburgh, Pa., Nov. 1969; i — Paviani D. A., Ph. D. Dissertation, Univ. of Texas, Austin. Tex., 1969; / — останов при погрешности 1% в f (x) из-за слиш- слишком большого времени, требуемого для вычислений.
Нелинейное программирование при наличии ограничений 431 денных в приложении А). Содержащиеся в таблице данные заим- заимствованы у Колвилла и Стоккера, а также взяты из некоторых неопубликованных источников. Следует обратить внимание на то, что данные, взятые из разных источников, не всегда оказывают- оказываются одинаковыми. Тот факт, что та или иная ячейка таблицы у Кол- вилла оказывается незаполненной, как правило, означает, что алгоритм не смог справиться с решением соответствующей задачи (по крайней мере решение задачи не известно, хотя попытка ре- решить эту задачу и имела место). На длительность подготовитель- подготовительных процедур оказывают влияние все факторы, о которых шла речь в разд. 9.1, так что практически невозможно сделать ка- какой-либо общий вывод относительно эффективности рассмотрен- рассмотренных алгоритмов, даже располагая данными, представленными в табл. 9.3.5. Однако можно утверждать (по крайней мере в результа- результате предварительного ознакомления с приведенными выше результата- результатами), что для выявления возможностей практического использова- использования метода скользящего допуска, ПОП, алгоритма НЛП, метода МОПГ, проективного метода с переменной метрикой, метода Куран- Куранта и МПБМ требуется проведение дополнительных исследований. С этой целью Стоккер провел глубокий анализ эффективности пяти указанных выше алгоритмов, применяя их при решении пятнадцати тестовых задач; результаты анализа (вместе с данны- данными, относящимися к двум другим алгоритмам и пяти дополнитель- дополнительным тестовым задачам) приведены в табл. 9.3.6. Таким образом, табл. 9.3.6 содержит операционные характеристики (время, решения) семи машинных программ, полученные путем анализа их возможностей в связи с решением 20 тестовых задач. Вначале обсудим (разд. 9.3.1) рабочие характеристики некоторых машин- машинных программ, полученные при решении задач, представляющих наибольший практический интерес, а затем (разд. 9.3.2) под- подведем итоги относительно возможностей каждой программы в от- отдельности. 9.3.1. РАБОЧИЕ ХАРАКТЕРИСТИКИ АЛГОРИТМОВ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ, ПОЛУЧЕННЫЕ ПРИ РЕШЕНИИ ЗАДАЧ, ПРЕДСТАВЛЯЮЩИХ ОСОБЫЙ ИНТЕРЕС Задача У/1'. Данную задачу, характеризующуюся квадратич- квадратичной целевой функцией и содержащую шесть квадратичных огра- ограничений в виде неравенств при пяти независимых переменных (зна- (значения которых могут меняться в пределах фиксированных интерт валов), удается решить с помощью любой из рассмотренных выше машинных программ, за исключением ПОП П. Алгоритм Розеы- брока оказался не в состоянии обеспечить такую же точность, какая Рассматриваемые здесь задачи приведены в приложении А.
Машинное время (в секундах), расходуемое при решении задач нелинейного известных Класс (см. фиг. 9.3.1) Номер задачи (см. прило- приложение А) Число переменных Число ограничений в виде равенств линейных нелинейных Число ограничений в виде неравенств лниейных нелинейных Верхняя н нижняя грани- границы Время, с МОПГ A969-1970) Скользящий допуск НЛП МПБМ A968) МПБМ A970), лучшие варианты ПОП II Розеиброка ОГМОП А А1 20 24 2 12 6 24 4,98' 511 е i i i г 15 3 2 4 12 9,14 4,71 7,76 i i i e 5 3 1 1 3 1,21 0,84 0,33 a с с e 42 13° 12 4 3 16 с 1 i i с в Bl 1 2 1 1 1,06 0,43 0,07 0,51 0,22 i 4,52 5,18 B2 4" 10 3 10 1,45 27,9 5,37f 2,44 i i 1,15 F,63) 6 45 12 45 h с 29,4 i i e 19 16 8 32 2,92 142 55,4 15,6 i i 13,06 Машинное время указано применительно к ЭВМ CDC 6600 (стандартизированное время 22,0 с), исключением задачи 20) нелинейные. Незаполненные ячейки означают, что соответствующая задача Обозначения а— получено недопустимое решение (ограничивающие условия ие удовлетворены); Ь — в скобках ленной сходимости; d — ограничивающие условия надлежащим образом не удовлетворены; е — ре- экстремум; А — получены отрицательные значения аргумента логарифмической целевой функции; слишком большими трудностями; k — не способен обеспечить решение (возможно, из-за ошибок,
Таблица 9.3.6 программирования различной степени сложности с помощью некоторых алгоритмов с 1 3 2 3 4 8 0,34 8 0,82 0,63 1,31 е 7 3 14 6 3,83 4,23 1,60 k 12,66 1,72 0,52 9 4- 1 5 е 3,63 / е 17,37 И6 5 6 10 /3,57 16,51 2,67 A3,9) 2,31 @,64) 1,05 B,98) с 1,71 C,00) 2,30 е 12 5 3 35 10 103,3 4,88 k 76,0 е с 14 6 4 е 29,1 / е е е 16 9 13 1 е 59,6 е / е с е 18й 15 5 15 5,38 с 91,4 (84,1) 5,58 F,71) е е е 13° 5 3 10 2,25 72,1 D 10 5 10 5 1,54 7,58 1,62 2,79 1,99 с с, е Е 17 10 20 0,35' 2,92"* h 1,32 0,65 h 2,08 2 2 0 0,99 0,86 0,18 0,11 е 0,21 4,52 8 4 8 1,59 0,50 14,04 1,80 3,93 0,70 е Классы задач приведены в порядке уменьшения сложности (от А до Е). Все целевые функции (за указанным в левой колонке методом не решалась. указано время, расходуемое при старте из недопустимой точки; с — решение ие получено из-за мед- шение отсутствует (не получено); / — для задачи 4а; g — достигается ие глобальный, а локальный i — к данной задаче алгоритм не применим; / — вычисление вторых производных сопряжено со допускаемых при вычислении вторых производных); / — относится к 1970 г.
434 Глава 9 достигается при использовании других машинных программ. Это объясняется тем, что оптимизационный поиск методом Розенброка на последних этапах вычислительного процесса прекращается в силу слишком медленного изменения минимизирующих поправок к текущим значениям целевой функции в ходе перемещений вдоль ограничений в окрестности оптимума. ПОП II приводит к мини- минимуму, лежащему ниже минимальных значений целевой функции, получаемых другими методами. Однако точка, соответствующая экстремуму, находится за пределами допустимой области. Алго- Алгоритм скользящего допуска, алгоритм НЛП, МПБМ, алгоритм Розенброка и метод МОПГ приводят к оптимальному решению за- задачи при старте из точки, не являющейся допустимой. Задача 7. Это типичная задача из категории решаемых с по- помощью ПОП II. Фигурирующие в ней функциональные связи обра- образуют «самосогласованную» модель, легко описываемую на языке команд программы. Интересующиеся способом построения моде- моделей такого типа, и в частности данной модели, могут обратиться к работе [4]. Аналитический вид фигурирующих в задаче функций в явном виде не определен, так что нахождение частных производных этих функций оказывается весьма затруднительным. На выпол- выполнение подготовительных работ при решении задачи 7 с помощью алгоритма НЛП уходит 1,5 ч; чтобы получить аналитическую запись вторых частных производных, требуется дополнительно 2,5 ч; таким образом, суммарные временные затраты при подготовке задачи к решению с помощью МПБМ составляют 4 ч. Тем не менее неоднократные попытки найти решение задачи 7 с применением МПБМ заканчивались неудачей: программа прекращала работу в условиях, когда имела место «сходимость» к ошибочному реше- решению. Эти неудачи, безусловно, объясняются ошибками, допус- допускаемыми при отыскании вручную вторых частных производных целевой функции и функций, задающих ограничения, по неза- независимым переменным. Помимо отмеченных выше, значительные временные затраты сопряжены с безуспешными попытками уста- установить источник неполадок. Следует отметить, что методы прямо- прямого поиска, метод скользящего допуска, алгоритм Розенброка и ПОП II, не требующие вычисления частных производных фигури- фигурирующих в задаче функций, характеризуются гораздо меньшими затратами времени на подготовительные операции. Эти затраты при использовании любого из указанных методов составляют при- приблизительно 15 мин. Задача 18. Эта задача, являющаяся двойственной по отношению к задаче 10, содержит 15 независимых переменных. Она характе- характеризуется кубической целевой функцией при пяти кубических огра- ограничениях. Для значений всех 15 переменных установлены ниж- нижние границы. Эту задачу удалось решить лишь с помощью алго-
Задачи нелинейного программирования 435 ритмов МОПГ, НЛП и МПБМ, которые позволяют определить максимальное значение целевой функции при старте как из допус- допустимой точки, так и из точки, не являющейся допустимой. При ре- решении задачи 18 преимущества МПБМ и алгоритма МОПГ менее очевидны. Отметим, однако, что данная задача обладает такой структурой целевой функции и такими ограничениями, при ко- которых вычисление частных производных не представляет особой трудности. На подготовительные операции при использовании МПБМ требуется всего 30 мин. Оказалось, что алгоритм сколь- скользящего допуска обеспечивает очень медленную сходимость к опти- оптимальному решению, приводя к чрезвычайно большим затратам ма- машинного времени. При этом, несмотря на то что оптимальное ре- решение целевой функции в процессе поиска было почти установлено, вектор х. соответствующий наилучшему из найденных значений / (х), значительно отличался от оптимального вектора х, полу- полученного с помощью алгоритма НЛП и с помощью МПБМ. Алгорит- Алгоритмы Розенброка, ОГМОП и ПОП II оказались не в состоянии обе- обеспечить сходимость к искомому решению. Задача 12. Эта задача представляет собой модель функциони- функционирования гипотетического целлюлозно-бумажного комбината. Она обладает существенно нелинейной целевой функцией, характери- характеризующейся сложной зависимостью от пяти независимых перемен- переменных, значения которых ограничены как снизу, так и сверху. Задача содержит три линейных ограничения в виде равенств и 35 нелинейных ограничений, записанных в виде неравенств. Ре- Решить эту задачу удалось лишь с помощью алгоритмов скользяще- скользящего допуска и НЛП (разумеется, с применением ЭВМ). Прямой по- поиск, реализованный в рамках алгоритма Розенброка, привел к преждевременному останову из-за чрезвычайно медленного пере- перемещения вдоль одного из ограничений, в результате чего скорость увеличения значений целевой функции была явно недостаточной. Программа ПОП II не справилась с решением задачи по не сов- совсем понятным причинам. Неоднократные попытки решить задачу 12, используя МПБМ, также не привели к желаемому результату из-за невыявленных ошибок, допущенных при вычислении 315 ча- частных производных. Задача 12 по степени сложности целевой функ- функции и функций, задающих ограничения, напоминает задачу 7. Мы вновь подчеркиваем то обстоятельство, что в процессе нахож- нахождения вручную аналитических выражений частных производных целевой функции и функций, задающих ограничения, по незави- независимым переменным не исключены ошибки. Хотя сравнение за- затрат машинного времени при использовании алгоритмов скользя- скользящего допуска и НЛП показывает, что вычислительная эффектив- эффективность алгоритма НЛП выше вычислительной эффективности алгоритма скользящего допуска, следует иметь в виду, что машин- машинная программа, составленная на основе метода НЛП, требует
436 Глава 9 нескольких часов предварительной подготовки задачи к решению на ЭВМ, тогда как временные затраты на выполнение подготови- подготовительных операций при использовании алгоритма скользящего допуска составляют менее 30 мин. Задача 1. Это простейшая из задач, относящихся к классу В. Она характеризуется квадратичной целевой функцией двух не- независимых переменных и содержит одно линейное ограничение в виде равенства и одно нелинейное ограничение в виде неравенства. Напомним, что алгоритмы Розенброка и ПОП II не могут опери- оперировать непосредственно с ограничениями, записанными в виде равенств. Однако, как уже отмечалось выше, ограничения в виде равенств можно включить в систему ограничений задачи в преобразованном виде, т. е. пбсле замены равенства ht (х) = О (i = 1, ..., т) на два неравенства ^(х) > — Ъ к h(х) < I;, t=l, ..., т. Ограничения, записанные в таком виде, поддаются адекватному учету при использовании программы Розенброка и ПОП II, если пользователем установлены верхняя и нижняя границы измене- изменения функций ht (x), т. е. если заданы значения — |г и ?,. Указанный выше способ обращения с ограничениями в виде равенств пытались применить в рамках алгоритма Розенброка и ПОП II для решения задачи 1; при этом полагали ?? = 10~4, так как ограничивающие условия для значений ht (x), имеющие вид — 1(Р4 < ht (х) < 10~4, вполне удовлетворительны. С решением задачи 1 программа Розенброка справилась успешно, хотя найден- найденное при этом оптимальное решение несколько отличается от более точного решения, полученного методами скользящего допус- допуска, НЛП, ОГМОП, МОПГ и с помощью МПБМ. Кроме того, сле- следует отметить, что машинное время, требуемое для решения задачи 1 на основе алгоритма Розенброка, сильно отличается от затрат машинного времени, имеющих место при решении этой задачи другими (эффективными в условиях рассматриваемой задачи) методами. Отметим также, что ПОП II не обеспечил сходимости к строго оптимальному решению, а в точке, соответствующей ми- минимуму, функция в ограничении-равенстве принимала значение 1СР1 (вместо нуля). Задача 4. Эта задача (так же, как и задача 6) представляет со- собой пример оптимизации химического состава жидкой смеси, ко- которая должна находиться в состоянии химического равновесия. Смесь химических компонентов, поддерживаемая при постоянной температуре и при постоянном давлении, достигает состояния химического равновесия одновременно с уменьшением значения целевой функции (т. е. свободной энергии жидкой смеси) до мини- минимума. Нелинейная целевая функция характеризуется логариф-
Задачи нелинейного программирования 437 мической зависимостью от десяти независимых переменных при наличии трех линейных ограничений в виде равенсгв; нижней границей для каждой из независимых переменных является нуль. Поскольку и алгоритм НЛП, и алгоритм скользящего допуска не исключают некоторых отклонений текущего век- вектора х от его допустимых значений, возникает вероятность того, что независимые переменные задачи 4 примут в ходе итерацион- итерационного процесса отрицательные значения. Это в свою очередь может привести к тому, что некоторые из натуральных логарифмов в вы- выражении для целевой функции потеряют смысл и, таким образом, оптимизационный поиск может оборваться. При решении задачи 11 алгоритм скользящего допуска никогда не приводил к отрица- отрицательным значениям никакой из десяти независимых перемен- переменных; поэтому именно с помощью этого алгоритма и была решена рассматриваемая задача (см. приложение А). Поиск же методом НЛП был преждевременно прерван, как только значение одной из независимых переменных стало отрицательным. Чтобы преодолеть такого рода трудность, независимые пере- переменные были «переопределены». Обозначим новые переменные че- через X/. Формула перехода от х/ к х/ имела следующий вид: x'{ = lnxj, / = 1, ... , 10. Переопределенная таким способом задача (т. е. задача, сформу- сформулированная через новые переменные) приведена в приложении А (см. задачу 4а). Следует отметить, что задача 4а содержит три не- нелинейных ограничения в виде равенств вместо трех линейных ог- ограничений-равенств исходной задачи и, следовательно, с полным основанием может быть отнесена к классу А. После перехода к новым переменным алгоритм НЛП оказался в состоянии решить задачу 4; в результате получилось приблизи- приблизительно такое же оптимальное значение целевой функции, как и в случае применения МПБМ и алгоритма МОПГ. Соответствую- Соответствующий оптимальному решению вектор х, найденный Брэккеном и Мак-Кормиком [5] (которые тоже использовали МПБМ), был в точности воспроизведен с помощью программы МОПГ. Однако соответствующие оптимальному решению векторы х, полученные с помощью алгоритмов скользящего допуска, НЛП и ОГМОП, несколько отличались от вектора х, полученного упомянутыми выше авторами (см. приложение А). Отсюда следует сделать вы- вывод, что целевая функция задачи 4 обладает своего рода «широко- «широкополосным» минимумом (т. е. в точке экстремума кривизна функции выражена весьма слабо). Задача 6. Задача 6 также связана с проблемой поиска условий химического равновесия. Однако эта задача содержит 45 незави- независимых переменных и 16 линейных ограничений в виде равенств.
438 Глава 9 Таким образом, ее размерность значительно выше размерности задачи 4. Из используемых для решения задачи 6 четырех алго- алгоритмов (скользящий допуск, НЛП, ОГМОП и МПБМ) три первых столкнулись с трудностью, связанной с появлением отрицатель- отрицательных значений выражений, стоящих под знаком логарифма (как и в задаче 4). Предпринималась попытка перейти к новым незави- независимым переменным при использовании алгоритма НЛП (как и при решении задачи 4), а также вводились дополнительные ог- ограничения в связи с применением алгоритма скользящего допус- допуска (описание этого приема см. в разд. 8.6). Оказалось, что успеш- успешное решение рассматриваемой задачи достигается лишь с помощью МПБМ, хотя получаемая при этом оптимальная точка х и не сов- совпадает с оптимальной точкой, найденной Джонсом (формулировка задачи б принадлежит именно Джонсу); все эти решения ука- указаны (для сравнения) в приложении А. Кроме того, следует отме- отметить, что найденный Джонсом оптимальный вектор х не удовлет- удовлетворяет ограничивающим условиям, записанным в виде равенств. Минимальное значение целевой функции Джонсом не указано; однако, подставляя полученные им оптимальные значения неза- независимых переменных в выражение для целевой функции, мы по- получаем / (х*) = — 79,108. Минимальное значение / (х*), найден- найденное с помощью МПБМ, равняется — 1910,446, т. е. является по отношению к результату, полученному Джонсом, существенно улучшенным. Это значение / (х*) определено при старте из трех точек: а) из точки х,-/, = 10~'; б) из точки xlk = 1СГ10; в) из опти- оптимальной точки, полученной Джонсом. Для решения задачи 6 ни алгоритм Розенброка, ни ПОП II не применялись. Задача 5. Данная задача характеризуется квадратичной целе- целевой функцией трех независимых переменных и содержит одно нелинейное ограничение в виде равенства и одно линейное ограни- ограничение также в виде равенства. Каждая из независимых перемен- переменных может принимать лишь положительные значения. Таким образом, задача 5 относится к классу А. Для решения задач нелинейного программирования при нелинейных ограничениях, записанных в виде равенств, подходят лишь алгоритмы скользящего допуска, ОГП, МОПГ и НЛП. Именно эти четыре алгоритма и оказались в состоянии обеспечить решение задачи 5. МПБМ не смог обеспечить решение данной задачи в том смыс- смысле, что он приводит в точку, где ограничивающие условия в виде равенств с требуемой точностью не выполняются (см. приложе- приложение А). Несколько дальнейших попыток удовлетворить ограни- ограничениям-равенствам с большей точностью также не увенчались ус- успехом. Неспособность МПБМ обеспечить решение задачи 5 была неожиданной; однако при использовании МПБМ сходимость к оптимальному решению задачи нелинейного программирования
Задачи нелинейного программирования 439 при ограничениях в виде равенств, вообще говоря, и не гаран- гарантируется (см. гл. 7). Алгоритм Розенброка и ПОП II применялись для решения задачи 5 после преобразования ограничений-равенств в ограни- ограничения, имеющие вид неравенств (см. задачу 1). Ни один из этих алгоритмов не смог обеспечить сходимость к оптимальному реше- решению. Алгоритм Розенброка прекратил работу в условиях, когда минимизационный процесс стал протекать крайне медленно (при- (причем в стационарном режиме). ПОП II обеспечил сходимость к зна- значению целевой функции, лежащему ниже оптимальных значений / (х), полученных в случае применения алгоритмов скользящего допуска и НЛП; однако при этом ограничения-равенства оказа- оказались нарушенными. Задача 20. Целевая функция данной задачи линейна, а число независимых переменных равняется 24. Задача содержит двенад- двенадцать нелинейных ограничений в виде равенств, два линейных ог- ограничения, также имеющих вид равенств, и шесть нелинейных ограничений в виде неравенств. Независимые переменные могут принимать только положительные значения. Из всех задач, при- приведенных в приложении А, данная задача, возможно, является наиболее трудной. Никаких попыток применить алгоритм Розен- Розенброка или ПОП II для решения задачи 20 не предпринималось. Алгоритмы скользящего допуска, НЛП, ОГМОП и МПБМ ока- оказались в состоянии улучшить значение целевой функции по сравне- сравнению со значением / (х) в стартовой точке; однако сходимость к решению задачи была достигнута лишь при использовании ал- алгоритмов скользящего допуска и МОПГ A970). Ни алгоритм НЛП, ни МПБМ сходимость к искомому решению обеспечить не смогли и продолжали «осциллировать» относительно некоторой наилучшей из текущих точек, которую они смогли определить, пока не было исчерпано отведенное на решение задачи машинное время. Более того, наилучшие решения, полученные с помощью алгоритмов НЛП и МПБМ, оказались менее точными, нежели решения, по- полученные с помощью алгоритма скользящего допуска и МОПГ. Кроме того, решение, найденное с помощью МПБМ, не удовлетво- удовлетворяло ограничениям-равенствам с достаточной степенью точности. 9.3.2. оценка эффективности алгоритмов нелинейного программирования на основе анализа результатов их применения при решении тестовых ЗАДАЧ В данном разделе дается характеристика каждого из рассмот- рассмотренных выше алгоритмов нелинейного программирования с уче- учетом всех данных, полученных в ходе применения этих алгорит- алгоритмов для решения тестовых задач, перечисленных в табл. 9.3.5.
440 Глава 9 1. МОПГ, вариант 1969 г. С точки зрения вычислительной эф- эффективности результаты, полученные при решении методом МОПГ задач нелинейного программирования (особенно наиболее трудных задач, относящихся к категории А), представляются весьма об- обнадеживающими (заметим, что задача 20 была решена с помощью невырожденного варианта программы МОПГ, относящегося к 1970 г.). Попытки решить с помощью алгоритма МОПГ задачи класса С (задачи 9, 11, 14 и 16) оказались безуспешными из-за преждевременного останова; тем не менее задачи 11 и 14 были ре- решены позднее Абади. Во всех случаях, когда оптимум был най- найден, временные затраты, связанные с решением каждой из ука- указанных выше задач, были значительно ниже соответствующих временных затрат, имевших место при использовании других ме- методов; поэтому машинная программа МОПГ является одной из самых популярных и получила широкое распространение. 2. Алгоритм скользящего допуска. Данный алгоритм оказал- оказался в состоянии обеспечить решение задач всех пяти классов (А, В, С, D и Е); исключение составили лишь две задачи, решение которых с помощью алгоритма скользящего допуска получить не удалось. Задачи 6 и 18 обсуждались в подразд. 9.3.1. Следует под- подчеркнуть, что при использовании алгоритма скользящего до- допуска было затрачено слишком много времени на поиск точки, удовлетворяющей ограничениям-равенствам, так что при решении этих задач нельзя было уложиться в приемлемое время. Поскольку речь идет о методе прямого поиска, для реализации алгоритма на ЭВМ находить производные (фигурирующих в задачах функций) в аналитическом виде не требуется. Поэтому временные затраты на выполнение подготовительных операций для всех задач ока- оказываются весьма незначительными. Более того, в процессе вы- выполнения подготовительных работ ошибки почти исключаются. С другой стороны, затраты машинного времени при решении за- задач большой размерности (например, задач 18, 19 и 20) оказывают- оказываются более значительными, чем в случае, когда оптимизация осу- осуществляется с помощью алгоритмов МОПГ и НЛП. 3. Алгоритм НЛП. С помощью данного алгоритма удалось ре- решить большинство тестовых задач классов В, С, D и Е; исключе- исключение составили задачи 6, 14 и 16. Однако следует отметить, что после перехода в задаче 6 к новым переменным (в результате ко- которого 16 линейных ограничений-равенств превратились в 16 ог- ограничений-равенств нелинейной структуры) ее все же удалось решить. В этой связи следует заметить, что, строго говоря, за- задачу 6 нужно рассматривать как задачу класса А. Работу алго- алгоритма НЛП в процессе решения задач класса А нельзя назвать достаточно эффективной; сходимость в случае задачи 20 алгорит- алгоритмом НЛП не была обеспечена. Как известно, при использовании алгоритма НЛП требуется знать частные производные первого
Задачи нелинейного программирования 441 порядка для / (х), ht{\) и gt (х) в аналитической записи. Это приво- приводит к тому, что временные затраты на выполнение подготови- подготовительных операций оказываются большими и повышается частота возникновения ошибок при подготовке задачи к решению (когда подготовительные операции выполняются вручную). Временные за- затраты, связанные с реализацией самого вычислительного процес- процесса на ЭВМ, ниже по сравнению со случаем использования метода скользящего допуска (хотя и имеются некоторые исключения). 4. МПБМ (вариант, относящийся к 1968 г.)- Результаты, по- полученные с помощью МПБМ, вполне соответствуют структуре математического аппарата, характерного для метода последова- последовательной безусловной минимизации (см. гл. 7). С помощью МПБМ удалось решить все тестовые задачи классов В, С, D и Е, за ис- исключением тех задач, при подготовке которых к решению полу- получаются ошибки при вычислении вторых частных производных / (х), ht (x) и gt (x), и, таким образом, окончательное решение ока- оказывается неправильным. МПБМ не смог, однако, отыскать оп« тимальное решение ни одной из задач класса А. Более того, раз- разрывный характер первых производных в задаче 15 сделал вообще невозможным применить МПБМ для отыскания оптимального решения. Но в этой связи следует напомнить, что МПБМ для за- задач класса А не гарантирует сходимость к оптимальному решению (см. гл. 7). Необходимость в вычислении первых и вторых частных производных функций / (х), hi (x) и gt (x), возникающая в слу- случае применения МПБМ, приводит к значительному количеству ошибок, допускаемых в процессе выполнения вычислительных операций вручную, и увеличивает временнйе затраты на стадии подготовки задачи к решению на ЭВМ. К счастью, целевые функ- функции некоторых из тестовых задач симметричны по независимым переменным (например, задачи 4, 6, 10, 18 и 19), так что пробле- проблема нахождения первых и вторых частных производных оказывает- оказывается существенно упрощенной. Затраты машинного времени при ре- решении с помощью МПБМ задач, относящихся к классам В, С, D и Е, вообще говоря, ниже затрат машинного времени при поиске решения прямыми методами. 5. Алгоритм Розенброка. Данный алгоритм справился с реше- решением лишь некоторых задач, принадлежащих к классам С, D и Е. Причина имевших место неудач объясняется прежде всего преж- преждевременным прекращением вычислительного процесса из-за слиш- слишком медленной сходимости в ходе перемещений вдоль ограничений задачи. Зарегистрирован один случай, когда алгоритм Розенброка смог обеспечить' решение задачи класса В (а именно задачи 1). Однако тот факт, что даже при решении такой простой задачи (число переменных задачи равняется двум) потребовалось слиш- слишком много машинного времени, наводит на мысль о том, что
442 Глава 9 попытки решать с помощью алгоритма Розенброка задачи клас- класса В бесполезны. Неудачная попытка применения метода Розен- Розенброка при решении задачи 5, являющейся простейшей задачей класса А, говорит о том, что алгоритм Розенброка вообще плохо приспособлен для решения задач указанного класса. 6. ПОП II. Попытки применить ПОП II при решении тестовых задач приложения А свидетельствуют о его незначительных воз- Таблица 9.3.7 Сравнение машинных программ, основанных на использовании различных алгоритмов нелинейного программирования Алгоритм (и соответствующая машинная программа) МОПГ A970) Скользящий допуск НЛП МПБМ A968) Розенброка ПОП II2) ОГМОП Класс задачи А Да Да1) ? Нет Нет Нет Нет в Да Да Да Да Нет Нет ? с Да Да Да Да Нет Нет Нет D Да Да Да Да Нет Нет ? Е Да Да Да Да Да Да Да ') За исключением случаев, когда задача содержит большое число ограничений в виде равенств. 2) Работу алгоритма можно улучшить путем выбора соответствующих значений параметров. можностях: с помощью ПОП II удалось решить лишь четыре из двенадцати задач. Эти результаты совершенно отличаются от ре- результатов, опубликованных Колвиллом. Поскольку ПОП II не предназначался для решения задач, относящихся к классам В и А, неспособность данной машинной программы обеспечить решение задач указанных классов не была неожиданностью. Низкая же эффективность ПОП II при решении задач классов D и С вызва- вызвала, однако, некоторое недоумение. 7. ОГМОП. Данный алгоритм, как правило, прекращал рабо- работу преждевременно; причины преждевременных остановов были самыми различными (на подробном описании этих причин мы здесь не останавливаемся). Отметим лишь, что нередко составляющие вектора, задающего направление поиска, или же составляющие градиента оказывались равными нулю либо в силу случайного стечения обстоятельств, либо в результате округления получае- получаемых числовых значений. Данные относительно возможностей семи машинных программ, предназначенных для решения задач нелинейного программиро- программирования, приведены в табл. 9.3.7. Эта таблица может оказать не- некоторую помощь тем, кто сталкивается с проблемой выбора типа программы в связи с решением той или иной задачи нелинейного
Задачи нелинейного программирования 443 программирования. Если в ячейке табл. 9.3.7 стоит «да», то это означает, что соответствующий алгоритм можно в принципе счи- считать способным решать задачи нелинейного программирования указанного (в соответствующем столбце) класса. Если же в той или иной ячейке стоит «нет», то это означает, что соответствующий ал- алгоритм не рекомендуется использовать при решении задач, от- относящихся к тому классу, который указан в соответствующем столбце. Знак вопроса означает, что относительно эффективности соответствующего алгоритма (в связи с его применением при решении задач соответствующего класса) нельзя пока сделать определенного вывода. ЛИТЕРАТУРА 1. Stocker D. С, A Comparative Study of Nonlinear Programming Codes, M. S. Thesis, The Univ. of Texas, Austin, Tex., 1969. 2. Holzman A. G., Comparative Analysis of Nonlinear Programming Codes with the Weisman Algorithm, SRCC Rept. 113, Univ. of Pittsburgh, Pittsburgh, Pa., Nov. 1969. 3. Colville A. R., IBM N. Y. Sci. Center Rept. 320-2949, June 1968. 4. Sauer R. N., Colville A. R., Burwick С W., Hydrocarbon Process. Petrol. Refiner, 43, 85 A964). 5. Bracken J., McCormick G. P., Selected Applications of Nonlinear Programming, Wiley, Inc., N. Y., 1968. ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА Rastrigin L. A., Criteria for Comparing Methods of Seeking an Extremum (English Trans.), Zavod Lab., 32, 1248, 1529 A966). Rosen J. В., Suzuki S., Construction of Nonlinear Programming Test Problems, Commun. ACM, 8, 113 A965).
Приложение А ЗАДАЧИ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ И ИХ РЕШЕНИЯ1) Задача 1 [1]. Число переменных равняется двум. Задача содержит ограничение в виде равенства и одно ограни- ограничение в виде неравенства. Требуется минимизировать / (х) — (хк — 2J + (х2 — 1 J при ограничениях hx (х) = хх — 2х2 + 1 = О, В качестве начальной выбирается точка х@) = [2 2]г, лежащая вне допустимой области. В этой точке / (х@)) = 1. Решение: /(х*)= 1,393, х\ = 0,823, АГ2 = 0,91 1. Задача 2 [2]. Число переменных равняется двум. Ограничения отсутствуют. Требуется минимизировать f (х) = 100 (х.г — дф2 + A — лгхJ. В качестве начальной выбирается точка х@) = [— 1,2 1]г. В этой точке f (x@)) = 24,20. Решение: х*= [1 if, /(x*) = 0. Задача 3 [3]. Число переменных равняется двум. Задача содержит три нелинейных ограничения в виде нера- неравенств и четыре предельных ограничения для значений, которые могут принимать независимые переменные. '' Источники, из которых заимствованы рассматриваемые ниже задачи, ука- указаны в конце приложения.
Задачи нелинейного программирования 445 Требуется максимизировать /(х) = 75,196 — 3,8112^ + 0,12694^— — 2,0567 • 10~3лг? + 1,0345 • 10~54 — 6,8306л:2 + + 0,030234*,*, — 1,28134 • 10"**,*? + 3,5256 • Ю"8*,*? — — 2,266 • \Q-7x2x\ + 0,256454—3,4604 • Ю^ + + 1,3514 • 10~54 - 28'i°? - 5,2375 • 10"д:Ы - 6,3 x X 10~8w4 + 7 • Ю~1ОхЫ + 3,4054 • 10"-\4— 1,6638 x X lO^^ — 2,8673 ехр (О. при ограничениях О < х1 < 75, О < х2 < 65, xLx2 — 700 > О, (х2 — 50J — 5 (х, — 55) > 0. В качестве начальной выбирается точка х@) = [90 10]г, лежащая вне допустимой области. В этой точке / (х<0)) = — 82,828. Решение: х* = [75 65]г, / (х*) = 58,903. Задача 4 [1]. Число переменных равняется десяти. Задача содержит три линейных ограничения в виде равенств и десять предельных ограничений для значений, которые могут принимать независимые переменные. Требуется ю ,¦ минимизировать / (х) = 2 х, I с, г1 где d = — 6,089, с, = — 17,164, с3 = — 34,054, с4 = — 5,914, с5 = —24,721, св = —14,986, с7 = — 24,100, с8 = — 10,708, св = = —26,662, сзо= —22,179. Ограничения имеют следующий вид: hx (х) = хх + 2дг2 + 2дг3 + *в + ^ю — 2 = °> 1ц (х) = xt + 2х5 + хв + х7 — 1 = 0, й3 (х) = х3 + х7 +xs + 2х9 + х10 — 1 = 0, »= 1 10.
446 Приложение А В качестве начальной берется точка х'0) = 0,1 (i = 1,. ..., 10), лежащая вне допустимой области. В этой точке / (х@>) = — 20,961. Решение: см. задачу 4а. Задача 4а. Число независимых переменных равняется десяти. Задача содержит три нелинейных ограничения в виде равенств. Требуется минимизировать f (х) — 2 \е I с, + Xi — In I 2 е ' I (=i I L \f=i / при ограничениях hx (x') = e*i + 2e + 2e*3 + ex& + e*10 — 2 = 0, Ag (x') = Л + 2ex* + еч + e*7 - 1 = 0, h3 (x') = /3 + e*7 + ex» + 2/9 + /io —1=0. В качестве начальной берется точка х\=—2,3 (i — 1, ..., 10), ле- лежащая вне допустимой области. Решение: f(x) Xl х2 х3 х* хь хе Х-! х9 1ц(х) /12(Х) Л,(х) нлп —47,751 0,0350 0,1142 0,8306 0,0012 0,4887 0,0005 0,0209 0,0157 0,0289 0,0751 З.Е — 12 З.Е - 12 2.Е —11 Метод скользящего допуска —47,736 0.0128 0,1433 0,8078 0,0062 0,4790 0,0033 0,0324 0,0281 0,0250 0,0817 З.Е — 05 2.Е — 05 9.Е — 05 огмоп —47,656 0 0,1695 0,7536 0 0,5000 0 0 0 0,0464 0,1536 0 0 0 МОПГ —47,761 0,0406 0,1477 0,7832 0,0014 0,4853 0,0007 0,0274 0,0180 0,0375 0,0969 1.Е — 06 1.Е—06 1.Е-06 МПБМ —47,761 0,0407 0,1477 0,7832 0,0014 0,4853 0,0007 0,0274 0,0180 0,0373 0,0969 —8.Е — 08 —1.Е—07 -1.Е—07 Задача 5 [4]. Число переменных равняется трем. Задача содержит одно нелинейное ограничение в виде равенст- равенства, одно линейное ограничение в виде равенства и три предельных ограничения для значений, которые могут принимать независи- независимые переменные.
Задачи нелинейного программирования 44? Требуется минимизировать / (х) = 1000 — х\ — 2х\ — д| — xvx% — ххх3 при ограничениях hv (х) = х\ + х\ + х\ — 25 = О, h% (х) = 8х, + 14х.г + 7х3 — 56 = О, *,>0, г= 1, 2, 3. В качестве начальной выбирается точка xf = 2; другой вариант: х^ =10 (i == 1, 2, 3). Обе точки лежат вне допустимой области. В любой из этих точек f (х(С)) = 976. Решение: f(x*) = 961,715, ^ = 3,512, д;а = 0,217, х3 = 3,552, А1(х*) = 0, Л2(х*) = 0. Задача 6 [5]. Число переменных равняется 45. Задача содержит 16 линейных ограничений в виде равенств. Требуется минимизировать / (х) = k=\ ( */* 16, при ограничениях 7 /«ft Xjk >0. / = 1, • • • , nk, k = 1, .. . , 7. (Примечание. Значения ft, и c\k указаны в приведенной ниже таб- таблице.) В качестве начальной выбирается точка xik = 0,\, j — 1, ..., nk, k = 1 7, лежащая вне допустимой области. В этой точке / (х@)) = — 30,958. Решение: нлп МПБМ МПБМ (Джонса) / (х*) * х21 -1909,740 7.854Е—07 8.078Е — 02 3.706Е — 00 —1910,361 6.599Е — 06 2,512Е—01 3.705Е —00 —79,108 6.440Е—01 2.590Е-01 3.705Е - 00
448 Продолжение табл. * «41 «12 * «22 * «32 * . «42 * Х52 * * «72 * «82 * ¦**92 * Х10,2 * «11,2 * «12,2 «13,2 «13 «23 «33 «43 «53 «63 «73 * «83 X9i «10,3 Х11,3 * «12,3 «13,3 «н.з нлп 8,855Е — 02 6.894Е — 01 3.020Е — 02 1.398Е —04 1.626Е — 04 0 2.782Е — 02 7.950Е — 02 3,42 IE — 02 2.486Е + 01 3.873Е — 02 1,500 Е — 04 1.170Е—05 1.550Е-02 0 2.649Е — 02 1,251Е —04 1.064Е —01 0 5.253Е — 02 8.710Е —03 1.471Е —02 4.735Е — 02 9.208Е — 02 3.119Е —04 1.560Е —02 2,42 IE —02 2.448Е — 03 МПБМ 2.535Е —01 6.529Е — 01 1.235Е —03 3.667Е —04 2.794Е —06 5,44 IE —06 7.363Е—02 8,79 IE —02 3.542Е — 02 4.458Е + 01 2.669Е — 02 7.709Е — 06 3.764Е — 05 1.550Е — 02 9.900Е — 07 5.077Е — 05 3,107-Е — 05 1.546Е — 06 3.102Е—05 6.416Е— 03 2.202Е — 04 1.287Е - 02 2.165Е—00 2.675Е - 00 3.437Е — 06 1.400Е — 05 1.927Е — 02 1.855Е — 03 МПБМ (Джонса) 2.997Е —01 5.617Е-05 6.880Е — 04 2.О62Е — 04 1.101Е-06 2.433Е — 06 5.715Е —02 7.938Е - 02 3,231 Е —03 2.839Е — 01 1.388Е — 02 3.283Е - 06 1.738Е - 05 1.155Е —02 5.956Е —05 4.419Е —04 2.205Е - 04 1.095Е - 06 1.852Е —06 2.291Е — 02 8.751Е —03 4.506Е — 02 1.832Е— 01 G.396E-03 2,855Е — 06 7.806Е — 06 2.113Е —02 7.429Е — 06
Продолжение табл. X * * *34 *15 * * * * ft,(х*) К (**) К (х*) К (х*) Й6(х*) *•(*•) А, (х*) К (х*) Мх*) ft,0 (х*) ft,, (X*) Л32 (х*) ft,3 (х*) ft,4 (X*) Ли (х*) *,. (ж*) нлп 8.398Е—03 5.285Е—03 0 1,601 Е —03 4.968Е — 07 1.978Е — 02 6.271Е—03 5.328Е — 02 0 0 2.510Е —02 1.220Е — 06 0 0 5.118Е —02 2,407Е — 03 2,559Е - 05 4.493Е — 02 2.389Е — 02 З.Ю0Е —04 6.692Е - 06 6.376Е — 04 0 2.082Е — 02 —2.273Е — 03 —1.-380Е —02 6.946Е — 04 5,331 Е—02 7.789Е - 06 3.528Е - 09 МПБМ 3.264Е — 06 7.579Е — 07 3.510Е —07 2.513Е-07 0 4.200Е — 07 7.063Е — 06 0 0 1.305Е—06 1.465Е —05 1.382Е — 05 2.872Е—06 2.476Е — 06 2.529Е —07 2.263Е-07 1.917Е — 07 1,112Е—06 —4.518Е —07 —3.946Е — 07 6.771Е — 07 5.101Е — 07 —1.869Е —07 —1.950Е — 07 —2.273Е —03 -5.583Е — 07 6.001Е-07 1.169Е —06 2.180Е—07 1.284Е —07 МПБМ (Джонса) 3.017Е—05 5.056Е - 05 4,87 IE —05 2.142Е — 03 2.337Е — 06 1,821 Е —04 8.583Е — 05 2.355Е — 05 1,251 Е —03 7.573Е — 03 3.038Е — 04 3.902Е — 05 2.879Е — 02 1.499Е—03 —4.800Е — 07 1.592Е — 06 2,631 Е—06 —4624Е + 01 —4.624Е + 01 1.340Е—01 1.362Е—06 1.362Е—06 —3.948Е — 03 2.280Е — 03 —2.273Е — 03 —2.699Е — 04 —8.575Е—03 8.847Е—03 —5.529Е — 07 —3.330Е — 07
450 ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 h 0,6529581 0,281941 3,705233 47,00022 47,02972 0,08005 0,08813 0,04829 0,0155 0,0211275 0,0022725 0,0 0,0 0,0 0,0 0,0 Значения Р; и i 1 2 3 4 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 k 1 1 1 I 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 Cjk в задаче °jk 0,0 —7,69 —11,52 -36,60 — 10,94 0,0 0,0 0,0 0,0 0,0 0,0 2,5966 -39,39 —21,35 -32,84 6,26 0,0 10,45 0,0 —0,50 0,0 0,0 6 i 6 7 8 9 10 11 12 13 14 15 16 17 18 1 2 3 1 2 3 1 2 1 2 k 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 5 5 5 6 6 7 7 0,0 2,2435 0,0 -39,39 —21,49 —32,84 6,12 0,0 0,0 —1,9028 —2,8889 —3,3622 —7,4854 -15,639 0,0 21,81 —16,79 0,0 18,9779 0,0 11,959 0,0 12,899 Данные для определения в задаче 6 to 12 15 16 x3i Xg, 1 — 1 — 1 1 1
Продолжение табл. 12 13 15 16 -1 — 1 2 —1 -4 -3 2 -1 -1 —2 —3 —4 — 1 —4 —4
452 Приложение А Задача 7 [6]. Число переменных равняется трем. Задача содержит 14 нелинейных ограничений в виде неравенств и шесть предельных ограничений для значений, которые могут принимать независимые переменные. Это одна из типичных задач, при решении которых целевые функции и функции, задающие ограничения, описываются с помо- помощью автономной машинной подпрограммы. Требуется максимизировать / (х) = 0,063у2уь — 5,04^ — 3,36#3 — 0,035я2 — при ограничениях 0 < х1 < 2000, 0<xs< 16000, 0<х3< 120, 0 < уг < 5000, О < у3 < 2000, 0,01 <г/7<4, 145<#8<162. Описание процедуры вычисления уъ у3,. уи ys, ув, у? и у8 на языке ФОРТРАН выглядит следующим образом: YB) = 1.6*ХA) 10 YC) = 1.22*YB) - YF) = (ХB) Y2CALC = X(l)*A12. + 13.167*YF) - 0.6667*YF)**2)/100. IF(ABS(Y2CALC - YB)) - 0.001) 30,30,20 20 YB) = Y2CALC GOTO 10 30 CONTINUE YD) = 93. 100 YE) = 86.35 + 1.098*YF) ~ 0.038*YF)**2 + 0.325*(YD) - 89.) Y(8)= -133. + 3.*YE) YG) = 35.82 - 0.222*Y(8) Y4CALC = 98OOO.*XC)/(YB)*YG) + XC)*l000.) 1F(ABS(Y4CALC - YD)) - 0.0001) 300,300,200 200 YD) = Y4CALC GOTO 100 300 CONTINUE
Задачи нелинейного программирования 453 В качестве начальной выбирается допустимая точка х@) = [1745 12000 110]т. В этой точке / (х<0)) = 868,6458. Решение: х*= [1728,37 16 000 98,13]г, f(x*)= 1162,036, Задача 8 [7]. Число переменных равняется четырем. Задача содержит восемь предельных ограничений для значе- значений, которые могут принимать независимые переменные, и ха- характеризуется наличием неоптимальной стационарной точки при / (х) » 8, обеспечивающей быструю сходимость. По условию задачи требуется минимизировать f (х) = 100 (хг — х\J + A — ххJ + 90 (х4 — л|)а+ + A -x3f+ 10,1 [(х2- 1J + (xt- lJ|-f- 19,8(х2-Л)(х,- 1) при ограничениях — 10<д:(. < 10, i= 1, 2, 3, 4. В качестве начальной берется допустимая точка х@)=[-3 _1 -3 -~1]г, в которой f (х@)) = 19 192. Решение: х*=[1 1 1 if, f (x*) = 0. Задача 9 [8]. Число переменных равняется четырем. Задача содержит одно нелинейное ограничение в виде нера- неравенства. Требуется 19 МИНИМИЗИрОВатЬ / (X) = 2 (#*,выч — ^.наблJ. }/!,выч — j Г 1 + —— , \ ~j , \ 6,2832 / \ 7,658 / ехРр~~ Р 7,658х4 / "•* 1 + 12л:»
454 Приложение А где р* >= х3 + A — xs)x,. (Примечание. Значения с( и #(,набл ука- указаны в приведенной ниже таблице.) Ограничения задачи имеют следующий вид: i= 1 4, В качестве начальной выбирается точка = [2 4 0,04 2f, в которой f (x@)) = 4,8024. Решение: х* = [12,277 4,632 0,313 2,029]г, f(x) = 0,0075. Значения с; и yti набл в задаче 9 1 1 2 3 4 5 6 7 8 9 10 с 0,1 1 2 3 4 5 6 7 8 9 У , набл 0,00189 0,1038 0,268 0,505 0,577 0,604 0,725 0,898 0,947 0,845 11 12 13 14 15 16 17 18 19 с 10 11 12 13 14 15 16 17 18 У1, набл 0,702 0,528 0,385 0,257 0,159 0,0869 0,0453 0,01509 0,00189 Задача 10 [9]. Число переменных равняется пяти. Задача содержит десять линейных ограничений в виде нера- неравенств и пять предельных условий для значений, которые могут принимать независимые переменные. Требуется 5 5 5 5 минимизировать f (х) = 2 e\xt + 2 2 СцХ^ + 2 d/x)
Задачи нелинейного программирования 455 при ограничениях 5 /¦=1 = 1 ю, Х/>0, /= 1, .... 5. (Примечание. Значения е,-, a/, d/, Щ/ и Ь/ указаны в приведенной ниже таблице.) В качестве начальной выбирается допустимая точка х@> = = [0000 1]г, в которой f (х@)) = 20. Решение: х* = [0,3000 0,3335 0,4000 0,4285 0,224]г, f(x*) = —32,349. Исходные данные для задач 10 и 18 e! l/ 2/ csj сы alt аг\ a*i ae/ aii a . a»/ 1 —15 30 —20 —10 32 —10 4 —16 0 - 3,5 0 0 2 —1 1 1 1 2 —27 —20 39 —6 —31 32 8 2 2 0 —2 -9 0 —1 —2 2 1 3 —36 -10 —6 10 — 6 — 10 10 0 0 2 0 —2 4 1 —3 3 1 4 -18 32 -31 —6 39 -20 6 1 0,4 0 —4 1 0 —1 —2 4 1 5 —12 —10 32 —10 -20 30 2 0 2 0 - 1 -2,8 0 —1 —1 5 1 h -40 з -0,25 —4 h i s — 1 —40 —60 69 5 Задача 11 [10]. Число переменных равняется пяти. Задача содержит шесть нелинейных ограничений в виде нера- неравенств и десять предельных ограничений для значений, которые могут принимать независимые переменные. Заметим, что в структуру / (х) переменные хг и х4 не входят.
456 Приложение А Требуется минимизировать / (х) = 5,3578547х| + 0,8356891^5 + + 37,293239*!-40792,141 при ограничениях 0 < 85,334407 + 0,0056858х2х5 + 0.0006262ХЛ — — 0,0022053л;3л;5 < 92, 90 < 80,51249 + 0,0071317х2х5 + 0,0029955%^ + 0,00218134 < 110, 20 < 9,300961 + 0,0047026^5 + 0,0012547дс1ха + + 0,0019085х8л;4<25/ 78<х1<102, 33<х2< 45, 27 < xs < 45, 27<х4< 45, 27<х5< 45. В качестве начальной выбирается допустимая точка х@) = [78,62 33,44 31,07 44,18 35,22]г, в которой f (х@)) = —30367. Решение: х* = [78,000 33,000 29,995 45,000 36,776]г, f(x*) = - 30 665,5. В качестве начальной можно взять точку х'0) = [78 33 27 27 27] , лежащую вне допустимой области. В этой точке / (х<0)) = —32 217. При этом также приходим к решению х* = [78,000 33,000 29,995 45,000 36,776]г, f (х*) = — 30 665,5. Задача 12 [3]. Число переменных равняется пяти. Задача содержит 4 линейных ограничения в виде неравенств, 34 нелинейных ограничений в виде неравенств (причем оказывается, что некоторые из них можно исключить из условия задачи) и 10 ограничений, задающих нижний и верхний пределы изменения независимых переменных. Требуется максимизировать / (х) = 0,0000005843г/17 — 0,000117уи — 0,1365 — ~ 0,00002358^3 — 0,000001502#16 — 0,032\уа — 0,004324#а - — 0,0001 -^ — 37,48 -^-. С1« с
Задачи нелинейного программирования 457 Величины yt и сс определяются следующими соотношениями: уг = х2 + лг3 + 41,6. cL = 0,024х4 — 4,62, ft =-^ + 12,0, са = 0,0003535*? + 0,5311хх + 0,08705#л;„ с3 = 0,052^ + 78 + 0,002377^, г/з= —, »8 С3 ' с4 = 0,04782 (Xl - уз) + °'1956^-^2 4- 0,6376у4 4- 1,594#3, с5= 100х2, Съ=Ч — Уз — У*, с, = 0,950 --J, — У* — Уз, J 0,995, - 0,3153, Ую = 1.29^s 4- 1,258^ + 2,29% 4- yu = 1,71*! - 0,452#4 4- 0,580г/3, _ 12,3 Cl° ~ 752,3 ' Cu = A,75ft) @,995*!), c13 = 0,995#10 4- 1998, = с13 — 1,75ft,
458 Приложение А уи = 3623 + 64,4x3 с13 = 0,995#10 + 60,8*„ + 48*4 - 0,1 \2\уи — 5095 г/1в = 148 000 - 331 000г/18 + Щ13 - 61г/15г/13( с14 = 2324#10 — 28 740 000у.г, г/17 = 14 130 000 — 1328у10 — 531г/и + -g-, Съ- уп 0,52 ' си= 1,104-0,72г/13, Сп = Уо + хь. Ограничения имеют следующий вид: 1,5*2 *3 5> 0, 21,0 — 3496-^- >0, C12 62 212 11П 6— > 0 c17 ' Л -^ > 213,1 <y1 < 405,23, 17,505 <y2 < 1053,6667, 11,275 < y3 < 35,03, 214,228 <г/4 < 665,585, 7,458 <r/6 < 584,463, 0,961 <г/в < 265,916, 1,612 <г/7 < 7,046, 0,146 < д. < 0,222, 107,99 4. У» < 273,366, 922,693 < г/10 < 1286,105, 926,832 < уп < 1444,046, 18,766 <012< 537,141, 1072,163 < ^13 < 3247,039, 8961,448 <У14< 26 844,086,
Задачи нелинейного программирования 459 0,063 <ylb< 0,386, 71 084,33 <#1в< 140000, 2 802 713 < у„ < 12 146 108, 704,4148 <*! < 906,3855, 68,6 <х, < 288,88, 0<х3 < 134,75, 193 <х4 < 287,0966, 25<х5 < 84,1988. В качестве начальной берется допустимая точка х<0> = [900 80 115 267 27]г, в которой / (х@)) = 0,939. Решение: х*= [705,060 68,600 102,900 282,341 35,627]т, f(x*) = 1,905. Задача 13 [11]. Эту задачу можно рассматривать либо (а) как задачу, содер- содержащую 12 переменных, 7 ограничений в виде равенств и 16 огра- ограничений, задающих нижний и верхний пределы изменения неза- независимых переменных, либо (что проще) (б) как задачу, содержа- содержащую 5 переменных, 3 нелинейных ограничения в виде неравенств и 10 ограничений, задающих нижний и верхний пределы изме- изменения независимых переменных. Задача 13 иллюстрирует тот случай, когда требуется опреде- определять параметры в высокой степени нелинейных дифференциаль- дифференциальных уравнений, основываясь на экспериментальных данных. Це- Целевая функция фактически представляет собой сумму квадратов разностей между экспериментальными данными и решениями си- системы дифференциальных уравнений, полученными методами чис- численного интегрирования. По условию задачи требуется максимизировать/(х)= [50^ + 9,583^2 + 20у3+ 15^ — 852960 — — 38 100 (х2 + 0,0 \х3) + k31 + ^32*2 4- k33x3 + &зЛ + кэьхъ\ Ч — 24345+ \Ьх%. Значения yt (i = 1, 2, 3, 4), xs, x1 и х8 находятся путем решения следующей системы уравнений: *в = (ki + КЧ + КЧ + Кх* 4- У\ = ^6 I K-jX^ 4" ^8^3 ~Т~ ^9^4 ~\~ ^Ю Уч == ^11 "Г «12^2 I' К\зХъ 4" ^14-^4 4~
460 Уз У, Х7 где К = к = k3 = к = h = К = *7 = К = *9 = *10 = *U = ь _ «12 — *Ц = *u = *!• = 7 = Ограничения Приложение А -*,. + *,* + *, = ^21 + ^22^2 + &2 = (i/l + #2 + #з) •*! —- \§у | ?» *• 1. о + *»*в) «1 + *в 4- — 145421,402, 2931,1506, — 40,427932, 5106,192, 15711,36, — 161622,577, 4176,15328, 2,8260078, 9200,476, 13160,295, — 21686,9194, : 123,56928, -21,1188894, 706,834, 2898,573, 28298,388, ¦¦ 60,81096, : 31,242116, аХа + Кц 3*3 + К 1, 28*3 + k, ХЪ Кь = *м = K2S == /?24 == ^25 == ^26 = и "-27 ~~ k2g = k.,3 = k30 = kSl = k32 = ^33 = ^S4 = ^35 == имеют следующий вид: 0<^< 20 < х, ^ 9<х4< 6,5<*6< 0<*в< 0 < х, < 0<xa< 5, 60, 9,3, 7, 294 000 4x4 + ?25x8, ^4 + 329,574, — 2882,082, 74095,3845, - 306,262544, 16,243649, — 3094,252, — 5566,2628, — 26 237, 99, — 0,42, 1300, 2100, 925548,252, — 61968,8432, 23,3088196, — 27097,648, — 50843,766. » . 294 000, 277 200
Задачи нелинейного программирования 461 В качестве начальной выбирается точка х@) = [2,52 2 37,5 9,25 6,8]г, в которой / (х@)) = 2 351 243,5. Решение: х* = [4,538 2,400 60,000 9,300 7.000]7", /(х*) = 5 280 254, х; = 75 570, Х7= 198157, xg = 277 200. Задача 14 [12]. Число переменных равняется шести. Задача содержит четыре нелинейных ограничения в виде нера- неравенств. Задача 14 возникла в связи с реальной проблемой «централи- «централизации теплоснабжения нефтеочистительных заводов» и характе- характеризуется наличием большого числа локальных оптимумов, каж- каждый из которых имеет свою интерпретацию. По условию задачи требуется 4 6 минимизировать / (х) = 2 с (я,-) + 2 Ю0 с (х;) 1=1 1=5 при ограничениях ts — 300 > О, *4-300>0, 280-Г5>0, 250-7в>0. Для вычисления c(xt), tt и Tt используются следующие соотноше- соотношения: с ix.) = 2,7'х, + 1300 (наименьшее целое число > *'т ), _ 0,0285*! + 300 т _ V+ G0 -12) e~a' 1 + 0,0001425^ ' 4"~ i_o,8e-a' = 500 — 7\, /4 = 350 + (/, — Т4) eat, = — 0,6001665х2, 7/2 = 0,87\, + 0,274, • а« = 0.000375х6,
462 Приложение А , = 300 + B00 — Т2) еа\ Ть == 80 + G> — 80) е~а\ а3 = 0,085 • 9,36 • 10"Л„ Тп = 0,7Т1 + 0,ЗГ2, Т — 1 з B9,75— У ав = 0,0003хв, tt = 350 + (^ - Т3) еа\ Тв = 80 + (Тц - 80) <Га\ а4 = 0,00025 *4. В качестве начальной выбирается точка х@) = [8000 3000 14 000 2000 300 10]г, в которой / (х@)) = 459 100. Решение, полученное методом скользящего допуска, имеет следующий вид: х*= [11884 3288 20 000 4000 114,18 —155.03]7", f(x*) = 250799,9. Колвилл приводит следующие значения / (х) в оптимальной точ- точке х: При старте из допус- допустимой начальной точки 255303,5 389858,0 132518,0 Алгоритм, положенный в осно- основу машинной программы Алгоритм обобщенного градиента ПОП-360 Оптим (название специаль- специальной машинной програм- программы) При старте из точки, не являющейся допустимой') 266754,0 125578,0 Ч Имеется в виду точка х<°) = [8000 3000 10 000 2000 200 ЩТ. Задача 15 [13]. Число переменных равняется шести, из которых только две являются независимыми. Задача содержит 4 нелинейных ограничения в виде равенств, 2 ограничения на производные (в виде разрывных функций) и 6 ограничений, задающих нижнюю и верхнюю границы изменения переменных. (Задача оптимизации электрической цепи.) Требуется минимизировать / (х) = fx (*х) + /2 (л:2) при ограничениях 0<дг1<300, 300<х1<400,
Задачи нелинейного программирования 463 28л:а, 0<д:2<100, U (хг) = | 29л:г, 100 < хг < 200, I 30х2, 200 <х2< 1000, хг = 300 — 131 078 C0S (J >48577 - + ^ + 0,90798*1 131,078 C0S ! >47588' 0 "cos 1'47588» sin A -48477 + хв) + 4 sin 1,47588, 200 ~ 1з?,о78 sin A,48477-*,) + -^щ- 4 sin 1,47588 = О, О < % < 400, О < х2 < 1000, 340 < х3 < 420, 340 < х4 < 420, — 1000 < л:б < 1000, О <хв< 0,5236. В качестве начальной берется точка х!0)=[390 1000 419,5 340,5 198,175 0,5]г, в которой/(х@)) = = 9074,14. В зависимости от степени точности, с которой определяется точ- точка х, результаты оказываются различными. Наличие разрывов производных Д (xj) и /2 (х2) приводит к скачкообразному изме- изменению f (x) и х*. Это подтверждается данными, содержащимися в приведенной ниже таблице. * * Х2 * * х4 * Ч * ч Высокая точность 107,81 196,32 373,83 420,00 21,31 0,153 8297,5888 Умеренная точность 201,78 100,00 383,07 420,00 —10,907 0,07314 8853,44 или 8953,40
464 Приложение А Задача 16 [14]. Число переменных равняется девяти. Задача содержит 13 нелинейных ограничений в виде неравенств и одно ограничение, задающее верхний предел изменения одной из переменных. Данная задача связана с максимизацией площади шестиуголь- шестиугольника, максимальный линейный размер которого (диаметр) равен единице. Задача сводится к максимизации / (х) = 0,5 (xtxt — х2х3 + х3х9 — х6х9 + хьхг — хвх?) при ограничениях -*92>0, 1— x'i — *6>0, — х\— (х2 — х9J>0, - (х3 — хчу— (х, - l-~x27-(xs-x9)i - и, В качестве начальной выбирается точка #10) = 1, i = 1, ...» 9, в которой / (х@)) = 0. Решение: х*= [0,9971—0,0758 0,5530 0,8331 0,9981 — 0,0623 0,5642 0,8256 0.0000024]71, /(х*) = 0,8660. Задача 17 [4]. Число переменных равняется десяти. Задача содержит 20 ограничений, задающих нижнюю и верх- верхнюю границы изменения переменных. Вне допустимой области целевая функция не определена.
Задачи нелинейного программирования 465 Требуется ю минимизировать / (х) = 2 {Пп (х( — 2)]а + [In A0 — х,)]2} — I \0.2 при ограничениях 2,001 <*,< 9,999, /=1 10. В качестве начальной выбирается точка х?) =9, i = 1, ..., 10. Решение: х*= [9,351 9,351 9,351 9,351 9,351 9,351 9,351 9,351 9,351 9,351 f, /(х*)= —45,778. Задача 18 [9]. Число переменных равняется 15. Задача содержит пять нелинейных ограничений в виде нера- неравенств и 15 ограничений, определяющих границы изменения не- независимых переменных. Данная задача является двойственной по отношению к задаче 10. Требуется 10 5 5 максимизировать / (х) = У, Ь,хь — 2 2 CijX\o+iX\O+i — 2 при ограничениях 5 10 2 2 CijXio+i + 3d/xfo+/ + ej — 2 а^ > 0, / = 1, ..., 5, ii i Xi >0, i = l,..., 15. {Примечание. Значения ej, ctj, djt ац и bt содержатся в таблице, приведенной в связи с рассмотрением задачи 10.) В качестве начальной выбирается допустимая точка xf^ 0,0001, 1=1, .... 15, 1Ф7, хГ = 60, в которой /(х)@) = -2400,01.
466 Приложение А Решение: х*= [0,0000 0,0000 5,1740 0,0000 3,0611 11,8395 0,0000 0,0000 0,1039 0,0000 0,3000 0,3335 0,4000 0,4283 0.2240]7", Дх*) = — 32,386. К такому же решению можно прийти, начав оптимизационный поиск в точке x$» = b?>, i=l, .... 10, х<0) = 0, /=11, .... 14, *Р=1, /=15, которая не является допустимой и в которой f (х@)) = 6829,06. Задача 19 [15]. Число переменных равняется 16. Задача содержит восемь линейных ограничений в виде равенств и 32 ограничения, которые определяют нижнюю и верхнюю гра- границы изменения переменных. Требуется 16 16 максимизировать /(х) = — 2 2 аЧ ^ + *« + !) (*/ + */ + 1) i=i /=i при ограничениях 16 2 &</*/ = cit i = 1, .. . , 8, 0 <Х(<5, /= 1, ... , 16. (Примечание. Значения &/, Ьц и ct указаны в приведенной ниже таблице.) В качестве начальной выбирается точка л:'0) = 10, i == 1, ... ..., 16, лежащая вне допустимой области. В этой точке / (х@)) = = 209,457. Решение: т х* = [0,040 0,792 0,203 0,844 1,270 0,935 1,682 0,155 1,568 0,000 0,000 0,000 0,660 0,000 0,674 0,000]\ f (х*) = — 244,900.
Данные для задачи 19 N. / a ¦ по: **%} «4/ a,, <V aio/ au/ а1Ы ai6/ *i/ b%j *S/ *./ 63/ 1 0,22 — 1,46 1,29 —1,10 1,12 2,5 2 1 0,20 —0,89 —1,06 -1,72 0,45 1.1 3 1 1 0,19 —1,30 0,95 —0,33 0,26 —3,1 4 1 1 0,25 1,82 —0,54 — 1,43 0,31 —1,10 -3,5 5 1 0,15 —1,15 —1,16 1,51 1,62 0,58 1,3 6 1 1 0,11 —0,96 —1,78 0,59 1,24 2,1 7 1 1 1 1 1 0,12 0,80 —0,41 —0,33 0,21 1,12 —1,03 2,3 8 1 1 1 0,13 —0,49 —0,43 —0,26 0,10 —1,5 9 1 1 1,00 —0,36 10 1 1 1 1 1 1,00 11 1 1 [ 1,00 12 1 1 1 1,00 13 1 1 1 1,00 14 1 1 1 1 1 1,00 15 1 1 1 1 1 1,00 16 1 I 1 1 i 1,00
468 Приложение А Задача 20 [4]. Число переменных равняется 24. Задача содержит 12 нелинейных ограничений в виде равенств, 2 линейных ограничения в виде равенств, 6 нелинейных ограни- ограничений в виде неравенств и 24 ограничения, задающих верхние границы интервалов изменения независимых переменных. Данная задача связана с минимизацией затрат на приготов- приготовление многокомпонентных жидких смесей. Задача состоит в том, чтобы 24 минимизировать / (х) = 2 ЩХ{ при ограничениях "ЛХ) ~ 24 П> —0, 1—1, ..., 12, /+13 ' /=1 ' 24 3 Vх' — Zi xi — * — и. 12 24 Лц(х) = 2j ~jt + / 2j "T- ^'°71 = "» где / = @,7302) • E30) 24 2*; > U, 1=1, А о, >0)/=:4>5N, 0, t= 1, .... 24. (Примечание. Значения at, bt, ct, d(. и et указаны ниже в таблицах.) В качестве начальной берется точка xf* = 0,04, i = 1 24, лежащая вне допустимой области. В этой точке / (х@)) = 0,14696. Решения, получаемые методом скользящего допуска, методом НЛП и методом МПБМ, имеют следующий вид:
* * 4 ¦ X4 * # хт * * ¦«л * * ¦«14 * * * * * * * * h (х*) К (X*) Л3 (х*) К (х*) ft6 (X*) fte (х*) Л, (х*) ft fv*\ "8 Iх / Метод скользящего допуска 0,05700 7.804Е — 1.121Е — 1.136Е — 0 0 0 6.609Е — 0 0 0 1.914Е — 6.009Е — 5.008Е - 1.844Е — 2.693Е — 0 0 0 1.704Е - 0 0 0 8.453Е — 1.980Е — 0 0 0 0 0 0 0 0 0 03 01 01 02 02 03 02 01 01 01 01 04 нлп 0,09670 9.537Е 0 4.215Е 1.039Е 0 0 2.072Е 5.979Е 1.298Е 3.350Е I.711E -07 -03 -04 — 01 — 01 -01 -02 — 02 8.427Е— 03 4.657Е 0 0 0 0 0 2.868Е 1.193Е 8.332Е 1.239Е 2.070Е 1.829Е 4.908Е 0 0 0 0 0 —2.209Е —8,521 Е -5.854Е — 10 -04 — 03 — 05 — 04 — 05 — 07 — 07 — 08 -08 -09 МПБМ 0,07494 9.109Е —03 3.739Е—02 8,96 IE—02 1.137Е—02 4.155Е —03 4.184Е—03 5.980Е — 02 1.554Е — 02 I.399E — 02 8.780Е — 03 1,231 Е —02 1.153Е —02 7.570Е — 02 7.997Е — 02 2.797Е — 01 1.168Е —01 2.347Е — 02 6.368Е — 03 2.028Е— 01 7.451Е—03 4.547Е — 03 1,010Е - 02 1.220Е — 03 1.810Е —03 —1.182Е —03 -4.329Е — 04 3.467Е — 03 2,217Е— 04 —2.550Е — 04 —7.368Е - 04 1.982Е — 03 —2.334Е — 05 1.629Е —03
Продолжение табл. Метод скользящего допуска нлп МПБМ hu (x*) Ait (**) л" С*) 0 0 0 0 N 8.137E —08 -2.596E — 08 5.766E - 08 0 0 —4,397 E — 04 9.431E—04 1.853E —03 —1.741E —02 8.743E — 03 i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Данные, относящиеся к задачам Ч 0,0693 0,0577 0,05 0,20 0,26 0,55 0,05 0,10 0,12 0,18 0,10 0,09 0,0693 0,0577 0,05 0,20 0,26 0,55 0,06 0,10 0,12 0,18 0,10 0,09 44,094 58,12 58,12 137,4 120,9 170,9 62,501 84,94 133,425 82,507 46,07 60,097 44,094 58,12 58,12 137,4 120,9 170,9 62,501 84,94 133,425 82,507 46,07 60,097 Н 123,7 31,7 45,7 14,7 84,7 27,7 49,7 7,1 2,1 17,7 0,85 0,64 0 и 18 "i 31,244 36,12 34,784 92,7 82,7 91,6 56,708 82,7 80,8 64,517 49,4 49,1 Н 0,1 0,3 0,4 0,3 0,6 0,3
Задачи нелинейного программирования 471 Задача 21 [16]. Число независимых переменных равняется трем. Задача содержит 6 ограничений, задающих нижнюю и верхнюю границы изменения независимых переменных. Требуется 99 минимизировать / (х) = ^] | ехр —("»~ *а) 3 — 0,0 ш , щ = = 25 + (— 501n0,0ltI/!f5 при ограничениях 0,1 <*!< 100,0, 0,0 <*2< 25,6, 0,0<*3< 5,0. В качестве начальной выбирается допустимая точка х<0) = [100,0 12,5 3,0]г. Решение: х*=[50,0 25,0 1,5]г, /(х*) = 0,0. Задача 22 [17]. Число независимых переменных равняется шести. Задача содержит 4 нелинейных ограничения в виде неравенств и 12 ограничений, задающих нижние и верхние границы изменения независимых переменных. Требуется минимизировать f (х) = 4,3*! -j- 31,8xa + 63,3jc3 + 15,8л:4 + + 68,5х5 + 4,7хв при ограничениях 17,l*x + 38,2л:2 + 204,2*3 + 212,3лг4 + 623,4х5 + 1495,5л:в — — 169^*3 — 3580х3л:5 — 3810jc4jc5 — 18 500х4л:в — 24 300*6л:в > 61( 17,9*! + 36,8хг + 113,9*з + 169,7*4 + 337,8х6 + 1385,2*6 — — 139*^3 — 2450*4*5 — 16 600*4*в — 17 200гБ*8 >62, — 273*2 — 70*4 — 819*5 + 26 000*4х5 > Ья, 159,9*! — 311*2 + 587*4 + 391*5 + 2198*в — 14000*х*в >&4) 0<*1<0,31, 0<*4<0,042, 0 < *2 < 0,046, 0 < *6 < 0,028, 0<*3<0,068, 0 <*6< 0,0134- Ниже приводится решение задачи для различных значений па- параметров.
472 Приложение А Для ь, 4,97 4,97 32,97 32,97 ь, \ ь3 —1,88 — 1,88 25,12 25,12 - 29,08 — 69,08 — 29,08 —124,08 *4 — 78,02 —118,02 — 78,02 —173,02 0 0 0 0 0 0 0 0 0 0 0,0633 0,0633 Решение 0 0 0 0 0 0 0 0 0,00333 0,00332 0,0134 0,0134 0,0156 0,0156 4,070 4,070 Задача 23 (распределение орудий по целям) [11. Число независимых переменных равняется 100. Задача содержит 12 линейных ограничений и 100 ограниче- ограничений, задающих нижние границы для значений, которые могут при- принимать независимые переменные. Требуется 20 5 П 1 минимизировать / (х) = _2j при ограничениях1» B *</)-*>/> 0, /= 1, 6, 10, 14, 15, 16, 20, /20 \ -12*</ -с<>°- /=1 5- Задача 24 [1]. Число независимых переменных равняется двум. Задача содержит одно нелинейное ограничение в виде нера- неравенства и одно линейное ограничение также в виде неравенства. Требуется минимизировать / (х) = (хг — 2J -J- (х% — IJ при ограничениях В качестве начальной выбирается точка х@) ==[2 21Г, лежащая вне допустимой области. В этой точке / (х@)) = 1. Решение: /(х*) = 1, х* = [1 if. Задача 25. Число независимых переменных равняется двум. Ограничения отсутствуют. См. таблицу на стр. 471,
Данные для задачи 23 вероятность того, что у-е орудие ие поразит /-ю цель X 1 2 3 4 5 1 1 0,84 0,96 1 0,92 2 0,95 0,83 0,95 1 0,94 3 1 0,85 0,96 1 0,92 4 1 0,84 0,96 1 0,95 5 1 0,85 0,96 1 0,95 6 0,85 0,81 0,90 1 0,98 7 0,90 0,81 0,92 1 0,98 8 0,85 0,82 0,91 1 1 9 0,80 0,80 0,92 1 1 10 1 0,86 0,95 0,96 0,90 и 1 1 0,99 0,91 0,95 12 1 0,98 0,98 0,92 0,96 13 1 1 0,99 0,91 0,91 14 1 0,88 0,98 0,92 0,98 15 1 0,87 0,97 0,98 0,99 16 1 0,88 0,98 0.93 0,99 17 1 0,85 0,95 1 1 18 0,95 0,84 0,92 1 1 19 1 0,85 0,93 1 1 20 1 0,85 0,92 1 1 ч (количест- (количество ору- орудий типа 0 200 100 300 150 250 bj — минимальное число орудий, выделяемых для поражения 1-й цели 30 100 40 50 70 35 10 — степень важности (с военной точки зрения) /-й цели 60 50 50 75 40 60 35 30 25 150 30 45 125 200 200 130 100 100 100 150
Орудие типа < 1 2 3 4 5 Итого 1 1 47 E0) 48 E0) Допустимые 2 24 A6) 8 9 5 D6) 46 F2) 3 2 36 D7) 38 D7) 4 18 B3) 12 30 B3) решения, получаемые при решении задачи распределения орудий 5 11 B0) 29 40 B0) 6 32 A00) 62 6 100 A00) 7 37 C8) 37 C8) 8 28 B6) 28 B6) 9 22 B0) 22 B0) -1омер 10 50 E0) 50 E0) цели / 11 9 42 E7) 51 E7) 12 39 C9) 39 C9) 13 E0) 51 51 E0) 14 58 E7) 58 E7) 15 5 29 B5) 35 D5) 1 70 G0) 16 9 C1) 44 D) 53 C5) по целям . 17 21 A) 17 G6) 38 G7) 18 52 25 E6) 77 E6) Uj 19 62 F2) 62 F2) 20 60 F1) 60 F1) Итого 200 B00) 99 A00) 299 C00) 150 A50) 250 B50) Примечание: f (х*) = 1732. Числа без скобок взяты у Хольтцмана, числа в скобках заимствованы у Брэкена и Мак-Кормика.
Задачи нелинейного программирования 475 Требуется минимизировать f (х) = 4 (хг —. 5J + (^2 — бJ. В качестве начальной выбирается точка х@)=[8 9]г, в которой / (х@)) = 45. Решение: х*=[5 6]г, f(x*) = O. Задача 26 [18]. Число независимых переменных равняется четырем. Ограничения отсутствуют. Требуется минимизировать / (х) = (хх + Юл:2J + 5 (х3 — я4J + {х2 — 2л:3L + + \0{xl — xJt. В качестве начальной выбирается либо точка х() = [3 —1 О 1]г, в которой /(х@)) = 215, либо точка х@) = [1 1 1 1\т, в которой /(х@))= 125. Решение: х* = [0 0 0 0]т, f(x*) = O. Задача 27. Число независимых переменных равняется двум. Ограничения отсутствуют. Требуется минимизировать / (х) = (л^J A —х,}2 [1 — хх — х2 A — х^5]2. В качестве начальной выбирается точка х@> = [—1,2 1]г, в ко- которой /(х@)) = 26 656. Решение: точкой х* является либо точка [1, неограниченное значение!7, либо точка [0, неограниченное значение]71, либо точка [неограниченное значение, 0]т, f (х*) = 0. Задача 28 (связана с решением системы уравнений). Число независимых переменных равняется двум. Ограничения отсутствуют. Требуется минимизировать f (х) = (х\ + х2 -~ 11J + (xt + х\ — If. В качестве начальной берется точка х<0) = [1 1]г, в которой f (x@)) = 106.
476 Приложение А Решение: а) х* = [3,58443 — 1,84813]г; б) х* = [3 2\т, f (х*) = 0. (Примечание. Все машинные программы при старте из точки х<0) = [1 11Г приводят ко второму решению.) Задача 29. Число независимых переменных равняется двум. Ограничения отсутствуют. Требуется минимизировать / (х) = (х\ + 12х2 — IJ + D9*? + 49л| + 84хг + + 2324x2 — 681J. В качестве начальной выбирается точка х<0) = [1 lF, в которой / (х<0)) = 3,3306 • 10е. Решение: а) х* = [0,28581 0,27936]г, /(х*) = 5,9225; б) х* = [— 21,026653 - 36,7660090]г, / (х*) = 0. Задача 30. Число независимых переменных равняется трем. Ограничения отсутствуют. Требуется минимизировать / (х) = 100 \х3 — / ч + ч YJ + A - х2J + + A-^2J. В качестве начальной выбирается точка х<0) = [— 1,2 2 01г, в которой f (х@)) = 8,40. Решение: х* = [1 1 1]г, /(х*) = 0. Задача 31 [1]. Число независимых переменных равняется двум. Ограничения отсутствуют. Требуется минимизировать / (х) = (х, - 2f + (х2 - If +1^ + -^ • при ограничениях gi(*) = -^ 4+U hi (х) = хх — 2хг + 1,
Задачи нелинейного программирования 477 В качестве начальной берется точка х@) = [2 2]т, в которой / (х<0)) = 5,99. Решение: х* = [1,7954 1,3779]г (локальный минимум), /(х*) = 0,16904. (Примечание. Другие варианты выбора начальной точки приво- приводят к другим' решениям. При проверке не было получено ни реше- решение, приведенное в указанном выше источнике, ни данное решение при указанном начальном векторе. Представляется важным сле- следующее обстоятельство: при достаточно больших начальных пе- перемещениях (т. е. при начальных перемещениях с большой дли- длиной шага) локальный минимум f (x) удается обойти, в результате чего оптимизационный поиск сразу приводит к глобальному ми- минимуму f (х) при gi (х) = — 0, когда / (х) -+ — оо.) Задача 32. Данная задача возникает в связи с оцениванием эксперимен- экспериментальных данных методом наименьших квадратов. Число независимых переменных равняется четырем. Ограничения отсутствуют. Требуется минимизировать / (х) = 10* 2 ]?] у В качестве начальной выбирается точка х@) = [2,7 90 1500 10]г, в которой / (х@)) = 2,905 • 104. Решение: х*= [2,714 140,4 1707 31,51]т, f(x*) = 318,572. Ниже указаны значения констант at и bt\ i 1 2 3 4 5 6 7 щ 0,0 0,000428 0,00100 0,00161 0,00209 0,00348 0,00525 bl 7,391 11,18 16,44 16,20 22,20 24,02 31,32
478 Приложение А Задача 33. Число независимых переменных равняется двум. Ограничения отсутствуют. Требуется максимизировать f (x) = e~*s~x* Bх\ + 3x1). В качестве начальной выбирается точка х<0> = [2,5 2,5]г, в ко- которой /(х<0)) = 2,3299 • Ю-5. Решение: х*=[0 if или х*= [О -if, /(х*)= 1,1036. Задача 34 [19]. Число независимых переменных равняется трем. Ограничения отсутствуют. Требуется минимизировать / (х) = 100 {[х3— 10 9 (х1г х2)]2+ [(xl + xlf'2 — - П2} + xl В качестве начальной б ' nrrtff Xi г 2я ° ^ё ' ерется точка х(°) _ г 1 п 01г Решение: х* = [1 0 Of, /(х*) = 0. Задача 35. Число независимых переменных равняется Ограничения отсутствуют. Требуется минимизировать / (х) = и\ + и\ + и\, где Щ = С[ — х± A — 4), Cj = 1,5, с2 = 2,25, В качестве начальной выбирается точка х<0) = [2 /(х<0)) = 0,52978. Решение: X* = [3,0000 0,5000]г, двум. с3 = 2,625. 0,2]г, в которой
Задачи нелинейного программирования 479 ЛИТЕРАТУРА 1. Bracken J., McCormick G. P., Selected Applications of Nonlinear Program- Programming, Wiley, N. Y., 1968. 2. Rosenbrock H. H., An Automatic Method for Finding the Greatest and Least Value of a Function, Computer J., 3, 175 A960). 3. Barnes G. K., M. S. Thesis. Univ. of Texas, Austin, Tex., 1967. 4. Paviani D. A., Ph. D. Dissertation, Univ. of Teras, Austin, Tex., 1969. 5. Jones A. P., The Chemical Equilibrium Problem: An Application of SUMT, Res.Analysis Corp.. McLean, Va., RAC-TP-272, 1967. 6. Colville A. R., A Comparative Study on Nonlinear Programming Codes, IBM N. Y. Sci. Center Rept. 320-2949, June, 1968, p. 31. 7. Wodd С F., Westinghouse Res. Lab. (cited in Colville, IBM N. Y. Sci. Center Rept. 320-2949, June, 1968). 8. Himmelblau D. M., Yates R. V., A New Method of Flow Routing, Water Resources Res., 4, 1193 A968). 9. Shell Development Co. (cited in Colville, IBM N. Y. Sci. Center Rept. 320- 2949, June, 1968, p. 21). 10. Proctor and Gamble Co. (cited in Colville, IBM N. Y., Sci. Center Rept. 320- 2949, June, 1968, p. 24). 11. Box M. J., A New Method of Constrained Optimization and a Comparison with Other Mehods, Computer J., 8, 42 A965). 12. Efroymson M. A., Esso Res. and Engineering Co. (cited in Colville, IBM N. Y. Sci. Center Rept. 320-2949, June, 1968, p. 26). 13. Huard P., Electricite, de France, Directions des Etudes et Recherches (cited in Colville, IBM N. Y. Sci. Center Rept. 320-2949, June, 1968, p. 28). 14. Pearson J. D.,On Variable Metric Methods of Minimization, Res. Analysis Corp. Rept: RAC-TP-302, McLean, Va., May, 1968. 15. Gauthier J. M., IBM France (cited in Colville, IBM N. Y. Sci. Center Rept. 320-2949, June, 1968, p. 29). 16. Holzman A. G., SRCC Rept. 113, Univ. of Pittsburgh, Pittsburgh, Pa., 1969. 17. U. S. Steel Co (cited by Holzman, SRCC Rept, 113, 1969). 18. Powell M. J. D., Computer J., 5, 147 A962). 19. Fletcher R., Powell M. J. D., Computer J., 6, 33 A963).
Приложение Б ПРОГРАММЫ НА ЯЗЫКЕ ФОРТРАН, НЕПОСТАВЛЯЕМЫЕ КОММЕРЧЕСКИ Для решения задач нелинейного программирования при от- отсутствии ограничений представленные программы используют следующие алгоритмы: 1) алгоритм Бройдена; 2) алгоритм Дэвидона — Флетчера — Пауэлла; 3) алгоритм Пирсона 2; 4) алгоритм Пирсона 3; 5) алгоритм Флетчера — Ривса; 6) алгоритм Ньютона; 7) проективный алгоритм Ньютона; 8) алгоритм Голдштейна — Прайса; 9) алгоритм Пауэлла; 10) алгоритм Нелдера — Мида. При решении задач нелинейного программирования при нали- наличии ограничений используется алгоритм, скользящего допуска. Б.К АЛГОРИТМЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ПРИ ОТСУТСТВИИ ОГРАНИЧЕНИИ, ОСНОВАННЫЕ НА ВЫЧИСЛЕНИИ ПРОИЗВОДНЫХ Приведенные ниже инструкции являются руководством для использования программ", основанных на применении в сочетании с методом золотого сечения и методом ДСК — Пауэлла (Когги- на) следующих алгоритмов: 1) алгоритма Дэвидона — Флетчера — Пауэлла; 2) алгоритма Пирсона 2; 3) алгоритма Пирсона 3; 4) алгоритма Бройдена; 5) проективного алгоритма Ньютона; 6) алгоритма Флетчера — Ривса; 7) алгоритма Ньютона; 8) алгоритма Голдштейна — Прайса. 1. Структура программы /./. Вызывающая программа EXEC. Эта программа запускает INDIC и IPRINT и измеряет время их исполнения, исключая I) Автор приносит благодарность М. Аиденбергу за подготовку программ 1—8.
Программы на языке ФОРТРАН 481 время запуска программы. Следует задать IPRINT = 1, что- чтобы получить полную распечатку каждого шага, и IPRINT = 2, если необходимо распечатать только окончательные значения це- целевой функции и вектора х. Программа EXEC вызывает подпро- подпрограмму MINI. (Правила использования INDIC приводятся в опи- описании подпрограммы SEARCH.) 1.2. Подпрограмма MINI. Эта подпрограмма управляет вы- выбором используемого алгоритма. Она вызывает DER, FUN, ETA и CONVRG. Имеются разные варианты MINI для следующих групп алгоритмов: а) Дэвидона — Флетчера — Пауэлла, Бройдена, Пирсона 2, Пирсона 3, проективного Ньютона; б) Ньютона; в) Голдштейна — Прайса; г) Флетчера — Ривса. Подпрограмма MINI также обеспечивает распечатку инфор- информации на каждом шаге при условии использования IPRINT. 1.3. Подпрограмма ЕТА. Эта подпрограмма обеспечивает вы- вычисление матрицы выбора направлений для первых пяти из ука- указанных выше алгоритмов (т. е. имеется пять различных вариантов подпрограммы ЕТА). 1.4. Подпрограмма CONVRG. Эта подпрограмма обеспечивает вычисление критерия сходимости, определяемого в конце каж- каждого шага, на основе значений / (х), х и производных от f (x). 1.5. Подпрограмма SEARCH. Эта подпрограмма включает несколько взаимозаменяемых групп команд одномерного поиска. 1.6. Подпрограмма FUN. Данная подпрограмма содержит функцию, подлежащую минимизации. Чтобы обеспечить мини- минимизацию функции f (x), необходимо ее представить как FX== ... . 1.7. Подпрограмма DER. Эта подпрограмма обеспечивает вы- вычисление первых частных производных / (х) в следующей после- последовательности: GX A) — частная производная по хъ GX B) — частная производная по х2 и т. д. 1.8. BLOCK DATA. Подпрограмма обеспечивает присвоение начальных значений составляющим х и фиксирует число незави- независимых переменных N (N принимает целочисленные значения). 2. Данные, подготавливаемые пользователем Параметры в программу не вводятся. Однако это можно осу- осуществить, если добавить соответствующие подпрограммы. 2.1. Чтобы провести линейный поиск (методом ДСК — Пауэл- Пауэлла (Коггина) или методом золотого сечения), необходимо исполь- использовать соответствующие подпрограммы SEARCH и MINI, опре- определив их при помощи комментариев за заголовком подпрограммы.
¦482 Приложение Б 2.2. Чтобы выбрать необходимую подпрограмму ЕТА, соот- соответствующую группе алгоритмов 1—5, необходимо прочесть ком- комментирующие перфокарты, следующие после заголовка. Когда в колоду перфокарт вставляются карты с кодирограммой ЕТА, необходимо убедиться, что ранее используемый вариант этой ко- я.исограммы из колоды изъят. 2.3. В подпрограмме BLOCK DATA необходимо подготовить исходные предполагаемые значения х'°> вектора х и указать раз- размерность вектора х и число переменных. В соответствующей строке после слова DATA нужно разместить вводимые значе- значения х и размерности N (целое) так, как показано в приводимом ниже примере подпрограммы1). PROGRAM EXEC!INPUT«OUTPUT» COMMON /THREE/ N,NFUNCT.NDRV»ITER«IND1C.IPR!NT NFUNCT=O 1NDIC=2 IPRINT = 1 CALL SECOND(TIME) PRINT 2000» TIME CALL MINI CALL SECONDCTIMEI PRINT 2000, TIME CALL EXIT 2000 FORMATl«OTIM? IS NOW».F1Q.3>* SECONDS.*./» END SUBROUTINE CONVRGCGY.IPASSJ COMMON /ONE/ X(lOI.YtlO).StlO)»FX.FY COMMON /THREE/ N.NFUNCT.NDRViITERUNplOtPRINT DIMENSION GYtlOJ ' XTOL=O.00OO1 * Рассмотренные программы для решения задач нелинейного программи- программирования написаны на языке ФОРТРАН IV. Здесь процедура присвоения тех или иных значений переменным осуществляется в момент загрузки программы при по- помощи предложения DATA и подпрограммы BLOCK DATA. Эти методы присвоения значений переменным являются отличительной чертой языка ФОРТРАН IV. Одна- Однако приводимые программы можно реализовать и с использованием обычного транслятора с ФОРТРАНа, изменив соответствующим образом процедуры присвое» ния значений переменным.— Прим. перев.
483 FTOL»O.00001 GTOL=0.0001 С CHECK. FUNCTION VALUES 1F(ABS<FX).LE.FTOL) G0T010 IF<ABS<<FX-FYI/FX>.GT.FTOL1 GO TO 60 00 TO 20 10 1F(ABS(FX-FY).OT.FTOL) GO TO 60 С CHECK. TEST POINT 20 DO <tO I'ltN 1F(ABS(XU)).LE.XTOL> CO TO 30 1F(ABS((X(l)-Y(l))/X(l)l.GT.XTOL) CO TO 60 GO TO 40 30 1F(ASS(XU)-YA)).GT.XTOL) 60 TO 60 «0 CONTINUE С CHECK. GRADIENT CO 50 I«ltN 50 lFlASS(GYU) ) .GT.GTOL) GO TO 60 С ALL CONVERGENCE CRITERIA SATISFIED IPASS'l RETURN С CONVERGENCE NOT ACHIEVED 60 !PASS«2 RETURN END BLOCK DATA COMMON /ONE/ XA0).YI10>.SA0),FXiFY COMMON /THREE/ N.NFUNCT.NDRV.ITER.INDIC.IPR1NT DATA IXI!>tI»lt«>»N/-3..-l.»-3..-l..*/ END SUBROUTINE DER(ZtGX) COMMON /THREE/ N,NFUNCT>NDRV»!TERi!NDIC«!PK1NI DIMENSION ZUO) DIMENSION TMF) DIMENSION GX(IO) TMI1I=2B)-2H)*ZAI TMI3'«Z(«)-ZC>*ZC) TMEl»ZB)-l TMFI=Z(«)-1 GX(H=-'*00.»Za)»TM(l)-2.»TMB) GXBl=2U0>*TM(l)+20.2*TME)+19.8»TMF1 G,XI3)=-360»ZC)»TMC)-2.*TMI4) GX(«l«180.*TMC)+20.2*TMF)+19.8*TME) NDRV=NURV+« RETURN END SUBROUTINE FUN(Z.FX) COMMUI4 /THREE/ N,iNFUNCT»NDKVtITER.INDICllPRINT DIMENSION Z(IO) DIMENSION TMF) TMI1I»ZB)-ZH )*ZU) TMI3l=Ze«)-ZCl*ZC) TM16I-ZI2I-1 TMI6l=ZC)-l FX=-100.*TMll)»TM(l)+TMB)*TMB)+90.*TMO)*TMC)+TMCil»TM(«l* A10.1*(TM15l»TME)+TMF(»TMFM+I9.a*TMEl»TMF^ NFUNCT=NFUNCT+l RETURN
484 SUBROUTINE MINI С NEWTON METHOD С THE ETA SUBROUTINE MUST CALCULATE THE ACTUAL HESSIAN MATRIX AN» С RETURN THE INVERSE IN THE H ARRAY. COMMON /ONE/ XU0>.YA0>.SA0),FX.FY COMMON /TWO/ HU0.1O),DELXA0),DELGA0i ,GX( 10) COMMON /THREE/ N.NFUNCT.NDRV.ITER.INDIC.IPRINT ITER=0 С EVALUATE INITIAL. POINY CALL FUNIX.FX» KOUNTS*KOUNTS+1 PRINT 2000. ITERtFXl(X(l)tI*bN> CALL DER(X.GX) С ITERATE FOR SOLUTION 10 1T?R=1TER+1 CALL ETA DO 30 I=liN S(I)=0. DO 20 J»1.N 20 S())=Sm-H(I,J)«GXUl 30 ycii'xcn+sdi CALL FUNCY.FY» KOUNTS=K.0UNTS+X С TEST FOR CONVERGE "•-- CALL DERtY.GX» CALL CONVRGIGX.IPASSl 1FIIPASS.EQ.l) GO TO 50 С CONVERGENCE CRITERIA NOT SATISFIED FX=FY DO W W»N «0 XU)*=VII> lF(lPKlNT.EQ.l) PRINT2000. ITER.FX»(X(I»«1»1»N) (iU TO 10 С CONVERGENCE CRITERIA SATISFIED 50 PRINT 2wOO. ITER.FY«IY(I).I»1»NI 2000 F0RHAT(lXii6,El6.8.EE16.8i) RETURN END SUBROUTINE MINI COMMON /ONE/ XA0»»YA0).SA0),FX.FY COMKUN /TWO/ HA0.10),DELXA0) ,DELC-AC) .GX(IO) COMMON /THREt/ NiNFUNCTfNDKVtlTERtlNDICilPRlNT DIMENSION GYA0) С EXECUTlVt PROGRAM FOR METHODS WHICH APPROXIMATE THE INVERSE OF THB С HESSIAN MATRIX INCLUDING С 1 DAVlDON-FLtTCHER.POWELL С 2 BROYDEN С 3 PEARSON 2 С « PEARSON 3 ITER=O С EVALUATE THE INITIAL POINT CALL FUN(XfFX) CALL DERlX.GX) PRIuT 2.00. ITER.NFUNCT.NORV.FX.(XIl|,l*i*N> С SET UP THE IDENTITY MATRIX Ъ DO 20 1*1.N DO 10 J..N io Hii.j)=o.o 20 H(l.l)=1.0 С TAKE GRAOIENT STEP IF(lPRINT.EQ.l) PRINT 2100 2100 FORHATC* GRAOIENT STEP*» DO 30 1=1.N 30 S(I)=-GX(I) С FIND NEXT POINT «a CALL SEARCH
485 СЙКЙ WHETHER SEARCH WAS A SUCCESS. IF NOT» RESET H AN6 TAKE fifiAOteNl SI?j> JF^FY.GE'.FXI GO 10 5 1TER*ITER+1 CALL DERIY.GY» CALL CONVRG(GY.IPASS) lFCIPASS.EQ.l) GO TO 70 CONVERGENCE CRITERIA NOT SATISFIED. FIND A NEW DIRECTION MATRIX lFUPRINT.EQ.il PRINT 2000, jTER»NFUNcT»NORVtFY»m 11 »l«X|N» DO 50 1 = 1.N OELUtl1«GYA)-GX(I) GX< W= 50 X.(l)»Yd) FX«FY CALL ETA С SET UP NEW SEARCH DIRECTION DO 60 l=l»N SUI'0. DO 60 J'bN 60 S(li=S(l)-H(I.J>»GY(J! GO TO 40 С CONVERGENCE CRITERIA SATISFIED 70 PRINT 2U00, ITER,NFUNCT«NDRV.FY,(Y(IMebN> 20U0 FORMATUX«3I7,E16.8,EE16.8)> RETURN END SUBROUTINE MINI С fUETCHER-REEVES CONJUGATE GRADIENT METHOD» SECTION 3.3-2 COMMON /ONE/ XA0)»YA0)»S.(I0),FX.FY COMMON /TWO/ H(IO.IO).0ELX110),DELGA0).GXA0) COMMON /THREE/ N.NFUNCT»NDRV»ITER.INDIC»IPRINT JTER=O 1RESET=N+I INOEX-IRESET С EVALUATE'STARTING POINT CALL FUN(XiFX) CALL OER(X.GX) PRINT 2O00, ITER,NFUNCTtNDRV,FXi|XlI) »l = bNl С CALCULATE SQUARED NORM OF GRADIENT 10 SQNOR1=0. 00 20 I'l.N 20 SQNOR1=SQNOR1+GX(I)*GX(IJ lF(INOEX.NE.lRESET) GO TO 50 С SET SEARCH DIRECTION TO NEGATIVE GRADIENT 30 IFdPPINT.EQ.I! PRINT 2100 2100 FORMAT!• GRADIENT STEP») INDEXsO DO АО 1*1.N 40 SCI>*-GX<1> go тч 70 С SET SEARCH OJRECTION USING RATIO OF SOUARED NORMS 50 00 60 i«l,N 60 S('I!»-GX(l]+S(I!»SQN0Rl/saNORZ С FIND NEXT' POINT 70 CALL SEARCH С СНЕС»; WHETHER SEARCH WAS A SUCCESS. IF NOT TAKE A GRADIENT STEP. 1FIFY.GE.FX) GO TO 30 CALL DER(Y»GX) INDEX'INDEX+1 ITERsITER+1 CALL COIWRG(GX»IPASSJ 1FAPASS.E0.1) GO TO 90 С CONVERGENCE CRITERIA NOT SATISFIED. CONTINUE SEARCH. IFdPRINT.EQ.il PRINT 2J00, ITERlNFVNCI fWRVlFYl U» I I »I»l С SAVE INFORMATION FOR NEXT STAOE W SO I°bN
OEIX(I!*Y(!J-Xm вО XIY FX'FY' SONOR2-SONOR1 00 TO 10 С CONVERGENCE CRITERIA SATISFIED 90 PRINT 2000r-ITERtNFUNCTtNDRV.Fy»(Y(I)»t>l»Nl 2000 FORMAT (IX »317 .?16.8, EЕ16.8П RETURN END SUBROUTINE ETA С DAVJDON. FLETCHER-POWELL METHOD» SECTION 3.4-2 COMMON /TWO/ H(IO.IO),DELXA0)tDELG(lO)»GX(lO) COMMON /THREE/ N,NFUNCT.NDKV«lTERllNOIC»IPRINT DIMENSION HOGUObOGHUO) DXDG'O. DGHDG*O. DO 20 1=1.N HDGtI)cDGHCl)-O. DO 10 J=1.N HDG(I>*HDG(I)-H(I.J)*DELG(Л 10 DGHIII=DGH(I)+DELGIJ)*HIJ,I) DXDG=DXi)G+DELX (I) »DEL&( I) 20 DGHDG»DGHDG+DGH(I>*DELG(l) DO 30 1=1.N DO 30 J-l.N 30 H(I.J)=H(l»J)+t>ELX(I)»DELX(J)/OXDG+HDG(I)*CCH(J)/C RETURN END SUBROUTINE ETA С BROYDEN METHOD. SECTION 3.4-1 COMMON /TWO/ HA0,10).DELX!l0>,OELGA0),GX(lO) CUMMW» /THREE/ N.NFUNCT.NDRV»1TER.INBIC»}PRINT DIMENSION DXHDGI10) DGTERM=O. DO 20 I-)fN DXHDG(I)'DELXU) DO 10 J'l.N 10 DXHDGd )«DXHDG(I)-HA.J)*DELG(J) ZO DGTERM«DGTERM+DXHDG(I(»OCLG(I) DO 30 I'l.N DO 30 JM.N 30 H(I.J>•H(J^I)•H(IlJ)+OXHOG(ll»DxHDG(J)/DGTER^f RETURN SUBROUTINE ETA С PEARSON 2: METHOD. SECTION 3.4 COMMON /TWO/ HU0U0) .DElXUOltDELGuOl ,GX(lO> COMMON /THREE/ N.NFUNCT.NDRV.ITER.INDK.IPRIHT DIMENSION DXHDGUO) DXDG'D. DO 20 I'l.N DXHDO(I)=0ELX(II DO 10 J=1.N 10 DXHDb(l>«DXHDG(I)-H(I.J>*DELG(J) EO DXDG»DXDG+OELX(I)*PELU(I) DO 30 1=1.N DO 30 J=1»N 39 H.(I.J)= RETURN END
487 SUBROUTINE ETA С PEARSON 3 METHOD. SECTION 3»* COMMON /TWO/ HA0.10)»OELX<iO>,OELGUO)»CXtiO> COMMON /THREE/ N.NFUNCT.NDRViITER'INPlCWPRlNT DIMENSION DXHDGUOI .DGHUOI DGHDG=0. DO 20 1=1.N DXHDGU>=DELX(!) DGHI1) = U. DO 10 J=1,N DXHDG(I I=DXHDG(I)-HA,J)»DELGIJ) 10 DGHA)=DGH<1)+DELG(J)»H(J,I> 20 DGHDG=DGHD(i+DGHtl>*DELG(l> DO 30 1=1,N DO 30 J=1,N 30 HI 1 ,J)=H( 1 ,JI+DXHDG( I)»DCH(Jl/OGHDG RETURN END SUBROUTINE ETA С PROJECTED. NEWTON METHOD, SECTION 3.* ISAME AS ZOuTg**!* PROJECTION С METHOD, SECTION Э.Э-4) С THE H MATRIX MUST RESET TO THE IDENTITY MATRIX EVCKV N STEPS COMMON /TWO/ HA0,10),DELXA0),DELGA01«GX(IO) COMMON /THREE/ N.NFUNCT.NDRV.ITER.INDICIPRINT DIMENSION HDGilO)•DGH(IO) DGHOG'0. DO 20 1=1,N H0G(l)=0. DGHA)=O. 00 10 J=1,N HDGd )=HOG(I)+HA,J)»DELG(J) 10 DGHU ) = DGH!I)+DELG(J)*H(J,I ) 20 DGHDG=UGHDG+DELG(I I»HDG(I) DO 30 1=1,N DO 30 J=1,N 30 H(I, J)*HA1J)-DGH!I)«HDGIJI/0GH05 RETURN END SUBROUTINE MINI С GOLDSTtlN-PRlCE METHOD, SECTION 3.* С VERSION 2. THE SEARCH DIRECTION (PHI) IS SET TO THE GRADIENT ONLY ON С THE FIRST STEP AND WHEN Q IS SINGULAR COMMON /ONE/ XA0),YA0),PHII10)»FX,FY COMMON /TWO/ 0A0,10),DELXUO) ,DELG( 10 ) ,GX I 10) COMMON /THREE/ N,NFUNCT»NDRV,ITER,1NDIC.1PR1NT DIMENSION GYI10) R'0.0001 THETA=R 1TER=O С EVALUATE STARTING POINT CALL FUN(X»FX( CALL OER(X.GX) С PRINT POINT PRINT 2U00, ITER,NFUNCT,NDRV»FX.(X(II,1=1,N> GO TO 70 С GENERATE THE Q MATRIX 10 DO 30 JM,N XSAVE'XIJ) X(J)=X(J)+THETA CALL OER(X,GY) DO 20 1=1.N 20 0<I,J>MGY(!)-OX(I>>/THEIA 30 X(J)=XSAVE С INVERT Q
488 CALL SYMlNVlO.N.IO.ISFl IFUSF.NE.l) CO TO 40 1FIIPRINT.EQ.1) PRINT 2200 2200 FORMATAX.*O IS SINGULAR») GO TO 70 С FORM THE PHI VECTOR USING 0 40 DO 50 1=1.N РН1Ш-0. DO 50 J=1.N SO PHKI >»PHl(Il+O(I .JMGX(J) GO TO 110 70 IF UPRINT.EQ.l) PRINT 2100 210U FORMAT»IX.«GRADIENT STEP») С SET PHI TO THt GRADIENT DO SO l«l»N BO PHIA)»GX(I> 110 CONTINUE CALL SEARCH 1FIFY.GE.FX) GO TO 70 С CALCULATE THETA FOR NEXT ITERATION PHN0RM=0. DO 120 1»1»N 120 PHN0RM=PHNORM+PHI(l)»PHt(I) PHNORM=SQRT<PHNORM> THETA«R*PHNORM С TEST FOR CONVERGENCE 1TER»1TER+1 CALL DER(Y.GX) CALLCUNVRG(GX.1PASS> IFdPASS.EQ.ll GO TO 1*0 С CONVERGENCE CRITERIA NOT SATISFIED IF(IPRINT.EQ.l) PRINT 2000, ITER.NFUNCT.NDRV.FY.CYl1>«l=l.Nl FX=FY DO 130 UliN DELX(D-Y(I)-XA) 13U X(I)'YII) GO TO 1U С COJWtRGENCt CRITERIA SATISFIED 140 PRINT 2uOoi ITER,NFUNCT.NDRV.FY»(?(I)»I=1.NI 2000 FORMAT (IX i317 .E16.8»(i>E16.B)> RETURN END SUbROUTlNE SYMINV!A,NC.ND.15F) DIMENSION A(ND.ND>.TB0>,QB0>,RB0> ZER0«0.0 * ONE'1.0 » ISF*O $ DO 21 M=liNC 21 R(M)«ONE 1H 38 M-1»NC 4 BIG'ZERO DO 24 L-l.NC $ AB=ABS(A(L,L1) i IFIAB-BIGJ4>24t22 22 IF(R(L)I23»24»23 23 BIG'AB i K.= L 24 CONTINUE i 1F(В1GJ6,25.26 26 PRINT 13 $ 1SF=1 * RETURN 13 FGRMATU0X.23HMATRIX INVERSION FAILED! 26 R(K.)«ZERO » U(K>=ONE/A<K.K> i T(K)=ONE * A(K,K)=ZERO * KM1«K-1 IF!K.M1.EQ.0K1.27 27 DO 30 L=1,K.M1 * TID-AIL.K) * IF (R !L>) 29,28.29 28 (J(L1.A(L.K)»Q(K) $ GO TO 30 29 Q(L)«-A(L,K)*O(K.) 30 A(L,K)=ZERO 31 CONTINUE * KP1-K.+ 1 i IF(KP1.GT.NO37,32 32 DO 36 L-KP1.NC i lFIR(LI33.34.33 33 T(L)*A(K..L> S GO TO 35 34 T(L)«-A(K»L> 35 Q(L)<-A(K..L)«0(K) 36 A(K,L>=ZE*O 37 CONTINUE DO 38 L4.NC t DO 38 ML.NC 38 A(L,K)=A(L»K)+T(L>*U(K.) i M=NC+1 * L=N?
489 00 34 K«2.NC $ M=M-1 i L«L-1 $ DO 39 J=1»L 3» A(M,J)=A(J,M> RETURN * END SUBROUTINE SEARCH С COGG1N METHOD OF UN1U1MENS1ONAL SEARCH COMMON /ONE/ XA0) .YI10) ,SU0>.FX«FY COMCON /ThO/ HdOtlOlfDELXIlul .OELGHO) ,GXA0l COMMON /THREE/ N.NFUNCTtNDRViITER>1ND1С>1 PR INT С •** THE INITIAL VARIABLE VALUES ARE IN Xi AND THE CORRESPONDING С *** FUNCTION VALUE 1$ FX. С *** THE SEARCH DIRECTION VECTOR IS S» AND THE INITIAL STEP SUE STEP. IEX1T=O NTOL=0 FTOL=.0Ol FTGL2=FTOL/100. FA=FB=FC=FX DA=DB=DC=O. K = -2 M=O STEP=1.0 D=STEP С USE THE PARAMETER IND1C TO INDICATE HOW THE SEARCH VECTOR LENGTH С SHOULD Bt SCALED. <i IND1C«2 DO NOT SCALE. TAKE LENGTH GIVEN BY MINI CALCULATION. С INDJC«1 SCALE ONLY IF THE LENGTH OF THE LAST STEP WAS SHORTER THAN С THE LtNGTH OF THt SEARCH VECTOR. SCALE TO LENGTH OF LAST STEPi С INDldAliYTHlNG bUT 1 OR 2 RESULTS IN SCALING TO LENGTH OF LAST STEP. IFI1NDIC.EG..2.OR.1TER.EQ.0) GO TO 1 С FIND NORM OF S AND NORM OF OELX DXNORM-u. SNORM=0. DO 102 I=liN DXNORM=DXNORM+DELXA>*DELXI!> 102 SNORM=SNORM+SA)*SA I IFIINOIC.fcO.l.AND.DXNORM.GE.SNORM) GO TO i RAT10»DXNORM/SNORM STtP=SURT(RAT10) D=STEP С •*• STAR1 THt SEARCH THE BOUND THE MINIMUM 1 DO 2 1=1.N 2 YAI=XA)+D*SA) CALL FUN(YiF) H=K.+ 1 IF(F-FA) 5i3,6 *, **» NO CHANGE IN FUNCTION VALUE. RETURN WITH VECTOR CORRESPONDING TO FUNCTION VALUE OF FA, BECAUSE IF THE FUNCTION VALUE IS INDEPENDENT OF THIS SEARCH DIRECTION. THEN CHANCES IN THE VARIABLE VALUES MAY UPSET THE MAIN PROGRAM CONVERGENCE TESTING. 3 DO it 1 = 1,N 4 Yll)=XA)+DA»S(l) FY = FA 1FUPR1NT.EQ.1! PRINT 2100 21uO FORMAT»* SEARCH FAILED. FUNCTION VALUE INDEPENDENT OF SEARCH DIRE ACTION») 60 TO 326 С •*• THE FUNCTION IS STILL DECREASING. INCREASE THE STEP SIZE BY С DOUBLE. THE PREVIOUS INCREASE IN STEP SIZE. 5 FC=FB i FB=FA i FA*F DC=DB i DB'DA * DA'D D=2.o»D+STEP GO TO 1 С **• MINIMUM IS BOUNDED IN AT LEAST ONE DIRECTION. Ь 1FU> 7.B.9 С MINIMUM IS BUUNDEU IN GNfc DIRECTION ONtY, REVERSE THE SEARCH С DIRECTION AND CU
490 7 FB=F DB=D » O=-0 $ STEP»-STEf> GO TO 1 С M1MIMUM IS BOUNDED IN BOTH DIRECTIONS AFTER ONLV TWO FUNCTION С EVALUATIONS 'ONE EITHER SIDE OF THE ORIG1NZ. PROCEED TO THE С PARABOLIC INTERPOLATION. 8 FC=F6 » FB-FA * FA»F OC=DB * DB»DA * DA»D GO TO 21 С THE MINIMUM IS BOUNDED AFTER AT LEAST TWO FUNCTION EVALUATIONS IN с the ьа1; direction, evaluate the function at step size«ida+db>/2« С THIS WILL ll'LO 4 EUUALLY SPACED POINTS BOUNDING THE MINIMUM. 9 DODB i DBOa * DA«D FC»FB * FB'FA » FA*F 10 D=0.5*(DA+DB> DO 11 1=1.N 11 Y(I>«XA>+D*S(I> CALL FUNIY.F) С *** NOW HAVt THAT FA*FB0FC AND THAT FA»FOFC ASSUMING THAT THE С FUNCTION IS UN1M0UAL. RtMOVfc" EITHER POINT A OR POINT В IN SUCH A С WAY THAT THE FUNCTION IS BOUNDED AND FA*FBOFC 'THE CORRESPONDING С SUP SIZES ARE DA*DB*DC OK DAODBODC Z. 12 IFI |L>C-O>*ID-DBM lb.13.18 С •** LOCATION OF MINIMUM IS LIMITED BY ROUNDING ERRORS* RETURN WITH B. 13 DO 14 1=1.N 14 Y(I)-X(I)+DB»S(IJ FY=FB 1FIIEX1T.E0.1) GO TO 32 IFI1PRINT.E0.1) PRINT 2200 22UO FORMAT!* SEARCH FAILED. LOCATION OF MINIMUM LIMITED BY ROUNDIN5*1 GO TO 325- С *»• THE POINT D IS IN THE RANGE DA TO 06. 15 IF<F-FBI 16»13»17 16 FC'FB * FB«F DC'DB * DB»r GO TO 21 17 FA=F DA-0 GO TO 21 С •»• THE POINT О IS IN THE RANSE OB TO PC 18 IF(F-FB) 19,13.20 19 FA=FB * FB«F DA-DB i DB=D GO TO 21 20 FC=F С •»* NOW PERFORM THE PARABOLIC INTERPOLATION* 21 A=FA«(Ob-DC)+FB*(Dt-OAJ+FC«(DA-OBI IF(A> 22.30,22 22 D=0.5«<(DB*DB-DC»DC>»FA+(DC*DC-DA»DA)*FB+1OA«OA-DB»OBI*FCJ/A С CHECK THAT THE POINT IS GOOD. IF SO. EVALUATE THE FUNCTION. 1F((DA-D)»(D-DC)I 13»13.23 23 I/O 24 1*1 >N CALL FUNIY.F» С •** CHECK. FOR CONVERGENCE. IF NOT ACHEIVEOf RECYCLE» IF(ABs(FB)-FT0L2) 25*25.26 25 A=1.0 » 60 TO 27 26 A»1.0/F6 27 IFHABS*FB-FI»A)-FTOLI 28.28.12 С ••• CONVERGENCE ACHEIVED. RETURN WITH THE SMALLER OF F AND FB. 28 1ЕХ1ТЧ IFJF-FBJ 29»13.13 29 FY»F GO TO 32 С *•• THE PARABULIC INTERPOLATION WAS PREVENTEO BY THE OIVISOR BEING С ZERO. IF THIS IS THE FIRST TIM? THAT IT HAS HAPPENED» TRY AN С INTfeRMEDJAie STEP SUE AhP RgCyQLgl OTH6PWJS6 6IVE UP AS IT LOOKS
491 e LIKE A LOST CAUSE* 30 IF(M> 31.31.13 31 M-M+l GO TO 10 32 00 99 1 = 1,N IFIYID.NE.XI1)) CO TO 32$ 99 CONTINUE GO TO 33 325 iFINTOL.NE.O.AND.IPRINT.EQ.il PRINT 3000» NTOL 3000 FORMAT(IX.«TOLERANCE REDUCED «.II.» TIME(S)*) 326 1FIFY.LT.FX) RETURN 1FISI1I.NE.-GXA)I.OR.(FY.LT.FXI) RETURN PR1NT5000 5000 FORMATC* SEARCH FAILED ON A GRADIENT STEP. JOB TERMINATED»*! PRINT S100. ITER.NFUNCT.NURV.FY.IYU) ,W.N> 510U F0RMAT(lX.3l7.E16.6.EE16.8)I STOP 33 IFINT0L.EQ.5) GO W i<t IEXiT'O NTOL»NTOL+1 FTOL.FTOL/10. GO TO 12 34 IFUPRIM.EQ.l) PRINT 2000 2000 FORMAT(• A PUINT BETTER THAN THE ENTERING POINT CANNOT BE FOUND.*| RETURN END SUBROUTINE SEARCH С UNIDIMENSIONAL SEARCH USING COLDEN SECTION» VERSION 2. MOO <t» COMMON /ONE/ XA0>.YA0)»StlO).FX.FY COMMUN /TMO/ H11O.IO>.DELX11O),DEL6UO).GXAO> COMMON /THREE/ N.NFUNCT.NDRV.iTER.INDiC.iPRiNT DIMENSION ZAO>.WI1O).PAO).RAO).DIFFI1O).SSAOI DATA Fl/O.618033989/ С P=OLDEsT OF LAST THREE POINTS С Z'MiDDLE POINT С ««CURRENT POINT NTRIES=O NTOL=0 С TOL»SQUARED NORM OF VECTOR FROM W TO Z WHICH MUST BE ACHIEVES FOR С CONVERdENCe T0L*0.0GOOul NTIMES'O С USE THE-PARAMETER INDIC TO INDICATE HOW THE SEARCH VECTOR LENGTH С SHOULD tit SCALED. С IND1C°2 OU NOT SCALE. TAK.E LENGTH GIVEN BY MINI CALCULATION С lNDiC-1 SCALE ONLY IF THE LENGTH OF THE LAST STEP WAS SHORTER THAN С THE LENSTH OF THE SEARCH VECTOR. SCALE TO LENGTH OF LAST STEP» С INOK«ANYTHIN& bUT 1 OR 2 RESULTS IN SCALING TO LENGTH OF LAST STEP. IFUND1C.EQ.2.0R.ITER.EQ.0) GO TO 4 С NORMALIZE THE SEARCH VECTOR TO THE LENGTH USED ON THE PREVIOUS STEP. DXNORM=U. SN0RM=0. DO 2 1=1.N UXNORM=DXNORM+DELXA)«DtLXI I I 2 SNORM°SNORM+SU>*S<>> IFdMDIC.EO.l. AND.DXNORM.GE.SNORM) GO TO 4 DXNORM'SQRT(DXNORM) SNORMcSURTISNORM) RATIO«OXNORM/SNORM 00 3 1=1.N 3 SS(I'«Sli)»RATIO GO TO 10 С MAINTAIN THE INTEGRITY OF THE SEARCH VECTOR BY CONSfRUCTitif AN IDENTICAL С VECTOR AND OPERATING ON IT* 4 DO 5 1=1.N Э SS(P=SUI
C*»»BRACiaT THE MINIMUM IN THE S DIRECTION С TAKE STEP FROM ORIGINAL POINT 10 DO 20 I = 1»N 20 WA)=XU)+5SA) FZ=FX NTiMES»NTlMES+l CALL FUN(W.FW) iF(FW-FZ) 3u,70,50 С CONTINUE SEARCH IN SAME DIRECTION 30 DO 40 1=1,N Zdl'Wd) SS(i)-2*»SS(I) 40 W(I)-W(I)+SS(I) FP=FZ FZ=FW NTIMES=NTIM?S+1 CALL FUN(W,FW) IF(FW-FZ) 3W.70.120 С FW.GT.FZ. DECIDE WHETHER TD REVERSE SEARCH OIRE< 50 IF(NTiMES.NE.l) GO TO 120 С REVERSE SEARCH DIRECTION DO 60 1*1,N ssd>»-ssd> 60 p<l>=w(i) FP=FW GO TO 10 С FZ»FW. CHECK. MIDPOINT 70 DO 80 1 = 1.N SO Rd)>IZd)+Wd))/2. NTIMES=NTIMES+1 CALL FUN(R.FR) MiN'l 1FCFR-FZI 1W.300,90 90 iFINTlMbS.NE.2) GO TO 110 С REVERSE SEARCH DIRECTION DO 100 1=1.N 100 P(i)»R(I) FP=FR GO TO 10 С К AND P BRACKET Z AND THE MINIMUM 110 DO 115 1*1,N W(i)-Rd) R(I)=ZII) 115 ZID-Plil MIN«1 FR'FZ FZ=FP GO TO 140 С Р AND W BRACKET Z AND THE MINIMUM 120 DO 130 1=1,N R(I)=ZII) 130 Zd)°P(I) FR=FZ C»»»GOLDEN SEARCH) Z AND W BRACKET THE MINIMUM 140 WZNURM*0. DO 145 I«1.N UiFFd)«WU)-Z(I> 145 WZNORM=WZNORM+DIFF(I)*DiFF(II IF1WZN0RM.LT.TOL) GO TO 290 146 DO 150 1=1,N SECT*Fl*DlFFd)
493 150 Rll)=W<n-SECT CALL FUN(P.FP) CALL FUN(R.FR) 16U lFtFR-FP) 170t23Oi20O С REPLACE W ЬУ P AND P BY R 170 W2N0RM=0. DO 180 1=1.N WII)'P(I) DiFF(iWl)Z(I). WZNORM=WZN0RM+DIFF(I)*D1FF(II J80 R(I).W(i)-Fl»DIFF(I>' FW=FP FP=FR IFIW2N0RM.LT.T0L) CO TO 320 CALL FUN(R.FR) 60 TO 160 С REPLACE Z BY R AND R BY P 200 WZNORH'O. 00 210 UltN DIFF(I>W(I)Z(I) WZNORM-WZNORM+DIFF (I > *(> IFF (I > 2Ы P(M»Z(I)+F1»D1FF(I» FZ=FR FR=FP IF(WZNORH.LT.TOL) 60 TO 300 CALL FUN(P.FP) GO TO 160 с fpsfr» check midpoint 23U DO 240 1=1.N / CALL FUN(Y.FY) IF(FY-FP) 250.3*0.270 С P AND R BRACKET THE MINIMUM (YIS 2S0 DO 260 1=1.N 26U FZ=FR FW=FP FR*FV MlN=l С THERE ARE TWO MINIMA BETWEEN 2 AND W. ARBITRARILY PICK THE INTERVAL С BETWEEN Y AND W (WHICH INCLUDES P) 270 DO 280 1=1.N 28U 2<I)°YI1) FZ'FY MIN=2 GD TO 140 С BRACKET ON THE MIN IS SUFFICIENTLY SMALL 290 GO TO C00.320). MIN С R 15 TH? POINT INSIDE THE BRACKET 300 DO 310 1=1.N 3X0 Y(I)«RA) FY=FR GO TO 340 С Р IS THE POINT INSIDE THE BRACKET 320 DO 330 1«1.H 330 YII)=PA) FY'FP 340 CONTINUE 00 34» 1=1.N 345 IF(X(i|.NE<Ylll) GO TO 346 CO TO 350 3** JF(FY.Cit.FX) 00 TO 370
494 JFIIPRINT.NE.l) RETURN IF INTOL.Nt.OJ PRINT 3000,NTOL IF1NTR1ES.NE.0) PRINT 3100 3000 FORMAT(IX,«TOLERANCE REDUCED «,Ilt* TIMEISI»! Э100 FORMAT 1IX,«SECOND TRY.*) RETURN' C»»TAKE CARE OF PATHAUO6ICAL CONOITONS С AT THE PRESENT TOLERANCE LEVEL NO POINT CAN BE FOUND WHICH С IS BETTER THAN THE ENTERING POINT. REDUCE TOL BY A FACTOR OF 100. 35U IFINT0L.EQ.5) GO TO 360 NTOL*NTOL+1 TOL«TOL/10U. 60 TO 146 С PRINT MESSAGE AND RETURN 360 iFliPRiNT.NE.il GO TO 376 IFINTRiES.NE.O) GO TO 37» PRINT 2O00.TOL 200O FORMATUX.»THE TOLERANCE HAS BEEN REDUCED 5 TIMES TO A CURRENT VAL AUE 0F»,E15.8,».»./• BIX. »A POINT BETTER THAN THE ENTERING POINT CANNOT BE FOUND AT TH CIS LEVEL OF TOLERANCE. THE ENTERING POINT IS BEING RETURNED.*) GO TO 376 C»« FY.GT.FX, FIND A BRACKET EXCLUDING THE VALLEY CONTAINING Y. 370 IFINTRiES.EQ.O) GO TO 380 IFINTOL.LT.SI GO TO 3S0 375 PRINT 2100 PRINT 3000.NTOL 210b FORMAT!IX.«A POINT WAS FOUND SUCH THAT FY WAS GREATER THAN FX. A BSECOND ATTEMPT TO FIND A POINT WITH A FUNCTION VALUE LESS THAN rX CFAILED.») 376 IF(SU'.NE.-GX<1> .GR.IFY.LT.FXM RETURN PRINT 2200 2200 FORMAT!» SEARCH FAILED ON A GRADIENT STEP. JOB TERMINATED»! PRINT 2300, ITER,NFUNCT»NDRV,FY»<Y(I),I«l,Nl 2300 F0RMATllX.3I7,ei6.e,l5E16.e>) STOP С LOOK FOR A BRACKET NEAR X ON THE SIDE OPPOSITE FROM Y* 380 NTRIES-1 DO 390 I-l.N 390 W(i)»X(i>+SS(II FZ«FX CALL FUNlWiFW) IF(FW-FZ) 30.«00,«50 С FZ'FW, CHECK MIDPOINT «00 00 «10 I-ltN «10 P(I)'(Z<I)+W(I))/2. CALL FUNtP.FP) IFIFP-FZ) «20,320,«30 С FZ.GT.FP AND FW.GT.FP. W AND Z FORM A BRACKET «20 MIN=2 GO TO l«0 С FP.GT.Fi. P IS A BRACKET WITH THE MINIMUM BETWEEN P AND Г «3U LH> ««U I'l.N «1>U W(l)-PU) FW-FP С FW.GT.FZ, W IS A BRACKET WITH THE MINIMUM BETWEEN W AND Y С CHECK MIDPOINT OF Y AND W «50 DO «60 I-1,N ZID'YIi» «60 PlilMZIil+Wdn/Z. FZ-FY «70 CALL FUN|P,FP) IFlFP.Lt.FZ) GO TO 490 С T«Y AGAIN DO «80 I«1»U ZU)-P(I)
Программы на языке ФОРТРАН 495 460 FZ«FP GO TO «70 С Р IS IN A VALLEY DIFFERENT FROM THE ONE CONTAINING Y. С CHECK WHETHER P AW W FORM A BRACKET 490 DO 500 W.N 500 Rll)-(P(I)+WU))/2. CALL FUN(R.FR) IFIFR.6t.FW) 00 TO 560 IFlFR.liE.FPl 00 TO 520 С Р AND W FORM A BRACKET 505 00 510 1-liN 510 Z(D=PA) FZ«FP GO TO 140 С FR.LT.Fw. FR.GE.FP. HENCE LOOK FOR A BRACKETING VALUE BETWEEN P AND Z. 520 DO 530 I-l.N 1 530 PlW«(P<U+Z(I>>/2. FR«FP 540 CALL FUN(PtFPI IFlfP.Lt.FZ) GO TO 490 С FP.6T.FZ. APPARENTLY г IS IN THE SAME VAuLEY WITH Y. DO 550 I'liN 550 P(i)MR(ll+Z(i)>/2. FZ'FP GO TO 540 С FR.6E.Fw S60 IF(FR.LT.FP) GO TO 505 С FR.GE.FP» R AND W FORM A BRACKET 00 570 I>1>N 570 Z(I)«R(i| F2-FR GO TO 146 END Б.2. ПРОГРАММА ОПТИМИЗАЦИОННОГО МЕТОДА ПАУЭЛЛА Отдельная подпрограмма MINI была подготовлена для реа- реализации оптимизационного алгоритма Пауэлла, предназначен- предназначенного для решения задач нелинейного программирования при от- отсутствии ограничений (без использования производных). Следует отметить, что здесь DER не используется, a INDIC присваивается значение 2. Специальные инструкции относительно сходимости содержатся в комментирующих картах в подпрограмме MINI. Следует положить ICONVG = 1, если один проход по алгоритму Пауэлла будет достаточным, или ICONVG = 2, если окончатель- окончательное решение должно быть изменено и найдено новое и если необ- необходимо выполнить экстраполяцию между ними. Подпрограмму MINI должна сопровождать специальная подпрограмма TEST. Помимо указанных выше отличий подпрограмма MINI для метода Пауэлла полностью совместима с программой EXEC и должна использоваться вместе с нею. Программа EXEC была рао- смотрена выше.
496 SUBROUTINE MINf С POWELL METHOD OF DIRECT SEARCH С SUBROUTINE TEST MUST BE PROVIDED Fdft CoNVERSf-NCE TESffNS COMMON /ONE/ XUO.).YUOI,S(iO),FX.FY COMMON/TWO/ DIRECT110.1U).DUM110I>BEFORE<10) .FIRSTUOt COMMON /THREE/ N,NFUNCT»NDRV»ITERiINDlC.IPRINT OiMENSiON W11OI.SECND11O) EQUIVALENCE (W.SECNO) С **# N > THE NUMBER OF VARIABLES» С lCONVii ¦ THE FINAL CONVtRGtNCE TEST DESIRED. С «It TERMINATE AS SOON AS TESTING IS SATISFIED. С • 2. AS SOON AS THE'TESTING CRITERIA ARF SATISFIED ff С ALL THE VARIABLES BY 10*ACC AND SOLVE PROBLEM AGAIN» С THEN PERFORM A LINE SEARCH BETWEEN THE SOLUTIONS IF DIFFERENT С SOLUTIONS ARE DEEMED TO BE FOUND» С STEP ¦ THE INITIAL STEP SUE. С ACC « THE REQUIRED ACCURACY IN THE FUNCTION AND VFCTOR VALUES» С INSERT IPRINT* 1 FOR COMPLETE PRINT OUT OR IPRINT ¦ 2 FINAL С 1ANSWER ONLY ACC«O.OOOO1 STEPM.O С lNDIC MUST BE SET TO I INDJC=2 ICONVG«1 ITER=O NTRY=i N1*N-1 STEPA»STEP С ••• SET UP THE INITIAL DIRECTION MATRIX (USIМб UNIT VFtTOfiSJ» DO 2 I»1.N DO 1 J-l.N 1 DIRECT(J.i)=O. 2 DIRECTtl,I)»l. С •»» EvALUATbD THE FUNCTION.AT THE INITIAL VARIABLE VALUES. 100 CALL FUN[X»FX> PRINT 2u00. ITER.NFUNCT.FX.(X(I)tl'liN) 200U FORMAT[lXt2I7,E16,8,EE16.e)) GO TO 301 С •«• SAVE THE FINAL FUNCTION VALUE (Fl) AND THE FINAL VARIAfiLF VALUES С (BEFORE I FROM THE PREVIOUS CYCLE. 3 ITER=ITER+1 IFUPRINT.EQ.I) PRINT 8000. ITER.NFUNCT,FX»!XU )il = I,Nl 301 F1»FX DO * I'l.N 4 BEFORE!1)^X11) suM'0. С AT THE END OF THE CYCLE. SUM WILL CONTAIN THE MAXIMUM CHANCE IN С THE FUNCTION VALUE FOR ANY SEARCH DIRECTION. AND ISAVE INDICATES С THE UIRECTiON VECTOR TO WHICH IT CORRESPONDS. DO 9 I*bN С S CONTAINS THE INITIAL STEP SIZES IN THE 1-TH DIRECTION» DO-S J«LN 5 S(J)=OIRECT(J,I)*STEP С FIND THE MINIMUM IN THE I-TH DIRECTION» AND THE CHANGE IN FUNCTION С VALUE. CALL 5EARCH A*FX-FY 1F(A-SUMJ 7.7.6 Ь I SAVE-1 SUM'A С TRANSFER THE NEW FUNCTION AND VARIABLE VALUES TO FX AND X«. 7 DO 8 J«1,N 8 X(J)°Y(J) < «it N9W JNyEgTiWTE WHETHER A NEW SEAR.&i PIRESII9U SHPVVP H INCOkPOR-
497 С ATED INSTEAD OF THE ISAVE DIRECTION. F2=FX DO 10 1=1.N 10 W(l) = 2.0»X(I>-BEF0P.E(U CALL FUN(W»F3) A=F3-F1 IFIAJ 11.19,19 11 A = 2.0*(Fl-2.0»F2+fr31*l(Fl-F2-SUM)/A|»»Z IF(A-SUM) 12.19,19 С *»* A NEW SEARCH DIRECTION IS REQUIRED. FIRST REMOVE ROW 12 IFUSAVE-NI 13,15,15 13 DO 14 1'ISAVE.Nl Il*i+1 DO 14 J«1.N 14 D1RECT(J,II«DIR?CT<J,II> С SET THE N-TH DIRECTION VECTOR EQUAL TO THE NORMALISED DIFFERENCE С BETWEEN THE INITIAL AND FINAL VARIABLE VALUES FOR LAST CYCLE. 15 A'O. 00 16 JM.N DlRECT(J,M«X(J)-BEFOREtJI 16 A=DIRECTU,N>»*2+A A=1.0/S0RT(A) 00 17 J>ltN DIRECT(J.NI«DIRECT(J.N)*A 17 S(J>»DIRECT(J.N)»STEP CALL SEARCH FX=FY 00 18 1 = 1.N 18 XlII=YlI) С ••» TE6T FOR CONVERGENCE. 19 CALL TEST(F1,FX«BEFORE»X,FLAG,N.ACC) IF(FLAG) 22,22,20 С *** CONVERGENCE NOT YET ACHEIVED. COMPUTE A NEW STEP SIZE AND С GO BACK. TO 3. 20 IF(Fl-FX|121,120,120 121 STEP=-O.4*SORT1ABS(F1-FXI) GO TO 123 120 STEP=O.4»SQRT(F1-FX) 123 IF(STEPA-STEP) 21,3,3 21 STEP=STEPA CO TO 3 С *** CONVERGENCE ACHEIVED. IF IC0NVG=2» INCREASE ALL VARIABLES BY С 10»ACС AND GO BACK TO 3. 22 GO TO B3,24)«ICONVG 23 RETURN 24 GO TO B5,27),NTRY 25 NTRY=2 DO 26 I,N FIRSTlI)*X(I) 26 X(il=X(i)+ACC*10. FF1RST=FX GO TO 100 С •»» CONVERGENCE ATTAINED USING TWO DIFFERENT STARTING POINTS. CONSTRUC С UNIT VECTOR BETWEEN SOLUTIONS AND SEARCH DIRECTION FOR A MINIMUM. 27 FSECND=FX A = 0. DO 28 1 = 1.N SECNDIII'XII) S(i)=FiRSTm-SECND(II 28 A-A+SH 1**2 IF(A< 23,23,29 29 A=STEP/SQRTIA) DO 30 I»l,N 30 S(I)=SU)*A CALL SEARCH С *•* TEST IF NEW POINT IS SUFFICIENTLY CLOSE TO EITHER dF THE TWO С SOLUTIONS. IF SO RETURN. CALL TEST(FFIRST»FY»FIRST,Y»Fl-AG»N»ACC>
498 Приложение Б 1FIFLAGI 32.32.31 31 CALL TEST(FSECND,FY»SECNDtYfFLAG>N»ACC> IFlFLAGI 32.32.3* 32 DO 33 1=1.N 33 XII>-YII I FX«FY RETURN С »»* FINAL SOLUTION NOT ACCURATE ENOUGH. REPLACE THE FIRST DIRECTION С VECTOR bY INTER-sOLUTiON VECTOR (NORMALISED) AND RECYCLE 34 A=A/STEP DO 33 i'l.N DIRECT!I,l)=(FIRST(I)-SECND(I))»A 35 FIRsT(I)=SECND(i) GO TO 3 END SUBROUTINE TESTlFi »FF.RI.RF.FLAGiN>ACCI С THIS SUBROUTINE IS PECULIAR TO THE POWELL METHOD OF DIRECT SEARCH DIMENSION RIllOI.RFUOl FLAG=+2. IF(At)S(FI)-ACCl 2.2.1 1 iF(ABS((FI-FFI/FI)-ACCI 3.3,7 2 1FIABS1FI-FF1-ACC) 3.3.7 3 DO 6 i=l.N IFIABSIRIUII-ACCI 5.5.4 4 IFIABSI(Rill)-RF(l))/RI(i))-ACC> 6»6»7 5 IFIABSIRIli)-RF[I I1-ACCl 6.6.7 6 CONTINUE FLAG=-2. 7 RETURN END Б.З. МЕТОД ОПТИМИЗАЦИИ НЕЛДЕРА И МИДА. ИНСТРУКЦИИ ПО ВВОДУ ДАННЫХ В ПРОГРАММУ Функцией, представленной в колоде перфократ в данной про- программе, является функция Вуда. Карта (SUM (IN) = / (л:)) (третья последняя карта в колоде) должна заменяться при каждом новом выборе функции. Максимальная размерность задачи может быть 50, т. е. от X A) до X E0). Пользователь должен подготовить следующие перфокарты сдан- сданными: Карта 1. Перфорируется NX —число переменных целевой функ- функции в формате 15 в колонках 1—5, а также STEP — размер шага в формате F10.5 в колонках 6—16. При отсутствии другой информации выбирается STEP = • ) 0,2 V j j = mm —— 2л«;. «i. «2> ¦ • • . ' { n i=\ где n — число независимых переменных, dc — область возможного поиска по переменной xt. Карта 2. Перфорируется исходное предполагаемое значение каж- каждой переменной в формате F10.5. Карты 2 и 3 могут быть повторены с измененными размером шага и исход-
Программы на языке ФОРТРАН 499 ными переменными в зависимости от задачи, но после последней карты типа 2 должна следовать: Карта т. Пустая карта. PROGKAM SIMPLEX!INPUT.OUTPUT» С NX IS THE NUMBER OF INDEPENDENT VARIABLES. С STEP IS THE INITIAL STEP SIZE. С XIi) IS THfc ARRAY OF INITIAL GUESSES. С DATA CARDS ARE AS FOLLOWS. С CARD WO. PARAMETERS FORMAT COLUMNS С 1 NX IS 1 THRU 5 С i STEP F1O.S 6 THRU 15 С 2 Xli) F10.5 1 THRU 10 С CARD 3 IS BLANK. С TO OPTIMIZE THfc OtfJECTlVt FUNCTION FOR ANOTHER SET OF PARAMETERS С REPEAT CARDS 1 AND 2 ONLY. С FOR PROPER PRINTOUT OF DESIRED XII) ARRAY. FORMAT STATEMENTS ЮЭ <: AND 101 MUST BE REVISED ACCORDINGLY. DIMENSION X1150.50). XI50), SUMI50) COMMON/1/ X.Xl,NX.STEP»Kl»SUMtIN 1 FORfiATl I5.F10.5) 100 REAlHi NX.STEP 1FINXI 998.999,998 ЧЧЬ READ 2. <XU)»i*l.NX) 2 FORMAT UOF10.5) ALFA-1.0 BETA*O.b GAMA*2.0 UiFER = 0. XNX = NX IN - 1 CALL SUMR PRINT 102.SUMI1) , [X( I I .Ul.NX) PRINT 1002.STEP CALL SECOND(TIME) PRINT 105.TIME 105 FOKMATI/50X.11HTIME IS NOW.F10.3.SH SECONDS/1 PRINT 103 103 FORMAT CtX.l<iHFUNCT ION VALUE »15Х»ЗНХ1=»20Х.ЗНХ2=.20Х.ЗНХЗ= .20Х.ЗНХ* 1=,16X.12HFUNC. CHANGE) 141 FURMATI1H1.12X.23HFUNCTION STARTING VALUE.F10.5./.«THE X ARRAY IS» li/.5X.10(EII.'t.2X) | 10U2 FORMAT112X.*STEP=».F6.2I Kl • НИ + 1 K2 • NX ¦ 2 КЗ » NX + 3 K* • NX + * Call start 25 DO 3 1 = 1. Kl DO-* J « 1. NX 4 Xl-JI = XIII .J) IN = 1 CALL SUMR 3 CONTINUE С SELECT LARGEST VALUE OF SUMlI) IN SIMPLEX 28 SUMH • SUMll) INDEX = 1 DO 7 1 « 2. Kl 1FISUMIII.LE.SUMH) GO TO 7 SUMH = SUM(I) INDEX • I 7 CONTINUE
500 С SELECT MINIMUM VALUE CF SUM!It IN SIMPLEX SUML » SUM(l) KOUNT • 1 DO 8 I « 2t Kl IFISUML.LE.SUMIIII CO TO 8 SUML * SUMI 11 KOUNT • I 8 CONTINUE С FIND CtNTROID OF POINTS WITH I DIFFERENT THAN INDEX 00 9 J = It NX SUM2 ¦ 0. 00 10 I « 1» Kl 10 SUM2 ш SUM2 + Xl(ItJ) Xl(k2tJ) «l./XNX*(SUM2 - XKINDEX.JIl С FIND REFLECTION OF HIGH POINT THROUGH CENTROID X1IK3.J) ¦= A. + ALFA)»Xl(K2iJ| - ALFA*Xl(iNOEX«J) 9 X(J» « Xl(K3tJ) IN ¦ КЗ CALL SUMR lFISUMlMI.LT.SUMLI GO TO 11 С SELfcCT SECOND LARGEST VALUE IN SIMPLEX IF(INDEX.EO.l) GO TO 38 SUMS » SUM(l) GO TO 39 38 SUMS • SUMI2) 39 DO 12 I = 1. Kl IFUINDEX - I).ECO) GO TO 12 1FISUMIII.LE.SUMSI GO TO 12 SUMS * SUM! I) 12 CONTINUE IFISUM(K3).GTtSUMS) GO TO 13 GO TO 14 С FORM EXPANSION OF NEW MINIMUM IF REFLECTION HAS PRODUCED ONE MINIMUM U 1H 11 J ¦ 1, NX XllKAiJI « A - 6AMA)»XltK.2»J) + GAMA»X1(K3>J) 1b XIJ) • XllK4,J) IN = K4 CALL SUMR IF(SUM(K4).LT.SUML) GO TO 16 GO TO 14 13 IFISUMIK3I.GT.SUMH) GO TO 17 DO 18 J » It NX 18 XllINDEXiJ) = XKK3.J) 17 DO 19 J » It NX xm4»JI « BETA*Xl(lNDEXtJ) + A. - BETAl»Xl(K2tJ> 19 XIJ) ' XllK4tJ) IN = K4 CALL SUMR IFISUMH.GT.SUM(K4)I GO TO 16 С KEUUCE SIMPLEX BY HALF IF REFLECTION HAPPENS TO PRODUCE A LARGER VAL С LUE THAN THE MAXIMUM DO 20 J DO 20 I 20 XllbJ) DO 29 I DO 30 J 30 X(J). » Xlli'tJ) IN • I CALL SUMR 29 CONTINUE GO TO 26 16 00 21 J ¦= It NX XKINDEX.J) ¦= XKK4.J) 21 XIJ) • XllINDEXtJ) IN ¦= INDEX CALL SUMR 60 TO 26 14 pO 22 J » it NX It NX 1. Kl O.5*(X1(I»J) + XKKOyNTtJM It Kl It NX
Программы на языке ФОРТРАН 501 XK1NDEX.J) • X1K3.J) 22 Х(Л - XKINDEXiJ) IN ¦ INDEX CALL SUMR 26 DO 23 J = It NX 23 XtJ) = XKK2.J) IN « K2 CALL SUMR DIFER • 0. DO 24 I ¦ It Kl 24 D1FEK ¦ DIFER + (SUMtl) - SUM(K211«*2 DIFER -l./XNX^SQRTIWFER) PRINT 1*1. SUML. (XHKOUNT.JIt J= ltNXl» DlFEft 101 FORMATt2{2X.?l6.6)t3<7X.E16.6l»12XiE16«6J 1F( UIFbR.GE.0.0000001) GO TO 28 CALL SECOND(TIME) PRINT 105fTIME GO TO 100 999 CONTINUE END SUBROUTINE START DIMENSION AE0.50). XH50.50). XE0). SUMISO) COMMON/1/ X.XI.NX.STEP»K1.SUM.IN VN = NX STEP1 • STEP/(VN*SQRTBtJI*(SQRTtVN + I.) + VN - 1.) STEP2* bTEP/<VN*S9RTB.))*lSQRT(VN + 1,1 - 1,) DO 1 J ¦ It NX 2 A(l.J) « 0* DO 2 I « 2. Kl DO 2 J • It NX A(I.J) « STEP2 L ¦ I - 1 Atl.LJ « STEP1 2 CONTINUE DO 3 I » It Kl l)Q 3 J • I. NX г xiti.j) s xu) + AU>J) RETURN END SUBROUTINE SUMR COMMON/1/ X.Xl.NX.STEPtRl.SUM.IN DIMENSION XK50.50). XE0)t SUMISO) SUM(IN)'(XU)+10.*XB) )*»2+5.*(X131-XI4) )«*2+(Xt2)-2.*X 13I**4+ 11O.*(XA)-XDJ)**4 RETURN END 4 0.5 3.0 -1.0 0.0 1.0 Б.4. ПРОГРАММА ФЛЕКСИПЛЕКС (МЕТОД СКОЛЬЗЯЩЕГО ДОПУСКА) 1. Назначение. Программа Флексиплеко решает общую задачу нелинейного прогр аммирования: минимизировать у = / (х), х ? Еп, при ограничениях ft,(x) = O, i=l, .... т, gt(x)>0, i=tn + l, ..., р, <Р'*Л> где / (х) является целевой функцией, подлежащей минимизации (или максимизации); х = (хг, х2, ..., хп)Т — вектор-столбец, элементы которого представляют собой п переменных рассмат-
502 Приложение Б риваемой задачи в n-мерном пространстве; ht (х) =0, i = 1, ... ..., m, — ограничения в виде равенств; g( (х) >- 0, t' = m + 1, ... ..., р,— ограничения в виде неравенств. Функции f (x), ht (x), ft (х) могут быть линейными и (или) нелинейными; т и (или) р — т могут быть равны нулю. Таким образом, для m — 0 и р — т = 0 оптимизация осуществляется при отсутствии ограничений1'. 2. Ввод задачи в программу Флексиплекс Целевая функция и ограничения задачи (Б.4.1) вводятся в вычислительную машину посредством подпрограммы SUBROUTINE PROBLEM (INQ). Параметр INQ идентифицирует целевую функ- функцию и служит характеристикой фигурирующей в задаче совокуп- совокупности ограничений. INQ = 1 соответствует ограничениям в виде равенств; INQ — 2 соответствует ограничениям в виде неравенств. На протяжении всей программы каждое из ограничений в виде равенств и неравенств, а также целевая функция идентифицируются присоединенной переменной #(/), /=1, ...,т, т + 1, ..., р, р + 1. Подпрограмма SOBROUTINE PROBLEM (INQ) организуется следующим образом: 1. После содержащей комментарий карты «Equality Constraints» (ограничения в виде равенств) и оператора 1 вводятся ограниче- ограничения в виде равенств (если таковые имеются) в следующей форме: ( m() 2. После содержащей комментарий карты «Inequality Constraints» (ограничения в виде неравенств) и оператора 2 необходимо пред- представить ограничения в виде неравенств как Я (р) = &><*)• 3. После содержащей комментарий карты «Objective Function» (целевая функция) и оператора 3 необходимо представить целе- целевую функцию как R(p + I) = f (x). Если в формулировке задачи равенства отсутствуют (т = 0), то не нужно вводить никаких данных после оператора 1 и R (т -Ь 1) обратится в R A). Аналогично если имеются только равенства и нет неравенств, то следует опустить все данные после оператора 2 и R (р + I) обратится в R (т + 1)- В случае задачи без ограни- чений R (р + I) = R (I). '' Более подробно рассматриваемая здесь методика решения задачи (Б.4.1) описана Павиани (Paviani D. A., A New Method for the Solution of the General Non- Nonlinear Programming Problem, Ph. D. Dissertation, The Univ. of Texas, Austin, Tex., May 1969).
Программы на языке ФОРТРАН 503 Например, задача минимизировать / (х) = 1000 — х\ — 2л| — х\ — ххх^ при ограничениях Мх):*2 + х22 + л| —25 = 0, h2 (х): 8*! + Нл;2 + 7х3 — 56 = 0, g{ (х): хь > 0, 1=1,..., 3, должна быть представлена с использованием подпрограммы PROBLEM (INQ) следующим образом: С EQUALITY CONSTRAINTS 1 CONTINUE R(l) => X(l)**2 + XB)**2 + XC)**2 - 25. RB) ш 8.*XA) + 14.*XB) + 7.*XC) - 56. Go to 5 С INEQUALITY CONSTRAINTS 2 CONTINUE RC) - X(l) RD) = XB) RE) = XC) Go to 5 С OBJECTIVE FUNCTION 3 CONTINUE RF) = 1000. - X(l)**2 - 2.*XB)**2 - XC)**2 - XA)*XB) 5 Return 3. Представление данных Первая карта с данными Эта карта является ключевой и должна содержать данные, идентифицирующие решаемую задачу. Любые алфавитно-цифро- алфавитно-цифровые операторы могут располагаться в колонках 1—80. Вторая карта с данными Эта карта содержит параметры задачи, такие, как NX — общее число переменных (зависимые + независимые) в формате 15 слева направо; NC — общее число ограничений в виде равенств (т) в формате 15 слева направо; NIC — общее число ограничений в виде неравенств (р = т) в формате 15 слева направо. Следует заметить, что верхний и ниж-
Б04 Приложение Б ний пределы для вектора х представляют также ограничения в виде неравенств; SIZE = t, величина, определяющая размер деформируемого мно- многогранника в исходной фазе поиска (используется формат F10.5). Объяснение того, как следует выбирать значения SIZE, приводит- приводится ниже. CONVER = е, произвольно выбранное положительное малое число, используемое для окончания поиска; число е рассматри- рассматривается в качестве индикатора сходимости и обычно выбирается равным КГ5 или 1СГ6. Рекомендуемыми значениями SIZE являются следующие. Ког- Когда верхний и нижний пределы вектора х известны, то выбирается: 1. SIZE ж 20% разности между верхним и нижним пределами х, если ожидаемые интервалы изменения х,- вдоль каждой оси коор- координат приблизительно равны. 2. Если ожидаемые интервалы изменения х вдоль каждой оси ко- координат различны, то SIZE присваивают значение, равное наи- наименьшей разности между соответствующими верхним и нижним пределами любого xt. Примеры A) B) — И <л;1<98,7 (><*!< 400 — 10 <x2< 100,1 0<*2<1000 — 9,5 <х3<101 340<х3<420 — 10,2 <л:4<99,5 340<х4<420 — 9,8 <л;5<100 — 1000 < хъ < 1000 0 < хв < 0,5236 SIZE я* 0,2 * 110 = 22 SIZE » 1 PROGRAM FLEXl ( INPUT» OUTPUT» TAPE1O » INPUT » С 60 С 70 С •«««¦«PROGRAM FbEXIPLEX*»»»*» С 80 с «о с loo С NX TOTAL NUMBER OF INDEPENDENT VARIABLES 0110. С НС TOTAL NUMBER OF EQUALITY CONSTRAINTS 0120 С NIC TOIAL NUMBER OF INEUUALITY CONSTRAINTS 0130 С SIZfc EDGE LENGHT OF THE INITIAL POLYHEDRON Ol«0 С CONVER CONVERGENCE CRITERION FOR TERMINATION OF THE SEARCH 0150 С ALFA THE REFLECTION COEFFICIENT 0160 С BETA THE CONTRACTION COtFFICIENT 0170 С САМА THt EXPANSION COEFFICIENT 0180 С X(l> THE ASSUMED VECTOR TO INITIATE THE SEARCH 0190 С FDIFtft THE TOLERANCE CRITERION FOR CONSTRAINT VIOLATION 0200 С 1C0NT A COUNTER TO RECORD STAGE COMPUTATIONS 0210 С NCONT A COUNTER TO PRINT INFORMATION EVERY (NX+1) STAGE 0220 С LOW AM INDEX TO IDENTIFY INFORMATION RELATED TO THE LOWEST 0230 С VALUE OF OBJ. FUNCTION IN MOST RECENT POLYHEDRON 0240 С LHIGH AN INDEX TO IDENTIFY INFORMATION RELATED TO LARGEST VALUE 0250 С OF OBJ. FUNCTION IN MOST RECENT POLYHEDRON • 0260 С LSEC AN INDEX TO IDENTIFY INFORMATION RELATED TO THE SECOND 0270 С LARGEST VALUE OF UBJ. FUNCTION IN MOST RECENT POLYHEDRON 0280 С 290
505 DIMENSION XE0).XU50.5OI,X2<5O.5O).RU0ObSUME0).FEO>tSRE0>» 1 ROLL)! 100). HE0l COMMON/I/NX.NC.NIC.STEP.ALFA.BETA.GAMA,IN.INF.FDIFER.SEQL.Kl,K2. IK3.K*«*.5,K6,K,7»K.8.K,9.X.XI,X2.R. SUM.F.SR.ROLD.SCALE.FOLD COMMON/2/LFEAS.L5.L6.L7.L8.L9.R1A.R2A.R3A PROBLEM IDENTIFICATION HEADER IS READ IN AFTER THIS CARD BEAD 759 PARAMETERS TOR THE PROBLEM ARE READ IN AFTER THIS CARD READ 1. NX.NC,NIC»SlZE»CONVER ALFA « 1. BETA ¦ 0.5 GAMA «2. PERMANENT DATA FOR THE PROBLEM SHOULD BE READ IN AFTER THIS CARD 10 CALL SECOND(TIM?) TEMPORARY DATA FOR THE PROBLEM, SUCH AS VARIABLE COEFFICIENTS OR NEW PARAMETERS SHOULD 8E READ IN AFTER THIS CARD STEP • SIZE THE ASSUMED INITIAL VECTOR IS READ IN AFTER THIS CARD READ 2 . (X(I)i I • 1» NX) IFIEOF.10)9999A1 U PRINT 106 PRINT 7Ь9 PRINT 756» NX»NCiNlC»SUti«NV?R»TIME Kl ' K2 • КЗ ¦ на - К5 • Кб • К7 • KS > К9 = N - N1 » NX + 1 NX + 2 NX + 3 NX + 4 NX + 5 NC + NIC NC + 1 NC + NIC M) + 1 NX - NC h * 1 IF(Nl.(jt,3l 60 ТО 50 N1 ¦= N ¦= SO N2 = N3 « N* • N5 = N6 • N7 • N8 • XN • XNX XN1 R1A R2A *ЗА иь - L6 - L7 = L8 - L9 - 3 2 N + 2 N + 3 N + * N + 5 N + 6 N + 7 N + 8 N « NX = N1 • O.5»(SORTEt' • RlA*RlA « R2A»R1A NX + 5 NX + 6 NX + 7 NX + 8 NX + 9 1C0NT = 1 It MCON1 - I PRINT 115 PR1NI 116. (X(J)t J • If NX) FD1FER • 2.»(NC + D*STfcP FOLD « FDiFER IN • N1 CALL SUMR SRIN11 « SORT(SEOL) PRINT 763» FDIFER» SRINU 0300 310 0320 0330 03*0 0350 0360 03 70 400 0*10 0420 0*30 **0 0*50 0*60 0510 0520 0530 5*0 0550 0560 0570 0580 0590 0600 0610 0620 0630 06*0 0650 0660 0670 0630 0690 0700 0710 0720 0730 07*0 0750 0760 0770 0780 0800 ,0810 0320 0830 08*0 0850 0860 0870 0880 0890 0900 0910 0920 f)930 09*0 0950 0960 0970 0980 0990 1000 1010 10?0 Ю30
506 IFISRINll.LT.FDIFER) GO TO 341 1040 CALL wRITEX 1°41 PRINT 757 l°50 INF = N1 l°60 STEP = t>.05»F01FER 1°61 CALL FEAS8L l°70 PRINT 764 Ю80 PRINT 116. (X2(INF!,J)»J • 1» Nx> Ю9О PRINT 765» SR(INF) HOO IF(FOLD.LT.1.0E-09l GO TO 80 1110 341 PRINT 35 1120 PRINT 758t ICONT. FDIFER 1130 CALL WRITEX 1140 FTER * R(K9I 1150 COMPUTE CENTR01D OF ALL VERTICES OF INITIAL POLYHEDRON 1160 237 STEP1 = STEP* (SORT(XiNX + 1.) + XNX - 1. I/ (XNX»SQRTB« )) 1170 STEP2 » STEP»(SORT(XNX + 1.) - It)/(XNX»SQRTB.)) 1180 ETA в (STEP1 + (X^X - 1«)*STEP2)/(XNX + J«) U9° DO ft J = 1» NX 1200 XtJ) • X(J) « ETA 1210 ft CONTINUE J220 CALL START- 1230 DO 9 I » It N1 }2*0 DO 9 J = If NX аг5° X2II.J1 » Xl(ItJ) J260 9 CONTINUE 127° DO 5 I = If N1 128O IN » I 1290 DO 6 J я l.NX I300 6 X(J) • X2I1.J) 131° CALL SUMR 1320 SRI I' - SORT(SEOL) 1330 IFISRID.LT.FDIFER) GO TO 8 13*0 CALL FEASBL !35O lFIFOLD.LT.l.OE-091 GO TO 80 1360 8 CALL PR0BLE4O) 1370 FID = RU9) 1380 5 CONTINUE 1390 1UU0 STEP - u.05*FDIFER 1*°0 ICONT * ICONT + 1 1*10 С SELECT LARGEST VALUE OF OBJECTIVE FUNCTION FROM POLYHEDRON VERTICES 1*20 FH = Fill 1*30 LHIGH = 1 1*40 DO 16 I • 2. N1 1*50 IFIFIII.LT.FH) GO TO 16 1*60 FH « F(l) 1*70 LHIGH = I 1*80 16 CONTINUE 1*90 С SELECT MINIMUM VALUE OF OBJECTIVE FUMCTJON fR9M PCUHEPRON VERTICES 1500 «1 Ft- « F(l) 151°. LOW = 1 1&20 DO 17 1 = 2, N1 1530 IFIFL.LT.FID) CO TO 17 15*0 FL « FID 1550 LOW «I 1560 17 CONTINUE 1570 DO 66 J = 1» NX 1580 86 XUI • X2IL0W.J) 1590 IN * LOW 1600 CALL SUMR 1610 SRILOWI = SORT(SEOL) 1620 1FISKILOWI.LT.FD1FERI GO TO 87 1630 INF • LOW 16*0 CALL FEASBL 1650 ififuld.lt.i.oe-091 00 то ao 1660- CALL PKOBU.MI31 1*70 FILOWI => R(H9) 1680 00 TO 41 1690
507 87 CONTINUE 1*790 С FIND CENTROIO Of POINTS WITH Г DIFFERENT THAN LHtoH 1710 00 19 J « It NX 1720 SUM2 « 0. 1730 DO 20 I = It N1 4740 20 SUM2 = SUM2. + X^(I.J) 17S0 19 X2IN2.J) = l./XN*(SUM2-X2(LHIGH.JM 1760 SUM2 = u. 1770 DO Э6 1 • It N1 1780 DO 36 J ¦ It NX 1790 SUM2 = SUM2-+ (X2(ItJI - X2(N2tJ))*»2 1800 36 CONTINUE 18Ю FOIFER = (NC + 1)/XN1*SQRT(SUM2 1820 IFIFDIFER.LT.FOLD) GO TO 98 1830 FDIFER « FOLD l'e«O GO TO 198 1850 58 FOLD = FDIFER 1860 19S CONTINUE. 1870 FTfcR « F(LOW) 1880 137 NCONT = NCONT + 1 1890 IFINCONT.LT.4*N1I GO TO 37 1900 IFIICONT.LT.1500) GO TO 337 1901 FOLD • 0.5*F0LD 1902 337 NCONT = 0 1910 PRINT 35 1920 PRINT 758. ICONTt FOIFER 1930 CALL WR1TEX 19*0 37 lF(FDlFER.LT.CONVER) GO TO 81 1950 С SELECT SECOND LARGEST VALUE OF OBJECTIVE FUNCTION I960 IFILHIGH.EU.ll GO TO 43 1970 FS a FU| 1980 LSEC - 1 1990 60 TO 44 2000 43 FS - F<2> 20Ю LSEC * I 202Q 44 DO IB I « It N1 2030 lFILHlGH.EO.il GO TO 18 20<,0 IFIFIII.LT.FS) GO TO 18 2050 FS • Fill 2060 LSEC = 1 2070" 18 CONTINUE 2080 С REFLECT HIGH POINT THROUGH CENTROIO 2090 DO 61 J s 1, NX 2100 X2(N3.J> = X2(N2tJ) + ALFA*»xatN2|J) - X2tLHIGH,J)J 2110 .61 X(J* = X2(N3tJ) ' 2120 IN =< N3 2130 CALL SUMR 2140 SRIN3) = SURT(SEQL) 2150 Ё9 IF(SRIN3).LT.FD1FER> GO TO 82 2160 INF » N3 2170 CALL FEASBL 21Я0 IFIFOLD.LT.1.0E-09) GO ТУ ВО 2190 82 CALL PROBLEM!3 I 2200 FIN31 « R(K9I 2210 1F(F(N3).LT.F(LOW)) 00 TO 84 2220 1FIFIN3I.LT.F.ILSEO1 Go TO 92 2230 GO TO 60 2240 92 DO 93 J • 1> NX -2250 V3 X2(LHluHtJI .¦ X2(N3,J) 2260 SR(LHIGH) = SRIN3) 2270 F(LHIGH) = FIN3) 2280 <iO TO 1UQ0 ' 2290 С EXPAND VECTOR OF SEARCH ALONG DIRECTION THROUGH CENTROID AND 2300 С REFLECTED VECTOR 2310 84 DO 23 J • It NX 2320 X2(N4tJ) = X2(N3tJ) + 0AMA*(X2( N3(J) - X2(N2iJj) 2330 23 X(J) < MiiihtJi 23<,0 JN • № 2350
508 CALL SUMR . 2360 SRIN4) = SORT(S?QLl 2370 IF(SR<N4).LT.FDIFERI 60 TO 25 2380 INF • N4 2390 CALL FEASBL 2*00 lFIFOLD.LT.1.0E-09I 00 TO 80 2*10 25 CALL PROBLEM!3) 2*20 FIN4» ¦ RIK9I 2430' IFIFILOWI.LT.F(N«)I GO TO 92 24*0 DO 26 J = 1» NX 2450 26 X2(LH1GH,J) = X2(N*»J) 21*60 F(LHIGH) ж FIN4) 2*70 SR(LHIGH) = SR(N*> 2480 GO TO 1000 2490 60 If (RN3I.6T.F ILhlGH) ) GO TO 64 2500 DO 65 J ' 1. NX 2510 65 X2(LH1GH,JI = X2IN3.JI 2520 64 DO 66 J » 1« NX 2530 X2(h4>J> = 8ETA*X2(LHIGHtJ> + A. - BETA)*X2(N2iJ) 2540 66 X(JI = X2(N*,J) 2550 IN = N4 2560 CALL SUMR 2570 SRIN4) « SCIRT(SEQL) 2580 IFISRINUH.LT.FDIFER) CjO TO 67 2590 INF * N4 2600 CALL FEASBL 2610 IFIFOLO.LT.1.0L-09I GO TO 80 2620 67 CALL PROBLEMI3) 2630 F(N4l = RI&9) 2640 IF(F(LH1GH).GT.F(N4)) GO TO 68 2650 DO 69 J » li NX 2660 DO 69 1 = li N1 2679 69 X2I1.JI » v.6*IX2(I)J) + X2(L0W«JI) 2680 DO 70 1 = li N1 2690 UO 71 J = It NX 2700 71 Х(Л • X2C lJ) 2710 IN = 1 2720 CALL SUMR 2730 SRUl = SQRT(SEQL) 27*0 IF(SRin.LT.FDIFER) GO TO 73 2750 INF • 1 2760 CALL FEASBL 2770 IFIFOLD.LT.1.0E-09) GO TO 80 2780 72 CALL PROBLtMO) 2790 70 F(I) • R(K9) 2800 GO TO luOO 2820 68 DO 73 J ¦= li NX 2830 73 X2(LH1GH,J) в X2(N4>J) 28*0 SR(LHIGH). , SRIN4) 2Я50 F(LHIGH) e p(N4) 2860 GO TO ll/Ou 2870 81 PRINT 760.1CONT» F01FER 28Я0 CALL WRITEX 2e?0 CALL SECONO(TIME) 2900 PRINT 755, TIME 2810 PRINT 761 2910 60 TO 10 2920 «SO PRINT 760» ICONT» FHFtR 2930 CALL hRITEX 2931 PRIWT 762 2940 SO TO 10 2941 1 FORMATC15,F10.5iEl0.3> 2950 .2 F0RMATIBF10.5) 2960 35 FOKMATI/.40X.48H ж»»***»»*»***»*»»*»»***» ) 2970 1U6 FORMATAH1.//I 29ftO 115 FORMAT!//• 41H THE STARTING VECTOR SELF.CTED BY USER Is ) 2990 116 F0RMATIBE16.6I 3000 7э5 FyRMATI//» Э5Н THE CUMPyTATICN TJME JN JECONOS • El2i5) .3010
509 756 FORMAT<//»10X.40H NUMBER OF INDEPENDENT VARIABLES I5./.10X 30JO lD0H NUMBER OF EQUALITY CONSTRAINTS I5»/tlOX»4oH NUMBER 0 3030 2F 1NEUUAL1TY CONSTRAINTS IS./,10Xt40H SIZE OF INITIAL POLY 3040 3HEORUI» E12.5»/.10X.40H THE OESIRED CONVERGENCE Is 3050 4 E12.5,/>l0X.40H THE COMPUTATION TIME IN SECONDS 3060 5E12.5) 3070 757 F0RMAT(//»71H THE INITIAL X VECTOR DOES NOT SATISFY THE INITIAL TO 3080 lLtRANCE CRITERION I 3090 758 FORMATC /i10Xi27H STAGE CALCULATION NUMBER • I5« 20Xi 27H THE TOLE 3100 2RANCE CRITERION »E14.6) ЗЦ0 759 FORMAT l ЙОН.' 3120 1 ) 3130 76.U FORMATt//» 39H TOTAL NUMBEK OF STAGES CALCULATIONS = 15, 10X» 25H 3140 1THE CONVERGENCE LIMIT « U4.6> 3150 761 FORMAT<//.5'OX»25H THESE ARE FINAL ANSWERS > 3160 762 FORMAK//»50X»29H THESE ARE NOT FINAL ANSWERS I 3170 763 FORMAT<//tlOX»40H THE INITIAL TOLERANCE CRITERION IS E12.5i/t 3180 110X»40H THE-SUM OF VIOLATED CONSTRAINTS IS E12.5) 3190 764 FORMAT(//i70H THE VECTOR FOUND BY PROGRAM WHICH SATISFlFS THE INIT 3200 UAL TOLERANCE IS ) 3210 765 FORMATJ/i 31H SUM OF VIOLATED CONSTRAINTS - E17.7) 3220 >999 STOP 3230 END 3240 SUBROUTINE FEASbl 3250 С 3260 C**«**SUBROUTINIi F6ASBL MINIMIZES THE SUM OF THE SQUARE VALUES OF THE 3270 С VIOLATED CONSTRAINTS. IT IS CALLED EVERY TIME THE COMBINED VALUE 3280 С OF THt VIOLATED CONSTRAINTS EXCEEOS THE THE VALUE OF THE TOLERANCE 3290 С CRITERION FOR THE CURRENT STAGE • 3300 С . 3310 DIMENSION X<5O>«Xl<5O,50),X2EOi5O).R(lOO).SUME0)tFE01tSREo>t 3320 IROLOdOt), RIUOOI» R2I100) iR3(iO0)t FUO(lQ>t H(SO) 3330 1U0 FORMAT(tiE16.6) ' 3340 COMMON/l/NX.NC.NlCtSfEPtDUMl.DuM2tDUM3tlN,INF,FDlFER.SEQl.,KbK2t 3350 JK.3t>l4,K.5iK.6>K7iK8tK9»XiXl«X2tRtSUMtFiSR,R0LD>SCAlE»F0CD 3360 COrtMON/2/LFtAS»L5»L6>L7»L8fl.9iRlAl«2A|R3A 3370 ALFA » 1. ' " ЗЗЯО BETA • 1-.5 3390 .САМА " 2. 3400 XNX « NX ЗМ^ 1C0NT a 0 3420 LCHE< ¦ 0 343^ ICHEK • 0 3431 25 CALL START 3**0 ' 00 3 I " 1» IC1 «*5° DO 4 J • It NX 3460 4 X(J) « X1U ,J> 3470 IN я I 3480 CALL SUMR 3490 3 CONTINUE 350O С SELECT LAKttST VALUE OF SUM!I) IN SIMPLEX 3510 iu SUMrt • SUM(l) 3520 INDEX = 1 3530 00 7 1 » 2» Kl 3540 IF(SUMU).LE.SUMH) CO TO 7 3554 SUMH • SUMII) 35ЛО INDEX = I • 3570 7 CONTINUE 3580 С fcEUCT MINIMUM VALUE OF SUM(I) IN SIMPLEX 3590 SUML = bUM(l) 3600 KOUNT = 1 3610 00 В I » 2» Kl 3620 lFISUHL.LE.SUMllU bU TO 8 3630 SUML = SUMII) 3640 I<.OUNT = I 3650 8 CONTINUE 3660 С flHii CErtTKOIO OF POINTS WITH I DIFFERENT THAN INDEX 3670 DO 9 J • 1» NX 3680
510 SUM2 = и. S69O DO 10 1 = 1» Kl 3700 10 SUM2 = SUM2 + XI(!tJ> 710 Xl<K2iJI =1./XNX»(SUM2 - XUINDEXtJ)) 3720 FIND KEF-ECTION OF HIGH POINT THROUGH CENTROIO 3730 Xl(K3i-M = 2.*Xl(K2lJ) " XKINDEXtJI 3740 9 X(JI = X1(K3»J) 3750 IN a КЗ 3760 CALL SUMR 3770 1F(SUM(K3I.LT.SUMI-I 60 TO 11 3780 SELECT SECOND LARGEST VALUE. IN SIMPLEX 3790 IF(llVDEX.EU.l) GO TO 38 3800 SUMS = SUM(l) 3810 GO TO 39 3820 38 SUMS = SUM!21 3830 39 DO 12 1 ' 1> Kl 3840 IFKlNUtX - ll.EQ.O) GO TO 12 3850 IFIbUM(l).LE.SUMS) 00 TO 12 3860 SUMS = bUMIU 3870 12 CONTINUE 3880 IF<SUM<K3).GT.SUMSI GO TO 13 3890 60 TO 14 3900 FORM EXPANSION OF NEW MINIMUM IF REFLECTION HAS PRODUCED ONE MINIMUM 3910 11 DO 15 J = It NX 3920 Xl(K4tJ) = Xl(K2t\J> + 2.»(X1(K3.JI - ХШ2.Л) 3930 15 X(JI « Xl(K4tJ) 3940 IN = K4 3950 CALL SUMR 3960 IFISUHIii'tl.LT.SUMLI GU TO 16 3970 GO TO 14 3980 13 1F(SUMU3).ST.SUMH) GO TU 17 399Q L)U 18 J « 1» NX A000 18 XKINDEX.Jl = X1(^3>JI *<>10 17 DO 19 J = 1. NX 402П X1IK4.J) = 0.5»Xl(INDEXfJ) + O.5*Xl(K2.J) 4030 19 X(J) = X1(K4|J) *040 IN <• K.4 *°50 CALL SUMR 4°60 IFISUKH.GT.SUMIK4)I 60 TO 6 4070 KEDuCt blhPLEX bY HALF IF RtFLECTION HAPPENS TO PKOOuCE A LARGER VAt. «080 <-UE THAN ТнЬ MAXIMUM «090 1H 20 J = ll NX «100 DO 20 1 = 1. Kl «HO 20 ХИ1.Л = u.5*(Xl(bJ) + XHKOUNT»J>> «120 DO 29 I f 1« Kl 4130 DO 30 J = li NX «140 30 X(JI • Xl(liJ) *150 IN = 1 4160 CALL SUMR 4170 29 CONTINUE «180 5 SUML = SUM(l) «190 K.OUNT = 1 «200 DO 23 I = 2i Kl «210 lFlbUML.LT.SUM(U) Й0 TO 23 «220 SUML * SUM!II «230 K.OUNT = I «240 23 CONTINUE «250 SR(INF) = SORTISUM(KOUNTI) «260 DO 27 J = It NX «270 27 X(JI = XKKOUNT.J) 4280 GO TO 26 *z90 6 DO 31 J = 1» NX *300 31 XKINDEX.JI = Xl(K4tJ) *ЗЮ SUM(INDEX) • SUM(K4l '»320 GO TO Ь 4330 16 DO 2S J = It NX *3*0 Xl(lNDEXtJ) ¦ X1(K4|J| 4350 SI X(J) *360
511 SUM 1 INDEX) - SUMIK4) SRlINF) » SQRTISUMIK4)) CO TO 26 14 DO 22 J ° lt NX XUINDEX.J) * X1IK3>J) 22 XIJ) = XUINDEX.J) SUMUNDtX) • SUMIK.3) SRllNF) « SQRT(SUM(K3)) 26 ICONT • ICONT + 1 DO 36 J с itNX 36 X2(INFtJ) = XIJ) JFUCONT.LT.2«ia> GO TO 50 ICONT = 0 DO 24 J = It NX 24 XIJ) «= XUK2.J) IN ¦ K2 CALL SUMR DIFER * 0. DO 57 1 = li Kl 57 DIFER « DIFER + ISUM(I) - SUM(K2))**2 DIFEK « l./(K.7«XNX)*S0RT(DIFER| IFICIFER.GT.1.0E-14» GO TO 50 С IF FLEXIBLE SIMPLEX METHOD FAILED TO SATISFY THE CONSTRAINTS WITHIN С THE TOLERANCE CRITERION FOR THE CURRENT STAGE. THE SEARCH IS С PERTURBED FROM THE POSITION WHERE THE X VECTOR IS STUCK AND THEN С FEASBL IS REPEATED ONCE MORE FROM THE BEGINNING 51 IN « Kl STEP = 2O.»FDIFER CALL SUMR SRI INF) • bQRTlSEOLI DO 52 J = lt NX 52 Xl(KltJ) •= XtJ) DO 53 J » 1. NX FACTOR = I. XIJ) "= XllkliJ) + FACTOR»STEP XKL9.J) = XIJ) IN • L9 CALL SUMR XU) - X1IK1.J) - FACTOR*STEP X1(L5»-I) > XIJ) IN = L5 CALL SUMR 56 IF(SUML9).LT.SUM(K1) ) GO TO 54 IFISUM(L5).LT.SUM(K.1) ) GO TO 55 GO TO 97 54 X1IL5.J) * Xl(KltJ) SUMIL5) • SUMIK1) X1IK1.J) = X11L9.J) SUMIK1' " i>UM(L9) FACTOR = FACTOR + 1. XIJ) = Xl(KliJ) + FACTOR*STEP IN • L9 CALL SUMR 00 TU 56 55 XUL9.J) • XHKltJ) SUMIL9) • SUM(Kl) XllKliJI « X1IL5.J) SUrtlK.ll • SUMIL5) FACTOR - FACTOR + 1. XIJ) = XllKl.J) - FACTOR*STEP IN ¦ Li CALL SUMR CO TO 56 С VNE DIMENSIONAL SEARCH BY GOLDEN SECTION ALONG EACH COORDINATE S>7 HIJ) = XIIL9.J) - X1IL5.J) X1IL6>J1 * XHL5,J) + HIJ)«R1A XIJ) = X1(L(>,J) Iti - L6 4370 4380 4390 4400 4410 4420 4430 4440 4450 4460 4470 4480 4490 4500 4510 4520 4530 4540 4550 4560 4570 4580 4590 4600 4610 4620 4630 4640 4650 4660 4670 4680 4690 4700 4710 4728 4730 4740 4750 4760 4770 4780 4790 4800 4810 4820 4830 4840 4850 4860 4870 4880 4890 4900 4910 49J0 4930 4940 4950 4960 4970 4980 4990 5000 5010 5C2O 5030 5040
612 CALL SUMR 6050 X11L7.J) « X11L5.J1 + H(J)«R2A 5060 XIJ) • X1(L7,J) S070 IN • L7 56gO CALL SUMR 5090 IFISUM(L6)»GT.SUMIL7)) GO TU 66 5100 Xl(L8tJ) • XHL5.J) + 11. - R3A)*HIJ) 5Ц0 Xl(LbtJ) « Xl(L7tJl 5120 XIJ) - X11L8.J) 5130 IN * LO 5140 CALL SUMR 5150 1F(SUM(L8).UT.SUM(L6)> ЬО TO 76 5160 XllLb.J) = XI(L6.J) 5170 SUMIL5) * SUMIL6) 5180 GO TO 75 5190 7fc X1(L9»J) • XllLB.Jt 6200 SUMIL9» - iUM(L8) 5210 ЬО ТО 75 S22O 60 X1IL9.J) - XIIL61J) 5230 X1IL8.J) • X1IL5.J) + R3A«ri(J) 5240 XIJ) » XML8.J) 5250 IN « LO 5260 CALL SUMR 5270 STLP - bill 540 SUMIL9) • 6UMIL6) 5280 lF(SUM(L7)»GT.SUbU-«ll ) GO TO 71 5290 XHL5.JI • XllL8iJ) 5300 SUMIL5) « SUMIL8) 5310 GO TO 75 5320 П Xl(LV.J)- « XllLT.JI 5330' SUM(L*1 ¦ SUMIL7) 5340 1i 1FIABSIX1IL9<J) - Xl(L5iJ)).GT,C.01»FDIF?R) 00 TO 97 5350 Xl(f-ltJ) « XKL7.J) 5360 XIJ) « X1(L7,-J) 6370 SUMlLb) 5 380 SQRTISUMIM)! 5390 T.FUlFtR) 6u TO 760 5400 •si COlNTINUt 5410 ICHtK. « ICriEK + J 5420 SUP « fPIFlR 5430 if UCHtK.Lt.2) CO TO 25 5440 FOtO « 1.01-12 5450 PRIM 853 5460 PKJIlT 850 5470 PKJftl в->1, (XIJ),J«1.NX) 5480 НК1ГчТ S5i FDIFERi SRIINF) 5490 GU TU 4S 5500 760 DO 761 J « 1. NX 5510 XJIW(J) • X1K1.J) 5520 761 XIJ) « X1IK.1.J) 5530 50 IFISRUNf I.GT.fDlFlRJ GO TO 28 5540 WOD1FILU LACRANGE IMEKPOLAT JUN FUR TIGHT INEQUALITIES 5550 1FISR|U,F).GT.O.) GO TO 35 5560 CAuL HKOOLIM3) 657.0 F1CT * RlKV) 5580 DO iiV J - 1» NX 5590 liV XIJ)¦- X2IJNF.J) 5600 CALL fr(OBLEMI2) ЬЫС DU 40 J = K.7iK8 56?0 40 R1IJ) = RIJ)' 5630 HO «1 J ¦ li NX 5640 41 XIJ) - XllKOUNTiJ) 5650 CALL PRODLLMI2) 5660 DO 42 J => K7.K8 567.0, «2 R3U> = R(J) 568Q DO 43 J = 1 , NX 569CS H(JI = XI IH.UUrNT,J) - X2I1NF.J) 5700 43 XIJ) - XUlHFtJ) + O.b*hlJ> 57J0
513 CALL PRO6LLMI2I J7Z0 FLG(l) » 0. 6730 FLGU) • U. 5740 FLGO) « 0. 5750 1H « J « K7»«8 5760 IF(R3(J).GE.O.) GO TO 44 5770 FL6I1I = FLOd) + RIIJ)»R1(J) 5780 FLGI2) • FLGB> + R(J)»R(J) 5790 FLGC> « FLGO) + R3!J)*R3(Jl 5800 44 CUNT1|4U? 5810 6RI1NF) - SQRTIFLGUII 5820 IFISRI1NFI.LT.FDIFERI GO TO 35 5830 ALFAI » FLG(l) - 2.<FLGB) + FLGO) 5840 BETA1 ¦ 3.*FLGtl) - 4.*FLGB> + FLGI3J 5850 RATIO - BETA1/I4.»ALFAI) 5860 DO 4b J - 1> NX 5870 «5 X(J) » X2(lNF.J| + H|JI»RATIO 5880. If» - INF 5890 CALL SUMR 5900 SRIINF» • SQRT(SEQL) 59Ю IFISRUNFI.LT.FDIFER) GO TO 465 5920 DO 4V 1 - Ь 20 5930 00 4Й J - U NX 5940 4b XU) = X(J) - 0.05*H(J) 5950 CALL 6UMR 5960 SK(IKF> • bURTFEULI 5970 IF(SRIlNF).LT.FDIFtR) GO TO 465 5980 49 CUNTINUt 5990 4t3 CALL PkUBLtMO) 6000 IFIF1NT.GT.RIIC9)) GO TO 46 6010 SRIINF' = U. 6020 GO TO 35 6030 46 DO 47 J = 1» NX 6О4О 47 X2UNF.-I) - XIJI 6050 35 CONTINUt 6060 UO 33S -J • 1 > NX 6070 33b X(J) * X2I1NF.JI 6080 «jju FORMAT (//luSH IT IS NOT POSSIBLE TO SATISFY THE VIOLATED CONSTRAIN 6090 IT ЬЫ FROM THIS VECTOR. THE SEARCH WILt. BE TERMINATED. /68н PLEASE 6100 d CHoOSt A NEW STARTING VtCTON AND REPEAT SOLUTION AGAIN I 6110 851 FL)RMAT(//i63H THE VECTOR FUR WHICH THE CONSTRAINTS COULD NOT BE SA 6120 ITJbFIfcO IS /t(8bl6.6J> 6130 Ыг FORMAT!//><!7H THE TOLERANCE CRITERION « El4.6,20X« *9H THE SQUARE 6H0 lROOT'OF THE CONSTRAINTS SQUARED IS * E16.6) 6150 853 F0Ki»,«T(//,81H ****** subROuTINE FEASBU FAILS TO FIND A FeAS 616P llbLfc POINT »**»••** I 6170 RETUHI4 6180 END 6190 SUbROUTINE START 6200 DIMENSION AE0>50) 6210 DIMENSION XEO).xl(SO.5u).X2E0t5O).RAU0),SUM|50)>FE0)iSRE0 I• 6220 1 RULUIluO) 6230 C0MM0N/l/NX.NC>NICtSTEP>ALFA.BETA.GAMA,IN,INFiFDIFER.SEQL»Kl.K2t 6240 1K3iK4.IC5><6.K7.K8.K9,XiX1iX2.R»SUM,F,SR.R0LD>SCALE»FOLD 6250 COMMUN/2/LFEAS.L5»L6»L7.L8.L9,RlA.R2A,R3A 6260 VN • NX 6270 STEP1 = STEP/IVN*SOKTB.|)*(SORT(VN + 1.) + VN - 1.) 6280 STEH2» STEP/(VN«SWRTB.))*(SUf;iT(VN + 1.) - 1.1 6290 UO 1 J = It NX 6300 1 A(ltJ) = 0. 6310 DO Z 1 • 2. Kl 6320 UO * J « 1» NX 6330 4 A(I.J) - STEP2 6З4О L = I - 1 6350 A(I.L) « STEP1 6360 2 CONTINUE 6370 DO 3 1 = It Kl 6380 РУ 3 J ¦ It NX 6390
514 Приложение Б 3 XKIiJ) • X(J) + AlbJl RETURN END bUbRCJUTINt kRITEX DIMtNS.luN X(tU),xlE0>5'J).X2(S>0.50) >R ( 100) .SUM 50) «F I 50 ) >SR ( 50 ) » 1 ROLDIluO) CUI-lMUN/l/NX,NC.NlC.STEP.ALFA,BETA.GAMA,lN.INF»FDlFER»SEQLtKltK2» lK3tKi..K5.<6tK7.K8.K9.X,Xl.X2.S.5Ci4>F.SR.R0LD,SCALE» FOLD CUMMON/2/LFEAS.L&>L6.L7lL8.L9llR].-n.R2A>R3A CALL PROBLEM!3) PRINT 1. RIK91 1 FURMATl/t 28H OBJECTIVE FUNCTION VALUE = E17.7) PRINT 2» (X(J)i J = li NX) 2 FCjRMAT(/«'29H THE INDEPENDENT VECTORS ARE /FЕ17ф7> IFINC.EU.O» GO TO 6 CALL PrtUbLtM(l) PRINT 3» (R( J) » J = 1» NO 3 FURNATI/. 36H THE EUUALITY CONSTRAINT VALUES ARE /I6E17.7) 6 IFINK.tQ.u) GO TO 5 CALL PRUBLEMI2) PRINT 4 . (R(J)i J - K7.K6) it FURMATI/» Э4Н THE INEQUALITY CONSTRAINT VALUES /FЁ17.7) 5 RETURN END SUoROUTINE SUMR Ch**»*thI6 SUbRoUTINL COMPUTES ТнЕ SUM OF THE SQUARE VALUES OF THE VIULATEU CONSTRAINTS IN ORDER TO BE COMPARED WITH THE TOLERANCE CRITtRlUN O1HENSIUN 1 RULUI100) CUMWUN/l/NX.NC.NIC,STEP>ALFA»BETA.GAMA.IN»INF»FOIFER.SEQLiKlttC2» ЩЗ» Kii,Ki,Kb,K7,KB,K4,Xi XI tX2tR »SUM. F.SRtRQLD (SCALE ifOLp COMMON/2/LFEAS»L5>L6)U7>L8»L9lRlA»R2A(R3A SUMlIN) « 4. CALL PRUBLEMI2) StOL = 0. IF(NlC.LQ.u) GO TO li DO 1 J = K7. K8 1FIRIJ).GE.O.) GO TO 1 SEUL ~ SEQL + R(J)*R(J) 1 CONTINUE « IF(NC.EQ.O) GO TO 3 CALL PROBLEM!1 I 1)U 2 J = Ь NC 2 SEUL = SEQL + R(J)*R(J> 3 SUM(IN) = SEQL 5 RETURN END 6400 6410 6420 6430 6440 6450 6460 6470 6480 6490 6500 6510 6520 6530 6540 6550 6560 6570 6580 6590 6600 6610 6620 6630 6640 6650 6660 6670 6680 6690 6700 6710 6720' 6730 6740 6750 6760 6770 6780 6790 6800 6810 6820 6830 684О 6850 6860 6870 6880 6890 Третья и последующие карты Если исходные данные задачи, такие, как константы, коэф- коэффициенты, значения f (х) и т. п. должны быть введены в про- программу, их следует перфорировать на третьей и последующих кар- картах. При этом можно использовать любое необходимое количество перфокарт в любом удобном формате. Эти данные считываются в основную программу Флекси и переносятся в подпрограмму, ко- которая вычисляет функции и сопутствующие выражения задачи {SUBROUTINE PROBLEM (INQ)} с помощью соответствующих общих операторов. Операторы FORMAT, COMMON и READ для специфических данных должны обеспечиваться пользователем.
Программы на языке ФОРТРАН 515 Оператор READ необходимо использовать для данных (кон- (констант, коэффициентов и т. п.), которые сохраняются для всех по- последующих вычислений. Этот оператор располагается в начале основной программы после содержащей комментарий карты «Permanent Data for the Problem...» (неизменяющиеся данные за- задачи...). Если таких данных нет, то пользователь должен изъять все операторы считывания и распечатки, следующие после ком- комментирующей карты до оператора 10. Тогда с карт, следующих сразу после второй карты данных, будут считываться исходные предполагаемые значения переменных задачи, т. е. xf\ i = 1, ... ..., NX. Исходные значения для х<") располагаются после послед- последней карты данных, описанной выше, т. е. после второй карты, если нет коэффициентов или констант, которые должны считывать- считываться. Исходные предполагаемые значения х@) должны перфориро- перфорироваться в формате 8F10.5. Рассматриваемая программа может управлять более чем од- одним набором исходных предполагаемых значений переменных. Это означает, что после отыскания решения для первых исходных предполагаемых значений переменных основная программа осу- осуществляет считывание дополнительного набора исходных предпо- предполагаемых значений переменных и задача решается еще раз. После завершения решения управление в программе передается оператору 10 для считывания следующего х<°> и соответствующего решения задачи. Если нужно изменить данные в задаче (новые коэффициенты или новые константы), то операторы считывания с соответствую- соответствующими операторами по размещению и формату общих данных должны быть расположены после оператора 10. Программа заканчивается картой «End of File» (конец файла).
Приложение В МАТРИЦЫ 9 Алгебра матриц широко используется всякий раз, когда при- приходится иметь дело с большим числом переменных, связанных линейными соотношениями. Знание некоторых условных обозна- обозначений и технических приемов матричного исчисления, а также представление о прикладных возможностях и границах примени- применимости теории матриц необходимы как для освоения методики реше- решения важного класса линейных задач, так и для понимания спосо- способов упрощения громоздких математических записей. Следует также отметить, что операции над матрицами могут с большой скоростью выполняться на любой цифровой вычислительной машине. Главное преимущество использования аппарата теории матриц заключается в том, что при этом удается избежать боль- большого числа утомительных, хотя и имеющих стереотипный характер, элементов вычислительных процедур. Ниже приводят- приводятся некоторые наиболее существенные свойства матриц и рассма- рассматриваются основные операции над матрицами. В.1. ОПРЕДЕЛЕНИЯ И ОБОЗНАЧЕНИЯ Таблицу а = an ai a.,, содержащую определенным образом упорядоченные элементы aik, называют матрицей. Первый из индексов, которыми снабжен каждый элемент матрицы, обозначает номер строки, второй — номер столбца. Квадратной называется матрица, в которой число строк рав- равняется числу столбцов. Так, например, а = 1 2 3 2 3 4 3 4 5
Матрицы 517 представляет собой частный случай матрицы размерности п X п при п — 3. Матрица, имеющая m строк и п столбцов, называется прямо- прямоугольной. Матрица размерности 1 X 1 есть скаляр. Две матрицы считаются равными друг другу, когда каждый элемент первой матрицы равен занимающему соответствующее положение (которое определяется номером строки и номером столб- столбца) элементу второй матрицы. Матрица, состоящая из единственного столбца, называется вектор-столбцом (или просто столбцом), а матрица, состоящая из единственной строки, называется вектор-строкой (или просто строкой). В качестве иллюстрации приведем вектор-столбец и вектор-строку [12 3 4]. Диагональной называется квадратная матрица, в которой от- отличными от нуля могут быть только элементы, расположенные на главной диагонали. Под единичной матрицей (обозначаемой, как правило, через I) понимается диагональная матрица с диагональными элемента- элементами, равными 1 (остальные элементы равны 0). Так, например, п о о; 1= 0 1 0 _0 0 1. есть единичная матрица размерности 3x3. Матрица, все элементы которой равны нулю, называется ну- нулевой матрицей, обозначаемой через 0. Определитель (детерминант) матрицы а будем обозначать че- через det (а). Если det (a) # 0. матрица а называется невырожден- невырожденной; если det (a) = 0, то говорят, что матрица а является вырож- вырожденной. Если в матрице а поменять местами строки и столбцы, то по- получится матрица, транспонированная по отношению к а: Так, например, если аи -'12 ат\ a. ,12 а\п ten ¦ ¦ ¦ dmn 0 -1 1 4
518 Приложение В то 2 О 1 Симметрической матрицей называется матрица, удовлетворяю- удовлетворяющая условию а = аг. Например для матрицы 0 1 2' 1 2 3 2 3 4 "О 1 2' 1 2 3 3 4 т. е. а = &Т, и, следовательно, мы имеем дело с симметрической матрицей. В.2. ОПЕРАЦИИ НАД МАТРИЦАМИ Сложение матриц. Сумма двух матриц а + b = с, где a, b и с — матрицы размерности m X п, находится путем попарного сложения всех одинаково расположенных элементов а и Ь. Отметим, что сумма матриц разных размерностей не имеет смысла. Проил- Проиллюстрируем приведенное выше определение на конкретном при- примере: Г2 0] П -2] ГЗ -2 Умножение матрицы на скаляр. При умножении матрицы на скаляр получается матрица, в которой каждый элемент равен соответствующему элементу исходной матрицы, умноженному на данный скаляр. Пусть, например, а = 3, а а = Тогда 3 2 1 4 6 0 1 2 1 аа = 3 3 3 X X X 3 2 1 3 3 3 X х X 4 6 0 3 3 3 X X X 1 2 1 '9 6 3 12 18 0 3 6 3 Из принятых выше определений следует, что а + (Ь + с) - (а + Ь) + с, а + b = b -f a,
Матрицы 519 а + 0 = а, а (а + Ь) == аа + ab. Произведение двух матриц. Умножение (слева) матрицы а на матрицу b возможно только в том случае, когда эти матрицы удовлетворяют следующему требованию: число столбцов матрицы а должно равняться числу строк матрицы b (а называется левым множителем, a b — правым множителем). Заметим, что ab, во- вообще говоря, не равняется Ьа, хотя в некоторых частных случаях равенство ab = ba может иметь место. Для того чтобы умножить матрицу а на матрицу Ь, необходимо проделать следующее: взять первый слева элемент первой строки матрицы а и умножить его на первый сверху элемент первого столбца матрицы Ь, затем взять второй слева элемент первой строки матрицы а и умножить его на второй сверху элемент первого столбца матрицы b и т. д., пока не будут попарно перемножены все элементы первой строки мат- матрицы а на соответствующие элементы первого столбца матрицы Ь; после этого все найденные произведения суммируются, в результате чего определяется элемент си матрицы с = abs Таким образом, Аналогично определяются остальные элементы матрицы с, т. е. элемент, расположенный в г-й строке и k-u столбце матрицы с = ab, определяется следующим соотношением: Проиллюстрируем сформулированное выше правило на при- примере умножения матрицы на матрицу Произведение равно "(О + 0 + 6) @ + 2 + 3) .@ + 2 + 6) а = Ь = 1 2 .0 0 1 1 2 1 2. 0 2 3 1 1 2 3 0 1 A+0 + 4) B+1+2) @ + 1 + 4) C + 0 + 2) F + 0 + 1) @ + 0 + 2)J =  5 8 5 5 5 5 7 2^ Определив произведение двух матриц, можно рассмотреть ряд дополнительных свойств, которыми обладают матрицы.
520 Приложение В Матрица, транспонированная по отношению к произведению двух матриц. Матрица, транспонированная по отношению к про- произведению двух матриц, равняется произведению матриц, транс- транспонированных по отношению к исходным матрицам, взятому в обратном порядке, т. е. (ab)r - bV. Пусть, например, [3 41 ГО 2 Тогда [16 181 [16 20] ГО 41ГЗ П [16 20 17J « (ab) =[18 17]-[2 3J[4 5J = [18 17 • Обратная матрица. По аналогии с обратной величиной по от- отношению к некоторому скаляру для невырожденной квадратной матрицы а существует единственная матрица а~', обладающая тем свойством, что аа^1 - а-'а = I. Существуют различные способы, позволяющие выразить элементы матрицы а~' через элементы матрицы а; желающие познакомиться с этими способами могут обратиться к соответствующим учебным пособиям1'. Если аг = а-', то матрица а называется ортогональной. Матрица, получающаяся в результате умножения а на а7", является симметрической. Действительно, пусть b = ааг. Тогда Ьг=(ааг)г = (ar)V = aar.' Для матрицы, транспонированной по отношению к невырожден- невырожденной квадратной матрице а, обратная матрица равняется матри- матрице, транспонированной по отношению к а~', т. е. (а1) = (аO. '' Читателю, знакомому с теорией определителей, напомним, что для нахожде- нахождения обратной матрицы можно воспользоваться следующей (универсальной) форму- формулой: где Afa- — алгебраическое дополнение элемента aik в определителе det (а). Ясно, что условие невырожденности а является существенным: при det (a)= 0 приве- приведенная выше формула теряет смысл.— Прим. перге.
Матрицы 521 Нормировка. Длина действительного вектора, т. е. вектора, все составляющие которого представляют собой действительные числа, определяется следующим образом: Длина вектора х = (хгх)'/а = B * Процедура нормировки вектора х сводится к делению каждой со- составляющей х на длину этого вектора (с тем, чтобы получить в результате единичный вектор). Пусть, например, х=[1, 2, -3, 0]. Тогда Длина х = j/l2 + 22 + Н ЗK + О2 = V"U и Л — Г ' 2 —3 Х ~ [ /14 ' /14 ' В.З. ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫЕ МАТРИЦЫ Каждой квадратичной форме п / (х) = 2 aijXiXj >'=/ /=< соответствует действительная '> симметрическая квадратная мат- матрица а, или, используя матричные обозначения, можно написать /(х) = хгах. Матрицу а называют положительно полуопределенной (или неотрицательно определенной), если / (х) >• 0, и положительно определенной, если / (х) > 0 для любого х Ф 0. Квадратичной форме / (х) соответствует также бесконечное число других квад- квадратных матриц Ъп, не являющихся симметрическими: / (х) = хгах = xrbAx. Хорошо известно, что необходимые и достаточные условия, при выполнении которых имеет место положительная определен- определенность, сводятся к следующему: все главные миноры и определи- определитель матрицы а должны быть положительными (или, что эквива- эквивалентно сформулированному выше требованию, должны быть по- положительными все собственные значения данной матрицы). Эти утверждения справедливы лишь в том случае, если иметь в виду '^ Матрица называется действительной, если все ее элементы представляют собой действительные числа. — Прим. перев.
522 Приложение В именно матрицу а, а не какую-либо из матриц Ь„. Действитель- Действительная несимметрическая матрица может удовлетворять приведен- приведенным выше требованиям и все же не быть положительно опреде- определенной. Рассмотрим, например, 31ГГ Ж = xrbx, где % — Собственными значениями b являются 2 и 1, det (b) = 2 и глав- главный минор b равен 2; тем не менее / (х) принимает отрицательные значения в интервале —2 <; х< — 1. С другой стороны, /(х) может быть представлена в виде = [1 х] о _2_ 1 т 4- 1 И = хгах, х где а — симметрическая матрица. Собственными значениями а являю- являются Xt — 3/2 + V10/2 и Хг = 3/2 —1/^10/2 (отрицательное число) и det (а) < 0, что полностью согласуется с приведенными выше кри- критериями положительной определенности при записи /(х) с помощью симметрической матрицы.
Приложение Г СТАНДАРТНАЯ ТАЙМЕР-ПРОГРАММА PPOrtBAM STM (OUTPUT) nt«TN'ION Л('.П|40) ,Г D01 71 100 MM « Ю 7 * 1 »О1*ОПГ-О1 ПО М L = 1. NN ПО 25 1 = 1, N ПО 25 J = li N А( I I.)) * U IFII-J) 2 4|2П,2^ ЛA1.1) = I + J fONTINUF CALL S1ATINV(AtNA,r{P,NiNriJv|,T} PPIMT 1C01 ((A(I|J))J a I) ||) •! = Ь f!l SUSRO'JTiNf MATlNVtAi IROa'iICOLiMiWIKiSHI.ST) 01MFMSI0N All) »IROV'A) iOUl) NP1 - N +'1 DO 4 I = 1 , N IfOLin « 1 JPOWI1) в 1 ПО 71! ITFR = 1| W JTF» 300 ЭС1 удуо = i IF(TrMPK00!?Cl.301 TFMP - -TEMP CONTIM'E L IMITO = NP1 - J ТГ1? 00 15 I = 1TFR.N ПО 15 J - It LIMITO 1J = (J-lI*ND1M + I Л о 5 Л = Л 1 IJl 41? in 3 04 30S 15 го ««« - - arsa j > ( t *¦ Чг А! г./> ) J I) f VAVR = I WAXO = J TTVP = A ( I.I) IF/ TCWU ЮЛ/ ^Лвч TEMP = -TEMP CONTINUE Continue if(temp-smust) г 1R0WINP1) в ITER RFTURN '0 00 J N ITJ = ( J-! l»4Plw +' ITF1» TF^P = А|МА.Х°.П A(MAXRJ) о Л(ITJ) A()TJ) = ТПМР !Of)-.j('MxP) ¦ lPf)w(lTCR) I°OV{ ITE") « 1TF>'P IF[vax.O - 1 I A'jt1i5,A5 01 'r-0 I к 1, N I'^XO < (МЛХ0-1I'N^IK + I TF.MP s /4 11 Л ( I ) » Л( I Л I 1МЛХО) г 7'~ 1C01. С-1ЛХО) 4 1C0I. A) KOI.!)) ¦= ITFWP TFyP • rtlITE") 1TFMP « !COL( 11 M 61 J = 2i N ITJ'.U = (.j-2)«HDlM + ITFP I TJ в IJ-) )«»'Г'1« + 1ТГР AllTJMll > AlITJl/TFV.p ICOlfJ-1) = KOI.(J) 1TN = (N-l )»NEIM + ITE' A(ITN) « UO/TFMCi lroLIM! s 1TFVP DO 75 I = I ( b> IFll-lTER) 65G5,65 ТГМ" = Л( 1 ) DO 71 J r ?, N I.JW1 s [,)-3)«Nniw + 1 I.) « ( J-I )»Nni"+I ITJM1 = {.l-2)»WDIutlTEi> »IIJ»II - Л11.М - MITJ^'1 )*TF CONTINi'F )N = (N-l)»M0iW + I )TM а (Ц-1 |»nlM + IT^P A(IN) ' -(ТЕУР*АATN1» CONTINUE ПП 110 | > 1, N NO «П J . Ь И - и fl
524 80 'CONTINOF 85 IF(I-J><H.110,94 90 PQ 95 L « 1, N 1.1 » (I-1)»NO1M + 1. LJ - (J-1)»N0I4 + U TF«P = A(LI) A(LI) - A(LJ) 95 A(L.I) = TEMP I ROW(J) = 1 ROW(I) ICO CONTINUE' DO 125 I » It N DO 105 J = 1. N 1FAC0LIJ1-1) 105-110,105 110 1F( 1-.|)Пгч125>115 115 00 120 L « 1, N II 5 (L - 11'NDIM + I Jl- - (L - 1 )*N01M + J TEMP » AlIL) A(IL) = A(.IL) \?P AUL) = TF4P ICOL(J) = ICOLII) ПО TO 125 105 CONTINUE 125 C0NT1MUF "JFTIIRN
Приложение Д ОБОЗНАЧЕНИЯ а — константы или постоянные коэффициенты (раз- (различаются индексами); пц— элементы матрицы а (или А); а — матрица коэффициентов; ctj — вектор-столбец матрицы; t/Z(s) — числовое значение, определяемое по формуле (8.3.7); А — матрица, состоящая из постоянных элементов ац\ А,- — векторы, ассоциированные с методом Розенбро- ка; A(fe) — матрица, ассоциированная с соотношением C.4.5); А; — матрица, состоящая из коэффициентов, фигури- фигурирующих в совокупности / ограничений; b — константы или * постоянные коэффициенты (раз- (различаются индексами); b — собственное значение матрицы (каждому соб- собственному значению присваивается свой индекс); b — вектор-столбец, составленный из коэффициентов при соответствующих переменных; Ь, — /-я строка матрицы Вт; В, — матрицы, определение которых дано в связи с рассмотрением соотношения D.3.2); B(ft) — матрица, ассоциированная с соотношением C.4.5I В,„ — матрица, состоящая из коэффициентов, фигу- фигурирующих в системе ограничений, имеющих вид неравенств; с — константы или постоянные коэффициенты (раз- (различаются индексами); Ci — константа; с а — диагональный элемент матрицы С; с — вектор-столбец матрицы С; С — диагональная матрица, определение которой дано в связи с рассмотрением соотношения C.2.8);
526 Приложение Д d — символ полной производной; элемент матри- матрицы D; dt — случайная величина, характеризующаяся нор- нормальным распределением; dk — величина, определение которой дано в связи с рассмотрением соотношения F.5.10); DL — направляющий^ косинус; D — матрица, с помощью которой строится правиль- правильный многогранник в Е"; D{ — вектор-столбец матрицы D; е,- — собственный вектор, соответствующий ctt-; Е — эффективность при одномерном поиске; Е (k) — относительное улучшение целевой функции на /с-м этапе оптимизационного поиска; Еп — п-мерное евклидово пространство; Ei i — погрешность за счет линеаризации в методе ПОП; Е (х, u, w) — функция, двойственная по отношению к Р- функции; / (х) — целевая функция; значение целевой функции в точке х; f (х*) — оптимальное значение / (х); F (х) — аргумент / (х); Fn — число Фибоначчи; F(x<k),d) — параметр в алгоритме Голдштейна — Прайса; g (x) — функция, задающая ограничение в виде нера- неравенства (каждой функции присваивается свой индекс); Д?«'> = [V / (х«+») - у/ (х">)]; G (gc (x)) — функционал над множеством ограничений в виде неравенств; G@ = [Ag<°> Ag*1» ... Ag<'->>]; hi (ha) —диагональный элемент матрицы H (x) (Н(х)); h — вектор, составляющими которого являются функции, задающие ограничения в виде равенств; ht (x) — функция, задающая t-e ограничение в виде ра- равенства; Н, Н (х) — матрица Гессе целевой функции; Н, Н (х), Н* (х) — приближенная (или усредненная) матрица Гессе; Н {hi (x)) — функционал над множеством ограничений в виде равенств; I — единичная матрица; I; — /-Й столбец матрицы I; J — матрица Якоби;
Обозначения 527 К — большое (фиксированное) число; К' — совокупность индексов, дополняющих множество индексов, ассоциированных с базисом; L — функция Лагранжа; Lt — нижняя граница для х(; т — число ограничений в виде равенств; т) — величины, определение которых дано в связи с F13) р рассмотрением F.1.3); оценка (A/r)(fc) Af)~' на — оценка (A/r)(fc) Af)~' на k-м этапе вычислительного процесса; М — линейное многообразие; п — суммарное число переменных; N — норма; р — полное число ограничений (как в виде равенств, так и в виде неравенств); р — число ограничений в виде неравенств, оказав- оказавшихся нарушенными во внешней точке; р* — полное число ограничений в виде неравенств; р\к) — величины, определение которых дано в связи с рассмотрением F.3.1); Р (х(*>, pW) — штрафная функция (обобщенная присоединен- присоединенная функция) с весом р(*> на k-м шаге; Р (х(*>, /•<*>) — штрафная функция (обобщенная присоединенная функция) с весом г'*) на k-м шаге; Р (х) — обобщенная присоединенная функция; штраф- штрафная функция; Рр — проектирующая матрица на k-м шаге (индекс / обозначает число связанных с нею ограничений); А (Ь\ Pi' — проектирующая матрица (индекс / обозначает число связанных с нею ограничений); q — константа; qf) — величины, определение которых дано в связи с рассмотрением F.3.1); q (x) — квадратичная целевая функция или ее прибли- приближение; Q — положительно определенная квадратная матри- матрица; г = (п — т) — число степеней свободы; весовой коэффициент в методе штрафных функций; г (х<*>) — вектор возврата, определяемый соотношением F.3.17); г(. — диагональная матрица, элементами которой яв- являются случайные числа; R — множество допустимых точек в Еп\
Приложение Д l R — симметрическая матрица, используемая в алго- алгоритме Пирсона; s — расстояние; s — вектор-столбец, задающий направление оптими- оптимизационного поиска; s — единичный вектор-столбец, указывающий на- направление оптимизационного поиска; S* — множество допустимых точек; S(k) — вектор, составляющими которого являются масштабные коэффициенты; t — расстояние между двумя вершинами; параметр размера исходного многогранника в методе сколь- скользящего допуска; Т (х) — функционал над множеством всех ограничений, т. е. над множеством функций ht (х) и g{ (х); щ — ослабляющая переменная для i-ro неравенст- неравенства; и, — множитель Лагранжа, ассоциированный с /-м ограничением в виде неравенства; н* — множитель Лагранжа в экстремальной точке; и — вектор, составляющими которого являются мно- множители Лагранжа; и\к) — полученный на k-м шаге вектор, составляющими которого являются множители Лагранжа в / активных ограничениях; U — унитарная матрица; 1li — оператор Хевисайда (принимает значения 0 или 1); l)t — верхняя граница для Х? Vj — ослабляющая переменная для /-го неравенства; v — любой вектор-столбец общего вида; wt — искусственная переменная для t'-ro равенства; Wj — множитель Лагранжа, ассоциированный с огра- ограничением в виде равенства; w*. — множитель Лагранжа в экстремальной точке; W — положительно определенная симметрическая матрица; х — произвольная независимая переменная; X; — составляющие вектора х; х* — составляющие вектора х*; xfj — /-я составляющая i-ro вектора в Еп\ аппроксимация хг, j
Обозначения 529 х — вектор-столбец, составляющими которого явля- являются независимые переменные; х* — значение х, соответствующее оптимальному ре- решению задачи нелинейного программирования; хЛ — вершина, соответствующая наибольшему значе- значению целевой функции; х,- — i-й вектор (или 1-я вершина), ассоциированный (или ассоциированная) с минимизацией / (х); X; — вершина, соответствующая наименьшему зна- значению целевой функции; х, — /-й вектор, ассоциированный с минимизацией Т (х); х* — приближенное значение х, при котором достига- достигается минимум f (x); Xs — произвольный скаляр; произвольный полином; произвольный вектор; Х@ = [Дхе»Дх<'> ... Лх<'-!>]г; у — переменная величина; в ряде случаев — целе- целевая функция; y\k) — значение независимой переменной, полученное в результате одномерного оптимизационного поиска; у — произвольный вектор-столбец; Zj — составляющая приведенного градиента; z — вектор-столбец произвольного вида; приведен- приведенный градиент; вектор ретроспективных данных, используемый в D.5.1); р 2f (х) = 2gf (x) — сумма квадратов функций, ассоци- ассоциированных с теми ограничениями, которые ока- оказываются нарушенными (для внешней точки). ГРЕЧЕСКИЕ БУКВЫ И СИМВОЛЫ а — коэффициент растяжения в методе Розенброка; обычная константа; коэффициент отражения в ме- методе Нелдера и Мида; а; — собственное значение матрицы; a.k — коэффициент; р — коэффициент сжатия в методе Нелдера и Мида;
Приложение Д константа в соотношении C.2.11); коэффициент редукции в методе Розенброка; у — коэффициент растяжения в методе Нелдера и Мида; малая постоянная величина; обычная константа; V — величина, определяемая с помощью соотношения F.3.8); Г — величина, определение которой дано в подразд. 6.5.4; б — параметр в алгоритме Голдштейна — Прайса; 8,- — единичный вектор вдоль f-й оси координат; 6f' — константа; параметр; 8 (х) — аргумент, для которого функция / (х) при не- некоторых х в Еп не определена; д — символ частной производной; А — символ приращения переменной величины или вектора (например, Ах); Д(к) — ограничивающий интервал при одномерном поиске; V* — градиент, включающий частные производные лишь по составляющим вектора х; V0 (х) — вектор-градиент функции 0 (х); V20(x) — матрица Гессе для 0 (х); е — произвольно малое положительное число; г) — весовой коэффициент при лагранжиане; *, r\ (х№)) — матрица, задающая направление поиска на k-м этапе вычислительного процесса; щ — матрица, задающая направление поиска на й-м этапе вычислительного процесса при наличии / ограничивающих условий; G — константа, значения которой лежат в интервале от 0 до 1; в ряде случаев обозначает также угол; 8(/<) — параметр в алгоритме Голдштейна — Прайса; см. соотношение (8.1.2); X, X* — параметр, задающий длину шага в направлении оптимизационного поиска; Я(/°, Я*№> — длина шага, обеспечивающего минимизирующую поправку для / (х) при перемещении в направле- направлении поиска (в ряде случаев имеет нижний индекс); %1 — содержимое счетчика в методе НЛП; Л; — направление поиска, определение которого дано в связи с рассмотрением D.3.1); [if — масштабный множитель; v« — коэффициент в C.3.4);
Обозначения 531 v0 — двойственное верхнее предельное значение в МПБМ; | — выбираемая константа, используемая в ПОП, а также малая величина; пк — плоскость, касательная к линии уровня целевой функции в точке х{к); П — масштабированная приближенная матрица Гессе; П — аппроксимация П, но с положительными собст- собственными значениями; р — весовой множитель в структуре штрафной функ- функции; ру- — параметр, учитывающий число осцилляции в процессе применения метода НЛП; т — единичный координатный вектор по отношению к базису А; ту — составляющие вектора т; Y(fc) — аппроксимация матрицы Гессе целевой функции; ф — случайный угол (при равномерном распределе- распределении); ф (х) — выпуклая функция; иногда функция произволь- произвольного вида; ф — вектор-столбец, введенный в F.3.17); Ф№) — критерий допуска для нарушений ограничений в методе скользящего допуска; р (x(fc>) — направление в алгоритме Голдштейна — Прай- Прайса; Ф (х) — функция вектора х; со,- — весовой коэффициент; Q, — r-я строка матрицы ВЕРХНИЕ ИНДЕКСЫ '¦), с, т — обозначают точки при одномерном поиске; k — номер этапа (или шага) в процессе минимизации /(х); s — номер этапа (шага) в процессе минимизации Т.— обозначает операцию транспонирования. НИЖНИЕ ИНДЕКСЫ h — i-я вершина в Еп, соответствующая наибольше- наибольшему значению / (х); / — множество ограничений рассматриваемой задачи; М — проекция вектора на многообразие М.
Приложение Д ЗНАЧКИ НАД БУКВАМИ И СИМВОЛАМИ ~ — знак приближения или преобразования; Л — знак, применяемый для обозначения единичного вектора; ' — используется для того, чтобы отличить одну константу (или переменную величину) от другой константы (или переменной величины). ДОПОЛНИТЕЛЬНЫЕ ОБОЗНАЧЕНИЯ || II — показывает, что имеется в виду длина вектора; норма, т. е. квадратный корень из суммы квад- квадратов составляющих вектора; — символ абсолютного значения скаляра; — символ множества; | — означает «при условии, если»; ? — знак принадлежности (элемента множеству); П — оператор умножения.
СОДЕРЖАНИЕ') Предисловие 5 Часть I. Предварительные сведения Глава 1. Введение 8 Глава 2. Задача нелинейного программирования и ее оптимальное решение 14 2.1. Задача линейного программирования 14 2.2. Общая задача нелинейного программирования 18 2.3. Связь задачи нелинейного программирования с реальным про- процессом .... 22 2.4. Обозначения и терминология 30 2.5. Необходимые и достаточные условия оптимальности решения 39 2.6. Эффективные методы одномерного поиска 50 2.7. Классификация методов нелинейного программирования ... 58 Литература 69 Часть П. Методы нелинейного программирования без ограничений Глава 3. Методы минимизации без ограничений, использующие производ- производные 72 3.1. Градиентные методы 72 3.2. Метод вторых производных (метод Ньютона) и связанные с ннм алгоритмы 83 3.3. Сопряженность и сопряженные направления 98 3.4. Методы переменной метрики 117 3.5. Краткий обзор алгоритмов программирования без ограничений 142 Литература 153 Глава 4. Методы минимизации без ограничений, не использующие производ- производные (методы поиска) 156 4.1. Прямой поиск 157 4.2. Поиск по деформируемому многограннику 163 4.3. Методы Розенброка и Дэвиса, Свенна, Кемпи 173 4.4. Метод Пауэлла 184 4.5. Методы случайного поиска 193 Литература 207 Глава 5. Сравнение алгоритмов нелинейного программирования при отсут- отсутствии ограничений 210 J) Перевод предисловия и глав 1—5 выполнен И. М. Быховской, главы 6—9, приложения А—Д переведены Б. Т. Вавиловым.
534 Содержание 5.1. Критерии оценки 210 5.2. Тестовые задачи 214 5.3. Оценивание алгоритмов нелинейного программирования при отсутствии ограничений 220 Литература 237 Часть III. Методы нелинейного программирования при наличии ограничений Глава 6. Процедуры минимизации при наличии ограничений: методы ли- линейной аппроксимации 242 6.1. Аппроксимирующее линейное программирование 246 6.2. Алгоритм нелинейного программирования 266 6.3. Проективные методы 269 6.4. Метод допустимых направлений (метод Заутендайка) 300 6.5. Метод обобщенного приведенного градиента (МОПГ) 303 Литература 329 Глава 7. Процедуры минимизации при наличии ограничений: методы штраф- штрафных функций 333 7.1. Методы штрафных функций специальной структуры 337 7.2. Метод последовательной безусловной минимизации (комбиниро- (комбинированный метод штрафных функций) 345 Литература . . . . ; 378 Глава 8. Процедуры минимизации при наличии ограничений: метод сколь- скользящего допуска 381 8.1. Определение Ф, Т (х) и почти допустимых точек 382 8.2. Стратегия алгоритма скользящего допуска 385 8.3. Процедура отыскания допустимых и почти допустимых точек 392 8.4. Начало и окончание поиска 400 8.5. Методы решения задач нелинейного программирования с зо- зональной неопределенностью 407 Литература 410 Глава 9. Оценка эффективности методов нелинейного программирования при наличии ограничений 411 9.1. Критерии, используемые при оценке эффективности ал- алгоритмов нелинейного программирования 411 9.2. Сравнение некоторых алгоритмов нелинейного программирова- программирования при наличии ограничений: двумерные задачи 416 9.3. Сравнение некоторых алгоритмов оптимизации при наличии ограничений в случае более сложных задач 424 Литература 443 Приложение А. Задачи нелинейного программирования и их решения . . . 444 Приложение Б. Программы на языке ФОРТРАН, непоставляемые коммер- коммерчески 480 Приложение В. Матрицы 516 Приложение Г. Стандартная таймер-программа ¦ . . 523 Приложение Д. Обозначения 525
УВАЖАЕМЫЙ ЧИТАТЕЛЬ! Ваши замечания о содержании книги, ее оформлении, качестве перевода и другие просим присылать по адресу: 129820, Москва, И-110, ГСП, 1-й Рижский пер., 2, издательство «Мир»,-
Д. ХИММЕЛЬБЛАУ ПРИКЛАДНОЕ НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ Редактор Л. П. Якименко Художник С. А. Бычков Художественный редактор В. К. Бисенгалиев Технический редактор Т. А. Максимова Сдано в набор 22/1 1975 г. Подписано к печати 29/VIII 1975 п Бумага № 2 60X90'/i6 = 16,75 бум. л. 33,50 печ. л. Уч.-изд. л. 31,78, Изд. J* 20/7553. Цена 2 р. 35 к. Зак. 844. ИЗДАТЕЛЬСТВО «МИР» Москва, 1-й Рижский пер., 2 Отпечатано в ордена Трудового Красного Знамени Ленинградской типографии Mi 2 имени Евгении Соколовой Союзпблиграфпрома при Государственном комитете Совета Министров СССР по делам издательств, полиграфии и книжной торговли. 198052, Ленинград Л-52, Измайловский проспект, 29, с матриц Головного предприятия республиканского производственного объединения «Полиграфинига» Госкомиздата УССР, г, Киев, ул. Довженко, 3.