You are on page 1of 5

Dãy De Bruijn

Người dịch: Nguyễn Xuân Thọ*

Ta xét bài toán sau:


Xếp các số 0 và 1 trên hình tròn theo chiều kim đồng hồ sao cho mỗi dãy nhị phân có độ dài 4
xuất hiện đúng một lần.

Hình 1: Một lời giải của bài toán nêu ở đầu bài viết.

Chú ý rằng có tất cả 16 dãy nhị phân có độ dài 4. Liệu một cách xếp thỏa mãn yêu cầu
trên có tồn tại, và nếu tồn tại thì có bao nhiêu cách xếp như vậy? Hình 1 cho ta một cách
xếp. Cả hai câu hỏi trên được giải quyết bởi nhà toán học de Bruijn vào năm 1946 [1]. Đó
là lý do vì sao những đồ thị và dãy nhị phân mà ta xét dưới đây được gọi là đồ thị de Bruijn
và dãy de Bruijn.
Xét đồ thị có hướng sau (gọi là G4 ), với các đỉnh là tất cả các dãy nhị phân có độ dài 3 và
các cạnh (có hướng) đi từ đỉnh x1 x2 x3 tới các đỉnh x2 x3 0 và x2 x3 1. Cạnh ( x1 x2 x3 , x2 x3 x4 )
được đánh số e j nếu x1 x2 x3 x4 là biểu diễn nhị phân của số nguyên j. Đồ thị có khuyên tại
các đỉnh 000 và 111. Như ta thấy, đồ thị G4 có một chu trình Euler vì mỗi đỉnh có hai cạnh
đi vào và hai cạnh đi ra. Mỗi chu trình Euler như vậy sẽ cho ta một dãy nhị phân độ dài 16
thỏa mãn yêu cầu của bài toán. Mỗi dãy nhị phân như vậy được gọi là một dãy de Bruijn.
Ví dụ, chu trình 000 → 000 → 001 → 011 → 111 → 111 → 110 → 100 → 001 → 010 → 101
→ 011 → 110 → 101 → 010 → 100 → 000 tương ứng với dãy 0000111100101101 (đọc theo
vòng tròn).
* ĐH Bách Khoa Hà Nội.

1
Hình 2: Đồ thị G4 . CẦN SỬA NHÃN HAI ĐỈNH: 0000 -> 000, 1111 -> 111 (nhãn hai cạnh
khuyên 0000 và 1111 giữ nguyên)!!!

Cho số nguyên dương n ≥ 4. Ta xây dựng đồ thị có hướng Gn với đỉnh là các chuỗi
nhị phân độ dài n − 1 theo cách tương tự (do đó Gn sẽ có 2n cạnh).1 Đồ thị G4 được biểu
diễn trong Hình 2.
Gọi φ( G ) là số chu trình Euler của đồ thị G. Khi đó, số dãy de Bruijn ứng với số nguyên
dương n là φ( Gn ).
Với mỗi đồ thị có hướng G thỏa mãn mỗi đỉnh có hai cạnh đi vào và hai cạnh đi ra, ta
xây dựng đồ thị G ∗ như sau:

(i) mỗi cạnh của G ứng với một đỉnh của G ∗ ,

(ii) với mọi cặp đỉnh a và b của G ∗ , có một cạnh từ a tới b (trong G ∗ ) nếu và chỉ nếu
trong G, cạnh tương ứng với a có điểm cuối là điểm đầu của cạnh tương ứng với b.

Khi đó Gn∗ = Gn+1 .2


Công thức tổng quát cho φ( Gn ) là một hệ quả của định lý sau [1].

Định lý 1. Cho G là một đồ thị có hướng thỏa mãn mỗi đỉnh có hai cạnh đi vào và hai cạnh đi ra.
Nếu G có m đỉnh thì φ( G ∗ ) = 2m−1 φ( G ).
1 Xem Bài tập 1.
2 Xem Bài tập 1.

2
Chứng minh. Ta chứng minh bằng quy nạp theo m.

Nếu m = 1 thì G chỉ có một đỉnh p và 2 khuyên từ p đến p và G ∗ = G2 . Khi đó,


φ( G ) = φ( G ∗ ) = 1. Vậy khẳng định đúng với m = 1.

Giả sử khẳng định đã đúng đến m − 1. Xét G là một đồ thị có hướng gồm m đỉnh, thỏa
mãn mỗi đỉnh có hai cạnh đi vào và hai cạnh đi ra, và có M chu trình Euler.
Ta chỉ xét trường hợp đồ thị G liên thông. Trường hợp G không liên thông được dành
lại cho bạn đọc.3
( a) Nếu ở mọi đỉnh của G đều có một khuyên, thì G gồm một chu trình p1 → p2 →
· · · → pm → p1 và một khuyên ở mỗi đỉnh pi . Đặc biệt, φ( G ) = 1.
Gọi ai là cạnh khuyên tại pi và bi là cạnh pi → pi+1 . Khi đó, G ∗ gồm các đỉnh ai , bi ; các
cạnh ai → bi , bi → ai+1 và các khuyên tại ai . Hình 3 mô tả một phần của G ∗ .

