1. Trang chủ
  2. » Khoa Học Tự Nhiên

Sử dụng phần mềm Maple giải các bài toán tối ưu(Bài toán đơn hình, bài toán vận tải, bài toán đối ngẫu)

40 4,8K 22
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sử dụng phần mềm Maple giải các bài toán tối ưu (Bài toán đơn hình, bài toán vận tải, bài toán đối ngẫu)
Tác giả Phan Văn Cương
Người hướng dẫn Thầy giáo hướng dẫn, Thạc sĩ Trần Công Mẫn
Trường học Trường Đại học Khoa học Huế
Chuyên ngành Toán Tin
Thể loại Luận văn
Năm xuất bản 2012
Thành phố Huế
Định dạng
Số trang 40
Dung lượng 1,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sử dụng phần mềm Maple giải các bài toán tối ưu(Bài toán đơn hình, bài toán vận tải, bài toán đối ngẫu)

Trang 1

LỜI NÓI ĐẦU

Từ xưa đến nay, các mô hình tối ưu và các phương pháp tối ưu hóa đã trở thành những yếu tố cần thiết trong mọi hoạt động của con người và ngày càng được ứng dụng rộng rãi trong các ngành kinh tế, kỹ thuật, công nghiệp và các lĩnh vực khác của xã hội…Trong đó, các bài toán Quy hoạch tuyến tính là một trong những bài toán quan trọng nhất của Tối ưu hóa

Cùng với sự phát triển mạnh mẽ từng ngày của Công nghệ thông tin, hàng loạt các ngôn ngữ lập trình đã ra đời Trong đó, Maple nổi lên như là một công

cụ tuyệt vời hỗ trợ cho việc học tập và nghiên cứu toán học Với Maple bạn có thể thực hiện được mọi điều từ những phép toán đơn giản nhất, sơ cấp nhất cho đến những tính toán phức tạp nhất

Trước tầm quan trọng của các bài toán Quy hoạch tuyến tính cùng với sự ứng dụng rộng rãi của ngôn ngữ lập trình Maple tôi đã quyết định chọn đề tài “Lập trình Maple giải bài toán Quy hoạch tuyến tính” với mong muốn tạo ra một công cụ giải các bài toán Quy hoạch tuyến tính một cách thuận tiện và nhanh chóng

Khóa luận gồm có 3 chương:

Chương 1 giới thiệu những khái niệm liên quan đến bài toán Quy hoạch tuyến tính và phần mềm Maple

Chương 2 trình bày giải bài toán Quy hoạch tuyến tính bằng thuật toán đơn hình và hình học (đối với bài toán Quy hoạch tuyến tính hai biến) Trong mỗi phần tôi sẽ giới thiệu về thuật toán, ví dụ và mã lệnh lập trình bằng Maple cùng giao diện tính toán

Chương 3 nói về thuật toán “Quy 0 cước phí ô chọn” bao gồm các khái niệm

và các thuật ngữ liên quan Sau đó, đưa ra ví dụ minh họa bài toán, cuối cùng đưa ra mã lệnh lập trình bài toán và giới thiệu một số giao diện tính toán của chương trình

Trang 2

Với những yêu cầu của đề tài, tôi sử dụng các giáo trình về Quy hoạch tuyến tính để tiếp cận với các thuật toán của những bài toán trên, sau đó sử dụng ngôn ngữ lập trình Maple tiến hành chuyển đổi thuật toán từ ngôn ngữ toán học thành ngôn ngữ lập trình Sau đó, thiết kế giao diện cho các bài toán nhằm giúp người

sử dụng thuận tiện trong việc giải bài toán Quy hoạch tuyến tính

Em xin trân trọng cám ơn các Thầy cô trong khoa Toán trường đại học Khoa học Huế đã nhiệt tình giảng dạy, giúp đỡ em trong quá trình học tập và rèn luyện tại trường Đặc biệt em xin gửi lời cám ơn sâu sắc đến Thầy giáo hướng dẫn, Thạc sĩ Trần Công Mẫn đã chỉ bảo tận tình để em có thể hoàn thành tốt khóa luận này

Cuối cùng, em xin cám ơn gia đình, các bạn cùng lớp đã thường xuyên thăm hỏi đóng góp ý kiến, giúp đỡ động viên em trong suốt quá trình học tập và thực hiện khóa luận

Do khẳ năng có hạn, nên chắc chắn khóa luận này không thể tránh khỏi thiếu sót Em rất mong nhận được ý kiến phê bình, chỉ đạo của các Thầy cô cùng các bạn

Huế, tháng 05 năm 2012 Phan Văn Cương – Toán tin K32

