Русская Википедия:Задача о ходе коня

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Файл:Knights-Tour-Animation.gif
Анимация прохождения коня через все клетки поля шахматной доски 5 × 5

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

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

«

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

»
— Анонимус

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

Файл:Knight's graph showing number of possible moves.svg
Граф, соответствующий шахматной доске 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
Шаблон:Small

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

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

Файл:Turk-knights-tour.svg
Маршрут, якобы найденный шахматным автоматом «Турок»

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

Мнемоническое стихотворение

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

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

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

… </poem>Шаблон:Конец цитаты

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

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

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

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

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

Файл:Grid4xnColoredSquares.svg

Количество замкнутых маршрутов с учётом направления в два раза больше. Замкнутые маршруты существуют на досках <math>n\times n</math> для всех чётных <math>n\geqslant 6</math> (Шаблон:OEIS).

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

Файл:Knight's tour anim 2.gif

Для неквадратных досок незамкнутый обход конём существует только при выполнении следующих условий: если одна сторона доски равна 3, то другая должна быть либо 4, либо не меньше 7; если же обе стороны больше 3, то обход коня возможен на всех досках, кроме 4 × 4. В частности, незамкнутые маршруты существуют на квадратных досках <math>n \times n</math> для всех <math>n \geqslant 5</math>.[7] Количество незамкнутых маршрутов на досках <math>n\times n</math> образуют Шаблон:OEIS.

См. также

Примечания

Шаблон:Примечания

Ссылки