Tải bản đầy đủ (.pdf) (69 trang)

Bài giảng tín hiệu và hệ thống

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 (29.49 MB, 69 trang )

TRƯỜNG ĐẠI HỌC QUY NHƠN
KHOA KỸ THUẬT VÀ CÔNG NGHỆ
-----  -----

BÀI GIẢNG
TÍN HIỆU VÀ HỆ THỐNG

Biên soạn: TS. Phạm Hồng Thịnh
Bộ môn: Điện tử - Viễn thông

Tài liệu lưu hành nội bộ


Quy Nhon University, Vietnam

I. Mục tiêu môn học
Học phần thuộc khối kiến thức cơ sở ngành Kỹ thuật điện tử - viễn thơng.

BÀI GIẢNG TÍN HIỆU VÀ HỆ THỐNG

Học phần trang bị cho sinh viên các kiến thức cơ bản về đồ hình ứng dụng trong
kỹ thuật thơng tin. Giúp sinh viên nắm được vấn đề biểu diễn đồ thị, trang bị các
biểu đồ cây và một số thuật toán thiết kế hệ thống, các phương pháp định tuyến
trong hệ thống thông tin, lý thuyết về phân bổ dung lượng tuyến tính. Ngồi ra
cịn giúp cho sinh viên nắm được tín hiệu và các quy tắc cơ bản về hệ thống

Giảng viên:

PHẠM HỒNG THỊNH

Đơn vị:



Kỹ thuật & Công nghệ, Trường Đại học Quy Nhơn

Email:



Tel:

tuyến tính, ứng dụng phép biến đổi Z, biến đổi Fourier trong xử lý tín hiệu, các
phép toán ứng dụng trong bộ lọc tương tự, hệ thống và các tín hiệu rời rạc thời
gian và cuối cùng là biết cách thiết kế hệ thống xử lý.

0915114425

I. Nội dung mơn học
Chương 1. Đồ thị và các thuật tốn trong mạng viễn thông
Chương 2. Biểu đồ cây ứng dụng trong kỹ thuật thơng tin
Chương 3. Một số thuật tốn thiết kế mạng

Nội dung chương 1
Chương 1. Đồ thị và các thuật tốn trong mạng viễn thơng
1.1 Giới thiệu

Chương 4. Định tuyến

1.2 Đồ thị vơ hướng

Chương 5. Các bài tốn về lưu lượng mạng


1.3 Đồ thị có hướng

Chương 6. Lý thuyết về phân bổ dung lượng tuyến tính

1.4 Biểu diễn đồ thị trên máy tính

Chương 7. Tín hiệu và các quy tắc cơ bản về hệ thống tuyến tính
Chương 8. Đáp ứng hệ thống
Chương 9. Phép biến đổi Fourier

1.5 Thuật toán về đồ thị
Bài tập

Chương 10. Các phép toán ứng dụng trong bộ lọc tương tự
Chương 11. Hệ thống và các tín hiệu rời rạc thời gian
Chương 12. Thiết kế các bộ lọc tín hiệu

1.1. Giới thiệu
Một đồ thị (Graph) là một tập hợp hữu hạn các điểm (gọi là đỉnh của Graph) cùng với
tập hợp các đoạn đường cong hay thẳng (cạnh của Graph) có các đầu mút tại các đỉnh của
Graph.

Ví dụ:

- Hình a cho ta một Graph (Đồ thị) có 4 đỉnh A, B, C, D và 5 cạnh AD, AB, AC,
BC, CC. Các hình a, b, c đều cùng một graph.
- Hai đầu mút của cạnh trùng nhau tại đỉnh C ta gọi là một khuyên, k/h là CC.

1.1. Giới thiệu
• Hai đỉnh của 1 Graph là kề nhau khi chúng là hai

đầu mút của cùng 1 cạnh.
• Một đỉnh khơng là đầu mút của cạnh nào ta gọi là
đỉnh cơ lập
• Đỉnh A kề với đỉnh B nhưng kg kề với C. E là
đỉnh cô lập
- Một graph khơng có khun, trong đó 2 đỉnh
được nối bằng 1 cạnh nhiều nhất gọi là một đơn
graph.
- Một graph khơng có khun, trong đó 2 đỉnh có
thể được nối bằng nhiều cạnh gọi là một đa
graph.
- Graph đầy đủ khi mỗi cặp đỉnh đều được nối với
một cạnh.

H

G

1


1.2. Đồ thị vơ hướng

1.3. Đồ thị có hướng
 Một đồ thị có hướng G=(V,E) được định nghĩa bởi:

 Một đồ thị vơ hướng G=(V,E) được định nghĩa

• Tập hợp V được gọi là tập các đỉnh của đồ thị;
• Tập hợp E là tập các cạnh của đồ thị được sắp thứ tự;


bởi:
• Tập hợp V được gọi là tập các đỉnh của đồ thị;
• Tập hợp E là tập các cạnh của đồ thị;

• Mỗi cạnh e ϵ E được liên kết với một cặp đỉnh {i, j} ϵ V2, được sắp thứ tự có
gốc và ngọn theo mũi tên.

• Mỗi cạnh e ϵ E được liên kết với một cặp đỉnh {i,
j} ϵ V2, không phân biệt thứ tự.
Lưu ý rằng:

Các thuật ngữ cơ bản

Các thuật ngữ cơ bản

Ví dụ trong hình đồ thị có hướng:

hướng có:

Các thuật ngữ cơ bản

Các thuật ngữ cơ bản

2


Đường đi, chu trình và tính liên thơng
 Đường đi:


Đường đi, chu trình và tính liên thơng
Chu trình:
Đường đi có đỉnh đầu trùng với đỉnh cuối được gọi là chu trình.
Đường đi hay chu trình được gọi là đơn nếu như khơng có cạnh
(cung) nào bị lặp lại.
Ví dụ có các chu trình như sau:

