Tải bản đầy đủ (.ppt) (28 trang)

Bài giảng điện tử môn tin học: Toán học rời rạc_p2 potx

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 (167.56 KB, 28 trang )

TOÁN HỌC RỜI RẠC
PHẦN 2
DISCRETE MATHEMATICS
PART TWO
NỘI DUNG
1. PHÉP ĐẾM
a. Nguyên lý cộng, nhân & bù trừ
b. Giải tích tổ hợp
c. Nguyên lý Dirichlet
d. Công thức đệ quy
2. LÝ THUYẾT ĐỒ THỊ
a. Đại cương
b. Đồ thị liên thông
c. Đường đi ngắn nhất
d. Cây khung trọng lượng tối tiểu
e. Luồng cực đại
3. SỐ HỌC
a. Lý thuyết chia hết
b. Lý thuyết đồng dư
2
PHÉP ĐẾM (1)

NGUYÊN LÝ CỘNG, NHÂN, BÙ

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

|A ∪ B|=|A| + |B| -|A ∩ B|
nếu A ∩ B = ∅ thì |A ∪ B|=|A| + |B|

|A x B| = |A| * |B|



B⊆A: |A – B| = |A| - |B|

GIẢI TÍCH TỔ HỢP

S là một tập hợp hữu hạn, |S| = m

Số các tập hợp con của S = 2
m


Số các tập con n phần tử của S (n ≤ m) =

Một bộ n phần tử cũa S: (a
1
, a
2
, …, a
n
) ∈ S
n
số các bộ n phần tử của S = m
n


Số các hoán vị của một dãy m phần tử = m!
3
!)!(
!
nnm

m
n
m

=








PHÉP ĐẾM (2)

CÁC VÍ VỤ

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ó số chữ số nhỏ hơn sáu?

Có bao nhiêu cách sắp xếp chỗ ngồi cho n người xung quanh
một chiếc bàn họp tròn?
Bây giờ giả sử ông chủ tịch cuộc họp được sắp ngồi ở một ghế
xác định, có bao nhiêu cách sắp xếp chỗ ngồi cho các người còn

lại?

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
PHÉ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?
5
LÝ THUYẾT ĐỒ THỊ (1)

CÁC ĐỊNH NGHĨA, KHÁI NIỆM
Đồ thị (vô hướng)

G=(V, E), V = tập các đỉnh, E=tập các cạnh v
1

v
2
, v
1
, v
2
∈ E

Đỉnh cô lập: đỉnh không có cạnh đi qua

Đỉnh treo: chỉ thuộc một cạnh duy nhất (cạnh treo)

Đa đồ thị: tồn tại nhiều hơn 1 cạnh nối hai đỉnh

đồ thị đơn: tồn tại nhiều nhất một cạnh nối hai đỉnh

Đỉnh kề: chung cạnh

Cạnh kề: chung đỉnh

Đồ thị đầy đủ: mọi cặp đỉnh (phân biệt) đều có cạnh nối

Đồ thị con: A⊆V, E
A
={(v
1
, v
2
) ∈ E | v
1

, v
2
∈A}, G
A
=(A, E
A
)

Đồ thị bộ phận: C ⊆ E, G
C
=(E, C)

Đồ thị bộ phận con
6
LÝ THUYẾT ĐỒ THỊ (2)

BIỂU DIỄN ĐỒ THỊ

Ma trận đỉnh-cạnh

Ma trận kề

Ma trận trọng số

Danh sách đỉnh kề

ĐƯỜNG ĐI & CHU TRÌNH

Đường đi: u, v ∈ V, u=v
0

, v
1
, …, v
n
=v sao cho v
i
v
i+1
∈ E

Đường đi sơ cấp: tập ∀i=0, …, n-1: v
i
≠ v
i+1


Chu trình: v
0
= v
n

Chu trình sơ cấp: ∀i=1, …, n-1: v
i
≠ v
i+1


ĐỒ THỊ LIÊN THÔNG

Đồ thị vô hướng liên thông: ∀u, v ∈ V, ∃đường đi giữa u, v


Thành phần liên thông:

Giải thuật A1

Đỉnh khớp, cạnh eo

Đồ thị liên thông bậc 2: Liên thông, bậc ≥ 3, không có đỉnh
khớp

Giải thuật A2
7
LÝ THUYẾT ĐỒ THỊ (3)
Đồ thị có hướng

G=(V, C), V=tập các đỉnh, C=tập các cung (v
1
, v
2
), v1, v2 ∈ E

Khuyên

Đỉnh cô lập

Đỉnh treo, cung treo: mút cuối của chỉ một cung

Nửa bậc trong (vào): d
-
(x)


Nửa bậc ngoài (ra): d
+
(x)

Bậc của đỉnh: d(x) = d
-
(x) + d
+
(x)

ω
+
(A) = { (i, j)| i∈A, j∉ A }

ω
-
(A) = { (i, j)| j∈A, i∉ A }

θ(A) = ω
+
(A) ∪ ω
-
(A)

Đa đồ thị, đồ thị đơn

Đỉnh kề, cung kề

Đồ thị có hướng đối xứng, phi đối xứng

8
LÝ THUYẾT ĐỒ THỊ (4)

BIỂU DIỄN ĐỒ THỊ

Ma trận đỉnh-cung: c=(v, .): M(v, c)=1, c=(., v): M(v, c)=-1

Ma trận kề: (u, v) ∈ C: M(u, v) = 1

Ma trận trọng số: (u, v) ∈ C, trọng số w: M(u, v) = w

Danh sách đỉnh kề

ĐƯỜNG ĐI & CHU TRÌNH

Đường đi: u, v ∈ V, u=v
0
, v
1
, …, v
n
=v sao cho (v
i
, v
i+1
) ∈ C

Đường đi sơ cấp: tập ∀i=0, …, n-1: v
i
≠ v

i+1


Chu trình: v
0
= v
n

Chu trình sơ cấp: chu trình & ∀i=1, …, n-1: v
i
≠ v
i+1


ĐỒ THỊ LIÊN THÔNG

Đồ 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}
9
LÝ THUYẾT ĐỒ THỊ (7)


