Lý thuyết đồ thị - Bài 03 - Hàm Grundy trên đồ thị
Chia sẻ bởi Trần Thanh |
Ngày 10/05/2019 |
90
Chia sẻ tài liệu: Lý thuyết đồ thị - Bài 03 - Hàm Grundy trên đồ thị thuộc Tin học 11
Nội dung tài liệu:
1/29
CHƯƠNG 2
HÀM GRUNDY TRÊN ĐỒ THỊ
2/29
NỘI DUNG
Hàm Grundy
Sự tồn tại của hàm Grundy
Tổng của các đồ thị
Hàm Grundy của đồ thị tổng
3/29
2.1. HÀM GRUNDY
Định nghĩa
Các tính chất
Ví dụ
Điều kiện cho sự tồn tại của hàm Grundy
4/29
2.1. HÀM GRUNDY (tiếp)
Hàm Grundy là một hàm toán học xây dựng trên đồ thị, do P. M. Grundy đề xuất để nghiên cứu một số tính chất lý thú của đồ thị.
Ký hiệu N = {0, 1, 2, . . .} là tập các số nguyên không âm.
5/29
ĐỊNH NGHĨA HÀM GRUNDY
Giả sử G = (V, F) là một đồ thị.
Hàm g : V N được gọi là hàm Grundy của đồ thị G
nếu:
x V : g(x) = min {N g(F(x))}.
6/29
CÁC TÍNH CHẤT
1) x, y V, nếu y F(x) thì g(x) g(y).
u N , u < g(x) : u g(F(x)) , nghĩa là:
y F(x) : g(y) = u.
7/29
NHẬN XÉT
1. Đồ thị có đỉnh nút thì không có hàm Grundy.
2. Nếu F(x) = thì g(x) = 0.
3. Tập hợp {x x V, g(x) = 0} luôn khác rỗng.
4. x V : g(x) F(x) - hàm Grundy nhận giá trị không lớn.
8/29
VÍ DỤ 2.1
Hàm Grundy có thể không duy nhất
9/29
VÍ DỤ 2.2
Hàm Grundy có thể không tồn tại
Vậy với điều kiện nào thì một đồ thị có hàm Grundy?
Hình 2.2. Đồ thị không có hàm Graundy
10/29
2.2. ĐIỀU KIỆN TỒN TẠI
Định lý 2.1: Đồ thị G không có chu trình thì có duy nhất một hàm Grundy.
Chứng minh:
Không mất tính tổng quát, giả thiết rằng đồ thị G liên thông. Xây dựng hai dãy tập con các đỉnh: V0, V1, . . . và P0, P1, . . . lần lượt như sau:
V0 = V
P0 = { x | F(x) = Ø}
11/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Tập P0 không rỗng. Vì nếu P0 rỗng có nghĩa là mọi đỉnh trong V luôn có đỉnh kề. Khi đó xuất phát từ một đỉnh có thể tạo một đường đi dài tuỳ ý. Điều này là vô lý vì trong G không có chu trình.
V1 = V0 P0
P1 = {x | x V1 F(x) V V1}
V2 = V1 P1
…….…….
Pi = {x | x Vi F(x) V Vi}
Vi+1 = Vi Pi
12/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Nếu Pk rỗng thì Vk cũng rỗng, nghĩa là ta đã vét hết các đỉnh của đồ thị.
Thật vậy, giả sử ngược lại: Pk = nhưng Vk ≠ .
Khi đó, với mỗi x Vk sẽ có y F(x) để y V Vk, nghĩa là y Vk .
Vậy với mọi đỉnh trong Vk luôn có đỉnh kề cũng thuộc Vk .
13/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Khi đó xuất phát từ một đỉnh trong Vk có thể tạo ra một đường đi dài tuỳ ý. Điều này là vô lý vì đồ thị G không có chu trình.
Hình 2.3. Cách xây dựng dãy tập con P0, P1, . . ., Pk
14/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Bây giờ, ta xây dựng hàm g : V N như sau:
- Với mọi x P0 ta đặt g(x) = 0.
- Với mỗi x P1 nghĩa là x P0 và F(x) P0 , do hàm g đã được xác định trên P0 , nên hàm g tại x được xác định một cách duy nhất:
g(x) = min {N g(F(x))}.
15/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Tiếp tục cách làm trên ta sẽ lần lượt xác định được giá trị hàm g tại mỗi đỉnh của đồ thị một cách duy nhất.
Định lý được chứng minh và ta có thuật toán tìm hàm Grundy cho đồ thị phi chu trình.
16/29
VÍ DỤ 2.3
Xét đồ thị có hướng trong hình vẽ và cách xây dựng hàm Grundy trên nó.
Hình 2.4. Đồ thị và các tập con Pi
17/29
2.3. TỔNG CỦA CÁC ĐỒ THỊ
Cho hai đồ thị dưới dạng ánh xạ kề:
G1 = (V1,F1) và G2 = (V2,F2)
Định nghĩa 2.2: Đồ thị G = (V, F) được gọi là tổng của G1 và G2 , ký hiệu là G1+ G2 với:
1) V = V1 V2
2) (x,y) F(a,b) x = a y F2(b)
hoặc x F1(a) y = b.
18/29
2.3. TỔNG CỦA CÁC ĐỒ THỊ (tiếp)
Giả sử đồ thị G1 có hàm Grundy g1, đồ thị G2 có hàm Grundy g2. Liệu đồ thị tổng G1 + G2 có hàm Grundy hay không và mối quan hệ của nó với các hàm g1, g2 như nhế nào?
Hình 2.5. Cách xây dựng đồ thị tổng
19/29
d - TỔNG CÁC SỐ NGUYÊN
Để trả lời câu hỏi này, ta đưa ra phép toán d-tổng trên các số nguyên như sau:
Với các số nguyên không âm u, v N , ta biểu diễn
chúng dưới dạng nhị phân như sau:
u = uk uk-1 … u1 u0
v = vk vk-1 . . . v1v0 , với ui, vi là các chữ số 0 hoặc 1.
Đặt wi = (ui + vi) mod 2.
20/29
d - TỔNG CÁC SỐ NGUYÊN (tiếp)
Số nguyên w có biểu diễn nhị phân là:
wk wk-1 . . . w1w0
được gọi là d - tổng của u và v, ký hiệu là:
w = u v.
21/29
d - TỔNG CÁC SỐ NGUYÊN (tiếp)
Chú ý rằng, phép toán này thực hiện giống như câu lệnh
gán w := u XOR v ; trong ngôn ngữ lập trình Pascal.
Ví dụ:
7 5 = 2
12 15 = 3
22/29
MỘT SỐ TÍNH CHẤT CỦA PHÉP TOÁN
d - TỔNG
Phép toán d-tổng có các tính chất giao hoán và kết hợp:
u v = v u ,
(u v) w = u (v w)
Phép toán d-tổng có đơn vị: u 0 = 0 u = u
d-tổng của hai số bằng 0 khi và chỉ khi chúng giống nhau: u v = 0 u = v.
23/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG
Định lý 2.2: Nếu g1 là hàm Grundy của đồ thị G1, g2 là hàm Grundy của đồ thị G2 thì
g((x,y)) = g1(x) g2(y) là hàm Grundy của đồ thị tổng G = G1 + G2.
24/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Chứng minh:
Theo định nghĩa của hàm Grundy, ta phải chứng minh:
Nếu (x,y) F((a,b)) thì g((a,b)) g((x,y)).
Nếu u N , u < g((a,b)) thì (x,y) F((a,b)) sao cho g((x,y)) = u.
25/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Thật vậy, giả sử (x,y) F((a,b)). Theo định nghĩa của ánh xạ kề F, ta phải xét hai trường hợp sau:
1) x = a, y F2(b). Khi đó g2(y) g2(b).
g((a,b)) = g1(a) g2(b) = g1(x) g2(b) g1(x) g2(y) = g((x,y)).
2) x F1(a), y = b : Chứng minh hoàn toàn tương tự.
Tính chất 1 được chứng minh xong.
26/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Bây giờ ta chứng minh tính chất 2.
Giả sử u N và u < g((a,b)).
Ký hiệu v = g1(a) và w = g2(b).
Ta có: u < v w. Đặt t = u v w.
Hiển nhiên t 0 vì u v w.
Hơn nữa t u = u v w u = v w > u. (*)
27/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Xét biểu diễn nhị phân của các số trên:
u = .... uk=0 ...
v = .... vk=1...
w = .... wk .....
t = 0...01k .....
Giả sử k là chỉ số của bit đầu tiên bằng 1 trong biểu diễn nhị phân của số t.
Nếu uk = 1 thì (uk + tk) mod 2 = 0. Suy ra: t u < u, trái với mệnh đề (*). Vậy thì uk = 0.
28/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Do bit thứ k của t bằng 1 nên hoặc vk hoặc wk phải bằng 1.
Giả sử vk = 1.
Đặt s = t v. Ta có s < v = g1(a).
Vì g1 là hàm Grundy của đồ thị G1 nên tồn tại x F1(a) sao cho s = g1(x).
29/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Theo định nghĩa của đồ thị tổng thì:
(x,b) F((a,b)) và
g((x,b)) = g1(x) g2(b) = s w
= t v w = u.
- Khi wk = 1, chứng minh hoàn toàn tương tự.
Phần 2 đã chứng minh xong và kết thúc chứng minh định lý.
CHƯƠNG 2
HÀM GRUNDY TRÊN ĐỒ THỊ
2/29
NỘI DUNG
Hàm Grundy
Sự tồn tại của hàm Grundy
Tổng của các đồ thị
Hàm Grundy của đồ thị tổng
3/29
2.1. HÀM GRUNDY
Định nghĩa
Các tính chất
Ví dụ
Điều kiện cho sự tồn tại của hàm Grundy
4/29
2.1. HÀM GRUNDY (tiếp)
Hàm Grundy là một hàm toán học xây dựng trên đồ thị, do P. M. Grundy đề xuất để nghiên cứu một số tính chất lý thú của đồ thị.
Ký hiệu N = {0, 1, 2, . . .} là tập các số nguyên không âm.
5/29
ĐỊNH NGHĨA HÀM GRUNDY
Giả sử G = (V, F) là một đồ thị.
Hàm g : V N được gọi là hàm Grundy của đồ thị G
nếu:
x V : g(x) = min {N g(F(x))}.
6/29
CÁC TÍNH CHẤT
1) x, y V, nếu y F(x) thì g(x) g(y).
u N , u < g(x) : u g(F(x)) , nghĩa là:
y F(x) : g(y) = u.
7/29
NHẬN XÉT
1. Đồ thị có đỉnh nút thì không có hàm Grundy.
2. Nếu F(x) = thì g(x) = 0.
3. Tập hợp {x x V, g(x) = 0} luôn khác rỗng.
4. x V : g(x) F(x) - hàm Grundy nhận giá trị không lớn.
8/29
VÍ DỤ 2.1
Hàm Grundy có thể không duy nhất
9/29
VÍ DỤ 2.2
Hàm Grundy có thể không tồn tại
Vậy với điều kiện nào thì một đồ thị có hàm Grundy?
Hình 2.2. Đồ thị không có hàm Graundy
10/29
2.2. ĐIỀU KIỆN TỒN TẠI
Định lý 2.1: Đồ thị G không có chu trình thì có duy nhất một hàm Grundy.
Chứng minh:
Không mất tính tổng quát, giả thiết rằng đồ thị G liên thông. Xây dựng hai dãy tập con các đỉnh: V0, V1, . . . và P0, P1, . . . lần lượt như sau:
V0 = V
P0 = { x | F(x) = Ø}
11/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Tập P0 không rỗng. Vì nếu P0 rỗng có nghĩa là mọi đỉnh trong V luôn có đỉnh kề. Khi đó xuất phát từ một đỉnh có thể tạo một đường đi dài tuỳ ý. Điều này là vô lý vì trong G không có chu trình.
V1 = V0 P0
P1 = {x | x V1 F(x) V V1}
V2 = V1 P1
…….…….
Pi = {x | x Vi F(x) V Vi}
Vi+1 = Vi Pi
12/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Nếu Pk rỗng thì Vk cũng rỗng, nghĩa là ta đã vét hết các đỉnh của đồ thị.
Thật vậy, giả sử ngược lại: Pk = nhưng Vk ≠ .
Khi đó, với mỗi x Vk sẽ có y F(x) để y V Vk, nghĩa là y Vk .
Vậy với mọi đỉnh trong Vk luôn có đỉnh kề cũng thuộc Vk .
13/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Khi đó xuất phát từ một đỉnh trong Vk có thể tạo ra một đường đi dài tuỳ ý. Điều này là vô lý vì đồ thị G không có chu trình.
Hình 2.3. Cách xây dựng dãy tập con P0, P1, . . ., Pk
14/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Bây giờ, ta xây dựng hàm g : V N như sau:
- Với mọi x P0 ta đặt g(x) = 0.
- Với mỗi x P1 nghĩa là x P0 và F(x) P0 , do hàm g đã được xác định trên P0 , nên hàm g tại x được xác định một cách duy nhất:
g(x) = min {N g(F(x))}.
15/29
2.2. ĐIỀU KIỆN TỒN TẠI (tiếp)
Tiếp tục cách làm trên ta sẽ lần lượt xác định được giá trị hàm g tại mỗi đỉnh của đồ thị một cách duy nhất.
Định lý được chứng minh và ta có thuật toán tìm hàm Grundy cho đồ thị phi chu trình.
16/29
VÍ DỤ 2.3
Xét đồ thị có hướng trong hình vẽ và cách xây dựng hàm Grundy trên nó.
Hình 2.4. Đồ thị và các tập con Pi
17/29
2.3. TỔNG CỦA CÁC ĐỒ THỊ
Cho hai đồ thị dưới dạng ánh xạ kề:
G1 = (V1,F1) và G2 = (V2,F2)
Định nghĩa 2.2: Đồ thị G = (V, F) được gọi là tổng của G1 và G2 , ký hiệu là G1+ G2 với:
1) V = V1 V2
2) (x,y) F(a,b) x = a y F2(b)
hoặc x F1(a) y = b.
18/29
2.3. TỔNG CỦA CÁC ĐỒ THỊ (tiếp)
Giả sử đồ thị G1 có hàm Grundy g1, đồ thị G2 có hàm Grundy g2. Liệu đồ thị tổng G1 + G2 có hàm Grundy hay không và mối quan hệ của nó với các hàm g1, g2 như nhế nào?
Hình 2.5. Cách xây dựng đồ thị tổng
19/29
d - TỔNG CÁC SỐ NGUYÊN
Để trả lời câu hỏi này, ta đưa ra phép toán d-tổng trên các số nguyên như sau:
Với các số nguyên không âm u, v N , ta biểu diễn
chúng dưới dạng nhị phân như sau:
u = uk uk-1 … u1 u0
v = vk vk-1 . . . v1v0 , với ui, vi là các chữ số 0 hoặc 1.
Đặt wi = (ui + vi) mod 2.
20/29
d - TỔNG CÁC SỐ NGUYÊN (tiếp)
Số nguyên w có biểu diễn nhị phân là:
wk wk-1 . . . w1w0
được gọi là d - tổng của u và v, ký hiệu là:
w = u v.
21/29
d - TỔNG CÁC SỐ NGUYÊN (tiếp)
Chú ý rằng, phép toán này thực hiện giống như câu lệnh
gán w := u XOR v ; trong ngôn ngữ lập trình Pascal.
Ví dụ:
7 5 = 2
12 15 = 3
22/29
MỘT SỐ TÍNH CHẤT CỦA PHÉP TOÁN
d - TỔNG
Phép toán d-tổng có các tính chất giao hoán và kết hợp:
u v = v u ,
(u v) w = u (v w)
Phép toán d-tổng có đơn vị: u 0 = 0 u = u
d-tổng của hai số bằng 0 khi và chỉ khi chúng giống nhau: u v = 0 u = v.
23/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG
Định lý 2.2: Nếu g1 là hàm Grundy của đồ thị G1, g2 là hàm Grundy của đồ thị G2 thì
g((x,y)) = g1(x) g2(y) là hàm Grundy của đồ thị tổng G = G1 + G2.
24/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Chứng minh:
Theo định nghĩa của hàm Grundy, ta phải chứng minh:
Nếu (x,y) F((a,b)) thì g((a,b)) g((x,y)).
Nếu u N , u < g((a,b)) thì (x,y) F((a,b)) sao cho g((x,y)) = u.
25/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Thật vậy, giả sử (x,y) F((a,b)). Theo định nghĩa của ánh xạ kề F, ta phải xét hai trường hợp sau:
1) x = a, y F2(b). Khi đó g2(y) g2(b).
g((a,b)) = g1(a) g2(b) = g1(x) g2(b) g1(x) g2(y) = g((x,y)).
2) x F1(a), y = b : Chứng minh hoàn toàn tương tự.
Tính chất 1 được chứng minh xong.
26/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Bây giờ ta chứng minh tính chất 2.
Giả sử u N và u < g((a,b)).
Ký hiệu v = g1(a) và w = g2(b).
Ta có: u < v w. Đặt t = u v w.
Hiển nhiên t 0 vì u v w.
Hơn nữa t u = u v w u = v w > u. (*)
27/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Xét biểu diễn nhị phân của các số trên:
u = .... uk=0 ...
v = .... vk=1...
w = .... wk .....
t = 0...01k .....
Giả sử k là chỉ số của bit đầu tiên bằng 1 trong biểu diễn nhị phân của số t.
Nếu uk = 1 thì (uk + tk) mod 2 = 0. Suy ra: t u < u, trái với mệnh đề (*). Vậy thì uk = 0.
28/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Do bit thứ k của t bằng 1 nên hoặc vk hoặc wk phải bằng 1.
Giả sử vk = 1.
Đặt s = t v. Ta có s < v = g1(a).
Vì g1 là hàm Grundy của đồ thị G1 nên tồn tại x F1(a) sao cho s = g1(x).
29/29
2.4. HÀM GRUNDY CỦA ĐỒ THỊ TỔNG (tiếp)
Theo định nghĩa của đồ thị tổng thì:
(x,b) F((a,b)) và
g((x,b)) = g1(x) g2(b) = s w
= t v w = u.
- Khi wk = 1, chứng minh hoàn toàn tương tự.
Phần 2 đã chứng minh xong và kết thúc chứng minh định lý.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Trần Thanh
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)