Методы учета ограничений в задачах нелинейного программирования, страница 2

вернуться к началу

2. Учет ограничений в форме неравенств.

Общую задачу нелинейного программирования запишем следующим образом:

http://esls.susu.ac.ru/download/ACS/labs/lab_3_2.gifhttp://esls.susu.ac.ru/download/ACS/labs/lab_3_11.gifhttp://esls.susu.ac.ru/download/ACS/labs/lab_3_12.gifhttp://esls.susu.ac.ru/download/ACS/labs/lab_3_34.gif

где X=(X1,X2,...,Xn) – вектор неизвестных, G(Х)={g1(X), g2(X),...,gm(X)}, H(X)={h1(X),X),…,hk(X)} – вектор-функции ограничений.

Наибольшие трудности возникают при учете ограничений H(X) в форме неравенств. Простой и очевидный на первый взгляд метод, заключающийся в поиске решения без учета ограничений, последующей проверке их выполнения и закреплении переменных, вышедших за допустимые пределы, на границе, часто дает ложные результаты.

Пример подобной ситуации приведен на рис 3.1. Здесь безусловный минимум лежит в точке X=(4,4). Проверка ограничений показывает, что h1(X), h2(X) нарушены. Граничные значения х1=3.8 и х2=2.8 определяют ложное решение. Фактическое решение лежит в точке X=(3.05,2.8), где ограничения h1(X), h3(X) выполняются в форме неравенств и называются пассивными, а ограничение h2(X) в этой точке является активным.

В проблеме учета ограничений в форме неравенств важную роль играет теорема Куна-Такера (теорема о седловой точке).

вернуться к началу

2.1. Теорема Kуна-Такера.

Пусть дана задача

http://esls.susu.ac.ru/download/ACS/labs/lab_3_35.gifhttp://esls.susu.ac.ru/download/ACS/labs/lab_3_36.gif(3-1)

Составим функцию Лагранжа для этой задачи.

http://esls.susu.ac.ru/download/ACS/labs/lab_3_37.gif

Если допустимое множество X, определяемое вектор-функцией H(X)>=0, не пустое, то имеет место следующая теорема:

Вектор Xo тогда и только тогда является решением задачи (1), когда существует такой вектор Uo, что при Xo>=0 и Uo>=0 для всех X>=0 и U>= 0 справедливо

http://esls.susu.ac.ru/download/ACS/labs/lab_3_38.gif(3-2)

Точка (Xo,Uo) называется седловой точкой, т.к. здесь обеспечивается минимум по X и максимум по U.

Если функции F(X), hj(X) дифференцируемы, то (3-2) можно заменить условиями Kуна-Такера для всех <>Xio>=0 и Ujo>= 0

http://esls.susu.ac.ru/download/ACS/labs/lab_3_39.gifhttp://esls.susu.ac.ru/download/ACS/labs/lab_3_40.gif;

http://esls.susu.ac.ru/download/ACS/labs/lab_3_41.gifи http://esls.susu.ac.ru/download/ACS/labs/lab_3_42.gif.

вернуться к началу

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

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

Пусть имеется исходная задача

http://esls.susu.ac.ru/download/ACS/labs/lab_3_2.gifhttp://esls.susu.ac.ru/download/ACS/labs/lab_3_11.gifhttp://esls.susu.ac.ru/download/ACS/labs/lab_3_12.gifhttp://esls.susu.ac.ru/download/ACS/labs/lab_3_34.gif

Новая целевая функция имеет вид:

http://esls.susu.ac.ru/download/ACS/labs/lab_3_43.gif

где Sj, Si – коэффициенты, определяющие жесткость ограничений; di - коэффициент, равный 1, если hi(X)< 0, и 0 в остальных случаях.

В допустимой области штрафы, определяемые функциями hi(X) и >gj(X), отсутствуют. За пределами ее они резко возрастают, увеличивая Р(X), что делает выход за границу невыгодным.

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

Важную роль в методе штрафных функций играют коэффициенты жесткости ограничений. С ростом S возрастает точность выполнения ограничений, но ухудшается сходимость, т.к. Р(X) вблизи границы приобретает характер "овражной" функции.

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

http://esls.susu.ac.ru/download/ACS/labs/lab_3_44.gif

методом случайного поиска (рис 3.3).

http://esls.susu.ac.ru/download/ACS/labs/3_2.gif

Рис.3.3

вернуться к началу

Программное обеспечение

Основы нелинейного программирования и методы учета ограничений в примерах и иллюстрациях представлены в программе ACYLB3.exe в объеме, необходимом для самостоятельного изучения проблемы.

вернуться к началу

Порядок выполнения работы

  1. Запустить  Start.bat и ознакомиться с особенностями и методами учета ограничений в задачах нелинейного программирования.
  2. Найти методом прямой оптимизации оптимальную нагрузку без учета потерь в сети 3-х ТЭС с расходными характеристиками: http://esls.susu.ac.ru/download/ACS/labs/lab_3_45.gifпри заданной общей нагрузке Ро (Табл.3.1).
  3. При той же нагрузке найти методом приведенного градиента оптимальную мощность 2-х ТЭС, расходные характеристики которых 
  4. Решить задачу 2 методом множителей Лагранжа.
  5. Оценить влияние Sна жесткость выполнения ограничений в методе штрафных функций.
  6. Построить траектории решения рассмотренной в 2.2 задачи методами нулевого порядка с учетом ограничений по методу штрафных функций при заданных Хо и dX.
  7. Все этапы исследований отразить в отчете.

Таблица 3.1.

P0

X0

dX

1

200

55,22

10

2

190

60,35

10

3

180

55,40

6

4

170

60,66

6

5

160

65,25

4

6

150

66,50

4

7

140

63,28

8

8

130

50,45

8

вернуться к началу

Контрольные вопросы

  1. Привести примеры математических моделей, в которых учитываются ограничения.
  2. Какой вид имеет допустимая область при разных типах ограничений?
  3. Как учитываются ограничения-равенства в методе прямой оптимизации?
  4. Как учитываются ограничения-равенства в методе прямой оптимизации?
  5. Как меняется длина приведенного градиента по мере приближения к решению?
  6. Чем определяется количество множителей Лагранжа?
  7. Почему при использовании штрафных функций решение лежит за границей допустимой области?
  8. Как должен выбираться шаг в методах скорейшего поиска с учетом ограничений?

вернуться к началу