1. Trang chủ
  2. » Công Nghệ Thông Tin

Phương pháp sinh toàn bộ một số đối tượng tổ hợp

65 175 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 1,13 MB

Nội dung

Nguyên lý chung đểgiải quyết bài toán tổ hợp được dựa trên những nguyên lý cơ sở đó là nguyên lý cộng,nguyên lý nhân và một số nguyên lý khác, nhưng một đặc thù không thể tách rời củatoá

Trang 1

LỜI CAM ĐOAN

Tôi xin cam đoan: Luận văn thạc sĩ Công nghệ thông tin "Phương pháp sinhtoàn bộ một số đối tượng tổ hợp" là công trình nghiên cứu thực sự của cá nhântôi, không trùng với bất kỳ luận văn nào khác Luận văn hoàn thành là kết quả nghiêncứu của cá nhân tôi dưới sự hướng dẫn tận tình của Tiến sĩ Đỗ Phan Thuận

Hà Nội, tháng 09 năm 2012

Tác giả

Nguyễn Thị Hảo

Trang 2

LỜI CẢM ƠN

Đề hoàn thành chương trình học, tôi xin chân thành cảm ơn quý thầy côtrong Viện Công nghệ thông tin và truyền thông - Trường Đại học Bách Khoa Hà nội

đã tận tình dạy bảo tôi trong thời gian qua

Tôi xin gửi lời biết ơn sâu sắc tới Tiến sĩ Đỗ Phan Thuận đã dành nhiều thờigian, tận tình hướng dẫn tôi hoàn thành luận văn này

Nhân đây, cho tôi gửi lời cảm ơn đến ban lãnh đạo trường Đại học HùngVương đã tạo điều kiện thuận lợi cho lớp học thạc sĩ Công nghệ thông tin năm 2010học tập tại trường

Trong quá trình làm luận văn, mặc dù tôi đã cố gắng nghiên cứu song khôngthể tránh các thiếu xót Vì vậy, tôi rất mong nhận được ý kiến đóng góp quý báu củaquí thầy cô và các bạn

Hà Nội, tháng 09 năm 2012

Tác giả

Nguyễn Thị Hảo

Trang 3

Mục lục

Lời cam đoan 1

Mục lục 3

Lời nói đầu 7

Chương 1 Giới thiệu và định nghĩa 9 1.1 Giới thiệu 9

1.2 Một số đối tượng tổ hợp quan trọng 10

1.2.1 Từ Dyck 10

1.2.2 Từ Motzkin 13

1.2.3 Từ Sch¨oder 14

1.3 Bài toán liệt kê và một số phương pháp sinh cơ bản 15

1.3.1 Bài toán liệt kê 15

1.3.2 Một số phương pháp sinh cơ bản 16

1.4 Độ phức tạp của thuật toán sinh 20

1.5 Phương pháp ECO và luật kế tiếp 21

1.5.1 Phương pháp ECO đơn tầng 22

1.5.2 Phương pháp ECO đa tầng 22

1.5.3 Luật kế tiếp và cây sinh 23

Chương 2 Họ các từ Dyck mở rộng và một số từ liên quan 26 2.1 Các từ Grand Dyck 26

2.2 Các từ Grand Motzkin 27

2.3 Các từ Grand Schr¨oder 28

2.4 Các từ mở rộng khác của từ Dyck 28

2.4.1 Các từ Dyck k - phân 28

2.4.2 Các từ Dyck m - màu 30

2.4.3 Mối quan hệ giữa các từ Dyck m màu và các từ Grand Dyck 31

Trang 4

2.4.4 Các từ Dyck k - phân m - màu 32

Chương 3 Một số thuật toán sinh và luật kế tiếp đề xuất 35 3.1 Một số thuật toán sinh 35

3.2 Phương pháp sinh theo luật đường chạy cuối cùng cho các lớp từ 35

3.2.1 Lớp từ Dyck 35

3.2.2 Các từ Dyck m - màu 38

3.2.3 Các từ Grand Dyck 39

3.2.4 Các từ Dyck k - phân 40

3.2.5 Các từ Dyck k - phân m - màu 41

3.2.6 Các từ Motzkin 43

3.3 Các từ Grand Motzkin 45

3.4 Các từ Schr¨oder 46

3.5 Các từ Grand Schr¨oder 47

3.6 Các từ nhị phân mật độ cố định 48

Chương 4 Giả mã và phân tích độ phức tạp các thuật toán sinh 50 4.1 Giải thuật chung cho một số lớp từ tổ hợp 50

4.2 Giải thuật sinh cho các lớp từ 51

4.2.1 Giải thuật sinh cho lớp từ Dyck 51

4.2.2 Giải thuật sinh cho lớp từ Grand Dyck 52

4.2.3 Giải thuật sinh cho lớp từ Dyck k - phân m - màu 53

4.2.4 Giải thuật sinh cho lớp từ Motzkin 54

4.2.5 Giải thuật sinh cho lớp từ Schr¨oder 56

4.3 Đánh giá độ phức tạp của các giải thuật 57

Kết luận 60

Tài liệu tham khảo 61

Phụ lục: Một số hình ảnh trong chương trình sinh 63

Trang 5

4.3 Các kết quả thử nghiệm của thuật toán với quy luật đường chạy

cuối cùng cho các từ Schr¨oder

59

4.4 Các kết quả thử nghiệm của thuật toán với quy luật đường chạy

cuối cùng cho các từ Grand Dyck

59

Trang 6

DANH MỤC CÁC HÌNH

3.6 Bốn từ kế tiếp β của từ Dyck 3 - phân 2 -màu có độ dài 9 43

Trang 7

MỞ ĐẦU

Tổ hợp là một lĩnh vực quan trọng của toán học rời rạc đề cập tới nhiều vấn đềkhác nhau của toán học Lý thuyết tổ hợp nghiên cứu việc phân bố các phần tử vàocác tập hợp Thông thường các phần tử của tập hợp là hữu hạn và việc phân bố chúngphải thoả mãn những điều kiện nhất định nào đó tuỳ theo yêu cầu của bài toán nghiêncứu Mỗi cách phân bố được coi là một “cấu hình của tổ hợp” Nguyên lý chung đểgiải quyết bài toán tổ hợp được dựa trên những nguyên lý cơ sở đó là nguyên lý cộng,nguyên lý nhân và một số nguyên lý khác, nhưng một đặc thù không thể tách rời củatoán học tổ hợp đó là việc chứng minh và kiểm chứng các phương pháp giải quyết bàitoán không thể tách rời máy tính

Ngày nay, tổ hợp là một lĩnh vực tích cực với các ứng dụng và tác động khác nhau

