Теория принятия решений. Нeлинейное программирование: Безусловная многопараметрическая оптимизация
Начальная страница. Содержание
Введение    Цели и задачи     Методологические основы     Линейное программирование     Нeлинейное программирование     Нeлинейное программирование: Безусловная однопараметрическая оптимизация     Нeлинейное программирование: Безусловная многопараметрическая оптимизация    Нeлинейное программирование: Условная многопараметрическая оптимизация    Целочисленное и дискретное программирование     Динамическое программирование     Принятие решений в условиях неопределенности     Принятие многоцелевых решений     Марковские процессы принятия решений     Литература    



Теоретические разделы

Задания к лабораторно-практическим работам

3.3.1. Постановка задачи и применение в инженерном деле

3.3.2. Методы прямого поиска

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

3.3.4. Контрольные вопросы и задания

Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8

Вариант 9

Вариант 10

Задача решается с использованием пакета MathCAD (лесоинженеры) или любого алгоритмического языка (АСОИУ) с проверкой в пакете EXCEL или LINGO. В отчете отразить постановку задачи а также приложить распечатки созданных программ и тестовых решений.

 


 

 

 

3.3.1. Постановка задачи и применение в инженерном деле

W(x)(r) min, xО RN, при отсутствии ограничений на x,

где

x - вектор управляемых переменных размерности N,

W - скалярная целевая функция.

Пример 3.7. Использование методов оптимизации для анализа и обработки информации

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

Пусть

y=f(x,a 1...a n), (3.6)

где

y - переменная, зависящая от независимой переменной x;

a 1...a n - искомые параметры модели.

Для определения a 1...a n необходимо провести серию экспериментов, в каждом из которых задается значение независимой переменной x и регистрируется значение зависимой переменной y. Результатом серии из М экспериментов является множество пар (xi,yi), i=1,...,M. На основе полученной информации делается попытка подобрать значения a 1...a n таким образом, чтобы обеспечить хорошую точность описания экспериментальных данных с помощью функции f. Наиболее часто используемая на практике мера качества описания экспериментальных данных определяется критерием наименьших квадратов:

L(a 1...a n) = [yi - f(xi, a 1...a n)]2 (r) min. (3.7)

L(a 1...a n) = 0 в случае совпадения экспериментальных данных с теоретической кривой. Следовательно, задачу описания данных можно рассматривать как задачу оптимизации, в которой требуется найти значения параметров a 1...a n, минимизирующие функцию L(a 1...a n).

Установим уравнение регрессии для отражения роста в высоту насаждений с относительно быстрым ростом в молодом возрасте для II бонитета бонитетной шкалы К.Е.Никитина с использованием широко известной в лесном деле для описания процессов роста функции Бакмана

y = a 1 xa 2 xa 3 lgx. (3.8)

В табл. 3.1 приведены результаты измерения высоты в зависимости от возраста насаждения.

Таблица 3.1

Результаты измерений

Пока-затель

Возраст, лет

x

 

10

20

30

40

50

60

70

80

90

100

110

y

5.0

9.0

12.6

15.4

17.8

19.7

21.3

22.7

23.8

24.9

25.9

Значение параметров a 1...a 3 находятся путем минимизации суммы квадратов остатков (2) Постановка задачи в математической форме выглядит следующим образом

[yi - a 1 xia 2 xia 3 lgxi]2 (r) min, (3.9)

где

yi - результат измерения высоты насаждения в эксперименте с номером i.

Функция (3.9) представляет собой функцию трех переменных, которая подлежит минимизации путем соответствующего выбора независимых переменных a 1...a 3. Если бы функция Бакмана точно описывала имеющиеся данные, то минимальное значение функции (3.9) равнялось бы нулю. Однако упрощения, принимаемые при построении уравнения, и наличие экспериментальных ошибок приводят к тому, что построенная модель лишь приближенно описывает процесс роста насаждения.

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

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

Рассматриваемые далее методы применимы также и к задачам максимизации, в которых целевую функцию следует умножить на -1.

 


 

3.3.2. Методы прямого поиска

Здесь предполагается, что W(x) непрерывна и унимодальна. Если рассматриваемые методы применяются для анализа мультимодальных функций, то приходится ограничиваться идентификацией локальных минимумов. Классификация изучаемых методов прямого поиска представлена на рис. К особенностям всех трех методов можно отнести:

 

 

