Evolutor

Members

Functions

crossingoverStd
bool crossingoverStd(IndAbstract pIndA, IndAbstract pIndB, ProgTypeAbstract ptype)

Стандартный кроссинговер

formNextPopulation
PopType formNextPopulation(PopType pop, ProgTypeAbstract ptype)

Создание популяции на основе вычисленной приспособленности. @param pop Популяция, из которой будет браться материал для следующей популяции. @param ptype Тип программы, в котором записаны все настройки процесса эволюции. @return Новая популяция.

generateLine
Line generateLine(IndAbstract pInd, ProgTypeAbstract ptype)

Генерация линии

generateLine
Line generateLine(IndAbstract pInd, ProgTypeAbstract ptype, Type rtype, uint depth = 0)

Генерация типизированной линии

getRandomElementStd
Argument getRandomElementStd(Container cont)

Вероятности выбрать любой элемент дерева будет равные. Данный метод не подойдет, если нужно заменить элемента дерева. @param cont Узел дерева, в котором нужно выбрать. @see replaceRandomElementStd

getRandomLeafStd
Argument getRandomLeafStd(Container cont)

Вероятность выбрать любой лист дерева будет одинаковой.

mutationStd
void mutationStd(IndAbstract pInd, ProgTypeAbstract ptype)

Стандартная мутация

replaceRandomElementStd
void replaceRandomElementStd(Container cont, Argument delegate(Type) generator)

Вероятности заменить любой элемент дерева будет равные. @note Данный метод не подходит для замены самого первого переданного узла, его замену реализует пользователь этого метода отдельно. @param cont Узел дерева, в котором нужно заменить. @param generator Делегат-генератор, делегат, который создаст типизированный аргумент.

swapRandomElements
bool swapRandomElements(Container cont1, Container cont2, ProgTypeAbstract ptype)

Выбирается поддерево из каждого контейнера и меняются местами. Выбор идет на основе равномерного распределения. @param cont1 Первый контейнер @param cont2 Второй контейнер @note Обмен корневыми элементами невозможен в рамках данного метода, его реализацей занимайтесь сами.

Meta