Vd Khơng phải là đường đi đơn: a, e1, b, e4, d, e3, c, e2, b, e1, a  do có cạnh
e1 lặp lại.

Ví dụ có các đường đi như sau:

Đường đi, chu trình và tính liên thơng
Tính liên thơng:

Đường đi, chu trình và tính liên thơng
Tính liên thơng:

Định nghĩa 1: Đồ thị vơ hướng G = (V,E) được gọi là liên thơng nếu ln
tìm được đường đi giữa hai đỉnh bất kỳ của nó
Ví dụ: Trong hình sau, G là liên thơng cịn H là khơng liên thơng

Định nghĩa 2: Đồ thị có hướng G = (V, A) được gọi là liên thông mạnh
nếu luôn tìm được đường đi giữa hai đỉnh bất kỳ của nó.
Định nghĩa 3: Đồ thị có hướng G = (V, A) được gọi là liên thông yếu nếu
đồ thị vô hướng tương ứng với nó là đồ thị vơ hướng liên thơng.

H

G

G

H

Định nghĩa 2: Đồ thị có hướng G = (V, A) được gọi là liên thơng mạnh
nếu ln tìm được đường đi giữa hai đỉnh bất kỳ của nó.
Định nghĩa 3: Đồ thị có hướng G = (V, A) được gọi là liên thông yếu nếu
đồ thị vô hướng tương ứng với nó là đồ thị vơ hướng liên thông.
Nhận xét: Liên thông mạnh cũng là liên thông yếu nhưng liên thơng yếu thì khơng thể là
liên thơng mạnh.

1.4. Biểu diễn đồ thị trên máy tính
1.4.1. Ma trận liên thuộc đỉnh - cung

Ví dụ: Ma trận liên thuộc đỉnh – cung của đồ thị sau:

A

B

C

D

A

B

C


D

E

E

G là liên thông mạnh và H là liên thông yếu
Nhận xét: Liên thông mạnh cũng là liên thơng yếu nhưng liên thơng yếu thì không thể là
liên thông mạnh.
Định lý: Đồ thị vô hướng liên thông là định hướng được khi và chỉ khi mỗi cạnh của
nó nằm trên ít nhất một chu trình.

1.4. Biểu diễn đồ thị trên máy tính
1.4.2. Ma trận liên thuộc đỉnh – cạnh

Ví dụ: Ma trận liên thuộc đỉnh – cạnh của đồ thị sau:

3


1.4. Biểu diễn đồ thị trên máy tính

1.4. Biểu diễn đồ thị trên máy tính

1.4.3. Ma trận kề hay ma trận liên thuộc đỉnh – đỉnh

1.4.3. Ma trận kề hay ma trận liên thuộc đỉnh – đỉnh

Với:


Nhận xét:
• a[i, j] = a[j, i]  Ma trận kề của đồ thị vơ hướng là ma trận đối xứng.
• Tổng các phần tử trên dòng i (cột j) của ma trận kề chính bằng bậc của
đỉnh i (đỉnh j).
Ví dụ: Ma trận liên thuộc đỉnh – đỉnh của đồ thị sau:

 Đối với đồ thị có hướng thì ma trận kề cũng định nghĩa tương tự
a

b

c

d

a
b

0

1

1

0

0

0


1

1

c
d

0

0

0

1

0

0

0

0

Lưu ý: Ma trận kề của đồ thị có hướng khơng phải là ma trận đối xứng

1.4. Biểu diễn đồ thị trên máy tính

1.4. Biểu diễn đồ thị trên máy tính

 Danh sách cạnh (cung)

m: số cạnh
n: số đỉnh
Khi m < 6n  biểu diễn đồ thị dưới dạng danh sách cạnh (đồ thị thưa)
Mỗi cạnh m tương ứng với hai biến Dau(e), Cuoi(e)  Để lưu trữ đồ thị ta
cần 2m đơn vị bộ nhớ

Ví dụ: Tìm danh sách cạnh (xét vơ hướng) và cung (xét có hướng) của đồ
thị sau:

DS cạnh (cung) của đồ thị cho trong hình là:
Dau
a
a
b
b
c

Cuoi
b
c
d
c
d

Trong hình này ds cạnh hay cung đều như nhau.
NX: Đối với đồ thị vô hướng, ds cạnh có điểm đầu và cuối
khơng được lặp lại.

1.4. Biểu diễn đồ thị trên máy tính
 Danh sách kề


Ví dụ danh sách kề
G/s các mục dữ liệu tương ứng các đỉnh theo thứ tự A, B, C, D, E, F

Mỗi đỉnh v, ta lưu trữ ds các đỉnh kề với nó, k/h Ke(v), tức là:
Ke(v) = {u ϵ V; (v,u) ϵ E}
Đồ thị có hướng được biểu diễn bởi một mảng con trỏ V_out[1], V_out[2], …,
V_out[n]. Trong đó mỗi con trỏ tương ứng với một đỉnh. Mỗi V_out[i] chỉ đến một
nút đầu lưu trữ mục dữ liệu của nút tương ứng đỉnh vi và chứa một con trỏ chỉ đến
một ds liên kết của các đỉnh kề. Mỗi nút có 2 trường:
DS kề V_out[]
(Dựa vào mũi tên đi ra tại đỉnh đang xét)
Ví dụ : Lập ds kề V_in[]
(Dựa vào mũi tên đi vào tại đỉnh đang xét)

4


Ví dụ danh sách kề
Danh sách kề V_in[]

1.5. Thuật tốn về đồ thị
PASCAL có thể mơ tả danh sách kề như sau:
Const
m = 1000; (m: số cạnh)
n = 100; (n: số đỉnh)
Var
Ke : array[1..m] of integer;
Tro : array[1..n+1] of integer;
Trong đó Tro(i) ghi nhận vị trí bắt đầu của ds kề của đỉnh i, i=1,2,…,n, Tro(n+1)=2m+1

