Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МО практики

.pdf
Скачиваний:
7
Добавлен:
03.05.2015
Размер:
436.09 Кб
Скачать

 

 

 

 

 

 

 

Опять заняты

5

клеток,

 

 

 

 

 

6

 

находим

значение

 

целевой

 

А

0

0

 

0

 

 

 

функции

для

 

найденного

 

 

 

 

 

 

 

 

 

 

 

0

 

-

 

опорного решения:

 

 

 

 

 

0

 

 

 

z1

=1

30 +5 10 +2 50 =180

 

 

 

 

3

 

 

 

 

 

 

 

Замечание.

При

записи

 

 

 

 

 

 

 

 

 

 

 

0

1

0

ответа

(начального

 

опорного

 

 

 

 

 

 

 

0

 

 

 

решения)

последние

столбцы

в

 

 

 

 

5

 

 

 

 

 

 

 

таблицах

2.19

и

2.24

не

 

 

 

 

 

 

 

 

 

 

 

 

5

 

учитываются.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

2

Таблица 2.24.

2.3. Проверка оптимальности решения. Метод потенциалов. Для проверки оптимальности решения введем потенциалы строк (ui, i=1,2,…,M) и столбцов (vj, j=1,2,…,N) – числа, которые определяются системой уравнений uij +vij = cij , составленных по занятым клеткам. Заметим, что занятых клеток

M+N-1, поэтому мы имеем систему из M+N-1 уравнений с M+N неизвестными потенциалами. Это неопределенная система, нас интересует любое частное решение, поэтому любому из потенциалов можно на первом шаге дать значение, равное нулю. Далее последовательно находятся все потенциалы, которые записываются в дополнительный правый столбец и в дополнительную нижнюю строку таблицы транспортной задачи (общую схему см. в таблице

2.25).

21

 

 

B

 

 

Потенциа

B

B1

BM

лы

 

A

 

2

 

 

строк

 

 

 

 

 

 

 

 

с1N

 

A1

с11

с

u1

 

 

12

 

 

 

 

 

 

 

с2N

 

A2

с21

с

u2

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

cM

 

AM

сM

с

 

uM

 

1

M2

 

N

 

 

 

 

 

vN

 

Потенци

v1

v

 

алы

 

2

 

 

 

столбцо

 

 

 

 

 

в

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.25

После определения потенциалов находим оценки для свободных клеток по правилу ij = ui +v j cij , записываем их в верхнюю часть каждой свободной

клетки. Решение является оптимальным, если все найденные оценки неположительны (меньше или равны 0).

Пример 2.5. Проверить оптимальность решения, построенного в примере

2.4 (см. таблицу 2.24).

Решение. Сначала по таблице 2.24 определяем потенциалы.

22

Занятыми являются клетки (1;1), (2;1), (2;2), (2;3), (3;2). С учетом стоимостей, записанных в этих клетках, составляем систему уравнений

u1 +v1 =1u2 +v1 = 2u2 +v2 = 5

u2 +v3 = 0

u +v = 2

3 2

 

 

 

 

 

6

 

 

 

А

 

0

0

 

0

i

 

 

 

 

 

 

 

 

 

0

 

0

 

-

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

1

0

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

5

 

2

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v

 

 

4

 

 

 

 

 

 

 

1

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.26.

Пусть u1 = 0 . Далее последовательно: из первого уравнения v1 =1, из второго уравнения u2 =1, из третьего v2 = 4 , из четвертого v3 = −1, из пятого u3 = −2 . Результаты собраны в таблице 2.26.

Расчет оценок проводится по формуле ij = ui +v j cij непосредственно в таблице 2.27, с учетом найденных выше потенциалов.

Итак, видно, что в ячейке (1;2) оценка положительна, т.е. предложенное решение не является оптимальным.

23

 

А

30

 

60

 

10

 

ui

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0+(-1)-0=-

 

 

 

 

30

 

 

 

0+4-3=1>0

 

1<0

 

0

 

 

 

30

 

-

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

3

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

0

 

10

 

10

 

1

 

 

 

 

 

2

 

5

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-2+1-4=-5<0

 

 

 

-2+(-1)-0=-3<0

 

 

 

 

50

 

-

 

50

 

-

 

-2

 

 

 

 

 

4

 

2

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

vj

 

1

 

4

 

-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.27.

 

 

 

2.4. Оптимизация решения. Одним из основных понятий в этом пункте является цикл – последовательность клеток таблицы транспортной задачи, в которой две и только две соседние клетки расположены в одной строке или в одном столбце, причем первая и последняя клетки также находятся в одной строке или в одном столбце. Известно, что в таблице транспортной задачи, содержащей опорное решение, для любой свободной клетки можно построить единственный цикл, содержащий эту клетку и часть занятых.

Если решение не оптимальное, то среди положительных оценок выбираем наибольшую (в случае равенства наибольших оценок – выбираем ячейку с наименьшей стоимостью). Для выбранной ячейки строим цикл, включающий эту клетку и часть занятых клеток, причем свободная клетка получает знак «+»,