từ những phân tích của các thuật toán tới ngành vật lý thống kê và sinh học Trongcác tổ hợp, tổ hợp liệt kê và tổ hợp ánh xạ xử lý đặc biệt với những vấn đề cơ bảncủa các cấu trúc tính toán trong các lớp tổ hợp và giải thích sự xuất hiện của cấu trúctheo định kỳ

Tổ hợp liệt kê là một trong các phần chính của tổ hợp và có liên quan tới việc đếm

số lượng các phần tử của một lớp hữu hạn một cách chính xác hoặc gần đúng Cónhiều vấn đề phát sinh từ các lĩnh vực khác nhau có thể được giải quyết bằng cáchphân tích chúng từ một quan điểm tổ hợp Thông thường, những vấn đề này có tínhphổ biến được đại diện bởi các đối tượng đơn giản phù hợp với các kỹ thuật liệt kê củacác tổ hợp

Những dạng bài toán quan trọng mà lý thuyết tổ hợp đề cập đó là bài toán đếm,bài toán liệt kê, bài toán tồn tại và bài toán tối ưu

Một trong những vấn đề đầu tiên giải quyết trong phần của các thuật toán tổ hợp

là tạo ra các kết quả sinh hiệu quả trong lớp tổ hợp đặc biệt theo cách này mỗi đốitượng được sinh ra chỉ một lần Trong thực tế, nhiều câu hỏi thực tế cần thiết cho việclấy mẫu của một đối tượng ngẫu nhiên từ một lớp tổ hợp hay việc tìm kiếm toàn bộcác đối tượng trong một lớp Do đó, có nhiều lý do để phát triển các thuật toán cho cácdanh sách sản xuất của các đối tượng tổ hợp cơ bản Trên thực tế, những giải thuật

Trang 8

này rất hữu ích và tìm thấy nhiều ứng dụng trong các lĩnh vực khác nhau, chẳng hạnnhư kiểm thử phần cứng, phần mềm và hóa học tổng hợp.

Có nhiều vấn đề trong lý thuyết tổ hợp đặc biệt các giải pháp của tổ hợp được đưa

ra nhờ những con số Catalan Cuốn sách “tổ hợp liệt kê” (Enumerative Combinatorics)của Richard P Stanley đưa ra một danh sách các bài tập trong đó mô tả 66 giải thíchkhác nhau của các con số Catalan

Vấn đề sinh toàn bộ các đối tượng tổ hợp hiện nay được áp dụng nhiều trong nhiềungành như sinh học, y học, hóa học và khoa học máy tính Một cách tiếp cận được biếtđến nhiều để sinh toàn bộ được đưa ra trong đề án mã Gray cho việc sinh các số nhịphân n bit theo cách này trong các số liên tiếp khác nhau đúng một vị trí bit Trongluận văn này, tôi giới thiệu một thuật toán sinh toàn bộ, đó là thuật toán chung chocác lớp của các luật kế tiếp Thuật toán này hiệu quả trong một phân tích khấu trừ(Constant Amortized Time viết tắt CAT); CAT sử dụng một số lượng hằng số phéptính trên một đối tượng được sinh ra

Đề tài luận văn dựa trên cơ sở thực tiễn và khoa học: Nghiên cứu các số tổ hợpquan trọng luôn được quan tâm và ứng dụng rộng rãi trong lĩnh vực lý thuyết tổ hợpnói riêng và lý thuyết cơ sở của ngành tin học nói chung; ngoài ra các số tổ hợp cũngxuất hiện rất nhiều trong ngành tin học ứng dụng

Mục đích chính của đề tài: Tìm ra các phương pháp sinh toàn bộ một số đối tượng

tổ hợp quan trọng

Ứng dụng của đề tài: Nghiên cứu tính chất của các dãy số, sinh toàn bộ các số với

độ dài n và cách biểu diễn các dãy số

Bố cục của đề tài chia thành các chương như sau:

- Chương 1 Giới thiệu và định nghĩa

- Chương 2 Họ các từ Dyck mở rộng và một số từ liên quan

- Chương 3 Một số thuật toán sinh và luật kế tiếp đề xuất

- Chương 4 Giả mã và phân tích độ phức tạp các thuật toán sinh

Trang 9

Chương 1 Giới thiệu và định nghĩa

Từ Dyck được xem là đối tượng nổi tiếng trong lớp các đối tượng tổ hợp, chúngthường xuất hiện trong một vài loại như cây, hoán vị, Hơn nữa, phương pháp sinhmột số các đối tượng tổ hợp là mối quan tâm lớn trong các thập kỷ trước Trước khi

đi vào tìm hiểu một số khái niệm các đối tượng tổ hợp, ta có một số qui ước như sau:

- Một chữ cái La tinh in thường biểu diễn một kí tự của bảng chữ cái Ví dụ, a, b1,

cn là các kí tự

- Các chữ cái Hy Lạp in thường biểu diễn các từ trên một bảng chữ cái Ví dụ,

α, β, δ00 được ký hiệu là các từ, λ biểu thị là một từ rỗng có độ dài bằng 0 Nếu α làmột từ thì α(i) là kí tự thứ i của α, với quy ước đó kí tự đầu tiên của α là α(1)

- Nếu a là một kí tự thì an là từ chứa n lần a Ví dụ, a3 = aaa; (ab)2 = abab; nếu

α = bc thì α4 = (bc)4 = bcbcbcbcbc

- Các từ có thể được biểu diễn bởi các đường đi trên lưới ô vuông (latticepath)trên hệ trục tọa độ Z2 với các bước là (1, −1), (1, 0), (m, m) với m ≥ 1 Một đườnglưới không bao giờ đi xuống phía dưới trục Ox sẽ được gọi là không âm Xem ví dụsau, với 5 đường đi biểu diễn năm từ trên lưới ô vuông, mỗi từ có độ dài là 6 Khibiểu diễn các từ bằng các đường đi trên lưới ô vuông, các đường đi luôn nằm trên trục

Ox, bắt đầu và kết thúc ở trục Ox Qui ước a tượng trưng cho bước (m, m), m ≥ 0;

b tượng trưng cho bước (1, −1); 0 tượng trưng cho (1, 0), khi đó mỗi từ tương ứngvới mỗi đường đi trên lưới ô được mã hóa với một từ ở trên bảng chữ cái a, b, 0

Ví dụ, 5 đường đi trên lưới ô vuông có độ dài là 6 ở trên được mã hóa bởi các từ:ababab, abaabb, aa0b0b, ababbb, aabbbb

- Cho một bảng chữ cái A, An biểu diễn tập các từ độ dài n trên A và A∗ là tập

Trang 10

