ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC BÁCH KHOA ---BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH ĐỀ TÀI 14: MÔ HÌNH MARKOV LỚP L17, NHÓM 14 GVHD: NGUYỄN XUÂN MỸ Tp... ĐẠI HỌC QUỐ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH
ĐỀ TÀI 14: MÔ HÌNH MARKOV
LỚP L17, NHÓM 14
GVHD: NGUYỄN XUÂN MỸ
Tp HCM, ngày 20 tháng 4 năm 2022
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH
ĐỀ TÀI 14: MÔ HÌNH MARKOV
Nhóm 14:
1 Nguyễn Trọng Đại
2 Hoàng Minh Hải Đăng
3 Dương Nguyễn Tấn Đạt
4 Phan Đức Đạt
5 Trần Tiến Đạt
6 Trần Hữu Điển
7 Lã Minh Đức
8 Đỗ Minh Đức
MSSV: 2113114 MSSV: 2110120 MSSV: 2113118 MSSV: 2113152 MSSV: 2113162 MSSV: 2113188 MSSV: 2110132 MSSV: 2113260
Tp HCM, ngày 20 tháng 4 năm 2022
Trang 3Mục lục
1 Đề tài bài tập lớn: 1
2 Cơ sở lí thuyết 1
2.1 Giới thiệu mô hình Markov 1
2.2 Mô hình Markov được sử dụng rộng rãi để: 1
2.3 Phép nhân hai ma trận 2
2.4 Phép nâng lên lũy thừa 2
3 Các bước chạy chương trình 3
3.1 Giải bài toán cụ thể 3
3.2 Các bước giải của bài toán 3
4 Đoạn code dùng cho bài toán 4
5 Các bước thực hiện kết quả của bài toán trên 5
6 Ví dụ minh họa 7
Tài liệu tham khảo 9
Trang 41 Đề tài bài tập lớn
Chủ đề 14:
• Giới thiệu mô hình Markov
• Viết chương trình dùng mô hình Markov giải một bài toán cụ thể
• Tìm các ứng dụng khác nhau của mô hình Markov
2 Cơ sở lí thuyết
2.1 Giới thiệu mô hình Markov
Mô hình markov là mô hình trang thái của một hệ thống hay một quy trình sau một thời gian được biểu hiện qua mô hình trạng thái ban đầu và thời gian cũng như là số lượng cụ thể ban đầu của từng trạng thái
2.2 Mô hình Markov được sử dụng rộng rãi để:
─ Mô tả thế giới một cách thực tế hơn
─ Là một công cụ hữu ích giúp dự đoán dài hạn về một hệ thống hoặc là một quy trình Ví dụ:
Dự đoán dài hạn Mô hình Markov mô tả theo thời gian nên ta có thể đặt những câu hỏi về trạng thái của một hệ thống trong tương lai
─ Nó phát triển như thế nào theo thời gian: hệ thống sẽ ở trạng thái nào sau thời gian mà người
ta cần biết
─ Truy tìm các trình tự có thể xảy ra trong quá trình: khi hệ thống đi từ trạng thái A đi sang trạng thái B trong thời gian mà người ta cần biết Khả năng có nó đi theo con đường đã vạch ra
là bao nhiêu
Công thức tính của mô hình Markov: X k = M k X0
Chú thích:
Trang 5─ M: ma trận biểu thị trạng thái ban đầu
─ k: thời gian
─X0: ma trận biểu thị số lượng từng trạng thái lúc đầu
─ Xk: ma trận biểu thị trạng thái sau thời gian k
2.3 Phép nhân hai ma trận
Cho A = (aij )m×n, B = (bij )n×p Khi đó A × B = C = (cij )m×p, với cij = ai1b1j + ai2b2j + · · · + ainbnj
Để tìm phần tử cij của ma trận tích, ta lấy hàng i của A nhân tương ứng với cột j của B và cộng các tích lại với nhau
a
ip
•
b
1 j
b
pj
=
c
ij
Điều kiện phép nhân: số cột của ma trận trước phải bằng với số hàng của ma trận sau
2.4 Phép nâng lên lũy thừa
Cho A là ma trận vuông cấp n Ta định nghĩa :
A0=I
A1=A
A2=A.A
∀m ∈ N*, A m =A.A A.
2
Trang 63 Các bước chạy chương trình
B1: Nhập ma trận X0, M, k
B2: Kiểm tra xem ma trận M và X0 có nhân được với nhau không
B3: Tích hai ma trận M và X0 theo công thức X k = M k X0
3.1 Giải bài toán cụ thể
Trong một chung cư có 5000 dân( khách hàng), và có 3 siêu thị là A,B,C Giả sử, trong tháng đầu tiên số khách hàng của từng siêu thị lần lượt là 1000,1500,2500 Người ta nhận thấy mỗi tháng có 10% khách hàng từ A sang B và có 10% khách hàng từ A sang C Từ B có 20% khách hàng sang A và 15% khách hàng sang C Từ C có 15% khách chuyển sang A và 10% chuyển sang B Dự đoán số lượng khách hàng sau 3 tháng của từng siêu thị
3.2 Các bước giải của bài toán
0,8 0,2 B1: Nhập ma trận M : 0,1 0,65
0,1 0,15 1000
Ma trận X0: 1500 , k=3
2500
0,15 0,1 0,75
B2: kiểm tra số liệu phù hợp, đúng theo yêu cầu, ma trận M và X0 nhân được với nhau
B3: Số lượng khách hàng sau 3 tháng :
Tích Xk=Mk.X0
Vậy số lượng khách hàng sau 3 tháng của siêu thị A,B,C lần lượt là 1966,1177,1857.
Trang 74 Đoạn code dùng cho bài toán
clear;
close all;
clc;
% nhap gia tri ban dau cua bai toan
disp('Ti le phan tram khach hang chuyen tu sieu thi nay sang sieu thi khac sau 1 thang lan luotla:');
A_to_B = input('Tu sieu thi A sang sieu thi B: ');
A_to_C = input('Tu sieu thi A sang sieu thi C: ');
B_to_A = input('Tu sieu thi B sang sieu thi A: ');
B_to_C = input('Tu sieu thi B sang sieu thi C: ');
C_to_A = input('Tu sieu thi C sang sieu thi A: ');
C_to_B = input('Tu sieu thi C sang sieu thi B: ');
disp('So luong khach hang ban dau cua moi sieu thi:');
A = input('Sieu thi A: ');
B = input('Sieu thi B: ');
C = input('Sieu thi C: ');
n = input('So luong khach hang can tim o moi sieu thi sau n thang voi n = ');
% khoi tao ma tran P, X_0
P = [(1 - A_to_B - A_to_C) B_to_A C_to_A; A_to_B (1 - B_to_A - B_to_C) C_to_B; A_to_C B_to_A (1 - C_to_A - C_to_B)];
X_0 = [A; B; C];
fprintf('So luong khach hang cua sieu thi A sau %d thang la %d khach hang\n',
n, round(X_n(1,1)));
fprintf('So luong khach hang cua sieu thi B sau %d thang la %d khach hang\n', n,
round(X_n(2,1)));
fprintf('So luong khach hang cua sieu thi C sau %d thang la %d khach hang\n', n,
round(X_n(3,1)));
4
Trang 85 Các bước thực hiện kết quả của bài toán trên
Ti le phan tram khach hang chuyen tu sieu thi nay sang sieu thi khac sau 1 thang lan luot la:
Tu sieu thi A sang sieu thi B: 0.1
Tu sieu thi A sang sieu thi C: 0.1
Tu sieu thi B sang sieu thi A: 0.2
Tu sieu thi B sang sieu thi C: 0.15
Tu sieu thi C sang sieu thi A: 0.15
Tu sieu thi C sang sieu thi B: 0.1
So luong khach hang ban dau cua moi sieu thi:
Sieu thi A: 1000
Sieu thi B: 1500
Sieu thi C: 2500
Mo hinh markov la:
0.8000 0.2000 0.1500
0.1000 0.6500 0.1000
0.1000 0.1500 0.7500
X_0 la:
1000
1500
2500
So luong khach hang can tim o moi sieu thi sau n thang voi n = 3
So luong khach hang cua sieu thi A sau 3 thang la 1965 khach hang
Trang 9So luong khach hang cua sieu thi B sau 3 thang la 1176 khach hang
So luong khach hang cua sieu thi C sau 3 thang la 1859 khach hang
6
Trang 106 Ví dụ minh họa
Giả sử tôi có một người bạn sống ở rất xa Hàng ngày 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ợ
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 đó
Như vậy, 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
trạng thái = ('Mưa', 'Nắng’)
dữ liệu quan sát = ('đi dạo', 'đi chợ', 'dọn phòng')
khả_năng_ban_đầu = {'Mưa': 0.6, 'Nắng': 0.4}
khả_năng_chuyển_dịch = {
'Mưa' : {'Mưa': 0.7, 'Nắng': 0.3},
Trang 11'Nắn' : {'Mưa': 0.4, 'Nắng': 0.6},
}
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},
}
8
Trang 12Tài liệu tham khảo
1 Giáo trình đại số tuyến tính thầy Đặng Văn Vinh
https://ichi.pro/vi/mo-hinh-markov-va-chuoi-markov-duoc-giai-thich-trong-cuoc-song-thuc-thoi-quen-tap-luyen-co-xac-suat-112031996615283
3 Trang web academia.edu
ARKOV_V%C3%80_%E1%BB%A8NG_D%E1%BB%A4NG?email_work_card=thumbnail,