Trong trường hợp có nhiều cạnh nối a với b ta ký hiệu cạnh thứ n nối chúng bởi a,b,n hoặc [a,b,n] Hai đỉnh khác nhau của Graph được gọi là kề nhau hoặc láng giềng nếu chúng được nối với
Trang 1CHUYÊN ĐỀ :
MỘT SỐ BÀI TOÁN VỀ ỨNG DỤNG CỦA GRAPH
KHI GIẢI TOÁN TỔ HỢP
Trang 2MỘT SỐ BÀI TOÁN VỀ ỨNG DỤNG CỦA GRAPH
KHI GIẢI TOÁN TỔ HỢP
I Những khái niệm cơ bản:
Graph là một mô hình toán học có thể dùng để giải quyết khá nhiều bài toán và vấn đề toán học Một graph là hệ thống các đỉnh và các cạnh nối các đỉnh này với nhau
1 Định nghĩa Graph và các ký hiệu cơ bản
Định nghĩa: Một Graph được hiểu là một bộ phận tập hợp hữu hạn: Tập hợp các đỉnh và tập hợp cạnh nối các đỉnh này với nhau
Thông thường ta hay ký hiệu một Graph bởi chữ G Còn tập đỉnh được ký hiệu bởi chữ V, tập cạnh ký hiệu bởi chữ E
Graph không có cạnh có hướng được ký hiệu là G = (V, E) còn graph chỉ có cạnh có hướng được ký hiệu là G = [V, E]
Với hai đỉnh a và b của graph, ta ký hiệu cạnh không có hướng nối a với b bởi (a,b) và cạnh có hướng nối chúng bởi [a,b] Trong trường hợp có nhiều cạnh nối a với b ta ký hiệu cạnh thứ n nối chúng bởi (a,b,n) hoặc [a,b,n]
Hai đỉnh khác nhau của Graph được gọi là kề nhau hoặc láng giềng nếu chúng được nối với nhau bởi một cạnh
Một Graph được gọi là vô hướng nếu các cạnh của chúng đều là cạnh vô hướng Một Graph được gọi là có hướng nếu các cạnh của chúng đều là cạnh có hướng Một Graph vừa có cạnh vô hướng vừa có cạnh có hướng được gọi là Graph hỗn độn
Một Graph được gọi graph đơn nếu nó không có khuyên và không cố cạnh kép Graph điểm là graph chỉ có đúng một đỉnh và không có cạnh Graph rỗng là graph không có đỉnh và không có cạnh nào cả
2 Bậc của đỉnh
Trong phần này chúng ta chỉ xét các Graph vô hướng, tức là những graph mà các cạnh của chúng không có hướng
Ta gọi bậc của một đỉnh là số cạnh xuất phát từ đỉnh đó(các khuyên được tính gấp đôi) Đương nhiên bậc của một đỉnh là một số nguyên không âm Một đỉnh được gọi là cô lập nếu nó không có cạnh nào cả, tức là khi đó nó có bậc là 0 Đỉnh
có bậc 1 gọi là đỉnh treo
Định lý 2.1: Trong một Graph vô hướng G tùy ý tổng bậc của tất cả các đỉnh gấp đôi số cạnh của Graph
Chứng minh: Trong mỗi graph tổng bậc các đỉnh của một graph thì mỗi cạnh
được tính đúng hai lần bởi hai đỉnh của nó Do đó tổng này gấp đôi số cạnh của graph
Hệ quả 1:Trong một Graph vô hướng G tùy ý số đỉnh bậc lẻ luôn là một số chẵn
Chứng minh: Theo định lý trên thì tổng các bậc của các đỉnh luôn là một số chẵn
do vậy số các đỉnh bậc lẻ luôn là một số chẵn
Hệ quả 2: Trong một graph vô hướng G có số lẻ đỉnh luôn có một số lẻ các đỉnh
có bậc chẵn
Trang 3Chứng minh: Theo hệ quả trên thì số đỉnh bậc lẻ trong graph G là một số chẵn
Do trong graph G có số lẻ đỉnh, nên số các đỉnh bậc chẵn phải là số lẻ
3 Dãy cạnh kế tiếp
Cho trước một graph G với tập đỉnh V và tập cạnh E
Hai cạnh của một graph cho trước được gọi là hai cạnh kề nhau nếu như chúng có một đỉnh chung Một dãy m cạnh e i A A i, i1 với i 1, 2, ,m được gọi là một dãy cạnh đối diện nối tiếp và thường được ký hiệu là:
1 , , 1 2 , , , , 2 k k 1
E H
B
G
C
F Trong trường hợp G là một graph đơn thì ta có thể biểu diễn một dãy cạnh kế tiếp qua các đỉnh của chúng, chẳng hạn dãy cạnh kế tiếp H của ta ở trên được ký hiệu đơn giản là:
H A A1 , 2 , ,A k1
Theo định nghĩa của ta thì một dãy các cạnh liên tiếp kề nhau (mỗi cạnh kề với cạnh tiếp theo) chưa hẳn đã là dãy cạnh kế tiếp Mỗi dãy các cạnh liên tiếp kề nhau là một dãy cạnh kết tiếp chỉ khi đỉnh chung của một cạnh bất kì ( không phải
là khuyên) với cạnh đúng trước nó và cạnh đúng sau nó khác nhau Trong một dãy cạnh kế tiếp, một cạnh của graph có thể xuất hiện nhiều lần Số m các cạnh được gọi là độ dài của dãy cạnh kế tiếp đã cho Cho trước dãy cạnh kế tiếp
1 , , 1 2 , , , , 2 k k 1
H A e A e e A , đỉnh A1 được gọi là đỉnh đầu và đỉnh A k1 được gọi là đỉnh cuối của H H còn được gọi là dãy cạnh kế tiếp nối A1 và A k1 Trong trường hợp
A A , dãy cạnh kế tiếp H được gọi là dãy cạnh kế tiếp không khép kín Còn khi
A A thì H được gọi là dãy cạnh kế tiếp khép kín
Một dãy cạnh kế tiếp e e1 , , , 2 e k với e i e j cho mọi ij được gọi là một xích đơn Một xích đơn với đỉnh đầu là A và đỉnh cuối là B được gọi là xích đơn nối A với B Khái niệm dãy cạnh kế tiếp cũng như khái niệm xích đơn đóng một vai trò quan trọng trong việc mô tả sự liên thông (khả năng lưu thông dọc các cạnh) của một graph mà ta sẽ làm quen ở mục sau Định lí sau đây cho ta thấy sự liên quan giữa hai khái niệm dãy cạnh kế tiếp và xích đơn trong một graph
Định lí 3 1: Nếu có một dãy cạnh kế tiếp nối hai đỉnh A và B của graph thì cũng tồn tại một xích đơn nối A với B trong graph đã cho
4.Chỉ số liên thông
Trong mục này chúng ta làm quen với một khái niệm khá quan trọng của lí thuyết graph là khái niệm liên thông
Khi biểu diễn một graph trên mặt phẳng, chúng ta đã thấy rằng có nhiều khi hình biểu diễn của chúng là những cụm tách rời nhau không được nối với nhau Tương ứng với mỗi hình rời nhau như vậy là một graph thành phần của graph đã cho mà ta sẽ gọi là một thành phần liên thông của graph cho trước
Trang 4Để chính xác hóa khái niệm liên thông, trước hết chúng ta nói hai đỉnh của một graph cho trước là liên thông với nhau nếu có một dãy cạnh kế tiếp nối chúng với nhau trong graph đã cho Chẳng hạn, graph được biểu diễn trong hình 25 của mục trước có đỉnh a và đỉnh g liên thông với nhau Tất nhiên là một đỉnh cho trước luôn được coi là liên thông với chính nó (được nối với chính nó bởi một dãy cạnh kết tiếp có độ dài 0) Một graph được gọi là liên thông nếu hai đỉnh bất kì của nó liên thông với nhau Quan hệ “liên thông” có những tính chất cơ bản sau:
a) Mỗi đỉnh a của graph liên thông với chính nó
b) Nếu a liên thông với b thì b liên thông với a
c) Nếu a liên thông với b và b liên thông với c thì a liên thông với c
Thực chất đây là một qua hệ tương đương trong Tập hợp các đỉnh của graph Quan
hệ tương đương này chia tập đỉnh của graph thành các lớp có hai tính chất sau: 1) Các đỉnh thuộc cùng một lớp thì liên thông với nhau
2) Các đỉnh không cùng thuộc một lớp không liên thông với nhau
Các lớp đỉnh này là đỉnh của các graph thành phần liên thông trong graph cho trước, được gọi là thành phần liên thông của graph đã cho
5 Đường đi trong Graph
Trong các mục trên ta đã làm quen với dãy cạnh kế tiếp và xích đơn Trong thực tế ứng dụng của cuộc sống, ta thường gặp một khái niệm khác của dãy cạnh kế tiếp là những dãy cạnh kế tiếp được tuân thủ nguyên tắc tối ưu là chúng không đi qua đỉnh nào của graph quá một lần Một dãy cạnh kế tiếp trong một graph cho trước được gọi là một đường đi nếu chúng không đi qua đỉnh nào của graph quá 1 lần Cũng tương tự như với dãy cạnh kế tiếp, nếu a và b là hai đỉnh đầu tiên và đỉnh cuối cùng của đường W, thì ta nói rằng W nối a với b Chúng cũng được gọi là đỉnh đầu và đỉnh cuối của con đường và được xem là phải khác nhau
Thông thường, đường đi được biểu diễn thông qua các đỉnh và các cạnh nối chúng, chẳng hạn
1 , , 1 2 , , , 2 k 1 , k
Với p i là các đỉnh và e i là các cạnh của W Đặc biệt, khi graph cho trước là graph đơn, thì ta có thể biểu diễn một đường đi thông qua tập đỉnh của nó, chẳng hạn
1 , 2 , , k
Số cạnh của một đường đi được gọi là độ dài của nó
Tương tự như với xích đơn, ta có định lí sau đây về sự liên hệ giữa xích đơn và đường đi
Định lí 5.1 Nếu có một xích đơn nối hai đỉnh a và b của graph, thì cũng tồn tại một đường đi nối a với b trong graph đã cho
6 Chu trình của GRAPH
Khi định nghĩa đường đi nối hai đỉnh a và b của một graph, ta luôn giả thiết rằng các đỉnh a và b này phải khác nhau Trong trường hợp a và b được nối với nhau bởi một cạnh, thì khi thêm cạnh (a, b) vào, ta thu được từ con đường đã cho mỗi đỉnh của graph được đi qua không quá một lần
Trang 5Chu trình được kí hiệu bởi việc đưa ra các cạnh và cá đỉnh liên tiếp nhau trên chu trình Chẳng hạn, nếu chu trình C đi qua các đỉnh p p1 , 2 , ,p k và các cạnh
1 , , , 2 k
e e e thì ta viết
C p e p e1 , , 1 2 , , , 2 p e p k, ,k 1
Trong trường hợp graph là một graph đơn, thì thay vì viết rõ các cạnh và các đỉnh, chu trình được xác định duy nhất qua việc gọi tên các đỉnh của nó đi qua Chẳng hạn, chu trình C đề cập ở trên có thể viết thành
C p p1 , 2 , ,p p k, 1
Số cạnh của chu trình được gọi là độ dài của chu trình và thông thường hay được kí hiệu bởil C Một khuyên lập thành một chu trinfh có độ dài l
Một graph cho trước chỉ có chu trình có độ dài 2 nếu như nó có cạnh khép Trong một graph đơn mỗi chu trình có độ dài ít nhất là 3
Một graph không đơn hiển nhiên luôn có ít nhất một chu trình (có độ dài 1 hoặc 2) Trong graph đơn không phải lúc nào ta cũng có thể tìm thấy một chu trình Chẳng hạn các graph biểu diễn sơ đồ cấp diện, hoặc các sơ đồ cấp nước chẳng hạn
Định lí 6.1 Một graph có bậc của các đỉnh 2 luôn có một chu trình
Định lí 6.2 Một graph đơn với n 3 đỉnh và n cạnh luôn có ít nhất một chu trình
Định lí 6.3 Một graph đơn G với n 3đỉnh và bậc nhỏ nhất 2có ít nhất một chu trình C với độ dài l C 1
7 Cầu trong GRAPH
Trong đời sống, chúng ta không lạ gì khái niệm “cầu” Khái niệm cầu có một mối quan hệ chặt chẽ với khái niệm liên thông Một cạnh e của một graph liên thông G cho trước được gọi là cầu nếu như bỏ nó đi thì graph thu được có số thành phần liên thông nhiều hơn số thành phần liên thông của G
Một cạnh e của một graph liên thông G cho trước chỉ là cầu nếu như bỏ nó đi thì graph thu được G – e không còn liên thông nữa
Với kí hiệu G cho số thành phần liên thông của graph G ta có G G e
cho mỗi cầu e trong G
Trong graph được biểu diễn trong hình dưới mỗi cạnh bất kì của nó là một cầu Định lí sau đây cho ta hình dung được vị trí của cá đỉnh đầu và cuối của graph Định lí 7.1 Cho ex y, là một cầu trong graph GX E, Khi đó x và y thuộc các thành phần khác nhau của graph G – e
Định lí 7.2 Nếu e là một cầu cảu graph cho trước G, khi đó ta có
G e G 1
Định lí 7.3 Một graph liên thông G cho trước có một cầu khi và chỉ khi chỉ số liên thông cạnh của nó K G c 1
Định lí 7.4 Một graph kiên thông G với cầu có chỉ số liên thông đỉnh là K G c 1
Định lí 7.5 Cầu của một graph G cho trước là tất cả những cạnh không nằm trên một chu trình nào của G
8 Đỉnh khớp
Trang 6Chúng ta đã thấy rằng cầu đóng một vai trò quan trọng trong việc nghiên cứu những tính chất liên thông của một graph cho trước Một cách trực quan, chúng ta
có thể phát biểu như sau: Nếu một graph liên thông cho trước có cầu thì cầu này sẽ chia graph thành hai thành phần, được gọi là bờ, sao cho muốn đi từ bờ này tới bờ khác chúng ta bắt buộc phải đi qua cầu Trong phần này, chúng ta nghiên cứu những đỉnh của graph mà vai trò của chúng trong graph cũng tương tự như vai trò của cầu Chúng ta khảo sát graph G cho trước và một đỉnh x nằm trong graph G
Nếu như graph G x có nhiều thành phần liên thông hơn số thành phần liên thông của graph G, thì ta gọi đỉnh x là đỉnh khớp của graph cho trước G
Đinh lí sau đây cho phép ta nhận biest lớp các graph liên thông với một đỉnh khớp Định lí 8.1 Một graph liên thông G với n 3 đỉnh có một đỉnh khớp khi và chỉ khi chỉ số liên thông đỉnh là K G c 1
Định lí 8.2 Giẳ sử rằng a là một đỉnh trong một graph cho trước G Khi đó a là một đỉnh khớp của G khi và chỉ khi a có hai cạnh không cùng thuộc một chu trình của graph G
Định lí 8.3 Cho trước các cạnh e e1 , 2 và e3 của một graph G Nếu các cạnh e1 với
2
e và với e3 liên thông chu trình, thì cạnh e1cũng liên thông chu trình với e3
2 Một số bài toán áp dụng
Bài 1:
Trong một hội thảo khoa học tất cả các đại biểu tham dự biết tổng cộng 2n ngôn ngữ n 2 Mỗi người biết đúng 2 ngôn ngữ và bất cứ hai người nào cũng biết chung nhiều nhất một ngôn ngữ biết rằng với một số nguyên k thỏa mãn 1 k n 1
đều có không quá k – 1 ngôn ngữ mà mỗi ngôn ngữ này có không quá k người biết Chứng minh rằng ta có thể chọn ra một nhóm 2n đại biểu biết tổng cộng 2n ngôn ngữ và mỗi ngôn ngữ có đúng 2 đại biểu trong nhóm biết
Giải:
Lập đồ thị G: đỉnh biểu diễn cho “ngôn ngữ”, cạnh nối hai đỉnh biểu diễn
“người biết hai ngôn ngữ đó” Vậy G là đồ thị 2n đỉnh Điều kiện “hai người biết chung nhiều nhất một ngôn ngữ” nói rằng G là đồ thị đơn Điều kiện còn lại cho biết: với mỗi k nguyên 1 k n 1 có không quá k 1 đỉnh, mỗi đỉnh có bậc nhỏ hơn hoặc bằng k (*)
Theo đề bài, cần chứng minh: từ tất cả các cạnh của G có thể … 2n cạnh thuộc 2n đỉnh và mỗi đỉnh luôn thuộc đúng hai cạnh … 2n cạnh đó Để chứng minh điều này
ta sẽ chứng minh:
Trong G tồn tại một đường đi khép kín có độ dài 2n và đi qua tất cả các đỉnh của G ( một đường đi như thế ta sẽ gọi là chu trình H Ta chứng minh điều này bằng phản chứng Giả sử trong G không có chung trình H Khi đó tập các đỉnh không kề nhau của G là không rỗng và hữu hạn Bằng cách thêm dần hai cạnh nối hai đỉnh không
kề nhau ta sẽ xây dựng đồ thị 2n đỉnh Gthỏa mãn 1) (*), 2) trong G không có chu trình H 3) Khi thêm cạnh nối hai đỉnh bất kì không kề nhau của Gta sẽ nhận được
đồ thị có chu trình H
Xét G với v là đỉnh của G kí hiệu f v là bậc của v
Trang 7a) Từ 2) và 3) suy ra giữa hai đỉnh bất kì không kề nhau của Gđều tồn tại một đường đi nhận hai đỉnh ấy làm hai đầu mút, đi qua tất cả các đỉnh của Gvà có
độ dài 2n 1
b) Nếu hai đỉnh v và v’ của Gcó f v n f v, ' n thì v và v’ phải kề nhau Thật vậy, giả sử v và v’ không kề nhau thì có đường đi
v v v v v v v đi qua tất cả các đỉnh của Gvà có độ dài 2n 1 Giả sử
f v s n Kí hiệu 1 , , , (2 2 1 2 2 )
s
v v v i i i n là các đỉnh kề với v1 v Khi đó với mỗi j 1, 2, ,s các đỉnh v( ) 1i j không kề với v2n v' vì nếu ngược lại thì chu trình H trong Glà 1 2 ( ) 1 2 2 1
v v v v v v mâu thuẫn với 2) Từ đó suy
ra f v ' 2n (s 1) n 1 (do s n ), mâu thuẫn với f v ' n Vậy v, v’ phải kều nhau
c) Từ b) suy ra tập v gồm các đỉnh v của Gmà f v n 1 là không rỗng, vậy có
maxv V f v m n 1 Lấy v1 mà f v 1 m Điều kiện (*) với k n 1 nói rằng
có ít nhất 2n n 1 1 n 2 đỉnh có bậc n, do với k n 1 nói rằng có ít nhất một trong các đỉnh này, chẳng hạn v 2n, không kề với v1 Suy ra có đường
v v v i i i n là các đỉnh không kề với v1 thì lập luận như ở b) chứng tỏ với mọi j 1 n ta có v( ) 1i j không kề với v 2n(chú ý rằng điều kiện (*) với k=1) chứng tỏ mọi đỉnh của Gcó bậc 2 Áp dụng điều kiện (*) với k=m 2 m n 1suy ra 1 1 , 2 1 , , 1
m
v v v phải có ít nhất một đỉnh v q có
f v m Từ định nghĩa của m suy ra f v q n như vậy v v q, 2n có
q
f v n, f v 2nnmà không kề nhau, mâu thuẫn với b) Mâu thuẫn này cho
ta điều phải chứng minh
Bài 2:
Xét n điểm A A1 , 2 , ,A n (n>2) trong không gian, trong đó không có 4 điểm nào đồng phẳng Mỗi cặp điểm A A i i, j j được nối với nhau bởi một đoạn thẳng
Tìm giá trị lớn nhất của n sao cho có thể tô tất cả cá đoạn thẳng đó bằng hai màu xanh, đỏ thỏa mãn ba điều kiện sau:
1 Mỗi đoạn thẳng được tô bằng đúng một màu
2 Với mỗi i 1, 2, ,n số đoạn thẳng có một đầu mút là A i mà được tô màu xanh không vượt quá 4
3 Với mỗi đoạn thẳng A A i, j được tô màu đỏ đều tìm thấy ít nhất một điểm A k
(k khác i,j) mà các đoạn thẳng A A k i và A A k j đều được tô màu xanh
Trang 8Giải:
Xét n điểm A A1 , 2 , ,A n mà có thể tô màu tất cả các đoạn A A i j thỏa mãn đề bài Xét Graph G có tập đỉnh V A A1 , 2 , ,A n và tập cạnh là các đoạn được tô màu xanh Dễ thấy G đơn, vô hướng, n đỉnh và thỏa mãn:
b) Với bất cứ hai đỉnh A i,A j nào cũng đều tồn tại một xích đơn nối chúng và có
độ dài nhỏ hơn hoặc bằng 2
Vấn đề đặt ra ở bài đã ra tương đương với tìm số đỉnh n lớn nhất của Graph G đơn, vô hướng, n đỉnh và thỏa mãn a) và b) Xét một đỉnh A ibất kì theo G Khi đó mỗi đỉnh trong số n 1 đỉnh còn lại phải kề với A i hoặc kề với ít nhất một đỉnh kề với A i(theo b)) Kết hợp với a) suy ra n 1 4 3 4 17
1) Xét n 17: Khi đó dễ thấy, phải có
và do đó G có tất cả 4 17 34
2
cạnh
canh ria
Hinh 1 Ai
A
Xét đỉnh A i bất kì của G Từ (*) suy ra A i kề với đúng 4 đỉnh khác, giả sử là
1 , 2 , 3 , 4
A A A A Quy ước gọi tất cả các đỉnh còn lại của G là các đỉnh rìa, và gọi tất cả các cạnh có cả hai đầu mút là hai đỉnh rìa là các cạnh rìa Từ b) và (*) suy ra mỗi đỉnh A ij, j 1, 4 (xem H.1) Từ đó dễ thấy không có hai đỉnh nào của G cùng với A i
lập thành nhóm ba đỉnh đôi một kề nhau, nên trong G không có ba đỉnh nào đôi một
kề nhau (vì A i lấy ra xét là đỉnh bất kỳ) Vậy mỗi cạnh rìa đều có hai đầu mút là hai đỉnh rìa không cùng kề với một đỉnh A ij suy ra mỗi cạnh rìa cho ta một chu trình đơn đọ dài 5 và đi qua A i Mà số cạnh rìa có tất cả 34 16 18 , nên từ đó suy ra số chu trình đơn độ dài 5 trong G có tất cả là 18 17
5
, vô lý Vậy n 17 2) Xét n=16 Khi đó dễ thấy, phải có
Trang 9 j 4 1,16 1
Và do đó G có tất cả 16 4 32
2
cạnh Xét một đỉnh A ibất kì của G Theo (1), A ikề với đúng 4 đỉnh khác, giả sử A A A A i1 , i2 , i3 , i4 Tiếp tục bằng phương pháp lập luận như
ở 1), ta sẽ được: mỗi đỉnh A ij, j 1, 4 đều kề với đúng ba đỉnh rìa và có đúng một đỉnh rìa, tạm gọi là A k, kề với đúng hai đỉnh A i j (xem H.2) Từ đó, do A ilà bất kỳ nên suy ra: Trong G không có ba đỉnh nào đôi một kề nhau, suy ra mỗi cạnh rìa không liên thuộc A k cho ta đúng một chu trình đơn độ dài 5 và đi qua A i, còn mỗi cạnh rìa liên thuộc A k cho ta đúng hai chu trình đơn độ dài 5 và đi qua A i Mà số cạnh rìa có tất cả là 32 16 16 và trong số này có đúng hai cạnh liên thuộc A k(do
k 4
d A ), nên suy ra có tất cả 14 1 2 2 18 chu trình đơn độ dài 5 đi qua A i Vì
i
A bất kỳ nên suy ra số chu trình đơn độ dài 5 trong G có tất cả là 18 16
5
, vô lý Vậy n 16
Ak Ai
Hình 2
3) Xét n=15 Ta có G được mô tả ở (H.3) thỏa mãn mọi yêu cầu đặt ra
Trang 10
K
B C D E
F
G
H
I J
L M
N O
A
Hình 3
Vậy nmax 15
Bình luận:
1.Việc xây dựng G có 15 đỉnh xuất phát từ Graph quen thuộc(Graph Peterson) (H.4)và bởi vậy G còn có thể mô tả như sau(H.5):
2 Có thể xét trường hợp n = 16 bằng cách khác dễ lập luân hơn Tuy nhiên việc xeta như đã trình bày ở trên đảm bảo cho lời giải nhất quán về phương pháp
Hình 4