LỜI CAM ĐOANTên tôi là: NGUYỄN VĂN PHÒNG Sinh ngày: 10/01/1987 Quê quán: Tân Phương – Thanh Thủy – Phú Thọ Nơi công tác: Trường Đại học Công nghiệp Việt Trì Tôi xin cam đoan Luận văn tốt
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
NGUYỄN VĂN PHÕNG
LẬP TRÌNH MÔ PHỎNG MỘT SỐ THUẬT TOÁN GIẢI QUY HOẠCH TUYẾN TÍNH HỖ TRỢ VIỆC
GIẢNG DẠY BỘ MÔN TỐI ƯU HÓA
LUẬN VĂN THẠC SĨ MÁY TÍNH
HÀ NỘI, 2017
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI
HỌC SƯ PHẠM HÀ NỘI 2
NGUYỄN VĂN PHÕNG
LẬP TRÌNH MÔ PHỎNG MỘT SỐ THUẬT TOÁN GIẢI QUY HOẠCH TUYẾN TÍNH HỖ TRỢ VIỆC GIẢNG DẠY BỘ
MÔN TỐI ƯU HÓA
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ MÁY TÍNH
Người hướng dẫn khoa học: TS Trần Minh Tước
HÀ NỘI, 2017
Trang 3LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu và thực hiện Luận văn Thạc sỹ, tôi
đã nhận được sự giúp đỡ, tạo điều kiện nhiệt tnh và quý báu của nhiều
cá nhân và tập thể
Trước tiên, tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS Trần MinhTước đã tận tình hướng dẫn trong suốt thời gian nghiên cứu và hoànthành luận văn này
Tôi xin chân thành cám ơn các thầy cô Khoa đào tạo Sau đại học và cácthầy cô giảng dạy đã hướng dẫn, truyền đạt trong suốt quá trình học tập
và thực hiện luận văn
Tôi cũng xin chân thành cám ơn bạn bè, đồng nghiệp thuộc lớp cao họcK19 Khoa học máy tính đã giúp tôi trong suốt quá trình học tập và hoàn thiệnluận văn này
Mặc dù tôi đã rất cố gắng hoàn thiện luận văn bằng tất cả sự nhiệt tnh
và năng lực của mình, tuy nhiên không thể tránh khỏi những thiếu sót hoặc
có những phần nghiên cứu chưa sâu Rất mong nhận được sự chỉ bảo vàthông
cảm của các Thầy cô
Trang 4N g u y ễ n V ă n P h ò n g
Trang 5LỜI CAM ĐOAN
Tên tôi là: NGUYỄN VĂN PHÒNG
Sinh ngày: 10/01/1987
Quê quán: Tân Phương – Thanh Thủy – Phú Thọ
Nơi công tác: Trường Đại học Công nghiệp Việt Trì
Tôi xin cam đoan Luận văn tốt nghiệp cao học ngành Máy tnh với đề tài
: “Lập trình mô phỏng một số thuật toán giải quy hoạch tuyến tính hỗ trợ việc giảng dạy bộ môn tối ưu hóa” là luận văn do cá nhân tôi thực hiện Các
kết quả tính toán, các mô hình không sao chép bất kỳ tài liệu nào khác
Hà Nội, ngày tháng năm 2017
Tác giả luận văn
Nguyễn Văn Phòng
Trang 7LỜI CẢM ƠN
LỜI CAM ĐOAN
MỤC LỤC
MỤC LỤC
MỞ ĐẦU
1
1 Lý do chọn đề tài 1
2 Mục đích nghiên cứu 2
3 Nhiệm vụ nghiên cứu 2
4 Đối tượng và phạm vi nghiên cứu 2
5 Dự kiến đóng góp 2
6 Phương pháp nghiên cứu
2 NỘI DUNG
3 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Bài toán quy hoạch tuyến tnh 3
1.1.1 Bài toán quy hoạch tuyến tnh 3
1.1.1.1 Một số mô hình thực tế
3 1.1.1.2 Bài toán quy hoạch tuyến tính tổng quát
6 1.1.1.3 Dạng chính tắc của bài toán quy hoạch tuyến tnh
6 1.1.1.4 Đưa bài toán quy hoạch tuyến tính về dạng chính tắc
7 1.1.2 Phương án cơ sở chấp nhận được
8 1.1.3 Tiêu chuẩn tối ưu 9
1.2 Thuật toán đơn hình giải bài toán quy hoạch tuyến tính
10 1.2.1 Thuật toán 10
1.2.1.1 Tư tưởng của phương pháp đơn hình
10 1.2.1.2 Biểu diễn qua cơ sở Dấu hiệu tối ưu 11
1.2.1.3 Công thức biến đổi, bảng đơn hình
13 1.2.2 Thuật toán đơn hình dạng bảng
14 1.2.1.1 Bảng đơn hình 14
Trang 81.2.2.2.Thuật toán đơn hình dạng bảng
14 1.3 Thuật toán đơn hình hai pha
16 1.4 Thuật toán đánh thuế
18 1.5 Tối ưu hóa rời rạc 21
1.5.1 Bài toán tối ưu rời rạc 21
1.5.2 Bài toán cái túi 22
1.5.3 Bài toán cái túi dạng 0 -1 23
Trang 91.5.4 Đưa bài toán quy hoạch tuyến tính nguyên về bài toán cái túi
24 1.5.4.1 Định lý 1.6 24
1.5.4.2 Đinh lý 1.7 25
CHƯƠNG 2: LẬP TRÌNH MÔ PHỎNG PHƯƠNG PHÁP ĐƠN HÌNH
27 2.1 Mô tả dữ liệu 27
2.1.1 Dữ liệu nhập 27
2.1.2 Đưa bài toán về dạng chính tắc 29
2.2 Lập trình mô phỏng thuật toán đơn hình gốc
31 2.2.1 Khởi tạo bài toán 31
2.2.2 Đưa bài toán về dạng chuẩn 33
2.2.3 Xây dựng bảng đơn hình 33
2.3 Lập trình mô phỏng thuật toán đơn hình hai pha
45 2.3.1 Khởi tạo bài toán 45
2.3.2 Xây dựng bài toán phụ (P) 46
2.3.3 Xây dựng bảng đơn hình ứng với pha 1 49
2.3.3 Giải bài toán pha 2 50
2.4 Lập trình mô phỏng thuật toán đơn hình đánh thuế
52 2.4.1 Khởi tạo bài toán 52
2.4.2 Xây dựng bài toán (M) 53
2.4.3 Giải bài toán (M) 55
CHƯƠNG 3: LẬP TRÌNH MÔ PHỎNG GIẢI QUY HOẠCH TUYẾN TÍNH NGUYÊN 58
3.1 Lập trình mô phỏng đưa bài toán quy hoạch tuyến tnh nguyên với các hệ số dương về bài toán cái túi
58 3.1.1 Mô tả dữ liệu 58
3.1.1.1 Dữ liệu nhập 58
3.1.1.2 Xử lý dữ liệu 59
3.1.2 Lập trình mô phỏng 62
3.1.2.1 Khởi tạo bài toán 62
3.1.2.2 Đưa bài toán về dạng chính tắc 63
3.1.2.3 Hợp nhất các ràng buộc 64
Trang 103.2 Lập trình mô phỏng thuật toán giải bài toán cái túi 67
3.2.1 Mô tả dữ liệu 673.2.1.1 Dữ liệu nhập 67
Trang 113.1.1.2 Xử lý dữ liệu 68
3.2.2 Lập trình mô phỏng thuật toán
70 3.2.2.1 Khởi tạo bài toán 70
3.2.2.2 Hiển thị mô hình bài toán cái túi 71
3.2.2.3 Giải bài toán cái túi theo từng bước
71 3.3 Lập trình mô phỏng giải bài toán cái túi 0 - 1 73
3.3.1 Mô tả dữ liệu 73
3.3.1.1 Dữ liệu nhập 73
3.3.1.2 Xử lý dữ liệu 74
3.3.2 Lập trình mô phỏng thuật toán
76 3.3.2.1 Khởi tạo bài toán 76
3.3.2.2 Hiển thị mô hình bài toán cái túi 77
3.3.2.3 Giải bài toán cái túi theo từng bước
77 KẾT LUẬN
80 DANH MỤC TÀI LIỆU THAM KHẢO 81
Trang 121
Trang 131 Lý do chọn đề tài
MỞ ĐẦU
Tối ưu hóa là một lĩnh vực toán học nghiên cứu lý thuyết về thuật toángiả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 chonhững người làm việc trong các lĩnh vực ứng dụng 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 đượcnghiên cứu trọn vẹn cả về phương diện lý thuyết lẫn giải pháp là bài toán quyhoạch tuyến tính Ngay từ khi ra đời, quy hoạch tuyến tnh đã chiếm vị trí hếtsức quan trọng, nó là môn toán ứng dụng rất cần thiết đối với sinh viênthuộc nhiều ngành khoa học khác nhau Các thuật toán giải bài toán quyhoạch tuyến tính không những giúp giải quyết những bài toán quy hoạchtuyến tính tổng quát cỡ lớn mà nó còn là điểm xuất phát quan trọng trongnghiên cứu lý thuyết giải các các bài toán tối ưu tổng quát
Khi số lượng biến trong bài toán quy hoạc tuyến tính tăng lên thì việcgiải bài toán quy hoạch tuyến tính thủ công hiện nay mất rất nhiều thờigian và rất dễ nhầm lẫn Để phục vụ cho việc giảng dạy và học tập bộ môn tối
ưu hóa thì phần mềm giải bài toán quy hoạch tuyến tính là sự trợ giúp cầnthiết cho cả người dạy lẫn người học
Với mong muốn đạt được mục têu nói trên, tôi chọn "Lập trình mô phỏng một số thuật toán giải quy hoạch tuyến tính hỗ trợ việc giảng dạy bộ môn tối ưu hóa" làm đề tài nghiên cứu.
Trang 142 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 quyhoạch tuyến tính; xây dựng chương trình mô phỏng các phương pháp giải bàitoán quy hoạch tuyến tính
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
Nghiên cứu một số thuật toán giải bài toán quy hoạch tuyến tnh
Lập trình mô phỏng một số thuật toán giải bài toán quy hoạch tuyến tnh
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 hóa
Phạm vi nghiên cứu: Các thuật toán giải bài toán quy hoạch tuyến tính
5 Dự kiến đóng góp
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 ưutuyến tính, giới thiệu một số thuật toán giải bài toán quy hoạch tuyến tính
Mô hình hệ thống mô phỏng thuật toán giải quy hoạch tuyến tính
Sản phẩm thực tễn: Phần mềm mô phỏng một số thuật toán giải bàitoán quy hoạch tuyến tính
6 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý luận: Đọ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 hóa, các khóa luận, luận văn tốt nghiệp
về quy hoạch tuyến tính
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 hóa
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 xây dựng phần mềm giải bài toán quy hoạch tuyến tính Kinh
nghiệm của các giảng viên, sinh viên tham gia giảng dạy và học tập tối ưuhóa
Trang 15NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Bài toán quy hoạch tuyến tính
1.1.1 Bài toán quy hoạch tuyến tnh
Nguyên liệuSản phẩm
Khi đó ta cần tìm sao cho đạt lãi lớn nhất
với điều kiện nguyên liệu:
Tức là cần giải bài toán:
( )
Trang 16Với điều kiện:
cho trong bảng dưới đây:
Lao độngCông việc
Gọi xij là số lao động loại j làm công việc (
) Khi đó, năng suất lao động của công việc đào đất sẽ là:
Trang 17Với điều kiện:
(Nguồn Internet)
C Bà i t o á n k hẩ u p hầ n th ứ c ă n:
Một khẩu phần thức ăn có khối lượng P, có thể cấu tạo từ n loại thức
ăn Gía mua một đơn vị thức ăn loại j là cj Để đảm bảo cơ thể phát triển
bình thường thì khẩu phần cần m loại chất dinh dưỡng Chất dinh dưỡng thứ i cần tối thiểu cho khẩu phần là b i và có trong một đơn vị thức
Trang 18Với điều kiện:
∑
∑ ̅̅̅̅̅̅
Trang 19(Nguồn Internet)
Ta thấy rằng ba bài toán trên đều thuộc bài toán tổng quát
1.1.1.2 Bài toán quy hoạch tuyến tính tổng quát
Bài toán tổng quát của QHTT có dạng:
1.1.1.3 Dạng chính tắc của bài toán quy hoạch tuyến tính
Người ta thường xét bài toán QHTT dưới dạng sau:
Trang 21Với điều kiện: ∑ ̅̅̅̅̅̅ (1.2)
và bài toán ở dạng vé c tơ như sau:
( )Với điều kiện:
1.1.1.4 Đưa bài toán quy hoạch tuyến tính về dạng chính tắc
P hương p h á p: Ta có thể đưa bài toán tuyến tính tổng quát về bài
toán tuyến tính dạng chính tắc tương đương nhờ các quy tắc sau:
Nếu có ( ) thì đổi thành * ( )+
Nếu có bất đẳng thức ∑ hoặc ∑
thì ta đưa thêm ẩn phụ , với hệ số hàm mục têu để có:
Trang 22∑ hoặc ∑
Nếu có ẩn chưa ràng buộc về dấu, thì ta có thể thay nó bởi haibiến mới và không âm, theo công thức:
Nếu có ẩn ta đặt ( )
1.1.2 Phương án cơ sở chấp nhận được
Xét bài toán QHTT dạng chính tắc (1.1) – (1.3) , giả thiết rằng hạngcủa ma trận A là m, tức là ràng buộc cơ bản gồm m phương trìnhđộc lập tuyến tnh
Định nghĩa 1.1: Ta gọi cơ sở của ma trận A là một bộ m vectơ cột
độc lập tuyến tính { } của nó (Nguyễn Đức Nghĩa, 1996)
Giả sử ( ), trong đó * là một cơ sở của matrận Khi đó vectơ ( ) thỏa mãn:
Khi đó:
Các biến được gọi là các biến cơ sở (các biến có giá trịkhác 0)
Các biến - các biến phi cơ sở (các biến có giá trị bằng 0)
Như vậy, nếu ký hiệu ( ) ( ) thì phương án cơ sở x
tương ứng với cơ sở có thể xác định nhờ thủ tục sau:
1 Chọn một cơ sở của ma trận
2 Đặt .
3 Xác định từ hệ phương trình :
Trang 23Định nghĩa 1.2 Phương án cơ sở được gọi là phương án cơ sở chấp nhận được (lời giải cơ sở chấp nhận được) nếu như nó là phương án chấp
nhận được (Nguyễn Đức Nghĩa, 1996)
Mệnh đề 1.1 Giả sử x là phương án cơ sở chấp nhận được của
bài toán tối ưu tuyến tính tương ứng với cơ sở B Khi đó tìm được vectơ csao cho x là phương án tối ưu duy nhất của bài toán
* +
(Nguyễn Đức Nghĩa, 1996)
Sự tồn tại phương án cơ sở chấp nhận được
Mệnh đề 1.2 Phương án chấp nhận được x là phương án cơ sở chấp
nhận được khi và chỉ khi tập vectơ cột của ma trận A ứng với các thành phần khác không của nó tạo thành một hệ vectơ độc lập tuyến tnh (Nguyễn Đức Nghĩa, 1996)
Định lý 1.1 Giả sử bài toán QHTT dạng chính tắc (1.1) – (1.3) có
phương án chấp nhận được Khi đó có ít nhất một phương án cơ sở chấp nhận được (Nguyễn Đức Nghĩa, 1996)
1.1.3 Tiêu chuẩn tối ưu
Định nghĩa 1.3 Phương án cơ sở chấp nhận được x được gọi là không
suy biến nếu như tất cả các thành phần cơ sở của nó là khác không (Nguyễn Đức Nghĩa, 1996)
Định lý 1.2 (Tiêu chuẩn tối ưu) Bất đẳng thức:
Là điều kiện đủ, và trong trường hợp không suy biến cũng là điều kiện cần để phương án cơ sở chấp nhận được x là tối ưu (Nguyễn Đức Nghĩa, 1996)
Trang 24Định lý 1.3 (Điều kiện đủ để hàm mục tiêu không bị chặn dưới) Nếu
trong số các ước lượng của phương án cơ sở chấp nhận được x có ước lượng dương (∆ jo >0) mà ứng với nó là các thành phần của vectơ B -1 A jo là không dương thì hàm mục têu của bài toán là không bị chặn dưới (Nguyễn Đức Nghĩa, 1996)
1.2 Thuật toán đơn hình giải bài toán quy hoạch tuyến tính
1.2.1 Thuật toán
1.2.1.1 Tư tưởng của phương pháp đơn hình
Xét bài toán quy hoạch tuyến tnh dạng chính tắc
( ) ∑
∑ ̅̅̅̅̅̅
Trang 25{Dạng véctơ của bài toán:
- Nếu bài toán có phương án thì có phương án cực biên
- Nếu bài toán có phương án tối ưu thì cũng có phương án cực biên tối
ưu Số phương án cực biên là hữu hạn
Trang 26Do đó, ta có thể tìm một phương án tối ưu(hay một lời giải của bàitoán) trong tập hợp các phương án cực biên Tập hợp này là hữu hạn.
Vì vậy Dantzig đề xuất thuật toán đơn hình như sau:
Xuất phát từ một phương án cực biên x 0 Kiểm tra xem x 0 có là
phương án tối ưu hay chưa Nếu x 0 chưa phải là phương án tối ưu thì
tm cách cải tến nó để được phương pháp khác là x 1 tốt hơn x 0, tức là:
( ) ( )Qúa trình này lặp lại nhiều lần Vì số phương án cực biên là hữu hạnnên sau một số hữu hạn lần lặp ta sẽ tìm thấy phương án cực biên tối ưu
Để thực hiện thuật toán đề ra ở trên, ta cần làm rõ hai vấn đề sau:
1 Làm thế nào để biết một phương án cực biên đã cho là tối ưu hay chưa, tức là cần tm
« dấu hiệu tối ưu »
2 Làm thế nào để từ một phương án cực biên chưa tối ưu tm được một
phương án cực biên tốt hơn nó
(Nguồn Internet)
1.2.1.2 Biểu diễn qua cơ sở Dấu hiệu tối ưu
Giả sử có phương án cực biên với cơ sở (tức là hệ véctơ cột độclập tuyến tnh { } và ) Ta có:
∑ ∑ ( )(vì Với mỗi , ta biểu diễn vé tơ qua véc tơ cơsở
Trang 27∑ ( ) ( )Khi đó ta có:
( ) ∑ ∑ ∑ ( )Thay (3) vào ta được :
( ) ∑( ∑ ) ∑
∑ ∑ ( ∑ )
Trang 28Ký hiệu:
∑ ( )gọi là ước lượng của véc tơ cột theo cơ sở J và:
( ) ( ) ∑
do đó ta có dấu hiệu tối ưu sau đây:
(Nguyễn Ngọc Thắng và Nguyễn Đình Hóa, 2004)
1.2.1.3 Công thức biến đổi, bảng đơn hình
Giả sử x0 với cơ sở J là một phương án cực biên nhưng chưa phải làphương án tối ưu, khi đó k J 0 sao cho ∆k > 0 Giả sử s là một chỉ sốtrong các chỉ số nói trên:
s J 0 , ∆s > 0
Theo thuật toán trên ta cần cải tiến x0 để nhận được một phương
án cực biên mới tốt hơn Ta sẽ tm một phương án cực biên mới x1 ứng với cơ
sở J1 chỉ khác J một véctơ J 1 (J \ r) s, tức là ta đưa véc tơ As vào cơ sở thay cho véc tơ Ar bị loại ra khỏi cơ sở J
Vì mọi thành phần ngoài cơ sở của một phương án cực biên đều bằng 0 nên phương án cực biên mới x1 có cơ sở J 1 (J \ r) s là:
Trang 29Trong đó là một số dương sẽ được xác định sau sao cho x1 là một phương án cực biên.
(Nguyễn Ngọc Thắng và Nguyễn Đình Hóa, 2004)
1.2.2 Thuật toán đơn hình dạng bảng
1.2.1.1 Bảng đơn hình
Để thuận tiện cho việc tnh toán, người ta sắp xếp các số liệu thành một bảng gọi là bảng đơn hình như dưới đây:
Trang 30số
Bảng 1.1 Bảng đơn hình (Nguồn Internet)
Các cột ứng với sẽ là các véc tơ đơn vị với số 1 trên dòng với chỉ
1.2.2.2.Thuật toán đơn hình dạng bảng
Trang 31Bước xuất phát: Tìm một phương án cực biên và cơ sở tương
ứng Tìm các hệ số khai triển và các ước lượng
Bước 1: Kiểm tra dấu hiệu tối ưu
- Nếu thì là phương án tối ưu Thuật toán kết thúc
- Nếu thì chuyển sang bước 2
Bước 2: Kiểm tra dấu hiệu hàm mục tiêu giảm vô hạn:
Với mỗi mà thì kiểm tra các hệ số khai triển của cột tương ứng
a, Nếu có một mà tất cả các thì kết luận hàm mụctêu giảm vô hạn trên miền ràng buộc Bài toán không có lời giải hữuhạn Thuật toán kết thúc
b, mà đều tồn tại ít nhất một hệ số thì chuyểnsang bước 3
Trang 32Bước 4:Tính các ( ) trong cơ sở mới
J 1 (J 0 \ r) s theo các công thức trên Ghi nhận các kết quả trong
một bảng mới Quay trở lại bước 1
sau:
- Để nhận được bảng đơn hình mới từ bảng đơn hình cũ ta làm như
Trang 33+ Thay A r bằng A s , c r bằng c s
+ Chia các phần tử trên hàng xoay ( hàng r) cho phần tử trục z rs ta
được hàng r mới gọi là hàng chuẩn.
+ Mỗi phần tử khác ngoài hàng xoay trừ đi tch của phần tử cùng hàngvới nó trên cột xoay với phần tử cùng cột với nó trên hàng chuẩnđược phần tử cùng vị trí trong bảng đơn
hình mới
(Nguyễn Ngọc Thắng và Nguyễn Đình Hóa, 2004)
1.3 Thuật toán đơn hình hai pha
Xét bài toán quy hoạch tuyến tnh dạng chính tắc
( ) ∑
Trang 34∑ ̅̅̅̅̅̅
{ ̅̅̅̅̅
Không giảm tnh tổng quát coi b i ≥ 0 (I = 1,2,…, m) Nếu trái lại có
b i < 0, ta nhân hai vế ràng buộc thứ i với -1.
Xét bài toán phụ sau:
( )
Trang 35∑ (
̅̅̅)
Trang 36̅̅̅)( ̅̅̅
̅̅̅)
(P)
Các biến un+i , (i=1,2,…,m) gọi là các biến giả Nếu ký hiệu e = (1,1,
…,1)t là vectơ gồm m thành phần đều bằng 1, còn E là ma trận đơn vị cấp
m, thì ma trận của bài toán (P) là:
( )D’: {
(P)Bài toán (P) cũng là một quy hoạch tuyến tính với n + m biến Đối vớibài toán (P) ta có ngay phương án cực biên xuất phát (x,u) = (0,b) tức là
xj=0 (j = 1,2, ,n), un+i = bi (i=1,2,…,m) và cơ sở tương ứng là m cột cuối và
ma trận cơ sở Aj = E Nghĩa là rất thuận lợi để bắt đầu thủ tục đơn hình Bàitoán phụ (P) giúp ta giải quyết vấn đề phương án cực biên và cơ sởxuất phát của bàn toán ban đầu (I)
Đ ị nh l ý 1 4 Bài toán ban đầu (I) có phương án chấp nhận được khi
và chỉ khi bài toán phụ (P) có phương án tối ưu với tất cả các biến giả u n+i
đều bằng 0 (i=1,2,…,m) (Nguyễn Ngọc Thắng và Nguyễn Đình Hóa, 2004)
Quá trình giải bài toán phụ (P) gọi là pha thứ nhất trong phương pháphai pha Giả sử sau pha thứ nhất này ta nhận được phương án tối ưu(x*,u*) của bài toán phụ (P) Có 3 khả năng:
a, Nếu u* 0 thì kết luận bài toán ban đầu (I) không có phương
án
b, Nếu u* = 0 và cơ sở tương ứng gồm toàn các cột ứng với xi, khôngchứa cột nào ứng với các biến giả un+i (i =1,2,…m) Đây chính là phương
Trang 37án cực biên và cơ sở xuất phát để bắt đầu pha thứ hai, tức là bắt đầu thủ tục đơn hình đối với bài toán ban đầu (I).
c, u* = 0 nhưng cơ sở tương ứng có chứa một số cột ứng với các biếngiả un+i Ta cần xét kỹ hơn trường hợp này Ký hiệu J x là tập các chỉ sốtrong cơ sở ứng với các biến xj, Ju là tập các chỉ số trong cơ sở ứng với các
biến giả u n+i , J = J x +J u
T r ườ n g h ợ p C 1 : Nếu trên còng có chỉ số (n+i) của bảng đơn hình cuối cùng của bài toán (P) ta tìm được một một chỉ số k ngoài cơ sở (1≤ k ≤n) sao cho z n+i,k ≠ 0 thì ta thực hiện phép đổi cơ sở với phần tử trục là z n+i,k để
đưa (n+i) ra và đưa k vào cơ sở, ta sẽ nhận được một cơ sở mới trong đó
đã được bớt đi một cột ứng với biến u Lặp lại cách làm này ta sẽ loại hếtđược các cột ứng với các biến giả u và sẽ nhận được cơ sở xuất phát chobài toán ban đầu (I) gồm toàn các cột của ma trận A
T r ườ n g h ợ pC 2 : Trên dòng chỉ số (n+i) của bảng đơn hình cuối cùng của bài toán (P) không tìm được chỉ số k ngoài cơ sở (1≤ k ≤n) mà z n+i,k ≠ 0 thì
ta kết luận rằng dòng i của ma trận A là tổ hợp tuyến tính của các dòngcòn lại Ta có thể xóa dòng này đi và đồng thời có thể loại bỏ luôn biến giả
un+i
Tóm lại, trong cả hai trường hợp C1 và C2 ta đều loại được các cộtứng với các biến giả u ra khỏi cơ sở để nhận được một cơ sở chỉ gồm toàncột ứng với biến x Đây là cơ sở xuất phát để giải quyết bài toán ban đầu
1.4 Thuật toán đánh thuế
Phương pháp hai pha có nhược điểm là quá trình tính toán không liêntục mà chia thành hai giai đoạn tách biệt Hàm mục têu là khác nhau nênmột số kết quả tnh ra không thể kế thừa được Phương pháp đánhthuế
Trang 38khắc phục được nhược điểm này bằng cách kết hợp cả hai giai đoạn với việc thay thế bài toán ban đầu bằng bài toán (M) sau đây:
( ) ∑ (∑ )
∑ (
̅̅̅)
Trang 39DM: { ( ̅̅
̅̅̅)( ̅̅̅
̅̅̅) Phương án tối ưu đó đồng thời
đạt cực tiểu hàm f(x) = c t x = ∑ trên miền D = {x: Ax = b, x ≥ 0} tức
là cho x* là phương án tối ưu của bài toán ban đầu Mặt khác đối với
bài
toán (M) có đầy đủ điều kiện để thực hiện thủ tục đơn hình vì ta có ngay
phương án xuất phát là (0,b) với cơ sở là các vectơ cột đơn vị ứng với các
u n+i (ma trận cơ sở là E).
Trang 40Vì hàm mục têu của bài toán (M) biểu diễn tuyến tính qua hàm mục têu của bài toán (I) và bài toán (P).
a, Coi ( ) nếu ( ) , hoặc ( )
b, Coi ( ) ( ) nếu ( ) ( ) hoặc ( ) ( )
Cũng vì thế trong bảng đơn hình bài toán (M), dòng cuối cùng ghi các