Trong lý thuyết tối ưu ta gặp một lớp bài toán mà đối tượng của nó không thể chia cắt nhỏ tuỳ ý, trong lớp bài toán này tất cả hoặc một bộ phận các biến chỉ nhận giá trị nguyên, đó là bà
Trang 1Mục Lục Nội dung Trang
Mở đầu 2
Chương 1: Các kiến thức bổ trợ 1.1 Bài toán quy hoạch tuyến tính tổng quát 5
1.2 Thuật toán đơn hình giải bài toán quy hoạch tuyến tính 7
1.3 Thuật toán đơn hình đối ngẫu giải bài toán quy hoạch tuyến tính chính tắc 9 Chương 2: Bài toán quy hoạch nguyên tuyến tính 2.1 Bài toán tối ưu rời rạc 19
2.2 Một số thuật toán giải bài toán quy hoạch nguyên tuyến tính 26
Chương 3: Bài tập vận dụng 3.1 Bài tập vận dụng thuật toán cắt Gomory 50
3.2 Bài tập vận dụng thuật toán Land - Doig 58
3.3 Bài tập đưa bài toán về bài toán cái túi để giải 64
Tài liệu tham khảo 74
Trang 2Lời Nói đầu
1 Lí do chọn đề tài
Tối ưu hoá là một lĩnh vực toán học nghiên cứu lý thuyết về thuật toán giải các bài toán cực trị Nó là một phần kiến thức không thể thiếu được cho những người làm việc trong các lĩnh vực ứng dụng của khoa học và kỹ thuật Trong lý thuyết tối ưu, một trong những lớp bài toán đầu tiên được nghiên cứu trọn vẹn cả
về phương diện lý thuyết lẫn thuật toán là bài toán quy hoạch tuyến tính Ngay từ khi ra đời, quy hoạch tuyến tính đQ chiếm một vị trí hết sức quan trọng; nó là môn toán ứng dụng rất cần thiết đối với sinh viên thuộc nhiều ngành học khác nhau Các thuật toán giải bài toán quy hoạch tuyến tính không những giúp giải quyết các bài toán quy hoạch tuyến tính tổng quát cỡ lớn mà nó còn là điểm xuất phát quan trọng trong việc nghiên cứu lý thuyết giải các bài toán tối ưu tổng quát
Trong lý thuyết tối ưu ta gặp một lớp bài toán mà đối tượng của nó không thể chia cắt nhỏ tuỳ ý, trong lớp bài toán này tất cả (hoặc một bộ phận) các biến chỉ nhận giá trị nguyên, đó là bài toán quy hoạch nguyên Trong bài toán quy hoạch nguyên, nếu hàm mục tiêu và hệ ràng buộc là các hàm tuyến tính thì ta có bài toán quy hoạch nguyên tuyến tính Đối với các bài toán quy hoạch nguyên tuyến tính, các thuật toán giải bài toán quy hoạch tuyến tính tổng quát cơ bản hầu hết không thể sử dụng được nữa do yêu cầu về tính nguyên của các biến số Năm 1958 Gomory (nhà toán học người mỹ) đQ công bố thuật toán cắt nối tiếng
để giải bài toán quy hoạch nguyên tuyến tính mở đầu cho sự ra đời và phát triển của lý thuyết bài toán quy hoạch nguyên Tiếp đó, một số kết quả nghiên cứu về tập nghiệm và lời giải cho lớp bài toán này lần lượt được ra đời Tuy xuất hiện sau thuật toán đơn hình giải bài toán quy hoạch tuyến tính gần ba thập kỷ nhưng các thuật toán giải bài toán quy hoạch nguyên tuyến tính đQ có những đóng góp không nhỏ cho lĩnh vực nghiên cứu lý thuyết tối ưu tổng quát
Bài toán quy hoạch nguyên tuyến tính là phần kiến thức khá mới mẻ đối với sinh viên sư phạm toán Với mong muốn khai thác sâu kiến thức môn quy hoạch tuyến tính nói riêng; mở rộng tầm hiểu biết của bản thân về tri thức toán
Trang 3nói chung, việc nghiên cứu lý thuyết bài toán quy hoạch nguyên tuyến tính là hết sức cần thiết
Vì những lý do trên chúng tôi chọn "Về bài toán quy hoạch nguyên tuyến tính" làm đề tài nghiên cứu
2 Mục đích nghiên cứu
Hệ thống lại một cách chi tiết các vấn đề lý thuyết về bài toán quy hoạch nguyên tuyến tính; xây dựng hệ thống bài tập vận dụng, để từ đó thấy được tầm quan trọng và tính thiết thực của lý thuyết bài toán quy hoạch nguyên tuyến tính
đối với các lĩnh vực khoa học kỹ thuật, các hoạt động thực tiễn của đời sống xQ hội
3 Nhiệm vụ nghiên cứu
• Nghiên cứu các kiến thức liên quan đến bài toán quy hoạch tuyến tính tổng quát, một số thuật toán giải bài toán quy hoạch tuyến tính
• Nghiên cứu các phương pháp giải bài toán quy hoạch nguyên tuyến tính
• Nghiên cứu một số bài tập vận dụng phương pháp giải bài toán quy hoạch nguyên tuyến tính
4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Lý thuyết tối ưu hoá
Phạm vi nghiên cứu: Nghiên cứu lý thuyết bài toán quy hoạch nguyên tuyến tính
5 Phương pháp nghiên cứu
• Phương pháp nghiên cứu lý luận: Đọc các tài liệu về môn quy hoạch tuyến tính, các tài liệu liên quan đến tối ưu hoá, các khoá luận tốt nghiệp về quy hoạch tuyến tính của các khoá trước ở trường Đại học Hùng Vương
• Phương pháp lấy ý kiến chuyên gia: Tham khảo ý kiến của giảng viên hướng dẫn và các giảng viên dạy tối ưu hoá; quy hoạch tuyến tính của trường
• Phương pháp tổng kết kinh nghiệm: Tổng kết kinh nghiệm của bản thân qua quá trình học học phần quy hoạch tuyến tính và của các bạn sinh viên
đQ học tối ưu hóa của các lớp sư phạm và các lớp quản trị kinh doanh trong trường
Trang 46 ý nghĩa khoa học và thực tiễn
Sản phẩm khoa học: Hệ thống lại một số kiến thức của lý thuyết tối ưu tuyến tính, giới thiệu một số thuật toán giải bài toán quy hoạch nguyên tuyến tính, xây dựng hệ thống bài tập vận dụng lý thuyết đQ xây dựng
Sản phẩm thực tiễn: Khóa luận là tài liệu tham khảo cho sinh viên toán, tin học
và sinh viên các ngành kinh tế, quản trị kinh doanh
7 Bố cục khoá luận
Khóa luận gồm 74 trang, ngoài phần mục lục, mở đầu, kết luận và tài liệu tham khảo nội dung chính của khoá luận bao gồm 3 chương
Chương 1 Các kiến thức bổ trợ
1.1 Bài toán quy hoạch nguyên tuyến tính tổng quát
1.2 Thuật toán đơn hình giải bài toán quy hoạch tuyến tính
1.3 Thuật toán đơn hình đối ngẫu giải bài toán quy hoạch tuyến tính
chính tắc
Chương 2 Bài toán quy hoạch nguyên tuyến tính
2.1 Bài toán tối ưu rời rạc
2.2 Một số thuật toán giải bài toán quy hoạch nguyên tuyến tính
• Thuật toán cắt của Gomory
• Phương pháp nhánh cận (Thuật toán Land - Doig)
• Phương pháp phương trình truy toán của quy hoạch động giải bài toán cái túi
Chương 3 Bài tập vận dụng
3.1 Bài tập vận dụng thuật toán cắt của Gomory
3.2 Bài tập vận dụng thuật toán Land - Doig
3.3 Bài tập đưa bài toán về bài toán cái túi để giải
Trang 5CH¦¥NG 1 C¸C KIÕN THøC Bæ TRî
1.1 Bµi to¸n quy ho¹ch tuyÕn tÝnh tæng qu¸t
1.1.1 Bµi to¸n quy ho¹ch tuyÕn tÝnh tæng qu¸t
T×m vect¬ x=( , , , )x x1 2 x n sao cho hµm f(x) =
1
n
j j j
2 1
3 1
n
ij j i j
n
ij j i j
Trong bµi to¸n trªn:
• f ®−îc gäi lµ hµm môc tiªu
• Mçi hÖ thøc ë (1.1), (1.2), (1.3), (1.4), (1.5), (1.6) gäi lµ mét rµng buéc
• Mçi rµng buéc (1.1), (1.2), (1.3) gäi lµ rµng buéc c−ìng bøc (hay c¬ b¶n)
• Rµng buéc (1.4), (1.5), (1.6) gäi lµ rµng buéc tù do (hay rµng buéc dÊu) + Mçi vect¬ x=( , , , )x x1 2 x n ∈ Rn tho¶ mQn mäi rµng buéc cña bµi to¸n gäi lµ mét ph−¬ng ¸n TËp hîp tÊt c¶ c¸c ph−¬ng ¸n (ký hiÖu D) gäi lµ miÒn rµng
Trang 6buộc hay miền chấp nhận được Phương án làm cho hàm mục tiêu đạt cực tiểu hoặc cực đại được gọi là phương án tối ưu hay một lời giải của bài toán đQ cho
+ Giải bài toán quy hoạch tuyến tính là tìm phương án tối ưu của bài toán (có thể là phương án tối ưu duy nhất hoặc vô số phương án tối ưu) hoặc chứng tỏ bài toán vô nghiệm
1.1.2 Một số kí hiệu quy ước
a) Nếu A là ma trận cỡ (m,n) thì Ai =(ai1,ai2, ,ain) là vectơ dòng (ma trận dòng) thứ i (i = 1,2, , m) của A; Aj = (a1j, a2j, ,amj) là vectơ cột (ma trận cột) thứ j (j = 1,2, ,n) của A
b) At là ma trận chuyển vị của A
c) Nếu A = (aij) và B = (bij) là hai ma trận cùng kiểu thì bất đẳng thức ma trận
A ≥ B được hiểu là aij ≥ bij với ∀ i,j
Đặc biệt với vectơ (ma trận) x=( , , , )x x1 2 x n thì x ≥ 0 được hiểu là xj ≥ 0 ∀ j
d) Mỗi vectơ được xem như ma trận cột trong các phép tính ma trận ( nếu
không nói gì thêm hoặc không có quy ước gì khác)
e) Biểu thức tích vô hướng của hai vectơ x=( , , , )x x1 2 x n ; y = (y1, y2, , yn)
được viết: (x, y) =
1
n
j j j
Trang 71 2 1 2
, , 0, ,
i i j j
1.2 Thuật toán đơn hình giải bài toán quy hoạch tuyến tính
Xét bài toán quy hoạch tuyến tính chính tắc (bài toán I)
Trang 8a) Nếu ∆ ≤j 0 ∀ j ∈ J thì x0 là phương án tối ưu Thuật toán kết thúc b) Nếu ∃ ∆j > 0 thì chuyển sang bước hai
b) Nếu với mỗi j ∉J B mà ∆j > 0 đều tồn tại ít nhất một hệ số a ij >0
thì tiến hành tìm phương án cực biên mới tốt hơn với cơ sở
Trang 9Phần tử nằm trên giao của dòng xoay và cột xoay của bảng đơn hình được gọi là phần tử xoay
chấp nhận được x sang phương án cơ sở chấp nhận được x: Bảng đơn hình tương ứng với x (gọi tắt là bảng mới) có thể thu được từ bảng đơn hình tương ứng với x (gọi tắt là bảng cũ) theo các quy tắc biến đổi sau đây: a) Các phần tử ở vị trí dòng xoay trong bảng mới (a rj) bằng các phần
tử tương ứng trong bảng cũ chia cho phần tử xoay: rj rj ,
Trang 10Định nghĩa : Ta gọi B là cơ sở chấp nhận được gốc nếu phương án cơ sở
tương ứng với nó là phương án chấp nhận được của bài toán gốc, (tức là nếu
Nếu phương án cơ sở tương ứng với B là phương án tối ưu thì B sẽ được gọi là cơ sở tối ưu
Như vậy nếu B là cơ sở chấp nhận được đối ngẫu thì phương án cơ sở đối ngẫu tương ứng với nó y=(A B t)ư1c B phải thoả mQn tất cả các ràng buộc của bài toán đối ngẫu t
1.3.2 Thuật toán đơn hình đối ngẫu khi đã biết cơ sở chấp nhận được đối ngẫu
Trang 11XÐt bµi to¸n quy ho¹ch tuyÕn tÝnh d¹ng chÝnh t¾c
Trang 12Do B là một cơ sở chấp nhận được đối ngẫu nên ∆ ≤j 0 ∀ j =1,n
Các bước của thủ tục đơn hình đối ngẫu
Bước 1: Kiểm tra tiêu chuẩn tối ưu Cơ sở đang xét sẽ là tối ưu nếu mọi
thành phần b i, i= 1,m của cột giả phương án đều không âm vì khi đó cơ sở đang xét sẽ chấp nhận được gốc và vì thế nó là tối ưu
• Nếu b i ≥0 ∀ i=1,m thì giả phương án (xB, xN) là một phương án tối ưu Thuật toán kết thúc
• Nếu ∃ i, i=1,m mà b i< 0 thì ta tìm b r = min{b i,i= 1,m}
Nếu có nhiều chỉ số cùng đạt cực tiểu thì chọn r là một chỉ số tuỳ ý trong số đó
Bước 2: Kiểm tra điều kiện để tập phương án của bài toán là không rỗng: nếu có
1,
i= m mà b i< 0 thì trên dòng i phải tồn tại ít nhất một phần tử a ij <0
• Nếu có dòng ứng với b i< 0 (i = 1,2, ,m) mà a ij ≥ 0 ∀ j= 1,n Khi đó bài toán gốc (P) không có phương án
Thật vậy Giả sử (P) có phương án, tức là ∃ x ∈ Rn thoả mQn Ax = b, x≥ 0
Trang 13được đối ngẫu Giả sử cột As được đưa vào thay cho cột Ar, khi đó phần tử trục ars và sau khi thực hiện tính toán đổi cơ sở thì các phần tử
ở dòng ước lượng ứng với cơ sở mới sẽ là ( j rj s)
rs
a a
=
Giả sử cơ sở chấp nhận được đối ngẫu là chưa biết Tuy vậy ta có thể tìm
được cơ sở B của ma trận A Không giảm tổng quát ta coi rằng B = {A1, A2, ,
Am} Giả sử cơ sở B không phải là cơ sở chấp nhận được đối ngẫu (có thể nó cũng không chấp nhận được gốc)
Đưa thêm vào một biến giả x0 ≥ 0 với hệ số hàm mục tiêu c0 = 0, và thêm vào hệ ràng buộc của bài toán xuất phát một ràng buộc giả sau:
x0 + xm +1 + + xn = M
trong đó (xm+1, , xn) là vectơ các biến phi cơ sở, còn M là một số dương lớn hơn bất kỳ một số cụ thể nào cần so sánh với nó Bài toán thu được ta sẽ gọi là
Trang 14bài toán mở rộng Đối với bài toán mở rộng ta có một cơ sở của nó là
1
0
Giả sử ∆s = max {∆j; j= 1,n } Do B⌢ không phải là cơ sở chấp nhận được
đối ngẫu của bài toán nên ∆s> 0 Thực hiện một phép biến đổi đơn hình với phần
tử xoay a0s (nghĩa là đưa biến xs vào cơ sở còn đưa x0 ra khỏi cơ sở) ta sẽ đi đến bảng đơn hình mới mà trong đó tất cả các phần tử của dòng ước lượng ∆j; j= 1,n
đều là không dương tức là thu được bảng đơn hình đối ngẫu với cơ sở chấp nhận
được đối ngẫu nên ta có thể tiến hành thủ tục đơn hình đối ngẫu với cơ sở chấp nhận được đối ngẫu để giải bài toán mở rộng
Thuật toán đơn hình đối ngẫu giải bài toán mở rộng sẽ kết thúc ở một trong các trường hợp sau
Trang 151) Bài toán mở rộng không có phương án Khi đó bài toán xuất phát cũng không có phương án Thật vậy, nếu bài toán xuất phát có phương án chấp nhận được x = (x1, x2, , xn) thì rõ ràng x = (x0, x1, , xn) với x0 = M -
xm+1 - - xn cũng là một phương án của bài toán mở rộng
2) Bài toán mở rộng có phương án tối ưu x = ( , , , x x0 1 xn) và x0 là biến cơ
sở Trong trường hợp này hàm mục tiêu của bài toán không phụ thuộc vào
M, do đó ( , , )x1 x n là phương án tối ưu của bài toán ban đầu
3) Bài toán mở rộng có phương án tối ưu x = ( x x0, 1, , xn)và x0 không là biến cơ sở Trong trường hợp này các biến cơ sở sẽ phụ thuộc vào M Có hai khả năng xảy ra
• Nếu giá trị hàm mục tiêu của bài toán mở rộng phụ thuộc vào M thì khi M → ∞ giá trị hàm mục tiêu sẽ dần đến ∞.Trong trường hợp này bài toán xuất phát có phương án chấp nhận được nhưng hàm mục tiêu không bị chặn dưới nên bài toán không có lời giải
• Nếu giá trị hàm mục tiêu của bài toán mở rộng không phụ thuộc vào M thì bài toán xuất phát có phương án tối ưu và có thể chấp nhận được nó bằng cách bỏ x0 và giảm dần giá trị M cho đến khi có một trong các x1, x2, , x n trở thành 0
1.3.4 áp dụng thuật toán đơn hình đối ngẫu để giải bài toán quy hoạch tuyến tính với số ràng buộc tăng dần
Xét bài toán quy hoạch tuyến tính (I):
Giả sử ta đQ giải bài toán (I) bằng thuật toán đơn hình và thu được phương
Trang 16Bây giờ bổ sung vào hệ ràng buộc của bài toán một phương trình:
x thoả mQn ràng buộc ( 1.8) thì nó vẫn là phương án tối ưu của bài
toán có ràng buộc bổ sung này Giả sử *
x không thoả mQn ràng buộc bổ sung, tức là:
Đưa thêm vào biến phụ xn+1 ≥ 0 chuyển ràng buộc (1.8) về dạng đẳng
Trang 17§èi víi bµi to¸n bæ sung c¬ së cña nã lµ 1 2 1
ë trªn ®−îc gäi lµ " kÜ thuËt t¸i tèi −u ho¸"
Trang 18Kết luận chương 1
Chương 1 đQ trình bày một số vấn đề cơ sở của lý thuyết tối ưu: bài toán quy hoạch tuyến tính tổng quát, thuật toán đơn hình gốc giải bài toán quy hoạch tuyến tính, thuật toán đơn hình đối ngẫu giải bài toán quy hoạch tuyến tính Đây
là các nội dung cơ bản làm cơ sở để tiến hành nghiên cứu các thuật toán giải bài toán quy hoạch nguyên tuyến tính ở chương 2
Trang 19
Chương 2 bài toán quy hoạch nguyên tuyến tính 2.1 Bài toán tối ưu rời rạc
2.1.1 Xây dựng mô hình tối ưu rời rạc
Trước tiên chúng ta bàn về những nguyên nhân dẫn đến tính rời rạc của biến số trong việc xây dựng mô hình tối ưu hoá cho các bài toán thực tế
Một trong những nguyên nhân đầu tiên dẫn đến tính rời rạc của biến số là tính không chia cắt được của đối tượng nghiên cứu Ngoài ra, trong nhiều bài toán thực tế chính do cấu trúc tổ hợp ban đầu của bài toán mà các biến số chỉ có thể nhận các giá trị rời rạc Cuối cùng, tính rời rạc của các biến số có thể xuất hiện từ tính không liên tục, đa cực trị của hàm mục tiêu của bài toán Ta sẽ minh hoạ cho các vấn đề vừa bàn tới ở các ví dụ sau này
Mô hình bài toán tối ưu rời rạc tổng quát
Bài toán tối ưu rời rạc tổng quát có thể phát biểu như sau:
g x i( )=0,i=1, 2, ,m1, (2.2)
g x i( ) ≤ 0,i = m1+ 1, ,m (2.3)
Trang 20xj - nguyên, j=1,2, ,n1 (2.4)
Khi đó bài toán (2.1) - (2.4) được gọi là bài toán quy hoạch nguyên
Nếu n1 =n ta có bài toán quy hoạch nguyên hoàn toàn, còn nếu n1<n ta
có bài toán quy hoạch nguyên bộ phận
Một trường hợp riêng quan trọng của bài toán quy hoạch nguyên là bài toán quy hoạch nguyên tuyến tính thu được từ bài toán tổng quát khi các hàm
( )
f x và g x i( ) (i = 1,2, ,m) là tuyến tính
2.1.2 Một số tình huống thường gặp khi xây dựng các mô hình thực tế của tối ưu rời rạc
2.1.2.1 Bài toán điều kiện không chia cắt được
Trong việc mô hình hoá nhiều vấn đề ứng dụng, từ ý nghĩa thực tế các biến số phải nhận giá trị nguyên Chẳng hạn, xét bài toán lập kế hoạch sản xuất với sản phẩm cuối cùng là không chia cắt được Một nhà máy có khả năng sản xuất n loại sản phẩm Để sản xuất các loại sản phẩm này cần sử dụng m loại nguyên liệu Biết
aij (i=1, ;m j =1, )n - chi phí nguyên liệu loại i để sản xuất ra một sản phẩm loại j
b i (i= 1, )m - dự trữ nguyên liệu loại i của nhà máy ;
c j ( j= 1,n) - tiền lQi từ việc bán một sản phẩm loại j;
Nếu như sản phẩm được sản xuất với số lượng lớn (ví dụ như bi xe đạp hay nan hoa xe đạp) thì việc bỏ qua tính nguyên của biến số không dẫn đến những sai lệch đáng kể Thế nhưng nếu sản phẩm được sản xuất với số lượng không lớn
và giá trị một sản phẩm là cao (ví dụ cỗ máy kéo), thì tính nguyên của biến số
Trang 21không thể bỏ qua Ta thu được mô hình toán học của bài toán là bài toán quy hoạch nguyên tuyến tính sau:
1
n
j j j
2.1.2.2 Bài toán với điều kiện logic
Xét điều kiện logic dưới dạng ″ hoặc là - hoặc là″ Những điều kiện như vậy thường gặp khi chúng ta phải lựa chọn các phương án sản xuất, xây dựng Ví
dụ, khi phải quyết định áp dụng các phương thức sản xuất mới vào sản xuất chúng ta thường gặp tình huống sau: hoặc là không sản xuất sản phẩm j (x j= 0) hoặc là nếu chấp nhận sản xuất nó thì phải sản xuất với số lượng không ít hơn d j
(d j là số lượng sản phẩm loại j tối thiểu cần sản xuất để bù lại được những chi phí cần bỏ ra khi đưa phương thức sản xuất sản phẩm mới này vào hoạt động ) Tức là chúng ta gặp phải điều kiện ″ hoặc là x j = 0, hoặc là x j ≥d j ″ Giả sử biết cận trên p j của biến x j trong bài toán đang xét Khi đó đưa vào biến logic
2.1.2.3 Bài toán với biến số rời rạc
Trong thực tế có trường hợp biến số chỉ nhận một số giá trị nhất định:
Trang 22x j∈ =Q j {q q1j, 2j, ,q mj}
Ví dụ nếu x j là quy mô công suất của nhà máy điện cần xây dựng ở địa
điểm j, thì Q j là tập các quy mô công suất tiêu chuẩn
Bằng cách đưa vào các biến phụ t ij ràng buộc nói trên là tương đương với hệ
1
m
j ij ij i
m i
2.1.2.4 Bài toán với chi phí cố định
Trong nhiều bài toán thực tế hàm mục tiêu f x( )có dạng
Trang 23Giả sử biết p j là cận trên của biến x j trong bài toán tối −u hoá
2.1.3 Một số mô hình phổ biến của tối −u rời rạc
Trong phần này ta trình bày một số mô hình đQ đóng vai trò quan trọng trong việc phát triển lí thuyết tối −u rời rạc đồng thời cũng là những mô hình có nhiều ứng dụng rộng rQi trong thực tế của tối −u rời rạc
2.1.3.1 Bài toán cái túi
Một nhà thám hiểm cần đem theo một cái túi có trọng l−ợng không quá b Có
n loại đồ vật có thể đem theo Đồ vật thứ j có trọng l−ợng là a j và giá trị sử dụng là c j( j= 1,n) Hỏi rằng nhà thám hiểm cần đem theo các loại đồ vật nào và với số l−ợng là bao nhiêu để cho tổng giá trị sử dụng của các đồ đem theo là lớn nhất?
Trang 24Gọi x j là số lượng đồ vật loại j(j =1,n) mà nhà thám hiểm sẽ đem theo Khi
đó, mô hình toán học của bài toán có dạng sau:
n
j j j
2.1.3.2 Bài toán người du lịch
Một người du lịch muốn đi tham quan n +1 thành phố T T0, , ,1 T n Xuất phát từ T0 người du lịch muốn đi qua tất cả các thành phố còn lại, mỗi thành phố
đúng một lần, rồi quay trở lại thành phố xuất phát Biết c ij là chi phí đi từ thành phố T i đến thành phố T j (i =0,n, j= 0,n) hQy tìm hành trình với tổng chi phí là nhỏ nhất
và kí hiệu P P P là tập tất cả các hoán vị π = ( , , , )i i1 2 i n của n số tự nhiên 1,2, ,n
Khi đó bài toán người du lịch có thể phát biểu dưới dạng bài toán tối ưu rời rạc sau
f( ) π → min,
π ∈ PPP
2.1.3.3 Bài toán phân hoạch
Giả sử FFF = {A A1 , 2 , ,A n}là một họ các tập con của tập m phần tử X Hỏi
Trang 25(tức là các tập trong F tạo thành một phân hoạch của tập X) Không giảm tổng
quát ta coi rằng X ={1, 2, ,m} Đưa vào ma trận liên thuộc A=(a ij), với các phần tử được xác định như sau
1,
0,
j ij
j
khi i A a
neu A F x
neu nguoc lai
Một trường hợp riêng của bài toán tối ưu rời rạc là bài toán quy hoạch nguyên tuyến tính khi ta đưa thêm vào bài toán quy hoạch tuyến tính tổng quát
điều kiện các biến số là nguyên Dạng tổng quát của bài toán
Tìm vectơ x=( , , , )x x1 2 x n sao cho hàm f x( ) =
1
n
j j j
c x
=
∑ → min với hệ điều kiện
Trang 26
1 1
2 1
n
ij j i j
2.2 Mét sè thuËt to¸n gi¶i bµi to¸n quy ho¹ch nguyªn tuyÕn tÝnh
2.2.1 ThuËt to¸n c¾t Gomory
T− t−ëng cña thuËt to¸n :
XÐt bµi to¸n quy ho¹ch nguyªn tuyÕn tÝnh d¹ng chÝnh t¾c (bµi to¸n II)
Trang 27Giả sử ở bước k ta thu được phương án tối ưu xk
Nếu xk - nguyên thì xk là phương án tối ưu của bài toán (II) Thuật toán kết thúc
Ngược lại, xây dựng ràng buộc tuyến tính Lk(x) = 〈 pk, x〉 - dk ≤ 0 (2.9)
và bổ sung vào hệ ràng buộc xác định Dk (Hệ ràng buộc ở của bài toán ở bước k)
• ( )k > 0
L , nghĩa là nó phải cắt bỏ phương án tối ưu xk của bài toán
quy hoạch tuyến tính của bước trước khỏi miền ràng buộc của bài toán quy hoạch tuyến tính ở bước sau
Ràng buộc (2.9) thoả mQn hai tính chất vừa nêu sẽ được gọi là một lát cắt hợp cách Sau mỗi bước, nếu chưa gặp phương án tối ưu của bài toán (II) thì ta lại bổ sung một lát cắt hợp cách vào hệ ràng buộc của bài toán (III) để khoanh vùng tập phương án tối ưu của bài toán (III) và tìm phương án của bài toán (II)
Xây dựng lát cắt của bài toán quy hoạch nguyên tuyến tính
Giả sử ta đQ giải bài toán quy hoạch tuyến tính (III) chúng ta thu được phương án cơ sở tối ưu x* và cơ sở tương ứng với nó là B Không giảm tổng quát
ta coi rằng B = (A1, A2, , Am); trong đó A j (j= 1, )n là cột thứ j của ma trận A
Sử dụng biểu diễn biến cơ sở qua biến phi cơ sở ta có:
Trang 28( )
1
n ij
j
rj x f f
x L
Trang 29Để giải bài toán (III) với ràng buộc bổ sung (2.16) (gọi là bài toán mở rộng) ta có thể áp dụng thuật toán tái tối −u hoá Để làm việc đó ta thêm vào biến phụ xn+1 ≥ 0 chuyển ( 2.16) về dạng đẳng thức
Ví dụ: Xét bài toán quy hoạch nguyên tuyến tính
Trang 30A5
A1
A6
0 -3
[22/3]
-2/3 1/3 -5/3
0
0 -1
1
31/22 16/11 15/22
1
31/7 13/7 9/7
1
0
0
22/7 2/7 3/7
Trong phương án tối ưu các biến cơ sở đều không nguyên Ta chọn 1
13 7
b = không nguyên xây dựng lát cắt theo (2.16)
1
0
0
22/7 2/7 3/7
Trang 31Do b i kh«ng nguyªn i = 2,3,5 Ta chän 5
74
Trang 32-2
0 -1
1
Từ bảng đơn hình của bài toán mở rộng, ta giải bằng thuật toán đơn hình
đối ngẫu và thu được phương án tối ưu: *
Do D là tập hữu hạn nên bài toán đặt ra luôn có phương án tối ưu mà ta sẽ
γ sao cho việc tính nó dễ dàng hơn giải bài toán min{f x x A( ): ∈ }và sao cho
nó càng gần với giá trị tối ưu của bài toán này Rất tiếc là trong phần lớn các trường hợp hai yêu cầu này là đối lập nhau
Giả sử ta có một phân hoạch tập D thành các tập con D1(1),D2(1), ,D n(1)1 :
Trang 33
1
(1) 1
,
n i i
( )x
ε nằm trong khoảng chính xác định trước ε0 đối với bài toán cụ thể, tức là nếu
ε1( )x ≤ε0 (2.22)
thì x có thể coi là lời giải gần đúng
Định nghĩa Phương án chấp nhận được x D∈ thoả mQn f x( )ư f x( )* ≤ε
được gọi là phương án ε - tối ưu của bài toán
Còn nếu ta tìm được x D∈ sao cho
hoạch (2.19) tập D i(1)0 để điểm diện trước
Giả sử bây giờ ta lại có thêm phân hoạch tập
Trang 34i i
Th× x lµ ph−¬ng ¸n ε0 - tèi −u, thuËt to¸n kÕt thóc
Ng−îc l¹i tiÕn hµnh ph©n ho¹ch tËp D i0( )k ta thu ®−îc ph©n ho¹ch cña tËp D cho b−íc k+ 1
Chó ý: Trong qu¸ tr×nh ph©n ho¹ch tËp D i( )0k rÊt cã thÓ chóng sÏ t×m ®−îc c¸c
ph−¬ng ¸n chÊp nhËn ®−îc cña bµi to¸n KÝ hiÖu x lµ ph−¬ng ¸n chÊp nhËn ®−îc t×m ®−îc Ta sÏ gäi x lµ lêi gi¶i tèt nhÊt hiÖn cã hay gäi v¾n t¾t lµ kØ lôc, cßn gi¸
Trang 35trị f = f x( ) sẽ gọi là giá trị kỉ lục Giả sử ở bước k ta đQ có kỉ lục x, khi đó ta có
thể loại khỏi quá trình điểm diện tất cả các tập ( )k
i
D có giá trị cận dưới là lớn hơn hoặc bằng giá trị kỉ lục
Khi áp dụng sơ đồ vừa trình bày đối với một bài toán tối ưu rời rạc cụ thể ta cần phải xây dựng được hai thủ tục chính sau:
• Thủ tục phân hoạch tập D i( )0k ra thành các tập con (còn gọi là thủ tục phân nhánh);
Nếu D′=φ thì D =φ Bài toán không có phương án
Nếu tìm được phương án tối ưu 0
Trang 36min,x D x
c x c x
n
j j
min,x D x
c x c x
2 Tìm được phương án tối ưu xi nguyên, khi đó xi cũng là phương án tối
ưu của bài toán( )1
thì chỉ việc so sánh chúng để tìm ra phương án tối ưu
3 Tìm được phương án tối ưu xi không nguyên thì cận dưới
Quá trình cứ thế tiếp tục
Bước k: Giả sử bước (k - 1) ta đQ tìm được một phân hoạch của D gồm k tập:
Trang 37Thuật toán ở bước k thực hiện như sau:
Tìm kỷ lục nhỏ nhất, giả sử đó là: ( )* * 1
, s k
f x x ∈D ư
Loại bỏ tất cả các tập rỗng và các tập có cận dưới lớn hơn ( )*
f x Nếu không còn tập nào có cận dưới nhỏ hơn ( )*
Vì bản số của D là hữu hạn nên thuật toán kết thúc sau một số hữu hạn bước
Ví dụ: Giải bài toán quy hoạch nguyên tuyến tính (P) sau đây bằng thuật toán