Khi có dịng lệnh quy ước
for u ϵ Ke(v) do
begin
…………….
end;
Có thể thay thế bởi cấu trúc lệnh cụ thể trên PASCAL như sau:
for i:= Tro(v) to Tro[V+1] – 1 do
begin
u:=Ke(i) ;
…………………
end;

Bài tập

Bài tập

1. Xác định bậc các đỉnh trong đồ thị GA. Xác định bán bậc ra và bán bậc vào của
các đỉnh của đồ thị GB
GB

GA

C

C
B

A

F


B

A

F

D

D
N

M

N

M

e6

E

E

Xét đồ thị GB:
d-(A) = 1
d+(A) = 2
d-(B) = 2
d+(B) = 1
d-(C) = 2

d+(C) = 2
+
d (D) = 2
d-(D) = 2
d-(E) = 4
d+(E) = 1
d-(F) = 1
d+(F) = 4
d-(N) = 3
d+(N) = 1
d-(M) = 1
d+(M) = 3

4. Hãy xây dựng ma trận liên thuộc đỉnh – cạnh của của các đồ thị sau

2. Vẽ đồ thị vô hướng cho bởi:
V = {A, B, C, D, E, F}

E = [(E,C), (B,F), (D,C), (D,F), (F,B), (C,F), (A,F), (E,D)

3. Hãy xây dựng ma trận kề, danh sách kề của các đồ thị trên.
Đối với ds kề chỉ xét đồ thị GB

Bài tập
5. Hãy vẽ đồ thị vô hướng được cho bởi ma trận kề như sau:

5


Nội dung chương 2


2.1. Giới thiệu và những khái niệm cơ bản
Định nhĩa 3: Cây bao trùm

Chương 2. Biểu đồ cây ứng dụng trong kỹ thuật thông tin

Cây T đgl cây bao trùm của đồ thị liên thông G nếu T là đồ thị con của G và T
chứa tất cả các đỉnh của G

2.1 Giới thiệu và những khái niệm cơ bản

Ví dụ: Đồ thị trong hình (a) có cây bao trùm trong hình (b)

2.2 Cây bao trùm tối thiểu
2.3 Các bài tốn mở rộng
2.4 Mạng khơng mắc các lỗi riêng biệt
Bài tập

1

4

2.2. Cây bao trùm tối thiểu

2.1. Giới thiệu và những khái niệm cơ bản

Định nhĩa: Giả sử G là đồ thị có trọng số. Cây bao trùm tối thiểu của G là một cây bao
trùm của G với trọng lượng nhỏ nhất.

Định nhĩa 1:

• CÂY là đồ thị vơ hướng liên thơng và khơng có chu trình
• RỪNG là một đồ thị gồm p thành phần liên thơng, trong đó mỗi
thành phần liên thơng là một cây
Lưu ý: cây khơng chứa khun và cạnh song song

Ví dụ:

Một ví dụ về cây

2

a) Đồ thị G có trọng số trên cạnh

b) Cây sinh bởi đường đi
ngắn nhất xuất phát từ v1

c) Cây bao trùm nhỏ nhất

5

2.2.1. Thuật toán Kruskal

2.1. Giới thiệu và những khái niệm cơ bản
Định nhĩa 2: Cây có gốc (cịn gọi là cây gia phả)

Ví dụ:

Từ chấp nhận được này tức là có trọng lượng nhỏ, nếu nhỏ mà thêm vào mà
tạo thành chu trình thì không chấp nhận. Vậy ở Bước 3 cần kiểm tra tính chấp nhận


3

của nó.

6

1


2.2.1. Thuật tốn Kruskal

2.2.2. Thuật tốn Prim

Ví dụ 1: Xét đồ thị sau

Ví dụ: Tìm cây bao trùm tối thiểu

Sắp xếp các cạnh theo trọng lượng tăng dần (sử dụng 2 mảng tuyến tính α và β) ta được:

(cost)

7

2.2.1. Thuật tốn Kruskal

10

2.2.2. Thuật tốn Prim

Ví dụ: Xét đồ thị sau (a)


Ví dụ: Với đỉnh xuất phát v1 ta có các cạnh được lần lượt thêm vào cây T theo thứ tự
là:

Hình (b) là cây bao trùm nhỏ nhất có trọng lượng 12

Hình (b) là cây bao trùm nhỏ nhất có trọng lượng 12

8

2.2.2. Thuật toán Prim

11

2.3. Các bài toán mở rộng
Bài toán Steiner

Thêm những đỉnh nhân tạo được gọi là các điểm Steiner vào trong mặt phẳng để
tạo thành cây bao trùm nhỏ nhất mới T’ qua những đỉnh P cho trước. Tất nhiên cây T’ có trọng
lượng nhỏ hơn cây T.

9

12

2


2.3. Các bài tốn mở rộng
Ví dụ:

Cây bao trùm nhỏ nhất có trọng lượng 10.123 (a) và Cây Steiner nhỏ nhất có
trọng lượng 9.196 (b)

(b)

(a)

Bài tốn Euler và Bài tốn Hamilton

13

2.4. Mạng không mắc các lỗi riêng biệt
Một tập hợp các lỗi mạng được cho là bị cô lập nếu tất cả các cặp lỗi có
thể bị cơ lập. Chúng ta giả định rằng có hai loại mạng bị lỗi có thể: lỗi đường
truyền và lỗi nút mạng.
i.

Hai lỗi đường truyền được cách ly nếu các đường dây không hoạt động
không phải là sự cố đối với một nút mạng chung.

