Tải bản đầy đủ (.docx) (16 trang)

Câu hỏi và đáp án môn hết môn Lý thuyết đồ thị và Toán rời rạc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (143.6 KB, 16 trang )

Bài tập Chương 2 (Lý thuyết đồ thị)
Bài 2.1: Cho đồ thị vô hướng G = (V, E) với: V = {1, 2, 3, 4, 5, 6} và E = {(1,2), (1,3),
(2,3), (2,5), (4,5), (5,6)}
a) Vẽ đồ thị G
b) Tìm ma trận kề biểu diễn đồ thị G
c) Tìm danh sách cạnh biểu diễn đồ thị G
d) Tìm danh sách kề biểu diễn đồ thị G
Giải:
a) Vẽ đồ thị G

b) Tìm ma trận kề biểu diễn đồ thị G

c) Tìm danh sách cạnh biểu diễn đồ thị G

Đầu
Cuối
1
2
1
3
2
3
2
5
4
5
5
6
d) Tìm danh sách kề biểu diễn đồ thị G
Ke(1) = {2, 3}, Ke(2) = {1, 3, 5}, Ke(3) = {1, 2}, Ke(4) = {5}, Ke(5) = {2, 4, 6}, Ke(6) =
{5}


Bài 2.3: Cho đồ thị có hướng G = (V, E) với: V = {1, 2, 3, 4, 5, 6} và E = {(1,2), (2,3),
(2,4), (3,1), (3,4), (3,5), (4,6), (6,5)}
a) Vẽ đồ thị G
b) Tìm ma trận kề biểu diễn đồ thị G
c) Tìm ma trận liên thuộc đỉnh – cạnh biểu diễn đồ thị G
d) Tìm danh sách cạnh biểu diễn đồ thị G
e) Tìm danh sách kề biểu diễn đồ thị G
Giải:
a) Vẽ đồ thị G


b) Tìm ma trận kề biểu diễn đồ thị G

c) Tìm ma trận liên thuộc đỉnh – cạnh biểu diễn đồ thị G

d) Tìm danh sách cạnh biểu diễn đồ thị G

Đầu
Cuối
1
2
2
3
2
4
3
1
3
4
3

5
4
6
6
5
e) Tìm danh sách kề biểu diễn đồ thị G
Ke(1) = {2}, Ke(2) = {3, 4}, Ke(3) = {1, 4, 5}, Ke(4) = {6}, Ke(5) = {}, Ke(6) = {5}
Bài 2.4: Cho đồ thị có hướng G = (V, E) với: V = {1, 2, 3, 4, 5, 6} và E = {(1,2), (1,3),
(2,5), (3,2), (3,4), (4,5), (4,6), (5,6)} trong đó các cạnh trọng số tương ứng là {18, 12, 6,
5, 10, 17, 20, 25}
a) Vẽ đồ thị G
b) Tìm ma trận trọng số biểu diễn đồ thị G
c) Tìm danh sách cung biểu diễn đồ thị G
Giải:
a) Vẽ đồ thị G

b) Tìm ma trận trọng số biểu diễn đồ thị G


c) Tìm danh sách cung biểu diễn đồ thị G

Đầu
1
1
2
3
3
4
4
5


Cuối
2
3
5
2
4
5
6
6

Trọng số
18
12
6
5
10
17
20
25

Bài tập Chương 5 (Lý thuyết đồ thị)
Bài 5.1: Cho đồ thị G có ma trận trọng số dưới đây:
a) Vẽ đồ thị G
b) Áp dụng thuật tốn Dijkstra tìm đường đi ngắn nhất từ đỉnh 1 đến các đỉnh còn lại của đồ

thị. Chỉ ra đường đi ngắn nhất từ đỉnh 1 đến đỉnh 6.
Giải:
a) Vẽ đồ thị G


b) Áp dụng thuật tốn Dijkstra tìm đường đi ngắn nhất từ đỉnh 1 đến các đỉnh còn lại của đồ

thị. Chỉ ra đường đi ngắn nhất từ đỉnh 1 đến đỉnh 6.


Bướ
c lặp

Đỉn
h1

Đỉnh 2

Đỉnh 3

Đỉnh 4

Đỉnh 5

Đỉnh 6

Khởi
tạo

[0,1]

[18,1]*

[21,1]


[∞,1]

[∞,1]

[∞,1]

1

-

-

[21,1]
*

[24,2]

[∞,1]

[∞,1]

2

-

-

-

[24,2]

*

[37,3]

[∞,1]

3

-

-

-

-

[37,3]
*

[38,4]

4

-

-

-

-


-

[38,4]
*

