Navigation » Immortal Chess - Chess without Frontiers! > Шахматный раздел > Шахматное программирование » Вопросы к шахматным программистам

Шахматное программирование Chess Programming. Вы уже написали свою шахматную программу? Или только-только приступили к её разработке? Добро пожаловать в данный раздел! Делимся советами, помогаем новичкам в шахматном программировании

Ответ
Опции темы
Непрочитано 20.04.2017, 09:19   #1661
Kvetka
 
Регистрация: 20.03.2010
Адрес: Минск
Сообщений: 99
Сказал(а) спасибо: 8
Поблагодарили 566 раз(а) в 88 сообщениях
Страна:

Награды пользователя:

По умолчанию Re: Вопросы к шахматным программистам

Цитата:
Сообщение от Remes_ Посмотреть сообщение
Спасибо, доброволец уже есть, он пытается сделать разбиение двухсот миллионов
Двести миллионов - это много. Не каждая файловая система выдержит PGN файл такого размера. Вот пара нюансов, с которыми человек может столкнуться, особенно если он раньше не работал с базами партий:
  • Проще всего, когда номера ECO уже прописаны в соответствующих тегах. Тогда можно просто растасовать все партии по файлам в соответствии с ними и всё. Сейчас многие публикуют партии вместе с тегами ECO, но не все. В большой базе процент партий без тега ECO может оказаться существенным.
  • Если тега нет, придётся вычислять его самому. Для этого понадобится pgn файл с перечислениями всех начал из ECO. Что-нибудь вроде eco.pgn, легко находится в интернете. Простой способ: сравнивать первые ходы из eco.pgn и в партии. Где больше совпало, такой и дебют. Работает быстро, но неаккуратно. Дело в том, что до одной и той же позиции часто можно прийти разными путями. Файл eco.pgn обычно этот нюанс не отражает. Лучше сравнивать получаемые позиции, а не ходы.
  • В больших коллекциях партий, особенно собранных из разных источников, актуальна проблема нахождения и вычищения дублей. С такой гигантской базой я бы, наверное, сначала растасовал партии по файлам, а потом уже в каждом файле искал дубли. Устанавливать две партии дублями, если совпали иимена игроков, время партии и название турнира, ненадёжно. В разных источниках игроков или турнир могли назвать по-разному. Сравнивать нотации ходов немного надёжнее, но тоже не очень, так как могут быть по-разному расставлены пробелы, переносы строк или какие-нибудь метки. Лучше всего сравнивать списки фактически сделанных ходов.
  • Сейчас это уже не так актуально, но всё же может быть полезным проверять партии на корректность. Например, в базах chess-db.com иногда попадаются партии из шахмат Фишера без начальной позиции. Проверка корректности партии обычно на порядок замедляет её считывание. Так что есть смысл крепко подумать: нужно оно или нет. И, кстати, возможно, есть смысл проверять наличие тегов SetUp и FEN, чтобы понять: начинается ли партия с начальной позиции.
Kvetka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
nemalp (20.04.2017)
Непрочитано 20.04.2017, 10:07   #1662
Kvetka
 
Регистрация: 20.03.2010
Адрес: Минск
Сообщений: 99
Сказал(а) спасибо: 8
Поблагодарили 566 раз(а) в 88 сообщениях
Страна:

Награды пользователя:

По умолчанию Re: Вопросы к шахматным программистам

Цитата:
Сообщение от Remes_ Посмотреть сообщение
Спасибо, доброволец уже есть, он пытается сделать разбиение двухсот миллионов У меня к Вам другой вопрос. Вот если будет pgn файл с одним дебютом, тысяч 50 партий, как можно кветку использовать для изучения и знакомства с вариантами?
Можно для такого файла построить дерево ходов (делается с помощью создания дебютной книги, подробнее - здесь). Дальше я бы брал какую-нибудь хорошую книгу по тому или иному дебюту с человеческими описаниями. Делал бы в Кветке из неё ходы, смотрел бы, как их оценивает движок. А с помощью дерева ходов смотрел бы, какие партии игрались с такой позицией, какие дальнейшие продолжения выбирали шахматисты. Можно будет открыть какую-нибудь конкретную партию с заданной позицией и поизучать именно её.
Kvetka вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
nemalp (20.04.2017), Remes_ (20.04.2017), voronn09 (20.04.2017)
Непрочитано 21.04.2017, 15:06   #1663
Remes_
 
Регистрация: 05.02.2011
Сообщений: 485
Сказал(а) спасибо: 40
Поблагодарили 1,069 раз(а) в 371 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Ни кто не занимался захватом диаграмм со сканированных книг?
Дело в том, что существует очень много задачников разных, и на тактику, и на этюды, и всё это в сканированном ч\б виде. Хотелось бы такую штуку, которая сможет диаграммы в fen переводить. Несколько программ встречал, даже на андроидах которые с вебкамеры работают, но результаты не очень.
Пытался "на коленке" свою сделать. Подвожу мышку под диаграмму, нажимаю Ctrl, определяется граница диаграммы, размеры, ожидаемые размеры и положение клеток, и не смог реализовать распознавание Причём распознание можно было бы сделать простое по шаблонам. Нарисовать фигуры в svg или png какие часто в книгах встречаются, и сравнивать после масштабирования с каждой клеткой.
Ни кто похожим не занимается? Кому интересно посмотреть что я натворил, пишите в личку, но предупреждаю что код ужасный.

