You are on page 1of 62

6 vấn đề về sự hài lòng ràng buộc

Trong đó chúng ta thấy cách đối xử với các trạng thái không chỉ là hộp đen
nhỏ dẫn đến việc phát minh ra một loạt các phương pháp tìm kiếm mới mạnh
mẽ và hiểu sâu hơn về cấu trúc vấn đề và sự phức tạp.

Chương 3 và 4 đã khám phá ý tưởng rằng các vấn đề có thể được giải quyết bằng cách tìm
kiếm trong một không gian của các trạng thái. Các trạng thái này có thể được đánh giá bởi
các heuristics cụ thể về tên miền và được kiểm tra để xem liệu chúng có phải là trạng thái
mục tiêu hay không. Tuy nhiên, từ quan điểm của thuật toán tìm kiếm, mỗi trạng thái là
nguyên tử, hoặc không thể phân chia - một hộp đen không có cấu trúc bên trong.
Chương này mô tả một cách để giải quyết một loạt các vấn đề hiệu quả hơn. Chúng tôi
sử dụng một đại diện có yếu tố cho mỗi trạng thái: một tập hợp các biến, mỗi biến có một giá
trị. Một vấn đề được giải quyết khi mỗi biến có một giá trị thỏa mãn tất cả các ràng buộc trên
biến. Một vấn đề được mô tả theo cách này được gọi là vấn đề thỏa mãn ràng buộc,hoặc CSP.
VẤN ĐỀ VỀ SỰ HÀI
Các thuật toán tìm kiếm CSP tận dụng cấu trúc của các trạng thái và sử dụng mục
LÒNG RÀNG BUỘC đích chung thay vì heuristics cụ thể cho phép giải quyết các vấn đề phức tạp. Ý tưởng chính
là loại bỏ phần lớn không gian tìm kiếm cùng một lúc bằng cách xác định các kết hợp
biến / giá trị vi phạm các ràng buộc.

6.1 DEFINING CONSTRAINT SATISFACTION PROBLEMS

Một vấn đề thỏa mãn ràng buộc bao gồm ba thành phần, X, D và C:
là một tập hợp các biến, {X1, . , Xn}.
là một tập hợp các tên miền, {D1, . . , Dn}, một cho mỗibiến.
là một tập hợp các ràng buộc chỉ định sự kết hợp cho phép của các giá trị.
Mỗi tên miền Di bao gồm một tập hợp các giá trị cho phép, {v1, . . ,vk } cho biến Xi. Mỗi ràng
buộc Ci bao gồm một phạm vi cặp, rel , trong đó phạm vi là một tuple của các biến tham gia
vào ràng buộc và rel là một mối quan hệ xác định các giá trị mà các biến đó có thể đảm nhận.
Một mối quan hệ có thể được thể hiện như một danh sách rõ ràng của tất cả các tuples của
các giá trị đáp ứng các ràng buộc, hoặc như một mối quan hệ trừu tượng hỗ trợ hai hoạt
động: kiểm tra xem một tuple là một thành viên của mối quan hệ và liệt kê các thành viên của
mối quan hệ. Ví dụ, nếu X1 và X2 đều có
202
Phần 6.1. Xác định các vấn đề về sự hài lòng ràng buộc 203

tên miền {A,B},sau đó ràng buộc nói rằng hai biến phải có các giá trị khác nhau có thể
được viết là (X1, X2),[(A, B), (B, A)] hoặc như (X1, X2),X1 = X2 .
Để giải quyết một CSP, chúng ta cần xác định một không gian nhà nước và khái niệm
GÁN về một giải pháp. Mỗi trạng thái trong một CSP được xác định bởi một gán các giá trị cho
PHÙ HỢP
một số hoặc tất cả các biến, {Xi = vi,Xj = vj , . . . . } . Một nhiệm vụ không vi phạm bất kỳ
HOÀN THÀNH
NHIỆM VỤ ràng buộc nào được gọi là một nhiệm vụ nhất quán hoặc hợp pháp. Một nhiệm vụ hoàn
GIẢI PHÁP chỉnh là một trong đó mọi biến được chỉ định, và một giải pháp cho một CSP là một nhiệm vụ
PHÂN CÔNG MỘT
nhất quán, hoàn chỉnh. Một nhiệm vụ một phần là một trong đó gán giá trị cho chỉ một số
PHẦN
biến.
6.1.1 Vấn đề ví dụ: Tô màu bản đồ
Giả sử rằng, vì đã quá mệt mỏi với Romania, chúng ta đang xem xét một bản đồ của Úc
cho thấy từng tiểu bang và vùng lãnh thổ của nó (Hình 6.1 (a)). Chúng tôi được giao nhiệm
vụ tô màu cho từng khu vực hoặc đỏ, xanh lá cây hoặc xanh dương theo cách mà không
có khu vực lân cận nào có cùng màu. Để xây dựng điều này như một CSP, chúng tôi xác
định các biến là các khu vực
X = {WA,NT,Q,NSW,V,SA,T} .
Tên miền của mỗi biến là tập Di = {đỏ, xanh lá cây, xanh dương}. Các ràng buộc đòi hỏi
các khu vực lân cận phải có màu sắc riêng biệt. Vì có chín nơi mà các khu vực giáp biên
giới, có chín hạn chế:
= {SA = WA,SA = NT,SA = Q,SA = NSW,SA = V, WA = NT,NT =
Q,Q = NSW,NSW = V} .
Ở đây chúng tôi đang sử dụng chữ viết tắt; SA = WA là một lối tắt cho (SA, WA), SA = WA,
trong đó SA = WA có thể được liệt kê đầy đủ lần lượt như
{(đỏ, xanh lá cây), (đỏ, xanh dương), (xanh lá cây, đỏ), (xanh lá cây, xanh dương), (xanh
dương, đỏ), (xanh dương, xanh lá cây)} .
Có nhiều giải pháp khả thi cho vấn đề này, chẳng hạn như
{WA = đỏ , NT = xanh lá cây, Q = đỏ, NSW = xanh lá cây, V = đỏ, SA = xanh dương, T =
đỏ }.
BIỂU ĐỒ RÀNG BUỘC Có thể hữu ích để hình dung CSP dưới dạng biểu đồ ràng buộc, nhưđược hiển thị trong
Hình 6.1 (b). Các nút của đồ thị tương ứng với các biến của vấn đề và một liên kết kết nối
bất kỳ hai đa dạng nào tham gia vào một ràng buộc.
Tại sao phải xây dựng một vấn đề như một CSP? Một lý do là các CSP mang lại sự
phẫn nộ tự nhiên cho một loạt các vấn đề; Nếu bạn đã có một hệ thống giải quyết CSP,
thường dễ dàng hơn để giải quyết một vấn đề bằng cách sử dụng nó hơn là thiết kế một
giải pháp tùy chỉnh bằng cách sử dụng một kỹ thuật tìm kiếm khác. Ngoài ra, bộ giải CSP
có thể nhanh hơn người tìm kiếm không gian nhà nước vì bộ giải CSP có thể nhanh chóng
loại bỏ những chiếc đồng hồ lớn của không gian tìm kiếm. Ví dụ: một khi chúng ta đã chọn
{SA = blue} trong vấn đề Úc, chúng ta có thể kết luận rằng không có biến nào trong số
năm biến hàng xóm có thể đảm nhận màu xanhgiá trị. Nếu không tận dụng sự tuyên
5
truyền ràng buộc, một thủ tục tìm kiếm sẽ phải xem xét 3 = 243 bài tập cho năm biến
lân cận; với sự lan truyền hạn chế, chúng tôi không bao giờ phải coi màu xanh là một giá
5
trị, vì vậy chúng tôi chỉ có 2 = 32 bài tập để xem xét, giảm 87%.
Trong tìm kiếm không gian trạng thái thông thường, chúng ta chỉ có thể hỏi: trạng thái
cụ thể này có phải là mục tiêu không? Không? Còn cái này thì sao? Với CSP, một khi chúng ta
phát hiện ra rằng một nhiệm vụ một phần không phải là một giải pháp, chúng ta có thể
204 Chương 6. Vấn đề về sự hài lòng ràng buộc

NT
Q
Bắc WA
Lãnh thổ
Queensland
Western SA NSW
Úc
Hướng nam
Úc mới
Hướng nam
V
Xứ Wales
Victoria

Tasmania
T

(a) (b)

Hình 6.1 (a) Các tiểu bang và vùng lãnh thổ chính của Úc. Tô màu bản đồ này có thể được
xem là một vấn đề thỏa mãn hạn chế (CSP). Mục tiêu là để gán màu sắc cho từng khu vực
để không có khu vực lân cận nào có cùng màu sắc. (b) Vấn đề tô màu bản đồ được thể
hiện dưới dạng biểu đồ ràng buộc.

ngay lập tức loại bỏ các tinh chỉnh tiếp theo của nhiệm vụ một phần. Hơn nữa, chúng ta
có thể thấy tại sao bài tập không phải là một giải pháp - chúng ta thấy biến nào vi phạm ràng
buộc - vì vậy chúng ta có thể tập trung sự chú ý vào các biến quan trọng. Kết quả là, nhiều vấn
đề khó giải quyết cho việc tìm kiếm không gian nhà nước thường xuyên có thể được giải
quyết nhanh chóng khi được xây dựng như một CSP.

6.1.2 Vấn đề ví dụ: Lập kế hoạch cửa hàng việc làm


Các nhà máy có vấn đề lên lịch công việc trong một ngày, chịu nhiều ràng buộc khác nhau.
Trong thực tế, nhiều vấn đề trong số này được giải quyết bằng kỹ thuật CSP. Hãy xem xét
vấn đề lên lịch lắp ráp một chiếc xe hơi. Toàn bộ công việc bao gồm các nhiệm vụ và
chúng ta có thể mô hình hóa từng nhiệm vụ như một biến, trong đó giá trị của mỗi biến là
thời gian mà nhiệm vụ bắt đầu, được thể hiện dưới dạng số lượng số nguyên của phút.
Các ràng buộc có thể khẳng định rằng một nhiệm vụ phải xảy ra trước một nhiệm vụ khác
- ví dụ, một bánh xe phải được cài đặt trước khi hubcap được đưa vào - và chỉ có rất
nhiều nhiệm vụ có thể tiếp tục cùng một lúc. Các ràng buộc cũng có thể chỉ định rằng một
nhiệm vụ mất một khoảng thời gian nhất định để hoàn thành.
Chúng tôi xem xét một phần nhỏ của lắp ráp xe hơi, bao gồm 15 nhiệm vụ: lắp đặt trục
(trước và sau), gắn cả bốn bánh xe (phải và trái, trước và sau), thắt chặt các loại hạt cho mỗi
bánh xe, hubcaps gắn liền và kiểm tra lắp ráp cuối cùng. Chúng ta có thể đại diện cho các
HẠN CHẾ ƯU
nhiệm vụ với 15 biến:
TIÊN

= {AxleF, TrụcB, Bánh xe RF, Bánh xe LF, Bánh xe RB, Bánh xe LB, NutsRF ,
Các loại hạtLF, NutsRB, NutsLB, CapRF, CapLF, CapRB, CapLB, Inspect } .
Giá trị
của mỗi T1 + d1 ≤ T2 .
biến là
thời
gian mà
nhiệm
vụ bắt
đầu.
Tiếp
theo,
chúng
tôi đại
diện
cho các
ràng
buộc
ưu tiên
giữa các
nhiệm
vụ riêng
lẻ. Bất
cứ khi
nào
một
nhiệm
vụ T1
phải
xảy ra
trước
nhiệm
vụ
T2,và
nhiệm
vụ T1
mất
thời
gian d1
để
hoàn
thành,
chúng
tôi
thêm
một
ràng
buộc số
học của
biểu
mẫu
Phần 6.1. Xác định các vấn đề về sự hài lòng ràng buộc 205

Trong ví dụ của chúng tôi, các trục phải được đặt trước khi các bánh xe được đặt trên, và
phải mất 10 phút để cài đặt một trục, vì vậy chúng tôi viết
TrụcF + 10 ≤ Bánh xe RF; TrụcF + 10 ≤ LF bánh xe;
TrụcB + 10 ≤ Bánh xe RB; TrụcB + 10 ≤ Bánh xe LB .
Tiếp theo chúng tôi nói rằng, đối với mỗi bánh xe, chúng tôi phải gắn bánh xe (mất 1 phút),
sau đó thắt chặt các đai ốc (2 phút) và cuối cùng gắn hubcap (1 phút, nhưng chưa được đại
diện):
Bánh xe RF + 1 ≤ ĐaiRF; Các loại hạtRF + 2 ≤ CapRF;
Bánh xe LF + 1 ≤ NutsLF; Các loại hạtLF + 2 ≤ CapLF;
Bánh xe RB + 1 ≤ ĐaiRB; NutsRB + 2 ≤ CapRB; Bánh
RÀNG BUỘC
xe LB + 1 ≤ HạtLB; Các loại hạtLB + 2 ≤ CapLB .
KHÔNG LIÊN
QUAN
Giả sử chúng ta có bốn công nhân để cài đặt bánh xe, nhưng họ phải chia sẻ một công cụ
giúp đặt trục tại chỗ. Chúng ta cần một ràng buộc khác biệt để nói rằng AxleF và AxleB
không được chồng chéo kịp thời; hoặc cái này đến trước hoặc cái kia làm:
(TrụcF + 10 ≤ TrụcB) hoặc (TrụcB + 10 ≤ TrụcF) .
Điều này trông giống như một ràng buộc phức tạp hơn, kết hợp số học và logic. Nhưng nó
vẫn giảm xuống một tập hợp các cặp giá trị mà Axle F và AxleF có thể đảm nhận.
Chúng ta cũng cần khẳng định rằng việc kiểm tra đến cuối cùng và mất 3 phút. Đối
với mỗi biến ngoại trừ Kiểm tra, chúng tôi thêm một ràng buộc của biểu mẫu X + dX ≤
Kiểm tra . Cuối cùng, giả sử có một yêu cầu để hoàn thành toàn bộ hội đồng trong 30
phút. Chúng ta có thể đạt được điều đó bằng cách giới hạn tên miền của tất cả các biến:
Di = {1, 2, 3, . . , 27} .
Vấn đề đặc biệt này là tầm thường để giải quyết, nhưng CSP đã được áp dụng cho các vấn
đề lập kế hoạch cửa hàng việc làm như thế này với hàng ngàn biến số. Trong một số
trường hợp, có những ràng buộc phức tạp khó xác định trong chủ nghĩa hình thức CSP và
các kỹ thuật lập kế hoạch tiên tiến hơn được sử dụng, như đã thảo luận trong Chương 11.
RÀNG BUỘC PHI TUYẾN

TÊN MIỀN RỜI RẠC

TÊN MIỀN HỮU


HẠN

VÔ HẠN

NGÔN NGỮ
RÀNG BUỘC

RÀNG BUỘC
TUYẾN TÍNH
Một miền rời rạc có thể là vô hạn,chẳng hạn như tập hợp số nguyên hoặc chuỗi. (Nếu
6.1.3 chúng tôi không đặt thời hạn cho vấn đề lập kế hoạch công việc, sẽ có vô số thời gian bắt đầu
cho mỗi biến.) Với các tên miền vô hạn, không còn có thể mô tả các ràng buộc bằng cách liệt
Biến thể kê tất cả các kết hợp các giá trị được phép. Thay vào đó, một ngôn ngữ ràng buộc phải được
về chủ sử dụng để hiểu các ràng buộc như T1 + d1 ≤ T2 trực tiếp, mà không liệt kê tập hợp các cặp giá trị
nghĩa
hình thức cho phép cho (T1,T2). Các thuật toán giải pháp đặc biệt (mà chúng tôi không thảo luận ở đây)
CSP tồn tại cho các ràng buộc tuyến tính trên các biến số nguyên - nghĩa là các ràng buộc, chẳng hạn
như thuật toán vừa được đưa ra, trong đó mỗi biến chỉ xuất hiện ở dạng tuyến tính. Có thể chỉ
Loại CSP ra rằng không có thuật toán nào tồn tại để giải quyết các ràng buộc phi tuyến chung trên các
đơn giản biến số nguyên.
nhất liên
quan đến
các biến
có tên
miền rời
rạc, hữu
hạn. Các
vấn đề tô
màu bản
đồ và lập
kế hoạch
với giới
hạn thời
gian đều
loại này. 8
nữ hoàng
prob-lem
được mô
tả trong
Chương 3
cũng có
thể được
xem là
CSP miền
hữu hạn,
trong đó
các biến
Q1,. . . , Q8
là vị trí
của mỗi
nữ hoàng
trong cột
1, . . . , 8
và mỗi
biến có
domain Di
= {1, 2, 3,
4, 5, 6, 7,
8}.
206 Chương 6. Vấn đề về sự hài lòng ràng buộc

TÊN MIỀN LIÊN


