О решении шахматных позиций с помощьюформул логики ветвящегося времени

для тирозина, когда его концентрация в 3,5 раза превышает концентрацию фенилаланина. Полученные результаты доказывают работоспособность предложенной методики определения концентраций веществ в смеси с помощью метода нейронных сетей.

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

Библиографический список

1. Дворкин, В.И. Метрология и обеспечение качества количественного химического анализа / В.И. Дворкин. М.: Химия, 2001. С. 261.

2. Эсбенсен, К. Анализ многомерных данных / К. Эс-бенсен. Черноголовка: ИПХФ РАН, 2005. С. 158.

3. Хайкин, С. Нейронные сети / С. Хайкин. М.; СПб; Киев: Вильямс, 2006. С. 219-221, 279.

4. Тиц, Н. Энциклопедия химических лабораторных тестов / Н. Тиц. М.: Лабинформ, 1997. С. 960.

5. Ясницкий, Л.Н. Введение в искусственный интеллект / Л.Н. Ясницкий. М.: Академия, 2005. С. 37-39.

УДК 519.6

О РЕШЕНИИ ШАХМАТНЫХ ПОЗИЦИЙ С ПОМОЩЬЮ ФОРМУЛ ЛОГИКИ ВЕТВЯЩЕГОСЯ ВРЕМЕНИ

Р.В. Хелемендик

Институт прикладной математики им. М.В. Келдыша РАН, Москва, отдел теоретической математики E-mail: romash@keldysh.ru

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

Ключевые слова: логика ветвящегося времени, выполнимость, модель.

6. Аравин, О.И. Применение нейронных сетей для распознания и классификации патологий в сосудах / О.И. Аравин, А.В. Малыгин // Методы компьютерной диагностики в биологии и медицине: материалы ежегодной науч. школы-семинара 2008 г.; под ред. проф. Д.А. Усанова. Саратов: Изд-во Сарат. ун-та, 2008. С. 51.

7. Астахова, И.Ф. Системы искусственного интеллекта / И.Ф. Астахова, А.С. Потапов, В.А. Чулюков. М.: Бином. Лаборатория знаний, 2008. С. 104.

On the Solution of Chess Positions Using Computational Tree Logic

R.V. Khelemendik

Keldysh Institute of Applied Mathematics RAS, Moscow, Department of Theoretical Mathematics E-mail: romash@keldysh.ru

The paper describes a construction of four formulas of Computational tree logic corresponding to an arbitrary chess position. At least one of these formulas is satisfiable and leads to the solution of chess position: value of position (a draw or a victory of one of the sides) and necessary strategy for getting this value is constructed using the formula model.

Keywords: computational tree logic, satisfiability, model.

ВВЕДЕНИЕ

В настоящей работе представлено построение решения произвольной шахматной позиции. По заданной шахматной позиции строятся 4 формулы логики ветвящегося времени (л.в.в.), соответствующие следующим утверждениям: ©1 — белые могут выиграть, ©2 — белые могут сделать ничью, но не могут выиграть, ©з — черные могут выиграть, ©4 — черные могут сделать ничью, но не могут выиграть. При этом верны следующие утверждения: либо выполнима формула ©1, а остальные формулы невыполнимы; либо выполнимы формулы ©2 и ©4, а остальные формулы невыполнимы; либо выполнима формула ©3, а остальные формулы невыполнимы. В случае выполнимости формулы , где 1 < г < 4, по модели для нее получается стратегия белых либо черных, необходимая для достижения соответствующего результата.

Описываемый в настоящей статье логический подход позволяет теоретически решить любую по-

зицию — установить оценку и получить необходимую для ее достижения стратегию (либо опровергающую стратегию противника). Мы считаем, что одна из сторон побеждает (делает ничью) в том случае, когда она ставит противоположной стороне мат (соответственно добивается пата или троекратного повторения позиции). Вместе с тем при условии нахождения подходящей редуцируемой цели для победы или ничьей (например, выигрыша материала, достижения определенной позиции, занятия или контролирования ключевого поля [1]) такой подход позволяет решить позицию и практически, получив оценку и стратегию (решающую или опровергающую), используя мощности современных компьютеров. Отметим, что считающаяся наилучшей (чемпион мира среди компьютерных программ) в настоящее время компьютерная программа «Рыбка» [2] позволяет просчитывать и анализировать шахматные позиции лишь на некоторую глубину, что, вообще говоря, не всегда позволяет установить оценку позиции и требуемые для ее достижения ходы.

Кроме однократного применения описываемого в статье логического подхода для анализа позиций, возможен многократный — метод последовательных приближений, несколько похожий на логический вывод из гипотез. Пусть требуется установить оценку достаточно сложной позиции. Шахматист сначала пробует выяснить, может ли он из этой позиции достичь некоторого класса других позиций, которые ему кажутся более предпочтительными для достижения нужного результата. Затем пробует из них достичь следующего класса более предпочтительных позиций и т.д. Таким образом, глобальная цель (мат или ничья) может быть сведена к последовательности локальных, достижимость которых может быть изучена за приемлемое время. Такой метод является логической реализацией известного в шахматах «мышления схемами» [3], которое с математической точки зрения является разбиением задачи на подзадачи. При этом сложность достижения локальных целей может быть найдена с помощью применения аппарата рекуррентных форм, изложенного в [4].

