Robot đi một episode và nhận phần thưởng r0,r1,…,rT−1. Một bước ở xa đích có giá trị bao nhiêu? Return của bước t cộng mọi phần thưởng từ bước ấy về sau, phần thưởng càng xa càng bị chiết khấu:
Gt=rt+γrt+1+γ2rt+2+⋯=rt+γGt+1,GT=0.
Hãy tính Gt cho mọi t.
Dữ liệu vào
Một đối tượng JSON gồm rewards và gamma.
Kết quả
Một đối tượng JSON gồm returns (dãy G0..GT−1) và G0.
Chấm điểm
Có 20 test, mỗi test 5 điểm. Số thực được chấm với sai số khoảng 10−7.
Phương trình Bellman tính việc xa bằng việc gần: giá trị của một hành động là phần thưởng ngay cộng giá trị (chiết khấu) của trạng thái tới.
Cho mô hình môi trường P: P[s][a] là danh sách các khả năng [p,s′,r] (xác suất, trạng thái tới, phần thưởng) khi làm a ở s; ước lượng giá trị hiện tại V; hệ số γ; tập trạng thái kết thúc terminal (giá trị luôn coi là 0).
Với mỗi trạng thái s trong P (theo thứ tự chuỗi) và mỗi hành động a:
Q(s,a)=∑p⋅(r+γV(s′)),
với V(s′)=0 nếu s′ là trạng thái kết thúc. Hành động tham lam là hành động có Q lớn nhất (bằng nhau thì tên nhỏ hơn), và giá trị mới của s là Q ấy.
Dữ liệu vào
Một đối tượng JSON gồm P, V, gamma và terminal.
Kết quả
Một đối tượng JSON gồm states: từ trạng thái tới {"Q", "greedy", "new_V"}.
Chấm điểm
Có 20 test, mỗi test 5 điểm. Số thực được chấm với sai số khoảng 10−7.
Q-learning không cần biết mô hình môi trường: nó học từ từng bộ trải nghiệm (s,a,r,s′), tức ở trạng thái s làm a, nhận r và tới s′. Bài này chạy đúng chuỗi cập nhật ấy.
Mọi Q(s,a) ban đầu bằng 0. Với mỗi bộ trải nghiệm theo thứ tự:
Q(s,a)←(1−α)Q(s,a)+α(r+γa′maxQ(s′,a′)),
trong đó nếu s′ là trạng thái kết thúc (trong terminal) thì phần maxa′Q(s′,a′) coi là 0. Mỗi bước dùng giá trị Qhiện tại (đã gồm các cập nhật trước).
Báo giá trị mới sau từng cập nhật, bảng Q cuối cùng, và hành động tham lam ở mỗi trạng thái không kết thúc (bằng nhau thì hành động đứng trước trong actions).
Dữ liệu vào
Một đối tượng JSON gồm states, actions, gamma, alpha, terminal và experience (mỗi bộ là [s,a,r,s′]).
Kết quả
Một đối tượng JSON gồm updates (mỗi cập nhật là {"state", "action", "value"}), Q (từ trạng thái tới từ hành động tới giá trị) và greedy.
Chấm điểm
Có 20 test, mỗi test 5 điểm. Số thực được chấm với sai số khoảng 10−7.
Khi biết đầy đủ mô hình (xác suất chuyển trạng thái, phần thưởng), ta có thể lập kế hoạch mà không cần thử: value iteration. Bài này tính giá trị tối ưu theo từng horizon (số bước còn lại), và giá trị vô hạn bước của một policy cố định.
Phần thưởng gắn với trạng thái: ở trạng thái s nhận R(s) rồi mới chuyển. transitions[s][a] là phân phối trạng thái tới khi làm a ở s.
Báo Vh và các hành động tối ưu ở mỗi trạng thái (mọi hành động đạt giá trị lớn nhất, sai lệch dưới 10−9, theo thứ tự trong actions).
2. Policy cố định. Với policy π cho sẵn, giá trị vô hạn bước thỏa Vπ(s)=R(s)+γ∑s′P(s′∣s,π(s))Vπ(s′). Giải hệ phương trình tuyến tính ấy.
Dữ liệu vào
Một đối tượng JSON gồm states, actions, gamma (<1),horizon, reward, transitions và policy.
Kết quả
Một đối tượng JSON gồm horizons (với mỗi h là {"h", "V", "best_actions"}) và policy_value.
Giới hạn
Không quá 5 trạng thái, H≤4.
Chấm điểm
Có 20 test, mỗi test 5 điểm. Số thực được chấm với sai số khoảng 10−7.