1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn lập trình ràng buộc với bài toán người chơi gôn

120 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lập trình ràng buộc với bài toán người chơi gôn
Tác giả Nguyễn Văn Hậu
Người hướng dẫn PGS. TS. Nguyễn Thanh Thủy, TS. Francisco Azevedo
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận văn thạc sỹ
Năm xuất bản 2006
Thành phố Hà Nội
Định dạng
Số trang 120
Dung lượng 3,44 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ở nhàm Thứ j Tại vị trí n Or Đối xứng trang nhóm các tay gồn thay đổi 5 Đổi xứng trong tuần cá nhóm thay đổi Ow Đổi ximg giữa các tuần các tuần thay đổi x Đổi xứng giữa các tay gôn cú

Trang 1

LUAN VAN THAC SỸ KHOA HOC

LẬP TRÌNH RÀNG BUỘC VỚI

BÀI TOÁN NGƯỜI CHƠI GÔN

NGHÀNH: CÔNG NGHỆ THÔNG TTN

MÃ SỐ

NGUYÊN VĂN HẬU

Người hướng đẫn khoa học: PGS TS NGUYỄN TIIANH THUÝ

‘TS FRANCISCO AZEVEDO

HA NOL 2006

Trang 2

LOI NOI DAU 4

KÍ HIỆU VÀ Ý NGHĨA CÁC TU VIET TAT _- 28 PHANI GIGI THIEU VE LAP TRINH RANG BUOC 8

PHAN TI NHUING CO 8G VA BAI TOAN THOA MAN RANG BU 18

CHUONG 1 GIGI THIEU NHUNG KHAI NIÊM CƠ BẢN 18

LL Những định nghĩa quan trọng trong CSP 18 1.11 Định ngiữa miền vànhãn

I.1.3 - Dinh nghĩa ràng buộc

1.1.4 Dinh nghĩa bài tốn thơa mãn rằng buộc c(CSP) 22 1.1.5 Nhiễm vụ trong bai tốn CSP 28

211 Cácdinhnghũa occcce 27

2.13 Bailộntổithiểu co 20

2.2.1 Thuật (ốn quay lui đơn giản (Simple Backtracking) 3Ơ

2.3.3 Khơng gian lim kiếm cia CSPs 32 2.2.3 Đặc Lính tổng quát của khơng gian tìm kiểm trong CSTs 34

22.4 Kếthợp tim kiếm và rút gọn bài tốn 35 2.3.5 Những điểm chọn trong lim kiểm 135 CIIONG 3 THUAT TOAN NIIAM RUT GON VA TIM KIEM LOI GIẢI

3.1 Một số thuật tuản nhằm rút gọn thuật toản 40

3.2 Một số thuật tốn nhằm tìm kiếm lới giải cho bài tốn 41

PHAN IIL BẢITỐN NGƯỜICHƠIGƠN 43

+uận văn thạc vĩ Lap trình rằng buộc và bài tốn người chơi gơn

Trang 3

1.3.2 Các phương pháp loại bỏ đối xửng, để 1⁄4 Sự đối xứng trong SGP 48

CHƯƠNG 2 LOAI BO BOI XUNG BANG PHUONG PHAP TINH TRONG

22 Loại bỏ đối xứng tính bằng kỹ thuật hạn chế miễn @D) $3 3.3 1.aại bỏ đổi xứng 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 lập «cover, SỔ,

3.2 Mö hinh đùng biển nguyên Seeeseerersoe ST 3.3 Mô hình kết hợp giữa biển tập và biển nguyên 58

Trang 4

52.1 Môhinh 7

3.2.2 Làn cận (Neighborhood) và thanh phân Tgbn 7

CHUONG 6 LOAI BO DOI XUNG BANG PHUONG PHAP TINH VA

6.1 Loại bỏ đối xứng trong SGP bằng nhiều điểm nhìn BL

6.1.3 Loại bỏ đối xứng bằng phương pháp nhiều “điểm nhìn” #2

62 Loại bỏ đối xứng bàng hạn chế miễn và cố định một số tay gỏn 88

63 So sánh với một số kỹ thuật khác 90

CHƯƠNG 7 GIAI SGP TRONG MOT 86 TRUONG HOP BAC BIRT VA

MỐI LIÊN QUAN VỚI CÁC HĨNH VUÔNG LATTN TRỰC GIAO #7

74 Giới thiệuthuậttoản sao ĐỢ 7.2 _ Một số thảo luận cùng kết quả xung quanh thuật toán 99 7.4 Liên hệ SGP với hình vuông Latin trục giao IÔT 7.3.1 Giải thiêu hình vuâng Latin trực giao lôi

PHAN IV KET LUẬN sceesenieririeririsreasoae TỦ

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 5

LOI NOI DAU Người đầu tiên mà tôi xin dành sự cảm ơn và kinh trong dic biét 1a PGS 75

Nghyễn Thanh Thủy Không những cuốn sách đần tiên đã làm tôi say mê với

“Trí tuệ Nhân tạo” là của Thầy mà Thầy còn là người trực tiếp hưởng dẫn của

tôi Chỉnh Thấy là người đã tin tưởng và lạo điều kiệu tốt nhất cho tôi hoàn

thành Luận văn tết nghiệp này

Chắc chắn sẽ không thế nói hết được những tình cảm mà tồi muốn nói, muản

vin on Wi TS Francisco Acevedo Thay là người cùng tôi ngồi viết những

chương tinh đầu trên và sửa lỗi cho tôi Mọi thắc mắc của tôi đồn được Thay

giải đáp và còn hơn thể nữa Thầy coi lôi là một người bạn, với tôi, Thấy là một người bạn lớn

Tỏi cũng rất muốn đảnh lới cảm ơn tới 7S Trấn Đình Khang, người đã có

những giúp đỡ tôi, động viên lôi rất nhưều về mật tính thần

Téi xin cảm ơm tới tất cả những đồng nghiệp trong khoa CNTT, trưởng

ĐHSPKT Hưng Yên, đặc biệt là 7h.S Ned Hite Tinh, Th.S Nguyén Minh Quy

va TRS Nguyễn Đình Hắn, họ là nguồn động viên rết lớn cho tôi

Xin cảm ơn những người bạn tốt của tôi: Vi, ý, Chuẩn, Hiến, Thổ, 2lưng

Đong, Äanoela, họ đã cỗ vũ và chia sẻ với tôi mọi điền trong cuộc sống,

Những người cuỗi cùng mà tôi xii dành lời cảm ơi, là gia đình tôi Họ luôn lá

điểm tựa đâu tiên và mãi mãi của tôi Mọi điều tôi làm, tôi đều nghĩ tới họ

Lishon, Neay 26 thang 10 wan 2006

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 6

The first person I would like to thank and respect specially is Prof Nguyen Thanh Thuy Not only the first book that I read made me intorested in

‘Artificial Intelligence”, but also he is my excellent supervisor He believed

in me, gave me a good change to do my thosis If he had not taught and led

me, probably I could have nol got this thesis,

Tam sure that there are not enough words to thank Prof’ Francisco Azevedo for all things he have been doing for me sme ] came here He helped me with the first steps fiom “Prolog” to “Constraint Programming” He read, try to understand and correct for my program I have leamt lots of things tom him