Ghi chú
- Đỉnh 1 đi đến đỉnh 2 và 3. Lấy trọng số của
cạnh 1,2 và cạnh 1,3.
- Đỉnh 1 không đi đến các đỉnh cịn lại nên
trọng số bằng vơ cùng.
- Chọn đỉnh nhỏ nhất để đi tiếp (là đỉnh 2).
- Từ đỉnh 2 đi đến đỉnh 3 và đỉnh 4. Các đỉnh
còn lại giữ nguyên giá trị trước đó.
- Đỉnh 2 đến đỉnh 3 có tổng trọng số là 18+5 =
23. Tuy nhiên, do 23 >21 (là đoạn từ đỉnh 1 đến
3) nên cập nhật giá trị nhỏ hơn là 21, giá trị là
[21,1]
- Đỉnh 2 đến đỉnh 4 tổng trọng số là 18+6 = 24
nên có giá trị [24,2]
- Chọn đỉnh nhỏ nhất để đi tiếp (là đỉnh 3).
- Từ đỉnh 3 đi đến đỉnh 4 và đỉnh 5. Các đỉnh
còn lại giữ nguyên giá trị trước đó.
- Đỉnh 3 đến đỉnh 4 tổng trọng số là 21+10 =
31. Tuy nhiên, do 31 >24 (là đoạn từ đỉnh 2 đến
4) nên cập nhật giá trị nhỏ hơn là 24, giá trị là
[24,2]
- Đỉnh 3 được đi từ 5, tổng trọng số là 21+16 =
37 nên có giá trị [37,3]
- Chọn đỉnh nhỏ nhất để đi tiếp (là đỉnh 4).

- Từ đỉnh 4 đi đến đỉnh 5 và đỉnh 6.
- Đỉnh 4 đến đỉnh 5 có tổng trọng số là 24+17 =
41. Tuy nhiên, do 41 >37 (là đoạn từ đỉnh 3 đến
4) nên cập nhật giá trị nhỏ hơn là 37, giá trị là
[37,3]
- Đỉnh 4 đến đỉnh 6 có tổng trọng số là 24+14 =
38 nên có giá trị [38,4]
- Chọn đỉnh nhỏ nhất để đi tiếp (là đỉnh 5).
'- Đỉnh 5 đến đỉnh 6 có tổng trọng số là 37+33 =
70. Tuy nhiên, do 70 >38 (là đoạn từ đỉnh 4 đến
6) nên cập nhật giá trị nhỏ hơn là 38, giá trị là
[38,4]

5

Kết luận:
a) Đường đi ngắn nhất qua các đỉnh còn lại của đồ thị:
1-1: 0
1-2: 18
1-2-3: 23
1-2-4: 24
1-3-5: 37
1-2-4-6: 38
b) Đường đi ngắn nhất từ đỉnh 1 đến đỉnh 6 có độ dài là 38. Cụ thể: 1 - 2 – 4 - 6
Bài 5.2: Cho đồ thị có hướng G = (V, E) với: V = {1, 2, 3, 4, 5, 6}, E = {(1,2), (1,3),
(2,5), (3,2), (3,4), (4,5), (4,6), (5,6)}. Trong đó, các cạnh có trọng số tương ứng là {18, 2,
6, 5, 10, 17, 20, 15}
a) Vẽ đồ thị G



b) Áp dụng thuật tốn Dijkstra tìm đường đi ngắn nhất từ đỉnh 1 đến các đỉnh còn lại của đồ

thị. Chỉ ra đường đi ngắn nhất từ đỉnh 1 đến đỉnh 6.
Giải:
a) Vẽ đồ thị G

b) Áp dụng thuật tốn Dijkstra tìm đường đi ngắn nhất từ đỉnh 1 đến các đỉnh còn lại

của đồ thị. Chỉ ra đường đi ngắn nhất từ đỉnh 1 đến đỉnh 6.

Bước
lặp

Đỉnh
1

Đỉnh
2

Đỉnh
3

Đỉnh 4

Đỉnh 5

Đỉnh 6

Khởi
tạo


[0,1]

[18,1
]

[2,1]
*

[∞,1]

[∞,1]

[∞,1]

1

-

[7,3]
*

-

[12,3]

[∞,1]

[∞,1]


2

-

-

-

[12,3]
*

[13,2]

[∞,1]

3

-

-

-

-

[13,2]
*

[32,4]


4

-

-

-

-

-

[28,5]
*

5

Kết luận:

Ghi chú
- Đỉnh 1 đi đến đỉnh 2 và 3. Lấy trọng số của
cạnh 1,2 và cạnh 1,3.
- Đỉnh 1 khơng đi đến các đỉnh cịn lại nên trọng
số bằng vô cùng.
- Chọn đỉnh nhỏ nhất để đi tiếp (là đỉnh 3).
- Từ đỉnh 3 đi đến đỉnh 2 và đỉnh 4. Các đỉnh
còn lại giữ nguyên giá trị trước đó.
- Đỉnh 3 đến đỉnh 2 có tổng trọng số là 5+2 = 7
nên giá trị là [7,3]
- Đỉnh 3 đến đỉnh 4 tổng trọng số là 10+2 = 12

