Руководства / Строительство и ресурсы
Разведение лошадей: даже два идеальных родителя не гарантируют идеального жеребёнка
Жеребёнок центрируется на среднем значении родителей, но разброс имеет нижний предел 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 — а поскольку игра заворачивает любой бросок выше потолка обратно вниз, каждый реальный жеребёнок оказывается на уровне 14,23 или ниже, они в среднем дают около 13,84 и могут опуститься примерно до 12,81. Два идеальных родителя не производят идеального жеребёнка; они производят жеребёнка, центрированного на идеале и рассеянного на фиксированную величину.
Вот почему селекционная программа выходит на плато. Как только ваши родители становятся близки друг к другу, дальнейшее их сближение перестаёт помогать — член |parentA − parentB| уже близок к нулю, и всё, что остаётся, — это константа, от которой разведением не избавиться.
Подбор родителей всё ещё очень важен
На другом полюсе скрещивание вашей лучшей лошади по скорости с худшей даёт разброс 9.49 + 2.85 = 12.34 — более чем в четыре раза больше нижнего предела для идентичных родителей. Так что совет подбирать похожих лошадей реален; у него просто есть жёсткий предел.
Практическая картина такова:
- На раннем этапе подбор родителей — это вся игра. Сокращение
|A − B|сокращает разброс почти один к одному. - На позднем этапе это ничего не даёт. Вы боретесь с пределом 0,3, и единственный оставшийся рычаг — объём: разводите больше жеребят и оставляйте верхний хвост.
Почему хвост тонкий
Поскольку бросок — это среднее трёх случайных величин, а не одной, результаты скапливаются near середины. Жеребёнок, попадающий на самый край разброса, требует, чтобы все три случайные величины оказались near одного и того же экстремума, а это редко. Примерно две трети жеребят попадают в пределы одного стандартного отклонения — 0,47 по скорости при идентичных топовых родителях — а выбросы, за которыми вы охотитесь, лежат далеко за этим.
Так что честное ожидание для поздней стадии программы: большинство жеребят окажутся лишь немного хуже среднего значения родителей исключительно из-за случайности, немногие — лишь немного лучше, и прогресс достигается сохранением только этих немногих.
Одно отличие от игры
Этот калькулятор не отражает результаты за пределами диапазона обратно в диапазон; Minecraft это делает. Поэтому near самого верха характеристики реальная игра завернёт невозможный бросок обратно вниз, а не обрежет его, что немного меняет форму экстремального хвоста. На разброс и плато выше это не влияет; однако near потолка реальное среднее оказывается несколько ниже среднего значения родителей, потому что верхняя половина колокола заворачивается вниз.