NGHIÊN CỨU CƠ CHẾ · 29/10/2026 · CHƯA HIỆU CHỈNH THỰC ĐỊA

Thêm đường, thêm truy nhập, rồi điều gì xảy ra?

Mô hình hàng đợi hữu hạn cho một phần mạng Hà Nội, kèm bản đồ dân cư và mô phỏng một ngày có thể chỉnh nhu cầu.

Mở bản mô phỏng tương tác

Vẽ phương án và so sánh ghép

Giao diện hiện tại cho tự vẽ đường và thêm/xóa nhánh ở bản đồ phải. Chấm điểm đầu trên đường, các điểm giữa trên nền, rồi chấm vào một đường để nối điểm cuối. Có Hoàn tác và xóa nhánh phụ thuộc khi xóa đường mẹ. Giữ Shift khi chấm để buộc một điểm giữa. Hai bản đồ dùng chung thời gian và vùng nhìn; trên màn hình nhỏ chúng xếp dọc.

Hai lượt chạy giữ chính xác cùng tập hành trình, dùng chung các đối tượng chuyến: cùng OD, giờ xuất phát và loại xe. Không sinh thêm nhu cầu cho phương án tự vẽ. Chỉ mạng, đường đi theo cùng quy tắc định tuyến và xung đột tại giao lộ được tính lại. Bảng so sánh có số hoàn thành, tổng chờ gồm xe chưa xong, spillback, throughput 15 phút, xe chưa hoàn thành và chờ ngoài mạng. Sửa nét vẽ hoặc nhu cầu sẽ đánh dấu kết quả cũ không còn hợp lệ.

Cạnh đường gốc được chia tại điểm nối, có dung tích hữu hạn và quy tắc nhận xe. Các nhánh tạo cạnh hai chiều và xung đột nhập/rẽ; không chỉ thay màu trên bản đồ. Bật nối giao cắt để giả định mọi giao cắt mới cùng mức; tắt thì chỉ nối các đầu tuyến đã chọn. Đây là giả định của phép thử, chưa có kiểm tra cầu vượt, giải phóng mặt bằng hay thiết kế kỹ thuật. Nút mới đủ ba hướng được gán đèn 90 giây, không phải pha đèn đã khảo sát.

Kiểm tra hiện tại: 13 kiểm tra mạng tự vẽ, thao tác vẽ và so sánh trên trình duyệt. Mạng không sửa phải cho kết quả hai bên giống hệt; thiết kế có tuyến mới phải có hành trình thực sự đi qua cạnh mới. Các kết quả 124 lượt bên dưới vẫn là bộ thí nghiệm S0–S4 cố định của phiên bản đầu, không tự đại diện cho tuyến người dùng vẽ.

Kết quả có thể nói đến đâu?

Đã xây dựng và chạy 124 trường hợp mô phỏng. Hình học và đường một chiều lấy từ OSM; mật độ dân cư lấy từ WorldPop. Nhu cầu OD, chu kỳ đèn và vận hành hỗn hợp vẫn là giả định. Vì vậy đây là toy simulation dùng mạng đường thật, chưa phải mô hình đã hiệu chỉnh để dự báo Hà Nội năm 2026.

Trung bình 8 seed, S2 hoàn thành 8 217 chuyến so với 7 973 ở S0. Kết nối mới có thể giúp phân tán dòng xe trong cấu hình này. Khi thêm 20% nhu cầu ở S3, tổng hoàn thành tăng lên 9 332, đồng thời tổng chờ tăng từ 1 353 lên 2 768 xe·giờ. Tập nhu cầu gốc và nhu cầu tăng thêm được ghi riêng để không đánh đồng tăng lưu lượng với giảm ùn tắc.

Khoảng tin cậy bên dưới chỉ mô tả biến thiên giữa các lần sinh nhu cầu. Nó không bao gồm sai số OSM, sai số dân cư, hành vi xe máy hoặc thiếu dữ liệu OD. Không dùng các giá trị này làm dự báo hiệu quả một dự án thực tế.

Dữ liệu và địa bàn

study_map.png

