Để phát triển hệ thống giao thông đường thủy, người ta phải phát triển đồng bộ nhiều yếu tố như: khả năng thông luồng giao thông, độ sâu, độ rộng các dòng sông; mở rộng mạng lưới lưới bế
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
LÊ HOÀNG AN
ỨNG DỤNG GIẢI THUẬT DI TRUYỀN
TÌM ĐƯỜNG ĐI TỐI ƯU TRONG GIAO THÔNG ĐƯỜNG THỦY
TẠI TỈNH VĨNH LONG
LUẬN VĂN THẠC SĨ KỸ THUẬT
Đà Nẵng, Năm 2017
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
LÊ HOÀNG AN
ỨNG DỤNG GIẢI THUẬT DI TRUYỀN
TÌM ĐƯỜNG ĐI TỐI ƯU TRONG GIAO THÔNG ĐƯỜNG THỦY
TẠI TỈNH VĨNH LONG
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ KỸ THUẬT
Người hướng dẫn khoa học: TS PHẠM MINH TUẤN
Đà Nẵng - Năm 2017
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
- Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của TS Phạm Minh Tuấn
- Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và trung thực về tên tác giả, tên công trình, thời gian và địa điểm công bố
Tác giả luận văn
Lê Hoàng An
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
MỤC LỤC ii
TÓM TẮT LUẬN VĂN v
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢNG vii
DANH MỤC CÁC HÌNH viii
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ đề tài 2
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Mục đích và ý nghĩa của đề tài 2
6 Cấu trúc của luận văn 3
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 LÝ THUYẾT ĐỒ THỊ 4
1.1.1 Các khái niệm trên đồ thị 4
1.1.1.1 Định nghĩa đồ thị 4
1.1.1.2 Các thuật ngữ cơ bản 5
1.1.1.3 Biểu diễn đồ thị trên máy tính 7
1.1.2 Bài toán đường đi ngắn nhất 9
1.1.2.1 Đặt vấn đề 9
1.1.2.2 Phát biểu bài toán 9
1.1.3 Các thuật toán tìm đường đi ngắn nhất 10
1.1.3.1 Thuật toán Dijsktra 10
1.1.3.2 Thuật toán Bellman-Ford 11
1.2 GIẢI THUẬT DI TRUYỀN 13
1.2.1 Giới thiệu 13
1.2.2 Nguyên tắc thiết kế giải thuật di truyền 13
1.2.2.1 Các toán tử di truyền 14
1.2.2.2 Các thành phần của giải thuật di truyền 14
1.2.2.3 Các bước của giải thuật di truyền 15
1.2.3 Một số ứng dụng của giải thuật di truyền 16
1.2.3.1 Bài toán Người bán hàng du hành (TSP) 16
Trang 51.2.3.2 Bài toán lập lịch 18
1.2.3.3 Lập thời khóa biểu cho trường học 18
1.2.3.4 Phân hoạch đối tượng và đồ thị 19
1.3 ĐẶC ĐIỂM GIAO THÔNG ĐƯỜNG THỦY TỈNH VĨNH LONG 19
1.3.1 Các nhân tố ảnh hưởng đến giao thông đường thủy tỉnh Vĩnh Long 19
1.3.1.1 Vị trí địa lý 19
1.3.1.2 Địa hình 20
1.3.1.3 Khí hậu 20
1.3.1.4 Thủy văn 20
1.3.2 Thực trạng giao thông đường thủy tỉnh Vĩnh Long 21
1.3.2.1 Quá trình phát triển giao thông đường thủy 21
1.3.2.2 Mạng lưới giao thông đường thủy tỉnh Vĩnh Long 21
CHƯƠNG 2 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TÌM ĐƯỜNG ĐI TỐI ƯU TRONG GIAO THÔNG ĐƯỜNG THỦY TẠI TỈNH VĨNH LONG 26
2.1 PHÁT BIỂU BÀI TOÁN 26
2.2 XÂY DỰNG ỨNG DỤNG 26
2.2.1 Khảo sát, phân tích dữ liệu 26
2.2.1.1 Về hệ thống sông 26
2.2.1.2 Về cảng, bến hàng hóa 27
2.2.2 Tổ chức dữ liệu 27
2.2.2.1 Danh bạ các nút giao, các bến cảng, bến hàng hóa 27
2.2.2.2 Khoảng cách giữa các nút giao, bến cảng, bến hàng hóa 28
2.2.3 Triển khai, xây dựng ứng dụng 29
2.2.3.1 Khởi tạo quần thể 30
2.2.3.2 Hàm đánh giá cá thể 31
2.2.3.3 Lựa chọn cá thể 32
2.2.3.4 Lai ghép 32
2.2.3.5 Đột biến 33
CHƯƠNG 3 THỬ NGHIỆM VÀ ĐÁNH GIÁ 34
3.1 GIAO DIỆN CHƯƠNG TRÌNH 34
3.2 THỬ NGHIỆM, ĐÁNH GIÁ 37
3.2.1 Tìm đường đi qua các nút giao giữa các con sông 37
3.2.1.1 Thử nghiệm lần 1 39
3.2.1.2 Thử nghiệm lần 2 40
3.2.1.3 Thử nghiệm lần 3 42
Trang 63.2.1.4 Thử nghiệm lần 4 44
3.2.1.5 Thử nghiệm lần 5 46
3.2.1.6 Thử nghiệm lần 6 47
3.2.1.7 Thử nghiệm lần 7 48
3.2.1.8 Thử nghiệm lần 8 50
3.2.1.9 Một số thử nghiệm khác 51
3.2.2 Tìm đường đi qua các nút giao, các cảng sông, bến hàng hóa 57
3.2.2.1 Thử nghiệm lần 1 58
3.2.2.2 Thử nghiệm lần 2 59
3.2.2.3 Thử nghiệm lần 3 59
3.2.2.4 Thử nghiệm lần 4 60
3.2.2.5 Thử nghiệm lần 5 60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 62
TÀI LIỆU THAM KHẢO 63 PHỤ LỤC
QUYẾT ĐỊNH GIAO ĐỀ TÀI (bản sao)
BẢN SAO KẾT LUẬN CỦA HỘI ĐỒNG, BẢN SAO NHẬN XÉT CỦA CÁC PHẢN BIỆN
Trang 7TÓM TẮT LUẬN VĂN
ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TÌM ĐƯỜNG ĐI TỐI ƯU
TRONG GIAO THÔNG ĐƯỜNG THỦY TẠI TỈNH VĨNH LONG
Tóm tắt - Giải thuật di truyền và bài toán đường đi ngắn nhất là một trong số các vấn đề
mang tính thực tiễn cao trong toán học và tin học Trong đó, giải thuật di truyền là phương
pháp tìm kiếm mô phỏng quá trình sinh tồn, tiến hóa của tự nhiên Đó là sự chọn lọc các cá
thể có độ thích nghi cao, loại bỏ các cá thể có độ thích nghi thấp tiến tới sàng lọc ra các cá thể
tốt nhất Bài toán đường đi ngắn nhất là vấn đề tìm đường đi giữa hai đỉnh trong một đồ thị
hay giữa hai địa điểm trong mạng giao thông với điều kiện chi phí là tối thiểu Trên thực tế,
vấn đề này đã được giải quyết bằng một số thuật toán cổ điển Tuy nhiên, việc tìm đường đi
giữa hai địa điểm với ràng buộc phải qua một số địa điểm khác các giải thuật cổ điển này
chưa giải quyết được Do đó, trong khuôn khổ luận văn này, tôi sẽ đề xuất giải thuật di truyền
để giải quyết bài toán vừa nêu và ứng dụng vào thực tiễn tìm đường đi tối ưu trong mạng giao
thông đường thủy tỉnh Vĩnh Long
Từ khóa – giải thuật di truyền, GAs, bài toán đường đi ngắn nhất, giao thông đường thủy
APPLYING GENETIC ALGORITHMS TO FIND THE OPTIMAL ROUTE IN
THE WATERWAY NETWORK OF VINH LONG PROVINCE
Abstract - Genetic algorithms and shortest path problems are among the most practical issues
in mathematics and computing Of which, genetic algorithm is the search method to simulate
the process of survival, evolution of nature It is the selection of highly adaptive individuals,
eliminating the low adaptability of individuals to the best individual screening The shortest
path problem is the problem of finding a path between two vertices in a graph or between two
locations in a transport network, provided that the cost is minimal In fact, this problem has
been solved by some classical algorithms However, finding paths between two places with
mandatory must through some different places, these classical algorithms are not solved
Therefore, within this thesis, I will propose genetic algorithms to solve the above mentioned
problems and apply them to the practice of navigating the waterway network of Vinh Long
province
Key words – genetic algorithms, GAs, shortest path problem, waterway traffic
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT
Trang 9DANH MỤC CÁC BẢNG
Số hiệu
Trang 10DANH MỤC CÁC HÌNH
Số hiệu
Trang 12MỞ ĐẦU
1 LÝ DO CHỌN ĐỀ TÀI
Giao thông vận tải là lĩnh vực thuộc kết cấu hạ tầng, có vai trò quyết định trong việc phát triển kinh tế vùng miền Giao thông vận tải tạo điều kiện cho sự phát triển kinh tế - xã hội, an ninh quốc phòng, phục vụ cho sự nghiệp Công nghệp hóa – hiện đại hoá đất nước Vì lẽ đó, giao thông vận tải được xem như là huyết mạch của mỗi địa phương trong quá trình phát triển toàn diện tất cả các lĩnh vực kinh tế - xã hội của địa phương đó
Đặc điểm địa lý của Đồng bằng sông Cửu Long (ĐBSCL) nói chung và tỉnh Vĩnh Long nói riêng là hệ thống sông ngòi, kênh rạch dày đặc, thuận lợi cho giao thông đường thủy bậc nhất nước ta Trong đó có rất nhiều tuyến sông, kênh rạch cho phép các tàu có trọng tải hàng trăm tấn dễ dàng đi lại Bên cạnh đó, tất cả các sông chính cùng các phụ lưu và hệ thống kênh rạch đã tạo nên một mạng lưới liên hoàn chảy qua nhiều khu công nghiệp tập trung, khu dân cư, các trung tâm kinh tế - xã hội,
…tạo nên một sự kết nối, giao thương vô cùng thuận lợi Ngoài ra cũng có nhiều cảng sông tiếp cận trực tiếp được các hệ thống giao thông đường bộ Hầu hết các tuyến sông đều có vị trí tiếp cận với các cảng biển quan trọng, tạo nên những điểm nối giao lưu giữa các phương thức vận tải Vì vậy, việc quan tâm nghiên cứu xây dựng, phát triển
hệ thống giao thông đường thủy nhằm tối ưu khả năng khai thác vận tải trên các dòng sông này là điều rất cần thiết
Để phát triển hệ thống giao thông đường thủy, người ta phải phát triển đồng bộ nhiều yếu tố như: khả năng thông luồng giao thông, độ sâu, độ rộng các dòng sông;
mở rộng mạng lưới lưới bến cảng, nâng cao năng lực vận chuyển của các cảng hàng hóa, các bến tàu khách hay các bến chuyên dùng, … Ngoài ra, việc có thể tìm được một con đường tối ưu khi lưu thông trên các dòng sông cũng đóng vai trò cực kỳ to lớn quyết định tính hiệu quả của việc khai thác giao thông đường thủy
Trên thế giới, đã có nhiều phương pháp khác nhau giải quyết việc tìm đường đi tối ưu trong một mạng giao thông dựa trên thuật toán Dijsktra, thuật toán Bellman-Ford, giải thuật tìm kiếm A*, thuật toán Johnson hay Lý thuyết nhiễu Tuy nhiên, các thuật toán này chỉ dừng lại ở mức giải quyết tìm đường đi ngắn nhất giữa hai địa điểm cho trước Trong khi đó, thực tế việc tham gia trong mạng giao thông, nhu cầu đi từ địa điểm này đến địa điểm kia và cần phải thông qua một số địa điểm khác là rất phổ biến
Chính vì vậy, tôi quyết định chọn đề tài “Ứng dụng giải thuật di truyền tìm đường đi tối ưu trong giao thông đường thủy tại tỉnh Vĩnh Long” làm đề tài luận
văn thạc sĩ Trong đề tài này, tôi đề xuất phương pháp giải quyết việc tìm đường đi tối
ưu qua các địa điểm trong mạng giao thông đường thủy tại tỉnh Vĩnh Long bằng giải thuật di truyền với hy vọng tìm ra được giải pháp hiệu quả nhất
Trang 132 MỤC TIÊU VÀ NHIỆM VỤ ĐỀ TÀI
2.1 Mục tiêu
Mục tiêu của đề tài là xây dựng chương trình cho phép tìm ra được đường đi tối
ưu đi từ địa điểm này đến địa điểm kia với điều kiện phải thông qua một số địa điểm khác trong mạng giao thông đường thủy tại tỉnh Vĩnh Long bằng giải thuật di truyền
2.2 Nhiệm vụ
Đề tài cần giải quyết được các vấn đề sau đây:
- Lý thuyết đồ thị và bài toán đường đi ngắn nhất,
- Giải thuật di truyền và các nguyên lý thiết kế giải thuật di truyền,
- Một số ứng dụng của giải thuật di truyền,
- Đặc điểm hệ thống giao thông đường thủy tại tỉnh Vĩnh Long,
- Đề xuất giải pháp và triển khai giải quyết vấn đề tìm đường đi tối ưu trong giao thông đường thủy tại tỉnh Vĩnh Long bằng giải thuật di truyền
3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
3.1 Đối tượng nghiên cứu
- Lý thuyết đồ thị,
- Giải thuật di truyền,
- Hệ thống giao thông đường thủy tại tỉnh Vĩnh Long,
- Một số công trình nghiên cứu khoa học có liên quan
3.2 Phạm vi nghiên cứu
Xây dựng giải thuật di truyền giải quyết việc chọn đường đi tối ưu đi từ địa điểm này đến địa điểm kia với điều kiện phải thông qua một số địa điểm khác trên hệ thống giao thông đường thủy tại tỉnh Vĩnh Long
4 PHƯƠNG PHÁP NGHIÊN CỨU
Tôi sử dụng kết hợp nhiều phương pháp, trong đó chủ yếu là nghiên cứu lý thuyết và nghiên cứu thực nghiệm
4.1 Phương pháp lý thuyết
- Thu thập, nghiên cứu các tài liệu về lý thuyết đồ thị, giải thuật di truyền,
- Nghiên cứu về giao thông đường thủy, đặc điểm hệ thống giao thông đường thủy tại tỉnh Vĩnh Long
Trang 145.2 Ý nghĩa của đề tài
Về khoa học: Nghiên cứu giải thuật di truyền và đặc điểm hệ thống giao thông
đường thủy, hệ thống sông ngòi, bến bãi, cảng hàng hóa tại tỉnh Vĩnh Long, từ đó đưa
ra giải pháp tìm đường đi tối ưu đi qua các địa điểm cho trước
Về thực tiễn: Đề tài sẽ góp phần nâng cao hiệu quả trong giao thông đường
thủy nhằm tạo tiền đề phát triển kinh tế - xã hội địa phương
6 CẤU TRÚC CỦA LUẬN VĂN
Luận văn được tổ chức thành 3 chương chính như sau:
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Nội dung chương này sẽ trình bày các vấn đề cơ bản về lý thuyết đồ thị bao gồm các khái niệm, cách biểu diễn đồ thị trong máy tính, bài toán đường đi ngắn nhất và các thuật toán cổ điển tìm kiếm đường đi ngắn nhất trên đồ thị
Bên cạnh đó, nội dung chương này cũng đề cập đến giải thuật di truyền, nguyên tắc thiết kế giải thuật di truyền và một số ứng dụng tiêu biểu của giải thuật di truyền Ngoài ra, nội dung chương này cũng trình bày khái quát về các yếu tố sẽ ảnh hưởng đến giao thông đường thủy và đặc điểm của giao thông đường thủy, đặc điểm của hệ thống sông ngòi tại tỉnh Vĩnh Long
CHƯƠNG 2: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TÌM ĐƯỜNG ĐI TỐI ƯU TRONG GIAO THÔNG ĐƯỜNG THỦY TẠI TỈNH VĨNH LONG
Nội dung chương chủ yếu đi vào phân tích bài toán, các bước triển khai xây dựng
hệ thống tìm đường dựa vào giải thuật di truyền từ việc phân tích, tổ chức dữ liệu đến việc triển khai các thuật toán cụ thể trên dữ liệu thu thập được để giải quyết bài toán
CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ
Nội dung chương chủ yếu trình bày về giao diện hệ thống tìm đường, thử nghiệm
hệ thống và đánh giá, phân tích kết quả thu được
Trang 15Đồ thị là một cấu trúc rời rạc bao gồm các đỉnh và các cạnh nối các đỉnh đó
Gọi V là tập đỉnh, E = {e = (u,v): u,v V} là tập cạnh, và G = (V,E) gọi là đồ thị
Chúng ta phân biệt các loại đồ thị khác nhau bởi kiểu và số lượng cạnh nối hai
đỉnh nào đó của đồ thị Khi đó, các loại đồ thị: đơn đồ thị vô hướng, đa đồ thị vô
hướng, đơn đồ thị có hướng, đa đồ thị có hướng
a Định nghĩa 1
Đơn đồ thị vô hướng G = (V,E) bao gồm V là tập các đỉnh và E là tập các cặp
không có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh
Ví dụ 1.1:
Hình 1.1 Ví dụ về đơn đồ thị vô hướng
Trong hình 1.1, G1 là đơn đồ thị, G2 không là đơn đồ thị vì tồn tại 2 cặp đỉnh
có nhiều hơn một cạnh nối giữa chúng, G3 cũng không là đơn đồ thị vì có một cạnh có
điểm đầu và điểm cuối trùng nhau
b Định nghĩa 2
Đa đồ thị vô hướng G= (V, E) bao gồm V là tập các đỉnh, và E là tập các cặp
không có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh Hai cạnh e1 và e2
được gọi là cạnh lặp nếu chúng cùng tương ứng với một cặp đỉnh
Hình 1.2 Ví dụ về đa đồ thị vô hướng (e1 và e2 là các cạnh song song)
Như vậy, ta nhận thấy mỗi đơn đồ thị đều là đa đồ thị, nhưng không phải đa đồ
thị nào cũng là đơn đồ thị, vì trong đa đồ thị có thể có hai (hoặc nhiều hơn) cạnh nối
giữa một cặp đỉnh nào đó
c Định nghĩa 3
Trang 16Đơn đồ thị có hướng G = (V, E) bao gồm V là tập các đỉnh và E là tập các cặp
có thứ tự gồm hai phần tử khác nhau của V gọi là các cung
Ví dụ 1.3:
1.1.1.2 Các thuật ngữ cơ bản
- Khuyên: cạnh (cung) e gọi là khuyên nếu e có dạng (v,v)
- Cạnh (cung) lặp: hai cạnh (cung) cùng tương ứng với một cặp đỉnh
- Đỉnh kề: Nếu (u,v) là cạnh (hoặc cung) của đồ thị thì v gọi là kề của u Trong
đồ thị vô hướng, nếu v kề u thì u cũng kề v
- Cạnh liên thuộc: Trong đồ thị vô hướng, cạnh e=(u,v) gọi là cạnh liên thuộc với đỉnh u và liên thuộc với đỉnh v
- Bậc của đỉnh: trong đồ thị vô hướng, bậc của đỉnh v là số cạnh liên thuộc với
Đỉnh u gọi là đỉnh đầu, còn đỉnh v gọi là đỉnh cuối của đường đi Đường đi có
đỉnh đầu trùng với đỉnh cuối (tức là u = v) được gọi là chu trình Đường đi hay chu trình được gọi là đơn nếu như không có cạnh nào bị lặp lại
Trang 17Ví dụ 1.5:
Xét đồ thị ở hình 1.5:
Hình 1.5 Ví dụ các thuật ngữ trên đồ thị vô hướng
Ta có:
- a d, c, f, e là đường đi đơn độ dài 4
- d, e, c, a không là đường đi, do (c,e) không phải là cạnh của đồ thị
- Dãy b, c, f, e, b là chu trình độ dài 4
- Đường đi a, b, e, d, a, b có độ dài là 5 không phải là đường đi đơn, do cạnh (a, b) có mặt trong nó 2 lần
Ví dụ 1.6: Xét đồ thị ở hình 1.6:
Hình 1.6 Ví dụ các thuật ngữ trên đồ thị có hướng
Ta có:
- a, d, c, f, e là đường đi đơn độ dài 4
- d, e, c, a không là đường đi, do (c,e) không phải là cạnh của đồ thị
- Dãy b, c, f, e, b là chu trình độ dài 4
- Đường đi a, b, e, d, a, b có độ dài là 5 không phải là đường đi đơn, do cạnh (a, b) có mặt trong nó 2 lần
- Đồ thị liên thông: Đồ thị vô hướng G = (V, E) được gọi là liên thông nếu luôn
tìm được đường đi giữa hai đỉnh bất kỳ của nó
- Đồ thị liên thông mạnh: Đồ thị có hướng G = (V, E) được gọi là liên thông
mạnh nếu luôn tìm được đường đi giữa hai đỉnh bất kỳ của nó
- Đồ thị liên thông yếu: Đồ thị có hướng G = (V, A) được gọi là liên thông yếu
nếu đồ thị vô hướng tương ứng với nó là vô hướng liên thông
Ví dụ 1.7: Xét hai đồ thị có hướng ở hình 1.7:
Trang 18Hình 1.7 Ví dụ về đồ thị có hướng liên thông
Ta có: G là độ thị liên thông mạng, H là đồ thị liên thông yếu
1.1.1.3 Biểu diễn đồ thị trên máy tính
a Dùng ma trận kề
Xét đơn đồ thị G = (V,E) Ma trận A = {ai,j : i,j=1, 2, ,n} với ai, j = 0, nếu (i,j)
E và ai,j = 1, nếu (i,j) E, i, j=1, 2, ,n gọi là ma trận kề của đồ thị G
Ví dụ 1.8:
Hình 1.8 Đồ thị vô hướng G và đồ thị có hướng G1
Ma trận kề của G như sau:
1 2 3 4 5 61
2345
2345
* Tính chất của ma trận kề của đồ thị vô hướng
- Tính đối xứng: a[i,j ]= a[j,i], i,j = 1,2, ,n
- Tổng các phần tử nằm trên dòng i (cột j) bằng bậc của đỉnh i (đỉnh j)
- Gọi aijp , i,j=1, 2, ,n là phần tử của ma trận Ap =A.A A (p thừa số) Khi đó,
aijp , i,j=1, 2, ,n là số đường đi khác nhau từ đỉnh i đến đỉnh j qua p -1 đỉnh trung gian
Trang 19* Tính chất của ma trận kề của đồ thị có hướng
- Không chắc chắn là ma trận đối xứng
- Tổng các phần tử trên dòng i bằng bán bậc ra của đỉnh i và tổng các phần từ trên cột j bằng bán bậc vào của đỉnh j
- Tương tự tính chất thứ 3 của đồ thị vô hướng
* Ma trận kề của đa đồ thị: a[i,j] = số cạnh (cung) nối hai đỉnh i, j
Ưu điểm lớn nhất của phương pháp biểu diễn đồ thị bằng ma trận kề là khi muốn biết hai đỉnh u,v có kề nhau trên đồ thị hay không, chúng ta chỉ thực hiện một phép so sánh duy nhất Nhược điểm lớn nhất của phương pháp này là không phụ thuộc vào số cạnh của đồ thị, ta luôn phải sử dụng nxn đơn vị bộ nhớ để lưu trữ ma trận kề của nó
2345
sử dụng 2m đơn vị bộ nhớ Nhược điểm của cách biểu diễn này là để xác định những
1, nếu i là đỉnh đầu của cung ej-1, nếu i là đỉnh cuối của cung ej
0, nếu i không là đầu mút của cung ej
e4
e5 e8
e7 e9
Trang 20đỉnh nào của đồ thị là kề với một đỉnh cho trước chúng ta phải làm cỡ m phép so sánh (duyệt qua danh sách tất cả các cạnh của đồ thị)
Trong trường hợp đồ thị có trọng số ta cần thêm m đơn vị bộ nhớ để lưu trữ trọng số của các cạnh
Ta có thể đồ thị hóa bài toán bằng cách xem các nút giao thông là đỉnh của đồ thị, đoạn đường giữa các nút giao thông là cạnh nối giữa hai đỉnh tương ứng Trên mỗi cạnh của đồ thị này, ta gán một số dương, ứng với chiều dài của đoạn đường, thời gian
đi qua đoạn đường hoặc cước phí vận chuyển trên đoạn đường đó, một đồ thị như vậy được gọi là đồ thị có trọng số
Đồ thị có trọng số là đồ thị G=(V,E) mà mỗi cạnh (hoặc cung) được gán một giá trị gọi là trọng số ứng với cạnh (hoặc cung) đó
1.1.2.2 Phát biểu bài toán
a Đường đi ngắn nhất giữa hai đỉnh
Cho đơn đồ thị liên thông có trọng số G=(V,E), tìm đường đi ngắn nhất từ một đỉnh s cho trước đến một đỉnh f trong G
Kết quả của bài toán này là đường đi ngắn nhất giữa một cặp đỉnh cụ thể là s
và f
Nếu như đồ thị không có chu trình âm thì ta có thể chứng minh được rằng một trong những đường đi ngắn nhất là đường đi cơ bản Việc tìm đường đi ngắn nhất giữa
2 đỉnh s và f có thể áp dụng thuật toán sau:
Gọi a[u,v] là trọng số của cạnh (u,v) Qui ước a[v,v]=0 với v V
Đặt d[s,v] là khoảng cánh từ s tới v Để tìm đường đi từ s tới f ta nhận thấy rằng luôn tồn tại f1≠ f sao cho d[s,f]=d[s,f1]+a[f1,f]
Trang 21Đỉnh f1 đó là đỉnh liền trước trong đường đi từ s tới f Nếu f1≡ s thì kết thúc trái lại ta tìm đỉnh f2 sao cho d[s,f1]=d[s,f2]+a[f2,f] Cứ tiếp tục như vậy sau hữu hạn bước
ta xác định được đường đi ngắn nhất từ s tới f
b Đường đi ngắn nhất từ một định đến mọi đỉnh còn lại
Cho đơn đồ thị liên thông có trọng số G=(V,E), tìm đường đi ngắn nhất từ một đỉnh s cho trước đến mọi đỉnh trong G
Đối với bài toán này, ta cần tìm đường đi ngắn nhất từ đỉnh đang xét s lần lượt đến tất cả các đỉnh còn lại Kết quả của bài toán là n-1 đường đi ngắn nhất có đỉnh bắt đầu là s, đỉnh kết thúc lần lượt là các đỉnh còn lại trong đồ thị
c Đường đi ngắn nhất giữa mọi cặp đỉnh bất kỳ
Cho đơn đồ thị liên thông có trọng số G=(V,E), tìm đường đi ngắn nhất giữa mọi cặp đỉnh u, v trong G
Đối với bài toán này, ta cần tìm đường đi ngắn nhất giữa mọi cặp đỉnh trong đồ thị Kết quả của bài toán là 𝐶𝑛2 đường đi ngắn nhất có đỉnh bắt đầu và đỉnh kết thúc khác nhau
1.1.3 Các thuật toán tìm đường đi ngắn nhất
1.1.3.1 Thuật toán Dijsktra
Thuật toán do E.Dijkstra, nhà toán học người Hà Lan, đề xuất năm 1959
Giả sử đồ thị là vô hướng, các trọng số là dương Thuật toán bao gồm các bước như sau:
Bước 1: Khởi tạo
Xuất phát từ đỉnh s Gọi d[v] là khoảng cánh từ s tới v khởi tạo:
1.1 d[s]=0; Free[s]=false;
1.2 d[v]:=a[s,v]; Free[v]=true (với mọi đỉnh còn lại);
Bước 2:
2.1 Cố định nhãn: Tìm đỉnh u trong các đỉnh có nhãn tự do có d[u] là nhỏ nhất Cố định nhãn cho đỉnh u
2.2 Sửa nhãn: Dùng đỉnh u xét tất cả những đỉnh tự do v và sửa lại nhãn các d[v] theo công thức: d[v] = min(d[v],d[u]+a[u,v]), nếu d[v]=d[u]+a[u,v] thì t[v]=u
2.3 Lặp lại Bước 2 đến khi đỉnh f được cố định nhãn
Thuật toán có thể được mô tả bằng mã giả như sau:
Trang 22free[u]:=false;
if (u=f) or (d[u]= ∞) then break;
for ( v V) and (free[v]) do begin d[v]:= min(d[v], d[u]+ a[u,v]);
if d[v]=d[u]+a[u,v] then t[v]:=u;
end;
until false;
End;
Ví dụ 1.10: Cho đồ thị G = (V,E) Tìm đường đi ngắn nhất từ đỉnh A đến F
Hình 1.10 Đồ thị có hướng G và giải thuật Dijsktra
Ta kí hiệu t[v] là đỉnh trước của v trên đường đi từ A tới F Minh họa kết quả tính toán của thuật toán Dijsktra qua bảng sau:
Bảng 1.1 Kết quả giải thuật Dijsktra
Bước d[a], t[a] d[b], t[b] d[c], t[c] d[d], t[d] d[e], t[e] d[f], t[f]
1.1.3.2 Thuật toán Bellman-Ford
Bước 1: Khởi tạo
Xuất phát từ đỉnh s Gọi d[v] là khoảng cánh từ s tới v
Khởi tạo d[s]=0; d[v]:=a[s,v]
Bước 2:
2.1 Tối ưu hóa dần d[v] như sau: Xét mọi cặp đỉnh (u,v) của đồ thị
nếu d[v]>d[u]+a[u,v] thì đặt d[v]=d[u]+a[u,v] và t[v]=u (t lưu vết đường đi)
2.2 Lặp lại Bước 2 đến khi không thể tối ưu thêm bất kì một nhãn d[v] nào nữa, dùng biến stop để kiểm soát quá trình này
Trang 23Thuật toán có thể được mô tả bằng mã giả như sau:
for ( u V) do for ( v V) and (u,v) E do
if d[v]>d[u]+ a[u,v] then begin
Ví dụ 1.11: Cho đồ thị G = (V,E) Tìm đường đi ngắn nhất từ đỉnh A đến F
Hình 1.11 Đồ thị có hướng G và giải thuật Ford - Bellman
Ta kí hiệu t[v] là đỉnh trước của v trên đường đi từ A tới F Minh họa kết quả tính toán của thuật toán Ford-Bellman qua bảng sau:
Bảng 1.2 Kết quả giải thuật Ford – Bellman
Trang 24Ta dễ dàng nhận ra rằng cả hai thuật toán trên đều cho ra đường đi tối ưu nhưng chỉ giải quyết được vấn đề tìm đường giữa hai đỉnh Để có thể giải quyết được vấn đề tìm đường giữa hai đỉnh với ràng buộc phải đi qua một số đỉnh cho trước cần pahri mở rộng thuật toán, tuy nhiên, thời gian tìm kiếm sẽ tương đương thuật toán vét cạn
1.2 GIẢI THUẬT DI TRUYỀN
1.2.1 Giới thiệu
Giải thuật di truyền (GAs-Genetic Algorithms) là kỹ thuật phỏng theo quá trình thích nghi tiến hóa của các quần thể sinh học dựa trên học thuyết Darwin GAs là phương pháp tìm kiếm tối ưu ngẫu nhiên bằng cách mô phỏng theo sự tiến hóa của con người hay của sinh vật Tư tưởng của GAs là mô phỏng các hiện tượng tự nhiên, là kế thừa và đấu tranh sinh tồn
Thuật toán di truyền được ứng dụng đầu tiên trong hai lĩnh vực chính: tối ưu hóa và máy học Trong lĩnh vực tối ưu hóa thuật toán di truyền được phát triển nhanh chóng và ứng dụng trong nhiều lĩnh vực khác nhau như tối ưu hàm, xử lý ảnh, bài toán hành trình người bán hàng, nhận dạng hệ thống và điều khiển Thuật toán di truyền cũng như các thuật toán tiến hóa nói chung, hình thành dựa trên quan niệm cho rằng, quá trình tiến hóa tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu Quan niệm này có thể xem như một tiên đề, không chứng minh được, nhưng phù hợp với thực tế khách quan Quá trình tiến hóa thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước nhờ tính
kế thừa và đấu tranh sinh tồn
1.2.2 Nguyên tắc thiết kế giải thuật di truyền
Khác biệt quan trọng giữa tìm kiếm của GAs và các phương pháp tìm kiếm khác là GAs duy trì và xử lý trên một tập các lời giải ứng viên, gọi là quần thể (population) Trong GAs, việc tìm kiếm lời giải thích hợp được bắt đầu với một quần thể, hay một tập hợp có chọn lọc của các giả thuyết ban đầu của lời giải Các cá thể của quần thể hiện tại khởi nguồn cho quần thể thế hệ kế tiếp bằng các hoạt động lai ghép và đột biến ngẫu nhiên – được lấy mẫu sau các quá trình tiến hóa sinh học Ở mỗi bước, các giả thuyết trong quần thể hiện tại được ước lượng bằng hàm đánh giá độ thích nghi Các giả thuyết phù hợp nhất được chọn cho việc sản sinh thế hệ kế tiếp, gọi
là cá thể (individual) Cá thể nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại và ngược lại sẽ bị đào thải GAs có thể dò tìm thế hệ mới có độ thích nghi tốt hơn GAs giải quyết các bài toán quy hoạch toán học thông qua các quá trình cơ bản: lựa chọn (selection), tái sinh (reproduction), lai ghép (crossover) và đột biến (mutation) cho các cá thể trong quần thể GAs bao gồm các bước: khởi tạo quần thể ban đầu, đánh giá các lời giải theo mức độ thích nghi – hàm mục tiêu, sử dụng các toán tử di truyền tạo thế hệ kế tiếp
Trang 251.2.2.1 Các toán tử di truyền
a Lai ghép
Quá trình này diễn ra bằng cách ghép một hay nhiều đoạn gen từ hai cá thể
cha-mẹ để hình thành cá thể mới mang đặc tính của cả cha lẫn cha-mẹ Phép lai này có thể mô
b Lựa chọn và tái sinh
Phép lựa chọn: là quá trình loại bỏ các cá thể có độ thích nghi thấp, chỉ giữ lại những cá thể có độ thích nghi cao Để thực hiện việc lựa chọn ngày, người ta có thể thực hiện theo các phương pháp pháp sau:
- Lựa chọn theo tỉ lệ cho trước: số cá thể có độ thích nghi tốt được giữ lại được lấy theo tỉ lệ cụ thể và thực hiện lấy theo thứ tự ưu tiên theo độ thích nghi
- Lựa chọn theo ngưỡng: số cá thể được chọn sẽ có độ thích nghi đạt ngưỡng cụ thể, ngưỡng này được tính toán tùy thuộc vào hàm đáng giá đảm bảo sao cho số cá thể giữ lại đủ để duy trì quần thể
Phép tái sinh: là quá trình các cá thể được sao chép dựa trên độ thích nghi của
nó Độ thích nghi là một hàm được gán các giá trị thực cho các cá thể trong quần thể của nó Phép tái sinh có thể mô phỏng gồm các bước như sau:
- Tính độ thích nghi của từng cá thể trong quần thể,
- Lập bảng cộng dồn các giá trị thích nghi đó (theo thứ tự gán cho từng cá thể)
ta được tổng độ thích nghi Giả sử quần thể có n cá thể Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồn thứ i là Fti Tổng độ thích nghi là Fm,
- Tạo số ngẫu nhiên F có giá trị trong đoạn từ 0 đến Fm,
- Chọn cá thể k đầu tiên thỏa mãn F ≥ Ftk đưa vào quần thể của thế hệ mới
c Đột biến
Đột biến là hiện tượng cá thể con mang một hay một số tính trạng không có trong yếu tố di truyền của cá thể cha mẹ Phép đột biến có thể mô tả như sau:
- Chọn ngẫu nhiên một cá thể bất kỳ cha – mẹ trong quần thể,
- Tạo một số ngẫu nhiên k, 1 ≤ k ≤ m,
- Thay đổi gen thứ k của cá thể này, sau đó đưa nó quay lại quần thể để tiếp tục quá trình tiến hóa
1.2.2.2 Các thành phần của giải thuật di truyền
Để giải một bài toán, giải thuật di truyền phải có các thành phần sau:
Trang 26- Một cấu trúc dữ liệu biểu diễn không gian lời giải của bài toán,
- Phương pháp khởi tạo quần thể ban đầu,
- Hàm đánh giá độ thích nghi của cá thể,
- Các phép toán di truyền,
- Các tham số cần thiết như: kích thước quần thể, xác suất lai, đột biến, …
1.2.2.3 Các bước của giải thuật di truyền
Một giải thuật di truyền đơn giản bao gồm các bước sau:
Bước 1: Khởi tạo một quần thể ban đầu (gồm các lời giải ứng viên),
Bước 2: Xác định giá trị hàm mục tiêu cho từng cá thể tương ứng,
Bước 3: Tạo các cá thể mới bằng các toán tử di truyền,
Bước 4: Loại bỏ các cá thể có độ thích nghi thấp,
Bước 5: Xác định giá trị hàm mục tiêu cho các cá thể mới và đưa vào quần thể, Bước 6: Kiểm tra thỏa mãn điều kiện dừng Nếu điều kiện đúng, lấy ra cá thể
tốt nhất, giải thuật dừng lại; ngược lại, quay về bước 3
Trang 27Giải thuật di truyền được mô tả bằng lưu đồ hình 1.12:
Hình 1.12 Lưu đồ giải thuật di truyền
Khi giải quyết vấn để bằng giải thuật di truyền cần tận dụng tối đa các tri thức
về vấn đề đó để chương trình có thể đạt hiệu quả cao nhất
1.2.3 Một số ứng dụng của giải thuật di truyền
Giải thuật di truyền được úng dụng nhiều trong lĩnh vực tối ưu và trong máy học, chẳng hạn trong thiết kế mạng neuron (xây dựng kiến trúc cũng như tính toán trọng số), xây dựng quỹ đạo cho người máy, các hệ phi tuyến (phỏng đoán, phân tích
dữ liệu), tìm dạng của các phân tử protein, …
1.2.3.1 Bài toán Người bán hàng du hành (TSP)
Nguồn gốc của bài toán người bán hàng du hành vẫn chưa được biết rõ Một cuốn sổ tay dành cho người bán hàng xuất bản năm 1832 có đề cập đến bài toán này và
Bắt đầu
Khởi tạo quần thểTính độ thích nghiTạo các thể mớiLoại bỏ cá thể độ thích nghi thấp
Tính độ thích nghi cá thể mới
bổ sung vào quần thểĐiều kiện
Xuất kết quảKết thúcĐ
S
Trang 28có ví dụ cho chu trình trong nước Đức và Thụy Sĩ, nhưng không chứa bất kì nội dung toán học nào
Bài toán người bán hàng du hành được định nghĩa trong thế kỉ 19 bởi nhà toán học Ireland William Rowan Hamilton và nhà toán học Anh Thomas Kirkman Trò chơi Icosa của Hamilton là một trò chơi giải trí dựa trên việc tìm kiếm chu trình Hamilton Trường hợp tổng quát của TSP có thể được nghiên cứu lần đầu tiên bởi các nhà toán học ở Vienna và Harvard trong những năm 1930, đặc biệt là Karl Menger, người đã định nghĩa bài toán, xem xét thuật toán hiển nhiên nhất cho bài toán và phát hiện ra thuật toán láng giềng gần nhất là không tối ưu
TSP được mô tả như sau: Có một người giao hàng cần đi giao hàng tại n thành phố Anh ta xuất phát từ một thành phố nào đó, đi qua các thành phố khác để giao hàng và trở về thành phố ban đầu Mỗi thành phố chỉ đến một lần và khoảng cách từ một thành phố đến các thành phố khác đã được biết trước Hãy tìm một chu trình (một đường đi khép kín) thỏa mãn điều kiện trên sao cho tổng độ dài là nhỏ nhất
Bài toán người bán hàng có thể được mô hình hoá như một đồ thị vô hướng có trọng số, trong đó mỗi thành phố là một đỉnh của đồ thị còn đường đi giữa các thành phố là cạnh của đồ thị Khoảng cách giữa hai thành phố là độ dài cạnh Đây là vấn đề cực tiểu hoá với điểm đầu và điểm cuối là cùng một đỉnh sau khi đi qua hết các đỉnh còn lại đúng một lần Mô hình này thường là một đồ thị đầy đủ (giữa mỗi cặp đỉnh đều
có cạnh) Nếu không có đường giữa hai thành phố thì có thể thêm một cạnh với độ dài
đủ lớn vào đồ thị mà không ảnh hưởng đến kết quả tối ưu sau cùng
Tên gọi bài toán người bán hàng du hành mang tính chất tượng trưng, nó dùng
để gọi chung cho các bài toán có mô hình toán học như trên mặc dù phát biểu có nội dung khác, chẳng hạn bài toán tìm chu trình sản xuất cho một nhà máy hóa chất sao cho chi phí xúc rửa các thiết bị (như bể chứa, ống dẫn, ), mỗi khi chuyển từ loại hóa chất này sang loại hóa chất khác của chu trình là ít nhất
TSP là bài toán tối ưu tổ hợp, không gian tìm kiếm là tập các hoán vị của n đỉnh Bất cứ hoán vị nào của n đỉnh cũng là một lời giải chấp nhận được Lời giải tối
ưu là một hoán vị với chi phí tối thiểu của hành trình Không gian tìm kiếm là n! Có thể giải bài toán này bằng nhiều phương pháp: phương pháp nhánh cận, phương pháp gần đúng hay những phương pháp tìm kiếm heuristic Phương pháp nhánh cận đã được chứng minh đạt sự tối ưu về lời giải, tuy nhiên phương pháp này lại mất khá nhiều thời gian khi số đỉnh của đồ thị lớn Trong những năm gần đây, đã xuất hiện nhiều thuật toán đạt gần đến lời giải tối ưu của bài toán TSP: láng giềng gần nhất, đảo gần nhất, đảo xa nhất…và TSP cũng trở thành một đích ngắm của cộng đồng GAs Với bài toán này chúng ta sẽ đánh số các thành phố và dùng một vector nguyên để biểu diễn một nhiễm sắc thể lộ trình v=<i1,i2,…,in> biểu diễn một lộ trình: từ i1 đến i2…, từ in-1 đến
in và trở về i1 (v là một hoán vị của vector <1,2,…,n>), hàm lượng giá chính là chi phí của lộ trình
Trang 291.2.3.2 Bài toán lập lịch
Lập lịch là bài toán tổ chức sản xuất Một công ty cần sản xuất nhiều loại hàng hóa; những hàng hóa này có thể được sản xuất theo những kế hoạch khác nhau Mỗi kế hoạch xử lý gồm một chuỗi thao tác; những thao tác này sử dụng một số tài nguyên và cần thời gian vận hành máy Một lịch sản xuất là một kế hoạch thực hiện các đơn đặt hàng Trong đó, một số đơn đặt hàng có thể được thực hiện với cùng những thao tác tương đương Nhiệm vụ là lên kế hoạch, lập lịch sản xuất, để thực hiện các đơn đặt hàng này nhanh nhất có thể
Bài toán lập lịch là chọn một chuỗi các thao tác đồng thời chỉ định về thời gian bắt đầu/ kết thúc và các tài nguyên cần thiết cho mỗi thao tác Điều cần quan tâm chính yếu là chi phí thời gian máy rỗi, năng lực lao động và các đơn đặt hàng cần hoàn thành đúng hạn Ý tưởng chính trong phương pháp là mã hóa biểu diễn của lịch phân công là các toán tử di truyền phải thực hiện theo cách có ý nghĩa, và một bộ giải mã phải luôn tạo ra một lời giải hợp lệ cho bài toán Thủ tục giải mã mô phỏng các thao tác của công việc theo cách mà khi một máy tính sẵn sàng chọn lựa, thì thao tác cho phép đầu tiên từ danh sách ưu tiên được lấy ra Ví dụ nếu danh sách ưu tiên của máy
m1 là: m1(40 o3 o1 o2 ‘chờ’ ‘nhàn rỗi’), thì thủ tục giải mã vào thời điểm 40 có thể thực hiện đơn đặt hàng o3 trên máy m1 Nếu không được, thủ tục giải mã sẽ thực hiện đơn đặt hàng o1 và o2 (nghĩa là, tìm ở o1 trước nếu không được mới tìm ở o2) Biểu
diễn này bảo đảm tạo một lịch phân công hợp lệ
1.2.3.3 Lập thời khóa biểu cho trường học
Bài toán thời khóa biểu là một bài toán kết hợp nhiều ràng buộc không tầm thường thuộc nhiều loại Có nhiều phiên bản của bài toán thời khóa biểu, một trong những bài toán này có thể được mô tả như sau: Có một danh sách các giáo viên, một danh sách các khoảng thời gian, một danh sách các lớp Bài toán cần tìm thời khóa biểu tối ưu (giáo viên – thời gian – lớp); hàm mục tiêu phải thỏa những mục tiêu này (các ràng buộc mềm) gồm: Có một số giờ được xác định trước cho mỗi giáo viên và mỗi lớp; Chỉ một giáo viên trong một lớp vào một giờ nhất định; Một giáo viên không thể dạy hai lớp cùng lúc; Đối với mỗi lớp được xếp thời khóa biểu vào một khoảng thời gian, phải có một giáo viên… Ngoài ra còn có các mục tiêu sư phạm như trải một
số lớp ra nguyên tuần, những mục tiêu thuộc cá nhân như những giáo viên hợp đồng không phải dạy buổi chiều và các mục tiêu về tổ chức như mỗi giờ có một giáo viên bổ sung sẵn sàng chỗ dạy tạm thời để thay thế
Biểu diễn nhiễm sắc thể tự nhiên nhất cho bài toán này là biểu diễn ma trận: một ma trận [R]ij (1 ≤ i ≤ m và 1 ≤ j ≤ n), ở đây mỗi hàng tương ứng với một giáo viên, mỗi cột tương ứng với một giờ, các phần tử của ma trận R là các lớp (rij {C1, … ,
Ck) Các ràng buộc chủ yếu được xử lý bởi các toán tử di truyền và thuật giải sửa chữa được sử dụng để loại bỏ những trường hợp mà có nhiều hơn một giáo viên xuất hiện trong cùng một lớp vào cùng một giờ
Trang 301.2.3.4 Phân hoạch đối tượng và đồ thị
Bài toán phân hoạch là cần chia n đối tượng thành k loại Lớp bài toán này gồm nhiều bài toán nổi tiếng như bài toán đóng thùng (xếp các mặt hàng vào các thùng), bài toán tô màu đồ thị (gán các nút của đồ thị vào các màu cụ thể…)
Bài toán đóng thùng (Bin Packing – BP) được phát biểu như sau: Cho danh sách gồm n đồ vật L=a1,a2,a3,…,an và các thùng giống nhau với cùng sức chứa B Kích thước của đồ vật ai là si thỏa mãn (0<si ≤ B, i) Vấn đề đặt ra là tìm cách xếp các đồ vật vào các thùng sao cho số lượng thùng cần phải sử dụng là ít nhất
1.3 ĐẶC ĐIỂM GIAO THÔNG ĐƯỜNG THỦY TỈNH VĨNH LONG
1.3.1 Các nhân tố ảnh hưởng đến giao thông đường thủy tỉnh Vĩnh Long
1.3.1.1 Vị trí địa lý
Vĩnh Long là tỉnh thuộc hạ lưu sông Mê Kông, nằm giữa sông Tiền, sông Hậu
và ở trung tâm khu vực ĐBSCL, vị trí giáp giới như sau:
- Phía Bắc và Đông Bắc giáp các tỉnh Tiền Giang và Bến Tre;
- Phía Tây Bắc giáp tỉnh Đồng Tháp;
- Phía Đông Nam giáp với tỉnh Trà Vinh;
- Phía Tây Nam giáp các tỉnh Hậu Giang, Sóc Trăng và Thành phố Cần Thơ Tọa độ địa lý tỉnh Vĩnh Long 9052’45’’ đến 10019’50’’ vĩ độ Bắc và từ
104041’25’’ đến 106017’03’’ kinh độ Đông
Tỉnh Vĩnh Long có 8 đơn vị hành chính, gồm 6 huyện (Bình Tân, Long Hồ, Mang Thít, Tam Bình, Trà Ôn, Vũng Liêm); thị xã Bình Minh và Thành phố Vĩnh Long với 109 xã, phường, thị trấn (94 xã, 5 thị trấn và 10 phường)
Vĩnh Long có vị trí địa lí đặc biệt so với các tỉnh khác là nằm ở hạ nguồn lưu vực sông Mê Kông, giữa hai dòng sông Tiền và sông Hậu, nối liền hai dòng sông lớn theo hướng bắc - nam là sông Mang Thít, cùng với mạng lưới sông ngòi chằng chịt, phân bố tương đối đồng đều đã làm cho Vĩnh Long trở thành đầu mối giao thông quan trọng nối liền các tỉnh, thành phố trong vùng và lưu thông quốc tế Lợi thế này đã tạo cho Vĩnh Long có một vị trí quan trọng trong chiến lược phát triển vùng ĐBSCL và vùng kinh tế trọng điểm phía Nam Hơn thế nữa, Vĩnh Long lại nằm giữa hai trung tâm kinh tế lớn của cả vùng Nam Bộ đó là Thành phố Hồ Chí Minh và Thành phố Cần Thơ Bên cạnh đó, cầu Mỹ Thuận và cầu Cần Thơ đã hoàn thành đưa vào sử dụng, sắp tới đây đường cao tốc Thành phố Hồ Chí Minh - Cần Thơ sẽ hoàn thành và đưa vào khai thác, Vĩnh Long sẽ đóng vai trò là một nhịp cầu lớn của con đường phát triển kinh tế của vùng ĐBSCL và cả nước, tạo bước đột phá về đầu tư sản xuất kinh doanh cho các doanh nghiệp trong và ngoài nước Với vị trí địa lí có nhiều mặt lợi thế như trên sẽ tạo động lực cho sự phát triển kinh tế - xã hội theo các hướng trục giao thông đường thủy, đường bộ đã được quy hoạch của tỉnh
Trang 311.3.1.2 Địa hình
Tỉnh Vĩnh Long có địa hình khá bằng phẳng với độ dốc nhỏ hơn 2 độ, có cao trình khá thấp so với mực nước biển (cao trình < 1,0 m chiếm 62,85% diện tích) Với dạng địa hình đồng bằng ngập lụt ở cửa sông, có dạng lòng chảo ở giữa trung tâm tỉnh
và cao dần về hướng bờ sông Tiền, sông Hậu, sông Mang Thít và ven các sông, rạch lớn Trên từng cánh đồng có những chỗ gò (cao trình từ 1,2 - 1,8 m) hoặc trũng cục bộ (cao trình < 0,4 m) Phân cấp địa hình của tỉnh có thể chia ra 3 cấp sau:
- Vùng có cao trình từ 1,0 m đến 2,0 m (chiếm 37,17% diện tích): ở ven sông Hậu, sông Tiền, sông Măng Thít, ven sông, rạch lớn cũng như đất cù lao giữa sông và vùng đất giồng gò cao của huyện Vũng Liêm, Trà Ôn Nơi đây chính là địa bàn phân
bố dân cư đô thị, khu công nghiệp, đầu mối giao thông đường thuỷ, đường bộ
- Vùng có cao trình từ 0,4 m đến 1,0 m (chiếm 61,53% diện tích): phân bố chủ yếu là đất 2 - 3 vụ lúa với tiềm năng tưới tự chảy khá lớn, năng suất cao Trong đó, vùng phía Bắc Quốc lộ 1A là vùng chịu ảnh hưởng lũ tháng 8 hàng năm, dân cư phân
bố ít trên vùng đất này
- Vùng có cao trình nhỏ hơn 0,4 m (chiếm 1,3% diện tích): có địa hình thấp trũng, ngập sâu Cơ cấu sản xuất nông nghiệp chủ yếu lúa 2 vụ (lúa vụ Đông Xuân -
Hè Thu, lúa vụ Hè Thu - Mùa)
Với điều kiện địa hình như trên, Vĩnh Long có ưu thế để phát triển mạng lưới giao thông đường bộ và đường thủy, nối liền Vĩnh Long với các tỉnh ĐBSCL và cả nước, là nền tảng quan trọng cho sự phát triển kinh tế - xã hội của tỉnh
1.3.1.3 Khí hậu
Tỉnh Vĩnh Long nằm trong vùng khí hậu nhiệt đới gió mùa, có hai mùa (mùa mưa và mùa khô) rõ rệt cùng với chế độ gió mùa tương đối ổn định Ngoài ra, tỉnh Vĩnh Long còn ít chịu ảnh hưởng của thiên tai, lũ lụt Nhờ đó, thuận lợi cho việc phát triển giao thông vận tải, đặc biệt là giao thông đường thủy
1.3.1.4 Thủy văn
Hệ thống sông rạch trên địa bàn tỉnh khá dày đặc, phân bố tương đối đồng đều Ngoài hai con sông lớn là sông Hậu và sông Tiền (cùng với chi lưu là sông Cổ Chiên), còn có các sông nhỏ và hệ thống kênh, rạch chằng chịt Chế độ thủy văn ở Vĩnh Long chịu ảnh hưởng bởi khí hậu theo mùa, lưu lượng dòng chảy của các con sông phân phối không đều giữa mùa mưa và mùa khô
Trang 32- Sông Cổ Chiên là một chi lưu của sông Tiền, chảy qua địa phận các huyện Long Hồ, Mang Thít, Vũng Liêm, là đường giao thông thủy trong tỉnh và các tỉnh lân cận như Tiền Giang và Bến Tre
Các hệ thống sông này có chế độ thuỷ văn điều hoà, lưu lượng dòng chảy thay đổi theo mùa nhưng không lớn, ít chịu chi phối của thuỷ triều Với đặc điểm này, hệ thống sông ngòi của Vĩnh Long rất thuận lợi cho phát triển giao thông vận tải đường thủy của tỉnh và khu vực Đây là thuận lợi lớn mà ít tỉnh nào có được Chính vì vậy, Vĩnh Long đã trở thành đầu mối giao thông đường thủy quan trọng nối liền các tỉnh trong vùng và lưu thông quốc tế thông qua các cửa biển: cửa Tiểu, cửa Đại, cửa Hàm Luông, cửa Cổ Chiên và cửa Định An Sông Tiền và sông Hậu vừa là tuyến đường thủy khu vực, vừa là đường giao thông quốc tế với Campuchia, Lào và Thái Lan
1.3.2 Thực trạng giao thông đường thủy tỉnh Vĩnh Long
1.3.2.1 Quá trình phát triển giao thông đường thủy
Trước Cách mạng tháng tám năm 1945, người Pháp đã nâng cấp và hoàn thiện dần hệ thống giao thông đường thủy ở Vĩnh Long bằng việc nạo vét kênh rạch, đào thêm kênh mới để liên lạc với cảng Sài Gòn (một thương cảng lớn nhất của Nam Kỳ lúc bấy giờ) Hệ thống các kênh đào lúc bấy giờ được Pháp xây dựng và cải tạo bao gồm:
- Kênh xáng Nicolai từ Trà Luộc đến ngã ba Thầy Hạnh nối liền với sông Mang Thít, tạo nên tuyến lưu thông quan trọng chủ yếu từ Sài Gòn về miền Tây Đi theo tuyến này, các ghe tàu vận tải trên sông sẽ tránh đường vòng ra biển hoặc vòng lên sông Sở Thượng, kênh Sa Đéc
- Kênh Chà Và là đường thủy ngắn nhất để đi từ Vĩnh Long đến Cần Thơ
- Kênh Ông Me tạo nên sự thông thương giữa Vĩnh Long với Sa Đéc
- Cho đào kênh mới Trà Ôn
Cầu tàu Vĩnh Long lúc này được coi là cầu tàu của “miền lục tỉnh”, là “trạm trung chuyển” hàng hóa chủ yếu từ Sài Gòn qua các tỉnh ĐBSCL đến Nam Vang (Campuchia) và ngược lại
Sau Cách mạng tháng tám, chính quyền cách mạng đã tiến hành quốc hữu hoá các cơ sở vật chất do chính quyền cũ để lại và trên cơ sở đó tổ chức sắp xếp lại, phục
vụ cho yêu cầu nhiệm vụ mới Do có nhiều điều kiện thuận lợi để phát triển nên giao thông đường sông của tỉnh Vĩnh Long ngày càng có vai trò quan trọng, nhất là trong vận chuyển hàng hóa đường dài
1.3.2.2 Mạng lưới giao thông đường thủy tỉnh Vĩnh Long
a Hệ thống sông ngòi
Vĩnh Long là một trong những tỉnh ở vùng ĐBSCL có điều kiện thuận lợi để phát triển giao thông đường thủy do có hai con sông lớn là sông Tiền và sông Hậu chảy qua, được ví như hai đường biên lớn và ở giữa địa bàn tỉnh có con sông Mang Thít nằm vắt ngang nối liền sông Tiền và sông Hậu tạo nên tuyến đường thủy rất quan
Trang 33trọng từ bờ sông Cổ Chiên chảy qua vùng ngã ba Thầy Hạnh, Ba Kè, Cái Ngang, Ba Càng đến sông Hậu Đây là đường vận tải thủy huyết mạch cho cả khu vực ĐBSCL Ngoài ra, trong phần nội địa tỉnh Vĩnh Long còn nhiều con sông nhỏ và mạng lưới kênh, rạch chằng chịt thuận lợi để phát triển mạng lưới giao thông đường thủy
Theo thống kê của Sở GTVT Vĩnh Long, toàn tỉnh hiện có trên 1.300km đường thủy nội địa Trong đó, sông do Bộ GTVT (trực tiếp là Đoạn Quản lí đường thủy nội địa số 11 thuộc Chi cục quản lí đường thủy nội địa phía Nam) quản lí với tổng chiều dài 215km (bao gồm sông Tiền, sông Cổ Chiên, sông Hậu và sông Mang Thít) Các tuyến còn lại là do UBND tỉnh quản lí gồm 91 tuyến, trong đó phân cấp cho Sở GTVT quản lí 25 tuyến tổng chiều dài 179,45km; UBND huyện, thành phố quản lí các tuyến còn lại theo địa bàn với tổng chiều dài 353,68km Ngoài ra, còn có các sông, kênh,
rạch chưa được khảo sát chi tiết để phân cấp với tổng chiều dài trên 600km (Xem Phụ lục 1)
Hình 1.13 Bản đồ đường sông tỉnh Vĩnh Long (Nguồn sở GTVT Vĩnh Long)
b Hiện trạng luồng tuyến
Các sông do Bộ GTVT quản lí: gồm 4 tuyến sông lớn là sông Tiền, sông Hậu, sông Cổ Chiên và sông Mang Thít với tổng chiều dài 215km Cụ thể như sau:
Trang 34Sông tiền
Sông Tiền là một nhánh của sông Mê Kông chảy trên lãnh thổ Việt Nam Sông
Mê Kông bắt nguồn từ cao nguyên Tây Tạng (Trung Quốc), dài 4.800km Đoạn sông
Mê Kông chảy qua lãnh thổ Việt Nam còn được gọi là sông Cửu Long, được tính từ biên giới Việt Nam - Campuchia và đổ ra biển Đông, được chia thành hai nhánh sông Tiền và sông Hậu chảy gần như song song với nhau
Nhánh sông Tiền chảy qua lãnh thổ Việt Nam dài 230km, qua các tỉnh Đồng Tháp, An Giang, Tiền Giang, Vĩnh Long, Bến Tre và Trà Vinh Đến Thành phố Vĩnh Long, sông Tiền tách ra thành hai nhánh là sông Tiền và sông Cổ Chiên Nhánh sông Tiền đi qua tỉnh Vĩnh Long dài 33,5km, bắt đầu từ chỗ giáp ranh với tỉnh Đồng Tháp chảy qua Thành phố Vĩnh Long, cù lao An Bình (huyện Long Hồ) và kết thúc tại nơi giáp ranh với tỉnh Bến Tre Đoạn tuyến này có cấp kỹ thuật loại đặc biệt, chiều rộng lòng sông từ 600 - 1.800m, độ sâu trung bình 12 - 15m, có nơi sâu đến 27m, cho phép tàu có tải trọng 10.000 tấn, sà lan 2.400 tấn qua được Đây là tuyến giao thông thủy quan trọng không chỉ của Vĩnh Long mà còn của khu vực ĐBSCL, có thể nối từ cửa Tiểu, cửa Đại đến Campuchia
Sông Hậu
Sông Hậu là một trong hai nhánh của sông Cửu Long, có chiều dài 220km, bắt đầu từ xã An Khánh, huyện Châu Phú, tỉnh An Giang chảy gần như song song với sông Tiền qua các tỉnh, thành: An Giang, Cần Thơ, Hậu Giang, Vĩnh Long, Trà Vinh, Sóc Trăng và đổ ra biển Đông qua cửa Trần Đề và cửa Định An Đoạn sông Hậu qua địa phận tỉnh Vĩnh Long dài 75km, bắt đầu từ huyện Bình Tân, tỉnh Vĩnh Long nơi tiếp giáp với tỉnh Đồng Tháp chảy dọc qua các huyện Bình Minh, Tam Bình, Trà Ôn
và kết thúc tại nơi tiếp giáp với tỉnh Trà Vinh Đoạn tuyến này có chiều rộng từ 1.500 - 3.000m, chiều sâu trung bình từ 15 – 30m, sông đạt cấp kỹ thuật loại đặc biệt, cho phép tàu có tải trọng 10.000 tấn, sà lan 2.400 tấn qua được
Sông Hậu và sông Tiền nối với nhau bằng các hệ thống sông tự nhiên và kênh đào như: kênh Tân Châu, Châu Đốc, sông Vàm Nao, kênh Lấp Vò - Sa Đéc, kênh Chợ Lách, sông Mang Thít và rạch Trà Ôn Tất cả những tuyến vận tải thủy chính đi qua các tỉnh, thành phố ở ĐBSCL đều nối với sông Hậu ra cửa biển Trần Đề Vì vậy, đây
là tuyến giao thông thủy quan trọng của vùng ĐBSCL, giúp cho việc vận chuyển nội vùng và với Thành phố Hồ Chí Minh, Campuchia
Sông cổ chiên
Sông Cổ Chiên là một phân lưu của sông Tiền, chảy qua các tỉnh: Vĩnh Long, Trà Vinh, Bến Tre Con sông này có chiều dài 182km, làm thành ranh giới tự nhiên giữa các tỉnh Vĩnh Long với Bến Tre, Trà Vinh với Bến Tre Sông bắt đầu từ TP Vĩnh Long, chảy theo hướng Tây Bắc - Đông Nam, đổ ra biển Đông qua hai cửa sông là cửa Cung Hầu và cửa Cổ Chiên
Trang 35Sông Cổ Chiên qua địa phận tỉnh Vĩnh Long dài 63km, bắt đầu tại ngã ba sông
Cổ Chiên - sông Tiền thuộc Thành phố Vĩnh Long chảy qua các huyện Long Hồ, Mang Thít, Vũng Liêm và kết thúc tại nơi tiếp giáp với tỉnh Trà Vinh Sông có chiều rộng từ 800 - 2.500m, sâu từ 20 - 40m, đạt cấp kỹ thuật loại đặc biệt Đây là tuyến giao thông không những cho vận chuyển hàng hóa của tỉnh với các tỉnh lân cận mà còn quan trọng đối với vận chuyển khách du lịch qua cù lao An Bình
Sông Mang Thít
Sông Mang Thít là một nhánh của sông Hậu, nối liền sông Tiền và sông Hậu, là tuyến đường thủy quan trọng của cả ĐBSCL Sông là ranh giới tự nhiên giữa các huyện Tam Bình và Mang Thít ở bờ Bắc với các huyện Trà Ôn và Vũng Liêm ở bờ Nam
Tuyến sông chảy trong địa phận tỉnh Vĩnh Long, bắt đầu từ ngã ba sông Cổ Chiên đến ngã ba rạch Trà Ôn có chiều dài 43,5km, rộng 130m, sâu từ 10 - 20m, đạt tiêu chuẩn sông cấp III Sông Mang Thít là tuyến giao thông đường thủy cấp quốc gia nối liền từ các tỉnh ĐBSCL về Thành phố Hồ Chí Minh và ngược lại Mỗi ngày trên tuyến sông này có khoảng 650 phương tiện các loại qua lại Tuy nhiên, hiện nay giao thông trên tuyến đang tiềm ẩn những nguy cơ gây mất an toàn giao thông cho tàu thuyền qua lại bởi sự hiện diện của các đáy cá đóng lấn chiếm luồng tàu
Các sông do UBND Tỉnh quản lí: Gồm 91 tuyến sông, kênh, rạch được phân cấp quản lí cụ thể như sau:
Bảng 1.3 Bảng thống kê các tuyến sông và cấp kỹ thuật
tuyến
Tổng chiều dài (km)
Cấp kỹ thuật
Nguồn: Xử lý từ số liệu Sở GTVT Vĩnh Long
c Hiện trạng các cảng sông, bến hàng hóa
Về cảng sông: Vĩnh Long chỉ có một số cảng nhỏ hoạt động trên các nhánh sông lớn như sông Tiền, sông Hậu, sông Cổ Chiên và chỉ dừng lại ở việc bốc dở hàng
Trang 36hóa là chủ yếu; về dịch vụ cảng của Vĩnh Long còn nhiều yếu kém Hiện cảng Vĩnh Long và cảng Bình Minh nằm trong nhóm Cảng biển số 6 theo quy hoạch của Bộ GTVT
Về bến hàng hóa: chủ yếu là các bến vật liệu xây dựng, vật tư nông nghiệp,
lương thực, đóng và sửa chữa phương tiện thủy, cửa hàng xăng dầu, … (Xem Phụ lục 2)
Các bến hàng hóa được quản lý và cấp phép hoạt động theo phân cấp như sau:
- Cảng vụ đường thủy nội địa khu vực IV: quản lí các bến trên các sông do Cục đường thủy nội địa Việt Nam quản lí gồm sông Tiền, sông Cổ Chiên, sông Hậu và sông Mang Thít (trừ các bến nằm trong vùng nước của cảng biển thuộc Cảng vụ hàng hải quản lí - thực hiện theo Thông tư số 10/2007/TT-BGTVT ngày 06 tháng 8 năm
2007 của Bộ GTVT về việc Hướng dẫn thực hiện Nghị định số 71/2006/NĐ-CP ngày
25 tháng 7 năm 2006 của Chính Phủ về quản lí cảng biển và luồng hàng hải)
- Cảng vụ đường thủy nội địa Vĩnh Long: quản lí các bến trên các sông do tỉnh quản lí và các bến nằm trong vùng nước của Cảng biển thuộc Cảng vụ hàng hải quản
lý theo hướng dẫn của Thông tư trên
d Phương tiện vận tải đường sông
Hệ thống GTVT đường sông tỉnh Vĩnh Long phát triển khá mạnh nên các phương tiện vận tải đường sông của tỉnh cũng đa dạng và có số lượng khá lớn Các phương tiện vận tải đường thủy bao gồm: tàu ca nô, xuồng máy các loại; tàu kéo, đẩy; thuyền máy chở hàng hóa, chở khách; tàu chở nhiên liệu; sà lan; các phà,… Đa số các phương tiện này đạt loại tốt, đảm bảo phục vụ cho hoạt động vận tải
Trang 37CHƯƠNG 2 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TÌM ĐƯỜNG ĐI
TỐI ƯU TRONG GIAO THÔNG ĐƯỜNG THỦY TẠI
TỈNH VĨNH LONG
2.1 PHÁT BIỂU BÀI TOÁN
Trong giao thông vận tải, nhu cầu đi từ địa điểm này đến địa điểm kia với điều
kiện phải đi qua một số địa điểm khác là điều rất phổ biến Ví dụ, công ty A có các đại
lý A1, A2, A3, A4, A5 trên địa bàn tỉnh Vĩnh Long và mỗi tuần công ty này phải vận
chuyển hàng hóa xuống các đại lý của mình và tổng lượng hàng hóa có thể xếp trên
cùng một chuyến tàu Như vậy, tàu hàng sẽ xuất phát từ công ty không chỉ đi đến một
đại lý duy nhất mà sẽ đi qua tất cả các đại lý trên địa bàn tỉnh
Ta có thể đồ thị hóa bài toán bằng cách xem các nút giao thông (điểm giao nhau
giữa các nhánh sông và các bến cảng, bến hàng hóa) là các đỉnh của đồ thị, hai đỉnh có
cạnh nối với nhau khi có đường đi trực tiếp giữa hai nút giao thông tương ứng
Khoảng cách giữa hai nút giao thông liên tiếp (liền kề) là trọng số của cạnh tương ứng
trên đồ thị Như vậy, bài toán có thể phát biểu như sau:
Cho đồ thị có trọng số G=(V,E), tìm đường đi ngắn nhất giữa hai đỉnh của đồ
thị với điều kiện phải qua một số đỉnh cho trước
Ví dụ 2.1:
Hình 2.1 Đồ thị có trọng số G và bài toán đường đi ngắn nhất
Trong đồ thị hình, đường đi ngắn nhất từ s đến x là s-v-y-x có tổng trọng số là
3 Nếu ta cần đường đi từ s đến x với điều kiện phải qua u thì đường đi ngắn nhất sẽ là
s-u-x và tổng trọng số là 5
2.2 XÂY DỰNG ỨNG DỤNG
2.2.1 Khảo sát, phân tích dữ liệu
2.2.1.1 Về hệ thống sông
Theo thống kê của Sở GTVT Vĩnh Long, toàn tỉnh hiện có trên 1.300km đường
thủy nội địa Hệ thống bao gồm 91 sông rạch đã được khảo sát, trong đó có 25 sông
rạch do UBND tỉnh Vĩnh Long quản lý, các sông rạch còn lại thuộc thẩm quyền quản
lý của UBND các huyện và Thành phố Vĩnh Long quản lý (Xem Phụ lục 1)
Trang 38Trên cơ sở đó, chúng ta xây dựng bảng danh mục các nút giao nhau giữa các
ta xây dựng đồ thị có trọng số tương ứng như sau:
- Đỉnh của đồ thị là nút giao nhau giữa các con sông,
- Cạnh của đồ thị là đoạn sông tương ứng của hai nút giao,
- Trọng số của cạnh là khoảng cách giữa hai nút giao đó
2.2.1.2 Về cảng, bến hàng hóa
Vĩnh Long chỉ có một số cảng nhỏ và các bến hàng hóa hoạt động trên các sông dùng bốc dở hàng hóa, chủ yếu là các bến vật liệu xây dựng, vật tư nông nghiệp, lương thực, đóng và sửa chữa phương tiện thủy, cửa hàng xăng dầu, …
Tương tự như đối với các nút giao, khi đồ thị hóa bài toán ta cũng thể hiện mỗi bến như một đỉnh của đồ thị, cạnh là đoạn sông và trọng số là khoảng cách giữa các
bến và các nút liền kề tương ứng (Xem Phụ lục 2)
2.2.2 Tổ chức dữ liệu
2.2.2.1 Danh bạ các nút giao, các bến cảng, bến hàng hóa
Danh bạ các nút giao, các bến cảng, bến hàng hóa được lưu trữ vào tập tin văn bản có cấu trúc như sau:
Trong đó:
- ID1, ID2, …, IDn là mã của các nút giao, các bến cảng, bến hàng hóa Mã này dùng để phân biệt các nút, các bến trong quá trình tìm kiếm đường đi, dùng để phân biệt các đỉnh trên đồ thị khi biểu diễn và tìm kiếm lời giải cho bài toán
- Diễn giải 1, diễn giải 2, …, diễn giải n dùng để mô tả vắn tắt để nhận biết các nút giao, các bến cảng, bến hàng hóa
Để rõ hơn về cách tổ chức tập tin này, ta có thể theo dõi hình 2.2:
Hình 2.2 Tập tin danh bạ các nút giao
ID1: <Diễn giải 1>
ID2: <Diễn giải 2>
…
IDn: <Diễn giải n>
Trang 39Hình 2.2 cho thấy ta có các điểm giao được đánh mã bắt đầu từ 001 Trong đó,
mã 001 là điểm xuất phát trên sông Hậu; mã 002 là điểm giao giữa sông Hậu và sông Cái Vồn Lớn; mã 003 là điểm giao giữa sông Hậu và sông Hậu nhánh phụ…
Trong trường hợp nút là các bến cảng, bến hàng hóa ta có tập tin như hình 2.3:
Hình 2.3 Tập tin danh bạ các cảng, bến hàng hóa
Trong trường hợp này, phần diễn giải nhằm cho biết bến hàng hóa tên gì và địa chỉ của bến hàng hóa đó Điều này là rất cần thiết vì có thể có nhiều bến bãi cùng tên nhưng ở các địa phương khác nhau trong tỉnh Ví dụ, mã 050 tương ứng bến hàng hóa
có tên Trung Gia, tọa lạc tại Phường 4, Thành phố Vĩnh Long
2.2.2.2 Khoảng cách giữa các nút giao, bến cảng, bến hàng hóa
Nếu ta xem các nút giao, các bến hàng hóa là các đỉnh của đồ thị thì khoảng cách giữa các đỉnh sẽ là trọng số của cạnh tương ứng Như vậy, ta sẽ phải biểu diễn đồ thị có trọng số này trong máy tính
Như đã trình bày ở chương 1, ta có nhiều cách khác nhau để biểu diễn đồ thị trên máy tính như: dùng ma trận kề, dùng ma trận liên thuộc, dùng danh sách cạnh hay dùng danh sách kề Việc dùng ma trận kề dễ dàng tìm được hai đỉnh có kề nhau hay không, thậm chí dễ dàng truy xuất đến trọng số của các cạnh trên đồ thị Tuy nhiên, phương pháp này tỏ ra không hiệu quả đối với đồ thị thưa (đồ thị có ít cạnh) Việc dùng ma trận liên thuộc cũng đòi hỏi kích thước bộ nhớ lớn để lưu trữ các giá trị 0 như
ma trận kề Ta cũng dễ dàng nhận ra rằng số cạnh trong đồ thị ở trường hợp này là rất
ít Vì vậy ta sẽ biểu diễn đồ thị bằng danh sách cạnh trong một tập tin văn bản với cấu
trúc như sau:
Trong đó:
+ N: tổng số nút của đồ thị
N ID1,ID2,W21
… IDi, IDj,Wij
…
Trang 40+ IDi, IDj: các đỉnh của đồ thị
+ Wij: trọng số của cạnh (IDi, IDj)
Để rõ ràng hơn, ta theo dõi hình 2.4:
Hình 2.4 Biểu diễn khoảng cách giữa các nút
Hình 2.4 cho chúng ta biết có tổng cộng 202 nút; khoảng cách từ nút 001 đến nút 140 là 12600m, từ 002 đến 003 là 7500m, …
Trong trường hợp trọng số của của cạnh là tổ hợp của nhiều yếu tố thành phần,
ta có thể mở rộng bằng cách thêm các yếu tố thành phần vào phía sau đó
Chẳng hạn, khi lưu thông trên đường thủy, ngoài việc quan tâm đến khoảng cách địa lý, ta còn quan tâm đến yếu tố thời gian di chuyển giữa hai địa điểm Để biểu diễn dữ liệu trong trường hợp này, ta dùng tập tin với cấu trúc như sau:
Trong đó:
+ M: tổng số nút của đồ thị
+ IDi, IDj: các đỉnh của đồ thị
+ DISij: khoảng cách địa lý từ IDi đến IDj
+ Tij: thời gian di chuyển từ IDi đến IDj
2.2.3 Triển khai, xây dựng ứng dụng
Trên thực tế, đã có nhiều phương pháp khác nhau giải quyết việc tìm đường đi tối
ưu trong một mạng giao thông dựa trên thuật toán Dijsktra, thuật toán Bellman-Ford, giải thuật tìm kiếm A*, thuật toán Johnson hay Lý thuyết nhiễu Tuy nhiên, các thuật toán này chỉ giải quyết tốt việc tìm đường đi ngắn nhất giữa hai địa điểm cho trước,
M ID1, ID2, DIS21, T21
… IDi, IDj, DISij, Tij
…