Hình 1.1 : Biểu diễn 5 từ có độ dài bằng 6

các từ có độ dài bất kì trên A; khi đó ta có A∗ =S

n≥0An

- Độ dài của α ∈ A∗ được ký hiệu là |α| và số lần xuất hiện của kí tự x trong α,với x ∈ A được ký hiệu là |α|x

- Cho các từ α, β như sau: α = α(1)α(2) α(n), β = α(1)α(2) α(k), k ≤ n khi đó,

β được gọi là tiền tố của α Nếu thêm điều kiện k 6= n thì tiền tố β được gọi là tiền tốchặt (proper) của α

- Với X là một tập các kí tự, một từ α ∈ ({a, b} ∪ X)∗ có tính chất tiền tố nếu vớimỗi tiền tố β của α, |β|b ≤ |β|a, một tập các từ Y ⊂ ({a, b} ∪ X)∗ có tính chất tiền tốnếu mỗi α ∈ Y có tính chất tiền tố

Ví dụ, X = 0, α = ab0ab có tính chất tiền tố nếu với β = ab0a là tiền tố của α thỏamãn vì |β|b ≤ |β|a và tập các từ Y ⊂ (a, b, 0)∗ nếu mỗi α ∈ Y có tính chất tiền tố.Như vậy, tính chất tiền tố đảm bảo các đường đi trên lưới ô vuông luôn nằm trêntrục Ox

- Cho α là một từ trên tập {a, b} Từ β thu được từ α bằng cách thay đổi mỗi abởi b, và ngược lại thay b bởi a, khi đó β gọi là đảo của α

Ví dụ, cho α = abab, theo cách xây dựng trên ta có β = baba gọi là đảo của α

1.2.1 Từ Dyck

- Định nghĩa: Một từ α trên tập {a, b} được gọi là từ Dyck nếu nó có tính chất tiền

tố và |α|b = |α|a

Trang 11

- Một từ Dyck là một từ nhị phân cùng với số lượng như nhau của bit 1, bit 0 vàthỏa mãn các đặc tính hậu tố: Hậu tố bất kì có ít nhất bit 0 cũng như bit 1 Các từDyck mã hóa một loạt các đối tượng tổ hợp bao gồm các cây nhị phân hoặc các đườnglưới ô vuông Kí hiệu D2n là tập các từ Dyck có độ dài 2n.

- Khi biểu diễn các từ Dyck trên lưới ô vuông, đường đi của các từ Dyck luôn bắtđầu và kết thúc ở Ox; các từ Dyck khi biểu diễn chỉ gồm hai bước (1, 1) và (1, −1),khi đó m = 1 Tập hợp các từ Dyck độ dài n được kí hiệu là D(n) và n luôn luôn là sốchẵn để đảm bảo cho đường đi của chúng bắt đầu và kết thúc tại trục Ox

- Ví dụ, D(6) bao gồm các từ ababab, abaabb, aabbab, aababb, aaabbb Biểu diễn từDyck có độ dài là 6 trên hệ tọa độ như sau:

Hình 1.2 : Biểu diễn các từ Dyck: ababab, abaabb, aabbab, aababb, aaabbb ∈ D(6)Các từ Dyck mã hóa các cây nhị phân hoàn chỉnh Cây nhị phân hoàn chỉnh là câynhị phân mà các nút trừ nút lá đều có hai con

Ứng dụng của các từ Dyck:

Nếu O là tập các đối tượng tổ hợp Cn, các từ Dyck có thể được sử dụng cho việc

mã hóa các đối tượng của O Dưới đây là các giải thuật mã hóa và giải mã cho các câynhị phân:

Giải thuật mã hóa cho một cây nhị phân - Cho BLlà cây con trái và BR là cây conphải của cây nhị phân B Qui ước: w01 có nghĩa là nối từ nhị phân w với 01, w00 cónghĩa là nối từ nhị phân w với 00, w11 có nghĩa là nối từ nhị phân w với 11, w10 cónghĩa là nối từ nhị phân w với 10

- Giải thuật mã hóa cho cây nhị phân B như sau:

ENCODINGBT(B)

begin

Trang 12

if (BL 6= ∅) and (BR = ∅) (*Trường hợp cây nhị phân chỉ có cây contrái.*)

if (BL 6= ∅) and (BR 6= ∅) (*Trường hợp cây nhị phân có cả cây con trái

và cây con phải*)

then w ← w00

ENCODINGBT(BL)

w ← w11ENCODINGBT(BR)return

End;

Hình 1.3 : Mã hóa cây nhị phân

Giải thuật giải mã một từ Dyck trên cây nhị phân

- Ban đầu, gốc của cây được tạo ra từ đỉnh hiện tại Khi một cạnh được vẽ, đỉnhcuối trở thành đỉnh hiện tại

- Giải thuật giải mã như sau:

Trang 13

then đặt vào ngăn xếp vị trí của đỉnh hiện tại.

vẽ một đỉnh trái từ đỉnh hiện tại

DECODINGBT(w)

if ab = 11

then đặt vào ngăn xếp vị trí của đỉnh hiện tại

vẽ một đỉnh phải từ đỉnh hiện tại

DECODINGBT(w)return

End;

Với giải thuật trên, khi thực hiện ta làm như sau:

Xóa 0 ở vị trí đầu tiên, xóa 1 ở vị trí cuối cùng của từ nhị phân w

Vẽ một đỉnh (gốc của cây) là đỉnh hiện tại

- Định nghĩa: Một từ α trên tập {a, b, 0} được gọi là từ Motzkin nếu nó có tính chất tiền

tố và số các kí tự b trên α bằng số các kí tự a trên α (|α|b = |α|a) Tập hợp các từ Motzkin

Trang 14

độ dài n được ký hiệu M (n).

- Đường đi của một từ Motzkin có độ dài n là một đường lưới trong hệ lưới ô vuông (Z)với các bước (1, 1), (1, −1) và (1, 0) Số bước ngang của từ Motzkin lẻ thì độ dài lẻ và ngượclại, số bước ngang chẵn thì độ dài của từ Motzkin chẵn Như vậy, độ dài của các từ Motzkinchẵn hay lẻ phụ thuộc vào số bước ngang (1, 0) chẵn hay lẻ

- Các từ Motzkin khi biểu diễn trên đường lưới ô vuông thì đường đi của chúng luôn bắtđầu và kết thúc tại Ox hay bắt đầu tại điểm (0, 0) và kết thúc tại điểm (n, 0)

- Ví dụ, tập M(4) gồm các từ abab, aabb, ab00, a00b, 00ab, 0000, a0b0, 0a0b Biểu diễn hai

