You are on page 1of 4

Heuristic cấu trúc

- Bài toán TƯTH ứng với 1 bộ ba (𝑆, 𝑓, Ω), trong đó 𝑆 là tập hữu hạn trạng thái (lời giải
tiềm năng hay phương án), 𝑓 là hàm mục tiêu xác định trên 𝑆, còn Ω là tập các ràng
buộc. Về bản chất, Ω xác định S (xác định tập phương án chấp nhận đc), f đánh giá độ
tốt lời giải. Lời giải được biểu diễn bởi 𝑠 = (𝑠1, … , 𝑠𝑛), trong đó 𝑠𝑖 ∈ 𝐶i
- Lời giải của bài toán TƯTH được xây dựng theo cách mở rộng tuần tự, mở rộng
không quay lui. Từ thành phần khởi tạo trong tập 𝐶1, bằng cách thêm vào các thành
phần mới theo phương thức ngẫu nhiên hay tất định dựa trên các quy tắc heuristic đã
chọn.
- Thuật giải Heuristic là một sự mở rộng khái niệm thuật toán. Nó thể hiện cách giải bài
toán với các đặc tính sau: Thường tìm được lời giải tốt (nhưng không chắc là lời giải
tốt nhất); Giải bài toán theo thuật giải Heuristic thường dễ dàng và nhanh chóng đưa
ra kết quả hơn so với giải thuật tối ưu, vì vậy chi phí thấp hơn.; Thuật giải Heuristic
thường thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động của con người.;
Có nhiều phương pháp để xây dựng một thuật giải Heuristic, trong đó người ta thường
dựa vào một số nguyên lý cơ sở như sau: Nguyên lý vét cạn thông minh; Nguyên lý
tham lam (Greedy); Nguyên lý thứ tự; Hàm Heuristic:
- Thuật toán: xuất phát từ lời giải rỗng / tp ban đầu, sau đó cứ xây dựng, mỗi 1 lần xây
dựng tp thứ I thì sẽ chọn giá trị tốt nhất có thể trong thời điểm đó và kết hợp vào lời
giải, lặp đi lặp lại -> thuật toán tham ăn, greedy, heuristic cấu trúc. Quy tắc heuristic
là quan trọng nhất trong bài toán này, chất lượng thuật toán phụ thuộc vào quy tắc
này.

- …
- Ví dụ:
+ Thuật toán láng giềng gần nhất (bài toán người chào hàng)
Bài toán : Chúng ta trở lại với bài toán người bán hàng. Nhưng ở đây, yêu cầu bài
toán hơi khác là làm sao tìm được hành trình ngắn nhất có thể được.
Tất nhiên ta có thể giải bài toán này bằng cách liệt kê tất cả con đường có thể đi, tính
chiều dài của mỗi con đường đó rồi tìm con đường có chiều dài ngắn nhất. Tuy nhiên,
cách giải này lại có độ phức tạp O(n!) (tổng số hành trình có thể có là n!). Do đó, khi
số đại lý tăng thì số con đường phải xét sẽ tăng lên rất nhanh.
Một cách giải đơn giản hơn nhiều và thường cho kết quả tương đối tốt là dùng một
thuật giải Heuristic ứng dụng nguyên lý Greedy. Tư tưởng của thuật giải như sau :
1. Từ điểm khởi đầu, ta liệt kê tất cả quãng đường từ điểm xuất phát cho đến n đại lý
rồi chọn đi theo con đường ngắn nhất.
2. Khi đã đi đến một đại lý, chọn đi đến đại lý kế tiếp cũng theo nguyên tắc trên.
Nghĩa là liệt kê tất cả con đường từ đại lý ta đang đứng đến những đại lý chưa đi
đến. Chọn con đường ngắn nhất. Lặp lại quá trình này cho đến lúc không còn đại lý
nào để đi.
Bạn có thể quan sát hình 2.14 để thấy được quá trình chọn lựa.
Theo nguyên lý Greedy, ta lấy tiêu chuẩn hành trình ngắn nhất của bài toán làm tiêu
chuẩn chọn lựa cục bộ. Ta hy vọng rằng, khi đi trên n đoạn đường ngắn nhất thì cuối
cùng ta sẽ có một hành trình ngắn nhất. Ðiều này không phải lúc nào cũng đúng. Với
điều kiện trong hình 2.14 thì thuật giải cho chúng ta một hành trình có chiều dài là 14
trong khi hành trình tối ưu là 13. Kết quả của thuật giải Heuristic trong trường hợp
này chỉ lệch 1 đơn vị so với kết quả tối ưu. Trong khi đó, độ phức tạp của thuật giải
Heuristic này chỉ là O(n2). Tất nhiên, thuật giải theo kiểu Heuristic đôi lúc lại đưa ra
kết quả không tốt, thậm chí rất tệ như trường hợp ở hình 2.15.
+ Bài toán tô màu đồ thị,…
- Nhận xét: Heuristic kiến trúc thông dụng, giải quyết cho nhiều bài toán khác nhau,
khác với epxxilon xấp xỉ tuyệt đối ít bài toán giải đc theo mô hình này; Heuristic kiến
trúc chạy nhanh, không ước lượng được độ tốt của lời giải như thuật toán ε-Xấp xỉ
tuyệt đối; Quy tắc heuristic quyết định chất lượng lời giải, dựa vào đặc tính bài toán
để đưa ra quy tắc này; Heuristic kiến trúc dùng để xây dựng lời giải ban đầu cho các
phương pháp khác.