Trang 3

Chương I

BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VÀ PHẦN MỀM

GIẢI TOÁN MAPLE

Trong phần này, chúng tôi xin nhắc lại một số khái niệm, định nghĩa liên quan đến bài toán Quy hoạch tuyến tính cũng như giới thiệu sơ lược về phần mềm Maple

sẽ được sử dụng trong luận văn

1.1 Bài toán Quy hoạch tuyến tính tổng quát

Tìm cực trị (cực tiểu hoặc cực đại) của một hàm tuyến tính xác định trên tập hợp một hệ thống hỗn hợp các phương trình và bất phương trình tuyến tính Bài toán được mô tả dưới toán học như sau:

Vectơ x thỏa mãn mọi ràng buộc của bài toán gọi là một phương án

- Phương án x thỏa mãn ràng buộc i với dấu “=” nghĩa là ∑nj=1aijxj = bi thì ràng buộc i gọi là “chặt” đối với phương án x, hoặc phương án x thỏa mãn chặt ràng buộc i

- Phương án x thỏa mãn ràng buộc i với dấu bất đẳng thức thực sự, nghĩa là

∑nj=1aijxj > (<) bithì ràng buộc i gọi là lỏng đối với phương án x hoặc phương án

Trang 4

1.4 Phương án tối ưu

Một phương án mà tại đó hàm mục tiêu đạt trị số cực tiểu (cực đại) gọi là phương án tối ưu

1.5 Bài toán giải được và không giải được

Bài toán có ít nhất một phương án tối ưu gọi là bài toán giải được Bài toán không có phương án hoặc có phương án nhưng trị số hàm mục tiêu không bị chặn dưới(trên) – cũng có nghĩa là giảm (tăng) vô hạn – trên tập phương án gọi là không giải được

j=1

xj ≥ 0 (j = 1 n)

Ký hiệu: A = [aij]

m x n- gọi là ma trận điều kiện của bài toán;

𝐴𝑗- vectơ cột j của ma trận A – gọi là vectơ điều kiện;

b – vectơ vế phải của hệ phương trình ràng buộc;

Bài toán chính tắc còn có thể viết dưới dạng:

Trang 5

xj ≥ 0 (j = 1 n) hoặc:

1.7 Đặc điểm của phương án tối ưu của bài toán chính tắc

Phương án x của bài toán chính tắc là cực biên khi và chỉ khi hệ thống các vectơ {𝐴𝑗: 𝑥𝑗 > 0} độc lập tuyến tính Với giả thiết hạng [𝐴] = m thì một phương án cực biên không suy biến có đúng m thành phần dương, suy biến có ít hơn m thành phần dương

1.8 Cơ sở của phương án cực biên

Gọi m vectơ {𝐴𝑗} độc lập tuyến tính bào hàn hệ thống các vectơ tương ứng với các thành phần dương của phương án cực biên là cơ sở của phương án cực biên ấy

Ký hiệu một các quy ước cơ sở là J Các thành đặc trưng của một cơ sở J : |𝐽| = 𝑚 trong đó |𝐽| là số phần tử của J; {Aj: j ∈ J} độc lập tuyến tính

- Phương án cực biên không suy biến chỉ có một cơ sở duy nhất, đó là các vectơ tương ứng với các thành phần dương

- Phương án cực biên suy biến có nhiều cơ sở khác nhau, phần chung của chúng là các vectơ tương ứng với các thành phần dương

- xj(j ∈ J) gọi là thành phần cơ sở;

- x (k ∉ J) gọi là thành phần phi cơ sở

Trang 6

Thành phần cơ sở của phương án cực biên chính là hệ số phân tích vectơ b qua

cơ sở của phương án cực biên ấy, xác định bởi 𝑥𝐽 = 𝐴𝐽−1𝑏

1.9 Bài toán dạng chuẩn

Bài toán dạng chính tắc đặc biệt thể hiện ở : 𝑏𝑖 ≥ 0 (𝑖 = 1, 𝑚̅̅̅̅̅̅) mỗi phương trình có một biến với hệ số bằng 1 và không có mặt ở các phương trình khác Có thể

Dễ thấy bào toán dạng chuẩn cho ngay một phương án cực biên với cơ sở là cơ

sở đơn vị, cụ thể ở đây là 𝑥0 = (𝑏1, 𝑏2, … , 𝑏𝑚, 0,0, … ,0), với cơ sở là {A1, A2, … , Am} = E

1.10 Sự tồn tại phương án tối ưu

- Nếu bài toán có phương án và trị số hàm mục tiêu bị chặn dưới (trên) trên tập hợp các phương án thì bài toán có phương án tối ưu (giải được)