Л.в.в. в настоящее время изучается в основном в работах зарубежных исследователей и применяется к анализу свойств компьютерных программ [5]. Разрешимость проблемы распознавания выполнимости для этой логики установлена в [6]. Излагаемый в настоящей статье логический подход к решению произвольной шахматной позиции представляет собой на примере шахмат (как модельного объекта) хороший материал для идей и методов применения логики ветвящегося времени. Кроме того, представляет интерес общая структура формул, записывающих позицию, а также вопрос описания классов формул логики ветвящегося времени, которые «эквивалентны шахматам», с тем, чтобы получая шахматное решение, построить по нему модель, которая будет служить решением для другой задачи. Примеры такого подхода содержатся в работе [1], в которой задача сохранения сервера в безопасности системным администратором трансформирована в подходящую шахматную позицию, решение которой дает искомую стратегию системному администратору.

1. ЛОГИКА ВЕТВЯЩЕГОСЯ ВРЕМЕНИ

В настоящем разделе даются определения формулы логики ветвящегося времени, модели, истинности формулы в вершине модели, выполнимости и общезначимости.

Каждая пропозициональная переменная есть формула. Если <, ф формулы, то 0, являющаяся одним из 12 выражений: Т, (< Л ф), (< V ф), V О<, 3 О<, V П<, 3 <, V 0<, 3 0<, V (<Оф), 3 (<Оф) тоже называется формулой. Других формул нет.

Модель — это пара М = (Г, Ь), где Г - это связный ориентированный граф с выделенной вершиной и0, а Ь — функция означивания, сопоставляющая каждой вершине множество пропозициональных переменных. Полным путём в графе называется бесконечный путь или цепь, последняя вершина которой не имеет сыновей.

Истинность формулы 0 в вершине щ модели М (обозначим это М, щ = 0) определяется индуктивно.

— если 0 = Т [0 = р], то М,щ = 0 [М, щ = 0 ^ р е Ь(щ)];

— если 0 = (< Л ф) [0 = (< V ф)], то М, щ = 0 ^ (М, щ= < и [или] М, щ = ф);

— если 0 = —<, то М, щ = 0 ^ М, щ = < (неверно М, щ = <);

— если 0 = (< ^ ф), то М, щ = 0 ^ (М, щ |= —< или М, щ = ф);

— если 0 = V О <, то М, щ = 0 ^ для каждого сына щ вершины щ верно М, щ = <; либо вершина щ сыновей не имеет;

— если в = 3 Op, т0 M, щ |= в ^ существует хотя бы один сын щ вершины щ, и верно M, Uj |= p;

— если в = V Dp [в = 3 Dp], то M, щ |= в ^ для каждого полного пути [существует полный путь] в графе с началом в вершине щ в каждой его вершине щ верно M, щ = p;

— если в = V Op [в = 3 Op], то M, щ = в ^ для каждого полного пути [существует полный путь] в графе с началом в вершине щ найдется вершина щ этого пути, для которой верно M, Uj = p;

— если в есть V (pO-0) [3 (pO-0)], то M, щ = в ^ для каждого полного пути [существует полный путь] в графе с началом в вершине щ найдется вершина щ этого пути, для которой верно M, Uj = -0, а в каждой вершине Uk этого пути, предшествующей Uj, верно M, Uk = p.

Формула в истинна в модели M, если она истинна в выделенной вершине и0 этой модели. Формула в выполнима, если она истинна в некоторой модели. Формула в общезначима, если она истинна в каждой модели.

2. ПОСТРОЕНИЕ ФОРМУЛЫ ПО ПОЗИЦИИ. ЗАПИСЬ ИСХОДНОЙ ПОЗИЦИИ

Все 4 формулы ©ь ©2, ©з, ©4, которые строятся по заданной шахматной позиции, имеют следующую структуру:

Init Л Rules Л Aim.

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

Следуя работе [7], введем 69 переменных: yo,yi,..., yes, каждая из которых может принимать значения из конечного множества {0,1,..., 12}. Будем интерпретировать значения этих переменных следующим образом. Переменная y0 принимает значения из множества {0,1}: в случае y0 =0 в позиции ход белых, а в случае y0 = 1 в позиции ход черных. Переменные y1,... , ye4 соответствуют клеткам шахматной доски, занумерованных слева направо и затем снизу вверх, начиная от поля а1 (левого нижнего углового поля). Переменная yj, где 1 < i < 64, принимает значение 0, если i-е поле пусто. При yj = 1 (yj = 7) на поле i находится белый (черный) король. При yj = 2 (yj = 8) на поле i находится белый (черный) ферзь. При yj = 3 (yj = 9) на поле i находится белая (черная) ладья. При yj =4 (yj = 10) на поле i находится белый (черный) слон. При yj =5 (yj = 11) на поле i находится белый (черный) конь. При yj = 6 (yj = 12) на поле i находится белая (черная) пешка. Переменная ye5 (yee) принимает значение 0, если своим последним ходом белые (черные) не ходили пешкой на два поля; в противном случае переменная ye5 (yee) есть число от 1 до 8, соответствующее номеру вертикали, по которой ходила данная пешка. Переменная ye5 (yee) используется для проверки возможности специального шахматного хода — «взятия пешки на проходе». Переменная ye7 (yes) принимает значение от 0 до 3, которое соответствует возможности рокировки белых (черных) в длинную и/или короткую стороны, либо невозможности рокировки вообще (так, например, если ранее ходил король и участвующая в рокировке ладья, то по шахматным правилам рокировка невозможна).