Vùng nghiên cứu [105.800, 21.010, 105.832, 21.032], khoảng 8,15 km², gồm khu vực Láng – Nguyễn Chí Thanh – Giảng Võ – Láng Hạ. Giữ thành phần liên thông mạnh lớn nhất của các lớp đường primary/secondary/tertiary và đường nối tương ứng. Không bao gồm đầy đủ ngõ, đường dân cư, đường dịch vụ, xe buýt, xe tải hay vùng ngoài ranh giới.

Thành phầnNguồn / trạng tháiCách sử dụng
Mạng trục chính439 nút, 743 cạnh có hướng; 74.31 km chiều dài cộng cả hai hướng; 670 cạnh có tag số lànOSM thật; thiếu số làn thì giả định; tốc độ vận hành không phải đo đạc
Giao lộ / đèn97 điểm có tag đèn; ánh xạ suy luận thành 72 nút điều khiểnNút OSM không đồng nghĩa một ngã tư vật lý; chưa kiểm tra pha đèn thực tế
Dân cưWorldPop 2020, 3 arc-second, khoảng 100 m; 1.112 ô trong cửa sổ cắtLớp ước tính; chỉ dùng trọng số điểm đi trong giao diện ngày
Nhu cầu giao thông9.000 chuyến gốc / 60 phút, 20 điểm phát sinh tổng hợp; xe máy 80%Giả định thí nghiệm, không được ước lượng từ đội xe đăng ký
Tư liệu lịch sửJICA BRT 2016, trang PDF 125–133; METROS được trích lạiĐối chiếu cơ chế và cỡ tham số; không phải mục tiêu hiệu chỉnh 2026

JICA, trang PDF 127 / trang in 5-99 ghi rõ xe máy không được đếm trong khảo sát giao lộ giản lược; lượng xe máy được giả định gấp ba ô tô. Bảng 5.5.2 dùng lưu lượng bão hòa cơ sở 2.000 PCU/giờ xanh cho đi thẳng và 1.800 cho rẽ. Đây cũng là các giá trị cơ sở phân tích, không phải số đo xả xe tại mọi nút Hà Nội.

Bảng 5.5.8 ghi “Traffic Volume” tại chín nút, trong đó Kim Mã 9.220, Huyen Thuc 8.910, Láng 7.190. Bảng không in đơn vị ngay trong tiêu đề nên dữ liệu được giữ nguyên, không tự chuyển thành PCU/giờ. File historical_observations.json giữ số, vị trí trang và giới hạn sử dụng. Ma trận OD hiện nay và bảng rẽ theo loại xe chưa thu thập được; dự án Leeds xác nhận một điều tra 26.000 hộ, nhưng không có nghĩa đã truy cập vi dữ liệu đó.

Mô hình vận hành

Mỗi xe là một hành trình có điểm đi, điểm đến, giờ xuất phát và loại xe. Mỗi cạnh có hàng đợi FIFO, thời gian chạy tự do và dung tích chứa hữu hạn. PCU vừa quy đổi công việc phục vụ vừa quy đổi chiếm chỗ; cách đơn giản hóa này không mô tả việc xe máy len giữa các làn.

Ke = max(1,1; 140 × chiều dàikm × số làn)
hxe = 3.600 × PCU × hệ số rẽ / (1.700 × số làn) giây
Xe chỉ sang cạnh kế nếu cạnh đó còn chỗ và pha đèn / vùng xung đột cho phép.
Phát sinh = hoàn thành + còn trong mạng + đang chờ ngoài mạng.

Đèn hai pha vuông góc có chu kỳ 90 giây, tổng thời gian mất 14 giây. Offset theo mã nút là quy tắc tổng hợp có thể tái lập, không phải lịch đèn Hà Nội. Hướng tiếp cận được chia theo trục Đông–Tây / Bắc–Nam. Hệ số phục vụ đi thẳng 1, rẽ phải 1,25, rẽ trái 1,5. Ma trận xung đột hình học cho phép các dòng không xung đột cùng phục vụ, buộc dòng nhập cùng cạnh và dòng cắt nhau chia sẻ thời gian. Nó được tạo lại khi thêm cạnh, không cộng sẵn một khoản phạt để buộc đường mới xấu đi.