- Nếu bài toán có phương án cực biên và giải được thì phải có phương án cực biên tối ưu Do đó nếu bài toán tối ưu giải được thì phải có phương án cực biên tối ưu

- Nếu bài toán có hơn một phương án tối ưu thì sẽ có vô số phương án tối

ưu, chẳng hạn 𝑥0 và 𝑥∗ là 2 phương án tối ưu thì mọi vectơ 𝑥 = ℷ𝑥0+ (1 − ℷ)𝑥∗với 0 ≤ ℷ ≤ 1 đều là phương án tối ưu

1.11 Giới thiệu về Maple và lập trình giao diện Maplet

Maple là một phần mềm Toán học do Đại Học Tổng HợpWaterloo(Canada)

xây dựng và đưa vào sử dụng năm 1985 Sau nhiềulần cải tiến và phát triển qua

Trang 7

nhiều phiên bản khác nhau và ngày càng được hoàn thiện Maple chạy trên tất

cả các hệ điều hành, có trình trợ giúp (Help) rất dễ sử dụng Từ phiên bản 7, Maple cung cấp ngày càng nhiều các công cụ trực quan, các gói lệnh tự học gắn liền với toán phổ thông và đại học Ưu điểm đó khiến ngày càng có nhiều nước trên thế giới lựa chọn sử dụng Maple trong dạy-học toán tương tác trước đòi hỏi của thực tiễn và

sự phát triển của giáo dục

Mặc dù khả năng làm toán của Maple rất ưu việt nhưng những câu lệnh của nó thường nhọc nhằn khó nhớ Vì vậy, từ phiên bản 9 Maple có hổ trợ về phần thiết kế giao diện gọi là Maplet Maplet là một mảng giúp cho những người dùng Maple tự tạo nên các giao diện tính toán tùy theo yêu cầu của người sử dụng Mọi thao tác trên Maplet giống như chúng ta đang làm việc với môi trường Window của máy tính Vì vậy, việc người dùng tiếp cận đến với các đối tượng cũng dễ dàng hơn trước nhiều lần

Trang 8

Chương II

LẬP TRÌNH MAPLE GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH

Trong phần này, chúng tôi sẽ trình bày lại các phương pháp giải bài toán Quy hoạch tuyến tính bằng phương pháp hình học và phương pháp đơn hình Trong mỗi phương pháp chúng tôi trình bày thuật toán, ví dụ minh họa, sau đó là các mã lệnh cũng như giao diện minh họa của chương trình

Bước 1 : Biểu diễn tập phương án D trên mặt phẳng Oxy

Biểu diễn nghiệm của tất cả các bất phương trình hệ ràng buộc trên cùng một mặt phẳng tọa độ Oxy rồi xác định phần giao của các nghiệm đó Phần giao của các nghiệm của hệ ràng buộc là tập phương án D của bài toán

Bước 2 : Biểu diễn vectơ pháp tuyến và hàm mục tiêu

Vẽ vectơ pháp tuyến n⃗ = (c1, c2) và vẽ đường mức d: c1x + c2y = α

Bước 3: Giải bài toán

Trường hợp 1: Hàm mục tiêu có dạng f(x) = c1x + c2y → max

Cho d di chuyển theo hướng của vectơ pháp tuyến n⃗ :

Nếu d luôn luôn giao với D thì bài toán không giải được

Trang 9

Nếu d có vị trí tới hạn giao với D và D nằm về một phía của d thì bài toán giải được: mọi (x0, y0) ∈ d ∩ D đều là phương án tối ưu và giá trị tối ưu của bài toán là

f∗(x) = c1x0+ c2y0 Trong trường hợp này ta thấy d ∩ D có một điểm duy nhất hay một đoạn thẳng do đó bài toán có một phương án tối ưu duy nhất hay có vô số phương án tối ưu

Trường hợp 2: Hàm mục tiêu có dạng f(x) = c1x + c2y → min

Giải tương tự bài toán cực đại chỉ khác là cho d di chuyển ngược hướng của n⃗

global C, NTU, TUCT, TUCD;

Q := M;

t := max(abs(Q[1, 1]), abs(Q[1, 2]));

Q := Q/t;

n := ColumnDimension(C);

if CTieu = Min then P := NTUT;

Main1(n, Max, False, Check);

if TUCD= infinity then

Trang 10

p1 := inequal(H, x = HTx, y = HTy, optionsfeasible =

(color = "#5A68CF"), optionsclosed = (color = "#0F960B", thickness = 3), optionsexcluded = (color = "#9BF7ED", thickness = 2));

p := display({p1, p2, p3, p4});

