Tải bản đầy đủ (.pdf) (65 trang)

Giáo trình tin học trong quản lý xây dựng - Chương 5 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.93 MB, 65 trang )

Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 403
CHƯƠNG 5

QUY HOẠCH MẠNG
(NET-NETWORKS PROGRAMMING)

* MỤC TIÊU HỌC TẬP
Sau khi hoàn tất học tập chương 5, sinh viên sẽ có khả năng:
1. Mô tả các thuật ngữ chính trong mạng.
2. Nhận biết 3 dạng bài toán cơ bản trong quy hoạch mạng.
3. Sử dụng các công cụ tin học để giải bài toán quy hoạch mạng.
1.
GIỚI THIỆU
Mạng xuất hiện trong nhiều bối cảnh và dưới nhiều dạng khác
nhau:
+ Các mạng lưới đường giao thông vận tải, mạng lưới dây điện và
mạng thông tin liên lạc…
+ Sản xuất, phân phối, lập kế hoạch dự án, quản lý nguồn tài
nguyên, bố trí thiết bị
Bài toán quy hoạch mạng: là một dạng đặc biệt của các bài toán
quy hoạch tuyến tính. Ví dụ: Bài toán giao thông vận tải, bài toán
phân công công việc. Trong chương này, ba bài toán quan trọng của
quy hoạch mạng sẽ được trình bày:
+ Bài toán tìm đường đi ngắn nhất (Shorest-Route Problem);
+ Bài toán đường dây mắc loa (Minimal-Spanning Tree);
+ Bài toán cực đại lưu lượng (Maximal Flow Problem).
Trong xây dựng, 3 mô hình của quy hoạch mạng có thể dùng để
giải quyết một số bài toán trong quy hoạch và bố trí bình đồ công
trường.
Tất cả các ví dụ mô tả các loại bài toán quy hoạch mạng trong


chương này tương đối nhỏ và đơn giản hơn so với các bài toán thực tế
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 404
nhằm giúp bạn đọc dễ hiểu và áp dụng các thuật toán. Đối với những
quy hoạch mạng nhỏ và đơn giản, chúng ta có thể tìm ra ngày lời giải
tối ưu bằng cách xem xét trực quan và suy đoán. Đối với những bài
toán quy hoạch mạng lớn và phức tạp có hàng trăm, hàng ngàn nút,
chúng ta sẽ gặp khó khăn trong việc tìm lời giải bằng trực giác. Vì
vậy, chúng ta phải áp dụng các thuật toán được trình bày trong chương
này để giải quyết vấn đề dù giải bằng tay hay trên máy tính.
2.
CÁC THUẬT NGỮ CỦA MẠNG
Mạng (Network): bao gồm các điểm và các đường nối các điểm
này lại với nhau.
+ Các điểm này được gọi là các Nút (Node).

Nút cung Nút cấp: có đặc điểm là lượng chuyển tải ra khỏi nút đó
lớn hơn lượng đi vào nút đó.

Nút cầu: lượng nhận vào lớn hơn lượng chuyển tải ra khỏi nút.

Nút trung tính: lượng đi vào và đi ra khỏi nút bằng nhau.
+ Các đường nối các nút được gọi là các cung/nhánh (Arc).

Cung có hướng: Cho phép đi từ 1 nút A đến nút B và không cho
phép đi theo hướng ngược lại (ký hiệu AB).

Cung vô hướng: cho phép di chuyển theo cả hai hướng.






a) Cung có hướng AB b) Cung vô
hướng AB
Hình 5.1. Cung có hướng và cung vô hướng
+ Mạng có hướng: chỉ bao gồm các cung có hướng.
+ Mạng vô hướng: bao gồm các cung vô hướng.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 405
Tuyến: nối giữa hai nút và có thể bao gồm nhiều cung khác nhau.
+ Tuyến có hướng từ nút i đến nút j là một chuỗi các cung có
hướng từ i sang j, do đó cho phép đi từ i sang j.
+ Tuyến vô hướng từ nút i sang nút j là một chuỗi các cung vô
hướng từ i đi đến j.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 406
Ví dụ: Tuyến OT, đường đi từ O sang T có thể đi qua các cung OB -
BD - DT (O

B

D


T)