Шахматную позицию будем называть легальной в узком смысле (или просто легальной), если у белых и черных по королю и при ходе белых (черных) черный (белый) король не находится под шахом. Таким образом, всякая позиция, полученная при соблюдении шахматных правил из начальной позиции, с которой начинается шахматная партия, является легальной, а обратное, вообще говоря, неверно. Набор значений переменных y = (y0,y1 ,...,yes} будем называть легальным, если он соответствует легальной позиции.

Для кодирования набора y введем 271 пропозициональную переменную p0,pi,.. . p270 и установим соответствие между первыми 269 переменными и значениями набора y следующим образом. Для удобства записи истинность переменной pj, где 0 < i < 268, будем обозначать через pj = 1, а ее ложность — через pj = 0. Тогда p0 = 0 ^ y0 = 0, p0 = 1 ^ y0 = 1. При 1 < i < 66 значения переменных p4(j-1)+1 ,p4(j-1)+2,p4(j-1)+3,p4j определяются по значению переменной yj. Значение p4(j-1)+k, где 1 < к < 4 равно значению k-го слева разряда в двоичной записи значения переменной yj. При 67 < i < 68 значения переменных p2e5,... ,p2es определяются по значению переменной yj:

P264+2(i-67)+k, где 1 < k < 2, равно значению k-го слева разряда в двоичной записи значения переменной yj. Таким образом, набору значений переменных y однозначно соответствует набор истинностных значений пропозициональных переменных po,Pi, •••Р268 • При переходе от значений переменных y к пропозициональным переменным коньюнкцию Дi=0, где a е {0,1}, а p* есть p при а = 1, и есть —pj при aj = 0, будем обозначать формулой P(y). Обозначим также через у0 набор y, соответствующий исходной позиции. Тогда

/nit = P (у0 )•

Интерпретация переменных p269 и p270 будет дана в следующем разделе.

3. ЗАПИСЬ ШАХМАТНЫХ ХОДОВ

В данном разделе строится вторая компонента конъюнкции (1) — формула Rules, записывающая все легальные позиции, получающиеся из исходной позиции, кодируемой формулой Init.

Пусть p0 = 0, т.е. у0 = 0, — в позиции, характеризующейся набором у, ход белых. Обозначим через WhiteMoves(y) множество всех легальных позиций, соответствующих позициям после всех допустимых ходов белых, сделанных в позиции y. Согласно шахматным правилам ход белой фигуры или пешки (в дальнейшем пешки будем также называть фигурами) будем считать допустимым, если он выполнен по шахматным правилам для данной фигуры и после его выполнения белый король не находится под шахом, т.е. поле, на котором он стоит, не будет атаковать ни одна из черных фигур. Поскольку всего имеется 6 видов фигур, положим

WhiteMoves(y) = WhiteKing(y) U WhiteQueen(y) U WhiteRook(y)U

UWhiteBishop

и построим эти 6 множеств позиций, соответствующих ходам данного типа фигур.

Однако сначала введем встречающуюся в построении данных множеств формулу Sa/eWKing:

Sa/eWKing(y) ^ 3 i((1 < i < 64) Л (yj = 1) Л Sa/eWKingN(y,i)A

ASa/eWKingP(y,i) A Sa/eWKingK(y,i) A Sa/eWKingRQ(y, i) A Sa/eWKingBQ(y, i)),

которая истинна тогда и только тогда, когда белый король, стоящий на поле i, не находится под ударом ни одной неприятельской фигуры. Формула Sa/eWKingN:

Sa/eWKingN(y,i) ^ Д Sa/eWKingNMove(y, i, l) 1<1<8

истинна тогда и только тогда, когда белый король не находится под ударом черного коня, у которого для этого, вообще говоря, есть не более 8 вариантов направлений для нападения, каждое из которых проверяется формулой

Sa/eWKingNMove(y, i, l) ^ —(PN(i,l) A (yfN(j>1) = 11)),

где PN(i, l) проверяет нападение на белого короля с направлений, близким к крайним вертикалям и горизонталям, а /N(i,l) дает поле для коня, нападающего на короля с направления l:

PN

