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

книги / Основы САПР. CAD CAM CAE

.pdf
Скачиваний:
13
Добавлен:
19.11.2023
Размер:
29.79 Mб
Скачать

282

Глава 9. Оnтимизация

Рис. 9.7. Решение задачи коммивояжера для 100 городов

0.2 0.4 0.6 0.8 1.0 о

0.2 0.4 0.6 0.8 1.0

Рис. 9.8. Решение задачи коммивояжера для 400 городов, полученное с nомощью метода модельной закалки

Оптимальная компоновка

Задача опти.малыюй компоновки (optimal nesting) состоит в минимизаци11 ис­

пользования исходных листоn (заготовок) при производстве деталей разЛii'-fной

формы. Типичные ограничения задачи состоят· в том, что формы не должнь1 пе­

рекрываться, но при этом должны целиком располагаться внутри границ 1II1cтa.

9.4. Метод модельной закалки

283

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

быть записана в следующем виде:

F(5) =отходы+ w х перекрытие.

Здесь 5 - текущая конфигурация компоновки, отходы - количество отходов

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

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

конечной конфигурации. Заметьте, что здесь мы, по сути, используем внутрен­ нюю штрафную функцию из раздела 9.2.

Конфигурация 5', соседняя с текущей конфигурацией 5, может быть построена небольшим возмущением текущей конфигурации. Например, можно случайным

образом выбрать одну деталь из всех размещенных на листе и немного изменить ее

положение и ориентацию. Изменение конфигурации с 5 на 5' называется пере­ мещением и выполняется в соответствии с алгоритмом Метрополиса (листинг 9.2).

Результаты размещения деталей на стальном листе для последовательного их из­

готовления демонстрирует рис. 9.9. Примеры размещения 36 выкроек на отрезе

постоянной ширины и на отрезе неправилыюй формы с внутренним дефектом

приведены на рис. 9.10 и рис. 9.11. Дефектная область показана на рис. 9.11 чер­

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

типа часто возникают при отрезании заготовок для пошива одежды из кожи.

7

Доля отходов= 17,5%

ДОЛЯ ОТХОДОВ = 28,4%

Рис. 9.9. Оптимальное размещение деталей для последовательной вырубки

Рис. 9.1 О. Размещение 36 выкроек на пр~щоугольном отрезе

284

Глава 9. Оnтиt1иэация

 

 

 

Рис. 9. 11. Размещение 36 выкроек на отрезе неправильной формы с внутренним дефектом

9.5. Генетические алгоритмы

Генетическими алzоритмам.и (genetic algorithms) называется группа адаптивных

методов, которые могут использоваться для решения задач поиска и оптимиза­

ции. Они происходят от тех же основ, что и естественная эволюция и генетика.

Популяции живых существ развиваются в течение многих поколений в соответ­

ствии с принципами естественного отбора и 4Выживания наиболее приспособ­

ленных>>. Имитируя этот процесс, генетические алгоритмы способны решать ре­ альные задачи, при условии, что те будут правильно закодированы [13].

Сила генетических алгоритмов в их устойчивости и в способности решать зада­

чи самых разных типов, в том числе и трудноразрешимые другими методами.

Хотя генетические алгоритмы не обязательно находят глобально-оптимальное

решение, они обычно 4достаточно быстро~ находят •достаточно хорошие~ реше­

ния. Разумеется, специализированные методы, ориентированные на конкретные

задачи, по сравнению с генетическими алгоритмами почти наверняка дадут луч·

шую скорость и точность конечного результата. Превосходство генетических

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

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

вершенствовать, сскрестив• их с генетическими алгоритмами [56].

Основные принципы генетических алгоритмов были заложены Холландам [71],

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

словливается эволюция в живых популяциях. В природе выживают те, кто луч­

ше приспособлен к конкуренции за ограниченные ресурсы, поэтому адаптация к

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

видуумов любого вида. Уникальные особенности индивидуума определяют его жизнеспособность, но сами они, в сnою очередь, определяются генаr.w индиви­ дуума. Каждой особенности сопоставляется элемент наследственной информа­

