Разведение лошадей: даже два идеальных родителя не гарантируют идеального жеребенка
Характеристики жеребенка усредняются по родителям, но разброс всегда имеет нижний предел в 0,3 от диапазона характеристик, независимо от того, насколько идентичны родители. Этот член никогда не исчезает.
Разведение лошадей обычно описывается так: «жеребенок усредняет характеристики своих родителей, плюс немного случайности». Первая половина абсолютно верна. Вторая половина скрывает ту часть, которая на самом деле определяет, сколько времени займет ваша программа разведения.
Модель
midpoint = (parentA + parentB) / 2
spread = |parentA − parentB| + 0.3 × (statMax − statMin)
roll = (random + random + random) / 3 − 0.5
foal = midpoint + spread × roll
Результат представляет собой среднее арифметическое трех равномерно распределенных случайных чисел, поэтому он центрирован на 0, ограничен ±0.5 и имеет колоколообразную форму со стандартным отклонением 0.1667. Центрирование на нуле означает, что ожидаемый жеребенок точно соответствует средней точке родителей — усредняющая половина фольклора верна.
Разброс имеет нижний предел, который невозможно устранить
Посмотрите на второй член: 0.3 × (statMax − statMin). Он вообще не ссылается на родителей.
Даже с двумя идентичными родителями, |parentA − parentB| равно нулю, а разброс по-прежнему составляет:
| характеристика | полный диапазон | неустранимый разброс |
|---|---|---|
| Максимальное здоровье | 15 – 30 | 4.50 |
| Сила прыжка | 1.09 – 5.29 | 1.26 |
| Скорость передвижения | 4.74 – 14.23 | 2.85 |
Таким образом, разведение двух лошадей с максимальной Скоростью дает жеребенка, который в среднем имеет 14.23, но со стандартным отклонением 0.47 и может опуститься до примерно 12.81. Два идеальных родителя не производят идеального жеребенка; они производят жеребенка, центрированного на идеале, но с фиксированным разбросом.
Вот почему программа разведения выходит на плато. Как только ваши родители становятся близки по характеристикам, дальнейшее их сближение перестает помогать — член |parentA − parentB| уже близок к нулю, и все, что остается, это константа, которую вы не можете устранить разведением.
Совпадение характеристик родителей по-прежнему очень важно
В другой крайности, разведение вашей лучшей по Скорости лошади с вашей худшей дает разброс 9.49 + 2.85 = 12.34 — более чем в четыре раза превышающий нижний предел для идентичных родителей. Так что совет подбирать похожих лошадей реален; просто у него есть жесткий предел.
Практическая сторона этого:
- На ранних этапах подбор родителей — это вся игра. Уменьшение
|A − B|уменьшает разброс почти один к одному. - На поздних этапах это ничего не дает. Вы боретесь с нижним пределом 0.3, и единственный оставшийся Рычаг — это объем — разводите больше жеребят и оставляйте лучших.
Почему «хвост» тонкий
Поскольку результат является средним из трех случайных чисел, а не одного, результаты группируются около середины. Жеребенку, попадающему на самый край разброса, нужны все три случайных числа, близкие к одной и той же крайности, что редко. Примерно две трети жеребят попадают в пределах одного стандартного отклонения — 0.47 по Скорости с идентичными лучшими родителями — а выбросы, за которыми вы охотитесь, находятся далеко за его пределами.
Таким образом, честное ожидание для программы на поздней стадии: большинство жеребят будут незначительно хуже средней точки родителей просто по Везению, немногие будут незначительно лучше, и прогресс достигается за счет сохранения только этих немногих.
Одно отличие от игры
Этот калькулятор не возвращает результаты, выходящие за пределы диапазона, обратно в диапазон; Minecraft это делает. Таким образом, вблизи самого верха характеристики реальная игра будет сворачивать невозможный результат вниз, а не обрезать его, что немного меняет форму крайнего «хвоста». Средняя точка, разброс и плато выше остаются неизменными.