Kiến thức về bài toán ràng buộc cung cấp nên tảng cơ bản cho nhiều thuật toán giải quyết vấn đề trong lĩnh vực nay, va Backtracking là một trong những phương pháp quan trọng và hiệu quả
Trang 1Ma hoc phan: ARIN330585 23 _2_02
DE TAI: DEFINITION OF A CONSTRAINT SATISFACTION
PROBLEM & BACKTRACKING
Giang viên hướng dan: ThS Lé Minh Tân
Danh sách sinh viên thực hiện:
Trang 2LOI CAM ON Kính gửi Thầy Lê Minh Tân,
Trước tiên, chúng em xin gửi lời chào trân trọng và lời chúc sức khỏe đến Thây
Chúng em viết lời cảm ơn này đề bày tỏ lòng biết ơn sâu sắc đến Thầy vì đã tận tâm
giảng dạy môn Trí tuệ nhân tạo trong thời øg1an qua
Lớp học của Thầy đã mang đến cho chúng em một trải nghiệm học tập vô cùng bồ ích và
ấn tượng Thầy đã truyền tải kiến thức một cách khoa học, logic, dễ hiểu và đầy hứng khởi Kiến thức mà Thây giảng dạy không chỉ giúp chúng em hiểu rõ về các nguyên lý cơ bản của Trí tuệ nhân tạo mà còn khơi gợi niềm đam mê và hứng thú của chúng em với
lĩnh vực này
Chúng em đặc biệt ấn tượng với phương pháp giảng dạy của Thầy Thầy luôn tạo điều kiện cho sinh viên tham gia vào các hoạt động thảo luận, làm bài tập nhóm và thuyết trỉnh Nhờ vậy, chúng em có cơ hội rèn luyện kỹ năng tư duy phản biện, làm việc nhóm
và giao tiếp
Bên cạnh đó, Thầy còn là một người thầy rất tâm huyết và nhiệt tình Thầy luôn sẵn sàng
giải đáp mọi thắc mắc của sinh viên, du là những câu hỏi nhỏ nhất Thầy cũng dành nhiều
thời gian dé hướng dẫn sinh viên thực hiện các dự án cá nhân
Lời cảm ơn này của chúng em không thể nào diễn tả hết lòng biết ơn của em đối với
Thầy Chúng em xin kính chúc Thầy luôn dồi dào sức khỏe, hạnh phúc và thành công
trong sự nghiệp giảng dạy
Chung em xin chan thành cảm ơn!
Trang 3MUC LUC
PHAN 1 MO DAU ccscescccsesessccecsscescesesscescesesecescuscseceseuaesecesens 1
1 Ly do chon đề tải 0 ng ng HT He re 1
2 Mục tiêu nghiên cứu - - c1 1112211112111 12 1111111011111 10111181111 scg 1
3 Phương pháp nghiên cứu - c2 2 1211112111222 21111 1115111 key 2
PHAN 2 CONSTRAINT SATISEATION PROBLEM — BÀI TOÁN THỎA MÃN RÀNG BUỘC -. cSS SH kg kreeserseeseesessessree— Ổ
1 Các khái niệm 22-222 2 112111227112171121127110111221212E1Erde 3
2 Các tính chất của bài toán CSP 5222 212211221221122121211212 2 xe 5
2.1 Bài toán ràng buộc nhị phân (bimary CSŠP) cà Sen 5
2.2 Một sô kiểu biến 5-55 5 21 221221271221121122112112121 2 re 5 2.3 Một số kiểu miền giả tTỊ 5c St 1 E1 1221 111111 1 2.1101 1e 5 2.4 Các kiêu ràng buỘc c1 1 H211 12111 1 tre, 5 PHAN 3 CÁC THUẬT TOÁN GIẢI QUYẾT BÀI TOÁN THỎA MÃN RANG
09 92 e -.- 7
1 Phương pháp Generate and Test (tìm kiếm bằng kiếm thử) 7
2 Thuật toán tìm kiếm quay lui (Backtracking) -s- nen 8
PHAN 4 DEMO GIAI QUYET BAI TOAN TO MAU BAN DO TRONG CSP
BẢNG THUẬT TOÁN BACKTRACKING -c< s55 << <2
— 10
1 Mã giả thuật toán Backtracking trong CSP L S1 222 e 10
2 DEMO - Giải quyết bài toán tô màu bản đồ bằng Backtracking 10
PHẦN 5: KẾT LUẬN - 5 c2 221.11 9 net 15
Trang 4TAI LIEU THAM KHAO
Trang 5PHAN 1 MO DAU
1 Lý do chọn đề tài
Việc chon dé tai "Definition of a Constraint Satisfaction Problem & Backtrackmg” cho
báo cáo được thực hiện dựa trên một số lý do quan trọng Trước hết, ràng buộc
(Constraints) dong mét vai tro quan trong trong nhiéu van dé thực tế, từ lập kế hoạch sản xuất đến lập lich thiết kế, và việc hiệu rõ về chúng là điều cực kỳ quan trọng trong lĩnh vực Trí Tuệ Nhân Tạo và các lĩnh vực khác Kiến thức về bài toán ràng buộc cung cấp nên tảng cơ bản cho nhiều thuật toán giải quyết vấn đề trong lĩnh vực nay, va Backtracking là một trong những phương pháp quan trọng và hiệu quả nhất dé giải quyết chúng Việc hiểu về cơ chế và cách hoạt động của Backtracking không chỉ là kiến thức lý thuyết mà còn có thê được áp dụng một cách thực tế vào nhiều vấn dé trong cuộc sông hàng ngày Cuối cùng, việc năm vững kiến thức về bài toán ràng buộc và Backtracking
mở ra cánh cửa cho việc nghiên cứu và phát triển các phương pháp giải quyết mới, đóng
gớp vào sự tiễn bộ của lĩnh vực Trí Tuệ Nhân Tạo và các lĩnh vực liên quan Do đó, việc
chọn đề tài này không chỉ là hợp lý mà còn mang lại giá trị và tiềm năng phát triển trong quá trình học và nghiên cứu Vì lý do đó chúng em đã quyết định chọn đề tai nay
2 Mục Tiêu Nghiên Cứu
Mục tiêu của nghiên cứu này là hiểu rõ và áp dụng các khái niệm cơ bản về Bài toán Ràng Buộc (Constraint Satisfaction Problem - CSP) và phương pháp giải quyết Backtracking Cu thé, tập trung vào:
- Hiểu rõ Bài toán Ràng Buộc và các yếu tô cơ bán như biều diễn ràng buộc, biến số và
miền giá trị
- Tìm hiểu về phương pháp Backtracking, bao gồm cơ chế hoạt động và thuật toán cụ
thể
- Áp dụng phương pháp Backtracking vào giải quyết các Bài toán Ràng Buộc cụ thê và
phân tích hiệu suất của thuật toán.
Trang 63 Phuong Phap Nghién Ciru
- Nghiên Cứu Lý Thuyết: Tiến hành nghiên cứu sâu vào các khái niệm cơ bản về Bài
toán Ràng Buộc và phương pháp Backtracking thông qua việc tìm hiểu tài liệu học thuật, sách vở và bài báo liên quan
- Thực Hiện Mô Phỏng và Thử Nghiệm: Xây dựng chương trình mô phỏng đề thực hiện
thuật toán Backtrackmg và áp dụng vào các ví dụ cụ thê của Bài toán Ràng Buộc Sau đó,
tiền hành thử nghiệm để đánh giá hiệu suất và độ chính xác của thuật toán
- Phân Tích và Đánh Giá: Kết quả thử nghiệm được phân tích để đánh giá hiệu suất và
tính khả thi của phương pháp Backtracking trong việc giải quyết các bài toán ràng buộc
Trang 7PHAN 2 CONSTRAINT SATISFATION PROBLEM - BAI TOAN THOA MAN
RANG BUOC
1 Cac khai niém
- Variables (bién): cac bién là các đối tượng cần gán giá trị để đáp ứng | tap hop rang
Ví dụ: một số ràng buộc pho bién:
+ Tổng 3 góc trong | tam giac la 180°
+ Dé dai chudi X không vượt quá 20 ký tự
+ Mẫu số của l phân số là một số khác 0
- Bài toán thỏa mãn ràng buộc (Constraint Satisfaction Problem — CSP) bao gồm:
+ Một tập hữu hạn các biến: Vị, V›, , Vụ,
+ Miễn giá trị (tập hữu hạn các giá trị) của mỗi biến: DI, D2, ., Dm
+ Tập hữu hạn các ràng buộc: C¡, C¿, , C„, mỗi ràng buộc C; hạn chế các giá trỊ có thê nhận của các biến
+ Solution (lời giải): một lời giải của bài toán CSP là một phép gán đầy đủ các giá trị
của các biến sao cho thỏa mãn tất cả các ràng buộc
+ Bài toán thỏa mãn ràng buộc thường được biêu điễn dưới dạng 1 đồ thị (graph):
- Ví dụ bài toán CSP: bai toan t6 màu bản đồ.
Trang 8Bai toan: Uc la quéc gia được chia làm 7 khu vực như trong hình Cho 3 màu đỏ,
xanh, lục; hãy tô màu cho các khu vực trên sao cho thỏa mãn: mỗi khu vực là I trong
3 màu trên và 2 khu vực kề nhau không được trùng màu với nhau
- _ Tập cac bién: WA, NT, Q, NSW, V,
phải có màu khác nhau
- Vi du: (WA, NT) = {(đỏ, xanh),
NT=green, Q=red, NSW=green,
V=red, SA=blue, T=green
2 Cac tinh chat cua bai toan CPS
2.1 Bài toán rằng buộc nhi phan (binary CSP)
- Bài toán ràng buộc nhị phân (binary CSP): là bài toán CSP, trong đó mỗi ràng buộc chỉ bao gồm 2 biến
- D6 thi cac rang buéc (constraint graph):
4
Trang 9+ Cac nut biéu diễn các bién
+ Các cạnh biên diễn các ràng buộc
- Các biến rời rạc: tuôi của l người, số lượng sv trong I lớp,
- Các biến liên tục: ví dụ: thời gian diễn ra của l hiện tượng trong thực tế (vd: thời
gian web uxxx sập là biến liên tục)
2.3 Một số kiểu miền giá trị
- Miền giá trị hữu hạn: với n biến và kích thước miền gia tri là d, số lượng các
phép gán đầy đủ giá trị cần xét là Ø(#) Ví dụ: Các bài toán thỏa mãn ràng buộc nhị phân Ở bài toán tô màu bản đồ, số phép gán là 3”
- Miền giá trị vô hạn: miền giá trị các 36 nguyén, d6 dai chuỗi,
Trang 10Vi du: A, B, C là 3 góc trong I tam giác, ta có ràng buộc liên quan đến 3 biến A, B,C: A+B+C =180°
- Một số bài toán thỏa mãn ràng buộc trong thực tế:
+ Các bài toán lập thời gian biéu
+ Các bài toán lập lịch làm việc của công ty
+ Các bài toán lập lịch sản xuất của nhà máy.
Trang 11PHAN 3 CAC THUAT TOAN GIAI QUYET BAI TOAN THOA MAN RANG
BUỘC
1 Phương pháp Generate and Test (tìm kiếm bằng kiểm thử)
- Là phương pháp giải quyết vẫn đề tổng quát nhất
- Cách làm việc:
+ Tạo ra I khả năng (cadidate) của lời giải
+ Kiểm tra xem khả năng này có phải là lời giải cần tìm
- Áp dụng với bài toán CSP:
+ Bước |: Gan cac giá trị cho tất cả các biến
+ Bước 2: Kiểm tra xem tất cả các ràng buộc được thỏa mãn hay không
+ Bước 3: Lặp lại 2 bước trên cho đến khi tìm được một phép gán thỏa mãn
- Vi du:
+ Cac bién: A, B, C
+ Miền giá trị: {1,2}
+ Rang buéc: X = Y, X # Z, Y>Z
> Cac kha nang (X, Y, Z): (1,1,1); (1,1,2); (12,1); (22); (211); @ 12); (12,2): (.1,U; 2,12): (2, 2, 1)
- Ưu điểm của phương pháp Generate and Test:
+ Là phương pháp tổng quát, dễ hiểu
+ Cài đặt thuật toán đơn giản
- Hạn chế: hạn chế lớn nhất là phải xét quá nhiều các khá năng, bao gồm cả những khả năng chắc chắn không thỏa mãn các ràng buộc
Trang 12Ví dụ: trong bài toán tô màu 7 khu vực, số khả năng cần xét theo phương pháp Generate and Test là 3” khả năng
- Cải tién phuong phap Generate and Test:
+ Tạo các khả năng một cách thông minh hơn (không theo tuần tự, sử dụng thông tin thu được từ các kết quả trước)
+ Dự đoán, phát hiện sớm các mâu thuẫn (kiểm tra ràng buộc ngay trong lúc gán giá trị)
2 Thuật toán tìm kiếm quay lui (Backtracking)
- Là thuật toán dựa trên giải thuật tìm kiếm theo chiều sâu (depth-ñrst search — DFS)
- Các hoạt động:
+ Chọn | Iva chon (phép gan) ban dau
+ Thử các khả năng của lựa chọn này, nếu lựa chọn đó không dẫn đến kết quả thì quay lui, thử lại với các lựa chọn khác
- Áp dụng trong bài toán CSP:
+ Buée 1: Gan 1 giá trị cho 1 biến
+ Bước 2: Với mỗi phép gán giá trị cho | bién, kiém tra xem phép gán đó có thỏa mãn các ràng buộc hay không
+ Bước 3: Nếu không thỏa mãn ràng buộc, quay lui thực hiện gán giá trị khác Nếu thỏa mãn, tiếp tục gán giá trị cho biến khác
+ Lặp lại các bước trên đến khi tìm được lời giải hoặc khi xét tất cả các trường hợp ->
thuật toán kết thúc
- Các yếu tô ảnh hưởng đến phương pháp tìm kiếm quay lui (backtracking):
Trang 13+ Thứ tự được xét của các biến: ưu tiên xét các biến có miền giá trị nhỏ, ưu tiên các
biến có nhiều ràng buộc,
+ Với mỗi biến, thứ tự được xét ưu tiên của các giá trị (tùy bài toán cy thé)
- Ưu điểm thuật toán Backtracking:
+ Tiết kiệm thời gian tìm kiếm trong các bài toán không gian lớn
+ Giảm tiêu tốn tài nguyên
+ Có khả năng tùy chỉnh
- Hạn chế:
+ Lặp lại lỗi nhiều lần Lý do: không xét đến lý do của mâu thuẫn
Ví dụ: Các biến A,B,C,D,E có giá trị trong miễn {1,2,3, ,10}
Rang buéc: A>E
Voi A=1: Phương pháp tìm kiếm quay lui thử tất cả các khả năng gán giá trị cho các
biến B,C,D mà không thu được kết quả (lý do: A = | Ja giá trị min của miền giá trị)
Giải pháp: Phương pháp Backjumping (chuyền đến xét từ chỗ sinh ra lỗi) + Lặp lại các ràng buộc không cần thiết:
Giải pháp: phương pháp Backchecking (giữ lại các phép gán tốt và không tốt)
+ Phát hiện các v1 phạm ràng buộc muộn: các ràng buộc chỉ được phát hiện sau khi các giá trị được gán
Ví dụ: Các biến A,B,C,D,E có giá trị trong miền ƒ 1,2.3 , L0}
Ràng buộc: A =4*D
Chi đến khi gán các giá trị cho D thì mới phát hiện điều kiện của A: A>=4
Giải pháp: Phương pháp Forward Checking (kiểm tra trước các ràng buộc)
Trang 14PHAN 4: DEMO GIAI QUYET BAI TOAN TO MAU BAN DO TRONG CSP
BANG THUAT TOAN BACKTRACKING
1 Mã giả thuật toán Backtracking trong CSP
Function Backtracking-Search(csp) returns a solution or failure
retum Recursive-Backtracking({},csp)
function Recursive-Backtracking(assignment, csp) returns a solution or failure
if assignment is complete then return assignment
var — SELECT-UNASSIGNMENT-VARIABLE(Variable[esp], assignment, csp) for each value in ORDER-DOMAIN-VALUES(var, assignment, csp) do
if value is consistent with assignment according to Constraints[csp] then add { var = value } to assignment
result — Recursive-Backtracking(assignment, csp)
if result + failure the return result
remove { var = value } from assignment
return failure
Kết quả của thuật toán này sẽ trả về kết quá thỏa mãn tất cả ràng buộc hoặc là không có
lời giải nào cho bài toán Giải thuật gọi vào hàm đệ quy với tham số đầu vào là một danh
sách rỗng, rỗng ở đây là các phép gán rỗng, tức là chưa được gắn nhãn nào cả Thuật toán
sé lay ra một biến chưa được gán nhãn, sau đó lấy giá trị trong miền giá trị của biến đó và nếu như giá trị đó thỏa mãn các ràng buộc với những phép gán trước đó thì nó sẽ được giá trị đó vào biến, sau đó thực hiện đệ quy đề xử lý các biến còn lại Trong trường hợp
bể tắc thì sẽ quay lui lại bằng dòng ƒ remove { var = value } from assignment }
2 DEMO - Giải quyết bài toán tô màu bản đồ bằng Backtracking
10
Trang 15Bài toán tô mau ban đồ là một bài toán điển hình khi nhắc đến các bài toán thỏa mãn về
ràng buộc Một cách đề giải quyết bài toán này là sử dụng thuật toán quay lui
- Lép Constraint:
Lớp này thực hiện việc lấy danh sách các biến và đảm bảo rằng chúng đều thỏa mãn với tất cả ràng buộc Nhưng với lớp chung thì ràng buộc không dành riêng cho bắt kì bài toán cụ thê nào, nên phương thức satisñed sẽ được ghi đè trong các
lớp con để thỏa mãn ràng buộc cụ thể liên quan đến bài toán