Set('PlHinhHoc' = p)

end proc:

Trang 11

2.1.3.Giao diện của chương trình

Xét bài toán Quy hoạch tuyến tính hai biến

Giao diện mô tả tìm nghiệm bằng hình học:

Giao diện mô tả miền ràng buộc

Trang 12

Giao diện mô tả tìm nghiệm tối ưu

2.2 Phương pháp đơn hình

2.2.1 Nội dung của phương pháp

Xuất phát từ một phương án cực biên của bài toán dạng chính tắc, tìm cách đánh giá nó, nếu chưa tối ưu thì tìm cách chuyển sang một phương án cực biên khác tốt hơn Vì số phương án cực biên là hữu hạn nên sau một số hữu hạn bước hoặc kết luận bài toán không giải được vì trị số hàm mục tiêu không bị chặn trên tập phương

án hoặc sẽ tìm phương án cực biên tối ưu

2.2.2 Ước lượng của các biến

Trang 13

Cho x là phương án cực biên, cơ sở J Gọi Δk là ước lượng của biến 𝑥𝑘, xác định theo công thức : Δk = ∑j∈Jcjxjk− ck Chú ý rằng ước lượng của các biến cơ

sở Δj = 0 (∀j ∈ J)

2.2.3 Dấu hiệu tối ưu

Nếu đối với phương án cực biên x0, cơ sở J0 của bài toán dạng chính tắc có f(x) => 𝑚𝑖𝑛(𝑚𝑎𝑥) mà Δk ≤ (≥) 0, ∀k ∉ J0 thì x0 là phương án tối ưu

- Trường hợp riêng: nếu Δk < (>) 0, ∀k ∉ J0 thì x0 là phương án tối ưu duy nhất

- Nếu đối với phương án cực biên x0, cơ sở J0 thỏa mãn dấu hiệu tối ưu mà tồng tại một Δk = 0 với k ∉ J0 thì bài toán có thể có nhiều phương án tối ưu ngoài

x0

2.2.4 Định lý cơ bản (định lý về sự cải tiến phương án)

Nếu đối với phương án cực biên 𝑥0, cơ sở 𝐽0 của bài toán dạng chính tắc mà tồn ∃Δk > (<) 0 thì có thể cải tiến phương án, hoặc tìm được một dãy phương án trên đó trị số hàm mục tiêu giảm (tăng) vô hạn – bài toán không giải được – hoặc chuyển sang một phương án cực biên mới 𝑥1 tương đối tốt hơn 𝑥0: 𝑓(𝑥1) ≤(≥)𝑓(𝑥0) Trường hợp bài toán không suy biến (mọi phương án cực biên đều không suy biến) thì phương án cực biên 𝑥1 thực sự tốt hơn 𝑥0

2.2.5 Bảng đơn hình

Cho x là phương án cực biên cơ sở J Ta thành lập một bảng ghi các hệ số phân tích của vectơ b và các vectơ điều kiện Ak(k = 1, n̅̅̅̅̅) qua cớ sở J, theo mẫu quy định dưới đây Bảng này gọi là bảng đơn hình ứng với phương án cực biên 𝑥0hoặc cơ sở 𝐽0

Trang 14

Hàng cuối của bảng gọi là ước lượng Δk

2.2.6 Công thức đổi cơ sở

Giả sử J1 là cơ sở của phương án cực biên x1 thu được từ cơ sở J0 của phương

án cực biên x0 bằng cách đưa vectơ As vào cơ sở thay cho vectơ Ar, nghĩa là J1 =[J\{r}] ∪ {s} Khi đó quan hệ giữa các hệ số phân tích của cùng một vectơ Ak qua

cơ sở J0 và J1 được thể hiện thông qua công thứ đổi cơ sở tổng quát sau:

2.2.7 Thuật toán của phương pháp đơn hình

Giả sử đã biết phương án cực biên 𝑥0, cơ sở 𝐽0 Lập bảng đơn hình tương ứng Thuật toán được thực hiện theo các bước sau:

1) Kiểm tra tối ưu

Trang 15

Nếu Δk ≤ (≥) 0, ∀k ∉ J0 thì 𝑥0 là phương án tối ưu Nếu ∃Δk > (<) 0 , chuyển sang bước 2)

2) Kiểm tra tính không giải được của bài toán

Nếu ∃Δk > (<) 0 mà 𝑎𝑗𝑘 ≤ 0, ∀j ∉ J0 thì bài toán không giải được vì trì số hàm mục tiêu không bị chặn trên tập phương án Nếu mỗi Δk > (<) 0 đều có tương ứng ít nhất một 𝑎𝑗𝑘 > 0, chuyển sang bước 3)

