Kết quả nghiên cứu: Sau thời gian 1 năm thực hiện, đề tài "Nghiên cứu, xây dựng hệ thống thông tin hỗtrợ tra cứu tuyến xe buýt tại Tp.HCM” đã đạt được một số kết quả cụ thể như sau: - Mô
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRUONG ĐẠI HỌC SƯ PHAM TP.HCM
BAO CÁO TONG KET
DE TAI KHOA HOC CONG NGHE CAP TRUONG
DE TAI:
NGHIÊN CỨU XÂY DUNG HE THONG THONG TIN HỖ TRỢ
TRA CUU TUYEN XE BUYT TAI TP.HCM
Chủ nhiệm dé tài: ThS Nguyễn Ngọc Trung
Mã đề tài: CS2010.19.98
Trang 2MỤC LỤC
TOM TẤT RET GUA NGHIEN CỬ ch 6k Ai666ccsoaosoS
1 5S? | | a nan ẽr Ỷ.es=s.=se.=n=s========s=r 5
CHUONG 1 MOT SO THUAT TOAN TIM KIEM TOI UU LO TRINH XE
SEIS Ta ke nce tsetse iia saci vebesiotsiasinaanis 7
I1 — Phát biểu bài toán kisesiczeEnsobon TT 1.2 Thuật toán tìm lộ trình ngắn nhất 2000.4000004 00000100900000000000080000000000000000900 8
1.3 Thuật toán tim lộ trình ít tuyến nhất EAE ORC PRON EEN —„ 1.4 Thuật toán tim lộ trình it tuyến và ngắn nhất ‹s«<sx<esss-« 2B
CHƯƠNG 2 GIỚI THIỆU WEBSITE TRA CỨU THONG TIN XE BUÝT 34
Ri, 5õ ClaH&cvàdcDlE sccŸSŸẰẰ SẺ ŸỶnŸEOicecieoiese=eSể
“LẠC ; | ` me
“TC HÀ 0L a aera Te 38
KETLUÂN scsi IER STL cebeainaia 0050002001200 59075-5000820925900ÿ 023007906 2
TÀI LIEU THAM KHẢO tayfeibntvQiSedxidiestxe, „ 45
Trang 3TOM TAT KET QUA NGHIÊN CỨU
ĐỀ TÀI KHOA HỌC CÔNG NGHỆ CAP TRƯỜNG
Tên đề tải: Nghiên cứu xây dựng hệ thống thông tin hỗ trợ tra cứu tuyến xe buýt tại
1 Tra cứu thông tin về lịch trình và lộ trình của các tuyến xe buýt
2 Tìm lộ trình xe buýt tốt nhất từ địa điểm bắt đầu đến địa điểm kết thúc theo
nhiều mục tiêu (giá thành rẻ, ít phải đổi tuyến, thời gian ngắn nhất, )
3 Tra cứu thông tin về vị trí, địa điểm các trạm và một số thông tin khác như giá
vẻ, một số văn bản, quy định,
2 Kết quả nghiên cứu:
Sau thời gian 1 năm thực hiện, đề tài "Nghiên cứu, xây dựng hệ thống thông tin hỗtrợ tra cứu tuyến xe buýt tại Tp.HCM” đã đạt được một số kết quả cụ thể như sau:
- Mô hình hóa bài toán bằng đỗ thị và đề xuất một số thuật toán tim kiếm đường
đi tôi ưu theo các tiêu chí khác nhau
- _ Xây dựng được một trang web tra cứu thông tin trực tuyến dé hiện thực hóa các
kết quả nghiên cứu trên bài toán này với các dữ liệu giả lập Trang web được
xây dựng có giao điện thân thiện, dé sử dung va dap ứng được các yêu cầu cơ
bản về tra cứu tuyến xe buýt
Bên cạnh những kết quả đạt được, dé tài vẫn còn một số hạn chế, khiếm khuyết
như:
Trang 4- Chưa có điều kiện đẻ thử nghiệm trên dữ liệu thực tẻ.
~ Các thuật toán chỉ chú trọng vào việc tim kiếm lộ trình di chuyển xe buýt giữu
các tram, chưa tính toán đến chi phí di bộ ngắn nhất mà người dùng có thé đi.
Với những hạn chế trên, đẻ tai cần được tiếp tục nghiên cứu, phát triển thêm dé có the sớm đưa vào ứng dụng rộng rãi trong thực té.
3 Sản phẩm cu thể của đẻ tài
- 01 tài liệu trình bay chỉ tiết các thuật toán
- 0I website tra cứu tuyến xe buýt với các dữ liệu giả lập trên bản đỏ Tp Hỗ Chi
Minh.
- Dao tạo được 04 cử nhân CNTT.
Trang 5MỞ ĐÀU
I Đặt vấn đề
Ở các đô thị lớn, cùng với nhịp độ tăng trưởng kinh tế là quá trình gia tăng nhanhdân số, nhu cầu đi lại, kéo theo sự gia tăng không ngừng phương tiện cá nhân cả về số
lượng lẫn chủng loại làm cho v ấn dé giao thông dé thị trở nên cap bách hon bao giờ hét.
Hiện nay, giao thông đô thị là vẫn đề được quan tâm và ưu tiên giải quyết của phần lớn
các đô thị trên thế giới
Trong quá trình phát triển vì nhiều lý do khác nhau hệ thống giao thông đô thị pháttriển không đồng bộ và mat cân đối giữa các bộ phận ma cụ thé là giữa hệ thống giaothông tĩnh và hệ thống giao thông động Sy mat cân đối giữa giao thông tĩnh va giaothông động khiến mạng lưới giao thông đô thị trở nên kém thông suốt thường xuyên xảy
ra tình trạng ùn tắc, tai nạn giao thông, ô nhiễm môi trường
Việc phát triển vận tải hành khách công cộng nói chung và vận tải hành khách xe
buýt nói riêng được coi là một giải pháp quan trong dé hạn chế sự quá tải trong hệ thống
giao thông.
Với thực trạng giao thông ở thành phế Hồ Chi Minh hiện nay có thể nói xe buýt đã
trở thành một bộ phận không the thiểu trong đời sống của người dân Xe buýt phục vụ
nhu cầu đi lại của người dân trong đô thị, ngoài ra còn có những tuyến xe buýt kế cận
phục vụ việc đi lại giữa nội thành va các vùng lân cận, phụ cận thành phế Hồ Chí Minh.Hình thức vận tải công cộng này đã phát huy được hiệu quả to lớn đúng như mong muốn
của các nhà quản lý cũng như người dân.
Hiện nay, trên địa bản Tp.HCM có khoảng trên 100 tuyến xe buýt khác nhau Dovậy, việc nắm bắt day đủ thông tin của các tuyến xe để lựa chon một lộ trình hợp lý là mộtnhu cầu thiết yếu của người dùng
Ở một số thành phế lớn, để tiện dụng cho người dùng, người ta đã xây dựng cácwebsite hỗ trợ tra cứu tuyến, chẳng hạn như
~ Hệ thống hỗ trợ xe buýt: Kyoto City Bus Travel Map
Lh locitybusguide nev/, index htm!
- Transport for London
http://www tf] gov uk/tfl/gettingaround/maps/buses/
Ở Việt Nam, hiện tại có một số website hỗ trợ người dùng như
~ Hệ thống website hỗ trợ xe buýt tại Hà Nội: #ưp:/4www,hạnoibiuš,com vn/
Trang 6Hệ thong website trung tâm quản lý và điều hành vận tải hành khách công cộng
của Sở giao thông thành phố Hỗ Chi Minh (Attp-/Avww buytiphom.com.yn )
Mặc dù vậy, các websile này vẫn còn bộc lộ nhiều hạn chế như: chỉ cung cấp cho
người sử dụng thông tin vẻ tuyến xe, trạm chờ, giá vé, thẻ thông minh, sơ đỏ tuyến van là
bản đổ giấy Hệ thống trên còn thiểu tinh trực quan không hỗ trợ tối đa các yêu cầu ma
người dùng dat ra dé họ có thẻ lựa chọn những lộ trinh tiết kiệm nhất.
Chính vi vậy, dé đáp ing nhu cầu đi lại xe buýt của người din, cần phải có một hệ
thống hỗ trợ tìm kiếm lộ trình tối ưu Hệ thống này phải đáp ứng được các yêu cẩu: phù
hợp với đặc điểm của déng hành khách, đáp ứng tỗi đa nhu cầu đi lại của hành khách
trong thành phó với thời gian thực hiện chuyến di, số lần chuyển tuyến, và chỉ phí thấpnhất
2 Muc tiêu của đề tài
Đề tài nhằm nghiên cứu, xây dựng một hệ thống hỗ trợ tra cứu thông tin về cáctuyến xe buýt trên địa bản Tp.HCM, thể hiện cụ thể là một website bản đồ xe buýt trựctuyến với các chức năng sau:
~ Tra cứu thông tin vẻ lịch trình vả lộ trình của các tuyến xe buýt
- Tìm lộ trình xe buýt tốt nhất tử địa điểm bắt đầu đến địa điểm kết thúc theo
nhiều mục tiêu (gia thành rẻ, it phải đổi tuyến, thời gian ngẫn nhất, )
~ Tra cứu thông tin vẻ vị trí, địa điểm các trạm và một số thông tin khác như
=< ˆ = 4 +
-gia vẻ, một so văn bản, quy định,
Trang 7CHUONG I.
MOT SO THUAT TOÁN TÌM KIEM TOI UU
LO TRINH XE BUYT
1.1 Phat biểu bài toán
Với hệ thông mạng xe buýt rộng lớn như hiện nay ở thành phố Hồ Chi Minh, việc
hỗ trợ người sử dung xe buýt xác định lộ trình thích hợp cho minh là vô cùng can thiết,Trong đó, mỗi đối tượng khác nhau lại có nhu cầu chọn lựa lộ trình theo các tiêu chí khácnhau (đi nhanh nhất, quãng đường di chuyển ngắn nhất, lộ trình ít chuyển tuyến nhat, )
Do đó, van dé đặt ra là cần có các thuật toán hiệu qua để các website có thé ứng dụng va
phục vụ cho các đối tượng khác nhau Ngoài ra, kết quả nhận được không những trong
thời gian ngắn nhất mả còn phải tốt nhất
Đồ thị là một mô hình biểu diễn chặt chẽ vả tổng quát bằng ngôn ngữ ký hiệu vagiúp việc biểu diễn thuật toan trở nên rõ rang hơn Với lý do đó, hệ thong mang xe buýt sẽđược thể hiện dưới dạng đỗ thị có hướng G = (V, E) Trong đó, V là tập đỉnh đại diện cho
các trạm còn E là tập cung, mỗi dãy các cung liên tiếp đại điện cho một tuyến xe với mỗi cung được tao bởi 2 trạm ké nhau trên tuyến xe đó.
Bài toán tìm kiếm tối ưu lộ trình xe buýt có thể được phát biểu một cách hình thứcnhư sau: “Cho một bản dé các tuyến xe buýt được biểu điển đưới dang một dd thị có
hướng có trọng số G = (V,E), danh sách các tuyến xe buýt được biểu diễn dưới dang các đường đi trên dé thị này và s, t € V là trạm bắt đầu, trạm kết thúc Hay tìm một lộ
trình xe buýt từ s đến ! t6i ưu theo một trong các tiêu chi: độ dài ngắn nhất, chuyển it
tuyển nhất, chuyén ít tuyến và ngắn nhất”.
Ví dụ: Xét bản đồ xe buýt được biêu diễn dưới đạng đồ thị sau:
với các tuyến xe buýt như sau:
Trang 8- Tuyến 1:12345101
- Tuyén 2: 1034510
~ Tuyến 3: 5645
~ Tuyén4: 1789645101 Khi đó, néu trạm xuất phát fa | và trạm kết thúc là 6 thì:
~ Đường đi ngắn nhất là: | 2 3 4 5 (Tuyến 1) 5 6 (Tuyến 3) với độ dài 290
~ Đường đi ít tuyến nhất là: | 7 89 6 (Tuyến 1)
— Đường đi it tuyến và ngắn nhất là: 1 7 89 6 (Tuyến 1) với độ dai 3001.2 Thuật toán tìm lộ trình ngắn nhất
Xây dựng thuật toán tìm lộ trình ngắn nhất là việc kết hợp cau trúc lưu trữ FibonacciHeap và thuật toán Dijkstra tôi ưu hóa tốc độ xử lý
Mã gia
Shortpath()
f
INITIAL(); /&hởi tạo đổi tượng nút, cạnh
!Ị:= FibonacciHeap() // khai báo Fibonacci Heap
HỊ imsett(s) /@chèn s vào H Dof{
w:= H.extractMin()
u.state:=SCANNED
foreach e = (u,v) € E do// duyệt tắt cả các đình kẻ u
if (v.state! = SCANNED) then
if(v.state == UNLABELED) then
H.decearseKey(v) — “/giam nhan
} While(H isEmpty! =NULL)
/
Trang 9Ví dụ minh họa:
Cho đô thị G = (V, E) có trọng số như hình vẽ
Hình 2 1 - Đề thị là mô hình hóa của mạng lưới giao thông xe buýt
Yêu cầu đặt ra là tìm lộ trình đi ngắn nhất từ đỉnh số 1 đến đỉnh số 6
Các bước thực hiện thuật toán
Bước khởi tạo
Thực hiện xây dựng các đối tượng nút(node), canh(edge) của Fibonacci Heap
Khai báo Fibonacci Heap là H
Gan nhãn cho các node như sau:
e d[l]=0
© d[2]= d[3] = d[4] = d{5] = d[6] = d[7] = d[8] = d[9] = d{10] = 0
Chèn đỉnh xuất phát vào Fibonacci Heap.Nghia là: H.insert(1)
Khi đó H = { 1 }
Trang 10Bước 1
extractMin
Label
Hình 2 2 —- Thực hiện thao tác extract Min trên Fibonacci Heap H
Đuyệt tắt cả các định kẻ đỉnh số 1 và giảm khóa
K
Decrease hề ote Š
2)
10
Trang 11Bước 2
u = extractMin(H) = 2
Thêm các đỉnh kẻ đỉnh 2 vảo H
H= {7,3}
Hình 2 4— Thực hiện thao tic extract Min trên Fibonacci Heap H
Duyệt tắt cả các dinh ké định số 2 và giảm khóa
Trang 12Bước 3
u = cxtractMin(l1) = 7
extractMin
Hình 2.6 - Thực hiện thao tác extract Min trên Fibonacci Heap H
Duyệt tat cả các đình ké đỉnh số 7 và giảm khỏa
Trang 13Hình 2 8 - Thực hiện thao tác extract Min trên Fibonacci Heap H
Duyệt tắt cả các đỉnh kề đỉnh số 3 và giảm khóa
30 45
Bước 5
u = extractMin(H) = 8
Thêm các đỉnh kẻ đỉnh 7 vào H H={4.10,5,9)
Trang 14Hình 2 10 - Thực hiện thao tác extract Min trên Fibonacci Heap H
Duyệt tất cá các đỉnh kẻ đỉnh số 8 và giảm khóa
30 45 90
60
DecreaseKey
l4
Trang 15Bước 6
30 45 90 extractMin
Hình 2 12 - Thực hiện thao tác extract Min trên Fibonacci Heap H
Duyệt tat cả các định kể đỉnh số 4 va giảm khóa
30 45 90
Trang 16Bước 7
u = extractMin(H) = 10
Khẻm các đính kể đính 10 vào H
Hình 2 14 - Thực hiện thao tác extract Min trên Fibonacci Heap H
Đuyệt tat ca các đỉnh ké đỉnh số 10 và giảm khóa
Các định | và 3 đã được duyệt và đã gan nhãn nên ta kiểm tra điều kiện để có thẻ
giảm khóa hay không
30 45 90
ló
Trang 17Bước 8
Hình 2 16 - Thực hiện thao tác extract Min trên Fibonacci Heap H
Duyệt tất cả các đỉnh ké đỉnh số 5 và giảm khóa Dinh số 10 kề định số 5 đã được duyệt, chỉ còn định số 6 chưa duyệt
30 45 90
DecreaseKey
Trang 18Bước 9
u = cxtractMin(H) = 9
60
extractMin
Hình 2 18 - Thực hiện thao tác extract Min trên Fibonacci Heap H
Duyệt tất cả các định kẻ đỉnh số 9 và giảm khỏa
Hình 2 19 - Thực hiện giảm khóa và cố định nhãn
l8
Trang 19Khi mà H rỗng thi thuật toán kết thúc.
Như vậy ta tìm thấy được đường đi ngắn nhất từ 1 đến 6 là:
1-2-3-—4-5-6 với chi phí là 270 Đánh giá độ phức tạp
Công thức dé đánh giá độ phức tap của thuật toán tim đường đi ngắn nhất áp
dụng thuật toán Dijkstra Toijaster = O(m.Tpe«esekey(n) # 9 Tinsen * R.Te«eua)
Việc sử dụng thuật toán Dijkstra kết hợp với cấu tric Fibonacci Heap thời gian
Trang 201.3 Thuật toán tìm lộ trình ít tuyến nhất
1.3.1 Mô tả
Kết quả của thuật toán này là lộ trình đáp ứng tiêu chi ít phải thay đổi tuyến nhất Dé
thực hiện được điều nay, ta sẽ chuyển đổ thị dang sử dụng sang một đồ thị có hướng.
G, = , E,) với tập cạnh E, được định nghĩa như sau: Vu, v € V,(u, v) € E,, nếu từ u có
thể đến v bằng duy nhất 1 tuyển xe buýt (u và v nằm trên củng một tuyến xe buýt)
Để thuận tiện cho việc áp dụng thuật toán, chúng ta lưu trữ các giá trị đại điện cho
chiều dai ngắn nhất giữa mọi cập đính trong đồ thị G, Dé tim ra giá trị này, ta áp dụng
thuật toán Floyd-Warshall.
1.3.2 Thuật toán Floyd-Warshall
Cho đơn đồ thị với n đình và m cạnh Với u và v là 2 đỉnh bat ky của dé thị, bài toánđặt ra là cần tính tắt cả các d(u, v) là khoảng cách từ u tới v Giả sử đỏ thị G được cải đặt
đưới dang ma trận trọng số A, thuật toán Floy Wardshall trả vẻ kết quả là ma trận trong số
D với các phan tử lâ Dfu, v]:
Với mọi đình k của dé thị được xét theo thứ tự từ 1 tới n, xét mọi cặp đỉnh u, v Cựctiểu hóa D{u, v] theo công thức:
Dịu, v] := min(D[u, v], DỊu, k] + ĐỊk, v])
Diều này có nghĩa là nêu như đường đi từ u tới v đang có lại dai hơn đường đi từ u
tới k cộng với đường đi từ k tới v thì ta hủy bỏ từ u tới v hiện thời và coi đường đi từ u
tới v sẽ là nối của hai đường đi từ u tới k rồi từ k tới v (Chú ý rằng ta còn cỏ việc lưu lạivết):
fork := 1 to n do
foru := l ton do
for v= l ton do
D[u, v] := min(D[u, v], D{u, k] + DỊk, v])
Độ phức tạp tính toán (độ phức tạp thời gian) của thuật toán Floy Wardshall
Trang 21Hình 2 21 - Đề thị mô tá mang lưới giao thông xe buýt
Ta mô hình hóa các tuyến trên thành | đồ thị trong đó các trạm cùng tuyến thi kẻ
nhau:
4 3 7
Hình 2 22 - Mô hình hóa các tuyến xe
Từ đó ta có ma trận kề A
Trang 22ocr — — —= — oO = eccccec= = ccocecoococ = le — =—= CG — —=C cS =
Trong quả trình tim kiếm, ta không cần xét đến tất cả các đỉnh va cung của đô thị ma
chỉ cần tìm trong miễn giá trị của dd thị Miễn giá trị của đồ thị & = 41) khi tìm kiếm
đường đi từ s đến t bao gồm các đỉnh vả các cung có thể nằm trên đường đi ngắn nhất từ s
đến t Nó được biểu diễn đưới dang đồ thị 22 = (2-2) với
V, = (v|vef⁄A đ(s,t) = d(s,v)+d(v,t)} và
E, = {(¥,.¥2)|%.¥ € ; Ad(s,v,)+1 = đ(s,v;)}
1.3.4 Thuật toán tìm kiếm theo chiều sâu
Ta sẽ bắt đầu tìm kiếm tử định s của dé thị Sau đó chọn v là một định kẻ tùy ý với s
va lặp lại quá trình đổi với v Ở bước tong quát, giả sử ta đang xét đỉnh v Nếu như trong
79
we
Trang 23số các định kẻ với v tìm được đỉnh w là chưa được xét thi ta sẽ xét đỉnh nay (nó sẽ trởthành đã xét) va bắt đầu tir nó ta sẽ tiếp tục quá trình tìm kiếm Còn nếu như không cònđỉnh nào kẻ với v là chưa xét thi ta sẽ nói rằng đỉnh này là đã duyệt xong và quay trở lại
tiếp tục tìm kiểm từ đỉnh ma trước đó ta đến được đỉnh v (nếu v = s thì kết thúc tìm kiểm).
Có thể nói nêm na là tìm kiểm theo chiều sâu bắt đầu từ đỉnh v được thực hiện tìm kiếm
theo chiều sâu từ tat cả các định chưa xét kẻ với v Quá trình nay có thể mô tả bởi thủ tục
đệ quy sau đây:
Procedure DFS(v);
(* Tìm kiểm theo chiều sâu bat đầu từ đỉnh v:
Các biến Chuaxet, Ke là biến toàn cục
~ Trong trường hợp biểu diễn đồ thị bằng danh sách kẻ, thuật toán DFS có độ
phức tạp tinh toán là O(n + m) = O(max(n, m)) Day là cách cai đặt tốt nhất
Trang 24~ Khi biểu diễn đỏ thị bằng ma trận kể như ở trên thi độ phức tạp trong trường
hợp nay là O(n + n?) = O(n’).
~ Nếu đỗ thị được biểu điển bằng danh sách cạnh, thao tác duyệt những đỉnh
kẻ với định u sẽ dẫn tới việc phải duyệt qua toản bộ danh sách cạnh day làcài đặt tôi nhất, nó có độ phức tập tính toán 14 O(n.m)
1.3.5 Thuật toán tìm kiếm lộ trình ít tuyến nhất
Tư tưởng chính của thuật toán nay là tìm kiếm theo chiều sâu trên miễn giá trị của
đồ thị Nó được mô tả chỉ tiết như sau
~ Dữ liệu vào: Đô thị G, = (,#,) và các giá trị d(u, v) Vu,v e V (được lưu trữ
sau khi tính toán theo thuật toán Floy Wardshall), đình bắt đầu s va đỉnh kết
(* Tim kiểm theo chiều sâu bat đầu từ đỉnh v;
Các biến d, KetQua, Ke là biến toàn cục