MỤC LỤC
LỜI NÓI ĐẦU .4
KÍ HIỆU VÀ Ý NGHĨA CÁC TỪ VIẾT TẮT 6
PHẦN I. GIỚI THIỆU VỀ LẬP TRÌNH RÀNG BUỘC 8
PHẦN II. NHỮNG CƠ SỞ VỀ BÀI TOÁN THỎA MÃN RÀNG BUỘC 18
CHƯƠNG 1. GIỚI THIỆU NHỮNG KHÁI NIỆM CƠ BẢN . 18
1.1. Những định nghĩa quan trọng trong CSP . 18
1.1.1. Định nghĩa miền và nhãn 18
1.1.2. Định nghĩa ràng buộc 20
1.1.3. Định nghĩa sự thỏa mãn 21
1.1.4. Định nghĩa bài toán thỏa mãn ràng buộc (CSP): 22
1.1.5. Nhiệm vụ trong bài toán CSP 23
1.2. CSP cho ràng buộc nhị phân 24
1.3. Một vài ví dụ 24
1.3.1. Bài toán N-quân hậu 24
1.3.2. Bài toán SEND+MORE=MONEY . 25
CHƯƠNG 2. GIẢI BÀI TOÁN THỎA MÃN RÀNG BUỘC 27
2.1. Rút gọn bài toán (Problem redution) 27
2.1.1 Các định nghĩa . 27
2.1.2 Việc rút gọn bài toán: 28
2.1.3 Bài toán tối thiểu . 29
2.2. Tìm kiếm bộ nghiệm 30
2.2.1 Thuật toán quay lui đơn giản (Simple Backtracking) . 30
2.2.2 Không gian tìm kiếm của CSPs 32
2.2.3 Đặc tính tổng quát của không gian tìm kiếm trong CSPs . 34
2.2.4 Kết hợp tìm kiếm và rút gọn bài toán . 35
2.2.5 Những điểm chọn trong tìm kiếm . 35
CHƯƠNG 3. THUẬT TOÁN NHẰM RÚT GỌN VÀ TÌM KIẾM LỜI GIẢI
CHO BÀI TOÁN 40
3.1. Một số thuật toán nhằm rút gọn thuật toán. . 40
3.2. Một số thuật toán nhằm tìm kiếm lới giải cho bài toán 41
PHẦN III. BÀI TOÁN NGƯỜI CHƠI GÔN .43
CHƯƠNG 1. GIỚI THIỆU BÀI TOÁN 44
1.1. Giới thiệu 44
1.2. Những vấn đề cần giải quyết trong bài toán . 46
1.3. Sự đối xứng trong bài toán lập trình ràng buộc 46
1.3.1. Định nghĩa sự đối xứng trong CSPs 46
1.3.2. Các phương pháp loại bỏ đối xứng . 48
1.4. Sự đối xứng trong SGP 49
CHƯƠNG 2. LOẠI BỎ ĐỐI XỨNG BẰNG PHƯƠNG PHÁP TĨNH TRONG
BÀI TOÁN SGP . 51
2.1 Loại bỏ đối xứng tĩnh cơ bản . 51
2.2 Loại bỏ đối xứng tĩnh bằng kỹ thuật hạn chế miền (ND) 53
2.3 Loại bỏ đối xứng tĩnh bằng kỹ thuật cố định một số tay gôn 55
CHƯƠNG 3. CÁC MÔ HÌNH CÙNG PHƯƠNG PHÁP GIẢI SGP 56
3.1 Mô hình dùng biến tập 56
3.2 Mô hình dùng biến nguyên . 57
3.3 Mô hình kết hợp giữa biến tập và biến nguyên 58
3.4 Mô hình AMPL 60
CHƯƠNG 4. LOẠI BỎ ĐỐI XỨNG BẰNG PHƯƠNG PHÁP THÊM RÀNG
BUỘC TRONG THỜI GIAN TÌM KIẾM CHO SGP . 62
4.1 Phương pháp SBDS . 62
4.1.1 Giới thiệu SBDS 62
4.1.2 SBDS cho SGP 65
4.2 Phương pháp SBDD 66
4.2.1 Giới thiệu SBDD . 66
4.2.2 SBDD với DFS 68
4.2.3 SBDD áp dụng vào SGP . 69
4.2.4 Kết quả khi áp dụng SBDD cho SGP . 71
4.2.5 So sánh SBDS và SBDD . 73
CHƯƠNG 5. MỘT SỐ PHƯƠNG PHÁP LOẠI BỎ ĐỐI XỨNG ĐỘNG
KHÁC CHO SGP . 75
5.1 Loại bỏ đối xứng với Intelligent-Backtracking (IB) 75
5.1.1 Ý tưởng thuật toán . 75
5.1.2 Thuật toán 77
5.2 Local Search cho SGP 79
5.2.1 Mô hình . 79
5.2.2 Lân cận (Neighborhood) và thành phần Tabu 79
5.2.3 Thuật toán 80
CHƯƠNG 6. LOẠI BỎ ĐỐI XỨNG BẰNG PHƯƠNG PHÁP TĨNH VÀ
THÊM RÀNG BUỘC DƯ THỪA ĐỂ GIẢI SGP . 81
6.1 Loại bỏ đối xứng trong SGP bằng nhiều điểm nhìn . 81
6.1.1 Một số khái niệm quan trọng 81
6.1.2 Loại bỏ đối xứng bằng phương pháp nhiều “điểm nhìn” 82
6.2 Loại bỏ đối xứng bằng hạn chế miền và cố định một số tay gôn 88
6.3 So sánh với một số kỹ thuật khác . 90
CHƯƠNG 7. GIẢI SGP TRONG MỘT SỐ TRƯỜNG HỢP ĐẶC BIỆT VÀ
MỐI LIÊN QUAN VỚI CÁC HÌNH VUÔNG LATIN TRỰC GIAO 97
7.1 Giới thiệu thuật toán . 97
7.2 Một số thảo luận cùng kết quả xung quanh thuật toán . 99
7.3 Liên hệ SGP với hình vuông Latin trực giao . 101
7.3.1 Giới thiệu hình vuông Latin trực giao . 101
7.3.2 Mối liên hệ giữa MOLS và SGP . 104
7.3.3 Mối liên hệ giữa SGP và MOLR . 106
PHẦN IV. KẾT LUẬN .107
TÀI LIỆU THAM KHẢO 113
120 trang |
Chia sẻ: maiphuongtl | Lượt xem: 1544 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Lập trình ràng buộc với bài toán người chơi gôn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
: Not Italic
Deleted: golfer
Deleted: 0¶
1¶
2
Deleted: 3¶
4¶
5
Deleted: 6¶
7¶
8
Deleted: week
Deleted: 0¶
0¶
0
Deleted: 1¶
1¶
1
Deleted: 2¶
2¶
2
Deleted: 0¶
1¶
2
Deleted: 0¶
1¶
2
Deleted: 0¶
1¶
2
Deleted: 0¶
1¶
2
Deleted: 1¶
2¶
0
Deleted: 2¶
0¶
1
87
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
xứng giá trị trong V3 . Dùng ràng buộc loại bỏ đối xứng [z0,k,j,..., zn-1,k,j] >lex
[z0,k,j+1,..., zn-1,k,j+1] cho mọi 0 ≤ j ≤ g-1 và 0 ≤ k ≤ w-1. Ví dụ trong Bảng 6.1,
chúng ta có z0 → [1,0,0, 1,0,0, 1,0,0] và z1 → [1,0,0, 0,1,0, 0,1,0], trong đó z0
→ [z0,0,0, z0,0,1, z0,0,2, z0,1,0, z0,1,1, z0,1,2, z0,2,0, z0,2,1, z0,2,2] và z1 → [z1,0,0, z1,0,1, z1,0,2,
z1,1,0, z1,1,1, z1,1,2, z1,2,0, z1,2,1, z1,2,2], khi đó z0 >lex z1. Ở đây cần chú ý trật tự giữa
zl và pi,k để tránh bị mâu thuẫn.
6.1.2. 3 Kết quả của phương pháp nhiều “điểm nhìn” cho SGP
Kết quả trong phần này được thực thi trên ILOG Solver 4.4 với máy Sun
Ultra 5/400, 256 MB RAM. Dấu “-” để chỉ nó chạy vượt quá 2 giờ.
Bảng 6.3: Kết quả khi dùng phương pháp nhiều “điểm nhìn” cho nghiệm đầu
tiên của SGP
V1 V3 V1 V2 V1 V3 g s w
fails fails choices fails choices fails choices
6 2 11 142 180 0.57 166 425 0.32 142 180 0.2 166 259 0.1
7 2 13 1371 1428 9.63 1525 1966 2.97 1371 1482 1.94 1469 1604 1.4
6 3 5 - - - 47957 47959 332 37590 37591 306 37637 37638 206
7 3 4 687 729 3.33 853 1084 0.81 687 729 0.72 694 760 0.4
8 3 5 - - - 43326 43329 545 17005 17005 206 17067 17068 133
5 4 4 - - - - - - 34727 34727 327 34780 34781 229
6 4 3 - - - - - - 58802 58803 586 59035 59035 370
7 4 3 - - - - - - 20705 20705 272 20947 20947 169
8 4 9 22 142 7.36 27 668 1.52 22 142 0.44 24 207 0.3
7 5 2 4879 4883 112 - - - 48794 48838 127. 50257 50313 78.
8 5 2 7146 7151 261 - - - 71463 71515 213. 74679 74745 127
8 8 9 19 182 41.7 19 821 7.59 19 182 1.75 19 245 0.9
5 4 3 1350 1350 352 49638 49648 435. 13503 13506 134. 15345 15349 80.
5 3 5 1350 1350 215 19643 19654 111. 13503 13506 94.6 16621 16626 64.
5 3 7 1350 1350 46 53824 53954 57.1 13503 13506 19.5 18616 18673 13.
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
Formatted: Font: 14 pt, Bold
88
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Trong bảng 6.3 ký hiệu V1 V2 là sự kết hợp của hai “điểm nhìn” V1 và V2.
Tương tự V1 V3 là sự kết hợp của hai “điểm nhìn” V1 và V3. Lần lượt fails,
choices, time chỉ số lần lỗi, số lần chọn khi quay lui và thời gian (giây) cho
mỗi “điểm nhìn” tương ứng. Phần được bôi đậm để chỉ mô hình V1 V3 là tốt
nhất.
Ta sẽ so sánh phương pháp này với phương pháp được đề xuất ở phần sau.
6.2 Loại bỏ đối xứng bằng hạn chế miền (ND) và cố định một số tay gôn
(F)
Phần lý thuyết đã trình bày chi tiết trong phần 2.2 và 2.3. Ở đây chỉ đưa ra các
kết quả cũng như để so sánh với một số phương pháp khác, qua đó để thấy
được điểm mạnh cũng như điểm yếu của phương pháp. Kết quả được đưa ra
trong Bảng 6.4 sẽ được so sánh với các phương pháp khác ở phần sau:
Formatted: Font: 14 pt
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
89
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
g s w Basic ND ND+ g s w Basi ND ND+ g s w Basi ND ND+
2 0.02 0.01 0.01 6 0.22 0.18 1.20 11 1.29 1.23 1.11
3 0.02 0.01 0.01 7 0.29 0.25 40.1 12 1.99 1.48 1.33
4 0.06 0.03 0.03 8 0.39 0.32 313 13 2.39 1.79 1.59
5 0.07 0.05 0.05 9 0.52 0.41 0.41 14 2.53 2.17 1.85
6 0.1 0.08 0.08 10 0.63 0.52 0.52
2
15 2.74 2.46 2.12
2
7 0.12 0.11 0.1
2
11 0.77 0.63 0.63 7 42.5 0.99 -
2 0.02 0.01 0.01 6 - - 0.35 8 - 1.30 -
3 0.04 0.03 0.03 7 - 9.16 1.48
3
9 - 3.70 -
3
4 0.08 0.06 0.07
3
8 - - - 4 1.25 0.45 0.40
2 0.02 0.02 0.02 5 47.7 0.57 0.67 5 2.47 0.78 0.69
3 0.07 0.04 0.05
4
6 - - - 6 53.7 1.61 1.06
4 0.14 0.09 0.07 4 39.3 0.39 83.72 7 32.7 61.3 1.48
4
4
5 0.2 0.14 0.12 5 - - - 8 - - 2.16
5 0.1 0.09 0.09
5
6 - - -
4
9 - - 2.49
6 0.14 0.13 0.19
6
6 3 0.38 0.20 0.22 5 6 - 138.7 138.0
7 0.19 0.17 0.63 7 0.36 0.33 0.33 6 5 - 231.2 231.0
8 0.26 0.24 0.64 8 0.49 0.43 0.47 7 4 - 10.04 10.00
2
9 0,29 0.27 0.3 9 0.63 0.56 0.60
8
8 9 - - 6.95
2 0.02 0.01 0.01 10 0.81 0.72 0.79 3 11 - 28.6 -
3 0.03 0.05 0.04 11 1.01 0.89 0.92 4 8 - 18.9 -
4 0.05 0.09 0.09 12 1.20 1.06 1.12 5 6 - 5.13 -
5 0.21 0.16 0.2
2
13 1.27 1.30 7.85 6 5 - 6.06 -
6 9.46 3.51 3.46 8 12.8 6.45 7 4 - 3.58 -
3
7 170.1 180.1 0.95
3
9 - - - 8 3 - 0.84 0.81
2 0.05 0.04 0.03 4 6 11.2 13.2 -
9
9 3 2.63 0.96 0.93
3 0.15 0.1 0.09 5 5 - 1.91 - 2 19 - 7.02 346.0
4 0.66 0.20 1.35 4 - 0.62 - 4 9 - 205.0 -
5 1.22 0.34 1.88
6
5 - - - 9 3 - 1.30 1.24
5
5
6 1.79 0.49 0.78
7
7 8 - - 287.3
10
10 3 - 1.45 1.40
Bảng 6.4: Kết quả cho Basic, F và F+ND
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
90
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Trong Bảng 6.4 chỉ ra kết quả được đề xuất (tính bằng giây) khi tìm được
nghiệm đầu tiên. Ta dùng SICStus Prolog [29] chạy trên nền Windows XP,
máy Laptop Pentium III/850MHz, 256MB. Dấu “-” chỉ thời gian vượt quá 5
phút. Với sự kết hợp khác nhau của 3 kỹ thuật đã mô tả ở trước: Basic (được
mô tả trong phần 2.1), ND (được mô tả trong 2.2) và F (được mô tả trong
phần 2.3), để có được kết quả khi dùng kỹ thuật Basic, F và F+ND. Trong đó
những trường hợp được tô đậm để chỉ đó là trường hợp với số tuần lớn nhất
có thể đạt được hoặc nhờ cộng đồng ràng buộc hoặc nhờ những mô hình toán
học khác [9,41].
Như vậy dựa vào kết quả thực thi, ta rút ra một số kết luận như sau:
Việc thêm kỹ thuật ND vào Basic cho kết quả hầu như bài toán được
giải nhanh hơn trong tất cả các trường hợp. Nó cũng giúp giải được
nhiều trường hợp hơn, trong đó có cả những trường hợp được coi là
khó của cộng đồng ràng buộc (5-3-7, 7-5-5, 7-6-4, 7-7-8, 8-5-6, 8-5-6,
8-7-4, 9-4-8, 10-4-9, … ).
Khi áp dụng kỹ thuật F nhiều khi chúng ta sẽ mất nghiệm (do nó không
bảo toàn tính nghiệm), tuy nhiên nó cho phép chúng ta giải bài toán với
nhiều trường hợp nhanh hơn rất nhiều (giải bài toán Kirkman’s School
Problem trong vòng 1 giây) và cũng giải được trường hợp khó trong
một thời gian nhỏ ( bài toán SGP 8-4-9 trong vòng 2.5 giây, và giải bài
toán với nghiệm tối ưu 8-8-9 trong 7 giây).
6.3 So sánh với một số kỹ thuật khác
Trong phần này, sẽ so sánh với 3 phương pháp khác thường được sử dụng
trong SGP: SBDD (được coi là mạnh nhất cho loại bỏ đối xứng bằng cách
thêm ràng buộc trong thời gian tìm kiếm ), Local Search (là phương pháp có
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Not Bold
Formatted: Font: Not Bold
Formatted: Bullets and Numbering
Formatted: Font: Bold
Formatted: Font: Bold
91
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
thời gian thực thi khá nhanh, đặc biệt là với một số trường hợp khó đối với
lập trình ràng buộc trong bài toán SGP ), phương pháp nhiều “điểm nhìn”
(một phương pháp rất linh hoạt trong việc loại bỏ đối xứng tĩnh như chúng ta
thấy ở phần trên), và phương pháp loại bỏ đối xứng bằng thuật toán quay lui
thông minh.
6.3.1 So sánh với phương pháp SBDD
Đầu tiên, ta so sánh với phương pháp SBDD (nói chung, SBDD vẫn được
đánh giá là tốt hơn SBDS, ít nhất cũng đúng cho SGP [20, 22]) trong [20].
[20] đã sử dụng mô hình biến tập (phần 3.1), thực thi chương trình viết bằng
ECLiPSe trên máy Pentium II/450 MHz, môi trường Linux.
Trong Bảng 6.5: NDF cho kết quả tốt nhất khi kết hợp giữa ND và F, trong
khi đó SBDD mc là kỹ thuật SBDD không cần sự kiểm tra kết hợp (without
merged checks).
Thông qua Bảng 6.5, ta có thể nhận thấy là hầu hết những trường hợp mà
SBDD giải được cũng được giải bằng NDF trong thời gian nhỏ hơn 1 giây!
(bao gồm cả bài toán Kirkman’s School). Hơn nữa ở đây cũng giải được
nhiều trường hợp hơn (ví dụ, trong dạng g-s=6-2 đạt được 11 tuần trong thời
gian 0.63s trong khi đó SBDD cần 1 giờ mà chỉ đạt được 6 tuần).
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
92
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
g s w SBDD SBDD NDF g s w SBDD SBDD NDF
2 0.0 0.0 0.0 2 0.1 0.1 0.04
3 0.0 0.0 0.0 3 0.2 0.2 0.1
3 3
4 0.1 0.1 0.0 4 2277. 999.9 0.20
2 0.0 0.0 0.0 5 - 3639. 0.34
3 0.1 0.1 0.0
5 5
6 - - 0.49
4 0.1 0.1 0.0 6 6494. 3607. 0.18
5 0.2 0.2 0.0 7 - - 0.25
6 0.3 0.3 0.0 8 - - 0.32
2
7 0.4 0.3 0.1 9 - - 0.41
2 0.0 0.0 0.0 10 - - 0.52
3 0.1 0.1 0.0
2
11 - - 0.63
3
4 9.9 7.6 0.0 2 0.1 0.1 0.02
2 0.0 0.0 0.0 3 0.2 0.2 0.06
3 0.1 0.1 0.0 4 0.4 0.4 0.15
4 0.2 0.2 0.0 5 1683 374.1 0.24
4
4
5 0.3 0.3 0.1 6 - - 0.35
5 0.3 0.3 0.0 7 - - 1.48
6 27.2 16.5 0.1
3
8 - - -
7 504.4 216.1 0.1 2 0.2 0.1 0.04
8 2842.4 1140.8 0.2 3 0.4 0.4 0.12
2
9 5468.5 2410.9 0.2 4 0.5 0.6 0.22
2 0.1 0.1 0.0 5 1461 537.2 0.57
3 0.2 0.1 0.0
4
6 - - -
4 29.9 17.8 0.0 2 0.2 0.2 0.05
5 347.8 109.3 0.2 3 0.4 0.4 0.15
6 - - 3.4 4 1929 602.7 0.39
3
7 - - 0.9 5 - - -
2 0.1 0.1 0.0
5
6 - - -
3 0.2 0.2 0.0 2 0.2 0.1 0.07
4 118.9 11 0.1
6
6
3 0.4 0.3 0.2
5
4
5 1374.6 653.0 0.8
Bảng 6.5: Kết quả SBDD cho SGP với kỹ thuật NDF
93
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
6.3.2 So sánh với phương pháp Local Search
Ở đây sẽ so sánh kết quả đạt được với việc giải SGP dùng Local Search
(SGLS) [13], được thực thi bằng C, trên 3.06GHz-processor, 512MB RAM
(vì vậy cấu hình có thể nhanh hơn cấu hình được thử nghiệm trong Luận văn
tốt nghiệp xấp xỉ 50 lần). Cũng cần nói thêm rằng Local Search thường được
cho là một phương pháp nhanh trong nhiều trường hợp mà CP rất khó khăn.
g s w SGLS NDF g s w SGLS NDF
6 6 3 0.01 0.21 3 11 0.08 28.60
5 5 0.07 1.92 4 8 0.09 18.90
6 4 0.09 0.64 5 6 0.09 5.13
3 0.03 0.25 6 5 0.13 6.06
7
7
8 - 287.21 7 4 0.14 3.58
3 10 0.23 - 8 3 0.09 0.84
8 207.77 1.82
9
9 3 0.19 0.964
9 - 7.36 4 9 0.16 205.05
5 6 0.37 138.23 7 5 0.41 489.30
6 5 1.21 231.41 9 3 0.21 1.34
7 4 0.39 10.06
10
10 3 0.39 1.40
4 360.00 501.46
8
8
9 - 7.36
Bảng 6.6: Kết quả của SGLS với kỹ thuật NDF
Trong Bảng 6.6, dấu “-” chỉ những trường hợp thời gian vượt quá 10 phút.
Thông qua Bảng 6.6, trong một số trường hợp không tìm được nghiệm tối ưu
so với SGLS trong thời gian 10 phút. Tuy nhiên, Luận văn tốt nghiệp cũng
tìm ra nghiệm nhiều hơn SGLS 3 trường hợp khó (7-7-8, 8-4-9, 8-8-9).
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Italic, Font
color: Black
Formatted: Font: 14 pt, Italic, Font
color: Black
Formatted: Font: 14 pt, Font color:
Black
94
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
6.3.3 So sánh với phương pháp nhiều “điểm nhìn”
Ở đây sẽ lấy kết quả tốt nhất trong Bảng 6.3 (“điểm nhìn” V1V3)và kết quả tốt
nhất trong kỹ thuật đã nghiên cứu để so sánh (NDF). Thời gian đều được tính
bằng giây.
Bảng 6.7: So sánh kết quả trong việc tìm ra nghiệm đầu tiên giữa phương
pháp nhiều “điểm nhìn” và NDF.
Trong Bảng 6.7 thời gian được tính bằng giây. Tại cột ký hiệu là “+w” để chỉ
ra rằng phương pháp được đề xuất (NDF) có thể đạt được hơn “+w” số tuần
V1V3 NDF g s w
time
+ w
6 2 11 0.13 0.63 0
7 2 13 1.47 1.30 0
6 3 5 2066.14 0.32 2
7 3 4 0.41 0.20 4
8 3 5 1330.29 0.49 4
5 4 4 2297.76 1.35 1
6 4 3 3703.93 0.13 2
7 4 3 1699.63 0.16 3
8 4 9 0.3 2.94 0
7 5 2 78.34 0.08 3
8 5 2 127.84 0.11 4
8 8 9 0.93 6.95 0
5 4 3 80.83 0.08 2
5 3 5 64.27 0.2 0
5 3 7 13.96 0.95 0
Formatted
Formatted: Font: 14 pt, Not Bold
Formatted
Formatted: Font: 14 pt
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Italic
Formatted
Formatted: Font: 14 pt
Formatted: Font: 14 pt
Formatted
Formatted: Font: Not Bold
Formatted: Font: 14 pt
Formatted
Formatted: Font: 14 pt
Formatted: Font: Not Bold
Formatted: Font: 14 pt
Formatted
Formatted: Font: 14 pt
Formatted: Font: Not Bold
Formatted: Font: 14 pt
Formatted
Formatted: Font: 14 pt
Formatted: Font: Not Bold
Formatted
Formatted
Formatted: Font: 14 pt
Formatted: Font: Not Bold
Formatted
Formatted
Formatted: Font: Not Bold
Formatted
Formatted
Formatted: Font: Not Bold
Formatted
Formatted: Font: 14 pt
Formatted: Font: 14 pt, Not Bold
Formatted
Formatted: Font: 14 pt, Not Bold
... [5]
... [3]
... [1]
... [10]
... [9]
... [6]
... [13]
... [4]
... [7]
... [11]
... [14]
... [8]
... [12]
... [2]
... [15]
95
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
của phương pháp nhiều “điểm nhìn” trong vòng nhiều nhất là 5 phút (tham
khảo ở Bảng 6.4).
Thông qua kết quả so sánh ta có kết luận sau đây:
Hầu hết các trường hợp trong phương pháp nhiều “điểm nhìn” giải
được thì đều được giải bằng phương pháp được đề xuất trong thời gian
7 giây!
Có nhiều trường hợp phương pháp nhiều “điểm nhìn” đã cần đến 20,
30 thâm chí 60 phút, trong khi đó ở đây chỉ giải trong vòng xấp xỉ 1
giây!
Có thể giải nhiều trường hợp trong phương pháp nhiều “điểm nhìn”
giải trong thời gian lớn (thậm chí một giờ): 6-4-5, 8-3-5, 5-4-4, 6-4-3,
7-4-3, 8-5-2. Trong khi đó, ta có thể giải được với nghiệm tối ưu hơn
(đạt được nhiều tuần hơn) trong thời gian 2 phút.
6.3.4 So sánh với phương pháp IB
Trong Bảng 6.8 trình bày kết quả so sánh giữa hai phương pháp IB (phần 5.1)
và phương pháp NDF. Phương pháp IB [2] được thực thi bằng C++, trên
Pentium IV/ 2.4GHz-processor. Thời gian được tính bằng giây.
Trong cột w2 có những hàng có ký hiệu a ± b có nghĩa là: a là số tuần phương
pháp IB đạt được trong 5 phút, còn b là số tuần mà phương pháp được đề xuất
tìm được kém hơn (-) hay nhiều hơn (+) so với phương pháp IB.
Như vậy, thông qua Bảng 6.8 có thể đưa ra nhận xét như sau:
Trong 5 phút hầu hết những trường hợp mà phương pháp IB giải được
thì phương pháp NDF cũng giải được trong thời gian chấp nhận được.
Có hai trường hợp NDF không tối ưu bằng IB (6-4-6 và 6-4-5) cụ thể
hơn là số tuần của NDF đạt được kém 1 trong cả hai trường hợp
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Font color:
Black
96
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Có 5 trường hợp mà NDF giải được với số nghiệm tối ưu hơn (hơn
1,2,3,4 tuần) so với phương pháp IB.
Cần chú ý là thời gian cho hai phương pháp đều trong giới hạn 5 phút.
IB NDF g s
w1 Time w2 Time
3 4 0.01 4 0.064
4 5 0.00 5 0.12
3 7 1.10 7 0.95
4 5 0.10 5 0.865
5 6 0.03 6 0.49
3 7 1.36 7 1.48
4 6 123.01 6-1 0.666
5 5 6.56 5-1 0.39
3 6 0.08 6+2 6.45
4 6 0.05 6 13.217
5 5 0.11 5 1.9
3 8 0.08 8+1 3.70
4 5 0.02 5+4 2.498
5 6 15.63 6 138.77
3 9 4.29 9+2 28.69
4 5 0.51 5+3 18.9
Bảng 6.8: So sánh kết quả trong việc tìm ra nghiệm đầu tiên giữa
phương pháp IB và NDF.
97
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
CHƯƠNG 7. GIẢI SGP TRONG MỘT SỐ TRƯỜNG HỢP ĐẶC BIỆT
VÀ MỐI LIÊN QUAN VỚI CÁC HÌNH VUÔNG LATIN TRỰC GIAO
Ở đây sẽ giải SGP trong trường hợp đặc biệt p-p-(p+1), khi p là số nguyên tố,
ngoài ra cũng đưa ra một vài kết luận với trường hợp s-s-w cho cả trường hợp
s chẵn và s lẻ. Phần này cũng nêu ra một quan hệ rất thú vị giữa SGP với
hình vuông latin trực giao.
7.1 Giới thiệu thuật toán
Thuật toán này dùng để giải SGP cho trường hợp p-p-(p+1), khi p là số
nguyên tố. Điều đặc biệt là nó không mất thời gian cho việc tìm kiếm.
Ta sẽ minh họa ý tưởng của thuật toán thông qua một ví dụ. Bảng 7.1 là một
trường hợp của SGP cho 3-3-4
week group1 group 2 group 3
1 1 2 3 4 5 6 7 8 9
2 1 4 7 2 5 8 3 6 9
3 1 * ** 2 ? ? 3 ? ?
4 1 2 3
Bảng 7.1: Một trường hợp của SGP cho 3-3-4
Như trong phần 2.1 đã nói, các tay gôn 1, 2, 3 được cố định tại các nhóm 1, 2,
3 kể từ tuần thứ hai trở đi. Tuần thứ hai cũng được cố định ở nhóm thứ nhất.
Không khó khăn gì để chúng ta có được nghiệm cho tuần thứ 2. Từ đây thuật
toán được bắt đầu. Ta sử dụng ý tưởng xuất phát từ kỹ thuật hạn chế miền
(ND trong phần 2.2) rằng các phần tử ở vị trí thứ nhất chỉ quan tâm đến nhóm
thứ nhất (trong tuần 1), những phần tử ở vị trí thứ hai chỉ quan tâm đến nhóm
thứ hai (trong tuần 2), …
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
98
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Như vậy phần tử * trong Bảng 7.1 chỉ quan tâm đến những phần tử {4,5,6},
nhưng tay gôn 4 đã gặp tay gôn 1 trong tuần thứ hai, do vậy tay gôn * chỉ có
thể gặp tay gôn {5,6}. Một cách rất tự nhiên ta chọn tay gôn 5. Và khi chọn
tay gôn 5 cho phần tử * thì phần tử ** chỉ còn một lựa chọn duy nhất là tay
gôn 9. Làm tương tự chúng ta sẽ được nhóm thứ hai, và nhóm thứ ba cho tuần
thứ ba. Tiếp tục làm như vậy và chúng ta sẽ đạt được tuần thứ 4 nhờ tuần thứ
3. Cuối cùng chúng ta được nghiệm hoàn chỉnh (tối ưu cho số tuần) trong
Bảng 7.2 .
week group1 group 2 group 3
1 1 2 3 4 5 6 7 8 9
2 1 4 7 2 5 8 3 6 9
3 1 5 9 2 6 7 3 4 8
4 1 6 8 2 4 9 3 5 7
Bảng 7.2: Một nghiệm hoàn chỉnh cho SGP 3-3-4
Và từ đây có thể phát hiện ra một quy luật cho thuật toán. Mô tả dưới dạng
mã giả như sau:
Procedure SGP_PrimeNumber(In: s, Out: S)
n Å s×s
W1 Å {, , …}
W2 Å {G1, …, Gs}={, …}
const Å s+1
for i from 3 to s+1 do {generate ith week}
begin
WiÅØ
for j from 1 to s do {generate jth group}
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
99
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Gi Å{Pj}
posÅj
for k from 2 to s do {generate kth player}
posÅ (pos+const) mod n
Pk Å W[i-1, pos]
Gj ÅGj U{Pk}
end for;
end for;
Wi Å Wi U{ Gj };
end for;
end Procedure
Chú ý W[i,j]: dùng để chỉ tay gôn ở vị trí thứ j trong tuần W[i].(W[i] được coi
là một danh sách với độ dài n). Gi chỉ nhóm thứ i.
7.2 Một số thảo luận cùng kết quả xung quanh thuật toán
Dotu và Van Hentenryck [12] cũng có một thuật toán giải trong SGP p-p-
(p+1) khi p là nguyên tố (khá tương tự với thuật toán đã được đề xuất). Ở đó
các tác giả đã kết luận về thuật toán như sau:
Khi odd chia hết cho 3, thuật toán đạt được nghiệm dạng odd-odd-4.
Khi odd chia hết cho 5, thuật toán đạt được nghiệm dạng odd-odd-6.
Khi odd chia hết cho 7, thuật toán đạt được nghiệm dạng odd-odd-8.
Thông qua thuật toán được đề xuất, ta cũng có một số kết luận như sau:
Thuật toán giải SGP cho trường hợp p-p-(p+1), khi p là số nguyên tố
(Đã kiểm tra cho mọi số p < 73).
Thuật toán đúng cho mọi trường hợp odd-odd-4, khi odd là số lẻ.
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
100
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Thuật toán đúng cho mọi trường hợp number-number-3. Nó được
chứng minh bằng những lập luận sau:
o Theo như thuật toán tuần thứ hai được gán với mỗi nhóm đạt
được các tay gôn từ các mỗi nhóm khác nhau (do số tay gôn
trong mỗi nhóm chính là số nhóm trong tuần), do vậy tuần thứ
hai thỏa mãn tuần thứ nhất.
o Mỗi nhóm trong tuần thứ ba cũng có được các tay gôn từ các
nhóm khác nhau trong tuần thứ hai và tuần thứ nhất.
Chuyện gì xảy ra khi tiếp tục áp dụng cho tuần thứ 4 khi s=number là chẵn?
Chúng ta hãy cùng xem xét trường hợp này.
- Trong tuần thứ hai, tay gôn 1 và tay gôn (s*s/2+1) trong cùng nhóm
thứ nhất, bởi vì tay gôn (s*s/2+1) là tay gôn đầu tiên trong trong
nhóm (s/2+1).
- Nó cũng không khó hình dung ra tay gôn (s*s/2+1) sẽ ở nhóm
(s/2+1) trong tuần thứ ba.
- Tiếp đến tuần thứ tư, tay gôn (s*s/2+1) sẽ ở nhóm đầu tiên. Và như
vậy là nó gặp lại tay gôn 1. Như vậy thuật toán không còn đúng nữa.
Chúng ta hãy xem minh họa cho lập luận trên khi number =4 trong Bảng 7.3
Formatted: Font: Not Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font color: Black
Formatted: Font color: Black
Formatted: Font: Italic
101
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
week group1 group 2 group 3 group 4
1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
2 1 5 9 13 2 6 11 14 3 7 11 15 4 8 12 16
3 1 6 11 16 2 7 12 13 3 8 9 14 4 5 11 15
4 1 7 9 2 3 4
Bảng 7.3: Một minh họa cho thuật toán với trường hợp 4-4-w, khi này tay
gôn (s*s/2+1) chính là tay gôn số 9.
Như vậy, có thể kết luận thuật toán đúng cho mọi trường hợp number-
number-3 với number là bất kỳ (chẵn hay lẻ) mà không mất thời gian tìm
kiếm ( trường hợp tối ưu cho SGP 6-6-3 cũng được giải bởi thuật toán ).
7.3 Liên hệ SGP với hình vuông Latin trực giao
7.3.1 Giới thiệu hình vuông Latin trực giao
Trước hết, ta muốn giới thiệu về hình vuông (Latin Square) và hình chữ nhật
Latin (Latin Rectangle).
Định nghĩa 7.1
Một ma trận n×n là hình vuông Latin cấp n, nếu mỗi số 0, 1, …, n-1
xuất hiện đúng một lần trên mỗi hàng và mỗi cột. ■
Ví dụ về một hình vuông Latin như trong Bảng 7.4 là hình vuông Latin cấp 4.
Tổng quát hơn, chúng ta có thể thay các số bằng các đối tượng khác nhau.
0 1 2 3
2 3 0 1
3 2 1 0
1 0 3 2
Bảng 7.4: Một ví dụ về hình vuông Latin cấp 4
Formatted: Font: Italic
Formatted: Font: Italic
102
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Định nghĩa 7.2
Một ma trận r×n được gọi là hình chữ nhật Latin, nếu mỗi số 0, 1, …,
n-1 xuất hiện nhiều nhất một lần trên mỗi hàng và mỗi cột. ■
Ví dụ về một hình chữ nhật Latin như trong Bảng 7.5.
0 1 2 3
2 3 0 1
3 2 1 0
Bảng 7.5: Một ví dụ về hình chữ nhật Latin 3×4
Như vậy với mỗi hình vuông Latin ta có thể đạt được hình chữ nhật Latin
bằng cách loại bỏ một số hàng trong hình vuông Latin. Còn từ hình chữ nhật
Latin, liệu chúng ta có đạt được hình vuông Latin không? Câu hỏi đã có trong
định lý sau:
Định lý 7.3
Nếu r < n, thì với bất kỳ một hình chữ nhật Latin r×n có thể được mở
rộng thành hình chữ nhật Latin (r+1)×n.
Việc chứng minh có thể tham khảo tại [4].
Bây giờ đã tới lúc chúng ta thảo luận tới các hình vuông Latin trực giao
(Mutually orthogonal Latin squares - MOLS).
Định nghĩa 7.4
Một tập MOLS là một tập hình vuông Latin cỡ n sao cho bất kỳ một
cặp hình vuông Lαvà Lβ nào từ tập đó, thì cặp (Lα(i,j), Lβ(i,j)) phải khác
nhau với mọi 1≤ i, j ≤ n. ■
Từ đây suy ra một tính chất sau:
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
103
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Tính chất 7.5
Nếu tập MOLS có k hình vuông Latin cỡ n{Li| 1≤ i ≤ k} thì khi đó bộ k
- giá trị (Li1(i,j),…, Lik(i,j) ) phải khác nhau với mọi i và j, 1≤ i, j ≤ n.
Ví dụ trong Bảng 7.6 là một tập MOLS gồm 3 hình vuông Latin
0 1 2 3 0 1 2 3 0 1 2 3
3 2 1 0 2 3 0 1 1 0 3 2
1 0 3 2 3 2 1 0 2 3 0 1
2 3 0 1 1 0 3 2 3 2 1 0
Bảng 7.6: Hai hình vuông Latin trực giao
Từ định nghĩa 7.4 chúng ta cũng suy ra được tập hình chữ nhật trực giao
(Mutually orthogonal Latin rectangles - MOLR).
Định nghĩa 7.6
Một tập MOLR là một tập hình chữ nhật Latin sao cho bất kỳ một cặp
hình chữ nhật Lαvà Lβ nào từ tập đó, thì cặp (Lα(i,j), Lβ(i,j)) phải khác
nhau với mọi i và j. ■
Và như vậy thì MOLR cỡ n×n chính là tập MOLS cỡ n. Chú ý rằng tính chất
7.5 cũng đúng cho MOLR.
Chúng ta gọi N(n) là số hình vuông lớn nhất có thể từ tập MOLS cấp n; gọi
N(m×n) là số hình chữ nhật lớn nhất có thể từ tập MOLR cấp m×n. Khi đó ta
có 2 tính chất sau:
N(n) ≤ N(m×n), cho mọi m≤ n
N(m×n) ≤ n-1, cho mọi 1< m ≤ n
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Not Italic
Formatted: Font: Italic
Formatted: Font: Italic
104
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
7.3.2 Mối liên hệ giữa MOLS và SGP
Thực ra cũng không phải tự nhiên mà có sự liên hệ giữa MOLS và SGP. Sự
liên hệ này thực chất là cả hai đều liên quan đến các bài toán mang tính tổ
hợp.
Tại [II.2.3] trong [9], có giới thiệu một thuật toán xây dựng tập MOLS như
sau:
Nếu n=pe, khi p là số nguyên tố, thì ta có thể xây được dựng tập MOLS
như sau:
Đặt GF(n) là một trường hữu hạn cấp n (gồm các số 0,1,…, n-1)
Với mỗi α ∈ GF(n)\{0}, đặt Lα(i,j)= αi+j, với i, j ∈ GF(n), các
phép toán thực hiện trong GF(n).
Khi đó ta có tập { Lα| α ∈ GF(n)\{0}} chính là tập (n-1) MOLS cấp n.
Và từ chính tập MOLS này chúng ta có thể xây dựng được nghiệm cho bài
toán SGP (trong trường hợp n là lũy thừa của số nguyên tố, từ đây trở đi ta chỉ
xét trường hợp n là lũy thừa của số nguyên tố, nếu xét trường hợp khác chúng
tôi sẽ nêu cụ thể).
Khi ta đặt cạnh nhau các (n-1) MOLS cấp n ta nhận thấy rằng chính chúng
thỏa mãn tính của SGP cho dạng g- g- (g+1):
Có g nhóm và mỗi nhóm có g tay gôn chính được thể hiện bằng
(g-1) hình vuông cỡ g (sẽ giải thích sau vì sao chỉ cần g-1 hình
vuông)
Trong trường hợp này mọi tay gôn đều gặp nhau đúng một lần.
Các tay gôn không gặp lại nhau chính là tính chất của MOLS
được thể hiện thông qua tính chất 7.5
Ta sẽ lấy một ví dụ để làm rõ kết luận trên.
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
105
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Chúng ta hãy xem bảng sau:
week group1 group 2 group 3
1 1 2 3 4 5 6 7 8 9
2 1 4 7 2 5 8 3 6 9
3 1 5 9 2 6 7 3 4 8
4 1 6 8 2 4 9 3 5 7
Bảng 7.7: Một nghiệm cho trường hợp 3-3-4
Khi chúng ta chuyển mô hình sang dạng khác (chính là V1 trong phần 6.1)
chúng ta được bảng sau:
Golfer
week
1 2 3 4 5 6 7 8 9
1 1 1 1 2 2 2 3 3 3
2 1 2 3 1 2 3 1 2 3
3 1 2 3 3 1 2 2 3 1
4 1 2 3 2 3 1 3 1 2
Bảng 7.8: Nghiệm cho trường hợp 3-3-4 ở mô hình lấy nhóm làm giá trị
Từ này trở đi ta ký hiệu r hình vuông Latin trong tập MOLS(n) bằng r
MOLS(n).
Như vậy, với tập 2MOLS(3) được tô đậm ở trên chúng ta xây dựng được
nghiệm SGP cho trường hợp 3-3-4.
Tóm lại với n là lũy thừa của số nguyên tố n=pe, chúng ta sẽ có được (n-1)
MOLS(n) và chúng ta sẽ xây dựng được nghiệm cho SGP với trường hợp n-n-
Formatted: Font: Italic
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Bold
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
106
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
(n+1). Như vậy đây là sự tổng quát so với thuật toán được đề xuất và thuật
toán của [13]. Từ đó suy ra trong trường hợp muốn tìm nghiệm SGP cho
trường hợp g-g-n chính là tương đương với việc tìm ta (n-2) MOLS(g). Đây
quả thực là một sự liên hệ rất thú vị.
Hơn nữa, ta cũng có thể khẳng định rằng thuật toán được đề xuất có thể dễ
dàng cải tiến (phần 7.1) để có thể tạo ra tập (n-1) MOLS(n) khi n là nguyên tố
(tức là e =1, trong [9]).
7.3.3 Mối liên hệ giữa SGP và MOLR
Trong [21] cũng tóm tắt 2 phương pháp xây dựng nghiệm cho SGP từ tập các
MOLR(m×n). Ở đây xin đưa ra 1 cách tạo dựng thú vị sau:
1. Sharma và Das’s
r MOLR(m×n) tương ứng với g- s - w trong SGP
và khi đó (g =n)- (s=m)- (w=r+1) (nếu g không chia hết cho s)
(w >r+1) (nếu g chia hết cho s)
2. Mathtalk-ga’
r MOLR(m×n) tương ứng với g- s - w trong SGP
và khi đó (g =n)- (s=r+1)- (w=m) (nếu g không chia hết cho s)
(w >m+1) (nếu g chia hết cho s)
Đây quả thực là những sự liên hệ rất thú vị, nó đã tìm ra được nhiều nghiệm
cho SGP một cách nhanh chóng (so với lập trình ràng buộc), đồng thời chúng
cũng đưa ra được những nghiệm mới, góp phần bổ sung đáng kể vào tập
nghiệm cho SGP.
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: 14 pt, Not Bold,
Font color: Black
Formatted: Font: 14 pt, Not Bold,
Font color: Black
Formatted: Font: 14 pt, Italic, Font
color: Black
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Italic, Font
color: Black
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Italic, Font
color: Black
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Not Italic
Formatted: Font: Italic
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: Italic
Formatted: Font: 14 pt, Italic, Font
color: Black
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Font color:
Black
Formatted: Font: 14 pt, Not Bold,
Font color: Black
107
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
PHẦN IV. KẾT LUẬN
Theo cách giải quyết truyền thống với các bài toán tổ hợp khó, có hai cách
tiếp cận truyền thống: Hoặc là thực hiện thủ công thuật toán sẽ giải chính xác
trong lập trình truyền thống, hoặc là mô hình bài toán dùng thuật toán có sẵn
cho lớp các ràng buộc số học cụ thể. Hạn chế của phương pháp thứ nhất là
việc thiết kế nó đòi hỏi chi phí lớn và không dễ gì biến đổi khi bài toán thay
đổi. Hạn chế của phương pháp thứ hai là không dễ gì diễn tả hiệu quả các
ràng buộc trong miền ứng dụng đủ mềm dẻo và hiệu quả cho phép các kinh
nghiệm trong các miền được chỉ ra để giải quyết chúng. Ngôn ngữ CP hiện
đại có thể khắc phục được những điểm yếu này bằng cách cung cấp một ngôn
ngữ lập trình dựa trên việc giải ràng buộc tinh vi nhất. Điều này có nghĩa là
người lập trình có thể viết chương trình trong khi kỹ thuật giải chung đã được
cung cấp trong việc thực thi ngôn ngữ. Chúng ta đều biết rằng mọi bài toán
đều có ràng buộc, công việc của chúng ta là tìm ra giá trị của các biến thỏa
mãn các ràng buộc đó. Lập trình ràng buộc càng tỏ rõ hiệu quả trong những
bài toán mà việc yêu cầu mô tả ràng buộc mang tính mềm dẻo. Và càng ngày
lập trình ràng buộc càng thể hiện rõ vai trò mạnh mẽ của mình trong việc giải
những bài toán liên quan đến những thực trong cuộc sống, càng ngày lĩnh vực
ứng dụng của nó càng trở nên phong phú (toán học, y học, kinh tế, vật lý, tin
học,…).
Phần II, Luận văn những kiến thức cô đọng nhất cho CSPs: những định nghĩa
cùng với những khái niệm quan trong cho CSPs; Luận văn cũng nêu và thảo
luận một cách khái lược khi giải CSPs, các kỹ thuật áp dụng nhằm biến đổi
bài toán sao cho bài toán sau khi biến đổi gọn hơn và dễ giải hơn. Luận văn
tốt nghiệp cũng nêu tổng quan về các thuật toán tìm kiếm vì nó là một nhân tố
quyết định chính trong quá trình tìm nghiệm của bài toán.
108
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Trong phần III, phần đóng góp chủ yếu của Luận văn, đã giới thiệu và trình
bày hệ thống sao cho phù hợp với các tiêu chí cho việc giải SGP: các mô
hình khác nhau, các kỹ thuật khác nhau, các phương pháp giải khác nhau, và
sự kết hợp giữa chúng. Đồng thời Luận văn cũng so sánh giữa các mô hình,
các phương pháp khác nhau.
Luận văn tốt nghiệp đã giới thiệu bài toán cùng với những kiến thức cần thiết
cho bài toán “Người chơi gôn”. Từ đó chúng được ứng dụng cho những phần
sau. Tiếp đến đã giới thiệu một số kỹ thuật, ràng buộc nhằm loại bỏ đối xứng
tĩnh trong bài toán, vì hầu như các phương pháp khác đều sử dụng một phần
(hoặc hầu hết) các kỹ thuật trong phần này, đồng thời cũng đưa ra 2 kỹ thuật
mới để áp dụng cho việc giải SGP. Hai kỹ thuật đó là
Kỹ thuật ND: Đây là một ràng buộc dư thừa, nó không làm mất
nghiệm bài toán. Làm bớt khả năng xét trong quá trình tìm kiếm.
Nó cũng rất dễ dàng áp dụng cho các phương pháp khác.
Kỹ thuật F: Tuy nó không bảo toàn tính nghiệm cho bài toán,
nhưng trong rất nhiều trường hợp nó giúp bài toán giải trong thời
gian rất nhanh (Bài toán Kirkman, hay bài toán SGP cho trường
hợp 8-4-9).
Sau đó, Luận văn cũng giới thiệu bốn mô hình thường được áp dụng cho việc
giải SGP (có thể tham khảo thêm mô hình SAT cho SGP[18]). Từ đó nêu ra
những đặc trưng của từng mô hình khi áp dụng giải SGP.
Vì tính đặc thù của CSPs là tính đối xứng trong bài toán (đối xứng nghiệm,
đối xứng ràng buộc) gây tốn thời gian cũng như chi phí cho việc tìm kiếm
nghiệm (chúng ta phải tìm kiếm lại những không gian nghiệm mà đáng ra
chúng ta có thể suy ra từ những phần khác đã xét). Do vậy việc loại bỏ đối
Deleted: PHẦN III: BÀI TOÁN
NGƯỜI CHƠI GÔN¶
¶
Phần này chúng tôi sẽ giới thiệu bài toán
đồng thời giới thiệu một số kiến thức nền
tảng. Từ đó chúng tôi sẽ tiếp cận bài toán
với những mô hình và phương pháp khác
nhau để so sánh và thảo luận. Ở phần
cuối chúng tôi có giải quyết một trường
hợp đăc biệt của bài toán (khi s=g và là số
nguyên tố) và có những kết luận xung
quanh đó. Phần này chính là phần đóng
góp trọng tâm của đồ án.
109
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
xứng là một yêu cầu tự nhiên và thiết yếu. Một kỹ thuật được áp dụng rất phổ
biến trong lĩnh vực CSPs đó là kỹ thuật loại bỏ đối xứng động khi giải SGP.
Nhưng do tính đặc thù của các phương pháp, ở đây tách ra làm hai phần.
Phần thứ nhất nói về việc áp dụng các kỹ thuật loại bỏ đối xứng
trong thời gian tìm kiếm SBDS và SBDD cho SGP và cũng nêu ra
một vài điểm nhằm so sánh giữa chúng.
Phần hai giới thiệu hai phương pháp loại bỏ đối xứng động cho SGP
đó là Intelligent Backtracking (thực thi bằng quay lui thông minh)
và Local Search.
Phần tiếp theo, Luận văn tập trung vào việc loại bỏ đối xứng tĩnh khi giải
SGP. Chương cuối đưa ra phương pháp được đề xuất cùng với các so sánh kết
quả với những phương pháp đã trình bày ở những phần trước.
Ta có so sánh kết quả thực nghiệm với các phương pháp:
Phương pháp SBDD (thực thi trên ILOG Solver 5.0 và 400MHz
Ultrasparc-II) . Phương pháp này được đánh giá là tốt hơn phương
pháp SBDS . Ta có kết luận như sau:
o Hầu hết những trường hợp mà SBDD giải được cũng được giải
bằng phương pháp được đề xuất trong thời gian nhỏ hơn 1 giây!
(bao gồm cả bài toán Kirkman’s School).
o Đã tìm được nghiệm tối ưu hơn (số tuần nhiều hơn) trong nhiều
trường hợp.
Phương pháp Local Search (thực thi bằng C, trên 3.06GHz-processor,
512MB RAM). Trong [13, 21] đều nhận xét rằng có rất nhiều trường
hợp mà giải bằng lập trình ràng buộc rất khó khăn thì Local Search có
thể giải nó một cách dễ dàng và ngược lại. Tuy nhiên trong một số
Formatted: Font: 14 pt, Italic, Font
color: Black
110
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
trường hợp không tìm được nghiệm tối ưu so với SGLS trong thời gian
10 phút. Tuy nhiên ở đây cũng tìm ra nghiệm nhiều hơn SGLS 3 trường
hợp khó (7-7-8, 8-4-9, 8-8-9).
Phương pháp nhiều “điểm nhìn” (ILOG Solver 4.4 với máy Sun Ultra
5/400, 256 MB RAM). Sau khi so sánh ta đưa ra được khẳng định như
sau:
o Hầu hết các trường hợp trong phương pháp nhiều “điểm nhìn”
giải được thì đều được giải bằng phương pháp được đề xuất
trong thời gian 7 giây.
o Có nhiều trường hợp phương pháp nhiều “điểm nhìn” đã cần
đến 20, 30 thâm chí 60 phút, trong khi đó chỉ cần giải trong vòng
xấp xỉ 1 giây!
o Luận văn tốt nghiệp cũng giải nhiều trường hợp trong phương
pháp nhiều “điểm nhìn” giải trong thời gian lớn (thậm chí một
giờ): 6-4-5, 8-3-5, 5-4-4, 6-4-3, 7-4-3, 8-5-2. Trong khi đó, có
thể giải được với nghiệm tối ưu hơn (đạt được nhiều tuần hơn)
trong thời gian 2 phút
Phương pháp IB (được thực thi bằng C++, trên Pentium 4/ 2.4GHz-
processor). Ta có những kết luận như sau:
o Trong 5 phút hầu hết những trường hợp mà phương pháp
Intelligent Backtracking giải được thì phương pháp NDF cũng
giải được trong thời gian chấp nhận được.
o Có hai trường hợp NDF không tối ưu bằng Intelligent
Backtracking (6-4-6 và 6-4-5) cụ thể hơn là số tuần của NDF đạt
được kém 1 trong cả hai trường hợp
Formatted: Font: 14 pt, Italic, Font
color: Black
Formatted: Font: 14 pt, Italic, Font
color: Black
111
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
o Có 5 trường hợp mà NDF giải được với số nghiệm tối ưu hơn
(hơn 1,2,3,4 tuần) so với phương pháp Intelligent Backtracking.
Trong chương 7, Luận văn có nêu ra một thuật toán để giải SGP cho trường
hợp p-p-(p+1), khi p là nguyên tố, mà không tốn thời gian tìm kiếm. Từ thuật
toán này, đã cũng rút ra được một kết luận là thuật toán có thể dùng để giải
cho trường hợp tổng quát number- number – 3 với number là số bất kỳ.
Cũng từ thuật toán này, đã tạo ra được một cách xây dựng tập MOLS. Trên cơ
sở đó, Luận văn cũng giải thích được mối liên hệ thú vị SGP và hình vuông
Latin trực giao (MOLS).
Như vậy là từ bài toán Kirkman’ schoolgirls, tưởng như là một bài toán đố
vui, cũng như bài toán “Người chơi gôn” xuất phát từ một câu hỏi thực tế;
Luận văn đã tiếp cận và giới thiệu những kỹ thuật trong CSPs để giải quyết
cho SGP. Việc giải SGP cũng liên quan rất nhiều đến những bài toán tổ hợp (
Trong SGP khi (s-1)w=gs-1, nó tương đương với bài toán “Balanced
Incomplete Block Design” tại I.1 trong [9], “Steiner Triples”, MOLS, …).
Chính chúng có những sự tương đồng, sự bổ trợ; giải quyết một vấn đề sẽ tác
động đến các vấn đề còn lại, thúc đẩy và tạo ra sự phát triển chung.
Có nhiều phương pháp, mô hình để giải SGP. Tuy nhiên tất cả các mô hình
đều muốn loại bỏ đối xứng càng nhiều càng tốt (vì SGP cũng như các bài toán
trong CSPs có tính đối xứng rất lớn) bằng tĩnh, động hoặc kết hợp cả hai.
Việc khó khăn khi giải SGP cũng là những khó khăn chung cho cộng đồng
ràng buộc khi phải đối mặt với việc giải CSPs. Mong muốn rằng trong tương
lai có thể kết hợp những kỹ thuật được đề xuất với những kỹ thuật khác như
SBDD hay SBDS để nâng hiệu quả trong việc tìm kiếm nghiệm cho SGP.
112
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
Ngoài ra cũng có thể thấy rằng có nhiều hướng để phát triển Luận văn như:
Phát triển hơn nữa phương pháp (SBDS, SBDD, Intelligent Backtracking,
Multiple-viewpoints, Local Search, thêm các ràng buộc dư thừa…). Mỗi
phương pháp, mô hình đều đó ưu và nhược trong từng trường hợp riêng. Nếu
có thể, sẽ nghiên cứu sự kết hợp giữa các phương pháp (Local Search + Ràng
buộc dưa thừa, SBDD + ràng buộc dư thừa, SBDD + IB, …), trong đó có cả
sự kết hợp giữa các mô hình, …
Việc giải SGP là công việc khó, đòi hỏi phải có sự kết hợp những phương
pháp và thậm chí là cần tìm thêm những phương pháp mới, cách tiếp cận mới.
Đây cũng tạo tiền đề và mong muốn cho những nghiên cứu trong tương lai.
Bất chấp sự nỗ lực của cộng đồng ràng buộc, trường hợp 8-4-10 cũng như
một số trường hợp khác trong SGP vẫn còn mở. Nhưng chính thách thức này
đã thúc đẩy cộng đồng ngày càng phát triển công nghệ ràng buộc để ngày
càng phù hợp với những bài toán khó trong thực tế.
113
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
TÀI LIỆU THAM KHẢO
Tiếng Việt
1. Nguyễn Thanh Thủy, (1996), Trí tuệ nhân tạo: Các phương pháp giải
quyết vấn đề, NXBGD. Việt Nam.
Tiếng Anh
2. Azevedo F. (2006), “An Attempt to Dynamically Break Symmetries in the
Social Golfers Problem”, Azevedo et al. (eds): Proceedings of the 11th
Annual ERCIM Workshop on Constraint Programming (CSCLP'2006), pp.
101–115.
3. Azevedo F., Van Hau N. (2006), “Extra Constraint for the Social Golfers
Problem”, The 13th International Conference on Logic for Programming,
Artificial Intelligence and Reasoning, Phnom Penh, Cambodia, 13th - 17th
November (Short paper)
4. Anderson I., Honkala I. (1997), “A Short Course in Combinatorial
Designs”,
5. Association for Constraint Programming,
6. Barnier N., and Brisset P. (2002), “Solving the Kirkman's Schoolgirl
Problem in a Few Seconds”, Proceeding of Principles and Practice of
Constraint Programming - CP 2002, Springer Verlag,, LNCS 2470, pp.
477–491.
7. Barták R.,
8. Cohen D., Jeavons P., Jefferson C., Karen E. P. and Smith B. (2005)
“Symmetry Definitions for Constraint Programming”, Proceeding of
Principles and Practice of Constraint Programming - CP 2005, Springer
Verlag, LNCS 3709, pp. 17-31.
114
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
9. Colbourn C. J., and Dinitz J. H.(1996), “The CRC Handbook of
Combinatorial Design”, CRC Press, Boca Raton, FL.
10. Constraint Programming online,
11.Constraints Archive,
12.Crawford J., Luks G., Ginsberg M., and Roy A. (1996), “Symmetry
breaking predicates for search problems”, Proceeding of the 5th Int. Conf.
on Knowledge Representation and Reasoning, (KR ’96), pp. 148–159.
13.Dotu I., and Van Hentenryck P. (2005), “Scheduling Social Golfers
Locally”, Proceedings of the Second International Conference on the
Integration of AI and OR Techniques in Constraint Programming for
Combinatorial Optimization Problems (CP-AI-OR’05), Springer Verlag,
LNCS 3524, pp. 155–167.
14.Fahle S., Torsten, Stefan, and Sellmann M. “Symmetry breaking”,
Proceeding of Principles and Practice of Constraint Programming - CP
2001, Springer Verlag, LNCS 2239, pp. 93–107.
15. Flener P., Frisch A., Hnich B., Kiziltan Z., Miguel I., Walsh T. (2002),
“Breaking row and column symmetry in matrix models”, Proceeding of
Principles and Practice of Constraint Programming - CP 2002, Springer
Verlag, LNCS 2470, pp. 462-476.
16.Focacci F., and Milano M. “Global cut framework for removing
symmetries”, Proceeding of Principles and Practice of Constraint
Programming - CP 2001, Springer Verlag, LNCS 2239, pp. 77–92.
17.Frisch A., Hnich B., Kiziltan Z., Miguel I., Walsh T. (2002), “Global
constraints for lexicographic orderings”, Proceeding of Principles and
Practice of Constraint Programming - CP 2002, Springer Verlag, LNCS
2470, pp. 93-108.
115
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
18.Gent I.P. and Lynce I. (2005), “A SAT Encoding for the Social Golfer
Problem”, Proceeding of IJCAI'05 workshop on Modelling and Solving
Problems with Constraints.
19.Gent I.P., and Smith B. (2000), “Symmetry breaking during search in
contraint programming”, W. Horn, editor, EACI’2000, pp. 599–603.
20.Harvey W. (2001), “Symmetry Breaking and the Social Golfer Problem”,
Proceedings of SymCon-01: Symmetry in Constraints, pp. 9–16.
21. Harvey W. and Winterer T. (2005) “Solving the MOLR and Social
Golfers Problems”, Proceedings of the 11th International Conference on
Constraint Programming (CP-2005).
22.Karen E. P. (2003), “Comparison of Symmetry Breaking Method”,
Proceeding of Principles and Practice of Constraint Programming - CP
2003, Springer Verlag, LNCS 2833, pp. 990.
23.Kiziltan Z. (2004), “Symmetry Breaking Ordering Constraints”, PhD
thesis, Department of Information Science, Uppsala University.
24.Kzrysztof R.Apt (2003), Princeples of Constraint Programming,
Cambridge Press.
25.Law Y.C., and Lee J.H.M. (2003), “Expressing symmetry breaking
constraints using Multiple Viewpoints and channeling constraints”,
Processing of the third International Workshop on Symmetry in Constraint
Satisfaction Problem (SymCon’03), pp. 127–141.
26.Law Y.C., and Lee J.H.M. (2005), “Breaking value symmetries in matrix
models using channeling constraints”, Processing of the 20th Annual ACM
Symposium on Applied Computing (SAC-2005), pp. 375–380.
27.Law Y.C., and Lee J.H.M. (2006), “Symmetry Breaking Constraints for
Value Symmetries in Constraint Satisfaction”. Constraints (2006) to
116
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
appear 17th ECAI, European Conference on Artificial Intelligence, IOS
Press.
28.Marriott K., and Stuckey P.J. (1998), Programming with Constraints: An
Introduction, MIT Press.
29. Programming Systems Group of the Swedish Institute of Computer
Science (2005), SICStus Prolog User’s Manual.
30.Puget J.-F. (1993), “On the Satisfiability of Symmetrical Constraint
Satisfaction Problems” Proceedings of ISMIS’93 (1993), pp. 350–361.
31.Puget J.-F. (2002), “Symmetry breaking revisited”, Proceeding of
Principles and Practice of Constraint Programming - CP 2002, Springer
Verlag, LNCS 2470, pp. 446–461.
32.Puget J.F. (2005), “Breaking symmetries in all different problems”,
Proceeding of 19th IJCAI (2005), pp. 272-277.
33.Sellmann M., and Van Hentenryck P. (2005), “Structural symmetry
breaking”, Proceeding of IJCAI'05 workshop on Modelling and Solving
Problems with Constraints.
34.Sellmann M., and Harvey, W. (2002), “Heuristic constraint propagation –
Using local search for incomplete pruning and domain filtering of
redundant constraints for the social golfer problem”, Proceedings of the
Fourth International Workshop on Integration of AI and OR Techniques in
Constraint Programming for Combinatorial Optimisation Problems (CP-
AI-OR’02), pp. 191–204.
35.Smith B. (2001), “Reducing Symmetry in a Combinatorial Design
Problem”. Proceedings of the International Conference on the Integration
of AI and OR Techniques in Constraint Programming for Combinatorial
Optimization Problems (CP-AI-OR’01), pp. 351–359.
36.Tsang E. (1993), Foundations of Constraint Satisfaction, Academic Press.
117
Luận văn thạc sĩ Lập trình ràng buộc và bài toán người chơi gôn
37.Van Hentenryck P. (1989), Constraint Satisfaction in Logic Programming,
MIT Press.
38.Walsh T. (2006) “General Symmetry Breaking Constraints”, Proceeding
of Principles and Practice of Constraint Programming - CP 2006, LNCS
4204, pp. 650–664.
39.
40.
41.
42.
43.
Page 94: [1] Formatted Hau 9/22/2006 6:34:00 PM
Font: Bold
Page 94: [1] Formatted Hau 9/22/2006 6:34:00 PM
Font: Bold
Page 94: [2] Formatted Hau 9/22/2006 6:14:00 PM
Font: 14 pt
Page 94: [2] Formatted Hau 9/22/2006 6:14:00 PM
Font: 14 pt
Page 94: [3] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [3] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [3] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [4] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [4] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [4] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [5] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [5] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [5] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [6] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [6] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [6] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [7] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [7] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [7] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [8] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [8] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [8] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [9] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [9] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [9] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [10] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [10] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [10] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [11] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [11] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [11] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [12] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [12] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [12] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [13] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [13] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [13] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt
Page 94: [14] Formatted Hau 9/22/2006 6:32:00 PM
Font: 14 pt, Not Bold
Page 94: [14] Formatted Hau 9/22/2006 6:32:00 PM
Font: Not Bold
Page 94: [15] Formatted Hau 9/22/2006 6:37:00 PM
Font: Italic
Page 94: [15] Formatted Hau 9/22/2006 6:37:00 PM
Font: Bold
Các file đính kèm theo tài liệu này:
- 000000208322R.pdf