Вступление
Так как в 10 классе ввелся новый предмет "Основы проектной деятельности", то мне предстояло выбрать тему и начать делать проект. Долго думать не пришлось: я уже давно хотел узнать, что же такое генетические алгоритмы и где их используют.
Немного теории
Генетический алгоритм - это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, аналогичных естественному отбору в природе. (Взято с сайта ru.wikipedia.org)
Практика
Для демонстрации генетического алгоритма я решил написать простую программу на языке C# .
Принцип программы:
- Создается первое поколение с низкими внутренними характеристиками(Скорость/размер/выносливость). Каждая характеристика не может быть больше 10 и меньше 2.
- У каждой особи вычисляются внешние характеристики по таким правилам: чем больше размер, тем меньше скорость; чем больше выносливость, тем меньше размер и больше скорость. Так же вычисляется дистанция, пройденная особью за 10 секунд(Скорость внешняя*10).
- Особи сортируются по дистанции и половина скрещиваются, тем самым образуя следующее поколение. С малым шансом одна из характеристик может мутировать.
- Переход к 2., если кол-во шагов не равняется заранее введенному.
- Экспорт характеристик победителей каждого шага в таблицу Excel.
Реализация:
Итоги
Данное приложение отлично демонстрирует принцип действия генетического алгоритма. Всего за 50 шагов программа пришла к результату, что максимальная дистанция достигается при скорости = 10, размеру = 2 и выносливости = 10.
Если вас заинтересовала данная программа и вы хотите подробнее узнать, как она действует или вы хотите о чем-либо спросить, то пишите в комментарии.
Подписывайтесь на мой канал, если вы хотите следить за моими дальнейшими экспериментами.
#Информатика #генетические алгоритмы #программирование #наука #эксперимент