Ключевое слово
15 | 07 | 2024
Новости Библиотеки
Шахматы Онлайн
Welcome, Guest
Username: Password: Remember me

TOPIC: Bitboard в программировании шахмат №2

Bitboard в программировании шахмат №2 25 Июль 2023 12:48 #241

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Vladimirovich wrote:
Ну если, что-то не так, вот у меня копия от 2013 как у всех остальных

Да теперь без ошибок :)


KPvK.jpg


Вообще странно все это :)

Bitboard в программировании шахмат №2 27 Июль 2023 08:28 #242

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Потестировав Fathom.exe для таблиц syzygy пришел к выводу.
Fathom.exe бесполезна для использования ее в своих прогах.
1. Много бесполезной информации, а DTM отсутствует.
2. Да можно было использовать WDL (Win-Draw-Loss)
Но странным образом Fathom.exe некоторые позиции игнорирует
Пример







6Bk/5n2/8/8/3p4/8/8/1K6 w - -
error: unable to probe tablebase; position invalid, illegal or not in tablebase







7k/8/2n5/8/3p4/8/2B5/1K6 w - -
[Event ""]
[Site ""]
[Date "??"]
[Round "-"]
[White "Syzygy"]
[Black "Syzygy"]
[Result "1/2-1/2"]
[FEN "7k/8/2n5/8/3p4/8/2B5/1K6 w - - 0 1"]
[WDL "Draw"]
[DTZ "0"]
[WinningMoves ""]
[DrawingMoves "Ka1, Kc1, Ka2, Kb2, Bd1, Bb3, Bd3, Ba4, Be4, Bf5, Bg6"]
[LosingMoves "Bh7"]

1. Ba4{TB probe failed}

В отличии от API for probing Syzygy для WEB интерфейса.

Bitboard в программировании шахмат №2 27 Июль 2023 19:36 #243

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Не знаю в чем причина :? , но я зря грешил Fathom.exe, а может и не зря :dontknow:
Короче скачал другие базы
Результат







6Bk/5n2/8/8/3p4/8/8/1K6 w - -
[WDL "Draw"]

1. Bxf7 d3 2. Kb2 d2 3. Bh5 Kh7 4. Be2 Kg7 5. Bd1 Kg8 6. Ka3 Kf7 7. Bf3 Kg6 8. Bd1 Kg5 9. Kb4 Kf5 10. Kc4 Kf4 11. Kb4 Ke4 12. Kc4 Ke5 13. Kb4 Ke6 14. Bh5 d1=N 15. Bf7 Kd6 16. Bd5 Ne3 17. Ka3 Ke5 18. Ba2 Kf4 19. Bc4 Nf5 20. Bf7 Ng7 21. Be8 Kg3 22. Bb5 Kh2 23. Bd7 Kg2 24. Bc8 Kf2 25. Bg4 Ke3 26. Bd7 Kf2 27. Bc8 Kg1 28. Bg4 Ne8 29. Bd7 Ng7 30. Bc8 Ne8 31. Bg4 Ng7 32. Bd7 Ne8 33. Bc8 Ng7 34. Bg4 Ne8 35. Bd7 Ng7 36. Bc8 Ne8 37. Bg4 Ng7 38. Bd7 Ne8 39. Bc8 Ng7 40. Bg4 Ne8 41. Bd7 Ng7 42. Bc8 Ne8 43. Bg4 Ng7 44. Bd7 Ne8 45. Bc8 Ng7 46. Bg4 Ne8 47. Bd7 Ng7 48. Bc8 Ne8 49. Bg4 Ng7 50. Bd7 Ne8 51. Bc8 Ng7 52. Bg4 Ne8 53. Bd7 Ng7 54. Bc8 Ne8 55. Bg4 Ng7 56. Bd7 Ne8 57. Bc8 Ng7 58. Bg4 Ne8 59. Bd7 Ng7 60. Bc8 Ne8 61. Bg4 Ng7 62. Bd7 Ne8 63. Bc8 Ng7 64. Bg4 Ne8 1/2-1/2
В отличии от предыдущего результата - error: unable to probe tablebase; position invalid, illegal or not in tablebase
Вопрос остается открытым, по поводу Fathom.exe.
PS
Скачивал только WDL.
Еще 6 фигурные скачаю, потом потестю :glasses:
PPS
6 фигурных там нет :)
Last Edit: 27 Июль 2023 19:46 by alexlaw.

