Các bài toán về đường đi

24 456 0
Các bài toán về đường đi

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

http://www.ebook.edu.vn Chu . o . ng 3 C´ac b`ai to´an vˆe ` d¯u . `o . ng d¯i Trong c´ac ´u . ng du . ng thu . . c tˆe ´ , ta cˆa ` n t`ım d¯u . `o . ng d¯i (nˆe ´ u c´o) gi˜u . a hai d¯ı ˙’ nh cu ˙’ a d¯ˆo ` thi . . D - ˇa . c biˆe . t, b`ai to´an t`ım d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t gi˜u . a hai d¯ı ˙’ nh cu ˙’ a mˆo . t d¯ˆo ` thi . c´o ´y ngh˜ıa to l´o . n. C´o thˆe ˙’ dˆa ˜ n vˆe ` b`ai to´an nhu . vˆa . y t`u . nhiˆe ` u b`ai to´an thu . . c tˆe ´ . V´ı du . , b`ai to´an t`ım h`anh tr`ınh tiˆe ´ t kiˆe . m nhˆa ´ t (theo tiˆeu chuˆa ˙’ n khoa ˙’ ng c´ach, th`o . i gian hoˇa . c chi ph´ı) trˆen mˆo . t ba ˙’ n d¯ˆo ` giao thˆong; b`ai to´an cho . n phu . o . ng ph´ap tiˆe ´ t kiˆe . m nhˆa ´ t d¯ˆe ˙’ d¯u . a mˆo . t hˆe . d¯ˆo . ng lu . . c t`u . tra . ng th´ai n`ay sang tra . ng th´ai kh´ac v.v . Hiˆe . n nay c´o rˆa ´ t nhiˆe ` u phu . o . ng ph´ap du . . a trˆen l´y thuyˆe ´ t d¯ˆo ` thi . to ˙’ ra l`a c´ac phu . o . ng ph´ap c´o hiˆe . u qua ˙’ nhˆa ´ t. Chu . o . ng n`ay tr`ınh b`ay c´ac thuˆa . t to´an t`ım d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t trˆen d¯ˆo ` thi . c´o tro . ng sˆo ´ . 3.1 D - u . `o . ng d¯i gi˜u . a hai d¯ı ˙’ nh 3.1.1 D - u . `o . ng d¯i gi˜u . a hai d¯ı ˙’ nh Trong nhiˆe ` u tru . `o . ng ho . . p, ch´ung ta cˆa ` n tra ˙’ l`o . i cˆau ho ˙’ i: Tˆo ` n ta . i d¯u . `o . ng d¯i µ t`u . d¯ı ˙’ nh s d¯ˆe ´ n d¯ı ˙’ nh t cu ˙’ a d¯ˆo ` thi . c´o hu . ´o . ng G := (V, E)? Nˆe ´ u c´o, h˜ay chı ˙’ ra c´ach d¯i cu ˙’ a d¯u . `o . ng d¯i µ. L`o . i gia ˙’ i cu ˙’ a b`ai to´an n`ay kh´a d¯o . n gia ˙’ n: ch´ung ta chı ˙’ cˆa ` n ´ap du . ng thuˆa . t to´an t`ım kiˆe ´ m theo chiˆe ` u rˆo . ng (hoˇa . c chiˆe ` u sˆau) trˆen d¯ˆo ` thi . c´o hu . ´o . ng G nhu . sau. G´an mˆo ˜ i d¯ı ˙’ nh cu ˙’ a G mˆo . t chı ˙’ sˆo ´ . Bˇa ` ng phu . o . ng ph´ap lˇa . p, dˆa ` n dˆa ` n ta s˜e cho mˆo ˜ i d¯ı ˙’ nh v mˆo . t chı ˙’ sˆo ´ n`ao d¯´o bˇa ` ng d¯ˆo . d`ai d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t (sˆo ´ cung ´ıt nhˆa ´ t) t`u . s t´o . i v. D - ´anh dˆa ´ u d¯ı ˙’ nh s bˇa ` ng chı ˙’ sˆo ´ 0. Nˆe ´ u c´ac d¯ı ˙’ nh d¯u . o . . c d¯´anh dˆa ´ u bˇa ` ng chı ˙’ sˆo ´ m lˆa . p th`anh mˆo . t tˆa . p ho . . p P (m) d¯˜a biˆe ´ t, th`ı ta d¯´anh dˆa ´ u chı ˙’ sˆo ´ (m + 1) cho mo . i d¯ı ˙’ nh cu ˙’ a tˆa . p ho . . p: P (m + 1) := {v j chu . a d¯u . o . . c d¯´anh dˆa ´ u | tˆo ` n ta . i v i ∈ P (m) v´o . i (v i , v j ) ∈ E}. 75 http://www.ebook.edu.vn Thuˆa . t to´an d`u . ng khi khˆong thˆe ˙’ d¯´anh dˆa ´ u d¯u . o . . c n˜u . a. C´o hai tru . `o . ng ho . . p xa ˙’ y ra: 1. D - ı ˙’ nh t d¯u . o . . c d¯´anh dˆa ´ u, chˇa ˙’ ng ha . n t ∈ P (m) v´o . i m n`ao d¯´o, th`ı ta x´et c´ac d¯ı ˙’ nh v 1 , v 2 , ., sao cho v 1 ∈ P (m − 1), v 2 ∈ P (m − 2), . . . , v m ∈ P (0). Khi d¯´o µ := {s = v m , v m−1 , ., v 1 , t} l`a d¯u . `o . ng d¯i pha ˙’ i t`ım. 2. D - ı ˙’ nh t khˆong d¯u . o . . c d¯´anh dˆa ´ u. Trong tru . `o . ng ho . . p n`ay, ta kˆe ´ t luˆa . n khˆong tˆo ` n ta . i d¯u . `o . ng d¯i t`u . s d¯ˆe ´ n t. Theo c´ach xˆay du . . ng cu ˙’ a thuˆa . t to´an, dˆe ˜ d`ang ch´u . ng minh rˇa ` ng Mˆe . nh d¯ˆe ` 3.1.1 Nˆe ´ u d¯ˆo ` thi . d¯u . o . . c x´ac d¯i . nh bo . ˙’ i d˜ay liˆen tiˆe ´ p c´ac d¯ı ˙’ nh, th`ı thuˆa . t to´an c´o th`o . i gian O(m). 3.1.2 D - ˆo ` thi . liˆen thˆong ma . nh Nhˇa ´ c la . i l`a d¯ˆo ` thi . c´o hu . ´o . ng G go . i l`a liˆen thˆong ma . nh nˆe ´ u hai d¯ı ˙’ nh s v`a t t`uy ´y cu ˙’ a G luˆon luˆon tˆo ` n ta . i mˆo . t d¯u . `o . ng d¯i t`u . s d¯ˆe ´ n t. Hiˆe ˙’ n nhiˆen rˇa ` ng D - i . nh l´y 3.1.2 Cho G = (V, E) l`a d¯ˆo ` thi . c´o hu . ´o . ng, v`a v ∈ V. Khi d¯´o G liˆen thˆong ma . nh nˆe ´ u v`a chı ˙’ nˆe ´ u mo . i cˇa . p d¯ı ˙’ nh a, b ∈ V, tˆo ` n ta . i mˆo . t d¯u . `o . ng d¯i t`u . a d¯ˆe ´ n v v`a mˆo . t d¯u . `o . ng d¯i t`u . v d¯ˆe ´ n b. Du . . a trˆen thuˆa . t to´an t`ım kiˆe ´ m theo chiˆe ` u sˆau, ta c´o thˆe ˙’ mˆo ta ˙’ c´ach x´ac d¯i . nh mˆo . t d¯ˆo ` thi . c´o hu . ´o . ng c´o liˆen thˆong ma . nh hay khˆong thˆong qua d¯i . nh l´y sau: D - i . nh l´y 3.1.3 Cho G = (V, E) l`a d¯ˆo ` thi . c´o hu . ´o . ng, v`a v ∈ V. K´y hiˆe . u G  := (V, E  ) l`a d¯ˆo ` thi . c´o hu . ´o . ng nhˆa . n d¯u . o . . c t`u . G bˇa ` ng c´ach d¯a ˙’ o hu . ´o . ng mˆo ˜ i cung trong E. Khi d¯´o G l`a liˆen thˆong ma . nh nˆe ´ u v`a chı ˙’ nˆe ´ u thuˆa . t to´an t`ım kiˆe ´ m theo chiˆe ` u sˆau trˆen d¯ˆo ` thi . c´o hu . ´o . ng G, kho . ˙’ i d¯ˆa ` u t`u . v, d¯a . t d¯u . o . . c mo . i d¯ı ˙’ nh cu ˙’ a G v`a thuˆa . t to´an t`ım kiˆe ´ m theo chiˆe ` u sˆau trˆen d¯ˆo ` thi . c´o hu . ´o . ng G  , kho . ˙’ i d¯ˆa ` u t`u . v, d¯a . t d¯u . o . . c mo . i d¯ı ˙’ nh cu ˙’ a G  . D - i . nh ngh˜ıa 3.1.4 D - ˆo ` thi . vˆo hu . ´o . ng G go . i l`a d¯u . o . . c d¯i . nh hu . ´o . ng ma . nh nˆe ´ u c´o thˆe ˙’ d¯i . nh hu . ´o . ng trˆen c´ac ca . nh cu ˙’ a G sao cho d¯ˆo ` thi . c´o hu . ´o . ng tu . o . ng ´u . ng nhˆa . n d¯u . o . . c l`a liˆen thˆong ma . nh. 76 http://www.ebook.edu.vn D - i . nh l´y sau cho ch´ung ta mˆo . t d¯ˇa . c tru . ng cu ˙’ a d¯ˆo ` thi . vˆo hu . ´o . ng d¯u . o . . c d¯i . nh hu . ´o . ng ma . nh. Ta n´oi cˆa ` u trong d¯ˆo ` thi . vˆo hu . ´o . ng liˆen thˆong l`a mˆo . t ca . nh m`a bo ˙’ d¯i th`ı d¯ˆo ` thi . s˜e mˆa ´ t t´ınh liˆen thˆong. D - i . nh l´y 3.1.5 D - ˆo ` thi . vˆo hu . ´o . ng G d¯u . o . . c d¯i . nh hu . ´o . ng ma . nh nˆe ´ u v`a chı ˙’ nˆe ´ u n´o liˆen thˆong v`a khˆong c´o cˆa ` u. Ch´u . ng minh. B`ai tˆa . p.  Du . . a trˆen thuˆa . t to´an t`ım kiˆe ´ m theo chiˆe ` u sˆau, ta c´o thˆe ˙’ d¯i . nh hu . ´o . ng c´ac ca . nh cu ˙’ a d¯ˆo ` thi . vˆo hu . ´o . ng d¯u . o . . c d¯i . nh hu . ´o . ng ma . nh nhu . sau. Lˆa ´ y mˆo . t d¯ı ˙’ nh bˆa ´ t k`y trong d¯ˆo ` thi . vˆo hu . ´o . ng G l`am d¯ı ˙’ nh kho . ˙’ i d¯ˆa ` u v`a thu . . c hiˆe . n thuˆa . t to´an t`ım kiˆe ´ m theo chiˆe ` u sˆau. V`ı d¯ˆo ` thi . vˆo hu . ´o . ng l`a liˆen thˆong, kˆe ´ t qua ˙’ cu ˙’ a viˆe . c t`ım kiˆe ´ m n`ay cho ta mˆo . t cˆay bao tr`um 1 T = (V n , E n ), trong d¯´o V n = {v 1 , v 2 , . . . , v n } l`a c´ac d¯ı ˙’ nh cu ˙’ a G. Nˆe ´ u e = (v i , v j ) l`a mˆo . t ca . nh trong cˆay bao tr`um T, ta d¯i . nh hu . ´o . ng n´o t`u . d¯ı ˙’ nh c´o chı ˙’ sˆo ´ nho ˙’ ho . n d¯ˆe ´ n d¯ı ˙’ nh c´o chı ˙’ sˆo ´ l´o . n ho . n. T´u . c l`a nˆe ´ u i < j, d¯i . nh hu . ´o . ng ca . nh e t`u . v i d¯ˆe ´ n v j , v`a nˆe ´ u j < i th`ı d¯i . nh hu . ´o . ng ca . nh e t`u . v j d¯ˆe ´ n v i . Nˆe ´ u ca . nh e = (v i , v j ) cu ˙’ a G khˆong thuˆo . c cˆay T, th`ı ta d¯i . nh hu . ´o . ng ca . nh n`ay t`u . d¯ı ˙’ nh c´o chı ˙’ sˆo ´ l´o . n ho . n d¯ˆe ´ n d¯ı ˙’ nh c´o chı ˙’ sˆo ´ nho ˙’ ho . n. T´u . c l`a nˆe ´ u i > j, d¯i . nh hu . ´o . ng ca . nh e t`u . v i d¯ˆe ´ n v j , v`a nˆe ´ u j > i th`ı d¯i . nh hu . ´o . ng ca . nh e t`u . v j d¯ˆe ´ n v i . H`ınh 3.1 minh ho . a d¯ˆo ` thi . vˆo hu . ´o . ng v`a c´ach d¯i . nh hu . ´o . ng n´o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a b c d e f • • • • • • (a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a b c d e f • • • • • • (b) H`ınh 3.1: (a) D - ˆo ` thi . vˆo hu . ´o . ng G. (b) D - ˆo ` thi . G d¯u . o . . c d¯i . nh hu . ´o . ng. 1 Kh´ai niˆe . m n`ay s˜e d¯u . o . . c tr`ınh b`ay trong ??. 77 http://www.ebook.edu.vn 3.2 D - u . `o . ng d¯i ngˇa ´ n nhˆa ´ t gi˜u . a hai d¯ı ˙’ nh Cho d¯ˆo ` thi . c´o hu . ´o . ng G = (V, E) m`a c´ac cung cu ˙’ a n´o d¯u . o . . c g´an c´ac tro . ng lu . o . . ng cho bo . ˙’ i ma trˆa . n vuˆong cˆa ´ p n : W = (w ij = (w(v i , v j )). B`ai to´an d¯ˇa . t ra l`a t`ım d¯u . `o . ng d¯i µ t`u . mˆo . t d¯ı ˙’ nh xuˆa ´ t ph´at s ∈ V d¯ˆe ´ n mˆo . t d¯ı ˙’ nh cuˆo ´ i l`a t ∈ V sao cho tˆo ˙’ ng c´ac tro . ng lu . o . . ng trˆen d¯u . `o . ng d¯i µ :  e k ∈µ w(e k ) l`a nho ˙’ nhˆa ´ t. C´ac phˆa ` n tu . ˙’ w ij , i, j = 1, ., n, cu ˙’ a ma trˆa . n tro . ng lu . o . . ng c´o thˆe ˙’ du . o . ng, ˆam hoˇa . c bˇa ` ng khˆong. Mˆo . t d¯iˆe ` u kiˆe . n duy nhˆa ´ t d¯ˇa . t ra l`a d¯ˆo ` thi . c´o hu . ´o . ng G khˆong ch´u . a c´ac ma . ch µ v´o . i tˆo ˙’ ng tro . ng lu . o . . ng trˆen ma . ch µ ˆam. V`ı rˇa ` ng, nˆe ´ u c´o mˆo . t ma . ch µ nhu . vˆa . y v`a v l`a mˆo . t d¯ı ˙’ nh n`ao d¯´o cu ˙’ a n´o, th`ı xuˆa ´ t ph´at t`u . n´ut s ta d¯i d¯ˆe ´ n d¯ı ˙’ nh v, v`a sau d¯´o d¯i v`ong quanh ma . ch µ mˆo . t sˆo ´ d¯u ˙’ l´o . n lˆa ` n rˆo ` i m´o . i d¯ˆe ´ n t ta s˜e thu d¯u . o . . c mˆo . t d¯u . `o . ng d¯i c´o tro . ng lu . o . . ng d¯u ˙’ nho ˙’ . V`ı vˆa . y, trong tru . `o . ng ho . . p n`ay, d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t l`a khˆong tˆo ` n ta . i. Nhˆa . n x´et rˇa ` ng, nˆe ´ u ma trˆa . n tro . ng lu . o . . ng W thoa ˙’ m˜an w ij :=  1 nˆe ´ u (v i , v j ) ∈ E, 0 nˆe ´ u ngu . o . . c la . i, th`ı d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n t d¯u . o . . c x´ac d¯i . nh bˇa ` ng thuˆa . t to´an t`ım kiˆe ´ m theo chiˆe ` u rˆo . ng nhu . d¯˜a tr`ınh b`ay trong phˆa ` n tru . ´o . c. Tru . ´o . c tiˆen ch´ung ta x´et thuˆa . t to´an Dijkstra, d¯o . n gia ˙’ n v`a rˆa ´ t hiˆe . u qua ˙’ , d¯ˆe ˙’ gia ˙’ i b`ai to´an d¯ˇa . t ra trong tru . `o . ng ho . . p ma trˆa . n tro . ng lu . o . . ng W c´o c´ac phˆa ` n tu . ˙’ khˆong ˆam. Sau d¯´o ph´at triˆe ˙’ n n´o d¯ˆe ˙’ gia ˙’ i quyˆe ´ t b`ai to´an trong tru . `o . ng ho . . p tˆo ˙’ ng qu´at. 3.2.1 Tru . `o . ng ho . . p ma trˆa . n tro . ng lu . o . . ng khˆong ˆam Thuˆa . t to´an Dijkstra [20] t`ım d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . d¯ı ˙’ nh s d¯ˆe ´ n d¯ı ˙’ nh t trong d¯ˆo ` thi . c´o hu . ´o . ng c´o tro . ng lu . o . . ng khˆong ˆam. Phu . o . ng ph´ap n`ay du . . a trˆen viˆe . c g´an c´ac nh˜an ta . m th`o . i cho c´ac d¯ı ˙’ nh: Nh˜an cu ˙’ a d¯ı ˙’ nh v i , k´y hiˆe . u L(v i ), l`a mˆo . t cˆa . n trˆen cu ˙’ a d¯ˆo . d`ai d¯u . `o . ng d¯i t`u . s d¯ˆe ´ n v i . C´ac nh˜an n`ay sau d¯´o tiˆe ´ p tu . c d¯u . o . . c gia ˙’ m b´o . t bo . ˙’ i mˆo . t thu ˙’ tu . c lˇa . p v`a ta . i mˆo ˜ i bu . ´o . c lˇa . p c´o d¯´ung mˆo . t nh˜an ta . m th`o . i tro . ˙’ th`anh nh˜an cˆo ´ d¯i . nh. Khi d¯ı ˙’ nh v i d¯u . o . . c g´an nh˜an cˆo ´ d¯i . nh th`ı khˆong thˆe ˙’ gia ˙’ m L(v i ); sˆo ´ n`ay ch´ınh l`a d¯ˆo . d`ai d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i . 78 http://www.ebook.edu.vn Thuˆa . t to´an Dijkstra (w ij ≥ 0) 1. [Kho . ˙’ i ta . o] D - ˇa . t L(v i ) :=  0 nˆe ´ u v i = s, +∞ nˆe ´ u ngu . o . . c la . i. v´o . i mo . i v i ∈ V. D - ´anh dˆa ´ u d¯ı ˙’ nh s c´o nh˜an cˆo ´ d¯i . nh, c´ac d¯ı ˙’ nh kh´ac c´o nh˜an ta . m th`o . i. D - ˇa . t c = s. 2. [Cˆa . p nhˆa . t] V´o . i mo . i v i ∈ Γ(c) sao cho v i c´o nh˜an ta . m th`o . i d¯ˇa . t L(v i ) := min{L(v i ), L(c) + w(c, v i )}; 3. T`ım d¯ı ˙’ nh v i ∗ c´o nh˜an ta . m th`o . i sao cho L(v i ∗ ) := min{L(v i ) < +∞ | v i c´o nh˜an ta . m th`o . i}. 4. D - ´anh dˆa ´ u d¯ı ˙’ nh v i ∗ c´o nh˜an cˆo ´ d¯i . nh v`a d¯ˇa . t c := v i ∗ . 5. (a) (Nˆe ´ u t`ım d¯u . `o . ng d¯i t`u . s d¯ˆe ´ n t) Nˆe ´ u v i = t th`ı thuˆa . t to´an d`u . ng, L(t) l`a d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n t; ngu . o . . c la . i, chuyˆe ˙’ n sang Bu . ´o . c 2. (b) (Nˆe ´ u t`ım tˆa ´ t ca ˙’ c´ac d¯u . `o . ng d¯i xuˆa ´ t ph´at t`u . s) Nˆe ´ u khˆong thˆe ˙’ g´an nh˜an cˆo ´ d¯i . nh cho d¯ı ˙’ nh v i ∗ trong Bu . ´o . c 4 th`ı thuˆa . t to´an d`u . ng; gi´a tri . L(v i ) cu ˙’ a d¯ı ˙’ nh v i c´o nh˜an cˆo ´ d¯i . nh cho ta d¯ˆo . d`ai d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i . Ngu . o . . c la . i chuyˆe ˙’ n sang Bu . ´o . c 2. D - i . nh l´y 3.2.1 Thuˆa . t to´an Dijkstra cho ta d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n t (nˆe ´ u c´o). Ch´u . ng minh. Tru . ´o . c hˆe ´ t ch´u ´y rˇa ` ng c´ac d¯ı ˙’ nh khˆong d¯u . o . . c g´an nh˜an cˆo ´ d¯i . nh s˜e khˆong tˆo ` n ta . i d¯u . `o . ng d¯i t`u . s d¯ˆe ´ n n´o (nh˜u . ng d¯ı ˙’ nh n`ay c´o nh˜an L bˇa ` ng ∞). Gia ˙’ su . ˙’ L(v i ) cu ˙’ a c´ac d¯ı ˙’ nh c´o nh˜an cˆo ´ d¯i . nh o . ˙’ bu . ´o . c n`ao d¯´o l`a d¯ˆo . d`ai d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i . K´y hiˆe . u S 1 l`a tˆa . p tˆa ´ t ca ˙’ c´ac d¯ı ˙’ nh n`ay v`a S 2 l`a tˆa . p c´ac d¯ı ˙’ nh c´o nh˜an ta . m th`o . i. Cuˆo ´ i Bu . ´o . c 2 cu ˙’ a mˆo ˜ i lˆa ` n lˇa . p, nh˜an ta . m th`o . i L(v i ) l`a d¯ˆo . d`ai d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t µ i t`u . s d¯ˆe ´ n v i qua c´ac d¯ı ˙’ nh trong tˆa . p S 1 . (V`ı trong mˆo ˜ i lˆa ` n lˇa . p chı ˙’ c´o mˆo . t d¯ı ˙’ nh d¯u . o . . c d¯u . a v`ao S 1 nˆen cˆa . p nhˆa . t la . i L(v i ) chı ˙’ xa ˙’ y ra trong Bu . ´o . c 2). X´et d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i ∗ khˆong ho`an to`an d¯i qua c´ac d¯ı ˙’ nh cu ˙’ a S 1 m`a ch´u . a ´ıt nhˆa ´ t mˆo . t d¯ı ˙’ nh thuˆo . c S 2 v`a gia ˙’ su . ˙’ v j ∈ S 2 l`a d¯ı ˙’ nh d¯ˆa ` u tiˆen nhu . vˆa . y trˆen d¯u . `o . ng d¯i n`ay. Do w ij khˆong ˆam, d¯oa . n d¯u . `o . ng d¯i t`u . v j d¯ˆe ´ n v i ∗ pha ˙’ i c´o d¯ˆo . d`ai ∆ khˆong ˆam sao cho L(v j ) < L(v i ∗ ) − ∆ < L(v i ∗ ). Tuy nhiˆen d¯iˆe ` u n`ay mˆau thuˆa ˜ n v´o . i khˇa ˙’ ng d¯i . nh rˇa ` ng L(v i ∗ ) c´o nh˜an ta . m th`o . i nho ˙’ nhˆa ´ t, v`a do d¯´o c´ac d¯ı ˙’ nh trˆen d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t d¯ˆe ´ n v i ∗ thuˆo . c S 1 v`a do d¯´o L(v i ∗ ) l`a d¯ˆo . d`ai cu ˙’ a d¯u . `o . ng d¯i n`ay. 79 http://www.ebook.edu.vn V`ı S 1 kho . ˙’ i ta . o l`a {s} v`a trong mˆo ˜ i bu . ´o . c lˇa . p, d¯ı ˙’ nh v i ∗ d¯u . o . . c thˆem v`ao S 1 , nˆen bˇa ` ng qui na . p, L(v i ) l`a d¯ˆo . d`ai d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i v´o . i mo . i d¯ı ˙’ nh v i ∈ S 1 . Do d¯´o thuˆa . t to´an cho l`o . i gia ˙’ i tˆo ´ i u . u.  Mˆe . nh d¯ˆe ` 3.2.2 Thuˆa . t to´an Dijkstra d¯`oi ho ˙’ i th`o . i gian O(n 2 ). Nˆe ´ u d¯ˆo ` thi . thu . a v`a d¯u . o . . c x´ac d¯i . nh bo . ˙’ i d˜ay liˆen tiˆe ´ p c´ac d¯ı ˙’ nh, th`ı th`o . i gian cu . . c d¯a . i cu ˙’ a thuˆa . t to´an l`a O(m log n). Ch´u . ng minh. Trong tru . `o . ng ho . . p d¯ˆo ` thi . liˆen thˆong ma . nh d¯ˆa ` y d¯u ˙’ n d¯ı ˙’ nh v`a cˆa ` n t`ım d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n mo . i d¯ı ˙’ nh kh´ac, thuˆa . t to´an cˆa ` n n(n − 1)/2 ph´ep cˆo . ng v`a so s´anh trong Bu . ´o . c 2 v`a n(n − 1)/2 ph´ep so s´anh kh´ac trong Bu . ´o . c 3. Ngo`ai ra, c´ac Bu . ´o . c 2 v`a 3 cˆa ` n x´ac d¯i . nh c´ac d¯ı ˙’ nh d¯u . o . . c g´an nh˜an ta . m th`o . i nˆen cˆa ` n thˆem n(n − 1)/2 ph´ep so s´anh. C´ac sˆo ´ n`ay c˜ung l`a cˆa . n trˆen cho sˆo ´ c´ac ph´ep to´an cˆa ` n thiˆe ´ t d¯ˆe ˙’ t`ım d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n t, v`a thˆa . t vˆa . y, c´ac gi´a tri . n`ay d¯a . t d¯u . o . . c khi t l`a d¯ı ˙’ nh cuˆo ´ i c`ung d¯u . o . . c g´an nh˜an cˆo ´ d¯i . nh.  Khi Thuˆa . t to´an Dijkstra kˆe ´ t th´uc, c´ac d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t d¯u . o . . c x´ac d¯i . nh bˇa ` ng d¯ˆe . qui theo Phu . o . ng tr`ınh (3.1) du . ´o . i d¯ˆay. Do d¯´o nˆe ´ u v  i l`a d¯ı ˙’ nh tru . ´o . c d¯ı ˙’ nh v i trong d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i th`ı v´o . i mo . i d¯ı ˙’ nh v i cho tru . ´o . c, d¯ı ˙’ nh v  i c´o thˆe ˙’ lˆa ´ y l`a d¯ı ˙’ nh m`a L(v i ) = L(v  i ) + w(v  i , v i ). (3.1) Nˆe ´ u tˆo ` n ta . i duy nhˆa ´ t d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i th`ı c´ac cung (v  i , v i ) trˆen d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t ta . o th`anh mˆo . t cˆay c´o hu . ´o . ng (xem Chu . o . ng 4) v´o . i gˆo ´ c l`a d¯ı ˙’ nh s. Nˆe ´ u c´o nhiˆe ` u ho . n mˆo . t d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n bˆa ´ t k`y mˆo . t d¯ı ˙’ nh kh´ac, th`ı Phu . o . ng tr`ınh 3.1 s˜e d¯u . o . . c thoa ˙’ m˜an bo . ˙’ i ho . n mˆo . t d¯ı ˙’ nh kh´ac v  i v´o . i v i n`ao d¯´o. Thu ˙’ tu . c sau minh ho . a thuˆa . t to´an Dijkstra. Trong thu ˙’ tu . c n`ay, ma ˙’ ng Mark[] d¯u . o . . c su . ˙’ du . ng d¯ˆe ˙’ d¯´anh dˆa ´ u c´ac d¯ı ˙’ nh c´o nh˜an ta . m th`o . i hay cˆo ´ d¯i . nh: Mark[i] = FALSE nˆe ´ u d¯ı ˙’ nh v i c´o nh˜an ta . m th`o . i; ngu . o . . c la . i bˇa ` ng TRUE. Gi´a tri . Label[i] tu . o . ng ´u . ng nh˜an L ( v i ) v`a P red[i], sau khi kˆe ´ t th´uc thuˆa . t to´an, l`a d¯ı ˙’ nh liˆe ` n tru . ´o . c d¯ı ˙’ nh v i trong d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i . Nˆe ´ u tˆo ` n ta . i d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n t, th`ı thu ˙’ tu . c PathTwoVertex() s˜e in ra thˆong tin cu ˙’ a d¯u . `o . ng d¯i n`ay. void Dijkstra(byte Start, byte Terminal) { byte i, Current; AdjPointer Tempt; Path Pred; int Label[MAXVERTICES], NewLabel, Min; Boolean Mark[MAXVERTICES]; 80 http://www.ebook.edu.vn for(i = 1; i <= NumVertices; i++) { Mark[i] = FALSE; Pred[i] = 0; Label[i] = +Infty; } Mark[Start] = TRUE; Pred[Start] = 0; Label[Start] = 0; Current = Start; while (Mark[Terminal] == FALSE) { Tempt = V_out[Current]->Next; while (Tempt != NULL) { if (Mark[Tempt->Vertex] == FALSE) { NewLabel = Label[Current] + Tempt->Length; if (NewLabel < Label[Tempt->Vertex]) { Label[Tempt->Vertex] = NewLabel; Pred[Tempt->Vertex] = Current; } } Tempt = Tempt->Next; } Min = +Infty; for (i = 1; i <= NumVertices; i++) if ((Mark[i] == FALSE) && (Label[i] < Min)) { Min = Label[i]; Current = i; } if (Min == +Infty) { printf("Khong ton tai duong di tu %d", Start); printf(" den %d", Terminal); 81 http://www.ebook.edu.vn return; } Mark[Current] = TRUE; } printf("Ton tai duong di tu %d", Start); printf(" den %d", Terminal); printf("\nDuong di qua cac dinh:"); printf("\n % d " , Start); PathTwoVertex(Pred, Start, Terminal); printf("\nDo dai la: %d ", Label[Terminal]); } 3.2.2 Tru . `o . ng ho . . p ma trˆa . n tro . ng lu . o . . ng tu`y ´y Thuˆa . t to´an Dijkstra chı ˙’ ´ap du . ng trong tru . `o . ng ho . . p ma trˆa . n tro . ng lu . o . . ng W khˆong ˆam. Tuy nhiˆen, nhiˆe ` u b`ai to´an thu . . c tˆe ´ , W l`a ma trˆa . n chi ph´ı, cho nˆen nh˜u . ng cung mang la . i lo . . i nhuˆa . n pha ˙’ i c´o chi ph´ı ˆam. Trong tru . `o . ng ho . . p n`ay, phu . o . ng ph´ap cho du . ´o . i d¯ˆay t`ım d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n tˆa ´ t ca ˙’ c´ac d¯ı ˙’ nh kh´ac. D - ˆay c˜ung l`a phu . o . ng ph´ap lˇa . p v`a du . . a trˆen c´ach d¯´anh nh˜an, trong d¯´o cuˆo ´ i bu . ´o . c lˇa . p th´u . k c´ac nh˜an biˆe ˙’ u diˆe ˜ n gi´a tri . d¯ˆo . d`ai cu ˙’ a c´ac d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t (t`u . s d¯ˆe ´ n tˆa ´ t ca ˙’ c´ac d¯ı ˙’ nh kh´ac) c´o sˆo ´ cung khˆong vu . o . . t qu´a (k + 1). Thuˆa . t to´an n`ay d¯u . a ra lˆa ` n d¯ˆa ` u tiˆen bo . ˙’ i Ford [26] v`ao gi˜u . a nˇam 1950. Sau d¯´o d¯u . o . . c Moore [45] v`a Bellman [3] ca ˙’ i tiˆe ´ n nhu . sau. Thuˆa . t to´an Ford, Moore, Bellman K´y hiˆe . u L k (v i ) l`a nh˜an cu ˙’ a d¯ı ˙’ nh v i o . ˙’ cuˆo ´ i lˆa ` n lˇa . p th´u . (k + 1). 1. [Kho . ˙’ i ta . o] D - ˇa . t S = Γ(s), k = 1; v`a L 1 (v i ) :=      0 nˆe ´ u v i = s, w(s, v i ) nˆe ´ u v i = s, v i ∈ Γ(s), +∞ nˆe ´ u ngu . o . . c la . i. 2. [Cˆa . p nhˆa . t nh˜an] V´o . i mˆo ˜ i v i ∈ Γ(S), v i = s, thay d¯ˆo ˙’ i nh˜an cu ˙’ a n´o theo quy tˇa ´ c: L k+1 (v i ) := min[L k (v i ), min v j ∈T i {L k (v j ) + w(v j , v i )}], (3.2) 82 http://www.ebook.edu.vn trong d¯´o T i := Γ −1 (v i ) ∩ S. Tˆa . p S ch´u . a tˆa ´ t ca ˙’ c´ac d¯ı ˙’ nh v i sao cho d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t (hiˆe . n h`anh) t`u . s d¯ˆe ´ n v i c´o sˆo ´ cung l`a k. Tˆa . p T i ch´u . a tˆa ´ t ca ˙’ c´ac d¯ı ˙’ nh v j sao cho d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i c´o sˆo ´ cung l`a k (t´u . c l`a v j ∈ S) v`a kˆe ´ t th´uc bˇa ` ng cung (v j , v i ). Ch´u ´y rˇa ` ng, nˆe ´ u v i ∈ Γ(S) th`ı d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i khˆong thˆe ˙’ c´o sˆo ´ cung l`a (k + 1) v`a ta khˆong thay d¯ˆo ˙’ i nh˜an cu ˙’ a d¯ı ˙’ nh n`ay: L k+1 (v i ) := L k (v i ), v´o . i mo . i v i ∈ Γ(S). 3. [Kiˆe ˙’ m tra kˆe ´ t th´uc] (a) Nˆe ´ u k ≤ n − 1 v`a L k+1 (v i ) = L k (v i ), v´o . i mo . i v i ∈ V, th`ı thuˆa . t to´an d`u . ng; nh˜an cu ˙’ a d¯ı ˙’ nh v i cho ta d¯ˆo . d`ai d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i . (b) Nˆe ´ u k < n − 1 v`a L k+1 (v i ) = L k (v i ), v´o . i v i n`ao d¯´o, th`ı chuyˆe ˙’ n sang Bu . ´o . c 4. (c) Nˆe ´ u k = n − 1 v`a L k+1 (v i ) = L k (v i ), v´o . i v i n`ao d¯´o, th`ı d¯ˆo ` thi . G c´o ma . ch v´o . i d¯ˆo . d`ai ˆam. Thuˆa . t to´an kˆe ´ t th´uc. 4. [Cˆa . p nhˆa . t S] D - ˇa . t S := {v i | L k+1 (v i ) = L k (v i )}. (Tˆa . p S bˆay gi`o . ch´u . a tˆa ´ t ca ˙’ c´ac d¯ı ˙’ nh m`a d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n n´o c´o sˆo ´ cung l`a (k + 1)). 5. Thay k bo . ˙’ i (k + 1) v`a lˇa . p la . i Bu . ´o . c 2. Khi thuˆa . t to´an kˆe ´ t th´uc v`a d¯ˆo ` thi . khˆong c´o ma . ch d¯ˆo . d`ai ˆam, ch´ung ta c´o thˆe ˙’ t`ım tˆa ´ t ca ˙’ c´ac d¯u . `o . ng d¯i (nˆe ´ u tˆo ` n ta . i) ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n tˆa ´ t ca ˙’ c´ac d¯ı ˙’ nh kh´ac. Ho . n n˜u . a c´ac d¯u . `o . ng d¯i c´o thˆe ˙’ nhˆa . n d¯u . o . . c tru . . c tiˆe ´ p nˆe ´ u, trong ph´ep cˆo . ng v`ao c´ac nh˜an L k (v i ) o . ˙’ Phu . o . ng tr`ınh 3.2, ta thˆem mˆo . t nh˜an P k (v i ) lu . u tr˜u . thˆong tin mˆo ˜ i d¯ı ˙’ nh trong suˆo ´ t qu´a tr`ınh t´ınh to´an, trong d¯´o P k (v i ) l`a d¯ı ˙’ nh kˆe ` tru . ´o . c d¯ı ˙’ nh v i trˆen d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i o . ˙’ bu . ´o . c lˇa . p th´u . k. Ta c´o thˆe ˙’ kho . ˙’ i ta . o P 1 (v i ) :=  s nˆe ´ u v i ∈ Γ(s), 0 nˆe ´ u ngu . o . . c la . i. Nh˜an P k (v i ) d¯u . o . . c cˆa . p nhˆa . t theo Phu . o . ng tr`ınh 3.2 trong Bu . ´o . c 2 sao cho P k+1 (v i ) = P k (v i ) nˆe ´ u gi´a tri . nho ˙’ nhˆa ´ t d¯a . t d¯u . o . . c o . ˙’ phˆa ` n tu . ˙’ d¯ˆa ` u tiˆen trong dˆa ´ u ngoˇa . c cu ˙’ a Phu . o . ng tr`ınh 3.2; hoˇa . c P k+1 (v i ) = v j nˆe ´ u ngu . o . . c la . i. Nˆe ´ u k´y hiˆe . u P(v i ) l`a vector d¯u . o . . c xˆay du . . ng t`u . c´ac nh˜an P khi kˆe ´ t th´uc thuˆa . t to´an, th`ı d¯u . `o . ng d¯i ngˇa ´ n nhˆa ´ t t`u . s d¯ˆe ´ n v i nhˆa . n d¯u . o . . c theo th´u . tu . . ngu . o . . c: s, . . . , P 3 (v i ), P 2 (v i ), P (v i ), v i , trong d¯´o P 2 (v i ) c´o ngh˜ıa l`a P (P (v i )), . . . . D - oa . n chu . o . ng tr`ınh sau minh ho . a thuˆa . t to´an d¯˜a tr`ınh b`ay. 83 http://www.ebook.edu.vn void Ford_Moore_Bellman(byte Start) { byte i, k, Terminal; AdjPointer Tempt1, Tempt2; Path OldPred, NewPred; int OldLabel[MAXVERTICES], NewLabel[MAXVERTICES], Min; Boolean Done, Mark[MAXVERTICES]; for (i = 1; i <= NumVertices; i++) { Mark[i] = FALSE; OldPred[i] = 0; OldLabel[i] = +Infty; } OldLabel[Start] = 0; Tempt1 = V_out[Start]->Next; while (Tempt1 != NULL) { Mark[Tempt1->Vertex] = TRUE; if (Tempt1->Vertex != Start) { OldPred[Tempt1->Vertex] = Start; OldLabel[Tempt1->Vertex] = Tempt1->Length; } Tempt1 = Tempt1->Next; } for (i = 1; i <= NumVertices; i++) { NewPred[i] = OldPred[i]; NewLabel[i] = OldLabel[i]; } for (k = 1; k < NumVertices; k++) { printf("\n "); for (i = 1; i <= NumVertices; i++) { if (Mark[i] == TRUE) { Tempt1 = V_out[i]->Next; 84

Ngày đăng: 30/09/2013, 03:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan