Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ САПРИ 2011.doc
Скачиваний:
11
Добавлен:
23.04.2019
Размер:
1.71 Mб
Скачать

3.6. Нелинейное программирование в задачах конструирования

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

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

при ограничениях

где К —целевая функция (линейная или нелинейная); j = 1, . . ., n, fi(x1, ..., xm) — ограничительные уравнения (линейные или нели­нейные); А—заданные условия задачи; X — элементы решения.

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

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

или

Рассмотрим процедуру решения задачи, если целевая функция имеет вид

К = K (х1, …, xm) → mах, или K = K (X) → mах.

Выберем начальное решение K(X0), т.е. исходную точку дви­жения к экстремуму К (X0) = К (х10, . . ., хm0).

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

Найдем градиент функции К (X0), вычисленный для началь­ной точки решения

Движение к экстремуму производим с определенным ша­гом, т. е. с определенными приращениями переменных. Выбор шага является ответственным этапом в решении. Если вы­брать шаг большим, то можно «перешагнуть» экстремум, а если выбрать шаг малым, то придется долго двигаться к экстремуму. Целесообразно организовать движение с пере­менным шагом, в начале движения применять большой, а за­тем, приближаясь К экстремуму, его уменьшать.

Определим приращение оптимизируемой функции при пер­вом шаге

Значение оптимизируемой функции после первого шага соста­вит К(1)(X1) = К(Х0) + ΔК(1).

Если К(1)(X1) > K(X0), до движение происходит в направле­нии экстремума.

Произведем второй шаг. При этом приращение оптимизируе­мой функции будет равняться величине

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

Определим значение целевой функции после второго шага

К(2)(X2) = К(1)1) + ΔК(2)

Если К(2)2) > K(1)(X1), то движение происходит по направ­лению к экстремуму.

Продолжаем движение до выполнения условия К(m)m) — К(m-1)m-1) = 0, или К(m)m) — К(m-1)m-1) ≤ ξ, где ξ — некоторая окрестность экстремума, удовлетворяющая решение. В точке экстремума ξ = 0.

Рассмотренный алгоритм поиска оптимального значения целевой функции не учитывал ограничений. При решении за­дачи с учетом ограничений используют разновидность гради­ентного метода, называемую методом штрафных функций. Идея метода состоит в переходе к вспомогательной функции R(X), на которую не наложены ограничения R(X)=K(X)+H(X).

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

Штрафную функцию выбирают в виде суммы

Значение а выбирается достаточным для обеспечения необхо­димой чувствительности, когда наложенные ограничения не вы­полняются,

.

Таким образом, при любом нарушении ограничении резуль­тирующее приращение целевой функции будет отрицательным что указывает на выход решений за допустимую область При' этом «отслеживание» за соблюдением ограничений произвоизводится по всем переменным, т.е. по всем элементам решения от i = 1 до i = m.

Других отличий метод штрафных функций от рассматри­ваемого ранее градиентного метода не имеет

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

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

Кроме того, шаг выбирается для всех переменных один и же. Тогда алгоритм вычислений примет вид. При первом шаге

При втором шаге

И т. д.

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

Пример. В процессе изготовления изделия используются два вида оборудования с производительностями' x1 и х2 — соответ­ственно. Производительность оборудования и показатели ка­чества связаны зависимостями.

Для первого вида оборудования K1 = x1 —x12 для второго вида К2 = Зx2 — х22

Требуется найти те значения производительности оборудо­вания, которые обеспечивают максимальное значение качества.

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

Известны ограничительные условия

Кроме того, известна допустимая погрешность в определении экстремума ξ = 0,3.

Р е ш е н и е.

Выберем за исходную точку движения x1 = 0, х2 = 0, шаг приращения функции h выбираем равным ;, т. е. h = 0,3.

Проверяем выполнимость ограничительных условий. Они выполняются, поэтому α1(0) = 0, и, α2(0) = 0.

Находим составляющие градиента

При x1 = 0, х2 = 0 имеем K(0) (x) = 0. Находим значения x1 и x2 после первого шага

.

Определяем значение целевой функции после первого шага

Следовательно, приращение составляет ΔK(1)(x) = 2,1. Заме­чаем, что ΔК(1)(х) > ξ поэтому, проверив выполнимость ограни­чений при x1(1) = 0,3 и x2(1)==0,9, продолжаем движение к экстремуму.

Ограничительные условия выполняются, поэтому а1(1)=0, а1(2)=0

Находим значения х1(2) и х2(2).

Определим значение целевой функции K(2)(x):

Находим ΔК(2)(х)=К(2)(х)-К(1)(х)=2,44—2,1=0,34.

Замечаем, что ΔК(2)(х)>ξ.

Проверяем выполнимость ограничительных уравнений. Они выполняются, т. е. а1(2)=0, а2(2)=0.

Делаем следующий шаг и определяем значения x1(3) и x2(1):

Определяем значение целевой функции после третьего шага cледовательно, ΔК(3)(х)=0,07, что меньше ξ = 0,3.

Остается проверить выполнимость условий при x1(3)=0,45 и x2(3)=1,4.

Первое ограничительное условие не выполняется.

Следовательно, α1(3)>0.

Для получения искомого решения целесообразно на третьем шаге уменьшить h. Допустим h=0,2, тогда

Находим К(3)(х) с учетом изменения шага. К(3)(х)=2,65.

Следовательно, К(3)(х)=0,21. Это меньше ξ=0,3 Снова проверяем ограничительные условия. Они выполняются. Таким образом, задача решена: х1=0,45, х2=36, К (х)=2,65.

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

Как и в предыдущем случае, известна целевая функция и ограничения

Выберем из физических или экономических соображений некоторую исходную точку К(х0), удовлетворяющую ограни­чительным уравнениям fj(xi), и шаг случайного' поиска h. Поскольку заранее неизвестно предпочтительное направление, в котором целесообразно организовать движение, выбираем одинаковые приращения переменных, каждый раз проверяя выполнение ограничительных уравнений и приращение функ­ции, т. е.

Выбираем те xi, которые дали наибольшее приращение це­левой функции, затем при втором шаге даем приращения наи­более предпочтительным переменным.

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

После каждого шага проверяются условия

и т.д

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

Требуется найти максимум целевой функции K=K(x1,...,...,хm)→mах. Ограничения заданы в виде

Предполагается, что K(x1,...,хm) и fj(x1,...,хm) дифференцируемы.

Составим функцию Лагранжа

где αj— неопределенные множители Лагранжа. Количество неизвестных прибавилось, но если мы их найдем и подставим в L то это даст оптимальное решение. Перешли от К к некоторой новой функции L.

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

В этой системе столько неизвестных, сколько уравнений. Следо­вательно, можно найти x1,...,хm, α1,...,αm и, подставив их в функцию Лагранжа, получим оптимальное решение, т. е. Lmax.

Пример. Разрабатываемая аппаратура состоит из двух блоков Б1 и Б2. Заданная стоимость этих блоков равна соот­ветственно A1 и А2. Известен период эксплуатации t и резуль­тирующая интенсивность отказов .

Требуется найти интенсивности отказов блоков, т. с. λ1 и λ2, при которой результирующая стоимость использования аппаратуры за время t минимальна, а интенсивность отказов равна заданной, т. е. λ, тогда

Выразим стоимость использования блоков через их надежность

Запишем целевую функцию в форме Лагранжа

(3.6)

Вычислим производные и приравняем их нулю:

Имеем систему трех уравнений с тремя неизвестными, решив ее, находим λ1, λ2, α, подставив их в (3.6), получим оптимальное решение.