từ Motzkin abab, aabb thuộc tập M (4) như sau:

Hình 1.4 : Biểu diễn các từ Motzkin abab, aabb, a00b, a0b0

1.2.3 Từ Sch¨oder

- Định nghĩa: Một từ α trên tập {a, b, 0} được gọi là từ Schr¨oder nếu nó là từ Motzkin

và nếu αi = αi+1= = αj = 0 và (i = 1 hoặc αi−1 6= 0) và (j = n + 1 hoặc αj+1 6= 0) thì(j − i + 1) là số chẵn Tập các từ Schr¨oder có độ dài n được ký hiệu là S(n) và n luôn là sốchẵn

- Khi biểu diễn từ Schr¨oder trên hệ trục tọa độ Z2, đường đi của các từ Schr¨oder gồmcác bước (1, 1), (1, −1), (1, 0) và yêu cầu cần ít nhất có hai đường ngang liên tiếp Khi đó, cóthể quy hai bước ngang thành bước một bước (2, 0)

- Các từ Schr¨oder bắt đầu tại điểm (0, 0) và kết thúc tại điểm (n, 0)

- Ví dụ, các từ Schr¨oder có độ dài bằng 4 kí hiệu là S(4) gồm các từ ab00, a00b, 00ab, 0000,biểu diễn các từ này trên lưới ô vuông như sau:

Trang 15

Hình 1.5 : Biểu diễn các từ Schr¨oder ab00, a00b, 00ab, 0000 ∈ S(4)

1.3.1 Bài toán liệt kê

- Có một số bài toán trên thực tế yêu cầu chỉ rõ: Trong một tập các đối tượng cho trước

có bao nhiêu đối tượng thoả mãn những điều kiện nhất định Bài toán đó gọi là bài toánđếm

- Phương pháp đếm thường dựa vào một số nguyên lý cơ bản và một số kết quả đếmcấu hình đơn giản Bài toán đếm thường áp dụng một cách có hiệu quả vào những công việcmang tính chất đánh giá như tính xác suất của một sự kiện, tính độ phức tạp của một thuậttoán,

- Trong lớp các bài toán đếm, có những bài toán còn yêu cầu chỉ rõ những cấu hình tìmđược thoả mãn điều kiện cho trước là những cấu hình nào Bài toán yêu cầu đưa ra danhsách các cấu hình có thể có gọi là bài toán liệt kê Để giải bài toán liệt kê, cần phải xác địnhđược một thuật toán để có thể theo đó lần lượt xây dựng được tất cả các cấu hình đang quantâm Có nhiều phương pháp liệt kê nhưng các phương pháp cần phải đáp ứng được hai yêucầu dưới đây:

• Không được lặp lại một cấu hình

• Không được bỏ sót một cấu hình

- Có thể thấy rằng, phương pháp liệt kê là phương kế cuối cùng để giải được một số bàitoán tổ hợp hiện nay Khó khăn chính của phương pháp này chính là sự bùng nổ tổ hợp dẫntới sự đòi hỏi lớn về không gian và thời gian thực hiện chương trình Tuy nhiên cùng với sựphát triển của máy tính điện tử, bằng phương pháp liệt kê, nhiều bài toán tổ hợp đã tìmthấy lời giải Bài toán này quan tâm đến tất cả các cấu hình có thể có được, vì thế lời giảicủa nó cần được biểu diễn dưới dạng thuật toán "vét cạn" tất cả các cấu hình do đó chỉ nên

Trang 16

dùng phương pháp liệt kê khi không còn một phương pháp nào khác tìm ra lời giải.

1.3.2 Một số phương pháp sinh cơ bản

a) Phương pháp sinh kế tiếp

- Phương pháp sinh kế tiếp có thể áp dụng để giải bài toán liệt kê tổ hợp đặt ra nếu nhưhai điều kiện sau thoả mãn:

+ Có thể xác định được một thứ tự trên tập các cấu hình tổ hợp cần liệt kê Từ

đó có thể biết được cấu hình đầu tiên và cấu hình cuối cùng trong thứ tự đó

+ Xây dựng được thuật toán từ một cấu hình chưa phải cấu hình cuối, sinh rađược cấu hình kế tiếp nó

Phương pháp sinh kế tiếp có thể mô tả như sau:

(Xây dựng cấu hình đầu tiên);

repeat

(Đưa ra cấu hình đang có)(Từ cấu hình đang có sinh ra cấu hình kế tiếp nếu còn)until(Hết cấu hình)

- Ví dụ, liệt kê các dãy nhị phân có độ dài n Mỗi dãy nhị phân b = bn−1bn−2 b0, trong

đó bi ∈ {0, 1} có thể xem là biểu diễn nhị phân của một số nguyên P (b) nào đó nằm trongđoạn [0, 2n − 1] Vậy có thể lấy thứ tự tăng của số nguyên để xác định thứ tự các dãy nhịphân

Dãy nhị phân b = bn−1bn−2 b0 được gọi là đi trước dãy a = an−1an−2 a0 (hay a kế tiếpb) nếu P (b) < P (a), kí hiệu là b < a Cách xác định thứ tự như vậy gọi là thứ tự tự nhiênhay còn gọi là thứ tự từ điển

Chẳng hạn với n = 3 ta có thứ tự từ điển của các dãy như sau:

Dãy cụ thể 000 001 010 011 100 101 110 111

Ta sẽ lập chương trình liệt kê các dãy nhị phân theo thứ tự từ điển có nghĩa là sẽ liệt kêlần lượt các dãy nhị phân biểu diễn các số nguyên theo thứ tự 0, 1, , 2n − 1 Như vậy, dãyđầu tiên gồm toàn số 0, dãy cuối cùng gồm toàn số 1 Nhận xét rằng nếu b = bn−1bn−2 b0

là dãy đang có và không phải là dãy cuối cùng cần liệt kê thì dãy kế tiếp sẽ nhận được bằng

Trang 17

cách cộng thêm 1 (theo cơ số 2 có nhớ) vào dãy hiện tại Như vậy, kỹ thuật sinh cấu hình kếtiếp từ cấu hình hiện tại có thể mô tả như sau:

• Dãy đầu tiên gồm toàn số 0: 00 0

• Giả sử đang có dãy bn−1bn−2 b0, khi đó:

- Tìm từ phải sang, tức là từ b0, b1, đến khi gặp bít 0 đầu tiên, chẳng hạn đó là bi

- Thay bi= 1 và bj = 0, ∀j < i, dãy mới thu được là dãy kế tiếp của dãy đang có.Thuật toán trên có thể mô tả như sau:

Algorithm: Sinh dãy nhị phân kế tiếp

