Vì vậy, để giải quyết mục tiêu tổng quátđã đề ra, chúng ta cần thực hiện từng bước: mô hình hóa mạng lưới xe buýt thànhmột đồ thị có thêm yếu tố thời gian, xây dựng các ràng buộc về lộ t
Trang 1Nguyễn Đức Đình Nghĩa
ỨNG DỤNG ĐỘ ĐO SAI BIỆT
TRONG GIẢI THUẬT XÁC ĐỊNH K LỘ TRÌNH BUÝT
Chuyên ngành: Khoa học Máy tínhMã số: 60.48.01
LUẬN VĂN THẠC SĨ
TP Hồ Chí Minh, tháng 06 năm 2017
Trang 2Cán bộ chấm nhận xét 1: TS.Lê Thanh VânCán bộ chấm nhận xét 2: TS.Tô Bá LâmLuận văn thạc sĩ được bảo vệ tại Trường Đại Học Bách Khoa, ĐHQG Tp.HCM vàongày 17 tháng 07 năm 2017
Thành phần hội đồng đánh giá luận văn thạc sĩ gồm:1 PGS.TS.Trần Văn Hoài
2 TS.Nguyễn Đức Dũng3 TS.Lê Thanh Vân4 TS.Tô Bá Lâm5 TS.Nguyễn Đức TháiXác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyênngành sau khi luận văn được sửa chữa (nếu có)
Trang 3NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Đức Đình NghĩaMSHV: 7140248Ngày, tháng, năm sinh: 17/03/1990Nơi sinh: Nha Trang
Chuyên ngành: Khoa học máy tính Mã số: 60.48.01
I TÊN ĐỀ TÀI: Ứng dụng độ đo sai biệt trong giải thuật xác định K lộ trình
buýt
NHIỆM VỤ VÀ NỘI DUNG
Nhiệm vụ: Đề xuất giải pháp để xác định K lộ trình buýt dựa trên các độ đo sai biệtvà quy trình đánh giá chất lượng tập K lộ trình buýt dựa trên một số tiêu chí
Nội dung:1 Nghiên cứu tổng quan các giải thuật tìm K lộ trình buýt.2 Nghiên cứu các hướng mô hình hóa mạng lưới xe buýt.3 Tìm hiểu các độ đo sai biệt có thể áp dụng trong giải thuật tìm K lộ trình.4 Đề xuất giải thuật và quy trình đánh giá để xác định K lộ trình buýt dựa trên
các độ đo sai biệt
II NGÀY GIAO NHIỆM VỤ: 30/08/2016III NGÀY HOÀN THÀNH NHIỆM VỤ: 19/06/2017IV CÁN BỘ HƯỚNG DẪN: TS.Huỳnh Tường Nguyên
Trang 4Em xin gửi lời cảm ơn chân thành nhất đến Tiến sĩ Huỳnh Tường Nguyên Làngười Thầy hướng dẫn Em thực hiện đề tài trong suốt giai đoạn đề cương đến giaiđoạn phát triển đề tài lên luận văn tốt nghiệp Em luôn nhận được sự quan tâm, địnhhướng, cách nhìn nhận và hướng dẫn giải quyết vấn đề của Thầy qua từng giai đoạnthực hiện đề tài Em xin chân thành cảm ơn Thầy Huỳnh Tường Nguyên đã tận tìnhhướng dẫn, giúp đỡ Em trong quá trình thực hiện luận văn này Em cũng xin gửi lờicảm ơn đến các Thầy Cô trong khoa Khoa học và Kỹ thuật máy tính nói chung, vàbộ môn Khoa học máy tính nói riêng đã tạo điều kiện thực nghiệm và cho Em nhiềuđóng góp quý báu để Em hoàn thành luận văn này.
Tp Hồ Chí Minh, ngày 19 tháng 06 năm 2017
Nguyễn Đức Đình Nghĩa
Trang 5Hiện nay, tắc nghẽn giao thông tại các thành phố lớn ở Việt Nam đang là vấn đềnóng và nhận được nhiều sự quan tâm không chỉ đối với người dân mà còn là vấnđề gây đau đầu đối với các nhà chức trách Ách tắc giao thông không chỉ gây thiệthại lớn về kinh tế mà còn gây ô nhiễm môi trường Có rất nhiều nguyên nhân đượcđưa ra, nhưng nguyên nhân chủ yếu là do ý thức tham gia giao thông chưa cao, sựbùng nổ và thói quen sử dụng các phương tiện giao thông cá nhân như xe máy vàxe hơi Đã có nhiều đề xuất được được đưa ra như xây dựng thêm các cơ sở hạ tầngvới quy mô lớn, nâng cao ý thức trách nhiệm của người tham gia giao thông Tuynhiên các phương án trên vẫn chưa thực sự hữu hiệu vì nó chưa giải quyết được vấnđề cốt lõi là thói quen khi tham gia giao thông và mật độ phương tiện tham gia giaothông ở các thành phố lớn.
Do đó, một trong những giải pháp giảm ùn tắc giao thông là khuyến khích ngườidân sử dụng các phương tiên công cộng Vì vậy, luận văn tập trung vào bài toán tìmra lộ trình tối ưu cho người sử dụng xe buýt dựa trên thời gian thực, nghĩa là phụthuộc vào thời gian truy vấn của người dùng mà hệ thống sẽ gợi ý những lộ trìnhkhác nhau Mặc khác, sở thích của người dùng có thể nhiều nhưng việc gợi ý một lộtrình tối ưu có thể không thỏa mãn hết các nhu cầu cần thiết của họ Do đó, thay vìgợi ý một lộ trình tối ưu từ điểm khởi hành đến điểm kết thúc thì việc gợi ý nhiều lộtrình tương tự sẽ hữu ích hơn cho người dùng lựa chọn theo sở thích cá nhân và linhđộng hơn trong việc lựa chọn lộ trình phù hợp với tình trạng giao thông hiện tại
Tuy nhiên, việc áp dụng các giải thuật tìm K đường đi sẽ tồn tại những lộ trình
không có nghĩa về mặt thực tế: detour, đi bộ liên tiếp, những lộ trình overlap
Do đó, để gợi ý K lộ trình thực sự có nghĩa đối với người dùng, chúng ta đề xuất sửdụng các độ đo sai biệt và các ràng buộc Vì vậy, để giải quyết mục tiêu tổng quátđã đề ra, chúng ta cần thực hiện từng bước: mô hình hóa mạng lưới xe buýt thànhmột đồ thị có thêm yếu tố thời gian, xây dựng các ràng buộc về lộ trình buýt, xâydựng giải thuật tìm K lộ trình buýt dựa trên đồ thị với các ràng buộc và độ đo saibiệt Cuối cùng đề xuất quy trình đánh giá thực nghiệm để chọn ra tập K lộ trìnhbuýt phù hợp với tiêu chí của người dùng dựa trên mỗi độ đo sai biệt
Trang 6Nowadays, traffic jam in big cities in Vietnam has been being a hot topic andreceiving many attentions not only with citizen but also a headache problem withthe authority Traffic jam not only causes economic damage but also causes pol-lution There’re a lot of causes has been raised, but the most important one is thebad traffic attitude, the explosion in the habit of using individual vehicle like mo-torbike, car, etc There’re many proposes has been raised like building more hugetraffic infrastructures, increase the attitude, responsibility of citizen However,those solutions have not taken effective cause it still can’t solve the heart problemwhen joining traffic and the density of vehicles in big cities.
Therefore, one of the solutions to reduce traffic jams is to encourage people touse public transport So, the thesis focuses on the problem of finding the optimalroute for a real-time bus user that means depending on the user’s query time thatthe system will recommend other bus routes On the other hand, the interests of theuser may be many, but suggesting an optimal route may not meet all their needs.Therefore, instead of an optimal route from the origin to the destination, we rec-ommending alternative bus routes that would be more useful for users to chooseflexibly based on personal preference and traffic status currently
However, there exist some bus routes are meaningless in reality when applying
the algorithms to find the K paths such as: detour, continuous walking, overlap bus
routes Thus, the K paths is really meant for users, we recommend to applydissimilarity measurements and constraints in algorithm Consequently, in order toaddress the overall goal, we need to take steps: modeling the bus network into atime dependent directed graph, constructing bus route constraints, proposing thealgorithm for finding the K bus routes on graph with applying constraints and dis-similarity measurements And finally, we propose an empirical evaluation processto choose the K bus routes that matches the criteria of the user based on each dis-similarity measurement
Trang 7LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này hoàn toàn do tôi thực hiện Các số liệu và kếtquả đạt được trong quá trình nghiên cứu là hoàn toàn trung thực Tôi xin chịu tráchnhiệm hoàn toàn về luận văn của mình
Tp Hồ Chí Minh, ngày 19 tháng 06 năm 2017
Nguyễn Đức Đình Nghĩa
Trang 8Mục lục
Chương 1 Mở đầu 7
1.1 Động cơ nghiên cứu 7
1.2 Mục đích nghiên cứu 8
1.3 Đối tượng và phạm vi nghiên cứu 9
1.4 Phương pháp nghiên cứu 9
1.5 Cấu trúc luận văn 9
Chương 2 Cơ sở lý thuyết 11
2.1 Tổng quan tài liệu 11
2.2 Giải thuật tìm K đường đi tối ưu 12
2.2.1 Giải thuật Yen 13
2.3 Mô hình hóa mạng lưới xe buýt 15
2.3.1 Mô hình Time-Expanded 15
2.3.2 Mô hình Time-Dependent 16
2.3.3 So sánh 2 mô hình 17
Chương 3 Giải pháp đề xuất 18
3.1 Mô hình hóa mạng lưới xe buýt 18
3.1.1 Dữ liệu hệ thống xe buýt 18
3.1.2 Xây dựng mô hình mạng lưới xe buýt 19
Trang 93.2 Thời gian biểu 23
3.3 Bài toán K lộ trình đường đi tối ưu 26
3.4 Các độ đo sai biệt 28
3.5 Giải thuật tìm K đường đi tối ưu có ràng buộc 30
Chương 4 Kết quả thực nghiệm 32
Trang 10Danh sách hình vẽ
2.1 Đồ thị G 13
2.2 Cây kết quả T3 14
2.3 Giải thuật Yen 15
2.4 Mô hình time-expanded cho 3 trạm A, B và C 16
2.5 Mô hình time-dependent cho 3 trạm A, B và C 17
3.1 Hướng tiếp cận giải quyết bài toán giao thông công cộng 20
3.2 Đồ thị time-dependent cho 2 trạm A và B 21
3.3 Một lộ trình đường đi P 22
3.4 Một đường đi p 23
3.5 Một mạng lưới xe buýtB đơn giản 26
3.6 Giải thuật tìm K đường đi tối ưu có ràng buộc 31
4.1 Số lượng truy vấn thành công |SQS| của Độ đo sai biệt 1 37
4.2 Số lượng truy vấn thành công |SQS| của Độ đo sai biệt 2 38
4.3 Số lượng truy vấn thành công |SQS| của Độ đo sai biệt 3 39
4.4 Số lượng truy vấn thành công |SQS| của Độ đo sai biệt 4 40
4.5 Giá trị Lost và Gain với K = 2, Độ đo sai biệt 1 43
4.6 Giá trị Lost và Gain với K = 3, Độ đo sai biệt 1 43
4.7 Giá trị Lost và Gain với K = 4, Độ đo sai biệt 1 44
4.8 Giá trị Lost và Gain với K = 5, Độ đo sai biệt 1 44
4.9 Giá trị Lost và Gain với K = 2, Độ đo sai biệt 2 45
4.10 Giá trị Lost và Gain với K = 3, Độ đo sai biệt 2 45
4.11 Giá trị Lost và Gain với K = 4, Độ đo sai biệt 2 46
4.12 Giá trị Lost và Gain với K = 5, Độ đo sai biệt 2 46
4.13 Giá trị Lost và Gain với K = 2, Độ đo sai biệt 3 47
4.14 Giá trị Lost và Gain với K = 3, Độ đo sai biệt 3 47
4.15 Giá trị Lost và Gain với K = 4, Độ đo sai biệt 3 48
4.16 Giá trị Lost và Gain với K = 5, Độ đo sai biệt 3 48
4.17 Giá trị Lost và Gain với K = 2, Độ đo sai biệt 4 49
Trang 114.18 Giá trị Lost và Gain với K = 3, Độ đo sai biệt 4 49
4.19 Giá trị Lost và Gain với K = 4, Độ đo sai biệt 4 50
4.20 Giá trị Lost và Gain với K = 5, Độ đo sai biệt 4 50
4.21 Giá trị Gain của Độ đo sai biệt 1 51
4.22 Giá trị Gain của Độ đo sai biệt 2 52
4.23 Giá trị Gain của Độ đo sai biệt 3 53
4.24 Giá trị Gain của Độ đo sai biệt 4 54
4.25 So sánh các giá trị ADTPM dựa trên bảng 4.9 57
4.26 So sánh các giá trị ADTPM dựa trên bảng 4.10 57
4.27 So sánh các giá trị ADTPM dựa trên bảng 4.11, 4.12 58
4.28 So sánh các giá trị ADNTM dựa trên bảng 4.9 59
4.29 So sánh các giá trị ADNTM dựa trên bảng 4.10 59
4.30 So sánh các giá trị ADNTM dựa trên bảng 4.11, 4.12 60
4.31 So sánh các giá trị ACP dựa trên bảng 4.9 61
4.32 So sánh các giá trị ACP dựa trên bảng 4.10 61
4.33 So sánh các giá trị ACP dựa trên bảng 4.11, 4.12 62
4.34 So sánh các giá trị ATP dựa trên bảng 4.9 63
4.35 So sánh các giá trị ATP dựa trên bảng 4.10 63
4.36 So sánh các giá trị ATP dựa trên bảng 4.11, 4.12 64
4.37 So sánh các giá trị ART dựa trên bảng 4.9 65
4.38 So sánh các giá trị ART dựa trên bảng 4.10 65
4.39 So sánh các giá trị ART dựa trên bảng 4.11, 4.12 66
Trang 12Danh sách bảng
2.1 So sánh 2 mô hình 17
3.1 Thời gian biểuTT của kết nối 2 trạm A và B 25
3.2 Thời gian biểuTTαA,Bcủa tuyến α từ trạm A tới B 25
3.3 Tất cả các lộ trình đường đi 27
3.4 Ký hiệu được dùng trong giải thuật 30
4.1 Số lượng truy vấn thành công |SQS| của Độ đo sai biệt 1 37
4.2 Số lượng truy vấn thành công |SQS| của Độ đo sai biệt 2 38
4.3 Số lượng truy vấn thành công |SQS| của Độ đo sai biệt 3 39
4.4 Số lượng truy vấn thành công |SQS| của Độ đo sai biệt 4 40
4.5 Hiệu suất và chất lượng nghiệm của Độ đo sai biệt 1 41
4.6 Hiệu suất và chất lượng nghiệm của Độ đo sai biệt 2 41
4.7 Hiệu suất và chất lượng nghiệm của Độ đo sai biệt 3 42
4.8 Hiệu suất và chất lượng nghiệm của Độ đo sai biệt 4 42
4.9 Các cặp giá trị (α, K) tốt nhất cho mỗi độ đo sai biệt 55
4.10 Các cặp giá trị (α, K) tốt nhất cho mỗi độ đo sai biệt 55
4.11 Các cặp giá trị (α, K) tốt nhất cho mỗi độ đo sai biệt 56
4.12 Các cặp giá trị (α, K) tốt nhất cho mỗi độ đo sai biệt 56
Trang 13Chương 1
Mở đầu
Trong những năm gần đây, ùn tắc giao thông ngày càng trở nên trầm trọng tạicác thành phố lớn tại Việt Nam nói chung và thành phố Hồ Chí Minh nói riêng.Thực tế chỉ ra rằng kẹt xe gây thiệt hại rất lớn về kinh tế và môi trường, ảnhhưởng lớn đến việc phát triển đô thị bền vững Theo bài tham luận của PGS.TS.Nguyễn Minh Hòa, Trưởng khoa Đô thị học, ĐH KHXHNV TP.HCM trong hộithảo quốc tế “Cơ hội và thách thức cho phát triển đô thị bền vững” tổ chức ngày15/09/2014 tại ĐH KHXHNV TP.HCM, tắc nghẽn giao thông là một trong nhữngvấn nạn nghiêm trọng, khó giải quyết nhất tại thành phố Hồ Chí Minh, làm tổn thấthằng năm lên đến 1.2 tỷ USD (http://tuoitre.vn/tin/chinh-tri-xa-hoi/20140915/tphcm-ket-xe-gay-thiet-hai-12-ty-usd-nam/646060.html)
Nguyên nhân gây ùn tắc giao thông được chỉ ra chủ yếu là do người dân thờ ơ vớiphương tiện giao thông công cộng (xe buýt) so với phương tiện giao thông cá nhân(xe máy, loại hình đi lại gây kẹt xe nhiều nhất) Do đó, một trong những giải phápgiảm ùn tắc giao thông là khuyến khích người dân sử dụng các phương tiên côngcộng Cụ thể là cần xây dựng một hệ thống dịch vụ giao thông công cộng cung cấpnhững thông tin cần thiết, có khả năng đáp ứng được những nhu cầu di chuyển màcác phương tiện giao thông cá nhân hiện có Dịch vụ giao thông công cộng là cầnthiết đối với các thành phố hiện đại, cùng với sự phát triển nhanh chóng của cácthiết bị hỗ trợ cá nhân như điện thoại thông minh, máy tính bảng hay các hệ thốnggợi ý lộ trình sẽ giúp đỡ cho người dân có thể lập kế hoạch cho hành trình của họmột cách hiệu quả hơn Phần lớn các ứng dụng không chỉ gợi ý 1 lộ trình mà còn gợi
Trang 14ý nhiều lộ trình tương tự khác, do đó sẽ linh động hơn cho người dùng cuối trongviệc lựa chọn lộ trình phù hợp với tình hình giao thông hiện tại Mặc khác, lộ trìnhbuýt được gợi ý có tính chất “động”, nghĩa là cùng 1 câu truy vấn sẽ gợi ý các lộtrình buýt khác nhau phụ thuộc vào thời gian truy vấn của người dùng Vì vậy, luậnvăn tập trung vào bài toán xác định K lộ trình tối ưu cho người sử dụng xe buýt dựatrên thời gian thực, nghĩa là phụ thuộc vào thời gian truy vấn của người dùng mà hệthống sẽ gợi ý tập K lộ trình khác nhau Ví dụ, nếu người dùng cùng sử dụng mộttruy vấn (cùng điểm khởi hành và điểm kết thúc) tại thời điểm 7h sáng và 9h sángthì hệ thống sẽ gợi ý các lộ trình khác nhau.
Bài toán tìm đường đi tối ưu là một trong những bài toán được áp dụng rộng rãinhất trong cuộc sống Trong số đó, tìm đường đi tối ưu giữa hai địa điểm trên bảnđồ số trong giao thông là phổ biến hơn cả Các bài toán thường tập trung vào việc
tìm ra 1 đường đi tối ưu dựa trên một tiêu chí nào đó (thời gian di chuyển ít nhất,
quãng đường ngắn nhất, số lần chuyển tuyến ít nhất ) Mặc khác, sở thích củangười dùng có thể nhiều nhưng việc gợi ý một lộ trình tối ưu có thể không thỏa mãnhết các nhu cầu cần thiết của họ Do đó, thay vì gợi ý một lộ trình tối ưu từ điểmkhởi hành đến điểm kết thúc thì việc gợi ý nhiều lộ trình tương tự sẽ hữu ích hơncho người dùng lựa chọn theo sở thích cá nhân và linh động hơn trong việc lựa chọnlộ trình phù hợp với tình trạng giao thông hiện tại
Xét về gốc độ thực tiễn: Xuất phát từ bài toán thực tế có nhu cầu tìm K lộ trìnhbuýt Xét về gốc độ học thuật: Để xác định tập K lộ trình có 2 hướng tiếp cận:
Phương pháp xấp xỉvà Phương pháp chính xác Trong đó, các giải thuật của phương
pháp chính xác chỉ phân biệt được lộ trình có chứa chu trình (loop) hoặc không chứachu trình (loop-less), chứ không phân biệt được các lộ trình thực sự khác nhau baonhiêu phần trăm, lộ trình có ý nghĩa với người dùng không Vì vậy, để gợi ý K lộtrình buýt “hợp lý” cho người dùng cuối, đề tài sử dụng thêm các độ đo sai biệt đểloại bỏ những lộ trình thật sự không khác nhau nhiều và các ràng buộc để kết quả lộtrình thực sự có nghĩa Tuy nhiên, cùng 1 truy vấn ứng với mỗi độ đo sai biệt sẽ gợiý tập K lộ trình buýt khác nhau Rõ ràng, mỗi độ đo sai biệt chỉ phù hợp với mộtđặc tính nào đó Do đó, đề tài đề xuất quy trình đánh giá chất lượng nghiệm (tức tậpK lộ trình buýt) của các độ đo sai biệt dựa trên một số tiêu chí Những thông tin vàlý do trên đã trở thành động lực để chúng ta thực hiện luận văn này
Trang 15những lộ trình overlap Do đó, để gợi ý K lộ trình thực sự có nghĩa đối với ngườidùng, chúng ta đề xuất sử dụng các độ đo sai biệt và các ràng buộc Vì vậy, để giảiquyết mục tiêu tổng quát đã đề ra, cần thực hiện từng bước những mục tiêu nhỏ sau:• Mô hình hóa mạng lưới xe buýt thành một đồ thị có thêm yếu tố thời gian
(thời gian mỗi chuyến xe buýt hoạt động trong ngày và thời gian truy vấn của
người dùng cuối).• Xây dựng các ràng buộc về lộ trình buýt, xây dựng giải thuật tìm K lộ trình
buýt dựa trên các ràng buộc và độ đo sai biệt.• Quy trình đánh giá thực nghiệm để chọn ra tập K lộ trình buýt phù hợp với
tiêu chí của người dùng dựa trên mỗi độ đo sai biệt
Phạm vi nghiên cứu của luận văn chỉ tập trung vào đối tượng giao thông côngcộng là xe buýt và cụ thể là Tp.Hồ Chí Minh Thời gian hoạt động hằng ngày củamỗi chuyến xe buýt và hành trình của các tuyến xe buýt là không có sự thay đổi.Không xem sét các yếu tố “điều kiện giao thông” khi tìm lộ trình buýt dựa trên thờigian
Để đạt được các mục tiêu đã đề ra cho luận văn, các bước thực hiện bao gồm:• Thu thập dữ liệu từ hệ thống xe buýt Tp.Hồ Chí Minh
• Mô hình hóa mạng lưới xe buýt, xây dựng đồ thị, chọn lựa các độ đo sai biệt.• Xây dựng bài toán tìm K lộ trình buýt có ràng buộc và đề xuất giải thuật để
giải quyết bài toán đã đặt ra.• Xây dựng các tiêu chí thực nghiệm để đánh giá tập K lộ trình buýt trong mỗi
độ đo và giữa các độ đo sai biệt với nhau
Phần còn lại của luận văn này được tổ chức theo cấu trúc sau:
Trang 16• Chương 2: Trình bày cơ sở lý thuyết gồm tổng quan về các công trình nghiêncứu liên quan đến bài toán tìm K đường đi và các hướng mô hình hóa mạnglưới xe buýt.
• Chương 3: Đề xuất giải pháp để giải quyết bài toán xác định K lộ trình buýtdựa trên các độ đo sai biệt
• Chương 4: Trình bày các kết quả đánh giá thực nghiệm dựa trên tập dữ liệucủa xe buýt Tp.Hồ Chí Minh
Trang 17Chương 2
Cơ sở lý thuyết
Bài toán tìm K đường đi ngắn nhất trong một đồ thị không chứa chu trình âm làbài toán cổ điển, không chỉ tìm ra một đường đi ngắn nhất từ đỉnh nguồn tới đỉnhđích mà còn tìm thêm (K − 1) đường đi ngắn nhất với K > 1, theo thứ tự tăng dầntrong số của đường đi Bài toán này được giải quyết đầu tiên vào năm 1959 bởiHoffman và Pavley [6] Kể từ đó, nhiều giải thuật khác nhau đã được đề xuất Đểhiểu rõ hơn các giải thuật này, người đọc có thể tham khảo tài liệu online tại http://liinwww.ira.uka.de/bibliography/Theory/index.html Nói chung, tấtcả các giải thuật để giải quyết bài toán K đường đi ngắn nhất được chia làm 2 loại.Loại thứ nhất, cho phép có đỉnh lặp lại trong các đường đi ngắn nhất hay còn gọi
là đường đi non-simple [7] Loại thứ hai, không cho phép có đỉnh lặp lại trong cácđường đi ngắn nhất hay còn gọi là đường đi simple, và loại này thường khó hơn loạithứ nhất [8] Giải thuật tốt nhất để tìm ra K đường đi simple ngắn nhất trong một
đồ thị có hướng (directed) hoặc vô hướng (undirected) là Yen [8] và Lawler [9] Độphức tạp trong trường hợp xấu nhất của giải thuật là O(m + nlogn) là độ phức tạpcủa giải thuật tìm đường đi ngắn nhất nguồn đơn nếu sử dụng cấu trúc dữ liệu hiệnđại (Fibonaci-heap) Nhiều kỹ thuật [10, 11] được đề xuất để cải tiến giải thuật nàytrong đồ thị có hướng và thật sự hiệu quả Tuy nhiên, vẫn chưa cải tiến độ phức tạptrong trường hợp xấu nhất của giải thuật Yen Ngược lại, nếu đồ thị là vô hướng, độphức tạp của giải thuật Yen được cải tiến thành O(K(m + nlogn)) bởi Katoh, Ibaraki
và Mine [12] Giải thuật tốt nhất để tìm ra K đường đi non-simple ngắn nhất trong
một đồ thị có hướng là Eppstein [13] và độ phức tạp O(m + nlogn + K)
Trang 18Mặc khác, các giải thuật trong loại thứ hai được phần thành 4 nhóm Nhóm 1 sửdụng phương pháp vét cạn (Brute-force) gồm các giải thuật [14] phương pháp nàykhông hiệu quả bởi vì nó sẽ liệt kê hết tất cả các đường đi có thể từ đỉnh nguồn tớiđỉnh đích Nhóm 2 sử dụng phương pháp nguyên tắc tối ưu (Optimality principle)gồm các giải thuật [15] Nhóm 3 sử dụng phương pháp rẽ hướng đường đi (Pathdeviation) gồm các giải thuật [8] Nhóm 4 sử dụng phương pháp thay thế đườngđi (Replacement paths) gồm các giải thuật [16] tuy nhiên phương pháp này gặpmột vấn đề là đường đi ngắn nhất được sinh ra có thể chứa các đỉnh lặp lại trongmột số trường hợp Để giảm thời gian thực thi cho bài toán K đường đi ngắn nhất,một hướng tiếp cận khác là sử dụng phương pháp tính toán song song [17] hoặcphương pháp heuristic [18] Tuy nhiên, phương pháp heuristic không tìm chính xáctập K đường đi ngắn nhất, có nghĩa một số đường đi ngắn nhất có thể bị thiếusót Ví dụ, thực ra đường đi ngắn nhất thứ 20 được tìm bởi phương pháp heuristiclà đường đi ngắn nhất thứ 25 trong phương pháp chính xác Do đó, phương phápheuristic thiếu 5 đường Để giảm tỉ lệ overlap giữa các đường đi ngắn nhất đượcsinh ra từ các giải thuật K đường đi ngắn nhất, sử dụng các độ đo được đề xuất bởi[21, 22, 23, 24, 25, 26].
Cho một đồ thị có hướng, có trọng số G = (V, E) trong đó V là tập các đỉnh và Elà tập các cạnh với các cặp có thứ tự của các phần tử thuộc V Mỗi cạnh e ∈ E đượcbiểu diễn e = (u, v) với u, v ∈ V và có một trọng số không âm e.weight hoặc `(u, v).Mỗi đỉnh v ∈ V có một thuộc tính id duy nhất v.id Gọi s là đỉnh nguồn (source)và t là đỉnh đích (destination) Cạnh đi từ đỉnh u tới đỉnh v được gọi là cạnh đi ra(outgoing) tại đỉnh u hoặc được gọi là cạnh đi vào (incoming) tại đỉnh v
Một đường đi (path) p = hu1, e1, , ux−1, ex−1, uxi là một dãy các đỉnh và cáccạnh sao cho ui ∈ V , (1 ≤ i ≤ x) và ei = (ui, ui+1) ∈ E (1 ≤ i < x) Không mấttính tổng quát, chúng tôi thay thế các cạnh trong đường đi p bằng biểu tượng → Sốlượng đỉnh trong đường đi p được biểu diễn nodes(p) và đỉnh ith(1 ≤ i ≤ nodes(p))trong đường đi được gọi là p[i] Đường đi p được gọi là đường đi đơn giản (simple)nếu và chỉ nếu không chứa các đỉnh lặp lại hoặc p[i].id 6= p[ j].id (1 ≤ i < j ≤nodes(p)) Chi phí cost(p) của một đường đi p bằng tổng trọng số của các cạnhliên tiếp trong p Đặt P(ui,uj) chứa các đường đi đơn giản mà bắt đầu tại đỉnh uivà kết thúc tại đỉnh uj Khoảng cách ngắn nhất giữa đỉnh ui và đỉnh uj, được biểudiễn δ (ui, uj), là chi phí nhỏ nhất của tất cả các đường đi trong P(ui,uj) Ví dụ, tronghình 2.1, đường đi s → d → c → s chứa 1 đỉnh lặp lại là đỉnh s, do đó đường đi
này không phải là đường đi đơn giản (non-simple) Đường đi s → b → e → g → t làđường đi đơn giản (simple) và có chi phí nhỏ nhất là δ (s,t) = 14 Hai đường đi p1
Trang 19và p2 được nối với nhau nếu đỉnh cuối cùng của p1trùng với đỉnh bắt đầu của p2vàđược biểu diễn p1 p2.
t
ecs
11
33
2.2.1.Giải thuật Yen
Để tìm đường đi ngắn nhất pi(i< K) thì các đường đi ngắn nhất p1, p2, , pi−1phải được xác định trước Do đó, đường đi ngắn nhất đầu tiên phải được xác địnhbằng cách dùng giải thuật Dijkstra [19] (hoặc một giải thuật khác) Đường đi ngắnnhất tiếp theo có thể được sinh ra từ một sự rẽ hướng (deviation) của các đường đingắn nhất trước đó Giả sử, đường đi pi là đường đi ngắn nhất thứ i thì mỗi đỉnhpi[ j] trong đường đi pi được phân tích như là đỉnh rẽ hướng (deviation node) đểsinh ra một đường đi ứng viên (candidate path) mới và được kí hiệu cpi[ j] Đường điứng viên cpi[ j]cũng phải là đường đi đơn giản (simple) Do đó, để sinh ra cpi[ j]hợplệ, giải thuật Yen sử dụng tập đỉnh IgN để tránh có đỉnh lặp lại và sử dụng tập cạnhIgE để làm cho cpi[ j]khác với các đường đi ngắn nhất đang tồn tại
Định nghĩa 1 (Cây kết quả) Cho trước tập PK = {p1, p2, , pK} chứa các đường
đi ngắn nhất từ đỉnh s đến đỉnh t Cây kết quả (pseudo result tree) T = (V0, E0, s)
lưu trữ tất cả các đường đi trong tập PK thành một cấu trúc cây Khi K =1, cây T
được xây dựng bằng đường đi ngắn nhất p1 Giả sử, cây kết quả Ti được xây dựngbằng đường đi ngắn nhất Pi, thì cây Ti+1 được xây dựng bằng cách nối thêm mộtnhánh mới là đoạn đường con (sub-path) từ đỉnh d đến đỉnh t của đường đi ngắn
Trang 20nhất pi+1 tới cây Ti Trong đó, đỉnh d là đỉnh xa đỉnh s nhất trong cây Ti sao chođường đi từ s đến d trong Ti cũng là đường đi trong pi+1 Pseudo có nghĩa trongcây kết quả có thể tồn tại nhiều đỉnh giống nhau, ví dụ đỉnh e.
tp2
tp3t
1
56
1
56
Định nghĩa 2 Cho trước tập Pi chứa i đường đi ngắn nhất từ đỉnh s đến đỉnh t vàđược lưu trữ trong cây kết quả Ti Khi đó, đường đi pi là đường đi ngắn nhất thứ
i Nếu các đỉnh pi[ j](1 ≤ j ≤ nodes(pi)) trong đường đi pi được dùng làm đỉnh rẽhướng thì tập IgNpi[ j]sẽ chứa tất cả các đỉnh từ pi[1] tới pi[ j − 1] và tập IgEpi[ j]sẽchứa tất cả các cạnh mà có đỉnh bắt đầu là pi[ j] trong cây Ti.
Ví dụ, trong hình 2.2, g là đỉnh rẽ hướng của đường đi p2 có tập đỉnh IgNp2[4]={s, b, e} và tập cạnh IgEp2[4] = {(g,t); (g, f )}
Quy trình xác định K đường đi ngắn nhất đơn giản đi từ đỉnh nguồn s đến đỉnhđích t, xem hình 2.3, được mô tả như sau: Đầu tiên, dùng giải thuật Dijkstra để xác
Trang 21định đường đi ngắn nhất đầu tiên p1 đi từ s đến t và khởi tạo cây kết quả T Đốivới mỗi đỉnh pi[ j](1 ≤ j ≤ nodes(pi)) trong đường đi pi vừa mới được thêm vào Ttìm tập đỉnh IgNpi[ j]và tập cạnh IgEpi[ j]tương ứng cho đỉnh pi[ j] Sau đó, xác địnhđường đi ứng viên cpi[ j] Đường đi ứng viên được xây dựng bằng cách nối 2 đoạnđường con (sub-path) s1 s2 Trong đó, s1 là đoạn đường con của đường đi pi đi từđỉnh s tới đỉnh pi[ j], s2 là đường đi ngắn nhất đi từ đỉnh pi[ j] tới đỉnh t trong đồthị G − IgNpi[ j]− IgEp
i[ j] và có thể dùng giải thuật Dijkstra để tìm s2 Ví dụ tronghình 2.2, đường đi ứng viên cp1[4] có đỉnh rẽ hướng tại đỉnh g là hs, b, e, g, f ,ti.Đường đi cp1[4] = hs, b, e, gi hg, f ,ti Sau khi, tất cả các đỉnh trong đường đi pi đãđược xử lý, chọn đường đi có chi phí nhỏ nhất trong tất cả các đường đi ứng viênlàm đường đi ngắn nhất tiếp theo pi+1và thêm vào cây kết quả T Lặp lại quy trìnhnày cho đến khi xác định đủ K đường đi ngắn nhất
Hình 2.3: Giải thuật Yen.Một chiến lược tối ưu đơn giản, không cần thiết phải sinh ra tất cả các đườngđi ứng viên tương ứng với mỗi đỉnh rẽ hướng pi[ j](1 ≤ j ≤ nodes(pi)) trong đườngđi ngắn nhất pi Giả sử, trong cây Ti đường đi pi có đỉnh b là đỉnh rẽ nhánh và gầnvới đỉnh lá (leaf) nhất trong cây, hoặc đỉnh b là đỉnh gốc nếu đường đi pi không cóđỉnh rẽ nhánh trong cây Khi đó, các đường đi ứng viên tương ứng với mỗi đỉnh đitừ đỉnh s đến đỉnh b đã được sinh ra trước đó Do đó, chỉ cần sinh ra các đường điứng viên tương ứng với mỗi đỉnh đi từ đỉnh b đến đỉnh cuối cùng trong đường đi pi
Có 2 hướng tiếp cận mô hình hóa mạng lưới xe buýt thành một đồ thị có hướng,trọng số dương
2.3.1.Mô hình Time-Expanded
Mô hình time-expanded [1, 2] là một đồ thị có hướng G = (V, E) trong đó mỗisự kiện thời gian (thời gian khởi hành hoặc thời gian đến) tại một trạm sẽ biểu diễnmột đỉnh của đồ thị, mỗi phần tử (Z, S1, S2,td,ta) thuộc thời gian biểu sẽ biểu diễn
một cạnh train-edge của đồ thị mà ở đó đỉnh đi thuộc trạm S1 với thời gian khởi
Trang 22hành (departure time) td và đỉnh đến thuộc trạm S2 với thời gian đến (arrival time)ta và trọng số của cạnh train-edge là thời gian di chuyển td− ta để đi từ S1 tới S2,Z là tập các tuyến xe buýt đi qua hai trạm S1 và S2 Với mỗi trạm S, tất cả các đỉnhthuộc trạm S đều gắn với một giá trị thời gian nhất định Cho tập đỉnh v1, , vnthuộc S có thời gian biểu tăng dần, cạnh (vi, vi+1), 1 ≤ i ≤ n − 1 được gọi là cạnh
stay-edgecủa đồ thị, biểu diễn trạng thái chờ đợi tại trạm và trọng số của cạnh đượctính tvi+1− tvi
Hình 2.4: Mô hình time-expanded cho 3 trạm A, B và C
2.3.2.Mô hình Time-Dependent
Mô hình time-dependent [3, 4, 5] là một đồ thị có hướng G = (V, E) trong đó mỗitrạm sẽ biểu diễn một đỉnh của đồ thị và mỗi kết nối giữa 2 trạm sẽ biểu diễn mộtcạnh của đồ thị Tuy nhiên, trọng số của cạnh phụ thuộc vào thời điểm khởi hành củachuyến xe thuộc tuyến xe Z Do đó, trọng số của cạnh sẽ được tính “on-the-fly” dựatrên hàm chi phí theo thời gian (cost function) Cụ thể, hàm chi phí f(v,w)(tv) = twtrong đó tv là thời gian khởi hành tại đỉnh v và twvới (tw≥ tv) là thời gian đến đỉnhw sớm nhất (có thể) nên trọng số của cạnh bằng tw− tv = f(v,w)(tv) − tv Mô hìnhnày làm việc dựa trên giả sử: cho 2 trạm v và w, 2 chuyến xe bus 1 và bus 2 cùngthuộc tuyến Z, nếu bus 1 khởi hành trước bus 2 tại trạm v thì bus 1 phải đến trướcbus 2 tại trạm w, nghĩa là: t1 ≤ t2 ⇒ f (t1) ≤ f (t2) và ∀t, f (t) ≥ t
Trang 23Hình 2.5: Mô hình time-dependent cho 3 trạm A, B và C.
2.3.3.So sánh 2 mô hình
Đỉnh Một sự kiện thời gian (khởi
hành, đến) tại mỗi trạm xe buýt Mỗi trạm xe buýtCạnh Kết nối giữa 2 sự kiện thời gian Kết nối giữa 2 trạmTrọng số
cạnh (v, w) Tĩnh, tw− tv
Động, phụ thuộc vào thời giankhởi hành tv tại trạm vKích thước
Bảng 2.1: So sánh 2 mô hình
Trang 24Chương 3
Giải pháp đề xuất
3.1.1.Dữ liệu hệ thống xe buýt
Dữ liệu của hệ thống xe buýt bao gồm:
• Trạm: Trạm có thể là bến xe (bus station) nơi các xe buýt khởi hành hoặc kết
thúc lộ trình, có thể là nhà chờ xe buýt (bus stop) nơi các xe buýt chỉ ghé quađón hoặc trả khách trên đường đi
• Kết nối: Là tập hợp những thông tin liên quan giữa 2 trạm Có hai loại kết
nối:
– Kết nối giữa 2 trạm (connection): thông tin kết nối gắn với một tuyến
xe (mã số tuyến) nhất định và chi phí (khoảng cách, thời gian) Mỗi kếtnối có thời gian biểu (timetable) riêng chứa thời gian khởi hành và thờigian kết thúc của 2 trạm cho từng chuyến xe buýt (bus trip) thuộc cùngmột tuyến xe buýt (route)
– Kết nối giữa 2 trạm có khoảng cách gần nhất (nearby connection): cho
phép đi bộ giữa 2 trạm, thông tin kết nối không gắn với một tuyến xenào cả và chi phí (khoảng cách, thời gian)
• Tuyến: Là tập hợp các trạm nối với nhau bởi các kết nối (connection) mà có
cùng một mã số tuyến và mỗi xe buýt sẽ đi qua trong suốt hành trình của nó
Trang 25– Các tuyến xe buýt khác nhau sẽ có các lộ trình đi khác nhau, nhưng có
thể giao nhau trong một khoảng lộ trình nào đó
– Mỗi tuyến xe buýt gồm một lượt đi và một lượt về Lộ trình đi và lộ
trình về có thể ngược nhau hoặc hoàn toàn khác nhau
– Tùy theo từng tuyến xe buýt mà lộ trình đi có thời gian khởi hành và
thời gian kết thúc khác nhau
– Mỗi tuyến xe buýt sẽ có nhiều “chuyến xe buýt” thay phiên nhau đến
các nhà chờ để đón hoặc trả khách
– Tùy vào từng thời điểm trong ngày mà từng tuyến xe buýt sẽ có thời gian
giãn cách giữa các chuyến xe khác nhau Thời gian giãn cách là khoảngthời gian mà cứ cách một khoảng thời gian thì có một chuyến xe thuộctuyến xe đến nhà chờ để đón khách
• Thời gian biểu: Là thời gian xuất phát (departure time) tại một trạm và thời
gian đến (arrival time) trạm tiếp theo gắn với mỗi kết nối (connection) Thờigian biểu (timetable) là một số nguyên và được tính bằng giây, bắt đầu từ lúc5h và kết thúc lúc 20h30, nghĩa là [18000, 73800]
3.1.2.Xây dựng mô hình mạng lưới xe buýt
Chúng ta đề xuất một hướng tiếp cận, hình 3.1, để giải quyết bài toán tìm đườngđi tối ưu trong hệ thống giao thông công cộng có hỗ trợ sử dụng xe buýt Kết quả:
Hệ thống sẽ gợi ý cho người sử dụngK lộ trình đường đi (route recommendation)
từ trạm khởi hành đến trạm kết thúc Trong đó, mỗi “lộ trình đường đi” có thể điqua một hoặc nhiều tuyến xe Gồm các bước:
• Xây dựng đồ thị từ tập dữ liệu hệ thống xe buýt Đồ thị của hệ thống xe buýtbao gồm: tập đỉnh biểu diễn cho các trạm xe buýt và tập cạnh biểu diễn chocác hành động di chuyển của người đi (lên xe, xuống xe, đi bộ, ngồi trên xe).Ứng với mỗi hành động di chuyển, người đi phải gánh chịu một khoảng chiphí là thời gian di chuyển (travel time)
• Nhận thông tin tìm kiếm từ người dùng bao gồm: trạm khởi hành, trạm kếtthúc và thời gian khởi hành
• Áp dụng giải thuật vào đồ thị đã được xây dựng để gợi ý K lộ trình đường đitối ưu (tổng thời gian di chuyển ít nhất) cho người dùng
Tuy nhiên, so với các bài toán giao thông thông thường, hệ thống giao thông côngcộng có những đặc tính riêng (thời gian biểu, ) mà với những cách mô hình hóa(xây dựng đồ thị) khác nhau, chúng ta có thể gia tăng đáng kể hiệu suất của hệthống
Trang 26Hình 3.1: Hướng tiếp cận giải quyết bài toán giao thông công cộng.
ĐặtB = (S,C,R,T,TT) là mạng lưới xe buýt (bus network) trong đó:• S là tập tất cả các trạm xe buýt
• C ⊆ S2 là tập tất cả các kết nối (connection) giữa các trạm xe buýt.• R là tập các tuyến xe buýt Với mỗi tuyến x ∈ R, gọi Sx vàCx⊆S2
x là tập cáctrạm và tập các kết nối thuộc tuyến x sao cho S =S
x∈RSx vàC =S
x∈RCx.Một tuyến x ∈R được định nghĩa là một đường đi không có chu trình (acyclicpath) x = hs1, s2, , sni với si ∈ Sx, ∀i ∈ {1, , n} và (sj, sj+1) ∈Cx, ∀ j ∈{1, , n − 1} Mặc khác, mỗi chuyến xe (bus trip) thuộc tuyến x sẽ bắt đầuhành trình từ trạm s1, tiếp tục ghé thăm các trạm s2, , sn−1 và kết thúc tạitrạm sn và sẽ chạy theo định kỳ dựa trên lịch trình cố định (schedule)
• T = [0,+∞) là tập các điểm thời gian mà xuất hiện trong bảng thời gian biểu.Khoảng thời gian (period) của T có thể là hằng ngày hoặc hằng tuần
• TT là thời gian biểu chứa các phần tử (element) c = (Z,Sd, Sa,td,ta) Mộtphần tử c có nghĩa: tồn tại một chuyến xe buýt thuộc tuyến Z(c) khởi hành tạitrạm Sd(c) vào thời điểm td(c) và kết thúc tại trạm Sa(c) vào thời điểm ta(c).Với mỗi phần tử c ∈TT, c phải thỏa mãn những ràng buộc sau: Z(c) ∈ R;Sd(c), Sa(c) ∈SZ(c); td(c),ta(c) ∈T; ta(c) ≥ td(c)
Dựa trên mô hình time-dependent 2.3.2, chúng ta mô hình hóa mạng lưới xe buýtB thành một đồ thị có hướng, trọng số dương G = (V,E) và gọi ξ : V → S là một
Trang 27hàm đơn ánh (injective) ánh xạ một đỉnh u ∈V vào một đỉnh A ∈ S Đồ thị G là đồthị phụ thuộc thời gian và được xây dựng gồm các bước:
1 Mô hình hóa các tuyến xe trongR thành một đồ thị có hướng, trọng số dươngGR = (VR,ER) trong đó: VR =S
2 Mô hình hóa các trạm xe trongS thành một đồ thị có hướng, trọng số dươngGS = (VS,Ewalk) Với mỗi trạm A ∈S tạo ra một đỉnh trạm (stop vertex) sA∈VS và ξ (sA) = A, sau đó tạo ra một cạnh đi bộ (walking arc) (sA, sB) ∈Ewalktương ứng với mỗi cặp trạm A, B ∈S mà có kết nối (nearby connection).3 Đồ thịG = (V,E) được xây dựng dựa trên 2 đồ thị GR vàGS vớiG = GR⊕GS
trong đó, V = VR∪VS vàE = ER∪Ewalk∪Ein∪Eo f f VớiEin ⊆VS×VR là
tập các cạnh lên xe (get-in arc) và Eo f f ⊆VR×VS là tập các cạnh xuống xe
(get-off arc) Sau đó, tạo ra một cạnh (u, v) ∈Ein và một cạnh (v, u) ∈Eo f ftương ứng với mỗi cặp đỉnh u ∈VS và v ∈VR nếu ξ (u) = ξ (v)
Hình 3.2 minh họa một đồ thị time-dependent được xây dựng dựa trên 2 trạm xebuýt A và B, trong đó: mỗi tuyến xe α, β đều đi qua 2 trạm và được phép đi bộ giữa2 trạm
Hình 3.2: Đồ thị time-dependent cho 2 trạm A và B
Trang 28Đồ thịG = (V,E) có những thuộc tính:• T
x∈RWxTVS = /0• T
x∈RFxTEWalkTEinTEo f f = /0Với những thuộc tính trên, tập đỉnh V sẽ biểu diễn được tất cả những trạng thái(state) và tập cạnh E sẽ biểu diễn được tất cả những hành động (action) của mộtngười đi xe buýt Cụ thể:
• Một đỉnh trạm u ∈VS biểu diễn trạng thái của một người đi xe buýt đangđứng đợi tại trạm ξ (u)
• Một đỉnh tuyến u ∈Wx biểu diễn trạng thái của một người đi xe buýt đangngồi trên chuyến xe ghé tại trạm ξ (u) thuộc tuyến x
• Một cạnh tuyến (u, v) ∈Fx với u, v ∈Wx biểu diễn hành động của một ngườiđi xe buýt đang ngồi trên chuyến xe di chuyển từ trạm ξ (u) tới trạm ξ (v)thuộc tuyến x
• Một cạnh đi bộ (u, v) ∈Ewalk với u, v ∈VSbiểu diễn hành động của một ngườiđi xe buýt đi bộ từ trạm ξ (u) tới trạm ξ (v)
• Một cạnh lên xe (u, v) ∈Ein với u ∈VS và v ∈Wx biểu diễn hành động củamột người đi xe buýt lên chuyến xe thuộc tuyến x tại trạm ξ (u)
• Một cạnh xuống xe (u, v) ∈Eo f f với u ∈Wx và v ∈VS biểu diễn hành độngcủa một người đi xe buýt xuống chuyến xe thuộc tuyến x tại trạm ξ (v)
Định nghĩa 3 Đặt P = hs1, a1, s2, a2, , sn−1, an−1, sni, n ≥ 2 là một lộ trình đường
đi (route recommendation) trong mạng lưới xe buýtB (bus network) với trạm bắt
đầu s1 và trạm kết thúc sn Lộ trình đường đi P cho biết hành động di chuyển từtrạm s1 tới trạm s2 là a1, hành động di chuyển từ trạm s2 tới trạm s3 là a2, , hànhđộng di chuyển từ trạm sn−1 tới trạm sn là an−1, trong đó si∈S, ∀i ∈ {1, ,n} và
hành động ai∈R∪{walk}, ∀i ∈ {1, ,n−1} Hành động ai thể hiện sự di chuyểngiữa 2 trạm liên tiếp: trên tuyến xe nếu ai∈R, đi bộ nếu ai∈ {walk}.
Hình 3.3 minh họa một lộ trình đường đi P = hs1, x, s3, walk, s4, y, s5i từ trạm s1tới trạm s5
Hình 3.3: Một lộ trình đường đi P
Trang 29Định nghĩa 4 Đặt p = hv1, v2, , vni, n ≥ 2 là một đường đi (path) trong đồ thịG
biểu diễn một lộ trình đường đi P trong mạng lưới xe buýtB của một truy vấn với
trạm bắt đầu A, trạm kết thúc B và thời gian khởi hành tA (departure time) tại trạm
A Trong đó: v1, vn ∈VS; ξ (v1) = A; ξ (vn) = B; (vi, vi+1) ∈E, ∀i ∈ {1, ,n − 1}.Hình 3.4 minh họa một đường đi p biểu diễn một lộ trình đường đi P (hình 3.3),
trong đó: ξ (v1) = s1, ξ (v2) = s2, ξ (v3) = s3, ξ (v4) = s4, ξ (v5) = s5, hình tròn biểudiễn đỉnh trạm và hình vuông biểu diễn đỉnh tuyến (rxv
1 là đỉnh tuyến thuộc tuyến x)
2
rvx3v3
v4
ride on xget-off x
walk
get-in y
Hình 3.4: Một đường đi p
Đồ thị của hệ thống xe buýtG = (V,E) bao gồm tập đỉnh biểu diễn cho các trạmxe buýt và tập cạnh biểu diễn cho các hành động di chuyển của người đi (lên xe,xuống xe, đi bộ, ngồi trên xe) Do đó, ứng với mỗi hành động di chuyển, người điphải gánh chịu một khoảng chi phí là thời gian di chuyển (travel time) Cụ thể, ứngvới mỗi loại cạnh (u, v) ∈E, u 6= v sẽ có hàm chi phí theo thời gian (cost function)C :E × T → T xác định thời gian di chuyển từ đỉnh u tới đỉnh v với thời gian đến(arrival time) tại đỉnh u là tu ∈T Vì vậy,
C(u,v)(tu) =
0 if (u, v) ∈Eo f fτξ (u) if (u, v) ∈Einωξ (u),ξ (v) if (u, v) ∈Ewalkθξ (u),ξ (v)x (tu) if (u, v) ∈Fx ⊆ER
(3.1)
Trang 30• Thời gian lên, xuống xe (transfer time):
– Thời gian lên xe (get-in time): Gọi τA là thời gian từ lúc người dùngtới trạm (đỉnh trạm) để chờ đợi chuyến xe kế tiếp đến trạm (đỉnh tuyến),nghĩa là sẽ mất bao lâu để lên được chuyến xe tiếp theo (thời gian chờđợi phụ thuộc vào thời điểm người dùng đến trạm) Cụ thể hơn, tại mỗitrạm A, người dùng có thể bắt được chuyến xe thuộc tuyến xe α nếu thờigian mà người dùng tới trạm A (đỉnh trạm) sớm hơn thời gian khởi hànhcủa chuyến xe buýt đó tại trạm A (đỉnh tuyến)
– Thời gian xuống xe (get-off time): Là một hằng số cố định cho trước.
• Thời gian đi bộ (walking time): Gọi ωA,B là thời gian đi bộ giữa 2 trạm A vàB Thời gian đi bộ sẽ được tính bằng khoảng cách đi bộ từ A tới B chia chovận tốc đi bộ trung bình
• Thời gian đi xe (routing time): Gọi θα
A,B(tA) là thời gian di chuyển trên xebuýt thuộc tuyến α bắt đầu đi từ trạm A và kết thúc tại trạm B với thời gianđến (arrival time) trạm A là tA
θA,Bα (tA) = min{t0|(t,t0) ∈TTα
A,B,tA≤ t} − tA (3.2)Trong đó, TTα
A,B là thời gian biểu của tất cả các chuyến xe thuộc tuyến xe αđi từ trạm A tới trạm B
TTαA,B= {(td(c),ta(c))|c ∈TT,Sd(c) = A, Sa(c) = B, Z(c) = α} (3.3)NếuTTα
A,B= /0, có nghĩa không tồn tại kết nối (connection) từ trạm A tới trạmB trên tuyến xe α trong thời gian biểuTT Nói một cách khác, không tồn tạichuyến xe buýt nào thuộc tuyến xe α để người dùng có thể di chuyển từ A tớiB Toán tử “min” trong công thức 3.2 chọn ra cặp (t,t0) trong thời gian biểuTTα
A,B sao cho thời gian khởi hành t (departure time) tại trạm A phải lớn hơnhoặc bằng thời gian đến tAtại trạm A và thời gian đến t0tại trạm B phải là nhỏnhất Gọi thời gian đến tối thiểu tại trạm B (nếu tồn tại) là t∗, thời gian để dichuyển từ trạm A tới trạm B là t∗− t và thời gian chờ đợi tại trạm A trước khibước lên chuyến xe buýt thuộc tuyến α là t − tA Vì vậy,
θA,Bα (tA) = (t∗− t) + (t − tA) = t∗− tA (3.4)
Trang 31Bảng 3.1: Thời gian biểuTT của kết nối 2 trạm A và BChuyến xe (bus) Tuyến (Z) Sd Sa td ta
Bảng 3.2: Thời gian biểuTTα
A,B của tuyến α từ trạm A tới BChuyến xe (bus) td ta
A,B Đối với tuyến xe α, giả sử mộtngười tới trạm A tại thời điểm tA= 8:15 nên người này không thể bắt chuyếnxe buýt 1 (bus 1) bởi vì chuyến xe này đã rời đi lúc 8:05 và chuyến xe buýttiếp theo mà người này có thể bắt là chuyến xe buýt 3 (bus 3) Vì vậy, thờigian để người này đi tới trạm B sẽ được tính từ lúc người này chờ đợi để bắtđược chuyến xe buýt 3 tại trạm A và thời gian di chuyển trên xe để đến trạmBlà θα
A,B = (8:20 - 8:15) + (8:55 - 8:20) = 8:55 - 8:15 = 40 phút
Định nghĩa 5 Đặt C(p,t) là tổng chi phí thời gian di chuyển của đường đi p (định
nghĩa 4) trong đồ thịG và được tính:
C(p,t) =
n−1
∑
i=1C(vi,vi+1)(tvi),tvi+1 = tvi+ C(v
i,vi+1)(tvi), ∀i ∈ {1, , n} (3.5)
Trang 32Trong đó: điều kiện biên (boundary condition) tv1 = t và C(vi,vi+1)(tvi) là thời gian
di chuyển trên cạnh (vi, vi+1) với tvi là thời gian đến (arrival time) tại đỉnh vi (thamkhảo hàm chi phí thời gian 3.1).
Để đảm bảo trọng số (thời gian di chuyển) của các cạnh trong đồ thị G khôngâm (non-negative), thì mỗi phần tử trong thời gian biểu TT phải thỏa mãn điều
kiện FIFO (First-in-First-out): Cho trước 2 phần tử c1, c2 ∈TT với Z(c1) = Z(c2),
• Hai đường đi p3, p4 giống với hai đường đi p1, p2.• Hai đường đi p11, p12 không có nghĩa bởi vì chứa detour.
• Các đường đi p5, , p10 sẽ được thay thế (replace) bởi đường đi p1 hoặcp2, nghĩa là các tuyến xe trong các đường đi p5, , p10 đều xuất hiện trongđường đi p1, p2
Vì vậy, tập các lộ trình đường đi mong muốn là {p1, p2} Từ quan sát ở trên, mặc dùgiải thuật gợi ý ra 12 đường đi nhưng thật sự chỉ có 2 đường đi có ý nghĩa đối vớingười sử dụng Do đó, để loại bỏ những đường đi không có nghĩa, chúng ta dùngcác độ đo sai biệt 3.4 và các ràng buộc (định nghĩa 6, 7)
Trang 33Bảng 3.3: Tất cả các lộ trình đường đi
Path Route recommendationp1 hs1, x, s3, z, s5i (∗)p2 hs1, y, s3, z, s5i (∗)p3 hs1, x, s4, z, s5ip4 hs1, y, s4, z, s5ip5 hs1, x, s2, y, s3, z, s5ip6 hs1, x, s2, y, s4, z, s5ip7 hs1, x, s3, y, s4, z, s5ip8 hs1, y, s2, x, s3, z, s5ip9 hs1, y, s2, x, s4, z, s5ip10 hs1, y, s3, x, s4, z, s5ip11 hs1, x, s2, y, s3, x, s4, z, s5ip12 hs1, y, s2, x, s3, y, s4, z, s5i
Định nghĩa 6 (Ràng buộc đi bộ liên tiếp) Một đường đi p = hv1, v2, , vni, n > 2
trong đồ thịG được gọi là đường đi hợp lý (reasonable path) nếu không tồn tại 2
cạnh đi bộ liên tiếp (vi, vi+1), (vi+1, vi+2) ∈Ewalk, ∀i ∈ {1, , n − 2} trong đường
đi p.
Định nghĩa 7 (Ràng buộc detour) Một đường đi p = hv1, v2, , vni, n > 2 trong đồ
thịG được gọi là đường đi hợp lý (reasonable path) nếu không tồn tại các cạnh tuyến
((vi, vi+1) ∈Fx) ∩ ((vi+1, vi+2)∈/Fx) ∩ ((vj, vj+1) ∈Fx), ∀ j> i + 1, ∀i ∈ {1, , n −3} trong đường đi p.
Trang 34Định nghĩa 8 Cho trước một điểm bắt đầu đi o ∈VS (origin), một điểm kết thúc
d∈VS (destination) và thời gian khởi hành t ∈T (departure time) tại o trong đồ thịG Bài toán K lộ trình đường đi tối ưu (tổng thời gian di chuyển ít nhất hoặc thời
gian đến điểm d sớm nhất) xác định một tậpPK = {p1, p2, , pK} gồm K đường
đi giữa đỉnh o và đỉnh d Trong đó, tập đường đi PK phải thỏa mãn những điềukiện sau:
a) ∀i ∈ {1, , K}, pi∈ PK là một đường đi đơn giản (simple path) từ o đến d,nghĩa là đường đi pi không chứa chu trình.
b) ∀i ∈ {1, , K}, pi ∈ PK phải thỏa mãn các ràng buộc 6, 7, nghĩa là đườngđi pi không được chứa đi bộ liên tiếp và detour.
c) Đường đi pi phải được xác định trước đường đi pi+1, ∀i ∈ {1, , K − 1},
nghĩa là C(pi,t) ≤ C(pi+1,t) và C(pK,t) ≤ C(pe,t), ∀pe∈ P(o,d)và pe∈ P/ K
d) @pi ∈ PK : pi <Dreplacem,α pj, ∀i, j ∈ {1, , K} và i 6= j, nghĩa là tất cả các
đường đi trong tậpPK đều có sự sai biệt với nhau.Trong đó: P(o,d)là tập tất cả các đường đi từ o tới d và pi<Dreplacem,α pj (định nghĩa 9)có nghĩa đường đi pi có thể thay thế đường đi pj
Khi áp dụng giải thuật Yen [8] trên đồ thị G để tìm K đường đi tối ưu thì phầnlớn kết quả của đường đi tiếp theo có sự thay đổi rất nhỏ so với kết quả của đườngđi liền trước nên tồn tại nhiều tuyến xe giống nhau trong mỗi lộ trình đường đi Dođó, để loại bỏ những đường đi mà có số lượng tuyến xe giống với những đường điđã tồn tại trước đó, chúng ta dùng độ đo để tính sự sai biệt giữa các đường đi
Gọi R(p) và R(q) lần lượt là tập hợp các tuyến xe buýt (route) trong mỗi lộtrình đường đi p (p ∈PK) và lộ trình đường đi q (q ∈ Π) Để đo sự khác nhau(dissimilarity) giữa 2 đường đi p và q, chúng ta sử dụng 4 độ đo sai biệt:
Trang 351 Độ đo sai biệt Jaccard [21]
|R(p) ∩ R(q)||R(q)|2 , 0 ≤ D4(p, q) ≤ 1 (3.9)Trong mỗi độ đo, hệ số overlap (phần phân số) đo số lượng tuyến xe giống nhau(similarity) trong 2 đường đi Gọi α ∈ [0, 1] là ngưỡng giá trị sai biệt, đối với mỗiđộ đo nếu Dm(p, q) ≥ α, m = {1, 2, 3, 4} thì 2 đường đi p và q được xem là có sựsai biệt tối thiểu α% Mặc khác, các độ đo được tính dựa trên tập hợp nên có tínhchất:
• Nếu Dm(p, q) = 1 thì 2 đường đi p và q khác nhau hoàn toàn (perfect ent)
differ-• Nếu 0 < Dm(p, q) < 1 thì 2 đường đi p và q có thể giao nhau (intersection)hoặc có thể chứa nhau (subset) Giả sử tập các tuyến xe trong đường đi q đềuxuất hiện trong đường đi p, mặc dù Dm(p, q) vẫn thỏa ngưỡng giá trị sai biệtα nhưng đường đi q sẽ không có nghĩa cho việc gợi ý nên phải loại bỏ đườngđi này
• Nếu Dm(p, q) = 0 thì 2 đường đi p và q giống nhau hoàn toàn (equal)
Định nghĩa 9 Cho trước một ngưỡng giá trị sai biệt α và thời gian khởi hành t, một
lộ trình đường đi p sẽ thay thế một lộ trình đường đi q, được ký hiệu p <Dreplacem,α q,
nếu trong mỗi độ đo sai biệt:1 Đường đi p phải được xác định trước đường đi q, C(p,t) ≤ C(q,t)
2 Dm(p, q) < α hoặc Dm(p, q) ≥ α và R(p) ⊂ R(q) hoặc Dm(p, q) ≥ α và
R(q) ⊂ R(p)
Trang 363.5.Giải thuật tìm K đường đi tối ưu có ràng buộc
Để tìm tập K lộ trình đường đi tối ưu trên đồ thịG thỏa mãn các ràng buộc trongđịnh nghĩa 8 Chúng ta đề xuất giải thuật dựa trên ý tưởng của giải thuật Yen [8].Mã giả (pseudo code) của giải thuật được trình bày hình 3.6 và các ký hiệu sử dụngtrong giải thuật được trình bày bảng 3.4
Bảng 3.4: Ký hiệu được dùng trong giải thuật
TDSP(o, d,t) Giải thuật TDSP tìm đường đi có tổng chi phí thời gian di chuyển
C(p,t) ít nhất từ o tới d với thời gian khởi hành t tại oχ Tâp chứa các đường đi ứng cử viên (candidate paths)Π Tập chứa các đường đi có C(p,t) theo thứ tự tăng dầnAi Đường đi thứ ith từ o tới d trong tập Π
nodes(Ai) Số lượng đỉnh trong đường đi AiAi[ j] Đỉnh rẽ hướng (deviation node) thứ jth trong đường đi Ai, trong đó
1 ≤ j ≤ nodes(Ai) − 1Q.put(Ai, Ai[ j]) Lưu trữ đỉnh rẽ hướng thứ jth của đường đi AiQ.get(Ai) Lấy đỉnh rẽ hướng của đường đi Ai
PK Tập chứa K lộ trình đường đi tối ưu thỏa mãn các ràng buộc
Giải thuật 3.6 thực thi giải thuật Yen để sinh ra các đường đi có C(p,t) theo thứtự tăng dần Những đường đi này được lưu trữ trong tập Π Nếu mỗi đường đi trongtập Π thỏa mãn những điều kiện ràng buộc (hàng 10 - 11) thì sẽ được lưu trữ vào tậpPK (hàng 12) Bởi vì, không biết trước được số lượng đường đi phải sinh ra trongtập Π để tìm đủ K lộ trình đường đi hợp lý, chúng ta giới hạn số lượng đường đitrong tập Π bởi một ngưỡng giá trị F Nếu tìm đủ K lộ trình đường đi thì giải thuậtsẽ kết thúc (hàng 13 - 14) và truy vấn thành công Ngược lại, nếu số lượng đườngđi ứng cử viên trong tập χ bằng 0 hoặc số lượng đường đi trong tập Π lớn hơn F thìgiải thuật cũng sẽ kết thúc (hàng 7) và truy vấn thất bại, điều này có nghĩa không tìmđủ K lộ trình đường đi Mặc khác, dùng giải thuật TDSP (standard time-dependentshortest path algorithm) [20] để tìm đường đi có thời gian đến điểm d sớm nhất vớithời gian khởi hành t tại điểm o trên đồ thị phụ thuộc thời gian (hàng 4, hàng 26)
Trang 37Algorithm 1: Tìm K đường đi tối ưu có ràng buộcInput : Điểm bắt đầu o, điểm kết thúc d và thời gian khởi hành t tại đỉnh o,
Giá trị K, ngưỡng giá trị sai biệt α, các độ đo sai biệt Dm(p, q) và số lượng đườngđi F trong tập Π
17spurN ode← đỉnh thứ vth của đường đi Ai;
18rootP ath← đường đi con (sub-path) chứa v đỉnh đầu tiên của đường đi Ai;
19spurT ime← thời gian đến (arrival time) đỉnh thứ vth của đường đi Ai;
21existingRootP ath← đường đi con chứa v đỉnh đầu tiên của đường đi p;
22existingSpurT ime← thời gian đến đỉnh thứ vthcủa đường đi p;
23if rootP ath = existingRootP ath và spurT ime = existingSpurT ime then
24Xóa bỏ cạnh nối từ đỉnh vth tới đỉnh (v + 1)th của đường đi p trong đồ thịG;
25Xóa bỏ tất cả (v− 1) đỉnh đầu tiên của đường đi Aitrong đồ thịG;
26spurP ath← TDSP(spurNode, d, spurT ime);
27if spurP ath tồn tại trong đồ thịG then
28candiateP ath← rootP ath spurP ath;
29Q.put(candidateP ath, spurN ode);
31Khôi phục các cạnh đã xóa trong đồ thịG;
32Khôi phục các đỉnh đã xóa trong đồ thịG;
Trang 38Mô hình đồ thị (graph model) gồm: 13614 đỉnh (đỉnh trạm và đỉnh tuyến), 31056cạnh (cạnh đi bộ, cạnh lên xe, cạnh xuống xe và cạnh tuyến) Chúng ta giả sử thờigian cho hành động xuống xe bằng 0.
Tập dữ liệu truy vấn cho thực nghiệm được sinh ngẫu nhiên với 1000 truy vấn(o, d,t) trong đó: điểm bắt đầu đi o và điểm kết thúc d được sinh ngẫu nhiên vớiđiều kiện khoảng cách nhỏ nhất giữa 2 điểm là 5 km, thời gian khởi hành t đượcchọn trong khoảng thời gian từ 7h30 đến 8h sáng bởi vì khung giờ này rất nhiềungười đi xe buýt
Trang 394.2.Tham số thực nghiệm
Trong thực nghiệm này, chúng ta sẽ xây dựng các tham số được dùng để so sánhgiữa các độ đo sai biệt với nhau Cụ thể:
• 4 giá trị K, với K = {2, 3, 4, 5}• 10 ngưỡng giá trị sai biệt α, với α = {0.05, 0.1, 0.2, , 0.9}• 4 độ đo sai biệt và giá trị F = 5000
• SQ (the successful query): Một truy vấn thành công nếu tìm đủ K lộ trìnhđường đi tối ưu và tập đường đi PK phải thỏa mãn những điều kiện trongđịnh nghĩa 8
• SQS (the successful queries set): Là tập hợp chứa những truy vấn thành côngtrong tổng số 1000 truy vấn
• JSQS (the joint successful queries set): Là tập hợp chứa những truy vấn thànhcông chung (giao nhau) của các tập SQS sao cho |SQS| ∈ [Iβ, I]
• CP (the candidate path): Để 1 truy vấn thành công thì số lượng đường đi ứngcử viên được sinh ra trong χ để tìm đủ K lộ trình bus
• ACP: Số lượng đường đi ứng cử viên trung bình được sinh ra trong χ trên tậpJSQS:
ACP = ∑
|JSQS|i=1 CPi