Методы прямого поиска

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эвристические

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

 

 

Теоретические

(основанные на фундаментальных математических теоремах)

 

 

 

 

 

 

 

 

 

Поиск по симплексу

 

 

Сопряженныхнаправлений Пауэлла

 

 

 

 

 

 

 

 

 

 

 

 

Хука-Дживса

 

 

 

 

 

 

 

 

 

 

Рис.3.6. Классификация методов прямого поиска

 

Метод поиска по симплексу

Процедура симплексного метода базируется на регулярном симплексе. Регулярный симплекс в N-мерном пространстве представляет собой многогранник, образованный N+1 равностоящими друг от друга точками - вершинами. Так в задаче с двумя переменными симплексом является равносторонний треугольник, с тремя - тетраэдр.

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

  1. "Накрытие" точки минимума. Если вершина, которой соответствует наибольшее значение целевой функции, построена на предыдущей итерации, то вместо нее берется вершина, которой соответствует следующее по величине значение целевой функции.
  2. Циклическое движение. Если некоторая вершина симплекса не исключается на протяжении более чем М итераций, то необходимо с помощью коэффициента редукции уменьшить размеры симплекса. Новый симплекс следует строить выбрав в качестве базовой точку, которой соответствует минимальное значение целевой функции. В качестве расчетной формулы для расчета числа итераций (с округлением до целого) использовать следующую эмпирическую зависимость: M = 1,65N + 0,05N2, где N - размерность задачи.
  3. Критерий окончания поиска. Поиск завершается, когда или размеры симплекса, или разности между значениями функций в вершинах становятся достаточно малыми в контексте конкретной прикладной задачи. В этой связи необходимо задать величину параметра окончания поиска.

Реализация рассматриваемого алгоритма основана на вычислениях двух типов:

  (3.10)

где

i и j = 1,2 ... N;

xi - координата i - той вершины.

Приращения d 1 и d 2 зависят только от размерности задачи N и выбранного масштабного множителя a (выбирается исходя из характера решаемой задачи) и вычисляются по формулам:

;

.

Пусть xj - точка, подлежащая отражению. Центр тяжести остальных N точек расположен в точке

. (3.11)

Все точки прямой, проходящей через xj и xc, задаются формулой

x = xj + l (xc - xj).

При l =0 получаем исходную точку xj, l =1 - центр тяжести xc.

Для того, чтобы построенный симплекс обладал свойством регулярности, отражение должно быть симметричным, следовательно, l =2, т.е.

xjновая = 2xc - xjпредыдущая.

Итерации продолжаются до тех пор, пока не потребуется применение правил 1, 2, 3.

Преимущества метода:

Недостатки метода:

 

 

Метод поиска Хука-Дживса

Процедура поиска Хука-Дживса представляет собой комбинацию "исследующего поиска" и "ускоряющего поиска по образцу".

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

Поиск по образцу заключается в реализации единственного шага из полученной базовой точки xk вдоль прямой, соединяющей эту точку с предыдущей базовой точкой xk-1. Новая точка образца xk+1 определяется в соответствии с формулой

xk+1 = xk + (xk - xk-1). (3.12)

Как только движение по образцу не приводит к уменьшению целевой функции, точка xk+1 фиксируется в качестве временной базовой точки и вновь проводится исследующий поиск. Если в результате получается точка с меньшим значением целевой функции, чем в точке xk, то она рассматривается как новая базовая точка xk+1.

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

Рис. 3.7. Поиск по методу Хука-Дживса

Алгоритм

Шаг 1. Определить: начальную точку xo; приращения D i; i=1,2,...,N; коэффициент уменьшения шага a >1; параметр окончания поиска e >0.

Шаг 2. Провести исследующий поиск.

Шаг 3. Был ли исследующий поиск удачным: да - к шагу 5; нет - продолжить.

Шаг 4. Проверка на окончание поиска: | | D x| | <e ?

Шаг 5. Провести поиск по образцу: xpk+1 = xk + (xk - xk-1).

Шаг 6. Провести исследующий поиск, используя xpk+1 в качестве базовой точки. Пусть xk+1 - полученная в результате точка.

Шаг 7. W(xk+1)< W(xk)?

Преимущества метода:

Недостатки:

 

 

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

 

Метод ориентирован на решение задач с квадратичными целевыми функциями и основывается на фундаментальных теоретических результатах.