Input: Dãy nhị phân bn−1bn−2 b0, ∃bi= 0;

Output: Dãy nhị phân kế tiếp an−1an−2 a0;

Procedure Sinh dãy nhị phân kế tiếp;

- Nhìn chung, phương pháp sinh kế tiếp không có tính phổ dụng: Không phải cấu hình

kế tiếp nào cũng được sinh một cách đơn giản từ cấu hình hiện tại, mặt khác cấu hình banđầu không phải dễ tìm vì ngay cả sự tồn tại một cấu hình nhiều khi vẫn còn nghi vấn Vìvậy, thông thường thuật toán sinh chỉ có thể xây dựng được đối với những bài toán tổ hợpđơn giản Để giải những bài toán liệt kê phức tạp, người ta thường dùng thuật toán quay lui.b) Phương pháp đệ qui quay lui

- Thuật toán đệ qui quay lui dùng để giải bài toán liệt kê các cấu hình Mỗi cấu hìnhđược xây dựng bằng cách xây dựng từng phần tử, mỗi phần tử được chọn bằng cách thử tất

cả các khả năng có thể xảy ra

Trang 18

- Giả sử cần tìm cấu hình được biểu diễn bằng một bộ n thành phần x1, x2, , xn và đãtìm được k − 1 thành phần của cấu hình đó là x1, x2, , xk−1 Khi đó thành phần xk của cấuhình được xác định theo cách sau:

Gọi Tk là tập hợp tất cả các thành phần mà xk có thể nhận Tập Tk là tập hữu hạn Giả

sử N (Tk) = nk, do đó lần lượt duyệt tất cả các phần tử (thành phần) của Tk Để việc duyệtđược thuận lợi, cần đánh số cho các phần tử của Tk Với mỗi khả năng j, tức là chọn phần

tử xj(1 ≤ j ≤ nk) phải thử xem xj có chấp nhận được không Khi đó xảy ra 2 tình huống:

• Nếu xj chấp nhận được thì đưa xj vào cấu hình đang xét, tức là thành phần xk củacấu hình là xj Nếu k = n thì cấu hình cần liệt kê được xác định, nếu k < n thì tiếnhành xác định thành phần xk+1

• Nếu xj không chấp nhận được thì quay lại bước trước để xác định lại xk

Thủ tục đệ quy cho thuật toán quay lui:

Algorithm Thuật toán quay lui

procedure Try (k: integer);

• Xác định giá trị biểu thức logic <chấp nhận j> Giá trị này ngoài việc phụ thuộc vào

j còn phụ thuộc vào các thành phần đã chọn tại k − 1 bước trước Như vậy cần ghinhớ trạng thái cũ sau lời gọi Try(k + 1) Các trạng thái này được ghi nhận nhờ mộtbiến logic và gọi là biến trạng thái

Trang 19

Hình 1.6 : Cây nhị phân tìm kiếm được mô tả bằng thuật toán quay lui

Thuật toán quay lui có thể mô tả bằng cây tìm kiếm như sau:

Ngoài thủ tục đệ quy Try(k), chương trình cần có thêm các thủ tục Khởi tạo và In kếtquả Chương trình chính giải bài toán liệt kê có dạng:

Begin

Khoi-tao;

Try(1);

End

- Ví dụ, liệt kê các dãy nhị phân độ dài n

Biểu diễn dãy nhị phân b = bn−1bn−2 b0, trong đó bi∈ {0, 1}, thủ tục đệ qui Try(i) xácđịnh bi, trong đó các giá trị đề cử là 0 và 1 Thủ tục đệ qui Trynhư sau:

procedure Try (i: integer);

Trang 20

1.4 Độ phức tạp của thuật toán sinh

- Nếu một thuật toán sinh tạo ra các đối tượng tổ hợp chỉ có một số lượng tính toán hằng

số được thực hiện giữa các đối tượng liên tiếp nhau, trong một phán đoán khấu trừ thì tanói rằng thuật thuật toán sinh có thời gian tính trung bình là hằng số theo phân tích khấutrừ (Constant Amortized Time viết tắt CAT)

- Ta định nghĩa bậc của một phép gọi cụ thể của một thủ tục đệ qui là số phép gọi trựctiếp của nó

Định lý 1.1 Nếu một thủ tục sinh đệ qui thỏa mãn các thuộc tính sau:

+ số lượng các phép tính toán của một phép gọi cụ thể tỉ lệ hằng số với bậc của nó,không tính các phép gọi đệ qui,

+ mỗi phép gọi có bậc là 0 hoặc ít nhất là 2

+ khi kết thúc mỗi phép gọi đệ qui, một từ mới được sinh ra,

thì thủ tục sinh đó gọi là CAT

Theo Frank Ruskey trong cuốn “Combinatorial Generation” (Sinh tổ hợp) cho rằng:+ Các giải thuật CAT: Vấn đề trọng tâm của phương pháp sinh các đối tượng tổ hợp làtìm ra một thuật toán chạy trong thời gian phân tích khấu trừ Điều này có nghĩa rằng, sốlượng tính toán, với một số lượng các tiền xử lý nhỏ là tỷ lệ thuận với số lượng của các đốitượng được liệt kê Ở đây, thời gian xuất hay xử lý các đối tượng không được tính đến màchỉ quan tâm đến số lượng cấu trúc dữ liệu thay đổi trong khi các đối tượng được sinh ra.+ Giả sử rằng các đầu vào cho thuật toán sinh là n, thuật toán này sẽ tạo ra N đối tượng,mỗi đối tượng có kích thước n Một thuật toán CAT chạy thời gian O(N ).Trong ứng dụngđiển hình của việc sinh tổ hợp, từng đối tượng được tạo ra, được xử lý bằng cách nào đó.Nếu quá trình này cần có thời gian O(n), thì có một thuật toán CAT không có lợi trong thờigian chạy O(nN ), từ đó tổng thời gian chạy là O(nN ) trong cả hai trường hợp Có nhiều tàiliệu nói về việc sinh các đối tượng tổ hợp mô tả thời gian chạy O(nN ) được xem là thời giantối ưu, bởi vì số lượng các đối tượng được sinh ra theo giải thuật - mỗi đối tượng có kíchthước n và có tổng số N đối tượng Đây là sai lầm

Và ông đã kết luận, vấn đề sinh các tổ hợp số lượng cấu trúc dữ liệu thay đổi nên xácđịnh độ phức tạp của thuật toán, không nên xác định thời gian cần thiết để tạo ra một đốitượng, vì số lượng xử lý cần thiết tỷ lệ thuận với số lượng thay đổi mà các đối tượng kế tiếpsinh ra

Trang 21

1.5 Phương pháp ECO và luật kế tiếp

