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

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

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

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

По умолчанию 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
Адрес: Минск
Сообщений: 103
Сказал(а) спасибо: 8
Поблагодарили 576 раз(а) в 91 сообщениях
Страна:

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

По умолчанию 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
Сообщений: 528
Сказал(а) спасибо: 52
Поблагодарили 1,146 раз(а) в 397 сообщениях
Страна:
По умолчанию 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,514
Сказал(а) спасибо: 3,124
Поблагодарили 22,053 раз(а) в 7,726 сообщениях
Страна:

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

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

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

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

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

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

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

По умолчанию 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
Сообщений: 456
Сказал(а) спасибо: 2,594
Поблагодарили 773 раз(а) в 340 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Спасибо, прямо то, что нужно. Максимум в 40 тыс. стартовых позиций это просто отлично.
__________________
Наш ответ зависит от сознания людей
Neurocore вне форума   Ответить с цитированием
Непрочитано 22.07.2017, 22:36   #1670
Dotsent
 
Регистрация: 06.06.2010
Сообщений: 11
Сказал(а) спасибо: 15
Поблагодарили 7 раз(а) в 4 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Здравствуйте!

У меня такой вопрос к программистам или кто разбирается в теме. У меня ноут, на котором я запускаю движки, основной. Я купил на распродаже 3 компьютера, и хочу сделать следующее. Подключить их между собой, запускить на ноуте движок, и так чтоб использовать процессоры всех трех стационарных компьютеров. Как это можно организовать, что нужно. Я даже в интернете не смог найти инфу, как вообще это сделать или как называется. Спасибо заранее.
Dotsent вне форума   Ответить с цитированием
Непрочитано 23.07.2017, 05:27   #1671
TCH
 
Аватар для TCH
 
Регистрация: 18.03.2010
Адрес: Москва
Возраст: 53
Сообщений: 3,107
Сказал(а) спасибо: 24,014
Поблагодарили 20,271 раз(а) в 7,164 сообщениях
Страна:

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

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

Цитата:
Сообщение от Dotsent Посмотреть сообщение
Здравствуйте!

У меня такой вопрос к программистам или кто разбирается в теме. У меня ноут, на котором я запускаю движки, основной. Я купил на распродаже 3 компьютера, и хочу сделать следующее. Подключить их между собой, запускить на ноуте движок, и так чтоб использовать процессоры всех трех стационарных компьютеров. Как это можно организовать, что нужно. Я даже в интернете не смог найти инфу, как вообще это сделать или как называется. Спасибо заранее.
Объединить все 4 машины в локальную сеть. Поставить Аквариум и установить в нем движки трех компов как удаленные, а движок ноута как локальный. В доках Аквариума это описано, да и здесь на форуме, обсуждались подробности.
TCH вне форума   Ответить с цитированием
Непрочитано 16.09.2017, 21:40   #1672
Discoverer
 
Регистрация: 07.04.2010
Сообщений: 2,175
Сказал(а) спасибо: 15,862
Поблагодарили 11,277 раз(а) в 1,858 сообщениях
Страна:

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

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

Мне стало нужно анализировать много позиций.

Если давать мало потоков на каждую позицию , то тогда каждому достанется маленький размер хэша, и это приведёт к потерям эффективности из-за его недостатка. Если на каждую позицию давать много потоков и большой хэш, то тогда будут потери в эффективности из-за распараллеливания.

Как лучше распределить количество потоков и хэш ?
Discoverer вне форума   Ответить с цитированием
Непрочитано 18.09.2017, 06:05   #1673
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 36
Сказал(а) спасибо: 12
Поблагодарили 19 раз(а) в 11 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Цитата:
Сообщение от Discoverer Посмотреть сообщение
Мне стало нужно анализировать много позиций.
Как лучше распределить количество потоков и хэш ?
Эффективное количество потоков, активно участвующих в поиске, не меньше количества физических ядер процессора и не больше количества Hyper-threading потоков. Причем коллеги здесь это обсуждали http://immortalchess.net/forum/showthread.php?t=13873 и пришли к выводу, что должно быть равно количеству физических ядер (Hyper-threading рекомендуют отключить) .

Что касается хэша, то ИМХО он должен быть по возможности большим и общим для всех потоков.

Последний раз редактировалось Уэф; 18.09.2017 в 06:13.
Уэф вне форума   Ответить с цитированием
Непрочитано 18.09.2017, 12:43   #1674
Discoverer
 
Регистрация: 07.04.2010
Сообщений: 2,175
Сказал(а) спасибо: 15,862
Поблагодарили 11,277 раз(а) в 1,858 сообщениях
Страна:

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

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

Цитата:
Сообщение от Уэф Посмотреть сообщение
Эффективное количество потоков, активно участвующих в поиске, не меньше количества физических ядер процессора и не больше количества Hyper-threading потоков. Причем коллеги здесь это обсуждали http://immortalchess.net/forum/showthread.php?t=13873 и пришли к выводу, что должно быть равно количеству физических ядер (Hyper-threading рекомендуют отключить) .

Что касается хэша, то ИМХО он должен быть по возможности большим и общим для всех потоков.
Вы не поняли мой вопрос.