Đường đi chọn trước theo chi phí chạy tự do cộng thời gian chờ đèn kỳ vọng; giữ nguyên trong hành trình. Không có tái định tuyến, cân bằng Wardrop hay lựa chọn phương tiện nội sinh. Không gọi một kết quả xấu hơn là bằng chứng nghịch lý Braess. Bộ thí nghiệm cũng chưa gán đầy đủ các cấm rẽ trong relation OSM.

Tham sốMặc địnhĐộ nhạy đã chạy
PCU xe máy / ô tô0,35 / 1Xe máy 0,20 và 0,50
Tỷ lệ xe máy80% số chuyến65% và 90%
Dòng bão hòa1.700 PCU/làn/giờ xanh1.400 và 2.000
Dung tích chứa140 PCU/làn/km; sàn 1,1 PCU/cạnh100 và 180
Mất thời gian trong chu kỳ 90 s14 s8 và 20 s
Nhu cầu phát sinh20%0%, 40%
Nhánh truy nhập42
Bước thời gian2 s1 s; 4 s dùng để tìm giới hạn số học

Năm kịch bản, tách từng tác động

MãThay đổi mạngNhu cầu
S0Mạng OSM rút gọn9.000 chuyến gốc
S1Đường mới dài 2.206 km, 2 làn mỗi hướng; hai đầu nối có xung đột và đènGiữ nguyên OD, loại xe và giờ xuất phát
S2S1 + 4 nhánh hai chiều, 1 làn/hướng, tổng chiều dài vật lý 648 mVẫn chính xác tập nhu cầu gốc; nhánh có thể giúp đổi đường hoặc tạo thêm xung đột
S3Cùng mạng S2Thêm 1.800 chuyến từ bốn vùng truy nhập; nhu cầu gốc không đổi
S4Cùng mạng S3; ngừng nhận thêm ở vùng truy nhập khi cạnh nhận đạt 65% dung tíchCùng 10.800 chuyến; mọi xe bị giữ vẫn được tính thời gian chờ

Tuyến mới là đường thẳng giả định giữa hai nút OSM được chọn theo tọa độ, không phải một phương án quy hoạch đã kiểm tra khả thi. Những giao cắt hình học khác được giả định tách mức hoặc không nối; chỉ hai đầu và các nhánh nêu trên có kết nối. Các cạnh nhánh, dung tích, nhập làn, rẽ, xung đột và hành trình mới đều có đối tượng riêng trong mô hình.

“Nhu cầu phát sinh 20%” là kịch bản ngoại sinh, không phải độ co giãn đã ước lượng. Nó có thể đại diện cho chuyển giờ, chuyển tuyến vào vùng hoặc tăng chuyến; mô hình chưa phân biệt các quá trình này. Nghiên cứu Duranton–Turner về Mỹ chỉ giải thích cơ chế, không được dùng để áp một hệ số cho Hà Nội.

So sánh định lượng

Chưa có bằng chứng rõ rằng chỉ thêm đường / nhánh làm tăng số chuyến hoàn thành: chênh lệch S2−S0 có khoảng 95% [-332; 820] chuyến, chứa 0. Mức trung bình cao hơn không đủ để kết luận một hiệu quả ổn định.

Mỗi lượt phát sinh chuyến trong 60 phút từ trạng thái rỗng, rồi chạy thêm 30 phút. Cả năm kịch bản dùng cùng seed 40–47 và cùng tập chuyến gốc. Phân bố thời gian trong bộ thí nghiệm này là tam giác với đỉnh ở phút 30, không phải phân bố ngày trong giao diện. Số sau ± là nửa khoảng tin cậy 95% t với 7 bậc tự do.

comparison.png
Kịch bảnPhát sinhHoàn thànhHoàn thành tập gốcHoàn thành (%)Chờ (xe·giờ)Spillback (đoạn·phút)Thoát mạng (xe/giờ)Chờ ngoài cuối kỳCòn trong mạng
S090007 973 ± 5487 973 ± 54888.6 ± 6.11 727 ± 2871 707 ± 1975 315 ± 365121 ± 43906 ± 513
S190008 120 ± 4458 120 ± 44590.2 ± 4.91 651 ± 2441 638 ± 1715 414 ± 297108 ± 43771 ± 410
S290008 217 ± 388 217 ± 3891.3 ± 0.41 353 ± 171 338 ± 165 478 ± 25125 ± 25658 ± 38
S3108009 332 ± 727 776 ± 5686.4 ± 0.72 768 ± 812 300 ± 686 221 ± 48238 ± 321 231 ± 81
S4108009 278 ± 327 834 ± 3285.9 ± 0.32 911 ± 982 363 ± 946 185 ± 21488 ± 361 034 ± 37

Định nghĩa: throughput là số chuyến rời mạng chia 1,5 giờ, không phải tổng lượt đi qua mọi cạnh. Chờ là thời gian tại nguồn cộng thời gian vượt quá chạy tự do trên từng cạnh, gồm cả xe chưa xong. Spillback được tính bằng cách cộng độ dài bước thời gian cho mỗi cạnh có ít nhất một lần đầu hàng đủ điều kiện đi bị từ chối vì cạnh sau thiếu chỗ, rồi đổi thành đoạn·phút; nó là thước đo trong mô hình, không phải độ dài hàng đợi đo ngoài đường. “Cạnh chứa ≥95%” cũng được lưu riêng, không đồng nhất với spillback.

Thời gian trễ trung bình / p95 của chuyến đã hoàn thành có trong dữ liệu thô, nhưng không dùng làm chỉ số chính vì loại bỏ các xe chờ lâu chưa xong gây thiên lệch. Xe máy và ô tô có bảng bảo toàn, tỷ lệ hoàn thành và tổng chờ riêng trong results.json. Không suy ra người/giờ khi chưa biết hệ số người trên xe và phương tiện công cộng.

Chênh lệch ghép theo cùng seed và khoảng tin cậy
So sánhChỉ sốChênh lệch trung bìnhKhoảng 95%
S1 - S0completed147.5[-212.5; 507.5]
S1 - S0base_completed147.5[-212.5; 507.5]
S1 - S0total_wait_veh_h-75.4[-200.5; 49.7]
S1 - S0spillback_link_min-69.3[-179.1; 40.4]
S2 - S1completed96.6[-373.3; 566.5]
S2 - S1base_completed96.6[-373.3; 566.5]
S2 - S1total_wait_veh_h-298.5[-542.9; -54.2]
S2 - S1spillback_link_min-299.7[-475.4; -124.0]
S2 - S0completed244.1[-332.0; 820.2]
S2 - S0base_completed244.1[-332.0; 820.2]
S2 - S0total_wait_veh_h-374.0[-665.8; -82.1]
S2 - S0spillback_link_min-369.0[-573.1; -164.9]
S3 - S2completed1 114.5[1 020.1; 1 208.9]
S3 - S2base_completed-440.9[-518.4; -363.4]
S3 - S2total_wait_veh_h1 415.6[1 332.5; 1 498.7]
S3 - S2spillback_link_min961.9[894.2; 1 029.5]
S4 - S3completed-53.5[-116.4; 9.4]
S4 - S3base_completed57.5[13.5; 101.5]
S4 - S3total_wait_veh_h142.3[70.0; 214.5]
S4 - S3spillback_link_min63.1[7.5; 118.8]

S4 không được thiết kế bằng tối ưu và không được bảo đảm tốt hơn S3. Trong phép thử này, việc giữ xe có thể tăng chờ ở ngoài; báo cáo giữ nguyên chi phí đó. Giảm số xe đang trong mạng không tự động đồng nghĩa tăng phúc lợi hay giảm tổng chờ.

