Задача о ходе коня

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Анимация прохождения коня через все клетки поля шахматной доски 5 × 5

Задача о ходе коня — задача о нахождении маршрута шахматного коня, проходящего через все поля доски по одному разу.

Эта задача известна по крайней мере с XVIII века. Леонард Эйлер посвятил ей большую работу «Решение одного любопытного вопроса, который, кажется, не подчиняется никакому исследованию», датированную 1759 годом[1]. В письме к Гольдбаху[2] он сообщал:

…Воспоминание о предложенной когда-то мне задаче послужило для меня недавно поводом к некоторым тонким изысканиям, в которых обыкновенный анализ, как кажется, не имеет никакого применения… Я нашёл, наконец, ясный способ находить сколько угодно решений (число их, однако, не бесконечно), не делая проб.

Формулировка задачи

[править | править код]
Граф, соответствующий шахматной доске 8 × 8. Указанные степени вершин показывают количество различных ходов коня из соответствующих полей доски

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

Для доски 8 × 8 количество всех замкнутых маршрутов коня (гамильтоновых циклов) без учёта направления обхода равно 13 267 364 410 532[3]. Количество всех незамкнутых маршрутов (с учётом направления обхода) равно 19 591 828 170 979 904.

Методы решения

[править | править код]

Метод Эйлера

[править | править код]

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

Рассмотрим в качестве примера следующий маршрут:

55 58 29 40 27 44 19 22
60 39 56 43 30 21 26 45
57 54 59 28 41 18 23 20
38 51 42 31 8 25 46 17
53 32 37 a 47 16 9 24
50 3 52 33 36 7 12 15
1 34 5 48 b 14 c 10
4 49 2 35 6 11 d 13

Сначала попытаемся из незамкнутого маршрута сделать замкнутый. Для этого рассмотрим, куда можно пойти с полей 1 и 60. С поля 1 можно пойти на поля 2, 32 и 52, а с 60 — на 29, 51 и 59. В этих двух наборах есть поля, различающиеся на единицу, а именно — 51 и 52. Благодаря этому можно сделать маршрут замкнутым, обратив его часть. Для этого перенумеруем поля с 52 по 60 в обратном порядке. После этого у нас получается замкнутый маршрут:

57 54 29 40 27 44 19 22
52 39 56 43 30 21 26 45
55 58 53 28 41 18 23 20
38 51 42 31 8 25 46 17
59 32 37 a 47 16 9 24
50 3 60 33 36 7 12 15
1 34 5 48 b 14 c 10
4 49 2 35 6 11 d 13

Теперь можно включить в маршрут некоторые из непройденных клеток. Так как наш маршрут замкнутый, то его можно разорвать в произвольном месте и к одному из концов прицепить подходящую цепочку из непройденных клеток. Например, если разорвать цепочку в клетке 51 (перенумеровав клетки и сделав её последней, а 52 — первой), то сможем удлинить нашу цепочку на клетки a, b и d, которые станут клетками 61, 62 и 63.

Метод Вандермонда

[править | править код]

Вандермонд попытался свести задачу к арифметической. Для этого он обозначал маршрут коня по доске в виде последовательности дробей x/y, где x и y — координаты поля на доске. Очевидно, что в последовательности дробей, соответствующей ходам коня, разность числителей двух соседних дробей может быть только 1 или 2, при том, что разность их знаменателей составляет соответственно 2 или 1. Кроме того, числитель и знаменатель не могут быть меньше 1 и больше 8.

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


Правило Варнсдорфа

[править | править код]

Правило Варнсдорфа, являющееся разновидностью жадного алгоритма для отыскания маршрута коня, формулируется так:

При обходе доски конь следует на то поле, с которого можно пойти на минимальное число ещё не пройденных полей. Если таких полей несколько, то можно пойти на любое из них.

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

Примечательные маршруты

[править | править код]

Маршрут Яниша

