Các tham số đầu vào:
n = 8
N = 30 (số nghiệm đầu ra)
M =500 (Số thế hệ)
L = 5 (số tuyến bus)
NV = 15 (tổng số bus có thể sử dụng)
alpha = 1.0 (hệ số chi phí đi bus)
beta = 15.0 (hệ số chi phí đi bộ)
Các đỉnh xuất phát là: 1, 2, 6, 7
Ma trận C (ma trận chi phí giữa các đỉnh trên đồ thị, nếu không có đường đi giá trị bằng -1, một đỉnh không thể tự đi đến chính nó tức là C[i][i] = -1)
-1 1 1 -1 -1 -1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 -1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 1
-1 -1 -1 1 -1 -1 1 -1
Ma trận D (ma trận nhu cầu đi lại giữa các đỉnh trên đồ thị). 0 0 0 0 0 0 20 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 0 0 0 0 0 0 15 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0
Ghi chú: Thời gian tính theo đơn vị phút.
Kết quả đầu ra: 30 nghiệm
Series 1 Series 2 Series 3 Series 4 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 500 1000 1500 2000 2500 3000 3500 4000 4500 x y Hình 3.2: Đồ thị các nghiệm ví dụ 1 qua các thế hệ Ghi chú:
Trục x là giá trị Si1 (hàm tối ưu cho nhà quản lý bus), trục y là giá trị Si 2 (hàm tối ưu cho người dùng) của mô hình bài toán.
Màu xanh dương là nghiệm khởi tạo ngẫu nhiên ban đầu. Màu vàng là nghiệm tại bước sinh thứ 1. Màu xanh nhạt là bước sinh 150. Màu hồng là nghiệm tại thế hệ 500.
Thời gian chạy chƣơng trình: 115 giây ~ 2 phút. Một nghiệm trong 30 nghiệm:
3 tuyến xe:
Tuyến 2: 2-5-6-7, số xe: 6
Tuyến 3: 2-0, số xe: 2
Giá trị cuối mỗi hàng là phân công số xe cho tuyến đó.
Giá trị si1 = 64, si2 = 781
Một số nhận xét:
Khoảng 50 thế hệ đầu tiên thì các nghiệm có sự thay đổi tương đối dày, từ 50 đến 500 thế hệ tiếp theo thì sự thay đổi nghiệm thưa dần.
Dãy số: "16 12 10 6 3 9 7 6 4 2 2 2 4 6 6 3 3 1 3 6 1 3 0 2 2 0 2 0 2 2 1 3 2 0 2 4 1 1 1 1 2" cho biết số lượng các nghiệm mới được thêm vào bộ 30 nghiệm tốt sau mỗi lần dùng thuật toán sinh và lựa chọn. Ví dụ: sau bước sinh thứ 1, bộ 30 nghiệm có 16 nghiệm mới tốt hơn so với lúc random ban đầu. Sau bước sinh thứ 2, bộ 30 nghiệm có 12 nghiệm tốt hơn so với bộ nghiệm tại bước 1...
Với bảng nhu cầu và một nghiệm nêu trên, thiết kế tuyến xe và số xe hợp lý.
3.4.2. Ví dụ 2
Các tham số đầu vào:
n = 25
N = 30 (số nghiệm đầu ra)
M =100 (số thế hệ)
L = 10 (số tuyến bus)
NV = 50 (tổng số bus có thể sử dụng)
alpha = 4.0 (hệ số chi phí đi bus)
beta = 15.0 (hệ số chi phí đi bộ)
Các đỉnh xuất phát là: 25 đỉnh
Nhu cầu chỉ có từ đỉnh 22 đi các đỉnh khác.
Thời gian chạy chƣơng trình: 421 giây ~ 7 phút. Kết quả đầu ra: 30 nghiệm
Ghi chú:
Trục x là giá trị Si1 (hàm tối ưu cho nhà quản lý bus), trục y là giá trị Si 2 (hàm tối ưu cho người dùng) của mô hình bài toán.
Màu xanh dương là nghiệm khởi tạo ngẫu nhiên ban đầu. Màu vàng là nghiệm tại thế hệ thứ 80. Màu hồng là nghiệm tại thế hệ 100.
Hình 3.3: Đồ thị các nghiệm ví dụ 2 qua các thế hệ
Hình vẽ dưới mô tả thiết kế các tuyến buýt của một nghiệm tối ưu trong ví dụ 2:
Hình 3.4: Sơ đồ thiết kế tuyến buýt của ví dụ 2
Nhận xét về thời gian chạy chƣơng trình:
Chi phí lớn nhất của chương trình là tính các hypertree của n đỉnh trong đồ thị. Với thuật toán DSHT, chi phí cho một đỉnh là O(m log n), như vậy chi phí tính cho một nghiệm sẽ là O(m * n * logn). Mỗi một thế hệ sẽ phải tính lại chi phí
cho N nghiệm mới. Như vậy số nghiệm phải tính toán là N * (M + 1). Tổng thời gian tính toán của toàn bộ chương trình là O (N * (M+1) * m * n logn).
3.5. Kết luận
Chương 3 giới thiệu về công cụ phát triển, đầu vào, đầu ra, cấu trúc của chương trình giải mô hình bài toán. Sau đó, chương 3 đưa ra các ví dụ chạy thử nghiệm chương trình, các nhận xét về kết quả và thời gian chạy chương trình.
CHƢƠNG 4 – THỬ NGHIỆM CHƢƠNG TRÌNH VỚI BÀI TOÁN CỦA THÀNH PHỐ ĐÀ NẴNG
4.1. Mô hình mạng lƣới giao thông xe buýt trên Google Earth
4.1.1. Giới thiệu phần mềm Google Earth
Google Earth là một phần mềm dựa trên các dịch vụ bản đồ của Google (Google's Maps). Nó vẽ bản đồ trái đất là một quả cầu ảo 3D, trên đó là những hình ảnh địa lý được lấy từ ảnh vệ tinh, các ảnh chụp trên không và từ hệ thống thông tin địa lý GIS (Geographic Information System).
Biểu đồ dư ới đây mô tả mô ̣t số tính năng s ẵn có trong cửa sổ chính c ủa Google Earth:
Bảng đi ều khiển tìm kiếm - Sử du ̣ng bảng này để tìm địa điểm và chỉ đường và quản lý kết quả tìm kiếm . Google Earth EC có thể hiển thi ̣ tab bổ sung ta ̣i đây.
Bản đồ toàn cảnh - Sử du ̣ng bản đồ để xem cảnh bổ sung về Trái đất. Ẩn/Hiển thi ̣ thanh bên - Nhấp vào đ ây để ẩn hoă ̣c hiển thi ̣ thanh bên
(Bảng điều khiển Tìm kiếm, Vị trí và Lớp).
Dấu vi ̣ trí - Nhấp vào đây để thêm dấu vi ̣ trí cho mô ̣t vi ̣ trí.
Đa giác - Nhấp vào đây để thêm đa giác.
Đường dẫn - Nhấp vào đây để thêm đường dẫn (đường hoă ̣c các đường). Lớp phủ Hình ảnh - Nhấp vào đây để thêm lớp phủ hình ảnh trên Earth. Đo - Nhấp vào đây để đo khoảng cách hoă ̣c diê ̣n tích.
Mă ̣t Trời - Nhấp vào đây để hiển thi ̣ ánh sáng mă ̣t trời trên khung hình. Sky - Nhấp vào đây để xem các vì sao , chòm sao, các dải thiên hà , hành
tinh và Mă ̣t trăng của Trái đất.
Email - Nhấp vào đây để gửi khung cảnh hoă ̣c hình ảnh qua email.
In - Nhấp vào đây để in chế độ xem hiện thời của Earth.
Hiển thi ̣ trên Google Maps - Nhấp vào đây để hiển thi ̣ ch ế độ xem hiện
thời trên Google Maps trong trình duyê ̣t web của ba ̣n.
Công cu ̣ điều hướng - Sử du ̣ng công cu ̣ này để thu phóng , xem và di
chuyển (xem bên dưới).
Bảng điều khiển Lớp - Sử du ̣ng bảng này để hiển thi ̣ đi ̣a điểm ưa thích.
Bảng điều khiển Vị trí - Sử du ̣ng bảng này để đi ̣nh vi ̣, lưu, tổ chức và ghé
thăm la ̣i dấu vi ̣ trí.
Thêm Nô ̣i dung - Nhấp vào đây để nhâ ̣p nô ̣i dung hấp dẫn từ Thư vi ện
KML
Trình xem 3D - Xem đi ̣a cầu và bản đồ đi ̣a hình trong cửa sổ này.
Thanh tra ̣ng thái - Xem toa ̣ đô ̣, đô ̣ cao, ngày chụp hình ảnh và tra ̣ng thái dòng tại đây.
Hình 4.2: Các điểm giao cắt và con đường xe buýt có thể đi (6m) 4.1.2. Xây dựng dữ liệu đầu vào
Bước đầu của việc áp dụng thuật toán cho thành phố Đà Nẵng là mô hình hóa mạng lưới giao thông xe buýt:
Sử dụng chương trình google earch vẽ các điểm giao cắt và các con đường trong thành phố Đà Nẵng.
Có tất cả 140 nút giao cắt (điểm ngã 3, ngã 4) giữa các con đường chính trong thành phố Đà Nẵng và vùng ngoại ô lân cận. Các nút này được đánh số theo thứ tự từ 1 đến 140.
Các con đường được vẽ trên hình 4.2 có chiều rộng tối thiểu 6 mét – độ rộng tối thiểu để xe buýt có thể hoạt động. Các con đường được đo đạc bằng công cụ google earth, cho ra chiều dài giữa các con đường (có phân biệt đường một chiều và hai chiều) sau đó được chuyển sang đơn vị thời gian tính bằng phút với vận tốc xe buýt trung bình trong thành phố là 20 km/h.
Xác định các nút là nơi bắt đầu hoặc kết thúc của tuyến buýt (các nút đầu cuối). Theo đề suất đưa ra dựa vào tuyến buýt cũ của Đà Nẵng thì có tất cả 17 nút đầu cuối.
Dữ liệu đầu vào được xử lý thành tập tin để chương trình mô phỏng thuật toán có thể đọc được.
Bước tiếp theo là xây dựng nhu cầu đi lại giữa các nút trong bản đồ:
Xác định có 66 nút trong nội thành. Tìm đường đi nhỏ nhất giữa các nút đó và tính nhu cầu đi lại giữa các nút theo công thức:
o Quãng đường nhỏ hơn hoặc bằng 4km có nhu cầu là 75x15 (lượt / ngày).
o Quãng đường lớn hơn 4km và nhỏ hơn hoặc bằng 8km có nhu cầu là 50x15 (lượt / ngày).
o Quãng đường lớn hơn 8km và nhỏ hơn hoặc bằng 20km có nhu cầu là 10x15(lượt / ngày).
Liệt kê ra 36 cặp nút có nhu cầu đi lại nhiều hơn so với những cặp nút khác. Ví dụ từ sân bay đến khách sạn, hoặc từ bãi biển đến sân bay,… Các cặp nút này được cộng thêm 1000 (lượt / ngày) so với những cặp nút khác trong mô hình.
Trong bước cuối, điền đầy đủ các tham số đầu vào của mô hình xử lý, đồng thời đưa 11 tuyến được đề suất làm một nghiệm trong N nghiệm ban đầu của mô hình.
Đầu vào chƣơng trình:
n = 140 (số đỉnh của đồ thị)
numDes = 17 (số lượng các điểm đầu cuối tuyến)
N = 20 (số nghiệm đầu ra)
M =100 (Số thế hệ)
L = 20 (số tuyến bus)
NV = 200 (tổng số bus có thể sử dụng)
alpha = 1.0 (hệ số chi phí đi bus)
beta = 10.0 (hệ số chi phí đi bộ)
Danh sách các đỉnh là các điểm đầu cuối tuyến buýt.
Ma trận C[140][140], D[140][140] tương ứng là chi phí đường đi và nhu cầu giữa các cặp đỉnh trong đồ thị.
Ngoài ra còn khống chế một số các tham số khác cho sát với thực tế như: số lượng tối thiểu các điểm buýt trên một tuyến là 15, số lượng tối đa các điểm buýt trên một tuyến là 30, số lượng xe buýt tối đa trên một tuyến là 40.
Tỉ lệ phần trăm xảy ra hiện tượng đột biến là 10%.
Đầu ra của chƣơng trình:
Tập tin “output.txt” lưu dữ liệu của hai giá trị hàm mục tiêu trong các nghiệm qua 100 thế hệ.
Các tập tin tương ứng với mỗi thế hệ lưu 20 nghiệm là thiết kế tuyến xe buýt và tần suất xe mỗi tuyến tương ứng.
4.2. Các kết quả đạt đƣợc
Kết quả thử nghiệm chƣơng trình: 20 nghiệm.
Hình 4.3: Đồ thị phân bố nghiệm cho thành phố Đà Nẵng qua các thế hệ
Ghi chú:
Trục x là giá trị Si 1 (hàm tối ưu cho nhà quản lý bus), trục y là giá trị Si 2 (hàm tối ưu cho người dùng trong toàn mạng lưới) của mô hình bài toán.
Màu xanh dương là nghiệm khởi tạo ngẫu nhiên ban đầu. Màu vàng là nghiệm tại thế hệ 1. Màu xanh nhạt là thế hệ 50. Màu hồng là nghiệm tại thế hệ 100.
Thời gian chạy chƣơng trình: 56 tiếng.
Cấu hình máy tính chạy chƣơng trình: Intel® Core™ i3-2530M CPU @ 2.3GHZ (4CPUs), RAM 4096MB.
Một nghiệm trong 20 nghiệm:
Sau khi cho chương trình chạy khoảng 100 thế hệ ta được một bộ gồm 20 nghiệm. Hình dưới là minh họa cho 1 nghiệm có các tuyến buýt được phân bố trên bản đồ Google Earth:
Hình 4.4: Các tuyến buýt (trong 1 nghiệm) sau khi tính toán qua 100 thế hệ
Khi đã có một bộ nghiệm, việc chọn lựa một nghiệm phù hợp để đem đi triển khai sẽ do con người thực hiện.
Nhận xét:
Nghiệm được tối ưu dần qua các thế hệ.
Dựa vào thông tin trong “output2.txt” ta có dãy số: 9 9 9 9 2 5 5 5 6 7 3 6 5 2 2 2 3 1 2 4 4 4 6 2 7 3 3 2 2 1 5 2 3 1 0 0 1 2 2 4 1 1 0 3 1 2 4… Nhìn vào dãy số có thể thấy 15 thế hệ đầu tiên có sự thay đổi nghiệm rất lớn. Sau 30 thế hệ, sự thay đổi nghiệm đã giảm đi rõ rệt và có xu hướng thay đổi theo chu kỳ 5-6 thế hệ một lần thay đổi nhiều.
Với nhu cầu đi lại được xây dựng theo thuật toán đơn giản bên trên, các tuyến buýt đầu ra của chương trình chưa bám sát hoàn toàn với thực tế và cần được chỉnh sửa bằng con người. Việc xây dựng nhu cầu đi lại giữa các nút cần nhiều thời gian khảo sát thực tế, nghiên cứu kĩ càng bởi vì nhu cầu càng sát thực tế bao nhiêu thì kết quả chương trình tính toán được càng chính xác bấy nhiêu.
Kết quả này sau khi chỉnh sửa đã được báo cáo tại hai hội thảo ở Việt Nam:
Hội thảo về giao thông thông minh của thành phố Đà Nẵng (12/2013).
Hội thảo tối ưu và tính toán khoa học lần thứ 12 của Viện Nghiên cứu cao cấp về Toán – VIASM (23 - 25/04/2014).
4.3. Kết luận
Chương 4 giới thiệu về công cụ bản đồ Google Earth và quá trình xây dựng dữ liệu thử nghiệm cho thành phố Đà Nẵng. Sau đó, giới thiệu về kết quả chạy thử nghiệm chương trình và nhận xét nghiệm qua các thế hệ của bài toán.
KẾT LUẬN
Trong luận văn, tác giả có những đóng góp rõ ràng sau:
Nghiên cứu một cách tổng quát và có hiểu biết về mô hình hóa mạng lưới giao thông xe buýt.
Nghiên cứu giải thuật di truyền giải bài toán tối ưu tuyến xe buýt.
Lập trình phần mềm.
Thử nghiệm chương trình với thành phố Đà Nẵng.
Tuy nhiên, trong quá trình làm luận văn, tác giả cũng gặp phải một số khó khăn, tiêu biểu như việc định lượng nhu cầu đi lại bằng xe buýt giữa các điểm trong thành phố Đà Nẵng. Trong tương lai gần, tác giả và các đồng nghiệp sẽ tiếp tục hoàn thiện hơn chương trình và áp dụng được trong thực tế.
TÀI LIỆU THAM KHẢO Tiếng Anh
1. K. Deb, et al., “Fast Elitist Non-Dominated Sorting Genetic Algorithm for Multi-Objective Optimization: NSGA-II,” Parallel Problem Solving from Nature VI (PPSN-VI), 2000, pp. 849-858.
2. K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A fast and elitist multiobjective genetic algorithm: NSGA-II," IEEE Transactions on Evolutionary Computation 6 (2002), pp. 182–197.
3. G. Gallo and S. Pallottino, “Shortest path methods: a unifying approach,”
Mathematical Programming Study 26 (1963), pp. 38-64.
4. Z. Y. Gao, et al., “A Continuous Equilibrium Network Design Model and Algorithm for Transit System,” Transpotation Research Part B, Vol. 38, No. 3, 2004, pp. 235-250.
5. J. F. Guan, et al., “Simultaneous Optimization of Transit Line Configuration and Passenger Line Assignment,” Transportation Research Part B, Vol. 40, No. 10, 2006, pp. 885-902.
6. K. Kepaptsoglou and M. Karlaftis, “Transit Route Network Design Problem: Review,” Journal of Transportation Engineering-ASCE, Vol. 135, No. 8, 2009, pp. 491-505.
7. F. Kurauchi, et al, "Capacity Constrained Transit Assignment with Common Lines," Journal of Mathematical Modelling and Algorithms, 2 (2003), pp. 309- 327.
8. K. Nachtigall and K. Jerosch, “Simultaneous Network Line Planning and Traffic Assignment,” 2008.
9. S. Nguyen and Pallotino, "Equilibrium assignment for large scale transit network," European J.Oper.Res, 37 (1988), pp. 176-186.
10. M. Petrelli, “A Transit Network Design Model for Urban Areas,” In: C. A. Brebbia and L. C. Wadhwa, Eds., Ur-ban Transport X, WIT Press, Southampton, 2004, pp.163-172.
11. H. Shimamoto, et at., “Evaluation of Public Transit Congestion Mitigation Measures Using Passenger Assignment Model,” Journal of Eastern Asia Transportation Studies, Vol. 6, 2005, pp. 2076-2091.
12. H. Shimamoto, et al., “Evaluation of an Existing Bus Network Using a Transit Network Optimisation Model: A Case Study of the Hiroshima City Bus Network,” Transportation, Vol. 37, No. 5, 2010, pp. 801-823.
13. H. Shimamoto, J-D. Schmöcker, F. Kurauchi, "Optimisation of a Bus Network Configuration and Frequency Considering the Common Lines Problem", Journal of Transportation Technologies, 2 (2012), pp. 220-229.
14. A. Zhou, B. Qu, H. Li, S. Zhao, P. N. Zhang, survey paper: "Multiobjective evolutionary algorithms: A survey of the state of the art", Swarm and Evolutionary Computation, 1 (2011), pp. 32-49.
15. J. Zhou, and W. H. K. Lam., “A Bi-Level Programming Approach – Optimal Transit Fare under Line Capacity Constraints,” Journal of Advanced Transportation, Vol. 35, No. 2, 2000, pp. 105-124.