Hình 5.2. Ví dụ
+ Lưu ý rằng tuyến có hướng thỏa mãn điều kiện của tuyến vô
hướng, nhưng điều ngược lại không đúng
Liên thông: hai nút được gọi là liên thông nếu tồn tại ít nhất một
tuyến vô hướng giữa chúng.
Mạng liên thông: là mạng mà tất cả các cặp nút đều liên thông.
Mạng nhánh cây: bao gồm tất cả các nút nhưng không được nối
thành vòng.
Ví dụ: Xét 1 mạng lưới như trong Hình 8.3 như sau, trong đó:
+ x
ij
= lượng chuyển tải từ nút i đến nút j;
+ c
ij
= chi phí chuyển tải đơn vị từ nút i đến nút j











Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 407

Hình 8.3. Sơ đồ mạng

3.
BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
3.1. Định nghĩa
Bài toán tìm đường đi ngắn nhất (Shortest-Route/ Shortest-
Path Problem) là bài toán tìm lộ trình di chuyển (của người, xe máy
hay hàng hóa) từ một địa điểm này đến một địa điểm khác trên hệ
thống nhiều đường giao thông có sẵn sao cho tổng chiều dài đường đi
là ngắn nhất. Nói cách khác, nó tìm đường đi ngắn nhất xuất phát từ 1
điểm nguồn ban đầu đến một chuỗi các điểm đích khác nhau.
Ví dụ:
+ Tìm đường đi ngắn nhất từ nhà máy cung cấp bê tông tươi đến
các công trường xây dựng.
+ Tìm đường đi ngắn nhất để vận chuyển công nhân, máy móc thiết
bị từ công ty xây dựng đến các công trường xây dựng.
+ Tìm đường đi ngắn nhất từ một thành phố này đến một thành phố
khác trên hệ thống đường giao thông.
+ Tìm đường đi ngắn nhất từ nhà máy sản xuất đến nhà kho chứa
hàng.
+ Tìm đường đi ngắn nhất (thời gian ít nhất) từ nhà máy sản xuất
đến nơi tiêu thụ sản phẩm.
Thế vị của 1 nút: là khoảng cách bé nhất từ nút đầu (Nút 1) đến

nút đó:
{
}
ij
j i
i
u min u d
= +

Trong đó:
+ u
j
= Khoảng cách ngắn nhất từ nút 1 đến nút j với u
1
= 0;
+ u
i
= Khoảng cách ngắn nhất từ nút 1 đến nút i
+ d
ij
= Khoảng cách giữa nút j và nút i trước nó
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 408
3.2. Các giải thuật cho bài toán tìm đường đi ngắn nhất
Giải thuật tổng quát:
+ Giải thuật tiến;
+ Giải thuật Dijkstra;
+ Giải thuật Floyd.