[править | править код]
50 11 24 63 14 37 26 35
23 62 51 12 25 34 15 38
10 49 64 21 40 13 36 27
61 22 9 52 33 28 39 16
48 7 60 1 20 41 54 29
59 4 45 8 53 32 17 42
6 47 2 57 44 19 30 55
3 58 5 46 31 56 43 18
Маршрут Яниша

Маршрут коня, найденный К. А. Янишем, образует полумагический квадрат, а при повороте доски на 180° первая половина маршрута (номера с 1 до 32) переходит во вторую (номера с 33 по 64). Маршрута же, представляющего собой настоящий магический квадрат, не существует для доски 8 × 8[5].

Маршрут «Турка»

[править | править код]
Маршрут, якобы найденный шахматным автоматом «Турок»

Шахматный автомат «Турок» демонстрировал замкнутый маршрут коня, изображенный на диаграмме справа.

Обойти конём все шахматные клетки по одному разу, к тому же сделать это «вслепую», начав или закончив на любой клетке по желанию «зрителя», можно следуя стихотворению Василия Панова[6]:

Алеет Осень Ценными Дарами,
Ещё Один Животворящий День.
Хлеба Червонят Желтыми Шнурами,
Хрустальных Вод Философична Сень.

Два Вечера Цеплявшиеся Шишки
Артист Писал, Бездонна Синева.
Дорожный Шлак Целуют Червячишки,
Еще Покрыта Флоксами Трава.

Первые буквы задают координаты ходов:

Алеет Осень = А1; Ценными Дарами = С2; и т. д.

В каждую строфу вставлена подсказка, помогающая не перепутать последовательность строф: ещё ОДИН, ДВА вечера, достаются ТРЁМ и т. д.

Обобщение на произвольные доски

[править | править код]

Замкнутые маршруты

[править | править код]

Количество замкнутых маршрутов с учётом направления в два раза больше. Замкнутые маршруты существуют на досках для всех чётных (последовательность A001230 в OEIS).

Незамкнутые маршруты

[править | править код]

Для неквадратных досок незамкнутый обход конём существует только при выполнении следующих условий: если одна сторона доски равна 3, то другая должна быть либо 4, либо не меньше 7; если же обе стороны больше 3, то обход коня возможен на всех досках, кроме 4 × 4. В частности, незамкнутые маршруты существуют на квадратных досках для всех .[7] Количество незамкнутых маршрутов на досках образуют последовательность A165134 в OEIS.

Примечания

[править | править код]
  1. Euler, Leonhard, Solution d’une question curieuse que ne paroit soumise à aucune analyse Архивная копия от 30 сентября 2017 на Wayback Machine, Mémoires de l’académie des sciences de Berlin, 15 (1759) 1766, p. 310—337.
  2. How Euler Did It Архивная копия от 8 августа 2017 на Wayback Machine.
  3. Brendan McKay. Knight's Tours on an 8x8 Chessboard (неопр.) // Technical Report TR-CS-97-03. — Department of Computer Science, Australian National University, 1997. Архивировано 28 сентября 2013 года.
  4. Е. Гик. Глава 2. Конь-хамелеон // Шахматы и математика. — М.: Наука, 1983. — (Библиотечка «Квант»). Архивировано 26 июля 2020 года.
  5. Eric W. Weisstein, There Are No Magic Knight’s Tours on the Chessboard Архивная копия от 8 сентября 2017 на Wayback Machine, MathWorld Headline News.
  6. В. Панов. Тайна одного трюка // Наука и Жизнь. — 1969. — № 5. Архивировано 31 марта 2023 года.
  7. A. Conrad, T. Hindrichs, H. Morsy, I. Wegener. Solution of the Knight's Hamiltonian Path Problem on Chessboards (англ.) // Discr. Appl. Math. : journal. — 1994. — Vol. 50. — P. 125—134. — doi:10.1016/0166-218X(92)00170-Q.