Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Решебник_МО

.pdf
Скачиваний:
160
Добавлен:
01.06.2015
Размер:
3 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Южный федеральный университет»

С.И. Родзин О.Н. Родзина

МЕТОДЫ ОПТИМИЗАЦИИ

РЕШЕБНИК К КУРСУ ЛЕКЦИЙ

ТАГАНРОГ 2013

УДК 519.6(075.8)

Рецензенты:

доктор технических наук, профессор Ростовского государственного университета путей сообщения Ковалев С.М.;

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

ISBN ___________________

Родзин С.И., Родзина О.Н. Методы оптимизации: Решебник к курсу лекций. – Таганрог: Изд-во ЮФУ, 2013, 148 с.

Методы оптимизации направлены не только и не столько на определение оптимальных параметров некоторых процессов и объектов (частных функций), сколько на выработку стратегии их поиска. Цель решебника в том, чтобы помочь студентам овладеть навыками практического использования наиболее распространенных математических методов, широко используемых при решении оптимизационных задач в различных областях человеческой деятельности1.

Решебник содержит материалы по разделам дисциплины «Методы оптимизации», которые обычно рассматриваются на практических занятиях,

иоснован на образовательном контенте, используемом авторами в учебном процессе ЮФУ в ходе профессиональной подготовки бакалавров, инженеров

имагистров.

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

Ил. 14. Библиогр.: 21 назв.

ISBN ___________________

© С.И. Родзин, О.Н. Родзина, 2013 © ЮФУ, 2013

1 Решебник издается при частичной финансовой поддержке г/б НИР «Разработка теории и принципов эволюционной оптимизации и принятия решений на основе методов и моделей адаптивного поведения биологических систем» (№ гос. рег.

01201258583).

2

Содержание

 

ВВЕДЕНИЕ .................................................................................................

5

ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ И КЛАССИФИКАЦИЯ ........................

7

Глоссарий ....................................................................................................

7

Классификация задач оптимизации ........................................................

14

Классификация методов оптимизации ...................................................

16

Вопросы для самоконтроля .....................................................................

18

АНАЛИТИЧЕСКИЕ МЕТОДЫ ОПТИМИЗАЦИИ. ОБЩАЯ ЗАДАЧА

МАТЕМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ .............................

20

Методы безусловной оптимизации.........................................................

20

Необходимые условия существования экстремума функции при

 

различных видах ограничений ................................................................

22

Решение общей задачи математического программирования .............

24

Двойственная задача ................................................................................

28

Вопросы для самоконтроля .....................................................................

32

Упражнения...............................................................................................

33

ОДНОМЕРНЫЙ ПОИСК ........................................................................

35

Критерий эффективности поиска............................................................

36

Пассивный поиск ......................................................................................

39

Последовательный поиск.........................................................................

40

Метод дихотомии………………………………………………. 41

Метод Фибоначчи……………………………………………… 44

Метод золотого сечения……………………………………….. 49

Вопросы для самоконтроля .....................................................................

53

Упражнения...............................................................................................

54

ГРАДИЕНТНЫЙ ПОИСК .......................................................................

56

Градиентные методы в задачах без ограничений ..................................

56

Метод релаксации……………………………………………… 56

Градиентный метод с постоянным шагом……………………. 59

Пропорциональный градиентный метод……………………… 61

Метод наискорейшего подъема (спуска)………………………65

Градиентные методы в задачах с ограничениями .................................

68

Вопросы для самоконтроля .....................................................................

72

Упражнения...............................................................................................

72

МЕТОДЫ СТОХАСТИЧЕСКОГО ПОИСКА........................................

74

Ненаправленный случайный поиск ........................................................

74

Направленный случайный поиск ............................................................

77

Простые методы случайного поиска………………………….. 78

3

Методы случайного поиска с накоплением………………….. 80

Методы случайного поиска с самообучением и с адаптацией 81

Вопросы для самоконтроля .....................................................................