ĐỒ THỊ EULER

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
∀x∈E: d
-
(x)=d
+
(x)
10
LÝ THUYẾT ĐỒ THỊ (8)

ĐỒ THỊ HAMILTON

Đường đi Hamilton


Chu trình Hamilton

Đồ thị Hamilton

Đồ thị nửa Hamilton

Các định lý:

Đồ thị đơn vô hướng bậc n > 2, nếu ∀x ∈ E, d(x) ≥ n/2 thì là
đồ thị Hamilton

Đồ thị có hướng liên thông bậc n, nếu ∀x ∈ E, d
-
(x), d
+
(x) ≥
n/2 thì là đồ thị Hamilton

Đồ 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
11
ĐƯỜNG ĐI NGẮN NHẤT


BÀI TOÁN

GiẢI THUẬT MOORE-DIJKSTRA

(w(i), p(i))

Điều chỉ w(i) và p(i) mỗi khi triển khai một đỉnh k

t= w(i)

w(i) = min{ w(i), w(k)+l(k, i) }

Nếu t > w(i): p(i)=k

DAG

Đỉnh gốc

Hạng của một đỉnh = đường đi dài nhất từ gốc
12
CÂY & CÂY CÓ HƯỚNG

Định nghĩa

Cây

Rừng

CÂY KHUNG TRỌNG LƯỢNG NHỎ NHẤT


Bài toán

Giải thuật Kruskal

Giải thuật Prim
13
LUỒNG CỰC ĐẠI (1)

MẠNG:

Đổ thị có hướng G = (V, A) là một mạng khi:

Tồn tại duy nhất một đỉnh phát s, không có cung vào, chỉ có
cung ra

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
14
∑ ∑
∈ ∈
=
Avu Axv
xvfvuf
),( ),(
),(),(
LUỒ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)

LÁT CẮT VÀ SỰ TĂNG LUỒNG

Lát cắt:


G = (V, A) là một mạng, X
0
⊆ V, Y
0
= V – X
0

Lát cắt (X
0
, Y
0
) là tập các cung (i, j) sao cho:
nếu i ∈ X
0
thì j ∈ Y
0

nếu i ∈ Y
0
thì j ∈ X
0


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
15
)(),(),(
),( ),(
fvaltxfvsf
Avs Atx

==
∑ ∑
∈ ∈
∑ ∑
∈ ∈
==
Avs Atx
txfvsf val(f)
),( ),(
),(),(max
LUỒ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 ∈ X
0
, v ∈ Y
0
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:

Nếu f là một luồng, (X
0
, Y
0
) là một lát cắt thì:
Val(f) ≤ c(X
0
, Y
0

)

Giá trị của luồng cực đại không vượt quá khả năng thông của lát
cắt hẹp nhất

Đồ thị tăng luồng:
f là một luồng trong G = (V, A)
Đồ thị tăng luồng G
f
= (V, A
f
) đượ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)
16