((xv (i ((xv (i ((xv (i ((xv (i

((Xv (i

((xv (i ((xv (i ((xv (i

< 6) A

< 7) A

> 2) A

> 3) A

> 3) A

> 2) A

< 7) A

< 6) A

/N (i /N (i /N (i /N (i

/N

1) 2)

3)

4)

+ 10, + 17,

+ 15, + 6, i - 10, i - 17, i - 15, i — 6.

Формула £аг>е^КгпдР:

£а/е"^КгпдР(у, г) ^ Д ^а/е^КгпдРМо^у, г, I),

1<г<2

где

£а/е"^КгпдРМо-ие

п((жэ(г) < 6) Л (XV(г) > 2) Л (уг+7 = 12)), п((жэ(г) < 6) Л (г) < 7) Л (уг+д = 12)),

проверяет отсутствие угрозы белому королю со стороны возможной черной пешки, нападающей на него с одной из соседних диагоналей. Здесь и далее хд(г) = |_(г — 1)/8] + 1, (г) = г — 8  (хд(г) — 1) — соответственно горизонталь и вертикаль, на которой находится поле с номером г, где 1 < г < 64. Формула £а/е^КгпдК:

^а/е^КгпдК(у, г) ^ Д ^а/е^КгпдКМо^е(у, г, I) 1<1<8

проверяет отсутствие нападения на белого короля со стороны черного короля. Необходимость этой формулы вызвана проверкой на легальность позиции после предшествующего хода белого короля. Здесь

£а/е"^КгпдКМог>е(у, г, I) ^ -(РК(г,1) Л (у/к(м) = 7)),

РК

Xv (г) < 7),

хд (г) < 7),

Xv(г) > 2),

хд (г) > 2),

/К (г /К (г

г + 9, г + 7, г — 9, г — 7,

, 5) , 6)

г + 1, г + 8,

/К(г, 7) ^ г — 1, /К(г, 8) ^ г — 8,

и РК проверяет возможность хода короля на крайних вертикалях и горизонталях, а /К дает новое поле короля после хода, сделанного с поля г в направлении I. Формула £аг>е^КгпдРд:

^а/е^КгпдРд

1<1<4

проверяет отсутствие нападения на белого короля черной ладьи и ферзя по вертикали или горизонтали. Здесь

^а/е^КгпдРдМо^е5(у,г,1) ^ Д £а/е^КгпдРдМоие(у, г, I, к),

1<к<7

^а/е^КгпдРдМо^е(у, г, I, к) ^ -(РР/(г, I, к) Л РР(г, I, к) Л ((у/Д(М,*) =8) V (у/Л(М,к) = 9))),

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

РР/(г, 2, к) ^ (хд(г) — к > 1), РР/(г, 1, к) ^ (1 < к < 8 — XV(г)), РР/(г, 3, к) ^ (хд(г) + к < 8),РР/(г, 4, к) ^ (1 < к < XV(г)), РР(г, 2, к) ^ V к((1 < к < к) ^ = 0), /Р(г, 2, к) ^ г — 8  к,

РР

V к

V к

^ уг+л = 0), ^ = 0),

/Р(г, 1, к) ^ г + к, /Р(г, 3, к) ^ г + 8  к,

РР(г, 4, к) ^ V к((1 < к < к) ^ = 0), /Р(г, 4, к) ^ г — к.

Аналогичным образом формула £аг>е"КгпдВд

£а/е"КгпдВд

1<1<4

проверяет отсутствие нападения на белого короля, слона или ферзя по диагонали.

£а/е"КгпдВдМо-ие5(у,г,г) ^ Д £а/е"КгпдВдМо-ие(у, г, I, к),

1<к<7

£а/е"КгпдВдМо-ие(у, г, I, к) ^ — (РВ/(г, I, к) Л РВ(г, I, к) Л ((у/в(г,г,к) =8) V = 10))),

РВ/(г, 1, к) ^ ((1 < к < 8 - (г)) Л (хэ(г) + к < 8)), РВ/(г, 2, к) ^ ((1 < к < 8 - х„(г)) Л (хэ(г) - к > 1)), РВ/(г, 3, к) ^ ((1 < к < х„(г)) Л (хд(г) + к < 8)), РВ/(г, 4, к) ^ ((1 < к < х„(г)) Л (хд(г) - к > 1)).

РВ(г, 1, к) ^ V к((1 < к < к) ^ = 0), /В(г, 1, к) ^ г + к + 8  к,

Рв(г, 2, к) ^ V к((1 < к < к) ^ = о), /В(г, 2, к) ^ г + к - 8  к,

Рв(г, 3, к) ^ V к((1 < к < к) ^ уг-л+8^ = о), /В(г, 3, к) ^ г - к + 8  к, Рв(г, 4, к) ^ V к((1 < к < к) ^ уг-л-8^ = 0), /В(г, 4, к) ^ г - к - 8  к.

Формула $аг>е"Кгпд полностью определена. Аналогичным образом строится формула 5а/еВКгпд, которая истинна тогда и только тогда, когда черный король не находится под ударом ни одной белой фигуры.

Построим теперь компоненты множества "кг£еМог>ез. Множество позиций, получающихся после хода белого короля — "кг£еКгпд, — состоит из позиций, получаемых после обычного хода короля и, быть может, двух позиций, полученных после выполнения рокировок:

"кг£еКгпд = и1<г<64,у4=1 (и1<г<8"кг£еКгпдМо-е(г, I) и "кг£еКРООО(г) и "кг£еКРОО(г)).

Множество "кг£еКгпдМог>е(г, I) состоит из не более чем одной позиции г, соответствующей ходу короля в направлении I:

"кг£еКгпдМо-е(г,г) = (г |РК(г,1), з = /К(г,1), ((8 < у- < 12)V

V(yj = 0)), V ¿(((1 < I < 68) Л (£ е (г, 3, 65, 68})) ^ г = у), г = 0,

= 1, ¿65 = 0, ¿68 = /КВО(з, уб8), го = 1, £а/еКгпд(г)}.

При этом новое поле з может быть либо пустым (у- = 0), либо содержать черную фигуру, отличную от короля (8 < у- < 12). В новой позиции, кроме полей г и 3, на остальных полях изменений не происходит. После хода белого короля г65 = 0, так как данный ход не является ходом белой пешки на два поля. Кроме того, может изменится значение переменной г68, если своим ходом белые лишают черных одной из возможностей рокировки, что определяется функцией /КВО:

/КВОДУ68)

2  [^68/2], при 3 =57,

У68 - 2  [^68/2], при з = 64, У68, при з е (57, 64}.

Рокировка белых в длинную сторону кодируется множеством "кг£еКРООО, состоящим не более чем из одного элемента:

"ШеКРООО(г) = (г |Р"КРООО(г), V ¿(((1 < I < 68) Л (£ / (1,3,4, 5, 65, 67})) ^

^ г = у), ¿1 = 0, = 1, ¿4 = 3, ¿5 = 0, ¿65 = 0, ¿67 = 0, ¿о = 1, £а/еКгпд(г)}.

Возможность рокировки белых проверяется формулой

Р"КРООО(г) ^ ((г = 5) Л (у1 =3) Л (у67 - 2  [у67/2] = 1) Л = 0)Л

л(уз = 0) Л (У4 = 0) Л V t((1 < t < 68) ^ < = yt) Л (z0 = 1)Л

Sa/eKing(z") Л V t(((1 < t < 68) Л (t £ {4, 5, 65})) ^ zt = yt)Л

Л(^4 = 1) Л (z5 =0) Л (z65 =0) Л (z0 = 1) Л Sa/eKing^z')),

которая истинна лишь в случае, если белый король и левая белая ладья еще не ходили, все три поля между ними свободны, белый король не находится под шахом, не проходит через битое поле и не будет находиться под шахом после рокировки. Рокировка белых в короткую сторону рассматривается аналогично:

WhiteKROO(i) = {z | PWKROO(i), V t(((1 < t < 68) Л (t / {5,6, 7,8,65,67})) ^

^ Zt = yt), Z5 = 0, Z6 = 3, Z7 = 1, Z8 = 0, Z65 = 0, ze7 = 0, z0 = 1, Sa/eKing(z)},

PWKROO(i) ^ ((i = 5) Л (y8 =3) Л (Ly6r/2J =1) Л (y6 = 0)Л

Л(у7 = 0) Л V t((1 < t < 68) ^ zf = yt) Л (z0 = 1)Л

ЛSa/eKing(z//) Л V t(((1 < t < 68) Л (t / {5, 6, 65})) ^ zt' = у^Л

Л(z6 = 1) Л (z5 =0) Л (z65 =0) Л (z0 = 1) Л Sa/eKing(z')).

В позиции, получаемой после рокировки, изменяется содержимое 4-х клеток шахматной доски — обнуляются поля с прежними положениями короля и ладьи, а прежде пустые поля, на которые перемещаются король и ладья, теперь принимают значения 1 и 3. Кроме того, белые уже навсегда лишаются возможности (повторной) рокировки: начиная с этого хода — z67 = 0.

Построим теперь множество позиций WhiteRook, получающихся после хода любой белой ладьи:

WhiteRook = Ui<j<64,yi =3 Ui<¿<4 WhiteRookMoves(i, l),

WhiteRookMoves(i, l) = UkeR1 (¿¡1) WhiteRookMove(i, l, k).

Каждый ход ладьи выполняется в одном из 4-х направлений на длину, не превосходящую k свободных клеток, и эта длина определяется множеством R/:

R/(i, 2) = {k | xg(i) - k > 1}, R/(i, 1) = {k 11 < k < 8 - x„(i)},

R/(i, 3) = {k | xg(i) + k < 8}, R/(i,4) = {k 11 < k < x„(i)}. Множество WhiteRookMove состоит не более чем из одной позиции:

WhiteRookMove(i, l, k) = {z|PR(i, l, k), j = /R(i, l, k), ((8 < y, < 12) V

V(y¿ = 0)), V t(((1 < t < 68) Л (t £ {i, j, 65,67,68})) ^ zt = yt),

z¿ = 0, zj = 3, z65 = 0, z67 = /WRK(i, y67), z68 = /KBO(j, y68), zo = 1, Sa/eKing(z)}.

Формула PR, функция /К, а также функция /KBO были введены ранее при определении формулы SaveWKing и множества WhiteKing. Функция /WRK фиксирует потерю возможности рокировки белыми в длинную или короткую стороны в случае хода белой ладьей с углового поля:

/WRK

2  Ly67/2J, при i = 1,

y67 - 2  Ly67/2J, при i =8, y67, при {1, 8}.

Множество позиций ^кг^еРгзкор, получающихся после хода любого белого слона, записывается аналогично множеству ^кг£еРоок с заменой вертикальных и горизонтальных направлений диагональными:

^кг^еРгзкор = и1<г<б4)У4 =4 и1<1<4 ^кг£еВг5корМог>е5(г, I), ^кг^еВг5корМог>е5(г, I) = икеВ/(г>1)^кг£еВг5корМог>е(г, I, к),

В/(г, 1) = (к 11 < к < 8 - х„(г),хд(г) + к < 8}, В/(г, 2) = (к 11 < к < 8 - х„(г),хэ(г) - к > 1}, В/(г, 3) = (к 11 < к < х„(г), хд(г) + к < 8}, В/(г, 4) = (к 11 < к < х„(г),хэ(г) - к > 1},

"кг^еВгзкорМо-е(г, I, к) = (г|РВ(г,1,к),з = /В(г, I, к), ((8 < ^ < 12)V

V(yj = 0)), V ¿(((1 < I < 68) Л (* е (г, з, 65, 68})) ^ ¿г = у), ¿г = 0,

г- = 4, ¿65 = 0, ¿68 = /КВО(з, у68), ¿о = 1, £а/еКгпд(г)}.

Множество позиций "кг^ед^ееп, получаемых после хода (любого) белого ферзя, является объединением ходов ферзя по вертикали и горизонтали, т.е. ходом ладьи, и ходов ферзя по диагонали, т.е. ходом слона:

"кг^едиееп = и1<г<64)У4 =2(и1<1<4"кг^едВМо-ез(г, I) и1<1<4 "кг^едДМо-ез(г, I)),

"кг^едВМо-ез(г,г) = икеШ(М)"кг£едВМо-ие(г, I, к),

"кг^едДМо-ез(г,г) = икеЛ/(М)"кг£едДМо-ие(г, I, к),

"кг^едВМо-е(г,1,к) = (г| РВ(г, I, к),з = /В(г,1,к), ((8 < у < 12^

V(yj = 0)), V ¿(((1 < I < 68) Л (* е (г, з, 65, 68})) ^ ¿г = у), ¿г = 0,

= 2, ¿65 = 0, ¿68 = /КВО(з, у68), ¿о = 1, £а/еКгпд(г)},

"кг^едДМо-е(г,1,к) = (г| РД(г,1,к),з = /Д(г,/,к), ((8 < у < 12)V

V(yj = 0)), V ¿(((1 < I < 68) Л (* е (г,з, 65, 68})) ^ ¿г = у), ¿г = 0,

= 2, ¿65 = 0, ¿68 = /КВО(з, у68), ¿о = 1, £а/еКгпд(г)}.

