´ RO `.I RA TOAN C Pha.m Tiˆe´n So.n - `a La.t, 2005 D Mu.c lu.c ˙’ D ˆU -` MO A ´ D ˆ´M -E PHEP C´ac nguyˆen l´ y co ba˙’n cu˙’a ph´ep d¯ˆe´m 1.1.1 Nguyˆen l´ y tˆo˙’ng 1.1.2 Nguyˆen l´ y t´ıch 10 1.1.3 Nguyˆen l´ y bao h`am-loa.i tr` u 13 1.2 Ho´an vi v`a tˆo˙’ ho p 15 1.3 C´ac thuˆa.t to´an sinh ho´an vi v`a tˆo˙’ ho p 20 1.4 Ho´an vi v`a tˆo˙’ ho p suy rˆo.ng 25 1.5 C´ac hˆe sˆo´ nhi th´ u.c v`a c´ac d¯`oˆng nhˆa´t th´ u.c 32 1.6 `ong chim bˆ `o cˆau Nguyˆen l´ y chuˆ 36 1.6.1 `ong chim bˆ `o cˆau (da.ng th´ Nguyˆen l´ y chuˆ u nhˆa´t) 36 1.6.2 `ong chim bˆ `o cˆau (da.ng th´ Nguyˆen l´ y chuˆ u hai) 37 1.6.3 `ong chim bˆ `o cˆau (da.ng th´ Nguyˆen l´ y chuˆ u ba) 39 1.1 ˆ QUAN HE 43 2.1 Quan hˆe hai ngˆoi 43 2.2 Quan hˆe v`a ma trˆa.n 48 2.3 Quan hˆe th´ u tu 54 2.4 Quan hˆe tu.o.ng d¯u.o.ng 62 2.5 Bao d¯o´ng cu˙’a quan hˆe 69 2.6 Lattice cu˙’a c´ac phˆan hoa.ch 75 2.6.1 Thuˆa.t to´an giao c´ac phˆan hoa.ch 77 2.6.2 Thuˆa.t to´an trˆo.n c´ac phˆan hoa.ch 78 ˆ´ BOOLE -A D I SO 81 3.1 Lattice 81 3.2 Latiice phˆan bˆo´ 90 3.3 - a.i sˆo´ Boole D 96 3.4 H`am Boole 3.5 Biˆe˙’u diˆ˜en c´ac h`am Boole qua hˆe tuyˆe˙’n, hˆo.i v`a phu˙’ d¯.inh 107 3.6 Biˆe˙’u diˆ˜en tˆo´i thiˆe˙’u cu˙’a h`am Boole 111 103 3.6.1 Kh´ai niˆe.m 111 3.6.2 Phu.o.ng ph´ap ba˙’n d¯`ˆo Karnaugh 112 ˜ TUYE ˆ´N T´INH MA 4.1 119 Mo˙’ d¯`aˆu 119 4.1.1 Kh´ai niˆe.m 119 4.1.2 M˜a ph´at hiˆe.n lˆo˜i 120 4.1.3 M˜a su˙’.a sai 121 4.2 C´ac kh´ai niˆe.m 122 4.3 Khoa˙’ng c´ach Hamming 131 4.4 Hˆo.i ch´ u.ng 139 4.4.1 Gia˙’i m˜a d` ung ba˙’ng chuˆa˙’n 140 4.5 M˜a ho`an ha˙’o 143 4.6 M˜a Hamming 146 ˆ THI -` D O 149 5.1 C´ac kh´ai niˆe.m 149 5.2 `en v`a chu tr`ınh 154 Dˆay chuyˆ 5.3 Chu tr`ınh Hamilton v`a b`ai to´an ngu.`o.i du li.ch 162 5.4 5.3.1 Quy tˇa´c t`ım chu tr`ınh Hamilton 164 5.3.2 M˜a Gray 166 - u.`o.ng d¯i v`a ma.ch 169 D 5.4.1 5.5 Thuˆa.t to´an 171 Ma trˆa.n biˆe˙’u diˆ˜en d¯`oˆ thi 173 5.5.1 `e 173 Ma trˆa.n kˆ 5.5.2 Ma trˆa.n liˆen thuˆo.c 175 5.6 - ˇa˙’ng cˆa´u gi˜ D u.a c´ac d¯`ˆo thi 179 5.7 - `ˆo thi phˇa˙’ng 181 D ˆ CAY 6.1 6.2 6.3 191 Mo˙’ d¯`aˆu 191 6.1.1 C´ac kh´ai niˆe.m 191 6.1.2 M˜a Huffman 192 Cˆay bao tr` um 197 6.2.1 `eu rˆo.ng x´ac d¯.inh cˆay bao tr` Thuˆa.t to´an t`ım kiˆe´m theo chiˆ um 198 6.2.2 `eu sˆau x´ac d¯i.nh cˆay bao tr` Thuˆa.t to´an t`ım kiˆe´m theo chiˆ um 199 Cˆay bao tr` um nho˙’ nhˆa´t 200 6.3.1 Thuˆa.t to´an Kruskal 201 6.4 Liˆe.t kˆe cˆay 204 6.5 Cˆay nhi phˆan 208 6.5.1 Thuˆa.t to´an xˆay du ng cˆay t`ım kiˆe´m nhi phˆan 210 T` liˆ e.u tham kha˙’ o 215 ˙’ D ˆU -` MO A To´an ho.c r`o.i ra.c l`a mˆo.t bˆo phˆa.n cu˙’a To´an ho.c nhˇ`a m nghiˆen c´ u.u c´ac d¯oˆ´i tu.o ng r`o.i ra.c: nghiˆen c´ u u c´ac cˆa´u tr´ uc r`o i ra.c kh´ac v`a c´ac phu o ng ph´ap gia˙’i c´ac vˆa´n d¯`ˆe c´o liˆen quan d¯ˆe´n c´ac cˆa´u tr´ uc n`ay u v`a vˆa.n h`anh m´ay t´ınh du.´o.i da.ng c´ac t´ın hiˆe.u r`o.i ra.c (c´ac m´ay Thˆong tin lu.u tr˜ t´ınh liˆen tu.c chı˙’ l`a c´ac m´ay t´ınh tu.o.ng tu , chuyˆen du.ng) V`ı vˆa.y cˆong cu d` ung d¯ˆe˙’ biˆe˙’u diˆ˜en thˆong tin m´ay v`a xu˙’ l´ y c´ac thˆong tin n`ay l`a To´an ho.c r`o i ra.c Ngo`ai ra, c´ac phu.o.ng ph´ap v`a kˆe´t qua˙’ cu˙’a To´an ho.c r`o.i ra.c c´o thˆe˙’ d` ung d¯ˆe˙’ gia˙’i quyˆe´t tru c `eu vˆa´n d¯`ˆe d¯aˇ t cu˙’a Tin ho.c nhu logic, h`am d¯a.i sˆo´ logic, tˆo˙’ ho p trˆen t` tiˆe´p nhiˆ u To´an `eu ho.c r`o.i ra.c chuˆa˙’n bi sˇa˜n v`a cung cˆa´p c´ac cˆong cu., phu.o.ng ph´ap luˆa.n d¯ˆe˙’ gia˙’i quyˆe´t nhiˆ vˆa´n d¯`ˆe cu˙’a Tin ho.c C´o thˆe˙’ n´oi To´an ho.c r`o i ra.c l`a ng`anh To´an ho.c co so˙’ cho Tin ho.c Mu.c d¯´ıch cu˙’a gi´ao tr`ınh nhˇ`a m cung cˆa´p mˆo.t sˆo´ cˆong cu To´an ho.c d¯ˆe˙’ bu.´o.c d¯`aˆu d¯i v`ao Tin ho.c Gi´ao tr`ınh d¯u.o c tr`ınh b`ay mˆo.t c´ach d`an tra˙’i ho.n l`a d¯i sˆau v`ao mˆo.t vˆa´n d¯`ˆe cu thˆe˙’ `an c´o c´ac b`ai tˆa.p nhˇ`a m cu˙’ng cˆo´ nh˜ Cuˆo´i mˆo˜i phˆ u.ng kiˆe´n th´ u.c d¯˜a ho.c Hy vo.ng rˇa` ng gi´ao `an n`ao yˆeu cˆ `au ho.c tˆa.p cu˙’a c´ac ba.n sinh viˆen tr`ınh n`ay d¯a´p u ´.ng d¯u.o c phˆ `om s´au chu.o.ng v´o.i 20 t`ai liˆe.u tham kha˙’o tr`ınh b`ay c´ac vˆa´n d¯`ˆe sau: Gi´ao tr`ınh bao gˆ - `ˆe cˆa.p d¯ˆe´n c´ac phu.o.ng ph´ap co ba˙’n cu˙’a ph´ep d¯ˆe´m: Nguyˆen Chu.o.ng 1: Ph´ep d¯ˆe´m D `ong chim bˆ `o cˆau l´ y t´ıch, nguyˆen l´ y tˆo˙’ng, nguyˆen l´ y bao h`am-loa.i tr` u., nguyˆen l´ y c´ac chuˆ Ch´ ung d¯o´ng vai tr`o quan tro.ng Tin ho.c, chˇa˙’ng ha.n: d¯ˆe˙’ u ´o c lu o ng th`o i gian thu c hiˆe.n `an d¯ˆe´m sˆo´ th`o.i gian thi h`anh t` cu˙’a mˆo.t thuˆa.t to´an ch´ ung ta cˆ u.ng d`ong lˆe.nh hoˇa.c c´ac v`ong lˇa.p Ph´ep d¯ˆe´m c˜ ung d¯o´ng vai tr`o quan tro.ng l´ y thuyˆe´t x´ac suˆa´t Chu.o.ng 2: Quan hˆe Tr`ınh b`ay c´ac quan hˆe th´ u tu , quan hˆe tu.o.ng d¯u.o.ng v`a cuˆo´i c` ung u u ha.n Ch´ ung ta c˜ ung x´et mˆo´i quan hˆe gi˜ u.a c´ac l`a quan hˆe tˆo˙’ng qu´at trˆen nh˜ u ng tˆa.p h˜ quan hˆe v´o.i ma trˆa.n hay d¯`oˆ thi biˆe˙’u diˆ˜en n´o - a.i sˆo´ Boole Thuˆa.t ng˜ `eu l˜ınh Chu.o.ng 3: D u “d¯a.i sˆo´ Boole” d¯u.o c su˙’ du.ng d¯ˆe˙’ mˆo ta˙’ nhiˆ u tu logic v`a c´ac ba˙’ng chˆan tri d¯ˆe´n c´ac ph´ep to´an sˆo´ ho.c d¯u o c thu c vu c c´o liˆen quan, t` hiˆe.n bo˙’.i c´ac ma.ch d¯iˆe.n tu˙’ Chu.o.ng n`ay bˇa´t d¯`ˆau v´o.i mˆo´i quan hˆe gi˜ u.a c´ac tˆa.p d¯u.o c sˇa´p th´ u tu v`a c´ac lattice Kˆe´ tiˆe´p l`a d¯a.i sˆo´ Boole v`a vˆa´n d¯`ˆe cu c tiˆe˙’u ho´a h`am Boole `e l´ `om c´ac m˜a cho ph´ep Chu.o.ng 4: M˜a tuyˆe´n t´ınh Gi´o.i thiˆe.u so lu.o c vˆ y thuyˆe´t m˜a bao gˆ - ˆay l`a vˆa´n d¯`ˆe th`o i su su ph´at triˆe˙’n c´ac cˆong nghˆe m´o.i viˆe.c ph´at hiˆe.n v`a su˙’ a sai D `en v`a lu.u tr˜ truyˆ u d˜ u liˆe.u - `ˆo thi Chu.o.ng n`ay gi´o.i thiˆe.u mˆo.t sˆo´ kh´ai niˆe.m v`a b`ai to´an co ba˙’n cu˙’a l´ Chu.o.ng 5: D y thuyˆe´t d¯`oˆ thi nhu chu tr`ınh Euler, chu tr`ınh Hamilton, d¯u `o ng d¯i ngˇa´n nhˆa´t, t´ınh phˇa˙’ng cu˙’a d¯`ˆo thi Chu.o.ng 6: Cˆay Nˆo.i dung ch´ınh cu˙’a chu.o.ng d¯`ˆe cˆa.p d¯ˆe´n nh˜ u.ng vˆa´n d¯`ˆe: Xˆay du ng m˜a tˆo´i um v`a hˆe c´ac chu tr`ınh d¯oˆ c lˆa.p, cˆay bao tr` um tˆo´i thiˆe˙’u, liˆe.t kˆe cˆay u.u Huffman, cˆay bao tr` `an Tuˆa´n Minh, c´ac ba.n b`e v`a c´ac Tˆoi d¯aˇ c biˆe.t c´am o.n c´ac d¯`oˆng nghiˆe.p, d¯aˇ c biˆe.t Th.s Trˆ sinh viˆen v`ı nh˜ u ng d¯´ong g´op cu˙’a ho qu´a tr`ınh biˆen soa.n gi´ao tr`ınh n`ay `e nh˜ Tˆoi chˆan th`anh c´am o.n ba.n d¯o.c vˆ u.ng y ´ kiˆe´n d¯ˆo´i v´o.i c´ac thiˆe´u s´ot khˆong thˆe˙’ tr´anh kho˙’i cu˙’a cuˆo´n s´ach - `a La.t, ng`ay 12 th´ang nˇam 2003 D Pha.m Tiˆe´n So.n Chu.o.ng ´ D ˆ´M -E PHEP `e c´ach sˇa´p xˆe´p c´ac d¯ˆo´i tu.o ng, l`a mˆo.t bˆo phˆa.n quan tro.ng cu˙’a To´an tˆo˙’ ho p nghiˆen c´ u.u vˆ to´an ho.c r`o.i ra.c Nh˜ u.ng vˆa´n d¯`ˆe cu˙’a tˆo˙’ ho p d¯u.o c nghiˆen c´ u.u t` u Thˆe´ ky˙’ 17, liˆen quan tru.´o.c tiˆen d¯ˆe´n c´ac tr`o cho i may ru˙’i Ng`ay to´an tˆo˙’ ho p d¯u o c d` ung rˆo.ng r˜ai tin ho.c Mu.c d¯´ıch ch´ınh cu˙’a chu.o.ng n`ay l`a thiˆe´t lˆa.p mˆo.t sˆo´ phu.o.ng ph´ap d¯ˆe´m c´ac tˆa.p h˜ u.u ha.n `an tu˙’ cu˙’a ch´ `an tu˙’ m`a khˆong liˆe.t kˆe c´ac phˆ ung phˆ 1.1 C´ ac nguyˆ en l´ y co ba˙’n cu˙’a ph´ ep d ¯ˆ e´m `an tu˙’ S, ta k´ `an tu˙’ cu˙’a tˆa.p S Do d¯o´ #S = #T nˆe´u V´oi tˆa.p h˜ u.u ha.n phˆ y hiˆe.u #S l`a sˆo´ phˆ `an tu˙’ Ch´ uy ´ rˇ`a ng hai tˆa.p S v`a T c´o c` ung sˆo´ c´ac phˆ #∅ = 0, #{1, 2, , n} = n v´o.i n ∈ N Ch´ ung ta bˇa´t d¯`aˆu v´o.i mˆo.t sˆo´ nguyˆen l´ y d¯ˆe´m 1.1.1 Nguyˆ en l´ y tˆ o˙’ng Gia˙’ su˙’ A1 , A2 , , Am l`a c´ac su kiˆe.n d¯oˆi mˆo.t loa.i tr` u nhau; v`a gia˙’ su˙’ c´ac su kiˆe.n A1 , A2 , , Am c´o tu o ng u ´ ng n1 , n2 , , nm c´ach xa˙’y Khi d¯´o su kiˆe.n (hoˇa.c A1 , hoˇa.c A2 , , hoˇa.c Am ) c´o n1 + n2 + · · · + nm c´ach xa˙’y V´ı du 1.1.1 Gia˙’ su˙’ l´o.p tru.o˙’.ng c´o thˆe˙’ l`a mˆo.t n˜ u sinh, hoˇa.c l`a mˆo.t nam sinh C´o bao nhiˆeu c´ach cho.n l´o p tru o˙’ ng kh´ac nˆe´u sˆo´ ho.c sinh n˜ u l`a 36 v`a sˆo´ nam sinh l`a 20? Go.i A1 (tu.o.ng u ´.ng, A2 ) l`a su kiˆe.n l´o.p tru.o˙’.ng l`a n˜ u sinh (tu.o.ng u ´.ng, nam sinh) Ta c´o 36 c´ach cho.n l´o.p tru.o˙’.ng l`a n˜ u sinh v`a 20 c´ach cho.n l´o.p tru.o˙’.ng l`a nam sinh Theo nguyˆen l´ y tˆo˙’ng, su kiˆe.n (A1 hoˇa.c A2 ) c´o (36 + 20) = 56 c´ach cho.n V´ı du 1.1.2 Gia˙’ su˙’ mˆo.t sinh viˆen c´o thˆe˙’ cho.n d¯u ´ng mˆo.t chuyˆen d¯`ˆe tu cho.n mˆo.t `om 3, v`a chuyˆen d¯`ˆe tu.o.ng u ba danh s´ach Ba danh s´ach n`ay gˆ ´.ng Ho˙’i sinh viˆen d¯´o c´o bao nhiˆeu c´ach lu a cho.n? Theo nguyˆen l´ y tˆo˙’ng, c´o + + = 17 c´ach y thuyˆe´t tˆa.p ho p nhu Nhˆ a.n x´ et Nguyˆen l´ y tˆo˙’ng c´o thˆe˙’ ph´at biˆe˙’u theo thuˆa.t ng˜ u cu˙’a l´ `an tu˙’ cu˙’a tˆa.p T1 ∪T2 ∪· · ·∪Tm sau Nˆe´u c´ac tˆa.p T1 , T2 , , Tm d¯oˆi mˆo.t r`o i th`ı sˆo´ c´ac phˆ `an tu˙’ cu˙’a c´ac tˆa.p n`ay; t´ bˇ`a ng tˆo˙’ng sˆo´ c´ac phˆ u c l`a m #(T1 ∪ T2 ∪ ∪ Tm ) = #Ti i=1 1.1.2 Nguyˆ en l´ y t´ıch Gia˙’ su˙’ A1 , A2 , , Am l`a c´ac su kiˆe.n d¯oˆi mˆo.t loa.i tr` u nhau; v`a gia˙’ su˙’ c´ac su kiˆe.n A1 , A2 , , Am c´o tu o ng u ´ ng n1 , n2 , , nm c´ach xa˙’y Khi d¯o´ su kiˆe.n (A1 v`a A2 v`a v`a Am ) c´o n1 × n2 × · · · × nm c´ach xa˙’y u Ho˙’i c´o mˆa´y c´ach ho´a trang? V´ı du 1.1.3 Gia˙’ su˙’ c´o hai mˇa.t na., ba m˜ D` ung nguyˆen l´ y t´ıch, c´o × = c´ach ho´a trang kh´ac C˜ ung c´o thˆe˙’ d` ung l´ y thuyˆe´t tˆa.p ho p nhu sau: Mˆo˜i c´ach ho´a trang l`a mˆo.t c´ach cho.n x ∈ X v`a mˆo.t c´ach cho.n y ∈ Y Do d¯´o sˆo´ c´ach ho´a trang l`a sˆo´ c´ac cˇa.p (x, y) thuˆo.c X × Y v`a d¯o´ bˇ`a ng #X × #Y = × = y n`ay c˜ ung thu.`o.ng d¯u.o c ph´at biˆe˙’u du.´o.i da.ng tˆa.p ho p nhu sau: Gia˙’ Nhˆ a.n x´ et Nguyˆen l´ `an tu˙’ v`a d¯oˆi mˆo.t r`o.i Khi d¯´o sˆo´ phˆ `an tu˙’ cu˙’a u.u ha.n phˆ su˙’ c´ac tˆa.p T1 , T2 , , Tm c´o h˜ tˆa.p t´ıch Descartes T1 × T2 × · · · × Tm bˇ`a ng #T1 × #T2 × · · · × #Tm V´ı du 1.1.4 C´o bao nhiˆeu chuˆo˜i bit kh´ac c´o d¯ˆo d`ai 8? Mˆo˜i bit c´o hai c´ach cho.n, hoˇa.c hoˇa.c Do d¯o´ theo nguyˆen l´ y t´ıch, c´o 28 = 256 chuˆo˜i bit c´o d¯oˆ d`ai `om ba ch˜ u c´ai v`a theo V´ı du 1.1.5 C´o bao nhiˆeu ba˙’ng sˆo´ xe kh´ac nhau, nˆe´u mˆo˜i ba˙’ng gˆ `om 26 k´ sau l`a ba sˆo´ (gia˙’ thiˆe´t ba˙’ng ch˜ u c´ai gˆ y tu )? 10 k α c a e a c a b c d β d c f e f b d e f Tro.ng lu.o ng 2 3 6 C´ac ca.nh (khˆong ta.o th`anh chu tr`ınh) d¯u.o c thˆem v`ao cˆay T theo th´ u tu l`a (c, d), (a, c), (e, f ), (a, e), (a, b) T l`a cˆay bao tr` um nho˙’ nhˆa´t c´o tro.ng lu.o ng 12 (H`ınh 6.10(b)) a • • e • c a • b • b • • d • f • e (a) • c • d • f (b) H`ınh 6.10: `e 6.3.2 Nˆe´u Kn = (V, E) l` a d¯`ˆ o thi d¯`ˆ ay d¯u˙’ , v`a nˆe´u tˆa´t ca˙’ c c´ac tro.ng lu.o ng cu˙’ a c´ac Bˆ o˙’ d ¯ˆ `on ta.i nhˆa´t mˆo.t cˆay bao tr` ca.nh kh´ac th`ı tˆ um tˆo´i thiˆe˙’u T = (V, ET ) Ch´ u.ng minh K´ y hiˆe.u Ek := {e1 , e2 , , ek } l`a tˆa.p c´ac ca.nh d¯u.o c thˆem v`ao cˆay T Thuˆa.t to´an 6.3.1 o˙’ bu.´o.c lˇa.p th´ u k, ≤ k ≤ n − Hiˆe˙’n nhiˆen theo c´ach xˆay du ng, T l`a d¯`ˆo thi c´o (n − 1) ca.nh v`a khˆong c´o chu tr`ınh nˆen T l`a cˆay bao tr` um cu˙’a Kn Gia˙’ su˙’ T = (V, ET ) l`a cˆay bao tr` um tˆo´i thiˆe˙’u, ta ch´ u.ng minh ET = En−1 Thˆa.t vˆa.y, gia˙’ `on ta.i chı˙’ sˆo´ k nho˙’ nhˆa´t cho ca.nh ek khˆong thuˆo.c ET Khi d¯´o theo t´ınh su˙’ ngu.o c la.i tˆ ´ `on ta.i tˆ `on ta.i mˆo.t v`a chı˙’ mˆo.t chu tr`ınh µ T ∪ {ek } Trˆen chu tr`ınh chˆa t cu˙’a cˆay, tˆ `on ta.i mˆo.t chu tr`ınh, l`a µ, cˆay n`ay c´o mˆo.t ca.nh e0 m`a e0 ∈ / En−1 , v`ı nˆe´u ngu.o c la.i tˆ T −mˆau thuˆa˜n Nˆe´u d¯ˇa.t ET := (ET ∪ {ek }) \ {e0 }) th`ı d¯`oˆ thi T := (V, ET ) khˆong c´o chu tr`ınh v`a c´o (n − 1) ca.nh nˆen n´o l`a mˆo.t cˆay Mˇa.t kh´ac Ek−1 ∪ {e0 } ⊂ ET nˆen Ek−1 ∪ {e0 } khˆong ch´ u.a chu tr`ınh Suy w(e0 ) > w(ek ) 202 Nhu.ng cˆay T nhˆa.n d¯u.o c t` u cˆay T bˇ`a ng c´ach thay ca.nh e0 th`anh ca.nh ek nˆen W (T ) < W (T ) Mˆau thuˆa˜n v`ı T l`a cˆay bao tr` um tˆo´i thiˆe˙’u ✷ - i.nh l´ D y 6.3.3 Thuˆa.t to´an Kruskal l`a d¯u ´ng; t´ u.c l`a, kˆe´t th´ uc thuˆa.t to´an T l` a cˆay bao tr` um tˆ o´i thiˆe˙’u Ch´ u.ng minh Thˆa.t vˆa.y tru.´o.c hˆe´t ta thu xˆe´p d¯ˆe˙’ mo.i ca.nh d¯`ˆeu c´o d¯oˆ d`ai kh´ac nhau; chˇa˙’ng ha.n nˆe´u w(e1 ) = w(e2 ) = · · · = w(es ) th`ı thu c hiˆe.n ph´ep biˆe´n d¯ˆo˙’i: w(e1 ) = w(e1 ) + , w(e2 ) = w(e2 ) + , w(es ) = w(es ) + s , `e quan hˆe gi˜ u tu vˆ u.a tro.ng lu.o ng d¯´o l`a sˆo´ du.o.ng d¯u˙’ b´e cho khˆong l`am d¯a˙’o lˆo.n th´ cu˙’a c´ac ca.nh C˜ ung thˆe´, ta c˜ ung c´o thˆe˙’ thˆem c´ac ca.nh f v´o.i tro.ng lu.o ng d¯u˙’ l´o.n w(f ) > kh´ac cho d¯`oˆ thi nhˆa.n d¯u.o c Kn = (V, E ) l`a d¯`ˆay d¯u˙’ e∈E w(e) v`a `on ta.i nhˆa´t mˆo.t cˆay bao tr` Theo Bˆo˙’ d¯`ˆe 6.3.2 tˆ um tˆo´i thiˆe˙’u T d¯`ˆo thi Kn Mˇa.t kh´ac, mo.i cˆay bao tr` um cu˙’a d¯`oˆ thi G c´o tro.ng lu o ng khˆong vu.o t qu´a e∈E w(e) v`a mo.i cˆay bao tr` um cu˙’a G c˜ ung l`a cˆay bao tr` um cu˙’a Kn Suy T l`a cˆay bao tr` um tˆo´i thiˆe˙’u cu˙’a G ✷ `an c´ac ca.nh c´o tro.ng lu.o ng l´o.n Nhˆa.n x´et rˇa` ng, c´o thˆe˙’ d` ung phu.o.ng ph´ap d¯ˆo´i ngˆa˜u: loa.i dˆ nhˆa´t cu˙’a d¯`ˆo thi m`a khˆong l`am mˆa´t t´ınh liˆen thˆong cu˙’a n´o cho d¯ˆe´n khˆong thˆe˙’ loa.i ca.nh d¯u.o c n˜ u.a - ˆo ph´ D u.c ta.p t´ınh to´an cu˙’a thuˆa.t to´an Kruskal phu thuˆo.c v`ao Bu.´o.c 2: d¯`ˆo thi c´o m ca.nh `an m log2 m ph´ep to´an d¯ˆe˙’ thu c hiˆe.n sˇa´p xˆe´p ma˙’ng theo tro.ng lu.o ng tˇang dˆ `an Tuy nhiˆen, cˆ ˙ ’ ` ´ ` ˙ ’ n´oi chung ta khˆong cˆan duyˆe.t to`an bˆo mang v`ı cˆay bao tr` um tˆoi thiˆeu gˆom (n − 1) ca.nh `an kiˆe˙’m tra r < m phˆ `an tu˙’ d¯`aˆu tiˆen cu˙’a ma˙’ng chˆa´p nhˆa.n d¯u.o c nˆen chı˙’ cˆ Thuˆa.t to´an Kruskal chı˙’ th´ıch ho p v´o.i nh˜ u.ng d¯`ˆo thi tu.o.ng d¯oˆ´i thu.a V´o.i nh˜ u.ng d¯`oˆ thi kh´ac, chˇa˙’ng ha.n d¯`ˆo thi d¯`ˆay d¯u˙’ c´o sˆo´ ca.nh m = n(n − 1)/2, Prim [20] v`a Dijkstra [4] d¯a˜ d¯u.a nh˜ u.ng thuˆa.t to´an kh´ac hiˆe.u qua˙’ ho.n B` tˆ a.p Gia˙’ su˙’ graph G liˆen thˆong c´o tro.ng sˆo´; v l`a d¯ı˙’nh G v`a e l`a mˆo.t ca.nh liˆen thuˆo.c v u.ng minh rˇ`a ng e d¯u.o c ch´ u.a cˆay bao tr` um tˆo´i thiˆe˙’u c´o tro.ng lu.o ng tˆo´i thiˆe˙’u Ch´ n`ao d¯o´ 203 Gia˙’ su˙’ graph G liˆen thˆong c´o tro.ng sˆo´; v l`a d¯ı˙’nh G Gia˙’ su˙’ tˆa´t ca˙’ c´ac ca.nh liˆen thuˆo.c v c´o tro.ng lu.o ng phˆan biˆe.t Gia˙’ su˙’ e l`a mˆo.t ca.nh liˆen thuˆo.c v c´o tro.ng lu.o ng tˆo´i thiˆe˙’u Ca.nh e d¯u.o c ch´ u.a mo.i cˆay bao tr` um tˆo´i thiˆe˙’u? ung tro.ng lu.o ng Ch´ u.ng Gia˙’ su˙’ graph c´o tro.ng sˆo´ Kn d¯´o tˆa´t ca˙’ c´ac ca.nh c´o c` minh rˇ`a ng thuˆa.t to´an t`ım cˆay bao tr` um tˆo´i thiˆe˙’u cu˙’a Kn pha˙’i kiˆe˙’m tra tˆa´t ca˙’ c´ac ca.nh cu˙’a Kn Gia˙’ su˙’ graph G liˆen thˆong c´o tro.ng sˆo´ d¯´o tˆa´t ca˙’ c´ac ca.nh c´o tro.ng lu.o ng kh´ac Ch´ u.ng minh G c´o nhˆa´t cˆay bao tr` um tˆo´i thiˆe˙’u Gia˙’ su˙’ G l`a graph liˆen thˆong c´o tro.ng sˆo´ C´ac khˇa˙’ng d¯i.nh sau d¯u ´ng hay sai? d¯u ´ng, ch´ ung minh; ngu.o c la.i, cho pha˙’n v´ı du.: um (a) Nˆe´u tˆa´t ca˙’ c´ac tro.ng lu.o ng cu˙’a c´ac ca.nh kh´ac th`ı c´ac cˆay bao tr` ˙ ’ c´o tˆo ng tro.ng lu o ng kh´ac (b) Nˆe´u e l`a ca.nh c´o tro.ng lu.o ng nho˙’ ho.n tˆa´t ca˙’ c´ac tro.ng lu.o ng cu˙’a c´ac ca.nh th`ı e thuˆo.c mo.i cˆay bao tr` um tˆo´i thiˆe˙’u `on ta.i c´ach d¯a´nh sˆo´ th´ (c) Nˆe´u T l`a cˆay bao tr` um nho˙’ nhˆa´t cu˙’a G th`ı tˆ u tu c´ac cu˙’a G cho thuˆa.t to´an Kruskal sinh d¯u ´ng cˆay bao tr` um n`ay Nˆe´u kh´ac kh´ac ca.nh Xˆay du ng thuˆa.t to´an d¯ˆo´i ngˆa˜u thuˆa.t to´an Kruskal: xo´a c´ac ca.nh c´o tro.ng lu.o ng l´o.n nhˆa´t m`a khˆong l`am mˆa´t t´ınh liˆen thˆong cu˙’a d¯`oˆ thi Xˆay du ng thuˆa.t to´an t`ım cˆay bao tr` um l´o.n nhˆa´t graph liˆen thˆong c´o tro.ng sˆo´ Gia˙’ su˙’ V := {v1 , v2 , , } l`a tˆa.p n d¯ı˙’nh v`a s l`a h`am “phˆan loa.i” trˆen V × V (xem V´ı du 5.1.4) Gia˙’ su˙’ G l`a graph d¯`aˆy d¯u˙’ c´o tro.ng sˆo´ d¯o´ tˆa.p d¯ı˙’nh l`a V v`a c´ac tro.ng lu.o ng l`a s(vi , vj ) Su˙’.a la.i thuˆa.t to´an Kruskal d¯ˆe˙’ nh´om d˜ u liˆe.u th`anh c´ac l´o.p (thuˆa.t `an nhˆa´t) to´an n`ay go.i l`a phu o ng ph´ap lˆan cˆa.n gˆ Cho c´ac v´ı du minh ho.a su hoa.t d¯ˆo.ng cu˙’a thuˆa.t to´an Kruskal 6.4 Liˆ e.t kˆ e cˆ ay Nˇam 1857, nh`a to´an ho.c ngu.`o.i Anh, A Caylay (d¯oˆ c lˆa.p v´o.i G Kirchoff) d¯a˜ kh´am ph´a c´ac cˆay cˆo´ gˇa´ng liˆe.t kˆe tˆa´t ca˙’ c´ac chˆa´t d¯`oˆng phˆan cu˙’a hydrocarbon C´ac phˆan tu˙’ hydrocarbon u c´ac nguyˆen tu˙’ hydrogen v`a carbon, d¯´o mˆo˜i nguyˆen tu˙’ carbon c´o thˆe˙’ d¯u.o c cˆa´u ta.o t` liˆen kˆe´t ho´a ho.c v´o.i bˆo´n nguyˆen tu˙’ kh´ac v`a mˆo˜i nguyˆen tu˙’ hydrogen c´o thˆe˙’ liˆen kˆe´t ho´a ho.c v´o.i mˆo.t nguyˆen tu˙’ kh´ac Mˆo.t hydrocarbon ba˙’o ho`a l`a hydrocarbon ch´ u.a sˆo´ cu c d¯a.i c´ac nguyˆen tu˙’ hydrogen (v´o.i sˆo´ c´ac nguyˆen tu˙’ carbon cho tru.´o.c) A Caylay d¯˜a ch´ u.ng `an c´o 2k + nguyˆen tu˙’ minh rˇ`a ng, nˆe´u hydrocarbon ba˙’o ho`a c´o k nguyˆen tu˙’ carbon th`ı n´o cˆ ˆ hydrogen v`a d¯o´ c´o cˆong th´ u c ho´a ho.c Ck H2k+2 Ong d¯˜a d` ung graph liˆen thˆong d¯ˆe˙’ biˆe˙’u diˆ˜en cˆa´u tr´ uc cu˙’a mˆo.t phˆan tu˙’ hydrocarbon Ck H2k+2 : c´ac d¯ı˙’nh l`a c´ac nguyˆen tu˙’ carbon v`a hydrogen; c´ac ca.nh tu.o.ng u ´.ng c´ac liˆen kˆe´t ho´a ho.c gi˜ u.a c´ac nguyˆen tu˙’ Trong tru.`o.ng ho p 204 n`ay, mˆo.t nguyˆen tu˙’ carbon tu.o.ng u ´.ng v´o.i mˆo.t d¯ı˙’nh bˆa.c bˆo´n v`a mˆo.t nguyˆen tu˙’ hydrogen tu.o.ng u ´.ng v´o.i mˆo.t d¯ı˙’nh bˆa.c mˆo.t (d¯ı˙’nh treo) Tˆo˙’ng sˆo´ c´ac d¯ı˙’nh graph tu.o.ng u ´.ng nhu vˆa.y l`a: n = k + (2k + 2) = 3k + 2; v`a tˆo˙’ng sˆo´ c´ac ca.nh l`a: (tˆo˙’ng c´ac bˆa.c) = (4k + 2k + 2)/2 = 3k + Graph n`ay liˆen thˆong v`a c´o sˆo´ ca.nh ´ıt ho.n sˆo´ d¯ı˙’nh l`a nˆen n´o l`a mˆo.t cˆay Nhu vˆa.y vˆa´n d¯`ˆe `e b`ai to´an d¯ˆe´m c´ac cˆay (d˜ı nhiˆen d¯ˆe´m c´ac cˆa´u tr´ uc d¯`oˆng phˆan cu˙’a mˆo.t hydrocarbon d¯u.a vˆ ´ c´o c` ung c´ac t´ınh chˆa t x´ac d¯.inh) Cˆau ho˙’i d¯`ˆau tiˆen cu˙’a Cayley d¯aˇ t nhu sau: Sˆo´ c´ac cˆay kh´ac c´o thˆe˙’ xˆay du ng t` u n d¯ı˙’nh (hay nh˜an) kh´ac l`a bao nhiˆeu? Nˆe´u n = 4, th`ı ch´ ung ta c´o 16 cˆay (ta.i sao?) - ˆe˙’ tra˙’ l`o.i cˆau ho˙’i trˆen, ta x´et graph m`a mˆo˜i d¯ı˙’nh c´o mˆo.t tˆen hay nh˜an nhˆa´t (t´ D u.c l`a khˆong c´o hai d¯ı˙’nh mang c` ung mˆo.t nh˜an) d¯u o c go.i l`a graph d¯u o c g´an nh˜an (labeled graph) `an d¯`aˆu tiˆen d¯u.o c d¯u.a v`a ch´ `eu ch´ Kˆe´t qua˙’ sau lˆ u.ng u.ng minh bo˙’.i Cayley Sau d¯´o nhiˆ minh kh´ac c˜ ung d¯u.o c cˆong bˆo´ Ch´ u.ng minh sau d¯ˆay cu˙’a H Pr¨ ufer nˇam 1918 - i.nh l´ D y 6.4.1 (A Cayley) Sˆo´ c´ac cˆay d¯u.o c g´an nh˜an n d¯ı˙’nh (n ≥ 2) l` a nn−2 ; t´ u.c l`a sˆo´ n−2 c´ ac cˆay bao tr` um cu˙’ a graph d¯`ˆ ay d¯u˙’ Kn l`a n Ch´ ung minh Gia˙’ su˙’ V = {1, 2, , n} V´o.i mˆo˜i cˆay bao tr` um T cu˙’a d¯`oˆ thi Kn ta thiˆe´t lˆa.p tu o ng u ´ ng mˆo.t-mˆo.t v´o i vector a = (a1 , a2 , , an−2 ), d¯o´ c´ac sˆo´ nguyˆen thoa˙’ m˜an ≤ ≤ n, nhu sau: u tu V + K´ y hiˆe.u b1 l`a d¯ı˙’nh treo d¯`ˆau tiˆen (c´o chı˙’ sˆo´ nho˙’ nhˆa´t) tˆa.p d¯u.o c sˇa´p th´ `on ta.i mo.i cˆay c´o ´ıt nhˆa´t mˆo.t d¯ı˙’nh treo) cho e1 = (a1 , b1 ) l`a ca.nh treo cu˙’a T tu o ng u ´ ng (tˆ Loa.i ca.nh e1 v`a d¯ı˙’nh b1 kho˙’i cˆay T ta d¯u o c cˆay T1 m´o.i + K´ y hiˆe.u b2 l`a d¯ı˙’nh treo d¯`ˆau tiˆen (c´o chı˙’ sˆo´ nho˙’ nhˆa´t) tˆa.p d¯u.o c sˇa´p th´ u tu V `on ta.i mo.i cˆay c´o ´ıt nhˆa´t mˆo.t cho e2 = (a2 , b2 ) l`a ca.nh treo tu o ng u ´ ng cˆay T1 (tˆ d¯ı˙’nh treo) Loa.i ca.nh e2 v`a d¯ı˙’nh b2 kho˙’i cˆay T1 ta d¯u o.c cˆay T2 m´o.i `om d¯u ´ng + Lˇa.p la.i theo quy na.p cho d¯ˆe´n loa.i ca.nh en−2 = (an−2 , bn−2 ) ta d¯u.o c cˆay gˆ mˆo.t ca.nh en−1 = (an−1 , bn−1 ) nˆo´i hai d¯ı˙’nh c`on la.i Khi d¯o´ vector a = (a1 , a1 , , an−2 ) ∈ V n−2 d¯u.o c x´ac d¯.inh nhˆa´t bo˙’.i cˆay T v`a v´o.i hai cˆay kh´ac T v`a T , ta c´o tu.o.ng u ´.ng hai vector kh´ac Mˆo˜i d¯ı˙’nh xuˆa´t hiˆe.n `an vector a d(ai ) + lˆ Ngu.o c la.i, v´o.i mˆo˜i vector a ∈ V n−2 , ta c´o thˆe˙’ xˆay du ng mˆo.t cˆay T nhu sau: 205 `an + Lˆa´y d¯ı˙’nh d¯`aˆu tiˆen (c´o chı˙’ sˆo´ nho˙’ nhˆa´t) b1 ∈ V m`a khˆong xuˆa´t hiˆe.n th`anh phˆ `an tu˙’ d¯`ˆau tiˆen a1 vector a; d¯ˇa.t ca.nh e1 = (a1 , b1 ) Loa.i a1 kho˙’i cu˙’a vector a Lˆa´y phˆ vector a v`a d¯ı˙’nh b1 kho˙’i tˆa.p V + Tiˆe´p tu.c lˇa.p la.i theo thu˙’ tu.c trˆen v´o.i c´ac sˆo´ c`on la.i, cuˆo´i c` ung ta s˜e thu d¯u.o c cˆay T - i.nh l´ Nhˆa.n x´et rˇ`a ng #V = nn−2 D y d¯u.o c ch´ u.ng minh ✷ ´.ng cˆay bao tr` um H`ınh 6.11 V´ı du 6.4.1 X´ac d¯i.nh vector d¯oˆ d`ai nˇam tu.o.ng u v1 • v7 • • v2 v6 • • v3 • v5 • v4 H`ınh 6.11: Ch´ uy ´ rˇ`a ng v1 l`a d¯ı˙’nh treo v´o.i chı˙’ sˆo´ nho˙’ nhˆa´t v`a v2 liˆen thuˆo.c v´o.i v1 , d¯´o a1 = Xo´a ca.nh (v1 , v2 ) Graph c`on la.i c´o v2 l`a d¯ı˙’nh treo v´o.i chı˙’ sˆo´ nho˙’ nhˆa´t; d¯´o a2 = Xo´a ca.nh (v2 , v3 ) v`a lˇa.p la.i tiˆe´n tr`ınh trˆen ta c´o vector tu.o.ng u ´.ng cˆay l`a (2, 3, 4, 3, 6) um cu˙’a K7 tu.o.ng u V´ı du 6.4.2 T`ım cˆay bao tr` ´.ng vector (7, 2, 1, 2, 1) L`o.i gia˙’i cho H`ınh 6.12 Thˆa.t vˆa.y, bˇa´t d¯`aˆu v´o.i danh s´ach {1, 2, 3, 4, 5, 6, 7} Sˆo´ l`a sˆo´ nho˙’ nhˆa´t danh s´ach nhu.ng khˆong thuˆo.c vector a := (7, 2, 1, 2, 1) v`a l`a sˆo´ d¯`ˆau tiˆen vector a Bˇ`a ng c´ach nˆo´i, ta c´o ca.nh (v3 , v7 ) Loa.i bo˙’ kho˙’i danh s´ach v`a kho˙’i vector a ta c´o danh s´ach v`a vector a m´o.i tu.o.ng u ´.ng l`a {1, 2, 4, 5, 6, 7} v`a a = (2, 1, 2, 1) Sˆo´ l`a sˆo´ nho˙’ nhˆa´t danh s´ach nhu.ng khˆong thuˆo.c vector a v`a l`a sˆo´ d¯`aˆu tiˆen vector a Bˇ`a ng c´ach nˆo´i, ta c´o ca.nh (v4 , v2 ) Lˇa.p la.i thu˙’ tu.c trˆen cho d¯ˆe´n ta c´o ca.nh cuˆo´i c` ung (v1 , v7 ) V´ı du 6.4.3 C´o bao nhiˆeu c´ach d¯ˆe˙’ xˆay du ng ma.ng d¯iˆe.n v´o.i 12 n´ ut nˆo´i tˆa´t ca˙’ c´ac n´ ut su˙’ du.ng sˆo´ dˆay dˆa˜n ´ıt nhˆa´t c´o thˆe˙’ Ch´ ung ta xˆay du ng graph cu˙’a K12 nhu sau: mˆo˜i n´ ut tu.o.ng u ´.ng v´o.i mˆo.t d¯ı˙’nh v`a mˆo˜i dˆay dˆa˜n tu.o.ng u ´.ng c´ac ca.nh Graph T biˆe˙’u diˆ˜en ma.ng d¯iˆe.n v´o.i 12 n´ ut nˆo´i tˆa´t ca˙’ c´ac n´ ut su˙’ du.ng sˆo´ dˆay dˆa˜n ´ıt nhˆa´t pha˙’i l`a graph liˆen thˆong khˆong chu tr`ınh V`ı vˆa.y T l`a cˆay bao - i.nh l´ tr` um cu˙’a K12 Theo D y 6.4.1, c´o 1210 cˆay bao tr` um cu˙’a K12 Do d¯o´ c´o 1210 c´ach d¯ˆe˙’ xˆay du ng ma.ng d¯iˆe.n 206 v1 • v7 • • v2 v6 • • v3 • v5 • v4 H`ınh 6.12: - i.nh l´ y 6.4.1 khˆong cho ta ch´ınh x´ac sˆo´ c´ac chˆa´t d¯`oˆng phˆan cu˙’a Ck H2k+1 Nhˆ a.n x´ et 20 D -Dˆe˙’ ha.n chˆe´ vˆ `e bˆa.c cu˙’a c´ac d¯ı˙’nh, ta nhˆa.n x´et rˇ`a ng: (a) V`ı c´ac d¯ı˙’nh biˆe˙’u diˆ˜en hydrogen l`a c´ac d¯ı˙’nh treo, ch´ ung s˜e kˆe´t ho p v´o.i c´ac nguyˆen tu˙’ carbon theo c` ung mˆo.t c´ach v`a d¯´o khˆong d¯´ong g´op v`ao hiˆe.n tu.o ng d¯`oˆng phˆan V`ı vˆa.y ta `an quan tˆam d¯ˆe´n c´ac d¯ı˙’nh hydrogen khˆong cˆ `e cˆay c´o k d¯ı˙’nh, mˆo˜i d¯ı˙’nh biˆe˙’u diˆ˜en mˆo.t nguyˆen (b) Suy cˆay biˆe˙’u diˆ˜en Ck H2k+1 d¯u.a vˆ ˙ ’ tu carbon V´o i cˆay n`ay ta khˆong phˆan biˆe.t c´ac d¯ı˙’nh, v`a d¯´o n´o l`a cˆay khˆong d¯u.o c g´an nh˜an Vˆa.y v´o.i butane C4 H10 chı˙’ c´o hai cˆay kh´ac (h˜ay v˜e ch´ ung) (Trong ho´a ho.c, ta biˆe´t ` rˇa ng c´o ch´ınh x´ac hai loa.i buttane kh´ac l`a: n-buttan v`a isobuttane) Viˆe.c phˆan biˆe.t gi˜ u.a graph d¯u.o c g´an nh˜an v`a graph khˆong d¯u.o c g´an nh˜an l`a rˆa´t quan tro.ng b`ai to´an d¯ˆe´m sˆo´ c´ac graph kh´ac B`ai to´an liˆe.t kˆe c´ac cˆay khˆong d¯u.o c g´an nh˜an liˆen quan d¯ˆe´n mˆo.t sˆo´ kh´ai niˆe.m kh´ac v`a vu.o t pha.m vi cu˙’a gi´ao tr`ınh, ba.n d¯o.c quan tˆam c´o thˆe˙’ xem t`ai liˆe.u dˆa˜n [6] B` tˆ a.p V˜e tˆa´t ca˙’ c´ac cˆay d¯u.o c g´an nh˜an n d¯ı˙’nh v´o.i n = 1, 2, 3, v`a V˜e tˆa´t ca˙’ c´ac cˆay khˆong d¯u.o c g´an nh˜an n d¯ı˙’nh v´o.i n = 1, 2, 3, v`a V˜e tˆa´t ca˙’ c´ac cˆay c´o gˆo´c khˆong d¯u.o c g´an nh˜an n d¯ı˙’nh v´o.i n = 1, 2, 3, v`a Ch´ u.ng minh chı˙’ c´o s´au cˆay kh´ac (khˆong d¯ˇa˙’ng cˆa´u), mˆo˜i cˆay c´o s´au d¯ı˙’nh V˜e c´ac cˆay n`ay (a) V˜e hai cˆay butane C4 H10 kh´ac (b) C´o bao nhiˆeu chˆa´t d¯`ˆong phˆan cu˙’a hydrocarbon ba˙’o ho`a C6 H14 ? Ch´ u.ng minh rˇ`a ng sˆo´ c´ac cˆay c´o gˆo´c d¯u.o c g´an nh˜an n d¯ı˙’nh kh´ac l`a nn−1 V˜e tˆa´t ca˙’ c´ac cˆay c´o gˆo´c d¯u.o c g´an nh˜an tru.`o.ng ho p n = 1, v`a 207 - inh l´ V´o.i mˆo˜i cˆay sau, x´ac d¯i.nh c´ac vector ch´ u.ng minh cu˙’a D y Caylay v1 v1 • .• v7 • • v2 v7 • • v2 v6 • • v3 v6 • • v3 • v5 • v4 • v5 • v4 - inh l´ um cu˙’a K7 ch´ u.ng minh cu˙’a D y V´o.i mˆo˜i vector sau, x´ac d¯i.nh c´ac cˆay bao tr` Caylay: (a) (7, 2, 4, 4, 1) (b) (2, 2, 2, 4, 6) 6.5 Cˆ ay nhi phˆ an “Cˆay nhi phˆan” (binary tree) l`a mˆo.t nh˜ u.ng l´o.p quan tro.ng nhˆa´t cu˙’a cˆay c´o gˆo´c Mˆo˜i `eu nhˆa´t hai (xem H`ınh 6.13) Ho.n n˜ d¯ı˙’nh cˆay nhi phˆan c´o nhiˆ u.a, mˆo˜i d¯ı˙’nh d¯u o c k´ y hiˆe.u hoˇa.c l`a “con tr´ai” hoˇa.c l`a “con pha˙’i” Khi v˜e cˆay nhi phˆan, d¯ı˙’nh tr´ai d¯u o c v˜e bˆen tr´ai v`a d¯ı˙’nh pha˙’i d¯u.o c v˜e bˆen pha˙’i a • b• • d •c e • • f • g H`ınh 6.13: - i.nh ngh˜ıa 6.5.1 Cˆay nhi phˆan l`a mˆo.t cˆay c´o gˆo´c d¯o´ mˆo˜i d¯ı˙’nh hoˇa.c khˆong c´o con, D hoˇa.c c´o mˆo.t con, hoˇa.c c´o hai Nˆe´u d¯ı˙’nh c´o mˆo.t con, th`ı n`ay d¯u.o c xem l`a tr´ai hoˇa.c pha˙’i; nˆe´u mˆo.t d¯ı˙’nh c´o hai con, th`ı mˆo.t bˆen tr´ai v`a mˆo.t bˆen pha˙’i V´ı du 6.5.1 Trong cˆay nhi phˆan H`ınh 6.13, d¯ı˙’nh b l`a tr´ai cu˙’a a v`a d¯ı˙’nh c l`a pha˙’i - ı˙’nh d l`a pha˙’i cu˙’a b; d¯ı˙’nh b khˆong c´o tr´ai D - ı˙’nh e l`a tr´ai cu˙’a c; d¯ı˙’nh c cu˙’a a D khˆong c´o pha˙’i 208 V´ı du 6.5.2 Mˆo.t cˆay x´ac d¯i.nh bo˙’.i m˜a Huffman l`a cˆay nhi phˆan Chˇa˙’ng ha.n, v´o.i cˆay Huffman H`ınh 6.3, di chuyˆe˙’n t` u mˆo.t d¯ı˙’nh d¯ˆe´n d¯ı˙’nh bˆen tr´ai tu.o.ng u ´.ng su˙’ du.ng bit v`a di chuyˆe˙’n t` u mˆo.t d¯ı˙’nh d¯ˆe´n d¯ı˙’nh bˆen pha˙’i tu.o.ng u ´.ng su˙’ du.ng bit Cˆay nhi phˆan d¯`ˆay d¯u˙’ l`a cˆay nhi phˆan m`a mˆo˜i d¯ı˙’nh hoˇa.c c´o hai hoˇa.c khˆong c´o - i.nh l´ D y 6.5.2 Nˆe´u T l`a cˆay nhi phˆ an d¯`ˆ ay d¯u˙’ v´o.i i d¯ı˙’nh th`ı T c´o i + d¯ı˙’nh treo v`a c´ o tˆa´t ca˙’ 2i + d¯ı˙’nh `om nh˜ u.ng d¯ı˙’nh l`a c´ac d¯ı˙’nh (mˆo.t v`ai d¯ı˙’nh l`a cha) Ch´ u.ng minh Tˆa.p c´ac d¯ı˙’nh cu˙’a T gˆ `on ta.i nhˆa´t mˆo.t d¯ı˙’nh khˆong pha˙’i l`a con-d¯ı˙’nh v`a nh˜ u.ng d¯ı˙’nh khˆong pha˙’i l`a d¯ı˙’nh Tˆ ˜ `on ta.i 2i d¯ı˙’nh Vˆa.y sˆo´ c´ac d¯ı˙’nh gˆo´c Do c´o i d¯ı˙’nh v`a mˆoi d¯ı˙’nh c´o hai nˆen tˆ cu˙’a T l`a 2i + v`a sˆo´ c´ac d¯ı˙’nh treo bˇ`a ng (2i + 1) − i = i + ✷ - inh l´ D y 6.5.3 Nˆe´u T l`a cˆay nhi phˆan c´o d¯ˆ o cao h v`a t d¯ı˙’nh treo th`ı log t ≤ h (6.1) Ch´ u.ng minh Ta s˜e ch´ u.ng minh quy na.p theo h bˆa´t d¯ˇa˙’ng th´ u.c tu.o.ng d¯u.o.ng: t ≤ 2h (6.2) `om mˆo.t d¯ı˙’nh; suy t = Do d¯´o (6.2) d¯u Nˆe´u h = th`ı cˆay T gˆ ´ng ´ng v´o.i mo.i cˆay nhi phˆan c´o d¯oˆ cao nho˙’ ho.n h Gia˙’ su˙’ T l`a cˆay nhi Gia˙’ su˙’ khˇa˙’ng d¯i.nh d¯u phˆan c´o d¯ˆo cao h > v´o.i t d¯ı˙’nh treo X´et tru.`o.ng ho p d¯ı˙’nh gˆo´c cu˙’a T chı˙’ c´o mˆo.t Nˆe´u ta khu˙’ gˆo´c v`a ca.nh liˆen thuˆo.c v´o.i gˆo´c th`ı ta d¯u.o c cˆay nhi phˆan c´o d¯ˆo cao h − v`a c` ung sˆo´ h−1 h < v`a vˆa.y (6.2) d¯u ´ng d¯ı˙’nh treo nhu T Theo quy na.p, t ≤ Bˆay gi`o gia˙’ su˙’ gˆo´c cu˙’a T c´o hai l`a v1 v`a v2 K´ y hiˆe.u Ti , i = 1, 2, l`a cˆay v´o.i gˆo´c ta.i vi v`a gia˙’ su˙’ Ti c´o d¯oˆ cao hi v`a ti d¯ı˙’nh treo Theo gia˙’ thiˆe´t quy na.p ti ≤ 2hi , i = 1, (6.3) `om c´ac n´ Nhˆa.n x´et rˇ`a ng c´ac d¯ı˙’nh treo cu˙’a T gˆ ut l´a cu˙’a T1 v`a T2 Do d¯o´ t = t1 + t2 T` u (6.3) v`a (6.4) ta c´o t = t1 + t2 ≤ 2h1 + 2h2 ≤ 2h−1 + 2h−1 = 2h ✷ 209 (6.4) • • • • • • • • • • • • • • H`ınh 6.14: V´ı du 6.5.3 Cˆay nhi phˆan H`ınh 6.14 c´o d¯ˆo cao h = v`a sˆo´ c´ac n´ ut l´a l`a t = Trong ˙ ’ tru `o ng ho p n`ay, (6.1) tro˙’ th`anh d¯ˇang th´ u c `an tu˙’ cu˙’a n´o d¯u.o c sˇa´p th´ Gia˙’ su˙’ ta c´o mˆo.t tˆa.p S m`a c´ac phˆ u tu Chˇa˙’ng ha.n, nˆe´u S ⊂ R v´o i th´ u tu thˆong thu `o ng; nˆe´u S l`a c´ac chuˆo˜i k´ y tu , ta c´o thˆe˙’ su˙’ du.ng th´ u tu t` u d¯iˆe˙’n Cˆay `eu tin ho.c nhˇ`a m lu.u tr˜ `an tu˙’ cu˙’a mˆo.t tˆa.p d¯u.o c nhi phˆan d¯u.o c su˙’ du.ng rˆa´t nhiˆ u c´ac phˆ sˇa´p th´ u tu Gia˙’ su˙’ ta.i mˆo˜i d¯ı˙’nh v ta lu.u tr˜ u d˜ u liˆe.u d(v) Khi d¯´o nˆe´u v l`a tr´ai (hoˇa.c pha˙’i) cu˙’a w th`ı s˜e c´o mˆo.t mˆo´i quan hˆe th´ u tu gi˜ u.a d(v) v`a d(w) - i.nh ngh˜ıa 6.5.4 Cˆay t`ım kiˆe´m nhi phˆan (binary seach tree) l`a mˆo.t cˆay nhi phˆan D d¯´o d˜ u liˆe.u liˆen kˆe´t v´o.i mˆo˜i d¯ı˙’nh D˜ u liˆe.u d¯u.o c sˇa´p xˆe´p cho v´o.i mˆo˜i d¯ı˙’nh v d˜ u liˆe.u cˆay bˆen tr´ai cu˙’a v nho˙’ ho n d˜ u liˆe.u v; v`a mˆo˜i d˜ u liˆe.u cˆay bˆen pha˙’i cu˙’a v l´o n ho n d˜ u liˆe.u v V´ı du 6.5.4 Chuˆo˜i S OLD PROGRAMMERS NEVER DIE THEY JUST LOSE THEIR MEMORIES c´o thˆe˙’ d¯aˇ t mˆo.t cˆay t`ım kiˆe´m nhi phˆan nhu H`ınh 6.15 `eu c´ach d¯ˇa.t d˜ N´oi chung, c´o nhiˆ u liˆe.u v`ao cˆay t`ım kiˆe´m nhi phˆan H`ınh 6.16 minh ho.a cˆay nhi phˆan kh´ac lu u tr˜ u c´ac t` u chuˆo˜i S Du.´o.i d¯aˆy l`a thuˆa.t to´an xˆay du ng cˆay t`ım kiˆe´m nhi phˆan 6.5.1 Thuˆ a.t to´ an xˆ ay du ng cˆ ay t`ım kiˆ e´m nhi phˆ an Nhˆa.p: D˜ay c´ac t` u phˆan biˆe.t: S Xuˆa´t: Cˆay t`ım kiˆe´m nhi phˆan T 210 OLD NEVER PROGRAMMERS DIE JUST THEY LOSE THEIR MEMORIES H`ınh 6.15: u d¯`aˆu tiˆen d˜ay S Nˆe´u S = ∅, d¯ˇa.t T l`a cˆay Bu.´o.c [Xˆay du ng n´ ut gˆo´c] Gia˙’ su˙’ w l`a t` khˆong d¯ı˙’nh v`a ca.nh v`a d` u ng; ngu o c la.i, thiˆe´t lˆa.p T l`a cˆay c´o d¯u ´ng mˆo.t d¯ı˙’nh (l`a gˆo´c) v`a lu u tr˜ u w gˆo´c `on ta.i, d` y tu kˆe´ tiˆe´p S Nˆe´u khˆong tˆ Bu.´o.c [Lˆa´y k´ y tu tiˆe´p] Gia˙’ su˙’ w l`a k´ u.ng Bu.´o.c [Bˇa´t d¯`ˆau t`ım kiˆe´m d¯ˆe˙’ lu.u tr˜ u vi tr´ı] Gia˙’ su˙’ v l`a gˆo´c cu˙’a T Bu.´o.c [Kˆe´t th´ uc?] Nˆe´u w nho˙’ ho.n t` u v v`a v khˆong c´o cˆay bˆen tr´ai th`ı thˆem d¯ı˙’nh bˆen tr´ai v`ao v v`a lu.u w v`ao cˆay tr´ai sau d¯o´ chuyˆe˙’n sang Bu.´o.c Nˆe´u w l´o.n ho.n t` u v v`a v khˆong c´o cˆay bˆen pha˙’i, thˆem d¯ı˙’nh bˆen pha˙’i v`ao v v`a lu u w v`ao sau d¯o´ chuyˆe˙’n sang Bu.´o.c Bu.´o.c [Tiˆe´p tu.c t`ım] Nˆe´u w nho˙’ ho.n t` u v d¯aˇ t v l`a bˆen tr´ai cu˙’a v v`a chuyˆe˙’n sang Bu ´o c Nˆe´u w l´o n ho n t` u v d¯ˇa.t v l`a bˆen pha˙’i cu˙’a v v`a chuyˆe˙’n sang Bu ´o c u liˆe.u T´ Cˆay t`ım kiˆe´m nhi phˆan rˆa´t tiˆe.n lo i viˆe.c t`ım kiˆe´m d˜ u.c l`a nˆe´u cho d˜ u liˆe.u - ˆe˙’ x´ac d¯.inh D ta c´o thˆe˙’ x´ac d¯.inh vi tr´ı cu˙’a n´o D cˆay t`ım kiˆe´m nhi phˆan (nˆe´u c´o) D ung ta bˇa´t d¯`ˆau t` u gˆo´c Sau d¯o´ ta lˇa.p la.i tiˆe´n d˜ u liˆe.u D cˆay t`ım kiˆe´m nhi phˆan, ch´ u liˆe.u ta.i n´ ut hiˆe.n h`anh Nˆe´u D bˇ`a ng d˜ u liˆe.u ta.i n´ ut hiˆe.n h`anh, t´ u.c tr`ınh so s´anh D v´o i d˜ d¯˜a t`ım thˆa´y D v`a thuˆa.t to´an d` u.ng Nˆe´u D nho˙’ ho.n (tu.o.ng u ´.ng, l´o.n ho.n) d˜ u liˆe.u ta.i n´ ut ´ ng, bˆen pha˙’i) cu˙’a v v`a lˇa.p la.i qu´a hiˆe.n h`anh v ta di chuyˆe˙’n xuˆo´ng n´ ut bˆen tr´ai (tu o ng u u.a th`ı kˆe´t luˆa.n D khˆong tr`ınh n`ay Ta.i th`o.i d¯iˆe˙’m n`ao d¯o´, ta khˆong thˆe˙’ di chuyˆe˙’n d¯u.o c n˜ c´o cˆay 211 NEVER JUST PROGRAMMERS DIE OLD LOSE THEIR MEMORIES THEY H`ınh 6.16: Th`o.i gian t`ım kiˆe´m d˜ u liˆe.u cˆay t`ım kiˆe´m nhi phˆan l`a tˆo´i d¯a d˜ u liˆe.u khˆong nˇ`a m `en d`ai nhˆa´t t` cˆay v`a theo d¯o´ ta c´o dˆay chuyˆ u n´ ut gˆo´c Do d¯o´ th`o.i gian tˆo´i d¯a d¯ˆe˙’ t`ım `eu cao cu˙’a cˆay Hˆe qua˙’ l`a d¯oˆ cao cu˙’a cˆay t`ım kiˆe´m nhi phˆan c`ang nho˙’ th`ı kiˆe´m tı˙’ lˆe v´o i chiˆ `eu c´ach d¯ˆe˙’ cu c tiˆe˙’u ho´a d¯ˆo cao cu˙’a cˆay (xem [9]) th`o i gian t`ım kiˆe´m c`ang ´ıt C´o nhiˆ - ˆe˙’ phˆan t´ıch tru.`o.ng ho p xˆa´u nhˆa´t cˆay t`ım kiˆe´m nhi phˆan T (c´o n d¯ı˙’nh, t d¯ı˙’nh D treo v`a d¯oˆ cao h) ta go.i T ∗ l`a cˆay nhi phˆan d¯`aˆy d¯u˙’ nhˆa.n d¯u.o c t` u T bˇ`a ng c´ach thˆem c´ac `an) Chˇa˙’ng ha.n, H`ınh 6.17 l`a cˆay nhi phˆan d¯`aˆy d¯u˙’ t` n´ ut bˆen tr´ai v`a bˆen pha˙’i (nˆe´u cˆ u cˆay T H`ınh 6.15 C´ac d¯ı˙’nh thˆem v`ao d¯u o c d¯´anh dˆa´u ∗ Viˆe.c t`ım kiˆe´m khˆong th`anh - i.nh l´ cˆong T tu.o.ng u ´.ng d¯ˆe´n c´ac d¯ı˙’nh d¯a´nh dˆa´u ∗ T ∗ Theo D y 6.5.3, log t ≤ h ∗ ` ˙ ’ ˙ ’ Nhu ng theo c´ach xˆay du ng, cˆay nhi phˆan d¯aˆy d¯u T c´o n d¯ınh v`a t d¯ı˙’nh treo, nˆen - i.nh l´ theo D y 6.5.2, t = n + Do d¯o´ tru.`o.ng ho p xˆa´u nhˆa´t th`o.i gian t`ım kiˆe´m ´ıt nhˆa´t l`a log t = log(n + 1) B`ai tˆa.p chı˙’ rˇ`a ng nˆe´u d¯ˆo cao cu˙’a T tˆo´i thiˆe˙’u th`ı tru.`o.ng ho p xˆa´u nhˆa´t th`o.i gian t`ım kiˆe´m bˇ`a ng [log(n + 1)] B` tˆ a.p - ˇa.t c´ac t` D u FOUR SCORE AND SEVEN YEARS AGO OUR FOREFATHERS BROUGHT ung v`ao cˆay t`ım kiˆe´m nhi phˆan FORTH theo th´ u tu xuˆa´t hiˆe.n cu˙’a ch´ Viˆe´t thuˆa.t to´an t`ım kiˆe´m trˆen cˆay t`ım kiˆe´m nhi phˆan Viˆe´t thuˆa.t to´an lu.u tr˜ u n t` u kh´ac v`ao cˆay t`ım kiˆe´m nhi phˆan T v´o.i tro.ng lu.o ng tˆo´i thiˆe˙’u Ch´ u ng minh rˇa` ng cˆay d¯`aˆy d¯u˙’ T ∗ nhˆa.n d¯u.o c t` u cˆay T bˇ`a ng c´ach thˆem c´ac `an thiˆe´t) c´o tro.ng lu.o ng [log(n + 1)] n´ ut bˆen tr´ai v`a bˆen pha˙’i (nˆe´u cˆ Khˇa˙’ng d¯.inh sau d¯u ´ng hay sai: Gia˙’ su˙’ T l`a cˆay nhi phˆan V´o.i mˆo˜i d¯ı˙’nh v T, 212 • ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ H`ınh 6.17: ´.ng, nho˙’ ho.n) d˜ u liˆe.u tr´ai (tu.o.ng u ´.ng, d˜ u liˆe.u v l´o.n ho.n (tu.o.ng u pha˙’i) cu˙’a v th`ı T l`a cˆay t`ım kiˆe´m nhi phˆan Gia˙’i th´ıch `on ta.i) tu.o.ng u V˜e c´ac graph (nˆe´u tˆ ´.ng v´o.i nh˜ u.ng t´ınh chˆa´t d¯a˜ nˆeu: (a) Cˆay nhi phˆan d¯`aˆy d¯u˙’ c´o bˆo´n d¯ı˙’nh v`a nˇam d¯ı˙’nh treo (b) Cˆay nhi phˆan d¯`aˆy d¯u˙’ c´o d¯ˆo cao v`a ch´ın d¯ı˙’nh treo (c) Cˆay nhi phˆan d¯`aˆy d¯u˙’ c´o d¯ˆo cao v`a ch´ın d¯ı˙’nh treo Cˆay m-phˆan d¯`ˆay d¯u˙’ l`a cˆay c´o gˆo´c cho mˆo˜i d¯ı˙’nh c´o m d¯ı˙’nh c´o th´ u tu Cˆay m-phˆan d¯`ˆay d¯u˙’ T v´o.i i d¯ı˙’nh th`ı c´o bao nhiˆeu d¯ı˙’nh? C´o bao nhiˆeu d¯ı˙’nh treo? Gia˙’i th´ıch T`ım thuˆa.t to´an xˆay du ng cˆay nhi phˆan d¯`ˆay d¯u˙’ v´o.i n > d¯ı˙’nh treo Viˆe´t thuˆa.t to´an d¯ˆe quy xˆay du ng cˆay t`ım kiˆe´m nhi phˆan T`ım d¯oˆ cao cu c d¯a.i cu˙’a cˆay nhi phˆan d¯`aˆy d¯u˙’ c´o t d¯ı˙’nh treo 10 Viˆe´t thuˆa.t to´an kiˆe˙’m tra mˆo.t cˆay nhi phˆan v´o.i c´ac d˜ u liˆe.u d¯u.o c lu.u tr˜ u ta.i mˆo˜i d¯ı˙’nh l`a cˆay t`ım kiˆe´m nhi phˆan `en d¯o.n gia˙’n 11 Gia˙’ su˙’ T l`a cˆay nhi phˆan d¯`ˆay d¯u˙’; I l`a tˆo˙’ng c´ac d¯ˆo d`ai cu˙’a c´ac dˆay chuyˆ `en d¯o.n gia˙’n t` t` u gˆo´c d¯ˆe´n c´ac d¯ı˙’nh v`a E l`a tˆo˙’ng c´ac d¯oˆ d`ai cu˙’a c´ac dˆay chuyˆ u gˆo´c d¯ˆe´n c´ac d¯ı˙’nh treo Ch´ u.ng minh rˇ`a ng nˆe´u T c´o n d¯ı˙’nh th`ı E = I + 2n 12 Cˆay nhi phˆan T go.i l`a cˆan bˇ`a ng nˆe´u v´o.i mˆo˜i d¯ı˙’nh v, d¯ˆo cao cu˙’a c´ac cˆay bˆen tr´ai - ˆo cao cˆay rˆo˜ng d¯i.nh ngh˜ıa l`a −1) K´ `eu nhˆa´t l`a (D v`a bˆen pha˙’i sai kh´ac nhiˆ y hiˆe.u Nh l`a sˆo´ tˆo´i thiˆe˙’u c´ac d¯ı˙’nh cˆay nhi phˆan cˆan bˇa` ng v´o i d¯oˆ cao h v`a f1 , f2 , l`a d˜ay Fibonacci (a) Ch´ u.ng minh rˇ`a ng N = 1, N = 2, v`a N = 213 (b) Ch´ u.ng minh rˇ`a ng Nh = + Nh−1 + Nh−2 v´o.i mo.i h ≥ (c) Ch´ u.ng minh rˇ`a ng Nh = fh+2 − v´o.i mo.i h ≥ - iˆ `eu 13 Ch´ u.ng minh rˇ`a ng d¯oˆ cao h cu˙’a cˆay nhi phˆan cˆan bˇa` ng thoa˙’ m˜an h = O(log 2) D n`ay chı˙’ rˇ`a ng tru `o ng ho p xˆa´u nhˆa´t, th`o i gian t`ım kiˆe´m cˆay nhi phˆan cˆan bˇ`a ng n d¯ı˙’nh l`a O(log 2) 14 Ch´ u.ng minh rˇa` ng nˆe´u cˆay nhi phˆan cˆan bˇa` ng d¯oˆ cao h c´o n ≥ d¯ı˙’nh th`ı log n < h + 214 T` liˆ e.u tham kha˙’o [1] C Berge, L´y thuyˆe´t d¯`ˆ o thi v` au ´.ng du.ng, NXB Khoa ho.c v`a k˜ y thuˆa.t H`a Nˆo.i, 1971 [2] A Cayley, Collected papers, Quart Jl of Mathematics, 13 Cambridge, 26 (1897) [3] N Biggs, Discrete mathematic, Clarendon Press Oxford, 1989 [4] Dijkstra, E W., A note on two problems in connection with graphs, Numerische Mathematik, 1, 269 (1959) [5] P J Cameron, Combinatorics: topics, techniques, algorithms, Cambridge University Press, 1994 [6] N Deo, Graph theory with applications to engineering and computer science, PrenticeHall Inc., 1974 [7] R J MC Eliece, M Kac, The theory of information and coding, Addison-Wesley, 1977 [8] C M Goldie, R G E Pinch, Communication theory, Cambridge University Press, 1991 [9] R W Hamming, Coding and information theory, Prentice Hall, 1980 [10] R Hill, A first course in coding theory, Clarendon Press Oxford, 1985 [11] R Johnsonbaugh, An introduction to discrete mathematic, Macmillan Publishing Company, 1992 [12] A R Kenneth, C R.B Wright, Discrete mathematics, Prentice-Hall International Editions, 1978 [13] Kirchhoff G., in “Annalen der Physik and Chemie” 72, 497 (1847) [14] S Lipschutz, Essential computer mathematic, McGraw-Hill, 1992 [15] S Lipschutz, M L Lipson,2000 sloved problems in discrete mathematics, McGraw-Hill, 1992 [16] C L Liu, Introduction to combinationnal mathematic, McGraw-Hill, 1985 215 [17] F J MacWilliams, N J A Soane, The theory of error-correcting codes, North-Holland, 1981 [18] A A Michael, A J Kfoury, R N Moll, D Gries, A basis for theoretical computer science, Springer-Verlag NewYork Inc., 1981 [19] J G Michaels, K H Rosen, Applications of discrete mathematics, McGraw-Hill, 1991 [20] Prim R C., Shortest connection networks and some generalizations, Bell Syst Tech Jl., 36, 1389 (1957) [21] S Roman, An introduction to discrete mathematic, Saunders College, 1982 [22] K H Rosen, Discrete mathematics and its applications, McGraw-Hill, 1995 [23] B M Stephen, A Ralston, Discrete algorithmic mathematics, Addision-Wesley Publishing Company, 1991 [24] D Welsh, Codes and cryptography, Clarendon Press Oxford, 1987 216