ii. Hai lỗi nút mạng được cách ly nếu các nút không hoạt động không phải
là các nút lân cận không được kết nối bằng một đường dây.
iii. Lỗi đường truyền và lỗi nút mạng được cách ly nếu đường dây không
hoạt động không phải là sự cố xảy ra với các nút lân cận không hoạt
động.

14

Bài tập
Bài tập: Cho ma trận trọng số như sau:

a) Vẽ đồ thị vô hướng đối với ma trận trên
b) Tìm cây bao trùm tối thiểu sử dụng thuật toán Prim và thuật toán
Kruskal.

(6, 1) ; (5,1); (4,5); (6, 2); (3,4)

15

3


Nội dung chương 3

3.1. Kết nối đa điểm trong mạng lưới trung tâm

Chương 3. Một số thuật toán thiết kế mạng
3.1 Kết nối đa điểm trong mạng lưới trung tâm
3.2 Thuật toán tiếp cận nghiệm suy (Heuristic)
3.3 Sự kết nối thiết bị đầu cuối với bộ tập trung trong mạng
lưới trung tâm
Bài tập

Ta thấy liên kết (5,1) có tốc độ quá dung lượng (500 Kbps)  3 bộ kết
nối sẽ kg liên lạc được với CPU.
Vậy ta gọi giải pháp cho vấn đề ràng buộc là CÂY KHẢ THI TỐI ƯU
thỏa mãn hàm cost nhỏ nhất và ràng buộc độ tin cậy.

1

4


3.1. Kết nối đa điểm trong mạng lưới trung tâm

3.1. Kết nối đa điểm trong mạng lưới trung tâm
3.1.2. Giải pháp vấn đề ràng buộc

3.1.1. Vấn đề ràng buộc và không ràng buộc

Định lý: Nếu một giải pháp của vấn đề không ràng buột bao gồm các kết

Giả sử có n bộ kết nối hay các máy tính (1, 2, …, n) kết nối với một CPU

nối (i,1), (j,1), …, (k,1) thì sẽ có một giải pháp của vấn đề ràng buộc trong đó.
Đối với vd trên, kết nối (5,1) và (6,1) sẽ tạo thành một phần của cây khả

trung tâm với 2 ràng buộc sau:

thi tối ưu mà chúng ta tìm kiếm.

(i) Các liên kết có dung lượng M (ràng buộc dung lượng)
(ii) Không quá m bộ kết nối sẽ khơng thể giao tiếp với CPU nếu có bất

CHIA NHỎ LẦN THỨ NHẤT

kỳ liên kết nào bị lỗi (ràng buột độ tin cậy).

• Chia tập các giải pháp khả thi S thành các tập

Nếu tốc độ bản tin cho mỗi bộ kết nối và dung lượng trên mỗi liên kết


con S1 và S2.

được biết thì vấn đề thiết kế mạng có hàm cost nhỏ nhất phải thỏa mãn 2

Với S1 = {các giải pháp khả thi chứa (6,1), (5,1)}.

điều kiện trên. Đây đgl cây bao trùm tối thiểu có ràng buộc.

Và S2 = S - S1
Giải pháp tối ưu cần tìm kiếm phải nằm trong S1.
Do đó, ta loại S2

2

5

3.1. Kết nối đa điểm trong mạng lưới trung tâm

3.1. Kết nối đa điểm trong mạng lưới trung tâm
CHIA NHỎ LẦN THỨ HAI

Ví dụ:

 Chia S1 thành S11 và S12
Với S11 chứa kết nối khác mà không chứa kết nối bị ràng buột. Và S12 = S1 - S11
G/s S1 = {các giải pháp khả thi chứa (6,1), (5,1) và (4,5)} thì S12 = S1 - S11 = {các giải
pháp khả thi chứa (6,1), (5,1) nhưng khơng có (4,5)}
 Tìm các kết nối nào có cost thấp hơn của bất kỳ giải pháp nào trong S11 và S12
S11 : Tìm cây bao trùm tối thiểu chứa (6,1), (5,1) và (4,5). Ta có thể sử dụng thuật


Cây bao trùm tối thiểu khơng ràng buộc (như hình)
(6,1), (5,1) , (4,5), (2,6) và (3,4). Tổng cost = 58

toán Prim với các cost của các kết nối này đặt bằng 0.

ĐK 1: Giả sử dung lượng mỗi liên kết C=500 Kbps.
ĐK 2: Không quá 2 bộ kết nối sẽ không thể giao tiếp với
CPU (nút 1) nếu có bất kỳ liên kết nào bị lỗi.

thể loại trừ những kết nối khác.

Giả sử cho tốc độ bản tin từ nút 2-6 lần lượt là:
150, 150, 250, 200, 200 Kbps.

Nhìn chung để tăng tốc độ thuật toán ta phải xác định kết nối nào được chọn thì có
Vậy nếu chọn (6,1), (5,1) và (4,5) thì ta loại trừ (2,4) và (3,4) vì nếu chọn hai kết
nối này thì sẽ vi phạm cả hai ràng buộc.
Để đảm bảo các kết nối này bị loại ta đặt chúng có cost = x

3

6

1


3.1. Kết nối đa điểm trong mạng lưới trung tâm

3.2. Thuật toán tiếp cận nghiệm suy (Heuristic)
Thuật toán Heuristic (Kruskal)


Từ ví dụ trên, ta có

Bước 0: Định nghĩa ma trận hàm cost C = {Cij}
𝐶 =

Giá trị liên kết; 𝑖 ≠ 𝑗
ꝏ; 𝑖 = 𝑗

Khởi tạo cây T gồm n đỉnh và khơng có cạnh.
Bước 1: Chọn cost min trong C. Đặt là 𝐶
Bước 2: Nếu việc thêm (k, l) vào cây T mà phá vỡ ít nhất một ràng buộc
thì đặt:
𝐶 =𝐶 = ꝏ