3) Chọn vectơ đưa vào cơ sở, xác định vectơ loại khỏi cơ sở

Giả sử : max

Δk>0Δk(min

Δk<0Δk) = Δs, vectơ 𝐴𝑠được đưa vào cơ sở, tính δ0 =min

xjs {xj0/ajs} giả sử δ0 = xr0/ars, vectơ 𝐴𝑟 bị loại cơ sở

Như vậy 𝐽1 = [𝐽0/{𝑟}] ∪ {𝑠}, phần tử trục của phép biến đổi là 𝑎𝑟𝑠, trong bảng đơn hình nó nằm trên hàng vectơ loại ra (𝑥𝑟) và cột vectơ đưa vào (𝑥𝑠) đồng thời được ghi trong dấu [𝑎𝑖𝑗] Thành lập mẫu bảng đơn hình mới, thay 𝑥𝑟, 𝑐𝑟 tương ứng bằng 𝑥𝑠, 𝑐𝑠 và chuyển sang bước 4)

Áp dụng công thức đổi cơ sở tổng quát cho toàn bộ bảng Có thể mô tả công thức này bảng hai mệnh đề sau:

- Để tính hàng vectơ đưa vào (𝑥𝑠) ở bảng mới ta lấy hàng vectơ loại ra (𝑥𝑟)

ở bảng củ chia cho phần tử trục (𝑎𝑟𝑠)

- Dùng hàng vectơ đưa vào mới tính được 𝑥𝑠 làm chuẩn thực hiện phép biến đổi sơ cấp trên các hàng của bảng đơn hình sao cho mọi phần tử trên còn lại trên cột vectơ đưa vào 𝑥𝑠 đều trở thành 0

Kết quả ta thu được bảng đơn hình ứng với phương án cực biên mới 𝑥1, đối với 𝑥1quay trở lại bước 1) và quá trình lặp lại sau một số hữu hạn bước hoặc sẽ kết luận bài toán không giải được vì trị số hàm mục tiêu không bị chặn hoặc sẽ tìm được phương án cực biên tối ưu

Trang 16

2.2.8 Các chú ý khi thực hiện thuật toán

- Đối với bài toán có f(x) => 𝑚𝑎𝑥 có thể giải trực tiếp bằng thuật toán tương ứng, đồng thời cũng có thể chuyển thành bài toán với g(x) = −f(x) =>𝑚𝑖𝑛, nhưng cần lưu ý fmax = −gmin

- Về nguyên tắc có thể đưa bất kỳ vectơ nào ứng với Δk > (<) 0 vào cơ sở cũng đều cải tiến được phương án

- Trường hợp bài toán suy biến thì δ0 có thể bằng 0 Khi δ0 bằng 0 vẫn thực hiện thuật toán một cách bình thường, nghĩa là vectơ ứng với δ0 vẫn bị loại khỏi cơ

sở Tuy nhiên kết quả tính toán trong hai trường hợp này chỉ cho ta bảng đơn hình ứng với một cơ sở khác của cùng một phương án cực biên suy biến Dấu hiệu xuất hiện phương án cực biên suy biến là δ0 đạt tại nhiều chỉ số Khi đó sẽ chọn vectơ loại khỏi cơ sở trong số các vectơ ứng với δ0 theo quy tắc chọn ngẫu nhiên

Trang 18

TaoTuVungMoi := proc (k, l, P, n, CTieu, Ht, Check)

Trang 19

else

NTUT:=NTU;

TUCT:=-P[1,n+m+2];

if Ht=True then Maplets[Tools][Set](('MVNGTU')(value)

=NTUT); Maplets[Tools][Set](('MVGTTU')(value) =TUCT); fi:

2.2.11 Giao diện của chương trình

Xét bài toán Quy hoạch tuyến tính

Trang 20

Giao diện nhập hàm mục tiêu

Giao diện nhập miền ràng buộc

Ngày đăng: 05/12/2013, 08:52

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Quy Hoạch Tuyến Tính, Phan Quốc Khánh – Trần Huệ Nương ,NXB GD 2003 Khác
[2] Bài tập Quy hoạch tuyến tính, Trần Đình Ánh , NXB GD 2007 Khác
[3] Bài tập Quy hoạch tuyến tính, Giáo sư Trần Túc, NXB Khoa học và kỷ thuật 2001 Khác
[4] Giáo trình Lập trình Maple, Th.S Trần Công Mẫn, ĐH Khoa Học Huế Khác
[5] Bài giảng Quy Hoạch Tuyến Tính, TS. Phan Nhật Tĩnh, ĐH Khoa Học Huế Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w