1. Trang chủ
  2. » Tất cả

Ứng dụng thuật toán tìm đường đi nhanh nhất tìm luồng cực đại đa phương tiện tuyến tính đồng thời chi phí cực tiểu trên mạng giao thông mở rộng

7 2 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 730,64 KB

Nội dung

TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG SỐ 10(71) 2013 85 ỨNG DỤNG THUẬT TOÁN TÌM ĐƯỜNG ĐI NHANH NHẤT TÌM LUỒNG CỰC ĐẠI ĐA PHƯƠNG TIỆN TUYẾN TÍNH ĐỒNG THỜI CHI PHÍ CỰC TIỂU TRÊN MẠNG GIAO THÔNG[.]

TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 10(71).2013 ỨNG DỤNG THUẬT TỐN TÌM ĐƯỜNG ĐI NHANH NHẤT TÌM LUỒNG CỰC ĐẠI ĐA PHƯƠNG TIỆN TUYẾN TÍNH ĐỒNG THỜI CHI PHÍ CỰC TIỂU TRÊN MẠNG GIAO THÔNG MỞ RỘNG APPLICATION OF THE FASTEST PATH ALGORITHM TO FINDING MAXIMUM CONCURENT MULTICOMMODITY LINEAR FLOW WITH MINIMAL COST ON EXTENDED TRAFFIC NETWORK Trần Quốc Chiến Trường Đại học Sư phạm, Đại học Đà Nẵng Email: tqchien@dce.udn.vn TÓM TẮT Đồ thị mạng mở rộng cơng cụ tốn học hữu ích ứng dụng nhiều lĩnh vực giao thông, truyền thông, công nghệ thông tin, kinh tế, … [7] Kết báo nghiên cứu thuật tốn tìm luồng cực đại đa phương tiện tuyến tính đồng thời chi phí cực tiểu mạng giao thơng mở rộng, sử dụng thuật tốn tìm đường nhanh mạng giao thông mở rộng [6] Trên sơ sở toán đối ngẫu [7], tác giả xây dựng thuật toán đưa tỉ lệ hàm mục tiêu hai toán đối ngẫu tiến đến 1, từ suy luồng cực đại đồng thời chi phí cực tiểu Đây thuật tốn tính gần với tỉ lệ xấp xỉ (1+) với  dương nhỏ tùy ý Bài báo phân tích, chứng minh kết đánh giá độ phức tạp thuật tốn Chương trình thuật tốn viết ngơn ngữ Java với sở liệu mạng mở rộng cài đặt hệ quản trị sở liệu MySQL cho kết xác Từ khóa: đồ thị; mạng; luồng đa phương tiện; tối ưu; xấp xỉ ABSTRACT Extended graph and network is a powerful mathematical tool applied in many fields such as transportation, communication, informatics, economy, … [7] The main result of this paper is to design a Maximum Concurent Multicommodity Flow with Minimal Cost algorithm on extended traffic networks using the algorithm to find shortest paths on extended networks [6] On the basis of the dual linear programming problem studied in [7], the author designs the algorithm to reduce the ratio of objective values of the dual and the primal problems down to Then, it follows the concurent maximal flow with minimal cost of the origin problem This algorithm is an approximate algorithm with a (1+)-approximation ratio, where  is an arbitrary positive The paper analyses, proves obtained results, as well as evaluates the running time The algorithm is coded in the programming language Java with extended network database in the database management system MySQL and gives exact result Key words: Graph; Network; Multicommodity Flow; Optimization; Approximation Đặt vấn đề Bài tốn tìm luồng cực đại đa phương tiện tuyến tính đồng thời chi phí cực tiểu mạng giao thơng mở rộng dạng tốn quy hoạch tuyến tính xây dựng cơng trình [7] Tuy nhiên, sử dụng phương pháp truyền thống quy hoạch tuyến tính gặp nhiều khó khăn tốn có nhiều loại phương tiện, nhiều ràng buộc chi phí, khả thơng hành, … Lý thuyết đồ thị mơ hình hóa tốn thành tốn tìm luồng mạng Ứng dụng làm cho việc giải toán trở nên đơn giản hiệu Vấn đề đặt cần xây dựng thuật toán tổng quát tìm luồng cực đại đa phương tiện đồng thời chi phí cực tiểu mạng giao thơng mở rộng, để áp dụng tốn cho toán thực tế phức tạp Bài viết sử dụng khái niệm, ký hiệu, mơ hình kết cơng trình [7] Thuật tốn Ký hiệu fej(a) luồng phương tiện j qua cạnh a, j = 1, ,k, aE, fvj(u,a,a‘) luồng phương tiện j cạnh a vào nút u cạnh a‘, j = 1, , k, uV, a,a‘Eu Thuật tốn tìm luồng F ={fej(a), fvj(u,e,e‘)| aE, (e,u,e‘)Bảng bV, j=1, ,k} 85 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 10(71).2013  Luồng F vi phạm ràng buộc khả thông qua ràng buộc chi phí Tuy nhiên, theo mục 3, từ luồng F ta nhận luồng tối ưu sau chia cho số  lv Khởi tạo: fej(a)=0 aE, fvj(u,e,e‘)=0 (e,u,e‘)Bảng bV, j=1, ,k  le Chọn  >  > (giá trị   xác định phần phân tích sau) Thuật toán thực số giai đoạn, giai đoạn gồm k vòng lặp (k số phương tiện) Ở vòng lặp thứ j, j = 1, , k, giai đoạn thứ i ta chuyển d(j) đơn vị phương tiện thứ j qua luồng Việc thực số bước Xét bước thứ s Ký hiệu length s 1 i, j hàm độ dài đầu bước thứ s (định nghĩa theo biểu p thức (2)) s i, j đường ngắn từ sj đến p tj theo hàm Nghĩa s 1 i, j length = b(  p  Đặt s i, j pis, j ) f i ,sj , f s i, j s i, j có độ dài = min{c, d s 1 i , j }, B c khả thông pis, j , qua nhỏ cạnh nút d is, j s i, j lượng phương tiện thứ j lại cần D leis, j , lvis, j , is, j s i , j (v).cV f = f s i, j s i, j B/ B s i, j B = B Chuyển đơn vị phương tiện thứ j dọc theo p s i, j f s i, j Luồng phương tiện j thay đổi sau: fej(a) = fej(a) + fvj(u,e,e‘) = fvj(u,e,e‘) + f i ,sj f i ,sj a pis, j (e,u,e‘) & pis, j  f i ,sj ,  i,s j =  is, j1 (1+ Bis, j /B), leis, j (e) = leis,j1 (e) (1+ f i ,s j /cE(e)),e  pis, j , lvis, j (v) = lvis,j1 (v) (1+ f i ,sj /cV(v)),v  pis, j , 86 (v) +B  i, j s s 1 s i , j (e) f i , j + e pis, j + = le s 1 i , j (e).c E (e) + eE lv s 1 i , j (v).cV (v) + vV  lv s 1 i, j (v) f i ,sj vpis, j +B  i , j + i , j b( s 1  s 1  D leis,j1, lvis,j1, is, j +  lv s 1 i , j (v) + pis, j ) f i ,sj f i ,sj  le = s 1 i , j ( e) e pis, j + f i ,sj f i ,sj b( pis, j )  is, j v pis, j   = D lei , j , lvi , j , i , j + s 1 s 1 s 1  dist j leis,j1, lvis,j1,is, j  f i ,sj (1) Vòng lặp thứ j giai đoạn i kết thúc sau q(i,j) bước, mà d iq, (ji , j ) = Tổng luồng gửi qua mạng vịng lặp khơng vượt q d(j) chi phí bước khơng vượt q B Giai đoạn i kết thúc, vòng lặp thứ k giai đoạn i kết thúc Hàm đối ngẫu le lv tính sau: - Hàm đối ngẫu ban đầu: le10,0 = /cE(e),e E, lv10, = /cV(v), v  V - Hàm đối ngẫu đầu vòng lặp giai đoạn i hàm đối ngẫu cuối giai đoạn trước (i1) : lei0, = leiq(1i,k1, k ) , lv i0, = lviq(1i,k1, k ) - Hàm đối ngẫu đầu vòng lặp j giai đoạn i có giá trị hàm đối ngẫu cuối vịng lặp trước (j1) giai đoạn i: Sau ta hiệu chỉnh lại đại lượng khác sau: d is, j = d is, j s i , j (e).c E (e) vV s s i, j  le = eE chuyển qua (trong số d(j) đơn vị cần chuyển qua vòng lặp này) Nếu Bi , j > B, ta gán lại  lei0, j = leiq, (ji,1j 1) , lv i0, j = lviq, (ji,1j 1) Tương tự, 10, = /B, i0,0 Suy = iq(1i,k1, k ) ,  i0, j = iq, (ji,1j 1) TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 10(71).2013  D le10,0 , lv10,0 , 10,0  = le 1,0 (e).c E (e) + D(i)  D(i1) + .(i)  Tiếp theo, ta có eE  lv10,0 (v).cV (v) + B  1, vV c = eE  E ( e) c c E ( e) + vV  V (v ) D(i) D (i )  (i)    (i)   cV (v) + B./B Thế vào (2) ta nhận với m số cạnh, n số nút mạng D(i  2) Ký hiệu lei, lvi, i, D(i), (i) hàm giá trị đại lượng cuối giai đoạn i Thuật toán dừng sau giai đoạn t, mà D(t)  Phân tích thuật tốn Để đơn giản, ký hiệu lei,j thay cho leiq, (ji , j ) lviq, (ji , j ) , i,j thay cho  iq, (ji , j ) Do biến le, lv  tăng sau bước vòng lặp nên bước thứ s (s > 0) vịng lặp ta có (sử dụng (1))  D leis, j , lvis, j , is, j   = Dle s 1 i, j , lvis,j1 , is, j1 + 1   /    + f s i, j  D lei, j , lvi , j , i, j   0  D lei, j , lvi , j , i, j  + .d(j).distj(lei,j, lvi,j, i,j) =   +.d(j).dist (le D lei, j 1 , lvi, j 1 ,i, j 1 +.d(j).distj(lei,j,lvi,j,i,j)   D lei, j 1 , lvi, j 1 ,i, j 1 j  i,k,lvi,k, i,k) Xét tổng truy hồi k vòng lặp giai đoạn thứ i, ta có  D lei, k , lvi, k , i, k  k  d ( j).dist (le j j 1 i,k    D lei,0 , lvi,0 , i,0 +  , lvi , k ,i , k )  k  d ( j).dist (le j i ,k , lvi ,k ,  i ,k ) 1   /  i  (i 1) i 1  (i 1) m  n  1. e    m  n  1. e    1   /   1    Kết hợp điều kiện dừng thuật tốn D(t)  1, ta có  (t 1) m  n  1. e    D(t)  1    Suy   t 1  1   ln 1  m  n  1 (3)  Nhận xét: Trong (t1) giai đoạn thực thuật toán trên, j = 1, , k, ta chuyển (t1).d(j) đơn vị phương tiện qua luồng Tuy nhiên, luồng chuyển vượt q khả thơng qua cạnh nút Bổ đề sau giải vấn đề  Bổ đề  > t 1 log1 (1 /  ) Chứng minh Ban đầu, le0 = /cE(e), e  E, lv = /cV(v), v  V Sau (t1) giai đoạn thực hiện, ta có D(t1) < 1, tức  D lei 1, k , lvi 1, k , i 1, k + = D(0) m  n  1. = m  n  1. 1    D(i) 1   /        1   /  i distj(lei,j,lvi,j, i,j) Mặt khác, tổng luồng q(i,j) bước thực vòng lặp j d(j), truy hồi suy   Thế D(0) = (m+n+1). giả thiết   1, với i  ta có f i ,sj dist j leis,j1, lvis,j1,is, j1   D leis,j1 , lvis,j1 , is, j1 D(i  1)  1  /  D(i)  D(i1)+  D(i)/  D(i)  = m. + n. +  = (m+n+1) , lvi,j thay cho (2) le t 1 (e).c E (e) +  eE lv t 1 (v).cV (v) + B.t-1 < vV Suy let1(e) < 1/cE(e) e  E lvt-1(v) < 1/cV(v) vV j 1 87 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 10(71).2013 Gọi fe(e) tổng phương tiện qua cạnh eE fv(v) tổng phương tiện qua nút vV (t1) giai đoạn thực Xét cạnh eE Giả sử trình xây dựng luồng fe(e) có cE(e) đơn vị luồng chuyển qua e qua r bước, bước chuyển gs phương tiện, g s = cE(e) Qua bước le(e) s tăng lên thừa số (1+.gs/cE(e)) Vậy qua r bước le(e) tăng lên thừa số 1   g s / c E (e)  > (1+ s g s Ở ta phân tích thấy sau (t1) giai đoạn thực hiện, j = 1, , k, ta chuyển (t1).d(j) đơn vị phương tiện qua luồng Tuy nhiên để luồng chấp nhận, ta phải chia luồng chuyển qua mạng cho lượng log1  s Ta thấy, với cạnh eE, cE(e) đơn vị luồng chuyển qua e, le(e) tăng lên thừa số (1+) Tương tự, với nút vV, cV(v) đơn vị luồng chuyển qua v, lv(v) tăng lên thừa số (1+  ) Mặt khác, số lần để gửi cE(e) đơn vị luồng qua cạnh eE fe(e)/cE(e) số lần để gửi cV(v) đơn vị luồng qua nút vV fv(v)/cV(v) 1(v)  lv0(v) 1    fe ( e ) / c E ( e ) fv ( v ) / cV ( v ) t 1 log1 (1 /  )  Bổ đề Cho  > Khi tồn   cho luồng tìm thuật toán, sau chia cho log1 (1 /  ) , luồng cực đại đồng thời chi phí cực tiểu với tỉ lệ xấp xỉ (1+)  log1   t 1  Theo bổ đề ta có  > / Thay từ (3) vào t 1 Chứng minh: Đặt  = biểu thức  ta < e  E lvt- cE(e) log1  let 1 (e) < le0 (e) Chọn  = 1 / c E ( e) = cE(e) log1  e  E   / c E (e ) fv(v)  cV(v) log1  lvt 1 (v) < lv0 (v) 1 / cV (v) = cV(v) log1  v V   / cV (v) Chia fe(e) cho lượng log1 (1 /  ) e  E, chia fv(v) cho lượng log1 (1 /  ) v V ta nhận luồng chấp nhận 88 (1   ) ln ln ln =  1  m  n  1.  m  n 1     1     , tỉ số  1  ln m  n  1. <  1  m  n  1. (1   ) ln(1   ) ln cV(v) log1   log1  v  V Suy fe(e)  cE(e) log1  Vậy, j = 1, , k, ta chuyển không lớn cE(e) luồng qua nút vV không lớn cV(v) Vậy,theo toán đặt ban Lúc này, hàm cạnh le hàm nút lv thỏa bất đẳng thức sau: let-1(e)  le0(e) 1     t 1 d(j), luồng qua cạnh eE log1 (1 /  ) đầu, ta có > / cE(e)) = (1+) = (1)1, suy  (1   ) ln(1   )   (1   ) (   / 2)  (1)3 Mặt khác theo định lý đối ngẫu yếu, ta có   Để /

Ngày đăng: 27/02/2023, 07:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w