Lựa chọn thuật toán

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng khai phá dữ liệu trong quản lý giao thông 04 (Trang 33 - 37)

3 Các giải thuật tìm đường

3.3 Lựa chọn thuật toán

• X là tập hữu hạn các trạng thái có thể tìm được của bài toán

• x∈X =< C1, C2...Ck, ... > là một phương án của bài toán

• S ⊆X là tập các lời giải ứng viên

• X∗ ∈X là tập các trạng thái thỏa mãn ràng buộc Ω

• S∗ 6=∅ là tạp các lời giải tối ưu sao cho S∗ ⊆X và S∗ ⊆S

• G= (C, L, T) là đồ thị đầu vào và      C :Tập đỉnh L:Tập các cạnh

T :Tập giá trị mật đồ mùi trênL

Giải thuật tối ưu đàn kiến tổng quát được trình bày như sau

Algorithm 4Giải thuật đàn kiến với Meta-heuristic Khởi tạo vết mùi cho các đường đi

1: while Điều kiện dừng chưa thỏa mãn do

2: Xây dựng tập các phương án 3: Tìm kiếm lời giải cục bộ 4: Cập nhật lại vết mùi 5: end while

3.3 Lựa chọn thuật toán

Trong các giải thuật tìm đường nêu trên thì giải thuật tìm đường cơ bản dựa trên việc tối ưu cục bộ để tìm ra lời giải với ưu điểm là thời gian tính toán nhanh nhưng nhiều lúc phương án được chọn chưa phải là phương án tối ưu của bài toán. Các giải thuật nâng cao có khả năng tìm được phương án tối ưu tốt hơn vì vậy chúng tôi lựa chọn giải thuật tìm đường nâng cao cho bài toán của mình, cụ thể là giải thuật đàn kiến vì hành vi tìm đường tối ưu của đàn kiến khá tương đồng với việc tìm đường tối ưu cho các phương tiện giao thông. Trong phần này, chúng tôi sẽ trình bày chi tiết hơn về giải thuật đàn kiến được áp dụng trong luận văn.

3.3.1 Thuật toán Ant System

Ban đầu Ant System (AS) có ba phiên bản là Ant-density, Ant-quantity và Ant- cycle. Với Ant-density, Ant-quantity các con kiến cập nhật vết mùi trực tiếp lên

3.3. Lựa chọn thuật toán 25

cạnh vừa đi, còn với Ant-cycle vết mùi được cập nhật sau khi kiến xây dựng xong hành trình và lượng mùi cập nhật được phụ thuộc vào độ dài hành trình tìm được. Tuy nhiên Ant-density, Ant-quantity không hiệu quả bằng Ant-cycle nên khi nói đến AS chúng ta thường sẽ chỉ quan tâm đến Ant-cycle. Quá trình tìm lời giải được thực hiện với giá trị vết mùi được khởi tạo trên tất cả các cạnh làτij =τ0Cmmn (với

mlà số kiến,Cmn là độ dài lời giải tìm được). Nếu khởi tạo vết mùi τ0 quá thấp thì quá trình tìm kiếm có khuynh hướng hội tụ về hành trình đầu tiên tìm được dẫn đến việc làm cho chất lượng lời giải không tốt. Ngược lại, nếu khởi tạo vết mùi quá cao thì sẽ tốn nhiều vòng lặp bay hơi mùi trên các cạnh không tốt và cập nhập bổ sung thêm mùi cho các cạnh tốt mới có thể hướng việc tìm kiếm đến vùng không gian có chất lượng tốt.

Lời giải được xây dựng như sau: Ban đầu, m con kiến được đặt ngẫu nhiên tại các đỉnh đồ thị. Ở mỗi bước khi kiếnk đang ở đỉnh isẽ lựa chọn đỉnhj với xác suất theo tỉ lệ ngẫu nhiên:

pkij = [τij]

α[ηij]β

P

l∈Nk

i [τil]α[ηil]β (3.4)

với ηij là giá trị thông tin tri thức, α, β là tham số ảnh hưởng tương quan giữa vết mùi và thông tin tri thức, Nk

i là các đỉnh lân cận của đỉnh i mà kiến k có thể chọn (ở đây, xác suất của các đỉnh mà kiến k chưa chọn là 0). Theo công thức xác suất (3.4), xác suất chọn cạnh (i, j) tỉ lệ thuận với τij và ηij. Nếu α = 0 thì đỉnh gần nhất sẽ ưu tiên được chọn, khi đó thuật toán sẽ chọn ngẫu nhiên theo ưu tiên tỉ lệ nghịch đảo độ dài cạnh, không có học tăng cường. Nếuβ = 0 thì chỉ có thông tin học tăng cường biểu thị qua vết mùi được sử dụng, không có thông tin tri thức. Nếu α lớn, thuật toán nhanh chóng bị tắc nghẽn và lời giải tìm được hội tụ về lời giải tối ưu cục bộ. Khi cài đặt, mỗi kiếnk sẽ duy trì một bộ nhớ Mk chứa các đỉnh lần lượt đã đi qua giúp xác định các đỉnh lân cận phù hợp đồng thời tính được độ dài hành trình Tk để xác định các cạnh được cập nhật mùi. Nếu xây dựng lời giải song song, tại mỗi bước tất cả các kiến sẽ di chuyển sang đỉnh tiếp theo, trường hợp ngược lại thì lần lượt từng con kiến xây dựng lời giải với cách xây dựng tuần tự.

3.3. Lựa chọn thuật toán 26

cả các cạnh sẽ được cập nhật lại như sau:

