Текст
                    И. В. БЕЙКО,
Б. Н. БУБЛИК,
П. Н. ЗИНЬКО
1ТОДЫ
иАЛГО
РИТМЫ
РЕШЕНИЯ
ЗАДАЧ
ОПТИМИЗАЦИИ
КИЕВ
ГОЛОВНОЕ ИЗДАТЕЛЬСТВО
ИЗДАТЕЛЬСКОГО ОБЪЕДИНЕНИЯ
«ВИЩА ШКОЛА»
1983


32.965.9 Б77 УДК 519.9 Методы и алгоритмы решения задач оптимизации. Бей« к® И. В., Бублик Б. Н., Зинько П. Н.— К. J Вища школа. Головное изд'во, 1983.— 512 с. В справочном пособии изложены современные методы и алгоритмы для решения задач оптимизации, возникающих во многих областях науки и техники, в сфере управления экономическими, социальными, техническими и другими процессами. Рассмотрены линейные и нелинейные, детерминированные и стохастические, гладкие и негладкие, минимаксные и другие задачи оптимизации. Все методы оптимизации представлены в виде детально разработанных алгоритмов. Для облегчения поиска необходимого алгоритма и его практического использования приводится независимое описание каждого метода, включающее постановку задачи оптимизации, ограничительные предположения, описание конкретных алгоритмов и соответствующих теорем о ходи мост и, а также необходимые библиографические указания. Книга рассчитана на работников научно-исследовательских учреждений и вычислительных центров, занимающихся вопросами разработки и применения методов оптимизации, а также на студентов,, специализирующихся по прикладной математике и другим специальностям, связанным с использованием ЭВМ. Библиогр.1 575 назв. Рецензенты! академик АН УССР В. С, Михалееич и канд. физ. мат. наук Af. Д. Бартиш (Львовский государственный уни« в§рзитет) Редакция литературы по кибернетике, электронике и дрер- гетике Зав. редакцией М. С. Хойнацкий 1502010000—222 ^ Издательское объединение Ь М211@4)-83 ™~™ W «Вища школа», 1983
ОГЛАВЛЕНИЕ Обозначения и символы , ...•¦.. 9 Предисловие • • И Введение. Элементы теории оптимизации и управления 13 0.1. Математические методы управления и задачи оптимизации 13 1. О математических методах поиска оптимальных решений A3). 2. Основные задачи оптимизации A4). 3. О задачах многоцелевого управления A9). 0.2. О некоторых методах решения задач оптимизации 20 1. Метод полного перебора B1). 2. О приближенных методах и оптимальных алгоритмах B1). 0.3. Методы отсечений . 24 1. Минимизация квазивыпуклых функций B4). 2. Метод минорант. Минимизация липшицевых функций B5). 3. Минимизация выпуклых функций. Метод эллипсоидов B5). 0.4. О локализации решений с помощью необходимых и достаточных условий оптимальности. Дополнительная терминология 27 1. Необходимые условия оптимальности для дифференцируемых функций B7). 2. Необходимые и достаточные условия оптимальности для задач выпуклого программирования. Теорема Куна — Таккера B8). 3. Необходимые условия первого и второго порядка для задач нелинейного программирования C0). 4. Условия оптимальности для задач минимизации негладких функций C1). 0.5. Методы последовательных приближений 32 1. О способах выбора шаговых множителей в задачах безусловной оптимизации C3). 2. О методах второго порядка C6). 3. Методы сопряженных градиентов C8). 4. О методах штрафов в задачах с ограничениями C9). 5. О методах последовательных приближений для задач условной оптимизации и минимизация негладких функций D0). Часть I МЕТОДЫ ОДНОМЕРНОЙ И БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ Глава 1. Методы одномерной оптимизации .«••.... 46 1.1. Методы Фибоначчи . • 46 1. Основной алгоритм D6). 2. Модификация метода Фибоначчи D7). 1.2. Метод золотого сечения 48 1.3. Оптимальный метод поиска экстремума унимодальных функций, удовлетворяющих условию Липшица 49 1.4. Оптимальный метод поиска экстремума выпуклых функций « . , , . 52 1.5. Методы типа Ньютона 54 I Метод Ньютона E5). 2. Метод'секущей E5). 1.6. Методы касательных , . 56 1. Случай дифференцируемой функции E6). 2. Случай недифференци- руемой функции E7). 1.7. Метод квадратичной аппроксимации 58 1.8. Метод отыскания абсолютного минимума функций, удовлетворяющих условию Липшица 59 1.9. Метод кусочно-кубической аппроксимации * • ¦ • ¦ 61 1.10. Методы глобального поиска 63 I. Алгоритм глобального поиска F3). 2. Рандомизированный алгоритм глобального поиска F5). 1.11. Методы поиска интервала наибольших значений многоэкстремальных функций 66 1.12. Методы поиска глобального минимума, использующие стохастические автоматы , 68 1. Алгоритм, использующий модель Буша — Мостеллера F9). 2. Алгоритм, использующий усредненные значения функции G0). 3
1.13. Адаптивные методы ....•,.....«..**...... 71 1. Алгоритмы Кифера -^ Вольфовица G1). 2. Простой перебор G2). Глава 2. Методы оптимизации дифференцируемых функций , 73 2.1. Градиентные методы . , 73 1. Метод наискорейшего спуска G3). 2. Модифицированный метод наискорейшего спуска G4). 3. Основной вариант градиентного метода G6). 4. Градиентный метод с постоянным шаговым множителем G7). 5. Вариант градиентного метода с матрицей ускорения сходимости G8). 6. Модифицированный градиентный метод, не требующий вычисления производных (80). 2.2. Методы типа Ньютона 82 1. Метод Ньютона — Канторовича (82). 2. Обобщенный метод Ньютона — Канторовича (82). 3. Модификации обобщенного метода Ньютона — Канторовича (84). 4. Модифицированный обобщенный метод Ньютона — Канторовича, не требующий вычисления матрицы вторых производных (85) 2.3. "Методы двойственных направлений 87 1. Основной вариант (87). 2. Модифицированный метод двойственных направлений, не требующий вычисления производных (89). 2.4. Методы сопряженных градиентов 92 1. Общая схема алгоритмов сопряженных градиентов (92). 2. Метод сопряженных градиентов с восстановлением (93). 3 Реализуемые модификации алгоритмов сопряженных градиентов @4) 4. Метод сопряженных градиентов для минимизации квадратичных функций (97). 5. Реализуемая модификация алгоритма с переменной метрикой (98). 2.5. Методы сопряженных направлений 99 1. Метод сопряженных направлений с восстановлением матрицы (99). 2. Метод сопряженных направлений без восстановления матрицы A00). 3. Минимизация квадратичных функций с помощью метода сопряженных направлений A02). 4. Модифицированный метод сопряженных направлений, не требующий вычисления производных A05). 2.6. Методы псевдообратных операторов*" •.».•••. 106 1 Основной алгоритм A07). 2. Устойчивое псевдообращение плохо обусловленных матриц (НО). 2.7. Методы минимизации вдоль собственных векторов матрицы, близкой к матрице Гессе 112 1. Основной вариант A13). 2. Ускоренный вариант A15). 2.8. Итеративные стохастические методы, использующие аналог функции Ляпунова 116 1. Основной алгоритм A17). 2. Сходимость алгоритма в среднем A17). 3. Сходимость алгоритма почти наверное A20). 4. Модификации алгоритма A21) 2.9. Стохастические квазиградиентные методы «...., 121 1. Общий стохастический квазиградиентный метод для детерминированных задач A21). 2. Общий стохастический квазиградиентнБ1Й метод для стохастических задач A23). 3. Стохастический квазиградиентный метод с процедурой прерывания A24). 4. Стохастический квазиградиентный метод с постоянным шаговым множителем A25). 5. Стохастический градиентный метод минимизации сложных функций регрессии A26). 2.10. Метод локальных вариаций 128 2.11. Методы самонастраивающихся программ 129 2.12. Общий метод спуска 132 2.13 Методы случайного поиска 133 1. Алгоритм случайного поиска в выпуклых задачах минимизации A33). 2. Адаптивный алгоритм случайного поиска A35). Глава S. Методы оптимизации недифференцируемых функций и методы отыскания седловых точек 136 3.1. Методы обобщенного градиентного спуска 136 1. Алгоритм с постоянным шаговым множителем A36). 2. Основной алгоритм A37). 3. Модификация основного алгори^а A38). 4. Первый алгоритм со специальным выбором шага A39). 5 Второй алгоритм со специальным выбором шага A40). 6. Алгоритм, использующий априорное знание минимума функции A41). 7. Помехоустойчивый алгоритм A42). 8. Многошаговый метод обобщенного градиентного спуска A43). 9. е-суб- градиентный метод A44).
3.2. Методы градиентного типа с растяжением пространства .«•...• 146* 3.3. Методы градиентного тип.а с растяжением пространства в направлении разности двух последовательных почти градиентов (г (а)-алгоритм) 149 3.4. Методы локального случайного поиска • ¦ , . 151 1. Алгоритм локального случайного поиска с парной пробой A51). 2. Алгоритм локального случайного поиска с возвратом при неудачном шаге A52). 3. Алгоритм локального случайного поиска с линейной экстраполяцией A52). 4. Алгоритм случайного поиска по наилучшей пробе с накоплением A53). 5 Алгоритм статистического градиента A53) 3.5. Псевдоградиентные методы адаптации и обучения 154 з!б. Квазиградиентные методы 156 1. Квазиградиентный метод минимизации слабовыпуклой вниз функции A57). 2. Стохастический квазиградиентный метод минимизации слабо* выпуклой функции A58) 3.7. 8-квазиградиентные методы , 159 1. е-квазиградиентный метод минимизации выпуклых функций A59). 2. е-квазиградиентный метод минимизации слабовыпуклых функций A60). 3.8. Методы обобщенных почти градиентов для минимизации функций, удовлетворяющих локальному условию Липшица 161 1. Детерминированный случай A61). 2. Стохастический случай A63). 3.9. Метод усреднения направлений спуска для минимизации функций, удовлетворяющих условию Липшица 164 3.10 Конечно-разностный метод минимизации разрывных функций .... 165 3.11. Метод линеаризации решения дискретных минимаксных задач .... 167 3.12. Методы последовательных приближений для решения дискретных минимаксных задач 169 1. Первый метод последовательных приближений A69). 2. Модификация первого метода последовательных приближений A72). 3. Второй метод последовательных приближений A74). 4. Модификация второго метода последовательных приближений A75). 5. Третий метод последовательных приближений, использующий D-функцию A77) 3.13. Сеточный метод последовательных приближений решения непрерывных минимаксных задач 178 3.14. Методы Эрроу — Гурвица решения непрерывных минимаксных задач 180 1. Детерминированный метод Эрроу — Гурвица A80). 2. Стохастический метод Эрроу — Гурвица A81) 3.15. Методы экстремального базиса для решения непрерывных минимаксных задач 182 1. Принципиальный алгоритм A82). 2. г-метод A84). 3. р-метод A85). 4. Комбинированный е, р-метод A85). 3.16. Обобщенный градиентный метод отыскания седловых точек 187 3.17. Квазиградиентные методы решения дискретных минимаксных задач стохастического программирования 188 1. Минимизация функции ?ш max <р, (х, со) A88). 2. Минимизация функ- ции max E^ ф^ (х, ©) A90). Часть II МЕТОДЫ УСЛОВНОЙ ОПТИМИЗАЦИИ , , 192 Глава 4. Методы решения задач линейного программирования .*¦•¦. 192 4.1. Симплекс-метод и его варианты 193 1. Симплекс-метод решения невырожденной канонической задачи линейного программирования A94). 2. Методы отыскания исходного базиса A96). 3. Симплекс-метод решения вырожденной канонической задачи линейного программирования A99). 4. Модифицированный симплекс- метод B01). 5
4.2. Двойственный симплекс-метод ,.....« 203 1. Основной алгоритм B03). 2. Методы отыскания исходного опорного решения сопряженной задачи B07). 3. Правило выбора вектора аВ* вводимого в базис, гарантирующее от зацикливания в вырожденном! олучае B10). J - 4.3. Методы последовательного сокращения невязок .......... 211 1. Метод последовательного сокращения >евязок] B11). 2. Метод двусторонних оценок B14). 4.4. Обобщенный симплекс-метод , , , 216 4.5. Методы блочного программирования # « 219 1. Метод разложения Данцига — Вулфа B19). 2. Метод разложения решения задач линейного программирования с блочно-диагональной матрицей B23). 3. Метод, использующий обобщенный градиентный спуск B27). 4.6. Модификация симплекс-метода для решения задачи линейного программирования с двусторонними ограничениями 229 1. Основной алгоритм B30). 2. Правило выбора индекса г (определяющего вектор а г* выводимый из базиса) для предотвращения зацикливания B33). 4.7. Модификация симплекс-метода для решения общей задачи линейного программирования 235 4.8. Итеративные методы • ....« 240 1. Итеративный метод Петшиковского B40). 2. Итеративный метод, использующий модифицированную функцию Лагранжа B42). 3. Итеративный метод Федоренко B43). 4. Алгоритм «Заяц» решения прямой и двойственной задач линейного программирования B47). 5. Итерационный метод, использующий модифицированную функцию Лагранжа для решения двойственной пары задач линейного программирования B50). 4.9. Методы параметрического программирования 253 1. Случай наличия параметра в целевой функции B53). 2. Случай наличия параметра в правых частях ограничений B57). 4.10. Опорные методы 261 1. Прямой опорный метод B62). 2. Метод обратной матрицы B65). Глава 5. Методы решения задач нелинейного и стохастического програм- мир линия 269 5.1. Методы проекции градиента 269 1. Общий алгоритм B69). 2. Метод проекции градиента для минимизации функций при линейных ограничениях B70). 3. Гибридный метод проекции градиента для минимизации функций при нелинейных ограничениях B74) 4. Метод проекции градиента при наличии возмущений B77). 5.2. Общий метод штрафных функций 278 5.3. Методы внешних штрафных функций 281 1. Задачи с ограничениями в виде неравенств B81). 2. Задачи с ограничениями в виде равенств B83). 3. Модифицированные методы с процедурой прерывания B84). 4. Метод внешних штрафных функций для минимизации недифференцируемых функций B87), 5.4. Методы внутренних штрафных функций • . • •' 289 1. Общая схема B89). 2. Реализуемая схема с процедурой прерывания B90). 3. Алгоритмы внутренней точки с применением Q-функций B92). 5.5. Комбинированные методы штрафных функций 293 5.6. Стохастический метод штрафов • 295 5.7. Методы возможных направлений * 297 1. Методы возможных направлений решения задач минимизации с ограничениями типа неравенств B97). 2. Методы возможных направлений решения задач минимизации с ограничениями смешанного типа C01) 3. Метод возможных направлений с квадратичным поиском C05). 4. Модифицированный метод возможных направлений Зойтендейка C07) 5. Аналог метода возможных направлений в задачах минимизации почти дифференцируемых функций C09). 6. Стохастический аналог метода возможных направлений C11). 7. Методы возможных направлений для отыскания точек локальных минимумов невыпуклой функции на невыпуклом множестве C13). 5.8. Методы центров 315 1. Основной вариант C16). 2. Модифицированный метод центров C16). 3. Реализация модифицированного метода центров с использованием метода золотого сечения C18). 4. Реализация модифицированного метода центров с использованием функций прерывания C19). 6
5.9. Методы чебышевских центров ¦ , . • ¦•••¦•• 320 1 Метод чебышевских центров C20). 2. Модифицированный метод чебышевских центров C21). 5.10. Методы типа Ньютона ..*••*.,..»• 322 1 Метод типа Ньютона о регулировкой шага C22). 2. Метод типа Ньютона при наличии возмущений C23). 3. Квазиньютоновские методы C25). 5.11. Методы линеаризации ¦.,..•••. 327 1 Ограничения типа неравенств C28). 2. Ограничения типа равенств C30) 3* Ограничения смешанного типа C32). 4. Метод линеаризации, практически реализуемый на ЭВМ C33). 5. Аналог метода линеаризации в детерминированных задачах минимизации почти дифференцируемых функций C35). 6. Аналог метода линеаризации в стохастических задачах минимизации почти дифференцируемых функций C36). 7. Стохастический метод линеаризации C37). 5.12. Методы линеаризации в предельных экстремальных задачах ¦ « , « 339 1. Детерминированный случай C39). 2. Стохастический случай C41). 5.13. Методы отсечения • «...«•««..•.«.. 343 1. Линейный случай C43). Общий случай C45). 3. Метод отсечения о растяжением пространства для решения задач выпуклого программирования C46). 5.14. Методы, использующие функцию Лагранжа «•«,*•,,«.«• 350 1. Градиентный метод для задач с ограничениями типа неравенств C50). 2. Градиентный метод для задач с ограничениями типа равенств C51). 3. Метод квадратичной аппроксимации для задач с ограничениями типа равенств C53). 4. Двойственный метод для задач о ограничениями типа равенств C53). 5. Метод Ньютона для задач с ограничениями типа равенств C54). 5.15. Методы, использующие модифицированные функции Лагранжа . « 355 1. Градиентный метод ,C55). 2. Метод, 1 использующий штрафные функции экспоненциального типа C57). 5.16. Методы нагруженного функционала .,..#•• 360 1. Общий случай C60). 2. Выпуклый случай C61). 3. Приближенная схема C63). 5.17. Методы штрафных оценок , . • ¦ 365 1. Детерминированный случай C65). 2. Стохастический случай C67). 3. Метод штрафных оценок для задач выпуклого программирования C68). 5.18. Методы проектирования обобщенного градиента 371 1. Основной алгоритм C71). 2. Многошаговый метод обобщенного градиентного спуска C72). 3. Методы проектирования обобщенного градиента для решения предельных экстремальных задач C73). 5.19. Методы условного градиента 375 1. Реализуемый метод условного ,градиента C75). 2. Алгоритм Франка — Вулфа C76). 3. Ускоренный алгоритм Франка — Вулфа C77). 5.20. Методы сопряженных градиентов ....•..,,*. 378 1. Метод сопряженных градиентов C78). 2. Стохастический аналог метода сопряженных градиентов C80). 5.21. Методы управляющих последовательностей \ 381 1. Общий метод минимизации при {наличии "ограничений 4C82). 2. Метод управляющих последовательностей C83). 5.22. Методы внутренней аппроксимации ¦.....,.*•#•#•¦• 387 5.23. Методы покоординатного спуска • .¦,.,... , 388 1. Детерминированный покоординатный спуск C88). 2. Случайный покоординатный спуск C90). 5.24. Релаксационные методы для общих задач нелинейного программирования , # 392 1. Непрерывный вариант C92). 2. Дискретный вариант C93). 5^25. Методы фейеровских приближений решения задач выпуклого программирования с негладкими ограничениями .... с 395 1.| Общий случай C95). 2. Случай кусочно линейных ограничений C96). 5.26. Двойственные методы ....... 398 1. Приближенный двойственный метод решения задач выпуклого программирования C98). 2. Двойственный алгоритм переменной метрики
6.27. Глобально сходящийся метод ..-.•••••........,, 403 5.28. Стохастические квазиградиентные методы , . 405 1. Метод проектирования стохастических квазиградиентов D07). 2. Стохастический метод сокращения невязок в детерминированных задачах D10). 3. Метод сокращения невязок в задачах стохастического программирования D12). 4. Гибридный стохастический метод D14) 5.29. Комбинированный метод стохастических градиентов и штрафных функций 416 5.30. Методы усреднения направлений спуска , 417 1. Детерминированная задача D17). 2. Стохастическая задача D20). 5.31. Прямой метод решения задач стохастического программирования * . 421 5.32. Метод случайного поиска в выпуклых задачах минимизации 423 5.33. Методы решения задач оптимизации с бесконечным числом ограничений . , t 424 I. Общий алгоритм D25). 2. Ослабленный алгоритм D26). 5.34. Методы решения задач квадратичного программирования .,,... 427 1. Метод сопряженных градиентов для минимизации квадратичной функции на подпространстве D27). 2. Метод сопряженных градиентов для общей задачи квадратичного программирования D28). 3. Метод сопряженных градиентов для задачи квадратичного программирования о простыми ограничениями D31). 4. Модификация метода сопряженных направлений для задач квадратичного программирования большой размерности D32). 5. Устойчивый алгоритм решения задач квадратичного программирования D35). Глава 6. Специальные методы решения минимаксных задач и методы отыскания седловых точек ..,..., 438 6.1. Методы последовательных приближений решения дискретных минимаксных задач . . , . »•«••...•...•,... 438 1. Минимаксная задача с ограничениями простой структуры D38). 2. Первый метод последовательных приближений решения минимаксной задачи с ограничениями типа неравенств D40). 3. Второй метод последовательных приближений решения минимаксной задачи о ограничениями 'типа неравенств D42). 4'. 'Модификация второго метода последовательных приближений D43). 6.2. Обобщенный беспараметрический метод внешней точки решения дискретных минимаксных задач ¦ 444 1. Основной алгоритм D44). 2. Ускоренный вариант алгоритма D45). 6.3. Метод второго порядка решения задач дискретного минимакса . . . 446 6.4. Сеточный метод последовательных приближений решения непрерывных минимаксных задач 449 6.5. Метод штрафа в задаче поиска максимина 450 6.6. Методы стохастического квазиградиента в задаче поиска максимина 452 1. Основной алгоритм D53). 2. Следящий алгоритм „D55). 3. Выпуклый случай D57). 6.7. Метод невязок в задаче поиска максимина 458 6.8. Квазиградиентные методы решения непрерывных минимаксных задач стохастического программирования ,.,#.. 461 *1. Стохастический квазиградиентный метод D61). 2. Модифицированный стохастический квазиградиентный метод D62). 6.9. Градиентные методы отыскания седловых точек ¦ • • . * 464 1. Основной алгоритм D65). 2. Градиентный метод отыскания седловых точек с постоянным шаговым множителем D65). 3. Обобщенный градиентный метод D67). 6.10. Метод экспоненциальных штрафов отыскания седловых точек . « , . 463 6Л1. Задачи оптимального управления и оценивания. Методы развязывающих операторов ..,.¦., • 471 Список литературы • . ¦ . « . ¦ • 482 Предметный указатель . •«,•«,«•• • 505
ОБОЗНАЧЕНИЯ И СИМВОЛЫ jR — множество действительных чисел а, Р, y, б, 8, %, fi, v, p, а, т — действительные числа i, /, /г, /, mtnts — целые числа дп /г-мерное евклидово пространство, т. е. множество векторов х = (х& *2, ¦•» *я)> все компоненты которых ^, х2,..., *„ являются действительными числами ~ • а, &, с, d, e,/, g, Л, х, у, z, ... и о*, б', а*, х, ...— векторы, т. е. а ? Rnf Л, 5, С, Я —матрицы г аи* Ьп, сп и hn — элементы 1-й строки и /-го столбца соответственно матриц А, В,1 С и Я ^, SK, L — множество индексов (целых чисел) (*» i/) — скалярное произведение векторов х и #, т. е. (#, (/) = J] А:гг// || х || — евклидова норма вектора дс, т. е. || х || = (л:, яI'2 Д- — скалярная функция fi: X -» К — функция, определенная на множестве X и принимающая значения из множества Y f : X -> Rn — я-мерная вектор-функция /=(/f, /2, ..., fn) * во введении / — скалярная функция Ат — матрица, транспонированная к матрице А Л" — матрица, обратная к матрице А V/,. (х) — градиент функции fi в точке х, т. е. W (*) — матрица Якоби для вектор-функции / в точке х, т. е. элемент /-и строки и /-го столбца данной матрицы равен частной производной d/t- (x)ldxj Vlji (x) — матрица Гессе для функции Д- в точке х, т. е. элемент /г-й строки и /-го столбца данной матрицы равен d2// (x)/dxkdxj Vfi (x) — обобщенный градиент функции Д в точке х Wt W — квазиградиент функции Д в точке х G и* Q — G равно Q по определению (G эквивалентно Q) GDQ — G содержит Q Gcz Q — G содержится в Q G U Q — объединение G и Q G П Q — пересечение G и Q G X Q — декартово произведение G и Q {* | G} — множество всех х, для которых верно утверждение Q хФу — х не равно у х 6 Q — х принадлежит Q х &Q — х не принадлежит Q К ? О — множество К не содержит индекс О
0 — пустое множество / — единичная матрица (а, р) — открытый интервал {х \ а < х < Р} [а, р] — замкнутый интервал {х \ а ^ х ^ р} max — максимум по всем I, принадлежащим множеству х < у — х < у для х 6 Я"» г/ е Я", если *,- < у, для / = 1, ..., л Л^. — множество {# | х ^ 0, * ? #"} diam К — диаметр множества Y int X — внутренность множества X tr А — след матрицы А rang A — ранг матрицы А Ent (/) — целая часть числа t R (Л) — образ матрицы А J1 : л] — множество целых чисел от 1 до п включительно со X — выпуклая оболочка множества X det А — определитель матрицы А О (а) — величина порядка а о (а) — величина бесконечно малая по сравнению с а (Ь\ А) — матрица, образованная столбцом b и столбцами матрицы А = — равно почти наверное Щ - Щ = max {0, i) ?iV"!m — матрица размера т X л, (/, /)-м элементом которой является р# /, / 6 !7) — вектор, компонентами которого являются числа /у, / ^ У {*> У* .-,2} — множество, состоящее из элементов х, у, ..., г max {tit t2, ..., tn) —максимальный элемент из множества {^, t2, ..., tn) Р {событие S) — вероятность события 5 V х 6 X — для всех элементов х из множества X 3 х 6 X — существует такой элемент х в множестве X arg min Д- (#) — тот элемент х* из множества X, который доставляет наимень- xQJC шее значение Д- (х*) функции Д- на множестве X, т. е. Vx?X ft (argmki ft (x))<fi(x) XQX Arg min fi (x) — множество всех элементов arg min Д (*) x?X x?X arg max Д (д:) — элемент х** из множества X, который доставляет наиболь- х?Х шее значение Д- (***) функции Д на множестве X, т. е. (/ { х?Х X* — множество решений задачи оптимизации El — математическое ожидание случайной величины I Е (Цх) — условное математическое ожидание при данном х D% — дисперсия случайной величины ? Q — пространство элементарных событий о
ПРЕДИСЛОВИЕ Одним из наиболее интенсивно используемых и наиболее важных инструментариев повышения эффективности управления и оптимизации сложных систем являются в настоящее время математические методы оптимизации. Современные методы оптимизации часто оказываются недоступными для многих потенциальных потребителей из-за высокого математического уровня соответствующих публикаций. Поэтому при написании данного пособия авторы стремились довести до реализуемых алгоритмов многие из современных методов оптимизации и сделать пособие удобным для студентов и широких кругов специалистов, использующих методы оптимизации в различных областях науки и техники. Этими целями обусловлен способ изложения материала: каждый метод и алгоритм читаются независимо от изложения других методов. Для этого каждый метод вместе с соответствующим алгоритмом описывается в отдельном параграфе, который имеет единую «стандартную» структуру и состоит из: формулировки решаемой задачи, предположений (ограничивающих применяемость предлагаемого алгоритма), краткого описания идеи метода, полного. текста детально разработанного алгоритма, теорем сходимости (дающих теоретическое обоснование для построенных алгоритмов), замечаний и практических рекомендаций по использованию данного алгоритма. При написании пособия авторы сочли более целесообразным вместо готовых реализаций алгоритмов в виде конкретных программ привести их описание, так как, во-первых, любая программа— это всего лишь одна из многих реализаций исходного алгоритма, отражающая в большой степени умение программиста-математика использовать существующие возможности выбранного языка программирования с учетом реальных возможностей вычислительной техники и специфики конкретных задач, во-вторых, цель пособия — оказать помощь студентам при составлении программ и в работе над литературой по методам оптимизации. Читателя не должна смущать недостаточная полнота комментариев в тексте алгоритмов. Она компенсируется достаточными библиографическими указаниями в конце каждого параграфа. Список литературы включает лишь те работы, которые непосредственно использовались авторами при разработке алгоритмов. и
Книга состоит из шести глав. В первой главе описаны 20 алгоритмов одномерной оптимизации, во второй — более 40 алгоритмов безусловной минимизации дифференцируемых функций, в третьей — более 40 алгоритмов минимизации недифференцируемых функций и отыскания седловых точек. В четвертой главе описано около 30 алгоритмов решения задач линейного программирования, пятая — содержит более 100 алгоритмов решения задач нелинейного и стохастического программирования, а шестая — около 20 алгоритмов решения минимаксных задач. Так как почти все алгоритмы сопровождаются теоретическим обоснованием в виде соответствующих теорем, то предлагаемое пособие будет полезным и для специалистов по теории оптимизации. В силу объективных причин далеко не все результаты по чис- ленным4 методам оптимизации нашли отражение в данном пособии. Однако обширный охват материала и выбранный способ изложения позволяют надеяться, что предлагаемая книга послужит хорошим путеводителем по современным публикациям в данной области, облегчит студентам изучение и усвоение результатов цитированных публикаций, поможет преподавателям ускорить процесс обучения студентов навыкам решения практических задач на ЭВМ. Авторы выражают глубокую благодарность академику АН УССР В. С. Михалевичу, профессору Н. 3. Шору, заведующему кафедрой теории управления Львовского госуниверситета М. Я. Бартишу и сотрудникам кафедры моделирования сложных систем Киевского госуниверситета за ценные предложения по улучшению пособия.
ВВЕДЕНИЕ ЭЛЕМЕНТЫ ТЕОРИИ ОПТИМИЗАЦИИ И УПРАВЛЕНИЯ 0.1. Математические методы управления и задачи оптимизации 1. О математических методах поиска оптимальных решений Идеи оптимизации и оптимального управления за последние 30—40 лет глубоко проникли во многие области научных исследований, в инженерно-конструкторские разработки, в различные сферы управления социально-экономическими процессами. Этому способствовали два благоприятствующих фактора. Во-первых, подавляющее большинство самых разнообразных задач управления и оптимизации приводятся к «стандартной» математической задаче оптимизации: найти среди элементов х из заданного множества X тот элемент х* ? X, который доставляет наименьшее значение f0 (x*) заданной функции /0. Во-вторых, усилия математиков увенчались за эти годы разработкой многих эффективных алгоритмов решения математических задач оптимизации на ЭВМ для широких классов множеств X и функций /0- Поэтому исследователю в любой конкретной области науки и техники часто достаточно перевести свою конкретную задачу управления (оптимизации) на математический язык, т. е. сформулировать ее в виде математической задачи оптимизации, для которой уже известен алгоритм решения, и затем, воспользовавшись этим готовым алгоритмом, вычислить на ЭВМ искомое оптимальное решение а:*, т. е. тот элемент из множества X, который удовлетворяет неравенствам /о(**ХМ*)> Vx?X. @.1) Например, весьма близкими и часто легко приводимыми к математической задаче оптимизации оказываются те повседневные задачи, которые формулируются в виде: какое из возможных действий (далее перечисляются все эти возможные конкретные действия) следует предпринять и осуществить, чтобы обеспечить достижение заданной цели (далее дается конкретная формулировка преследуемой цели)? Чтобы подобную практическую задачу привести к виду математической задачи оптимизации, необходимо, во-первых, преследуемую цель выбрать конкретно. Для этого потребуется выбрать некоторый важный количественный показатель у0, минимизация (или максимизация) которого наиболее соответствовала бы целям разумного управления. К сожалению, единой методики по выявлению и выбору «наиболее важного» у0 не существует. Более того, аксиомой важной математической теории коллективных решений и конфликтов [69, 259, 260] является предположение, что существует 13
столько же методов конкретизации целей, сколько ответственных управляющих с их личным опытом, умением и навыками. Во-вторых, необходимо позаботиться и о том, чтобы вы0ранный показатель у0 являлся прогнозируемым. Для этого требуется построить определенную математическую модель управляемого процесса, т. е. сперва перечисленные возможные действия описать с помощью элементов х некоторого множества X, а затем определить на X такую вычислимую (возможно, алгоритмически) функцию /0, значения которой /0 (х) могли бы служить надежным прогнозом для ожидаемых значений у0 при выборе тех или иных возможных действий х. Если /0 дает для у0 надежный прогноз, то построенную математическую модель уо= % (х) называют у0-адекватной. И, наконец, построенная математическая модель должна быть достаточно простой, чтобы имелись реальные возможности для вычисления искомого решения #* задачи @.1) в требуемые сроки и с помощью имеющейся вычислительной техники. Такую математическую модель называют реализуемой. Трудные вопросы практического построения у0- адекватных и одновременно реализуемых моделей исследовались в работах [22, 23, 26, 75, 260, 336, 242, 227, 208, 177, 178, 330, 355, 356, 228]. Таким образом, специалист, желающий решить свою практическую задачу с помощью математических методов оптимизации, должен располагать некоторым запасом реализуемых моделей, среди которых может выбирать */0-адекватную модель. С этой целью данное пособие, во-первых, знакомит читателей с широким кругом тех задач оптимизации, для которых уже разработаны теоретически обоснованные методы их решения и, во-вторых, доводит все эти методы до детально разработанных алгоритмов, чтобы облегчить их практическое использование. 2. Основные задачи оптимизации Обычно задачи оптимизации классифицируют по тем свойствам допустимого множества X и минимизируемой функции /, которые обеспечивают или облегчают практическое отыскание оптимального решения. В теории оптимизации выделяют три основных класса задач: задачи безусловной оптимизации, или задачи без ограничений (в этих задачах не накладываются ограничения на допустимые значения переменной х, т. е. множество X совпадает со всем пространствам 00 определения переменной х)\ задачи условной оптимизации, или задачи с ограничениями (в этих задачах X фХ) и задачи оптимизации при неполных данных; в этих задачах / и (или) X зависят от некоторого параметра р (числового, векторного или функционального), значение которого не полностью определено в момент выбора решения х. В дальнейшем будем обозначать через arg min / (x) оптимальнее 14
ное решение х* задачи @ 1), т. е. тот элемент х* из множества X, которцй доставляет функции / наименьшее значение на множестве X, а множество всех оптимальных решений — через Arg min f (x). \ xQX Это множество может состоять из одного или многих элементов, или можетхоказаться пустым (в этом случае задача оптимизации не имеет решения) и даже может совпадать со всем множеством X — все зависит о^ свойств конкретно выбранной функции / и множества X. Множество X принято называть допустимым множеством, или множеством допустимых решений, а функцию / — минимизируемой функцией, или целевой функцией, или функцией затрат. В некоторых случаях требуется найти элемент л:**, максимизирующий функцию / на множестве Ху т. е. удовлетворяющий условию f (***)>/(*) V*6X (например, если значением / (х) оценивают «прибыль» от использования решения х). Такое оптимальное решение л;** обозначается через arg max f (x), а множество всех оптимальных решений — х?Х через Arg max / (я). Функцию / называют соответственно максимизи- х?Х руемой (функцией полезности, критерием качества и др.). Очевидно, задача максимизации переходит в задачу минимизации @.1), если умножить функцию f на (—1). ь^ В настоящее время наиболее изученными являются задачи линейного программирования (в этих задачах функция f линейная, а множество X задается системами линейных равенств и (или) неравенств) и задачи выпуклого программирования (в этих задачах / и X выпуклы). Для решения этих задач (хороших в том смысле, что все их локальные решения #*, удовлетворяющие неравенствам @.2) для всех хбХиз окрестности точки 1с* 9 являются одновременно искомыми оптимальными решениями х*) разработаны довольно эффективные численные алгоритмы. Невыпуклые и многоэкстремальные задачи, а также задачи дискретной оптимизации (с дискретным или частично дискретным множеством X) являются наиболее трудными и до настоящего времени еще не найдены эффективные алгоритмы их решения (за исключением частных случаев). Весьма трудными являются и задачи оптимизации при неполных данных. Действительно, если значение параметра неопределенности р ? Р неизвестно до момента выбора решения х, то оптимальным решением «надо было бы назвать» тот элемент #*, который для всех возможных р ? Р и х ? X удовлетворяет неравенствам /(**, P)<f(*> PY @.3) 15
Но это чрезмерно нереалистичное требование — таких х* обычно не существует. Если же значение параметра р известно перед выбором элемента х9 то оптимальным решением х* яэляется любой элемент ср (р) из множества Arg min / (xf p)9 <p(p)?Argmin/(*, p). @.4) Задачу отыскания функции ср из условия @.4) называют задачей параметрической оптимизации. Так как в задаче оптимизации при неполных данных р не определено до момента выбора решения **, то часто, особенно в экономических исследованиях, неопределенные параметры заменяют неко- торыми средними значениями /?, р = j pdp/^dp, и в качестве я* выбирают ф (р). Более объективный учет неопределенности можно осуществить в задаче стохастической оптимизации: найти элемент х*, минимизирующий функцию на множестве Здесь Р (А) — вероятность события Л, е ? @, 1). В теории стохастической оптимизации построены численные алгоритмы отыскания х* также и для тех особенно трудных и важных в приложениях случаев, когда мера \i неизвестна, а имеется лишь возможность наблюдать реализации р непосредственно в процессе реализации алгоритма. Такого рода алгоритмы адаптивной оптимизации «в реальном масштабе времени» находят все более широкое применение. Однако ориентация на «среднее» не всегда эффективна и может в процессах управления приводить к ошибочным рекомендациям и решениям. Поэтому на практике иногда отыскивают предельные решения: «оптимистическое» х*о = arg min min / (х, р)\ @.5) х?Х р?Р и «пессимистическое» х* = arg min max / (х, р). @.6) к?Х р?Р Первое решение х0 рассчитано на тот благоприятный случай# когда неопределенный параметр р примет значение ру равное /?; = argmin/(A:;, p) @.7) и этим обеспечит наилучшее возможное значение / (х0, /?о), удовлетворяющее неравенству />)• @.8) 16
Достоинством пессимистического решения х*п является наличие гарантии — какое бы значение р не принял параметр /?, полученное реально^ значение / (х*п, р) всегда будет не больше числа argmax/(A:*, p))9 т. е. VpgP; f(xlp)^F. @.9) В этой связи решение х*п называют еще гарантирующим решением, или минимаксным решением (по виду определяющей формулы @.6)), а задачу @.6) называют задачей минимаксной оптимизации. На другое важное свойство гарантирующего решения указывает предложение 1. Предложение 1. Если х не является гарантирующим решением, то найдется такое р ? Я, что /(*. P)>f(xn, р). @.Ю) Поэтому при малых значениях F гарантирующее решение имеет практическое значение и часто находит применение. В остальных случаях приходится либо идти на риск, либо уточнять постановку задачи с целью уменьшения множества неопределенности Я. Возможности уменьшения неопределенности р для повышения эффективности принимаемых решений изучает также теория конфликта и коллективных решений, которая основана на предположении, что значение параметра р выбирает некоторый «заинтересованный участник конфликта (второй игрок)», стремящийся минимизировать «свою целевую функцию» /2 (х, /?*). Здесь и возникает ряд новых конкретных постановок задач оптимизации в зависимости от «порядка ходов», разнообразия возможностей взаимной информированности сторон как о множествах X, Р, так и о целевых функциях /, /2. Полагают, что «второй игрок делает первый ход», если значение р выбирается раньше, чем значение х. Аналогично — «первый игрок делает первый ход», если значение х выбирается раньше значения р. Заметим, что разнообразие практических задач управления служит неисчерпаемым источником разнообразных конкретных задач оптимизации в конфликтных ситуациях [33, 69, 71, 50, 201 ^ 206, 260]. Так, если в случае полной взаимной информированности о функциях /, /2 и о множествах X, Р первый ход делает второй игрок и, следовательно, становится известным его выбор /?, то мы оказываемся в условиях полной информированности и поэтому можем воспользоваться решением задачи параметрической оптимизации @.4), сформулированной выше, т. е. оптимальным решением будет х* € ф (р). Но ведь и второй игрок тоже может решить задачу @.4) и отыскать «наше» <р. Это позволит ему заблаговременно вычислить значение /2 (ф (/?), р) для каждого значения /?, а затем 17
выбрать свое наилучшее значение /?*?Argminmax/2(A:, р?Р ?() Если и мы проделаем такие же вычисления, то таюке найдем это «более узкое» множество неопределенности Р а Р. А в случае единственных значений ф и /?* целевая функция f примет значение f (ф (/?*)> Р*) заведомо лучшее, чем гарантированное значение F, т. е. / (ф (/?*), р*) < F (и только в редких случаях это неравенство превратится в равенство). Заметим, что теория оптимизации в конфликтных ситуациях изучает способы отыскания «лучших», чем / (ф (/?*), /?*), решений. Так,, если «навязать» решение х = ф (/?) в ответ на выбор р, то, как и выше, найдем «более узкое» множество неопределенности /2(, P)> р?Р х?<р(р) зависящее от ф. Это позволит найти и «оптимальное» ф*, удовлетворяющее условию Ф* ? Arg min max / (ф (/?), р). ф р?Р(<р) Важный класс задач оптимизации при неполных данных составляют задачи многоэтапной оптимизации (задачи коррекции), возникающие в тех случаях, когда имеется возможность перенести на более поздние сроки выбор той или иной части искомого решения х. Например, задача двухэтапной оптимизации возникает при появлении возможности отложить на более поздний срок выбор некоторой определенной части х2 искомого решения х = {хъ х2) ? X, т. е. сперва выбираем хх A-й этап), а выбор х2 B-й этап) из X (хг) (сечение множества X по выбранному хг) можем отложить до момента, когда станет известной некоторая дополнительная информация о множестве неопределенности Р (х) (т. е. вместо первоначального Р (х) станет известно некоторое «более узкое» множество Рх (х) cz с= Р (х)). Тогда целесообразно выбрать хг на первом этапе как оптимальное решение х\ для следующей вспомогательной задачи оптимизации при неполных данных: минимизировать по хг функцию / (xi> Ръ р) с неопределенным параметром (ри р) ? Р2 (хг) X X Р {хъ X (хг)), где Р2 (хг) — множество решений xl € X (хг) задачи минимизации по х2 функции / (хъ x2i p) с заданными х1 и неопределенным параметром р g P (х). Другая модификация задачи двухэтапной оптимизации возникает в тех случаях, когда функцию полезности / (хъ х2у р) выбирают таким образом, чтобы учесть издержки как на получение дополнительной информации о множестве Р (х), так и связанные с отстроч- кой выбора х2. 18
3* О задачах многоцелевого управления Трудности приведения многочисленных пожеланий и устремле* ний к некоторой «единой цели» зачастую оказываются непреодолимыми и тогда, не имея возможности сформулировать задачу оптимизации, мы вынуждены формулировать следующую недостаточно строгую задачу многоцелевого управления: какие из возможных действий следует осуществить, чтобы обеспечить достижение следующих целей (далее перечисляются все цели)? Перечисляемые цели могут выражать требования! минимизировать определенные показатели У о, Ун ••* Ут> @.1 !> максимизировать некоторые другие показатели Ут+1, .... У* @.12) удовлетворить равенствам и (или) неравенствам О, ....*.-0; фщ ,з, Если для данной практической задачи построить математическую модель fif i = 0, 1, ..., л, дающую надежный прогноз ft (x) величинам yt при выборе тех или иных возможных действий х ? ? X, то эту задачу можно переформулировать как задачу отыскания среди элементов х из множества X того элемента **, который удовлетворяет условиям \fx?Xft (**) < ft (x)9 0 < / < т; @.14) V*€X/,(**)>М*). m<i<k; @.I5) fi {x*) = 0, k < i < s; @.16) ft (x*) ^ai9 s < i < n. @.17) К сожалению, такая задача оказывается бессодержательной, так как решения я*, удовлетворяющего противоречивым условиям @.14) — @.17), обычно не существует (и тем не менее иногда встречаются подобные формулировки цели в виде «максимизировать блага (например, выпуск продукции) при минимальных затратах»). Для того чтобы «довести» задачу многоцелевого управления до содержательной математической задачи оптимизации можно оставить некоторое наиболее важное среди неравенств @.14)—@.15), а остальные привести к виду @.17) с помощью вспомогательных констант dh i ^ k. Выбирая различные константы db исследователь может «осмотреть» соответствующие оптимальные решения х* (d) и затем выбрать «наилучшее среди них» по своим неформальным критериям. В общем случае естественно задать такое множество В3 и функцию В2, чтобы условие х ? X (В) & {х \ 52 (х, fx(x), ..., fn (x)) cz cz В3} определяло множество «удовлетворительных решений» х, а 19
затем с помощью вспомогательного критерия Вг (более высокого уровня) определить В-оптимальное решение х* (В) = arg mitf Вг (xt х?Х/В) Л (*)> •••> fn (*)) ПРИ условиях @.16) — @.17). Если, например, вы- т k брать Вх (х, h (х) /„ (*)) Л S Ь,/, (х) - 2 ft,/, (х), В3 - U {а;}, то множество X* всех я* (В), полученных при всевозможных Ь^ 0, Y; bt; = 1 обладает замечательным свойством: в множестве X не г=0 найдется элемента 2, который удовлетворял бы неравенствам V* = OTTi ft (z) < /, (х* (В)), Vi = m+1, fe /, (г) > ft (*• (В)) ^с_хотя бы одним сильным неравенством. В связи с этим множество JK*, которое называют множеством компромиссов, естественно называть решением задачи многоцелевого управления. На практике X* используется лишь как один из этапов к окончательной формулировке задачи оптимизации. Окончательный выбор оптимальных значений bt = b* осуществляют либо с помощью максимизации некоторого критерия F (л:* (В), В) «более высокого уровня», т. е. выбирают fe* = arg min F (л;* (В), В), либо (в кон- фликтной ситуации) по договоренности «/-го игрока (стремящегося максимизировать ft (л:))» с остальными. В последнем случае к существенным факторам прибавляется фактор времени t — момент принятия окончательного решения о согласованном выборе значений Ь. Этот фактор, а также и другие существенные факторы % конфликта, позволяет каждой стороне выдвигать с помощью функции |3t- конструктивные предложения (^-уступки) в виде: — «если выбор b будет завершен до момента времени /, то i'-й игрок согласен -с любым значением Ь из множества pt- (t> т)». Такие Р-уступки помогают прийти к взаимо согласованному выбору значений bt в тот момент tl9 когда множество П Р* (^i> x) окажется непусто. Для более конкретных ситуаций исследовались многие важные постановки «коллективных» задач многоцелевого управления, когда разные цели порождаются разными участниками (организациями), и предложены разумные конкретизации коллективных решений, а также алгоритмы для их вычисления [33, 50, 69, 70, 74, 171, 201, 203, 206, 210, 257, 259, 260, 389]. 0.2. О некоторых методах решения задач оптимизации Любой алгоритм отыскания оптимального решения х* для задачи минимизации функции / на множестве X, обычно ориентирован на решение определенного класса задач оптимизации с определенными свойствами функции / и множества X. 20
Поэтому более универсальные алгоритмы, ориентированные на решение более широких классов задач, обычно уступают по эффективности специализированным алгоритмам, использующим специфические свойства конкретно решаемой задачи. Этим и объясняется современное непрерывно возрастающее разнообразие алгоритмов оптимизации. Приведем примеры основных оптимизационных методов. 1. Метод полного перебора Если множество допустимых решений состоит из N элементов х1, х2, ..., xN и N настолько мало, что имеется практическая возможность вычислить все значения / (х1), f (я2), ..., / (xN), то сравнением полученных значений найдем наименьшее значение f (х(*) и одновременно искомое оптимальное решение #* = х1* = arg min f (x{). i?UN Такой метод полного перебора используется довольно редко, потому что множество X обычно содержит слишком много элементов и практически невозможно вычислить / (х) для каждого х ? X. 2. О приближенных методах и оптимальных алгоритмах Среди приближенных методов оптимизации наиболее часто используются: Методы частичного перебора и случайного поиска. В этих методах выбирают некоторое достаточно представительное подмножество Xn = {х1, х2,..., xN) cz X, допускающее возможности использовать метод полного перебора и найденное х1* принимают в качестве приближенного решения исходной задачи оптимизации. Если элементы хг9 х2, ... вычислять как реализации некоторой случайной величины I ? X с заданной мерой щ j d\i (x) = 1 (такой метод называют методом случайного поиска, или методом Монте — Карло) или задать в виде некоторой сетки узлов Xncz Ху то получим метод пассивного поиска. В методах активного (или адаптивного) поиска элементы л:1, х2у ... вычисляют последовательно и, учитывая текущую информацию о значениях / (л:1), / (х2), ... (или производных /), стремятся обеспечить более густую сетку (увеличить значения \х (х)) в тех подмножествах XN cz X (с меньшими предсказуемыми значениями/(а:)), которые становятся более подозрительными (в процессе вычислений / (х1)) «на оптимум» (т. е. на то, что Х*с= Xм). Методы отсечений. В этих методах находят и «отсекают» от мно- жества X те его подмножества ~Х, которые заведомо не содержат оптимальных решений, и получают эквивалентную задачу миними- зации функции / на «меньшем» множестве X = X \ X. Последова- 21
тельными отсечениями иногда удается получить последователь- V V vy «/ ность таких вложенных подмножеств Хх гэ Х2 r> Х3 zd ... zy Xk z> id ..., для которых diam (Xk) ->¦ 0 (тогда при достижении не- равенства diam (Xfe) ^ е, любой элемент xk ? Хл очевидно удовлетворит неравенству || xk — х* || ^ s). Различные эффективные варианты методов отсечений разрабатываются в рамках методов ветвей и границ, методов минорант, методов эллипсоидов (особенно эффективных для решения выпуклых задач) и других методов. Методы аппроксимаций. В этих методах функцию / и (или) множество X заменяют некоторыми реализуемыми аппроксимациями /, X; допускающими практическую возможность вычислить %* = = arg min/(х). Если (/, X) достаточно близки к (/, X), то можно ожидать, что и X* будет близким к Arg min / (л:). х?Х Методы локальной оптимизации. Если для заданных хк ? X, Xk > 0 множество X заменять «меньшим» множеством Хг (xk9 А,л) =* = {х ? X 11| xk — х I ^ Xk] и последовательно вычислять xk+l = arg min f(x), @.19) то при весьма общих условиях получим сходимость xk - кальному решению задачи оптимизации, т. е. к такому #* ? X, которое при некотором К > 0 удовлетворяет условию х* = arg min / (#) ( x?t (xtX) (очевидно при xk+l = xk, точка xk является локальным решением). Поиск локальных решений оказывается особенно эффективным при решении тех задач оптимизации, в которых все локальные решения являются одновременно оптимальными решениями (например, выпуклых задач оптимизации). Методы последовательных приближений. Так как вспомогательная задача @.19) может оказаться довольно трудной даже при малых Xk9 то в многочисленных методах последовательных приближений предлагается вычислять xk+l как приближенное решение задачи xk+l = arg min Fk (x), @.20) x?Xk где аппроксимации Fk, Xk выбираются из соображений упростить вычисление jcft+1, сохранив при этом сходимость xk??oox*. В качестве X* часто выбирают некоторые из множеств X, X, *i<**. U **(**> К) й {*||*-** II <U Xk(#f %k, У) А ^ {х 11 xt — х\ К Kk} i?J а {1, 2, ..., п)) и др., или опреде- 22
ленные пересечения этих множеств. Очевидно, при уменьшении %k необходимо повышать точность аппроксимации V/ (х), поэтому в качестве Fk обычно выбирают линейную аппроксимацию f в окрестности xk Fx (xk, x) А / (xk) + (Vf (xk)y x — xk), реже квадратичную аппроксимацию F2 (xkf x) Д / (xk) + fif (xh), x — xk) + + -9- (VL/ (xk)(x — xk), x — xk) или аппроксимации более высоких порядков, часто, особенно для негладких Д выбирают негладкие аппроксимации F3 (xk, x) = 1] at (xk) max (cif (xk), x) или компо- 1 k i зиции таких функций. Множество возможных способов выбора последовательностей {Fkt X*j*Li, а также процедур Рк для приближенного вычисления решений хк+х соответствующих упрощенных задач оптимизации @.20) порождает множество Л алгоритмов Л конкретной реализации методов последовательных приближений. В связи с этим актуальной является задача выбора наиболее эффективного (оптимального) на классе (Fy X) алгоритма А й {Fk, Xk, Pk> k = = 1, N (Л), л:1^ X) ^ А для вычисления по формулам @.20) приближения х* (А) Д xN^A) к искомому решению х* = arg min / (л:) при условии, что / и X принадлежат заданным классам F и X. Очевидно, это задача многоцелевой оптимизации, преследующая среди наиболее важных следующие цели [177]: 1) минимизировать время Т (А) А #! (Л, /, X) реализации алгоритма А, т. е. время, затраченное на вычисление элемента л;* (Л); 2) минимизировать погрешность вычисленного приближения х* (А)у т. е. расстояние р (Л) А у\ (Л, /, X) от х* (Л) до множества всех х* для функции / и множества X; 3) минимизировать / (х* (Л)) — min / (х) Д у\ (Л, /, X); х?Х '' 4) минимизировать число итераций Af (Л) = у\ (Л, /, X); 5) минимизировать объем памяти Vt (А) А у] (Л, /, X), занимаемый на /-м устройстве вычислительной системы при реализации алгоритма Л; 6) минимизировать время Т{ (Л) &у](А> /, X) работы jf-ro устройства при реализации алгоритма Л; 7) удовлетворить требуемым ограничениям на допустимые значения yfa (Л, /, X) & {у\ у - у\ (Л, /, X), i = 1, 2, 3;_ * е Ж @}- В связи с этим В — оптимальный на классе (?, X) алгоритм А (В, F, X) определяется, с помощью вспомогательных функций Вх, В2 и множества Вв, как решение задачи минимизации по A g ёЛ заданной функции max 5Х(Л, у ft (Л, Д X) при заданных 23
ограничениях В2 (Л, у^ (Л, /, X)) ? B3i т. е. Л (В, F, X) = arg ^ min max ВХ(А, у1^ (Л, /, X)). АеАВ{А{АГ X))?BS ЦХ)фХ Следует отметить, что если для класса (Fl9 Xt) построен оптимальный алгоритм Аг= А (?, Fl9 Xx) и затем оптимальные алгоритмы Л 2 и Л3 соответственно для более узких классов (F2, X2) и {F39 Х3), удовлетворяющих условию (F2, Х2) U Фз> ^з) = Фъ Xi)> то это еще не значит, что алгоритм Ах уже не нужен и можно заменить его построенными более эффективными алгоритмами Л2 и Л3. Очевидно, такая замена оправдана лишь в тех случаях, когда повышение эффективности Л2 и Л3 по сравнению с Аг компенсирует дополнительные затраты на проверку принадлежности (/, X) cz cz (Fi9 Xt) при выборе требуемого алгоритма Ah i = 2, 3. Однако проверка принадлежности практической задачи (Д X) определенному классу задач (Fi9 X,) зачастую оказывается почти неосуществимой и поэтому «ранжировка по эффективности» существующих алгоритмов также оказывается весьма проблематичной. В большинстве случаев правдоподобную оценку эффективности алгоритма дает лишь вычислительный эксперимент. 0.3. Методы отсечений Приведем примеры успешного применения методов отсечений для решения ряда важных задач оптимизации. 1. Минимизация квазивыпуклых функций Функцию / : [a, b] -»• Ry [а, Ь] а Д, называют квазивыпуклой, если для любых а <! xx< х2<! Ь неравенство / (a^) ^ / (л:2) влечет неравенство л;*=* arg min / (л:) ^ х%\ а неравенство / (хх) ^ / (х2) влечет неравенство х*^ xv Поэтому, выбрав л:х= (а + Ь — е)/2 и х2= (а + Ь + е)/2, в случае / (хг) ^ / (х2) получим л:*с: X1 = = lxl9 b]9 а в случае / (хг) ^ / (х2) получим х*с X1 = [а, х2]> т. е. в обоих случаях вместо [а, Ь] найдем новый (почти вдвое короче) отрезэк X1 локализации х*. Повторяя этот процесс, будем находить все более короткие отрезки локализации решения [а, Ь] :=> X1 z> Более эффективные и даже оптимальные алгоритмы локализации х* (по методу Фибоначчи и золотого сечения и другие) описаны в § 1.1—1.4. 24
2. Метод минорант. Минимизация липшицевых функций Утверждение 1. Если функция F является минорантной для/ на множестве X, т. е. для всех х ? X, F (х) ^ / (л:), л: ? X, то } П X, f(x*)?[miF(x), f(x)]. х?Х Действительно, для всех х $ X/? имеем f (x) ^ F (х) > / (х). Следствие 1. Если X* = {х\ х2 xN) <= X, MN = mm/ (*<) = (x), то Поэтому при достижении неравенства Мм — См < в получим /(*")-/(*•)< в. Утверждение 2. Если функция / липшицева на X, т. е. существует константа Липшица L, для которой при х\ х2 ? X, то функция = max (/И-Цх — является минорантой для /. Поэтому для минимизации липшице- вой функции можно использовать следующий Алгоритм 1: выбираем произвольное х1 ? X, полагаем Хх = = {л:1}, N = 1 и для N == 1, 2, .t. вычисляем = arg min FN (x)y x?X Утверждение З. Если последовательность я1, а:2, ... построена с помощью Алгоритма 1 для липшицевой функции /, то N x?X а если при этом X — компакт, то lim xN = х*. N-+0O 3. Минимизация выпуклых функций. Метод эллипсоидов Утверждение^. Если функция f выпукла и ограничена на х ? € Rn и х ? X, то существует такое С- б д"» что линейная функция 25
является минорантой для / на X, т. е. для всех х ? X F-f (x) ^ < / (х) и, очевидно, F-Xf (х) = / (х). Следствие 1. Если х1 ? X, то Следствие 2. Если х1, х2, ..., xN ? X, то Это позволяет исходную задачу минимизации / на X заменить задачей минимизации / на «меньшем» множестве Xn. По-видимому, представляет практический интерес выбирать значения х1, х2, ...,х^, ... таким образом, чтобы множество Xn эффективно «уменьшалось» с ростом N. Для этого целесообразно выбирать элементы х1 поближе к центру тяжести или чебышевскому центру множества Х/_ь Строятся также (у, Л^-оптимальные методы, в которых элементы х1, х2, ..., х^ выбираются таким образом, чтобы обеспечить минимальное значение меры J (Xn) (например, диаметра ) Особо эффективным оказался следующий метод эллипсоидов [417]. Предположим, что известно число Rx и точка х1 ?Rn, удов» летворяющие условию || х1— х* || ^ Ru т. е. х* принадлежит шару S (x1, Rt) радиуса R± с центром в точке х1. Тогда х* принадлежит также и полушару Sx (х\ Rx) = S (х1, Rx) (] {х \ Fx4 (х) < / (х1)}. Построим (это нетрудно) гиперэллипсоид минимального объема, содержащий Sx (x1, RJ и затем с помощью линейного преобразования «растянем» пространство таким образом, чтобы данный гиперэллипсоид опять превратился в шар. Очевидно радиус R2 этого нового о шара уменьшится по сравнению с Rx (R2= RiV 1 — V2n). Поэтому, повторяя данный процесс, можно локализовать х* в шарах все меньших радиусов. В итоге получаем последовательность {х*}, удовлетворяющую неравенствам || x*+! — х* || ^ q | хк — х* || при независимом (!) от / значении q яз 1 — V2n2< 1, т. е. lim xk = х\ Этот метод легко приспосабливается и для минимизации выпуклой функции / на заданном выпуклом множестве X ^ {х | gl (x) ^ ^ О, I = 1, т) с выпуклыми функциями gi :ВЛ->Я. Действительно, введем вспомогательную функцию F (х) == / (х) на X и F (х) = = g*k (x) вне X (ik = argmax g* (xk)). Так как Arg min/ (x) ? ? Arg min F (x) = X и при этом Т7 выпукла вне X ( нетрудно проверить, что F^~ = F, при х ? X и F^ == f^ ^ при х g g X), то требуемый полушар можем «отсекать» с помощью Z7^ 26
Формально к методам отсечений можно отнести и методы локализации решений на подмножествах X с: X тех элементов х, которые удовлетворяют необходимым условиям оптимальности. Часто необходимые условия оптимальности оказываются достаточно конструктивными и позволяют отыскать я* (либо локализовать его в «достаточно малых» подмножествах X). 0.4. О локализации решений с помощью необходимых и достаточных условий оптимальности. Дополнительная терминология 1. Необходимые условия оптимальности для дифференцируемых функций Функцию / называют дифференцируемой в точке х, если существует такой вектор V/ (#), что для всех х в окрестности хсправедливо асимптотическое равенство Вектор V/ (х) называют градиентом или производной функции f в точке х. Утверждение 1. Оптимальное решение х*9 минимизирующее дифференцируемую функцию / на множестве X, находится либо на границе X множества X, либо на множестве X* решений х* уравнения V/ (х) = 0. Следовательно, задачу минимизации / на X можем заменить задачей минимизации / на подмножестве X = X U (X* (] X) cz X. Справедливость утверждения 1 следует из того, что предположение V/ (#*) Ф 0 для х* ? X ведет к противоречивому (при малых X > 0) неравенству f (** — IVf (л:*)) = / (**) — К I V/ (x*) f + + o(X)<f (х*). Если существует /' (л*, г) & lim (/ (xk + Xz) - ~ vo+ — / (**)У^э то /' (xk, z) называют производной по направлению г для функции / в точке хк. Утверждение 2. Если / дифференцируема в точке хЛ, то /' (xk, г) = (V/ (*)*, г). Направление z (xk) Д arg min /' (xk, z) называют направлением I|1 I|||1 наибыстрейшего убывания функции / в точке xk. Следствие 1. Если / дифференцируема, то г (xk) = ~ - V/ {х% Это значит, что приближение xk+\ лучшее чем xk, можно вычислить по формуле xk+l = xk + %z (xk), X = arg min / (xk + 27
Следствие 2. Если х* = arg min t(Cx:, x) + (d, x)], то а: х*— решение линейной системы алгебраических уравнений (С + + С*) * + d= 0. Лемма [23]. Если х = arg [(С + С*)х = d], d1 й А (С + C*)d, Аг=1-А (С + С*), d*+! = dk + Akd\ Л*+1 = Al то \\x- — dk\ ^ \\_A1 f +I || d\[ Поэтому dk эффективно приближается к искомому х с увеличением k. Приведем ряд условий оптимальности, справедливых и для граничных точек множества X. 2. Необходимые и достаточные условия оптимальности для задачи выпуклого программирования. Теорема Куна—Таккера Напомним необходимые понятия выпуклого анализа. Пусть х\ х2 ? X. Функцию / называют выпуклой на выпуклом множестве X, если W 6 Ю, 1] / (**)< V (х1) + A — Я) / (х2), называют строго выпуклой, если V^ g [0, 1] / (**,) < Я/ (а:1) + A — — K)f (х2) и называютшлбло выпуклой, если при некотором а > О Аналогично, множество X называют выпуклым, если УЯ g [0, 1] х% g X, называют строго выпуклым, если при Я ? @, 1) х^ является внутренней точкой X, и называют сильно выпуклым, если при некотором а > 0 открытое множество [х \ || х — х% \ ^ а | х1 — — х21| min {Я, 1—Ц) принадлежит внутренности множества X, АГе (о, 1). Утверждение 2. Если функция / выпукла и дважды дифференцируема, то следующие условия эквивалентны: A) /(^)-/(^)>(V/(xl)f х2-*1); B) (V / (а: + М), К) — неубывающая функция А,; C) (VL/Wft, ft)>0 Vx, h?Rn. Утверждение 3. Если / — дважды непрерывно дифференцируемая функция, то условие сильной выпуклости эквивалентно условию (VL / М Л, А) > е || А ||2, е > 0, х, А ? /?"; сильно выпуклая / достигает своего минимума на замкнутом множестве. Естественно, выпуклая и даже строго выпуклая функция / может не достигать своего минимума на замкнутом X. Утверждение 4. Строго выпуклая функция достигает своего минимума на выпуклом множестве X лишь в единственной точке. Множество X* всех решений выпукло и довольно просто описывается с помощью конуса допустимых направлений. Множество К (х1) называют конусом допустимых направлений для X в точке х19 28
если оно состоит из тех векторов Л, для которых существует число е > О, удовлетворяющее условию х1 + гк ? х. Утверждение 5. Если / и X выпуклы и / непрерывно дифференцируем, то необходимым и достаточным условием оптимальности точки х является включение (/С* (х) й{у\(у, г) > О Mz б К (х)) — сопряженный конус), т. е. Следствие 1. X* = [x\(Vf (х), г~ х) > О V* 6 X} f) П X, а в случае X = Rn имеем X* = [х | V/ (х) = 0}. Вектор V/ (%) g /^называют субградиентом, или обобщенным градиентом в точке д:, если Множество М (х) субградиентов непрерывной выпуклой функции f в точке х является выпуклым, замкнутым и ограниченным. Утверждение 6. Для выпуклой функции / производная /' (*, г) по направлению z равна max (z, у). Следствие I. Направление г (х) наибыстрейшего убывания функции / в точке х равно z(;F)Aargmin /'(*, z) = arg min max B, у). Это значит, что в методах последовательных приближений в качестве X можно выбрать множество Xk = {д: I max (jc, #) < ^ —^л II х ||} для некоторого Хк > 0. ^ _ Следствие 2. Для того чтобы для выпуклой функции / х = arg min / (х) необходимо и достаточно, чтобы 0 ? М (х). В общей задаче выпуклого программирования множество X имеет вид X = X1 ^ {х \ ft (х) < 0, i == 17^", ^ g 7}, где К — заданное выпуклое множество, а /, — выпуклые функции. Теорема Куна — Танкера. Для того чтобы точках минимизировала выпуклую функцию /0 «а множестве X1, удовлетворяющем условию Слейтера: необходимо и достаточно, чтобы существовало решение и1у ...,и системы _ ™ _ « /о W + 2 и,/, W < /о W + 2 и,/, (х) V х 6 Г, 2 ,/, W < /о W + 2 29
Такое решение uv ..., ит называют множителями Лагранжа, а пару (х, и) — точкой Куна — Таккера. Функцию ф (х, и) А /0 (х) + + ^ uifi (x) называют функцией Лагранжа, Пару (х% и) называют оедловой точкой функции ф на множестве Y х R+, если х ? К, «^0 и выполнены неравенства ф (х, и) ^ ф (х", й) ^ ф (х, и) Ух ?Y9Vu^ 0. Поэтому теорему Куна — Таккера можно сформулировать следующим образом: если выполнено условие Слейте- ра, то необходимым и достаточным условием оптимальности х является существование такого вектора и ^ 0, при котором пара (х, и) является седловой точкой функции Лагранжа на множестве У X X /?+. Утверждение 7* Если выполнено условие Слейтера, то для оптимальности точки х (минимизирующей выпуклую функцию /0 на выпуклом множестве X1), необходимо и достаточно существо- вание таких векторов Vft (х) ? Mt (х) и чисел иь i = 1, /и, что щ < 0, / = 1, т, т\и$иСх). S 3. Необходимые условия первого и второго порядка для задач нелинейного программирования Утверждение 8. Для того чтобы точка х* являлась точкой локального минимума функции /0 на множестве X « {х | ft (;t) ^ 0, ( g §f~, ^ (х) = 0, t g #0} необходимо существование таких не асех равных нулю чисел ы0, щ, i g §^"", o/t i ? §^°, что 0, Точку локального минимума J* называют регулярной, если линейно независимы все вектора V/< (x*) с теми индексами i9 для которых выполняются равенства ft (х*) = 0. Следствие 1. Если точка х* регулярна, то можно положить ио= 1, остальные множители uh vt определяются однозначно. Следующее утверждение дает необходимые условия оптимальности второго порядка. Утверждение 9* Если функции fi9 i g 3° [] V~ U {0}, дважды непрерывно дифференцируемы и х—регулярная точка минимума, то существуют такие числа uly vb что ?*Ф (х, Щ v) - 0, щ > 0, ujt (x) = 0, i б Sf- (VL<P(*, и, о) Л, 30
для всех \ удовлетворяющих условиям *), А) = 0, 16 {*1 и, > 0, t б gr-} U #°; 4. Условия оптимальности для задач минимизации негладких функций Простейшим примером негладкой функции является часто встречающаяся функция вида fo(x) я max ft (х), #А{1, 2, ..., т). Утверждение 10. Если х =* arg min max f. {x) для заданных дифференцируемых функций fl9 i ? &, то существуют такие числа Щ ^ 0> 2 wf — Ь что выполняются равенства (х) = 0, ^ {ft (х) - max /, (x)) - 0, / g gf. Выше приводилось весьма важное свойство выпуклых функций> состоящее в том, что производная по направлению г f (x1, г) равняется max (у, г). Это свойство положено в основу определения класса квазидифференцируемьрс функций, т. е. таких функций Д для которых в каждой точке х определено замкнутое выпуклое множество Mf (x) (множество квазиградиентов), удовлетворяющее для всех г ? Rn равенству /' (х, z) = max (у, г) [314]. Поэтому все вы- Щ пуклые функции принадлежат классу квазидифференцируемых функций. Квазидифференцируемыми являются также и все функции /0 вида /0 (я) = max / (х, у) с дифференцируемыми / и замкну нутым ограниченным множеством У (в данном случае Mf (x) = » со {г | г = VJ (х, //*), у* == arg max / (а:, у)}), а также все ела- У€У бовыпуклые функции [272] (те функции /, для которых существует непустое множество Gf (x), удовлетворяющее условию \/h ? € Gf(x) Vy?Rn f (у) - f (x) >(A, y-x)+r (x, y), !<* > f,, -»(> равномерно по л: в каждом ограниченном замкнутом множестве Q Э х) и функции вида /0 (л:) « max / (л;, а), где/ (л:, а) — непрерыв- ны по а и слабовыпуклы по х при любом фиксированном а из компактного топологического пространства Л. В последнем случае Ми(х) =со U G/(.,fl)(x). Утверждение 11. Для того чтобы точка х? Rn минимизировг- ла квазидифференцируемую функцию /, необходимо, чтобы 0 ? 3L
Утверждение 12. Вектор z (л:1) == arg min max (y, z) опреде- i ляет направление наибыстрейшего убывания функции / в х1. В работе [129] дано более общее определение квазидифференци- руемой функции, а именно: функция / : Rn ->• R называется квази- дифференцируемой в точке х, если она дифференцируема в этой точ^ ке по направлению и если существуют такие выпуклые компакты df (x) czRn и а/ (х) a Rn, что для любого z ? Rn Г (х, z) = max (z, у) + min (г, у). y?df(x) y?df(x) Множество таких функций замкнуто относительно операций взятия максимума и минимума по конечному числу функций и относительно всех «алгебраических» операций. Теорема [129]. Если х = arg min / (x)t то — df (x) cz df (x); X ~~ если x = arg max / (x), mo —df (x) cz df (x). X ~~ Задачу условной (и параметрической) оптимизации можно привести методом развязывающей декомпозиции к более простой задаче минимизации /0 (я, р) на реализуемом носителе / (х, р) = 0, определяющем функцию р -> х (р) [22]. Утверждение 13. Квазидифференциалы /0 функции /0 (х (р), р) по р в точке р вычисляются с помощью квазидифференциалов /0, / функций /0, / по х в точке (х (р)> р) как квазидифференциалы по р в /? для функций /0 (I, р) + z (f (х, р), р) при /0 s z(f, p) по переменной л:. 0.5. Методы последовательных приближений Методами последовательных приближений строят такую последовательность х1, х29 ..., хп?Х, которая либо является минимизирующей, т. е. удовлетворяет условиям lim/(*«) = inf/(x), @.21) я-юо х?Х либо cxodumcn к решению, т. е. lim хп = х* =* arg min / (я), @.22) либо определяет стационарное решение, удовлетворяющее тем или иным необходимым условиям оптимальности, например, lim || V/ (л:") || = 0. @.23) /1-4-ОО Очевидно, сходимость @.22) обеспечивается выполнением неравенств 32
при qn^ q<. 1 для всех п = 1, 2, .... В данном случае говорят, что метод сходится со скоростью геометрической прогрессии, или с линейной скоростью; в случае ?Л->0 — со сверхлинейной скоростью, в случае qn^. С\\ хп — х* \\ — с квадратичной скоростью, а в случае qn^i C\\ xn— x* Ц*-1 — со скоростью k-vo порядка. Способы вычисления (п + 1)-го приближения хп+х обычно основаны на использовании получаемой информации о значениях f (xn), f (xn~l), ..., а иногда и производных первого V/ (хп), V/ (хп~1), ..., второго Vlxf (xn), VL/ (хп~{), ... и (в редких случаях) производных более высоких порядков. Эта информация позволяет выбирать правдоподобные гипотезы о возможной конфигурации функции / (в окрестности точки хп) и затем, на основе принятой гипотезы, определить такое значение хп+1, для которого ожидается выполнение неравенства f{Xn+l)<f(&)-Cn @.24) с возможно большим значением числа Сп>0. Выбор различных гипотез приводит к различным методам оптимизации. Если функция f непрерывно дифференцируема, то, как известно, / (х) = f (хп) + (V/ (*"), х - хп) + о (|| х - хп ||). @.25) Отсюда видим, что направление наибыстрейшего убывания функции f совпадает с вектором — V/ (хп) и поэтому можем при малых %п вычислять хп+1 по формуле: Xn+l=Xn — XnVf(xn). @.26) Метод @.26) называют методом градиентного спуска, или градиентным методом. Различные модификации градиентных методов основаны на том, что функция Fj (л:) s= / (хп) +т (V/ (хп), х — хп) (а значит и непрерывно дифференцируемая функция /) убывает не только в направлении — V/ (хп), но и по всем направлениям znt удовлетворяющим неравенству (г", V/(*»))<6<0 @.27) (действительно, Fx (хп + zn) = f (xn) + (V/ (хп), хп + zn — хп) = « Ft (хп) + (?/ (#»), zn) < Ft (xn)). Поэтому хп+1 можем вычислять также и по формуле хп+\ =хп + %nZn. @.28) Методы @.27), @.28) относятся к методам возможных направлений. 1. О способах выбора шаговых множителей в задачах безусловной оптимизации Если значение.^ выбирать из условия f{xn + K*nXf(xn), @.29) то сходимость @.21) и даже сходимость @.23) может отсутствовать. Например, для минимизируемой функции / (л:) ss (л; + IJ, после- 2 5'341 33
довательность #„= Мп удовлетворяет условию @.29) и тем не менее не сходится к решению л:*= —1. Чтобы обеспечить сходимость @.23), можно в качестве Хп выбирать решение Ji* следующей вспомогательной задачи одномерной оптимизации: X* в arg min / (xtl + Kzn). (О.зо) Однако данный способ применяется лишь в редких случаях (например, в случае квадратичной функции /), так как обычно задача @.30) чрезмерно трудоемкая. Поэтому, либо вместо задачи @.30) решают задачу минимизации некоторой более простой функции F (А,), аппроксимирующей функцию / (хп + Xzn) (например, в качестве F (к) часто выбирают параболу ап№ + ЬпХ + с, проходящую через точки / (хп), f (хп + Хп^{ г") и / (х" + 2рХп~.\ zn), если f (хп + K-tf") < / (хп), то р = 1, иначе р = —1), либо вместо условий @.29) проверяют некоторые более сильные условия, например, условия вида [281: / (хп + Kzn) < f (*п) — *№п. @.31) В последнем случае используется следующий алгоритм 1: для произвольно выбранных чисел s > 0, st > 2, Л,а = 1 полагаем %п = = 2~~k" SiK—i, где kn — минимальное натуральное число, при котором выполняется неравенство @.31). Лемма 1. Если %п выбирать таким образом, чтобы обеспечивалось выполнение неравенства @.32) для некоторой неубывающей положительной при ап > 0 функции ф (где Сп — число из неравенства @.24)), то при inf f (x) > —оо в слу- х чае ая= || V/ (хп) \\ будет обеспечена сходимость @.23), в случае а„= | хп — х* || — сходимость @.22), а в случае ап = / (хп) — inf f (x) — будет обеспечена сходимость @.21). X Действительно, если предположить, что lim ап Ф 0, то из не- равенств @.24), @.32) получаем неравенство lim (/ (tfH-1) — / (xn) + f (xn) — f (xn~l) + oo, которое противоречит неравенству inf / (x) > —oo. x Следствие 1. Если для функции / существует такая неубывающая функция ф (а) > 0 при а > 0, что | V/ (х) || ^ ф (/ (х) — — inf/(#)), то сходимость @.23) влечет сходимость @.21), если х ll V/ (х) || ^ ф (|| х — х* ||), то сходимость @.23) влечет сходимость @.22). 34
Теорема 1. Если V/ (х) удовлетворяет на множестве {х \ f {х) ^ ^ / (х1)} условию Липшица с константой L, то для алгоритма 1 с @.27) существует функция ср, удовлетворяющая условию @.32) при ап = || V/ (хп) ||. Га/сой функцией является <р (а) = min /%ЯЛ—1/2, 2(L+s) / Таким образом, в условиях теоремы 1 при inf / (х) > —оо аЛГО- ритм 1 обеспечивает сходимость @.23). Методы вычисления ХПУ в которых используются значения / (д^+!), / (хп), ..., называют адаптивными. Поэтому все упомянутые выше методы являются адаптивными методами. В неадаптивных методах всю последовательность Х1У Х2у ... задают до начала вычисления последовательности х1, х2у ... и она не зависит от будущих значений / (л:1), / (л:2),... . При этом, естественно, процесс вычислений я1, х2, ... упрощается. Однако здесь не учитываются особенности конкретной минимизируемой функции /ив итоге такой способ выбора Хп может оказаться менее эффективным, чем в адаптивных алгоритмах. Один класс неадаптивных способов выбора Хп, обеспечивающих сходимость @.23) для метода @.26), дает теорема 2 и ее следствие. Теорема 2. Если градиент V/ (х) удовлетворяет условию Липшица с константой L и inf/(*)>¦ — оо, то метод @.28) удов- X летворяет неравенству min | V/ (*01| < {f (х1) - inf / (x) - 2-JL ? *J)/8 ? V @.33) Неравенство @.33) можно получить из неравенств / (xn+l) ^ ^ / (хп) — Хп8 || V/ (хп) || + 2-1 LX2n справедливых для всех /г. Следствие 1. Если выбранная последовательность Alf Я2, ... удовлетворяет условиям Xf > 0, ? ^ = оо, 2 ХI ? Я, == 0, @.34) то в предположениях теоремы 2 lim || V/ (хп) | = 0. п->оо Действительно, при условиях @.34) из неравенства inf / (х) > х > —оо и неравенства @.33) получаем lim || V / (к") || = 0. Для выпуклой функции / выбор Хп упрощается [153, 404]: Теорема 3. Если f — выпуклая функция о минимальным значением f (#*), то при выполнении условий @.35) для метода @.28) выполняется равенство lim/ (хп) = / (л:*). Действительно, из очевидного равенства х"+1 — х° = хп — х°+ Xnzn получаем неравенство || хп+1 — х* f < | х1 — х* f — 35
2 *< - *•) - (V/ И - **, *-*•) -Я,), которое 1=1 при условиях @.35) влечет равенство lim (V/ (xl)t xl — х*) = 0. Поэтому с учетом неравенства / (х{) — f (х*) < (V/ (х{), х1 — х*) (справедливого для выпуклой функции /) получаем lim / (х{) = i-*oo Очевидно условие Хп -> 0 практически невозможно реализовать на ЭВМ с конечной разрядной сеткой. Поэтому на практике часто используют методы как с постоянным шаговым множителем Хп = = вА,, так и некоторые промежуточные между адаптивными и неадаптивными [29, 32]. Теорема 4. Для метода @.28) при Хп = А» в условиях теоремы 2 выполняется неравенство min || V/ (х1) || < {f (xl) — inf / (х))/6кп + Ш2Ь. @.36) Действительно, неравенство @.36) следует из неравенства @.33) при %п = %. Следствие 1. За Л/, N ^ (f (х1) — inf / (х))/Х*, итераций по X методу @.28) при Хп = X найдем точку х? (i ^ Л^), удовлетворяющую неравенству || ?/ (х1) ||< X (X + L/2)/6. Поэтому постоянное значение X можно сохранять до момента «стабилизации» значения min || V/ (х1) || (или значения min / (х1)). issti—k,n t=n—k.n Затем X уменьшаем и опять сохраняем его постоянным до следующего момента стабилизации. 2. О методах второго порядка Чем сильнее отличается функция / (при удалении х от хп) от линейной функции F1% тем меньше эффективность градиентного метода @.26), таЙ как в таких случаях неравенству @.24) обычно можно удовлетворить лишь при слишком малых (близких к нулю) значениях Сп. Это вынуждает усложнять вычислительный процесс, привлекая более точные и более сложные аппроксимации для функции /. Например, если функция / достаточно хорошо аппроксимируется в окрестности хп функцией F2, F2 (х) в f (x«) + (V/ (*"), х - х") + 4" & - то в качестве хп+1 целесообразно выбрать точку хп, доставляющую наименьшее значение функции F2. Так как в случае невырожденного положительного гессиана V2xxf (xn) искомая точка хп должна являться решением системы VF2 {х") в V/ (хп) + VL/ (хп) (х« — х") = 0, @.37) 36
то получаем xn+i = x» = - [vL/ (х»)Г1 V / (хп). @.38) Такой метод называют методом Ньютона — Канторовича. Если в окрестности решения л:* гессиан VL/ (x) невырожден и начальное приближение х1 выбрано достаточно близко к #*, то метод @.38) имеет квадратичную скорость сходимости в отличие от геометрической скорости сходимости градиентных методов. Однако из-за необходимости решать систему @.37), трудоемкость вычисления хп+1 по методу @.38) значительно превышает трудоемкость вычисления д/Н-1 по методу @.26). Другая трудность реализации метода @.38) связана с необходимостью выбирать начальное приближение х1 достаточно близкое к %*, чтобы точка хп+1 не оказалась слишком далеко от хпу где вследствие нарушения близости функции / и ее локальной квадратичной аппроксимации F2 может оказаться / (х№~1)> > / (хп) вместо требуемого / (хп+1) < / (хп). Чтобы обеспечить сходимость к решению при любом выборе х1, предлагается вычислять хп+1 по формуле x"+i = хп + Кп (хп — хп) @.39) (кп можно вычислять, например, с помощью алгоритма 1). Чтобы обойти трудности, связанные с решением системы @.37), предложено ряд модификаций метода @.38). В одних случаях предлагается вычислять гессиан не во всех точках, а лишь в некоторых точках xni и оставлять его без изменений на промежуточных итерациях При Пс^ П < П/+1. В других случаях предлагается гессиан вообще не вычислять и рассчитывать хп+1 по формулам Я"*1 =*" —№?/(*"). @.40) где {Вп} — некоторая последовательность матриц, удовлетворяющая условию Вп -> V2xxf {xn). Найдены довольно эффективные формулы для пересчета Яп, Вп, при которых метод @.40) сохраняет хорошее свойство метода @.38) (т. е. имеет квадратичную скорость сходимости) и в то же время является менее трудоемким. Такие методы названы квазиньютоновскими, или методами с переменной метрикой (ввиду того, что операторы Вп можно интерпретировать как преобразование метрики в пространстве градиентов). Различные алгоритмы реализации квазиньютоновских методов разработаны также и для тех практически важных задач оптимизации, когда в силу отсутствия аналитического выражения для функции / (или по другим причинам) градиенты V/ (хп) не вычисляются и в расчетных формулах используются лишь вычисленные в предыдущих точках значения / (хп), f (xn-1), ... . В основе таких методов лежат те или иные способы аппроксимации неизвестных градиентов и гессианов с помощью конечных разностей. Эффективные способы построения матриц Вп предложены в методах оптимизации с растяжением пространства и в близком к ним 37
методе эллипсоидов. В этих методах на п-и итерации осуществляют «растяжение» пространства в некотором направлении гп, совпадающим с V/ (хп) или с разностью двух последовательных градиентов, т. е. где /?1/ап+1 (zn) — матрица растяжения пространства в направлении гп с коэффициентом растяжения а„+1 (элементы Гц матрицы Ra (zn) определяются равенствами [4043 [(а—1)г"г», 1ф\\ { _1J? + 1| .^ Если / имеет овражную структуру, то гп чаще ориентировано «поперек» чем «вдоль» оврага и поэтому данное последовательное растяжение пространства уменьшает овражную структуру функции / и тем ускоряет сходимость градиентного метода. Рассмотренный выше метод эллипсоидов, очевидно, является вариантом метода растяжения пространства со специальным выбором шагового множителя кп. 3. Методы сопряженных градиентов Векторы р1, р2, ..., pN называют сопряженными относительно симметричной, положительно определенной матрицы А, если (Ар*, pi) = о при i ф } и (Aft, p() ф 0. Метод сопряженных градиентов состоит в последовательной минимизации функции / (#) = -^(Ах, х) + (g, x) по направлениям р1у т. е. начиная с произвольного х1 ? RN, вычисляем *n+i = хп + кпрп, Хп = arg min / (xn + %рп). @.41) А Утверждение 14. Метод сопряженных градиентов минимизирует функцию / (х) = -у (Ах, х) + (gy x) за N итераций, т. е. xN = х* = arg min / (х). к Действительно, если ввести новое скалярное произведение (х, у)хй (Ах, у), то метод сопряженных градиентов оказывается эквивалентным минимизации / (х) = -у (*• *)i+ fe x)i покоординатным направлениям. Распространение этой идеи на случай нелинейной функции / приводит к расчетным формулам @.41) при рп+\ = || V/ (jcn+1) ||2 рп/ || у^ (Хп) | 2 _ V/ (^+!) @.42) (или при i 38
= Vf (Xn+l) — Vf (X% Sn = Xn+l — Xn, @.43) Утверждение 15 [470]. Метод @.41), @.42) и метод @.41), @.43) обеспечивают квадратичную скорость сходимости к единственной точке минимума х* сильно выпуклой функции / с липшицевым гессианом. Если Кп вычислять приближенно, то рп+1 рекомендуется вычислять по формулам = Г (V/(*"+'), Р») _ [ llV/OOf J Матрицы Вп можно вычислять также по более общим формулам» vn = sn/qn*sn — Bnqn/qn*Bnq'\ C?R. Данные методы можно интерпретировать как варианты квазиньютоновских методов. 4. О методах штрафов в задачах с ограничениями Задачу минимизации функции /0 при дополнительных ограничениях можно провести с помощью метода штрафов к задаче безусловной оптимизации, которую затем можно решать упомянутыми выше методами безусловной оптимизации. Для этого выбираем некоторую вспомогательную функцию h (x) (функцию штрафа), которая равна нулю, если х ? X и увеличивается с удалением х от X (например, С > 0, /,+ (*) = ft(x), если/, (х) > 0 и ft (х) = 0, если Д (х) < 0) и затем, минимизируя вспомогательную функцию / (х) = /0 (л:) -f + h (x)f находим я* (С) = arg min / (л:). Нетрудно убедится в том, X что при весьма общих предположениях х* (С) -*х* = arg пнп /о (х). С-*оо х?Х Если в качестве Л (х) выбрать недифференцируемую функцию вида 39
то во многих случаях получаем х* (С) = х* при сравнительно небольших значениях С (и это весьма существенно, так как увеличение С обычно увеличивает овражную структуру функции / и тем уменьшает эффективность ее минимизации упомянутыми градиентными методами), Утверждение 16. Если функции /0, ft выпуклые и С^ max u*f где и* — множители Лагранжа для функции /0 (х) + 2 uJi (*)> т0 для hx имеем ** (С) = ** = arg min f{x). Действительно, если функции /Oi fa i?$~~ — выпуклые, то (х*, w*) — седловая точка для функции Лагранжа /0 (х) + 2 uift (x)> т- е- имеем неравенства fo(**Xfo(x)+ 2 «ГМ*Х/о(*)+ 2 которые вместе с равенством Л3 (а:*) = 0 дают х* (С) = х*. Однако функция hx (x) недифференцируема и для ее минимизации требуются специальные методы (см. минимизация негладких функций). Ряд методов о гладкими штрафами описан в гл. V. 5. О методах последовательных приближений для задач условной оптимизации и минимизация негладких функций Как отмечалоаь выше в методах последовательных приближений * вычисляют (k + 1)-е приближение xk+l с помощью решения xk+l для упрощенной задачи оптимизации xk+l =» arg min Fk (x). x?Xk Если выбрать A^= X (или Хг (xk, lk)), Fk = Ft (xk, •) и положить » A _ X) xk + №+\ К = arg min f0 (A — K) xk + то получим вариант метода условного градиента. Если выбрать Х*= Х2 (xkf lk) (или Хг (х\ Kk))t Fk = Fx (xk, •) и положить хк+] = arg min | x — xk^x f, то получим вариант хех метода проекции градиента. Если положить хп+' = &+\ Xk = Xz (xk, К, eif) (] X9Fk = f9 то получим метод покоординатного спуска (ik = k — - ENT (V/г)). 40
Если в случае X = {х\ fL (х) ^0, l? J) выбрать (см. с. 22) X* = {х | U (xk) + (V/< (х% к - *€*.(**, **)}, С, Л max/, (A F* = ^ (*\ •). то получим вариант метода линеаризации и метода возможных направлений, выбрав ak = sign (Ck — eXft)+ [(а, - 1) V/o (**) - а* получим вариант квазиградиентного метода. При негладкой аппроксимации /^ (х) = ^з (^Лэ ^) имеем ' % max (^(дс*), г) max F8( и поэтому можем вычислять направления убывания / и направления наискорейшего убывания г (хк) = arg min F\ {xk> г). Если вычис- ление г (jc*) затруднительно (как, например, в стохастическом случае / (я) Д M&F (х, со)), то удобнее использовать метод xk+] = = х*-ХкЫ I 6, ||, |, = I (F3, х*) Д S ^ И 4. fa 6 9, (**, 0 (в стохастическом случае [153] lk = 6ft (ю*), Ma)fcfe ((о) -> ? (/, **)), который для выпуклой задачи обеспечивает / (хк) -> / (х*) при ^ > 0, оо со \ 2 А,* == оо, ^ ->0, ( V ^ < оо ], для слабовыпуклой (при допол- нительном условии %k+\IK -> 1) имеем / (дгл) ->• / (а:*) (в стохастическом случае полагаем xk+l = л:0, если || хк+х (со) || > С [272]), а для /, касательных к ^з, обеспечивает | z (xk) \\ < в [32]. В [32] получены условия сходимости для конечных Kk = X, поскольку на ЭВМ трудно обеспечивать %k -> 0. Методы развязывающей декомпозиции для общей задачи ** = argmin/0(A;), хех Хй{х = (хъ х2) | U (х) = 0, / е Л, /< W < 0, / С У2, ^2 € Х2} @.44) основаны на следующем утверждении [23]. Утверждение 17. Если для всех х2? Х2и всех / из множества 33 существенных ограничений &в cz Jx U J2 \ {0} вспомогательные функции /J, Bif g n Bo удовлетворяют условиям %(x)ug{x)-B>{> [х)йШ-В,{хг, C2> /у,(- 8(x), / *))sbO, 0, @.45) 41
то оптимальное значение х2 равно arg min Во (х2, В0 (x2i 0), 0) | Bt (x2i B° (лг2, 0), 0) = 0, i ? 9S. @.46) хг<=Х2 Задача @. 46)обычно имеет существенно меньшую размерность, чем задача @.44). Несколько большую размерность имеет эквивалентная задача минимизации штрафной функции или функции F(x)&max{0t max|щ — gj(х)|, max ft{x))> яри связях [22, 24] Функцию Б^ называют развязывающим оператором для функции fi по переменной #,_ на множестве Х2 относительно функции fa . Ее аппроксимация 5?, обеспечивающая в точке хк нулевые значения всем производным до s-ro порядка по всем направлениям в пространстве переменной хг для функции ф^, определяет в точке хк асимптотически развязывающий оператор s-ro порядка — В?(х21 з foM обладающий следующим важным свойством [23]. Утверждение 18. />з (х) = 0 =» /, (х) = Bf (x.) + 0A^ — ^ f). Поэтому естественно выбирать в качестве указанных выше Хк и Т7* соответственно Х2 и В*(х2)&(l-ak)Bs0(х2) + ? max {0, signB\(x2)} В](х2) я вычислять xk+l с помощью известных методов недифференци- руемой оптимизации (малая размерность вектора х2 позволяет здесь эффективно воспользоваться методами растяжения пространства). Приведем общий Л3-алг0Ри™- Начало: выбираем произвольные х\ g Х2, положительные числа %ъ Си С2 и С3 и полагаем k = 1. Основной цикл: вычисляем х\+х для ^ — максимальное число из последовательности удовлетворяющее неравенству 42
Утверждение 19. Если /0 (х*) > —оо и ft являются функционалами равномерного роста s-ro порядка на Х2 (например, ограничены все производные Д- до (s + 1)-го порядка по всем допустимым направлениям), то подпоследовательность {х\1} сходится за конечное число итераций k = k (г) к е-экстремальному решению иъ s-ro порядка (т. е. производная 5х-го порядка функции /0 в точке иъ по любому допустимому направлению не меньше — es+1+s» для всех s1== О, s). Реализуемые ВЬ-адекватные модели. Выше уже отмечалось, что при решении практических задач функции ft обычно являются всего лишь некоторыми приближениями к соответствующим либо неизвестным, либо слишком сложным для современных ЭВМ «реальным» функциям Ji (т. е. исходная математическая модель обычно либо неизвестна, либо нереализуема). Поэтому актуальной является проблема выбора таких приближений ft (т. е. формулировки такой задачи оптимизации), чтобы, во-первых, ее приближенное решение Xf не слишком отличалось от искомого Xj и, во-вторых, существовала бы практическая возможность вычислить х] в требуемые сроки на имеющейся ЭВМ. Одним из инструментов для выбора и адаптивного уточнения таких функций является следующая теорема. Теорема о реализуемой ВЬ-адекватной модели* Если неизвестные (или нереализуемые) функции U> ft в реальной задаче оптимизации аппроксимированы реализуемыми функциями /0, fh а развязывающие операторы Вь аппроксимированы функциями Bh удовлетворяющими на приближении х к решению х* условиям I fi (*i, х%) — Ъ (*i> *«) I < 8i/ (/о, *i) й ви iff хг), I fi (x) + Bt {х2, /Уз (х)) — /, (х19 х2) —~В{ (х2, /уз (хъ х2)) | < <бз/(/, хг) 3 « 2 e/' (f* XJ ^ 8t> то функчия BtixJbftOd, *,) + В,(*„ fofi» х2))-Вс(х2У 0) определяет реализуемую ВЬ-адекватную модель для ~fit /n. е. удовлетворяет неравенству Эта теорема указывает пути целесообразного перераспределения вычислительного ресурса ЭВМ как на уточнение х, так и на уточнение / с целью быстрейшего уменьшения и/0 (х) и б0 (бу). Для этого 43
очевидно достаточно находить зависимость скорости убывания величин 6ц от объемов вычислений при уточнении х, f и В и дальше перераспределять ресурсы на уточнение либо х, либо / или В в зависимости от того, где обеспечивается наиболее быстрое убывание /0, б0, а значит и /0. Практическая эффективность таких алгоритмов зависит от удачного выбора множеств 33t так как этим определяется и объем вычислений при разрешении системы /^ (х19 х2, и) = 0 и скорость приближения ^ к д;*. С этой целью часто выбирают множества #2 ^k)-4) U с небольшими значениями е^>0и строят аппроксимации обратной функции (/у3У~1 (или обратного гессиана) и развязывающих операторов в некотором выбранном параметрическом классе функций вида / (pki Зз> ху иу /уз (х, и)). Параметры рк оценивают и уточняют по вычисленным значениям хг, х2, ..., xk. В случае аппроксимации обратного гессиана удобно использовать матричное тождество (A.+KL C\-i _(A3 + A3CMDA3 -A3CM\ \ D А2) - \ — MDA3 М )' где А3 = AT1 {E-K(E + LAT'KV1 LAT1) = (Ах + KL)'\ которое получаем как следствие утверждения 17 для линейных /. С помощью @.47) получаем эффективный Л6-алгоритм для вычисления (псевдо)обратной матрицы Л" к матрице А == {ац, i = = 17^}: ZQ = E, С>0, где jk - arg min ф (/), или ]k = arg [ф (/) < С], @.48) 9(/,) = |Zwl или Ф(/,) = |(аЧ 2^) Г1. Утверждение 20. Если на некотором шаге k < п задача @.48) не разрешима, то Zk является С-псевдообратной к Л, иначе Zn = = А~~\ а при v = arg [{Е + (А1 — Е) Zk) v = (Л1 — ?) z*f а] у= аг/, 0,^ = 0] 44
имеем Ошибки округлений в Zn можно существенно уменьшить с помощью Л7-алгоритма: В,+1 = Bk + (Е - B,AfBk> x*+i = * + (? _ BjAf x\ обеспечивающего при /, /^ п быструю сходимость Bk ->¦ Л", xk-+ -> A~~xb согласно следующим утверждениям [27]. Утверждение 21. Если Ьп+\ = Ъп + В*пЬПУ Ьо = Ь, В А = —С, Л* = 6 — Сх, то Следствие. Если Во= Zn, С = Е — B0At bo= b, k + C*kBk, = Bk + C*kBk, xW = xk + C2V, TO = Л^1 + C2k+lA~\ Подбором i, j в Л7-алгоритме уменьшается влияние ошибок округлений.
Часть I МЕТОДЫ ОДНОМЕРНОЙ И БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ Глава 1 МЕТОДЫ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ 1.1. Методы Фибоначчи Задача 0. Найти arg min /0 (х) для заданной функции /0 * х€[ао,Ьо] R1 -> R1 и заданного отрезка [aOi b0]. Предположение 0. Функция /0 такова, что на отрезке [а0, Ьо] точка ее локального минимума х* является точкой абсолютного минимума /0 на отрезке [я0, Ьо]. Методы Фибоначчи являются оптимальными (для класса функций /0, удовлетворяющих предположению 0) по количеству вычислений минимизируемой функции /0 при заданной точности вычисления х*. I. Основной алгоритм Алгоритм 1 Начало. I. Выбрать число е > 0 — точность вычисления точки минимума функции /0 на отрезке [а0, W; положить Fx = = /Ъ= 1. II. Положить / = 1. III. ВЫЧИСЛИТЬ ЧИСЛО F/4-2 = ^/+1 + Fj- IV. Если F/+i < — (Ьо — а0) < Fj+2, то положить т = / и перейти к шагу V; иначе положить / == / + 1 и перейти к шагу III. V. Вычислить точки У а + п(Ь аУ VI. Если /о (Ух) < /о (Zi), то положить аг = а0, Ьх == гх и перейти к шагу VII; иначе положить ах~ уъ bx= b0 и перейти к шагу VII. VII. Положить k = 1. Основной цикл. VIII. Если /0 (yk) < /о (zk), то вычислить точку yk+i = а* + Ьл — г/л, вычислить значение /0 (^+i) и перейти к шагу IX; иначе положить yk+\ = zk, /0 (#*+i) = = /о fe) и перейти к шагу X. IX. Положить zk+{ = ук\ /о (zk+\) = /о Ы и перейти к шагу XI. X. Вычислить точку Zfe+i = ak+ bk — Z/j, вычислить значение /о (zA+i) и перейти к шагу XI. 46
XI. Если f0 (yk+]) < /о (z* + i), то положить ak+{ = ak, bk±i = гл-4-1 и перейти к шагу XII; иначе положить a,k+\ » *= Уь+и bk+\ = bfe и перейти к шагу XII. XII. Если k < т — 1, то положить k «¦ * + 1 и перейти к шагу VIII; иначе положить х*= (а,„+ ЬтI2 и прекратить вычисления. Теорема 1. Если^ выполнено предположение 0, то для произвольного г > О точка х*, порожденная алгоритмом U удовлетворяет неравенству \ х*— х* | ^ 8. Замечание 1. Недостатком алгоритма 1 является то, что погрешности в вычислениях точек yk, zkjvioryr столь быстро накапливаться, что ожидаемая точность решения будет существенно отличаться от реальной. Следующая модификация метода Фибоначчи менее чувствительна к погрешностям вычислений. 2. Модификация метода Фибоначчи Алгоритм 2. Начало. Шаги I—IV такие, как в алгоритме 1. V. Вычислить точки m-f2 VI. Если /о (#i) ^ /о l^i), то положить аг— а0, Ьг— гх и перейти к шагу VII; иначе положить аг= уъ &!== Ьо и перейти к шагу VII. VII. Положить k = 1. Основной цикл. VIII. Если /0 (yk) < /0 (zk), то вычислить точку Ук+i -flft+ вычислить значение f0 (jJk+\) и перейти к шагу IX; иначе положить = hi /о (Рл+О = /о (h) и перейти к шагу X. IX. Положить yk+i = гк, /о (^/?h-i) =/о (^) и перейти к шагу XI. р X. Вычислить точку zk+\ == я* Н ^z±tL (^0 _ ао)> вычислить значение /0 fe+i) и перейти к шагу XL XI. Если /0 (уь±х) < /о (^+i), то положить ak+{ bk+\ = 6fe и перейти к шагу XII; иначе положить a*+i = fe bk и перейти к шагу XII. XII. Если k < т — 1, то положить А = й + 1 и перейти к шагу VIII; иначе положить х*= (ат+ Ьт)/2 и прекратить вычисления. 47
Точка х* удовлетворяет неравенству | х* — х* | ^ е, если выполнено предположение 0. Библиографические указания. При написании параграфа использовались pai» боты [194, 358, 378]. 1.2. Метод золотого сечения Задача 1. Найти arg min /0 (л:) для заданной функции х?[ао,Ьо) f0: Д1 -> Д1 и заданного отрезка [а0, Ьо]. Предположение 1. Функция /0 такова, что на отрезке [а0, Ьо] точка ее локального минимума #* является точкой абсолютного минимума /о на отрезке [аОу Ьо]. Алгоритм 1 Начало. I. Вычислить константу а = C — ]/5)/2 (а ^ ^ 0,3819). II. Вычислить точки и значения /0 (уО, /0 (Zi)- III. Если /о (#х) ^ /о BX), то положить ах= ао> 6Х= гх -и перейти к шагу IV; иначе положить аг= ylt bx~ bo и перейти к шагу IV. IV. Положить k = 1. Основной цикл. V. Если /0 (#fe) ^ /0 (zk), то вычислить yk+\ = ak + bk — yk1 /о (г/л+i) и перейти к шагу VI; иначе положить yk+\ = zfe, /о (y^-fi) = /о (zk) и перейти к шагу VII. VI. Положить и перейти к шагу VIII. VII. Вычислить зл+1 = ak + bk — zk, f0 (zk+\) и перейти к шагу VIII. VIII. Если /о {Ук+\) < /о fe-f i), то положить ak+\ = аЛ, bk+\ = г/г-f-i и перейти к шагу IX; иначе положить a,k+\ = = yk+\, bk+\ = bk и перейти к шагу IX. IX. Вычислить хЛ= (а/н-i + ^+р/2. X. Положить k = /г + 1 и перейти к шагу V. Теорема!. Если выполнено предположение 1, то последовательность {xk}?+i, порожденная алгоритмом 1, такова, что lim /0 (xk) = /0 (х*); lim | xk - х* \ - 0. Замечание 1. Длина отрезка [ak9 bk\3C, построенного по методу золотого сечения, на 17 % больше длины отрезка lakibk]<z>H6, построенного по методу Фибоначчи. Однако метод золотого сечения обладает тем достоинством, что на каждой его итерации приходится делать меньше вычислений. 48
Замечание Г. Иногда на практике комбинируют оба метода: первые шаги делают по методу золотого сечения, а когда оптимум достаточно близок, вычисляют число т и переходят к методу Фибоначчи. Библиографические указания. При написании параграфа использовались работы [194, 358, 3781. 1.3. Оптимальный метод поиска экстремума унимодальных функций, удовлетворяющих условию Липшица Задача 1. Найти arg min /0 (х) для заданной функции х?[ао,Ьо) f0: Rх -> Л1 и заданного отрезка [aOf Ьо]. Предположение 1. (i) — функция /0 определена, непрерывна и удовлетворяет условию Липшица с константой у на интервале [а0, boh (И) — функция /о унимодальна, т. е. имеет на отрезке [aOf b0] единственную точку минимума, слева от которой /0 строго убывает, а справа строго возрастает с ростом х. Приведенный ниже алгоритм является оптимальным для класса функций, удовлетворяющих предположениям 1, т. е. дает наименьшее гарантированное значение длины интервала, содержащего минимум функции /0, после вычисления ее в заданном числе N точек. В k-й итерации алгоритма в начале находят (используя константу у и значения функции /0 в точках хъ х2, ..., xk~\) интервал локализации [аъ Ьг] точки минимума функции /0, затем внутри интервала [аи ftj — точку xk, в которой следует вычислить функцию /0. При вычислении интервала локализации учитывается конечность константы Липшица у, что в практических задачах приводит к значительному выигрышу (по сравнению, например, с методом Фибоначчи, который является оптимальным на классе унимодальных функций при у = °°)- Алгоритм 1 Начало. I. Задать константу N — число вычислений функции /0. II. Найти числа Фибоначчи 7^, jFi, ..., Fn+u определяемые соотношениями Fo = Fi= 1> Fn+i = Fn-X + Fni n = 1, 2, ... . III. Положить ax= a0, bx= b0. IV. Положить k = 1. Основной цикл. V. Если k = 1, то перейти к шагу VIII; иначе перейти к шагу VI. VI. Вычислить /2_i= min /о(*<)- 0-1) l^i^k— 1 VIL Если значение /t_i в A.1) достигается в двух соседних точках хмг, Xk2, kx 6 [1 : (k — 1)], k2 б [1 : (k — 1)], таких, что xkl < 49
<C Xk2, то положить аг= я*,, Ьг= Xks и перейти к шагу VIII; если значение /?_i в A.1) достигается в одной точке Xklt К (: И ] (А — 01» то положить x/Ui = Xk, и перейти к шагу X. (Последующие шаги VIII—IX алгоритма соответствуют той ситуации, когда внутри интервала [аи Ьг] не проводились вычисления функции /о)- VIII. Если k = N + 1, то прекратить вычисления (в этом случае точка минимума функции /0 принадлежит интервалу [аъ fej, длина которого не превышает гарантированного значения (Ьо — — ao)/F/v\ иначе перейти к шагу IX. IX. Вычислить точку xk следующего вычисления функции /0 Xk = а1 + (^1 — al) Fu (или xk = ах + (Ьх — аг) FN-iJFN-k вычислить /о (xk)\ положить k = k + 1 и перейти к шагу V. (Шаги X—XVIII алгоритма соответствуют той ситуации, когда внутри интервала локализации [аъ bj точки минимума существует точка xl-u в которой на предыдущих итерациях проводилось вычисление функции /о). X. Если функция /о не вычислялась слева и справа от точки х\-\ (такой случай имеет место при k = 2), то положить ах = а0, &х= Ьо и перейти к шагу XIV; если для всех i ? [1 \ (k — 1)J выполняется неравенство xl—i ^ xt (т. е. если функция /0 не вычислялась слева отточки л^-i), то найти точку Xk,, k3 g [1 i (k — 1I, Xk, Ф ^~i, ближайшую к точке х\-\ с правой стороны, положить bL = хкз и перейти к шагу XI; если для всех / ? [1 i (k — 1)] выполняется неравенство xiLi ^ ^ xt (т. е. если функция f0 не вычислялась справа от точки лг/Ui), найти точку Xk4t t4f [li(ft — 1)], Xk4 ф хЦ~и ближайшую к точке а:Х 1 с левой стороны, положить ах = xk4 и перейти к шагу XII; если функция /0 вычислялась слева и справа от точки *?_lf то найти точку xkb, k5?[l i (k — 1I, xkb ф xl-u ближайшую к xl-\ слева, и точку xk(i1 kQ g [1 : (k — 1I, xk, ф jcJUi, ближайшую к x*k-\ справа, положить аг = Xkb, bx = хкл и перейти к шагу XIII. XI. Найти интервал локализации [аъ &J точки минимума функции /о (после вычисления функции /ов& — 1 точках хъ х2, ...9Xb~i) по правилу аг = а0; и перейти к шагу XIV. XII. Найти интервал локализации [аъ Ьх\ точки минимума функции /о (после вычисления функции* /0 в k — 1 точках xlf #2> •••> ^a-i) 50
по правилу 0i = «1 + -у (/о у и перейти к шагу XIV. XIII. Найти интервал локализации [аи Ь±] точки минимума функции /о (после вычисления функции /0 в k — 1 точках хи хъ ... ) по правилу и перейти к шагу XIV. XIV. Если k = N + 1, то прекратить вычисления (в этом случае точка минимума функции /0 принадлежит интервалу [аъ Ьг]9 длина которого не превышает гарантированного значения (Ьо — — o>o)IFn)\ иначе перейти к шагу XV. XV. Вычислить XVI. Вычислить f 1 — A — ck) FN-k+xlFN-k+2, если 0 < ck < V2; [CkFN—k+l/FN—k- XVII. Вычислить точку k ' \ckFN-k+\IFN-k+2, если V2 < ck < 1. XVIII. Вычислить значение /0 (xk), положить k = k + 1 и перейти к шагу V. Теорема 1. Пусть выполняются предположения 1 и [аи Ьг] — интервал локализации точки минимума функции /о» вычисленный ek-й итерации (k = 1, ..., N). Тогда за оставшиеся N — k + 1 итераций алгоритм 1 приводит к интервалу локализации точки мини- мума функции Д>, длина которого не превышает значения (Ьх — ах) х X SN-k+u где (max {A — ck)/FN-k+u ckIFN-k), 0 < ck < V2; s J V2 2 < ck < 1, если внутри интервала локализации [аъ Ьг] точки минимума вычисления функции /о проводились; внутри интервала локализации [ai9 bx] точки минимума вычисления функции /о не проводились. Замечание 1. Если у = сю, то алгоритм 1 дает оптимальный гарантированный результат, равный (Ьо—- а0) Т^+ь т. е. такой же, 51
как и метод Фибоначчи. На практике учет конечности значения константы Липшица у в алгоритме 1 приводит к значительному выигрышу (по сравнению с методом Фибоначчи), который получается за счет специфического построения интервала локализации [аъ bj точки минимума на каждой итерации. Библиографические указания. Параграф написан на основании работ [386, 389]. 1.4. Оптимальный метод поиска экстремума выпуклых функций Задача 1. Найти arg min f0 (x) для заданной функции €[6] *€[ао,6о] /0: J?W R1 и заданного отрезка [аОу Ьо]. Предположение 1. Функция /0 выпукла на интервале [aOt bo\. Приведенный ниже алгоритм является оптимальным на классе выпуклых функций, т. е. дает наименьшее гарантированное значение длины интервала, содержащего минимум функции /0, после вычисления функции /0 в заданном числе N точек. В k-ik итерации алгоритма по известным значениям функции /0 в точках хи х2, ..., Xk-\ строится интервал локализации [#_, я+1 точки минимума функции /0, затем внутри интервала локализации [х_, х+) находят точку хь в которой следует вычислить функцию /0. Алгоритм 1 Начало. I. Задать константу N — число вычислений функции /0. II. Найти числа Фибоначчи Fo, Fu ..., /**лг+ь определяемые соотношениями F0 = F1^l1 Fn+] = Fn^x + Fny д=1, 2, .... III. Положить k = 1. Основной цикл. IV. Если k = 1, то положить*- = а0, jc+= bo и перейти к шагу VII; иначе перейти к шагу V. V. Вычислить fl_t = min fo(xt). A.2) 1</А1 VI. Если значение fl—i в A.2) достигается в двух соседних точках xkiy xkz, К ? П ' (k— 1I, k2 ? [1 : (k — 1)], таких, что Xkx < xki, то положить х- — Xko x+ —- xkt и перейти к шагу VII; если значение/^-i в A.2) достигается в одной точке Xklf К ? ? [1 : (k — 1)], то положить х?-\ = **, и перейти к шагу X; если значение fl-\ достигается в трех соседних точках **„ хкш, xk3t кг?[1:(к-\)]у Л,е[1:(*-1)Ь *3€[1 : (*— 1I, таких, что Xkt<. *k2< Xka, то прекратить вычисления (в этом случае все точки отрезка [л:^, Xk3] являются решением задачи 1). (Шаги VII—IX соответствуют той ситуации, когда внутри интер- 52
вала локализации [л:_, х+] точки минимума не проводилось вычисление функции /о). VII. Если k = N + 1, то прекратить вычисления (в этом случае точка минимума функции /0 принадлежит интервалу [л;_, лц_], длина которого не превышает гарантированного значения (Ьо — — ao)/FN)\ иначе перейти к шагу VIII. VIII. Вычислить точку xk следующего вычисления функции /0 хк = х- + (л:+ — х-) FN-k+\IFN-k+2' IX. Вычислить /о (xk), положить k = k + 1 и перейти к шагу IV. (Шаги X—XX соответствуют той ситуации, когда внутри интервала локализации U_, х+] точки минимума существует точка xl—u в которой на предыдущих итерациях проводилось вычисление функции /о). X. Если справа от точки xl-\ существуют по крайней мере две точки, в которых функция /о вычислялась на предыдущих итерациях, то вычислить точку где л^4, x*6, fe4 € П : (Л — 1I, Л5 б П : (k — 1)], ближайшие справа к jci 1 точки, такие, что jcjS i < л:^ < Xkb> и перейти к шагу XIII; иначе перейти к шагу XI. XI. Если справа от точки xjj_i существует только одна точка х^, kk g [1 : (k — 1)], (xl-\ < XfeJ, в которой функция /0 вычислялась на предыдущих итерациях, то положить лц. = х^ и перейти к шагу XIII; иначе перейти к шагу XII. XII. Если справа от точки xl—i не существует точек, в которых функция /о вычислялась (т. е., если xt ^ xl-u i = U ... ..., k — 1), то положить х+ = Ьо и перейти к шагу XIII. XIII. Если слева от точки xl— \ существуют по крайней мере две точки, в которых функция /0 вычислялась на предыдущих итерациях, то вычислить где л:Лв, хЛт, fce ? [1 : (/& — 1)], ^7 € f 1 : (* — 1I, ближайшие слева к Xk~\ точки, такие, что xl-\ > ^6 > xk,y и перейти к шагу XVI; иначе перейти к шагу XIV. XIV. Если слева от точки xl-\ существует только одна точка Хклу kQ ? [1 : (k — I)], (xk-.\ > XkX в которой функция /0 вычислялась на предыдущих итерациях, то положить х_ = xk, и перейти к шагу XVI; иначе перейти к шагу XV. 53
XV. Если слева от точки *t_i не существует точек, в которых функция /о вычислялась (т. е., если xt ^ хъ-\% i = 1, --м * — О» то положить л;_ = а0 и перейти к шагу XVI. XVI. Если & = N + 1, то прекратить вычисления (в этом случае точка минимума функции /0 принадлежит интервалу U__, я+], длина которого не превышает гарантированного значения (Ьо— ао)'/Рн)\ иначе перейти к шагу XVII. XVII. Вычислить XVIII. Вычислить^ A — A — ck) FN-k+i/FN-k+2, если 0 < ск < V2; k \ckFN-k+\/FN-k+2, если Va < с* < 1. XIX. Вычислить точку л:Л следующего вычисления функции /0 XX. Вычислить значение /0 (хк), положить k =» fe + 1 и перейти к шагу V. Теорема!. Пусть выполняются предположения 1 и U_, X+] — интервал локализации точки минимума функции /0, вычисленный в k-й итерации (k = 1, ..., W). Гог^а за оставшиеся N — k + I wme- раций алгоритм 1 приводит либо к интервалу, каждая точка которого является решением задачи 7, либо к интервалу локализации точки минимума функции /0, длина которого не превышает значения (х+ — x~)sN—k+u где (max {A - ck)/FN-k+u ckIFN-k), 0 < ck < V2; SN~k+l e (max [(\-ck)/FN-* ck/FN_k+l}t V2<^< 1, если внутри интервала локализации [х_, л:+] /по^л:« минимума вычисления функции /о проводились; внутри интервала локализации [#_, л:+] точки минимума вычисления функции /о яе проводились. Библиографические указания. Параграф написан на основании работ [387, 389). В работах [9, 10] предлагаются оптимальные алгоритмы поиска минимума функций с ограниченной второй и третьей производной. В работе [499] рассматривается алгоритм минимизации на заданном отрезке многоэкстремальных функций, являющихся суммой вогнутой и выпуклой функций (в этот класс входят, например, функции с ограниченной второй производной). 1.5. Методы типа Ньютона Задача 0. Найти arg min /0 (*) Аля заданной функции /0: Я1-* R1 и заданного отрезка [а0, Ьо], 54
Предположение 0. Функция /0 дважды непрерывно дифференцируемая на [оо, Ьо] и \fo(x)—fo(y)\^.a\x — y\, a < оо. 1. Метод Ньютона Идея метода Ньютона заключается в том, что функция /0 (х) линеаризуется в окрестности хк и находят точку хк+[, в которой линеаризованная функция превращается в ноль. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х° ? [аОу Ь0Ь положить k = 0. Основной цикл. II. Вычислить /о (xk) — первую производную функции /о в точке xk. III. Если /о (хк) = 0, то прекратить вычисления (в этом случае точка хк является стационарной точкой функции /0), иначе перейти к шагу IV. IV. Вычислить /о (хк) — вторую производную функции /о в точке xk. V. Вычислить следующее приближение /о (**) VI. Положить k == k + 1 и перейти к шагу II. Теорема 1. Если выполнено предположение 0 и, кроме того, (i) — — /о (Яо) /о (Ьо) < 0; (и) — для всех х ? [а0, Ьо] — fl {х) > 0; (ш) — для всех х б [а0, Ьо] выполняется неравенство mo последовательность {jc*}|Lo, порожденная алгоритмом I, сходится к стационарной точке х функции /0 с квадратичной скоростью, т. е. е*?[л;*, ж]; т)^[9*. х). 2. Метод секущей Метод секущей является модификацией метода Ньютона (алгоритма I), в котором вместо второй производной /" (xk) используется ее разностная аппроксимация. 55
Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение положить k = 0. Основной цикл. II. Вычислить /о (хк) — первую производную функции /о в точке хк. III. Если f'o (xk) = 0, то прекратить вычисления (в этом случае точка хк является стационарной точкой функции /0), иначе перейти к шагу IV. IV. Вычислить следующее приближение V. Положить k = k + 1 и перейти к шагу II. Теорема 2. Если выполнены все условия теоремы I, то последовательность [xt}kLot порожденная алгоритмом 2, сходится к стационарной точке х функции /0 со сверхлинейной скоростью lim _ х | г5^ т — решение уравнения /2= / + 1 (т = A + ]/5)/2 ^ 1,618). Библиографические указания. При написании параграфа использовались работы [425, 49]. 1.6 Методы касательных Задача 0. Найти arg min /0 (х) для заданной функции /0: R1 -> R и заданного отрезка [а0, Ьо\. 1. Случай дифференцируемой функции Предположение 1. (i) — функция /0 непрерывно дифференцируемая на отрезке [а0, h\\ (й) — функция /0 выпукла на отрезке [а0, ib0J; (iii)-fo(ao)<O и fo(bo)>O. Алгоритм 1 Начало. I. Выбрать число е>0 — точность вычисления точки минимума; положить k == 0. II. Вычислить производные /о (а0) и /о F0) функции /0 в точках а0 и Ь0) соответственно. Основной цикл. III. Найти точку xk — корень уравнения k (ah) + /о (ак) (х - ak) = /0 (bft) + /0 (Ьк) (х - ЙЛ). IV. Вычислить /о (х*). 56
V. Если fo(xk) = 0, то положить х*= х* и прекратить вычисления; иначе перейти к шагу VI. VI. Если /о (хк) < О, то положить ак+\ = xk, bk+i = Ьк и перейти к шагу VIII; иначе перейти к шагу VII. VII. Если /о (хк) > 0, то положить ак+\ = aky bk+i = xk и перейти к шагу VIII. VIII. Если bk+\ — я/4-1 ^ е» то положить х* = (a*+i + bk+\)/2 и прекратить вычисления; иначе перейти к шагу IX. IX. Положить k = k + 1 и перейти к шагу III. Теорема 1. Если выполняются предположения 1, то для последовательности {хкУк=о, порожденной алгоритмом 1, справедливо lim/0(A:fe)== min fo(x). k-+ 00 x?[a0tb0] e-vO Если, кроме того, точка минимума х* единственная, то lim xk = #*. /г-»-00 е-»-0 2. Случай недифференцируемой функции Предположение 2. (/) — функция /0 выпукла на отрезке [а0, &0]; («I - U («о + 0)< 0, /о ft, - 0)< 0. Алгоритм 2 Начало. I. Задать число г > 0 — точность вычисления точки минимума функции /0; положить k = 0. II. Вычислить правостороннюю Д> (я0 + 0) и левостороннюю /„ (fc0 — 0) производные функции /0 в точках а0 и Ьо соответственно и положить Yo = /о (я0 + °)> Ро= /о (Ьо— 0). Основной цикл. III. Найти точку xk— корень уравнения /о (в*) + ?*(*- ^) - /о («>) + Р* (* - W- IV. Вычислить правостороннюю /о (я* + 0) и левостороннюю ft> (xk — 0) производные функции /0 в точке xk. V. Если /о (х* + 0) /о (^ — 0) < 0, то положить л:* == xk и прекратить вычисления; иначе выбрать любое число 8k из отрезка l/o (^ft — 0), /о (*Л + 0)J и перейти к шагу VI. VI. Если бЛ< 0, то положить a^+i == ^, v+ ^ + = bkf P/e-j-i = Р^ и перейти к шагу VII; иначе положить ак+\ = = aftf 7ft+i = Yfe, бл+i = **, pfe+i = 6fe и перейти к шагу VII. VII. Если bk+i — a^-fi ^ е, то положить л:*= (ак+\ + bk+i)/2 и прекратить вычисления; иначе перейти к шагу VIII. VIII. Положить k = k + 1 и перейти к шагу III. Теорема 2. Если выполняются предположения 2, то для последовательности {x*}?=o, порожденной алгоритмом 2, справедливы утверждения теоремы 1. Библиографические указания. Параграф написан на основании работы [194]. 57
1.7. Метод квадратичной аппроксимации Задача 1. Найти arg min /0 (х) для заданной унимодальной функции /0: jR1 -> Я1. Сущность метода квадратичной аппроксимации заключается в следующем. По трем точкам функция/0 аппроксимируется квадратной параболой, после чего находится точка минимума этой параболы. На следующем этапе аппроксимации используются три соседние точки, между которыми находится точка минимума функции /о. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение д^ ? В1, точность вычисления точки минимума 8>0и начальное смещение б0 > 0. И. Если /0 (х°— г) > /0 (л:0) и /0 (х°+ г) > /0 (л°), то положить х* = а;0 и прекратить вычисления; иначе перейти к шагу III. III. Если /0 (л:0) < /0 (л:0— е), то положить б = б<> и перейти к шагу IV; если /0 (х°) < /0 (х°+ е), то положить б = —б0 и перейти к шагу IV. IV. Положить k = 0. V. Положить xk+l = xk + б. VI. Если /0 (я**1) < /0 (xk), то положить б = 26, k = k + 1 и перейти к шагу V; иначе перейти к шагу VII. VII. Если /0 (V+1) > /о (xk) и б > 0, то положить х± = xk~\ х2 = хк, х3 = xk+{ и перейти к шагу VIII. Если /0 (х*+1) > /о (хк) и б < 0, то положить хг = xk+l9 х2 == «= xk, х3 = л:^" и перейти к шагу VIII. Примечание: интервал [хъ х3] содержит точку минимума я* функции /0. VIII. Если х3 — хг ^ е, то положить х* = х2и прекратить вычисления; иначе перейти к шагу IX. IX. Найти точку jc4 по формуле „ у. II ^ '/о' 4 2 4 (/о (xi)" Основной цикл. X. Если хА < х2, то: 1) при /0 (x4) = /0 (х2) и /0 (^i) > /0 (х3) положить ^ = хА, х2 = = д:2, х3 = х3 и перейти к шагу XI; 2) при /0 (х4) = /0 (л;2) и /0 (^) < /0 (хв) положить х± = х19 х3 = = #2» х2 = х4 и перейти к шагу XI; 3) при /0 (х4) < /0 (*2) положить Xj = хъ х3 = л:2, х2 = х4 и перейти к шагу XI; 4) при /о (*4) > /о (х2) положить хг = л:4, х2 = х2, л:3 = х3 к перейти к шагу XI. Если хА > х2, то: 1) при /0 (х4) = /о (^г) и /о (*i) < /о W положить хх = xx, x2 =* = л:2, х3 = л:4 и перейти к шагу XI; 68
2) ПрИ /0 (Х2) = f0 (*4) И /0 (хх) > f0 (*3) ПОЛОЖИТЬ ATt = Х2, *2 = *= Чу *з = *з и перейти к шагу XI; 3) при /0 (#4) < /о (*г) положить #х = #2, х2 = х4, х3 = х3 и перейти к шагу XI; 4) при /0 (хл) > /о te) положить х1 = хг, д:2 = x2i x3 = л:4 и перейти к шагу XI. XI. Если х3—a:x^ e, то положить х*= х2 и прекратить вычисления; иначе перейти к шагу XII. XII. Вычислить точку х4 по формуле = 1 (*| - 4) /о (^i) + D- *?) /о w+(А - 4) /о fa) *4 " 2 (дс8 - х2) f0 ухг) + (х, - *3) f0 (Jfj + (*2 - *i) /о (*а) и перейти к шагу X (точка лг4 является точкой минимума квадратичной функции, проведенной через три точки хъ х2, х3). Замечание 1. Алгоритм, определяемый шагами I—IX, называют алгоритмом Дэвиса, Свенна, Кэмпи (ДСК). Алгоритм, определяемый шагами X—XII, соответствует алгоритму Пауэлла. Поэтому алгоритм 1 в [378] называется комбинированным алгоритмом Дэвиса, Свенна, Кэмпи — Пауэлла. Теорема 1. Если функция /0 унимодальна, то за конечное число шагов алгоритм 1 приводит в точку х*, лежащую в г-окрестности точки х* (здесь х* решение задачи 1). Библиографические указания. При написании параграфа использовались работы [378, 425]. 1.8. Метод отыскания абсолютного минимума функций, удовлетворяющих условию Липшица Задача 1. Найти arg min f0 (x) для заданной функции /0: J?1 -v R1 и заданного отрезка [а0, Ьо]. Предположение 1. Функция /0 непрерывна на [а0, Ьо] и удовлетворяет условию Липшица с константой у, т. е. |/о(*')--МЛ1<7|*'-А V*', х[0о, Ьо). На k-u итерации приводимого здесь алгоритма строится ломаная <р* (х, х1, ..., xk)y ограничивающая /0 (х) снизу, и вычисляются два числа /+ и /1, которые являются, соответственно, верхней и нижней границами абсолютного минимума функции /0 на отрезке [а0, Ьо], такие, что fk~l<ffL< min foW</t</^ * = 2, 3, ..., причем, для каждого е > 0 существует номер k такой, что /?-/!<«¦ Число /+ является ординатой наиболее низкой из «верхних» вершин ломаной срь а Д— ординатой наиболее низкой из «нижних» 59
вершин ломаной cpfe. Абсциссы точек ломаной cpfe (xy х1, ..., xk)t лежащие ниже прямой у = /+, образуют множество, содержащее множество решений X* задачи 1. Начальное приближение в алгоритме пооизвольно. По существу вычисления на каждой итерации сводятся лишь к решению двух линейных уравнений и выбору минимальных величин из конечного набора. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х1 ? 1аОу Ьо] (обычно выбирается х1 = (а0 + Ь0)/2). П. Выбрать величину е > 0 (точность вычисления минимума функции /0 по функционалу). III. Положить k = 1. Основной цикл. IV. Вычислить /0 (л;*). V. Определить функцию gk (л:, xk), (х ? [а0, Ьо]) по правилу gk(*. **) = /оИ — у\х — х*\. A.3) VI. Определить функцию <pk (х, л:1, ..., xk), (х ? [а0, Ьо]) по правилу Фа = (х, х\ ..., xk) = max gt (xf x() и найти множество Qk «нижних» вершин ломаной Фл (х, х1, ..., xk) на отрезке [а0, Ьо]: если k = 1, то если fe > 1, то х\ где Gk определяется: если хк = а0, то Gk состоит из одной точки — точки пересечения прямых и = L (г.кЛ A-vlr. — х*ш\_ A.4) (здесь хк* — абсцисса ближайшей справа к (хк, /0 (хк)) «верхней» вершины ломаной q>k (x, х\ ..., хк))\ если хк = fc0, то Gk состоит из одной точки — точки пересечения прямых /У_ _ У. г —V У— У г ^ (здесь хк* — абсцисса ближайшей слева к (хк, /0 (хк)) «верхней» вершины ломаной <pfe (x, х1, ..., хк))\ если хк Ф а0 и хк Ф Ьо, то Gk состоит из двух точек — точки пересечения прямых A.4) и точки пересечения прямых A.5). VII. Вычислить /* = min/o(*0. "*¦ г=1 к 60
VIII. Найти точку xk+\ являющуюся точкой абсолютного минимума функции cpfe (х> х1, ..., xk) на отрезке [а0, Ьо] min фл(л:, х\ ..., **), A.6) И ПОЛОЖИТЬ /-L = ф/г (, \ , IX. Если выполняется условие то прекратить вычисления (в этом случае абсциссы точек ломаной yk (х, х1, ..., xk)t лежащие ниже прямой у = /+, образуют множество Х8, заведомо содержащее решения х* задачи 1, и, кроме того, выполняется иначе положить k == k + 1 и перейти к шагу IV. Теорема 1. Пусть выполняется предположение 1, тогда алгоритм 1 порождает последовательность чисел /+, k = 1, 2, ... и /1, k = = 1, 2, ... такие, что /i< min /0(*X/i. ft= 1, 2, ... кроме того, при 8 = 0 имеют место предельные соотношения lim /i = lim /* = min /0 (x) = /0 (л:*). Библиографические указания. При написании параграфа использовались работы [281, 1071. В работе [202] для специального класса мнргоэкстремальных функций, не являющихся вогнутыми, строится оптимальный алгоритм по критерию, равному максимальной возможной величине ошибки в определении экстремума минимизируемой функции. 1.9. Метод кусочно-кубической аппроксимации Задача 1. Найти arg min fo(x) для заданной функции /о:/?1-*/?1 и заданного отрезка [а0, Ьо]. Предположение 1. Функция /0 удовлетворяет условию Липшица на отрезке [а0, Ьо]. В методе кусочно-кубической аппроксимации в качестве модели функции /0 (л:) используется кусочно-кубическая кривая cpfe (x), проходящая через точки (*/, /0 (л;')), / € [0 : Nk], и моделирующая поведение функции /0 (#) полиномами третьей степени на отдельных участках отрезка [а0, Ьо]. Отыскание приближенного значения глобального минимума функции /0 (я) сводится к вычислению минимумов кубических парабол на отдельных интервалах отрезка [а0, Ьо] (т. е. к решению соответствующих квадратных уравнений). 61
Алгоритм 1 Начало. I. Выбрать константу е > О, характеризующую относительную ошибку аппроксимации функции /0 (х) кусочно- кубической кривой. II. Положить No = 5. III. Положить k = 0. IV. Вычислить точки х\ i ? [0 : No— 1] по формулам и значение функции /0 в этих точках. Основной цикл. IV. Положить / = 0. V/Провести кубическую параболу г|)/+1 (х) через четыре точки (*', fo И), (*ж, /о (л)). (*}+\ /о(*/+2)), (*/+3, М*/+3)). VI. Если / = 0, то на отрезке U0, х2] аппроксимирующую кусочно-кубическую кривую щ (х) определить по правилу и перейти к шагу IX; иначе перейти к шагу VII. VII. Если / + 3 < Nk— 1, то на отрезке U'+1, xJ'+2] аппроксимирующую кусочно-кубическую кривую щ (х) определить по правилу и перейти к шагу IX; иначе перейти к шагу VIII. VIII. Если / + 3 = Л^—1, то на отрезке LA""*3, xn^1] аппроксимирующую кусочно-кубическую кривую <pk (x) определить по правилу Ф* (*) N* Nl и перейти к шагу X; иначе перейти к шагу X; IX. Положить / = / + 1 и перейти к шагу V. X. Положить Nk+\ = 2Nk— 1. XL Вычислить точки XII. Если выполняется неравенство max |( то перейти к шагу XIII; иначе положить k = k + 1 и перейти и шагу IV. XIII. Положить / == 0, XIV. Если / = 0, то вычислить точку минимума х1 кубической параболы г|)г (х) на отрезке U0, х2] и перейти к шагу XVII; иначе перейти к шагу XV, 62
XV. Если j + 3<Nk—1, то вычислить точку минимума кубической параболы %+i (х) на отрезке Ы+1, xf+2] и перейти к шагу XVII; иначе перейти к шагу XVI. XVI. Вычислить точку минимума xNf?~~3 кубической параболы i|)^_3 (х) на отрезке [л^*", д:^"™1] и перейти к шагу XVIII. XVII. Положить / = / + 1 и перейти к шагу XV. XVIII. Найти точку х& (приближенное решение), принадлежащую множеству точек такую, что Библиографические указания. Параграф написан на основании работ [378, 17]. В работе [472] предложен метод, использующий квадратичную и кубическую интерполяцию и не требующий вычисления производных минимизируемой функции. 1.10. Методы глобального поиска Задача 0. Найти arg min f0 (х) для заданной функции х?[ао,Ьо] /0 : i?1 -> R1 и заданного отрезка [а0, Ьо] вещественной оси R1. Приводимые ниже алгоритмы применяют для вычисления абсолютного минимума многоэкстремальной функции /0 на отрезке [я0, Ьо]. 1. Алгоритм глобального поиска Алгоритм 1 Начало. I. Выбрать произвольную константу а > 1 II. Положить х°= а0, х1 = bQ. III. Положить k = 1. Основной цикл. IV. Разместить точки последовательности {л;'}?=о в порядке возрастания их значений и обозначить новую последовательность через {х'}*яво, т. е. V. Найти максимальное абсолютное значение относительной первой разности б, = max | (/0 (?) - /0 (У-1))/(? - ?'-!) |. VI. Если 8* = 0, то положить $k = 1 и перейти к шагу VII; иначе положить |3fe= a8k и перейти к шагу VII. *VII. Положить i = 1. 63
VIII. Вычислить у (/) — характеристику интервала (х'-1, х{) oig:1)J - 2 (/„ (?)+/0 (?-')). х ) IX. Если i < &, то положить I = i + 1 и перейти к шагу VIII; иначе перейти к шагу X. X. Найти наименьшее значение /*?[1 : Л], при котором выполняется равенство ?(/*)= max v@- XI. Вычислить следующее приближение XII. Положить ? = k + 1 и перейти к шагу IV. Теорема 1. Пусть функция /0 (х) удовлетворяет на [а0, Ьо] условию Липшица с константой у < оо^ I /о (*') - /о (*") I < УI х' - > |, V *V *" € [а0, 60]. Тогда: (i) — если функция f0 (х) имеет на отрезке [aOi bQ] конечное число локальных экстремумов, то любая предельная точка х последовательности {xh)kL$i порожденной алгоритмом 1, локально- оптимальна; (И) — если наряду с предельной точкой х существует другая предельная точка х последовательности {x*}!Lo, то f0 (х) = /ч = /о (х)\ (Ш) — если х — предельная точка последовательности {xk}Z=0y то /О (xk) > /о (x)yk = 0, 1, ...; (iv) — если на некоторой итерации алгоритма 1 справедливо неравенство рЛ > 2^, то множество предельных точек последовательности {**}2Lo совпадает с множеством точек абсолютного минимума функции fQ на отрезке \аОу Ьо]. Теорема Г. Пусть для наперед выбранной константы е > О (е — точность вычисления абсолютного минимума) при помощи алгоритма 1 построена последовательность точек х°, х1, ..., xkie\ где k (г) — наименьший индекс k, при котором выполняется неравенство Тогда: (i) — если в (k (г) + \)-й итерации выполняется неравенство где [i==min ;ar={/|x— x >e, l<t^^(e)}, mo ? /A"- min MA ~'rZl-1 TA :r* о ' 64
m. e. точка х* абсолютного минимума не может принадлежать интервалу, длина которого превышает заданную точность е; (И) — если а > УусКУ"^ — 1), то {/0 (?), /0 (хм)} > min /0 (л;/), т. ?. оценка min /0 (*') минимального значения функции /0 достига- ется «я одяол* из концов интервала, длина которого не превышает точности е; (Hi) — для любого положительного б существует столь большое значение коэффициента а, что точки х°, х1, ..., хк(г) образуют (г + Ь)-сеть в интервале [а0, Ьо]. Замечание 1. Значение константы а должно быть достаточно большим, чтобы удовлетворялось неравенство рЛ > 2у, которое является достаточным условием сходимости алгоритма 1. Но, с другой стороны, с ростом а возрастает (приближаясь при а->-оо к количеству узлов сетки метода перебора) число вычислений функции /0. В случае, когда известна константа Липшица у, выбор значения а не вызывает затруднений. В случае, если известны лишь грубые априорные верхние оценки константы Липшица, можно воспользоваться описанным ниже алгоритмом. 2. Рандомизированный алгоритм глобального поиска Алгоритм 2 Начало. I. Выбрать нижнюю ах и верхнюю а2 оценки параметра а. II—X. Шаги II—X такие, как в алгоритме I, с тем лишь отличием, что при вычислении рл на шаге VI вместо константы а следует взять константу аг. XI. Вычислить vi = Р* &k - ?*""!) - (/о (?*) + /о (xik~1))- XII. Положить /х= ikf Vi= у {ik)- XIII. Если 8k = 0, то положить Р^ = 1 и перейти к шагу XIV; иначе положить р^ = a28k и перейти к шагу XIV. XIV. Положить 1=1. XV. Вычислить V @ = Р* & - ?-') + {fef]r^ty - 2 (/о (?) - /о Ос1-1)). h К*1 — * ) XVI. Если i < kt то положить i = I + 1 и перейти к шагу XV; иначе перейти к шагу XVII. ,XVII. Найти наименьшее значение индекса in ?ll : k], при котором выполняется равенство у (ik) = max у (/). XVIII. Вычислить , Jk Jtf~l Jk Jk-1 v,«P*(.r -x )-(M* ) + h(* ))• 3 3-341 65
XIX. Положить /а= tkt T2== у D). XX. Если jyss /2, то вычислить р = ^/(а^ a2) и перейти к шагу XXI; иначе вычислить р = (vx + v2 — y2)/Bv! + 2v2 — yx — y2) и перейти к шагу XXI. XXI. Однократно реализовать случайный механизм с двумя исходами 1 и 2, соответственно, имеющими вероятности рх = р и р2 = 1 — р. XXII. Если случайный механизм дал исход 1, то положить р = в Рь / = /i и перейти к шагу XXIII; иначе положить р = р*, / = ~ /2 и перейти к шагу XXIII. XXIII. Вычислить следующее приближение XXIV. Положить k = k + 1 и перейти к шагу IV. Библиографические указания. При написании параграфа использовались работы [343—346]. 1.11 Методы поиска интервала наибольших значений многоэкстремальных функций Задача 1. Найти arg max /0 (#) для заданной функции *GKA]r f0 : Rl -> R1 и заданного отрезка [а0, Ьо]. Определение 1. Зафиксируем число б > 0 и определим класс Кь функций, удовлетворяющих условию: для любой <р (я) из Кб существует отрезок А длиной б из [а0, Ьо] такой, что из х ? Д, х' g Д следует ф (х) > ф (х'). Определение класса функций Ц вытекает из определения класса Кб, если положить б = (Ьо — ао)/2. Предположение 1. Функция /0 непрерывна на [aOt b0] и принадлежит классу Кб- Ниже приводится метод для отыскания отрезка Д для функции f0 (x), принадлежащей к классу /Сб. Если вычислить значения функции /0 (х) из класса Кб в точках а0 + б, а0 + 26, ..., ао+ шб, где j(b0 — ао)/б — 1, если (Ьо — ао)/б — целее число; т Ent ((Ьо — #о)/б), если (Ьо — ао)/д — нецелое число, и среди этих точек выбрать точку d с наибольшим значением функции /0 (d), то точка d принадлежит Д, а область Д следует искать на отрезке [d — 6, d + б]. Таким образом, задача отыскания области Д наибольших значений функции /0 (х) из класса Кб сводится к задаче отыскания области Д для функции из класса Le. Если наибольшее значение достигается в двух соседних точках а0 + /б, ао+ (/ + + 1N, то искомая область Д совпадаете интервалом [ао+ /б, ао + + (i + 1) б]. Приводимый ниже алгоритм для функции /0 (х), принадлежащей классу L.6 на отрезке Id — 6, б + d]f за (п — 1) итераций находит Д отрезок q заданной погрешностью е > 0 за наименьшее воз-
можное число итераций. Для начала работы алгоритма необходимо знать некоторый интервал [ajj", Ро~], принадлежащий отрезку Д и содержащий точку d. Алгоритм 1 Начало. I. Выбрать число е > 0 — погрешность вычисления области А. II. Задать отрезок До = [a^~, pjji, который содержит точку d и принадлежащий области Д. III. Вычислить натуральное число /г, удовлетворяющее условию где F/z-i, Fn—числа Фибоначчи (т. е. такие, что Fo= Fx=* I, Ft = Fi-x + fw, i = 2, 3, ...); 60= §t — dfr. ¦ IV. Положить k = 0, Go= 0 (т. e. Go—пустое множество). Основной цикл. V. Вычислить 8k—длину интервала la*\ Р*~], принадлежащего отрезку Д, и величину v^= б — 8k. VI. Найти точку ak, лежащую слева от точки $t на расстоянии б, и йайти точку pfe, лежащую справа от точки at на расстоянии б. VII. Если оба полуинтервалы [akt af) и (fit, P^l не содержат точек, в которых функция /0 вычислялась на предыдущих итерациях, то вычислить значения функции /0 (х) в точках положить Gk+\ = Gk[) {x'k} U {xl} и перейти к шагу VIII; если полуинтервал [afe, a^") содержит точку */&, в которой функция /0 вычислялась на предыдущих итерациях, и полуинтервал (Р^, pfe] не содержит точек, в которых функция /0 вычислялась на предыдущих итерациях, то вычислить функцию /0 в точке xl = РЛ— (yk — — afe), положить Gk+\ = Gk\} {x'k) и перейти к шагу VIII; если полуинтервал (Р^, pfe] содержит точку у1, в которой функция /0 вычислялась на предыдущих итерациях, а полуинтервал [afe, a^") не содержит таких точек, то вычислить функцию /0 в точке л4 == = ak + фк — yl), положить Gk+\ = Gk \j {x'k} и перейти к шагу VIII. VIII. Используя имеющееся на k-й итерации множество точек i, значения функции /0 в точках множества G^+i и интервал > Р/!~], принадлежащий отрезку Д, вычислить наибольший интервал [ajj^i, p^j_i]-, принадлежащий отрезку Д, с помощью следующих пяти правил: П если х, ^Д и ^<2<jc', тог^ Д; 2) если ^Ди/0 (х9) > /о (х), то х' ? Д; 3) если х ? Аи f0 (*') < /о (х), то х'? Д; 4) если х g Д и | х — х' \ > б, то х' ? Д; 3* 67
5) если к 6 U — б, d] и *'g [d, d + 6], то из f0 (х) > f0 {x') и | а: — х | < б следует х ? А, а из /0 (х) > /0 (*') и | л; — л;' | > 6 следует #' ^ Д. IX. Если k < п — 2, то положить & = А + 1 и перейти к шагу V; иначе прекратить вычисления. Теорема 1. Если функция /0 (х) принадлежит классу Ц на интервале Id — 6, d + б], то алгоритм 1 за (п — 1) итераций находит интервал [a^Lb p^li], принадлежащий отрезку Д, такой, что P^Li — a^Li ^ б — е, причем алгоритм 1 является оптимальным алгоритмом поиска области Д с погрешностью 8, т. е. находит область Д с погрешностью е за наименьшее возможное число итераций. Замечание 1. Если в алгоритме 1 на шаге VII точки x'k и xl вычислять по формулам Ч = ak + VbFn-b-2/Fn^k', Xl = р* — VbFn-k-JFn-k, то для этого алгоритма теорема 1 остается в силе. Библиографические указания. Параграф написан на основании работ [350, 351]. 1.12. Методы поиска глобального минимума, использующие стохастические автоматы Задача 0. Найти arg min /0 (х) для заданной функции ?[Ь] х?[ао,о] /о:/?1-»-/?1 и заданного интервала [а0, Ьо]. Предположение 0. Функция /0 непрерывна на [а0, Ьо] и имеет единственный глобальный минимум на [а0, Ьо]. В начальной стадии метода интервал [а0, Ьо] разбивается на т (достаточно большое число) подынтервалов //, / = 1, ..., /л, равной длины w = (Ьо— ао)/т и каждому подынтервалу //, / = 1, ..., т, ставится в соответствие состояние S/, / == 1, ..., т, стохастического автомата. Стохастический автомат задается вектором вероятностей Р (k) = (Pi (k), ...t pm (k))y каждая /-я компонента которого характеризует вероятность р} (k) перехода автомата в состояние S/. На k-й итерации по заданному вектору р (k) генерируется состояние автомата S<k> ik ? [1 : т]. Выход стохастического автомата принадлежит интервалу [до (ik—1), wik] с равномерным распределением вероятностей. Вектор вероятностей р (k) при переходе от одной итерации к другой преобразуется таким образом, что вероятность р{ (k), соответствующая интервалу li% который содержит точку глобального минимума, возрастает, а все вероятности pf (k), j = 1,..., m, \Ф1, уменьшаются. Приводимые ниже алгоритмы находят интервал 'V '*бП :m], в котором с вероятностью, достаточно близкой к единице, находится точка глобального минимума функции /0 на to 68
Методы поиска глобального минимума, использующие стохастические автоматы, целесообразно применять тогда, когда вычисление функции /0 (х) сопровождается сильными помехами. 1. Алгоритм, использующий модель Буша—Мостеллера В алгоритме 1 вектор вероятностей р (k) на каждой итерации преобразуется по формулам Буша — Мостеллера. Алгоритм 1 Начало. I. Разбить интервал [а0, Ьо] на т подынтервалов /, равной длины w = (Ьо — ао)/т и поставить в соответствие каждому 1Ь i = 1, ..., m, единственное состояние автомата St-, i = 1, ..., m. II. Положить pi @) = 1/m, i = 1, ..., m. III. Положить Q*t = a^, i = 1, ..., m, где aoo — достаточно большое положительное число. IV. Выбрать константу 8 > 0 (е — заданная точность выполнения условия оптимальности автомата в случайной среде). V. Положить k = 0. Основной цикл. VI. С помощью вектора вероятностей Р (k) = (pi (k), p2 {k)y ..., р'т (k)) сгенерировать случайное состояние автомата S (k) = Sik, ik?[l : m]. Выбрать выход автомата xik (k), принадлежащий интервалу [w (ik— 1), wik] (считается, что случайная величина xik (k) равномерно распределена на этом интервале). VII. Вычислить значение /0 (xtk). VIII. Вычислить IX. Определить вход автомата у (k + 1) по правилам @, если Q'mm<f0(Xik); У(Ь+1)-\и если Q; X. Положить Q*k = /0 (xt? (остальные значения Q*iy f = 1, ... ..., m, i Ф ik, не меняются). XI. Вычислить вектор a (k) = (аг (k), ...,am(k))y определяющий структуру автомата на k-n итерации, по правилам: если у (k + 1) = 1, то aik (k) = 1 и а( (k) = 0 для / = 1, 2,... ..., т, \Ф1? если у (k + 1) = 0, то af (k) = p}- (&), / = 1, ..., m. XII. Преобразовать вектор вероятностей р (k) по формуле Буша — Мостеллера ))) где / — единичная матрица размера т X т\ К — постоянная величина, принадлежащая интервалу [0, 1]; A (k)— т X т-матрица, состоящая из т одинаковых столбцов a (k). 69
XIII. Если с заданной точностью е выполняются следующие условия оптимальности поведения автомата в случайной стационарной среде: I Pik+X (Л + 1) — 1 К е, если <#Л+1 < Q* для всех / Ф 4+i; A.7) Pi(k + 1)<е для всех / = 1, ..., т, \Ф ik+u A.8) то прекратить вычисления (в этом случае точка глобального минимума с вероятностью, близкой к единице, принадлежит интервалу //Л+1); иначе положить k = k + 1 и перейти к шагу VI. При удачном разбиении интервала [а0, bQ] на подынтервалы //, / = 1, ..., т, алгоритм 1 приводит к интервалу [а0 + (йц-i — 1) о/, а0 + /л+i оу), в котором с вероятностью, достаточно близкой к единице "(за счет выбора е), находится точка глобального минимума функции /0 (х) на интервале [а0, &0Ь 2. Алгоритм, использующий усредненные значения функции В этом пункте приводится алгоритм, в котором вектор вероятностей р (k) преобразуется по информации о средних значениях функции /0 на соответствующих подынтервалах. Алгоритм 2 Начало. I. Разбить интервал [а0, Ьо] на т подынтервалов lt равной длины w = (Ьо — ао)/т, и поставить в соответствие каждому lh i == 1, ..., m, единственное состояние стохастического автомата So i = 1, ..., m. II. Положить pt @) = 1/m, / = 1, ..., /п. III. Выбрать константу 8 > 0 (е — заданная точность выполнения условия оптимальности стохастического автомата в случайной стационарной среде). IV. Выбрать параметр алгоритма у > 0. V. Вычислить массив средних значений ~Zi(O) = (fo(w(i-V2))r\ /=1, ..., т. VI. Положить k = 0. Основной цикл. VII. С помощью вектора вероятностей Р (&) = (pi (k)9 -.., Рт (*)) сгенерировать случайное состояние автомата S (k) = Sik, ik ? [1 : m]. Выбрать выход автомата xik (k), принадлежащий интервалу [w (ik— 1), wife] (считается, что случайная величина xik (k) равномерно распределена на интервале [w (ik — 1), wik]). VIII. Вычислить значение /0 (xck). IX. Вычислить значение X. Вычислить массив средних значений zt (k + I), i = 1, ..., m 70
по правилам: ztk(k+ l) = tetk(k) + (l i/(* + 1) = tet(k), j = 1, ..., m; XI. Вычислить вектор вероятностей p (k + 1) = (px (# + 1), —. Pm (k + 0) п0 формулам XII. Если с заданной точностью е выполняются условия оптимальности A.7), A.8) поведения автомата в случайной стационарной среде, то прекратить вычисления; иначе положить & = & + 1 и перейти к шагу VII. Алгоритм 2 обеспечивает выполнение условий A.7), A.8), если произведено удачное разбиение интервала [а0, Ьо] на подынтервалы lh j = 1, ..., m, и выбран подходящий параметр алгоритма V- Библиографические указания. При написании параграфа использовались работы [17, 18]. 1.13. Адаптивные методы I. Алгоритмы Кифера—Вольфовица Задача 1. Найти arg max fo(x) для заданной функции f0 : й1 -> IP. Предположение 1. Функция /0 унимодальна. Метод Кифера — Вольфовица применяется для минимизации унимодальных функций, вычисление которых проводится со случайными помехами. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х° 6 R1 II. Положить k == 0. Основной цикл. III. Вычислить значения шагового множителя р/г и смещения б&, удовлетворяющие условиям теоремы 1. IV. Найти величину z (xk+ 8k) — результат вычисления со случайными помехами значения функции /0 в точке xk+ 6fe. V. Найти величину z (xk — 8k) — результат вычисления со случайными помехами значения функции /0 в точке xk — 8к. VI. Вычислить следующее приближение дЧ-i = xk + (pk/8k) (z (x* + 6k)-z (xk - 8k)). VII. Положить k = k + 1 и перейти к шагу HI. Теорема 1. Пусть .функция /0 является унимодальной и удовлетворяет условию I /о-W — /о (У) I < <*i | х — х* | + а2 < оо, где х*— решение задачи 1; <хи а2 — некоторые постоянные. 71
Тогда, если в алгоритме ошибка вычислений функции/0 равномерно ограничена и имеет нулевое математическое ожидание, т. е. Я И** ± 6,) - М** ± 8fc))* < оо и если шаговые множители pk и смещения 8k такие, что Нтр* = 0; Iim6fe == 0; то последовательность {#*j|Lo, порожденная алгоритмом 1, сходится к точке максимума х* функции f0 в среднеквадратическом и о вероятностью 1, т. е. WE(k — **J = 0; Замечание 1. Если приближение a:^+1 на шаге VI алгоритма 1 вычислять по формуле ^ + Pft sign то получится нормализованный вариант метода Кифера — Воль- фовица. 2. Простой перебор Задача 2. Найти arg min f0 (x) для заданной функции x?lao,bQ) f0 : Rl -+ R1 и заданного отрезка [а0, &0]. Предположение 2. Функция /0 такова, что на отрезке [а0, й0] точка ее локального минимума х* является точкой абсолютного минимума f0 на отрезке [а0, Ьо]. Алгоритм 2 Начало. I. Задать: число е > 0 — точность вычисления точки минимума функции /0 на отрезке [а0, Ьо]\ натуральное число W (рекомендуется выбирать число N из отрезка [101, 103]); положить fe = 0. Основной цикл. II. Положить / = 0. III. ПОЛОЖИТЬ XkO = ak, ВЫЧИСЛИТЬ /0 (ak) И ПОЛОЖИТЬ/0 (#/г,о) = = /о Ы. IV. Вычислить смещение hk-{bk-ak)/N. V. Вычислить точку И ВЫЧИСЛИТЬ /0 (Xk,j+l)- 72
VI. Если /о (*л,/-н) > /о (**./)t T0 перейти к шагу VII; иначе перейти к шагу VIII. VII. Если / = О, то положить a*+i = акУ bk+\ = xk,\ и перейти к шагу IX; иначе положить a*+i = #*,/_i, &*-и в **./-н и перейти к шагу IX. VIII. Если / < N — 1, то положить / = / + 1 и перейти к шагу V; иначе положить a*+i = Xk,N-i> bk+\ e bk и перейти к шагу IX. IX. Если &л+1 — #*-н > е» т0 перейти к шагу X; иначе положить х* = (а*+1+ bk+\)/2 и прекратить вычисления. X. Положить k = k + 1 и перейти к шагу II. Теорема 2. Если выполнено предположение 2, то для произвольного е > 0 алгоритм 2 за конечное число итераций приводит в точку х* такую, что Замечание 2. Недостатком метода простого перебора является то, что во многих «лишних» точках приходится вычислять значение функции /0, что нежелательно в случае, когда /0 определяется в результате эксперимента или когда для вычисления значения функции /0 в точке требуется значительное машинное время. Библиографические указания. При написании параграфа использовались работы [194, 358, 502]. Глава 2 МЕТОДЫ ОПТИМИЗАЦИИ ДИФФЕРЕНЦИРУЕМЫХ ФУНКЦИЙ 2.1. Градиентные методы Задача 1. Найти arg min /0 (х) для заданной функции /0 : R" -> R\ Предположение 1. Функция /0 дифференцируема в Rn. В градиентных методах минимизации за направление движения в k-й итерации выбирается вектор, обратный градиенту функции /0 в точке хк. Различные варианты градиентного метода отличаются друг от друга способом выбора шагового множителя в k-и итерации, а также теми или иными способами (разностной) аппроксимации градиентов. 1. Метод наискорейшего спуска В методе наискорейшего спуска шаговый множитель рк (k =* = 0, 1, ...) вычисляется из условия минимума функции /0 в направлении антиградиента — V/o (**), т. е. 9k = arg min /0 (xk — pV/0 (xk)). 73
Алгоритм 1 Начало. I. Выбрать произвольную начальную точку #° ? ? Rn и положить k = 0. Основной цикл. II. Вычислить V/o (**). III. Если V/o (**) = 0, то положить х*= xk и прекратить вычисления; иначе перейти к шагу IV. IV. Вычислить шаговый множитель pk из условия /о (** - P*W0 (**)) = min /0 (** - pV/0 (**))• V. Вычислить следующее приближение VI. Положить k = k + I и перейти к шагу II. Теорема 1. Если выполнено предположение 1 и (i) — функция f 0 ограничена снизу в Rn\ (и) — градиент функции /0 удовлетворяет условию Липшица a<oo, то для бесконечной последовательности {я*}ь=о, порожденной алгоритмом 1, справедливо соотношение || V/o (xk) \\ ->- 0 при k -> оо. Теорема Г. Если выполнены условия: (i) — функция /0 дважды непрерывно дифференцируема в Rn\ (и) — матрица вторых производных VxXf0 (x) функции /0 удовлетворяет условиям при любых х, у ? Rn, то бесконечная последовательность {} порожденная алгоритмом 1, сходится к точке минимума х* со скоростью геометрической прогрессии со знаменателем q == = (У - Р)/(Т + Р). т. е. || Xk+l _ х* | ^ (p/Y)V, || ^о _ х* | ^1. Алгоритм 1 на практике используют редко. Это связано, в частности, с невозможностью реализовать шаг IV в большинстве практических случаев. Поэтому на практике чаще применяют модифицированные методы наискорейшего спуска. 2. Модифицированный метод наискорейшего спуска Алгоритм 2 Шаги I—III такие, как в алгоритме 1. IV. Определить число f$fe, удовлетворяющее равенству V. Вычислить параметр Xk, удовлетворяющий условию (Hi) теоремы 2. VI. Вычислить шаговый множитель pk из условия* /о (** - P*V/0 И) < A - К) /о (**) + КК B.0 74
VII. Вычислить следующее приближение VIII. Положить k = k + 1 и перейти к шагу II. Теорема 2. Если выполнено предположение 1 и (i) — градиент функции /0 удовлетворяет условию Липшица a<oo; (й) — начальное приблиоюение х° таково, что sup ||л' — #"| = diamX0 = где Хо = {* | /о (я) < /о Mi * б Rn}\ (*«) — параметры Kk9 k = = 0, 1, ..., удовлетворяют неравенствам К ^ ЯЛ^ 1, где К — произвольная константа из полуинтервала @, 1]; (iv) — функция /0 выпукла в Rnf то для бесконечной последовательности {xk}kLo> порожденной алгоритмом 2, справедлива оценка скорости сходимости по функционалу /о (**) - /о < 2^2 ("I >w) < 2ацУиу k = 1, 2, ...; Теорема 2'. Если выполнены все условия теоремы 2 и функция /0 является сильновыпуклой с параметром сильной выпуклости v > О, т е. г/) —9A—9)v||a: —r/f, V*, y?R\ 0<6<l, mo (Эля бесконечной последовательности {a:*}|Lo, порожденной алгоритмом 2, справедливы оценки скорости сходимости /о (**) - П < (/о М - /о) ехР (~ vM/2a), * = 1 f 2, ...; |д*-^*|2^{21 v) (/о(*°) -/J)ехр(- vU/2a)f А = 1, 2, .... Замечание 2. Реализация алгоритма 2 на ЭВМ не приводит к искомому решению из-за наличия ошибок вычислений. Поэтому алгоритм 2 используют до тех пор, пока выполняется неравенство B.2) где е > 0 выбранная на данном этапе точность вычислений. Если же неравенство B.2) нарушается, то следует либо повысить точность вычислений, либо перейти к другому, более эффективному в данном случае методу. Такая ситуация обычно возникает в окрестности точки минимума х* или при «попадании в овраг». Замечание 2'. Неравенство B.1) эквивалентно неравенству 75
Отсюда видно, что при малых %k точность вычислений pfe (как минимума функции /о п0 направлению — V/o (xk)) может быть невысокой. Однако с уменьшением Xk скорость сходимости уменьшается и поэтому важно удачно выбирать числа %k для каждого конкретного случая. 3. Основной вариант градиентного метода Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение х? 6 Лл, произвольную константу р > 0, произвольный множитель ? ? [V2, 1), произвольную константу е > 0 (еда 1/2); положить k = 0. Основной цикл. II. Вычислить V/o (xk). III. Если V/o (xk) = 0, то положить л;*= xk и прекратить вычисления; иначе перейти к шагу IV. IV. Положить а = р. V. Вычислить точку VI. Если выполняется неравенство V/o то положить pk = а и перейти к шагу VII; иначе положить a == оф и перейти к шагу V. VII. Вычислить следующее приближение - VIII. Положить k = k + I и перейти к шагу II. Теорема 3. ?сли выполнено предположение 1 и (i) — функция /0 ограничена снизу (и) — градиент функции /0 удовлетворяет условию Липшица /по для бесконечной последовательности {%*}*Lo, порожденной алгоритмом 3, справедливо II V/o (**) [->О при ?->оо. Теорема 3'. Если функция /0 дважды непрерывно дифференцируема в Rn и ее матрица вторых производных vL/o (*) удовлетворяет неравенствам Шо(х)У, УХУ21 76
при любых ху у ? Я", то для бесконечной последовательности порожденной алгоритмом 3, справедливы соотношения при &->оо; /о (**)-*/<>(**) ПРИ *->оо, где х*—единственная точка минимума функции f0, и следующие оценки скорости сходимости где q = 1 — 2е A — е) уг A + Yi/YsVYsi причем минимальное значение q = 1 — (Y1/2V2XI + Y1/Y2) достигается при е = V2. Теорема 3\ Если выполнены все условия теоремы 3 и существует такое число б2 > О, что г^ /о = inf /0 (х), то для последовательности {#*}?=<)» порожденной алгоритмом 3, справедлива оценка где О <<7г< 1. 4. Градиентный метод с постоянным шаговым множителем Предположения 4. (i) — функция /0 непрерывно дифференцируема; (и) — градиент функции /0 удовлетворяет условию Липшица с известной константой а < оо. Алгоритм 4 Начало. I. Выбрать произвольное начальное приближение х° ? Rn и произвольную константу 8 ? @, 1) (целесообразно выбирать е = 1/2); положить k = 0. II. Выбрать произвольное значение шагового множителя р из полуоткрытого интервала @, A — е)/а]. Основной цикл. III. Вычислить V/o (xk). IV. Если V/o (xk) == 0, то положить #*= xk и прекратить вычисления; иначе перейти к шагу V. V. Вычислить следующее приближение VI. Положить k = k + 1 и перейти к шагу III. Теорема 4. Если выполнены предположения 4 и функция f0 ограничена снизу, то для бесконечной последовательности {#*}!Lo, порожденной алгоритмом 4, справедливо || V/o (х*) || -* 0 при k -> -> СХ). 77
Предположения 4\ (i) — функция /0 дважды непрерывно дифференцируема; (и) — матрица вторых производных vL/o (x) функции) /0 удовлетворяет неравенствам YiI!Уf <(VL/«(х)У, У)<У*\\УР, ?2>Yi>О, при любых Ху у ? Rn, причем константы у2 и Yi известны. v Алгоритм 4' Шаги I, III, IV, V, VI такие же, как и в алгоритме 4. Шаг II алгоритма 4 следует заменить шагом Н\ т. е. выбрать произвольное значение шагового множителя р из полуоткрытого интервала (О, 2A-8)/72]. Теорема4''.Если выполнены предположения 4', то для бесконечной последовательности {#*}*Lo, порожденной алгоритмом 4r9 справедливы предельные соотношения limx* = **; Hm/„(**) =/о (**). где л;*— единственная точка минимума функции f0, и следующие оценки скорости сходимости: |** —^Кб^, 61<оо; /о И - /о (*¦) < (/о (*°) - /о W) qk, еде q = 1 — 2s A — е) Yi (I — Тз/ТгУТг» причем минимальное значение q = 1 — (Yi/2y2) (I + Y1/Y2) достигается при г = 1/2. Алгоритм 4" Шаги I, III, IV, V, VI такие, как и в алгоритме 4. Шаг II алгоритма 4 следует заменить шагом П", т. е. выбрать произвольное значение шагового множителя р из открытого интервала @, 2/y2). . Теорема4*'.Если выполнены предположения 4', то для бесконечной последовательности {xk}Z=of порожденной алгоритмом 4", справедлива оценка скорости сходимости \xk—• **!<</* II*0 — **||, где q = max { | 1 — pYi |, | 1 — PY2 |Ь причем минимальное значение q = (у2 — Yi)/(Y2 + Yi) достигается при р = 2/(y2+ Yi)- Если же в алгоритме 4" выбрать шаговый множитель р = 2/(y2+ + Yi)» tw, кроме того, справедливо неравенство U (*k+1) ~ /о (**) < ((Y2 - Yi)/(Y2 + Y1)J (/о (**) - /о (**))• 5. Вариант градиентного метода с матрицей ускорения сходимости Предположения 5. (i) — функция /0 непрерывно дифференцируема; (ii) — задана матрица ускорения сходимости Н (х) размера п X я, элементами которой являются непрерывные функции от х. Алгоритм 5 Начало. I. Выбрать произвольное начальное приближение 78
х° ? Rn и произвольные константы 8 ? @, 1), р ? @, 1), р > 0 (ре- комендуется выбрать е = V2, р ? (V2, 4/б), р = 1); положить k = 0. Основной цикл. II. Вычислить вектор движения h (хк) к следующему приближению xk+{ по формуле /*(**) = -#Hv/0 И- III. Если h (xk) = 0, то положить #*= хк и прекратить вычисления; иначе перейти к шагу IV. IV. Положить (х = р. V. Вычислить значение 0 (fi, х*) = /0 (х* + ji/i (**)) - /0 (**) - |* (V/o (**), Л (х*)). VI. Если 9 ([х, а:*) <; 0, то положить pk = ц и перейти к шагу VII; иначе положить [г = Pfx и перейти к шагу V. * ' VII. Вычислить следующее приближение VIII. Положить k = k + 1 и перейти к шагу II. Теорема 5. Если выполнены предположения 5 и условия: (i) — функция /0 дважды непрерывно дифференцируема; (Н) — матрица вторых производных vL/o (*) функции /0 удовлетворяет неравенствам УгIIУf <(VL/o(х)у, у)<72IIУЬ Ъ>Ъ>О, при любых Ху у ? i?rt; (ш) — Н (х) — симметричная матрица, удовлетворяющая неравенствам 73IMP< (Я(*)*/, УХ'П\\У\\ 74>Тз>0, п/7^ любых ху у ? i?n, /no для бесконечной последовательности [xk}t=o, порожденной алгоритмом 5, справедливы оценки скорости сходимости бх<оо; adeq = I — 2е A — е) Yi73 A + Yi^VCVaY^ ^*— единственная точка минимума функции f0, причем минимальное значение 9=1 — — 7iY3 (I + yih^lQlfld достигается при г == х/2. Теорема 5'. Если выполнены предположения 5 и условия: (i) — ~ Н (х) — положительно-определенная матрица; (и) — начальная точка х° такова, что множество Хо= {л: | /0 (х) ^ /0 (л:0), х g Rn) ограничено, то каждая предельная точка х' бесконечной последовательности {^JJfeLo, порожденной алгоритмом 5, удовлетворяет условию V/o (#') == 0. Замечание 5. Выбор матрицы Н (х) существенно влияет на скорость сходимости алгоритма 5 (примером этого служат методы типа Ньютона и методы с растяжением пространства). 79
6. Модифицированный градиентный метод, не требующий вычисления производных Этот метод применяется в тех случаях, когда вычисление градиента VJ0 требует значительно больших затрат, чем вычисление значений минимизируемой функции /0, или когда вычисление градиента вообще невозможно (например, когда функция /0 задана таблично, или вычисляется с помощью экспериментов). Алгоритм 6 Начало. I. Выбрать начальное приближение я0 ? Нп, удовлетворяющее условиям теоремы 6, и константы ео> О, V> 0, р > > О, X g (О, V2) (рекомендуется выбирать е0 ? П(Г3, 1(Г2], к'? 6 [ЮТ3, 1(Г2], ре [5, 10], А, = 0,4). II. Положить k = 0, е ~ е0. Основной цикл. III. Вычислить вектор hk, /-я компонента hkj которого /=1,2, ..., п, где ё— /-й орт. IV. Вычислить V. Если Ak < 0, то, используя алгоритм 6А, вычислить такое число р, что и перейти к шагу VI; иначе положить г = е/2 и перейти к шагу III. VI. Если /о {*k + phk) — ft, (xk) < —Я'е, то перейти к шагу VII; иначе положить е = е/2 и перейти к шагу III. VII. Вычислить следующее приближение xk+i e xk + ~hk^ VIII. Положить k = k + 1 и перейти к шагу III. Алгоритм 6А (алгоритм вычисления шагового множителя р для алгоритма 6) I. Выбрать константу р > 0 (рекомендуется выбирать р = 1). П. Определить функции = /о (х* + a/i*) - /0 (х*) - III. Положить [х = р. IV. Вычислить значение i|)te 80
V. Если tyk (fx) = 0, то положить р = |ы и прекратить вычисления; если tyk (\i) < 0, то положить jx = |ы + р и перейти к шагу IV; если % (fx) > 0, то перейти к шагу VI. VI. Вычислить значение ц>к (|х). VII. Если cpfe ((х) ^ 0, то положить р = |х и прекратить вычисления; иначе положить а0 = fx — р, Ьо = (х и перейти к шагу VIII. VIII. Положить i = 0. IX. Вычислить vt = (at + bf)/2. X. Вычислить значения г|^ (и() и <рЛ (vt). XI. Если % (uj) > 0 и фЛ (и,) < 0, то положить р = vt и прекратить вычисления; иначе перейти к шагу XII. XII. ЕСЛИ i|)fc (tfj) > 0, ТО ПОЛОЖИТЬ O^-l = Я;> &i+l ^ yi" i = i + 1 и перейти к шагу IX; иначе положить ai+\ = vir bi+\= bh i = i + 1 и перейти к шагу IX. Теорема 6. Если выполнены условия: (i) —функция /0 непрерывно дифференцируема; (и) — начальное приближение ху в алгоритме б таково, что множество Хо— {х \ /0 (х) ^ /0 (х°)> х ? Rn) ограничено, то последовательность л:0, л:1, ..., порожденная алгоритмом 6, либо конечна (т. е. после конечного числа итераций алгоритм 6 за циклится в точке xk между шагами III и V или III и VI, повторяя деление г на 2), причем V/o (xk) = 0, либо бесконечна и каждая ее предельная точка х1 удовлетворяет условию V/o (xf) = 0. Алгоритм 6' Все шаги алгоритма 6, за исключением шага V, остаются без изменений. Шаг V алгоритма 6 следует заменить шагом V, т. е. если \ < 0, то, используя алгоритм 6Б, вычислить такое число р, что и перейти к шагу VI; иначе положить е = е/2 и перейти к шагу III. Алгоритм 6Б (алгоритм вычисления шагового множителя р для алгоритма б')- I. Выбрать константы у'? @, 1), р > 0 (рекомендуется выби- II. Определить функцию (pfe : R1 -> JR1 равенством III. Положить (Л = р. IV. Вычислить значение фЛ (и). V. Если ф^ (|х) ^ 0, то положить р = [х и прекратить вычисления, иначе положить ^х = \ху' и перейти к шагу IV. Для алгоритма 6; справедлива теорема, аналогичная теореме 6. 81
Библиографические указания. При написании параграфа использовались работы [320, 194, 285]. Многие результаты получены ранее [446, 185, 278, 536, 422, 486, 453, 198, 286, 421; 225, 390, 104, 49, 48, 376, 397, 439, 410]., . . • 2.2. Методы типа Ньютона Задача 1. Найти arg min /0 (х) для заданной непрерывно xQRn дифференцируемой функции /0 ! Д" -> R1. 1. Метод Ньютона—Канторовича Предположение 1. Минимизируемая функция /0 дважды непрерывно дифференцируема с обратимой матрицей Гессе vL/o (*)• Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х? ? Rn, положить k = 0. Основной цикл. II. Вычислить вектор движения h к следующему приближению xk+l из системы уравнений L M)/e() III. Если hk = 0, то положить х* = х и прекратить вычисления; иначе перейти к шагу IV. IV. Вычислить следующее приближение xk + hk. V. Положить k = k + I и перейти к шагу II. Теорема 1. Пусть выполнено предположение 1. Тогда, если бесконечная последовательность {**}?»<)» порожденная алгоритмом 1, сходится к точке х\ то V/o (х') = 0. 2. Обобщенный метод Ньютона—Канторовича Предположение 2. (i) — функция /0 дважды непрерывно дифференцируема с обратимой матрицей Гессе VL/o (x), удовлетворяющей условию TiIIУР<(VL/o(*)У, У)<У2\\УР, Y2> Yi >0. (Отметим, что у таких функций существует единственная точка минимума х*). Алгоритм 2 Шаги I—III такие, как в алгоритме 1. IV. Вычислить шаговый множитель pfe, удовлетворяющий условию V. Вычислить следующее приближение VI. Положить k = k + 1 и перейти к шагу II. 82
Теорема 2. Если выполнены предположения 2, то бесконечная последовательность {x*}*Lo. порожденная алгоритмом 2, сходится к решению х* со сверхлинейной скоростью, т. е. где v, = (Т2/Т?I/21 vL/o И - vL/o (** - в (ж* - х*)) ||, 0 G [0, 1]. Если, кроме того, матрица вторых производных V2XX /о (х) функции /о удовлетворяет условию II Vxxfo (х) — vlxfo (У) К а || л: — у ||, а < оо , л/ш любых х, у ? Я", то бесконечная последовательность {xk}kLo сходится к решению л;* с квадратичной скоростью, /п. ?. || ^+i - х* || < (Y2/YlI/2 (а/Yx) I xfe - х* p. Такой вариант обобщенного метода Ньютона — Канторонича в общем случае реализовать на цифровой ЭВМ невозможно из-за требования одномерной минимизации на шаге IV алгоритма 2. Приведенный ниже вариант свободен от этого недостатка. Алгоритм 2' Начало. I. Выбрать произвольное начальное приближение л? б Rn и произвольные константы е ? (О, V2), P ? @, 1), положить р = 1 и k = 0. Основной цикл. II. Вычислить вектор движения hk к следующему приближению xk+x III. Если hk = 0, то положить л:* = х и прекратить вычисления; иначе перейти к шагу IV. IV. Положить \х = р. V. Вычислить значение в = /о (** + ^*) - /о И - ец (V/, (**), Л*). VI. Если 6^0, то положить р/е = (i или вычислить р? из неравенств Р*A—е) (V/o (А А*) < /о (х* + Pkhk) - h (xk) < р*е (V/o (**), Я'г) и перейти к шагу VII; иначе положить \i = |j,p и перейти к шагу V. VII. Вычислить следующее приближение хН-1 =xk + pkhk. VIII. Положить ? = k + 1 и перейти к шагу П. Теорема 2'. Если выполнены предположения 2, то бесконечная последовательность {#*}?=о, порожденная алгоритмом 2', сходится к точке минимума х* со сверхлинейной скоростью, т. е. где N, ц < оо; Л,#+/< 1 az/?w любом / ^ 0; ^ -> 0 /г/?а j -> оо. 8а
Если, кроме того, матрица вторых производных V%xfo функции /о удовлетворяет условию (х)-Vlj0Ш<а1* — УЪ <* < оо, при любых х, у ? Rn, то бесконечная последовательность {xk}kLo сходится к решению х* с квадратичной скоростью, т. е. Замечание 2. Используемый в алгоритме 2 способ выбора значения шагового множителя pkt к = О, 1, ..., при выполнении условий теоремы 2' гарантирует, что, начиная с некоторой итерации, алгоритм 2' будет осуществляться с единичным шаговым множителем pk = 1, т. е. алгоритм 2' вырождается в обычный метод Ньютона — Канторовича (алгоритм 1). 3. Модификации обобщенного метода Ньютона—Канторовича Алгоритм 3 Алгоритм 3 отличается от алгоритма 2' только более простым способом вычисления вектора hk на шаге II из системы уравнений Теорема 3. Если выполнены предположения 2 и матрица Н = (VL/o (х°))~1 удовлетворяет условию то для бесконечной последовательности {#*}?Lo> порожденной алгоритмом 3, справедливы оценки скорости сходимости 4 h (*k) - /о (**) < (/о {*?) ~ /о (*•)) Ф> где q = 1 — 2е A — е) YiYa A + ъЫКУЯй- Если, кроме того, начальное приближение #° в алгоритме 3 выбрано достаточно близко к точке х*9 то pk = 1, k = 0, 1, ..., и последовательность {**}?Lo сходится к х* со сверхлинейной скоростью сходимости где qx = A/Yl) max 1 vy0 {*>) - Vy0 (x) ||, В алгоритме 3 на каждой итерации для построения вектора движения hk используется одна и та же матрица — V^/o (#°). Ниже приводится модификация обобщенного метода Ньютона — Канторовича, в которой обновление матрицы производится через т (т ^ 1) 34
шагов. Такой алгоритм занимает промежуточное значение между алгоритмом 3 и обобщенным методом Ньютона — Канторовича (алгоритм 2). Алгоритм 3' Начало. I. Выбрать произвольное начальное приближение х° ? Я", константы е ? (О, V2), Р € Ф* *) и натуральное число х > 1. II. Положить / = 0, р = 1. Основной цикл. III. Положить I « 0. IV. Вычислить индекс k = /т + I. V. Вычислить вектор движения hk к следующему приближению л:**1 из системы VI. Если А* = 0, то положить** = xk и прекратить вычисления; иначе перейти к шагу VII. VII. Положить \i в р. VIII. Вычислить значение 6 = /о (х* + [***) - fo (**) - Bfx (V/o (**), hk). IX. Если 6^0, то положить pk = (i и перейти к шагу X; иначе положить jx = j^p и перейти к шагу VIII. X. Вычислить следующее приближение XI. Если i < т — 1, то положить * = i + 1 и перейти к шагу IV; иначе перейти к шагу XII. XII. Положить / = / + 1 и перейти к шагу III. Теорема 3'. Если выполнены предположения 2 и l|VLM*)-VLM#)ll<a||*-H a<oo, Vx,y?Rn, то бесконечная последовательность {xk}kL0, порожденная алгоритмом 3', сходится к решению х* со сверхлинейной скоростью _ х* К V | & — X* f+1. Замечание 3. Сходимость с любого начального приближения является существенным преимуществом обобщенного метода Ньютона — Канторовича и его модификаций по сравнению с обычным методом Ньютона — Канторовича, в котором сходимость гарантируется лишь при наличии достаточно хорошего начального при- ближения. 4. Модифицированный обобщенный метод Ньютона—Канторовича, не требующий вычисления матрицы вторых производных Алгоритм 4 ^Начало. I. Выбрать начальное приближение х° ? /Г, удовлетворяющее условиям теоремы 4, и константы е0 > 0, Р > 0, 85
р > 0, a g (О, V2) (рекомендуется выбирать! е0 ? [КГ*, 10""*'], PS [ЮЛ 1(Г2], а -0,4; р- 1). II. Положить k = 0. Основной цикл. III. Вычислить V/o (**). IV. Если V/o (#*) = 0, то положить я* = хк и прекратить вычисления; иначе перейти к шагу V. V. Найти е из условия е = min {е0, || V/o (xk) |}. VI. Найти матрицу Hk (г) размера п X п, /-й столбец которой вычисляется по формуле 4 (V/ (* + 0 W 4 « 1. 2, .... л, где # — /-й орт. VII. Если существует обратная матрица HJ1 (г) и выполняется неравенство (V/o (xk), HTl (e) V/o (xk)) > 0, то вычислить вектор Л* (в)--ЯГ1 W V/o (х*) и перейти к шагу VIII; иначе положить е = е/2 и перейти к шагу VI. (Шаги VIII—XVIII предназначены для вычисления такого р, что Р О - «) (Wo (А Л* (е)) < /0 {# + phk (8)) - VIII. Определить функции в* (X) = /0 (^ + № (8)) - /0 (**) - X A - а) (V/o Ф^ W = /о (** + *Л* (в)) - /0 И - ^ (V/o (**), /Iй (8)). IX. Положить |х = р. X. Вычислить 6k (fx). XL Если 8fe (\i) = 0, то положить р = |л и перейти к шагу XIX; если Qk (|i) < 0, то положить \х = \i + p и перейти к шагу X; если Qk (\х) > 0, то перейти к шагу XII. XII. Вычислить q>k (|i). XIII. Если <pfc (|х) < 0, то положить р = \х и перейти к шагу XIX; иначе положить а0 = \i — р, Ьо = ^ и перейти к шагу XIV; XIV. Положить i = 0. XV. Вычислить значение vt = {aL + fct)/2. XVI. Вычислить Qk (Vi), <$k {vt). XVII. Если Qk (vt) > 0 и ф* (^) < 0, то положить p = ^ и перейти к шагу XIX; иначе перейти к шагу XVIII. XVIII. Если 6fe (v{) > 0, то положить a'/+i ^ аь ( = i + 1 и перейти к шагу XV; иначе положить щ+\ == s= 6t-, i = f + 1 и перейти к шагу XV. XIX. Если выполняется неравенство 86
то перейти к шагу XX; иначе положить е = е/2 и перейти к шагу VI. XX. Вычислить следующее приближение XXI. Положить k = k + I и перейти к шагу III. Теорема 4. Если выполнены условия: (i) — функция /0 дважды непрерывно дифференцируема и ее матрица Гессе невырождена при всех х из достаточно большой области; (И) — функция /0 строго выпукла; (Ш) — начальное приближение х° в алгоритме 4 таково, что множество Хо = {х | /0 (х) ^ /0 (л:0), х ? Rn) ограничено, то бесконечная последовательность {#*}?U, порожденная алгоритмом 4, сходится к точке минимума х* функции /0. В работе [285] утверждается, что алгоритм 4 имеет сверхлинейную сходимость. Библиографические указания. Параграф основан на работах [285, 320, 486]. Методы Ньютона решения задач безусловной оптимизации изучались также [186, 16, 49, 413, 423, 200, 105, 106, 278, 62, 498, 390]. В работах [469, 544] изучается метод Ньютона для вырожденных случаев. В работах [537, 538] приводятся модели обобщенных алгоритмов и на их основании устанавливается глобальная сходимость модификаций метода Ньютона. 2.3. Методы двойственных направлений Задача 0. Найти arg min /0 (х) для заданной непрерывно x?Rn дифференцируемой функции /0 : Rn -> Я1. Методы двойственных направлений, обладая сверхлинейной скоростью сходимости, требуют, по сравнению с методами типа Ньютона — Канторовича, значительно меньшего количества вычислений (примерно в п раз), .при этом нет необходимости вычислять вторые производные функции /0. С помощью лишь первых производных так организуется процесс вычислений, что направление поиска приближается к направлению метода Ньютона — Канторовича. I. Основной вариант Алгоритм 1 Начало. I. Выбрать: произвольное начальное приближение х° ? Rn\ произвольную линейно-независимую систему л-мерных векторов р°<°, я0'-1, ..., р^-(п-\) (в частности, можно взять столбцы единичной матрицы / размера п X п)\ константы у > 0 (рекомендуется выбирать y G ЕЮ 15, 1СГ5]), Р?@,1) (рекомендуется выбирать C = 0,8), г ? @, V2). II. Положить k = 0, р = 1, г° = р°'°. Основной цикл. III. Вычислить V/o (л;*). 87
IV. Если V/o (xk) = О, то положить х* = хк и прекратить вычисления; иначе перейти к шагу V. V. Положить pk = р. VI. Вычислить точку х = хк — рЛ V/o (я*). VII. Если выполняется неравенство /о (х) - /о И < - ер, (V/o (**), V/o (**)), то перейти к шагу VIII; иначе положить р* = рЛр и перейти к шагу VI. VIII. Положить xk+] = х и перейти к шагу IX. IX. Вычислить векторы -V/o X. Если выполняется неравенство (pM-(*-l>, g*+l) ^ т || рМ-<"-1) || . || gk+l |f то перейти к шагу XV; иначе положить б = 1 и перейти к шагу XI. XI. Вычислить вектор rk+[ = &pkk-(n-i). XII. Если || rk+l || < || rk II, то перейти к шагу XIII; иначе положить б = бр и перейти к шагу XI. XIII. Вычислить V/o (xk + r*+i). XIV. Вычислить вектор g*+1 = V/o (xft + XV. Вычислить вектор XVI. Положить/ = 0. XVII. Вычислить вектор XVIII. Если / < п —- 2, то положить / = / + 1 и перейти к шагу XVII; иначе перейти к шагу XIX. XIX. Если k < п — 1, то положить & == k + 1 и перейти к шагу III; иначе перейти к шагу XX. XX. Вычислить V/o (xk+]). XXI. Если V/o (xk+]) = 0, то положить х* = #*+1 и прекратить вычисления; иначе перейти к шагу XXII. XXII. Вычислить вектор XXIII. Если (V/o (л:^1), ^+!) < 0, то положить pk+\ = р и перейти к шагу XXIV; иначе перейти к шагу XXVI. XXIV. Вычислить точку х = xk+{ + A*+1 XXV. Если выполняется неравенство /о (*) - /о 88
то положить xk±2 = х и перейти к шагу XXXI; иначе положить р/ц-i = Ppfe+i и перейти к шагу XXIV. XXVI. Если (V/o (**+¦), hk+l) > 0, то положить p*+i = Р и перейти к шагу XXVII; иначе положить р*+1 = р и перейти к шагу XXIX. XXVII Вычислить точку х = хк+] — XXVIII. Если выполняется неравенство /о W ~ /о (**+l) < - epw (V/o (** то положить хк+2 = х и перейти к шагу XXXI; иначе положить pk+\ = pp^+i и перейти к шагу XXVII. XXIX. Вычислить точку х = я**1 — р/ц-iV/o (л;**1). XXX. Если выполняется неравенство /о (х) - /о то положить a:*+? = л; и перейти к шагу XXXI; иначе положить Рбя = Ррл+i и перейти к шагу XXIX. XXXI. Положить k = k + 1 и перейти к шагу IX. Теорема 1. Если функция /0 дважды непрерывно дифференцируема и ее матрица вторых производных удовлетворяет условию Yi IIУ Т < (vL/o (*) У> У) < Y2IIУ IP, Y2 > Yi > О л/?а любых ху у ? Я", /по бесконечная последовательность {лг*}?=о, порожденная алгоритмом 1, сходится к решению х* задачи 0 со сверхлинейной скоростью а, N < оо\ ^/V+/ < 1 при любом I ^ 0; ^ -> 0 я/ш ( ->- оо, причем /о (**+') < /о М, /г = 0, 1, ... . Для реализации методов двойственных направлений на ЭВМ требуется хранить в памяти'две системы векторов: г*, rk~\ ..., г*-**-1* и pk*k, pk*k-ly ..., p*.*-4*-Df т. е. фактически две матрицы размера п X п. Частично этот недостаток устраняется, если в качестве векторов rk использовать векторы, направленные по координатным осям, так как в этом случае в памяти машины необходимо хранить лишь один /г-мерный вектор вместо системы rkt ..., rk~{n~l\ 2. Модифицированный метод двойственных направлений, не требующий вычисления производных Алгоритм 2 Начало. I. Выбрать: произвольное начальное приближение х° g Rn\ произвольную систему я-мерных линейно независимых векторов/?00, р°'-\ ..., р°>-(п-1) (в частности, можно взять столбцы единичной матрицы / размера п X п)\ константы Vo > 0, а0 ? @, 1), е ? @, V2), б > 0, t > 1; последовательность {^}^Lo, стремя- 89
щуюся к нулю достаточно медленно (в частности, можно выбрать lk = \l(k + 1), k = 0, 1, ...). II. Положить k = О и перейти к шагу XIV. Основной цикл. III. Вычислить вектор гЛ, используя для этого алгоритм 2А, или по формуле rk = хк — xk-x. IV. Вычислить вектор yk = xk + rk. V. Вычислить |х = || rk jp. VI. Вычислить л-мерные векторы 9*, фЛ, гр\ /-е компоненты которых Ф/ = (/о (У* + И^О — /о (^))/fJl» Iя'. • • •» ^; где в' — /-й орт. VII. Положить -ф* = я))'2. VIII. Вычислить скалярное произведение _ IX. Если (pk—i.k—n^ tykj ^ о? то положить \i = jx/2 и перейти к шагу VI; иначе перейти к шагу X. X. Вычислить вектор XI. Положить i == 0. XII. Вычислить вектор XIII. Если t < n — 2, то положить i = / + 1 и перейти к шагу XII; иначе перейти к шагу XIV. XIV. Если k <; /г — 1, то положить а = а0 и перейти к шагу -XV; если k = я, то положить а = fx и перейти к шагу XXI; иначе перейти к шагу XIX. XV. Вычислить вектор gk> /-я компонента которого g/ = (/о (х* + «еО - /о (**))/«. / = 1, ..., п. XVI. Если /о (** —g*) < /о (я*), то положить я**1 = xk—~gk и перейти к шагу XVIII; иначе перейти к шагу XVII. XVII. Если /о (** + gk) < /о (^), то положить xk+l == ^ + + g* и перейти к шагу XVIII; иначе положить а = а/2 и перейти к шагу XV. XVIII. Положить k = & + 1 и перейти к шагу III. XIX. Вычислить \hh"~lf. XX. Если || hk~] f < fx, то положить а = || Л*"1|2 и перейти к шагу XXI; иначе положить а = \i и перейти к шагу XXI. XXI. Вычислить вектор gk, /-я компонента которого ?/ = (/о (** + «О - /о И)/«. /= 1, .... л. 90
XXII. Положить gk = gk.' XXIII. Вычислить вектор _ гс—I hk = 5j {рк%к~~11 gk)rk—(. t=o XXIV. Если а ^6*1 ft* |, то перейти к шагу XXV; иначе положить a = a/2 и перейти к шагу XXI. XXV. Если выполняется неравенство /0 (я* — Yo^*) < /о (xk), то положить hk~ —hk и перейти к шагу XXVIII; иначе перейти к шагу XXVI. XXVI. Если выполняется неравенство /0 (** + Yoft*) < /о (xk), то положить Лй = hk и перейти к шагу XXVIII: иначе перейти к шагу XXVII. XXVII. Положить Yo = Yo/2 и перейти к шагу XXV. (Если (V/o (xk)9 hk) =5 0 (такой случай возможен лишь на начальной стадии процесса), то следует поменять вектор gk, изменив число р. Иначе на шагах XXV—XXVII будет зацикливание). XXVIII. Вычислить число pfe = mm XXIX. Положить р = pk. XXX. Вычислить pfe = sign (ft*, gk). XXXI. Вычислить Д = (/о (xk + phk) — f0 (xk))/p*. XXXII. Если А < epfe (hk, gk)f то положить pk = p и перейти к шагу XXXIII; иначе положить р = р/2 и перейти к шагу XXXI. XXXIII. Вычислить следующее приближение xk+l XXXIV. Положить k = k + 1 и перейти к шагу III. Алгоритм 2А (алгоритм вычисления вектора rk для алгоритма 2) I. Выбрать произвольную последовательность {X^^i, сходящуюся к нулю (рекомендуется выбрать Xt== (I//L, т) ? @, 2]). II. Положить и = 0. III. Положить s = 1. IV. Вычислить индекс k = хп + s. V. Вычислить вектор г* = Xke\ где es — s-й орт. VI. Если s < п, то положить s = s+ I и перейти к шагу IV; иначе положить т = т+ 1 и перейти к шагу III. - Для алгоритма 2 справедлива теорема, аналогичная теореме 1. Библиографические указания. Параграф написан на основании работ [320, 111, 112]. 91
2.4, Методы сопряженных градиентов Задача 1. Найти arg min /0 (л:) для заданной непрерывно X?R* дифференцируемой функции /0 \ Rn -*• Я1. 1. Общая схема алгоритмов сопряженных градиентов Алгоритм 1 Начало. 1. Выбрать начальное приближение хР ? Rn, удовлетворяющее условиям теоремы 1; положить k = 0. Основной цикл. II. Вычислить V/o (xk). III. Если V/o (xk) = 0, то положить х* =» xk и прекратить вычисления; иначе перейти к шагу IV. IV. Вычислить вектор движения № ? Q (xk), где множество Q (х) задается формулой V. Вычислить шаговый множитель pk9 удовлетворяющий условию fo (** + 9khk) = min /0 (xfe + p/i*). VI. Вычислить следующее приближение xk+] = xk + pkhk. VII. Положить k = & + 1 и перейти к шагу II. Теорема 1. Пусть /0 — строговыпукла а дважды непрерывно дифференцируема функция, причем для всех х ? Хо, и всех у ? Rn выполняется Уг IУ Г < (vWe W ^^ У) < ?2 IIУ IP, Vi > 0. Тогда, если на шаге IV алгоритма 1 вектор hk выбирать так, что для некоторого фиксированного а > 0 выполняется неравен- ство тоалгоритм 1 порождает либо конечную последовательность {x^/Lo, последний элемент которой минимизирует функцию /о в Rnf либо бесконечную последовательность [xk)T=Q, сходящуюся к точке минимума х*. Все варианты сопряженных градиентов отличаются только разными способами вычисления векторов hk на шаге IV алгоритма 1 и способами вычисления шагового множителя pfe на шаге V алгоритма 1. 92
2. Метод сопряженных градиентов с восстановлением Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение #° ? /?п, натуральное число т ^ п (т — момент восстановления); положить k = 0. И. Вычислить V/o (л;0) и положить g° = —V/o (*°), h° = V/°) /o(). Основной цикл. III. Вычислить шаговый множитель pki удовлетворяющий условию IV. Вычислить следующее приближение xk+l = xk + pkhk. V. Вычислить V/o (**+|) и положить g*+' = —V/o (х^1)- VI. Если gk+x = 0, то положить Jt* = jc*+! и прекратить вычисления; иначе перейти к шагу VII. VII. Вычислить коэффициент (О, если t целое число; где w (/) = 11, если / нецелое число. VIII. Вычислить вектор IX. Положить fe = k + 1 и перейти к шагу III. Теорема 2. Если функция /0 трижды непрерывно дифференцируема и ее матрица вторых производных V2XX /0 (х) удовлетворяет условию для всех ху у ? /?", то бесконечная последовательность {} порожденная алгоритмом 2 с произвольным начальным приближением л:0, сходится к решению л:* и существуют такое целое число v > О и константа Ьх ? @, оо), для всех k ^ v, принадлежащих множеству {0, т, 2т, ...}. Алгоритм 2' Начало. I. Выбрать произвольное начальное приближение ^° ? Rn, натуральное число т ^ п (т — момент восстановления); положить k == 0. II. Вычислить V/o (*°) и положить^0 = —V/o (л:0), ft0 = —V/o (*°). Основной цикл. III. Вычислить шаговый множитель pk, удовлетворяющий условию 93:
IV. Вычислить следующее приближение V. Вычислить V/o (xk+l). Если V/o (л:^1) = 0, то положить х* = xk+x и прекратить вычисления; иначе перейти к шагу VI. VI. Если k кратно т, то перейти к шагу VII;, иначе перейти к шагу VIII. VII. Положить gk+l = —V/o (xk+]), hk+* = —V/o (xk+]) и перейти к шагу XI. VIII. Положить gk+l = —V/o IX. Вычислить коэффициент X. Вычислить вектор hk+l = gk+l + $khk. XI. Положить k = k + 1 и перейти к шагу III. Для алгоритма 2' имеет место теорема, аналогичная теореме 2. 3. Реализуемые модификации алгоритмов сопряженных градиентов Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение х° е R\ константы е0 > 0, у0 > 0, р ? @, 1), р' б @, 1), р^ е @, 1) (рекомендуется е0 = cos 85°, у0 = cos 5°, р = 0,6, р' = р" = 0,8), натуральное число т ^ п (т — момент восстановления); положить k = 0. II. Вычислить V/o (*°). III. Если V/o (л;0) = 0, то положить х* = #° и прекратить вычисления; иначе положить g° = —V/o (д^), Л° = —V/o (^°), е = е0, у = уо и перейти к шагу IV. Основной цикл. IV. Положить х = xk. V. Вычислить вектор h = —— ftft. II л* || VI. Определить функцию Э : В1 ->¦ Л1 VII. Положить р = 0. VIII. Вычислить скалярное произведение (V/o (х + рА), К) и положить ф (р) = (V/o (x + рЛ), К). IX. Если ф (р) = 0, то перейти к шагу XVIII; иначе перейти к шагу X. X. Положить % == 1. XI. Вычислить XII. Если Д < 0, то положить р = р — Хф (р) и перейти к шагу XIII; иначе положить К = $% и перейти к шагу XI. 94
XIII. Вычислить V/o (x + f>h). XIV. Если V/o (x + Ф) = О» то положить х* = * + рЛ и прекратить вычисления; иначе перейти к шагу XV. s XV. Вычислить XVI. Вычислить XVII. Если | б | ^ е, то перейти к шагу XVIII; иначе перейти к шагу X. XVIII. Вычислить следующее приближение xk+l = х + р/г. XIX. Положить gk+] = —V/o (* + ph). XX. Вычислить коэффициент l-gk, gk) где (О, если / — целое число, w (t) = i - '1, если ъ — нецелое число. XXI. Вычислить вектор hk+l = ^ft+1 + $khk. XXII. Положить Л = ft + 1. XXIII. Если выполняется неравенство (в*. то перейти к шагу IV; иначе положить г = f$'e, у = P"y и перейти к шагу IV. Для алгоритма 3 имеет место теорема, аналогичная теореме 2. Алгоритм 3' (реализуемая модицикация алгоритма 2) Все шаги алгоритма 2, кроме шага III, остаются без изменений. Шаг III алгоритма 2 следует заменить шагом IIГ. ИГ. Вычислить шаговый множитель pfe, используя для этого алгоритм 1Б или алгоритм 2Б. \ Алгоритм 1Б (алгоритм вычисления шагового множителя pk) I. Выбрать константы р > 0 и К ? (О, V2). II. Определить функции 6(а, **) « /0(** + аЛ*) _/0(д*) _аA - X) (V/o **) = /о (** + аЛ*) - /о (л:Л) - cd (V/ III. ПОЛОЖИТЬ (Л = р. IV. Вычислить значение 0 (|i, xk). V. Если 9 (|ii, xk) = 0, то положить pk = |ы и прекратить вычисления; если 9 (ц,, xk) < 0, то положить [х = (г + р и перейти к шагу IV; если 0 (ц, #*) > 0, то перейти к шагу VI. VI. Вычислить значение ф (fx, xk). 95
VII. Если ф (ц, xk) <! 0, то положить pk = fx и прекратить вычисления; иначе положить а0 = и, — о, Ьо = w и перейти к шагу VIII. VIII. Положить / = 0. IX. Вычислить Vj = (а;- + bj)/2. X. Вычислить значения 0 (vh xk), ф (y/f xk). XI. Если выполняются неравенства 0 (vh xk) ^ 0 и ф (p/f л;*) ^ <: 0, то положить pk = Vj и прекратить вычисления; иначе перейти к шагу XII. XII. Если 0 (vh xk) > 0, то положить aI+\ = ah &/+i = vf и перейти к шагу XIII; иначе положить а,-+\ = vh ft/+i = bf и перейти к шагу XIII. XIII. Положить / = / + 1 и перейти к шагу IX. Алгоритм 2Б (алгоритм вычисления шагового множителя р* по методу золотого сечения) I. Выбрать произвольные константы е0 > 0, а > 0, р > 0, Ре (о, 1). II. Вычислить дроби Фибоначчи Fx = C — ^5I2 и F% = ( ) III. ПОЛОЖИТЬ 8 = 80. IV. Определить функцию Q : R1 -* R1 V. Вычислить значения 0 (р) и 0 @). VI. Если 0 (р) > 0 @), то положить а0 = 0, Ьо = р и перейти к шагу X; иначе положить i = 0, \xQ = 0 и перейти к шагу VII. VII. ВЫЧИСЛИТЬ [Х/+1 = JXt- + Р- VIII. Вычислить 0 (fij-и). IX. Если 0 ((uii+i) ^ 9 (Мч)> то положить а0 = [x/_i, &o = M-^+i и перейти к шагу X; иначе положить i = i + 1 и перейти к шагу VII. X. Положить / = 0. XI. Вычислить lj = bj — ar XII. Если lf ^ e, то перейти к шагу XVII; иначе перейти к шагу XIII. XIII. Вычислить V; = а, + Fxlj\ Wj = dj + F2lj. XIV. Вычислить 0 (Vj)t 0 (Wf). XV. Если 0 (Vj) < 0 (Wj), то положить a/+i = a;-, &/+i = шу и перейти к шагу XVI; иначе положить a/+i == У/, 6/+i = 6/ и перейти к шагу XVI. XVI. Положить / = / + 1 и перейти к шагу XI. XVII. Положить^ ]i = (a,- + bj)/2. XVIII. Если 0 (|i) ^ —аг, то положить pfe = ji и прекратить вычисления; иначе положить 8 — ре и перейти к шагу V. Алгоритм 3" (реализуемая модификация алгоритма 2') 96
Все шаги алгоритма 2\ кроме шага III, остаются без изменений. Шаг III алгоритма 2' следует заменить на шаг III". ИГ. Вычислить шаговый множитель pkt используя для этого алгоритм 1Б или алгоритм 2Б. 4. Метод сопряженных градиентов для минимизации квадратичных функций Задача 4. Найти arg min /0 (х) для заданной квадратичной x?Rn функции /0 (х) й V2 (Ах, х)+ F, *) + а. Алгоритм 4 Начало. I. Выбрать произвольное начальное приближение л? ? Rn и положить k = 0. II. Вычислить Ах° + Ь и положить h° = —(Ах? + Ь)9 г° = ° III. Если ft0 =s 0, то положить х* = х° и прекратить вычисления; иначе перейти к шагу IV. Основной цикл. IV. Если k = 0, то перейти к шагу VII; иначе вычислить вектор gk~l, gk~l = A (xk — я*-1) == pk-iAh*-1 и перейти к шагу V. V. Вычислить коэффициент рЛ по одной из эквивалентных формул В _ (**» в*) . а _ B*. г*) . о „ (Д г*) Pfe Pk Р* VI. Вычислить вектор hk = —zk + ft^A*. VII. Вычислить шаговый множитель pft по одной из эквивалентных формул *. Л*) ' Р*~ (A*t A*) VIII. Вычислить следующее приближение xk+i = xk IX. Вычислить Лл^+1 +6 и положить z*+I = Axk+{ + b. X. Если zk+l = 0, то положить х* = а:*+1 и прекратить вычисления; иначе перейти к шагу XI. XL Положить k = k + 1 и перейти к шагу IV. Теорема 4. Если А — строго положительно-определенная симметричная матрица, то алгоритм 4 решает задачу 4 за число итераций, не превосходящее п и (i) — для всех i, 0 < i < n — 1, выполняется неравенство (Ах* + Ь% hl) Ф 0, если Ах? + b Ф 0; (И) — точка xl (i = 1, ..., п — 1) является точкой минимума квадратичной функции /о ия подпространстве, образованном векторами А0, ..., А'~! и проходящем через точку л?. 3-311 97
5. Реализуемая модификация алгоритма с переменной метрикой Алгоритм 5 Начало. I. Выбрать произвольное начальное приближение х0 ? Rnj целое число а A < а < 10), константу р ? (V2, 4/5) и положить k = 0, / = 0. И. Вычислить V/o (*°), если V/o (*°) = 0, то положить х* = х° и прекратить вычисления; иначе перейти к шагу III. III. Положить #0= / (/ — единичная п X я-матрица), g° =я V/ (°) /o () Основной цикл. IV. Вычислить вектор hk = *g V. Если число й кратно а, то положить / = / + 1, а = За и перейти к шагу VI; иначе перейти к шагу VI. VI. Положить х = xk, h = hk, i = 0. VII. Определить функцию 0 : R1 ->• R1 VIII. Положить р = 0. IX. Вычислить ф (р) = (V/o (х + рА), К). X. Если ф (р) = 0, то положить pk = р и перейти к шагу XV; иначе перейти к шагу XI. XI. Положить % — 1. XII. Вычислить А = 9 (р — ?ир (р)) — 0 (р) + у Хф2(р). XIII. Если А ^ 0, то положить I = i + 1 и перейти к шагу XIV; иначе положить X = (ЗА, и перейти к шагу XII. XIV. Если *' < /, то положить р = р —tap (p) и перейти к шагу IX; иначе положить pk = р —- Адр (р) и перейти к шагу XV. XV. Вычислить следующее приближение **+' = х + pkh. XVI. Вычислить V/o (я**1) и положить gk+l = V/o (xk+l). XVII. Если ^+! = 0, то положить х* = д:^1 и прекратить вычисления; иначе перейти к шагу XVIII. XVIII. Вычислить векторы rk = g*+i _ gk. zk = ^^+i _ xkt XIX. Вычислить матрицу XX. Положить й == Л + 1 и перейти к шагу IV. Библиографические указания. Параграф написан на основании работ [285], [320]. Методы сопряженных градиентов и алгоритмы с переменной метрикой рз- шения задач безусловной оптимизации исследовались также в работах [229, 494, 230, 291, 292; 539, 471, 506, 492, 470, 390, 454, 362]. В работе [542] доказываются теоремы о конечной сходимости варианта метода сопряженных градиентов для минимизации начального направления поиска. В ра* ботах [482, 484, 534, 466] изучаются методы типа переменной метрики.
2.5. Методы сопряженных направлений Задача 1. Найти arg min /0 (х) для заданной непрерывно x?Rn дифференцируемой функции fo\ Rn -*• R1, Предположение 1. Функция /0 дважды непрерывно дифференцируема и ее матрица вторых производных vL/o (*) удовлетворяет условию Ti IIУII2 < (VL/o (х) у, у) < v2 IIУII2, Т2 > Yi > О, при всех х, у ? Rn. Определение 1. Векторы р°, /?\ ..., рп-{ называются сопряженными, или А -ортогональными, если (р1у Ар1) = 0 при / Ф /, где А — строго положительно-определенная матрица. 1. Метод сопряженных направлений с восстановлением матрицы Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение л;0 ? Rn> произвольную симметричную строго положительно-определенную матрицу //0, удовлетворяющую условию у3 \\ у f ^ < (НоУ, У) < ?4 II У II2, ?4 > Тз > О, V у ? Rn, (в частности, можно выбрать #0 = I, где I — единичная п X я-матрица); положить k - 0. Основной цикл. II. Вычислить V/o (#*). III. Если V/o (л;*) = 0, то положить х* == х* и прекратить вычисления; иначе перейти к шагу IV. IV. Если k = 0, то перейти к шагу VIII; иначе перейти к ша^ гу V. V. Если k делится нацело на я, то положить Hk = #0 и перейти к шагу VIII; иначе перейти к шагу VI. VI. Вычислить векторы VII. Вычислить матрицу Hk по одной из приведенных ниже формул: -' ¦ B3) Hk = Hk_x + (r* 4*
и и Я^Ям-У^; B.7) * ° (*.*/,(**). V/,(X*))-(fc*-l, VM**-!)) ' ( ' VIII. Вычислить вектор движения А* к следующему приближению хк+1 IX. Вычислить шаговый множитель р* из условия /0(** + PftA*) = min/0(** + X. Вычислить следующее приближение XI. Положить k = А + 1 и перейти к шагу II. Теорема 1. Если выполнено предположение 1, то бесконечная последовательность {**}*!<>, порожденная алгоритмом I (где матрица Hk вычисляется по одной из формул B.3) —B.10)), сходится к решению х* go сверхлинейной скоростью \\*1+1» — x*\\^hn\\xin — х*\\9 /*=0, 1, ..., где Kin -*• 0 при i -*¦ оо. Замечание 1. Если на какой-либо итерации начальной стадии процесса минимизации по алгоритму 1 вектор hk = 0, то необходимо начать процесс заново, восстановив матрицу Но. 2. Метод сопряженных направлений без восстановления матрицы Алгоритм 2 Н а ч а л о, I. Выбрать произвольное начальное приближение a:0 g Rnf произвольную симметричную строго положительно-определенную матрицу Яо, удовлетворяющую условию (в частности, можно выбрать Но = /, где / — единичная п X я- матрица); положить А = 0. Основной цикл. II. Вычислить V/o (#*), если V/o 100
= 0, то положить я* = хк и прекратить вычисления; иначе перейти к шагу III. III. Если k = О, то перейти к шагу VI; иначе перейти к шагу IV. IV. Вычислить векторы г*-1 = xk — xk~x = pa-i V. Вычислить матрицу Hk по одной из приведенных ниже формул: нк = ^^Г VI. Вычислить вектор движения hk к следующему приближению xk+l VII. Вычислить шаговый множитель pk из условия = min/0 (** + РЛ*). VIII. Вычислить следующее приближение IX. Положить й = k + 1 и перейти к шагу П. Теорема 2. Пусть выполняются предположения 1. Тогда: 1) если первые т точек (т < оо и зависит от точки дс°) бесконечной последовательности {xk}kLo вычислены с помощью метода сопряженных направлений с восстановлением матрицы Hk (т. е. с помощью алгоритма \),а остальные точки этой последовательности — с помощью метода сопряженных направлений без восстановления (т. е. с помощью алгоритма 2), то последовательность {л;Л}ь=о сходится к решению лг* при произвольном выборе начального приближения х°; 2) если начальное приближение х° выбрано в достаточно малой окрестности точки минимума я*, то бесконечная последовательность {**}?L0, порожденная алгоритмом 2, сходится к решению л;*; 3) бесконечная последовательность {x*}?Lo, порожденная алгоритмом 2\ где матрица Hk вычисляется по формуле B.14), неза- 101
висимо от выбора начального приближения х° сходится к решению х* со сверхлинейной скоростью еде Хщ -> 0 при i ->¦ оо. Замечание 2. Из оценок скорости сходимости методов сопряженных направлений следует, что п итераций метода сопряженных направлений эквивалентны (в смысле скорости сходимости) оДной итерации методов типа Ньютона — Канторовича или методов двойственных направлений. Однако они значительно превосходят по скорости сходимости градиентные методы. С -теоретической точки зрения методы сопряженных направлений без восстановления матрицы предпочтительнее в том случае, когда Вт -v (VL/o (xin))~~l при / ->- <х>. К настоящему времени установить строгое выполнение этого условия не удалось. Однако можно предполагать, что такое условие будет выполняться для методов, которые при минимизации квадратичных функций -„(Ах, х) + + (Ь, х) + у дают Нп = А~~\ В [188] рекомендуется применять алгоритм 1 с восстановлением матрицы, если матрица Hk вычисляется по формулам B.6) — B.10), а алгоритм 2 без восстановления матрицы, когда матрица Hk вычисляется по формулам B.3) — B.5). 3. Минимизация квадратичных функций с помощью метода сопряженных направлений Задача 3. Найти arg min /0 для заданной квадратичной функ- x?Rn дии /0 (х) й у (Ах, х) + (&, х) + а. Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение хи ? Rn, произвольную строго положительно-определенную матрицу #0 (в частности, можно выбрать Но = /, где / — единичная п X n-матрица); положить k = 0. Основной цикл. II. Вычислить Axk + Ъ и положить гь = Axk + Ь. Если zk = 0, то положить х* = xk и прекратить вычисления; иначе перейти к шагу LII; III. Если k = 0, то перейти к шагу VI; иначе перейти к шагу IV. IV. Вычислить векторы = xk _ xk-l = V. Вычислить матрицу Hk по лю0ой из формул B.3) — B.10)# 102
VI. Вычислить вектор движения hk к следующему приближению xk+l VII. Вычислить шаговый множитель pfe по одной из формул k, hk) ' ™ (Ahkt hk) ' VIII. Вычислить следующее приближение xk+i = xk + Pkh^ IX. Положить k = k + 1 и перейти к шагу II. Теорема 3. Если А—строго положительно-определенная симметричная матрица с постоянными членами (т. е. (Ах, х) > О при любом х Ф 0), то алгоритм 3 решает задачу 3 за число итераций, не превосходящее я, и (!) — точки #°, я1, ..., *", порожденные алгоритмом 3 при различных способах вычисления матриц Hk, одни и те же; (и) — для всех iy 0 < I < п — 1 выполняется условие (Ах1 + + 6, Н) Ф 0, есла Ах{ + Ь Ф 0; (ш) — точ/са л;', / = 1, ..., п — 1, является точкой минимума квадратичной функции /0 «л подпространстве, образованном векторами Л°, Л1, ..., Л*"" и проходящем через точку л^; (ii?) — ^сла в алгоритме 3 матрицу Hk вычислять: по формулам B.3) — B.5), то Нп = А~~1; по формулам B.8), B.10), то Нп = Яо; по формуле B.6), то Нп = 0; по формуле B.9), то Нп Ф Но. Ниже приводится метод сопряженных направлений, в котором непосредственно находят вектор движения hk без вычисления матрицы Hk. Алгоритм 3' Начало. I. Выбрать произвольное начальное приближение л:0 ? Rn, произвольную строго положительно-определенную симметричную матрицу #0 (в частности, можно выбрать Но = /, где / — единичная п X n-матрица); положить k = 0. Основной цикл. II. Вычислить Axk + b и положить г* = Axk + b. III. Если zk = 0, то положить х* = xk и прекратить вычисления; иначе перейти к шагу IV. IV. Если k = 0, то вычислить вектор h° по формуле Л° = —Hoz° и перейти к шагу V; иначе вычислить вектор движения hk по любому из алгоритмов 1А, 2А, ЗА, 4А и перейти к шагу V. V. Вычислить шаговый множитель pk по одной из эквивалентных формул (Л h*) . (г*, *») *, hk) VI. Вычислить следующее приближение 103
VII. Положить k = k + 1 и перейти к шагу II. Алгоритм 1А (алгоритм вычисления вектора hk) I. Вычислить вектор gk~l = zk — zk~x. II. Вычислить коэффициент рЛ по одной из эквивалентных формул (ft*-1, г*") III. Вычислить вектор Алгоритм 2А (алгоритм вычисления вектора hk) I. Вычислить коэффициент ™ (Яог*, а*)-(Л*-1, П. Вычислить вектор Алгоритм ЗА (алгоритм вычисления вектора /ife) I. Вычислить вектор gk~] = zk — г*. II. Вычислить коэффициент рЛ по одной из формул III. Вычислить вектор hh = — Алгоритм 4А (алгоритм вычисления вектора hk) I. Вычислить коэффициент рЛ по одной из эквивалентных формул а _._ (ЯИ. г*) . о _ (Яог^, г*) Р*~ №*-«, *1 f Pfe~ S\* II. Вычислить вектор Теорема 3'. Если А —строго положительно-определенная симметричная матрица с постоянными членами, то алгоритм 3' решает задачу 3 за число итераций, не превосходящее п, и для последовательности #°, ..., хпу порожденной алгоритмом 3', справедливы утверждения (i), (и), (ш) теоремы 3. Методы сопряженных направлений могут быть применены и для минимизации выпуклой квадратичной функции 104
где (Ах, х) > 0 при х ф 0. При этом следует учитывать два случая. 1. Минимум квадратичной функции /0 существует. Тогда ал* горитм 3 и алгоритм 3' решают задачу минимизации /0 за число итераций, не превышающее п. 2. Функция f0 не достигает минимума. Тогда при некотором k, О < k < п — 1 будет выполняться условие (Ahk, hr) = 0, что влечет pfe = оо. 4. Модифицированный метод сопряженных направлений, не требующий вычисления производных Алгоритм 4 Начало. I. Выбрать? начальное приближение я1*0 ? Rn, удовлетворяющее условиям теоремы 4; ортонормированный координатный базис Л1'1, А1*2, ..., Ли; произвольную константу е? @, 1) (рекомендуется выбрать е?[1СГ10, 10~~3]). II, Положить k = 1. Основной цикл. III. Положить / = 1. IV. Вычислить шаговый множитель р*,* из условия /0 (**><-' + pwft*.') = min/0(^ р V. Вычислить следующее приближение Xk,i e ^,/-i VI. Если i < n, то положить i = i + 1 и перейти к шагу IV; иначе перейти к шагу VII. VII. Вычислить yk = || xk»n — xk*° \\. VIII. Вычислить вектор АМ+1Я JL (Xk,n _ хь,о\ Ук ' IX. Вычислить шаговый множитель pA,/i+i из условия /о (*k'h + pk,n+ihk'n+l) = min /0 (xh>n + phk>n+l). p X. Вычислить следующее приближение xk,n+\ = xk,n XI. Найти индекс s? [I i n\% удовлетворяющий условию pktS = max {рЛл, рЛ,2, ..., р*,л}. XII. Если k = 1, то вычислить определитель АЛ, столбцами которого являются векторы hkf\hk>29 ...,ЛЛ'Л; иначе перейти к шагу XIII. XIII. Если (рк,Лк/Ук) ^ е> то перейти к шагу XIV; иначе перейти к шагу XVIII. XIV. Положить / = 1. 105
XV. Если / = s, то положить ft*+It/ = hk'n+1 и перейти к шагу XVI; иначе положить hk+l'f = hkJ и перейти к шагу XVI. XVI. Если j < п, то положить / = / + 1 и перейти к шагу XV; иначе перейти к шагу XVII. XVII. Вычислить Д/г+i = pkskJVk и перейти к шагу XXII. XVIII. Положить / = 1. XIX. Положить Л*+и = hk'j. XX. Если / < п, то положить / = / + 1 и перейти к шагу XIX; иначе перейти к шагу XXI. XXI. Положить Д*+1 = Ak и перейти к шагу XXII. XXII. Положить я**1-0 = xk>n+K )СХШ. Положить k = k + 1 и перейти к шагу III. Теорема 4. Если выполнены условия: (i) — функция /0 — непрерывно дифференцируема; (и) — функция f0 — строговыпуклая; (Ш) — начальное приближение хио в алгоритме 4 таково, что множество ограничено, то последовательность xku, i = 0, 1, ..., п\ k = 1, 2,... ..., порожденная алгоритмом 4, сходится к единственной точке минимума jc* функции /0. Библиографические указания. Параграф основан на работах [32Q, 108, ПО, 112, 498]. Методы сопряженных направлений исследовались также в работах [109, 295, 540, 570, 470, 362]. 2.6. Методы псевдообратных операторов Задача 0. Найти arg min /0 (х) для заданной функции x?Rn fo:Rn-> R\ Предположение 0. (i) — функция f0 (x) дважды дифференцируемая по Фреше;.(«) — градиент V/o (x) функции f0 (x) удовлетворяет в Rn условию Липшица с константой Yi ^ 0; (ш) — матрица вторых производных А^/о (х) (гессиан) функции /0 (х) удовлетворяет в Rn условию Липшица с константой у2 ^ 0. Методы псевдообратных операторов по существу являются квазиньютоновскими. Скорость сходимости этих методов — сверхлинейная. В &-й итерации за направление движения к следующему приближению xk+l выбирается вектор (—BkVf0 (xk))> где Bk — матрица, аппроксимирующая обратный гессиан функции /0 (л:) в трчке xk. Вычисление матрицы Bk основано на алгоритмах устойчивого псевдообращения прямоугольных матриц. Достоинством методов псевдообратных операторов является то, что они не требуют вычисления матрицы вторых производных функции /0 (#), устойчивы к возмущениям, которые возникают из-за ошибок аппроксимации и дискретизации вычислений, обладают сверхлинейной скоростью сходимости и тогда, когда гессиан вырождается. 106
I. Основной алгоритм Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение *° б Я\ II. Выбрать значение параметра m, m ^ п. III. Положить & = 0. Основной цикл. IV. Вычислить V/o (xk). V. Если k ^ m, то перейти к шагу VI; иначе положить я**1 = = xk — V/o (л:'2) и перейти к шагу XI. VI. Сформировать вспомогательную п X /n-матрицу Л*,ш> /-м столбцом которой является вектор ]\ / = 1, ..., m. VII. Сформировать вспомогательную п X m-матрицу #*,ш, /-м столбцом которой является вектор Ы = V/o (**-<*-/>) — V/o (x*-c^/+i))f /=i Wi VIII. Используя алгоритм Г устойчивого псевдообращения конечномерных прямоугольных матриц, вычислить псевдообратные матрицы Atym и (Нк.тА?т)+, где символ С1" обозначает матрицу, псевдообратную к матрице С. IX. Вычислить матрицу Bk, аппроксимирующую обратный гессиан Bk = X. Вычислить следующее приближение XI. Положить k = k + 1 и перейти к шагу IV. Ниже приводится алгоритм П^ для псевдообращения я X т- матрицы Сл, состоящей из строк a', i = 1, ..., п, (а< = (а<, а', .... <)). Алгоритм Г (регуляризованный рекуррентный алгоритм устойчивого псевдообращения конечномерных прямоугольных матриц) Начало. I. Выбрать параметр регуляризации е ^ 0. tn tn а1 || = II. Вычислить ||а1 ||х = 2 | а|. |. III. Если || а1 ||х > е, то вычислить матрицу размера п X 1 и перейти к шагу IV; если [ а1 \\г < е, то положить С?* = 0 и перейти к шагу IV. IV. Положить / = 1.
Основной цикл. V. Если i < я, то перейти к шагу VI; иначе прекратить вычисления. VI. Вычислить вектор-строку d размера i VII. Вычислить вектор-строку Ь* размера т о = а —ctL(f где Q — матрица размера / X т, состоящая из первых i строк исходной матрицы С„. т VHI. Вычислить || Ь* ||х = Ц | Ь/|, если ( Ь*\\г > е, то перейти к шагу IX; иначе перейти к шагу XI. IX. Вычислить вектор-столбец g1 размера т X. Вычислить вектор-столбец r'+1 размера т и перейти к шагу XII. XI. Вычислить вектор-столбец ri+x размера т и перейти к шагу XII. XII. Вычислить матрицу St размера т X i XIII. Составить матрицу С$.\ размера т X (i + 1), состоящую из матрицы Si и вектор-столбца г(+1 XIV. Положить i = i + 1 и перейти к шагу V. При е = 0 матрица Cf, порождаемая алгоритмом Г, всегда совпадает с псевдообратной к С„, т. е. Cf = Ct, а алгоритм Г есть метод Гревилля псевдообращения прямоугольных матриц. При подходящем (малом) е > 0 алгоритм П^0) устойчив к малым возмущениям вычислений, а также к возмущениям элементов псев- дообращаемой матрицы Сп (метод Гревилля очень чувствителен к ошибкам вычислений). Эта устойчивость имеет место для широкого класса матриц даже неполного ранга. Определение 1. Последовательность {#fe}!Lo, порожденная алгоритмом 1, сходится сверхлинейно к стационарной точке х* функции f0 (х), если при некотором k± < оо достигается Pxk* = Рх* или при всех 6 > 0 — Рхк Ф Рх* и lim || Р (xk+l — х*) \\/\\Р (xk — ft-* 00 — х*) 1 = 0, где Р — ортопроектор на образ R (VL/o (**)) гессиана vL/o (**) в точке х*. щ
Теорема 1. Пусть выполняются предположения О и следую* щие условия: (iv) — последовательность {x*}|Lo, порожденная алгоритмом 1, сходится к стационарной точке х* функции f0 (х); (v) — при каждом k^m матрица Ak,m имеет образ R (Ak,m), который содержит образ R (VL/o (xk)) матрицы вторых производных, найденной в точке xk\ (vi) — при каждом k ^ О справедливо Pxk Ф Рл:*, где Р — ортопроектор на образ R (VL/o (x*)) гессиана V2xxf0 (x*) в точке #*; (pit) — при каждом k ^ 0 справедливо R(BI)zdR(P). Тогда достаточными условиями сверхлинейной скорости входи- мости являются lim\\P(Bt- VLM**))^*1 -**)|/|Я(**+1 -х*)| = 0 B.15) и выполнение условий в некоторой окрестности точки х* II VL/o (xk + т (xW - xk)) P - PVL/o (** + т (x*+J - х»)) | < <p1|P(^+1-xft)l, 0<р1<оо, Vte[0, 1]. B.16) Если для каждого xk+] имеет место неравенство B.16) и L _ х*)) Р - PVL/e (** + т (х»+1 _ х*)) | < x*)I, 0<p1<oo, VxetO, 1], то B.15) является и необходимым условием. Теорема Г. Пусть выполняются предположения 0, условия (iv), (vi) теоремы 1, а в некоторой окрестности точки х* выполняется неравенство B.16), R (А *,т) =>/? (VL/o (**)) ы пусть матрица Bk на шаге IX алгоритма 1 вычисляется по формуле Bk » (Я,,тЛtO* + / - HktmAtm (Hk,mAtm)b где псевдообращение G* означает, что оно ведется алгоритмом V устойчивого псевдообращения П^ о гк, удовлетворяющим условиям max {Ц**-*/||, Ix'- /«Л—m-f-l t...,k lim 8ft в О, р2> р — некоторые положительные постоянные), тогда сходится сверхлинейно. 109
2. Устойчивое псевдообращение плохо обусловленных матриц Определение 2. Для прямоугольной матрицы С псевдособственными числами называют числа kt такие, что %] являются собственными числами матрицы СТС. Отношение v = tanaxAmin, где Хтах$ Я,т1п — максимальное и минимальное из ненулевых псевдособственных чисел матрицы С, называют мерой обусловленности матрицы С. Если v — велико, то говорят, что матрица С плохо обусловлена. Алгоритм Г неприменим к псевдообращению плохо обусловленных матриц. Ниже приводится модификация алгоритма Пе0), основанная на последовательном уточнении псевдообращаемой мат- рицц, которая позволяет псевдорбращать и плохо обусловленные, даже вырожденные матрицы. Алгоритм 2 служит для псевдообращения матрицы Сп размера п X /п, состоящей из строк a1, i — 1, ... ...,п. На выходе алгоритма 2 получается матрица Cff которая принимается за псевдообратную к Сп. Алгоритм 2 (алгоритм П@) (е, 8, jw, p) устойчивого псевдообращения плохо обусловленных матриц) Н а ч а л о. I. Выбрать произвольные константы (параметры алгоритма) е > 0, б > О, |А > 0, р > 0 (рекомендуется выбрать \i <? 4? р, б — «малое» число). II. Вычислить | а1 \}г. (Норма|| Ь\\г вектора Ь = (Ьи ..., Ьт) вычисляется по формуле III. Если | а1 Их > е, то вычислить матрицу Cf размера /пХ 1 С? = (с?)Т(аНа*)ТГ1 и перейти к шагу IV; если | а1 \\г ^ е, то положить С\ = 0, где 0 — ноль-матрица размера m X 1, и перейти к шагу IV. IV. Вычислить матрицу Gx размера m X m V. Вычислить матрицу Qj размера m x m Ог = С? (Ctf. VI. Положить i = 1. Основной цикл. VII. Если / < /г, то перейти к ша- гу VIII; иначе прекратить вычисления. VIII. Вычислить || al+lG{ \\1У если || af+Wt Ц, > е, то перейти к шагу XV; иначе перейти к шагу IX. IX. Вычислить вектор-столбец ri+] размерности m QAYd + QA X. Вычислить матрицу St размера m X I по
XI. Составить матрицу сДп размера т X (I + 1), состоящую из матрицы Si и вектор-столбца rl+l XII. Положить G*+i = GL. XIII. Вычислить матрицу Qi+\ размера т X т по формуле XIV. Положить i = i + 1 и перейти к шагу VII. XV. Вычислить вектор-столбец г**1 размера т G, (а XVI. Вычислить матрицу St размера т X i XVII. Составить матрицу Cj^-i размера m X (/ + 1), состоящую из матрицы St- и вектор-столбца г+1 XVIII. Вычислить матрицу G^-i размера т X т Gi+i = (I-rt+W+l)Gc. XIX. Вычислить матрицу Qi+\ размера /nX/ппо формуле XX. Вычислить величину e'«|trG/+i — rang где tr G/+i — след матрицы G^i; rang G^+i — ранг матрицы <ц XXI. Если б' ^ б, то положить / = i + 1 и перейти к шагу VII; иначе перейти к шагу XXII. (Шаги XXII—XXXVII алгоритма уточняют полученные выше матрицы С$-ь G/4-ь Qy-i на основании матрицы С}±\)- XXII. Положить Qo « <2ж- XXIII. Положить /= 1. XXIV. Вычислить матрицу (С{)* размера т X 1 XXV. Положить / = 0. XXVI. Вычислить вектор-столбец r\i+x размера т XXVII. Вычислить матрицу Q/+i размера т X т XXVIII. Если / = 0, то перейти к шагу XXXI; иначе перейти к шагу XXIX. ill
XXIX. Вычислить матрицу S{ размера т X / XXX. Составить матрицу (C|+i)^ размера т X (/ + 1), состоящую из матрицы S{ и вектор-столбца г +1 XXXI. Если /< /, то положить 1 = 1+1 и перейти к шагу XXVI; иначе перейти к шагу XXXII. XXXII. Вычислить матрицу (C/-j-i)* размера т X (i + 1) XXXIII. Вычислить матрицу Q[+i размера т X т $+1 = (С{+1)+((С*+1)*)Г. XXXIV. Вычислить матрицу G/+i размера т X т XXXV. Вычислить величину 6"= |trGj+i — rang G/+i |. Если 8" ^ 8, то перейти к шагу XXXVI; иначе перейти к шагу XXXVII. XXXVI. Положить C#i = (C/+i)^, Gi+l = G/+b Q/+i - Qi+ь t = i + 1 и перейти к шагу VII. XXXVII. Положить 0?+1 = Q{+{9 / = / + 1 и перейти к шагу XXIV. Библиографические указания. При написании параграфа использовались ра. боты [246, 247, 249]. Дополнительные сведения о псевдообратных матрицах, спо- собах псевдообращения матриц, методах псевдообратных операторов можно получить в работах [244, 245, 246, 247, 248, 249, 252, 61]. 2.7. Методы минимизации вдоль собственных векторов матрицы, близкой к матрице Гессе Задача 1. Найти arg min /0 (х) для заданной непрерывно дифференцируемой функции /0: Rn ->- Л1. Предположение L (i) — минимизируемая функция /0 (х) трижды непрерывно дифференцируема. На &-й итерации приводимых здесь алгоритмов вычисляются векторы ft1'*, ft2'*, ..., ftn'\ представляющие собой систему, близкую к сопряженной по отношению к матрице вторых производных vL/o (*k)> и движение к следующему приближению xk+l осуществляется в направлении этих векторов. Шаговые множители вычис- 112
ляются путем приближенного решения задачи одномерной минимизации. Основной вариант алгоритма обладает квадратичной, а ускоренный — кубической скоростью сходимости. 1. Основной вариант Алгоритм 1 Начало I. Выбрать произвольное начальное приближение х1 ? Л". II. Выбрать произвольную систему ортогональных векторов =l, t-1, ..., п). III. Выбрать константы е0 > 0, т0 > 0, а ? (о» у)» У > К >l. IV. Задать последовательности положительных чисел сходящиеся к нулю. V. Определить функции А : Л+ X Л" X Л" -* Л1; б : Й+ х X Rn X Л" -v Л1; 9 : Rn X Rl+ X Л+ x Rn -* Л1, соответственно, по формулам А (е, х, К) = - е-1 (/0 (* + eh) - f0 (x))i 6(8, х, h) = /0(a: + еД(e, x, h)h)—fo{x)\ 9(x, e, v, A)«/0(^ + vA(ef др, h)h) — fo(x)t где e e Л+; v g л^; x б Д"; Л € /?rt; II h \\ = l. VI. Положить k = 1. Основной цикл. VII. Положить *°'Л = xk. VIII. Найти симметричную матрицу Bk (Hk-\), элементы которой bij = bjt Ьц = 4- t/o (** + а* (Л^-1 + hf^)) - /0 (х» + а здесь ( ) IX. Применяя к симметричной матрице Bk (Hk-i) метод вращений Якоби для вычисления собственных значений и собственны» векторов [360, с. 182], найти такую ортогональную матрицу ЛЛ, что сумма квадратов внедиагональных элементов матрицы AkBk (#a-i) Ak меньше числа р|. Положить Hk == Hk—\Ak и обозначить через %itk9 i = 1,..., п> собственные значения матрицы Bk (Hk-i) (В [321] предлагается также другой эффективный способ вычисления матрицы Hk9 основанный на преобразовании Хаусхолдера и QL — алгоритме для вычисления собственных векторов и собствен
ных значений симметричной матрицы [360 е. 190 и 203]. В начале строится такая матрица Uk, что матрица Wk = U\Bk (//*_i) Uk имеет трехдиагональную форму, а после с помощью алгоритма QL вычисляется матрица Vk, столбцы которой являются собственными векторами матрицы Wk, и полагают Hk = Hk-.\UkVk)- В качестве чисел Ji/*, i = 1, ..., п, берут элементы главной диагонали матрицы ATkBk {Hk-\) Ak. X. Положить i = 0. XI. .Вычислить числа е/^ и v/.^, при которых выполняются следующие два неравенства 6 (Я1*'*, B{tk> Vi,k, и одно из неравенств .*, va, (Вычисление величины v*,* (/ = 0, 1, ..., п — 1) рекомендуется начинать со значения, равного (Aq.i,*)-1). XII. Если eitk ^ ел, то положить pttk = vitk А (е/^, ^'f*» и и перейти к шагу XIII, если г^ < еА, то положить р*,* = 0 и перейти к шагу XIII. XIII. Положить я^1'* » я1»* + p/,*ft/+li* и перейти к шагу XIV. XIV. Если i + 1 = rty то положить хл+! == я"»* и перейти к шагу XV; иначе положить t = I + 1 и перейти к шагу XI. XV. Вычислить значение 0, [max XVI. Положить k = k + 1 и перейти к шагу VII. Теорема 1. Пусть выполняется предположение 1 и (И) — множество {х \ /0 (х) ^ /0 (л;1)> х € Я"} ограничено; (Ш) — матрица вторых производных у^ /0 (х) удовлетворяет неравенствам Lo(х)У, У)<У2\\У II2, 0< Yl < Y2 < оо, И Pft<aft<Tftf A=l, 2, .... Тогда, если в алгоритме 1 вычисление величины v/,* (/ = 0, ... ^.., /г — 1) на шаге XI начать со значения (Vfu)"» mo последовательность {**}*Li, порожденная алгоритмом 1, сходится к единственному решению я* с квадратичной скоростью || xk+i — я* К const || xk — я* f, const > 0. Замечание 1. Если в алгоритме I матрицу Hk> состоящую из столбцов ft1»*, ..., hn>k, вычислять по правилам W+Lk ^ ft^H.*/||A'-H'*||, i - 1, 2, ..., п— 1, 114
где #+i*2 /= 1, 2 л— ** (* = 1, ..., п) — i-VL орт; (**, е{+ k а если k О, еслифал(х*, Ы\ /У-*)<е0> е0 > 0 — константа алгоритма; фа: Я" X Лп X Rn -> Л1, Фа(*, е, h) = a-> [fo(x + а(е + h))-fo(x + ае)- — h(* + <*h) + /о {x)]t x, e, h б Л", B.17> а через А*,ь i == 1, ..., п, обозначить числа фа/г(*А,/iu,/i''*), i = Ь ••• ..., п, то для такого модифицированного алгоритма 1 теорема 1 будет справедливой. 2. Ускоренный вариант Алгоритм 2 Начало. I—VI. Шаги I—VI такие, как и в алгоритме L Основной цикл. VII—XIV. Шаги VII—XIV такие,, как и в алгоритме 1. XV. Положить ? = ***. XVI. Вычислить значение tk, удовлетворяющее условиям теоремы 2. XVII. Вычислить вектор ak, i-я компонента которого а? - [/о (** + tkti*k) - /0 {xk - tkti'k)]lBtk), i = 1, ..., п. XVIII. Вычислить вектор где Ak = A\Bk (Hk-i) Ak — диагональная матрица, полученная при вычислении собственных векторов матрицы Bk (Hk-i). (Для вычисления у нет необходимости вычислять обратную матрицу к Ak. Достаточно обратить лишь диагональные элементы, так как оценка, полученная для недиагональных элементов, обеспечивает кубическую скорость сходимости). XIX. Если выполняется неравенство /0 (у) < /0 (хк), то положить xk+l = у и перейти к шагу XX; если /0 (у) ^ /0 (хк)> то положить xk+l =~хк и перейти к шагу XX. XX. Положить k = k + 1 и перейти к шагу VII. Теорема 2. Если выполняется предположение 1, условия (ii)y (Hi) теоремы 1 и [max 115
то для скорости сходимости последовательности {xk} ?=\, порожден- ной алгоритмом 2г справедлива оценка || xk+\ _ х* | ^ const || xk _ х* i^ const > q Замечание 2. Если в алгоритме 1 матрицу Hk вычислять согласно замечанию 1, то в ускоренном варианте для такого модифицированного алгоритма вектор ak = (а?, ..., а*) следует вычислять по формуле я* =_[/„ (** + tkel) - /о (** - te'NW, i = 1, ..., л, а вектор у по формуле где фа определяется по формуле B.17). Библиографические указания. Параграф написан на основании работ [322, 323, 324). 2.8. Итеративные стохастические методы, использующие аналог функции Ляпунова Задача 1. Найти argmin/<>(#) для заданной функции Приводимый ниже метод основан на введении аналога функции Ляпунова гх (л:), т. е. функции гг (х), удовлетворяющей условию 1. Условие 1. Функция гх {х) неотрицательна, inf rx (х) = 0, дифференцируема, а ее градиент удовлетворяет условию Гельдера ЦУгЛ^-Чг^КЦх-уЬ 0</<1, 0<Х<оо. От гх (х) не требуется существования точек минимума. Поэтому в качестве rt (х) можно брать гх (х) ^ /0 (х) — *п^ /о (х) даже в том случае, когда минимизируемая функция /0 не обязательно имеет точку минимума. Часто в качестве гг (х) берется rx (x) == dt (x, X*), где dx (х, X*) — расстояние от точки х до множества решений X* задачи 1. На k-H итерации в качестве вектора, определяющего направление движения к следующему приближению я**1, выбирается реализация случайного вектора |\ удовлетворяющего условиям 2 и 3. Условие 2. Выполняется следующее обобщение условия псев- доградиентности относительно гг (х): Условие 3. (i) — распределение случайного вектора 6* зависит ько от k и / т е 1* = 1* (**); (И) — () ррд у только от k и /, т. е. 1* = 1* (**); (И) — Ц6
где помехи ?* (х) взаимно независимы, a hk {x) = Elk (x) — детерминирована составляющая процесса; (ш) — *|1^+1<о1+1+тЛИ, <т*>0, тЛ>0. 1. Основной алгоритм Алгоритм 1. Начало. I. Выбрать функцию гг (х), удовлетворяющую условию 1. II. Выбрать начальное приближение я0 ? Rn, удовлетворяющее условию Егг (jc°) < оо. III. Положить /5 = 0. Основной цикл. IV. Вычислить шаговый множитель pk. V. Вычислить реализацию g* случайного вектора ?*, удовлетворяющего условиям 2 и 3. VI. Вычислить следующее приближение VII. Положить k = ? + 1 и перейти к шагу IV. 2. Сходимость алгоритма в среднем Теорема 2. Если выполняются условия: где vk = pk(Qk- mo для последовательности {#*}2Lo, порожденной алгоритмом 1, справедливо [л для всех k, то М*0) По-v,) + ti l - П (l-v,) . Теорема 2'. Если выполняются условия: - /«1; eft = 0, Л = 0, 1, ...; рй = 0, Л = 0, 1, ...; а* = а; k = 0, 1, ...; тй = т, А = 0, 1, ...; 117
(w) — шаговый множитель pk в алгоритме 1 постоянный, причем рл = р, 0<р<26/Хт, Л = 0, 1, ..., то гх {xk) < Ха2р/B6 — Хтр) Егг (**) < Егг {#) faj* + Ха2р A - {qxf)lBQ - Хтр), где <7i= I—p(9 —Хтр/2)<1. •Теорема 2 гарантирует сходимость алгоритма 1 в среднем в области малых значений функции гг (х) и дает оценку скорости сходимости. Теорема 2' гарантирует сходимость в среднем алгоритма 1 со скоростью геометрической прогрессии в области, где rt (x) ^ у, причем у = %а2р/B6 — %тр) тем меньше, чем меньше р и чем меньше аддитивные помехи (т. е. а2). В ситуации с мультипликативными помехами (т. е. когда а = 0) можно выбирать постоянный шаговый множитель рк == р, и если 0 < р < 20/%т, то имеет место сходимость в среднем со скоростью геометрической прогрессии. Теорема 2". Если выполняется условие (i) теоремы 2 и lim \ik = 0, то последовательность {**}?Lo, порожденная алгоритмом 1, такова, что = 0. Если, кроме того, @ где Ук = Ын+i — tyvk, k = 0, 1, то (И) - 118
то ^y 1 для всех k, то Erx (**) < (Ert (*») + MY - 1)) ? A - v,). Теорема 2"'. Если выполняется условие (i) теоремы 2' и условия (i)- О < рА < 2 (9 — е)/Хт, 0<е<9, Ц pk = 00} fc=0 (й)- /по последовательность {xk}kLo, порожденная алгоритмом 1, такова, что Егг (xk) -+ 0 при k -> 00. при этом: (Hi) — kpk монотонно возрастает, kpk -> р > 0-1 (возможно, р = «= оо), то ?гх (^) < {lam (9 _ p-i)) Рк + о (рл); (fo) — kpk монотонно убывает, kpk ->- р < 9* (возможно, р = 0)t /по ot- г5е е — основание натурального логарифма. Теорема 2" является дискретным стохастическим аналогом теорем о сходимости по функционалу в детерминированных методах оптимизации и в ней даются оценки скорости сходимости как асимптотические (утверждения (?), (ш)), так и справедливые при всех k (утверждения (ii), (iv)). В теореме 2'" утверждается, что при наличии аддитивной помехи для сходимости в среднем достаточно условий 00 2р*=оо; р?->0 при &->оо. Скорость сходимости Егг (хк) зависит от скорости убывания pk% причем оценка для Егг (хк) не лучше, чем О (\lk). Замечание 2. Если функция гг (х) имеет единственную точку минимума х*, причем выполняется условие 419
(например, если гг (х) сильновыпукла), то из сходимости Erk (xk) -* 0 следует средняя квадратическая сходимость xk к х*, т. е. E{\\xk — r*||2)-*0 при 6->оо. 3. Сходимость алгоритма почти наверное Теорема 3. Если выполняется условие (i) теоремы 2 и то последовательность {jt*}2Lo» порожденная алгоритмом 1, такова, что п.н. гх (**)-* 0 (т. е. Р{гх (**)->-0}=»1). э/лож для все* е0 > 0, k0 ^ О, Если, кроме того, lim 7л^ V > !• то ^ля всякого lt>0 найдет- k-+ оо ся /2 = /2 (/i, Егг (л;0)) такое, что Р гх И < (/i + /2) П A — v,) 5лл «?« ftl > 1 — IJli, а если y'k^4> 1 идя ecejc k, mo f *"~1 1 P Vi (xh) < (/x + Erx (xO) + ^0/(у - 1)) П A - v,) для всех А I ' i=0 J Теорема З'. Если выполняются условие (i) теоремы 2\ условие оо (i)теоремы 2'" и а2 = 0, либо S р| < оо, то гх (**) ->• 0. ло /срожв того, АрА монотонно убывает и kpk ->- р < в, то для всякого 1г > 0 найдется такое 12 = /2 (/i, Я^ (jc0)), 1 — \гг (jb*) < (/i + У е *-° для всех k i5 частности, если рк = р/Л, Л ^ 1, p9 < 1, /по ^ля всякого /х > О Р {/-1 (л*) < /х/ЛР9 5ля всгл; ? > 1} > > 1 - ^ (jc1)//! — Хо«р«в/(/ж B6 - Хрт) A - рв)). Замечание 3. Если функция /j, (лг) имеет единственную точку минимума х* и /i (л*) = 0, inf гг \х) > 0 при некотором е !> О, п *—*• и >в . / «\ И.Н л <, П.Н j, то из сходимости Гх ф*) -^ О следует, что xR -> л;*. 120
4. Модификация алгоритма Если условие 2 в алгоритме 1 заменить на 2' то при ©о оо S 9k = °°> X fe=O *=0 Ь=0 последовательность {**}*Lo, порожденная модифицированным алгоритмом, такова, что гх (#*) сходится почти наверное к пределу, а JimfVM**), tff*) —0. Если на шаге VI алгоритма 1 следующее приближение xk+] вычислять по формуле где яд — оператор проектирования на некоторое множество X, то для такого алгоритма все предыдущие теоремы остаются справедливыми. Библиографические указания. Параграф написан на основании работы [296]. Результаты типа теоремы Т' о сходимости алгоритма 1 (но с менее полными оценками скорости сходимости) приведены в [3, 263]. Утверждения о сходимости почти наверное в условиях теоремы 3' приведены в [3, 263], [436]. Вопросы локальной сходимости рассматривались в [213, 513]. В [297] для линейного случая приведены более точные оценки сходимости алгоритма 1. 2.9. Стохастические квазиградиентные методы 1. Общий стохастический квазиградиентный метод для детерминированных задач Задача 1. Найти arg min fo(x) для заданной функции Предположения 1. (i) Функция f0 непрерывно дифференцируема; (ii) градиент функции /0 удовлетворяет условию Липшица, т. е. для любых точек х, у |V/oW-V/o(y)|<Y|x-y|f 0<y<oo. В стохастических квазиградиентных методах последующие приближения к искомому решению находят в направлении стохастического квазиградиента — случайного вектора lk, условное математическое ожидание которого в некотором смысле близко к градиенту (или обобщенному градиенту) рассматриваемой функции, т. е. •. •. **) = «У/о (xk) + b\ bk -* 0, ak -^ const > 0. 121
Алгоритм 1 Начало. I. Выбрать произвольную начальную точку х° ? Rn и числа ро, Toll. Положить k = 0. Основной цикл. III. Вычислить реализацию %k случайного вектора ?, условное математическое ожидание которого удовлетворяет равенству где ak — неотрицательная случайная величина и bk — случайный вектор, измеримые относительно cr-подалгебры 3$k, индуцированной семейством случайных величин (л;0, ..., xk)\ Vfo(xk) —градиент функции /0 в точке xk. IV. Вычислить вектор xk+l = xk — РкУЛк- V. Вычислить шаговый p*+i и нормирующий v*+i множители. IV. Положить k = k + 1 и перейти к шагу III. Теорема 1. Пусть: выполнены предположения 1 и, кроме того, для каждого числа б < оо существует число Cq < оо такое, что I! v/o (*) II ^ Сб n/?w /0 (х) ^ б; r]fe (со) — случайная величина, измеримая относительно о-подалгебры 35k, индуцированной величинами (л;0, ..., xk), такая, что для любого б < оо а некоторого числа с& | / /о (#s) ^ б, s = 0, 1, ..., &; нормирующий множитель yk удовлетворяет условию 0 < у ^ у/гЛ/г ^ rfe < °° I кроме того, величины pk, rkJ измеримые относительно а-подалгебры 3$k, такие* что pk ^ 0, ak ^ 0, || bk \\/ak -^ 0 равномерно с вероятностью 1 и fe=0 2 Тогда последовательность {xk (со)}Г=о, порожденная алгоритмом 1, такова, что почти для каждого со последовательность {/0 (xk (о)))}Г=о сходится, и \\ V/o (^*s (<°)) || -> 0 почти наверное при s ~> оо для некоторой подпоследовательности Теорема Г. Пусть выполнены предположения 1 и, кроме того* для каждого числа б < оо существует число С$ < оо такое, что II Wo (*) II < Q я/?и /о W <8;aftsl; d^, (со) — случайная величина, измеримая относительно о-подалгебры 3$k, индуцированной величинами (*°, ..., xk) такая, что для любого б и некоторого числа сь < оо 122
при f0 (xs) ^ S, s = 0, 1, ..., k\ нормирующий множитель yk удовлетворяет условию 0 < V ^ ТА <[ Tk < oo; кроме того, величины pfe, rk, измеримые относительно а-подалгебры 3$k, и такие, что pk ]> ^0, pk -> 0, || bk || -> 0 равномерно с вероятностью 1 и с вероятностью 1. Тогда последовательность точек {xk (co)}^L0, порожденная алгоритмом 1, такова, что почти для каждого со последовательность {f0 (xk (со))}~=о сходится, причем || V/o (**s((o)) || -+ -> 0 почти наверное при s-v оо. Следствие. Если /0 (х) унимодальна, т. е. имеет только глобальный экстремум, и || Vfo(x) \\ Ф 0 во всех точках х, за исключением оптимальных, то из теорем 1 и Г следует, что последовательность {/о (xk (со))}Г=о почти наверное сходится к глобальному экстремуму. 2. Общий стохастический квазиградиентный метод для стохастических задач Задача 2. Найти arg min Ещ {х> со) для заданной функции ФО : Rn X Q -> Л1. Предположение 2. Функция /0 (л:) — EyQ (x, со) дважды непрерывно дифс1>еренцируема. Алгоритм 2 Начало. I. Выбрать: произвольное начальное приближение д:0 ? Rn\ начальные значения нормирующего и шагового множителей ро и Yo, начальное значение величины смещения Ао (числа р0, 7о и Ао выбираем в соответствии с условиями теоремы 2). II. Положить k = 0. Основной цикл. III. Выбрать натуральное число sk ^ 1. IV. Найти {^fS}^1 — серию независимых наблюдений вектора I = (glf ..., ln) с независимыми и равномерно распределенными на [—1, 1] компонентами в k-й итерации. V. Найти {co^s}^ — серию независимых по k = 0, 1, ..., наблюдений состояний природы со. VI. Вычислить вектор e x*-pkyk V s=l . VII. Вычислить шаговый множитель pk+u нормирующий множитель Y*+i и смещение А^+ь удовлетворяющие условиям теоремы 2. VIII. Положить k = k + 1 и перейти к шагу III. 123
Теорема 2. Пусть выполнено предположение 2 и условия: (i) — }*л (со) — случайная величина, измеримая относительно в-подалгеб- ры 3$к, индуцированной величинами (х°, ..., xk), такая, что для любого а и некоторого числа т (а) < оо р /о (л:5) < а, s = 0, 1, ..., /г; (ii) —нормирующий множитель yk удовлетворяет условию 0< у ^ YfeH* ^ ^ < °°J (и*) —величины рл, rfe, Дл, измеримые относительно в-подалгебры 3$k, и такие, что 9k ^ 0, рй ->• 0, Д/г -^ 0 равномерно с вероятностью 1 и /г=0 с вероятностью 1. Тогда последовательность точек [xk (о))}^1о, порождаемая алгоритмом 2, такова, что почти для каждого со последовательность {/о (**)}?=о сходится, причем \\ V/o (**s) || -> 0 почти наверное при s -* оо (Эля некоторой подпоследовательности ks. 3. Стохастический квазиградиентный метод с процедурой прерывания Задача 3. Найти arg min /0 (л:) для непрерывно дифферен- X цируемой функции /0: Rn -> Я1. Стохастический квазиградиентный метод с процедурой прерывания основан на построении в k-й итерации вектора стохастического квазиградиента %k, условное математическое ожидание которого где bk — вектор, измеримый относительно сг-подалгебры 3$к, индуцированной случайными величинами (л:0, ..., xk). Если в какой-то итерации движение по стохастическому квазиградиенту выходит за пределы сферы определенного радиуса, то происходит прерывание, и алгоритм начинает работать с произвольной точки, принадлежащей наперед заданному ограниченному замкнутому множеству. Алгоритмы такого рода отражают те часто встречающиеся на практике ситуации, когда в процессе вычислений приходится менять либо параметры алгоритма, либо сам алгоритм. Алгоритм 3 Начало. I. Выбрать произвольную константу а @ < а < оо) я задать произвольное замкнутое множество В, содержащееся в сфере радиуса а, т. е. Выбрать произвольную начальную точку х? ? В. II. Задать правило формирования последовательности шаговых множителей {рл}?«о. 124
III. Положить k = 0; найти р0. Основной цикл. IV. Вычислить случайный вектор удовлетворяющий условию где bk — вектор, измеримый относительно а-подалгебры $fe, индуцированной (х?, ..., xk). V. Вычислить вектор (** —Р*Р. если 11^ И ||< а; lz*+igfi, если || ^ (со) || > а, где zk+l — произвольная точка множества 5. VI. Найти р/г+i. VII. Положить k =* k + 1 и перейти к шагу IV. Теорема 3. Пусть /0 непрерывно дифференцируема функция и выполнены условия: (i) — существует такая постоянная б, что (И) - inf /0(лг); (iw) — величины pfe, измеримые относительно а-подалгебры 3$k> удовлетворяют условиям п. н.; последовательность {xk (©)}|Lo, порожденная алгоритмом 3, такова, что почти для каждого о последовательность {/0 (х* (co))}^Lo сходится и любая предельная точка последовательности [xk (co)}?Lo принадлежит X* ^ {х\ у/0 (л:) = 0} почти при каждом со. Замечание 3. В данной теореме, в отличие от теоремы 1, не требуется глобального условия Липшица. Имеющиеся в теореме 3 условия равномерной по k ограниченности (условие (i)) легко ослабить, используя нормирующий множитель yk, Эти условия ограниченности, однако, выполнимы, если только точки xk изменяются в ограниченной области, а случайные помехи имеют усеченные законы распределения, т. е. принадлежат также ограниченной области. 4. Стохастический градиентный метод с постоянным шаговым множителем Задача 4. Найти arg min Ею /0 (х, со) для заданной функции /0: Rn X Q ^ Л1. 125
Предположение 4. Почти при всех со выполняются неравенства: V*, " co)AF*>—oo. Алгоритм 4 Начало. I. Выбрать произвольное начальное приближение л° ? Rn, шаговый множитель к > 0. II. Положить k = 0. Основной цикл. III. Вычислить реализацию со* слу- чайнЪго параметра со. IV. ВЫЧИСЛИТЬ V/o (xk, СО*). V. Вычислить следующее приближение xk9 со*). VI. Положить k = k + 1 и перейти к шагу III. Теорема 4. Пусть выполнено предположение 4г тогда для любых чисел г ? @, 1) и б > 0 алгоритм 4 с постоянным шаговым множителем к, приводит в область Ь-экстремальных решений s (s ^ e (Y26V(8n^Lr4)J) итераций с вероятностью Р ^ 1 — е. 5. Стохастический градиентный метод минимизации сложных функций регрессии Задача 5. Найти arg min /0 (х, Е^у (х, со)) для заданной скалярной функции /0 : Rn X Rm ~> R1 и заданной m-мерной функции ф : Rn X Q -> Лт (распределение случайного вектора со считается неизвестным, а поэтому неизвестна функция Е^(р (х, со)). Предположение 5. (i) — существует точка минимума х* функции %(*) А /о (а:, Ясоф (л:, со)); (и) — в окрестности точки (х*, z*) <где г*= Есоф (х*, 0)) функция z (х) (где 2 (х) Д 1?а)ф (а;, со)) и функция /0 (х, г) дифференцируемы, причем VJo (х, г), Уг/0 (х, г) удовлетворяют условию Липшица, a Vxz (x) ограничен. На k-й итерации алгоритма при известном xk следующее приближение xk+l находится в направлении статистической оценки анти- 126
градиента функции % (х), вычисляемой с помощью вспомогательного вектора yk, приближающего значение Z?o>(p (xkt со). Алгоритм 5 Начало. I. Выбрать произвольные начальные приближения х° б R1, у0 6 Rm . II. Положить k =3 0. Основной цикл. III. Вычислить независимую реализацию со* случайного вектора со. IV. Вычислить векторы VJ0 (xk, yk)f VJ0 (x\ yk), ф (**, <ok} и матрицу У^ф (xk, со*). V. Вычислить шаговые множители pk и р^, удовлетворяющие условиям теоремы 5. VI. Вычислить следующее приближение хк+1 для вектора х* V2/o (x VII. Вычислить приближение ук+х для вектора 2 - Ф (х*; ©*)]. .VIII. Положить k = Л + 1 и перейти к шагу III. Теорема 5. Пусть выполнится предположения 5 и (Hi) — функция % (х) локально сильно выпукла в окрестности х*, т. е. (уЧ^х), х — х*) > v || х — #* ||2, v > 0, для х близких к х*$ (iv) — в окрестности точки х* помехи имеют ограниченную дисперсию: Тогда если в алгоритме 5 начальное приближение (х°, у0) удовлетворяет условию а шаговые множители pk и р* такие, что 00 ОО S pfe = оо, S (р*J < dx < оо, P;/Pfe > р > о, feO feO mo для достаточно большого р последовательность {**}JLo, no- рожденная алгоритмом 5, удовлетворяет соотношениям Р {х*-+ х*} > 1 - т, т = схв + с2 (а2J pdx + с3 (ахJ dl9 где с,-, / = 1, 2, 3 — некоторые константы. Если шаговые множители pk и pk выбирать по правилам 127
то для любых чисел т > 0, с4 > О можно выбирать параметры б, р, р', / так, что **f-?i для всех *}>1—т. Замечание 5. Из теоремы следует, что можно гарантировать сходимость алгоритма 5 с вероятностью 1 — т, где т тем меньше, чем точнее начальное приближение (я0, у0), чем меньше уровень помех и длина шаговых множителей. Сходимости в среднем квадратиче- ском или с вероятностью единица в невыпуклом случае не существует, так как при наличии помех имеется ненулевая вероятность выхода последовательности {xk}kLo из окрестности решения, вне которой сходимость отсутствует. Библиографические указания. При написании параграфа использовались работы [149, 153, 29, 171, 299]. Стохастические квазиградиентные методы решения задач безусловной оптимизации исследовались также в работах [148, 150, 151, 156, 157]. 2.10. Метод локальных вариаций Задача 1. Найти arg min /0 (х) для заданной непрерывно диф- ференцируемой функции /0: /?%- К1. Метод локальных вариаций не требует вычисления производных минимизируемой функции и не является очевидной модификацией алгоритма, требующего таких вычислений. Алгоритм 1 Начало. I. Выбрать начальное приближение #° ? Rn, удовлетворяющее условиям теоремы 1; константу р0 > О (рекомендуется ро= 1). II. Вычислить п-мерные векторы Ы% i =* 1, 2, ..., 2n, Л*Мп=е/, /« 1, 2, ..., п; W~-ei, /-1, 2 n, где el, / = 1, ..., п — /-й столбец единичной п X п-матрицы. III. Положить k = 0, х = х?. IV. Вычислить /о (*)• Основной цикл. V. Положить р =s рй. VI. Положить 1=1. VII. Вычислить /0 (х + phf). VIII. Если /0 (л: + ph?) < /0 (л:),то положить х =* х + phl и перейти к шагу VI; иначе перейти к шагу IX. IX. Если I < 2/г, то положить i = i + 1 и перейти к шагу VII; иначе перейти к шагу X. X. Положить xk+x == xf рк+\ = р/2, k = k + 1 и перейти к шагу V. Теорема 1. Если функция f0 непрерывно дифференцируема и на- 128
чальное приближение *° в алгоритме 1 таково, что множество ограничено, то каждая предельная точка х' последовательности *}?»о, порожденной алгоритмом 1, удовлетворяет условию /0 (х') = 0. Если, кроме того, множество состоит из конечного числа точек и каждая его точка доставляет либо локальный минимум, либо локальный максимум, то последовательность {xk}kLo сходится к такой точке ~х, что V/o (x) = 0. Метод локальных вариаций особенно эффективен, когда минимизируемая функция /0 имеет вид п /о (*) = ? ft (*<). * = {xlf x29 ..., хп). Библиографические указания. Параграф основан на работах [285, 15]. Дополнительные сведения о методе локальных вариаций можно найти в работах [385, 388, 449, 260, 261, 339]. 2,11. Методы самонастраивающихся программ Задача L Найти arg min /0 (л:) для заданной функции fo:RK Предположение 1. Функция /0 — непрерывно дифференцируема в R\ В алгоритме 1 с помощью принципа самонастраивающихся программ производится соединение следующих методов: градиентного спуска, покоординатного спуска, сопряженных градиентов. На каждой итерации алгоритма определенное число раз производится градиентный спуск в подпространстве быстрых переменных и градиентный спуск в подпространстве медленных переменных. Алгоритм применим к решению задач овражного типа. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение II. Выбрать произвольные константы 8 > 0, б > 0 (причем е ^ <? 6) и четное натуральное число /. III. ПОЛОЖИТЬ /П? = /7Z2 = 1/2. IV. Положить kl= 0. Основной цикл. V. Положить х1^ лЛ VI. Положить / = 1. б 3-341 129
VII. Вычислить, вектор /i;= (Л{,..., h!n), 1-я координата которого при dxt —IQdx ' в противном случае, . здесь I = 1, ..., п. VIII. Вычислить значение p/f удовлетворяющее условию min /0 $ + р№) == /0 (xl + p/W)- IX. Положить л*74 = 7 + р/Лу. X. Если /<mf, jro положить / = /+1 и перейти к шагу VII; иначе положить л;^1 == л:/+1 и перейти к шагу XI. XI. Положить j?=^+1. XIL Положить / = 1. XIII. Вычислить вектор hf = (Л{, ..., fti), *'-я координата которого */о О при + в/Л{ ] в противном случае, где 7-1)i при / XIV. Вычислить значение ру, удовлетворяющее условию min /0 (xi + phi) = /о (xf О XV. Положить ?+1 = ? + p/ft7. XVI. Если / < ml, то положить / = / + 1 и перейти к шагу XIII; иначе положить xk+x = я7 и перейти к шагу XVIL XVII. Вычислить веса XVIII. Вычислить XIX. Вычислить 130
XX. Положить k = k + 1 и перейти к шагу V. Теорема 1. Если градиент функции /0 удовлетворяет условию Липшица, т. е. и множество Хо= [х | /0 (*) < /0 (*°)> * € Rn) ограничено, то бесконечная последовательность {**}*Lo, порожденная алгоритмом 1, такова, что , /с/иш* того, /0— дважды непрерывно дифференцируема функция, причем ее матрица вторых частных производных VL /о (*) удовлетворяет условию при всех x ? Хо и любых у ? Д", то xk -* **, /0 (^) ~^ /о (**)> г(?е л:*— то«//са минимума (единственная) функции f0. Для скорости сходимости справедливы следующие оценки: -/о(*•)<«**; l^-^KOi^. B.19) еде Замечание L Шаги VIII и XIV алгоритма 1 требуют точного вычисления минимума одномерной функции, что на практике не всегда выполнимо. Можно построить модификацию алгоритма 1, требующую приближенного вычисления минимума одномерной функции. Для этого необходимо константу 8 выбирать из условия 0 < < е< V2, а шаги VIII и XIV алгоритма 1 заменить, соответственно, на шаги VIII' и XIV. VIIГ. Вычислить значение р/, удовлетворяющее условию (l-e)(VM?)f ^<(VM? XIV. Вычислить значение рЛ удовлетворяющее условию (i-e)(v/eG)f ft'XWo^' + P/ft'), ft'XefVM?), ft7)- При выполнении условия B.18) для скорости сходимости модифицированной) таким образом алгоритма 1 справедливы оценки B.19) при q = 1 _ 28 A - е)(р/у)A + $/) Библиографические указания. Параграф написан на основании работы [384]. Дополнительные сведения о методе самонастраивающихся программ и его модификациях можно получить из работ [381, 382, 383]. 5* 131
2.12. Общий метод спуска Задача 1. Найти arg min /0 (х) для заданной функции x?Rn fo:R"-+ R\ Предположение 1. (i) — функция f0 выпукла и непрерывно дифференцируема в Rn. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х*?ВГ. II. Положить k =* 0. Основной цикл. III. Найти вектор hk, удовлетворяющий условию IV. Вычислить шаговый множитель pk > 0 из условия V. Положить VI. Положить k = k + 1 и перейти к шагу III. Для бесконечной последовательности {**}?*<), порожденной алгоритмом 1, справедлива следующая теорема. Теорема 1. Если выполняется предположение 1 и условия: (и) - \ (Y<oo); {Hi) — множество ограничено; (iv) — хотя бы для одного ножра k справедливо (У/о (**),**) ^0 >0 то имеет место оценка ^iSo(^JJ » где /0 (х*) =» min /0 (л:), сг> 0 — константа. n Если, кроме того, /0 (л:) — сильновыпуклая функция, т. е. су* щгствует Р > 0 такое, что , 1], х, 132
то имеют место оценки /о (*w) - /о (**) < (/о (*°) - /о (**)) ехр [- -JL S0 (« Библиографические указания. Параграф основан на работе [192]. 2.13. Методы случайного поиска 1. Алгоритм случайного поиска в выпуклых задачах минимизация Задача 1. Найти arg min /0 (х) для заданной функции fo:R-»RK Предположения L (i) — функция /0 выпукла в Rn\ (ii) — функция /0 непрерывно дифференцируема в Rn и ее градиент удовлетворяет условию Липшица в Rn, т. е. В методе случайного поиска на k-й итерации по известному приближению хк вычисляется следующее приближение xk+l как точка, в некотором смысле близкая к точке минимума функции /0 на прямой xk — pft*, pg(—оо, оо), где ^независимая реализация единичного случайного вектора равномерно распределенного на единичной сфере с центром в начале координат. Для выпуклой функции алгоритм генерирует последовательность {x*}2Lo, для которой где х*— решение задачи 1, О (/) — величина порядка t9 а для сильновыпуклой функции /0 справедливо xk-+x* и /0 (хк) -> /0 (лс*) при &->оо со скоростью сходимости геометрической прогрессии. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение II. Положить k = 0. Основной цикл. III. Если V/o (xk) = 0, то положить л*= хк и прекратить вычисления; иначе перейти к шагу IV. IV. Найти независимую реализацию hk единичного случайного вектора 5, равномерно распределенного на единичной /г-мерной сфере с центром в начале координат. V. Вычислить шаговый множитель р*, удовлетворяющий неравенству /о (** - 9khk) < A - К) /о И + М>* B.20) 133
где Xk — произвольная точка фиксированного отрезка К ^ Kk ^ 1 (А,— произвольная константа из полуинтервала @, 1]), wk = = min; fo(xk-phk). VI. Вычислить следующее приближение VII. Положить k = k + 1 и перейти к шагу III. Теорема 1. Пусть выполняется предположение 1 и пусть множество Хой {* | /о (х) < /о (*°)> * € ^?п} ограничено. Тогда, если последовательность {xk)t=Qy порожденная алгоритмом 1, такова, что. V/o (xk) Ф 0, k = 0, 1, ..., и wno существует номер т0* для которого атс Ф О, где /по 5ля б^ел: m ^ т0 + 1 выполняется неравенство ы> J где сг — положительная постоянная. Теорема 1\ Пусть выполняются все предположения теоремы 1 и функция /0 (х) сильновыпукла. Тогда для последовательности порожденной алгоритмом 1, выполняются неравенства (т— 1 m = 1, 2, ...; 9 / Л m~1 \ — Х II ^5 ^Г V О \^^ — /О V* Л ехР \ ^Г Zj Vai) I » т = 1, 2, .,., v — параметр сильновыпуклой функции. Замечание 1. При выполнении предположений теоремы 1 алгоритм 1 порождает последовательность {**}|Lo, для которой с вероятностью, равной единице, осуществляется событие «для всякого е, удовлетворяющего неравенствам 0 < е < 1/д, найдется такое число / (е), что неравенства /о №) — /о (х*) ^ Zyrfn/ikk A — пг)) справедливы для всех целых k > / (е)». Отсюда, в частности, следует, что с вероятностью равной единице для любого числа р > 2уц2п/Х найдется число / ф) такое, что неравенства справедливы для всех целых 134
Замечание Г. При выполнении предположений теоремы Г алгоритм 1 порождает последовательность {#*}?Lo> для которой с ве- роятнсгстью, равной единице, xk ->• х* и /0 (**) -> /0 (**) при k -> -> <х> со скоростью сходимости геометрической прогрессии. 2. Адаптивный алгоритм случайного поиска Задача 2. Найти arg min /0 (л;) для заданной функций В данном адаптивном алгоритме случайного поиска величина шагового множителя изменяется в зависимости от результата, полученного на предыдущей итерации. Вектор lk, определяющий направление движения в &-й итерации к следующему приближению xk+\ является независимой реализацией случайного вектора |, распределенного по единичной сфере с плотностью р% (у) J B#21) Алгоритм 2 Начало. L Выбрать произвольное начальное приближение х°? R'\ произвольное начальное значение шагового множителя Ро и константы уг> 1, 0 < у2< 1; положить k = 0. Основной цикл. II. Найти независимую реализацию ?* случайного вектора |, распределенного по единичной сфере с плотностью р% (у), удовлетворяющей условию B.21) (в частности [349], этому требованию удовлетворяют случайный вектор 5, равномерно распределенный на сфере, а также проекция на единичную сферу вектора, равномерно распределенного в кубе или на его поверхности). III. Если /0 (xk + рЛк) < /о (хк), то положить hk = pklk\ иначе положить hk = 0. IV. Вычислить следующее приближение V. Вычислить следующее значение шагового множителя согласно условий JYiP*> если Р*+! Ь,Р*. если VI. Положить k = k + 1 и перейти к шагу II. Теорема 2. Если выполнены условия: (i) — функция /0 ограничена снизу; (И) — функция /0 непрерывно дифференцируема; (ш) — х*— единственная точка минимума функции /0; (iv) — V/o (x) ф 0 при хф х*\ (v) — множество {х \ /0 (х) ^ а] ограничено для всех а ^ /о (*°); (°*) — 7iY2 > U то последовательность {хн}^о9 135
порожденная алгоритмом 2, сходится с вероятностью 1 к точке минимума х*. Библиографические указания. При написании параграфа использовались ра« боты [193, 349, 547, 6, 418, 67, 328, 224, 283, 284]. Глава 3 МЕТОДЫ ОПТИМИЗАЦИИ НЕДИФФЕРЕНЦИРУЕМЫХ ФУНКЦИЙ И МЕТОДЫ ОТЫСКАНИЯ СЕДЛОВЫХ ТОЧЕК 3.1. Методы обобщенного градиентного спуска Задача 0. Найти arg min /0 (л;) для заданной выпуклой функ- цни fo:Rn-+ Я1. Предположение 0. Множество решений X* непусто. 1. Алгоритм с постоянным шаговым множителем В алгоритме 1 в k-й итерации за вектор движения hk к следующему приближению xk+{ выбирается единичный вектор обобщенного градиента функции /0 в точке xk. Шаговый множитель р является постоянной величиной. При заданном б > 0 можно указать такое р — р (б), что порожденная алгоритмом 1 последовательность {л;*}?=о попадает в область, где минимизируемая функция /0 отличается от своего минимума на величину 6. Алгоритм 1 Начало. I. Выбрать: произвольное начальное приближение д^€ Rn, постоянный шаговый множитель р > 0; положить k = 0. Основной цикл. II. Вычислить обобщенный градиент g (**) функции /0 в точке xk. Если g (xk) = 0, то xk ? X*; иначе перейти к шагу III. III. Вычислить вектор hk (определяющий направление движения к следующему приближению xk+]) IV. Вычислить следующее приближение V. Положить k == k + 1 и перейти к шагу II. Теорема 1. Если f0 выпуклая функция, то для произвольного 6 > 0 можно найти такое р F), что для последовательности л;0, х1, ..., xky ..., порожденной алгоритмом 1, при р == р (б) найдется такое k = k*9 что xk* g X*7 либо такая подпоследовательность У\ xk\ ..., /<, ..., что \imfo(xki)—mlnfo{x)<6. x?Rn 136
Теорема Г. Если выпуклая функция /0 имеет область миниму* мое X*, содержащую сферу радиуса г > р/2, то для последовательности х°, а;1, . ., xkt ..., порожденной алгоритмом 1, найдется такое k = k*, что xk* € X*. 2. Основной алгоритм В алгоритме 2 в k-и итерации за вектор, определяющий направление движения к следующему приближению лг*-И , выбирается единичный вектор обобщенного градиента функции /0 в точке xk. Шаговый множитель pk удовлетворяет классическим условиям 00 Р*>0; ?pft = oo, limPfe = O. C.1) Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение х° ? Rn и положить k = 0. Основной цикл. II. Вычислить обобщенный градиент S (xk) функции /0 в точке xk. Если g (xk) = 0, то положить #*= xk и прекратить вычисления; иначе перейти к шагу III. III. Вычислить вектор IV. Вычислить значение шагового множителя pk, удовлетворяющее условиям теоремы 2. V. Вычислить следующее приближение VI. Положить k = k + 1 и перейти к шагу II. Теорема 2. Пусть /0 (х) — выпуклая функция, область минимумов X* которой ограничена. Тогда, если шаговые множители pki k = О, 1, ..., таковы, что ; limpfc = 0; 2р*=°°. то бесконечная последовательность {хк}?=о, порожденная алгоритмом 2, удовлетворяет предельным соотношениям lim minllx* — x\\ = 0; lim/0(^) = пи'п/0(л:). ^°° xqRn Теорема 2'. Пусть множество минимумов 1S7
выпуклой функции /0 непусто и шаговые множители pfe, k = 0, 1, ..., удовлетворяют условиям оо р* > 0, fc = О, 1, ,..; lim pk = 0; ? р* = оо. Тогда, если выполнено одно из следующих пяти условий: (iv) — множество X* ограничено; оо Ер*<оо; {о1)-ЫХ*Ф0; fc=o (vii) — множество X* является линейным многообразием в Rn* (viity — п = 2, то предельные точки бесконечной последовательности {¦**}?*<), порожденной алгоритмом 2, принадлежат множеству X*. При этом условия (v) и (vii) обеспечивают сходимость последовательности {xk)kLo к точке х ? X*, а условие (vi) обеспечивает конечность алгоритма 2. 3. Модификация основного алгоритма В алгоритме 3 в k-й итерации за вектор направления движения к следующему приближению xk+l выбирается вектор, обратный к обобщенному градиенту функции /0 в точке xk. Шаговый множитель pk удовлетворяет классическим условиям C.1). Алгоритм 3 Начало. I. Выбрать произвольную начальную точку я0 ? ? Rn и положить k = 0. Основной цикл. II. Вычислить обобщенный градиент ё (х*) функции /0 в точке xk. III. Найти значение шагового множителя pfe, удовлетворяющее -условиям теоремы 3. IV. Вычислить следующее приближение V. Положить k = k + 1 и перейти к шагу II. Теорема 3. Пусть /0 (л:) —выпуклая функция, область минимумов которой X* ограничена. Тогда, если (i) — шаговые множители pftf k = 0, 1, ..., таковы, что со limpft = 0; ? pft = оо; (й) — последовательность обобщенных градиентов {g (лг*)}?=о, порожденная алгоритмом 3, ограничена, то бесконечная последовательность {xk}kLo удовлетворяет предельным соотношениям lim min||*fe — х\\ = 0; lim fo(xk) = min /o(x). -136
4. Первый алгоритм со специальным выбором шага Алгоритм 4 может быть применен для минимизации функции /о (*)» удовлетворяющей предположению 4. Предположение 4. Пусть /0 (*) — выпуклая функция такая, чта при некотором 0 ^ ср < —-, для всех x?Rn выполняется неравенство (g(*), х-х*(х))>cosФ||g(х)\\\\х-х*(х)|, C.2) где х* (х) — точка, принадлежащая множеству минимумов функции /0 (а:) и лежащая на кратчайшем расстоянии от х. В алгоритме 4 в k-n итерации за вектор направления движения Ы1 к следующему приближению xk+l выбирается единичный вектор обобщенного градиента функции /0 в точке хк. Шаговые множители p/j, k == 0, 1, ..., вычисляются в соответствии с рекуррентной формулой где sincp, -?- Последовательность {хк}%=о, порожденная алгоритмом 4, сходится к множеству минимумов со скоростью геометрической прогрессии и знаменателем q = р (ф). Алгоритм 4 Начало. I. Выбрать произвольную начальную точку д^ ? II. Найти угол 0<Сф<-~-, удовлетворяющий неравенству C.2) для всех х g Rn. III. Вычислить значение р (ф) по формуле C.3). IV. Вычислить начальное значение шагового множителя р0> удовлетворяющее неравенству 2с08ф . где л:* (а:0) — точка, принадлежащая множеству минимумов функции /0 (л:) и лежащая на кратчайшем расстоянии от точки х°. V. Положить k = 0. Основной цикл. VI. Вычислить вектор направления движения hk к следующему приближению xk+{ hk = g(xk)/\\g(xk)\[ 139
VII. Вычислить следующее приближение x*+ieX»_Pftfc*. VIII. Вычислить значение шагового множителя где р (ф) определяется по формуле C.3). IX. Положить k = k + 1 и перейти к шагу VI. Теорема 4. Пусть имеет место предположение 4. Тогда последовательность xky k = О, 1, ..., порожденная алгоритмом 4, такова, что либо при некотором k — g {xk) = 0 и xk принадлежит области минимумов, либо при всех k = О, 1, ... будет выполняться неравенство pfe/cosq>, -т-1Г 2 cos ф . р^ 0 <; ф < —. Замечание 4. В неравенстве C.2) cos ф показывает степень вытя- нутости поверхностей уровня функции /0. Если в некоторой окрестности минимума функции /0 не существует угла ф < я/2, удовлетворяющего неравенству C.2), то такая функция называется существенно овражной и для ее минимизации алгоритм 4 неприменим. В этом случае следует использовать универсальный метод выбора шаговых множителей, как в алгоритме 3. 5. Второй алгоритм со специальным выбором шага Алгоритм 5 может быть применен для минимизации функции /0, удовлетворяющей предположениям 5. Предположения 5. (i) — функция /0 выпукла в Rn\ (ii) — функция /о имеет единственную точку минимума х*\ (Hi) — для любого числа а > 0 существует конечное число т > 0 такое, что для любой пары точек xf z?Y, ' такой, что f0 (х) = /о (*) Ф /о (**)» выполняется условие В алгоритме 5 в &-й итерации за вектор направления движения hk к следующему приближению xk+l выбирается единичный вектор обобщенного градиента функции /0 в точке xk. Шаговые множители pft, k == 0, 1, ..., вычисляются по рекуррентным формулам где а ^ V~2 — характеризует степень «вытянутости» поверхностей уровня функции /0. НО
Последовательность {xk}%=o, порожденная алгоритмом 5, сходится к точке минимума функции /0 со скоростью геометрической прогрессий и знаменателем q = ]/а2— Но. Алгоритм 5 Н а ч а л о. I. Выбрать произвольное начальное приближение *° 6 Rn. II. Найти число а ^ У*2 и значение шагового множителя р0 > О, удовлетворяющие условиям теоремы 5. III. Положить k = 0. Основной цикл. IV. Вычислить вектор направления движения hk к следующему приближению xk+x hk^g(xk)/\\g(xk)\\. V, Вычислить следующее приближение VI. Вычислить значение шагового множителя р*+1 = pfe j/a2 — I/a- VII. Положить k = k + 1 и перейти к шагу IV. Теорема 5. Пусть имеют место предположения 5 и пусть числа о и р0 удовлетворяют условиям: (i) — а ^ У2\ (и) — р0 ^ (Цлс0 — — л;* j)/a; (ui) — для любой пары точек х, г принадлежащих множеству Y^ {х\\х — х* | ^ ар0}, и таких, что /0 (х) = /0 (г) Ф Ф /о («**) выполняется условие последовательность {^}^о, порожденная алгоритмом 5, сходится к точке л;* со скоростью геометрической прогрессии знаменатель которой q = ]/а2 — 1/а, за исключением случая, когда для некоторого k = k, g (x*) == 0, т. е. 6. Алгоритм, использующий априорное знание минимума функции Алгоритм 6 основан на априорном знании значения /о минимизируемой функции в точке минимума. В k-й итерации за вектор движения hk к следующему приближению **+' выбирается обобщенный градиент функции /0 в точке xk. Шаговые множители pfe, k = = 0, 1, ..., вычисляются по формуле где у — константа, удовлетворяющая неравенствам 0 < у < 2. Последовательность {л;л}а1о, порожденная алгоритмом 6, сходится 141
к точке минимума х* со скоростью геометрической прогрессий со знаменателем q = A — у B — у) а2А,2I/г < 1, где X и а — некоторые константы. Алгоритм 6 Начало. I. Выбрать произвольное начальное приближение х° ? Rn и константу 7, 0 < у < 2; положить й = О, Основной цикл. II. Вычислить вектор направления движения hk к следующему приближению хк+х пё формуле hk =* = ?(**). III. Вычислить значение шагового множителя IV. Вычислить следующее приближение хк — Pkhk. V. Положить ft = fc+l и перейти к шагу II. Теорема 6. Пусть выпуклая функция /0 имеет единственную точку минимума х*, причем известно значение /о функции f0 в точке х*. Тогда, при 0 < у < 2 последовательность {a;*}21o> порожденная алгоритмом 6, сходится к х* из любого начального приближения х° ? Rn- Теорема 6'. Пусть: (i) —/0 (х) —сильновыпуклый функционал, причем ||*-**f, a>0; (И) — функция /о (х) удовлетворяет условию Липшица на области гд{*1A*-*п т. е. для всех х> у ?Y выполняется Тогда, при 0 < у < 2 последовательность {xk}kLo, порожденная алгоритмом 6, сходится к точке минимума л:* со скоростью геометрической прогрессии со знаменателем q = A — у B — v) а2/^2O2 < 1. 7. Помехоустойчивый алгоритм Алгоритм 7 указывает на устойчивость метода обобщенного гра* диентного спуска к малым ошибкам в вычислении точек xh, k = = 0, 1, ... и обобщенных градиентов g (xk) в этих точках. В /^-итерации алгоритма за вектор движения hk к следующему приближению **+! выбирается единичный вектор обобщенного градиента функции /0 в точке yky лежащей в 6^-окрестности точки xk. Последовательность {**}?Lo, порожденная алгоритмом 7, сходится 142
X*, Алгоритм 7 Начало. I. Выбрать произвольное начальное приближение х? ? Rn и положить k = 0. Основной цикл. II. Вычислить шаговый множитель рк и величину смещения 8fe, удовлетворяющие условиям теоремы 7. III. Вычислить обобщенный градиент g (yk) функции /0 в любой точке yk, удовлетворяющей неравенству IV. Вычислить вектор направления движения hk к следующему приближению xk+l V. Вычислить следующее приближение VI. Положить k = k + 1 и перейти к шагу II. Теорема 7. Пусть /0 — выпуклая функция, множество минимумов X* которой непусто. Тогда, если числа 6k, pk, k = 0, 1, ..., выбирать такими, что оо. то последовательность ,{**}!Lo, порожденная алгоритмом 7, удовлетворяет предельному соотношению 8. Многошаговый метод обобщенного градиентного спуска Предположение 8. Функция /0 — выпуклая. В приводимом ниже алгоритме направление спуска выбирается с использованием обобщенных градиентов и значений функции /0 на предыдущих итерациях. На каждой итерации требуется решать специальную задачу минимизации, которая соответствующей нормировкой сводится к задаче линейного программирования. Шаговые множители pk удовлетворяют классическим условиям. Алгоритм 8 Начало. I. Выбрать произвольное натуральное число т ^ 1. II. Выбрать произвольный набор точек {дг*т+1, ..., л?}. 143
III. Выбрать константу а, а > /0 (л:0). IV. Положить k = 0. Основной цикл. V. Вычислить V/o (xk) — обобщенный градиент функции /0 в точке хк. VI. Вычислить шаговый множитель pfe, удовлетворяющий условиям теоремы 8. VII. Если V/o (хк) = 0, то положить х*= хк и прекратить вычисления; иначе перейти к шагу VIII. VIII. Если /0 (хк) > а, то положить &к = [к] и перейти к шагу IX, если /о (я*) ^ а, то положить 3k = [k — т + 1, ..., А} и перейти к шагу IX. IX. Вычислить вектор hk из условия где функция Ф* (ft) & max [/0 (*/) + (х* - х>, V/o И) + (Л, V/o ( X. Вычислить следующее приближение XI. Положить к == ^ + 1 и перейти к шагу V. Теорема 8. Пусть выполняются условия: (i) — функция /0 в«- пукла; (И) — множество /oW= inf Ш) непусто и ограничено; (Hi) — шаговые множители pkf k = 0, 1, ..., удовлетворяют условиям во Р/г -^ + 0 ЛР^ * -> ОО, S pfe = ОО. &о бесконечная последовательность {хк}ь=о> порожденная алгоритмом 8, такова, что гшпЦл; — xk\-+0 при k->oo; х?Х* /0 (xk) -^ inf /0 (х) при k -> оо. Замечание 8. Если множество X* содержит внутренние точки, то последовательность {л:Л}^о, порожденная алгоритмом 8, конечна. 9. 8-субградиентный метод Задача 9. Найти arg min /0 (л:) для заданной функции 144
ложения 9. (i) — функция /0— выпуклая полунепрерыв(х) > —оо; (ш) — по крайней мере в одной точке 1с ? € Rn выполняется условие /0 (х) < оо. Определение 9. Для произвольного е > 0 вектор ge (x) ? Rn называется е-субградиентом функции /0 в точке л:, если /0 (z) ^ ^/oW-8 + (z- х, ge (x)) при всех z ? Я\ Множество е-суб- градиентов в точке х обозначается через G8 (x). Алгоритм 9 Начало. I. Выбрать вектор х° ? Дп такой, что /0 (х0) < оо. II. Выбрать константы ео>0 и 0<а< 1. III. Положить k == 0. Основной цикл. IV. Вычислить где i — наименьшее неотрицательное целое число, при котором 6 ? G*k+1 <*¦). (Если л;А не является точкой минимума функции /0, то всегда существует неотрицательное целое число /, при котором выполняется включение 0 g GaiE (xk)). V. Найти вектор hfe, для которого выполняется неравенства sup {h\ g)<0. VI. Положить я*+! = д;^ + p^ft*, где pft > 0 такое, что выполняется неравенство /0 (л:Л) — /0 (xk+l) > ед+ь VII. Положить k = k + I и перейти к шагу IV. Теорема 9. Пусть выполняются предположения 9. Тогда либо бесконечная последовательность {я*}?.о удовлетворяет предельному соотношению (iv) — lim/0(**)— min fo{x)f либо /0 (хт) = min /0 (х) при некотором т > 0. ?Ъш, /срои^^ того я^ пусто и ограничено, то: (v) — каждая сходящаяся подпоследовательность последовательности {xk}kLo имеет предел в X* и хотя бы одна такая подпоследовательность существует; (vi) — при каждом е > 0 существует т^О такое, что xk ? X*+ гУ при всех 145
k ^ m, где Y & {x 11| x || ^ Г}; (i?w) — если минимум функции f0 достигается в единственной точке л;*, то [xk)t=*o стремится к х*. Библиографические указания. При написании параграфа испол/зовались работы [395, 396, 397, 401, 404, 391, 392, 406, 290, 126, 160, 277, 433, 491, 481]. 3.2. Методы градиентного типа с растяжением пространства Задача 0. Найти arg min /0 (х) для заданной почти диффе- ренцируемой функции /0: Rn -> Я1. Сущность методов градиентного типа с растяжением пространства" заключается в построении в процессе последовательных приближений линейных операторов, изменяющих метрику пространства, и выборе направления спуска, соответствующего антиградиенту в пространстве с новой метрикой. Определение 0. Оператором растяжения пространства Rn в направлении I ? Rn (| 11| = 1) с коэффициентом а (а > 0), называется оператор Ga (l), действующий на вектор х, представленный в форме (здесь 7| (х) = {ху Ъ)\ di (х) == х — (*, I) I) следующим образом: где Ga (I) — линейный симметричный оператор. Оператор Gp (?) = Gya (I) называется оператором «сжатия». Ниже приводятся алгоритмы с растяжением пространства в -направлениях: сначала почти градиента, а затем разности двух последовательных почти градиентов (§ 3.3). В алгоритме 1 в k-ft итерации следующее приближение xk+l находят по формуле где lk — единичный вектор почти градиента функции q>k (у) Д А /0 (Вьу), которая получается из /0 (х) при использовании линейного преобразования пространства у = А^с\ Bk — оператор, обратный результирующему оператору Ak преобразования пространства (Ak получается в результате последовательного применения операторов растяжения пространства в направлении нормированных почти градиентов 5°, 6\ ..., I*" с коэффициентами а1у ... ..., ak: Ak = G<xk (lk~l)Ak-\)', 9k — шаговый множитель. Операторы В^\ для отображения преобразованного в основное пространство Rn определяются рекуррентными соотношениями Вь+х = BkGH+x lk); Bo - /, где Pfc+i A l/a*+i — коэффициенты «сжатия» пространства. 146
Алгоритм 1 Н а <Ка л о. I. Выбрать начальное приближение л:0 ? Rп и неособую матрицу Во (можно выбрать Во = /, где / — единичная п X я-матрцца); положить k = 0. Основной цикл. II. Вычислить почти градиент g (xk) функции /о в точке xk. III. Если g (xk) = 0, то положить х* = л;* и закончить вычисления; иначе перейти к шагу IV. IV. Вычислить оператор В\, сопряженный оператору Bk. V. Вычислить почти градиент g (yk) функции cpfe (у) ^ /0 (Bky) в точке yk= BJlxk VI. Вычислить направление растяжения пространства VII. Вычислить значения шагового множителя pk. VIII. Вычислить следуюдцее приближение IX. Найти коэффициент растяжения пространства X. Вычислить коэффициент «сжатия» пространства XI. Вычислить оператор ?*+ь обратный результирующему оператору Ak+\ преобразования пространства, где оператор «сжатия» G$k, {(|fe) вычисляется согласно определения 0. XII. Положить k = k + 1 и перейти к шагу П. Теорема 1. Пусть /0 (я) — почти дифференцируемая функция и х*— точка ее локального минимума. Тогда, если в процессе реализации алгоритма 1 выполняются условия: 0- I (ii)- 1 + S < ak < а, б > 0, то существует такая подпоследовательность {х s}?Li и у > 0, что \ s=l, 2, ... . Теорема Г. Пусть /0 (л:) — почти дифференцируемая функция, определенная в некоторой сферической окрестности 5а точки х* 147
локального минимума, и в тех точках, где функция дифферекцируе- ма, ее производная /о,ц(*> (х) по направлению р (х) = х — х* удовлетворяет неравенству Тогда, если в алгоритме 1 принять л 2U' /„(**)-М«*) . то найдутся константа у' и подпоследовательность индексов {ks}ZL\, ks < &s+i, такие, что fotf')-fo{#)<y'*-Vn9 s-1, 2, ... . Замечание 1. Описанный в теореме Г способ выбора коэффициента растяжения аъ ft = 1, 2, ..., и шагового множителя pfe, k = О, 1, 2, ..., находит непосредственное применение при решении систем нелинейных уравнений М*) = 0» t= 1, ..., п, путем сведения к задаче min max | ft (x) |. При этом, как показано в [148], в регулярном случае при достаточно хорошем начальном приближении л:0 константы i и V можно выбирать близкими к единице, что обеспечивает быструю сходимость. При решении выпуклых задач, в общем случае /0 (#*) неизвестно, поэтому представляет интерес вопрос о подборе /0 (#*) в процессе счета. Справедлива следующая теорема. Теорема 1\ Пусть выпуклая функция /0 (х) обладает следующими свойствами: (i) — существует постоянная у > 1 такая, что если функция Ф(т), Ф(т)Л/0(A-т)^ + т^), 0<т<1, строго убывает по %, то выполняется неравенство где /о,(*!_**> (х1) — производная функции f0 (x) по направлению (х1 — л:2) в точке х1; (ii)- lim /oW = + oo. IWK°° Тогда, если в алгоритме 1 принять 148
pk = 2y(f0(xk)-])/(y+l)\\g(yk)l где Твыбрано большим или равным /* Л min /0 (лс), то последователь- ность {pft}S«o является ограниченной и для произвольного е > О найдется k такое, что (счет прекращается, если на некотором шаге /0 (xk) ^ f). Если f выбрано меньшим /*, то последовательность {pfc}*Lo является неограниченной. Замечание Г. Теорема Г позволяет строить алгоритм минимизации функции /0 (х), удовлетворяющей условиям теоремы, при неизвестном /*. Этот алгоритм связан с подбором /* с использованием следующих признаков: если при некотором / шаговый множитель pk превосходит наперед выбранное достаточно болыпое_ число, то/увеличивается; при приближении /0 (**) к / — значение / уменьшается. Теорема 1"\ Пусть функция f0 выпукла в Rn и в процессе применения алгоритма 1 выполняются следующие условия: (И) — Тогда для последовательности {хк}?=о, порожденной алгоритмом 1, справедливы неравенства || g (yr Библиографические указания. При написании параграфа использовались работы [398, 401, 403, 407, 400, 408, 409, 405, 340]. 3.3. Методы градиентного типа с растяжением пространства в направлении разности двух последовательных почти градиентов (г (ос)-алгоритм) Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение #0 € Rn> коэффициент растяжения пространства а > 1 и положить g° = 0 @ — /z-мерный нуль-вектор), Во = I (I — единичная матрица), k = 0. Основной цикл. II. Вычислить почти градиент g (xk) функции /0 в точке хк\ если он определен неоднозначно, то взять такой почти градиент, что (Bkgk, g (xk)) < 0. 149
III. Вычислить вектор Примечание: вектор gk является почти градиентом функции <Pft (у) й /о (ВнУ) в точке У = Akxk, где Ak & ВТ1— оператор растяжения пространства после k-й итерации. IV. Вычислить разность двух почти градиентов от функции Ф* (#), вычисленных в точках yk = Akxk, yk= Akxh"x, no формуле V. Вычислить направление растяжения пространства VI. Вычислить оператор В^+ь обратный результирующему оператору Ak+i преобразования пространства после k + 1-й итерации, где Р = 1/ос — коэффициент «сжатия» пространства. VII. Вычислить почти градиент g*+* функции ф^+i (у) Л /о Eа+1^) в точке у = ?J+i**: VIII. Вычислить значение шагового множителя pk из условия pk = arg nunfo(xk — pB^gW) C.4) (операция min означает определение ближайшего к нулю локального минимума). IX. Вычислить следующее приближение Примечание: шаг IX фактически реализует шаг наискорейшего спуска для функции щ+г (у) Д /0 (Bk+\y): X. Положить k = k + 1 и перейти к шагу II. Теорема 1. Если выполнены условия: (i) — функция /0 — непрерывна и кусочно-гладкая; (И) — lim /0 (х) = +оо; (ш) — функция f0 lWI->oo обладает следующим свойством: в любой ограниченной области X для любого б > 0 найдется такое г > 0, wno если #, у ? X, f0 (х) — — fo (у) <г и на отрезке меоюду х и у функция /0 убывает, то \х — У II < в (для выпуклых функций это свойство является аналогом сильной выпуклости), то предельной точкой последовательности 150
{xk}?=o, порожденной алгоритмом 1 при любом а > 1, является некоторая точка х, множество почти градиентов которой образует линейно-зависимое семейство векторов. При этом, в силу монотонности процесса спуска (/0 (л?) > /0 (х1) > г. > /0 (**) ^ • ..) последовательность {/о (xk)}h=o сходится к /0 (*)• Теорема Г. Если выполняются все условия теоремы 1 и х*— изолированная точка локального минимума, х°— такая точка, что связная компонента множества {x\f0 (х*) ^ /0 (х) ^ /0 (*°)Ь содержащая точки **, х°, не имеет кроме х* других точек г, у которых семейство почти градиентов G (z) линейно-зависимо, то последовательность {**}?=(), порожденная алгоритмом 1 с начальной точкой х°, удовлетворяющей условиям теоремы, сходится к х*. Замечание 2. В отличие от других градиентных методов минимизации негладких функций (обобщенного градиентного спуска, обобщенного градиентного спуска с растяжением пространства в направлении почти градиента) г (а)-алгоритм обеспечивает монотонность спуска благодаря определенному по формуле C.4) способу выбора шага спуска: /0 (*°) ^ /о (-*1) ^ ••• ^ /о (**)• Однако он существенно отличается от обычных релаксационных методов следующим: если pk = 0, то это не значит, что процесс спуска прекращается. При выполнении серии итераций с нулевым шагом точка хк стоит на месте, но изменяются Bk и gk. В это время как бы в скрытой форме осуществляется поиск подходящего направления спуска. Библиографические указания. При написании параграфа использовались работы [398, 401, 403, 407, 400, 408, 409, 405, 3401. 3.4. Методы локального случайного поиска Задача 0. Найти arg min /0 (х) для заданной непрерывной x?Rn функции /0 : Rn -> J?1. 1. Алгоритм локального случайного поиска с парной пробой Алгоритм 1 Начало. I. Выбрать: произвольное начальное приближение а:0 6 Rn, пробный шаговый множитель у > 0 и рабочий шаговый множитель р > 0; положить k = 0. Основной цикл. II. Вычислить независимую реализацию |* случайного единичного вектора ?, равномерно распределенного по всем направлениям пространства параметров х. III. Вычислить вектор движения hk к следующему приближению xk+l h* = р sign [/0 (xk - ylk) -fo(xk + $*)]. 151
IV. Вычислить следующее приближение **И «. ж* + pft*. V. Положить ft = ft + 1 и перейти к шагу II. Замечание 1. Характерной особенностью данного алгоритма является его повышенная тенденция к «блужданию», даже в том случае, если решение задачи 0 найдено. Однако алгоритм 1 приводит с большой вероятностью в е-окрестность точек локального минимума, зависящую от шага р, размерности пространства Я" и вида функции /0. (Например, в центральном поле, т. е. когда /0 (х) = х — х*9 для того чтобы попасть в е-окрестность точки х* с большой вероятностью, необходимо шаговый множитель р выбирать из условия р < Va^ , где при п = 2 а*п = 0,7; при п = 3 а« = 0,9; при п = 4 а« = 1,0). 2. Алгоритм локального случайного поиска с возвратом при неудачном шаге Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение х° ? Нп, шаговый множитель р > 0; положить k = 0. Основной цикл. II. Вычислить независимую реализацию lk случайного единичного вектора |, равномерно распределенного по всем направлениям пространства Rn. III. Вычислить вектор z по формуле z = xk + p%k. IV. Если /0 (z) < /о (**)» то положить л;**1 = z и перейти к шагу V; иначе положить хк+1 = xk и перейти к шагу V. V. Положить k = k + 1 и перейти к шагу II. Замечание 2. Алгоритм 2 (как и алгоритм 1) может быть рекомендован для оптимизации объектов, функция качества которых изменяется во времени со сравнительно большой скоростью. 3. Алгоритм локального случайного поиска с линейной экстраполяцией Смысл такого алгоритма поиска сводится к следующему. После неудачного случайного шага делается двойной шаг в противоположном направлении, но функция цели /0 в этом состоянии не вычисляется, а экстраполируется в предположении о линейном характере функции цели /0. Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение х0 ? Rn, шаговый множитель р > 0; вычислить /0 (л;0); положить ft = 0. Основной цикл. II. Вычислить независимую реализацию lk случайного единичного вектора I, равномерно распределенного по всем направлениям пространства Лп. 152
III. Вычислить вектор г = xk + plk. IV. Вычислить /о (*) — значение функции /0 в точке г, если /о (*) < /о (**), то положить xk+l = г, /0 (хк+1) = /0 (г) и перейти к шагу VII; иначе перейти к шагу V. V. Вычислить вектор xk+l = xk — р?*. VI. Вычислить «значение» функции /0 в точке VII. Положить k = k + 1 и перейти к шагу II. Замечание 3. Алгоритм 3 обладает повышенным быстродействием по сравнению с алгоритмами 1 и 2, ибо он использует неблагоприятные шаги. Однако он плохо работает в нелинейной задаче. 4. Алгоритм случайного поиска по наилучшей пробе с накоплением Сущность алгоритма заключается в следующем. В k-u итерации из точки хк делается т (т^ 1) пробных шагов по независимым случайным направлениям g*Jf / = 1, ..., /я, и определяется наилучшее направление !*•'*. Рабочий шаг делается именно в этом направлении. Алгоритм 4 Начало. I. Выбрать произвольное начальное приближение х° ? Rn, пробный шаговый множитель у>0 и рабочий шаговый множитель р > 0, число пробных шагов т ^ 1; положить k = 0. Основной цикл. II. Вычислить т независимых реализаций ?*•', / = 1, ..., т, случайного единичного вектора g, равномерно распределенного по всем направлениям пространства Rn. III. Вычислить индекс /*, удовлетворяющий условию /о (> + **'*)= IV. Вычислить следующее приближение V. Положить ft = k + 1 и перейти к шагу II. Замечание 4. С увеличением числа пробных шагов направление вектора движения \кЛ* приближается к направлению, обратному градиенту V/o (xk)f и в пределе при т -*• оо, у -> 0 совпадает с ним. 5. Алгоритм статистического градиента Алгоритм 5 Начало. I. Выбрать произвольную начальную точку х° ? ? Rn, пробный шаговый множитель у > 0, рабочий шаговый множитель р > 0, число пробных шагов т ^ 1; положить k = 0. Основной цикл. II. Вычислить т независимых реализаций lktl, i = 1, ..., /и, случайного единичного вектора ?, равномерно распределенного по всем направлениям пространства Rn* 153
III. Вычислить приращения функции /0 IV. Вычислить вектор ?Л = 2 (?Л>'А/). 1=1 V. Вычислить вектор движения hk к следующему приближению xk+{ по формуле /i* = —gk/1| g* |. VI. Вычислить следующее приближение VII. Положить & = & + 1 и перейти к шагу II. Замечание 5. Вектор gk является статистической оценкой градиентного направления функции /0 в точке хк (при т -> оо, у -> О gk стремится к направлению градиента V/o (л;*)). Библиографические указания. При написании параграфа использована рабо» та [326]. Дополнительные сведения о методах локального случайного поиска можно найти в работах [326—328, 177, 178] и в сборнике статей [4]. 3.5. Псевдоградиентные методы адаптации и обучения Задача 1. Найти arg min f0 (х) для заданной функции fl ; ЦП _> Д1. Псевдоградиентные алгоритмы адаптации и обучения основаны на предположении, что существует некоторая детерминированная гладкая функция /х : Rn ->- Я1, называемая критерием оптимальности. Этот критерий либо задан априорно (если, например, исходная задача заключается в минимизации функции /0 (л:) = fx (x))f либо может вводиться искусственно. Если минимизируемая функция /0 — гладкая, то fx (х) гз /0 (х) и в псевдоградиентном алгоритме в качестве вектора ?*, определяющего направление движения к следующему приближению xk+\ выбирается псевдоградиент функции /0. Если минимизируемая функция /0 — негладкая, то в качестве вектора ?* выбирается псевдоградиент некоторой специально построенной вспомогательной гладкой функции flf точки минимума которой являются точками минимума функции /0. Например, если точка л:* является точкой минимума функции /0, то в качестве функции f1 можно выбрать ft (х) = || х — х* j|. Чтобы этот пример не показался бесполезным и не вызвал недоразумений (ведь нам неизвестна точка минимума функции /0), следует отметить одно чрезвычайно важное свойство псевдоградиентных ал- горитмов — эти алгоритмы не требуют вычисления ни значений ft (x), ни градиентов V/j (x) для функции fl9 они требуют только вычисления псевдоградиентов ?* для функции /г в точках х — xky a псевдоградиент ?* часто можно вычислить косвенным путем, не зная точки х*. Определение 1. Вектор ?Л называется псевдоградиентом функ- 154
ции /i в точке х = xk, если он является реализацией некоторого случайного вектора ?, удовлетворяющего условию Приводимые ниже теоремы о сходимости псевдоградиентного алгоритма адаптации и обучения позволяют с единой точки зрения обосновать сходимость многих алгоритмов стохастической аппроксимации, случайного поиска, обобщенного градиентного поиска и др. Предположения L (i) — функция fx ограничена снизу (И) — градиент функции /\ удовлетворяет условию Липшица Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х1 6 Я". П. Положить k = 1. Основной цикл. III. Найти значения pk и Xki удовлетворяющие условиям теоремы 1. IV. Вычислить псевдоградиент lk функции /2 в_точке xk, т. е. вычислить одну реализацию ?* случайного вектора ?fe, условное математическое ожидание которого удовлетворяет неравенству (VMA Е{1ЧЪ\ 1\ ..., Б*-1)»О, (Предполагается, что lk и ft удовлетворяют неравенству V. Вычислить следующее приближение VI. Положить А в ft + 1 и перейти к шагу III. Теорема 1. Пусть выполняются предположения 1 и и fx удовлетворяют неравенствам E(\\kfll\ .... Б^Х^ + бц + б2 (V/i (xk~l), E (I*/!1, .... I*-1)); или 155
Тогда при любом х1 последовательность {xk}kLu порожденная алгоритмом 1, почти наверное такова, что для нее существует предел последовательности {fx (xk)}*?L\ и Теорема V. Пусть в дополнение к условиям теоремы 1 (VI)- >0 при для всех е > 0. Тогда, почти наверное шп л (*»)«/;. А-*оо Теорема Г. Пусть в дополнение к условиям теоремы 1 выполнены условия (vii) — множества [x\fx (x) ^ const} ограничены; (viii) — при || V/2 (xk"]) || > e для всех г > 0. почти наверное найдутся подпоследовательность * и точка х* такие, что 0; lim **< = **; HmM Теорема 1'".. Пусть в дополнение к условиям теоремы 1 множество X* точек минимума функции /х непустое и inf/!(*)>/; при ^(х, Х*)>е; ^(*, Х*)= inf Ix-yl Х (X)- l 6*-1))>в(е)>0 при Л (л:, Х*)>е для всех е > 0. Тогда частности, если X* состоит из единственной точки х*9 то Библиографические указания. Параграф написан на основании работы [303]. 3.6. Квазиградиентные методы Задача 0. Найти arg min /0 (х) для слабовыпуклой вниз X функции /0: R" -> Я1. Определение 1. Функция /0 называется слабовыпуклой вниз, если
для любого х из произвольного замкнутого ограниченного множества существует непустое множество G (х) векторов V/o (x) таких, что для всех г и V/o (х) ? G (х) /о(*) - /о (х) > (V/o (х), z - х) + г (г, х) C.5) и г (х, у)\\х — у Ц-1 -^ 0 равномерно по х при у -+ х. Определение 2. Вектор V/o (*), удовлетворяющий неравенству C.5), называют квазиградиентом слабовыпуклой функции /0 в точке х. Слабовыпуклыми функциями являются дифференцируемые, а также выпуклые функции (не обязательно дифференцируемые). В первом случае квазиградиентом является обычный градиент, а во втором — обобщенный градиент. Класс слабовыпуклых функций оказывается замкнутым относительно операции взятия максимума, т. е. если / (х, у) — слабовыпуклые при каждом значении у функции, то f0 (х) & max / (х, у) = / {х, у (х)) является слабовыпуклой функцией и (X) -= VXf (*> У) l I. Квазиградиентный метод минимизации слабовыпуклой вниз функции Задача 1. Найти arg min /0 (л;) для слабовыпуклой вниз X функции /0: Rn ->• Я1. Множество решений X* для этой задачи определим равенством Х*= {х | 0 ? G (*)}, где G (х) — множество квазиградиентов функции /о в точке х. Сущность данного метода заключается в построении в k-й итерации квазиградиента слабовыпуклой функции в точке хк. Если движение в направлении квазиградиента выводит за пределы специальным образом построенного множества S, то процесс построения такой последовательности точек прерывается, и алгоритм начинает работать с произвольной точки некоторого подмножества А а 5. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение я0, постоянную б > 0, шаговый множитель р0. II. Построить множество S по правилу nieQ()^{|/0(*)<a}. III. Задать произвольное компактное подмножество А множества S. 157
IV. Положить k = 0. Основной цикл. V. Вычислить квазиградиент V/o (xk) функции /о в точке xk. VI. Вычислить вектор если ** + где у — произвольная точка множества А. VII. Вычислить шаговый множитель p*+i. VIII. Положить k = k + 1 и перейти к шагу V. Теорема 1. Если выполнены условия: (i) — Х*& {х \ 0 б G (х)} юмпактно; (и) — Q (а) Д {л: | /0 (л:) < а} компактно для любого а; (ш)—функция /0 принимает на К* конечное число значений} (iv) — шаговые множители удовлетворяют условиям то любая предельная точка последовательности {#*}?Lo, порожденной алгоритмом 1, принадлежит множеству решений X* задачи L 2. Стохастический квазиградиентный метод минимизации слабовыпуклой функции Алгоритм 2 Н а ч а л о. *1. Выбрать произвольную константу а ? @, оо) и произвольное замкнутое множество S, содержащееся в сфере радиуса а, т. е. В с: 5 й {х \ || х \\ ^ а}, выбрать произвольную начальную точку л:0 g if". II. Задать правило формирования последовательности шаговых множителей {р*}?=о. III. Положить k = 0, найти р0. Основной цикл. IV. Вычислить случайный вектор ?\ условное математическое ожидание которого где bk вектор, измеримый относительно а-подалгебры !Bkt индуцированной случайными величинами (х°, л:1, ..., *fe); V/o (xk) — квазиградиент слабовыпуклой функции /0. - V. Вычислить вектор |^^ если если где гл+1 — произвольная точка множества В. VI. Найти 158
VII. Положить k = k + 1 и перейти к шагу IV. Теорема 2. Пусть /0 слабовыпуклая вниз функция и, кроме того, выполняются условия (i) - max /0 {х) < inf /0(#); *ев iwix (И) — {in) — шйговые множители pfe, измеримые относительно о-подал- гебры 3$k и таковы, что 2 Р* 16*К оо п. н, ?Яр|<оо. почти при каждом со предельные точки последовательности {xk (со)}*м), порожденной алгоритмом 2, принадлежат множеству Х*А (л: | 0 ? G (*)}, « последовательность {fo (xk ((о))}Т=о сходится (G (х) — множество квазиградиентов функции f0 в точке х). Библиографические указания. Параграф написан на основании работ [267* 268, 269, 272, 153, 274]. 3.7. 8-квазиградиентные методы 1. 8-квазиградиентный метод минимизации выпуклых функций Задача 1. Найти arg min /0 (х), /0: Rn -> Rl — выпукла» функция. За направление движения к следующему приближению в данном методе выбирают е-квазиградиент выпуклой функции /0 в точке xk. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х° ? Нп, шаговый множитель р0 и число е0, удовлетворяющее условиям теоремы 1, и некоторую константу а > 1. II. Положить k = 0. Ос новной цикл. III. Положить е = efe. IV. Вычислить е-квазиградиент ge (xk) функции /0 в точке Л V. Вычислить нормирующий множитель A, VI. Вычислить следующее приближение
VII. Вычислить шаговый множитель p*+i и число е*+ь удовлетворяющие условиям теоремы 1. VIII. Положить k = k + 1 и перейти к шагу III. Теорема 1. Пусть функция /0 выпукла и множество Х*? Д {* | 0 ? О (х, 0)} (здесь G (х, г) (в > 0) — множество г-квазигра- диентов функции /0 s mcw/ce jc) компактно. Тогда, если числовые последовательности {pft}*Lo и {efe}?lo таковы, что оо Р*-* + 0, е*-*- + 0 при k-+oo и S Рл = °°» то предел любой сходящейся подпоследовательности последовательности {a;*}?Lo, порожденной алгоритмом 1, принадлежит множеству X*. Теорема Г. Пусть функция/0 удовлетворяет условиям теоремы 1 меА= const > 0, k = 0, 1, ... . Тогда, если числовая последовательность {р*}?=о такова, что /по существует подпоследовательность {xks}tLo последовательности {xk}kLo, порожденной алгоритмом 1, сходящаяся к множеству 2. Е-квазиградиентный метод минимизации слабовыпуклых функций Задача 2. Найти arg min /0 (л:) для заданной слабовыпуклой Si функции /о • Rn -+ R1- В данном итеративном методе последующее (k + l)-e приближение xk+l выбирают в направлении е-квазиградиента ge (xk) для функции /0 в точке xk (k-u приближении). Определение 2. Вектор ge (х) называют е-квазиградиентом слабовыпуклой функции /0 в точке х (г > 0), если для всех z ? Rn выполняется неравенство /оСО — /oW>feW, г — x) + r(xf z) — e и отношение / „ стремится к нулю равномерно по х при г ->¦ х [I Z "-*¦ X || (в каждом компактном подмножестве из Rn). Если функция /0 определяется равенством /о (*) = max ф (х, у), где множество Y компактно, а ф (х, f/) непрерывна по совокупности переменных и равномерно слабовыпуклая по х для каждого yf 160
то е-квазиградиентом функции /0 в точке х является квазиградиент функции <р (х, j/) по х в точке х = *, где у — произвольный вектор из множества u У)-в, Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение х? ? Я", некоторую постоянную б > 0, шаговый множитель р0 и величину е0, удовлетворяющие условиям теоремы 2. II. Положить к = 0. Основной цикл. III. Если /0 (xk) > /0 (л;0) + б, то положить xk+l = х? и перейти к шагу VI; иначе перейти к шагу IV. IV. Вычислить ей-квазиградиент g8fe (xk) функции /0 в точке xk. V. Вычислить следующее приближение VI. Вычислить шаговый множитель р*+1 и величину удовлетворяющие условиям теоремы 2. VII. Положить k = Л + 1 и перейти к шагу III. Теорема 2. Пусть функция /0 слабовыпуклая и выполнены условия: (i) — множества {х \ /0 (л:) ^ а} компактны при всех а; (И) — множество X* Д {* | 0 ? G (я, 0)} компактно; (ш) — числовые последовательности {р*}?=о, {e^}|Lo таковы, что Pfe -* + 0, рл+i/pft -> 1, 8Л -> + 0 при Л-х», 2 рй = оо, 5] ел<оо. ГогЗа предел любой сходящейся k=Q Лг=О подпоследовательности последовательности {л:л}|1о, порожденной алгоритмом 2, принадлежит множеству X*. Замечание 2. Чтобы избежать вычисления на каждой итерации значения функции /0 (xk), шаг III алгоритма заменяют на ИГ. II Г. Если || xk || > р, то положить xk+{ = л? и перейти к шагу VI; иначе перейти к шагу IV (здесь константу р выбирают из условия fo(x)>fo(x°)+6 при |*|>Р). Библиографические указания. При написании параграфа использованы работы [275, 272, 204]. 3.8. Методы обобщенных почти градиентов Для минимизации функций, удовлетворяющих локальному условию Липшица 1. Детерминированный случай Задача 1. Найти arg min /0 (х) для функции /0 : Rn ->- Л1# xqRn удовлетворяющей локальному условию Липшица.
Если существует практически эффективный способ вычисления обобщенного почти градиента g (х) функции /0 (х) в любой точке х ? Я", то за направление движения к следующему приближению x*+i в приводимых ниже алгоритмах выбирается вектор ?*, равный обобщенному почти градиенту функции /0 в точке хк% равномерно распределенной в n-мерном кубе с центром в точке хк со стороной ak > 0, т. е. C.6) В других случаях за направление движения Ък выбирается ко- нечне-разностный аналог обобщенного почти градиента g (xk) I = -^- Jj \fo \х%9 •.., хк + -у, ..., xn) y- 4jjel C.7) где ^,1=1, ..., n — if-й орт. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение л? ? Я", шаговый множитель р0 и величину смещения а0, удовлетворяющие условиям теоремы 1. II. Положить k = 0. Основной цикл. III. Вычислить реализацию xk случайной точки, равномерно распределенной в л-мерном кубе с центром в точке хк со стороной ak. IV. Вычислить вектор 1к направления движения по формуле C.6) или C.7). V. Вычислить следующее приближение VI. Вычислить значение шагового множителя p*+i и величину смещения <z*+i, удовлетворяющие условиям теоремы 1. VII. Положить k = k + 1 и перейти к шагу III. Теорема 1. Пусть функцияfoe любой ограниченной области удовлетворяет условию Липшица и, кроме того, выполняются условия pfc>0, аЛ>0, А=»0, 1, ...; при k -* оо. Тогда, если последовательность {#*}?=о, порожденная алгоритмом 1, принадлежит ограниченному множеству пространства Rn, 162
то с вероятностью единица предельные точки последовательности {**}?Lo принадлежат множеству Х*Л {х* | О ? G (л:*)} и по- следовательность {/0 (x*)}2Le почти наверное сходится. Здесь и далее G (#) — множество обобщенных почти градиентов функции /0 в точке х. 2. Стохастический случай Задача 2. Найти arg min Е /0 (х, со) для заданной функции fo:B"xQ-> Я1. Предположение 2. Функция /0 удовлетворяет локальному условию Липшица Если существует достаточно эффективный способ построения об- общенного почти градиента g (x, со) функции /0 в любой точке (х, со), го в приводимом ниже алгоритме за направление движения ?/* к следующему приближению xk+l выбирается вектор ?* = ?(**, сол), C.8) где xk — реализация случайного вектора, равномерно распределенного в м-мерном кубе с центром в точке xk и стороной ak > 0; /ч со* — независимые наблюдения о. Если же построение g (x, со) затруднительно, то за направление движения |* выбирается конечно- разностный аналог обобщенного почти градиента g (xk, со*) в виде C.9) где ^, i = 1, ..., п — i-й орт. Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение ос0 ? Я", значения шагового множителя р0 и смещения а0, удовлетворяющие условиям теоремы 2; положить & = 0. Основной цикл. II. Вычислить реализации #?, i = = 1, ..., пу случайных величин, равномерно распределенных на отрезках [xf — ak, x* + ah]9 i= 1, ..., /г. III. Вычислить реализацию со* случайного параметра со. IV. Вычислить вектор ?* направления движения к следующему приближению xk+l по формуле C.8) (или C.9)). 6* 163
V. Вычислить следующее приближение VI. Вычислить значение шагового множителя p*+i и смещения ь удовлетворяющие условиям теоремы 2. VII. Положить k = k + 1 и перейти к шагу II. Теорема 2. Пусть выполнены предположение 2 и условия pfe>0, aft>0 при * = 0, 1, ...; 2 9k = оо, 2 Р2, < оо, 2 (р^а,J < оо; *0 *0 *0 aft->0 и |afe — a*+i|/pft->0 при Л->-оо. существует подпоследовательность {x*s}^Lo последовательности {**}?=(), порожденной алгоритмом 2, стремящаяся к точке х%Х*&{х* \O?G(x*)}. Библиографические указания. При написании параграфа использованы работы [93, 97, 102, 100, 101]. Дополнительные сведения о минимизации функций, удовлетворяющих условию Липшица, можно найти в работе [483]. 3.9. Метод усреднения направлений спуска для минимизации функций, удовлетворяющих условию Липшица Задача 1. Найти arg min /0 (х) для заданной функции Предположение 1. Функция /0 удовлетворяет локальному условию Липшица. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение II. Выбрать произвольное натуральное число /. III. Положить k = 0. Основной цикл. IV. Найти шаговый множитель pk9 параметры ak и 6fe, удовлетворяющие условиям теоремы 1. V. Вычислить реализацию xk случайной точки, равномерно распределенной в я-мерном кубе с центром в точке xk и стороной akm VI. Вычислить вектор 6* по формуле fife _ У/о(** + ^0-М**) „; и -^j ^ e% где ёу i = 1, ..., /i, i-й орт. VII. Если k ^ /, то вычислить следующее приближение 164
и перейти к шагу VIII; иначе вычислить следующее приближение xk+{ по формуле /=о и перейти к шагу VIII. VIII. Положить k = k + 1 и перейти к шагу IV. Теорема 1. Если функция f0 удовлетворяет локальному условию Липшица и выполняются условия . р*>0, а*>0, ? = 0, 1, ..., ; оо оо S Р* = °°> S Р* < °°» lim (Pft/a*) = °"» fe=0 *=0 *-*оо lim аЛ = 0, lim (8k/ak) = 0, lim (p^/p^+i) < оо; lim (| аЛ — ocft+i | /pk) = 0, lim то все предельные точки последовательности {x*}?L(b порожденной алгоритмом 1, с вероятностью 1 принадлежат множеству Х*Д {я* | 0 б G (я*)}, где G (х) — множество обобщенных почти градиентов функции /0 в точке х, и, кроме того, последовательность {/0 (xk)}b=Q сходится почти наверное. Библиографические указания. При написании параграфа использовались работы [96, 97]. 3.10. Конечно-разностный метод минимизации разрывных функций Задача 1. Найти arg min /0 (х) для разрывной функции fo:RR\ Предположения 1. Функция /0: (i) непрерывная и дифференцируемая почти всюду; (Н) ограничена в любой ограниченной области Rn\ (Hi) полунепрерывная снизу, т. е. если {xk}kL0 — произвольная последовательность точек, сходящихся к #, и предел последовательности {/0 (**)}*L0 существует, то lim /0 (xk) > f0 (x). Определение 1. Точка х* является (квази) решением задачи 1, если х*? Х*Д {х | 0 ^ со S (х)}, где S (х) — множество предельных точек последовательности векторов, /-я компонента которых -^ [/о х) + "Г» 165
здесь [xk)t=^ — произвольная последовательность точек, сходящаяся к х, a [%}t=o — произвольная последовательность, сходящаяся к 0. Основная идея метода состоит в том, что разрывная и негладкая функция /0 (•) приближается последовательностью непрерывных сглаженных функций /(•, ?), которые, за исключением точек разрыва, сходятся к /0 (•) при k ->• оо. За направление движения к следующему приближению xk+l в k-я итерации выбирается случайный вектор, который является статистической оценкой градиента сглаженной функции. Функцию /(•, к) можно определить как а. а. /(*. *) = Чг J • • • f Ш* k)dyl9 ..., dyn, л> 2 лл 2 где {otfcjllo — последовательность положительных чисел, стремящихся к нулю; f {у, k) определяется по правилу Ух-\~ 2 УгП~ 2 У1 2 ул 2 Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение «я0 ? Л", шаговый множитель р0 и смещение а0, удовлетворяющие условиям теоремы 1. II. Положить k = 0. Основной цикл. III. Вычислить реализации tf, i =* я 1, ..,, л, независимых случайных величин xh i = 1, ..., п, равномерно распределенных на отрезках [—аЛ/2, afe/2]. IV. Вычислить b* = f? + v?f t-1, ..., ft, где ??, v/, t = 1, ..., п — соответственно реализации независимых случайных величин ^, vh i = 1, ..., п, равномерно распределенных на отрезках [—аЛ/2, а^/2]. V. Вычислить следующее приближение где г1, I = U •••»-я — ^'-й орт. 166
VI. Вычислить значение шагового множителя p*_j-i и значение смещения аЛ+ь удовлетворяющие условиям теоремы 1. VII. Положить k = k + 1 и перейти к шагу III. Теорема 1. Пусть выполнены предположения 1 и, кроме того, имеют место условия >• 0, afe->0 при #->оо. Тогда с вероятностью 1 существует подпоследовательность {^т}т=^о последовательности {л:*}?=о, порожденной алгоритмом 1, стремящаяся к точке х*? X*, для которой lim V/(*4 &m) = 0. Библиографические указания. При написании параграфа использованы работы [103, 97]. 3.11. Метод линеаризации решения дискретных минимаксных задач Задача 1. Найти arg min /0 (л;), где здесь ft (x) — заданные непрерывно дифференцируемые функции» Обозначим через #6 (х) множество {Ф<*«т, М*)>М*)-«Ь б>0. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х° ? Rn и константы е ? (V2, 1), б > 0 (рекомендуется выбирать S достаточно малым; 8 = 2/3); положить k = 0. Основной цикл. II. Положить х = xfe. III. Найти р (х) и р (х) — решение следующей задачи выпуклого программирования: найти argmin(p + i|^l2) при ограничениях IV. Если р (л:) == 0, то положить #*= х и прекратить вычисления; иначе перейти к шагу V. V. Положить т = 0. VI. Положить ak = (V2)\ VII. Если выполняется неравенство /о (* + akp (х)) < /0 (л:) - а,е | р (х) f, 167
то перейти к шагу VIII; иначе положить т = т + 1 и перейти к шагу VI. VIII. Положить xk+x я х + akp (х), положить k = k + 1 и перейти к шагу II. Теорема t. Пусть ft (х), i = 1, ..., m, непрерывно дифференцируемые функции; область Хо А {х | /0 (л:) ^ /0 (jc0)} ограничена и V U (x), i « 1, ..., т, удовлетворяют в Хо условию Липшица с кон- стантой у < оо. Тогда любая предельная точка х* бесконечной последовательности {/}?=©, порожденной алгоритмом 1, удовлетворяет необходимым условиям минимума f0 (х) при х ? Rn. Если, кроме того, ft (x), i ? I, т — выпуклы, то х*— решение задачи 1. Необходимым условием минимума /0 (х) в точке х* является существование чисел uit i = 1, ..., /л, таких, что и{ = 1, ш > 0, i = 1, ..., т. Следующая теорема дает локальную оценку сходимости алгоритма 1. Теорема 1\ Пусть х*— точка минимума f0 (x)t функции ft (jc), i g S'o (x*) — дважды непрерывно дифференцируемы. Кроме того, пусть градиенты V/, (х*), i?30(x*)t где таковы, что разности линейно-независимы и множители а< строго больше нуля для i \ € $о (х*)> а (У* VL<P (**, и)у)>0 для всех уфО, здесь Ф(лг, w) = a Vlx4> (*» и) — матрица вторых производных относительно х. Тогда при достаточно малом б > 0 и а > 0 существует такая окрестность точки х*, что алгоритм 1 сходится о любого начального приближения х? из этой окрестности и Теорема V. Пусть выполнены все условия теоремы V, и, кроме того, число индексов в множестве 30 (х*) равно п + 1. 168
В этом случае при достаточно малом б > О алгоритм 1 в окрестности х* сходится при постоянном aft=s 1 с квадратичной скоростью к точке х*. Библиографические указания. Параграф написан на основании работы [320] 3.12. Методы последовательных приближений для решения дискретных минимаксных задач Задача 0. Найти arg min max (pt (x) для заданных функций % : /?"-> Л1, i ? fj и заданного множества #. Предположение 0. (i) — функции <р<, i? #,— непрерывно дифференцируемы в Rn. В данном параграфе описываются методы, в которых на к-и итерации в качестве направления движения к следующему приближению xk+l выбирается вектор hk (e), удовлетворяющий условию max (Уф,- {xk), hk (г)) = min max (Vq>< (xk), h\ где die(xk)&{i\maxq><(xk)-ф,(j^)<e, Вектор hk (г) при е ^ 0 называют направлением е-наискорей- шего спуска. 1. Первый метод последовательных приближений Алгоритм 1. Начало. I. Выбрать произвольное начальное приближение х° k В?. П. Выбрать константы ео> 0 и ао> 0. III. Положить k = 0. Основной цикл. IV. Положить е== 0 и перейти к шагу VII. V. Положить / = 0. VI. ПОЛОЖИТЬ Е = 8/. VII. Найти множество индексов = {/1 max ф, (xk) - % (xk) < e, / ? Щ. (ЗЛО) VIII. Найти многогранник Ze (xk), который является выпук- лой оболочкой, натянутой на множество точек IX. Если е = 0, то перейти к шагу X; иначе перейти к шагу XI. X. Используя алгоритм Г, определить, принадлежит ли начало координат многограннику Lo (xk). Если начало координат 169
принадлежит L<> (xk), то положить x*=xk и прекратить вычисления; иначе перейти к шагу XI. _Х1. Используя алгоритм 1", найти точку ге, которая является ближайшей к началу координат точкой многогранника Ьг (хк). XII. Вычислить tya (xk) по формуле % (хк) = — ||zEf. XIII. Если выполняется неравенство if>8 (xk) ^ — е (ао/ео), то перейти к шагу XIV; иначе положить еж = eo/2/+I, / = /+ 1 и перейти к шагу VI. XIV. Вычислить вектор hk (г) — направление е-наискорейше- го спуска функции max ф, (х) в точке ** по формуле hk (г) = (?7 XV. Вычислить шаговый множитель pk из условия max ф< (xk -{- pkhk (г)) = min max ф^ (xk + phk (&)). XVI. Вычислить следующее приближение XVII. Положить k = k + 1 и перейти к шагу IV. Теорема 1. Если выполнено предположение 0 и начальное приближение х° в алгоритме 1 таково, что множество Хо & [х | max ф, (я) < max ф, (*°), х ? Rn), ограничено, то любая предельная точка бесконечной последовательности {xk}kLo, порожденной алгоритмом 1, является стационарной точкой функции max ф, (х). (Точка.х*? Rn, для которой выполняется неравенство inf называется стационарной точкой функции max ф4- (х) на Rn. Если функция max ф, (х) выпукла, то стационарная точка х* является точкой минимума). Замечание L Чтобы на k-й итерации уменьшить количество сравнений Ч|)е (xk) с — г (а0/г0) в [127], рекомендуется начинать сравнение не с е = е0, а со значения е, полученного на предыдущей (к — 1)-й итерации, т. е. при таком е, которое получается при выходе из цикла, образованного шагами VI—XIII на (k— 1)-й итерации. Алгоритм Г (алгоритм определения принадлежности начала координат многограннику Ьг (хк), который является выпуклой оболочкой множества векторов {V<p<(**), i??? (*)}) 170
I. Вычислить величину / — количество элементов множества II. Вычислить t0 — наименьший элемент множества Же(хк). III. Положить / = 1. IV. Положить т = 0. V. Вычислить индекс i = i0 + т. VI. Если индекс / принадлежит множеству 3?8 (xk)y то положить gj == v ф, (xk) и перейти к шагу VII; иначе положить т = т + 1 и перейти к шагу V. VII. Если / < /, то положить / = / + 1 и перейти к шагу IV; иначе перейти к шагу VIII. VIII. Решить задачу линейного программирования в (/ + 1)- мерном пространстве векторов (ylf y2, ..., yh а): найти argmina при условиях i s= 1, 2, ..., п; г. 1 О «*• S = 1, Z, . . . , Alj /=i Обозначить через (у?, Y2» •••» 7?» a°) решение этой задачи. IX. Если а0 == 0, то начало координат принадлежит многограннику Lq (xk), если a0 > 0, то начало координат не принадлежит многограннику L8 (xk). Алгоритм Г' (алгоритм вычисления ближайшей к началу координат точки многогранника Ьг (xk)y который является выпуклой оболочкой множества векторов Q = {Уфг (xk), i g diz (xk)}). I. В качестве начального приближения у0 выбрать произвольную точку многогранника Le (xk) (в частности, в качестве у0 можно взять вектор V<pt-0 (xk), для которого = min (Уф, или вектор, равный .]? у^\ где (у°и yl, ..., у?) — вектор, полученный при решении задачи линейного программирования на шаге VIII алгоритма Г, а вектора gl% j = 1, ..., 1> определяются шагами I—VII алгоритма Г). П. Положить т = 0. III. Найти точку ут множества Q, для которой (Ут, Ут) = min (Уф, (**), ут). 171
IV. Если (ут — ут, ут) — О, то положить ге= ут и прекратить вычисления; иначе перейти к шагу V. V. Найти параметр тт ? [О, 1], удовлетворяющий условию IIУт + *т(Ут — ут)\\ = mm \\ym + VI. Вычислить следующее приближение VII. Положить т = т + 1 и перейти к шагу III. Теорема /\ Если выполнены предположения теоремы 1, то бес- конечная последовательность {yk}kLo, порожденная алгоритмом Г, сходится к ближайшей к началу координат точке гг многогранника Lz (xk). 2. Модификация первого метода последовательных приближений Алгоритм 2 Все шаги алгоритма 1, за исключением шага XV, остаются без изменений. Шаг XV записать в виде: XV. Используя алгоритм 2', вычислить шаговый множитель pkf удовлетворяющий условию (max ер, (xk) — max cp, (xk + pkhk (e)))/(max (^ (xk) — — min max <p< (xk + phk (e))) > p, C.11) где p ? @, 1) — произвольный параметр, фиксированный для всех значений k. Алгоритм 2' (алгоритм вычисления за конечное число итераций шагового множителя р&, удовлетворяющего условию C.11)) I. Выбрать произвольный параметр р ? @, 1) и константу 60>0. И. Вычислить \х = (]/5 — 1)/2. III. Определить функцию fk: R1 -> R1 по правилу fk \t) = max ф, (^ + thk (e)). C.12) IV. Вычислить значения fk Fj) и fk @). Если fk (б0) < fk @), то перейти к шагу V; иначе перейти к шагу X. V. Положить s = 1. , VI. Вычислить 8S = 8s_i(x. VII. Если fk (8S) ^ fk (8s_i), то перейти к шагу IX; иначе перейти к шагу VIII; VIII. Положить s = s + 1 и перейти к шагу VI. IX. Положить 8^ = 0, б|>2) = 6s_i, б|K) = б, и перейти к шагу XV. X. Положить s = 1, 172
XI. Вычислить 6S sif XII. Если fk FS) </* @), то перейти к шагу XIV; иначе перейти к шагу XIII. XIII. Положить s = s + 1 и перейти к шагу XI. XIV. Положить 6{о} = 0, 6&2) = 8S, б{,3) = 6s_b XV. Положить / = 0. XVI. Найти множество индексов di cz V М Л [i | max <р, (** + bfhk (в)) - Ф, (х* + 6f }А* (e)) < 0}. Вычислить производную справа fk (б/2) + 0) и производную слева fk (bf — 0) функции fk в точке б/2): 0) = max (Уф, (xft + efW (e))f ЛЛ (в)); /; Ff _ 0) = min (УФ, (х* + 6f}Л* (е)), hk (в)). XVII. Вычислить А,-шах{/;<вР + 0)Ff-6f), /;Ff>-0)Ff-6f>), 0}. XVIII. Если выполняется неравенство (//, @) — /Л Ff >». A то положить pk = б(;2) и прекратить вычисления; иначе перейти к шагу XIX. XIX. Вычислить Y/ — середину отрезка [б/1*, б/3)] XX. Вычислить точку б}4), симметричную бJ) относительно точки Y/- XXI. Если fk Fj4)) < fk Ff), то положить *d) лB). ЛB) с D). сC) АC) "/+1 == "/ 9 O/.J-1 = О/ , О/+1 = О/ и перейти к шагу XXII; иначе положить и перейти к шагу XXII. XXII. Положить / = / + 1 и перейти к шагу XVI. Теорема 2. Если выполнены условия теоремы 1 и функции fk (/), k == 0, 1, ..., выпуклы на множестве [0, с»), то любая предельная точка бесконечной последовательности {x*}?Lo> порожденной алгоритмом 2, является стационарной точкой функции max ф, (jc). 173
3. Второй метод последовательных приближений Алгоритм 3 применяется для нахождения е-стационарных точек > функции max ф? (я). Если х*— е-стационарная точка и q>f (x), i? 5Кг (х*) — выпуклые функции, то max ф^ (#*) — приближенное значение для минимума функции max ф< (х) с абсолютной погреш- 1Ч& ностью,' не превышающей е. Алгоритм 3' основан на применении алгоритма 3 и дает возможность вычислять стационарные точки функции max ф, (х). К? Точка х* ? Rn называется е-стационарной точкой функции max ф, (л:), если i?7 min max ПбП—i <e?Ke<**> (здесь g?Rn, %г{х) определяется по C.10)). Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение х° ? Л", константу 8 > 0. II. Положить k = 0. Основной цикл. III. Найти множество индексов Же (xk) & {i | max ф, {xk) — ф; (xk) IV. Найти многогранник Le (xk), который является выпуклой оболочкой, натянутой на множество точек V. Используя алгоритм Г, определить, принадлежит ли начало координат многограннику Le (xk). Если начало координат принадлежит Le (xk)t то положить х* = xk и прекратить вычисления; иначе перейти к шагу VI. VI. Используя алгоритм Г', найти точку ze, которая является ближайшей к началу координат точкой многогранника L8 (xk). VII. Вычислить вектор hk (г) — направление е-наискорейшего спуска функции max ф, (л:) в точке xk Ъ9 VIII. Вычислить шаговый множитель pk из условия max ф, (xk + pkhk (e)) = min max ф< (xk + phk (e)). IX. Вычислить следующее приближение 174
X. Положить k = k + 1 и перейти к шагу III. Теорема 3. Если выполнены условия теоремы 1, то любая предельная точка 'бесконечной последовательности {xk)t=o, порожденной алгоритмом 3, является г-стационарной точкой функции max ф^ (х). Замечание 3. Вычисление шагового множителя pk на шаге VIII алгоритма 3 из условия минимума практически неосуществимо. 8 [127] рекомендуется использовать алгоритм 2' для вычисления за конечное число итераций шагового множителя pk9 удовлетворяющего условию C.11). В случае, когда fk (f), к = 0, 1, ...,— выпуклые на [0, оо) функции, теорема 3 остается в силе. Алгоритм 3 может быть также использован для нахождения стационарных точек функции max ф, (я), только на шаге VI алгоритму ма 3 необходимо дополнительно вычислять значение ifc (**) = -1*4 Алгоритм 3' Начало. I. Выбрать произвольное начальное приближение л;0'0 ? ЯЛ, константы е0 > 0, р0 > 0. II. Положить / = 0, &0= 0. Основной цикл. III. Положить х° = xltkt, е = ъи 9 = Pi- IV. Используя алгоритм 3, вычислить точку xki, такую, что (такая точка получается за конечное число итераций алгоритма 3). V. Положить jc/+1'*H-i = xhi9 e/+i = e/2, p/+i = pz/2 и перейти к шагу III. Теорема 3\ Если выполнено предположение 0 и хР>° таково, что множество {х | max <р, {х) < max ф^ (jfi-% x g Rn) ограничено, то любая предельная точка бесконечной последовательности {xa/}/Lo, порожденной алгоритмом 3', является стационарной точкой функции max ф< (х). 7 4. Модификация второго метода последовательных приближений Предположение 4." Функции ф,, i?3—дважды непрерывно дифференцируемы на всем Rn. Алгоритм 4 Начало. I. Выбрать произвольное начальное приближение х° ? Л", константы а > 0 и г > 0. II. Положить k = 0. 175
III. Найти множество Хо Л {х | max ф, (а:) ^ max ф4- (х°), х ? Rп}. IV. Вычислить константу Рх r=a max max || Уц>( (х) ||. V. Найти множество VI. Вычислить константу max maxl II где I-/.I VII. Если Р2= 0, то вычислить константу а = min {а, е/B8?)} и перейти к шагу IX; иначе перейти к шагу VIII. VIII. Вычислить константу a-mln (о. 2/р2, IX. Выбрать произвольное а0 g @, а). Основной цикл. X. Найти множество индексов (xk)u{i\max ф^ (**) — ф^ (xk)<е, XI. Используя алгоритм Г, определить, принадлежит ли начало координат многограннику L8 (xk), который является выпуклой оболочкой, натянутой на множество точек {Vq>t (xk), i ? ? tKe (**)}- Если начало координат принадлежит Le (%fe), то положить х*= xk и прекратить вычисления; иначе перейти к шагу XII. XII. Используя алгоритм 1", найти точку г8, которая является ближайшей к началу координат точкой многогранника Le (xk). XIII. ВЫЧИСЛИТЬ pk = | Ze ||. XIV. Вычислить вектор XV. Вычислить следующее приближение 176
XVI. Положить k = k + 1 и перейти к шагу X. Теорема 4. Если выполнено предположение 4 и начальное приближение а;0 таково, что множество Хо ограничено, то любая предельная точка бесконечной последовательности {x*}*Lo, порожденной алгоритмом 4, является г-стационарной точкой функции max ф/ (х). 5. Третий метод последовательных приближений, использующий Z) функцию Третий метод последовательных приближений, использующий D-функцию, весьма эффективный при малых п и небольшом количестве элементов множества 3. Алгоритм 5 Начало. I. Выбрать произвольное начальное приближение х° ? Rn. П. Выбрать константу е > 0. III. Положить k = 0. Основной цикл. IV. Найти множество индексов V. Используя алгоритм Г, определить, принадлежит ли начала координат многограннику Lo (xk), который является выпуклой оболочкой, натянутой на множество точек {Vcft (я*), i?dio(xk)}. Если начало координат принадлежит Lo (#*), то положить х*= xk и прекратить вычисления; иначе перейти к шагу VI. VI. Найти множество чисел {fy, / € [0 : m]}, удовлетворяющее условиям: (i) — Ро> Pi > ••• > Pm» (*0 — Для каждого i g 3 существует индекс / ? К): т] такой, что ср^ (xk) = P/; (lit) — для каждого / ? [0 : т] существует по крайней мере один индекс i ? 3 такой, что Ру = ф; (xk). VII. Положить s = 0, а0 = 0. VIII. Положить е = as. IX. Найти множество индексов ^е И Д {/1 max <р, (х*) - ф, И <е, X. Используя алгоритм 1", найти точку z8 — ближайшую к началу координат точку многогранника Le (xk), который является выпуклой оболочкой, натянутой на множество точек (Уф< (xk), i g XI. Вычислить вектор hk (es) — направление е5-наискорейшего спуска функции максимума в точке xk Л*(в.) XII. Вычислить значение ¦».(**)--1 177
XIII. Вычислить значение as+i = max q>, (xR) — ps+i. XIV. Если as+i < e, то перейти к шагу XV; иначе перейти к шагу XVI; XV. Если s + 1 < т, то положить s = s+ 1 и перейти к шагу VIII; иначе перейти к шагу XVI. ;XVI. Положить as+i = ~. XVII. Найти индекс sk ? [О : s] такой, что ^Sk {xk) = min {a^ % XVIII. Положить D (xk) = aSfe+iif)as . XIX. Положить hk = hk (eSfe). XX. Найти шаговый множитель pk из условия max (pf (л^ + pkhk) = min max cp^ (хк + phk). XXI. Вычислить следующее приближение xk+l = xk + pkhk. XXII. Положить k = k + 1 и перейти к шагу IV. Теорема 5. Если выполнены предположения 0 и начальное прибли* жение х° в алгоритме 5 таково, что множество Хо Д [х | max ср, {х) < max q>, (д^), х ? Rn\ i?7 l?? ограничено, то любая предельная точка л;* бесконечной последовательности {xk}kL0> порожденной алгоритмом 5, является стацио- парной точкой функции max ср, (л:), причем D (х*) = 0. Библиографические указания. Пункты 1, 2 написаны на основании работ [117, 118, 127, 128, 254]. Пункты 3, 4 написаны на основании работ [117, 118, 127, 128, 36]. Пункт 5 основан на работах [119, 120, 122, 127, 128]. ~~ 3.13. Сеточный метод последовательных приближений решения непрерывных минимаксных задач Задача 1. Найти arg min max ф (я, у) для заданной функции <р : Rn X i?m-> Л1 и заданного ограниченного замкнутого множества Y czRm. Предположение 1. Функция ф (#, у) непрерывна вместе с Vxy (x, у) по совокупности переменных в RnX Y. 178
Алгоритм 1 Начало. I. Выбрать начальное приближение 1с° ? Rп и сетку удовлетворяющие условиям теоремы 1. II. Выбрать произвольную константу а0 > 0. III. Положить s = 0. Основной цикл. IV. Положить а = as, # = [0 : Ns]. V. Определить функции ц>{ : Rn -v J?1, i ? V по следующим правилам ц>{ (*) Д ф (*, ус), i ? #. VI. Если s = 0, то перейти к шагу VIII; иначе перейти к шагу VII. VII. Если выполняется неравенство max ф,. (xk) < max то положить xs = xk и перейти к шагу VIII; иначе положить Xs = = х° и перейти к шагу VIII. VIII. Используя алгоритм 12.5 (см. § 3.12, алгоритм 5) с начальным приближением л;0 = #% за конечное число итераций вычислить первую точку xk, для которой D-функция удовлетворяет условию IX. Положить Ns+i = 2Nst oci+i= aJ2. X. Построить сетку удовлетворяющую условиям теоремы 1. XI. Положить s = s + 1 и перейти к шагу IV. Теорема 1. Пусть выполнено предположение 1 и (i) —множество Y ограничено и замкнуто; (И) — последовательность сеток {Ym }s=o всюду плотная на множестве Y', причем Yns a Yns+1, s = 0, 1, ...; (Hi) — начальное приближение х° g Rn и сетка Yu0 таковы, что множество Хо А {л: | max ф, (х) < max ф (?, у), x?Rn}y ~ i?[0:NQ] y?Y ограничено, тогда любая предельная точка последовательности {xs}?Lo, порожденной алгоритмом 1, является стационарной точкой функции max ф (х, у) на Rn. у?У Библиографические указания. При написании параграфа использовались работы [127, 120]. 179
3.14. Методы Эрроу — Гурвица решения непрерывных минимаксных задач 1. Детерминированный метод Эрроу — Гурвица Задача 1. Найти arg min max cp (jc, у) для заданной функции <р:Л"хйт-> Л1. Предположения /. (i) — функция q> (л:, у) непрерывно дифференцируема по х и у; (ii) — функция ф (х, у) выпукла по х при любом у и вогнута по у при любом х. В методе Эрроу — Гурвица на k-й итерации вычисляют (k + 1)-е приближение (я**1, yk+l) в направлении антиградиента по х и градиента по у функции ср (х, у), вычисленных в точке (xk, yk). Шаговые множители по переменным х и у удовлетворяют классическим условиям и могут быть различными. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х° е Я", у» g Rm. II. Положить ^ = 0. Основной цикл. III. Вычислить векторы Vx<p (xk, yk) и Vyq> (xk, yk) — градиенты функции ср (л;, у)у соответственно, по переменным х и у, вычисленные в точке (xk, yk). IV. Вычислить шаговые множители pk и р^э удовлетворяющие условиям теоремы 1. V. Вычислить следующие приближения: yk); yk). VI. Положить k = k + 1 и перейти к шагу III. Теорема!. Пусть выполняются предположения. 1 и пусть (i) — у функции ф (лс, у) существует по крайней мере одна седловая точка; (И) — шаговые множители pfe и р* алгоритма 1 удовлетворяют условиям 00 Р*>0 и р;>0 при fe = O, 1, ..., 2 pfe = oo; fe л ^1 пРи ?->оо. Тогда, если последовательности {xk}t=o и {#*}?=о, порожденные алгоритмом 1, ограничены, то любая предельная точка х последовательности {#*}!Lo является первой компонентой х некоторой седловой точки (х, у) функции ф (х, у). Замечание 1. При сделанных в теореме предположениях относительно последовательности {yk)kLo можно утверждать лишь ее 180
сходимость к множеству Y = [у | Ф (**, у) = max ф (л;*, у), m где х*— вектор, пробегающий множество первых компонент седло- вых точек функции ф (х, у). В некоторых случаях Y совпадает с множеством вторых компонент седловых точек функции ф (х, у), однако в общем случае эти множества различны (примером этого служит функция ф (х, у) = = ху). 2. Стохастический метод Эрроу — Гурвица Задача 2. Найти arg min max ?Vp (x, у, ©) для заданной х?Яп y?Rm функции ф : Нп X Rm x п -+ R1. Предположения 2. (i) — функция /0 (х, у) & ?"©ф (х, у, ю) непрерывно дифференцируема по х и у; (и) — функция /0 (х$ у) выпукла по х при любом у и вогнута по у при любом х, В стохастическом методе Эрроу — Гурвица на k-й итерации вычисляют (k + l)-e приближение в направлении статистических оценок антиградиента по л: и градиента по у функции /0 (х, у) в точке (xk, yk). Шаговые множители по переменным х и у могут быть различны и удовлетворяют классическим условиям. Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение *° € Д", У0 € Rm II. Положить k = 0. Основной цикл. III. Вычислить шаговые множители Pk и p'h удовлетворяющие условиям теоремы 2. IV. Вычислить реализации lkt ?* случайных векторов g*f \kf удовлетворяющих условиям = VJ0 (А у"), Е( | ? f/Фк) < а, где Фк — <т-алгебра, порождаемая случайными величинами лс°, х1, у1, .... хк, у"; а< оо. V. Вычислить следующие приближения; VI. Положить fe = k + 1 и перейти к шагу III. 181
Теорема 2. Пусть выполняются предположения 2 и пусть шаго-> вые множители pk и pk удовлетворяют условиям при k = О, 1, ...; pfe= оо. Тогда, если последовательности {xk}kL0 и {*/*}?=о, порож* баемые алгоритмом 2, ограничены почти наверное, то любая предельная точка последовательности [xk)<k=o минимизирует функцию max /о (х, у), т. е. является решением задачи 2. Библиографические указания. Параграф написан на основании работ [272, 314]. 3.15. Методы экстремального базиса для решения непрерывных минимаксных задач Задача 0. Найти arg min max q> (л:, у) для заданной функции <р : Rn X Rm -> Л1 и заданного компактного множества Y в Rm. Предположения 0. (i) — функция ф (х, у) непрерывна по х и у на Rn X Y; (и) — функция ф (х, у) выпукла по х в Rn при любом У € У\ (ш) — функция ф (х9 у) дважды непрерывно дифференцируема по х на Rn X Y\ (iv) — Y — компактное множество. В методах экстремального базиса на k-и итерации вычисляют следующее (k + 1)-е приближение xk+l как решение (точное или приближенное) некоторой вспомогательной задачи безусловной минимизации. Для этого на каждой итерации строят базис из п + 2 точек, принадлежащих множеству Y, в котором при переходе от одной итерации к другой меняется лишь одна точка. Вводимую в базис новую точку находят как решение (точное или приближенное) некоторой вспомогательной задачи условной максимизации. Для отыскания выводимой из базиса «лишней» точки в общем случае требуется иметь процедуру проверки на принадлежность этой точки к выпуклой оболочке заданных п + 1 точек. 1. Принципиальный алгоритм Алгоритм 1 Начало. I. Выбрать произвольную точку х° ? Rn и произвольный набор (базис) Go, состоящий из п + 2 точек множества Y II. Положить k = 0. Основной цикл. III. Определить функцию %(*)= max ф(#, у***). C.13) '€[1+2] 182
IV. Найти точку xk+t, удовлетворяющую условию 1= min tyk(x). C.14) V. Найти точку yk ? У, удовлетворяющую условию Ф (**+l, Ук) = max ф {xk+\ у). C.15) VI. Если выполняется равенство Ф^1, ?*) = ¦* (я**). C.16) то прекратить вычисления (в этом случае xk+l является решением задачи 0); иначе (если ф (х*+!, ук) >^k (xk+l)) перейти к шагу VII. VII В ) ( VII. Вычислить множество индексов h = {i\Ф(**+1> </*'О = **(**+I), * б11: п + 2]}. Если множество Jk содержит все элементы множества [1 : п + 2], то перейти к шагу VIII; иначе обозначить через ik любой индекс из множества [1 \ п + 2], которого нет в множестве Jk, и перейти к шагу IX. /ч VIII. Найти индекс lk ? [1 : п + 2] такой, что 0 ? Lft, где множество Lk является выпуклой оболочкой множества (Отметим, что по необходимому условию минимума функции % (я) точка xk+l удовлетворяет условию 0 ? Lk, где множество Lk является выпуклой оболочкой множества Поэтому начало координат (точку 0) можно представить в виде выпуклой комбинации не более чем п + 1 векторов IX. Построить новый базис G*+i = {у**1-1, ..., yk+l*n+2} по правилу f^, если 1ф1к; (ЗЛ7) л, если i = ik9 i = 1, ..., n + 2. X. Положить А = k + 1 и перейти к шагу III. Теорема 1. Пусть выполняются предположения 0 и пусть существуют числа ах > 0 и а2 < оо такие, что бесконечная последовательность (х^}м$ порожденная алгоритмом 1, сходится к точке минимума функции max ф (х, у). 183
2. 8-метод В общем случае е-метод практически не реализуем из-за бесконечности процедуры безусловной минимизации. Алгоритм 2 Начало. I, II (шаги I и II такие, как в алгоритме I). III. Выбрать последовательность {efe}|L0, удовлетворяющую условиям 00 ч -*" + о при * -* °°> ?е* < °°- Основной цикл. IV. Определить функцию грЛ (л;) по C.13). V. Вычислить точку xk+l такую, что 0 ? Lk,ek> где Lk,ek является выпуклой оболочкой множества точек здесь VI. Вычислить точку yk?Y по C.15). VII. Если выполняется равенство C.16), то прекратить вычисления (в этом случае xk+l является решением задачи 0); иначе перейти к шагу VIII. VIII. Если множество Jk,ek содержит все элементы множества [1 : п + 2], то перейти к шагу IX; иначе обозначить через ik любой индекс множества [1 \ п + 2], которого нет в множестве Jk,ek, и перейти к шагу X. IX. Найти индекс ik б [1 i п + 2] такой, что 0 ? L*,Efe, где множество Lk,ek является выпуклой оболочкой множества X. Построить новый базис Gk+i = {yk+l'l9 ...» yk+hn+2} по C.17). XI. Положить k = k + 1 и перейти к шагу IV. Для алгоритма 2 имеет место теорема, аналогичная теореме 1. Замечание 2. На шаге VI алгоритма 2 точку yk ? У можно вычислять по правилу тахф^*-*-1, #) — ф (**+*, yk)^\ik+u C.18) где \ik^\ -> +¦ 0 при fe -> оо, что требует приближенного решения задачи максимизации по у $Y функции ф (xk+lt у). 184
3. р-метод Приводимый р-метод реально осуществимый, так как требует лишь приближенного решения промежуточных задач оптимизации. Алгоритм 3 Начало. I, II (шаги I и II такие, как в алгоритме 1). III. Выбрать последовательность {p^J^o, удовлетворяющую условию 00 pft-> + 0 при &->оо, S pfe<oo. Основной цикл. IV. Определить функцию % (х) по C.13). V. Вычислить точку xk+l такую, что где Lk является выпуклой оболочкой множества здесь Jk = [t\ ф (x*+i, ybt) = ^ (**+'), / € [1: я + 2]}. (Для вычисления я**1 требуется решать приближенно задачу минимизации функции t|?fe (л;) в Rn). 00 VI. Вычислить точку у* ? Y по формуле C.15) (как и в замечании 2 точку yk можно также вычислять в соответствии с неравенством C.18), т. е. для отыскания yk достаточно решать приближенно задачу максимизации по у ? Y функции ф (xk+\ у)). VII. Если Л = [1 !« + 21, то перейти к шагу VIII; иначе в качестве ik выбрать любой индекс из множества [1 : п + 2] \ Jk и перейти к шагу IX. VIII. Найти индекс ik ? [1 i n + 2] такой, что множества Lk и Lk совпадают, где Lk определяется на шаге V, a Lk является выпуклой оболочкой множества Hk&{V*<P{xk+\ yk>l)\i?(Jk\{ik})}. IX. Построить новый базис G*+i = {y*+uf ..., ук+1>п+2} по формуле C.17). X. Положить k = k + 1 и перейти к шагу IV. Для алгоритма 3 имеет место теорема, аналогичная теореме 1. 4. Комбинированный е,р-метод Приводимый здесь алгоритм является комбинацией методов, приведенных в пунктах 2, 3, и является практически реализуемым Алгоритм 4 Начало. I, II (шаги I и II такие, как в алгоритме 1). . 185
III. Выбрать последовательности {ej?lo, {p*}?=o, удовлетвск ряющие условиям Основной цикл. IV. Определить функцию $к (х) по формуле C.13). V. Вычислить точку xk+l такую, что где L*,8ft определяется, как на шаге V алгоритма 2. Для вычисления л:^1 необходимо решить приближенно зада-. чу минимизации функции tyk (х) в Rn. VI. Вычислить точку yk по C.15). По аналогии с замечанием 2 для отыскания ук достаточно решить приближенно задачу максимизации по у ? Y функции Ф (**+1, у). VII. Если Jk,ek = [1 2 п + 2], то перейти к шагу VIII; иначе в качестве ik выбрать любой индекс из множества [1 : п + 2]\«/^8ft и перейти к шагу IX. VIII. Найти индекс 1к б [1 i n + 2] такой, что множества Lkfek и Lk,ek совпадают, где Lk#k определяется, как на шаге V алгорит- ма 2, a Lk,sk — как на шаге IX алгоритма 2. IX. Построить новый базис Gk+\ = {*/*+u, ..., yk+l>n+2} no C.17). X. Положить k = k + 1 и перейти к шагу IV. Для алгоритма 4 имеет место теорема, аналогичная теореме 1. Замечание 4. Если в алгоритмах пунктов 2, 3, 4 точку yk вычислять в соответствии с неравенством C.18), где [л* = \л > 0, то последовательности точек {л;*}*1(ь порождаемые этими алгоритмами, будут сходиться к [1-стационарной точке функции max ср (х, у) (определение ^-стационарной точки приведено в § 3.12). Библиографические указания. При написании параграфа была использована ра*1ота [125]. Дополнительную информацию о методах экстремального базиса можно найти в работах [124, 125]. 186
3.16. Обобщенный градиентный метод отыскания седловых точек Задача 1. Найти седловую точку (я*, у*), удовлетворяющую соотношениям ф (х*> У*) = niin max ф (х, у) = max min ф (я, у), x?Rn y?Rm y?Rm х?цп где ф : Rn X Дт-> R1 — заданная функция. Предположения 1. (i) — для каждого фиксированного вектора у g VT функция ф (#, у) выпукла и непрерывно дифференцируема по х\ (и) — для каждого фиксированного вектора х ? Rn функция Ф (*, у) вогнута по у\ (ш) — множество седловых точек X* х Y* задачи 1 непусто. Приводимый ниже метод является вариантом метода Эрроу — Гурвица. На k-й итерации алгоритма движение к следующему приближению (xk+\ yk+l) по переменной х осуществляется в направлении антиградиента по х функции ф (х, yk), а по переменной у — в направлении обобщенного градиента по у функции ф (я*,- у). Шаговые множители удовлетворяют классическим условиям. При определенных условиях алгоритм сходится к неустойчивому по Гольштейну [82] множеству седловых точек функции ф (я, у) (определение устойчивости множества седловых точек функции Ф (л:, у) приведено в § 6.9). Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение (х\ У°) € Я" х Rm- II; Положить k = 0. III. Выбрать константу а < оо, удовлетворяющую условиям теоремы 1. Основной цикл. IV. Вычислить n-мерный вектор ^*Ф (xk> Ук) — градиент функции ф (х, у) по х в точке (х*, yk). /ч V. Вычислить m-мерный вектор У^ф (xk, yk) — обобщенный градиент функции ф (л:, у) по у в точке {xky ук). VI. Вычислить шаговые множители pk и р^, удовлетворяющие условиям теоремы 1. VII. Вычислить следующие приближения: (**» У*)' если ^ y*)?SxXSy> если (х\ yk) ?Sxx Sy; k+i = (У + рЛф(^. У% если (**, yk)?Sx X Sy9 У l У\ если {х\ yk) ?Sxx Sy где VIII. Положить k = k + 1 и перейти к щагу IV. ; 187
Теорема 1. Пусть выполняются предположения 1 и существует константа а < оо такая, что (iv) — при х $ Sx и для всех у ? ? Sy выполняется неравенство (Vx<p (л:, у), х) > 0; (v) при у $ $ Sy и для всех x?Sx выполняется неравенство ^ у), у)<0; &у<Р(х,у)} (vi) Если шаговые множители pk и р* в алгоритме 1 удовлетворяют условиям + 0 + 0 ;/>0 при Л->оо; и начальное приближение (л;0, у0) принадлежит множеству SXX X 5^, то все предельные точки последовательности {yk}, порожденной алгоритмом 1, принадлежат проекции на Rm множества сед- ловых точек функции <р (х, у), т. е. множеству Y*. Замечание 1. Пусть в дополнение к условиям теоремы 1 множество седловых точек Х*Х Y* функции ф (х, у) устойчиво лишь по х (т. е. при у* ? Y* минимум функции ф (х, у*) достигается лишь на точках множества X*). Тогда алгоритм 1 сходится по переменным х и у к множеству седловых точек Х*Х Y*. Библиографические указания. Параграф написан на основании работы [273]. 3.17. Квазиградиентные методы решения дискретных минимаксных задач стохастического программирования 1. Минимизация функции Еф max <pt (я, со) Задача 1. Найти arg min Е® max фДд:, со) для заданных функ- ций <р, ! Вп X Q -> Л1, / g V и заданного множества индексов V. Предположения 1. (i) — функции ф/э I ? 21 непрерывно дифференцируемы по Ху причем градиенты по х функции ф<, i $3 удовлетворяют при каждом со локальному условию Липшица i Vx<Pi (х, со) - У,ф, (у, со) || < yz (со) | х - у ||, i б V, с интегрируемой константой Липшица yz (w), удовлетворяющей условию Eyz (со) <*оо для х, у, принадлежащих замкнутому ограниченному множеству Z; (и) — при каждом со имеется возможность вычислять значения функций ф< (xf со), / ? 3 и их производных по xi У,ф, (х, со), I б V. 188
В алгоритме 1 на k-й итерации за вектор, определяющий направление движения к следующему приближению xk+l (со), выбирается Vxq>ik (xk (со), со*), где индекс ik ? V удовлетворяет условию Ф/. (**, coft) = max eft (х*, со*). Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение II. Выбрать константу б > О такую, чтобы выполнялось неравенство inf Е max q>, (х, со) > Е max ср, (х, со) при [|#||<8. №*б *€^ its III. Положить & = 0. Основной цикл. IV. Вычислить со* — реализацию случайного элемента со. V. Вычислить индекс iky удовлетворяющий условию Фл (xk (со), cofe) = max ф, (xk (со), со*). * €y VI. Вычислить Vxtyk (xk (со), со*). VII. Найти шаговый множитель pk, удовлетворяющий условиям теоремы 1. VIII. Если || xk (со) || > б, то положить xk+l (со) = хк (со) и перейти к шагу X; иначе перейти к шагу IX. IX. Вычислить (со) = xk (со) — р*У*ф^ (jc* (со), со*). X. Положить k = k + 1 и перейти к шагу IV. Теорема 1. Если выполнены предположения 1 и {iii) — Е max ф, х X (*, со) -> оо при |Ы|->оо; (iv) — функция Е min ф4 (а:, со) прини- мает на множестве решений X* задачи 1 не более чем счетное число значений; (v) — последовательность шаговых множителей удовлетворяет условиям то почти для всех со предельные точки последовательности {л^ (со)}л1сь порожденной алгоритмом I, принадлежат множеству решений X* задачи 1. 189
2. Минимизация функции max /?<оф/ (#, ю) Задача 2. Найти arg min max Eyt (я, со) для заданных функ- ций ф^ : ТС X Q -»- Jf?1, * ? # и заданного множества индексов #. Предположения 2. Функции ср* (х, со), i ?$ и распределение со таковы, что выполняются следующие условия: (i) — существует константа б < оо такая, что (V/, (*), *) > 0 для ||#||>6, где ? (л:) ^ ?<Pi (*> со); (й) — градиенты функций Д (*), i ? S^, удовлетворяют локальному условию Липшица для всех а:, у, принадлежащих произвольному замкнутому ограниченному множеству Z; (ш) — при каждом со имеется возможность вычислять значение функций ср, (х, со), i ? 3 и их производных по *—Vx<Pt (x, со), /?#. В алгоритме 2 на k-Pi итерации за вектор, определяющий направление движения к следующему приближению xk+l (o>), выбирается V.^ (хк (со), 0*), где индекс ik ^ 3 удовлетворяет условию zki = max zki (здесь при каждом i ? 3 вспомогательная последова- тельность чисел {z?}|Lo обладает свойством 2/ — ft (xk (со)) -> О при k —> оо). Алгоритм 2 Начало. I. Выбрать константу 6 > 0, удовлетворяющую условию (i) предположения 2. П. Выбрать произвольное приближение #° ? Дп, удовлетворяющее условию || х° || ^ б. III. Выбрать произвольные числа z?, i ? 3. IV. Положить k = 0. Основной цикл. V. Вычислить индекс ik ? V из условия г? (со) = max 2? (со). VI. Вычислить cofe—реализацию случайного элемента со, VII. Вычислить V^ (xfe (со), coft). VIII. Найти шаговый множитель pfe и параметр ал, удовлетворяющие условиям теоремы 2. IX. Вычислить следующее приближение } х°, если ||л;*(со)||>28; (со) = ^ ((о) _ pfcV^ (х* (о))) ^^ ^^ | Xk (o)) и ^ 26. X. Вычислить значения величин 2*+' (со) = г\ (со) + ok (фДх* (со),' со^) - 2* (со)), t 6 #• XI. Положить /г = k + 1 и перейти к шагу V. 190
Теорема 2. Если выполнены предположения 2 и (iv) — Е | срг х X (*, со) |2 < оо, Е|| Vxcpi (ху со) ||2 < оо, i ? V\ (v) — последовательности шаговых множителей {pfe}ILo и параметров {crA}|Lo удовлетворяют условиям fe== оо, S <х|<оо; -> оо, рл-f i/рл -¦" 1 Я/?И й -> оо; (itt) — функция max ?(pt (x, со) принимает на множестве решений X* задачи 2 не более чем счетное число значений, то почти для всех со предельные точки последовательности {xk (co)}?Lo, порожденной алгоритмом 2, принадлежат множеству решений X* задачи 2* Библиографические указания. При написание параграфа использдвались работы [158, 272].
Часть II МЕТОДЫ УСЛОВНОЙ ОПТИМИЗАЦИИ Глава 4 МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Общая задача линейного программирования является задачей условной оптимизации, в которой целевая функция и функции п ограничений линейны: найти arg max J] ад при ограничениях X 1=1 0 + «/14+1,2*2 + • • • + Um^hnXn ^ CLmt+\\ D.1) /=1, 2, ..., nx; nx<n, D.2) для заданных с = (сг, с2, ..., сп)\ аф i = 1, 2, ..., m, / = 1, 2, ... ..., n; a0 = (а?, аг, ..., «т). Ограничения D.1), заданные в виде равенств и неравенств, называют общими; ограничения D.2) — прямыми. Задача линейного программирования называется канонической, если в D.1) тг = т и в D.2) nt = n, т. е. если общие ограничения состоят из равенств, а требование неотрицательности распространяется на все переменные xh j = 1, ..., п. Если ввести дополнительные переменные хп+и •••» Хп и сделать замену « — xn* Xn ^ U» ^n ^ U» Xn то общая задача линейного программирования сведется к эквивалентной канонической задаче: найти arg max (cxxx + • • • + сПххПх + сПх+\ (*rti+1 — 192
при ограничениях «/14+1,1*1+ «ml*i Каноническая форма задачи линейного программирования является наиболее простой и удобной при построении вычислительных алгоритмов. Большинство приводимых в этой главе методов относится к канонической задаче линейного программирования. Те случаи, когда решение задачи с естественной формой записи сокращает трудоемкость численного анализа, будут рассмотрены вместе с соответствующими модификациями алгоритмов. 4.1. Симплекс-метод и его варианты Задача 0. Найти arg max (cf х) для заданного вектора с =* = (clt ..., сп) и заданного множества здесь А — матрица размера т X п: /«11 а12 ••• «л А=г" ам::'а2л сс Столбцы матрицы А обозначаются через а1, а2, ..., сР. ^ Предположения 0. (i) — ранг матрицы А равен т; (й) — п> т\ (Ш) — множество X непусто. Определение 1. Допустимое решение х (т. е. вектор х ? X) называется опорным решением задачи 0, если система векторов af9 соответствующая его положительным компонентам (xf > 0), линейно-независима. Определение 2. Базисом опорного решения х называют систему т линейно-независимых векторов, которая включает все векторы а', отвечающие положительным составляющим опорного решения х. 7 3-341 193
Г Определение 3. Опорное решение х называется невырожденным, если число его положительных компонент равно т (если оно меньше т, то опорное решение называется вырожденным). * Определение 4. Каноническая задача линейного программирования называется, невырожденной, если все ее рпорные решения невырождены. Определение 5. Компоненты опорного решения, отвечающие векторам его базиса, называются базисными, а остальные — небазисными. В Дальнейшем базисные векторы будем обозначать через а\ а\ ..., аЧ ik?[\ :n)9 А>= 1, ;.., т. Базисные векторы dk характеризуются номером ik и позицией k9 которую он занимает в базисе. Матрица В, составленная из векторов а'*, а1*, ..., dm9 называется базисной В = (а\ ..., а'*). В симплекс-методе решение задачи 0 начинается с известного опорного решения и его базиса. На каждой итерации алгоритма проводится проверка опорного решения на оптимальность. Если опорное решение не оптимально, то указывается способ, позволяющий по данному опорному построить другое опорное решение, более близкое к оптимальному. Через конечное число итераций либо находится решение задачи 0, либо устанавливается неограниченность целевой функции задачи 0 на множестве X. I. Симплекс-метод решения невырожденной канонической задачи линейного программирования Алгоритм 1 Начало. I. Найти опорное решение х1 = (х\, ..., х1п) задачи О, базис Ф9 а1*, ..., cfm этого опорного решения и вычислить матрицу ЕГХъ обратную к исходной базисной матрице 5, состоящей из столбцов d\ a1*, ..., clm. Обычно на'практике находят опорное-решение, которому соответствует единичный базис а4 = A,0,..., 0)г,..., d™ = @,0,..., 1)г. Для нахождения исходного базиса и опорного решения используют, алгоритм 2.' II. Разложить по исходному базису a's al\ ..., dm векторы а°9 а\ ..., а" (т. е. найти числа z*/, k = 1, 2, ..., т\ j = 0, 1, 2, ..., п, такие, что а0 = zloa'i + z20a{* 4 а1 ' + Ф . ап 194
по формулам (*i/, Щу • • • > 2т/)Г = Я"" (ai/, a2/, ..., am/)r, / = 1, ..., л. Отметим, что заранее известно разложение по исходному базису базисных векторов a'v& = 1, ..., т: Zuk == 0 при k Ф l\ zuk =1 при k = /, k = 1, 2, .,., m; / == 1, 2, ..., m. Основной цикл. III. Для каждого / ? [1 : п] вычислить оценку А^Ь/А"^ D-3) IV. Если все А/> 0 (/ = 19..., /г), то положить а:*= л:1 и прекратить вычисления (в этом случае опорное решение оптимально и оп- т тимум целевой функции равен 5] Cikz^)\ если при некотором / ? [1 : п] выполняется Д/ < 0, то перейти к шагу V. V. Положить / = 1. VI. Если Д/<0, то перейти к шагу VII; иначе перейти к шагу VII. Если при всех k ? [1 : т] выполняется неравенство zk.^ О, то прекратить вычисления (в этом случае целевая функция (с, х) не ограничена (сверху) на допустимом множестве X); иначе перейти к шагу VIII. VIII. Если /< л, то положить / = / + 1 и перейти к шагу VI; иначе перейти к шагу IX. IX. Выбрать по заранее оговоренному правилу индекс s? € [1 ' п] такой, чтобы As < 0. Обычно на практике за As принимают или наименьшую из отрицательных оценок Д/, или же отрицательную оценку Д; с наименьшим индексом /. X. Вычислить отношение Zkdzks для тех ky для которых Zks > 0, и обозначить минимальное из этих отношений через Эо. Найти индекс г ? [I : т] такой, что zrs > 0 и zrolzn = 9о- XI. При каждом / ? [1 : п] вычислить 8/ = Zrj/Zrs. yttV ГЙЛ0ЖИТЬ Zk! = Zkh k = !> -• m; I = !» •— Л- A ill. Перейти к новому базису, который получается заменой вектора аг в предыдущем базисе вектором as (т. е. положить ir = s). XIV. Вычислить координаты всех векторов а0, а1, ..., ап в новом базисе по основным формулам: 7* 195
.при k Ф т zkj = ~Zkj — QJZks> / = 0, 1, ..., п; & = 1, ..., г— 1, г + 1, ..., пг\ при & = г г*/ = Э/, / = 0, 1, ,.., п. XV. Перейти к новому опорному решению х1 = (a:}, ..., x')t х\ = Zko, k = 1, ..., m, остальные координаты вектора х1 равны нулю. XVI. Перейти к шагу III. Теорема 1. Если выполнены предположения 0 и задача 0 невырожденная, то через конечное число итераций процесс решения задачи 0 алгоритмом 1 закончится либо на шаге IV (в этом случае находится оптимальное решение задачи 0), либо на шаге VII (в этом случае устанавливается, что оптимального решения задачи 0 нет). Замечание 1. Оценки А;, / = 1, ..., п, целесообразно вычислять по формуле D.3) только на первой итерации. На последующих итерациях новую оценку Д/ следует вычислять через старую оценку A/t полученную на предыдущей итерации, по формуле А/-Д, —9Д, /»lv 2, ...9 л. 2. Методы отыскания исходного базиса А. Первый метод. Пусть исходная задача линейного программирования имеет вид: Задача 2. Найти arg max (с, х) для заданного вектора с «¦ хех 1=8 (Pit cz, •••, Сп) и множества X, задаваемого соотношениями Xs-f-2 • • • + amsx$ « a°m; */>0» /= 1, .. •, n. В ограничениях задачи 2 выделены переменные xs+u •••, хп с различными единичными векторами as+1, ..., ап. Если таких переменных в задаче линейного программирования нет, то в задаче 2 следует положить s = п. 196
Предположение 2. Ограничения задачи 2 таковы, что а? > О, I = 1, ..., т. Для отыскания исходного базиса и опорного решения задачи 2 в ограничения этой задачи искусственно вводят т — k новых переменных уи у2, ..., Ут-k с таким расчетом, чтобы новая система уравнений-ограничений имела полный единичный базис. Затем с помощью алгоритма 1 решают задачу линейного программирования с новыми ограничениями и со специально построенной целевой функцией. В результате решения «новой» задачи приходят либо к опорному решению исходной задачи 2, либо непосредственно к оптимальному решению задачи 2. Кроме того, если исходная задача 2 неразрешима, то это обнаруживается в результате решения «новой» задачи. «Новая» задача является задачей линейного программирования в пространстве Rn+m-k (или Rs+m). Задача 2'. Найти arg max {—У\—Уг—..-—Ут-к) ()?Y n для множества Y, задаваемого неравенствами Hi ат\хЛ+ ••• +amsxs+ •• m /= 1, 2, ..., п\ #,>0, /= 1, 2, ..., т — k. Задача 2' имеет опорное решение @, ..., О, a?, eft, ..., а°т) с единичным базисом as+!, as+2, ..., ап, ап+\ ..., an+m-*, поэтому к ней применим алгоритм 1 — симплекс-метод решения канонической задачи линейного программирования. При этом задача 2' заведомо имеет оптимальное решение, так как ее целевая функция ограничена сверху числом ноль. Переменные уг , ..., #т_* называют искусственными переменными, а векторы а"+19 ..., an+m-~k — искусственными векторами. Алгоритм 2 I. Используя алгоритм 1, вычислить вектор (*?, х\, ..., х°п, у°и ... ...» Ут—k) — оптимальное решение задачи 2' и оптимальный базис задачи 2'— я'», а1*, ..., aV II. Если хотя бы при одном /? И i m -r-k] выполняется неравенство у-. > 0, то прекратить вычисления (в этом случае исходная задача 2 недопустима, т. е, не имеет допустимых решений); если У\ я #2 = ••• = #т-л = 0, то перейти к шагу III. 197
III. Если оптимальный базис задачи 2' не содержит искусственных векторов а/, / = п + 1, ..., п + т — ft,_то прекратить вычис* ления, так как оптимальный базис задачи 2' является исходным базисом задачи 2, а соответствующие ему значения основных переменных х°и #2, ..., х% составляют исходное опорное решение задачи 2; если оптимальный базис задачи 2' содержит хотя бы один искусственный вектор Ы% j ? [п + 1 i п + т — ft], то перейти к шагу IV. IV. Вектор (я?, #2, ..., #°) является опорным решением задачи 2. Для отыскания исходного базиса задачи 2 перейти к шагу V. V. Если в разложении векторов а\ а2, ..., ап по базису tf% a**, #tM dm все коэффициенты г# при искусственных векторах равны нулю, то, удалив из системы векторов а?*, а1*, ..., dm искусственные векторы, получим исходный базис задачи 2, который соответствует опорному решению (#?, ..., я°); иначе перейти к шагу VI. VI. Найти вектор as, (sg[l in]), в разложении которого по базису al\ af*y ..., dm есть число zrs при искусственном векторе dry отличное от нуля. Ввести в базис вектор а* вместо искусственного вектора alf (т. е. положить ir= s). VII. Если в новом базисе нет искусственных векторов, то прекратить вычисления (в этом случае находится опорное решение задачи 2 и его базис); иначе перейти к шагу VIII. VIII. Разложить по новому базису векторы а1, а2, ..., ап (как на шаге XIV алгоритма 1). IX. Если в разложении векторов а1, а2, ..., ап по базису а*\ а1*, ..., aifn все коэффициенты гщ при искусственных векторах равны нулю, то перейти к шагу V; иначе перейти к шагу VI. Теорема 2. При выполнении предположений 2 алгоритм 2 за конечное число итераций либо находит опорное решение задачи 2 и соответствующий ему базис, состоящий из I векторов (I — ранг матрицы А задачи 2), либо устанавливает, что задача 2 не имеет допустимых решений. Б. Второй метод. Ниже приводится алгоритм отыскания опорного решения задачи 0 и его базиса, который сводится к решению М-задачи — специально построенной задачи линейного программирования в пространстве Дп+Ш, содержащей параметр М (здесь М — достаточно большое ччсло). В процессе решения М-за- дачи либо устанавливается неограниченность целевой функции задачи 0, либо находится оптимальное решение задачи 0, либо устанавливается, что задача 0 не имеет допустимых решений. Предположение 2'. Ограничения задачи 0 таковы, что а? > О, i = 1, 2, ..., т. Алгоритм 2' I. Выбрать достаточно большое число М > 0. II. Используя алгоритм 1, вычислить вектор (*?, ..., х°П9 #?,... 198
...» Ут) — оптимальное решение следующей задачи линейного программирования: М-задача. Найти arg max [(с, х) — Муг — Му2 — - • • — Мут] при ограничениях aiА ~Ь а12-^2 "Ь" • • • + &inXn + Ух = flj; а21^1 + а22*2 + • • • - УИ-задача имеет исходное опорное решение (О, ..м 0, а?, ..., б +1 + й р р ( с единичным базисом art+1, ..., a/1+m, поэтому к ней можно применить алгоритм 1. Если при решении М-задачи алгоритмом 1 окажется, что ее целевая функция неограничена (сверху) на допустимом множестве, то целевая функция задачи 0 также не ограничена (сверху) на допустимом множестве X. III. Если при некотором 10 ? U \ т\ выполняется y°i0 > 0, то прекратить вычисления (в этом случае задача 0 не имеет допустимых решений); если при всех i ? [1 ? т] выполняется у} = 0, то положить **= (х°и ..., Хп) и прекратить вычисления (т. е. в этом случае вектор (#?, х%, ..., х°п) является оптимальным решением задачи 0). Теорема 2'. Пусть выполняется предположение 2е. Если для всех достаточно больших значений М М-задача имеет оптимальное решение, то алгоритм 2' либо устанавливает недопустимость задачи 0> либо находит оптимальное ее решение, а если при тех же условиях М-задача неразрешима, то неразрешима и задача 0. 3. Симплекс-метод решения вырожденной' канонической задачи линейного программирования В этом пункте приводится симплекс-метод решения вырожденной задачи 0, для которой выполняются условия (е), (и), (Ш) предположения 0. Если применить алгоритм 1 для решения вырожденной задачи 0, то возможно зацикливание процесса решения задачи (т. е. возвращение к уже пройденному базису бесконечное число раз), так как на шаге X алгоритма 1 в вырожденном случае существует, вообще говоря, больше чем один номер г, для которого достигается минимальное отношение 0О = Zro/zrs. Симплекс-метод для решения вырожденной задачи линейного программирования включает в себя специальное правило выбора выводимого вектора из базиса, которое гарантирует от зацикливания процесса решения задачи. 199
Алгоритм 3 I—IX (шаги I—IX такие, как и в алгоритме 1). X. Вычислить отношение Zkolzks для тех &, для которых Zks > О и обозначить минимальное из этих отношений через 0О. XI. Положить / = 0. XII. Положить 6о = Эо. XIII. Вычислить индексы г1% г2> ..., rlf такие, что XIV. Если // = 1, то вместо вектора а'Г* ввести в базис вектор о8 (т. е. положить iff = s) и перейти к шагу XIX; если 1{> 1, то перейти к шагу XV. XV. Вычислить XVI. Положить Гх = Гх, 72 = г2, ..., г/; = пг XVII. Среди множества индексов {г1э г2, ..., г/.} найти индексы г19 г29 .... rii+v для которых XVIII. Положить / = / + 1 и перейти к шагу XIV. XIX. При каждом /? [1 : п] вычислить 0, = Zrj/Zrts. XX. Положить Zkj = Zkh k = 1, ..., т\ j = 1, ..., я. XXI. Вычислить координаты векторов а0, а1, ..., ап в новом базисе: при кфгх Zkj = 2ft/ — 8/Z*St / =s 0, 1, . ¦ . f П\ k = 1, •.., rx — I, rx + It • • • • w>\ при A = rt г^/ ев 9,, / я 0, lf ..., п. XXII. Перейти к новому опорному решению х1 = (л:}, ..., xl)t Хск~ ZkOi k в 1, ..., m, остальные координаты вектора х1 равны нулю. XXIII. Перейти к шагу III. Теорема 3. Если выполнены условия (f), (й), (Ш) предположения 0, то через конечное число итераций процесс решения задачи 0 алгоритмом 3 закончится либо на шаге IV (находится оптимальное решение задачи 0, равное опорному х1 = (х\, ..., х1п)), либо на шаге VII (ус* танавливается, что оптимального решения задачи 0 нет). 200
Замечание 3. На практике алгоритм 3 используется редко, поскольку он требует значительно больше времени для решения задачи линейного программирования по сравнению с алгоритмом 1, а зацикливание процесса решения вырожденной задачи алгоритмом 1 маловероятно. Если же при решении задачи 0 алгоритмом 1 произошло зацикливание на некотором опорном решении, то следует использовать алгоритм 3 для получения нового опорного решения и дальше продолжать решение задачи 0 с помощью алгоритма 1. 4. Модифицированный симплекс-метод Во многих случаях модифицированный симплекс-метод (или метод обратной матрицы) более экономный в вычислениях, чем обычный (особенно это проявляется, если число уравнений-ограничений т существенно меньше размерности пространства п). На каждой итерации в модифицированном алгоритме вычисляется матрица, обратная к базисной, что сводится к вычислению по основным формулам т векторов размерности т (напомним, что в основном симплекс-методе на каждой итерации по основным формулам вычисляется п — т + 1 вектор). Модифицированный симплекс-метод применяется для решения невырожденных и вырожденных канонических задач линейного программирования. Алгоритм 4 Начало. I. Найти исходное опорное решение*1 = (х\, х\, ... ..., х1п) задачи 0 и базис a's aV-м Qlm этого опорного решения. В общем случае для нахождения исходного опорного решения и соответствующего ему базиса используют алгоритм; 2 или алгоритм 2'. П. Вычислить матрицу ВТ1 = (P*/)fc\y.'.'.!m, обратную к исходной базисной матрице В. III. Положить Zko = x\k, Л=1, 2, ..., /п. ОСНОВНОЙ ЦИКЛ. IV. ПОЛОЖИТЬ Сбаз == (#i> С12> •••> С1„)~ V. Вычислить вектор Ь = СбазВ-\ VI. Для каждого /? [1 : п] вычислить оценку Д/==Ьа/ — ch /= 1, ..., п. VII. Если все А/ ^ 0 (/ = 1, ..., п), то положить я* = хг и прекратить вычисления (т. е. в этом случае опорное решение х1 оптимально); если при некотором /? [1 : п] выполняется А7-< 0, то перейти к шагу VIII. VIII. Выбрать по заранее оговоренному правилу индекс s? ? [ 1 : п] такой, чтобы Д5 < 0. IX. Вычислить вектор-столбец *2s, ..., Zmsf 201
X. Если при всех k ? [1 : т] выполняется г*8 ^ 0, то прекратить вычисления (в этом случае целевая функция (с, х) не ограничена (сверху) на допустимом множестве X); иначе перейти к шагу XL XI. Вычислить отношение zjzks для всех k? [I : m], для которых Zks > 0 и обозначить минимальное из этих отношений через е0. XII. Найти индекс г ? [1 : т) такой, что гп > 0 и zjzn = ео- XIII. Положить $kj = рЛ/| ? = 1, ..., т\ / = I, ..., m, и г&) =* = Z/ю» & = 1, ..., /п. XIV. Перейти к новому базису Ф9 ..., aifnf который получается заменой вектора ctr в предыдущем базисе вектором 0s (т. е. положить ir =* s). XV. Вычислить по основным формулам матрицу В 1 = fcli;.".;!^, обратную к новой базисной матрице k = 1, ..., m; / = 1, . • •, m\ к-фг. XVI. Вычислить по основным формулам новые значения базисных координат опорного решения ZrO = Zro/Zrs) Zko = Zko — (Zro/Zrs) Zks, k = 1, 2, ..., r — 1, r + 1, ..., m. XVII. Перейти к новому опорному решению х1 = (х\, ..., *«); остальные координаты вектора х1 равны нулю. XVIII. Перейти к шагу IV. Теорема 4. Если выполнены предположения 0 и задача 0 невырожденная, то процесс решения задачи 0 алгоритмом 4 через конечное число итераций закончится либо на шаге VII (находится оп~ тимальное решение задачи 0), либо на шаге X (устанавливается, что оптимального решения задачи 0 нет). Замечание 4. На практике алгоритм 4 применяется также для решения вырожденной задачи линейного программирования, для которой выполняются условия (i), (и), (Hi) предположения 0. В этом случае теоретически возможно зацикливание процесса решения задачи 0 алгоритмом 4. Если при решении задачи 0 алгоритмом 4 на некотором опорном решении все-таки произойдет зацикливание, то (аналогично пункту 3) необходимо включить в алгоритм 4 специальное правило выбора выводимого вектора из базиса, гарантирующее от зацикливания. Замечание 4'. Если на шаге XV алгоритма 4 матрицу ВТ1- вычислить по формуле ВТ1 = DrB~~\ где Б"" — матрица, обратная к 202
базисной на предыдущей итерации, a Dr имеет вид 1 ... О — zjzrs 0 ... О О ... 1 — Zr-\tjzn О ... О О ... О l/zrs О ... О О ... О —zr+\9Jzrt 1 ... О О ... О — ZmsIZrs О ... 1 то такой модифицированный симплекс-метод называется мультипликативным. Для записи матрицы Dr достаточно знать т + 1 чисел: число г и числа —z\Jzrs> • .., l/zrs, ..., —ZmJzn. Если обозначить через Drk матрицу Dr в k-ft итерации мультипликативного алгоритма и за исходную базисную выбрать единичную матрицу /, то обратная к базисной в k-й итерации будет вычисляться по формуле zr1 ... DrJ. Из этой формулы видно, что для вычисления матрицы В 1 в k-й итерации мультипликативного алгоритма требуется знать (т + l)k чисел, что на начальной стадии вычислений приводит к экономии оперативной памяти ЭВМ. Библиографические указания. При написании параграфа использованы работы [414, 415, 416, 226, 114]. Дополнительные сведения о симплекс-методе и его вариантах, о построении исходного опорного решения и его базиса, о решении вырожденных задач можно найти в работах [414, 415, 416, 411, 78, 65, 11, 187, 21, 45, 199, 348, 641. 4.2. Двойственный симплекс-метод Двойственной (сопряженной) к задаче 1.0 (см. § 4.1, задача 0) называется задача 0. Задача 0. Найти arg min (a°, у) для заданного вектора а0 угУ и множества У, заданного соотношениями Y={y\ATy>cT, y$Rm}. Предположения 0. (i) — ранг матрицы А равен т\ (и) — п > > т\ (Ш)—задача L0 разрешима. 1. Основной алгоритм Определение 1. Почти допустимым опорным решением задачи 1.0 называется вектор х = (xlf x?, ..., хп), удовлетворяющий уравнению Ах = а0, причем векторы а/, соответствующие ненулевым координатам вектора х, линейно-независимы. 203
Определение 2. Базисом почти допустимого опорного решения х задачи 1.0 называется любой упорядоченный набор из т линейно- независимых векторов at9 содержащий все векторы с$9 соответствующие ненулевым координатам вектора х. Практический интерес представляет почти допустимое опорное решение и его базис, для которых справедливо Ay ^ 0, / = 1, ..., п. В [415] такое решение называется псевдопланом задачи 1.0, а базис— псевдобазисом задачи 1.0. В алгоритме 1 на каждой итерации осуществляется переход от одного базиса задачи 0 к другому (или, что тоже самое, от одного псевдобазиса задачи 1.0 к другому). Определение 3. Допустимое решение у двойственной задачи 0 называется опорным, если среди условий АТу ^ ст, которые оно обращает в равенства, имеется m линейно-независимых условий. Определение 4. Базисом опорного решения двойственной задачи 0 называется произвольная система из m линейно-независимых векторов а'», ..., dm прямой задачи, для которых (у, a's) = ее, s = 1, ..., т. Определение 5. Опорное решение у двойственной задачи 0 называется невырожденным, если для любого вектора а), не входящего в его базис, (у, а!) > c-v Определение 6. Двойственная задача 0, все опорные решения которой являются невырожденными, называется невырожденной. Двойственный симплекс-метод (или метод последовательного уточнения оценок) решения задачи 1.0 по своей сути — это применение обычного симплекс-метода к двойственной задаче 0, дополненное построением на каждой итерации n-мерного вектора х, являющегося почти допустимым опорным решением задачи 1.0 (отсюда происходит название метода). Двойственный симплекс-метод заключается в таком последовательном переходе от одного почти допустимого решения х к другому, что через конечное число переходов либо получим оптимальное решение задачи 1.0, либо установим, что задача 1.0 не имеет допустимых решений. Оптимальному решению л;*, задачи 1.0 соответствует оптимальное решение */* задачи 0, причем оптимальные значения прямой и двойственной задач совпадают. Оптимальное решение двойственной задачи определяется по формуле */*=(#,, at, ..., Cim)B~~\ где В — базисная матрица оптимального опорного решения задачи 1.0; il9 ..., im — индексы базисных векторов. Для начала работы алгоритма необходимо иметь опорное решение у = (#!„ ..., ут) сопряженной (двойственной) задачи и его базис cf*9 .,., aifnf на основании которых вычисляется исходное почти 204
допустимое опорное решение с неотрицательными оценками по правилу: в начале находят коэффициенты разложения 2/о, / = 1, ..., т> вектора а0 по базису а'*, ..., dm\ далее составляют вектор х = (х19 *ъ -..» хп)> 1"я компонента х^ (I = 1, ..., т) которого равна г/о, остальные компоненты вектора х равны нулю. Алгоритмы отыскания опорного решения сопряженной задачи и его базиса приведены в пункте 2. Алгоритм 1 применяют для вырожденной и невырожденной задачи 1.0. Если при использовании алгоритма к решению задачи 1.0 в вырожденном случае возникает зацикливание, то в алгоритме 1 необходимо применять процедуру, гарантирующую от зацикливания. Алгоритм 1 Начало. I. Найти почти допустимое опорное решение х = = (*i, х2, ..., хп) задачи 1.0 (с неотрицательными оценками Д7, / = = 1, 2, ..., п) и базис d\ a1*, ..., dm этого почти допустимого опорного решения. II. Вычислить матрицу В", обратную к исходной базисной матрице В, состоящей из столбцов о**, Ф% ..., dm. III. Разложить по исходному базису a's a?*9 ..., dm векторы а0, а1, а2, ..., cf (т. е. найти числа г*/, k = 1, 2, ..., т; j = 0, 1, ..., ги, т такие, что Ы = 2 Zk}dk, j = 0, 1, ..., я), по формулам {ziji Z2/, • • •» Zmj) = В (ai/, аг/, ..., am/) , / = 1, ..., п. Отметим, что заранее известно разложение по исходному базису базисных векторов d^y k = 1, ..., m: zuk = 0 при k Ф /, zuk = 1 при k = Z, /г = 1, ..., m; / = 1, ..., m. IV. Вычислить для каждого /g [I : п] оценку Основной цикл. V. Если для всех k ? [1 : пг] выполняется неравенство г*о^О, то положить #*= лс и прекратить вычисления (т. е. в этом случае почти допустимое опорное решение х оптимально); иначе перейти к шагу VI. VI. Если существует такое k ? [1 : ml, что Zko < 0 и при всех / ? [1 : п] выполняется г*/ ^ 0, то прекратить вычисления (в этом 205
случае задача 1.0 не имеет допустимых решений); иначе перейти к шагу VII. VII. Выбрать (по заранее оговоренному правилу) индекс г? ? [1 : т] такой, чтобы zro < 0. VIII. Вычислить отношения А,/*,/ для всех тех /? [1 : п]9 для которых Zrj < 0 и обозначить минимальное по абсолютной величине из этих отношений через 0О (напомним, что А* ^ 0, /? [1 : п]). IX. Найти индекс s ? [1 : п] такой, что zrs < 0 и —As/zrs = 0О. Для невырожденной задачи 1.0 индекс s определяется однозначно. В вырожденном случае минимальное отношение 0О может достигаться для нескольких индексов /? [1 : я]. Поэтому на практике в качестве s выбирается наименьший индекс /, для которого достигается минимальное отношение. Теоретически в вырожденном случае необходимо применять процедуру выбора s, гарантирующую от зацикливания _(см. пункт 3). _ X. Положить Zkj = Zkj, k = lt ..., /n; / = 1, ..., я и А/ = A/, /= 1, ..., n. XL Перейти к новому базису cf*9 a(*f ..., dm% который получается заменой вектора dr в предыдущем базисе вектором а? (т. е. положить /r== s). XII. Вычислить координаты векторов а0, а1, ..., ап в новом базисе: гщ = Zkj — (zrfzrsuks, / == 0, 1, ..., п\ ?= 1, ..., г— 1, г+ 1, ..., т. Zrj = ZrI/Zrs, / = 0, 1, ..., П. XIII. Вычислить по основным формулам оценки А/, /? [1 : я], отвечающие новому базису Ау = Ау — (Zrj/Zrs) А$, . / = 1, ..., п. XIV. Перейти к новому почти допустимому опорному решению X = \Х^ #2, • • • > «^/г/э xtk=*Zko, Л= 1, 2, ..., m, остальные координаты вектора х равны нулю. XV. Перейти к шагу V. Теорема 1. Если выполнены предположения 0 и задача 0 невырожденная, то процесс решения задачи 1.0 с помощью алгоритма 1 за- кончится через конечное число итераций, либо на шаге V (в этом случае находится оптимальное решение задачи 1.0), либо на шаге VI (в этом случае устанавливается, что задача 1.0 не имеет допустимых решений). Замечание 1. Так как число итераций, необходимых для решения задачи линейного программирования, определяется в основном 206
количеством непрямых ограничений, то двойственный симплекс- метод целесообразно применять, когда число непрямых ограничений существенно превосходит число переменных. 2. Методы отыскания исходного опорного решения сопряженной задачи В подпункте 2' дается метод отыскания опорного решения сопряженной задачи 0 при условии, что известно произвольное допустимое решение задачи 0. В 2" на основании метода, приведенного в 2', рассматривается алгоритм, позволяющий найти оптимальное решение сопряженной задачи (а значит, и прямой) без предварительного вычисления допустимого решения сопряженной задачи. 2'. Метод отыскания опорного решения сопряженной задачи по известному допустимому решению. Предварительно укажем класо задач, в которых определение допустимого решения не представляет труда. Пусть в задаче 1.0 одна и та же компонента а*/, / = 1, ... ..., п, всех векторов а', / = 1, ..., я, положительна. Построить вектор у' = @, .... О, yt, О, ..., 0), т где yt ^ max (Cj/atj). KJ<n Вектор у удовлетворяет ограничениям задачи 0 и поэтому является допустимым решением задачи 0. Предположение 2'. (i) — ранг матрицы А равен т\ (И) — п > > т; (ш) — допустимое множество сопряженной задачи 0 непусто. Алгоритм 2 I. Найти вектор у'=(у'и Уь ...> у'т)—допустимое решение сопряженной задачи 0 такое, что т S <&ЧУ\ >Ch / = 1, •. . , Пг\ D.4) т У] =Ch j = Пг + 1, .. . , П. D.5) II. Найти число г — количество линейно-независимых условий в D.5). Если г = т, то прекратить вычисления (т. е. у'— опорное решение задачи 0, а векторы aS ..., аЦ определяемые линейно- независимыми условиями, составляют базис этого опорного решения); иначе перейти к шагу III. III. Выразить из системы равенств т I! Ct, i = nt+ 1 П, D.6) 207
г переменных yl9 ..., ут через остальные переменные: т У1= 2 dttyt + d,, /=1 г. D.7) IV. Заменить переменные yi9 i =; 1, ..., г, в неравенствах / /= 1, ..., nv eel их выражениями из D.7) и получить систему неравенств относительно уг+и -., Ут т V. Подставить в линейную форму (а0, у) задачи 0 значения переменных у19 ..., */г из D.7) и получить линейную функцию gt переменных уг+и ..., Ут т gX (Уг+U • • • > Ут) = S VI. Если Ь{= 0, / = г + 1, ..., /п, то перейти к шагу XIII; иначе перейти к шагу VII. VII. Вычислить т Е °^А. / = 1 «1- |1 VIII. Если fi у^ 0, / = 1, ..., п19 то прекратить вычисления (в этом случае линейная форма задачи 0 не ограничена снизу на допустимом множестве); иначе перейти к шагу IX. IX. Вычислить m Л/в S иф — с), /=1 nv D.9) t=r-fl X. Вычислить в0 XI. Перейти к новому допустимому решению #"= (уи по правилам У\ = У — %bi9 i = г + 1, ..., m; r/I, ..., t/г находят через yr+u •••» Ут по D.7). XII. Вычислить индекс k? [I : nj такой, что и прекратить вычисления. В этом случае построено новое допустимое решение у\ которое обращает в равенства г + 1 линейно-независимых условий из 208
системы ограничений задачи 0, т. е. г линейно-независимых условий из системы D.5) ch j = nx + 1, ..., л, 1—1 и линейно-независимое от системы D.5) условие из D.4) XIII. Вычислить величины Д7-, /= 1, ..., пх по D.9). XIV. Вычислить величину 90 по правилу f min (Ay/a;+lf/), если среди ar+ur / = 1, ..., nv Vm .>o имеются положительные величины; —min (— Aj/ar+UI)$ если оц,1§/<0 для /= 1, ..., пг* ar+l./<° XV. Перейти к новому допустимому решению #"= (у], ..., z/m) по правилам: # = yj» i = г + 2, ..., т; */ь ..., t/r находят через уг+и ...у у"тпо формуле D.7). XVI. Вычислить индекс k g [I : пг] такой, что и прекратить вычисления (см. шаг XII). Теперь можно применить алгоритм 2 к допустимому решению у" (т. е. сделать еще одну итерацию) и получить допустимое решение уи\ которое превращает в равенства г + 2 линейно-независимых ограничений задачи 0 и т. д. Не более чем за т — г' итераций будет получено опорное решение сопряженной задачи 0 (здесь г'— число линейно-независимых условий-равенств для у'). 2Л'. Метод отыскания оптимального решения сопряженной задачи без предварительного вычисления допустимого решения. Алгоритм 2' I. Выбрать достаточно большое число Р > 0 (р больше любого числа, с которым его приходится по ходу решения сравнивать). II. Составить расширенную сопряженную задачу: т найти argmin р#0+ И^Уп ПРИ ограничениях \ Уо + ДЗ <*чУ1 > ch j = 1, я; 209
(Прямой расширенной задачей является задача 1.0 (с переменными *о> *i> •••» хп), в которой к ограничениям Ах = а0, х ^ 0 добавлены ограничения хо+ хг+ ... + *„= Р; *0> 0). III. Вычислить q, ..., сп9 0}. IV. Составить вектор У' = (Уу 0, .. •. 0), являющийся допустимым решением расширенной сопряженной задачи. V. Отправляясь от допустимого решения у' с помощью метода, приведенного в подпункте 2\ , вычислить опорное решение расширенной сопряженной задачи, его базис и почти допустимое опорное решение расширенной прямой задачи. VI. Решить прямую расширенную задачу двойственным симплекс-методом и получить векторы: х* = (#о, х\, ..., х*п)—оптимальное решение прямой расширенной задачи; #* = (у*о,у*и... -м У*т) — оптимальное решение расширенной сопряженной задачи. VII. Если yl = 0, то у*= (у*и ..., Ут) —оптимальное решение сопряженной задачи 0, а х* = (х*, ..., х*п)—оптимальное решение задачи 1.0. Если уо > 0, то сопряженная задача 0 и прямая задача 1.0 неразрешимы. Алгоритм 2' за конечное число итераций находит оптимальное решение прямой задачи 1.0 и двойственной задачи 0 без предварительного вычисления допустимого решения сопряженной задачи. - " Недостатком алгоритма 2' является проблема выбора подходящего числа Р > 0. 3. Правило выбора вектора а5, вводимого в базис, гарантирующее от зацикливания в вырожденном случае Если при использовании алгоритма 1 для решения задачи линейного программирования в вырожденном случае возникло зацикливание (т. е. возврат к уже пройденному базису), то на шаге IX алгоритма 1 следует применить следующую процедуру выбора индекса s? [1 ; ai], гарантирующую от зацикливания. Алгоритм 3 Начало. I. Обозначить через Зг совокупность индексов /, на которых достигается Эо = min (— II. Положить v = 1. 1210
Основной цикл. III. Если Vv содержит один элемент, то этот элемент принять в качестве индекса s и прекратить вычисления; иначе перейти к шагу IV. IV. Если все индексы / ? Vv превосходят im-v+u то положить s = min /; иначе перейти к шагу V. V. Построить множество З^+ь объединяя в него те индексы /, на которых достигается min (zm-v+\tj/Zrj). VI. Если v < m, то положить v = v + 1 и перейти к шагу III; иначе перейти к шагу VII. VII. Положить s = min /. / Библиографические указания. Пункт 1 написан на основании работы [226], пункты 2 и 3 — на основании работ [414, 415, 416]. Дополнительные сведения о двойственном симплекс-методе, способах построения исходного опорного решения и вырожденности в двойственном симплекс- методе можно найти в работах [81, 429, 226, 114]. 4.3. Методы последовательного сокращения невязок Процесс вычисления оптимального решения методом сокращения невязок не требует предварительного определения опорного решения прямой или двойственной задачи. Для начала процесса достаточно знать лишь произвольное допустимое решение сопряженной задачи. При наличии опорного решения исходной задачи 1.0 и произвольного допустимого решения сопряженной задачи 2.0 модификация метода сокращения невязок — метод двухсторонних оценок позволяет получать приближенное решение с наперед заданной ошибкой при существенно меньшем числе итераций, чем это1 требуется для получения оптимального решения. 1. Метод последовательного сокращения невязок Предположения 1. (i) — a°i ^ 0, i = 1, 2, ..., т; (и) —ранг матрицы А равен т\ (Hi) — п > т\ (iv) — двойственная задача 2.0 имеет допустимые решения. Метод последовательного сокращения невязок использует прямую и двойственную задачи линейного программирования. Правила перехода от одной итерации к другой обеспечивают сокращение невязок (разностей между правыми и левыми частями условий-равенств задачи 1.0). Через конечное число итераций либо невязки сводятся к нулю (т. е. находится оптимальное решение задачи 1.0)» либо устанавливается неразрешимость задачи 1.0. На каждой итерации алгоритма требуется вычислять оптимальные решения некоторой вспомогательной задачи и двойственной к ней. В методе 2П
требуется предварительное вычисление допустимого решения двойственной задачи 2.0. Алгоритм 1 Начало. I. Найти произвольное допустимое решение у =* = (Уъ #2» •••> Ут) двойственной задачи 2.0. Основной цикл. II. Найти все индексы /?[1:л], для которых 2 и обозначить множество таких индексов через III. Используя модифицированный симплекс-метод, найти оптимальное решение (х]х, л?, ..., х]г ej, 82, ..., О вспомогательной задачи 1 линейного программирования в пространстве й/+т: т Задача 1. Найти arg min ]?et. при ограничениях (xlti...Sfr г, вт) /=1 8t = at» t = 1, ..., m; при et>0, i = 1, 2, ..., m. IV. Найти оптимальное решение [i*= (\i*, jliJ, ..., Цт) задачи, двойственной к приведенной выше вспомогательной задачи 1, которое можно вычислить по формуле где В~? — матрица, обратная к оптимальной базисной матрице задачи 1; (dt> ..., cij — координаты вектора @, ..., 0, 1, 1, ..., 1), отвечающие оптимальному базису задачи 1. При решении задачи 1 модифицированным симплекс-методом матрица В~р и вектор (citf dt, ..., c,m) известны. Двойственная к задаче 1 имеет вид: т найти arg max Уа?ц, при ограничениях S/^< при jit< I, i = 1, 2, ..., т. 212
V. Если невязки 8*, I = 1, 2, ..., m, удовлетворяют равенствам е* =0, i = 1, 2, ..., m, то вычислить вектор #* == (#i, #2, ..., х*п) по правилу jc* = х* при / { Х\ = 0 при и прекратить вычисления (в этом случае находится оптимальное решение х* задачи 1.0); если при некотором i?[l : т] г! > 0, то перейти к шагу VI. VI. Вычислить величины 7 Д] VII. Если при всех /?[1 : л] выполняется неравенство б/^ ^ 0, то прекратить вычисления (в этом случае задача 1.0 не имеет допустимых решений); иначе перейти к шагу VIII. •VIII. Вычислить величины А/ для тех /, для которых б/ > 0: IX. Вычислить отношение А/б/ для тех /, для которых бу* > >> 0, и минимальное из этих отношений обозначить через 0О. X. Положить у = у. XI. Перейти к новому допустимому решению у = {у1% ..., ут) двойственной задачи 2.0 по правилу Hi = У1 — ОоИЛ i = 1» • • • • /я. XII. Перейти к шагу II. Теорема 1. Если выполнены предположения 1 и расширенная задача 1 невырожденная, то процесс решения задачи 1.0 алгоритмом 1 через конечное число итераций закончится либо на шаге V (находится оптимальное решение задачи 1.0), либо на шаге VII (устанавливается, что задача 1.0 не имеет допустимых решений). Замечание 1. Алгоритм 1 можно применять для решения задачи 1.0 и в том случае, когда расширенная задача 1 вырожденная. Для этого необходимо при решении вспомогательных задач модифицированным симплекс-методом пользоваться правилом, гарантирующим от зацикливания. Замечание Г. Исходное опорное решение каждой последующей вспомогательной задачи 1 следует составлять из соответствующих положительных компонент оптимального решения предыдущей вспомогательной задачи 1, что существенно сократит число итераций, необходимых для решения очередной вспомогательной задачи 1. 213
2. Метод двусторонних оценок Для решения задач линейного программирования методом двусторонних оценок предварительно необходимо находить (кроме исходного допустимого решения сопряженной задачи 2.0) исходное опорное решение исходной задачи 1.0. На каждой итерации алгоритма вычисляется некоторая оценка (невязка е) уклонения полученного опорного решения от оптимального. В методе двусторонних оценок требуется на каждой итерации решать вспомогательную задачу линейного программирования с известным исходным опорным решением и его базисом. Алгоритм 2 Начало. I. Найти опорное решение х = (jclf ..., хп) задачи 1.0 и допустимое решение^ = (у[, ..^Ущ) сопряженной задачи 2.0. • 'II. Вычислить величины Основной цикл. III. Найти все индексы /?[1:л], для которых выполняется Д,— 0, и обозначить множество таких индексов через #у. IV. Обозначить через Зх множество индексов векторов базиса опорного решения х. V. Найти множество # = #у U #*. VI. Используя модифицированный симплекс-метод, найти оптимальное решение х* следующей вспомогательной задачи линейного программирования. Задача 2. Найти arg min 2 Д/*/ ПРИ ограничениях VII. Найти оптимальное решение |х* = (ц,*, ..., \х*т) задачи, двойственной к задаче 2 где В^} — матрица, обратная к оптимальной базисной матрице задачи 2; tlf ..., im — номера базисных векторов оптимального решения задачи 2. ••VIII. Вычислить невязку 214
Невязка е является разностью между значениями линейных форм двойственной и прямой задач при данных х и у. На практике вычисления можно прекращать, когда е не превышает наперед заданной точности вычисления минимума целевой функции. IX. Если е = 0, то вычислить оптимальное решение** = (х\%... ..., х*п) задачи 1.0 *; = *; при л:/ = 0 при / g: е7 J и прекратить вычисления; иначе перейти к шагу X. X. Вычислить параметры т б/- Scci/H/*, /=1, 2, .... я. /1 Если при всех / ? [1 : п] выполняется б) < 0, то прекратить вычисления (в этом случае задача 1.0 не имеет допустимых решений); иначе перейти к шагу XI. XI. Вычислить отношение Д//в/ для тех /, для которых 6/ > > 0, и минимальное из этих отношений обозначить_через Эр- XII. Перейти к новому опорному решению х = (х19 ..., хп) задачи 1.0 */=*; при }?$ | XIII. Положить у = у; Af~ A/t / = 1, ..., п. XIV. Перейти к новому допустимому решению у = (у19 сопряженной задачи 2.0 XV. Вычислить величины Д/, отвечающие новому допустимому решению у, Д/-Д/ —вов;, /611 :/i]. XVL Перейти к шагу III. Теорема 2. Если выполнены предположения 1, то в невырожденном случае процесс решения задачи 1.0 алгоритмом 2 через конечное число итераций закончится либо на шаге IX (находится оптимальное решение задачи 1.0), либо на шаге X (устанавливается, что задача 1.0 не имеет допустимых решений). Алгоритм 2 может применяться и для вырожденного случая. Тогда при решении вспомогательной задачи 2 теоретически может возникнуть зацикливание. При зацикливании следует применять специальное правило, гарантирующее от зацикливания. Библиографические указания. Параграф написан на основании работ [415, 416, 116]. Метод последовательного сокращения невязок и его варианты изучались также в работах [414, 207, 241, 374]. 215
4.4. Обобщенный симплекс-метод п Задача 1. Найти argmax JJ CjX; для заданного вектора с (clt ..., сп) и заданного множества Предположения 1. (i) — ранг матрицы А равен т\ (И) — т < < п\ (ш) — множество X непусто. В обобщенном симплекс-методе на каждой итерации алгоритма в базисе меняются не один, а несколько векторов. Для определения векторов, вводимых в базис и выводимых из него, требуется на каждой итерации решать вспомогательную задачу линейного программирования с ограничениями в виде неравенств. В начальной ста- дии алгоритма требуется иметь опорное решение, его базис и матрицу, обратную к базисной. На последующих итерациях опорное решение, его базис и матрица, обратная к базисной, вычисляются по рекуррентным формулам. На начальных итерациях алгоритма число вводимых в базис векторов надо выбирать по возможности большим, а в конце решения задачи это число следует уменьшать. Обобщенный симплекс-метод требует меньшего, по сравнению с другими методами, числа итераций для получения оптимального решения, и важно, что этот метод менее чувствителен к ошибкам вычислений. Алгоритм 1 Начало. I. Найти исходное опорное решение х1 = (х\, ... ..., Хп) и его базис d\ ..., ат. Способы вычисления исходного опорного решения и его базиса приведены в § 4.1. II. Вычислить матрицу В*1 = (p/pCi.'i.'.'.'m, обратную к исходной базисной матрице Вхх = (а'1, ..., dm). Основной цикл. III. Положить г® = x\k> k == 1, ..., т\ Зх* =» {*i, ..., im}. IV. Вычислить величины V. Вычислить оценки А/, /= 1, ..., /г, m A/ = ? ач\ь — сi для Ду = О для VI. Если все Ду ^ 0 (/ = 1, ..., n)y то положить х* = xl и прекратить вычисления (т. е. в этом случае опорное решение х1 оптимально); иначе перейти к шагу VII. 216
VII. Задать множество L, состоящее из произвольных / индексов / $ 3xi таких, что Д/ <[ 0. Ш1. Вычислить коэффициенты zijy i = 1, ..., т\ j$L, разложения векторов Ыу / g L по базисным векторам IX. Применить алгоритм 7.1 (см. § 4.7, алгоритм 1) к решению следующей вспомогательной задачи линейного программирования: найти argmaxf—S AfiA для заданных чисел A/, /?L при ограничениях За исходное опорное решение вспомогательной задачи можно принимать 0/ = 0, I ? L (базис этого опорного решения не содержит ни одного элемента). Решение вспомогательной задачи может завершиться либо признаком неразрешимости этой задачи, либо получением оптимального решения, базиса этого решения и матрицы, обратной к оптимальной базисной (см. § 4.7). Если в процессе решения вспомогательной задачи обнаружится ее неразрешимость, то прекратить вычисления (в этом случае задача 1 также неразрешима, т. е. ее целевая функция неограничена на допустимом множестве X); иначе получить оптимальное решение 8*, / ? L, вспомогательной задачи и его базис Вт, A^т^ ^ t), состоящий из элементов матрицы (ги)м т, которые расположены на пересечении строк и столбцов с номерами гъ ..., гх и klt ..., fee, соответственно, а также получить матрицу ЯГ\ обратную к матрице Вт. X. Перейти к новому опорному решению х = (хи ..., хп) по правилам w) — j?j Zk\$\i, если / = tfc, k = 1, •. •, tn\ *1 в/, /6Lf 0, в остальных случаях, где /= 1, ..., п. XI. Перейти к новому базису В- путем замены в старом базисе векторов аа, X = 1, ..., т, векторами а*», ..., а\ т. е. положить irk = кк> А, = 1, ..., т. XII. Получить из матрицы Я- путем перестановок ее столбцов матрицу А- по следующему правилу: 217
первые т столбцов матрицы Л- образуются матрицей Сх= (ak*, ak*t ..., ах)\ остальные т — т столбцов матрицы образуются матрицей С2, которая получается из матрицы В- путем вычеркивания столбцов с индексами klt ..., kT. Указанный способ получения матрицы А- из В- порождает набор чисел sit i = 1, ..., m, (s< ? [1 : га]) такой, что i-й (в порядке следования) столбец матрицы 5- ставится на место srro столбца матрицы Л-. Обозначить через Qx (Qx (С) = = С) оператор, который *-й (/ = 1, ..., т) столбец квадратной матрицы С ставит на место srro (/ = 1, ..., т) столбца в матрице С, и обозначить через Q2 (Q2 (D) = D) оператор, который too (i = = 1, ..., m) строку квадратной матрицы D ставит на место st-ft строки в матрице D. „ XIII. Составить матрицу Y размера т X т, столбцами которой являются векторы * г, X == 1, ..;, т. XIV. Составить матрицу Bm—XtX, которая получается из матрицы Y путем вычеркивания строк с индексами гъ г2, ..., гт. XV. Разбить матрицу BJX на две подматрицы размера т X m и (т — т) X т, соответственно XVI. Вычислить матрицы Ф~ ч/=1,...,т /1 /+т,/;/—1 т—% И соответственно, по формулам M т . XVII. Составить матрицу AJl размера т X m, первые т строк которой образованы матрицей ф//)Н;!;'.'?, а остальные яг — т — матрицей (^-f-x./jfcuV/m-x. XVIII. Найти матрицу XIX. Положить х = х, BJ1 — Bj\ Bx= В- и перейти к шагу III. Теорема 1. Если выполнены предположения 1, то в невырожденном случае процесс решения задачи 1 алгоритмом 1 через конечное число итераций закончится либо на шаге VI (находится оптимальное решение 218
х* задачи I), либо на шаге IX (устанавливается, что целевая функция задачи 1 неограничена на допустимом множестве X). Библиографические указания. При написании параграфа использованы работы [414, 415, 416/114]. ' 4.5. Методы блочного программирования Методы блочного программирования позволяют получить реше» ние экстремальной задачи с помощью решения ряда вспомогательных задач, каждая из которых в определенном смысле является более простой, чем исходная. В линейном программировании методы блочного программирования применяются для решения задач большого размера и задач с блочной структурой матрицы ограничений. 1. Метод разложения Данцига—Вульфа Задача 1. Найти argmax (с, х) для заданного вектора с = = (с19 с2, ..., сп) и множества X, задаваемого соотношениями Ь°\ D.Ю) Ахх = Ьх\ D. И) *>0, D.12) где Л°— матрица размера т X п\ А1 — матрица размера тхх п\ Ь° = (blf ..., bm); b1 = (bm+u ..., fem+m,)- V* Случай ограниченности множества Xх. Предположения 1. (i) — множество X1, определяемое условиями D.11) — D.12) — 1А°\ ограничено; (й) — rang (^г) = т + тг\ (Hi) — т + тх< п. В методах разложения исходная задача 1 размера (т + тх) X X п сводится к решению следующей задачи линейного программирования размера (т + 1) X /. z-задача. Найти argmax 2 <*А при ограничениях /1 D.13) S^ = l; D.14) *,>0, i= 1, 2, ...,/, D.15) где x1, x2f ..., xl—вершины многогранника Х1; i Oi = (с, x% i = 1, 2, ..., I; pl = АЧ1, i = 1, 2, ...,/. D.18) Оптимальное решение (г\9 &, ..., г*) г-задачи однозначно определяет оптимальное решение х* задачи 1 219
Для решения г-задачи не обязательно знать все вершины множества X1 (т. е. вектора д:1, х2, ..., х1). Необходимо лишь знать вершины, входящие в исходный опорный базис г-задачи. В процессе решения г-задачи модифицированным симплекс-методом проверка на оптимальность опорного решения г-задачи производится с помощью решения некоторой вспомогательной задачи линейного программирования с ограничениями D.11) — D.12). Алгоритм 1 Начало. I. Найти исходное опорное решение г1 = (г{, ... ..., г)) г-задачи, базис \Р), ..., K?m J этого опорного решения и коэффициенты a,fe, k = 1, ..., т + 1, линейной формы г-задачи, отвечающие исходному опорному решению. II. Вычислить матрицу В, обратную матрице, составленной из базисных векторов (?)»•••> у\т ) В Ш (pt/Jf-l т+Ь Основной цикл. III. Положить сгбаз = (<?/,, <Т/2, ..., (Т/т+1). IV. Вычислить вектор по формуле V. Положить ум = г}к, k = 1, 2, ..., т + 1. VI. Вычислить n-мерный вектор сА = (с?9 с*, ..., Сп) по формуле (в обычной форме записи координаты вектора сА вычисляются по формуле т /-1, 2, ..., л). х* VII. Вычислить вектор х* — оптимальное решение следующей задачи линейного программирования в пространстве Я". Подзадача Хл: найти arg max (сЛ, х) при ограничениях X АН « Ь1; Для решения подзадачи Ха удобно применять симплекс-метод или модифицированный симплекс-метод. Причем на каждой последующей итерации за исходное опорное решение и его базис можно брать оптимальное решение и его базис, полученные на предыдущей итерации. 220
VIII. Если выполняется равенство (сА, xv) = Я,, то положить 2*= z1 и перейти к шагу IX (т. е. в этом случае опорное решение z1 = (г}, ..., z\) является и оптимальным решением z-задачи); иначе перейти к шагу X. IX. Вычислить вектор #*—оптимальное решение задачи 1 т-\-\ 2 и прекратить вычисления. X. Вычислить вектор ру = (Р \ где pv ^ доху XI. Вычислить вектор (т. е. разложить вектор pv по базисным векторам) (У\\> ytv, • • • , Ут+Lv) = В~~ PV- XII. Вычислить коэффициент линейной формы z-задачи av = (с, xv). XIII. Вычислить отношения t/kofykv для тех k ? [1 : (т + 1)]у для которых yto> 0 и обозначить минимальное из этих отношений через 0О. XIV. Найти индекс г ? [1 : (т + 1)] такой, чтоу^ > 0 и е 0 _ XV, Положить pv= p^/, i = 1, ..., m + I; / = I, ..., m + 1 и Уко = Уко, k = 1, ..., m + 1. Перейти к новому базису (Р1\ (Pr\ ...,^m+1V который получается заменой вектора рг = (Рг J в предыдущем базисе вектором pv = | Р J (т. е. положить /г= v). XVI. Вычислить по основным формулам матрицу ВГХ Д Д (P{/)fci!;;'.;m+i»обратную к новой базисной матрице гп f« lf .... m+ 1; /= 1, ..., m+ 1; XVII. Вычислить по основным формулам новые значения ба~ зисных координат опорного решения У го = Уго/у™\ Уко = Уко—(Уго/у™)Ук*> k = 1, .. ., г — 1, г + 1, • •., m + I. 221
XVIII. Перейти к новому опорному решению г-задачи * - К .... г\): *\к = Ум> k= 1, ..., т+ 1, остальные координаты вектора г1 равны нулю. XIX. Перейти к шагу III. Теорема 1. Если допустимое множество решений X задачи 1 непусто, то при выполнении предположений 1 алгоритм 1 за конечное число итераций приводит к оптимальному решению задачи I (предполагается, что если в вырожденном случае возникает зацикливание, то по аналогии с пунктом 3 § 4.1 применяется специальное правило выхода из цикла). Г. Случай неограниченности множества X1. Предположения Г (?).— Множество X1, определяемое условиями D.11) — D.12) — неограничено; (И) — rang г^Л = т + тх; (Hi) — т + тх< п. Обозначим через х\ i =* 1, ..., lly вершины множества X1, а направляющие векторы неограниченных ребер X1 через xil+l9 Если выполняются предположения Г, то исходная задача 1 сводится к решению г-задачи, в которой условие D.14) следует заменить на 2Л , где et.= 1 при i == 1, 2, ..., 1г\ &t— 0 при i = lx+ 1, ..., /. К измененной г-задаче можно применить алгоритм 1 со следующими изменениями: поскольку на шаге VII алгоритма 1 подзадача Х\ не всегда разрешима (целевая функция может быть неограниченной на множестве X1), то возможны два случая: Г) оптимальное решение xv подзадачи Хл существует; 2°) при решении подзадачи Хл есть оценка Ду- < 0, для которой все Ukj^. 0, k = 1, ..., тг (т.е. целевая функция подзадачи Хл не ограничена сверху). В случае Г шаги алгоритма 1 останутся без изменений. В случае 2° шаги I—VI останутся без изменений, а на шаге VII алгоритма 1 в качестве вектора ху выбирается n-мерный вектор, у которого координаты с номерами Д, /2, ..., /mi равны, соответственно, —иц, —#2/, •••> —#mi/, /-я координата равна единице, а остальные координаты нулевые (здесь Д, /2, ..., \тх — номера базисных векторов подзадачи ХЛ) и осуществляется переход к шагу X, на котором вычисляется вектор pv по измененной формуле где
В случае 2° вектор xv является направляющим вектором неограниченного ребра многогранника X1 (здесь Ukh k = 1, ..., т1 — коэффициенты разложения /-го вектора матрицы ограничений в подзадаче ХЛ). Шаг XI алгоритма 1 следует дополнить проверкой на неограниченность целевой функции г-задачи. XI. Вычислить вектор (У\\, • ¦ • , Ут+l.v) = ВТ р*. Если при всех k ? [1 : (т + 1)] выполняется ykv^ 0, то прекратить вычисления (в этом случае целевая функция z-задачи (а значит, и задачи 1) неограничена на допустимом множестве); иначе перейти к шагу XII. Остальные шаги алгоритма 1 остаются без изменений. Замечание 1. Принцип разложения, в свою очередь, можно применить и для решения вспомогательной задачи на шаге VII алгоритма 1 и т. д. Поэтому решение задач линейного программирования с любым числом ограничений в принципе можно свести к решению ряда задач линейного программирования, количество ограничений в каждой из которых не превышает заданного числа т. Теорема Г. Если допустимое множество решений X задачи 1 непусто, то при выполнении предположения Г процесс решения зада* чи 1 измененным алгоритмом 1 через конечное число итераций либо закончится на шаге IX (находится оптимальное решение задачи 1)» либо на шаге XI (устанавливается, что целевая функция задачи 1 неограничена на допустимом множестве). 2. Метод разложения решения задач линейного программирования с блочно-диагональной матрицей Метод разложения, описанный в предыдущем пункте, особенна эффективен при специальной блочно-диагональной структуре матрицы А1 в задаче 1: Ах 0 ... О А2 ... О о о ... л, где Л, = (a//), t = 1, ..., s — матрица размера mt x nt. Исходная задача линейного программирования записывается в виде. S Задача 2. Найти arg max ]? (cf, xf) при ограничениях х /=1 Atxf = = 1 1, 2, . , 2, .. .., s, ., s, D.18> D.19) 223
где л;* — ягмерный вектор-столбец; Л? = (о$) — матрица размера т X nt\ At= (alj) — матрица размера mtX nt\ b° — m-мерный вектор-столбец; Ы — /пгмерный вектор-столбец; с*— игмерный вектор- строка; х = (л:1, л;2, ..., Xs). Решение задачи 2 сводится к решению следующей задачи линейного программирования размера (т + s) х 1[1 = 2j h): s lt гх-задача. Найти arg max ? V аУс при ограничениях t ^e^=l. t=l s; D.21) \/ s= 1, 2, ...,/*; f = 1, 2, ..., s, D#22) где aj = (^, 4i)Y> p\i) = ^?4>; 4)» ' = Ь —t ^/ ПРИ каждом /g € И .' s\ — соответствует вершинам и направляющим векторам неограниченных ребер многогранного множества Gu Gt A {x? \ Atxf = = Ы, х*^0], (предполагается, что при i g [I : /J], х\ь соответствует вершине, а при i g [(/} + 1) : //] — направляющим векторам неограниченных ребер Gt)\ 1, если х^г) соответствует вершине множества G,, г\ ^ 0, если xf{i) соответствует бесконечному ребру множества G/. Для удобства записи ограничения D.20) и D.21) перепишем в виде где здесь ё — s-мерный вектор с единицей на *-м месте; /s — s-мерный вектор с единичными компонентами. Оптимальное решение г^задачи однозначно определяет оптимальное решение задачи 2, т. е. если числа zi определяют решение ^-задачи, то векторы и •" t = 1, ..., S, D.23) 224
составляют оптимальное решение X* = (х\ X2, . . . , Xs) D.24) задачи 2. Для решения г^задачи нет необходимости знать заранее все вершины многогранников G,, / = 1, ..., s (необходима лишь информация о вершинах, входящих в исходный базис), г^задача распадается на s (по числу блоков) подзадач размера mt X пь t = = 1,..., 5, каждая из которых решается модифицированным симплекс- методом. Оптимальные значения линейных форм этих подзадач используются для проверки опорного решения ^-задачи на оптимальность и для обновления базиса ^-задачи, если исследуемое опорное решение не оптимально. Алгоритм 2 Начало. I. Найти исходный базис гх-задачи __ __ ш| *. A/»)» Pdt)> • • •» базисные переменные опорного решения ггзадачи, отвечающие этому базису, и коэффициенты линейной формы г^задачи, отвечающие исходному базису, И. Вычислить матрицу^/Г, обратную к матрице, составленной из базисных векторов p{lk)t k == 1, ..., т + s: В = (p//)fe|,. .,m+s< Основной цикл. III. Положить абаз = (о/|, ..., afm+s). IV. Вычислить вектор Л д (Л1, Л2) = (А,!, ..., А^, Я?, ..., A,2S) по формуле ^_ V. Положить Ум^г/j-, k= 1, 2, ..., m + s. VI. Положить / = I. VII. Решить следующую задачу линейного программирования размера mt x nt (Хд-задачу): найти arg max (с? — ЛМ?, xf) при ограничениях (при этом считаются известными вершины х\\, х\\, ..., 8 3-341 225
Процесс решения Х(л-задачи может закончиться одним из двух исходов: исход 1°— Хл}-задача разрешима; исход 2°— линейная форма Хд-задачи неограничена на множестве Gt). Если Х^-задача разрешима, то обозначить ее решение через x\Vt) и перейти к шагу VIII; если Хл-задача неразрешима (т. е. линейная форма Хл}-за- дачи неограничена на множестве Gt), то обозначить через л;^) направляющий вектор неограниченного ребра множества Gtt порождающий вектор p(v/} с отрицательной оценкой Д^, и перейти к шагу IX. (Правило выбора такого х{У() описано в пункте 1). -VIII. Вычислить оценку и перейти к шагу X. IX. Вычислить оценку Д^ по формуле и перейти к шагу X. X. Если /< s, то положить t = / + 1 и перейти к шагу VII; иначе перейти к шагу XI. XI. Если выполняется условие гшпД' =0, D.25) то исследуемое опорное решение и базис г^задачи оптимальны; в этом случае найти оптимальное решение исходной задачи 2 по D.23) — D.24), где zi равны соответствующим базисным переменным *t ггзадачи при / = tk, i = ik9 k = 1, ..., m + s, и zt: = 0, в против- ном случае (векторы х\, соответствующие номерам базисных переменных, тоже известны), и прекратить вычисления. Если условие D.25) не выполняется, то перейти к шагу XII. На последующих шагах алгоритма осуществляется переход к новому базису г^задачи. XII. Вычислить индекс \i ? [1 is], для которого выполняется Дй. = min AL XIII. Вычислить (m + sj-мерный вектор jcft^ и соответствующий коэффициент линейной формы ггзадачи XIV. Вычислить вектор (т. е. вычислить коэффициенты разло- 226
жения вектора/7(^д) по базисным векторам) /7 XV. Вычислить индекс г ? [1 : (т + s)l, удовлетворяющий условию / = rain {уы/ук»), Ущ > 0. XVI. Положить fyij = Р^/, i = 1, ..., т + s\ / = 1, ..., т + s, и р*о = f/ло, ft = 1, ..., m + s. XVII. Перейти к новому базису p{lt)f ..., р\Т*\у который получается заменой вектора р<{\ в предыдущем базисе вектором /?<vu) (т. е. положить tT = fi, /г == v^). Отметим, что при переходе к новому базису меняется также коэффициент линейной формы о\г и точка х\г. XVIIL Вычислить по основным формулам матрицу ВТ1, обратную к новой базисной матрице: Р// = Р^/ — (Ргу/Ргц) f/^n» i=l, ...,m + s; /=I, ..., m + s; Ьфг. XIX. Вычислить по основным формулам новые значения базисных координат опорного решения г^задачи: УгО = Угъ1уг\к\ Уко = Уко — (Уго/угц)Ук», k = 1, ..., г — 1, г + 1, ..., m + s. XX. Положить ?(> = г/^о, ft = 1, ..., m + s, и перейти к шагу III. Теорема 2. Если допустимое множество решений задачи 2 непусто, уравнения-ограничения задачи 2 линейно-независимы и целевая функция задачи 2 ограничена на допустимом множестве решений, то за конечное число итераций алгоритм 2 приводит к оптимальному решению задачи 2 (при этом предполагается, что если в вырожденном случае возникает зацикливание, то, по аналогии с пунктом 3 (§ 4,1), применяется специальное правило выхода из цикла). 3. Метод, использующий обобщенный градиентный спуск Задача 3. Найти arg max (с, х) для заданного вектора с б п х 6 Я при ограничениях }, *«1, ..., т±; D.26) 8* 227
k=\ m2; D.27) */>0, /= 1, ..., П. D.28) Задача, двойственная к задаче 3, имеет вид. Задача 3\ Найти arg min(]? b\yt + ? b\zk) при огра- {у,г) t=l /г=1 ничениях - t=sl, ...jtfv, гл>0, &= 1, ..., m2, здесь у = (ylt ..., уяц), г = (zlt ..., zmi). Предположения 3. (i) — задача 3 имеет оптимальное решение; (й) — система ограничений D.27) и D.28) вырезает в пространстве ограниченный многогранник Хг. В приводимом ниже методе решение задачи 3' сводится к минимизации (методом обобщенного градиентного спуска) выпуклой кусочно-линейной функции Ф* (у) & max (t cixi + § у, [b\ - f a\fxM при простейших ограничениях у{^ 0, i = 1, ..., тг. На каждой итерации алгоритма требуется решать задачу линейного программирования с ограничениями D.27) и D.28). Метод обобщенного градиентного спуска удобно применять к таким задачам линейного программирования, двойственные к которым имеют блочную структуру. Алгоритм 3 Начало. L Положить у1 = @, 0, ..., 0). т, II. Положить /= 1, Основной цикл. III. Положить у = у1. IV. Решить задачу линейного программирования: In mx I n \\ найти arg max ( 2 CjX,- + JJ у A b) — $] a^ilxi 11 при ограничениях D.27) и D.28); обозначить ее решение через х* (у1), а через z (у1) — вектор оптимального решения двойственной задачи. V. Вычислить вектор hl = (hlu ..., hlmt)9 /—l VI. Вычислить шаговый множитель 228
VII. Вычислить вектор где я+—оператор, оставляющий неотрицательные координаты без изменений и обращающий отрицательные координаты в нуль. VIII. Положить 1=1+1 и перейти к шагу III. Теорема 3. Если выполняются предположения 3 и шаговые множители удовлетворяют условиям 00 р,>0, /=1,2,...; Р/-*0; ? Р/ = °°> то последовательность {<р* (#7)}/Li сходится к оптимальному значению функции ф* (у) на множестве у ^ 0, при этом пара векторов (у1 у г (у1)) сходится к оптимальному решению двойственной задачи 3'. Библиографические указания. Пункты 1, 2 написаны на основании работ [88, 115, 457], пункт 3 — на основании работы [394]. Дополнительные сведения о методах блочного программирования можно найти в работах [20, 52, 55, 458, 168—170, 166, 182, 211, 237, 258, 347, 353, 361, 495, 79]. 4.6. Модификация симплекс-метода для решения задачи линейного программирования с двусторонними ограничениями п Задача 0. Найти arg max J] cfx, для заданного вектора с = (clf ..., сп) и заданного множества ограничений ХЬ{х\Ах = Ь, «,•<*/<?/, / = 1 я; x?Rn], где А — т X n-матрица; Ъ — я-мерный вектор; ау, р,, / ? [1 : п] — некоторые числа. Предположения 0, (i) — ранг матрицы ^Д(а//)й;;.'.*,т== = (а1, ..., ап) равен т\ (И) — п> т\ (Ш) — множество ограничений X непусто. Определение 1. Допустимое решение х = Ц, ..., ~хп) задачи О называется опорным, если система векторов а7, соответствующих компонентам Xj, для которых а/<^/<Р/, D.29) линейно-независима. Определение 2. Система т линейно-независимых векторов, содержащая совокупность всех векторов, которым соответствуют компоненты л^ опорного решения х, удовлетворяющие D.29), называется базисом опорного решения х. 229
Определение 5. Опорное решение л: задачи 0 называется невырожденным, если т его компонент удовлетворяют неравенствам D.29). Задача 0 называется невырожденной, если все ее опорные решения невырожденные. Ниже приводится модифицированный симплекс-метод решения задачи линейного программирования с двусторонними ограничениями применительно к виду задачи 0. Для начала работы алгоритма требуется иметь опорное решение и его базис. Метод приводит к решению задачи 0 (либо устанавливает неограниченность линейной формы на множестве X) за число итераций, не превышающее N = С%2п~т (эта оценка справедлива для невырожденной задачи 0). Если алгоритм 1 применять для решения вырожденной задачи 0, то (теоретически) возможно зацикливание (т. е. возврат к уже пройденному базису). Если при решении задачи 0 алгоритмом 1 возникает зацикливание, следует применять процедуру выбора вектора а*г, выводимого из базиса, исключающую зацикливание. В начальной стадии алгоритма требуется вычислять матрицу, обратную к исходной базисной. I. Основной алгоритм Алгоритм 1 Начало. I. Найти опорное решение х = (хг, ..., хп) задачи 0 и его базис а'1,..., ат (точнее множество 7-, состоящее из индексов /х, ..., imt где ik? [1 : п] при k = 1> w.., /л). II. Положить Zko= xlk> k «= 1, ..., т. Числа z*o, k = 1, ..., m, являются коэффициентами разложения вектора a°=b—2 xial п0 исходному базису (здесь 7-— множество, состоящее из базисных индексов 1Ъ ..., im). III. Вычислить матрицу ВТ1, обратную к исходной базисной матрице В, состоящей из векторов а*\ ..., ат. IV. Разложить по базису а\ ..., cim векторы а/, /= 1, ..., п т (т. е. найти числа гщ такие, что о! = 2 г*/Л /= 1, ..., п) по правилу z mj) ) = ВТ (ai/, ..., aw/) , / = 1, ..., п. Заранее известно разложение базисных векторов ak> k = ¦= I,..., m:zuk *» 0приk Ф luzuk= 1 приk «= /, k = 1,..., m; / == = 1, ..., m. Заранее известно, что для базисных векторов Д/= 0, т. е. при / ? 7- А/ = 0. 230
V. Вычислить оценки yh если ' 1— Уц если х, = где yf = 2 <V*/ — С/, / = 1, ..., п. О с н о в н о_й цикл. VI. Если все Д, ^ 0 (/ = 1, ..., п), то положить #*= х и прекратить вычисления (в этом случае опорное решение* является оптимальным решением задачи 0); иначе (т. е. если при некотором /? [1 : п] выполняется Д/< 0) перейти к шагу VII. VII. Если существует индекс /? [1 : п] \ 7х, для которого Д,< 0 и выполняется одно из условий (*) — при_#/ == а, для гщ > 0 aik = —оо, для гщ < 0 $tk = оо; (и) — при xf = Р; для г*/ > 0 р^ = оо, для Zkj<. 0 aik = —оо, то прекратить вычисления (в этом случае функция цели задачи 0 неограничена на допустимом множестве X); иначе перейти к шагу VII. VIII. Найти индекс sg [1 : п] такой, что Д5 = min Д, и поло- жить ат+х = с? (т. е. получить расширенный базис а1, ..., а ту Индекс 5 принадлежит множеству [1 : я] \ 7j и определяет вектор а\ который может включаться в старый базис. В качестве^ можно брать любой индекс, для которого Д8< 0. IX. Положить гт-и,8 = —I, zm+i,o = xs. X. Если xs = as, то положить v = 0 и перейти к шагу XI; если xs ^ Ps» то положить v = 1 и перейти к шагу XIII. XI. Вычислить величины yk при таких k б [1 : (т + 1)], что Zks ф 0: laik при Vfe |р!л при ХИ. Вычислить параметр 0О преобразования опорного решения х е0== min zks обозначить через г индекс такой, что 60 = — — и перейти zrs к шагу XV. В невырожденном случае индекс г определяется однозначно. В вырожденном случае в качестве г выбирается наименьший индекс, на котором достигается минимум. Если в вырожденном случае возникает зацикливание, то следует использовать правило, выводящее из цикла. 231
XIII. Вычислить величины yk при ft ? [1 г (т + 1)], для которых Zks ф 0: (о^, если Zks<0; % \К> если XIV. Вычислить параметр 0О преобразования опорного решения 5с по правилу е0== mln J^p обозначить через г индекс, такой, что 0О = —-—— и перейти zrs к шагу XV (см. шаг XII). XV. Положить *¦== х\ zkj = zkjj ft = 1, ..., /л, / = 1, ..., п; у) = y/t / = 1, ..., п\ А/ = A/t / = 1, .., п, и перейти к mar^XVI. XVI. Вычислить новое опорное решение J= (xlf ..., хп) по правилу \к — (— l)v %Zks, если / = ik% ft = 1, ..., т; ats + (— l)ve0> если / = s; ?, если / g #7, / =#: s. XVII. Положить ir = s, т. е. заменить в расширенном базисе <f\ ..., ат9 aitn+l значение вектора aF значением вектора as и перейти к новому базису а\ ..., ат, который получается из первых т векторов расширенного базиса (при переходе к новому базису старый базио не меняется, если r = /n + I и в старом базисе меняется значение одного вектора аЧ если г < т + 1). XVIII. Найти коэффициенты z*/, ft= 1, ..., т\ /= 1, ..., /г, разложения векторов а1, ..., ап по векторам нового базиса: а) если г = т + 1 (если базио не изменился), то положить б) если г < /л + 1 (т. е. если базис изменился), то вычислить z^ по основным формулам Zrj = zr/z'rs, /= 1, ..., л; ZV = **/ — (</<s) z'ks> /=1, ..., л; ft =з 1, ..., т — 1, г+1, •••, т. XIX. Положить ^аю^8 \, ft = 1, ..., /w. XX. Вычислить оценки А^, /= 1, ..., п, отвечающие новому базису: 232
а) если г = т + 1 (базис не изменился), то положить Д) при /=?s; 1 1—А/ при / = б) если г < m + 1 (базио изменился), то вычислить величины /t / = 1, ..., я по основным формулам и положить Ду = (— l)vfyh /= 1, .-., л, где vy = 0, если xf = а;, и v/= 1, если *у = 0у. Заранее известно, что Д7 = 0, если / ? 7-. Поэтому вычисления Ду следует проводить для / $ 7-» т- е* к0ГДа или ^/ в ^у, или XXI. Перейти к шагу VI. Теорема 1. Если выполнены предположения 0, то в невырожденном случае процесс решения задачи 0 алгоритмом 1 через конечное число итераций закончится либо на шаге VI (находится оптимальное решение задачи 0), либо на шаге VII (устанавливается, что функция цели задачи 0 неограничена на допустимом множестве X). Алгоритм I может применяться также для решения вырожденных задач линейного программирования с двусторонними ограничениями. Только при возникновении цикла следует использовать специальное правило вывода вектора из базиса, исключающее зацикливание. 2. Правило выбора индекса г (определяющего вектор а'г, выводимый из базиса) для предотвращения зацикливания Если при использовании алгоритма 1 для решения задачи линейного программирования в вырожденном случае возникло зацикливание, то на шаге XII или XIV алгоритма следует применить следующую процедуру выбора индекса г, гарантирующую от зацикливания. Алгоритм 2 Начало. I. Вычислить линейно-независимую систему вектсь ро& a*, k = 1, ..., m, f а* при Zko<$ib; I— a» при г*0 = Р*> г II. Вычислить ykh k = 1, ..., m; / = 1, ..., m,— коэффициенты разложения векторов oi*, k = 1, ..., m, no базису d\ ,..r elm, т. е. 233 >
такие, что III. Положить ym+u/ = 0, / = 1, 2, ..., т. О^с н о в н о й ц и к л. IV. Если х$ = as, то перейти к шагу V; если xs = ps, то перейти к шагу X; V. Найти множество Go, состоящее из тех индексов k, на которых 90=: min JSZJL. z VI. ПОЛОЖИТЬ |Ll = 0. VII. Если Gn состоит из одного элемента, то принять г равным этому элементу и прекратить вычисления; иначе (если G^ состоит более чем из одного элемента) перейти к шагу VIII. VIII. Найти множество Сд+i, состоящее из индексов k ? G^, на которых min {yktil+i/zks). IX. Положить ji = [х + I и перейти к шагу VII. X. Найти множество GQi состоящее из индексов k, на которых 90= min <ks XI. Положить fi = 0. XII. Если бц состоит из одного элемента, то принять г равным этому элементу и прекратить вычисления; иначе (если G^ состоит более чем из одного элемента) перейти к шагу XIII. XIII. Найти множество G^+u состоящее из индексов k ? G^, на которых достигается max XIV. Положить \i = \i + 1 и перейти к шагу XII. Теорема 2. Алгоритм 2 генерирует конечную последовательность множеств Go, Glf ¦.., G,, / ^ m, такую, что Gt содержит единственный элемент, который принимается за г. Библиографические указания. При написании параграфа использовались ра* боты [414, 415, 416]. 234
4.7. Модификация симплекс-метода для решения общей задачи линейного программирования п Задача 1. Найти arg max 2 cixl для заданного вектора с = (clt c2, ..., Сп) при ограничениях -ft|f /-1, ..., pi D.30) I, s * = p + 1, m\ D.3D =*q+ h .-., «. D.32) Предположения 1. (i) — уравнения D.30) линейно-независимы; (й) — векторы а! =* (ai/, a2/, ..., am/)r, / e 1, ...f ? —линейно-независимы; (ш) — задача 1 имеет допустимое решение. Определение U Допустимое решение х =» (^j-, ..., л:„) задачи 1 называется опорным* если оно порождает неособенную квадратную подматрицу матрицы Л Д (a//)fe[';;:,m такую, что: а) столбцы матрицы Ах содержат все столбцы матрицы Л, для которых компонента х,- положительна в х или не ограничена требованием неотрицательности, // = / для / == 1, 2, ..., q\ б) строки матрицы Ах образованы условиями D.30) и некоторыми из условий D.31), причем все такие ограничения-неравенства удовлетворяются допустимым решением х как строгие равенства, ik = k для k = 1, ..., p. Подматрица Ах, порождаемая опорным решением х, называется его базисом. Определение 2. Опорное решение х задачи 1 с базисом Ах называется невырожденным, если */, > 0 при / «в q + 1, 9 + 2, ..., s; п Д] a^/X/<6t. при /^^ (k « 1, ..., s). С одной стороны, задача 1 может быть решена методами, приведенными выше, если предварительно свести ее к каноническому виду с п + т — {р + q) неотрицательными переменными и т — q условиями равенствами, с другой — существует ряд классов задач линейного программирования (например, двойственные задачи при 235
tn < n — m), которые выгоднее решать в их естественной записи. Ниже приводится модификация симплекс-метода для/решения задачи 1 в естественной записи. В начальной стадии алгоритма требуется иметь опорное решение и его базис, а таюке необходимо вычислять матрицу, обратную к исходной базисной. На каждой итерации алгоритма опорное решение проверяется на оптимальность; если оно не оптимально, то осуществляется переход к новому опорному решению и новому базису (лучшему от предыдущего, т. е. дающему большее значение целевой функции). В невырожденном случае за конечное число итераций находится оптимальное решение х*, либо устанавливается неограниченность линейной формы на допустимом множестве решений. В вырожденном случае теоретически может возникнуть зацикливание, тогда необходимо применять специальное правило, гарантирующее от зацикливания. Алгоритм 1 Начало. I. Найти исходное опорное решение х = (х19 ... ...Ухп) задачи 1 и его базис АХУ образованный элементами, стоящими на пересечении строк и столбцов матрицы А с номерами 1Ъ ..., is и /i, ..., /s, соответственно. II. Вычислить матрицу AJ1 = (Р/л)Й;;;;& обратную к матрице Ах. Основной цикл. III. Вычислить числа 6=1, ...» S. IV. Вычислить величины s А/ = S °^Л — <7» /= 1, .... л. V. Если выполняются неравенства ЬЛ>0, k = р+ 1, ..., s; А/>0, /== 1, ..., п, то положить **= х и прекратить вычисления (в этом случае опорное решение л; является оптимальным решением задачи 1); иначе положить Ах = Ах (для этого надо положить \t = jh I = 1, ..., s; /Л = = /fr, k = 1, ..., s);^ = *; p/* =* P^; / = 1, ..., s; k = 1, ..., s и перейти к шагу VL VI. Среди величинЛ^, й = р + 1, ..., s, и Ау, / = 1, ..., л, найти наименьшую: Если наименьшей величиной оказалось Дг, г ? ? [1 : п], то перейти к шагу VII, а если ft,,, t?[(p+l)\ s], то перейти к шагу XXI. VII. Вычислить величины 236
VIII. вычислить параметр Imin (Xj/zir), если существует zir > О, I > q; zlr>0 oo, если Zir ^ 0 для I = q -|- 1, ..., s. IX. Вычислить параметр 0о по формуле min(—A@/6t), если существует 8<<0, /?[l:m]; 6i<° D.33) oo, если 8j ^ 0, i = 1, ..., m, где A(i) = b( — S a,/^, t == 1, .... m; S /==1 7/ X. Вычислить параметр 0О по формуле 0o = min {0o, 0o}. Если 0O == oo, то прекратить вычисления (в этом случае целевая функция задачи 1 неограничена на допустимом множестве); если 0О< оо, то перейти к шагу XI. XI. Вычислить новое опорное решение х = (xl9 ..., хп) по формуле х = х — 0oft, где h = (hu ..., hn) — вектор, определяемый по правилу Izir, если / = //, / == 1, ..., s; — 1, если / = г; 0, в остальных случаях. XII. Если 0О= 0о, то перейти к шагу XIII, если 0О = 0о, то перейти к шагу XVII. XIII. Вычислить индекс v ? [(q + 1) is] такой, что D.34) XIV. Перейти к новому базису Ах, который получается из старого базиса Ах путем замены его v-столбца столбцом (a/jr, ос/аГ, ..., at г)т (т. е. положить /v = г). 237
XV. Вычислить матрицу Ах l = (pijkJ/Li1;;;;;!, обратную,, новой базисной матрице по правилам где / = 1,..., s и к = 1, ..., s. XVI. Перейти к шагу III. XVII. Вычислить индекс \i ? [1 i m] такой, что 6о =¦ XVIII. Перейти к новому базису Ах> который получается путем окаймления базиса Ах строкой (ацд, ац/в, ..., а^, адг) и столбцом (<%/tr, а^г, ..., а^,, адг)г; положить is_{_i = |л, /5+1 = г и перейти к шагу XIX. XIX. Вычислить матрицу А71 = (р/л)^и.*1+ь обратную новой базисной матрице по правилам $ik + bkzir/a0 для /, к = 1, •.., s; — бЛ/а0 для / = s + 1> ft =» 1, ..., s; — zir/a0 для /» 1, ..., s, ft = s + 1; l/a0 для /:=ft = s+ 1, где бЛ и а0 вычисляются, соответственно, по формулам 1, XX. Положить 5 = s + 1 и перейти к шагу III. XXI. Найти параметр 0о из условия оо, если б(/)>0, i=lf ..., т; min (_д(/)/б(/)), если существует б(/)<0; = bt — 6(/)= 2 7=1 = 1, .... m. 238 <4-35>
XXII. Найти параметр 0о из условия [ mm (xyjPv*)» если существует pv*>0, y>q, еь - К° ' <4->6> ( оо, если $yt < 0, v = q + 1, ..., s. XXIII. Вычислить параметр 0О по формуле 0o = min {во, во}. Если в0 = оо, то прекратить вычисления (в этом случае целевая функция задачи 1 неограничена на допустимом множестве); если во<С °°» то перейти к шагу XXIV. XXIV. Вычислить новое опорное решение х = (xXt ..., хп) по формуле х = х — 60А, где h = (Ах, ..., hn) — вектор, определяемый по правилу _ |Р«, если /=»//, / = 1, ..., s, '"" [О, в остальных случаях. XXV. Если 0О= во, то перейти к шагу XXVI, если в0 = во» то перейти к шагу XXX. XXVI. Вычислить индекс v ? [(q + 1) i s] такой, что Если задача 1 невырожденная, то индекс v определяется однозначно. В вырожденном случае можно выбрать любой индекс v, на котором достигается минимум в D.36). XXVII. Перейти к новому базису Ах, который получается из старого базиса Ах путем удаления его t-й строки и v-ro столбца, (т. е._положить Д == jv ..., /y-i = /v-i, h =_/v+b . - u /sri = /e; h == ht • • • > *Vi = it—и it = it+u • • •» ^s-i =» t'st r%eJh iin I — = 1, ..., s, Л = 1, •.., s определяют старый базис Ах). XXVIII. Вычислить матрицу AT1 = фиг)ш!:"^\9 обратную к новой базисной матрице по правилам Р/* — (M«/Pw), если / < v, Л < *; если />v, — (Pv,*+iP«/Pv#)t если /<v, P/+i.^Pv^)> если / ^ v, S ™"~ 1 у /v ==s I, • • • , S тяшт i» XXIX. Положить s a=s s — 1 и перейти к шагу III. XXX. Вычислить индекс \i g [1 i m] такой, что 239
Если задача 1 невырожденная, то индекс \i определяется однозначно. В случае вырожденной задачи можно выбрать любой индекс [х, на котором достигается минимум в D.35). XXXI. Вычислить величины L XXXII. Перейти к новому базису Ах> который получается из старого базиса Ах путем замены его t-n строки строкой (осцд, aujtt... ..., а№/я) (т. е. положить it = \i). Х'ХХШ. Вычислить матрицу AJ1 = ф{к)ыш\ш:$9 обратную новой базисной матрице по правилам XXXIV. Перейти к шагу III. Теорема 1. Если выполнены предположения 1, то в невырожденном случае процесс решения задачи 1 алгоритмом 1 через конечное число итераций закончится либо на шаге V (находится оптимальное решение х* задачи 1), либо на одном из шагов X или XXIIf (устанавливается, что функция цели задачи 1 неограничена на допустимом множестве решений). Библиографические указания. Параграф написан на основании работ К14, 415, 416]. 4.8. Итеративные методы Итеративные методы представляют собой последовательность однообразных по процедуре выполнения итераций, которые приводят в пределе к оптимальному решению задачи. Их применение целесообразно в тех случаях, когда требуется достаточно быстро получить грубое решение задачи, а также при решении задач большого размера. Итеративные методы более помехоустойчивы, чем конечные методы линейного программирования. 1. Итеративный метод Петшиковского Задача 1. Найти arg max (с, х) для заданного вектора с ? X ? Rn при ограничениях ' ?0, 7=1, 2, ..., m; D3?) Фт+/ (*) й */ = Wf Х) > °» / = 1, 2, . . . , nlf (rtj < П), где а' — f-й вектор-строка матрицы А задачи 1.0; е' — я-мерный единичный вектор с единицей на /-м месте. 240
Если пошжить am+i = e\ a°m+i = 0, t = 1, 2, ..., ль то ограничения D.^7) задачи 1 можно переписать в следующей эквивалентной форме: <р, (х) ? (а', х) — а? > О, t = 1, 2, ..., т + nv D.38) В отличие от рассмотренных метод Петшиковского не являете» конечным. Решение задачи 1 получается лишь в пределе. В методе Петшиковского задача 1 с ограничениями D.38) приводится к задаче безусловной максимизации выпуклой экстремальной функции Л Л (г х\ -I- ^ У ( ^ ^ ^, л) -f — ^ < где f 0, если q < I J "~ |— i? если ф< (х) < О. Для решения задачи безусловной оптимизации применяете» градиентный метод, который при достаточно больших \i дает хорошее приближенное решение задачи 1. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение II. Выбрать параметр \л > 0. III. Положить k = 0. Основной цикл. IV. Вычислить величины Р?вФ|(**). /-1, 2, ..., т + пг. V. Вычислить градиент функции gM в точке х — хк VL Вычислить величины Ь* = (?. Vft* (^)), /« 1, 2, ..., т VII. Для всех I g [1 : (т + п^], для которых 1*Ф 0, вычислить отношения 0? = —р?/?* и расположить их в порядке возрастания VIII. Определить функцию + ц I б, (*» + 6Vfo (х^)) (р* + 0^) Б*. 241
IX. Найти индекс /?[1 : s], при котором выполнится неравенства X. Вычислить шаговый множитель в?) ) 6?/+1 - С (в?/+1) в§]/К (в?,) - XL Вычислить следующее приближение XII. Положить k = k + I и перейти к шагу IV. Теорема 1. Последовательность {хк}?=о, порожденная алгоритмом 1, при любом х°? Rn и [л > 0 обладает тем свойством, что д — множество, на котором достигается максимум функции gu,\ dx (#, Y) — расстояние от точки х к множеству Y. Теорема Г. Для любого г > 0 существует такое [х0 > 0, что при любом [i > |х0 неравенство dx(x, X*)<8 выполняется для любого х б Хц, где X*— множество решений задачи 1. Из теорем 1 и Г следует, что при достаточно больших значениях к и (д, точка хк, полученная с помощью алгоритма 1, достаточно хорошо приближает решение задачи 1. 2. Итеративный метод, использующий модифицированную функцию Лагранжа Задача 2. Найти arg min (с, х) для заданного вектора с Q xQX ? Rn и заданного множества Х&{х\Ах = а°, еде а0 ? Лт; А — матрица размера т X п. Предположение 2. Множество X* решений задачи 2 непусто. Приводимый ниже алгоритм основан на построении модифицированной функции Лагранжа и требует на каждой итерации решать задачу минимизации квадратичной функции. Этот метод дает решение задачи 2 за конечное число итераций &х, зависящее ют величины коэффициентов штрафа и от выбора начального приближения двойственной переменной (при этом предполагается, что задача минимизации квадратичной функции решается за конечное •число итераций). Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение двойственной переменной у0 ? Rm. 242
II. Выбрать произвольную последовательность штрафных коэффициентов {ak}kLo9 afe> 0, k = О, 1, .... III. Положить k = 0. Основной цикл. IV. Определить модифицированную* функцию Лаг^анжа ^ (х, У, Ч) Л (с, х) + (у, а° - Ах) + ^ I Ах - а° р. V. Вычислить приближение xk > 0 основной переменной иа условия *, Ук, аА) = ття|)(х, у\ ak). VI. Вычислить следующее приближение двойственной переменной VII. Положить k = k + 1 и перейти к шагу IV. Теорема 2. Если выполняется предположение 2 и последовательность штрафных коэффициентов {afe}?=o такова, что аЛ^а>0„ k = 0, 1, ..., то алгоритм 2 конечен, т. е. найдется такой номер klt что xkl? X*, ykl? Y*, где X*, Y*— множество седловых точек функции Лагранжа Ф {х, у) ? (с, х) + (г/, а0 — Ах). Число kx тем меньше, чем меньше отношение р (у0, У^)/а. В частности, для всякого у0 найдется а такое, что при а0 ^ а алгоритм 2 закончится за одну итерацию, т. е. будет х1 ? X*, у1 ? Y* (здесь р(х, Y) = inf Ix-yf). ?У Замечание 2. Важной проблемой в алгоритме 2 является выбора последовательности штрафных коэффициентов a&, k = 0, 1, .... Увеличение ak выгодно с точки зрения уменьшения числа итераций. Однако при больших значениях ak трудно решать задачу минимизации функции г|) (л:, yk, ak). Поэтому приемлемое значение <xk следует выбирать в процессе вычислений. 3. Итеративный метод Федоренко п Задача 3. Найти arg min У] уМ для заданного вектора h? =¦ (А?, ..., Ад) и заданного множества \bi+ tyM^O, /=1, ..., т\
Если отобразить точки у = (уъ ..., уп) пространства Пп в точки х = (хъ ..., xm+i) пространства Rm+l по правилу х = 0 К + Уг hi h\ hT Уп h°n' fin ) D.39) то образом я-мерного «параллелепипеда» будет выпуклый многогранник т в пространстве Лт+1. Тогда метод решения задачи 3 сводится к отысканию минимального числа X, для которого %е б т, где в = A, 0, ..., 0) б Дт+1 (минимальное значение X обозначим через А,*). Приводимый ниже алгоритм определяет за конечное число итераций приближенное решение х вспомогательной задачи и ему соответствующее приближенное решение у задачи 3 (точность приближенного решения х задается константой б0). Объем вычислений существенно зависит от выбора параметров алгоритма (о методике выбора этих параметров см. [363, 364, 365, 366, 367]). На каждой основной итерации алгоритма 3 используется заданное число «малых» итераций любого выбранного алгоритма квадратичного программирования. Алгоритм 3 Начало. I. Выбрать вектор g ? J?m+l такой, что (g, e) = = 1 (здесь е = A, 0, ..., 0)). II. Положить а* = (hi hi АР). '= п\ = @, Ь19 III. Задать число / > 0 — количество «малых» итераций решения вспомогательной задачи квадратичного программирования (обычно / G НО, 201). IV. Задать константы р ? @, I), е > 0, ), r,*>0, 60>0, о Основной цикл. V. Вычислить величины VI. Вычислить величины 7, если Ф^О, t, если ф4- < О, I = 1, ..., п. 244
VII. Вычислить вектор х = с + 2j a,a'. VIII. Вычислить значение /о (?) = (*> #)• D.40) Отметим, что точка х — решение задачи при этом /о (g) Дает точную оценку снизу для X* : /0 (g) < X*. IX. Найти подмножество индексов Ue Gе с: {1, ..., п}) по правилу е, если | lJ где норма || z [g определяется как расстояние точки z от прямой Хе (—оо < X < сх>), отсчитываемое в плоскости G, проходящей через z ортогонально вектору g, и вычисляется по правилу \\z\\g = \\z-(z, g)e\. D.41) X. Вычислить точку х = с + ^] a?a4 XI. Положить v = 1. XII. Выбрать алгоритм А для решения следующей задачи квадратичного программирования: найти arg min ||л:+ 2 ^а'1<?, D.42) где норма | • ||g определяется по правилу D.41). XIII. Найти приближенное решение у\ i ? 7е, задачи D.42), применяя / итераций алгоритма А. XIV. Вычислить вектор XV. Вычислить величину Г1 = |(^ g)-fo(g)V\fo(g)\. Если г] > т]*, то положить e = Ре и перейти к шагу IX; если Tl ^ Л*» то перейти к шагу XVI. XVL Если || л:—(л:, g)e \\ ^ 60, то прекратить вычисления (в этом случае точка х принимается за решение вспомогательной 245
задачи, а вектор у = (уи ..., уп), где « g 1, .... л, принимается за приближенное решение задачи 3); иначе перейти к шагу XVII. XVII. Вычислить вектор v*=*(x — (x9 g)e)f\\x — (x9 g)e\. XVIII. Вычислить значения ¦«¦*(». а1) — %(е9 v), t=l, ..., п. XIX. Вычислить значение ift — *f9 если У1 — *Г> если XX. Если d > d* (в этом случае задача D.42) не решена с требуемой точностью), то положить v = v + 1 и перейти к шагу XIII, принимая за начальное приближение алгоритма А приближенное решение уТ~х задачи D.42), полученное на (v — 1)-й «малой» итерации; если d < #*, то перейти к шагу XXI для пересчета вектора g. («Малые» итерации порождаются шагами XI—XX алгоритма 3. Новый вектор g определяется как где параметр р = arg max min (xt g (p)). На шагах XXI—XXX p *€* алгоритма методом «деления вилки» вычисляется нужное значение р за конечное число итераций. Величина (#, g) является верхней оценкой для К*9 точной лишь при || х |а = 0). XXI. Вычислить значение ^о = (с, v) — ^ (et v)t |0 = (с, g). XXII. Положить ш1^ A, 0), w1 = @, 1). XXIII. Для вектора w = (wlf w2) определить функцию ^-, если w&t + wtfy < 0, [&1 f в противном случае. XXIV. Если ? (w1) > 0, то прекратить вычисления (в этом случае исходная задача 3 не имеет решения), если ? (w1) < 0, то перейти к шагу XXV. 246
XXV. Положить / = 1. XXVI. Вычислить вектор %! XXVII. Если?(Х')>0, то положить ШЖ = Х/, ^/+1 = ш/, / = /+1, и перейти к шагу XXVIII, если ^(%!) < 0, то положить и перейти к шагу XXVIII. XXVIII. Если \\wf—wf\\^.w0, то перейти к шагу XXIX; иначе перейти к шагу XXVI. XXIX. Вычислить где (wfu w!2) = wf; (w{, w}2) XXX. Вычислить вектор XXXI. Положить g = g и перейти к шагу V. Теорема 3. Пусть основной итерационный цикл V—XXXI приводит к переходу от вектора gk к вектору gk+x. Пусть этот переход совершается в ситуации, когда приближенное решение задачи минимизации D.42) дало точку xk (при переходе от шага XX к шагу XXI), удовлетворяющую условию d^. d*. Тогда где /о (ё) определяется по DАО), а норма || • |<? — по D.41). Алгоритм 3 за конечное число итераций находит приближенное решение х вспомогательной задачи и отвечающее ему приближенное решение у задачи 3. Сходимость || xsJ — о/ | к нулю имеет порядок A/2)/, поэтому требуемая точность w0 достигается за сравнительно небольшое число итераций по /. 4. Алгоритм «Заяц» решения прямой и двойственной задач линейного программирования Задача 4 (прямая задача). Найти arg max (с, х) для задан- х?Х ного вектора с? Rn и заданного множества 247
Задача 4' (двойственная задача). Найти arg min (у, Ь) для заданного вектора Ъ б VT и заданного множества y?Y Предположения 4. Задачи 4 и 4'— разрешимы. Решение пары двойственных задач 4 и 4' сводится к решению следующей вспомогательной задачи нелинейного программирования: найти arg min g (х, у, ?, rj) при ограничениях (xytV) где —уЛ+ с, 0}; /?(л) = max {Ах — Ь, 0}; еп ? Rn, ет ? Rm — векторы с единичными компонентами; а, т — константы, удовлетворяющие условиям 1 < а < 3, т > 0. Если вектор (#*, у*у ?*, т]*) — решение вспомогательной задачи, то х*— решение задачи 4, а у*— решение задачи 4'. Алгоритм 4 Начало. I. Выбрать произвольные начальные приближения # б Д^, */<> б Я+. II. Выбрать константы а и т из условий 1<а<3; т>0. III. Выбрать векторы!0 = (Ъи ..., 62), Ло== (Л?» •••» Лт), удовлетворяющие ограничениям D.43) при х = л;0, у = (/°. А I /Ч IV. Выбрать константы / и р < -^ (/ > р), определяющие шаговые множители алгоритма. V. Выбрать константу г > 0, определяющую точность вычисления оптимального значения задач 4 и 4'. VI. Положить х = *°f (/ = f/°, g = |°, г] = п°, фх= —оо, \рг =з = +ОО, у = /, d === 0, k = 1, р = V2. Основной цикл. VII. Вычислить векторы х (у) = = (<?i ((/), ..., ^Л Ы), у (х) = (^ (х), .... ут (х)) по формулам 0, если <7/ = 0, О /=1 д; 248 @, если pv = 0, л:) = { v = 1, ..., т% ; hv, если /?v>0i '
где р = max {Ах — fc, 0}; q = max [с — yA, 0}. VIII. Вычислить следующие приближения xk+l и и положить х = **+l, г/ = yk+l IX. Если р ^ р, то перейти к шагу X, если р < р, то перейти к шагу XII. X. Положить k = k + I, d = d + p и перейти к шагу XL XL Если d ^ I, то положить d = 0, р = р/2 и перейти к шагу VII, если d < /, то перейти к шагу VII. XII. Вычислить значение ф (л;, т]), где функция ф (х% г\) определяется по правилу Ф (*> Т1) = iP% х) — (т), /?), р = max {Ax — ft, 0} {4.44) и положить ф = ф (х, г\). XIII. Если ф > ф!, то перейти к шагу XIV; иначе перейти к шагу XVII. XIV. Положить фг= ф, х = х. XV. Вычислить вектор ? (х) = max {ox, теп) и положить I == ? (л;). _ XVI. Вычислить значение я|> (г/, ^), где функция г|? (у, ^) определяется по правилу г|) (?/, g) = {у, Ь) — {qt |), q = max {с— у А, 0} D.45) и положить г|>г = г|) (у, I). XVII. Вычислить значение я|) (у, |), где функция г|> (г/, i) задается по D.45), и положить г|) = i|> (t/, g). XVIII. Если г|> < %, то перейти к шагу XIX; иначе перейти к шагу XXII. XIX. Положить г|)х = г|), у = у. XX. Вычислить вектор ц {у) == max {ay, %em) И ПОЛОЖИТЬ Т) = Y) (у). XXI. Вычислить значение ф (ху г)), где функция ф (л:, rj) задается D.44) и положить фх= ф (х, х\). XXII. Вычислить fk = (Фх XXIII. Вычислить 249
XXIV. Если б^е, то положить Р = х, yk= у и прекратить вычисления; иначе перейти к шагу X. _ Теорема 4. Если выполняется предположение 4, то точки xkt yk и значения fky порождаемые алгоритмом 4, удовлетворяют соотношениям limx* = **; limy* = y*\ llmfk = (с, **) = (Ь, */*). ?->0 е-+0 е-*0 5. Итерационный метод, использующий модифицированную функцию Лагранжа для решения двойственной пары задач линейного программирования п Задача 5. Найти arg max ? см, при ограничениях ^/>о, /= 1, ..., п. Двойственной к задаче 5 является следующая. п Задача 5'. Найти arg min 2 bt yt при ограничениях у. Ы т сп /= !» •• •» nJ t= 1, ..., m. Предположение 5. Множества оптимальных решений X* и У*, соответственно, задач 5 и 5' непусты и ограничены. В приводимом ниже алгоритме отыскание оптимальных решений X* и Г задач 5 и 5' сводится к вычислению множества седловых точек модифицированной функции Лагранжа пары двойственных задач 5 и 5': Фа {X, У) = J] С/Х, ,=1 (=i (=1 /== S f-f а- Д/ где m Д/ (f/) - I] af/i/, — C/, / = 1, ..., n; 250
к» . ( а» у \ it —~ (ft ft \* n Zt (x) = — 2j a/yX/ + &Л / = 1, ..., tn\ 0, w<0, О, если 9а (/) = j а/2/2, если 0 < t < 1/а, [/— 1/2а, если />1/а; а > 0 — параметр. При этом множество седловых точек функции сра (х, у) при лю- а > 0 состоит из множества X* X К*. Седловые точки функции Фа (х> у) находят градиентным методом. Отметим, что применить градиентный метод для отыскания седловых точек обычной функции Лагранжа ср (я, у) в виде У) = S ^/*/ + S feil// — S S /=1 /«1 t=l /el в общем случае невозможно из-за неустойчивости множества седловых точек этой функции (определение устойчивости седловых точек приводится в § 6.9 (пункт 3)). Алгоритм 5 Начало. I. Выбрать произвольное начальное приближение (х», */>) б Rn X Ят. II. Выбрать произвольный параметр а > 0. III. Положить k = 0. IV. Определить функции &f (y)9 j = 1,..., л, и е^ (х), I ¦¦ 1,... •.., т, соответственно, по правилам т А/ (#) = S «^1 — ch / = 1, . •., л. A/ = (Уь ..., Ут))'. + *«t ^ = Ь ..., т, (л: = (xlt •.., ^п)). Основной цикл. V. Вычислить шаговый множитель удовлетворяющий условиям теоремы 5. jVI. Вычислить вектор yk= Qu ..., ут) по правилам если i y* A — аг( (х% если 0 < e, (xft) < I/a; 0, если е^ (xk) > I/a, вдесь f = lf ..., m. 251
VII. Вычислить следующее приближение лг*+1 == {х\~ •.., я*+1) по правилам max [х] — pkAf (у% 0}, если А 7 (yk) < 0; max {** - Pk [Д7 &) - -J- (А, (г/*)J], о}, если 0 < max {x* - pft [д, (jf) - Д, (#*) + JL], 0J, если A, (*/*) > здесь'/ = 1, ..., п. VIII. Вычислить вектор лг* = (#*, ..., л;*) по правилам xk. — аДу (yk), если Ду (t/ft) ^ 0; **A—аД,^*)), если 0<A/(t/fe)< 1/а; 0, если A/(f/fe)> 1/а, здесь / == 1, ..., п. IX, Вычислить следующее приближение yk+x = (#f+1, ••• •••» f/m+1) по правилам max {yf — pktt (xk), 0}, если ег (д^) < 0; max \уЧ - pft[e, (?) - -|- (в, (х*)J], oj, если 0 < в, (х*) max Iу* — pkfe,(xft) — e^(л:Л) + -i-l, о), если е^(xk); v L *" J ; здесь i«l, ..., m. X. Положить A = k + 1 и перейти к шагу V. Теорема 5. Пусть выполняется предположение 5. Тогда существует такая константа р > 0, что если шаговые множители pk в алгоритме 5 выбирать согласно условий О < pk< p, k = 0, 1, ...; lim pk = 0; lim S P/ = °°, mo последовательности {xk)t=& и {#*}?=о, порождаемые алгоритмом 5, при любом а > 0 сходятся, соответственно, к X* и Y*. Библиографические указания. Пункт 1 написан на основании работ [416, 535], пункт 2 — [301], пункт 3 — [363—367]. При написании пункта 4 использовалась работа [34], а пункта 5 — [82]. Итеративные методы решения задач линейного программирования изучались также в [44, 88, 85, 166, 215, 333, 359, 531, 456, 441, 5]. 252
, 4.9. Методы параметрического программирования 1. Случай наличия параметра в целевой функции п Задача 1. Найти arg max ? (с) + Хс2.) xf для заданных чи- сел с!, cj, /= 1, ..., л, при ограничениях Ах = а0; где X — параметр. Предположения U (г) — множество ограничений задачи 1 непусто; (и) — ранг матрицы А равен пг\ (Hi) — п> т. Определение 1. Базис опорного решения задачи 1 оптимален для некоторого значения X, если оценки Ду всех векторов aJ\ j = = 1, ..., /г, относительно этого базиса, вычисленные при данном X, неотрицательны. Полная совокупность значений параметра X, при котором базис оптимален, называется множеством оптимальности этого базиса. Алгоритм, приведенный ниже, в невырожденном случае указывает (за конечное число итераций), при каких значениях X ?(—оо, оо) задача 1 неразрешима и при каких — разрешима, причем в случае разрешимости вычисляется оптимальное решение и его базис. Р этом алгоритме требуется решать задачу 1 симплекс-методом при одном или нескольких значениях параметра А,, при этом исходное решение и его базис вычисляются один раз. В случае вырожденности задачи линейного программирования в алгоритме 1 теоретически возможно зацикливание (тогда надо применять специальное правило, гарантирующее от зацикливания в симплекс-методе). Алгоритм 1 Начало. I. Выбрать произвольное число h0. II. Положить t = 0. Основной цикл. III. Положить % = Xt. IV. Положить k = 0. Применить к решению задачи 1 симплекс- метод (если / > 0, то исходное опорное решение и его базис для решения задачи 1 при X = %t известны из предыдущих итераций). Если задача 1 при % = it разрешима, то перейти к шагу V (при этом считаются известными: оптимальный базис al\ ..., aifn\ оптимальное решение (#*, ..., х*п)\ коэффициенты разложения векторов а0, а1, ...,а" по оптимальному базису, т. е. числа z//, / = 0, 1,... ..., п\ 1= 1, ..., /п). Если задача 1 при X = Xt не разрешима (т. е. целевая функция задачи 1 не ограничена), то перейти к шагу XXVIII (в этом случае известны некоторое опорное решение задачи 1 и его базис а*\ ... ..., ат, коэффициенты разложения г//, и, кроме того, индекс jt ? ? [1 : п] такой, что Д^ < 0 и при всех / ? [1 : т] выполняется Щ < 0). 25Э
V. Для каждого /?[1 in] вычислить составляющие оценок Aj векторов а/9 j = 1, ..., п, относительно оптимального базиса <гн, ..., aifn задачи 1 при К = %t А/ = А) + ЯД?; D.46) т А/ = 2 c\LZij — Ch / == 1, . . . , П\ D.47) 2 ? 2 Д/ = 2 С?*// — rf, / =s 1, . . . , П. D.48) VI. Вычислить значение Kk no правилу — оо, если все iK — оо, если все тах(—Д//А/), в противном случае. D.49) VII. Вычислить значение %k по правилу + оо, если все Д/^0; min(—Д//Д/), в противном случае. D.50) VIII. Выдать на печать: «Множество оптимальности базисаа\... ¦.., ат состоит из всех значений Я, удовлетворяющих условиюХ^^ Если\= оо и^= —оо, то прекратить вычисления; иначе перейти к шагу ГХ. " IX. Если k = 0, то положить а1 = а\ а* = а\ ,.., ат = ат\ zij = zij, I = 1, ..., т\ j = 0, 1, ..., л, и перейти к шагу X; иначе перейти к шагу X. X. Если Ял= оо, то перейти к шагу XVIII; иначе вычислить индекс s ? [1 ! п] такой, что и перейти к шагу XI. XI. Если при каждом / 6 [1 : т] выполняется z/s ^ 0, то выдать на печать: «линейная форма задачи 1 для X > %k неограничена в допустимой области» и перейти к шагу XVIII; иначе перейти к шагу XII. 264
XII. Вычислить индекс г ? [1 ; т], удовлетворяющий условию = min (zio/zis), zrs > 0. D.52> XIII. Перейти к новому базису, который получается заменой вектора аг в предыдущем базисе вектором as (т. е. положить /, = = 5). _ XIV. ^Положить zij = zih I = 1, ..., m; / = 0, 1, ..., n; д; = Ду\ Д/2-Д?, /=1, ..., п. XV. Вычислить координаты всех векторов а0, а1, ..., ап в новом базисе по основным формулам: при 1фг zij = zij — B7//2rs) e)s, / = 0, 1, ..., n; D.53) /=1, •.., т — 1, r+1, ..., tn, при /= r Zij = ZrjIZrs* / = 0, 1, . . ., ft. D.54) XVI. Вычислить составляющие оценок Ду векторов я'*, /= 1,... ..., п, относительно нового базиса d\ ..., cim\ Д) = Д/ — (Zrj/~Zrs) As, / = 1, ..., n; D.55) Д/ = Д/ — {ZrjFZrs) Д^, / = 1, . . . , П. D.56) XVII. Положить k = k + 1 и перейти к шагу VI. XVIII. Если А,0=в —оо, то прекратить вычисления; иначе положить k = 0 и перейти к шагу XIX. XIX. Перейти к исходному оптимальному базису, исходным оценкам Д/, Д/ и исходным коэффициентам разложения г//, т. е. положить Ф = а'% а1* = а1*, ..., ат = ат; Д| = AJ, Д72 = Д?, /« 1, .... л; Яо = у, г// = г//, / = 1, •. •, т; / = 0, 1, ... э п. XX. Вычислить индекс s g [1 : л] такой, что XXI. Если при каждом / ? [1 : т\ выполняется Zis < 0, то выдать на печать: «Линейная форма задачи 1 для % < Хк неограни- чена в допустимой области», и прекратить вычисления; иначе перейти к шагу XXII. XXII. Вычислить индекс rg[l:m]9 удовлетворяющий условию D.52). 255
XXIII. Перейти к новому базису, который получается заменой вектора aif в предыдущем базисе вектором as (т. е. положить ir = = s). XXIV. Положить гц = zih I = 1, ..., т\ j = 0, 1, ..., л; XXV. Вычислить величины zih I = 1, ..., m, / = 0, 1, ..., п\ А}, / = 1, ..., п\ Д/, / =5 1, ..., я, соответственно, по D.53) — D.56). XXVI. Вычислить значения %k+\ и \k+\ по формулам D.49) « D.50). Выдать на печать: «Множество оптимальности базиса al\ ... -...а' состоит из всех значений Я,, удовлетворяющих условию Если А^+1 = —оо, то прекратить вычисления; иначе перейти к шагу X~XVII. XXVII. Положить k = k + 1 и перейти к шагу XX. XXVIII. Вычислить составляющие оценки А^: (индексы ih I = 1, ..., m и jt определены на шаге IV). XXIX. Если А* = 0, то выдать на печать: «Задача I неразрешима при всех X ? (—оо, оо)» и прекратить вычисления; иначе перейти к шагу XXX. XXX. Вычислить Если А/ > 0, то выдать на печать: «Задача 1 неразрешима при X < Vfi » и перейти к шагу XXXI для анализа задачи при X ^ Если Д/^ < 0, то выдать на печать: «Задача 1 неразрешима при X > ^+i» и перейти к шагу XXXII для анализа задачи при X ^ XXXI. Если на предыдущих итерациях был дан анализ задачи 1 для X ^ Atf-f-i, то прекратить вычисления; иначе положить t = = /+ 1 и перейти к шагу III. 256
XXXII. Если на предыдущих итерациях был дан анализ задачи 1 для X ^ h+u то прекратить вычисления; иначе положить t = t + 1 и перейти к шагу III. Теорема 1. Если выполнены предположения 1, то в невырожденном случае алгоритм 1 за конечное число итераций разбивает вещественную ось X на области, в которых задача 1 или неразрешима (вследствие неограниченности целевой функции), или имеет опти мальное решение (причем известны оптимальный базис и оптимальное опорное решение), 2. Случай наличия параметра в правых частях ограничений Задача 2. Найти arg max (с, х) для заданного вектора с ? X при ограничениях п ? jXj = Ь\ + Xb2h i=l, 2, ..., m; D.57) */>0> /= 1, 2, ..., п, D.58) где X — параметр. Предположения 2. (i) — целевая функция задачи 2 ограничена на допустимом множестве при всех %\ (и) — ранг матрицы А равен т\ (Ш) — п> т. Если при некотором значении параметра % коэффициенты разложения вектора b = b1 + Xb2 (здесь б1 = (b\, ..., blm),b* = (&?,... ..., b2m)) no векторам базиса сопряженной задачи неотрицательны, то этот базис является оптимальным базисом задачи 2 для данного X. Определение 2. Полная совокупность значений параметра X, при которых базис оптимален, называется множеством оптимальности этого базиса. Приведенный ниже алгоритм разбивает вещественную ось X на участки, на каждом из которых вычисляется оптимальный базис, не изменяющийся с изменением X, а также выделяет область (если она существует), в которой ограничения задачи 2 несовместны. Алгоритм основан на применении двойственного симплекс-метода для решения задачи 2 при одном или нескольких значениях параметра А,. Алгоритм 2 применяется в невырожденном и вырожденном случаях. В вырожденном случае теоретически возможно зацикливание. Если зацикливание произойдет, то необходимо применять специальное правило, гарантирующее от зацикливания в двойственном симплекс-методе. Алгоритм 2 Начало. I. Выбрать произвольное число Хо. П. Положить t = 0. Основной цикл. III. Положить X = V IV. Положить k = 0. Применить к решению задачи 2 двойственный симплекс-метод. 9 3-34* 257
Если в результате находится оптимальное решение задачи 2 и его базис (обозначить оптимальное решение через {хх (Xt), *a(^*)» ••• ..., хп (Xt)), его базис через d\ ..., аЦ оценки через Д„ / = 1, ..., п, а коэффициенты разложения векторов Ы (/ = 1, ...» п) по базисным векторам через гц% I = 1, ..., т, / = 1, ..., п), то перейти к шагу V; если в результате выявится несовместность условий D.5?) и D.58) при X = %и то перейти к шагу XXXI. В этом случае, в соответствии с признаком несовместимости (см. шаг VI алгоритма 1, § 4.2) существует такое lt ? [1 : ml, что zif0 < 0 и при всех /Gil: n] zitf > 0, где Z/0, / = 1, •.., пг — коэффициенты разложения вектора b1 + %t b2 через базисные векторы d\ ... ...", dm сопряженной задачи. V. Решить систему уравнений относительно x\t (Xt). VI. Решить систему уравнений относительно х^ (Xf). VII. Положить z/o= x\t (Xt)\ J v2 П \ / 1 m ZlQ == &i. {**{)) I =s if • • • i "*• VIII. Вычислить — оо, если все zfo<O, (/ = 1, ..., m), max (— zlo/zfo), если существует z% > 0* D.59) г?о>° IX. Вычислить значение Xk по правилу + оо, если все г?о^О, ^fe= min (—г]о/г?о), если существует г?о<О, D.60) здесь / = I, ..., т. X. Выдать на печать: «Множество оптимальности базиса а'1, d\ ..., dm состоит из всех значений Л, удовлетворяющих условию А,Л^1 X ^ ЛЛ» и перейти к шагу XI. XI. Если А,Л = —оо и^А=5+оо, то прекратить вычисления; иначе перейти к шагу XII. 258
XII. Если k = 0, то положить ., а!т = А/ = А/, / = It • • • • п\ К = К'* 2ц = zih I = 1, ..., т\ j = 1, ..., п; 2/о = zfc, г?о — z?o, / =5 1, ..., яг, и перейти к шагу XIII; иначе перейти к шагу XIII. XIII. Если Kk === +оо, то перейти к шагу XXI; иначе вычислить индекс г ? [I : т\ такой, что — zlro/z2ro = Xk\ z2ro<Q. XIV. Вычислить индекс s? [1 : п] такой, что — &S/Zrs = min (— A//zr/). D.61) XV. Положить zii = г//, / =a 1, ..., m; / = 0, 1, ..., n; ?i = Ah /= 1, ..., n\ ZlQ =5 2/o, ЗД = 2/o, / = 1, . . . , Ш. XVI. Перейти к новому базису а\ ..., а**», который получается заменой вектора aif в предыдущем базисе вектором as (т. е. положить /, = s). XVII. Вычислить координаты всех векторов а1, ..., ап в новом базисе по основным формулам: при / Ф г zij = zij — (Zrj/lrs) zis, j = 1, •.., /г; D.62) /=1, ..., t — 1, r+1, ..., tn, при / = r Zij = 2Г//гГ5, / = 1, . • ., П. . D.63) XVIII. Вычислить оценки Ду = А/ — (Zrj/Zrs) As, / = 1, . . . , П. D.64) XIX. Вычислить величины г}о и г/о, / = 1, ..., ш, по основным формулам: 2/0 = 2/0 — B^0/2rs) Zis, I = 1, . . . , Г — 1, Г + 1, . . . , Ш; D 65) 2r 2 )ги, 1=1, .... г-I, r+l, .... m; D66) 2ro = - 259
XX. Положить k = k + 1 и перейти к шагу VIII. XXI. Если h0 = —°°» то прекратить вычисления; иначе положить k = 0 и перейти к шагу XXII. XXII. Перейти к исходному оптимальному базису, исходным оценкам, исходным коэффициентам разложения, т. е. положить Ф = а\ а1* = а% ..., ат = ~ат\ А, = А/, / = 1, ..., п\ Хо = V, гИ = гЧ> /= 1. .... «; / = 1, ..., т; 2?о = гЬ, г?0 = 2?о, / « 1, ..., т. XXIII. Вычислить индекс г ? [1 : т\ такой, что = К и г?0>0. XXIV. Вычислить индекс s?[l : nl, удовлетворяющий условию D.61). XXV. Положить 2// = г//, / = 1, ,.., т, /я1| ..*> я; Ду = Д/, /« 1, ..., л; 2/0 = 2/о, 2/о == 2/0, / = 1, . . . , А^. XXVI. Перейти к новому базису, который получается заменой вектора а1* предыдущего базиса вектором с? (т. е.положить /, = s). XXVII. Вычислить величины 2//, / = 1, •.., /л; / = 1, ..., п; Д,-, / = 1, ..., п\ 2]0, / = 1, ..., т\ г210, I = 1, ..., /и, соответственно по D.62) — D.66). XXVIII. Вычислить значения кк+\ и Х*+1 по D.59) и D.60) соответственно. Выдать на печать: «Множество оптимальности базиса а\ а1*, ..., а1™ состоит из всех значений к, удовлетворяющих условию Хм+\ < ^ < tafi»- XXIX. Если Я*+1 = —сх>, то прекратить вычисления; иначе перейти к шагу XXX. XXX. Положить k = k + 1 и перейти к шагу XXIII. XXXI. Вычислить величины 2/о, г%, I = 1, ..., т, по тем правилам, что и на шагах V, VI, VII. XXXII. Если 2^о=О, то выдать на печать: «Ограничения задачи 2 несовместимые при всех К ? (—оо, оо)» и прекратить вычисления; иначе перейти к шагу XXXIII. 260
XXXIII. Вычислить Если z/ 0> 0, то выдать на печать: «Ограничения задачи 2 несовместимые при всех X < А*+1» и перейти к шагу XXXIV для анат лиза задачи при X ^ ^+ь если г^о < 0, то выдать на печать: «Ограничения задачи 2 несовместимые при всех X > Я/+р> и перейти к шагу XXXV для анализа задачи при Я^ Xt+i. XXXIV. Если на предыдущих итерациях был дан анализ задачи 2 для X ^ Xt+u то прекратить вычисления; иначе положить t = t + I и перейти к шагу III. XXXV. Если на предыдущих итерациях был дан анализ задачи 2 для X^Xt+u то прекратить вычисления; иначе положить t = t + 1 и перейти к шагу III. Теорема 2. Если выполнены предположения 2, то в невырожденном случае алгоритм 2 за конечное число итераций разбивает вещественную ось X на области, в которых или задача 2 имеет опти* мальный базис и оптимальное решение, или ограничения задачи 2 несовместимы. Библиографические указания. При написании параграфа использовались работы [88, 226] и др. Дополнительные сведения о методах параметрического программирования можно найти в работах [310, 311, 190, 477, 478, 554, 475]. 4.10* Опорные методы Задача 0. Найти arg max (с, х) для заданного вектора с G ? Rn и заданного множества Предположения 0. (i) — ранг матрицы А равен т\ (и) — т ^ ^ п\ (iii) — задача 0 имеет допустимые решения. Опорные методы занимают промежуточное положение между конечными и итерационными методами решения задач линейного программирования. Вместо понятий «опорное решение» и «базис опорного решения» используются их обобщения — «допустимое решение» и «опора». В приводимых алгоритмах процесс решения задачи можно вести или до получения оптимального решения, или остановить на е-оптимальном решении, отклонение которого от оптимального по целевой функции не превосходит заданной величины е > 0. Начиная с некоторого номера итерации опорного метода совпадают с итерациями симплекс-метода. Достоинством опорных методов является то, что они позволяют эффективно использовать хорошие начальные приближения, интуицию и опыт специалистов. Другими достоинствами является более простое отыскание начального опорного плана по сравнению с отысканием опорного решения и его базиса. 261
Определение 1. Совокупность векторов а'1, ..., cim называется т опорой задачи 0, если уравнение J] ащ = 0 {а\ i = 1, ..., я,— s==l s столбцы матрицы Л) имеет только нулевое решение х1$ = 0, s = 1,... «.., m, но для любого вектора а{, i = 1, ..., я, i ^= ts, s = 1, ..., m, m уравнение ]? я sXt + a{x{ = 0 имеет не нулевое решение. s=l s Введем обозначения: 70П A {h, ..-, im) — множество опорных индексов; 7„Д 7 \ 70П— множество неопорных индексов (здесь Определение 2. Пару {л:, Лоп}» состоящую из допустимого решения х и опоры Лоп, называют опорным планом. Через ЛОп обозначена матрица, состоящая из столбцов а*\ ... ..., aifn. Отличие опорного плана от опорного решения и его базиса состоит в том, что неопорные компоненты xit i б 7Н опорного плана не обязательно равны нулю. Определение 3. Опорный план {х, А0П] называют невырожденным, если все его опорные компоненты Xii% ..., Xi положительные. т I. Прямой опорный метод Алгоритм 1 Начало. I. Найти невырожденный опорный план {*, Лоп} задачи О х = {xv ..., хп\ Аоп =п {а\ ..., а1т]. II. Выбрать число е > 0 — точность вычисления максимума целевой функции задачи 0. III. Вычислить матрицу Л^1, обратную исходной опорной матрице. IV. Найти коэффициенты разложения zty, i = 1, ..., m, / = 1,... ..., п по опоре ЛОп векторов a/, j = 1, ..., п (т. е. найти числа гц, такие, что а/ = 2 а{*251), s=l по формулам (Zi/, . . . , Zmj) = Лоп (#1/, ...» &mj) , D.67) /=1, ...,л, 1'ф1„ s=l, ...,m; г/г = 0 при s Ф 1\ s zus = 1 при s = Z, s = 1, ..., т\ I «= 1, ..., т. Основной цикл. V. Положить 7Оп =* {Ч, ..., /т}, ^H =* \ ?62
VI. Разбить множество индексов 7Н на два непересекающихся подмножества 7Н+ и 7но следующим образом: индекс / ? 7Н входи* в 7Н+ тогда и только тогда, когда xf > 0; индекс / ? 7п входит в 7но тогда и только тогда, когда xf = 0, VII. Вычислить оценки Д/э / = 1, ..., я, по формулам т Д/ = 2 <V*/ — cf9 / = 1, ..., л; А, = 0, / == 4, t=l, ,,., m. VIII. Если выполняются условия А, «0 при А/ > 0 при то положить #*= а: и прекратить вычисления (в этом случае допустимое решение х является оптимальным); иначе перейти к шагу IX. IX. Если выполняются условия Д/>0 при /= 1, ..., л; 2 то положить я8 = д: и прекратить вычисления (в этом случае допустимое решение х является e-оптимальным или субоптимальным решением); иначе перейти к шагу X. (Допустимое решение хг называется е-оптимальным (субоптимальным) решением, если (с, х*) — {с, х*) < е). X. Если существует индекс / ? [1 : п] такой, что А)< 0 и гц ^ ^ 0 при всех i g [I : ml, то прекратить вычисления (в этом случае целевая функция задачи 0 не ограничена сверху на множестве X); иначе перейти к шагу XL XI. Найти оценку А/в, на которой достигается максимум в выражении max {max | A/1, max (— А,)}. >0 0 XII. Если А/о < 0, то перейти к шагу XIII; если А/в ;> 0, то перейти к шагу XVIII. XIII. Вычислить параметр 90 = min ° и найти индекс r? [I : ml такой, что XiJZru = во» *>rU > 0. XIV. Положить Xj = Xj9 J = 1, . • . , Yl\ Z4 = **/• i = 1, ..., m, / = 1, ..., n. 263
XV. Перейти к новому опорному плану {#, Аоп} по следующим правилам: Xlk в Xik ~ 9°г*/° ПРИ k ^ *» • • • • т; xf = *, при / =#= ik, k = 1, ..., т; / Ф /0; *V ^ /о (остальные опорные индексы не меняют своих значений). XVI. Найти коэффициенты разложения zt/,t = 1, ..., т, / =? 1,.., ..., п, векторов а/, / = 1, ..., /г, по новой опоре Аоп: Zij = hj — (zrjZijfzrjo), 1фг, t=l m; / == 1, ..., /г, Zrj = Zrj/Zrj0. XVII. Перейти к шагу V. XVIII. Вычислить параметр 80= min {—XtfzkJJ. XIX. Найти индекс г? [1 : ml такой, что ei = — XX. Вычислить параметр eo = XXI. Положить ЛГу = ЛГу, / = 1, . . . , П\ Zij = zih i=l /я; У = 1, .. ¦, п. XXII. Если 90 == &'офхи> то перейти к шагу XXIII, если 9в = хи или 0о = х1о, то перейти к шагу XXVI. XXIII. Перейти к новому опорному плану {х, Аоп} по следующим правилам: xik = lcik + Qozkjo при k = 1, ..., m; X/^X/ при /=5^tfc, *=1, ..., m; /=И=У0; tr s= /0 (остальные опорные индексы tlf ..., /г_ь tr+i,... ..., im не меняют своих значений). XXIV. Вычислить коэффициенты разложения г*/, t =^ 1, ..., т, / == 1, ..., п, векторов of, j == 1, .•., п по новой опоре Лоп по формулам D.67). XXV. Перейти к шагу V. 264
XXVI. Перейти к новому опорному плану [х, Аоп} по следующим правилам: xi = "xi + Xjozkjo при k = 1, ..., m; *, = *, при \ф1к, *=1, ...,m; опорные индексы не меняют своих значений (а значит, не меняются числа zq, i = 1, ..., m, / = 1, ..., п). XXVII. Перейти к шагу V. Теорема 1. Если выполнены предположения 0 и задача 0 невырождена, то процесс решения задачи 0 алгоритмом 1 через конечное число итераций закончится либо на шаге VIII (находится оптимальное решение х* задачи 0), либо на шаге IX (находится е-оптималь* ног решение задачи 0), либо на шаге X (устанавливается неограниченность целевой функции задачи 0 на допустимом множестве X). 2. Метод обратной матрицы В прямом опорном методе на каждой итерации запоминается п X т чисел zf/, i == 1, ..., m, / = 1, ..., п, что требует значительной оперативной памяти ЭВМ. В методе обратной матрицы вместо чисел гц запоминается матрица А^ размера* т X т, обратная к опорной матрице, что экономит оперативную память ЭВМ. Алгоритм 2 Начало. I. Найти невырожденный опорный план [х, Аоп) задачи 0: х = (х19 ..., хп)у Аоп = (а'>, ..., am). II. Выбрать число е > 0 — точность вычисления максимума целевой функции задачи 0. III. Вычислить матрицу Л^1 A (a/A)i=u.",'m, обратную к исходной опорной. ОСНОВНОЙ ЦИКЛ. IV. ПОЛОЖИТЬ Сбаз = (Cilt ..., Cim)t = (а1, ..., и*") = I (здесь и1, ..., ит — столбцы; v\ ..., vm — строки). V. Вычислить вектор b =*= (bl9 ..., bm): О = ?баз^оп • VI. Вычислить оценки Л;, / = 1, ..., п, по правилам &; = ba! — ch \Ф1Ъ k= 1, ..., m; д/ = 0, /= /Л, k= 1, ..., /п. 265
VII. Если выполняются условия Ду = 0 при всех xf > 0; Д/ ^ 0 при всех Xf = О, то положить х* = х и прекратить вычисления (в этом случае допустимое решение х является оптимальным); иначе перейти к шагу VIII. VIII. Если выполняются условия Д/ ^0 при /= 1, .. •, я; п 2 ДуЛГу ^ 8, то положить х& = х и прекратить вычисления (в этом случае допустимое решение х является е-оптимальным); иначе перейти к шагу IX. IX. Положить t = 1. X. Если Д/ < 0, то вычислить числа Zu = vlaf, i = 1, ..., m, и перейти к шагу XI; иначе перейти к шагу XII. XI. Если при всех i = 1, ..., т выполняется неравенство z#^ ^ 0, то прекратить вычисления (в этом случае целевая функция задачи 0 неограничена сверху на допустимом множестве X); иначе перейти к шагу XII. XII. Если / < п, то положить / = / + 1 и перейти к шагу X; иначе перейти к шагу XIII. XIII. Найти индекс /0? [1 : л], имеющий оценку Ду0, при которой обеспечивается максимум выражению тах{тах|Ду|, тах(—Ду)}. XIV. Если Д/о < 0, то перейти к шагу XV, если Д/в>0, то перейти к шагу XXI. XV. Вычислить величины zijo = vlai\ t = 1, ..., m. XVI. Вычислить параметр 0О = min (xt. Zkjo>° и найти индекс г ? [1 : nil такой, что XVII. Положить */ = */. /= li •... я; и/* = Щы. / = 1, ..., m, k = 1, ..., m, где uk = (им, u2k, ..., 266
XVIII. Перейти к новому опорному плану {х, Аоп} по следующим правилам: xik = ~Xik — %zkj0 при k = 1, ...," m; x, = xi при *r в /• (остальные опорные индексы не меняют своих значений). XIX. Вычислить матрицу А^ й ("^-fc.Vm, обратную новой опорной матрице, по формулам ^ uik = uik — UrkZijJZru, I == 1, ..., г — 1, г + 1, ..., m; ft= 1, ..., m; D.68) Urk^Urk/zrf,, A= 1, ..., m. XX. Перейти к шагу IV. XXI. Вычислить величины /, / = 1, ..., т. XXII. Вычислить параметр %=^ mm (—Xiklzku) и найти индекс г ? [1 : ml такой, что в& = —*//&/.. 2г XXIII. Вычислить параметр 0o = min{0'e, л:/,}. XXIV. Положить */ — */, / = 1, ..., п; ^/л = ^ш / = 1, ..., т; й = 1, ..., т. XXV. Если 9о=* 0о^ а:/0> то перейти к шагу XXVI, если 90 == Х о /0 или Во = х1о, то перейти к шагу XXIX. XXVI. Перейти к новому опорному плану {х, Аоп} по следующим правилам: xik =lcik + %Zkj0 при k = 1, ..., m; xj =xj при \ф1к% k = 1, ..., m, /Ф/0; xu^\ — %\ h = /о (остальные опорные индексы /lt ..., /r-_i, /r+i, ..., im не меняют своих значений). XXVII. Вычислить матрицу А^ й (^1к)Ш^.'1ш обратную новой опорной матрице, по D.68). "~ 267
XXVIII. Перейти к шагу IV. XXIX. Перейти к новому опорному плану {х, Аои} по следующим правилам: Xik = Xik при k = 1, . •., m; Xj = при \ф1к% k = :/о = 0 (опорные индексы т, ..., im, не меняют своих значений, а значит, не меняется матрица Л^п). XXX. Перейти к шагу IV. Теорема 2. Если выполнены предположения 0 и задача 0 невырождена,.то решение задачи 0 алгоритмом 2 через конечное число итераций закончится либо на шаге VII (находится оптимальное решение х* задачи 0), либо на шаге VIII (находится г-оптимальное решение задачи 0), либо на шаге XI (устанавливается неограниченность целевой функции задачи 0 на допустимом множестве X), Замечание 1. Если в алгоритме 2 (на шагах XIX и XXVII) матрицу Л^1, обратную новой опорной, вычислять по формуле ЛОп = DrAon, где ЛОп & {uik)i=C:im — матрица, обратная «старой» опорной матрице, и 1 ... О -zxljzn. О О О ... 1 —Zr-ijJZrLQ ... О О ... О l/zru 0 ... О О ... О —Zr+uJzrL0 ... 0 о О —zmJJzrU 0 ... 1 то такой метод решения задачи называется мультипликативным. Для записи матрицы Dr достаточно знать т + 1 чисел, т. е. число г и числа, которые стоят в r-м столбце. Если обозначить матрицу Dr в &-й итерации через Drk, а за исходную опору в алгоритме 2 выбрать единичную матрицу /, то обратная к опорной в &-й итерации будет определяться по формуле ^ = JW-i DrJ. Отсюда следует, что для определения матрицы ЛОп в &-й итерации требуется знать (т + 1) X k чисел, что на начальных стадиях мультипликативного алгоритма приводит к экономии оперативной памяти ЭВМ. Библиографические указания. Параграф написан на основании работы [591. В указанной работе приведены также различные модификации прямых опорных методов, двойственные опорные методы, безопорные методы, комбинированные методы. 268
Глава 5 МЕТОДЫ РЕШЕНИЯ ЗАДАЧ НЕЛИНЕЙНОГО И СТОХАСТИЧЕСКОГО ПРОГРАММИРОВАНИЯ 5.1. Методы проекции градиента 1. Общий алгоритм Задача 1. Найти argmin/0(*) для заданной функции f0: Rn -> Я1 и заданного множества X a Rn. Предположение 1. (i) — функция /0 выпукла вниз и непрерывно дифференцируема на множестве Х\ (и) — X — выпуклое замкнутое множество; (ш) — Алгоритм 1 Начало. I. Выбрать начальное приближение #° ? X. II. Положить k = 0. Основной цикл. III. Вычислить у/о (**)• IV. Выбрать множитель рл, удовлетворяющий одному из заранее выбранных условий <Р*<Р"< + <х>; E.1) 0<Р<Рл<Р//<2/у. E.2) V. Вычислить точку yk? Rn по формуле VI. Вычислить точку ух — проекцию точки ук на выпуклое замкнутое множество X. VII. Если рл выбирается в соответствии с неравенствами E.2), то выбрать множитель pk, удовлетворяющий неравенствам <1 E.3) и перейти к шагу VIII, если pft выбирается согласно E.1), то вычислить множитель pk по одной из формул /о № — Pk (** — Ух)) = min /0 (xk — p{xk — yfy), E.4) или Pft = min \ 1, vk '"";"" ">'" ), E.5) где 0<8l<vfe<^=^; e2>0, и перейти к шагу VIII. VIII. Положить xk+{ =sxk~-pk (xk — ykx), k=*k + l и перейти к шагу HI. 269
Предполагается при этом, что pk на каждой итерации вычисляется по одной и той же формуле. Теорема 1. Пусть выполняются предположения 1 и (iv) — множество ограничено; I Wo (*) К * < + °° для всех х?Х0. Тогда алгоритм 1 порождает последовательность {**}|L© такую, что /о(**) — min/e(x)<a/ft, &=*0, 1 a>0. Х?Х Причем: а) если в алгоритме 1 pfe удовлетворяет неравенствам E.1), a pk— равенству EА), то справедлива оценка где 0 <p<min|l — -Jprb б) если в алгоритме 1 pft удовлетворяет неравенствам E.1), a pk вычисляется по E.5), то справедлива оценка: при pk = 1 §r№-y!:\?, k = 0, 1,...; при pk = v, (V/o (x>), x* - y\)l || x* - y*x f e) если в алгоритме 1 pfe удовлетворяет неравенствам E.2), a pk E.3), то справедлива оценка - /о (**+') > Р (jr - -J-) 1X" - у\ р. 2. Метод проекции градиента для минимизации функций при линейных ограничениях Задача 2. Найти arg min /0 (#) для заданной функции :Rn-^Rln заданного множества где a/ei?n; Ь/СЛ1; /=1, .-., т. Предположение 2. Функция /0 выпукла и непрерывно дифференцируема. Обозначения и определения. 1. Произвольное подмножество множества {1, ..., т}9 содержащее т! элементов, обозначим через V* 270
2. Матрицу размера п X т\ столбцами которой являются векторы а/, / ? 3\ расположенные в порядке возрастания /, обозначим через Лу. 3. Матрицу проектирования Rn на подпространство Ly, порожденное векторами а/9 j ? #, обозначим через Яу. Ч4. Если векторы af9 j ? 3, определяющие подпространство Ly, линейно независимы, то матрица, проектирующая Rn на подпространство Ly, вычисляется по формуле P? = Ac?(AlrA<?)-1 А^г. E.6) Если векторы a), j ? tf линейно зависимы, то необходимо найти подмножество V такое, что векторы at, j ? &' будут линейно независимы и порождают Ly, а проектирующая матрица Р? = Ру будет определяться E.6) при И = Sr'. 5. Матрицу проектирования Нп на ортогональное дополнение к Ly обозначим через где / — единичная п X /г-матрица. 6. Обозначим через 3^8 (х) е-активное множество индексов, определяемое формулой где е > 0. Утверждение 2, Точка х ? X оптимальна в задаче 2 тогда и только тогда, когда гдег/0 (х) вычисляется по следующей формуле (при г = 0 и л: = я): V/o (X). E.7) Заметим, что матрица Ру w, проектирующая Rn на подпространство Ly (ху натянутое на векторы &, j ? %г (я), вычисляется по формуле если выполнено предположение Т. Предположение 2'. Существует такое число е'> 0, что для любой точки х ? X и любого числа 8 ? [0, е'1 векторы а/, / б 3^е (*) линейно независимы. 271
Алгоритм 2 Начало. I. Вычислить #° ? X; выбрать E ? (О, 1) (обычно полагают р = V2), е ? @, е') и е" ? @, е); положить & = 0. Основной ц и кл. П. Положить х = xk. III. Положить ео=7, / = 0. IV. Вычислить множество индексов Зе (х) и положить fJ =* V. Вычислить матрицу Ру, проектирующую Rn на ортогональное дополнение к Ly, pj, = / - А<? {АТуАу)~1 А7?. E.8) VI. Вычислить вектор () P^f(x). E.9) VII. Если || Л8/ (*) |2 > 8У, то положить h (х) = — Ле/ (х) и перейти к шагу XVII; иначе перейти к шагу VIII. VIII. Если Bj ^ в", то вычислить множество индексов 30 (х) и перейти к шагу IX; иначе перейти к шагу XII. IX. Вычислить вектор /i0(*) = P^0V/o(*), E.10) где Р^о — матрица, определяемая по E.8) при tf = 30. X. Вычислить вектор у0 (х) по E.7) при 8 = 0. XI. Если | h° (x)f = 0 и j/° М ^ 0» то положить х* = х и прекратить вычисления; иначе перейти к шагу XII. XII. Вычислить вектор yei (x) по формуле E.7) при е == 8у и положить у = yBi (x). XIII. Если у ^0у то положить e/+i = Ре,-, / = / + 1 и перейти к шагу IV; иначе перейти к шагу XIV. XIV. Предполагая, что 2/ = {tlf /2f ..., w} и tx< /2< ... < /m', положить \Kia (x) = r/a, a = 1, ..., m'. XV. Найти наименьшее число i среди чисел l?&> для которых вектор Vf0(x) E.11) удовлетворяет условию »hef (х) || - max {|P>_,V/0 (x) J | / б 8Г, ^ (^) > 0}, E.12) (здесь и далее V — i& {j | / ^ $, }ФЦ) и положить h (л) = = ~йе/(х).' XVI. Если || h {x) |ja < e/f то положить e/+i = р87, у = / + 1 и перейти к шагу IV; иначе перейти к шагу XVII. 272
XVII. Вычислить наименьшее из чисел р (х) > 0, удовлетворяющих условию t x + ph(x)?X). (б.13> XVIII. Вычислить следующее приближение XIX. Положить k = k + 1 и перейти к шагу II. Теорема 2. Если выполнены предположения 2, 2' и множество Х'(*°ШМ/о(*)</о(П К *)-*/<0, /= 1 /я} компактно, то последовательность хк, k = О, 1, ..., построенная алгоритмом 2, либо конечна и ее последний элемент оптимален для задачи 2, либо бесконечна и каждая ее предельная точка оптимальна для задачи 2. Замечание 2. Если шаг XIX алгоритма 2 заменить шагом XIX' или XIX", описанными ниже, то заключения теоремы 2 остаются в силе при условии, что величина р (х) на каждой итерации однозначно определена. (Такая замена является рациональной с вычислительной точки зрения). XIX'. Положить е~= efi h = k + 1 и перейти к шагу II. XIX". Если kli'— целое число (здесь целое число i"^ 1 введено для управления скоростью уменьшения величины е), то положить е = е7, k = k + 1 и перейти к шагу II; иначе положить k *= k + 1 и перейти к шагу II. Замечание 2'. Чтобы получить реализуемую версию алгоритма 2, можно шаг XVII алгоритма заменить на XVII'. Вычислить наименьшее из целых чисел i > 0, для которых /о {х + P'p* (х)) - f0 (х) - рра (V/o (х), h (x)) < 0; ' /=1, 2, ..., т; и положить р (а:) = р'р, где р > 0; f ? @, 1); а ? @, 1). Алгоритм 2' (ускоренная версия алгоритма 2) Н а ч а_л о. I. Вычислить х° ? Х\ выбрать р ? @, 1),7 ? @, е') и «" ? @, в); положить k = 0. Основной цикл. II. Положить л: == я*. III. Положить ео= е, / = 0. IV. Вычислить множество индексов Зе. (х) и положить 3 ==* = аг., (*). V. Вычислить проектирующую матрицу Р^ по E.8). VI. Вычислить вектор /Л (*) по E-9). VII. Если || А8/ (д:)Р > 8.-, то перейти к шагу VIII; иначе перейти к шагу XII. 273
VIII. Вычислить вектор yei (х) в соответствии с E.7) и положить У = гЛ (х). IX. Если у ^ О, то положить ft (я) = —Л8/ (#) и перейти к шагу XIX; иначе перейти к шагу X. X. Предполагая, что V = {*1э *2, ..., im,} и г\ < *2< ... < *т-, положить \аа (х) = уа, а = 1, ..., т'. XI. Вычислить А8' (л:) согласно E.11) и E.12), положить h {х) = —Л8/ (л;) и перейти к шагу XIX. XII. Если 8у < е", то вычислить векторы h° (x), у0 (х) согласно E.10) и E.7) и перейти к шагу XIII; иначе перейти к шагу XIV. XIII. Если || h° (х) ||2 = 0 и у0 (х)^0, то положить х*=х и прекратить вычисления; иначе перейти к шагу XIV. XIV. Вычислить вектор yef (x) согласно E.7) и положить у = = У*1 (х). XV. Если у < 0, то положить e/+i = Ps,-, / = / + 1 и перейти к шагу IV; иначе перейти к шагу XVI. XVI. Предполагая, что V = {ilf i2, ..., im>) и ^</2<... < im', положить iaa (x) = уа, а = 1, 2, ..., т!. XVII. Вычислить вектор Л8/ (х) согласно E.11) и E.12), положить h (х) = —/г8' (х). XVIII. Если || h (x)f ^ е7-, то положить e/+i = Рв/Э / = / + 1 и перейти к шагу IV; иначе перейти к шагу XIX. / XIX. Вычислить наименьшее из чисел р (х) ? @, об), удовлетворяющих E.13). XX. Вычислить следующее приближение XXI. Положить k = k + 1 и перейти к шагу II. Для последовательности xk, k == 0, 1, ..., порожденной алгоритмом 2', справедлива теорема 2. 3. Тибридный метод проекции градиента для минимизации функций при нелинейных ограничениях Задача 3. Найти arg min /0 (х) для заданной функции /0: Rn -> Л1 и заданного множества Предположения 3. (i) —функции /у, / = 0, 1, ..., яг, непрерывно дифференцируемы и выпуклы; (и) — существует такое число е' > 0, что для любой точки х? X и любого числа е ? [0, г'] векторы у// (х), / ? #8 (я), линейно независимы. Гибридный метод проекции градиента объединяет идеи метода проекции градиента (алгоритм 2) и метода возможных направлений (алгоритм 1 см. § 5.7). Приводимый ниже метод получен в [536] 274
добавлением к методу (описанному в [500]) е-процедуры, которая сделала этот метод заведомо сходящимся (версия метода, приведенная в [500], таким свойством не обладает). Алгоритм 3 Начало. I. Вычислить х* ? X; выбрать р ? @, 1) (обычно полагают р = V2), е ? @, е') и е" ? @, е); положить k = 0. Основной цикл. П. Положить х = лЛ III. Положить ео= е, / ¦« 0. . IV. Вычислить 87-активное множество индексов Зе.(х) по формуле М {*1М*) + е/>0. /==1 т> *?х) E.14) и положить 3 = ?7 V. Найти матрицу Л^, столбцами которой являются векторы W» / 6 ^» линейно упорядоченные по /. VI. Вычислить проектирующую матрицу VII. Вычислить вектор VIII. Если || Л8/ (*)f > 8У, то положить h (х) = —Л8/ ДО и не* рейти к шагу XX; иначе перейти к шагу IX. IX. Если еу ^ е", то вычислить множество индексов 39 (х) по E.14) (при е7= 0) и перейти к шагу X; иначе перейти к шагу XV. у X. Найти матрицу А? (как на шаге V при V == #<,)• XI. Вычислить проектирующую матрицу XII. Вычислить вектор XIII. Вычислить вектор У0 (х) - (А^А^мГ1 A^V. W- XIV. Если |]/i° (x)f =» 0 и у° (х) ^ 0, то положить **= л: и прекратить вычисления; иначе перейти к шагу XV. XV. Вычислить вектор у*1 (х) согласно E.7) при е = ву и положить у = у8/ (х).' XVI. Если у ^ 0, то положить 8/+i *=» Ре/, / = / + 1 и перейти к шагу IV; иначе перейти к шагу XVII. XVII. Предполагая, что #= {iti i2t ..., imf) и ii<^<.« < im.% положить \ца (х) = уа$ а =* 1> 2, ...» т'. 275
XVIII. Найти наименьшее из чисел I ? V, для которых вектор удовлетворяет соотношению ||hei (х)|| = max j IP>_,V/0 (x)|| | /$9, ц, (х) >0}, и положить h (x) = —Л8/ (a:). XIX. Если IA (x)ii2 < 8/t то положить ey+i = pe,-, / = / + 1 и перейти к шагу IV; иначе перейти к шагу XX. Примечание. В общем случае луч {#'= х + рЛ (х) | р ;> 0} пересекает множество X только в точке х, т. е. вектор h (x) не определяет возможное направление. Ниже строится вектор q (х), определяющий возможное направление. XX. Если h (х) == —Л8/ (#), то положить % = V и перейти к шагу XXI; иначе положить % = 3 — in перейти к шагу XXI. XXI. Вычислить вектор q(x) = X (х) h (x) + Ак (А^АкГ1 g, где g = —8/ A, 1, ..., 1) ? Rn и X (х) ^ 1 — наименьшее из чисел та луче [1, оо), для которых где / = 0 при % = S^ и / = I при di = S^ — t. XXII. Вычислить наименьшее из чисел р (х) > 0, удовлетворяющих условию fo{x + p(x)q(x)) XXIII. Вычислить следующее приближение XXIV. Положить k = k + 1 и перейти к шагу II. Теорема 3. Пусть выполнены предположения 3 и пусть задача 3 •такова, что алгоритм 3 корректен для всех Тогда последовательность xkf k = 0, 1, ..., порожденная алгоритмом 3, либо конечна и ее конечный элемент оптимален для задачи 3, либо бесконечна и каждая ее предельная точка оптимальна для задачи 3. Замечание 3. Алгоритм 3 можно привести к реализуемой форме тем же способом, что и алгоритм 2 (см. замечание 2'). Можно также получить ускоренную версию алгоритма 3, используя для этого вдею построения алгоритма 2'.
4, Метод проекции градиента при наличии возмущений Задача 4. Найти arg min f0 (х) для заданной функции /0 :/?"-> R1 и заданного множества X. Предположения 4. (i) — X — замкнутое выпуклое множество; (И)—/0—дифференцируемая на X функция. В алгоритме 4 предполагается, что имеется возможность вычислять на каждой итерации приближенное значение Л* градиента функции /0 в точке xk. Алгоритм 4 Начало. I. Выбрать произвольное начальное приближение х°?Х. II. Положить k = 0. Основной цикл. III. Вычислить направление движения hk (приближенно совпадающее с градиентом функции /0 в точке X = Xk). IV. Найти шаговый множитель pk. V. Вычислить следующее приближение где тех— оператор проектирования на множество X. VI. Положить k = k + 1 и перейти к шагу III. Теорема 4. Пусть выполняются предположения 4 и (Hi) — градиент функции /0 на множестве удовлетворяет условию Липшица с константой у (здесь х° — начальное приближение в алгоритме 4); (iv) — вектор hk, вычисляемый на шаге III алгоритма 4, удовлетворяет условию Тогда для последовательности {xk)%=o, порожденной алгоритмом 4, справедливы утверждения: 1) если 0 < pk < 2/(т + 2Р), k = 0, 1,..., то {/0 (**)}SLo монотонно убывает; 2) если Хо ограничено, /0 выпуклая функция, <p,<2/(v + 2P)-82, & = 0, 1, ..., (е2>0),то lim /0 (х») - Го ДМ /о (х), /о И - Я e ° (x); 3) ^слм функция /0 дважды дифференцируема и Уг IIУ Р < (VL /о (*) У. У) < УIIУ In Yi > 0; i = max {11 _ pYl |, (I-,, 277
то при pfe = p, k = О, 1, ..., последовательность {x*}*Lo сходится к точке минимума х*, причем Библиографические указания. Пункт 1 написан на основании работы [192], пункт 2 и 3 — на основании работ [285, 510], пункт 4 — на основании работы [295]. Различные модификации метода проекции градиента и различные способы построения проектирующих матриц описаны также в [551, 500, 320, 536, 25]. 5.2. Общий метод штрафных функций Задача 1. Найти arg max /0 (*) Для заданной функции х€Х I /0: Rn -> R1 и заданного множества Х={х|/,(*)>0, (^1 /n; x?Yc:Rn}. Предположения L (i) — Y — компактное множество в Rn- (ii) — функции /у, / = 0, 1, ..., т — непрерывны на множестве г. Определение 1. Семейство функций г|) (•, а), определенных на множестве F, зависящих от параметра а и обладающих свойствами: (i) — г|) (я, а) ^ 0 при всех х ? Y; (и) — ty (х, а) -+ 0 (монотонно убывая) при а ->- со на множестве Х°, всюду плотном в X; (Ш) — lim г|) (х% а) = с» равномерно по х ? (Y \ Vq (X)) для Любого ОС-юо б > 0 (где Vb (X) обозначает б-окрестность множества X) называют штрафными функциями (или функциями штрафа)9 а параметр а — штрафным коэффициентом (или коэффициентом штрафа). Если i|) (•, а) — штрафные функции, то справедливо max /0 (*) = lim sup (/0 (*) —1|> (#, а)), и, таким образом, решение задачи 1 сводится к вспомогательным задачам максимизации по х ? Y функции /0 (х) — i|) (x, а) при достаточно больших а. Решение последней в силу «простой» структуры множества Y является проще исходной задачи. В общем случае решение задачи 1 находится как предельное решение вспомогательных задач при а ->• оо. В некоторых случаях решение исходной задачи можно получить при конечном значении а. Ниже приведены примеры штрафных функций: т * (х, а) = а 2] | min {0, ft (х)} \\ т > 0; E.14) у(х, а) = а | min {0, min ft {х)} |\ т > 0; E.15) 0, если УР(Х> Щ— X/minfAx) F.16) ае ' в противном случае; 278
1 + E|min{0, ft{x)}\x\ -1, т>0; E.17) * <*. a) - Ьг S ^ W ПрИ<Й/< W > °' E-13) . + °°> в противном случае; m Ф(*. a)-Jjexp(-«/,(*)). E.19) Штрафные функции E.14) — E.17) называют внешними, а E.18) — E.19) —внутренними штрафными функциями. Для функции я|) (х, а) вида oo, x?XQ условие (i) в определении 1 штрафных функций в общем случае не выполняется, но теорема 1 остается для нее справедливой. Алгоритм 1 I. Выбрать семейство штрафных функций я|) (•, а). II. Задать последовательность {о^}?=о штрафных коэффициентов такую, что lim 1/аЛ = 0. III. Задать последовательность {sk}?=o такую, что k = 0, 1, ... . IV. Вычислить при каждом k (k = 0, 1, ...) точку xkt удовлетворяющую условию /о (**) - ¦ (**, «*) > sup (/0 (х) - -ф (х, аЛ)) - гк. Здесь также требуется решать задачу условной максимизации. Однако на практике под множеством Y обычно подразумевается некоторое «простое» множество (например, параллелепипед в пространстве Rn) и решение этой задачи сточки зрения наличия ограничений не представляет особых трудностей. Теорема 1. Если выполняются предположения 1, то любая предельная точка последовательности {хк}?=о, порожденной алгоритмом 1, принадлежит допустимому множеству X и реализует max /0 (х), т. е. является решением задачи 1. В следующей теореме приводятся оценки скорости сходимости алгоритма 1, на основании которых выбираются штрафные коэффициенты, обеспечивающие заданную точность решения по функционалу. Теорема Г .Пусть выполняются предположения 1 и (ш) — функция /о (х) удовлетворяет условию Липшица на компакте Y с 279
константой у\ (iv) — существуют постоянные б, р, а > О такие, что при всех х ? (Vq (X) \ X) (] У справедливо неравенство min где ру — метрика в У; V& (X) — 8-окрестность множества X; (v) — штрафная функция i|) (х, а) имеет вид т (х, а) «ogl min {0, /, (*)} |т, т > 0. для достаточно больших а я/?а та > 1 справедливы неравен- ства 0<Д(а, т а, т), где Л (а, т) = max (/0 (л:) — -фт (х, а)) — max /0 (*); li — величина, не зависящая от а, у; х* (а, т) = arg max (/0 (х) — фт (х, а)). та ^ 1, то существует значение штрафного коэффициента такое, что х* (а, т) g X и А (а, т) = 0 при всех а ^ а (у} р, т). Замечание 1. Условие (iv) теоремы Г с произвольным б > 0, а = 1 и некоторым р > 0 выполняется в каждом из следующих двух случаев: 1) функции Д (х), i == 1, ..., т — вогнуты на компакте Y и вы- - полнено условие Слейтера, т. е. существует точка х б У такая, что ft W>0, i= 1, ..., m; 2) У — выпуклое множество из Rny a ft (x), i = 1, ..., m,— линейные функции. Замечание Г. Условие (iv) теоремы 1' с произвольным а > 0, б > 0 и некоторым (достаточно малым) р выполняется, если У — конечное множество. Замечание Г. Если система неравенств , i== 1, ..., m, имеет единственное решение я* ? Л", причем и любые /г векторов системы {y/i (x*), ..., y/n+i (x*)} линейно независимы, то 290
Замечание lm'. Из теоремы Г следует, что при та ^ 1 возможно точное решение задачи математического программирования методом штрафных функций при конечном значении коэффициента штрафа а. Обеспечить выполнение условия та ^ 1 можно выбором параметра т. Однако следует учитывать, что при т ^ 1 функция г|)т (я, а) вообще не является дифференцируемой по х, даже если функции ft (а:), I = 1, ..., т дифференцируемы по х, что может усложнить решение задачи max (/<> (х) — ty% (xf a)). xev Библиографические указания. При написании параграфа использовались работы [370, 372]. Дополнительные сведения об общем методе штрафов, оценках скорости сходимости, рекомендациях по практическому использованию метода штрафов можно найти в работах [141, 146, 289, 89, 468, 571, 452, 514, 430]. В работе [565] доказывается, что при линейных внешних штрафных функциях из существования седловой точки для функции Лагранжа вытекает сходимость решений вспомогательных задач безусловной оптимизации к решению исходной задачи при конечном значении коэффициента штрафа. В работе X. Майна и М. Фукушима [525] для построения штрафных функций используется понятие инфимальной сходимости последовательности функций и доказывается, что некоторые известные методы внутренних и внешних штрафных функций являются частными случаями их теории. 5.3. Методы внешних штрафных функций 1. Задачи с ограничениями в виде неравенств Задача 1. Найти arg min /0 (х) для заданной функции /0) Rn ->- R1 и для заданного множества Х={х|//(х)<0> /=1,2,..., /и, *еЯп}. E.20) Предположения L (i)—функция /0 непрерывно дифференцируема; (и) —функции /;., / = 1, 2, ..., т непрерывны; (ш) — существует такая точка х ? X, что множество компактно. Идея метода внешних штрафных функций заключается в сведении решения задачи с ограничениями к решению последовательности задач на безусловный минимум. При этом необходимо строить последовательность внешних штрафных функций для множества X, которая определяется следующим образом. Определение 1. Последовательность непрерывных функций Pk (х)> к = 0, 1, 2, ..., называется последовательностью внешних штрафных функций для множества X, если: ftW = 0 для всех x?X, ft = 0, 1, 2, ... ; ftW>0 для всех х ? X, ft = 0, 1, 2, ... ; pk(x)-><x> для всех х ? X, ft->oo; (х) > pk (х) для всех х ? X, ft = 0, 1, 2, .... 281
Далее, используя алгоритмы глав 2 и 3, при каждом k = 0, 1, 2, ... находим xk — решение задачи на безусловный минимум f() E.21) Предельные точки последовательности {xk}Z=,o являются оптимальным решением задачи 1. Методы внешних штрафных функций обеспечивают приближенное решение задачи 1 вне допустимой области. Приведем пример последовательности внеишшх: штрафных функций для множества X, определенного согласно E.20): Pk (х) = *k ? (max {0, /, (x)}f, k = 0, 1, 2, ..., E.22) где fJ ^ 1, {ak}te=o — строго возрастающая последовательность положительных чисел, стремящаяся к бесконечности при k ->¦ оо. Алгоритм 1 I. Построить pk (x), k — 0, 1,2, ...,— последовательность внеш: них штрафных функций для множества X, определенного согласно E.20); для этого можно использовать E.22). П. При каждом k = 0, 1,2, ..., найти xk— решение задачи на безусловный минимум fo{x)+Pk(x)-+ min E.23) хфп (для этого использовать алгоритмы, описанные в гл. 2 и 3). III. Найти предельные точки последовательности {x*}?Lo. Теорема 1. Пусть выполнены предположения 1. Тогда любая предельная точка последовательности {л:*}?=о, порожденной алгоритмом 1, является оптимальным решением задачи 1. Теорема Г. Пусть выполнены все предположения 1 и, кроме того: а) функции /у, / = 0, 1, ..., т — непрерывно дифференцируемы; б) множество °> ? = 0> 1. ••• E.24) компактно; в) задача 1 имеет единственное решение х*; г) минимум в E.23) при больших k достигается в единственной точке xk\ д) в решении х* задачи 1 градиенты y/f (л:*), i g tJ (x*)f линейно независимы, где множество ?J (x*) определяется по правилу WH/I//(*•)=¦ 0, /=1, ..., т). Тогда для точек {xk}kLo> порожденных алгоритмом 1, в котором Pk (x)> k =5 0, 1, ..., определяется согласно E.22) при {$ =* 2, имеют 282
место предельные соотношения lim ак (max {0, /, (**)}) = -§-«/, / — 1, .... m, где И/, / = 1, ..., т — множители Лагранжа задачи 1. В случае задачи выпуклого программирования оценки приближения xk к искомому решению х* могут быть сделаны более точными. Теорема Г. Пусть функции ff, / = О, 1, ..., т, выпуклы и множество Хь, определяемое согласно E.24), компактно. Пусть, кроме того, в точке я*, являющейся решением задачи 1, выполнены необходимые условия в форме теоремы Куна — Таккера, т. е. существуют такие числа ui ^ 0, / = 1, ..., т, что ?"///(*) +М*)> V*; Тогда 2. Задачи с ограничениями в виде равенств Задача 2. Найти arg min /0 (х) для заданной функции х?Х f0 : Rn -> R1 и множества X={x\gf(x)**Of /=1, ...,m}. E.25) Предположения 2. (i) — функция /0 непрерывно дифференцируема; (И) — функции gi$ j == 1, ..., m, непрерывны; (ш) — существует такая точка х\ что множество компактно. Ниже приводится пример последовательности внешних штрафных функций для множества X, определенного согласно E.25): , * = 0, 1. .... E.26) 283
где р ^ 1 и ak, k = О, 1, 2, ...— строго возрастающая последовательность положительных чисел, стремящаяся к бесконечности при k —>• оо. Алгоритм 2 I. Построить {рк (х) }ь=о— последовательность внешних штрафных функций для множества X, определенного согласно E.25); для этого можно использовать E.26). II. При каждом k = О, 1, ..., найти хк— решение задачи на безусловный минимум (для этого использовать алгоритмы, описанные в гл. 2 и 3). III. Найти предельные точки последовательности {x*}*Lo. Теорема 2. Пусть выполнены предположения 2. Тогда любая предельная точка последовательности {x*}jELof порожденной алгоритмом 2, является оптимальным решением задачи 2. 3. Модифицированные методы с процедурой прерывания Непосредственное использование описанных выше методов внешних штрафных функций не всегда практически осуществимо, так как не всегда возможно за конечное время найти глобальный минимум функции /0+ pk на всем пространстве. Поэтому опишем модифицированные методы внешних штрафных функций, которые используют процедуру прерывания при приближении к минимуму или стационарным точкам функции /0+ рк. Последовательность точек xkt k = 0, I, 2, ..., порожденная этими алгоритмами, обладает свойством при k -> оо. При определенных условиях предельные точки этой последовательности удовлетворяют необходимым условиям оптимальности. Алгоритм 3 применяется для решения задачи 2, а алгоритм З"—для решения задачи 1. Алгоритм 3 Начало. I. Выбрать числа s > 0, а ? (О, V2), р > 1, р >0 и точку де° ? /Г. II. Положить 80= е, / == 0, k = 0. Основной цикл. III. Вычислить вектор где функция р определяется по правилу 284
IV. Если || h (xft efc)J > гк> то перейти к шагу V; иначе положить еЛ+1 = е^/р, х* = х', k = k + 1 и перейти к шагу III. V. Используя алгоритм 3', вычислить такой шаговый множитель Я;, что _Х/A — 06)||/i (*/, 8,) ||2 < /0 (*/ + *,Й (*/ + J- /7 (*/ + tyt (X/, 8,)) - /0 (*/) - ¦VI. Положить х'+* = а;/ + \Ж (х', ел), / = / + 1 и перейти к шагу III. Алгоритм 3' (алгоритм вычисления множителя Л,; для алгоритма 3) I. Положить (х == р. II. Вычислить = /о (^ - /о И - "^ Р И + I* О - «) I * (*у, «*) Р. E.27) III. Если 0 ((г, #') = 0, то положить Xf = у, и прекратить вычисления; если* 0 (ji, хО < 0, то положить ц = fi + p и перейти к шагу II; если 0 (|л, я'") >> 0, то перейти к шагу IV. IV. Вычислить в (|А, Xf) = /0 {Xf + \lh (X/, 8,)) + -1- р (X/ + lift (X/, 8,)) - V. Если 0 (|х, х7) ^ 0, то положить ^=(аи прекратить вычисления; иначе положить ао= ц — р, Ьд= \х и перейти к шагу VI. VI. Положить i = 0. VII. Положить ^ = (at + bt)/2. VIII. Вычислить 0 (vit x!) и 0 (viy x7), определяемые согласно E.27) и E.28), соответственно. IX. Если 0 (viy х!) ^0 и 9 (vi9 х1) ^ 0, то положить Kf = ^ и прекратить вычисления; иначе перейти к шагу X. X. Если _0 (vi$ xi) > 0, то положить щ+\ == ait bi+\ = vi9 i = i + 1 и перейти к шагу VII; иначе положить a/+i = yt., 6/+i = = 6^, t = / + l и перейти к шагу VII. Теорема 3. Пусть выполнены предположения: (i) — функции /0 и §t> / = 1» ••> т, непрерывно дифференцируемы; (ii) —матрица Якоби —j?- имеет максимальный ранг для всех х, принадлежа- 285
щих достаточно большому открытому множеству в Rn\ (Hi) — множество {х | /о (х) < d0} компактно для всех dQ ? Д1. Тогда, если последовательность {%ft}*Lo, порожденная алгоритмом 3, остается в компактном множестве, то h (xky ek) -*0 при k -> сю, последовательность {xk}kLo будет иметь предельные точки х*, которые лежат в X и удовлетворяют необходимым условиям оптимальности для задачи 2. Замечание 3. Из теоремы 3 следует, что для эффективного использования «реализуемого» алгоритма 3 требуется выполнение ряда предположений, и в отличие от чисто принципиальной схемы (алгоритм 2) здесь, по-видимому, нет простых достаточно общих условий, гарантирующих, что последовательность {я*}?.о будет оставаться в компактном множестве. Алгоритм 3" Шаги I, II, IV, V, VI такие, как в алгоритме 3. Шаг III алгоритма 3 заменить на ИГ. ИГ. Вычислить вектор здесь функция т Р \Х) == ~qT 2*1 ' ИЛИ 1 где множество L (х) определяется по правилу L(*)H/|M*)>0f /€{1, 2, .... m}}. Теорема3'.Пусть выполнены предположения: (i) —функции f0 и fh I = 1, ..., m, непрерывно дифференцируемы; ' (и) — множество {х \ /0 (л:) ^ d0] компактно для всех d0 ? J?1; (ш) — для всех х ? Л" векторы у// (*)> ^ 6 ^ W» линейно независимы. Тогда для последовательности {xk}t=,o, порожденной алгоритмом 3", имеет место предельное соотношение h (xk> гк) -> 0 при k -> -^ сх>. Если, кроме того, последовательность {%*}?1о принадлежит компакту, то ее предельные точки х* лежат в X и удовлетворяют необходимым условиям оптимальности для задачи 1. Замечание 3'. Из теоремы 3' следует, что для эффективного использования «реализуемого» алгоритма 3" нет простых достаточно общих условий, гарантирующих сходимость последовательности 286
(x*}2Lo. Однако на практике оказывается, что алгоритмы типа 3" работают хорошо, поскольку обычно последовательности {**}?¦<> сходятся. 4. Метод внешних штрафных функций для минимизации недифференцируемых функций Задача 4. Найти arg min /0 (а:), где xQXt Х1==Х П {*IM*)<0' /«l,...,m}. E.29) Множество Хсй^и функции /, : /Г -> Я1 заданы. Предположения 4. (i) — функции /;-, / = О, 1, ..., т, выпуклые вниз и непрерывные при л; ? X, (ii) — ограничения E.29) удовлетворяют условию Слейтера; (ш) — X — выпуклое и замкнутое множество. Приближенное решение данной задачи будем искать как решение вспомогательной (более «простой») задачи: найти arg min р (x, а) для х?Х Р (*, а) = f0 (х) + ? р (/, (*)) /у (х)9 E.30) где а — некоторое положительное число; р (/у (#)) = а, если U (х) > 0 и р (ft W) = 0, если // М < 0. Известно, что при а, превышающем абсолютные значения множителей Лагранжа, решение задачи E.30) в точности совпадает с решением задачи 4. Алгоритм 4 Начало. I. Выбрать: произвольное начальное приближение #° ? Rn\ шаговый множитель р0 и нормирующий множитель у09 удовлетворяющие условиям теоремы 4; положительное число а. II. Положить k = 0. Основной цикл. III. Вычислить числа Р/ = Р (// (**))> / = 1, ..., т. IV. Вычислить следующее приближение - рЛ (V/o И + Jj где V/y (л:*) (/ = 1, ..., т) — обобщенный градиент функции // в точке xk. V. Вычислить шаговый множитель p^+i и нормирующий множитель Ya+ь удовлетворяющие условиям теоремы 4. VL Положить k =5= ft + 1 и перейти к шагу III. 28?
Теорема 4. Пусть выполнены предположения 4, а также: (i) — для любого числа б < оо найдется такое конечное число 1 = X Ф), что \VxP(x, а)|<Х при ||х||<6; (и) - Y*>0, Y*|V«p(*\ a)||<const; (ш)- оо оо > S Pfe= °°> S р|<°°- /0 *0 последовательность {хк)™=% порожденная алгоритмом 4, сходится к решению задачи E.30), а при достаточно большом а — к решению задачи 4. Замечание 4. Для ускорения сходимости функцию р (х, а) целесообразно минимизировать с помощью методов обобщенного градиентного спуска с растяжением пространства [223]. Чтобы получить гладкую функцию цели р (х, а) при гладких /,-, / = О, 1, ..., т% вместо E.30) можно взять функцию т р (х, а) = /0 (х) + § Р (// (*)) I// W12- <5'31> Однако минимизация функции E.31) дает лишь приближенное решение задачи 4, которое стремится к точному при a -> оо. Замечания 4'. Методы внешних штрафных функций имеют следующие преимущества: а) в качестве начального приближения можно выбрать любую точку я0 ? Л*1; б) их можно применять к задачам с ограничениями как типа равенств, так и типа неравенств; в) если штрафная функция имеет вид E.22) и в процессе решения задачи минимизации без ограничений находим точку xkt для которой f} (jc*) ^ 0, то из суммы (в определении pk (x)) исключается соответствующий член с функцией ff и это уменьшает объем вычислений. Недостатки методов внешних штрафных функций следующие: а) генерируют недопустимые, т. е. не всегда принадлежащие множеству X, точки; б) если минимизируемая функция /0 (х) или некоторая из функций /у, / == 1, ..., т — невыпуклы, то при плохом начальном приближении может быть вычислен локальный, а не требуемый глобальный минимум функции /0+ Рь (в таких случаях требуются дополнительные ресурсы для поиска глобального минимума); в) штрафные функции вида E.22) дифференцируемы небольшое число раз, что, согласно [373], может неблагоприятно сказываться на скорости сходимости; г) если вычислительный процесс начинается с внутренней точки х° множества X, то штрафная функция и все ее производные остаются равными нулю до тех пор, пока точка xk не пересечет границу множества X (это делает вычислительный процесс неуправляемым внутри множества X). 288
Библиографические указания. Пункте 1, 2 написаны на основании работ [320, 285, 373, 464], пункт 3 — на основании работ [285, 536], пункт 4 — на основании работ [153, 294, 463]. В работе [427] для безусловной минимизации штрафной функции общей задачи нелинейного программирования используется модификация метода покоординатного спуска. 5.4. Методы внутренних штрафных функций 1. Общая схема Задача 1. Найти argmin f0 (х) для заданной функции f0: Rn ->• R1 и для заданного множества * ={*!//(*)<0, /==1, 2, ..., т, x?Rn). Предположения U (г)—функция /0 непрерывно дифференцируема; (и) —функции /у, / = 1, 2, ..., т — непрерывны; (ш) существует такая точка х'?Х, что множество *' = {*!/о (*)</<>(*')} компактно; (iv) — множество X имеет внутренние точки и замыкание его внутренности Х° совпадает с X. Идея метода заключается в сведении решения задачи с ограничениями к решению последовательности задач на безусловный минимум. При этом приходится строить последовательность внутренних штрафных функций для множества X, которая определяется следующим образом. Определение, Последовательность непрерывных функций pk : Х° -> Я1, k = 0, 1,2.,., называется последовательностью внутренних штрафных функций для множества Х°, если: всех p'k(x)-+0 для всех х?Хо, &->оо; Pk (*0 -> °° при /-* оо для любой последовательности {^Д принадлежащей Х°, для которой xf -*• х g дХ при / ->- оо, k = 0, 1,2,... (здесь дХ обозначает границу множества X). Далее при каждом k = 0, 1, 2, ..., используя алгоритмы гл. 2 и 3, находят xk — решение задачи Ы)Рл() E.32) Предельные точки последовательности {x*}*Lo являются оптимальным решением задачи 1. Ниже приведены примеры последовательностей внутренних штрафных функций для множества X: щ 1, 2 х$Х\ E.33) 10 3-341 289
где функции fff / = 1,2, ..., m, удовлетворяют предположению 1 и {aft}*L0 — GTporo убывающая последовательность положительных чисел, стремящаяся к нулю при k -> оо; , , , E.34) где функции fj9 / =* I, 2, ..., m, и последовательность {<xk}k^o такие, как в (о.ЗЗ) и, кроме того, выполняется х u = max (— min /, (x)) < оо. / х<=х Методы внутренних штрафных функций обеспечивают приближенное решение внутри допустимой области, в пределе стремящее- ея к решению задачи 1. Алгоритм 1 1. Построить p'k (л:), k = О, 1, 2, ...— последовательность внутренних штрафных функций к множеству X (можно использовать E.33) и E.34)). II. При каждом k = 0, 1, 2, ..., найти xk— решение задачи минимизации функции /0 (х) + pk (x) на множестве Х° (можно использовать алгоритмы, описанные в гл. 2 и 3). III. Найти предельные точки последовательности {xk}kLo. Теорема 1. Пусть выполнены предположения 1. Тогда любая предельная точка последовательности {xk}kLo, порожденной алго* ритмом 1, являетея оптимальным решением задачи 1. 2. Реализуемая схема с процедурой прерывания Буквальное использование алгоритма 1 практически неосуществимо, так как невозможно за конечное время добиться минимизации функции /0 (х)+ pk (x) по х ? Х°. Ниже будет изложен модифицированный метод внутренних штрафных функций, использующий процедуры прерывания при решении задачи E.32). Алгоритм 2 Начало. I. Выбрать числа е > 0, а ? (О, V2), Р > 1, р > О и точку х° ? Х°. II. Положить е0 = е, / = 0, k = 0. Основной цикл. III. Вычислить вектор h(xf9 e,)=:-(V/0(x/) + 8,V/74^)), где функция р1 (л;) такова, что ekp' (*), k = 0, 1, 2, ...,— последовательность внутренних штрафных функций для множества X 290
(pf (x) можно определить, например, по правилам или IV. Если (| Л (a;/, eft)||>efe, то перейти к шагу V; иначе положить e*+i = efe/p, xk = *', & = ? + 1 и перейти к шагу III. V. Используя алгоритм 3' (см. § 5.3), вычислить такое число Л/, что VI. Положить л/ = л/+ ^/ А (х7*, ел), положить / = / + 1 и перейти к шагу III. Теорема 2. Пусть выполнены предположения 1 и, кроме того: (i) — функции fh /= 1, ..., т — непрерывно дифференцируемы; (и) — для всех х ? JFT векторы Vft (x)f I ? L (x)9 линейно независимы, где L (x) = {/1 /, (а:) ^ 0, / ? 1, т}\ (ш) точка х?$Х° и число г > 0 выбраны так, что множество {х | /0 (х) < /0 (*°) + f (°)} компактно. Тогда предельные точки последовательности {}, порожденной алгоритмом 2, допустимы и удовлетворяют необходимым условиям оптимальности задачи 1. Замечания 2. Достоинством методов внутренних штрафных функций (по сравнению с методами внешних штрафных функций) является то, что они порождают последовательности только допустимых точек, и, следовательно, могут быть использованы в реальном масштабе времени, имеют обычно производные достаточно высокого порядка и допускают управление вычислительным процессом во «внутренности» множества X. Перечислим теперь их некоторые недостатки. Методы внутренних функций можно использовать лишь для ограниченного класса множеств X (для множеств X, содержащих внутренние точки). Процесс должен начинаться только из внутренней точки множества X. Если множество X имеет вид то все члены штрафных функций типа E.33) и E.34) всегда дают ненулевой вклад в величину градиента штрафной функции. Это значительно увеличивает объем вычислений при отыскании направле- 291
ния спуска (градиента внутренней штрафной функции). В этом смысле методы внешних штрафных функций более предпочтительны. 3. Алгоритмы внутренней точки с применением Q -функций Задача 3. Найти arg min /0 (х) для заданной функции /0 : Вп -> R1 и заданного множества ? — 1, ..., m, Предположение 3. Функции //, / = 0, 1, ..., /л, непрерывны, а множество *°Д{*|/Л*)>0, t-l, ..., т) — непустое. Главную роль в данном алгоритме играет характеристическое свойство функции, называемой Q-функцией и определенной следующим образом. Определение. Пусть z = (z0) гъ ..., zm) обозначает т + 1-мерный положительный вектор. Функция Q (г) называется Q-функцией если: a) Q (г) непрерывна по z > 0; б) Jim Q (*') = a > Q (г), z > 0 (до- пускается а = оо), причем нижний предел берется для такой бесконечной последовательности векторов {z*}, что zl > 0 для всех i и lim \zl) = г, причем г, = 0 для некоторого /\ В качестве примера Q-функции можно привести функцию Алгоритмы внутренней точки с применением Q-функций составляют особый класв алгоритмов внутренней точки и обладают следующими свойствами: 1) не требуется выбирать строго убывающую последовательность {a,}/L0 неотрицательных параметров, используемых в качестве весовых коэффициентов в случае обычной внутренней функции штрафа; 2) процесс минимизации на k-й итерации зависит только от значения целевой функции в начальной точке я*, т. е. в точке безусловного минимума на (k — 1)-й итерации; 3) членам последовательности внутренних допустимых точек соответствуют значения целевой функции /0 (х°), /0 (я1)» •••> /о (**)» ••• образующие, начиная с исходной точки, строго убывающую последовательность. При обычных предположениях эта последовательность локально сходится. Алгоритм 3 Начало. I. Найти х° ? Х°. 292
П. Положить k = 1. Основной цикл. III. Определить множество IV. Положить Qk (х) = Q (- /о (х) + /о (**-0. /i (х), ...t/m (*)), где Q (•) — Q-функция. V. Найти #fe — какой-нибудь локальный минимум функции Qk (х) на множестве Xl. VI. Положить k = k + I и перейти к шагу III. Теорема 3. Пусть выполнены предположения 3 и: (i) множество X* локальных минимумов задачи 3 — непустое компактное изолированное множество; (и) X* О Х° Ф 0. Тогда (V) — при Х\ Ф 0 существует точка xk, являющаяся безусловным локальным минимумом функции Qk на Xl, и любая предельная точка равномерно ограниченной последовательности {^}|Lo есть локальный минимум функции f0; (i'V) — при Xl = 0 для некоторого конечного значения k точка xk~~l — локальный минимум функции /о. Замечания 3. Алгоритмы с Q-функцией сохраняют для задач выпуклого программирования все преимущества алгоритмов внутренних штрафных функций, например такие, как глобальная сходимость и возможность получения двойственных допустимых точек, дающих в пределе при k -> оо решения двойственной выпуклой задачи. В [260] было показано, что минимизирующей последовательности для Q-функций соответствует минимизирующая последовательность для метода внутренних штрафных функций, отвечающая некоторой специальной последовательности значений коэффициентов штрафа. Библиографические указания. При написании параграфа использовались работы [285, 536, 373, 464, 522, 528]. В работе [526] предлагается метод сопряженных внутренних штрафных функций, позволяющий преодолеть трудности, возникающие вблизи границы допустимой области в обычных методах внутренних штрафных функций. 5.5. Комбинированные методы штрафных функций Задача 1. Найти arg min /0 (*) для заданной функции /0 : Rn -> R1 и заданного множества X. Предположения 1. (i) — функция /0 непрерывно дифференцируема; (й) множество X имеет вид X = X' f] X\ где X' замкнуто, а X" замкнуто и замыкание его внутренности X"f0 совпадает с Х"\ (Hi) существует точка х ? X такая, что множество X = {* | /0 (х) < 293
/оМ} компактно; (iv) — по крайней мере для одной точки лгE ? X, являющейся оптимальным решением задачи 1, найдется такой открытый шар V, что х ? V и пересечение внутренности множества X" с множеством V = V П X' непусто. Комбинированные методы штрафных функций представляют собой простую комбинацию методов внешних и внутренних штрафных функций. На каждой итерации приходится решать задачу минимизации функции без ограничений (минимизируется функция, являющаяся суммой целевой функции /0, внутренней штрафной функции р'и и внешней штрафной функции pk). Предельные точки последовательности, состоящей из решений этих задач, при определенных условиях будут решениями задачи 1. В общем случае комбинированные методы дают лучший результат вычисления условного минимума функций по сравнению g каждым методом в отдельности. Алгоритм 1 I. Положить k = 0. II. Построить функцию pk (x), принадлежающую последовательности внешних штрафных функций для множества X' (определение последовательности внешних штрафных функций и способы их построения приведены в § 5.3). III. Построить функцию р\ (х), принадлежащую последователь* ности внутренних штрафных функций для множества Xя (определение последовательности внутренних штрафных функций и способы их построения приведены в § 5.4). IV. Найти xk — какой-нибудь локальный минимум задачи оптимизации без ограничений: найти arg min (/„ (х) + pk (x) + p'k (x)). V. Положить k = k + 1 и перейти к шагу II. Теорема 1. Пусть выполнены предположения! и существует такая точка х" ? Х'°, что множество {* I/о (*)</о (*0+ ;>.(*') + />;(*')} компактно. Тогда каждая предельная точка последовательности [xk}kLo, порожденной алгоритмом 1, является оптимальным решением задачи L Библиографические указания. Параграф написан на основании работы [285]. В работе [530] предлагается комбинация метода порождающих столбцов и метода внешних штрафных функций, в работе [431] — комбинированный метод множителей и штрафных функций.
5.6. Стохастический метод штрафов Задача 1. Найти arg min EF0 (x, <o), где Х = Х() {x\EFj(xt со)<0, /-1,...,т}. Предположения 1. (i) — значения /7 (л:) AEFf (х, со), / = 0, 1, ... ..., т, не вычисляются (или их практическое вычисление слишком трудоемко), а значения Fj (х, со), / = 0, 1, ..., га и градиенты этих функций вычисляются с требуемой точностью; (И) — почти при каждом значении состояния природы со функции F, (я, со), / = О, 1,... ..., га, непрерывно дифференцируемы по х\ (Ш) — X — выпуклое замкнутое ограниченное множество. Решение задачи 1 сводится к решению следующей задачи. Задача 1'. Минимизировать по х функцию т Р{х, c) = M*)+S при ограничениях х ? X, где fa, P>0, адесь a — достаточно большое число. При достаточно большом конечном значении а решение задачи I1 будет решением задачи 1. Алгоритм 1 Начало. I. Выбрать: произвольные начальные приближения #° ? К1 и 2° ? К11; начальные значения шаговых множителей рг @) и Р2 @)> удовлетворяющие условиям теоремы 1; выбрать «достаточно большое» число а > 0. II. Положить k =* 0. Основной цикл. III. Вычислить вектор со* (реализацию со в &-й итерации). IV. Вычислить вектор ([ g где Oj (z)) — коэффициенты, определяемые согласно E.34). V. Вычислить вектор ( р2 () (*э cofe) - ]) где F = (Fu ..., Fm), Z at ВТ — выпуклый компакт, содержащий векторы {(Д (л:), ..., /т (*)), х g X*} (здесь X*— множество решений задачи 1). VI. Найти значения шаговых множителей рх (k + 1) и р2 (fe + + 1), удовлетворяющие условиям теоремы 1. 295
VII. Положить k = k -f 1 и перейти к шагу III. Теорема 1. Пусть выполнены предположения 1 и, кроме того, имеют место условия при ft-0,1, ..-; ig-О я/ш fc-^oo; каждая предельная точка последовательности {**}?Lo, /ю- рожденной алгоритмом 1, принадлежит множеству решений зада- ни /', а при достаточно большом значении а принадлежит множеству решений задачи 1. В более общем случае стохастический метод штрафов имеет следующий вид. Алгоритм V Начало. I. Выбрать: произвольные начальные приближения х0 g Rn и г° ? If1; начальные значения шаговых множителей рх @) и Рг @), удовлетворяющие условиям теоремы Г; достаточно большое число а > 0. II. Положить k = 0. Основной цикл. III. Вычислить реализации ?/ (&), / = «= 0, 1, ..., /п, случайных векторов ^\ j =* 0, 1, ..., m, условное математическое ожидание которых 2°), ..., (**, zk)) - V/, (xfe) + Ы (й), / = 0, 1, ..., т, рде &7 №), / » 0, 1, ..., т,— векторы, измеримые относительно а-подалгебры, индуцированной случайными величинами (л;0, г°), ... IV. Вычислить вектор где Of B/) — числа, определяемые при заданном г) согласно E.34). V. Вычислить реализацию ? (k) случайного вектора §, условное математическое ожидание которого где / = (fu ...9 /от). VI. Вычислить вектор VII. Вычислить значения шаговых множителей рг (k + 1), (^ + 1)> удовлетворяющие условиям теоремы Г. VIII. Положить k = k + 1 и перейти к шагу III. 296
Теорема Г. Пусть выполняются все условия теоремы 1 и, кроме того, имеет место неравенство |о Pi (*)| (*>(*) + ?с,(г*)Ы(ft))|< оо п. н. Тогда каждая предельная точка последовательности {xk}kLo, порожденной алгоритмом V, принадлежит множеству решений задачи Г, а при достаточно большом значении а — множеству решений исходной задачи 1. Библиографические указания. При написании параграфа использовались работы [151, 153]. 5.7. Методы возможных направлений Вектор № называют возможным направлением в точке xk (являющейся, например, 6-м приближением к решению задачи отыскания arg min /0 (х)), если существует такое число р > 0, что для всех X € (О» Р) точка xk + № является допустимой, т. е. xk + %hk ? X и, кроме того, удовлетворяет неравенству /0 (xk + Шк) < /0 (xk). В методах возможных направлений улучшенное (k + l)-e приближение xk+l к arg min /0 (л;) вычисляют по формуле х?Х xk+i = xk + pkhk. Различные варианты методов возможных направлений отличаются способами выбора шаговых множителей pk и возможных направлений hk. 1. Методы возможных направлений решения задач минимизации с ограничениями типа неравенств Задача 1. Найти arg min /0 (х) для заданной функции х?Х /0 : If -> R1 и множества определенного с помощью заданных функций ft i Rn -> Д1, / ? €П:т]. Предположения L (i) — функции /;, / = О, 1, •.., т, непрерывно дифференцируемы; (и) — множество А имеет внутренность или относительную внутренность (т. е. множество X может содержаться в линейном многообразии и иметь внутренность по отношению к этому многообразию). Алгоритм 1 Начало. I. Вычислить начальное приближение ас0 ? X, удовлетворяющее условиям теоремы 1. II. Положить k = 0. 297
Основной цикл. III. Положить х = xk. IV. Найти решение а = afe (*), ft = ft* (*) задачи линейного программирования в (п + 1)-м пространстве векторов (a, ft) : min a (Л) при ограничениях (VM*) ft)<a, , t = 1, ..•, п. V. Если afe (x) = 0, то положить x* = xkn прекратить вычисления; иначе перейти к шагу VI. VI. Вычислить наименьшее положительное число pkt удовлетворяющее условию /о(* + Р*Л*(*)) = min, fo(x+ pft*(x)). VII. Вычислить следующее приближение VIII. Положить k = k + l и перейти к шагу HI. Теорема 1. Если выполнены предположения 1 и начальное приближение х° ? X таково, что множество компактно и имеет внутренность, то последовательность х?9 *\... ..., порожденная алгоритмом 1, либо конечна и ее последний элемент xk удовлетворяет условию ak (xk) = 0, либо бесконечна и каждая ев предельная точка х удовлетворяет условию ak (x) = 0. Если х*— оптимальное решение задачи 1, то a (#*) = 0. Основной недостаток алгоритма 1 состоит в том, что на каждой итерации требуется решать задачу линейного программирования, которая может иметь большую размерность (может включать все функции ограничений //, / = 1, ..., т). В приводимом ниже алгоритме те из ограничений задачи линейного программирования //M + (V//(*), ft)<a, /= 1 тэ для которых значения // (х) отрицательны и имеют достаточно большую абсолютную величину, могут оказаться несущественными и их исключают из задачи линейного программирования, на k-& итерации. Алгоритм V Начало. I. Вычислить начальное приближение #° ? X, удовлетворяющее условиям теоремы 1. II. Выбрать константы е' > 0, е" ? @, е') и р ? @, 1) (рекомендуется р = v2). III. Положить k = 0. IV. Положить е = г\ 298
Основной цикл. V. Положить х = xk. VI. Найти е-активное множество индексов VII. Найти решение а = а8 (х), ft = ft* задачи линейного программирования в (л + 1)-мерном пространстве векторов (а, Н) : min а при ограничениях , Л)<а, VIII. Если а8 (х) < —е, то положить A**» Л* и перейти к шагу XIII; иначе перейти к шагу IX. IX. Если е ^ е", то перейти к шагу X; иначе положить е = ре и перейти к шагу VI. X. Найти множество индексов *оМДМ XI. Найти решение а =* а0 (jc), h « fto задачи линейного программирования в (л + 1)-мерном пространстве векторов (а, h) : min а при ограничениях (аА) |Л,|<1, /611 in]. XII. Если а0 (х) ¦» 0, то положить jc*» x и прекратить вычисления; иначе положить е = Ре и перейти к шагу VI. XIII. Вычислить число , р], /€11 :m]}. XIV. Вычислить наименьшее значение рЛ б [0, р (*)], удовлетворяющее условию /o(^+P^fe)« min fo(x + Р€[О,р(д?)] XV. Вычислить следующее приближение XVI. Положить k =* А + 1 и перейти к шагу V. Для алгоритма Г имеет место теорема, ^логичная теореме 1, В [285] рекомендуется заменить шаги XIП. XIV алгоритма I1 практически реализуемыми шагами ХНг и XIV для вычисления шагового множителя рЛ. ХПГ. Вычислить наименьшее из целых чисел s> 0, для которых выполняются неравенства /о (х + EW) - /0 (х) - Ps6fx (V/o (x)9 ft*) < 0; (здесь б > 0 и |л ? @, 1) — наперед заданные константы). 299
XIV. Положить р*= ps6. Ниже приводится модификация алгоритма Г, в которой на каждой итерации необходимо решать более простую задачу линейного программирования. Алгоритм 1" Начало. I. Вычислить начальное приближение х° ? X, удовлетворяющее условиям теоремы Г. П. Выбрать константы е' > 0, е" ? @, е') и р ? @, 1) (рекомендуется р = v2). III. Положить k = 0. Основной цикл. IV. Положить х = xk. V". Положить е0 = е'. VI. Положить s = 0. VII. Вычислить 8S — активное множество индексов VIII. Найти решение h = h\ задачи линейного программирования в n-мерном пространстве векторов Л: найти arg min (V /0 (х), К) при ограничениях h IX. Вычислить значение aesW = (V/0(x), Ц). hi X. Если ае (л:) ^ —ss, то положить hk = hi и перейти к шагу XVI; иначе перейти к шагу XI. XI. Если es <; е", то перейти к шагу XII; иначе положить es+1 = pes, s = s + 1 и перейти к шагу VII. XII. Вычислить множество индексов XIII. Найти решение h = ho задачи линейного программирования в /г-мерном пространстве векторов h: найти arg min (V/o (x), h) при ограничениях h (v/,(*)f ft)>o, XIV. Вычислить значение а0 (а:), а0 (#) = (V/o (x), ho). XV. Если а0 (л:) = 0, то положить х*= xk и прекратить вычисления; иначе положить es+i = pes, s == s + 1, и перейти , к шагу VII. XVI. Вычислить число р (х) !> 0: 300
XVII. Вычислить наименьшее число pk ? [0, р (#)], удовлетворяющее условию PG[O,p(*)J XVIII. Вычислить следующее приближение д;*+1 = X + pfeft*. XIX. Положить fe = ft + 1 и перейти к шагу IV. Теорема Г. Если выполнены все предположения теоремы 1 и, кроме того, для любой точки х?Х существует такой вектор h ? € Rn, что где #0 (а:) — множество, определяемое соотношением 2о(*)Д {/!//(*)> О, /бП:т]}, то последовательность jc°, *\ ..., порожденная алгоритмом Г, либо конечна и ее последний элемент xk удовлетворяет условию а0 (xk) = ¦=¦ 0, либо бесконечна и каждая ее предельная точка х удовлетворяет условию а0 (х) = 0. (Если а:*—оптимальное решение задачи I, то а0 (х*) == 0). 2. Методы возможных направлений решения задач минимизации с ограничениями смешанного типа Задача 2. Найти arg min f0 (x) для заданной функции х?Х f0 : Rn -> Л1 и множества X, заданного функциями // ; It ->- Л1, / = I, ..., т, матрицей А размера / X п и /-мерным вектором bf Предположения 2. (i) — функции fh j = 0, 1, ..., m — выпуклы и непрерывно дифференцируемы; (и) — множество X — компактно; (ш) — существует такая точка х ? Rn, что Л^-Ь = О, f,{x)<0, /6[l:m]. Алгоритм 2 Начало. I. Вычислить начальное приближение #° g X. II. Выбрать константы е0 > 0 и бу > 0, / = 0,1, ..., гп. III. Положить k = 0. Основной цикл. IV. Вычислить множество индексов \(*)й{0) U {/|//(**)>-въ /€11 :т]}. V. Найти решение а = ал, h = ft*, задачи линейного программирования в (л + 1)-мерном пространстве векторов (a, ft) : min а (аА) при ограничениях . п. 30!
VI. Если ak = 0, то перейти к шагу VII; иначе перейти к шагу X. VII. Вычислить множество индексов U VIII. Вычислить число — max Ых*). IX. Если eft<%» то положить **= дс* и прекратить вычисления; иначе перейти к шагу X. X. Если ak < —ekf то перейти к шагу XI; иначе перейти к шагу XVII. XI. Положить s = 0. XII. Положить рЛ = (Vj)8. XIII. Если выполняются неравенства /о (х» + 9khk) < /о И + -т «ЛЛ; / /— 1, ..., m, то перейти к шагу XV; иначе перейти к шагу XIV. XIV. Положить s = $ + 1 и перейти к шагу XII. XV. Вычислить следующее приближение xk+\ = xk + p^ XVI. Положить еЛ+1 = гк, k = к + 1 и перейти к шагу IV. XVII. Положить дг+г «= *\ Bk+i = еЛ/2, & = k + 1, и перейти к шагу IV. Теорема 2. Если выполнены предположения 2 и, кроме того, градиенты функций fh j = 1, ..., m, удовлетворяют условию Липшица то бесконечная последовательность {xk}kLot порожденная алгоритмом 2, обладает тем свойством, что J/e (лс*)}?1о монотонно не возрастая, стремится к значению f0 (#*), гае х*— точка минимума функции /о (*) в области X. Если х*— единственная точка минимума, то xk -> х* при k ->- оо. Ниже приводятся рекомендуемые в [285] два метода возможных направлений, удобные для реализации их на ЭВМ. Алгоритм 2' Начало. I. Выбрать константы ef > 0, € ? @, е'), % > О, Р* 6 @» 1)> Р* € @,5; 0,8) и целое число <с, удовлетворяющее условию 5 ^ ч? ^ 10. 302
II. Если имеется вектор х\ удовлетворяющий условиям //(*')< 0, /6Ilim]; Ах1« Ь, то положить л? = х' и перейти к шагу VII; иначе перейти к шагу III. III. Вычислить вектор лс°, удовлетворяющий условию Ах? = Ь. IV. Вычислить V. Использовать шаги VII—XXI алгоритма 2' для решения задачи минимизации в (п + 1)-мерном пространстве векторов (а, х) : min а при ограничениях <*, /611 :т]; с начальным приближением (аОэ Р) до тех пор, пока при некотором k = k0 не окажется, что 0, /6[1:т], VI. Положить х° = jc^ и перейти к шагу VII. Ооновной цикл. VII. Положить k = 0. VIII. Положить в = е\ IX. Положить л: = д:й. X. Найти множества индексов fJ\, tJ\, определяемые соотношениями W + e>0t /611 : 1 П 91 = 0; / € S^e> только если функция // аффинна. XI. Решить задачу линейного программирования в (п + 1)-мер- ном пространстве векторов (а, К) : min а при ограничениях , Л)<0, и обозначить ее решение через (otg, Ле). XII. Если ае^ —Яе, то положить hk = ftj и перейти к шагу XVI; иначе перейти к шагу XIII. 303
XIII. Если е ^ е", то перейти к шагу XIV; иначе положить б = р'е и перейти к шагу X. XIV. Положить е = е. XV. Положить е = 0и использовать шаги X, XI алгоритма 2' для вычисления вектора (ао, /to). Если а§ = 0, то положить х*= х и прекратить вычисления; иначе положить е = Р'е и перейти к шагу X. XVI. Положить s = 0. XVII. Положить pk = ф")\ XVIII. Если выполняются неравенства /о {х + Р* Л*) - /о (х) - 4- Р* (V/o (х)9 Л*) < 0; то перейти к шагу XIX; иначе положить s = s+ 1 и перейти к шагу XVII. XIX. Вычислить следующее приближение хН-1 = х + pkhk. XX. Положить k = k + 1. XXL Если число k кратно т, то перейти к шагу VIII; иначе перейти к шагу IX. Алгоритм 2" (алгоритм 2" можно применять для решения задачи 2 лишь при выполнении условий регулярности Куна — Так- кера) Начало. I. Выбрать константы е' > 0, г" ? @, е'), %' > 0, V > > 0, Р' б @, 1), Р" 6 @,5; 0,8) и целое число т, удовлетворяющее условию 5 ^ т <; 10. II. Вычислить начальное приближение л^, удовлетворяющее условиям (шаги II—VI алгоритма 2') III. Положить k = 0. Основной цикл. IV. Положить е = е'. V. Положить х = хк. VI. Найти множества индексов 3\ и 3\, как на шаге X алгоритма 2'. VII. Решить задачу линейного программирования в /г-мерном пространстве векторов h: минимизировать (V /0 (х), К) при ограничениях 1, /= 1, .-., п\ и обозначить ее решение через hi. 304
VIII. Вычислить IX. Если а8 < — Ve, то положить hk = h* и перейти к шагу XV; иначе перейти к шагу X. X. Если е < е", то перейти к шагу XI; иначе положить е = р'е и перейти к шагу VI. XI. ПОЛОЖИТЬ 8=8. XII. Положить е = 0 и использовать шаги VI, VII алгоритма 2" для вычисления вектора Л*. XIII. Вычислить и О ""~~ \ /0 \ /' ^ / * XIV. Если a0 = 0, то положить х*= х и прекратить вычисления; иначе положить е = Р'е и перейти к шагу VI. XV. Положить s = 0. XVI. Положить pft = ф")$. XVII. Если выполняются неравенства f /v J-n !.* f /v\ ! /о \^ " Р/г^ ; — /о \х) о" то перейти к шагу XVIII; иначе положить s = s + 1 и перейти к шагу XVI. XVIII. Вычислить следующее приближение XIX. Положить tei + 1. XX. Если число k кратное т, то перейти к шагу IV; иначе перейти к шагу V. 3. Метод возможных направлений с квадратичным поиском В методе возможных направлений с квадратичным поиском для вычисления вектора движения hk к улучшенному (k + 1)-му приближению к искомому решению используются члены, содержащие вторые производные минимизируемой функции. Очевидно, эти алгоритмы имеют большую скорость сходимости, чем алгоритмы с линейным поиском, однако на каждой итерации требуется решать задачу квадратичного программирования. Предложенный в [285] алгоритм 3 можно применять для решения задачи 2 в том случае, когда собственные значения матрицы Гессе Н (х) Д d2f0 (х)/дх2 далеко разнесены, когда выполнены условия регулярности Куна — Таккера и матрица вторых производных Н (х) Д d2f0(x)/dx2 положительно полуопределена на множестве где х° — начальное приближение. 305
Алгоритм 3 Начало. I. Выбрать константы е'> 0, е" ? @, е'), V > 0f V > О, Р' ? @, 1), Р" ? @,5; 0,8) и целое число т, удовлетворяющее условию 5 < т ^ 10. II. Вычислить начальное приближение Jt°, удовлетворяющее условиям (о методе вычисления л* см. шаги II—VI алгоритма 2'). III. Положить k = 0. Основной цикл. IV. Положить е = е'. V. Положить а: = xk. VI. Найти множества индексов &1, &1, как на шаге X алгоритма 2'. VII. Найти решение h = hi задачи квадратичного программирования в n-мерном пространстве: найти argmjni±(^h^Lh9 fc) + (V/0(x), при ограничениях , А)<0, /6У1; l, i = 1, •.., п; VIII. Вычислить IX. Если а8 ^ —№г, то положить hk = hi и перейти к шагу XIV; иначе перейти к шагу X. X. Если е ^ г", то перейти к шагу XI; иначе положить г =« *= Р'е и перейти к шагу VI. XI. ПОЛОЖИТЬ 6 = 8. XII. Положить 8 = 0 и использовать шаги VI—VIII алгоритма 8 для вычисления значения XIII. Если ао= 0, то положить х*= х и прекратить вычисления; иначе положить е = Р'е и перейти к шагу VI. XIV. Положить s = 0. XV. Положить pk = (Р7. 806
XVI. Если выполняются неравенства то перейти к шагу XVII; иначе положить s = s + 1 и перейти к шагу XV. XVII. Вычислить следующее приближение XVIII. Положить ft = k + 1. XIX. Если число & кратное т, то перейти к шагу IV; иначе перейти к шагу V. 4. Модифицированный метод возможных направлений Зойтендейка Задача 4. Найти arg min /0 (к) для заданной непрерывной х?Х функции /0 : Rn -> Л1 и множества |/,(*)-о, У-1. ••-. ft /-/+1, ..., т\ где ft : Rn -+• Л1, / = 1, ..., /n — заданные непрерывные функции. Предположения 4. (i) — функции /7 (*), / = 0, 1, ..., т непрерывно дифференцируемы в Rn; (И) — / < п. Решение задачи 4 сводитоя к решению следующей вспомогательной задачи: найти arg mini/о W + a S//(*)) при ограничениях —/;(х)<0, /— 1, ••., т, где а > 0 — некоторый параметр. Любой минимум вспомогательной задачи, локальный или гло- бальный, достигаемый в точке х с // (я) = 0, / = 1, ...,/, является также локальным или глобальным минимумом задачи 4. Для решения вспомогательной задачи используется метод возможных направлений Зойтендейка, дополненный процедурой вычисления подходящего значения параметра а. Алгоритм 4 Начало. I. Найти начальное приближение л0 ? Х+, где / . E.35) II. Выбрать константы Р > 0, е0 > 0, е' > 0 (е' <? е0), т) ? @,1), 6 ? @, 1), оь_1 > 0, б > 0. 307
III. Для заданных чисел а > О, е > О определить функции я|>а: Rn -^ R1 и #е: Л" -> {1, ..., т} по правилам IV. Определить функцию ga8: /Г -> Л1 по правилу ga8 (*) = min max {(V^a (*), ft), — (V/, (*), ft), / 6 #e (*)}, E.36) где V. Положить & = 0, 8 = e0. Основной цикл. VI. Вычислить множители Лагранжа *) (^ (^) ..., %т (xk)) по правилу == [V/ И (V/ (^/Г1 [V/ (х»)] V/o где / (#*) = (f± (xk), ..., fm (xk))T; V/ (xk) — соответствующая m x X п-матрица. VII. Вычислить ^ = min {Я, И, /611:/]}. VIII. Если о&?_1 + Xo ^ p, то положить ал = a^-i и перейти к шагу IX; если a*-i + Хо < р, то положить ал = max {Р — Х09 i + 6} и перейти к шагу IX. IX. Вычислить множество индексов Зе (хк) и векторы X. Вычислить значение ga.e (^fe) и найти возможное направление поиска Л (**), решая следующую задачу найти argminmax{(Vi|)afc(**), ft); — (Vf,{xk)t ft), j где S={A||ft,|<l, i = l, ...,n, g} XI. Если gakz {xk) > —- e, то положить 8 = e/2 и перейти к шагу XII; иначе перейти к шагу XIII. XII. Если е < е', то вычислить значение gako (xk) и прекратить вычисления, если gako (xk) = 0; иначе перейти к шагу IX. XIII. Вычислить наименьшее целое 4^0 такое, что , /=1, ..., т\ XIV. Положить /+1 = xk + n'fe ft (A:fe), k = & + 1 и перейти к шагу VI. 308
Теорема 4. Пусть выполняются предположения 4 и (ш) — для любого х ? Rn число линейно независимых векторов V /у (х), j ? ? [ 1 : т] таких, что // (х) = 0 не превышает П; (iv) — множество 9 /=1, ..., m, имеет непустую внутренность, замыкание которой совпадает с Х+. Тогда: 1) если алгоритм 4 останавливается в точке xv, то i gttvo(^) = o и ?//(*v) = O; /¦—1 2) если алгоритм 4 генерирует бесконечную последовательность {#fe}?Lo с возрастающими значениями ak, k = klt k2, ..., kt так, что после kt значения ak сохраняются постоянными и равными а, то любая точка накопления х* последовательности {^}^=o о Зе (#*) ^ 30 (х*) удовлетворяет условию ?ао() . 3) если алгоритм 4 генерирует бесконечную последовательность {^ot для которой значения ak возрастают бесконечно часто при k = kx> k2, ..., то последовательность {xki)t=\ не имеет точки накопления. Теорема 4\ Пусть выполняются все условия теоремы 4, и пусть X — компактное подмножество в Х+. Тогда существует число а ? (О, оо) такое, что если х ? X точка локального (глобального) минимума следующей задачи: найти ( l \ arg min [fo{x)+aY ff (x) , a>a, E.37) X<2X+ \ /»1 / /4 /4 mo x есть также точка локального (глобального) минимума задачи 4. Теорема 4". Пусть выполняются все условия теоремы 4. Тогда /Ч Л /ч если х решение задачи E.37), то gao (х) = 0, где gao (x) определяется по E.36) при 8 = 0. 5. Аналог метода возможных направлений в задачах минимизации почти дифференцируемых функций Задача 5. Найти arg min /0 (х) для заданной функции х?Х f0 : Rn -> Rl и заданного множества ограничений Rn) F.38) 309
Предположения 5. (i) — f0— почти дифференцируемая функция; (И) — функции //, / = 1, ..., т непрерывно дифференцируемые. Алгоритм б Начало. I. Выбрать: начальное приближение л? ? X, произвольный вектор 2° ? Rn\ положить k = 0. Основной цикл. II. Найти числа pi, yk, ak, ek9 удовлетворяющие условиям теоремы 5. III. Найти множество индексов 3 (xkf e*), определяемое соотношением ml (Y& О \ — / 1 I О 1^ f . ( Y^\ ^^ О / —» 1 /M \ tf \At , C^l —— j / I ^~ Cfc ^^ # / 1Л 1 ^^ \J9 J ^™ 1 у . • • , f/t J . IV. Вычислить a:?, / = 1, ..., n — независимые реализации случайных величин, равномерно распределенных на отрезках J] *=1, .... я. V. Вычислить вектор — /в (if, •-., *? у-> •-.» ^*)]в*. E.89) где е\ i = 1, ..., л — /-й орт. VI. Найти вектор h = ft* — решение следующей задачи линейного программирования: найти max P при ограничениях лз — 1<Л7<1, /= 1, ..., п. VII. Найти число р^ из условия VIII. Вычислить шаговый множитель IX. Вычислить следующее приближение xk+\ = xk + p^fe# X. Вычислить вектор z*+i = 2fe + Y*(9(^, Щ — zk). XL Положить Л = k + 1 и перейти к шагу II. Теорема 5. Пусть выполнены предположения 5 и (Ш) — область X, высекаемая ограничениями E.38), ограничена; (iv) — для за- 310
дачи 5 выполняются условия Слейтера; (р) — числа гк, рк, ykt ак, k = О, 1, ..., удовлетворяют следующим условиям: ек>0, aft>0, ;>0 при — y+i^ ел-^0 при &-*оо. с вероятностью 1 предельные точки последовательности порожденной алгоритмом 5, принадлежат множеству X* решений задачи 5 и последовательность {/0 (xk)}kLo почти наверное сходится. Замечание 5. Если существует способ вычисления почти градиента g° (х) функции /0 в точке х, то вектор 6 (xkt k) в F.39) можно определять по формуле где xk—реализация случайной точки, равномерно распределенной в /г-мерном кубе со стороной ak и центром в точке xk. 6. Стохастический аналог метода возможных направлений Задача 6. Найти arg min /0 (*) для множества X, которое xQX определяется неравенствами (al9 ch i = 1, ..., n, где 11й{19 .-., m}, /,-/ — Предположения 6. (i) — функции /0 и fi$ i g /lf выпуклые и непрерывно дифференцируемы; (w) — множество X ограничено. Стохастический аналог метода возможных направлений можно применить в тех случаях, когда либо аналитический вид целевой функции не известен, либо значения данных функций вычисляются с ошибками. Для получения направления движения hk в k-й итерации решают вспомогательную задачу линейного программирования. 311
Алгоритм 6 Начало. I. Выбрать: произвольные начальные приближения х°^Х, г° ? Rn; начальные значения шаговых множителей р0, Yoi удовлетворяющие условиям теоремы 6; положительную константу а; fy> *" € h — некоторые положительные числа. II. Положить k = 0. Основной цикл. III. Вычислить Ч IV. Вычислить следующие множества индексов: h (*\ Ч) = {/6 Л I Ьг - гк< U (**) < ft,}; /2 (*\ ek) - {/ 6 /21 bt - 6, < (rff x*) < ft,}; V. Вычислить вектор h = hk — решение вспомогательной задачи линейного программирования: найти max б при ограничениях (Л6) VI. Вычислить следующее приближение **+i = a;* 4. PjkA*. VII. Вычислить вектор ?*— реализацию случайного вектора ?, условное математическое ожидание которого равно Е (g/(*°, 20), ..., (^Л, г*)) = PV/O (х*) + г\ где Р — некоторое положительное число; rk — ограниченный случайный вектор ошибки, измеримый относительно а-подалгебры, индуцированной величинами (я0, г°), ..., (xk, zk). VIII. Вычислить вектор IX. Вычислить шаговые множители p^+i и уи+и удовлетворяющие условиям теоремы 6. X. Положить k = k + 1 и перейти к шагу III. Теорема 6. Пусть выполнены предположения 6 и, кроме того, имеют место условия: (i) — градиент функции /0 удовлетворяет условию Липшица 312
(ii) — для задачи 6 выполнено условие Слейтера; (ш) — константа а такова, что xk, k = О, 1, ..., принадлежит допустимой области X; (iv) — шаговые множители pk и ykf измеримые относительно о-подалгебры 3$ky индуцированной семейством случайных величин (я0, г°, ..., xk, zk) таковы, что для некоторых чисел ^ п. н; Тогда последовательность {xk}kLo> порожденная алгоритмом 6, такова, что {/0 (xk)}kU сходится почти наверное к fib min /0 (х). 7. Методы возможных направлений для отыскания точек локальных минимумов невыпуклой функции на невыпуклом множестве Задача 7. Найти arg min /0 (х) для заданной функции /0 : Rn -> R1 и заданного множества Предположения 7. (i) — функции ft (x), i = 0, 1, ..., т — непрерывно дифференцируемы; (и) — inf /0 (л:) > — сю. х?Х На каждой итерации приводимого здесь алгоритма решается (приближенно) некоторая вспомогательная задача выпуклого программирования (которая может быть заменена задачей линейного программирования). Бесконечная последовательность приближений {#Л}!?=о сходится к множеству стационарных точек задачи 7, содержащему точки, в которых выполняются необходимые условия локального минимума. Алгоритм 7 Начало. I. Выбрать произвольное начальное приближение х°?Х. II. Выбрать величину е0 из полуинтервала @, 1]. III. Положить k = 0. Основной цикл. IV. Вычислить множество индексов ^ (**. Ч) = {/10 < // (**) < efcl / g [1 : т]}9 и положить fJ = 3 (xk, efe). V. Решая вспомогательную задачу, найти max a E.40) <Л.а) 313
при ограничениях ( — (VM**), Л) + а < 0; E.41) (Л, Л)<1, вычислить допустимые значения ак и ft*, || ft* || = 1, такие, что где 0<|^|Л^1; <эг(х*, efe), ft(*fe, еЛ) — точные решения вспомогательной задачи E.40) — E.41). VI. Если ok ^ еЛ, то перейти к шагу VII, если ak = 0, то перейти к шагу X; иначе (если 0 < ok < efe) положить д.л+1 = я*. 8А+1 = YA; ^ = ft + 1 f где 0 < Тл ^ У < 1! и перейти к шагу IV. VII. Решая задачу одномерной минимизации функции fo(xk — — phk) на отрезке [0, ?fe], вычислить величину рЛ, удовлетворяющую условиям = inf где ?Л — длина наибольшего отрезка [л:*, л:^ — С*Л*Ь принадлежащего множеству X. VIII. Вычислить следующее приближение xk+l = xk — pkhk. IX. Положить e*+i = гкУ k = k + 1 и перейти к шагу IV. X. Вычислить множество индексов и положить 3 = 3 (xk, 0). XI. Найти величину a (**, 0) — решение вспомогательной задачи E.40) — E.41). XII. Если a (xk, 0) = 0, то положить х*= хк и прекратить вычисления; иначе перейти к шагу XIII. XIII. Положить xk+l = xk; e*+1 = ykekf где 0 < yk ^ v < 1; ft = ft + 1 и перейти к шагу IV. Теорема 7. Если выполняются предполооюения 7 и (Ш) — функции fi (x), i = 0, 1, ...,т, принадлежат классу С1'1 (X) (если г|з (х) ? ? С1*1 (X)? то существует число a > 0 такое, что для любого отрезка U, у], целиком принадлежащего множеству X, будет I V г|5 (х) — V г|? (у) К а || л: — у Ц); (ii?) — существует такое число б > 0, wno || V // (*) || < б 5ля всех х б X, / = 1, ..., т; (г) — множество 314
непусто (здесь а (х*, 0) — решение вспомогательной задачи E.40) — E.41) при xk= x*$ t/ = tf (л:*, 0), где (г?) —последовательность xk, k = 0, 1, ..., порожденная алгоритмом 7, компактна, то в случае бесконечной последовательности xkf k = 0, 1, ..., справедливо предельное соотношение lim inf I** — е Замечание 7. Если во вспомогательной задаче E.40) — E.41) вместо ограничения (Л, Л) ^ 1 поставить ограничение max I Л/ К 1 E.42) (таким образом вспомогательная задача становится задачей линейного программирования), то для такого алгоритма теорема 7 остается в силе. Библиографические указания. Пункт 1 написан на основании работ [285, 563, 172,574,175], пункты 2,3 — на основании работ [320,285]. При написании пункта 4 использовалась работа [517], пункты 5 и 6 основаны на работах [95, 14], пункт 7 написан на основании работ [37, 8, 188, 189,167, 572]. В работе [447] изучается обобщенный алгоритм возможных направлений, объединяющий известные алгоритмы Зойтендейка и Э. Полака. В работе [505] разработана общая теория сходимости алгоритмов, использующих е-параметр, для устранения зигзагоподобного движения в методах возможных направлений. ; 5.8. Методы центров Задача 0. Найти arg min /0 (*) Для заданной функции /о: /Г ->- R1 и заданного множества Предположения 0. (i) — функции fff / = 0, 1, ..., т — непрерывно дифференцируемы; (Н) — существует такая точка х° ? X, что множество компактно и имеет внутренность. Методы центров по своей идее тесно связаны как с методами штрафных функций, так и с методами возможных направлений — их можно трактовать как не содержащие параметров барьерные методы, основанные на внутренних штрафных функциях, или как не содержащие параметров методы возможных направлений. В методах центров по заданной точке xk строится следующая точка xk+l в «центре» множества X' (xk)f т. е. в некотором множестве точек, наиболее «удаленных» от границы множества Х! (xk). В качестве функции расстояния между точками х и х' можно взять 315
функцию d (*', х) = max {/0 (л:') - f0 (x)\ ff {x'\ j = 1, ..., m). E.43) Другие способы выбора функции расстояния можно найти в [442, 497, 564]. Следующая точка /+! вычисляется из условия d(xk+\ xk) = min {d{x, xk)\x?Rn). E.44) X Таким образом, как и методы штрафных функций, методы центров разбивают решение задачи 0 на последовательность задач минимизации без ограничений. 1. Основной вариант Алгоритм 1 Начало. I. Найти точку л* ? Х9 удовлетворяющую условию (И) предположения 0. II. Положить k = 0. Основной цикл. III. Найти такую точку х1 ? /Г, что d (л:1, хк) = min d (х, xk). E.45) X IV. Если d (x1, xk) = 0, то положить #*== хк и прекратить вычисления; иначе перейти к шагу V. V. Положить лс*+1 = л:1, fe = HI и перейти к шагу III. Теорема 1. Пусть выполнены предположения 0 и пусть, кроме того, (Hi) — множество X имеет внутренность и ее замыкание еовпадает в X, т. е. int X = X; (iv) — // (х) < 0 для всех х ? (j int X, / = 1, m. Если построенная алгоритмом 1 последовательность {jt*}J?=o бесконечна, то она имеет предельные точки и все они оптимальны для задачи 0, а если последовательность [xk] конечна, то ее последний элемент также оптимален для задачи 0. На практике было обнаружено, что алгоритм 1 — неэффективный в основном из-за трудностей вычисления точки х1, определяемой согласно E.45), которые требуют очень больших затрат времени. Это привело к необходимости разработки методов, которые прерывали бы отыскание точки я1, когда уже найдена точка х'\ являющаяся «е-центром», где е выбирается по возможности малым. Опишем модифицированный метод, прерывающий поиск центра х1 множества X1 (xk) после единственной итерации процедуры поиска. 2. Модифицированный метод центров Алгоритм 2 Начало. I. Найти точку л? ? X, для которой выполнено условие (м) предположения 0. II. Положить k = 0. 346
Основной цикл. III. Положить х = xk. IV. Вычислить решение h0 = h0 (x), h = h (x) задачи линейного программирования: найти min h0 E.46) при ограничениях ; E.47) — Ао + // (*) + (V// (*), Л) < 0, / = 1, ..., /п; E.48) | ht |< 1, I = 1, . . . , П, (Л = (Йх, . . . , AJ)- E.49) V. Если h0 (х) = 0, то положить х*= xk и прекратить вычисления (если х*— оптимальное решение задачи 0, то fto (*•) Л min (max {(/0 (**), Л); /, (х*) + ftg5 где 5Д{леяя||л||<1, f = i, ..., я}). иначе перейти к шагу VI. VI. Вычислить наименьшее положительное значение |л (х), удовлетворяющее условию d(x+\i(x)h (х), х) = min d (x + \ih (x), x)> E.50) где d(-, •) определяется формулой E.43). VII. Положить /+1 ~ х + [I (x) h (x), k = k + 1 и перейти к шагу III. Замечание 2. Вектор ft (я), вычисляемый на шаге IV алгоритма 2, неоднозначно определяется из решения задачи E.46) — E.49), поскольку решение задачи линейного программирования может не быть единственным. Считается, что h (x) — это любой вектор, являющийся оптимальным решением задачи E.46) — E.49); его можно получить методами, описанными в гл. 4. Замечание 2\ Точку #° ? X, т. е. начальное приближение на шаге I алгоритма 2 можно вычислить, применяя алгоритм 2 к следующей задаче (в пространстве векторов (х0, х)): min {xo\ff(x) — хо<0, /=1, ...,/п}, (хоа) причем в качестве допустимого начального решения для этой задачи можно взять 7° Д (л:о, х?) ? Rn+\ где точка х° ? Rп — произвольная и хо = max {/у (х0), /? {1, ..., т}}. Найдется такое конечное целое число /, что х1 = D, х1) будет удовлетворять условиям x1q < 0, х ? X. Тогда положить х° = х1 и перейти к решению задачи 0 с помощью алгоритма 2 317
Теорема 2. Пусть выполнены предположения 0. Тогда последовательность *°, *\ ..., построенная алгоритмом 2, либо конечна и ее последний элемент х* = xk удовлетворяет условию h0 (х*) = 0, либо бесконечна и каждая ее предельная точка х* удовлетворяет условию К (х*) = О. 3. Реализация модифицированного метода центров с использованием метода золотого сечения Рассмотрим, как заменить принципиальную операцию E.50) в алгоритме 2 другой, которую можно было бы реализовать на цифровой ЭВМ. Простейший — это случай, когда все функции //(•)» / = 0, 1, ..., т — выпуклы. Легко видеть, что в этом случае функция d(«, х), определяемая согласно E.43) при х?Х, также выпуклая. Алгоритм 3 Начало. I. Выбрать числа е0 > 0, р > 1 и rj > 1 (обычно TJ = 2). II. Вычислить начальное приближение х° ? X. III. Положить k = 0. Основной цикл. IV. Положить х = xk. V. Решить задачу линейного программирования E.46) — E.49) и получить (п + 1)-мерный вектор (h0 (#), h (х)). VI. Если h0 (х) = 0, то положить л^+1 = xk и прекратить вычисления; иначе перейти к шагу VII. Примечание. Следующие далее шаги VII—X заменяют шар VI алгоритма 2 при вычислении величины ц (*)• VII. Для X ^ 0 положить , х). E.51) ^ VIII. Положить е( = в0 и i = 0. IX. Использовать для вычисления \i алгоритм поиска минимума одномерной функции по методу золотого сечения (см. § 2.4, алгоритм 2Б), где 0 (•) определяется равенством E.51), р определяется на шаге I и е = е*. _ X. Если d (х + \ih (х), х) ^ —zh то положить \i (х) == [i и перейти к шагу XI; иначе положить е*+1 = е^/ц, i = i + 1 и перейти к шагу IX. XI. Положить xk+l = х + у, (х) h (x), k == k + 1 и перейти к шагу IV. Теорема 3. Пусть выполнены предположения 0 и пусть функции fi(*)t / = 0, 1, ..., т — выпуклы. Тогда последовательность х°, #\ ..., построенная алгоритмом 3, либо конечна и ее последний элемент xk+l = xk удовлетворяет условию h0 (xk) = 0, либо бесконечна и тогда каждая ее предельная точка х* удовлетворяет условию Ло (х*) = 0. Замечание 3. Можно построить другие реализации алгоритма 2t 318
ваменяя операцию E.50) на шаге VI любым алгоритмом поиска минимума (или стационарной точки) действительной функции одной переменной. 4. Реализация модифицированного метода центров с использованием функций прерывания На практике алгоритмы изложенного ниже типа эффективны в ситуации, когда они по существу решают много раз одну и ту же задачу. В этом случае следует предварительно потратить определенное время на тщательный подбор «функции прерывания», которая будет использоваться, и попытаться получить алгоритм, действующий быстрее, чем алгоритм 3 с е-процедурой. Определение 4. Пусть N = {0, 1, 2, ...}. Будем называть функцию t: N -> N функцией прерывания, если для каждого i ? N найдется такое число V ? N, что / (k) > i при всех k > i'. Алгоритм 4 Начало. I. Вычислить начальное приближение /^Х и положить k = 0. II. Выбрать функции прерывания tx (•), t2 (•). Основной цикл. III. Положить х = xk9 i = tx (k). IV. Решить задачу линейного программирования E.46) — E.49) и получить п + 1-мерный вектор (Ло (*), h (*)). V. Если h0 (х) = 0, то положить xk+l = xk и прекратить вычисления; иначе перейти к шагу VI. VI. Положить 8 ((л) = d (x + \ah (*), л:) и использовать для вычисления (л алгоритм 4' — модификацию алгоритма поиска минимума одномерной функции по методу золотого сечения. VII. Если /0 (х + \ih (х)) < /0 (я), то положить а^+1 = х + + иЛ (х)9 k = k + 1 и перейти к шагу III; иначе положить /+1 = = xk, i = t2 (&), k = k 4-  и перейти к шагу VI. Алгоритм 4' (модификация алгоритма поиска по методу золотого сечения) I. Выбрать р > 0, вычислить дроби Фибоначчи F± = C - К5)/2, F2 = (V5 - II. Вычислить 6 @), 9 (р). III. Если 0 (р) > 0 @), то положить а0 = 0, b0 = p и перейти к шагу VIII; иначе перейти к шагу IV. IV. Положить I == 0 и |и0 = 0. V. ПОЛОЖИТЬ fl/4-i = |4j + p. VI. Вычислить 0 (pi/+i). VII. ЕСЛИ^ 0 (|Ll/+1) ^s 0 (|1,)э ТО ПОЛОЖИТЬ Oq = fi/«i, Ьо = «= |i/+i и перейти к шагу VIII; иначе положить / = / + 1 и перейти к шагу V. Примечание. Теперь минимизирующая точка лежит в [а0, Ьо]. VIII. Положить / == 0. 319
IX. Положить Vj = ai + Fx (bf — af), wf = af + F2 (bf — aj). X. Если 0 (vj) < 9 (Wj), то положить a/+i = a,, fe/+i = wt и перейти к шагу XI; иначе положить а1+[ = vh bi+{ = bf и перейти к шагу XI. XI. Если / <j, то положить / = / + 1 и перейти к шагу IX; иначе положить [д, = (af+ bj)l2 и прекратить вычисления. Теорема 4. Пусть выполнены предположения 0 и пусть функции fj (•)> / = 0» 1» .••> т — выпуклы. Тогда последовательность х°, х1,... ..., построенная алгоритмом 4, либо конечна и ее последний элемент xk+1 = xk удовлетворяет условию h0 (xh) = 0, либо бесконечна и тогда каждая ее предельная точка х* удовлетворяет условию К (**) = 0. Библиографические указания. Пункты 1, 2 написаны на основании работ [285, 496, 497], пункты 3, 4 — на основании работы [285]. 5.9. Методы чебышевских центров Задача 0. Найти arg max /0 (я) для заданной функции х?Х /0: Rn -> R1 и заданного выпуклого множества Предположение 0. Функция /0 — вогнутая. I. Метод чебышевских центров В методе чебышевских центров каждое последующее приближение xk+l находят решением специальной задачи линейного программирования. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение II. Положить k = 1. Основной цикл. III. Вычислить обобщенный градиент Vf0 (xk) и положить am+k = V/o (**), <Xm+1 = (V/o (Xk), Xk). IV. Вычислить точку xk+l ? X, удовлетворяющую условию max min {{a\ x) — at) == min ((a\ xk+l) — at). V. Положить k = k + 1 и перейти к шагу III. Теорема 1. Если выполняется предположение 0 и функция^ II V /о (х) || ограничена на X, то последовательность {xk)kLu порожденная алгоритмом 1, такова, что каждая предельная точка ее монотонной подпоследовательности {xtybLi относительно функции /0 (л:) является решением задачи 0. 320
2. Модифицированный метод чебышевских центров В модифицированном методе чебышевских центров на каждой итерации производится выбрасывание лишних ограничений, при этом на каждой итерации требуется решать задачу максимизации суммы кусочно линейной и квадратичной функций. Алгоритм 2 Н а ч а ло. I. Выбрать произвольное начальное приближение хг?Х. И. Положить Qi = {m + 1}. III. Положить k = 1. Основной цикл. IV. Вычислить обобщенный градиент V /0 (xk) и положить = V/o {х% am+k = (V/o (**), xk). V. Вычислить точку xk+l ? X, удовлетворяющую условию max min ; (а1, х) — аь Т —^ (л:, х)) = х?Х i?Qk \ l У k I = min f(a VI. Положить v, = min ((a', *W) _ a, - 4 -^ VII. Найти минимальное подмножество Gk множества Qk, т. е. такое, что ™ ((а', х) - а, - 4-рГ Я)" ^ " 5 ТГ(*' VIII. Положить Qk+\ = Qk U {/и + fe + 1}. IX. Положить k = k + 1 и перейти к шагу IV. Теорема 2. Если выполняется предположение 0 и функция II V /о (х) || ограничена на X, то последовательность {хк}ь=\, порожденная алгоритмом 2, такова, что ее монотонная подпоследовательность {j/*}?Li относительно функции /0 (х) бесконечна и каждая предельная точка х* является решением задачи 0. Кроме того, Библиографические указания. При написании параграфа использовались работы [308, 309]. Дополнительные сведения о методах чебышевских центров можно найти в работах [307, 46]. 11 3-341 321
5.10. Методы типа Ньютона 1. Метод типа Ньютона с регулировкой шага Задача 1. Найти arg min fQ (х) для заданной функции f01 Rn-> R1 и заданного выпуклого компактного множества X cz ей". Предположение 1. Функция /0— дважды непрерывно дифференцируема на выпуклом компактном множестве X. Алгоритм 1 Начало. I. Задать начальное приближение х? ? X. IL Выбрать константы е ? @, 1), р ? @, 1) (рекомендуется е = V2, p - 0,8). III. Положить k = 0. Основной цикл. IV. Положить х = xk. V. Вычислить матрицу вторых производных VL /о (*) и гРа* диент V/o W- VI. Вычислить точку ук, обеспечивающую минимум квадратичной функции tyk(y) на множестве X, где % (у) A (V/o (х), у - х) + \ (VL/o W (У — х), у — х). E.52) Еоли % (#*) « 0, то прекратить вычисления (в этом случае ук~ решение задачи I); иначе перейти к шагу VII. VII. Положить hk «я yk — х. VIII. Положить pk = 1. IX. Если выполняется неравенство /о (* + Р*й*) — /о (*) < epfc% (r/ft), E.53) то перейти к шагу XI; иначе перейти к шагу X. X. Положить pa = Ppft и перейти к шагу IX. XI. Положить xk+{ = х + pkhkyk = k + 1 и перейти к шагу IV. Теорема 1. Если минимизируемая функция /0 выпукла и дважды непрерывно дифференцируема на выпуклом компактном множестве Х9 то для бесконечной последовательности {xk}kLo, порожденной алгоритмом 1, выполняются условия: а) {/o(*fe)}?Lo монотонно убывает} б) Hm/o(**)-min/o(*). Еоли, кроме того, E.54) mo последовательность {xk}kLo сходится к решению задачи 1 со сверхлинейной скоростью, т. е. E-55) где lt vjt < оо, ^+/ < 1 /i/w ^/обол^ i > 0, ^; -> 0 при j -+ оо. 322
Теорема Г. Если выполняется условие E.54) и матрица VL/o (x) на выпуклом компактном множестве X удовлетворяет условию Липшица с константой у, т. е. l|vL/oW-vL/o(y)ll<Tll^-y||, v*. у?Х9 y<oo, то бесконечная последовательность {xk}kL0, порожденная алгоритмом 1, сходится к решению х* задачи 1 с квадратичной скоростью, т. е. I **+* — *¦ К v*P?f V2<oo, /<оо, р/<1. Приводимый ниже алгоритм является принципиальной схемой для алгоритма 1. Алгоритм Г I—VII. Шаги I—VII такие, как и в алгоритме 1. VIII. Вычислить число p/j ? [О, U, удовлетворяющее условию Рб[0,1] IX. Положить xk+l = х + pkhkt fe = fe+l и перейти к шагу IV. Теорема Г. Если выполняется условие E.54) и множество X — выпуклый компакт, то бесконечная последовательность {xk}kLo, порожденная алгоритмом Г, сходится к решению задачи 1 со сверхлинейной скоростью, т. е. имеет место оценка E.55), причем pk -> 1 при k -> оо. 2. Метод типа Ньютона при наличии возмущений Задача 2. Найти arg min f0 (x) для заданной функции /0 : Rn -> R1 и заданного множества X. Предположения 2. (i) — множество X — замкнутое и выпуклое; (И) — функция /о (х) дважды непрерывно дифференцируема на множестве X. На k-й итерации алгоритма 2 функция /0 (х) — f0 (xk) в точке xk аппроксимируется квадратичным функционалом fk {х) в ^_ {Ak {х _ xk)i x^xk) + {hk9 x _ Xk)t E#56) где Ak — приближение для VL/O (xk)\ hk — приближение для Wo {xk)\ в качестве xk+l выбирается точка, для которой приближенно выполняется условие минимума /* (х) на множестве X для всех х ? X. Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение 11* 323
II Положить k =*= 0. Основной цикл. III. Вычислить матрицу Ak—приближение для VL /о (**)• IV. Вычислить вектор hk — приближение для V/o (xk). V. Вычислить точку /+1 ? X, для которой выполняется неравенство Л» для всех х ? X. Вычисление точки xk+i сводится к нахождению приближенного минимума квадратичного функционала E.56) на множестве X. VI. Положить k = k + 1 и перейти к шагу III. Теорема 2. Пусть выполняются предположения 2 и (Hi) — матрица вторых производных VL /о (*) удовлетворяет условию Липши- ца с константой у в области о{|||| (Щ- (vlxhWy, у)>щ\у?, щ>о. Тогда: 1) если выполняются условия (V)- L Ш ~ W- V/o (хк) | < с21 *» - Ок<Сз1хк — хк+11 tn1>ci, ci (viu)- /по существует точка минимума х* ? Хо и последовательность о, порожденная алгоритмом 2, такова, что 2) если выполняются условия *| f 1 х (xi'd) — q& (с4 + т/2) 1 х1 -х°\/(щ - с,||х1 -*• |)< 1; (а;/») — 324
то существует точка минимума х* ? Хо и последовательность o, порожденная алгоритмом 2, такова, что еде 3. Квазиньютоновские методы Задача 3. Найти arg min /0 (л:) для заданной функции х?Х /0 : Rn -> Д1 и множества |/,(*)<0, *'= 1, ..., m, где ft : Я" ->• Л1, I = 1, ..., т — заданные функции. Предположения 3. Функции fj(x), / = 0, 1, ..., т — дважды дифференцируемые в Rn. На k-к итерации алгоритма требуется вычислять матрицу, близкую к матрице вторых производных по х, функции Лагранжа задачи 3 (в частности, можно использовать конечно-разностную аппроксимацию гессиана по х функции Лагранжа). Следующее (k + + 1)-е приближение (xk+\ uh+x) по основным и двойственным переменным задачи 3 находится как решение некоторой вспомогательной задачи квадратичного программирования. Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение (х0, и0) ? Rn X Яш. II. Положить k = 0. Основной цикл. III. Вычислить матрицу G (xk> uk)9 удовлетворяющую условиям теоремы 3. IV. Найти точку Куна — Таккера (хш, uk+l), решая следующую задачу квадратичного программирования! найти argminf(V/0(**), x — xk) + -^{х — х\ G (**, uk) (x — **))! E.57) при ограничениях fi(xk) + (Vft(xk), *-**)<0, i=l, ..., т. Если решение задачи E.57) не единственное, то в качестве (х , uk+l) выбрать точку, ближайшую к (xk, uk). V. Положить k = k + 1 и перейти к шагу III. Теорема 3. Пусть (i) — (*, "и) — точка Куна — Таккера, удов- летворяющая достаточным условиям второго порядка для задачи 3 (точка (я, и) из К1 х Rm удовлетворяет достаточным условиям 325
второго порядка, если она удовлетворяет условиям Куна — Такке- ра первого порядка и если VL ф (я, и) у ? В", удовлетворяющего условиям у ра первого порядка и если VL ф (я, и) у > 0 для каждого ненулевого где VL ф (л:, а) — матрица вторых производных по х функции Ла- гранжа т Ф (*> И) = /о (*) + S Uifi (*)» « в (%» • • • . Wm)» вычисленная в точке (х, а))^ а также условию строгой дополняющей нежесткости и условию ли- нейной независимости градиентов активных ограничений (точка (л;, и) удовлетворяет условию строгой дополняющей нежесткости, если й/ > 0 или fi (х) < Одля} = 1,..., т)\ {И) — ff (*), / = О, 1,... ..., т, имеют вторые производные, непрерывные по Липшицу в от- крытой окрестности точки х; (Ш) — матрицы G (xk, uk) на шаге III алгоритма 3 удовлетворяют одному из условий: а) |G(*\ a*)-vLq>(*\ и*I< где /o (x) + V/ (ж) и\ / (х) = (f, (x) fm {x))t б) 1 | G (xk9 uk) — Vxxty (xk9 uk) 4VK E.58) ~p ^ У -* 0 при k -> oo в) G (д*, И*) = VL? (Xft, Ы*). E.59) Тогда существуют положительные числа бх и б2 такие, что если начальное приближение (х°, ы°) выбрать из условий 326
то последовательность {(xk, uk)}kLo существует и сходится к точке (х> и)\ 1) с линейной скоростью сходимости, т. е. существуют числа q ? (О, 1), а > О, F> О такие, что ||(х\ uk) — (x, u)\\^aqk для всех ?>?; 2) со сверхлинейной скоростью сходимости, т. е. для каждого сколь угодного малого q ? (О, 1) существуют а > О и k ^ О такие* что а*) — (х, tt)||<a<7* для всех при условии, что матрицы G (xk, uk), k = О, 1, ..., удовлетворяют E.58); 3) с квадратичной аюростью сходимости, т. е. существуют числа q 6 (О, 1), а > О, k > О такие, что ||(**, а*) — (х, а)||<aq%k для всех k^k при условии, что матрицы G (xk> uh), k = О, 1, ..., удовлетворяют E.59). Библиографические указания. Пункт 1 написан на основании работ [105, 106, 320, 222], пункт 2 — на основании работы [295], а пункт 3 — на основании работы [476]. Метод Ньютона изучался также в работах [440, 479, 16, 485, 556, 426J. 5.11. Методы линеаризации Методы линеаризации применяются для отыскания решения я* задачи минимизации нелинейной функции /0 (л:) при довольно общих ограничениях в виде равенств // (х) = 0, / = 1, ..., /п, и неравенств // (х) ^ 0, / = т + 1, ..., т + /¦ Решение #* определяется как предел строящейся последовательности #°, х\ ..., xk, xk+\ .... Улучшенное (k + l)-e приближение xk+l к решению х* определяется с помощью решения значительно более простой вспомогательной задачи минимизации функции /о № й (Wo (Xk), X) + -f 1X - Xk P E.60) при линейных ограничениях I (х) Д !; (xk) + (V/y (x% x-x")^ 8„ / е \. E.61) Вспомогательным множеством З^ выделяют только те из исходных ограничений, которые желательно удовлетворить на (k +, 1)-м приближении xh+l (например, те из ограничений, которые «наиболее нарушаются» на k-м приближении xk). Квадратичная дрбав- ка yWx —¦ xk |P гарантирует существование решения z (e, 8k) 327
вспомогательной задачи на непустом допустимом множестве. Улучшенное (k + l)-e приближение xk+l вычисляют по формуле Различные способы определения шаговых множителей pk и констант е, 6* определяют разные варианты методов линеаризации. 1. Ограничения типа неравенств Задача 1. Найти arg min /0 (х) для заданной функции х?Х f01 if -> Я1 и множества определенного заданными функциями /у i Rn -> Я1, / ? д. Предположения 1. (i) — функции //, / € {0} U 3 — непрерыв- но дифференцируемы; (и) — градиенты функций fh j ? {0} U ^ удовлетворяют условию Липшица Алгоритм 1 Начало. I. Выбрать произвольное приближение х° ? Яп. II. Выбрать достаточно большую константу а > 0 и константу б > 0, удовлетворяющие условиям теоремы 1 • III. Выбрать константу 0 < е < 1. IV. Положить k = 0. Основной цикл. V. Положить х в хк* VI. Найти множество индексов VII. Найти решение h = h (х) задачи квадратичного программирования! найти argmin/(V/0(*), й) + ~11^1Р) ПРИ ограничениях VIII. Если /i (x) = 0, то положить я*= л; и прекратить вычисления; иначе перейти к шагу IX. IX. Положить i = 0. X. Положить р* я (V2)'. XI. Если выполняется неравенство /о (х + 9kh (х)) + a max {0, /, (х + Pkh (x))} < \ъз < /о W + « max {0, /у (х)} - р4е 1 ft (^) f, 328
то перейти к шагу XII; иначе положить 1 = 1+1 и перейти к шагу X. XII. Вычислить следующее приближение XIII. Положить k = k + 1 и перейти к шагу V. Теорема 1. Если выполнены предположения 1 и существуют константы а > О и б > 0 такие, что (iv) — множество \ /0 (х) + a max /, (х) < f0 (*°) + а max /, (v) — задача квадратичного программирования — найти arg min /(V/o (*), h) + -j (Л, h)\ при ограничениях разрешима относительно h$Rn при любом х ? Ха и существу- ют такие множители Лагранжа Я/ (дс), / ? #б (л:), ^то S ^/ W ^ а» (°0 — существует такой индекс j ? t/, что функ? ция // (я) г 0, то бесконечная последовательность {} рожденная алгоритмом 1, обладает следующими свойствами: max /у (л;*) -* 0 при k -* оо; любая предельная точка х* последовательности {xk}Z=o принадлежит множеству X и в этой точке выполняются необходимые условия минимума функции /0 на множестве X. Алгоритм V Начало. I. Выбрать начальное приближение х° б Д". II. Выбрать константы б0 > 0 и р > О, III. Положить k = 0. Основной цикл. IV. Положить х = xk. V. Положить б = б0. VI. Найти множество индексов 36 (х) (шаг VI алгоритма 1). VII. Найти вектор h (x) (шаг VII алгоритма 1). VIII. Если h (х) = 0, то положить **= х и прекратить вычисления; иначе перейти к шагу IX. IX. Вычислить следующее приближение X. Положить k = k + 1 и перейти к шагу IV. Теорема Г. Пусть х*— решение задачи 1 и выполняются следующие условия: (i) — для любого достаточно малого 6 > 0 вспомогательная задача квадратичного программирования — найти arg min ({V/o (*), h) + -L[h f\ при ограничениях (V/yW, Л)+ //(*)< 0, /gSbW, 329
где 8'eW={/|//W>max//W-ef разрешима; (и) — функции fi — дважды непрерывно дифференцируемы и градиенты Vfj (л;*), / ? 2/0 (я*), где линейно независимы; (Ш) — в точке х* выполняются необходимые условия минимума в форме ^ X*Vff(x*) = O а )$ > Оу j ? 30 (л;*); (fi?) — выполняется достаточное условие локального минимума, т. е. фО и удовлетворяющих условию (ft, V/, (**)) = О, /6^в(П где вектор Х° состоит из компонент А,/, / g S^o (л:*). Тогда существуют такая окрестность V точки х* и константы $0 > 0, а > О, wrco бесконечная последовательность {#*}?=<), яо- рожденная алгоритмом Г, сходится к точке х* с любого начального приближения х° ? V с геометрической скоростью, т. е. существует такое число 0 ^ qx ^ 1, что всех достаточно больших значений k. * Теорема Г\ Бели выполнены все предположения теоремы V и, кроме того, число индексов в множестве 2/0 (х*) равно п (размерности пространства), то бесконечная последовательность {xk}kLo, no» рожденная алгоритмом Г при р = 1, сходится в некоторой окрестности точки х* с квадратичной скоростью, т. е. ** —**Г, р2<оо. 2. Ограничения типа равенств Задача 2. Найти arg min /0 (х) для заданной функции х?Х f0 : It -* Л1 и множества X, задаваемого соотношением * = {*!/,(*) = О, /=1, .... m, x?Rn}.
Предположение 2. Функции fh / = О, 1, ..., т — дважды непрерывно дифференцируемы. Алгоритм 2 Начало. I. Выбрать начальное приближение х° и числа A,/, i = 1, ..., т. II. Положить k = 0. Основной цикл. III. Если выполняются равенства = 0, i= 1, ..., m, то положить я* = xk и прекратить вычисления; иначе перейти к шагу IV. IV. Вычислить производную дф (xk, Xk)ldx функции Лагранжа по формуле \ %k)ldx = df0 (xk)/dx + S tfdft (xk)ldx. V. Вычислить матрицу вторых производных <Э2ф (л;^, №)/дх2 функции Лагранжа по формуле т 32ф (х\ №)/дх* = а2/0 (xk)/dx2 + S Я?д2/, (^)/(9х2. VI. Найти вектор Л* и числа б?, / = 1, ..., т, удовлетворяющие равенствам = 0, i = 1, ..., m. VII. Вычислить следующее приближение **+!=*** +A*. VIII. Вычислить IX. Положить )i = Hl и перейти к шагу III. Теорема 2. Пусть выполнено предположение 2, а также следу- ющие дополнительные предположения: (i) — вторые производные функций //, / = 0, 1, ..., т, удовлетворяют условию Липшица; (И) — в точке х*, которая является решением задачи 2, градиенты V // (**)* / = 1, .... m — линейно независимы, так что существуют множители Лагранжа Я*, i == 1, ..., m, удовлетворяющие системе -0, /=1 /п; 331
у): (Hi) — выполняются условия локального минимума, /тс. е. |>0, если уфО\ = 1, ..., т9 здесь ф (х, %) = /0 (х) + S ^/// W) • Тогда, если начальное приближение х° и числа Xt, i = 1, ..., m, достаточно близки к х* и k*i, i = 1, ..., яг, соответственно, то последовательность [xk\ %kt, i = 1, ..., /п}?1о, порожденная алгоритмом 2, сходится к (#*; Я*, / = 1, ,.., т) с квадратичной скоростью. 3. Ограничения смешанного типа Задача 3. Найти arg min /0 (#) для заданной функции /0 : hn -+• R1 и множества где Y — заданное выпуклое замкнутое множество; fj:Rn-+ R1 (/ ? Щ — заданные непрерывные функции. Предположение 3. (/) — функции fh j g 3 (J {0} — непрерывно дифференцируемы. Алгоритм 3 Все шаги, за исключением I и VII, такие, как и в алгоритма 1. Шаг I в алгоритме 1 заменить на Г. Г. Выбрать начальное приближение х° ? Y. Шаг VII в алгоритме 1 заменить на VIГ. VII'. Найти решение h = h (х) задачи квадратичного программирования: найти arg min ((V/0(*)t ft) + —|Л|р] при ограничениях (V/,(*)f Л)+ /,(*)<0f /€#*(*), x + hGY. Теорема 3. Если выполнены предположения 3 и существуют такие константы 8 > 0 и а > 0, что: (Hi) — множество Х«={х\ /0 (х) + a max /, (х) < /0 (*°) + a max /, (х°), х ? Г}, ограничено; (iv) — градиенты функций //, / б ^ U {0}, в Ха летворяют условию Липшица, т. е. (г) — задача квадратичного программирования найти arg min ((V/o (x), /i) + -j-1| A f j E.62) 332
при ограничениях (W/W. А) + М*)<0, /€#*(*), * + ft€^, E.63) разрешима относительно h при любых х ? Ха и существуют такие множители Лагранжа Xf (*), / ? 2f& (x), что (vi) — среди функций //, / ? §^, имеется функция f h равная тождественно нулю (fj(x)z=sQ), то любая предельная точка бесконечной последовательности {xk}Z=o, порожденной алгоритмом 3, принадлежит множеству X и в этой точке выполняются необходимые условия минимума функции /0 на множестве X и, кроме того, справедливо max/,(**)-> О при &-*оо, /е (Множители Лагранжа для задачи E.62) — E.63) — это такие неотрицательные числа, которые удовлетворяют неравенству (х), h (x)) +1| h (x) P + J %f (x) [(V/, (x)9 h (x)) + f, (x)] < (x), h) + (h (x), h) + 2 X, (x) [(V/, (*), ft) + /, (x)] для всех hy удовлетворяющих условию х + h?Y и равенствам h (x) [(V/y W, ft (x)) + /y (x)] = 0, /6 96 (x)). 4. Метод линеаризации, практически реализуемый на ЭВМ Задача 4. Найти arg min /0 (х) для заданной функции х?Х /0 : Rn ->• Л1 и множества л} П { определенного с помощью заданных непрерывно дифференцируемых функций //: Л" -^ Л1. Данный алгоритм не требует априорного знания констант а и б, обеспечивающих сходимость алгоритма. Эти константы вычисляются в процессе счета. Для реализации данного алгоритма требуется эффективная стандартная подпрограмма решения задачи квадратичного программирования. Алгоритм 4 Начало. I. Выбрать произвольное начальное приближение 333
II. Выбрать константы бо> 0, 0 < е < 1, а0 (а0— достаточно большое число). III. Положить k = 0. Основной цикл. IV. Положить б = 8k, х = xk> а = = ak- V. Вычислить г|>(*)-тах{0, М*), ..., fm(x)9 VI. Найти множество индексов VJI. Если задача квадратичного программирования найти argminиV/o(л:), h) +-^-\\к\А при ограничениях (V/,W. Л)+ /, совместна, то найти ее решение h = AA, множители Лагранжа А,/, / € ^Г (х) U ^б W и перейти к шагу IX; иначе перейти к шагу VIII. VIII. Положить я**1 = х, a*+i = а, б^+i = 8/2 и перейти к шагу XVI. IX. Положить s = 0. X. Вычислить pk == (V2)s. XI. Если выполняется неравенство /о (х + pkhk) + аг|) (х + Pkhk) < /0 (х) + аф (я) - ерл | Л* |2, то перейти к шагу XII; иначе положить s = s + 1 и перейти к шагу X. XII. Вычислить следующее приближение x*+i = х + pkhk. XIII. Положить 8*+i = 6. XIV. Если выполняется неравенство то положить ал+i = а и перейти к шагу XVI; иначе перейти к шагу XV. XV. Вычислить XVI. Положить А = Л + 1 и перейти к шагу IV. Для алгоритма 4 справедливы теоремы сходимости, аналогичные теоремам пункта 1. Отметим, что начиная с некоторого значения к, величины аь и 8k не будут меняться. 334
5. Аналог метода линеаризации в детерминированных задачах минимизации почти дифференцируемых функций 3 а д а ч а 5. Найти arg min /0 (х) для заданной функции fo:Rn->Rl и заданного множества X a Rn. Предположения 5. (i) — функция /0 — почти дифференцируема; (и) — X — выпуклое, ограниченное и замкнутое множество, образованное неравенствами //(*)< 0, /=1 т, где // : Rn -+ R1 — выпуклые функции. Данные методы используют общую идею метода линеаризации и основаны на понятии почти градиента минимизируемой функции. Алгоритм 5 Начало. I. Выбрать: начальное приближение х° ? Х9 начальное значение г° б Rn, начальное значение шаговых множителей р0, а0 и величину смещения 80, удовлетворяющие условиям теоремы 5. II. Положить k = 0. Основной цикл. III. Вычислить xkt9 I = 1, ..., п — независимые случайные величины, равномерно распределенные на отрезках \vk _ A v* J- -^-1 I — 1 П I 2 ' * 2 ' ~~" * * * *э IV. Вычислить вектор — / о (-^1 > • • •» ^ J"' • • •» ^я 11 ^» где ^, it = 1, ..., л — 1-й орт. V. Вычислить вектор yk ^ X, удовлетворяющий условию (г*, t/*) VI." Вычислить вектор VII. Вычислить вектор г^'-^ + а^в^, А) —2Л). VIII. Найти $начения шаговых множителей рч+и a*+i и значение смещения 6а+ь удовлетворяющие условиям теоремы 5. ~ IX. Положить k -4+1 н перейти к шагу III. 336
Теорема 5. Пусть выполнены предположения 5 и, кроме тогог имеют место условия 0<р*< 1 и 6k>0 при Л = 0, 1, ...; 00 2 Рл = оо. Р*/«А -^ 0 яри & -> оо; <oo, f a|<oo; • 0, 6fe->0 л/ш &->oo. с вероятностью 1 предельные точки последовательности порожденной алгоритмом 5, принадлежат множеству X* решений задачи 5 и последовательность {/0 (**)}ILo почти наверное сходится. Замечание 5. Если существует конструктивный способ вычисления почти градиента функции /0 в^каждой точке я, то на шаге IV алгоритма 5 следует вычислить g (xk) — почти градиент функции /о в точке xk, и на шаге VII вектор zk+x вычислять по формуле 6. Аналог метода линеаризации в стохастических задачах минимизации почти дифференцируемых функций Задача 6. Найти arg min EF0 (x, со) для заданной функции Fo : X X Q -> R1 и заданного множества X cz if" (EF0 (х, со) Д ^ ]F0 (л:, со) \i (dco); мера [х может быть неизвестной). Предположения 6. (i) — функция Fo (а:, со) в некоторой области Х'гэ X удовлетворяет по х условию Липшица с константой у (со); (й) — х — выпуклое, ограниченное и замкнутое м южество, образованное неравенствами где // ! Rn -> Д1, / = 1, ..., т — выпуклые функции. Алгоритм 6 Начало. I. Задать: начальные приближения х° ? X, z° ? ? В", начальные значения шаговых множителей рг @), р2 @) и величину смещения б0, удовлетворяющие условиям теоремы 6. II. Положить k = 0. _ Основной цикл. III. Вычислить #/, / = 1, ..., п — независимые случайные величины, равномерно распределенные на отрезках ззв
IV. Вычислить вектор где со*— независимые по k наблюдения параметра (о, е' — i-й орт. V. Вычислить вектор yk ? X, удовлетворяющий условию (г*, /) VI. Вычислить вектор VII. Вычислить вектор **+'= г*+ р,(*)(?(**. А)-г*). VIII. Вычислить значения шаговых множителей рх (k + 1), р2 (? + 1) и смещение б^+ь удовлетворяющие условиям теоремы 6. IX. Положить k = к + 1 и перейти к шагу III. Теорема 6. Пусть выполнены предположения 6 и, кроме того, имеют место условия #2И при ft = 0, 1, ...; 00 S Pi (*) == °° > Pi (*)/р2 (й) ^ -> 0 я/ш /^ -> оо; с вероятностью 1 предельные точки последовательности {xk}h=o, порожденной алгоритмом 6, принадлежат множеству X* решений задачи 6 и последовательность {/0 (xk)}Z=o почти наверное сходится. 7. Стохастический метод линеаризации Задача 7. Найти arg min /0 (*), h:Rn-* R\ X a R\ xzx Предположения 7. (i) — функция /0 — непрерывно дифференцируемая; (it) — множество X a Rn — ограничено и замкнуто. Если множество X имеет не простой вид (например, X не является я-мерным параллелепипедом), то решение задачи 7 с использованием операции проектирования на область X требует эффективных способов решения задачи минимизации суммы квадратов при наличии ограничений, что не всегда возможно. 337
В стохастическом методе линеаризации обычная операция проектирования на множество X заменяется операцией (иногда более простой, чем проектирование) минимизации на X линейной функции (zky х)> определяемой некоторым вспомогательным вектором zk. Обозначим через Z выпуклое, ограниченное и замкнутое множество, для которого где X*— множество решений задачи 7. Алгоритм 7 Начало. I. Выбрать произвольные начальные точки х° ? € х и г° g z. II. Задать правила построения последовательностей шаговых множителей III. Положить k =*» 0. _ Основной цикл. IV. Вычислить вектор хк, удовлетворяющий условию (**, xk)=*mm{zk, х). qx V. Вычислить вектор VI. Найти случайный вектор ?*, условное математическое ожидание которого = V/o где Ьк— вектор, измеримый относительно а-алгебры, индуцированной величинами (*°, г°), ..., (xk, zk). Способы построения вектора |* приведены в примерах к § 5.28, VII. Вычислить вектор VIII. Положить k « k + 1 и перейти к шагу IV. Теорема 7. Пусть имеют место предположения 7 и пусть, кроме того, V/o (x) удовлетворяет локальному условию Липшица, Тогда, если вылолнены условия при ?->оо; |<° п. н; 338
то последовательность {xk}T=o, порожденная алгоритмом 7, такова, что {/0 (#*)}!Lo сходится л. н и каждая предельная точка {**}2Lo принадлежит множеству {| Библиографические указания. Пункты 1, 2, 3, 4 написаны на основании работ [320, 315, 293], пункты 5, 6 — на результатах работы [155], пункт 7 — на основании работ [153, 99, 214]. 5.12. Методы линеаризации в предельных экстремальных задачах 1. Детерминированный случай Задача 1. Найти argmin/0 (х), где/0 (х) Д lim /о (х); /о: Rn -> -> i?1, k = 0, 1, ... — заданные функции, X а Нп. Предположения L (i) — функции /о, k = 0, 1, ..., имеют непрерывные производные; (и) — X — выпуклое, ограниченное, замкнутое множество. Сущность метода состоит в том, что для минимизации функции /0 в &-й итерации используется вектор V/o (xk) — градиент функции /о, причем операция проектирования на множество X заменена задачей минимизации линейного функционала (V/o (я*), л:) пол: на множестве X. Особенность данного метода состоит в том, что сама минимизируемая функция /0 может и не иметь непрерывных производных. Определение 1. Множеством решений задачи 1 называется множество X*, элементы которого обладают следующим свойством: х* ? X*, если существует последовательность точек yk-*x* при k -> оо такая, что min (V/?, (yk), x — yk) -*- 0 при k -^ оо. х?Х Если функция /0 выпуклая вниз и последовательность выпуклых вниз функций /о удовлетворяет соотношению для каждой точки х ? X, то множество X*, определенное выше» состоит из точек минимума функции /0 (•). Алгоритм 1 Начало. I. Найти произвольную точку д:0, принадлежащую множеству X. II. Задать р0. III. Положить k = 0. Основной цикл. IV. Найти вектор lck ? X — решение задачи минимизации линейной функции (V/o (xk), x) на множестве 339
X, т. е, ), х). х?Х V. Вычислить вектор xk+\ = xk_Q ixk _ xk\ VI. Вычислить шаговый множитель р^+ь удовлетворяющий условиям теоремы 1. VII. Положить k == k + 1 и перейти к шагу IV, Теорема 1. Пусть выполнены предположения 1 и, кроме того, имеют место условия: (i) — последовательность функций /о, k =» = 0, 1, ..., сходится к функции /0 равномерно в области Х\ (Щ- где ах = const, ok -> + 0 при k -> оо, # f X; (Ш)- где а2== const, АЛ ->¦ +0 при k -*• оо, д:, (/ ^ X. Тогда, если шаговые множители pk, k = 0, 1, ..., выбирать такими, что pk -^ + 0, (Xfc/pfc ->• 0, Р/г/ДЛ -> 0 /Z/7M & -> ОО и S Pfe = °°» т° каждая предельная точка последовательности {хк}7=о> порожденной алгоритмом 1, принадлежит множеству решений X* задачи 1 и последовательность {f0 (#*)}?=(> сходится. Теорема 1'. Пусть выполнены предположения 1, условия (i)> (И) теоремы 1 и, кроме того, имеют место условия: (V) — функция /0— непрерывно дифференцируема; (И') - где константы pfe, k = 0, 1, ..., ограничены в совокупности; х, у $ ex. Тогда, если шаговые множители pk, k = 0, 1, ..., выбирать такими, что р*-* + о, <Vp*-"*o при S рЛ 6=0 то каждая предельная точка последовательности {**}jfeLo, порожденной алгоритмом 1, принадлежит множеству решений X* задачи 1 и последовательность {f0 (xk))t=o сходится. 340
Замечание 1. Для выпуклых в ограниченной области X функций /о» /о, k = 0, 1, ..., теорема 1 и теорема Г остаются в силе и в том случае, когда последовательность функций /о (*) ->• /0 (х) при k ->¦ сх> поточечно. 2. Стохастический случай Задача 2. Найти , со) для заданной последовательности функций {F^^Lo, Fk : X X X Q -)- ff и заданного множества X с: Д". Предположения 2. (i) — функции /о (я) Д i?Ffe (л:, (о), А = О, 1, ...— непрерывно дифференцируемы; (Н) — X — выпуклое, ограниченное, замкнутое множество. Сущность метода заключается в том, что для минимизации функции /0 (х) Д lini /о (л:) на k-й итерации используются стохастические квазиградиенты функций /о, т. е. векторы %к9 условное математическое ожидание которых Е (»*) = V/0* (**) + ft\ где bk — векторы, измеримые относительно а-подалгебры 3$k (в частности, можно положить g*eV,F*(**, (о)). В данном методе операция проектирования на множество X заменена задачей минимизации линейной функции (zky х) по х ? X, где векторы zk «близки» к градиенту минимизируемой функции. Алгоритм 2 Начало. I. Найти л:0, z°— произвольные точки выпуклого, ограниченного, замкнутого множества X. II. Задать начальные значения шаговых множителей рг @) и Р2 @). III. Положить k = 0. Основной цикл. IV. Найти вектор xk € X — решение задачи минимизации линейной функции (zk, x) на множестве X, т. е. (zk9 xk) -¦= min (zk, x). x?X V. Вычислить вектор VI. Найти одну реализацию lk случайного вектора 1k, условное математическое ожидание которого Е (?/х\ 2°, ..., х\ zk) = V/o* (xk) + b\ 341
где случайный вектор Ьк предполагается измеримым относительно а-подалгебры, индуцированной величинами (л:0, г°, ..., xk, zk). VII. Найти вектор VIII. Найти шаговые множители рх (k + 1) и р2 (k + 1), удовлетворяющие условиям теоремы 2. IX. Положить k = k + 1 и перейти к шагу IV. Теорема 2. Пусть выполнены предположения 2 и, кроме того, имеют место условия: (i) — последовательность функций /о (х) сходится к функции /0 (х) равномерно в области X; Xi<oo, a,-> + 0 при А-> (ш)- V/*WV/*()|<|»|/A*. Х2<оо, х, у?Х; (iv) — для всех х?Х9 k = 0, 1, ..., п. н, * = 0, 1, .... где Х4 < оо. Тогда, если шаговые множители рг (k) и р2 (&) выбирать такими, что р,(*)-»- +О, S Pi(*) = «. /=1.2; оо, i p2(^)||bft»<~ п. н; mo |2*_ V/o (Xfe) |-^ О П. Н. Если дополнительно выполняется условие <VPi (Щ ~> 0 n/?« k -> оо, то последовательность {f0 (xk)} почти наверное сходится и каждая предельная тонка последовательности [xk (со)}, генерируемой алгоритмом 2, почти наверное принадлежит множеству X*, определенному согласно определению 1. Замечание 2. Если функция /0 (*) гладкая, то для справедливости теоремы 2 вместо условия (ш) достаточно потребовать выполнения условия где рй, k = 0, 1, ..., —ограниченные в совокупности константы. 342
Тогда надо выбирать рх (k) и р2 (k) такими, чтобы Pi (&)/р2 (&) ->- 0 при k -> оо. Если же, кроме того, lim V/o (х) = V/o (я) для каждого х g X, &-+-00 то теорема 2 справедлива и в том случае, когда ak и 6fe при & -> со стремятся к нулю произвольно, т. е. не требуется, чтобы VPa (k) -*- О и a^/pi (k) ->- 0 при fe ->¦ оо. Библиографические указания. При написании параграфа использовались работы [154, 97, 197]. • 5.13. Методы отсечения 1. Линейный случай Задача 1. Найти arg min (о, х) для заданного вектора с ?Х С Rn и множества определенного с помощью заданной выпуклой функции fx\ Rn-> Я1. Заметим, что более общая задача выпуклого программирования в пространстве Rn\ найти arg min /0 (х), где ?Х / /=1, ...,m}, /у, / = 0,1,..., т, — выпуклые функции, легко приводится к виду задачи 1 с помощью дополнительной координаты xn+i и неравенства /m+i (х, xn+i) 4 /о (*) — найти arg min xn+u где 'ft (x, xn+i)ufi (x) + 0 • *я+ь < - 1, -.., m. Предположение 1. Множество X — непустое компактное множество. Сущность метода отсекающей гиперплоскости заключается в решении задачи 1 путем решения последовательности специальных задач линейного программирования, полученных аппроксимацией множества ограничений X последовательностью многогранников Xh, k == 0, 1, ..., каждый из которых содержит X. max
Алгоритм 1 Начало. I. Выбрать целое число I > О, л-мерные векторы аТ i = —/, — (I — 1), ..., —1, 0 и числа р„ / = —Z, — (/ — 1),... ..., —1, 0, такие, что множество Х0Д{*|(а', *)-Р<<0, / — —/. .... О, х^Я"}, компактно и содержит X. II. Положить & = 0. Основной цикл. III. Найти решение х = хк задачи линейного программирования: найти arg min (с, х) при ограничениях (</, *)-р,<0, * = -/, -(/-1), ...,/5. E.64) IV. Если /х (xk) < 0, то положить л;* = дс* и прекратить вычисления; иначе перейти к шагу V. V. Вычислить опорный вектор аЛ+1 к функции fx (х) в точке хк. VI. Вычислить VII. Построить множество Х,+1 Л {х | (flHi х) - VIII. Положить Л = А + 1 'и перейти к шагу III. Замечание 1. На шаге III алгоритма 1 требуется решать задачу линейного программирования, число ограничений которой растет с увеличением к. Это требует большой оперативной памяти ЭВМ для хранения векторов alt i = —/, ..., k, и чисел pf, / = —/, ..., k. Для упрощения алгоритма на шаге III вместо задачи линейного программирования E.64) можно решать двойственную ей задачу» / k найти arg max — Yj и$ при ограничениях k Yi utal + с = 0, щ > 0, I = — /,..., k. i=—/ При решении этих двойственных задач симплекс-методом весьма существенно, что решение предыдущей задачи служит хорошим допустимым решением для последующей, так что их решение получают довольно быстро. Теорема 1. Если: (i) — /х (х) — выпуклая непрерьшная функция; (И) — множество X — непустое и компактное; (Ш) — существует такое число 8 < оо, что при каждом х ? Хо вектор а, опорный к fx (х) в точке х, удовлетворяет неравенству || а || ^ б, то любая предельная точка х* бесконечной последовательности {xk)k=^0y порожденной алгоритмом 1, является решением задачи 1 и /х (xk) -> 0 при k -*- оо. 344
2. Общий случай Задача 2. .Найти arg min /0 (х) для заданной выпуклой функ- ции /0 j Rn -> R1 и множества X, задаваемого соотношением где Д : Я" -* й1 — непрерывная выпуклая функция. Алгоритм 2 Начало. I. Выбрать выпуклое замкнутое множество Хо, содержащее X. II. Положить k = 0. Основной цикл. III. Решить задачу выпуклого программирования xk = arg min /0 (х). xqxk IV. Если fx (xk) ^ 0, то положить #*= xk и прекратить вычисления; иначе перейти к шагу V. V. Вычислить опорный вектор V ft (xk) функции fx в точке xk. VI. Построить множество Х,+1 ЛXk П {х|Л (х*) + (V/j (x*)f x-xfe)<0, x?Rn). VII. Положить k = k + I и перейти к шагу III. Множества Xk строят таким образом, чтобы решение этой задачи было проще, чем решение исходной задачи 2. Теорема 2. Если: (i) — /0 (л;) — разномерно выпуклая функция на множестве Хо; (И) — Хо — выпуклое и замкнутое множество; (Hi) — /х (#) — непрерывная выпуклая функция, удовлетворяющая условию Липшица на Хо, то для бесконечной последовательности {xk}kL0, порожденной алгоритмом 2, справедливо: 1) lim/0(x*)</0*Amin/0(*), ilm/^XO; 2) если, кроме того, f^x) — корректное ограничение и f0 (x) удовлетворяет условию Липшица на множестве Хо, то lim **«*•, х*?Х; /0 (;•) = /•; 3) если, кроме того, /0 (л;) — сильно выпуклая функция и существует внутренняя точка 7 множества Хо такова, что fx (x) < 0, то имеют место следующие оценки сходимости: xk — л:* < a2/Vk, a2 34S
3. Метод отсечения с растяжением пространства для решения задач выпуклого программирования Задача 3. Найти arg min f0 (x) для заданной функции Х?Х f0 : Д'г-> Д1 и заданного множества Предположения 3. (г) — функции fit i = 0, 1, ..., гп — непрерывны и выпуклы. Данный метод отсечения с растяжением пространства гарантирует уменьшение объема области,, в которой локализируется оптимум, со скоростью геометрической прогрессии, причем знаменатель прогрессии зависит лишь от размерности задачи. Этот алгоритм относится к классу алгоритмов обобщенного градиентного спуска с растяжением пространства в направлении градиента. Кроме того, его можно рассматривать как метод отсечения, в котором операция растяжения пространства используется для симметризации области, в которой локализован оптимум. Алгоритм 3 Начало. I. Выбрать начальное приближение х° ? Rn и число у > 0, удовлетворяющие условиям теоремы 3; положить ?0= / (/ — единичная матрица), а также Основной цикл. II. Вычислить вектор tgo{xk), если max 8 ~~ \gf (**)> если max ft (xk)й fa (xk) >0, где gt (xk), i = 0, 1, ..., m — субградиенты (обобщенные градиенты) функций ft> i = 0, 1, ..., m соответственно. III. Если g (xk) = 0, то положить л:*= л:^ и прекратить вычис- ления; иначе перейти к шагу IV. IV. Вычислить новое направление ?* для растяжения пространства где В1 — матрица, транспонированная к матрице Bk. V. Вычислить следующее приближение VI. Вычислить матрицу ?*+ь которая по существу является обратной к результирующей матрице Ak+\ растяжения пространства после (k + 1)-го шага с коэффициентом растяжения а = 1/р 346
где Gp (lk) — оператор растяжения пространства в направлении lk с коэффициентом р (определение оператора растяжения пространства приведено в § 3.2). VII. Вычислить значение шагового множителя VIII. Положить k = k + 1 и перейти к шагу II. Теорема 3. Если выполнено предположение 3 и существует оптимальная точка х* (не обязательно единственная), находящаяся в шаре радиусом у с центром в точке #°, то последовательность {xk}kLo> порожденная алгоритмом 3, удовлетворяет неравенствам I Лк (**-*•) I <Р* (Л+1). E.65) где Ak&B7\ ? = 0, 1, ... . Замечание 3. Неравенство E.65) дает полезную геометрическую интерпретацию метода, так как множество точек х, удовлетворяющих неравенству представляет собой эллипсоид Фк, объем которого где Vo—объем единичного «-мерного шара. В связи с этим объем эллипсоида, в котором локализуется оптимальная точка я*, убывает со скоростью геометрической прогрессии со знаменателем qn= л/ „ ~ ( — " \ < i# Замечание 3\ К алгоритму 3 приводит также схема последовательных отсечений [417]. Действительно, если рассмотреть шар So й. \х I (II х — х° II) ^ У) и провести гиперплоскость (g (x°), x — — х°) = 0, то^область локализации а:*, очевидно, сужается до половины шара 5 = 50 Г) По, где По Д {х\_ (g (х°), х — х°)< 0}. Если теперь описать вокруг шара S эллипсоид минимального объема, то его центр будет V §(*°) „^ У go \\g(x<>)\\ -* п+\ s> т. е. будет совпадать с х1. Если теперь произвести растяжение пространства в направлении то в растянутом пространстве образом указанного эллипсоида будет шар радиусом у * с центром в точке Gail^X1 И Т. Д. 347
Ниже приводится обобщение алгоритма 3. Предположение 3''. Пусть g (x) — векторное поле, определенное на R'\ такое, что (?(*),*-*¦)><), V*6#\ где х* — искомая оптимальная точка функции Д> (причем g (x) Ф О при х Ф л:*). Приведем пример определения векторного поля g (z). Пусть за- дана выпукло-вогнутая функция / (х, у) двух векторных переменных х б Rn, y? i?m. Обозначим г = (х, у) ? Rn X Rm & Rn+m. Сформируем векторное поле g (z) следующим образом: где G/ (х, у) — множество частных субградиентов (обобщенных градиентов) функции / (х, у), которая рассматривается как функция от х при фиксированном у\ Gf (x, у) — множество частных субградиентов от функции / (х, у) по у при фиксированном х. Алгоритм 3' Начало. I. Выбрать начальное приближение х° ? Rn, лежащее на расстоянии, не превышающем у от искомой оптимальной точки х*9 положить Во = /; р = у/(п + 1); р = у п~7* , k = 0. Основной цикл. И. Вычислить вектор g (xk) — значение векторного поля, определенного согласно предположению 3', в k точке xk III. Если g (xk) = 0, то положить #*= xk и прекратить вычисления; иначе перейти к шагу IV. IV. Вычислить вектор ?* направления растяжения пространства V. Вычислить следующее приближение VI. Вычислить п X n-матрицу 5&+1 (обратную результирующей матрице растяжения пространства после (k + I)-ro шага с коэффициентом растяжения а = 1/р) где Gp (lk) — оператор растяжения пространства в направлении lk с коэффициентом р. VII. Вычислить значение шагового множителя P*+i = 9k' VIII. Положить k = k + 1 и перейти к шагу II. 348
Теорема 3'. Пусть выполнено предположение Зг и точка л:0 лежит на расстоянии, не превышающем у от оптимальной точки х*. Тогда при п > 1 последовательность [хР}м9 порожденная алгоритмом 3\ удовлетворяет неравенствам И* (**-**) К Р* (я+1). Ak = B7\ * = 0, 1 Теорема 3' дает оценки сходимости алгоритма 3', выраженные в терминах уменьшения объема области локализации минимума. Приведенная ниже теорема 3" характеризует скорость сходимости алгоритма 3' по функционалу. Теорема 3". Если функция /0 выпукла в Rn и в процессе применения алгоритма 3' выполняются следующие условия: ю- II*0-**!<?; здесь g (xk) — обобщенный градиент функции f0 в точке xk, то для последовательности {xfe}*L(h порожденной алгоритмом 3', справедливы неравенства < yak Vk(a?-l)qkn/n/Vl-$2k/n, ft - 1, 2 где ak=maxlg(xr)l а = 1/0; Замечание 3". Так как для достаточно больших п qn е& 1 о~~, то теорема 3" гарантирует скорость сходимости «рекордов отклонения» функционалов от оптимального значения, соответствующую скорости сходимости геометрической прогрессии со знаменателем Библиографические указания. Пункт 1 написан на основании работ [320, 330], пункт 2 основан на результатах работы [222], пункт 3 написан на основании [402, 403, 404, 462, 417]. F В работе [443] предлагается вариант метода отсечения для решения задачи вогнутого программирования с линейными ограничениями. 349
5.14. Методы, использующие функцию Лагранжа 1. Градиентный метод для задач с ограничениями типа неравенств Задача 1. Найти argmax/0(x) для заданной функции хех /0 : Rn ->• R1 и множества *?{*1М*)>0, * = 1, ..., m, x?Rn). Предположения 1. (i) — функции /у (#), / = О, 1, ..., т,— вогнуты и непрерывно дифференцируемы в Rn (/0 (x), кроме того, строго вогнута); (й) — выполняется условие Слейтера, т. е. существует такая точка х, что /у (х) > 0, / = 1, ..., т\ (Hi) — существует стационарная точка х* задачи 1 такая, что (iv) — функции fi (x)y } = 0, 1, ..., т, имеют в точке х* вторую производную. Введем функцию Ф (х, У) й /о (х) + g yifi {x), у - (у1У ..., ур) е Я?, которая является ограничением функции Лагранжа Ф (х, у) Л /0 (х) + g ytft (х), у = (у1э ..., ут) g Л?, E.66) на множество Л" X Д+. Поскольку а;* — стационарная точка задачи 1, то существует вектор у* = (у*, ..., yp)?R+ такой, что V,<p(a;*, t/*) = 0. Ниже приводится метод множителей Лагранжа с постоянным шаговым множителем, который при определенных условиях сходится глобально к седловой точке функции Лагранжа со скоростью геометрической прогрессии. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение {х\ у0) 6 Я" X В?. II. Выбрать постоянный шаговый множитель р>0. III. Положить k = 0. IV. Определить функцию Лагранжа q> (x, у) по E.66). Основной цикл. V. Вычислить вектор V^cp (xk, yk). VI. Положить hk = (h {x% ..., fm (xk)). VII. Вычислить следующие приближения xk+l и yk+l по формулам х*+1=г** + рУ,ф(**, yk)\ yk+i ==max {0, ук — фк). VIII. Положить k = ^ + 1 и перейти к шагу V, 350
Теорема 1. Пусть выполняются предположения 1 и пусть: (v) — задача 1 строго регулярна, т. е> 1) не существует ненулевого вектора и ? Rn такого, что •, У*)и = О, V*~ф(**, ~у*)и = О; 2) не существует ненулевого вектора v? Rp такого, что (т. е., векторы Vfx (л:*), ..., Vfp (х*) — линейно независимы); 3) выполняется условие строгой дополняющей нежесткости т. е. t/f >O, i = 1, ..., р\ (vi) — не существует числа К Ф О и ненулевого вектора и ? Rn таких, что L </*)" = О; ?))V Тогда для любого б > О найдется число р (б) > О такое, что алгоритм 1 при всяком начальном приближении (л:0, #°), удовлетворяющем условию w произвольном постоянном шаговом множителе р ^ р (б), порождает последовательность {(xk, */fe)}*Lo, которая линейно (т. е. со скоростью геометрической прогрессии) сходится к седловой точке (#*, у*) задачи 1. Замечание 1. Условие (vi) теоремы 1 является не только достаточным, но и в некотором смысле необходимым для сходимости алгоритма 1 в строго регулярной задаче. 2. Градиентный метод для задач с ограничениями типа равенств Задача 2. Найти arg min /0 (х) для заданной функции /0 : R" -> Л1 и множества ХД {*!/,(*) = О, * = 1, .... m, Предположения 2. (/) — задача 2 имеет решение л:*; (и) — функции fj (#), / = 0, 1, ..., /п, непрерывно дифференцируемы в окрестности точки х*\ (Ш) — функции f*(x)> j = 0, 1, ..., т — дважды дифференцируемы в точке х*\ (iv) — векторы V/, (**), i = 1, ... ..., т — линейно независимы. Предположения 2 гарантируют существование и единственность множителей Лагранжа #*= (у*, ..., у„) задачи 2, т. е. Vx<p (x*t у*) = О, У^Ф (х*, у*) = О, 35!
где Ф(*. У)йШ+ — функция Лагранжа задачи 2. Введем обозначения ЛД VL<P(**, У% СДУ^ф(**, у*), Ст — матрица, транспонированная к С. Приведенный ниже алгоритм порождает последовательность {(xk> yk))h=Q> которая локально (т. е. при начальном приближении (л:0, у0) из окрестности точки (л;*, у*)) сходится со скоростью геометрической прогрессии к точке (л;*, у*). На k-й итерации алгоритма движение к следующему приближению х*+! осуществляется в направлении антиградиента подфункции Лагранжа, а движение кук+1 —в направлении градиента по у этой же функции. Алгоритм 2 Начало. I. Выбрать начальное приближение (х°, у0) из окрестности точки (х*9 у*). II. Выбрать постоянный шаговый множитель р > 0. III. Определить функцию Лагранжа q> (x, у) для задачи 2, т. е. ПОЛОЖИТЬ т <б-в7> IV. Положить k = 0. Основной цикл. V. Вычислить векторы т , yk) = V/, (х») + % y^h (х*); '1 VI. Вычислить следующие приближения: **+' = ** — рУ,Ф(^, yfe); VII. Положить k = k + I и перейти к шагу V. Теорема 2. Пусть выполняются предположения 2 и пусть: (v) — матрица АСТ имеет ранг т, т. е. из АСТи = 0 следует и = 0; (vi) — матрица А — неотрицательно определенная, причем Ах Ф Ф 0 при Сх = 0, хфО. _ Тогда существует число р^ > 0 такое, что при р < р алгоритм 2 локально сходится к (#*, у*) со скоростью геометрической прогрессии (т. е. найдутся числа г > 0, 0 ^ qx < 1 такие, что при любых || *° — х* К е, ||у0 — у* ||< е будет 352
3. Метод квадратичной аппроксимации для задач с ограничениями типа равенств В методе квадратичных аппроксимаций на k-й итерации функция Лагранжа ср (ху у) квадратично аппроксимируется по л; в окрестности точки xk и следующее приближение xk+l находят из условия минимума этой квадратичной аппроксимации. Движение по переменной у осуществляется, как и в градиентном методе. Алгоритм 3 Начало. I. Выбрать начальное приближение (л?, у0) из окрестности точки (л;*, у*). II. Выбрать постоянный шаговый множитель р > 0. III. Определить функцию Лагранжа по E.67). IV. Положить k = 0. Основной цикл. V. Вычислить векторы \ Ук) = V/o (x*) + g #V/, (x"). VI. Вычислить матрицу vL<p (**, yk) = vLfe ? ^ ? VII. Вычислить следующее приближение (xk+\ yk+l) из системы vLcp {x\ yk) (**+> - xk) - - PV VIII. Положить k = fe + 1 и перейти к шагу V. Теорема 3. Пусть выполняются предположения 2 и пусть (vii) — матрица А & У^ф (х*, у*) — положительно определенная, т. е. (Ах, х) > 0 при, хфО. _ Тогда существует число р > 0 такое, что при р < р алгоритм 8 локально сходится к (х*9 у*) со скоростью геометрической прогрес* сии (т. е. найдутся числа е > 0, 0 ^ q2<. 1 такие, что при любых || Х°— X* || < 8, || у°— у* К 6 && 4. Двойственный метод для задач с ограничениями типа равенств • В двойственном методе на &-й итерации вычисляют (k + 1)-е приближение xk+l путем решения задачи безусловной минимизации по х функции Лагранжа ф (#, yk) (предполагается, что задача 12 з-з41 353
безусловной минимизации разрешима). Движение по переменной у осуществляется, как и в градиентном методе. Алгоритм 4 Начало. I. Выбрать начальное приближение (х°, у0) из окрестности точки (#*, у*). II. Выбрать постоянный шаговый множитель р > 0. III. Определить функцию Лагранжа по E.67). IV. Положить k = 0. Ооновной цикл. V. Вычислить вектор VI. Вычислить следующее приближение (я**1, yk+l) по правилам #*)= min <p(x, yk); k, yk). VII. Положить k ea k + 1 и перейти к шагу V. Для алгоритма 4 имеет место теорема, аналогичная теореме 3, 5. Метод Ньютона для задач с ограничениями типа равенств Предположения 5. Выполняются все условия предположения 2 и, кроме того, (ix) — функции /7 (л;), / = 0, 1, ..., т — дважды дифференцируемы в окрестности точки x*f причем вторые производные удовлетворяют условию Липшица. Алгоритм 5 Начало. I. Выбрать начальное приближение (л?, у°) из окрестности точки (я*, #*). II. Определить функцию Лагранжа по E.67). III. Положить k = 0. Основной цикл. IV. Вычислить векторы > yk) - V/o (xk) + ? V. Вычислить /г X п-матрицу VL ф (^й, i/ft) и п X /n-матрицу ф (x\ t/*) по формулам m , yk) », г/*) VI. Найти решение (л;*+1, t/*+1) следующей системы линейных уравнений: L V^9 (^ft. У*) (Ук+1 - Ук) = - V,(p (*», у*); *. Ук))Т (^ft+1 - 354
VII. Положить k = k + 1 и перейти к шагу IV. Теорема 5. Пусть выполняются предположения 5 и пусть (х) — матрица А Д VL ф (**, у*) удовлетворяет условию (Ах, х) Ф О яры v?* (л:*, */*)% = 0, а: Ф 0. Тогда алгоритм 5 локально сходится к (л:*, #*) с квадратичной скоростью, т. е. *. I У*-«Г К В. (в) fo,I*, Л<1. Ц*> —**||<в, if/°-f Замечание 5. Наиболее простым для реализации является градиентный метод, однако сходимость в алгоритме 2 носит немонотонный характер, поэтому на практике трудно определить — имеет ли место сходимость при выбранном р, или нет. Алгоритмы квадратичной аппроксимации и двойственный, как правило, сходятся быстрее градиентного метода, однако они более трудоемки с точки зрения вычислений. Метод Ньютона по трудности вычислений сравним с методами пункта 3 и 4, однако он сходится с квадратичной скоростью и не требует находить шаговый множитель р, обеспечивающий сходимость. Замечание 5'. Для начала работы алгоритмов, приведенных в пунктах 2—5, необходимо иметь начальное приближение из окрестности точки (#*, #*). В [293] для получения хорошего начального приближения предполагается использовать метод штрафных функций. В начале необходимо найти хорошее приближение xk для л;*, минимизируя функцию по х на всем пространстве Rn при достаточно больших значениях ak. Тогда вектор (а^ (xk)9 ..., ajm (xk)) будет хорошим приближением для у*. Библиографические указания. Пункт 1 написан на основании работы [231] пункты 2, 3, 4, 5 основаны на результатах работ [293, 296, 298, 300, 451, 51]. В работе [558] исследуется алгоритм Куна — Таккера решения задачи нелинейного программирования с линейными ограничениями. 5.15. Методы, использующие модифицированные функции Лагранжа 1. Градиентный метод Задача 1. Найти arg max /0 (х) для заданной функции хех /0 : Rn -^ В1 и заданного множества X, 12* 355
Предположения 1. (i) — функции ffi / = О, 1, ..., т — дифференцируемые, выпуклые и их производные на любом компакте удовлетворяют условию Липшица; (и) — множество седловых точек Z* = {(**, и*)} функции Лагранжа *)+11М*)и/ E-68) /—1 — непустое. Приводимый метод основан на построении модифицированного лагранжиана я|э (х, и) задачи 1, т. е. функции ф (X, U) & /0 {X) - -±- | (ЦИ/ - yf, (*)]+J - п% у > 0, E.69) где Ы+ = (а + | а |)/2, множество седловых точек которого совпадает о множеством седловых точек классического лагранжиана ф (х, и). Алгоритм 1 Начало. 1. Выбрать произвольное начальное приближение (х°, и0) g R" X /Г. II. Выбрать константу у > 0. III. Положить k = 0. IV. Найти произвольное положительное число р0, удовлетворяющее неравенству po<min{7, 2 где V у (х°, и0) = (Уж \|) (л?, и0), Vu я|) (^°, и0)), а функция if 2 Rn X X JRm -> Rl определяется по E.69). Основной цикл. V. Вычислить вектор VI. Вычислить вектор tt^+i = ик — VII. Вычислить градиент V if (лс*+1, aft+1) функции ар в точке VIII. Вычислить значение шагового множителя (случай сходимости за конечное число итераций, когда || V if (xk+tf иь+1) || == о здесь не рассматривается). IX. Положить k = k + 1 и перейти к шагу V. Теорема 1. Если выполнены предположения 1, то для алгоритма I справедливы следующие утверждения: (ш) — существует такой номер k0, что (ir) — lim p* > 0; (v) — последовательность {xk, uk}kLo сходится Л->оо 356
к некоторой точке (л:*, и*) множества седловых точек функции Лаг- ранжа E.68). Теорема 1'. Если выполнены предположения 1 и (vi) — z*= (#*, w*) — некоторая седловая точка функции Лагранжа; (vii) — функции /7, / = О, 1, ..., т, в точке х* трижды дифференцируемы; (viii) — в точке (#*, и*) выполняются достаточные условия максимума второго порядка и условия строгой регулярности, то последовательность {xk, u^kLo, порожденная алгоритмом 1, сходится к точке (#*, и*) со скоростью геометрической прогрессии. Условия (viii) обозначают следующее: 1) оператор VL ф° (**> «*) имеет ранг /, где ф° (х, и) Д /0 (х) + + X Ujfj (x), а / — число так®е, что ограничения ff (x) ^ 0 при / = 1, ..., /, активны в точке #*, а при / = / + 1, ..., т,— пассивны; *2) и,>0 при /= 1, 2, ..., /; 3) не существует ненулевого вектора Л, удовлетворяющего условиям VL ф° (^*> ^*)^ = О, VL<P° (x*, и*) h==0 (отметим, что при этих условиях (#*, и*) — единственная седловая точка функции ф на Я" X ВТ). 2. Метод, использующий штрафные функции экспоненциального типа Задача 2. Найти arg min /0 (х), где ах fi : Дл -> Д\ i = 0, 1, ..., т,— непрерывные функции. Предположение 2. (i) — функции Д-, i = 0, 1, ..., т — непрерывно дифференцируемы на Нп. В методе штрафных функций экспоненциального типа строится последовательность {(л;*, yk)\, которая сходится при соответствующих предположениях линейно к точке (х*, у*), где х* — решение задачи 2, а а*= ((ylJ, ..., (УтJ) — множители Лагранжа задачи 2. Алгоритм 2 Начало. I. Выбрать начальное приближение х° ? Rn, числа у} > 0, / = 1, ..., т, и коэффициент штрафа а > 0 такие, чтобы У\ а) = 0 (f/° = (r/?, ..., у°т))9 где экспоненциальная штрафная функция i|) г Rn х /?+ X R+ -> Д1 определяется по формуле У, Шо() () = (i'l Ут))- 357
II. Положить k = 0. Основной цикл. III. Вычислить вектор а:^1 так, чтобы у\ а) = 0. F.70) Если точка х*+1, удовлетворяющая F.70), не единственная, то выбрать из них точку я**1, ближайшую к точке xk по некоторой норме в Rn. IV. Вычислить вектор yk+l = (f/?+l, ...» Hntx) по формуле уН1 = */* ехр (а/, (**+1)/2), / - 1, ..., т. V. Положить А = k + 1 и перейти к шагу III. Теорема 2* Пусть выполняется предположение 2 и (И) — функции fit i = 0, 1, ..., т — выпуклые; (ш) — для любых &г, fl^d {1, ... ..., m}, tfi=?tJ2, подзадачи: найти arg min /0 (х), x и найти arg min /0 (x)f Х имеют оптимальные решения х1'* и х2-*, соответственно, причем Тогда любая предельная точка (#*, г/*) последовательности {(xk, yk)}kLo, порожденной алгоритмом 2, является парой, состоящей из оптимального решения х* задачи 2 и множителей Куна — Таккера (у*J для задачи 2. Замечание 2. Теорема 2 остается справедливой в том случае, если заменить условие (ш) одним из следующих условий: (ш') — последовательность {(j^ #*)}?!() сходится к точке (#*,#*); (ш") — предельная точка я* последовательности {#*}?Lo является допустимой точкой для задачи 2, т. е. /=1, ..., т. Теорема 2*. Пусть выполняется предположение 2. Тогда для последовательности {(xk, #*)}?=(), порожденной алгоритмом 2, справедливы следующие утверждения: 1) для всех i ? di выполняется неравенство ?->00 где ЭСй {/|liminfу\ = 0, i = 1, ..., т}; 2) ?0/ш последовательность {yk}kLo сходится к точке уу то любая предельная точка (х, у) последовательности {(xk, 358
такова, что V,<p(x, и) = 0, y,ff(x) = О, / = 1, ..., mt где и = ((у О2, • • • > (УтП Ф (*, «) А /0 (х) + | Ujff (х), и 3) гсла последовательность {#*}*Lo сходится к точке х, то любая предельная точка (х, у) последовательности {(xkt yk)}kLo, такова, что /=1, ..., т. Замечание 2'. Если выполняется предположение 2 и если последовательность {(**, #*)}*Lo, порожденная алгоритмом 2, сходится к точке (л:, у), то точка (х, и), где и = ((f/iJ, ..., (ymJ) удовлетворяет условиям Куна — Таккера для задачи 2. Теорема 2". Пусть выполняются условия: (iv) — существует оптимальное локальное решение х* исходной задачи 2; = 0, /— 1. ...,m}f (?;i) — функции fh i == 0, 1, ..., m — дважды непрерывно дифференцируемы в открытой окрестности точки х*; (vii) — существует всего лишь единственный вектор множителей Лагранжа и* ? R% такой, что пара (я*, и*) — есть точка Куна — Таккера, удовлетворяющая достаточным условиям оптимальности второго порядка и х*—регулярная точка для fh /? {1, ..., /}; (viii) —выполнены условия строгой дополняющей неоюесткости в точке (л:*, м*), т. е. и* > 0, если fj (л:*) = 0. Тогда для достаточно большого конечного числа а существуют окрестности V (х*) и W (у*) точек х* и у* такие, что для любой точки у0 ? W (у*) существует всего лишь единственная точка х° ? V (х*) (где V (х*) — замыкание множества V (х*)) такая, что Vxty (х°> У0у а) = 0 w последовательность {(xky yk)}kLo сходится к точке (х*, у*) линейно. Более того, если а стремится к бесконечности, то последовательность {#*}л1о сходится к у* сверхлинейно. Библиографические указания. При написании пункта 1 использована работа [233], пункт 2 основан на результатах работы [532]. В работе [550] исследуются свойства расширенных лагранжианов. 359
5.16. Методы нагруженного функционала В приводимых в этом параграфе методах на k-й итерации требуется искать абсолютный минимум по х нагруженного функционала * (х, «*) А [/0 (х) - а,]2 + Jj {ft (*))\ где числовая последовательность {afe}|Lo строится в алгоритмах таким образом, чтобы обеспечить равенство limaA = min/0(*)- *-*оо х?Х 1. Общий случай Задача 1. Найти argmin/0(#) для заданной функции /0 :/?"-> R1 и заданного множества где ft \ Лп-> Я\ т < п. В алгоритме 1 на &-й итерации вычисляют точку xk = arg min -ф (л:, ak), 2 {ft {x))\ i Д Uо где afr-^min/0(A:) при Предельные точки последовательности {x*}?=o являются решениями задачи 1. Кроме того, на каждой итерации вычисляется отрезок [а-, а+], содержащий значение min f0 (x), и длина которого ех при k -> оо стремится к нулю. Алгоритм 1 Начало I. Выбрать произвольное начальное приближение II. Положить а0 = f0 (л:0). III. Положить k = 1. IV. Определить функцию \|> (я, а) s Rn X i?1 ->• Rl no правилу ) (/0()J(/,W) V. Выбрать константу б0 > О FО—достаточно малая величина) и положить б = б0. Основной цикл. VI. Вычислить 360
VII. Вычислить вектор xkt удовлетворяющий условию VIII. Если выполняется неравенство Гф(х*, a*)]V*<eps (eps — «машинный ноль»), то положить б = 26, /j = k + 1 и перейти к шагу VI; иначе положить а+= a*_i и перейти к шагу IX. IX. Положить а~ = ak и перейти к шагу X. X. Вычислить значения Ok+i и т*+ь соответственно, по формулам XI. Положить k = k + 1. XII. Положить а-= ok. XIII. Если тй< а+, тогда положить aft = xk и перейти к шагу XIV; иначе положить ak = аЛ и перейти к шагу XIV. XIV. Вычислить вектор xk, удовлетворяющий условию XV. Если [я|) (л;А, a^)]1^ ^ eps, то перейти к шагу X; иначе положить a+ = ak и перейти к шагу XVI. XVI. Если a+—a~<eps, тогда прекратить вычисления (в этом случае находят решение xk задачи 1); иначе положить ak = == а- и перейти к шагу XIV. Теорема 1. Если (i) — функции /;- (х), / = 0, 1, ..., т — непрерывны в любой замкнутой ограниченной области Y пространства Rn\ (И) — задача 1 имеет решение х*\ eps = 0; (Hi) — -ф (#\ ak) = = min ij) (л:, ak) может быть найдено алгоритмами безусловной on- тимизации; (iv) — г|) (хк, ак) > 0 эквивалентно /0 (xk) < /0 (л:*), то алгоритм 1 сходится и предельные точки последовательности [хк)?=& являются решениями задачи 1. 2. Выпуклый случай Задача 2. Найти arg max /0 (х) для заданной функции Х?Х /0: Rn -> Rl и множества X, задаваемого соотношением *&[х\Ш<09 /=1, ..., m, x?Rn). Предположения 2. (i) — функция /0 (х) — вогнута, функции //(*)»/ в 1» •••» я* — выпуклы в Лп; (г7) — функции /у (х), / = 0, 361
i,..., m — дважды непрерывно дифференцируемы в Rn\ (Hi) — множество X ограничено и непусто. Метод нагруженного функционала в выпуклом случае при определенных условиях сходится к решению задачи 2 со сверхлинейной скоростью. На каждой итерации алгоритма требуется решать {точно) задачу безусловной минимизации нагруженного функционала. Для начала работы алгоритма необходимо иметь оценку сверху для величины max /0 (х). Алгоритм 2 Начало. I. Найти число alf удовлетворяющее условию где х*— решение задачи 2. II. Определить функцию i|) (х, а) (нагруженный функционал) по правилу г|) (*, a) A (max {0, а - /0 (*)}J + ? (max {0, ft (x)})\ III. Положить k = 1. Основной цикл. IV. Вычислить вектор хк, удовлетворяющий условию ak) =* min г|? (jc, ak). E.71) x?Rn V. Если г|) (xk, ak) = 0, то прекратить вычисления, иначе перейти к шагу VI. .VI. Вычислить ak+l = ak - ф (х\ ak) (ak - /0 (хк)Г1. VII. Положить k == k + 1 и перейти к шагу IV. Теорема 2. Пусть выполняются предположения 2 и существует решение х* задачи 2 такое, что имеет решение и задача: найти argmax(V/0(#*), x — x% E.72) x?Y Тогда для бесконечной последовательности {ak}kLu порожденной алгоритмом 2, существует константа р такая, что lim ak = = /0 (х*) и при достаточно больших значениях k выполняется неравенство 0 < ak+i - U (х*) < р (а, - /0 {х*))'\ Теорема 2'. Пусть выполняются предположения 2 и (iv) — су- .ществует решение х* задачи 2 такое, что векторы Vft (л:*), i g € {/1 // (**) = 0, / = 1, ..., т] — линейно независимы; (v) — су- -362
ществует число б > 0, для которого где т Ф (Р> X) = /0 (X) — 2 Л/i (*)> /> = (Pi. • • • , РтУ, (V/ (**))г />* = V/o (х*), / (х) = (/х (х), ..., fm (х)); 7ог<9а (Эля бесконечной последовательности {xft}?Li, порожденной алгоритмом 2, существует константа ц ^? 0 такая, что при достаточно больших k выполняется неравенство т. е. последовательность {хк)%=\ сходится к х* сверхлинейно. 3. Приближенная схема В приводимом ниже алгоритме при известной оценке сверху значения max /0 (я) за конечное число итераций вычисляется при- ближенное решение х задачи 2 такое, что где х* — решение задачи 2; е2— наперед заданная константа. При этом на каждой итерации алгоритма задачу безусловной минимизации нагруженного функционала достаточно решать также приближенно. Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение х°? Rn. II. Выбрать произвольное число аг (обычно ai^/oC**)» гДе х*— решение задачи 2). III. Задать произвольные константы ех >0 ие2> 0, определяющие точности решения вспомогательной задачи и задачи 2 (рекомендуется е^ИО, КГ1], e.elKT5, КГ1]). IV. Определить нагруженный функционал т г|>(*, а) Д(max {0, a-fo(x)}f + Jj(max .{0f h(x)})\ V. Положить k ¦= 1. Основной цикл. VI. Вычислить вектор xk, для которого выполняется неравенство )(*i, а*), F.73) 363
а также либо неравенства II V,i|) (х\ ак) || < гг (ак — f0 (**)), ф (**, ak) > e2, E.74) либо Ч>(**. <**)^е2. E.75) VII. Если выполняются неравенства E.73) и E.75), то прекратить вычисления; если E.73) и E.74), то перейти к шагу VIII. VIII. Вычислить = ak — г|) (**, ak) {ak — /0 (xk))~l. E.76) IX. Положить k = fe + 1 и перейти к шагу VI. Теорема 3. Пусть выполняются уюловия (i), (ш) предположения 2 и функции ff (х)у / = 0, 1, ..., m — непрерывно дифференцируемы. Тогда для произвольного начального приближения х? ? Rn и любых значений а1у гг > 0, е2 > 0 алгоритм 3 остановится за конечное число шагов, причем точки xk его остановки, полученные при фиксированных л:0, аг ^ /0 (#*) и различных ех, е2, будут при ех -> 0, е2 -> ->- 0 сходиться к множеству решений задачи 2. Теорема 3'. Пусть выполняются предположения теоремы 3 и, кроме того: (i) — функция /0 (х) — дважды непрерывно дифференцируема; (и) — существует константа \i такая, что для любых х, у ? Л" выполняется неравенство (ш) — производная df0 {х*)/дх не равна нулю; (iv) — в алгоритме 3 неравенства E.74) заменены следующими: {т 2 I] (max {О, /,И}) . [ S (max {0, /, (х*)})* (ak - f0 (**))] /2j; E.77) iv) — функция /0 (а:) строго вогнута. Тогда при достаточно малых гх >> 0 и любых xk, ak> г2 >> 0, удовлетворяющих условиям E.77), значение а^+ь вычисленное на шаге VIII алгоритма 3 по E.76), будет не меньше, чем /0 (х*). Библиографические указания. Пункт 1 написан на основании работы [509], лри написании пункта 2 использовались работы [216, 217, 218], пункт 3 основан «а результатах работы [217]. Дополнительные сведения о методах нагруженного функционала и их вариантах, примеры практического использования методов можно найти в работах [302, 322, 508]. 364
5.17. Методы штрафных оценок Задача 0. Найти arg min /0 (х) для заданной функции f01 Rn -> R1 и заданного множества ХД{*!/,(*) = 0, /=1, ..., ,Л, x?Rn}. Метод штрафных оценок является комбинацией методов штрафных функций и множителей Лагранжа и основан на построении модифицированной функции Лагранжа г|>: Rn X Rm X R\ ->• В1: у, aJU/.W+S^W + fH/iW, <5-78> /1 /l где a > 0, у = (*/ь ..., */m) 6 ^w. В методе ведутся итерации как по исходным переменным х, так и по двойственным переменным у. В детерминированном случае на каждой итерации решается вспомогательная задача на безусловный минимум. Метод штрафных оценок в детерминированном случае локально сходится со скоростью геометрической прогрессииг знаменатель которой тем меньше, чем больше коэффр^циент штрафа а. При наличии случайных помех метод штрафных оценок сходится к локальному решению с вероятностью 1 — б (ибо без предположения выпуклости функций /у сходимости с вероятностью 1 не существует). I. Детерминированный случай Алгоритм 1 Начало. I. Выбрать начальное приближение у0 ? Rm двойственной переменной. II. Положить k = 0. Основной цикл. III. Выбрать коэффициент штрафа а*. IV. Вычислить следующее приближение xk+x как точку безусловного минимума функции г|э (лс, yky ak) (где г|) (х, у, а) определяется по E.78)), т. е. я|> (**+', У\ afe) = min4)(xf y\ ak). X V. Вычислить следующее приближение yk+l двойственной переменной по формуле ybV = yb + aJ где VI. Положить k = k + I и перейти к шагу III. Теорема 1. Пусть выполняются условия: (i) — существует локальная точка минимума х*, т. е. 365
при //М = 0, /=1, ...,m, \x — г*|<е, е>0; (и) — в е-окрестности точки х* существуют первые и вторые производные функций fj (x), j = О, 1, ..., т, причем V2xxff (x), j = О, 1, ..., т, удовлетворяют условиям Липшица IIv2,,//(х) - vL//(х)ц<yi||*—х\\, Ti < <*>; (ш)—градиенты V//(л:*), / = 1, ..., т — линейно независимы; (iv) — выполняется достаточное условие минимума (V^q>(x*, у*)х, х)>61||^||2, бх>0 при (V2yx<p(x*, f/*))x = O. Тогда для всякого р > 0 найдется число Р == Р (р) такое, что при а*^ Р, ^ = 0, 1, ..., алгоритм 1 (в котором под xk+{ понимает- ся точка локального минимума функции я|) (л:, yky ak) из окрестности х*) сходится при любом начальном приближении у0 ? Sp, где причем для всех k ^ 1 справедливы оценки || у* - у* ||< (%)k II У0 - У* |/(<V*i • - где 90 > 0 — некоторая константа. При условиях (i) — (га) применимо правило множителей Ла- гранжа, т. е. найдется y**?Rm такой, что Vx(p (#*, у*) = 0, где Vxq> (х*, у*) — производная функции Лагранжа Условия теоремы (условия минимума) выражают условия невырожденности локального минимума и являются минимально ограничительными. Замечание 1. Из теоремы 1 следует, что при ал = а для достаточно больших а алгоритм 1 сходится не медленнее геометрической прогрессии со знаменателем q = 0o/a. Причем за счет увеличения а этот знаменатель может быть сделан сколько угодно малым. Замечание Г. Алгоритм 1 можно модифицировать таким образом, чтобы на шаге IV лишь приближенно минимизировать функцию \р (#, yk, ak). Именно в качестве xk+x выбирать любую точку из окрестности х*, в которой l|V,i|)(x*+i, y\ c<fe) 1 где \i ^ 0 — наперед заданная константа. .366
В условиях теоремы 1 для модифицированного алгоритмаьсправедливы оценки I xk _ *• | < (е0 A + (а))* II У0 — (константа 60 та же, что и в теореме 1). Замечание 1*. Если известно приближение х° для х*, то начальное приближение у0 в алгоритме 1 можно найти из условия минимума квадратичного функционала Яо (У)Ы V/o (*°) + (VU> (А 0))т у ||2. Чем ближе х? к х*, тем ближе будет найденное у0 к у*. Замечание V". Наиболее существенной трудностью в применении алгоритма 1 является проблема локальных минимумов функции г|) (х, yk, ak): неясно, как выбрать из них тот, который находится в окрестности #*. 2. Стохастический случай Алгоритм 2 Начало. I. Выбрать произвольные начальные приближения л:0 ? Rn и у0 ? i?m, основной и двойственной переменных. II. Выбрать коэффициент штрафа ао>О. III. Положить k = 0. Основной цикл. IV. Найти шаговый множитель pkf удовлетворяющий условиям теоремы 2. « V. Вычислить реализацию ?* случайного вектора !\ удовлетворяющего условию y\ .-., х\ yk) = V VI. Вычислить реализацию ?* случайного вектора ? , удовлетворяющего условию где / (хк) — вектор-столбец с компонентами ft (xk), /2 (xk), LD VII. Вычислить матрицу Ak размера т X я, строками которой являются реализации (v?)r случайных векторов (v*)r, t = I, ... ..., m, удовлетворяющих условиям VIII. Вычислить следующее приближение #А+1 для основной переменной по формуле -(Akfyk + a0(Ak)T?k). 367
IX. Вычислить следующее приближение yk+l для двойственной переменной по формуле X. Положить k = k + 1 и перейти к шагу IV. Теорема 2. Пусть выполняются условия (i) — (и?) теоремы 1 и (у) — случайные вектора 1\ ?*, v*, i = 1, ..., т — взаимно независимы при различных k; (vi) — случайные вектора \k и v*, i =* == 1, ..., т — взаимно независимы; Jyii) — сумма дисперсий компонент каждого^ из векторов ~1\ С*. v*t i = 1, ..., т — ограничена числом a2; (viii) — шаговые множители pk таковы, что Тогда найдется такое число а > 0, что п/>а а0 ^ а последовательность {(**, «/*)}fc=o, порожденная алгоритмом 2, удовлетворяет условию Р {**->**, /-*#*}> 1-8, 2 Р|: Ya, 7з — константы, зависящие от детерминированной части задачи 1. При этом, если kpk -+• р, kpk — монотонно возрастает, то для всех k при Y4 > 0 выполняется В частности, по всякому б0 > 0 можно выбрать C, р, \it y^ так, что при для алгоритма 2 справедливо 3. Метод штрафных оценок для задач выпуклого программирования Задача 3. Найти arg min /0 (л:) для заданной функции хех /0 s Rn -+R1 и множества ХД{*|//(*)<0, /==1, ..., m, x^Q}, где Q — множество в Нп\ /у: Rn ~> Л1, / = 1, ..., /и — заданные функции. 368
Предположения 3. (i) — множество Q — выпукло и замкнуто; (и) — функции fj (х), / = 0, 1, ..., /и — выпуклые и непрерывные. В выпуклом случае при естественных предположениях метод штрафных оценок сходится к множеству решений прямой и двойственной задач. При выполнении условий регулярности решения задачи 3 метод локально сходится со скоростью геометрической прогрессии, причем за счет увеличения штрафного коэффициента знаменатель геометрической прогрессии может быть сделан сколь угодно малым. Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение двойственной переменной у0 ? Я+. II. Определить модифицированную функцию Лагранжа я|) (х, у, а):й"хй+хВ+"> Я1, ¦ (*. У> «) А /о (х) + -^ J] ([yt + а/, (х)]+J 1- J; (у,J- (Здесь и далее [Л+4тах {0» '})• III. Положить k = 0. Основной цикл. IV. Найти штрафной коэффициент ak > 0, удовлетворяющий условию ak ^ а > 0, где а > 0 — произвольная константа. V. Вычислить точку xk ? Q, удовлетворяющую условию *(. У *)|(*, уку ak). VI. Положить hk = (fx (jc*)f ..., fm (x*)), VII. Вычислить точку y*+i = [/ + akhk]+. VIII. Положить i = Hl и перейти к шагу IV. Теорема 3. Пусть выполняются предположения 3 и пусть (Hi) — множество решений X* задачи 3 непусто и ограничено; (iv) — множество решений Y*, двойственной к задаче 3, непусто. Тогда алгоритм 3 при любом у0 ^ 0 (и любом a > 0) порождает ограниченные последовательности {x*}?L=o, {yk}t=o такие, что min \\xk — jc*||->0 при /г~>оо; х*?Х* min\\yk — у*||->0 при ?->оо; Двойственной к задаче 3 является следующая задача: найти argmaxgo(y), 369
гДе go (у) & inf Ф (х, у), а ф (я, у) — функция Лагранжа задачи 3, x<ZQ т. е. Множество X* X F* является -множеством седловых точек функции ф (х, у). Теорема 3'. Пусть выполнены предположения 3 и пусть: (iv) — в задаче 3 множество Q = Rn\ (v) —задача 3 имеет решение х*\ (vi) — в некоторой окрестности х* функции /у (л:), / = 0, 1, ..., т — дважды непрерывно дифференцируемы; (bii) — векторы Vft (л:*) при i ? #*Д {/1 fi (х*) = 0, / ? [1 : /л]} — линейно независимы; (viii) — если (Vfi (л:*), х) = 0 для всех i ? #*, то (VU(x\ у*) х9 х)>р1||^Р, рх>0, где V2XX<{> (x*, у*) —матрица вторых частных производных функции ф (#, у*) в точке л:*; ф (х, у) — функция Лагранжа задачи 3; у*— множители Лагранжа задачи 3; (ix) — выполнены условия строгой дополняющей нежесткости, т. е. у* > 0 при i ? 3*. Тогда для любого- а > 0 найдется б > 0 такое, что при \\ у0 — — У* II <б последовательности {x*}*Lo, {#*}!?=(ь порожденные алгоритмом 3, удовлетворяют при всех k ^ 0 неравенствам || xk — ** К Yi II Ук — У* I Yi > 0; E.79) m. е. последовательности {xk}kLo и {f/*}S=o сходятся со скоростью геометрической прогрессии, соответственно, к х* и у*. Следствие. При условиях теоремы 3' для любых а > О, у0 > 0 найдется такое 60, что при k ;> &0 последовательности {a^}*Lo, {f/*}?U, порожденные алгоритмом 3, удовлетворяют неравенствам E.79). Теорема 3". Пусть выполняются все предположения теоремы 3' и, кроме того, (х) — матрицы vL/o (*) и V2xJt {*)* i? ^*» удовлетворяют условию Липшица в некоторой окрестности точки х*. Тогда для любого у0 ^ 0 найдется столь большое число а = = а (|| у0 — у* ||) > 0, что при ak ^ а последовательности {x*}?Lo, {j/*}*Lot порожденные алгоритмом 3, для всех k^O удовлетворяют неравенствам -</* II;. где постоянная 7г > 0 не зависит от ak. 370
Библиографические указания. Пункт 1 написан на основании работы [302}, пункт 2 основан на результатах работы [300], пункт 3 — на результатах работы [357]. Рекомендации к подбору начальных значений у0 и а0 в алгоритме 1 можно найти в работах [293, 487, 493, 541], частные варианты алгоритма 2 приведены в [411]. В [330] для невыпуклой экстремальной задачи с ограничениями в форме неравенств доказана локальная сходимость метода штрафных оценок со скоростью геометрической прогрессии. В [302] изучался метод штрафных оценок для невыпуклых задач с ограничениями в форме равенств, в [301] —для задач линейного программирования. В работе [432] для решения задачи оптимизации с ограничениями типа равенств используется модифицированная функция Лагранжа и алгоритм типа штрафных оценок. 5.18. Методы проектирования обобщенного градиента 1. Основной алгоритм Задача 1. Найти argmin/0(A:) для заданной функции /0: Rn -> J?1 и заданного множества X с= Rn. Предположения 1. (i) — функция /0 — выпукла вниз; (и) —- множество X выпукло и замкнуто. Этот метод напоминает метод проекции градиентов, если вместо градиента использовать обобщенный градиент V/o функции /0.' Алгоритм 1 Начало. I. Выбрать начальное приближение х° ? Rn и положить k = 0. Основной цикл. II. Вычислить обобщенный градиент V/o (**) функции /0 в точке xk. III. Вычислить значения шагового множителя р^ и нормирующего множителя yki удовлетворяющие условиям теоремы 1. IV. Вычислить следующее приближение V. Положить k = k + 1 и перейти к шагу II. Теорема 1. Пусть выполнены предположения 1 и условия: (i) — существует точка #*, принадлежащая множеству минимумов X* функции /0 в области X, для которой || х* |] ^ const; (й) — для любого числа а < оо найдется такое число р (а) < оо, что- П/ч Wo (*) II ^ Р (а) пРи II * II ^ а*> (W*) — нормирующие множители/ Y*, k = 0, 1, ..., таковы, что yk>0 и yk\\ V/o (хк) || < const, k = = 0, 1, где {xk)t=Q — последовательность, порожденная алгоритмом 1; (iv) — шаговые множители р*, k = 0, 1, ..., удовлетворяют условиям 37*
Тогда найдется такая подпоследовательность {/0 (#*s)}?Lo последовательности {/о (**)}fcUi что т. e. lim min f0 (xs) = /0 (л;*). Теорема 1'. Если в дополнение к условиям теоремы 1 множество минимумов X* функции /0 в области X ограничено, то последовательность {/0 (хк)\^Оу порожденная алгоритмом 1, сходится к h (П и inf||x* — xk\\-+Q при &->-оо. Замечание 1. Если в теореме 1 потребовать, чтобы вместо (to) выполнялись условия 00 ОО то последовательность [xk}kLo9 порожденная алгоритмом 1, будет сходиться к решению х* ? X* без предположения об ограниченности множества X*. 2. Многошаговый метод обобщенного градиентного спуска Задача 2. Найти arg min /0 (#) для заданной функции fo:Rn-*R1 и заданного множества Предположения 2. (i) — функции f0 и f1—выпуклые на Rn\ (и) — существует точка х ? Rn такая, что fx (х) < 0; (Hi) — множество X — ограничено. В приводимом ниже алгоритме направление спуска выбирается с использованием обобщенных градиентов и значений функций /ои /i на предыдущих итерациях. Шаговые множители pk удовлетворяют классическим условиям. Алгоритм 2 Начало. I. Выбрать произвольное натуральное число т ^ 1. II. Выбрать произвольный набор точек {лг~т+1, ..., л:0}. III. Выбрать константу а, удовлетворяющую условию а> > /о (**)» гДе х*— решение задачи 2. IV. Выбрать константы бх > 0, 62 > 0, причем б2 выбрать из условия б2 < — /х (х) (точка 1с определяется в условии (и) предположения 2). V. Положить k = 0. 372
Основной цикл. VI. Вычислить шаговый множитель pft, удовлетворяющий условиям теоремы 2. VII. Если /0 (xk) > а, то положить 3k = {ft} и перейти к шагу VIII; если f0 (xk) < а, то положить Vk = {ft —- т + 1, ..., А} и перейти к шагу VIII. VIII. Вычислить V/o (л:*) и V/x (**) — обобщенные градиенты функций /о и /х в точке х*. IX. Вычислить вектор ft* из условия min Ф* (Л) = (pk (hk), где функция фй определяется по правилу ФА(Л)Д max /о И - /о И + (** - х'. V/o И) + (h, V/, И), max {/0 («О - /о (**) + (** - ^, V/o И) + (Л, V/, /i (хО + (х* -х/, V/x (xi)) + (h, Vh (xO)}. /1 (*0 + (xk—xf> Wi (*0) + (h> Wi (*'))> X. Вычислить следующее приближение XL Положить ft = ft + 1 и перейти к шагу VI. Теорема 2. Пусть выполняются предположения 2 и шаговые множители Рд, ft = 0, 1, ..., удовлетворяют условиям оо рь->-4-0 при ft-)-oo, X р?=оо. бесконечная последовательность {xk}kL0, порожденная алгоритмом 2, такова, что mini**— а: II —>- 0 при ft->-oo; х?Х* fo (xk) -> тт /о (х) пРи k -* °° • где X* = {х \ /0 (х) = min /0 (у)9 х?Х). 3. Методы проектирования обобщенного градиента для решения предельных экстремальных задач Задача 3. Найти arg min /0 (я), где /0 (х) й lim Фл (Ф : Rn -> Д1, ft = 0, 1, ... — заданные функции; X с: Rn. 373
Предположения 3. (i) — функции cpfe (л:), k = О, 1, ...— выпуклые; (и) — X — выпуклый компакт. Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение х°?Х. II. Положить k = 0. Основной цикл. III. Вычислить вектор Vcp* (х*) — обобщенный градиент функции yk (х) в точке лЛ IV. Найти шаговый множитель р*, удовлетворяющий условиям теоремы 3. V. Вычислить следующее приближение = я* (>Л ()) VI. Положить k = & + 1 и перейти к шагу III. Теорема 3. Пусть выполняются предположения 3 и (iii) — последовательность {ер* (x)}kL0 сходится на X равномерно к функции /о М; (to) - оо Р/г>0, & = 0, 1, ...; рь-^О при &-*оо; У! р^ = оо. Л0 Л0 для любой сходящейся подпоследовательности {xki)t=\ последовательности {xk)t^Q, порожденной алгоритмом 3, справедливо предельное соотношение lim **' = * где X*— множество решений задачи 3. Ниже приводится стохастический аналог алгоритма 3. Алгоритм 3' Начало. I. Выбрать произвольное начальное приближение х° б Rn. II. Положить k = 0. Основной цикл. III. Вычислить реализацию lk случайного вектора |\ условное математическое ожидание которого удовлетворяет соотношению IV. Найти шаговый множитель рЛ, удовлетворяющий условиям теоремы 3\ V. Вычислить следующее приближение .VI. Положить k = k + I и перейти к шагу III. Теорема 3'. Пусть выполняются все предположения теоремы 3 и условие 374
Тогда с вероятностью 1 предельные точки последовательности {}=oy порожденной алгоритмом 3, принадлежат множеству решений X* задачи 3. Библиографические указания. Пункт 1 написан на основании работ [148, 153, 288], пункт 2 — на основании [126, 129], пункт 3 основан на результатах работы [159]. 5.19. Методы условного градиента 1. Реализуемый метод условного градиента Задача 1. Найти arg min /0 (х) для- заданной функции Х?Х f0 : Rn -> R1 и заданного выпуклого компактного множества X. Предположение 1. Функция/0 — непрерывно дифференцируема. Метод условного градиента может применяться для решения задачи минимизации нелинейной функции в области, в которой задача минимизации линейной . функции решается без особого труда. В данном методе на 6-й итерации за направление движения к следующему приближению xk+l выбирается вектор hk = zk.— xk, где zk ? X удовлетворяет условию (/oM, ) ( Алгоритм 1 Начало. I. Выбрать начальное приближение х° ? X. II. Выбрать константу Р ? @, 1) (рекомендуется р = V2). III. Положить k = 0. Основной цикл. IV. Вычислить V/o (xk). V. Найти точку zk ? X, удовлетворяющую условию (VM4 ^) = min(VM4 г). VI. Вычислить вектор hk = zk—xk. VII. Вычислить 8fc= (Vfo(xk), hk). VIII. Если bk = 0, то положить л:* == & и прекратить вычисления; иначе перейти к шагу IX. IX. Положить / = 0. X. Вычислить pk = ру. XI. Если выполняется неравенство /0 (х* + РлЛ*) < /0 (xk) + рА A - р) б„ то перейти к шагу XII; иначе положить / = / + 1 и перейти к шагу X. XII. Вычислить следующее приближение Л;*+1 = xk + pkhk. XIII. Положить ЫН1и перейти к шагу IV. 375
Теорема 1. Если выполнено предположение 1 и (i) — множество X выпукло и компактно; (и) — градиент функции /0 в области X удовлетворяет условию Липшица то любая предельная точка х* бесконечной последовательности {#*}?Lo, порожденной алгоритмом 1, удовлетворяет необходимому условию минимума функции /0 на множестве X **), x), Условие бЛ = 0 также является необходимым условием минимума функции /0 на множестве X. Теорема Г. Если выполнены условия теоремы 1 и функция /0 выпукла, то бесконечная последовательность {я*}]?=о, порожденная алгоритмом 1, такова, что /о() x?X причем справедлива следующая оценка скорости сходимости где vx > О — некоторая константа. Теорема Г. Если выполнены условия теоремы Г u(i) — область X сильно выпукла, т. е. существует число ро > 0 такое, что для всех х, у ? X точки z = (х + уУ% + w принадлежат X для всех w, удовлетворяющих условию \\ w \\ ^ р0 II х — У II2! (") — существует константа е0 > 0 такая, что \\ V/o (х) \\ ^ е0 для всех х ? X, то бесконечная последовательность {xk}t=o> порожденная алгоритмом 1, сходится к точке минимума х* функции /0 на множестве X со скоростью геометрической прогрессии где v2 = ((/о (#) ~ / 2. Алгоритм Франка—Вулфа Предположения 2. (i) — функция /0 (х) — выпукла и непрерывно дифференцируема; (п) — X — выпуклое множество. Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение *° б X. II. Положить k = 0. Основной цикл. III. Найти точку yk ? X такую, что для всех х б X выполняется неравенство (V/o И, У*) < (V/o И, х). 376
IV. Найти число pk ? [О, 1] такое, что /о (A - Р*) *k + Pkyk) < /о (A - Р) ** + 9Ук) Для всех р ? [0, 1]. V. Положить xk+l = A — pfe) xk + pkyk. VI. Если /о (jc^1) < /о (**)» т0 положить k = /г + 1 и перейти к шагу III; если f0 (хк+г) = /0 (**)» т0 положить х* = xk+l и прекратить вычисления (в этом случае находят решение х* задачи 1). Теорема 2. Пусть выполняются предположения 2. Тогда предельные точки бесконечной последовательности {a;*1!Lo, порожденной алгоритмом 2, являются решением задачи 1. 3. Ускоренный алгоритм Франка—Вулфа Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение х1 ? X и целое число т ^ 0. II. Положить у0 = л:1, |х? = 1, k = 1. Основной цикл. III. Найти точку yk$X такую, что (V/оИ, 0*)<(VM**), *) Для всех х?Х. IV. Найти число pk ? [0, 1] такое, что /о (A - Рл) ** + Р*У*) < /о (A - Р) # + РУк) Для всех р 6 [0, 1]. V. Положить / = 0. VI. Вычислить числа ?4; = A— pk)A для i = 0, 1, ..., k— 1; ^,/ = Pfe- VII. Положить VIII. Если / > т, то перейти к шагу XIV; если /<т, то перейти к шагу IX. IX. Вычислить множество индексов ; 9к, А {I | (V/o(z*./). ^ - **'>) < °» ' € @, 1 X. Вычислить число г|)?,/ и вектор vk>i по формулам XI. Вычислить число X^/g [0, 1] такое, что /о (A - X*./) **-у + Хл^О < /о (A - X) а*' + для всех Х?[0, 1]. XII. Вычислить числа hkj+u i == 0> 1> •••» ^» п0 формулам ,/ для idflkj, для i g ^*f/. 377
XIII. Положить zk>f+l = A — XkJ) zk'f + %kjvk>if j =7 + 1 и перейти к шагу VIII. XIV. Положить xk+l = zk>x и N+i = ^,т, i = 0, I, ..., k. XV. Если /о (д:^1) < /0 (л;*), то положить k = k + 1 и перейти к шагу III; иначе положить х* = x*+] и прекратить вычисления (т. е. в этом случае находят решение х* задачи 1). Для алгоритма 3 имеет место теорема, аналогичная теореме 2. Библиографические указания. При написании пункта 1 использовались работы [320, 130, 222, 444], пункты 2 и 3 написаны на основании работ [521, 420]. В работе [424] можно найти дополнительные сведения об алгоритмах Франка — Вулфа. 5.20. Методы сопряженных градиентов 1. Метод сопряженных градиентов Задача 1. Найти arg min /0 (х) для заданной функции f0 : Rn -> Rl и заданного множества V А / v I f 11/\ C\ : 1 ж «,. /- Tf ft \ ¦«*• 4-^ \* j / / \X) — v, j — 1, . . . , //Z, X \^ It J« Предположения L (i) — функции ft (x), i = 0, 1, ..., m — дважды непрерывно дифференцируемы в окрестности некоторой точки г*, в которой выполняются достаточные условия локального минимума т f (Х*) = 0, / = i; ..., m; V/o (*•) + Ц XjV/; (x*) = 0; ((VL/o (^) + | Я/VL// (x*)) A, AJ > a 1 ft f, a > 0; (V/y(jc*)t A) = 0. Для применения метода сопряженных градиентов к задачам условной минимизации необходимо иметь хорошее начальное приближение точки локального минимума г*. По сути, приводимый здесь метод -является методом сопряженных градиентов, примененным для безусловной минимизации некоторой вспомогательной функции. На каждой итерации алгоритма требуется лишь вычислять градиенты функций fj (х), / = 0, 1, ..., и решать задачу минимизации одномерной функции. Алгоритм 1 строит последовательность {xk}h=o9 локально сходящуюся к я* с квадратичной скоростью. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение х° из окрестности точки локального минимума х*. II. Положить k = 0. 378
Основной цикл. III. Вычислить векторы \7f0 (xk), V/, (х"), .... Vfm (x«). IV. Положить / = 1. V. Положить е°ф = V/; (xk), j = 1, ..., m. VI. Вычислить векторы e\f)y j = 1, ..., m no правилам VII. Если i = m, то положить ^ = е</), / = 1, ..., т, и перейти к шагу VIII; иначе (если i < т) положить i = i + 1 и перейти к шагу VI. VIII. Вычислить числа ?/=¦— (V/оИ, «0. /==1, .... т. IX. Определить функцию =/о (*) + ? X. Положить s == 0. XI. Вычислить n-мерные векторы go = уФ (о») - 2 (Уф (и°), XII. Если s = л — т, то перейти к шагу XVI; иначе (если s п — т) перейти к шагу XIII. XIII. Найти число ps^0 из условия Ф (us + pshs) = min ф (и + phs). XIV. Вычислить векторы us+\ gs+\ /is+1« ), eO V/, (**); XV. Положить s == s + 1 и перейти к шагу XII. XVI. Положить xk+] = un~mt k == k + 1 и перейти к шагу III. Теорема 1. Пусть выполняются предположения 1 и (и) — вторые производные функций fo(x), fx (x), ..., fm(x) удовлетворяют в 379
окрестности точки х* условию Липшица; (Hi) — градиенты V/i (**)> •••> Wm (**) — линейно-независимы. Тогда последовательность {#*}?L(h порожденная алгоритмом 1, локально сходится к точке я;* с квадратичной скоростью, т. е. где р > 0 —некоторая константа. 2. Стохастический аналог метода сопряженных градиентов Задача 2. Найти arg min /0 (х). Предположения 2. (i) — функция fo\Rn-> R1 — непрерывно дифференцируема и выпукла вниз; (и) — X — выпуклое, ограниченное и замкнутое множество. Стохастический аналог метода сопряженных градиентов может быть применен и в том случае, когда функция (или ее градиент) точно не вычисляются. На каждой итерации строится вектор стохастического квазиградиента ?* и направление z*+l движения к следующему приближению xk+l выбирается с помощью определенного осреднения векторов ?*, g*, lk~~2 Осреднение реализуется таким образом, чтобы обеспечить (с ростом k) приближение значения zk к градиенту минимизируемой функции в точке л:/г. Алгоритм 2 Начало. I. Выбрать: произвольное начальное приближение я0 ? Rn\ шаговые множители р± @) и р2 @), удовлетворяющие условиям теоремы 2; произвольный вектор г° ? Вп и произвольное ЧИСЛО б > || 2° ||. II. Положить k = 0. Основной цикл. III. Вычислить реализацию ?* случайного вектора f*, условное математическое ожидание которого Е (!*/(*<>, 2°), . . . , (**, 2*)) = aV/0 (Xk) + Ь\ E.80) где a — некоторое неотрицательное число; bk — вектор «ошибки», измеримый относительно a-подалгебры 3$ky индуцированной величинами (х°, 2°), ..., (**, zk). IV. Вычислить вектор V. Вычислить вектор _Р+1' если||?+11<б; ~ |б?+1/|?+1||, если |?+1|>б. VI. Вычислить следующее приближение 380
VII. Вычислить значения шаговых множителей pt (к + I) и p2~(k + 1), удовлетворяющие условиям теоремы 2. VIII. Положить k = k + 1 и перейти к шагу III. Теорема 2. Пусть выполнены предположения 2 и условия: (i) — градиенты функции /0 удовлетворяют условию Липшица (и) - 1°, г»), ..., (**, г*))<Р,<оо, 6 = 0, 1, ...; (Hi) — p1 (k)y p2 (&), bk— измеримы относительно о-подалгебры и такие, что оо оо 2 Ер](k)<. оо, X J?pxF)|Ь*||< со; = со п. н; (iv) — для некоторых чисел %k выполняются условия <0 п, н; Тогда последовательность [xk)t=o, порожденная алгоритмом 2, почти наверное сходится к решению задачи 2 (а если решение не единственно, то {^*}JLo сходится к одному из решений). Замечание 2. В случае || bk || = 0 условия теоремы 2 (ш) и (iv) выполняются, если только выбрать где числа т и е определяются неравенствами Библиографические указания. Пункт 1 написан на основании работы [232], пункт 2 основан на результатах работы [98]. 5.21. Методы управляющих последовательностей Задача 0. Найти arg min /0 (я) для заданной функции /0: Rn -> Л1 и заданного множества предположения 0. (i) — функции /0 и /7, / ? 3 — выпуклые; (и) — существует точка х* = arg min /0 (х) и градиенты V/7 (jc*), 381
/ ? $ (х*) — линейно независимы, где 3 (#*) = {/ | /, (**) =0, / ? € &} (в дальнейшем предполагается, что fJ (х*) = {1, ..., r))\ (Hi) — дифференциальное преобразование (-^ fi (х)\ / = *> •••» г> непрерывно в области W(x*9 б) = {л: 11| х — х* || < б}, где б >0 — достаточно малое число. В методе управляющих последовательностей на основе методов безусловной оптимизации строят операторы релаксации на нелинейном многообразии в окрестности решения #*, которые порождают последовательности приближений {jt*}?Lo, локально сходящиеся к решению х* с быстротой соответствующих процессов безусловной оптимизации. В начальной фазе различные конкретизации общего метода управляющих последовательностей совпадают с процессами оптимизации при наличии ограничений, а в заключительной фазе — с процессами безусловной оптимизации. 1. Общий метод минимизации при наличии ограничений Различные методы оптимизации при наличии ограничений являются конкретизациями общего алгоритма. Алгоритм 1 Начало. I. Определить на X X R\. неотрицательную полунепрерывную снизу в точках (х, 0), х ? X, функцию \i (x, б) такую, что из \i (х, 0) = 0 следует х = х* (здесь 6 — достаточно малое число). II. Определить оператор С : X -* X, удовлетворяющий условию М*) —MC*)>orF)>0, Vx?{x\yL(x, 8)>б, 0<8<б}. E.81) III. Найти начальное приближение л;0 ? X. IV. Выбрать управляющую последовательность {6;}?Lo> т. е. монотонно убывающую последовательность неотрицательных чисел, имеющую своим пределом нуль. V. Положить k = 0, i @) = 0. Основной цикл. VI. Если выполняется неравенство у» {xky bi{k)) > 6*(*), то положить л:^1 = Cxk, i (k + 1) = i (k) и перейти к шагу VIII; если 0 <L \i (xk, б?(*}) ^ 6цц9 то положить #fc+i = Схь, i (k + 1) = i (k) + 1 и перейти к шагу VIII, а если fx (xk, дм) = 0, то вычислить \i (xk, 0) и перейти к шагу VII. VII. Если |х (xk, 0) = 0, то положить х*= хк и прекратить вычисления (в этом случае решение задачи 0 находят за конечное число итераций); иначе положить xk+l = Cxk, i (k + 1) = / (k) + 1 и перейти к шагу VIII. VIII. Положить k = k + 1 и перейти к шагу VI. Теорема 1. Если выполняются предположения 0, а последователь- ность {xk}kLo, порожденная алгоритмом 1, такова, что последовательность {/о (x*)}kLo ограничена снизу, то любая сходящаяся подпоследовательность {xkt}Z=o имеет пределом х*; если допол- 382
нительно выполняется условие /о(С*ХЫ*), то lim/,(**) «/„(*•), и если, кроме того, тонка х* единственная, то = л;*. Ниже приводятся примеры определения операторов С и функций |х (х, б). Пример 1 [х (х, б) = - min {(V/o (*), g) | (V/y (x), 1) < - 6, /?#(*, 6); I где x Пример 2 |ф, 6) V(x, Ъ) = 9(х, 6) U {0}; = min где Если в алгоритме 1 функцию \х и оператор С определять, как в примере 1, то алгоритм 1 превращается в одну из версий метода возможных направлений; если \i n С определять, как в примере 2, то придем к варианту метода одновременного решения пары двойственных задач выпуклого программирования. 2. Метод управляющих последовательностей Ниже приводится алгоритм, синтезирующий методы условной и безусловной оптимизации: в начальной стадии алгоритма используется оператор С, а начиная с некоторого момента вместо оператора С используется оператор релаксации Т. Определение 2. Оператором релаксации Г: W (jc*, 6) -> W (г*, б) называется такой оператор, для которого выполняется \\fx- Методы безусловной оптимизации порождают операторы релаксации, обладающие следующими свойствами: || fkx — х* || < axq\ q<l; E.82) 383
k 17% _ x* || ^ П qh q, -+ 0; E.83) ||7% — л;*||<а2<7а*, q<\. E.84) Приведем примеры модифицированных операторов релаксации на многообразие активных ограничений, сохраняющих свойства E.82) и E.84). Пример 3 Модифицированный оператор градиентной релаксации fx = (z-«?(z, Р, у), P,y-tY(z, P,y)G{z, где = Y (z, y) = - [-?. Модифицированный оператор градиентной релаксации сохраняет свойство E.82). Пример 4 Модифицированный оператор Ньютона fx = (z-[H(z, Pfy)}~lG(z, P,y), P,y-Y(z, P,y) X X[H(z,P,y)]-lG(z, где G, Pf, F определены, как в примере 3, и матрица Н (х) вычисляется по формуле где у (г) = (#х (г), ,.., t/f (г)) — вектор-функция, определяемая неявной системой 384
а матрица ду (z)/dz вычисляется по формуле Модифицированный оператор Ньютона сохраняет свойство E.84). Алгоритм 2 Начало. I. Выбрать оператор С, удовлетворяющий условию E.82); оператор релаксации Т\ функцию (х (х, б), определенную на шаге I алгоритма 1. II. Выбрать произвольную управляющую последовательность {8;}П=0 и согласованную с оператором Т управляющую последовательность {^}?L0. (Управляющая последовательность {XJJLo согласована с оператором Г, если limv(fkx)KTl^0 Vx?W(**, 6), где функция v (я), характеризующая меру неоптимальности вектора х, принадлежащего многообразию активных ограничений, определяется по правилам v(x) = max{||G(x)||, v(x), г|>(*)}, здесь G (л:) определяется в примере 3; v(х) = max {- щ (х)\j$3(*•)}, (щ(х), j?9(%*)) = —°j- Примером последовательностей, согласованных с оператором Т9 обладающего свойствами E.82) — E.84), являются следующие: {(l+k)-l}Z=0\ {qk}kLo, III. Выбрать о б (О, I). : IV. Выбрать произвольное начальное приближение х° ? X. ' V. Положить k = 0, i @) = 0. Основной цикл. VI. Если выполняется неравенство I* (xk, 8/(Л)) > bi(k)9 то перейти к шагу VII, если 0 < \х (xk, 6m) ^ ^ 8l(k)> то перейти к шагу VIII, если |л (xk, б^}) = 0, то перейти к шагу XVIII. VII. Положить xk+l = Cxk, i (k + 1) == i (k) и перейти к шагу XIX. VIII. Вычислить значение \к (xk, &цк)), где функция jx (x, б) определяется по формуле e б, /^ 13 3-341 385
где множество IX. Вычислить X. Найти множество индексов XI. Положить /W-tf/M. /€*(**. в*)). XII. Вычислить величину det Г** и положить AM если А (хк) < б/(Л), то перейти к шагу XIII; если А (я*) > то перейти к шагу XIV. XIII. Положить и перейти к шагу XIX. XIV. Положить ;? = я*. XV. Положить / = 0. XVI. Если v (я;') ^ ^^, то положить xl+l = 7^ и перейти и шагу XVII, если v (xl) > %l9 то положить xk+* » arg min {/0 (х) \ х 6 {?, ..., ?}}; /(A+l) = i(ft) + Z+l и перейти к шагу XIX, XVII. Положить / = / + 1 и перейти к шагу XVI. XVIII. Если |л (xk, 0) = 0, то положить д:*= хк и прекратить вычисления; иначе перейти к шагу VIII. XIX. Положить k = k + 1 и перейти к шагу VI. Теорема 2. Если выполнены предположения 0 и (iv) — одна из функций fi (x)t j ? §f+ (я*), сильно выпукла; (v) — функции ff (x), j б 3 U {0}> достаточно гладки, то в алгоритме 2 последовательность приближений, начиная с некоторого момента, порождается лишь оператором Т. Здесь 3+ (х*) = {/ | щ > 0, / g Я (х*)} U {0}, где щ - множители в соотношении Куна — Таккера Библиографические указания. При написании параграфа использованы работы [304, 305, 306]. 386
5.22. Методы внутренней аппроксимации Задача 1. Найти arg min f0 (х) для заданной функции дс€л f0 : Rn-+Rl и заданного множества / Предположения 1. (i) — функции ffy / = 0, 1,...,/ — дифференцируемые и выпуклые; (и) — функции /-,,/ = / + 1, / + 2, ..., т — дифференцируемые; (Hi) — множество X компактное. Метод внутренней аппроксимации сводится к решению последовательности аппроксимирующих задач выпуклого программирования. В k-й аппроксимирующей задаче каждое невыпуклое ограничение fj (х) ^ 0, / = / + 1, ..., т, заменяется специально построенным выпуклым ограничением. Алгоритм внутренней аппроксимации прекращает вычисления, когда условия Куна — Таккера, связанные с аппроксимирующей выпуклой задачей, соответствуют условиям Куна — Таккера задачи 1. Алгоритм 1 Начало. I. Выбрать начальное приближение #0 ? X* II. Положить <то= /0 (х°). III. Найти множество Z0 = {x \о0 = /о(*)> х?Х]. IV. Положить k = 1 Основной цикл. V. Выбрать точку xk ? Z^-i и построить функции // (*> **), / = / + 1, ..., т, обладающие следующими свойствами: а) fi (x, xk), / == / + 1, ..., т — дифференцируемые выпуклые функции; б) // (х) ^ Ji (л:, xk) для всех точек х ? Xk> где ^={^|//W<0, /=1, ..., /; ff(x, г) dfiW/dXi-dfiix*, xk)ldxh i = 1, ..., л, /= 1 + / т; д) множество ХЛ удовлетворяет условию регулярности Слей- тера для задач выпуклого программирования. VI. Решить аппроксимирующую задачу выпуклого программирования: найти arg min /0 (#) для заданной выпуклой функции fo:Rn-> R1 xzxk и заданного выпуклого множества 1(х, ^)<0, / = / + 1 т, x?Rn) и положить ak= min /0 (л:). *ех 13* 387
VII. Если ak = Gk—u то прекратить вычисления (в этом случае хк — решение для исходной задачи 1 в смысле Куна— Так- кера); иначе найти множество 2*={*|аЛ = /0(*), x?Xk] и перейти к шагу VIII. VIII. Положить k = k + 1 и перейти к шагу V. Теорема 1. Если выполняются предположения 1, то алгоритм 1 либо ^останавливается за конечное число итераций в точке Куна — Таккера, либо порождает бесконечную последовательность {**}?Lo» предельные точки которой являются точками Куна — Таккера. Следствие 1. Если точка xk получена как решение алгоритма внутренней аппроксимации за конечное число итераций и #* —внутренняя точка множества Xkf то xk является точкой локального минимума в задаче 1. Замечание 1. Алгоритм внутренней аппроксимации может быть использован для решения задач нелинейного программирования с невыпуклой целевой функцией /0/ Для этого целевую функцию /0 заменяют новой переменной хп+\ (выпуклой функцией), а ограничение /0 (х) — xn+i ^ 0 добавляют к ограничениям задачи. Для решения новой задачи в пространстве /Г+1 применяют алгоритм 1. Библиографические указания. Параграф написан на основании работы [515]. В работе [533] используются аппроксимирующие касательные плоскости к целевой функции для сведения исходной задачи нелинейного программирования к решению последовательности более простых задач оптимизации. 5.23. Методы покоординатного спуска Задача 0. Найти arg min /0 (х) для заданной функции fo\Rn-*Rl и параллелепипеда где at, Pj, i = 1, ..., п — заданные действительные числа. Предположения 0. (i) — функция /0 (х) — непрерывно дифференцируема и для любых х, у ? X выполняется Y||*-{/||, 0<y<co. 1. Детерминированный покоординатный спуск В методе детерминированного покоординатного спуска за направление движения последовательно выбираются орты. Параметры метода р и б вычисляются в процессе работы алгоритма. Алгоритм включает «большие» итерации по гадексу k и «малые» — по индексу /, причем при каждом k «малые» итерации заканчиваются при конечном значении индекса /. Алгоритм 1 Начало. 1. Выбрать произвольное начальное приближение х? $Х п вычислить /о (°) 388
И. Выбрать произвольные константы р0, б0, w, удовлетворяющие неравенствам Ро>О; S0>0; w>\. III. Задать векторы е1, ..., еп (здесь е\ i = 1, ..., п — вектор, i-я координата которого равна единице, а остальные равны нулю). IV. Положить k = 0. Основной цикл. V. Положить / = 0. VI. Вычислить индекс ik (ik ? [1 : п]) по правилу где Ent (t) — целая часть числа t. VII. Положить А*=*'*. VIII. Вычислить векторы IX. Если я*<+> G X и ^—> ? Xf то перейти к шагу X; если **<+> б X и хА(-> g X, то вычислить /0 (**+>) и перейти к шагу XV; если **<+) g X и а^<-> ^ X, то вычислить /0 (л;^(-)) и перейти к шагу XVI; если xk<+) g X и я*<-> g X, то положить у = j + 1 и перейти к шагу VIII. X. Вычислить /0 (**<+>). XI. Если выполняется неравенство /о (**(+)) - /о И < - р*в^, E.85) то положить и перейти к шагу XVIII; иначе перейти к шагу XII. XII. Вычислить /0 (**->). XIII. Если выполняется неравенство /о (**->) - /о И < - РА/2', E.86) то положить и перейти к шагу XVIII; иначе перейти к шагу XIV. XIV. Если выполняется неравенство I/о (**<+Wo (**(->) I < 2р то перейти к шагу XVII; иначе положить j = / + 1 и перейти к шагу VIII. XV. Если выполняется неравенство E.85), то положить ; /0(о /о(); p*+i p*; +I , и перейти к шагу XVIII; иначе перейти к шагу XVII. XVI. Если выполняется неравенство E.86), то положить и перейти к шагу XVIII; иначе перейти к шагу XVII. 389
XVII. Если выполняются равенства ik = п\ хк == xk~ то положить и перейти к шагу XVIII; если 1кФ п или хкФ хк-п+\ то положить и перейти к шагу XVIII. XVIII. Положить k == k + 1 и перейти к шагу V. Теорема 1. Если выполнены предположения 0, функция /0 выпукла на X и множество ограничено (здесь jfi — начальное приближение в алгоритме 1),то алгоритм 1 порождает последовательность {л^}?=о, для которой lim inf \\xk где X* . {x* | f0 (x*) = min f0(x), x*?X). x?X 2. Случайный покоординатный спуск В методе случайного покоординатного спуска за направление движения в k-й итерации случайно выбирается /Л-й орт. Для вычисления шаговых множителей pk приводятся три различные правила, легко реализуемые на практике. Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение х°?Х. II. Задать векторы е\ ..., еп (здесь el, i == 1, ..., п — /-й координатный вектор). III. Положить k = 0. Основной цикл. IV. Найти независимую реализацию ik случайной величины /, которая принимает значения из множества {1, ..., п), соответственно, с вероятностями рх ===== 1//г, ..., рп =. 1/л. V. Вычислить частную производную VI. Вычислить шаговый множитель - min {*? - щы% ^- U W?}. если если 390
Здесь предполагается, что известна константа Липшица у в условии (i) предположения 0. Если константа у неизвестна, то pk вычисляется по формулам, приведенным в замечании 2. VII. Вычислить следующее приближение VIII. Положить k = k + 1 и перейти к шагу IV. Теорема Z. Если выполняется предположение 0 и множество ограничено (здесь х? — начальное приближение в алгоритме 2), то алгоритм 2 порождает последовательность {xk}ZL0, для которой с вероятностью 1 lim inf ||л;л — л:* | = 0, k?Xl где X*(A{x*|(V/0(x*), * — **)>0 для всех х?Х) — множество стационарных точек функции /0 (х). Если, кроме того, функция /0 (л:) выпукла на X, то с вероятностью 1 Замечание 2. Шаговый множитель pk на шаге VI алгоритма 2 можно выбирать из условия /о (** - Pkeik) < Kfo (**) + A - К) Щ, где 0 < % < %k < 1; wk = inf /0 (xk — ре'*)\ xk — ре*ь р В качестве pk также может быть выбрано любое число где б ? (О, 1]; ^ — наибольшее из чисел, удовлетворяющих неравенству д Для вычисления щ могут быть использованы следующие неравенства: при при Библиографические указания. Пункт 1 основан на результатах работы [161], а пункт 2 —на результатах работы [131]. 891
5.24. Релаксационные методы для общих задач нелинейного программирования Задача 0. Найти arg min f0 (x) для заданной функции х?Х f0i Rn-+ R1 и заданного множества Я = {* | ft (х) = 0, i = 1, ..., та gi (х) ^0, i = т1 + Предположения 0. (i) — функции /0 (jc), gt (x), i = 1, ..., m — непрерывно дифференцируемые. Определение 0. Точки х ? Х°, где называют внутренними точками множества X, а точки х ? Х\Х° — граничными. В приводимых ниже методах решение задачи 0 сводится к нахождению предельных точек (при t -> оо) решения х (х°, t) задачи Коши для системы где М (х) — матрица размера п X п, определяемая функциями ограничений задачи 0. 1. Непрерывный вариант Алгоритм 1 I. Выбрать произвольное начальное приближение х = я0 ? Х°. . П. Определить на полупрямой w ^ 0 непрерывную функцию | (w) скалярного аргумента такую, что l(w)>0 при ш>0 и ?@) = 0 (обычно принимают I (w) = ш). III. Вычислить п X m-матрицу ^ (х) (у которой (i, /)-й элемент есть dgj (х)/дхс). IV. Вычислить диагональную п X n-матрицу iZ) (ln (х)) (у которой /-е, / = 1, ..., л, диагональные элементы есть ^ (#/)). Если ограничения л:; ^ 0, / = 1, ..., /г, в задаче 0 отсутствуют, то следует положить JD Цп (х)) = /w, где /„ — единичная п X п- матрица. V. Вычислить диагональную m X /n-матрицу jZ) (gw (—g (x))) (у которой /-е, i = 1, ..., m, диагональные элементы есть ? (—ft (л:))). VI. Вычислить п X 1-матрицу V^fo W- VII. Вычислить п X п-матрицу М (х) - 0 (Г W) [/„ - [fc W)r iZ> (Г (х)) gx (х) + + $ (Г (~ g (*)))]""' (ЯГ, (^))Г ^ (б" MM. E.87) 392
где In— единичная п X я-матрица; индекс «Г» обозначает транспонирование. VIII. Найти решение х (х0, t) задачи Коши для системы х = — М (х) Vxf0 (л:), х@) = х?. E.88) Теорема 1. Пусть: (i) — на компактном множестве X функции /о (х>) ft (*)» i = !» ...у т — непрерывно дифференцируемы; (и) — на множестве X выполнены условия регулярности ограничений ft(*)<0, i=l, ...,m; */>0, /=1, ...,/z; (ограничения ^ (я) < 0, * = 1, ..., /и,и^> 0, / = 1, ..., пу удов- летворяют условию регулярности в точке х, если gt (х), i ? I, m— непрерывно дифференцируемы, а векторы е/, /g{/|^ = 0f / ? 1, п) и v?i Wt i € {* |ft W = 0, t G 1,/w} — линейно-независимы); (Hi) — все стационарные точки из множества X изолированы; (iv) — для каждого х° ? X система E.88) определяет единственное решение х (х°у t). Тогда для любых нестационарных точек х° ? Х° решение х (х°, f) системы E.88) сходится (при t ~> оо) к допустимой стационарной точке, в которой выполнены необходимые (в случае задач выпуклого программирования —и достаточные) условия минимума задачи 0. Теорема Т. Пусть: (i) — /0 (х) — выпуклая, непрерывно дифференцируемая функция; (и) —ft (х)у i = 1, ..., т — линейные функции; (Hi) — всюду на компактном множестве X выполнены условия регулярности ограничений ft(*)<0, t' = l, ..., m; */>0, /=1, ...,/г. Тогда решения системы E.88) (при t ->¦ оо) сходятся к множеству решений задачи 0 при любых xQ ? Х°. 2. Дискретный вариант Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение х° g Х°. II. Положить k = 0 Основной цикл. III. Вычислить V/o (xk). IV. Вычислить по E.87) п X n-матрицу М (xk). V. Вычислить значение шагового множителя pk, удовлетворяющее условиям теоремы 2. VI. Вычислить следующее приближение xk+x = xk — pkM(xk)Vf0(xk). VII. Положить k = k + 1 и перейти к шагу III. Теорема 2. Пусть выполнены условия теоремы 1 и условия (i) — IIWoW-V/o(y)||<7l^-H 0<7<оо, V5, у€*г (и) — функции gt (x), i = 1, ..., т — линейные; (Ш) — шаговые множители pk таковы, что , l/v, Шу}9 393
где \i = max max Hj?' ^ ; v = max max vt (x); /€[1:л] xeX °XJ ieiUm] xdX H(x, v) = fo(x)+% вектор v (x) u(v±(x)f ..., vm (x)) является решением системы линейных уравнений (все матрицы определяются в алгоритме 1) Kfc М)Т & (Г (х)) gx (х) + 0 (Г (- gx (х)))] v (х) + (iv) — скалярная функция ? (w) выбрана в виде I (w) = w. Тогда при любых нестационарных начальных точках л:0 ? Х° последовательность {a^jJLo, порожденная алгоритмом 2, сходится к допустимой стационарной точке, в которой выполнены необходимые (в случае задач выпуклого программирования и достаточные) условия минимума задачи 0, причем xk? Х°, /0 (xk+l) ^ /0 (xk) для k = 0, 1, ... . Если, кроме того, при всех х б X, г ? , где (т + п — тг) X (т + п — т^-матрица Н^ (х, v (л:)), определяется по формуле /&*H(x,v(x)) Нгг(х, v(x)) = v (x) = (xf71^1 (х), ..., vm (x)), 0 (v (x)) — диагональная матрица, элементы которой являются соответствующими координатами вектора v (л:), то для любой начальной точки л? ? Х° справедливо t dH{\vW) и последовательность {xk}t=o сходится к единственной точке минимума х* задачи 0. Здесь через 0 ((аI/г) обозначено диагональную т X т-матрицу, у которой диагональные элементы равны (a<)vs i = 1, ..., m, a =* = (al9 ..., ат). Библиографические указания. При написании параграфа была использована работа [139]. Другие сведения о сходимости методов, оценках скорости сходимости, рекомендации по практическому использованию методов, результаты экспериментального апробирования методов можно найти в работах [134, 136, 137, 138, 139]. 394
5.25. Методы фейеровских приближений решения задач выпуклого программирования с негладкими ограничениями 1. Общий случай Определение 1. Отображение г|>: Rn -*¦ 2Rn называется фейеров- ским, если \\г~У\\<\\х-у1 Класс фейеровских отображений обозначим через Ф и выделим подкласс Фо класса Ф условием Определение V'. Отображение г|э s /Г -> 2Rn называется замкнутым, если из соотношений \imxk = х'\ /г-*>оо yk = yp(xk), ft=l, 2, ...; lim #* = г/' следует #' б ^(^). Задача 1. Найти arg max (с, х) для заданного вектора с ? J?" ех<Ф> и заданного фейеровского отображения г|) g Фо. Алгоритм 1 Начало. I. Задать фейеровское отображение г|) ? Фо. II. Выбрать произвольное начальное приближение х° б Л". III. Положить & == 0. Основной цикл. IV. Вычислить шаговый множитель pkt удовлетворяющий условиям теоремы 1. V. Вычислить следующее приближение VI. Положить k == k + 1 и перейти к шагу IV. Теорема 1. Пусть выполняются условия: (i) — фейеровское отображение г|э ? Фо—замкнуто; (и) — множество X ^ X (ф) — ограничено; (Ш) — для некоторого б0 > 0 существует е0 > 0 такое, что — г|| — min||y — *|j>e0, (to)- рл>0, Л==0, 1, ...; limpfe = 0; ? Р* = °°- Л-»-оо Дг==О Тогда предельные точки последовательности {xk}t=o, порожденной алгоритмом 1, принадлежат множеству решений задачи 1. 395
Здесь Хб обозначает б-окрестность множества X. Замечание 1. Если для задачи найти argmax(c, х), c?Rnt E.89) |// E.90) с выпуклыми функциями /у (л:), / = 1, ..., т, и ограниченным множеством X фейеровское отображение *ф определить по правилу Ч>МД{* — Ьр(х, h)\h?G{x)}9 E.91) где параметр К б @, 2); f 0, если/(*)<0? I* I*, h) - ^ т f (х) = max /, (л:) или f(x)=* 2 max I0» // W)» G*(x) — множество обобщенных градиентов выпуклой функции / (•) в точке ху то условия (i), (и), (iii) теоремы 1 будут выполняться. Таким образом, решение задачи E.89) — E.90) можно получить с помощью алгоритма 1, в котором фейеровское отображение^ определяется по E.91). 2. Случай кусочно линейных ограничений Задача 2. Найти arg min (с, х) при ограничениях ?Х где с ?Rn; dl?Rn при /g[l:/n], / б ?/^,; a,/, /g[l:m], /§ б 1/^5 */» / б П : т] — действительные числа; t ^ 1 — натуральное число; t)t— множества индексов. Предположение 2. Множество решений X* задачи 2 непусто. Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение х°бДл. II. Выбрать произвольный параметр X б @* 2) и произвольные константы а/ > 0, / *= 1, ..., т. III. Положить k = 0. Основной цикл. IV. При каждом / б [1 : /п] вычисли^ индексы гц = mm {s | max [(d1, xk) — ац\ = (c/s, л:л) — a/s, s i = 1, ...,/, /= 1, ..., m. V, При каждом / б [1 : m] вычислить n-мерный вектор 396
VI. Найти Х-разделяющую пару (h (xk), |5 (xk)) по правилам' Л (**)=Е «/*'(**); т Г t 1 р (**) = g «/ [2! max [(с/<, **) - ау/] — 6, L Пара (h (xk), р (xk)) является Х-разделяющей, если для любого фиксированного хк? X полупространство, отвечающее неравенству содержит множество X. Х-разделяющую пару (А (я*), р (^fe)) можно также вычислить по формулам р (xk) - max [ V max [(^, xk) - ац\ — bf] . /€[l:m] Lt±i /€^t- J +> jk = arg max | V max [(c'7, **) — aji] — bf L ** g X, /€Ll:m] [^ /€^ 'J где [а]+= max {0, a}. VII. Вычислить значение pfe, удовлетворяющее условиям теоремы 2. VIII. Вычислить вектор IX. Вычислить следующее приближение X. Положить k = k + I и перейти к шагу IV, Теорема 2. Если выполняется предположение 2 и последовательность {p/JHo удовлетворяет условиям 00 Pfe>0; pfe-*O при &-*оо; Spft = °°> то последовательность {**}aLo, порожденная алгоритмом 2, сходится к элементу х*?Х*. Библиографические указания. Пункт 1 написан на основании работы [145], при написании пункта 2 использовались работы [140, 142, 143, 144, 146]. 397
5.26. Двойственные методы 1. Приближенный двойственный метод решения задач выпуклого программирования Задача 1. Найти argmax/0(#) для заданной функции х?Х /0: Rn -> R1 и множества где Q — выпуклое множество в Rn\ ft г Rn-+ R\ i = 1, ..., m. Предположения L (i) — функции ff (x), j = 0, 1, ..., m — выпуклые вверх на выпуклом множестве Q. Двойственной к задаче 1 является следующая задача Г: найти arg min g0 (у), где g0 (у) Л sup ср (х, у), ф (х, у) — функ- У>0 x?Q ция Лагранжа задачи 1. В приводимом ниже методе вводится модифицированная функция Лагранжа -ф (х, у) в виде г|) (х, у) = supj/o (х) + | (f, (x) - zt) yt -5 r, {ft (x) - *,)], E.^ где у = (yl9 ..., ym), z = (zlf ..., zm), rt (l) —дважды непрерывно дифференцируемая функция вещественной переменной I такова, что На k-й итерации алгоритма вычисляется точка xk, являющаяся приближенным решением некоторой вспомогательной задачи условной максимизации (точность решения вспомогательной задачи задается некоторой управляющей последовательностью), а точка yk+l вычисляется в направлении антиградиента модифицированной функции Лагранжа, вычисленного в точке (xk, yk). При определенных условиях получаемая последовательность двойственных переменных {yk}kLo будет сходиться к непустому множеству F* решений двойственной задачи, a {**}aLo будет являться обобщенным решением задачи 1, т. е. lim ft (xk) > 0, / = 1, ..., m, lim /0 (xk) = sup /0 (х). Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение двойственной переменной #°? Rm. II. Выбрать дважды непрерывно дифференцируемые функции rt (?)э i = \у ..., /п, вещественной переменной I такие, что МО)--^--0, ^>V>0, t-1 m. E.93) ? 398
III. Определить модифицированную функцию Лагранжа [т т Л М*)+ ?(/«(*)-*i)И- SМ/<(х)-г()\, где 2 = fo, ..., 4); # = (г/!, .... #J. IV. Положить & = 0. Основной цикл. V. Найти шаговый множитель pk и элемент 8fe управляющей последовательности, удовлетворяющие условиям теоремы 3. .VI. Вычислить точку хк ? Q, удовлетворяющую условию VII. Вычислить вектор Vyty(xk, yk) (градиент функции *ф (xf у) по переменной у в точке (#*, f/fe)) по правилу = min [U И, /, (f/*)}, 1 — 1 /п. где ^(л), f= 1, ..., т — функция, обратная функции VIII. Вычислить следующее приближение IX. Положить k = k + 1 и перейти к шагу V. Теорема 1. Пусть выполняется предположение 1 и пусть (и) — множество Y* решений двойственной задачи 1 непусто; (Hi) — управляющая последовательность {6fe}|Lo такова, что б,>0, * = 0, 1, ..., 2 F,)Vj<oo; (iv) — последовательность шаговых множителей {pfe}2Lo удовлетворяет условию <P<pfc<P<v, , , , где у — число, фигурирующее в неравенствах E.93). Тогда при произвольном начальном приближении у0 ? Rm последовательности {xk}Z=oy {yk)t=Q, порожденные алгоритмом 1, обладают свойствами /гьоо {xk}kL0 — решение обобщенной задачи, соответствующей задаче 1, т. е. Wmfi (xk) > 0, I = 1, . •., m, lim/0 (xk) = v9 еде v — экстремальное значение обобщенной задачи. 399
Замечание 1. Если дополнительно выполняется соотношение двойственности, т. е. v = и, где v — экстремальное значение двойственной задачи Г, то последовательность {xk}kLo, порожденная алгоритмом 1, является обобщенным решением задачи 1, т. е. \imfi (xk) > 0, i = 1, .. ., m; lim/0 (xk) = v. Здесь v — экстремальное значение задачи 1. Определение обобщенной задачи. Последовательность {xk}T=o9 xk ? Q (обозначим ее через w) является обобщенным решением задачи 1, если: а) существует конечный или бесконечный предел lim/0(x*) (обозначим этот предел через /0 (w)); б) Шп/,(**)>0, i = 1, .... т. Множество обобщенных решений задачи 1 обозначим через W. Задачу максимизации функции /0 (w) на множестве обобщенных решений W называют обобщенной задачей 1. Экстремальное значение v обобщенной задачи 1 определяется по формуле (sup/0(w), если v (—оо, если Глубже с понятием и свойствами обобщенной задачи можно ознакомиться в работах [80, 81]. Теорема Г. Пусть выполняется предположение 1, условия (и), (iv) теоремы 1 и пусть, кроме того, (v) — множество Y*— ограничено; (vi) — управляющая последовательность {б^}^о такова, что fc-Юо m Тогда для произвольного у0 ? Rm последовательности {xk}kLo, {yk}kLo9 порожденные алгоритмом 1, таковы, что min II yk — у* || -> 0, k -+¦ оо; m; где v — экстремальное значение задачи 1. 400
Для выполнения условий (и), (v) теоремы достаточно, чтобы выполнялось условие Слейтера для задачи 1. Замечания. В работе [549] частичные случаи приведенных выше теорем получены для модифицированной функции Лагранжа при 2. Двойственный алгоритм переменной метрики Задача 2. Найти argmin/0(x) для заданной функции /0 : Rn ->- R1 и множества где g, : Rn^R\ j = 1, ..., m; /, : Дп- i?1, / - 1, ..., /. В дальнейшем будем обозначать g (х) = (gi (л:), ..., gr (x))y f(x) = (fi(x), ...,f,(x)). Предположение 2. (i) — существует тройка Куна — Таккера 2*= (х*, и*, у*) задачи 2; (и) — функции Д- (х), / = 1, ..., / и gy (x)t j = 1, ..., /л, имеют непрерывные по Липшицу вторые производные в окрестности точки л:*. Определение 2. Тройка Куна — Таккера г*= (л:*, и*, ?>*) задачи 2 удовлетворяет условиям единственности якобиана, если выполняются одновременно следующие условия: а) и, > 0, если / g gf ^ {/1 ft (x*) = 0}; б) векторы Vgj (x*)f ]'?&, Vfi(x*), i = 1, ..., / — линейно- независимы; в) для каждого ненулевого вектора у, удовлетворяющего равенствам выполнено где >7^Ф (**) — матрица вторых производных по х функции Лагранжа Ф (г) = /о W + "Tg (х) + vTf (х), z = (х, w, v), вычисленная в точке z*= (л:*, и*> v*). Алгоритм 2 Начало. I. Выбрать начальное приближение z°= (jc°, u° v°) 6 Rn+m+l для тройки Куна — Таккера z* = (а:*, а*, а*) задачи 2. II. Выбрать начальное приближение Ао для матрицы, обратной к гессиану функции Лагранжа задачи 2, вычисленному в точке г*. 401
III. Положить k = 0. Основной цикл. IV. Найти ближайшую точку Куна — Таккера (а*+1, vk+l) для задачи квадратичного программирования arg min [4> (V/o (**) + Vg (xk) u + Vf (xk) vf Ak (V/o (**) + + Vg (Xk) U + Vf {Xk) V) — UTg (Xk) — VTf (**) 1 E.94) при ограничении и ^ 0. V. Вычислить вектор xk+i = xk — Ak [V/o {xk) + Vg (xk) uk+l + V/ (xk) vk+l) и положить zk+l = {xk+\ uk+\ vk+l). VI. Вычислить матрицу Ak+u положить fe = fe+ 1 и перейти к шагу IV. Теорема 2. Пусть выполняются предположения 2 и (ш) — тройка Куна — Таккера z*= (x*, и*, v*) удовлетворяет условию единственности якобиана; (iv) — матрица VL<P B*) вторых производных по х функции Лагранжа задачи 2 неособенная. Тогда для любого а ? @, 1) существуют два положительных числа 8 (а) и б (а) таких, что если \\{х\ и\ ^)-2*||<8(а) и Ak— симметричная п X п-матрица, удовлетворяющая неравенству то существует решение (uk+l> vk+l) задачи E.94) такое, что -ближайшая к (xk, uk, vk) точка (**+1, uk+l, vk+x) удовлетворяет неравенству \(xk+\ uk+\ vk+1) — 2*1<а||(^, u\ vk) — 2*|). Теорема 2'. Пусть выполнены все предположения теоремы 2 и пусть {sfe}2Lo — последовательность положительных чисел, удовлетворяющая уСЛОвиЮ Sk^ k, k = 0, 1, ..., Sk+l > Sk. Если в алгоритме 2 z° достаточно близко к г* и еде {Р^}?=о — последовательность неотрицательных чисел, ограниченная достаточно малым числом, то последовательность {zk)kL0, порождаемая алгоритмом 2, существует и сходится к z* no крайней мере с линейной скоростью. Если, кроме того, sk-* 00 и рй-> 0 при k-+ 00, то {z*}j?=o сходится к z* no крайней мере сверхлинейно. Теорема 2". Пусть выполняются предположения 2 и начальная точка г° и начальная матрица Ао достаточно близки к z* и VL<P B*) соответственно. Тогда, если в алгоритме 2 матрицы 402
Ak+ь k = О, 1, ..., вычислять по рекуррентной формуле А А , (h-Aky)hT + h(h-Aky)T yT(h-Aky)hhT где то последовательность {z*}*L0, генерируемая алгоритмом 2Р существует и сходится сверхлинейно к z* Замечание 2. В [490] отмечается, что локальная сверхлинейная сходимость может быть достигнута также в случае, когда матрицы Аи+\ вычислять по одной из следующих формул: ly (h — A^h7 + h(h — Aky)T Ak+l = Ak + + m Tr ^- ; E.95) л , 2yTy Если дополнительно предполагать, что матрица VL<P B*) по~ ложительно определенная, то теорема 2" справедлива для алгоритма 2, в котором матрицы Ak+u k = 0, 1, ..., вычисляются по следующей рекуррентной формуле +y(h-Aky)T yT(h-Aky)yyT У У (У7УJ Библиографические указания. Пункт 1 основан на результатах работы [871„ при написании пункта 2 использовались работы [488, 490]. 5.27. Глобально сходящийся метод Задача 1. Найти arg min /0 (х) для заданной функция /0 : Rn -> R1 и множества 0, /=l, ..., m, TAeff:Rn^R\ /= 1, ...f m. Предположения 1. (i) — функция /0 (а:) ограничена снизу в Л"; (и) —функции /, (л:), i = 0, 1, ..., m — непрерывно дифференцируемы в Rn\ (Hi) — функции // (л:), / = 1, ..., m — выпуклы. В приводимом здесь методе на k-й итерации для определения направления движения к следующему приближению я**1 решается 403-
некоторая вспомогательная задача квадратичного программирования, а для определения шагового множителя решается (приближенно) задача одномерной условной минимизации. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение *° е r\ II. Выбрать произвольную последовательность {ч)Т=о та- оо кую, что е^> 0, k = 0, 1, ..., 2 Ч < °°- III. Выбрать произвольные константы а > 0 и б > 0. IV. Определить функцию a ? где [а]+= max {0, а}. V. Положить k = 0. Основной цикл. VI. Найти матрицу #fe, удовлетворяющую условию (vi) теоремы 1. VII. Вычислить решение hk следующей задачи квадратичного программирования: найти argmin[(V/0(**), h) + ±-(Hkh9 ft)J при ограничениях VIII. Вычислить шаговый множитель pk? [0, б], удовлетворяющий неравенству ga (xk+pkhk) < min ga (xk + phk) + ek. IX. Вычислить следующее приближение xk+i ^ xk + p^ X. Положить & = ^ + 1 и перейти к шагу VI. Теорема 1. Пусть выполняются предположения 1 и (iv) — множество X компактно; (v) — множество Х»Д{*!/,.(*)<0, /=1, ..., т, хбД11} — непусто; (vi) — существуют положительные числа рх и р2 т^т кие, что для каждого k ^ 0 и для любого х ? Rn выполняется Тогда для любого начального приближения х? ? Rn существует положительное число а такое, что если в алгоритме 1 константу a выбрать из условия a^ max {a, l}t 404
то предельные точка последовательности {xk}t=Qy порожденной алгоритмом 1, являются точками Куна — Таккера задачи 1. Библиографические указания. Параграф написан на основании работы [489]. 5.28. Стохастические квазиградиентные методы Задача 0. Найти arg min /0 для заданной функции /0 : Rn -»¦ -> Rl и заданного множества X a Rn. Предположения 0. (i) — функция /0 выпукла вниз; (и) — множество X выпукло и замкнуто. Стохастические квазиградиентные методы применяются для решения задач оптимизации, в которых нет достаточно полной информации о функциях цели, функциях ограничений и их производных. Эти методы основаны на понятии стохастического квазиградиента — случайного вектора ?Л, удовлетворяющего равенству где ак—неотрицательная случайная величина, bk — случайный вектор, измеримые относительно a-подалгебры, индуцированной се- мейством случайных величин (л?, ..., xk)\ V/o (#*)—обобщенный градиент функции /0 в точке xk. Приведем примеры вычисления стохастических квазиградиентов для функции /0. Пример 1. Пусть функция /0 (х) имеет ограниченные вторые производные. Рассмотрим вектор |3 = (plf ..., pj с независимыми и равномерно распределенными на [—1, 1] компонентами. Тогда вектор стохастического квазиградиента в k-ft итерации можно вычислять по формуле М^ + А/'У/оИ ak,s р ре pAfS, s==l, ..., sk— серия независимых наблюдений р Э k-и итерации, причем sk^ I; Afe>0. Если случайные величины 4, А^ измеримы относительно a-подалгебры 9$ky индуцированной ^величинами х°, ..., xk, то условное математическое ожидание такого вектора равно где vk— некоторый случайный вектор, измеримый относительно »*> I о* К const. Пример 2. Пусть функция /0 (х) имеет вид 405
где р{^ О, S Pt = 1» и пусть функции ft (x), i = 1, ..., г — дважды непрерывно дифференцируемы. Введем случайную величину v, которая принимает значения 1, 2, ..., г с вероятностями р19 /?2, ...,/?г. За вектор стохастического квазиградиента в k-й итерации можно взять р где vk — реализация случайной величины v в k-й итерации, вектор Р iS и числа sk, Ak такие, как и в примере 1. Условное математическое ожидание такого вектора где vk— некоторый случайный вектор, измеримый относительно ®k> II vk II < const. Пример 3. Пусть функция /0 (х) имеет вид /0 (*) = max /(*, у), где / (л:, у) — выпуклая вниз по х, дважды непрерывно дифференцируемая по х при каждом у функция; Y — выпуклое компактное множество. Обобщенным градиентом функции /0 в точке х является вектор где вектор у (х) такой, что /(*> y(x)) = maxf(x, у). За вектор стохастического квазиградиента в k-й итерации можно взять где вектор p**s и числа АЛ, sfe определяются как и в примере I. Условное математическое ожидание такого вектора равно где vk — некоторый случайный вектор, измеримый относительно ®k> II и* II < const. Пример 4. Если /0 (х) = EF (л:, со) и выполнены требования, достаточные для дифференцирования под знаком математического 406
ожидания, то в качестве ?* можно брать VXF (xk, со), так как Е (lklxk) = V/o (xk), или где p*'s определены в примере 1. I. Метод проектирования стохастических квазиградиентов Алгоритм 1 Начало. I. Выбрать произвольную начальную точку я0 ? ^ Я", для которой Е | л^ f < оо, задать последовательность шаговых множителей {p/JILo и последовательность нормирующих множителей {Yfc}jfeLo« II. Положить & == 0. Основной цикл. III. Вычислить случайный вектор \k (со), условное математическое ожидание которого где ak— неотрицательная случайная величина и 6fe= (b\ , ..., Ьп) — случайный вектор, зависящие от последовательности д^, ..., xk, или, более точно, измеримые относительно а-подалгебры 3$k, инду- цированной семейством случайных величин (к0, ..., xk); V/o (xk) — обобщенный градиент функции /0 (•) в точке хк. IV. Вычислить вектор x*+i = пх (xk — p<Y/?* (со)), E.96) где пх— оператор проектирования на множество X. V. Положить k = k + 1 и перейти к шагу III. Теорема 1. Пусть имеют место предположения 0 и пусть, кроме того, для любого числа w < оо найдется такое число cw<C оо, что J?(|g*P/*°, .... **)<тJ<сш я/ш 1М|<ш, 1 = 0, ...,?. Кроме того, величины рл, у* измеримы относительно 3$k и такие, что X const, Тогда найдется подпоследовательность хк* последовательности {^}|Lo, порожденной алгоритмом 1, для которой *') = /о (X*) П. Н9 /-VOO 407
или lim min /0 (xl) = f0 (x*) п. н. Теорема Г. Пусть в дополнение к условиям теоремы 1 множество X* ограничено. Тогда inf Е\х* — xkf->-О при ?~>оо. х*?Х* Для последовательности точек х0, х1, ..., порожденной алгоритмом 1, в котором на шаге IV процедура E.96) заменена процедурой HMeef место следующая теорема Г', дающая оценку скорости сходимости. Теорема 1". Пусть выполнены предположения 0 и пусть существуют такие постоянные |$ и X, что при х ? X, и с вероятностью 1 E(\Vfl#, .... Кроме того, pk детерминированные и Тогда существует такое число ck ^ const, что при pk = cklk последовательность {&)м с* вероятностью 1 сходится к единствен* ному решению х*, причем Определение 1. Пусть G — некоторое подмножество пространства J?". Последовательность zs (со), s = 0, 1, ..., случайных векторов называется случайной квазифейеровской последовательностью относительно множества G, если для произвольной точки у ? G где случайные величины Ws (со) ^ 0 являются измеримыми относительно а-подалгебры $s, индуцированной семейством (Д ..., zs) и такими, что ? EW,<оо. s=0 Теорема Г". Пусть имеют место предположения 0 и пусть r\k — случайная величина, измеримая относительно о-подалгебры 35k, индуцированной величинами (л:0, х1, ..., xk), такая, что для любого w и некоторого числа cw . E.97) 408
при |^|<ш, s == О, 1, ..., k\ нормирующий множитель yk для некоторых чисел у, у удовлетворяет условию где тА= 1, если || bk || > О и %к = О, если || bk || = О; величины pfe, ak, bk такие, что Р*>0, afe>0, 5«(Р*1**1 + Р|)<оо; E.98) /г=О начальная точка х° такая, что Е (|| #° |)а < оо. Гог<Эа последовательность точек xk, k = 0, 1, ..., порожденная алгоритмом 1, является случайной квазифейеровской относительно множества X*. Если же, кроме того, с вероятностью 1 ikoPfe(X* то почти для каждого со последовательность {xk (co)}?Lo сходится к некоторому элементу х* (со) ? X*. ^ Замечание L Условия теоремы V" легко проверяются при решении конкретных задач. Заметим, что /I отсюда, например, следует, что если сумма дисперсий У1 D (?//$*) компонент вектора 6ЛДE*, ..., In) ограничена в области X, а /ч также ограничены a^, f V/o (xk) ||, || bk ||, то r]fe= const, т. е. E.97) выполняется. Справедливость этого условия в реальных задачах обычно является следствием ограниченности области X. Замечание Г. Если^область X ограничена, то утверждение теоремы Г" остается справедливым при yk = const. Замечание 1". Утверждение теоремы У" остается справедливым также и при следующих (иногда полезных) изменениях условий: || bk | удовлетворяет условиям, аналогичным E.97) т. е. | bk \ ^ cw при | a:sK ш, s = 0, 1, ..., А; нормирующий множитель yk удовлетворяет условиям где7 — некоторое число; 8k, rk — величины, измеримые относительно 3$k\ вместо E.98) справедливы условия E(pkbk + #«)<оо. 409
2. Стохастический метод сокращения невязок в детерминированных задачах Задача 2. Найти arg min /0 (х), где X = X f] {*|// (*) < О, / = 1, ..., w}, XczRn — заданное множество, a ft : Дп-> Я1, f =* = 0, ..., я*— заданные функции. Предположения 2. (i) — функции // («): / = 0, 1, ..., т — непрерывные и выпуклые вниз в области л; (и) — множество X выпуклое и замкнутое; (Ш) — ограничения задачи 2 удовлетворяют условию Слейтера, поэтому функция Лагранжа ? /=1 имеет седловую точку (**, а*) в области х ? X, и > 0 (и = («х, w2, ..., ит)), причем множество {и*} компонент седловых точек W = = {(л:*, а*)} ограничено. Стохастический метод сокращения невязок является своеобразным стохастическим вариантом градиентного метода Эрроу — Гур- вица. Однако, здесь не делается предположения о точном вычислении функций fj (х)у j =я 0, 1, ..., т. Стохастический метод сокращения невязок основан на применении функции Лагранжа E.99), седловые точки которой вычисляются с помощью методов стохастических квазиградиентов. Алгоритм 2 Начало. I. Выбрать начальную точку (к0, и0) ? Rn X Rm, для которой Е (\\х? f + || и0 р) < оо. II. Выбрать последовательность шаговых множителей {р^}*1о (измеримых относительно 3$k). III. Выбрать последовательность нормирующих множителей {Тл}?=о (измеримых относительно 33k). IV. Положить k =» 0. Основной цикл. V. Вычислить реализацию случайного вектора 6*t удовлетворяющего равенству где случайная величина ak > 0 и случайный вектор 6* измеримы относительно а-подалгебры 0Bk, индуцированной семейством вели- чин (х°, w°), ..., (х*, uk); V*q> (л:л, мл) — вектор обобщенного градиента функции Лагранжа E.99) по переменной х при фиксированном и в точке (**, uk). VI. Вычислить реализацию случайного вектора ?*, условное математическое ожидание которого Е (?/(*, и% ..., (**, а*)) « а,УмФ (x»f ^) + dft, где dk— случайный вектор, измеримый относительно а-подалгебры 3$k\ Vuq> (xh, uk) — градиент функции Лагранжа по переменной 410
и при фиксированном х в точке (xk, uk), который равен вектору </i (**). h И, .-, fM (xk)). VII. Найти точку (#*+1, ил+1) по формулам где л^—оператор проектирования на выпуклое и замкнутое множество (/, содержащее компоненты и*седловых точек (х*> и*) функции Лагранжа <р (лс, у) в области л: б X, и > 0. VIII. Положить ? = & + 1 и перейти к шагу V. Теорема 2. Пусть имеют место предположения 2 и, кроме того, /о (*) — строго выпуклая функция. Пусть %— случайная величина, измеримая относительно о-подалгебры 3$k, индуцированной величинами (хР, и0), ..., (xk, uk) такая, что E(\\lk||2 + II?*||2/(*°, и% ..., (**, и*))< fjj<сш< оо npw || xs || + || us | ^ до <; с», s = 0, 1, ..., k\ нормирующий множитель yk для некоторых чисел у, у удовлетворяет условию где тл = 1 при || 6fe || > 0 и xk = 0 при [| 6* || = 0; Эл = 1 при dk || > 0 и Эй = 0 при | dk \ == 0; величины pfe, afe w векторы bkt dk такие, что ~- EЛ00> Тогда последовательность точек {(xk, uk))%=o> порождаемая алгоритмом 2, является случайной квазифейеровской последовательностью относительно множества седловых точек W. Если при этом с вероятностью 1 00 fc=0 то с вероятностью 1 одна из предельных точек последовательности принадлежит X*, т. е. почти наверное Замечание 2. Утверждение теоремы 2 остается справедливым при условиях Р*>0, ал | cw при |И| + |И|<ш, s-0, 1, нормирующий множитель 7а удовлетворяет условиям 4П
где 7 — некоторое число; величины rk, &k измеримы относительно Замечание 2'. Если предположить, что функции //(•)»/= 0. Ь- ..., т, вычисляются точно и функция Лагранжа имеет по х вторые производные, ограниченные в области х? X, и? U, то на шаге V алгоритма 2 можно взять вектор 8=1 где fi*'s, s= I, ..., sk — серия независимых наблюдений вектора = (Pi»..., Рп) с независимыми и равномерно распределенными на —1, 1] компонентами в k-й итерации, причем sk^ I, Ak > 0; на шаге VI алгоритма 2 в качестве tfe можно взять вектор Тогда где | vk I ^ const; = ^У„ф(д:\ и*) 3. Метод сокращения невязок в задачах стохастического программирования Задача 3. Найти arg min f0 (#), где (xt со), / = 0, 1, .... m; X с: Д"— заданное множество; Fj : RnX Q -+ R1 — заданные функции. Для функций /у, / = 0, 1, ..., т, и множества X выполняются предположения 2. Алгоритм 3 Начало. I. Выбрать произвольную начальную точку (л:0, и0) € Rn X Лш. II. Задать шаговый множитель р0, нормирующий множитель 70 и величину смешения Ао, удовлетворяющие условиям теоремы 3. III. Положить k = 0. Основной цикл. IV. Вычислить вектор 6 - 412
где o)*'v, v = О, 1, ..., п — серия независимых по k наблюдений .«состояния природы со» (в частности, можно взять <ю*'°= со*»1 = •„ ... = ©*•*= со*); функция Ф (х9 щ со) определяется по правилу т Ф (х, и, со) = Fo (х, со) + Е ufFf (x> ®)* здесь и = (иъ ..., ит)\ ё, i = 1, ..., п — ий орт. Условное математическое ожидание вектора lk равно Е {lk/xk, uk) = У^ф (я*, «fe) - где функция к, и, со); yfe— некоторый вектор, для которого | vk \\ ^ const, т. е. вектор lk является стохастическим квазиградиентом функции ф (х, и) в точке (xk, uk). . V. Вычислить вектор VI. Вычислить вектор где F ~ (Flf ..., Fm); множество [/ определено в пункте 2. VII. Вычислить шаговый множитель р*+ь нормирующий множитель y*+i и величину смещения по координатным осям А^+ь удовлетворяющие условиям теоремы 3. VIII. Положить k = k + 1 и перейти к шагу IV. Теорема 3. Пусть выполнены предположения 2 и, кроме того, функции //, / = 0, 1, ..., т, имеют ограниченные в области X вторые производные и f0— строго выпуклая функция. Пусть: (*) — "Л/? — случайная величина, измеримая относительно о-под- алгебры, индуцированной величинами (я0, и0), ..., (xk, uk)> такая, что #(ОТ + ||№> со^°)||2/(л:0, 09), ..., {х\ «*))<т||<Р(Х)<оо при \xs\\ +|| ws|<X<oo, s = 0, 1, ..., k (здесь р (X) и X — ограниченные константы); (й) — нормирующий множитель yk для некоторых чисел у\ у" удовлетворяет условию где т^= 1 при \\г^\\> 0, тЛ= 0 при || с;Л || = 0; (ш) — шаговый множитель pk и величина смещения по координатным осям Afe детерминированные и такие, что 413
Тогда с вероятностью 1 одна из предельных точек последовательности {a^}J?Lo, порожденной алгоритмом 3, принадлежит X*, т. е. почти наверное Hm(mln/e (**))«/,(*•), s» O^ft^s 4. Гибридный стохастический метод Задача 4. Найти arg min /0 для заданных множеств X сг х?ХГ\А <=Rn и А = {*|Ш<0}. Предположения 4. (i) —функция/0 (•) —непрерывна и выпукла вниз; (и) — множества X и А — выпуклые и замкнутые; (Hi) — А П ХФ0. Приводимый гибридный стохастический метод поиска экстремума функции /о (•) сочетает в себе идеи стохастического релаксационного метода для решения систем неравенств и стохастического квазиградиентного метода для решения задач нелинейного программирования. Алгоритм 4 Начало. I. Выбрать начальную точку л? ? /Г, для которой Я|*°Р<оо. II. Задать последовательности шаговых множителей [С )ОО л ( \ ОО {ofe}*=0, {р*)*=о. III. Задать последовательности нормирующих множителей IV. Положить k = 0. Основной цикл. V. Вычислить случайный вектор lkf условное математическое ожидание которого Е №\ ..., х*) = oc,V/o (х*) + b\ E.101) где ak— неотрицательная случайная величина и У1 — случайный вектор, измеримые относительно а-подалгебры 3$кУ индуцированной семейством случайных величин (л^, ..., xk);Vf0(xk) — вектор обобщенного градиента функции /0 в точке xk. VI. Вычислить случайный вектор ?*, условное математическое ожидание которого Е A4А .. • , **) = Kg И + d\ E.102) где %k — неотрицательная случайная величина и dk — случайный вектор, измеримые относительно а-подалгебры ЯЛ; g (xk) — вектор, для которого полупространство, отвечающее неравенству (?(*)> г — *) + /(*)<0, E.ЮЗ) при х = xk содержит множество Л, если xk? A. 414
VII. Найти вектор \nx(xk-pkyklk), /(**)<0. VIII. Положить ? = 6 + 1 и перейти к шагу V. Теорема 4. Пусть имеют место предположения 4 и пусть % случайная величина, измеримая относительно а-подалгебры ZBk, такая, что для любого числа w < оо найдется число сш, для которого как только || Xs К ш, s = 0, 1, .... й; для некоторых чисел, у, у нормирующие множители f5s и у* удовлетворяют условиям Ti (k) = 1, если || dk || > 0, тх (k) = 0, если || dk || = 0; т2 (k) 1 6* I > 0, t2 (Л) = 0, еслы | 6* || = 0; величины pk, bk, ak, \ и векторы bk, dk такие, что случайная последовательность {#*}?=()> порожденная алгоритмом 4, является случайной квазифейеровской относительно множества X*. Если же, кроме того, с вероятностью 1 оо оо /по она сходится к некоторому элементу х*? X* почти наверное. Замечание 4. Если, например, f(x) = max /, (х) Д fi{x) (л:), где функции Д (л:) — выпуклые вниз и непрерывно дифференцируемые; / (х) — индекс, на котором достигается max ft (x) при за- i данном х, то вектор g (х) = УД (х) \ы&) удовлетворяет неравенству E Л 03). Замечание 4'. Отметим, что на шаге VII алгоритма 4 используется стохастический релаксационный метод для решения системы неравенств где / (*) = max ft (x). Библиографические указания. При написании параграфа использовались работы [149, 153]. 415
5.29. Комбинированный метод стохастических градиентов и штрафных функций Задача 1. Найти arg max /0 (х) для заданной функции foi Rn -+ R1 и заданного множества 9 /=1, ..., m, x?Y). Предположения 1. (i) — функции /;- (х), / = 0, 1, ..., т — непрерывны вместе со своими производными; (И) — функции /; (х), / = 0, 1, ..., т — вогнуты; (Hi) — Y — выпуклый компакт из Rn. * В приводимом здесь методе определяются функции т g% {х, а) = /0 (х) — а ? Pi | min @, /, (х)} \х 1=1 (здесь т > 1 — константа; а — коэффициенты штрафа, стремящиеся к бесконечности; pif i = 1, ..., т — выбранные вероятности) и для отыскания их максимума применяется метод стохастического градиента. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение А* б К. т II. Задать числа ph i = 1, ..., т (pt > О, I = 1, ..., т\ J] р^ = 1), которые, соответственно, характеризуют требуемую относительную точность выполнения ограничений-неравенств в задаче 1 (обычно pt = 1/m, / = 1, ..., т). III. Выбрать параметр т> 1. IV. Положить k = 1. Основной цикл. V. Найти независимую реализацию ik случайной величины /, которая принимает значения из множества V = {1, ..., т}, соответственно, с вероятностями ръ ..., рт. VI. Найти значения шагового множителя pk и коэффициента штрафа ak, удовлетворяющие условиям теоремы 1. VII. Вычислить стохастический градиент ?* функции gx (x} ak) в точке xk lk - V/, И + akx | min {0, f,k (x*)} f"' V/,ft (x"). VIII. Вычислить следующее приближение IX. Положить k = k + 1 и перейти к шагу V. Теорема 1» Если выполняются предположения 1, множество X — непусто и числовые последовательности {pfe}ILi, {a/j}?Li удовлетво- 416
ряют условиям ?->00 ak > 0, lim ak = оо, <x*+i > aft, 2 (pfea*J < oo, ?->00 fc=l то для любого начального приближения к1 последовательность [xk)kL\> порождаемая алгоритмом 1, с вероятностью 1 сходится к Arg max f0 (х) — множеству решений задачи 1. х?Х Замечание 1. Алгоритм 1 в [372] рекомендуется применять для решения задач математического программирования с большим числом ограничений (в особенности для тех задач, ограничения которых могут формироваться по мере надобности в ЭВМ) и для решения задач с блочной структурой. Библиографические указания. При написании параграфа использовалась работа [372]. 5.30. Методы усреднения направлений спуска 1. Детерминированная задача Задача 1. Найти arg min /0 (х) для заданной функции х?Х f0 : Rn -* R1 и множества X, заданного соотношением X = Хг П Х%9 где Хх= {х | // (х) ^ 0, / = 1, ..., m, x?Rn}; X2—выпуклое, замкнутое, ограниченное множество. Предположения 1. (i) — функции /у, / = 0, 1, ..., т — выпуклы; (И) — множество Х2 имеет непустое пересечение с множеством внутренних точек множества Хг. Ниже приводятся два алгоритма усреднения направлений спуска, первый из которых требует вычисления субградиентов функций //, / = 1, ..., т, а второй — лишь вычисления значений функций /,-, / = 1, ..., т. Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение II. Выбрать произвольное натуральное число /. III. Положить k = 0. Основной цикл. IV. Вычислить шаговый множитель pk, удовлетворяющий условиям теоремы 1. V. Если выполняется неравенство max /, (xk) < 0, l/ то положить vk = 0 и перейти к шагу VII, иначе перейти к шагу VI. 14 3'341 417
VI. Вычислить индекс i'g[l r m], удовлетворяющий условию max VII. Вычислить субградиент V/^ (**) функции /Vjfe в точке дА положить vfe = i и перейти к шагу VII. VII. Вычислить субградиент V/^ (* VIII. Если & ^ /, то вычислить вектор и перейти к шагу IX; иначе вычислить вектор hk по формуле и перейти к шагу IX. IX. Вычислить следующее приближение где пх2 (х) — оператор проектирования на множество Х2 точки х б Д". X. Положить Л = ^ + 1 и перейти к шагу IV. Теорема 1. Если выполнены предположения 1 и условия р*>о, а«о, 1, •••; 2?* = °°; р*-*о при й-^оо, то при любом начальном приближении х° ? Лл найдется подпосле* довательность {я*'}Но последовательности {a;*}aLo, порожденной алгоритмом 1, такая, .что Нт/о(л;*0 = т1'пМл;). , /с/7ол<б того, /0 — строго выпуклая функция, то где Алгоритм V Начало. I. Выбрать произвольное начальное приближение II. Выбрать произвольное натуральное число /. III. Положить k = 0. Основной цикл. IV. Вычислить шаговый множитель pk и параметры 6Ъ afe, удовлетворяющие условиям теоремы Г. V. Если выполняется неравенство max/,(**)< 0, то положить vk = 0 и перейти к шагу VII; иначе перейти к шагу VI.- 418
VI. Вычислить индекс i?ll : nil, удовлетворяющий условию /,(**) = max//(**), положить vfe == / и перейти к шагу VII. VII. Вычислить реализацию хк случайной точки, равномерно распределенной в д-мерном кубе с центром в точке xk и стороной ak. VIII. Вычислить вектор где е\ i =*= 1, ..., п — i-й орт. IX. Если k ^ /, то вычислить вектор Л*= ? б'" и перейти к шагу X; иначе вычислить вектор hk по формуле ,«0 и перейти к шагу X. X. Вычислить следующее приближение XI. Положить k = k + 1 и перейти к шагу IV. Теорема Г. Если выполнены предположения 1 и условия ОО 09 Р*>0, ? = 0, 1, ..., EPfe = °°> Sp|<oo; то с вероятностью 1 существует подпоследовательность {*'}?* последовательности {л:л}?=о, порожденной алгоритмом 1, такая, что \imfo(xki)=*mmfo{x). Если, кроме того, /0 — строго выпуклая функция, то с вероятностью 1 lim xk = **, где 14* 419
2. Стохастическая задача Задача 2. Найти argminEF0{x, со) (EF0(x9 (o)U^FQ(x, co)fx(dco)) для заданной функции Fo i X X Q ->• Д1 и заданного множества А ей". Предположения 2. (i) — функция /0 — непрерывно дифференцируема и выпукла вниз в области Х\ (и) — X — выпуклое и замкнутое множество. В приводимом непоисковом алгоритме адаптивного управления на fe-й (k ^ р0) итерации делается только одно измерение (вычисление) функции Fo. Для вычисления направления движения lk к следующему приближению xk+] используется известная информация из ръ (pk^ 1) предыдущих итераций k lk - Ц -т- (ро & + As0S. <*S) ~ f о (^^! + As-iO5-1, со8'1)) 0s, где \ > 0; {es}^-pfc — серия независимых наблюдений случайного вектора Э с независимыми и равномерно распределенными на [—1, 1] компонентами. Алгоритм 2 Начало. I. Выбрать начальное значение параметрам, удовлетворяющее условиям теоремы 2. II. Найти! начальные точки xk9 k = 0, 1, ..., р0, принадлежащие множеству X; векторы 9*, k = 0, 1, ..., р0 — серию независимых наблюдений случайного вектора 0 с независимыми и равномерно распределенными на отрезке [—1, 1] компонентами; реализации со*, k = 0, 1, ..., р0 случайного события со. III. Задать смещения А^ k = 0, 1, ..., р0, удовлетворяющие условиям теоремы 2. IV. Положить k = р0. Основной цикл. V. Вычислить параметр pk и вектор VI. Вычислить шаговый множитель pfe и нормирующий множи* тель yk, удовлетворяющие условиям теоремы 2. VII. Вычислить следующее приближение VIII. Найти независимое наблюдение 0*+1 случайного вектора 0 с независимыми и равномерно распределенными на отрезке [—1, 1] компонентами, IX. Найти реализацию со**1 случайного события со, 420
X. Найти смещение Д*+ь удовлетворяющее условиям теоремы 2. XI. Положить k = k + 1 и перейти к шагу V. Теорема 2. Пусть выполнены предположения 2 и имеют место условия: (i) — градиент функции /0 удовлетворяет глобальному условию Липшица, т. е. при х> у ? Rn x-y\> cc1<oo; (и) — известна величина РЛ такая, что — Fo(х™ + Awew, о'-1))9' f/xk~pk+\ ..., **)<р|<б(т)< оо p || xs || ^ т < оо, s = й — pfe, ..., ft; (iii) — нормирующий множитель yk удовлетворяет условию (iv) — величина Afe, pk и pfe такие, что -i<°o, 2 (pfe/AfeJ<oo. последовательность случайных точек [xk (со)}?=01 порожденная алгоритмом 2, является случайной квавифейеровской относительно множества решений X* задачи 2. Если, кроме того, выполняется условие (v) — $] Pk= °°> то почти для каждого оо последовательность {xk (co)}*lo сходится к решению задачи 2. Библиографические указания. Пункт 1 написан на основании работ [96, 97, 308, 309, 379, 380], пункт 2 основан на результатах работы [53]. 5.31. Прямой метод решения задач стохастического программирования Задача 1. Найти arg min E&f0 (x, со) для заданной функции х?Х /0: й" X й ч- й1 и заданного множества где X1— некоторое множество пространства Нп. Предположения 1. (i) — X1— выпуклое, замкнутое и ограниченное множество; (И) — E(ufi (х, со), i = 0, 1, ..., /п — непрерывные, выпуклые вниз функции. 42!
Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение x??Rn\ произвольные числа z?, i = 1, ..., m; достаточно большую константу 6 > 0. II. Положить k = 0. Основной цикл. III. Найти шаговый множитель pk и множитель ak> удовлетворяющие условиям теоремы 1. IV. Если выполняется условие max г\ ^ 0, то положить / = О и перейти к шагу VI; иначе перейти к шагу V. V. "Найти индекс / ? [1 : /п], удовлетворяющий условию г) = max г\. VI. Вычислить реализацию g* случайного вектора g*f для которого #to (lk/x99 z°, ..., х\ zk) - Vq>, И, где Уфу (а:^) — обобщенный градиент функции ф;- (х) Д i?©// (а:, со) в точке х = #ft. VII. Вычислить следующее приближение VIII. Найти случайные величины в*, i = 1, ..., /п, для которых ?, z\ ..., *\ 2fe) = E^i (х\ со), / - 1, ..., т. IX. Положить /«1/ X. Если выполняется неравенство то положить и перейти, к шагу XI; иначе положить г?*1 = (te* + 6aft (в* - 2*))/1 г? + ak (в* - 2? и перейти к шагу XI. XI. Если i < m, то положить i = t + 1 и перейти к шагу X; иначе перейти к шагу XII. XII. Положить k = k + I и перейти к шагу III. Теорема 1. Если выполнены предположения 1 и, кроме того: (Ш) — область Y, определяемая ограничениями x, co)<0, f = 1, ..., т, удовлетворяет условию Слейтера; (iv) — э, р^/с^-^и при 422
(*)- Я|9?|<6<оо, t = 1, ..., m, при 6 = 0, 1, ...; (vi)- то с вероятностью 1 одна из предельных точек последовательности {#*}*1о> порожденной алгоритмом 1, принадлежит множеству решений задачи 1. Если Ef0 (х, о>) — строго выпуклая вниз функция, то с вероятностью 1 где х*— решение задачи 1. Замечание 1. Если функции /, (я, о>), i = 0, 1, ..., т, при каждом со выпуклые вниз, то на шаге VI алгоритма 1 можно взять E*=V/7(*\ со*), а на шаге VIII — 6? = f,(x*. со*), /=1, ..., m, где V// (л:*, cofe) — обобщенный градиент функции /у (я, ш) по х\ со* — независимые наблюдения состояния природы. Библиографические указания. При написании параграфа использовались ра« боты [92, 97]. 5.32. Метод случайного поиска в выпуклых задачах минимизации Задача 1. Найти arg min /0 {х) для заданной функции х?Х /0: Rn ~> R1 и заданного множества X с if1. Предположения L (i) — функция /0 (а:) — выпукла и непрерывно дифференцируема на множестве X; (И) — градиент функции /о (х) удовлетворяет на X условию Липшица е константой 0 < у < < оо, т. е. (w?) — множество X — выпукло и замкнуто. В методе случайного поиска на k-и итерации по известному приближению xk ? X вычисляется следующее приближение хл+1, как точка в некотором смысле близкая к точке минимума функции /0 (•) на отрезке прямой xk — phk (p ? (—оо, оо)), принадлежащем множеству X, где hk—независимая реализация единичного случайного вектора, равномерно распределенного на единичной сфере с центром в начале координат. Для вычисления шагового множителя pk необходимо применять конечное число итераций какого-нибудь алгоритма одномерной оптимизации. 423
Алгоритм 1 Н а.ч ало. I. Выбрать произвольное начальное приближение х??Х. II. Положить k = С. Основной цикл. III. Если V/o (xk) = 0, то положить j?*= xk и прекратить вычисления; иначе перейти к шагу IV. IV. Найти независимую реализацию hk единичного случайного вектора ?, равномерно распределенного на единичной n-мерной сфере с центром в начале координат. V. Если множество «>, оо)}, содержит хотя бы одну точку р Ф О, то перейти к шагу VI; иначе положить хк+] = xk и перейти к шагу VIII. VI. Вычислить шаговый множитель pk ? Lfe, удовлетворяющий условию /о (** - 9khk) < (I - К) h W) + КЩ> где \ — произвольная точка фиксированного отрезка [к, 1]; X — произвольная константа из полуинтервала (О, 1]: wk = min /0 (xk — phk). VII. Вычислить следующее приближение VIII. Положить k = k + 1 и перейти к шагу III. Теорема /• Пусть выполняются предположения 1 и (iv) — мно жество X регулярно, т. е. в Rn существует сфера радиуса X, це* ликом принадлежащая множеству X; (v) — для любого элемента х?? X множество ограничено. Тогда бесконечная последовательность {.к*}?=о, порожденная алгоритмом 1, такова, что Библиографические указания. Параграф написан на основании работы [193]. 5.33. Методы решения задач оптимизации с бесконечным числом ограничений Задача 0. Найти arg min /0 (х) для заданной функции х?Х f01 Rn -»• R1 и заданного компактного множества Хсй" при дополнительных ограничениях h (*> У) < 0 Для всех у ? Г, где ^гЯ^хЯ-*/?1, ГсГ, 424
Многие задачи оптимизации могут быть представлены в форме задачи 0. Например, если б минимаксной задаче вида v* = min max ф (х, у) xQX yqy положить vx <?>*, v2> v* и Хо= lvl9 v2], то ее можно представить в форме задачи 0 как min х0 при ограничении ср (х9 у) — х0 ^ 0 {хо,х)?ХохХ для всех у ? Y; другие примеры можно найти в [435]. Предположения 0. (i) — функции /о, f1 являются непрерывными на множествах X и X X Y, соответственно; (И) — X и Y — непустые компактные множества. На &-й итерации находят приближение xk как решение аппроксимирующей задачи: найти argmin/0(A:), где G {\h( )<° всех У?У* Конечные множества Yk аппроксимируют множество К и их находят с помощью решения задачи максимизации по у ? Y функции h (**, У)- 1. Общий алгоритм Алгоритм 1 Начало. I. Выбрать произвольное конечное подмножество Y)CZ Y. II. Положить k = 0. Основной цикл. III. Найти допустимое множество Gk А-й аппроксимирующей задачи по правилу Gfe = {#|/i(*, у)^0 для всех y?Yki х^Х). IV. Найти решение xk ? Gk следующей k-й аппроксимирующей задачи: найти arg min/0 (д:). (Отметим, что выполняются включения Gcz ••• d Gk+\ a Gk cz ••• c:G0, E,104^ где G Д {a: | /x (x, y) ^ 0 для всех t/ б У, д: ^ X}, и справедливы неравенства /о (*°) < /о И < • • • < /о И < • • • < /о (*•). E. Ю5) где х*— решение задачи 0). V. Найти решение yk+l ? Y следующей k-ft вспомогательной задачи; найти argmax/i^, у). 425
VI. Если выполняется неравенство то положить х*= xk и прекратить вычисления (решение задачи О находится в этом случае за конечное число итераций); иначе положить Yk+\ = Yk U {yk+l} и перейти к шагу VII. VII. Положить к = к + 1 и перейти к шагу III. Теорема 1. Пусть выполняется предположение 0. Если х* есть предельная тонка бесконечной последовательности {я*}?=о, порожденной алгоритмом 1, то х* является решением задачи 0. Теорема Г. Пусть выполняются предположения 0 и (ш) — функция fxJ(x9 у) — выпукла по у при всех х ? Х\ (iv) — множество Y является многоугольником. Тогда алгоритм 1 сходится к решению х* задачи 0 за конечное число итераций. 2. Ослабленный алгоритм В ослабленном алгоритме на каждой итерации отбрасываются все несвязные ограничения. Сходимость ослабленного алгоритма имеет место при некоторых дополнительных предположениях. Алгоритм 2 I—V (шаги I—V такие, как и в алгоритме 1). Если выполняются только предположения 0, то соотношения E.104) и E.105) для алгоритма 2 в общем не имеют места, VI. Если выполняется неравенство то положить х*= xk и прекратить вычисления (в этом случае решение х* задачи 0 находят за конечное число итераций); иначе перейти к шагу VII. VII. Положить Zk = {y\h(xk, y)<0, VIII- Положить IX. Положить к «= к + 1 и перейти к шагу III. Теорема 2. Пусть выполняются предположения 0. Тогда: 1) если бесконечная последовательность {х*}?=о, порожденная алгоритмом 2, сходится к некоторой точке х*, то х* является решением задачи 0; 2) если функции /0 (*) и fx (х, у) выпуклы по х (при каждом у ? ? Y), а X —- выпуклое множество, то последовательность (/о №)}м монотонно не убывает; 3) если функция f0 (x) строго выпукла, каждая из функций /i (^» У) выпукла по х для у ?Y, X — выпуклое множество, то последовательность {x*}kLo сходится к решению х* задачи 0. Библиографические указания. При написании параграфа использовалась работа [435J,
5.34. Методы решения задач квадратичного программирования В этом параграфе приводятся некоторые методы решения задачи квадратичного программирования, которая является вспомогательной задачей для многих алгоритмов. Задачей квадратичного программирования называют задачу минимизации квадратичной функции при линейных ограничениях. 1. Метод сопряженных градиентов для минимизации квадратичной функции на подпространстве Задача 1. Найти argminН>- (Сху х) + (d, л:I, х?Х L 2 J где Х={х\(а\ х)-Л = 0, С — симметричная положительно определенная матрица размера п X п\ d?R'\ al?Rn, i?$, V — конечное множество индексов; Ь{ ? R\ i?3. Предположения 1. (i) — С — симметричная положительно определенная матрица размера п X /г, т. е. (Сх, х) ^ 0 для всех х 6 ? Rn\ {ii) — векторы а\ i ? 3>— линейно-независимы. Алгоритм 1 Начало. I. Найти начальное приближение л:0 ? X. II. Вычислить п X /г-матрицу Н по формуле Я = А7(ААТ)-1 А> где А — матрица, строками которой являются n-мерные вектор- строки (а1I\ i ? 3. III. Вычислить градиент минимизируемой функции в точке х == х0 по формуле IV. Вычислить n-мерный вектор где / — единичная п X п-матрица. Если h1 = 0, то прекратить вычисления, иначе перейти к шагу V> V. Вычислить шаговый множитель \ a1). VI. Положить х1 = х° + рхА1. VII. Положить k = 1, g° = h1. Основной цикл. VIII. Вычислить я-мерный вектор g ( (xk) = Схк + d. 4Й7
Если gk = 0, то прекратить вычисления; иначе перейти к шагу IX. IX. Вычислить я-мерный вектор X. Вычислить шаговый множитель XI. Положить xk+l = xk 4- p+ XII. Положить ft = A + 1 и перейти к шагу VIII. Теорема 1. Если выполнены предположения 1, то алгоритм 1 решает* задачу 1 за конечное число итераций, не превышающее п. При этом, если минимизируемая функция /0 (х) & уССл;, х) + (d> x) имеет на множестве X конечный минимум, то последовательность {xk}, порожденная алгоритмом 1, сходится к точке минимума х* задачи 1 за конечное число итераций k^in. Если функция /0 (л:) не- ограничена (снизу) на множестве X, то при некотором k^n будет выполняться равенство {hk+\ Chk+l) = 0, что влечет p*+i =* —оо. 2. Метод сопряженных градиентов для общей задачи квадратичного программирования Задача 2. Найти argmin|^- (Сх, x)-\-{d, x)\ *?х L J где С — симметричная положительно определенная матрица размера п X п\ d ? Rn\ Г и ?° - конечные множества индексов; а1 ? Rny i g 3° U #~; bt 6 R\ i 6 ^° U 8Г. Предположения 2» (i) — С — симметричная положительно определенная матрица; (И) — выполнено следующее условие невырожденности: при любом х € Rn векторы a*, i ? tJ (x\ — линейно-независимы, где V (х) й {i I (a', x)-bt = 0, i g 8Г- U 2°}. E.106) Алгоритм 2 Начало. I. Найти начальное приближение л:0 ? X. II. Найти множество индексов 3 (х°) и положить #0= ^ (а:0) (здесь множество V {х) определяется по E.106)). III. Вычислить п X я-матрицу где А? — матрица, строками которой являются n-мерные вектор- строки (al)T% i 6 30. 428:.
IV. Вычислить вектор где V/o (л:) = Сх + d. V. Вычислить n-мерный вектор go = (/ _ Н?) V/o (*) - V/o (*Р) + AT?U\ E.107) Если g°= 0, то перейти к шагу VI; иначе перейти к шагу XXII. (В случае, когда g° = 0, точка лг° является точкой минимума функции /0 (х) Д -н" iPx* х) + (dy x) на грани, определяемой системой уравнений (а1*, л:) — bt = 0, f ? #0)- VI. Определить компоненты вектора и0, которые в равенствах E.107) умножаются на векторы al> i?$~ П &о- Пусть они будут VII. Если tt/i^O, ..., u/m^09 то положить л:*= х? и прекратить вычисления (в этом случае х*— решение задачи 2); иначе перейти к шагу VIII. VIII. Найти индекс /От' ? {jl9 ..., /ш}, для которого выполняется неравенство uj > <С 0. IX. Найти индекс /' G ^оП ^~ такой, что вектор а1' в E.107) умножается на компоненту и0/ >. X. Образовать новое индексное множество #о> которое получается из множества &0 отбрасыванием индекса /'. XI. Образовать матрицу А? строками которой являются /г- мерные вектор-строки (а1O\ i g Ьо. XII. Вычислить п X л-матрицу XIII. Вычислить вектор р у Основной цикл. XV. Вычислить вектор (/ — Ну)х XIV. Положить А = 0и перейти к шагу XVII. XV В (/ — Ну) /0D Если (/ — Я ') V /0 (хк) = 0, то положить х° = л:й и перейти к шагу II; иначе перейти к шагу XVI. XVI. Вычислить вектор К/-Я *) _ 429
XVII. Вычислить рЛ+1 в _ (V/o (x% XVIII. Найти подмножество fJl s #о такое, что для всех / о выполняется неравенство (а\ hk+x) > 0. XIX. Вычислить XX. Если p*+i < рЛ+ь то перейти к шагу XXI; иначе положить xk+] = xk + рк+\ Л*+!, л:0 = xk+l и перейти к шагу II, X'XI. Положить xk+l = xk + pk+\hk+l , 6 = 6+1 и перейти к шагу XV. XXII. Положить #о = ^о и перейти к шагу XI. Теорема 2. Если выполнены предположения 2, то алгоритм 2. решает задачу 2 за конечное число итераций, при этом либо получается точка х*, минимизирующая квадратичную функцию h(x)u-^(Cxy x) + (d9 x) на множестве X, либо устанавливается тот факт, что f0 (x) —. неограничена снизу на множестве X. Замечание 2. В случае вырожденности матрицы С может возникнуть ситуация, когда на шаге XVII алгоритма 2 будет выполняться (V/o С**), hk+l)=?0, но (Л**1, Chk+l) = 0, что влечет р*4-1 = оо. Тогда, если p*+i < оо, то осуществляется переход к шагу XX. Если же p^i неограничено, т.е. на шаге XVIII будет выполняться (a1*, hk+l)^0 для всех *?#о> то это означает, что задача 2 не имеет решения, так как нижняя грань функции /0 (х) на множестве X равна —оо. Замечание 2'. Приведенные в пунктах 1 и 2 алгоритмы содержат, по существу, одну сложную вычислительную операцию: проектирование градиента на подпространство, т. е. вычисление вектора (/ — #y(*)) V/<) (x)9 что требует нахождения обратной матрицы (Лу^Л^юГ1. Чтобы избежать вычисления обратной матрицы, можно вначале найти решение и0 задачи безусловной минимизации: найти arg min -1-1| V/o (x) + А^(х)и f. E.108) (Задачу E.108) можно решить, например, с помощью метода сопряженных направлений). Кроме того, решением задачи E.108) является вектор и* = -Т1 430
Зная ы0, можно найти вектор (/ — Н^(х)) Vf0 (x) по формуле (/ - H?w) V/, (*) = V/o (x) + т^ где 3. Метод сопряженных градиентов для задачи квадратичного программирования с простыми ограничениями Задача 3. Найти argminf-о- (Сх, х) + (d, x)]9 х?Х L Z J —некоторое подмножество множества {1, 2, ..., n}; d?Rn. Предположение 3. Матрица С положительно-определенная. Определение 5. Определим множество 3 (х) и функцию /0 (я) Алгоритм 3 Начало. I. Выбрать начальное приближение л? ? X. И. Найти множество Г III. Вычислить градиент ==\ дхх 9 ' дхп ) IV. Если 'то перейти к шагу V; иначе перейти к шагу XVI. V. Если ^|!L то положить х*= х° и прекратить вычисления (в этом случае находят оптимальное решение х* задачи 3); иначе положить и перейти к шагу VI. Примечание. На последующих шагах применяется метод сопря женных градиентов для минимизации функции /о (#), где в качест ве переменных берут только xh i ? З' (д^°), а все xh i 6 3' @ приравниваются к нулю. VI. Положить Л1 = — V/o (х0). VII. Положить k = 0 и перейти к шагу X. Основной цикл. VIII. Вычислить 431
Если дМ* ) = о, V i % %' (х°), то положить #° = xk и перейди к шагу II; иначе перейти к шагу IX. IX. Вычислить вектор X. Вычислить XL Определить # (л:0) — множество всех / fc #' (я0), для кото* рых hi+] < 0. XII. Вычислить = min (— xkil XIII. Если p*+i < рл+ь то положить и перейти к шагу XIV; иначе положить и перейти к шагу XV. XIV. Положить k = ^ + 1 и перейти к шагу VIII. XV. Положить xQ = л;**1 и перейти к шагу II. XVI. Положить #' (л!0) = fJ (x°) и перейти к шагу VI. Для алгоритма 3 имеют место теорема и замечание, аналогичные теореме 2 и замечанию 2. 4. Модификация метода сопряженных направлений для задач квадратичного программирования большой размерности Задача 4. Найти arg min /0 (х), X где при ограничениях (а;, *) = ?/, /== i, .... m; E.109) ^<^<Kyt., t=l, ...,П, E.110) где С —/г X n-матрица (С>0); d —/г-мерный вектор; w, / =* = 1, ..., п — л-мерная строка, т. е. а1 = (а{, ..., а}п)\ bh j = = 1, ..., т\ vh wif i =* 1, ..., n — действительные числа. Приводимая в этом пункте модификация метода сопряженных 432
направлений приспособлена для задач квадратичного программирования с большим числом переменных xiy i = 1, ..., /г, и относительно малым числом т ограничений вида E.109). При отсутствии вычислительной погрешности приводимый алгоритм определяет те же точки, что и метод сопряженных направлений. Отличием приводимой модификации от метода сопряженных направлений является то, что она требует меньшего количества вычислений, меньшего объема машинной памяти и позволяет устранять накапливающуюся погрешность машинных вычислений. Алгоритм 4 Начало. I. Задать начальное приближение х°, удовлетворяющее ограничениям-равенствам E.109) и следующим неравенствам: ^?t> t = 1, ..., п. II. Обозначить через А т X /г-матрицу, /-й строкой которой является а)', j = 1, ..., т. III. Положить k = 0. Основной цикл. IV. Вычислить множества индексов #+, #""" по формулам #+ = {i|*?>о;*. / = 1Э ..., л}; ST= [i\xi^vt9 ?= 1, ..., п) и положить 3 = #+ U #~. V. Вычислить V/o (**) — градиент функции цели в точке х «=^ VI. Для произвольной матрицы В с т строками определить матрицу В, которая получается, если в В заменить все строки с номерами / ? е7+ U t/~~ нулевыми строками, и определить матрицу В+ (или ?_), строками которой являются строки матрицы В с номерами / ? tJ+ (соответственно, / ? еГ"). VII. Для произвольного n-мерного вектор-столбца gf определить операторы TTlAg; F.111> "® где (эдесь АТ— матрица, транспонированная к А). 433
VIII. Вычислить векторы Q^Vfo(xk), GyV/o (xfc) и положить Я = GyV/0 (**). IX. Если Q^V/o (**) =^ 0, то перейти к шагу XII; иначе перейти к шагу X. X. Если при всех 1 = 1, ..., п выполняется^^ 0, то прекратить вычисления (в этом случае xk является решением задачи 4); иначе перейти к шагу XI. XI. Построить новые множества 3+ и V" путем удаления из них одного из номеров i таких, что qt < 0 и перейти к шагу XII. Отметим, что при изменении множеств 3+ и $~ меняются также операторы Qy, Gy. На шагах XII—XVII осуществляется минимизация квадратичной функции /о (х) на подпространстве, задаваемом уравнениями (at, x) = bh / = 1, ..., m, причем минимум /0 (х) на указанном подпространстве находят не более чем за п — т — к «малых» итераций, определяемых шагами XII—XVII, где х — число элементов в множестве #+ [) #~. XII. Положить s == 0. XIII. Положить у0 = xkt h° = 0. XIV. Вычислить вектор hs+l = - Q^V/0 (ys) + (| QyV/0 (ys) |P /|| Q<?Vf0 (ys~l) 12) h\ XV. Вычислить Если ps+i = 0, jTo роложить xk+l = ys и перейти к шагу XVIII; яначе перейти к шагу XVI. XVI. Вычислить величину ps+i по правилу Ps+i = min | min XVII. Если ps+i < ps+i, то положить и перейти к шагу XIV; если ps+i ^ ps+i» то положить и перейти к шагу XVIII. XVIII. Положить k = k + 1 и перейти к шагу IV. Теорема 4. Пусть итеративный процесс, задаваемый алгоритмом 4, реализован на ЭВМ и пусть ys — точка, построенная на s-u А34
итерации. Тогда выполняются следующие неравенства: у] — щ < сги\ Vi — y]^ схи\ (здесь съ с2— константы; и = 21~т — единичная ошибка округления (% — число значащих разрядов мантисы)\ b = (blt ..., 6m); Я — константа, удовлетворяющая неравенствам -J-(condС + (condС)"— 2)< К<-J-(cond^ + (cond^Г* ")' где С — матрица сужения функции /0 (л:) «а гиперплоскость E.109); cond С Д || С | • || С~! || — число обусловленности матрицы С). Замечание 4. Так как погрешность выполнения равенства E.109) может расти весьма быстро, то в [209] рекомендуется применять на некоторых итерациях по 5 следующую процедуру корректировки вычислительной погрешности: Йор^в^ + О-9)»0» _ E.113) где Q — проектор Q^t определяемый по E.111) при 3+ = еГ~ = 0; 0 — максимальное число из отрезка [0, 1] такое, что правая часть в E.113) удовлетворяет ограничениям задачи. 5. Устойчивый алгоритм решения задач квадратичного программирования Задача 5. Найти arg min -5-1| Gx — с f при ограничениях Ax = b, x > 0, где G — /X n-матрица, состоящая из столбцов g!t j = 1, 2,..., /г; с — /-вектор; А — т X /г-матрица, состоящая из столбцов а', / == 1, ..., п\ Ь — т-вектор. В приведенном ниже алгоритме на каждой итерации требуется решать систему линейных уравнений. Алгоритм за конечное число итераций приводит к решению задачи 5 либо устанавливает отсутствие допустимых решений задачи 5 и что важно, может применяться и в (почти) вырожденном случае задачи 5. Алгоритм 5 Начало. I. Найти множество индексов V s {1 ,2, ..., п) та- кое, что начальная матрица \q I (здесь и далее В^—подматрица матрицы Л, состоящая из столбцов ai, j $3, матрицы Л; Qy — подматрица матрицы G, состоящая из столбцов g"', / ? 3^, матрицы G), имеет полный столбцовый ранг и система линейных уравнений E.114) имеет решение (у> и), для которого у > 0. 435
Основной цикл. II. Если у > О, то перейти к шагу III; иначе перейти к шагу VII. III. Если для всех /? {1, ..., п}\3 выполняется неравенство то вычислить оптимальное решение #*= (х\, ..., х*п) задачи 5 /, если /?^, если iffd, У ' •••• Пу и прекратить вычисления; иначе положить # — 3 и перейти к шг* гу IV. IV. Найти индекс k ? {1, ..., п}\&> для которого выполняется неравенство V. Положить V =1J U {k}. VI. Найти вектору, координаты которого у/, / ? S^, вычисляются по правилу у. = yt при всех i ? #; и перейти к шагу XI. VII. Вычислить максимальное значение ~Х ? [0, 1], при котором и положить L VIII. Положить # = ^. IX. Найти множество S^, состоящее из тех индексов k^fJ, для которых zfe = 0n положить # = X. Вычислить вектор у, координаты которого находятся по правилу ~yi = zj, JGU, и перейти к шагу XI. XI. В соответствии с множеством V составить подматрицу В? матрицы А и подматрицу Qy матрицы G. XII. Найти решение (у, и) системы линейных уравнений j &r Q?c E.И5) и перейти к шагу II. 436
Теорема 5. Пусть существует множество индексов 3 ^ {1, ... ..., п) такое, что матрица \q \ имеет полный столбцовый ранг и система E,114) имеет решение (у, и), для которого у > 0, и пусть каждая матрица В^, получающаяся в результате применения алгоритма, имеет полный строчный ранг. Тогда за конечное число итераций алгоритма 5 вычисляется оптимальное решение х* задачи 5. (ВЛ Замечание 5. Для получения начальной матрицы \q 1, описанной на шаге I алгоритма 5, необходимо предварительно получить решение (/*, я*) следующей задачи квадратичного программирования: найти argmin (— Ь\ А)[ _ ) EЛ16) 5.x) 1 ^/| при ограничениях E.117) Если выполняется неравенство ( то задача 5 не имеет допустимого решения; если то х* удовлетворяет условиям л;*^ 0 и Ах*= Ь. ч Если х*Ф 0, то множество столбцов а>, для которых х] > Q линейно-независимо и вместе с соответствующими столбцами (ВЛ образует начальную матрицу \q I алгоритма 5. Отметим, что для решения задачи E.116) — E.117) можно ис- (ВЛ ( 1 пользовать алгоритм 5 с начальной матрицей I q I, равной ^ ь Замечание 5'. Для решения систем линейных уравнений E.114) и E.115) в [524] предлагается следующий способ. (ВЛ Пусть Iq I имеет размер (т + I) X л Тогда у и и определяются 437
с помощью решения треугольных линейных систем для (b — и) и у, где d=*W& + Zh\ h = S~Tb — ZTW%c; WTb = ZS\ Z — г X m-матрица с ортогональными столбцами и 5 — верхняя треугольная невырожденная тхт-матрица, (q^J =WVy W— — (т + I) X r-матрица с ортогональными столбцами, V — верхняя треугольная невырожденная г X r-матрица, W = (WB\, WB — имеет т строк, WQ — имеет / строк. Библиографические указания. При написании параграфа использовались работы [209, 320, 523, 524]. Дополнительные сведения о методах решения задач квадратичного программирования можно найти в работах [35, 310, 311, 437, 461, 467, 473, 507, 546]. Глава 6 СПЕЦИАЛЬНЫЕ МЕТОДЫ РЕШЕНИЯ МИНИМАКСНЫХ ЗАДАЧ И МЕТОДЫ ОТЫСКАНИЯ СЕДЛОВЫХ ТОЧЕК 6.1. Методы последовательных приближений решения дискретных минимаксных задач 1. Минимаксная задача с ограничениями простой структуры Задача 1. Найти arg min max аь (х) для заданных функ- ций (pt- : Rn -> Л1, / ? д\ заданного множества индексов 3 и заданного множества ограничений X с: Rn. Предположения L (i) — функции %, i ? 3 — непрерывно дифференцируемы; (и) — множество X — выпукло и замкнуто. Алгоритм 1 Н а ч ало. I. Выбрать начальное приближение х° g X. II. Выбрать константы е0 > 0 и а0 > 0. III. Положить k = 0. Основной цикл. IV. Найти множество точек где IIУli = max \yt\. i?[\:n) V. Вычислить множество индексов
VI. Вычислить г|) (xk) = min max (Vq>, (xk), x — xk). VII. Если t|) (xk) = 0, то положить х*= xk и прекратить вычисления, если я|) (xk) < 0, то перейти к шагу VIII. VIII. Положить / = 0. IX. ПОЛОЖИТЬ 6 = 8у. X. Вычислить множество индексов 7 XI. Вычислить <фе (xk) = min max (Уф,- (а:*), а: — xk). XII. Если выполняется неравенство i|)8 (**) ^—ос0г/г0, то перейти к шагу XIII; иначе положить е/_ц = е;/2, / = / + 1 и перейти к шагу IX. (выход из цикла, определяемого шагами IX—XII, будет осуществляться за конечное число итераций при каждом k = 0, 1, ...). XIII. Вычислить точку ук, удовлетворяющую условию = max (V<Vi(xk), yk — xk). XIV. Вычислить шаговый множитель pk из условия max ф, (хк + pk (yk — хк)) = min max ф, (xk + р (yk — xk)) i?7 GL01] i?? XV. Выч?1слить следующее приближение xk+l = xk + pk{yk — xk). XVI. Положить k = k + 1 и перейти к шагу IV. Теорема 1. Если выполнены предполэжения 1 и начальное приближение я0 в алгоритме 1 таково, что множество = {х | max ф, (х) < max ф< (jc°), х ? X} ограничено, то любая предельная точка х* бесконечной последовательности {xfe}*Lo, порожденной алгоритмом 1, является стационарной точкой функции max ф^ (я) на множестве X. Замечание 1. Основная трудность в применении алгоритма 1 связана с вычислением значения г|)8 (xk) на шаге XI. В [127] показано, что если Xk— строго выпуклое множество и начало координат не принадлежит выпуклой оболочке L8 (xk)> натянутой на векторы Уф; (xk), i ? die (хк)У то задача вычисления i|?8 {^) сводится к более простой задаче максимизации на L8 (xk) непрерывно дифференцируемой функции 9(z)Amin(z, v — x% k 439.
градиент которой VQ(z) = v(z) — xk, где v (z) ? Xk удовлетворяет условию Э (z) = (z, и (z) — xk). 2. Первый метод последовательных приближений решения минимаксной задачи с ограничениями типа неравенств Задача 2. Найти arg min max ф^ (х) для заданных функций Ф, : Лп-> Я1, i ? V, заданного множества индексов V и множества Предположения 2. (i) — функции ф?, i ?$ — непрерывно дифференцируемы; (w) — функции /у, j^V-i—выпуклы и непрерывно дифференцируемы; (Hi) — выполняется условие Слейтера inf max ft (x) < 0. В пунктах 2—4 приводятся методы последовательных приближений для нахождения стационарных точек х* функции max ф, (#) на множестве X. Точка х* ? X называется стационарной точкой функции max ф? (х) на множестве X, если многогранник L (#*) содержит на* i$7 чало координат (здесь L (**) = со Н (х% Я (**) - Я (х*) U #i (**); /6 Qo(*•)}; 1maxФ< (х*) = Ф|(д:*), Если max ф< (л:) выпукла на X, то стационарная точка х* является точкой минимума. Алгоритм 2 Начало. I. Выбрать начальное приближение х° ? X. II. Выбрать константы ео>О, fio>O» ао>О. III. Положить k = 0. Основной цикл. IV. Найти множества индексов dio(xk) = {/| 440
V. Вычислить множество векторов где /€Q0 (**)}. VI. Используя алгоритм Г (см. § 3.12), определить, принадлежит ли начало координат многограннику Loo (xk)y который является выпуклой оболочкой, натянутой на множество векторов Яоо (xk). Если начало координат принадлежит многограннику 100 (л;*), то положить л;*= хк и прекратить вычисления; иначе перейти к шагу VII. VII. Положить s — 0. VIII. Положить е = es, \i = fxs, a = as. IX. Найти множества индексов X. Вычислить множество векторов Яед = #е(^ U где множества XI. Используя алгоритм Г (см. § 3.12), вычислить точку г8ц — ближайшую к началу координат точку многогранника Z8U (**), который является выпуклой оболочкой, натянутой на множество векторов Нт (xk). XII. Если выполняется неравенство ||г8М,||^а, то перейти к шагу XIII; иначе положить es+i = es/2, \is+i = |^s/2, as+i = = as/2, s = 5 + 1 и перейти к шагу VIII. XIII. Вычислить вектор Лец (**) — направление (е, (^)-квазина- искорейшего спуска функции max ф, (л:) в точке хк по формуле XIV. Вычислить шаговый множитель pk> удовлетворяющий условиям max q>, (xk + рЛд (**)) = min max ф^ (xfe + phell (xk))\ 441
XV. Вычислить следующее приближение XVI. Положить k = k + 1 и перейти к шагу IV. Теорема 2. Если выполнены предположения 2 и начальное прибли- жение х° ? X таково, что множество Х° Д {х | max ф, (х) < max cpf (л*), л; ? X} it? *e? ограничено, то любая предельная точка бесконечной последовательности {xk}^Lo , порожденной алгоритмом 2, является стационар- ной точкой функции max ц>( (х) на множестве X. 3. Второй метод последовательных приближений решения минимаксной задачи с ограничениями типа неравенств Алгоритм 3 Начало. I. Выбрать начальное приближение д^?Х. II. Выбрать константы е > 0, \i > О III. Положить k =* 0. Основной цикл. IV. Найти множества индексов die (xk) = [i | max q>, (xk) — q>, (**) < ef V. Вычислить множество векторов где множества /6Qe VI. Используя алгоритм I' (см. § 3.12), определить, принадлежит ли начало координат многограннику LB[i (**), который является выпуклой оболочкой, натянутой на множество векторов Если начало координат принадлежит многограннику Le[A (xk)t то положить х1ц = а^ и прекратить вычисления; иначе перейти к шагу VII. VII. Используя алгоритм Г (см. § 3.12), вычислить точку г?ц — ближайшую к началу координат точку многогранника Leix (xk). ПОЛОЖИТЬ 6ец= || 2щ ||. VIII. Вычислить вектор hell (xk) — направление (е, ^-наискорейшего спуска функции max cp^ (х) в точке xk по формуле №
IX. Вычислить шаговый множитель pfe, удовлетворяющий условиям max ф< (xk + pftfteM (хк)) = min max ф< (xk + рЛ4 X. Вычислить следующее приближение XI. Положить k = k + 1 и перейти к шагу IV. Теорема 3. Если выполнены все условия теоремы 2, то любая предельная точка бесконечной последовательности {x*}?Lo, порожденной алгоритмом 3, является (е, \х)-квазистационарной точкой функции max <р^ (#) на множестве X. (Точка х1ц С X называется (е, [г)-квазистационарной точкой функции max q>< (х) на множестве X, если 0 б Lell (х1ц))- 4. Модификация второго метода последовательных приближений Алгоритм 3 для нахождения (е, (и)-квазистационарных точек используется в приводимом ниже алгоритме для отыскания стационарных точек функции max <р^ (л:) на множестве X. Алгоритм 4 ' Начало. I. Выбрать начальное приближение х° ? X. II. Выбрать константы е0 > 0, ^0>0, ао>0. III. Положить s = 0. Основной цикл. IV. Найти множества индексов Мо (?) = {i | max Ф, (?) = ер, (?) о, V. Вычислить множество векторов где множества VI. Используя алгоритм Г (см. § 3.12), определить, принадлежит ли начало координат многограннику Loo (xs), который является выпуклой оболочкой, натянутой на множество векторов Яоо (xs). Если начало координат принадлежит многограннику 44S
?<>о (х*)> то положить #* = xs и прекратить вычисления; иначе перейти к шагу VII. VII. Используя алгоритм 3, в котором положить найти первый индекс kt при котором выполняется неравенство бец^ as и положить j?+1 = л:*. VIII. Положить es+i = es/2, (xs+i = (xs/2, as+i = as/2. IX. Положить s = s + 1 и перейти к шагу IV. Теорема 4. Если выполнены все условия теоремы 2, то любая предельная точка бесконечной последовательности {#s}?=o, порожденной алгоритмом 4, является стационарной точкой функции max ер, (х) на множестве X. Библиографические указания. При написании параграфа использовались работы [254, 127, 428, 480, 481, 529). 6.2. Обобщенный беспараметрический метод внешней точки решения дискретных минимаксных задач Задача 0. Найти arg min max ft (x), где V и L — конечные множества индексов. Предположения 0. (i) — функции ft (x), i = 1, ..., m, gf (x)t j ? € 9, A/ (x), I ? L — непрерывно дифференцируемые в Rn\ (ii) — существует решение х* минимаксной задачи 0. Обозначим 1. Основной алгоритм На k-й итерации алгоритма вычисляется точка tf безусловного минимума некоторой вспомогательной функции и оценка снизу ak для значения /0 (д:*) такие, что ak-*f0(x*) при fe->oo; ak, fe = 0, 1, ...; fo(x*)^akt k = 0, 1, ... . Для начала работы алгоритма необходима нижняя оценка а0 значения /0 (х*). 444
Алгоритм 1 Начало. I. Выбрать константу а0 ^ f0 (x*) (т. е. нижнюю оценку а0 оптимального значения /0 (а:*) задачи 0). U* Задать произвольные веса wjt j ? V и vx, I ? L. III. Для фиксированного числа а определить функцию Ф(х, a) = ? [fi(x)-a]*+ ? i^M*)J + 2 MM*)J, где 2C (x) = {i\f{ (x) > a, i = 1 m}. IV. Положить ft = 0. Основной цикл. V. Найти точку xkt удовлетворяющую условию *, ak) = min <p (x, ak), т. е. решить задачу безусловной минимизации дифференцируемой по х функции ф (я, ak). VI. Вычислить VII. Положить k = ft + 1 и перейти к шагу V. Теорема 1. Пусть выполняются предположения 0 и пусть: (ш) — /о (* (^)) —- непрерывная функция аргумента и в точке и = 0, где х (и) является решением следующей задачи: найти arg min max f( (x) x teiuni] при ограничениях 9 здесь Uf, j ? tJ y ub t ? L — компоненты вектора и. Тогда алгоритм 1 порождает последовательности {ал}?*о такие, что <*k-*fo(x*) при ft-^oo; /о (xk) -* /о (х*) при ft -> оо; q>(xk, afe)-^0 при ft-^oo. 2. Ускоренный вариант алгоритма В ускоренном варианте алгоритма на некоторых итерациях вычисление величины a^+i проводится не по F.1), а по формуле при этом справедливо неравенство о4_н ^ аЛ+1 , что обеспечивает ускорение сходимости {a*} *Li к /0 (jc*) по крайней мере прл а* близких к /о (#*). 445
Алгоритм 2 Начало. I—III. Шаги I—III такие, как и в алгоритме I. IV. Выбрать верхнюю оценку а0 оптимального значения /0 (х*) задачи 0. V. Выбрать константу Ef > 0, характеризующую точность вычисления /0 (я*), константу еф, характеризующую близость значений функции ф (*, а) к нулю. VI. Положить тх = сс0. VII. Положить /5=1. Основной цикл. VIII. Найти точку хк, удовлетворяющую условию * Ч) = ( IX. Вычислить значения tx и /2» соответственно \ %кIт]ч*\ X. Если 4^ а0, то положить ik+i = ^2 и перейти к шагу XI; иначе положить t*+i = tx и перейти к шагу XI. XI. Положить тв = тЛ+1 — Tfc; а0 = tx\ s = ф (х*, т^). XII. Положить Л = k + 1 и перейти к шагу XIII. XIII. Найти точку xk, удовлетворяющую условию Ф (**. Ч) = min ф (х, чк). XIV. Если а0 — а0^ 8/или т0^ 8/, то прекратить вычисления (в этом случае находят приближенное значение для /0 (х*), которое можно вычислить, например, по правилу /0 (х*) s (aG+ ао)/2); иначе перейти к шагу XV. XV. Если ф (xkt xk) > 0, то перейти к шагу IX; если s < еф, то прекратить вычисления (в этом случае также находят приближенное значение для /0 (я*)); иначе положить а0 = rk, s = 0, Tk = = а0 и перейти к шагу XIII. Замечание 2. Алгоритм 2 основан на том, что неравенство т ^ ^ /0 (л:*) справедливо тогда и только тогда, когда inf ф (я, т) = 0 х?Яп Библиографические указания. Параграф основан на работе [460]. 6.3. Метод второго порядка решения задач дискретного минимакса Задача 1. Найти arg min max ф, (х) для заданных функций х?х /еэс Ф,. : Rn ->- Я1, / ^ di и заданного множества Х={д:|//(х)<0, /g 2f где ?С, % — конечные множества индексов. 446
Предположение 1. (i) — функции ф, (л:), i ? ЧК и ft (л:), / ? V — дважды непрерывно дифференцируемые в Rn. В приводимом методе используется квадратичная аппроксимация ср? (я), // (х) соответственно, функций ф, (л:), /у (л:) в точке х = = **, что приводит к сверхлинейной скорости сходимости с показателем, равным 3/2. На каждой итерации алгоритма требуется решать (точно) некоторую вспомогательную минимаксную задачу. Алгоритм 1 Начало. I. Выбрать начальное приближение х°, принадлежащее достаточно малой окрестности множества X. II. Выбрать произвольные константы 0 < е < 1, 6>0, \i> О (обычно е = V2, 8 g [Ю-3, 10-4, fi 6 [Ю-3, 10-4). III. Выбрать достаточно большую константу а > 0. IV. Положить k = 0. Основной цикл. V. Вычислить ф, (xh), fj (xk), Vcpc (xk)> Vf, (x*), vL<fc И, VL// (xk) при всех i € M, / € ^. VI. Вычислить множества индексов #* = [i IФ,- (^) > max Ф, (.^) - б, f ? JK}; 8Г* «I/I//(**)> max/Ддс*)-!*, T VII. Определить функции ф? (#),// (x), i g 3C, /gS^, соответственно Ф? W = Ф« И + (V9, (xft), x - xk) + 4» VLq>, (xk) (x - ^J; /У (x) - // И + (V/, (**), x - x») + -i- V2,,/, (jcfe) (x - xk)\ VIII. Найти решение ;t* следующей вспомогательной задач» выпуклого программирования: найти arg min max ф? (х), (б.2> где множество IX. Положить hk = xk—xk. Если ||АЛ|| = 0, то прекратить вычисления (в этом случае xk—решение задачи I); иначе перейти- к шагу X. X. Положить р = 1. XI. Определить функции -ф {х) = max <p, (x)\ q (х) = max {0, max /y (x)}. 44?
XII. Если выполняется неравенство + phk) + aq (xk + phk) ^ г|) (xk) + <xq (xk) + ep [max <p* (xk) —1|> (xk) — aq {x% то положить рЛ = р и перейти к шагу XIV; иначе перейти к шагу XIII. XIII. Положить р = р/2 и перейти к шагу XII. XIV. Вычислить следующее приближение положить k = k + 1 и перейти к шагу V. Теорема 1. Пусть выполняется предположение 1 и, кроме того: (И) — для любых xt у ?Rn, i?di, j ? #, справедливо Yi II x f < (VL// (y) x, x) < y21 x If, ?2 > Yi > 0; <Ш) — для задачи 1 и вспомогательных задач F.2) выполняется условие Слейтера; (iv) — множители Лагранжа Р/ (xk), j ? 2/k, вспомогательных задач F.2), соответствующие ограничениям // (х) ^ 0» равномерно ограничены: к1 + a max {0, max /,- (x)} ^ max ц( + amax {0, для последовательности {x*}!Lo, порожденной алгоритмом 1, справедливы утверждения: 1) lim **=*•; 2) есл« матрицы ?^ф( (л:), vL/y (*) при * е #• Д {i IФ* (**) = max Ф, (х% i € Ж), <?3i непрерывны в окрестности, точки х*, то начиная с некоторой итерации р4э1; lim || hk | /1 ft*-11| = 0; Л-fOO 3) если, кроме того, матрицы vL<Pt- (*), vLf/ W ^P« t ? ЭС*. / б ^*» удовлетворяют условию Липшица, то при k -* оо || /ife || ^ ^ Vi > 0 — постоянная величина. Замечание 1. Поскольку константу а, обеспечивающую выполне- 448
ние условия (iv) теоремы 1, выбрать заранее довольно трудно, то в [280, 320] рекомендуется выбирать всякий раз, когда (iv) не выполняется. Замечание Г. Достоинством приведенного в этом параграфе метода является его сходимость с любого начального приближения х°, принадлежащего достаточно малой окрестности множества X. В то же время метод требует на каждой итерации решать вспомогательную задачу F.2), для которой не существует в общем случае эффективных алгоритмов. Библиографические указания. Параграф написан на основании работы [280]. 6.4. Сеточный метод последовательных приближений решения непрерывных минимаксных задач Задача 1. Найти arg min max ф (х, у) для заданных функции т Ф : Rn х Rm -> Л\ ограниченного замкнутого множества Y с Н выпуклого замкнутого множества X cz Rn. Предположение 1. Функция ф (х, у) непрерывна вместе с V* ф (лс, у) по совокупности переменных в Х'Х F, где X'— произвольное открытое множество, содержащее X. Ниже описывается метод вычисления стационарных точек функции max ф (Ху у) на множестве X, т. е. точек х*, для которых inf max# (V/p (**, у), х — **) = 0, где М{х) = {у\ч(х> У) = тахф(л:, у), y$Y). Алгоритм 1 Начало. I. Выбрать начальное приближение х° g X. II. Положить k = 0. Основной цикл. III. Построить сетку удовлетворяющую условиям теоремы 1. IV. Определить функции <р? : Rn-> Л1, I g [0 : Nk], по правилу Ф,(*)Дф(*. У% i?№:Nk]. V. Используя алгоритмы § 6.1, найти хотя бы одну стационарную точку xk б X функции max фг (х) на множестве X. i?[0:Nk] VI. Положить k = k + 1 и перейти к шагу III. 15 3-341 449
Теорема 1. Пусть выполнено предположение 1 и, кроме того: (i) —множество Y ограничено и замкнуто; (и) — множество X выпукло и замкнуто; (ш) — последовательность сеток {YNk}b=o всюду плотна на множестве Y, т. е. для произвольного е > 0 можно указать такой индекс ke, что для всех k > ke расстояние между произвольной точкой у ?Y и ближайшей к у точкой сетки YNk будет меньше е. Тогда любая предельная точка последовательности {xk)t=Qi порожденной алгоритмом 1, является стационарной точкой функции max cp (jc, у) на множестве X. у?У Библиографические указания. При написании параграфа исп-ользованы работы [238; 239, 127]. 6.5. Метод штрафа в задаче поиска максимина Задача 1. Найти х* = arg max min ф (х, у) для заданной функции ф : Д/гхВт-* R1 и заданных компактных множеств X и Y. Предположение 1. Функция ф непрерывна на произведении компактов X и Y. В методе штрафа вычисление вектора х* и величины максимина ы* = max min ф (х, у)> сводится к решению последовательности задач условной максимизации по (х, и) функций gT(x, и, ak) = u — cek J |min {0, ф(*, у) — и) \Тd\i (у), т>0, у .где т > 0 — произвольный параметр; afe>0, lim 0^=00; \х — мера на множестве Y. Если (х* (afe), и* (ak)) — решение задачи максимизации gT на множестве X X U (здесь U — любой отрезок, содержащий точку а*), то предельные точки последовательности {** (ak), и* (ab)}Z^ являются решением задачи 1. При т ^ 1 функция gx всегда вогнута по щ если, кроме того, Ф (а:, у) вогнута по х при каждом у ? Y, то функция gx (x, и, ak) вогнута по (х, и). Если <р (х, у) дифференцируема по х, то при т > 1 функция gx (x, и, ak) дифференцируема по (х, и): . JL- gx {x, щ ak) = mk j I min {0, <p {x, y) — и) Г X x ~5Г ф (х> ^ l 450
Алгоритм 1 Начало. I. Выбрать последовательность {a^/Lo коэффициентов штрафа такую, что а?^0, * = 0, 1, 2, ...; lima? = oo. /->оо И. Задать меру \i в пространстве, содержащем Y, такую, что любое непустое пересечение Y с любым открытым множеством имеет положительную меру. III. Выбрать параметр т > 0. IV. Задать отрезок (/, содержащий внутри себя значение и* = max min ф (л;, у). В качестве U можно, например, выбрать отрезок [min ф (х, у) — 1, max ф (х, у) + 1]. (x,y)?XxY (x,y)?XxY Если выбрано т^ 1, то можно положить U = (—оо, оо). V. Положить k = 0 Основной цикл. VI. Определить функцию g% (x, и, ak) = и — ak j | min {0, ф (х, у) — и) |т d\x (у). VII. Вычислить точку (х* (ak), и* (аЛ))?Х X ?/, удовлетворяющую условию gx(x*(ak), w*(afe), aft)= max gx(x, u9 ak). (xfu)?XxU Для нахождения точки (я* (аЛ), и* (ak)) решается задача максимизации по (ху и) функции gx (л:, щ ak) на множестве X X U, причем решение этой задачи на (k — 1)-й итерации принимается за начальное приближение задачи максимизации в k-й итерации. VIII. Положить k = k + I и перейти к шагу VI. Теорема 1. Пусть выполняется предположение 1. Тогда любая предельная точка (х*, и*) последовательности {#* (ak), и* (afe)}J?Lo, порожденной алгоритмом 1, является решением задачи 1, т. е. и* = max min ф (х, у) = min ф (х*у у), х?Х y?Y y?Y причем при всех k = 0, 1, ..., т > 0 справедливы неравенства уОУ Теорема Г. Если Y — параллелепипед т-мерного пространства Rm, \i — мера Лебега, а функция ф (ху у) удовлетворяет условию Липшица по у равномерно относительно х, т. е. — у1 Vу, y?Y то для достаточно больших ak справедлива оценка 0 < м* К) — а* < р (т, т) [7т/аЛ]1 еде Р (т, т) — константа, не зависящая от ak и у. 15* 451
Если Y = [у1, ..., у1) —конечное множество, i gi (х, ы, «*) = и — а* S I min {0, ф (л;, */<) — и} |\ то при = а* при т = 1, ak Замечание 1. Если задана точность е определения величины мак- симина, то в алгоритме 1 вычисления следует проводить до тех пор, пока не будет выполнено неравенство u*(ak) — ттф(**(аЛ), #)<е (для этого необходимо оценить глобальный минимум функции Ф (х* Ю> у) по у б Г). Замечание Г. Для ускорения поиска максимина с заданной точностью, сокращения объема вычислений, преодоления трудностей, связанных с «овражным» характером параметризованной задачи, в [372] рекомендуется последовательность aki k = 0, 1, ..., выбирать по правилу ak < a*+i < ak + р (m, т, у) aj«+*-2)*-if Л = 0, 1 где Р (/п, т, у) > 0 — константа, не зависящая от коэффициента штрафа ak; у — константа Липшица функции ф (я, у) по у; а0 следует брать не слишком большим, чтобы уменьшить время поиска (** (а0), и* ()) Библиографические указания. Параграф написан на основании работ [67, 368, 372]. Дополнительные сведения о методе штрафов для решения задач максимина можно найти в работах [369, 370, 66]. 6.6. Методы стохастического квазиградиента в задаче поиска максимина Задача 0. Найти х*= arg max min cp (x, у) для заданной функции ф : Rn X И-* Я1, компактного множества Y пространства JRW и множества . F.3) Предположения 0. (i) — функция ф (х, у) — ограничена и непрерывно дифференцируема по х на Rn X К; (И) — функции ft (a:), i = 1, ..., т — непрерывно дифференцируемы и ограничены снизу на R\ Задача вычисления вектора л:* и величины максимина ы* = max min ф (х, у) х?Х y?Y 452
сводится к максимизации по (х, и) ? X х U функции gXl,xAx, и, а) = ы —aJimin{0, ф(*, у) — и] |X' d|i (у) т где ть т2 > 0; pi > 0; 5j Pr= U a — коэффициент штрафа; |ut. — некоторая мера на множестве У; U — любой отрезок, содержащий точку и*. Функцию gXi,xi (xy и, а) можно рассматривать как математическое ожидание Еу^Цх^х* (х> и> а1у> 0 функции <7т,.т2 (*, и, а/у, i) = и — а | min {0, ф (х, у) — и] |Tl — — a|min {0, fi{x)} \x* от двух независимых случайных величин у> i, примем у распределена на компакте Y в соответствии с мерой ц, а i принимает значения из множества V = A, ..., т) с вероятностями pl9 p2t ..., рт. Для решения задачи максимизации применяется метод стохастического градиента. В алгоритмах с ростом итераций коэффициент штрафа а стремится к бесконечности и в отличие от алгоритма 1 (см. § 6.5) на каждой итерации нет необходимости решать задачи максимизации и вычислять многомерные интегралы. 1. Основной алгоритм Алгоритм 1 Начало. I. Выбрать произвольное начальное приближение (х\ и1) е Rn X Я1. II. Задать меру \i в пространстве, содержащем Y, такую, что любое непустое пересечение Y с любым открытым множеством имеет положительную меру. III. Выбрать параметры %г ^ 2, т2 ^ 2 и константу а0 > 0 (обычно выбирают: %1=^ 2, т2= 2, ao? [I, 102]). т IV. Задать числа ph i = 1, ..., т (pt > 0, i = 1,..., ш, JJ pt = = 1), которые, соответственно, характеризуют требуемую относительную точность выполнения ограничений F.3) в задаче 0 (обычно Pi = 1/m, / = 1, ..., m). V. Положить А = 1. Основной цикл. VI. Найти независимую реализацию yk случайной величины у, распределенной на компакте Y в соответствии с мерой \i. 453
VII. Найти независимую реализацию ik случайной величины i9 которая принимает значения из множества V — {1, ..., т) с вероятностями ри р2у ..., рш соответственно. VIII. Вычислить значение шагового множителя pk9 удовлетворяющее условиям теоремы 1. IX. Вычислить приращение Ak коэффициента штрафа, удовлетворяющее условиям теоремы 1. X. Положить ak= a*_i + Afe. XI. Вычислить стохастический градиент (?*, v\k) функции ёх»х* (х, и, <*k) в точке (xk, uk) lk = аЛ | min {0, Ф (х\ yk) - uk] Г1 V, <р(х\ yk) + + а,т21 min {0, fik (x*)} |T^! VJtk (xk); F.4) r\k = 1 — akxx | min {0, ф (x\ yk) — uk) Г1". F.5) XII. Вычислить следующее приближение (^A+1f uk+x) no формулам XIII. Положить k = k + l и перейти к шагу VI. Теорема 1. Пусть выполняются предположения 0 и (Ш) — (х, у) ограничен на Rn X Y и удовлетворяет условию Липшица по х на Rn равномерно относительно у ? К; (iv) — Vxft (x)9 i == = I, ..., m, ограничены и удовлетворяют условию Липшица на Rn; (v) — числовые последовательности {pk}h^u {WT^i б алгоритме 1 такие, что /. Гог5а 5ля любого начального приближения (х\ и1) последовательность {(xk, ик)}?=и порождаемая алгоритмом 1, содержит подпоследовательность такую, что все ее конечные предельные точки (х\ и') с вероятностью 1 удовлетворяют следующим условиям: существуют числа и точки для которых справедливы соотношения и' =гшпф(х/, у)\ 454
S S (в-в) rc-f-1 S=l 2. ?&ш, ярсшг того, co{VJt(x)9 '€^"W}^0, F.7) где я+1 mo л:' ? X, 2 Ps > 0 и справедливы условия дополняющей нежест- s=l кости Ш*') = 0, * = 1, ..., m, /п. б. mowca х' является стационарной в задаче 0. Замечание L Условие F.7) выполнено для х ? Л", если векторы VJi (x), i ^ $~~ (х)у линейно-независимы для любых х таких, что 3~~ (х) Ф 0. Данное условие выполняется также в том случае, когда функции ft (x) вогнуты и удовлетворяют условию Слейтера на пространстве й". 2. Следящий алгоритм Для практического нахождения стационарных точек в задаче О с помощью алгоритма 1 необходимо выделять специальную последовательность, все предельные точки которой являются стационарными. В приводимом ниже алгоритме нужная подпоследовательность выделяется при реализации итерационного процесса. Алгоритм 2 Начало. I—IV. Шаги I—IV такие, как и в алгоритме 1. V. Выбрать произвольное значение в > О- VI. Выбрать произвольный вектор vl ? йт+1 (обычно в качестве v1 выбирают приближенное значение градиента функции g%ttXa (xt и, аг) по (х, и) в точке (*\ и1)). VII. Положить k = 1, / = I. Основной цикл. VIII. Если ||а*||<е, то положить и перейти к шагу IX, если || и* || ^ 8, то перейти к шагу IX. IX. Найти независимую реализацию yk случайной величины у, распределенной на компакте Y в соответствии с мерой \i. X. Найти независимую реализацию ik случайной величины /, которая принимает значения из множества # = {1, ..., т) с вероятностями ръ /?2, ..., рту соответственно. 455
XI. Вычислить значения шаговых множителей pft, p* и значение коэффициента штрафа ak, удовлетворяющее условиям теоремы 2. XII. Вычислить стохастический градиент ?*=(?*, v\k) функции g-Tl,t2 (х, и, ak) в точке (xk, uk) no F.4), F.5). XIII. Вычислить следующее приближение xk+\ ^xk + р^л. uk+\ = uk XIV. Вычислить вектор XV. Положить ft = ft + l и перейти к шагу VIII. Теорема 2. Пусть выполняются предположения 0, условия (Hi), (iv) теоремы 1 и числовые последовательности v {p^}ILi 1 такие, что 00 pk> 0, lim pk = О, Ц pfe = оо; lim Akak = 0, Нт р^ = О, lim pfe (»ftK = 0, 2 (pftaftJ < oo; fe-»- ОО Л=1 2 ад2«ft (s p;«s)< ~. s (p/ (s ^=1 \s=l / fe==l \s=l oo 2 (р2*°#р*) < °°. l Тог(9а для любых векторов (х\ и1), vh 1) последовательность {(xk, w*)}^=i, порождаемая алгоритмом 2, содержит такую подпоследовательность {(#% u8t)}tLi9 что почти наверное (^)gT]fT2(A u\ as) = 0. Любая предельная точка (х\ и') этой подпоследовательности удовлетворяет условиям F.6) и является стационарной в задаче О, если 2) \\ 3) предельная точка (х, и) последовательности {(xkt, «* 456
порожденной алгоритмом 2, является стационарной точкой в задаче 0. Приведенные выше условия будут выполняться, если, например, положить или 3. Выпуклый случай Задача 3. Найти arg max min ф (х, у) для заданной функ- ?Х QY ции ф : Rn X Rm-> Я1, компактного множества YczRm и множества ХД {х|/<(*)> О, /= 1, ..., m; где Z — выпуклый компакт в Rn\ fi:Rn-+R1,i= I, ..., т — вогнутые функции на Z. Алгоритм 3 Начало. I—V. Шаги I—V такие, как в алгоритме 1. Основной цикл. VI. Найти независимую реализацию yk случайной величины у, распределенной на компакте Y в соответствии с мерой [х. VII. Найти независимую реализацию ik случайной величины /, которая принимает значения из множества V = {1, ..., т) с вероятностями ръ /72, ..., рт> соответственно. VIII. Найти значения шагового множителя pk и коэффициента штрафа аь удовлетворяющие условиям теоремы 3. IX. Вычислить стохастический градиент (?*, r\k) функции ёт^тз (х> и, ak) в точке (xk, uk) по формулам F.4), F.5). X. Вычислить следующее приближение (л;^1 , uk+l) = nz (xk + pklk)\ uk-V - nu (uk где nQ — оператор проектирования на Q; U — достаточно большой отрезок, содержащий [min ф(*, у), max ф(х, у)]. )?ZY (x,y)?ZxY XI. Положить k =* k + 1 и перейти к шагу VI. Теорема 3. Пусть выполняются условия: (i) — Z — выпуклый компакт, Y — компакт; (и) — функции ф (#, у), V* <р (х, у) непрерывны на Z X Y; (Hi) — ф (х, у) вогнута по х на Z для любого у ?Y; (iv) —функции /^ (x)t i == 1, ..., m, имеют непрерывные частные производные и вогнуты на Z; (с) — числовые последователь- 457
ности {p*}5?=i> WjLi такие, что fe-ЮО оо (условия (v) будут выполняться, если положить р* = АГ8/\ аЛ = АЧ ft=l, 2, ...). Тогда для любого начального приближения (я1, и1) последовательность.{(xk, uk))t=u порожденная алгоритмом 3, с вероятностью 1 сходится к множеству G* решений задачи 3: G* A {argmax min ср (х, у)) х {а*}. Замечание 5. Если в максиминной задаче 3 Z = Rn и функции Ч> (х> У)> ft (р)* i = 1» •••» /w, удовлетворяют условиям теоремы 1, то на шаге X алгоритма 3 точку (xk+l , uk+l) можно вычислять по формулам xk+\ ^ xk + р^; где рЛ, аЛ вычисляют в соответствии с требованиями теоремы 3. Замечание 3'. Алгоритмы, приведенные в данном параграфе, сравнительно просты для реализации, устойчивы относительно ошибок вычислений; их эффективность по сравнению с другими методами решения задачи 0 увеличивается с ростом размерностей переменных х и у. Решение тестовых задач на ЭВМ свидетельствует о более быстрой сходимости алгоритмов по переменной х, чем по переменной и, поэтому в [372] рекомендуется один шаг по переменной х чередовать с несколькими шагами по переменной а. Библиографические указания. Пункт 1 написан на основании работ [372, 165], пункт 2 — на основании работ [372, 164]. При написании пункта 3 использовались работы [372, 165, 266]. 6.7. Метод невязок в задаче поиска максимина Задача 1. Найти л:*= arg max min w (x, у) для заданной qX ?Y функции ф : Rn X /?m-> В1, заданного параллелепипеда Y a R и множества 0, *«1, ...,/i, m где Q — заданный компакт. Предположения 1. Функции ft (x)> i = 1,..., 1Ъ ify (x), j = 1,... ..., 12 — непрерывны по х\ ф (х, у) — непрерывна по (х, у). 458
В методе «невязок» вводится функция g{x, «)= f[min{0, <p(x, у) — u}]2dy Y Y + t P/ (% WJ + ? Щ [min {0, U (x)})\ где Ру > 0, at- > 0 — произвольные константы. Значение максимина и* Л max min ф (х> у) х?Х y?Y вычисляется как максимальное и, для которого ming{x, и) = 0, при этом х = arg min g (x, и*) является решением задачи 1. На каждой итерации алгоритма требуется решать задачу минимизации по х ? Q функции g (x, uk)% где {и*}?=о сходится к и*, что представляет собой сложную задачу из-за трудностей, связанных с вычислением многомерных интегралов. В работе [72] для вычисления многомерных интегралов использован один из вариантов метода Монте-Карло. Метод «невязок» для решения максиминных задач следует использовать, когда х и у имеют небольшую размерность, или когда Y состоит из конечного числа точек (тогда вычисление интеграла заменяется вычислением суммы). Алгоритм 1 Начало. I. Выбрать произвольное значение и0 ? R1 (обычно и0 выбирают из отрезка [min ф (х, у)> max ф (х, у)]) и произволь- (x,y)?QxY (x,y)?QXY ное начальное приближение х° ? Q. II. Выбрать приращение А > 0. III. Выбрать произвольные константы at > 0, / = 1, ..., /х; Ру>0, /= 1, ..., /,. IV. Определить функцию g(x, u)= \ [min@, ф(а:, у) — u}]2dy + Y + t P/ (¦, (х)J + t «i [min {0, U (x)}]2. F.8) V. Положить k = 0. VI. Вычислить g(, и0) x?Q и вектор ° Если ао= 0, то перейти к шагу VII, если ао> 0, то — к шагу ял. 459
Основной цикл. VII. Положить т = 1. VIII. Вычислить = uk + тД. IX. Вычислить , uk+l) F.9) и вектор xk+l ? Q arg min g (л:, и**1). F.10) X. Если*(Т?+1 = 0, то положить ft = ft + 1, т = т+1 и перейти к шагу VIII; иначе (если Ok+\ > 0) положить щ+\ = uk, r\t+\ = i/^+1, ft = ft + 1 и перейти к шагу XV. XL Положить % = 1. XII. Вычислить = ик — тА. XIII. Вычислить a^i и x*+1, соответственно, по F.9), F.10). XIV. ЕСЛИ СГа>+1 > 0, ТО ПОЛОЖИТЬ ft = ft+l, Т = Т+ 1И перейти к шагу XII; иначе (если о^г = 0) положить и перейти к шагу XV. XV. Вычислить XVI. Вычислить a^-f-i, xk+\ соответственно по F.9), F.10). ^XVII. Если ok+i = 0, то положить г\Т+1 = uk+l, r\t+\ e = r|^", ft = ft + 1 и перейти к шагу XV; иначе (т. е. если a^+i > > 0) положить ji/h_i == Т)Г, ЛЙ4-1 ^ w*+1» ft = ft + 1 и перейти к шагу XV. Теорема 1. Если выполнено предположение 1, то алгоритм I порождает последовательность {ик)ь=ъ> для которой lim uk »= a*, ft-voo причем точка 1c = argming"(A:, w*) x?Q является решением задачи 1, m. e. 9( /) Замечание 1. На практике итерации проводят до тех пор, пока для заданного малого числа е > 0 не выполнится неравенство 460
Тогда за приближенное значение максимина принимают uk, а за решение задачи 1 — вектор xk ? Q, ** = argming-(*, uk). x?Q Библиографические указания. При написании параграфа использовались работы [70, 72, 372]. 6.8. Квазиградиентные методы решения непрерывных минимаксных задач стохастического программирования Задача 0. Найти arg min max Etp (x, у, со) для заданной х?Х у?У функции ф : Rn X Rm X Q ->- Я1 и заданных множеств X cz Rn, Y aRm. Предположения 0. (i) — функция / (x, у) & Еу (х, уу со) и ее градиент по х непрерывны по совокупности переменных л;, у\ (ii) — X — выпуклое, замкнутое ограниченное множество; (ш) — Y — замкнутое ограниченное множество; (iv) — имеется возможность вычислять только значения функции <р (л:, у, со) и ее градиента V*<p (х, у, со) в каждой точке (л;, у, со) ? X X Y X fi. Предлагаемые ниже методы решения задачи 0 основаны на построении специальных множеств Yk для определения на k-и итерации направления движения hk к (k + 1)-му приближению xk+K Вектор hk определяется как стохастический квазиградиент функции max Etp (х, у, со) в точке л^. У?Ук I. Стохастический квазиградиентный метод Алгоритм 1 Начало. I. Выбрать начальное приближение х° ? X. II. Выбрать натуральное число N89 положить N = N8 III. Выбрать произвольные действительные числа г?, /? € [0 : N1 IV. Построить сетку V. Положить k = 0. Основной цикл. VI. Найти индекс ik из условия z\ = max zk,. k l?[0:N] VII. Вычислить независимую реализацию со* случайного параметра со. VIII. Вычислить У*ф (xk (со), yik, со*). IX. Вычислить шаговые множители pk и aky удовлетворяющие условиям теоремы 1. X. Вычислить следующее приближение (со) * пх (xk (со) - p,V,q> (xk (со), у\ со*)). 461
XI. Вычислить значения функции ср (xk+* (со), у1, cofe), i ? € [0 : N]. XII. Вычислить величины z*+i (со) = г\ (со) + ak (<р (**Н (со), у', со*) - г\ (со)), / € [0 : iV]. XIII. Положить k = А + 1 и перейти к шагу VI. Теорема 1. Если выполнены предположения 0 и (i) — функция ?ф (ху у, со) выпукла по ху х?Х при каждом у ?Y\ (и) — градиент функции f(xy у)йЕу(х, у у со) по х удовлетворяет условию Липшица f у) — VJ(x9 уЦ^а^х — х\\, у?У, х, (ш) - Е\<р(х, у, со)|2<оо, E\\Vxy(xt yy co)f<oo, y?Y9 x$ (iv) — шаговые множители pk и ok удовлетворяют условиям оо оо Цст|<оо, Spfe=oo, pk/ok^0 при &->оо; ^ 1 при ?->оо, то почти при каждом со предельные тонки xNs последовательности {xk (co)}^L0, порожденной алгоритмом 1, являются точками минимума функции max Eq> (x, у1, со) на множестве X. Для решения исходной задачи 0, необходимо при каждом фиксированном Ns (Ns-> оо при s -+- оо) решать дискретную минимаксную задачу с помощью алгоритма 1, причем последовательность сеток {Yn }?Loдолжна обладать свойством плотности на множестве К. Каждая предельная точка последовательности {^s} Появляется решением задачи 0. Последовательность сеток {У# }^=о «обладает свойством плотности» на множестве К, если для любого е > 0 можно указать такой номер N, что для всехNs> N расстояние между произвольной точкой у ? Y и ближайшей к у точкой сетки Yn$ будет меньше е. 2. Модифицированный стохастический квазиградиентный метод Алгоритм 2 Начало. I. Выбрать начальное приближение x°?Rn. II. Выбрать натуральное число No и построить сетку III. Выбрать произвольные действительные числа г?, / g 6 [0 : ЛГ0]. IV. Выбрать начальное значение шагового множителя р0 > 0 и константы а > 0, Р > 0. 462
V. Положить k = 0. Основной цикл. VI. Найти индекс ik из условия zt (со) = max zf (со). к t?№Nl VII. Найти независимую реализацию со* случайного параметра СО. VIII. Вычислить V, (ф (xk (со), tfk, со*). IX. Вычислить следующее приближение (со) = пх (xk (со) - р^ф (xk (со), у\ ©*)). X. Вычислить значения ф (л;**1 (со), у1, cofe), i g [0 : AfJ. XI. Найти шаговые множители p*+i и а^+ь удовлетворяющие условиям теоремы 2. XII. Построить сетку так, чтобы она содержала все точки сетки У# с сохранением их нумерации и чтобы выполнялось следующее условие: для произвольного у ? Y расстояние от у до ближайшей течки сетки У#Л+1 не превышало значения + XIII. Вычислить величины г*-Н (со) = z] (со) + aft+1 (q> (x*+i @), ^, соЛ) - г) (со)) / 6 [0 : Nk]. XIV. Положить i = Nk+ I. XV. Найти точку t/* сетки У^Л, которая принадлежит шару радиусом арл+i с центром в точке у1" и имеет наименьший индекс и е to: лд. XVI. Положить г*+1 (со) = zj. (со). XVII. Если i < Л^л+ь то положить i == i + 1 и перейти к шагу XV; иначе перейти к шагу XVIII. XVIII. Положить k = k + 1 и перейти к шагу VI. Теорема 2. Если выполнены условия теоремы 1 и (i) — функция ^Ф (*, У» ю) для произвольного х ? X удовлетворяет условию Липшица по переменной у у, ы) — Е<р(х, г/, (Н) — последовательность {ок}^о дополнительно удовлетворяет условию т lim ^^«=00 при т — S-+OO (например <Jk=~ fe~v, v б (V2, 1)), то почти при каждом о> предельные точки последовательности 463
{xk (g))}?Lo, порожденной алгоритмом 2, являются точками минимума функции max 2?q> (x, yy со) на множестве X. у?У Библиографические указания. Параграф написан на основании работ [30, 31, 32, 171, 113]. 6.9. Градиентные методы отыскания седловых точек Задача 0. Найти точку (л;*, у*) ? X X Y, удовлетворяющую условию y?Y, F.11) где ф (х, у) — вогнуто-выпуклая функция; X и У — выпуклые замкнутые телесные подмножества эвклидовых пространств Rn и fim, соответственно. Определение 1. Множество точек (#*, у*), удовлетворяющих условию F.11), называют множеством седловых точек X* х F* функции ф (х, у) на множестве X х Y. Предположения 0. (i) — функция ф (ху у) непрерывно дифференцируема на множестве X X У", вогнута по а: и выпукла по у\ (ii) — множество седловых точек X* X Y* функции ф непусто и ограничено; (ш) — выполняется условие устойчивости множества седловых точек по х, т. е. для произвольного х ? (Х\Х*) выполняется строгое неравенство ф(*, ?/*)<ф(**, У*). Предположения 0 выполняются для функции Лагранжа задачи вогнутого программирования: найти arg max /0 (#), F.12) где XiH*|M*)>0, *«lf ..., m, x^Rn}9 с дифференцируемыми (и вогнутыми) функциями /у, / = 0, 1, .., т, если функция /0 строго вогнута и выполняется условие Слейтера. Условие (ш) играет существенную роль, так как при его отсутствии градиентные методы отыскания седловых точек, в общем, не сходятся. Примером служит функция являющаяся функцией Лагранжа задачи найти arg max x, где Я!? — подпространство m-мерных векторов с неотрицательными компонентами. 464
I. Основной алгоритм Алгоритм 1 Начало. I. Выбрать начальное приближение (л:0, у0) ? X X X Y. II. Положить k = О Основной цикл. III. Выбрать шаговый множитель pfe> удовлетворяющий условиям теоремы 1. IV. Вычислить векторы V*cp (xk, yk) и Vyq> (xk, yk) — градиенты, соответственно, по х и у функции ср (х, у) в точке (х*9 yk). V. Вычислить следующие приближения: **+i = ях (xk + pkVxy (xk, yk))\ yk+i x= nY (yk — phVy<v (xk, y% где nQ — оператор проектирования на множество Q. VI. Положить k = k + 1 и перейти к шагу III. Теорема 1. Пусть выполняются предположения 0. Тогда для любого положительного числа б существует такое положительное число р F), что при всяком начальном приближении (х°, у0) (? Z F), {(x,y)\ min |(x, y) — (x\ (x*,y*)?X*XY* и любой последовательности {pfe}^L0, удовлетворяющей условиям алгоритм 1 порождает последовательность {(xky yk))kLu% которая схо* дится к множеству седловых тсчзк X* X К*. 2. Градиентный метод отыскания седловых точек с постоянным шаговым множителем Алгоритм 2 Начало. I. Выбрать произвольное начальное приближение (*°, У0) € X X Г. II. Выбрать постоянный шаговый множитель р > 0. III. Положить k ¦¦ 0. Основной цикл. IV. Вычислить векторы V*q> (#*, #*) и Vy(p (xk, yk). V. Вычислить следующие приближения: где я^—оператор проектирования на множество VI. Положить k = k + 1 и перейти к шагу Теорема 2. Пусть выполняются предполооюения 0. Тогда для любых чисел гиб, удовлетворяющих неравенству 0 < е < б, существуют такие положительные числа р (е, б) и k0 (e, б), что 465
алгоритм 2 при всяком (л;0, у0) ? Z (б) и произвольном постоянном шаговом множителе р ^ р (е, б) порождает последовательность {(xkt yk)}™=Oj для которой при всех k > k0 (e, б)р~! будет (xk, yk) ? Z (г) (здесь и далее множества Z (б) и Z (е) определяются по F.13)). Теорема 2'. Пусть выполняются предположения 0 и пусть: (iv) — множество седловых течек X* X Y* функции ф (л:, у) состоит из одной точки (#*, у*); (v) — функция <р (х, у) имеет в точке (л:*, у*) вторую производную; (vi) — точка (л;*, у*) является внутренней точкой множества X X Y; (vii) — не существует числа X и не- нулевого вектора (uf v) ? Rn X Rm таких, что VL<P (х*, у*) и = 0, ViU (л;*, у*) v = 0; ^*) и = Ь, (У^ф (л:*, y*)f v - Хи. Тогда для любого числа б > 0 найдется такое число р (б) > 0, алгоритм 2 при всяком начальном приближении (х°, у0) ? Z (б) и произвольном постоянном шаговом множителе р ^ р (б) порождает последовательность {(xk, r/fe)}S=,o, которая линейно (со скоростью геометрической прогрессии) сходится к точке (х*, у*). Теорема 2"* Пусть выполняются предположения теоремы 2', кроме условия (vi), и пусть: (ix) — X = i?rt, Y = Д+; {я) — (V/p (^*, у% в1) - 0, ..., (У^ф (х*, г/*), &) = 0; где ^, i =» 1, ..., m — /-и о/?т в пространстве Rm; (xi) — не существует вектора и Ф 0 и такого, что и не существует вектора v Ф 0 и такого, что (V;i (х\ ~y*)f v - О, V;-ф (**, у*) v = О, (здесь у обозначает проекцию точки у на подпространство Rpy отвечаю- щее первым р координатам; ф — ограничение функции ф на множество Rn X /?4-;(У2~ф (х*, у*))Т—матрица, транспонированная к мат- 2 ~* У-* -в- ц~ху(х*, у*)). Тогда для любого б > 0 найдется число р (б) > 0 такое, что алгоритм 2 при всяком начальном приближении (л:0, у0) ? Z (б) и произвольном постоянном шаговом множителе р ^ р (о) порождает последовательность {(**, f/A)|ILo, которая линейно (со скоростью геометрической прогрессии) сходится к седловой точке Замечание 2. Если ф (ху у) — функция Лагранжа задачи вогну- 466
того программирования F.12), т. е. ф( у) /о()+ S то условия (xi) теоремы 2" означают линейную независимость градиентов V/x (#*), ..., Vfp (л:*) активных ограничений и сильную выпуклость функции — ф (л:, #*) в окрестности точки х*. 3. Обобщенный градиентный метод Задача 3. Найти точку (#*, #*) ? X X Y, удовлетворяющую условию где ф (л:, у) — вогнуто-выпуклая функция; X и F — выпуклые и замкнутые множества эвклидовых пространств Rn и /?w, соответственно. Предположения 3. (i) — функция ф (х, у) при любом фиксированном у ? Y выпукла вверх по х в некоторой окрестности X множества X; функция ф (#, у) при любом фиксированном х ? X выпукла вниз по у в некоторой окрестности Y множества Y\ (и) — множество седловых точек X* X F* функции ф (х, у) относительна множеств X и Y непусто и ограничено; (ш) — выполняется условие устойчивости множества седловых точек X* X К* функции Ф (*, у)у т. е. д,ля произвольных д;* f X*, у* ? Y* выполняется X* - [х] ф (х, у*) = max <p (*', у% х?Х}\ х'?Х Y* = [у | Ф (**, у) - min Ф (х*, у'\ yGY). У'?У В приведенном ниже алгоритме в качестве векторов, определяющих направление движения по переменным х и у на k-й итерации* выбирают, соответственно, обобщенные градиенты функции ф (х, у} по х и у, вычисленные в точке (xk> yk). Шаговые множители удовлетворяют классическим условиям. Алгоритм 3 Начало. I. Выбрать произвольное начальное приближение (х\ у0) 6 X х Y. II. Положить k = 0. Основной цикл. III. Вычислить обобщенные градиенты V* Ф (**, yk) и V^ ф (xk, yk) функции ф (а:, у) по х и у в точке (xky yk), т. е. такие векторы, что (V,<P (**, У"), х' - xk) > Ф (х', yk) - Ф (х», у% (Vy4> (xk, yk), у' - yk) < ф (ж», «/') - ф (х», «/*), V у' б К. IV. Вычислить шаговый множитель pft. 46?
V. Вычислить следующее приближение (д:^1 , yk+l) (xk, у% VI. Положить k = k + I и перейти к шагу III. Теорема 3. Пусть выполняются предположения 3 и пусть: (iv) — множества обобщенных градиентов функции ср (х, у) по х и у, соответственно, равномерно ограничены, т. е. существует постоянная а такая, что (v) — шаговые множители pk в алгоритме 3 удовлетворяют условиям k pfc = 0; lim ? р, = оо. последовательность {(xk, yk)}kLo, порожденная алгоритмом 3, такова, что min |(хЛэ f/fe) —(л:*, ^*)||~>0 пра &->оо. F.14) Теорема 3'. Пусть выполняются все предположения теоремы 3 за исключением условия (iv). Тогда существует число р > 0 такое, что при выполнении дополнительного условия последовательность {(#*, #*)}Ио, порожденная алгоритмом 3, удовлетворяет предельному соотношению F.14). Библиографические указания. Пункты 1 и 2 написаны на основании работ [231, 167], пункт 3 — на основании работы [82]. Дополнительные сведения о градиентных методах отыскания седловых точек можно найти в работах [373, 183, 334). 6.10. Метод экспоненциальных штрафов отыскания седловых точек Задача 1. Найти точку (#*, у*) ?Х0Х Yo такую, что для каждой точки (jc, у) из Хо X Yo выполняется где fr.Rm+R\ /=1, ..., m. 468
Предположения 1. (i) — функция ф (х> у) выпукла по х при каждом у и вогнута по у при каждом х\ (и) —gt (x)> i = 1, ..., р и //t / == 1, ..., т — выпуклые функции; (ш) — Хо и Yo—непустые ограниченные множества. В методе экспоненциальных штрафов решение задачи 1 сводится к решению последовательности задач отыскания безусловных седловых точек (xk, yk) функций . Г Р т 1 Ф/е (х, У) = Ф (*, У) + — 2 exp (P*g, {x)) — 2 exp (P*/,- {у)) , где а^и pft — вещественные параметры, удовлетворяющие условиям Рл -+• оо при &-*оо, pft^afe^ 1, ^^ 1. При определенных условиях предельные точки последовательности {(xky yk))k=\ являются решениями задачи 1. При более сильных условиях, налагаемых на функцию <р (#, у), приводятся оценки скорости сходимости последовательности {(xk, yk)}kL\ к решению (#*, у*) задачи 1. Удачный выбор параметров ak и pft получается, если {ocfe}^=i, {p^}ILi, {pfe/a^}^=i стремятся к бесконечности. Алгоритм 1 Начало. I. Задать числовые последовательности {о^}!^ и {P/j}?=i, удовлетворяющие условиям Pfe—>-оо при /5->-оо; Pfe>a/e^l ПРИ &=li 2, ... . F.15) (например, можно принять' <** = Р* = (<*)*, Л— 1, 2 либо Рь = k, afe=»l, ^ = 1, 2, ..., либо Рл = (РЛ a, = (a)fe, *-l, 2, ..., II. Положить k = 1. Основной цикл. III. Определить функцию X [ Jj exp $kg{ (x)) - ? exp (p,/7 IV. Вычислить седловую точку (xk, yk) функции (pfe (xt у) в Rn X Rm, т. е. точку, для которой выполняется Ф* (**, f/) < Ф. (**. Ук) < Фл (^. А V (*, у) 6 Л11 X Лт. V. Положить A = fe+ 1 и перейти к шагу III. 469
Если выполняются предположения 1 и существуют точки х° ? Rn и */°? Дт такие, что lim ф (л;0, у) < + оо; lim ф (*, у0) > — оо, (б.1в) то при каждом k ^ 1 существует, по крайней мере, одна безусловная седловая точка функции фл (х, у). Если же неравенства F.16) не выполняются, то при выполнении условия lim фк/ак) = + оо fe-юо функция фл (х, у) для достаточно больших k имеет хотя бы одну седловую точку вй"х Rm, причем все безусловные седловые точки функции фл (для достаточно больших k) находятся в множестве Х& X Гб, где Хб={х| max ?,(*)<6, б — некоторое положительное число. Теорема 1. Пусть выполняются предположения 1 и пусть для каждого k ^ 1 (xk, yk) — безусловная седловая точка функции Ф* (*» у) в Rn X Rm. Если последовательности {a^J^i и {РЛ}?=1 удовлетворяют условиям F.15) и условию (Р*/аЛ) = оо, F.17) то каждая предельная точка (такова обязательно существует) по- -следовательности {(xk, #*)}?=i принадлежит множеству Хо х Yo. Кроме того, если ak стремится к бесконечности или если множества Хо, Yo непусты, где X°o={x\gt{x)<Ot f = 1 р, x?Rn}\ F.18) то в^ предельные точки последовательности {(xk, yk)}kLi являются седловыми точками функции ф (х, у) относительно Хо X Yo, т. е. являются решением задачи 1. Теорема Г. Пусть выполняются предположения 1 и условия F.15) и F.17). Тогда если множества Хо и Ко, определяемые соотношениями F.18) и F.19), непусты, то для достаточно больших k безусловные седловые точки (xk, yk) функции yk (x, у) принадлежат множеству Хо X Yo и справедлива следующая оценка скорости сходимости по функционалу: Теорема Г. Пусть выполняются все условия теоремы Г и пусть: (iv) — функция ф (л:, у) имеет единственную седловую точку (л;*, у*) 470
относительно Хо X Fo; (v) — функция ф (•, #*) — равномерно выпукла (с функцией fXj (/)), а функция ф (л;*, •) — равномерно вогнута (с функцией |л2 (/)). Тогда для достаточно больших k справедливы оценки Вещественно-значная функция г (z) (г : Rl -* R1) называется равномерно выпуклой (соответственно, вогнутой) на выпуклом множестве Q, если существует неубывающая функция щ (/) > О (соответственно, [х2 (t) > 0), определенная на @, +оо) и такая, что для всех z, z ? Q, выполняется неравенство (соответственно, Библиографические указания. При написании параграфа использовались работы [561, 527]. 6.11* Задачи оптимального управления и оценивания. Методы развязывающих операторов Задача 1. Найти такое управление и & (и1у и2, ..., un) G ? D Д Di X D2 X ...X Dn для управляемой системы Ak(xk9 Xkr-U ...» Xlf Uk9 Uk-u •-., Hi, Z) = O, F.20) ^i,^...,4 ^е^ъ илес/л, *= l, 2, .•., лг, с наблюдениями J ZAZxZ2 x ••• X ZNi которое обеспечит максимальное на D значение В (я, и, г) (в других постановках задачи требуется выбором и обеспечить включение В (xt ufz) ? G (и, z) для заданного множества G («, z)) для заданной целевой функции В и заданных D, А Л (Лх,..., Л#),С = (Си ...,C/v). Предполагаем, что Xky Uk, Zk являются линейными (конечномерными) пространствами. Методы развязывающих операторов основаны на использовании решения функционального уравнения [22—26] S3 (и, z, А(х, и, г), С(х, u)) = B(xt и, г), F.21) определяющего функцию j&abcd (развязывающий оператор), ®abcd{u, г)ДЯ(н, г, 0, z). 471
Если, как это бывает в реальных задачах, некоторая часть ul управления uk Л («I, ul) (и А (и1, и2)) является значением определенной функции U> т. е. и2 = U (х, и, z), то уравнение F.21) принимает вид [25] 3$ (и1, U (х, и9 г), г, А (х, и, г), С (х, и)) = В (х, и, г). В ряде адаптивных алгоритмов оптимизации функцию SSabcd аппроксимируют по ее вычисляемым или экспериментально определяемым на некоторой выбираемой последовательности (и1, г1), ... ..., (и/, Д ... значениям В (X (и\ г1), и\ г1), ..., В (X (uf, *')> . J) (X {и!\ z1) — множество решений системы F.20) при и = d, г = Алгоритм 1 решения задачи 1 с помощью функции 3$abcd основан на теореме 1. Теорема 1. Если V u?D, г ? Z, X (и, z) Ф 0 и уравнение F.21) имеет единственное решение, то решение и (z) задачи параметрической оптимизации и (г) A arg min 3$abcd (ut z) является иско- u?D мым решением задачи 1. Приведем примеры эффективного вычисления функции OBabcd. Задача 2. Найти управление и ? D для системы AktkXk + Л*,*-1**-1 + • • • + Аыхг + fk (и) = 0, ft=l, 2, ..., N, которое доставляет максимальное на заданном множестве D значение для функции В(х, и)Д11(с„ x{) + fN+i(u) при заданных матрицах Ak,i, векторах а и функциях fk. Алгоритм 2. Вычислить решение (yN,yN-u ••., Уг)йу(А, с) системы c*+M*^ = 0, k = N, N-\9 ..., 1, F.22) и затем вычислить управление и (у (А, с)), и (у (А, с)) Д arg max F {и, у (А, с)), u?D где Теорема 2. Если у (А, с) — единственное решение системы F.22) u\/u?D Х(и)Ф0, то В{Х{и)9 u) = F(u, у (А, с)) 472
и управление и (у (А, с)) является искомым решением задачи 2. Следствие 1. Если D — ?>х х ?>2 х ••• х Dn, N fi (и) = ti (Щ), fN+i (и) = g ft (и,), щ е Dt, то управление , с), /,(«,)) является решением задачи 2. Теорема 3. Если ft («Л = Я,ы, + d<, 7г (и*) = (^i. «Л, (v@€{l, 2, 3}, ||ы^Д max Ко),!, / — j-я компонента вектора и), то управление является в условиях теоремы 2 решением*задачи 2, где (s(a, a, l))< = asign(a),, s(a, a, 3) = аа/||а||3, (s(a, а, 2))t = = a1 (a) sign {а)ь а/ (а) — решение а1 системы а' > О, S а! = а, V / g 3Л Arg max | (а), | а^ = 0. F.23) Теорема 4. Если векторы и1, ..., им и а1, ..., ам образованы из компонент (uk)f и (B*kyk(A, c) + hk)f таким образом, что (и1, ..., им) = а, множества Dc определяются для i g &г неравенствами т. е. ^ / й S I(*)/И/1<«» J«^Ik /С — положительно определенная матрица, неравенствами со'||ф. b .-• А!}, 473
Ф; — выпуклые множества, F(u, y{A,c))= то в условиях теоремы 2 решение и* задачи 2 следующее: для i ? Зх где (s(a, a, 1, ft)), = <*/(?), sign (а)/э s(a, а, 3, K) l? (s{a, а, 2, ft))/ = ot а' (а) — решение F.23) Arg max | (<*),/(*),!, (s (a, a, 1 + р, ft)); = a fo), || ^ JT+p)* siSn («)/. i и?' = sk(ctt ai9 Ф<, о?) Ао)ЧаЛ. «ф.€Argmax(tf, и). 1 ' €Ф Следствие 2. В условиях теоремы 3 максимальное значение целевой функции м В (х (и% и*) = F (и*) = Ц а,Ф (о,, v @), , где ф (а, 1) = || а ||2, ф (а, 2) = || а \\ъ ц> (а, 3) = || a||3^-i, а в услоьиях теоремы 4 В(х{и% и*) = где для /?#! Ф* (в, . 1) = | а |2Л_ь <р* (а, 2) = | а ||1А_Ь Ф*(а, 3) = ||аЦ_ь фА(а, 1 + р) T а для t ^ S^2 Задача 3. Найти то управление « = (и1, ..., ы^) (в обозначениях теорем 3, 4), которое обеспечит выполнение цели (равенства) В(х(и), и) = Ь, Ь?В\ при минимальном расходе «энергии» 474
Алгоритм 3. I. Вычисляем у (Л, с) (решение системы F.22)) и затем векторы а1, а2, ..., ам. II. Вычисляем множество g/AArg min ^ . F.24) e /=1.2, ....м Ф* (а', v(/)) III. Вычисляем a' = sfe(a<, а,, v(f), ?(*)), где а^ — любые числа, удовлетворяющие условиям Щ > О, V / g # а, = О, i = min — /»l,-2f. ..<Af 4>k(ait V @) Задача 4. Отличается от задачи 3 наличием дополнительных ограничений (IIи'||v(o*(o> '€#iJ \\u{ — со'Ц, i?92)€QczRM. F.25) Алгоритме. Отличается от алгоритма 3 вычислением а = (аь ... на шаге III по формуле — м _ а = arg min 3 а д а ч а 5. Частный случай задачи 4 для Алгоритм 5. Отличается от алгоритма 3 тем, что на шаге III вводим дополнительное ограничение щ ^ yt. Если таких at не найдется, то полагаем а,( = yiy i?tt, заменяем число Ъ числом Ь — — S Рм> удаляем из имеющегося множества индексов i множеству во д\ определенное формулой F.24), и возвращаемся на шаг II. Теорема 5. Если выполнены условия теоремы 2, то управления, вычисленные с помощью алгоритмов 3, 4, 5, являются решениями соответственно задач 5, 4, 5. При этом В(х(и% «•)= ХРЛ. а для задачи 3 ъ- 2 (**. ©О В(х(и% и*) = min ''€f /6ТЯ 475
Задача 6. Найти и* = arg min E (и), где при ограничениях F.25) и связях 5S(х(и), и)А 2 [(cs/, xf) + (hsh u,)] = bs, s= 1 S. F.26) Алгоритм 6. I. Выбрать вектор у = (vl9 v2,..., ?te) и вычислить 5 S ^ = ? Vs/, /it- = ? v8hsi, s=l s=l 6= 2 «A. s=l И. Найти (с помощью алгоритма 3) решение uv(y(A, с)) задачи 3 и определить функцию E(uv(y(A, с))). III. Найти множество V решений у* = (и*, ..., us), у* = arg max E (uv (у (А, c)))t Ft27) IV. Вычислить управление u* = uv(y(A, с)), удовлетворяющее равенствам F.26) при v ? V. Теорема 6. Если выполнены условия теоремы 2 и множества Фс выпуклы, то управление, вычисленное с помощью алгоритма 6, является решением задачи 6. Замечание. Для ряДа практически важных случаев задача F.27) разрешается аналитически и ее решение v* находится в явном виде. Задача 7. Найти управление и = и (/, k> с) системой Ах + Ви + f = 0, F.28) минимизирующее функцию В (X, U) = (СгХ9 X) + {DU, X) - ~- (KU, U) + (С, х) + (k, U). F.29) Алгоритм 7. I. Вычисляем обратную матрицу А + BK~lD* BK~lB* Y1 л (Ап А12 С* + DIC^D* DK~XB* + А*) Ы~~ U A ' (At,-, i = 1, 2; j = 1, 2 — квадратные матрицы) и полагаем X, & Аи, Xk й А1 AnDK'x) + 1Г1 В* (Ап ' (E + D*Aa + B*A22). 476
TI. Вычисляем управление и (/, К с) - Uff + Ukk + Ufi. F.31) III. Вычисляем «траекторию» х (/, К с) = Xff + Xkk + Xcc. F.32) IV. Вычисляем B(x{f, k, с), uif, k, с)) = Ы k J, I k M, F.33) где матрица В (развязывающий оператор) определяется приравниванием правых частей F.33) и F.29) при условиях F.31) и F.32). Теорема 7. Если существует обратная матрица F.30), то управление и (/, k, с) является оптимальным решением и* задачи 7 и при этом В(х(и*\ и*) = Ы k ), ( k JJ. F.34) 3 а д а ч а 8 (задача минимаксной оптимизации). Найти управление (/*, &*, с*) = arg max min В (х (и), и) для задан- (f,k,c)?O и ной целевой функции F.29), системы F.28) и заданного множества Ф. Алгоритм 8. I. С помощью алгоритма 7 вычисляем матрицу В. II. Вычисляем искомые (/*, &*, с*) по формуле (¦(!)• (!))¦ " (/*, k*> c*) = arg max В * , \k , F.35) используя для этой цели соответствующие алгоритмы, описанные выше для разных классов множеств Ф и разных способов их задания. Задача 9 (задача оптимального оценивания). Найти линей- ную оценку В с минимальным уклонением для функции и управляемой системы GAkxk + Bkxk + HCkxk+x + Dxk+l + fk (и) + qk {p) - 0 rv *~~* 1) ?f • • • f IV , • • • с наблюдаемыми значениями 477
в случае неизвестных элементов g1^ и h{t матриц G и И соответственно при ij ? Зх и ij 6 #2 и при неизвестном параметре /?, принадлежащем заданному множеству Р. *\ Алгоритм 9* I. Вычисляем решение у системы F.36) определяющее развязывающий оператор для fi в виде В @, Н) = Я{у, х% f(u))+ S Л/ и удовлетворяющее условию (Я ^, L) = arg min max | г (р, у, L) ||, г (/?, у, L) Д L + ? F.37) II. Вычисляем оценку В в виде В (у, 1[хъ f(u)) = B(y, х, f(u))-L с минимальным на Y уклонением || г (/?, у, L) ||. Теорема 8. , H)-B{yy U xy f(u)) + L = r{p, уч L). F.38) Задача 10 (задача наблюдения и гарантированного (минимаксного) управления). Пусть хк Л (хи х2, ...» xfe), w^ Д {иъ и2, ... ..., wfr),zfe Д (г1эz2,..., zj и управляемая система описывается уравнениями Ak (хк, ик9 zkt р) = 0, А « 1, 2, ... f F.39) где р — вектор неизвестных параметров системы, ~zk — вектор наблюдений на &-м этапе, удовлетворяющий равенствам Ск(хк% uki zh p) = 0, k = 1, 2, ..., а ик — вектор управляющих воздействий (управлений). Требуется найти гарантирующее управление 478 min max в(^, (^ гк9 р\ uN, гк, р) F.40) и?Ф р?Рк
с помощью множеств Pku{P\Fs(P)<"s> sGSiPk-i)) П /V-r, где as = { max Fs (p) \ Cf (xj9 uh zh p) = 0, /=1,2,...,*}. F.41 > Замечание. Множества S (/V-i), как и функции Fs> обычно выбирают на k-м этапе неформальными методами, преследуя при этом несколько противоречивые требования: уменьшить, с одной стороны, трудоемкость решения вспомогательных задач F.40) и F.41), а с другой — обеспечить «эффективное» сужение множества неопределенности Pk, содержащего неизвестный параметр р. В качестве функций Fs часто удобно выбирать линейные функции. Для решения сформулированных (под) задач F.40) и F.41) можно использовать описанные выше алгоритмы максиминной оптимизации. В частности, для управляемой системы F.28) и функционала F.29) при / = / (/?), k = k(p)n с = с (р) для решения задачи F.40) можно использовать алгоритм 10. Алгоритм 10. Вычисляем матрицы Uf, Ukr UCJ В с помощью алгоритма 7 и согласно F.31) вычисляем решение задачи F.40) по формуле ик (Pk, zk) = U,f (p*) + Ukk (p*) + Ucc (р*), (f(P)\ /f(P)\\ B\k(p) I \k(p) . \c(p)J \c(p)JJ В общем случае для решения задачи F.40) можно использовать методы асимптотически развязывающих операторов, которые основаны на локальной аппроксимации развязывающего оператора в окрестности заданной точки и функцией В ~ (асимптотически развязывающим оператором 5-го порядка), удовлетворяющей условию Bs,u (U> *n) = B (*N ("' ~Zn)> U> ~ZN> P) + ° (PS (И> ")>> (p — метрика в пространстве управлений). Алгоритм 11.1. Выбираем q = 1, произвольные числа аъ а2> 0, /ч а3» а4 > 0, произвольный элемент uq ? Ф. II. Выбираем некоторую реализуемую аппроксимацию BGf о б [1,5], функции В /ч и вычисляем элемент и^\ ? Ф по формуле s,uq /ч min Во (и\ 479
где = 2~~ а4Я<т_i, N — минимальное натуральное число, удовлетворяющее неравенству Щ+U (uqy zN), uqy zN, p)-a Теорема 9. Если V и ? Ф B(xn(u9 zn), и, Z;v)>a5> — oo, moдлялюбого&>0 за конечное число итераций q = ^ (в, щ a5» ae) будет вычислено е-экстремальное решение ие (х-го порядка (элемент г/е € Ф называем е-экстремальным решением ji-ro порядка для задачи F.40), если не существует ветви роста [1-го порядка, т. е. последовательности {«/}/Li € Ф» удовлетворяющей условиям «/ # «6, Р (И/, Ме) -> О, S vtP^ ("/» «в) > вр^ (И/, Ие), S S V^-l* (И/, We) -> О, V0 == В (Xjv (И8, Zn), И8, i]v) — /«=0 '—B(xN(uh zN), И/, zjv)). Способ вычисления требуемой функции В ^ для весьма общего случая В(х, и, z) = Blg(B(x, и, z)) (В = (Ё1у ..., ), Big* : RL -> R1 — заданная функция с логическими операциями, включая операции max и min) дает теорема 10. Теорема 10. Если для Аы A dX{Ak) a & dXlBs в точке (х (uQ, zn), «„, zn) решение у (А,_<?) (с* Л (с\, ..^ с%)) системы F.22) единственно и функции Ak, Bs, dx(Ak, dXiBs непрерывны по х, и, то BCuq (и, ~zN) = Big (В (и, zN)), где Bs(u, zN)&Bs{x(uq, zN), и, zN) + ? (yk(A, c% Ак(х(и„, zN), u, zN)). Основные трудности реализации алгоритма 11 часто связаны с трудностями вычисления значений В (xn (uq, zn)j uq, Zn) для заданных управлений uq. В таких случаях можно эффективно использовать метод развязывающей декомпозиции для упрощения математической модели А (х, и) = 0 с помощью выбора таких функций Аъ A2J Л3, А(х, и) = (А1(х1, А2(х, и), и), А3{х, и)), х^(хъ х2), 480
для которых упрощается решение задачи хг (v, и) = arg [Аг (г, г v, и) = 0]. Это дает возможность искать и* как решение задачи минимизации функции Вг(х19 v, и)йВ(х, щ Z) + Kdv-A2{x, u)\\ + K2\\A3(x, иЦ, при упрощенных связях А± (х1У v, и) = 0 (или вычислять х2 (и) решением вспомогательной задачи (х2 (и), v) = arg [А2 {хг {и), х2, и) = v, A3 (хг (и\ х2, и) = 0]). Библиографические указания. При написании параграфа использованы результаты работ [22—26], [39—41], [135]. 16 3-341
СПИСОК ЛИТЕРАТУРЫ 1. Абрамов А. #., Иванилов /О. П. Алгоритм решения задачи линейного программирования методом нагруженного функционала.— Журн. вычисл. математики и мат. физики, 1977, № 1, т. 17, с. 259—262. 2. Айда-Заде К- Р., Махмуд-Заде Р. #., Новрузбеков Я. Г. Метод полярных координат минимизации функций овражной структуры.— В кн.: Численные методы нелинейного программирования: Тез. II Всесоюз. семинара. Харьков, 28 мая — 3 июня 1976 г. Харьков : Вища школа. Изд-во при Харьк. ун-те, 1976, с. 30—32. 3. Айзерман М. А., Браверман Э. М., Розоноэр «//. И. Метод потенциальных функций в теории обучения машин.— М. : Наука, 1970.— 384 с. 4. Алгоритмы и программы случайного поиска / Под ред. Л. А. Растригина.— Рига: Зинатне, 1969.— 374 с. 5. Амвросиенко В. В. Ускорение сходимости метода Брауна решения матричных игр.— Экономика и мат. методы, 1965, т. 1, № 4, с. 570—575. 6. Антонов Г. Е., Катковник В. #. Метод синтеза одного класса алгоритмов случайного поиска.— Автоматика и телемеханика, 1971, №6, с. 154— 157. 7. Антипин Л. С. О методе выпуклого программирования, использующем симметрическую модификацию функции Лагранжа.— Экономика и мат. методы, 1976, т. 12, № 6, с. 1164—1173. 8. Арбузова Н, И., Вересков А/И., Николаева Н, Д. Некоторые задачи стохастического программирования (обзор).— Экономика и мат. методы, 1969, т. 5, Ня 3, с. 412—430. 9. Афанасьев А. Ю. О поиске минимума функции с ограниченной второй производной.— Журн. вычисл. математики и мат. физики, 1974, т. 14, № 4, с. 1018—1021. 10. Афанасьев А. Ю., Новиков В. А. О поиске минимума функции g ограниченной третьей производной.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 4, с. 1031—1034. 11. Ахметов П. А., Малков У. X, Повышение эффективности мультипликативного алгоритма симплекс-метода при решении больших задач линейного программирования на ЭВМ.— Экономика и мат. методы, 1970, т. 6, вып. 3, с. 422— 426. 12. Бабич М. Д., Иванов В. В. Исследование полной погрешности в задачах минимизации функционалов при наличии ограничений.— Укр. мат. журн., 1969, т. 21, № 1, с. 3—14. 13. Баженов Л. Г. Об условиях сходимости метода минимизации почти дифференцируемых функций.— Кибернетика, 1972, № 4, с. 71—72. 14. Баженов Л. Г., Гупал А. М. Об одном стохастическом аналоге метода возможных направлений.— Кибернетика, 1973, № 4, с. 94—95. 15. Баничук Н. В,, Петров В. М., Черноусько Ф. JI. Численное решение вариационных и краевых задач методом локальных вариаций.— Журн. вычисл. математики и мат. физики, 1966, т. 6, № 6, с. 947—961. 16. Бартиш М. Я- Возмущенные аналоги методов типа Ньютона — Канторовича. Матем. сб.— Киев : Наук, думка, 1976, е. 59—62. 17. Батищев Д. И. Поисковые методы оптимального проектирования.— М. I Сов. радио, 1975.— 216 с. 482
18. БатищевД. И., Бедная Р. Я., Стронгин Р. Г. О выборе параметров алгоритмов поисковой оптимизации.— Автоматика и вычисл. техника, 1972, № 4, с. 56—60. 19. Бахвалов Я. С. О свойствах оптимальных методов решения задач математической физики.— Журн. вычисл. математики и мат. физики, 1970, т. 10, № 3, с. 555—568. 20. Бахтин А. Е. Блочный способ решения задач линейного программирования.— В кн. : Математические методы решения экономических задач. Новосибирск: Наука, 1971, с. 63—78. 21. Бахтин А. Е., Волков Ю. Я. Метод последовательного улучшения плана для решения одного класса задач линейного программирования.— Экономика и мат. методы, 1967, т. 3, вып. 4, с. 581—587. 22. Бейко Я. В. Применение развязывающих операторов для решения задачи Ко- ши и построения экстремальных алгоритмов развязывающей декомпозиции. Вычислит, и прикл. математика, 1981, вып. 45, с. ПО—118. 23. Бейко И. В. Экстремальные модели для численного исследования оптимальных процессов в задачах теплопроводности при наличии погрешностей в исходной информации.— В кн.: Аналитические, численные и аналоговые методы в задачах теплопроводности. Киез : Наук, думка, 1977, с. 220— 233. 24. Бейко Я. В. Численный анализ графооператорных уравнений методом развязывающих операторов и s-экстремальных моделей.— В кн.: Вычислительная математика в современном научно-техническом прогрессе. Киев : Вища школа. Изд-во при Киев, ун-те, 1978, с. 124—125. 25. Бейко И. В. Экстремальные модели сложных систем и метод декомпозиции в вычислительном эксперименте.— Вестн. Киев, ун-та. Моделирование и оптимизация систем, 1982, вып. 1, с. 72—81. 26. Бейко Я. В., Бейко М. Ф. Новый подход к математическому моделированию и исследованию сложных процессов.— В кн.: Задачи гидроаэромеханики. Киев : Изд. Ин-та математики АН УССР, 1973, с. 229—236. 27. Бейко И. В., Бейко М. Ф. К численному построению оптимальных управлений.— В кн.: Нестационарные процессы. Киев: Изд. Ин-та математики АН УССР, 1977, с. 174—190. 28. Бейко И. В., Бейко М. Ф. Численные методы решения задач оптимального управления.— Киев : Знание, 1963.— 141 с. 29. Бейко Я. В., Зинько П. Я. Некоторые вероятностные оценки для алгоритмов стохастического программирования с постоянным шаговым множителем.— Кибернетика, 1978, № 2, с. 91—95. 30. Бейко Я. В., Зинько /7. Я. Применение метода стохастического градиента к решению некоторых минимаксных задач управления.— В кн.: Научная конференция «Вычислительная математика в современном научно-техническом прогрессе». Канев, 1974, вып. 1, с. 12—18. 31. Бейко Я. В., Зинько Я. Я. Применение метода стохастических градиентов к решению стохастических задач уклонения.— В кн.: Моделирование и оптимизация систем управления. Киев : Вища школа. Изд-во при Киев, ун-те, 1974, с. 34—42. 32. Бейко И. В., Зинько П. Я. Численные методы решения непрерывной минимаксной задачи стохастического программирования.— В кн.: Численные методы нелинейного программирования: Тез. II Всесоюзного семинара, Харьков, 31 мая — 3 июня, 1976, Харьков: Вища школа. Изд-во при Харьк. ун-те, 1976, с. 69-74. 33. Бейко И. В., Ясинский В. В. Задачи принятия решений в конфликтных ситуациях. Пр. 77—27. Киев : Изд. Ин-та математики АН УССР, 1977.— 48 с. 34. Беленький В. 3., Волконский В. А., Иванков С. А., Поманский А. Б., Шапиро А. Д. Итеративные методы в теории игр и программировании.— М. : Наука, 1974.—240 с. 35. Белов Е. Я. Алгоритм решения задач квадратичного и линейного программирования методом сопряженных градиентов с использованием модифицированных функций Лагранжа (Алгол).— Программы и алгоритмы, 1974, вып. 57, с. 10—13. 16* 483
36. Бирзак Б., Пшеничный Б. Я. О некоторых задачах минимизации недифферен- цируемых функций.— Кибернетика, 1966, № 6, с. 53—57. 37. Богомолов И. А., Карманов В. Г. О методе вычисления стационарных точек общей задачи нелинейного программирования.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 1, с. 72—78. 38. Бублик Б. Я. Численные решения динамических задач теории пластин и оболочек.— Киев : Наук, думка, 1976.— 376 с. 39. Бублик Б. Н., Бейко И. В., Зинько Я. Я., Харченко А. С. Об адаптивном управлении системами переменной структуры при наличии возмущений.— В кн.: Всесоюз. конф. по оптимальному управлению в механических системах. Казань, 1978, с. 5—7. 40. Бублик Б. Н., Кириченко Н. Ф. О разностном подходе к решению задач управления систем с распределенными параметрами.— Численные методы механики сплошной среды, 1977, т. 8, № 3, с. 9—11. 41. Бублик Б. Н., Кириченко Я. Ф., Наконечный А. Г. Минимаксные оценки и регуляторы в динамических системах.— Пр. ИК АН УССР, Киев, 1978.— 48 с. 42. Бублик Б. Н., Кириченко Я. Ф., Наконечный А. Г. Регуляторы и минимаксные фильтры для систем с распределенными параметрами.— Пр. ИК АН УССР, Киев, 1978.— 40 с. 43. Булавский В. А. О разложении квадратичной матрицы в произведение ортогональной и треугольной.— Сибир. мат. журн., 1969, т. 10, № 2, с. 467—469 4 [. Булавский В. А. Итеративный метод решения общей задачи линейного программирования.— В кн.: Численные методы оптимального планирования. Новосибирск: Изд-во АН СССР, 1962, вып. 1, с. 35—64. 45. Булавский В. А., Звягина Р. А., Яковлева М. А. Численные методы линейного программирования / Под ред. Канторовича Л. В.— М. : Наука, 1977.—358 с. 46. Булатоз В. Я. Методы аппроксимации при решении некоторых экстремальных задач: Автореф. дис. ... канд. физ.-мат. наук.— Томск, 1967— 16 с. 47. Бусленко Н. П., Шрейдер Ю. А. Метод статистических исп ытаний (Монте- Карло) и его реализация.— М. : Физматгиз, 1961.— 226 с. 48. Васильев Л. В., Митчел Б. Ф. Один конечный метод нахождения направления наискорейшего спуска.— Оптимизация, 1973, вып. 10, с. 59—72. 49 Васильев Ф. Я. Лекции пб методам решения экстремальных задач.— М. : Изд-во МГУ, 1974.—374 с. 60. Ватель И. А., Еремко Ф. Я. Математика конфликта и сотрудничества.— М. : Знание, 1973.— 64 с. 51. Ъенец В. Я. Седловая точка функции Лагранжа и негладкие штрафные функции в выпуклом программировании.— Автоматика и телемеханика, 1974, № 8, с. 109—118. 52. Верина Л. Ф., Танаева В. С. Декомпозиционные подходы к решению задач математического программирования (обзор).— Экономика и мат. методы, 1975, т. И, вып. 6, с. 1160—1172. 53. Верченко Я. Я. Об одном непоисковом алгоритме адаптивного управления.— Кибернетика, 1976, № 1, с. 136—139. 54. Волкович В. Л., Волошин А. Ф. Об одной схеме метода последовательного анализа и отсеивания вариантов.— Кибернетика, 1978, № 4, с. 98—105. 55. Волконский В. А. Оптимальное планирование в условиях большой размерности (итеративные методы и принцип декомпозиции).— Экономика и мат. методы, 1965, т. 1, вып. 2, с. 195—220. 56. Волынский Э. Я. Ослабленная задача нелинейного программирования и метод штрафных оценок.— Кибернетика, 1977, № 5, с. 103—107. 57. Волынский Э. И., Почтман Ю. М. Об одном алгоритме случайного поиска для решения многоэкстремальных задач.— Изв. АН СССР. Техн. кибернетика, 1974, № 1, с. 55—60. 58. Вопросы теории и элементы программного обеспечения минимаксных задач / Под ред. В. Ф. Демьянова, В. Н. Малоземова.— Л. : Изд-во ЛГУ, 1977.— 192 с. 59. Габасов Р., Кириллова Ф. М. Методы линейного программирования. Общие задачи.—Минск : Изд-во Белорус, ун-та, 1977,— 175 с. 484
60. Габасов Р., Кириллова Ф. М. Методы оптимизации.— Минск : Изд-во Белорус, ун-та, 1975.— 279 с. 61. Гантмахер Ф. Р. Теория матриц.—М. : Гостехиздат, 1953.—492 с. 62. Ганшин Г. С. Расширение области* сходимости метода Ньютона.— Журн. вычисл. математики и мат. физики, 1971, т. 11, № 5, с. 1294—1296. 63. Ганшин Г. С. Вычисление наибольшего значения функций.— Журн. вычисл. математики и мат. физики, 1976, т. 16, № 1, с. 30—39. 64. Гасс С. Линейное программирование.— М. : Физматгиз, 1961.— 304 с. 65. Гасс С. Первое допустимое решение в задачах линейного программирования.— В кн.: Методы решения общей задачи линейного программирования. М. : Гос- статиздат, 1963, с. 47—54. 66. Гермейер Ю. Б. Необходимые условия максимина.— Журн. вычисл. математики и мат. физики, 1969, т. 9, № 2, с. 432—438. 67. Гермейер Ю. Б. Приближенное сведение с помощью штрафных функций задачи определения максимина к задаче определения максимума.— Журн. вычисл. математика и мат. физики, 1969, т. 9, № 3, с. 730—731. 68. Гермейер Ю. ?. К задаче отыскания максимина с ограничениями.— Журн. вычисл. математики и мат. физики, 1970, т. 10, № 1, с. 39—54. 69. Гермейер Ю. Б. Введение в теорию исследования операций.— М. : Наука, 1971.— 384 с. 70. Гермейер Ю. Б. Игры с непротивоположными интересами.— М. : Наука, 1976.—328 с. 71. Гермейер Ю. Б., Ерешко Ф. И. Побочные платежи в играх с фиксированной последовательностью ходов.— Журн. вычисл. математики и мат. физики, Л974, т. 14, № 6, с. 1437—1450. 72. Гермейер Ю. Б., Крылов И. А. Поиск максиминов методом «невязок».— Журн. вычисл. математики и мат. физики, 1972, т. 12, № 4, с. 871—881. 73. Гирсанов И. В. Лекции по математической теории экстремальных задач.— М. : Изд-во МГУ, 1970.— 118 с. 74. Глушков Б. М. О диалоговом методе решения оптимизационных задач.— Кибернетика, 1975, № 4, с. 2—6. 75. Глушков В. М. Некоторые задачи создания и развития методов и средств кибернетики и вычислительной техники, стоящие перед молодыми учеными института кибернетики АН УССР.— Кибернетика, 1978, № 5, с. 3—5. 76. Глушков В. М., Кудринский В. Ю., Охрименко М. Г. Об одной модели планирования на макроуровне с оптимизацией транспортных затрат.— Докл. АН СССР, 1976, т. 231, № 3, с. 355—358. 77. Голиков А. И., Евтушенко Ю. Г. Об одном классе методов решения задач нелинейного программирования.— Докл. АН СССР, 1978, т. 239, № 3, с. 519—522. 78. Гольштейн Е. Г. Об одном видоизменении метода последовательного улучшения плана.— Экономика и мат. методы, 1965, т. 1, вып. 1, с. 83—85. 79. Гольштейн Е. Г. Методы блочного программирования.— Экономика и мат. методы, 1966, т. 2, вып. 1, с. 82—114. 80. Гольштейн Е. Г. Выпуклое программирование. Элементы теории.— М. : Наука, 1970.—68 с. 81. Гольштейн Е. Г, Теория двойственности в математическом программировании и ее приложения.— М. : Наука, 1971.— 352 с. 82. Гольштейн Е. Г, Обобщенный градиентный метод отыскания седловых точек.— Экономика и мат. методы, 1972, т. 8, вып. 4, с. 569—580. 83. Гольштейн Е. Г. О сходимости градиентного метода отыскания седловых точек модифицированных функций Лагранжа.— Экономика и мат. методы, 1977, т. 13, вып. 2, с. 322—329. 84. Гольштейн Е. Г., Буй Тхе Там. Об одном итерационном методе выпуклого программирования, использующем модифицированные функции Лагранжа.— Экономика и мат. методы, 1977, т. 13, вып. 6, с. 1271—1278. 85. Гольштейн Е. Г., Мовшович С. М. Современные направления в математическом программировании.— Экономика и мат. методы, 1967, т. 3, вып. 5, с. 766—778. 485
86. Голыитейн Е. Г., Третьяков Н. В. Модифицированные функции Лагранжа.— Экономика и мат. методы, 1974, т. 10, вып. 3, с. 568—591. 87. Голыитейн Е. Г., Третьяков Н. В. Градиентный метод минимизации и алгоритмы выпуклого программирования, связанные с модифицированными функциями Лагранжа.— Экономика и мат. методы, 1975, т. 11, вып. 4, с. 730—742. 88. Голыитейн Е. Г., Юдин Д. Б. Новые направления в линейном программировании.— М. : Сов. радио, 1966.— 524 с. 89. Горский А. А. Модифицированные методы штрафных функций для решения задач выпуклого программирования.— Изв. АН СССР. Техн. кибернетика, 1971, № 6, с. 25—29. 90. Грачев Н. #., Евтушенко Ю. Г. Библиотека программ для решения задач оптимального управления.— Журн. вычисл. математики и мат. физики, 1979, т. 19, № 2, с. 367—387. 91. Г упал А. М. Метод оптимизации в нестационарных условиях.— Кибернети-, ка, 1974, № 3, с. 131—133. 92. Г упал А. М. Прямой метод решения задач стохастического программирования.— Автоматика и телемеханика, 1977, № 4, с. 61—65. 93. Гупал А. М. Об одном методе минимизации почти дифферзнцируемых функций.—Кибернетика, 1977, № 1, с. 114—116. 94. Гупал А. М. Об одной задаче стохастического программирования с ограничениями вероятностной природы.— Кибернетика, 1974, № 6, с. 94—100. 95. Гупал А. М. Об аналоге метода возможных направлений в задачах минимизации недифференцируемых функций.— Кибернетика, 1978, № 2t с. 62—64. 96. Гупал Л. М. Методы минимизации функций, удовлетворяющих условию Липшица, с усреднением направлений спуска.— Кибернетика, 1978, № 5, с. 49—51. 97. Гупал А, М. Стохастические методы решения негладких экстремальных задач.— Киев : Наук, думка, 1979.— 152 с. 98. Гупал A. М., Баженов Л. Г. Стохастический аналог метода сопряженных градиентов.— Кибернетика, 1972, № 1, с. 125—126. 99. Гупал А. М., Баженов Л. Г. Стохастический метод линеаризации.— Кибернетика, 1972, № 3, с. Л16—117. 100. Гупал А. М., Голодников Л. Я. О свойствах класса почти дифференцируемых функций.— В кн.: Теория оптимальных решений. Киев : Изд-во Ин-та кибернетики АН УССР, 1976, с. 21—28. J01. Гупал А. М., Голодников А. И. Некоторые методы решения предельных экстремальных задач.— В кн.: Методы исследования операций и теории надежности в анализе систем. Киев : 1976, с. 66—74. 102. Гупал А. М., Мирзоахмедов Ф. Об одном способе регулировки шага в методах сгохастического программирования.— Кибернетика, 1978, № 1, с. 133— 134. 103 Гупал А. М., Норкин В. И. Алгоритм минимизации разрывных функций.— Кибернегика, 1977, № 2, с. 73—75. 104. ГуринЛ. С, ЛобачВ. Я. Комбинация метода Монте-Карло с методом скорейшего спуска при решении некоторых экстремальных задач.— Журн. вычисл. математики и мат. физики, 1962, т. 2, № 3, с. 499—502. 105. Данилин Ю. М. Об одном подходе к задачам минимизации.— Докл. АН СССР, 1969, т. 188, № 6, с. 1221—1222. 106. Данилин Ю. М. Методы минимизации, основанные на аппроксимации исходного функционала выпуклым.— Журн. вычисл. математики и мат. физики, 1970, т. 10, № 5, с. 1067—1080. 107. Данилин Ю. М. Оценка эффективности одного алгоритма отыскания абсолютного минимума.—Журн. вычисл. математики и мат. физики, 1971, т. 11, № 4, с. 1026—1031. 108. Данилин Ю. М. Методы сопряженных направлений для решения задач минимизации.— Кибернетика, 1971, № 5, с. 122—136. 109. Данилин Ю. М. Скорость сходимости методов сопряженных направлений.— Кибернетика, 1977, № 6, с. 97—105. ПО. Данилин Ю. М., Панин В. М. Методы сопряженных направлений без вычис- 486
ления производных.— В кн.: Численные методы нелинейного программирования. Киев : Наук, думка, 1976, с. 104—107. 111. Данилин Ю. М., Пшеничный Б. Н. О методах минимизации с ускоренной сходимостью.— Журн. вычисл. математики и мат. физики, 1970, т. 10, № б, с. 1341—1354. 112. Данилин Ю. М., Пшеничный Б. Н. Метод минимизации без вычислений производных.— Журн. вычисл. математики и мат. физики, 1971, т. 11, № 1, с. 12—21. 113. Данскин Дж. М. Теория максимина и ее приложения к задачам распределения вооружения.— М. : Сов. радио, 1970.— 200 с. 114. Данциг Дж. Линейное программирование, его обобщения и применения.— М. : Прогресс, 1966.— 600 с. 115. Данциг Дж., Вольф Ф. Алгоритм разложения для задач линейного программирования.—Математика, 1964, т. 8, № 1, с. 151—160. 116. Данциг Дж., Форд Л., Фулдерсон Д. Алгоритм для одновременного решения прямой и двойственной задач линейного программирования.— В кн.: Линейные неравенства и смежные вопросы / Под ред. Г. Куна и А. Таккера. 1959, М. : Изд-во иностр. лит. с. 277—286. 117. Демьянов В. Ф. К решению некоторых минимаксных задач, I.— Кибернетика, 1966, № 6, с. 58—66. 118. Демьянов В. Ф. К решению некоторых минимаксных задач, II.— Кибернетика, 1967, № 3, с. 62—66. 119. Демьянов В. Ф. Дифференцирование функций максимина, I.—Журн. вычисл. математики и мат. физики, 1968, т. 8, № 6, с. 1186—1195. 120. Демьянов В. Ф. К задаче о минимаксе.— Докл. АН СССР, 1969, т. 187, № 2, с. 255—258. 121 ДемьяновВ. Ф. К отысканию минимакса на ограниченном множестве.— Докл. АН СССР, 1970, т. 191, № 6, с. 1216—1219. 122. Демьянов В. Ф. Дифференцирование функции максимина, II.— Журн. вычисл. математики и мат. физики, 1970, т. 10, № 1, с. 26—38. 123. Демьянов В. Ф. Ускорение сходимости при решении минимаксных задач.— Журн. вычисл. математики и мат. физики, 1972, т. 12, № 1, с. 51—60. 124. Демьянов В. Ф. К методу экстремального базиса.— Докл. АН СССР, 1976, т. 229, № 2, с. 272—275. 125. Демьянов В. Ф. Метод экстремального базиса в минимаксных задачах.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 2, с. 512— 517. 126. Демьянов В. Ф., Васильев Л. В. Недифференцируемая оптимизация.— М. : Наука, 1981, 384 с. 127. ДемьяновВ. Ф., Малоземов В. Н. Введение в минимакс.— М. : Наука, 1972.— 368 с. 128. Демьянов В. Ф., Малоземов В. И. К теории нелинейных задач.— Успехи мат. наук, 1971, т. 26, № 3, с. 53—104. 129. Демьянов В. Ф., Полякова Л. #., Рубинов А. М. Об одном обобщении понятия субдифференциала.—В кн.: Тезисы Всесоюзной конференции по динамическому управлению.— Свердловск, 1979, G. 79—84. 130. Демьянов В. Ф., Рубинов А. М. Приближенные методы решения экстремальных задач.— Л. : Изд-во ЛГУ, 1968.— 180 с. 131. Денисов Д. В. Метод покоординатного спуска в задачах условной оптимизации.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 4, G. Ю34—1036. 132. Денисов Д. В. О методе случайного поиска в задачах условной минимизации.— Журн. вычисл. математики и мат. физики, 1978, т. 18, № 5, с. 1103-1111. 133. Дубовицкий А. #., Милютин А. А. Задачи на экстремум при наличии ограничений,— Журн. вычисл. математики и мат. физики, 1965, т. 5, № 3, с. 395—453. 134. Евтушенко /О. /\ Численный метод отыскания наилучших гарантирующих оценок.—Журн. вычисл. математики и мат. физики, 1972, т. 12, № 1, с. 89—104. 487
135. Евтушенко Ю. Г. Методы решения экстремальных задач и их применение в системах1 оптимизации.— М.; Наука, 1982.—432 с. 136. Евтушенко Ю. Г. Численные методы решения задач нелинейного программирования.— Журн. вычисл. математики и мат. физики, 1976, т. 16, №2, с. 307—324. 137. Евтушенко Ю. Г. Численный метод поиска глобального экстремума (перебор на неравномерной сетке).— Журн. вычисл. математики и мат. физики, 1971, т. 11, № 6, с. 1390—1403. 138. Евтушенко Ю. Г., Жадан В. Г. Применение метода функций Ляпунова для исследования сходимости численных методов.— Журн. вычисл. математики и мат. физики, 1975, т. 15, № 1, с. 101—112. 139. Евтушенко Ю. Г., Жадан В. Г. Релаксационный метод решения задач нелинейного программирования.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 4, с. 890-904. 140. Еремин И. И. О некоторых итерационных методах в выпуклом программировании.— Экономика и мат. методы, 1966, т. 2, № 6, с. 870—886. 141. Еремин И. И. О методе штрафов в выпуклом программировании.— Кибернетика, 1967, № 4, с. 63—67. 142. Еремин И. И. Методы фейеровских приближений в выпуклом программировании.—Мат. заметки, 1968, т. 3, № 2, с. 217—234. 143. Еремин И. Я. Применение метода фейеровских приближений к решению задач выпуклого программирования с негладкими ограничениями.— Журн. вычисл. математики и мат. физики, 1969, т. 9, № 5, с. 1153—1160. 144. Еремин Я. Я. Фейеровские отображения и задача выпуклого программирования.—Сиб. мат. журн., 1969, т. 10, № 5, 6. 1034—1047. 145. Еремин И. Я. Дискретные процессы фейеровского типа для негладких задач выпуклого программирования.— Алгебра и логика, 1976, т. 15, № 6, с. 628—641. 146. Еремин И. #., Астафьев Н. Н. Введение в теорию линейного и выпуклого программирования.— М. : Наука, 1976.— 192 с. 147. Ермаков С. М. Метод Монте-Карло и смежные вопросы.— М. : Наука, 1971.—327 с. 148. Ермольев Ю. М. Методы решения нелинейных экстремальных задач.— Кибернетика, 1966, № 4, с. 1—17. 149. Ермольев /О. М. О методе обобщенных стохастических градиентов и стохастических квазифейеровских последовательностях.— Кибернетика, 1969, "* № 2, с. 73—83. 150. Ермольев- Ю. М. О некоторых проблемах стохастического программирования.— Кибернетика, 1970, № 1, с. 1—5. 151. Ермольев Ю. М. Об одной о5щей задаче стохастического, программирования.— Кибернетика, 1971, № 3, с. 47—50. 152. Ермольев Ю. М. Стохастические модели и методы оптимизации.— Кибернетика, 1975, Кя 4, с. 109-119. 153. Ермольев Ю. М. Методы стохастического программирования.— М. : Наука, 1976.— 240 с. 154. Ермольев Ю. М., Верченко П. И. О методе линеаризации в предельных экстремальных задачах.— Кибернетика, 1976, № 2, с. 65—69. 155. Ермольев Ю. М., Гупал А. М. Аналог метода линеаризации в задачах минимизации недифференцируемых функций.— 1978, № 1, с. 65—68. 156. Ермольев Ю. М., Некрылова 3. В. О некоторых методах стохастической оптимизации.— Кибернетика, 1966, № 6, с. 96—98. \ 157. Ермольев Ю. М., Некрылова 3. В. Метод стохастических градиентов и его применение,—В кн.: Теория оптимальных решений. Киев : Изд. ИК АН УССР, 1967, № 1, с. 24—47. 158. Ермольев Ю. М., Нурминский Е. А. Экстремальные задачи статистики и численные методы стохастического программирования.— В кн.: Некоторые вопросы моделирования и управления систем. Киев : Наук, думка, 1973, с. 41—55. 159. Ермольев Ю. M.f Нурминский Е, Л. Предельные экстремальные задачи.— Кибернетика, 1973, № 4, с. 130—132. 488
160. Ермольев Ю. М., Шор Я. 3. О Минимизации недифференцируемых функций.— Кибернетика, 1967, № 1, с. 101—102. 161. Жданов В. А. Об одном методе покоординатного спуска.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 5, с. 1183—1188. 162. Жилинскас А. Г, Одношаговый байесовский алгоритм минимизации одномерных функций в присутствии помех.— В кн.: Теория оптимальных решений. Вильнюс: Изд. АН Лит. ССР, 1975, № 1, с. 9—22. 163. Жилинскас А. Г. Метод одномерной многоэкстремальной минимизации.— Изв. АН СССР. Техн. кибернетика, 1976, № 4, с. 71—74. 164. Завриев С. К» Комбинированный метод штрафов и стохастического градиента для поиска максимина.— Журн. вычисл. математики и мат. физики, 1979, т. 19, № 2, с. 329—343. 165. Завриев С. К. Об отыскании стационарных точек в задаче поиска максимина с ограничениями.— Вестник МГУ, Сер. «Вычисл. математика и кибернетика», 1980, № 2, с. 48—57. 166. Зак Ю. А. Принцип разложения и итеративные методы решения задач линейного программирования большого размера.— Автоматика и телемеханика, 1971, № 12, с. 143—150. 167. Зангвил У. И. Нелинейное программирование. Единый подход.— М. : Сов. радио, 1973.-312 с. 168. Звягина Р. А. Задачи линейного программирования с блочно-диагональны- ми матрицами.— В кн.: Оптимальное планирование. Новосибирск, 1964, вып. 2, с. 50—61. 169. Звягина Р. А. Задачи линейного программирования с матрицами произвольной блочной структуры. Докл. АН СССР, 1971, т. 196, № 4, с. 755— 758. 170. Звягина Р. А. Об общем методе решения задач линейного программирования блочной структуры.— В кн.: Оптимизация. Новосибирск, 1971, № 1 A8), с. 22—40. 171. Зинько П. Н. О некоторых методах отыскания экстремальных траекторий систем дифференциальных уравнений: Автореф. дис. ... канд. физ.-мат. наук.— Киев, 1975.— 14 с. 172. Зойтендейк Г. Методы возможных направлений.— М.: Изд-во иностр. лит., 1963.— 175 с. 173. Зуховицкий С. И., Авдеева JI. И. Линейное и выпуклее программирование.-— М. : Наука, 1967.— 460 с. 174. Зуховицкий С. И., Поляк Р. А., Примак М. Е. Алгоритм для решения задач- выпуклого чебышевского приближения.— Докл. АН СССР, 1963, т. 151, № 1, с. 27—30. 175. Зуховицкий С. И., Поляк Р. А., Примак М. Е. Алгоритм для решения задачи выпуклого программирования.— Докл. АН СССР, 196?, т. 153, № 5, с. 991—994. 176. Интрилигатор М. Математические методы оптимизации и экономическая теория.— М. : Прогресс, 1975.— 608 с. 177. Иванов В. В. Вопросы точности и зффективнести вычислительных алгоритмов.— Киев : Изд. ИК АН УССР, 1969.— 135 с. 178. Иванов В. В. Об оптимальных алгоритмах миыимизации функций некоторых классов.— Кибернетика, 1972, № 4, с. 81—94. 179. Иванов В. В., Людвиченко В. А. Об одном методе последовательной безусловной минимизации решения задач математического программирования.— Кибернетика, 1977, № 2, с. 1—8. 180. Иванов В. В., Трутень В. Е. К методу штрафных функций.— Кибернетика, 1968, № 2, с. 34—39. 181. Ильин В. А. О работах А. Н. Тихонова по методам решения некорректно поставленных задач.— Успехи мат. наук, 1967, т. 22, вып. 2, с. 168—175. 182. Иослович И. В., Макаренков Ю. М. О методах сокращения размерности задач линейного программирования.— Экономика и мат. методы, 1975, т. 11, вып. 3, с. 516—524. 183. Иоффе А. Д., Тихомиров В. М. Теория экстремальных задач.— М. : Наука, 1974.-479 с. 489
184. Истомин Л. А. Модификация метода Хоанг Туя минимизации вогнутой функции на многограннике.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 6, с. 1592—1597. 185. Канторович Л. В. О методе наискорейшего спуска.— Докл. АН СССР, 1947, т. 56, № 3, с. 233—236. 186. Канторович Л. В. О методе Ньютона.— Тр. Ин-та математики АН СССР, 1949, т. 28, с. 104—144. 187. Канторович Л. В. Экономический расчет наилучшего использования ресурсов.— М. : Изд-во АН СССР, 1959.— 344 с. 188. Каплинский А. И., Пропой А. И. О стохастическом подходе к задачам нелинейного программирования.— Автоматика и телемеханика, 1970, № 3, с. 122—133. 189. Каплинский А. И., Позняк А. С, Пропой А. И. Условия оптимальности для некоторых задач стохастического программирования.— Автоматика и телемеханика, 1971, № 8, с. 51—60. 190. Карабегов В, И. Об одной параметрической задаче линейного программирования.— Журн. вычисл. математики и мат. физики, 1963, т. 3, № 3, с. 547— 558. 191. Карлин С. Математические методы в теории игр, программировании и экономике.—М. : Мир, 1964.—840 с. 1(92. Карманов В. Г. Оценки сходимости итерационных методов минимизации.— Журн. вычисл. математики и мат. физики, 1974, т. 14, № 1, с. 3—14. 193. Карманов В, Г. Сходимость метода случайного поиска в задачах выпуклой минимизации.— Теория вероятности и ее применения, 1974, т. 19, № 4, с. 817—824. 194. Карманов В. Г. Математическое программирование.— М. : Наука, 1975.— 272 с. 195. Катковник В. Я- Метод операторов усреднения в итерационных алгоритмах решения стохастических экстремальных задач.— Кибернетика, 1972, № 4, с. 123—131. 196. Катковник В. Я- Линейные оценки и стохастические задачи оптимизации (метод параметрических операторов усреднения).— М. : Наука, 1976.— 488 с. 197. Катковник В. Я., Кульчицкий О. Ю. Сходимость одного алгоритма случайного поиска.— Автоматика и телемеханика, 1972, № 8, с. 81—87. 198. Келли Генри Дж. Метод градиентов.— В кн.: Методы оптимизации / Под ред. Дж. Лейтмана.—М. : Наука, 1965, с. 244—306. 199. Ким К- В. Об использовании специфики условий задачи в методе улучшения плана.— Экономика и мат. методы, 1965, т. 1, вып. 1, с. 86—93. 200. Коллатц Л. Функциональный анализ и вычислительная математика.— М. : Мир, 1969.—447 с. 201. Кононенко А. Ф. О многошаговых конфликтах с обменом информации.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 4, с. 922—931. 202. Коротченко А. Г. Об одном алгоритме поиска наибольшего значения одномерных функций.— Журн. вычисл. математики и мат. физики, 1978, т. 18, № 3, с. 563—573. 203. Красовский Н. П., Субботин А. И. Позиционные дифференциальные игры.— М. : Наука, 1974.— 456 с. 204. Кругер А. Я- Обобщенные производные по направлениям и необходимые условия экстремума в невыпуклых задачах математического программирования.— В кн.: Тез. докл. IV Всесоюз. конф. по пробл. теорет. кибернетики. Новосибирск, 1977, с. 60—62. 205. Кудин И. Б. О решении общей задачи линейного программирования.— Экономика и мат. методы, 1975, т. 11, № 4, с. 794—795. 206. Кукушкин П. С. Об одной игре с неполной информацией.— Журн. вычисл. математики и мат. физики, т. 13, № 1, 1973, с. 210—216. 207. Кун Г. Венгерский метод решения задачи о назначениях.— В кн.: Методы и алгоритмы решения транспортной задачи. М. : Госстатиздат, 1963, с. 35— 52. 208. Кудринский В. Ю., Трутень В. Е. Решение системы линейных алгебраиче- 490
ских уравнений на ЕС ЭВМ с помощью пакета СПАУ.— Тез. докл. V Все- союз. симпоз.— М. : Изд-во ЦЭМИ АН СССР, 1978, с. 174—175. 209. Курдюмое И. В., Мосолова М. В., Назайкинский В. Е, Вычислительный алгоритм для задачи квадратичного программирования большой размерности.— Журн. вычисл. математики и мат. физики, 1978, т. 18, № 5, с. ШЭ— 1128. 210. Куржанский А. Б. Управление и наблюдение в условиях неопределенности.—М. : Наука, 1977.—392 с. 211. Кутиков Л. М. Декомпозиция блочных задач линейного программирования со слабо связанными блоками.— Экономика и мат. методы, 1973, т. 9, вып. 4, с. 739—743. 212. Кухтенко А. И. Проблемы многомерности в теории сложных систем.— В кн.: Кибернетика и вычислительная техника. Сложные системы управления. Киев : Наук, думка, 1969, вып. 1, с. 6—35. 213. Кушнер Г. Дж. Стохастическая устойчивость и управление.— М. : Мир, 1969.— 200 с. 214. Кюнци Г. #., Крелле В. Нелинейное программирование.— М. : Сов. радио, 1965.—301 с. 215. Лебедев В. Ю. Итерационный алгоритм решения задач линейного програм-' мирования.— Журн. вычисл. математики и мат. физики, 1973, т. 13, № 6, с. 1527—1533. 216. Лебедев В. Ю. Приближенный алгоритм решения задачи линейного программирования.— Журн. вычисл. математики и мат. физики, 1974, т. 14, № 4, с. 1052—1058. 217. Лебедев В. Ю. Схема поиска приближенных решений задачи выпуклого программирования.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 1, с. 249—253. 218. Лебедев В. Ю. О сходимости метода нагруженного функционала в задачах выпуклого программирования.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 3, с. 765—768. 219. Левин А. Ю. Об одном алгоритме минимизации выпуклых функций.— Докл. АН СССР, 1965, т. 160, № 6, с. 1244—1247. 220. Левитин Е. С. Об одном методе минимизации для негладких экстремальных задач.— Журн. вычисл. математики и мат. физики, 1969, т. 9, № 4, с. 783— 807. 221. Левитин Е. С. Об оценках устойчивости по решению в задачах безусловной оптимизации.— Журн. вычисл. математики и мат. физики, 1976, т. 16, № 3, с. 585—596. 222. Левитин Е. С, Поляк Б. Т. Методы минимизации при наличии ограничений.— Журн. вычисл. математики и мат. физики, 1966, т. 6, № 5, с. 787—823. 223. Лемке Дж, Двойственный метод решения задач линейного программирования.— В кн.: Методы решения общей задачи линейного программирования.— М. : Госстатиздат, 1963, с. 55—70. 224. Лепеха Н. П. Об алгоритме случайного поиска в задачах идентификации.— В кн.: Вопросы оптимизации в динамических системах с непрерывно-дискретными параметрами. Киев : Наук, думка, 1980, с. 164—171. 225. Любич Ю. И., Майстровский Г. Д. Общая теория релаксационных процессов для выпуклых функционалов.— Успехи мат. науки, 1970, т. 25, вып. 1, с. 57-112. 226. Ляшенко И. Н., Карагодова Е. А., Черникова Н. В., Шор Н. 3. Линейное и нелинейное программирование.— Киев : Вища школа, 1975.— 372 с. 227. Ляшко И. И., Кудринский В. Ю., Остапчук В. С. О решении плохо обусловленных систем линейных алгебраических уравнений с положительно-определенными матрицами.— Докл. АН СССР, 1979, т. 245, №'3, с. 533—536. 228. Ляшко И. #., Макаров В. Л., Скоробогатько А. А. Методы вычислений.— Киев : Вища школа, 1977.— 408 с. 229. Майстровский Г. Д. Доказательство квадратичной сходимости метода сопряженных градиентов.— В кн.: Вычисл. математика и вычисл. техника. Харьков : Изд. ФТИНТ АН СССР, 1971, вып. 2, с. 3—6. 491
230. Майстровский Г. Д. О сходимости метода сопряженных градиентов.— Журн. вычисл. математики и мат. физики, 1971, т. 11, № 5, с. 1291—1294. 231. Майстровский Г. Д. О градиентных методах отыскания седловых точек.— Экономика и мат. методы, 1976, т. 12, вып. 5, с. 917—929. 232. Майстровский Г. Д. Метод сопряженных градиентов в задаче условной минимизации.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 2, с. 408—501. 233. Майстровский Г. Д. Градиентный метод для модифицированной функции Лагранжа.— Журн. вычисл. математики и мат. физики, 1979, т. 19, № 1, с. 56—69. 234. Майстровский Г. Д. Локально квадратично-сходящийся метод условной минимизации, использующий модифицированный лагранжиан.— Журн. вычисл. математики и мат. физики, 1980, т. 20, № 1, с. 27—37. 235. Майстровский Г. Д., Ольховский Ю. /\ К теории условной минимизации.— Докл. АН СССР, 1973, т. 212, № 4, с. 818—821. 236. Майстровский Г. Д., Ольховский Ю. Г. О скорости сходимости метода наискорейшего спуска в задаче условной минимизации.— Журн. вычисл. математики и мат. физики, 1975, т. 15, № 4, с. 844—859. 237. Малинников В. В. Метод разложения в решении больших задач линейного программирования с блочной структурой.— Экономика и мат. методы, 1971, т. 7, вып. 5, с. 733—736. 238. Малоземов В. Н. О сходимости сеточного метода в задаче наилучшей полиномиальной аппроксимации.— Вестник ЛГУ, 1970, № 19, с. 138—140. 239. Малоземов В. Н. О сходимости сеточного метода в нелинейных минимаксных задачах.— Вестник ЛГУ, 1971, № 19, с. 35—37. 240. Малоземов В. Н. О выравнивании максимумов.— Журн. вычисл. математики и мат. физики, 1976, т. 16, № 3, с. 781—784. 241. Манкрес Дж. Алгоритм решения задачи выбора и транспортной задачи.— В кн.: Методы и алгоритмы решения транспортной задачи. М. : Госстатиз- дат, 1963, с. 73-79. 242. Марчук Г. И. Методы вычислительной математики.— Новосибирск : Наука, 1973,--352 с. 243. Маш В. А. Об одном способе выбора вводимой переменной в симплекснсм методе линейного программирования.— Журн. вычисл. математики и мат. физики, 1964, т. 4, № 2, с. 376—379. 344. Мелешко В. И. Рекуррентное статистическое оценивание на основе, псевдообратных операторов.— Автоматика и телемеханика, 1976, № 8, с, ЦI—ПО. 245. Мелешко В. И. Методы псевдообратных операторов определения седловых точек.— В кн.: Численные методы нелинейного программирования. Киев : Наук, думка, 1976, с. 27—32. 246. Мелешко В. И. Об устойчивом рекуррентном псевдообращении вырожденных и плохо обусловленных матриц.— В кн.: Численные методы нелинейного программирования. Киев : Наук, думка, 1976, с. 53—63. 247. Мелешко В. И. Численные методы безусловной оптимизации с использованием псевдообратных операторов.— В кн.: Численные методы нелинейного программирования: Тез. II Всесоюз. семинара, Харьков, 28 мая — 3 июня 1976. Харьков : Вища школа Изд-во при Харьк. ун-те, 1976, с. 14—22. 248. Мелешко В. И. Устойчивое к возмущениям псевдообращение замкнутых one* раторов.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 5, с. 1132—1141. 249. Мелешко В. И. Исследование алгоритмов с восстановлением гессиана по значениям градиентов.— Кибернетика, 1977, № 5, с. 91—99. 250. Мелешко В. И. Ускоренные алгоритмы адаптации в задачах с неопредедед* ностью на основе теории псевдосбратных операторов.— Изв. АН СССР. Техн. кибернетика, 1978, № 2, с. 39—52. 251. Мелешко В. И. Псевдообратные операторы и рекуррентное вычисление псевдорешений в гильбертовых пространствах.— Сибир. мат. журн, 1978, № 1, с. 108—121. 252. Мелешко В. И., Лесина Р. И., Башмакова Т. И. Экспериментальное исследование регуляризованных рекуррентных псевдообращений матриц.— 492
В кн.: Численные методы нелинейного программирования. Киев : Наук, думка, 1976, с. 68—78. 253. Метод статистических испытаний (метод Монте — Карло) / Под ред. Ю. А. Шрейдера.—М. : Физматгиз, 1962.—331 с. 254. Митчелл Б. Ф., Демьянов В. Ф.} Малоземов В. Н. Нахождение ближайшей к началу координат точки многогранника.— Вестн. ЛГУ, 1971, № 13, с. 38—45. 255. Михалевич В. С. Последовательные алгоритмы оптимизации и их применение. Об одной схеме последовательного поиска.— Кибернетика, 1965, № 1, с. 45—46; № 2, с. 85—89. 256. Михалевич В. С., Волкович В. Л. О некоторых математических эвристических особенностях процесса проектирования сложных систем.— Управляющие системы и машины, 1976, № 3, с. 3--9. 257. Михалевич В. С. и др. Вычислительные методы выбора оптимальных проектных решений.— Киев : Наук, думка, 1977.— 178 с. 258. Мовшович С. М. Метод невязок для решения задач блочной структуры.— Экономика и мат. методы, 1966, т. 2, вып. 4, с. 571—577. 259. Моисеев Н. Н. Математические 8адачи системного анализа.— М. : Наука, 1981.—488 с. 260. Моисеев Н. Н. Математика ставит эксперимент.— М. : Наука, 1979.— 224 с. 261. Моисеев Н. Н., Иванилов Ю. П., Столярова Е. М. Методы оптимизации.— М. : Наука, 1978.— 352 с. 262. Моцкус Й. Б. О байесовых методах поиска экстремума.— Автоматика и телемеханика, 1972, № 3, с. 53—62. 263. Невельсон М. Б., Хасьминский Р. 3. Стохастическая аппроксимация и рекуррентное оценивание.— М. : Наука, 1972.— 304 с. 264. Немировский А. С, Юдин Д. Б. Методы оптимизации, адаптивные к «существенной» размерности задачи.— Автоматика и телемеханика, 1977, № 4, с. 75-87. 265. Николаев Е. Г. О скорейшем спуске, основанном на методе случайного Ст-градиента.— Автоматика и вычисл. техника, 1970, № 3, с. 40—46. 266. Новикова Н. М. Стохастический квазитрадиентный метод поиска максими- на.— Жур$Ь вычисл. математики и мат. физики, 1977, т. 17, NH, с. 91—99. 267. Нурминский Е. А. Условия сходимости алгоритмов нелинейного программирования.— Кибернетика, 1972, № 6, с. 79—81. 268. Нурминский Е. А. О свойствах одного класса функций.— В кн.: Теория оптимальных решений. Киев : Изд. ИК АН УССР, 1972, с. 92—96. 269. Нурминский Е. А. Квазиградиентный метод решения задачи нелинейного программирования.— Кибернетика, 1973, № 1, с. 122—125. 270. Нурминский Е. А. Сходимость стохастических аналогов детерминированных процедур нелинейного программирования.— В кн.: Теория .оптимальных решений. Киев : Изд. ИК АН УССР, 1973, с. 60—73. 271. Нурминский Е. А. Условия сходимости алгоритмов стохастического программирования.— Кибернетика, 1973, № 3, с. 84—87. 272. Нурминский Е. А. Численные методы решения детерминированных и стохастических минимаксных задач.— Киев : Наук, думка, 1979.— 161 с. 273. Нурминский Е. А., Верченко П. И. О сходимости алгоритмов поиска седло- вых точек.— Кибернетика, 1977, № 3, с. 112—116. 274. Нурминский Е. А., Желиховский А. А. Исследование одной регулировки шага в квазиградиентном методе минимизации слабо выпуклых функций.— Кибернетика, 1974, № 6, с. 101—105. 275. Нурминский Е. А., Желиховский А. А. е-квазиградиентный метод решения негладких экстремальных задач.— Кибернетика, 1977, № 1, с. 109—113. 276. Обломская Л. Я- Сравнение быстроты сходимости методов сопряженных градиентов и градиентного для квадратичных функционалов.— В кн.: Вопросы точности и эффективности вычислительных алгоритмов, 1968, № 4, с. 94—103. 277. Овруцкий И. Г., Шор Н. 3. Применение методов минимизации негладких функций для решения задач интерпретации гравиметрических наблюдений.— Кибернетика, 1976, № 2, с. 57—64. 493
278. Ортега Дж., Рейнболдт В. Итерационные методы решения нелинейных систем уравнений со многими неизвестными.—М. : Мир, 1975.—560 с. 279. Панин В. М. О методе Ньютона с регулировкой шага для задач дискретного минимакса.— В кн.: Теория оптимальных решений. Киев : Изд. ИК АН УССР, 1977, с. 46—55. 280. Панин В. М. О методе второго порядка для задачи дискретного минимакса.— Журн. вычисл. математики и мат. физики, 1979, т. 19, № 1, с. 88—98. 281. Пиявский С. Л. Алгоритм отыскания абсолютного минимума функций.— В кн.: Теория оптимальных решений. Киев : Изд. ИК АН УССР, 1967, № 2, с. 13—24. 282. Пиявский С. Л. Один алгоритм отыскания абсолютного экстремума функции.— Журн. вычисл. математики и мат. физики, 1972, т. 12, № 4, с. 888—896. 283. Подвальный Л. Д. О сходимости метода сопряженных случайных направлений.—Кибернетика, 1977, № 1, с. 133—137. 284. Подвальный Л. Д., Пугачева Л. Н. Метод сопряженных случайных направлений в задачах овражного типа.— Кибернетика, 1976, № 4, с. 49—51. 285. Полак Э. Численные методы оптимизации. Единый подход.— М. : Мир, 1974,-376 с. 286. Поляк Б, 7\ Градиентные методы минимизации функционалов.— Журн. вычисл. математики и мат. физики, 1963, т. 3, № 4, с. 643—654. 287. Поляк Б. Т. О некоторых способах ускорения сходимости итерационных методов.— Журн. вычисл. математики и мат. физики, 1964, т. 4, № 5, с. 791— 803. 288. Поляк Б. Т. Один общий метод решения экстремальных задач.— Докл. АН СССР, 1967, т. 174, № 1, с. 33—36. 289. Поляк Б. Т. Методы минимизации функций многих переменных.— Экономика и мат. методы, 1967, т. 3, вып. 6, с. 881—908. 290. Поляк Б. Т. Минимизация негладких функционалов.— Журн. вычисл. математики и мат. физики, 1969, т. 9, № 3, с. 509—521. 291. Поляк Б. Т. Метод сопряженных градиентов в задачах на экстремум.— Журн. вычисл. математики и мат. физики, 1969, т. 9, № 4, с. 807—821. 202. Поляк Б. Т. Метод сопряженных градиентов.— В кн.: Тр. II Зимней школы по мат. программированию и смежном вопросам. М. : 1969, вып. 1, с. 152-201. 293. Поляк Ё. Т. Итерационные методы, использующие множители Лагранжа для решения экстремальных задач с ограничениями типа равенств.— Журн. ^ вычисл. математики и мат. физики, 1970, т. 10, № 5, с. 1098—1106. 294. Поляк Б. Т. О скорости сходимости метода штрафных функций.— Журн. вычисл. математики и мат. физики, 1971, т. 11, № 1, с. 3—11. 295. Поляк Б. Т. Сходимость методов возможных направлений в экстремальных задачах.— Журн. вычисл. математики и мат. физики, 1971, т. 11, № 4, с. 855—869. 296. Поляк Б. Т. Сходимость и скорость сходимости итеративных стохастических алгоритмов. I. Общий случай.— Автоматика и телемеханика, 1976, № 12, с. 83—94. 297. Поляк Б. Т. Сходимость и скорость сходимости итеративных стохастических алгоритмов. II. Линейный случай.— Автоматика и телемеханика, 1977, № 4, с. 101—107. 298. Поляк Б. Т. Сравнение скорости сходимости одношаговых и многошаговых алгоритмов оптимизации при наличии помех.— Изв. АН СССР. Техн. кибернетика, 1977, № 1, с. 9—12. 299. Поляк Б. Т. Минимизация сложных функций регрессии.— Кибернетика, 1978, № 4, с. 148—149. 300. Поляк Б. Т. Методы решения задач на условный экстремум при наличии случайных помех.— Журн. вычисл. математики и мат. физики, 1979, т. 19, № 1, с. 70—78. 301. Поляк Б. Т., Третьяков Н. Б. Об одном итерационном методе линейного программирования и его экономической интерпретации.— Экономика и мат. методы, 1972, т. 8, вып. 5, с. 740—751. 302. Поляк Б. Т., Третьяков Н. В. Метод штрафных оценок для вадач на услов- 494
ный экстремум.— Журн. вычисл. математики и мат. физики, 1973, т. 13, № 1, с. 34—46. 803. Поляк Б. Т., Цыпкин Я- 3. Псевдоградиентные алгоритмы адаптации и обучения.— Автоматика и телемеханика, 1973, № 3, с. 45—68. 304. Поляк Р. А. К ускорению сходимости методов выпуклого программирования.— Докл. АН СССР, 1973, т. 212, № 5, с. 1063—1066. 305. Поляк Р. А. Об одном общем принципе ускорения сходимости методов выпуклого программирования.— В кн.: Тр. Зимней школы по мат. программированию и смежных вопросах. М. : Изд-во ЦЭМИ, 1973, с. ИЗ—153. 306. Поляк Р. А. Методы управляющих последовательностей в экстремальных задачах при наличии ограничений.— Журн. вычисл. математики и мат. физики, 1978, т. 18, № 1, с. 17—34. 307. Примак М. Е, Об одном вычислительном процессе отыскания точек равновесия.— Кибернетика, 1973, № 1, с. 91—96. 308. Примак М. Е. О сходимости метода чебышевских центров и метода центрированных сечений для решения задачи выпуклого программирования.— Докл. АН СССР, 1975, т. 222, № 2, с. 273—276. 309. Примак М. Е. О сходимости модифицированного метода чебышевских центров решения задачи выпуклого программирования.— Кибернетика, 1977, № 5, с. 100—102. 310. Пропой Л. Я., Ядыкин Л. Б. Параметрическое квадратичное и линейное программирование. I.— Автоматика и телемеханика, 1978, № 2, с. 102—112. 311. Пропой Л. И., Ядыкин А. Б. Параметрическое квадратичное и линейное программирование. II.— Автоматика и телемеханика, 1978, № 4, с. 135— 143. 312. Пшеничный Б. Н. Выпуклое программирование в нормированном пространстве.— Кибернетика, 1965, № 5, с; 46—54. 313. Пшеничный Б, Н. Об одном алгоритме спуска.— Журн. вычисл. математики и мат. физики, 1968, т. 8, № 3, с. 649—652. 314. Пшеничный Б, Н. Необходимое условие экстремума.— М. : Наука, 1969.— 152 с. 315. Пшеничный Б. Н. Алгоритм для общей задачи математического программирования.— Кибернетика, 1970, № 5, с. 120—125. 316. Пшеничный Б. Я. Метод минимизации функций без вычисления производных.— Кибернетика, 1973, № 4, с. 127—129. 317. Пшеничный Б. Я. Метод минимизации функций без вычисления производных.— Докл. АН СССР, 1977, т. 235, № 5, с. 1026—1029. 318. Пшеничный Б. Н. О необходимых условиях экстремума для негладких функций.— Кибернетика, 1977, № 6, с. 92—96. 319. Пшеничный Б. Н., Ганжела И. Ф. Алгоритм для решения задачи выпуклого программирования при линейных ограничениях.— Кибернетика, 1970, № 3, с. 81—85. 320. Пшеничный Б. Я., Данилин Ю. М. Численные методы в экстремальных задачах.— М. : Наука, 1975.— 320 с. 321. Пшеничный Б. Н., Марченко Д. И. Оь одном подходе к нахождению глобального минимума.— В кн.: Теория оптимальных решений. Киев : Изд. ИК АН УССР, 1967, № 2, с. 3—13. 322. Пшеничный Б. Н., Редкоеский Н. И. Об одном численном методе минимизации без вычисления производных.— Журн. вычисл. математики и мат. физики, 1976, т. 16, с. 1388—1396. 323. Пшеничный Б. Н., Редкоеский Н. Н. О методе минимизации вдоль собственных векторов матрицы, близкой к матрице Гессе.— Кибернетика, 1977, № 5, с. 68—74. 324. Пшеничный Б. Н., Редкоеский Я. Я. Некоторые методы безусловной минимизации.— Журн. вычисл. математики и мат. физики, 1979, т. 19, № 5, с. 1127—1133. 325. Разинкова Т. Л. Об одном алгоритме машинного поиска экстремума функции.— Журн. вычисл. математики и мат. физики, 1965, т . 5, № 4, с. 737—742. 326. Растригин Л. А. Статистические методы поиска.—М. : Наука, 1968.— 376 с. 495
327. Растригин Л. А, Случайный'поиск в процессах адаптации.— Рига : Зинат- не, 1973.— 130 е. 328. Растригин Л. А. Системы экстремального управления.— М. : Наука, 1974.—632 с. 329. Растригин Л. А., Тарасенко Г. С. Об одном адаптивном алгоритме случайного поиска.— В кн.: Проблемы случайного поиска. Рига : Зинатне, 1974, вып. 3, с. 108—112. 330. Рвачев В. Л., Ганжела Н. Ф. Решение нелинейных краевых задач методами математического программирования.— Вестн. Харьков, политехи, ин-та, 1975, № 105, с. 16—20. 331. Редковский Н. Н. Использование методов сопряженных направлений для минимизации без вычисления производных.— В кн.: Теория оптимальных решений. Киев : Изд ИК АН УССР, 1976. 332. Ремез Е. #. Основы численных методов чебышевского приближения.— Киев : Наук, думка, 1969.— 623 с. 333. Робинсон Дж. Итеративный метод решения игр.— В кн.: Матричные игры. М. : Физматгиз, 1961, с. 110—117. 334. Рокаффеллар Р. Выпуклый анализ.— М. : Мир, 1973.— 472 с. 335 Романовский И. В. Алгоритмы решения экстремальных задач.— М. : Наука, 1977.-351 с. 336. Самарский А. А., Николаев Е. С. Методы решения сеточных уравнений.— М. : Наука, 1978.— 290 с. 337. Самойленко Ю. И. Приведение к элементарной ячейке линейных систем с дискретной группой симметрии.— В кн.: Кибернетика и вычисл. техника, 1970, вып. 6, с. 21—35. 338. Сеа Ж. Оптимизация. Теория и алгоритмы.— М. : Мир, 1973.— 244 с. 339. Сергиенко И. В. О применении вектора спада для решения задач оптимизации комбинаторного типа.— Управляющие системы и машины, 1975, № 2, с. 86—94. 340 Скоков В. А. Замечание к методам минимизации, использующим операцию растяжения пространства.— Кибернетика, 1974, № 4, с. 115—117. 341. Случайный поиск (теория и применение). Систематический указатель литературы / Под ред. Л. А. Растригина.— Рига : Зинатне, 1972.— 78 с. 342. Сотсков А. К. Необходимые условия минимума для одного типа негладких задач.—Докл. АН СССР, 1969, т. 189, № 2, с. 261—269. 343. Стронгин Р. Г. Алгоритмы для поиска абсолютного минимума.— В кн.: Задачи статистической оптимизации / Под ред. Растригина Л. А.— Рига : Зинатне, 1971, с. 51—68. 344. Стронгин Р. Г. Рандомизация стратегий в поиске глобального экстремума.— В кн.: Проблемы случайного поиска, Рига : Зинатне, 1973, № 2, с. 19—30. 345. Стронгин Р. Г. О сходимости одного алгоритма поиска глобального экстремума.— Изв. АН СССР. Техн. кибернетика, 1973, № 4, с. 10—16. 346. Стронгин Р. Г. Численные методы в многоэкстремальных задачах (Информационно-статистические алгоритмы).— М. : Наука, 1978.— 240 с. 347. Сыров Ю. Я., Чурквеидзе Ш. С. Вопросы оптимизации межотраслевых и межрайонных связей при планировании развития единой народнохозяйственной системы.— Иркутск : Изд. Иркут. ин-та народн. хоз-ва, 1970.— 78 с. 348. Табак Д., Куо Б. Оптимальное управление и математическое программирование.— М.': Наука, 1975.— 280 с. 349. Тарасенко Г.,С. Сходимость адаптивного алгоритма случайного поиска.— Кибернетика, 1977, № 5, с. 88—90. 350. Тарасова В. П. Оптимальные стратегии поиска приближенного глобального экстремума для некоторого класса функций.— В кн.: Вычислительные системы. Новосибирск : СО АН СССР, 1976, вып. 67, с. 77—86. 351. Тарасова В. Я. Оптимальные стратегии поиска области наибольших значений для некоторого класса функций.— Журн. вычисл. математики и мат. физики, 1978, т. 18, № 4, с. 886—896. 352. Телле В. Применение модифицированной функции Лагранжа в блочном программировании.— Экономика и мат. методы, 1975, № 3, с. 525—534. 496
363. Тимохин С. Г. Декомпозиционный подход к решению задачи линейного программирования.— Экономика и мат. методы, 1977, № 2, с. 330—341. 354. Тихонов Л. Я. Об устойчивости задач оптимизации функционалов.— Журн. вычисл. математики и мат. физики, 1966, т. 6, № 4, с. 631—634. 355. Тихонов Л. Н., Арсенин В. Я- Методы решения некорректных задач.— М. : Наука, 1974.— 223 с. 356. Тихонов Л. Н., Г ласт В. Б. Применение метода регуляризации в нелинейных задачах.— Журн. вычисл. математики и мат. физики, 1965, т. 5, № 3, с. 463—473. 357. Третьяков Н. В. Метод штрафных оценок для задач выпуклого программирования.— Экономика и мат. методы, 1973, № 3, с. 526—540. 358. Уайлд Д. Методы поиска экстремума.— М. : Наука, 1967.— 267 с. 359. Удзава X. Итерационные методы вогнутого программирования.— В кн.: Исследования по линейному и нелинейному программированию. М. : Изд-во иностр. лит., 1962, с. 228—245. 360. Уилкинсон Дж. X., Райнш К- Справочник алгоритмов на языке Алгол. Линейная алгебра.— М. : Машиностроение, 1976.— 390 с. 361. Ульм С. Ю. Метод декомпозиции для решения задач математического программирования.— Изв. АН ЭССР. Физика, математика, 1973, т. 22, № 1, с. 93—95. 362. Фадеев Д. К., Фадеева В. Н. Вычислительные методы линейной алгебры.— М. : Физматгиз, I960.— 656 с. 363. Федоренко Р. П. Опыт итерационного решения задач линейного программирования.— Журн. вычисл. математики и мат. физики, 1965, т. 5, № 4. с. 709—717. 364. Федоренко Р. П. Приближенное решение задач линейного программирования высокой размерности.— В кн.: Вычислительные методы линейной алгебры. Новосибирск : СО АН СССР, 1969, с. 74—86. 365. Федоренко Р. П. Итерационное решение задач линейного программирования.— Журн. вычисл. математики и мат. физики, 1970, т. 10, № 4, с. 895— 907. 366. Федоренко Р. П. Об итерационном решении задач линейного программирования.— Журн. вычисл. математики и мат. физики, 1972, т. 12, № 2, с. 298— 308. 367. Федоренко Р. П. О сходимости одного итерационного метода решения задач линейного программирования.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 6, с. 1369—1407. 368. Федоров В, В. О методе штрафных функций в задаче определения максими- на.— Журн. вычисл. математики и мат. физики, 1972, т. 12, № 2, с. 321—333. 369. Федоров В. В. К задаче об искусственном рассеивании.— В кн.: Исследование операций. М. : Изд. ВЦ АН СССР, 1974, вып. 4, с. 200—218. ' 370. Федоров В. В. Методы поиска максимина.— М. : Изд-во МГУ, 1975, вып. 1.— 88 с. 371. Федоров В. В. Методы поиска максимина.— М. : Изд-во МГУ, 1976, вып. 2.— 104 с. 372. Федоров В. В. Численные методы максимина.— М. : Наука, 1979.— 280 с. 373." ФиаккЬ А., Мак-Кормик Г. П, Нелинейное программирование. Методы последовательной безусловной минимизации.— М. : Мир, 1972.— 240 с. 374. Форд JI., Фулдерсон Д. Решение транспортной задачи.— В кн.* Методы и алгоритмы решения транспортной задачи. М. : Госстатиздат, 1963, с. 61—72. 375. Фридман В. М. О сходимости методов типа наискорейшего спуска.— Успехи мат. наук, 1962, т. 17, № 3, с. 201—204. 376. Хедли Дж. Нелинейное и динамическое программирование.— М. : Мир, 1967.— 507 с. 377. Хенкин М. 3. О выборе штрафных коэффициентов, сохраняющем скорость сходимости метода Ньютона.— Кибернетика, 1979, № 6, с. 46—50. 378. Химмельблау Д. Прикладное нелинейное программирование.— М. : Мир, 1975.—536 с. 379. Цыпкин Я- 3. Адаптация и обучение в автоматических системах.— М. : Наука, 1Й63.— 4G0 о. 497
380. Цыпкин #. 3. Обобщенные алгоритмы обучения.— Автоматика и телемеханика, 1970, № 1, с. 97—103. 381. Чан Хань. Приближенные методы решения задач выпуклого программирования.— Журн. вычисл. математики и мат. физики, 1977, т. 17, № 4, с. 805— 815. 382. Чан Хань. Некоторые методы минимизации при наличии ограничений в гильбертовом пространстве.— Журн# вычисл. математики и мат. физики, 1977, т. 17, № 6, с. 1387—1395. 383. Чан Хань. Некоторые новые методы решения конечномерных экстремальных задач : Автореф. дис. ... канд. физ.-мат. наук.— М. : 1978.— 18 с. 384. Чан Хань. Некоторые методы минимизации без ограничений.—;Журн. вычисл. математики и мат. физики, 1979, т. 19, № 2, с. 304—315. h 385. Черноусым Ф. Л. Метод локальных вариации для численного решения вариационных задач.— Журн. вычисл. математики и мат. физики, 1965, т. 5, № 4, с. 749—754. 386/ Черноусым Ф. Л. Об оптимальном поиске экстремума унимодальных функций.— Журн. вычисл. математики и мат. физики, 1970, т. 10, № 4, с. 922— 933. 387. Черноусько Ф. Л. Об оптимальном поиске минимума выпуклых функций.— Журн. вычисл. математики и мат. физики, 1970, т. 10, № 6, с. 1355—1366. 388. Черноусько Ф. Л., Баничук Н. В. Вариационные задачи механики и управле» ния.— М. : Наука, 1973.— 238 с. 389. Черноусько Ф. Л., Меликян А. А. Игровые задачи управления и поиска.— М. : Наука, 1972.— 271 с. 390. Шаманский В. Е. Методы численного решения краевых задач на ЭЦВМ. В 2-х ч.— Киев : Изд-во АН УССР, 1963.— 200 с. 391. Шепилов М. А. О градиентных и штра4ных методах в задачах математического программирования: Автореф. дис. .., канд. физ.-мат. наук.— М., 1974.— 18 с. 392. Шепилов М. А. О методе обобщенного градиента отыскания абсолютного минимума выпуклой функции.— Кибернетика, 1976, № 4, с. 52—57. 393. Шепилов М. А. О методе штрафов для задач выпуклого программирования.— Журн. вычисл. математики и мат. физики, 1979, т. 19, № 4, с. 889—895. 394. Шор Я. 3. Применение обобщенного градиентного спуска в блочном программировании.— Кибернетика, 1967, № 3, с. 53—55. 395. Шор Я. 3. О скорости сходимости обобщенного градиентного спуска.— Кибернетика, 1968, № 3, с. 98—99. ^396. Шор Я. 3. Обобщенный градиентный спуск.— В кн.: Тр. I Зимней школы по мат. программированию. М. : Изд. АН СССР, 1969, вып. 3, с. 578—585. 397. Шор Я. 3. Методы минимизации недифференцируемых функций и их приложения : Автореф. дис. ... д-ра физ.-мат. наук.— Киев, 1970.— 44 с. 398. Шор Я. 5, О скорости сходимости метода обобщенного градиентного спуска с растяжением пространства.— Кибернетика, 1970, № 2, с, 80—85. 399. Шор Я. 3. О классе почти дифференцируемых функций и одном методе минимизации функций этого класса.— Кибернетика, 1972, № 4, с. 65—70. 400. Шор Я. 3. Исследование сходимости метода градиентного типа с растяжением пространства в направлении разности двух последовательных градиентов.— Кибернетика, 1975, № 4, с. 48—53. 401. Шор Я. 3. Обобщенные градиентные методы минимизации негладких функций и их применение к задачам математического программирования.— Экономика и мат. методы, 1976, вып. 2, с. 337—356. 402. Шор Я. 3. Метод отсечения с растяжением пространства для решения задач выпуклого программирования.— Кибернетика, 1977, № 1, с. 94—95. 403. Шор Я. 3. Новые направления в развитии методов негладкой оптимизации.— Кибернетика, 1977, № 6, с. 87—92. 404. Шор Я. 3. Методы минимизации недифференцируемых функций и их приложения.— Киев : Наук, думка, 1979,— 200 с. 405. Шор Я. 3., Билецкий В. И. Метод растяжения пространства для ускорения сходимости в задачах овражного типа.— В кн.: Теория оптимальных решений. Киев : Изд. ИК АН УССР, 1969, № 2, с. 3—18. 498
406. Шор Н. 3., Гамбург П. Р. Некоторые вопросы сходимости обобщенного гра диентного спуска.— Кибернетика, 1971, № 6, с. 82—84. 407. Шор Н. 3., Гершович В. И. Об одном семействе алгоритмов для решения задач выпуклого программирования.— Кибернетика, 1979, № 4, с. 62—67. 408. Шор Я. 3., Журбенко Н. Г. Метод минимизации, использующий операцию растяжения пространства в направлении разности двух последовательных градиентов.— Кибернетика, 1971, № 3, с. 51—59. 409. Шор Н. 3., Шабашова Л. П. О решении минимаксных задач методом обобщенного градиентного спуска с растяжением пространства.— Кибернетика, 1972, № 1, с. 82—88. 410. Энеев Т. М. О применении градиентного метода в задачах теории оптимального управления.— Космические исследования, № 5, 1966, с. 72—80. 411. Эрроу /С. Дж., Гурвиц Л., Удзава X. Исследования по линейному и нелинейному программированию.—М. : Изд-во иностр. лит., 1962.—334 с. 412. Юдин Д. Б. Математические методы управления в условиях неполной информации.— М. : Сов. радио, 1974.— 400 с. 413. Юдин Д. Б. Задачи и методы стохастического программирования.— М. : Сов. радио, 1979.— 392 с. 414. Юдин Д. Б., Голыитейн Е. Г. Линейное программирование.— М. : Физмат- гиз, 1963.—776 с. 415. Юдин Д. Б., Гольштейн Е. Г. Задачи и методы линейного программирования.— М. : Сов. радио, 1964.— 736 с. 416. Юдин Д. Б., Гольштейн Е. Г. Линейное программирование. Теория, методы и приложения.— М. : Наука, 1969.— 424 с. 417. Юдин Д. Б., Немировский А. С. Информационная сложность и эффективные методы решения выпуклых экстремальных задач.— Экономика и мат. методы, 1976, т. 12, вып. 2, с. 357—369. 418. Яблонский А. И. Об экстремальных свойствах случайного поиска.— Изв. вузов. Радиофизика, 1971, т. 14, № 7, с. 1104—1111. 419. Яковлев М. Н. О некоторых методах решения нелинейных уравнений.— Тр. ин-та математики АН СССР, 1965, т. 84, с. 8—40. 420. Abadie /., Guigou J. Generalization of the Wolfe reduced gradient method to the case of nonlinear constraints.— In: Optimization / Ed. R. Fletcher. London ; New York : Academic Press, 1969, p. 37—49. 421. Altman M\ Generalized gradient methods of minimizing a functional.— Bull. Acad. Polon. Sci., 14, № 6, 1966, p. 313—318. 422. Armijo L. Minimization of functions having continuous partial darivatives.— Pacific J. Math., № 16, 1966, p. 1—3. 423. Antosiewicz H. A. Newton's method and boundary value problem.— J. Corn- put. Sust. Sci., 1968, 2, № 2, p. 177—202. 424. Auslender A. and Brodeau F. Convergence d'un algorithme de Frank et Wolfe applique a un probleme de controle.— Rev. Fran5aise Informat. Rech. Opera- tionnelle, 1968, № 7, p. 3—12. 425. Avriel Mordecal Nonlinear programming. Analysis and Methods.— Prentice — Hall, INC., Englewood Cliffs, New Jersey, 1976, p. 112. 426. Bard Y., Greenstadt J. L. A modified Newton method for optimization with equality constraints.— In: Optimization/Ed. R. Fletcher. London; New York : Academic Press, 1969. 427. Bazarra M. 5. An efficient cyclic coordinate method for optimizing penalty functions.— Nav. Res. Logist Quart., 1975, 22, № 2, p. 399—404. 428. Bazarra M. S., Good I. /., Shety C. M. Optimality criteria in nonlinear programming without differentiability.—Oper. Res., 1971, 19, № 1, p. 77—86. 429. Ъеа1е E. M. L. Cycling in the dual simplex algorithm.— Nav. Res. Logist. Quart., 1955, № 2, p. 269—275. 430. Bertsecas D. P. Necessary and sufficient conditions for a penalty method to be exact.—Math. Program., 1975, 9, № l, p. 87—89. 431. Bertsecas D. P. Combined primaldual and penalty methods for constrained minimization.— SIAM J. Contr. and Opt., 1975, 13, JNfe 3, p. 521—544. 432. Bertsecas D. P. On penalty and multiplier methods for constrained minimization.— SIAM J. Contr. and Opt., 1976, 14, № 2, p. 216—235. 499
433. BertsecasD. P., Mitter K. A descent numerical method for optimization problems with nondifferentiable cost functional.— SIAM J Control, 1973, 11, № 4, p. 637—652. 434. Best Michael /., Ritter Klaus. An accelerated conjugate direction method to solve linearly constrained minimization problems.— J. Compt. and Syst. Sci., 1975, 11, №3, p. 295—322. 435. Blankenship J. W.} Falk J. E. Infinitely constrained optimization problems.— J. of Optim. Theory and Appl., 1976, 19, № 2, p. 261—281. 436. Blum J. R. Multidimentional stochastic approximation methods.— Annals Math. Stat., 1954, 25, № 4, p. 737—744. 437. Boot J. C. G. Quadratic Programming.— Amsterdam : North — Holland Publ. Co, 1964, p. 117. 438. Brent R. P. Algorithms for finding zeros and extrema of functions without calculating derivatives.— STAN—CS, February, 1971, p. 71—198. 439. 'Brent R. P. Algorithms for minimization without derivatives.— Englewood Cliffs; New Jersey : Prentice — Hall, 1973, p. 157. 440. Broyden C. G. Quasi — Newton methods.— In: Numerical Methods for Unconstrained Optimization / Ed. W. Murray. London; New — York : Akademic Press, 1972, p. 87—106. 441. Brown G. W. Iterative solutions of games by fuctitions play.— In: Activity Analysis of Production and Allocation / Ed. by Т. С Koopmans, Cowles Commission for Research in Economics Monograph. New — York : Wiley, 1951, № 13, p. 374—376. 442. Bui — Trong — Lieu, Huard P. La methode des centres dans un espace topo- logique.— Num. Math., 1966, № 8, p. 65—67. 443. Cabot A. Victor Variations on a cutting plane method for solving concave minimization problems with linear constraints.—Nav. Res. Logist Quart., 1974, 21, № 2, p. 265—274. 444. Cannon M. D., Cullum С D. A tight upper bound on the rate of convergense of the Frank — Wolfe algorithm.— SIAM J. on control, 1968, 6, p. 509—516. 445. Cannon M.'D., Cullum С D., Polak E. Theory of optimal control and mathematical programming.— New York, 1970, p. 131. 446. Cauchy A. L. Methode generate pour la resolution des systemes d'equations si- multanees, Сотр. Rend. Acad. Sci., 1847, 25, p. 536—538. 447. Chaney R. W. On the rate of convergence of some feasible direction algorithms.— J. of Optim. Theory and Appl. 1976, 20, № 3, p. 297—313. -448. Charalambous Ch. Nonlinear least p-th optimization and nonlinear programming.—Math. Program., 1977, 12, p. 195—225. 449. Cheruault Y. Une methode directe de minimization et applications.— Rev. Francaise Informat. Rech. Operationnelle, 1968, № 10, p. 31—52. 450. Clarke F. H. Generalized Gradients and Applications.— Transactions of the American Mathem. Society, 1975, 205, № 3, p. 247—262. 451. Clarke F. #. A new approach to lagrang multipliers.— Math. Operations Res., 1976, № 1, p. 165—174. 452. Conn A. R. Constrained optimization using a non differentiable penalty function.—SIAM J. Num. Anal., 1973, 10, p. 760—784. 453. Curry H. The method of steepest descent for nonlinear minimization problems.— Quart. Appl. Math., 194.4, 2, p. 258—261. 454. Daniel James W. Convergence of the conjugate gradient method with computationally convinient modifications.— Num. Math., 1967, 10, № 2, p. 125—131. 455. Daniel James W. The Conjugate gradient method for linear and nonlinear operator equations.— SIAM J. Num. Anal., 1967, 4, p. 10—26. 456. Dantzig G. B. A proof of the equivalence of the programming at the game problem.— In: Activity Analisys of Production and Allocation / Ed. by Koopmans Т. С, Cowles Commission Monograth, № 13, 1951, New York: Wiley, p. 330—335. 457. Dantzig G. В., Wolfe Ph. Decomposition algorithm for linear programs.— Eco- nometrica, 1961, 29, № 4, p. 767—778. 458. Dantzig G. В., Wolfe Ph. Decomposition prinsiple for linear programs.— Oper. Res., 1960, 8, № 1, p. 101—111. 500
459. Dunskin /. The theory of max — min with application. SIAM J. Appl. Math., 1966, 14, p. 641—664. 460. Dutta S. R. /C. New algorithms for constrained minimax optimization. Math. Program., 1977, 13, № 2, p. 140—155. 461. Ecker J. G., Niemi F. D. A dual method for quadratic programs with quadratic constraints. SIAM J. Appl. Math., 1975, 28, № 3, p. 568—576. 462. Elsinga J., Moore T. A central cutting plane algorithm for the convex programming problem. Math. Program., 1975, 8, № l, p. 134—145. 463. Fiacco A. V. Penalty method for mathematical programming in with general constraint sets. J. of Optim. Theory and Appl., 1970, 6, № 3, p. 252— 268. 464. Fiacco A. V., McCormick G. P. Jhe sequential unconstrained minimization technique for nonlinear programming, a primal — dual method. Management Sci., 1964, 10, №2, p. 360—366. 465. Fletcher R. Function minimization without evaluating derivatives. A review. Comput. J., 1965, 8, № 1, p. 33—41. 466. Fletcher R. A new approach to variable metric algorithms. Comput. J., 1970, 13, № 3, p. 317—322. 467. Fletcher R. A general quadratic programming algorithm. J. Inst. Maths. Applies., 1971, 7, p. 76—91. 468. Fletcher R. An exact penalty function for nonlinear programming with inequalities. Math. Program., 1973, 5, p. 129—150. 469. Fletcher R., Freeman 7\ L. A modified Newton method for minimization. J. of Optim. Theory and Appl., 1977, 23, № 3, p. 357—372. 470. Fletcher R., Powell M. J. D. A rapidly convergent descent method for minimization. Comput. J., 1963, 6, №2, p. 163—168. 471. Fletcher R., Reeves С. М. Function minimization by conjugate gradients. Comput. J., 1964, 7, № 2, p. 149—154. 472. Fox R. L., Lasdon L. S., Tamir Arie, Rattier Margery . An efficient one dimen- tional search procedure. Management Sci., 1975, 22, № 1, p. 42—50. 473. Frank M.f Wolfe P. An algorithm for quadratic programming. Nav. Res. Lo- gist. Quart., 1956, 3, № 1, p. 95—110. 474. Daniel G., Luenberger D. G. Efficiently converging minimization methods based on the reduced gradient. SIAM J. Contr. and Opt., 1976, 14, № 1, p. 42—61. 475. Gal T. Rim multiparametric linear programming. Management Sci., 1975, 21, № 5, p. 567—575. 476. Garcia Palomares V. M.t Mangasarian Q. L. Super linearly convergent quasi- Newton algorithms for nonlinearly constrainted optimization problems. Math. program., 1976, 11, № 1, p. 1—13. 477. GassS. /., Saaty T. L. Parametric Objective Function, Part II, Generalization. J. of the Oper. Res. Society of America, 1955, № 3, p. 3—9. 478. Qass S. I.» Saaty T. L. The computational algorithm for the parametric objective function. Nav. Res. Logist. Quart., 1955, № 2. 479. Qill P. E., Murray W. Quasi — Newton methods for unconstrained optimization. J. Inst. Maths. Applies., 1972, 9, p. 91—108. 480. Goffin I. L. Nondifferentiable optimization. In: Abstracts IX Int. Symp. Math. Program. (Budapest-Hungary, aug. 23—27, 1976). Budapest: Bolyi lanos Math. Soc, 1976.—95 p. 481. Ggffin /. L. On convergence rates of subgradient optimization. Math. Program., 1977, 13, № 3, p. 329—347. 482. GoldfarbD. A. A family of variable metric methods derived by variational me- aji5. Math. Comput., 1970, 24, № 109, p. ?3—26. 483. Goldstein A. A. Optimization of Lipchitzebntinuous functions. Math. Program., 1977, 13, № 1, p. 14—22. 484. Greenstadt J. Variations on variable metric methods. Math. Comput., 1970, 24, № 109, p. 1—22. 485. Greenstadt J. A quasi Newton method with no derivatives. Math. Comput., 1972, 26, № 117, p. 145—166. 486. Goldstein A. A., Price J. F. An effective algorithm for minimization. Num. Math., 1967, 10, p. 184—189. 501
487. Haarhoff P. С, Buys J. D. A new method for the optimization of nonlinear function subject to nonlinear constrained. Comput. J., 1970, 13, №2, p. 171 — 177. 488. Han Shin Ping. Superlinearly convergent variable metric algorithms for general nonlinear programming problems. Math. Programming, 1976, 11, p. 263— 262. 489. Han Shin Ping. A globally convergent method for nonlinear programming. J. of Optim. Theory and Appl., 1977, 22, № 3, p. 297—309. 490. Han Shin Ping. Dual variable metric algorithms for constrained optimization. SIAM J. Contr. and Opt., 1977, 15, N2 4, p. 546—565. 491. Held M., Wolfe P., Crowder H. Validation of subgradient optimization. Math. Program., 1974, 6, № 1, p. 62—88. 492. Hestenes M. R. The conjugate gradient method for solving linear system. In: Proceeding of Symposia on Applied Mathematics, v. VI, Numerical Analysis, New York, 1956, p. 83—102. 493. Hestenes M. R. Multiplier and gradient methods. J. of Opt. Theory and Appl., 1969, 4, № 5, p. 303—320. 494. Hestenes M. R., Stiefel E. Methods of conjugate gradients for solving linear systems. J. Res. Nation. Bureau Stand., 1952, 49, № 6, p. 409—436. 495. Hohenbalken Von Balder. Simplicial decomposition in nonlinear programming algorithms. Math. Program., 1977, 13, № 1, p. 49—68. 496. Huard P. Rezolution of mathematical programming with nonlinear contraints by the method of centres. In: Nonlinear Programming / Ed. J. Abadie. Amsterdam : North Holland Publ. Co., 1967, p. 208—219. 497. Huard P. Programmation matematique convexe. Rev. Francaise Informat. Rech. Operationnele, 1968, № 7, p. 43—59. 498. Huang H. Y., Levy A. V. Numerical experiments on quadratically convergent algorithm for function minimization. J. of Optim. Theory and Appl., 1970, 6, № 3, p. 269-282. 499. Jocobsen St. E., Torabi M. A global minimization algorithm for a class of one dimensional functionals. J. Math. Anal, and Appl., 1978, 62, № 2 , p. 310— 324. 500. Kalfond P., Ribiere G., Sogno J. C. A method of feasible directions using projection operators. In: Proc. IFIP Congr. 68, Edinburgh, August, 1968. 501. Keefer J. Sequentional minimax search for a maximum. Proc. Amer. Math. Soc, 1953, 4, № 3, p. 502^-506. 502. Keefer J., Wolfowitz J. Stochastic estimation of maximum of a regression function. Ann. of Math. Stat., 1952, 23, p. 463—466. 503. Kelley J. Ё. The cutting plane method for solving convex programs. SIAM Journal, 1958, 6, № 1, p. 15—22. 504. Kelley J. E. The cutting plane method for solving convex programs. SIAM Journal, 1960, 8, № 4, p. 703—712. 505. KlessigR. A general theory of convergence for constrained optimization algorithms that use antizigzagging provisions. SIAM, J. Contr., 1974, 12, № 4, p. 598—608. 506. Klessig R.f Polak E. Effecient implementations of Polak Ribiere conjugate gradient algorithm. In: Electronics Research Laboratory Memo № M279. Berkeley, University of California, Aug. 1970. 507. Konno Hiroshi Maximization of a convex quadratic function under linear constraints. Math. Program., 1976, 11, № 2, p. 117—127. 508. RowalikJ., Osborne M. R. Methods for unconstrained optimization problems: American Elseyier. New York, 1968, p. 120. 509. Kowalik J., Osbrrne M. R., Ryan D. M. A new method for constrained optimization problems, брег. Res., 1969, 17, N9 6, p. 973—983. 610. Kuhn H. W., Tucker A. №. Nonlinear programming. In: Proceeding of the Second Berkeley Symposium on Mathematical Statistics and Probability/ Ed. J. Neyman. Uniwersity of California Press, 1951, p. 481—493. 511. Laenberger t). Convergence rate of penalty function scheme. J. of Opt. Theory and Appl., 1971, 7, № 1, p. 39—51. 512. Lemarechal С An extention of Davidon methods to nondifferentiable problems. Math. Programming Study, 1975, 3, p. §5—105. 502
613. Litvakov В. M. On a class of Robbins Monro procedure. Inform. Sci., 1973, 6, № 1, p. 33—48. 614. Lootsma F. Л. Hessian matrices of penalty functions for solving constrained optimization problems. Philips Res. Rept., 1969, 24, p. 322—331. 615. Marks B. R., Wright G. P. A general inner approximation algorithm for non- convex mathematical programs. Oper. Res., 1978, 26, № 4, p. 681—683. 616. Mathematical programming. Study 3. Nondifferentiable optimization / Ed. M. L. Balinski, P. Wolfe. Amsterdam : North Holland Publ. Co., 1975.— 178 p. 617. MayneD. Q., Polak E. Feasible directions algorithms for optimization problems with equality and inequality constraints. Math, program., 1976, 11, № 1, p. 67—80. 618. McCormick G. P. A second order method for the linearly constrained nonlinear programming problem. In: Nonlinear Programming / Eds. J. B. Rosen, O. L. Mangasarian, K. Ritter. London; New York : Academic Press, 1972, p. 209—243. 619. McCormick G. P. Attemps to calculate global solutions of problems that may have local minima. In: Numerical Methods for Nonlinear Ortimization / Ed. F. A. Lootsma. London; New York : Academic Press, 1972, p. 209—221. 520. Meyers G. E. Properties of the Conjugate Gradient and Davidon Methods. J. of Optim. Theory and Appl., 1968, 2, p. 209—219. 521. Meyer Gegard G. L. Accelerated Frank Wolfe algorithms. SIAM J. on Contr., 1974, 12, № 4, p. 655—663. 522. Mifflin R. On the convergence of the logarithmic barrier function. In: Numerical Methods for Nonlinear Optimization / Ed. F. A. Lootsma. London; New York : Academic Press, 1972. 523. Mifflin R. An algorithm for constrained optimization with semismooth functions. Math. Operations Res., 1977, № 2, p. 191—207. 524. Mifflin R. A stable method for solving certain constrained least squares problems. Math. Program., 1979, 16, № 2, p. 141—158. 525. Mine #., Fukushima M. Penalty function theory for General convex programming problems. J. of Optim. Theory and Appl., 1978, 24, № 2, p. 287—301. 526. Mine'#., Olina K., Fukushima M. A. «Conjugate» interior penalty method for certain convex programs. SIAM J. Contr. and Opt., 1977, 15, № 5, p. 747—755. 527. Murphy F. A class of exponential Penalty functions. SIAM J. on Contr., 1974, 12, p. 679—687. 528. Murray W. Analytical expressions for the eigenvalues and eigenvectors of the Hessian matrices of barrier and penalty functions. J. of Optim. Theory and Appl., 1971, 7, p. 189—196. 529. Mutsumato T. On a class of min-max functions. Trans. Soc. Instrums. Contr. Eng., 1975, 11, № 3, p. 322—327. 530. O'Neill Richard P., Widhelm William B. Acceleration of Lagrangian column generation algorithms by penalty function methods. Management Sci., 1976, 23, № 1, p. 50—58. 531. Von Neumann J. A numerical method to determine optimum strategy. Nav. Res. Logist. Quart., 1954, 1, № 2, p. 109—115. 532. Nguyen V. H., Strodiot Л J. On the convergence rate for a penalty function method of exponential type. J. of Optim. Theory and Appl., 1979, 27, № 4, p. 495—508. 533. Parikh S. С Approximate cutting planes in nonlinear programming. Math, program., 1976, 11, № 2, p. 194—198. 534. Pearson J. D. Variable metric method of minimization. Comput. J., 1969, 12, № 2, p. 171—178. 536. Pietszykowski T. An iteration method of linear programming., Warczawa : Za- klad Aparatow Mathematycznich PAN, Prace A, 1960, № Sv 586. Polak E. On the convergence of optimization algorithms. Rev. Francaise Infor- mat. Rech. Operationelle, 16—Rl, 1969, p. 17—34. 537. Polak E. A modified secant method for unconstrained minimization. Math. Program. 1974, 6, p. 264—280. 503
538. Polak E. On the global stabilization of locally convergent algorithms for optimization and root finding. In: Proc. 6-th World Congress IFAC; Booton /Cambridge, Massachusetts, USA, 1977, p. 1—5. 589. Polak E.t Ribiere G. Note sur la convergence de methodes de directions conjuge- es. Rev. Francaise Inform. Rech. Operationelle, 1969, 16—Rl, p. 35—43. Б40. Powell M. J. D. An efficient method for finding the minimum of a function of several variables without calculating derivatives. Comput. J., 1964, 7, № 2, p. 155—162. 541. Powell M. J. D. A method for nonlinear constraints in minimization problems. In: Optimization, Chapter 19. London; New York : Acad. Press, 1969, p. 283—298. 542. Powell M. J. D. Some convergence properties of the conjugate gradient method. Math, program., 1976, 11, № 1, p. 42—49. 543. Powell M. J. D. A survey of numerical methods for unconstrained optimization. SI AM Rev., 1970, 12, № 1, p. 79—97. 544. Powell M. J. D. Algorithms for nonlinear constraints that use langrangian functions. Math. Program., 1978, 14, № 2, p. 224—248. 545. Rao S. R.t Mitra S. K. Generalized inverse of matrices and its applications. New York, John Wiley, 1972. 546. Reaves Gary R. Global minimization in nonconvex all quadratic programming. Management Sci., 1975, 22, № 1, p. 76—86. 547. Robbins //., Monro S. A stochastic approximation method. Ann. Math. Stat., 1951, 22, № 3, p. 400—407. • 548. Robinson S. M. A quadratically convergent algorithm for general nonlinear programming problems. Math. Program., 1972, 3, № 2, p. 145—156. 649. Rockafellar R. T. The Multiplier Method of Hestenes and Powell applied to convex programming. J. of Optim. Theory and Appl., 1973, 12, № 6, p. 6. 550. Rockafellar R. T. Augmented lagrang multiplier functions and dual nonconvex programming. SIAM J. Contr., 1974, 12, № 2, p. 268—285. 551. Rosen J. B. The gradient projection method for nonlinear programming, Part I, Linear Constraints. SIAM J. Appl. Math., 1960, 8, № 1, p. 181—217. 552. Rosen J. B. The gradient*projection method for nonlinear programming, Part II, Nonlinear Constraints. SIAM, J. Appl. Math., 1961, 9, p. 514—532. 553. Rozenbrock H. H. An automatic method for finding the greatest or least value of the function. Comput. J., 1960, 3, p. 175—184. 554. Saaty T. L. Coefficient perturbation of a constrained extremum. Oper. res., - 1959, 7, № 3. 555. Sasal Hitoshi. An interior penalty method for minimax problems with constraints. SIAM J. on Control., 1974, 12, № 4, p. 643—649. 556. Schubert L. /C. Modification of quasi Newton method for nonlinear equations with a sparse Jacobian. Math. Comput., 1970, 24, № 1, p. 27—30. 557. Sharp J. Franklin, Wagner Michael H. Generalized programming by linear approximation of the dual gradient (equality constraints). Nav. Res. Logist. Quart., 1975, 22, № 1, p. 145—154. 558. Shultz Hilbert /C. A Kuhn Tucker algorithm. SIAM J. Contr., 1973., 11, № 3, p. 438—445. 559. Singh C. Sufficient optimality criteria in nonlinear programming for generalized equality-inequality constraints. J. of Optim. Theory Appl., 1977, 22, No 4, p. 631—635. 560. Stong R. E. A note on the sequential unconstrained minimization technique for non linear programming Management Sci., 1965, 12 A), p. 142—144. 561. Strodiot J. J., Nguyen V, H. An exponential penalty method for non differenti- able minimax problems with general constraints. J. of Optim. Theory and Appl., 1979, 27, No. 2, p. 205—219. 562. Ting A. C. On the convergence of a class derivative free minimization algorithms. J. of Optim. Theory and Appl., 1977, 22, № 4, p. 487—508. 663. TopkisD. M., Veinott A.F. On the convergence of some feasable directions algorithms for nonlinear programming. SIAM j. on Contr., 1967, 5, № 2, p. 268-279. 504
564. Tremolieres R. Methode des centres a troncature variable. Elec. FR. Bull. Dir. Etudes Rech. Ser. C-Math. Inform. 1968, 2, p. 57—64. 565 Truemper /0 Note on finite convergence of exterior penalty functions. Manag. Sci., 1975, 21, № 5, p. 600—606. 566. Wolfe Ph. The simplex method for quadratic programming. Econometrica, 1959, 28, № 3, p. 382—398. 567. Wolfe Ph. Accelerating the cutting plane method for non linear programming. SI AM Journal, 1961, 9, p. 481-488. 568. Wolfe Ph. A method of conjugate subgradients for minimizing nondifferentiable functions. In: Mathematical Programming. Study 3. Non differentiable optimization/Ed. M. L. Balinski, P. Wolfe. Amsterdam : North-Holland Publ. Co., 1975, p. 145—173. 569. Wolfe Ph. Convergence theory in nonlinear programming. In: Integer and nonlinear programming / Ed. J. Abadie. Amsterdam : North Holland Publ. Co., 1970, p. 1—36. 570. Zangwill W. I. Minimizing a function without calculating derivatives. Ccmput. J., 1967, 10, № 3, p. 293—296. 571. Zangwill W. I. Nonlinear programming via penalty functions. Management Sci., 1967, 13, № 5, p. 344—358. 572. Zangwill W. 1. Convergence conditions for nonlinear programming. Management Sci., 1969, 16, № 1, p. 1—13. 573. Zoutendijk G. Nonlinear programming (a numerical survey). SI AM J. on Contr., 1966, 4, № 1, p. 194—210. 574. Zoutendijk G. Nonlinear programming, computational methods. In: Integer and Nonlinear Programming / Ed. J. Abadie. Amsterdam : North Holland Publishing Co., 1970, p. 120. 575. Zwart Philip B. Global maximization of a convex function with linear inequality constraints. Oper. Res., 1974, 22, № 3, p. 602—609.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Адаптивный метод 21, 35 ^-адекватная математическая модель 14 Вб-адекватная модель 43 е-активное множество индексов 299 Алгоритм вычисления ближайшей к началу координат точки многогранника 171 Кифера — Вольфовица 71 нормализованный 72 определения принадлежности начала координат многограннику 170 оптимальный 23, 49, 52 переменной метрики 37, 98 Франка — Вулфа 376 ускоренный 377 Базис опорного решения 193, 204, 229, 235 почти допустимого 204 Базисная матрица 194 Базисные компоненты опорного решения 194 Векторы искусственные 197 сопряженные 38, 99 Внешние штрафные функции 279, 281 Внешних штрафных функций метод 281, 283, 287 — — модифицированный 284 Внутренней аппроксимации метод 387 Внутренние штрафные функции 279, 289 Внутренних штрафных функций метод 2S1, 289, 290, 292 Внутренняя точка 392 Возможное направление 297 Возможных направлений метод 33, II, 297, 301, 307, 309, 313 модифицированный 307 с квадратичным поиском 305 стохастический аналог 311 Второго порядка метод 446 Выпуклого программирования задача Геометрической прогрессии (линейная) скорость сходимости метода (алгоритма) 33 Гибридный метод проекции градиента 40, 269, 270, 277 стохастический 414 Глобально сходящийся метод 403 Глобального поиска метод 63 рандомизированный 65 Градиент функции 27 обобщенный (субградиент) 29 Градиентный метод 33, 73, 76—81, 464 обобщенный 187, 467 с растяжением пространства 146, 149 Граничная точка 392 Данцига — Вулфа метод разложения 219 Двойственная (сопряженная) задача 203, 212, 228, 248, 250, 398 Двойственный метод 353, 398 переменной метрики 401 приближенный 398 Двойственный симплекс-метод 203 Двойственных направлений метод 87 модифицированный 89 Двусторонних оценок метод 214 Допустимых направлений конус 28 Достаточное условие оптимальности 29, 30 Дроби Фибоначчи 96 Задача многоцелевого управления 19 оптимизации 13, 14 — безусловная 14, 73, 136 —двойственная (сопряженная) 203, 228, 248, 250, 398, 212 — дискретная 15 — минимаксная 17 дискретная 167, 438, 440, 444 непрерывная 178, 180, 449 стохастическая 188, 189, 461 — многоэкстремальная 15 — многоэтапная 18 — при неполных данных 14 506
— прямая 203, 228, 248, 250, 398 — с бесконечным числом ограничений 424 — условная 14, 192, 269, 438 отыскания седловых точек 187, 464, 468 поиска максимина 450, 452, 457, 458 предельная экстремальная 339, 373 , программирования блочного 219, 222 223, 227 — выпуклого 15, 346 — квадратичного 427, 428, 431, 432, 435 — линейного 15, 192 каноническая 192 вырожденная 194 невырожденная 194, 204, 230 с двусторонними ограничениями 229 — нелинейного 269, 438 — параметрического 16, 253, 257 — стохастического 16, 412, 420, 421, 461 Золотого сечения метод 48 Искусственные векторы 197 переменные 197 Итеративный метод 240, 242, 243, 247, 250 Каноническая задача линейного программирования 192 вырожденная 194 невырожденная 194 Касательных метод 56 Квадратичная скорость сходимости метод з (алгоритма) 33 — функция 97, 104 Квадратичного программирования задача 427, 428, 431, 432, 435 Квадратичной аппроксимации метод 58, 353 Квазивыпуклая функция 24 Квазиградиент функции 157 е-квазиградиент функции 160 Квазиградиентный метод 41, 121—126, 156—158, 405 стохастический 188—190 е-квазиградиентный метод 159, 160 Квазиньютоновский метод 37, 325 (е, \х)-квазистационарная точка 443 Квазирешение разрывных функций 165 Квазифейеровская последовательность случайная 408 , Кифера — Вольфовица алгоритм 71 Классические условия шаговых множителей 137 Комбинированный мета стохастических градиентов и штрафных функций 416 ц штрафных функции 2У<э Конечно-разностный метод 165 Конус допустимых направлений 28 Коэффициент штрафа (штрафной коэффициент) 278 Куна — Таккера теорема 29, 30 точка 30 Кусочно-кубической аппроксимации метод 61 Лагранжа множители 30 функция 30, 350, 352 — модифицированная 356, 365, 369, 398 Линеаризации метод 41, 327, 330, 332, 335, 336 в предельных экстремальных задачах 339 практически реализуемый на ЭВМ 333 стохастический 337 Линейная (геометрической прогрессии) скорость сходимости метода (алгоритма) 33 Линейного программирования задача 15, 192 каноническая 192 вырожденная 194 невырожденная 194 с двусторонними ограничениями 229 Липшица константа 25 условие 25, 75, 84 функция 25 Локального случайного поиска метод 151, 152, 153 Локальное решение 22 Локальной оптимизации метод 22 Локальных вариаций метод 128 Максимин 450, 452 Математическая модель 14 г/о-адекватная 14 реализуемая 14 Матрица базисная 194 Метод адаптивный 21, 35 аппроксимации 22 — внутренней 387 — квадратичной 58, 353 — кусочно-кубической 61 возможных направлений 33, 41, 297 301, 307, 309, 313 модифицированный 307 с квадратичным поиском 305 стохастический аналог 311 507
второго порядка 446 гибридный — проекции градиента 274 — стохастический 414 глобально сходящийся 403 глобального поиска 63 рандомизированный 65 градиентный 33, 73, 76—81, 464 — обобщенный 187, 467 — с растяжением пространства 146, 149 двойственный 353, 398 — переменной метрики 401 — приближенный 398 двойственных направлений 87 —- — модифицированный 89 двусторонних оценок 214 декомпозиции развязывающей 41 золотого сечения 48 использующий аналог функции Ляпунова 116 — стохастические автоматы 68 — функцию Лагранжа 350, 351, 353, 354 модифицированную 355, 357 итеративный 240, 242, 243, 247, 250 касательных 56 квазиградиентный 41, 121—126, 156—158, 405 — стохастический 188—190 е-квазиградиентный 159, 1*60 квазиньютоновский 37, 325 комбинированный, стохастических градиентов и штрафных функций 416 конечно-разностный 165 линеаризации 41, 327, 330, 332, 335, 336 — в предельных экстремальных задачах 339 — практически реализуемый на ЭВМ 333 — стохастический 337 локальной оптимизации 22 локальных вариаций 128 минорант 25 многошаговый 143, 371 Монте-Карло 21 нагруженного функционала 360, 361 приближенная схема 363 наискорейшего спуска 73 модифицированный 74 невязок 458 Ньютона 55, 322, 354 — при наличии возмущений 323 — с регулировкой шага 322 Ньютона — Канторовича 37, 82 — модифицированный 84, 85 обобщенный 82 обобщенного градиентного спуска 136—142, 187 многошаговый 143, 372 обобщенный беспараметрический внешней точки 444 ускоренный вариант 445 обобщенных почти градиентов 161 опорный 261 — мультипликативный 268 — прямой 262 — обратной матрицы 265 оптимальный поиска экстремума выпуклых функций 52 унимодальных функций Липшица 49 отсечений 21, 24, 343 — с растяжением пространства 346 перебора полного 21 — простого 72 поиска интервала наибольших значений многоэкстремальных функций 66 покоординатного спуска детерминированный 40, 388 случайный 390 последовательного сокращения невязок 211 — уточнения оценок 204 последовательных приближений 22, 32, 40, 169—177, 438—442 сеточный 178, 449 проектирования обобщенного градиента 371, 373 многошаговый 372 — стохастических квазиградиентов 407 проекции градиента 40, 269, 270 гибридный 274 при наличии возмущений 277 прямой 421 псевдоградиентный 154 псевдообратных операторов 106 развязывающей декомпозиции 41 разложения Данцига — Вулфа 219 релаксационный дискретный 393 —г непрерывный 392 растяжения пространства 37, 146, 149 самонастраивающихся программ 129 секущей 55 случайного поиска 133, 423 — — локального 151, 152, 153 сокращения невязок стохастический 410, 412 сопряженных градиентов 92, 94, 97, 378, 427, 428, 431 модифицированный 432 с восстановлением 93 стохастический аналог 380 — направлений 99, 100, 102, 106 608
модифицированный 105, 432 стохастических квазиградиентов 121, 188, 190, 405, 452, 461 модифицированный 462 управляющих последовательностей 381, 383 условного градиента реализуемый 375 усреднения направлений спуска 164, 417, 420 фейеровских приближений 395, 396 Фибоначчи 46 — модифицированный 47 центров 316 — модифицированный 316 реализация 318, 319 — чебышевских 320 модифицированный 321 штрафных оценок 297, 301, 365, 367, 368 — функций внешних 281, 283, 287 модифицированный 284 внутренних 281, 289, 290, 292 комбинированный 293 общий 278 штрафов 39, 450 — стохастический 295 — экспоненциальный 357, 468 экстремального базиса 182, 184, 185 эллипсоидов 25 Эрроу — Гурвица детерминированный 180 стохастический 181 Минимаксная задача 17 дискретная 167, 438, 440 непрерывная 178, 449 стохастическая 188, 189, 461 Минимизирующая последовательность 32 Минорант метод 25 Многоцелевого управления задача 19 Множество выпуклое 28 — сильно 28, 376 — строго 28 индексов е-активное 299 квазиградиентов 31 оптимальности базиса 253, 257 седловых точек 187, 464 условие устойчивости 464, 467 субградиентов 29 Множители Лагранжа 30 нормирующие 122, 371, 287 шаговые 33, 74, 76, 11, 80, 81, 83, 95, 96, 122, 124, 287 — классические условия 137 Нагруженного функционала метод 360, 361 приближенная схема 363 Нагруженный функционал 360, 362 Наискорейшего спуска метод 73 модифицированный 74 Направление наибыстрейшего убывания 27 е-наискорейшего спуска 169 Небазисные компоненты опорного решения 194 Невырожденная задача линейного программирования 194, 204, 230 Невырожденный опорный план 262 Невязок метод 458 Необходимое условие оптимальности 29, 30, 31, 168, 283 Ньютона метод §Б, 322, 354 при наличии возмущений 323 с регулировкой шага 322 Ньютона — Канторовича метод 37, 82 модифицированный 84, 85 обобщенный 82 Обобщенного градиентного спуска метод 136—144, 187 — многошаговый 143, 372 Обобщенных почти градиентов метод 161 Обобщенный градиент (субградиент) функции 29 беспараметрический внешней точки метод 444 ускоренный вариант 445 симплекс-метод 216 Обратной матрицы опорный метод 265 Общий метод штрафных функций 278 Ограничения задачи двусторонние 229 кусочно-линейные 396 линейные 192, 270 общие 192 простой структуры 438 прямые 192 типа неравенств 281, 311, 313, 320 — равенств 283 / — смешанного 192, 301, 307, 332, 392 Оператор развязывающий 42 растяжения пространства 146 релаксации 383 сжатия пространства 146 Опора задачи 262 Опорное решение 193, 204, 229, 235 вырожденное 194, 204 невырожденное 194, 204, 230, 235 почти допустимое 203 Опорный метод 261 — мультипликативный 268 — прямой 262 — обратной матрицы 265 509
план 262 Оптимальное решение 13 Оптимальный алгоритм 23, 49, 52 метод поиска экстремума функций выпуклых 52 унимодальных Липшица 49 Оптимизации задача 13, 14 Отображение фейеровское 395 Отсечений метод 21, 24, 343 с растяжением пространства 346 Параметрического программирования задачи 16, 253, 257 Перебора метод полного 21 простого 72 Переменной метрики алгоритм 37, 98 Переменные искусственные 197 Покоординатного спуска метод 40 детерминированный 388 случайный 390 Последовательного сокращения невязок метод 211 — уточнения оценок метод 204 Последов ател ьность квазифейеровская случайная 408 сеток плотная на множестве 179, 462 управляющая 382 — согласованная с оператором 385 Последовательных приближений метод 22, 32, 40, 169—177, 438—442 сеточный 178, 449 Правило множителей Лагранжа 366 Прерывания функция 319 Проектирования обобщенного градиента метод 371, 373 многошаговый 372 — стохастических квазиградиентов метод 407 Проекции градиента метод 40, 269, 270 гибридный 274 . при наличии возмущений 277 Производная функции 27 — — по направлению 27 Прямой метод 421 Псевдоградиент функции 154 Псевдоградиентный метод 154 Псевдообратных операторов метод 106 Псевдообращение матриц 107 Равномерно выпуклая (вогнутая) функция 471 Развязывающей декомпозиции метод 41 Развязывающий оператор 42 Разложения Данцига — Вулфа метод 219 Рандомизированный алгоритм глобального поиска 65 Растяжения пространства метод 37, 146, 346 оператор 146 Реализуемая математическая модель 14 Регулярная точка 30 Регулярности ограничений условие 393 Релаксации оператор 383 Релаксационный метод дискретный 393 непрерывный 392 Решение локальное 22 стационарное (стационарная точка) 32, 170, 440, 449, 455 опорное 193, 204, 229, 235 оптимальное 13 Самонастраивающихся программ метод 129 Сверхлинейная скорость сходимости метода (алгоритма) 33 Седловая точка 30 Седловое множество 187, 464 условие устойчивости 464, 467 Секущей метод 55 Сжатия пространства оператор 146 Сильно выпуклая функция 28 Сильно выпукло^ множество 28, 376 Симплекс-метод 193, 199 двойственный 203 модифицированный 201, 229, 235 мультипликативный 203 обобщенный 216 Скорость сходимости метода (алгоритма) геометрической прогрессии, или линейная 33 квадратичная 33 k-то порядка 33 сверхлинейная 33 Слабо выпуклая (вниз) функция 156 Слейтера условие 30, 350 Случайного локального поиска метод 151—153 Случайного поиска метод 133, 423 Сокращения невязок стохастический метод 410, 412 Сопряженные векторы 38, 99 Сопряженных градиентов метод 92, 94, 97, 378, 427, 428, 431 модифицированный 432 с восстановлением 93 стохастический аналог 380 Сопряженных направлений метод 99, 100, 102, 105 модифицированный 105, 432 Средняя квадрэтическая сходимость метода (алгоритма) 120 510
Стационарная точка (стационарное решение) 170, 440, 449, 455, 32 е-стационарная точка 174 Стохастический квазиградиент 121, 405 Стохастических квазиградиентов метод 121, 188, 190, 405, 452, 461 модифицированный 462 Стохастического программирования задача 412, 420, 421, 461 Строго выпуклая функция 28 — выпуклое множество 28 е-субградиент функции 145 Субградиент функции (обобщенный градиент) 29 Сходимость метода (алгоритма) в среднем 117 почти наверное (с вероятностью единица) 120, 124, 411, 424 по вероятности 126, 128, 368 средняя квадратическая 120 Теорема Куна — Таккера 29, 30 Точка внутренняя 392 граничная 392 (е, [1)-квазистационарная 443 Куна — Таккера 30 локального минимума 30 регулярная 30 стационарная (стационарное решение) 32, 170, 440, 449, 455 Унимодальная функция 49 Управляющая последовательность 382 согласованная с оператором 385 Управляющих последовательностей метод 381, 3'83 Условие Липшица 25, 75, 84 оптимальности достаточное 28, 29, 30 — необходимое 27—31 — поведения автомата в случайной стационарной среде 70 регулярности ограничений 393 Слейтера 30, 350 строгой дополняющей нежесткости 326, 359 Условия классические шаговых множителей 137 Условного градиента реализуемый метод 375 Усреднения направлений спуска метод 164, 417, 420 Фейеровских приближений метод 395, 396 Фейеровское отображение 395 Фибоначчи дроби 96 метод 46 — модифицированный 47 числа 49 Франка — Вулфа алгоритм 376 ускоренный 377 -^ Функционал нагруженный 360, 362 Функция вогнутая равномерно 471 выпуклая 28 — равномерно 471 — сильно 28 — строго 28 дифференцируемая 27 квадратичная 97, 104 квазивыпуклая 24 квазидифференцируемая 31, 32 Лагранжа 30, 350, 352 — модифицированная 356, 365, 369, 398 липшицева 25 максимизируемая 15 минимизируемая 15 прерывания 319 унимодальная 49 целевая 15 штрафа (штрафная) 39, 278 D-функция 177 Q-функция 292 Целевая функция 15 Центров метод 316 модифицированный 316 реализация 318, 319 чебышевских 320 модифицированный 321 Числа Фибоначчи 49 Шаговые множители 33, 74, 76, 77, 80, 81, 83, 95, 96, 122, 124, 287 Штрафа коэффициент (штрафной коэффициент) 278 Штрафная функция (функция штрафа) 39, 278 Штрафных оценок метод 297, 301, 365, 367, 368 Штрафных функций метод внешних 281, 283, 287 модифицированный 284 внутренних 281, 289, 290, 292 комбинированный 293 общий 278 Штрафов метод 39, 450 стохастический 295 экспоненциальный 357, 468 Экспоненциальных штрафов метод 357, 468 Экстремального базиса метод 182, 184, 185 Эллипсоидов метод 25 Эрроу — Гурвица метод детерминированный 180 — стохастический 181 511
Иван Васильевич Бейко Борис Николаевич Бублик Петр Николаевич Зинько Методы и алгоритмы решения задач оптимизации Редакторы В. И. Денисюк, Л. Г. Любимова, М. С. Хойнацкий Переплет художника В. А. Гурлева Художественный редактор С. П. Духленко Технический редактор Л. Ф. Волкова Корректор М. В. Волкова Информ. бланк N° 7536 Сдано в набор 30.12.81. Подп. в печ. 27.07.83. БФ 03179, Форма» 60x90/1в. Бумага книж.-журн. Лит. гарн. Вые. печать. 324печ л. 32 кр.-отт; 31,75 уч.-изд. л. Тираж 5000 экз. Изд. № 5280. Зак. № 3-341. Цена 2 р. Головное издательство издательского объединения «Вища школа», 252054, Киев-54,- ул. Гоголевская*! 7. Отпечатано с матриц Головного предприятия РПО «Полиграф- книга» на книжной фабрике «Коммунист», 310012, Харьков-12, Энгельса, И. - •