đề tài luận văn thạc sĩ công nghệ thông tin tìm hiểu cơ sở toán học của lý thuyết tối ưu và một số mô hình trong kinh tế thường gặp, cách giải quyết những bài toán kinh tế này và bước đầu ứng dụng qua những ví dụ cụ thể
Trang 1LỜI CÁM ƠN
DANH SÁCH CÁC BẢNG DANH SÁCH CÁC HÌNH
MỤC LỤC
LỜI MỞ ĐẦU
Trang 2Chương 1
MÔ HÌNH BÀI TOÁN TỐI ƯU HÓA
Trong chương này, luận văn sẽ trình bày một số kiến thức cơ bản về mô hìnhtổng quát của bài toán tối ưu hóa, việc phân loại các bài toán tối ưu và cơ sở toán họccủa bài toán tối ưu Các kiến thức này được tham khảo trong các tài liệu [1, 2, 3, 4]
1.1 Các khái niệm cơ bản
1.1.1 Mô hình tổng quát bài toán tối ưu hóa
Tối ưu hóa là một trong những lĩnh vực quan trọng của toán học có ảnh hưởngđến hầu hết các lĩnh vực khoa học, công nghệ và kinh tế và xã hội Việc tìm giải pháptối ưu cho một bài toán thực tế nào đó chiếm một vai trò hết sức quan trọng như việctiến hành lập kế hoạch sản xuất hay thiết kế hệ thống điều khiển các quá trình … Nếu
sử dụng các kiến thức trên nền tảng của toán học để giải quyết các bài toán cực trị,người ta sẽ đạt được hiệu quả kinh tế cao Điều này phù hợp với mục đích của các vấn
đề đặt ra trong thực tế hiện nay
Bài toán tối ưu tổng quát được phát biểu như sau:
Cực đại hóa (cực tiểu hóa) hàm:
Trang 3gian n
R Tập các véc tơ X thỏa mãn hệ ràng buộc lập nên một miền D được gọi làmiền phương án (hay miền chấp nhận được), mỗi điểm XD gọi là một phương án.Một phương án X* D làm cho hàm mục tiêu f X( ) đạt max (min) được gọi là phương
án tối ưu
1.1.2 Phân loại bài toán tối ưu
Dựa trên mô hình tổng quát, người ta thường phân loại lớp các bài toán tối ưunhư sau:
Qui hoạch tuyến tính: là những bài toán mà hàm mục tiêu f X( )và tất cả cáchàm ràng buộc g X g X g X i( ), j( ), k( ) là tuyến tính.
Qui hoạch phi tuyến: là những bài toán một trong hàm mục tiêu f X( ) hoặccác hàm ràng buộc g X g X g X i , j , k là phi tuyến
Qui hoạch lồi: Là các bài toán qui hoạch mà các hàm mục tiêu f X( ) là lồi trêntập các ràng buộc D lồi
Qui hoạch lõm: Là các bài toán qui hoạch mà các hàm mục tiêu f X( ) là lõmtrên tập các ràng buộc D lõm
Qui hoạch rời rạc: Bài toán tối ưu được gọi là qui hoạch rời rạc nếu miền ràng
buộc D là tập hợp rời rạc Trong trường hợp riêng khi các biến chỉ nhận giá trịnguyên thì ta có qui hoạch nguyên
Qui hoạch đa mục tiêu: Nếu trên cùng một miền ràng buộc ta xét đồng thời
các hàm mục tiêu khác nhau
Trong các lĩnh vực kinh tế kỹ thuật thì qui hoạch phi tuyến, qui hoạch tuyến tính lànhững bài toán thường gặp
1.2 Bài toán quy hoạch tuyến tính
Từ một số các mô hình trong thực tế, ta có mô hình tổng quát cho bài toán quyhoạch tuyến tính như sau:
Xác định các biến x j j( 1, 2, , )n sao cho:
Trang 4j 1
Với M 1, 2, ,m , N 1, 2, ,n
Vectơ X x x1, , ,2 x n thỏa mãn các điều kiện (1.5) - (1.7) được gọi là mộtphương án của bài toán Tập các nghiệm thỏa mãn hệ ràng buộc được gọi là miềnphương án ký hiệu là D Phương án thỏa mãn điều kiện để hàm mục tiêu đạtMax(min) được gọi là phương án tối ưu
Dạng chính tắc:
j 1
( )
n j j
( )
n j j
Trang 5 ax(min)
n
x x X x
m
b b b b
1.3 Một số thuật toán kinh điển
1.3.1 Thuật toán đơn hình
1.3.1.1 Mô tả thuật toán gốc
Cơ sở của phương pháp này được Dantzig công bố năm 1947 có tên gọi làphương pháp đơn hình Xuất xứ tên gọi như vậy vì những bài toán đầu tiên được giảibằng phương pháp đó có các ràng buộc dạng:
1.3.1.2 Tư tưởng 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 thì có ít nhất một đỉnh của D là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 một thuật toán hữu hạn Thuật toán gồm 2 bước như sau:
Bước 1: Tìm 1 phương án cực biên.
Bước 2: Kiểm tra điều kiện tối ưu đối với phương án đó.
+ 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
Trang 6chuyển sang phương án cực biên mới sao cho làm tốt hơn giá trị hàm mục tiêu.
+ Kiể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
án tối ưu, hoặc đến tình huống bài toán không có phương án tối ưu
Giả sử X là một phương án cực biên nào đó
Vì các véc tơ A j J j, * là độc lập tuyến tính nên | *|J m
Định nghĩa 1.1: Phương án cực biên X được gọi là không suy biến nếu
| *|J m, suy biến nếu | *|J m
Ta chọn một hệ thống m véc tơ độc lập tuyến tính A j J j, sao cho J J*
Hệ thống đó là cơ sở của X , các véc tơ A j J j, và biến x j J j, được gọi là các véc
tơ và các biến cơ sở tương ứng Các véc tơ và các biến A x j, ,(j j J )gọi là các véc tơ
và các biến phi cơ sở
Nếu X không suy biến thì tồn tại một cơ sở duy nhất, đó là J J*
Mọi véc tơ A k phi cơ sở có thể biểu diễn dưới dạng tổ hợp tuyến tính của cácvéc tơ cơ sở:
Trang 82 Người ta có thể chứng minh rằng nếu bài toán không suy biến thì (2.8) cũng là
điều kiện cần của bài toán tối ưu
Định lý 1.2: Nếu tồn tại một chỉ số k sao cho k 0 thì ta có thể tìm được ít nhất một phương án X' mà đối với nó Z' Z
Trong thực tế Dantzig đã chứng minh rằng số các bước lặp sẽ giảm đáng kể nếu
ta thay véc tơ A k bởi véc tơ A s thỏa mãn s min k | k 0
,,
js
r j rs j
r rs
x
z x
x
j r z
1.3.1.4 Thuật toán đơn hình
Bước 1: Tìm một phương án cực biên xuất phát X và cơ sở của nó A j J j,
Nếu X không phải là nghiệm tối ưu:
Trang 9o ( k J), k 0 và z jk 0, j J bài toán QHTT không có nghiệm tối
ưu Thuật toán dừng
o Đối với mỗi k J sao cho k 0 đều tồn tại j J z : jk 0 chọn
Đưa véc tơ A r ra khỏi cơ sở
Bước 4: Xác định phương án cực biên mới X' với cơ sở J'J \ r s
Quay trở lại bước 2
1.3.1.5 Công thức đổi cơ sở, bảng đơn hình
Ta xét các công thức chuyển từ phương án cực biên X với cơ sở J, sang
phương án cực biên X' với cơ sở J' Xuất phát từ công thức (2.10) cho phép tính các
thành phần của X' Ta cần thiết lập công thức tính các số '
Trang 10,,
rk
rs jk
rk rs
z
z z
z
j r z
10 0
0…
1 0
0…
0 1
0…
0 0
0…
0 0
xm
0
0
0
0
1
zmk
zms
zmn
Bảng 1.1: Bảng đơn hình
Sử dụng các phương pháp biến đổi theo thuật toán sau
- Nếu tất cả các số trong hàng cuối (trừ F) đều 0, nghĩa là k 0, k, khi đó
X là phương án tối ưu Thuật toán dừng
Trang 11- Nếu hàng cuối (không kể F) tồn tại số âm mà mọi số trong cột tương ứng đều
0
thì bài toán không tồn tại phương án tối ưu
Ngược lại:
+ Chọn cột s sao cho: s mink| k 0 , Cột s gọi là cột xoay Véc tơ A s
được đưa vào cơ sở
+ Chọn hàng r mà tỉ số: r min j | 0
x x
Véc tơ A r bị đưa ra khỏi cơ sở
Phần tử z rs 0 là giao của cột xoay và dòng xoay gọi là phần tử trục Các phần
tử z js,j r gọi là phần tử xoay
Theo các công thức (2.10), (2.11), (2.14), bảng đơn hình mới suy được từ bảngđơn hình cũ bằng cách thay c A r, r trong hàng xoay bằng c A s, s Sau đó thực hiện cácphép biến đổi dưới đây:
1) Chia mỗi phần tử ở hàng xoay cho phần tử trục, kết quả thu được gọi là hàngchuẩn
2) Đối với các hàng còn lại thực hiện biến đổi theo công thức
Hàng mới = hàng cũ tương ứng – Hàng chuẩn phần tử xoay.
Toàn thể phép biến đổi trên gọi là phép quay xung quanh trục z rs Sau khi thựchiện phép xoay ta có một phương án mới và một cơ sở mới, tiến hành kiểm tra điềukiện tối ưu
1.3.2 Thuật toán đơn hình mở rộng
Trang 12Ta đưa thêm vào một số ẩn cơ sở mới x n1, ,x n m và chuyển bài toán về dạng
+ Đối với bài toán max, nếu giải trực tiếp thì ta sẽ thêm M vào hàm mục tiêu Trên cơ sở lý thuyết trên, thuật toán đơn hình tổng quát được mô tả bằng sơ đồkhối sau đây:
Trang 13Hình 1.1: Sơ đồ khối thuật toán đơn hình
Thuật toán đơn hình có thể thực hiện trên máy tính điện tử thông qua một phầnmềm tính toán Với những bài toán QHTT có biến số quá lớn (như dạng bài toán vậntải), trong thực tế không thể giải bằng phương pháp đơn hình được, lúc này người ta sửdụng 1 thuật toán khác được gọi là thuật toán phân phối
Trang 141.3.3 Thuật toán phân phối
1.3.3.1 Thuật toán phân phối
Một loại hàng hoá nào đó cần được vận chuyển từ m nơi giao (trạm phát)
1, 2, , m
A A A với các lượng hàng dự trữ tương ứng là a a1, , ,2 a m tới n nơi nhận (trạmthu) B B1, 2, ,B n với các yêu cầu tương ứng là b b1, , ,2 b n Ký hiệu cij là cước phí vậnchuyển một đơn vị hàng hoá từ nơi giao A i tới nơi nhận B j Hãy xác định những đạilượng xij cho mọi con đường ,i j sao cho tổng cước phí vận chuyển là nhỏ nhất Bài toán được mô tả bằng bảng
ma trận vận chuyển sau đây:
Trang 15Khi đó bài toán vận tải tương đương với mô hình bài toán tối ưu sau đây:
1
m
j i
1
n
i j
Hệ gồm m n phương trình đại số tuyến tính với m n ẩn
Trong số tất cả các nghiệm không âm của hệ (2.16) - (2.18) cần tìm một nghiệmsao cho hàm mục tiêu (2.15) đạt giá trị nhỏ nhất
Các tính chất của bài toán vận tải
Bài toán vận tải luôn có phương án tối ưu
Nếu bài toán không cân bằng thu - phát thì ta luôn đưa được về dạng cân bằngbằng cách:
Trang 16Một số định nghĩa
Ô nằm trong dòng i, cột j ký hiệu là ,i j Một ô ,i j mà x ij 0 gọi là ô
chọn, các ô còn lại được gọi là ô loại
Một dãy các ô được gọi là dây chuyền nếu dãy ô đó có tính chất cứ 2 ô liên tụccủa dãy thì cùng nằm trên một dòng (hoặc một cột) Cứ 3 ô liên tục của dãy thì khôngthể cùng nằm trên một dòng (hoặc một cột)
Chu trình (hay vòng) là một dây truyền mà ô đầu tiên và ô cuối cùng trên cùngmột dòng (hoặc một cột)
Định lí 2.3: Điều kiện cần và đủ để một dãy ô chứa vòng là hệ véc tơ A ij tương ứng phụ thuộc tuyến tính.
Hệ quả:
1 Một dãy ô không chứa vòng Hệ véc tơ tương ứng độc lập tuyến tính
2 Một phương án cực biên của bài toán vận tải có tối đa m n 1 ô chọn
Định nghĩa 2.2: Một phương án cực biên có đúng m n 1 ô chọn gọi làphương án cực biên không suy biến
3 Bất kỳ m n ô trở lên đều chứa vòng
Định lí 2.4: Nếu tập E gồm m n 1 không tạo thành vòng, khi thêm một ô không thuộc tập E vào tập E ta sẽ được một vòng duy nhất.
Hệ quả: Giả sử tập ô tạo thành vòng duy nhất thì khi bỏ đi một ô, các ô còn lại
không tạo thành vòng
1.3.3.2 Thuật toán phân phối
Trang 17Giả sử ta có một phương án cực biên không suy biến X0, xét một vòng loại ứngvới ô loại ,i j, bắt đầu từ ô loại ,i j ta đánh số thứ tự 1,2,…
Tập các ô có số thứ tự lẻ gọi là nửa vòng lẻ V l
Tập các ô có số thứ tự chẵn gọi là nửa vòng chẵn V c
Như vậy số ô của V l bằng số ô của V c
Số kiểm tra của ô loại ,i j là:
+ Nếu với mọi ô loại ,i j ta đều có ij 0 thì X0 là phương án tối ưu.
+ Nếu tồn tại một ô loại ,i j mà ij 0 thì X0chưa tối ưu và có phương án mới tốt hơn.
1.3.3.3 Sơ đồ mô tả thuật toán phân phối
-17TrueBắt đầu
e
Trang 18Hình 1.2: Sơ đồ thuật toán phân phốiĐiều kiện của phương án X0 là có m n 1 ô chọn không tạo thành vòng.Thuật toán phân phối được thực hiện theo các bước như sau
Bước 1: Xác định phương án cực biên không suy biến ban đầu X0
Sử dụng 1 trong 3 phương pháp sau đây
1) Phương pháp góc tây bắc:
Xây dựng nghiệm chấp nhận được của bài toán bắt đầu bằng việc chuyên chởlớn nhất có thể được từ điểm phát thứ nhất tới điểm thu thứ nhất (do đó được gọi làphương pháp góc tây bắc) tức làxijmina b1, 1 Quá trình lặp lại theo đúng quy tắc
như vậy cho đến khi phân phối xong
2) Phương pháp cực tiểu cước phí:
Trang 19Xác định ô ( , )i j0 0 với c i j0 , 0 minc i j, , ( , )i j Nếu cực tiểu đạt tại nhiều ô thì tachọn một ô theo quy tắc từ vựng Sau đó phân phối hàng nhiều nhất có thể được theotuyến i0 j0 một lượng: x i j0 , 0 mina b i0, j0 Quá trình lặp lại cho đến khi phân phốixong.
3) Phương pháp Fogel
Định nghĩa 2.3: Hiệu giữa giá trị cước phí nhỏ thứ nhì và nhỏ nhất trên cùng
một cột (hoặc một dòng) được gọi là độ lệch của cột (dòng)
Để tìm phương án ban đầu ta làm như sau:
Chọn cột (dòng) có độ lệch lớn nhất ưu tiên phân phối trước, phân phối tối đavào ô có cước phí min của cột (dòng) đã chọn (đối với bài toán max, độ lệch là cướcphí lớn nhất và lớn nhì)
Lặp lại quá trình
Bước 2: Tính các số kiểm tra
Thực hiện theo phương pháp quy không ô chọn: Chọn các số r i, s j sao cho đốivới các ô chọn thì cij r s i j 0 Khi đó số kiểm tra của các ô loại lúc này là cij r s i j
Nếu tồn tại một số kiểm tra bằng 0, mọi số kiểm tra còn lại đều dương thì bàitoán có vô số phương án tối ưu
Bước 3: Điều chỉnh để tìm phương án mới
Giả sử ô loại ,i j có số kiểm tra ij 0 ta điều chỉnh các số liệu của các ôthuộc vòng loại này như sau:
Trang 20Khi điều chỉnh như vậy thì ô loại trở thành ô chọn và ít nhất một ô chọn trởthành ô loại.
Quay lại bước 2.
Tương tự như thuật toán đơn hình, thuật toán phân phối cũng được thực hiệnbằng 1 phần mềm tính toán trên máy tính điện tử
Trên cơ sở các thuật toán đã trình bày, chúng ta có thể sử dụng các ngôn ngữlập trình cơ bản như C++, Pasal, Java để thực hiện thuật toán trên máy tính điện tử.Một trong những phương pháp thông dụng hiện nay đối với các kĩ sư không chuyên tin
là sử dụng các phần mềm có sẵn để tìm nghiêm của các bài toán quy hoạch tuyến tính
Sau đây là một phương pháp sử dụng phần mềm Matlab giải bài toán quy hoạchtuyến tính:
Trang 21Chương 2:
MỘT SỐ MÔ HÌNH CƠ BẢN
Trong chương này, luận văn sẽ trình bày một số mô hình cơ bản thuật toán điềuchỉnh nhân tử giải bài toán sản xuất đồng bộ, thuật toán Hungary giải bải toán bổnhiệm… là các thuật toán đặc trưng trong ngành Công nghệ thông tin
2.1 Bài toán sản xuất đồng bộ
2.1.1 Bài toán sản xuất đồng bộ
Giả sử có một số loại máy cùng tham gia vào một qui trình sản xuất các chi tiếtcho một loại sản phẩm nào đó Năng suất của các máy khi sản xuất các chi tiết khácnhau cũng khác nhau Bài toán đặt ra là: phải bố trí công việc cho các máy trong mộtđơn vị thời gian sao cho việc sản xuất được “ đồng bộ” để đạt được hiệu quả cao nhất,sản xuất ra nhiều sản phẩm nhất
Bài toán được đặt ra với giả thiết: Mỗi loại máy chỉ có một cái và mỗi sản phẩmchỉ cần đúng một chi tiết cho mỗi loại (một đơn vị thời được hiểu là một ca làm việc.)
Với mọi n *, ký hiệu: I n 1, 2, ,n
2.1.2 Mô hình bài toán sản xuất đồng bộ tổng quát
Có m loại máy M i I i,( m), mỗi loại một cái, sản xuất ra n loại chi tiết
Số lượng chi tiết j sản xuất được trong một ca là:
ij ij 1
m j i
Trang 22Với mọi i I m và j I n, đặt xij là phần thời gian trong một ca mà máy M i dùng
để sản xuất chi tiết C j, và z là số sản phẩm được sản xuất ra trong một ca
ij ij 1 ij
1,
0,
0, ,0
n
m j
m
n i
Trang 23Do đó bảng này còn được gọi là bảng năng suất của bài toán sản xuất đồng bộ
Các tính chất của bài toán:
1) Vectơ x z i Iij, , m,j I n thoả mãn tất cả các ràng buộc của bài toán là mộtphương án của bài toán Tuy nhiên, bất kỳ vectơ xij nào thoả mãn các ràng buộc củabài toán cũng cho tương ứng một họ phương án với thành phần z được xác định bởi:
là tốt hơn cả Vì vậy từ nay ta sẽ
gọi vectơ xij ,i I m,j I n, hoặc ma trận x ij m n
thoả mãn các ràng buộc của bài toán(SXĐB) là một phương án của bài toán với quy ước là thành phần z của nó bằng:
2.2 Phương pháp điều chỉnh nhân tử
Nếu tìm được một phương án x zij, của bài toán và một phương án u v i, j củabài toán đối ngẫu sao cho:
Trang 24
1
ij ij 1
Nội dung của phương pháp điều chỉnh nhân tử như sau:
Trước hết, chúng ta xây dựng một phương án cực biên suy rộng u v i, j của bàitoán, đó là một hệ thống nhân tử hàng và nhân tử cột; đồng thời xác định các ô chọn.Gọi S là tập ô ,i j tương ứng với m n 1 ràng buộc chặt độc lập tuyến tính dạng
ij 0
u a v Các ô thuộc S được lấy làm các ô chọn, nên S được gọi là tập ô chọn củaphương án cực biên suy rộng u v i, j
2.2.1 Thuật toán điều chỉnh nhân tử:
Bước 1: Xây dựng hệ thống nhân tử u v i, j (hay phương án cực biến suy rộng của bàitoán đối ngẫu:
Trước hết, xác định ô ,i j có aij lớn nhất Giả sử: i j0 0 max, ij
- Trên hàng i đã có nhân tử u i, tìm ô có năng suất lớn nhất nằm trên cột j chưa
có nhân tử Nhân tử của cột này được xác định bởi:
a trong đó min lấy vớimọi hàng i đã có nhân tử Ô tương ứng với nhân tử v j đó được lấy làm ô chọn và đượcđánh dấu