demand_sweep.png
Độ nhạy theo loại xe, PCU, dòng bão hòa, dung tích và đèn
Tham sốGiá trịKịch bảnHoàn thành (TB 2 seed)Chờ (xe·giờ)
moto_share0.65S06 2512 847
moto_share0.65S38 6663 575
moto_share0.9S08 6121 133
moto_share0.9S39 6802 346
moto_pcu0.2S08 706923
moto_pcu0.2S310 1851 711
moto_pcu0.5S06 0753 013
moto_pcu0.5S38 0713 909
saturation1400S06 5682 575
saturation1400S39 1583 044
saturation2000S08 3801 321
saturation2000S39 4602 577
storage_pcu_per_lane_km100S05 7943 239
storage_pcu_per_lane_km100S36 4124 849
storage_pcu_per_lane_km180S08 6761 180
storage_pcu_per_lane_km180S39 7302 254
lost8S08 6741 039
lost8S310 0561 944
lost20S06 4342 673
lost20S38 5463 491

Kiểm định đã làm và phần chưa đạt

Kiểm traKết quả
Zero demandĐạt
Analytical isolated saturated linkĐạt
No loss/overflow under overloadĐạt
Finite downstream storage causes spillbackĐạt
External queue waiting is countedĐạt
Different mode service and spaceĐạt
Crossing movements intersectĐạt
Opposing right-hand straight paths are disjointĐạt
Common base demand across scenariosĐạt
Exact reproducibilityĐạt
Two classes reconcile totalsĐạt

Ba fixture S0/S2/S3 dùng đúng cùng các chuyến được đưa sang bản JavaScript của giao diện. Số hoàn thành, xe chưa xong, tổng chờ và spillback khớp Python đến sai số số thực dưới 10⁻⁶. Đây là kiểm tra hai bản triển khai, không chứng minh các giả định hành vi đúng ngoài thực địa.

Với các seed đã kiểm tra, đổi 2 giây xuống 1 giây làm số hoàn thành thay đổi tối đa 1.40%. Tăng lên 4 giây có trường hợp lệch 24.96%; do đó không dùng 4 giây để suy luận. Mạng gần tê liệt nhạy với thứ tự phục vụ trong bước thời gian. Chưa chứng minh hội tụ đầy đủ theo mọi tham số; kết quả nhỏ giữa hai kịch bản có thể không bền.

Chi tiết kiểm tra bước thời gian
Kịch bảnSeedBước (giây)Hoàn thànhMốc 2 giâyChênh lệch
S040183028311-0.11%
S0411679567011.40%
S042183508363-0.16%
S042462768363-24.96%
S043183528353-0.01%
S2401819581950.00%
S2411831282940.22%
S2421825082450.06%
S242482028245-0.52%
S243181878190-0.04%
S340193409383-0.46%
S3411942392971.36%
S3421937592591.25%
S342491109259-1.61%
S3431940893111.04%

Để kiểm tra việc cắt ngang thời gian quan sát, đã kéo thời gian xả tới 180 phút tổng cộng với seed 42:

Kịch bảnHoàn thành sau 90 phútSau 180 phútChưa xong sau 180 phút
S08363890298
S282458833167
S3925910508292

Không xóa xe chưa xong, không teleport, không cho dung tích vô hạn. Nếu còn ùn tắc sau thời gian xả, nó được giữ thành kết quả và các chuyến đó vẫn tích lũy chờ.

Bản mô phỏng một ngày và mật độ dân cư

Giao diện cho đặt tổng chuyến xe/ngày, 24 trọng số thời gian, tỷ lệ xe máy và seed; có mẫu hai cao điểm, đều và cao điểm sáng. Trọng số được chuẩn hóa về 100%, mỗi chuyến được đặt ngẫu nhiên trong giờ tương ứng. Đếm đúng tổng chuyến nhập, không tự làm tròn từng giờ gây sai tổng. Bản tự vẽ giữ cùng nhu cầu ở hai phía; sau 24 giờ chạy thêm 1 giờ xả. Các kịch bản S3/S4 trong dữ liệu thử nghiệm cũ có tăng nhu cầu riêng.