Последний раз редактировалось Remes_; 21.04.2017 в 15:49.
Remes_ вне форума   Ответить с цитированием
Непрочитано 25.04.2017, 01:39   #1664
Rimidalv
 
Регистрация: 28.04.2010
Сообщений: 49
Сказал(а) спасибо: 13
Поблагодарили 52 раз(а) в 34 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Цитата:
Сообщение от Инопланетянен Посмотреть сообщение
Всем спасибо нашёл я человека на другом форуме который сделал всё как я хотел за 500 руб.
В Arena:
Menu->Engines->Manage->Закладка UCI->Common Max CPU cores setting
И ничего в коде менять не надо.
Rimidalv вне форума   Ответить с цитированием
Непрочитано 26.04.2017, 11:13   #1665
PozitiFF_Chess
Главный администратор
 
Аватар для PozitiFF_Chess
 
Регистрация: 14.03.2010
Сообщений: 8,503
Сказал(а) спасибо: 3,122
Поблагодарили 21,864 раз(а) в 7,715 сообщениях
Страна:

Награды пользователя:

По умолчанию Re: Вопросы к шахматным программистам

Цитата:
Сообщение от Remes_ Посмотреть сообщение
Хотелось бы такую штуку, которая сможет диаграммы в fen переводить
К автору internetchesskiller можно обратиться ) Потому что он сделал именно это. Правда, направил это в читерское русло зачем-то.
PozitiFF_Chess вне форума   Ответить с цитированием
Непрочитано 01.05.2017, 00:20   #1666
Remes_
 
Регистрация: 05.02.2011
Сообщений: 485
Сказал(а) спасибо: 40
Поблагодарили 1,069 раз(а) в 371 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

PozitiFF_Chess, у меня есть ощущение, что он работает только на равномерно закрашеных клеточках, на мониторах. А в сканированных книгах черные поля рисуются как диагональные клеточки. Не уверен, что сканы будут распознаваться. Отдельная прога нужна.
Remes_ вне форума   Ответить с цитированием
Непрочитано 12.05.2017, 16:23   #1667
Neurocore
 
Аватар для Neurocore
 
Регистрация: 18.03.2010
Адрес: г.Барнаул
Возраст: 29
Сообщений: 452
Сказал(а) спасибо: 2,557
Поблагодарили 766 раз(а) в 337 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Возобновился у меня интерес к движку, пишу обучение. Движок сам с собой наигрывает партии. Раньше делал фиксированное время на ход и случайность возникала сама по себе (каждая новая партия отличалась от предыдущей). Сейчас решил сделать фиксированную глубину, это было бы более честно. Но, очевидно, никакой случайности уже не будет.

Есть набор из дебютных позиций от автора Crafty, их там 4000. Но их не всегда будет хватать. Попробовал добавить шум в 1 сотую пешки в оценку, начал играть слабее аж на 100 эло, причём вариативность не так уж и заметна (возможно шум "путает" поиск глобально). В принципе, можно оставить шум только при обучении. Развейте мои сомнения.
__________________
Наш ответ зависит от сознания людей
Neurocore вне форума   Ответить с цитированием
Непрочитано 12.05.2017, 16:37   #1668
ThinkingALot
 
Регистрация: 15.03.2010
Сообщений: 1,869
Сказал(а) спасибо: 2,230
Поблагодарили 4,903 раз(а) в 1,361 сообщениях

Награды пользователя:

По умолчанию Re: Вопросы к шахматным программистам

Цитата:
Сообщение от Neurocore Посмотреть сообщение
Но, очевидно, никакой случайности уже не будет.
Можно делать случайную глубину на каждом ходу. Скажем, depth = 9 или depth = 10 с равными вероятностями.
Цитата:
Сообщение от Neurocore Посмотреть сообщение
Есть набор из дебютных позиций от автора Crafty, их там 4000.
Для тестирования Stockfish используют под 40к позиций. См, например, тут: https://groups.google.com/forum/#!ms...0/rKdSlJdDmBEJ.

Последний раз редактировалось ThinkingALot; 12.05.2017 в 16:47.
ThinkingALot вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Neurocore (12.05.2017)
Непрочитано 12.05.2017, 17:25   #1669
Neurocore
 
Аватар для Neurocore
 
Регистрация: 18.03.2010
Адрес: г.Барнаул
Возраст: 29
Сообщений: 452
Сказал(а) спасибо: 2,557
Поблагодарили 766 раз(а) в 337 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Спасибо, прямо то, что нужно. Максимум в 40 тыс. стартовых позиций это просто отлично.
__________________
Наш ответ зависит от сознания людей
Neurocore вне форума   Ответить с цитированием
Ответ

Социальные закладки


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шахматное программирование Vladimir50 Шахматное программирование 8 07.01.2014 19:09
Память VS Программа Overman Флейм 5 18.06.2010 19:53