Trong lĩnh vực Công Nghệ Thông Tin nói riêng, yêu cầu quan trọng nhất của người học đó chính là thực hành. Có thực hành thì người học mới có thể tự mình lĩnh hội và hiểu biết sâu sắc với lý thuyết. Với ngành mạng máy tính, nhu cầu thực hành được đặt lên hàng đầu. Tuy nhiên, trong điều kiện còn thiếu thốn về trang bị như hiện nay, người học đặc biệt là sinh viên ít có điều kiện thực hành. Đặc biệt là với các thiết bị đắt tiền như Router, Switch chuyên dụng
Trang 1Thiết Kế & Đánh Giá Thuật Toán
Lập Trình Động
Trang 2Nội Dung
Trang 3Chia Để Trị - Nhắc Lại
Chia bài toán lớn thành bài toán nhỏ không giao nhau
Giải các bài toán nhỏ (theo phương pháp đệ quy)
Gộp lời giải bài toán nhỏ thành lời giải bài toán lớn
Trang 4Lập Trình Động
Lần lượt giải bài toán từ nhỏ nhất đến lớn
Xây dựng lời giải bài toán lớn dựa trên lời giải bài
toán nhỏ
Sắp xếp chèn (insertion sort)
Trang 5Lập Trình Động
Lời giải tối ưu của bài toán con có thể sử dụng để xây dựng lời giải tối ưu cho bài toán toàn cục
Trang 6Lập Trình Động
trưng tối ưu
Trang 7Lập Trình Động
Dựa trên các bước sau
thông qua nghiệm của các bài toán con
Trang 8Chia Để Trị – Lập Trình Động
toán con gối nhau
Trang 9Bài Toán
Trang 12Dãy Con Tăng Dài Nhất
Trang 13Dãy Con Tăng Dài Nhất
kết thúc tại phần tử thứ k
hoặc bằng S[k], trả về dãy con chỉ chứa S[k]
gọi W là dãy dài nhất trong các dãy con tăng
Trang 14Dãy Con Tăng Dài Nhất
Trang 16Ba Lô
1 chiếc ba lô có thể mang được không quá M kg
Tìm cách mang một số đồ vật để tổng giá trị lấy
Trang 17Ba Lô
for mọi ô [x, y]
if x = 0 và y = 0 then cell[x, y] = 0kg $0 {}
else gọi m là đồ vật thêm vào ở cột y gọi w là khối lượng của m
if w > khối lượng cực đại của hàng cell[x, y] = cell[x, y-1]
else cell[x, y] = max {cell[x, y-1], (cell[x-w, y-1] U {m})}
Trang 18Ba Lô
for mọi ô [x, y]
if x = 0 và y = 0 then cell[x, y] = 0kg $0 {}
else gọi m là đồ vật thêm vào ở cột y gọi w là khối lượng của m
if w > khối lượng cực đại của hàng cell[x, y] = cell[x, y-1]
else cell[x, y] = max {cell[x, y-1], (cell[x-w, y-1] U {m})}
Đồ vật Khối lượng Giá trị
kg ≤ 1 0kg $0 {} 1kg $100 {A} 1kg $100 {A} 1kg $100 {A} 1kg $100 {A} 1kg $100 {A}
kg ≤ 2 0kg $0 {} 1kg $100 {A} 1kg $100 {A} 1kg $100 {A} 1kg $100 {A} 1kg $100 {A}
kg ≤ 3 0kg $0 {} 1kg $100 {A} 3kg $200 {B} 3kg $200 {B} 3kg $200 {B} 3kg $200 {B}
kg ≤ 4 0kg $0 {} 1kg $100 {A} 4kg $300 {A, B} 4kg $300 {A, B} 4kg $300 {A, B} 4kg $300 {A, B}
Trang 19Dãy Con Chung Dài Nhất
chung dài nhất của chúng.
Trang 20Dãy Con Chung Dài Nhất
chung dài nhất của chúng.
Trang 21Dãy Con Chung Dài Nhất
hàm mũ
Trang 22Cắt Dây