Ant Colony Optimization

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát hiện trạng thái người tham gia giao thông dựa trên smartphone và xây dựng ứng dụng hỗ trợ (Trang 43 - 46)

Thuật toán tối ưu đàn kiến thường được áp dụng trong các bài toán về tối ưu tổ hợp. Ban đầu thuật toán được đưa ra để tìm đường đi tối ưu trong một đồ thị dựa trên hành vi của loài kiến khi tìm đường giữa tổ của chúng tới nguồn thức ăn. Loài kiến khi kiếm ăn thường đi lang thang, và khi tìm được đồ ăn, một con kiến sẽ trở về tổ đồng thời để lại dấu vết thông qua chất hóa học đặc trưng của loài (pheromone). Các con kiến khác nếu gặp đường đi có dấu vết này, chúng sẽ đi theo đường thay vì đi lang thang như ban đầu. Nếu chúng tiếp tục gặp thức ăn, đường đi này cùng lượng chất hóa học sẽ càng ngày càng được củng cố nhiều hơn [19].

Tuy nhiên theo thời gian, chất hóa học sẽ bay hơi dần làm giảm mức độ ảnh hưởng lựa chọn đường đi của các con kiến khác. Quãng đường càng dài, lượng chất hóa học bay hơi càng nhiều, quãng đường càng ngắn thì lượng chất hóa học không những bay hơi ít mà còn được liên tục củng cố và bổ sung khi các con kiến liên tục qua lại. Kết quả là nếu một con kiếm tìm ra đường đi đủ tốt, các con kiến khác sẽ dần dần đi theo con đường này. Sự bay hơi của chất hóa học đồng thời còn tránh được cực trị địa phương. Thuật toán tối ưu đàn kiến cũng như các mở rộng của thuật toán mô phỏng hành vi này của loài kiến bằng cách giả lập các con kiến di chuyển xung quanh một đồ thị thể hiện cho bài toán cần được giải quyết. Các lớp bài toán như vậy có thể kể đến là bài toán tìm đường đi, lập lịch, xác định tuyến đường tối ưu, các bài toán tổ hợp và xử lý ảnh,… Hình 2.11 mô tả sự di chuyển của đàn kiến giả lập trong một đồ thị.

Hình 2.11: Minh họa giải thuật tối ưu đàn kiến

Đàn kiến xuất phát từ vị trí A tới nơi có thức ăn tại F. Ban đầu các con kiến tự tìm đường cho mình, giả thiết có 2 đường đi từ A tới F: A  B  C  E  F và A  B  D  E  F trong đó khoảng cách từ B C và khoảng cách từ C  E có độ dài là 1, khoảng cách từ B  D và khoảng cách từ D  E có độ dài là 0.5. Khởi đầu, số lượng kiến đi theo 2 đường này là tương đương nhau, tuy nhiên qua thời gian, do đường đi qua C dài hơn dẫn tới lượng chất hóa học bay hơi nhiều hơn, các con kiến chuyển dần sang đường đi qua D. Càng ngày lượng chất hóa học qua D sẽ càng nhiều trong khi lượng chất hóa học qua C sẽ biến mất dần. Cuối cùng, đường đi tối ưu sẽ được thiết lập là đường đi qua D.

Với yêu cầu tối ưu các đặc trưng rút ra từ biến đổi Fourier trong bài toán phát hiện trạng thái người tham gia giao thông, ta thiết lập giải thuật như sau:

Đầu tiên, ta lựa chọn numf là số lượng các đặc trưng từ tất cả N đặc trưng rút ra từ biến đổi Fourier. N đặc trưng này lập thành đồ thị vô hướng khép kín trong đó mỗi đặc trưng có thể coi như một đỉnh của đồ thị với độ dài các cạnh là bằng nhau. Một con kiến sẽ di chuyển qua numf đỉnh giữa điểm xuất phát và đích đến. Thời gian di chuyển giữa 2 đỉnh của các con kiến là bằng nhau do độ dài cạnh đồ thị là bằng nhau. Nếu con kiến xuất phát tại thời gian t = 0 thì nó sẽ tới đích sau thời gian t = numf – 1. Tổng số kiến lựa chọn sẽ là m. Mục tiêu của bài toán là tìm ra các đỉnh đối lập để có đường đi tốt nhất. Đường đi càng tốt thì việc phân lớp sẽ có độ chính xác càng cao. Thay vì xét lượng chất hóa học rải trên đường, ta sẽ xem xét lượng chất hóa học mỗi con kiến để lại tại mỗi đỉnh của đồ thị, kí hiệu u(t) là lượng chất