Giải thuật đệ quy: Giải thuật chỉ dùng cho mạng có hướng, không
mạch vòng.
Giải theo bài toán QHTT nguyên.
Chú ý: Một số ứng dụng của bài toán tìm đường đi ngắn nhất
liên quan đến tiêu chuẩn thời gian hoặc chi phí thay vì khoảng cách.
Do đó, ta có các dạng bài toán như sau:
1- Cực tiểu quãng đường đi.
2- Cực tiểu tổng chi phí của một chuỗi các thao tác.
3- Cực tiểu lượng thời gian của một chuỗi các thao tác.
Bởi vì bài toán tìm đường đi ngắn nhất là bài toán cực tiểu hóa
nên chúng ta không thể áp dụng các giải thuật nêu ở trên nếu bài toán
có giá trị ở các cung là âm. Mặc dù trong thực tế, giá trị trên các cung
có thể là chi phí âm (tức lợi nhuận dương). Chúng ta cần các giải thuật
nâng cao hơn để giải các bài toán dạng này.
3.3. Giải thuật tiến cho bài toán Tìm đường đi ngắn nhất
- Bước 1:
+ Tìm nút nằm gần nút gốc (nút xuất phát/ nút nguồn) nhất.
+ Ghi giá trị (khoảng cách, thời gian, chi phí) từ nút xuất phát đến
nút gần nhất đó
(Lặp lại bước này với n=1,2,3…cho đến khi nút thứ n nằm gần nhất
là nút đích.)
-
Bước 2: Thành lập tập nút đã khảo sát (permanent set) gồm nút
gốc và nút gần nút gốc nhất đã xác định ở bước 1.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 409
-
Bước 3: Xác định tất cả các nút chưa khảo sát nằm gần tập nút đã

khảo sát.
Tập nút đã khảo sát (permanent set) được nối trực tiếp đến 1 hoặc
nhiều nút chưa khảo sát nào đó sẽ cung cấp một ứng viên cho nút gần
nhất thứ n.
-
Bước 4: Tìm nút nằm gần tập nút đã khảo sát (permanent set) nhất,
và ghi khoảng cách ngắn nhất đến nút này từ nút gốc (giá trị này gọi là
thế vị của nút).
Lưu ý: Với mỗi nút đã khảo sát và các ứng viên của nó, cộng khoảng
cách giữa chúng và khoảng cách ngắn nhất từ nút gốc đến nút đã khảo
sát đó. Nút nào có khoảng cách ngắn nhất sẽ là nút gần nhất thứ n và
tuyến đường ngắn nhất sẽ là tuyến đường tạo ra khoảng cách này.
- Bước 5: Lặp lại bước 3 và 4:
+ Tiếp tục lặp lại quá trình xác định thế vị của các nút trong mạng
(bằng cách cộng thế vị của nút gần nhất và khoảng cách giữa 2
nút) theo công thức:
{
}
ij
j i
i
u min u d
= +
)
+ Giá trị thế vị ghi ở nút cuối cùng chính là khoảng cách ngắn nhất
từ nút xuất phát đến nút cuối cùng.
3.4. Giải bằng QHTT Nguyên
Xét mạng gồm:
+ m nút;
+ n cung có hướng;

+ c
ij
: chi phí trên từng cung (i, j).
Hãy tìm chi phí nhỏ nhất để đi từ nút 1 đến nút m?
Chi phí trên đường đi là tổng chi phí từng đoạn tạo nên đường đi
đó.
Giải:
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 410
Gọi
0
x
1
ij
nếu không có đường nối từ nút i
đến nút j

nếu có đường nối từ nút i đến nút j

=



x
ij
= 1 (nếu ij được chọn là đường đi ngắn nhất)
Hàm mục tiêu: Min
ij ij

i j
Z c *x
=
∑∑

Ràng buộc:

ij ki
j k
1
x x 0 2,m 1
1
nếu i = 1
nếu i =
nếu i = m


− = −




∑ ∑


x
ij
= 0 hay 1 cho mỗi i và j

c

ij
ngun
Chú ý rằng bài tốn đường đi ngắn nhất là trường hợp đặc biệt
của bài tốn cực tiểu chi phí trên mạng lưu thơng. Từ đó ta sẽ xét tốn
ma trận trường (ma trận định hướng cung - nút) là tổng mơ đun đồng
nhất và có thể thay ràng buộc x
ij
= 0 hay 1 bằng
ij
x 0

. Khi đó bài
tốn trở thành:
Hàm mục tiêu: Min
ij ij
i j
c *x
∑∑

Ràng buộc:

ij ki
j k
1
x x 0 2,m 1
1
nếu i = 1
nếu i =
nếu i = m



− = −




∑ ∑


ij
x 0