và quay lại Bước 1

Ngồi ra thêm kết nối này và đặt 𝐶 = 𝐶 = ꝏ
Bước 3: Nếu cây T có (n-1) cạnh thì dừng

Vậy ta có cây bao trùm tối thiểu là: (6,1), (5,1) , (4,5), (2,6) và
(3,2). Có tổng cost là 60

Ngồi ra quay lại Bước 1

7

10

3.1. Kết nối đa điểm trong mạng lưới trung tâm


3.2. Thuật toán tiếp cận nghiệm suy (Heuristic)
Sử dụng Thuật tốn Heuristic (Kruskal) xét vd trên:

S12 : Tìm cây bao trùm tối thiểu chứa (6,1), (5,1) nhưng không có (4,5).

Ba lần lặp đầu tiên lần lượt dẫn đến việc bổ sung (6,1), (5,1) và (5,4)
Vậy cây hiện tại đã có 3 cạnh như hình:
B1: Tối thiểu cost trong C là 𝐶

(= 𝐶 ) = 12

B2: Nếu thêm (4,1) vào cây T  Hình thành chu
trình (vi phạm)
Đặt 𝐶

=𝐶

= ꝏ

và quay lại B1

B1: Tối thiểu cost trong C là 𝐶

(= 𝐶 ) = 13

B2: Nếu thêm (6,4) vào cây T  Hình thành chu
trình

Vậy ta có cây bao trùm tối thiểu là: (6,1), (5,1) , (4,1), (2,6) và (3,4). Có tổng cost là

59

Đặt 𝐶

=𝐶

= ꝏ

và quay lại B1

8

11

3.1. Kết nối đa điểm trong mạng lưới trung tâm

3.2. Thuật toán tiếp cận nghiệm suy (Heuristic)
Tiếp tục:

 Giữ lại tập con có tổng cost nhỏ hơn, loại bỏ tập con lớn hơn.
 Giữ lại s12 ; loại bỏ s11
 Xác định xem tập con giữ lại có giải pháp khả thi mà cost có bằng dưới hạn
dưới khơng.
- Nếu tồn tại  đó là giải pháp khả thi tối ưu.
- Nếu không, ta tiếp tục chia nhỏ s12 thành s121 và s122
Vậy giải pháp cho vấn đề có ràng buột được minh họa như hình:

B1: Tối thiểu cost trong C là 𝐶

(= 𝐶 ) = 14


B2: Nếu thêm (2,6) vào cây T  Không vi phạm đk ràng
buộc nên cạnh này được thêm vào cây T
Đặt 𝐶

=𝐶

= ꝏ

B3: Cây T có 4 cạnh  B1
T là cây hiện tại

Tiếp tục, ta có cây bao trùm tối thiểu tối ưu là: (6,1), (5,1) , (4,5), (2,6) và
(3,1). Có tổng cost là 61.

9

12

2


3.3. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm

3.2. Thuật toán tiếp cận nghiệm suy (Heuristic)

Mục tiêu là tối thiểu hàm cost

12, 13, 15, 17 thì tạo thành chu trình


Đây là vấn đề lập trình số ngun 0-1. Có thể có 2

16, 18 thì bị ràng buộc về dung lượng tốc độ > 500 Kbps

trường hợp 0 và 1

Cuối cùng 19 là thỏa mãn

13

16

3.3. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm

3.3. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm

3.3.1. Đặt vấn đề

3.3.2. Thuật toán ADD*

- Các thiết bị đầu cuối Ti có thể nối trực tiếp với CPU (C1) hoặc đến các bộ
kết nối trung tâm (concentrators) Cj. Các bộ kết nối này lần lượt được nối với

• Bước 0: Kết nối tất cả các Ti đến C1
• Bước 1: Đối với mỗi thiết bị tập trung đóng Cj, mở Cj và kết nối nó với thiết

CPU.

- Giả định cho trước các Ti, cũng như cost có thể có của các liên kết từ Cj đến
C1.

bị đầu cuối có dung lượng ej sao cho giảm cost lớn nhất.
Tính hàm cost 𝜏 , đây là cost của cấu hình mới khi mở Cj

Giả định có n thiết bị đầu cuối (terminals) T1, …, Tn.

• Bước 2:Tìm 𝜏 nhỏ nhất (𝜏 ).

m bộ kết nối trung tâm C2, C3, …, Cm+1. Với CPU (C1)

Nếu 𝜏 ≥ cost của cấu hình hiện tại  dừng thuật toán.

fj là cost cố định từ Cj đến C1.

Ngoài ra mở Cp, quay lại Bước 1.

ej là số thiết bị đầu cuối tối đa có thể kết nối đến Cj.
Với C1: f1 = 0, e1 ≥ n

*

A Heuristic Program for Locating Warehouses

14

3.3. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm


17

3.2. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm
Ví dụ thuật tốn ADD

Cj mở nếu nó sử dụng, ngồi ra đóng.

Cho cấu hình như hình vẽ, với:

Đặt α = 1 nếu Ti kết nối đến Cj, ngoài ra bằng 0

𝑒 = 5, 𝑒 = 𝑒 = 2 𝑣à 𝑓 = 9, 𝑓 = 8

Đặt β = 1 nếu Cj mở, ngoài ra bằng 0.

Giá trị cost kết nối được cho bởi ma
trận sau:

Tổng hàm cost:

Tổng đầu là các cost liên kết từ Cj đến C1
Tổng sau là cost liên kết từ Ti đến Cj
 𝐶 là cost liên kết từ Ti đến Cj

15

18

3



3.3. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm

3.3. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm

 Bước 0: Kết nối tất cả các Ti đến C1. Cost = 68

3.3.3. Thuật toán DROP**
 Bước 0: Kết nối các Ti đến một trong những C1, C2, …, Cm+1 có tổng cost
