B GIÁO DC VÀ ĐÀO TO
TRƯỜNG ĐẠI HC BÁCH KHOA HÀ NI
--------------------------------------
LUN VĂN THC S KHOA HC
LP TRÌNH RÀNG BUC VI
BÀI TOÁN NGƯỜI CHƠI GÔN
NGHÀNH: CÔNG NGH THÔNG TIN
MÃ S:
NGUYN VĂN HU
Người hướng dn khoa hc: PGS. TS. NGUYN THANH THU
TS. FRANCISCO AZEVEDO
HÀ NI 2006
1
Lun văn thc sĩ Lp trình ràng buc và bài toán người chơi gôn
MC LC
LI NÓI ĐẦU .......................................................................................................4
KÍ HIU VÀ Ý NGHĨA CÁC T VIT TT......................................................6
PHN I. GII THIU V LP TRÌNH RÀNG BUC ................................8
PHN II. NHNG CƠ S V BÀI TOÁN THA MÃN RÀNG BUC
....................18
CHƯƠNG 1. GII THIU NHNG KHÁI NIM CƠ BN ....................... 18
1.1. Nhng định nghĩa quan trng trong CSP........................................... 18
1.1.1. Định nghĩa min và nhãn ............................................................ 18
1.1.2. Định nghĩa ràng buc.................................................................. 20
1.1.3. Định nghĩa s tha mãn .............................................................. 21
1.1.4. Định nghĩa bài toán tha mãn ràng buc (CSP): ........................ 22
1.1.5. Nhim v trong bài toán CSP...................................................... 23
1.2. CSP cho ràng buc nh phân .............................................................. 24
1.3. Mt vài ví d...................................................................................... 24
1.3.1. Bài toán N-quân hu.................................................................... 24
1.3.2. Bài toán SEND+MORE=MONEY ............................................. 25
CHƯƠNG 2. GII BÀI TOÁN THA MÃN RÀNG BUC.................... 27
2.1. Rút gn bài toán (Problem redution).................................................. 27
2.1.1 Các định nghĩa............................................................................. 27
2.1.2 Vic rút gn bài toán:.................................................................. 28
2.1.3 Bài toán ti thiu ......................................................................... 29
2.2. Tìm kiếm b nghim .......................................................................... 30
2.2.1 Thut toán quay lui đơn gin (Simple Backtracking)................. 30
2.2.2 Không gian tìm kiếm ca CSPs .................................................. 32
2.2.3 Đặc tính tng quát ca không gian tìm kiếm trong CSPs........... 34
2.2.4 Kết hp tìm kiếm vàt gn bài toán ......................................... 35
2.2.5 Nhng đim chn trong tìm kiếm ............................................... 35
CHƯƠNG 3. THUT TOÁN NHM RÚT GN VÀ TÌM KIM LI GII
CHO BÀI TOÁN.............................................................................................. 40
3.1. Mt s thut toán nhm rút gn thut toán. ....................................... 40
3.2. Mt s thut toán nhm tìm kiếm li gii cho bài toán...................... 41
PHN III. BÀI TOÁN NGƯỜI CHƠI GÔN ...............................................43
2
Lun văn thc sĩ Lp trình ràng buc và bài toán người chơi gôn
CHƯƠNG 1. GII THIU BÀI TOÁN...................................................... 44
1.1. Gii thiu............................................................................................ 44
1.2. Nhng vn đề cn gii quyết trong bài toán....................................... 46
1.3. S đối xng trong bài toán lp trình ràng buc.................................. 46
1.3.1. Định nghĩa s đối xng trong CSPs............................................ 46
1.3.2. Các phương pháp loi b đối xng ............................................. 48
1.4. S đối xng trong SGP ...................................................................... 49
CHƯƠNG 2. LOI B ĐỐI XNG BNG PHƯƠNG PHÁP TĨNH TRONG
BÀI TOÁN SGP............................................................................................... 51
2.1 Loi b đối xng tĩnh cơ bn ............................................................. 51
2.2 Loi b đối xng tĩnh bng k thut hn chế min (ND) .................. 53
2.3 Loi b đối xng tĩnh bng k thut c định mt s tay gôn ............ 55
CHƯƠNG 3. CÁC MÔ HÌNH CÙNG PHƯƠNG PHÁP GII SGP.............. 56
3.1 Mô hình dùng biến tp........................................................................ 56
3.2 Mô hình dùng biến nguyên................................................................. 57
3.3 Mô hình kết hp gia biến tp và biến nguyên.................................. 58
3.4 Mô hình AMPL .................................................................................. 60
CHƯƠNG 4. LOI B ĐỐI XNG BNG PHƯƠNG PHÁP THÊM RÀNG
BUC TRONG THI GIAN TÌM KIM CHO SGP ..................................... 62
4.1 Phương pháp SBDS........................................................................... 62
4.1.1 Gii thiu SBDS.......................................................................... 62
4.1.2 SBDS cho SGP............................................................................ 65
4.2 Phương pháp SBDD .......................................................................... 66
4.2.1 Gii thiu SBDD......................................................................... 66
4.2.2 SBDD vi DFS............................................................................ 68
4.2.3 SBDD áp dng vào SGP ............................................................. 69
4.2.4 Kết qu khi áp dng SBDD cho SGP ......................................... 71
4.2.5 So sánh SBDS và SBDD............................................................. 73
CHƯƠNG 5. MT S PHƯƠNG PHÁP LOI B ĐỐI XNG ĐỘNG
KHÁC CHO SGP ............................................................................................. 75
5.1 Loi b đối xng vi Intelligent-Backtracking (IB) .......................... 75
5.1.1 Ý tưởng thut toán....................................................................... 75
3
Lun văn thc sĩ Lp trình ràng buc và bài toán người chơi gôn
5.1.2 Thut toán.................................................................................... 77
5.2 Local Search cho SGP........................................................................ 79
5.2.1 Mô hình ....................................................................................... 79
5.2.2 Lân cn (Neighborhood) và thành phn Tabu ............................ 79
5.2.3 Thut toán.................................................................................... 80
CHƯƠNG 6. LOI B ĐỐI XNG BNG PHƯƠNG PHÁP TĨNH VÀ
THÊM RÀNG BUC DƯ THA ĐỂ GII SGP........................................... 81
6.1 Loi b đối xng trong SGP bng nhiu đim nhìn........................... 81
6.1.1 Mt s khái nim quan trng ...................................................... 81
6.1.2 Loi b đối xng bng phương pháp nhiu “đim nhìn”............ 82
6.2 Loi b đối xng bng hn chế min và c định mt s tay gôn ...... 88
6.3 So sánh vi mt s k thut khác....................................................... 90
CHƯƠNG 7. GII SGP TRONG MT S TRƯỜNG HP ĐẶC BIT VÀ
MI LIÊN QUAN VI CÁC HÌNH VUÔNG LATIN TRC GIAO............ 97
7.1 Gii thiu thut toán........................................................................... 97
7.2 Mt s tho lun cùng kết qu xung quanh thut toán....................... 99
7.3 Liên h SGP vi hình vuông Latin trc giao ................................... 101
7.3.1 Gii thiu hình vuông Latin trc giao....................................... 101
7.3.2 Mi liên h gia MOLS và SGP............................................... 104
7.3.3 Mi liên h gia SGP và MOLR............................................... 106
PHN IV. KT LUN.....................................................................................107
TÀI LIU THAM KHO..................................................................................113
4
Lun văn thc sĩ Lp trình ràng buc và bài toán người chơi gôn
LI NÓI ĐẦU
Người đầu tiên mà tôi xin dành s cm ơn và kính trng đặc bit là PGS. TS.
Nguyn Thanh Thy. Không nhng cun sách đầu tiên đã làm tôi say mê vi
“Trí tu Nhân to” là ca Thy mà Thy còn là người trc tiếp hướng dn ca
tôi. Chính Thy là người đã tin tưởng và to điu kin tt nht cho tôi hoàn
thành Lun văn tt nghip này.
Chc chn s không th nói hết được nhng tình cm mà tôi mun nói, mun
cm ơn ti TS. Francisco Azevedo. Thy là người cùng tôi ngi viết nhng
chương trình đầu tiên và sa li cho tôi. Mi thc mc ca tôi đều được Thy
gii đáp và còn hơn thế na. Thy coi tôi là mt người bn, vi tôi, Thy là
mt người bn ln.
Tôi cũng rt mun dành li cm ơn ti TS. Trn Đình Khang, người đã có
nhng giúp đỡ tôi, động viên tôi rt nhiu v mt tinh thn.
Tôi xin cm ơn ti tt c nhng đồng nghip trong khoa CNTT, trường
ĐHSPKT Hưng Yên, đặc bit là Th.S Ngô Hu Tình, Th.S Nguyn Minh Quý
Th.S Nguyn Đình Hân, h là ngun động viên rt ln cho tôi.
Xin cm ơn nhng người bn tt ca tôi: Vit, , Chun, Hiếu, Thế, Zhang
Dong, Manoela, h đã c vũ và chia s vi tôi mi điu trong cuc sng.
Nhng người cui cùng mà tôi xin dành li cm ơn, là gia đình tôi. H luôn là
đim ta đầu tiên và mãi mãi ca tôi. Mi điu tôi làm, tôi đều nghĩ ti h.
Lisbon, Ngày 26 tháng 10 năm 2006