- Bài toán liệt kê tổ hợp là một trong các nhánh chính của tổ hợp và có liên quan tớiviệc đếm số lượng các phần tử của một lớp hữu hạn một cách chính xác hoặc gần đúng Cónhiều vấn đề phát sinh từ các lĩnh vực khác nhau có thể được giải quyết bằng cách phân tíchchúng từ một quan điểm tổ hợp Thông thường, những vấn đề này có tính phổ biến được đạidiện bởi các đối tượng đơn giản phù hợp với các kỹ thuật liệt kê của các tổ hợp

- ECO được viết tắt của cụm từ Enumerative Combinatorial Objects Phương pháp ECOđược giới thiệu bởi Barcucci, Del Lungo, Pergola và Pinzani là một phương pháp liệt kê một

số lớp các đối tượng tổ hợp Phương pháp này đưa ra cách xây dựng đệ qui các đối tượngtheo kích thước của chúng

- Phương pháp ECO là một phương pháp đệ qui cho vấn đề liệt kê một lớp các đối tượng

tổ hợp để mỗi đối tượng thu được từ một đối tượng khác có kích thước nhỏ hơn bằng cáchtạo một số mở rộng cục bộ trên chương trình được gọi các vị trí hoạt động của các đốitượng đó Bằng kích thước của một đối tượng ta tính kết quả trung bình giá trị của mộttham số được định nghĩa trên đối tượng đó Cho O là một lớp các đối tượng tổ hợp và cho

p : O → N+ là một tham số trên O như vậy |o ∈ O : p(o) = n| có giới hạn Cho n ∈ N, On ,

ký hiệu |o ∈ O : p(o) = n|, và cho ϑ là một toán tử từ O tới 2On+1, tập lũy thừa của On.Định lý 1.2 (Barcucci et al.) Nếu cho n ≥ 0, ϑ thỏa mãn các điều kiện sau:

1 Cho mỗi o0 ∈ On+1 tồn tại o0 ∈ On sao cho o0 ∈ ϑ(o) và

2 Cho mỗi O, O0 ∈ On, ϑ(O) ∩ ϑ(O0) = ∅ với ∀O 6= O0,

thì tập hợp Fn+1 = ϑ(O) : O ∈ On là một phân hoạch của On+1

Nếu ϑ thỏa mãn cả hai điều kiện trên thì tất cả các đối tượng của O được sinh ra và mỗiđối tượng O0 ∈ On+1 thu được là duy nhất từ một đối tượng O ∈ On Cách xây dựng thựchiện bởi phương pháp ECO toán tử ϑ có thể được mô tả phù hợp với cây sinh Nếu cách xâydựng đệ qui đưa ra một quy luật nhất định thì nó có thể được mã hóa trong một hệ thốngcông thức được gọi là luật kế tiếp

- Luật kế tiếp đại diện cho các bước trung gian cho phép để mô tả một cách tổng hợpmức độ tăng trưởng của lớp các đối tượng Từ một luật kế tiếp kết hợp với cách xây dựngECO cho một lớp các đối tượng, ta thường có thể thu được hàm sinh các đối tượng tương

tự ECO phương pháp là một công cụ hữu ích cho các đối tượng tổ hợp liệt kê Trong luận

án tiến sĩ của Pergola có một số kết quả liệt kê quan trọng thu được bằng phương tiện củaphương pháp ECO

Trang 22

Như vậy, phương pháp ECO là sự mô tả đệ qui của một lớp các đối tượng tổ hợp giảithích cách làm để một đối tượng kích thước n có thể thu được từ một và chỉ một đối tượng

có kích thước nhỏ hơn kích thước n

1.5.1 Phương pháp ECO đơn tầng

- Cho O là một lớp các đối tượng tổ hợp và On⊂ O tập các đối tượng có kích thước ntrong O Một toán tử ϑ trên lớp O là một hàm ϑ : O → 2On+1 với 2On là các tập lũy thừacủa On Nếu toán tử ϑ thỏa mãn các điều kiện sau :

(1) Có duy nhất một đối tượng kích thước là 0 (ký hiệu card(O0) = 1)(2) Với mỗi y ∈ On+1 tồn tại x ∈ On sao cho y ∈ ϑ(x),

(3) Nếu x1, x2 ∈ On và x1 6= x2, ϑ(x1) ∩ ϑ(x2) thì ϑ(x)x∈O

n là một phânhoạch của On+1,

(4)Với mỗi đối tượng x ∈ Ontồn tại một danh sách có thứ tự y1, y2, , y|ϑ(x)|đối với ϑ(x) ⊂ On+1 sao cho ta có thể tính toán y1 từ x, y2 từ y1, ., y|ϑ(x)| từ y|ϑ(x)|−1 vàtrở lại x từ y|ϑ(x)| trong thời gian tuyến tính đối với |ϑ(x)|,

Khi đó, ϑ được gọi là đồng nhất (uniform) Nói cách khác, toán tử ϑ(x) gọi là đồng nhấtnếu với n bất kì và x ∈ On bất kì ta có thể tính toán trong thời gian trung bình hằng số, cácphần tử của ϑ(x) mà không bỏ sót x và không cần sử dụng thêm các cấu trúc dữ liệu khác

Vì vậy, ta có thể kết luận tính đồng nhất có ý nghĩa thuật toán

σ1σ2 σn(n + 1) 3124Mỗi hoán vị kích thước n có n + 1 con; mỗi hoán vị có kích thước (n + 1) có một cha duynhất Phép toán trong ví dụ này là phép chèn (n + 1) vào mỗi vị trí

1.5.2 Phương pháp ECO đa tầng

- Phương pháp ECO mức đơn giản hữu ích khi một đối tượng kích thước n có thể duynhất thu được từ một đối tượng kích thước n − 1, tuy nhiên điều đó không phải luôn luônnhư vậy Đôi khi một đối tượng kích thước n thu được từ một đối tượng có kích thước nhỏ

Trang 23

hơn kích thước n − 1 Điều này dẫn đến các luật kế tiếp Với phương pháp ECO hai tầng cóthể được mô tả như sau:

(1) (a) Có duy nhất một đối tượng kích thước bằng 0 (card(O0) = 1)

(b) Mỗi đối tượng y ∈ O1 mà y ∈ ϑ(x) với O0 = {x}

(2) (a) Với y ∈ On, n ≥ 2, tồn tại x ∈ On−1∪ On−2 sao cho y ∈ ϑ(x),

(b) Nếu x1, x2∈ On, x1 6= x2 thì ϑ(x1) ∩ ϑ(x2) = ∅,như vậy, tồn tại A ∈ On, B ∈ On+1 sao cho O(x)x∈A∪B là một phân hoạchcủa On+2