ции - ген. Наборы генов, определяющих особенности организма, объединяются

вхромосомы. Процесс воспроизводства создает разнообразие в генофонде, а на·

чинается оно с рекомбинации хромосом родительских особей в момент объеди­

нения их половых клеток. Из исходных комбинаций генов создаются новые,

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

хромосомами, что дает хромосомы с новыми свойствами. Этот процесс называется

9.5. Гене;rические алгоритмы

285

кроссовером (crossover). Таким образом осущечвляется поиск наиболее правиль­

ной комбинации генов, по которой был бы построен более совершенный организм. Отбор и кроссовер обеспечивают постоянную эволюцию генотипа и

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

В начале 70-х rr. Холланд предложил обозначать термином 4rенетические алгорит­

мы~ программы, имитирующие природный эволюционный процесс. Генетические

алгоритмы работают с популяцией потенциальных решений задачи оптимизации

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

сопоставляется определенное значение «приспособленности~. отражающее каче­

ство данного решения по сравнению с другими решениями той же популяции.

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

строк. Дополнительная операция, называемая мутацией, вызывает спорадиче­

ские случайные изменения битов строк. Мутация тоже существует в природе,

где она обеспечивает восстановление утраченного генетического материала [56].

9.5.1. Основные принципы

В литературе генетический алгоритм Халланда обычно называется простым ге­ иетическим алгориm.~~tом (siтple genetic a/gorithт - SGA). В основе SGA лежит

популяция двоичных строк. Каждая такая строка, состоящая из нулей и единиц, кодирует решение задачи оптимизации. По сути, она эквивалентна конфигура­ ции в методе модельной закалки. Алгоритм начинает работу с определенного коли­ чества строк, которые называются популяцией первого поколения. При помощи генетических операторов (мутации и кроссовера) алгоритм создает следующее поколение из строк текущеj:'r популяции. Преимущества в воспроизводстве име­

ют более совершенные строки, так что в следующем поколении преобладает их

«потомство». Цикл воспроизводства повторяется до тех пор, пока не выполнится

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

ся в последующих разделах.

Механизм кодирования

Структура генетического алгоритма во многом определяется механизмом коди­

рования, используемым для представления переменных задачи оптимизации.

Эти переменвые (называемые генами) объединяются вместе и образуют строку

значений (называемую хромосомой). Например, если мы должны найти макси­

мум функции трех переменных F(x, у, z), мы можем представить каждую пере­

менную 10-разрядным двоичным числом (при условии правильного выбора мас­ штаба). При этом хромосома будет содержать три гена, а ее длина будет равна 30

двоичным разрядам (битам).

286

 

 

Глава 9. Оnти~~о~tiэация

 

5

4.85

13

 

 

t

t

t

 

Параметр #1

Параметр#2

Параметр#З

101 10111100101 101101

t

101011110010101101

Рис. 9. 12. Процесс кодирования переменных в хромосоме

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

дающий определенным набором свойств (фенотипо.м). Те же термины приме­

няются и в теории генетических алгоритмов. Например, в задаче конструирования

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

ся характеристиками фенотипа, которые могут быть определены по генотипу (вы­

числены по имеющимся хромосомам при помощи функции приспособленности).

Переменные оптимизации представляются строкой или хромосомой, несмотря

на то что они могут принимать непрерывный ряд вещественных значений. Ши­

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

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

положим, например, что непрерывная переменная оптимизации определена на

отрезке [-1,28; 1,28]. Мы можем закодировать такую переменную с точностью до двух знаков после запятой, умножив ее вещественное значение на 100 и отбро­

сив дробную часть результата. Таким образом, значение переменной будет ото­ бражено на целые числа от -128 до +128. Двоичное представление целого числа вычислить очень легко (листинг 9.3) [33].

Лисrинг 9.3. Общий вид генетического алгоритма

BEGIN /* Генетический алгоритм */

Создать начальную популяцию:

Рассчитать приспособленность каждого индивидуума:

WHILE NOT расчет закончен 00

BEGIN /* порождение нового поколения */ FOR размер популяции/2 DO