3.5. Giải thuật Đệ Quy
* Phương pháp đệ quy:
Gọi u
j
= khoảng cách ngắn nhất từ nút 1 đến nút j với u
1
= 0.
Các giá trị của u
j
, j = 1,2 , n được tính tốn đệ quy dùng cơng
thức sau:

{
}
ij
j i
i

u min u d
= +

Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 411
Trong đó:
+ u
j
= Khoảng cách ngắn nhất từ nút 1 đến nút j với u
1
= 0;
+ u
i
= Khoảng cách ngắn nhất từ nút 1 đến nút i
+ d
ij
= Khoảng cách giữa nút j và nút i trước nó
Lưu ý: u
j
chỉ được tính sau khi ui đã được tính.
Nhãn của nút j là [u
j
, n] với n là nút j tạo ra khoảng cách ngắn
nhất:
{
}
ij
j i

i
u min u d
= +
= u
n
+ d
nj
.
Lưu ý: Giải thuật này chỉ dùng cho các bài toán không có vòng
(Acyclic).

3.6. Giải thuật Dijkstra cho bài toán Tìm đường đi ngắn nhất

3.6.1.
Giới thiệu
Giải thuật Dijkstra được sử dụng để tìm đường đi ngắn nhất từ
nút nguồn và các nút khác trong mạng, dùng cho cả bài toán có hay
không có mạch vòng. Giải thuật này có thể áp dụng cho các bài toán
mạng có vòng (Cyclic).
Giải thuật Dijkstra sử dụng 1 quy trình gắn nhãn đặc biệt, do đó
nó còn có tên gọi là giải thuật gắn nhãn.
Gọi:
+ u
i
là khoảng cách ngắn nhất từ nút 1 đến nút i; và
+ d
ij


0 là chiều dài cung (i, j);

+ i thể hiện nút trước trên con đường từ nút 1 đến nút j;

Nhãn của nút j được định nghĩa là: [u
j
, i] = [ u
i
+ d
ij
, i] với d
ij


0
Nhãn dùng trong giải thuật Dijkstra có 2 loại:
+ Nhãn tạm thời (Temporary/Tentative Label): nhãn này có thể bị
thay thế bởi một nhãn khác nếu tồn tại 1 đường đi ngắn hơn đến
nút đang khảo sát.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 412
Ký hiệu nhãn tạm thời: [u
j
, i] hay (u
j
, i)
+ Nhãn cố định (Permanent Label): khi không tìm được 1 đường
đi nào ngắn hơn nữa thì nhãn tạm thời được chuyển thành nhãn
cố định.
Ký hiệu nhãn cố định: [u

j
, i]* hay [u
j
, i]
3.6.2.
Giải Thuật Dijkstra
Giả sử chúng ta có một mạng gồm n nút. Giải thuật Dijkstra sẽ
tìm đường đi ngắn nhất từ nút nguồn 1 đến các nút khác trong mạng
như sau:
-
Bước 1: Gắn cho nút nguồn 1 nhãn cố định [0, -]* hoặc [0, S]*.
Gán i = 1.
Trong đó:
+ Số 0 thể hiện khoảng cách từ nút 1 đến chính nó.
+ Dấu – (hay chữ S) thể hiện nút 1 là nút nguồn (nút xuất phát –
starting node).
-
Bước 2:
+ Nếu i =1: Tính các nhãn tạm thời (d
1j
, 1) của các nút j mà từ nút
1 có thể đi đến được, biết rằng j là các nút chưa được gắn nhãn cố
định và nút 1 là nút nguồn, d
1j
là giá trị khoảng cách từ nút 1 đến
nút j.
+ Nêu i > 1: Tính các nhãn tạm thời (u
j
+ d
ij

, i) của các nút j mà từ
nút i có thể đi đến được, biết rằng j là các nút chưa được gắn
nhãn cố định và i là nút đã gắn nhãn cố định. Nút j cho chúng ta
giá trị khoảng cách u
j
+ d
ij
nhỏ nhất sẽ là nút được gắn nhãn cố
định [u
j
+ d
ij
, i].
+ Nếu nút j đã được gắn 1 nhãn tạm thời (u
j
, k) đến từ 1 nút k nào
đó, và nếu khoảng cách đến từ nút i là u
i
+ d
ij
< u
j
(khoảng cách
đến từ nút k), chúng ta thay thế nhãn tạm thời (u
j
, k) bằng (u
i
+
d
ij

, i).
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 413
-
Bước 3:
+ Nếu tất cả các nút đã được gắn nhãn cố định. Ta dừng và đọc kết
quả tìm đường đi ngắn nhất từ nút 1 đến nút k bằng cách theo
chiều ngược dòng.
+ Ngược lại, chọn 1 nút r nào đó chưa được gắn nhãn cố định [u
r
, s]
có u
r
bé nhất trong các nút được gắn nhãn tạm thời. Gán i = r, lặp
lại bước 2.
Chú ý:
-
Chúng ta phải tính (n-1) vòng lặp để tìm khoảng cách ngắn nhất đến
tất cả các nút.
-
Nếu chúng ta chỉ muốn tìm đường đi ngắn nhất từ nút nguồn 1 đến
một nút k nào đó thì chúng ta có thể dừng khi nút k được gắn nhãn cố
định .
-
Nếu chúng ta muốn tìm đường đi ngắn nhất từ một nút k bất kỳ đến
các nút trong mạng thì chúng ta sẽ bắt đầu từ nút này bằng cách gán
nó nhãn cố định [0, -]* hoặc [0, S]*. Sau đó, tiến hành các bước tiếp
theo của giải thuật Dijkstra.