Множество позиций "кг£еКЖгдк£, получаемых после хода любого белого коня, строится аналогично множеству "кг£еКгпд ходов белого короля за вычетом хода-рокировки:

"ШеКЖгдк^ = и1<г<64,№=5 и1<г<8 "кг^еКЖгдк^Мо-е(г, I), "кг^еКЖгдк^Мо-е(г,1) = (г|РЖ(г, I),з = /Ж(г,1), ((8 < у- < 12)V V(yj = 0)), V ¿(((1 < I < 68) Л (* е (г,з, 65, 68})) ^ ¿г = у), ¿г = 0, ¿5 = 5, ¿65 = 0, ¿68 = /КВО(з, у68), ¿о = 1, £а/еКгпд(г)}.

Множество позиций "кг^еРа-^п после ходов белых пешек состоит из множества обычных ходов белых пешек на одно поле (включая взятие фигуры) — "кг^еРа^пМо-е1, множества ходов белых пешек со 2-й горизонтали на два поля — "кг^еРа^пМо-е2, множества специальных ходов взятия на проходе — "кг^еРа^пМо-еЕР и множества ходов-превращений (в том числе путем взятия фигуры) пешек на 8-й горизонтали в другую фигуру — "кг£еРа^пМог>е8:

"кг^еРа^п = и1<г<64)У4 =6(и1<1<3"кг^еРа^пМо-е1(г, I) и "кг£еРа^пМог>е2(г)и и(и1<г<2"№Ра^пМо-еЕР(г,1)) и (и^о и1<г2<4 "кг£еРа^пМо-е8(г, ¿1, ¿2))).

Определим последовательно эти множества:

"кг£еРа^пМо-ие1(г,0 = (г|Р"Р 1(г,1), з = /"Р(г,1), V ¿(((1 < £ < 68)Л Л(£ е (г,з, 65})) ^ ¿г = уг), ¿г = 0, = 6, ¿65 = 0, ¿о = 1, £а/е"Кгпд(г)}.