càng nhỏ càng tốt.
 Bước 1: Đối với mỗi thiết bị tập trung mở Cj, đóng Cj và phân phối lại bất
kỳ thiết bị đầu cuối nào được kết nối với nó trong số phần cịn lại (bao
gồm cả C1) theo cách giảm cost đến mức nhiều nhất có thể
Tính hàm cost 𝜏 , đây là cost của cấu hình mới khi đóng Cj

LẦN LẶP THỨ NHẤT

 Bước 2: Tìm

 Bước 1: Mở C2 (thêm 9 đơn vị vào cost)
𝐶
𝐶

−𝐶
−𝐶

= 2; 𝐶

= −2

−𝐶

= −5; 𝐶

−𝐶

= −3; 𝐶

−𝐶

𝜏

nhỏ nhất (𝜏 ). Nếu 𝜏 ≥ cost của cấu hình hiện tại 

dừng thuật tốn. Ngồi ra đóng Cp, quay lại Bước 1.

= −1;

19

**Warehouse

3.3. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm

Location under Continuous Economics of Scale

22


Ví dụ sử dụng thuật tốn DROP
Bước 0: Kết nối các Ti đến một trong những C1, C2, …, Cm+1 có tổng cost 75.

Kết nối T2 và T3 đến C2  giảm 8 đơn vị
Vậy

T3 có thể nối đến C2 hoặc C3 (tùy chọn)

𝜏 = 68 +9 – 8 = 69

Mở C3 (thêm 8 đơn vị vào cost)
𝐶
𝐶

−𝐶
−𝐶

=3; 𝐶 − 𝐶 = −6; 𝐶
= 1; 𝐶 − 𝐶 = 1

−𝐶

= −3;

Kết nối T2 và T3 đến C3  giảm 9 đơn vị
Vậy 𝜏 = 68 +8 – 9 = 67
Bước 2: Để C3 mở  cấu hình hiện tại bây giờ là
hình bên.


𝜏=𝐶

20

3.3. Sự kết nối thiết bị đầu cuối với bộ tập
trung trong mạng lưới trung tâm

−𝐶
−𝐶

+𝐶

+𝐶

+ 𝑓 + 𝑓 = 75

23

LẦN LẶP THỨ NHẤT
Bước 1: Đóng C2 (trừ 9 đơn vị từ hàm cost 𝜏). Liên quan đến T3 và T4

Bước 1: Mở C2 (thêm 9 đơn vị vào cost)
𝐶

+𝐶

Ví dụ sử dụng thuật tốn DROP

LẦN LẶP THỨ HAI


𝐶

+𝐶

9 + 9 + 11 + 16 + 13 + 9 + 8

= 2; 𝐶

−𝐶

= 1; 𝐶

= −1; 𝐶

−𝐶

= −2

−𝐶

𝐶

= 0;

−𝐶

= 3; 𝐶

−𝐶


= 0; 𝐶

−𝐶

= 1; 𝐶

−𝐶

= 2; Ta thấy kết nối

lại T3 đến C3 và T4 đến C1 sẽ giảm cost nhiều hơn

Tổng cost hiện tại 67 cộng với 9 = 76 nên các

Nếu kết nối T3 đến C3 và T4 đến C1  giảm 8 đơn vị.

chênh lệch trên không giảm cost xuống dưới

Vậy

67.  Khơng thể cải thiện nên thuật tốn kết

𝜏

= 75 – 9 + 1 = 67

Đóng C3 (trừ 8 đơn vị từ hàm cost). Chỉ có liên quan đến T2

thúc với cấu hình như hình trên.


𝐶

−𝐶

= 6; Ta khơng kết nối T2 đến C2 vì sẽ vượt quá e2 (=2, tức là C2

đã kết nối 2 Ti rồi)
Nếu kết nối T2 đến C1  giảm 2 đơn vị

21

Vậy

𝜏

= 75 - 8 + 6 = 73

24

4


Ví dụ sử dụng thuật tốn DROP
Bước 2: 𝜏 chính là 𝜏

 đóng C2. Cấu hình bây giờ là:

LẦN LẶP THỨ HAI
Bước 1: Nếu ta đóng C3 thì cấu hình trở thành Bước 0 của thuật toán ADD với tổng
cost = 68. Do đó, thuật tốn dừng với cấu hình như trên.


25

Bài tập
Bài tập 1. Cho ma trận trọng số như sau:

Với dung lượng mỗi liên kết là C=50 Kbps (Điều kiện 1).
Điều kiện 2: Không quá 2 bộ kết nối giao tiếp với CPU.
Cho tốc độ bản tin từ nút 2-6 lần lượt là: 40, 25, 25, 20, 20 Kbps.
a. Tìm cây bao trùm tối thiểu với giải pháp khơng xét vấn đề ràng buột.
b. Sử dụng Thuật tốn Heuristic (Kruskal) để tìm cây khả thi tối ưu.

26

Bài tập
Bài tập 2. Cho cấu hình và ma trận trọng số như sau:
Với 𝑒 = 5, 𝑒 = 𝑒 = 2 𝑣à 𝑓 = 11, 𝑓 = 15

Sử dụng thuật toán ADD và DROP tìm giải pháp cận tối ưu

27

5


Chương 4. ĐỊNH TUYẾN (ROUTING)

4.1. Giới thiệu
Định tuyến (routing) là quá trình chọn lựa các đường đi


4.1 Giới thiệu

trên một mạng máy tính để gửi dữ liệu qua đó. Việc định

4.2 Mạng lưới với tải trọng dương

tuyến được thực hiện cho nhiều loại mạng, trong đó

4.3 Mạng lưới với tải trọng dương và âm.

có mạng điện thoại, liên mạng, Internet, mạng giao
thơng.

Thuật tốn Warshall

