Professional Documents
Culture Documents
Bi Part It e Matching
Bi Part It e Matching
10.2. Bi ton
Ch th hai pha = ( , ). Mt b ghp (matching) ca l mt tp cc cnh i mt
khng c nh chung. C th coi mt b ghp l mt tp sa ch trn th ( , ),
mi nh c bc khng qu 1.
Vn t ra l tm mt b ghp ln nht (maximum matching) (c nhiu cnh nht) trn
th hai pha ch trc.
10.3. M hnh lung
Ta xy dng mng t th bng cch nh hng cc cnh ca thnh cung t sang
. Thm v nh pht v cc cung ni t ti cc _nh, thm v nh thu v cc cung
ni t cc _nh ti , sc cha ca tt c cc cung c t bng 1.
Xt mt lung trn mng c lung trn cc cung l s nguyn, khi c th thy rng nhng
cung c lung bng 1 t sang s tng ng vi mt b ghp trn . Bi ton tm b ghp
cc i trn c th gii quyt bng cch tm lung nguyn cc i trn v chn ra cc
cung mang lung 1 ni t sang .
1 1
2 2
3 3
2 2
3 3
2 2 2 2
3 3 3 3
10.5. Ci t
Chng ta s ci t thut ton tm b ghp cc i trn th hai pha = ( , ), trong
|| = , || = v || = . Cc _nh c nh s t 1 ti v cc _nh c nh
s t 1 ti . Khun dng Input/Output nh sau:
Input
Dng 1 cha ba s nguyn dng , , ln lt l s _nh, s _nh v s cnh ca
th hai pha. (, 104 ; 106 ).
dng tip theo, mi dng cha hai s nguyn dng , tng ng vi mt cnh
( , ) ca th.
Output
B ghp cc i trn th.
Sample Input Sample Output
3 3 5 1: x[2] - y[1]
3 2 2: x[3] - y[2] 1 1
2 2 3: x[1] - y[3]
2 1
1 3 2 2
1 1
3 3
begin
repeat
Old := nList; //Lu li s X_nh cha ghp
FillChar(avail[1], q * SizeOf(avail[1]), True);
for i := nList downto 1 do
begin
Found := False;
Visit(list[i]); //C ghp list[i]
if Found then //Nu ghp c
begin //Xa list[i] khi danh sch cc X_nh cha ghp
list[i] := list[nList];
Dec(nList);
end;
end;
until Old = nList; //Khng th ghp thm X_nh no na
end;
begin
Enter;
Init;
SuccessiveAugmentingPaths;
PrintResult;
end.
10.6. nh gi
Nu th c nh ( = + ) v cnh, do mng nh du [1 ] ch c khi to
mt ln trong pha, thi gian thc hin ca mt pha s bng ( + ) (suy ra t thi gian thc
hin gii thut ca DFS).
Cc pha s c thc hin lp cho ti khi = hoc khi mt pha thc hin xong m khng
ghp thm c nh no. Thut ton cn khng qu ln thc hin pha x l l, nn thi
gian thc hin gii thut tm b ghp cc i trn th hai pha l (2 + ) trng trng
hp xu nht. Cn trng trng hp tt nht, ta c th tm c b ghp cc i ch qua mt
lt thc hin pha x l l, tc l bng thi gian thc hin gii thut DFS. Cn lu rng y
ch l nhng nh gi ln v cn trn ca thi gian thc hin. Thut ton ny chy rt nhanh
trn thc t nhng hin ti ti cha bit nh gi n cht hn.
tng tm mt lc nhiu ng m khng c nh chung c nghin cu trong bi ton
lung cc i bi Dinic (Dinic, 1970). Da trn tng ny, Hopcroft v Karp (Hopcroft &
Karp, An n^(5/2) algorithm for maximum matchings in bipartite graphs, 1973) tm ra
thut ton tm b ghp cc i trn th hai pha trong thi gian (||||). Thut ton
Hopcroft-Karp trc ht s dng BFS phn lp cc nh th di ng i ngn nht
sau mi s dng DFS trn rng cc cy BFS x l l tng t nh cch lm ca chng
ta trn.
Bi tp 10-1
C th v vic. Mi th cho bit mnh c th lm c nhng vic no, v mi vic khi giao
cho mt th thc hin s c hn thnh xng trng ng 1 n v thi gian. Ti mt thi
im, mi th ch thc hin khng qu mt vic.
Hy phn cng cc th lm cc cng vic sao cho:
Mi vic ch gia ch ng mt th thc hin.
Thi gian hon thnh tt c cc cng vic l nh nht. Ch l cc th c th thc hin
song song cc cng vic c giao, vic ca ai ngi ny lm, khng nh hng ti ngi
khc.
Bi tp 10-2
Mt b ghp trn th hai pha gi l ti i nu vic b sung thm bt c cnh no vo
s lm cho khng cn l b ghp na.
a) Ch ra mt v d v b ghp ti i nhng khng l b ghp cc i trn th hai pha
b) Tm thut ton (||) xc nh mt b ghp ti i trn th hai pha
c) Chng minh rng nu v l hai b ghp ti i trn cng mt th hai pha th ||
2|| v || 2||. T ch ra rng nu thut tn ng m c khi to bng mt b
ghp ti i th s lt tm ng m gim i t nht mt na so vi vic khi to bng b
ghp rng.
Bi tp 10-3 (Ph nh Vertex Cover)
Ch th hai pha = ( , ). Bi tn t ra l hy chn ra mt tp gm t nht cc
nh sao cho mi cnh u lin thuc vi t nht mt nh thuc .
Bi ton tm ph nh nh nht trn th tng qut l NP-y , hin ti cha c thut ton
a thc gii quyt. Tuy vy trn th hai pha, ph nh nh nht c th tm c da
trn b ghp cc i.
Da vo m hnh lung ca bi ton b ghp cc i, gi s cc cung (, ) c sc cha +,
cc cung (, ) v (, ) c sc cha 1. Gi (, ) l lt ct hp nht ca mng. t =
{ } { }.
a) Chng minh rng l mt ph nh
b) Chng minh rng l ph nh nh nht
c) Gi s ta tm c l b ghp cc i trn th hai pha, khi chc chn khng cn
tn ti ng m tng ng vi b ghp . t:
= { : cha ghp, n c qua mt ng pha}
= { : a ghp va nh ghp vi khng thuc }
Chng minh rng l ph nh nh nht .
Bi tp 10-4 (Tp c lp cc i)
Ch th hai pha = ( , ). Bi tn t ra l hy chn ra mt tp gm nhiu nh
sa ch hai nh bt k ca khng k nhau.
a) Chng minh rng nu l tp c lp cc i th || = || + || || vi || l s cnh
ca b ghp cc i
b) Xy dng thut ton tm tp c lp cc i trn th hai pha (Gi : Quy v bi ton tm
ph nh)
Bi tp 10-5
Cho l mt b ghp trn th hai pha = ( , ). Gi l s _nh cha ghp. Chng
minh rng ba mnh sau y l tng ng:
l b ghp cc i.
khng c ng m tng ng vi b ghp .
Tn ti mt tp con ca sao cho |()| = || . y () l tp cc _nh k
vi mt nh n trng (Gi : Chn l tp cc _nh n c t mt _nh
cha ghp bng mt ng pha)
Bi tp 10-6 (nh l Hall)
Cho = ( , ) l th hai pha c || = ||. Chng minh rng c b ghp y (b
ghp m mi nh u c ghp) nu v ch nu || |()| vi mi tp .
Bi tp 10-7 (Ph ng ti thiu)
Cho = (, ) l th c hng khng c chu trnh. Mt ph ng (path cover) l mt tp
cc ng i trn tha mn: Vi mi nh , tn ti duy nht mt ng i trng
cha . ng i c th bt u v kt thc bt c u, tnh c ng i di 0 (ch gm
mt nh). Bi tn t ra l tm ph ng ti thiu (minimum path cover): Ph ng gm
t ng i nht.
Gi l s nh ca th, ta nh s cc nh thuc t 1 ti . Xy dng th hai pha
= ( , ) trng :
= {1 , 2 , }
= {1 , 2 , }
Tp cnh c xy dng nh sau: Vi mi cung (, ) , ta thm vo mt cnh ( , )
(Hnh 10-5)
1 1
2 2
1 2
3 3
1 = 1,3,5
3 4
4 4
2 = 2,4,6
5 6
5 5
6 6
Hnh 10-5. Bi ton tm ph ng ti thiu trn DAG c th quy v bi ton b ghp cc i trn th hai pha.