nên có giá trị [12,3]
- Chọn đỉnh nhỏ nhất để đi tiếp (là đỉnh 2).
- Từ đỉnh 3 đi đến đỉnh 5. Các đỉnh còn lại giữ
nguyên giá trị trước đó.
- Đỉnh 3 đến đỉnh 5 tổng trọng số là 7+6 = 13
nên có giá trị [13,2]
- Chọn đỉnh nhỏ nhất để đi tiếp (là đỉnh 4).
- Từ đỉnh 4 đi đến đỉnh 5 và đỉnh 6.
- Đỉnh 4 đến đỉnh 5 có tổng trọng số là 12+17 =
29. Tuy nhiên, do 29 >13 (là đoạn từ đỉnh 3 đến
5) nên cập nhật giá trị nhỏ hơn là 13, giá trị là
[13,2]
- Đỉnh 4 đến đỉnh 6 có tổng trọng số là 12+20 =
32 nên có giá trị [32,4]
- Chọn đỉnh nhỏ nhất để đi tiếp (là đỉnh 5).
- Từ đỉnh 5 đi đến đỉnh 6.
- Đỉnh 5 đến đỉnh 6 có tổng trọng số là 13+15 =
28 nên có giá trị [28,5]


a) Đường đi ngắn nhất qua các đỉnh còn lại của đồ thị:

1-1: 0
1-3-2: 7
1-3: 2
1-3-4: 12
1-3-2-5: 13
1-3-2-5-6: 28
b) Đường đi ngắn nhất từ đỉnh 1 đến đỉnh 6 có độ dài là 28. Cụ thể: 1 - 3 – 2 - 5 - 6


Bài tập Chương 2 (Toán rời rạc)
Bài 2.1: Trong một giải bóng đá có 20 đội bóng thi đấu vịng trịn có lượt đi và lượt về (2
đội bất kỳ luôn đá với nhau đúng 2 trận). Hỏi phải tổ chức bao nhiêu trận đấu?
Giải:
Xét trường hợp thi đấu 1 lượt, cứ 2 đội thì có 1 trận. Ngồi ra, 1 đội khơng thi đấu với
chính đội đó. Theo tổ hợp chập 2 từ 20 phần tử, suy ra số trận đấu bằng cách chọn 2 đội
từ 20 đội, nghĩa là:
C(20,2) = 20(20-1)/2 = 190
Do có 2 lượt đi và về nên sẽ có tổng cộng: 190 * 2 = 380 trận.
Vậy, đáp án là: 380.
Bài 2.2: Có 4 cuốn sách Tốn, 3 cuốn sách Văn và 2 cuốn Tin học. Hỏi có bao nhiêu cách
chọn được 2 cuốn sách khác nhau từ 9 cuốn sách trên?
Giải:
Gọi C1 là tập các cuốn sách Toán
Gọi C2 là tập các cuốn sách Văn
Gọi C3 là tập các cuốn sách Tin học
Khi đó, các cách chọn được 2 cuốn khác nhau từ các cuốn sách trên là:
N(C1 x C2) = N(C1) x N(C2) = 4 x 3 =12
N(C2 x C3) = N(C2) x N(C3) = 3 x 2 = 6
N(C3 x C1) = N(C3) x N(C1) = 2 x 4 = 8


Vậy, đáp án là: 12 + 6 + 8 = 26 cách.
Bài 2.3: Mỗi chiếc ghế được đánh số XX-NNN, trong đó X là một chữ cái tiếng Anh từ A
đến Z và N là một chữ số từ 0 đến 9. Hỏi có thể đánh số khác nhau cho nhiều nhất bao
nhiêu chiếc ghế?
Giải:
- Bảng chữ cái tiếng Anh từ A đến Z có 26 ký tự
Mỗi chiếc ghế có 2 ký tự X (gọi là X1 và X2), mỗi X có 26 ký tự.
Do vậy, có thể đánh số XX là 26 x 26 = 676 trường hợp.

- Mỗi chiếc ghế có 3 ký tự N (gọi là N1 , N2 và N3), mỗi N có 10 ký tự.
Do vậy, có thể đánh số NNN là 10 x 10 x 10 = 1.000 trường hợp.
Vậy, đáp án là: 676 x 1.000 = 676.000 cách.
Bài 2.4: Cô dâu và chú rể mời 4 bạn đứng thành 1 hàng để chụp ảnh. Hỏi có bao nhiêu
cách xếp hàng nếu:
a) Cơ dâu đứng cạnh chú rể.
b) Cô dâu không đứng cạnh chú rể.
c) Cơ dâu đứng ở phía bên phải chú rể.
Giải:
a) Do cô dâu và chú rể đứng cạnh nhau nên có thể coi 2 người là 1. Như vậy, có 5
cách xếp hàng (4 người bạn và 1 cặp cơ dâu chú rể).
Tuy nhiên, do vị trí của cơ dâu và chú rể có thể đổi cho nhau nên số cách xếp là: 5 x 2
= 10 cách
Việc xếp các bạn cịn lại có thể áp dụng quy tắc nhân: 4 x 3 x 2 x 1 = 24
Vậy, đáp án là: 10 x 24 = 240 cách.
b) Xét trường hợp tổng quát, có tất cả 6! cách xếp, tức là 6 x 5 x 4 x 3 x 2 x 1 = 720