Vấn đề định tuyến một bản tin trong mạng truyền thông là

Bài tập

rất phức tạp.
- Đường đi ngắn nhất
- Cost nhỏ nhất

1

4.2. Mạng lưới với tải trọng dương

- …

2


4.2. Mạng lưới với tải trọng dương

Trong phần này ta sử dụng chiều dài thay cho trọng lượng và
đường đi ngắn nhất thay cho đường đi có trọng lượng nhỏ nhất.

Ma trận L của bài toán đường đi ngắn nhất được định
nghĩa:

(P: Path)

Shortest Path: Đường đi ngắn nhất

3

4.2. Mạng lưới với tải trọng dương

4

THUẬT TỐN DIJKSTRA

THUẬT TỐN DIJKSTRA

Nếu

5

>

thì


6

1


THUẬT TỐN DIJKSTRA

THUẬT TỐN DIJKSTRA
Ví dụ: Cho đồ thị sau

7

8

THUẬT TOÁN DIJKSTRA
Các đỉnh
T

1
1

0
0
0
0

3
3
3

3

2
2
2
2
2

Các đỉnh
Dodai
B4 (lần 1)
B4 (lần 2)

1
0

0
+ꝏ
2

3
+ꝏ
6
5

2
+ꝏ
+ꝏ
+ꝏ
7


Các đỉnh

1

0

3

2

Nhan

-1

-1

-1

-1

1

1

-1

1

0


-1

1

0

3

gán đỉnh
trước

THUẬT TỐN DIJKSTRA
Ví dụ:

Nếu
thì

>

9

THUẬT TỐN DIJKSTRA
Các đỉnh
T

10

4.3 Mạng lưới với tải trọng dương và âm. Thuật toán Warshall


1
1

2
2
2
2
2

3
3
3
3

4
4
4

5
5
5
5
5
5
5

6
6
6
6

6
6
6

7
7
7
7
7
7

1
0

2
+ꝏ
9
6
6

3
+ꝏ
+ꝏ
4

4
+ꝏ
3

5

+ꝏ
+ꝏ
+ꝏ
9
9
9

6
+ꝏ
+ꝏ
+ꝏ
+ꝏ
+ꝏ
+ꝏ

7
+ꝏ
6
6
6
6

Theo thuật Dijsktra dẫn đến kết quả sai vì đường đi ngắn nhất

Các đỉnh

1

2


3

4

5

6

7

của nó là từ 1 đến 2. Trong khi đường đi ngắn nhất thực tế là

Nhan

-1

-1

-1

-1

-1

-1

-1

1


-1

1

-1

-1

1

4

4

1

-1

-1

1

4

4

1

3


-1

1

các đỉnh chọn

Các đỉnh
Dodai
Cost min

gán đỉnh trước

4.3.1. Đặt vấn đề

từ 1-3-2. Với Dijsktra, node 2 được gán nhãn cố định trong
bước 4 (lần 1). Để khắc phục  điều chỉnh nhãn

11

12

2


4.3.2. Thuật toán Bellman - Ford

4.3.2. Thuật toán Bellman - Ford
Ví dụ: Hãy định tuyến đồ thị có hướng, có trọng lượng bất kỳ, khơng có chu
trình, gốc là đỉnh 1 như sau:


NGUYÊN LÝ THUẬT TOÁN
1. Gán các giá trị ban đầu:
- Chọn đỉnh S1 làm gốc
- Nhãn Nhan = [1,0,…,0] ; Độ dài Dodai[1] = 0 ; Đỉnh trước Pr[1] = 1.
2. Ở mỗi bước lặp:
- Chọn đỉnh k chưa đánh dấu sao cho tất cả đỉnh trước của k đã đánh dấu rồi.
- Cập nhật Nhan : Nhan[k] = 1.

Gán các giá trị ban đầu:

- Tính Dodai[k] = min { Dodai[i] + a[i, k], i thuộc đỉnh trước của k đã đánh dấu

Nhan = [1, 0, 0, 0, 0, 0];
Dodai [1] = 0;
Pr[1] = 1
Pr*(2) = {1, 3}; Pr*(3) = {1}; Pr*(4) = {2, 3, 6}; Pr*(5) = {3}; Pr*(6) = {2, 5};

rồi, i ϵ Pr*(k)}. Và Pr[k] là chỉ số đạt min.

13

14

4.3.2. Thuật toán Bellman - Ford

4.3.2. Thuật tốn Bellman - Ford

VD: Cho đồ thị có hướng, có trọng lượng bất kỳ, khơng có chu trình, gốc là đỉnh 1

Gán các giá trị ban đầu:


Nhan = [1, 0, 0, 0, 0, 0];
Dodai [1] = 0;
Pr[1] = 1
Pr*(2) = {1, 3}; Pr*(3) = {1}; Pr*(4) = {2,
3, 6}; Pr*(5) = {3}; Pr*(6) = {2, 5};

Kết quả:
Dodai = [0, -1, -2, -4, 2, 1]
Pr

= [1, 3, 1, 6, 3, 5]

Bước 1: Chọn đỉnh 3 vì Pr*(3) = {1}; Cập nhật Nhan[3] = 1; Tính Dodai[3] = -2; Pr[3] = 1;

 Đường đi ngắn nhất từ s1 đến s2 : s1  s3  s2

với độ dài là -1

Bước 2: Ở bước lặp này ta có thể chọn đỉnh 5 (hay đỉnh 2).

 Đường đi ngắn nhất từ s1 đến s3 : s1  s3

với độ dài là -2

Cập nhật Nhan[5] = 1; Tính Dodai[5] = 2; Pr[5] = 3;

 Đường đi ngắn nhất từ s1 đến s4 : s1  s3  s5  s6  s4 với độ dài là -4