Формула PWP1 проверяет возможность продвижения белой пешки на одно поле или взятия фигуры, а функция /WP дает новое поле для данной белой пешки:

PWP 1(i, 1) ^ ((xv(i) > 2) Л (xg(i) < 6) Л (8 < yí+7 < 12)), PWP 1(i, 2) ^ ((xv(i) < 7) Л (xg(i) < 6) Л (8 < yí+g < 12)), PWP 1(i, 3) ^ ((xg(i) < 6) Л (yí+8 = 0)), /WP(i, 1) ^ i + 7, /WP(i, 2) ^ i + 9, /WP(i, 3) ^ i + 8,

WhitePawnMove2(i) = {z|PWP2(i, l), j = i + 16, V t(((1 < t < 68)Л

Л(t / {i, j, 65})) ^ zt = yt), z¿ = 0,zj = 6,z65 = xv(i),zo = 1,Sa/eWKing(z)}.

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

PWP2(i) ^ ((xg(i) = 2) Л (yí+8 =0) Л (yí+i6 = 0)). При ходе пешкой «взятие на проходе»:

WhitePawnMoveEP(i,1) = {z|PWPEP(i,1), j = /WP(i,1), V t(((1 < t < 68)Л

Л(t / {i, j — 8, j, 65})) ^ zt = yt), zi = 0, zj-8 = 0, zj = 6, z65 = 0, z0 = 1, Sa/eWKing(z)} основной задачей является проверка возможности этого хода с помощью формулы PWEP:

