Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
motc / 2.doc
Скачиваний:
121
Добавлен:
10.12.2013
Размер:
432.64 Кб
Скачать

76

Составим симплекс-таблицу:

х1

х2

1

2

v1

v2

w3

2

-2

1

-1

-1

0

2

w4

-2

4

1

2

0

-1

6

w1

1

1

0

0

0

0

2

w2

-1

2

0

0

0

0

2

0

-2

-2

-1

1

1

-8

При переходе от одной симплекс-таблицы к другой необходимо проверять выполнение ограничений-равенств. В данном случае, 1 и 2 нельзя переводить из свободных в базисные.

Решение заканчивается, когда w3 = w4 = 0 и в правом нижнем углу таблицы стоит 0.

Ответ: х1 = 0,8, х2 = 1,2 .

3.7. Метод условного градиента

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

Рассмотрим сущность метода на примере функции двух переменных (рис. 3.7).

grad f ()

x2

ЦФ

x1

Рис. 3.7. Метод условного градиента

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

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

1. f (x1 , x2 , , xn )  min(max).

2. gi (x1 , x2 , , xn)  0 , i = ,

x1 , x2 , , xn  0. (3.24)

3. = (x10 , x20 , , xn0) – начальная точка приближения к экстремуму.

4.  – точность нахождения экстремума.

Алгоритм метода (рассматривается для i-го шага):

1. Находим grad f = ( f / x1 , f / x2 , , f / xn).

2. Составляем вспомогательную функцию Z:

Z = x1 f / x1 +  + xn f / x n . (3.25)

3. Решаем задачу линейного программирования:

Zmin (max)

gi (x1 , x2 , , xn )  0 , i = , (3.26)

x1 , x2 , , x n  0 .

Положим, решением задачи линейного программирования является вектор: = (z1i , z 2i , , z n i ), где zji значения переменных xj на i-м шаге приближения к экстремуму (решение задачи (3.26)).

4. Находим новую точку приближения к экстремуму:

= +(-).

x1i+1 = x1i + (z1i - x1i ),

 (3.27)

xni+1 = xni + (zni - xni ).

5. Выбираем шаг .

Возможны два варианта:

- шаг фиксирован (не изменяется на протяжении всего решения),

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

6. Проверяем критерии окончания счета. Используются те же критерии, что и в задачах на поиск безусловного экстремума.

Пример 3.12.

f(x1, x2)= 2x1 + 4x2 - x12 - 2x22  max ,

x1 + 2x2  8,

2x1 - x2  12,

x1 , x2  0.

= (0, 0), = 0,01.

Решение:

grad f(x1, x2) = ( f / x1 ,  f / x2 ) = (2 - 2x1 , 4 - 4x2),

Z = x1 f / x1 + x2  f / x2 ,

х1=0, х2=0 х1=0, х2=0

Z = 2x1 + 4x2  max,

x1+ 2x2  8,

2x1 - x2  12,

x1 , x2  0.

Решив эту задачу линейного программирования, получаем = (0, 4).

Далее находим выражение для подсчета координат новой точки приближения к экстремуму:

x11 = x10 + 1(z10 - x10 ) = 0 + 1 0 =0 ,

x21 = x20 + 1(z20 - x20 ) = 0 + 1 4 = 41 .

Для нахождения величины шага подставим x11 и x21 в функцию f:

f (1) = 161 - 3212,

f /1 = 16 - 641 = 0, 1 = 0,25,

x11 = 0, x21 = 4  0,25 = 1 .

Проверка критерия окончания счета: f () -f ()= 2 > , следовательно, требуется выполнить еще шаг.

Соседние файлы в папке motc