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

Кудрявтсев Методы оптимизатсии 2015

.pdf
Скачиваний:
12
Добавлен:
12.11.2022
Размер:
1.51 Mб
Скачать

 

2/3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 3.22

Базис

План

 

 

 

 

 

 

 

 

 

 

 

 

 

1/3

0

 

1

 

-1/3

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1

-1

-3

 

0

 

 

0

 

 

1

 

 

:))

-12

2

12

 

0

 

6

 

 

0

 

 

2

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

преобразования Гаусса, введем переменную в базис,

а& выведем из базиса. Новая симплекс-таблица будет иметь вид

табл. 3.23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 3.23

 

Базис

План

 

 

 

 

 

 

 

 

 

1/3

0

-1

1

-1/3

1/3

 

 

 

 

 

 

 

 

 

 

 

 

1

1

3

0

0

 

-1

 

 

:))

-14

0

6

0

6

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

В результате получено псевдоопорное решение, не содержащее отрицательных значений. Согласно доказанной ранее теореме, дан-

ное решение является оптимальным:

.

 

 

1,

0,

 

 

 

 

 

Y 14

 

 

1

 

Значение (минимум) целевой функции

3

.

121

ГЛАВА 4. ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ

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

4.1 Метод отсечения Гомори

Идея метода отсечения Гомори состоит в получении решения задачи линейного программирования (например, симплексметодом), и если оно оказывается нецелочисленным, то строят дополнителное ограничение (отсечение), уменьшающее (отсекающее) область допустимых значений. Отсечение строят так, чтобы оно исключило найденное нецелочисленное решение из допустимой области значений. Далее снова ищут решение и проверяют его на целочисленность.

Итак имеетя задача:

 

 

 

 

 

 

 

 

 

 

 

(4.1)

 

 

 

 

 

 

 

 

 

или

 

 

 

 

(

 

 

, целые

 

 

 

 

 

” max,

 

 

 

 

 

] ,

 

 

0

 

 

 

∑ / ,

 

0 целые, 1, .

(4.2)

Обозначим

 

– оптимальное нецелочисленное решение задачи

(4.1), (4.2).

 

 

 

 

 

 

 

 

 

 

 

Правильным отсечением называется неравенство

 

 

 

 

 

 

 

 

 

 

 

 

,

(4.3)

 

 

 

 

 

 

 

 

если оно удовлетворяет следующим условиям:

 

 

 

 

 

 

 

 

 

@ @

 

1. Для вектора

(т.е. для оптимального нецелочисленного ре-

шения задачи (4.1), (4.2)) неравенство не выполняется, т.е.

 

 

 

 

 

 

 

 

 

 

 

 

 

(4.4)

 

 

 

 

 

 

 

 

2. Для целочисленного, допустимого вектора (т.е. удовлетво-

@ G @ .

ряющего условиям задачи (4.1), (4.2)) неравенство выполняется.

122

Имеет место следующая теорема Гомори.

 

 

 

 

 

 

 

 

 

 

 

 

 

Пусть

 

 

 

– оптимальное нецелочисленное решение задачи (4.1),

 

(4.2).

Если компонента

 

 

 

 

не целая, то неравенство

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"#

 

 

 

 

/ `β

 

a

 

 

 

 

 

 

 

 

 

(4.5)

правильное отсечение.

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Здесь

 

 

– коэффициенты представления базисных переменных

 

через свободные, т.е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

β

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 2 3 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9 α ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^ – множество индексов базисных переменных,

 

e – множество

индексов свободных переменных,

 

 

 

 

 

и

 

 

 

 

– дробные части чи-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сел

 

 

 

и

 

 

 

, соответственно, причем:

 

 

&

 

 

 

\β &

 

 

 

 

 

 

 

 

 

 

 

 

α

 

 

 

β

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α

 

 

c `α

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

 

 

 

 

 

и

 

 

— целые части чисел

 

 

 

 

и

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

2β 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α

 

 

 

 

 

 

β

 

 

 

 

 

 

 

 

 

оно

 

Доказательство. Если (4.5) – правильное отсечение, то для

 

 

не должно выполняться. Действительно, базисное решение равно:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

β ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 2 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

причем

 

 

 

 

 

 

, так

 

как

 

 

– не целое. Следовательно,

 

 

 

 

.

 

 

 

 

 

 

 

 

0,

 

 

 

O 2 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

другой стороны,

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. Получаем про-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

β G 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

& G 0

 

тиворечие

 

 

 

 

 

.

 

 

 

& 0, так как

 

 

 

 

 

 

 

 

Если

 

 

 

 

целочисленное решение и если (4.5) – правильное от-

 

 

 

0

\β &

G 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сечение, то оно должно выполняться. В самом деле, для любого

решения выполняются ограничения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"#

 

 

 

 

 

 

 

 

 