cách.
Trừ các trường hợp cô dâu đứng cạnh chú rể (chính là trường hợp a), vậy còn: 720 240 = 480 cách.
Vậy, đáp án là: 480 cách.
c) Xét trường hợp tổng quát, có tất cả 6! cách xếp, tức là 6 x 5 x 4 x 3 x 2 x 1 = 720
cách.
Số trường hợp cô dâu đứng ở phía bên phải chú rể = Số trường hợp cơ dâu đứng ở
phía bên trái chú rể.
Vậy, đáp án là: 720 : 2 = 360 cách.
Bài 2.15: Có bao nhiêu xâu nhị phân độ dài bằng 8 hoặc bắt đầu bởi 000 hoặc kết thúc
bởi 111?
Giải:
Gọi A là các xâu nhị phân bắt đầu bởi 000 (độ dài còn lại = 8 – 3 = 5)
Gọi B là các xâu nhị phân kết thúc bởi 1111 (độ dài còn lại = 8 – 4 = 4)

Như vậy: N(A) = 25 = 32; N(B) = 24 = 16; N(AՈB) = 21 = 2


Theo nguyên lý bù trừ, ta có:
N(AUB) = N(A) + N(B) - N(AՈB) = 32 + 16 – 2 = 46
Vậy, đáp án là: 46 xâu.
Bài 2.16: Hỏi trong tập X = {1, 2, ….., 1000} có bao nhiêu số hoặc chia hết cho 3 hoặc
chia hết cho 4 nhưng không chia hết cho 12?
Giải:
Gọi A là tập các số trong tập X chia hết cho 3.
Gọi B là tập các số trong tập X chia hết cho 4.
Khi đó, tập các số chia hết cho 3 hoặc chia hết cho 4 là N(AUB). Theo nguyên lý bù trừ,
ta có:
N(AUB)
= N(A) + N(B) - N(AՈB)
= [1000/3] + [1000/4] – [1000/(3.4)]
= 333 + 250 – 83 = 500
Tập các số chia hết cho 12 là: 1000/12 = 83
Vậy, số lượng các số chia hết cho 3 hoặc chia hết cho 4 nhưng không chia hết cho 12 là:
500 – 83 = 417 số.
Bài 2.17: Mỗi sinh viên trong lớp hoặc giỏi tốn hoặc giỏi tin học hoặc giỏi cả 2 mơn
này. Hỏi trong lớp có bao nhiêu sinh viên nếu 38 người giỏi tin (kể cả người giỏi cả 2
môn), 23 người giỏi tốn (kể cả người giỏi cả 2 mơn) và 7 người giỏi cả 2 môn?
Giải:
Gọi A là tập các sinh viên giỏi toán
Gọi B là tập các sinh viên giỏi tin học
Khi đó, AՈB là tập các sinh viên giỏi cả 2 mơn
Vì mỗi sinh viên trong lớp hoặc gỏi toán, hoặc giỏi tin học, hoặc giỏi cả 2 mơn nên ta có
tổng số sinh viên trong lớp là N(AUB). Theo nguyên lý bù trừ, ta có:
N(AUB)

= N(A) + N(B) - N(AՈB)
= 38 + 23 – 7 = 54
Vậy, đáp án là: 54 sinh viên.
Bài 2.23: Giải các công thức đệ quy sau:
a) an = 5an-1 – 6an-2
với n ≥ 2 và a0 = 1, a1 = 0
b) an = an-1 + 6an-2
với n ≥ 2 và a0 = 3, a1 = 4
Giải:
a) Phương trình đặc trưng:
r2 - 5r + 6 =0
Giải phương trình đặc trưng: Δ = b2-4ac = 25-4*6=1
r1 = (-b+)/2a = (5+1)/2 = 3
r2 = (-b-)/2a = (5-1)/2 = 2
Dãy {an} là nghiệm của công thức đệ quy nếu và chỉ nếu an = α1.3n + α2.2n với α1, α2 là
các hằng số nào đó.
Từ các điều kiện đầu, suy ra:


a0 = 1 = α1.30 + α2.20 = α1 + α2
a1 = 0 = α1.31 + α2.21 = 3α1 + 2α2
Giải hệ phương trình trên ta được: α1 = -2, α2 = 3
Vậy, nghiệm của công thức đệ quy là:
an = -2.3n + 3.2n
b) Phương trình đặc trưng:
r2 - r - 6 =0
Giải phương trình đặc trưng: Δ = b2-4ac = 1-4*(-6)= 25
r1 = (-b+)/2a = (1+5)/2 = 3
r2 = (-b-)/2a = (1-5)/2 = -2
Dãy {an} là nghiệm của công thức đệ quy nếu và chỉ nếu a n = α1.3n + α2.(-2)n với α1, α2