Lớp WorldPop có giá trị người/ô được đổi sang người/km² bằng diện tích cầu của ô. Đây là ước tính dân cư cư trú năm 2020 của bản phát hành cũ năm 2018, không phải dân số đo đạc năm 2026 hay mật độ ban ngày. Có thể dùng trọng số điểm đi wo = Σ Pô exp[−d²/(2 × 300²)], với d tính bằng mét tới điểm đi. Điểm đến chọn đều trong các điểm tổng hợp cách ít nhất 1 km; chưa có dữ liệu việc làm / trường học để suy ra nơi đến. Không có nhân khẩu, di cư hay tăng dân số nội sinh như một game xây thành phố đầy đủ.

Những chấm chuyển động là vị trí minh họa suy ra từ tiến độ chạy tự do và thứ tự hàng đợi của các xe được lấy mẫu. Đường đổi màu theo chiếm dụng; xe nhỏ có thể cùng nằm trên một đoạn vì quy đổi không gian theo PCU. Các chấm này không phải quỹ đạo vi mô đã đo hay mô phỏng chuyển làn chi tiết. Trạng thái ghi mỗi phút, có thể phát/dừng và tua. Bảng thử nghiệm 90 phút bên trên và lượt chạy ngày là hai thiết kế nhu cầu khác nhau; không so trực tiếp các trị số của chúng.

Muốn chuyển thành mô hình hiệu chỉnh thực địa

  1. Kiểm tra lại hình học, số làn khả dụng, điểm mở dải phân cách, cấm rẽ, điểm nhập từ ngõ / bãi xe và từng bộ đèn. Gom điểm đèn OSM thành giao lộ vật lý bằng khảo sát.
  2. Đếm từng hướng rẽ theo loại xe trong khoảng 15 phút tại các cửa vào và nút chính; lấy ít nhất hai ngày làm việc và một ngày khác để kiểm định. Ghi chu kỳ, pha, thời gian mất, xả xe, hàng đợi và vị trí hàng đợi tràn.
  3. Lấy OD theo thời gian từ điều tra chuyến đi hoặc dữ liệu tổng hợp phù hợp. Dân cư chỉ hỗ trợ điểm đi; cần vị trí việc làm, trường học, thương mại và lưu lượng xuyên vùng.
  4. Hiệu chỉnh tốc độ, phân bố headway, tỷ lệ rẽ, dung tích và hành vi xe máy trên ngày huấn luyện. Dùng mô hình có chuyển động ngang như SUMO sublane nếu mục tiêu cần phản ánh len làn; không dùng một PCU cố định để thay thế bước này.
  5. Để riêng ngày và nút chưa dùng để kiểm định. Báo sai số lưu lượng theo hướng / loại xe, thời gian hành trình, p95 hàng đợi và tần suất spillback. Có thể đặt trước ngưỡng nghiên cứu như MAPE thời gian <15% và sai số p95 hàng đợi <20%; đây là mục tiêu đề xuất, không phải tiêu chuẩn chính thức hoặc kết quả đã đạt.
  6. Chạy đủ khởi động, cùng nhu cầu phản thực tế, biên rộng hơn và nhiều vị trí tuyến mới; giữ cả các kết quả đổi dấu. Chỉ khi mô hình tái hiện được dữ liệu ngoài mẫu mới diễn giải tác động tại Hà Nội.

Tái lập và tệp dữ liệu

Mở simulator.html trực tiếp, không cần cài đặt. Động cơ mô phỏng Python và Node chỉ cần thư viện chuẩn. Hướng dẫn lệnh nằm trong README.txt; cấu hình ngày ở daily_config.json. Phần xây lại mạng, đọc GeoTIFF và vẽ báo cáo dùng các phụ thuộc riêng, được ghi trong thư mục reproduction.

Dữ liệu máy đọc: mạng GeoJSON, dân cư GeoTIFF, ô dân cư JSON, 124 lượt chạy, trung bình và so sánh ghép, kiểm tra mô hình, đối chiếu hai động cơ, kiểm tra giao diện, nguồn, mã băm tệp.

Nguồn và phạm vi đóng góp

Các số đo lịch sử, ước tính dân cư, hình học cộng đồng và tham số giả định được giữ tách biệt. Không có bước “hiệu chỉnh” nào được tuyên bố chỉ vì mô phỏng chạy được hoặc khớp một con số tổng hợp.