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

Загребаев Методы матпрограммирования 2007

.pdf
Скачиваний:
124
Добавлен:
16.08.2013
Размер:
10.97 Mб
Скачать

Федеральное агентство по образованию

Московский инженерно-физический институт (государственный университет)

А.М. Загребаев, Н.А. Крицына Ю.П. Кулябичев, Ю.Ю. Шумилов

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

В ЗАДАЧАХ ОПТИМИЗАЦИИ СЛОЖНЫХ ТЕХНИЧЕСКИХ СИСТЕМ

Рекомендовано УМО «Ядерные физика и технологии» в качестве учебного пособия

для студентов высших учебных заведений

Москва 2007

УДК 519.85(075) ББК 22.18я7 М 54

Методы математического программирования в задачах оптимизации сложных технических систем: учебное пособие / А.М. Загребаев, Н.А. Крицына,

Ю.П. Кулябичев, Ю.Ю. Шумилов. – М.: МИФИ, 2007. – 332 с.

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

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

Пособие подготовлено в рамках Инновационной образовательной программы.

Рецензент д-р техн. наук, проф. А.Д. Модяев

ISBN 978-5-7262-0807-7

© Московский инженерно-физический институт

 

(государственный университет), 2007

О Г Л А В Л Е Н И Е

ПРЕДИСЛОВИЕ...........................................................................................................

6

ОСНОВНЫЕ ОБОЗНАЧЕНИЯ И ПОНЯТИЯ........................................................

9

Глава 1. ОСНОВЫ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ .........................

15

1.1. Задача линейного программирования и ее геометрический смысл.........

15

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

20

1.2.1. Порядок решения задач линейного программирования

 

 

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

20

1.2.2. Алгоритм решения задач линейного программирования

 

 

с использованием симплекс-таблиц...............................................

25

1.2.3. Примеры решения практических задач

 

 

линейного программирования........................................................

27

1.3. Вырожденные задачи линейного программирования...............................

35

1.3.1. Понятия вырожденности и зацикливания решения задач

 

 

линейного программирования........................................................

35

1.3.2.

Антициклин......................................................................................

39

1.4. Метод искусственного базиса.....................................................................

41

1.4.1.

Особенности метода........................................................................

41

1.4.2. Примеры решения задач с использованием метода

 

 

искусственного базиса.....................................................................

45

1.5. Двойственные задачи линейного программирования...............................

55

1.5.1.

Основные положения ......................................................................

55

1.5.2.

Двойственный симплекс-алгоритм.................................................

60

1.5.3. Примеры решения двойственных задач

 

 

линейного программирования........................................................

62

1.6. Транспортная задача линейного программирования................................

67

1.6.1.

Постановка задачи...........................................................................

67

1.6.2. Нахождение первого опорного плана ............................................

69

1.6.3.

Метод потенциалов..........................................................................

72

1.6.4. Транспортные задачи с неправильным балансом .........................

79

1.7. Дискретное программирование...................................................................

84

1.7.1.

Постановка задачи...........................................................................

84

1.7.2. О решении задач линейного целочисленного

 

 

программирования...........................................................................

88

1.7.3. Метод отсечения. Первый алгоритм Гомори.................................

90

1.7.4. Метод ветвей и границ....................................................................

94

1.7.5.

Метод зондирования решений........................................................

97

1.7.6.

Примеры решения задач

 

 

целочисленного программирования.............................................

100

 

3

 

Глава 2.

ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ В ПРИКЛАДНЫХ

 

 

ЗАДАЧАХ ОПТИМИЗАЦИИ ................................................................

108

2.1.

Применение линейного программирования в теоретико-игровых

 

 

методах исследования сложных систем...................................................

108

 

2.1.1. Теоретические основы матричных игр........................................

108

 

2.1.2. Сведение матричной игры к задаче

 

 

 

линейного программирования......................................................

111

2.2.

Оптимальное распределение запасов реактивности при работе

 

 

системы ядерных реакторов в переменном суточном

 

 

графике нагрузки........................................................................................

114

 

2.2.1.

Физическая постановка задачи.....................................................

114

 

2.2.2. Оптимальное распределение запасов реактивности

 

 

 

в системе двух реакторов с линейной зависимостью

 

 

 

возможной степени снижения мощности

 

 

 

от запасов реактивности................................................................

118

2.3.

Оптимальная кластеризация как задача

 

 

линейного программирования...................................................................

126

 

2.3.1. Математическая постановка задачи кластерного анализа..........

126

 

2.3.2. Математические критерии оптимальной кластеризации............

132

 

2.3.3.

Методы оптимальной кластеризации...........................................

135

 

2.3.4.

Приближенные методы кластеризации........................................

140

 

2.3.5. Зависимость времени и качества кластеризации

 

 

 