He invited me to go to his hume, enjoin diner with him and ike ane around Lishon many timer He is so kind, thoughtful He is a outstanding person He

consider me as a fiiend, for me, he is my great friend

Tudo would like to thank Dr Trea Duh Khang for his help and supporl sae

during the time I have done the thesis

My acknowledgements to all my colleagues, especially Af Sc.Ngo Hhai Tinh, MSc Nguyen Mink Quy, and MScNguven Dinh Han for cxcowwging ane a lot

Thank yon to my best friend: Viet, Ly, Chuan, Hieu, The, Zhang Dong, and AMimoela, they heve boon encowging mse bt every thing,

The last people [ would like ta thank are my family, all of them help, support love me during whele my life They are my the first fulcrum and forever

Everything I do, I dv il for them

Lisbon, 26 September, 2006

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 7

'KÍ HIỆU VÀ Ý NGHĨA CÁC TU VIET TAT

CSP, CSPs ải toán thỏa mãn ràng buộc

SBDS 1uoại bỏ đối xứng trung thời gian tìm kiếm

SBDD Loại bỗ đối xứng đựa vào sự ưu thế

F Kỹ thuật cổ định một số tay gồn

NDF Kal qua tot nhảt giữa ND và F

DFS “Tìm kiểm theo chiều sân

NC “Thỏa mãn điển kiện cho ràng buộc một ngôi

AC “Thỏa môn điều kiện cho răng buộc hai nồi

MOLS ‘Tép hinh vuéng Latin trực giao

MOLR “Tập hình chữ nhật Latin trực giao

+uận văn thạc sĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 8

P Chỉ mmột bài toám thóa mãn ràng buộc

Zhoặc X Chỉ lập cac bién trong CSP

D Chỉ mriều cho toàn bộ các biểu trong CSP

” Số tay gồu trong bài toán “Người chơi gôn”

s Số phần lữ trong xuỗi nhôm

Gy Chỉ tay gồu trơng tuâu thứ ï ở nhóm thử ÿ

tứ) Chí tay gõn trong tuần thí ? ở nhàm Thứ j Tại vị trí n

Or Đối xứng trang nhóm (các tay gồn thay đổi)

5 Đổi xứng trong tuần (cá nhóm thay đổi)

Ow Đổi ximg giữa các tuần (các tuần thay đổi)

x Đổi xứng giữa các tay gôn (cúc tay gôn hoán vị )

Na) Số hình vuéng lớn nhất có thể từ tập MOLS cấp ø

Ngon Số hình chữ nhật lớn nhất cỏ thể từ tập MOLR cấp m7

rMOLSớ) C6 z hình vuông Lan trực giao cấp m

rMOLR(nxn) Có r hình chữ nhật Latn trực giao cắp mi

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 9

PHANI GIGI THIEU VE LAP TRÌNH RÀNG BUỘC

Lập trình rang bude (Constraint Programming - CP) 1A một trong những phát

triển thú vị và mạnh mẽ nhất của ngồn ngữ lập trinh trong thập ký gân đây[3, 7,10,11,24,28,36,37] Duroc xây dựng trên cơ sở lý thuyết toán học vững chắc,

nó đang phát Liễu và đặc biệt là nó cũng đang thú hút sự quan tâm suạnh me trong việc ảp dụng vào lĩnh vực thương mai, nỏ trở thành phương pháp mô lủnh hóa cho nhiều loại bài loán tối ưu, cụ thê là trong các ràng buộc có sự

hỗn tạp và các bái toàn tìm kiếm có tỉnh tổ hợp

Lý giải cho sự quan lâm trong CP that dun giảu Ngôn ngữ lập bình ra đời

kiểm soát hành vi của thực thể trong một miền bài toản cụ thể Tuy nhiên,

ngôn nạ lập trình truyền thống, bao gồm ngón ngữ lập trình hướng đối tượng, cung cấp rải ít sự hỗ trợ với càc thực thể mà người lập trinh muốn điển

tả những rửng buộc và những qzm hệ Người lập trình mong muốn vai trỏ

của ngôn ngữ để duy trì những quan hệ và tần ra những đối tượng thỏa mu

Vi dy, xet dink ludt Gun sau

U-IxR,

Công thức mô tả mỗi quan hệ giữa hiện điện thế, cường độ đông điện và điện

trở Trong ngôn ngữ lập tình truyền thống, người lập trình không thể đúng quan hệ này một cách trực tiếp, thay váo đó nó phái được mã hóa thành câu

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 10

còn lại Vì vậy, I có thổ được suy xa từ U và R bằng công thức sau:

I=U,

Nhưng nếu guá trị của được tính tử hai thành phần cỏn lại, một công thức khác

ei pha sink:

R UA Việc đỏi hỏi người lập trình mồ tả và duy tì các quan hệ giữa các đổi tượng trong lập trình là hợp lý ch các ứng dụng có sử dụng Tuy shiên trơng ;ủdễu

ng dụng, vẫn đề quan trọng là mô hình các quan hệ và tim ra các đổi tượng

théa man, Vi ly do đó mà Lừ cuối những uănn 60, đã có nhiễu chuyên gia quan

tâm đến các ngôn ngữ lập trinh cho phép người lập trinh đơn gián háa các quan hệ giữa các trạng thải của đối trợng, Nó là vai trỏ thực tlú cơ bản nhằm

dim báo rằng những quan hệ đó lay những rằng buộc được duy tr Những ngôn ngữ như vậy được coi là ngôn ngữ CP (Constraint Programming)

