Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
174
Добавлен:
11.05.2015
Размер:
3.8 Mб
Скачать
    1. 6.2 Метод золотого сечения

Он состоит в построении последовательности отрезков [a0,b0], [a1,b1], … стягивающихся к точке минимума функции f(x). На каждом шаге, за исключением первого, вычисления выполняются только раз в точке называемой золотым сечением, выбираемой специальным образом.

Рассмотрим геометрически.

Внутри [a0,b0] выбираем две внутренние точки x1 , x2 и вычисляем f(x1) и f(x2). Из рис. очевидно, что минимум лежит на отрезке [a0,x2], который теперь назовем [a1,b1]: a0 =a1 , x2=b1. Отрезок [a1,b1] теперь также рассматриваем, а именно берем две точки: x1 (которая уже есть) и x3 , находим f(x3). Вновь отбрасываем [a1,x3] и получаем [a2,b2], где a2=x3, b2=b1

Как же выбираются эти внутренние точки на [a1,b1] ? Так, чтобы отношение длины большего подотрезка к длине всего отрезка равнялось отношению длины меньшего отрезка к длине большего отрезка:

l1 l2

l

Отсюда l12 =l2l = l2(l1+l2) =l2l1 +l22

l2l1 +l22l12 = 0 |: l12

Решая квадратное уравнение, получим:

Оставляя положительное значение (плюс в числителе) получаем:

l 2/l1  0,618.

Итак, l1  0,618 l , l 2  0,382 l.

Поскольку заранее не известно, в какой последовательности (l 1 и l2 или l 2 и l1 ) делить интервал неопределенности, то рассматривают внутренние точки, соответствующие двум этим способам деления.

Окончательно нетрудно получить, что координаты точек деления y и z отрезка [ak, bk] на k+1 -м шаге оптимизации (y<z) имеют вид:

y = 0,618ak + 0,382bk

z = 0,382ak + 0,618bk

При этом длина неопределенности равна dk = bkak = 0,618k d0,

где d0 = (b0 – a0).

Процесс оптимизации заканчивают при dk< , где — заданная точность.

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

    1. 6.3 Метод градиентного спуска (уже для нескольких переменных)

Известно: направление наибольшего возрастания функции двух переменных U=f(x,y) характеризуется ее градиентом:

гдеe1 и e2 — единичные орты в направлении координатных осей.

Следовательно, направление, противоположное градиентному, укажет путь, ведущий вниз вдоль наиболее крутой линии.

Суть метода:

  1. Выбираем некоторую точку и вычисляем в ней градиент рассматриваемой функции

  2. Делаем шаг в направлении, обратном градиентному

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

  4. В новой точке вычисляем градиент и снова шаг в обратном направлении

  5. И т.д.

Окончание процесса: когда движение из полученной точки с любым (достаточно малым) шагом приводит к возрастанию функции.

Очевидно, что для вычисления частных производных необходимо знать аналитический вид исследуемой функции. Если же функция задана "точками", то — с помощью приближенной формулы:

где i =1,2,…,n

    1. 6.4 Задача линейного программирования

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

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

Следует найти значения переменных x1, x2,…, xn, которые:

  1. удовлетворяют системе линейных уравнений:

  1. являются неотрицательными, т.е.

x10, x2, …, xn0

  1. обеспечивают наименьшее значение линейной целевой функции

f(x1, x2,…, xn)=c0 + c1x1 + c2x2 + + cnxn

Пример. Транспортная задача.

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

  • с 1-й базы ежедневно вывозиться 12 т

  • со 2-й базы ежедневно вывозиться 15 т

  • завозится в 1-й магазин 8 т

  • завозится во 2-й магазин 9 т

  • завозится в 3-й магазин 10 т

  • стоимость перевозки 1 т товара (в руб.) c баз в магазин дается таблицей:

базы

магазины

1

2

3

I

0,8

1,1

0,9

II

1

0,7

1,2

Решение

Пусть x1, x2, x3 — количество товара с 1-й базы соответственно в 1-й, 2-й и 3-й магазины, а x4, x5, x6 — со 2-й соответственно в 1-й, 2-й и 3-й магазины.

Тогда

А также

xi0, i =1,2,…,6

f =0,8x1 + 1,1x2 +0,9 x3+ x4 +0,7 x5 + 1,2x6

Нужно обеспечить минимум f — стоимости перевозок. Нетрудно видеть, что 5-е уравнение есть комбинация других: если сложить 1-е и 2-е и вычесть 3-е и 4-е, то получим 5-е уравнение.

Итак,

Число неизвестных на 2 больше числа уравнений. Выразим через x1 и x2 все остальные неизвестные.

Но т.к. xi0, то

Или в более компактной форме:

0 x1 8, 0 x2 9, 2 x1+x2 12

Подставим x3, x4, x5 , x6 в f и получим:

f = 22,7 + 0,1 x1 + 0,7 x2

Ясно, что чем меньше x1 и x2 , тем меньше f. Так как

x1 +x2  2  x1 +x2 = 2 — наименьшее,  x2 = 2 — x1 , тогда

f = 24,1 — 0,6 x1

Итак, чем больше x1, тем меньше f . Так как 0 x1 8 и x1 +x2 = 2, значит, x1=2 — наиболее допустимое значение, следовательно, x2=0.

Итак, f = 24,1 — 1,2 =22,9 (руб)

При этом значения параметров:

x1=2, x2=0, x3=12—2=10, x4=8—2=6, x5=9—0=9, x6=0

Таким образом, схема доставки:

2 I база 10

1-й магазин 2-й магазин 3-й магазин

6 9

II база