ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BẢO VỆ LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH KHOA HỌC.
Download
Report
Transcript ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BẢO VỆ LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH KHOA HỌC.
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BẢO VỆ LUẬN VĂN THẠC SĨ
CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH
BÀI TOÁN MẠNG GIAO THÔNG
BA HÀNG HÓA TUYẾN TÍNH
HVTH : TRẦN THỊ MỸ DUNG
Lớp : KHMT-K10 (Khóa 2008-2011)
CBHD : PGS.TSKH. TRẦN QuỐC CHIẾN
Đà Nẵng, Ngày 09 tháng 04/2011
NỘI DUNG TRÌNH BÀY
Lý do chọn và mục tiêu của đề tài
Nghiên cứu tổng quan
Phát biểu các bài toán
Giải pháp của các bài toán
Cơ sở lý thuyết liên quan
Xây dựng thuật toán
MMF (Maximum Multicommodity Flow)
MCF (Maximum Concurrent Flow)
MCMCF (Min Cost Maximum Concurrent Flow)
Cài đặt và đánh giá kết quả
Kết luận và hướng phát triển
2/30
Lý do lựa chọn và mục tiêu của đề tài
Lý thuyết đồ thị đem lại những ứng dụng thú vị và hiện đại
Mô hình hóa các bài toán rời rạc thành cấu trúc đồ thị
Mô hình hóa bài toán qui hoạch tuyến tính thành tìm luồng
trên mạng của một đồ thị.
Bài toán tối ưu trên mạng có nhiều ứng dụng thực tế, nhưng
gặp nhiều khó khăn trường hợp:
Mạng có nhiều hàng hóa
Có nhiều điểm phát, điểm thu ứng với mỗi hàng hóa
Có những ràng buộc về chi phí, về yêu cầu vận chuyển.
Đề tài “Bài toán mạng giao thông ba hàng hóa tuyến
tính” xây dựng các thuật toán và cài đặt chương trình cho các
mạng ba hàng hóa chi phí tuyến tính.
3/25
Phát biểu các bài toán
Bài toán luồng đa hàng hóa cực đại
Cho G=(V, E): đồ thị có hướng
Với khả năng thông qua của các cạnh là c: E
V có k đỉnh nguồn s1, s2, …, sk (k=1,2,…) tương ứng với k
đỉnh đích t1, t2, ..., tk và các đỉnh trung gian khác.
Luồng xuất phát từ đỉnh nguồn si định trước, thì sẽ kết thúc
tại đỉnh đích ti tương ứng, với i=1..k.
Mỗi cặp đỉnh si-ti được gắn một hàng hóa Mi
một luồng đa hàng hóa trong mạng G đã cho sao cho
tổng các luồng của tất cả k hàng hóa đạt cực đại.
Tìm
4/25
Phát biểu các bài toán (tt)
Bài toán luồng đa hàng hóa cực đại đồng thời
Cho mạng đa hàng hóa như mạng ở bài toán luồng đa hàng
hóa cực đại trên đây.
Mỗi hàng hóa j có một yêu cầu vận chuyển d(j)
Tìm ra một số lớn nhất sao cho có một luồng đa hàng
hóa chuyển d(j) đơn vị hàng hóa j qua luồng, j=1,...,k.
5/25
Phát biểu các bài toán (tt)
Bài toán luồng đa hàng hóa cực đại đồng thời với sự
ràng buộc về chi phí
Cho mạng như bài toán luồng đa hàng hóa cực đại đồng thời
ở trên
Gắn một hàm chi phí b, với b(e): chi phí phải trả để chuyển
một đơn vị hàng hóa qua cạnh e.
Một giới hạn B.
Tìm ra một số lớn nhất sao cho có một luồng đa hàng
hóa chuyển d(j) đơn vị hàng hóa j qua luồng,j=1,...,k.
Đồng thời tổng chi phí của luồng không vượt quá B.
6/25
Giải pháp của các bài toán
Phân tích yêu cầu từng bài toán
Xây dựng hai mô hình qui hoạch tuyến tính đối ngẫu P và Q
Nếu tỉ lệ P/Q 1. P và Q đạt phương án tối ưu.
Xây dựng thuật toán đưa tỉ lệ P/Q 1, với tỉ lệ xấp xỉ có thể
nhỏ đến 1%
Thực hiện thông qua vận chuyển các hàng hóa qua mạng
Kết hợp thuật toán tìm đường đi ngắn nhất giữa các cặp
nguồn-đích trong đồ thị.
Quá trình biến đổi trong thuật toán phải dẫn đến hai kết quả:
P/Q 1 và thu được các giá trị luồng.
7/25
NỘI DUNG TRÌNH BÀY
Lý do chọn và mục tiêu của đề tài
Nghiên cứu tổng quan
Phát biểu các bài toán
Giải pháp của các bài toán
Cơ sở lý thuyết liên quan
Xây dựng thuật toán
MMF (Maximum Multicommodity Flow)
MCF (Maximum Concurrent Flow)
MCMCF (Min Cost Maximum Concurrent Flow)
Cài đặt và đánh giá kết quả
Kết luận và hướng phát triển
8/25
QUI HOẠCH TUYẾN TÍNH
Qui hoạch tuyến tính tổng quát
Trong đó:
(I) Hàm mục tiêu
(II) Các ràng buộc của bài toán
(III)Các các hạn chế về dấu
của các biến số
9/25
QUI HOẠCH TUYẾN TÍNH (tt)
Quy hoạch tuyến tính đối ngẫu
Mỗi qui hoạch tuyến tính đều có một mô hình đối ngẫu với nó.
10/25
QUI HOẠCH TUYẾN TÍNH (tt)
Quy hoạch tuyến tính đối ngẫu(tt)
11/25
QUI HOẠCH TUYẾN TÍNH (tt)
Các tính chất của cặp bài toán đối ngẫu
Cho QHTT P có hàm mục tiêu z(x)->max, D là đối ngẫu của
P, có hàm mục tiêu w(y)->min
Định lý 1(Đối ngẫu yếu). Nếu x là một phương án bất kỳ
của BT (P) và y là một phương án bất kỳ của BT (Q) thì
z(x)≥w(y).
Định lý 2. Nếu x*, y* lần lượt là các phương án của (P) và
(Q), đồng thời z(x*)=w(y*) thì x* và y* lần lượt là các phương
án tối ưu của (P) và (Q).
12/25
LÝ THUYẾT ĐỒ THỊ
Các định nghĩa
Định nghĩa 1. Đồ thị vô hướng G = (V,E) bao gồm V là tập
các đỉnh, và E là tập các cặp không có thứ tự gồm hai phần
tử khác nhau của V gọi là các cạnh.
Định nghĩa 2.1.2. Đồ thị có hướng G = (V, E) bao gồm V là
tập các đỉnh và E là tập các cặp có thứ tự gồm hai phần tử
khác nhau của V gọi là các cung.
13/25
LÝ THUYẾT ĐỒ THỊ
Thuật toán Dijkstra tìm đường đi ngắn nhất
Lặp lại việc gán nhãn. Nhãn L(v) là độ dài từ v đến nguồn s
Ban đầu đỉnh v, gán L(v):=a(v,s); L(s):=0;
Tại mỗi bước tìm đỉnh u có nhãn nhỏ nhất chưa đánh dấu chọn,
nếu u, đánh dấu chọn u.
v kề u, nếu L(v)>L(u)+a(u,v) thì thay L(v):=L(u)+a(u,v)
Thuật toán dừng lại đến khi không tìm ra nhãn nhỏ nhất, hoặc
đỉnh đích t có nhãn.
Định lý . Thuật toán Dijkstra có độ phức tạp O(n2 ).
14/25
LÝ THUYẾT ĐỒ THỊ
Mạng và luồng
Định nghĩa mạng
Ta gọi mạng là đồ thị có hướng G=(V,E), thoả mãn:
i.
Có duy nhất một đỉnh s không có cung đi vào gọi là đỉnh phát.
ii.
Có duy nhất một đỉnh t không có cung đi ra gọi là đỉnh thu .
Cung e=(v,w) E được gán một số không âm c(e)=c(v,w) gọi là
khả năng thông qua của cung e. Nếu ! (v,w) thì c(v,w):=0.
iii.
iv.
Đồ thị liên thông (yếu)
15/25
LÝ THUYẾT ĐỒ THỊ
Mạng và luồng
Định
nghĩa luồng
16/25
NỘI DUNG TRÌNH BÀY
Lý do chọn và mục tiêu của đề tài
Nghiên cứu tổng quan
Phát biểu các bài toán
Giải pháp của các bài toán
Cơ sở lý thuyết liên quan
Xây dựng thuật toán
MMF (Maximum Multicommodity Flow)
MCF (Maximum Concurrent Flow)
MCMCF (Min Cost Maximum Concurrent Flow)
Cài đặt và đánh giá kết quả
Kết luận và hướng phát triển
17/25
MMF (Maximum Multicommodity Flow)
Các mô hình tuyến tính đối ngẫu của bài toán
Luồng gửi dọc theo đường p
Tập các đường giữa mọi cặp nguồn-đích
Khả năng thông qua cạnh e
Tập các đường qua e
Biến y của BTĐNgẫu, độ dài
trên cạnh e
18/25
Thuật toán MMF
Đầu vào: số đỉnh n, số hàng hóa k, k cặp nguồn-đích
(pair[i].nguon, pair[i].dich), i=1,...,k, ma trận trọng số cap[][], tỉ lệ
xấp xỉ cần đạt được.
Đầu ra: luồng cực đại f và ma trận luồng tại các cạnh F[][]
Ý tưởng: lặp lại các công việc:
Thuật toán Dijkstra cải tiến
Tìm_alpha: tìm đường đi p có độ dài ngắn nhất giữa mọi cặp
nguồn đích, c là min_cap(p). Ban đầu cạnh e, gán l(e)= .
Chuyển c đơn vị hàng hóa qua p. Điều chỉnh hàm độ dài:
Kết thúc khi 1.
Biến l trong D
19/25
Phân tích thuật toán MMF
Việc phân tích đưa đến sự lựa chọn các đại lượng:
Tỉ lệ gần đúng
Thuật toán thay đổi giá trị l, f, và dẫn đến BĐT của cặp đối ngẫu:
Số lần thực hiện thuật toán
Cặp QHTT đối ngẫu D và P đạt giá trị tối ưu với tỉ lệ gần đúng
Giá trị luồng cực đại:
Định lý:
Giá trị luồng ở bước thứ t của thuật toán
20/25
MCF (Maximum Concurrent Flow)
Các mô hình tuyến tính đối ngẫu của bài toán
Tổng giá trị luồng của hàng hóa thứ j
21/25
Thuật toán MCF
Đầu vào: số đỉnh n, số hàng hóa k, k cặp nguồn-đích cùng các
yêu cầu vận chuyển tương ứng (pair2[i].nguon, pair2[i].dich,
pair2[i].demand) , i=1,...,k. Ma trận trọng số cap[][],và tỉ lệ xấp xỉ
cần đạt được .
Đầu ra: luồng cực đại f, đại lượng
22/25
Ý tưởng Thuật toán MCF
Lặp lại một số giai đoạn. Mỗi giai đoạn gồm k bước, bước thứ j
chuyển d(j) đơn vị hàng hóa thứ j. Thực hiện bước j:
Lặp lại tìm đường p có độ dài dist(l) ngắn nhất giữa s j ,t j,
c=min_cap(p).
Tương tự MMF
Chuyển c := min{c,d(j)} qua mạng. d(j) -=c;
Nếu d(j)=0, kết thúc bước j.
Hiệu chỉnh các giá trị: D+=
.dist(l).c
Gán giá trị ban đầu e, l(e):= / c(e) D m
Thuật toán dừng khi D 1.
23/25
Phân tích thuật toán MCF
Việc phân tích đưa đến sự lựa chọn các đại lượng:
Thuật toán thay đổi các giá trị l, f, D, dẫn đến BĐT của cặp đối ngẫu:
Hàm mục tiêu của P
Cặp QHTT đối ngẫu D và P đạt giá trị tối ưu với tỉ lệ gần đúng
Luồng cực đại
Định lý:
t 1
và
log1 1/
24/25
MCMCF (Min Cost Maximum Concurrent Flow)
Các mô hình tuyến tính đối ngẫu của bài toán
Tổng chi phí của luồng
25/25
Thuật toán MCMCF
Ý tưởng tương tự thuật toán MCF.
Hàm độ dài tính theo l+ b
Tại mỗi bước chuyển hàng hóa của MCF. Không giảm tổng
quát, xét bước thứ j của giai đoạn thứ i. Gọi p là đường ngắn nhất
c=min{c,d(j)}. Nếu b(p)>B thì c:=c* b(p)/B;
Các kết quả phân tích tương tự như MCF.
26/25
NỘI DUNG TRÌNH BÀY
Lý do chọn và mục tiêu của đề tài
Nghiên cứu tổng quan
Phát biểu các bài toán
Giải pháp của các bài toán
Cơ sở lý thuyết liên quan
Xây dựng thuật toán
MMF (Maximum Multicommodity Flow)
MCF (Maximum Concurrent Flow)
MCMCF (Min Cost Maximum Concurrent Flow)
Cài
đặt và đánh giá kết quả
Kết luận và hướng phát triển
27/25
Cài đặt và đánh giá kết quả
Công cụ: C++ for Dos
Chương trình gồm ba modul cho ba thuật toán
Qui trình thực hiện của mỗi thuật toán
Đọc dữ liệu từ file ngoài
Thực hiện thuật toán
In kết quả
chương trình
28/25
Cài đặt và đánh giá kết quả
Đánh giá kết quả:
Đối với mạng một hàng hóa: cho kết quả gần đúng với kết quả
thu được từ thuật toán tìm luồng cực cổ điển Ford-Fulkerson, sai
số nhỏ đến 1%.
Đối với mạng nhiều hàng hóa: kiểm tra lại các kết quả trên đồ thị
tương ứng. Ta không thể tăng thêm giá trị luồng trên đồ thị nhiều
hơn tỉ lệ xấp xỉ.
Đối với mạng yêu cầu vận chuyển hàng hóa với giá trị nguyên,
có thể điều chỉnh giá trị luồng tìm đường để tìm ra luồng thích hợp.
29/25
KẾT LUẬN
Kết quả đạt được:
Áp dụng cho mạng đa hàng hóa tuyến tính tổng quát.
Tính gần đúng, nhưng có thể điều chỉnh được tỉ lệ xấp xỉ có
thể nhỏ đến 1% (nhưng <> 0).
Chương trình cài đặt giải được lớp bài toán liên quan.
Hướng phát triển
Phát triển thuật toán cho mạng đa hàng hóa phi tuyến
Phát triển thành bài toán qui hoạch mạng lưới giao thông đô
thị.
30/25
31/25
Cấu trúc file dữ liệu của bài toán MMF
Cấu trúc file dữ liệu bài toán MCF
Cấu trúc file dữ liệu bài toán MCMCF