1. Esports World Cup 2025 13:00 | Шахматные звезды 5.0 | Дубов - Ниманн
    Тур чемпионов. Финал top!! | ЧМ рапид + блиц 25 top!!
    Последний довод короля Книга - NEW!
    Очень СКОРО переезжаем. Оставайтесь с нами!

init_tables

Discussion in 'Машинное отделение' started by Orlov, 13 May 2007.

  1. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Не слишком ли много условий?
    delta = pos->King[side] - f +128;
    И одно условие - смотрим по предварительно рассчитанному массиву.
  2. WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.127
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Пробовал и так, и так. Разница очень небольшая, плюс-минус несколько процентов. Причём машинно-зависимая. Если память быстрая, то вариант с массивом выигрывает. Если медленная, то с проверками. Даже не память, а кэш.

    Условий не очень много. В подавляющем большинстве случаев (когда нет шаха конём) будет срабатывать полторы проверки - в половине случаев на знак, и один раз на модуль меньше 33. Думаю, что предсказатель ветвлений будет их хорошо предсказывать, т.к. ветки часто будут повторяться.

    Во Фрукте, вроде бы, тоже такая составная конструкция используется.

    В общем, главное правило оптимизации: не оптимизируй :)
  3. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Я уже недооптимизировался и в шашках и в шахматах так что и там и там NPS в три раза меньше чем у конкурентов. :)
  4. WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.494
    Likes Received:
    3.127
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Ну, на такой замене проиграть в три раза при всём желании не получится. Даже если число проверок удвоить :)
  5. WildCat Коршунов Игорь

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Жуткий офтоп. Про генерацию ходов нужно писать в другой ветке.
  6. ProstoTak Старожил

    • Ветеран
    • Старожил
    Member Since:
    12.02.2006
    Message Count:
    5.479
    Likes Received:
    123
    Репутация:
    1
    Оффлайн
    Значицца так. Докладаю. После некоторой доделки мой генератор даёт 5 000 000 генераций всех (20) ходов из начальной позиции за 22 секунды. Это получается около 4,5 миллионов ходов в секунду генерит. Правда пока нет проверки на шах и превращение только в ферзя. Проц Celeron 900 MHz.
    Это много или мало?
  7. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Это мало. Сделай Perft тест, и посчитай какая скорость получается на нем.
  8. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Кто-нибудь из модераторов может перенести обсуждение Генератора/проверки на шах в отдельную тему?
  9. ProstoTak Старожил

    • Ветеран
    • Старожил
    Member Since:
    12.02.2006
    Message Count:
    5.479
    Likes Received:
    123
    Репутация:
    1
    Оффлайн
    А что это такое?
    И для примера что у тебя и на каком проце получается?
  10. Chemer Максим

    • Участник
    Member Since:
    14.09.2006
    Message Count:
    1.674
    Likes Received:
    13
    Репутация:
    0
    Location:
    Запорожье
    Оффлайн

Share This Page