Основная идея метода заключается в том, что если построена система сопряженных направлений, то точку оптимума квадратичной функции W(x) можно найти в результате реализации в точности N2 (N - размерность задачи) одномерных поисков. Система сопряженных направлений можно определить на основе следующего элементарного свойства квадратичных функций.

Свойство параллельного подпространства. Рассмотрим двухмерное пространство (рис.3.8). Пусть e1=[1,0]T; e2=[0,1]T - единичные координатные вектора. При заданной начальной точке xo вычислим значение l o, которому соответствует минимум целевой функции W(xo+ l o e1). Положим x1 = xo + l o e1 и вычислим значение l 1, которому соответствует минимум W(x1+ l 1 e2). Далее вычислим значение l 2 , минимум W(xo + l o e1) и положим x3 = x2 + l 2 e1. При этом направление x3-x1 и e1 оказываются сопряженными а поиск, проводимый из точки x1 или x3 в направлении x1-x3 обеспечивает получение точки минимума всего за 4 одномерных поисков.

Рис.3.8. Двухмерный поиск по методу сопряженных направлений Пауэлла

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

Сначала поиск осуществляется вдоль трех координатных направлений e1, e2 и e3. Затем эти направления заменяются вновь построенными сопряженными направлениями. Серия одномерных поисков из xo проводится в направлении e3, затем e1, e2 и снова e3. В результате построены сопряженные направления e3 и x4-x1. Направление e1 заменяется новым направлением поиска 4. Следующая серия поисков проводится в направлении 4, затем e2, e3 и снова 4. Согласно свойству параллельного подпространства новое направление x8-x5, 5, сопряжено не только с 4, но и с e3. Следовательно, e3, x4-x5 и x8-x5 образуют систему взаимно сопряженных направлений. Поэтому, если провести дополнительный поиск из точки x8 в направлении x8-x5, то будет найдена точка x9, в которой должен достигаться оптимум квадратичной функции трех переменных W(x), поскольку поиск последовательно осуществлялся в трех взаимно сопряженных направлениях.

Рис. 3.9. Трехмерный поиск по методу сопряженных направлений Пауэлла

Алгоритм метода сопряженных направлений Пауэлла

Шаг 1. Задать начальную точку xo и систему N линейно независимых направлений si ; целесообразно принять si = ei, i=1,2,...,N.

Шаг 2. Минимизировать W(x) при последовательном движении по N+1 направлениям; при этом полученная ранее точка минимума берется в качестве исходной, а направление sN используется как при первом, так и при последнем поиске.

Шаг 3. Определить новое сопряженное направление с помощью обобщенного свойства параллельного подпространства.

Шаг 4. Заменить s1 на s2 и так далее. Заменить sN сопряженным направлением. Перейти к шагу 2.

Для применения метода на практике его необходимо дополнить процедурами проверки сходимости и линейной независимости системы направлений. Если целевая функция квадратична и обладает минимумом, то точка минимума находится в результате реализации N циклов, включающих шаги 2-4. Здесь N - число переменных. Если же функция W(x) не является квадратичной, то требуется более чем N циклов.


 

 

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

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

Все методы основаны на итерационной процедуре, реализуемой в соответствии с формулой

xk+1 = xk + a k s(xk), (13)

где

xk - текущее приближение к решению x*;

a k - параметр, характеризующий длину шага,

s(xk) - направление поиска в N - мерном пространстве управляемых переменных xi, i = 1, 2,..., N.

Способ определения a k и s(xk) на каждой итерации связан с особенностями применяемого метода. Обычно выбор a k осуществляется путем решения задачи минимизации W(x) в направлении s(xk). Поэтому при реализации градиентных необходимо использовать эффективные алгоритмы одномерной минимизации.

 

Простейший градиентный метод

В основе метода лежит следующая итерационная модификация формулы (3.13):

xk+1 = xk - a С W(xk), (3.14)

где

a - заданный положительный коэффициент;

D W(xk) - градиент целевой функции первого порядка.

Недостатки:

 

 

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

Свободен от первого недостатка простейшего градиентного метода, т.к. a k вычисляется путем решения задачи минимизации D W(xk) вдоль направления D W(xk) с помощью одного из методов одномерной оптимизации

xk+1 = xk - a k С W(xk). (3.15)

Данный метод иногда называют методом Коши.

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

 