Доступно какое-нибудь фиксированной количество потоков и фиксированное количество памяти, и нужно проанализировать много позиций. Как воспользоваться ресурсами системы наиболее эффективно ?
Discoverer вне форума   Ответить с цитированием
Непрочитано 01.10.2017, 21:28   #1675
Remes_
 
Регистрация: 05.02.2011
Сообщений: 528
Сказал(а) спасибо: 52
Поблагодарили 1,146 раз(а) в 397 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Простейший вопрос. Сколько пешек стоит король?
В детских клубах обычно говорят "король бесценен", и пишут напротив короля 0. Ну там фигуры по 3, по 5 пешек и т.д. А вот в компьютерных движках приходится ему назначать какое-то серьёзное значение. Где можно посмотреть эти значения? Если есть возможность, то маленький кусочек кода, пожалуйста.
Remes_ вне форума   Ответить с цитированием
Непрочитано 01.10.2017, 23:19   #1676
Discoverer
 
Регистрация: 07.04.2010
Сообщений: 2,175
Сказал(а) спасибо: 15,862
Поблагодарили 11,277 раз(а) в 1,858 сообщениях
Страна:

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

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

Цитата:
Сообщение от Remes_ Посмотреть сообщение
Простейший вопрос. Сколько пешек стоит король?
В детских клубах обычно говорят "король бесценен", и пишут напротив короля 0. Ну там фигуры по 3, по 5 пешек и т.д. А вот в компьютерных движках приходится ему назначать какое-то серьёзное значение. Где можно посмотреть эти значения? Если есть возможность, то маленький кусочек кода, пожалуйста.
В движках нет смысла измерять ценность короля в пешках, так как король не может быть взят при рассчёте варианта.
Discoverer вне форума   Ответить с цитированием
Непрочитано 02.10.2017, 07:53   #1677
Viktor
 
Аватар для Viktor
 
Регистрация: 15.03.2010
Адрес: Россия
Возраст: 62
Сообщений: 6,317
Сказал(а) спасибо: 40,609
Поблагодарили 28,570 раз(а) в 5,876 сообщениях
Страна:

Награды пользователя:
5000 posts Гуру форума 1000 reputation За заслуги Медаль 13 
Всего наград: 5

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

Цитата:
Сообщение от Remes_ Посмотреть сообщение
Простейший вопрос. Сколько пешек стоит король?
В детских клубах обычно говорят "король бесценен", и пишут напротив короля 0. Ну там фигуры по 3, по 5 пешек и т.д. А вот в компьютерных движках приходится ему назначать какое-то серьёзное значение. Где можно посмотреть эти значения? Если есть возможность, то маленький кусочек кода, пожалуйста.
В "детских клубах" король стоит 3 пешки.
Viktor вне форума   Ответить с цитированием
Непрочитано 02.10.2017, 14:01   #1678
dsvk
 
Регистрация: 06.02.2012
Возраст: 36
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Добрый день! Друзья подскажите как решить проблему. (Не знаю в какую ветку форума писать, так что пишу сюда, уж извините). В общем, проблема такая: есть USB-доска DGT, подключенная к компу (всё работает). Есть сайт на Joomla. Как организовать на сайте онлайн-трансляцию? Понимаю, что нужен какой-то вьюер, но не знаю где взять, может опытные люди подскажут?
dsvk вне форума   Ответить с цитированием
Непрочитано 03.10.2017, 22:53   #1679
Intruder
 
Аватар для Intruder
 
Регистрация: 31.12.2011
Возраст: 40
Сообщений: 781
Сказал(а) спасибо: 1,368
Поблагодарили 2,884 раз(а) в 1,082 сообщениях
Страна:
По умолчанию Re: Вопросы к шахматным программистам

Цитата:
Сообщение от dsvk Посмотреть сообщение
Добрый день! Друзья подскажите как решить проблему. (Не знаю в какую ветку форума писать, так что пишу сюда, уж извините). В общем, проблема такая: есть USB-доска DGT, подключенная к компу (всё работает). Есть сайт на Joomla. Как организовать на сайте онлайн-трансляцию? Понимаю, что нужен какой-то вьюер, но не знаю где взять, может опытные люди подскажут?
Эти опытные люди говорят, что нужна программа Livechess и инструкция к ней MA_ENG_LiveChess_User manual (на англ., но с картинками!).
Может эта информация как-то поможет.


P.S. На сайте itchess.com готовы организовать онлайн-трансляцию:
"Кстати внимание всем организаторам, кто имеет доски Дгт, мы можем предоставить вам площадку на itchess.com для трансляции своего турнира. На нашем сайте будет возможность получать трансляцию с анализом движка, живым таймером отсчитывающим секунды, возможностью двигать фигуры для просмотра варианта и шкалой оценки. Также возможность подгружать таблицу, ставить на свои сайты трансляцию и свободно скачивать пгн партий турнира.
(https://pp.userapi.com/c604627/v604627744/363f6/7F0xDrmRZac.jpg)".

Последний раз редактировалось Intruder; 03.10.2017 в 22:58.
Intruder вне форума   Ответить с цитированием
Ответ

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


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

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

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

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

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