адалее знак чередуется. Для попавших в цикл ячеек определяем величину

θ= min{xij : (i; j) - клетки, вошедшиевциклсознаком"-"}.Перемещаем

перевозки по циклу в соответствии с правилом: в ячейках со знаком «+» θ

добавляется к значению xij, а в ячейках со знаком «-»θ из xij вычитается. При

24

этом клетка, в которой изначально находился объем перевозок, равный θ, становится пустой, а свободная с выбранной «плохой» оценкой - занятой.

Замечание. Если минимальное значение θ достигается в нескольких клетках, то только одна из них становится пустой, а в остальных объем перевозок выставляется равным 0; это позволяет сохранить необходимое количество занятых клеток.

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

Пример 2.6. Найти оптимальное решение для транспортной задачи из примера 2.4.

Решение. Условия были приведены в таблице 2.14. Задача была открытой, поэтому сначала был введен фиктивный потребитель. Начальное опорное решение, построенное методом минимальной стоимости – в таблице 2.24. Таблица 2.27 (с потенциалами и оценками) свидетельствует, что построенное решение не оптимальное, а ячейка (1;2) – единственная ячейка с положительной оценкой. С нее и начнем строить цикл. По таблице 2.27 видно, что его образуют ячейки (1;2), (2;2), (2;1), (1;1). В силу сказанного выше ячейки

 

 

 

 

 

 

 

 

 

 

 

 

(1;2) и

(2;1) будут

иметь знак «+»,

 

В

 

30

 

 

60

 

 

10

 

ячейки

(2;2)

и (1;1) –

знак

«». Объем

 

 

 

 

 

 

 

перевозок в ячейке (2;2) равен 10, в ячейке

 

А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1;1) 30, минимальное значение θ=10. Таким

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

10

 

-

 

 

30

 

 

 

 

 

 

 

 

 

образом,

в

ячейках (1;2)

и

(2;1) объем

 

 

 

 

 

3

0

 

 

 

 

 

 

перевозок будет увеличен на 10, а в ячейках

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

-

 

10

 

 

20

 

 

 

 

(2;2) и (1;1) уменьшен на 10, при этом ячейка

 

 

 

 

 

5

0

 

 

 

 

 

 

(2;2) освободится. Новое

опорное решение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

50

 

-

 

 

50

 

 

 

 

приведено в таблице 2.28.

 

 

 

 

 

 

 

2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.28.

25

Проверим оптимальность этого плана. По занятым клеткам составим систему уравнений для определения потенциалов и решим ее, полагая u1 = 0

(читатель может проделать это самостоятельно). Затем запишем потенциалы (см. таблицу 2.29) и в этой же таблице высчитаем оценки свободных клеток.

 

А

 

 

30

 

 

 

60

 

 

 

 

10

 

ui

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0+(-1)-0<0

 

 

 

 

 

30

 

 

20

 

 

 

10

 

 

 

 

-

 

0

 

 

 

 

 

 

 

 

 

1

 

 

 

 

3

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1+3-5<0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

10

 

 

 

-

 

 

 

 

10

 

1

 

 

 

 

 

 

 

 

 

2

 

 

 

 

5

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1+1-4<0

 

 

 

 

 

 

 

-1+(-1)-0<0

 

 

 

 

 

50

 

 

 

 

-

 

 

 

50

 

 

 

 

-

 

-1

 

 

 

 

 

 

 

 

 

4

 

 

 

 

2

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vj

 

 

 

1

 

 

 

 

3

 

 

 

 

-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.29.

 

 

 

 

 

 

 

Все оценки отрицательны, значит, найденное опорное решение является

 

оптимальным. Для завершения решения отбрасываем столбец с фиктивным

 

 

 

 

 

 

 

 

 

 

 

 

 

потребителем,

записываем

итоговую

 

 

 

 

 

 

30

 

 

60

 

 

 

 

 

А

 

 

 

 

 

 

таблицу

2.30,

соответствующую

исходному

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

условию,

 

и

находим для

построенного

 

 

30

 

20

 

10

 

 

 

 

 

 

 

1

 

3

 

оптимального плана значение целевой функции:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z = f ( X ) =1 10 +3 10 +2 10 +2 50 =160.

 

 

20

 

10

 

-

 

 

 

 

 

 

2

 

5

 

Заметим, что на втором складе осталось 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

единиц продукции,

но это связано с тем, что

 

 

50

 

-

 

50

 

 

 

 

 

 

4

 

2

 

задача была открытой.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.30.

26

2.5. Алгоритм полного решения транспортной задачи. Подводя итог сказанному выше, определим порядок действий при решении транспортной задачи с M поставщиками и N потребителями.

1)Определить, является ли задача закрытой или открытой; в последнем случае ввести фиктивного потребителя или поставщика и построить новую таблицу.

2)Построить начальное опорное решение X1 (рекомендуется метод минимальной стоимости) и убедиться, что занято необходимое число клеток

