Bài 2: Bài toán đếm và bài toán t
n ti t hp
v1.0 33
BÀI 2: BÀI TOÁN ĐẾM VÀ BÀI TOÁN TN TI T HP
Gii thiu
Bài này gii thiu nhng nét chính ca lý
thuyết t hp bao gm đối tượng nghiên
cu, mt s tên gi, thut ng, ng dng và
mt s vn đề mà lý thuyết t hp đề ra, sau
đó ch yếu trình bày ni dung hai bài toán
ca lý thuyết t hp là bài toán đếm và bài
toán tn ti.
Ni dung Mc tiêu
Gii thiu v lý thuyết t hp
Bài toán đếm
Bài toán tn ti
Thi lượng hc
12 tiết
Sau khi hc bài này, các bn có th:
Nm được mt s cu hình cơ bn và các
bài toán ca lý thuyết t hp.
S dng các nguyên lý cơ bn và các k
thut đếm cơ bn trong vic gii quyết bài
toán đếm.
S dng các nguyên lý cơ bn và các
phương pháp trong vic gii quyết bài
toán tn ti.
Biết cách s dng lp trình trong vic gii
quyết bài toán đếm và bài toán tn ti.
Bài 2: Bài toán đếm và bài toán tn ti t hp
34 v1.0
TÌNH HUNG DN NHP
Tình hung: Bài toán xếp khách ca Lucas
Có mt bàn tròn, xung quanh có 2n ghế. Cn sp ch cho n cp v
chng sao cho các ông ngi xen k vi các bà và không có cp v
chng nào ngi cnh nhau. Đây chính là bài toán xếp khách ca
François-Édouard-Anatole Lucas - Pháp (1842-1891).
Câu hi
Hi có bao nhiêu cách xếp khách tha mãn yêu cu đề ra?
Bài 2: Bài toán đếm và bài toán t
n ti t hp
v1.0 35
Bài này gii thiu nhng nét chính ca lý thuyết t hp bao gm đối tượng nghiên cu, mt s
tên gi, thut ng, ng dng và mt s vn đề mà lý thuyết t hp đề ra, sau đó ch yếu trình bày
ni dung hai bài toán ca lý thuyết t hp là bài toán đếm và bài toán tn ti.
2.1. Gii thiu v lý thuyết t hp
2.1.1. Vài nét v lch s
Tư duy v t hp được xut hin t rt sm trong lch s phát trin nhân loi qua mt
s bài toán c và nhng hình v còn để li, tuy nhiên lý thuyết t hp được xem hình
thành như mt ngành toán hc, vào quãng thế k 17 bng mt lot các công trình ni
tiếng ca các nhà toán hc xut sc như Pascal, Fermat, Leibnitz, Euler, ... và được
phát trin mnh m, đặc bit sau khi máy tính đin t ra đời. Hin nay lý thuyết t hp
được áp dng trong nhiu lĩnh vc khác nhau như lý thuyết s, hình hc hu hn, biu
din nhóm, đại s không giao hoán, quá trình ngu nhiên, lý thuyết xác sut, lý thuyết
mt mã, quy hoch thc nghim, ...
Lý thuyết t hp nghiên cu các lut phân b phn t ca mt tp hp (thường là hu
hn) theo nhng điu kin nào đấy. Kết qu ca nhng lut này là hình thành nên
nhng nhóm phn t khác nhau mà ta gi chung là nhng cu hình t hp (gi ngn
gn là cu hình).
Do s phong phú ca các lut phân b được áp dng trên nhiu đối tượng nên cu
hình t hp rt đa dng mà ta có th thy trong nhiu lĩnh vc hot động ca con
người: mt thế c, mt nhóm quân bài, mt cách xếp hình, mt lch làm vic, mt
mch đin, mt công thc hóa hc, mt mng máy tính, mt phương án sn xut, ...
đều là nhng hình nh c th ca các cu hình t hp.
Sau đây trình bày mt s cu hình đơn gin nht, chúng được dùng như nhng cu
hình cơ bn vì thường gp trong thc tế.
2.1.2. Mt s cu hình cơ bn
Chnh hp
Khái nim: Xét mt tp hp gm n phn t, t tp này, ta xây dng nhng b
th t gm m thành phn, trong đó mi thành phn là mt phn t nào đó ca tp
đang xét sao cho các phn t không được chn lp li. Mi b như thế đưc gi là
mt chnh hp chp m ca n phn t.
Ví d:
Ta có 12 chnh hp chp 2 ca 4 giá tr {1, 2, 3, 4} là (1, 2), (1, 3), (1, 4), (2, 1),
(2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3).
Chú ý: Điu kin “có th t” ca chnh hp có nghĩa là nếu hoán đổi giá tr (khác
nhau) ca 2 thành phn nào đó trong mt chnh hp thì ta nhn được mt chnh
hp khác, chng hn (1, 2) và (2, 1) là hai chnh hp khác nhau.
Trong nhiu ng dng, vic chn giá tr các thành phn ca chnh hp cho phép
lp li (min là vn ly trên tp giá tr được xét), khi đó chnh hp được gi là
chnh hp lp để nhn mnh vic được lp li giá tr ca mi thành phn.
Trong ví d trên, s các chnh hp lp s là 16 (thêm 4 chnh hp có lp là (1, 1),
(2, 2), (3, 3), (4, 4)).
Bài 2: Bài toán đếm và bài toán tn ti t hp
36 v1.0
Chú ý: Trong chnh hp (không được lp) s chp m (còn được gi là độ dài ca
chnh hp) không được ln hơn s các giá tr n mà các thành phn có th chn, còn
trong các chnh hp lp, m và n có th ln bé hơn nhau tùy ý.
Chnh hp lp được gp trong khá nhiu ng dng.
Ví d: Để phân bit các đối tượng được qun lý, người ta mã hóa mi đối tượng
bng mt chui ký hiu (vi độ dài cho trước) ly t mt bng (hu hn) các ký
hiu nào đấy, trong đó các ký hiu trong chui mã có th trùng nhau (s báo danh,
mã s thuế, s chng minh thư, s đăng ký xe, ...).
Chúng là nhng chnh hp lp trên tp ký hiu được xét. Điu kin “không được
lp” phát sinh t yêu cu giá tr ca các thành phn trong chnh hp phi khác
nhau, chng hn mt cách đặt tên cho m đối tượng (hai đối tượng khác nhau phi
có tên khác nhau) chn t mt bng gm n tên nào đấy, là mt chnh hp (không
lp) chp m ca n tên.
Hoán v
Khái nim: Ta gi mt hoán v ca n phn t là mt cách xếp th t ca n phn t đó.
Ví d: vi 3 phn t {1, 2, 3} ta có 6 hoán v sau: (1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3,
1), (3, 1, 2), (3, 2, 1). Có th thy hoán v ca n phn t chính là mt chnh hp
chp n ca n phn t đang xét. Mt lch thc hin n công vic là mt hoán v ca n
công vic này, s thay đổi th t thc hin các công vic có tm nh hưởng rt ln
đến cht lượng ca các công vic, vì thế bài toán tìm mt lch ti ưu là mt bài
toán có ý nghĩa quan trng trong thc tin.
T hp
Khái nim: Ta gi mt t hp chp m ca n phn t là mt cách ly ra m phn t
không k th t t mt tp n phn t, nói khác đi, nó là mt tp con m phn t ca
mt tp n phn t (vì thế m n).
Có th định nghĩa mt t hp chp m ca n như mt chnh hp chp m ca n trong
đó thay điu kin “có th t” trong chnh hp bng điu kin “không k th t
trong t hp. T điu kin này suy ra, các chnh hp, ch khác nhau v th t, là
tương ng vi mt t hp.
Chng hn ta có 12 chnh hp chp 2 ca 4 giá tr {1, 2, 3, 4} (xem ví d trong
2.1.2.1) nhưng ch có 6 t hp chp 2 ca các giá tr này (1, 2), (1, 3), (1, 4), (2, 3),
(2, 4), (3, 4) vì hai chnh hp ch khác nhau v th t được tính là mt t hp. Các
t hp liên quan đến nhng bài toán chia nhóm, trong đó không quan tâm đến th
t các thành viên, chng hn cách lp mt tp ca ca mt lp hc sinh, cách rút
mt s quân bài t mt c bài, cách chn hai đội bóng để đấu, ... là nhng ví d v
t hp.
2.1.3. Các bài toán ca lý thuyết t hp
Người ta thường phân loi các bài toán ca lý thuyêt t hp theo bn dng dưới đây:
Bài toán đếm
Đây là các bài toán nhm tr li câu hi “có bao nhiêu cu hình tha mãn điu kin
đã nêu?”.
Phương pháp đếm thường da vào mt s nguyên lý cơ bn và mt s kết qu đếm
các cu hình đơn gin. Ngoài vic rèn luyn các tư duy ban đầu v s hình thành
Bài 2: Bài toán đếm và bài toán t
n ti t hp
v1.0 37
các cu hình, bài toán đếm còn được dùng trong các công vic mang tính cht đánh
giá như tính xác sut ca mt s kin, tính độ phc tp ca mt thut toán,...
Bài toán tn ti:
Nếu trong bài toán đếm s tn ti ca các cu hình là hin nhiên thì trong bài toán
này, vn đề “có hay không có” cu hình là điu cn gii quyết.
Bài toán tn ti thường b kt vào tình thế lưỡng nan: không ch ra được cu hình
nào nhưng cũng không khng định được chúng không tn ti. Lch s toán hc
thường để li nhng bài toán khó trong lĩnh vc này và vic c gng gii chúng đã
thúc đẩy không ít s phát trin ca nhiu ngành toán hc.
Bài toán lit kê:
Bài toán này quan tâm đến tt c các cu hình có th có, vì thế li gii ca nó cn
được biu din dưới dng thut toán “vét cn” tt c các cu hình. Li gii trong
tng trường hp c th s được máy tính gii quyết nh chy mt chương trình cài
đặt theo thut toán đã tìm.
Bài toán lit kê thường được “làm nn” cho nhiu bài toán khác. Hin nay, mt s
bài toán t hp vn chưa có cách nào gii ngoài cách gii lit kê. Khó khăn chính
ca cách gii này là có quá nhiu cu hình, tuy nhiên tính kh thi ca phương pháp
lit kê ngày càng được nâng cao nh s tiến b nhanh chóng v cht lượng ca
máy tính đin t.
Bài toán ti ưu:
Khác vi bài toán lit kê, bài toán ti ưu ch quan tâm đến mt cu hình “tt nht”
theo mt nghĩa nào đấy. Đây là bài toán có nhiu ng dng trong thc tin và lý
thuyết t hp đã đóng góp mt phn đáng k trong vic xây dng nhng thut toán
hu hiu.
2.2. Bài toán đếm
2.2.1. Gii thiu bài toán
Mt trong nhng vn đề đầu tiên ca vic nghiên cu t hp là đếm xem có bao nhiêu
cu hình được to ra vi nhng quy tc đã nêu? Để đếm chính xác, ta phi phân bit
được các cu hình da vào các lut xây dng chúng. Vì thế có th xem các bài toán
đếm là nhng bài luyn tp đầu tiên để con người làm quen vi tư duy t hp, điu
này gii thích vì sao mt s bài toán đếm (mc dù dưới dng trc giác), đã được đưa
vào chương trình toán ph thông t nhng năm mi đi hc.
Bài toán đếm rt phong phú k c dng phát biu ln cách gii. Độ khó ca nhng bài
toán đếm được tri rt rng: t nhng bài rt d vi nhng s liu c th, có th kim
chng bng trc giác, đến nhng bài toán khó hơn, vi d liu đầu vào bng ch
kết qu ca nó được biu din bng mt công thc toán hc. Có nhng công thc
được tìm qua mt vài suy lun đơn gin nhưng cũng có nhng công thc mà vic tìm
thy chúng phi kéo dài hàng thế k. Có nhng bài toán đếm gp rt nhiu khó khăn
(nhiu khi bế tc) nếu gii bng phương pháp trc tiếp, trong khi li gii bng quy np
li tr nên rõ ràng, đơn gin. Mt s bài toán đếm mà lut to cu hình có v như
không phc tp nhưng công thc đếm thì hin nay vn chưa tìm ra (hoc chưa chng
minh được là không có).