Bitboard в программировании шахмат №2 29 Июль 2023 03:05 #244

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Немного об эндшпильных таблицах - A guide to Endgames Tablebase

Bitboard в программировании шахмат №2 29 Июль 2023 05:57 #245

  • Vladimirovich
  • Vladimirovich's Avatar
  • OFFLINE
  • Инквизитор
  • Posts: 107746
  • Thank you received: 2123
  • Karma: 106
alexlaw wrote:
Немного об эндшпильных таблицах - A guide to Endgames Tablebase
Надо сказать, это довольно устаревшая статья...

Из упомянутого там более-менее живы таблицы Налимова
Какие-то движки их еще юзают. Я их держу на всякий.

Потом были таблицы Гавиота, но сейчас основное Syzygy.

Все остальное антиквариат.
Каждому - своё.

Bitboard в программировании шахмат №2 30 Июль 2023 08:54 #246

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
alexlaw wrote:
Немного об эндшпильных таблиц
Веб-сервис Tablebase Налимова
Это простой веб-сервис для доступа к серверу базы таблиц Nalimov endgame объемом 7 ГБ. На сервере представлены все эндшпили на 3, 4 и 5 человек. Доступ к серверу можно получить, отправив на него SOAP-запросы. SOAP - это открытый стандарт для доступа к веб-сервисам, основанный на стандартах open Internet и XML.
Можно поэксперементировть :)

Bitboard в программировании шахмат №2 30 Июль 2023 09:02 #247

  • Vladimirovich
  • Vladimirovich's Avatar
  • OFFLINE
  • Инквизитор
  • Posts: 107746
  • Thank you received: 2123
  • Karma: 106
Все движки юзают локальные таблицы
Веб это забавно, но будет практически тормозить знатно
Каждому - своё.

Bitboard в программировании шахмат №2 30 Июль 2023 09:18 #248

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Vladimirovich wrote:
Все движки юзают локальные таблицы
Веб это забавно, но будет практически тормозить знатно
Я любитель эксперементов :)
Кстати, уважаемый Vladimirovich, есть ли у вас 6 фигурные бызы syzygyn?
Конечно есть в открытом доступе эти базы, но скачивать по одному, как то не айс.
Если разбить на части по 2 гига, то было бы не плохо.
Возможно есть способ скачать их с сервера все скопом, но как?

Bitboard в программировании шахмат №2 30 Июль 2023 10:05 #249

  • Vladimirovich
  • Vladimirovich's Avatar
  • OFFLINE
  • Инквизитор
  • Posts: 107746
  • Thank you received: 2123
  • Karma: 106
alexlaw wrote:
Конечно есть в открытом доступе эти базы, но скачивать по одному, как то не айс.
Ну вот и я не скачивал :)

Если честно, для практических целей это замусоривание диска.
Syzygy хоть и меньше Налимова гораздо, но кушает все равно много
При этом очень много позиций пригодятся только задачникам и этюдникам.

Для закачки оптом
Практически можно под Линухом использовать тулзу WGET (есть под винду где-то тоже)
wget -r -np -nH --cut-dirs=3 -R index.html https://tablebase.lichess.ovh/tables/standard/6-dtz/

Под винду есть еще WinHTTrack.exe www.httrack.com/

Проблема может быть в файле index.html, он блокирует все, кроме себя
Но для 6-таблиц Syzygy его нет, так что пойдет.
Каждому - своё.