là các hằng số nào đó.
Từ các điều kiện đầu, suy ra:
a0 = 3 = α1.30 + α2.(-2)0 = α1 + α2
a1 = 4 = α1.31 + α2.(-2)1 = 3α1 - 2α2
Giải hệ phương trình trên ta được: α1 = 2, α1 = 1
Vậy, nghiệm của công thức đệ quy là:
an = 2.3n + (-2)n
Bài 2.24: Giải các công thức đệ quy sau:
a) an = 4an-1 – 4an-2
với n ≥ 2 và a0 = 6, a1 = 8
b) an = 4an-2
với n ≥ 2 và a0 = 0, a1 = 4
Giải:
a) Phương trình đặc trưng:
r2 - 4r + 4 =0
Giải phương trình đặc trưng: Δ = b2-4ac = 16 - 4*4 = 0
r1 = r2 = -b/2a = 4/2 = 2
Dãy {an} là nghiệm của công thức đệ quy nếu và chỉ nếu an = α1.2n + α2.n.2n với α1, α2
là các hằng số nào đó.
Từ các điều kiện đầu, suy ra:
a0 = 6 = α1
a1 = 8 = α1.21 + α2.21 = 2α1 + 2α2
Giải hệ phương trình trên ta được: α1 = 6, α2 = -2
Vậy, nghiệm của công thức đệ quy là:
an = 6.2n + (-2)n.2n = (6 - 2n)2n
b) Phương trình đặc trưng:
r2 - 4 =0
có nghiệm r1 = 2; r2 = -2
Dãy {an} là nghiệm của công thức đệ quy nếu và chỉ nếu an = α1.2n + α2.(-2)n với α1, α2
là các hằng số nào đó.

Từ các điều kiện đầu, suy ra:
a0 = 0 = α1.20 + α2.(-2)0 = α1 + α2
a1 = 4 = α1.21 + α2.(-2)1 = 2α1 - 2α2


Giải hệ phương trình trên ta được: α1 = 1, α2 = -1
Vậy, nghiệm của công thức đệ quy là:
an = 1.2n + (-1).(-2n) = 2n - (-2)n

Bài tập Chương 5 (Toán rời rạc)
Bài 5.1: Hãy sử dụng thuật toán nhánh cận giải bài tốn cái túi sau đây (mơ tả q trình
tính tốn trên cây tìm kiếm):
f(x) = 9x1 + 5x2 + 3x3 + x4  max
7x1 + 4x2 + 3x3 + 2x4 ≤ 10
xj ≥ 0, nguyên, j = 1, 2, 3, 4
Giải:
Q trình giải bài tốn được mơ tả trong cây tìm kiếm như hình dưới đây. Thông
tin về một phương án bộ phận trên cây được ghi trong các ơ trên hình vẽ tương ứng theo
các thứ tự sau:
Các thành phần phương án
σ : giá trị của các đồ vật đang chất trong túi; w : trọng lượng còn lại của túi; g : cận trên.
Phương pháp:
+ Tính số nhánh (x): Lần 1: b/ai, Lần 2: wtrước đó/ai hiện tại. (trong đó b = 10, a1 = 7, c1 = 9)
+ Lần 1:
σ = c i * xi ;
Lần 2:
σ = σtrước đó + ci * xi
+ Lần 1:
w = b – a i * xi ;
Lần 2:

w = wtrước đó - ai * xi
+ g = σ + w*(ci+1/ai+1)
Gốc: = - 1
x1 = 1
Lấy nhánh
gmax để đi tiếp

w trước đó chia
cho a hiện tại =
3/4=0,75 (lấy số
nguyên x2= 0)

(1): σ = c1 * x1 = 9*1=9;
w= 10-7*1=3
g = 9 + 3*(5/4)=12,75
x2 = 0
(1,0): σ = 9+5*0=9;
w = 10-7*1 + 4*0 = 3
g = 9 + 3*(3/3) = 12

x1 = 0
(0): σ = 9 * 0 = 0;
w= 10-7*0=10
g = 0 + 10*(5/4) = 12,5


x3 = 1
w trước đó chia
cho a hiện tại =
3/3=1 (lấy số

nguyên x3= 1)

(1,0,1): σ = 9+3*1=12;
w = 3-3*1= 0
g = 12 + 0*(1/2) = 12

x3 = 0
12>10,5
nên sẽ đi
theo
nhánh 12

(1,0,0): σ = 9+3*0=9;
w = 3-3*0 = 3
g = 9 + 3*(1/2) = 10,5

x4 = 0
w trước đó chia
cho a hiện tại =
0/2=0 (lấy số
nguyên x4= 0)

Các nhánh bị loại vì
cận trên ≤ kỷ lục

(1,0,1,0): σ = 12+0*2=12;
w = 0-3*0= 0
g = 12 + 0*(1/2) = 12

P/án (1,0,1,0); f=12

Đặt kỷ lục: : = 12;
= (1,0,1,0)