3.7. Ví dụ minh họa: Công ty sản xuất nội thất Phương Nam
Hàng ngày công ty sản xuất nội thất Phương Nam phải vận
chuyển các sản phẩm nội thất (bàn, ghế, tủ…) từ nhà máy sản xuất
đến nhà kho chứa hàng. Ông Nam, giám đốc công ty, muốn tìm đường
đi ngắn nhất từ nhà máy sản xuất (nút 1) đến nhà kho (nút 6). Cho biết
sơ đồ mạng lưới đường giao thông được thể hiện như trong hình 8.4
sau đây (với chiều dài tuyến đường tính theo đơn vị km).
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 414

Hình 5.4. Sơ đồ các tuyến đường giao thông từ nhà máy đến nhà
kho
Giải bài toán bằng Giải thuật tiến
Cách 1: Giải bằng hình vẽ
Quan sát hình 8.4, chúng ta thấy rằng nút nằm gần nút gốc (nút
1-nhà máy sản xuất) nhất là nút 2, với khoảng cách là 100 km. Như
vậy, chúng ta có thể nối nút 1 và nút 2 và ghi vào giá trị 100. Khi đó,
nút 2 sẽ là nút vào tập nút đã khảo sát.





Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 415



Hình 5.5. Vòng lặp thứ nhất
Tiếp theo, chúng ta phải xác định tất cả các nút xuất phát từ tập
nút đã khảo sát (nút 1 và nút 2). Đó chính là nút 3, 4 và 5.
Chúng ta sẽ xác định đường đi ngắn nhất từ tập nút đã khảo sát
(nút 1 và nút 2) đến nút 3, 4 và 5.
Có 1 đường đi xuất phát từ nút 1 là tuyến đường 1-3; và 3 đường
đi xuất phát từ nút 2 là tuyến đường 2-3, tuyến đường 2-4 và tuyến
đường 2-5. Đường đi có khoảng cách ngắn nhất là theo tuyến đường
1-2-3 (100+50 = 150 km). Vì vậy, nút 3 sẽ trở thành nút vào trong tập
nút đã khảo sát. Và ta ghi giá trị 150 là thế vị của nút 3.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 416