lan đâu những ngôn ngữ CP chỉ thành công với một số phần (?hủng bố trợ cho một ngôn ngữ truyền thống với việc giải quyết các ràng buộc bằng các kỹ

thuật không định hước đơn giản Những ngôn ngữ nảy phần lớn phụ thuộc

vào phương pháp lan truyén cuc bd (local propagation) Phương pháp “lan truyền cục bộ” dùng mội răng buộc để gán ruột giá trị vào một biến clưưa biết

từ các giả trị đã biết cho các biến khác trong rằng buộc Ví dn trong định hiật ÂÔm có thể tỉnh toàn một giá trị R„ I hoặc V từ hai giá trị đã biết, Bài toán với lan truyền ene bộ là phương pháp giái quyết ràng bnộc giữa cäc quan hệ vến

Ví ản, nó không thể dùng để giải cóc phương trình xảy ra đồng thời như X=— Y-Z và X— 2Y+Z Như vậy việc dựa trêu lan tuyển cục bộ của những ngôn

ngữ thời kỳ đân cỏ hai điểm yêu: Những thuận lợi giải quyết những ràng buộc

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 11

những yêu cân cho một lượng lớn cáảe ứng dụng

Một ví dụ đơu giản cho ứng dụng trởng ki đừng ngôu ngữ lập trình rùng

buộc, hãy tưởng tượng rằng bạn đang mua một ngôi nhà và muốn kiểm tra

những lựa chọn khác nhau đổi với việc tả lủ Với mỗi khoảng trả lãi, tổng

tiền lãi dồn lại là PxI, trong đó P là tổng số tiễn vay và L là tý lệ lũ suất Lãi suất đền lại được cộng thêm với tiên vay đề đạt được môt số tiên vay mới NP

Néu bam dem trá R thì đó chính là số tiền bị trừ đi Như vậy là có phương trinh ràng bnậc:

NPE=PIPZI-R,

Sự cằm cố trong khoảng thời gian T có thể được mô tà bởi vide Lap lai vide

tính toán này, ở mỗi thời điểm, cho đến khu hết thời gian Tổng cuối củng gọi

TH,

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 12

NES P+ PIR

mortgage(NP, NT, T, R, B)

G day, ray bude mortgage chim quan hệ giữa tiền vốn ban đầu P, thời giản

vay TT, tỷ lệ lãi suat I, ting sd phai JA R va didm can bang 1A B Laat dau tién

( dòng đầu) xử lý ưường hợp khi kết thúc thời gian Trong trường hợp này

điểm cân bằng chính là số tiền vốn hiện tại Lnật thứ hai (5 đòng tiểp theo) xứ

lý trưởng hợp khi số khoảng thi gian lớn hơn hoặc bằng 1 Trong trường hợp này một thời điểm mới (7) sẽ trừ đi 1 Khả đó việc thay đổi vốn cũng được

tính lại Phần còn lại của việc cho vay được xác định trên một lượng vay mới

và lổng vốn mới khả mnà thời gian giảm đi 1

Chương trình trên đường như có thể để viết trên ngôn ngữ lập trình truyền

thống, ví dụ Paseal lay Ơ Thuận lợi của chương trình là, bởi vi tất cả các cầu

lệnh được xem xét dưới góc đỏ ràng buộc, nỏ diễn tà bài toản rất linh hoạt

Thực thì chương tra được khởi lwo bing cach dua ra mot dich Vi du, nếu

việc mượn $1900 trơng, 10 năm với lãi suất 10% cùng với việc phãi tra $150

một năm Chúng ta cỏ thễ viết như sau:

mortgage(1000, 10, 10/100, 159, B}

Khi ta đưa ra đích như trên, cần trá lời sẽ là 3=203.129, chi ra thời điểm cân

bằng là $203.128

Một chương trình tương tự có thể được dùng trong nhiều cách khác nhau Ví

đụ việc mượn $150 và đến klủ lết hạn việc trả 18 tại thời điểm cân bằng là 0,

chúng †a có thể đạt cân hói “Cần phái vay bao nhiên trong vòng 10 năm với lai suất 10% với việc trả 8150 một năm” Cân hỏi này có thê được viết

Trang 13

am Irong 10 năm với li suất 10% Chúng la có thể đưa ra:

morlpage(P, 10, 10/100, R, B) Câu trả lời 14 mét rang budc P=0.3855"B +6.1446*R, mét quan hi gitta cac tiến P, B, và R

Trong tắt cả các trường hợp đều được cùng một chương trình giải Điều này

tương phân với lập trình trnyén thống khi ma trong mét chương trình khác nhan có thể yêu cầu trả lời mật trong các câu hỏi đó Thực vậy, việc viết

dhuong trinh trả lời cầu hỏi cuối cùng quả thực là khó Lập tri ràng buộc cho phép chứng ta chỉ ra bái toán mội cách rải tự nhiên, và ở nức cao với việc dùng các ràng buộc vỗ học Nó là công việc của ngôu ngữ thực thủ tức dưới

để giải những ràng buộc này hơn là công việc của người lập trình

Ví dụ này tuy đơn giản những cũng minh: họa tại sao lập trình ràng buộc giải

quyết được nhiền ứng đựng, bài toán trong đời sống thực với mỏ hình phức

tạp một cách tự nhiên và hiệu quả

Số công ty dẫn tư nghiên cứu và ửng dung công nghệ ràng buộc, hàng năm,

tăng lên đúng kê Xin kể ra một số công ty lớn như: Oracle, British Airways,

SAS, Swissair, French railway authority SNCF, Hong Kong International Terminals, Michele, Dassault, Encsson, .Co ral nhitu coug ty cung cap che giải nháp dựa trên rang budc nh Peoplesoft, i? Technologies, InSai SAP jdedwards, Vine Soldions, cũng như cỏ các công ty cung cấp các công cụ dựa trêu tàng buộc sư PeopleSgfi, ¡2 Technologies, InSol, Vie Solidioua

®ăm uêu ra đầy một vài hệ thống được đóng gỏi cho phép giải các bài wan théa mãn rằng buộc:

= Prolog: GIMP, RCI/PS*, SICSins Prolog, Prolog IV, GNU Prolog, IF/Prolog

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 14

= Java: JCK, JCL, Koalog

= Mozart

Cũng vì lý do này mà CP đã và đang được dùng với nhiễu vừng khác nhau

cho nhiễn bài toán trong cuộc sống Nhiều bài toán kỹ thuật đặc biệt phủ hợp

với CP vị chúng thưởng liên quan đến sự kết hợp có trật tự trong các hệ thông

phite tap:

= Cie mé hinh tofu hye hay Boolean, và đặc biệt là trong các trường,

hợp chuẩn đoán và thiết kế- lập luận dựa trên luật

*_ Một vùng lớn khác là lập lịch tài chính và trong lính vực thương mại, nơi mà các ứng dụng thường được các chuyên gia giúp đỡ cùng voi mé hinh toim hoe

“Tỉnh toán số, klủ mà việc giải các rùng buộc đa thức cần sự cớ sự đảm bảo độ chính xác

* _ Sinh học phần tứ, chúng liên quan đến chuỗi DNS, và việc xây đựng

mồ hình 3D cho các Proiein

»«_ Kỹ thuật điện tử, tìm ra vị trí rò trong mạch điện, tính toán sự sắn

đạt mạch điện, kiểm tra và thẩm định sự thiết kẻ

“_Nó cũng được ứng dụng trong việc xử lý ngôn ngữ tự nhiên (lao ra xhững bộ phân tỉch cú pháp hiệu quả)

= _ Hệ thống đổ họa tương tác, nhằm diễn tả tỉnh chặt chẽ về mặt hình

học trong trường hợp phần tích hoat cảnh

=_ Hơu nữa nỏ cũng được áp dụng liên quan đến di truyền và tạu ra các đữt liêu thử cho các giao thức trao đổi théng tin

" _ Người †a cũng cho rằng, hàu hết các ứng dung quan trọng cũa ngôn

ngữ CP được áp dụng cho các bài toán mang tính tổ hợp khỏ, và nó

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 15

ưu lỗ hợp Ví dụ như việc phải giải quyết liên quam đến i4ø bảng thời gian (timetabling), 4p lich (scheduling), dink tavér (routing)

Những kiểu bài toán này rất khó để diễn tả và giải quyết trên các ngân ngit lập trình truyền thống Điều này đo chứng yêu cần tim

kiếm trong xnột không g›an nghiêm cở hàm mũ nhằm tim ra được xghiệm tối ưu cho bài toảm Để đại được hiệu quả, câu ràng buộc

phái dùng các kỹ thuật cắt không gian tim kiếm

"Trong quá trình giái quyết 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à mnô hình bái loán đùng thuật loám có sẵn (off the shelf)

cho lớp các ràng buộc số học cụ thế Ilạn chễ của phương pháp thứ nhất là

việc thiết kế nó đời hỏi chỉ phí lớu va khong dé gi biến đổi ki bai ton thay

đổi Hạn chế của phương pháp thử hai là không đễ gì điền tả hiện qua các rảng buộc trong miễn ứng dung đủ mềm đẻo và hiệu quả cho phép các kinh

nghiệm trong các nuiề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ến này bằng cách cung cấp một ngân

giải rùng buộc tính vi nhất, Điều mày có ng]ữu là

