Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Коросов А.В. 2002. Имитационное моделирование в...doc
Скачиваний:
26
Добавлен:
12.09.2019
Размер:
3.07 Mб
Скачать

Модель с несколькими параметрами

Общая структура модели с несколькими параметрами задается формулой:

Y' = f(A, X, Y),

где

Y' = {y1, y2 …} – вычисляемые переменные,

X = {x1, x2 …} – реальные внешние переменные,

A = {a1, a2, … aj, … am} – множество параметров модели,

j = 1,2, …m – индекс модельного параметра.

Отличие расчетных значений от модельных характеризует функция невязки, или целевая функция оптимизации, зависящая от множества параметров F(A) = S(Y' – Y)2.

Задача оптимизации остается той же, что и в однопараметрической модели, – найти такие значения параметров, чтобы целевая функция отличий F(A) обнулилась или перестала существенно изменяться, F(Ai) – F(Ai+1) < .

Также сохраняется прежняя итеративная формула, вычисляющая приблизительные значения каждого (j-го) из модельных параметров на каждом (i-м) шаге итерации:

aji+1 = aji + k · Vj(aji), [4]

где

k – некоторая константа,

i = 1, 2, … n – номер шага итеративного процесса,

j = 1, 2, … m – индекс параметра,

Vj(aji) – необходимое приращение параметра, преобразованная целевая функция, относительная скорость изменения функции невязки при изменении j-го параметра на i-м временном шаге.

В то же время процедура расчета приращения параметра Vj(aji) усложняется, поскольку на каждом i-м шаге оптимизации приходится, во-первых, учитывать влияние многих параметров (A) на одно общее значение целевой функции Fi(A), и, во-вторых, использовать приращение общей целевой функции для вычисления приращений Vj(aji) каждого параметра.

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

Значение приращения каждого j-го параметра на каждом i-м шаге оптимизации вычисляется по формуле

Vj(aji), = Fj'(aji)/–gradF, [5]

где Fj'(aji) – скорость изменения функции невязки при изменении отдельного (j-го) параметра на величину Da, когда остальные параметры остаются неизменными;

gradF – градиент функции невязки, скорость изменения функции невязки при совместном изменении всех параметров на величину своего шага Da.

Прежде чем начать более детальное рассмотрение этой формулы, важно отметить общее сходство с аналогичным выражением [3] для однопараметрической модели. Числитель формулы характеризует направление (знак) и степень (величину) изменения модели при изменении одного j-го параметра на величину Da. Знаменатель формулы характеризует направление (знак) и степень (величину) изменения модели при изменении всех параметров на величину Da.

В целом формула вычисляет относительный вклад отдельного параметра в общее «улучшение» модели (контролируемое целевой функцией невязки F(A)), она позволяет усилить эффективность изменения наиболее «перспективных» параметров (в смысле минимизации целевой функции). Чем более сильное уменьшение функции невязки вызывает изменение параметра на величину Da, тем большей получится величина необходимой прибавки Vj(aji) к этому параметру.

Смысл членов уравнения состоит в следующем.

Числитель Fj'(aji) как скорость изменения функции невязки в математическом плане есть производная от этой функции:

Fj'(aji) = dFj/ da,

которая в дискретном виде приближенных компьютерных расчетов определяется по формуле:

Fj'(aji) = dFj/ da » DFj/Da =

= [F(a1i, a2i, … aji + Da, … ami) – F(a1i, a2i, … aji, … ami)]/ Da,

где aji + Da – новое значение j-го параметра на i-м шаге итерации,

Da – прирост значения параметра за один шаг

(Турчак, 1989, с. 186; Шуп, 1990, с. 169).

Знаменатель, градиент функции невязки, gradF, представляет собой обобщение изменений целевой функции при изменении всех параметров. В геометрическом смысле градиент есть вектор, величина и направления которого равны максимальной скорости увеличения многомерной функции (скалярного поля) (Кудрявцев, Демидович, 1989, с. 397). Если функция задана одним параметром, то градиент в определенной точке ai по знаку и величине равен производной функции в этой точке. Если функция задана по m параметрам, то градиент вычисляется как средняя квадратичная по всем m параметрам:

_________________________________________________

gradF = Ö (dF1/da1)2+ (dF2/da2)2 +… + (dFj/daj)2 +…+ (dFm/dam)2 )

(Баранов, Рябчук, 1988, с. 121). В дискретной форме выражение принимает вид:

__________________________________________________

gradF = Ö (DF1/Da)2+ (DF2/Da)2 +… + (DFj/Da)2 +…+ (DFm/Da)2 ).

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

Порядок итерации остается таким же, но для настройки многопараметрической модели в пределах одного шага итерации приходится делать много промежуточных вычислений. На каждом шаге вычисляются m новых значений aj+Da, m новых значений Fj'(aji), общее значение градиента, m новых значений необходимой прибавки Vj(aji) и, наконец, m новых «улучшенных» значений параметров aj+1. Процесс итеративных расчетов завершается, если выполнилось условие:

F(Ai) – F(Ai+1)< .

Одна из распространенных модификаций градиентного метода названа методом наискорейшего спуска. Имеется в виду спуск к минимуму функции невязки по склону некоего ландшафта возможных значений модельных параметров. В этом случае новое направление градиента на каждом шаге не рассчитывается. Вместо этого до тех пор, пока функция невязки уменьшается, при определении новых значений параметров ai+1 используют одно и то же приращение k · Vj(aji), вычисленное в начале процедуры спуска. При этом изменение целевой функции специально контролируют. Как только она при очередном шаге перестает убывать, проводят переопределение направления дальнейшего спуска (перерасчет приращений Vj(aji) ) и вновь устремляются к минимуму F(A). Скорость схождения рядов a1, a2, … an зависит от величины коэффициента k, который может изменяться программно, существенно ускоряя процесс; для этого разработаны эффективные процедуры (Шуп, 1990).