BEGIN /* Цикл воспроизводства */

Выбрать двух индивидуумов из предыдущего поколения для размножения: /* Преимущества у более приспособленных */ Рекомбинировать хромосомы индивидуумов:

Рассчитать приспособленность потомка: Добавить потомка в новую популяцию:

END

IF популяция конвергировала THEN

расчет закончен := TRUE:

END

END

9.5. Генетические алгоритмы

287

Функция приспособленности

Для оценки приспособленности строк должна использоваться целевая (оптими­ зируемая) функция. Однако диапазон значений этой функции зависит от кон­

кретной задачи. Для обеспечения однородности алгоритма по отношению к раз­

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

считается коэффициентом пригодности строки, который используется механиз­

мом отбора для сравнения строк, составляющих популяцию [33]. Целевая функ­ ция нормируется таким образом, что максимальная пригодность соответствует

оптимальной ситуации.

Механизм отбора

Процесс отбора является имитацией естественного отбора, имеющего место в при­

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

В генетических алгоритмах более приспособленная строка получает большее ко­

личество потомков, в точности подобных ей самой, и потому получает больше

шансов на выживание в следующем поколении. В схеме пропорционального от­

бора строка, значение приспособленности которой совпадает со средним по по­

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

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

лее активно участвуют в воспроизводстве, тогда как вклад менее совершенных

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

(табл. 9.2).

Таблица 9.2. Параметры популяции

 

Строка

