Thuật toán FQLC

Một phần của tài liệu Nghiên cứu mạng tự tổ chức dựa vào thuật toán điều khiển fuzzy q learning (Trang 57)

Thuật toán FQLC bắt đầu bằng cách xác định trạng thái hiện tại của các tác nhân nghiên cứu. Các vector đầu vào sẽ được cung cấp và mức độ thật của mỗi hệ thống suy luận mờ với quy luật i đó là sản phẩm của các giá trị thành phần của mỗi nhãn trạng thái đầu vào cho các quy tắc i:

Input 𝐻𝑂𝐹 𝑅𝐿𝐹 𝐻𝑃𝑃 = 𝑥 𝑦 𝑧 ;

Đối với mỗi biến, giá trị thật được tính cho mỗi nhãn mờ từ phương trình (4.5),(4.6),(4.7):

𝜇𝑙𝑜𝑤(𝑥); 𝜇𝑚𝑒𝑑𝑖𝑢𝑚 (𝑥); 𝜇ℎ𝑖𝑔ℎ(𝑥);

𝜇𝑙𝑜𝑤(𝑦); 𝜇𝑚𝑒𝑑𝑖𝑢𝑚 (𝑦); 𝜇ℎ𝑖𝑔ℎ(𝑦);

𝜇𝑙𝑜𝑤(𝑧); 𝜇𝑚𝑒𝑑𝑖𝑢𝑚 (𝑧); 𝜇ℎ𝑖𝑔ℎ(𝑧);

Mức độ của sự thật của từng quy tắc i của hệ thống suy luận mờ FIS được tính toán như sau:

𝛼𝑖 = 3 𝜇𝐿𝑖𝑛(𝑆𝑖)

𝑛=1 (4.9)

Ví dụ, trong trường hợp quy tắc 1 với [HOF, RLF, HPP] = [L, L, L], giá trị thật sẽ là:

𝛼1 = 𝜇𝑙𝑜𝑤(𝐻𝑂𝐹) * 𝜇𝑙𝑜𝑤(𝑅𝐿𝐹) * 𝜇low (𝐻𝑃𝑃)

Cho P là tập hợp các quy tắc kích hoạt với độ của sự thật bằng không, sau đó là một chuỗi đầu ra (Op)được lựa chọn dựa trên các chính sách thăm dò, khai thác cho từng quy tắc kích hoạt:

𝑂𝑝 = argmax𝑘∈𝐾 𝑞(𝐿𝑝, 𝑂𝑝𝑘) với xác suất ε

𝑟𝑎𝑚𝑑𝑜𝑚𝑘𝑂𝑝𝑘 với xác suất 1 - ε (4.10)

Với ε là sự cân bằng giữa việc thăm dò và khai thác. Giá trị 1 có nghĩa là không thăm dò, chỉ hành động với giá trị q lớn nhất được chọn.

Hoạt động cuối cùng (a (s)) được áp dụng bởi FQLC sau đó được tính từ tất cả các hoạt động lựa chọn các quy tắc kích hoạt như phương trình (4.11).Nó là sản phẩm của lớp giải mờ hóa.

a(s) = 𝑝∈𝑃𝛼𝑝(s) * 𝑂𝑝 (4.11)

Hoạt động cuối cùng là một sự kết hợp của chuỗi hoạt động trong các quy tắc khác nhau. Do đó, mức độ sự thật ap(st) của từng quy tắc kích hoạt được tính vào phương trình (4.11).

Giá trị Q (Q(s,a(s))) cho các vector trạng thái đầu vào được tính toán như một phép nội suy của các giá trị Q hiện tại của các quy tắc kích hoạt và mức độ của sự thật: Q (s, a(s)) = 𝑝∈𝑃𝑠𝛼𝑝(s) * q(𝐿𝑝, 𝑂𝑝) (4.12) Áp dụng chuỗi hoạt động a(s), FQLC di chuyển qua các chuỗi cho một trạng thái mới St + 1 và nhận được một phản hổi rt + 1

Giá trị của trạng thái mới là:

V(st+1)= 𝑝∈𝑃𝑆𝑡+1𝛼𝑝(𝑆𝑡+1) * 𝑎𝑟𝑔𝑚𝑎𝑥𝑘∈𝐾 q(𝐿𝑝, 𝑂𝑝𝑘) (4.13)

Trong đó argmaxkK q(Lp, Okp) là giá trị q lớn nhất cho quy tắc p

Để cập nhật các giá trị q, các lượng Δ𝑄 được định nghĩa là sự khác biệt giữa giá trị cũ và giá trị mới của Q(x,a(x)).

∆𝑄 = rt+1 + 𝛾Vt(St+1) – Q(St, a(St)) (4.14)

Cập nhật giá trị q như sau:

qt(Lp, Op) ← qt(Lp, Op) + 𝛽𝛼p(St)∆𝑄 (4.15) Trong đó β là tỷ lệ học tập nằm trong khoảng [0,1], nó xác định những ảnh hưởng của các mới thông tin về các kiến thức trước đây. Giá trị 0 có nghĩa là không có học tập và 1 nghĩa là chỉ cácthông tin mới nhất được chú trọng.là nhân tố khấu hao, nằm trong khoảng [0,1]. Các  nhỏ hơn thì có tầm quan trọng hơn.

Toàn bộ thuật toán Fuzzy Q-Learning:

1.Vào thời điểm t, quan sát trạng thái St, cung cấp vector đầu vào [HOF, RLF, HPP]

2.Khởi tạo q(Li, Oik) = 0 với i = 0:26 (số quy tắc); kK (K=25)

3.Đối với mỗi quy tắc i, tính toán mức độ sự thật với trạng thái ban đầu ai(st) Lặp lại từ bước 4 đến bước 11 cho mỗi giá trị thời gian t

4.Đối với mỗi quy tắc Li, lựa chọn 1 hoạt động Oik với quy tắc EPP (adsbygoogle = window.adsbygoogle || []).push({});

5.Tính toán hoạt động cuối cùng a(st) cho trạng thái st và chất lượng tương ứng Q(st, a(st))

6.Thực hiện hoạt động a(st) và quan sát trạng thái mới a(st+1) và phản hồi rt+1 7.Tính toán mức độ sự thật của trạng thái mới ai(st+1)

8.Tính toán hàm giá trị của trạng thái mới V(st+1)

9.Tính toán sự khác nhau giữa giá trị trạng thái mới và trạng thái cũ ΔQ 10. Câp nhật chất lượng qt+1(Lp, Op)

11. t ← t+1

Nếu các giá trị hội tụ thì dừng cập nhật.

Một phần của tài liệu Nghiên cứu mạng tự tổ chức dựa vào thuật toán điều khiển fuzzy q learning (Trang 57)