Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВ_слайды лекция 1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
10.5 Mб
Скачать

Задача об укладке рюкзака

Эта задача имеет следующую неформальную простую постановку. Имеется рюкзак объемом и различных предметов. Каждый предмет имеет известный объем Wi и стоимость Pi ( ). В рюкзак можно положить целое число различных предметов. Нужно упаковать рюкзак так, чтобы полная стоимость уложенных предметов была максимальной, а их общий объем не превышал заданный объем С – емкость рюкзака. Форма предметов здесь не учитывается .

Формальная постановка задачи: для данного множества весов Wi , стоимостей Pi и объема надо найти двоичный вектор X= (x1,…, xn), где xi=1 , если предмет укладывается в рюкзак;xi=0, если предмет не укладывается;

при этом должно выполняться: , и .

Так как решение задачи можно представить двоичным вектором X= (x1,…, xn), то очевидно при его поиске можно применить простой ГА со стандартными операторами скрещивания и мутации. Но при этом, что на каждом шаге надо следить за тем, чтобы новые решения, полученные в результате скрещивания или мутации, удовлетворяли требуемому ограничению V . В случае невыполнения ограничения «неправильное» потенциальное решение должно быть уничтожено, что ведет к сокращению популяции.

В качестве фитнесс-функции в простейшем случае можно взять , но в этом случае, как указано выше, есть проблемы с неправильными решениями.

Модификации и обобщения га

Каждый из функциональных блоков ГА рис.1может быть реализован различными способами.

В настоящее время разработаны различные методы:

  1. генерации начальной популяции;

  2. отбора родителей;

  3. генетических операторов скрещивания и мутации;

  4. сокращения популяции и т.д.

  5. процесса эволюции.

Приведем только несколько примеров:

Многоточечный кроссинговер

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

Пример двухточечного кроссинговера

Графически это пример удобно представить в следующем виде.

Пример двухточечного кроссинговера

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

Пример четырехточечного кроссинговера

Скрещивание (рекомбинация) действительных значений

При этом хромосома представляется действительными (вещественными) числами.

1. Дискретная рекомбинация

Этот вид скрещивания определен над векторами, компонентами которых являются вещественные числа. Рассмотрим на примере двух особей, соответствующие вектора которых имеют три целых значения. Для каждой переменной (позиции) значение переменной выбирается из первого или второго родителя с равной вероятностью. Пример выполнения этого оператора показан на рис. Здесь образцы (маски) показывают принадлежность данной компоненты потомка определенному родителю. Отметим, что этот тип рекомбинации применим к значениям любого типа.

1-й родитель

12

25

5

2-й родитель

123

4

34

1-й образец (маска)

2

2

1

2-й образец(маска)

1

2

1

1-й потомок

123

4

5

2-й потомок

12

4

5