Bitboard в программировании шахмат №2 30 Июль 2023 14:22 #250

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Vladimirovich wrote:
Под винду есть еще WinHTTrack.exe www.httrack.com/
Способ конечно рабочий, но очень медленный :|

syzygyn6men.jpg


tablebase_lichess_6-wdl.jpg


Хотя может настройки проги не правильные :dontknow:

Bitboard в программировании шахмат №2 30 Июль 2023 14:41 #251

  • Vladimirovich
  • Vladimirovich's Avatar
  • OFFLINE
  • Инквизитор
  • Posts: 107746
  • Thank you received: 2123
  • Karma: 106
alexlaw wrote:
Способ конечно рабочий, но очень медленный
Я так думаю, что сервер Сизиги специально дает задержку.
Если к ним все бросятся качать по 100 гиг, он упадет, как от DDOS атаки.
Там и по одной качать не сахар.

Плюс у WinHTTrack есть куча опций Set Options, которые все игнорируют :)
Каждому - своё.

Bitboard в программировании шахмат №2 05 Авг 2023 07:35 #252

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Я думал, каким образом ускорить алгоритм - поиск мата в n ходов.
Во первых также, как и в minimax с alfa beta, скорость зависит от порядка ходов.
Отсортировать ходы не представляется возможным, отсутствуют критерии сортировки.
Решил использовать таблицы транспозиции

Warning: Spoiler! [ Click to expand ]



Warning: Spoiler! [ Click to expand ]



Warning: Spoiler! [ Click to expand ]


Появилась возможность проверить правильно ли реализованы хэш таблицы, покрайне мере я так думаю :)
Ведь если таблицы работают не правильно или реализация не правильная, то задачи решать правильно не будет.


Warning: Spoiler! [ Click to expand ]


Ну и результаты теста с хэш таблицами (на тяжелых задачах, где много дальнобойных фигур







3b4/2r3pr/2np1N2/1B3P2/1p5p/8/5K1p/7k w - - 0 1
Warning: Spoiler! [ Click to expand ]

На 7 мин быстрее








K1N1Q3/B1p1Npb1/5ppn/pP6/q2rkPpP/P1r1p1P1/B1p1P3/1n5b w - - 0 1
Warning: Spoiler! [ Click to expand ]

чуть быстрее








QQ6/5p1p/6p1/3r4/4k3/R7/5KPP/1Rrq4 w - - 1 38
Warning: Spoiler! [ Click to expand ]

на 15 мин быстрее :)

Проверил на ряде других задач - работает







1b3NrR/P1pp2pK/1p2p1RQ/5pP1/1P3pk1/1P6/2PPP2P/N7 w - f6 0 1
Warning: Spoiler! [ Click to expand ]
Last Edit: 05 Авг 2023 07:38 by alexlaw.

Bitboard в программировании шахмат №2 06 Авг 2023 07:39 #253

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Немного тупанул :)
При коллизии наверное луше обновить запись, а не стереть
Warning: Spoiler! [ Click to expand ]

Да, наверное так лучше

Warning: Spoiler! [ Click to expand ]


Но есть задачи, где в разумные сроки невозможно просчитать решение, основываясь на этом методе.







r2q1rk1/5ppp/p1pp4/1n2p3/2B1P3/2PPQP1P/P4P2/2KR2R1 w - -

На вскидку оценить число позиций при depth=11
30^11
Результат
17'714'700'000'000'000
Warning: Spoiler! [ Click to expand ]


Warning: Spoiler! [ Click to expand ]


Числа Гугол, Гуголплекс и Гиггол, конечно очень большие, но отнюдь не самые, есть еще такие числа как: Гаггол, Бугол, Число Грэма, Траддом, Биггол, Трултом, Тругол, Квадругол, Квадрексом, Квинтугол, Губол, Бубол и другие. :O