Kết thúc thuật toán, ta thu được:
- Phương án tối ưu: x* = (1,0,1,0);
Giá trị tối ưu: f* = 12
Bài 5.2: Hãy sử dụng thuật toán nhánh cận giải bài tốn cái túi sau đây (mơ tả q trình
tính tốn trên cây tìm kiếm):
f(x) = 16x1 + 5x2 + 7x3 + 9x4  max
6x1 + 2x2 + 3x3 + 6x4 ≤ 10
xj ≥ 0, nguyên, j = 1, 2, 3, 4
Giải:
Q trình giải bài tốn được mơ tả trong cây tìm kiếm như hình dưới đây. Thông
tin về một phương án bộ phận trên cây được ghi trong các ơ trên hình vẽ tương ứng theo
các thứ tự sau:
Các thành phần phương án
σ : giá trị của các đồ vật đang chất trong túi; w : trọng lượng còn lại của túi; g : cận trên.
Phương pháp:
+ Tính số nhánh (x): Lần 1: b/ai, Lần 2: wtrước đó/ai hiện tại. (trong đó b= 10, a1 = 6, c1 = 16)
+ Lần 1: σ = ci * xi ; Lần 2: σ = σtrước đó + ci * xi
+ Lần 1: w = b – ai * xi; Lần 2:
w = wtrước đó - ai * xi
+ g = σ + w*(ci+1/ai+1)
Gốc: = - 1
x1 = 1
Lấy nhánh
gmax để đi tiếp

(1): σ = c1 * x1 = 16*1=16;
w= 10 - 6*1=4

g = 16 + 4*(5/2)=26
x2 = 2

w trước đó chia
cho a hiện tại =
4/2=2 (lấy số
nguyên x2 = 2)

x1 = 0

(1,2): σ = 16 + 5*2=26;
w = 4 - 2*2 = 0
g = 26 + 0*(7/3) = 26

x2 = 1
(1,1): σ = 16 + 5*1=21;
w = 4 - 2*1 = 2
g = 21 + 2*(7/3) = 25,6

(0): σ = 16 * 0 = 0;
w= 10 - 6*0=10
g = 0 + 10*(5/2) = 25
x2 = 0
(1,0): σ = 16 + 5*0=16;
w = 4 - 2*0 = 4
g = 16 + 4*(7/3) = 25,3

x3 = 0
w trước đó chia
cho a hiện tại =

0/3=0 (lấy số
nguyên x3 = 0)

(1,2,0): σ = 26+7*0=26;
w = 0 - 3*0= 0
g = 26 + 0*(9/6) = 26
x4 = 0

w trước đó chia
cho a hiện tại =

(1,2,0,0): σ = 26+9*0=26;
w = 0 - 6*0= 0
g = 26

Các nhánh bị loại vì cận
trên ≤ kỷ lục

26>25 nên
sẽ đi theo
nhánh 26
26
lớn
nhất nên
sẽ đi theo
nhánh 26


0/6=0 (lấy số
nguyên x4 = 0)

P/án (1,2,0,0); f=26
Đặt kỷ lục: : = 26;
= (1,2,0,0)

Kết thúc thuật toán, ta thu được: Phương án tối ưu: x* = (1,2,0,0), Giá trị tối ưu: f* = 26
Bài 5.3: Hãy sử dụng thuật toán nhánh cận giải bài tốn cái túi sau đây (mơ tả q trình
tính tốn trên cây tìm kiếm):
f(x) = 15x1 + 6x2 + 3x3 + x4  max
10x1 + 4x2 + 3x3 + 2x4 ≤ 15
xj ≥ 0, nguyên, j = 1, 2, 3, 4
Giải:
Q trình giải bài tốn được mơ tả trong cây tìm kiếm như hình dưới đây. Thông
tin về một phương án bộ phận trên cây được ghi trong các ơ trên hình vẽ tương ứng theo
các thứ tự sau:
Các thành phần phương án
σ : giá trị của các đồ vật đang chất trong túi; w : trọng lượng còn lại của túi; g : cận trên.
Phương pháp:
+ Tính số nhánh (x): Lần 1: b/ai, Lần 2: wtrước đó/ai hiện tại.(trong đó b= 15, a1= 10, c1 = 15)
+ Lần 1: σ = ci * xi ; Lần 2: σ = σtrước đó + ci * xi
+ Lần 1: w = b – ai * xi; Lần 2:
w = wtrước đó - ai * xi
+ g = σ + w*(ci+1/ai+1)
Gốc: = - 1
x1 = 1
Lấy nhánh
gmax để đi tiếp

(1): σ = c1 * x1 = 15*1=15;
w= 15 - 10*1=5
g = 15 + 5*(6/4)=22,5

x2 = 1

w trước đó chia
cho a hiện tại =
5/4=1,25 (lấy số
nguyên = 0)
w trước đó chia
cho a hiện tại =
1/3=0,3 (lấy số
nguyên = 0)

x1 = 0

(1,1): σ = 15 +
6*1=21;
w = 5 - 4*1 = 1
g = 21 + 1*(3/3) = 22
x3 = 0

x2 = 0
(1,0): σ = 15 +
6*0=15;
w = 5 - 4*0 = 5
g = 15 + 5*(3/3) = 20

2 nhánh
bằng nhau

(0): σ = 15 * 0 = 0;
w= 15 - 10*0=15

g = 0 + 15*(6/4) = 25,5
x2 = 1
(0,1): σ = 0 + 6*1=6;
w = 15 - 4*1 = 11
g = 11 + 6*(3/3) = 17

x2 = 0

(0,0): σ = 0 + 6*0=0;
w = 15 - 4*0 = 15
g = 15 + 0*(3/3) = 15

(1,1,0): σ = 21+3*0=21;
w = 1 - 3*0= 1
g = 21 + 1*(1/2) = 21,5
x4 = 0