Приспособленность ([;)

Вероятность (f;lf = /;/290)

 

 

 

 

 

 

01101

169

0,58

 

 

 

 

 

11000

576

1,99

 

 

 

 

 

 

 

01000

64

0,22

 

 

 

 

 

10011

351

1,21

 

 

 

 

 

Итого

1160 (/ =1160/4 =290)

4,0

 

 

 

 

В нашем примере вторая строка получит одного потомка, а вероятность полу­

чить второго будет равна 0,99. Четвертая строка также получит одного потомка,

а с вероятностью 0,22- и второго. Итак, вторая и четвертая строки точно полу­

чают по одному потомку. Остается выбрать, какая именно получит двух остав­ шихся потомков. Мы выбираем первую строку (0,58) и вторую строку (0,99), по­ тому что вероятности у них больше, чем у третьей и четвертой строк (0,22 и 0,21

соответственно). Заметьте, что для второй и четвертой строк вероятности были

уменьшены на 1, потому что эти строки уже получили по одному потомку. Та­

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

ленности оказывается выше.

288

Глава 9. Оnтимизация

Воспроизводство

На этапе воспроизводства из популяции выбираются индивидуумы, генетический

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

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

гут не участвовать в воспроизводстве ни одного раза.

Хромосомы двух выбранных родитеЛьских особей рекомбинируются. Обычно

это осуществляется механизмами кроссовера и мутации. При кроссовере берут­

ся два индивидуума, хромосомы которых разрезаются на части в случайных мес­

тах, в результате чего получаются два «головных» сегмента и два <<хвостовых>>

сегмента. Затем «хвостовые» сегменты меняются местами, в результате чего по­ лучается две хромосомы нормальной длины (рис. 9.13). Это называется кроссо­

вером в одной точке (single-point crossover) [33]. В каждой из двух хромосом ока­

зьшаются гены обоих родителей.

Родитель 1/

111111111111111111111

 

 

 

 

000000000000000000000

 

 

 

 

 

~~~\\~,:-,.~\~

 

Родитель2

 

~\~~~~\\\~....

 

 

 

111111111111111~11111

OloooolllOlooollol

 

100111011111100111100

010

 

 

 

 

 

оооооооооооооооороооо

110011111100000111111

оооо

 

~

 

 

1111llllllll11ll0

Родитель N - 1

 

oooooooooooooooolllll

 

111111111111111100000

lllllllllllllll

 

 

000000000000000011111

 

 

 

 

 

Родитель N

Рис. 9.13. Кроссавер

Кроссавер не всегда применяется ко всем парам размножающихся индиви­

дуумов. Пары выбираются случайно, причем вероятность кроссовера полагается равной какому-либо числу от 0,6 до 1,0. Все случайные операции осуществля­

ются при помощи генератора случайных чисел. Кроссавер разрешается, если

выпавшее случайное число от О до 1 оказывается меньшим, чем выбранная веро­

ятность (имеющая значение от 0,6 до 1). Если кроссовера не происходит, по­ томство в точности копирует родителей. Это дает каждому индивидууму шанс

передать свои гены в последующие поколения без нарушений, вызванных крос­

совером.

Мутация применяется индивидуально к каждому потомку после кроссовера.

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

9.5. Генетические алгоритмы

289

стью (обычно 0,001), причем О заменяется на 1 и наоборот. Реализуется это при

помощи генератора случайных чисел, так же как и при кроссовере. 9-й и 17-й гены мутированной хромосомы показаны на рис. 9.14. В генетических алгорит­ мах мутация рассматривается как вторичный оператор, предназначенный для возвращения утраченного генетического материала. Представьте, например, что все строки популяции имеют в какой-то позиции значение О, тогда как опти­

мальное решение должно в этой же позиции иметь значение 1. Только мутация,

но не кроссовер, может восстановить эту единицу.

100111011111100101100

! !

100111010111100111100

Рис. 9. 14. Мутация

Конвергенция

При правильной реализации генетического алгоритма популяция развивается

от поколения к поколению таким образом, что приспособленность лучшего и

среднего индивидуума в каждой популяции стремится к глобальному оптимуму. Ко11.вергеицией называется развитие в направлении возрастания однородности. Считается, что по конкретному гену достигнута конвергенция, если он имеет одно и то же значение у 95% индивидуумов популяции [56].

9.5.2. Реализация

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

литья детали под давлением. Рассмотрим изготовление верхней крышки сти­

ральной машины (рис. 9.15). Нам нужно найти оптимальную температуру фор­

мы, температуру расплава и время заполнения, которые дадут нам максималь­

ный индекс производительности, характеризующий качество детали. Для

простоты мы предположим, что индекс получается суммированием условий ли­

тья. Верхняя и нижняя границы областей определения переменных оптимиза­

ции даны в табл. 9.3.

290

Глава 9. Оnтимизация

 

 

 

Рис. 9.15. Тестовая модель

Таблица 9.3. Границы изменения параметров литья

 

Минимум

Максимум

Дискретизация

 

 

 

 

 

 

Температура расплава

220

260

32

 

 

 

 

 

 

Температура формы

50

70

32

 

 

 

 

 

 

Время заполнения

1

4

16

 

 

 

 

 

 

Теперь нам предстоит определить процедуру кодирования значений переменных

оптимизации. Как следует из табл. 9.3, мы разобьем весь диапазон изменения температуры расплава на 32 отрезка, благодаря чему эта температура будет ко­ дироваться 5-разрядным числом. Температура формы и время заполнения будут кодироваться 5- и 4-разрядными числами соответственно. Отсюда следует, что хромосома в нашем примере будет представлена двоичной строкой из 14 разрядов.

Результаты оптимизации и график процесса конвергенции показаны на рис. 9.16.

Оптимальные значения параметров литья даст табл. 9.4. Обратите внимание, что

каждый индивидуум постепенно эволюционирует к максимально qриспособлен­

ному. Мы рассматривали десять индивидуумов в каждом поколении. Использо­

валась коммерческая реализация генетического алгоритма GENESIS [58]. Лара­

метры запуска программы GENESIS приведены в табл. 9.5.

Таблица 9.4. Оптимальные параметры литья

 

Температура

 

Температура

Время

 

Целевая

 

 

расмава

 

формы

заполнения

функция

 

 

 

 

 

 

 

 

Результат

220,0

 

70,0

2,6

 

45,00

 

 

 

 

 

 

 

 

 

Таблица 9.5. Параметры запуска GENESIS

 

 

 

 

 

 

 

 

Размер популяции

Вероятность кроссовера

Верояrnость мутации гена

 

 

 

 

 

 

 

10

 

0,6

 

0,001

 

 

 

 

 

 

 

 

 

 

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