PWPEP(i, 1) ^ ((xv (i) > 2) Л (xg (i) = 5) Л (yi-i = 12) Л (yí+7 = 0) Л (y66 = xv (i) - 1)),

PWPEP(i, 2) ^ ((xv (i) < 7) Л (xg(i) = 5) Л (yi-i = 12) Л (yí+g = 0) Л (y66 = xv (i) + 1)).

Наконец, ход-превращение белой пешки, характеризующий позиции из множества WhitePawn Move8, —

WhitePawnMove8(i, li= {z|PWP8(i,1i), j = /WP(i,1i), V t(((1 < t < 68)Л

Л(t / {i,j, 65,68})) ^ zt = yt),zi = 0, zj = l2 + 1,z65 = 0,z68 = /KBO(j,y68),zo = 1,Sa/eWKing(z)}

— является комбинацией 3-х вариантов хода пешкой (2-х вариантов взятия и обычного хода на одно поле) и 4-х вариантов ее превращения в одну из белых фигур. Формула PWP8, проверяющая возможность этого хода, строится аналогично формуле PWP1:

PWP8(i, 1) ^ ((xv(i) > 2) Л (xg(i) = 7) Л (8 < yi+7 < 11)), PWP8(i, 2) ^ ((xv(i) < 7) Л (xg(i) = 7) Л (8 < y^g < 11)), PWP8(i, 3) ^ ((xg(i) = 7) Л (yi+8 = 0)).

Поскольку ходом-превращением пешки белые, вообще говоря, могут взять черную ладью, находящуюся на угловом поле, при четвертом типе ходов пешек значение 68-й переменной может, вообще говоря, измениться — черные потеряют возможность рокировки в соответствующую сторону.

Множество WhiteMoves(y) полностью определено. Множество BlackMoves(y), состоящее из всех позиций, получающихся после всех допустимых ходов черных фигур, строится аналогичным образом — при p0 = 1, т.е. при y0 = 1.

Построим теперь формулы, содержащие новые позиции, получаемые из множеств WhiteMoves(y) и BlackMoves(y). Переменную y269 (y270) будем рассматривать как индикатор непустоты множества WhiteMoves(y) (множества BlackMoves(y)). Если множество WhiteMoves(y) непусто, то положим

WMi(y) ^ ((P(y) Л ( V V оP(z))) Л Р269),

WhiteMoves

WM2 (y) ^ ((P (y) Л ((Л 3 OP(z)) ЛV о ( V P(z))))) Л Р269),

WhiteMoves

а иначе —

WMi(y) = WM2(y) ^ ((P(y) A V ОP(y)) A —P269)• Аналогичным образом, если множество BlackMoves(y) непусто, то положим

BMi(y) ^ ((P(y) A (( Д 3ОP(z)) AVO( V P(z)))) AP270),

zGBlackMoves

BM2(y) ^ ((P(y) A ( V V OP(z))) AP270),

ZGBlackMoves

а иначе —

BMi(y) = BM2(y) ^ ((P(y) A V ОP(y)) A —P270)• Тогда формулы Rules1 -Rules4 таковы:

Rulesi = Rules2 ^ V ((—p0 A ( \/ WMi(y))) V (p0 A ( \/ BMi(y)))),

yeLW yesw

Ruless = Rules4 ^ V ((—p0 A ( \/ WM2(y))) V (p0 A ( \J BM2(y)))),

Обозначим через Leg(y0) множество, состоящее из позиции y0 и всех легальных позиций, полученных из y0. Тогда положим

LW = {y|y0 = 0,y е Leg(y0)}, LB = {y|y0 = 1,y е Leg(y0)}•

Поскольку исходная позиция y0 входит в формулу /nit, а все последующие легальные позиции получаются по формулам WMi(y), WM2(y), BMi(y) и BM2(y), множества LW, LB и, следовательно, формулы Rulesi-Rules4 полностью определены.

4. ЗАПИСЬ ЦЕЛЕЙ. ЗАВЕРШЕНИЕ ПОСТРОЕНИЯ ФОРМУЛ

В настоящем разделе завершается построение формул ©i-©4 — строятся четыре основные цели: Aimi — белые могут выиграть; Aim2 — белые могут сделать ничью, но не могут выиграть; Aim3 — черные могут выиграть; Aim4 — черные могут сделать ничью, но не могут выиграть:

