Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

Đề bài

1. Các thuật toán đã học và ứng dụng thực nghiệm cho bài toán thực tế, trong
đó:

* Trình bày về thuật toán

* Ứng dụng thuật toán xử lý bài toán thực tế:

- Phát biểu bài toán, ý nghĩa thực tế bài toán

- Mô tả bộ dữ liệu dùng cho bài toán

- Mô hình hoá dữ liệu cho bài toán, các bước xử lý dữ liệu

- Trình bày các bước áp dụng thuật toán

- Trình bày phương pháp đánh giá thuật toán

- Nhận xét ưu nhược điểm của thuật toán

- Đề xuất cải tiến cho thuật toán

2. Thực hiện chạy từng bước thuật toán cho bộ dữ liệu cho trước: Xây dựng cây
quyết định, Xây dựng mạng nơron, Thuật toán k-mean,...

Giải
1. Các thuật toán đã học và ứng dụng thực nghiệm cho bài toán thực tế, trong
đó:

Thuật toán cho bài toán “Bài toán cho thuê máy”

* Trình bày về thuật toán:

Thuật toán cho thuê máy có thể được mô tả như sau:

− Đầu vào:

+ Bộ dữ liệu về các máy cần được cho thuê.


+ Yêu cầu sử dụng máy từ các khách hàng.
+ Thời gian dự kiến sử dụng máy từng khách hàng.
− Đầu ra: phân bổ máy cho từng khách hàng sao cho tổng lợi nhuận là lớn nhất.

* Ứng dụng thuật toán xử lý bài toán thực tế:

− Phát biểu bài toán, ý nghĩa thực tế: bài toán này xuất phát từ nhu cầu quản lý và
phân chia tài nguyên máy móc hiệu quả trong môi trường cho thuê. Ý nghĩa
thực tế là tối ưu hóa lợi nhuận thông qua việc quản lý một tập hợp các máy và
phân bổ chúng cho các khách hàng sao cho hiệu suất là cao nhất.
− Mô tả bộ dữ liệu dùng cho bài toán:
+ Dữ liệu bao gồm thông tin về các máy có sẵn (giá thuê, khả năng làm
việc, v.v.).
+ Yêu cầu và thời gian sử dụng từng khách hàng.
− Mô hình hoá dữ liệu: mô hình hoá dữ liệu bằng cách sử dụng biểu đồ đồ thị,
trong đó các đỉnh biểu diễn máy và cạnh biểu diễn khả năng sử dụng máy đó
trong một khoảng thời gian nhất định.
− Các bước xử lý dữ liệu:
+ Tiền xử lý dữ liệu để chuẩn hóa thông tin về giá thuê, khả năng làm
việc, và thời gian sử dụng.
+ Xác định các ràng buộc cụ thể, chẳng hạn như khả năng máy chỉ có thể
phục vụ một khách hàng tại một thời điểm.
− Các bước áp dụng thuật toán: sử dụng vét cạn để giải quyết bài toán
+ Bước 1: Khởi tạo vòng lặp i từ 0 đến N(N là số khách hàng).
+ Bước 2: Thêm phần tử Customers[i] vào danh sách (Customers là danh
sách khách hàng). Sau đó thêm danh sách vừa rồi vào “danh sách quản
lý”.
+ Bước 3: Khởi tạo vòng lặp j từ i + 1 đến N.
+ Bước 4: Kiểm tra xem phần từ Customers[j] có thỏa mãn với tất cả danh
sách trong “danh sách quản lý hay không”, nếu có thêm vào.
+ Bước 5: Tăng j lên 1 đơn vị và quay lại bước 4. Nếu j = N thì xuống
bước 6.
+ Bước 6: So sánh từng danh sách trong “danh sách quản lý”. Danh sách
nào có số ngày thuê lớn nhất thì gán vô “danh sách đáp án”.
+ Bước 7: Tăng i lên 1 đơn vị và quay lại bước 2. Nếu i = N thì xuống
bước 8.
+ Bước 8: Trả về “danh sách đáp án”.
− Nhận xét ưu nhược điểm của thuật toán:
+ Ưu điểm: Tính linh hoạt, có khả năng tối ưu hóa lợi nhuận toàn cầu.
+ Nhược điểm: Có thể mất thời gian lớn với bộ dữ liệu lớn.
− Đề xuất cải tiến cho thuật toán: Nếu danh sách cực lớn, tốn thời gian chi phí,
thì chúng ta nên áp dụng giải thuật tham lam để giải quyết bài toán. Mặc dù đáp
án có thể không hoàn hảo, nhưng kết quả cho ra chấp nhận được và tốc độ xử
lý nhanh.
* Kết luận: thuật toán cho thuê máy là một ứng dụng thực tế quan trọng trong lĩnh vực
quản lý tài nguyên. Việc tối ưu hóa phân chia máy cho khách hàng không chỉ giúp
tăng cường hiệu suất mà còn mang lại lợi nhuận lớn cho doanh nghiệp. Cải tiến liên
tục của thuật toán là cần thiết để đáp ứng với sự biến động của môi trường kinh doanh
và quản lý tài nguyên.