(

 

 

 

 

 

 

β

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

или

 

 

 

9 α bβ c `β a

 

 

9 bα c `α a , - 2 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bβ c 9bα c `β a

 

 

 

9`α a .

 

 

 

 

 

Левая часть данного уравнения – целое число. Следовательно, правая часть – тоже целое,`β aпричем9`α a ] 1,

"#

123

так как

\β &

? 1, \α & 0

 

(поскольку дробная часть всегда поло-

 

 

 

 

 

 

 

 

 

 

жительна),

 

 

 

(по условию). Последнее неравенство можно

записать как 0

 

`β a 9`α

 

a B

 

1.

 

 

 

 

 

 

 

 

& A ∑

 

 

 

&

 

 

 

 

 

 

 

 

 

Y

 

 

 

 

 

и

 

 

"#

 

 

a / 0

 

 

 

 

 

`β a

 

 

 

 

Но так как

 

\β &

 

Y

 

 

 

 

– целое, то

 

 

 

 

 

&

 

 

 

 

 

 

 

"#

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

т.е.

 

 

 

 

 

 

 

 

 

 

неравенство (4.5) справедливо.

 

Вводя дополнительную целочисленную переменную, неравен-

 

 

 

 

 

 

 

 

 

 

`β a ∑"# `α a .

(4.6)

ство (4.5) перепишем в виде равенства

 

 

 

 

Теорама доказана.

На основе теоремы Гомори легко строить правильные отсечения и получать целочисленные решения.

Алгоритм метода Гомори:

1. Решить задачу линейного программирования (4.1), (4.2) без учета целочисленности. Если полученные значения переменных целые, то задача решена. Завершение работы алгоритма.

2. Выбрать в полученном решении переменную с дробной частью (можно с максимальной дробной частью) и построить правильное отсечение. Если выбрана строка i, то в соответ-

свии с теоремой гомори правильное отсечение выглядит как

(4.6):

\β & A ∑Y \α & .

 

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

Врезультате применения данного алгоритма либо будет найдено целочисленное решение, либо будет обнаружена неразрешимость задачи (4.1), (4.2).

124

4.2 Метод ветвей и границ

Для описания метода ветвей и границ введем понятие границы

ной на некотором множестве

 

 

 

 

 

называется такое

,

 

целевой функции.

 

 

 

 

 

 

 

 

 

 

Нижней (верхней) границей целевой функции

 

определен-

 

k

 

 

 

 

 

 

 

 

 

число , что для

 

 

 

 

 

 

 

 

 

 

Граница называется µ

 

 

 

µ .

любого

 

 

 

 

 

неравенство

 

µ

 

 

 

 

 

 

 

 

выполняется k

 

 

,

 

 

 

 

 

достижимой, если найдется такое значение

k , что справедливо

 

 

 

 

 

 

 

 

Идея метода ветвей и

границ состоит в следующем:

 

 

 

 

 

µ.

 

 

1.Множество допустимых решений делят на непересекающиеся подмножества.

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

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

4.Определяют достижимость границы. Если граница достижима, то оптимальное решение найдено, если нет, то переходим к п. 5.

5.Выбранное подмножество снова делят на непересекающиеся подмножества и переходят к п. 2.

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

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

Производительность рабочих представлена в табл. 4.1.

 

 

 

 

Таблица 4.1

 

Таблица производительности рабочих

 

 

Станок 1

Станок 2

Станок 3

Станок 4

Рабочий 1

8

5

6

4

Рабочий 2

5

3

2

2

Рабочий 3

1

7

3

4

Рабочий 4

2

3

8

5

 

 

125

 

 

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

Примем в качестве верхней границы сумму максимальных значений из каждой строкиµ таблицы,8 A 5 Aт7A. 8 28.

Понятно, что данная граница недостижима, так как Рабочий 1 и Рабочий 2 не могут работать за одним станком.

Разделим множество назначений на четыре непересекающихся

подмножества:

(1,1) – Рабочий 1 назначен на станок Станок 1,

(1,2) – Рабочий 1 назначен на станок Станок 2,

(1,3) – Рабочий 1 назначен на станок Станок 3,

(1,4) – Рабочий 1 назначен на станок Станок 4.

Вычислим границу целевой функции для каждого подмножест-

ва. Для подмножества (1,1) вычеркиваем из матрицы строку «Рабочий 1» и столбец «Станок 1» (так как Станок 1 закреплен за

Рабочим 1) и далее находим сумму максимальных значений в каж-

дой из оставшихся строк и столбцов таблицы:

Аналогично

µ) , *

8 A 3 A 7 A 8 26.

 

) , *

5 A 5 A 4 A 8 22,

 

µ) ,!*

 

µ) ,#*

6 A 5 A 7 A 5 23,

µ 4 A 5 A 7 A 8 24.

µ) , * 26. Нетрудно видеть, что данная граница недостижима, по-

Наиболее перспективным подмножеством является (1,1) с

этому разобьем подмножество (1,1) на подмножества: (1,1)(2,2) – (Рабочий 1— Станок 1), (Рабочий 2 — Станок 2);