MatMaster задумался %-)

Есть идея :idea:

null move prunning
Last Edit: 08 Авг 2023 06:32 by alexlaw.

Bitboard в программировании шахмат №2 10 Авг 2023 12:59 #254

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Есть интересное расширение для браузеров.

Chessvision.ai

Можно распознавать шахматные диаграммы прямо в браузере и получить для этой диаграммы fen строку.
Мне интересно извлекать задачи с различных сайтов, быстро и удобно :)
alexlaw wrote:
null move prunning
- я не увидел возможности использовать для решения задач :dontknow:

Bitboard в программировании шахмат №2 19 Авг 2023 07:08 #255

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
alexlaw wrote:
Во первых также, как и в minimax с alfa beta, скорость зависит от порядка ходов.
Отсортировать ходы не представляется возможным, отсутствуют критерии сортировки.

Все же сортировать ходы - это правильный путь.
Попробовал


Warning: Spoiler! [ Click to expand ]



Время затраченное на сортировку компенсируется, если обрезка происходит как можно раньше.
Имеет смысл при многоходовых задачах в 5 и более ходов.

PS:
03.09.2023
Перекомпилировал
Last Edit: 03 Сен 2023 03:23 by alexlaw.

Bitboard в программировании шахмат №2 26 Авг 2023 19:51 #256

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Улучшил сортировку :woohoo:

Warning: Spoiler! [ Click to expand ]


Натолкнула на мысль эта задача

Warning: Spoiler! [ Click to expand ]


PS:

Решил задачу в разумные сроки :)

Warning: Spoiler! [ Click to expand ]
Last Edit: 26 Авг 2023 20:36 by alexlaw.

Bitboard в программировании шахмат №2 02 Сен 2023 08:53 #257

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
alexlaw wrote:
Улучшил сортировку :woohoo:

Люблю решать математические головоломки :)

Тестировал я тут на днях последнюю версию поиска мата в n ходов (ver2)

Warning: Spoiler! [ Click to expand ]


Странно то, что в версии сортировки (ver1), решение находит

Warning: Spoiler! [ Click to expand ]


без сортировки тоже находит


Warning: Spoiler! [ Click to expand ]


Попробовал найти ход, который приводит к такому результату


2023_09_02-2.gif



Короче, пока что это для меня загадка :?

PS
gif не получается вставить :(
Last Edit: 02 Сен 2023 10:53 by alexlaw.

Bitboard в программировании шахмат №2 02 Сен 2023 17:39 #258

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Нашел место, где нужно исправить
function read_hash_entry(depth: Integer):byte;
var
  index: Integer;
begin
  index := hash_key mod tt.mask;
  result:=255;
  if (depth<tt.data[index].depth) and (tt.data[index].hash_key = hash_key) then
  begin
            // extract stored score from TT entry
            result:=tt.data[index].score;
  end;
end;

было
if (depth<=tt.data[index].depth) and (tt.data[index].hash_key = hash_key) then

Bitboard в программировании шахмат №2 04 Янв 2024 15:10 #259

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Решил я сделать интерактивную шахматную доску :)
В голове созрела концепция.
Дал импульс мне этот израильский стартап

Короче начал понемногу :)

IMG_20240104_171553.jpg
The following user(s) said Thank You: Vladimirovich, rudolf

Bitboard в программировании шахмат №2 04 Янв 2024 15:11 #260

  • Vladimirovich
  • Vladimirovich's Avatar
  • OFFLINE
  • Инквизитор
  • Posts: 107746
  • Thank you received: 2123
  • Karma: 106
alexlaw wrote:
Решил я сделать интерактивную шахматную доску :)
Любопытно :)
Успехов :flag:
Каждому - своё.
The following user(s) said Thank You: alexlaw

Bitboard в программировании шахмат №2 04 Янв 2024 15:47 #261

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Реализовал передачу в конроллер (stm32) fen строки.