от количества объектов, кластеров и размерности

 

 

 

признакового пространства...........................................................

148

Глава 3.

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

160

3.1. Постановка задачи......................................................................................

160

 

3.1.1. Минимизация функции одной переменной.................................

161

 

3.1.2. Поиск отрезка, содержащего точку минимума ...........................

163

3.2. Методы одномерной минимизации..........................................................

164

 

3.2.1. Методы нахождения глобального минимума

 

 

 

унимодальных функций................................................................

165

 

3.2.1.1. Прямые методы минимизации..........................................

165

3.2.1.2Методы минимизации, основанные на использовании

 

производных функций.......................................................

167

3.2.2. Методы поиска глобального минимума

 

многоэкстремальных функций .....................................................

169

3.2.3. Методы минимизации унимодальных функций..........................

169

3.2.3.1.

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

170

3.2.3.2.

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

175

3.2.3.3.

Метод парабол

 

 

(метод полиномиальной аппроксимации) .......................

179

3.3. Минимизация функций без ограничений

 

(безусловная минимизация) ......................................................................

181

3.3.1. Методы нулевого порядка.............................................................

183

3.3.1.1.

Метод покоординатного спуска.......................................

183

 

4

 

 

3.3.1.2.

Метод ортонормальных направлений

 

 

 

 

(метод Розенброка) ............................................................

191

 

3.3.1.3. Метод сопряженных направлений (метод Пауэлла).......

195

 

3.3.2.

Методы первого порядка...............................................................

200

 

3.3.2.1.

Градиентные методы.........................................................

200

 

3.3.2.2.

Метод сопряженных градиентов......................................

210

 

3.3.3.

Методы второго порядка...............................................................

213

 

3.3.3.1. Метод Ньютона (метод Ньютона – Рафсона)..................

213

 

3.3.3.2.

Сходимость метода Ньютона ...........................................

215

 

3.3.3.3. Метод Ньютона с регулировкой шага..............................

216

 

3.3.4. Метод переменной метрики (метод Девидона) ...........................

218

3.4. Минимизация функций с ограничениями................................................

223

 

3.4.1.

Метод штрафных функций ...........................................................

223

 

3.4.2. Метод Фиакко и Мак-Кормика (метод барьерных функций,

 

 

 

метод внутренней точки)...............................................................

226

 

3.4.3.

Методы возможных направлений ................................................

226

 

3.4.4.

Метод проекции градиента...........................................................

231

 

3.4.5. Метод проекции градиента при линейных ограничениях..........

234

 

3.4.6.

Метод условного градиента..........................................................

237

 

3.4.7.

Метод линеаризации.....................................................................

242

 

3.4.8. Другие методы минимизации функции с ограничениями..........

243

 

3.4.9. Способы определения начальной точки......................................

244

Глава 4.

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

 

 

В ПРИКЛАДНЫХ ЗАДАЧАХ ОПТИМИЗАЦИИ..............................

246

4.1.

Применение линейного программирования в теоретико-игровых

 

 

методах исследования сложных систем...................................................

246

 

4.1.1. Теоретические предпосылки решения матричных игр...............

246

 

4.1.2. Основы метода фон Неймана........................................................

248

 

4.1.3.

Алгоритм фон Неймана.................................................................

250

 

4.1.4.

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

 

 

 

в теории биматричных игр............................................................

253

 

4.1.4.1.

Биматричные игры.

 

 

 

 

Основные теоретические сведения.................................

253

 

4.1.4.2.

Нахождение ситуации равновесия

 

 

 

 

в биматричных играх.........................................................

258

 

4.1.4.3. Метод Лемке – Хоусона. Теоретические основы............

267

 

4.1.4.4.

Алгоритм Лемке – Хоусона решения

 

 

 

 

биматричных игр...............................................................

274

4.2. Оптимальное распределение нагрузки в системе ядерных реакторов...

280

 

4.2.1. Оптимальное распределение запасов реактивности

 

 

 

в системе двух реакторов с линейной зависимостью

 

 

 

возможной степени снижения мощности от запасов

 

 

 

реактивности..................................................................................

280

 

4.2.2. Максимально возможный эффект оптимизации.........................

288

4.3. Формирование банковского портфеля максимальной доходности........

290

 

4.3.1. Основные характеристики ценных бумаг....................................

290

 

 

 

5

 

4.3.2. Постановка задачи формирования портфеля

 

максимальной доходности при фиксированной величине

 

риска................................................................................................

295

4.3.3. Решение задачи формирования оптимального портфеля

 

с использованием множителей Лагранжа....................................

297

4.3.4. Пример задачи формирование оптимального портфеля.............

302

4.4. Использование методов нелинейного программирования при оценке

 

параметров формирующего фильтра........................................................

306

4.4.1. Основные свойства формирующих фильтров.............................

306

