Stockfish

**Stockfish** - совместимый с UCI шахматный движок с открытым исходным кодом, разработанный Тордом Ромстадом, Марко Костальбой, Джуной Кийски и Гари Линскоттом, лицензированный по лицензии GPL v3.0. Марко разработал проект из версии 2.1 движка Торда Glaurung, впервые анонсированного Марко 8 ноября 2008 года, а в начале 2009 года был включен Smaug от Джуны, еще один производный Glaurung 2.2. Начиная с двадцатки лучших движков, Stockfish быстро набирает силу, чтобы стать сильнейшим шахматным игроком мира с 2018 года - по крайней мере, в отношении общедоступной шахматной сущности AlphaZero. Название «Stockfish» переводится с английского как "вяленая рыба", и отражает происхождение движка. Торд - норвежец и итальянец Марко, и существует давняя история торговли вяленой рыбой из Норвегии в Италию (фактически, в родной город Марко Виченцу). Stockfish также упомянул еще одну знаменитую «рыбку», сильнейший тогда шахматный движок Рыбка.

## Наука против коммерции?

Существует широкий спектр мнений о сильных движках с открытым исходным кодом, влияющих на коммерческие и конкурентные интересы, а также на денежные интересы пользователей компьютерных шахмат, которые получают топовый движок бесплатно. Научная и социальная ценность сильных программ с открытым исходным кодом бесспорна. Командная работа по обмену идеями и знаниями для написания одной из самых сильных программ, которой каждый может следовать и поделиться, чтобы учиться и играть бесплатно, определенно является сложной и мотивирующей задачей, собирающей и восхищение, и зависть. Очевидно, что профессиональные программисты коммерческих шахматных программ не так увлечены разработкой, и им необходимо совершенствоваться и / или уделять больше внимания второстепенным функциям или другим бизнес-концепциям, таким как онлайн-игра и / или проблемы пользовательского интерфейса, а не чисто игровая сила.

Также многие шахматные программисты-любители испытывают антагонизм не только из-за Stockfish с его очень уважаемыми авторами, а до этого из Fruit и немного Crafty, но и из Ippolit и всех его преемников псевдонимами и спорным происхождением. Последствия для коммерческих и конкурентных компьютерных шахмат не совсем ясны, но, по-видимому, будет происходить уменьшение числа участников турниров за бортом, и подозрения клонов могут всплывать как Дамоклов меч по сцене, независимо от того, воспринимают ли программисты идеи слишком буквально или нет.

## Платформы

Поскольку Stockfish написан на C++, его можно скомпилировать и собрать для различных процессоров и операционных систем, таких как Android, iOS, Linux, OS X и Windows. Stockfish для Macintosh был создан Дейленом Яном, который также отвечает за сайт Stockfish. Stockfish для iOS был создан Тордом Ромстадом.

## Fishtest

Среда тестирования Stockfish, получившая название Fishtest, представляет собой веб-приложение, написанное Гэри Линскоттом и основанное на волонтерских вычислениях SETI@home. Fishtest в основном написан на Python в рамках Pyramid Application Development Framework и распределяет игры по разным машинам, чтобы уменьшить задержку тестирования и увеличить пропускную способность. Компания Fishtest, начавшаяся в начале 2013 года с Stockfish 3.0, насчитывает сотни участников, по состоянию на июнь 2018 года 1130 тестировщиков и 162 разработчика активно участвуют в тестировании идей и настроек, чтобы сделать Stockfish самой сильной шахматной компанией в мире.

## Руководство по оценке

С апреля 2017 года доступно интерактивное Руководство по оценке Stockfish для ознакомления с оценкой Stockfish с помощью реализации JavaScript, выполняемой в браузере. Можно ввести строку FEN позиции, чтобы получить итоговую оценку основного термина оценки с учетом этапов игры в пределах его конической оценки, и может перемещаться по дереву подтермов и признаков с его конкретными характеристиками для данной позиции.

## Турнирная игра

Stockfish является главным претендентом на престижный Конкурс шахматных двигателей Торесена (TCEC), достигнув суперфинала с 4 сезона, и однозначно утвердил свой мировой номер один в победе в последних TCEC, оставив позади своих коммерческих конкурентов Komodo и Houdini.

## Гроссмейстер+Rybka против Stockfish

19 июля 2014 года Stockfish 5 провел матч из четырех игр против Даниэля Народицкого плюс Рыбка 3 (2008), 45 минут плюс 30-секундный прирост. Стокфиш выиграл 3½ - ½. Несколько недель спустя эксперимент продолжился с Хикару Накамурой в Берлингеме, штат Калифорния. При поддержке двух игр от Рыбки 3 Накамура проиграл ½ - 1½, две игры с форой в пешку (Stockfish черными без пешки h и b) закончились также ½-1½ в пользу Stockfish 5. Он играл в новейшую сборку разработки, скомпилированную для OS X и работающую на 3-ГГц 8-ядерном Mac Pro.