τij = (1−ρ)τij +

m

X

k=1

∆τijk (3.5)

trong đó, ρ(0 < ρ ≤ 1) là hệ số bay hơi để tránh sự tích tụ vết mùi quá nhiều trên một cạnh và giúp các con kiến nhân tạo quên đi các quyết định sai lầm. Trên thực tế, nếu một cạnh không được chọn thì vết mùi nhanh chóng bị giảm đi theo cấp số nhân.∆τijk =

( 1

Ck nếu cạnh (i, j)∈Tk

0 ngược lại là lượng mùi do con kiến k cập nhật trên cạnh đã đi qua vớiCk là độ dài hành trình Tk được xây dựng. Như vậy, cạnh nào có nhiều kiến đi qua và độ dài hành trình ngắn sẽ được cập nhật mùi nhiều hơn. Tuy nhiên hiệu quả của thuật toán AS so với các phương pháp Meta-heuristic giảm khi kích thước của bài toán tăng lên.

3.3.2 Thuật toán Ant Colony System

Thuật toán Ant Colony System (ACS) được đề xuất với ba điểm khác biệt chính so với thuật toán Ant System là

• Khai thác kinh nghiệm mạnh hơn trong Ant System bằng cách sử dụng quy tắc lựa chọn trên thông tin tích lũy nhiều hơn

• Cơ chế bay hơi mùi và để lại mùi chỉ trên các cạnh thuộc vào lời giải tốt nhất toàn cục (Gbest−Global−best) nhằm tăng cường thăm dò mới

• Mỗi lần kiến đi qua cạnh (i, j) vết mùi sẽ bị giảm trên cạnh(i, j)

Trên cơ sở đó, lời giải được xây dựng như sau: khi con kiến k đang đứng ở đỉnh

i, nó sẽ lựa chọn đi đến đỉnh j theo quy tắc sau:

j =

(

argmaxl∈Nk

i nếu q ≤ q0 J ngược lại

với q ∈ [0,1], J là biến ngẫu nhiên phân bố đều, q0(0≤q0 ≤ 1) là tham số cho trước, lựa chọn theo phân bố xác suất (3.4) với α = 1. Nói cách khác, kiến sẽ lựa chọn khả năng tốt nhất có thể kết hợp giữa thông tin học từ vết mùi và thông tin

3.3. Lựa chọn thuật toán 27

tri thức với xác suấtq0 và khám phá trên các cạnh với xác suất(1−q0). Điều chỉnh tham sốq0 sẽ cho phép thay đổi mức độ khai thác và lựa chọn tập trung tìm kiếm quanh lời giảiGbest hoặc khám phá các hành trình khác.

Cập nhật mùi toàn cục: Trong ACS, chỉ có duy nhất một con kiến tìm được lời giải

Gbest được phép để lại mùi sau mỗi lần lặp. Các cạnh (i, j) thuộc lời giải Gbest sẽ được cập nhật như sau:

τij = (1−ρ)τij +ρ∆τijbest

trong đó ∆τbest

ij = 1

CGbest với CGbest là độ dài lời giải Gbest.

Vết mùi của ACS chỉ được cập nhật trên các cạnh thuộc TG

best chứ không phải cho tất cả các cạnh như Ant System. τ là tham số bay hơi của ASC không giống như Ant System, việc cập nhật vết mùi được thay đổi theo trung bình trọng số của vết mùi cũ và lượng mùi được để lại. Trong thực nghiệm, lời giải tốt nhất trong bước lặp hiện tạiIbest (Lần lặp tốt nhất - Iteration-best) được lựa chọn để cập nhật mùi. Cập nhật mùi cục bộ: bên cạnh việc cập nhật mùi toàn cục, ACS còn cập nhật mùi cục bộ ngay khi cạnh (i,j) có con kiến đi qua theo công thức:

τij = (1−ξ)τij + ξτ0

trong đó τ0 là giá trị mùi được khởi tạo cho tất cả các cạnh, ξ ∈ (0,1). Qua thực nghiệm, các giá trị tốt nhất làξ = 0.1, τ0 = nC1mn với n là số đỉnh, Cmn là độ dài hành trình theo thuật toán tham lam sử dụng kinh nghiệm (heuristic).

Hiệu quả của quy tắc cập nhật mùi cục bộ thể hiện ở chỗ mỗi khi kiến đi qua thì giá trị vết mùi sẽ bị giảm đi, làm cho các con kiến ít lựa chọn lại cạnh này. Nói cách khác, việc cập nhật mùi cục bộ làm tăng khả năng khám phá các cạnh chưa được sử dụng và đảm bảo đàn kiến không bị dồn vào một đường đi nào dẫn đến bị tắc nghẽn như Ant System. Do ACS sử dụng cơ chế cập nhật mùi cục bộ nên việc xây dựng hành trình song song hay tuần tự sẽ bị ảnh hưởng. Thực nghiệm cho thấy thuật toán ACS yêu cầu tất cả các con kiến đồng thời xây dựng hành trình, mặc dù không có thực nghiệm nào chứng tỏ được lựa chọn nào tốt hơn. ACS là thuật toán ACO đầu tiên sử dụng danh sách ứng cử viên thay thế để hạn chế số lượng lựa chọn trong qua trình xây dựng lời giải. Việc sử dụng danh sách ứng cử viên sẽ làm tăng chất lượng lời giải và làm giảm độ phức tạp của thuật toán.

Chương 4

Thực nghiệm và các kết quả

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng khai phá dữ liệu trong quản lý giao thông 04 (Trang 33 - 37)

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

(52 trang)