4.4.2. Корреляционная функция формирующего фильтра

 

второго порядка .............................................................................

311

4.4.3. Задача идентификации коэффициентов формирующего

 

фильтра как задача нелинейного программирования.................

313

4.4.3.1.Алгоритм решения задачи методом Ньютона – Гаусса..315

4.4.3.2.Алгоритм решения задачи

методом покоординатного спуска....................................

319

4.4.4. Пример расчета коэффициентов формирующего фильтра ........

321

4.5.Оптимизация режима работы ядерного реактора в переменном суточном графике нагрузки с учетом возможности

утилизации энергии ...................................................................................

323

4.5.1.

Постановка задачи. ........................................................................

324

4.5.2.

Анализ оптимального решения...........................................................

 

СПИСОК ЛИТЕРАТУРЫ.......................................................................................

323

6

ПРЕДИСЛОВИЕ

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

Задачи, которые решаются с помощью методов математического программирования возникают там, где необходим выбор одного из возможных образов действий (или программ действий). Именно отсюда название «программирование» – в смысле выбор программы действий. Название не имеет ни какого отношения к программированию в смысле написания программ для ЭВМ и возникло раньше, чем ЭВМ. Хотя, надо отметить, что все методы, в конечном счете, рассчитаны на использование ЭВМ. Первые задачи линейного программирования, являющегося основой математического программирования, были рассмотрены русским математиком Канторовичем ещё в 1939 г. (задача выбора наилучшей программы загрузки группы лущильных станков). Однако их практическое решение требовало большого объема вычислений. Создание высоко производительных ЭВМ послужило стимулом развития теории и практики как математического программирования, так и других разделов исследования операций. Суть у всех этих разделов одна – выбор наилучшей программы действий в задачах оптимизации с различными математическими моделями.

Так, в математическом программировании дается функция, которую нужно оптимизировать (т.е. найти экстремум), и ограничения на область изменения переменных; а в оптимальном управления задаётся оптимизируемый функционал и процесс, описываемый с помощью дифференциальных уравнений и т.д.

7

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

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

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

Каждая глава книги содержит большое количество доведенных до конечного результата примеров.

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

8

ОСНОВНЫЕ ОБОЗНАЧЕНИЯ И ПОНЯТИЯ

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

1. Пусть x и y n -мерные векторы

 

 

x

 

y

 

 

1

 

1

 

,

x = M

 

, y = M

 

 

 

 

 

 

xn

 

yn

 

 

x т = (x1 , K, xn ) – транспонированный вектор,

 

 

 

 

n

 

тогда < x, y >= x т y = xi yi – скалярное произведение векторов x

и y .

 

 

 

i=1

 

 

 

 

 

 

 

 

a

K a

 

 

 

 

11

1n

 

 

2.

A = K K K

– матрица размерности m ×n .

 

am1

K amn

 

3.

f (x) = f (x1 , K, x1n ) – функция n переменных.

Функция f (x) имеет 1-ю и 2-ю непрерывные производные на множестве D в n-мерном пространстве R n .

Пусть некоторая точка x 0 D . Тогда f (x) может быть представлена в виде ряда Тейлора относительно этой точки:

f (x1 , K, xn ) = f (x10

n

f

(xi xi0 ) +

, K, xn 0 ) +

x

 

 

 

 

 

 

 

i=1

x0

 

n n

2

f

 

 

 

 

 

 

 

 

 

 

 

+

1 ∑ ∑

 

 

(xi xi0 )(x j x0j ) + 0(

x x 0

2 ) .

xi x j

 

 

2 i=1 j=1

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

0

 

f

 

f

 

f

т

 

4. f (x

 

,

, K,

 

– градиент функции в точке

 

x

x

 

x

 

 

) =

 

 

 

 

 

 

1

 

 

2

 

 

n

x

 

 

 

 

 

 

 

 

 

 

 

0

x 0 D .

Градиент – вектор, который направлен в сторону наискорейшего

роста функции и ортогонален в точке нии) уровня f (x) = const (рис. В.1).

x2

x0 к поверхности (или ли-

линии

уровня

max

f(x)

x1

Рис. В.1. Линии уровня f (x) = const для функции двух переменных

 

 

2 f

 

K

2

f

 

 

 

 

x

x

 

x

x

n

 

 

 

 

 

 

5. H (x 0 ) =

 

 

1

1

 

 

 

1

 

 

– вещественная симметричная

 

K

 

K

 

K

 

 

 

2 f

 

K

2

f

 

 

 

x

n

x

 

x

n

x

n

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

матрица (матрица Гессе).

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

Можно записать

f (x) = f (x 0 )+ < f (x 0 ), (x x 0 ) > +

1

< (x x 0 ),

2

 

 

H (x0 )(x x0 ) > +0( x x0 2 ) .

10