Kết hợp tìmkiếm và rút gọn bàitoán

Một phần của tài liệu (LUẬN văn THẠC sĩ) lập trình ràng buộc với bài toán về hỗ trợ phân luồng giao thông (Trang 27 - 31)

Hiệu quả của quay lui sẽ được cải thiện nếu một biến có thể bị cắt đi khi nó không có mặt trong nghiệm. Điều đó được giúp đỡ bởi quá trình rút gọn bài toán. Như phần trước chúng ta đã biết, việc rút gọn bài toán chính là quá

20

trình làm giảm cỡ miền của biến và làm chặt ràng buộc. Việc giảm cỡ miền có hiệu quả tương tự như việc cắt bỏ một nhánh trong cây tìm kiếm. Việc làm chặt ràng buộc có tiềm năng giúp chúng ta giảm không gian tìm kiếm ở một trạng thái sau. Rút gọn bài toán có thể được thực hiện tại bất kỳ một trạng thái nào của tìm kiếm. Có rất nhiều chiến lược khác nhau nhằm kết hợp việc tìm kiếm và rút gọn bài.

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

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

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

Hai lựa chọn đầu đã được xét đến. Sự khác nhau trong không gian tìm kiếm sẽ được khám phá dưới trật tự khác nhau của biến và giá trị. Vì ràng buộc có thể được lan truyền, trật tự khác nhau của biến và giá trị được xem xét có thể ảnh hưởng đến hiệu quả trong thuật toán tìm kiếm. Điều này đặc biệt có ý nghĩa khi tìm kiếm được kết hợp với vấn đề rút gọn bài toán.

Không gian tìm kiếm là không gian của tất cả các trạng thái mà việc tìm kiếm có thể đạt tới.

Hình 2.1: Không gian tìm kiếm của thuật toán BT trong CSP(Z,D,C) khi các biến không được sắp thứ tự, Z={x,y,z}, Dx={a,b,c,d}, Dy={e,f,g}, Dz={p,q}

21

được chọn cho việc gán nhãn nhưng vẫn được gán giá trị. Chú ý rằng các ràng buộc không đóng vai trò trong định nghĩa không gian tìm kiếm, mặc dù nó sẽ trở nên rõ ràng hơn sau đó, nó sẽ ảnh hưởng lên không gian tìm kiếm bằng thuật toán.

Hình 2.2: Không gian tìm kiếm của thuật toán BT trong CSP(Z, D, C) khi các biến sắp thứ tự {x, y, z}, Z={x, y, z}, Dx={a, b, c, d}, Dy={e, f, g}, Dz={p, q}

Chú ý node (*) trong hình thể hiện trạng thái khi x được gán nhãn a, y và z vẫn được được gán giá trị.

Cần phải chú ý rằng không gian tìm kiếm sẽ khác nhau nếu trật tự các biến được sắp thứ tự khác nhau.

Hình 2.3: Không gian tìm kiếm của thuật toán BT trong CSP(Z, D, C) khi các biến

sắp thứ tự {z , y, x}, Z={x, y, z}, Dx={a, b, c, d}, Dy={e, f, g}, Dz={p, q}

Chúng ta cần tìm hiểu một số thuộc tính CSPs vì nó khác so với bài toán tìm kiếm tổng quát để khi giải bài toán hiệu quả hơn.

22

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

Số lá trong cây tìm kiếm là L =| Dx1 || Dx 2 | ... | Dxn | , trong đó Dxi là miền của biến xi, và | Dxi | là cỡ của miền đó. Chú ý rằng L không bị ảnh hưởng bởi trật tự khi chúng ta quyết định gán nhãn cho biến. Tuy nhiên, trật tự lại ảnh hưởng đến số nút trung gian trong không gian tìm kiếm. Ví dụ, trong tổng số nút trung gian trong Hình 2.2 là 16, trong khi Hình 2.3 là 8. Tổng quát hơn, nếu chúng ta giả sử các biến được sắp theo thứ tự x1 , x2 , …, xn thí số nút trong cây tìm kiếm là:

Với công thức trên, cùng với 2 ví dụ đã nêu, không khó khăn cho chúng ta nhận ra rằng nếu các biến được sắp theo trật tự khi các miền của nó giảm dần thì số nút trong không gian tìm kiếm sẽ đạt giá trị lớn nhất. Đó cũng chính là biên của cỡ trong không gian tìm kiếm. Ngược lại nếu các biến được sắp theo trật tự khi các miền của nó tăng dần thì số nút trong không gian tìm kiếm sẽ đạt giá trị nhỏ nhất.

Tuy nhiên, cỡ của bài toán lại bị chi phối bởi tích cuối cùng: L =| Dx1 || Dx 2 | ... | Dxn |, chính là số nút lá, nó không thay đổi khi trật tự các biến thay đổi.

Độ sâu của cây được cố định

Khi các biến được cố định, độ sâu của cây tìm kiếm luôn luôn bằng số biến trong bài toán. Trong cả hai ví dụ Hình 2.2 và Hình 2.3, độ sâu đều là 3. Khi trật tự của biến không cố định, độ sâu chính xác là 2n, với n là số biến.

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

Nếu chúng ta cố định biến, khi đó các cây con cùng mức sẽ tương tự nhau. Điều này rất có ý nghĩa trong khi tìm kiếm một cây con khi chúng ta đã tìm kiếm được anh em của nó (sẽ nói thêm trong phần loại bỏ đối xứng).

23

thiện bằng cách dùng heuristics- nó sẽ chỉ ra những nhánh trong không tìm kiếm có khả năng nhất để tìm tới nghiệm.

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

Một phần của tài liệu (LUẬN văn THẠC sĩ) lập trình ràng buộc với bài toán về hỗ trợ phân luồng giao thông (Trang 27 - 31)

Tải bản đầy đủ (PDF)

(77 trang)