Методы Ньютона

Последовательное применение схемы квадратичной аппроксимации приводит к реализации оптимизационного метода Ньютона по формуле

xk+1 = xk - С 2W(xk)-1 С W(xk). (3.16)

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

xk+1 = xk - a k С 2W(xk)-1 С W(xk), (3.17)

где

a k - параметр, выбираемый таким образом, чтобы W(xk+1)(r) min.

 


 

3.3.4. Контрольные вопросы и задания

 

  1. Приведите математическую формулировку основной задачи безусловной многопараметрической оптимизации.
  2. Опишите две ситуации, в которых метод поиска по симплексу оказывается более предпочтительным, чем метод сопряженных направлений Пауэлла.
  3. Почему квадратичные функции используются как основа для построения алгоритмов нелинейной оптимизации?


Определить место строительства предприятия между двумя пунктами сбыта, расстояние между которыми 200 км, и размер поставок в каждый из пунктов, если выпуск продукции завода составляет 150 единиц. Зависимость продажной цены единицы продукции в каждом из пунктов сбыта от объема поставок Vi и затрат на перевозку единицы продукции от расстояния Si (в км) между предприятием и пунктом сбыта заданы в табл. 3.3.

Таблица 3.3.

Вариант

Метод

поиска

.Пункт сбыта

. Продажная цена, руб

Затраты на

перевозку, руб

1

Поиск по симплексу

1

2

450-1,0*V1

420-0,8*V2

15+0,1*S1

15+0,05*S2

2

Хука-Дживса

1

2

380-1,3*V1

330-0,7*V2

18+0,1*S1

18+0,08*S2

3

Пауэлла

1

2

230-0,9*V1

210-0,6*V2

19+0,08*S1

19+0,04*S2

 


 

 

Из теоретических соображений известно, что связь между зависимой переменной y и переменной x можно описать двухпараметрической функцией y(x)=(a*x)/(1+b*x). Значения параметров a и b определяются в соответствии с критерием наименьших квадратов на основе экспериментальных данных, представленных в табл. 3.6. Найти a и b.

Таблица 3.6.

Вари-ант

Метод

y

1,0

2,0

3,0

4,0

4

Симплекс

x

1,05

1,25

1,55

1,59

5

Хука-Дживса

x

1,04

1,27

1,51

1,56

6

Пауэлла

x

1,01

1,21

1,49

1,55

 


 

 

Требуется переправить V м3 опилок деревообрабатывающего предприятия на целлюлозно-бумажный комбинат. Для перевозки груза необходимо сконструировать герметичный контейнер таким образом, чтобы минимизировать полные затраты на перевозку груза. Известны следующие данные (табл. 3.7): стоимость каждого рейса p, руб; удельная стоимость материала днища a, руб/м2, боковых стенок b, руб/м2; крышки с, руб/м2; стоимость погонного метра сварного шва d руб.

Таблица 3.7.

Вари-ант

Метод

V

p

a

b

c

d

7

Симплекс

400

453

53,2

21,2

5,4

1,5

8

Хука-Дживса

600

402

50,8

20,8

10,6

3,5

9

Пауэлла

900

351

49,5

19,5

7,4

2,7


 

  

На рис. 3.8 изображена система подачи газа по трубам, в которой компрессорные станции расположены на расстоянии L километров друг от друга. Суммарные затраты на эксплуатацию газопровода в течении года определяются функцией:

где

D - внутренний диаметр труб (см);

P1 - давление на выходе компрессора (кПа);

L - расстояние между компрессорными станциями (км);

r=P1/P2 - отношение давлений на выходе и входе компрессора.

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

2/ч.),

где - коэффициент трения.

Пусть расход газа составляет 3/день). Воспользовавшись 2-ой формулой, выразите P1 и подставьте в первую.

 

 


 

 

 

 

 

 

 

 

 

 

 

 




Начальная страница. Содержание
Введение    Цели и задачи     Методологические основы     Линейное программирование     Нeлинейное программирование     Нeлинейное программирование: Безусловная однопараметрическая оптимизация     Нeлинейное программирование: Безусловная многопараметрическая оптимизация    Нeлинейное программирование: Условная многопараметрическая оптимизация    Целочисленное и дискретное программирование     Динамическое программирование     Принятие решений в условиях неопределенности     Принятие многоцелевых решений     Марковские процессы принятия решений     Литература