Bước 3: Chọn đỉnh 2. Cập nhật Nhan[2] = 1; Tính Dodai[2] = -1; Pr[2] = 3;


 Đường đi ngắn nhất từ s1 đến s5 : s1  s3  s5

Bước 4: Chọn đỉnh 6. Cập nhật Nhan[6] = 1; Tính Dodai[6] = 1; Pr[6] = 5;
Bước 5: Chọn đỉnh 4. Cập nhật Nhan[4] = 1; Tính Dodai[4] = -4; Pr[4] = 6;

 Đường đi ngắn nhất từ s1 đến s6 : s1  s3  s5  s6

với độ dài là 2
với độ dài là 1

15

4.3.3. Thuật tốn Floyd (1962)

16

4.3.3. Thuật tốn Floyd (1962)

Là thuật tốn tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh.

Thuật tốn thực hiện bằng 3 vịng lặp lồng nhau. Khi kết thúc
thì L[i, j] sẽ là độ dài đường đi ngắn nhất từ đỉnh i đến đỉnh j
nếu tồn tại.

17

18

3



4.3.3. Thuật tốn Floyd (1962)

4.3.4. Thuật tốn WARSHALL (1962)

Ví dụ:

19

4.3.4. Thuật tốn WARSHALL (1962)

20

4.3.4. Thuật tốn WARSHALL (1962)
Ví dụ:

21

22

Bài tập chương 4

4.3.4. Thuật toán WARSHALL (1962)

Bài tập 1: Cho đồ thị có hướng như hình sau. Tìm đường đi ngắn nhất từ
đỉnh 1 đến đỉnh 8 sử dụng thuật toán Dijkstra.

2


10

4

16

1

18

5

12

7

9

Ma trận A: Đỉnh 1 đến đỉnh 2 (có)  1; Đỉnh 1 đến đỉnh 3 (kg có)  0,; …..
Ma trận P: Hàng thứ nhất: Đỉnh trước của đỉnh 2 là đỉnh 1; Đỉnh trước của 4 là đỉnh 1;

11

Hàng thứ hai (chỉ xét a[i, j]=1: Đỉnh trước của đỉnh 3 là đỉnh 2;

6

3

Hàng thứ ba: Đỉnh trước của đỉnh 2 là đỉnh 3; Đỉnh trước của đỉnh 4 là đỉnh 3;

Hàng thứ tư: Đỉnh trước của đỉnh 1 là đỉnh 4; Đỉnh trước của đỉnh 2 là đỉnh 4;

20

8

23

24

4


Bài tập chương 4

Bài tập chương 4

Bài tập 2: Cho ma trận trọng số âm dương như sau
a) Vẽ sơ đồ mạng
b) Sử dụng thuật tốn Ford để tìm đường đi có cost nhỏ nhất từ đỉnh 1 đến
đỉnh 2, …

25

Bài tập 3: Cho đồ thị như hình sau
a) Tìm đường đi ngắn nhất từ đỉnh 1 đến đỉnh 8
b) Tìm đường đi ngắn thứ hai từ đỉnh 1 đến đỉnh 8

26


Bài tập chương 4
Bài tập 4: Cho ma trận A như hình sau
a) Vẽ sơ đồ mạng
b) Sử dụng thuật tốn Warshall để tìm đường đi giữa 2 đỉnh bất kỳ trong
mạng.

A=

27

5


Nội dung chương 5

5.1. Giới thiệu

Chương 5. Các bài toán về lưu lượng mạng
5.1 Giới thiệu
5.2 Thuật toán Ford-Fulkerson cho luồng cực đại
5.3 Những vấn đề liên quan và ứng dụng
5.4 Lưu lượng đa hàng
Bài tập

1

5.1. Giới thiệu

2


5.2. Thuật toán Ford-Fulkerson cho luồng cực đại
5.2.1. Giới thiệu về luồng cực đại

Các bài toán về lưu lượng mạng hay luồng trong mạng

Chúng ta muốn biết lượng thơng tin tối đa có thể được truyền đi trong

(Network Flows) là một lớp các bài toán liên quan đến nhiều lĩnh

một đơn vị thời gian từ nút nguồn s đến nút đích t và t có thể nhận được

vực khác nhau như tốn ứng dụng, tin học, công nghệ, quản lý,

một lượng thông tin không giới hạn trong một đơn vị thời gian. Nếu khơng

quản trị, …. Bài tốn về lưu lượng mạng có lịch sử phát triển khá

đúng như vậy, mạng có thể được điều chỉnh lại.

lâu đời kể từ khi những công trình đầu tiên liên quan đến lĩnh vực

Luồng cực đại được phát biểu: Trong một mạng với các cung có độ

này được công bố bởi Gustav Kirchhof và các nhà tiên phong

thơng qua uij, ta muốn gửi một luồng có giá trị cực đại giữa 2 nút đặt biệt,

khác. Họ là những người đầu tiên phân tích có hệ thống về dịng

nút nguồn s và nút đích t mà khơng vượt quá khả năng thông qua của các

cung.

điện. Họ đã sử dụng mạng (hay đồ thị) như những phương tiện hữu
ích biểu diễn nhiều hệ thống vật lý khác nhau.

3

Vấn đề luồng cực đại

4

5.2. Thuật toán Ford-Fulkerson cho luồng cực đại

Bài tốn luồng cực đại tìm một phương án phù hợp để gửi 1 luồng có giá
trị lớn nhất có thể từ nút nguồn s đến nút đích t.
Nếu khả năng thông qua cực đại của cung (i,j) là uij, bài tốn luồng cực
đại có thể biểu diễn như một trường hợp riêng của bài toán luồng cực tiểu nếu
ta đặt b(i) = 0, Ɐ i ϵ N; cij = 0, Ɐ (i,j) ϵ A và thêm vào mạng cung (t,s) với cts
= -1 và uts = ꝏ.

5

6

1



×