Có những hành trình, trong đó quân mã sau khi đi hết tất cả 64 ô của bàn cờ kể cả ô xuất phát, thì từ ô cuối của hành trình không thể đi về ô xuất phát chỉ bằng một nước đi.. [1] Hành tr
Trang 1Trong cuốn thứ nhất, Euclid đưa ra 5 định đề:
1 Qua hai điểm bất kì, luôn luôn vẽ được một đường thẳng
2 Đường thẳng có thể kéo dài vô hạn
3 Với tâm bất kì và bán kính bất kì, luôn luôn vẽ được một đường tròn
4 Mọi góc vuông đều bằng nhau
5 Nếu 2 đường thẳng tạo thành với 1 đường thẳng thứ 3 hai góc trong cùng phía có tổng nhỏ hơn 180 độ thì chúng sẽ cắt nhau về phía đó
Và 5 tiên đề:
1 Hai cái cùng bằng cái thứ ba thì bằng nhau
2 Thêm những cái bằng nhau vào những cái bằng nhau thì được những cái bằng nhau
3 Bớt đi những cái bằng nhau từ những cái bằng nhau thì được những cái bằng nhau
4 Trùng nhau thì bằng nhau
5 Toàn thể lớn hơn một phần
trên bàn cờ vua ( 8 x 8) Quân mã được đặt ở một ô trên một bàn cờ trống nó phải di chuyển theo quy tắc của cờ vua để đi qua mỗi ô trên bàn cờ đúng một lần
Có rất nhiều lời giải cho bài toán này, chính xác là 26.534.728.821.064 lời giải trong đó quân mã có thể kết thúc tại chính ô mà nó khởi đầu
Một hành trình như vật được gọi là hành trình đóng Có những hành trình, trong đó quân
mã sau khi đi hết tất cả 64 ô của bàn cờ (kể cả ô xuất phát), thì từ ô cuối của hành trình không thể đi về ô xuất phát chỉ bằng một nước đi Những hành trình như vậy được gọi là hành trình mở
Nhiều biến thể của chủ đề này được các nhà toán học nghiên cứu, trong đó có nhà toán học Euler Các biến đổi có thể theo các hướng:
thay đổi kích thước bàn cờ
biến thành trò chơi hai người theo tư tưởng này
giảm nhẹ các yêu cầu trên đường đi của quân mã
Bài toán mã đi tuần là một dạng của bài toán tổng quát hơn là bài toán tìm đường đi Hamilton trong lý thuyết đồ thị, là một bài toán NP-đầy đủ Bài toán tìm hành trình đóng của quân mã là một bài toán cụ thể của bài toán tìm chu trình hamiltonian [1]
Hành trình của quân mã trên nửa bàn cờ đã được giới thiệu dưới dạng thơ trong một tác phẩm tiếng Phạn [2]
Giải thuật đầu tiên đầy đủ cho bài toán về hành trình của quân mã là Giải thuật
Warnsdorff, công bố lần đầu năm 1823 bởi H C Warnsdorff.
Trang 2Mục lục
[ẩn]
1 Định lý Schwenk
o 1.1 Điều kiện 1
o 1.2 Điều kiện 2
o 1.3 Điều kiện 3
2 Hai lời giải với bàn cờ 8 x 8
3 Xem thêm
4 Tham khảo
5 Liên kết ngoài
[ sửa ] Định lý Schwenk
Cho bàn cờ m × n bất kỳ với m nhỏ hơn hoặc bằng n, không có hành trình đóng nào của
quân mã nếu một trong ba điều kiện dưới đây xảy ra:
1 m và n đều là lẻ
2 m = 1, 2, hoặc 4; m và n đều khác 1
3 m = 3 và n = 4, 6, hoặc 8
[ sửa ] Điều kiện 1
Dễ dàng chứng minh rằng khi điều kiện 1 thỏa mãn, không thể có hành trình đóng của quân mã
Trên bàn cờ vua, các ô đen và trắng xen kẽ nhau, một quân mã luôn đi từ một ô tới ô khác màu
Vì m và n đều là lẻ nên khi đó số các ô đen và trắng trên bàn cờ là khác nhau Chẳng hạn
bàn cờ 5×5 có 13 ô đen và 12 ô trắng
Một đường đi đóng của quân mã phải có số ô đen và trắng bằng nhau, tổng số ô trên mọi hành trình đóng là số chẵn Do đó một hành trình đóng không thể đi qua mỗi ô đúng một lần khi số các ô trên bàn cờ là số lẻ
[ sửa ] Điều kiện 2
Điều kiện 2 xảy ra khi độ dài cạnh ngắn là 1, 2, hoặc 4, cũng không thể có đường đi đóng
Dễ thấy rằng khi m = 1 hoặc 2 không thể có hành trình của quân mã: quân mã không thể
đi qua mọi ô (trừ trường hợp bàn cờ 1x1)
Cũng có thể thấy rằng bàn cờ 4 × n không có hành trình đóng của quân mã.
Trang 3Giả sử một bàn cờ kích thước 4 × n có một hành trình đóng của quân mã Ta xét hai tập
con các ô trên bàn cờ, A1 và B1, A1 gồm các ô thuộc nửa màu đen và B1 gồm các ô màu trắng Theo quy tắc cờ vua quân mã luôn di chuyến liên tiếp giữa hai tập các ô đen và tập
các ô trắng và ngược lại (A1 và B1)
Con mã phải đi xen kẽ giữa màu xanh và màu đỏ
Ta lại xét hình minh họa bên phải Ta định nghiã A2 là tập các ô màu xanh lá cây và B2
là tập các ô mày đỏ trên hình vẽ Các tập này có số ô bằng nhau Chú y rằng từ một ô
trong A2 quân mã chỉ có thể nhảy sang một ô trong B2 Ngoài ra, vì quân mã phải đi qua
tất cả các ô, nên ngược lại khi quân mã đứng ở một ô trong B2 ở bước tiếp theo nó phải
nhảy về một ô thuộc A2 (nếu không như vậy số thì trên hành trình kín ấy quân mã phải có
hai ô liên tiếp trong A2 điều đó không xảy ra)
Ta sẽ tìm thấy mâu thuẫn trong lập luận sau đây
Vì có một hành trình đóng của quân mã, nên có thể chọn bất kỳ ô nào làm ô thứ nhất của hành trình
1 Chọn ô thứ nhất thuộc tập
2 Khi đó ô thứ hai phải thuộc
3 ô thứ ba thuộc tập
4 ô thứ tư thuộc tập
5
Như thế hành trình này không chưa các ô thuộc và do đó không thể chứa tất cả các ô trên bàn cờ
[ sửa ] Điều kiện 3
Điều kiện 3 được chứng minh cho từng trường hợp Tuy nhiên, chúng vẫn có thể có lời giải với hành trình mở Chẳng hạn với bàn cờ 3 x 4 ta có 4 hành trình mở sau:
Trang 4[ sửa ] Hai lời giải với bàn cờ 8 x 8
Hai trong số nhiều hành trình đóng trên bàn cờ 8 x 8
Trang 5Bài toán tám quân hậu là bài toán đặt tám quân hậu trên bàn cờ vua kích thước 8×8 sao cho không có quân hậu nào có thể "ăn" được quân hậu khác, hay nói khác đi không quân
hậu nào có để di chuyển theo quy tắc cờ vua Mầu của các quân hậu không có ý nghĩa
trong bài toán này Như vậy, lời giải của bài toán là một cách xếp tám quân hậu trên bàn
cờ sao cho không có hai quân nào đứng trên cùng hàng, hoặc cùng cột hoặc cùng đường
chéo Bài toán tám quân hậu có thể tổng quát hóa thành bài toán đặt n quân hậu trên bàn
cờ n×n(n ≥ 4).
Mục lục
[ẩn]
1 Lịch sử
2 Tính chất số học của lời giải
3 Xây dựng một lời giải
4 Các lời giải cho bài toán tám quân hậu
5 Số lời giải cho bài toán n quân hậu
6 Giải thuật đệ quy và quay lui tìm kiếm tất cả các lời giải
o 6.1 Mã giả
o 6.2 Cây tìm kiếm trong giải thuật
7 Xem thêm
8 Liên kết ngoài
[ sửa ] Lịch sử
Bài toán được đưa ra vào 1848 bởi kỳ thủ Max Bezzel, và sau đó nhiều nhà toán học, trong đó có Gauss và Georg Cantor, có các công trình về bài toán này và tổng quát nó thành bài toán xếp hậu Các lời giải đầu tiên được đưa ra bởi Franz Nauck năm 1850
Nauck cũng đã tổng quát bài toán thành bài toán n quân hậu Năm 1874, S Gunther đưa
ra phương pháp tìm lời giải bằng cách sử dụng định thức, và J.W.L Glaisher hoàn chỉnh phương pháp này
Bài toán này cũng được ứng dụng trong trò chơi máy tính The 7th Guest vầo những năm 1990
[ sửa ] Tính chất số học của lời giải
Ký hiệu quân hậu đứng ở ô nằm trên hàng thứ i của lời giải là Q[i, j] Các chỉ số dòng cột
đánh từ trên xuống dưới, trái sang phải theo cách đánh số trong ma trận) Trong một ma trân vuông:
các phần tử nằm trên cùng hàng có chỉ số hàng bằng nhau;
các phần tử nằm trên cùng cột có chỉ số cột bằng nhau;
các phần tử nằm trên cùng một đường chéo song song với đường chéo chính có hiệu chỉ số hàng với chỉ số cột bằng nhau;
Trang 6 các phần tử nằm trên cùng một đường chéo song song với đường chéo phụ có tổng chỉ số hàng với chỉ số cột bằng nhau;
Vì thế ta gọi các đường chéo song song với đường chéo chính là đường chéo trừ (hay hiệu), các đường chéo song song với đường chéo phụ là đường chéo cộng (hay tổng)
Do đó, mỗi lời giải có thể được biểu diễn bởi dãy Q[1,i1],Q[2,i2], ,Q[n, in],thỏa mãn các điều kiện:
Các chỉ số cột i1, i2, , in đôi một khác nhau, hay chúng lập thành một hoán vị của
các số 1, 2, , n
Tổng chỉ số dòng và cột của các quân hậu 1+i1, 2+i2, , n+in đôi một khác nhau;
Hiệu chỉ số dòng và cột của các quân hậu 1-i1, 2-i2, ,n-in đôi một khác nhau
Ch ng h n l i gi i cho trong hình trên bi u di n b i dãy ô (1 ,4),(2, 7), ời giải cho trong hình trên biểu diễn bới dãy ô (1 ,4),(2, 7), ải cho trong hình trên biểu diễn bới dãy ô (1 ,4),(2, 7), ểu diễn bới dãy ô (1 ,4),(2, 7), ễn bới dãy ô (1 ,4),(2, 7), ới dãy ô (1 ,4),(2, 7), (3, 3), (4, 8), (5,2), (6,5), (7,1), (8,6) Ta có th ki m tra các i u ki n trên ểu diễn bới dãy ô (1 ,4),(2, 7), ểu diễn bới dãy ô (1 ,4),(2, 7), điều kiện trên ều kiện trên ện trên trong b ng: ải cho trong hình trên biểu diễn bới dãy ô (1 ,4),(2, 7),
[ sửa ] Xây dựng một lời giải
Có một giải thuật đơn giản tìm một lời giải cho bài toán n quân hậu với n = 1 hoặc n ≥ 4:
1 Chia n cho 12 lấy số dư r (r= 8 với bài toán tám quân hậu)
2 Viết lần lượt các số chẵn từ 2 đến n
3 Nếu số dư r là 3 hoặc 9, chuyển 2 xuống cuối danh sách
4 Bổ sung lần lượt các số lẻ từ 1 đến n vào cuối danh sách, nhưng nếu r là 8, đổi
chỗ từng cặp nghĩa là được 3, 1, 7, 5, 11, 9, …
5 Nếu r = 2, đổi chỗ 1 và 3, sau đó chuyển 5 xuống cuối danh sách
6 Nếu r = 3 hoặc 9, chuyển 1 và 3 xuống cuối danh sách
7 Lấy danh sách trên làm danh sách chỉ số cột, ghép vào danh sách chỉ số dòng theo thứ tự tự nhiên ta được một lời giải của bài toán
Trang 7Sau đây là một số ví dụ
14 quân hậu (r = 2): 2, 4, 6, 8, 10, 12, 14, 3, 1, 7, 9, 11, 13, 5
15 quân hậu (r = 3): 4, 6, 8, 10, 12, 14, 2, 5, 7, 9, 11, 13, 15, 1, 3
20 quân hậu (r= 8): 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 1, 7, 5, 11, 9, 15, 13, 19,
17
[ sửa ] Các lời giải cho bài toán tám quân hậu
Bài toán tám quân hậu có 92 lời giải khác nhau Nếu không phân biệt các lời giải là ảnh của nhau qua phép đối xứng, phép quay bàn cờ thì chúng chỉ có 12 lời giải đơn vị nh ư
bi u di n d ểu diễn bới dãy ô (1 ,4),(2, 7), ễn bới dãy ô (1 ,4),(2, 7), ư ới dãy ô (1 ,4),(2, 7), điều kiện trên i ây:
Trang 8Lời giải 4 Lời giải 5 Lời giải 6
Trang 9Lời giải 10 Lời giải 11 Lời giải 12
Trang 10[ sửa ] Số lời giải cho bài toán n quân hậu
Ta có bảng sau đây cho n quân hậu, cả (sequence A002562 in OEIS) và (sequence
A000170 in OEIS)
Trang 11lời
giả
i
(cá
c
lời
giả
i
đố
i
xứ
ng
chỉ
tín
h
1
lầ
n)
1 0 0 1 2 1 6 12 46 92 3411.787 9.233 45.752 285.053
3.029.24 2.658.21 0
số
lời
giả
i
1 0 0 2 10 4 40 9235
2
72 4
2.6 80
14
200
73
712
365
596
2.27 9.18 4
24.233.937.684.4 40
227.514
171.973
736
2.207.893 435.808.3 52
Lưu ý rằng bài toán với 6 quân hậu có ít lời giải hơn bài toán với 5 quân hậu Hiện nay chưa có công thức về số lượng chính xác lời giải
[ sửa ] Giải thuật đệ quy và quay lui tìm kiếm tất cả các lời giải
Lời giải thứ nhất của bài toán 11 hậu khi tìm bằng giải thuật đệ quy và quay lui trong mục này Đối xứng với lời giải bên dưới
Trang 12Lời giải thứ 2680 của bài toán 11 hậu khi tìm bằng giải thuật đệ quy và quay lui trong mục này Đối xứng với lời giải thứ nhất
Trong giải thuật này, mỗi lời giải được ký hiệu bằng một mảng solution[1 n], trong đó
solution[i]= j là cột mà quân hậu ở hàng thứ i đứng Theo tính chất số học của các ô trên
bàn cờ n x n, các ô trên các đường chéo cộng chứa ô (i, j) đều có tổng chỉ số hàng với chỉ
số cột bằng i+j Tổng này nhận các giá trị từ 2 đến 2n nên ta đánh số các đường chéo này
từ 1 đến 2n-1 Như vậy các ô trên đường chéo cộng thứ nhất có tổng chỉ số dòng và cột là
2, các ô trên đường chéo thứ k có tổng ấy là k+1 Ta dùng một mảng Boolean
Ok_plus[1 2n-1] để kí hiệu trạng thái đã có quân hậu nào trên đường chéo cộng thứ k chưa, nghĩa là Ok_plus[k]=True nếu đã có một quân hậu đứng chiếm giữ đường chéo cộng thứ k Tương tự, các ô trên một đường chéo trừ có hiệu như nhau Hiệu này nhận
giá trị từ 1-n đến n- 1 Đánh số từ 1 đến 2n-1 từ đường chéo có hiệu chỉ số dòng trừ chỉ
số cột là 1-n đến đường chéo có hiệu ấy bằng n-1 Khi đó đường chéo trừ thứ k có hiệu chỉ số dòng trừ chỉ số cột là k-n Ta cũng dùng mảng ok_minus[1 2n-1] để chỉ trạng thái
của các đường chéo này
Giải thuật này cố gắng đặt quân hậu ở dòng thứ i vào cột nào đó, bắt đầu từ dòng thứ nhất (luôn có thể đặt được) Nếu ở dòng thứ i ta đặt quân hậu vào cột thứ j, thì nó khống chế tất cả các ô trong cột thứ j, đường chéo cộng thứ i+j-1, đường chéo trừ thứ i-j+n Nếu có thể đặt được quân hậu ở dòng i và i = n ta có một lời giải Nếu đặt được và i < n ta tiếp tục cố gắng đặt quân hậu tiếp theo vào dòng thứ i+1 Nếu không đặt được, ta quay lại nhấc quân hậu ở dòng thứ i-1 và tìm phương án tiếp theo của dòng thứ i-1
Nhận xét: trong hai lời giải ở hình bên các vị trí của quân hậu trên bàn cờ đứng theo vị trí nước đi của quân ngựa
[ sửa ] Mã giả
Procedure Try_row(i)
For j=1 To n do
Trang 13If not ok_row(i) And not ok_col(j) And not ok_plus(i+j-1) And not ok_minus(i-j+n) then
{
solution(i)=j;
ok_col(j)=True;
ok_plus(i+1)=True;
ok_minus(i-j+n)=True;
If i<n then
try_row(i+1)
ELSE print_solution();
ok_row(i)=False;
ok_col(j)=False;
ok_plus(i+j-1)=False;
ok_minus(i-j+n)=False;
}
Thủ tục tìm tất cả các lời giải của bài toán n hậu chỉ bao gồm một lời gọi Try_row(1):
Procedure n_queen(n);
Call Try_row(1);
[ sửa ] Cây tìm kiếm trong giải thuật
Cố gắng không thành công
Trang 14Cây tìm kiếm lời giải với n=4.
Ta minh họa quá trình tìm kiếm lời giải cho bài toán n hậu với n =4 trong hình bên Ở trạng thái xuất phát, trên dòng 1 có 4 lụa chọn cho quân hậu: quân hậu thứ nhất có thể đứng ở các cột 1,2,3,4 Nếu lựa chọn Ô (1,1), ở dòng thứ hai chỉ còn hai lựa chọn là cột 3
và cột 4 Nếu lựa chọn cột 3, trên dòng thứ 3 sẽ không còn ô nào không bị khống chế (Ô (3,1)và (3,3) khống chế bởi (1,1), ô (3,2) và (3,4) khống chế bởi (2,4) Ta loại bỏ phương
án chọn ô (2,3) này và xét tiếp phương án chọn ô (2,4) Khi lựa chọn ô(2,4) ta cũng chỉ đặt thêm được một quân hậu ở dòng thứ ba Dòng thứ tư lại không thể đặt bất kỳ quân hậu nào Do đó ta lùi lại dòng thứ nhất, xét khả năng tiếp theo (1,2), ta lần lượt được dãy các ô (1,2), (2,4), (3,1), (4,3) Tiếp tục với ô(1,3), (1,4) Chỉ có hai đường đi từ gốc tới lá với độ dài 4 nên bài toán 4 hậu chỉ có 2 lời giải thể hiện trên cây bằng các đường đi màu xanh lục
[ sửa ] Xem thêm