.
Генетический алгоритм. Урок 11. Отглючиваем генетический алгоритм
Автор megabax   
02.03.2025 г.
unit AIObj

Генетический алгоритм. Урок 11. Отглючиваем генетический алгоритм

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


И так, как я уже писал на прошлом уроке, обнаружился странный глюк с исчезновением лучшей особи. Согласно нашему алгоритму, это исчезновение невозможно, так как лучшая особь не мутирует.  Так что это глюк и его нужно ловить. Как мы это будем делать? Давайте сначала убедимся в том, что она действительно не матирует. Как мы это сделаем? Просто на каждой итерации будем проверять целостность объекта, отвечающей за лучшую особь. Каким образом?  Сравнить с эталоном.  Но для этого нам потребуется специальная функция, производящая сравнения. Для начала создадим этот метод у передаточной функции, для чего сначала добавим его в интерфейс:

    /// <summary>

    /// Интерфейс передаточной функции

    /// </summary>

    public interface ITransFunc

    {

 

        /// <summary>

        /// Проверить эквивалентность передаточной функции

        /// </summary>

        /// <param name="a_func">Другой объект передаточной функции</param>

        /// <returns>true - эквивалентны, false - разные</returns>

        bool is_equal(ITransFunc a_func);

...

...

Теперь будем делать его у всех передаточных функций, ....

...

...

...