w trước đó chia
cho a hiện tại =
0/2=0 (lấy số
nguyên = 0)

(1,1,0,0): σ = 21 + 1*0=21;
w = 1 - 2*0= 1
g = 21 + 1*(0/0)=21

P/án (1,1,0,0); f=21
Đặt kỷ lục: : = 21;
= (1,1,0,0)


Các nhánh bị loại vì cận
trên ≤ kỷ lục


Kết thúc thuật toán, ta thu được:
- Phương án tối ưu: x* = (1,1,0,0)
- Giá trị tối ưu: f* = 21
Bài 5.4: Hãy sử dụng thuật toán nhánh cận giải bài tốn cái túi sau đây (mơ tả q trình
tính tốn trên cây tìm kiếm):
f(x) =
16x1 + 7x2 + 5x3 + 9x4  max
6x1 + 3x2 + 2x3 + 6x4 ≤ 11
xj ≥ 0, nguyên, j = 1, 2, 3, 4
Giải:
Kiểm tra đầu bài: 16/6 > 7/3 <5/2 >9/6. Không thỏa mãn điều kiện ci/ai ≥ ci+1/ai+1 ≥
ci+2/ai+2…. Do vậy, thực hiện sắp xếp lại đầu bài theo chiều giảm dần như sau:
f(x) = 16x1 + 5x2 + 7x3 + 9x4  max
6x1 + 2x2 + 3x3 + 6x4 ≤ 11
Q trình giải bài tốn được mơ tả trong cây tìm kiếm như hình dưới đây. Thơng
tin về một phương án bộ phận trên cây được ghi trong các ô trên hình vẽ tương ứng theo
các thứ tự sau:
Các thành phần phương án
σ : giá trị của các đồ vật đang chất trong túi; w : trọng lượng còn lại của túi; g : cận trên.
Phương pháp:
+ Tính số nhánh (x): Lần 1: b/ai, Lần 2: wtrước đó/ai hiện tại.(trong đó b = 11, a1 = 6, c1 = 16)
+ Lần 1: σ = ci * xi ; Lần 2: σ = σtrước đó + ci * xi
+ Lần 1: w = b – ai * xi; Lần 2:
w = wtrước đó - ai * xi
+ g = σ + w*(ci+1/ai+1)
Gốc: = - 1

x1 = 1
Lấy nhánh
gmax để đi tiếp

(1): σ = c1 * x1 = 16*1=16;
w= 11 - 6*1=5
g = 16 + 5*(5/2)=28,5
x2 = 2

w trước đó chia
cho a hiện tại =
5/2=2,5 (lấy số
nguyên = 2)
w trước đó chia
cho a hiện tại =
1/3=0,3 (lấy số
nguyên = 0)

x1 = 0

(1,2): σ = 16 +
5*2=26;
w = 5 - 2*2 = 1
g = 26 + 1*(7/3) = 28,3
x3 = 0

x2 = 1
(1,1): σ = 16 +
5*1=21;
w = 5 - 2*1 = 3

g = 21 + 3*(7/3) = 28

(0): σ = 16 * 0 = 0;
w= 11 - 6*0=11
g = 0 + 11*(5/2) = 27,5
x2 = 0

Lấy nhánh
28,5

(1,0): σ = 16 +
5*0=16;
w = 5 - 2*0 = 5
g = 16 + 5*(7/3) = 27,6

(1,2,0): σ = 26+7*0=26;
w = 1 - 3*0= 1
g = 26 + 1*(9/6) = 27,5
x4 = 0

w trước đó chia
cho a hiện tại =
1/6=0,16 (lấy số
nguyên = 0)

(1,2,0,0): σ = 26 + 9*0=26;
w = 1 - 6*0= 1
g = 26 + 1*(0/0)=26

P/án (1,2,0,0); f=26

Đặt kỷ lục: : = 26;
= (1,2,0,0)

Các nhánh bị loại vì cận
trên ≤ kỷ lục

Kết thúc thuật toán, ta thu được:
- Phương án tối ưu: x* = (1,2,0,0)
- Giá trị tối ưu: f* = 26


Bài 5.5: Sử dụng thuật toán nhánh cận giải bài tốn người du lịch với ma trận chi phí sau
đây và thành phố xuất phát là thành phố 1 (mô tả quá trình thực hiện trên cây tìm kiếm).
Ma trận chi phí:
Giải:
Q trình giải bài tốn được mơ tả trong cây tìm kiếm theo hình dưới đây. Thơng
tin về một bộ phận trên cây được ghi trong các ô trên hình vẽ tương ứng theo thứ tự sau:
Các thành phần của phương án:
+ σ : chi phí theo hành trình bộ phận
+ g : cận dưới
+ Chi phí nhỏ nhất trong ma trận: 4
Gốc: = + ∞
4x4
chặng =
16

(2): σ = 5
g = 16 + 5 = 21

(3): σ = 23

g = 16 + 23 = 39

(4): σ = 22
g = 16 + 22 = 38

(2,3): σ = 5+9=14
g = 14 + 12 = 26