2. Thực hiện chạy từng bước thuật toán cho bộ dữ liệu cho trước: Xây dựng cây
quyết định, Xây dựng mạng nơron, Thuật toán k-mean,...

K-MEAN
1. Phương pháp thực hiện
• Bước 1: Chọn ngẫu nhiên K điểm bất kì trong tập huấn luyện để làm các tâm
cụm ban đầu.
• Bước 2: Phân nhóm các điểm dữ liệu vào cụm có tâm gần nó nhất.
• Bước 3: Cập nhập tâm cụm bằng cách lấy trung bình cộng của các điểm dữ
liệu.
• Bước 4: Nếu tâm cụm ở bước 3 không thay đổi so với vòng lặp trước đó thì
dừng thuật toán.
• Bước 5: Quay lại bước 2.
2. Khoảng cách Euclid

3. Ví dụ:
Khoảng cách giữa A(2, 10) và T2(5, 8): √(𝟐 − 𝟓)𝟐 + (𝟏𝟎 − 𝟖)𝟐 = 3.60555 ≈ 3.61
Tâm cụm 2: (8 + 5 + 7 + 6 + 4) / 5 = 6 và (4 + 8 + 5 + 4 + 9) / 5 = 6. Suy ra T2(6, 6).
5 là số phần tử: C, D, E, F và H
DECISION TREE

−9 9 5 5
VD: [9+,5-] => E = log 2 − log 2 ≈ 0.94
14 14 14 14
[9+,5-] có nghĩa là 9 Yes, 5 No của cột PlayTennis.
[6+,2-] cũng tương tự, 6 Yes, 2 No của cột PlayTennis của những dòng
“Weak” ở cột Wind.
−𝟔 𝟔 𝟐 𝟐
E(𝑺𝒘𝒆𝒂𝒌 ) = 𝑬([𝟔+, 𝟐−]) = 𝐥𝐨𝐠 𝟐 − 𝐥𝐨𝐠 𝟐 = 𝟎. 𝟖𝟏𝟏𝟐𝟕𝟖𝟏𝟐𝟒𝟒
𝟖 𝟖 𝟖 𝟖

Gain(S, Outlook) max => chọn Outlook làm root.


Tương tự, sau khi Outlook làm root ta có 3 trường hợp “Sunny”,
“Overcast” và “Rain”. Ta có 𝑺𝒔𝒖𝒏𝒏𝒚 = [𝟐+, 𝟑−] => E(𝑺𝒔𝒖𝒏𝒏𝒚) = 0.97

Tính được, ta có Gain(𝑺𝒔𝒖𝒏𝒏𝒚, Humidity) max nên chọn Humidity ở