84

ЭВОЛЮЦИОННЫЕ АЛГОРИТМЫ ......................................................

85

Генетические алгоритмы .........................................................................

88

Генетическое программирование............................................................

93

Эволюционные стратегии ........................................................................

97

Эволюционное программирование .......................................................

101

Вопросы для самоконтроля и тесты......................................................

104

Упражнения.............................................................................................

110

ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ ...............................................

112

Графический метод решения задачи линейного программирования 112

Симплекс-метод......................................................................................

114

Процедура замены переменных……………………………… 114

Основные идеи симплекс-метода……………………………. 116

Симплекс-метод. Приведение ЗЛП к каноническому виду...

117

Симплекс-метод. Поиск опорного решения………………… 119

Симплекс-метод. Поиск оптимального решения…………… 122

Двойственность в линейном программировании…………… 127

Транспортная задача ..............................................................................

132

Построения допустимого плана ТЗ………………………….. 134

Построения оптимального плана ТЗ………………………… 136

Вопросы для самоконтроля ...................................................................

141

Упражнения.............................................................................................

143

БИБЛИОГРАФИЧЕСКИЙ СПИСОК ...................................................

146

4

ВВЕДЕНИЕ

Термин «оптимизация» предполагает модификацию системы для улучшения ее эффективности. Получить истинно оптимальную систему удается далеко не всегда, чаще – лишь для одной задачи или группы пользователей. Более того, иногда не существует универсального, хорошо работающего во всех случаях решения. Приходится искать компромиссные решения для оптимизации только ключевых параметров системы. К тому же, согласно законам Парето, ресурсы, требуемые для достижения полностью оптимальной программы, могут превышать будущую выгоду. Т. Хоар впервые сформулировал, а Д. Кнут часто повторял, что «преждевременная оптимизация – это корень всех бед».

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

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

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

Влюбом случае при постановке задачи оптимизации должны присутствовать объект и цели оптимизации, ресурсы оптимизации, возможности количественной оценки оптимизируемой величины и

5

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

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

Предполагается, что читатели знакомы с курсами математического анализа, алгебры, дискретной математики, моделирования. А вообще, следуйте рецепту великого Даламбера: «Идите вперед, а понимание придет потом!»

Решебник подготовлен на основе лекций по курсу «Методы оптимизации», читаемых на кафедре математического обеспечения и применения ЭВМ факультета автоматики и вычислительной техники Южного федерального университета. По каждой теме приводится краткое изложение методов решения оптимизационных задач, примеры решения типовых задач, вопросы, тесты и упражнения для самостоятельной работы. Чтобы научиться решать задачи того или иного типа, рекомендуется сначала изучить план решения в общем виде (алгоритм), затем рассмотреть пример реализации плана в конкретном случае и, по аналогии с ним, решить не менее двух задач из числа предлагаемых для самостоятельного решения.

Решебник является продолжением и дополнением ранее опубликованного учебного пособия [7]. В нем представлен метод Лагранжа для решения классической задачи математического программирования, методы дихотомии, Фибоначчи и золотого сечения, методы градиентного поиска, методы случайного поиска, эволюционные алгоритмы, симплекс-метод и методы решения транспортной задачи. Все методы и алгоритмы иллюстрируются примерами, чтобы помочь студентам овладеть навыками практического использования наиболее распространенных математических методов.

6

ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ И КЛАССИФИКАЦИЯ

ГЛОССАРИЙ

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

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

Алгоритм поисковой оптимизации – способ выбора начальной точки X0 и конкретной совокупность функций {Fr} (см. определение

метода поисковой оптимизации).

Алгоритмы эволюционные (ЭА) – общее название группы алгоритмов эвристического поиска решений, моделирующих процессы природной эволюции.

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

Ген – часть решения (несколько бит).

7

Генетическое программирование (ГП) – разновидность ЭА,

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

Генотип – закодированное решение.