Hình 5.6. Vòng lặp thứ hai
Tương tự, chúng ta lặp lại quá trình để xác định thế vị cho nút 4
và 5. Tập nút đã khảo sát lúc này gồm có nút 1, 2 và 3. Tiếp theo, ta
phải xác định nút tiếp theo vào trong tập nút đã khảo sát. Lúc này,
chúng ta có nút 4, 5 là các nút nằm gần tập tập nút đã khảo sát (xuất
phát từ nút 2 và nút 3). Có 3 đường đi xuất phát từ tập nút đã khảo sát
(nút 1, 2, và 3) đến các nút 4 và 5 là các tuyến đường 2-4, 2-5 và 3-5.
Khoảng cách ngắn nhất là lộ trình 1-3- 5 (150 + 40 = 190 km). Vì vậy,
nút 5 sẽ là nút tiếp theo vào trong tập nút đã khảo sát.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 417


Hình 5.7. Vòng lặp thứ ba
Tập nút đã khảo sát lúc này gồm có nút 1, 2 , 3 và 5. Tiếp theo, ta
phải xác định nút tiếp theo vào trong tập nút đã khảo sát. Lúc này,
chúng ta có nút 4 và nút 6 là các nút nằm gần tập tập nút đã khảo sát
(xuất phát từ nút 5). Có 3 đường đi xuất phát từ tập nút đã khảo sát
(nút 1, 2 , 3 và 5) đến các nút 4 và 6 là các tuyến đường 2-4 5-4 và 5-
6. Khoảng cách ngắn nhất là lộ trình 1-3- 5-6 (190 + 100 = 290 km).
Vì vậy, nút 6 sẽ là nút tiếp theo vào trong tập nút đã khảo sát.

Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 418
Hình 5.7. Vòng lặp thứ tư (cuối cùng)
- Như vậy, đường đi có khoảng cách ngắn nhất từ nút 1 đến nút 6 là
290 km theo tuyến đường 1-3-5-6.
Cách 2: Giải bằng cách lập bảng
Bảng 5.1. Giải bài toán tìm đường đi ngắn nhất bằng cách lập bảng

n
Tập nút
đã khảo sát
nối trực tiếp với
nút chưa khảo sát

Nút
chưa
khảo
sát
Tuyến

đường
khảo
sát

Tổng
khoảng cách
(Thế vị nút
chưa khảo
sát)
Khoảng
cách
ngắn
nhất
Nút
gần
nhất
thứ n
Đoạ
n
nút
nối
1
{
}
1


1
1
2

3
1-2
1-3
100
200
100

Nút 2

1-2

2

{
}
1,2


1
2
2
2
3
3
4
5
1-3
2-3
2-4
2-5

200
100+ 50=150
100+200=300
100+100=200
150

Nút 3


2-3


3
{
}
1,2,3


2
2
3
4
5
5
2-4
2-5
3-5
300
200


150+40=190


190


Nút 5


3-5

{
}
1,2,3,5


4
2
5
5
4
4
6
2-4
5-4
5-6
300

190+150=3401
90+100=290



290


Nút 6


5-6
3.7.1.
Giải bằng giải Thuật Dijkstra


(100, 1)
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 419



Hình 5.8a. Vòng lặp thứ nhất




Hình 5.8b. Vòng lặp thứ nhất


[0, -]

(200, 1)
[0, -]
(200, 1)
[100, 1]
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 420



Hình 5.9a. Vòng lặp thứ hai
[0, -]
(150, 2)
[100, 1]
(300, 2)
(200, 2)
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 421




Hình 5.9b. Vòng lặp thứ hai






Hình 5.10. Vòng lặp thứ ba
[100, 1]
(300, 2)
[150, 2] (190, 3)
[100, 1]
(300, 2)
[150, 2] [190, 3]
(290, 5)
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 422





Hình 5.11. Vòng lặp thứ tư