ngữ lập trình dựa trêu vií

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 có thể xét một ví dụ đơn giản sau, mệt vi dụ rất quen thuộc [1, 24,28]:

SEND

+ MOI MONEY

‘Voi mỗi ký tự là một số khác nhau trong phương trình số học

Bai toàn mày có thế được giải trong ngôn ngữ ràng buộc như sau:

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 16

aa([8,E,N.D,M,H,B.Ÿ1, Typed im

domain (05,£,5,,H,0,8,¥1, 0, 93, S850, Mod,

a11_éi?£erent (L[8,E,N,D,M,U,R.Ÿ]), h ntep 2 sun(6,E,N,D,E,D,3, Y3,

labeling Type, [8,E,E,D,H,U,R,Y? ® step 3

arm(S, E, N, 2, M 0, Ry ¥) 2

100148 — 109£N = TOE + 0 + 10014N = 10930 = 10£E +

#= 460904M + 100000 ~ 100*N ~ 108 + ¥

Trong chương trình trên, các biến 8, E, N, D, M, 0, R va Y được khai báo trong miền giá trị khoáng [0.9] trong khi ràng buộc được người đùng định nghĩa trong all differentÖ và snmnQ Việc giải các ràng buộc như vậy trong trường số nguyên là xất nhunh nhờ việc Sp dung ede ky thuật lan truyền link động Cái gia của tắc độ trong cách giải này là việc giải không trợn vẹn, vì vậy chương trình có thể cho câu trả lời không biết, đỗ chủ rằng nó không biết

có nghiệm hay không Trang trưởng hợp này người lập trình có tha ding ham

bế trợ, labeling, dimg dé tim kiếm các giả trị khác nhau trong khoảng [0,9]

cho các biến Điều mày có ngÌũu rùng chương trình duge dan bảo tìm ra

nghiệm khi nó tôn tại Trong trường hợp này, labeling là một hàm thư viện đã được cung cốp cho hệ thống, nhưng sức nành củu giải pháp CP là người lập trình có Thế định nghĩa ra việc giải hài toán cụ ihễ theo cách của riêng họ

Trong ví dụ trên, nếu chủng †a gọi

Trang 17

Problens - CSP>) cũng được chính thức công sửtận bởi công đồng trí tuệ nhân tạo (AI) Họ cũng chí ra những khái niệm cơ bản của tính nhất qnán cnc bộ (Íocal consistency) và các thuật toản đễ giải chúng Một cách độc lập, nhiều phương pháp khác nhan cũng đã được hình thành, Một trong số chứng, như quay lrả (backtracking) được đưa ra từ thế kỹ 19, trong khi khái niệm nhánh- cận (ranch mủ bound) được đưa ra trong tối ưu tổ hợp, Những đóng gứp của

CP Hà đã chí ra những dạng mới khác nhau trong tim kiếm khi kết hợp những

kỹ thuật đã biết với các Thuật toán lan truyền ràng buộc khác nhau Một số sự

tổ hợp đặc trưng cfng đã được nghiên cửu trong vùng tôi ru tễ hợn

Sự phái uiển của CSP da din dén sự ra đời của ngôn ngữ lập trirủr rùng buộc 'Trong thập niên #0, những ngôn ngất CP đầu tiên đã ra đời Việc quan trong 1a những ngôn ngữ này đều dựa tiêu ưng nguyên lý Lập trah Logïc Chuủ

điều này dẫn đến sự phát triển của Lap trinh Logie Rang buộc (Constraint

Logic Programming-CLP) và được mở rộng từ ngôn ngữ lập trình logie như Prolog bằng cách thay thổ phép hợp nhất (uiBcatior) bằng việc kiểm tra việc

thỏa mãn ràng buậc dùng bộ giải đã định Chúng được bắt đầu từ Châu Âu và

Australia wong những năm cuối thập niên 1980 Cả hai ví dụ ở tên đều được

thể hiện qua CI,P Các bộ giải khác nhau và miền ứng, dựng khác nhau sẽ cần

đến các ngôn ngĩt khắc nhau nhường có một kỹ thuật đánh giả chung,

Bat chấp sự thành công của CLP, gần đây, mật số ngôn ngữ lập trình ràng

tuộc khác đưng được bàn thảo Buo gồm: ngôn ngữ rừng buộc đồng thời, nó

dùng sự kế thừa ràng bnöe đễ mở rộng ngôn ngất CLP hằng cách cưng cấp các

thông tin khong đồng bộ giữa các tác tử (agents); ngôn ngữ truy vấn rang buộc cho cơ sở dữ liệu, nó mmở rộng cơ sở dữ liệu quan hệ Uằng cách cho phép các bộ chữa các biến đã dược ràng buộc, ngôn ngữ lập trình hàm rằng buộc,

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 18

ngôn ngữ lập trình mênh lệnh ràng buộc và bộ công cụ giải rằng buộc hướng đối tượng,

Tuy nhiên, Ngôn ngữ CLP là ngôn ngữ lập trình ràng buộc nguyên mẫu

Theo cảm nhận, chúng là ngôn ngữ lập trình răng bnộc “tinh khiết” và “nhỏ

nhất” do về bản chất chỉ có thao tác người lập trình có thễ thực luện là việc

định nghữa các rùng buộc ruới của họ lứ những ràng buộc cở sở da duge trang

bi Vi ly do nay, viée hiéu CP là công việc liên quan đến bắt kỳ ngôn ngất lập

trình rằng buộc nào

Đặc tính nếi bật của lập trình ràng buộc là các ràng buộc được liên kết chặt

chế một cách tự nhiên Nó liên quan mật thiết với các kia cạnh của toán học,

khoa học máy tính truyền thống và trí tuệ nhân tạo Tập trình rằng bnộc phac

họa công việc Irong thuật toán giải quyết ràng buộc từ việc tim kiếm các thao

tác, tính toàn số và kỹ thuật giải quyết ràng buộc trơng các bài toán thỏa mãn

rang buéc, mội Tĩnh vực quan trong trong tr tệ nhân tạo Nó cũng phác họa xhường kỹ thuật từ vi

luận tự động, đến lý thuyết và việc thục thi cơ sử đữ liên

thiết kế và thực thi ngôn ngữ lộ hình, cũng như lập

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 19

PHÂN H NHỮNG CƠ SỞ VÈ BÀI TOÁN THỎA MÃN RÀNG BUỘC

Bài toàn thỏa mãn ràng buộc (Constraint Setisfaction Problen — CSP) dang

ngày cảng trở nên phổ biển trong cộng đồng khoa học máy tỉnh cũng như trí

tuệ nhân tạo Mục đích chính của phẫn này là giới thiêu những kiên thức cô

đọng nhất cho CSPs: Niưng, định nghia cing với những khúi iiệm quan trọng

cho CSPs; các kỹ thuật áp dụng nhằm biển đổi bài toán sao cho dễ giải hơn,

đồng thời cứng nêu ra các cách liễp cận và giải CSPs [7,24,28,36]

CHƯƠNG 1 GIỚI TIIỆU NHỮNG KHÁI NIỆM CƠ BẢN

1.1 Những định nghĩa quan trạng trong CSP

Trong phan này, chúng la sẽ nêu những dịnh nghĩa quan trợng trong CSP

Trước khi làm điều đó, chúng ta sẽ phải định ngiữa miền, nhãn và khái niệm

sự thủu min

1.1.1 Định nghĩa miễn và nhãn

Định nghĩa 1.1:

Miễn của một biển là tập các giá trị có Thể gán tới biến Nến x là một

biến, †a ký liệu D, là miền cia xm

Khi miền chỉ chứa các số, các biển được gọi là biển số Miền của biến

số có thể được hạn chế trong số nguyên, hữu tỉ hay số thực Ví dụ,

miễn của biển nguyên là một tập vô hạn {I, 2, 3, .} Trong Lnận van này chỉ tập trung vào CSP với miễn lrữu hạn

Khi miền chi chứa giả trị boolean, biển sẽ được gọi là biến boolean

Xhi mà miễn chứa kiểu Hệt kế các đối tượng, biển sẽ được gọi là biến

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 20

tượng vì miền của nó lả một tập hữu hạn {thử hai, thử ba, thứ tư, thứ

năm, thứ sáu, thứ bảy, chú nhật}

Định nghĩa 1.2

Nhan la mét cap bién-gid tr] thể hiện rằng biển đó đã được gán giá trị

Ching ta ding <x, v> để chỉ rằng biến x được gán giá trị v <x, v> chỉ

có nghĩa nều v 1a một giá trị thuộc miền của x =

| Nếu ø và ø là các số nguyên sao cho zw <2, khi đó phép chiếu của một

nhãn n-kết hợp - tới một nhấn m-kết hợp 4 được coi như phép chiếu

projection(.; 2) nêu tất cả các nhãn của đều có mặt trong /

W(< mY Doe < Ky Vy Ds (S25) Hoe < Fy Wy 3): (xay } C2, }

prgjection((< z¡„w, >s < Z,„M, >),(< XịyV, 3 < X„2W, >)) =

KAY Pees S hy sVy EF

Vi du, (<a,1><c,3>) là mét phép chién cita (<a,1><b,2><c,3>), cfing c6 nghia

(Deleted: a

Trang 21

được một cách đồng thời Một cách khái niệm, một rằng buộc có thể được

xem như một tập chứa tất cả các nhãn kết hợp cho các biến; trong thực tế,

rang buộc có thể được thể hiện nhiều cách khác, vi dụ như ham, ma tran, bat

phương trình

Định nghĩa 1.7

Một rang buộc trên một tập các biến được coi như là một tập các nhấn

kết hợp tương ứng với biển đó Đẻ thuận tiện, chúng ta đùng C, đề ký

hiệu cho ràng buộc trên tập biển của Š m

Trang 22

Dinh nghia Ì 10a

Nếu các biển trong nhân kết hợp -Y cũng chính là biểu trung nhấn kết

hop của ràng buộc C, khi đó _X satisfies Œ nếu và chỉ nếu X là một phần

tử trong Ơ

salisfies((< x.,v >< x.,¥,

(2x,¥, ><

Dinh nghia 1.108

satisfies(< x,v > Ca (<xv2)eC,

“nh nghia 117

Cho một tập nhãn kết hợp 7 và một ràng buée C sao cho bién trong C

là tập con của tập biến trong 7, nhăn kết hợp Z satisfles ràng buộc C

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 23

của Œ

Văn,x:, x,: V1 CŨ, man CD Chàng

Một bài toán thỏa mãn rằng, buộc là một bộ ba (Z, 2, C), trong đỏ

Z =tập hữu hạn ðiếz { xi,x:, , X;);

7 =một hàm ánh xạ mỗi biển trong Z tới tập các đối tượng của biển

trong, img;

D: Z>tap adi twong him han

Chúng †a gợi D„ là tập đổi trợng ánh xa tử x, bới D Như vậy

T)„ là miễn của x;

€- lập (có thể rông) các rằng buộc tiêu một lập con tùy ý của các biến

trong Z Nói một cách khác, C là tập cửa tập các nhãn kết hợp

Ching ta ding CSP(2Ð đề ký hiệu rằng ø là một bài toàn thỏa man rang buộc m

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 24

tập các giả trị Giá tị của x không hẳn chỉ trong rằng buộc C›, điều đó

có nghĩa là <%, a> saligfies (1„, và tẾT ca các răng, buộc chứa x, bao gầm

Cyan Cazes

Ching ta tập trung vào CSP có số biến hữu bạn và miễn của chúng

cũng hữu hạn

1.1.5 Nhiệm vụ trong bài toán CSP

Nhiệm vụ của CSP là gản giá trị tới mỗi biến sao cho chúng thỏa mãn đồng

thời tắt cả các rằng buộc

Đình nghĩa 1.13

Một bộ nghiệm của một CSP là một nhân kết hợp cho tất cả các biển

trong tit cả các rùng buộc

Vesp((2,D,C}): VX\,x., ,X„ C2 :(VWi cD, cD, » CÔN:

CSP được coi là thỏa mãn nếu tồn tại bê nghiêm Tùy thuộc vào yêu cầu ứng, dựng, CSPs có thể phân loại thành:

1 CSPy chỉ ra không tồn lại nghiệm

2 CSPy chi cin tim ra một bộ nghiện bat

Trang 25

4 CSPs cần tìm ra một nghiệm tối tu (chúng thường gấp trong lập

lịch)

13 CSP cho rằng buộc nhị phân

Định nghĩa 1.14

Mật CäP nhị phân, hay hài toán rằng buộc nhị phân, là một CSP chi

có ràng buộc một ngôi (unary) hoặc hai ngôi (bmary) Một CSP mà rùng buộc không bị giới lyn trong một hoặc lai ngôi được coi như là mot CS

1.3.1 Bài taán N-quân hậu

Đây có Thể coi là bài toán kinh điển nhất trong CSP Bởi vị nó có nhiều đặc

tinh mang tinh đặc thù trong CSPs Tw 46 cdc nhà nghiên cứu cỏ thễ vận dựng vào việc tìm hiểu các kỹ thuật chung cho CSP

Ching ta cin xép n quân hậu vào bàn cỡ vua trxn, n>2, sao cho chủng không

Trang 26

Ở đầy, ta a8 dang chnyén di sang CSP:

Bién : F={Q], Q2, ., Qn} chính là các cột

Mién :Dạ Dạ Dạ (1,2, ,n}, chính là các hàng Rang buge :

= _ Thứ nhắt, 2 quân không củng cột VLRO

«_ Thứ hai, 2 quân không cùng đường chéo

Yi24I0,=a má 0k Eeki—j # a—b, mM2~—j # b~a

Noi chưng, một bã toán N-qnân hậu sẽ cỏ khoảng NY kha ning khi tim nghiệm cho bài toản

1.3.2 Bài toán SERD+MOREEMONEY

Thay mỗi kỷ tự sau bằng những số khác nhau, sao cho phép tính tổng là đứng

SEND MORE

Trang 27

+ 1000: ă + 100-0 + 10-R +E

= 10000- AL + 1000-0 + 100-N + 10-B + ¥

= _ Thứ hai, bất kỷ hai ký tự nào cũng phải khác nhau

x 4 y for x,y © {S,E,N.D,M,O,R,Y}, <ự

Trang 28

CSPs thực sự rất đáng quan tầm vì nó xuất hiện trong một số lần các ứng

dựng, Nó cũng có những đặc tính riêng cần được khám phá và phát triến bằng những thuật toán hiệu quả riêng Chương này, chủng ta sẽ đi quá tổng quan

các kỹ Thuật giải CSP, chúng ta có Thể nhân thành 3 loại: ## gọn bái toán, tìm

Aiểm và sự tông hợp nghiệm

2.1, Rút gọn bài toán (Problem redution)

Bài toa £- Ø2 D, C) được rút gọn (rcdueed) thành £° (2, D', C3

a) va." TA tương đương

b) Mọi miền của biến trong D' là tập con của miền biển trong D

€) C° được hạn chế hơn hoặc bằng C (mọi nhãn kết hợp thỏa

xiển C° sẽ thủu suãn C}

Cining ta quy trớc quan hệ giữa và 2` bởi công thức rerlcedl(2) 2)

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 29

Ves((2,D,G)),cp(2',01,C):

reduced((Z,D,C),(2',D!,Œ)) = equivalent((Z,D,C),(Z'.D' CY) (WreZ:Dic DA

(VÄ€Z:(C; 6C ->ŒCCz) Vic rit gyn bài toán chúnh là việc loại bỏ đi những phần tử trong ràng buộc

má không xnất hiện trơng bộ nghiệm Chủng †a cũng cần định nghĩa sự dư

thửa giá trị và dư thừa nhân kết hợp

SP :(solution tuple? ,(Z,D,C)) A prajeefion,(< x„v >)))

Những giá trị nhw vay dnc goi Ii “recumdant” boi vì việc loại bỏ nó không Lim ảnh hưởng tới tập nghiệm

adit’ : (solution _nple(I',(Z,D,C)) projection(t’,el))

3.12 Việc rút gọn bài toán:

Kỹ thật rút gọn bài toán để biến đổi CSPs thành một bài toán khác tương

đương với hy vọng nó đễ giải hơn bằng cách giảm đi cỡ của miều và rùng

+uận văn thạc vĩ Lập trình rằng buộc và bài loán người chơi gôn

Trang 30

miền và rùng buộc được định rỡ

Rit gon bai toán liên quan đến 2 công việc chỉnh:

(1) Loại bỏ những, giá trị thừa từ các miền của biến

(2) Lam chặt những ràng buộc zao cho chỉ một vài nhãn kết hợp thỏa

1nữn chủng, nếu các ràng buộc được coi như là cúc lập thì điều nảy

có nghĩa là loại bố các nhãn kết hợp đư thừa ra khỏi rang buộc Nếu miền của bất kỳ biển hoặc ràng buộc nào là rồng, Thì có thế kết luận

ring bài toám vô nghiệm Rút gọn Đài toán yêu cầu cầu có khả năng nhận ru những giả tả và nhấn kết

hợp ảư thửa (redundant) Những thông tin như vậy có thể được lấy từ các

ràng buộc Thuật toán rút gọn sẽ được thảo luận ở chương 3

Cũng cần phải nói thêm rằng việc rút gọn bài toản thường liền quan đến việc

tháo tuần sự nhất quản (consistency maintaiuamev) Báo tuần sự nhật quản

cũng có nghĩa là rút gọn bài toàn tới một bài toán khác cỏ các tỉnh chất đã

được xác định

2.1.3 Bài toán tối thiểu

Tịnh nghĩa 2.5

Một graph của một C$P nìi phần được gợi là graph tôi thiểu nêu không

miễn não chữa giả trị ấư thửa và không ràng buộc nào chứa nhãn kết

hợp dư thừa Nới anột cảch khác, mỗi nhãn kết hợp trong một ràng buộc

nhị phân đên xuất hiện trong một vải bộ nghiệm:

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 31

nmisimal_geaphi(Z, B,C) =

(ee Z (ave Dy redendami(y,

WO C fides Cy redundant,

2.2 Tìm kiếm bộ nghiệm

Phần lớn lỗ lực trung việc nghiên cửu CS†s lập trung vào kỹ thuật thm kiếm

Trong phân này, chủng ta sé m6 tả một cách cơ bản thuật toán tìm kiểm sau

đó phân tích các tính chất C§Ps Các thuật toán có thẻ được thiết kế để giải ŒPz một cách hiện qua nhờ cỏ được những tính chất này

3.2.1 Thuật tuán quay lui đơn giản (Simple Backtrucking)

Thuật toản cơ bản đễ tìm kiếm nghiệm là thuật toán quay lưi đơn giản, nó chú: là một chiến lược tim kiểm tổng quát và được dùng rộng rãi trong việc giải các bài toàn (Prolog dùng nó để trả lới các câu hói) Trong một trường

hop eu thé của CSPs, thao tác cơ bàu là chọn một biến trủ một thời điểm và

xét một giá trị cho nó, đàm bảo rằng nhãn được chợn đó sẽ phủ hợp với tất cả

các nhấn trong tương lai Việc gản một giả trị vào mệt biến gọi là labelling

'Nếu labelling biểu hiện tại với giá trị được chọn không phù hợp với một ràng buộc nào đó, thì một giá trị khác có sẵn sẽ được chọn Nếu tất cả các biển

được gắn rửần, khi đó bài toán được giải

Bởi vi thuật toán quay lui (Backtrackina- BT) luôn luên quay lui tai diém

quyết định cuối cùng khi qná trình kết thủe, nên nó cũng được gọi là quay lui

theo một trình tr (chzonologieal backtracking) Chúng ta cỏ đoạn mã san:

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 32

Delete v fram Dy:

JF COMPOUND LAGEL - {<a,v>} wiokabes no constraints THEN BES.N

Ragult — BT-A(UNLABE! LED - ‘x}, SONPOUND ABEL + San), D Chị

3P Meeol s NỈ } HHỆN nonnn(Hsail, END

UNTIL (0, etum( NIN}; # signifying 0 ect END / of ELSE

ENDS of BEIT Nếu sổ biển là rụ, số ràng buộc là e, số mniền là a cho rỗi biển trong CSP Khi

đó có thể có a* khả năng cho bộ nghiệm, và độ phức tap thời gian cho việc

kiểm tra toán bộ rằng buộc lâ (2073)

Đô phức tựp bộ nhớ của bài toán là Ø2) Thuật loám BT không đời hỏi bộ

nhớ tạm thởi nhiều hơn O(n) để lưu trữ nhân kết hợp Vì vậy, độ phức tạp

không gian leu trit cho Chronological Backtracking lá O(za)

Chủ ý răng độ phức tạp thời gian ở trên chỉ ra rằng thuật toán sẽ hiệu quả hon niểu †a giảm được z Điều này có Thể đạt được bằng các kỹ thuật rất gọn bài toán Chúng ta sẽ thảo hiện ở phần sau

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 33

Không gian tìm kiểm là không gian của tẬt cả các trạng thái mà việc tìm kiểm:

Trang 34

biển sắp thứ ti {x, 3, z}, Z={x x, z1, Dv={a, b, c dJ, Dy={e, ƒ g) D.=ứn q)

Củ ý node ® trong hình 2.2 thể hiện trang thứi kh x dược gắn xửiấm é, y và 2

vẫn được được gán giá tri

Can phat chit ý rằng không gian am kiểm sE khảo rữvnu nếu trội tự các biển được sắp trữ tự khác như

Trang 35

biến sắp thứ tự (2, w,x) 2 6u vizẺ, D, (a b.c dD, fe fg De al

3.3.3 Đặc tỉnh tổng quát cña không gian m kiểm trong CSPs

Chủng ta cần tim hiéu mé6t a6 thnge tinh CSPs vi nó khác so với bải toán fÌm

kiểm lổng quát để klủ giải bài toán hiệu quả hơn

(1) Cỡ của không tìm kiếm là hữu hạn

Số lá trong cây tim kiểm là z= Є| Dạ| | Є|, đong dé D, là miễn

cúa bién xy, và [Đ, |là cỡ của miền đỏ Chú ÿ rằng Z không bị ánh

hưởng Uới trật tự klú chủng 3a quyết định gán nhấn cho biến Tuy

nhưên, trật tự lại ảnh hưởng đền số nút trung gian trong không gian tìm

kiểm Ví dụ, trong tổng số mút trưng giàn ong Hình 2.2 là L6, tro

khi Ilình 2.3 lá 8 Tổng qnát hơn, nêu chúng ta giả sử các biến được sắp

theo thứ tự %; , X›, , xạ thí số nút trong cảy tầm kiếm là

1-5, [Dall Bal Ba

Voi công thức trên, cùng vúi 2 vi dụ đã nêu, không khó khău cho chúng 1a nhiện ra rằng nếu các biển được sắp theo trật tự khi các miền của nó

giảm dần thì số mút trong không gian Hm kiếm sẽ đạt giá trị lớn nhất

Đỏ cũng chính là biên của cỡ wong không giam tìn kiếm Ngược lại riểu

các biển được sÂp theo trật tự khi các miền của nó tăng dẫn thi số nút trong không gian tìm kiếm sẽ đạt giả trị nhỏ nhất

Tạ mhiên, cũ của bài toản lại bị chỉ phối bởi tich cudi cũng

LAD, | D, || D,, |, chinh la số nút lá, nó không thay đổi khi trật tự

các biểu thay đối

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 36

Khi các biến được có định, độ sâu của cây tìm kiếm luôn luôn bằng số biến trong bài toán Trong cả hai vi dụ Hình 2.2 và 2.3, độ sâu đền là 3

Khi trật tự của biến không cố định độ sâu chỉnh xác là 2ø, với ở là số

biến

(3) Các cây con tương tự nhau

Nếu chúng ta cổ đính biến, khi đó các cây con cùng mức sẽ tương tự

nhau Điều này rất có ý nghĩa trong khi tìm kiểm một cây con khi

chủng ta đã tìm kiếm được anh em của nó (sẽ nói thêm trong phần loại

bỏ đối xứng )

2.2.4 Kết hợp tìm kiếm và rút gọn bài toán

Hiệu quả của quay lui sẽ được cải thiên nêu một biến có thể bị cắt đi khi nó

không có mặt trong nghiệm Điều đỏ được giúp đỡ bởi quá trình rút gọn bai

toán Như phần trước chúng ta đã biết, việc rút gọn bài toán chính lả quá trình

làm giảm cỡ miền của biển và làm chặt rằng buộc Việc giảm cỡ miễn có hiệu

qua tương tự như việc cắt bỏ một nhánh trong cây tim kiếm Việc làm chặt

rang buộc có tiềm năng giúp chúng ta giảm không gian tìm kiểm ở một trạng

thái sau Rút gọn bài toán có thể được thực hiện tại bất kỳ một trạng thái nào của tìm kiếm Có rất nhiều chiến lược khác nhau nhằm kết hợp việc tìm kiếm

và rút gọn bài toán (Chúng ta sẽ nói ở những phân tiếp theo),

2.2.5 Những điểm chọn trong tìm kiếm

(1) Biển nào sẽ được chọn tiếp theo?

(2) Giá trị nào sẽ được chọn tiếp theo?

(3) Rang buộc nào sẽ được kiểm tra tiếp theo?

Trận văn thạc sĩ Tập trình rằng buộc và bài toán người chơi gôn

Trang 37

sỡ được khám phả dưới trật tự Khác nhau của biến và giỏ trị Vì ràng buộc có

thể được lan truyền, trật tự khác nhan của biến và giá trị được xem xét có thể

ảnh hưởng đến hiện quả trong thuật toán tim kiếm Điền này đặc biệt có ý nghĩa khi tìm kiếm được kết hợp với vấn đề rút gợn bài toán

Với tài toán chỉ cầu tìm một nghiệm, hiệu quả tú kiếm có thể được cải thiện bằng cách dùng heurieica- nó sẽ chỉ ra những nhánh trong không tìm kiểm có

khả năng nhất để tim tới nghiệm

Trong một số bài toán, việc kiểm tra một ràng buộc có thỏa mãn hay không chủ phú là khả lớn Trong trường hợp đó, trật tự ruụy buộc để kiểm tra có thể ảnh hưởng tới hiệu quá bài toản

2.1.3 Tìm kiếm Backtrack-free

Trong chương 1, chúng tu đã định: ngÌữa khái miệm cơ bản cửa răng buộc và

sự thỏa mãn 'Trong phần nảy, chúng ta sẽ mở rộng chúng

Dinh nghia 2.6

Một thể hiện rang buộc trong một tập biếu S, chúng la ký hiệu là CHGS), là một tập hợp các rằng buộc trang 5 và tập các biển con của nó Dinh nghia 2.7

Một thể hiện rùng buộc trong một lập con cúc Liến S của CSP 2 chúng ta ký liệu là CEG, Z9, là môi tập hợp tất cả cúc ràng buộc liên

quan trong z2 tại 8 và tập con cửa các biển

Y op[2,3,) V§Ef (CHE (8 D, Đị= {Ú FEfAC¡e G)N

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 38

Như vậy không khó khán khi ching ta chuyén tit (Z, D, C) thanh (Z, D,

Một tìm kiếm trong CSP là một backtrack-tiee khi tìm kiếm theo chiều

xếp nếu mỗi biểu được gán nhằu, khi

xâu khủ wat tự các biểu được

đó một biển luôn có thể tìm thấy giá tị phú hợp với tất cả các nhãn

Trong phẫn này, ching ta sẽ đưa ra tổng quan về giải pháp tổng hợp nghiệm

trong khi giải CSPs Việc tổng hợp nghiêm giống như thuật toản tim kiếm,

chúng khám phá đồng thời muội lúc nhiều nhánh Nó cíng được xem như việc rút gọn bái toán khi mà ràng buộc đổi với tập tất cả các biến (có nghĩa là ø-

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Trang 39

chứa toàn bộ các bộ nghiệm và chỉ bộ nghiệm thôi

Trong quá trình tìm kiếm một nghiệm thành phân được xem xét tại một thời

điểm Một nhãn kết hợp được mở rộng bằng cách thêm một nhãn tại thời điểm

đó cho đến khi một bô nghiệm được tìm thây hoặc toàn bộ nhãn kết hợp được

xét Ý tưởng cơ bản cúa tổng hợp nghiệm lả tập hợp tập tất cä các nhãn hợp lệ

cho các tập biển lớn hơn, cho đến khi tập toàn bộ các biển được làm Để đảm

bảo tính đúng đản, thuật toán tổng hợp nghiệm phải đảm bảo chắc chấn rằng

toàn bộ nhấn kết hợp không hợp lý sẽ được loại bỏ khỏi tập này Để đảm bảo

tính đây đủ, thuật toán tổng hợp nghiệm phải đảm bảo chắc chắn rằng không

nhãn kết hợp hợp lê nào bị loại bỏ khói tập nảy Chúng ta xem Hình 2.4 và

Trang 40

Set of att (XL Sind which sans

order the variables in Z as x4 Xạ, Xu:

padial sahuinn[f] x [1];

FQR ï = 1 imr DO

DEGIN panlisl apdianRje {ct+-o, về | mì partial aolutianlï 1]

Avie Dy, 9614 i vp satisfies athe constants on

variables_ 0] + xị FND

returipa tial_solution’n)):

ND # af Nese grates

Tình 3.4 Giải pháp tổng hợp nghiệm

+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn

Ngày đăng: 09/06/2025, 11:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Thanh Thay, (1996), Trí mệ nhân tao: Các phương pháp giải “mỗi tân để, NXBGI). Việt Nam.Tiếng Anh Sách, tạp chí
Tiêu đề: Trí mệ nhân tao: Các phương pháp giải “mỗi tân để
Tác giả: Nguyễn Thanh Thay
Nhà XB: NXBGI
Năm: 1996
9. Colboum C. J, and Dinitz J. 11.(1996), “The CRC Hamdbook of Combinatoriul Design”, CRC Press, Bova Raton, FL Sách, tạp chí
Tiêu đề: The CRC Hamdbook of Combinatoriul Design
Tác giả: Colboum C. J, Dinitz J. 11
Nhà XB: CRC Press
Năm: 1996
17.Prisch A., Tinich B., Kiziltan 7., Miguel 1, Walsh T. (2002), “cilobal coustraints for lexicographic orderings”, Proceeding of Principles andPractice of Constraint Progranming - CP 2002, Springer Verlag, NCS2470, pp. 93-108.+uận văn thạc vĩ Lập trình ràng buộc và bài loán người chơi gôn Sách, tạp chí
Tiêu đề: Proceeding of Principles andPractice of Constraint Progranming - CP 2002
Tác giả: Prisch A., Tinich B., Kiziltan 7., Miguel 1, Walsh T
Nhà XB: Springer Verlag
Năm: 2002
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 Khác
13.Doim 1, and Van Hentenryck P. (2005), “Scheduling Social Golfers Locally”, Praceedings of the Second International Conference on the Integration of Al and OR Techniques in Constraint Programming for Combinatorial Optimization Problems (CP-AI-OR'05), Springer Verlag, LNCS 3524, pp. 155-167 Khác
14.Pahle S., Torsten, Stefan, and Sellmann M. “Symmetry breaking”, Proceeding of Principles anal Practice of Constraiut Programming - CP Khác

HÌNH ẢNH LIÊN QUAN

Hình  ]  2:  Bài  toán  5  quân  hậ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
nh ] 2: Bài toán 5 quân hậu (Trang 48)
Hình  4.1:  Phương  pháp  SBDS  trong  khi  tìm  kiểm  nghiện! - Luận văn lập trình ràng buộc với bài toán người chơi gôn
nh 4.1: Phương pháp SBDS trong khi tìm kiểm nghiện! (Trang 64)
Hình  42:  Ứng  với  môi  nghiệm  của  bài  toán  S-quân  lậu  sẽ  có - Luận văn lập trình ràng buộc với bài toán người chơi gôn
nh 42: Ứng với môi nghiệm của bài toán S-quân lậu sẽ có (Trang 65)
Hỡnh  này  đó  được  núi  đến  ở phần  3.1).  Miền  của  biển  2y  @ứ,;)  ={0.....  g-7}  fe - Luận văn lập trình ràng buộc với bài toán người chơi gôn
nh này đó được núi đến ở phần 3.1). Miền của biển 2y @ứ,;) ={0..... g-7} fe (Trang 84)
Bảng  6.2:  Một  nghiệm  cho  bài  toán  SGP  trường  hợp  3-3-3  dưới  “điểm  nhìn&#34;  Vy - Luận văn lập trình ràng buộc với bài toán người chơi gôn
ng 6.2: Một nghiệm cho bài toán SGP trường hợp 3-3-3 dưới “điểm nhìn&#34; Vy (Trang 87)
Bảng  6.3:  Kết  quả  khi  đùng phường pháp  nhiều  “điểm  nhìn&#34;  cho  nghiệm  đầ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
ng 6.3: Kết quả khi đùng phường pháp nhiều “điểm nhìn&#34; cho nghiệm đầu (Trang 88)
Bảng  6.5:  Két qua SBDD  cho  SGP  với  kỹ  thuật  NDỊ” - Luận văn lập trình ràng buộc với bài toán người chơi gôn
ng 6.5: Két qua SBDD cho SGP với kỹ thuật NDỊ” (Trang 93)
Bảng  6.6:  Kốt  quả  của  ,SGLS  với  kỹ  thuật  NDE - Luận văn lập trình ràng buộc với bài toán người chơi gôn
ng 6.6: Kốt quả của ,SGLS với kỹ thuật NDE (Trang 94)
Bảng  6.7:  So  sảnh  kết  quả  trong  việc  tìm  ra  nghiện  đẩu  tiên  giifa  phương - Luận văn lập trình ràng buộc với bài toán người chơi gôn
ng 6.7: So sảnh kết quả trong việc tìm ra nghiện đẩu tiên giifa phương (Trang 95)
Hình  vuông  latin  trực  giao. - Luận văn lập trình ràng buộc với bài toán người chơi gôn
nh vuông latin trực giao (Trang 98)
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 - Luận văn lập trình ràng buộc với bài toán người chơi gôn
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 (Trang 102)
Bảng  7.4:  Mộ  ví  dụ  về  hình  vuông  Latin  cdp  4        Tuận  văn  thạc  sĩ  Tập  trình  rằng  buộc  và  bài  toán  người  chơi  gon - Luận văn lập trình ràng buộc với bài toán người chơi gôn
ng 7.4: Mộ ví dụ về hình vuông Latin cdp 4 Tuận văn thạc sĩ Tập trình rằng buộc và bài toán người chơi gon (Trang 102)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w