(2,4): σ = 5+20=25
g = 25 + 12 = 37

(2,5): σ = 5+27=32
g = 32 + 12 = 44

4x2=8

(2,3,4): σ = 14+8=22
g = 22 + 8 = 30

(2,3,5): σ = 14+35=49
g = 49 + 8 = 57

4x1=4

(2,3,4,5): σ = 22+10=32
g = 32 + 4 = 36

4x3
chặng =
12


4x0=0

(5): σ = 30
g = 16 + 30 = 46

Các nhánh này bị loại vì
cận dưới ≥ kỷ lục = 36

Hành trình (1,2,3,4,5,1)
Chi phí: 32+4=36
Cập nhật kỷ lục: = 36

Kết thúc thuật toán ta thu được:
+ Phương án tối ưu là hành trình: T1  T2  T3  T4  T5  T1
+ Tổng chi phí nhỏ nhất: 36

Bài 5.6: Sử dụng thuật toán nhánh cận giải bài toán người du lịch với ma trận chi phí sau
đây và thành phố xuất phát là thành phố 1 (mô tả quá trình thực hiện trên cây tìm kiếm).
Ma trận chi phí:
Giải:
Q trình giải bài tốn được mơ tả trong cây tìm kiếm theo hình dưới đây. Thơng
tin về một bộ phận trên cây được ghi trong các ơ trên hình vẽ tương ứng theo thứ tự sau:


Các thành phần của phương án:
+ σ : chi phí theo hành trình bộ phận
+ g : cận dưới
+ Chi phí nhỏ nhất trong ma trận: 2
Gốc: = + ∞

2x4
chặng = 8

(2): σ = 3
g = 8 + 3 = 11

2x3=6

(2,3): σ = 3+4=7
g = 7 + 6 = 13

2x2=4

(2,3,4): σ = 16+7=23
g = 23 + 4 = 27

(2,3,5): σ = 4+7=11
g = 11 + 4 = 15

2x1=2

(2,3,4,5): σ = 12+23=35
g = 35 + 2 = 37

(2,3,5,4): σ = 5+11=16
g = 16 + 2 = 18

Hành trình (1,2,3,4,5,1)
Chi phí: 35+9=44
Cập nhật kỷ lục: = 44


Hành trình (1,2,3,5,4,1)
Chi phí: 16+6=22
Cập nhật kỷ lục: = 22

2x0=0

(3): σ = 14
g = 8 + 14 = 22

(4): σ = 18
g = 8 + 18 = 26

(2,4): σ = 3+22=25
g = 25 + 6 = 31

(2,5): σ = 3+20=23
g = 23 + 6 = 29

(5): σ = 15
g = 8 + 15 = 23

Các nhánh này bị loại vì
cận dưới ≥ kỷ lục = 22

Kết thúc thuật toán ta thu được:
+ Phương án tối ưu là hành trình: T1  T2  T3  T5  T4  T1
+ Tổng chi phí nhỏ nhất: 22

Bài 5.7: Sử dụng thuật toán nhánh cận giải bài toán người du lịch với ma trận chi phí sau

đây và thành phố xuất phát là thành phố 1 (mô tả quá trình thực hiện trên cây tìm kiếm).
Ma trận chi phí:
Giải:
Q trình giải bài tốn được mơ tả trong cây tìm kiếm theo hình dưới đây. Thơng
tin về một bộ phận trên cây được ghi trong các ơ trên hình vẽ tương ứng theo thứ tự sau:
Các thành phần của phương án:
+ σ : chi phí theo hành trình bộ phận
+ g : cận dưới
+ Chi phí nhỏ nhất trong ma trận: 1
Gốc: = + ∞
1x4
chặng

(2): σ = 2
g=4+2=6

(3): σ = 14
g = 4 + 14 = 18

(4): σ = 3
g=4+3=7

(5): σ = + ∞
g=4+∞=∞
(4,3):
(4,5,2):
σ=
σ=
5+8=13
3+

∞=∞
13 ++ 32 == ∞
15
gg == ∞

(4,5,3):
(4,5): σ σ==
5+15=20
3+2=5
gg == 20
5 ++32==8
22


=4

1 x 3
=3

1 x 2
=2

(2,3): σ = 2+1=3
g=3+3=6

(2,4): σ = 2+10=12
g = 12 + 3 = 15

(2,3,4): σ = 3+∞=∞
g=∞+2=∞


(2,3,5): σ = 3+5=8
g = 8 + 2 = 10

1 x 1
=1

(2,3,5,4): σ =
8+2=10
g = 10 + 1 = 11

1 x 0
=0

Hành trình (1,2,3,5,4,1)
Chi phí: 10+3=13
Cập nhật kỷ lục: = 13

(2,5): σ = 2+8=10
g = 10 + 3 = 13

(4,2): σ =
3+10=13
g = 13 + 3 = 16

Các nhánh này
bị loại vì cận
dưới ≥ kỷ lục =
13


Kết thúc thuật tốn ta thu được:
+ Phương án tối ưu là hành trình: T1  T2  T3  T5  T4  T1
+ Tổng chi phí nhỏ nhất: 13



×