∈∈
=
00
,
00
),(),(
YvXu
vucYXc
LUỒNG CỰC ĐẠI (4)

Cung thuận: (u, v) ∈ A
f
, (u, v) ∈ A

Cung nghịch: (u, v) ∈ A
f
, (u, v) ∉ A

Đường tăng luồng: đường đi trong G
f
từ s đến t

Sự tăng luồng: P = { s=v
0
, v
1
, …, v
k
=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: A
f
→ R
+
như sau:

g(u, v) = f(u, v) + δ nếu (u, v) là cung thuộc P và là cung thuận

g(u, v) = f(u, v) - δ nếu (u, v) là cung thuộc P và là cung nghịch

G(u, v) = f(u, v) nếu (u, v) không thuộc P

f là luồng trong G = (V, A)
Các mệnh đề sau là tương đương:

f là luồng cực đại

Không tìm được đường tăng luồng P

Tồn tại lát cắt (X
0
, Y
0
): Val(f) = c(X
0
, Y
0
)


TÌM LUỒNG CỰC ĐẠI

Định lý Ford-Fulkerson: Giá trị của luồng cực đại bằng khả năng
thông của lát cắt hẹp nhất
17
LUỒ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

B1:
gán nhãn cho s : [+s, ∞]

B2:

Chọn một đỉnh x có nhãn nhưng chưa được duyệt, giả sử nhãn của x có dạng
x : [ ±y, σ(x) ]


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
LUỒ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 X
0

tập các đỉnh được gán nhãn, Y
0
tập các đỉnh không được gán nhãn, khi
đó (X
0
, Y
0
) là lát cắt hẹp nhất

B4:
đặt x = t : [ ±y, σ(t) ], chuyển sang B5


B5
Nếu x có nhãn x : [+u, σ(x) ] tăng luồng trên cung (u, x)
như sau:
f(u, x) = f(u, x) + σ(t)
Nếu x có nhãn x : [-u, σ(x) ] giảm luồng trên cung (x, u)
như sau:
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

19
SỐ HỌC (1)

CHIA HẾT & CHIA CÓ DƯ

ƯỚC CHUNG LỚN NHẤT, BỘI CHUNG NHỎ NHẤT

Ưcln

Nguyên tố cùng nhau

Nguyên tố sánh đôi

Các tính chất:

(a
1
, a

2
, …, a
n
) = d ⇒ ∃x
1
, x
2
, …, x
n
/ a
1
x
1
+ a
2
x
2
+ …+a
n
x
n
=d

∀m nguyên dương: (ma
1
, ma
2
, …, ma
n
) =m (a

1
, a
2
, …, a
n
)

d>0 là ước chung của a
1
, a
2
, …, a
n
thì

(a
1
, a
2
, …, a
n
) = d thì

Nếu c | ab , (a, c)=1 thì c | b

Nếu b | a , c | a , (b, c) = 1 thì bc | a

Nếu (a, b)=1 thì (ac, b) = (c, b)
20
d

aaa
d
a
d
a
d
a
n
n
)21
21
, ,,(
), ,,( =
1), ,,(
21
=
d
a
d
a
d
a
n
SỐ 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)

BCNN


[a
1
, a
2
, …, a
n
]


M= [a
1
, a
2
, …, a
n
] ⇔

k-nguyên dương: [ka
1
, ka
2
, …, ka
n
]= k[a
1
, a
2
, …, a
n

]

(a
1
, a
2
, …, a
n
) =d

a
1
, a
2
, …, a
n
nguyên tố sánh đôi [a
1
, a
2
, …, a
n
] = a
1
a
2
… a
n
21
[ ]

),(
,
ba
ab
ba =
1, ,,
21
=






n
a
M
a
M
a
M
d
aaa
d
a
d
a
d
a
nn

), ,,(
, ,,
2121
=






SỐ HỌC (3)

SỐ NGUYÊN TỐ, HỢP SỐ

Số nguyên tố

Hợp số

p nguyên tố, n ≥ 0 thì p | n hoặc (n, p)=1

p | a
1
a
2
…a
k
thì ∃i / p | a
i

p | p

1
p
2
…p
k
thì ∃i / p = p
i

∀n > 1, n phân tích thành tích của các số nguyên tố, sự phân
tích đó là duy nhất (sai khác thứ tự nhân tử)

Dạng phân tích chuẩn:

,
d
| iff ∀i: 0 ≤ β
i
≤ α
i

22
k
k
pppn
α
αα

21
21
=

k
k
pppd
β
ββ

21
21
=
k
k
pppn
α
αα

21
21
=
SỐ HỌC (4)

PHƯƠNG TRÌNH NGUYÊN

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
1
x
1
+ a
2
x
2
+ … + a
n
x
n
=b

Phương trình có nghiệm (nguyên) iif các a
i
nguyên tố cùng
nhau

Phương trình bậc cao

ĐỒNG DƯ

a = b (mod m) iif dư của phép chia a cho m = dư của phép
chia b cho m
23
t
d
a
yy

t
d
b
xx
+=
+=
0
0
Trong đó, x
0
, y
0
là một nghiệm
(nguyên) của phương trình
SỐ HỌC (5)

Quan hệ đồng dư là quan hệ tương đương

Các mệnh đề tương đương:

a = b (mod m)

a = b + mt

(a-b) = 0 (mod m)

Các tính chất:

a
i

= b
i
(mod m) i=1, 2, …, n thì
(a
1
+ a
2
+ … + a
n
) = (b
1
+ b
2
+ … + b
n
) (mod m)
a
1
a
2
…a
n
= b
1
b
2
… b
n
(mod m)


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ì a
n
= b
n
(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 m
i
) i=1, 2, …, n thì a = b (mod [m
1
, m
2
, …, m
n
])
24
SỐ HỌC (6)


a = b (mod m), d | m thì a = b (mod d)

a = b (mod m), d | a , d | m thì d | b

a = b (mod m) thì (a, m) = (b, m)

VÀNH Z
n


PHƯƠNG TRÌNH ĐỒNG DƯ MỘT ẨN

ax = b (mod m)

d=(a, m)

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
25







−+=
+=

)(mod)1(

)(mod0
0
0
m
d
m
dxx
m
d
m
xx
x
0
là một giá trị
thỏa mãn phương
trình

×