(M+N-1) – см. п.2.2.

3)Найти потенциалы с помощью занятых клеток из неопределенной системы uij +vij = cij ((i;j) – адреса занятых клеток), а затем – оценки для

свободных клеток ij = ui +v j cij (здесь (i;j) – адреса свободных клеток) – см.

п.2.3.

4) В случае, когда все оценки ij 0 , опорный план является оптимальным, и остается найти значение целевой функции f(X1). Если же среди оценок ij оказались положительные, то выбираем ячейку с наибольшей положительной оценкой, строим для нее цикл и переходим к новому опорному решению X2 – см. п. 2.4. При этом должно выполняться неравенство f(X2)f(X1). Затем возвращаемся к п. 3) алгоритма.

2.6. Задания для самостоятельной работы.

Решить транспортные задачи (определить оптимальное значение целевой функции).

1)

 

 

 

 

2)

 

 

 

 

 

 

 

 

 

 

 

 

 

А

00

0

0

 

А

0

0

90

00

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27

3)

А

00

00

00

00

 

 

 

 

 

00

 

 

 

 

 

 

 

 

 

00

 

 

 

 

 

 

 

 

 

00

 

 

 

 

 

 

 

 

 

00

 

 

 

 

 

 

 

 

 

5)

 

 

 

 

1

 

 

 

А

 

0

30

 

20

80

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7)

 

 

 

 

 

 

 

 

 

 

 

 

А

0

0

 

 

 

 

3

0

9)

В

200

400

400

800

А

 

 

 

 

 

 

 

 

 

200

1

6

9

3

 

 

 

 

 

400

3

2

2

4

 

 

 

 

 

600

4

5

4

7

 

 

 

 

 

200

1

4

3

9

 

 

 

 

 

4)

В

200

300

400

2

А

00

 

 

 

 

 

 

 

 

200

1

3

4

2

 

 

 

 

 

200

1

2

4

1

 

 

 

 

 

300

3

4

5

9

 

 

 

 

 

300

6

3

7

6

 

 

 

 

 

6)

А

0

0

0

0

0

0 0

0

8)

А 1

0

10)

В

300

200

300

100

А

 

 

 

 

 

 

 

 

 

300

3

4

3

1

 

 

 

 

 

200

2

3

5

6

 

 

 

 

 

100

1

2

3

3

 

 

 

 

 

200

4

5

7

9

 

 

 

 

 

28

3. Практическое занятие №3

Решение задач по нелинейной оптимизации. Метод множителей Лагранжа.

2.1. Методы решения задач нелинейной оптимизации

Существующие методы нелинейного программирования можно подразделить на следующие основные классы.

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

Так при отсутствии ограничений одна из простейших разновидностей градиентных методов - метод наискорейшего спуска предлагает выбрать некоторую точку (план) X k и начальный шаг Hk , вычислить градиент функции в выбранной точке gradF(X k ) и осуществить переход по градиенту

(при максимизации) с выбранным шагом.

Если значение функции в новой

точке больше предыдущего, новая точка

принимается за исходную и

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

Есть и более эффективные переходы по градиенту, связанные с выбором различного шага по разным координатам или с автоматическим определением шага (при каждом переходе решается задача поиска экстремума функции в заданном направлении). Однако, гарантии нахождения глобального экстремума нет (при разных начальных точках или шагах можно получить разные решения

для многоэкстремальных функций).

 

 

 

 

 

2.

Методы

Монте-Карло.

Здесь

отыскивается

n -

мерный

параллелепипед,

включающий

в

себя

множество планов,

и затем

моделируются N случайных точек

с

равномерным законом

распределения в

параллелепипеде (практически во всех программных средах предусмотрено наличие соответствующих датчиков псевдослучайных чисел).

29

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

детерминированной сетке, так как их точность имеет порядок 1/

N и не

зависит от размерности задачи. Естественно,

этими методами

никто не

пользуется при ручном счете; они просты для

программной реализации и

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

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

4.Методы выпуклого программирования, реализующие поиск минимума выпуклой функции или максимума вогнутой на выпуклом множестве планов. Если множество планов –выпуклый многогранник, то эти методы допускают использование симплексного метода.

При решении

многих

задач

нелинейного

программирования

определенный эффект дает метод множителей Лагранжа.

 

Пусть требуется

найти

экстремумы

функции

F(X ) при условиях

fi (X )= 0 (i =1...m).

 

 

 

 

 

 

 

m

fi (X)

 

 

Функция Φ(X,λ ) = F(X) + λi

называется функцией Лагранжа

 

 

i = 1

 

 

 

и коэффициенты λi множителями

Лагранжа.

 

Можно доказать,

что необходимым

условием экстремума исходной

задачи является обращение в нуль всех частных производных функции Лагранжа.

Пример 3.1 Найти максимум функции F(X1, X 2 )= X1 + X 2 , при условии

X12 + X 22 =1

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]