Bai giang Toan roi rac
Trang 1TOÁN HỌC RỜI RẠC
PHẦN 2
DISCRETE MATHEMATICS
PART TWO
Trang 3PHÉP ĐẾM (1)
– A là một tập hợp, ký hiệu |A| bản số của A, trong trường hợp A
là tập hữu hạn, |A| chính là số phần tử của A
(
!
n n m
m n
Trang 4PHÉP ĐẾM (2)
– Trong một phòng họp có n người, mỗi người bắt tay với mỗi
người khác đúng một lần Số bắt tay?
– Dùng n bit để biểu diễn nhị phân cho các số nguyên không âm,
số số nguyên có thể được biểu diễn?
– Có bao nhiêu số thập phân có 6 chữ số? Bao nhiêu số thập phân
– Có bao nhiêu dãy số nguyên dương, có tổng bằng n?
– Có bao nhiêu dãy k số nguyên dương có tổng bằng n?
– Có bao nhiêu cách phân phát n món quà (khác nhau đô một) cho k đứa trẻ?
4
Trang 5PHÉP ĐẾM (3)
– Có bao nhiêu cách sắp xếp 8 các quân xe trong bàn cờ 8x8 sao cho không quân xe nào « bị tấn công »?
– Cây nhị phân chiều cao h có nhiều nhất bao nhiêu nút lá?
– Trong mặt phẳng, cho n đường thẳng đôi một cắt nhau và
không có ba đường thẳng nào đồng quy n đường thẳng này chia mặt phẳng thành bao nhiêu miền?
– Cho n giác lồi, không có ba đường chéo nào đồng quy, các
đường chéo của đa giác chia da giác thành bao nhiêu miền?
Trang 6LÝ THUYẾT ĐỒ THỊ (1)
Đồ thị (vô hướng)
6
Trang 7– ĐƯỜNG ĐI & CHU TRÌNH
• Đường đi: u, v V, u=v0, v1, …, vn=v sao cho vivi+1 E
• Đường đi sơ cấp: tập i=0, …, n-1: vi vi+1
Trang 8• + (A) = { (i, j)| i) = { (i, j)| i)| iA) = { (i, j)| i, j)| i A) = { (i, j)| i }
• - (A) = { (i, j)| i) = { (i, j)| i)| j)| iA) = { (i, j)| i, i A) = { (i, j)| i }
• (A) = { (i, j)| i) = + (A) = { (i, j)| i) - (A) = { (i, j)| i)
8
Trang 9– ĐƯỜNG ĐI & CHU TRÌNH
• Đường đi: u, v V, u=v0, v1, …, vn=v sao cho (vi, vi+1) C
• Đường đi sơ cấp: tập i=0, …, n-1: vi vi+1
• Chu trình: v0 = vn
• Chu trình sơ cấp: chu trình & i=1, …, n-1: vi vi+1
• Đồ thị có hướng liên thông: đồ thị vô hướng tương ứng liên thông
• Đồ thị có hướng liên thông một chiều: u, v V, đường đi từ u đến v hoặc từ v đến u
• Đồ thị có hướng liên thông mạnh: u, v V, đường đi từ u đến v
và đường đi từ v đến u
• Thành phần liên thông: quan hệ R={(u, u)| u E} {(u, v) |
đường đi từ u đến v và đường đi từ v đến u}
Trang 10LÝ THUYẾT ĐỒ THỊ (7)
– G=(V, E) hữu hạn, liên thông
– Đường đi Euler, chu trình Euler
– Đồ thị Euler, nửa Euler
– Định lý Euler
• Bậc mỗi đỉnh 2, đồ thị có chu trình
• G là đồ thị Euler khi và chỉ khi bậc mỗi đỉnh là chẵn
• G là đồ thị nửa Euler khi và chỉ khi G có không quá hai đỉnh bậc lẻ
• G có hướng, liên thông mạnh là Euler khi và chỉ khi
xE: d - (x)=d + (x)
10
Trang 11• Đồ thị có hướng, đầy đủ là đồ thị nửa Hamilton
• Đồ thị có hướng, đầy đủ bậc > 2 là đồ thị Hamilton
– Đồ thị đấu loại
• Đồ thị đấu loại là nửa Hamilton
• Đồ thị đấu loại liên thông là Hamilton
Trang 12• w(i) = min{ w(i), w(k)+l(k, i) }
• Nếu t > w(i): p(i)=k
– Đỉnh gốc
– Hạng của một đỉnh = đường đi dài nhất từ gốc
12
Trang 13CÂY & CÂY CÓ HƯỚNG
– Giải thuật Kruskal
– Giải thuật Prim
Trang 14• Tồn tại duy nhất một đỉnh thu t, không có cung ra, chỉ có cung vào
• Mỗi cung a được gắn với một giá trị không âm c(a), được gọi là băng thông của cung
• Nếu không tồn tại cung từ u đến v, băng thông của (u, v) dược quy ước là 0
– Luồng trong mạng
• G = (V, A) là một mạng
• Ánh xạ f: A R+ được gọi là một luồng trong mạng G khi
• Giới hạn của luồng: a A: f(a) c(a) (luồng của cung không vượt quá băng thông của cung)
• Điều kiện cân bằng luồng: v V, v s, v t, tổng các luồng trên các cung vào v bằng các luồng trên các cung ra khỏi v
x v f v
u
f
) ,
) , ( )
, (
Trang 15LUỒNG CỰC ĐẠI (2)
• Giá trị của luồng: Tổng luồng trên các cung xuất ra từ s bằng với tổng luồng trên các cung thu vào tại t
Được gọi là giá trị của luồng trên mạng
– Bài toán luồng cực đại trong mạng:
• Xác định luồng cực đại f (luồng có giá trị lớn nhất)
• Nếu điểm phát và điểm thu thuộc hai phần khác nhau của lát cắt, lát cắt được gọi là lát cắt tách
) ( )
, ( )
,
(
) ,
f val t
x f v
s
f
A v
t x f v
s f
val(f)
) ,
) , ( )
, ( max
Trang 16LUỒNG CỰC ĐẠI (3)
• Khả năng thông của lát cắt là tổng các băng thông của các cung (u, v) với u X0, v Y0
Lát cắt với khả năng thông nhỏ nhất được gọi là lát cắt hẹp nhất
– Sự tăng luồng trong mạng:
Đồ thị tăng luồng Gf = (V, Af) được xây dựng như sau:
– (u, v) A: f(u, v)=0 thì (u, v) A f với trọng số p(u, v) = c(u, v) – (u, v) A: f(u, v)=c(u, v) thì (u, v) A f với trọng số p(u, v)=f(u, v) – (u, v) A: 0 <f(u, v)<c(u, v) thi
(u, v) A f với trọng số p(u, v)=c(u, v) – f(u, v) (v, u) A f với trọng số p(u, v)=f(u, v)
v u c Y
X c
Trang 17LUỒNG CỰC ĐẠI (4)
• Cung thuận: (u, v) Af, (u, v) A
• Cung nghịch: (u, v) Af, (u, v) A
• Đường tăng luồng: đường đi trong Gf từ s đến t
• Sự tăng luồng: P = { s=v0, v1, …, vk=t } là đường tăng luồng
>0 là giá trị nhỏ nhất trong các trọng số của các cung trên P Xây dựng ánh xạ g: Af R+ như sau:
Trang 18LUỒNG CỰC ĐẠI (4)
– Thuật toán Ford-Fulkerson:
• Gán nhãn: Mỗi đỉnh trong mạng thuộc vào một trong ba trạng thái:
– Chưa được gán nhãn – Đã được gán nhãn nhưng chưa được duyệt – Đã được gán nhãn và đã được duyệt
Nhãn của một đỉnh y có dạng:
y : [ x, (y) ] +x có nghĩa cần tăng luồng theo cung (x, y) -x có nghĩa cần giảm luồng theo cung (x, y)
• Khởi đầu tất cả các đỉnh đều chưa được gán nhãn
– Gãn nhãn cho mỗi ảnh u của x chưa được gán nhãn mà f(x, u)<c(x, u):
u : [+x, (u) ] / (u) = min{ (x), c(x, u) – f(x, u) } – Gán nhãn cho mỗi tạo ảnh v của x chưa được gán nhãn mà f(v, x) > 0
v : [-x, (v) ] / (v) = min{ (x), f(v, x) }
x được duyệt
18
Trang 19LUỒNG CỰC ĐẠI (4)
• B3:
Lặp lại B2 cho đến khi
– Hoặc đỉnh thu được gán nhãn t : [ y, (t) ]: chuyển sang B4
– Hoặc không thể gán nhãn cho đỉnh thu t: thuật toán kết thúc Đặt X0tập các đỉnh được gán nhãn, Y0 tập các đỉnh không được gán nhãn, khi
f(x, u) = f(x, u) - (t)
• B6
Nếu x s, đặt x = u quay lại B5
khác đi xóa tất cả các nhãn, quay lại B1
Trang 20
SỐ HỌC (1)
• CHIA HẾT & CHIA CÓ DƯ
• ƯỚC CHUNG LỚN NHẤT, BỘI CHUNG NHỎ NHẤT
• m nguyên dương: (ma1, ma2, …, man) =m (a1, a2, …, an)
• d>0 là ước chung của a1, a2, …, an thì
a d
a d
a d
a1 2 n ( 1, 2, , n)
) , , ,
1 ) , , ,
d
a d
a d
Trang 21SỐ HỌC (2)
• Nếu (a, b)=1, (a, c)=1 thì (a, bc)=1
• Nếu a=pb + r (0 r < b) thì (a, b) = (b, r)
,
b a
ab b
1 , ,
,2 1
M a
M a
M
d
a a
a d
a d
a d
Trang 222 1
k
k
p p
p
2 1
k
p p
p
2 1
Trang 23SỐ HỌC (4)
– ax + by =c
• d=(a, b)
• Nếu d không là ước của c thì phương trình vô nghiệm
• Nếu d | c thì nghiệm của phương trình có dạng:
a y
y
t d
b x
Trang 24• a = b (mod m) thì (a+c) = (b+c) (mod m)
• a = b (mod m) thì a = (b +km) (mod m), (a+km) = b (mod m)
• a = b (mod m) thì an = bn (mod m)
• a = b (mod m) thì ac = bc (mod m)
• (c, m)=1, a = b (mod m) iif ac = bc (mod m)
• d = (a, b, m) thì (a/d) = (b/d) (mod (m/d))
• d=(a, b), (d, m)=1 thì (a/d) = (b/d) (mod m)
• a = b (mod mi) i=1, 2, …, n thì a = b (mod [m1, m2, …, mn])
24
Trang 25• Nếu d không là ước của b, phương trình vô nghiệm
• Nếu d | b phương trình có đúng d nghiệm
1 (
) (mod 0
0
0
m d
m d
x x
m d
m x
x
x0 là một giá trị thỏa mãn phương trình
Trang 26• x=M1N1 + … + MnNn (mod M) là nghiệm của hệ
) (mod
) (mod
2 2
1 1
n
a x
m a
x
m a
x
Trang 27SỐ HỌC (8)
– f(x) = a0xn + a1xn-1 + … + an = 0 (mod m)
– Phương trình tương đương với hệ:
– Giải phương trình f(x) = a0xn + a1xn-1 + … + an = 0 (mod p) (*)
Giải phương trỉnh f(x) = a0xn + a1xn-1 + … + an = 0 (mod p-1) (**)
Khi đó nghiệm của phương trình (*) là: x=x0 + t0 p-1 (mod p)
k
k
p p
p
m 1 2
2 1
f(x)
) p (
f(x)
k
α k
α
mod 0
mod
1
Trang 2828