1. Trang chủ
  2. » Công Nghệ Thông Tin

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

24 459 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Các bài toán về đường đi
Định dạng
Số trang 24
Dung lượng 477,11 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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: thi... void Dijkstrabyte Start, byte Terminal... Thuˆa.t to´an kˆe´t th´uc.. khˆong c´o ma.ch d¯ˆo... void Ford_

Trang 1

Chu.o.ng 3

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

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` giaothˆ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

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

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 µ.

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.

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}.

Trang 2

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:

sao cho

v1 ∈ P (m − 1), v2 ∈ P (m − 2), , v m ∈ P (0).

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

th`o.i gian O(m).

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

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.

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:

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 0 , kho.˙’i d¯ˆa ` u t`u v, d¯a.t d¯u.o c mo.i d¯ı˙’nh cu˙’a G 0

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.

Trang 3

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.

liˆen thˆong

v`a khˆong c´o cˆa ` u.

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

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

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)

1 Kh´ai niˆe.m n`ay s˜e d¯u.o c tr`ınh b`ay trong ??.

Trang 4

3.2 D - u.`o.ng d¯i ngˇa´n nhˆa´t gi˜u.a hai 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 µ :

X

e k ∈µ

w(e k)

l`a nho˙’ nhˆa´t

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 :=

(

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

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

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

Trang 5

Thuˆa.t to´an Dijkstra (w ij ≥ 0)

L(v 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

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 ∞).

Trang 6

V`ı S1 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 S1, nˆen bˇa`ng

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

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

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

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

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.˙’

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)

Trang 7

for(i = 1; i <= NumVertices; i++)

for (i = 1; i <= NumVertices; i++)

if ((Mark[i] == FALSE) && (Label[i] < Min))

printf("Khong ton tai duong di tu %d", Start);

printf(" den %d", Terminal);

Trang 8

}

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]);

}

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

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˜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

[3] ca˙’i tiˆe´n nhu sau

v j ∈T i

Trang 9

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

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 6∈ Γ(S) th`ı d¯u.`o.ng

cu˙’a d¯ı˙’nh n`ay:

d`ai ˆam Thuˆa.t to´an kˆe´t th´uc

S := {v i | L k+1 (v i ) 6= 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

th´u k Ta c´o thˆe˙’ kho.˙’i ta.o

P1(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;

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, , P3(v i ), P2(v i ), P (v i ), v i ,

Trang 10

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++)

Trang 11

while (Tempt1 != NULL)

printf("Ton tai duong di tu %d", Start);

printf(" den %d", Terminal);

Trang 12

printf("\n Duong di qua cac dinh:");

printf("Khong ton tai duong di tu %d", Start);

printf(" den %d", Terminal);

nguyˆen l´y tˆo´i u.u cu˙’a quy hoa.ch d¯ˆo.ng v`a t`u nhˆa.n x´et l`a nˆe´u khˆong c´o d¯u.`o.ng d¯i tˆo´i u.u qua

k cung th`ı s˜e khˆong c´o d¯u.`o.ng d¯i tˆo´i u.u qua (k + 1) cung Ch´ung ta khˆong tr`ınh b`ay ch´u.ng

minh d¯´o; ba.n d¯o.c quan tˆam c´o thˆe˙’ xem [6]

Trong tru.`o.ng ho p d¯ˆo` thi c´o hu.´o.ng c´o tro.ng sˆo´ tu`y ´y nhu.ng khˆong c´o ma.ch c´o d¯ˆo d`ai ˆam

th`ı thuˆa.t to´an Moore-Bellman-d’Usopo t`ım d¯u.`o.ng d¯i ngˇa´n nhˆa´t t`u s d¯ˆe´n t tr`ınh b`ay du.´o.i

d¯ˆay s˜e hiˆe.u qua˙’ ho.n

Trang 13

Nh˜an cu˙’a mo.i d¯ı˙’nh v i ∈ V l`a cˇa.p (P (v i ), L(v i )) Kˆe´t th´uc thuˆa.t to´an, L(t) l`a d¯ˆo d`ai cu˙’a d¯u.`o.ng d¯i ngˇa´n nhˆa´t t`u s d¯ˆe´n t v`a vector P cho ta thˆong tin cu˙’a d¯u.`o.ng d¯i n`ay.

Kho.˙’i ta.o Stack chı˙’ c´o mˆo.t phˆa`n tu.˙’ l`a s.

2 [Bu.´o.c lˇa.p] Trong khi Stack kh´ac NULL

{

} }

}

3.3 D - u.`o.ng d¯i ngˇa´n nhˆa´t gi˜u.a tˆa´t ca˙’ c´ac cˇa.p d¯ı˙’nh

to´an n`ay bˇa`ng c´ach su.˙’ du.ng n lˆa`n thuˆa.t to´an mˆo ta˙’ o.˙’ phˆa`n tru.´o.c, m`a trong mˆo˜i lˆa`n thu c hiˆe.n, ta s˜e cho.n s lˆa`n lu.o t l`a c´ac d¯ı˙’nh cu˙’a d¯ˆo` thi Trong tru.`o.ng ho p d¯ˆo` thi d¯ˆa`y d¯u˙’ c´o ma

