close

Вход

Забыли?

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

?

kurbanov

код для вставкиСкачать
Федеральное агенТство по образованию
Государственное образовательное учреждение
высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
В. Г. Курбанов
Математические методы
в теории управления
Учебное пособие
Санкт-Петербург
2009
УДК 519.67
ББК 22.1
К93
Рецензенты:
доктор технических наук, профессор В. В. Александров (СПИИ РАН);
доктор технических наук, профессор Ю. М. Смирнов (кафедра распределенных
интеллектуальных систем СПбГПУ)
Утверждено
редакционно-издательским советом университета
в качестве учебного пособия
Курбанов В. Г.
К93 Математические методы в теории управления: учеб. пособие /
В. Г. Курбанов. – СПб.: ГУАП, 2009. – 208 с.: ил.
ISBN 978-5-8088-0498-2
Книга посвящена методам нелинейного программирования для
конечномерных задач. Основное внимание уделяется идейным
основам методов, их сравнительному анализу и примерам использования. Охвачен широкий круг задач – от безусловной минимизации до логико-вероятностного управления. Приводятся условия
экстремума, теоремы существования решения для основных классов задач. Подробно описаны алгоритмы решения задач нелинейного программирования.
Книга может быть использована для подготовки курса «Вычислительные методы нелинейного программирования» или « Основы
оптимизации», а также студентами и аспирантами, интересующимися алгоритмами решения задач нелинейного программирования.
УДК 519.67
ББК 22.1
ISBN 978–5–8088–0498-2
© В. Г. Курбанов, 2009
© ГУАП, 2009
Светлой памяти моей матери
Курбановой Масме Амир кызы
посвящается
Предисловие
Широкое распространение задач оптимизации в технике, экономике, управлении привело к необходимости разработки методов их решения. Создание аппарата оптимизации – предмет математического программирования, а оно в свою очередь имеет дело с задачей оптимизации значений некоторой целевой функции
при ограничениях типа равенств и неравенств. Задача, в которой
все фигурирующие при ее описании функции линейны, является
задачей линейного программирования, в противном случае имеет
место задача нелинейного программирования. Известны достижения линейного программирования (например, симплекс-метод)
в области экономики и оптимизации плановых решений. Однако большинство технических задач не могут быть описаны с помощью моделей линейного программирования, так как обычно
или целевая функция, или часть ограничений бывают нелинейными.
Учебное пособие соответствует авторскому курсу дисциплины «Математические методы в теории управлении» направления
магистерской подготовки 220100 «Системный анализ и управление» (СПбГПУ) и 220201»Управление и информатика в технических системах» (СПбГУАП).
В предлагаемом пособии делается попытка систематического
изложения методов нелинейного программирования в форме, доступной студенту технического вуза. Используемый математический аппарат минимален: достаточно знания начал математического анализа, линейной алгебры, теории вероятностей и математической логики.
Пособие включает в себя введение и четыре главы.
Во введении рассмотрена общая задача оптимального управления, кратко изложен принцип максимума Понтрягина, приведены модели математического программирования, к которым сводятся задачи дискретного и непрерывного оптимального управления.
В первой главе описаны методы безусловной оптимизации: методы нулевого, первого и второго порядков; различные методы одномерного поиска и методы минимизации функции нескольких
3
переменных; методы, использующие и не использующие производные. Приведены разные алгоритмы (с использованием градиентов и без) для практического решения экстремальных задач.
Во второй главе рассмотрены свойства выпуклых множеств и
выпуклых функций. Приведены алгоритм, построенный для выпуклых функций (выпуклое программирование), а также частная задача квадратичного программирования. Рассмотрены
классические условия оптимальности Ф. Джона и Куна – Таккера как для задач с ограничениями-равенствами, так и для задач с ограничениями-неравенствами. С помощью функции Лагранжа вводится понятие двойственности и описываются методы
решения двойственных задач. Приводятся методы барьерных и
штрафных функций для нелинейного программирования, в которых задача сводится к последовательности задач безусловной
оптимизации, а также методы возможных направлений (метод
Зойтендейка) и такие их разновидности, как метод проекции градиента Розена, метод приведенного градиента Вульфа и выпуклый симплексный метод Зангвилла.
В третьей главе рассмотрен логико-вероятностный подход
к анализу и синтезу систем логического типа, в наиболее общей
форме известных как конечные автоматы. Изложен метод приведения конечных автоматов к форме линейных последовательностных машин, который позволяет перейти от имитационных
методов исследования к аналитическим методам линейной алгебры по модулю 2. В этом случае эксперименты над моделями
не проводятся. Численные оценки определяются беспоисковыми способами, а результаты представляются в аналитической
форме. Здесь же приведены алгоритмы вычисления вероятности
сложной логической функции, поиска оптимальных управляющих воздействий на динамические объекты и метод ситуационного управления.
В четвертой главе рассматриваются некоторые практические
аспекты численных моделей в физике и технике.
Автор выражает благодарность профессорам В. В. Александрову и Ю. М. Смирнову за ценные замечания при рецензировании книги, а также ведущему редактору пособия Г. Д. Бакастовой и Ю. В. Ли за помощь в подготовке пособия к изданию.
4
Введение
Предмет и содержание теории управления
Наше время — время рождения новых компьютерных технологий. Они развиваются, специализируются, завоевывают право на
самостоятельное существование, имеют свои подходы и методы,
технические средства и научную терминологию. Это приводит к
размежеванию различных областей науки, к непониманию представителями разных наук друг друга, к тому, что в гигантском потоке научной информации каждому специалисту фактически доступна лишь ничтожная, все уменьшающаяся доля знаний.
Однако существует и противоположная тенденция образования общих представлений, выработки некоторых общих принципов и общих методов исследования. Одним из проявлений этой
объединяющей тенденции оказалось возникновение науки об
управлении — кибернетики.
Слово «кибернетика» достаточно древнее. Оно встречается у
Платона и происходит от греческого слова, означающего «кормчий». Затем его употребил Анри Ампер как обозначение науки
об управлении государством. В 1948 г. вышла книга математика
Норберта Винера «Кибернетика», провозгласившая возникновение новой науки о процессах управления и процессах переработки информации в технике, обществе и живых организмах.
Пока велись споры, есть такая наука или ее нет, и что есть ее
предмет, кибернетика бурно развивалась. Ее развитию способствовали Джон фон Нейман, Клод Шеннон и многие другие выдающиеся ученые. Она привлекала молодежь, она была нужна атомной
энергетике и космической технике, она была повивальной бабкой
при рождении современной вычислительной техники.
Уже в 1956 г. состоялась сессия Академии наук СССР, посвященная актуальнейшему вопросу автоматизации производства, а
с 1958 г. стал систематически издаваться сборник «Проблемы кибернетики». В 1960 г. состоялся в Москве первый конгресс ИФАК
(Международной федерации по автоматическому управлению).
В нем участвовал и Н. Винер. В университетах и технических вузах стали появляться новые специальности по методам вычислений, вычислительным машинам и кибернетике.
Недавняя инженерная техническая наука, называемая то теорией автоматического регулирования, то теорией сервомеханизмов, как по волшебству, из Золушки превратилась в прекрасную
5
принцессу, привлекающую умы и сердца людей. До этого ни одна
наука не знала такого бурного развития и не вовлекала в сферу
своего влияния так много людей и технических средств. Кибернетика явилась неотъемлемой и одной из основных частей научнотехнической революции нашего времени.
Как и всякая наука, теория управления состоит из трех частей, вернее сказать, составных элементов. Первый — это объект
или объекты изучения. В математических науках объект изучения формулируется в виде аксиом. Предметы изучения алгебры
и геометрии задаются аксиоматически. У теории управления нет
аксиоматики, вместо этого есть формализация объекта изучения
в виде математических моделей. Эти математические модели и
есть первый составной элемент теории управления — ее объекты
изучения.
Затем у теории управления есть арсенал средств изучения
этих математических моделей. Это ее второй элемент — методы
изучения.
Наконец, теория управления, как и всякая наука, применяется для решения конкретных задач, через которые происходит
взаимодействие науки с техникой, экономикой, культурой и социальным прогрессом общества. Этот третий элемент — решаемые и решенные конкретные задачи в виде конкретных результатов, рекомендаций и выводов.
Все эти части или элементы теории управления тесно переплетены между собой; методы исследования определяют модели,
модели и задачи порождают новые методы. Нельзя сказать, что
является главным. Все главное. Целое не может существовать ни
без одной своей части. И все же возможно, что введение в науку
об управлении наиболее удобно через ее математические модели,
возможно, что именно математические модели в наибольшей мере ее характеризуют. Именно на математических моделях в наибольшей мере раскрывается содержание кибернетики, лежащие
в ее �������������������������������������������������������
oc�����������������������������������������������������
нове принципы и общие подходы, разработка которых составляет содержание методов исследования. Принципы и общие
подходы в науке возникают исторически. Историческое их понимание очень важно, оно позволяет глубже их понять, лучше
осмыслить связи и увидеть дальнейшие перспективы развития.
Кибернетика возникла как синтетическая наука. Едва ли ее
можно считать смежной наукой, такой, например, как биофизика, биохимия, математическая биология, физическая химия.
Кибернетика возникла не на стыке разных наук, а в результате
6
осмысливания и обобщения нескольких наук, благодаря восприятию идей ряда наук и их синтезу.
По-видимому, основными разделами наук, которые она в себя синтезирует, являются:
1) теория автоматического регулирования;
2) математическая логика, теория алгоритмов и автоматов;
3) теория передачи сообщений и теория информации;
Именно они легли в ее основу и подготовили ее возникновение.
Отметим, что исторически в возникновении кибернетики немалую
роль сыграли нейрофизиология и психология. Более того, именно
они привели к созданию теории сетей из формальных нейронов,
к созданию персептрона Розенблата, к разгадке тайн фибрилляции сердца и многому другому. Вычислительные машины во
многом копируют нашу интеллектуальную деятельность. Это,
безусловно, так, и вместе с тем нейрофизиология, психология и
изучение деятельности мозга, хотя и индуцировали возникновение кибернетики, убеждая в ее важности и увлекая разгадками
тайн природы, но не легли в ее основу.
Кратко изложим, что же дала каждая из перечисленных выше наук. Автоматические устройства были уже у греков, римлян, в древнем Китае, Индии, а сама теория автоматического
регулирования зародилась только во второй половине XIX в.
Этому предшествовало создание И. И. Ползуновым регулятора
уровня жидкости (1765) и Д. Уаттом – паровой машины с центробежным регулятором скорости вращения (1784). Фрикционные центробежные регуляторы использовались для обеспечения равномерного вращения астрономических труб. Без такого
устройства наблюдаемые небесные тела из-за вращения Земли
уходили бы из поля зрения телескопов. Без центробежного регулятора скорости вращения не могла бы работать паровая машина. Без него при увеличении нагрузки она уменьшала бы скорость вращения вплоть до остановки, при сбрасывании нагрузки увеличивала бы скорость и могла бы пойти вразнос, т. е. начать вращаться настолько быстро, что это могло бы привести к
поломке и серьезной аварии. Скорость вращения зависела бы и
от давления пара. Центробежный регулятор делал скорость вращения в некоторых пределах практически не зависящей ни от
нагрузки, ни от давления пара.
Паровые машины, а затем и турбины были в XIX в. основным
источником механической энергии. Они приводили в движение
7
станки, откачивали воду из шахт, вращали электрические генераторы и не могли этого делать без хороших регуляторов.
Регуляторы самых разных конструкций изобретались в большом количестве. В это время не был ясен общий принцип их действия, скорее всего, на первый план выступали конструктивные
особенности. Но такой принцип был — это принцип обратной
связи. Итак, в основе поплавкового регулятора Ползунова, центробежного регулятора Уатта и фрикционного регулятора лежит
один и тот же принцип обратной связи.
Согласно историческому анекдоту принцип обратной связи
осуществил, пожалуй, наиболее простым способом не инженер и
не ученый, а шаловливый мальчик. Еще до Уатта прототипы паровой машины использовались для откачивания воды из шахт.
До них это делали лошади, но необходимые мощности росли, и
пришлось перейти на силу пара. Пар двигал поршень паровой
машины, и он перемещал поршень насоса. Каждый раз нужно
было подавать пар в цилиндр, затем выпускать его, и это делалось вручную поворотом специальной ручки. Работу эту выполнял мальчик, он следил за движением паровой машины и двигал
ручку то в одну сторону, то в другую. Надоела ему эта работа, и
он заметил, что ручку он двигает все время в такт с движением
штока (соединенного с поршнем) паровой машины: шток вниз —
ручку вниз, шток вверх — ручку вверх. Смотрел-смотрел, взял
и связал веревкой шток с ручкой, а сам пошел гулять. Так было
внесено существенное усовершенствование в конструкцию паровой машины. Мальчик с помощью веревки ввел обратную связь,
которая автоматически регулировала нужным образом подачу и
выпуск пара. В этом анекдоте наглядно показано, в чем состоит
принцип обратной связи.
Таким образом, принцип обратной связи заложен не только
в центробежном регуляторе паровой машины, но и в самом принципе ее работы. До мальчика паровая машина выполняла команды ручки: ручка вниз — поршень вниз, ручка вверх — поршень
вверх. При этом она их выполняла так, что небольшие усилия
человека при повороте ручки превращались в мощные движения поршня. Это прямая усиливающая связь. Принцип усиления этой связи отличен от принципа рычага. Рычаг увеличивает силу, но совершает работу за счет мускульной силы человека и
не дает выигрыша в мощности. Связь же от ручки к поршню совсем другая, она реализуется за счет энергии пара, человек лишь
управляет ее использованием. Поршень движется не энергией че8
ловека, а энергией пара, и это позволяет очень намного превысить
мощь человеческой руки.
Мальчик к этой прямой связи от ручки к поршню ввел обратную связь от поршня к ручке и тем самым создал новую систему, в которой сами собой возникли периодические движения или,
как сказали бы сегодня, автоколебания (самоколебания).
Как видно, обратная связь может стабилизировать скорость
вращения, но она же может приводить к колебаниям. Таким образом, введение обратной связи может придать системе совершенно новые свойства, ранее ей не присущие.
Проиллюстрируем способность обратной связи наделять систему совершенно новыми свойствами. Представьте, что вы хотите
с помощью магнитов свободно вывесить железный шарик. Вы
пробуете это сделать, но у вас ничего не выходит: шарик либо падает, либо прилипает к одному из магнитов. Вы ищете решение
и наконец обнаруживаете, что есть теорема Ирншоу, которая его
запрещает. В стационарном магнитном поле не может быть устойчивого равновесия ферромагнитного (т. е. железного) шарика. Но
вот вам в голову приходит идея воспользоваться принципом обратной связи. Это можно сделать по-разному, например согласовать движения магнита с движением шарика или взять вместо
магнита электромагнит и менять в нем силу тока в зависимости
от движения шарика. И оказывается, что теперь шарик уже может устойчиво висеть. Обратная связь позволила нарушить запрет, вытекающий из теоремы Ирншоу, и наделить магнитное
поле совершенно новыми свойствами.
И еще один пример использования принципа обратной связи.
Представьте себе бег на 3 или 10 км. Вы видели, как бегут хорошие спортсмены. Говорят, знаменитый чемпион в беге на длинные дистанции Нурми бежал, реализуя свой намеченный график, почти равномерно всю дистанцию. Так примерно бегают
чемпионы и сейчас. А ведь хочется бежать вначале быстро, а под
конец, когда устанешь, помедленнее. Новичок так и бежит: сначала впереди всех, затем сзади всех. За счет чего же достигается
равномерность бега? Опять с помощью той же обратной связи,
реализуемой волей бегуна. Именно обратная связь, устанавливающая зависимость усилий от скорости бега, наделяет бегуна
новыми качествами, отличными от естественного поведения новичка.
Принцип обратной связи всюду, где нужно достигнуть каких-то
целей и наделить для этого систему новыми свойствами. Это очень
9
общий и универсальный принцип, его и взяла из теории автоматического регулирования кибернетика.
В истории использования принципа обратной связи не все было гладко. Выяснилось, что мало ввести обратную связь, нужно
это сделать надлежащим образом, что далеко не всегда просто.
Очень скоро обнаружилось, что регуляторы скорости вращения
паровых машин и турбин не всегда делают то, что от них ожидают, а подчас вызывают совершенно другие последствия, приводящие к аварии. Астрономические трубы вместо того, чтобы равномерно вращаться, начинали дрожать, паровые машины — то увеличивать, то уменьшать скорость вращения так, что размах этих
изменений мог нарастать до катастрофических размеров. Явления
были необычными. Теория отсутствовала. Тупик усугублялся тем,
что чем лучше инженеры делали регуляторы, чем большей точности хотели от них добиться, тем хуже они работали или вовсе были
непригодны. Назрела необходимость в помощи теории, и она пришла в лице гениального физика Д. К. Максвелла и знаменитого
русского инженера И. А. Вышнеградского. Эта помощь опиралась
на теорию колебаний, точнее, теорию малых колебаний, ведущую
свое начало от Лагранжа. Заметим, что пришли они к диаметрально противоположным выводам и оба были правы. Непосредственную помощь инженерам оказал только И. А. Вышнеградский. Он
построил знаменитую, названную его именем диаграмму, указывающую, как нужно выбирать параметры регулятора, чтобы он
хорошо работал, и после такого выбора регуляторы действительно работали хорошо. Но так было лишь до тех пор, пока принцип
обратной связи применялся в достаточно простом виде. Его более
сложные использования сулили новые выгоды, но и привели к новым проблемам. Так возникли ставшие теперь классическими системы прямого, непрямого и изодромного регулирования, системы
регулирования по отклонению и по скорости отклонения, а вместе с ними и классическая линейная теория автоматического регулирования. Автоматические регуляторы стали управлять движением самолетов и получили название автопилотов. Автоматические регуляторы поддерживали требуемые температуры, давления, расходы, концентрации, напряжения. Без них немыслима ни
атомная энергетика, ни ракетная техника. Без них сейчас нельзя
делать бумагу, прокатывать металл, осуществлять его плавку, они
нужны в котельных и на электростанциях, на судах и в химическом производстве, на станках с программным управлением и в локационной технике.
10
Роль математической логики, теории алгоритмов и автоматов
в возникновении кибернетики
Эта роль состоит в создании средств формализации мышления, приводящих к созданию вычислительных машин, целой
вычислительной индустрии со своими языками общения с машиной, колоссальным быстродействием выполнения элементарных
операций и очень большой памятью. Она состоит в новых возможностях формализации отдельных видов интеллектуальной
деятельности человека, после которой ее смогут выполнять вычислительные машины, необычайно расширяя возможности человеческого интеллекта.
Благодаря ЭВМ конструктор может испытать математическую
модель своего пока еще только воображаемого объекта. Увидеть,
хорошо или плохо он справляется со своими задачами. Внести изменения и снова посмотреть, что получилось. Он может во многих случаях рассчитать будущую конструкцию так, чтобы при
имеющихся возможностях достигнуть наилучшего эффекта.
Ученый может реализовать мысленные эксперименты и воображаемые ситуации. Можно моделировать процессы в далеких
звездах, испытывать несуществующие ракеты и самолеты, генераторы, плотины и строительные конструкции. Можно научить
машину доказывать теоремы, играть в шахматы, ставить диагнозы болезней, проводить геологическую разведку, улучшать
производственные процессы, управлять выполнением сложных
и тонких операций. С помощью современных ЭВМ можно взглянуть в глубь истории Земли, прогнозировать происходящие на
ней процессы. И это только начало. Правда, одновременно становится все яснее и яснее, насколько сложен мозг человека, и как
еще скромны по сравнению с ним возможности машины. И все
же кое в чем, пусть самом простом, машины догнали и даже превзошли человека.
С математической логикой, теорией алгоритмов и автоматов
связаны и глубокие исследования по обоснованию математики,
по выяснению принципиальных возможностей тех или иных операционных систем. Но эта сторона осталась за математической
логикой. Кибернетика ограничилась тем, что восприняла способы формализации интеллектуальных процессов, способы трансформации формализованных описаний и способы их синтеза на
тех или иных формальных элементах. Граница эта не очень четкая, но она есть.
11
Историю осмысления человеческого мышления обычно начинают от Аристотеля. Именно он сформулировал основные правила логического вывода. Затем, спустя много веков, в течение которых формировались философские и естественнонаучные взгляды
человечества, правила вывода Аристотеля были формализованы
в алгебре Буля и исчислении высказываний. Дальнейшая формализация пошла именно по пути алгебраизации.
Один из первых прототипов современных программируемых
вычислительных машин был создан Чарлзом Бэбиджем. Это была программируемая механическая вычислительная машина.
Дочь поэта Дж. Г. Байрона Ада Лавлейс написала инструкцию
программирования вычислений на этой машине. Эти выдающиеся по своему времени достижения были забыты. Началом современных программируемых ЭВМ принято считать вычислительную машину на релейных элементах с быстродействием примерно в 100 операций в секунду, созданную по идеям венгерского математика Дж. фон Неймана.
Возможно, что сказанное не дает достаточно четкого ответа
на вопрос о том, какое отношение имеет формализация интеллектуальной деятельности и вычислительные машины к теории
управления и кибернетике, к их основному принципу обратной
связи. Принцип обратной связи указывает на общее направление
управляющего воздействия. В приведённых выше примерах «логика» этого воздействия была очень простой: скорость увеличивается — подачу пара уменьшить, скорость уменьшается — подачу пара увеличить. Как нужно уменьшать подачу пара и как
ее увеличивать, об этом принцип обратной связи ничего не говорит. Кроме того, легко представить себе случаи, когда и «логика»
управления значительно сложнее. Для этого следует обратиться
к более сложным задачам, чем стабилизация скорости вращения
маховика паровой машины, например к задаче управления посадкой и взлетом самолетов, управления уличным движением
на перекрестке, управления сложным химическим технологическим процессом, управление радиотелескопом, управление распределением энергоресурсов и многим другим. В каждом из этих
случаев необходимо прибегнуть к довольно сложной стратегии
управления. Стратегия управления определяется ее алгоритмом,
а алгоритм реализуется с помощью каких-то средств. Понятие
алгоритма, способы его формализации, отыскания и реализации — это уже понятия и задачи, заимствованные из математической логики, теории алгоритмов и автоматов.
12
Усложнение стратегии управления и необходимость для ее
отыскания использования понятий и методов математической
логики, теории алгоритмов и автоматов возникают не только при
переходе к более сложным объектам управления. Это возможно и
в задаче стабилизации скорости вращения, если она будет осложнена неизвестностью и «плаванием» параметров паровой машины, наличием случайных помех и стремлением в этих условиях
реализовать наилучшее в некотором смысле управление. Решение такой задачи требует использования совсем непростых алгоритмов идентификации, поисковой оптимизации и адаптации.
Наконец, все это для своей реализации требует вычислительной
техники, да и сама вычислительная техника не более чем система, реализующая управляющие воздействия вводимой в нее программы.
Чтобы конкретно представить себе, сколь сложной и сколь технически оснащенной может быть система управления даже сравнительно простым объектом, предположим, что нам нужно ввести в порт, где все время снуют малые и большие суда, современный большой лайнер. Причем ввести его на указанное место мы
хотим своим ходом, не прибегая к средствам буксировки. Задача
состоит в том, чтобы провести лайнер по определенному коридору, не столкнувшись ни с одним другим судном и не стукнувшись
о причал. Управлять можно рулем и ходом (скоростью вращения
винтов). Трудность в том, что громадная инерция лайнера выявляет последствия наших действий совсем не сразу, а, возможно,
спустя многие минуты, и если эти действия были опрометчивыми, ничто уже не сможет помочь, и авария неизбежна. В этой
ситуации необходимо прогнозировать возможные результаты
управления на значительное время вперед, учитывая не только
динамику движения лайнера, но и случайные ветровые воздействия, течения, волны, движения других судов. Наконец, даже
имея прогнозы движения лайнера, нужно суметь ими воспользоваться, а это не так уж просто. Скорее это настолько сложно, что
прогноз движений лайнера поручается ЭВМ, а человек, получая в
удобной для него форме как эти данные прогноза, так и обстановку движения, принимает решения об управлении лайнером.
Заметим, что в аналогичных задачах «попроще», например
посадка самолета, уже достигнута полная автоматизация управления.
Таким образом, если необходима краткая формулировка, то
формализация мышления дала теории управления методы и
13
средства для отыскания и реализации сложных и эффективных
стратегий управления.
Роль теории передачи сообщений и
теории информации в теории управления
Многие современные системы управления включают в себя каналы передачи данных. Организация передачи данных, ее убыстрение, необходимость защиты их от помех — это и есть те вопросы, которые стоят и решаются в теории передачи сообщений
и теории информации. Это достаточно сложные вопросы, и их
решение сейчас далеко продвинуто как в плане теоретическом,
так и техническом. Системы дальней телефонной связи осуществляют гигантские коэффициенты усиления, и они защищены от
помех. Принимаются очень слабые сигналы от космических аппаратов, находящихся где-то возле Венеры, Марса и Сатурна, а
это примерно то же самое, что услышать писк комара на расстоянии многих километров. Передаются на спутники управляющие
сигналы, и в их приеме не должно быть ошибок. Записываются и
считываются данные, необходимые для управления, из источников их хранения.
Однако не эти конкретные, очень важные практические проблемы определяют в первую очередь общее значение теории передачи сообщений и теории информации для теории управления и
кибернетики. Пожалуй, самое принципиально важное — это само понятие информации, оно играет в теории управления такую
же роль, как понятие энергии в физике.
При���������������������������������������������������
��������������������������������������������������
физических процессах происходят и изучаются трансформации энергии, переходы ее из одного вида в другой, из механического в электрический, из электрического в химический и
т. д. При процессах управления происходят преобразования информации, и именно они изучаются в теории управления.
Меру энергии энтропии и ее неэнтропийную характеристику
используют как информационную меру. Поэтому теорию информации, возможно, ждут такие же удивительные открытия, какие
были в теории преобразовании энергии. Но само понятие информации уже навсегда вошло в науку, навсегда останется и мера информации Шеннона.
Что передается по прямым и обратным каналам связи системы управления, что обрабатывается в соответствии с алгоритмами управления? Какие-то токи, отметки, перемещения, силы, на14
пряжения. Но можно абстрагироваться от их конкретного физического воплощения и рассматривать их как некую информацию.
Теория информации дала теории управления основу для такого
общего, абстрагированного от физического содержания, подхода
к исследованию процессов управления.
Важность понятия информации и ее переработки в системах
управления позволила смотреть на кибернетику как на науку
о переработке информации. Это так, но это не все. Физика тоже
изучает всевозможные преобразования энергии, но к этому ее содержание не сводится.
Роль теории колебаний в теории управления
Как уже отмечалось, выяснение условий устойчивости работы регуляторов, а к концу XIX��������������������������������
�����������������������������������
в. в Англии их было уже примерно 75 000, основывалось на теории малых колебаний Лагранжа.
Так что у истоков теории автоматического регулирования стояла теория колебаний. Именно она указала путь к исследованию
динамики регуляторов и их устойчивости. Это был путь линеаризованной теории, господствовавшей вплоть до 30—40-х годов
XX века.
Теорию колебаний принято начинать от Лагранжа. Хотя колебания маятника наблюдал и изучал Галилей, а Гюйгенс использовал их для создания великолепных часов, но именно Лагранж
дал общие способы составления дифференциальных уравнений
малых колебаний вблизи равновесия и провел их исследование.
Этим он заложил основы линейной теории колебаний.
Следующий этап в теории колебаний — это трактат «Теория
звука» Рэлея, который вовлек в колебательное рассмотрение не
только лагранжеву механику, но и акустику, электричество, теплоту. Он обнаружил аналогию между маятником и электрическим томсоновским контуром, разрядником, резонатором, органной трубой, музыкальным инструментом. Он разгадал секрет
поющего пламени и опыта Рийке. Он обнаружил во всем этом
многообразии великую колебательную общность. Он заложил
основы «колебательной взаимопомощи», когда изучение явлений
в одной области помогает разгадать их в другой. Известно, что явление резонанса колебаний грузика на пружинке подтолкнуло
А. Н. Крылова к созданию теории качки корабля, позволило понять, почему и как килевая качка корабля зависит от его курса
и скорости движения. Это же явление резонанса, возможно, да15
ло идею закритического ротора в турбине Лаваля. Известно, что
в основе радиопередачи и радиоприема лежит резонанс.
Чтобы лучше почувствовать суть этой колебательной взаимопомощи, расскажем об эффектной демонстрации поющего
пламени. Представим себе обычную стеклянную трубу длиной
метра полтора и диаметром сантиметров десять. Труба открыта
с концов и поставлена вертикально. Снизу в трубу вводят примерно по центру тонкую трубку, по которой подается водород,
горящий на ее конце. Видно, как пламя постепенно перемещается вверх по трубе, и вдруг возникает и нарастает до сильного звучания чистый красивый звук. Это звучание может быть
настолько сильным, что пламя вдруг гаснет и звук замирает.
Пламя зажигают снова, и вновь появляется чистый и красивый звук.
He следует думать, что дело в самом пламени. Горение — очень
сложное явление. Пламя можно убрать и заменить раскаленной
сеточкой — звук опять возникнет и будет длиться, пока не остынет металлическая сетка.
Что же звучит и почему это звучание возникает? Рэлей разгадал загадку. В трубе возникают колебания воздуха. Скорее всего, это колебание основного тона трубы, когда в ее центре — пучность давления, а по концам — узлы. Это как в органной трубе.
Но что возбуждает и что поддерживает эти колебания? Колебания давления влияют на пламя, так как с возрастанием давления вытекание водорода замедляется, а с его убыванием — ускоряется. Таким образом, интенсивность выделения тепла зависит
от фазы колебаний воздуха в трубе. В свою очередь более интенсивное выделение тепла повышает давление, и ясно, что если эти
повышения давления делать в подходящие фазы колебаний воздуха в трубе, то они будут нарастать. Это совершенно так же, как
при раскачивании маятника и подталкивании его в «попутном»
направлении, когда он проходит через среднее положение. Такова разгадка. Она вся — на колебательных аналогиях, на аналогии со звучанием органной трубы и способом поддержания колебаний маятника часов.
Когда впервые показывались эти опыты, едва ли можно было думать, что спустя много лет эти же колебания будут вредить
нормальной работе реактивных двигателей и инженеры будут искать их причины и способы устранения.
Обратим внимание еще вот на что. В трубе возникают автоколебания, и причиной их является замкнутый цикл воздей16
ствий, составленный из прямой и обратной связей: изменение
давления воздуха в трубе влияет на пламя, пламя через выделение тепла влияет на колебания воздуха в трубе. Все происходит не без принципа обратной связи. Именно с ее помощью
затухающие колебания превратились в нарастающие и возник
сильный и чистый звук. Это еще один пример того, как обратная связь может служить не только для стабилизации скорости вращения, но и быть причиной возникновения колебаний.
Теперь с этой новой точки зрения посмотрим на возникновение неустойчивости регулирования скорости вращения паровой
машины. Мы считаем, что регулятор осуществляет очень простую стратегию управления, состоящую в том, что при увеличении скорости вращения уменьшается подача пара, а при уменьшении скорости вращения подача пара увеличивается. Но ведь
так будет, если скорость вращения не очень быстро меняется и
шары центробежного измерителя скорости вращения успевают
менять свое положение и положение заслонки. А что будет, если
эти изменения достаточно быстрые и шары регулятора не успевают за ними? Тогда логика стратегии управления может нарушиться и даже стать такой, что при увеличении скорости вращения подача пара увеличивается, а при уменьшении — уменьшается. Следствием этого будет уже не стабилизация скорости
вращения, а, наоборот, нарастание ее изменений. Предотвратить такую возможность путем уменьшения масс шаров нельзя,
поскольку именно они должны двигать дроссельную заслонку.
Но тенденцию к колебательности нужно уменьшить. Это и сделал Вышнеградский, предложив специальное устройство — катаракт — для демпфирования колебаний шаров регулятора. Из
сказанного ясно, что механизмы возникновения поющего пламени и колебаний регулятора одинаковые. Оба они объясняются
замкнутым циклом воздействий, в котором возмущение нарастает.
Для автоматических регуляторов такое нарастание вредно. Но
то, что вредно для регулирования, оказалось полезным и нужным
в нарождающейся радиотехнике, и она стала использовать принцип обратной связи для генерации колебаний. Принцип обратной
связи оказался полезным и для приема слабых сигналов. Возникли новые проблемы, и они дали толчок развитию теории колебаний.
В это развитие значительный вклад внесли работы голландского
физика Ван-дер-Поля и школ Л. И. Мандельштама — А. А. Андронова и Н. М. Крылова — Н. Н. Боголюбова.
17
В бурный период становления теории нелинейных колебаний как отдельной научной дисциплины задачи автоматического
управления отошли для нее на второй план. Возврат к ним произошел только в 40-х гг. С ним в теорию автоматического регулирования пришли новые методы исследования линейных систем
автоматического регулирования, основанные на идеях операционного исчисления Хевисайда и новые методы исследования нелинейных систем, ведущие свое начало от работ А. Пуанкаре и А.
М. Ляпунова.
Из сказанного ясно, что теория колебаний снабдила теорию
управления методами исследования устойчивости и динамики
систем автоматического управления. Вместе с этим неприметным
образом она передала теории управления общий колебательный
подход, подход к системам и задачам управления, при котором
системы управления рассматриваются безотносительно к конкретной их технической и конструктивной реализации. Она
научила происходящие в системе процессы управления рассматривать безотносительно к тому, происходят ли они в механических или химических системах, в живом организме или в человеческом обществе. Возможность такого общего подхода основывается на изоморфизме колебательных закономерностей и закономерностей процессов управления в системах различной природы,
на изоморфизме колебательных процессов и процессов управления в этих системах абстрактным процессам в их математических моделях.
Подводя итог сказанному о становлении кибернетики, перечислим ключевые слова основных ее понятий: информация, алгоритм, изоморфизм и обратная связь.
Теория управления сегодня
С момента рождения кибернетики прошло немногим более пятидесяти лет. Это очень малый срок. Однако за эти годы человек
успел на спутнике облететь земной шар, побывать на Луне, создать
атомную энергетику, громадную индустрию вычислительной техники, организовать спутниковую космическую телевизионную
связь. Темпы развития теории управления как науки оказались
подстать стремительному развитию этих передовых направлений
техники, да и эта техника была бы невозможна без кибернетики.
Кибернетика обзавелась партнерами — это математическая кибернетика, техническая кибернетика, биологическая кибернетика, медицинская кибернетика и даже эволюционная кибернети18
ка. Методы кибернетики используются и в химии, и в физике, и в
геологии, и в лингвистике. Они стали проникать всюду. Кибернетика породила автоматизированные системы управления, включая производство и технологию (АСУ, АСУП и АСУТП), автоматизированные системы научных исследований (АСНИ) и систему
автоматизированного проектирования (САПР). Она стимулирует
автоматов-роботов нового поколения, способных совершать более
сложные и не столь жестко программированные действия, чем
обычные автоматы. Вычислительные машины усилили интеллектуальную мощь человека. Кибернетика возглавила научнотехнический прогресс и новую научно-техническую революцию.
Именно эти социальные последствия предсказывал Н. Винер кибернетике в своей книге еще в 1948 г.
Что же такое кибернетика как наука? Это не математика и не
математическая наука. Во всяком случае, ее нет в многотомном
сочинении Никола Бурбаки. Она не имеет аксиоматики. Среди
основных ее методов — эксперимент. Но она не похожа и на физику или химию. Физика и химия имеют свои определенные объекты исследования. Химия изучает химические вещества и их превращения. А что изучает кибернетика? Процессы управления, но
что это такое и в чем они происходят? Все равно в чем, не важно в
каких объектах. Так что и на естественную науку она не похожа.
Кибернетика не техническая наука уже потому, что она проникает во все технические науки и ни к одной из них не сводится.
По-видимому, следует признать за теорией управления (кибернетикой) право быть наукой нового синтетического типа, наукой
о процессах управления и переработки информации. Сейчас, возможно, эти слова звучат несколько странно. Но ведь еще совсем
недавно на страницах печати дискутировался вопрос о том, есть
ли такая наука «теория автоматического регулирования». Многим казалось, что такой науки нет, потому что у нее нет своих методов, своего объекта исследования, что она лишь приложение
знаний, добытых в других науках, к инженерным задачам автоматического регулирования.
Перед кибернетикой стоят мировые загадки. Это загадки жизни и нашего мозга. Конечно, не только перед кибернетикой, но на
нее возлагаются большие надежды. Эти надежды имеют основания. В нашем понимании возникновения жизни, молекулярных
ее основ идеи кибернетики сыграли не последнюю роль. Известно, что камнем преткновения эволюционной теории Дарвина был
вопрос о том, как и почему от зайчихи происходит зайчонок. Ка19
ким образом из одной клетки возникает новый организм, каким
образом он наследует видовые признаки? Как и откуда маленькая
клетка знает, что из нее должен вырасти зайчонок, а не собачка?
Как передаются видовые признаки, как вся сложнейшая организация человека передается следующему поколению — эта великая тайна природы раскрыта. Многое еще не ясно, но тайны нет.
В каждой клетке есть «книга жизни» в виде тончайших спирально закрученных лент длиной в несколько сантиметров, на которых
все записано. Записано в четырехбуквенном алфавите, каждая
буква которого — молекула определенного химического вещества.
Запись эта очень большая, она больше, чем та, которая содержится
в самой большой энциклопедии. Эту книгу может «читать» и передавать записи на «печатные станки» транспортная РНК. Печатные
станки — рибосомы — размножают тексты в виде новых записей в
двадцатибуквенном алфавите. Буквами этого нового алфавита являются молекулы двадцати аминокислот, а записи — это белковые
соединения, из которых построено все живое. На этой фабрике синтеза белков есть линии передачи сообщений, устройства перекодировки (перевода текста из одного алфавита в другой), печатающие
устройства, системы управления с обратными связями. Обратные
связи ускоряют и замедляют процессы синтеза, прекращают и начинают их, корректируют ошибки.
Что нам известно о деятельности человеческого мозга или куда более примитивного нервного узла паука или муравья? Лишь
общие и подчас смутные представления, сомнительные аналогии
с вычислительной машиной, отдельные успехи в понимании процессов передачи и обработки нервных импульсов. Как функционирует мозг, чем объясняется его гибкость и универсальность,
его огромные возможности и где их границы? На эти вопросы нет
ответов. Нет ответов и на многие, казалось бы, простые конкретные вопросы, например, каков носитель памяти. Память огромна, а выборка из нее быстра. Как это согласовать?
Робототехника столкнулась с новой проблемой — проблемой
организации и управления движениями. Она оказалась непомерно сложной даже в рамках проблемы «глаз — рука». Мы организуем свои сложнейшие движения подсознательно, сознание лишь
формирует общий их план, их целевое назначение. Оступившись,
мы автоматически принимаем необходимые меры, и если все же
падаем, то пугаемся уже после падения.
Проблема воссоздания в машине образа окружающего нас мира и организации в нем движений оказалась настолько сложной,
20
что эта сложность навела на мысль, что в процессе эволюции наш
мозг сформировался, решая проблемы поиска пищи, активного
ухода от врагов и поиска лучших условий жизни. То есть что он
сформирован и приспособлен в первую очередь для решения этих
сложнейших проблем ориентации и движения в пространстве,
а наше сознание и логическое мышление — лишь побочный результат. Может быть, это и так, а, может быть, это так лишь до
понимания следующих сложных проблем, поставленных эволюцией перед живыми организмами на Земле.
Таким образом, жизнь и ее тайны, мозг и его загадки — это
многогранные комплексные проблемы, которые в значительной
мере — проблемы комплексной науки кибернетики. Постижение
этих тайн и загадок будет стимулом и трамплином для самой теории управления.
Очень многообразный и сложный комплекс проблем выдвигают перед кибернетикой (биологической кибернетикой) вопросы организации человеко-машинных комплексов, проблемы
человека-оператора. Как довести до человека-оператора всю необходимую информацию, как увериться, что он ее воспринял, как
облегчить ему задачи принятия решений, как проверить, что оператор не ошибся из-за временного невнимания, усталости или болезни?
Перед теорией управления много нерешенных малых, средних
и больших проблем. На нее возлагаются большие надежды, она
в авангарде научно-технического прогресса нашего времени.
При зарождении кибернетики ключевыми ее понятиями были
информация, алгоритм, изоморфизм и обратная связь. Изменились ли они за истекшее время или к ним что-то добавилось? Да,
добавилось, и это добавление очень существенное — оптимизация. Это веление времени. Мы хотим все делать наилучшим образом и не можем себе позволить делать что-либо плохо. Наши
резервы не безграничны. Мы вынуждены экономно потреблять
природные ресурсы, уменьшать загрязнение природы, для этого
мы должны оптимизировать функционирование нашей промышленности и экономики, для этого следует все делать оптимальным образом.
Нужно сказать, что стремление к оптимизации заложено в человеке природой. Идя из дома на работу или с работы домой, вы
выбираете оптимальный путь либо из соображений минимизации временных затрат, минимизации риска непредвиденных обстоятельств и опоздания, максимизации приятности пути, либо
21
из каких-то компромиссных соображений. Очень отчетливо проявляется заложенное в нас стремление к оптимизации в наших
неосознаваемых действиях: в ходьбе, в срезании ���������������
y������������
лов при поворотах, в желании некоторых пересечь по диагонали газон, а не
идти по огибающей его тропинке, в наших профессиональных
движениях, во всем том, что получило наименование экономности движений.
Понятия оптимальности и оптимизации были и тридцать и
триста лет тому назад. Всякое управление имеет своей задачей
достижение какой-то цели. И тогда во многих случаях эти цели
состояли в минимизации некоторых функционалов. Но эта минимизация не была во главе, она выступала лишь как средство формализации понятия цели. Сейчас это не так, сейчас оптимизация
и стремление к ней — ведущая идея. Система управления должна функционировать не как-нибудь, а оптимальным или хотя бы
квазиоптимальным образом.
А это повлекло за собой далеко идущие последствия. Уже давно известно, что общность способа решения находится в противоречии с его простотой. Сужая задачу, можно упростить алгоритм
ее решения; расширяя ее постановку, мы, как правило, усложняем алгоритм ее решения. Более того, для общих задач алгоритм
решения может даже отсутствовать. Как же согласовать стремление к возможно более простому решению со стремлением к достаточно общему решению? В применении к теории управления эта
проблема выглядит так: как согласовать возможность функционирования системы управления в возможно более разнообразных
условиях с возможно лучшим ее функционированием в каждом
конкретном случае?
Разрешение этой конфликтной ситуации возможно с помощью двухуровневой организации управления, при которой второй уровень управления адаптирует первый уровень к конкретным условиям. Эту адаптацию можно представить себе как некоторую перестройку параметров или переход к новой структуре в системе управления первого уровня. Можно ее представить и
так, что имеется некоторый набор систем управления и в каждом
конкретном случае управление второго уровня выбирает наиболее подходящую.
Перестройка первого уровня управления может происходить на
основе выяснения, каковы конкретные условия работы системы по
каким-то их признакам. Например, шофер автомашины меняет
передачу в зависимости от дороги, ее подъема или спуска.
22
Эта перестройка может носить поисковый характер, и тогда ее
называют обучением. Нужно сказать, что сейчас нет четкой терминологической грани между адаптацией и обучением, но можно
ее видеть в отмеченном различии алгоритма перестройки первого
уровня, хотя глубина перестройки первого контура в этом словоупотреблении также играет определенную роль.
Таким образом, стремление к улучшению и оптимизации существующих ранее систем управления привело к идее их адаптации и обучения, к построению адаптивных и самообучаемых
систем.
Наряду с этим стали возникать и совершенно новые адаптивные и самообучаемые системы. А это уже существенный скачок.
Переход от управления по заданным алгоритмам к созданию систем, которые сами ищут и формируют свой алгоритм управления и тоже на основе каких-то алгоритмов — алгоритмов адаптации и обучения — кардинальное различие, существенно изменившее как содержание теории управления, так и ее технические
возможности. Отметим, что поиск нужного алгоритма управления может быть типа проб и ошибок, типа более или менее быстрого самообучения, но он может носить и характер обучения некоторым учителем, который показывает, как нужно делать, или
подсказывает, когда делается верно, и когда — неверно. Конечно,
обучение с учителем, как правило, быстрее ведет к цели. Но всему не научишь, слишком всего много, не все можно предвидеть.
А иногда учителя нет и не у кого учиться. Так что самообучение
тоже необходимо.
По-видимому, самое существенное, что характеризует современный этап развития теории управления, — это оптимизация,
адаптация и обучение и связанное с этим расширение возможностей систем управления.
Теория оптимизации возникла вне теории управления в виде
классического вариационного исчисления и минимизации функций, в виде линейного и нелинейного программирования. Однако современные методы оптимизации динамических процессов,
и в первую очередь принцип динамического программирования
Р. Беллмана и принцип максимума Л. С. Понтрягина, уже возникли в ее недрах. С теорией управления связаны и новые задачи
оптимизации на сетях и графах.
Задачи оптимального управления относятся к теории экстремальных задач, т. е. задач определения максимальных и минимальных значений. Применение в этой фразе нескольких латин23
ских слов (maximum — наибольшее, minimum — наименьшее,
extremum — крайнее, optimus — оптимальное) указывает на то,
что теория экстремальных задач была предметом исследования
с древних времен. О некоторых таких задачах писали еще Аристотель (384—322 гг. до н. э.), Евклид (III в. до н. э.) и Архимед
(287—212 гг. до н. э.). Основание города Карфагена (825 г. до н. э.)
легенда ассоциирует с древнейшей задачей определения замкнутой плоской кривой, охватывающей фигуру максимально
возможной площади. Подобные задачи именуются изопериметрическими. Характерной особенностью экстремальных задач
является то, что их постановка была порождена актуальными
запросами развития общества. Более того, начиная с �����������
XVII�������
в. доминирующим становится представление о том, что законы окружающего нас мира являются следствием некоторых вариационных принципов. Первым из них был принцип П. Ферма (1660),
в соответствии с которым траектория света, распространяющегося от одной точки к другой, должна быть такова, чтобы время прохождения света вдоль этой траектории было минимально возможным. Впоследствии были предложены различные широко используемые в естествознании вариационные принципы,
например: принцип стационарного действия У. Р. Гамильтона
(1834), принцип виртуальных перемещений, принцип наименьшего принуждения и др. Параллельно развивались и методы
решения экстремальных задач. Около 1630 г. Ферма сформулировал метод исследования на экстремум для полиномов, состоящий в том, что в точке экстремума производная равняется нулю. Для общего случая этот метод получен И. Ньютоном (1671) и
Г. В. Лейбницем (1684), работы которых знаменуют зарождение
математического анализа.
Начало развития классического вариационного исчисления
датируется появлением в 1696 г. статьи И. Бернулли (ученика
Лейбница), в которой сформулирована постановка задачи о кривой, соединяющей две точки А и В, двигаясь по которой из точки А в В под действием силы тяжести материальная точка достигнет В за минимально возможное время. В рамках классического вариационного исчисления в XVIII—XIX вв. установлены
необходимые условия экстремума первого порядка (Л. Эйлер,
Ж.Л. Лагранж), позднее развиты необходимые и достаточные
условия второго порядка (К. Т. В. Вейерштрасс, А. М. Лежандр,
К. Г. Я. Якоби), построены теория Гамильтона-Якоби и теория поля (Д. Гильберт, А. Кнезер).
24
Дальнейшее развитие теории экстремальных задач привело в
XX���������������������������������������������������������
в. к созданию линейного программирования, выпуклого анализа, математического программирования, теории минимакса
и некоторых иных разделов, одним из которых является теория
оптимального управления. Эта теория, подобно другим направлениям теории экстремальных задач, возникла в связи с актуальными задачами автоматического регулирования в конце 40-х годов (управление лифтом в шахте с целью наискорейшей остановки его, управление движением ракет, стабилизация мощности
гидроэлектростанций и др.).
Заметим, что постановки отдельных задач, которые могут
быть интерпретированы как задачи оптимального управления,
встречались и ранее, например, в «Математических началах натуральной философии» И. Ньютона (1687). Сюда же относятся и
задача Р. Годдарда (1919) о подъеме ракеты на заданную высоту
с минимальными затратами топлива и двойственная ей задача
о подъеме ракеты на максимальную высоту при заданном количестве топлива.
За прошедшее время были установлены фундаментальные
принципы теории оптимального управления: принцип максимума и метод динамического программирования. Указанные принципы представляют собой развитие классического вариационного исчисления для исследования задач, содержащих сложные
ограничения на управление. Сейчас теория оптимального управления переживает период бурного развития как в связи с наличием трудных и интересных математических проблем, так и в связи
с обилием приложений, в том числе и в таких областях, как экономика, биология, медицина, ядерная энергетика и др.
Общие задачи оптимального управления
Допустим, что математическая модель некоторого процесса
характеризуется зависящими от времени t фазовыми координатами x1(t), …, xn(t), поведение которых описывается системой
обыкновенных дифференциальных уравнений
dxi
= fi (t, x1, ..., xn , u1, ..., um ), i = 1, ..., n, dt
(1)
где u1(t), …, um(t) — параметры управления, определяющие ход
процесса. Будем считать, что допустимые управления u = (u1,
…, um), содержатся в некотором множестве U и в этом множе25
стве существует управление u(0) = (u1(0)(t), …, um(0)(t)), переводящее управляемый объект из начального состояния S0(t0,x1(0), …,
xn(0)) в конечное состояние S1(t1,x1(1), …, xn(1)). Пусть начальное и
конечное состояния удовлетворяют краевым условиям
ψj(t0,x1(t0), …, xn(t0); t1,x1(t1), …, xn(t1) ≤ 0, j = 1, …, k, (2)
а фазовые координаты x = (x1, …, xn) и управление u = (u1, …, um)
подчинены изопериметрическим ограничениям
t1
ò ϕs (t, x1, ..., xn , u1, ..., um )dt £ bs , s = 1, ..., l.
t0
(3)
Предположим также, что функционал
t1
I (x,u,t0 ,t1 ) = ò F (t, x1, ..., xn , u1, ..., um )dt + ψ 0 (t0 , x(t0 ),t1, x(t1 )) (4)
t0
выражает некоторую характеристику процесса, которую условно рассматривают как цель, цену или качество процесса. Задача
оптимального управления заключается в отыскании в множестве
U такого управления u* = (u1*(t), …, um*(t)), которое осуществляет
переход управляемого объекта, поведение которого описывается
системой (1), из состояния S0 в состояние S1 при выполнении краевых условий (2) и изопериметрических ограничений (3) таким
образом, чтобы функционал (4) достигал экстремального значения. Для определенности в дальнейшем будем говорить только
о минимуме функционала (4).
Четверку (x(t), u(t), t0, t1) называют управляемым процессом
в задаче оптимального управления (1)—(3), если:
а) управление u(t) — кусочно-непрерывная функция на отрезке [t0, t1], содержащаяся в множестве U;
б) фазовая траектория x(t) непрерывна на отрезке [t0, t1];
в) для всех t ∈ [t0, t1], кроме, быть может, точек разрыва управления u(t), функции x1(t), …, xn(t) удовлетворяют системе управлений (1).
Управляемый процесс называется допустимым, если удовлетворяются условия (2) и (3). Допустимый управляемый процесс
(x*(t), u*(t), t0* , t1* ) называют оптимальным, если найдется такое
e > 0, что для всякого допустимого управляемого процесса (x(t),
u(t), t0, t1) такого, что
t0 - t0* < ε, t1 - t1* < ε, x(t) - x* (t) < ε
26
при t Î [t0 ,t1 ] Ç [t0* ,t1* ], выполняется неравенство
I (x,u,t0 ,t1 ) ³ I (x* ,u* ,t0* ,t1* ) .
Принцип максимума Понтрягина
Необходимые условия экстремума задачи оптимального
управления, позволяющие определять оптимальный управляемый процесс, если он существует, были получены Л. С. Понтрягиным и носят название принципа максимума Понтрягина. Для
формулировки этого принципа предположим, что l = (l0, l1, …, ll)
и µ = (µ0, µ1, …, µk), l0 = µ0 ≥ 0, — некоторые постоянные векторы, а
w(t) = (w1(t), …, wn(t)) — кусочно-гладкая на [t0, t1] вектор-функция.
Введем функции Лагранжа:
l
n
s=1
k
i=1
Φ(t, x, x ¢,u) = λ 0 F + å λ s ϕ + å ϕi (t)(xi - fi ),
Ψ(t0 , x(t0 ),t1, x(t1 )) = å µ i ψ j ,
j=1
t1
I (x,u,t0 ,t1 ) = ò Φ(t, x, x ¢,u)dt + Ψ(t0 , x(t0 ),t1, x(t1 )). (5)
t0
Пусть существует оптимальный управляемый процесс (x*(t),
u*(t), t0* , t1* ). Для произвольной функции H(x, u, t0, t1) обозна
чим H*(t) = H(x*(t), u*(t), t0* , t1* ). Имеет место принцип максимума Понтрягина. Если (x*(t), u*(t), t0* , t1* ) — оптимальный процесс
для задачи (1)—(4), то найдутся множители Лагранжа l,µ и w(t),
не равные одновременно нулю, и такие, что для функционала (5)
выполняется уравнение Эйлера
*
*
n æ
l
æ ¶F ÷ö*
æ ¶ϕ ö
dω i
¶f ö
÷÷ + å λ s çç s ÷÷÷ , i = 1, ..., n, = -å çç i ÷÷÷ ω j + λ 0 çç
ç ¶xi ÷ø
çè ¶xi ÷ø
ç ¶xi ÷ø
dt
j=1è
s=1 è
(6)
Условия трансверсальности по x:
æ ¶Ψ ÷ö*
*
÷ = 0,
ω i (t0 ) - çç
çè ¶xi (t0 ) ÷÷ø
æ ¶Ψ ÷ö*
÷÷ = 0, i = 1, ..., n. ω i (t1* ) + ççç
è ¶xi (t1 ) ø÷
(7)
27
Условия трансверсальности по t:
é
æ ¶Ψ ö÷* ùú
ê *
ç
÷
Φ
= 0,
(
t
)
ç
ê
çè ¶t ÷ø÷ úú
ê
0
*
ë
û t=t0
é
æ ¶Ψ ö÷* úù
ê *
= 0. ê Φ (t) - çç
÷÷ ú
ê
èç ¶t1 ø÷ ú *
ë
û t=t1
(8)
Принцип максимума по u:
n
l
i=1
s=1
z = å ωi fi* - λ0 F* - å λ s ϕ*s =
l
æn
ö÷
= maxçççå ωi fi (t, x* ,u) - λ0 F ((t, x* ,u) - å λ s ϕs (t, x* ,u)÷÷÷. ÷ø
uÎU çèi=1
s=1
(9)
Условия согласованности знаков с соотношениями (2) и (3): если при некотором j в соотношении (3) [или при некотором s в (2)]
стоит знак < , то соответствующее µj ≥ 0 (ls ≥ 0); при тех j и s, у которых в соотношениях (2) и (3) стоят знаки равенства, знаки µj и
ls могут быть произвольными).
Условия дополняющей нежесткости:
æ t1*
ö
λ s ççç ò * ψ *s (t)dt - bs ÷÷÷ = 0, s = 1, ..., l,
÷ø
çè t0
µ j ψ *j = 0, j = 1, ..., k.
(10)
Следует отметить, что при соответствующем выборе фазовых
координат и управления принцип максимума Понтрягина может
быть использован для решения всех задач классического вариационного исчисления, однако область его применения гораздо шире.
Рассмотрим пример на применение принципа максимума.
Пример 1
Найти оптимальный управляемый процесс в задаче
1
ò x1dt ® min;
0
x1¢ = x2 , x2¢ = u, –2 ≤ u ≤ 1,
x1(0) = 1, x2(0) = 0, x2(1) = –1.
28
Составим функции Лагранжа
Ô = λ0 x1 + ω1 (x1¢ - x2 ) + ω2 (x2¢ - u),
Ψ = µ1(x1(0)–1) + µ2x2(0) + µ3(x2(1) + 1).
Отсюда находим уравнения Эйлера: ω1¢ = λ 0 , ω2¢ = -ω1. Пусть
l0 = 0. Тогда w1 = С1, а из условия w1(1) = 0 следует, что С1 = 0 и
w1(t) = 0. Поэтому w2(t) = С2, а так как согласно условию (9)
z = ω2u* = max ω2u,
uÎU
ïì-2 ïðè C2 < 0,
u* = ïí
ïïî 1 ïðè C2 > 0;
то из уравнений связи x2′ = u, x2(0) = 0 находим
ìï-2t ïðè C2 < 0,
x2 (t) = ïí
ïïî t ïðè C2 > 0.
Однако по условиям задачи x2(1) = –1, что противоречит полученному выражению для x2(t). Поэтому l0 ≠ 0. Возьмем l0 = 1.
Тогда w1(t) = t + С3. Учитывая, что w1(t) = 0, находим w1(t) = t – 1.
Из уравнения Эйлера ω2¢ = -ω1 получаем w2(t) = –t2/2 + t + C4.
Пусть C4 ≥ 0. Так как w2(t) = 1/2 – 1/2(t – 1)2 + С4, то при 0 ≤ t ≤ 1 будет w2(t) ≥ 0 и, учитывая (9), имеем u* = 1, x2*(t) = t, что противоречит условию x2(1) = –1, следовательно, C4 < 0. Если взять C4 ≤ –1/2,
то w2(t) ≤ 0 при всех t и, следовательно, u* = –2, x2*(t) = –2t, что
противоречит условию x2(1) = –1. Итак, –1/2 ≤ C4 < 0. Тогда
w2(0) = C4 < 0, w2(1) = 1/2 + С4 ≥ 0 и согласно принципу максимума
(9) получаем
ïì -2, åñëè 0 £ t £ α,
u * (t) = ïí
ïïî1, åñëè 1 - α £ t £ 1;
где a — достаточно малое число.
Теперь из уравнения связи x2¢ = u находим
ìï -2t, åñëè 0 £ t £ α,
x2* (t) = ïí
ïïît - 2, åñëè 1 - α £ t £ 1.
Функция x2* (t) непрерывна на отрезке [0, 1], поэтому существует такая точка t2, в которой оба полученных выражения
29
для x2(t) равны между собой, т. е. –2t2 = t2 – 2, откуда t2 = 2/3.
Итак,
ìï
2
ïï-2t, åñëè 0 £ t £ ,
ï
3
x2* (t) = í
ïï
2
£ t £ 1.
ïït - 2, åñëè
3
ïî
При рассмотрении многих задач полезно применять функцию
Понтрягина
n
l
i=1
s=1
H(t, x,u, ω) = å ω i fi (t, x,u) - λ 0 F (t, x,u) - å λ s ϕs (t, x,u).
(11)
С ее помощью системы уравнений (8) и (10) могут быть записаны в виде
*
æ ¶H ö÷*
dxi* æç ¶H ö÷ dω*i
÷÷ ,
÷ , i = 1, …, n. =ç
= -çç
çè ¶xi ÷÷ø
dt çè ¶ω i ÷ø
dt
(12)
а принцип максимума по u [условие (11)] принимает вид
H* = max H(t, x* ,u, ω).
uÎU
(13)
Пример 2
Рассмотрим простейшую задачу о быстродействии с применением функции Понтрягина.
Пусть материальная точка единичной массы движется под
действием внешней силы u(|u| ≤ 1). Считая, что в начальный момент времени точка находится в положении x0 и имеет начальную скорость n0, требуется остановить ее в кратчайшее время
в начале координат.
Формализованно эта задача может быть записана в виде
T
T = ò dt ® min, x1 (0), x2 (0) = ϑ 0 ,
0
x1 (T) = x2 (t) = 0, x1¢ = x2 , x2¢ = u, u £ 1.
Функция Понтрягина H в рассматриваемом случае будет
иметь вид
H = w1x2 + w2u,
30
а вторая группа уравнений — вид
ω1¢ = 0, ω2¢ = -ω1.
Из условий трансверсальности находим
w1(0) = µ1, w2(0) = µ2,
w1(T) = –µ3, w2(T) = –µ4,
а из принципа максимума (13), опустив не зависящее от u слагаемое, получаем
ω2 (t)u* = max ω2 (t)u = ω2 (t) ,
u £1
т. е. u*(t) = signw2(t)
Далее, w1(t) = µ1, w2(t) = –µ1t + µ2, µ3 = –µ1. Функция w2(t) не может тождественно равняться нулю, так как отсюда следовало бы,
что m1 = m2 = m3 = m4 = 0 и все множители Лагранжа оказываются
нулями. Поэтому функция w2(t) может обращаться на (0, Т) в нуль
не более одного раза и возможны только следующие случаи:
а) w2(t) > 0 при 0 ≤ t ≤ Т, u* = 1. Из уравнений связи и условий на
2
правом конце находим x2* (t) = t - T, x1* (t) = (t - T ) / 2.
Тогда на левом конце отрезка [0, T] справедливы равенства
n0 = –Т, x0 = Т2/2. Следовательно, этот случай возможен лишь
тогда, когда начальная точка (x1(0), x2(0)) лежит на параболе
x1 = x22 / 2, причем x1(0) > 0, x2(0) < 0, Т* = –n0.
б) w2(t) ≤ 0 при 0 ≤ t ≤ Т, u* = –1. Аналогично получаем x2(t) = T – t,
x1(t) = –(T – t)2/2, n0 = Т, x0 = –Т2/2. Этот случай возможен тогда,
когда начальная точка лежит на кривой x1 = -x22 / 2, причем
x1(0) < 0, x2(0) > 0, Т* = n0.
в) w2(t) ≥ 0 при 0 ≤ t ≤ t, w2(t) ≤ 0 при t ≤ t ≤ Т. Тогда
ìï 1, åñëè 0 £ t £ τ,
u* (t) = ïí
ïïî-1, åñëè τ £ t £ T;
ïìt + v0 , åñëè 0 £ t £ τ,
x*2 (t) = ïí
ïïî T - t, åñëè τ £ t £ T;
ìï t2
ïï + v t + x , åñëè 0 £ t £ τ,
0
0
ï2
*
x1 (t) = ïí
ïï (T - t)2
, åñëè τ £ t £ T.
ïïï 2
ïî
31
Для определения t и T воспользуемся непрерывностью функций x1* (t) и x2* (t). Это дает t + n0 = T – t, t2/2 + n0t + x0 = –(T – t)2/2.
Исключая из последнего равенства T, получим уравнение
t2 + 2n0t + x0 + n02/2 = 0,
откуда
τ = -v0 +
v02
- x0 .
2
Так как T > t > 0, то t + n0 > 0 и мы имеем τ = -v0 +
v02
- x0 > 0.
2
Если n0 > 0, то это возможно лишь при x0 <-v02 / 2. Если n0 < 0, то
x0 £ v02 / 2. Таким образом, если n0 > 0, то начальная точка (x1(0),
x2(0)) должна лежать левее параболы x1 = -x22 / 2, а если n0 < 0, то
начальная точка (x1(0), x2(0)) лежит левее параболы x1 = x22 / 2.
В этом случае
T* = -v0 + 2
v02
- x0 .
2
г) w2(t) ≤ 0 при при 0 ≤ t ≤ t, w2(t) ≥ 0 при t ≤ t ≤ Т. Тогда
ìï-1, åñëè 0 £ t £ τ,
u * (t) = ïí
ïïî 1, åñëè τ £ t £ T;
ìï-t + v0 , åñëè 0 £ t £ τ,
x*2 (t) = ïí
ïïî -T + t, åñëè τ £ t £ T;
ïìï t2
ïïï 2 + v0t + x0 , åñëè 0 £ t £ τ,
*
x1 (t) = í
ïï (T - t)2
ïï
, åñëè τ £ t £ T.
ïïî
2
Аналогично предыдущему, получаем
Τ – n0 = T – t, –t2/2 + n0t + x0 = (T – t)2/2.
Исключая из последнего равенства T, получим уравнение
τ2 - 2v0 τ +
32
v2
v02
- x0 = 0, откуда τ = v0 ± 0 + x0 .
2
2
Так как T > t > 0, то t > n0. Поэтому τ = v0 +
v02
+ x0 . Следова2
тельно, если n0 < 0, то из условия t > 0 получаем x0 > -v02 / 2, а если n0 > 0, то x0 ³-v02 / 2, так как стоящее под знаком корня выражение не может быть отрицательным. Таким образом, если n0 < 0,
то начальная точка (x1(0), x2(0)) лежит правее параболы x1 = x22 / 2,
если n0 > 0, то начальная точка (x1(0), x2(0)) лежит правее параболы x1 = -x22 / 2. В этом случае
T* = v0 + 2
v02
- x0 .
2
Разобранными случаями исчерпываются все возможные расположения начальной точки на фазовой плоскости.
Общие задачи нелинейного программирования
Общая задача нелинейного программирования имеет следующий вид [1, 2, 3, 8]: минимизировать

f (x)
при условиях

gi (x) £ 0, i = 1, …, m;

hi (x) = 0, i = 1, …, l;

x Î X,
где f, g1, g2, …, gm, h1, h2, …, hi — определенные на En функции;

x ⊂ En, x = (x1, x2 , ..., xn ). Задача заключается в нахождении переменных x1, x2, ..., xn, удовлетворяющих ограничениям и отве
чающих при этом минимальному значению функции f (x).
a) Функцию f обычно называют целевой функцией, или критерием относительности.

б) Каждое условие gi (x) £ 0, (i = 1,m) называют ограничениемнеравенством, или ограничением в форме неравенства, а условие

вида h (x) – ограничением в форме равенства.

в) Вектор x Î X, удовлетворяющий всем ограничениям, называют допустимым решением, или допустимой точкой. Совокупность всех допустимых точек образует допустимую область.
33
Таким образом, задача нелинейного программирования
за
ключается в нахождении такой допустимой точки x, для кото


рой f (x) ³ f (x) при всех допустимых решениях x. Точка x называется оптимальным решением, или решением задачи.
Пример
Рассмотрим следующую задачу:

f (x) = (x1 - 3)2 + (x2 - 2)2 ® min
при условиях:

x12 - x2 - 3 £ 0 , g1 (x),

x2 – 1 ≤ 0, g2 (x),

–x1 ≤ 0, g3 (x),
æ x1 ö÷
 ççç ÷÷
x = çx 2 ÷÷.
çç ÷÷
çè x3 ÷ø
На ри�����������������������������������������������������
c����������������������������������������������������
. 1 изображена допустимая область. Задача заключается в нахождении такой точки из допустимой области, для которой (x1 – 3)2 + (x2 – 2)2 имеет наименьшее возможное значение.
Заметим, что точки (x1,x2) удовлетворяют равенству
(x1 – 3)2 + (x2 – 2)2 = C, лежат на окружности радиуса C с цен-
(3,2)
1
g1
g3
g2
2
3
Рис. 1
34
тром в точке (3,2). Для каждого неотрицательного С такая окружность называется линией уровня целевой функции, отвечающей
заданному значению С. Таким образом, задача заключается в нахождении минимального С, при котором хотя бы одна точка
окружности принадлежит допустимой области. Иными словами,
нужно найти окружность, наименьший радиус которой пересекал бы допустимую область.
Поэтому точка (2,1) — оптимальное решение, а значение целевой функции в этой точке равно 2.
Задача оптимального управления с дискретным временем
Рассмотрим задачу оптимального управления (ОУ) с дискретным временем продолжительности K периодов. К началу k-го периода система описывается вектором состояния Yk – 1 (вектором
фазовых переменных). Вектор управления Uk изменяет к концу k-го периода состояние системы от Yk – 1 до Yk в соответствии
с формулой
Yk = Yk – 1 + jk(Yk – 1,Uk).
Применяя последовательность управлений U1, …, Uk, получаем при начальном состоянии y0 последовательность состояний y1,
y2, …, yk, называемую траекторией. Этот процесс изображен на
рис. 2.
Таким образом, задача ОУ с дискретным временем формируется в виде: минимизировать
a(y0,y1, …, yk,U1, …, Uk)
при условиях
yk = yk – 1 + jk(yk – 1,Uk), k = 1, 2, …, K,
yk ∈ Yk, k = 1, 2, …, K,
Yk ∈ Uk, k = 1, 2, …, K,
ψ(y0,y1, …, yk,U1,U2, …, Uk) ∈ D.
Здесь Y1, Y2, …, Yk, U1, …, Uk — заданные множества; ψ — известная вектор-функция, обычно называемая функцией ограничения на траектории.
U2
U1
y0
1
y1
2
Uk
Uk
y2
¾
K
yk
¾
yk– 1
K
yk
Рис. 2
35
Задача оптимального управления с непрерывным временем
В задачах ОУ с дискретным временем (ЗОУДВ) управляющие
параметры используются в конечном числе фиксированных точек. Рассмотрим теперь задачу ОУ с непрерывным временем, в
которой управляющая функция U(t) оказывает влияние на состояние объекта управления во всех точках заданного отрезка времени [0, T].
При известном начальном состоянии y0 связь между функцией управления U(t) и функцией состояния системы y(t) описываются следующим дифференциальным уравнением (ДУ):
y (t) = ϕ[y(t),U (t)], t ∈ [0,T],
где U(t) и y(t), описывающие траекторию, называются допустимыми, если выполняются следующие условия:
y ∈ Y, u ∈ U, ψ(y,U) ∈ D.
Типичным примером множества допустимых управлений U
является совокупность кусочно-непрерывных на отрезке [0,T]
функций, таких, что a ≤ U(t) ≤ b при t ∈ [0,T]. При заданном начальном состоянии y(0) = y0 задача ОУ может быть сформулирована следующим образом:
T
ò α[y(t),U(t)]dt ® min,
0
при условиях
y (t) = ϕ[y(t),U (t)], t ∈ [0,T],
y ∈ Y,
u ∈ U,
ψ(y,U) ∈ D.
Задачу оптимального управления с непрерывным временем
можно аппроксимировать задачей с дискретным временем. Пусть
отрезок планирования [0,T] разбит на K периодов длительности
D, т. е. KD = Т. Обозначим y(kD) через yk, U(kD) — через Uk. Тогда
исходная задача аппроксимируется следующей:
k
å α(yk ,Uk ) ® min,
k=1
36
при условиях
yk = yk – 1 + jk(yk – 1,Uk), k = 1, …, K,
yk ∈ Yk, k = 1, …, K,
uk ∈ Uk, k = 1, …, K,
ψ(y0, y1, …, yk, U1, U2, …, Uk) ∈ D.
Пример
Рассмотрим задачу о запуске ракеты с поверхности Земли до
высоты y, которую ракета должна достичь за время Т. Обозначим через y(t) высоту, достигнутую ракетой за время t, а через
U(t) — силу, действующую на ракету в вертикальном направлении в момент t. Пусть масса ракеты равна m. Тогда уравнение
движения имеет вид
y(t) + mg = u(t) , t ∈ [0,T],
где y(t) — ускорение движения ракеты в момент времени t, а g —
ускорение свободного падения. Будем считать, что максимальная
сила, прилагаемая к ракете в любой момент времени, не превосходит b. Требуется вычислить минимальную энергию, которую
необходимо затратить для выведения ракеты на высоту y за время Т. Эта задача может быть сформулирована следующим образом:
T
ò | u(t) | dt ® min,
0
при условиях
y(t) + mg = u(t), t ∈ [0,T],
| u(t) |£ b, t ∈ [0,T],
y(T) = y, y(0) = 0,
y1 = y, y2 = y,
ìïïy1 = y2 ,
í
ïïîy2 + mg = u.
Окончательно получим:
T
ò | u(t) | dt ® min,
0
37
y1 (t) = y2 (t), t ∈ [0,T],
y2 (t) = u(t) - mg, t ∈ [0,T],
| u(t) |£ b,
y1(0) = y2(0) = 0,
y1 (T) = y.
Разделим отрезок [0,T] на K интервалов длины D. Чтобы упростить запись, будем считать, что D = 1. Обозначим силу, действующую на ракету, высоту полета над поверхностью и скорость ракеты в конце k-го периода соответственно через Uk, y1,k и y2,k. Тогда задачу оптимального управления полетом ракеты можно аппроксимировать следующей задачей нелинейного программирования:
k
å | Uk | ® min,
k=1
y1,k – y1,k – 1 = y2,k – 1, k = 1, …, K,
y2,k – y2,k – 1 = uk – mg, k = 1, …, K,
| uk |£ b, k = 1, …, K,
y1,0 = y2,0 = 0,
y1,k = y.
38
Глава 1. безусловная оптимизация
Нахождение экстремума целевой функции без ограничений
относится к задачам безусловной оптимизации, при этом:
— �������������������������������������������������������
алгоритмы минимизации для задач с ограничениями строятся на основе алгоритмов минимизации для задач без ограничений;
— �����������������������������������������������������
задачи условной оптимизации решаются путём преобразования их в задачи безусловной оптимизации.
Методы решения [2, 3, 6, 8] задач минимизации с помощью
численных методов основаны на процедуре получения последовательности векторов, т. е. точек X0, X1, Xk в Rk .
При получении таких последовательностей точек в задачах
условной оптимизации прежде всего необходимо выбрать начальную точку X0, удовлетворяющую всем ограничениям. В задачах
без ограничений в качестве X0 может быть взята любая точка.
При этом нужно использовать любую имеющуюся информацию
о поведении функции, чтобы выбрать X0 не слишком далеко от
точки минимума.
После того как начальная точка выбрана, прежде чем получить следующую точку, нужно принять два решения:
1) выбрать
�������������������������������������������������������
направление, вдоль которого предполагается расположить следующую точку;
2) определить величину шага, который должен быть сделан
в выбранном направлении.
Все методы основаны на итерационной процедуре, реализуемой в соответствии с формулой
xk + 1 = xk + lkSk, k = 0, 1, …,
k
где S — направление поиска; lk — величина шага.
Изменяя процедуру выбора Sk и lk (например, определяя эти
величины в зависимости от ранее полученных точек), можно варьировать методы спуска.
Способы получения последовательности точек и их эффективность в локализации точки минимума зависит:
— от вида минимизируемой функции;
— от информации, которая может быть использована для
определения следующей точки.
1.1. Методы одномерной безусловной оптимизации
Методы одномерной безусловной оптимизации подразделяют:
1) на методы
���������������������������������������������������
нулевого порядка (прямые методы), использующие только значения функций;
39
2) методы 1-го порядка, использующие первые производные;
3) методы
������������������������������������������������������
2-го порядка, использующие первые и вторые производные.
Производные могут вычисляться аналитически или численно. Методы 2-го порядка при наименьшем числе шагов приводят
к точкам, достаточно близким к точкам минимума. Это не означает, что они являются наиболее эффективными. Иногда f(x)
представляет собой настолько сложную функцию, что первая и
вторая производные не могут быть получены аналитически, а их
численные вычисления оказываются очень грубыми. Кроме того, вычисление этих производных может потребовать больше машинного времени, чем вычисление значений функций в необходимом для отыскания минимума числе точек.
Таким образом, невозможно выделить какой-либо метод, который был бы наиболее эффективным для решения любой задачи.
Критерии окончания оптимизационного процесса:
x(k-1) - x(k)
1)
£ ε1;
x(k)
2)
f (x(k-1) ) - f (x(k) )
f (x(k) )
£ ε2 ;
3) Ñf (x(k) ) £ ε3 .
Методы оптимизации без ограничений в основном будут рассматриваться на примере квадратичных функций.
Причины, по которым используются квадратичные функции:
1. Если метод не пригоден для квадратичной функции, скорее
всего, что он не пригоден для функций с более сложной структурой.
2. �������������������������������������������������
Нелинейную функцию можно аппроксимировать квадратичной функцией, если ограничиться разложением в ряд Тейлора членами не выше 2-го порядка. При этом минимум функции
может быть получен посредством минимизации последовательности квадратичных функций, аппроксимирующих некоторую
функцию относительно точек, последовательно приближающихся к точке истинного минимума.
Таким образом, общим для методов 1), 2), 3) – методов одномерного поиска – является то, что все они предусматривают поиск локальных минимумов на последовательности направлений.
40
Этот поиск является составной частью общей процедуры минимизации.
Поиск локального минимума целевой функции f(x) вдоль заданного направления является задачей одномерной минимизации. Нужно найти такую длину шага, которая в данном направлении, исходя из точки xk, минимизирует функцию f(x):
min f (xk + λ k Sk ).
λk
Методы одномерного поиска подразделяют:
— на методы, использующие правило исключения интервалов;
— методы, использующие квадратичную аппроксимацию;
— методы, использующие производные.
1.1.1. Методы, использующие правило
исключения интервалов
Фактически все используемые на практике одномерные методы поиска основаны на предположении, что исследуемая функция в допустимой области унимодальна. Для унимодальной
функции f(x) сравнение значений функции f(x) в двух различных
точках интервала поиска позволяет определить: в каком именно
из заданных двумя указанными точками подынтервалов точка
оптимума отсутствует. Поиск оптимума заключается в последовательном исключении подынтервалов и, следовательно, уменьшении интервала поиска.
Пусть функция f(x) — унимодальна на замкнутом интервале a ≤ x ≤ b, а её минимум достигается в точке x*. Рассмотрим точки x1 и x2, расположенные в интервале следующим образом:
a ≤ x1 ≤ x2 ≤ b.
Сравнивая значения функции в точках x1 и x2, можно сделать
следующие выводы:
— если f(x1) > f(x2), то точка минимума не лежит в интервале
(а, х1), т. е. х* ∈ (х1,b) (рис. 1.1);
a
b
x1
x2
Рис. 1.1
41
a
b
x1
Рис. 1.2
x2
a
b
x1
x2
Рис. 1.3
— если f(x1) < f(x2), то точка минимума не лежит в интервале
(х2, b), т. е. х* ∈ (a,х2) (рис. 1.2);
— если f(x1) = f(x2), то точка минимума не лежит в интервале
(а, х1) и (х2, b) и х* ∈ (х1, х2) (рис. 1.3).
Достоинства метода:
1. Правило исключения интервалов устраняет необходимость
перебора всех точек.
2. Не требуется выполнение условия дифференцируемости
функций, и даже нет необходимости записи функции в математическом виде. Единственное требование: возможность определения значения функции в заданных точках с помощью расчётов
или в результате экспериментов.
Методы поиска, основанные на использовании правила исключения интервалов, состоят из двух этапов:
— установление границ интервала, в котором находится точка
минимума (достаточно широкого интервала).
— ���������������������������������������������������
уменьшение интервала до заранее установленной величины.
Критерии сходимости:
— длина интервала меньше заданного значения: |xk – xk–1| < ξ;
— ����������������������������������������������������
разность между двумя оценками значений функции меньше заданной погрешности: |f(xk)  – f(xk–1)| < ξ1.
x0 - ∆
42
Установление границ интервалов (метод Свенна)
Исходные данные: X0 — начальная точка; ∆ — длина шага;
(k + 1�����������������������������
)-я точка определяется по рекуррентной формуле:
xk + 1 = xk + 2k∆, k = 0, 1, 2…,
знак ∆ определяется путём сравнения значений f(x0), f(x0 – |D|),
x0 + ∆
x0
f(x0 + |D|):
Рис. 1.4
a
x0 - ∆
x0
Рис. 1.5
x0 + ∆
b
x0 - ∆
x0
x0 + ∆
Рис. 1.6
— если f(x0) ≥ f(x0 – |D|) ≥ f(x0 + |D|), то ∆ — выбирается положительной (рис. 1.4);
— если f(x0) ≤ f(x0 – |D|) ≤ f(x0 + |D|), то ∆ — выбирается со знаком
«−» (рис. 1.5);
— если f(x0) ≥ f(x0 – |D|) ≤ f(x0 + |D|), значит, получен интервал
(x0 – |D|; x0 + |D|) (рис. 1.6);
— если f(x0) ≤ f(x0 – |D|) ≥ f(x0 + |D|), то имеется противоречие по
предположению об унимодальности функции.
Эффективность поиска зависит от величины шага ∆. Если ∆
велико — получаем грубые оценки координат граничных точек.
Если ∆ мало — для вычисления граничных точек может потребоваться большой объём вычислений.
Поиск последовательности точек происходит до тех пор, пока
значение функции в этих точках уменьшается. Как только найдена точка, в которой значение функции превышает значение
функции в предыдущей точке, осуществляется возврат на половину последнего шага и вычисляется значение функции в данной
точке. Последние четыре точки расположены друг от друга на
равном расстоянии. Оценивая значения функции в этих точках,
на основе правила исключения интервалов определяется интервал, содержащий минимум заданной функции.
П р и м е р [7, 8]
Выбирается исходная точка, а затем на основе правила исключения строится относительно широкий интервал, содержащий
точку оптимума. Обычно используется эвристический метод, например метод Свенна, в котором (k + 1)-я������������������������
пробная точка определяется по рекуррентной формуле
xk + 1 = xk + 2k∆, k = 0, 1, 2, …,
где x0 — произвольно выбранная начальная точка; ∆ — подбираемая величина шага.
43
Знак ∆ определяется путем сравнения значений f(x), f(x0 + |∆|),
f(x0 – |∆|):
— если f(x0 – |∆|) ≤ f(x) ≤ f(x0 + |∆|), то ∆ имеет положительное
значение;
— если f(x0 – |∆|) ≥ f(x) ≥ f(x0 + |∆|), то ∆ имеет отрицательное значение;
— если f(x0 – |∆|) ≤ f(x) ≥ f(x0 + |∆|), то точка минимума лежит
между f(x0 – |∆|) и f(x0 + |∆|) и поиск граничных точек завершен;
— если f(x0 – |∆|) ≥ f(x) ≤ f(x0 + |∆|), то имеем противоречие по
предположению об унимодальности.
Пусть
f(x) = (100 – x)2x0 = 30∆ = 5.
Определим величину ∆:
f(30) = 4490,
f(30 + 5) = 4225,
f(30 – 5) = 5625.
Выполняется условие f(x0 – |∆|) ≤ f(x) ≤ f(x0 + |∆|), следовательно,
∆ имеет положительное значение;
x* = 30 — точка минимума функции f(x);
x1 = x0 + 20∆ = 35;
x2 = x1 + 21∆ = 45, f(45) = 3025 < f(x1) → x* > 35,
x3 = x2 + 22∆ = 65, f(65) = 1225 < f(x2) → x* > 45,
x4 = x3 + 23∆ = 105, f(105) = 25 < f(x3) → x* > 65,
x5 = x4 + 24∆ = 185, f(185) = 7225 < f(x4) → x* > 185.
Искомый интервал: 65 < x*185.
Уменьшение интервала
Величина подынтервала, исключаемого на каждом шаге, зависит от расположения точек x1 и x2 внутри этого интервала.
Размещение точек должно обеспечить уменьшение интервала
в одном и том же отношении. В целях повышения эффективности
алгоритма необходимо потребовать, чтобы данное отношение было максимальным. Подобную стратегию иногда называют минимаксной стратегией поиска. Минимаксная стратегия — минимизация максимально возможного интервала неопределённости,
в котором лежит минимум функции.
1.1.2. Метод деления интервала пополам (метод дихотомии)
Метод позволяет исключать точно половину интервала на каждой итерации. Иногда этот метод называют трехточечным мето44
дом на равных интервалах, поскольку его реализация основана
на выборе трех начальных точек, равномерно распределённых
в интервале поиска.
Алгоритм метода дихотомии
Исходные данные: [a,b] — начальный интервал поиска;
e — заданная погрешность.
a+b
1. Положим xm =
и L = b – a. Вычислить f(xm).
2
L
L
2. Положим x1 = a + , x2 = b - .
4
4
Точки x1, xm, x2 делят интервал (a, b) на четыре равные части.
Вычислить f(x1), f(x2) и f(xm).
3. Сравнить f(x1) и f(xm):
— если f(x1) < f(xm), исключить интервал (xm, b), положив
b = xm. Средней точкой интервала поиска становится точка x1,
xm = x1 (рис. 1.7), перейти к п. 5;
— если f(x1) ≥ f(xm), перейти к п. 4.
4. Сравнить f(x2) и f(xm):
— если f(x2) < f(xm), исключить интервал (a, xm), положив
a = xm. Средней точкой интервала поиска становится точка x2,
xm = x2 (рис. 1.8), перейти к п. 5;
— если f(x1) > f(xm), исключаем интервалы (x1, a) и (x2, b), положив a = x1, b = x2, xm останется средней точкой (рис. 1.9).
5. Вычислить L = b – a, если |L| < ξ, закончить поиск, иначе вернуться к п. 2.
a
b
x1
xm
a
b
xm
x1
x2
Рис. 1.7
x2
Рис. 1.8
a
b
x1
xm
x2
Рис. 1.9
45
Выводы:
1. На
����������������������������������������������������
каждом шаге алгоритма исключается половина интервала.
2. Средняя точка последовательно получаемых интервалов
всегда совпадает с одной из точек x1, xm, x2. Следовательно, на
каждой итерации требуется не более двух вычислений значений
функции.
3. Если проведено n вычислений значения функции, то длина
полученного интервала
n
æ1ö
Ln = çç ÷÷÷
çè 2 ø
2
L0 .
Пример
Задана непрерывная унимодальная целевая функция вида
2
F (x) = x + , определенная в интервале [1,5]. Найти минимум
x
функции.
Погрешность определения местоположения минимума
Eз = 0,015, число, характеризующее отступление от точки половины интервала [a,b], c = 0,5.
1. Eз = 0,015.
b + a - c 1 + 5 - 0,5
=
= 2,75;
2
2
b + a + c 1 + 5 + 0,5
=
= 3,25.
x2 =
2
2
F(x1) = 3,48; F(x2) = 2,87.
3. F(x1) > F(x2) → [1;3,25].
2. x1 =
4. Eï =
3,25 -1
= 0,56,
22
Eз < Eп, (0,015 < 0,56).
b + a - c 1 + 3,25 - 0,5
=
= 1,875;
2
2
b + a + c 1 + 3,25 + 0,5
x2 =
=
= 2,375;
2
2
F(x1) = 2,94; F(x2) = 3,22.
1. x1 =
2. F(x1) > F(x2) → [1;2,375].
46
3. Eï =
2,375 -1
= 0,17;
23
F(x1) > F(x2) → [1;2,375], Eз < Eп, (0,015 < 0,17),
b + a - c 1 + 2,375 - 0,5
=
= 1,44;
2
2
b + a + c 1 + 2,375 + 0,5
x2 =
=
= 1,94;
2
2
F (x1 ) = 2,83, F (x2 ) = 2,97.
2. x1 =
F(x1) = 2,83; F(x2) = 2,97.
3. F(x1) > F(x2) → [1;1,94].
1,94 -1
= 0,059;
4. Eï =
24
Eз < Eп, (0,015 < 0,059).
b + a - c 1 + 1,94 - 0,5
=
= 1,22;
2. x1 =
2
2
b + a + c 1 + 1,94 + 0,5
=
= 1,72;
x2 =
2
2
F(x1) = 2,86; F(x2) = 2,89.
3. F(x1) > F(x2) → [1;1,72].
1,72 -1
= 0,02;
4. Eï =
25
Eз < Eп, (0,015 < 0,092).
b + a - c 1 + 1,72 - 0,5
2. x1 =
=
= 1,11;
2
2
b + a + c 1 + 1,72 + 0.5
=
= 1,61;
x2 =
2
2
F(x1) = 2,91; F(x2) = 2,85.
3. F(x1) > F(x2) → [1,11;1,72].
1,72 -1,11
= 0,01;
4. Eï =
26
Eз < Eп, (0,015 < 0,01),
1,11 + 1,72
= 1,415,
2
2
= 2,83.
F (xmin ) = 1,415 +
1,415
xmin =
47
1.1.3. Метод Фибоначчи
1. Если
���������������������������������������������������������
количество пробных точек равно 2, то их следует размещать на равном расстоянии от центра интервала.
2. На
������������������������������������������������������
каждой итерации должно вычисляться только одно значение функции в получаемой точке.
В методе Фибоначчи должно быть предварительно определено
общее число точек, в которых будут производиться вычисления.
Это число может быть определено на основании требований точности.
Начальный интервал [a0, b0] после нескольких шагов уменьшился до [ak, bk]. При этом выбираются две точки x1* и x2* , определяемые следующими равенствами:
F -1 - k
x1* = n
(bk - ak ) + ak
Fn + 1 - k
и
x2* =
Fn - k
(bk - ak ) + ak , k = 0, 1, ..., N -1,
Fn + 1 - k
где Fk = Fk – 1 + Fk – 2, F0 = 1 (числа Fk называются числами Фибоначчи).
Если f (x1k ) < f (x2k ), то следующий интервал неопределённости
[ak+1, bk+1 ] = [ak , x2k ] (рис. 1.10).
Если f (x1k ) > f (x2k ), то следующий интервал неопределённости
[ak+1, bk+1 ] = [a1k , bk ] (рис. 1.11).
Последние точки определяются следующим образом:
1
x2N-1 = ( + ξ)(bN-1 - aN-1 ) + aN-1
2
bk
ak
x1k
x2k
Рис. 1.10
48
bk
ak
x1k
Рис. 1.11
x2k
и
1
x1N-1 = (bN-1 - aN-1 ) + aN-1.
2
где ξ — произвольное малое положительное число.
Длина интервала неопределенности примерно равна
(bN-1 - aN-1 )
.
2
При заданном количестве точек, в которых производится оценивание, поиск Фибоначчи является оптимальным в определённом точном математическом смысле (минимаксная стратегия).
Одна из двух точек, в которых производятся вычисления, всегда лежит внутри уменьшенного интервала и служит одной из точек, в которых производится вычисление на следующей итерации. Таким образом, если не считать начальной итерации, каждая итерация требует только одну дополнительную точку.
Величина последнего интервала равна:
1
bN - aN =
(b0 - a0 ) + ξ,
2FN
1
1
>
для N ≥ 2.
FN +1 2FN
Если взять ξ = 0 и не добавлять точки при вычислении последнего интервала, то в выражение для последнего интервала будет
входить FN + 1 вместо 2FN.
Таким образом, если желательно уменьшить последний интервал
1
(b0 - a0 ) = (bN - aN )
FN +1
неопределённости до величины порядка 1 % от длины некоторого
интервала, то надо принять
N = 11, F10 = 89, F11 = 144, F20 = 10946.
Для того чтобы не требовать предварительного определения
количества точек, в которых используется оценивание функции,
используется метод золотого сечения:
1
ξ³
D0 ,
FN
FN +1 =
b0 - a0
= 100.
bN - aN
49
1.1.4. Метод золотого сечения
При k ® ∞
Fk-1
Fk
® 0,382,
® 0,618.
Fk+1
Fk+1
Таким образом, можно пользоваться формулами
x1k = 0,382(bk - ak ) + ak ,
x2k = 0,618(bk - ak ) + ak .
Точки расположены по симметричной схеме таким образом,
чтобы отношение длины исключаемого подынтервала к величине
интервала оставалось постоянным.
Рассмотрим интервал [0, 1] (рис. 1.12):
1 - τ 2τ -1
=
(τ - (1 - τ)).
1
τ
1- τ
τ
1
1- τ
x1
0
2τ- 1
x2
τ
Рис. 1.12
Решая квадратное уравнение t2 + t – 1 = 0, получим
-1 ± 5
, t = 0,61803… — положительное значение.
2
Заметим, что оба метода (Фибоначчи и золотого сечения) выполняются по одной схеме и различаются выбором параметра l.
τ=
Алгоритм метода золотого сечения
Исходные данные:
x2k - ak
k
b -a
¢
k
=
bk - x1k
k
b -a
k¢
¢
¢
= 0,618; bk - x2k = x1k - ak ;
[a,b] — начальный интервал поиска; ξ — заданная погрешность.
1. Вычислить L0 = b0 – a0:
50
x10 = a0 + (1 - λ)L0 ,
x10 = a0 + 0,38 L0 ,
x20 = a0 + λL0 ,
x20 = a0 + 0,618 L0 .
a0
x2
x1
b0
a0
x2
x1
b0
Рис. 1.14
Рис. 1.13
2. Вычислить f (x10 ) и f (x20 ), k = 1:
— если f (x1k-1 ) £ f (x2k-1 ), то:
ak = ak–1,
bk = x2k-1,
x2k
x1k
Lk = bk – ak,
= x1k-1,
k
= a + (1 - λ)Lk .(рис. 1.13);
— если f (x1k-1 ) ³ f (x2k-1 ), то:
ak = x1k ,
bk = bk–1,
Lk = bk – ak,
x1k
x2k
= x2k-1,
k
= a + λLk .(рис. 1.14);
— если Lk ≤ ξ, полагают x* » xk = arg min{f (x1k ), f (x2k )};
— если Lk > ξ, то k = k + 1 и перейти к п. 2.
Выводы:
1. �������������������������������������������������������
На каждом шаге алгоритма исключается 0,382 часть интервала.
2. Одна
������������������������������������������������������
из двух точек последовательно получаемых интервалов всегда совпадает с другой точкой из пары точек предыдущего
интервала. Следовательно, на каждой итерации требуется только
одно вычисление значений функции.
51
3. Если проведено n вычислений значения функции, то длина
полученного интервала равна
Ln = (0,618)n–1L0.
Пример
2
Найти минимум функции x + на интервале [1, 5] с погрешx
ностью определения местоположения минимума Eз = 0,1. В данæ 3 - 5 ö÷
÷÷.
ном случае используется формула золотого сечения ççç
çè 2 ÷ø
1. c = a + 0,382(5 – 1) = 1 + 0,382(5 – 1) = 2,53;
d = b – 0,382(5 – 1) = 5 – 0,382•(5 – 1) = 3,47.
2. F(c) = F(x = 2,53) = 2,53 + 0,79 = 3,32;
F(d) = F(x = 3,47) = 3,47 + 0,58 = 4,05.
3. F(d) > F(c) ⇒ b → d, т. е. [a = 1, b = d = 3,47].
4. L = b – a = 3,47 – 1 = 2,47, L > Eз.
1. c = a + 0,382(3,47 – 1) = 1 + 0,382•2,47 = 1,94;
d = b – 0,382(3,47 – 1) = 3,47 – 0,382•2,47 = 2,53.
2. F(c) = F(x = 1,94) = 2,97;
F(d) = F(x = 2,53) = 3,32.
3. F(d) > F(c) ⇒ b → d, т. е. [a = 1, b = d = 2,53].
4. L = b – a = 2,53 – 1 = 1,53, L > Eз.
1. c = a + 0,382(2,53 – 1) = 1 + 0,382•1,53 = 1,58;
d = b – 0,382(2,53 – 1) = 2,53 – 0,382•1,53 = 1,95.
2. F(c) = F(x = 1,58) = 2,85;
F(d) = F(x = 1,95) = 2,98.
3. F(d) > F(c) ⇒ b → d, т. е. [a = 1, b = d = 1,95].
4. L = b – a = 1,95 – 1 = 0,95, L > Eз.
1. c = a + 0,382(1,95 – 1) = 1 + 0,382•1,53 = 1,36;
d = b – 0,382(1,95 – 1) = 1,95 – 0,382•1,53 = 1,59.
2. F(c) = F(x = 1,36) = 2,83;
F(d) = F(x = 1,95) = 2,85.
3. F(d) > F(c) ⇒ b → d, т. е. [a = 1, b = d = 1,59].
4. L = b – a = 1,59 – 1 = 0,59, L > Eз.
1. c = a + 0,382(1,59 – 1) = 1 + 0,382(1,59 – 1) = 1,23;
d = b – 0,382(1,59 – 1) = 1,59 – 0,382(1,59) = 1,36.
2. F(c) = F(x = 1,23) = 2,86;
F(d) = F(x = 1,36) = 2,83.
3. F(d) < F(c) ⇒ a → c, т. е. [a = 1,23, b = d = 1,59].
4. L = b – a = 1,59 – 1,23 = 0,36, L > Eз.
1. c = a + 0,382(1,59 – 1,23) = 1,23 + 0,382(1,59 – 1,23) = 1,37;
52
d = b – 0,382(1,59 – 1,23) = 1,59 – 0,382(1,59 – 1,23) = 1,45.
2. F(c) = F(x = 1,37) = 2,8298;
F(d) = F(x = 1,45) = 2,8293.
3. F(d) < F(c) ⇒ a → c, т. е. [a = 1,37, b = d = 1,59].
4. L = b – a = 1,59 – 1,37 = 0,22, L > Eз.
1. c = a + 0,382(1,59 – 1,37) = 1 + 0,382(1,59 – 1,37) = 1,45;
d = b – 0,382(1,59 – 1,37) = 1,59 – 0,382(1,59 – 1,37) = 1,50.
2. F(c) = F(x = 1,45) = 2,8290;
F(d) = F(x = 1,50) = 2,8300.
3. F(d) > F(c) ⇒ b → d, т. е. [a = 1,37, b = d = 1,5].
4. L = b – a = 1,7 – 1,5 = 0,13, L > Eз.
1. c = a + 0,382(1,50 – 1,37) = 1,37 + 0,382(1,50 – 1,37) = 1,42;
d = b – 0,382(1,50 – 1,37) = 1,50 – 0,382(1,50 – 1,37) = 1,45.
2. F(c) = F(x = 1,42) = 2,828;
F(d) = F(x = 1,45) = 2,839.
3. F(d) > F(c) ⇒ b → d, т. е. [a = 1,37, b = d = 1,45].
4. L = b – a = 1,46 – 1,37 = 0,08, L < Eз;
min(F(x)) = 2,828428;
x = 1,413302.
1.2. Методы полиномиальной аппроксимации
Применение методов исключения интервалов накладывает
единственное требование на исследуемую функцию — требование
унимодальности данной функции. Так как в этих методах производится сравнение значений функции в двух точках, функции
могут быть как непрерывные, так и разрывные, а также дискретные. Величина разности между значениями функции в данных
методах не учитывается. Методы, использующие относительные
изменения значений функции, в ряде случаев могут быть более
эффективными, но они требуют выполнения дополнительного
условия — унимодальности и непрерывности функции.
Если функция непрерывна на некотором интервале (согласно
теореме Вейерштрасса), то её с любой степенью точности можно
аппроксимировать полиномом довольно высокого порядка. Тогда
координату точки оптимума функции можно оценить путём вычисления координаты точки оптимума полинома. Качество оценок
координаты точки оптимума, получаемых с помощью аппроксимирующего полинома, можно повысить следующими способами:
1) использованием полинома более высокого порядка, однако
построение полинома порядка выше третьего становится весьма
сложной процедурой;
53
2) уменьшением
���������������������������������������������������
интервала аппроксимации (при унимодальной функции это более простой подход).
1.2.1. Методы поиска,
использующие квадратичную аппроксимацию
Предполагается, что в ограниченном интервале исследуемую
функцию можно аппроксимировать квадратичным полиномом,
тогда, используя построенную аппроксимированную схему, можно оценить координаты точки локального минимума функции.
Пусть задана целевая функция f(x), последовательность точек
x1, x2, x3 и известно значение целевой функции в этих точках:
f1 = f(x1), f2 = f(x2), f3 = f(x3).
Строим квадратичную функцию
g(x) = a0 + a1(x – x1) + a2(x – x1)(x – x2).
Постоянные коэффициенты a0, a1, a2 определяются таким образом, чтобы значения квадратичной функции g(x) совпадали со
значениями целевой функции f(x) в точках x1, x2, x3:
f1 = f(x1) = g(x1), f2 = f(x2) = g(x2), f3 = f(x3) = g(x3).
Точка x1:
f1 = f(x1) = g(x1) = a0.
Точка x2:
f2 = f(x2) = g(x2) = a0 + a1(x2 – x1) = f1 + a1(x2 – x1),
f -f
a1 = 2 1 .
x2 - x1
Точка x3:
f3 = f (x3 ) = g(x3 ) = a0 + a1 (x3 - x1 ) + a2 (x3 - x1 )(x3 - x2 ) =
f2 - f1
= f1 +
+ a2 (x3 - x1 )(x3 - x2 ),
(x2 - x1 )(x3 - x1 )
a2 =
æ f -f
f -f ö
1
× ççç 3 1 - 2 1 ÷÷÷.
x3 - x2 è x3 - x1 x2 - x1 ø÷
Таким образом, по трем заданным точкам и соответствующим
им значениям функции можно оценить коэффициенты a0, a1, a2
аппроксимирующего полинома.
Определим минимум данного полинома
dg
= a1 + a2 (x - x2 ) + a(x - x1 ) = 0,
gx
54
a1 + 2a2x – a2x2 – a2x1 = 0,
x* =
x1 + x2
a
- 1 .
2
2a2
1.2.2. Метод Пауэлла
Метод Пауэлла основан на последовательном применении процедуры оценивания с использованием квадратичной аппроксимации. Квадратичная аппроксимация проводится путём использования первых трёх точек, полученных в направлениях поиска.
Затем определяется точка, соответствующая минимуму квадратичной функции. Такая квадратичная аппроксимация продолжается до тех пор, пока с требуемой точностью не находится минимум f(x).
Алгоритм метода Пауэлла
Исходные данные: x1 — начальная точка; ∆x — величина шага; ξ1, ξ2 — погрешность оценивания.
1. Вычислить x2 = x1 + ∆x.
2. Вычислить f(x1) и f(x2).
3. Если f(x1) > f(x2), положим x3 = x1 + 2∆x. Если f(x1) > f(x2), положим x3 = x1 – ∆x;
4. Вычислить f(x3). Найти Fmin = min{f1, f2, f3}, xmin — точка,
соответствующая fmin.
5. По трем точкам x1, x2, x3 вычислить x*, используя формулу
для оценивания с помощью квадратичной аппроксимации. Вычислить f(x*).
6. Проверка на окончание поиска:
| fmin - f (x* ) |£ ξ1;
| xmin - x* |£ ξ2 .
Если оба условия выполняются, закончить поиск, иначе перейти к п. 7.
7. Выбрать «полученную» точку min{xmin, x*} и две точки по
обе стороны от неё, обозначить эти точки в естественном порядке,
перейти к п. 4.
Исключить из множества {x1, x2, x3} то значение x, которое
соответствует наибольшему значению f(x), если, однако, не будет потерян интервал, в котором находится минимум f(x). В этом
55
x1
x1*
x2
x3
Рис. 1.15
случае следует исключить x так, чтобы не потерять этот интервал
(рис. 1.15).
В данном случае вместо xmax = x1 нужно исключить x3. Интервал
[x1, x2] является интервалом, в котором находится минимум f(x).
1.2.3. Метод Дэвиса, Свенна, Кэмпи
В методе Дэвиса, Свенна, Кэмпи (ДСК) по методу Свенна определяется интервал, содержащий точку минимума, т. е. проверяются возрастающие по величине шаги до тех пор, пока не будет
пройден минимум, а затем выполняется одноразовая квадратичная аппроксимация. После определения интервала неопределённости по методу Свенна из четырёх равноотстоящих точек исключается та точка, которая находится дальше от точки x, соответствующей наименьшему значению f(x).
Допустим, что найдены такие точки (x1, x2, x3):
f1 = f(x1), f2 = f(x2), f3 = f(x3).
f(x2) = min{f(x1),f(x2),f(x3)},
где x2 — центральная точка;
x1 = x2 – ∆x; x3 = x2 + ∆x
(∆x — расстояние между смежными точками), тогда значение минимума аппроксимирующего квадратичного полинома может
быть вычислено по следующей формуле:
Dx(f1 - f3 )
x* = x2 +
.
2(f1 - 2f2 + f3 )
Проверка на окончание поиска производится аналогично методу Пауэлла. Если требуемая точность не достигнута, из точек
x1, x2, x3, x* выбирается та, которой соответствует минимальное
значение функции, она и является начальной точкой для определения интервала неопределённости по методу Свенна. При этом
длина шага может быть уменьшена.
56
По сравнению с каждым из алгоритмов в отдельности (Пауэлла и ДСК) более эффективной является комбинация этих методов:
— алгоритм ДСК: определение интервала, в котором находится минимум f(x), и однократное оценивание функции с помощью
квадратичной аппроксимации;
— алгоритм Пауэлла: оценивание функции с помощью квадратичной аппроксимации до тех пор, пока не будет достигнута
требуемая точность (итерационная процедура).
1.3. Методы, использующие производные
Методы, использующие правило исключения интервалов,
требуют только унимодальности функции. Методы, использующие квадратичную аппроксимацию, требуют унимодальности и
непрерывности функции. Если в дополнение к этим требованиям добавить требование дифференцируемости функции, можно
повысить эффективность поиска за счет использования производных.
Точка минимума — это точка, в которой
df
= 0.
dx
Если функция f(x) содержит члены, включающие x в третьей
и более высоких степенях, то непосредственно получить аналитическое решение уравнения f′(x) = 0 достаточно сложно. В таком
случае используют приближённые методы последовательного поиска стационарной точки функции f.
1.3.1. Метод Ньютона — Рафсона
Данный метод используется для нахождения корня нелинейного уравнения.
Пусть f(x) — дважды дифференцируемая функция. Необходимо найти корень уравнения f′(x) = 0. Задаётся начальная точка x1, затем строится линейная функции f′(x) в точке x1 и точка,
в которой функция f′(x) обращается в нуль, принимается в качестве следующей точки приближения.
Если xk — точка текущего приближения к стационарной точке
функции f′(x), то линейная функция, аппроксимирующая функцию f′(x) в точке xk, имеет вид:
f ¢(x) = f ¢(x, xk ) = f ¢(xk ) + f ¢¢(xk )(x - xk ).
57
f�¢ (x)
f ¢ (x)
Z
xk
xk+ 1
xk+ 2
x
Z
x0 xk
Рис. 1.16
xk+ 2 x
xk+1
Рис. 1.17
Приравняем ее нулю:
xk+1 = xk -
f ¢(x)
.
f ¢¢(xk )
Итерации продолжаются до тех пор, пока |f′(x)| < ξ — допустимая погрешность (рис. 1.16, 1.17).
Сходимость алгоритма зависит от выбора начальной точки. Если начальная точка расположена правее x0, то получаемая точка
удаляется от стационарной точки; Z — стационарная точка.
1.3.2. Метод средней точки (поиск Больцано)
Для нахождения корня уравнения f′(x) = 0 используется алгоритм исключения интервалов, на каждой итерации которого рассматривается лишь одна пробная точка.
Если в точке x выполняется равенство f '(x) < 0, то (исходя из
унимодальности) точка минимума не может находиться левее такой точки и исключается интервал x £ x.
Если f '(x) > 0, то исключается x ³ x (рис. 1.18).
Определяются две точки таким образом, что f′(x) < 0 и f′(x2).
Стационарная точка находится между x1 и x2. Вычисляется
значение f′ в средней точке (рис. 1.19) этого интервала
x + x2
xcp = 1
.
2
Если f′ (xcp) > 0, исключается интервал (xср, x2). Если f′ (xcp) < 0,
исключается интервал (x1, xср). Окончание поиска |f′(x)| ≤ ξ.
f(x)
f(x)
x2
x1
Рис. 1.18
58
x
x1
xñð x2
Рис. 1.19
x
Поиск основан лишь на исследовании знака производной независимо от значения этих производных. Значение производной и
её знак используются в методе секущих.
Пример
2
Найти минимум унимодальной функции F = x + на интерx
вале [1,5] с погрешностью определения местоположения минимума Eз = 0,2.
1. Eз = 0,2.
1+5
2. x =
= 3;
2
2
2
F ¢(x) = 1 = 1 - = 0,8.
2
9
x
3. F ¢(x) > Eç , (0,8 > 0,2).
4. F′(x) > 0, [a,b]→[a,x] = [1,3].
1+ 3
2. x =
= 2, F ¢(x) = 0,5.
2
3. F ¢(x) > Eç , (0,5 > 0,2).
4. F′(x) > 0, [a,b]→[a,x] = [1,2].
2. x =
1+2
= 1,5, F ¢(x) = 0,11.
2
3. F ¢(x) < Eç , (0,2 > 0,11).
1.3.3. Метод секущих, или метод хорд (комбинация метода
Ньютона и метода исключения интервалов)
Допустим, найдены две точки — x1,x2, в которых знаки производных различны (рис. 1.20).
f ¢(x)
Функция f′(x) аппроксимируется «секущей прямой» (прямой, соединяющей эти две точки), и точка,
в которой секущая графика f′(x)
пересекает ось 0x, определяется по
x
формуле
x1
x2 x
f ¢(x2 )
x = x2 .
[f ¢(x2 ) - f ¢(x1 )]
(x2 - x1 )
Рис. 1.20
59
Если f ¢(x) £ ξ, поиск заканчивается, иначе следует выбрать
точку, в которой знак производной противоположен знаку производной в точке x:
x* = x2 -
f ¢(x2 )(x2 - x1 )
.
é f ¢(x2 ) - f ¢(x1 )ù
ë
û
1.4. Сравнение методов одномерного поиска
Теоретически методы точечного оценивания, т. е. методы поиска с использованием квадратичной и кубической аппроксимаций и производных, значительно эффективнее методов исключения интервалов.
Однако результаты численных экспериментов не показывают
преимуществ ни методов точечного оценивания, ни методов исключения интервалов.
1. Если
����������������������������������������������������
для вычисления целевой функции требуется значительное машинное время, предпочтительнее использовать метод ДСК-Пауэлла. Этот метод (для достижения заданной точности) требует меньшего количества вычислений значений целевой
функции, чем метод золотого сечения.
2. ���������������������������������������������������������
Если требуется получить результат с высокой степенью точности, лучше использовать методы полиномиальной аппроксимации.
3. Если функция быстро изменяется («овражные функции»),
метод Пауэлла сходится медленнее, чем методы исключения интервалов. Если очень важно обеспечить надёжность работы алгоритма, используется метод золотого сечения.
Для повышения эффективности поиска применяют комбинацию методов. Например, сначала используются поисковые методы с применением квадратичной аппроксимации, а затем осуществляется переход к алгоритму золотого сечения.
1.5. Методы многомерной безусловной оптимизации
Одними из методов нахождения минимума функции
n-переменных являются методы прямого поиска. Методы прямого поиска являются методами, в которых используются только
значения функции.
60
1.5.1. Метод покоординатного спуска
Метод покоординатного спуска является простейшим методом
прямого поиска.
Рассмотрим функцию двух x
2
переменных. Ее линии уровня
показаны на рис. 1.21, а минимум лежит в точке (x1* , x2* ). Из
C
точки A произведем поиск миD
нимума вдоль направления
оси х1 и, таким образом, наB
A
ходим точку B, в которой касательная к линии постоянx1
ного уровня параллельна оси
х1. Затем, производя поиск из
Рис. 1.21
точки B в направлении оси х2,
получаем точку C, производя поиск параллельно оси х2, получаем точку D, и т. д. Таким образом, мы приходим к оптимальной
точке. Очевидным образом эту идею можно применить для функции n-переменных.
Теоретически данный метод эффективен в случае единственного минимума функции. Но на практике он оказывается слишком медленным. Поэтому были разработаны более сложные методы, использующие больше информации на основании уже полученных значений функции.
1.5.2. Метод Хука — Дживса (метод конфигураций)
В данном методе производится исследование окрестности точки (с циклическим изменением переменных). После того как найдено приемлемое направление (уменьшение значения функции),
производится движение при постепенно увеличивающемся шаге (устанавливается конфигурация или тренд поиска). Это продолжается до тех пор, пока поиск в этом направлении уменьшает
значение целевой функции. Если в этом направлении не удаётся найти точку с меньшим значением функции f(x), размер шага уменьшается. Если и при этом не происходит уменьшение значения целевой функции, предпринимается новое обследование
окрестности точки.
Алгоритм прямого поиска Хука — Дживса включает в себя
два основных этапа:
1. Исследующий поиск (циклическое изменение переменных),
который ориентирован на выявление характера локального пове61
дения целевой функции и определения направлений вдоль «оврагов».
2. Поиск
����������������������������������������������������
по образцу, который использует информацию, полученную в результате исследующего поиска для движения по
«оврагам».
Исследующий поиск
Задаются начальные значения вектора X и величина шага ∆Х,
которая может быть различной для разных координатных направлений и может изменяться в процессе поиска.
Вычисляется значение целевой функции f(x) в базисной точке
(в данном случае — в исходной). Затем в циклическом порядке
изменяется каждая переменная (каждый раз только одна) на выбранные величины приращений, пока все переменные не будут
изменены таким образом.
(1)
Вычисляется функция f (x) .
В частности, например, x1(0) изменяется на величину Dx1(0)
так, что x1(1) = x1(0) + Dx1(0) . Если целевая функция не уменьшается, то x1(1) = x1(0) - Dx1(0) и опять вычисляется значение f(x(1)). Если новое значение функции меньше f(x(0)), для последующего поиска оставляется значение x1(1) = x1(0) - Dx1(0) . Если функция не
уменьшается, то x1(1) = x1(0) . Затем аналогичные действия производят по отношению ко всем переменным. В результате первого
исследующего поиска получается текущая базисная точка. Если
все изменения переменных не привели к улучшению целевой
функции после одного (или более) исследующего поиска, значения приращений уменьшаются, пока не будет найдено удачное
направление или ∆x не станет меньше заданной погрешности.
Исходная и текущая базисные точки определяют некоторое
направление минимизации, которое может привести к успеху.
Вдоль этого направления проводится поиск по образцу.
Поиск по образцу
Поиск по образцу заключается в реализации единственного
шага из полученной текущей базисной точки вдоль прямой, соединяющей эту точку с предыдущей базисной точкой. Новая точка
образца определяется по формуле:
x(pk+1) = x(k) + (x(k) - x(k-1) ).
62
Это расчётная вспомогательная точка: x(k–1) — предыдущая базисная точка (БТ); x(k) — текущая базисная точка (ТБ); xp(k + 1) —
расчётная точка, построенная по образцу; x(k + 1) — следующая
(новая текущая базисная точка).
В расчетной точке xp(k + 1) производится исследующий поиск.
Без его завершения нельзя установить успех или неудачу поиска по данному образцу. Если значение f(x(k + 1)) не уменьшается по
сравнению с f(x(k)), значит, поиск по образцу неудачен и осуществляется возврат в базисную точку x(k–1), в которой проводится исследующий поиск для определения нового удачного направления.
Если значение f(x(k + 1)) уменьшается по сравнению с f(x(k)), значит
поиск по образцу удачен. Текущая базисная точка x(k) становится
базисной точкой, точка x(k + 1) становится текущей базисной точкой. Наличие пары этих точек (БТ — ТБ) позволяет построить новое направление минимизации функции.
Проверка окончания поиска производится следующим образом:
— после каждого исследующего поиска и поиска по образцу
(если уменьшение значения целевой функции меньше заданного
ξ, поиск считается неудачным);
— после неудачного исследующего поиска при уменьшении ∆x
проверяется ∆x < ξ.
Алгоритм метода Хука — Дживса
1. Определить начальную точку x(0), приращения ∆x, коэффициент уменьшения шага a > 1, параметр окончания поиска ξ > 0.
2. Провести исследующий поиск.
3. Проверить,
�������������������������������������������������������
удачен ли исследующий поиск (найдена ли точка с меньшим значением целевой функции). Если да — перейти
к п. 5., если нет — продолжить.
4. Проверить, окончен ли поиск ||Dx|| < ξ. Если да — прекратить
поиск, текущая точка аппроксимирует точку оптимума x*, если
нет — уменьшить приращения по формуле
D
Di = i , i = 1, …, N.
αi
и перейти к п. 2.
5. Провести поиск по образцу x(pk+1) = x(k) + (x(k) - x(k-1) ).
6. Провести исследующий поиск, используя xp(k + 1) в качестве
базисной точки. Получаем точку x(k + 1).
7. Проверить, выполняется ли неравенство f(x(k + 1)) = f(x(k)).
Если да — положить x(k–1) = x(k); x(k) = x(k + 1); текущую базисную
63
точку отправить в базисную; новую точку — в текущую базисную, перейти к п. 5; если нет — перейти к п. 4.
Достоинства метода:
Метод обладает следующими возможными преимуществами
перед более сложными методами прямого поиска и методами, использующими первые производные и вторые производные целевой функции:
— не требуется знания целевой функции в явном виде;
— легко могут быть учтены ограничения, накладываемые на
отдельные переменные или на область поиска;
— ����������������������������������������������������
имеет несложную стратегию поиска, относительную простоту вычислений и невысокий уровень требований к объёму памяти ЭВМ.
Недостатки метода:
Когда линии уровня целевой функции обладают острыми
углами или очень изогнуты, метод Хука — Дживса может закончить работу, не дойдя до оптимальной точки или выродиться
в бесконечную последовательность проведения исследующего поиска (зацикливание).
Подходы к усовершенствованию метода Хука — Дживса:
— ���������������������������������������������������
введение дополнительных правил увеличения, уменьшения приращений переменных;
— ����������������������������������������������������
введение дополнительных правил уменьшения или увеличения шага при движении по образцу;
— изменение способа получения направлений поиска в части
исследующего поиска, например введение системы ортогональных направлений поиска.
1.5.3. Метод Розенброка
Метод Розенброка имеет сходство с этапом исследующего поиска метода Хука — Дживса. Однако вместо непрерывного поиска
по координатам, соответствующим направлениям независимых
переменных, после каждого цикла покоординатного поиска строится новая ортогональная система направлений поиска. Причём
весь шаг предыдущего этапа принимается в качестве первого блока при построении новой системы направлений.
Метод Розенброка определяет местонахождение точки x(k + 1),
используя последовательные одномерные поиски, начиная с исходной точки x(k), вдоль системы ортогональных направлений
S1(k) , S2(k) , ..., Sn(k) .
64
Пусть S1(k) , S2(k) , ..., Sn(k) . — единичные векторы; k — номер этапа поиска.
На начальном этапе задается начальная точка x(0), l — вектор приращений, ξ — точность вычислений. На начальном этапе
k = 0, направления S1(k) , S2(k) , ..., Sn(k) .обычно берутся параллельными осям x1, ..., xn.
Рассмотрим k-й этап, и пусть x0(k) = xn(k-1) представляет собой
точку, из которой следует начать поиск, а l1, ..., ln — соответствующие длины шагов, связанные с направлениями S1, ..., Sn .
Поиск начинается из x0(k) путём увеличения x0(k) на шаг l1
в направлении S1. Все остальные переменные не изменяются.
Вычисляется значение функции f (x0(k) + λ1(k) S1(k) ).
1. Если f (x0(k) + λ1(k)S1(k) ) £ f (x0(k) ) :
— шаг считается успешным;
— полученная пробная точка заменяет точку x0(k) ;
—  λ1(k) умножается на множитель a > 0;
— аналогично производятся вычисления значения функции
последовательно по всем направлениям S2, ..., Sn.
2. Если f (x0(k) + λ1(k)S1(k) ) > f (x0(k) ) :
— шаг считается неудачным;
—  x0(k) не заменяется;
—  λ1(k) умножается на множитель b < 0 и аналогично по отношению к остальным переменным.
Розенброк предложил в общем случае брать a = 3, b = –0,5.
После того как пройдены все направления S1(k) , S2(k) , ..., Sn(k) ,
снова возвращаются к первому направлению S1(k) и вводят возмущение с длиной шага al(k) или bl(k) в зависимости от результата
предыдущего вычисления значения целевой функции. Эти итерации проводят до тех пор, пока по каждому из направлений за
успехом не последует неудача. При этом k-й этап поиска заканчивается. Последняя полученная точка становится начальной точкой следующего этапа x0(k+1) = xn(k) . Нормированное направление
S1(k+1) берётся параллельным (x0(k+1) - x0(k) ), а остальные направления выбираются ортогональными друг к другу.
65
Пусть Λ (ik) — алгебраическая сумма всех успешных шагов
(суммарное перемещение) в направлении Si(k) на x-м этапе. Определим n векторов A1, ..., An следующим образом:
A1(k) = Λ1(k) S1(k) + Λ 2(k) S2(k) + ... + Λn(k) Sn(k) ,
A2(k) = Λ 2(k) S2(k) + ... + Λn(k) Sn(k) ,
An(k) = Λ n(k) Sn(k) .
Итак, вектор A1(k) является вектором перехода из x0(k) в x0(k+1) ;
A2(k) — вектор перехода из x1(k) в x1(k+1) ; A1(k) — это полное пере-
мещение с k-го этапа на (k + 1)-й этап; A2(k) — полное перемещение, но без учёта продвижения, сделанного во время поиска в направлении S1(k) , и т. д.
Новые направления определяются следующим образом. Первый единичный вектор S1(k+1) из нового направления на (k + 1)-м
этапе совпадает с направлением результирующего перемещения
на предыдущем этапе A1(2) . Остальные ортогональные векторы
-м этапе строятся по следующим форS1(k+1) , ..., Sn(k+1) на (k + 1)�����������������������������������
мулам:
S1(k+1) =
A1(k)
A1(k)
,
B1(k) = A2(k) - [(A2(k) )T S1(k+1) ]S1(k+1) ,
S2(k+1) =
B2(k)
B2(k)
,
n-1
Bn(k) = An(k) -... å [(An(k) )T S(ik+1) ]S(ik+1) ,
i=1
Sn(k+1) =
где
66
— норма.
Bn(k)
Bn(k)
,
Та же процедура поиска, которая проводилась на k-м этапе, повторяется затем на k + 1-м �������������������������������������
этапе. Поиск заканчивается, когда изменения значений функции и компонент вектора x будут меньше
заданной точности или |A1| меньше какой-либо величины.
Дэвис, Свенн, Кэмпи модифицировали поиск Розенброка в направлениях S1(k) , S2(k) , ..., Sn(k) путём отыскания минимума f(х)
в каждом из направлений S1(k) , S2(k) , ..., Sn(k) , с помощью методов
одномерного поиска. Начиная с x0(k) , определяется λ1*(k) в направлении S1(k) так, чтобы значение f (x0(k) + λ1*(k)S1(k) ) становилось минимальным. Затем принимается x1(k) = x0(k) + λ1*(k)S1(k) .
k)
Начиная с x1(k) , определяется λ*(
в направлении S2(k) так, что2
k) (k)
бы f (x1(k) + λ*(
2 S2 ) было минимальным, и т. д.
В случае модифицированного метода Розенброка (с использо(k)
ванием алгоритма ДСК) после каждого этапа расстояние Λ i
сравнивается с размером шага δ (ik) , использованного для получе-
ния Λ (ik) в линейном поиске. Если Λ (ik) < δ (ik) , то δ (ik) делят на 10
и дальнейший поиск осуществляется в прежних направлениях с
новым di, иначе — поиск продолжается.
Метод Розенброка эффективно применяется для функций,
имеющих узкий искривлённый гребень. Поиск по n взаимоортогональным направлениям обеспечивает то, что результирующее
направление стремится расположиться вдоль оси оврага.
П р и м е ч а н и е . Пусть Ai — результирующее расстояние
(алгебраическая сумма), на которое мы подвинулись в i-м направлении Si. Рассмотрим равенство:
é A1 A2 ... An ù
ê
ú
ê 0 A2 ... An ú
ê
ú,
[q1, ..., qn ]= [S1, ..., Sn ]´ ê
ú
...
...
...
...
ê
ú
ê0
0 ... An úûú
ëê
где qn — представляет собой вектор, сопрягающий точку, в которой мы находимся в начале текущего цикла поиска, с точкой, в
которую мы попадём к концу текущего цикла поиска.
1.5.4. Поиск по деформируемому многограннику
(метод Нелдера — Мида)
Метод Нелдера – Мида использует возможность растяжения
или сжатия симплекса при его отражении.
67
При расчётах по методу Нелдера — Мида используются вершины симплекса x(h), x(g), x(l):
— x(h) — вершина, которой соответствует максимальное значение целевой функции f(x(k));
— x(g) — вершина, которой соответствует следующее по величине значение целевой функции после f(x(k));
— x(l) — вершина, которой соответствует наименьшее значение целевой функции.
Отражение вершины симплекса производится вдоль прямой
x = x(h) + l(xc – x(h)). Введём коэффициент изменения симплекса q: x = x(h) + (1 + q)(xc – x(h)); q = 1 — нормальное отражение (a);
–1 ≤ q ≤ 1 — сжатие симплекса (b); q > 1 — растяжение симплекса (g).
Алгоритм метода Нелдера — Мида
1. Построить исходный симплекс.
2.���������������������������������������������������
 Вычислить значение целевой функции в вершинах симплекса.
3. Определить вершины x(h), x(g), x(l).
4. Провести симметричное (пробное) отражение. Вычислить
f(xнов).
5. Определить коэффициент q (рис. 1.22):
а) f(x(1)) < f(xнов) < f(x(g)) — нормальное отражение q = a = 1
(симметричное).
б) f(xнов) ≤ f(x(l)) — расстояния q = g > 1.
f(xíîâ)
xíîâ
(h)
f(x )
(h )
X
max
θ= β< 0
f(xíîâ)
xíîâ
f(x(g) )
X(g)
2-é ïîñëå
f(xíîâ)
θ = β> 0
Редукция
Рис. 1.22
68
f(xíîâ)
(l )
f(x )
xíîâ
(l )
f(xíîâ)
xíîâ
X
min
θ = α =1
θ= γ > 1
П р и м е ч а н и е. Редукция — уменьшение размеров симплекса в 2 раза, приняв в качестве базисной точку, соответствующую минимальному значению целевой функции. Вершины нового уменьшенного симплекса вычисляют по формуле
xi = x(1) + 0,5(xi – x(1)).
в) f(x(g)) ≤ f(xнов) < f(x(h)) — сжатие.
q = b; 0 < b < 1; f(xнов) ≥ f(x(k)), q = b; –1 < b < 0;
xнов = x(h) + a(xc – x(h)) = 2xc – x(h)
В качестве удовлетворительных значений предполагаются
b = 0,5, a = 1, g = 2.
4. Произвести отражение точки x(h) при определённом (предыдущем пункте) q.
5. Проверить
��������������������������������������������������������
окончание поиска либо после пробного, либо после окончательного отражения.
Критерий окончания поиска, использованный Нелдером —
Мидом, состоит в проверке условия
ìï 1 n+1
ü
ï
é f (x(k) ) - f (x(k) )ù 2 ïï £ ξ,
í
ý
å
c
ê
ú
i
ë
û ïï
ïï n + 1
i=1
î
þ
где k — номер итерации; f (xc(k) ) — значение целевой функции в
центре тяжести.
Модификации метода Нелдера — Мида:
— �����������������������������������������������������
введение допустимых проверок на окончание поиска, например, после пробного отражения;
— введение допустимых проверок значения целевой функции.
После проведения отражения значение целевой функции в отражённой точке, например, после растяжения превосходит значение f(x(h)).
Достоинства метода:
Деформируемый многогранник в противоположность жёсткому симплексу адаптируется к топографии целевой функции, вытягиваясь вдоль длинных наклонных плоскостей, изменяя направление в изогнутых впадинах и сжимаясь в окрестности минимума.
Результаты численных экспериментов показали, что метод
Нелдера — Мида обладает достаточной эффективностью и высокой надёжностью в условиях наличия случайных возмущений
или ошибок при определении значений целевой функции.
Методы прямого поиска Хука — Дживса и Нелдера — Мида
относятся к категории эвристических поисков. Метод Пауэлла
69
основан на теоретических результатах и ориентирован на решение задач с квадратичными функциями. Для таких задач метод
сходится за конечное число итераций. Если есть возможность реализовать более точный алгоритм, то предпочтение следует отдать методу Пауэлла, который явно превосходит рассмотренные
эвристические методы.
1.6. Градиентные методы
Градиентные методы используют значения первых производных целевой функции. На k-м этапе переход из точки в точку
определяется следующей итерационной процедурой:

x(k+1) = x(k) + Dx(k) = x(k) + λ (k)S(k) = x(k) + λ*(k)S(k) ,

где ∆x(k) — вектор перехода из точки x(k) в точку x(k + 1); S(k) —
единичный вектор в направлении ∆x(k); S(k) — вектор в направлении ∆x(k); l(k), l*(k) — длина шага (скаляр).
Определение l(k), S(k) связано с особенностями применяемого
метода.
1.6.1. Метод наискорейшего спуска (метод Коши)
Так как градиент целевой функции f(x) есть вектор в направлении наибольшего локального увеличения функции, следовательно, в задачах минимизации функции нужно двигаться в направлении, противоположном градиенту, т. е. в направлении антиградиента (наискорейшего спуска). Антиградиент в точке направлен
в сторону уменьшения целевой функции f(x) и ортогонален линии
уровня в точке.
Антиградиент –∇f(x) — направление, противоположное градиенту
функции в точке (направление наискорейшего спуска), а

S(k) — направление, противоположное нормированному (единичному) градиенту функции в точке:

Ñf (x(k) )
S(k) = .
Ñf (x(k) )
Применяют два метода выбора длины шага:
1) величина l(k) фиксируется или меняется от шага к шагу:
x(k+1) = x(k) - λ (k)
70
Ñf (x(k) )
Ñf (x(k) )
.
2) �������������������������������������������������������
при переходе из точки в точку целевая функция минимизируется по l с помощью методов одномерного поиска:
x(k+1) = x(k) - λ*(k) Ñf (x(k) ).
Для выпуклой целевой функции, имеющей производные до
3-го порядка, этот метод сходится при k → ∞ (линейная скорость
сходимости). Скорость сходимости может быть слишком медленной вследствие малости значения ∇f(x) в окрестности минимума.
При этом нельзя ускорить движение к точке минимума. Данный
метод используется как начальная процедура в задачах минимизации.
В случае минимизации квадратичной целевой функции градиент в точке x(k + 1) ортогонален предыдущему направлению поиска S(k). Если в методе наискорейшего спуска выбирается фиксированное значение скаляра l или величина l переменная, то она
должна тщательно контролироваться во избежание как неожиданного роста f(x), так и чрезмерного числа шагов, необходимого для достижения решения. Первое произойдет, если l слишком
велико, а второе — если l очень мало или настолько велико, что
приводит к колебаниям возле точки минимума.
На рис. 1.23 показана зигзагообразная траектория оптимизации при использовании метода наискорейшего спуска. Следовательно, величина l должна уменьшаться при приближении
к точке минимума. Один из возможных методов контроля l предполагает установление некоторого критерия для l, основанного на
использовании угла q между последовательными векторами шагов в процессе минимизации. Например, если этот угол становится
Линии уровней f(x)
x2
θ
x2(1)
x (2)
x (3)
θ
x(1 )
x (0)
x2(0)
x1(1)
x1(0)
x1
Рис. 1.23
71
меньше, чем некоторая заданная величина, то величина l должна
быть умножена на некоторую заранее определенную константу a;
если угол становится больше, то l нужно разделить на a.
Алгоритм метода наискорейшего спуска
Исходные данные: начальная точка x(0); параметры окончания e1, e2.
1. Задать координаты начальной точки x(k), k = 0.
2. Вычислить значение ∇f(x(k)).
3. Проверить выполнение неравенства
Ñf (x(k) ) £ ε1.
Если неравенство выполняется, поиск окончен, иначе перейти
к п. 4.
4. Вычислить l*(k) при минимизации функции (используется
одномерный метод поиска), e2 — параметр окончания одномерного метода поиска.
5. Определить точку x(k + 1):
x(k+1) = x(k) - λ*(k) Ñf (x(k) ).
6. Проверить выполнение неравенства
x(k+1) - x(k)
x(k)
£ ε1.
Если неравенство выполняется, поиск окончен, иначе k = k + 1,
перейти к п. 2.
Пример
Рассмотрим задачу: минимизировать
f (x) = x12 + 25x22 .
Градиент целевой функции f(x) в начале поиска не направлен
в точку минимума, поскольку коэффициенты при переменных x1
и x2 различны. На рис. 1.24 x(0), x(1), x(2), x(3) показывают траекторию движения при фиксированном l, а последовательность
x(0) , x (1) , x (2) — при минимизации f(x) по l на каждом шаге.
Путем замены переменной y = 5x2 минимизируемая функция
принимает вид
f (x) = x12 + y2 ,
72
x2
x (0)
30
10
x (1)
x (2)
–5
–4
–3
–2
0
–1
x
(3)
1
2
3
4
5
x1
f (x) = x12 + 25x22
Рис. 1.24
y
x (0)
10
x (1)
S(0)
50
5
30
10
–10
–5
0
5
10
x
–5
f (x) = x12 = y2
Линии уровней
–10
Рис. 1.25
и вектор-градиент в точке x1 = 2, y = 5x2 = 10 действительно направлен в точку минимума, поскольку коэффициенты при переменных x1 и x2 теперь одни и те же (рис. 1.25).
Как видно из приведенного примера, основной трудностью
при использовании метода наискорейшего спуска является его
зависимость от выбора масштаба оптимизируемых переменных.
73
Проекция Ñf ( x)
на поверхность f ( x)
f(x)
f(x*)
Ñf( x)
x2
x1
Рис. 1.26
Если гиперпространство очень вытянуто так, что образует «хребет», или «овраг» (плохо обусловленная матрица Гессе), процедура наискорейшего спуска сходится очень медленно.
На рис. 1.26 показана типичная зигзагообразная траектория
оптимизации при использовании данной процедуры в узкой впадине. Направление наискорейшего спуска оказывается почти
ортогональным наилучшему направлению достижения минимума. В таких случаях необходимо использовать информацию
о вторых производных.
1.6.2. Сопряженность и сопряженные направления
Термин «метод сопряженных градиентов» — один из примеров того, как бессмысленные словосочетания, став привычными,
воспринимаются сами собой разумеющимися и не вызывают никакого недоумения. Дело в том, что, за исключением частного и
не представляющего практического интереса случая, градиенты не являются сопряженными, а сопряженные направления не
имеют ничего общего с градиентами. Название метода отражает
тот факт, что данный метод отыскания безусловного экстремума
сочетает в себе понятия градиента целевой функции и сопряженных направлений.
Квадратичная целевая функция n независимых
��������������������
переменных, имеющая минимум (положительно определенная матрица
74
Гессе — H), может быть минимизирована за n шагов (или менее),
если эти шаги предпринимаются в сопряженных направлениях.
Система n линейно-независимых направлений поиска S(0), S(1),
…, S(n–1) называется сопряженной по отношению к некоторой положительно определенной (квадратной) матрице Q, если
S(i)T Q S( j) = 0, 0 £ i ¹ j £ n -1.
Рассмотрим квадратичную аппроксимацию целевой функции
f(x) — разложение в ряд Тейлора, отбросив все члены разложения
третьего порядка и выше
1
f (x) = f (x(k) ) + Ñf (x(k) )T Dx + DxT Ñ2 f (x(k) )Dx,
2
где f(x) — аппроксимирующая
функция
переменной x в точке x(k);
k
x(k) = x – x(k) = lkSk; S — единичный вектор в направлении Dx;



1 
f (xk + λ kSk ) = f (x(k) ) + Ñf (x(k) )T λ kSk + λ kSkTÑ2f (x(k) )λ kSk .
2
При определении точки x(k + 1) функция f(x) может быть минимизирована путем вычисления l из уравнения

df (xk + λ kSk )
= 0,
dλ



Ñf (x(k) )T Sk + SkTÑ2f (x(k) )λ kSk = 0,
тогда

Ñf (x(k) )T Sk
λ k = -  kT 2
 .
S Ñ f (x(k) )Sk
После определения точки x(k + 1) должно быть выбрано новое
сопряженное направление поиска.
Метод сопряженного градиента Флетчера — Ривса
В методе сопряженного градиента Флетчера — Ривса строится
последовательность направлений поиска S, являющихся линейными комбинациями:
— –∇f(x(k)) — текущего направления наискорейшего спуска;
— S(0), S(1), …, S(n–1) — предыдущих направлений поиска:
k-1
S(k) = -Ñf (x(k) ) + å γ (i) S(i) ,
i=1
S(0) = –∇f(x(0)).
75
Весовые коэффициенты g(i) выбираются таким образом, чтобы
направление S(k) было Н-сопряжено со всеми построенными ранее направлениями поиска. Тогда, учитывая сопряженность направлений, получается, что для вычисления нового направления
поиска в точке x(k) используются значения только текущего и предыдущего градиентов. Все весовые множители, предшествующие
g(k), а именно g(k–1), g(k–2), …, оказываются
��������������������������������
нулевыми. Общая формула для направлений поиска выглядит следующим образом:
S(k) = -Ñf (x(k) ) + S(k-1)
= -Ñf (x
(k)
)+S
(k-1)
Ñf (x(k) )Τ Ñf (x(k) )
Ñf (x(k-1) )Τ Ñf (x(k-1) )
2
Ñf (x(k) )
Ñf (x
=
(k-1) 2
.
)
Алгоритм метода сопряженного градиента Флетчера — Ривса
Исходные данные: начальная точка x(0); параметр окончания e.
1. Вычислить в точке x(0):
S(0) = –∇f(x(0)), k = 0.
2. На k-м шаге с помощью методов одномерного поиска в направлении S(k) находится минимум целевой функции f(x) (по l
определяется длина шага l(k)).
3. Определить точку x(k + 1):
x(k + 1) = x(k) + lkS (k).
4. Вычислить значения f(x(k + 1)) и ∇f(x(k + 1)).
5. Вычислить направление S(k + 1):
S(k+1) = -Ñf (x(k+1) ) + S(k)
= -Ñf (x(k+1) ) + S(k)
Ñf (x(k+1) )Τ Ñf (x(k+1) )
Ñf (x(k) )Τ Ñf (x(k) )
Ñf (x(k+1) )
Ñf (x(k) )
2
=
2
.
6. Проверить выполнение неравенства
S(k+1) á ε.
Если неравенство выполняется, поиск окончен, иначе — перейти к п. 2.
76
В качестве критерия окончания одномерного поиска обычно
используется условие:
∇f(x(k + 1))TS(k) = 0.
Если f(x) — квадратичная функция, для нахождения точки
минимума требуется определить (n – 1) направлений, провести n
поисков вдоль прямой (при отсутствии ошибок округления). Если
f(x) неквадратичная функция, количество направлений и поисков возрастает.
Достоинства метода:
1. Не требуется обратимости матрицы.
2. ����������������������������������������������������
Невысокий уровень требований к объему памяти ЭВМ позволяет решать задачи большой размерности.
Недостатки метода:
Метод разработан в предположении о квадратичности целевой функции и отсутствии ошибок округления при одномерном
поиске.
Существуют методы, где сопряженные направления определяются без учета одного или обоих из указанных выше предположений. Например, метод Полака и Рибьера. Этот метод основан на точной процедуре поиска вдоль прямой и на более общем
предположении об аппроксимации целевой функции. Метод сопряженных направлений Полака — Рибьера использует следующие соотношения:
x(k + 1) = x(k) + lkS (k),
S(x(k)) = –∇f(x(k)) + g(k)S(x(k–1)),
где
éÑf (x(k) ) -Ñf (x(k-1) )ù Τ Ñf (x(k) )
ê
úû
.
γ (k) = ë
2
Ñf (x(k-1) )
Для повышения надежности алгоритма, т. е. уменьшения вероятности построения линейно-зависимых направлений, предлагается после реализации каждой серии из n или n + 1 шагов возвращаться к начальной итерации алгоритма, в которой
S(x) = –∇f(x).
Метод Дэвидсона — Флетчера — Пауэлла
Данный метод не требует вычисления обратной матрицы Гессе. Матрица направлений А вычисляется таким образом, чтобы
77
для квадратичной целевой функции в пределе после n шагов она
равнялась H–1. Исходная матрица A обычно выбирается в виде
единичной матрицы A(0) = I (но может быть и любой симметрической положительно определенной матрицей), так что исходное
направление минимизации — это направление наискорейшего
спуска. В ходе оптимизации происходит постепенный переход от
направления наискорейшего спуска к ньютоновскому (на соответствующих этапах минимизации используются преимущества
каждого из этих подходов).
Алгоритм метода Дэвидсона — Флетчера — Пауэлла
Исходные данные: начальная точка x(0); параметры окончания e1, e2.
1. Задать координаты начальной точки x(k), k = 0. Вычислить
значение ∇f(x(k)). Положить A(0) = I.
2. Вычислить l*(k) при минимизации функции f[x(k)–l*(k)
A(x(k))∇f(x(k))] (используется одномерный метод поиска).
3. Вычислить точку x(k + 1):
x(k + 1) = x(k) – l*(k)A(x(k))∇f(x(k)).
4. Вычислить f(x(k + 1)), ∇f(x(k + 1)):
Dg(k) = ∇f(x(k + 1)) – ∇f(x(k)),
Dx(k) = x(k + 1) – x(k).
5. Проверить выполнение неравенств:
1)
f (x(k+1) ) - f (x(k) )
f (x(k) )
ñ ε1 или Dg(k) ñ ε1 , если f(x) → 0;
Dxi(k)
ñ ε2i или Dxi(k) ñ ε2i , если xi → 0.
xi(k)
6. Если
���������������������������������������������������������
неравенство не выполняется, поиск окончен, иначе перейти к п. 6.
7. k = k + 1. Вычислить A(k):
2)
A(k) = A(k-1) +
Dx(k-1) Dx(k-1)
Ò
Ò
Dx(k-1) Dg(k-1)
Ò
-
A(k-1) Dg(k-1) Dg(k-1) A(k-1)
Ò
Dg(k-1) A(k-1) Dg(k-1)
.
Эта формула сохраняет свойство симметрии и положительной
определенности матриц. Таким образом, алгоритм обеспечивает убывание целевой функции от итерации к итерации. Перейти
к п. 2.
78
В методе Дэвидона — Флетчера — Пауэлла могут встречаться
отрицательные шаги (накопление ошибки). Для избежания этого
следует:
1) увеличить точность (увеличить количество значащих
цифр);
2) продолжить поиск с пересмотренной матрицей направлений
(замедление поиска).
1.6.3. Партан-методы
Партан-метод представляет собой сокращение от термина ����
parallel tangents (параллельные касательные). Рассмотрим общий
партан-алгоритм для случая квадратичной функции двух переменных (рис. 1.27). Р1 и Р2 — любые две точки плоскости. Сначала движемся из Р2 параллельно касательной к линии уровня
в точке Р1 до тех пор, пока не будет достигнут минимум функции f(x) в некоторой точке Р3. Касательные в Р1 и Р3 параллельны, а минимум f(x) находится на линии, проходящей через точки Р1 и Р3. Направления, полученные с помощью общего партаналгоритма, являются сопряженными.
x2
Касательная к линии уровня в P 1
P1
P3
P2
x1
Рис. 1.27
Партан-метод наискорейшего спуска
В данном методе направления выбираются по направлению,
противоположному градиенту. Партан-метод наискорейшего спуска имеет конечную сходимость (рис. 1.28).
Алгоритм итерационного партан-метода
æx(0) ö÷
ç
Исходные данные: начальная точка x(0) = çç 1 ÷÷÷; параметр
çç (0) ÷÷
èx2 ø
окончания e.
79
1. ��������������������������������������������������������
Определяется направление отрицательного градиента в точке x(0).
2. Функция f(x)��������������������������������������������
минимизируется вдоль этого направления, исходя из x(0), получаем точку x(1).
3. Определяется
��������������������������������������������������������
направление отрицательного градиента в точке x(1).
4. Функция f(x)��������������������������������������������
минимизируется вдоль этого направления, исходя из x(1), получаем точку x(2).
5. Точки x(0) и x(2) соединяются прямой, вдоль которой производится минимизация функции f(x), получаем точку x(3).
6. �����������������������������������������������������
Проверяется выполнение критерия окончания поиска, например Ñf (x) £ ε.
Если неравенство не выполняется, процедура повторяется с
начальной точкой x(3). Если задача содержит n переменных, следует сделать n градиентных шагов, а затем соединить x(0) с x(n + 1).
Более эффективным является модифицированный партан-метод.
Он начинается, как и итерационный метод. Проводятся первые
5 шагов итерационного партан-метода, которые продолжаются
следующим образом:
7. ��������������������������������������������������������
Определяется направление отрицательного градиента в точке x(3).
8. Функция f(x)��������������������������������������������
минимизируется вдоль этого направления, исходя из x(3), получаем точку x(4).
9. Точки x(1) и x(4) соединяются прямой, вдоль которой производится минимизация функции f(x), получаем точку x(5).
x2
x (4)
x
(n)
x(3)
x(2)
Рис. 1.28
80
x1
x (0)
10. �����������������������������������������������������
Проверяется выполнение критерия окончания поиска, например
Ñf (x) £ ε.
Если неравенство не выполняется, процедура повторяется с начальной точкой x(5).
81
ГЛАВА 2. Условная оптимизация
Конечной целью при изучении оптимизационных задач является построение эффективных вычислительных схем для решения практических задач. Выпуклый анализ, включающий в себя теории выпуклых множеств выпуклых функций, играет важную роль при изучении области определения задач оптимизации.
Условия оптимальности и теория двойственности могут использоваться как для получения критериев, отличающих оптимальное решение, так и для обоснования вычислительных методов.
2.1. Выпуклые множества
О п р е д е л е н и е 1 . Непустое множество X ⊂ Rn называется выпуклым, если lx1 + (1 – l)x2 ∈ X при всех x1, x2 ∈ X, l ∈ [0, 1],
т. е. если X вместе с любыми своими двумя точками x1 и x2 содержит соединяющий их отрезок.
Пустое множество считается выпуклым. Однако в дальнейшем подразумевается, если не оговорено противное, что участвующие в рассмотрения множества непусты.
Примерами выпуклых множеств служат линейное подпространство, одноточечное множество, шар, отрезок, прямая, луч,
гиперплоскость, порождаемые ею полупространства, полиэдр.
Ниже указаны две простейшие операции над выпуклыми
множествами, результатом которых являются также выпуклые
множества.
Теорема 1. Пусть I — любое, конечное или бесконечное, множество индексов, Xi(i ∈ I) — выпуклые множества. Тогда их пересечение X = Ç Xi выпукло.
iÎI
Теорема 2. Пусть X1, …, Xm — выпуклые множества; a1, …,
am — любые числа.
Тогда множество
m
m
ïì
ïü
å αi Xi = ïíïx x = å αi xi , xi Î Xi , i = 1, ..., mïýï,
ïî
ïþ
i=1
i=1
называемое линейной комбинацией множеств X1, …, Xm, выпукло.
В частности, выпуклы суммы и разность выпуклых множеств
X1 и X2, т. е. множества X1 ± X1 = {xx = x1 ± x2, x1 ∈ X1, x2 ∈ X2}.
Важные подклассы выпуклых множеств образуют выпуклые
конусы и аффинные множества.
82
а)
б)
x
X
X
Рис. 2.1
О п р е д е л е н и е 2 . Множество X ⊂ Rn называется:
1) конусом, если lx ∈ X при всех x ∈ X, l ≥ 0, т. е. если X вместе
с любой своей точкой x содержит проходящий через неё луч с началом в нуле (рис. 2.1, а);
2) выпуклым конусом, если l1x1 ± l2x2 ∈ X при x1,x2 ∈ X, l1 ≥ 0,
l2 ≥ 0, т. е. если X одновременно является выпуклым множеством
и конусом (рис. 2.1, б).
О п р е д е л е н и е 3 . Множество X ⊂ Rn называется аффинным, если l1x1 + (1 – l)x2 ∈ X при всех x1,x2 ∈ X, l ∈ R, т. е. если X
вместе с любыми своими двумя точками x1 и x2 содержит проходящую через них прямую (рис. 2.2).
Аффинные множества имеют весьма простую структуру: они
представляют собой сдвиги линейных подпространств, или множества решений систем конечного числа линейных уравнений,
или пересечения конечного числа гиперплоскостей.
Теорема 3. Пусть X — аффинное множество в Rn. Тогда:
1) при любом x0 ∈ X множество L = X – x0 является линейным
подпространством, причём L не зависит от выбора x0 в X;
x0
x1
x2
0
X
L=X– x 0
Рис. 2.2
83
2) множество X можно представить в виде
X = {x ∈ RnAx = b} = {x ∈ Rn〈ai,x〉 = bi, i = 1, ..., m},
где A — матрица размера m×n со строками a1, …, am, b = (b1, …,
bm) ∈ Rm.
Указанное в условии 1) линейное подпространство L называется параллельным аффинному множеству X (рис. 2.2).
О п р е д е л е н и е 4 . Функция f, определённая на выпуклом
множестве x ⊂ Rn, называется выпуклой, если
f(lx1 + 1(1 – l)x2) ≤ lf(x1) + (1 – l)f(x2)). (2.1)
1
2
2
1
При всех x , x ∈ X, l ∈ [0,1]. Если при всех x ∈ X, x ≠ x2,
l ∈ (0,1) неравенство (2.1) выполняется как строгое, то f называется строго выпуклой на X.
О п р е д е л е н и е 5 . Функция f, определённая на выпуклом
множестве X ⊂ Rn, называется сильно выпуклой с константой q > 0
на X, если
(
)
( )
f λx1 + (1 - λ )x2 £ λf x1 + (1 - λ )f (x2 ) - θλ(1 - λ) x1 - x2
2
(2.2)
При всех x1, x2 ∈ X, l ∈ [0,1].
Простейшим примером сильно выпуклой функции является
2
функция f (x) = x на Rn. Легко проверить, что для неё неравенство (2.2) выполняется как равенство q = 1. Сильно выпуклая
функция, очевидно, строго выпукла. Обратное неверно. Например, функция f(x) = x4 строго, но не сильно выпукла на R.
О п р е д е л е н и е 6 . Функция f, определённая на выпуклом
множестве X ⊂ Rn, называется (строго, сильно) вогнутой на Х, если функция f (строго, сильно) выпукла на Х.
Теорема 4. Пусть f1, …, fm — выпуклые функции на выпуклом
множестве X, a1, …, am — неотрицательные числа.
m
Тогда функция f (x) = å α i fi (x) выпукла на Х.
i=1
Теорема 5. Пусть Х — выпуклое множество; Y — любое множество, ϕ(x,y) — функция на X×Y, выпуклая по х на Х при каждом y ∈ Y и ограниченная сверху по y на Y при каждом x ∈ X.
Тогда функция f(x) = supϕ(x,y) выпукла на Х.
Теорема 6. Пусть g1, …, gm — выпуклые функции на выпуклом множестве X ⊂ Rn, g = (g1, …, gm) — образованная из них
вектор-функция, ϕ — монотонно неубывающая выпуклая функция на выпуклом множестве U ⊂ Rm, причём g(X) ⊂ U–1.
Тогда функция f(x) = ϕ(g(x)) выпукла на Х.
84
2.2. Двойственность в задачах оптимизации
Использование понятия седловой точки позволяет установить
взаимосвязи между прямой и двойственной задачами в математическом программировании. Прежде чем рассмотреть общий
случай нелинейного программирования, исследуем эти взаимосвязи для линейного программирования.
Задача линейного программирования как задача Лагранжа
Пусть имеем пару двойственных задач линейного программирования вида:
Задача 1:
Задача 2:
minbTx;
Ax ≥ c,
(2.3)
maxcTy;
(2.5)
(2.4)
ATy ≤ b;
(2.6)
x ≥ 0.
x ≥ 0.
Для удобства запишем ограничения задачи 1 в виде
g(x) = с – Ах ≤ 0.
Для исследования связи прямой и двойственной задач введем
функции Лагранжа. Образуем функцию Лагранжа для задачи 1:
ϕ(x,Λ) = bTx + ΛT(c – Ax), Λ ≥ 0. (2.7)
Так как ограничения линейны, то выполняются условия регулярности теоремы Куна — Таккера. Следовательно, условия дополняющей нежесткости запишутся в виде:
L(c – Ax0) = 0, x0 ≥ 0, Λ ≥ 0. (2.8)
Образуем функцию Лагранжа для задачи 2, преобразовав ее
сначала в эквивалентную задачу минимизации min(–cTy). Для
этого введем множители Лагранжа µ = [µi], i = 1, m
ϕ(x,µ) =  –cTy + µT(ATy – b), µ ≥ 0.
Условия регулярности вновь, как и в задаче 1, выполняются,
и поэтому имеем
T
µT
0 ( A y0 - b), µ0 ≥ 0, y ≥ 0. (2.9)
Заметим, что если положить Λ = y, µ = x, то ϕ(x,y) =  – ϕ(y,x).
Таким образом, если переменные у трактовать как множители
Лагранжа в задаче 1, а х — как множители Лагранжа в задаче 2,
то целевые функции обеих задач будут равны по величине и противоположны по знаку.
85
Используя функцию Лагранжа ϕ(x,y), задачу 1 можно записать в виде
min éê ϕ(x, y) - yT Ñy ϕ(x, y)ùú
û x ë
(2.10)
при ограничениях
∇yϕ(x,y) = c – Ax ≤ 0, y ≥ 0.
(2.11)
Аналогично задачу 2 можно записать так:
min éêë ϕ(y, x) - xT Ñx ϕ(y, x)ùúû (2.12)
y
при ограничениях
∇xϕ(y,x) = (ATy – b) ≤ 0, y ≥ 0.
(2.13)
Воспользовавшись соотношением ϕ(x,y) = –ϕ(y,x), получим
для задачи 2 при ограничениях
∇xϕ(x,y) ≥ 0, x ≥ 0.
(2.14)
Используя соотношения (2.10)—(2.14), мы получаем следующее представление пары двойственных задач с помощью функции Лагранжа ϕ(x,y):
Задача 1:
Задача 2:
min[ϕ(x, y) – yT∇yϕ(x, y)] (2.15)
max[ϕ(x, y) – yT∇yϕ(x, y)] (2.17)
при ограничениях:
при ограничениях:
∇yϕ(x, y) ≤ 0,
∇yϕ(x, y) ≤ 0,
y ≥ 0.
(2.16)
x ≥ 0.
(2.18)
При этом для оптимальных решений (x0,y0) выполняются
условия, аналогичные (2.8), (2.9):
y0T∇yϕ(x0, y0) = 0… x0T∇xϕ(x0, y0) = 0 (2.19)
Справедлива следующая теорема, устанавливающая связь
между оптимальными решениями двойственных задач линейного программирования и седловой точкой [4].
Теорема 1. Вектор x0 является оптимальным решением ЛПзадачи 1 тогда и только тогда, когда существует такой вектор у,
что пара (x0, y0) является седловой точкой функции Лагранжа
ϕ(x, y), т. е. для всех x ≥ 0, y ≥ 0:
ϕ(x0, y) ≤ ϕ(x0, y0) ≤ ϕ(x, y0). (2.20)
Д о к а з а т е л ь с т в о . Докажем сначала достаточность условий теоремы. Пусть (x0, y0) седловая точка, тогда левое неравенство (2.19) выполняется при всех у > 0 и, в частности, при у = 0.
Однако поскольку с – АХ < 0, то левое неравенство
ϕ(x0, y) ≤ ϕ(x0, y0) ≤ ϕ(x, y0) (2.21)
86
будет возможно только в том случае, если y0T (c = Ax) = 0.
Учитывая это, из правого неравенства (2.19) получим
bT x0 + y0T (c - Ax0 ) = bT x0 £ bT x + y0T (c - Ax) £ bT x.
Таким образом, для всех допустимых х > 0 справедливо
bTx0 ≤ bTx, что доказывает оптимальность вектора x0.
2.3. Задача выпуклого программирования
Пусть
f(x1,x2,xn) → max;
(2.22)
gi (x1, x2 , xn ) £ bi (i = 1,m), (2.23)
xj ³ 0 ( j = 1,n),
(2.24)
где f и gi — некоторые функции n переменных x1, x2, xn.
Для решения сформулированной задачи в такой общей постановке не существует универсальных методов. Однако для отдельных классов задач, в которых сделаны дополнительные ограничения относительно свойств функций f и gi, разработаны эффективные методы их решения. В частности, ряд методов имеется
для решения задач нелинейного программирования (2.22)—(2.24)
при условии, что f — вогнутая (выпуклая) функция и область допустимых решений, определяемая ограничениями (2.23) и (2.24),
выпуклая.
О п р е д е л е н и е 1 . Функция f(x1, x2, xn), заданная на выпуклом множестве X, называется выпуклой, если для любых двух
точек X1 и X2 из X и любого 0 ≤ l ≤ 1 выполняется соотношение
f[lX2 + (1 – l)X1] ≤ lf(X2) + (1 – l)f(X1) (2.25)
О п р е д е л е н и е 2 . Функция f(x1,x2,xn), заданная на выпуклом множестве X, называется вогнутой, если для любых двух
точек X1, X2 из X и любого 0 ≤ l ≤ 1 выполняется соотношение
f[lX2 + (1 – l)X1] ≤ lf(X2) + (1 – l)f(X1) (2.26)
О п р е д е л е н и е 3 . Говорят, что множество допустимых
решений задачи (2.22)—(2.24) удовлетворяет условию регулярности, если существует по крайней мере одна точка Xi, принадлежащая области допустимых решений такая, что gi < bi (i = 1,m).
О п р е д е л е н и е 4 . Задача (2.22)—(2.24) называется задачей выпуклого программирования, если функция f(x1, x2, xn) яв87
ляется вогнутой (выпуклой), а функции gi (X)(i = (1 = 1,m) — выпуклыми.
Теорема 2. Любой локальный максимум (минимум) задачи
выпуклого программирования является глобальным максимумом (минимумом).
О п р е д е л е н и е 5 . Функцией Лагранжа задачи выпуклого
программирования (2.22)—(2.24) называется функция
m
L(x1, x2 , ..., xn ; y1, y2 , ..., ym ) = f (x1, x2 , ..., xn ) + å yi ,
i=1
[bi – gi(x1, x2, xn)],
где y1, y2, …, ym — множители Лагранжа.
0
)
О п р е д е л е н и е 6 .Точка (X0 ;Y0 ) = (x10 , x10 , ..., xn0 ; y10 , y20 , ..., ym
2
называется седловой точкой функции Лагранжа, если
(
)
0
0
L x1, x2 , ..., xn ; y10 , y20 , ..., ym
£ L(x10 , x10 , ..., xn0 ; y10 , y20 , ..., ym
)£
£ L(x10 ,
x20 ,
2
...,
2
xn0 ; y1 , y2 ,
..., ym )
для всех xi ³ 0( j = 1,n) и yi ³ 0(i = 1,m).
Теорема 3. (Куна — Таккера). Для задачи выпуклого программирования (2.22)—(2.24) множество допустимых решений, которое обладает свойством регулярности X0 = (x10 , x10 , ..., xn0 ), яв2
ляется оптимальным планом тогда и только тогда, когда суще0
ствует такой вектор Y0 = (y10 , y20 , ..., ym
) (yi0 ³ 0, i = 1,m), что
(X0;Y0) — седловая точка Лагранжа.
Если предположить, что целевая функция f и функция gi непрерывно дифференцируемы, то теорема Куна — Таккера может
быть дополнена аналитическими выражениями, определяющими необходимые и достаточные условия для того, чтобы точка
(X0;Y0) была седловой точкой функции Лагранжа, т. е. являлась
решением задачи выпуклого программирования. Эти выражения
имеют следующий вид:
¶L0
(2.27)
£ 0( j = 1,n),
¶x j
¶L
(2.28)
xj0 0 = 0( j = 1,n),
¶xj
(2.29)
xj0 ³ 0( j = 1,n), 88
) = (x10 , x10 ,
2
¶L0
³ 0(i = 1,m),
¶xi
¶
L
yi0 0 = 0(i = 1,m),
¶xi
yi0 ³ 0(i = 1,m),
(2.30)
(2.31)
(2.32)
¶L0
¶L0
и
— значения соответствующих частных произ¶xi
¶xj
водных функции Лагранжа, вычисленных в седловой точке. Всем
отмеченным выше требованиям, позволяющим записать необходимые и достаточные условия седловой точки (X0;Y0) функции Лагранжа в виде выражений (2.27)—(2.28), удовлетворяет сформулированная ниже задача квадратичного программирования. Прежде
чем сформулировать эту задачу, дадим некоторые определения.
О п р е д е л е н и е 7 . Задача, состоящая в определении максимального (минимального) значения функции
где
n
n
n
f (x) = å dj xj + å å ckj xk xj при ограничениях
j=1
n
å aij £ bi (i = 1,m),
j=1
где
n
å å ckj xk xj —
(2.34)
xj ³ 0( j = 1,n),
n
(2.33)
k=1 j=1
(2.35)
отрицательно (положительно) полуопреде-
k=1 j=1
ленная квадратичная форма, называемая задачей квадратичного
программирования.
Для сформулированной задачи квадратичного программирования функция Лагранжа запишется в виде
n
n
n
n
L = å dj xj + å å ckj xk xj + yj (bi - å aij xj ).
j=1
k=1 j=1
j=1
Если функция L имеет седловую точку (X0 ; Y0 ) = (x10 , x10 , ..., xn0 ; y10 ,
2
0
..., xn0 ; y10 , y20 , ..., ym
), то в этой точке выполняются соотношения
(2.28)—(2.32). Вводя теперь дополнительные переменные
vj ( j = 1,n) и wi (i = 1,m), обращающие неравенства (2.27) и (2.30) в
89
равенства, перепишем выражение (2.27)—(2.32), записанные для
задачи квадратичного программирования, следующим образом:
¶L0
(2.36)
+ vj = 0( j = 1,n),
¶xj
¶L0
- wi = 0(i = 1,m),
(2.37)
¶yi
(2.38)
xj0vj = 0( j = 1,n),
(2.39)
yi0wi = 0(i = 1,m), xi0 ³ 0,vj ³ 0, yj0 ³ 0, wj ³ 0( j = 1,n; i = 1,m).
(2.40)
Таким образом, чтобы найти решение задачи квадратичного
программирования (2.33)—(2.35), нужно определить неотрицательное решение систем линейных уравнений (2.36)—(2.37), удовлетворяющее условиям (2.38)—(2.39). Это решение можно найти с помощью метода искусственного базиса, примененного для
нахождения максимального значения функции F = -å Myi при
i
условиях (2.36), (2.37), (2.40) с учётом (2.38) и (2.39). Здесь yi— искусственные переменные, введённые в уравнения (2.36) и (2.37).
Используя метод искусственного базиса и дополнительно учитывая условия (2.38) и (2.39), после конечного числа шагов либо
установим неразрешимость, либо получим оптимальный план
исходной задачи.
Итак, процесс нахождения решения задачи квадратичного
программирования (2.33)—(2.35) включает следующие этапы:
1. Составление функции Лагранжа.
2. �������������������������������������������������������
Запись в виде выражений (2.36)—(2.40) необходимых и достаточных условий существования седловой точки функции Лагранжа.
3. Применение метода искусственного базиса в установлении
отсутствия седловой точки для функции Лагранжа или нахождении её координаты.
4. ������������������������������������������������������
Запись оптимального решения исходной задачи и нахождение значения целевой функции.
Пример
Найти максимальное значение функции
90
f = 2x1 + 4x2 - x12 - 2x22 (2.41)
при условиях:
ìïïx1 + 2x2 £ 8,
í
ïïî2x1 - x2 £ 12,
(2.42)
x1, x2 ≥ 0. (2.43)
Р е ш е н и е. Функция f является вогнутой, так как представляет собой сумму линейной функции f1 = 2x1 + 4x2 (которую можно рассматривать как вогнутую) и квадратичной формы
f2 = -x12 - 2x22 , которая является отрицательно определённой и
вогнутой. Система ограничений задачи включает только лишь
линейные неравенства. Следовательно, можно воспользоваться
теоремой Куна — Таккера. Составим функцию Лагранжа
L = 2x1 + 4x2 - x12 - 2x22 + y1 (8 - x1 - 2x2 ) + y2 (12 - 2x1 + x2 ).
и запишем в виде выражений (2.35)—(2.39) необходимые и достаточные условия существования седловой точки построенной
функции:
(2.44)
ìï ¶L
ïï
= 2 - 2x1 - y1 - 2y2 £ 0,
ïï ¶x1
ïï
ïï ¶L = - x - y + y £
4 4 2 2 1
2 0,
ïï¶x
ïí 2
ïï ¶L
= 8 - x1 - 2x2 ³ 0,
ïï
ïï ¶y1
ïï ¶L
ïï
= 12 - 2x1 + x2 ³ 0;
ïï ¶y2
î
(2.45)
ìï ¶L
ïïx1
= x1 (2 - 2x1 - y1 - 2y2 ) = 0,
ïï ¶x1
ïï
ïïx ¶L = x
2 (4 - 4x2 - 2y1 + y2 ) = 0,
ïï 2 ¶x
2
ïí
ïï ¶L
=
=
y
y
x
x
(
8
2
)
0
,
ïï 1
1
1
2
ïï ¶y1
ïï ¶L
ïïy2
= y2 (12 - 2x1 + x2 ) = 0,
ïï ¶y2
î
x1, x2 , y1, y2 ³ 0. (2.46)
91
Система линейных неравенств (2.44) перепишем следующим
образом:
ìï2x1 + y1 + 2y2 ³ 0,
ïï
ï4x2 + 2y1 - y2 ³ 4,
ïí
ïïx1 + 2x2 £ 8,
ïï
ïïî2x1 - x2 £ 12.
(2.47)
Вводя теперь дополнительные неотрицательные переменные
v1, v2, w1, w2, обращающие неравенства (2.44) в равенства, получим
ïìï2x1 + y1 + 2y2 - v1 = 2,
ïï
ï4x2 + 2y1 - y2 - v2 = 4,
(2.48)
í
ïïx1 + 2x2 + w1 = 8,
ïï
ïïî2x1 - x2 + w2 = 12,
x1,x2,y1,y2,w1,w2 ≥ 0.
(2.49)
Учитывая равенства (2.47), можно записать:
v1x1 = 0, v2x2 = 0, w1y1 = 0, w2y2 = 0. (2.50)
Если теперь найти базисное решение системы линейных уравнений (2.47) с учётом выполнения равенств (2.49), то будет получена седловая точка функции Лагранжа для исходной задачи,
т. е. определено оптимальное решение.
Для нахождения базисного решения системы линейных уравнений (2.47) воспользуемся методом искусственного базиса. В первое и второе уравнения системы (2.47) соответственно добавим
дополнительную неотрицательную переменную z1 и z2 и рассмотрим задачу линейного программирования, состоящую в определении максимального значения функции
F = -Mz1 - Mz2 (2.51)
(2.52)
ïìï2x1 + y1 + 2y2 - v1 + z1 = 2,
ïï
ï4x2 + 2y1 - y2 - v2 + z2 = 4,
í
ïïx1 + 2x2 + w1 = 8,
ïï
ïïî2x1 - x2 + w2 = 12,
x1, x2 , y1, y2 ,w1,w2 , z1, z2 ³ 0. (2.53)
при условиях:
92
Таблица 2.1
0
0
0
0
0
Pl1
Pv1
Pv2
1
2
–1
0
0
0
1
0
4
2
–1
0
–1
0
0
0
1
1
2
0
0
0
0
1
0
0
0
12
2
–1
0
0
0
0
0
1
0
0
5
0
0
0
0
0
0
0
0
0
0
0
6
–6
–1
1
1
0
0
0
0
2
–1
0
0
0
1
0
i
Базис
Сб
P0
1
Py1
–M
2
2
0
2
Py2
–M
4
0
3
Pw1
0
8
4
Pw2
0
0
Px1 Px2 Pl1
–2 –4 –3
0
0
–М
–M
Pw1 Pw2 Py1
Py2
1
Py1
–M
2
2
0
2
Px2
0
1
0
1
1/2 –1/4
0
–1/4
0
0
0
1/4
3
Pw1
0
6
1
0
–1
0
1/2
1
0
0
–1/2
4
Pw2
0
13
2
0
1/2 –1/4
0
–1/4
0
1
0
1/4
5
0
0
0
0
0
0
0
0
0
0
0
6
–2
–2
0
–1
–2
1
0
0
0
0
1
1/2
1
–1/2
0
0
0 1/2
1
1/2
1
Px1
0
1
1
0
2
Px2
0
1
0
1
0
0
3
Pw1
0
5
0
0
1
0
4
Pw2
0
11
0
0
0
1
0
0
0
0
0
5
0
В результате решения задачи (2.50)—(2.52) [отметим, что при
этом решении учитываются условия (2.49)] находим допустимое
базисное решение системы линейных уравнений (2.51) (табл. 2.1,
где x10 = 1; x20 = 1; w1 = 5; w2 = 11; y10 = y20 = v1 = v2 = 0.).
Так как x10v1 = 0; x20v2 = 0; y10w1 = 0; y20w2 = 0, то (X0; Y0) = = (1;1;0;0) является седловой точкой функции Лагранжа для исходной задачи. Следовательно, X* = (1; 1) — оптимальный план
исходной задачи и fmax = 3.
93
2.4. Задача квадратичного программирования и ее решение
Одним из частных видов задачи выпуклого программирования является задача, в которой целевая функция содержит квадратичное слагаемое, а ограничения носят линейный характер.
В этом случае говорят, что задача относится к квадратичному
программированию:
¶L(x*, λ*) / ¶x ³ 0, (2.54)
x * ¶L(x*, λ*) / ¶x = 0, (2.55)
x* ≥ 0, (2.56)
¶L(x*, λ*) / ¶ λ £ 0, (2.57)
λ * ¶L(x*, λ*) / ¶ λ = 0, (2.58)
λ* ³ 0. (2.59)
В квадратичном программировании в качестве основной рассматривается задача минимизации функции
n
n
n
f (x) = å cj xj + åå dij xi xj j=1
при ограничениях:
n
å aij xj £ bi
j=1
(2.60)
i=1 j=1
(i = 1,m) (2.61)
xj ³ 0 ( j = 1,n). Матрица D = [dij]n×n квадратичной формы
(2.62)
n
n
åå dij xi xj
пред-
i=1 j=1
полагается симметрической и неотрицательно определенной.
В этом случае функция (2.60) будет выпуклой.
Если в задаче квадратичного программирования целевая
функция не минимизируется, а максимизируется или если в некоторых ограничениях вместо знака « ≤ » стоит знак « ≥ », то такие
задачи всегда можно привести к основной форме (2.60)—(2.62).
С геометрической точки зрения задача (2.60)—(2.62) сводится
к определению точки выпуклого многогранника решений, через
которую проходит линия уровня поверхности f(х), имеющая наименьшее значение функции f(х). Если в разрешимой задаче ли94
нейного программирования оптимальное решение находилось
в вершине многогранника, то целевая функция задачи (2.60)—
(2.62) свой конечный минимум, даже если он единственный, может принимать как на границе, так и внутри многогранника решений.
Переходя к решению задачи (2.60)—(2.62), составим локальные условия Куна — Таккера (2.54)—(2.59), являющиеся необходимыми и достаточными условиями оптимальности решения х*.
Функция Лагранжа в данном случае имеет вид
æ n
ö÷
n
n n
m
ç
L = å cj xj + åå dij xi xj + å λ i çç å aij xi - bi ÷÷÷. ç
ø÷÷
j=1
i=1 j=1
i=1 çè j=1
(2.63)
Найдем частные производные функции (2.63):
n
m
k=1
i=1
¶L / dxj = cj + 2 å dkj xk + å λ i aij ( j = 1,n), n
¶L / dλ i = å aij xj - bi (i = 1,m). (2.64)
(2.65)
i=1
Обозначим в равенствах (2.64) и (2.65)
n
m
k=1
i=1
cj + 2 å dkj xk + å λ i aij = υ j ( j = 1,n),
n
å aij xj - bi = -yi
(i = 1,m).
i=1
С учетом этих обозначений условия (2.54)—(2.59), записанные
в координатной форме, примут следующий вид:
(2.66)
n
m
ü
ï
ï
cj + 2 å dki xk + å λ i aij = υ j ³ 0,ï
ï
ý
k=1
i=1
ï
ï
xj υ j = 0,
xj ³ 0
( j = 1,n), ï
ï
ï
þ
(2.67)
üï
ïï
ï
ý
j=1
ïï
λ i (-yi ) = 0, λ i ³ 0 (i = 1,m).ïïïþ
n
å aij xj - bi = -yi £ 0,
95
Объединяя соотношения (2.66) и (2.67), окончательно получаем:
n
å aij xj + yi = bi
j=1
n
m
k=1
i=1
(i = 1,m), 2 å dki xk - υ j + å aij λ i = -cj ( j = 1,n), xj ³ 0, υ j ³ 0
( j = 1,n); yi ³ 0, λ i ³ 0
n
m
j=1
i=1
å xj υ j + å yi λ i = 0.
(2.68)
(i = 1,m), (2.69)
(2.70)
(2.71)
Равенства (2.68)—(2.69) образуют систему N = n + m линейных
уравнений с 2N = 2(n + m) неизвестными x1, ..., xn, v1, ..., vn; y1, ...
ym; l1, ..., lm.
Итак, в соответствии с локальными условиями Куна — Таккера решение х* = (х*1, ... х*n) является оптимальным для задачи
(2.60)—(2.62) тогда и только тогда, когда совместно c решением
v = (v1, ..., vn) существуют решения l = (l1, ..., lm), y = (y1, ..., ym),
такие, что z = (x1, ..., xn; v1, ..., vn; l1 ... lm; y1, ..., ym) является решением системы (2.68)—(2.71) при условии выполнения равенства
(2.71).
Таким образом, применение теоремы Куна — Таккера для решения задачи квадратичного программирования позволяет нелинейную задачу сводить к решению системы линейных алгебраических уравнений при соблюдении, правда, дополнительного комбинаторного условия (2.71). Это условие требует, чтобы
из каждых двух ограниченных по знаку переменных x1 и v1 (соответственно у1 и l1) хотя бы одна равнялась нулю. Иначе говоря, не все решения z = (x1, ..., ym) системы (2.68), (2.69) удовлетворяют условию (2.71), а только те, в которых по крайней мере
n + m компонент равны нулю, т. е. столько, сколько уравнений
в системе. Но таким свойством обладают базисные реше­ния системы. Значит, искать решение, которое удовлетворяло бы условию (2.71), имеет смысл только среди базисных решений. Известно, что с базисными решениями оперирует симплексный
метод. Воспользуемся им, внеся в вычислительную процедуру
определенные изменения, обусловленные спецификой рассматриваемой задачи.
96
Запишем равенства (2.68)—(2.71) в векторно-матричной форме:
Ax + Ey + Ov + Oλ = b, (2.72)
2Dx + Oy - Ev + AT λ = -c, (2.73)
x ≥ 0, y ≥ 0, v ≥ 0, λ ³ 0, (2.74)
x ¢v + y ¢ λ = 0, (2.75)
где
é a11 ... a1n ù
é 1 ... 0 ù
é d11 ... d1n ù
ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
A = ê ... ... ... ú , E = ê... ... ...ú , D = êê ... ... ... úú .
êa
ú
ê 0 ... 1 ú
êd
ú
ë m1 ... amn û
ë
û
ë n1 ... dnn û
é a11 ... am1 ù
é b1 ù
é c1 ù
ê
ú
ê ú
ê ú
A = êê ... ... ... úú , b = êê ... úú , c = êê...úú .
êa
ú
êb ú
êc ú
ë in ... amn û
ë mû
ë nû
T
Объединим равенства (2.72) и (2.73) следующей записью:
é xù
ê ú
éA E O
O ù ê yú é b ù
ê
ú ê ú = ê ú. (2.76)
ê2D O -E AT ú ê v ú ê-cú
ëê
ûú ê ú ë û
ê ú
êë λ úû
В целях дальнейшего упрощения записей обозначим в равенстве (2.76) через z вектор z¢ = (x ¢, y ¢, v ¢, λ ¢) и одновременно будем
рассматривать вектор z′ = (v′, l′, x′, y′). Ясно, что компоненты векторов z и z попарно равны, т. е.
zi = zi+N , zi+N = zi
(i = 1, N). (2.77)
Ввиду того, что zz = x ¢v + y ¢ λ + v ¢x + λ ¢y = 2(x ¢v + y ¢ λ) , равенство (2.77) можно записать в виде T = z ¢z = 0, а условие (2.76) — в
виде z ≥ 0. Учитывая равенство (2.76) и другие введенные обозначения, окончательно локальные условия Куна — Таккера (2.68)—
(2.71) запишем так:
97
éA E O Où
ébù
ê
ú z = ê ú, ê2D O -E A ¢ú
ê-cú
ë
û
ë û
(2.78)
z ≥ 0, (2.79)
T = z¢z = 0. (2.80)
Задача состоит в том, чтобы среди базисных решений системы
(2.78), (2.79) найти такое решение z*, которое обращает в нуль выпуклую функцию Т, заданную выражением (2.80).
Последовательный перебор базисных решений осуществим с
помощью симплексных преобразований. Перебор начинается с
некоторого исходного базисного решения z0 и организуется так,
чтобы при переходе от одного решения к другому значения функции Т убывали. Симплексные преобразования выполняют по тем
же правилам, что и в линейном программировании, но свободная
переменная, вводимая в базис, выбирается по специальному правилу, к выводу которого мы и переходим.
Предположим, что в системе (2.78) все N = n + m уравнений линейно независимы и система разрешена, например, относительно
первых N неизвестных, т. е. имеет вид
N
zk = hk0 - å hki zN +i
(k = 1, N).
(2.81)
i=1
Такой записи системы соответствует симплексная таблица
(табл. 2.2).
Таблица 2.2
1
–zN + 1
–z2N
z1 = h10
h11
h1N
zN = hN0
hN1
hNN
Равенство типа (2.81) можно записать и для каждой свободной
переменной. Оно будет иметь вид zN + s = 0 + zN + s. Таким равенствам в симплексной таблице будут отвечать строки, все элементы которых, кроме одного (равного 1), равны нулю (табл. 2.3). При
таком соглашении в левый заглавный столбец будут входить все
переменные zk, (k = 1,2N) и их можно расположить в порядке
возрастания индексов.
98
Таблица 2.3
1
–zN + 1
–z2N
z1 = h10
h11
h1N
zN = hN0
hN1
hNN
zN + 1 = 0
–1
0
z2n = 0
0
–1
Заменим координатные равенства (2.81) одним — векторным:
N
z = h0 - å hi zN +i , (2.82)
i=1
где ht — t-й вектор-столбец табл. 2.3.
При нулевых значениях свободных переменных zN + i из равенства (2.82) находим начальное базисное решение
z0 ≈ h0 ≥ 0. (2.83)
Вектор z0 , соответствующий вектору (2.83), обозначим через
h0 . Тогда значение функции (2.78), соответствующее начальному
базисному решению (2.83), будет равно
T0 = T(h0 ) = h0¢ h0 . (2.84)
Выполним симплексное преобразование, выбрав разрешающий элемент по правилам, известным из линейного программирования. Найденное при этом минимальное симплексное отношение обозначим qs, т. е.
æ hk ö÷
ç
θs = min çç 0 ÷÷÷.
hks çè hk ø÷
s
В результате симплексного преобразования получим новое базисное решение z1, которое в соответствии с правилами пересчета элементов симплексных таблиц будет иметь вид z1 = h0 – qshs,
 0 -θ h

а соответствующий ему вектор z1 примет вид h
s s . Найдем
значение функции Т(z), соответствующее новому базисному решению:
T = T (z ) = z¢ z = (h - θ h )(h - θ h ) =
s
1
1 1
0
s s
0
2
s s
= h0¢ h0 - θshs¢ - h0¢ θshs + θ hs¢ h0 .
99
Из равенства (2.77) следует, что hs¢ h0 = h0¢ hs , поэтому
Ts = h0¢ h0 - 2θshs¢ h0 + θ2hs¢ h0 . Учитывая равенство (2.84), получаем
 0 + θ h¢ h

Ts = T0 + θs (-2hs¢ h
s s s ). (2.85)
Положив в уравнении (2.85) α s = hs¢ h0 , βs = hs¢ h0 , получаем
Ts = T0 + qs(–2as + qsbs). (2.86)
Обозначая, в уравнении (2.86) через
приходим к равенству
Ks = –2as + qsbs,
(2.87)
Ts = T0 + qsKs.
(2.88)
Так как значение функции Т при симплексных преобразованиях должно уменьшаться, в базис надо вводить ту свободную переменную ZN + s для которой Ks < 0, ибо, как видно из равенства
(2.88), только в этом случае разность Ts—Т0 < 0, т. е. Ts < T0. Напомним, что величина qs всегда положительна. Величины bs, являющиеся по существу вторыми производными от Т по qs, всегда
неотрицательны, поэтому величина Ks может быть отрицательной, как это видно из равенства (2.87), только когда as > 0.
Суть нового правила выбора свободной переменной, включаемой в базис, состоит в том, что каждую свободную переменную
ZN + s, для которой as > 0, проверяют: уменьшит ли базисное решение, полученное после включения этой переменной в базис, значение функции Т.
Может случиться, что Ks > 0 для всех s, хотя все еще T > 0, тогда можно начать процесс оптимизационного поиска сначала, взяв
другое начальное базисное решение, либо же принять временное
увеличение функции Т, включая в базис свободную переменную
ZN + s с положительным Ks и надеясь при следующих итерациях
понизить значение Т. В этом состоит недостаток рассматриваемого метода.
Существуют и другие методы решения задачи (2.60)—(2.62),
но и они не свободны от недостатков.
Подытоживая рассуждения, можно предложить следующий
порядок решения задачи (2.60)—(2.62) рассмотренным способом:
записать задачу в форме (2.60)—(2.62), по данным задачи составить локальные условия Куна — Таккера в форме (2.78)—(2.80);
100
найти начальное базисное решение h0, на основе найденного базисного решения минимизировать функцию T = z′z. С этой целью
составить таблицу, включив в ее основную часть строки для всех
переменных, расположив их в порядке возрастания индекса k переменной Zk, qs, т. е. в порядке x1, ..., xn, y1, ... ym, v1, ..., vn, l1, ...,
lm (табл. 2.4).
Таблица 2.4
Основная часть
Дополнительная
часть
1
–zN + 1 – z2N
(z1 = )x1 = h10
h11 h1N
(z2N = )lm = h2N0
h2N 10 h2N N
T
as
bs
qs
Ks
a1
b1
q1
K1
aN
bN
qN
KN
Дополнительную часть таблицы заполняют в следующем порядке:
а) вычислить T0 = h0¢ h0 , где z0 = h0 — начальное базисное решение. Если T0 = 0, то данная задача решена и остается составить
оптимальное решение х* из компонент вектора h0 и вычислить
fmin. Если же T0 ≠ 0, то вычисления продолжить;
б) найти для всех s = 1, N α s = hs¢ h0 .
в) для тех s, для которых, as > 0, вычислить βs = h ¢h0 ,
θs = min hk0 hks (элементы hks, для которых отношение qs минимально, отметить в табл. 2.4), вычислить Ks = 2as = qsbs;
г) выбрать разрешающий элемент для выполнения симплексного преобразования. При этом разрешающий столбец определить по отрицательному элементу Ks с наибольшей абсолютной
величиной. Элемент hks выбранного столбца, которому соответствует наименьшее отношение qs, становится разрешающим.
С ним выполнить симплексное преобразование и получить новое
базисное решение.
Операции алгоритма а) — г) выполнять до тех пор, пока функция Т не примет нулевое значение. Если все Ks > 0 и T > 0, то включить в базис переменную, отвечающую положительному Ks, или
выбрать в качестве начального другое базисное решение.
101
Пример
Решить задачу квадратичного программирования графически. Привести задачу к задаче линейного программирования специального вида. Решить задачу модифицированным методом искусственного базиса:
F = -2x1 + 2x2 - x12 - 5x22 + 4x1x2 ® max
при ограничениях:
х1 + х2 ≤ 3;
–2х1 + 3x2 ≤ 6;
x1 ≥ 0;
x2 ≥ 0.
Приведем задачу к задаче линейного программирования специального вида и решим модифицированным методом искусственного базиса.
Составим матрицу D и рассмотрим ее определители:
∆1 = 1 < 0,
следовательно, исследуемая целевая функция вогнутая.
Составим функцию Лагранжа:
L(X, Λ) = 2x1 + 2x2 - x12 - 5x22 + 4x1x2 + λ1 (3 - x1 - x2 ) +
+λ2 (6 + 2x1 - 3x2 ).
Запишем условие Куна — Таккера:
∂L/∂х1 = –2 – 2x1 + 4x2 – l1 + 2l2 ≤ 0,
∂L/∂х2 = 2 – 10x2 + 4x1 – l1 – 3l2 ≤ 0,
∂L/∂l1 = 3 – х1 – х2 ≥ 0,
∂L/∂l2 = 6 + 2х1 – 3х2 ≥ 0.
Систему линейных неравенств перепишем в виде:
–2x1 + 4x2 – l1 + 2l2 ≤ 2,
10x2 – 4x1 + l1 + 3l2 ≥ 2,
х1 + х2 ≤ 3,
–2х1 + 3х2 ≤ 6.
Получим систему линейных неравенств, т. е. задача приведена к задаче линейного программирования. Приведем неравен102
ства к равенствам, используя дополнительные переменные v1,
v2, w1, w2:
–2x1 + 4x2 – l1 + 2l2 + v1 = 2,
10x2 – 4x1 + l1 + 3l2 – v2 = 2,
х1 + х2 + w1 = 3,
–2х1 + 3х2 + w2 = 6.
Дополним равенства условиями, которые представим в виде:
v1x1 = 0; v2x2 = 0; w1l1 = 0; w2l2 = 0.
Воспользовавшись методом искусственного базиса, введем искусственную переменную z1 и получим:
F1(x) = –Mz,
–2x1 + 4⋅x2 – l1 + 2l2 + v1 = 2,
–4x1 + 10x2 + l1 + 3l2 – v2 + z1 = 2,
х1 + х2 + w1 = 3,
–2х1 + 3х2 + w2 = 6.
Решим задачу методом симплекс-таблиц (табл. 2.5 и 2.6).
Таблица 2.5
C1 = 0 C2 = 0 C3 = 0 C4 = 0 C5 = 0 C6 = 0 C7 = –M C8 = 0 C9 = 0
C
XP
B
Ax1
Ax2
Al1
Al2
Av1
Av2
Az1
v1
2
–2
4
–1
2
1
0
0
0
0
–M z1
2
–4
10
1
3
0
–1
1
0
0
0
Aw1 Aw2
0
w1
3
1
1
0
0
0
0
0
1
0
0
w2
6
–2
3
0
0
0
0
0
0
1
M
3M
0
–M
0
0
0
S
–2M –4M 10M
Таблица 2.6
C
C1 = 0 C2 = 0 C3 = 0 C4 = 0 C5 = 0 C6 = 0 C7 = –M C8 = 0 C9 = 0
XP
B
Ax1
Ax2
Al1
Al2
Av1
Av2
Az1
v1
1,2
–0,4
0
–1,4
0,8
1
0,4
–0,4
0
0
0
x2
0,2
–0,4
1
0,1
0,3
0
–0,1
0,1
0
0
0
w1
2,8
1,4
0
–0,1 –0,3
0
0,1
–0,1
1
0
0
w2
5,4
–0,8
0
–0,3 –0,9
0
0,3
–0,3
0
1
0
0
0
0
0
–М
0
0
0
S
0
0
Aw1 Aw2
103
–55,15
3 x2
–41,3
–28,6
–3
–2
–18,39
–13,91
–10,17
–7,24
–4,6
–2,69
–0,77
–0,2
–1
2
1
0,2
0
1
2
x1
3
1,52
–1
Рис. 2.3
Так как все симплекс-разности не больше нуля, следовательно, найдено оптимальное решение.
Таким образом, получаем оптимальное решение, удовлетворяющее заданным условиям x1*  = 0; x2*  = 0,2. Подставив найденные
значения в целевую функцию, получим F*(x1, x2) = 0,2.
Для определения оптимального решения следует построить
область допустимых решений, соответствующую заданным ограничениям. Оптимальное решение получено в точке касания области допустимых решений и кривой целевой функции (рис. 2.3).
На рис.���������������������������������������������������
��������������������������������������������������
2.3 также показана область допустимых решений, которая ограничена прямыми, построенными исходя из ограничений (выделена линия, соответствующая F*(x1,x2) = 0,2 и значения переменных x1*  = 0; x2*  = 0,2).
2.5. Штрафные и барьерные функции
Рассмотрим задачи нелинейного программирования с ограничениями в форме равенств и неравенств. Суть используемых здесь
методов заключается в замене исходной задачи эквивалентной задачей безусловной оптимизации или задачей с простыми ограничениями, для решения которых могут быть использованы известные алгоритмы. На самом деле из-за некоторых вычислительных
особенностей вместо исходной задачи обычно решается не одна, а
последовательность задач безусловной оптимизации. Здесь рассматриваются два альтернативных подхода. Первый, называемый методом штрафных функций, заключается в следующем.
К целевой функции исходной задачи добавляется функция,
интерпретируемая как штраф за нарушение каждого из огра104
ничений. Метод генерирует последовательность недопустимых
точек, которая сходится к оптимальному решению задачи. Второй подход называется методом барьеров. В этом методе к целевой функции исходной задачи добавляется барьерный член, который не позволяет генерируемым точкам выходить за пределы
допустимой области. Строится последовательность допустимых
точек, сходящихся к оптимальному решению исходной задачи.
Данный метод можно использовать не только в задачах с ограничениями в виде неравенств.
Все методы штрафных функций, несмотря на различные схемы и варианты, имеют одну общую особенность: в них производится переход от задачи условной оптимизации к эквивалентной
задаче или последовательности задач безусловной оптимизации.
Методы штрафных функций можно разделить на два класса:
параметрические и непараметрические.
П а р а м е т р и ч е с к и е методы характеризуются наличием одного или нескольких надлежащим образом выбранных параметров, входящих в структуру штрафной функции в качестве
весовых коэффициентов. К ним относятся: метод последовательной безусловной оптимизации (МПБО), предложенный Фиакко и
Маккормиком, метод Зангвилла и др.
В н е п а р а м е т р и ч е с к и х методах целевая функция
рассматривается как функция, задающая дополнительное искусственное ограничение, постепенно уплотняемое по мере получения новой информации о ходе решения задачи. Они подразделяются: на методы внутренней точки; методы внешней точки; комбинированные методы.
При использовании методов внутренней точки текущая точка постоянно находится внутри допустимой области с помощью
штрафной функции, которая в этом случае называется барьерной. Методы внешней точки, наоборот, генерируют последовательность точек, которые выходят за пределы допустимой области, но в
пределе дают допустимое решение. Наконец, в комбинированных
методах, которые необходимо использовать при ограниченияхравенствах, в процессе оптимизации одни из ограничений удовлетворяются, а другие — нет. Однако при достижении искомого
решения все условия в пределах заданного допуска выполняются.
Итак, пусть задача нелинейного программирования имеет следующий вид: минимизировать
f(x), x ∈ Rn, (2.89)
105
при ограничениях
hi(x) = 0, i = 1,m, (2.90)
gi(x) ≥ 0, i = m + 1, M. (2.91)
В основу штрафных функций положено преобразование задачи (2.89)—(2.91) в задачу минимизации без ограничений вида
m
P(xk ρk ) = f (xk ) + å ρi,k H(hi (xk )) +
i=1
M
å
i=m+1
ρi,k G (gi (xk )), (2.92)
где P(xkrk) — штрафная функция; pi,k — весовые коэффициенты;
H(hi(xk)), G(gi(xk)), — некоторые функционалы.
Выбирая вид функционала G(gi(xk)), руководствуются следующими вариантами:
G1(g1(xk)) → ∞ при g1(xk)→0 + .
Для этого необходимо, чтобы точка x всегда была внутренней
точкой, т. е. выполнить условия:
g1(xk) > 0, i = m + 1, M,
G1(g1(xk)) → 0 при g1(xk) → 0–.
При таком выборе функционала G1оперируют только внешними точками, для которых выполняется условие g1(xk) < 0:
G1(g1(xk)) > 0 при g1(xk) < 0
и
G1(g1(xk)) = 0 при g1(xk ≥ 0).
При таком выборе функционала не заботятся о том, чтобы
ограничивающие условия удовлетворялись на промежуточных
этапах вычислительного процесса, хотя они, безусловно, должны
выполняться в искомой точке.
При выборе функционала для ограничений-равенств вводится требование H(hi(xk)) → 0 при h1(x) → 0 и обычно полагают
H (hi(xk)) = h12(x).
Наконец, при любом выборе функционалов H(hi(xk)), G(gi(xk))
требуется, чтобы
M
lim
å
k®¥i=m+1
m
106
ρi,k G (gi (xk )) = 0,
lim å ρi,k H(hi (xk )) = 0, k®¥i=1
(2.93)
(2.94)
lim P(xk ,ρk ) - f (xk ) = 0.
k®¥
(2.95)
2.5.1. Метод барьерных поверхностей
Метод барьерных поверхностей (МБП) относится к группе методов внутренней точки и основан на использовании барьерной
поверхности вида
m
P(x,r ) = f (x) + r å Ri (gi (x))wi , (2.96)
i=1
где r > 0 — параметр, значения которого убывают с каждой итерацией Ri(f) → ∞ при f → 0; wi — положительные весовые коэффициенты.
При этом барьерная функция (поверхность) P(x,r) неограниченно возрастает при f → 0 + .
Примерами барьерных функций являются:
а) обратная функция
1
(2.97)
,
Ri (gi (x)) =
gi (x)
б) логарифмическая функция Ri(gi(xk)) = –ln gi(x).
При приближении к границе изнутри области, как только
gi(x) → 0, штраф Ri(gi(x)) становится очень большим. Таким образом, вдоль всех границ допустимой области образуются сильные
барьеры.
Построив барьерную функцию и определив начальную внутреннюю точку, приступаем к процедуре минимизации P(x,r) при
заданном начальном значении r0. Тогда конечная точка x1 первой итерации процедуры становится исходной для минимизации
P(x,r) при уменьшенном значении r и т. д. Завершающий этап (итерация) минимизации реализуется при очень малом значении r,
так что результирующая точка x с точностью до установленного
допуска может сказаться либо на одной, либо сразу на нескольких поверхностях, заданных ограничениями задачи.
Если через x(r) обозначить точку минимума вспомогательной
функции P(x,r), то при весьма слабых предположениях относительно исходной задачи последовательность {x(r)} сходится к решению исходной задачи при r → 0.
Минимизация барьерной функции может быть выполнена любым методом безусловной оптимизации, которые рассмотрены
107
выше, например градиентным, или методами переменной метрики, или одним из прямых методов.
Один из существенных недостатков метода барьерных функций связан с тем, что эти функции определены в допустимой области, которая должна иметь непустую внутреннюю область, т. е.
множество {x : gi (x) > 0, "i = 1,m} должно быть непустым.
Алгоритм метода барьерных поверхностей
Пусть задача нелинейного программирования имеет следующий вид: минимизировать
f(x)
при ограничениях
gi(x) ≥ 0, i = 1,m.
Начальный этап:
Выбрать e > 0 в качестве константы остановки, начальную допустимую точку x0 ∈ Rn для которой gi(x0) > 0, "i = 1,m, скаляр r0
и 0 < b < 1. Положить k = 1 и перейти к основному этапу.
Основной этап:
Шаг 1 (k-я итерация). При исходной точке xk решить следующую задачу безусловной оптимизации: минимизировать
m
P(x,r ) = f (x) + r å Ri (gi (x)) wi ,
(2.98)
где Ri(gi(x)) описывается одним из выражений (2.97).
Положить xk + 1 равным оптимальному решению задачи (2.98)
и перейти ко второму шагу.
Шаг 2. Если rk å R (gi (xk+1 )) wi < ε, то остановиться. Решение
i=1
является искомым. В противном случае положить rk + 1 = bxk. Изменить k = k + 1 и перейти к первому шагу (k + 1)-й итерации.
Пример
Рассмотрим следующую задачу: минимизировать
(x1 – 2)4 + (x1 – 2x2)2
при условии
-x12 + x2 ³ 0.
Решим ее методом барьерных поверхностей с барьерной функцией
1
R (g(x)) =
.
x2 - x12
108
В табл. 2.7 приведены результаты вычислений. Вычисления
начались при r1 = 10, а безусловная оптимизация функции P(x,r)
начиналась с точки x1 = [0,1]. В качестве начального значения параметра b выбрано b = 0,1. После шести итераций получена точка
x6 = [0,944; 0,896], для которой r6R(gi(xk)) = 0,0184 и выполнение
алгоритма остановлено. Можно непосредственно проверить, что
эта точка близка к оптимальной. Учитывая, что rk уменьшаются,
(см. табл. 2.7), легко заметить, что f(xk),P(rk) — функции, которые
не уменьшаются от rk, а R(g(xk)) — не увеличивается от rk.
Кроме того, rkR(g(xk)) стремится к нулю.
Таблица 2.7
k
rk
xk + 1
f(xk + 1)
R(xk + 1)
P(rk)
rk R(g(xk))
1
10
8,334
0,970
18,039
9,705
2
1
3,821
2,359
6,180
2,359
3
0,1
2,528
6,419
6,170
0,642
4
0,01
2,129
19,078
2,320
0,191
5
0,001
2,004
59,046
2,063
0,059
6
0,0001
0,708;
1,532
0,0828;
1,110
0,899;
0,964
0,924;
0,916
0,940;
0,901
0,944;
0,896
1,964
184,445
1,983
0,0184
Использование барьерных функций для решения задач нелинейного программирования связано с определенной вычислительной трудностью. Прежде всего, поиск может начинаться с допустимой точки x, для которой gi(x) ≥ 0, i = 1,m. Для некоторых
задач находить такую точку довольно сложно. Кроме того, вследствие использования в алгоритме оптимизации дискретных шагов около границы {x:gi(x) ≥ 0}, возможен шаг, который выводит за
границы допустимой области. Он приводит к уменьшению значений функции P(x, rk), т. е. к фиктивному успеху. Таким образом,
нужна явная проверка допустимости каждой последующей точки, для чего на каждой итерации необходимо вычислять значения функции gi(xk) > 0, k = 1,2… .
На эффективность метода барьерных поверхностей существенно влияют выбор начального значения r0 и метод сокращения
значений r в процессе минимизации, а также выбор весовых коэффициентов wi. Если в функции P(x,r) значение r0 выбирают
109
слишком малым, то уже на начальной стадии процесса приходят к минимуму функции f(x), который вряд ли окажется вблизи
действительного условного минимума в точке x*. С другой стороны, если значение r0 выбирается слишком большим, то на первых
итерациях вычислительного процесса текущая точка неизбежно
окажется слишком далеко за пределами допустимой области и
поиск из-за необходимости возврата в пределы допустимой области окажется весьма затяжным.
2.5.2. Метод штрафных функций
Метод барьерных поверхностей относится к группе методов
внутренней точки, т. е. он начинает работать с допустимой точки
x0 и генерирует последовательность допустимых точек x1,x2, …,
xn. Метод штрафных функций, наоборот, относится к группе методов внешней точки, он начинает поиск с недопустимой точки и
генерирует последовательность недопустимых решений, которая
приближается к оптимальному решению за пределами допустимой области.
Пусть, как и выше, имеется задача нелинейного программирования: минимизировать
f(x) (2.99)
при ограничениях
hi(x) = 0, i = m + 1, l, (2.100)
gi(x) ≥ 0, i = 1,m. (2.101)
Метод штрафных функций основан на преобразовании исходной задачи с ограничениями в одну задачу безусловной оптимизации или в их последовательность. С помощью функцийограничений строят штрафную функцию, которая прибавляется к целевой функции исходной задачи так, чтобы нарушение
какого-либо из ограничений исходной задачи было невыгодным
с точки зрения полученной задачи безусловной оптимизации.
В частности, для ограничений типа (2.100), (2.101) целесообразно
использовать штрафную функцию следующего вида:
m
α(x) = å R1 (gi(x) ) +
i=1
l
å
i=m+1
R2 (hi (x)),
(2.102)
где R1,R2 — непрерывные функции, которые удовлетворяют условиям:
110
— R1(y) = 0 если y ≥ 0 и R1(y) > 0, если y < 0;
— R2(y) = 0, если y = 0 и R2(y) > 0, если y ≠ 0.
Типичными являются следующие выражения для функций
R1, R2:
R1(y) = (max{0; –y})p;R2(y) = |y| p,
где p — целое положительное число.
Таким образом, штрафная функция a(x) обычно имеет вид
m
α(x) = å (max{0;-gi (x)}) p +
i=1
l
å
i=m+1
p
hi (x) . (2.103)
Далее от задачи нелинейного программирования (2.99)—
(2.101) переходим к задаче безусловной оптимизации вспомогательной функции: минимизировать
f(x) + ra(x), (2.104)
где r > 0 — штрафной коэффициент.
Пусть a — непрерывная функция вида (2.102). Обозначим
q(r) = inf{f(x) + ra(x)}. (2.105)
Подход, связанный со штрафной функцией, состоит в решении задачи вида: максимизировать
q(r), (2.106)
при ограничении
r ≥ 0.
Справедлива следующая теорема, которая обосновывает этот
метод.
Теорема 1. Пусть задача нелинейного программирования задана в виде (2.99)—(2.101), где f, g1, g2, …, gm — непрерывные на
Rn функции.
Предположим, что задача имеет допустимые решения и пусть
a(x) — непрерывная штрафная функция вида (2.102). Предположим также, что для любого r существует решение xr задачи минимизации вспомогательной функции f(x) + ra(x) и все xr принадлежат некоторому компактному подмножеству X. Тогда справедливо следующее уравнение:
(2.107)
inf{f (x) : g(x) ³ 0, h(x) = 0} = supθ(r ) = lim θ(r ), X
r ®¥
r
где q(r) определяется в соответствии с выражением (2.105).
111
Более того, граница x* любой сходящейся последовательности {xr} является оптимальным решением исходной задачи и
ra(xy) → 0 при r → ∞.
Эта теорема служит обоснованием метода штрафных функций
и из нее следует, что оптимальное значение xr может быть сделано
наиболее близким к допустимой области при довольно большом
r. Кроме того, выбрав r довольно большим, значение f(xy) + ra(xy)
можно сделать как угодно близким к оптимальному значению целевой функции исходной задачи f(x).
Алгоритм метода штрафных функций
В связи с трудностями, связанными с использованием большого параметра штрафа r, в большинстве алгоритмов метода штрафных функций применяют последовательность возрастающих параметров штрафа r.
Итак, пусть имеем задачу нелинейного программирования:
минимизировать
f(x)
при ограничениях
gi(x) ≥ 0, hi(x) = 0,
где функции f, gi, hi непрерывны.
Начальный этап:
Выбрать e > 0, начальную точку x1, параметр штрафа r1 и число b > 1. Положить k = 1 и перейти к основному этапу.
Основной этап:
Шаг 1. При начальной точке xk и параметре штрафа rk решить
следующую задачу: минимизировать
m
f (x) + rk α(x) = f (x) + rk [å (max{0;-gi (x)}) p +
i=1
l
å
i=m+1
hi (x) ], (2.108)
где p > 0, p — целое.
Положить xk + 1 равным оптимальному решению этой задачи и
перейти ко второму шагу.
Шаг 2. Если rka(xk + 1) < e, то остановиться. В противном случае положить rk + 1 = brk. Заменить k на k + 1 и перейти к первому
шагу.
Пример
Рассмотрим следующую задачу: минимизировать
(x1 – 2)4(x1 – 2x2)2,
112
при ограничениях
x12 - x2 = 0.
В качестве штрафной функции a(x) выберем (x12 - x2 )2 . Тогда
на k-й итерации при заданном значении параметра rk необходимо
решить следующую задачу: минимизировать
(x1 – 2)4 + (x1 – 2x2)2 + rk(x12 – x2)2,
где x1,x2 ∈ (–∞; ∞).
В табл.�����������������������������������������������������
����������������������������������������������������
2.8 приведены результаты вычислений по методу штрафных функций. В качестве начальной выбрана точка x = [2, 1]T,
в которой значение целевой функции равно 0. В качестве начального значения штрафа взято r1 = 0,1, а число b = 10. Заметим, что
f(xk) и q(rk) — неубывающие функции, а a(xk) — невозрастающая
функция параметра rk.
Процесс
остановлен
после
четырех
итераций,
где
a(xk) = 0,000267. Но чтобы убедиться, что согласно теореме 1
последовательность rka(xk) стремится к нулю, выполнена еще
одна итерация и найдено x0. Можно убедиться, что в точке
x0 = [0,946;0,8934]T выполняются условия Куна — Таккера с заданной точностью.
Таблица 2.8
k
rk
xk + 1
f(xk + 1)
a(xk)
rka(xk)
q(rk)
1
0,1
0,0935
7,8307
0,7831
0,8766
2
1
0,5753
0,3908
0,3908
0,9661
3
10
1,5203
0,01926
0,1926
1,7129
4
100
1,8917
0,000267
0,0267
1,9184
5
1000
1,4539;
0,7608
1,1687;
0,7407
0,9906;
0,8425
0,9507;
0,8875
0,9461;
0,8934
1,9405
0,0028⋅10–3
0,0028
1,9433
2.6. Методы возможных направлений
Этот класс методов решения задач нелинейного программирования основан на движении из одной допустимой точки к другой
с лучшим значением целевой функции.
Типичная стратегия поиска в алгоритмах этого класса состоит
в следующем. Возьмем текущую допустимую точку x(k) и найдем
113
направление S(k) такое, что при достаточно малых lk выполняются следующие два условия:
1) точка x(k) + lkSk является допустимой;
2) f(x(k) + lkSk) < f(x(k)).
После нахождения допустимого направления S(k) решается
задача одномерной минимизации по параметру lk для нахождения оптимальной длины шага в направлении S(k). Далее перемещаемся в точку x(k + 1) и процесс поиска повторяется.
2.6.1. Метод Зойтендейка
Типичным представителем класса методов возможных направлений является метод Зойтендейка. На каждой итерации
метода находят возможное направление спуска, а затем проводят
оптимизацию вдоль этого направления. Для изложения идеи метода введем ряд необходимых понятий [2, 8].
Рассмотрим задачу минимизации f(x) при условии, что x ∈ Rn,
где Rn — непустое множество.
О п р е д е л е н и е 1 . Ненулевой вектор S называется возможным направлением в точке x ∈ Rn, если существует такое d > 0, что
x + lS ∈ Rn для всех l ∈ (0,d). Вектор S называется возможным направлением спуска в точке x ∈ Rn, если существует такое d > 0, что
f(x + lS) < f(x) и x + lS ∈ Rn для всех l ∈ (0,d).
Вначале рассмотрим случай, когда ограничения линейные и задача нелинейного программирования имеет вид: минимизировать
f(x)
(2.109)
при условиях
Ax ≤ b, (2.110)
(2.111)
Hx = h, где A = ||aij|| — матрица порядка (m×n); H — матрица порядка (i×n);
b — m-мерный вектор; h — l-мерный вектор.
Справедливо следующее утверждение.
Лемма 1. Рассмотрим задачу минимизации (2.109) — (2.111).
Пусть x — допустимая точка и предположим, что A1x = b1,
A1x < b1, где AÒ = A1Ò , A2Ò , a bÒ = b1Ò , b2Ò .
(
)
(
)
Ненулевой вектор S является возможным направлением в точке x в том и только в том случае, если A1S ≤ 0 и HS = 0. Если, кроме
того, D f(x)ТS < 0, то S является возможным направлением спуска.
Проиллюстрируем геометрически множество возможных направлений спуска на следующем примере.
114
Пример
Минимизировать целевую функцию
(x1 – 6)2 + (x2 – 2)2
при условиях
–x1 + 2x2 ≤ 4,
3x1 + 2x2 ≤ 12,
–x1 ≤ 0,
–x2 ≤ 0.
Т
Выберем x = [2, 3] и заметим, что первые два ограничения являются активными в этой точке. В частности, матрица A1 из выé-1 2ù
ú . Следовательно, векшеприведенной леммы 1, равна A = ê
ê 3 2ú
ë
û
тор S является возможным направлением тогда и только тогда,
когда A1S ≤ 0, т. е. в том случае, если
–S1 + 2S2 ≤ 0,
3S1 + 2S2 ≤ 0.
На рис.������������������������
�����������������������
2.4 изображена совокупx2
1
ность этих направлений, образую4
f(x)
щая конус возможных направлений.
3
Здесь 1 — конус возможных направ2
лений; 2 — конус возможных направлений спуска; 3 — линии уров1
ня целевой функции; 4 — полупро4
1
2 3
x1
странство направлений спуска.
1
Если вектор S удовлетворяет неравенству ∇f(x)ТS = 8S1 + 2S2 < 0, то он
Рис. 2.4
является направлением спуска. Таким образом, совокупность возможных направлений спуска определяется открытым полупространством {(S1; S2): –8S1 + 2S2 < 0}.
Пересечение конуса возможных направлений с этим полупространством задает множество всех возможных направлений спуска.
∆
Построение возможных направлений спуска
Пусть задана текущая допустимая точка x. Как показано в
лемме 1, ненулевой вектор S будет возможным направлением
спуска, если ∇f(x)ТS < 0, A1S ≤ 0, HS = 0. Естественный подход к
построению такого направления заключается в минимизации
115
∇f(x)ТS при условиях: а) A1S ≤ 0, б) HS = 0. Однако, если существует такой вектор S*, что ∇f(x)ТS* < 0 и выполняются условия а) и б),
то оптимальное значение целевой функции сформулированной
задачи равно ∞, так как ограничениям этой задачи удовлетворяет
любой вектор lS*, где l — любое большое число.
Следовательно, в задачу должно быть включено условие, которое бы ограничивало вектор S. Такое ограничение называют нормирующим. Возможны различные формы нормирующего ограничения. Ниже приведены три задачи отыскания (наилучшего)
направления спуска, в каждой из которых используются различные условия нормировки [4].
Задача P1: минимизировать ∇f(x)ТS
при условиях:
A1S ≤ 0,
HS = 0,
–1 ≤ Sj ≤ 1, j = 1,n.
Задача P2: минимизировать ∇f(x)Т
при условиях:
A1S ≤ 0,
HS = 0,
SТS ≤ 1.
Задача P3: минимизировать ∇f(x)ТS
при условиях:
A1S ≤ 0,
HS = 0,
∇f(x)ТS ≤ –1.
Задачи P1 и P3 являются задачами линейного программирования, и, следовательно, их можно решить симплекс-методом.
Так как S = 0 является допустимой точкой в каждой из приведенных выше задач, а значение целевой функции в этой точке
равно нулю, то ее оптимальное значение в задачах P1, P2, P3 не может быть положительным. Если минимальное значение целевой
функции в задачах P1, P2, P3 отрицательно, то по лемме 1 нами
построено возможное направление спуска. С другой стороны, если минимальное значение целевой функции равно нулю, то, как
будет показано ниже, точка x является точкой Куна — Таккера.
116
Рассмотрим задачу минимизации f(x) при условиях Ax ≤ b,
Hx = h.
Лемма 2. Пусть x — допустимая точка, в которой
A1x ≤ b1, A2x ≤ b2,
где AÒ = éê A1Ò , A2Ò ùú ; bÒ = éê b1Ò , b2Ò ùú . Вектор x является точкой Куна —
ë
û
ë
û
Таккера тогда и только тогда, когда оптимальное значение целевой функции в задачах P1, P2, P3 равно нулю.
Д о к а з а т е л ь с т в о . Как следует из теоремы Куна — Таккера, x будет точкой Куна — Таккера тогда и только тогда, когда
существуют векторы u ≥ 0, υ такие, что
Ñf (x)+ A1Ò u + HÒ υ = 0. (2.112)
Как известно, система (2.112) разрешима тогда и только тогда,
когда система неравенств ∇f(x)ТS < 0, A1S ≤ 0, HS = 0 не имеет решений, т.������������������������������������������������������
�����������������������������������������������������
е. когда оптимальное значение целевой функции в задачах P1, P2, P3 равно нулю.
Итак, мы показали, как найти возможное направление спуска.
Пусть теперь xk — текущая точка; Sk — возможное направление спуска. В качестве следующей точки xk + 1 выбирается
xk + lkSk, где длина шага lk определяется из решения следующей
задачи одномерной оптимизации: минимизировать
при условиях:
f(xk + lkSk) по lk
(2.113)
A(xk + lkSk) ≤ b,
(2.114)
H(xk + lkSk) = h. (2.115)
Предположим, что A1x = b1, A2x < b2. Тогда задачу (2.113)—
(2.115) можно упростить следующим образом. Заметим, что
Hxk = h, HSk = 0. Значит, ограничение (2.111) излишне. Так как
A1x = b1, A1Sk ≤ 0, то A1(xk + lkSk) ≤ b1 для всех l ≥ 0. Итак, остается только одно ограничение A2(xk + lkSk) ≤ b2, и задача оптимизации (2.113)—(2.115) приводится к следующей задаче одномерной
оптимизации: минимизировать
f(xk + lkSk) по lk
(2.116)
при условии
0 ≤ lk ≤ lmax,
117
где
ì
ì
ü
ï
ïüï
ï
ï
ï
ï
ï
ï
ïïmin ïí bi | Si > 0ïý, åñëè Si > 0ïïï
ï
ï
λ max = íï
ýï,
ï
ï
S
ï
ïï
ï
ï
i
ï
ï
î
þ
ï
ï
ïï
ï

ï
ï ¥, åñëè Si £ 0 äëÿ âñåõ i ïþï î
(2.117)
b = b3 - A3 xk , S = A3 Sk . (2.118)
Алгоритм метода Зойтендейка
в случае линейных ограничений
Пусть требуется найти minf(x) при условиях Ax ≤ b, Hx = 0.
Алгоритм метода состоит из предварительного и основного этапов. Последний в свою очередь состоит из однотипных итераций.
Предварительный этап:
Найти начальную допустимую точку, для которой Ax1 ≤ b,
Hx1 = h. Положить k = 1 и перейти к основному этапу.
О с н о в н о й э т а п (k-я итерация):
Шаг 1. Пусть задан вектор xk. Предположим, что A1xk = b1 и
A2xk = b2. В качестве возможного направления спуска Sk взять
оптимальное решение следующей задачи: минимизировать
∇f(xk)ТS
(2.119)
при условиях:
A1S ≤ 0;
∇f(xk)ТSk* = 0,
HS = 0; (2.120)
–1 ≤ Sj ≤ 1, j = 1,n. (2.121)
Если
то остановиться, и xk — оптимальное
���������������
решение (точка Куна — Таккера). В противном случае перейти ко
второму шагу.
Шаг 2. Положить lk* равным оптимальному решению приведенной ниже задачи одномерной оптимизации: минимизировать
f(xk + lkSk)
при условии
0 ≤ l ≤ lmax,
где lmax задается формулой (2.117).
Для решения этой задачи можно применить любой метод одномерного поиска, например метод Фибоначчи.
118
Вычислить xk + 1 = xk + lk*Sk, определить новое множество активных ограничений для решения xk + 1и переопределить A1 и A2. Заменить k на k + 1 и перейти к первому шагу следующей итерации.
2.6.2. Задачи с нелинейными ограничениями-неравенствами
Рассмотрим задачу, в которой допустимая область задается системой ограничений-неравенств нелинейного типа: минимизировать
f(x)
(2.122)
при условиях
gi (x)£ 0, i = 1,m.
(2.123)
В следующей теореме формулируются достаточные условия,
при которых вектор xk является возможным направлением спуска [2, 18].
Теорема 2. Рассмотрим задачу нелинейного программирования
(2.122), (2.123). Пусть xk — допустимая точка, а J — множество
индексов, активных в этой точке ограничений, т. е. J = {i:gi(x) = 0}.
Предположим, кроме того, что функции f(x), gi(x) для i ∈ J дифференцируемы в точке xk, а функции gi(x) для i∉J непрерывны в этой
точке ∇gi(xk)TS < 0, если ∇f(xk)ТSk* < 0, ∇gi(xk)ТSk* < 0 при i ∈ J, то
вектор S является возможным направлением спуска.
Д о к а з а т е л ь с т в о . Пусть вектор S удовлетворяет неравенствам ∇f(xk)ТSk* < 0, ∇gi(xk)ТSk* < 0 при i ∈ J. Сначала укажем, что для i∉J выполняются неравенства gi(xi) < 0 и так как
gi(x) непрерывны в точке xk, то gi(xk + lS) ≤ 0 для достаточно малых l > 0. В силу дифференцируемости функции gi(x), i ∈ J имеем gi(xk + lS) = gi(xk) + l∇gi(xk)TS + l||S||a(xk,lS), где a(xk,lS) → 0
при l → 0. Так как ∇gi(xk)TS < 0, то gi(xk + lkSk) < gi(xk) = 0 при
достаточно малых l > 0. Следовательно, точка xk + lkSk допустима для малых значений l. Аналогично из ∇gi(xk)TS < 0 следует, что для достаточно малых l > 0 x2
1 g3(x)
g4(x)
f(xk + lkSk) < f(xk).
Таким образом, вектор Sk яв3
6
3
ляется возможным направлением
2
спуска.
2
5
1
На рис.����������������������
���������������������
2.5 показана совокуп4
ность возможных направлений в
x1
1
0
2
3
точке x, где 1 — первое ограничение, 2 — третье ограничение, 3 —
Рис. 2.5
∆
∆
119
четвертое ограничение, 4 — второе ограничение, 5 — возможные
направления спуска, 6 — линии уровня целевой функции. Вектор S, удовлетворяющий равенству
∇gi(xk)TS = 0,
является касательным к кривой линии (или поверхности) gi(x) = 0.
Поскольку функции gi(x) нелинейны, то движение вдоль такого
вектора может привести в недопустимую точку, что вынуждает
требовать выполнения строгого неравенства ∇gi(xk)TS < 0, i ∈ J.
Чтобы найти вектор S, удовлетворяющий неравенствам
∇f(xk)TS < 0, ∇gi(xk)TS < 0
для i ∈ J, вполне естественно минимизировать максимум из величин ∇f(xk)TS и ∇gi(xk)TS для i ∈ J. Обозначим этот максимум
через z. Вводя нормирующие условия –1 ≤ Sj ≤ 1 для всех j = 1,n ,
приходим к следующей вспомогательной задаче нахождения возможного направления спуска: минимизировать
z
(2.124)
при условиях:
∇f(xk)TS – z ≤ 0,
(2.125)
∇gi(xk)TS – z ≤ 0, i ∈ J,
(2.126)
–1 ≤ Sj ≤ 1, j = 1,n. (2.127)
Пусть (z*, S*) — оптимальное решение этой задачи линейного программирования. Если z* < 0, то, очевидно, S* — возможное
направление спуска. Если же z* = 0, то, как будет показано ниже,
точка xk является точкой Куна — Таккера.
Д о к а з а т е л ь с т в о . Оптимальное значение целевой функции z в задаче (2.124)—(2.127) равно нулю тогда и только тогда,
когда система неравенств ∇f(xk)TS < 0, ∇gi(xk)TS < 0 при i ∈ J несовместна. Как известно, для того чтобы эта система не имела решения, необходимо и достаточно существование таких чисел u0 > 0,
u1 ≥ 0, i ∈ J, что
u0Ñf (x)+ å ui Ñgi (x) = 0
iÎJ
(2.128)
и либо u0 > 0, либо u1 ≥ 0 для некоторого i ∈ J, а это одно из условий
оптимальности теоремы Куна — Таккера.
120
Алгоритм метода Зойтендейка
в случае нелинейных ограничений-неравенств
Предварительный этап:
Выбрать точку x, для которой gi(x) ≤ 0, i = 1,m. Положить k = 1
и перейти к основному этапу.
Основной этап:
Шаг 1. Положить J = {i:gi(xk) = 0} и решить задачу: минимизировать
z
(2.129)
при условиях
∇f(xk)TS – z ≤ 0, (2.130)
∇gi(xk)TS – z ≤ 0, i ∈ J, –1 ≤ Sj ≤ 1, j = 1,n. (2.131)
Пусть (zk, Sk) — оптимальное решение задачи (2.129)—(2.130).
Если zk = 0, то конец алгоритма и точка xk — оптимальное решение такой задачи одномерной оптимизации. Если zk < 0, то перейти ко второму шагу.
Шаг 2. Минимизировать
f(xk + lSk)
(2.132)
при условии
0 ≤ l ≤ lmax, (2.133)
где
λ max = sup {λ : gi (xk + λ k Sk ) £ 0, i = 1,m}. (2.134)
Положить x = xk + lkSk, заменить k на k + 1 и перейти к первому шагу следующей итерации.
Пример
Рассмотрим задачу: минимизировать
(2x12 + 2x22  – 2x1x2 – 4x1 – 6x2)
при условиях
x1 + 5x2 ≤ 5,
2x12 - x2 £ 0,
–x1 ≤ 0,
–x2 ≤ 0.
Будем решать эту задачу методом Зойтендейка, начиная поиск из точки x1 = [0,000, 0,75]T. Заметим, что ∇f(x) = [4x1 – 2x2 – 4;
4x2 – 2x1 – 6]T.
121
Первая итерация:
Шаг 1. В точке x1 = [0,000, 0,75]T имеем ∇ f(x) = [–5,5; –3,0]T, а
множество индексов активных ограничений есть J = 3. При этом
∇g(x1) = [–1; 0]T. Задача нахождения возможного направления
имеет вид: минимизировать
z
при условиях:
–5,5S1 – 3,0S2 – z ≤ 0,
–S1 – z ≤ 0,
–1 ≤ Sj ≤ 1, j = 1,2.
Можно проверить, решая эту задачу симплекс-методом, что
оптимальным решением этой задачи является вектор S1 = [1,00;
–1,00]T и z1 = –1,00.
Шаг 2 (линейный поиск). Любая точка по направлению
S1 = [1,00; –1,00]T из точки x1 = [0,000, 0,75]T может быть представлена в виде x1 + lS1 = [l; 0,75 – l]T, а соответствующее ей значение целевой функции равно f(x1 + lS1) = 6l2 + 2,5l – 3,375. Максимальное значение l, для которого точка x1 + lS1 остается допустимой, равно lmax = 0,414. Итак, решаем задачу одномерной минимизации: минимизировать
6l2 + 2,5l – 3,375
при условии
0 ≤ l ≤ 0,414.
Оптимальное значение l10 = 0,2083. Итак,
x2 = x1 + l10S1 = [0,2083, 9,5417]T.
Вторая итерация:
Шаг 1. В точке x2 имеем ∇f(x2) = [–4,25, –4,25]T. Активных
ограничений в этой точке нет, поэтому задача определения направления спуска имеет вид: минимизировать
z
при условиях
–4,25S1 – 4,25S2 – z ≤ 0,
–1 ≤ Sj ≤ 1, j = 1,2.
Оптимальным решением является вектор S2 = [1,00; 1,00]T, а
z2 = –8,5.
Шаг 2. Легко проверить, что lmax, при котором точка x2 + lS2
допустима, равна 0,3472. При этом активным становится ограни122
чение x1 + 5x2 ≤ 5. Оптимальное значение l20 находим в результате
решения задачи: минимизировать
f(x2 + lS2) = 2l2 – 85l – 3,63564
при условии
0 ≤ l ≤ lmax = 0,3472.
Оно равно 0,3472, так что x3 = x2 + l20S2 = [0,555, 0,889]T.
Остальные итерации проводятся аналогично. Результаты вычислений на первых четырех итерациях метода приведены в
табл. 2.9.
Таблица 2.9
k
1
2
3
4
xk
0,00;
–0,75
0,208;
–0,541
0,555;
–0,889
0,648;
–0,840
f(xk)
–3,375
–3,635
–6,346
–6,468
∇f(xk)
–5,50;
–3,00
–4,25;
–4,25
–3,556;
–3,555
–3,088;
–3,937
Поиск направления (линейный поиск)
Sk
zk
lmax
lk
xk + 1
1,000;
0,2083;
–1,000 0,4140 0,2088
–1,000
–0,5417
1,000;
0,555;
–8,5 0,3472 0,3472
–1,000
–0,889
1,000;
0,648;
–1,663 0,0924 0,0924
–0,533
–0,840
–0,517;
0,630;
–2,340 0,0343 0,0343
1,000
–0,874
На рис. 2.6 показан процесс поиска оптимума. Заметим, что
следующей точкой будет x5 = x4 + l40S4 = [0,630, 0,874]T, а значение целевой функции в этой точке равно –6,544, тогда как в оптимальной точке xopt = [0,6589, 0,8682]T значение целевой функции
равно –6,559.
x2
1,0
x1
x0
x1
0,5
0,5 x 1
Рис. 2.6
123
2.6.3. Метод возможных направлений для нелинейных
ограничений-неравенств и равенств
Метод возможных направлений может быть модифицирован
на случай, когда кроме ограничений-неравенств имеются нелинейные ограничения-равенства. Для иллюстрации обратимся к рис. 2.5, который отвечает единственному ограничениюравенству. Для заданной допустимой точки xk в этом случае не
существует ненулевого направления S такого, что h(xk + lSk) = 0,
l ∈ (0,d), для некоторого d > 0.
h(xk )
Это затруднение можно преодо1
леть, если двигаться вдоль каxk
сательного направления Sk, для
2
xk+1
которого ∇h(xk)TSk = 0, а затем
скорректировать это движение и
h(x)= U
вернуться в допустимую область
Рис. 2.7
(рис. 2.7).
Поясним этот подход на примере: минимизировать
при условиях
f(x) (2.135)
gi (x)£ 0, i = 1,m,
hi (x) = 0, i = m + 1, l. (2.136)
Пусть xk — допустимая точка и J = {i:gi(x) = 0}. Будем решать
следующую задачу линейного программирования: минимизировать
∇f(xk)TS (2.137)
при условиях
∇gi(xk)TS ≤ 0, i ∈ J, (2.138)
Ñhi (xk )T S = 0, i = m + 1, l. (2.139)
Искомое направление Sk является касательным к ограничениям-равенствам и к некоторым активным нелинейным
ограничениям-неравенствам. Линейный поиск вдоль Sk и последующее возвращение в допустимую область приводят в точку
xk + 1, после чего процесс поиска повторяется. Один из существенных недостатков рассмотренного варианта метода состоит в том,
что если точка xk, которая задает текущее решение, окажется
124
близка к границе, определяемой одним из ограничений, а оно не
используется в процессе нахождения направления движения, то
может оказаться, что, сделав лишь небольшой шаг, мы окажемся
на границе, определяемой этим ограничением. Поэтому целесообразно расширить множество активных ограничений J, определив его следующим образом:
J = {i:gi(x) + e ≥ 0},
где e ≥ 0 — достаточно малое число.
2.7. Модификация метода возможных направлений
Анализ алгоритма Зойтендейка показал, что он может не сходиться к точке Куна — Таккера. Трудность здесь заключается в
том, что длина шагов вдоль генерируемых направлений стремится к нулю, вызывая «заедание» процесса в неоптимальной точке.
Во избежание этого Топкинс и Кейнотт разработали модификацию метода возможных направлений. Эта модификация гарантирует сходимость алгоритма к точке Куна — Таккера.
Итак, рассмотрим задачу: минимизировать
f(x)
при условиях
gi(x) ≤ 0, j = 1,m.
При заданной допустимой точке x возможное направление находят, решая следующую задачу линейного программирования:
минимизировать
z
(2.140)
при условиях
∇f(xk)TS – z ≤ 0, (2.141)
T
Ñgi (x) S - z £-gi (x), i = 1,m, (2.142)
–1 ≤ Sj ≤ 1, j = 1,n. (2.143)
Как видим, в этой модификации при определении направления движения учитываются все ограничения как активные, так
и неактивные.
В отличие от метода возможных направлений, описанного выше, здесь мы не сталкиваемся с неожиданным изменением направления, когда приближаемся к границе множества допустимых решений, определяемой неактивным в текущей точке ограничением.
Дадим описание модифицированного алгоритма возможных
направлений.
125
Начальный этап:
Выбрать начальную точку x1, для которой g1(x1) ≤ 0 при i = 1,m.
Положить k = 1 и перейти к основному этапу.
Основной этап:
Шаг 1. Положить (zk,Sk) равным оптимальному решению задачи линейного программирования: минимизировать
z
(2.144)
при условиях
∇f(xk)TS – z ≤ 0, (2.145)
T
Ñgi (xk ) S - z £-gi (xk ), i = 1,m,
–1 ≤ Sj ≤ 1, j = 1,n. (2.146)
(2.147)
Если zk = 0, то остановиться, xk является точкой Куна — Таккера. В противном случае (при zk < 0) перейти ко второму шагу.
Шаг 2. Положить lk равным оптимальному решению задачи:
минимизировать
f(xk + lkSk)
(2.148)
при условии
0 ≤ l ≤ lmax,
где
λ max = sup {λ : gi (xk + λ kSk ) £ 0, i = 1,m}.
(2.149)
Положить xk + 1 = xk + lkSk, заменить k на k + 1 и перейти к первому шагу.
Пример
Рассмотрим задачу: минимизировать
(2x12 + 2x22 - 2x1x2 - 4x1 - 6x2 )
при условиях:
x1 + 5x2 ≤ 5,
2x12 - x2 £ 0,
–x1 ≤ 0,
–x2 ≤ 0.
Применим для решения модифицированный алгоритм возможных направлений. Выберем в качестве начальной точки
x1 = [0,000,0,75]T. Заметим, что в этой точке ∇f(x) = [4x1 – 2x2 – 4;
126
4x2 – 2x1 – 6]T = [–5,50; –3,00], а градиенты функций-ограничений
соответственно равны [1; 5]T; [4x1; –1]T; [–1; 0]T; [0; –1]T.
Первая итерация:
Шаг 1. В точке x1 = [0,000, 0,75]T имеем ∇f(x) = [4x1 – 2x2 – 4;
4x2 – 2x1 – 6]T = [–5,50; –3,00]. Задача поиска направления спуска
имеет вид: минимизировать
z
при условиях
–5,5S1 – 3,0S2 – z ≤ 0,
S1 – 0,5S2 – z ≤ 1,25,
–S2 – z ≤ 0,75,
–S1 – z ≤ 0,
–S2 – z ≤ 0,75,
–1 ≤ Sj ≤ 1, j = 1,2.
В правой части ограничений этой задачи, кроме первого, стоят
значения g1(x). Заметим, что одно из ограничений (–S2 – z ≤ 0,75)
повторяется дважды, следовательно, одно из ограничений можно
опустить, Оптимальным решением этой задачи является вектор
S1 = [0,7143, 0,0357]T, при котором z = 0,7143.
Шаг 2 (линейный поиск). Решаем задачу: минимизировать
f(x1 + lS1) = 0,972l2 – 4,036l – 3,75
Максимальное значение lmax, для которого точка x1 + lS1 допустима, определяется соотношением (2.149) и равно lmax = 0,84.
Тогда оптимальным решением задачи будет l10 = 0,84.
Таким образом, x2 = x1 + l10S1 = [–3,04, –4,32]T.
Вторая итерация:
Шаг 1. В точке x2 имеем ∇f(x2) = [–3,04, –4,32]T. В качестве направления S2 берется оптимальное решение следующей задачи:
минимизировать
z
при условиях:
–3,04S1 – 4,32S2 – z ≤ 0,
S1 + 5,0S2 – z ≤ 0,8,
2,4S1 – S2 – z ≤ 0,
–S1 – z ≤ 0,6,
127
–S2 – z ≤ 0,72,
–1 ≤ Sj ≤ 1, j = 1,2.
Оптимальным решением этой задачи является вектор
S2 = [–0,07123, 0,1167]T, z2 = –0,2877.
Шаг 2. Максимальное значение l, для которого точка x2 + lS2
допустима, равно lmax = 1,562. Легко можно проверить, что
f(x2 + lS2) = 0,05l2 – 0,2876l – 5,8272 достигает минимума на отрезке 0 ≤ l ≤ 1,562 в точке l2 = 1,562. Следовательно,
T
x3 = x2 + λ20 S2 = [0,555, 0,889] .
Далее этот процесс повторяется. В табл.�����������������������
����������������������
2.10 приведены результаты вычислений на первых пяти итерациях. Траектория двиx2
1,0
x3
x5
x1
x6
x4
x2
0,5
1,0 x 1
0,5
Рис. 2.8
Таблица 2.10
k
xk
1
0,00;
–0,75
0,600;
–0,720
0,489;
–0,902
0,6385;
–0,8154
0,616;
–0,877
f(xk)
Первый шаг
∇f(xk)
2
3
4
5
128
–3,375 –5,50;
–3,00
–5,827 –3,04;
–4,32
–6,145 –3,849;
–3,369
–6,343 –5,63;
–4,02
–6,508 –3,29;
–3,725
Sk
zk
lmax
lk
0,714;
–0,0357
–0,0712;
–0,117
0,0957;
–0,0555
–0,016;
–0,0433
0,0268;
–0,0132
–0,714
0,84
0,84
–0,288 1,562 1,562
–0,1816 1,564 1,564
–0,0840 1419 1,419
–0,0303 1,455 1,455
Второй
шаг
xk + 1
0,600;
–0,720
0,489;
–0,902
0,6385;
–0,8154
0,616;
–0,877
0,655;
–0,858
жения точки, задающей текущее решение, показана на рис. 2.8.
В конце пятой итерации получена точка [0,655, 0,856]T со значением целевой функции –6,559. Заметим, что в оптимальной точке [0,655, 0,856]T значение целевой функции равно –6,613.
2.8. Метод проекции градиента Розена
Направлением наискорейшего спуска является антиградиент
целевой функции. Однако при наличии ограничений движение
вдоль направления наискорейшего спуска может привести в недопустимые точки. В методе проекции градиента, предложенном
Розеном, антиградиент проектируется таким образом, что значение целевой функции улучшается и в то же время обеспечивается
допустимость точек траектории движения. Прежде чем изложить
метод, рассмотрим некоторые необходимые понятия из проективной геометрии.
О п р е д е л е н и е 1 . Матрица P порядка n×n называется матрицей проектирования, если P = PT и PP = P.
Справедливы следующие утверждения, определяющие свойства матрицы проектирования:
1. Если Pn×n — матрица проектирования, то она положительно
полуопределена.
2. Для того чтобы P была матрицей проектирования, необходимо и достаточно, чтобы (I – P) была матрицей проектирования.
3. Пусть P — матрица проектирования, а Q = I – P. Тогда подпространства L = {Px:x ∈ En} и L1 = {Qx:x ∈ En} являются ортогональными. Кроме того, любая точка x ∈ En может быть представлена однозначно в виде p + q, где p ∈ L, q ∈ L1.
Доказательство:
1. Пусть P — матрица проектирования, а x — произвольная
точка из En. Тогда xTPx = xTPTPx = ||Px||2 ≥ 0 и, следовательно, P —
положительно полуопределена.
2. Справедливость второго утверждения следует из определения матрицы проектирования.
3. Ясно, что L и L1 — линейные подпространства. Заметим, что
PTQ = P(I – P) = P – PP = 0, и, следовательно, L и L1 ортогональны.
Пусть теперь x — произвольная точка из En. Тогда
x = Ix = (P + Q)x = Px + Qx = p + q, (2.150)
где p ∈ L,q ∈ L1.
Покажем единственность этого представления.
Предположим, что
129
x = p′ + q′,
где
p′ ∈ L, q′ ∈ L1. (2.151)
Сравнивая выражения (2.148) и (2.149), получим p – p′ = q – q′.
Следовательно, p–p′ ∈ L, q–q′ ∈ L1, а так как единственной точкой
пересечения L и L1 является начало координат, то p – p′ = q – q′ = 0.
Таким образом, представление x единственное.
Задачи с линейными ограничениями
Рассмотрим задачу нелинейного проектирования: минимизировать функцию f(x):
f(x) → min (2.152)
при условиях
Ax ≤ B, Hx = b, (2.153)
где A — матрица порядка m×n; B — m-мерный вектор; H — матрица
порядка l×n; b — l-мерный вектор; функция f(x) дифференцируема.
В заданной допустимой точке x направлением наискорейшего спуска является вектор –∇f(x). Однако движение вдоль направления
–∇f(x) может нарушить допустимость. Чтобы ее сохранить, спроектируем –∇f(x) так, чтобы двигаться вдоль направления S = –P∇f(x),
где P — соответствующая матрица проектирования.
Лемма 1. Рассмотрим задачу минимизации (2.152)—(2.153).
Пусть x — допустимая точка и предположим, что A1x = b1,
A2x < b2, где A T = éê A1T , A2T ùú , а bT = éê b1T , b2T ùú .
ë
û
ë
û
Ненулевой вектор S является возможным направлением в
точке x в том и только в том случае, если A1S ≤ 0 и HS = 0. Если,
кроме того,∇f(x)TS ≤ 0, то S является возможным направлением
спуска.
В следующей лемме приводится вид соответствующей матрицы проектирования P и доказывается, что –P∇f(x) является возможным направлением спуска.
Лемма 2. Рассмотрим задачу (2.152)—(2.153). Пусть x — допустимая точка, для которой A1x = b1, A2x < b2, где A T = éê A1T , A2T ùú , а
ë
û
bT = éê b1T , b2T ùú . Кроме того, предположим, что функция f(x) диффеë
û
ренцируема в x. Если P — матрица проектирования такая, что
P∇f(x) ≠ 0, то вектор S = –P∇f(x) является направлением спуска
для функции f(x) в точке x. Кроме того, если M T = [ A1T , H T ] имеет полный ранг и если
P = I – MT(MMT)–1M, (2.154)
то S — возможное направление спуска.
130
Д о к а з а т е л ь с т в о . Заметим, что
Ñf (x)T S = -Ñf (x)T PÑf (x) = -Ñf (x)T PT PÑf (x) =
2
= - PÑf (x) £ 0.
(2.155)
Таким образом, согласно лемме 1 вектор S = –P∇f(x является
направлением спуска. Кроме того, если P = I – MT(MMT)–1M, то
MS = –MP∇f(x) = 0, так что A1S = 0 и HS = 0 и по лемме����������
���������
1 направление S будет в таком случае возможным.
Заметим, что матрица P, определяемая выражением (2.152),
является действительно матрицей проектирования, удовлетворяющей равенствам P = PT и PP = P. Кроме того, MP = 0, т. е.
A1P = 0, HP = 0. Таким образом, матрица P проектирует каждую
вектор-строку матриц A1, H в нулевой вектор. А так как строками
матриц A1, H являются градиенты функций активных ограничений, то P — это матрица, проектирующая градиенты функций
активных ограничений в нулевой вектор.
На рис.�����������������
����������������
2.9 показан проx
1
цесс проектирования градиен- 2
та для задачи с ограничениями2
A
неравенствами ( 1 — линии уровf (x) 1
–P
f
(x)
ня целевой функции; 2 — оптимальное решение).
В точке х активным является
только одно ограничение, градиРис. 2.9
ент которого равен A1. Заметим,
что S = –P∇f(x) — возможное направление спуска.
Если P∇f(x) ≠ 0, то, как было показано, вектор S = –P∇f(x) является возможным направлением спуска. Рассмотрим теперь случай, когда P∇f(x) = 0. Тогда
PÑf (x) = [I - M T (MM T )-1 M ]Ñf (x) = Ñf (x) + M Tw =
= Ñf (x) + A1Tu + HTv,
(2.156)
где wT = –(MMT)–1M∇f(x) = [uT,vT].
Если u ≥ 0, то точка х удовлетворяет условиям Куна — Таккера. Если же u1 < 0, то, как показано ниже, можно определить но Ñf (x)
вую матрицу проектирования P такую, что вектор S = -P
будет возможным направлением спуска.
Теорема 1. Рассмотрим задачу нелинейного программирования (2.150)—(2.151). Пусть х — допустимая точка, для которой
A1x = b1, A2x < b2, где A T = éê A1T , A2T ùú , а bT = éê b1T , b2T ùú . Предполоë
û
ë
û
131
жим, что M T = [ A T , H T ] — матрица полного ранга и
1
P = I – MT(MMT)–1M. Далее предположим, что P∇f(x) = 0,
wT = –(MMT)–1M∇f(x) = [uT,nT]. Если u ≥ 0, то х является точкой
Куна — Таккера. В противном случае пусть некоторая компонен T = [ A T , H T ]. Здесь A получита uj вектора u отрицательна, а M
1
1
ли из матрицы A1 вычеркиванием строки, соответствующей uj.
 T (MM
  T )-1 M
 , и пусть S
 = -P Ñf (x). Тогда
Обозначим P = I - M
 является возможным направлением спуска.
вектор S
Д о к а з а т е л ь с т в о . Рассмотрим соотношение (2.155), справедливое для случая, когда P∇f(x) = 0. Если u ≥ 0, то точка х — это
точка Куна – Таккера (т. е. оптимальное решение).
Предположим, что ∃i, ui < 0 и пусть uj < 0. Покажем, что
P Ñf (x) ¹ 0. Предположим противное, т. е. что P Ñf (x) = 0. Поло  T )-1 M
 Ñf (x). По определению P имеем
жим w T = -(MM
 T (MM
  T )-1 M
 ]Ñf (x) =
P Ñf (x) = [I - M
 T w = 0.
= Ñf (x) + M
(2.157)
Заметим, что вектор ( A1T u + H Tv) может быть представлен в
 T w + u r T , где rj является j-й строкой матрицы A1. Таким
виде M
j j
образом, из (2.156) имеем
 T w + u r T = 0.
Ñf (x) + M
j j
(2.158)
Вычитая
выражение
(2.158)
из
(2.157),
получим
T 
T

Так
как
u
≠ 0,
то
это
противоречит
предполоM (w - w) - uj rj = 0.
j
 имеет полный ранг. Следовательно,
жению о том, что матрица M
P Ñf (x) ¹ 0 и по лемме 2 вектор S является направлением спуска.
Покажем теперь, что S — возможное направление (спуска).
  = 0, следовательно:
Заметим, что MP
é A 1 ù
 S = -MP
  Ñf (x) = 0.
ê úS = M
êHú
êë úû
(2.159)
По лемме 2 вектор S является возможным направлением, если
A1S ≤ 0 и HS = 0. Чтобы убедиться в том, что S — возможное направление, достаточно, учитывая (2.159), показать, что rjS ≤ 0.
  T = 0, получим
Умножим (2.156) на rj P . Учитывая, что PM
132
 T w + u r T ) = -r S + u r Pr
 T
rj P Ñf (x) + rj P (M
j j
j
j j j = 0. (2.160)
 положительно полуопределена, так что
По лемме 2 матрица P
T

rj Prj ³ 0. Так как uj < 0, то из выражения (2.160) следует, что
rjS ≤ 0.
Алгоритм метода проекции градиента
(случай линейных ограничений)
Итак, пусть задана задача нелинейного программирования
вида: минимизировать
f(x)
при условиях
Ax ≤ B, Hx = h.
Предварительный этап:
Выбрать точку х1, для которой Ax ≤ B и Hx1 = h. Представим AT
и bT в виде A T = [ A1T ; A2T ] и bT = [b1T ; b2T ] соответственно A1x = b1,
A2x < b2. Положить k = 1 и перейти к основному этапу.
Основной этап:
Шаг 1. Положить MT = [ A1T , H T ]. Если M не содержит ни
одного столбца, то положить P = I. В противном случае положить
P = I – MT(MMT)–1M. Положить Sk = –P∇f(xk). Если Sk ≠ 0, то перейти ко второму шагу. Если Sk = 0 и M не содержит ни одного столбца, то остановиться. В противном случае положить
w = –(MMT)–1M∇f(xk).
Пусть wT = [uT,nT]. Если u ≥ 0, то остановиться; хk– точка Куна — Таккера. Иначе, выбрать отрицательную компоненту uj этого вектора и переопределить матрицу A1, вычеркивая строку, соответствующую uj, и повторить первый шаг.
Шаг 2. Взять в качестве lk оптимальное решение следующей
задачи линейного поиска: минимизировать f(x0 + lSk) при условии 0 ≤ l ≤ lmax, где lmax определяется в соответствии с соотношением
ì
ï bi ü
ï
λ max = min ï
í ï
ý, если Si > 0 и S > 0.
ï
S
ï iï
ï
î
þ
(2.161)
b = b2 - A2 xk , S = A2 Sk .
Положить xk + 1 = xk + lkSk, заменить k на k + 1 и перейти к первому шагу.
133
Пример
Решить методом проекции градиента задачу: минимизировать
f (x) = 2x12 + 2x22 - 2x1x2 - 4x1 - 6x2
при условиях:
x1 + x2 ≤ 2,
x1 + 5x2 ≤ 5,
–x1 ≤ 0,
–x2 ≤ 0.
Выберем в качестве начальной точки [0, 0]T.
Первая итерация:
Шаг 1. В точке x1 = [0, 0]T имеем ∇f(x1) = [–4, –6]T. Кроме того,
в точке x1 активными являются только ограничения неотрицательности, так что
é-1 0 ù
é1 1ù
ú.
ú ; A2 = ê
A1 = ê
ê 0 -1ú
ê1 5ú
ë
û
ë
û
é 0 0ù
ú и S1 = –P∇f(x1) = [0, 0]T,
ê 0 0ú
ë
û
Тогда P = I - A1T (A1A1T )-1 A1 = ê
учитывая, что ограничения-равенства в задаче отсутствуют, вычислим w = u = -(A1A1T )-1 A1Ñf (x1 ) = [-4, - 6]T .
Выберем u4 = –6 и удалим строку, отвечающую четвертому
 = [-1, 0].
ограничению из A1. Матрица A1 преобразуется к виду A
1
Преобразованная матрица проектирования принимает вид
é
ù
 T ( A A T )-1 A
 = ê0 0ú — направление движения S1
P = I - A
1
1 1
1 ê
ú
ë0 1û
é
ù é ù é ù
 Ñf (x ) = - ê0 0ú ´ ê-4ú = ê0ú .
определяется вектором S1 = -P
1
ê0 1ú ê-6ú ê6ú
ë
û ë û ë û
Шаг 2 (линейный поиск). Любая точка, полученная движением из точки x1 по направлению S1, может быть представлена в виде x2 = x1 + lS1 = [0; 6l]T. Соответствующее ей значение целевой
функции равно f(x2) = 72l2 – 36l. Максимальное значение l, для
которого точка x1 + lS1 допустима, получается в соответствии с
(2.158):
ïì 2 5 ïü 1
λ max = min í ,
ý= ,
ïîï 6 30 ïþï 6
134
тогда λ10 является оптимальным решением следующей задачи:
минимизировать
72l2­36l
при условии
1
0£λ £ ,
6
1
T
λ10 = , так что x1 = x1 + λ10S1 = [0, 1] .
6
Вторая итерация:
Шаг 1. В точке x2 = [0, 1]T имеем ∇f(x2) = [–6, –2]T. Кроме того,
в этой точке активными являются второе и третье ограничения,
поэтому получим
é 1 5ù
é1 1 ù
ú ; A2 = ê
ú.
A1 = ê
ê-1 0ú
ê0 -1ú
ë
û
ë
û
Далее вычисляем
é 0 0ù
ú
P = I - A1T ( A1 A1T )-1 A1 = ê
ê 0 0ú
ë
û
и, следовательно,
–P∇f(x2) = [0, 0]T .
Вычисляем
é2
28 ù
u = I - A1T ( A1 A1T )-1 A1Ñf (x2 ) = ê , - ú .
êë 5
5 úû
Так как u3 ≤ 0, то соответствующая строка [–1, 0] вычеркивает = [1, 5]. Матрица проектировася из A1, и получаем матрицу A
1
ния и соответствующее направление определяются следующим
образом:
é 25
5ù
ê
- ú
ê
ú
26
26
T
T
1
 ( A A ) A
 =ê
P = I - A
ú;
1
1 1
1
5
25
ê
ú
êú
ë 26 26 û
T
é 70
14 ù
S2 = -P Ñf (x2 ) = ê , - ú .
êë 13
13 úû
Так как для выбора направления S2 длина вектора S2 не имеет
T
é 70
14 ù
значения, то вектор ê , - ú эквивалентен вектору S2 = [5, –1]T.
êë 13
13 úû
135
Шаг 2 (линейный поиск). Итак, рассмотрим точку
x2 + lS2 = [5l; 1 – l]T, в которой значение целевой функции равно
f(x2 + lS2) = 62l2 – 28l – 4.
Максимальное значение l, для которого точка x2 + lS2 допустима, в соответствии с (2.157) равно
ì1 1ü 1
λ max = min íï ; ýï = .
ïîï 4 2 ïþï 4
Таким образом, λ20 определяется из решения следующей задачи: минимизировать
62l2 – 28l – 4
при условии
1
0£λ £ .
4
7
Оптимальным решением ее является λ20 = , так что
31
é 35 24 ù T
x3 = ê ;- ú .
êë 31 31 úû
Третья итерация:
é 32 160 ù T
ú .
Шаг 1. В точке вычисляем Ñf (x1 ) = ê- ;êë 31
31 úû
Кроме того, в этой точке активным является второе ограничение, т. е. A1 = [1, 5]. Находим матрицу проектирования
1 éê 25 -5ùú и направление поиска
P = I - A1T ( A1 A1T )-1 A1 =
26 êë-5 1 úû
S3 = –P∇f(x3) = [0, 0]T. Далее вычисляем
u = -A1T ( A1 A1T )-1 A1Ñf (x3 ) =
x2
1
0,5
0
x2
– f (x2)
– f (x1)
x1
Линия уровня
f =1,16
– f (x1)
x1
0,5
1
Линия уровня
f=0
Рис. 2.10
136
1,5
2
32
> 0.
31
Следовательно, точка x3 оптимальна.
Процесс решения задачи приведен на рис. 2.10.
Заметим, что градиент функции активного ограничения в
этой точке противоположен по
знаку ∇f(x3) и ∇ f(x3) + u∇g2(x3) = 0
32
для u = . Поэтому x3 — точка
31
Куна — Таккера. Так как f(x) выпукла, то точка x3 является точкой глобального оптимума.
2.9. Метод приведенного градиента
Метод приведенного градиента (МПГ) основан на сокращении
размерности задачи с помощью представления всех переменных
через множество независимых переменных. Впервые его предложил Вульф (1963) для задач линейного программирования с линейными ограничениями [3, 5, 7, 8]. Позднее этот метод был обобщен на случай нелинейных ограничений. Итак, рассмотрим следующую задачу: минимизировать f(x)
f(x) → min,
(2.162)
при условиях
Ax = A0, (2.163)
x ≥ 0, (2.164)
где матрица A — матрица порядка m×n ранга m; A0 — m-мерный
вектор, а функция f(x) непрерывно дифференцируема. Сделаем
следующее предположение о невырожденности матрицы A. Любые m столбцов A линейно независимы, и каждая крайняя точка
допустимой области имеет ровно m положительных переменных
и не более чем n – m нулевых компонент.
Пусть x — допустимая точка. По предположению о невырожденности матрица A может быть представлена в виде [B,N], где
T
T
B — невырожденная матрица m×m, а вектор xT = [xB
, xN
], где
xB > 0 — базисный вектор, а xN — небазисный вектор. Пусть
∇f(x)T = [∇Bf(x)T,∇Nf(x)T],
где ∇Bf(x)T — градиент функции f(x) по базисным переменным.
Направление S является возможным направлением спуска для
функции f(x) в точке x, если ∇f(x)TS < 0, AS = 0 и Sj ≤ 0, если xj = 0.
Определим возможное направление спуска в данной задаче.
T T
Представим вектор S в виде [SB
, SN ]. Заметим, что равенство
AS = BSB + NSN = 0 автоматически выполняется, если для любого
SN положить SB = –B–1NSN.
Обозначим через
T
] = Ñf (x)T -ÑB f (x)T B-1 A =
r T = [rBT ,rN
= [0,ÑN f (x)T ÑB (x)T B-1 N ]
приведенный градиент.
(2.165)
137
Исследуем ∇f(x)T:
Ñf (x)T S = ÑB f (x)T SB + ÑN f (x)T SN =
T
= [ÑN f (x)T -ÑB (x)T B-1 N ]SN = rN
SN .
(2.166)
T
Необходимо выбрать SN так, чтобы rN
SN < 0 и Sj ≥ 0, если
xj = 0. Введем следующее правило. Для каждой небазисной компоненты j положим Sj = –rj, если rj ≤ 0, и возьмем Sj = –xjrj, если
rj > 0. Это обеспечивает выполнение неравенства Sj ≥ 0, если xj = 0.
Кроме того, ∇f(x)TS ≤ 0 и строгое неравенство имеет место при
SN ≠ 0.
Если SN ≠ 0, то S — возможное направление спуска. Кроме того, S = 0 тогда и только тогда, когда x — точка Куна — Таккера.
Алгоритм метода приведенного градиента
Рассмотрим алгоритм приведенного градиента для решения
задачи (2.162)—(2.164).
Предполагается, что любые m столбцов A линейно независимы.
Начальный этап:
Выбрать точку x1, удовлетворяющую условиям Ax1 = A0, x1 ≥ 0.
Положить k и перейти к основному этапу.
Основной этап:
T T
Шаг 1. Положить SkT = [SB
, SN ], где SN и SB получены по формулам (2.165) и (2.166) соответственно. Если Sk = 0, то остановиться, xk — точка Куна — Таккера. В противном случае перейти ко
второму шагу. Здесь Ik — множество индексов m наибольших
компонент вектора xk,
B = { Aj : j Î J k }, N = { Aj : j Ï Jk };
(2.167)
r T = Ñf (xk )T -ÑB f (xk )T B-1 A; (2.168)
ìï-rj , åñëè, j Ï Jk è rj £ 0,
Sj = ïí
ïï-xj rj , åñëè j Ï Jk è rj > 0; î
(2.169)
SB = –B–1NSN. (2.170)
Шаг 2. Решить следующую задачу одномерной оптимизации:
минимизировать
f(xk + lSk) (2.171)
138
при условии
0 ≤ l ≤ lmax,
ïì-xjk ïüï
где λ max = min ïí
,
если
ý
ïï Sjk ïï
î
þ
Sjk > 0 и Sk > 0. (2.172)
Здесь xjk, Sjk — j-е компоненты векторов xk, Sk соответственно.
Положить lk равным оптимальному решению и xk + 1 = xk + lSk.
Заменить k на k + 1 и перейти к первому шагу.
2.10. Метод обобщенного приведенного градиента
Метод обобщенного приведенного градиента (ОПГ) является
развитием метода приведенного градиента и его можно использовать для решения задач нелинейного программирования при нелинейных функциях-ограничениях.
Итак, пусть задача нелинейного программирования задана в
следующем виде: минимизировать
f(x) → min,
(2.173)
при условиях
hi(x) = 0, i = 1,m, (2.174)
Lj ≤ xj ≤ uj, j = 1,n.
(2.175)
В методе ОПГ также различают две группы переменных: а)
подмножество базисных переменных xB = {xi}, i ∈ I; б) подмножество небазисных, или независимых, переменных xN = {xj}, j ∈ J.
Примем для простоты обозначений I = {1, 2, …, m}; J = {m + 1, m + 2,
…, n}. При этом зависимые (т. е. базисные) переменные неявным
образом определяются через независимые (небазисные) переменные, следовательно, f(x) — функция n – m независимых переменных. Введем следующие обозначения:
é ¶h1 (x) ù
é ¶h1 (x) ù
ê
ú
ê
ú
ê ¶xj ú
é h1 (x) ù
ê ¶xi ú
ê
ú
ê
ú
ê
ú
ê ... ú
ê h2 (x) ú ¶H ê ... ú
¶
H
ê
ú
ú,
ê
ú
H = êê
ú ¶x = ê ... ú , i ∈ I; ¶x = ê ... ú , j ∈ J;
...
ê
ú
N
B
ê
ú
ê
ú
ê
ú
ê h (x)ú
ê ¶h (x) ú
¶
h
x
(
)
ê n
ú
ê m
ú
ëê m ûú
ê
ú
ê ¶x ú
¶
x
ê
êë
ú
j úû
i û
ë
139
é ¶f (x)
¶f (x) úù êé ¶f (x) ùú
ÑB f (x)T = ê
=
, ...,
, i ∈ I;
ê ¶x
¶xm úû êë ¶xi úû
1
ë
é ¶f (x)
¶f (x) ùú êé ¶f (x) ùú
ÑN f (x)T = êê
=
, ...,
, , j ∈ J;
¶xn úúû êêë ¶xj úúû
êë ¶xm+1
é
ù
é ¶f (x) ù
df
ú , i ∈ I; df = ê ¶f (x) ú ; j ∈ J.
=ê
fxB êë ¶xi úû
fxN êêë ¶xj úúû
é dx1
ê
ê dxm+1
dxB êê
= ...
dxN êê
ê dxm
ê dx
ëê m+1
dx1 ù
ú
dxn ú é
ú dx ù
... ... úú = êê i úú ; i ∈ I; j ∈ J.
dx
dxm úú ëê j ûú
...
dxn úûú
...
(2.176)
Основная идея метода ОПГ состоит в том, чтобы сократить размерность задачи путем исключения зависимых (базисных) переменных и применить метод приведенного градиента для определения направления спуска и в качестве критерия при установлении оптимальности.
Укажем способ вычисления обобщенного приведенного градиента. Для этого рассмотрим задачу (2.173)—(2.175) и выразим
обобщенный приведенный градиент через компоненты градиента
f(x) и якобиан для ограничений-равенств (2.175):
dxB
df (x)
.
= ÑN f (x)T + ÑB f (x)T
dxN
dxN
Исключим из формулы (2.177) матрицу
пользуемся соотношением
(2.177)
dxB
. Для этого восdxN
dH
dH(x) dH(x) dxB
=
+
×
= 0,
dxN
dxN
dxB dxN
(2.178)
откуда
140
é dH(x) ù-1 dH
dxB
ú
.
= -ê
ê dx ú dx
dxN
B û
N
ë
(2.179)
Подставляя формулу (2.179) в (2.177), получим выражение для
ОПГ
é ¶H(x) ù-1 ¶H
df (x)
ú
rT =
, (2.180)
= ÑN f (x)T -ÑB f (x)T ê
ê ¶x ú ¶x
dxN
B
N
ë
û
é
¶H ê ¶hk (x) ùú
¶H éê ¶hk (x) ùú
где
, k = 1,m, i Î I;
=
, k = 1,m, j Î J.
=
¶xN êëê ¶xj úûú
¶xB ëê ¶xi ûú
Нетрудно увидеть аналогию между выражением (2.180) и соотношением (2.177) для приведенного градиента в линейном случае. Действительно, если учесть, что H(x) = Ax = BxB + NxN, то
¶H
¶H
= B,
= N. Подставив их в выражение (2.180), получим
¶xB
¶xN
полное совпадение выражений (2.180) и (2.174).
Алгоритм метода ОПГ начинает работать с допустимой точки
x1. Если же относительно условий задачи x1 не является допустимым, то необходимо ввести искусственные переменные, значения которых постепенно сводят к нулю путем введения в целевую
функцию штрафного члена.
Если ОПГ ни на одном из этапов вычислительной процедуры
не становится равным нулю, то заменяем текущий вектор xk на
xk + 1 по общей формуле
xk+1 = xk + λ*k Sk ,
(2.181)
величина λ*k определяется путем решения задачи: минимизировать
f(xk + lSk)
при условиях
0 ≤ l ≤ lmax,
где Sk — направление оптимизационного поиска на k-й итерации.
Рассмотрим способ определения величин Sk для независимых
переменных j ∈ J. Направления поиска Sj для них определяют
следующим способом:
если
Sj(k) = -rj , если Lj ≤ xj ≤ uj,
(2.182)
xj(k) = uj ,rj(k) > 0; (2.183)
141
Значение
приведенного
градиента
2
df
dx
0
1
1
0
–2
–1
1
x0
2
x1
–2
Линия уровня
f (x) = (x1) + (x2)
Рис. 2.11
или
xj(k) = Lj ,rj(k) < 0,
df (xk )
— вектор ОПГ.
dxN
Если ограничения hi(x) = 0 линейны, то метод совпадает с методом Вульфа.
где rk =
Пример
Минимизировать
f (x) = x12 + x22
при условии
h(x) = 2x1 + x2–1 = 0.
Пусть x1 — независимая (небазисная) переменная, а x2 — зависимая. Найдем величины
df
df
dh
dh
= 2x1;
= 2x2 ;
= 2;
= 1.
x1
x2
x1
x2
Согласно формуле (2.180) получим следующее выражение для
ОПГ:
-1
df (x) df df éê dh ùú dh
=
- ×
= 2x1 - 4x2 .
x1
x1 x2 êë x2 úû x1
Итак, двигаясь из любой допустимой точки вдоль ограничеdf
ния h(x) = 0 до тех пор, пока
не станет равным нулю, выполняx1
ем минимизацию f(x) (рис. 2.11).
142
2.11. Выпуклый симплексный метод
Метод линейной аппроксимации для решения подзадачи линейного программирования использует линейный симплексный
метод. Выпуклый симплексный метод [2, 4, 5, 8] стремится действовать по структуре линейного симплексного метода. Действительно, встречая любой линейный участок целевой функции, он
ведет себя точно так же, как линейный симплексный метод. Метод первоначально был разработан для задач минимизации выпуклой функции при линейных ограничениях в виде неравенств.
Учитывая его связь с линейным симплексным методом, его назвали выпуклым симплексным методом. Выпуклый симплексный метод описан для задачи
max f(x) при Ax = b, x ≥ 0 (2.184)
с функцией общего вида f, имеющей непрерывные частные производные.
Сущность выпуклого симплексного метода. Выпуклый симплексный метод будет обоснован неформальным рассмотрением.
После этого эвристического объяснения представим точную математическую формулировку метода. Мы будем следовать линейному симплексному методу для задачи (2.184) до тех пор, пока это
можно, и модифицировать его только в связи с требованием нелинейности целевой функции. Здесь приписывание нижнего индекса к вектору обозначает компоненту вектора, например bi представляет собой i-ю компоненту вектора b.
Без ограничения общности предполагается, что, как этого требует стандартная процедура симплекс-метода, все строки матрицы А линейно независимы и первый этап алгоритма дает исходное допустимое базисное решение
T′x′ = b′, x′ ≥ 0. (2.185)
Выпуклый симплексный метод вырабатывает последовательность таблиц, каждая из которых получается из предыдущей
стандартным методом направляющего элемента. Можно предположить, что каждая таблица Т представляет собой матрицу размером m×n. Пусть Bj— номер столбца, связанного с j-м базисным
переменным, 1 ≤ j ≤ m тогда Bj-й столбец целиком состоит из нулей
за исключением j-й позиции, где стоит единица. Так как х′ — базисное решение, то
¢ = bj¢ , j ∈ µ,
xB
j
143
¢ — базисное переменное, а m — множество первых т пологде xB
j
жительных
целых чисел. Все небазисные переменные в векторе
х′ равны нулю.
В линейном симплексном методе далее вычислили бы вектор
оценок, соответствующий таблице T′, и либо выяснилась бы оптимальность х′, либо увеличили бы некоторое небазисное переменное. При нелинейной целевой функции вектор оценок может быть
вычислен с помощью соответственно определяемого градиента
функции f. Для данной таблицы Т положим
t
æ ¶f (x) ¶f (x)
¶f (x) ö÷÷
çç
Ñf (x) B = ç
,
,...,
÷ ,
çè ¶xB ¶xB
¶xB1 ÷÷ø
1
1
(2.186)
тогда оценками вектора х для данной таблицы Т будут
c(x) = (Ñf (x) - T t Ñf (x) B ), (2.187)
где ∇f(x) — градиент f, вычисленный в точке х. Из текста всегда будет ясно, по отношению к какой таблице вычислены оценки.
Удобно на k-й итерации обозначать ck = c(xk).
Пусть для таблицы T ¢ = (tij¢ ) вычислен вектор оценок с′. В линейном симплексном методе мы определили бы значение
cs¢ = max{ci¢ i Î v},
где v — множество первых п положительных чисел.
Если cs¢ будет неположительным, то х′, как будет показано ниже, есть решение. В противном случае мы увеличиваем переменную хs, соответственно меняя только базисные переменные, и целевая функция увеличивается. В линейном симплексном методе,
так как целевая функция линейная, при увеличении xs целевая
¢ £ 0 для всех i ∈ µ, то xs могло
функция будет увеличена. Если tis
бы быть увеличено бесконечно, что означает неограниченность
целевой функции. В противном случае xs увеличивается до тех
пор, пока некоторое базисное переменное, скажем xBr, не превратится в нуль. Тогда таблица преобразуется по направляющему
¢ . Заметим, что компоненты х, которые входят в ноэлементу trs
вый базис, это компоненты с наибольшими значениями. Таким
образом, т наибольших компонент х входят в базис.
При нелинейной целевой функции, если cs¢ > 0, то увеличение xs и соответствующее изменение только базисных переменных, первоначально вызывая увеличение f, может при слишком
144
большом увеличении xs привести к уменьшению f. Выпуклый
симплексный метод увеличивает xs либо до тех пор, пока дальнейшее возрастание xs не увеличивает f, либо до превращения
некоторого базисного переменного в нуль. Значение х, при котором первым наступает одно из этих двух событий, представляет
собой точку х2 .
1
Точная процедура заключается в следующем. Либо tis
> 0 для
1
некоторого i, либо нет. Если существует i, для которого tis
> 0, то
увеличение xs может свести некоторое базисное переменное к нулю. Пусть у′ представляет собой значение х, которое достигается
при возрастании xs до тех пор, пока некоторое базисное переменное становится нулем. Значение х2 при этом получается из формулы
f (x) = max{f (x1 + λ(y1 - x1 )) 0 £ λ £ 1}. (2.188)
1
С другой стороны, может оказаться, что tis
³ 0, i ∈ µ .Тогда xs
можно увеличивать бесконечно, не перемещая к нулю ни одно из
базисных переменных (геометрически точка xs опишет луч, исходящий из точки x1). В этом случае пусть y1 ≠ x1 — произвольная
точка на этом луче. Определим точку х2 на этом луче, которая
максимизирует f:
F(x2) = max{f(x1 + l(y1 – x1))|0 ≤ l ≤ a}
для очень большого значения a.
После того как х2 вычислена, в качестве таблицы Т2 выбирается любая таблица, где m наибольших по величине компонент х
образуют базис.
Первая итерация завершена, и мы переходим ко второй итерации. Следует обратить внимание на то, что, если одно из переменных старого базиса не превратилось в нуль, то точка х2, соответствующая таблице T2, может иметь положительное небазисное переменное. Итак, некоторое небазисное переменное, скажем
xt2, может быть положительным. Для общности предположим,
что это так. Опять вычислим вектор оценок
c2 = (∇f(x2) – (T2)∇f(x2)B),
(2.189)
если положительное небазисное переменное имеет отрицательную оценку, то, уменьшая это переменное и меняя соответственно только базисные переменные, можно увеличить f. Аналогич145
но, если какое-либо небазисное переменное имеет положительную оценку, то его возрастание будет увеличивать f. Пусть
c2s1 = max{ci2 i Î v}, (2.190)
c2s2xs22 = min{ci2xi2 i Î v}, (2.191)
если c2s1 > 0, то xs1 — подходящий кандидат для увеличения.
Если c2s2xs22 < 0, то xs22 должно быть положительным и xs2 —
подходящий кандидат для уменьшения.
Правило для выбора xs = xs1 или xs = xs2 будет изложено далее.
Если xs = xs1, то следует увеличивать xs до тех пор, пока оно перестанет возрастать либо некоторое базисное переменное станет нулем. Если xs = xs2, то xs следует уменьшать до тех пор, пока оно
перестанет возрастать либо превратится в нуль, либо, наконец,
одно из базисных переменных обратится в нуль. Обозначим соответствующее значение переменного х через х3. Далее процедура
продолжается аналогично второй итерации.
Алгоритм выпуклого симплексного метода
В нижеприведенной процедуре любая связь может быть произвольно разорвана.
И с х о д н ы й ш а г . Процедурой фазы 1 линейного симплексного метода получаем допустимое базисное решение х1 с соответствующей таблицей T1. Переходим к шагу 1 итерации k со
значением k = 1.
И т е р а ц и я k. Дана допустимая точка хк и таблица
k
T = (tijk ).
Шаг 1. Вычисляется вектор оценок. Пусть
ck = (Ñf (xk ) - (T k )t Ñf (xk ) B ), (2.192)
cs21 = max{ci2 i Î v},
cs22 xs22 = min{ci2 xi2 i Î v}.
Если csk1 = csk2 xsk2 = 0, то конец. В противном случае происходит переход к шагу 2.
Шаг 2. Определяется небазисное переменное для изменения.
Если csk1 ³ csk2 xsk2 , то увеличивается xs = xs1 при соответствую-
146
щем изменении только базисных переменных; если csk1 £ csk2 xsk2 ,
то уменьшается xs = xs2 при соответствующем изменении только
базисных переменных.
Шаг 3. Вычисляется kk + 1. Здесь следует рассмотреть три случая.
С л у ч а й a: xs должно быть увеличено, и для некоторого i
k
tis
> 0.
Соответствующее возрастание xs превратит некоторое базисное переменное в нуль. Пусть уk — значение х, которое при этом
достигается. В явной форме
yik = xik
i Î N s, (2.193)
ysk = xsk + D k , k
k
k
yB
= xB
- tis
, i Î µ,
i
i
(2.194а)
(2.194б)
где N|s — множество индексов небазисных переменных за исключением s, а
k
ïìï xk
ïüï
xB
ï B k
ï
D k = k r = min íï k i tis
(2.195)
>0ýï. ï
ïþï
trs
tis
ï
î
Определяем
xk+1 Î M1 (xk , d k ), (2.196)
где J = [0, 1] и dk = yk – xk.
k
С л у ч а й б: xs должно быть увеличено, но tis
£ 0 для всех i.
В этом случае xs может возрастать бесконечно, не приближая при
этом к нулю ни одно из базисных переменных. Определяется yk,
как в (2.193), за исключением того, что принимается Dk = 1. Определяется xk + 1 такое, что
xk + 1 ∈ M1(xk, dk),
где J = [0, а] при очень большом значении а и dk = yk–xk.
С л у ч а й в: xs должно быть уменьшено. Определяем yk с помощью (2.191), за исключением того, что Dk определяется следующим образом:
D k = max{ D1k , D2k },
147
где
D1k
и
=
k
xB
r
k
trs
= min{
k
xB
i
k
tis
k
tis
<0}
D2k = -xsk .
k
Если tis
³ 0, i ∈ µ, то полагаем D1k = -¥. Здесь yk — значение х,
соответствующее точке, в которой при уменьшении xs либо некоторое базисное переменное становится нулем, либо xs само превращается в нуль (в зависимости от того, что происходит раньше).
Далее вычисляется xk + i с помощью (2.196).
Шаг 4. Вычислив xk + i, определяем таблицу Tk + i, как показано
в следующем пункте, и заменив k на k + 1, осуществляем переход
к k-й итерации.
В любом из перечисленных случаев таблица Tk + i определяется по точке xk + 1 следующим образом. Осуществляется упорядочение компонент xk + l по величине xik+1 ³ xik+1 ³ ... ³ xik+1. Опре1
2
n
деляем т наибольших по величине. Пусть Tk + 1 — любая такая
таблица, что эти т компонент входят в базис для этой таблицы.
Таким образом, переменные xik+1, ..., xik+1 являются базисными,
1
n
и соответствующие им столбцы таблицы Tk + i представляют собой единичные векторы. Случайно, из-за линейной зависимости,
может оказаться невозможным включить т наибольших компонент в базис. В таком случае базис определяется из т + 1 наибольших компонент или, если необходимо, то из т + 2, т + 3 и т. д.
Величины компонент хk в базисе должны быть как можно большими. В базис нужно включать наибольшее количество наибольших по величине компонент хк + 1.
Как пример правила для выбора таблицы предположим, что
сначала ограничения имеют следующий вид:
x1 + 3x2 – x3 + 2x4 = 7,
x1 – x2 = 1,
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0.
Если xk = (2, 1, 1, 3 2)t , то x1 и x4 образуют базис. Соответствующая таблица имеет вид
é 1 -1
0
0ù
ú,
Tk = ê
ê0 2 -1 2 1ú
ë
û
148
k
где xB
= (x1k , x4k )t , B1 = 1 и B2 = 4. Если было бы xk = (3,2,2,0)t, то
k
мы могли бы выбрать xB
= (x1k , x2k )t с таблицей
é1 0 -1 4 1 2ù
ú.
Tk = ê
ê0 1 -1 4 1 2ú
ë
û
В этом случае x1 и x3 также могли бы быть выбраны в качестве
базисных.
Следует обратить внимание на то, что правая часть не имеет
значения.
149
Глава 3. Логико-вероятностный подход
к анализу и синтезу систем логического типа
3.1. Логическая функция
При анализе и синтезе интеллектуальных систем управления
нелинейными динамическими объектами, функционирующими
в нестационарных, экстремальных условиях с заданными показателями качества, одной из важнейших задач является задача
логического вывода и принятия решения для системы логических функций, записанной в символьном виде. Решение такой
задачи в символьном виде наталкивается на принципиальные
трудности и лишь в простейших случаях достигается методами
направленного перебора. В более сложных случаях основными
методами решения являются эвристические методы, в которых
большую роль играет интуиция и знания по решению аналогичных задач и предшествующий практический опыт. Эти знания
в экспертных системах используются так называемой машиной
логического вывода, т. е. программой, оперирующей с базой знаний и формирующей выводы. База знаний рассматривается также как программа, для которой машина логического вывода является интерпретатором, а его входная информация — выражения языка представления знаний. Результат работы машины логического вывода заключается в интерпретации входных выражений в соответствии с имеющимися данными. В основу работы
интерпретатора положена система исчисления высказываний и
формальный метод доказательства (логической дедукции). Одна
из разновидностей машины логического вывода — система продукционных правил (система продукций), которая наиболее часто применяется в экспертных системах.
Работа системы продукций может рассматриваться как выполнение следующей последовательности операций: отыскание
всех правил, условия которых соблюдены; выбор одного из этих
правил и реализация предписанных им действий. Недостатком
эвристических методов получения решений в системах логического вывода является: отсутствие гарантии решения за конечное число шагов алгоритма, случайность в выборе наиболее рационального пути поиска решения, малая скорость числа логических выводов в единицу времени, чрезмерная сложность интерпретации структурных свойств решателя [27]. Поэтому интерес
к проблемам эквивалентных символьных преобразований логи150
ческих функций (ЛФ) и образуемых ими систем логических уравнений (СЛУ) неуклонно растет, они лежат в основе решения таких задач искусственного интеллекта, как логический вывод и
принятие решений, независимо от того, к какой прикладной области данные решения относятся. Однако символьное представление ЛФ и СЛУ при больших размерностях логических задач
громоздко и неудобно, поэтому актуален поиск других форм представления ЛФ и СЛУ, например таких, в которых используются
их арифметические свойства [29, 30].
Кроме того, методы решения задач логического вывода и принятия решений, основанные на эвристических правилах и манипуляциях с символьными строками и использовании нечисловых исчислений, не обеспечивают гарантированного решения
за конечное время, трудоемки и маловыразительны при больших
размерностях задач. Однако существуют другие методы, например, основанные на представлениях ЛФ как упорядоченных множеств и комбинаторных (не символьных) приемах их преобразования. Или такие, когда для упорядоченного множества строится
декартово произведение, элементы которого лексикографически
упорядочены, и нет необходимости записывать явно все его члены, а достаточно знать, как вычисляется любой из них. При этом
благодаря арифметическим свойствам ЛФ и СЛУ, которые они
проявляют при их представлении в виде алгебраических структур по mod2, т. е. в алгебре Жегалкина [29], оказывается возможным сведение логических задач к арифметическим или подобным
арифметическим. Это в общем случае позволяет представлять логические системы как линейные структуры, уравнения которых
не содержат конъюнктивных элементов, а для анализа и синтеза
их структурных свойств — использовать математический аппарат векторно-матричной алгебры.
Тогда для таких систем логический вывод представляется
в качестве процедуры обращения [0,1]-матриц, а принятие решения является многократным повторением этой процедуры при
изменении начальных условий.
Особую роль при решении задач логического вывода играют
операции импликации и эквивалентности. Под импликацией
двух высказываний (логических переменных) 〈x1x2〉 обычно понимают новое высказывание x3, которое считается ложным, когда x1 — истинно, а x2 ложно, и истинным — во всех остальных
случаях: x3 Û (x1 x2 ). Под эквивалентностью двух высказыва151
ний понимают новое высказывание x4, которое считается истинным, когда оба высказывания 〈x1x2〉 либо одновременно истинны,
либо одновременно ложны, и ложным во всех остальных случаях: x4 Û x1x2 Ú x1 x2 .
Импликация и эквивалентность, по существу, являются функциями простых логических операций, и их употребление в математической логике отличается от лингвистического употребления (в обычной речи). Нередко при построении баз знаний и принятии решений, применяя лингвистические связки «если..., то...»
и «... тогда и только тогда...», смысловое содержание высказываний не проверяется на соответствие таблицам истинности, что является источником ошибок. Например, высказывание «если корабль тонет, то крен больше 90°» не соответствует приведенной
таблице истинности для импликации, так как корабль может тонуть (x1 = 1) и в том случае, когда крен будет меньше 90° (x2 = 0).
Поэтому для исключения возможных ошибок импликацию и эквивалентность следует применять как логические функции
x3 Û (x1 x2 ) и x4 Û x1x2 Ú x1 x2 .
В связи с многообразием трактовок одних и тех же терминов
в различной литературе по системам искусственного интеллекта и для удобства изложения последующего материала дадим
ряд определений, которые будут часто использоваться в дальнейшем.
Логическая переменная (ЛП): произвольная цепочка символов
(символьная строка), используемая для обозначения структуры
(набора) данных, одним из значений которой является значение
«true» или «false» самой ЛП. Другой частью структуры данных
является атрибутная часть ЛП, которая представляет собой набор данных любого типа. ЛП используется в качестве одного из
аргументов логических функций и является неделимой логической формой (атомом).
Логическая функция (ЛФ): по определению эквивалентна ЛП,
но может использоваться и как аргумент, и как функция с любой
глубиной вложенности.
Структура данных: упорядоченное множество данных в абстрактном типе данных, которым задается эта структура.
Абстрактный тип данных: представляет собой множествотройку (D, F, A), состоящую из множеств: аргументов D, функций
F и аксиом A.
Атрибут ЛФ: элемент структуры данных.
152
Базисное множество ЛП: минимальное подмножество некоторого множества логических переменных, порождающее все
элементы исследуемого множества.
Базисный вектор логической системы: упорядоченное множество ЛП, которые нельзя разложить на более простые, т. е. они не
могут быть продуцированы другими переменными:
X′ = < x1, x2, ..., xn > ,
где символ X′ означает транспонирование вектора X.
Базисные элементы: элементы xi базисного вектора X (атомы
логической системы).
Фундаментальная функция логической системы: логическое
произведение отрицаний ЛП
ff Û x1 x2 , ..., xn ,
где xi — отрицание ЛП xi.
В форме ПНФ xi = xi Å 1, тогда
ff = x1⊕x2⊕, ..., ⊕xn⊕x1x2⊕x1x3⊕, ..., ⊕x1x2x3⊕, ..., ⊕x1x2, ..., xj⊕, ...,
x1x2, ..., xn⊕1.
Здесь и далее в математических выражениях и формулах для
ЛФ символ логического умножения или опускается, или заменяется символом «*», а символ «⊕» означает исключающее ИЛИ
(XOR), или, в другой терминологии, сложение по mod2.
Фундаментальный вектор логической системы: упорядоченное множество элементов декартова произведения [18, 29] базисного вектора X, дополненного 1 на месте последнего элемента.
S′ = < x1,x2, ..., xn, x1x2, x1x3, ..., x1x2x3,..., x1x2, ..., xn,1 > .
Размерность этого вектора: ns = 2n.
Логическая функция: логическая сумма ЛП или других ЛФ,
представленная в одной из эквивалентных форм (ДНФ, СДНФ,
ПНФ и др.), например в форме ПНФ:
f1,2,...k = f1 ⊕ f2 ⊕ ... ⊕ fm ⊕ ... ⊕ fk.
Идентификационная строка Ci: строка, состоящая из нулей и
единиц, например, вида
Ci = < 1, 1, 0, 1, 1, 0, 1, ..., 1 > .
Единицы в данной строке идентифицируют элементы вектора
S, которые в i-й ЛФ складываются по mod2.
153
Если последний элемент идентификационной строки равен 1,
то это означает отрицание fi. Такая форма задания (представления) ЛФ позволяет не вводить дополнительные идентификаторы,
например надчеркивания, для обозначения логической связки
отрицания НЕ (NOT).
Каноническая форма ЛФ: логическое произведение идентификационной строки Сi на фундаментальный вектор S:
fi = Ci*S.
Фундаментальная функция может быть определена как произведение идентификационной вектора-строки Cff размерностью
ns, заполненной одними единицами, и фундаментального вектора S:
Cff = < 1,...,1 > ,
ff = Cff *S.
Базисный вектор ЛФ: упорядоченное множество ЛФ системы
логических уравнений:
F′ = < f1,f2, ..., fm, ..., fk > .
Фундаментальный вектор ЛФ: упорядоченное множество элементов декартова произведения базисного вектора F, дополненного 1 на месте последнего элемента:
Sf′ = < f1,f2, ..., fk, f1f2, f1f3, ..., f1f2f3, ..., f1f2...fm, ..., f1f2, …, fk,1 > .
Компоненты фундаментального вектора ЛФ, кроме последнего
элемента, представляют собой конъюнкции компонент базисного
вектора F.
Конъюнкция ЛФ:
fm = f1f2 ... fj,
где f1 = C1*S, f2 = C2*S, ..., fj = Cj*S.
Тогда: fm = Cm*S, где идентификационная строка Cm ЛФ fm равна дизъюнкции идентификационных строк ее логических сомножителей. При этом дизъюнкцией векторов или векторов-строк
будем называть результат от дизъюнкций их элементов, имеющих равные индексы, т. е.:
Cm = C1 ∨ C2 ∨ … ∨ Cm.
Теперь можно перейти к изложению методики арифметизации
логических уравнений.
Идея арифметизации символьной логики принадлежит
И. И. Жегалкину [29, 30]. Он, основываясь на алгебре Буля, упро154
стил законы оперирования с логическими сложением и умножением и свел эти операции к действиям, на которые распространяются арифметические законы ассоциативности, коммутативности и дистрибутивности. При этом, по Жегалкину, логическая связка «или» может употребляться только в строго разделительном смысле, как связка «либо». Очевидно, что указанное
ограничение выдвигает дополнительное требование к процессу
формирования баз знаний предметной области.
Одним из важнейших свойств введенной И. И. Жегалкиным
алгебры логики является то, что в ней логическое содержание
символов «1» и «0» соответствует всегда истинной или ложной
функции, а операция отрицания заменена на операцию прибавления к ЛП единицы
(x = x Å 1).
В настоящее время при анализе ЛФ и их символьных преобразованиях чаще других используются «Булев базис» (ББ) и «базис
Жегалкина» (БЖ).
Отличительной особенностью представления ЛФ в БЖ является то, что при осуществлении их преобразований, ЛФ могут
рассматриваться как алгебраические выражения в символьном
виде, а операции манипулирования с ними представляют собой
операции алгебры: сложение, умножение, перенесение выражений из левой части в правую и наоборот; составление и решение
систем уравнений, в том числе матричными методами, подстановки одних функций в другие, приведение подобных членов, которые они не противоречат аксиомам БЖ.
В булевой алгебре ЛФ могут быть представлены в различных
эквивалентных формах, наиболее используемыми из которых являются: дизъюнктивная нормальная форма (ДНФ), совершенная
дизъюнктивная нормальная форма (СДНФ) и конъюнктивная
нормальная форма (КНФ). В алгебре Жегалкина ЛФ могут быть
представлены в виде полинома Жегалкина [29, 30] или полиномиальной нормальной формы (ПНФ). Для ЛФ со сравнительно
небольшим числом ЛП алгоритмы их преобразования из одной
формы в другую хорошо изучены и для них разработаны эффективные вычислительные процедуры, в том числе и для вычисления вероятностей ЛФ. При большом числе ЛП число логических
слагаемых k в выражении для ЛФ может быть велико, так как
k = 2n – 1, где n — число ЛП. Запись таких функций в символьном виде в ЭВМ требует больших затрат памяти. В связи с чем
155
для сравнительно богатых содержанием логических задач, требующих больших размерностей ЛФ, вряд ли является целесообразным использовать представление этих функций и их систем
в ЭВМ в символьном виде. Практическую реализацию символьных преобразований в ЭВМ, как будет показано далее, можно
осуществлять на основе вычислительной комбинаторики. В частности, если условиться, что элементы ЛФ расположены в некотором лексикографическом порядке, то нет необходимости хранить
ее в памяти ЭВМ в символьном виде, а для однозначной идентификации любого члена логической суммы (конъюнктивного элемента) достаточно задать размерность множества ЛП и порядковый номер этого члена. Тогда номера индексов конъюнктивных
элементов, входящих в это слагаемое, определяются комбинаторными методами. Оперирование с упорядоченными множествами
позволяет заменить хранение ЛФ, представленных в символьном
виде, на хранение сравнительно простых программ, обеспечивающих быстрое вычисление индексов переменных и атрибутов.
Общее число членов приведенной ЛФ равно N = 2n – 1.
При решении систем логических уравнений их арифметизация
легко осуществляется переводом ЛФ из ББ в БЖ, а при интерпретации полученных решений — обратно в ББ. Поэтому решение и
анализ логических задач сводятся к анализу и решению системы
A*S = b, (3.1)
где A — прямоугольная двоичная матрица размерностью [n,m],
n > m; S — фундаментальный вектор логической системы размерностью n; b — двоичный вектор размерностью n.
Основная задача состоит в том, чтобы найти матрицу, псевдообратную матрице А. Решение системы (3.1), в которой переменных больше, чем уравнений, приводит к множеству решений. Поэтому псевдообратная матрица не является единственной. Полный набор псевдообратных матриц определяет полный набор допустимых векторов решения.
Одним из методов решения является метод, аналогичный методу исключения Гаусса при решении линейных систем алгебраических уравнений с вещественными числами. Суть метода состоит в сложении уравнений для исключения переменных, входящих в эти уравнения. Эффект поглощения членов уравнений в
результате их сложения по mod2 связан с выполнением одной из
аксиом алгебры Жегалкина:
x ⊕ x = 0.
156
Процедура заключается в преобразовании матрицы А так,
чтобы в результате сложения строк матрицы по правилам элементарных преобразований по mod2, результирующая матрица
имела бы минимальное число ненулевых элементов. Это и есть
решение.
Покажем на примере с квадратной матрицей процедуру приведения её к диагональному виду. Данная процедура важна, так
как неособенная матрица, приведенная к диагональному виду,
имеет минимальное значение нормы.
Матрица A1 является обратной по отношению к исходной матрице A. Перемножая A и A1 по mod2, можно показать, что
A A1 = E,
где E — единичная матрица.
Одним из алгоритмов приведения матриц к диагональному
виду является алгоритм умножения матрицы самой на себя, т. е.
возведение в степень по mod2. После последовательности шагов
A2 = A A = A2, A3 = A A A = A3, A4 = A A A A = A4,
A5 = A A A A A = A5 = E.
Полученный результат можно интерпретировать по отношению к динамическим системам как стремление системы к устойчивому состоянию за конечное число шагов.
Если по условию задачи требуется среди возможных допустимых решений найти наилучшее, то ее решение, как правило, связано с проблемами оптимизации. Задачи оптимизации возможны только тогда, когда существует некоторая мера для вектора S.
Эта мера скрыта в атрибутах S, так как сам вектор является логическим. Поэтому необходимо ввести определение его меры (нормы), что требует метризуемости множества атрибутов, добиться
которой, к сожалению, не всегда просто, а иногда и невозможно.
Оптимизационная задача легче всего решается, если указанная
мера имеет скалярный тип. В простейшем случае скалярной мерой, например, может служить евклидова норма, т. е. сумма ненулевых элементов вектора S, вес которых условно принимается
равным единице. Нахождение минимума этой суммы является
задачей комбинаторной оптимизации. Из линейной алгебры известно, что минимизация евклидовой нормы линейной системы
с вещественными числами
Aa*Sa = ba
157
достигается при выполнении условия:
Sa = ( Aa¢ * Aa )-1 * Aa¢ * ba ,
(3.2)
min
где Aa¢ — транспонированная матрица Aa.
Аналогичным является решение, при котором S содержит ми — псевдоонимальное число ненулевых компонент, т. е. если A
братная матрица, то решение системы ЛУ (3.2) имеет вид
A * A * S = A *.
 * A = E — единичная матрица, тогда
Если A
 * b. S= A
(3.3)
В системе (3.1) матрицы и векторы имеют двоичный тип данных, а в выражении (3.2) элементам присваивается вещественный тип, и задача оптимизации переходит в область атрибутов.
Если по условию задачи требуется найти только допустимые решения, т. е. весь набор псевдообратных матриц, то решения оптимизационной задачи не требуется. Однако наиболее изученной
и часто встречающейся оптимизационной задачей является нахождение допустимого решения с максимальным значением его
вероятности, что характерно для НЗП логико-вероятностного
типа.
Теперь рассмотрим динамические системы, которые характерны для НЗП эволюционно-генетического типа. В наиболее общей
форме динамические системы логического типа известны как конечные автоматы (КА) и в соответствии с [13, 30] математическую
модель произвольной логической системы можно представить в
виде системы:
x(t1 ) = Ax(t) Å Bu(t) Å Fz(t) Å r,
y (t) = Gx(t) Å Du(t) Å Hz(t) Å s,
z
(t) = K & x(t) Å q,
(3.4)
где x(t), y(t), u(t), z(t) — двоичные [0,1] векторы; A, B, G, D, F, K,
H — двоичные [0,1] матрицы; A — квадратная неособенная; r, s,
q — постоянные двоичные [0, 1] векторы; t = 1, 2, 3, ..., T — параметр целого типа; ⊕ — оператор сложения по mod2.
В выражении (3.4) оператор & означает, что компонентами
вектора z(t) являются логические (или алгебраические по mod2)
произведения компонент вектора x(t), номера которых задаются
158
ненулевыми (единичными) значениями компонент матрицы K.
Таким образом, компонентами вектора z(t) являются конъюнкции из компонент вектора x(t).
При отсутствии аргумента t система (3.4) переходит в алгебраическую форму:
A x⊕B z = r, y = G x⊕D z + s.
(3.5)
С каждой компонентой xi вектора x связан вектор, названный
вектором атрибутов xa.
Количество компонент вектора атрибутов не является фиксированным и может изменяться в зависимости от смыслового содержания задачи.
Формализованное представление цели задачи заключается в
том, что высказывания, заданные в вопросительной форме, можно интерпретировать как цели и преобразовывать их в математическую форму.
Векторы x и z являются компонентами фундаментального вектора S, который содержит полный набор конъюнкций базисного
множества ЛП, поэтому логические функции, образованные путем умножения их идентификационных строк на вектор S, всегда
линейны. Это и есть основание для приведения систем (3.4)—(3.5)
к линейной форме.
Основным результатом решения ЛУ в линейной форме является нахождение допустимых значений двоичных переменных и
функций.
Нахождение лучшего (или более корректно — предпочтительного) решения из допустимых приводит к проблеме оценивания с
использованием значений атрибутов переменных. При этом вначале осуществляется переход от логических переменных к числовым переменным. Затем, если все атрибуты могут быть представлены в виде метризуемых множеств, то после выбора критерия
предпочтительного решения задача сводится к числовой задаче
математического программирования. Методы решения задач математического программирования хорошо разработаны, поэтому
сведение исходной задачи к задаче или последовательности задач
математического программирования можно считать желаемой
целью применительно к излагаемому нами алгебраическому подходу.
159
3.2. Метод приведения систем логического типа
к форме линейных последовательностных машин
Метод расширения пространства состояний (РПС) логических
систем позволяет сводить исходные системы в форме КА к линейным системам алгебраических уравнений в форме, известной как
линейные последовательностные машины (ЛПМ) [33]. Это позволяет перейти от имитационных методов исследования к аналитическим методам линейной алгебры по mod2. В этом случае
эксперименты над моделями не проводятся. Численные оценки
определяются беспоисковыми способами, а результаты представляются в аналитической форме.
Представление моделей в форме ЛПМ имеет принципиальное
значение, так как позволяет задачи, для которых неизвестно решение за полиномиальное время, привести к задачам, для которых
известны эффективные алгоритмы решения. По терминологии С.
Кука это означает свести задачу к подклассу Р так называемых
NP-полных задач. В теории NP-полноты задач дискретной оптимизации, разработанной С. Куком, проблема сводимости одной задачи к другой за полиномиальное время как функции числа шагов
от ее размерности (n) является одной из важнейших.
Алгоритм приведения логических уравнений к форме ЛПМ
включает в себя следующие шаги [13, 14, 32].
Сначала задача описывается СЛУ в полиномиальной форме
(форме Рида — Малера — Жегалкина), отнесенной к некоторому
начальному шагу алгоритма и соответствующего ему начальному вектору состояния. Затем рассматривается последовательный
ряд шагов алгоритма, на которых векторы состояний выражаются через компоненты вектора начального состояния и компоненты неповторяющихся конъюнкций (термов) из этих компонент
(компонент фундаментального вектора S).
Внутренний язык задачи L в алфавите (0,1), определяющийся
на первом шаге суммарным вектором начального состояния и вектором термов из компонент этого вектора, расширяется за счет термов, составленных из новых комбинаций компонент вектора начального состояния, отнесенных к различным тактам алгоритма.
Расширение исходного языка L заканчивается на такте T, после которого на каждом новом такте не образуется новых комбинаций (сочетаний) термов из компонент вектора начального состояния. В результате исходная СЛУ, описывающая задачу, преобразуется в расширенную СЛУ, по форме совпадающую с системой, характерной для ЛПМ.
160
Метод базируется на известных идеях расширения алфавитов
операторов логических систем.
Приведение логических уравнений к форме ЛПМ связано с
применением технологии символьных преобразований. Для этих
целей используются известные приёмы сравнения символьных
строк и подстановок, а также новые приемы матрично-векторного
умножения и сложения данных типа символьной строки, компонентами которой являются целые числа, обозначающие номера
слов языка L. При этом символьные строки типа полиномов Рида — Малера — Жегалкина подставляются в другие символьные
строки, преобразуются за счет приведения подобных членов по
правилам вычислений логических функций по mod2 в новые полиномы:
X(t + 1) = Ax (t)+ Bu(t)+ g,ïüï
(3.6)
ý
ïï
Y (t) = Cx (t)+ Du(t)+ h,
þ
где X(t) — расширенный, по отношению к первому словарю, двоичный вектор состояния; u(t) — вектор входа; Y(t) — вектор выхода; g, h — 0,1 векторы; A, B, C, D — 0,1 матрицы. Например,
1
1
X(t + 1) =
0
0
0
1
0
1
0
0
1
0
0
1
0
0
× X(t) + ×1. 1
0
1
0
(3.7)
Матричное уравнение (3.7) типично для КА в форме ЛПМ.
Пусть КА описывается системой логических уравнений (3.7):
x1 (t + 1) = x1 (t)x2 (t) + x3 (t), ïüï
ï
x2 (t + 1) = x1 (t) + x2 (t) + x3 (t),ïý
ï
x3 (t + 1) = x2 (t)x3 (t).
ïïïþ
(3.8)
Обозначим:
x1(t) x2(t) = x4(t),
x2(t) x3(t) = x5(t).
Рассмотрим значения x4 и x5 на следующем шаге:
ü
x4 (t + 1) = x1 (t + 1)x2 (t + 1),ï
ï
ý x5 (t + 1) = x2 (t + 1)x3 (t + 1).ï
ï
þ
(3.9)
161
Подставив (3.8) в (3.9), получим
x4 (t + 1) = x3 (t) + x2 (t)x3 (t) + x1 (t)x3 (t),üïï
ïï
x1 (t)x2 (t)x3 (t),
ý ïï
x5 (t + 1) = x1 (t)x2 (t)x3 (t).
ïïþ
(3.10)
Обозначим:
x6 (t) = x1 (t)x3 (t), ïüï
ý
x7 (t) = x1 (t)x2 (t)x3 (t).ïïþ
(3.11)
и, объединяя уравнения (3.10) в (3.11), получим
x4 (t + 1) = x3 (t) + x5 (t) + x6 (t) + x7 (t),üï
ïï
ïï
x5 (t + 1) = x7 (t),
(3.12)
ý ïï
x6 (t + 1) = x5 (t) + x7 (t),
ïï
x7 (t + 1) = 0.
ïïþ
Объединяя все уравнения, представим расширенную систему
в векторно-матричной форме
Х(t + 1) = А Х(t),
где
0 0 1 1 0 0 0 x1 (t)
1 1 1 0 0 0 0 x2 (t)
0 0 0 0 1 0 0 x3 (t)
(3.13)
X(t + 1) = 0 0 1 0 1 1 1 * x4 (t) . 0 0 0 0 0 0 1 x5 (t)
0 0 0 0 1 0 1 x6 (t)
0 0 0 0 0 0 0 x7 (t)
В результате система уравнений, описывающая КА, преобразуется в расширенную систему логических уравнений (3.13),
по форме совпадающую с системой уравнений, характерной для
ЛПМ. К виду ЛПМ можно привести достаточно большой класс
КА. В этом случае для решения задач логического анализа придется решать уже ряд других математических задач, постановки
которых являются известными, а особенности решения исследованными. К таким задачам, в первую очередь, относятся задачи
решения систем линейных уравнений с дискретными неизвестными и задачи минимизации линейной целевой функции с линейными ограничениями.
162
Решение задач сводимости произвольных систем логических
уравнений к уравнениям линейного типа в форме, известной как
ЛПМ, может быть представлено в виде обобщенной схемы. Для
автономной системы такая схема может иметь следующий вид:
x1 (1) = A1x1 (0) + A2 x1 (0),
ïüï
ïï
x2 (0) = s1 (x1 (0)),
ïï
ïï
x2 (1) = A3 x1 (0) + A4 x2 (0) + A 5 x3 (0),
ïï
ïï
x3 (0) = s2 (x1 (0)),
ïý
x3 (1) = A6 x1 (0) + A7 x2 (0) + A 8 x3 (0) + A 9 x4 (0),ïï
ïï
...
ïï
ïï
xn (0) = sn-1 (x1 (0)),
ïï
xn (1) = Aj x1 (0) + Aj+1x2 (0) + ... + A j+n xn+1 (0),ïïïþ
(3.14)
где s1(x1(0)), s2(x1(0)), …, si(x1(0)), …, sn-1(x1(0)) — конъюнкции из
компонент вектора начального состояния x1(0), т. е. компоненты
фундаментального вектора S логической системы:
n
s(n) = å ki .
i=1
В основе излагаемого метода лежит прием символьного выражения последующих состояний КА через начальный вектор состояния. В результате рекурсивной подстановки символьного выражения для x(i) в x(i + 1) оказывается, что после приведения подобных
членов в x(i + 1) появляются новые компоненты фундаментального
вектора S. Генерация каждого нового уравнения происходит при
условии, что после преобразований и вычислений «Аj + n» не равно
нулю. Генерация уравнений прекращается при «Аj + n = 0», т. е. тогда, когда не появляется новых компонент вектора S.
В этом случае система (3.14) принимает вид
A1
x1 (1)
A3
x2 (1)
A6
x3 (1)
... = ...
...
...
...
...
Aj
xn (1)
A2
A4
A7
...
...
...
0
A5
A8
...
...
...
0
0
A9
...
...
...
Aj+1
Aj+2
Aj+3
...
0
...
0
...
0
...
...
...
...
...
...
... Aj+n+1
*
x1 (0)
x2 (0)
x3 (0)
... . (3.15)
...
...
xn (0)
163
В компактной векторной форме систему (3.15) можно представить в виде
X(1) = A*X(0).
(3.16)
При Aj + n = 0, число переменных в системе (3.16) становится
равным числу уравнений, и матрица A превращается из прямоугольной в квадратную, а система (3.15) принимает форму ЛПМ.
Число компонент фундаментального вектора S равно 2n, а вектор X является линейной функцией из этих компонент, поэтому
очевидно, что его размерность не превышает этой величины.
Линеаризация систем уравнений логического типа, содержащих конъюнкции из компонент вектора состояний, позволяет за
счет его расширения упорядочить причинно-следственные связи
в комбинаторных задачах математического программирования и
сравнительно просто определить их сложность, а также оценить
логическую замкнутость и непротиворечивость исходной нелинейной системы логических уравнений.
Модели в форме ЛПМ, в свою очередь, могут быть использованы в качестве исходных моделей:
— ������������������������������������������������������
для численного оценивания состояний и параметров динамического двоичного объекта;
— определения базисных и небазисных переменных вектора
состояния X(t) в логическом пространстве двоичных переменных;
— операций над символьно-полиномиальными матрицами;
— �������������������������������������������������������
численного определения характеристик управляемости, наблюдаемости, идентифицируемости, контроля пригодности двоичных динамических объектов;
— вычисления сигнатур дискретных устройств;
— обнаружения ошибок в циклических кодах;
— ����������������������������������������������������
генерирования последовательности псевдослучайных чисел на основе заданного циклического кода и др.
К виду ЛПМ можно привести достаточно большой класс КА.
В этом случае для решения задач логического анализа придется
решать уже ряд других математических задач, постановки которых являются известными, а особенности решения исследованными. К таким задачам в первую очередь относятся задачи решения СЛУ с дискретными неизвестными и задачи минимизации
линейной целевой функции с линейными ограничениями.
Если некоторые параметры матриц A, B, C и D неизвестны,
или известны, но их нужно идентифицировать путем наблюде164
ния вектора выхода y(t), возникает известная задача для аналоговых систем, а именно задача совместного оценивания параметров
и состояния.
Линейный характер задачи совместного оценивания параметров и состояния логических уранений имеет принципиальное значение при решении задач диагностирования. Характеристические матрицы А, В, С, D представляют структурнопараметрический образ логических уранений, поэтому их идентификация путем наблюдения вектора состояния и последующая
обработка результатов наблюдения фактически решают проблему диагностирования, так как, сравнивая эти матрицы с эталонными, можно сразу ответить на главные вопросы диагностики —
где и какая обнаружена неисправность.
3.3. Алгоритм вычисления вероятности
сложной логической функции
Пусть задана произвольная логическая функция в ПНФ, аргументы которой логически совместны:
f1,2, ...,k = f1 ⊕ f2 ⊕ ... ⊕ fm ⊕ ... ⊕ fk..
Требуется вычислить вероятность этой функции при заданном базисном векторе вероятностей логической системы [17, 18,
31]. Так как составляющими fi являются другие ЛФ fm и глубина
вложенности ЛФ не ограничена, то без приведения их к каноническому виду невозможно определить логическую зависимость
одной ЛФ от другой, что является основным условием при вычислении ее вероятности. При этом любая ЛФ может быть представлена в форме полинома Жегалкина (канонической ПНФ) единственным образом посредством компонент вектора S в качестве
ее аргументов.
Несложно показать, что значение вероятности логической суммы двух совместных ЛФ в алгебре Жегалкина f1,2 = f1⊕f2 определяется выражением:
pf1,2 = pf1 + pf2 – 2pf1f2,
для трех ЛФ:
pf1,2,3 = pf1 + pf2 + pf3 – 2(pf1f2 + pf1f3 + pf2f3) + 4pf1f2f3
для четырех ЛФ:
pf1,2,3,4 = pf1 + pf2 + pf3 + pf4 – 2(pf1f2 + pf1f3 + pf1f4 + pf2f3 + + pf2f4 + pf3f4) + 4(pf1f2f3 + pf1f2f4 + pf1f3f4 + pf2f3f4) – 8pf1f2f3f4
165
и т. д., где вероятности
pf1, pf2, pf3, pf4, pf1f2, pf1f3, pf1f4, pf2f3, pf2f4, pf3f4, pf1f2f3, pf1f2f4,
pf1f3f4, pf2f3f4, pf1f2f3f4
являются элементами вектора PSf .
В общем случае вероятность произвольной ЛФ, приведенной
к каноническому виду, можно представить как произведение
вектора-строки R на PSf:
pf1, 2, …, k = R*PSf,
где R — вектор-строка, содержащая k + 1 группу упорядоченных
элементов ri; i — обозначает номер группы, а k — число логических слагаемых в исходной ЛФ.
Все элементы в i-й группе равны, а их число ni определяется
числом сочетаний из k по i: ni = Cki.
Значения элементов ri для каждой i-й группы, кроме последней k + 1-й группы, определяются выражением
ri = (-1)rk+1 (-2)i-1,
где (k + 1)-я группа содержит всего один элемент.
Значение нормирующего коэффициента rk + 1 для единственного
элемента (k + 1)-й группы равно 0 или 1. При rk + 1 = 0 вычисляется
вероятность ЛФ, а при rk + 1 = 1 — вероятность отрицания ЛФ.
При представлении ЛФ в форме ДНФ, т. е. в виде
f1, 2, …, k ⇔ f1 ∨ f2 ∨ … ∨ fm ∨ … ∨ fk ⇔ fd1, 2, …, k,
где символ «∨» — дизъюнкция.
Выражение для вероятности ЛФ pfd1, 2, …, k совпадает с общеизвестным выражением для вероятности совместных событий, которая может быть вычислена по формуле
pf1, 2, …, k = Rd*PSf,
а элементы rdi вектора Rd — по формуле:
rdi = (-1)(i-1)+rk+1 ,
т. е. при представлении любой ЛФ как произведения идентификационной строки на фундаментальный вектор вероятность этой
функции можно рассматривать как алгебраическую сумму, каждый элемент которой может вычисляться независимо от других
компонент только по его порядковому номеру.
Порядковые номера элементов вектора PSf, которые являются
последними в каждой i-й группе, могут быть вычислены по формуле
166
ji =
m=i
å Ckm .
m=1
Он идентифицирует номера индексов слагаемых ЛФ, которые
должны быть логически перемножены. После логического умножения компонент слагаемых ЛФ будет получена компонента, являющаяся конъюнкцией компонент базисного вектора.
Вычисление значения вероятности этой компоненты осуществляется путем арифметического умножения вероятностей, составляющих ее ЛП.
Таким образом, вероятность ЛФ определяется как сумма (2k)
элементов. Эти элементы могут быть разбиты на k групп. Число
элементов в каждой группе определяется числом сочетаний из
k элементов по i, где i — номер группы. Элементы, входящие в
группы с нечетными номерами, имеют положительный знак, а с
четными — отрицательный. Вычисление значения каждого элемента осуществляется алгоритмически, так как затруднительно
указать формулу, по которой можно было бы вычислить вероятность путем подстановки исходных данных, а алгоритм можно
описать и реализовать в ЭВМ в виде вычислительной процедуры.
Надо заметить, что приближенные методы вычисления вероятности сложной логической функции по заданным вероятностям ее базисных переменных можно найти в [17, 18, 31].
При значениях k > 50 процедура вычисления на ЭВМ вероятности ЛФ по формуле pf1, 2, …, k = R*PSf требует больших затрат
машинного времени. Однако, как показали численные расчеты,
не все слагаемые pf1, 2, …, k дают соизмеримый вклад. Оказывается, при определенных условиях частью слагаемых при вычислении pf1, 2, …, k можно пренебречь из-за их малого значения. При
этом объем вычислений резко сокращается. По существу, задача состоит в определении числа первых номеров групп, которые
определяют основной вклад в значение вероятности P, а влиянием остальных можно пренебречь.
3.4. Метод ситуационного управления
Суть метода ситуационного управления состоит в том, что области изменения каждой компоненты векторов состояния и управления динамическими объектами (ДО) разбиваются по уровню на
целое число частей (квантов или разрядов). Также квантуется целевой вектор состояния.
167
С каждым квантом компонент векторов состояния в текущий
и конечный моменты времени связывается с ЛП xi. При таком
представлении задачи управления пространство состояний (ПС)
становится квантованным, или кластеризованным. Каждому
кластеру соответствует определенный набор (сочетание) ЛП. На
первом этапе решается краевая вариационная задача по переводу
ДО из одного произвольного кластера в другой. Накапливаются
статистические данные и помещаются в базу данных, в архив.
Пусть базисное множество ЛП x′ = < x1, x2, ..., xn > определяет совокупность признаков начальных условий задачи управления, т. е. некой ЛФ f = f(x). Например, факт, что в результате решения краевой задачи максимального быстродействия управляющая функция в текущий момент времени t принимает значение
u(t) = + U0, (f = 1), или u(t) = –U0, (f = 0). Пусть из (2n – 1) возможных наборов признаков задан набор x(1), x(2), …, x(j), …, x(m), (j = 1,
2, …, m) и соответствующий ему ряд значений ЛФ f(j) = f(x(j)).
Функция f(x(j)) имеет неявный вид. Требуется на основании этих
данных и заданном векторе вероятностей указанных признаков
базисного множества ЛП Px′ = < p1, p2, ..., pn > дать прогноз значения ЛФ f(k) и ее вероятности для любого произвольного k-го набора признаков x(k).
Для решения задачи сходимости алгоритма представим набор признаков в виде матрицы Ax′ = < x(1), x(2), …, x(j), …, x(m) > с размерами [m,n], а соответствующий ему набор значений функции — в виде вектора fx′ = < f(1), f(2), …, f(m) > .
Каноническая форма ЛФ представляет собой логическое произведение идентификационной строки С на фундаментальный
вектор S, т. е. f = C*S. Тогда
fx′ = < C*S(1), C*S(2), …, C*S(m) >  = C* < S(1),S(2), ..., S(m) >  = CAs′,
где As′ = < S(1),S(2), ..., S(m) > — набор (матрица) вычисленных
значений вектора S в соответствии с Ax′. После транспонирования
получим уравнение As*C′ = fx.
Матрица As прямоугольная с размерами [m,2n], поэтому вектор С′ имеет множество решений. Кроме того, если значения m и
n измеряются десятками или сотнями, то размеры матрицы As и
соответственно вектор-строки С весьма велики. Без дополнительных условий решение указанного уравнения является проблематичным. Например, можно искать решение относительно вектора
С, исходя из условий минимизации числа его ненулевых элементов, что связано с псевдообращением матрицы As и также может
168
быть проблематичным. Построение оптимизационной процедуры
отыскания редуцированной вектор-строки С ЛФ представляет самостоятельную задачу.
При упорядочении сочетаний признаков по какому-либо закону, например лексикографическому, каждому сочетанию признаков соответствует определенный номер на оси лексикографического упорядочения. Следовательно, вектору fx′ может быть поставлен
в соответствие вектор номеров упорядочения. При прогнозировании значений управляющей функции для произвольного набора
признаков исходных данных задачи управления вычисляется его
номер на лексикографической оси. Затем определяются ближайшие номера компонент вектора fx′. Так как для этих номеров известны значения функции управления и их вероятности, то по
этим данным могут быть определены прогнозируемые значения
функции управления и ее вероятности. Описанный алгоритм отыскания управляющих функций возможно реализовать при управлении в реальном времени, так как он имеет малую трудоемкость.
К недостаткам можно отнести сравнительно большие размеры базы архивных данных, полученных на первом этапе.
3.5. Алгоритм поиска оптимальных управляющих воздействий
на динамические объекты
В пространстве состояний нелинейных нестационарных ДО
исследуются численные алгоритмы их оптимального управления
при наличии ограничений. Управляющие воздействия ограничиваются классом кусочно-постоянных функций в виде положительных и отрицательных импульсов, порождающих в ПС бинарные деревья (БД) [19]. Динамический процесс интерпретируется
как рост БД. По мере их роста его узлы попадают в различные
области ПС (кластеры). Ограничения, накладываемые на фазовые координаты ДО, образуют границы запретных областей для
узлов БД. В узлах, попавших на границы запретных областей,
эволюция БД заканчивается. С течением времени в одни и те же
кластеры могут попадать новые узлы дерева и образовывать циклы. Для исключения зацикливаний в этих узлах эволюция БД
также завершается. Целью управления является попадание, в
процессе роста БД одного или нескольких узлов в заданный кластер e (целевое множество).
Другими словами, целью управления является отыскание допустимой управляющей функции, переводящей ДО из начального состояния в некоторую точку целевого множества e за мини169
мальное время и удерживание ДО в этом целевом множестве путем периодического прогнозирования решения на заданном интервале времени прогнозирования t. Оптимальная фазовая траектория при этом должна удовлетворять ограничениям. В теории
оптимального управления такую задачу относят к вариационным
задачам на максимальное быстродействие с подвижным правым
концом и ограничениями типа неравенств [22].
Реализация алгоритмов регуляторов, основанных на этих методах, предназначенных для работы в реальном времени, представляет значительную трудность из-за сложности вычислительного процесса. Рассмотрим новый численный метод поиска оптимального управления при адаптации к ограничениям внешней
среды, названный методом бинарных деревьев (МБД) [9, 16].
Оптимизационная процедура отыскания управляющего воздействия осуществляется посредством построения БД состояний
ДО. Для этого строится прогнозирующая модель, с помощью которой, для заданного времени прогнозирования t и шага прогнозирования Dt, в каждом узле БД вычисляются оценка вектора состояния (ВС) ДО и его евклидова норма, которая запоминается и
хранится в памяти ЭВМ в течение всего цикла прогнозирования t.
Норма ВС рассматривается как мера расстояния от узла до начала координат. Управляющее воздействие определяется комбинаторным методом как ЛФ упорядоченного множества узлов БД.
При управлении нелинейными, нестационарными ДО, на фазовые координаты которого наложены произвольные ограничения типа неравенств, классические методы управления оказываются непригодными.
К числу неклассических задач управления, к которым неприменимы классические методы, можно отнести такие задачи, как
управление транспортными средствами при наличии препятствий,
парковка транспортных средств с учетом их динамики, управление летательными аппаратами в нечетко определенной обстановке,
управление электроприводами наведения крупных радиотелескопов при ограничениях на мощность, ток, крутящий момент и др.
Решение подобных задач связано с решением неклассических
вариационных задач, необходимые условия которых для обыкновенных дифференциальных уравнений формулируются в форме
двухточечных краевых задач. Численное решение двухточечной
краевой задачи, за исключением простых случаев, является самостоятельной проблемой. Численные методы решения вариационных задач принято разделять на две большие группы.
170
К первой группе методов относятся методы, которые направлены на отыскание управляющих функций: различные модификации метода Ньютона [8, 20], методы прогонки [21], методы «со
свободным концом» И. А. Крылова и Ф. Я. Черноусько [22], методы штрафных функций [8, 23].
Все перечисленные численные методы решения задач оптимального управления, использующие необходимые условия оптимальности, просты в описании и удобны для машинной реализации. В то же время они не пригодны для решения невыпуклых
задач, какими являются перечисленные выше задачи.
Ко второй группе методов относятся методы, не использующие
(во всяком случае непосредственно) необходимые и достаточные
условия оптимальности. К числу этих методов принадлежат, например, все методы градиентного спуска, которые, как будет показано далее, также не пригодны для задач, подобных упомянутым выше.
Очевидно, что неточности математического описания ДО, наличие стохастических факторов, нестабильность его параметров
и измерительных средств требуют частого пересчета (прогнозирования) управляющего воздействия на основе текущей информации о векторе состояния x(t).
Поэтому численное решение вариационной задачи в реальном
масштабе времени требует высокой производительности вычислительных средств, что до последнего времени сдерживало применение численных методов математического программирования в регуляторах ДО.
При аппроксимации уравнений ДО уравнениями в конечных
разностях задачу оптимального управления можно интерпретировать как многошаговую задачу математического программирования (линейного или нелинейного), основной целью которого
является отыскание экстремума функции многих переменных,
подчиненных различным ограничениям [24].
3.5.1. Стратегии управления динамическими объектами
Рассмотрим уравнение движения n-мерного ДО управления в
разностной форме:
x(t + Dt) = f(x(t), A(t), u(t)),
где x(t), A(t), u(t) — функции времени t, t = Dtm, m = 0, 1, 2, …; Dt —
такт; x(t) — ВС; A(t) — оператор перехода x(t) в x(t + Dt); u(t) —
функция управления.
171
Ограничения:
x(t) ∈ H, u(t) ∈ (U, –U),
u(t) — является кусочно-постоянной функцией на интервале Dt и
принимает одно из двух возможных значений U, –U.
Требуется найти функцию u(t), которая обеспечивает переход
ДО из x(0) в x(t) за минимальное время T = nDt или минимальное
число шагов n. Точность перевода ДО в конечное состояние зависит от точности, с которой известны его характеристики и возмущения.
В области фазового пространства
Öåëåâîå ìíîæåñòâî
H (рис. 3.1) выделим две точки — ВС
H
x(0) и вектора целевого множества
x*(N)
ε
x*(T), а также ограничение Q — в виде непрерывной кривой.
a
Q
s2
s1
Требуется выбрать стратегию перевода x(0) в x*(T) и в соответствии с выx1(0)
бранной стратегией найти функцию
управления, обеспечивающую переÊîðåíü äåðåâà
вод за минимальное число шагов. Если
в качестве целевой функции выбрать
расстояние между x(0) и x*(T) как евклидову норму R = x * (T) - x(0) , то
Рис. 3.1
становится очевидным, что градиентные методы для этой задачи неприменимы, так как в стационарных точках, в которых вычисляется градиент, ограничение Q(x)
никак не учитывается. Движение по экстремали s1, например, с
максимальной скоростью уменьшения R (метод скоростного градиента [23]), будет проходить до точки а, в которой дальнейшее
уменьшение R невозможно из-за ограничения Q(x). Выбор стратегии управления для построения экстремали s2 при движении по
которой ограничения соблюдаются, становится очевидным только тогда, когда «видна» вся обстановка внутри региона H, т. е.
имеется информация об этой обстановке. Однако формализовать
получение этой информации является проблемой.
Другой концептуальный приB
H
мер
трудностей формализации вы*
X (0)
S1
бора
стратегии управления поясняет
Q
рис. 3.2.
Из точки x(0), находящейся в обA
X(0)
ласти A, требуется перейти в точку
Рис. 3.2
172
x*(T), находящуюся в области B. Целевое
В этой задаче для построения экс- множество
H
X*(N)
тремали s1 нужно найти щель в
ограничении Q(x), региона фазо10
9
вого пространства H. Подобные
Л
8
задачи могут успешно решаться с
Q Л
7
помощью МБД.
6
Стратегия МБД показана на
X(0)
Л
5
рис. 3.3. Цепочка узлов 1–10 ле1
2
жит на экстремали. Узлы, назыЛ
4
3
ваемые «листьями» (обозначены
символом «Л») достигли ограничений Q и H, поэтому исключаются из процесса поиска оптимальКорень
ного решения.
дерева
При R = x * (T) - x(0) £ ε, точРис. 3.3
ки x(0) и x*(0) совпадают, т. е. x(0)
находится в целевом множестве.
В этом случае возникает вопрос о выборе стратегии управления.
На основании динамических свойств ДО назначается время прогнозирования t и шаг Dt квантования управляющего воздействия.
Вычисляется значение x*(t) и строится БД по обычной схеме.
3.5.2. Метод бинарных деревьев
Метод бинарных деревьев основан на следующих допущениях:
1. Регион пространства состояний H, в котором отыскивается
управляющая функция, замкнут и не имеет разрывов.
2. В регионе H из любой произвольной точки x(T) за интервал времени ∆t посредством операторов A + (x) и A–(x) возможен
переход в две соседние области, заданные векторами x + (t + ∆t) и
x–(t + ∆t) и ограниченные радиусом e.
3. Расстояние между двумя произвольными точками ПС x1 и
x2 определяется как R = (x1 – x2)TM(x1 – x2), где M — положительно определенная матрица нормирования ПС.
4. Переход из x1 в x2 осуществляется за конечное число шагов.
5. Переход из x1 в x2 при R ≤ e осуществляется за время, не превышающее допустимое.
Общее число узлов БД в заданном регионе не превышает допустимого значения.
173
1
–
+
2(0)
–
–
–
4(00)
+
–
8(000) 9(001)
+–
+–
16 17 18 19
(0000) (0001) ...
20
3(1)
+
+
–
5(01)
6(10)
7(11)
+
–
+
+
–
10(010) 11(011) 12(100) 13(101)
14(011) 15(111)
+
+–
+–
+–
+–
+–
21 22
23
24
25
26
27
28
29
30
31
(1111)
Рис. 3.4
Построим БД возможных состояний, задавая каждому узлу
следующие характеристики:
— ns — порядковый номер узла БД,
— mf — номер этажа (такта),
— nf — число узлов в этаже,
— nsf — номер узла в этаже,
— ks — код управляющего воздействия в узле.
На рис. 3.4 цифрами вне скобок обозначены номера узлов БД —
ns; цифрами в скобках – коды управляющих воздействий — ks;
символом «1» – положительное значение управляющего воздействия u(t) = + U, а символом «0» — отрицательное значение
u(t) = –U.
Для идентификации узла и соU(t)
ответствующего ему кода достаточно:
∆t
1
2
3
4 t
— порядковый номер узла ns,
заданный в десятичной форме,
преобразовать в двоичную форму
binns;
Рис. 3.5
— ks образуется из вектора
binns путем удаления старшего разряда (первого элемента вектора).
Номер этажа БД mf равен числу разрядов вектора ks, а порядковый номер узла в этаже nsf вычисляется по формуле
nsf = ns + 1 – 2mf.
Например, при ns = 19 binns = [10011], ks = [0011], mf = 4,
nsf = 4 (рис. 3.5).
174
Алгоритм управления динамическими объектами
по методу бинарных деревьев
1. Вычислить параметры x(0), R(0), R*(0), A + (0), A-(0), в корне
БД mf = 0.
2. Положить mf = mf + 1.
3. Вычислить параметры БД и проверить их на ограничения:
— если R = x * (T) - x(0) £ ε, перейти к п. 6.
4. Вычислить
����������������������������������������������������
допустимый вектор номеров узлов и соответствующих им параметров БД, для которых ограничения соблюдаются:
— если ни для одного узла этажа ограничения не соблюдаются, перейти к п. 7.
5. Вычислить
�������������������������������������������������������
вектор номеров узлов БД следующего этажа, порожденных допустимым вектором номеров узлов текущего этажа
и перейти к п. 2.
6. Конец (оптимальное решение).
7. Нет решения.
Таким образом, двум произвольным точкам x(0), x(m) в ПС
ставятся в соответствие: скалярная величина расстояния между
ними Rm и вектор управления um, переводящий объект управления (ОУ) из точки x(0) в x(m).
Вектор um можно рассматривать как ЛФ от x(0), Rm и числа
шагов m. Решение относительно функции управления находится посредством итерационной процедуры, трудоемкость которой
существенно меньше трудоемкости процедур, используемых при
решении линейных неравенств.
При учете случайных факторов, действующих на ДО, вероятность этой функции может служить оценкой качества управления.
Ниже приведен полный алгоритм построения бинарного дерева, апробированный в среде MatLab 6.5.
3.5.3. Построение бинарного дерева функции управления
динамическим объектом
Определения БД:
— ns — глобальный порядковый номер узла БД, заданный в
десятичной форме,
— binns = dec2bin(ns) — глобальный порядковый номер узла
БД, заданный в двоичной форме;
— siz = size(binns) — число разрядов вектора binns;
— mf = siz(2) — номер этажа;
— nsf = ns + 1 – 2m–1 — номер узла в этаже;
175
— ks = binns(2:mf) — код управляющего воздействия в узле,
ks образуется из вектора binns путем удаления старшего разряда
(первого элемента вектора), и обратно: binns = [′1′,ks.] Например,
при ns = 19, binns = [10011], ks = [0011], mf = 4, nsf = 4;
— X0 — вектор состояния в корне дерева;
— X — вектор состояния;
— Xg — желаемый вектор состояния (вектор состояния цели);
— Xn — нормированный вектор состояния ОУ;
— Xgn — нормированный вектор желаемого состояния ОУ;
— s1 — вектор глобальных номеров узлов БД в (mf–1)-м этаже,
векторы состояния в которых не выходят за ограничения;
— s — вектор глобальных номеров узлов БД mf-м этаже, порожденных вектором s1;
— s2 — вектор глобальных номеров узлов БД в mf-м этаже, векторы состояния в которых не выходят за ограничения;
— Xs1 — матрица векторов состояния в узлах вектора s1;
— Xs2 — матрица векторов состояния в узлах вектора s2;
— rs1 — вектор расстояний от начала координат до узлов вектора s1;
— rs2 — вектор расстояний от начала координат до узлов вектора s2;
— drs1 — вектор расстояний от узлов вектора s1 до цели;
— drs2 — вектор расстояний от узлов вектора s2 до цели;
— Xmax — вектор ограничений фазовых координат OУ;
— x1 — главная координата вектора состояния ОУ;
— xg1 — главная координата вектора состояния цели;
— h — шаг квантования управляющего воздействия по времени;
— u0 — абсолютное значение управляющего воздействия;
— rg — расстояние от начала координат до цели;
— gx — расстояние от начала координат до ОУ;
— rxg — расстояние от ОУ до цели.
Алгоритм управления динамическим объектом
1. Вычислить параметры модели в корне БД, mf = 0.
2. Положить mf = mf + 1.
3. Вычислить параметры БД и проверить их на ограничения:
если один из текущих узлов попал в целевое множество, перейти
к п. 7.
4. Вычислить допустимый вектор номеров узлов s1 и соответствующих им параметров БД, для которых ограничения соблюдаются:
176
— если ни для одного узла этажа s��������������������������
���������������������������
ограничения не соблюдаются, уменьшить шаг квантования h, перейти к п. 5.
5. Вычислить вектор номеров узлов s БД следующего этажа,
порожденных допустимым вектором номеров узлов текущего этажа, и перейти к п. 2.
6. Нет решения.
7. Конец (оптимальное решение).
for mf = 1: Nmf,
dx/xt = Ax(t) + Bu(t) + Ff(t),
a(t) = Cx(t),
t
t
0
0
x(t) = e At x(0) + ò e A (t-σ) Bu(σ)dσ + ò e A (t-σ) Ff (σ)dσ,
T
t Ì [0, T ], h = , j = 1, 2, 3, ..., N,
N
x(tj ) = e
Ah
tj
x(tj-1 ) +
ò
e
A (tj -σ)
t
Bu(σ)dσ + ò e
A (tj -σ)
Ff (σ)dσ,
0
tj-1
R
e Ah = å A r hr / r !,
r =0
x(t + h) = Ф(h)x(t) + G(h)u(t) + H(h)f(t),
Ф(h) = [E–hA/2 + (hA)2/4–(hA)3/12]–1[E + hA/2 + (hA)2/4 + (hA)3/12],
G(h) = [E–hA/2 + (hA)2/4–(hA)3/12][E + (hA)2/6]hB,
H(h) = [E–hA/2 + (hA)2/4–(hA)3/12] [E + (hA)2/6]hF,
k-1
k-1
i=0
i=0
x(kt) = Φ k (h)x(0) + å Φ k-i-1 (h)G (h)u(ih) + å Φ k-i-1 (h)H(h)f (ih),
u(kh) £ U,
Qx(kt) £ X, k = 0, 1, 2, ..., N -1,
xi* (Nh) - xi (Nh) £ ε,
x* (kN) - Φ N (h)x(0) +
N-1
å Φ N-i-1 (h)G(h)u(ih) +
i=0
N-1
+ å Φ N-i-1 (h)H(h)f (ih) £ ε,
i=0
x(t + Dt) = f(x(t), A(t), u(t)),
177
где x(t), A(t), u(t) — функции от времени t, t = Dtm, m = 0, 1, 2,…;
Dt — шаг; x(t) — вектор состояний; A(t) — оператор перехода x(t) в
x(t + Dt); u(t) — функция управления.
Условие:
–X ≤ x(t) ≤ X,
u(t) ∈ (U,–U),
где u(t) является кусочно-постоянной функцией на интервале Dt и
принимает одно из двух возможных значений U, –U.
Положим: Dx(t) = x(t + Dt) – x(t).
Введем нормализации:
DMx(t) = MDx(t),
Dr2 = DMxT(t)DMx(t) = DxT(t) M2Dx(t),
x(m + 1) = Ax(m) + Bu(m),
Dx = Ax + Bu – x = (A – E)x + Bu,
где E — идентификационная матрица;
Dr 2 = DxT M2 Dx = (( A - E)x + Bu)T M2 (( A - E)x + Bu) =
= xT
u×
P=
( A - E)T
M2 ( A - E) B ×
BT
( A - E)T
T
B
x
;
u
M2 ( A - E) B ,
x(m) = Am x(0) +
m-1
å Am-i-1Bu(i).
i=0
Дистанция Rm между начальной точкой x(0) и конечной точкой x(m) определяется следующим образом:
Dx(m) = x(m) - x(0) = Am x(0) +
= ( Am - E)x(0) +
m-1
å Am-i-1Bu(i) - x(0) =
i=0
m-1
m-i-1
åA
Bu(i).
i=0
Обозначим
m-1
å Am-i-1Bu(i) = Bmum ,
i=0
178
где
Bm = B(0) B(1) ... B(m -1) , B(0) = BAm–1, B(1) = BAm–2, …,
B(m) = B, (um)T = [u(0, u(1),…, u(m – 1))],
Dx(m) = (Am – E)x(0) + Bmum;
2
Rm
= DxT (m) M2 Dx(m) =
( Am - E)T
= xT (0) um ×
M2 ( A m - E)
T
Bm
Bm ×
x(0)
.
um
Определим матрицу
( Am - E)T
T
Bm
где
M2 ( Am - E)
Bm = Pm ,
x(0)
2
Rm
= xT (0) um × Pm ×
.
um
Построим гиперплоскость второго порядка G ∈ [X]:
a(x,x) + 2b(x) + c = 0,
где a(x, x) — квадратичная форма; b(x) — линейная форма.
В заключение отметим, что в настоящей главе концептуально
описаны подходы к решению задач управления ДО, не вписывающихся в известные схемы. При изменении некоторых условий и
ограничений интерпретации процессов неузнаваемо изменяются
и возникают новые вопросы.
В описанном методе существенным ограничением является
исключение зацикливаний при росте БД, однако если снять это
ограничение, динамические процессы ДО можно аппроксимировать типовыми уравнениями математической физики, использовать различные физические аналогии.
По мере роста дерева, с увеличением номера такта, количество
точек (узлов) дерева в отдельных кластерах будет возрастать, т. е.
будет увеличиваться их плотность. При этом распределение плотности по всему объему области [H] для каждого конкретного ДО
будет уникальным. Для оценки эффективности изложенного подхода еще потребуются исследования его качественных особенностей.
179
3.6. Сложности вычислительных алгоритмов
в задачах оптимизации управления динамическими объектами
Эффективность методов управления ДО обычно связывается
с возможностью реализации этих методов на вычислительных
устройствах (ВУ) в форме алгоритмов для управляющих функций (воздействий). В соответствии с выбранными критериями качества управления алгоритмы вычисления управляющих функций могут иметь различную вычислительную сложность. Так,
например, беспоисковые алгоритмы, основанные на методах с
квадратичными критериями качества, обеспечивают в ВУ численное интегрирование векторно-матричных уравнений и имеют
простую логическую часть. Поисковые алгоритмы, основанные
на методах математического программирования, напротив, имеют более сложную логическую часть. Беспоисковые алгоритмы
обеспечивают качество управления для стационарных условий,
без учета нелинейностей и ограничений на векторы состояния и
управления, а поисковые алгоритмы — качество управления для
нестационарных условий и с учетом ограничений. Очевидно, что
поисковые алгоритмы способны обеспечить более высокое качество управления, но их сложно реализовать в ВУ.
Сложность реализации алгоритмов обусловлена жестким требованием к времени их выполнения в ВУ, характерным для систем реального времени. Другими словами, алгоритмы должны
выполняться в ВУ за строго определенное время, называемое временем квантования управляющего воздействия.
Если под качеством управления ДО понимать максимальное
или среднеквадратическое значение точности, при заданных значениях управляющих и возмущающих воздействий, учете нелинейностей, учете ограничений на вектор состояния и управление,
то очевидно, что одно и то же качество может быть обеспечено
разными методами и соответствующими им алгоритмами. Тогда наиболее эффективным окажется тот метод, алгоритм которого имеет наименьшую сложность. С другой стороны, качество
управления, обеспечиваемое одним алгоритмом, может несущественно отличаться от качества, обеспечиваемого другим алгоритмом, но сложности их могут существенно различаться.
Таким образом, для сравнительной оценки эффективности методов управления нужно, прежде всего, уметь определять сложность вычисления управляющих воздействий.
Сложность вычислений составляет одну из важнейших проблем современной науки о вычислениях [30] и представляет бы180
стро развивающуюся область математики. Было выработано много различных подходов к проблеме сложности вычислений [35].
Большинство из этих подходов связано с отысканием для логических схем и описывающих их булевых функций таких форм символьного или комбинаторного представления, из которых легко
вычисляются длины формул и количество вычислительной работы. При этом для изучения свойств алгоритмов требуется некая
общая для всех форма представления. Такой общепринятой формой является машина Тьюринга, которая, согласно выдвинутому А. Чёрчем тезису, обладает свойством, заключающимся в том,
что любая изобретенная человеком процедура может быть реализована машиной Тьюринга. Она является простым по своей идее
устройством, предназначенным для механической реализации
вычислительных процедур, но как средство для описания вычисляемых функций малопригодна, так как не имеет развитого языка, в котором можно явно обращаться к функциям.
Следуя [35], рассмотрим общепринятый, или более точно, известный подход к оценкам сложности.
Назовем f булевой (логической) функцией с областью определения {0,1}n и множеством значений {0,1}, где n — целое число, а
{0,1}n обозначает n-кратное декартово произведение множества
{0,1} на себя, т. е. множество всех двоичных наборов длины n.
Компактно изложенные выше определения функции будем записывать в виде f: {0,1}n → {0,1}. Наборы из m ЛФ f1, f2, …, fm будем записывать f: {0,1}n → {0,1}m, или f(x1, x2, …, xn), где x = (x1,
x2, …, xn) ∈ {0,1}n обозначено базисное множество ЛП из области
определения {0,1}n.
Базисом Ω назовем минимально возможное множество логических операторов (связок), достаточных для порождения любой
произвольной ЛФ. Примерами базисов могут служить Ω = {∨, &, ¯},
Ω = {⊕, &, 1}. Часто для записи формул ЛФ используются смешанные базисы, например Ω = {∨, &, ¯,⊕}. Строго говоря, для записи
ЛФ в смешанном базисе, необходимо применение еще одного оператора, который должен включаться в базис, а именно оператор
«()» — скобки, который определяет приоритет операций. Однако
в литературе по исследованию логических систем этот оператор
часто опускается, а приоритет операций как бы подразумевается,
что в конечном итоге приводит к неоднозначностям и недоразумениям.
Такое же замечание можно сделать относительно использования оператора « = ». Один из крупнейших специалистов в обла181
сти математической логики С. К. Клини [36] замечает, что «равенство» помимо основных свойств: рефлексивности, симметричности и транзитивности, обладает свойством замены, а неучет
этого последнего свойства приводит к подмене «равенства» «эквивалентностью», что так же порождает недоразумения и ошибки. Поэтому при описании ЛФ «равенство» допустимо применять
только в базисах Ω = {⊕, &, 1}, Ω = {⊕, 1} и недопустимо в базисе
Ω = {∨, &, }.
Одни и те же ЛФ f в различных базисах могут иметь различную длину, которая прямо связывается с понятием комбинационной сложности. Стремление получить минимальную комбинационную сложность ЛФ f определяется их реализацией в логических схемах ЭВМ, т. е. с синтезом этих схем. Оценки сложности
при таком подходе носят утилитарный, прагматический характер и не во всех случаях могут использоваться для сравнения алгоритмов. Для такого сравнения ЛФ должны быть представлены
в одном базисе. Известно, что многократно отмечались достоинства базиса Ω = {⊕, 1}, характерного для ЛПМ [30]. Любая ЛФ в
этом базисе представляется в виде полинома Жегалкина единственным образом [29], а конечный автомат — ЛПМ.
При синтезе законов управления линейных или линеаризованных ДО относительно квадратичных критериев качества для
стационарных условий или градиентных критериев, для локальных областей фазового пространства сами законы, полученные в
результате синтеза, представляют собой тривиальные вычислительные алгоритмы векторно-матричных операций. Длина этих
алгоритмов и вычислительная сложность могут быть определены
по известным формулам в зависимости от размерности вектора
состояния.
Для динамических объектов типа АУ (антенная установка),
специфика ограничений их фазового пространства (узкая диаграмма направленности — ДНА, квантовый характер измерения
углов с небольшим числом квантов в ДНА), использование приема его кластеризации, а также ограничения длины алгоритмов за
счет приближенного вычисления вероятностей ЛФ при принятии
решений приводят к задачам сравнительно невысокой размерности, для которых возможен полный перебор.
Если известна мера сложности и численные оценки сложности нескольких алгоритмов, окончательное принятие решения об
эффективности методов, которым соответствуют эти алгоритмы,
происходит с участием человека. Однако задачи принятия реше182
ний с участием человека носят специфический характер и в настоящем исследовании не рассматриваются. Теория, специфика
этих задач и математический аппарат их решения изложен в работе Д. Б. Юдина [38].
В отличие от автоматов, какими бы свойствами мы ни наделяли понятия «компромисс», «равновесие», «справедливость», какие
бы требования ни предъявляли к этим категориям, всегда найдутся ситуации, когда этих требований окажется недостаточно для
решения вопроса о компромиссном, равновесном, справедливом
выборе и появится необходимость во введении дополнительных
свойств рационального выбора. Модификация требований к рациональному решению может продолжаться сколь угодно долго.
Эта мысль находит подтверждение у К. Гёделя [32], который показал, что в широком классе достаточно богатых формальных систем
всегда найдётся утверждение, истинность или ложность которого
нельзя проверить исходя из набора аксиом, определяющих правила вывода, ибо задача установления истинности формул в исчислении предикатов алгоритмически неразрешима.
Оценка сложности вычислительных алгоритмов управления
динамическими объектами
Характерной особенностью нетривиальных вычислительных
алгоритмов является то, что они могут быть представлены в форме двух частей (см. рис.����������������������������������������
���������������������������������������
3.6). В арифметической части последовательно выполняются вычислительные процедуры, вычислительная сложность которых известна. Например, при решении систем
линейных алгебраических уравнений (СЛАУ) используется прямые и итерационные методы. Прямые методы основаны на сведении матрицы СЛАУ к матрице простой структуры (треугольной,
диагональной и др.) и на разложении матрицы, а затем для этого
разложения находится решение. Арифметическая трудоемкость
метода Гаусса: для разложения матрицы асимптотическое число
операций 1/3n3, асимптотическое число операций для решения
СЛАУ (тип матрицы ортогональная) 2n2 (n — размер квадратной
матрицы).
В логической части используются результаты расчета арифметической части, для того чтобы сделать один или несколько логических шагов для вычисления вектора логических функций.
Атрибуты логических функций в качестве начальных условий
(или обратной связи) подаются в первую часть для того, чтобы
осуществить следующую итерацию. Процесс продолжается до
183
тех пор, пока значения атрибутов вектора логических функций
не удовлетворят заданным условиям.
Поисковые процедуры алгоритмов могут быть представлены в
форме логической комбинаторной схемы или КА Милли [35].
Напомним, что ЛПМ — это математическая модель вычислительной машины с памятью в базисе Ω = {⊕, 1}. Следовательно, для эквивалентного преобразования КА в ЛПМ за счет расширения вектора состояния КА необходимо исключить из базиса
Ω = {⊕, &, 1} оператор &.
Используя понятие фундаментального вектора, задачу приведения произвольной системы ЛУ к форме ЛПМ можно сформулировать следующим образом.
Пусть S(t) — фундаментальный вектор, построенный из базисного вектора КА. Тогда его математическая модель в базисе
Ω = {⊕, 1} может быть записана в форме:
G S(t + 1) = H S(t) ⊕B u(t),
y(t) = C S(t) ⊕ D u(t),
где x(t), y(t),u(t) — двоичные [0,1] векторы; B, G, C, D, H — двоичные [0,1] матрицы; t = 1, 2, 3, ..., T — параметр целого типа.
Надо отметить, что если базисный вектор дополнить вектором
u(t), то фундаментальный вектор S(t) расширится до Sр(t) и КА
Милли преобразуется в КА Мура
Вектор состояния Х
Исходные
данные ЛЧ
Операции отношения
Арифметическая часть
ЛПвход
Атрибуты ЛП
Интерпретация
атрибутов ЛП
Логическая часть (КА)
Исходные
данные (АЧ)
ЛПвыход
СЛУ
ЛМ
Ограничения
Оценка сложности
По размеру
характеристических
матриц
По показателям
По характеристическому
управляемости, наблюдаемости,
полиному
восстанавливаемости и др.
Рис. 3.6
184
Sр(t + 1) = АSр(t),
y(t) = Cр Sр(t),
где А — квадратная матрица [0,1].
Для конкретного КА ранг матрицы А существенно меньше ее
размера и может быть еще уменьшен для его логико-вероятностной
модели за счет исключения компонент второго порядка малости в
соответствии с методом [17, 18].
В конечном итоге KA���������������������������������������
�����������������������������������������
может быть представлен в форме сдвигового регистра [29] или системы сдвиговых регистров, комбинационная сложность которых известна. Сравнение алгоритмов управления в форме сдвиговых регистров имеет существенное преимущество по сравнению с другими формами их представления, так
как для сравнения существует небольшой набор характеристик и
параметров. К таким характеристикам относятся ранг матрицы
сдвигового регистра и его характеристический полином.
Приведение произвольного КА к форме ЛПМ не исчерпывает
проблем вычислительной сложности задач управления ДО. Она
служит лишь удобной математической моделью для исследования динамических процессов. Одной из основных задач для ЛПМ
является ее перевод из одного произвольного состояния в другое
за минимальное число шагов. Несложно показать, что эта задача
представляет собой задачу булева линейного программирования,
которая относится к классу �����������������������������������
NP���������������������������������
-полных задач, для которых не гарантируется решение за полиномиальное время и не исключен
полный перебор. Для этих задач все известные полиномиальные
по времени приближенные алгоритмы дают результаты, которые
не могут сколь угодно точно приближать точные решения [37].
185
Глава 4. Использование численных моделей
в физике и технике
Известен ряд приемов компьютерного представления математических объектов, широко применяемых в физике и технике:
действительных чисел, дифференциальных операторов и др. Тот,
кто пользуется этими приемами, должен суметь ответить на два
следующих вопроса [13]:
— �������������������������������������������������������
когда необходим переход от функциональной модели к численной модели?
— каким образом она строится?
На эти вопросы трудно дать общий ответ, поэтому ограничимся тем, что определим место численной модели по отношению
к другим способам физического исследования (математический
анализ и эксперимент) и затем напомним некоторые принципы,
используемые при составлении программы.
4.1. Эксперимент, теория и численные модели
Решение физической задачи подробно рассматривалось философией и историей науки [39]. С того времени как математическое
формулирование физических теорий признано «парадигмой», описание реального мира может быть сведено к последовательности
взаимодействий между экспериментом и теорией, примеров чему
достаточно (закон Кеплера и закон гравитации, открытие планеты
Нептун, опыт Михельсона и теория относительности, признаки общей относительности, уравнение Дирака и античастицы).
Это взаимодействие проявляется в физике на всех уровнях,
даже если рассматриваемые проблемы не обладают значением
приведенных примеров.
Целью теории является поиск удовлетворительного математического представления эксперимента. При этом она опирается
на ряд фундаментальных принципов (принципы термодинамики, закон сохранения, инвариантность и т. д.) и стремится при
помощи математического аппарата извлечь из этих принципов
информацию и составить прогнозы. В основе рациональной физики (начиная от Галилея и Ньютона) лежала теория, имеющая
главным образом прогнозирующее значение. В дальнейшем она
все больше и больше признавалась средством познания наблюдаемых явлений. Сегодня значение какой-либо теории оценивается ее способностью в небольшом числе аксиоматических идей
передать большое число не связанных между собой фактов.
186
Численное представление часто рассматривается в качестве некоторого простого инструмента, дающего возможность упростить
эти манипуляции или отбросить их, если они становятся слишком сложными. Это положение, возможно, и является оправданным во всем, что касается фундаментальной физики, но оно гораздо менее оправдано в прикладной физике. Численное представление приобретает тем более ярко выраженные свойства, чем
ближе мы подходим к границе (весьма, впрочем, зыбкой) между
самой физикой и инженерными науками.
В этих областях работа на ЭВМ гораздо ближе к экспериментальной, чем теоретической. Приведем несколько примеров.
1. Как и эксперимент, численная модель имеет некую физическую основу, на которой она покоится: научно разработанные
программы часто содержат тысячи и десятки тысяч команд на
языке высокого уровня. Практические задачи машинной обработки играют в таком случае определяющую роль. Объем памяти
используемой ЭВМ, время вычисления, организация программ и
даже выбранные алгоритмы зависят именно от них. Программа
вычислений в метеорологии, астрофизике и даже при термоядерной реакции требует часов, может быть, сотен часов вычислений
на самых мощных многопроцессорных ЭВМ. Даже простая обработка полученных результатов поднимает именно практические
вопросы, не имеющие ничего общего с вопросами, занимающими
теоретиков.
2. Физический эксперимент часто представляет собой некую
модель действительности, которую мы и стремимся осмыслить.
Если же эта действительность слишком сложна (когда эксперименты неосуществимы или слишком дороги для того, чтобы проводить их необходимое количество раз), то, естественно, стремятся к построению некоторой более простой экспериментальной модели. Таким образом, большинство физических экспериментов
служит для изучения не полной проблемы, а одной из ее частных
проявлений. Численная модель очень напоминает эксперименты
такого рода, и тогда говорят о «численном моделировании» в прикладной физике.
3. Численная модель строится, начиная с машинного представления законов, описывающих некоторую данную физическую ситуацию.
До недавнего времени и в математическом естествознании господствовало моделирование реальных явлений при помощи математических моделей, построенных на математике бесконечного
187
и непрерывного. Например, изучая процесс молекулярной теплопроводности, мы представляем себе непрерывную среду, в которой температура подчинена уравнению
¶u
¶2u ¶2u ¶2u
= K( 2 + 2 + 2 ).
¶t
¶x
¶y
¶z
(4.1)
Математики привыкли рассматривать соответствующую разностную схему
Dtu = K(Dxxu + Dyyu + Dzzu) (4.2)
лишь как возникающую при приближенном решении «точного»
уравнения (4.1). Но реальный процесс теплопроводности не более
похож на свою непрерывную модель, выраженную уравнением
(4.1), чем на дискретную модель, выраженную непосредственно
уравнением (4.2).
Весьма вероятно, что с развитием современной вычислительной техники можно будет во многих случаях разумно изучать
реальные явления, избегая промежуточный этап их стилизации
в духе представлений математики бесконечного и непрерывного,
переходя прямо к дискретным моделям. Особенно это относится
к изучению способных перерабатывать информацию сложно организованных систем, в которых тяготение к дискретности работы вызвано достаточно известными в настоящее время причинами. Однако требует объяснения тот парадокс, что человеческий
мозг математика работает по дискретному принципу, и тем не
менее ему значительно доступнее интуитивное постижение, скажем, свойств геодезических на гладких поверхностях, чем могущих их приблизительно заменить свойств комбинаторных схем.
Когда явления достаточно сложны, полученные результаты,
как правило, отличаются от ожидаемых. Экспериментатор, как
и специалист по численному моделированию, должен в этом случае проводить анализ, чтобы вникнуть во все детали данного явления. В эксперименте анализ опирается на измерения; в численном анализе исходят из промежуточных результатов и вычисляют вспомогательные величины (например, потоки или интегральные потери). Таким образом, начиная эксперимент, в первую очередь следует подумать об анализе, который потребуется для его
удачного осуществления. Аналогичным образом запись какойлибо программы должна обеспечить возможность доступа к важным вспомогательным величинам. Программа без промежуточных результатов так же бесполезна, как и опыт без измерений.
188
оз
ка
гн
ер
в
ро
П
ро
П
Теория
Оц
ен
Оц
ен
ка
ги
ка
по
те
м
зы
од
ел
и
Численная
модель
Эксперимент
Оценка модели
Прогноз, диагностика
Рис. 4.1
Численный алгоритм оказывается, таким образом, то инструментом теории, то неким новым типом эксперимента. В действительности же решение численной модели на ЭВМ и математическая
модель физического процесса должны рассматриваться как одинаково важные. В современных исследованиях взаимодействие
между этими тремя инструментами исследования заменят диалог между теорией и экспериментом (рис. 4.1).
Численная модель заимствует у теории основы компьютерного
представления физического процесса. В сложных ситуациях она
апостериорно подтверждает или опровергает те или иные упрощающие гипотезы. Численная модель, так же как и теория, проверяется экспериментально. В свою очередь, она может использоваться как средство прогнозирования в эксперименте (в этом
случае моделируются неизвестные или не п�������������������
����������������
оверяемые экспериментально явления), и численная модель используется для определения параметров, лучше всего приближающихся к известным
результатам. Эта методика моделирования применяется сейчас
тем шире, чем доступнее становятся вычислительные системы
большой мощности — многопроцессорные супер-ЭВМ. Когда моделирование переносится с функций на «поведение» самих элементов, например, взаимодействие атомов при их строении, возникает проблема контроля за ядерным снарядом и т. д.
4.2. Преимущества и недостатки численной модели
По отношению к эксперименту численные средства являются
всего лишь моделями. Нужно уметь отличать ту часть результатов, которая представляет теорию, от той, которая представлена
особенностями (округление, неустойчивость решения, ошибки
усечения и т. д.) численной модели.
189
Численная модель не может заменить собой словесную формулировку, которая имеет гораздо более богатую семантику. Между
тем математический анализ задачи в большинстве случаев требует ограничивающих предположений. Даже когда вычисления
могут быть доведены до конца, малейшее изменение начальных
предположений грозит опрокинуть всю систему вычислений.
Численная модель может без особого риска быть подвергнута значительным изменениям в том случае, если она хорошо замкнута.
Можно привести пример последовательного использования алгоритмов решения уравнения теплопроводности. Математический
анализ дает только решение линейного уравнения с постоянными
коэффициентами. Но даже в таком простейшем случае полученные формулы должны быть вычислены путем численного анализа без какого-либо особого их приспособления к этому вычислению. Более того, полная численная модель позволяет вычислять
наиболее обоснованные из некоторых упрощений, необходимых
теоретической модели, чтобы остаться разрешимой. Алгоритм
решения некоторого нелинейного уравнения теплопроводности
позволяет определить, законна ли гипотеза линеаризации коэффициентов, которая является единственным условием, дающим
возможность аналитического рассмотрения.
Такой поход численного моделирования теоретических моделей является одним из самых значительных вкладов ЭВМ в прикладную физику. Конечно, эксперимент также позволяет узаконить ту или иную теоретическую модель, но интерпретация
в данном случае не является такой же ясной. В самом деле, весьма трудно с уверенностью выделить действие (эффект) параметра, управляющего явлением. Численная модель обладает двумя
свойствами, часто отсутствующими у эксперимента: результаты,
полученные численным путем, воспроизводимы даже при моделировании случайных (произвольных) явлений, и их прогнозирование более совершенно. Действительно, все детали численной модели могут быть известны в любой момент, для чего не надо прибегать к модификации ее поведения. Физические эксперименты
обладают этими свойствами только в исключительных случаях.
Теперь мы можем ответить на вопрос, каким образом нужно
использовать численную модель.
Необходимо сравнить ее с двумя другими орудиями — теорией
и экспериментом. Численная модель требует правильной теоретической модели. Некорректная в математическом отношении
задача не может быть исправлена ЭВМ. Если теоретическая мо190
дель дает вычислимый ответ, задача решена. Если же получить
полный ответ невозможно, можно рассмотреть и численную модель.
Численная модель особенно полезна при прогнозировании мало изученных явлений в сложных экспериментах. Для этой цели
все более широко используются ЭВМ. Можно привести примеры
из астрофизики и метеорологии, где теории лишь приблизительно известны, а экспериментальные данные многочисленны, но
неполны. ЭВМ дает возможность моделировать развитие процессов и отвечать на некоторые вопросы. Всякий прогресс в области
применения ЭВМ приводит также к заметным сдвигам в уровне
наших познаний в метеорологии [40]. И, наоборот, возможность
моделировать и производить самые точные измерения в таких
процессах, как, например, турбулентность, приводит к пересмотру математического описания последних. Так, теория уравнений Навье — Стокса является объектом многочисленных работ,
имеющих тесную связь с методикой численного моделирования.
4.3. Построение численной модели
Численная модель должна представлять корректную в математическом отношении теорию: ЭВМ не в состоянии устранять
неопределенность, обрабатывать данные по аналогии, производить аналитическое развитие процесса и т. д. Все операции должны быть переведены на принятый язык вычислений, в противном
случае получим ответ, зависящий от состояния системы, т. е. не
имеющий смысла, либо вообще его не получим.
Численная модель требует переупорядочения математических
выражений и уточнений в адекватности — в этом одно из ее предназначении. И, конечно, не следует перекладывать на вычислительную систему ответственность за полученные результаты, нужно просто уметь интерпретировать значение этих результатов.
Но, что более серьезно, всегда возникает вероятность неправильной их интерпретации. Без специально выбранных единиц измерения численная модель часто затемняет физическое значение
результатов. Как же выбираются единицы измерения? В каждой
отдельной задаче следует пользоваться общим методом, позволяющим построить системы таких единиц измерения. Уравнения, не
имеющие размерности, получают путем замены всех физических
величин их отношениями с произвольными величинами (выбранными единицами измерения). В этих случаях и появляются комбинации этих произвольных величин, которые приравниваются
191
к удобным величинам (обычно к 1). Выбор этих комбинаций и их
значений должен осуществляться в зависимости от решаемой задачи, и он устанавливает единицы измерения. В этом случае численная модель дает значения безразмерных величин.
«Всякое непроверенное вычисление неверно» [41]. Всякая программа машинного вычисления дает цифры в том случае, если
самые грубые синтаксические ошибки были устранены. Однако
вероятность того, что эти цифры будут неверными, всегда очень
велика. Необходимо, таким образом, подвергнуть результаты
критическому анализу, являющемуся неотъемлемой частью использования программ.
Рассмотрим несколько способов проверки численной модели.
Проверка порядка величин. Анализ любой физической задачи
начинается с грубого определения порядка рассматриваемых величин, «определения на глазок». Этот анализ часто и заключается в вышеупомянутом выборе единиц измерения. Если последние выбраны таким образом, чтобы величины были представлены цифрами, имеющими порядок единицы измерения, то очень
большие или очень маленькие значения будут скорее всего неверны. Можно сравнить результаты упрощенной теории с экспериментальными величинами или результатами другой численной
модели, применимость которых была доказана ранее.
Этот метод позволяет устранить только самые грубые ошибки, и поэтому он не совсем удовлетворителен. Сравнение с программой, пригодность которой была до­казана независимо, должно проводиться для достаточного числа значений параметров, выбранных, например, произвольно. Программа может содержать
ошибки, проявляющиеся только в случаях, не имеющих отношения ни к упрощенной теории, ни к эксперименту. Особо деликатным случаем является тот, при котором ошибка, замеченная
в ответах, полученных от разных источников информации, находится на границе допустимого, поскольку эта граница всегда
трудноопределима. Часто опыт, приобретенный в ходе использования какого-либо средства численного анализа, является единственным средством описания функционирования последнего,
что приводит, как и при всех других процессах обучения, к одновременному построению средства машинного представления и
правил его функционирования.
Анализ полученных величин. Полученные величины можно
сравнить с величинами, которые строго предусматриваются теорией, если, конечно, последняя существует.
192
Различие между численным и ожидаемым математическим результатом зависит, в том числе, от ошибок округления или в не меньшей степени от ошибок усечения, которые обычно намного больше
ошибок округления. Таким образом, критерии сравнения не являются единственными. Во всех случаях следует сначала точно определить, какие критерии будут использоваться для сравнений.
Анализ свойств решения. Выбор задач, обладающих свойством инвариантности по отношению к�����������������������
����������������������
некоторым функциональным преобразованиям, позволяет определить, применима или
нет та или иная численная модель.
Возможны два случая:
1. Численная модель построена таким образом, что свойства
инвариантности задачи были учтены. Теперь при рассмотрении
инвариантности численного решения определяется пригодность
программной реализации численного моделирования, т. е. употребления ошибок округления, процессов ввода-вывода.
2. Численная модель не учитывает свойства инвариантности.
Анализ в таком случае должен быть более тонким, поскольку
ошибки численного моделирования (в частности, ошибки усечения) могут прибавиться к ошибкам, допущенным ранее.
Анализ инвариантности дает в этом случае некоторую оценку
ошибок моделирования, т. е. проверяется численная часть представления результатов вычисления.
Законы сохранения. Большинство физических законов отражают свойства законов сохранения. Уравнения в частных производных переводят на язык математики локальные свойства законов сохранения. Эти свойства не обнаруживаются при помощи вариационных формулировок физических законов, однако они им
эквивалентны.
Таким образом, можно использовать эти свойства для проверки
построенных численных моделей. В большинстве задач значения
универсальных величин, отражающих свойства закона сохранения, являются необходимым условием физического осмысления построенной численной модели. Работающий на ЭВМ обычно
больше интересуется такими величинами, как магнитные поля,
распространение теплоты, кинетическая энергия, электрический
ток в рассматриваемых системах, чем величинами потенциалов
или температур в некоторой данной локальной точке. Только рассмотрение интегральных величин позволяет приблизить поведение численной модели к классической схеме или понять, почему
модель все же укладывается в такую схему.
193
Рассмотрение свойств сохранения играет, таким образом,
первостепенную роль как в качестве теста для проверки численной модели, так и в качестве средства понимания свойств этой
модели.
Возможны два случая:
а) Существует численное представление законов сохранения,
которому строго подчиняется численная модель (с точностью до
ошибок округления). В этом случае проверяется программная
часть моделирования.
б) Записаны могут быть только приблизительные представления законов сохранения. В этом случае интерпретация результатов очень усложняется, поскольку в моделировании представлены разные источники ошибок.
Непосредственная оценка ошибок моделирования. Ошибки
моделирования могут быть оценены непосредственно путем использования различных численных представлений одной и той
же задачи.
Задача, преобразованная к дискретному виду методом конечных разностей или конечных элементов, анализируется путем
сравнения результатов, полученных от различных конфигураций. К сожалению, профессионализация пользователя должна
определить точность, с которой получен тот или иной экспериментальный результат. Эта точность часто отличается от точности машинного представления чисел: точность измерения также
не всегда адекватна по шкале измерительных градаций физического инструмента.
Некоторые благоприятные случаи позволяют построить улучшенное представление решения на базе результатов, полученных
от различных численных моделей.
Итак, рассмотренные методы применяются для оценки численных моделей. Существует множество подобных методов, дающих широкий простор для воображения пользователя. Эти
тесты действительно являются самой важной частью создания
численной модели, они гарантируют правильность модели и позволяют достаточно просто интерпретировать ее значение. Как
правило, следует включать тесты на определение применимости
численных моделей в состав программы, причем до того, как эти
программы уже написаны. Часто можно заметить, что проблемы доказательства правильности ответов в значительной степени воздействуют даже на структуру уже построенных численных средств.
194
Действительно, невозможно опробовать программу во всех
условиях, в которых она будет использоваться, кроме случаев с
элементарными алгоритмами. Оценка программы в общем случае является крайне тонкой проблемой. Этой областью, называемой «доказательством программы», занимаются теоретики
системного программирования. Речь идет о доказательстве того, что некоторый алгоритм правильно производит вычисления
определенных свойств!
Полученные результаты, однако, являются ограниченными. Лишь некоторые доказываются, а часто постулируются
как прошедшие проверку длительным экспериментированием.
Здесь, очевидно, повторяется ситуация из некоторых областей
математики, когда теорема доказывается и может быть, таким
образом, смело использована. Нет необходимости доказывать
теорему Пифагора в каждом отдельном случае ее применения.
В современной практике наиболее общие программы содержат
ошибки, перечисленные в инструкциях и затем исправленные,
хотя и ценой новых ошибок; при этом не принимается в расчет
то, что процесс последовательных исправлений может быть не
сходящимся. Понятно, что необходимо сохранять численные тесты как средство для контролирования физической адекватности модели.
Специалисты в области теории информатики привыкли называть «системой» программу, использующую несколько других программ или подпрограмм, например операционную систему, позволяющую управлять набором информационных средств,
включающих печатающие устройства, блоки управления, диски,
устройства считывания с магнитной ленты или перфокарт, оперативную память и т. д.
Проблема работы при взаимодействии нескольких программ
ставит на уровень системы ту же самую задачу, которая ставится сочетанием команд в программе. Каждая команда и каждая
программа в отдельности может быть верной, но это не означает,
что правильным будет их функционирование во взаимодействии
друг с другом.
Главной (но не единственной) причиной трудности является
рекурсивность, в противоположность последовательности.
Если операции строго следуют одна за другой: Р1 выполняется
и управление передается Р2, Р2 выполняется и управление передается Р3, и т. д. до Рп, искомый ответ дает Рп. Причину ошибки
следует искать либо в неправильной передаче данных вычисле195
ний или в записи в память, либо в том факте, что последовательность Рi не представляет искомого алгоритма.
И наоборот, если схема вычислений рекурсивна, т. е. если
pi Þ pj Þ pi и т. д., доказательство правильности может быть гораздо более тонким. Некоторая программа Pi содержит не только
список команд, но также и зону памяти, которая может быть использована совместно с другими программами, что, в свою очередь, значительно усложняет «доказательства» программ. Взаимодействие программ и подпрограмм приводит к появлению некоторой новой программы, которая, так сказать, превосходит составляющие ее элементы. Необходимо, таким образом, насколько
возможно избегать подобной ситуации. К сожалению, это не всегда осуществимо.
Целью исследований структурного программирования является определение процессов записи, систематически дающих
«правильные», т. е. доказанные, программы.
Исследования показывают пользу некоторого очень общего
метода программирования — метода программирования «сверху
вниз» (Top-Down Programming). Этот метод требует построения
программы путем последовательного совершенствования некоторой определенной структуры. Модульность окончательной программы будет, таким образом, гарантирована.
Однако этот метод имеет значительный недостаток: он с самого
начала предлагает наиболее высокий уровень общности программы, что противоречит методу, общепринятому у пользователей
ЭВМ. Таким способом в действительности является реализация
простых, легко проверяемых моделей, которые затем объединяются для получения общих программ (Bottom-Up Programming).
Однако это объединение встречает массу препятствий, которые
обычно удается избежать при программировании «сверху вниз».
Вполне возможно, что более эффективным было бы применение
обоих этих методов, правильная программа строилась бы в таком
случае посредством последовательных шагов вперед с возвратом
от ее общей структуры к составляющим элементам.
4.4. Пределы вычислимых моделей
Лаплас выдвинул гипотезу о том, что если бы в один момент
можно было точно узнать все положения и скорости всех элементов Вселенной, то можно было бы точно предсказать будущее.
Кажется, что появление вычислительных машин делает дости196
жимой мечту детерминизма. В то же время опыт вычислений на
ЭВМ, напротив, удаляет ее.
Критика детерминизма проводится не через иррациональное,
как хотелось бы некоторым считать, а в глубине рационального
мышления. Рациональная критика «детерминизма по Лапласу»
может быть разделена на две категории:
— одна, относящаяся к данным как измерению физических
процессов;
— другая, относящаяся к действию модели, или алгоритма,
с точностной возможностью ЭВМ и, следовательно, программы,
представляющей научные модели.
Уточнение данных. Величина не может быть бесконечной точности, как бы этого ни хотелось с точки зрения математического
выражения на множестве действительных чисел. Представление
числа обязательно ограничено точностью вычислительной машины. Принцип неопределенности указывает, что определенная
точность не может быть получена для некоторых пар величин.
Этот принцип находит своё выражение в квантовой физике — на
парах положение/скорость и энергия/время жизни, в оптике —
на паре длина волны/угол, а в электронике — на паре скорость
переключения/ширина полосы пропускания.
Результаты, полученные при моделировании, естественно, зависят от данных. Известно, что иногда самое ничтожное изменение параметра полностью меняет результат (этот факт Паскаль выражал своей остроумной шуткой по поводу носа Клеопатры). Часто трудно определить, какой точностью достаточно ограничиться,
чтобы остаться в пределах стабильности вычисляемой модели.
Способность прогнозирования на модели. Мы отметили, что
научная модель должна быть вычислимой, т. е. представимой на
вычислительной машине, «выполнимой» на жаргоне программиста. Здесь нет ничего таинственного: программа — это список команд. Команда — это совокупность простых операций, которые
машина должна выполнить. Но программа в действительности
есть нечто большее, чем последовательность команд. По аналогии, рисунок — это не просто сумма линий, он, так же как и линия, обретает смысл только в контексте изображения.
Опыт показал специалистам по вычислительной технике, что
процесс составления последовательности команд является гораздо более тонким делом, чем считали прежде.
Другими словами, готовая программа лишь частично соответствует их замыслу, подобно тому, как неудачливому художнику
197
не удается представить изо­бражение, хотя он умеет превосходно
проводить линии.
Некоторые большие программы пришлось просто отбросить,
несмотря на миллионные расходы, так как невозможно было
привести коэффициент ошибок или плохое функционирование к
приемлемому процентному соотношению.
Все действия логико-аппаратных систем являются детерминированными и воспроизводимыми. Реальная задача, которая встает перед специалистом, заключается в предсказании функционирования при самых разнообразных обстоятельствах. Априорная
неопределенность области данных практически уничтожает возможность экспериментально испытать все возможные случаи.
Оценивая сложность программы, или, скорее, системы программ,
по числу команд, можно сделать следующее предположение: начиная с некоторой степени сложности, практически невозможно предвидеть действие детерминированной системы.
Эти результаты известны под названием теории разрешимости
[39]. С нашей точки зрения они, может быть, более важны, чем
результаты квантовой или релятивистской физики, хотя гораздо
менее известны.
Приведем пример. Алгоритм позволяет произвести вычисление. Это вычисление требует некоторого числа операций, может быть, бесконечного. Например, если делить десять на три, то
нельзя получить точный ответ в виде десятичной дроби и деление
будет продолжаться бесконечно, давая бесконечный ряд троек.
Вопрос. Существует ли универсальная программа, позволяющая на основании анализа программы и данных (т. е. не производя самого вычисления) определить, имеет ли данное вычисление
конец?
Ответ. Установлено, что такой универсальной программы существовать не может.
Можно пойти дальше и задать следующий вопрос: существует ли универсальная программа, позволяющая предвидеть, что
какая-нибудь программа будет допускать ошибки? Ответ: абсолютно невозможно [40].
Это, однако, совершенно не значит, что невозможно определить, правильна или нет отдельная программа, т. е. функционирует ли она в соответствии с семантическим замыслом ее создателя. Проблема же правильного составления большой программы
так и остается нерешенной. Начиная с некоторого уровня сложности, появление непредвиденной ошибки становится неизбеж198
ным. Поэтому речь идет о том, чтобы остаться в допустимых пределах.
Сложность представления. Понятие сложности весьма неоднозначно и происходит из теории информации. Рассмотрим некоторые его аспекты. Под представлением понимается ряд фиксированных знаков. Так, например, написанное слово представляет собой последовательность букв алфавита, фраза — последовательность слов. Представление неотделимо от своей интерпретации. Представления на алфавите (a,b) являются, например,
последовательностями букв:
R(1) = abbabaaababbabaa,
R(2) = babababababababa.
Эти два представления имеют, очевидно, различную сложность. Второе из них является восьмикратным повторением ba,
тогда как для описания первого необходимо записать его полностью. Итак, теоретики поставили перед собой следующую простую, на первый взгляд, проблему: можно ли, имея какое-нибудь
представление, отобразить его в более сжатом виде? Уточним, что
мы подразумеваем под термином «сжатие». Имеется логическая
машина М. Возможно ли написать программу Р, которая породила бы представление R, причем длина Р была бы меньше R (на величину, размер которой не имеет значения для специалистов). Таким образом, чтобы М породила представление R(2), достаточно
дать ей одну единственную команду «отпечатать ba восемь раз». А
чтобы М породила R(1), необходимо либо одну за другой давать ей
команды напечатать соответствующую букву, либо дать команду
«напечатать abbabaaababbabaa», что в любом случае будет длиннее, чем R(1).
В сущности, проблемы сжатия и интерпретации связаны между собой. Представление считается сложным, если его невозможно сжать (в том смысле, в котором мы рассматривали это выше).
И наоборот, представление считается простым, если оно может
быть описано при помощи более короткой программы или, говоря в широком смысле, его можно интерпретировать в семантической системе посредством более компактного представления (в
частности, дать ему название, основанное на распознавании). Например, роль очень тонких человеческих систем распознавания
заключается в том, чтобы упростить наши визуальные и слуховые восприятия.
Заметим из этого короткого наблюдения, что маловероятно,
чтобы какое-либо представление было простым или способным
199
к упрощению. У случайности нет ни структуры, ни простоты.
Это, хотя и отрицательное определение, является все же лучшим
определением случайности.
Сложность функции, программы, системы. Под функцией
мы будем понимать здесь либо функцию математическую, либо
ее программную вычислимость.
Компьютерная программа позволяет вычислить некую функцию. После некоторого времени машина прекращает вычисления
и выдает результат. В ходе вычислений она совершает определенное число простых операций, пропорциональное времени вычисления. С другой стороны, она использует некоторый объем памяти для записи, например, представлений промежуточных результатов вычислений.
Эти две величины, время и память, дают возможность оценить
сложность вычислений, а следовательно, и сложность функции и
программы. Ограничимся лишь двумя выводами общего характера.
Невозможно (!) предсказать заранее сложность программы
в указанном выше смысле. Таким образом, могут существовать
программы очень длинные, но простые и программы короткие,
но крайне сложные. Сложность программы возрастает, очень быстро с увеличением числа команд (длины).
Вернемся, однако, к понятию ошибки, которое употребили ранее. Здесь ошибкой является неправильная работа программы.
1. Предположим, существует ошибка в коде или синтаксисе
выражения программы. Такого рода ошибка будет быстро устранена программистами.
2��������������������������������������������������������
.�������������������������������������������������������
Предположим,
������������������������������������������������������
ошибка является логической. В данном случае возможны два варианта: вычисление не прекращается; результат отличен от ожидаемого. Механизм ошибок такого типа
и является в действительности причиной провала больших программ и, таким образом, больших систем.
Что же такое система? Определим это понятие как совокупность блоков, осуществляющих какие-либо операции и функционирующих взаимосвязано.
Примеров систем в современном обществе развитой техники
огромное количество. Это системы вооружений, системы распределения, системы резервирования билетов на самолеты и поезда, большие радиотелескопические системы, нефтехимические заводы, большие судоверфи и, конечно, информационные
системы.
200
Специалист, который сейчас требуется, зачастую уже не тот,
кто знает все в какой-либо узкой области, а тот, кто знает достаточно во многих областях и обладает «системным мышлением»
(чувством системы), т. е. умеет организовать взаимодействие друг
с другом различных блоков, использование которых может приводить к созданию невероятно сложных систем, при этом ЭВМ
становится необходимым инструментом, позволяющим моделировать их функционирование. Но для того чтобы систему можно
было моделировать или непосредственно использовать с помощью
информационно-вычислительных систем (например, резервирование мест), программа должна взаимодействовать с большим
числом команд, что неизбежно будет порождать трудности.
Простота, познание и действительность. Человечество в процессе познания, в частности научного познания, прилагает огромные усилия для упрощения картины реального мира. Результатом первых усилий такого рода явилось распознавание форм. Это
привело к появлению языка, к именованию предметов, действий,
качеств, затем, благодаря простейшим выделенным элементам, к
утверждениям.
Способность понимать явления и говорить о них подразумевает способность упрощать, абстрагировать, т. е. оставлять в стороне все несущественное в представлении или функции.
Как мы уже подчеркивали, умение упрощать сложное заключается в способности ограничиться определенным масштабом, оставляя в стороне низшие и высшие уровни. Для удобства следует ограничить сферу данных более узкой областью, отделить второстепенные проблемы и разложить сложное на составляющие части.
Известно, что именно в этом заключается смысл идеи Декарта,
на которую сейчас яростно нападают сторонники некого современного образа мышления, который они хотели бы видеть всеобщим. Позиция последователей Декарта, все еще являющаяся позицией научного мышления, вызвана, конечно, необходимостью
добиться конструктивного результата (в смысле вычислимости).
Появление современных супер-ЭВМ позволяет значительно
расширить границы вычислимых моделей. Однако при их использовании иногда происходят довольно сложные явления, с
трудом поддающиеся контролю. Ограничивается ли познание
лишь простыми объяснениями?
Очевидно, сложность какой-либо проблемы еще не означает,
что эта проблема не может быть смоделирована при помощи простой вычислимой модели, а следовательно, программы.
201
Приведем пример, заимствованный у ��������������������
X�������������������
. А. Саймона. Муравей — это довольно простой автомат. Когда он помещен в естественные условия, то его траектория может быть очень сложной.
Сложность траектории следует не из сложности модели, а скорее,
из данных: начальное положение и сложное окружение.
В качестве другого примера возьмем деление на целое число.
Эта простая операция позволяет породить очень сложную последовательность простых чисел. В самом деле, никакая формула
или программа не позволяют задать последовательность простых
чисел более простым образом, чем их перечисление.
Как же тогда можно убедиться, что та или иная реальная
задача может быть простым способом смоделирована? Только
если найдена простая модель! Этот ответ сопоставим с тем, что
сказано выше о теории разрешимости. Сформулируем результат этой теории иначе: не существует универсальной программы, которая при рассмотрении реальной задачи могла бы решить, существует ли подходящая модель, и которая могла бы
ее построить.
Это утверждение предоставляет большие возможности воображению и созидательным способностям человека. Действительно,
в настоящее время оно подтверждается при написании больших
программ теми трудностями, о которых мы упоминали, а именно сложностью, которую невозможно контролировать и которая
влечет за собой возрастание ошибок, т. е. рост отклонения между
моделью и действительностью.
Различие между обозначением и значением. Лингвисты хорошо знают принципиальное различие между категорией обозначения слова и категорией его смыслового значения. Так, например, Ф. де Соссюр подчеркивает, что неразрывным лингвистическим единством является двойственная сущность, состоящая
из формы обозначения и смыслового значения. Приведем цитату этого автора: «Лингвистическая сущность возможна лишь в
единстве формы обозначения и смыслового значения. Как только берут один из этих элементов, забывая о другом, она исчезает, и вместо конкретного предмета мы имеем перед собой лишь
чистую абстракцию. Всегда есть риск воспринимать лишь одну
часть этого единства, оставаясь уверенным, что воспринимаешь
его полностью. Возьмем какое-нибудь химическое соединение,
например воду. Она состоит из водорода и кислорода; каждый
из этих элементов, взятый в отдельности, не обладает ни одним
из свойств воды».
202
Программа, записанная на каком-нибудь языке, преобразует
данные в результаты. Нам следует интерпретировать эти данные,
результаты и программу.
Так как мы стремимся произвести вычисления, то интерпретация данных и результатов задает математические объекты, а
интерпретация программы — это функция, которую, вообще
говоря, можно определить математически. Ничто не доказывает (можно показать это на многочисленных примерах), что эти
математические интерпретации совпадают с тем, что хотели
представить вначале, когда записали программу и точно определили данные и результаты.
Это объясняет трудности, часто возникающие, например, перед химиком-предметником, который считает, что правильно
представил на машине математические объекты и функции, которые служили ему для постановки задачи, тогда как это не так.
Семантика его расчета отличается от исходного смыслового содержания.
Правильное использование информационно-вычислительных
систем требует знания всей сущности информации, содержащей,
с одной стороны, математическую семантику (в основном, численный анализ) и, с другой стороны, ее машинное представление.
Следует, например, четко различать математическую формулировку задачи и редакцию соответствующей программы на данном языке. В работе [41] дано очень точное определение этого различия, которое на английском языке звучит особенно ясно: one
does�������������������������������������������������������������
not���������������������������������������������������������
������������������������������������������������������������
program�������������������������������������������������
��������������������������������������������������������
in����������������������������������������������
������������������������������������������������
a��������������������������������������������
���������������������������������������������
language�����������������������������������
�������������������������������������������
, but������������������������������
���������������������������������
into�������������������������
�����������������������������
a�����������������������
������������������������
language��������������
����������������������
(программируют не на языке, а на язык). Следует рассматривать программу (систему команд ввода-вывода, различных алгоритмов, тестов) как
входные данные языка, который обеспечивает на выходе систему
команд (называемую также кодом). Пользователь должен вначале построить свою программу независимо от какого бы то ни было языка, затем закодировать ее с помощью правил синтаксиса
выбранного языка. Задачи, поставленные на каждом из этих этапов, различны, и подчиняются различным правилам, но ни один
из них не имеет применения без другого.
203
Библиографический список
1. Зангвилл В. И. Нелинейное программирование. Единый подход. М.:
Сов. радио, 1973.
2. Полак E. Численные методы оптимизации. М.: Мир, 1974.
3. Поляк Б. Т. Введение в оптимизацию. М.: Наука, 1983.
4. Демьянов В. Ф., Рубинов А. М. Основы негладкого анализа и квазидифференциальное исчисление. М.: Наука, 1990.
5. Рокафеллар Р. Т. Выпуклый анализ. М.: Мир, 1973.
6. Табак Д., Куо B. C. Оптимальное управление и математическое программирование. М.: Наука, 1975.
7. Химмельблау Д. M. Прикладное нелинейное программирование. М.:
Мир, 1973.
8. Базара М., Шетти К. Нелинейное программирование. Теория и алгоритмы. М.: Мир, 1982.
9. Курбанов В. Г. Алгоритм поиска оптимальных управляющих воздействий на динамические объекты // Труды СПИИ РАН, СПб.: Наука, 2005.
Вып. 2. Т. 2. С. 317–327.
10. Курбанов В. Г. Оценка сложности вычислительных алгоритмов в задачах оптимизации управления динамическими объектами //
Информационно-измерительные и управляющие системы. 2009. № 9.
11. Курбанов В. Г. Логико-вероятностный метод оценки надежности технических систем // Управление в условиях неопределенности. СПб.: Изд-во
СПбГТУ, 2003.
12. Курбанов В. Г. Сложности вычислительных алгоритмов в задачах
оптимизации управления динамическими объектами: сб. докл.: В 3 ч. Ч. I.
Технические науки/ ГУАП. СПб., 2006. С. 220–224. 251 с.
13. Курбанов В. Г. Некоторые аспекты численных моделей в физике и
технике // Завалишинские чтения. СПб., 2007.
14. Курбанов В. Г. Об одном методе оценки надежности интеллектуальных технических систем // Междунар. науч.-техн. конф. «Современные
проблемы социально-экономического развития и информационных технологий»: сб. тр. Баку, 2004. С. 157–162.
15. Городецкий А. Е., Дубаренко В. В., Ерофеев А. А. Алгебраический подход к решению задач логического управления // А и Т. 2000. № 2. С. 127–
138.
16. Городецкий А. Е., Дубаренко В. В., Курбанов В. Г. Метод поиска оптимальных управляющих воздействий на динамические объекты с адаптацией к изменениям внешней среды // 6-й Санкт-Петербург. симп. по теории
адаптивных систем (SPAS”99). СПб., 1999.
17. Городецкий А. Е. Дубаренко В. В. Комбинаторный метод вычисления
вероятностей сложных логических функций// ЖВМ и МФ. 1999. № 7. C.
1201–1203.
18. Gorodetsky A. E., Dubarenko V. V., Kurbanov V. G. The approximate solve
of logic- probability problems in water resources planning and management //
J. of the Statistical. Turkey, Ankara, 1997.
19. Вирт Н. Алгоритмы и структуры данных: Пер. с англ. М.: Мир,
1989. С. 245–331.
204
20. Моисеев Н. Н. Численные методы в теории оптимальных систем. М.:
Наука, 1971. 325 с.
21. Беллман Р., Калаба Р. Квазилинеаризация и нелинейные краевые
задачи. M.: Мир, 1968. 183 с.
22. Крылов И. А., Черноусько Ф. Л. О методе последовательных приближений для решения задач оптимального управления // ЖВМ и МФ. 1962.
Т. 2. № 6. С. 123–130.
23. Шатровский Л. И. Об одном численном методе решения задач оптимального управления // ЖВМ и МФ. 1962. Т. 2. № 2. С. 52–59.
24. Timofeev A. V. Intelligent multi-agent control of robotic systems // First
International Conferense on Problems of Dynamic Objects Logic- Linguistic
Control DOLLC′97. SPb., 1997. Р. 55–58.
25. Фрадков А. Л. Адаптивное управление в сложных системах. М.: Наука, 1990. 292 с.
26. Cona J. Developing a genetic programming system AI Expert, 1995.
Vol. 10. Nr 2. P. 20.
27. Марчук Г. И. Методы вычислительной математики. М.: Мир. 1977.
286 с.
28. Лорьер Ж. Л. Системы искусственного интеллекта. М.: Мир, 1991.
566 с.
29. Жегалкин И. И. Арифметизация символической логики // Матем.
сб. Т. 35. Вып. 3–4. 1928. С. 335.
30. Жегалкин И. И. О технике вычислений предложений в символической логике // Матем. сб. Т. 34. М., 1927. Вып. 1.
31. Gorodetsky A. E., Dubarenko V. V. About One Method Of The Decision
Dynamic Logical-And-Probabilistic Problems // First International Conferense on Problems of Dynamic Objects Logic-Linguistic Control DOLLC′97:
Proceedings / Ed. A. E. Gorodetsky. SPb., 1997. P. 104–122.
32. Дубаренко В. В., Курбанов В. Г. Метод приведения систем логических уравнений к форме линейных последовательностных машин //
Информационно-измерительные и управляющие системы. 2009. № 4.
33. Гилл А. Линейные последовательностные машины. М.: Наука,
1974.
34. Кук С. А. Сложность процедур вывода теорем // Кибернетический
сборник. Нов. сер. Вып. 12. С. 5–15.
35. Сэвидж Джон Э. Сложность вычислений / Пер. с англ. под ред. О. М.
Касим-Заде. М.: Факториал, 1998.
36. Kleene S. C. Mathematical logic. JOHN WILEY & SONS, INC. N. Y., L.,
Sydney, 1967.
37. Системы контроля и диагностики сложных экспериментальных
установок / А. Е. Городецкий, В. В. Дубаренко, И. Л. Тарасова, Н. П. Зотов
// Тез. докл. 2-й национ. конф. с междунар. участием по проблемам физической метрологии «ФИЗМЕТ-94», С.-Петербург, июнь 1994 г.
38. Юдин Д. Б. Вычислительные методы теории принятия решений. М.:
Наука, 1989. 320 с.
39. Kuhn T. La structure des revolutions scientifiques. Flammarion, 1972.
40. Morel P. Le meteorologie de demain // La Recherche, Avril, 1972.
P. 345.
41. La Porte M., Vignes J. Algorithmes Numeriques. P.: Technip, 1974.
205
Содержание
Предисловие.................................................................... Введение......................................................................... Предмет и содержание теории управления....................... Роль математической логики, теории алгоритмов и
автоматов в возникновении кибернетики.................. Роль теории передачи сообщений и теории информации
в теории управления............................................... Роль теории колебаний в теории управления.................... Теория управления сегодня............................................ Общие задачи оптимального управления.......................... Общие задачи нелинейного программирования................. Задача оптимального управления с дискретным
временем............................................................... Задача оптимального управления с непрерывным
временем............................................................... Глава 1. Безусловная оптимизация..................................... 1.1. Методы одномерной безусловной оптимизации........... 1.1.1. Методы, использующие правило исключения
интервалов................................................... 1.1.2. Метод деления интервала пополам
(метод дихотомии)......................................... 1.1.3. Метод Фибоначчи.......................................... 1.1.4. Метод золотого сечения.................................. 1.2. Методы полиномиальной аппроксимации.................. 1.2.1. Методы поиска, использующие квадратичную
аппроксимацию............................................ 1.2.2. Метод Пауэлла.............................................. 1.2.3. Метод Дэвиса, Свенна, Кэмпи ......................... 1.3. Методы, использующие производные........................ 1.3.1. Метод Ньютона — Рафсона.............................. 1.3.2. Метод средней точки (поиск Больцано)............. 1.3.3. Метод секущих, или метод хорд (комбинация
метода Ньютона и метода исключения
интервалов).................................................. 1.4. Сравнение методов одномерного поиска..................... 1.5. Методы многомерной безусловной оптимизации......... 1.5.1. Метод покоординатного спуска........................ 1.5.2. Метод Хука — Дживса (метод конфигураций).... 1.5.3. Метод Розенброка.......................................... 1.5.4. Поиск по деформируемому многограннику
(метод Нелдера — Мида)................................ 1.6. Градиентные методы............................................... 1.6.1. Метод наискорейшего спуска (метод Коши)....... 1.6.2. Сопряженность и сопряженные направления..... 1.6.3. Партан-методы.............................................. 206
3
5
5
11
14
15
18
25
33
35
36
39
39
41
44
48
50
53
54
55
56
57
57
58
59
60
60
61
61
64
67
70
70
74
79
Глава 2. Условная оптимизация......................................... 2.1. Выпуклые множества.............................................. 2.2. Двойственность в задачах оптимизации..................... 2.3. Задача выпуклого программирования. ...................... 2.4. Задача квадратичного программирования и
ее решение............................................................ 2.5. Штрафные и барьерные функции.............................. 2.5.1. Метод барьерных поверхностей........................ 2.5.2. Метод штрафных функций.............................. 2.6. Методы возможных направлений.............................. 2.6.1. Метод Зойтендейка........................................ 2.6.2. Задачи с нелинейными ограниченияминеравенствами.............................................. 2.6.3. Метод возможных направлений для нелинейных ограничений-неравенств и равенств........... 2.7. Модификация метода возможных направлений.......... 2.8. Метод проекции градиента Розена............................. 2.9. Метод приведенного градиента.................................. 2.10. Метод обобщенного приведенного градиента............. 2.11. Выпуклый симплексный метод............................... Глава 3. Логико-вероятностный подход к анализу и синтезу
систем логического типа.................................................... 3.1. Логическая функция............................................... 3.2. Метод приведения систем логического типа к форме
линейных последовательностных машин.................. 3.3. Алгоритм вычисления вероятности сложной логической функции........................................................ 3.4. Метод ситуационного управления............................. 3.5. Алгоритм поиска оптимальных управляющих воздействий на динамические объекты............................... 3.5.1. Стратегии управления динамическими объектами............................................................ 3.5.2. Метод бинарных деревьев................................ 3.5.3. Построение бинарного дерева функции управления динамическим объектом....................... 3.6. Сложности вычислительных алгоритмов в задачах оптимизации управления динамическими объектами.... Глава 4. Использование численных моделей в физике и
технике........................................................................... 4.1. Эксперимент, теория и численные модели.................. 4.2. Преимущества и недостатки численной модели........... 4.3. Построение численной модели.................................. 4.4. Пределы вычислимых моделей................................. 82
82
85
87
94
104
107
110
113
114
119
124
125
129
137
139
143
150
150
160
165
167
169
171
173
175
180
186
186
189
191
196
Библиографический список................................................ 204
207
Учебное издание
Курбанов Вугар Гариб оглы
Математические методы
в теории управления
Учебное пособие
Редактор Г. Д. Бакастова
Верстальщик А. Н. Колешко
Сдано в набор 27.06.09. Подписано к печати 15.12.09. Формат 60×84 1/16.
Бумага офсетная. Печ. л. 13,25. Уч.-изд. л.12,25.
Тираж 150 экз. Заказ № 820.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
Документ
Категория
Без категории
Просмотров
13
Размер файла
4 639 Кб
Теги
kurbanov
1/--страниц
Пожаловаться на содержимое документа