Градиентом целевой функции F(X) в точке Х0=(х01, х02, …, х0n) называется вектор, составленный из первых частных производных

0

0

 

 

0

)

 

dF ( X

0

)

 

функции в этой точке, т.е. F(X

)=gradF(X

)= dF ( X

 

 

 

.

 

 

 

 

 

 

,...,

 

 

 

,...

 

 

dx1

 

 

 

dxi

 

 

 

 

 

 

 

 

 

 

 

 

Антиградиент – противоположен градиенту.

Задача безусловной оптимизации – ограничения на переменные функции оптимизации отсутствуют.

Задача детерминированной оптимизации – задача оптимизации, в

которой критерий оптимальности и функции-ограничения не зависят от случайного вектора внешних параметров.

Задача условной оптимизации – задача, в которой в той или иной форме имеются ограничения на переменные функции оптимизации.

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

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

8

Критерий оптимальности «овражный» – если в своей области допустимых значений имеют место слабые изменения частных производных функции оптимизации по одним направлениям и значительные изменения этих производных по другим направлениям.

Критерий оптимальности выпуклый – если это одномерный критерий оптимальности, определенный на интервале [a, b], а все точки любой дуги его графика лежат под соответствующей хордой или на соответствующей хорде. Если множество допустимых значений вектора варьируемых переменных является выпуклым множеством, то для многомерного критерия оптимальности также определено понятие выпуклого критерия оптимальности, имеющее аналогичный смысл.

Критерий оптимальности детерминированный – если случайный вектор внешних параметров не входит в этот критерий.

Критерий оптимальности сепарабельный – если функция оптимизации является сепарабельной, т.е. представляет собой сумму функций, каждая из которых зависит только от одной компоненты вектора X.

Критерий оптимальности стохастический – если в этот критерий входит случайный вектор внешних параметров.

Критерий оптимальности унимодальный – если одномерный критерий оптимальности определен на интервале [a, b], и на интервале [a, b] существует такая точка y, что на подынтервале [a, y) функция оптимизации убывает, а на подынтервале (y, b] – возрастает.

Локус – местоположение, позиция гена в хромосоме.

Кроссинговер (скрещивание, размножение, crossover) – эволюционный оператор скрещивания в ЭА, когда для производства потомка нужны несколько родителей (обычно два). Скрещивание в разных ЭА определяется по-разному и зависит от представления данных. Главное требование к скрещиванию, чтобы потомок или потомки имели возможность унаследовать черты родителей, «смешав» их каким-либо способом. Для скрещивания обычно выбираются не только самые приспособленные особи, так как главный бич многих ГА – недостаток разнообразия в особях: быстро выделяется один-единственный генотип, который представляет собой локальный экстремум, затем все элементы популяции

9

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

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

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

Метод локальной оптимизации – метод поиска, гарантирующий отыскание только локального экстремума целевой функции.

Метод многопараметрического поиска – метод, ориентированный на решение многомерной задачи оптимизации.

Метод одномерного поиска – метод, ориентированный на решение одномерной задачи оптимизации.

Метод пассивного поиска – если все точки поиска X0, X1, X2,..., Xn

назначаются заранее (до проведения испытаний).

Метод поиска градиентный – см. метод поиска первого порядка. Метод поиска локальный – метод, когда точка поиска Xr

принадлежит некоторой малой окрестности предыдущей точки. Метод поиска многошаговый (k-шаговый метод поиска) – метод при

вычислении координат точки Xr учитывает информацию о k предыдущих испытаниях (k>1).

Метод поиска нулевого порядка (методы прямого поиска) – метод,

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

Метод поиска одношаговый – метод при вычислении координат точки поиска Xr учитывает информацию только об одном (предыдущем) испытании.

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

Метод поиска прямой – см. метод поиска нулевого порядка.

Метод поисковой оптимизации – если задача оптимизации решается с использованием следующей процедуры. Задается точка X0

10