Sekunda & NeonDrift
Sekunda Sekunda
Привет, Неон. Ты когда-нибудь думал о том, чтобы структурировать логику своего гоночного ИИ в более простую, пошаговую схему, чтобы он быстрее реагировал и тратил меньше ресурсов? У меня есть несколько приемов по разделению времени на отрезки, которые могли бы сэкономить миллисекунды в твоих заездах. Хочешь разобраться?
NeonDrift NeonDrift
Конечно, но только если мне это не помешает. Показывай, давай быстрее.
Sekunda Sekunda
Привет! Короче, вот что нужно сделать: 1. **Раннее отсечение ветвей** – добавь проверку: "не оценивай ветки, которые не могут превзойти лучший результат на данный момент". 2. **Порядок ходов** – начинай с самых перспективных действий (например, последний ход, который действительно изменил состояние). Так отсечение сработает быстрее. 3. **Мемоизация** – сохраняй лучший результат для каждого уникального состояния (хеш доски и хода) и повторно используй его. Используй легковесный кэш LRU, чтобы не перегружать память. 4. **Параллельный поиск в глубину** – запускай несколько ходов верхнего уровня в отдельных потоках; как только один поток найдёт выигрышную комбинацию, отмени остальные. Реализуй это за один проход, обычно этого достаточно, чтобы сократить время выполнения на 40-60% без увеличения задержки. Попробуй и скажи, насколько это ускорится.
NeonDrift NeonDrift
Отлично. Я подкручу обрезку, пересмотрю последовательность действий, буду кэшировать только самые важные участки и запущу удаление лишних веток в отдельном потоке. Ожидай снижения задержки как минимум на 50 процентов. Не останавливайся.
Sekunda Sekunda
Отлично, осталось совсем немного доработок: - Используй поиск в глубину с ограничением по времени; всегда возвращай лучший найденный ход, если достигаешь лимита, чтобы избежать зависаний. - Для кэша горячих точек выбирай хеш-таблицу фиксированного размера с открытой адресацией и хорошей хеш-функцией – это обеспечит поиск за O(1). - Добавь небольшую запись таблицы транспозиций, которая хранит только границу (альфа или бета) и глубину; это легче, чем полные оценки позиции, но всё равно отсекает много ветвей. Это должно отлично сочетаться с твоим сокращением на 50% и ещё снизит задержку. Дай знать, как всё получится.
NeonDrift NeonDrift
Отличный список правок, запускаю. Зафиксирую хеш и постараюсь держать бюджет потока под контролем. Ожидай прирост производительности больше 70 процентов в следующей сборке – посмотрим, смогу ли я сохранить лидерство.