TỤC
Các vấn đề về sự hài lòng hạn chế với các tên miền liên tục là phổ biến trong thế giới
thực và được nghiên cứu rộng rãi trong lĩnh vực nghiên cứu hoạt động. Ví dụ, việc lên lịch cho
các thí nghiệm trên Kính viễn vọng Không gian Hubble đòi hỏi thời gian quan sát rất chính
xác; sự khởi đầu và kết thúc của mỗi quan sát và cơ động là các biến có giá trị liên tục phải
tuân theo nhiều hạn chế về thiên văn, ưu tiên và sức mạnh. Danh mục nổi tiếng nhất của
CSP miền liên tục là các vấn đề lập trình tuyến tính, trong đó các chủng con phải là sự bình đẳng
hoặc bất bình đẳng tuyến tính. Các vấn đề lập trình tuyến tính có thể được giải quyết kịp
thời đa thức về số lượng biến. Các vấn đề với các loại ràng buộc và chức năng khách quan
khác nhau cũng đã được nghiên cứu - lập trình bậc hai, lập trình hình nón thứ hai, v.v.
Ngoài việc kiểm tra các loại biến có thể xuất hiện trong CSP, rất hữu ích khi xem xét
RÀNG BUỘC UNARY
các loại ràng buộc. Loại đơn giản nhất là ràng buộc unary, hạn chế giá trị của một biến
duy nhất. Ví dụ, trong vấn đề tô màu bản đồ, có thể là trường hợp người Nam Úc sẽ
không chịu được màu xanh lá cây; chúng ta có thể thể hiện điều đó với ràng buộc unary
(SA), SA = xanh
RÀNG BUỘC NHỊ PHÂN Một ràng buộc nhị phân liên quan đến hai biến. Ví dụ, SA = NSW là một ràng buộc nhị
phân. CSP nhị phân là một CSP chỉ có các ràng buộc nhị phân; nó có thể được thể hiện
dưới dạng biểu đồ ràng buộc, như trong Hình 6.1(b).
Chúng ta cũng có thể mô tả các ràng buộc thứ tự cao hơn, chẳng hạn như khẳng
định rằng giá trị của Y là giữa X và Z,với ràng buộc quan hệ giữa (X, Y, Z).
RÀNG BUỘC
TOÀN CẦU
Một ràng buộc liên quan đến một số lượng tùy ý của các biến được gọi là một ràng
buộc toàn cầu. (Tên là truyền thống nhưng khó hiểu vì nó không cần phải liên quan tất cả
các biến trong một prob-lem). Một trong những ràng buộc toàn cầu phổ biến nhất là
Alldiff, nói rằng tất cả các biến liên quan đến ràng buộc phải có các giá trị khác nhau.
Trong các vấn đề Sudoku (xem Phần 6.2.6), tất cả các biến liên tiếp hoặc cột phải đáp ứng
CRYPTARITHMETIC
ràng buộc Alldiff. Một ví dụ khác được cung cấp bởi các câu đố hóa thân. (Xem Hình
6.2(a).) Mỗi chữ cái trong một câu đố hóa thân tạo ra một chữ số khác nhau. Đối với
trường hợp trong Hình 6.2 (a), điều này sẽ được thể hiện như là hạn chế toàn cầu Alldiff
(F, T, U, W, R, O). Các ràng buộc bổ sung trên bốn cột của câu đố có thể được viết như các
ràng buộc n-ary sau đây:

O+O=R+10· C10
C10+W +W =U +10· C100
C100+T +T =O+10· C1000
C = ,
1000 F
RÀNG BUỘC
HYPERGRAPH trong đó C10, C100và C1000 là các biến phụ trợ đại diện cho chữ số được chuyển vào cột hàng
chục, hàng trăm hoặc hàng ngàn. Những ràng buộc này có thể được thể hiện trong một
hypergraph ràng buộc, chẳng hạn như một trong hình6.2 (b). Một hypergraph bao gồm các nút
thông thường (các vòng tròn trong hình) và hypernodes (các hình vuông), đại diện cho các
ràng buộc n-ary.
ĐỒ THỊ KÉP
Ngoài ra, như Bài tập 6.6 yêu cầu bạn chứng minh, mọi ràng buộc miền hữu hạn có thể
được giảm xuống thành một tập hợp các ràng buộc nhị phân nếu có đủ các biến phụ trợ được
giới thiệu, vì vậy chúng ta có thể chuyển đổi bất kỳ CSP nào thành một chỉ có các ràng buộc
nhị phân;
Điều này
làm cho các
thuật toán
đơn giản
hơn. Một
cách khác
để chuyển
đổi CSP n-
ary sang csp
nhị phân là
chuyển đổi
đồ thị kép:
tạo một
biểu đồ mới
trong đó sẽ
có một biến
cho mỗi
ràng buộc
trong biểu
đồ gốc và
Phần 6.1. Xác định các vấn đề về sự hài lòng ràng buộc 207

TWO F T U W R O
T W O
BỐN
C3 C2 C1

(a) (b)

Hình 6.2 (a) Một vấn đề hóa giải mã. Mỗi chữ cái là một chữ số riêng biệt; mục đích là để
tìm một sự thay thế của các chữ số cho các chữ cái sao cho tổng kết quả là chính xác về
mặt số học, với hạn chế bổ sung là không có số 0 hàng đầu nào được phép. (b)
Hypergraph ràng buộc cho vấn đề hóa mã hóa, hiển thị ràng buộc Alldiff (hộp vuông ở
trên cùng) cũng như các ràng buộc bổ sung cột (bốn hộp vuông ở giữa). Các biến C 1,
C2và C3 đại diện cho các chữ số mang cho ba cột.

một ràng buộc nhị phân cho mỗi cặp ràng buộc trong biểu đồ ban đầu chia sẻ các biến. Ví dụ:
nếu đồ thị gốc có các biến {X, Y, Z} và các ràng buộc (X, Y, Z), C1 và
(X, Y), C2 sau đó đồ thị kép sẽ có các biến {C1,C2} với ràng buộc nhị phân
(X, Y), R1, trong đó (X, Y) là các biến được chia sẻ và R1 là một mối quan hệ mới xác định
hạn chế giữa các biến được chia sẻ, theo quy định của C 1 và C 2banđầu.
Tuy nhiên, có hai lý do tại sao chúng ta có thể thích một ràng buộc toàn cầu như
Alldiff hơn là một tập hợp các ràng buộc nhị phân. Đầu tiên, nó dễ dàng hơn và ít lỗi hơn
để viết mô tả vấn đề bằng cách sử dụng Alldiff . Thứ hai, có thể thiết kế các thuật toán
suy luận mục đích đặc biệt cho các ràng buộc toàn cầu không có sẵn cho một tập hợp các
ràng buộc nguyên thủy hơn. Chúng tôi mô tả các thuật toán suy luận này trong Phần
RÀNG BUỘC VỀ 6.2.5.
SỞ THÍCH
Những hạn chế mà chúng tôi đã mô tả cho đến nay đều là những ràng buộc tuyệt đối, vi
phạm loại trừ một giải pháp tiềm năng. Nhiều CSP trong thế giới thực bao gồm các ràng buộc
về sở thích cho biết giải pháp nào được ưa thích. Ví dụ, trong một khóa học đại học prob-lem
có những ràng buộc tuyệt đối mà không có giáo sư nào có thể dạy hai lớp cùng một lúc.
Nhưng chúng ta cũng có thể cho phép những hạn chế về sở thích: Giáo sư R có thể thích giảng
dạy vào buổi sáng, trong khi Giáo sư N thích giảng dạy vào buổi chiều. Một lịch trình có Giáo
sư R giảng dạy lúc 2 giờ chiều.m. vẫn sẽ là một giải pháp cho phép (trừ khi Giáo sư R tình cờ là
chủ tịch khoa) nhưng sẽ không phải là một giải pháp tối ưu. Các ràng buộc ưu tiên thường có
thể được mã hóa dưới dạng chi phí cho các bài tập biến trong phân chia - ví dụ, chỉ định một
VẤN ĐỀ TỐI ƯU
HÓA RÀNG BUỘC khe buổi chiều cho Giáo sư R có giá 2 điểm so với chức năng khách quan tổng thể, trong khi
một khe buổi sáng có giá 1. Với công thức này, các CSP có tùy chọn có thể được giải quyết
bằng
các
phương
pháp
tìm
kiếm tối
ưu hóa,
dựa
trên
đường
dẫn
hoặc
địa
phương
. Chúng
tôi gọi
một vấn
đề như
vậy là
một vấn
đề tối
ưu hóa
hạn
chế,hoặ
c COP.
Các vấn
đề lập
trình
tuyến
tính
thực
hiện
loại tối
ưu hóa
này.
208 Chương 6. Vấn đề về sự hài lòng ràng buộc

2 CONSTRAINT PROPAGATION:TÔINFERENCE IN CSPS

Trong tìm kiếm không gian trạng thái thông thường, một thuật toán chỉ có thể làm một
điều: tìm kiếm. Trong CSP có một
SUY LUẬN lựa chọn: một thuật toán có thể tìm kiếm (chọn một bài tập biến mới từ một số khả năng)
TUYÊN TRUYỀN

RÀNG BUỘC hoặc thực hiện một loại suy luận cụ thể được gọi là lan truyền ràng buộc:sử dụng các ràng
buộc để giảm số lượng giá trị pháp lý cho một biến, do đó có thể làm giảm các giá trị pháp lý
cho một biến khác, v.v. Lan truyền ràng buộc có thể được đan xen với tìm kiếm, hoặc nó
có thể được thực hiện như một bước xử lý trước, trước khi tìm kiếm bắt đầu. Đôi khi quá
ĐỊA PHƯƠNG
TÍNH NHẤT QUÁN trình xử lý trước này có thể giải quyết toàn bộ vấn đề, vì vậy không cần tìm kiếm gì cả.
Ý tưởng chính là tính nhất quán của địa phương. Nếu chúng ta coi mỗi biến như
một nút trong biểu đồ (xem Hình 6.1 (b)) và mỗi ràng buộc nhị phân như một vòng cung,
thì quá trình thực thi sự tồn tại cục bộ trong mỗi phần của biểu đồ khiến các giá trị không
nhất quán bị loại bỏ trên toàn đồ thị. Có nhiều loại nhất quán địa phương khác nhau, mà
bây giờ chúng tôi lần lượt đề cập đến.

6.2.1 Tính nhất quán của nút


NODE CONSISTENCY Một biến duy nhất (tương ứng với một nút trong mạng CSP) là nhất quán nút nếu tất cả các giá
trị trong tên miền của biến đáp ứng các ràng buộc không có nhật ký của biến. Ví dụ, trong biến
thể của vấn đề tô màu bản đồ Úc (Hình 6.1) nơi người Nam Úc không thích màu xanh lá cây, sa
biến bắt đầu bằng tên miền {đỏ, xanh lá cây, xanh dương}và chúng ta có thể làm cho nó nút
nhất quán bằng cách loại bỏ màu xanh lá cây,để lại SA với miền giảm {đỏ, xanh dương}. Chúng
tôi nói rằng một mạng là nhất quán nút nếu mọi biến trong mạng đều nhất quán nút.
Luôn luôn có thể loại bỏ tất cả các ràng buộc không công chứng trong CSP bằng cách
chạy tính nhất quán của nút. Cũng có thể chuyển đổi tất cả các ràng buộc n-ary thành các
ràng buộc nhị phân (xem Ex-ercise 6.6). Bởi vì điều này, người ta thường xác định các bộ
giải quyết CSP chỉ hoạt động với các ràng buộc nhị phân; Chúng tôi đưa ra giả định đó cho
phần còn lại của chương này, ngoại trừ khi được ghi nhận.

6.2.2 Tính nhất quán của vòng cung


Một biến trong CSP là nhất quán nếu mọi giá trị trong tên miền của nó thỏa mãn các ràng buộc
nhị phân của biến. Chính thức hơn, Xi phù hợp với một biến Xj khác nếu đối với mọi giá trị
trong miền D hiện tại, có một số giá trị trong tên miền Dj thỏa mãn ràng buộc nhị phân trên
vòng cung (Xi,Xj). Một mạng phù hợp với vòng cung nếu mọi biến đều phù hợp với mọi
2
biến khác. Ví dụ, hãy xem xét ràng buộc Y = X trong đó tên miền của cả X và Y là tập hợp
các chữ số. Chúng ta có thể viết ràng buộc này một cách rõ ràng như
(X, Y), {(0, 0), (1, 1), (2, 4), (3, 9))} .
Để làm cho X arc-phù hợp với Y, chúng tôi giảm tên miền của Xxuống {0, 1, 2, 3}. Nếu
chúng ta cũng làm cho Y arc-consistent liên quan đến X,thì tên miền của Y trở thành {0, 1,
4, 9} và toàn bộ CSP là nhất quán vòng cung.
Mặt khác, tính nhất quán của hồ quang không thể làm gì cho bản đồ úc màu prob-
lem. Hãy xem xét các ràng buộc bất bình đẳng sau đây đối với (SA, WA):
{(đỏ, xanh lá cây), (đỏ, xanh dương), (xanh lá cây, đỏ), (xanh lá cây, xanh dương), (xanh
dương, đỏ), (xanh dương, xanh lá cây)} .
Phần 6.2. Truyền bá ràng buộc: Suy luận trong CSP 209

hàm AC-3 (csp) trả về sai nếu tìm thấy sự không nhất quán và đúng nếu không
đầu vào: csp,CSP nhị phân với các thành phần (X, D, C)
biến cụcbộ: xếp hàng,hàng đợi vòng cung, ban đầu tất cả các vòng cung trong csp
trong khi hàng đợi không trống rỗng do
(Xi,Xj) ← REMOVE-FIRST(xếphàng)
nếu REVISE(csp, Xi,Xj ) thì
nếu kích thước của Di = 0 thì trả về sai
Cho mỗi Xk trong Xi. NEIGHBORS - {Xj } do
thêm (Xk, Xi) vào hàng đợi
trở về sự thật

chức năng REVISE (csp, Xi,Xj) trả về iff thực sự chúng tôi sửa đổi tên miền
của Xi sửa đổi ← sai
Đối với mỗi x trong Dtôi làm
nếu không có giá trị y trong Dj cho phép (x ,y)để đáp ứng các ràng buộc giữa
Xi và Xj sau đó xóa x từ Di
sửa đổi ← đúng
trả về đã sửa đổi

Hình 6.3 Thuật toán nhất quán vòng cung AC-3. Sau khi áp dụng AC-3, hoặc mọi vòng cung
đều nhất quán với vòng cung hoặc một số biến có miền trống, cho thấy CSP không thể
được giải quyết. Cái tên "AC-3" được sử dụng bởi nhà phát minh của thuật toán
(Mackworth, 1977) bởi vì nó là phiên bản thứ ba được phát triển trong bài báo.

Bất kể bạn chọn giá trị nào cho SA (hoặc cho WA),có một giá trị hợp lệ cho biến khác. Vì vậy,
áp dụng tính nhất quán của vòng cung không ảnh hưởng đến các miền của một trong hai
biến.
Thuật toán phổ biến nhất cho tính nhất quán của hồ quang được gọi là AC-3 (xem Hình
6.3). Để làm cho mọi thay đổi liên tục hồ quang nhất quán, thuật toán AC-3 duy trì một hàng
đợi các vòng cung để xem xét. (Trên thực tế, thứ tự xem xét không quan trọng, vì vậy cấu trúc
dữ liệu thực sự là một tập hợp, nhưng truyền thống gọi nó là hàng đợi.) Ban đầu, hàng đợi
chứa tất cả các vòng cung trong CSP. AC-3 sau đó bật ra khỏi một vòng cung tùy ý (X i,Xj) từ
hàng đợi và làm cho Xi arc-phù hợp với Xj . Nếu điều này để lại Di không thay đổi, thuật toán
chỉ cần chuyển sang vòng cung tiếp theo. Nhưng nếu điều này sửa đổi Di (làm cho tên miền
nhỏ hơn), thì chúng tôi thêm vào hàng đợi tất cả các vòng cung (Xk , Xi) trong đó Xk là hàng
xóm của Xi. Chúng ta cần phải làm điều đó bởi vì sự thay đổi trong Di có thể cho phép giảm
thêm các tên miền của Dk , ngay cả khi trước đây chúng ta đã xem xét Xk . Nếu Di được sửa đổi
xuống không có gì, thì chúng tôi biết toàn bộ CSP không có giải pháp nhất quán và AC-3 có thể
ngay lập tức trả lại thất bại. Nếu không, chúng tôi tiếp tục kiểm tra, cố gắng loại bỏ các giá trị
khỏi các tên miền của các biến cho đến khi không còn vòng cung nào trong hàng đợi. Tại thời
điểm đó, chúng ta còn lại một CSP tương đương với CSP ban đầu - cả hai đều có cùng một giải
pháp - nhưng CSP nhất quán trong hầu hết các trường hợp sẽ nhanh hơn để tìm kiếm vì các
biến của nó có tên miền nhỏ hơn.
Độ phức tạp của AC-3 có thể được phân tích như sau. Giả sử một CSP với các biến n, mỗi
biến có kích thước miền nhiều nhất là dvà với c ràng buộc nhị phân (vòng cung). Mỗi vòng
cung (Xk , Xi) chỉ có thể được chèn vào hàng đợi d lần vì Xi có nhiều giá trị d nhất để xóa.
Kiểm tra
210 Chương 6. Vấn đề về sự hài lòng ràng buộc

