Trong thực tế sản xuất kinh doanh chúng ta thường phải giải quyết các nhiệm vụ dẫn đến việc tìm giá trị max hoặc min của một hàm nào đó. Chẳng hạn cần lập phương án sản xuất, thi công sao cho có thể đạt được một trong các yêu cầu sau:
+ Tổng giá trị sản lượng lớn nhất;
+ Tổng lợi nhuận lớn nhất;
+ Chi phí thấp nhất;
+ Cước phí rẻ nhất;
+ Thời gian thực hiện nhanh nhất;
+ Tổng vốn đầu tư nhỏ nhất
7 trang |
Chia sẻ: superlens | Lượt xem: 2218 | Lượt tải: 4
Bạn đang xem nội dung tài liệu Tiếp cận bài toán quy hoạch tuyến tính thông qua bài toán tìm đường đi ngắn nhất, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TIẾP CẬN BÀI TOÁN QUY HOẠCH TUYẾN TÍNH THÔNG QUA BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT
ACCESS LINEAR PROGRAMMING PROBLEM SEARCH THROUGH
SHORTEST PATH
Trần Ngọc Việt Nguyễn Đình Lầu Phạm Văn Tiến
NCS khóa 2010-2014 NCS khóa 2010-2014 Trường CĐ Công nghệ-KT và Thủy Lợi
Đại học Đà Nẵng Đại học Đà Nẵng Miền Trung
TÓM TẮT
Kết quả chính của bài báo là nghiên cứu mối quan hệ giữa bài toán quy hoạch tuyến tính với bài toán đường đi ngắn nhất. Dựa trên cơ sở vận dụng thuật toán Dijkstra cải tiến để tìm đường đi ngắn nhất của cặp đỉnh bất kì trên mạng đồ thị và kết hợp lý thuyết đối ngẫu trong quy hoạch tuyến tính. Bài báo phân tích, chứng minh các kết quả đưa ra cũng như đánh giá độ phức tạp của thuật toán. Chương trình tương ứng cài đặt bằng C và cho kết quả chính xác.
ABSTRACT
The results of the paper is to study the relationship between linear programming problem with the shortest path problem. Based on applying improved Dijkstra algorithm to find the shortest path of any pair of vertices on the graph and associated duality theory of linear programming. The article analysis, the results prove out as well as evaluating the complexity of the algorithm. Corresponding program installed in C and for accurate results.
Key word: Shortest path, linear programming, graph
1. Sơ lược về các phương pháp tối ưu
Trong thực tế sản xuất kinh doanh chúng ta thường phải giải quyết các nhiệm vụ dẫn đến việc tìm giá trị max hoặc min của một hàm nào đó. Chẳng hạn cần lập phương án sản xuất, thi công sao cho có thể đạt được một trong các yêu cầu sau:
+ Tổng giá trị sản lượng lớn nhất;
+ Tổng lợi nhuận lớn nhất;
+ Chi phí thấp nhất;
+ Cước phí rẻ nhất;
+ Thời gian thực hiện nhanh nhất;
+ Tổng vốn đầu tư nhỏ nhất
Những yêu cầu (hoặc mục tiêu) nói trên được biểu diễn bằng một hàm và ta cần lập phương án sản xuất, thi công sao cho hàm đó đạt giá trị max hoặc min. Những bài toán như vậy gọi chung là các bài toán tối ưu. Để giải các bài toán đó, một loạt các lý thuyết toán học ra đời đặt cơ sở lý luận và tìm tòi lời giải, Từ đó hình thành lớp các phương pháp toán học giúp ta tìm lời giải tốt nhất cho các bài toán thực tế. Các phương pháp đó gọi là các phương pháp tối ưu hoá.
2. Xây dựng mô hình toán học cho các bài toán tối ưu thực tế
Việc mô hình hoá toán học cho một vấn đề thực tế có thể chia làm bốn bước như sau:
Bước 1: Xây dựng mô hình định tính cho vấn đề đặt ra.
Bước 2: Xây dựng mô hình toán học cho vấn đề đang xét. Trong bước này việc quan trọng là phải xác định hàm mục tiêu và các ràng buộc toán học.
Bước 3: Sử dụng công cụ toán học để khảo sát, giải quyết các bài toán hình thành trong bước 2.
Bước 4: Kiểm định lại các kết quả thu được trong bước 3.
3. Bài toán đường đi có trọng số bé nhất
3.1. Bài toán. Cho đồ thị G = (V, E, c) và hai đỉnh a, z. Tìm đường đi ngắn nhất (nếu có) đi từ đỉnh a đến đỉnh z trong đồ thị G. Đồ thị G được gọi là đồ thị có trọng số nếu trên mỗi cạnh (i, j) của đồ thị được gán một số nguyên không âm c(i,j).
-Nhãn c(i,j) trên cạnh (i,j) của đồ thị thường biểu diễn “chi phí” thực tế để đi qua cạnh này.
-Độ dài đường đi ngắn nhất từ đi đỉnh a đến đỉnh z còn được gọi là khoảng cách từ đỉnh a đến đỉnh z trong đồ thị. Nếu không có đường đi từ a đến z thì đặt khoảng cách bằng ∞.
-Ý nghĩa thực tế: Bài toán này giúp chúng ta chọn các hành trình tiết kiệm nhất (quãng đường, thời gian, chi phí ...) trong giao thông, lập lịch thi công các công trình một cách tối ưu, ...
3.2. Định lý. Tại mỗi đỉnh z giá trị nhãn d(z) cuối cùng (nếu có) chính là độ dài của đường đi ngắn nhất từ đỉnh a đến đỉnh z.
Chứng minh.
Sau khi đã thực hiện xong thuật toán trên, nếu giá trị nhãn d(z) xác định thì ta có đường đi từ đỉnh a tới đỉnh z.
Ta khôi phục đường đi từ a đến z như sau:
d(i) + c(i,z) = d(z).
Đỉnh i như thế chắc chắn phải tồn tại vì xảy ra đẳng thức ở lần gán hoặc giảm giá trị nhãn d(j) cuối cùng. Cứ tiếp tục như thế cho đến khi gặp đỉnh a.
Giả sử ta nhận được dãy các cạnh:
(a, a1) , (a1, a2) , ... , (ak-1, z)
Ta có:
d(a) + c(a,a1) = d(a1)
d(a1) + c(a1,a2) = d(a2)
d(a2) + c(a2,a3) = d(a3)
.. . .. . . . .. .. .. . . .. .. . .
d(ak-1) + c(ak-1, z) = d(z).
Cộng lại vế theo vế, ta được:
c(a,a1) + c(a1,a2) + c(a2,a3)+ ... + c(ak-1,z) = d(z).
Giá trị nhãn d(z) chính là độ dài đường đi nói trên. Bất kỳ đường đi nào khác từ đỉnh a đến đỉnh z cũng có các hệ thức tương tự nhưng có dấu ≥.
Vậy nhãn d(z) là độ dài của đường đi ngắn nhất.
3.3.Thuật toán Dijkstra tìm đường đi ngắn nhất
Thuật giải tìm đường đi ngắn nhất từ đỉnh nguồn a đến đỉnh đích z trong đồ thị có trọng số, với c(i,j) > 0 và đỉnh x sẽ mang nhãn L(x). Kết thúc giải thuật L(z) chính là chiều dài ngắn nhất từ a đến z.
+ Đầu vào. Đồ thị G = (V, E, c) có trọng số c(i,j) > 0 với mọi cạnh , đỉnh nguồn a và đỉnh đích z.
+ Đầu ra. L(z) chiều dài đường đi ngắn nhất từ đỉnh nguồn a đến đỉnh đích z và đường đi ngắn nhất (nếu L(z) < ).
+ Phương pháp gồm các bước sau:
(1)Khởi tạo: Gán L(a):=0. Với mọi đỉnh gán . Đặt T:=V.
(2)Tính
Nếu , kết thúc và ta nói không tồn tại đường đi từ a đến z.
Ngược lại, nếu , chọn sao cho và đặt . Sang bước 3.
(3)Nếu , kết thúc, L(z) là chiều dài đường đi ngắn nhất từ a đến z.
Từ z lần ngược theo đỉnh được ghi nhớ ta có đường đi ngắn nhất.
Ngược lại, nếu , sang bước 4.
(4)Với mỗi kề (kề sau) v, nếu thì gán
và ghi nhớ đỉnh v cạnh x để xây dựng đường đi ngắn nhất.
Quay về bước 2.
*)Ghi chú. Độ phức tạp của thuật toán là
3.4. Hướng tiếp cận bài toán quy hoạch tuyến tính thông qua bài toán tìm đường đi ngắn nhất :
Xét bài toán quy hoạch tuyến tính dạng tổng quát:
trong đó: vectơ vế phải,
vectơ biến số,
vectơ hệ số hàm mục tiêu.
Bài toán đối ngẫu của nó là:
Biến đối ngẫu của độ dài cạnh
Tìm 1 đường đi ngắn nhất tương ứng với tìm kiếm 1 cột có chiều dài tối thiểu:
Đặt:
Tìm biến đối ngẫu sao cho: là nhỏ nhất
Giả sử, biến đối ngẫu và biến của bài toán gốc
Cho là cột có chiều dài nhỏ nhất từ ma trận A:
Từ ma trận A có cột xem là cạnh với: là nhỏ nhất
Dùng biến từ bài toán gốc với:
Ta được cấu trúc bài toán đối ngẫu:
Ta chọn hằng số sao cho hợp lí;
Tính biến đối ngẫu dựa vào hằng số chọn hợp lí.
Từ biến đổi thành . Do đó, ta được ,
với
Cho :
Giả sử thì ta được
và
Dùng BĐT:
Vậy,
Suy ra:
3.5.Thử nghiệm chương trình:
Sau đây là ví dụ kết quả chạy chương trình bài toán quy hoạch tuyến tính thông qua bài toán tìm đường đi ngắn nhất.
Ví dụ: Cho mạng đồ thị gồm 4 đỉnh, 7 cạnh và các nút từ 1 đến 4
1
2
4
6
7
1
7
3
11
5
4
(Hình 1)
Kết quả chạy chương trình như sau:
4. Kết luận
Kết quả của bài báo đã đáp ứng được mục tiêu đề tài là “ Tiếp cận bài toán quy hoạch tuyến tính thông qua tìm đường đi ngắn nhất ” đã đặt ra, đó là nghiên cứu xây dựng mô hình toán học cho bài toán Quy hoạch, trong đó các ràng buộc về khả năng thông qua, mục tiêu tối ưu, phát triển và áp dụng hiệu quả các thuật toán tối ưu.
TÀI LIỆU THAM KHẢO
NguyÔn Cam, Chu §øc Kh¸nh: Lý thuyÕt ®å thÞ. NXB TP.HCM, 1999.
TrÇn Quèc ChiÕn, Gi¸o tr×nh lý thuyÕt ®å thÞ, §¹i häc §µ N½ng 2002.
TrÇn Quèc ChiÕn, Thuật toán hoán chuyển nguồn đích tìm luồng cực đại, T¹p chÝ Khoa häc & c«ng nghÖ số 26-năm 2008, ĐHĐN.
NguyÔn Xu©n Quúnh: C¬ së To¸n rêi r¹c vµ øng dông. NXB Gi¸o dôc. Hµ Néi 1995.
A.V.Goldberg, R.E.Tarjan, Expected performance of Dijkstra’s shortest path algorithm, Technical Report 96-070, NEC Research Institute Inc, 1996.
V.K. Balakrishnan: Theory and Problems of Graph Theory. McGRAW-HILL. 1997.
Christofides Nicos: Graph Theory. Academic Press. New York London San Francisco, 1975.
R.G. Busacker & T.L. Saaty: Finite Graph and Networks. Mc Graw-Hill Book Company. New York - St. Louis - San Francisco - Toronto - London - Sydney, 1974.
Frederic Babonneau: Solving the multicommodity flow problem with the analytic center cutting plane method. UNIVERSITY DE GENEVE, 2006.
Ellis L. Johnson, Committee Chair, George L. Nemhauser: Shortest paths and multicommodity network flow, 2002.