nhánh Sunny
Còn Overcast thì luôn luôn Yes nên không cần xét, xét tiếp 𝑺𝑹𝒂𝒊𝒏 =
{D4, D5, D6, D10, D14} = [3+, 3-]. E(𝑺𝑹𝒂𝒊𝒏 ) = 1.
Trong 𝑺𝑹𝒂𝒊𝒏 ta có: 𝑺(𝑹𝒂𝒊𝒏)𝑯𝒊𝒈𝒉 = {D4, D14} = [1+, 1-] =>
E(𝑺(𝑹𝒂𝒊𝒏)𝑯𝒊𝒈𝒉)=1. Tương tự tính được E(𝑺(𝑹𝒂𝒊𝒏)𝑵𝒐𝒓𝒎𝒂𝒍 ) = 0.918
𝟐 𝟑
Từ đó tính được Gain(𝑺𝑹𝒂𝒊𝒏 , Humidity) = 1 – * 1 - * 0.918 = 0.0492
𝟓 𝟓

Tương tự tính được


𝟑 𝟐 𝟎
Gain(𝑺𝑹𝒂𝒊𝒏 , Temperature) = 1 – * 0.918 - * 1 - = 0.0492
𝟓 𝟓 𝟓
𝟑 𝟐
Gain(𝑺𝑹𝒂𝒊𝒏 , Wind) = 1 – * 0 - * 0 = 1
𝟓 𝟓

 Gain(𝑺𝑹𝒂𝒊𝒏 , Wind) max chọn Win ở nhánh 𝑺𝑹𝒂𝒊𝒏


Đề mẫu:

Giả thuyết rằng S là một tập được mô tả bởi các thuộc tính bao gồm thuộc
tính Xuất xứ có thể nhận giá trị Trung Quốc hoặc Âu/Mỹ. Như trong bảng,
ta giả định rằng S là một tập gồm 8 mẫu example trong [6+,2-]. Giả sử
trong 8 mẫu này có 2 mẫu positive và 2 mẫu negative có Xuất xứ = Trung
Quốc, và các mẫu còn lại có Xuất xứ = Âu/Mỹ. Thu hoạch thông tin thu
được do việc sắp xếp 8 mẫu ban đầu theo thuộc tính Xuất xứ có thể được
tính toán như sau:
Xuất xứ ={Trung Quốc, Âu/Mỹ}: 𝑺𝑻𝒓𝒖𝒏𝒈 𝑸𝒖ố𝒄= [2+, 2-]; 𝑺Â𝒖/𝑴ỹ = [4+, 0-]

Tương tự:
Thể loại={MMORPG, MOBA, Sport}:
𝑺𝑴𝑴𝑶𝑹𝑷𝑮 =[3+, 0-]; 𝑺𝑴𝑶𝑩𝑨 =[2+, 1-]; 𝑺𝑺𝒑𝒐𝒓𝒕 =[1+,1-]

Đồ họa={Đẹp, Tương đối}: 𝑺Đẹ𝒑 = [3+, 1-]; 𝑺𝑻ươ𝒏𝒈 đố𝒊 = [3+, 1-]

Hình thức trả phí={Free to play, Pay to play}:


𝑺𝑭𝒓𝒆𝒆 𝒕𝒐 𝒑𝒍𝒂𝒚 = [3+, 1-]; 𝑺𝑷𝒂𝒚 𝒕𝒐 𝒑𝒍𝒂𝒚 = [3+, 1-]

−6 6 2 2
Sau đó tính được: E(S) = log 2 − log 2 ≈ 0.81
8 8 8 8
𝟒 𝟒
Gain(S, Xuất xứ) = 𝟎. 𝟖𝟏 − ∗ 𝟏 − ∗ 𝟎 = 𝟎. 𝟑𝟏 (Âu/Mỹ ko có
𝟖 𝟖
negative(0-) nên khỏi cần tính nó vô).
𝟑 𝟑 𝟐
Gain(S, Thể loại) = 𝟎. 𝟖𝟏 − ∗ 𝟎 − ∗ 𝟎. 𝟗𝟏𝟖 − ∗ 𝟏 = 𝟎. 𝟐𝟏𝟓𝟕𝟓
𝟖 𝟖 𝟖
𝟒 𝟒
Gain(S, Đồ họa) = 𝟎. 𝟖𝟏 − ∗ 𝟎. 𝟖𝟏 − ∗ 𝟎. 𝟖𝟏 = 𝟎
𝟖 𝟖
𝟒 𝟒
Gain(S, Hình thức trả phí) = 𝟎. 𝟖𝟏 − ∗ 𝟎. 𝟖𝟏 − ∗ 𝟎. 𝟖𝟏 = 𝟎
𝟖 𝟖

 Gain(S, Xuất xứ) lớn nhất nên chọn Xuất xứ là root.