Tìm kiếm địa phương (Local Search)


- Bắt đầu từ một phương án chấp nhận được, lặp lại bước cải tiến lời giải nhờ các thay
đổi cục bộ, Ví dụ như xếp bừa TKB, sau đó mới đổi chỗ để nhận đc lời giải tốt hơn,
lặp đi lặp lại như thế (Heuristic cấu trúc dựng ra 1 lời giải, local search cải tiến lời
giải).
- Cần xác định được cấu trúc lân cận của mỗi phương án (lời giải) đang xét, tức là
những phương án chấp nhận được, gần với nó nhất, nhờ thay đổi một số thành phần.
- 2 chiến lược: tốt nhất (từ lời giải hiện tại ta xác định các lân cận, chọn ra lời giải tốt
nhất trong các lân cận và thay thế), tốt hơn (tìm đc 1 lời giải tốt hơn thì thay thế hơn).
Đánh giá về độ tốt -> khuyên dùng tốt nhất vì nó cải tiến lớn hơn, tuy nhiên thời gian
quét hơn các lân cận có thể bị lớn -> nói chung k xác định đc thời gian pp nào nhanh
hơn.
- Ví dụ: Bài toán xếp hậu
- Nhận xét: Không ước lượng được độ tốt của lời giải như thuật toán ε-Xấp xỉ tuyệt
đối., local search + heuristic kiến trúc chứng minh bằng mô hình thực nghiệm xem kq
ra bao nhiêu chứ k chứng minh chặt chẽ được bằng toán học; Lân cận 𝑘-thay đổi,…;
chiến lược tốt nhất, tốt hơn,… -> phải cân đối, làm thực nghiệm để chọn,…

Thuật toán di truyền


- …
- …
- …
- Lược đồ thuật toán: tiến hóa qua nhiều thế hệ: khởi tạo quần thể ban đầu: tập cá cá
thể, mỗi cá thể là 1 lời giải -> cho các lời giải tiến hóa; chọn lọc tự nhiên nhờ bánh xe
xổ số; lai ghép vs nhau vs hi vọng tạo ra những quần thể tốt hơn.
- 5 bước cơ bản: NST là CTDL mô tả, biểu diễn lời giải;…
- Bước 1: chọn cấu trúc NST: dãy bit (về sau người ta thấy bài toán nào cũng dùng dãy
bit thì k phản ánh được đúng bản chất của bài toán) -> dãy số, hoán vị
- Bước 2: chọn lọc tự nhiên
- Sau khi chọn ra tập lời giải được đánh giá tốt thì cho lai ghép vs nhau: toán tử tương
giao chéo, toán tử biến dị.
- Thủ tục tái tạo.
- lặp đi lặp lại, có thể cho tiến hóa qua n vòng đời (vòng lặp), hoặc theo thời gian (cho
chạy trong bao lâu), hoặc độ tốt của lời giải (đến 1 lời giải đủ tốt), hoặc độ hội tụ (lặp
lại nhiều nhưng k cải thiện được nhiều),…
- VD1: f(x2)
- VD2: TSP, 1 đồ thị có trọng số, tìm 1 chu trình sao cho tổng các trọng số nhỏ nhất
(NP-khó); lời giải nên thể hiện bằng 1 hoán vị; toán tử tương giao chéo: chọn 1 đoạn
ngẫu nhiên của cha (đảm bảo tính chất thừa hưởng cái tốt chủa cha), lấy lần lượt phần
tốt từ mẹ; đột biến: chọn 2 vị trí và đổi chỗ cho nhau;

You might also like