(3) Với mỗi đối tượng x ∈ On, có một danh sách có thứ tự y1, y2, , y|ϑ(x)| chotập ϑ(x) ∈ On+1∪ On+2 sao cho ta có thể tính toán {yi}1≤i≤|ϑ(x)| thời gian tuyến tính đốivới |ϑ(x)|, thì ϑ được gọi là đồng nhất

Tương tự như vậy, ta có thể mở rộng định nghĩa phương pháp ECO cho nhiều hơn haitầng

1.5.3 Luật kế tiếp và cây sinh

- Một cách đơn giản, cây sinh mô tả nhiều tập các đối tượng tổ hợp: Mỗi nút của câytương ứng với một đối tượng, và các nhánh dẫn đến các mã hóa nút các lựa chọn tạo trongcách xây dựng đối tượng Chúng ta có thể mô tả cấu trúc của cây sinh bằng khái niệm luật

kế tiếp

- Các đối tượng được ghi nhãn như sau: Một đối tượng có k con được ghi nhãn label(k).Thủ tục axiom đưa ra nhãn của một đối tượng có kích thước là 0 (hoặc 1)

- Luật kế tiếp đưa ra cho mỗi đối tượng với label(k), các nhãn của k con của nó

- Đối với lớp đối tượng hoán vị, luật kế tiếp ghi nhãn label(k) như sau:

+ label = số các phần tử

+ Nếu ta bắt đầu với 1, thì axiom đưa ra là (2)

+ Và luật sinh kế tiếp cho lớp đối tượng hoán vị này là:

Trang 24

Hình 1.7 : Minh họa cây sinh cho các hoán vị

Tại đó ei : N+→ N+, tập sản xuất giải thích cách thu được từ các từ kế tiếp (e1(k))(e2(k)) (ek(k))của bất kỳ label(k), k ∈ N+ Tóm lại, luật kế tiếp Ω có thể kết hợp lại như sau:

(s) được gọi là nhãn của nút gốc và mỗi nút ghi nhãn (k) sinh ra k con được ghi nhãn

(e1(k))(e2(k)) (ek(k)), tương ứng với kết quả của (k) trong Ω Luật kế tiếp Ω định nghĩa

một thứ tự các số nguyên dương {fn}n≥0, fnđược gọi là số lượng các nút ở mức n trên cây sinh

định nghĩa bởi Ω Theo nguyên tắc, gốc có mức 0, vì vậy f0 = 1 Hàm fΩ(x) =P

Minh họa sau chỉ ra cây sinh cho các từ Catalan dựa vào luật Ω

Với k = 2 ta có:

(2) (2)(3)(3) (2)(3)(4)Dãy số Catalan: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900,

2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020,

91482563640, 343059613650, 1289904147324, 4861946401452,

Dãy số Catalan mã hóa cây nhị phân đầy đủ:

Trang 25

Hình 1.8 : Cây sinh cho các từ Catalan dựa vào luật kế tiếp

Hình 1.9 Cây nhị phân đầy đủ

Trang 26

hệ của chúng Phần này tổng hợp và mở rộng từ tài liệu khoa học của TS Đỗ Phan Thuận

và GS Vincent Vajnovszki

- Từ Dyck bao gồm các từ α trên tập {a, b} Một khả năng mở rộng của các từ Dyck đó

là các từ α trên {a, b} với |α|b = |α|a, các từ như vậy gọi là các từ Grand Dyck Một cáchtương đương, nếu chúng ta bỏ qua yêu cầu tính chất tiền tố, chúng ta thu được các từ GrandDyck Tập hợp các từ Grand Dyck độ dài n được ký hiệu là GD(n) và n luôn luôn là số chẵn

Vì vậy, nếu không mất tính tổng quát ta có thể ký hiệu các từ Grand Dyck có độ dài 2nđược ký hiệu là GD(2n)

- Khi biểu diễn các từ Grand Dyck trên đường lưới ô vuông bao gồm các bước nhảy (1, 0)

và (−1, 0) Đường đi của các từ Grand Dyck luôn bắt đầu và kết thúc tại Ox, đường đi củacác từ Grand Dyck có thể xuống dưới trục Ox và nằm trong khoảng từ điểm (0, 0) đến điểm(0, 2n) (nếu chiều dài của các từ Grand Dyck là 2n)

Trang 27

- Ví dụ, GD(4) bao gồm các từ sau: abab, aabb, abba, baab, baba, bbaa Minh họa đường đicủa các từ Grand Dyck có độ dài là 4 ở hình dưới.

Hình 2.1 : Biểu diễn các từ Grand Dyck abab, aabb, abba ∈ GD(4)

Như vậy, một từ α trên tập {a, b, 0} được gọi là từ Grand Dyck nếu nó là từ Dyck và bỏqua tính chất tiền tố

- Minh họa từ Grand Motzkin có độ dài là 2 được ký hiệu là GM (2) bao gồm các từ sau:

ab, ba, 00

Hình 2.2 : Biểu diễn các từ Grand Motzkin ab, ba, 00 ∈ GM (2)

Trang 28

Ox Tập các từ Grand Schr¨oder có độ dài n được ký hiệu là GS(n) và n luôn luôn chẵn do

Trang 29

Hình 2.4 : Biểu diễn mối liên hệ giữa các lớp từ

- Một cách tổng quát, các từ Dyck là các từ Dyck k - phân, nếu chúng là các từ nhị phânvới chính xác k − 1 lần bit 0 cũng như bit 1 và thoả mãn đặc tính hậu tố theo trình tự thứk: hậu tố bất kì ít nhất k − 1 lần bit 0 cũng như bit 1 Chúng ta chỉ ra Dnkk tập các từ Dyck

k phân của độ dài nk, và Dknk = D2n

- Cho k ≥ 1, n ≥ 1 và một từ α trên {a, b} α được gọi là một từ Dyck k - phân nếu

|α|b = (k − 1) |α|a và α có tính chất tiền tố k suy rộng

- Ký hiệu D(k, kn) là tập các từ Dyck k - phân độ dài (kn)

- Khi biểu diễn các từ trên lưới ô vuông, các từ Dyck k - phân có hai loại bước (m, m)với m là số nguyên dương và (1, −1), bước lên có độ dài là k − 1 tức m = k − 1

- Chú ý rằng D(k, kn) mã hóa các cây k phân

(2) Những chú ý sau là tương đương:

(a) δ ∈ D(n) và trong cách phân tích từ δ như ở chú ý trên δ” = λ (từ rỗng)

(b) δ ∈ D(n) và không có tiền tố α của δ như vậy α là một từ Dyck