hóa học để lại tại đỉnh j tại thời điểm t. Khởi đầu, giá trị uj(0) = C trong đó C là hằng số dương bất kì. p là tốc độ bay hơi của chất hóa học. uj là lượng tăng chất hóa học:

𝑢𝑗(𝑡 + 1) = (1 − 𝑝)𝑢𝑗(𝑡) + ∆𝑢𝑗 (2.1)

Quy ước:

∆𝑢𝑗 = 𝑟𝑏𝑒𝑠𝑡

𝑛𝑢𝑚𝑓 (2.2)

là hàm cập nhật lượng chất hóa học. rbest là kết quả phân lớp tốt nhất tại thời điểm này. Kết quả phân lớp càng tốt thì lượng chất hóa học tại đỉnh j càng nhiều. Số lượng các đỉnh càng lớn thì lượng chất hóa học tại mỗi đỉnh càng ít. Tại mỗi đỉnh, ta định nghĩa nj là tham số khám phá cho đỉnh j. Từ đó xây dựng công thức nj=F- scorej để đánh giá khả năng phân biệt giữa các đỉnh với nhau. Công thức 2.3 chỉ ra giá trị F-score tại đỉnh j, trong đó tử số đại diện cho sự sai khác giữa các lớp của đặc trưng mục tiêu, mẫu số đại diện cho sự sai khác trong mỗi lớp. F-score càng lớn thì sự khác biệt tại đỉnh này càng lớn.

𝐹 − 𝑠𝑐𝑜𝑟𝑒𝑗 = ∑𝑣 (𝑥̅𝑗𝑐−𝑥̅𝑗)2 𝑐=1 ∑ { 1 𝑁𝑗𝑐−1∑ (𝑥𝑗𝑘 𝑐 −𝑥̅𝑗𝑐)2 𝑁𝑗𝑐 𝑘=1 } 𝑣 𝑐=1 , 𝑗 ∈ {1,2, … , 𝑁𝐹} (2.3) Trong đó:

v là số lớp của đặc trưng mục tiêu j

NF là số lượng các đặc trưng

NjC là số lượng mẫu của đặc trưng j trong lớp c, c  {1,2,…,v}, j  {1,2,…, NF}

xjkC là mẫu thử thứ k cho đặc trưng j trong lớp c, k  {1,2,…,NjC}

 𝑥̅𝑗 là giá trị trung bình của đặc trưng j

 𝑥̅𝑗𝑐 là giá trị trung bình của đặc trưng j trong lớp c

pjk(t) là xác suất con kiến k lựa chọn đỉnh j làm đích đến tại thời điểm t. 

biểu diễn mức độ quan trọng của chất hóa học.  biểu diễn mức độ quan trọng của tham số khám phá. Ta định nghĩa tabuk là tập các đỉnh mà con kiến đã đi qua. Các đỉnh trong này sẽ không được xét tới khi tìm đích tiếp theo trong mỗi vòng lặp. Công thức 2.4 biểu diễn xuất suất này:

𝑝𝑗𝑘(𝑡) = {

𝑢𝑗𝛼(𝑡)𝜂𝑗𝛽

∑ 𝑢𝛾𝛼(𝑡)𝜂𝛾𝛽, 𝛾, 𝑗 ∉ 𝑡𝑎𝑏𝑢𝑘

0, 𝑗 ∈ 𝑡𝑎𝑏𝑢𝑘

(2.4)

Tới đây, giải thuật ACO có thể được cài đặt để đưa vào việc phân lớp sử dụng SVM.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát hiện trạng thái người tham gia giao thông dựa trên smartphone và xây dựng ứng dụng hỗ trợ (Trang 43 - 46)

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

(72 trang)