img1_stm32.jpg


И вывод в терминал (attiny2313) отладочной информации.

IMG_20240104_183704.jpg

Bitboard в программировании шахмат №2 05 Янв 2024 09:19 #262

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Подключил LED матрицу 8x8 к своему прототипу проекта.
Она будет иммитировать доску (подсветку в израильском стартапе)/

IMG_20240105_121156.jpg

Bitboard в программировании шахмат №2 05 Янв 2024 09:31 #263

  • Vladimirovich
  • Vladimirovich's Avatar
  • OFFLINE
  • Инквизитор
  • Posts: 107746
  • Thank you received: 2123
  • Karma: 106
alexlaw wrote:
Подключил LED матрицу 8x8 к своему прототипу проекта.
8x8 это в символах?
Каждому - своё.

Bitboard в программировании шахмат №2 05 Янв 2024 09:43 #264

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
8x8 светодиодная матрица на max7219.
Просто светодиоды.

Bitboard в программировании шахмат №2 05 Янв 2024 10:01 #265

  • Vladimirovich
  • Vladimirovich's Avatar
  • OFFLINE
  • Инквизитор
  • Posts: 107746
  • Thank you received: 2123
  • Karma: 106
alexlaw wrote:
8x8 светодиодная матрица на max7219.
Просто светодиоды.
Не понял. А как там фигурки светятся? P, K....
Каждому - своё.

Bitboard в программировании шахмат №2 05 Янв 2024 19:28 #266

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Vladimirovich wrote:
alexlaw wrote:
8x8 светодиодная матрица на max7219.
Просто светодиоды.
Не понял. А как там фигурки светятся? P, K....

Светятся не фигуры, а поля под фигурами.
Фигуры и доска настоящие.
Подсветка полей откуда и куда ходить.

IMG_20240106_130214.jpg


Вот например подсвечиваются поля, на которых расположены фигуры.
Хочу заметить, У меня пока всего лишь прототип для отработки логики и прошивки контроллера.
Last Edit: 06 Янв 2024 10:11 by alexlaw.

Bitboard в программировании шахмат №2 06 Янв 2024 11:49 #267

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Мат часть подготовил. :)
Теперь программная часть.
За основу возьму
0x88 MOVE GENERATOR

Bitboard в программировании шахмат №2 13 Янв 2024 09:09 #268

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
alexlaw wrote:
Мат часть подготовил. :)
Решил еще поработать над матчастью, чтобы код поместился в мк.

А пока вопрос.
Я пока еще не решил, как определять фигуры на доске.
Рассматриваю вариант - RFID — способ автоматической идентификации объектов, в котором посредством радиосигналов считываются или записываются данные, хранящиеся в так называемых транспондерах...

Фигуры на доске определить можно, а вот позицию расположения фигур, не очень понятно.

Можно конечно просто герконами определить - занято поле или нет, без определения типа.

Короче вопрос открыт :)

Bitboard в программировании шахмат №2 29 Янв 2024 12:08 #269

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
Прикрутил вай фай.

IMG_20240129_145839.jpg


Это наверное самый простой вариант - комп будет производить расчеты и передавать на интерактивную доску результат расчета.

В общем надо делать уже в "металле" и по ходу будет видно :)
The following user(s) said Thank You: Vladimirovich

Bitboard в программировании шахмат №2 30 Янв 2024 10:18 #270

  • alexlaw
  • alexlaw's Avatar
  • OFFLINE
  • Дьяк
  • Posts: 195
  • Thank you received: 10
  • Karma: 1
А вот и доска самодельная.

1560598698_bandicam-2019-06-15-14-34-15-203.jpg


usamodelkina.ru/14796-neobychnye-shahmat...-rukami.html#comment

Мне кажется очень даже неплохо сделана :)
Moderators: Grigoriy
Рейтинг@Mail.ru

Научно-шахматный клуб КвантоФорум