Xem xét & nghiên cứu Một số bài toán mở rộng trong lớp các bài toán vận tải mở rộng (Toán - Tin)
Trang 1lời mở đầu
Cùng với sự phát triển mạnh mẽ của khoa học kỹ thuật, các bài toán tối u xuấthiện ngày càng nhiều và tính phức tạp của chúng ngày càng lớn Phạm vi và khảnăng ứng dụng của các bài toán tối u cũng ngày càng đa dạng và phong phú
Lớp bài toán tối u quan trọng đợc nghiên cứu đầu tiên và đợc ứng dụng nhiều
nhất là bài toán quy hoạch tuyến tính (linear programming) Đó là mô hình toán
học của một lớp rộng lớn các bài toán ứng dụng trong kinh tế và kỹ thuật Do đócấu trúc của lớp bài toán quy hoạch tuyến tính có nhiều tính chất rất tốt về mặt toánhọc, ngời ta đã tìm đợc các thuật giải rất hữu hiệu cho bài toán này Năm 1947 nhàtoán học Mỹ G.B Dantzig đã nghiên cứu và đề xuất ra thuật toán đơn hình
(simplex method) để giải bài toán quy hoạch tuyến tính Thuật toán đơn hình đợc
phát triển mạnh mẽ trong những năm sau đó và đợc xem là một phơng pháp kinh
điển để giải các bài toán quy hoạch tuyến tính Đây là một phơng pháp đợc sử dụng
có thể nói là rộng rãi nhất Có ba lý do chính:
Một là: Rất nhiều vấn đề thực tế, trong nhiều lĩnh vực khác nhau có thể đa về
bài toán quy hoạch tuyến tính
Hai là: Trong nhiều phơng pháp giải các bài toán phi tuyến, bài toán tuyến
tính xuất hiện nh là một bài toán phụ cần phải giải trong nhiều bớc lặp
Ba là: Phơng pháp đơn hình là phơng pháp hiệu quả để giải bài toán quy
hoạch tuyến tính
Ngày nay, bằng thuật toán đơn hình và các dạng cải biên của chúng, ngời ta
có thể giải rất nhanh các bài toán QHTT cỡ lớn
Lớp các bài toán vận tải là trờng hợp đặc biệt của quy hoạch tuyến tính, bởivậy có thể dùng các phơng pháp của quy hoạch tuyến tính để giải Tuy nhiên, dotính chất đặc thù riêng của nó, ngời ta xây dựng các phơng pháp giải riêng
Thông thờng khi nói đến bài toán vận tải ta thờng liên hệ ngay đến bài toánvận tải hai chỉ số, bởi đây là bài toán vận tải kinh điển có những phơng pháp giảihay Bên cạnh đó, ngời ta còn xét một số các bài toán vận tải mở rộng nh bài toánvận tải ba chỉ số, bài toán vận tải khoảng, bài toán vận tải đa mục tiêu và rất nhiềubài toán khác, đó là các biến thể của bài toán vận tải kinh điển trên
Trong khuôn khổ khoá luận này, em xem xét và nghiên cứu một số bài toán
mở rộng trong lớp các bài toán vận tải mở rộng đó Đó là các bài toán: Bài toán
vận tải ba chỉ số (solid transport problem) không hạn chế và có hạn chế khả năng
thông qua, Bài toán vận tải ba chỉ số khoảng (interval solid transport problem)
và giới thiệu một số Bài toán vận tải đa mục tiêu
Trang: 1
Trang 2Cuối cùng, em xin bày tỏ lòng biết ơn sâu sắc nhất đối với thày giáo hớng dẫn
Thạc sỹ Vũ Tiến Việt, ngời đã tận tình chỉ bảo, giúp đỡ em trong quá trình hoàn
thành khoá luận này Em cũng xin chân thành cảm ơn sự giúp đỡ nhiệt tình của cácthầy cô trong khoa Toán - Tin, Học viện An ninh Nhân dân
Trang 3Chơng I Bài toán quy hoạch tuyến tính
Trong việc nghiên cứu các bài toán tối u nói chung, giải tích lồi giữ một vaitrò rất quan trọng Nó đợc sử dụng làm cơ sở toán học trong việc xây dựng cácthuật toán
Quy hoạch tuyến tính là một trong những lớp bài toán tối u đợc nghiên cứutrọng vẹn cả về phơng diện lý thuyết lẫn thực hành, Bài toán vận tải là một dạng
đặc biệt của QHTT Do đó chơng này nhằm giới thiệu một số khái niệm và kiếnthức cơ bản về giải tích lồi và QHTT
1.1 Một số khái niệm về giải tích lồi
1.1.1 Không gian Euclude
Một vector n chiều trên trờng số thực là một bộ đợc sắp thứ tự gồm n số thựcx=(x1, x2, , xn) Các xi, i =1, , n gọi là các thành phần hay toạ độ của vector Ví
dụ x=(4,5,10,20)
Hai vectơ x và y gọi là bằng nhau x=y, nếu xi=yi, i =1, , n
Xét hai phép toán trên các vector:
Phép cộng: x+y=(x1+y1, x2+y2, , xn+yn)
Phép nhân: x=(x1, x2, , xn), R
Khi đó tập hợp tất cả các vector n chiều trong đó xác định phép cộng cácvector, nhân một số thực với vector nh trên tạo thành không gian tuyến tính n chiềutrên trờng số thực R, ký hiệu Rn
Các vector x(i) Rn, i =1, , m đợc gọi là độc lập tuyến tính nếu:
Nếu:
m i
i
i x x
1
)
với ít nhất một i 0 thì x gọi là tổ hợp tuyến tính của
các x(i), i =1, , m Hơn nữa nếu i 0, i =1, , m và
Trong Rn có n vector độc lập tuyến tính lập thành cơ sở của nó
Giả sử e(1), e(2), , e(n) là một cơ sở của Rn thì bất kỳ một vector x Rn đều là
tổ hợp tuyến tính của các vector e(1), e(2), , e(n) Ta gọi tích vô hớng của hai vectorx=(x1, x2, , xn) và y=(y1, y2, , yn), ký hiệu, <x,y>, là một số bằng
Trang: 3
m i
m
, 1 , 0 0
) 1
Trang 4Tích vô hớng là một dạng song tuyến tính, đối xứng, không âm, tức là:
1 <x,y> = <y, x> x,y Rn
2 <x(1) + x(2), y >=< x(1), y >+< x(2), y> x(1), x(2), y Rn
3 <x,y> = <x,y> x,y Rn
4 <x,x> 0, x Rn dấu bằng xẩy ra khi và chỉ khi x= 0
Độ dài của vector x=(x1, x2, , xn) là một số xác định bởi
Khoảng cách giữa hai vector x và y là một số xác định bởi:
Không gian vector trong đó có tích vô hớng và khoảng cách nh trên gọi làkhông gian Euclude
1.1.2 Tập compact
Dãy {x(k) }Rn k=1, 2, đợc gọi là có giới hạn x(0) khi k và viết
lim x(k) = x(0), nếu
Hình cầu tâm a bán kính là tập S=xRn :x-a Hình cầu này tạo nên
- lân cận của điểm a, hay gọi là lân cận của a
* Nếu tập ARn chứa cùng với điểm x một lân cận của nó thì x gọi là điểmtrong của A Nếu trong lân cận bất kỳ của x A có các điểm của A và các điểmkhông thuộc A thì x gọi là điểm biên của tập hợp A
* Một tập ARn gọi là giới nội nếu nó đợc chứa trong một hình cầu tâm Onào đó, tức là tồn tại số đủ lớn sao cho với mọi xA,x Một dãy {x(k)} hội
tụ thì bao giờ cũng giới nội
* Một tập hợp GRn đợc gọi là mở nếu với mọi xG đều tồn tại một hình cầutâm x nằm gọn trong G Một tập FRn đợc gọi là đóng nếu với mọi dãy hội
tụ{x(k)} F ta đều có: x k F
) (
x x
x x
i y x y
i
i y x y
x y x y
x y x
1
2
, ,
Trang 5* Tập C đợc gọi là tập Compact nếu từ mọi dãy vô hạn {x(k)} thuộc C đều có
thể trích ra một dãy con {x(ki)} hội tụ tới phần tử thuộc C Tập C là Compact khi và
chỉ khi C đóng và giới nội Tập Compact M của tập đóng C cũng đóng trong C Tập
con đóng M của tập Compact cũng Compact
Hàm f(x) liên tục trên tập Compact C thì sẽ đạt cực trị trên tập ấy
* Một tập MRn đợc gọi là một đa tạp affine nếu với hai điểm bất kỳ
x, y M thì toàn bộ đờng thẳng đi qua hai điểm đó cũng thuộc M
Tức là x + (1-)y M : x,y M, R
* Một siêu phẳng trong không gian Rn là tập hợp tất cả các điểm
x=(x1, x2, , xn) Rn thỏa mãn phơng trình tuyến tính
a1x1+ a2x2+ + anxn = trong đó a1, a2, , an , R
* Tập hợp các điểm x=(x1, x2, , xn) Rn thoản mãn bất phơng trình tuyến
tính a1x1+ a2x2+ + anxn đợc gọi là nửa không gian đóng
* Nửa không gian đợc cho bởi a1x1+ a2x2+ + anxn < đợc gọi là nửa không
gian mở
* Tập XRn đợc gọi là tập lồi nếu cùng với việc chứa hai điểm x, y nó chứa cả
đoạn thẳng chứa hai điểm ấy, tức là chứa tất cả các điểm có dạng:
x + (1-)y, 0 1
Ví dụ về các tập lồi: Không gian Euclide, các nửa không gian, mặt phẳng, nửa
mặt phẳng, hình chữ nhật, hình vuông, hình elip, hình hộp, hình cầu
* Một tập hợp là giao của một số hữu hạn các nửa không gian đóng đợc gọi là
tập lồi đa diện
Mệnh đề: Giao của hai tập lồi là một tập lồi.
Hệ quả 1 Giao của một số bất kỳ tập hợp lồi là tập lồi.
Hệ quả 2 Miền chứa nghiệm của một hệ bất phơng trình tuyến tính dạng
là một tập lồi (đa diện lồi) Một tập lồi đa diện giới nội gọi là một đa diện.
Giao của tất cả các tập lồi chứa tập X gọi là bao lồi của nó, ký hiệu [X]
1.1.4 Hàm lồi
* Một hàm số f(x) xác định trên tập lồi C Rn đợc gọi là hàm lồi trên C, nếu
với mọi x, y C và 0 1 ta có f(x + (1-)y) f(x) + (1-)f(y)
Trang: 5
.
.
2 2
1 1
2 2
2 22
1
2 1
1 1
2
1 2 1
nn n
n
n n
n n
b x
a x
a x
a
b x
a x
a x
a
b x
a x
a x
a
Trang 6* Hàm f(x) đợc gọi là hàm lồi chặt nếu với mọi x, y C và 0 1 ta có.f(x + (1-)y) f(x) + (1-)f(y).
* Hàm f(x) đợc gọi là hàm lõm (lõm chặt) nếu - f(x) là hàm lồi (lồi chặt)
* Hàm f(x) xác định trên C đạt cực tiểu tuyệt đối tại x* C nếu
f(x*) f(x): xC
* Hàm f(x) đạt cực tiểu địa phơng tại x* C nếu tồn tại lân cận mở U của x*sao cho f(x*) f(x): xC U
Mệnh đề 1: Bất kỳ điểm cực tiểu địa phơng nào của hàm lồi trên tập lồi cũng
là điểm cực tiểu tuyệt đối
Hệ quả: Bất kỳ điểm cực đại địa phơng nào của hàm lõm cũng là cực đại tuyệt
đối
Mệnh đề 2: Cực đại của một hàm lồi (nếu có) trên một tập lồi có điểm cực
biên bao giờ cũng đạt tại một điểm cực biên
1.2 Bài toán Quy hoạch tuyến tính
QHTT bắt nguồn từ những nghiên cứu của nhà toán học Nga nổi tiếng, Viện
sỹ L.V Kantorovich trong một loạt các công trình về bài toán kế hoạch hoá sảnxuất, công bố năm 1938 Năm 1947 nhà toán học Mỹ G.B Dantzig đã nghiên cứu
và đề xuất phơng pháp đơn hình (Simplex method) để giải bài toán QHTT Năm
1952 phơng pháp đơn hình đã đợc chạy trên máy tính điện tử của Mỹ
1.2.1 Bài toán quy hoạch tuyến tính
Bài toán tổng quát
Để nhất quán lập luận ta xét bài toán tìm cực đại, sau đó ta xét cách chuyểnbài toán tìm cực tiểu sang tìm cực đại Bài toán tổng quát của QHTT có dạng:
Ký hiệu: A=(aij)mxn là ma trận với các phần tử aij
(1.1) gọi là hàm mục tiêu, (1.2) là các rằng buộc
Nếu gặp bài toán Min, tức là
Thì giữ nguyên ràng buộc và đa về bài toán Max bằng cách
D x
x c x
n j j
x c x
n j j
j x
3.
, , 1 ,0
2.
, ,1 , , ,
1
n j x
m i b x a j i n
Trang 7Nếu bài toán Max có phơng án tối u là x* thì bài toán min cũng có phơng án
là x* và f min =-f max
Thật vậy, vì x* là phơng án tối u của bài toán Max nên ta có:
Chứng tỏ x* là phơng án tối u của bài toán Min và
Dạng chuẩn và dạng chính tắc
Ngời ta thờng xét bài toán quy hoạch tuyến tính dới hai dạng sau:
-Dạng chuẩn:
-Dạng chính tắc:
Đa bài toán QHTT về dạng chuẩn hoặc dạng chính tắc
Bất kỳ QHTT nào cũng có thể đa về một trong hai dạng chuẩn hoặc chính tắcnhờ các phép biến đổi tuyến tính sau:
c x
c
hay D x x
c x
c f
n j j j n
j j j
j n j j n
j j j
1 1
*
1 1
* max
c f
1
max
* min
n j
x
m i
b x a
x c
j
i n
j j ij
n
j j j
, , 1 ,
0
, , 1 , max
1 1
x
m i
b x a
x c
j
i n
j ij j
j n j j
, , 1 , 0
,
1 , max
1 1
i j
ij x b a
1
i n
j j
j j ij i
n j j
j a ij x b
1
' '
n
j a ij x b
Trang 8iii) Một biến x j không bị ràng buộc dấu có thể thay thế bởi hiệu của hai biếnkhông âm bằng cách đặt:
iv) Một ràng buộc bất đẳng thức
Có thể đa về ràng buộc đẳng thức bằng cách đa vào biến phụ yi 0:
Về nguyên tắc, áp dụng nhiều lần các phép biến đổi (i), (ii) và (iii) ta có thể đamột bài toán QHTT bất kỳ về dạng chuẩn, sau đó áp dụng nhiều lần phép biến đổi(iv) ta sẽ đa nó về dạng chính tắc
Giải bài toán QHTT bằng phơng pháp hình học
Xét bài toán QHTT dới dạng chuẩn với hai biến số:
Từ ý nghĩa hình học ta biết rằng mỗi bất phơng trình tuyến tính a i1 x 1 +a i2 x 2 b i xác
định một nửa mặt phẳng
Nh vậy miền ràng buộc D đợc xác định nh là giao của một nửa mặt phẳng và
sẽ là một đa giác lồi trên mặt phẳng Phơng trình c 1 x 1 +c 2 x 2 = khi thay đổi sẽ xác
định trên mặt phẳng các đờng thẳng song song với nhau mà ta sẽ gọi là các đờng
mức (với giá trị mức ) Mỗi điểm D sẽ nằm trên một đờng mức với
Bắt đầu từ một đờng mức cắt D, ta dịch chuyển song song các đờng mức theohớng vector pháp tuyến (c1,c2) cho đến khi việc dịch chuyển tiếp theo làm cho đờng
mức không còn cắt D nữa thì dừng Điểm của D (có thể nhiều điểm) nằm trên đờng
mức cuối cùng này sẽ là lời giải tối u cần tìm, còn giá trị của hàm mục tiêu tại đóchính là giá trị tối u của bài toán
Ví dụ: Xét bài toán:
f(x)= 4x1+5x2max
0 , 0
j
i j
0
, , 1 ,
max
2 1 1 1
2 2 1 1
j x
m i
b x a x a D
x c x c
j
i i
Trang 9Xét đờng mức: 4x1+5x2=10 Đờng mức này đi qua hai điểm (0,2) và (2.5,0).
Ta có x*=(3,2), fmax=22
và x* là một đỉnh của D Qua phơng pháp hình học ta thấy rằng:
- Nếu quy hoạch tuyến tính có phơng án tối u thì có ít nhất một đỉnh là tối u
Sở dĩ nói ít nhất vì có trờng hợp đờng mức ở vị trí giới hạn trùng với một cạnh của
D thì tất cả các điểm trên cạnh này là phơng án tối u, trong đó có hai đỉnh
- Nếu miền ràng buộc D giới nội và khác rỗng thì chắc chắn có phơng án tối u
- Nếu miền ràng buộc không giới nội nhng hàm mục tiêu bị chặn trên ở trênmiền ràng buộc thì cũng chắc chắn có phơng án tối u
1.2.2 Một số tính chất chung
Mệnh đề 1: Tập hợp tất cả các phơng án của một bài toán QHTT là tập lồi.
Tập lồi D các phơng án của một bài toán QHTT xác định bởi toàn bộ các ràngbuộc (1.2) và (1.3) Tập D có thể là rỗng, hoặc là một đa diện lồi hoặc là một tậplồi đa diện không giới nội
Nếu D là một đa diện lồi thì bài toán có phơng án, hơn nữa giá trị tối u củahàm mục tiêu trên đa diện lồi là hữu hạn và việc tìm phơng án tối u đa đến việcchọn các điểm của đa diện D có số đỉnh (điểm cực biên hay phơng án cực biên)hữu hạn
Mệnh đề 2: Hàm mục tiêu của bài toán QHTT sẽ đạt Max tại điểm cực biên
của tập D Nếu hàm mục tiêu không chỉ nhận Max tại một điểm cực biên của tậplồi D mà tại nhiều điểm cực biên thì nó sẽ đạt giá trị cực đại tại những điểm là tổhợp lồi của các điểm đó
Ký hiệu Aj, j=1, , n là các vector cột của ma trận A
Khi ấy hệ ràng buộc Ax =b có thể viết:
Trang 10là điểm cực biên của tập lồi đa diện D.
Mệnh đề 4: Nếu x =(x 1 ,x 2 , ,x n ) là điểm cực biên của tập lồi đa diện D thì các vector A j trong biểu diễn (1.4) ứng với các thành phần xj 0 lập thành hệ độc lậptuyến tính Vì ma trận A có m dòng nên từ đây suy ra rằng điểm cực biên không cóquá m thành phần dơng
Các mệnh đề 3 và mệnh đề 4 có thể gộp lại thành một mệnh đề sau:
Mệnh đề 5: Để x =(x 1 ,x 2 ,x n ) là phơng án cực biên của QHTT dới dạng chính tắc thì cần và đủ là các vector cột A j của ma trận A ứng với các thành phần xj 0
là độc lập tuyến tính
1.2.3 Phơng pháp đơn hình giải bài toán QHTT
Cơ sở của phơng pháp này đơc G.B Dantzig công bố năm 1947 có tên gọi là phơng pháp đơn hình Sở dĩ có tên gọi nh vậy là vì những bài toán đầu tiên đợc giải bằng phơng pháp đó có các ràng buộc dạng:
Mà tập hợp các điểm xRn thoả mãn các ràng buộc trên là một đơn hình trongkhông gian n chiều
Đờng lối chung và cơ sở của thuật toán
i) Đờng lối chung
Phơng pháp đơn hình dựa trên hai nhận xét sau: nếu bài toán QHTT có phơng
án tối u, đa diện lồi D có một số hữu hạn đỉnh Nh vậy phải tồn tại thuật toán hữuhạn Thuật toán gồm hai giai đoạn:
- Giai đoạn 1: Tìm một phơng án cực biên (một đỉnh).
- Giai đoạn 2: Kiểm tra điều kiện tối u đối phơng án tìm đợc ở giai đoạn 1.Nếu điểu kiện tối u đợc thoả mãn thì phơng án đó là tối u Nếu không, ta chuyểnsang phơng án cực biên mới sao cho cải tiến giá trị hàm mục tiêu Tiếp theo lạikiểm tra điều kiện tối u đối với phơng án mới
Ngời ta thực hiện một dãy các thủ tục nh vậy cho đến khi nhận đợc phơng ántối u, hoặc đến tình huống bài toán không có phơng án tối u
ii) Cơ sở của thuật toán
Xét bài toán QHTT dới dạng chính tắc:
c, x max (1.6)
Ax= b (1.7)
x 0 (1.8)
Trong đó A là ma trận kích thớc mxn và giả sử rằng hạng của ma trận A là m
(điều này không làm mất tính tổng quát) x là một vector.
5.
, , 1 ,0 ,1
1
n j x
x j
n j
Trang 11Giả sử x là một phơng án cực biên nào đó Ta ký hiệu:
Ta chọn một hệ thống m vector độc lập tuyến tính {Aj, j J}sao cho J J*
Hệ thống đó gọi là cơ sở của x, các vector {Aj, j J} và các biến {xj, j J} đợc gọi
là các vector và các biến cơ sở tơng ứng Các vector và các biến Aj, xj, j J gọi làcác vector và các biến phi cơ sở tơng ứng
Nếu x không thoái hoá thì tồn tại một cơ sở duy nhất, đó là J=J*
Mỗi vector Ak phi cơ sở có thế biểu diễn dới dạng tổ hợp tuyến tính của cácvector cơ sở:
Trong đó các hệ số zjk đợc xác định duy nhất bởi việc giải hệ phơng trình:
Bài toán QHTT đợc gọi là không thoái hoá nếu tất cả các phơng án cực biêncủa nó đều không thoái hoá
Giả sử bài toán không thoái hoá và ta đã tìm đợc một phơng án cực biênx=(x1, x2, xm, 0, 0) và cơ sở của nó A1,, A2, Am
Đối với phơng án cực biên này ta có:
với giá trị của hàm mục tiêu:
Ta tính các đại lợng sau:
Kí hiệu:
Định lý 1.1: (Tiêu chuẩn tối u) Nếu đối với phơng án cực biên
x=(x1,x2, ,xm,0 0) các điều kiện sau đợc thỏa mãn
thì x* là phơng án tối u
Trang: 11
1 11 ,1
,i m a a
k z A A
.1 12, ,
1 ,0 ,
1
m j x b A
x j
m j j
m j
j z x
jk c Z z
.1 15
1
k m j j jk k k
kZ c z c c
.1 16 , ,
2 ,1 ,0 k n
k
Trang 12 Ngời ta có thể chứng minh rằng nếu bài toán không thoái hoá thì (1.16) cũng
là điều kiện cần của tối u
Định lý 1.2: Nếu tồn tại một chỉ số k sao cho k 0 thì ngời ta có thể tìm đợc
ít nhất một phơng án x’ mà đối với nó Z’ Z0
Công thức tìm phơng án x’:
Nhân (1.10) với nào đó ta có:
Lấy (1.12) trừ đi (1.19) từng vế ta có:
Nếu các hệ số của các vector Aj, j=1, ,m và Ak trong (1.20) không âm, khi
đó ta có một phơng án mới x’ mà đối với nó hàm mục tiêu f có giá trị
Trong (1.12) tất cả các biến xj, j=1, ,m đều dơng Vì vậy có thể tìm đợc
Nh vậy ta nhận đợc phơng án mới x’ với cơ sở Aj, jJ\ {r}{k}=J’
Nếu zjk 0, j J thì tất cả các thành phần xj- z jk trong (1.22) sẽ không âm
0, nghĩa là ta luôn có phơng án 0, nhng từ (1.21) ta dễ thấy giá trị hàm
mục tiêu tiến tới + khi tiến tới +.
Trong thực hành Dantzig đã chứng minh rằng các bớc lặp sẽ giảm đáng kể nếu
ta thay vector As thoả mãn:
.1 17 ,0 j J
min
0
rk
r jk jk
j J
x z z
x j k
m j jk
Z
) 22 1 , ,
1 ,0 :
' x z j m
x j j jk
Trang 13và khi đó vector Ar đợc xác định theo công thức:
Ta có phơng án cực biên mới x’ mà các thành phần của nó có dạng:
Tính giá trị hàm mục tiêu
Bớc 2: Kiểm tra tối u.
Nếu k 0, k J thì x là phơng án tối u, dừng thuật toán Trái lại, chuyểnsang bớc 3
Bớc 3: Tìm vector đa vào cơ sở Có hai khả năng xảy ra:
Tồn tại kJ sao cho k 0 và zjk 0, jJ thì bài toán QHTT không
có lời giải tối u (Z không bị chặn trên) Dừng thuật toán
Đối với mỗi kJ sao cho k 0 đều tồn tại j J: zjk 0 Khi đó chọnchỉ số s theo tiêu chuẩn:
min
rs
r js
js
j s
z
x J j z z
, /
'
rs r
js rs r j
j
z x
z z x x
x
1 26
.1 27
\ ' ,j J J r s
A j
k j J j
j x c
Z0
Trang 14Đa vector As vào cơ sở.
Bớc 4: Tìm vector loại khỏi cơ sở Xác định
Và đa vector Ar ra khỏi cơ sở
Bớc 5: Chuyển sang phơng án cực biên mới và cơ sở mới Cơ sở mới là {Aj,j
J’} với J’= J\{r} z{s} Phơng án cực biên mới x’ đợc tính theo (1.26), khai triển của các véc tơ Ak theo các cơ sở mới đợc tính theo công thức (1.28) Quaylên bớc 2
Chú ý Đối với bài toán min thì tiêu chuẩn tối u là
k 0 (k) và vector As đợc chọn đa vào cơ sở theo công thức:
Thay biểu thức của Ar vào ta đợc:
Đây là công thức biểu diễn Ak qua cơ sở mới J’ =J\{r}s Bởi vậy ta có: nếu jr
j s
z
x z z
J
j js j s
A z A z A
A z A
,
1
s rs
rk j r
j J
rk jk r
j J j
j js s
rs
rk r
i J
j
j jk
z
z A z
z z A
z A
z
z A z
r rk j jk j J j jk
k z A z A z A
A
, ,
'
k j J j jk
k z c c
c,x Axb, x 0
Trang 15Nếu tất cả các số trong dòng cuối (trừ hàm mục tiêu f) đều không âm, nghĩa là
c j
c r
A m
x 1
x j
x r
x m
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
z 1k
z jk
z rk
z mk
z 1s
z js
z rs
z ms
z 1n
z jn
z rn
z mn
f 0 0 0 0 k s n
Nếu dòng cuối (không kể f ) có những số âm thì xem thử có cột nào cắt dòng
cuối ở một số âm mà mọi số trong cột đó đều âm hay không Nếu có cột nào nh thếthì bài toán không có phơng án tối u Nếu trái lại thì chọn cột sao cho
Rồi chọn ( trong số các dòng cắt cột s ở những số dơng ) dòng r sao cho:
Cột s gọi là cột quay Vector Ar đợc đa vào cơ sở Dòng r gọi là dòng quay.Vector Ar bị đa ra khỏi cơ sở
Phần tử zrs > 0 là giao của cột quay và dòng quay gọi là phần tử chính củaphép quay Các phần tử zjs, j r gọi là phần tử quay
Các công thức (1.26), (1.29) gọi là các công thức đổi cơ sở Bảng đơn hìnhmới suy đợc từ bảng cũ bằng cách thay cr, Ar trong dòng quay bằng cs, As Sau đóthực hiện các phép biến đổi dới đây:
i) Chia mỗi phần tử ở dòng quay cho phần tử chính đợc số 1 ở vị trí của zrs cũ.Kết quả thu đợc là dòng chính
ii) Lấy mỗi dòng khác trừ đi tích của dòng chính nhân với phần tử quay tơngứng đợc số 0 ở mọi vị trí còn lại của cột quay
Dòng mới = dòng cũ tơng ứng - dòng chính x phần tử quay
Lu ý rằng sau phép quay thì ở vị trí s ta thu đợc số 0 vì lúc này As trở thànhvector đơn vị cơ sở, nghĩa là ta đã làm mất số âm nhỏ nhất ở dòng cuối của bảngcũ
r
z
x z
x
Trang 16Toàn thể phép biến đổi trên gọi là phép quay xung quanh phần tử chính zrs.Sau khi thực hiện phép quay ta có một phơng án mới và một cơ sở mới Nếu cha đạtyêu cầ nghĩa là còn k <1 thì ta lại tiếp tục quá trình.
Chú ý: Trong bảng đơn hình ở bảng 1.1, không giảm tổng quát ta coi các
vector cơ sở đợc đánh số A1, A2, , Am, nghĩa là J = {1,2, , m}
2.1 Bài toán vận tải hai chỉ số
2.1.1 Phát biểu bài toán và tính chất
Có m địa điểm A1, A2, , An cùng sản xuất một loại hàng hóa với các lợnghàng tơng ứng là a1, a2, , an
Có n nơi tiêu thụ loại hàng hóa đó B1, B2, , Bn với các yêu cầu tơng ứng là b1,
b2, , bn
Để đơn giản ta sẽ gọi
Ai là điểm phát i, i=1, , m
Bj là điểm thu j, j=1, , n
Trang 17Hàng có thể chở từ một điểm phát bất kỳ (i) đến một điểm thu bất kỳ (j)
còn lại và có thể bỏ đi Thật vậy, hệ rằng buộc có thể viết dạng (2.5).
Giả sử ta cộng các phơng trình từ thứ (m+1) tới thứ (m+n) rồi trừ đi tổng cácphơng trình từ thứ (2) tới thứ (m) thì ta đợc phơng trình thứ (1) Do đó số phơngtrình cực đại của hệ (2.2), (2.3) không quá m + n-1
Một phơng án đạt cực tiểu (2.6) gọi là phơng án tối u
Một phơng án X gọi là phơng án cơ sở nếu vector cột Pij của ma trận A tơngứng với các xij > 0 là độc lập tuyến tính
n j ij
n
i j
a b
a
n j
m i
x
n j
b
x
m i
a
x
1 1 1
1
) (
;
0
,
) 4 2 ( ,
1
; , 1 ,
0
) 3 2 ( ,
1 ,
) 2 2 ( ,
1 ,
) 5 2 ( )
(
.
) 2 ( ) 1 (
.
) (
.
.
) 2 (
.
) 1 (
.
2 1
2 2
2 2 1
1 1
2
1 1
2 1
2 2
2 2 2
1 1
b x
x x
b x
x
a x
x
x x
x
n mn
n n
m m
m mn
m m n
) 7 2 ( ) 6 2 ( ,
min
X P AX X C
Trang 18Vì vậy miền rằng buộc là khác rỗng và giới nội (đa diện lồi) Đa diện này có 1
số hữu hạn đỉnh Theo thuật toán đơn hình, xuất phát từ một phơng án cực biên, saumột số hữu hạn bớc ta phải đi tới một phơng án cực biên tối u
Định nghĩa 2:
- Một ô (i,j) mà xij gọi là ô sử dụng
- Tập các ô sau đợc gọi là một dây truyền trong T
Ngợc lại là thoái hóa nếu G m+n-1
- Nếu một tập hợp con thực sự của G lập thành chu trình thì ta có một chutrình con của G
Định lý 2.2: Hệ thống vector Pij của BTVT là độc lập tuyến tính khi và chỉ khicác ô tơng ứng với các vector của hệ thống không tạo thành chu trình
n j j
a S
0
n j m i S
b a
x ij i j , 1 , ; 1 ,
n j b S
a b S
b a x
m i
a S
b a S
b a x
j
m i i j m
i
j i m
i ij
i
n j j i n
j
j i n
j ij
, 1 ,
, 1 ,
1 1
1
1 1
Trang 19Chứng minh: Cần Ký hiệu Pij = { Pij (i,j) G} Giả sử Pij là hệ độc lập tuyếntính, ta phải chứng minh G không lập thành chu trình.
Bằng phản chứng, nếu có một chu trình tạo nên bởi các ô tơng ứng với một sốvector của hệ Pij thì nó có dạng:
Nếu hệ Pij phụ thuộc tuyến tính, tức là có một tổ hợp tuyến tính của các vector
Pij bằng 0 Điều đó có nghĩa là trong thành phần của tổ hợp này ngoài vector dạng
Pi1j1, phải có các vector Pi1jk và vector Piej1 Nhng điều đó chứng tỏ rằng các ô {(i,j)}tơng ứng với hệ thống Pij lập thành chu trình
Điều này trái với giả thiết Vậy hệ Pij là độc lập tuyến tính
Hệ quả: Vector X là phơng án cực biên khi và chỉ khi tập các ô sử dụng tơng
ứng không lập thành chu trình
Chứng minh: Coi BTVT là một QHTT thì X là phơng án cực biên khi và chỉ
khi các vector Pij ứng với xij > 0 là độc lập tuyến tính, theo định lý 2.2 thì điều đóxẩy ra khi và chỉ khi tập các ô sử dụng tơng ứng không lập thành chu trình
Định lý 2.3: Giả sử X là một phơng án của BTVT và tập G của nó lập thành
chu trình, thế thì bao giờ cũng có thể điều chỉnh đợc X để chuyển sang một phơng
án mới X’ không xấu hơn mà tập G’ không lập thành chu trình
Chứng minh:
Giả sử K là một chu trình nào đó của G ta phân ra trong K tập các ô chẵn K+
và tập các ô lẻ K- (xen kẽ nhau) Không giảm tổng quát có thể coi:
(nếu không ta quy ớc lại các ô chẵn và lẻ trên K)
Ký hiệu: = min{xij(i,j) K- } (2.12)
Ta chuyển X X’ nh sau:
Trang: 19
) 11 2 (
_
) , ( ) , (
c
j ij j
ij
) 13 2 ( )
, ( , ) , ( , ) , ( ,
K j i x
K j i x x
ij ij
ij
n j
b x
m i
a x
j i x
' 1 ' '
, 1 ,
, 1 ,
) , ( ,
0
Trang 20Rõ ràng X’ vẫn còn là phơng án của BTVT vì rằng:
Vì mỗi hàng hay cột chỉ chứa 2 ô sử dụng nên và (-) triệt tiêu nhau
Hàm mục tiêu không tăng vì
Do phép biến đổi (2.13) và xác định bởi (2.12), sẽ có một ô thuộc K- trớc
đây xij > 0 bây giờ x’ij = 0 Ta loại ô đó ra khỏi G’ do đó khỏi K và phá đợc chutrình K Nếu còn chu trình nào khác ta lại phá bằng cách tơng tự Vì vậy ta luôn cóthể giả thiết rằng phơng án đang xét có các ô sử dụng không lập thành chu trình
Hệ quả: Mọi phơng án X đều có thể chuyển về phơng án cức biên X’ không xấu hơn X
ợc 1 hàng (hoặc cột), lần cuối cùng bỏ cả cột n và hàng m, nên phơng án thu đợc
có không quá m + n - 1 ô sử dụng, không lập thành chu trình, tức là có phơng áncực biên
Phơng pháp cớc phí tối thiểu trong toàn bảng
) , ( ) (
' ,
) , (
' )
, (
K
x c K
c x
c x
c X
C
ij ij j
i ij ij
Trang 21Quá trình biến đổi và phân phối hoàn toàn giống nh phơng pháp trên chỉ khác làtrong mỗi bớc ta không chọn ô ở góc tây bắc mà chọn ô có cớc phí nhỏ nhất trongtoàn bảng.
Phơng pháp cực tiểu cớc phí theo hàng
Bắt đầu từ hàng 1: Giả sử c1s = min cik, k = 1, , n
Phân phối xis = min(a1, bs)
Nếu x1s = a1 thì xóa dòng 1 rồi tiếp tục quá trình từ dòng 2, b’s = bs - x1s
Nếu x1s = bs thì xóa cột s rồi tiếp tục quá trình, và lấy a’1 = a1 - x1s
Phơng pháp cực tiểu cớc phí theo cột
Tơng tự nh phơng pháp trên, nhng xuất phát từ cột thứ 1
Dùng các phơng pháp trên để tìm phơng án xuất phát, trong một số lớn các ờng hợp, số bớc lặp dẫn tới nghiệm giảm đi khá nhiều, nhất là khi giải BTVT mà số
tr-điểm phát và thu rất lớn
a) Đủ: Giả sử các số ui, vj thỏa mãn (2.14), (2.15) Ta phải chứng minh phơng
án X = (xij)mxn tơng ứng là tối u Muốn vậy, phải chứng minh:
<C, X> <C, X’> X’ = (xij)mxn (2.16)
Mặt khác do (2.14), (2.15) tức là:
ui + vj < cij với xij = 0
ui + vj = cij với xij > 0Nên ta có:
( )
u x
v x
u x
v u x
c X
f
) 18 2 ( )
( )
i i j
ij j i
i j
ij
c x
n j j j i
; , 1 ) ' ( )
Trang 22Giả sử (T) có phơng án tối u x theo định lý đỗi ngẫu bài toán (T’) có lờigiải z = (u1, ,um,v1, ,vn) tức là z Vìz là phơng án tối u, tức cũng là ph-
ơng án:
u + v cij (i,j)Mặt khác theo định lý về độ lệch bù
- Nếu ij 0, (i,j) thì phơng án đã cho là tối u
- Nếu ij > 0 với ít nhất 1 ô (i,j) thì phơng án đã cho cha tối u, ta có thể điềuchỉnh để hạ nữa hàm mục tiêu
Bớc 3: Điều chỉnh phơng án Giả sử ô vi phạm tiêu chuẩn tối u là (i,j) tức là
i*j* >0 (nếu có nhiều ô vi phạm ta chọn ô ứng với max ij với hy vọng hàm mụctiêu giảm nhanh nhất)
Trang 23Ô (i*,j*) G Bây giờ ta thêm ô (i*,j*) vào tập G Khi đó tất cả m + n ô sử dụng.
Ô (i*,j*) sẽ lập với các ô của G một chu trình K duy nhất Coi ô (i*,j*) là ô chẵn, tức
là (i*,j*) K+ Ta điều chỉnh phơng án X để nhận đợc phơng án X’ mà tập G’ khônglập thành chu trình ta loại khỏi chu trình 1 ô sử dụng ứng với cực tiểu của (4.1), giả
Nếu bài toán không thoái hóa thì sau một số hữu hạn bớc ta sẽ đi đến lời giải
Chú ý: Nếu số ô sử dụng N < m +n - 1 thì thêm (m +n -1) - N ô mới với xij =0sao cho không tạo thành chu trình
20
2 10 6
45 30 1
5 3
10
8 12 55
5 3
30 9
25 7
Kiểm tra điều kiện cân bằng thu phát:
m i i
b a
1
1
120 25 40 25 30
120 55 45 20
Trang 24u3 = c33 - v3 = 9 - 7 = 2
v4 = c34 - u3 = 7 - 2 = 5Bíc 3 TÝnh c¸c íc lîng
K: (2,2), (2,3), (3,3), (3,2)
lÎ ch½n lÎ ch½nBíc 5 Ph¸ vì chu tr×nh víi = min{xij (i,j)K-} = 5
5
5 3
25 9
25 7
Trang 25Ta có phơng án tối u là:
x12 = 20, x21 = 30, x23 = 15, x32 = 5, x33 = 25, x34 = 25
fmin = 20.2 + 30.1 + 15.8 + 5.3 + 25.9 + 25.7 = 605
2.2 Bài toán vận tải ba chỉ số(Solid Transpotion Problem)
2.2.1 Phát biểu bài toán
Một loạt sản phẩm đồng đều đợc vận chuyển từ một trong m nguồn phát tới một trong n nguồn thu Các nguồn phát có thể là các nơi sản xuất, các kho hàng,
hoặc các điểm cung cấp đợc đặc trng bởi lợng hàng phát ai,, i=1 ,m Nguồn thu là các nơi tiêu thụ, hoặc các nơi có nhu cầu đợc đặc trng bởi mức độ yêu cầu bj,
j=1, ,n.
Đặt e k , k=1, ,l là số lợng sản phẩm có thể vận chuyển đợc bởi một trong l
phơng án khác nhau hay các phơng tiện vận chuyển khác nhau
cijk 0 là chi phí vận chuyển một đơn vị sản phẩm từ trạm phát i tới trạm thu
j bằng phơng tiện k.
Mục đích đặt ra của bài toán là cần xác định tất cả các lợng sản phẩm x iịk đợc vận chuyển từ tất cả các nguồn phát i tới tất cả các nguồn thu j bởi mỗi phơng thức vận chuyển k để cho tổng chi phí vận chuyển là nhỏ nhất.
Về mô hình toán học bài toán STP đợc phát biểu nh sau:
Xác định các số xijk 0 thoả hàm mục tiêu và các ràng buộc sau:
Với các ràng buộc:
toán vận tải hai chỉ số thông thờng TP (Transport Problem) nếu chúng ta chỉ nghiên cứu trong một phơng thức vận chuyển duy nhất (l=1).
2.2.2 Một số định nghĩa cơ bản
i) Một bộ giá trị {xijk} i=1, , m, j=1, , n, k=1, , l thoả mãn các ràng buộc
đợc gọi là một phơng án của bài toán
ii) Một phơng án mà hệ thống các vector hệ số ứng với các toạ độ dơng độclập tuyến tính gọi là 1 phơng án tựa (phơng án cực biên)
iii) Một phơng án tựa mà số các toạ độ dơng đúng bằng hạng của ma trận hệ
số gọi là một phơng án tựa không suy biến
iv) Một phơng án làm cực tiểu hàm chi phí đợc gọi là một phơng án tối u
1 1 min
n j
l k ijk ijk x c
1 1 1
20 2 min
l k
e x
n j
b x
m i
a x
ijk
k m
i
n j
ijk
j m
i
l k
ijk n
j
l k
i ijk
, ,
; 0
, 1
;
, 1
;
, 1
;
Trang 26v) Ta gọi một tập hợp các ô (i,j,k) tạo thành một vòng nếu các vector hệ số Pijk
tơng ứng là phụ thuộc tuyến tính, nhng nếu bớt đi một vector thì chúng trở thành
độc lập tuyến tính Các ô(i,j,k) đó gọi là đỉnh của vòng
vi) Một tập hợp các ô (i,j,k) không tạo thành vòng nếu các vector hệ số Pijk
2.2.3 Điều kiện để bài toán có phơng án
Định lý: Điều kiện cần và đủ để bài toán có phơng án là:
j j m
i
a
1 1
1
A e b
a
m i
n j
l k k j
1 1 1
e b a
n j
l k ijk l
k k l
k
m i
n j ijk
m i
n j
l k ijk n
j j n
j
m i
l k ijk
m i
n j
l k ijk m
i i m
j
n j
l k ijk
x e
x
x b
x
x a
x
1 1 1 1
1 1 1
1 1 1 1
1 1 1
1 1 1 1
j j m
i
a
1 1
1
Trang 27Cố định chỉ số i=i0
Tơng tự nh vậy đpcm
Số phơng trình đôc lập tuyến tính của bài toán là m+ n+ l- 2
2.2.4 Xây dựng phơng án xuất phát
Trong bài toán này ta sử dụng phơng pháp góc Tây Bắc
Ta bắt đầu phân phối vào ô (1,1,1) lợng sản phẩm:
rst =max ijk : (i,j,k) T 0
Tìm các hệ số: yijk với (i,j,k) T thoả
Xác định hằng số biến đổi:
Trang: 27
2
0 0
A
e b a
x i jk i j k
0 2
n k k j i n
j
l k
k j i n
j
l k jk
A
e b a A
e b a
k j i
ijk ijk Y P
, ,
efg
y y
x y
x h
j i h
T k
j i hy
x
t s r u T k
j i x
ijk ijk
, , ,
, , ,
, , ,
, '
'
l k w n j v m
i 1 , ; j, 1 , , k, 1 ,
Trang 3110 -14 -17 0 -9
Nhìn vào bảng delta 7, ta thấy các giá trị đều nhỏ hơn hoặc bằng 0, do đó ta có
phơng án tối u là: x111= 6, x143=5, x213=1, x222=4, x233=3, x242=8, x321=4, x333=6
Giá trị của hàm mục tiêu tơng ứng với phơng án tối u trên là 115
2.3 Bài toán vận tải ba chỉ số có hạn chế khả năng thông qua
2.3.1 Phát biểu bài toán
Bài toán vận tải ba chỉ số có hạn chế khả năng thông qua đợc phát biểu tơng tự
nh bài toán không hạn chế khả năng thông qua nhng có thêm lợng hạn chế d ijk ở
mỗi ô Về mô hình toán học bài toán đợc phát biểu nh sau:
Với các ràng buộc:
2.3.2 Điều kiện để bài toán có phơng án
Điều kiện cần nhng không đủ để bài toán là giải đợc là:
2.3.3 Thuật toán
Ta có thể giải tơng tự nh trong quy hoặc tuyến tính với các biến bị chặn trên
Nội dung:
- Xây dựng phơng án cực biên xuất phát xijk thoả mãn các rằng buộc Đặt
T={(i,j,k): xijjk là cơ sở} Phân loại các ô không thuộc T thành hai loại
T0= {(i,j,k) T : xijk = 0} và Td = {(i,j,k) T : xijk = 0}
- Tính các thế vị: Tìm hệ thống số ui (i=1, , m), vj, (j=1, , n) và
wk (k=1, , l) thoả mãn ui + vj + wk = cijk với mọi (i,j,k) T
- Kiểm tra điều kiện tối u: Tính c’ijk = cijk - (ui + vj + wk) với mọi
(i,j,k) T T0 và c’ijk = ui + vj + wk - cijk với mọi (i,j,k) Td Nếu c’ijk 0
với mọi ô (i,j,k) thì dừng: bài toán đã giải song Nếu trái lại, chuyển sang bớc
j l
k
ijk ijk x c
i d
x
l k
e x
n j
b x
m i
a x
ijk ijk
k m
i
n j
ijk
j m
i
l
n j
l
, ,
; 0
, , 1
;
, , 1
;
, , 1
b d
b e
b a
j m
i n
n j j i
, 1 ,
1 1
)21 2(
ijk ijk x
Trang 32c’rst = min{ c’ijk : (i,j,k) T} < 0
Tìm các hệ số yijk với (i,j,k) T thoả mãn
trong đó Pijk là vector điều kiện của bài toán
Xác định hắng số biến đổi: h = min(h1, h2) với
ijk
ijk rst
ijk ijk
ijk rst
T t s r y
y
x h
x
h
T t s r y
y
x h
: min
,
) , , ( 0
: min ,
2 1
0 2
nếu
rst T
k j i
ijk ijk y P
) , , (
rst
ijk ijk
ijk ijk
T t s r h
x
T t s r h
x
T k j i hy x
t s r T k j i x
x
) , , (
) , , (
) , , (
) , , ( )
, , (
0 '
'
nếunếu