Trang 14

Trong phˆa` n n`ay ch´ung ta s˜e tr`ınh b`ay hai c´ach ho`an to`an kh´ac d¯ˆe˙’ gia˙’i b`ai to´an t`ımd¯u.`o.ng d¯i ngˇa´n nhˆa´t gi˜u.a tˆa´t ca˙’ c´ac cˇa.p d¯ı˙’nh Nh˜u.ng phu.o.ng ph´ap n`ay c´o thˆe˙’ ´ap du.ng cho

ma trˆa.n tro.ng lu.o ng khˆong ˆam, n´oi chung, c´ac phu.o.ng ph´ap n`ay s˜e nhanh ho.n 50% c´ach

´ap du.ng thuˆa.t to´an Dijkstra n lˆa`n.

Mˆo.t trong nh˜u.ng mu.c d¯´ıch cu˙’a c´ac thuˆa.t to´an t`ım d¯u.`o.ng d¯i ngˇa´n nhˆa´t l`a x´ac d¯i.nh tˆa´t ca˙’c´ac d¯ˆo d`ai cu˙’a c´ac d¯u.`o.ng d¯i ngˇa´n nhˆa´t c´o thˆe˙’ c´o trong mˆo.t d¯ˆo` thi c´o tro.ng lu.o ng ta.i c`ungmˆo.t th`o.i d¯iˆe˙’m Trong phˆa`n n`ay, ch´ung ta tha˙’o luˆa.n c´ach tiˆe´p cˆa.n kh´ac gia˙’i quyˆe´t b`ai to´ann`ay (xem [2])

Thuˆa.t to´an d¯u.o c xˆay du ng trˆen co so.˙’ mˆo.t c´ach t´ınh m´o.i l˜uy th`u.a cu˙’a c´ac ma trˆa.n,

m`a ch´ung ta s˜e go.i l`a tˆo˙’ng ma trˆa.n Hedetniemi Tˆo˙’ng n`ay d¯u.o c Hedetniemi tr`ınh b`ay v´o.i

Nystuen ta.i tru.`o.ng d¯a.i ho.c Michigan

Chˇa˙’ng ha.n, d¯ˆo` thi trong H`ınh 3.2 c´o ma trˆa.n tro.ng lu.o ng

trˆa.n Hedetniemi cu˙’a hai ma trˆa.n A v`a B l`a ma trˆa.n C cˆa´p m × p, k´y hiˆe.u A ⊕ B, x´ac d¯i.nh

bo.˙’i:

Trang 15

50

25

20

30

v3

v4

v5

v6

v7

H`ınh 3.2:

V´ı du 3.3.2 T`ım tˆo˙’ng ma trˆa.n A ⊕ B nˆe´u A =

0 1 2

2 0 3

5 6 0

0 3 4

5 0 4

3 1 0

.

Ta c´o

A ⊕ B =

0 1 2

2 0 3

5 6 0

+

0 3 4

5 0 4

3 1 0

=

0 1 2

2 0 3

3 1 0

.

V´ı du 3.3.3 T`ım tˆo˙’ng ma trˆa.n A ⊕ B nˆe´u A =

.

Ta c´o

A ⊕ B =

+

=

1 0 5

1 0 4

5 4 0

.

Bˆay gi`o ´ap du.ng tˆo˙’ng ma trˆa.n Hedetniemi v`ao viˆe.c t`ım d¯u.`o.ng d¯i ngˇa´n nhˆa´t X´et v´ı

Trang 16

du trong H`ınh 3.2 K´y hiˆe.u W2 := W ⊕ W, W k := W k−1 ⊕ W, k ≥ 2 Khi d¯´o

Ch´u ´y rˇa`ng gi´a tri 55 l`a tˆo˙’ng cu˙’a 30, d¯ˆo d`ai cu˙’a d¯u.`o.ng d¯i ngˇa´n nhˆa´t v´o.i sˆo´ cung mˆo.t t`u

cung trˆen d¯u.`o.ng d¯i ngˇa´n nhˆa´t gi˜u.a hai d¯ı˙’nh Vˆa.y

trˆa.n Hedetniemi W n−1 l`a d¯ˆo d`ai cu˙’a d¯u.`o.ng d¯i ngˇa´n nhˆa´t gi˜u.a d¯ı˙’nh v i v`a v j

Trang 17

D- iˆe` u l´y th´u nhˆa´t trong v´ı du n`ay l`a W4 = W8 Thˆa.t vˆa.y, d¯ˇa˙’ng th´u.c suy tru c tiˆe´p t`u.

qu´at ta c´o

W k−1 , c`on W k = W k+1 , th`ı W k biˆe˙’u thi tˆa.p c´ac d¯ˆo d`ai cu˙’a c´ac d¯u.`o.ng d¯i ngˇa´n nhˆa´t, v`a sˆo´ cung trˆen mˆo˜i d¯u.`o.ng d¯i ngˇa´n nhˆa´t khˆong vu.o t qu´a k.

Do d¯´o, thuˆa.t to´an n`ay c´o thˆe˙’ d`u.ng o.˙’ bu.´o.c lˇa.p th´u k < (n − 1) Du.´o.i d¯ˆay l`a d¯oa.n chu.o.ng tr`ınh minh ho.a t´ınh ma trˆa.n lu˜y th`u.a cu˙’a ma trˆa.n tro.ng lu.o ng W.