(1,1)(2,3) – (Рабочий 1 — Станок 1), (Рабочий 2 — Станок 3); (1,1)(2,4) – (Рабочий 1 — Станок 1), (Рабочий 2 — Станок 4)

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

Для подмножества (1,1)(2,2) вычеркиваем из матрицы строки «Рабочий 1», «Рабочий 2» и столбцы «Станок 1», «Станок 2»

(так как Станок 1 закреплен за Рабочим 1, а Станок 2 закреплен за Рабочим 2) и далее находим сумму максимальных значений в

каждой из оставшихсяµ строк и8столбцовA 3 A 4 Aтаблицы:8 23.

) , *) , *

126

Ан алогично

Наиболее перспективным подмножеством является (1,1)(2,4) с

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

Приведенный выше поиск оптимал ьного решения может быть представлен в виде дерева решения (рис. 4.1).

µ=28

 

µ 1=26

µ12=22

µ13=23

µ14=26

µ11,22=23

µ11,23=22

µ11,2 4=25

 

 

 

 

Достижи

 

 

 

 

м ая

 

 

 

 

гран ица

 

 

Рис. 4.1. Дерево решения методом ветвей и границ

127

ГЛАВА 5. ГЕНЕТИЧЕСКИЙ АЛГОРИТМ

Основной особенностью генетических алгоритмов [6] является представление альтернативы решения в виде вектора фиксированной длины, так называемого генома. Над геномом производятся манипуляции: скрещивание и мутации, и в результате появляются новые решения («особи») задачи оптимизации. Оставляя каждый раз лучшие решения (наиболее «сильных особей»), в конце концов приходят к некоторому оптимальному решению.

5.1. Основные определения генетических алгоритмов

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

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

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

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

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

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

128

Итак, в дальнейшем будут использоваться следующие определения.

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

Особь – экземпляр генома.

Популяция – совокупность особей. Обычно рассматривается

фиксированный размер популяции.

Поколение – новая популяция, полученная после очередного

шага генетического алгоритма. Родители – порождающие особи.

Потомки – порожденные особи. Родительская пара, как прави-

ло, порождает пару потомков.

Оператор скрещивания (crossover) – генерация нового генома из геномов двух родителей. Вероятность применения оператора скрещивания является одним из параметров генетического алго-

ритма.

Оператор мутации – появление новой особи за счет изменения некоторого пареметра генома. Вероятность применения оператора

мутации является одним из параметров генетического алгоритма. Оператор отбора – выбор пар родителей для порождения по-

томков.

Оператор редукции – выбор особей для уничтожения. Отбор и уничтожение определяются на основе «качества» особи, которое

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

Критерий останова алгоритма:

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

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

5.2 Этапы работы генетического алгоритма

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

Этап 2. Выбор родителей для размножения с помощью оператора отбора. Вероятность участия особи в отборе определяется по формуле

129

 

 

 

 

d

 

 

 

,

- 1, e,

 

 

вой

}

 

 

 

 

0

 

 

 

 

 

 

– вероятность

участия i-й особи в отборе,

 

– значение целе-

где

 

 

 

 

 

 

 

 

 

функции для i-й особи, – размер популяции.

Этап 3.

Создание

потомков от выбранных пар родителей с по-

 

 

 

 

 

 

 

 

мощью оператора скрещивания (crossover). Обозначим гены из ге-

нома размера n как

j

, тогда геном первого родителя будет выгля-

деть как

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

 

3

 

 

 

 

представим как

 

Геном второго родителя … f

 

… f .

ветственно

 

 

 

 

 

1 2

 

 

3

 

| 21, 13

 

 

 

 

 

 

 

 

 

оператора скрещивания выбирается слу-

Перед выполнением g g … g h

 

… h .

чайное значение

 

 

 

– точка разбиения генома, и соот-

 

геномы родителей разбиваются на две части. После это-

го родители обмениваются вторыми частями геномов, т.е. получа-

 

… h

… h ,

ем геномы потомков вида

 

… f .

Вероятность

g g … g f

 

 

 

1 2 3

 

 

1 2

3

применения оператора скрещивания выбирается от 0,9 до 1,0, чтобы обеспечить постоянное появление новых особей. Для перехода в новую популяцию «лучших особей» прежней попу-

ляции используют «элитизм». Количество элитных особей опреде-

ляется по формуле

i 1 d e,

 

где N – размер популяции, P – вероятность применения оператора скрещивания.

Этап 4. Мутация особей нового поколения. Вероятность мутации достаточно мала. Процесс мутации заключается в замене одного элемента генома на другое значение.

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

Этап 6. Сокращение расширенной популяции до исходного размера с помощью оператора редукции.

Этап 7. Проверка критерия останова работы алгоритма. Если критерий останова не выполнен, то преход к этапу 2. В противном случае – переход к этапу 8.

Этап 8. Поиск лучшей особи в конечной популяции.

130

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