Hình 3: Minh họa chứng minh của Định lý 1, trường hợp (a).

Một chu trình trong G ∗ có hai cách để đi từ bi đến bi+1 . Do đó φ( G ∗ ) = 2m−1 , khẳng
định đúng.
(b) Giả sử G có một đỉnh x mà tại đó không có khuyên. Gọi p, q, r, s là các cạnh kề
của x (Hình 4, có thể một vài đỉnh trong các đỉnh a, b, c, d trùng nhau). Từ đồ thị G, ta
xây dựng một đồ thị mới G1 bằng cách xóa đi đỉnh x và đồng nhất p với r,q với s. Tương
tự, G2 được tạo từ G bằng cách xóa x và đồng nhất p với s, q với r. Khi đó, ta có thể đồng
nhất mỗi chu trình Euler trong G trong đó r (tương ứng: s) là cạnh liền sau p với một chu
trình Euler trong G1 (tương ứng: G2 ). Từ đó:

φ( G ) = φ( G1 ) + φ( G2 ) . (1)

Có ba loại chu trình Euler khác nhau trong G ∗ , phụ thuộc vào hai đường đi rời r và
quay lại p và q: hoặc cả hai cùng đi đến p, hoặc cả hai cùng đến q, hoặc một tới p và một
tới q. Ta chỉ xét một trường hợp ở đây, hai trường hợp còn lại được để lại cho bạn đọc.4
3 Xem Bài tập 2.
4 Xem Bài tập 2.

3
Hình 4: Minh họa chứng minh của Định lý 1, trường hợp (b).CẦN SỬA PQRS ở hình bên
trái thành chữ thường

Trong Hình 5, ta xét trường hợp đường đi 1 đi từ r tới p, đường đi 2 đi từ s tới q, đường đi
3 đi từ s tới p, đường 4 đi từ r tới q. Kết hợp với 4 cạnh từ p, q tới r, s, ta được 4 chu trình

Hình 5: Minh họa chứng minh của Định lý 1, trường hợp (b).CẦN XÓA CẠNH pq

Euler trong G ∗ :
1, pr, 4, qs, 3, ps, 2, qr
1, ps, 2, qr, 4, qs, 3, pr
1, ps, 3, pr, 4, qs, 2, qr
1, ps, 2, qs, 3, pr, 4, qr.
Cũng các đường đi 1, 2, 3, 4 này tạo thành 2 chu trình Euler trong G1∗ và G2∗ , xem Hình 6.

Trong hai trường hợp còn lại, ta cũng tìm được 2 chu trình Euler trong G1∗ và G2∗ , tương
ứng với 4 chu trình Euler trong G ∗ . Suy ra:

φ( G ∗ ) = 2 (φ( G1∗ ) + φ( G2∗ )) . (2)

Từ (1), (2) và giả thiết quy nạp đối với G1 và G2 , ta có φ( G ∗ ) = 2m−1 φ( G ).

4
Hình 6: Minh họa chứng minh của Định lý 1, trường hợp (b).

Bây giờ ta có thể trả lời câu hỏi có bao nhiêu chu trình Euler trong trong một đồ thị de
Bruijn.
n −1 − n
Định lý 2. Đồ thị Gn có chính xác 22 chu trình Euler.

Chứng minh. Định lý 2 đúng với n = 2. Do Gn∗ = Gn+1 , Định lý 2 được suy ra theo quy
nạp từ Định lý 1.

Bài tập
Bài 1: Chứng minh các khẳng định Gn có 2n cạnh và Gn∗ = Gn+1 .
Bài 2: Hoàn thành chứng minh của Định lý 1 trong các trường hợp còn lại.
Bài 3:(Thuật toán xây dựng dãy de Bruijn) Cho m = 2n − 1. Chứng minh thuật toán
sau cho phép ta xây dựng một dãy de Bruijn a0 , a1 , . . . , am . Ta bắt đầu với a0 = a1 =
· · · = an−1 = 0. Với mỗi k > n, gọi ak là giá trị lớn nhất trong {0, 1} sao cho dãy
( ak−n+1 , . . . , ak−1 , ak ) chưa hề xuất hiện như một dãy con trong dãy ( a0 , a1 , . . . , ak−1 ).
Dãy số được xây dựng như trên được gọi là một dãy Ford. Chứng minh thuật toán ở trên
cho ta một dãy de Bruijn.

Tài liệu
[1] N. D. Bruijn, A combinatoric problem, Proc. Koninklijke Nederlandse Akademie V. Weten-
schappen. 49 (1946): 758-764.

[2] J. H. van Lint and R. M. Wilson, A Course in Combinatorics, 2nd ed, Cambridge Univer-
sity Press (2001).

You might also like