Thuật toán tiến trước

Một phần của tài liệu Bài giảng Công cụ toán học nâng cao_(Dành cho học viên cao học) (Trang 48 - 51)

- Xích Markov có phân phối giới hạn ⇔ ∀j =1, 2, ,n tồn tạ

5) Quá trình Poisson đánh dấu

2.4.3 Thuật toán tiến trước

Giả sử αt(i) là xác suất của chuỗi quan sát thực tế Ot = {o(0), o(1), …, o(t)}

⇒ αi(t) = P(o(0), o(1), …, o(t)| q(t) = qi)

⇒ Xác suất vô điều kiện của chuỗi quan sát thực tế là tổng của tất cả xác suât αi(t) với N trang thái.

Ví dụ cụ thể

Giả sử tôi có một người bạn sống ở Mỹ. Ngày nghỉ cuối tuần, chúng tôi gọi điện thoại cho nhau và anh ta kể cho tôi nghe anh ta đã làm gì trong ngày. Người bạn tôi chỉ có 3 công việc mà anh thích làm là 1) đi dạo, 2) đi chợ và 3) dọn phòng. Hiển nhiên là sự lựa chọn phải làm gì thì phụ thuộc trực tiếp vào thời tiết hôm đấy thế nào. Như vậy, tôi không nhận được thông tin cụ thể về thời tiết nơi anh bạn tôi sống nhưng tôi lại biết về xu hướng chung. Dựa vào lời kể của công việc hàng ngày của anh ta, tôi có thể đoán về thời tiết hôm đó.

⇒ Thời tiết được vận hành như một chuỗi Markov cụ thể. Có 2 trạng thái thời tiết, "Mưa" và "Nắng", nhưng tôi không quan sát trực tiếp, do đó, chúng là ẩn đối với tôi. Vào mỗi ngày, anh bạn tôi sẽ làm một trong các việc sau phụ thuộc vào thời tiết hôm đó là "đi dạo", "đi chợ" và "dọn phòng". Vì anh bạn tôi đã tường thuật lại hoạt động của mình, đó là các dữ liệu quan sát. Toàn bộ hệ thống này là một mô hình Markov ẩn (HMM).

Tôi biết được xu hướng thời tiết nói chung và tôi cũng biết bạn tôi thường thích làm gì. Nói cách khác, các thông số của HMM đã biết.

Xây dựng mô hình HMM:

Mô tả bằng ngôn ngữ lập trình Python: //Không gian trạng thái Q:

trạng_thái= ('Mưa', 'Nắng') //Tập output quan sát O

dữ_liệu_quan_sát = ('đi dạo', 'đi chợ', 'dọn phòng') //Phân phối xác xuất ban đầu Π(0)

khả_năng_ban_đầu = {'Mưa': 0.6, 'Nắng': 0.4} //Ma trận xác suất chuyển A

khả_năng_chuyển_dịch = {'Mưa' : {'Mưa': 0.7, 'Nắng': 0.3}, 'Nắng' : {'Mưa': 0.4, 'Nắng': 0.6}} //Phân phối xác suất output B

khả_năng_loại_bỏ = {

'Mưa' : {'đi dạo': 0.1, 'đi chợ': 0.4, 'dọn phòng': 0.5}, 'Nắng' : {'đi dạo': 0.6, 'đi chợ': 0.3, 'dọn phòng': 0.1}, }

Kết quả dự báo:

Trong đoạn câu lệnh trên, khả_năng_ban_đầu cho thấy tôi không chắc về trạng thái HMM khi người bạn đầu tiên gọi điện cho tôi (tất cả cái tôi biết là trời có vẻ mưa). khả_năng_chuyển_dịch cho thấy những thay đổi về thời tiết trong chuỗi Markov. Trong ví dụ này, chỉ có 30% khả năng ngày mai trời sẽ nắng nếu hôm nay trời mưa. Khả_năng_loại_bỏ cho thấy anh bạn thích làm những việc gì mỗi ngày. Nếu trời mưa thì có đến 50% khả năng anh bạn này sẽ dọn phòng, trong khi trời nắng thì 60% khả năng anh ta sẽ đi dạo.

Chương 3. Các phương pháp toán tối ưu §3.1 Bài toán tối ưu tổng quát

3.1.1 Đặt bài toán

Khi giải quyết các bài toán thực tế, một vấn đề hết sức quan trọng cần phải quan tâm là tiết kiệm vật tư, vốn, tài nguyên, sức lao động và thời gian, tức là cần tối ưu hóa theo một nghĩa nào đó.

Dạng tổng quát:

Cực đại (hoặc cực tiểu) hàm: F(x) → max (min) (1) Điều kiện: Gi(x) ≤ (=, ≥) B, i = 1..m (2)

x ∈ X ⊂ Rn (3) Bài toán (1)-(3) là một qui hoạch:

• F(x) gọi là hàm mục tiêu,

• Gi(x), i = 1..m, gọi là các hàm ràng buộc, mỗi đẳng thức hoặc bất đẳng thức trong (2) gọi là một ràng buộc.

• D = { x ∈ X | Gi(x) ≤ (=, ≥) B, i = 1..m} gọi là miền chấp nhận được. • x = (x1, ..., xn) ∈ D gọi là một phương án (hay lời giải) chấp nhận được. - Một phương án x*∈ D được gọi là phương án (lời giải) tối ưu nếu:

F(x*) ≥ F(x), ∀ x ∈ D (đối với bài toán cực đại) F(x*) ≤ F(x), ∀ x ∈ D (đối với bài toán cực tiểu). - F(x*) gọi là giá trị tối ưu của bài toán (1)-(3).

Một phần của tài liệu Bài giảng Công cụ toán học nâng cao_(Dành cho học viên cao học) (Trang 48 - 51)

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

(138 trang)
w