Контрольная работа по "Программированию"
Автор: Zihang • Апрель 1, 2023 • Контрольная работа • 353 Слов (2 Страниц) • 167 Просмотры
Решение
Порядок действий:
Для использования генетического алгоритма необходимо:
- Определить набор ПРИЗНАКОВ, характеризующих РЕШЕНИЕ ЗАДАЧИ оптимизации или моделирования.
- Определить ФЕНОТИП, закодировать ПРИЗНАКИ (можно использовать код Грея).
2) Использовать последовательность шагов генетического алгоритма с соответствующими операторами.
1. ФЕНОТИП (задаем для 5 ПРИЗНАКОВ десятичные значения случайным образом)
Признак | Двоичное значение признака | Десятичное значение признака | Код Грея |
Признак 1 | 0011 | 3 | 0010 |
Признак 2 | 1100 | 12 | 1010 |
Признак 3 | 1110 | 14 | 1001 |
Признак 4 | 0111 | 7 | 0100 |
Признак 5 | 1001 | 9 | 1101 |
2. Формируем начальную ПОПУЛЯЦИЮ
Предположим, что ОСОБЬ содержит любые 2 ПРИЗНАКА из заданных 5:
- два первых ПРИЗНАКА - значения первого критерия,
три последних ПРИЗНАКА – значения второго критерия
Особь 1: 00111110 Особь 6: 00111110
Особь 2: 11001110 Особь 7: 11000111
Особь 3: 00111001 Особь 8: 00110111
Особь 4: 11001001 Особь 9: 10101010
Особь 5: 00110111 Особь 10: 01010101
→ Получили: каждая ОСОБЬ длиной по 8 БИТ
3. Оценка ОСОБЕЙ
Оценка особей популяции (используется фитнесс-функция равная сумме бит в особи).
Особь | Сумма бит в особи | Приспособленность особи |
1 | 5 | 1,389 |
2 | 5 | 1,389 |
3 | 4 | 1,112 |
4 | 4 | 1,112 |
5 | 5 | 1,389 |
6 | 5 | 1,389 |
7 | 5 | 1,389 |
8 | 5 | 1,389 |
9 | 4 | 1,112 |
10 | 4 | 1,112 |
Среднее значение суммы бит в популяции = 3,6.
4. Отбор – «РУЛЕТКА» с принципом «элитизма»
4.1 Строим «рулетку» - сектора должны быть пропорциональны значениям приспособленности:
[pic 1]
4.2 Запускаем «рулетку» 8 раз и выбираем 4 пары
[pic 2]
Получили:
следующие 4 пары:
1 и 5,
7 и 5,
10 и 2,
8 и 6
5. Скрещивание – оператор «одноточечный кроссовер»
Выбираем две точки разрыва (случайным образом, но числа должны различаться хотя бы на 2 и не быть равными 1 или длине особи): 2 и 5 и применяем оператор к выбранным парам особей:
Особь 1: 0011|1110 Особь 2.1: 0011|0111
...