## Избранные особенности

### Представление доски

* Битборды с сопоставлением ранговых файлов Little-Endian (LERF)
* Волшебные битборды
* BMI2 - PEXT Битборды (не рекомендуется для AMD Ryzen)
* Сдельные Списки

### Поиск

* Итеративное углубление
* Стремление Windows
* Параллельный поиск с использованием потоков
	+ YBWC до Stockfish 7
	+ Ленивый SMP с Stockfish 7, январь 2016

* Поиск основного варианта

* Таблица транспозиции
	+ Shared Hash Table
	+ 10 байт на запись, 3 записи на кластер
	+ Стратегия замены, предпочтительная для глубины
	+ Нет зондирования PV-узла
	+ Prefetch
* Перемещение хода
	+ Эвристика противодействия
	+ Counter Moves History со времен Stockfish 7, январь 2016
	+ Эвристическая история
	+ Внутреннее итеративное углубление
	+ Убийца Эвристический
	+ MVV / LVA
	+ SEE
* Избирательность
	+ Расширения
		- Проверка расширения, если SEE> = 0
		- Ограниченные единственные расширения
	+ Обрезка
		- Обрезка тщетности
		- Обрезка на основе счетчиков
		- Обрезка нулевого движения
			* Динамическое уменьшение глубины на основе глубины и значения
			* Обрезка статического нулевого движения
			* Проверочный поиск на больших глубинах
		- ProbCut
		- Обрезка SEE
	+ Сокращения
		- Позднее сокращение хода
		- Бритва
	+ Поиск покоя

## Оценка

* Коническая оценка
* Оценка зерна: ~ 1/256 единицы пешки
* Материал
	+ Значения точек
		- Миттельшпиль: 198, 817, 836, 1270, 2521
		- Эндшпиль: 258, 846, 857, 1278, 2558
	+ Пара слонов
	+ Таблицы дисбаланса
	+ Материал хеш-таблицы
* Столы квадратной формы
* Космос
* Мобильность
* Ловушки
	+ Пойманные фигуры
	+ Грачи на (полу) открытых файлах
* Заставы
* Пешечная структура
	+ Пешка Хеш Стол
	+ Пешка назад
	+ Удвоенная пешка
	+ Изолированная пешка
	+ Фаланга
	+ Пройденная пешка
* Безопасность короля
	+ Атака зоны короля
	+ Пешечное укрытие
	+ Пешечная буря
	+ Контроль квадрата

### Разное

* Шахматы960
* Метод настройки Stockfish
* SPSA
* Основы Syzygy

## Даты выпуска

* Stockfish 1.0: 02 ноября 2008 г.
* Stockfish 1.01: 3 ноября 2008 г.
* Stockfish 1.1: 06 декабря 2008 г.
* Stockfish 1.1a: 8 декабря 2008 г.
* Stockfish 1.2: 29 декабря 2008 г.
* Stockfish 1.3: 02 мая 2009 г.
* Stockfish 1.3.1: 03 мая 2009 г.
* Stockfish 1.4: 5 июля 2009 г.
* Stockfish 1.5: 04 октября 2009 г.
* Stockfish 1.5.1: 11 октября 2009 г.
* Stockfish 1.6: 25 декабря 2009 г.
* Stockfish 1.6.1: 25 декабря 2009 г.
* Stockfish 1.6.2: 31 декабря 2009 г.
* Stockfish 1.6.3: 02 февраля 2010
* Stockfish 1.7: 8 апреля 2010
* Stockfish 1.7.1: 10 апреля 2010
* Stockfish 1.8: 2 июля 2010 г.
* Stockfish 1.9: 02 октября 2010
* Stockfish 1.9.1: 05 октября 2010
* Stockfish 2.0: 1 января 2011 г.
* Stockfish 2.0.1: 4 января 2011 г.
* Stockfish 2.1: 04 мая 2011 г.
* Stockfish2.1.1: 8 мая 2011 г.
* Stockfish 2.2: 29 декабря 2011
* Stockfish 2.2.1: 6 января 2012 г.
* Stockfish 2.2.2: 14 января 2012 г.
* Stockfish 2.3: 15 сентября 2012 г.
* Stockfish 2.3.1: 22 сентября 2012 г.
* Stockfish 3: 30 апреля 2013 г.
* Stockfish 4: 20 августа 2013 г.
* Stockfish DD: 29 ноября 2013 г.
* Stockfish 5: 31 мая 2014 г.
* Stockfish 6: 27 января 2015 г.
* Stockfish 7: 2 января 2016 г.
* Stockfish 8: 1 ноября 2016 г.
* Stockfish 9: 01 февраля 2018 г.
* Stockfish 10: 29 ноября 2018 г.