Xuất xứ

Trung quốc Âu/Mỹ

{1, 3, 5, 6} {2, 4, 7, 8}

[2+,2-] Yes

Ta có: 𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐 = {1, 3, 5, 6} = [2+, 2 −] và E(𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐 ) = 1


𝟏 𝟐 𝟏
Gain(𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐 , Thể loại) = 𝟏 − ∗𝟎− ∗ 𝟏 − ∗ 𝟎 = 𝟎. 𝟓
𝟒 𝟒 𝟒
𝟐 𝟐
Gain(𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐 , Đồ họa) = 𝟏 − ∗𝟏− ∗𝟏= 𝟎
𝟒 𝟒
𝟑 𝟏
Gain(𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐 , Hình thức trả phí) = 𝟏 − ∗ 𝟎. 𝟗𝟏𝟖 − ∗ 𝟎 = 𝟎. 𝟑𝟏𝟏𝟓
𝟒 𝟒

 Gain(𝑺𝑻𝒓𝒖𝒏𝒈 𝑸𝒖ố𝒄, Thể loại) lớn nhất nên chọn Thể loại cho nhánh
Trung Quốc

Xuất xứ

Trung quốc Âu/Mỹ

Thể loại {2, 4, 7, 8}

Yes

MMORPG Sport MOBA

{3, 6} Yes
Yes
[1+,1-]
Ta có: 𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐𝑇ℎể 𝑙𝑜ạ𝑖 = {3, 6} = [1+, 1 −] và E(𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐𝑇ℎể 𝑙𝑜ạ𝑖 ) = 1
𝟐
Gain(𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐𝑇ℎể 𝑙𝑜ạ𝑖 , Đồ họa) = 𝟏 − ∗𝟏= 𝟎
𝟐
𝟏 𝟏
Gain(𝑆𝑇𝑟𝑢𝑛𝑔 𝑄𝑢ố𝑐𝑇ℎể 𝑙𝑜ạ𝑖 , Hình thức trả phí) = 𝟏 − ∗𝟎 − ∗𝟎= 𝟏
𝟐 𝟐

 Gain(𝑺𝑻𝒓𝒖𝒏𝒈 𝑸𝒖ố𝒄𝑻𝒉ể 𝒍𝒐ạ𝒊 , Hình thức trả phí) lớn nhất chọn Hình
thức trả phí cho nhánh Sport.

Xuất xứ

Trung quốc Âu/Mỹ

Thể loại {2, 4, 7, 8}

Yes

MMORPG Sport MOBA

Yes
Yes Hình thức
trả phí

Pay to play Free to play

No Yes
NEURAL NETWORK(Mạng Nơ-ron)

a. 𝑣3 = 𝑤13 ∗ 𝑁𝑜𝑑𝑒1 + 𝑤23 ∗ 𝑁𝑜𝑑𝑒2 = −2 ∗ 1 + 3 ∗ 0 = −2 < 0