for (i = 1; i <= NumVertices; i++)

for (j = 1; j <= NumVertices; j++) Old[i][j] = w[i][j];

Trang 18

if (Flag == TRUE) break;

}

}

w14(4) = w 1k(3)⊕ w k7

(0, 30, 55, 30, 60, 50, 70, 60, 40)

(∞, ∞, ∞, ∞, 25, 20, 0, 25, ∞).

V`ı gi´a tri nho˙’ nhˆa´t d¯a.t d¯u.o c ta.i k = 6 ´u.ng v´o.i 70 = 50 + 20 (v`a k = 7) nˆen d¯u.`o.ng d¯i ngˇa´n

(∞, ∞, ∞, 20, ∞, 0, 20, ∞, 20).

th`anh vector cˆo.t

(30, 40, 50, 0, 30, 20, ∞, ∞, ∞), v`a gi´a tri nho˙’ nhˆa´t d¯a.t ta.i k = 1 hoˇa.c k = 4 (´u.ng v´o.i 30 + 0 hoˇa.c 0 + 30) nˆen tˆo`n ta.i cung

d¯ˆo d`ai 30, 20, 20)

Do d¯´o thuˆa.t to´an Hedetniemi cho mˆo.t minh ho.a h`ınh ho.c trong mˆo˜i bu.´o.c lˇa.p, v`a su.˙’du.ng c´ac ma trˆa.n c´o thˆe˙’ phu.c hˆo`i d¯u.o c d¯u.`o.ng d¯i ngˇa´n nhˆa´t Nhu vˆa.y, ch´ung ta cˆa`n thˆem

mˆo.t ma trˆa.n P lu.u tr˜u thˆong tin cu˙’a c´ac d¯u.`o.ng d¯i ngˇa´n nhˆa´t Ma trˆa.n n`ay s˜e d¯u.o c cˆa.p

Trang 19

3.3.2 Thuˆ a.t to´an Floyd (tru.`o.ng ho p ma trˆa.n tro.ng lu.o ng tu`y ´y)

Thuˆa.t to´an du.´o.i d¯ˆay d¯u.o c d¯u.a ra lˆa`n d¯ˆa`u tiˆen bo.˙’i Floyd [25] v`a d¯u.o c l`am mi.n ho.n bo.˙’iMurchland [46]

2 k := k + 1.

hiˆe.n ph´ep g´an

Ch´u.ng minh t´ınh d¯´ung d¯ˇa´n cu˙’a thuˆa.t to´an Floyd l`a ho`an to`an d¯o.n gia˙’n [35], [25] v`ad`anh cho ngu.`o.i d¯o.c Ph´ep to´an co ba˙’n cu˙’a Phu.o.ng tr`ınh 3.3 trong thuˆa.t to´an n`ay go.i l`a

ph´ep to´an bˆo ba v`a c´o nhiˆe` u ´u.ng du.ng trong nh˜u.ng b`ai to´an tu.o.ng tu b`ai to´an t`ım d¯u.`o.ngd¯i ngˇa´n nhˆa´t (xem [14], [30])

C´ac d¯u.`o.ng d¯i ngˇa´n nhˆa´t c´o thˆe˙’ nhˆa.n d¯u.o c d¯ˆo`ng th`o.i c`ung v´o.i c´ac d¯ˆo d`ai d¯u.`o.ng d¯ingˇa´n nhˆa´t bˇa`ng c´ach su.˙’ du.ng quan hˆe d¯ˆe qui tu.o.ng tu Phu.o.ng tr`ınh 3.2 Bˇa`ng c´ach ´apdu.ng co chˆe´ cu˙’a Hu [35] d¯ˆe˙’ lu.u gi˜u thˆong tin c´ac d¯u.`o.ng d¯i ngˇa´n nhˆa´t c`ung v´o.i d¯ˆo d`ai cu˙’a

C`ung v´o.i viˆe.c biˆe´n d¯ˆo˙’i ma trˆa.n W theo Phu.o.ng tr`ınh 3.3 trong Bu.´o.c 3, ta biˆe´n d¯ˆo˙’i

P theo quy tˇa´c

θ ij :=

(

Kˆe´t th´uc thuˆa.t to´an, ma trˆa.n P thu d¯u.o c s˜e gi´up cho ta viˆe.c t`ım c´ac d¯u.`o.ng d¯i ngˇa´n nhˆa´t.

v i , v ν , , v γ , v β , v α , v j

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

TỪ KHÓA LIÊN QUAN

w