Trƣờng hợp G là đồ thị vô hướng, thì thuật toán xây dựng cây khung của G theo hƣớng tìm
kiếm ưu tiên chiều rộngcho một lời giải của bài toán này.
Thuật toánsau đây cho lời giải của bài toán trong cả trƣờng hợp G là đồ thị có hướng. Thuật
toán này dựa trên quy tắc tạo nhãn cho mỗi đỉnh.
Mỗi đỉnh y có hai nhãn * ( ) ( )+ với : Nhãn ( ) thì đƣờng đi ngắn nhất từđỉnh xuất phát x đến y có độ dài bằng k. Nhãn ( ) thì đỉnh liền trƣớc y trên đƣờng đi ngắn
(1) (Gán nhãn cho các đỉnh của đồ thị - xây dựng các tập đỉnh ). - Đỉnh xuất phát x có nhãn là ( ) ( ) . Đặt * +. Gọi Ak = Tập tất cả các đỉnh y có nhãn ( ) . - Mọi đỉnh z { ( ) thì gán nhãn là { ( ) ( ) . (2) (Xác định đường đi ngắn nhất từ các tập đỉnh ).
Đƣờng đi ngắn nhất từ đỉnh x đến đỉnh có độ dài bằng k. Đƣờng đi đƣợc tìm ngƣợc lại từ đỉnh , kề với đỉnh y.
Đƣờng đi đó là <x ; y1 ; y2 ; … ; yk-1; y>trong đó .
Lưu ý: Nếu đỉnh z không đƣợc gán nhãn, tức là x và z không liên thông thì ta coi độ dài đƣờng đi từ xđến z là .
Ví dụ:
Tìm đường đi ngắn nhất từ đỉnh A đến đỉnh các đỉnh còn lại của G trong Hình 5.2.
Hình 5.2. Đồ thị G.
Giải. Ta có :
TT A B C D E F G H I J
0 0,A
1 - 1,A 1,A 1,A
2 - - 2,B - - 2,D
3 - - - - - 3,C - 3,H 3,C
4 - - - - - - 4,J - - -
Vậy đường đi ngắn nhất từ A đến các đỉnh còn lại của G là :
Đỉnh xuất
phát A
B D C E H F J I G
Đường
đi AB=1 AD=1 ABC=2 AE=1 ADH=2 ABCF=3 ABCJ=3 ADHI=3 ABCJG=4