Aimi ^ V 0(((p0 A P(y)) A —Sa/eBKing(y)) A —P270),

Aim2 ^ ((V (^ V ((—p0 A P(y)) A (p269 V Sa/eWKing(y))) A V З OT) A — Aimi),

Aim3 ^ V ♦(((—p0 A P(y)) A —Sa/eWKing(y)) A —P269),

Aim4 ^ ((V (—p0 V ((p0 A P(y)) A (p269 V Sa/eBKing(y))) A V З OT) A —Aim3)•

Формула Aimi утверждает, что при любой игре черных получится такая позиция, в которой ход черных, их король атакован, и у черных нет защиты (допустимых ходов), т.е. черным — мат. Формула Aim2 утверждает, что белые всегда (при любой игре черных) могут избежать мата своему королю, но не всегда (не при любой игре черных) могут выиграть — сами поставить мат. Такое описание цели Aim2 в силу семантики логики ветвящегося времени и построения формулы Rules2 включает в себя случай пата белым, а также троекратного повторения позиции. Смысл формул Aim3 и Aim4 аналогичен смыслу формул Aimi и Aim2 соответственно с заменой белого цвета на черный. Определим теперь формулы ©i-©4:

©i ^ ((/nit A Rulesi) A Aimi),

©2 ^ ((/nit A Rules2) A Aim2), ©3 ^ ((/nit A Rules3) A Aim3), ©4 ^ ((/nit A Rules4) A Aim4)-Построение формул ©i-64 завершено.

5. РАСПОЗНАВАНИЕ ВЫПОЛНИМОСТИ ПОСТРОЕННЫХ ФОРМУЛ. ПОЛУЧЕНИЕ РЕШЕНИЯ И ЕГО ОБОСНОВАНИЕ

Распознавание выполнимости построенных формул л.в.в. ©1-©4 для данной задачи удобно проводить табличным алгоритмом распознавания выполнимости формул л.в.в., детально описанным в [8]. В этой работе доказаны теоремы о корректности и полноте данного алгоритма: если алгоритм дал ответ, что формула © выполнима и построил модель М, то формула © действительно выполнима и истинна в модели М; если формула © выполнима, то алгоритм даст ответ, что формула © выполнима и построит некоторую модель М, в которой эта формула истинна. Для формул ©1 -©4 имеет место следующая теорема.

Теорема. Формула ©1 (©3) выполнима тогда и только тогда, когда в исходной позиции белые (чёрные) могут выиграть. Формула ©2 (©4) выполнима тогда и только тогда, когда в исходной позиции белые (чёрные) могут сделать ничью, но не могут выиграть.

В случае выполнимости формулы ©1, либо ©2 (формулы ©3, либо ©4), по модели для нее получается стратегия белых (черных) — первый ход и последующие ходы на ответы черных (белых), при которой белые (черные) побеждают, либо делают ничью. Каждая вершина в модели соотвествует шахматной позиции, а дуга из одной вершины в другую — сделанному ходу. Примеры стратегий, получаемых по моделям для формул, содержатся в [1].

Работа выполнена при финансовой поддержке программы фундаментальных исследований Отделения математических наук РАН секция «Алгебраические и комбинаторные методы математической кибернетики» (проект «Задачи оптимального синтеза управляющих систем»).

Библиографический список

1. Хелемендик, Р.В. Элементы математической логики и возможности ее приложений / Р.В. Хелемендик. М.: МАТИ. 2009. с. 124.

2. http://rybkachess.com

3. Капабланка, Х.Р. Учебник шахматной игры / пер. с англ.; 2-е изд.; под ред. с предисл. и коммент. М.М. Ботвинника / Х.Р. Капабланка. М.: Физкультура и спорт. 1995. 151 с.

4. Твердохлебов, В.А. Геометрические образы законов функционирования автоматов / В.А. Твердохлебов. Саратов: Науч. книга, 2008. 183 с.

5. Emerson, E.A. Automated temporal reasoning about reactive systems / E.A. Emerson // Logics for concurrency. Lecture Notes in Computer Science. Berlin: Springer, 1996. Vol. 1043. P. 41-101.

6. Emerson, E.A. Decision Procedures and Expressi-

veness in the Temporal Logic of Branching Time / E.A. Emerson, J.I. Halpern // J. of Computer and System Sciences. Feb. 1985. Vol. 30, № 1. P. 1-24.

7. Хелемендик, Р.В. О единой формальной записи всех допустимых ходов в любой шахматной позиции / Р.В. Хелемендик // Синтез и сложность управляющих систем: материалы XVI Междунар. шк.-семинара (Санкт-Петербург, 26-30 июня 2006 г.) / под ред. О.Б. Лупанова. М.: Изд-во мех.-мат. ф-та Моск. ун-та, 2006. С. 108-112.

8. Хелемендик, Р.В. Алгоритм распознавания формул логики ветвящегося времени и эффективный алгоритм построения выводов общезначимых формул из аксиом / Р.В. Хелемендик // Математические вопросы кибернетики: сб. ст. / под ред. О.Б. Лупанова. М.: Физматлит, 2006. Вып. 15. С. 217-266.