Hình 5.12. Vòng lặp thứ năm
[100, 1]
[300, 2]
[150, 2] [190, 3]
[290, 5]
[100, 1]

(300, 2)
[150, 2] [190, 3]
[290, 5]
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 423
3.8. Sử dụng các phần mềm để giải bài toán Tìm đường đi
ngắn nhất (Shortest-Route Problem)

Công ty Stagecoach Shipping cần phải vận chuyển cam bằng 6
xe tải từ thành phố Los Angeles đến nơi tiêu thụ tại 6 thành phố khác
ở phía Tây và Trung Tây của nước Mỹ. Cho biết khoảng cách và thời
gian (tính bằng giờ) đối với 1 xe tải di chuyển từ thành phố Los
Angeles đến các thành phố khác được thể hiện ở hình vẽ sau.

Hình. Hệ thống đường giao thông từ Los Angeles đến các thành
phố
Bạn hãy giúp giám đốc công ty muốn xác định đường đi ngắn
nhất (nghĩa là phải tối thiểu thời gian vận chuyển cam) của các xe tải
từ điểm nguồn (thành phố Los Angeles) đến các nơi tiêu thụ.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 424
3.8.1.
Phần mềm QM
Bước 1.
-
Menu Module


chọn Networks:

- Menu File-New- chọn 2. Shortest Route (Bài toán tìm đường đi
ngắn nhất):

-
Hộp thoại Creat data set for Networks/ Shortest Route (Nhập dữ
liệu cho Bài toán Tìm đường đi ngắn nhất) xuất hiện:
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 425

- Title: Nhập tên Bài toán
- Number of Branches: Nhập số đường đi (bằng cách kéo mouse
sang phải)
- Row names: chọn kiểu tên cho cung (đường đi)
- Network type:
+ Undirected: Giá trị (Khoảng cách/Chi phí/Thời gian) đi và về
trên các tuyến đường là như nhau (đường 2 chiều/không phải đường 1
chiều).
+ Directed: Đường 1 chiều
Bước 2. Bảng nhập số liệu (Khoảng cách/Chi phí/Thời gian từ một
nút đến một nút) sẽ xuất hiện.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 426


-
Origin: chọn nút đầu tiên (nút nguồn).
-
Destination: Chọn nút cuối cùng (nút đích).
-
Khai báo thông số của đường đi:
+ Start node: nút đầu
+ End node: nút cuối
+ Distance: khoảng cách/thời gian/chi phí
Bước 3. Bấm chọn (Giải bài toán)


Bảng kết quả cho biết Đường đi ngắn nhất từ nút 1 đến nút 7 là 43
giờ với lộ trình 1-3-4-7
* Lưu ý:
Ta có thể xác định đường đi ngắn nhất trong sơ đồ mạng lưới bởi 2
nút bất kỳ bằng cách lựa chọn Origin: chọn nút đầu tiên (nút nguồn)
và Destination: Chọn nút cuối cùng (nút đích). Ví dụ như khoảng
cách ngắn nhất từ nút 1 đến nút 5 sẽ có kết quả sau:
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Chương 5. QUY HOẠCH MẠNG (NETWORKS PROGRAMMING)
GV. ThS. Nguyễn Thanh Phong- Trường Đại học Mở Tp. HCM 427


3.8.2.
Phần mềm Win QSB
Bước 1. Double Click vào biểu tượng NET (Network Modeling)
Bước 2. Menu File


chọn New Problem

Hộp thoại NET
Problem Specification xuất hiện:

- Problem Type: chọn Shortest Path Problem (Bài toán Tìm đường
đi ngắn nhất)
- Objective Criterion: chọn Minimization (Cực tiểu hàm mục tiêu,
mặc định đối với bài toán Tìm đường đi ngắn nhất)
- Data Entry Format:
+ Spreadsheet Matrix Form: Nhập số liệu dạng ma trận (nên
chọn)
+ Graphic Model Form: Nhập số liệu dạng đồ họa
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.

×