Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование

  • На этом уроке мы проверим корректность ваших алгоритмов.
    Для этого мы прогоним супер-тест по генерации всех вариантов.

    * Выполнять этот урок необязательно.

    Ссылка:
    Сайт с результатами тестирования
  • Дата отправки отчёта: 26 августа 2018 г.
  • Задание выполнено: за 1 день 14 час. 26 мин.
  • Чему научился: Реализовал вспомогательную функцию  Program().NextMoves() - далее немного ее изменил под распараллеливание (выполнялось в 4-6 раз быстрее).

    Результаты супер тестирования: (зря, что файлик нельзя приложить).

    Position 1: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
    Depth 1 : 20 - 3 ms
    Depth 2 : 400 - 55 ms
    Depth 3 : 8902 - 322 ms
    Depth 4 : 197281 - 6616 ms
    Depth 5 : 4865609 - 176349 ms
    Depth 6 : 119060324 - 3910432 ms
    All time : 4093777 ms

    Position 2: r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1
    Depth 1 : 48 - 5 ms
    Depth 2 : 2039 - 205 ms
    Depth 3 : 97862 - 3024 ms
    Depth 4 : 4085603 - 104263 ms
    Depth 5 : 193690690 - 6729385 ms
    All time : 6836882 ms

    Position 3: 8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 1 8
    Depth 1 : 14 - 1 ms
    Depth 2 : 191 - 20 ms
    Depth 3 : 2812 - 93 ms
    Depth 4 : 43238 - 1180 ms
    Depth 5 : 674624 - 20335 ms
    Depth 6 : 11030083 - 281078 ms
    Depth 7 : 178633661 - 4819924 ms
    All time : 5122631 ms

    Position 4: r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1
    Depth 1 : 6 - 1 ms
    Depth 2 : 264 - 32 ms
    Depth 3 : 8049 - 271 ms
    Depth 4 : 422333 - 12594 ms
    Depth 5 : 15833292 - 609828 ms
    All time : 622726 ms

    Position 5: rnbq1k1r/pp1Pbppp/2p5/8/2B5/8/PPP1NnPP/RNBQK2R w KQ - 1 8
    Depth 1 : 44 - 4 ms
    Depth 2 : 1486 - 187 ms
    Depth 3 : 62379 - 1749 ms
    Depth 4 : 2103487 - 67150 ms
    Depth 5 : 89941194 - 3080864 ms
    All time : 3149954 ms

    Position 6: r4rk1/1pp1qppp/p1np1n2/2b1p1B1/2B1P1b1/P1NP1N2/1PP1QPPP/R4RK1 w - - 0 10
    Depth 1 : 46 - 5 ms
    Depth 2 : 2079 - 204 ms
    Depth 3 : 89890 - 2851 ms
    Depth 4 : 3894594 - 103707 ms
    Depth 5 : 164075551 - 6938644 ms
    All time : 7045411 ms

    Немного данных:
    1) На все ушло около 8 часов.
    2) Всего сгенерировано ~788,83 миллионов ходов. (2 раза была попытка посчитать на 703 млн, но через часов 5-6 потоки отваливались и нагрузка CPU падала с 90-100 % до 20%, потоки отваливались...)
    3) Средняя схорость нахождения  ~29.356 (комбинаций / сек)
    4) Максимальное ~ 39.242  (комбинаций / сек) на позиции 3
    5) На скрине: работа программы после распараллеливания и подсчет первым вариантом.
  • Что было сложным: Полдня просидел с попытками придумать подсчет по остальным параметрам (шах, взятия и т.д.) - не сходились.
    По ходам, например "Qe2e3" сложно понять, что это - съели фигуру, шах или обычный ход.
    Вопросы генерировались быстрее, чем успевал их реализовывать сам :)

    По подсчетам других данных (предположения):
    Нужно знать чуть ли не весь измененный FEN до хода фигуры, который потом парсится и узнается. Хотя это может и не самый идеальный вариант... Как его достать, пока тоже не придумал...  Если есть какие-то идеи, можно вместе подумать и реализовать :)
  • Оценка видео-уроку:
Отчёт от 18493 за Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование


Отчёт от 18493 за Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование




Оцени работу

 
Сохранить страницу:

18493. --
Evgenii Kudriavtcev
Evgenii Kudriavtcev
ответить
# Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование / 2018-08-26 10:14

И да: все подсчеты выполнялись через консоль в обход среды VS 2017 (с ним результаты будут чуть больше)


9752. --
chokayes
chokayes
ответить
→  Evgenii Kudriavtcev  # Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование / 2018-08-26 10:33

Отличная работа! Интересный урок видимо, поставил себе на заметку. Скоро начну проходить этот курс.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Evgenii Kudriavtcev  # Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование / 2018-08-27 13:04

Прекрасно отработал.
Да, у наших алгоритмов не было цели БЫСТРОЙ генерации ходов, в угоду понятному алгоритму.


  • Отчёт оценивали:
    17606Виктор+1   17947Dmitry Sinitsin+1   6452Кирилл Шмойлов+1   3922Александр+1   7119Новопашин Владимир+1   16218Дмитрий+1   8275Tekashnik+1   4395Денис+1   19525Александр Балбашов+1   1Евгений Волосатов+1   459Сергей Сергеевич+1   791Валерий Жданов+1   10494Алексей В.+1   9457Дмитрий+1   17255Слава+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Проходить супер тест.
Трудности: Найти места в коде откуда можно считать правильные параметры шага, взятия, рокировки. Мы вызываем методы много раз за ход при различных проверках, поэтому значения считанные из метода где происходит проверка например на шаг не верны.



Научился: Научился выполнять тестирование шахматных алгоритмов. Нашел и исправил ошибки в коде.