ĐẠ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