Trang 30

Hình 2.5 : Biểu diễn từ Dyck 3 - phân: abbabb, ababbb

Nếu một từ Dyck thỏa mãn một trong 2 điểm (a), (b) ở chú ý (2) thì từ Dyck đó được gọi

là từ Dyck nguyên tố; và một từ Dyck hợp số nếu nó không phải là nguyên tố Nói cách khác,một từ Dyck là hợp số nếu nó được được ghép (nối) bởi từ hai từ Dyck khác rỗng

(3) Một từ δ là một từ Grand Dyck nguyên tố nếu thỏa mãn một trong hai hoặc δ là một

từ Dyck nguyên tố hoặc đảo của δ là một từ Dyck nguyên tố

(4) Bất kỳ từ Dyck nào đều là hợp (nối) của các từ Dyck nguyên tố Bất kỳ từ GrandDyck nào đều là nối của các từ Grand Dyck nguyên tố

2.4.2 Các từ Dyck m - màu

- Cách sinh thứ hai của các từ Dyck là sinh từ Dyck m - màu: Cho T là bảng chữ cái2m kí tự, tập {a1, b1, a2, b2, , am, bm} và α ∈ T∗ , khi đó α được gọi là từ Dyck m- màunếu α = δ1δ2 δp, với mỗi δi, 1 ≤ i ≤ p , tồn tại j sao cho δi là một từ Dyck nguyên tố trên{aj, bj}

- Ký hiệu: D(2, m, 2n) là tập các từ Dyck m - màu nhị phân có độ dài 2n

- Dễ thấy, với mỗi i, 1 ≤ i ≤ m ta có:

+ |α|a

i = |α|b

i + Nếu β là một tiền tố của α thì |β|ai > |βb i|

+ Cho m=1, D(2, 1, 2n) = D(2n) là một tập hợp của lớp các từ Dyck

+ Cho m =2, D(2, 2, 2n) nằm trong song ánh với GD(2n), GD(2n) một tậpcác từ Grand Dyck có độ dài 2n

- Các từ Dyck m - màu: Là các từ Dyck gồm hai loại bước (1, 1) và (1, −1), trong đó mỗicặp bước (1, 1) và (1, −1) có cùng một màu

Từ Dyck 2 - màu a1b1a2b2, a1, a2 tương ứng với bước lên (1, 1), b1, b2 tương ứng bước

Trang 31

xuống (1, −1) khi đó cặp a1, b1 cùng màu và khác màu với cặp a2b2.

- Ví dụ các từ Dyck 2 - màu với độ dài bằng 4 được ký hiệu là D(2, 2, 4) gồm các từ sau:

a1b1a2b2, a1b1a1b1, a1a1b1b1, a2b2a2b2, a2b2a1b1, a2a2b2b2

Hình 2.6 : Đường đi của các từ Dyck 2 - màu: a1b1a1b1, a1b1a2b2, a1a1b1b1

2.4.3 Mối quan hệ giữa các từ Dyck m màu và các từ Grand Dyck

- Ta thấy rằng, khi m = 2 thì từ Dyck m - màu (D(2, 2, 2n)) nằm trong song ánh với

từ Grand Dyck độ dài 2n (GD(2n)), do đó ta xây dựng một song sánh giữa D(2, 2, 2n) vàGD(2n) như sau:

Theo phương thức mỗi từ thuộc D(2, 2, 2n) được chuyển đổi duy nhất sang một từ thuộcGD(2n) (hay nói cách khác mỗi từ thuộc D(2, 2, 2n) ánh xạ tới một từ thuộc GD(2n)) vàngược lại, mỗi từ thuộc GD(2n) được chuyển đổi duy nhất sang một từ thuộc D(2, 2, 2n).Chứng minh:

- Chứng minh chiều thuận:

Cho mỗi từ α ∈ D(2, 2, 2n), bằng cách thay thế mỗi a1 hoặc b2 bởi a và mỗi a2 hoặc b1bởi b, ta thu được β ∈ GD(2n) , hơn nữa β là duy nhất

Ví dụ, a1b1a2b2a1b1 là một từ Dyck 2 - màu theo cách chứng minh trên ta có từ GrandDyck tương ứng abbbaab Hay a1b1a2b2a1b1 → abbbaab

- Chứng minh chiều nghịch:

Cách xây dựng này có thể đảo lại Thật vậy, cho β ∈ GD(2n) là một từ Grand Dyck,

β = δ1δ2 δptrong đó mỗi δi, 1 ≤ i ≤ p, là một từ Grand Dyck nguyên tố Với mỗi δi, 1 ≤ i ≤ ptrong các trường hợp sau:

+ Nếu δi là một từ Dyck nguyên tố thông thường, ta thay thế mỗi a bởi một a1 và mỗi

b bởi một b1

Trang 32

+ Trái lại, đó là nghịch đảo của δi là một từ Dyck thông thường, ta thay thế mỗi a bởimột a2 và mỗi b bởi một b2.

Khi đó, ta thu được α ∈ D(2, 2, 2n) như trên, α là duy nhất

Ví dụ, β = abbaba ∈ GD(6) ta có từ Dyck m màu tương ứng:

abbaba → a1b1a2b2a2b2∈ D(2, 2, 6), với δ1 = ab, δ2 = ba, δ3= ba

2.4.4 Các từ Dyck k - phân m - màu

Kết hợp hai lớp từ Dyck k - phân và Dyck m - màu ta được từ Dyck k - phân m - màu

- Mở rộng định nghĩa của các từ Dyck nguyên tố sang các từ Dyck k - phân nguyên tố:

Ta nói rằng một từ Dyck k - phân nguyên tố δ nếu không có từ Dyck k - phân nào khác làmột tiền tố chặt của δ

- Cho α ∈ T∗ (T là một bảng chữ cái được xét trong phần từ Dyck m - màu), α đượcgọi là một từ Dyck k - phân m - màu nếu α = δ1δ2 δp, sao cho mỗi δi, 1 ≤ i ≤ p , là một từDyck k - phân m - màu nguyên tố trên bảng chữ cái {aj, bj} với 1 ≤ j ≤ m

- Ta ký hiệu: D(k, m, kn) tập của các từ Dyck k - phân m - màu độ dài kn

- Ví dụ, các từ Dyck 3 - phân 2 - màu có độ dài bằng 6 gồm các từ sau:

Hình 2.7 : Minh họa từ Dyck 3 - phân 2 màu a1b1b1a1b1b1 trên đường lưới

Với đặc tính trên của một số lớp từ, ta có bảng tổng hợp một số lớp từ như sau:

Ngày đăng: 25/07/2017, 21:52

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w