=> 𝑝(𝑣3 ) = 0, 𝑁𝑜𝑑𝑒3 = 0
𝑣4 = 𝑤14 ∗ 𝑁𝑜𝑑𝑒1 + 𝑤24 ∗ 𝑁𝑜𝑑𝑒2 = 4 ∗ 1 + 3 ∗ 0 = 4 ≥ 0
=> 𝑝(𝑣4 ) = 1, 𝑁𝑜𝑑𝑒4 = 1
𝑣5 = 𝑤35 ∗ 𝑁𝑜𝑑𝑒3 + 𝑤45 ∗ 𝑁𝑜𝑑𝑒4 = 1 ∗ 0 − 1 ∗ 1 = −1 < 0
=> 𝑝(𝑣5 ) = 0, 𝑁𝑜𝑑𝑒5 = 0
𝑣6 = 𝑤36 ∗ 𝑁𝑜𝑑𝑒3 + 𝑤46 ∗ 𝑁𝑜𝑑𝑒4 = −1 ∗ 0 + 1 ∗ 1 = 1 ≥ 0
=> 𝑝(𝑣6 ) = 1, 𝑁𝑜𝑑𝑒6 = 1
b là Bias
Trường hợp X1(0.1, -0.3, 0.2) và O1(0.8, -0.1) ta có Node1 = 0.1, Node2 =
-0.3, Node3 = 0.2:
1
𝑁𝑜𝑑𝑒4 =
1 + 𝑒 −(𝑁𝑜𝑑𝑒1∗𝑤1 +𝑁𝑜𝑑𝑒2∗𝑤3 +𝑁𝑜𝑑𝑒3∗𝑤5 +𝐵𝑖𝑎𝑠)
= 0.4875
1
𝑁𝑜𝑑𝑒5 =
1 + 𝑒 −(𝑁𝑜𝑑𝑒1∗𝑤2 +𝑁𝑜𝑑𝑒2∗𝑤4 +𝑁𝑜𝑑𝑒3∗𝑤6 +𝐵𝑖𝑎𝑠)
= 0.455
1
𝑁𝑜𝑑𝑒6 = = 0.614
1 + 𝑒 −(𝑁𝑜𝑑𝑒4∗𝑤7 +𝑁𝑜𝑑𝑒5∗𝑤9+𝐵𝑖𝑎𝑠)
1
𝑁𝑜𝑑𝑒7 = = 0.634
1 + 𝑒 −(𝑁𝑜𝑑𝑒4∗𝑤8+𝑁𝑜𝑑𝑒5∗𝑤10 +𝐵𝑖𝑎𝑠)
Actual là O1(0.8, -0.1), output=(Node6, Node7) = (0.614, 0.634)
(0.8 − 0.614)2 + (−0.1 − 0.634)2
𝐸𝑚𝑒𝑎𝑛 = = 0.286676
2

Trường hợp X2(-0.45, -1.0, 0.15) và O2(-0.15, 1.0) ta có Node1 = -0.45,


Node2 = -1.0, Node3 = 0.15:
1
𝑁𝑜𝑑𝑒4 =
1 + 𝑒 −(𝑁𝑜𝑑𝑒1∗𝑤1 +𝑁𝑜𝑑𝑒2∗𝑤3 +𝑁𝑜𝑑𝑒3∗𝑤5 +𝐵𝑖𝑎𝑠)
= 0.3764
1
𝑁𝑜𝑑𝑒5 =
1 + 𝑒 −(𝑁𝑜𝑑𝑒1∗𝑤2 +𝑁𝑜𝑑𝑒2∗𝑤4 +𝑁𝑜𝑑𝑒3∗𝑤6 +𝐵𝑖𝑎𝑠)
= 0.3197
1
𝑁𝑜𝑑𝑒6 = = 0.3991
1+ 𝑒 −(𝑁𝑜𝑑𝑒4∗𝑤7 +𝑁𝑜𝑑𝑒5∗𝑤9 +𝐵𝑖𝑎𝑠)
1
𝑁𝑜𝑑𝑒7 = = 0.3884
1+ 𝑒 −(𝑁𝑜𝑑𝑒4∗𝑤8 +𝑁𝑜𝑑𝑒5∗𝑤10 +𝐵𝑖𝑎𝑠)
(−0.15 − 0.3991)2 + (1.0 − 0.3884)2
𝐸𝑚𝑒𝑎𝑛 = = 0.33778
2

You might also like