2),
tính nhất quán của một vòng cung có thể được thực hiện trong thời gian O (d vì vậy
3) 1
chúng tôi nhận được O (cd tổng thời gian trường hợp xấu nhất. Có thể mở rộng
HỒ QUANG TỔNG
khái niệm về tính nhất quán của vòng cung để xử lý n-ary thay vì chỉ
QUÁT NHẤT QUÁN hạn chế nhị phân; điều này được gọi là tính nhất quán hồ quang tổng quát hoặc đôi khi
hyperarc consis-tency, tùy thuộc vào tác giả. Một biến X i được khái quát hóa arc phù
hợp với một ràng buộc n-ary nếu đối với mỗi giá trị v trong miền của Xi tồn tại một tuple của
các giá trị là một thành viên của ràng buộc, có tất cả các giá trị của nó lấy từ các tên miền
của các biến tương ứng, và có thành phần Xi của nó bằng v . Ví dụ: nếu tất cả các biến có
do-main {0, 1, 2, 3}, thì để làm cho biến X phù hợp với ràng buộc X < Y < Z,chúng ta sẽ phải
loại bỏ 2 và 3 khỏi miền X vì ràng buộc không thể được thỏa mãn khi X là 2 hoặc 3.

6.2.3 Tính nhất quán của đường dẫn

Tính nhất quán của arc có thể đi một chặng đường dài hướng tới việc giảm các tên miền của
các biến, đôi khi tìm ra giải pháp (bằng cách giảm mọi tên miền xuống kích thước 1) và đôi khi
thấy rằng CSP không thể được giải quyết (bằng cách giảm một số tên miền xuống kích thước
0). Nhưng đối với các mạng khác, tính nhất quán của vòng cung không đưa ra đủ suy luận. Hãy
xem xét vấn đề tô màu bản đồ trên Úc, nhưng chỉ với hai màu được phép, đỏ và xanh dương.
Tính nhất quán của vòng cung không thể làm gì vì mọi biến đã nhất quán: mỗi biến có thể có
màu đỏ với màu xanh ở đầu kia của vòng cung (hoặc ngược lại). Nhưng rõ ràng không có giải
pháp cho vấn đề: bởi vì Tây Úc, Lãnh thổ phía Bắc và Nam Úc đều chạm vào nhau, chúng ta
cần ít nhất ba màu cho họ một mình.
Tính nhất quán của arc thắt chặt các tên miền (ràng buộc khôngaryary) bằng cách sử dụng các vòng cung
(ràng buộc nhị phân). Để đạt được tiến bộ về các vấn đề như tô màu bản đồ, chúng ta cần một khái
niệm mạnh mẽ hơn về tính nhất quán của PATH CONSISTENCY. Tính nhất quán của đường dẫn thắt chặt các ràng
buộc nhị phân bằng cách sử dụng các ràng buộc ngầm
được suy luận bằng cách nhìn vào ba biến.
Một tập hợp hai biến {Xi, Xj } là đường dẫn phù hợp với một biến thứ ba Xm nếu, đối
với mỗi bài tập {Xi = a, Xj = b} phù hợp với các ràng buộc trên {Xi,Xj }, có một nhiệm vụcho Xm
thỏa mãn các ràng buộc trên {X i, Xm} và {Xm,Xj }. Điều này được gọi là tính nhất quán của
đường dẫn bởi vì người ta có thể nghĩ về nó như nhìn vào một con đường từ Xi đến Xj
với Xm ở giữa.
Chúng ta hãy xem cách giá vé nhất quán đường dẫn trong việc tô màu bản đồ Úc với hai
màu. Chúng tôi sẽ làm cho con đường set {WA, SA} phù hợp với NT . Chúng tôi bắt đầu bằng
cách liệt kê các bài tập nhất quán cho bộ. Trong trường hợp này, chỉ có hai: {WA = đỏ , SA =
xanh) và {WA = xanh, SA = đỏ }. Chúng ta có thể thấy rằng với cả hai nhiệm vụ này, NT có thể
không phải là màu đỏ cũng không màu xanh (vì nó sẽ mâu thuẫn với WA hoặc SA). Bởi vì
không có sự lựa chọn hợp lệ cho NT, chúng tôi loại bỏ cả hai bài tập và kết thúc mà không có
nhiệm vụ hợp lệ cho {WA, SA}. Do đó, chúng tôi biết rằng không thể có giải pháp cho vấn đề
này. Thuật toán PC-2 (Mackworth, 1977) đạt được tính nhất quán của đường dẫn theo cách
tương tự như AC-3 đạt được tính nhất quán của vòng cung. Bởi vì nó rất giống nhau, chúng tôi
không hiển thị nó ở đây.

2)
Thuật toán AC-4 (Mohr và Henderson, 1986) chạy trong thời gian xấu nhất của O (cd nhưng có thể chậm
hơn ac-3 trung bình các trường hợp. Xem bài tập 6.13.
Phần 6.2. Truyền bá ràng buộc: Suy luận trong CSP 211

6.2.4 K-nhất quán


K-NHẤT QUÁN
Các hình thức nhân giống mạnh mẽ hơn có thể được xác định với khái niệm k-nhất quán.
CSP là k-nhất quán nếu, đối với bất kỳ tập hợp nào của k − 1 biến và đối với bất kỳ nhiệm vụ
nhất quán nào cho các biến đó, một giá trị nhất quán luôn có thể được gán cho bất kỳ biến
kth nào. 1-nhất quán nói rằng, với tập hợp trống, chúng ta có thể làm cho bất kỳ tập hợp nào của
một biến nhấtquán: đây là những gì chúng tôi gọi là tính nhất quán của nút. Tính nhất quán
MẠNH MẼ K-
2 cũng giống như tính nhất quán của vòng cung. Đối với các mạng ràng buộc nhị phân,
CONSISTENT tính nhất quán 3 cũng giống như tính nhất quán của đường dẫn.
Một CSP là mạnh k -nhất quán nếu nó là k-nhất quán và cũng (k − 1)-nhất quán, (k −
2)-nhất quán, . . . tất cả các cách xuống 1-nhất quán. Bây giờ giả sử chúng ta có một CSP
với
các nút và làm cho nó mạnh mẽ n-nhất quán (tức là, mạnh k-nhất quán cho k = n). Sau đó,
chúng ta có thể giải quyết vấn đề như sau: Đầu tiên, chúng ta chọn một giá trị nhất quán cho
X1. Sau đó, chúng tôi được đảm bảo có thể chọn một giá trị cho X2 vì đồ thị là 2 nhất quán,
cho X3 vì nó là 3 nhất quán, v.v. Đối với mỗi biến Xi,chúng ta chỉ cần tìm kiếm thông qua các
giá trị d trong miền để tìm một giá trị phù hợp với X1,. . . ,Xi−1. Chúng tôi được đảm bảo để tìm
2
ra một giải pháp trong thời gian O (n d). Tất nhiên, không có bữa trưa miễn phí: bất kỳ thuật
toán nào để thiết lập
Tính nhất quán phải mất thời gian theo cấp số nhân trong n trong trường hợp xấu nhất.
Tệ hơn, n-nhất quán cũng đòi hỏi không gian theo cấp số nhân trong n. Vấn đề trí nhớ
thậm chí còn nghiêm trọng hơn thời gian. Trong thực tế, xác định mức độ kiểm tra tính
nhất quán thích hợp chủ yếu là một khoa học thực nghiệm. Có thể nói các học viên
thường tính toán tính nhất quán 2 và ít phổ biến hơn 3-nhất quán.

6.2.5 Hạn chế toàn cầu


Hãy nhớ rằng một ràng buộc toàn cầu là một liên quan đến một số lượng tùy ý của các biến
(nhưng không nhất thiết phải tất cả các biến). Các ràng buộc toàn cầu xảy ra thường
xuyên trong các vấn đề thực tế và có thể được xử lý bởi các thuật toán mục đích đặc biệt
hiệu quả hơn so với các meth-ods mục đích chung được mô tả cho đến nay. Ví dụ, ràng
buộc Alldiff nói rằng tất cả các biến liên quan phải có giá trị riêng biệt (như trong vấn đề
hóa mã ở trên và các câu đố Sudoku thấp). Một hình thức phát hiện không nhất quán đơn
giản cho các ràng buộc Alldiff hoạt động như sau: nếu các biến m có liên quan đến ràng
buộc và nếu chúng không có các giá trị riêng biệt alto-gether và m > n, thì ràng buộc không
thể đượcthỏa mãn.
Điều này dẫn đến thuật toán đơn giản sau: Đầu tiên, loại bỏ bất kỳ biến nào trong
con-straint có miền singleton và xóa giá trị của biến đó khỏi các tên miền của các biến còn
lại. Lặp lại miễn là có các biến singleton. Nếu tại bất kỳ thời điểm nào, một tên miền trống
được tạo ra hoặc có nhiều biến hơn giá trị miền còn lại, thì một sự không nhất quán đã
được phát hiện.
Phương pháp này có thể phát hiện sự không nhất quán trong bài tập {WA = đỏ, NSW
= đỏ } cho Hình 6.1. Lưu ý rằng các biến SA, NT và Q được kết nối hiệu quả bởi một ràng
buộc Alldiff vì mỗi cặp phải có hai màu khác nhau. Sau khi áp dụng AC-3 với phân công một
phần, nhất quán của vòng cung cho một tập hợp các ràng buộc nhị phân tương đương. Có nhiều
tên miền hơn
của mỗi
biến
được
giảm
xuống
{xanh lá
cây,
xanh
dương'.
Đó là,
chúng
tôi có ba
biến và
chỉ có
hai màu,
vì vậy
ràng buộc
Alldiff bị
vi phạm.
Do đó,
một quy
trình
nhất
quán
đơn giản
cho một
ràng
buộc
thứ tự
cao hơn
đôi khi
hiệu quả
hơn so
với việc
áp dụng
tính
212 Chương 6. Vấn đề về sự hài lòng ràng buộc

Các thuật toán suy luận phức tạp cho Alldiff (xem van Hoeve và Katriel, 2006) tuyên
truyền nhiều ràng buộc hơn nhưng đắt hơn về mặt tính toán để chạy.
HẠN CHẾ VỀ TÀI
NGUYÊN Một hạn chế thứ tự cao hơn quan trọng khác là hạn chế tài nguyên, đôi khi được gọilà
ràng buộc tối đa. Ví dụ, trong một vấn đề lập kế hoạch, hãy để P1, . . , P4 biểu thị số lượng
nhân viên được giao cho mỗi bốn nhiệm vụ. Hạn chế mà không quá 10 nhân viên được chỉ
định tổng cộng được viết là Tối đa (10, P1,P2,P3, P4). Chúng ta có thể phát hiện sự không nhất
quán chỉ bằng cách kiểm tra tổng các giá trị tối thiểu của các tên miền hiện tại; ví dụ: nếu mỗi
biến có tên miền {3, 4, 5, 6}, ràng buộc tối đa không thể được thỏa mãn. Chúng tôi cũng có thể
thực thi tính nhất quán bằng cách xóa giá trị tối đa của bất kỳ tên miền nào nếu nó không phù
hợp với các giá trị tối thiểu của các tên miền khác. Do đó, nếu mỗi biến trong ví dụ của chúng
tôi có tên miền {2, 3, 4, 5, 6}, các giá trị 5 và 6 có thể bị xóa khỏi mỗi tên miền.
Đối với các vấn đề hạn chế tài nguyên lớn với các giá trị số nguyên - chẳng hạn như các
vấn đề hậu cần liên quan đến việc di chuyển hàng ngàn người trong hàng trăm phương tiện -
thường không thể đại diện cho miền của mỗi biến như một tập hợp lớn các số nguyên và giảm
LAN TRUYỀN GIỚI dần điều đó được thiết lập bởi các phương pháp kiểm tra tính nhất quán. Thay vào đó, các tên
HẠN
miền được đại diện bởi các giới hạn trên và dưới và được quản lý bởi sự lan truyền giới hạn.
Ví dụ, trong một vấn đề lập kế hoạch hàng không, giả sử có hai chuyến bay, F1 và F2,mà các
máy bay có công suất lần lượt là 165 và 385. Các tên miền ban đầu cho số lượng hành khách
trên mỗi chuyến bay sau đó là

D1 = [0, 165] và D2 = [0, 385] .

Bây giờ giả sử chúng ta có thêm hạn chế rằng hai chuyến bay cùng nhau phải chở 420
người: F1 + F2 = 420. Tuyên truyền các ràng buộc giới hạn, chúng tôi giảm các tên miền
GIỚI HẠN NHẤT xuống
QUÁN

D1 = [35, 165] và D2 = [255, 385] .

Chúng tôi nói rằng CSP là giới hạn nhất quán nếu đối với mỗi biến X, và cho cả các giá trị giới
hạn thấp hơn và giới hạntrên của X, tồn tại một số giá trịcủa Y đáp ứng các ràng buộc giữa X
và Y cho mỗi biến Y . Loại lan truyền giới hạn này được sử dụng rộng rãi trong các vấn đề
ràng buộc thực tế.

6.2.6 Ví dụ Sudoku
SUDOKU
Câu đố Sudoku phổ biến đã giới thiệu hàng triệu người để hạn chế sự hài lòng prob-lems,
mặc dù họ có thể không nhận ra nó. Một bảng Sudoku bao gồm 81 hình vuông, một số
trong đó ban đầu được lấp đầy với các chữ số từ 1 đến 9. Câu đố là điền vào tất cả các ô
vuông còn lại sao cho không có chữ số nào xuất hiện hai lần trong bất kỳ hàng, cột hoặc 3
× 3 hộp (xem Hình 6.4). Một hàng, cột hoặc hộp được gọi là đơn vị.
Các câu đố Sudoku được in trên báo và sách câu đố có tài sản chính xác là có một giải
pháp. Mặc dù một số có thể khó giải quyết bằng tay, mất hàng chục phút, ngay cả những vấn
đề Sudoku khó nhất cũng mang lại cho người giải CSP trong vòng chưa đầy 0,1 giây.
Một câu đố Sudoku có thể được coi là một CSP với 81 biến, một cho mỗi hình vuông.
Chúng tôi sử dụng các tên biến từ A1 đến A9 cho hàng trên cùng (từ trái sang phải), xuống
I1
đến
I9 cho
hàng
dưới
cùng.
Các ô
vuông
trống
có tên
miền
{1, 2,
3, 4, 5,
6, 7, 8,
9} và
các ô
vuông
được
điền
sẵn có
một
tên
miền
bao
gồm
một
giá trị
duy
nhất.
Ngoài
ra, có
27
khác
nhau.
Phần 6.2. Tuyên truyền hạn chế: Suy luận trong CSP 213

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

Một 3 2 6 Một 4 8 3 9 2 1 6 5 7
B 9 3 5 1 B 9 6 7 3 4 5 8 2 1
C 1 8 6 4 C 2 5 1 8 7 6 4 9 3
D 8 1 2 9 D 5 4 8 1 3 2 9 7 6
E 7 8 E 7 2 9 5 6 4 1 3 8
F 6 7 8 2 F 1 3 6 7 9 8 2 4 5
G 2 6 9 5 G 3 7 2 6 8 9 5 1 4
H 8 2 3 9 H 8 1 4 2 5 3 7 6 9
Tôi 5 1 3 Tôi 6 9 5 4 1 7 3 8 2
(a) (b)

Hình 6.4 (a) Câu đố Sudoku và (b) giải pháp của nó.

Ràng buộc Alldiff: một cho mỗi hàng, cột và hộp 9 ô vuông.
Alldiff (A1, A2, A3, A4, A5, A6, A7, A8, A9)
Alldiff (B1, B2, B3, B4, B5, B6, B7, B8, B9)
···
Alldiff (A1, B1, C1, D1, E1, F 1, G1, H1, I1)
Alldiff (A2, B2, C2, D2, E2, F 2, G2, H2, I2)
···
Alldiff (A1, A2, A3, B1, B2, B3, C1, C2, C3)
Alldiff (A4, A5, A6, B4, B5, B6, C4, C5, C6)
···
Chúng ta hãy xem sự nhất quán vòng cung có thể đưa chúng ta đến mức nào. Giả sử rằng
các ràng buộc Alldiff đã được mở rộng thành các ràng buộc nhị phân (chẳng hạn như A1
= A2 ) để chúng ta có thể áp dụng thuật toán AC-3 trực tiếp. Hãy xem xét biến E6 từ
Hình 6.4(a) —hình vuông trống giữa 2 và 8 trong hộp giữa. Từ các ràng buộc trong hộp,
chúng ta có thể loại bỏ không chỉ 2 và 8 mà còn 1 và 7 khỏi tên miền của E6. Từ các ràng
buộc trong cột của nó, chúng ta có thể loại bỏ 5, 6, 2, 8, 9 và 3. Điều đó để lại E6 với một
miền {4};nói cách khác, chúng ta biết câu trả lời cho E6 . Bây giờ hãy xem xét biến I6 —
hình vuông trong hộp giữa dưới cùng được bao quanh bởi 1, 3 và 3. Áp dụng tính nhất
quán của vòng cung trong cột của nó, chúng tôi loại bỏ 5, 6, 2, 4 (vì bây giờ chúng ta biết
E6 phải là 4), 8, 9 và 3. Chúng tôi loại bỏ 1 bằng cách liên kết vòng cung với I5 , và chúng
tôi chỉ còn lại giá trị 7 trong miền I6 . Bây giờ có 8 giá trị đã biết trong cột 6, vì vậy tính
nhất quán của vòng cung có thể suy ra rằng A6 phải là 1. Suy luận tiếp tục dọc theo các
dòng này, và cuối cùng, AC-3 có thể giải quyết toàn bộ câu đố - tất cả các biến đều có tên
miền của chúng giảm xuống còn một giá trị duy nhất, như được hiển thị trong Hình 6.4
(b).
Tất nhiên, Sudoku sẽ sớm mất đi sức hấp dẫn của nó nếu mọi câu đố có thể được
giải quyết bằng một
214 Chương 6. Vấn đề về sự hài lòng ràng buộc

Ứng dụng cơ học của AC-3, và thực sự AC-3 chỉ hoạt động cho các câu đố Sudoku dễ nhất.
Những cái khó hơn một chút có thể được giải quyết bằng PC-2, nhưng với chi phí tính
toán lớn hơn: có 255.960 hạn chế đường dẫn khác nhau để xem xét trong một câu đố
Sudoku. Để giải quyết những câu đố khó nhất và để đạt được tiến bộ hiệu quả, chúng ta
sẽ phải thông minh hơn.
Thật vậy, sự hấp dẫn của các câu đố Sudoku đối với người giải quyết con người là sự
cần thiết phải tháo vát trong việc áp dụng các chiến lược suy luận phức tạp hơn. Những
người hâm mộ đặt cho họ những cái tên đầy màu sắc, chẳng hạn như "bộ ba khỏa thân".
Chiến lược đó hoạt động như sau: trong bất kỳ đơn vị (hàng, cột hoặc hộp), hãy tìm ba ô
vuông mà mỗi ô có một tên miền chứa cùng ba số hoặc một tập hợp con của các số đó. Ví
dụ: ba tên miền có thể là {1, 8}, {3, 8}và {1, 3, 8}. Từ đó chúng ta không biết hình vuông
nào chứa 1, 3 hoặc 8, nhưng chúng ta biết rằng ba số phải được phân bố giữa ba ô vuông.
Do đó, chúng ta có thể loại bỏ 1, 3 và 8 khỏi các tên miền của mọi ô vuông khác trong đơn
vị.
Thật thú vị khi lưu ý chúng ta có thể đi bao xa mà không nói nhiều điều đó cụ thể với
Su-doku. Tất nhiên chúng ta phải nói rằng có 81 biến, rằng tên miền của chúng là các chữ
số từ 1 đến 9 và có 27 ràng buộc Alldiff. Nhưng ngoài ra, tất cả các chiến lược - khả năng
liên kết, tính nhất quán của con đường, v.v. - áp dụng chung cho tất cả các CSP, không chỉ
cho các vấn đề Sudoku. Ngay cả bộ ba khỏa thân thực sự là một chiến lược để thực thi tính
nhất quán của các ràng buộc Alldiff và không liên quan gì đến Sudoku. Đây là sức mạnh
của chủ nghĩa hình thức CSP: đối với mỗi lĩnh vực vấn đề mới, chúng ta chỉ cần xác định
vấn đề về mặt ràng buộc; sau đó các cơ chế giải quyết hạn chế chung có thể tiếp quản.

3 BTAI NGHE ACKTRACKING SCHO CSPS

Các vấn đề sudoku được thiết kế để được giải quyết bằng suy luận về những hạn chế. Nhưng
nhiều CSP khác không thể được giải quyết chỉ bằng suy luận; Đến lúc chúng ta phải tìm kiếm
một giải pháp. Trong phần này, chúng tôi xem xét các thuật toán tìm kiếm quay lại hoạt động
trên các dấu hiệu một phần; trong phần tiếp theo, chúng tôi xem xét các thuật toán tìm kiếm
địa phương trên các bài tập hoàn chỉnh.
Chúng tôi có thể áp dụng tìm kiếm giới hạn độ sâu tiêu chuẩn (từ Chương 3). Một trạng
thái sẽ là một nhiệm vụ một phần, và một hành động sẽ là thêm var = giá trị cho nhiệm vụ.
Nhưng đối với một CSP có n biến có kích thước miền d, chúng tôi nhanh chóng nhận thấy một
điều khủngkhiếp: yếu tố phân nhánh ở cấp cao nhất là nd vì bất kỳ giá trị d nào cũng có thể
được gán cho bất kỳ biến nào. Ở cấp độ tiếp theo, yếu tố phân nhánh là (n − 1)d, và như vậy
lá,
đối với n cấp độ. Chúng tôi tạo ra một cái cây với n! · dn mặc dù chỉ có thể có những
nhiệm vụ hoàn thành có thể!
Công thức dường như hợp lý nhưng ngây thơ của chúng tôi bỏ qua tài sản quan
trọng phổ biến
Commutativity tất cả các CSP: đi lại. Một vấn đề là giao hoán nếu thứ tự áp dụng bất kỳ tập hợp hành động
nào không ảnh hưởng đến kết quả. CSP là giao hoán bởi vì khi gán các giá trị cho các biến,
chúng tôi đạt được cùng một nhiệm vụ một phần bất kể thứ tự. Do đó, chúng ta chỉ cần xem
xét một biến duy nhất ở mỗi nút trong cây tìm kiếm. Ví dụ, tại nút gốc của cây tìm kiếm để tô
màu bản đồ Úc, chúng ta có thể lựa chọn giữa SA = đỏ, SA = xanh lá câyvà SA = xanh dương,
nhưng chúng ta sẽ không bao giờ chọn giữa SA = đỏ và WA = xanhdương . Với hạn chế này, số
n,
lượng lá là d như chúng ta hy vọng.
Phần 6.3. Tìm kiếm lùi cho CSP 215

hàm BACKTRACKING-SEARCH(csp) trả về giải pháp, hoặc trả về thất bại


BACKTRACK({ }, csp)
hàm BACKTRACK(nhiệmvụ, csp) trả về giải pháp, hoặc thất bại nếu
nhiệm vụ hoàn thành thì trả lại nhiệm vụ
var ← SELECT-UNASSIGNED-VARIABLE(csp)
đối với mỗi giá trị trong ORDER-DOMAIN-VALUES(var, assignment,
csp) làm nếu giá trị phù hợp với nhiệm vụ sau đó
thêm {var = giá trị} vào bài tập
suy luận ← I NFERENCE(csp, var, giá trị)
Nếu suy luận = thất bại thì
thêm suy luận vào gán
kết quả ← BACKTRACK(nhiệmvụ, csp)
nếu kết quả = thất bại thì
kết quả trả về
loại bỏ {var = giá trị} và suy luận từ thất bại trả về
nhiệm vụ

Hình 6.5 Một thuật toán backtracking đơn giản cho các vấn đề về sự hài lòng hạn chế. Al-
gorithm được mô phỏng theo tìm kiếm chiều sâu đệ quy đầu tiên của Chương 3. Bằng
cách thay đổi các chức năng S ELECT-UNASSIGNED-VARIABLE và ORDER-DOMAIN-VALUES,chúng ta có
thể thực hiện cácheuristics mục đích chung được thảo luận trong văn bản. Hàm I NFERENCE
có thể được sử dụng tùy chọn để áp đặt tính nhất quán, đường dẫn hoặc k,như
mongmuốn. Nếu một lựa chọn giá trị dẫn đến thất bại (được chú ý bởi I NFERENCE hoặc bởi
BACKTRACK),thì các bài tập giá trị (bao gồm cả những bài tập được thực hiện bởi I NFERENCE)sẽ
TÌM KIẾM bị loại bỏ khỏi nhiệm vụ hiện tại và một giá trị mới được thử.
BACKTRACKING

Thuật ngữ tìm kiếm backtracking được sử dụng cho một tìm kiếm đầu tiên có chiều
sâu chọn giá trị cho một biến tại một thời điểm và quay ngược khi một biến không còn giá
trị pháp lý để gán. Thuật toán được hiển thị trong Hình 6.5. Nó liên tục chọn một biến
không được gán, và sau đó lần lượt thử tất cả các giá trị trong tên miền của biến đó, cố
gắng tìm giải pháp. Nếu phát hiện sự không nhất quán, thì B ACKTRACK trả về lỗi, khiến cuộc
gọi trước đó phải thử một giá trị khác. Một phần của cây tìm kiếm cho vấn đề Úc được
hiển thị trong Hình 6.6, nơi chúng tôi đã gán các biến theo thứ tự WA, NT, Q, . . Bởi vì đại
diện của CSP được tiêu chuẩn hóa, không cần phải cung cấp TAINGHE BACKTRACKING-S với
trạng thái ban đầu cụ thể, chức năng hành động, mô hình chuyển tiếp hoặc kiểm tra mục
tiêu cụ thể.
Lưu ý rằng BACKTRACKING-SEARCH chỉ giữ một đại diện duy nhất của một trạng thái và thay
đổi đại diện đó thay vì tạo ra những cái mới, như được mô tả ở trang 87.
Trong Chương 3, chúng tôi đã cải thiện hiệu suất kém của các thuật toán tìm kiếm
không hiểu biết bằng cách cung cấp cho chúng các chức năng heuristic cụ thể theo tên
miền bắt nguồn từ kiến thức của chúng tôi về vấn đề. Hóa ra chúng ta có thể giải quyết
CSP một cách hiệu quả mà không cần bí quyết cụ thể như vậy. Thay vào đó, chúng ta có thể
thêm một số độ tinh tế vào các chức năng không xác định trong Hình 6.5, sử dụng chúng
để giải ASSIGNED-VARIABLE),và theo thứ tự nào các giá trị của nó nên được thử(ORDER-DOMAIN-
quyết VALUES)?
các câu
hỏi sau:
Biến

o

n
đư
ợc

n
tiế
p
th
eo
(SE
LEC
T-
UN
216 Chương 6. Vấn đề về sự hài lòng ràng buộc

WA=đỏ WA=xanh lá cây WA=xan


h

WA=đỏ WA=đỏ
NT=xanh lá NT=xanh
cây

WA=đỏ WA=đỏ
NT=xanh lá NT=xanh lá
cây cây
Q=đỏ Q=xanh

Hình 6.6 Một phần của cây tìm kiếm cho vấn đề tô màu bản đồ trong Hình 6.1.

Những suy luận nào nên được thực hiện ở mỗi bước trong tìm kiếm (I NFERENCE)?
Khi tìm kiếm đến một bài tập vi phạm ràng buộc, tìm kiếm có thể tránh lặp lại thất bại
này không?
Các tiểu mục theo sau lần lượt trả lời từng câu hỏi này.

6.3.1 Đặt hàng biến và giá trị


Thuật toán backtracking chứa dòng
var ← SELECT-UNASSIGNED-VARIABLE(csp).

Chiến lược đơn giản nhất cho S ELECT-UNASSIGNED-VARIABLE là chọn biến không được gán tiếp
theo theo thứ tự, {X1,X2, . .. . Thứ tự biến tĩnh này hiếm khi dẫn đến tìm kiếm effi-cient
nhất. Ví dụ: sau các bài tập cho WA = đỏ và NT = màu xanh lá cây trong Hình 6.6, chỉ có
một giá trị có thể cho SA, vì vậy nó có ý nghĩađể gán SA = màu xanh tiếp theo thay vì gán Q.
Trên thực tế, sau khi SA được chỉ định, các lựa chọn cho Q, NSW và V đều bị ép buộc. Ý
TỐI THIỂU-
GIÁ TRỊ CÒN LẠI tưởng trực quan này - chọn biến có ít giá trị "hợp pháp" nhất - được gọi là heuristic giá trị
tối thiểu còn lại (MRV). Nó cũng được gọi là "biến bị hạn chế nhất" hoặc "thất bại đầu
tiên", sau này bởi vì nó chọn một biến có nhiều khả năng gây ra thất bại sớm, do đó cắt tỉa
cây tìm kiếm. Nếu một số biến X không còn giá trị pháp lý, heuristic MRV sẽ chọn X và lỗi sẽ
được phát hiện ngay lập tức - tránh tìm kiếm vô nghĩa thông qua các biến khác. Heuristic MRV
thường hoạt động tốt hơn so với trật tự ngẫu nhiên hoặc tĩnh, đôi khi bằng hệ số từ 1.000
trở lên, mặc dù kết quả rất khác nhau tùy thuộc vào vấn đề.
Mrv heuristic không giúp ích gì trong việc lựa chọn khu vực đầu tiên để tô màu ở Úc, bởi
HEURISTIC ĐỘ
vì ban đầu mỗi khu vực có ba màu hợp pháp. Trong trường hợp này, mức độ heuristic có ích.
Nó cố gắng giảm yếu tố phân nhánh cho các lựa chọn trong tương lai bằng cách chọn đa dạng
có thể liên quan đến số lượng hạn chế lớn nhất đối với các biến chưa được chỉ định khác.
Trong Hình 6.1, SA là biến có mức độ cao nhất, 5; các biến khác có độ 2 hoặc 3, ngoại trừ T , có
độ 0. Trên thực tế, một khi SA được chọn, áp dụng mức độ heuris-tic giải quyết vấn đề mà
không cần bất kỳ bước sai nào - bạn có thể chọn bất kỳ màu nhất quán nào tại mỗi điểm lựa
chọn và vẫn đi đến một giải pháp không có sự quay trở lại. Mức tối thiểu còn lại-
Phần 6.3. Tìm kiếm lùi cho CSP 217

giá trị heuristic thường là một hướng dẫn mạnh mẽ hơn, nhưng mức độ heuristic có thể
hữu ích như một tie-breaker.
ÍT NHẤT...
Khi một biến đã được chọn, thuật toán phải quyết định thứ tự để kiểm tra các giá trị
HẠN CHẾ-
GIÁ TRỊ
của nó. Đối với điều này, heuristic ít hạn chế giá trị nhất có thể có hiệu quả trong một số
trường hợp. Nó thích giá trị loại trừ ít lựa chọn nhất cho các biến lân cận trong biểu đồ
ràng buộc. Ví dụ: giả sử rằng trong Hình 6.1, chúng tôi đã tạo ra bài tập một phần với WA =
đỏ và NT = màu xanh lá cây và lựa chọn tiếp theo của chúng tôi là Q. Màu xanh sẽ là một lựa
chọn tồi vì nó loại bỏ giá trị pháp lý cuối cùng còn lại cho hàngxóm của Q, SA. Do đó,
heuristic ít hạn chế nhất thích màu đỏ hơn màu xanh. Nói chung, heuristic đang cố gắng
để lại sự linh hoạt tối đa cho các bài tập biến tiếp theo. Tất nhiên, nếu chúng ta đang cố
gắng tìm tất cả các giải pháp cho một vấn đề, không chỉ là vấn đề đầu tiên, thì việc đặt
hàng không quan trọng bởi vì chúng ta phải xem xét mọi giá trị. Điều tương tự cũng xảy ra
nếu không có giải pháp cho vấn đề.
Tại sao lựa chọn biến nên thất bại đầu tiên, nhưng lựa chọn giá trị là thất bại cuối cùng?
Hóa ra, đối với nhiều vấn đề khác nhau, một trật tự biến chọn một biến với số lượng giá trị
còn lại tối thiểu giúp giảm thiểu số lượng nút trong cây tìm kiếm bằng cách cắt tỉa các phần
lớn hơn của cây sớm hơn. Đối với giá trị orderi ng, bí quyết là chúng ta chỉ cần một giải pháp;
Do đó, nó có ý nghĩa để tìm kiếm các giá trị có khả năng nhất đầu tiên. Nếu chúng ta muốn liệt
kê tất cả các giải pháp thay vì chỉ tìm một giải pháp, thì việc đặt hàng giá trị sẽ không liên
quan.

6.3.2 Tìm kiếm và suy luận xen kẽ

Cho đến nay, chúng ta đã thấy AC-3 và các thuật toán khác có thể suy ra sự giảm trong
lĩnh vực biến trước khi chúng ta bắt đầu tìm kiếm. Nhưng suy luận có thể còn mạnh mẽ hơn
trong quá trình tìm kiếm: mỗi khi chúng ta lựa chọn giá trị cho một biến, chúng ta có một
VỀ PHÍA
cơ hội hoàn toàn mới để suy ra các giảm tên miền mới trên các biến lân cận.
TRƯỚC
KIỂM TRA
Một trong những hình thức suy luận đơn giản nhất được gọi là kiểm tra phía trước.
Bất cứ khi nào một X có khả năng khác nhau được chỉ định, quá trình kiểm tra phía trước sẽ
thiết lập tính nhất quán vòng cung cho nó: đối với mỗi biến Y không được gán được kết nối
với X bằng một ràng buộc, xóa khỏi tên miền Y bất kỳ giá trị nào không phù hợp với giá trị
được chọn cho X. Bởi vì kiểm tra phía trước chỉ làm suy luận tính nhất quán hồ quang,
không có lý do gì để kiểm tra về phía trước nếu chúng tôi đã thực hiện tính nhất quán hồ
quang như một bước xử lý trước.
Hình 6.7 cho thấy tiến trình tìm kiếm quay trở lại trên CSP Úc với kiểm tra cho
phường. Có hai điểm quan trọng cần lưu ý về ví dụ này. Đầu tiên, lưu ý rằng sau khi WA =
đỏ và Q = màu xanh lá cây được chỉ định, các tên miền của NT và SA được giảm xuống còn
một giá trị duy nhất; chúng tôi đã loại bỏ phân nhánh trên các biến này hoàn toàn bằng
thông tin propagat-ing từ WA và Q. Một điểm thứ hai cần lưu ý là sau V = màu xanh,do-
main của SA trống rỗng. Do đó, kiểm tra chuyển tiếp đã phát hiện ra rằng bài tập một
phần {WA = đỏ , Q = màu xanh lá cây, V = xanh dương} không phù hợp với các ràng buộc
của vấn đề và do đó thuật toán sẽ quay trở lại ngay lập tức.
Đ m vụ đó hạn chế các nước láng giềng, NT và SA,vì vậy chúng ta nên xử lý những người
ối với đó.
nhiều
vấn
đề,
việc
tìm
kiếm
sẽ
hiệu
quả
hơn
nếu
chúng
ta kết
hợp
heuris
-tic
MRV
với
kiểm
tra
phía
trước.
Xem
xét
Hình
6.7
sau
khi
gán
{WA =
đỏ }.
Theo
trực
giác,
có vẻ
như
nhiệ
218 Chương 6. Vấn đề về sự hài lòng ràng buộc

WA NT Q NSW V SA T
Tên miền ban R G B RG B RG B R GB RGB RG B RGB
đầu R GB RG B R GB RGB GB RGB
Sau WA=đỏ R B G RB RGB B RGB
Sau Q=green R B G R B RGB
Sau V=xanh

Hình 6.7 Tiến trình của tìm kiếm tô màu bản đồ với kiểm tra chuyển tiếp. WA = màu đỏ
được gán trước; sau đó kiểm tra chuyển tiếp xóa màu đỏ khỏi các tên miền của các biến
lân cận NT và SA. Sau khi Q = green được gán, màu xanh lá cây sẽ bị xóa khỏi các tên
miền của NT, SAvà NSW. Sau khi V = blue được gán, màu xanh sẽ bị xóa khỏi các tên
miền của NSW và SA,khiến SA không có giá trị pháp lý.

các biến tiếp theo, và sau đó tất cả các biến khác sẽ rơi vào vị trí. Đó chính xác là những gì
hap-pens với MRV: NT và SA có hai giá trị, vì vậy một trong số chúng được chọn đầu tiên, sau
đó là giá trị kia, sau đó là Q, NSW và V theo thứ tự. Cuối cùng T vẫn có ba giá trị, và bất kỳ
một trong số chúng hoạt động. Chúng ta có thể xem kiểm tra về phía trước như một cách
hiệu quả để tính toán dần dần thông tin mà mrv heuristic cần để thực hiện công việc của
mình.
Mặc dù kiểm tra phía trước phát hiện nhiều mâu thuẫn, nhưng nó không phát hiện
ra tất cả chúng. Vấn đề là nó làm cho biến hiện tại nhất quán, nhưng không nhìn về phía
trước và làm cho tất cả các biến khác phù hợp với vòng cung. Ví dụ, hãy xem xét hàng thứ
ba của Hình 6.7. Nó cho thấy rằng khi WA có màu đỏ và Q là màu xanh lá cây,cả NT và
DUY TRÌ TÍNH NHẤT SA đều buộc phải có màu xanh. Kiểm tra chuyển tiếp không nhìn đủ xa về phía trước để
QUÁN CỦA ARC (MAC)
nhận thấy rằng đây là một sự không nhất quán: NT và SA liền kề nhau và do đó không thể
có cùng giá trị.
Thuật toán được gọi là MAC (để duy trì tính nhất quán của Arc (MAC)phát hiện sự
không nhất quán này. Sau khi biến Xi được gán một giá trị, thủ tục I NFERENCE gọi AC-3, nhưng
thay vì một hàng đợi của tất cả các vòng cung trong CSP, chúng tôi bắt đầu chỉ với các
vòng cung (X j, Xi) cho tất cả các Xj là các biến không được gán là hàng xóm của Xi. Từ đó,
AC-3 thực hiện truyền bá hạn chế theo cách thông thường và nếu bất kỳ biến nào có tên
miền của nó bị giảm xuống tập trống, cuộc gọi đến AC-3 không thành công và chúng tôi
biết quay lại ngay lập tức. Chúng ta có thể thấy rằng MAC mạnh hơn kiểm tra chuyển tiếp
vì kiểm tra chuyển tiếp cũng tương tự như MAC trên các vòng cung ban đầu trong hàng
đợi của MAC; nhưng không giống như MAC, kiểm tra chuyển tiếp không lan truyền lại các
ràng buộc khi thay đổi đối với các tên miền của các biến.

6.3.3 Quay ngược thông minh: Nhìn về phía sau


Thuật toánTAI TAI BACKTRACKING-S trong Hình 6.5 có chính sách rất đơn giản cho những việc
cần làm khi một nhánh của tìm kiếm thất bại: sao lưu vào biến trước đó và thử một giá trị
NGƯỢC THỜI GIAN
khác cho nó. Điều này được gọi là quay ngược thời gian vì điểm quyết định gần đây nhất
được xem xét lại. Trong tiểu mục này, chúng tôi xem xét các khả năng tốt hơn.
Hãy
xem xét
những gì
xảy ra khi
chúng ta
áp dụng
backtracki
ng đơn
giản trong
Hình 6.1
với một
biến đặt
hàng cố
địnhQ,
NSW, V,
T, SA,
WA, NT.
Giả sử
chúng ta
đã tạo ra
bài tập
một phần
{Q = đỏ,
NSW =
xanh lá
cây, V =
xanh
dương, T
= đỏ }. Khi
chúng ta
thử biến
tiếp theo,
SA,chúng
ta thấy
rằng mọi
giá trị đều
vi phạm
mộtràng
buộc.
Chúng tôi
sao lưu
với T và
thử một
màu sắc
mới cho
Phần 6.3. Tìm kiếm lùi cho CSP 219

Tasmania! Rõ ràng điều này là ngớ ngẩn - đổi màu Tasmania không thể giải quyết vấn đề
với Nam Úc.
Một cách tiếp cận thông minh hơn để quay trở lại là quay trở lại một biến có thể
khắc phục sự cố - một biến chịu trách nhiệm làm cho một trong những giá trị có thể có
của SA là không thể. Để làm điều này, chúng tôi sẽ theo dõi một tập hợp các bài tập mâu
thuẫn với một số giá trị cho SA. Tập hợp (trong trường hợp này {Q = đỏ , NSW = xanh lá
BỘ XUNG ĐỘT
cây, V = xanh dương, }), được gọilà bộ xung đột cho SA. Phương pháp điều chỉnh ngược lại
BACKJUMPING
với nhiệm vụ gần đây nhất trong bộ xung đột; trong trường hợp này, backjumping sẽ nhảy
qua Tasmania và thử một giá trị mới cho V . Phương pháp này dễ dàng được thực hiện
bằng cách sửa đổi BACKTRACK để nó tích lũy bộ xung đột trong khi kiểm tra giá trị pháp lý để
gán. Nếu không tìm thấy giá trị pháp lý, thuật toán sẽ trả về phần tử gần đây nhất của
xung đột được đặt cùng với chỉ báo thất bại.
Người đọc mắt sắc nét sẽ nhận thấy rằng kiểm tra phía trước có thể cung cấp bộ
xung đột mà không có công việc thêm: bất cứ khi nào kiểm tra chuyển tiếp dựa trên bài
tập X = x xóa giá trị khỏi tên miền của Y, nó sẽ thêm X = x vào bộ xung đột của Y. Nếu giá trị
cuối cùng bị xóa khỏi tên miền của Y, thì các bài tập trong tập xung đột của Y được thêm
vào tập xung đột của X. Sau đó, khi chúng tôi đến Y, chúng tôi biết ngay lập tức nơi để
quay trở lại nếu cần thiết.
Người đọc mắt đại bàng sẽ nhận thấy một điều kỳ lạ: backjumping xảy ra khi mọi giá
trị trong một miền đều mâu thuẫn với nhiệm vụ hiện tại; nhưng kiểm tra phía trước phát
hiện sự kiện này và ngăn chặn việc tìm kiếm không bao giờ đạt được một nút như vậy!
Trên thực tế, có thể chỉ ra rằng mọi nhánh được cắt tỉa bằng cách chỉnh sửa cũng được
cắt tỉa bằng cách kiểm tra phía trước. Do đó, việc điều chỉnh lại đơn giản là dư thừa trong
tìm kiếm kiểm tra chuyển tiếp hoặc, thực sự, trong một tìm kiếm sử dụng kiểm tra tính
nhất quán mạnh mẽ hơn, chẳng hạn như MAC.
Bất chấp những quan sát của đoạn trước, ý tưởng đằng sau việc điều chỉnh lại một ý
tưởng tốt: quay trở lại dựa trên lý do thất bại. Backjumping nhận thấy thất bại khi tên miền
của một biến trở nên trống rỗng, nhưng trong nhiều trường hợp, một nhánh sẽ bị hủy diệt từ
lâu trước khi điều này xảy ra. Hãy xem xét lại bài tập một phần {WA = đỏ, NSW = đỏ } (từ cuộc
thảo luận trước đó của chúng tôi, là không nhất quán). Giả sử chúng ta thử T = đỏ tiếp theo và
sau đó gán NT, Q,
, SA. Chúng tôi biết rằng không có bài tập nào có thể hoạt động cho bốn biến cuối cùng
này, vì vậy cuối cùng chúng tôi hết giá trị để thử tại NT . Bây giờ, câu hỏi là, nơi để
backtrack? Backjumping không thể hoạt động, bởi vì NT có các giá trị phù hợp với các
biến được gán trước đó -NT không có một tập hợp xung đột hoàn toàn của các biến trước
đó khiến nó thất bại. Tuy nhiên, chúng ta biết rằng bốn biến NT, Q, V và SA, được kết
ĐIỀU CHỈNH XUNG ĐỘT
hợp với nhau, đã thất bại vì một tập hợp các biến trước đó, phải là những biến xung đột trực
tiếp với bốn biến. Điều này dẫn đến một khái niệm sâu sắc hơn về xung đột được thiết lập
cho một biến như NT: đó là tập hợp các biến trước đó khiến NT , cùng với bất kỳ biến nào
tiếp theo, không có giải pháp nhấtquán. Trong trường hợp này, bộ là WA và NSW, vì vậy
thuật toán nên quay trở lại NSW và bỏ qua Tasmania. Một thuật toán điều chỉnh ngược sử
dụng các thất bại và tập hợp xung đột của nó là (ví dụ) {WA, NT, Q}. Chúng tôi backjump đến Q,và
tập xung Q hấp thụ
đột được
xác định
theo cách
này được
gọi là
backjumpi
ng hướng
xung đột.
Bây
giờ chúng
ta phải giải
thích làm
thế nào các
bộ xung
đột mới
này được
tính toán.
Trên thực
tế, phương
pháp này
khá đơn
giản. Lỗi
"thiết bị
đầu cuối"
của một
nhánh của
tìm kiếm
luôn xảy ra
vì tên miền
của biến
trở nên
trống rỗng;
biến đó có
một bộ
xung đột
tiêu chuẩn.
Trong ví dụ
của chúng
tôi, SA
220 Chương 6. Vấn đề về sự hài lòng ràng buộc

cuộc xung đột được đặt từ SA (trừ Q, tất nhiên) thành bộ xung đột trực tiếp của riêng
nó, đó là {NT, NSW }; bộ xung đột mớilà {WA, NT, NSW }. Đó là, không có giải pháp từ
trở đi, với nhiệm vụ trước đó cho {WA, NT, NSW }. Do đó, chúng tôi quay trở lại NT, gần
đây nhất trong số này. NT hấp thụ {WA, NT, NSW } − {NT } vào bộ xung đột trực tiếp của
riêng mình {WA},cho {WA, NSW } (như đã nêu trong đoạn trước). Bây giờ thuật toán
quay trở lại NSW, như chúng ta hy vọng. Để tóm tắt: hãy để Xj là biến hiện tại, và để conf
(Xj) được thiết lập xung đột của nó. Nếu mọi giá trị có thể cho Xj thất bại, hãy quay lại biến
Xi gần đây nhất trong conf (Xj) và đặt
conf (Xi)← conf (Xi) ∪ conf (Xj ) − {Xi}.
Khi chúng ta đạt được mâu thuẫn, backjumping có thể cho chúng ta biết bao xa để sao
lưu, vì vậy chúng ta không lãng phí thời gian thay đổi các biến sẽ không khắc phục được
HỌC HẠN CHẾ vấn đề. Nhưng chúng tôi cũng muốn tránh gặp phải vấn đề tương tự một lần nữa. Khi tìm
kiếm đi đến mâu thuẫn, chúng ta biết rằng một số tập hợp con của tập hợp xung đột chịu
KHÔNG TỐT
trách nhiệm cho vấn đề. Học bắt buộc là ý tưởng tìm một tập hợp các biến tối thiểu từ
tập xung đột gây ra vấn đề. Tập hợp các biến này, cùng với các giá trị tương ứng của
chúng, được gọi là không tốt. Sau đó, chúng tôi ghi lại những điều không tốt, bằng cách
thêm một ràng buộc mới vào CSP hoặc bằng cách giữ một bộ nhớ cache riêng biệt của
hàng hóa không có hàng hóa.
Ví dụ, hãy xem xét trạng thái {WA = đỏ, NT = xanh lá cây, Q = xanh dương} ở hàng
dưới cùng của Hình 6.6. Kiểm tra chuyển tiếp có thể cho chúng tôi biết trạng thái này là
không tốt vì không có nhiệm vụ hợp lệ cho SA. Trong trường hợp cụ thể này, ghi lại
những điều không tốt sẽ không giúp ích gì, bởi vì một khi chúng ta cắt tỉa nhánh này khỏi
cây tìm kiếm, chúng ta sẽ không bao giờ gặp phải sự kết hợp này nữa. Nhưng giả sử rằng
cây tìm kiếm trong Hình 6.6 thực sự là một phần của một cây tìm kiếm lớn hơn bắt đầu
bằng cách gán giá trị đầu tiên cho V và T . Sau đó, sẽ rất đáng để ghi lại {WA = đỏ , NT =
xanh lá cây, Q = xanh dương} là không tốt vì chúng ta sẽ gặp lại cùng một vấn đề cho mỗi
tập hợp các bài tập có thể cho V và T .
Không có hàng hóa có thể được sử dụng hiệu quả bằng cách kiểm tra phía trước
hoặc bằng cách backjumping. Học tập hạn chế là một trong những kỹ thuật quan trọng
nhất được sử dụng bởi các bộ giải CSP hiện đại để đạt được hiệu quả trên các vấn đề
phức tạp.

TAIOCAL S4 LCHO CSPS

Các thuật toán tìm kiếm cục bộ (xem Phần 4.1) hóa ra có hiệu quả trong việc giải quyết nhiều
CSP. Họ sử dụng một công thức trạng thái hoàn chỉnh: trạng thái ban đầu gán một giá trị cho
mỗi biến và tìm kiếm thay đổi giá trị của một biến tại một thời điểm. Ví dụ: trong vấn đề 8 nữ
hoàng (xem Hình 4.3), trạng thái ban đầu có thể là cấu hình ngẫu nhiên của 8 nữ hoàng trong
8 cột và mỗi bước di chuyển một nữ hoàng duy nhất đến một vị trí mới trong cột của nó.
Thông thường, dự đoán ban đầu vi phạm một số ràng buộc. Điểm của tìm kiếm địa phương là
2
để loại bỏ các ràng buộc vi phạm.
Khi chọn một giá trị mới cho một biến, heuristic rõ ràng nhất là chọn giá trị
MIN-CONFLICTS dẫn đến số lượng xung đột tối thiểu với các biến khác - các xung đột tối thiểu
Tìm kiếm cục bộ có thể dễ dàng được mở rộng đến các vấn đề tối ưu hóa hạn chế (COPs). Trong trường hợp
đó, tất cả các kỹ thuật leo đồi và ủ mô phỏng có thể được áp dụng để tối ưu hóa chức năng khách quan.
Phần 6.4. Tìm kiếm địa phương cho CSP 221

hàm MIN-CONFLICTS(csp, max steps) trả về giải pháp hoặc đầu vào thất
bại: csp,vấn đề sự hài lòng ràng buộc
các bước tốiđa, số bước được phép trước khi từ bỏ
← hiện tại một nhiệm vụ hoàn chỉnh ban đầu cho CSP
cho i = 1 đến tối đa các bước làm
nếu hiện tại là một giải pháp cho csp sau đó trả lại hiện tại
var ← một biến mâu thuẫn được chọn ngẫu nhiên từ csp. V ARIABLES
giá trị ← giá trị v cho VAR giảm thiểu C ONFLICTS(var, v, current, csp)
đặt var = giá trị trong hiện tại
lỗi trả về

Hình 6.8 Thuậttoán MIN-CONFLICTS để giải quyết CSP bằng tìm kiếm địa phương. Trạng thái
ban đầu có thể được chọn ngẫu nhiên hoặc bởi một quá trình phân công tham lam chọn
giá trị xung đột tối thiểu cho mỗi biến lần lượt. Hàm C ONFLICTS đếm số lượng ràng buộc bị
vi phạm bởi một giá trị cụ thể, với phần còn lại của nhiệm vụ hiện tại.

2 3

2
3

2 2
3 3

1 2
2 3
0

Hình 6.9 Một giải pháp hai bước sử dụng xung đột tối thiểu cho một vấn đề 8 nữ hoàng. Ở
mỗi giai đoạn, một nữ hoàng được chọn để chuyển đổi trong cột của nó. Số lượng xung
đột (trong trường hợp này là số lượng nữ hoàng tấn công) được hiển thị trong mỗi ô
vuông. Thuật toán di chuyển nữ hoàng đến hình vuông min-conflicts, phá vỡ mối quan hệ
ngẫu nhiên.

Heuristic. Thuật toán được hiển thị trong Hình 6.8 và ứng dụng của nó cho một vấn đề 8
nữ hoàng được sơ đồ trong Hình 6.9.
Xung đột min có hiệu quả đáng ngạc nhiên đối với nhiều CSP. Đáng ngạc nhiên, về
vấn đề n-queens, nếu bạn không tính vị trí ban đầu của nữ hoàng, thời gian chạy của các
xung đột phút gần như độc lập với kích thước vấn đề. Nó giải quyết ngay cả vấn đề triệunữ
hoàng trong một độtuổi aver 50 bước (sau khi phân công ban đầu). Quan sát đáng chú ý
này là kích thích dẫn đến rất nhiều nghiên cứu trong những năm 1990 về tìm kiếm địa
phương và sự khác biệt giữa các vấn đề dễ dàng và khó khăn, mà chúng tôi đưa ra trong
Chương 7. Nói một cách đại khái, n-queens rất dễ dàng cho tìm kiếm địa phương vì các
giải pháp được phân phối dày đặc khắp không gian nhà nước. Min-conflicts cũng làm việc
tốt cho các vấn đề khó khăn. Ví dụ, nó đã được sử dụng để lên lịch quan sát cho Kính viễn
vọng Không gian Hubble, giảm thời gian lên lịch một tuần quan sát từ ba tuần (!) xuống
còn khoảng 10 phút.
222 Chương 6. Vấn đề về sự hài lòng ràng buộc

Tất cả các kỹ thuật tìm kiếm địa phương từ Mục 4.1 là ứng cử viên cho ứng dụng cho
CSP, và một số trong số đó đã chứng minh đặc biệt hiệu quả. Cảnh quan của một CSP dưới
heuristic min-conflicts thường có một loạt các cao nguyên. Có thể có hàng triệu dấu hiệu
biến đổi chỉ cách một giải pháp. Tìm kiếm cao nguyên - cho phép các hướng đi sang một
trạng thái khác có cùng điểm số - có thể giúp tìm kiếm địa phương tìm đường ra khỏi cao
nguyên này. Việc lang thang trên cao nguyên này có thể được hướng dẫn với tìm kiếm
tabu:giữ một danh sách nhỏ các tiểu bang được truy cập gần đây và cấm thuật toán quay
TRỌNG SỐ
trở lại các tiểu bang đó. Ủ mô phỏng cũng có thể được sử dụng để thoát khỏi cao nguyên.
RÀNG BUỘC
Một kỹ thuật khác, được gọi là trọng số ràng buộc,có thể giúp tập trung tìm kiếm vào
các ràng buộc quan trọng. Mỗi ràng buộc được đưa ra một trọng lượng số, Wi,ban đầu là tất
cả1. Ở mỗi bước tìm kiếm, thuật toán chọn một cặp biến / giá trị để thay đổi sẽ dẫn đến tổng
trọng lượng thấp nhất trong tất cả các ràng buộc bị vi phạm. Trọng lượng sau đó được điều
chỉnh bằng cách tăng trọng lượng của mỗi ràng buộc bị vi phạm bởi nhiệm vụ hiện tại. Điều
này có hai lợi ích: nó thêm địa hình cho plateaux, đảm bảo rằng có thể cải thiện từ trạng thái
hiện tại, và theo thời gian, nó cũng làm tăng thêm trọng lượng cho những hạn chế đang tỏ ra
khó giải quyết.
Một ưu điểm khác của tìm kiếm địa phương là nó có thể được sử dụng trong cài đặt
trực tuyến khi vấn đề thay đổi. Điều này đặc biệt quan trọng trong các vấn đề về lịch
trình. Lịch trình của hãng hàng không một tuần có thể liên quan đến hàng ngàn chuyến
bay và hàng chục ngàn nhiệm vụ nhân sự, nhưng thời tiết xấu tại một sân bay có thể
khiến lịch trình không khả thi. Chúng tôi muốn sửa chữa lịch trình với số lượng thay đổi
tối thiểu. Điều này có thể dễ dàng thực hiện với một thuật toán tìm kiếm địa phương bắt
đầu từ lịch trình hiện tại. Một tìm kiếm backtracking với tập hợp các ràng buộc mới
thường đòi hỏi nhiều thời gian hơn và có thể tìm thấy một giải pháp với nhiều thay đổi so
với lịch trình hiện tại.

5 TANH TA BỊ TRUCTURE CỦA PROBLEMS

Trong phần này, chúng tôi xem xét các cách mà cấu trúc của vấn đề, như được thể hiện bằng
biểu đồ ràng buộc, có thể được sử dụng để tìm giải pháp một cách nhanh chóng. Hầu hết các
phương pháp tiếp cận ở đây cũng áp dụng cho các vấn đề khác ngoài CSP, chẳng hạn như lý
luận xác suất. Rốt cuộc, cách duy nhất chúng ta có thể hy vọng đối phó với thế giới thực là
phân hủy nó thành nhiều phân nhóm phụ. Nhìn lại biểu đồ ràng buộc đối với Úc (Hình 6.1(b),
được lặp lại là Hình 6.12 (a)), một thực tế nổi bật: Tasmania không được kết nối với đại lục.
Theo
CÁC SUBPROBLEMS
trực giác, rõ ràng là tô màu Tasmania và tô màu cho đất liền là các hợp đồng phụ độc lập
ĐỘC LẬP
— bất kỳ giải pháp nào chođại lục kết hợp với bất kỳ giải pháp nào cho Tasmania đều mang lại
THÀNH PHẦN giải pháp cho toàn bộ bản đồ. Tính độc lập có thể được xác định đơn giản bằng cách tìm các
ĐƯỢC KẾT NỐI
thành phần được kết nối của biểu đồ ràng buộc. Mỗi thành phần tương ứng với một CSP
subproblem i. Nếu nhiệm vụ Si là một giải pháp của CSP i,thì i Si là một giải pháp của i CSP i.
Tại sao điều này lại quan trọng? Hãy xem xét những điều sau đây: giả sử mỗi CSP i có các biến
c từ tổng số biến n, trong đó c là một hằng số. Sau đó, có các phân nhóm n / c, mỗi trong số đó
mất c
nhiều nhất d công việc để giải quyết,
Một nhà vẽ bản đồ cẩn thận hoặc người Tasmania yêu nước có thể phản đối rằng Tasmania không nên được
tô màu giống như người hàng xóm đại lục gần nhất, để tránh ấn tượng rằng nó có thể là một phần của tiểu
bang đó.
Phần 6.5. Cấu trúc của các vấn đề 223

trong đó d là kích thước của tên miền. Do đó, tổng công việc là O(dcn/c),tuyến tính trong n;
n)
không có sự phân hủy, tổng công việc là O(d , theo cấp sốnhân trong n. Hãy làm cho điều này
cụ thể hơn: chia một CSP Boolean với 80 biến thành bốn phân nhóm làm giảm thời gian giải
pháp trường hợp xấu nhất từ tuổi thọ của vũ trụ xuống dưới một giây.
Các phân phụ hoàn toàn độc lập là ngon, sau đó, nhưng hiếm. May mắn thay, một số
cấu trúc đồ thị khác cũng dễ giải quyết. Ví dụ, biểu đồ ràng buộc là một cái cây khi bất kỳ
hai biến nào được kết nối bởi chỉ một đường dẫn. Chúng tôi chỉ ra rằng bất kỳ CSP có cấu trúc
4
cây nào cũng có thể được giải quyết theo tuyến tính kịp thời về số lượng biến. Chìa khóa
ARC ĐẠO DIỄN là một khái niệm mới về tính nhất quán, được gọi là tính nhất quán vòng cung định hướng
TÍNH NHẤT QUÁN
hoặc DAC. CSP được định nghĩa là được định hướng theo thứ tự các biến X1,X2, . . . ,Xn nếu
và chỉ khi mỗi Xi phù hợp với mỗi Xj cho j > i.
Để giải quyết CSP có cấu trúc cây, trước tiên hãy chọn bất kỳ biến nào là gốc của cây
và chọn thứ tự các biến sao cho mỗi biến xuất hiện sau khi cha mẹ của nó trong cây. Một
LOẠI TÔ PÔ
trật tự như vậy được gọi là một loại tô pô. Hình 6.10(a) hiển thị một cây mẫu và (b) cho
thấy một thứ tự có thể. Bất kỳ cây nào có nút n đều có n −1 vòng cung, vì vậy chúng ta có
thể làm cho biểu đồ này hướng hồ quang nhất quán trong các bước O(n), mỗi cây phải so
2)
sánh với các giá trị miền có thể cho hai biến, trong tổng thời gian O (thứ . Một khi chúng ta
có một biểu đồ nhất quán hồ quang định hướng, chúng ta chỉ có thể diễu hành xuống
danh sách các biến và chọn bất kỳ giá trị nào còn lại. Vì mỗi liên kết từ cha mẹ đến con
của nó là nhất quán, chúng tôi biết rằng đối với bất kỳ giá trị nào chúng tôi chọn cho cha
mẹ, sẽ có một giá trị hợp lệ còn lại để lựa chọn cho đứa trẻ. Điều đó có nghĩa là chúng ta
sẽ không phải quay trở lại; chúng ta có thể di chuyển tuyến tính thông qua các biến. Thuật
toán hoàn chỉnh được hiển thị trong Hình 6.11.

Một E
B D A B C D E F
C F
(a) (b)

Hình 6.10 (a) Biểu đồ ràng buộc của CSP có cấu trúc cây. (b) Một thứ tự tuyến tính của các
biến phù hợp với cây với A là gốc. Điều này được gọi là một loại tô pô của các biến.

Bây giờ chúng ta có một thuật toán hiệu quả cho cây, chúng ta có thể xem xét liệu
các biểu đồ ràng buộc chung hơn có thể được giảm xuống cây bằng cách nào đó hay không.
Có hai cách chính để làm điều này, một dựa trên việc loại bỏ các nút và một dựa trên các
nút thu gọn lại với nhau.
Cách tiếp cận đầu tiên liên quan đến việc gán giá trị cho một số biến để các biến còn
lại tạo thành một cây. Hãy xem xét biểu đồ ràng buộc cho Úc, được hiển thị lại trong Fig-
ure 6.12(a). Nếu chúng ta có thể xóa Nam Úc, biểu đồ sẽ trở thành một cái cây, như trong
(b). May mắn thay, chúng ta có thể làm điều này (trong biểu đồ, không phải lục địa) bằng
cách cố định giá trị cho SA và
Đáng buồn thay, rất ít khu vực trên thế giới có bản đồ cấu trúc cây, mặc dù Sulawesi đến gần.
224 Chương 6. Vấn đề về sự hài lòng ràng buộc

chức năng TREE-CSP-SOLVER (csp) trả về dung dịch, hoặc đầu


vàolỗi: csp,CSP với các thành phần X, D, C
n ← số biến trong X
nhiệm vụ ← một nhiệm vụ trống
root ← bất kỳ biến nào trong X
← T OPOLOGICALSORT(X, rễ)
cho j = n xuống còn 2 do
MAKE-ARC-CONSISTENT(PARENT(Xj), Xj)
nếu nó không thể được thực hiện nhất quán thì trả lại thất bại
cho i = 1 đến n do
nhiệm vụ [Xi] ← bất kỳ giá trị nhất quán nào từ Di
nếu không có giá trị nhất quán thì trả về thất bại
nhiệm vụ trả về

Hình 6.11 Thuật toánOLVER TREE-CSP-Sđể giải các CSP có cấu trúc cây. Nếu CSP có giải
pháp, chúng tôi sẽ tìm thấy nó trong thời gian tuyến tính; Nếu không, chúng ta sẽ phát
hiện ra một mâu thuẫn.

NT NT
Q Q
WA W
A

SA NSW NSW

V V

T T

(a) (b)

Hình 6.12 (a) Biểu đồ ràng buộc ban đầu từ Hình 6.1. (b) Biểu đồ ràng buộc sau khi loại bỏ
SA.

xóa khỏi tên miền của các biến khác bất kỳ giá trị nào không phù hợp với giá trị được chọn
cho SA.
Bây giờ, bất kỳ giải pháp nào cho CSP sau SA và các ràng buộc của nó được loại bỏ
sẽ được liên kết với giá trị được chọn cho SA. (Điều này hoạt động cho các CSP nhị phân; tình
hình phức tạp hơn với các ràng buộc thứ tự cao hơn.) Do đó, chúng ta có thể giải quyết
cây còn lại bằng thuật toán được đưa ra ở trên và do đó giải quyết toàn bộ vấn đề. Tất
nhiên, trong trường hợp chung (trái ngược với tô màu bản đồ), giá trị được chọn cho SA
có thể là sai, vì vậy chúng ta sẽ cần phải thử từng giá trị có thể. Thuật toán chung như sau:
Phần 6.5. Cấu trúc của các vấn đề 225

Chọn một tập hợp con S của các biến của CSP sao cho đồ thị ràng buộc trở thành một
BỘ CẮT CHU KỲ cây sau khi loại bỏ S. S được gọi là một cutset chukỳ.
Đối với mỗi bài tập có thể cho các biến trong S đáp ứng tất cả các ràng buộc trên S,
loại bỏ khỏi các tên miền của các biến còn lại bất kỳ giá trị nào không liên quan
đến lều với gán cho Svà
Nếu CSP còn lại có giải pháp, trả lại cùng với nhiệm vụ cho S.
· 2)
Nếu cutset chu kỳ có kích thước c,thì tổng thời gian chạy là O(d (n − c)d : chúng ta phảithử
c
từng kết hợp d của các giá trị cho các biến trong S, và đối với mỗi kếthợp, chúng ta phải giải
quyết một vấn đề cây có kích thước n − c. Nếu đồ thị là "gần một cái cây", thì c sẽ nhỏ và tiết
kiệm trên backtracking thẳng sẽ rất lớn. Tuy nhiên, trong trường hợp xấu nhất, c có thể lớn
ĐIỀU HÒA CUTSET như (n − 2). Tìm thấy cutset chu kỳ nhỏ nhất là NP-hard, nhưng một số thuật toán xấp xỉ hiệu
quả được biết đến. Cách tiếp cận thuật toán tổng thể được gọi là điều kiện cutset; nó xuất
CÂY
PHÂN HỦY hiện trở lại trong Chương 14, nơi nó được sử dụng để lý luận về xác suất.
Cách tiếp cận thứ hai dựa trên việc xây dựng một sự phân hủy cây của biểu đồ ràng
buộc thành một tập hợp các phân nhóm được kết nối. Mỗi subproblem được giải quyết độc
lập, và các giải pháp kết quả sau đó được kết hợp. Giống như hầu hết các thuật toán phân
chia và chinh phục, điều này hoạt động tốt nếu không có subproblem quá lớn. Hình 6.13
cho thấy sự phân hủy cây của vấn đề tô màu bản đồ thành năm phân khúc phụ. Phân hủy
cây phải đáp ứng ba yêu cầu sau:
Mỗi biến trong vấn đề ban đầu xuất hiện trong ít nhất một trong các subproblems.
Nếu hai biến được kết nối bởi một ràng buộc trong vấn đề ban đầu, chúng phải xuất
hiện cùng nhau (cùng với ràng buộc) trong ít nhất một trong các cộng tác con.
Nếu một biến xuất hiện trong hai phân phụ trong cây, nó phải xuất hiện trong mọi
phân nhóm dọc theo đường nối các hợp đồng phụ đó.
Hai điều kiện đầu tiên đảm bảo rằng tất cả các biến và ràng buộc được thể hiện trong quá
trình phân hủy. Điều kiện thứ ba có vẻ khá kỹ thuật, nhưng chỉ đơn giản phản ánh sự ràng
buộc rằng bất kỳ biến nào nhất định phải có cùng giá trị trong mọi phân nhóm mà nó xuất
hiện; các liên kết tham gia các phân nhóm trong cây thực thi ràng buộc này. Ví dụ: SA
xuất hiện trong cả bốn phân nhóm được kết nối trong Hình 6.13. Bạn có thể xác minh từ
Hình 6.12 rằng sự phân hủy này có ý nghĩa.
Chúng tôi giải quyết từng phân nhóm một cách độc lập; Nếu bất kỳ ai không có giải
pháp, chúng tôi biết vấn đề en-tire không có giải pháp. Nếu chúng ta có thể giải quyết tất cả
các vấn đề phụ, thì chúng ta cố gắng xây dựng một giải pháp toàn cầu như sau. Đầu tiên,
chúng tôi xem mỗi subproblem là một "siêu biến" có do-main là tập hợp tất cả các giải pháp
cho subproblem. Ví dụ, subproblem ngoài cùng bên trái trong Hình 6.13 là một vấn đề tô màu
bản đồ với ba biến và do đó có sáu giải pháp—một là {WA = đỏ, SA = xanh dương, NT = xanh lá
cây}. Sau đó, chúng tôi giải quyết các ràng buộc kết nối các subproblems, sử dụng thuật toán
hiệu quả cho cây được đưa ra trước đó. Các ràng buộc giữa các phân nhóm chỉ đơn giản nhấn
mạnh rằng các giải pháp phụ đồng ý về các biến chia sẻ của chúng. Ví dụ, với giải pháp {WA =
CHIỀU RỘNG CÂY
đỏ , SA = xanh dương, NT = xanh lá cây} cho phân nhóm đầu tiên, giải pháp nhất quán duy
nhất cho các hợp đồng phụ tiếp theo là {SA = xanh dương, NT = xanh lá cây, Q = đỏ }.
Mộ
t biểu đồ
ràng
buộc
nhất
định
thừa
nhận
nhiều sự
phân hủy
cây;
trong
việc chọn
một
decompo
-sition,
mục đích
là để làm
cho các
subprobl
ems càng
nhỏ càng
tốt.
Chiều
rộng cây
của cây
226 Chương 6. Vấn đề về sự hài lòng ràng buộc

NT
NT
Q

WA
SA
SA

SA NSW

SA NSW
T
V

Hình 6.13 Một sự phân hủy cây của biểu đồ ràng buộc trong Hình 6.12(a).

sự phân hủy của một biểu đồ nhỏ hơn một kích thước của phân nhóm lớn nhất; chiều rộng
cây của bản thân đồ thị được định nghĩa là chiều rộng cây tối thiểu trong số tất cả các phân
hủy cây của nó. Nếu một biểu đồ có chiều rộng cây w và chúng ta được phân hủy cây tương
w +1).
ứng, thì vấn đề có thể được giải quyết trong thời gian O (nd Do đó, CSP với biểu đồ ràng
buộc về chiều rộng cây giới hạn có thể giải quyết được trong thời gian đa thức. Thật không
may, việc tìm thấy sự phân hủy với chiều rộng cây tối thiểu là NP-hard, nhưng có những
phương pháp heuristic hoạt động tốt trong thực tế.
Cho đến nay, chúng tôi đã xem xét cấu trúc của biểu đồ ràng buộc. Cũng có thể có cấu
trúc quan trọng trong các giá trị của các biến. Hãy xem xét vấn đề tô màu bản đồ với màu n.
Đối với mỗi giải pháp nhất quán, thực sự có một tập hợp n! các giải pháp được hình thành
GIÁ TRỊ ĐỐI XỨNG ĐỐI
bằng cách hoán vị tên màu. Ví dụ, trên bản đồ Úc, chúng ta biết rằng WA, NT và SA đều phải
XỨNG-BREAKING RÀNG có màu sắc khác nhau, nhưng có 3! = 6 cách để gán ba màu cho ba khu vực này. Điều này
BUỘC
được gọi là đối xứng giá trị. Chúng tôi muốn giảm không gian tìm kiếm bằng một yếu tố n!
bằng cách phá vỡ sự đối xứng. Chúng tôi làm điều này bằng cách giới thiệu một ràng buộc phá
vỡ đối xứng. Ví dụ, chúng tôi có thể áp đặt một ràng buộc đặt hàng tùy ý, NT < SA < WA,yêu
cầu ba giá trị phải theo thứ tự bảng chữ cái. Hạn chế này đảm bảo rằng chỉ có một trong số n!
giải pháp có thể: {NT = xanh dương, SA = xanh lá cây, WA = đỏ }.
Đối với tô màu bản đồ, thật dễ dàng để tìm thấy một ràng buộc loại bỏ sự đối xứng
và nói chung có thể tìm thấy các ràng buộc loại bỏ tất cả trừ một giải pháp đối xứng trong
thời gian đa thức, nhưng rất khó để loại bỏ tất cả sự đối xứng giữa các tập hợp giá trị
trung gian trong quá trình tìm kiếm. Trong thực tế, phá vỡ đối xứng giá trị đã được chứng
minh là quan trọng và hiệu quả trên một loạt các vấn đề.
Phần 6.6. Tóm tắt 227

6 SUMMARY

Các vấn đề về sự hài lòng ràng buộc (CSP) đại diện cho một trạng thái với một tập
hợp các cặp biến / giá trị và đại diện cho các điều kiện cho một giải pháp bằng một
tập hợp các ràng buộc trên các biến. Nhiều vấn đề quan trọng trong thế giới thực có
thể được mô tả như CSP.
Một số kỹ thuật suy luận sử dụng các ràng buộc để suy ra các cặp biến / giá trị nào là
nhất quán và cái nào không. Chúng bao gồm nút, vòng cung, đường dẫn và k-nhất quán.
Tìm kiếm backtracking, một hình thức tìm kiếm chiều sâu đầu tiên, thường được sử
dụng để giải quyết CSP. Suy luận có thể được đan xen với tìm kiếm.
Các giá trị và heuristics mức độ tối thiểu còn lại là meth-ods độc lập với tên miền để
quyết định biến nào sẽ chọn tiếp theo trong tìm kiếm backtracking. Heuristic ít hạn chế
nhất giúp quyết định giá trị nào nên thử đầu tiên cho một biến nhất định. Backtracking xảy
ra khi không có chuyển nhượng pháp lý có thể được tìm thấy cho một biến. Xung đột
hướng ngược lại trực tiếp đến nguồn gốc của vấn đề.
Tìm kiếm địa phương bằng cách sử dụng heuristic min-conflicts cũng đã được áp dụng
cho các vấn đề phe satis hạn chế với thành công lớn.
Sự phức tạp của việc giải quyết một CSP có liên quan chặt với cấu trúc của biểu đồ
ràng buộc của nó. Các vấn đề có cấu trúc cây có thể được giải quyết trong thời gian
tuyến tính. Điều hòa cutset có thể làm giảm một CSP chung thành một cấu trúc cây
và khá hiệu quả nếu một cutset nhỏ có thể được tìm thấy. Kỹ thuật phân hủy cây biến
CSP thành một cây phụ và có hiệu quả nếu chiều rộng cây của biểu đồ ràng buộc nhỏ.

BIBLIOGRAPHICAL VÀ HISTORICAL NOTES

Công việc sớm nhất liên quan đến sự hài lòng hạn chế xử lý phần lớn các ràng buộc về số
lượng. Các ràng buộc phương trình với các tên miền số nguyên đã được nhà toán học Ấn Độ
PHƯƠNG TRÌNH
DIOPHANTINE Brah-magupta nghiên cứu vào thế kỷ thứ bảy; chúng thường được gọi là phương trình
Diophantine,theo tên của nhà toán học Hy Lạp Diophantus (khoảng 200-284), người thực sự
coi là lĩnh vực của ra-tionals tích cực. Các phương pháp có hệ thống để giải các phương trình
tuyến tính bằng cách loại bỏ biến đã được Gauss nghiên cứu (1829); Giải pháp của các ràng
buộc bất bình đẳng tuyến tính quay trở lại Fourier (1827).
TÔ MÀU ĐỒ THỊ
Các vấn đề về sự hài lòng ràng buộc miền hữu hạn cũng có một lịch sử lâu dài. Ví dụ, tô
màu đồ thị (trong đó tô màu bản đồ là một trường hợp đặc biệt) là một vấn đề cũ trong toán
học. Phỏng đoán bốn màu (rằng mỗi đồ thị phẳng có thể được tô màu với bốn hoặc ít màu)
lần đầu tiên được thực hiện bởi Francis Guthrie, một sinh viên của De Morgan, vào năm 1852.
Nó chống lại giải pháp - mặc dù một số tuyên bố được xuất bản ngược lại - cho đến khi một
bằng chứng được đưa ra bởi Appel và Haken (1977) (xem cuốn sách Four Colors Đủ (Wilson,
2004)). Những người theo chủ nghĩa thuần túy đã thất vọng rằng một phần của bằng chứng
dựa vào máy tính, vì vậy Georges Gonthier (2008), sử dụng chứng minh định lý COQ, đã đưa ra
một bằng
chứng
chính thức
rằng bằng
chứng của
Appel và
Haken là
chính xác.
Các
lớp cụ thể
của các
vấn đề về
sự hài
lòng ràng
buộc xảy
ra trong
suốt lịch
sử khoa
học máy
tính. Một
trong
những ví
dụ ban
đầu có
ảnh
hưởng
nhất là
SKETCHPAD
sys-
228 Chương 6. Vấn đề về sự hài lòng ràng buộc

tem (Sutherland, 1963), giải quyết các ràng buộc hình học trong sơ đồ và là người chạy trước
của các chương trình vẽ hiện đại và các công cụ CAD. Việc xác định CSP là một lớp chung là do
Ugo Montanari (1974). Việc giảm các CSP bậc cao hơn xuống các CSP hoàn toàn nhị phân với
các biến phụ trợ (xem Bài tập 6.6) ban đầu là do nhà logic học thế kỷ 19 Charles Sanders
Peirce. Nó được đưa vào văn học CSP bởi Dechter (1990b) và được bacchus và van Beek
(1998) xây dựng. CSP có sở thích giữa các giải pháp được nghiên cứu rộng rãi trong các tài liệu
tối ưu hóa; xem Bistarelli et al. (1997) để khái quát hóa khung CSP để cho phép ưu tiên. Thuật
toán loại bỏ xô (Dechter, 1999) cũng có thể được áp dụng cho các vấn đề tối ưu hóa.
Các phương pháp truyền bá hạn chế đã được phổ biến bởi thành công của Waltz
(1975) về các vấn đề nhãn dòng đa hedral cho thị giác máy tính. Waltz cho thấy rằng,
trong nhiều vấn đề, tuyên truyền hoàn toàn loại bỏ sự cần thiết phải quay trở lại.
Montanari (1974) đã giới thiệu khái niệm về mạng lưới ràng buộc và truyền bá bằng sự
nhất quán của con đường. Alan Mackworth (1977) đã đề xuất thuật toán AC-3 để thực thi
tính nhất quán của hồ quang cũng như ý tưởng chung về việc kết hợp backtracking với
một số mức độ thực thi nhất quán. AC-4, một thuật toán nhất quán hồ quang hiệu quả
hơn, được phát triển bởi Mohr và Henderson (1986). Chẳng mấy chốc bài báo của
Mackworth xuất hiện, các nhà nghiên cứu bắt đầu trải nghiệm với sự đánh đổi giữa chi
phí thực thi nhất quán và lợi ích về giảm tìm kiếm. Haralick và Elliot (1980) ủng hộ thuật
toán kiểm tra chuyển tiếp tối thiểu được mô tả bởi McGregor (1979), trong khi Gaschnig
(1979) đề nghị kiểm tra tính nhất quán đầy đủ sau mỗi nhiệm vụ đa dạng - một thuật toán
sau này được gọi là MAC bởi Sabin và Freuder (1994). Bài báo thứ hai cung cấp bằng
chứng hơi thuyết phục rằng, trên các CSP khó hơn, kiểm tra tính nhất quán hồ quang đầy
đủ được đền đáp. Freuder (1978, 1982) đã điều tra khái niệm k-nhất quán và mối quan hệ
của nó với sự phức tạp của việc giải quyết CSP. Apt (1999) mô tả một khuôn khổ thuật
toán chung trong đó các thuật toán truyền bá tính nhất quán có thể được phân tích, và
Bessi'ere (2006) trình bày một cuộc khảo sát hiện tại.
Các phương pháp đặc biệt để xử lý các ràng buộc trật tự cao hơn hoặc toàn cầu
được phát triển đầu tiên trong bối cảnh lập trình logic ràng buộc. Marriott và Stuckey
(1998) cung cấp phạm vi nghiên cứu tuyệt vời trong lĩnh vực này. Sự ràng buộc alldiff đã
được nghiên cứu bởi Regin (1994), Stergiou và Walsh (1999), và van Hoeve (2001). Ràng
buộc bounds được đánh giá incorpo vào lập trình logic ràng buộc bởi Van Hentenryck et
al. (1998) Một cuộc khảo sát về những hạn chế toàn cầu được cung cấp bởi van Hoeve và
Katriel (2006).
Sudoku đã trở thành CSP được biết đến rộng rãi nhất và được mô tả như vậy bởi
Simonis (2005). Agerbeck và Hansen (2008) mô tả một số chiến lược và chỉ ra rằng Sudoku
2 2
trên bảng n × n nằm trong lớp các vấn đề np-cứng. Reeson et al. (2007) hiển thị một bộ
giải tương tác dựa trên các kỹ thuật CSP.
Ý tưởng tìm kiếm quay trở lại Golomb và Baumert (1965), và ứng dụng của nó để
hạn chế sự hài lòng là do Bitner và Reingold (1975), mặc dù họ theo dõi thuật toán cơ bản
trở lại thế kỷ 19. Bitner và Reingold cũng giới thiệu heuristic MRV, mà họ gọi là heuristic
biến đổi bị hạn chế nhất. Brelaz (1979) đã sử dụng mức độ heuristic như một tiebreaker
sau khi áp dụng mrv heuristic. Thuật toán kết quả, mặc dù đơn giản của nó, vẫn là phương
pháp tốt nhất để tô màu kđồ thịtùy ý. Haralick và Elliot (1980) đã đề xuất một heuristic ít
hạn chế nhất.
Ghi chú thư mục và lịch sử 229

Phương pháp backjumping cơ bản là do John Gaschnig (1977, 1979). Kondrak và van
Beek (1997) cho thấy thuật toán này về cơ bản được kết hợp bằng cách kiểm tra phía
trước. Backjumping do xung đột chỉ đạo được nghĩ ra bởi Prosser (1993). Hình thức quay
BACKTRACKING DO
trở lại thông minh tổng quát và erful nhất thực sự được phát triển rất sớm bởi Stallman và
PHỤ THUỘC ĐỊNH
HƯỚNG
Sussman (1977). Kỹ thuật quay trở lại do sự phụ thuộc của họ đã dẫn đến sự phát triển của
các hệ thống bảo trì sự thật (Doyle, 1979), mà chúng ta thảo luận trong Mục 12.6.2. Mối
liên hệ giữa hai khu vực được phân tích bởi de Kleer (1989).
Công việc của Stallman và Sussman cũng giới thiệu ý tưởng học tập ràng buộc, trong
đó một phần kết quả thu được bằng tìm kiếm có thể được lưu và sử dụng lại sau đó trong
BACKMARKING
tìmkiếm. Ý tưởng này được chính thức hóa dechter (1990a). Backmarking (Gaschnig,
1979) là một phương pháp đặc biệt sim-ple, trong đó các bài tập ghép nối nhất quán và
không nhất quán được lưu và sử dụng để tránh kiểm tra lại các ràng buộc. Backmarking
QUAY NGƯỢC
có thể được kết hợp với nhảy lùi hướng xung đột; Kondrak và van Beek (1997) trình bày
ĐỘNG
một thuật toán lai có thể phân loại một trong hai phương pháp được thực hiện riêng biệt.
Phương pháp quay trở lại động (Ginsberg, 1993) tái sử dụng các nhiệm vụ một phần thành
công từ các tập con sau này của các biến khi quay trở lại một lựa chọn trước đó không
làm mất hiệu lực thành công sau này.
Các nghiên cứu thực nghiệm về một số phương pháp backtracking ngẫu nhiên đã
được thực hiện bởi Gomes và cộng sự. (2000) và Gomes and Selman (2001). Van Beek
(2006) khảo sát.
Tìm kiếm địa phương trong các vấn đề về sự hài lòng hạn chế đã được phổ biến bởi
công việc của Kirk-patrick et al. (1983) về ủ mô phỏng (xem Chương 4), được sử dụng rộng rãi
cho các vấn đề lập kế hoạch. Các cuộc xung đột min-heuristic lần đầu tiên được đề xuất bởi
Gu (1989) và được phát triển độc lập bởi Minton và cộng sự. Sosic và Gu (1994) đã chỉ ra cách
nó có thể được áp dụng để giải quyết vấn đề 3.000.000 nữ hoàng trong vòng chưa đầy một
phút. Thành công đáng kinh ngạc của tìm kiếm địa phương bằng cách sử dụng các xung đột
min về vấn đề n-queensđã dẫn đến việc đánh giá lại bản chất và sự phổ biến của các vấn đề "dễ
dàng" và "khó khăn". Peter Cheeseman và cộng sự. (1991) khám phá những khó khăn của các
CSP được tạo ngẫu nhiên và phát hiện ra rằng hầu như tất cả các vấn đề như vậy đều dễ dàng
hoặc không có giải pháp. Chỉ khi các thông số của trình tạo vấn đề được đặt trong một phạm
vi hẹp nhất định, trong đó khoảng một nửa số vấn đề có thể giải quyết được, chúng ta mới tìm
thấy các trường hợp vấn đề "cứng" không. Chúng tôi thảo luận thêm về hiện tượng này trong
Chương 7. Konolige (1994) cho thấy tìm kiếm địa phương kém hơn so với việc tìm kiếm ngược
lại về các vấn đề với một mức độ cấu trúc địa phương nhất định; điều này dẫn đến công việc
kết hợp tìm kiếm và suy luận địa phương, chẳng hạn như của Pinkas và Dechter (1995). Hoos
và Tsang (2006) khảo sát các kỹ thuật tìm kiếm địa phương.
Công việc liên quan đến cấu trúc và độ phức tạp của CSP bắt nguồn từ Freuder
(1985), người đã chỉ ra rằng tìm kiếm trên cây phù hợp với hồ quang hoạt động mà không
có bất kỳ sự thụt lùi nào. Một kết quả tương tự, với các phần mở rộng cho hypergraphs
tuần hoàn, đã được phát triển trong cộng đồng cơ sở dữ liệu (Beeri et al. , 1983). Bayardo
và Miranker (1994) trình bày một thuật toán cho các CSP có cấu trúc cây chạy theo thời gian
tuyến tính mà không cần xử lý trước.
Kể 1989), dựa trên công trình của Freuder, đã áp dụng một khái niệm liên quan (mà họ gọi là
từ khi chiều rộng gây ra)để hạn chế các vấn đề hài lòng và phát triển phương pháp phân hủy cây
những được phác thảo trong Mục 6.5. Dựa trên công việc này và trên kết quả
bài báo
đó được
xuất
bản, đã
có rất
nhiều
tiến bộ
trong
việc phát
triển các
kết quả
chung
hơn liên
quan
đến sự
phức tạp
của việc
giải
quyết
CSP với
cấu trúc
của biểu
đồ ràng
buộc của
nó. Khái
niệm về
chiều
rộng cây
được
giới
thiệu bởi
các nhà
lý thuyết
đồ thị
Robertso
n và
Seymour
(1986).
Dechter
and
Pearl
(1987,
230 Chương 6. Vấn đề về sự hài lòng ràng buộc
từ lý thuyết cơ sở dữ liệu, Gottlob et al. (1999a, 1999b) đã phát triển một khái niệm, chiều
rộng hypertree,rằng
dựa trên đặc điểm của CSP như một siêu máy tính. Ngoài việc cho thấy rằng bất kỳ
w+1
CSP với hypertree width w có thể được giải quyết kịp thời O (n log n),họ cũng cho
thấy rằng
hypertree chiều rộng subsumes tất cả các biện pháp được xác định trước đây của "chiều
rộng" theo nghĩa là có
là những trường hợp chiều rộng hypertree bị ràng buộc và các biện pháp khác không giới
hạn.
Sự quan tâm đến các phương pháp nhìn lại để quay trở lại đã được nhen nhóm bởi công việc
của Bayardo
và Schrag (1997), có thuật toán RELSAT kết hợp học tập ràng buộc và backjumping
và đã được chứng minh là vượt trội so với nhiều thuật toán khác vào thời điểm đó. Điều
này dẫn đến AND/OR
thuật toán tìm kiếm áp dụng cho cả CSP và lý luận xác suất (Dechter và Ma-
Teescu, 2007). Brown và cộng sự. (1988) giới thiệu ý tưởng phá vỡ đối xứng trong CSP, và
Gent et al. (2006) đưa ra một cuộc khảo sát gần đây.
PHÂN PHỐI
RÀNG BUỘC Lĩnh vực hài lòng ràng buộc phân tán xem xét giải quyết CSP khi có
HÀI LÒNG

bộ sưu tập các tác nhân, mỗi tác nhân điều khiển một tập hợp con của các biến ràng
buộc. Đã có các hội thảo hàng năm về vấn đề này kể từ năm 2000 và bảo hiểm tốt ở
những nơi khác (Collin et al. , 1999; Pearce et al. , 2008; Shoham và Leyton-Brown, 2009).
So sánh các thuật toán CSP chủ yếu là một khoa học thực nghiệm: rất ít kết quả lý thuyết
cho thấy một thuật toán thống trị thuật toán khác trên tất cả các vấn đề; thay vào đó, chúng
ta cần chạy các thí nghiệm để xem thuật toán nào hoạt động tốt hơn trên các trường hợp vấn
đề điển hình. Như Hooker (1995) chỉ ra, chúng ta cần phải cẩn thận để phân biệt giữa thử
nghiệm cạnh tranh - như xảy ra trong các cuộc thi giữa các thuật toán dựa trên thời gian chạy
- và thử nghiệm khoa học, với mục tiêu là xác định các tính chất của một thuật toán xác định
hiệu quả của nó trên một lớp vấn đề.
Các sách giáo khoa gần đây của Apt (2003) và Dechter (2003), và bộ sưu tập của
Rossi et al. (2006) là nguồn lực tuyệt vời để xử lý các ràng buộc. Có một số cuộc khảo sát tốt
trước đó, bao gồm những cuộc khảo sát của Kumar (1992), Dechter and Frost (2002), và
Bartak (2001); và các bài báo bách khoa toàn thư của Dechter (1992) và Mackworth
(1992). Pearson và Jeavons (1997) khảo sát các lớp CSP có thể phân mảnh, bao gồm cả
phương pháp phân hủy cấu trúc và phương pháp dựa trên tính chất của các tên miền
hoặc ràng buộc. Kondrak và van Beek (1997) đưa ra một cuộc khảo sát phân tích về các
thuật toán tìm kiếm backtracking, và Bacchus và van Run (1995) đưa ra một cuộc khảo sát
thực nghiệm hơn. Lập trình constraint được đề cập trong các cuốn sách của Apt (2003) và
Fruhwirth và Abdennadher (2003). Một số ứng dụng thú vị được mô tả trong bộ sưu tập
được chỉnh sửa bởi Freuder và Mackworth (1994). Các bài báo về sự hài lòng ràng buộc
xuất hiện thường xuyên trong Trí tuệ nhân tạo và trong tạp chí chuyên ngành Constraints.
Địa điểm tổ chức hội nghị chính là Hội nghị quốc tế về nguyên tắc và thực hành lập trình
ràng buộc, thường được gọi là CP.
EXERCISES

6.1 Có bao nhiêu giải pháp cho vấn đề tô màu bản đồ trong Hình 6.1? Có bao nhiêu giải
pháp nếu bốn màu được cho phép? Hai màu?
6.2 Hãy xem xét vấn đề đặt hiệp sĩ k trên bàn cờ n × n sao cho không có hai hiệp sĩ nào tấn
2
công lẫn nhau, nơi k được đưa ra và k ≤ n .
Bài tập 231

a. Chọn công thức CSP. Trong công thức của bạn, các biến là gì?
b. Các giá trị có thể có của mỗi biến là gì?
c. Những bộ biến nào bị hạn chế, và làm thế nào?
d. Bây giờ hãy xem xét vấn đề đặt càng nhiều hiệp sĩ càng tốt trên bảng với bất kỳ cuộc tấn
công nào. Giải thích cách giải quyết vấn đề này bằng cách tìm kiếm cục bộ bằng cách
xác định cáchàm ACTIONS và RESULT phù hợp và chức năng khách quan hợp lý.

5
6.3 Hãy xem xét vấn đề xây dựng (không giải quyết) câu đố ô chữ: từ phù hợp vào lưới
hình chữ nhật. Lưới, được đưa ra như một phần của vấn đề, chỉ định ô vuông nào trống
và hình vuông nào được tô bóng. Giả sử rằng một danh sách các từ (tức là từ điển) được
cung cấp và nhiệm vụ là điền vào các ô vuông trống bằng cách sử dụng bất kỳ tập hợp con
nào của danh sách. Giải quyết vấn đề này chính xác theo hai cách:
a. Như một vấn đề tìm kiếm chung. Chọn một thuật toán tìm kiếm thích hợp và chỉ định
một hàm heuristic. Có tốt hơn là điền vào chỗ trống một chữ cái tại một thời điểm hoặc
một từ tại một thời điểm?
b. Như một vấn đề thỏa mãn ràng buộc. Các biến là từ hay chữ cái?
Công thức nào bạn nghĩ sẽ tốt hơn? Tại sao?
6.4 Đưa ra các công thức chính xác cho từng điều sau đây như các vấn đề về sự hài lòng ràng
buộc:
a. Lập kế hoạch sàn trực tuyến: tìm những nơi không chồng chéo trong một hình chữ
nhật lớn cho một số hình chữ nhật nhỏ hơn.
b. Lập kế hoạch lớp học: Có một số lượng cố định các giáo sư và lớp học, một danh
sách các lớp học được cung cấp và một danh sách các khoảng thời gian có thể cho
các lớp học. Mỗi giáo sư có một tập hợp các lớp học mà họ có thể dạy.
c. Tour hamiltonian: với một mạng lưới các thành phố được kết nối bằng đường bộ,
chọn một đơn đặt hàng để ghé thăm tất cả các thành phố trong một quốc gia mà
không lặp lại bất kỳ.

6.5 Giải quyết vấn đề hóa giải trong Hình 6.2 bằng tay, sử dụng chiến lược theo dõi ngược
với kiểm tra phía trước và MRV và heuristics ít hạn chế nhất.
6.6 Cho thấy làm thế nào một ràng buộc nhạn duy nhất như " A + B =C" có thể được biến
thành ba ràng buộc nhị phân bằng cách sử dụng một biến phụ trợ. Bạn có thể giả định các tên
miền hữu hạn. (Gợiý: Hãy xem xét một biến mới có các giá trị là cặp giá trị khác và xem
xét các ràng buộc như "X là yếu tố đầu tiên của cặp Y.) Tiếp theo, cho thấy các ràng buộc
với nhiều hơn ba biến có thể được xử lý tương tự như thế nào. Cuối cùng, cho thấy các
ràng buộc không ghi ngày khả dụng có thể được loại bỏ bằng cách thay đổi các tên miền
của các biến. Điều này hoàn thành cuộc biểu tình rằng bất kỳ CSP nào cũng có thể được
chuyển đổi thành CSP chỉ với các ràng buộc nhị phân.
6.7 Hãy xem xét câu đố logic sau: Trong năm ngôi nhà, mỗi ngôi nhà có một màu sắc khác
nhau, sống năm người thuộc các quốc tịch khác nhau, mỗi người thích một thương hiệu
kẹo khác nhau, một thức uống khác nhau và một thú cưng khác nhau. Với những sự thật
sau đây, các câu hỏi cần trả lời là "Ngựa vằn sống ở đâu và chúng uống nước ở nhà nào?"
Ginsberg et al. (1990) thảo luận về một số phương pháp để xây dựng các câu đố ô chữ. Littman et al. (1999)
giải quyết vấn đề khó khăn hơn trong việc giải quyết chúng.
232 Chương 6. Vấn đề về sự hài lòng ràng buộc

Người Anh sống trong ngôi nhà màu đỏ.


Người Tây Ban Nha sở hữu.
Người Na Uy sống trong ngôi nhà đầu tiên bên trái.
Ngôi nhà màu xanh lá cây ngay lập tức ở bên phải của ngôi nhà ngà voi.
Người đàn ông ăn quán bar Hershey sống trong ngôi nhà bên cạnh người đàn ông
với con cáo.
Kit Kats được ăn trong ngôi nhà màu vàng.
Người Na Uy sống bên cạnh ngôi nhà màu xanh.
Người ăn Smarties sở hữu ốc sên.
Người ăn Snickers uống nước cam.
Người Ukraine uống trà.
Người Nhật ăn Sữa.
Kit Kats được ăn trong một ngôi nhà bên cạnh ngôi nhà nơi con ngựa được giữ.
Cà phê được uống trong ngôi nhà màu xanh lá cây.
Sữa được uống ở nhà giữa.
Thảo luận về các đại diện khác nhau của vấn đề này như một CSP. Tại sao người ta thích
một lần gửi lại hơn người khác?

6.8 Xem xét đồ thị với 8 nút A1, A2, A3, A4, H, T, F1, F2. Ai được kết nối với Ai +1 cho tất
cả i, mỗi Ai được kết nối với H, H được kết nối với T và T được kết nối với mỗi Fi. Tìm một
màu 3 của biểu đồ này bằng tay bằng cách sử dụng chiến lược sau: quay trở lại với
backjumping xung đột hướng, các lệnh biến A1, H, A4, F1, A2, F2, A3, T, và các giá trị
đặt hàng R, G, B.

6.9 Giải thích lý do tại sao nó là một heuristic tốt để chọn biến bị hạn chế nhất nhưng giá trị
ít hạn chế nhất trong một tìm kiếm CSP.

6.10 Tạo các trường hợp ngẫu nhiên về các vấn đề tô màu bản đồ như sau: phân tán điểm
n trên vuông đơn vị; chọn điểm X ngẫu nhiên, kết nối X bằng một đường thẳng đến điểm
gần nhất
sao cho X chưa được kết nối với Y và đường không vượt qua đường khác; lặp lại bước
trước đó cho đến khi không thể kết nối được nữa. Các điểm đại diện cho các khu vực trên
bản đồ và các đường kết nối hàng xóm. Bây giờ hãy cố gắng tìm màu kcủa mỗibản đồ, cho
cả k = 3 và k = 4, sử dụng xung đột min, backtracking, backtracking với kiểm tra phía trước
và quay trở lại với MAC. Xây dựng bảng thời gian chạy trung bình cho mỗi thuật toán cho
các giá trị n lên đến lớn nhất bạn có thể quản lý. Bình luận về kết quả của bạn.

6.11 Sử dụng thuật toán AC-3 để chỉ ra rằng tính nhất quán của vòng cung có thể phát
hiện sự không nhất quán của bài tập một phần {WA = màu xanh lá cây, V = đỏ } cho vấn đề
được hiển thị trong Hình 6.1.

6.12 Sự phức tạp tồi tệ nhất của việc chạy AC-3 trên CSP có cấu trúc cây là gì?

6.13 AC-3 đặt lại trên hàng đợi mỗi vòng cung (Xk, Xi)bất cứ khi nào bất kỳ giá trị nào bị xóa
khỏi tên miền của Xi,ngay cả khi mỗi giá trị của Xk phù hợp với một số giá trị còn lại của Xi.
Giả sử rằng, đốivới mỗi vòng cung(Xk, Xi),chúng ta theo dõi số lượng giá trị còn lại của Xi
phù hợp với từng giá trị của Xk . Giải thích làm thế nào để cập nhật các con số này một
cách hiệu quả và do đó cho thấy rằng tính nhất quán của vòng cung có thể được thực thi
2 2
trong tổng thời gian O (n d ).
Bài tập 233

6.14 TREE-CSP-SOLVER (Hình 6.10) làm cho các vòng cung nhất quán bắt đầu từ lá và làm
việc ngược về phía gốc. Tại sao nó làm điều đó? Điều gì sẽ xảy ra nếu nó đi theo hướng
ngược lại?
6.15 Chúng tôi đã giới thiệu Sudoku như một CSP sẽ được giải quyết bằng cách tìm kiếm
các nhiệm vụ một phần là nguyên nhân là cách mọi người thường thực hiện giải quyết các
vấn đề Sudoku. Tất nhiên, cũng có thể tấn công những vấn đề này bằng tìm kiếm địa
phương trên các nhiệm vụ hoàn chỉnh. Một người giải quyết địa phương sẽ làm tốt như
thế nào đối với các vấn đề Sudoku?
6.16 Xác định theo lời của riêng bạn các thuật ngữ ràng buộc, tìm kiếm backtracking, tính
nhất quán vòng cung, backjumping, min-conflicts, và cycle cutset.
6.17 Giả sử rằng một biểu đồ được biết là có một đoạn cắt chu kỳ không nhiều hơn các nút
k. Mô tả một thuật toán đơn giản để tìm một cutset chu kỳ tối thiểu có thời gian chạy
k)
không nhiều hơn O (n cho một CSP với n biến. Tìm kiếm các tài liệu cho các phương
pháp để tìm ra các cutets chu kỳ tối thiểu trong thời gian đó là đa thức trong kích thước
của cutset. Sự tồn tại của các thuật toán như vậy có làm cho phương pháp cắt giảm chu
kỳ thực tế không?

You might also like