Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 10

ĐẠ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

TP HCM, tháng 4 năm 2021

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
Nhóm Thực Hiện: Nhóm 14
Giáo viên hướng dẫn: Nguyễn Xuân Mỹ
Danh sách sinh viên của nhóm:

Họ và tên MSSV
 Nguyễn Trọng Đại 2113114
 Hoàng Minh Hải Đăng 2110120
 Dương Nguyễn Tấn Đạt 2113118
 Phan Đức Đạt 2113152
 Trần Tiến Đạt 2113162
 Trần Hữu Điển 2113188
 Lã Minh Đức 2110132
 Đỗ Minh Đức 2113260

2
Mục Lục

1. Đề tài bài tập lớn : 4


2. Cơ sở lý thuyết : 4
2.1. Giới thiệu mô hình Markov 4
2.2. Mô hình Markov được sử dụng rộng rãi để 4
2.3. Phép nhân hai ma trận 5
2.4. Phép nâng lên lũy thừa 5
3. Các bước chạy chương trình : 5
3.1. Đề bài toán cụ thế 6
3.2. Các bước giải của bài toán 6
4. Đoạn code dùng cho bài toán : 7
5. Các bước thực hiện bài toán trên : 8
6. Một số ứng dụng thực tế của mô hình Markov : 9
7. Tài liệu tham khảo : 10

3
PHẦN BÁO CÁO NHÓM

1. Đề 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 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:

Chú thích:

4
─ 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.

Đ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*, Am=A.A......A.

3. 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

5
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:

B1: Nhập ma trận M :

Ma trận X0: , k=3

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.

4. Đoạn code dùng cho bài toán

clear;

6
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
luot la:');
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];


% in ket qua ra man hinh
X_n = P^(round(n)) * X_0;
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)));

5 Các bước thực hiện kết quả của bài toán trên:

nhap vao so luong khach hang ban dau

7
so luong khach hang tai sieu thi A ban dau la :1000
so luong khach hang vao sieu thi B ban dau la :1500
so luong khach hang vao sieu thi C ban dau la :2500
ti le (%)khach hang tu sieu thi A sang thieu thi B sau moi thang la: 0.1
ti le (%)khach hang tu sieu thi A sang sieu thi C sau moi thang la: 0.1
ti le (%)khach hang o lai sieu thi A sau moi thang la: 0.8
ti le (%)khach hang tu sieu thi B sang sieu thi A sau moi thang la: 0.2
ti le (%)khach hang tu sieu thi B sang sieu thi C sau moi thang la: 0.15
ti le (%)khach hang o lai sieu thi B la: 0.65
ti le (%)khach hang tu sieu thi C sang sieu thi A sau moi thang la: 0.15
ti le (%)khach hang tu sieu thi C sang sieu thi B sau moi thang la: 0.1
ti le (%)khach hang o lai sieu thiu C la: 0.75
nhap vao so luong khach hang ban dau
so luong khach hang tai sieu thi A ban dau la:1000
so luong khach hang vao sieu thi B ban dau la:1500
so luong khach hang vao sieu thi C ban dau la:2500

mo hinh Markov la
0.8000 0.2000 0.1500
0.1000 0.6500 0.1000
0.1000 0.1500 0.7500

nhap vao so chu ki:3


ket luan;
so khach hang o lai sieu thi A la:1966 khach hang
so khach hang o lai sieu thi B la:1177 khach hang
so khach hang o lai sieu thi C la:1857 khach hang

8
5. 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},
'Nắn' : {'Mưa': 0.4, 'Nắng': 0.6},

9
}

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},
}

Tài liệu tham khảo


1. Giáo trình đại số tuyến tính thầy Đặng Văn Vinh.
2.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 https://www.academia.edu/22879262/Ch
%C6%B0%C6%A1ng_IV_PH%C3%82N_T%C3%8DCH_MARKOV_V%C3%80_%E1%BB
%A8NG_D%E1%BB%A4NG?email_work_card=thumbnail,

10

You might also like