1. Trang chủ
  2. » Giáo án - Bài giảng

Tối ưu hóa

103 0 0

Đ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 đề Tối Ưu Hóa
Tác giả Nguyễn Thị Vinh
Trường học Trường Đại Học Thủy Lợi
Thể loại tài liệu giảng dạy
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 103
Dung lượng 1,24 MB

Cấu trúc

  • 1.1 BÀI TOÁN TỐI ƯU VÀ VIỆC PHÂN LOẠI (4)
    • 1.1.1 Bài toán tối ưu tổng quát và một số thuật ngữ (4)
    • 1.1.2 Phân loại các bài toán tối ưu (6)
    • 1.1.3 Bậc của phương pháp giải các bài toán tối ưu (6)
  • 1.2 Một số khái niệm trong giải tích lồi (7)
    • 1.2.1 Tập lồi (7)
    • 1.2.2 Hàm lồi (8)
  • 1.3 Bài tập chương 1 (10)
  • 2.1 Các bài toán điển hình của QHTT (11)
    • 2.1.1 Bài toán về chế độ dinh dưỡng (11)
    • 2.1.2 Bài toán sử dụng nguyên vật liệu (12)
    • 2.1.3 Bài toán vận tải (tĩnh) (12)
    • 2.1.4 Bài toán cây trồng (13)
  • 2.2 Một số ví dụ về cách thiết lập bài toán QHTT (13)
    • 2.2.1 Bài toán ăn kiêng (13)
    • 2.2.2 Bài toán sản xuất (14)
  • 2.3 Phương pháp hình học giải bài toán QHTT (15)
    • 2.3.1 Ví dụ 1: Minh hoạ phương pháp hình học (15)
    • 2.3.2 Ví dụ 2: Minh hoạ phương pháp hình học (16)
  • 2.4 Bài toán QHTT dạng chuẩn và các khái niệm (17)
    • 2.4.1 Bài toán QHTT dạng chuẩn và việc chuẩn hóa các bài toán QHTT (17)
    • 2.4.2 Ví dụ minh họa (18)
    • 2.4.3 Các phương án của bài toán QHTT chuẩn (19)
    • 2.4.4 Điều kiện tồn tại nghiệm tối ưu (0)
  • 2.5 Phương pháp đơn hình (PPĐH) giải bài toán QHTT chuẩn (21)
    • 2.5.1 Đường lối chung và cơ sở của thuật toán (21)
    • 2.5.2 Tìm hiểu PPĐH qua việc giải bài toán sản xuất (21)
    • 2.5.3 Thuật toán đơn hình (23)
    • 2.5.4 Ví dụ (24)
    • 2.5.5 Một số vấn đề thường gặp (26)
    • 2.5.6 Sơ đồ khối và chương trình tính (32)
  • 2.6 Bài tập chương 2 (37)
  • 3.1 Bài toán đối ngẫu (BTĐN) (39)
    • 3.1.1 Khái niệm BTĐN (0)
    • 3.1.2 Định nghĩa (40)
    • 3.1.3 Các tính chất của hai BTĐN (41)
  • 3.2 Bài toán vận tải (43)
    • 3.2.1 Bài toán vận tải (BTVT) và sự tồn tại nghiệm tối ưu (0)
    • 3.2.3 BTVT không cân bằng: đưa về BTVT cân bằng rồi giải (48)
    • 3.2.4 Sơ đồ khối và chương trình tính (48)
  • 3.3 Qui hoạch tham số tuyến tính (QHTSTT) (50)
    • 3.3.1 Trường hợp hàm mục tiêu phụ thuộc tuyến tính vào một tham số (51)
    • 3.3.3 Vài mở rộng của bài toán QHTSTT (57)
  • 3.4 Bài toán qui hoạch nguyên tuyến tính (QHNTT) (57)
    • 3.4.1 Bài toán QHNTT tổng quát (57)
    • 3.4.2 Phương pháp nhánh và cận giải bài toán QHNTT (0)
  • 3.5 Bài tập chương 3 (62)
  • 4.1 Bài toán tìm đường đi (lộ trình) ngắn nhất hoặc dài nhất (65)
  • 4.2 Các nguyên tắc cơ bản của QHĐ (66)
  • 4.3 Thiết lập bài toán theo QHĐ và các phương trình truy hồi của Bellmann 66 (67)
    • 4.3.1 Thiết lập một bài toán theo QHĐ (67)
    • 4.3.2 Các phương trình truy hồi của R.Bellmann (68)
  • 4.4 Phương pháp thực hành trong QHĐ (71)
  • 4.5 Một số ví dụ (71)
  • 4.6 Bài tập chương 4 (77)
  • 4.8 Phương án (78)
    • 4.8.1 I (78)
  • 5.1 Phương pháp dò tìm cực trị địa phương của hàm một biến (79)
    • 5.1.1 Nội dung phương pháp lát cắt vàng (phương pháp bậc không) (79)
    • 5.1.2 Thuật toán (80)
    • 5.1.3 Ví dụ: Định vị điểm cực tỉểu của hàm f(x) = x 2 − x biết ε = 0,15 (80)
  • 5.2 Các phương pháp tụt dốc dò tìm cực trị địa phương của bài toán QHPT không ràng buộc nhiều chiều (83)
    • 5.2.1 Đặt vấn đề (83)
    • 5.2.2 Phương pháp đường dốc nhất (Steepest Descents) (83)
  • 5.3 Phương pháp gradient dò tìm cực trị địa phương của bài toán QHPT ràng buộc nhiều chiều (89)
    • 5.3.1 Một số khái niệm (89)
    • 5.3.2 Phương pháp Gradient (92)
  • 5.4 Bài tập chương 5 (95)
  • 6.1 Giới thiệu bộ công cụ SOLVER chuẩn trong MS-EXCEL (96)
    • 6.1.1 Một số khái niệm trong SOLVER chuẩn (96)
    • 6.1.2 Xây dựng mô hình SOLVER (98)
  • 6.2 Ví dụ (98)

Nội dung

Một phương án x*ε D làm tối ưu hàm mục tiêu được gọi là một phương án tối ưu hay một nghiệm tối ưu; fx* được gọi là giá trị tối ưu của bài toán tối ưu tổng quát Một số thuật ngữ - Bài t

BÀI TOÁN TỐI ƯU VÀ VIỆC PHÂN LOẠI

Bài toán tối ưu tổng quát và một số thuật ngữ

Bài toán tối ưu tổng quát:

Tìm giá trị lớn nhất (hay giá trị nhỏ nhất) của hàm đơn trị f(x) (1.1) thoả mãn các điều kiện: gi(x) ≥ (≤, =) bi, i=1,m (1.2)

Bài toán (1), (2), (3) được gọi là bài toán tối ưu tổng quát, hàm f(x) được gọi là hàm mục tiêu, các hàm gi(x) được gọi là các hàm ràng buộc, tập hợp

D= ∈ i ≥ ≤ = i = (1.4) được gọi là miền ràng buộc (miền chấp nhận được)

Một phương án x*ε D làm tối ưu hàm mục tiêu được gọi là một phương án tối ưu hay một nghiệm tối ưu; f(x*) được gọi là giá trị tối ưu của bài toán tối ưu tổng quát

- Bài toán tối ưu tổng quát được gọi là bài toán tối ưu không ràng buộc nếu không có một hạn chế nào trên miền X (không có hệ ràng buộc (2) hay

- Giá trị f(x*) tại nghiệm tối ưu x*∈ D còn được gọi là cực trị tuyệt đối (hay toàn cục) của bài toán (1), (2), (3) Nếu có một phương án x ∈ D: f(x) chỉ là giá trị tối ưu trong một lân cận của x thì f(x) được gọi là cực trị tương đối (hay địa phương) Vậy để tìm giá trị tối ưu của hàm mục tiêu f(x) trên miền, người ta thường tìm các cực trị tương đối, sau đó so sánh với các giá trị trên biên để xác định giá trị tối ưu

Một số tính chất quan trọng của cực trị của các hàm trơn

- Đối với hàm một biến ở điểm cực trị (tương đối) x ∈ D, ta có (x) 0, dx df = đối với hàm nhiều biến, véctơ gradientf của hàm mục tiêu f(x) bằng không, tức là

Những điểm x ε D thoả mãn điều kiện (5) được gọi là điểm dừng

Hình dưới đây cho ta các điểm dừng của hàm một biến y = f(x)

- Đối với hàm một biến, ở những điểm cực đại, độ cong của đường y = f(x) là một số âm, tức là (x) 0 dx f d

Còn ở những điểm cực tiểu thì bất đẳng thức (1.6) có chiều ngược lại Đối với hàm nhiều biến, điều kiện (1.6) tương đương với ma trận Hessian H(x) các đạo hàm riêng cấp hai của f(x) là xác định âm (dương), tức là y T H(x) y < 0 (>

Hình trên đây cho ta những điểm dừng của một hàm hai biến f(x1, x2) Đây là một hình vẽ các chu tuyến, trong đó những điểm có cùng giá trị dược nối với nhau bởi một đường cong Trong hình này còn có một điểm yên ngựa (saddle points).

Phân loại các bài toán tối ưu

Dựa trên các tính chất của các thành phần của bài toán tối ưu (1), (2), (3), người ta phân các bài toán tối ưu thành các loại sau:

1 Qui hoạch tuyến tính (QHTT): hàm mục tiêu và các hàm ràng buộc đều là hàm tuyến tính

2 Qui hoạch tham số: các hệ số của hàm mục tiêu và của các hàm ràng buộc phụ thuộc vào các tham số

3 Qui hoạch động: đối tượng xét tối ưu là các quá trình có nhiều giai đoạn (phát triển theo thời gian)

4 Qui hoạch phi tuyến: nếu hàm mục tiêu hoặc có ít nhất một hàm ràng buộc phi tuyến hoặc là cả hai trường hợp cùng xảy ra

5 Qui hoạch rời rạc (trường hợp riêng là qui hoạch nguyên): miền ràng buộc là rời rạc (hay nguyên)

6 Qui hoạch đa mục tiêu: xét nhiều hàm mục tiêu trên cùng miền ràng buộc.

Bậc của phương pháp giải các bài toán tối ưu

Cách thuận tiện để phân loại các phương pháp tối ưu là bậc của phương pháp giải Đó là bậc cao nhất của đạo hàm hàm mục tiêu mà các phương pháp sử dụng a- Phương pháp bậc không: chỉ cần đến các giá trị của hàm mục tiêu Chẳng hạn phương pháp đơn hình giải các bài toán QHTT là phương pháp bậc không b- Phương pháp bậc nhất: đòi hỏi cả giá trị của hàm lẫn véctơ đạo hàm (riêng)

Ví dụ của phương pháp bậc nhất là phương pháp gradient liên hợp c- Phương pháp bậc hai: đòi hỏi cả giá trị của hàm lẫn véctơ đạo hàm (riêng) cấp một và ma trận các đạo hàm riêng cấp hai Ví dụ của phương pháp bậc hai là phương pháp Newton

Xấp xỉ này là cơ sở toán học ẩn sau phần lớn các phương pháp tối ưu Nó dựa trên khai triển Taylor của hàm f(x) ở lân cận điểm x0 như một chuỗi luỹ thừa:

Hoàn toàn tương tự, khai triển Taylor được mở rộng cho hàm nhiều biến:

6 trong đó đạo hàm bậc nhất được thay thế bởi gradientf(x 0 ) và đạo hàm bậc hai được thay thế bởi ma trận Hessian H(x0)

Nếu x0 là điểm cực trị của hàm f(x) thì (8) trở thành:

( f 0 +Δ = 0 + Δ T Δ 0 + Δ 3 (1.9) vì các đạo hàm (riêng) bậc nhất tại điểm cực trị đều bằng không Số hạng O(∆x 3 ) ấn định sai số bậc ∆x 3 Do ∆x → 0, số hạng này sẽ trở nên nhỏ so với số hạng bậc hai

Vậy một hàm khả vi bậc hai bất kì luôn luôn xấp xỉ được bởi khai triển Taylor đến cấp hai của nó Điều này dẫn đến hệ quả là hầu hết các phương pháp tối ưu được thiết kế để tìm giá trị tối ưu của các hàm bậc hai Trong thực hành, hiếm khi ta gặp bài toán tối ưu mà hàm mục tiêu là hàm bậc hai Tuy nhiên khi chương trình tính hội tụ đến giá trị tối ưu thì mặt cong y = f(x) sẽ dần về mặt bậc hai Điều này có nghĩa là một thuật toán xấp xỉ là hội tụ tốt nếu có thể chỉ ra rằng nó hội tụ trên mặt bậc hai Đó là cơ sở toán học của phương pháp Newton

Một số khái niệm trong giải tích lồi

Tập lồi

Cho m vectơ { x i ∈ R n , i=1,…,m }; vectơ x ∈ R n đ ợc gọi là tổ hợp lồi của các vectơ này nếu :

Lưu ý: x đ ợc gọi là tổ hợp lồi thật sự của các {x i } nếu ngoài các ràng buộc trên ta có ∃ α i ∈[0,1]

Như vậy nếu S⊂R 2 là một tập lồi thì nó nó chứa trọn đoạn thẳng nối hai điểm bất kì của nó

Ví dụ về tập hợp lồi: Đoạn thẳng

∑ = hoặc hoặc hoặc Đỉnh cực biên :

Cho điểm x*∈S (với S là tập lồi):

Khi đó x* là một đỉnh cực biên của S Đa diện lồi : Là tập lồi S với số đỉnh cực biên là hữu hạn Ví dụ về đa diện lồi trong R 2 là các đa giác lồi Định lí 1: Các tập lồi là đóng đối với phép giao, phép cộng, phép nhân với một số và phép lấy tổ hợp tuyến tính, tức là nếu A và B là hai tập lồi trong Rn thì các tập hợp sau cũng là lồi:

Hệ quả 1: Miền chứa nghiệm của hệ phương trình đại số tuyến tính là một đa diện lồi.

Hàm lồi

- Hàm số f(x) xác định trên tập lồi S⊂R n được gọi là hàm lồi trên S nếu

- Hàm số f(x) được gọi là lồi chặt trên S nếu

- Hàm số f(x) được gọi là lõm (chặt) trên tập lồi S nếu hàm –f(x) là lồi (chặt) trên S

Các tính chất của hàm lồi

- Điều kiện để một hàm khả vi là lồi

8 Định lí 2: Cho hàm f: X→ R là một hàm khả vi trên tập lồi mở X Điều kiện cần và đủ để f là một hàm lồi trên X là f(x) + gradientf(x) (y-x) ≤ f(y) ∀x,y∈X

Nếu f khả vi hai lần thì điều kiện cần và đủ để f lồi trên X là ma trận Hessian H(x) của f(x) xác định không âm trên X, tức là y T H(x) y ≥0 ∀x∈X ,∀y∈R n

- Tính chất cơ bản về cực trị của một hàm lồi Định lí 3: Bất kì cực tiểu địa phương nào của một hàm lồi trên tập lồi cũng là cực tiểu tuyệt đối

Hệ quả 2: Bất kì cực đại địa phương nào của hàm lõm trên tập lồi cũng là cực đại tuyệt đói Định lí 4: 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 điểm cực biên

Bài tập chương 1

1> Xác định các miền mà trên đó các hàm sau đây là lồi (lõm): y = x 2 y = e x y = x y = sĩn

2> Vẽ các miền giới hạn bởi các ràng buộc sau và xét xem miền nào là miền lồi x2 2 – x1 + 3 < 0 x2 2 – x1 + 3 < 0 x1 + x2 – 5 < 0 x1 2 + x2 2 – 16 < 0

2 CHƯƠNG 2: QUI HOẠCH TUYẾN TÍNH (QHTT)

Các bài toán điển hình của QHTT

Bài toán về chế độ dinh dưỡng

Xét n loại thức ăn Fj (như: rau, đậu, bơ, sữa, gạo, mì, ) và m yếu tố dinh dưỡng cần thiết Ni (như: vitamin các loại, chất béo, chất sắt, chất đạm, ) Biết aij là hàm lượng của yếu tố Ni trong một đơn vị thức ăn Fj , bi là tổng hàm lượng tối thiểu của yếu tố Ni cần cho một khẩu phần; cj là giá một đơn vị thức ăn Fj

Bài toán đặt ra là: Tìm một chế độ ăn uống thích hợp nhất, sao cho thỏa mãn đầy đủ mọi yêu cầu về dinh dưỡng với tổng chi phí rẻ nhất

Gọi xj là số đơn vị thức ăn Fj cần mua, bài toán trên đưa về tìm xj sao cho:

Các điều kiện ràng buộc sẽ là:

Lưu ý là hệ (2.2) gồm m bất phương trình tuyến tính có cùng một chiều ≥ với các hệ số tự do bi ≥ 0 (i = 1 ÷ m)

Bài toán sử dụng nguyên vật liệu

Trong bảng dữ liệu đã cho ở trên, người ta cần sản xuất n mặt hàng Fj (như: bàn, tủ, ghế, ) từ m loại nguyên vật liệu Ni (chẳng hạn: gỗ, gương, khung nhôm, ) Biết trữ lượng hiện có của Ni là bi đơn vị, aij là số nguyên liệu thứ i cần thiết để làm ra một đơn vị hàng thứ j; cj là giá bán ra của một đơn vị hàng Fj

Gọi xj là số đơn vị hàng Fj cần sản xuất Muốn sử dụng hợp lý số nguyên vật liệu hiện có để làm ra các mặt hàng bán được nhiều tiền nhất, ta sẽ phải tìm xj sao cho:

Các điều kiện ràng buộc sẽ là:

Lưu ý là hệ (2.5) gồm m bất phương trình tuyến tính có cùng một chiều ≤ với các hệ số tự do bi ≥ 0 (i = 1 ÷ m).

Bài toán vận tải (tĩnh)

Lập kế hoạch vận chuyển hết số hàng có trong m nhà kho Ni đến n cửa hàng Fj

(i=1÷ m; j =1÷ n) sao cho tổng cước phí vận chuyển là nhỏ nhất Biết số lượng hàng có trong kho Ni là bi và yêu cầu của cửa hàng Fj là cj ; aij là cước phí vận chuyển một đơn vị hàng từ kho Ni đến cửa hàng Fj

Bài toán đưa về tìm số hàng vận chuyển xij (đơn vị hàng) từ kho Ni đến cửa hàng

Các điều kiện ràng buộc sẽ là:

1 i bi c (cung và cầu bằng nhau), bài toán sẽ có m x n ẩn không âm, thỏa mãn (m + n − 1) phương trình độc lập và làm cho hàm mục tiêu L đạt cực tiểu tuyệt đối.

Nhìn chung, ba bài toán điển hình nêu trên đều dẫn tới việc tìm một véctơ X có n tọa độ không âm, thỏa mãn hệ các phương trình hoặc bất phương trình tuyến tính cho trước, sao cho hàm mục tiêu L (tuyến tính theo các toạ độ của X) đạt GTLN hoặc GTNN, nghĩa là cần tìm max (hoặc min) của tích C T X (i) với hệ các điều kiện: A.X ≤ b (≥ hoặc = b) (ii) và: X ≥ 0 (iii) với b là một ma trận cột, gồm m phần tử bi là các hệ số tự do có thể dương, âm hay bằng 0, C T là một ma trận hàng, gồm n phần tử ci là các hệ số ràng buộc có thể dương, âm hay bằng 0, các hệ thức (i), (ii), (iii) được khái quát hoá từ các hệ thức tương ứng của ba bài toán đã nêu Trong cách viết này, hệ (ii) đối với các bài toán khác nhau có thể gồm cả các bất phương trình và các phương trình Chẳng hạn, xét bài toán sau đây.

Bài toán cây trồng

Trên m cánh đồng Ni với diện tích tương ứng bi ta dự định trồng n loại hoa màu

Fj Biết aịj (đơn vị là tấn / ha) là năng suất đạt được khi trồng loại hoa màu thứ j trên cánh đồng thứ i Biết yêu cầu thu hoạch tối thiểu cho loại hoa màu thứ j là cj (tấn) và giá bán một tấn hoa màu này là dj Như vậy cần tìm xij: diện tích (tính theo ha) của cánh đồng thứ i nên trồng loại hoa màu thứ j (điều kiện (iii): xij ≥ 0 ∀i, j), sao cho tổng số tiền thu được sau khi bán hết số hoa màu trồng được là lớn nhất (điều kiện (i)) Hơn nữa, tổng diện tích trồng tất cả các loại hoa màu trên cánh đồng thứ i không được vượt quá bi (điều kiện (ii)) và tổng thu hoạch loại hoa màu thứ j (trên m cánh đồng ) phải vượt quá hoặc ít ra là bằng cj (điều kiện (ii))

Bài toán được viết gọn lại như sau:

Các điều kiện ràng buộc sẽ là:

Một số ví dụ về cách thiết lập bài toán QHTT

Bài toán ăn kiêng

Để duy trì sức khoẻ, một người ăn kiêng phải theo một chế độ ăn cho nhu cầu dinh dưỡng tối thiểu về canxi, đạm và vitamin A của hai loại thức ăn I và II mà hàm lượng các chất dinh dưỡng cũng như giá cả (cho 100 g) được cho ở bảng dưới đây:

Thức ăn I (100g) Thức ăn II

(100g) Nhu cầu tối thiểu hàng ngày

Hãy tìm cách tổ hợp 2 loại thức ăn này để đảm bảo nhu cầu dinh dưỡng hàng ngày với giá rẻ nhất Đưa về bài toán QHTT

Gọi số lượng của từng loại thức ăn cần phải mua hàng ngày là x1 và x2 tương ứng Bài toán đặt ra là tìm GTNN của hàm mục tiêu

L = 3x1 + 4x2 thoả mãn các ràng buộc

, vitamin cÇu nhu ạm cÇu nhu xi can cÇu nhu

Bài toán sản xuất

Một nhà máy sản xuất hai loại sản phẩm I và II Nhà máy có ba phân xưởng: cắt, trộn và đóng gói sản phảm Mỗi ca của mỗi phân xưởng làm việc 8 giờ một ngày Qui trình sản xuất như sau:

- Sản phẩm I được cắt rồi đóng gói, mỗi tấn hàng cần nửa giờ cắt và 20 phút đóng gói

- Sản phẩm II được trộn rồi đóng gói, mỗi tấn hàng cần 1 giờ trộn và 40 phút đóng gói

Mỗi tấn hàng của sản phẩm I và II được sản xuất sẽ thu lợi cho nhà máy 40 ngàn và 30 ngàn đồng tương ứng

Hãy lập kế hoạch sản xuất cho nhà máy sao cho trong một ca sản xuất, nhà máy thu được lợi nhuận cao nhất Đưa về bài toán QHTT

Số liệu được tóm tắt ở bảng dưới đây:

Phân xưởng Sàn phẩm I Sàn phẩm II Thời gian cho phép (giờ)

Trộn (1 tấn) Đóng gói (1 tấn) 1/3 2/3 8

Gọi tổng lợi nhuận thu được là L, số tấn hàng loại I cần sản xuất sẽ là: x1, số tấn hàng loại II sẽ là x2 Yêu cầu của bài toán là tìm GTLN của hàm mục tiêu

L = 40x1 + 30x2 thoả mãn ràng buộc trong thời gian cho phép:

, gãi tÊn sè trén tÊn sè cắt tÊn sè )

Nhận xét: Trong các bài toán nêu trên, nhiều khi do thiếu thông tin đầy đủ về dữ liệu thực tế, ta chưa có ngay các hệ số aịj, bi, cj mà chỉ ước lượng được chúng trong một khoảng nào đó, hoặc biết chúng phụ thuộc một hay nhiều tham số nào đó Khi đó, bài toán thuộc lĩnh vực QHTT có tham số.

Phương pháp hình học giải bài toán QHTT

Ví dụ 1: Minh hoạ phương pháp hình học

Giải bài toán ăn kiêng ở mục trước: tìm GTLN của hàm mục tiêu

L = 3x + 4y thoả mãn các ràng buộc

Giải: Đầu tiên, ta vẽ các đường biên của miền chấp nhận được D của nghiệm

Chọn lấy một phía của mỗi đường biên phù hợp với chiều của các bất đẳng thức (1)÷(4) Như thế, ta sẽ được miền D (hữu hạn, vô hạn hoặc bán vô hạn) Trong ví dụ này, miền D là vô hạn

Vẽ véctơ cr = 3ri +4rj Đây chính là véctơ pháp tuyến của các đường thẳng có phương trình 3x+4y = m = const Các đường thẳng nói trên đều song song với đường thẳng có phương trình: 3x+4y = 0, gọi là đường thẳng tựa ( đ-th-t.)

Ta nhận thấy là giá trị (3x+4y) giảm dần theo hướng của - c r, vì thế có thể tịnh tiến đ-th-t theo hướng của - c rđể nó có thể quét cả mặt phẳng Khi đó, điểm (3; 1) là vị trí cuối cùng mà đ-th-t chạm vào miền D Chính tại điểm này hàm L đạt GTNN

Ví dụ 2: Minh hoạ phương pháp hình học

Giải bài toán sản xuất ở tiết trước: Tìm GTLN của hàm mục tiêu

L = 40x + 30y thỏa mãn các điều kiện sau:

Giải: Đầu tiên, ta vẽ các đường biên của miền cháp nhận được D của nghiệm

Chọn lấy một phía của mỗi đường biên phù hợp với chiều của các bất đẳng thức (2.18)÷(2.21) Như thế, ta sẽ được miền D (hữu hạn hoặc vô hạn, bán vô hạn) Trong ví dụ này, miền D là hữu hạn

Vẽ véctơ cr = 4ri +3rj Đây chính là véctơ pháp tuyến cuả các đường thẳng có phương trình 40x+30y = m = const Các đường thẳng nói trên đều song song với đường thẳng có phương trình: 4x+3y = 0 (đ-th-t)

Ta nhận thấy là giá trị (4x+3y) tăng dần theo hướng của c r, vì thế có thể tịnh tiến đ-th- t theo hướng của c rđể nó có thể quét cả mặt phẳng Khi đó, điểm (0; 0) là vị trí đầu tiên mà đ-th-t chạm vào miền D, điểm (16; 4) là vị trí cuối cùng mà đ-th-t rời khỏi miền Chính tại 2 điểm này, hàm L lần lượt đạt GTNN và GTLN

Chú ý: Đôi khi, trong miền chấp nhận được của nghiệm (vô hạn hoặc bán vô hạn), hàm đang xét có thể không có GTLN hoặc GTNN Cũng có khi bài toán được xét có vô số nghiệm, đó là trường hợp tồn tại tập hợp các điểm tối ưu nằm trên những cạnh của miền D, vuông góc với véctơ c r Chẳng hạn, khi phải tìm GTLN của x, với các điều kiện (2.18),(2.19),(2.20) trong ví dụ trên, đ-th-t sẽ trùng với trục Oy và song song với một cạnh của D Khi đó, x sẽ đạt GTLN bằng 3 ứng với vô số giá trị y ∈[0; 8]

Nhìn chung, phương pháp hình học rất trực quan và cho ta kết quả nhanh chóng Hạn chế của phương pháp này là số biến không thể nhiều quá 2, và ngay với trường hợp ít biến, việc biểu diễn miền D trên mặt phẳng nhiều lúc rất khó khăn

Từ phương pháp hình học, người ta nghĩ đến một thuật toán khác để tìm GTLN và GTNN trong QHTT: Đầu tiên, hãy tìm một đỉnh của miền chấp nhận được D, sau đó tìm một hướng đi từ đỉnh này sang đỉnh khác sao cho giá trị hàm mục tiêu tăng (giảm) dần Nếu có một thuật toán như vậy, ta sẽ tìm được một hoặc nhiều đỉnh, tại đó hàm được xét đạt GTLN (GTNN) hoặc chứng tỏ được là hàm không có GTLN (GTNN) Ý tưởng này đã đưa Dantzig tới việc phát minh ra thuật toán đơn hình (bảo vệ năm 1947) mà ta sẽ nghiên cứu ở mục sau.

Bài toán QHTT dạng chuẩn và các khái niệm

Bài toán QHTT dạng chuẩn và việc chuẩn hóa các bài toán QHTT

Bài toán QHTT dạng chuẩn:

Tìm GTLN của hàm mục tiêu L = ∑

1 i cixi thỏa mãn hệ các ràng buộc:

17 trong đó ma trận các hệ số vế trái của hệ (1) là A m x n = (aij) có hạng m, rank(A)=m,

Với các kí hiệu trên, có thể viết gọn lại bài toán QHTT chuẩn như sau:

Tìm GTLN của hàm mục tiêu L = C T X thỏa mãn hệ các ràng buộc:

AX , ( ) Đưa bài toán QHTT về dạng chuẩn

Trường hợp 1: Bài toán tìm GTNN của hàm mục tiêu L = ∑

1 i cixi Đưa về bài toán tìm GTLN của hàm mục tiêu L* = -L

Trường hợp 2: Phương trình thứ i trong hệ (2.22) có hệ số vế phải bi ≤ 0

Nhân cả hai vế của phương trình này với (–1)

Trường hợp 3: Hệ ràng buộc (2.22) có dạng bất đẳng thức ≥ m 1, i , b x a n

≥ Ở phương trình thứ i ta thêm vào vế trái biến chênh lệch (BCL) xn+i ≥ 0 đã nhân với hệ số (–1): m 1, i , b x x n a

Trường hợp 4: Hệ ràng buộc (2.22) có dạng bất đẳng thức ≤ m 1, i , b x n a

≤ Ở phương trình thứ i ta thêm vào vế trái BCL xn+I ≥ 0 : m 1, i , b x x n a

Ví dụ minh họa

Bài toán tìm GTNN của hàm mục tiêu

L = 6x1 + 8x2 thoả mãn các ràng buộc bất đẳng thức

2 1 cÇu ạm cÇu cÇu x x x x x x được đưa về bài toán QHTT chuẩn sau: tìm GTLN của hàm mục tiêu

L* = - 6x1 - 8x2 thoả mãn các ràng buộc đẳng thức

, , , , cÇu nhu ạm cÇu nhu xi can cÇu nhu )

Dễ thấy rằng hạng của ma trận ràng buộc bằng 3 (= số ràng buộc)

Bài toán tìm GTLN của hàm mục tiêu

L = 40x1 + 30x2 thoả mãn các ràng buộc bất đẳng thức

, tÊn sè trén tÊn sè cắt tÊn sè )

( được đưa về bài toán QHTTchuẩn sau: tìm GTLN của hàm mục tiêu

L = 40x1 + 30x2 thoả mãn các ràng buộc đẳng thức:

( tÊn sè trén tÊn sè cắt tÊn sè

Dễ thấy rằng hạng của ma trận ràng buộc bằng 3 (= số ràng buộc)

Các phương án của bài toán QHTT chuẩn

Nhận xét rằng miền D thoả mãn các điều kiện ràng buộc (2.22) và (2.23) của bài toán QHTT chuẩn là một tập lồi đóng trong R với một số hữu hạn đỉnh cực biên và + n nghiệm tối ưu X cần tìm sẽ là một trong các đỉnh cực biên của miền D Từ nhận xét này, người ta đưa ra khái niệm về các phương án của bài toán QHTT chuẩn như sau:

- Nếu X∈R và AX = b thì X là một phương án khả thi (X∈D) + n

- Nếu phương án khả thi X là một đỉnh của miền D thì X là một phương án cực biên Khi đó mỗi biến xi > 0 gọi là một biến cơ sở của phương án, các vectơ cột A i chứa các hệ số của biến cơ sở xi trong hệ phương trình (2.22) gọi là các vectơ cơ sở

- Nếu X là một phương án cực biên và hàm mục tiêu L đạt GTLN thì X là một phương án tối ưu

- Phương án cực biên X được gọi là không thoái hóa nếu ma trận các hệ số của các biến thành phần xj > 0 của X có hạng đúng bằng m, nghĩa là nó ứng với đúng một nghiệm cơ sở với m biến cơ sở

- Bài toán QHTT chuẩn được gọi là không thoái hóa nếu mọi phương án cực biên đều không thoái hóa

2.4.4 Điều kiện tồn tại nghiệm tối ưu

Giả sử bài toán QHTT chuẩn không thoái hóa và X T = (x1 x2 … xm 0 … 0) là một phương án cực biên với các vectơ cơ sở là các véctơ cột tương ứng của ma trận A:

Khi đó mọi vectơ A k phi cơ sở đều biểu diễn được dưới dạng tổ hợp tuyến tính của các vectơ cơ sở: n 1, m k , A z

(2.24) các hệ số zjk được xác định một cách duy nhất từ việc giải hệ phương trình n 1, m k , m 1, i , z a a m

= Đối với phương án cực biên này ta có thể viết lại hệ ràng buộc (2.22)

1 j Ajx (vì xm+1= … = xn = 0) và tính giá trị của hàm mục tiêu

, (c1, c2, …, cm gọi là các chi phí cơ sở)

(cm+11, cm+2, …, cn gọi là các chi phí ngoài cơ sở) Tính thêm các giá trị n 1, m k , t z c jk k m

(tm+1, …, tn gọi là các lượng gia giảm chi phí) và kí hiệu

(∆k gọi là các chi phí trượt giảm) Định lí: Nếu phương án cực biên X T = (x1 x2 … xm 0 … 0) của bài toán QHTT chuẩn thỏa mãn điều kiện các chi phí trượt giảm không dương, tức là

Điều kiện tồn tại nghiệm tối ưu

∆k ≤ 0 ∀ k = m + 1, n (2.25) thì X là phương án tối ưu (khi đó L là GTLN cần tìm)

Nhận xét 1: Trong (2.24) nếu Ak là một véctơ cơ sở thì chỉ có một hệ số zkk = 1, còn các hệ số zjk khác đều bằng 0, do đó ∆k = tk – ck = 0 ∀ k = 1, m Vì vậy điều kiện (2.25) vẫn còn đúng ∀ k = 1, n

Nhận xét 2: Nếu bài toán QHTT chuẩn đã cho không thoái hóa thì (2.25) cũng là điều kiện cần của phương án tối ưu

Phương pháp đơn hình (PPĐH) giải bài toán QHTT chuẩn

Đường lối chung và cơ sở của thuật toán

PPĐH dựa trên 2 tính chất sau:

- Nếu bài toán QHTT có phương án tối ưu thì có ít nhất 1 đỉnh của miền 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 tìm phương án tối ưu

Hai giai đoạn của thuật toán đơn hình

Giai đoạn một: tìm một phương án cực biên (một đỉnh của D)

Giai đoạn hai: kiểm tra điều kiện tối ưu đối với phương án này Có 2 khả năng xuất hiện:

- Nếu điều kiện tối ưu được thoả mãn thì đó là phương án tối ưu

- Nếu điều kiện tối ưu không được thoả mãn thì ta chuyển sang phương án mới sao cho giá trị của hàm mục tiêu được cải thiện

Tiếp tục lặp lại giai đoạn này cho đến khi nhận được phương án tối ưu hoặc dẫn đến tình huống bài toán không có phương án tối ưu.

Tìm hiểu PPĐH qua việc giải bài toán sản xuất

Tìm GTLN của hàm mục tiêu L = 40x1 + 30x2 ↔ L – 40x1 – 30x2 = 0 thoả mãn hệ phương trình các ràng buộc:

Bài toán trên có thể viết dưới dạng bảng các dữ liệu ban đầu như sau

Dễ thấy rằng hạng của ma trận hệ số và ma trận mở rộng đều bằng 3 (= số ràng buộc) Chọn x1, x2, x3 là 3 biến cơ sở (BCS), còn x4, x5 là 2 biến tự do (BTD) Khi đó, ta có thể biểu diễn các BCS và hàm mục tiêu L qua các BTD:

Do x4, x5 ≥ 0, nên nếu ta chọn x4 = x5 = 0 thì x1 = 8; x2 = 8; x3 = 8 và

L1 = 560 Đây là kết quả bước 1, nó cho ta một đỉnh trong R 5 của miền thừa nhận được là (8;8;8;0;0), tương ứng với giá trị của hàm mục tiêu L1 = 560 Ta gọi đỉnh trên là phương án cực biên thứ nhất Dĩ nhiên, ta thấy ngay rằng: L1 chưa phải là GTLN của L Nhìn vào biểu thức của L (trong (d)), ta thấy còn có thể tăng L bằng cách tăng x4 (để có L1 ta đã chọn x4=0; bây giờ cần gán cho x4 một giá trị dương mới) Vấn đề là tăng x4 đến bao nhiêu trong những điều kiện ràng buộc đã cho?

Dựa vào ba biểu thức (a1), (b1), (c1), chú ý rằng x1;x2;x3 đều không âm và x5 = 0, ta rút ra các điều kiện cho x4 là:x 4 ≤ 8 ; x 4 ≥ − 4 ; x 4 ≤ 4 ; (e)

Như thế, để thỏa mãn cả 3 điều kiện (e), ta chỉ có thể tăng x4 đến 4 là cùng (vì nếu x4 tăng quá 4, x3 sẽ âm!)

Cho x4 = 4 (x5 = 0 và không thể tăng x5 vì như thế, L sẽ giảm!), ta sẽ có một phương án cực biên mới là: (16; 4; 0; 4; 0), ứng với các phương trình sau đây:

Với phương án cực biên mới này, ta có L = L2 = 760 Rõ ràng là L2 > L1 Bây giờ, dựa vào hệ thức (f), ta thấy L = Lmax, bởi vì việc tăng x3, x5 sẽ chỉ làm giảm giá trị của L Phương án cực biên mới, vì thế, là phương án tối ưu

Quá trình lập luận để tìm nghiệm cơ sở và chuyển từ cơ sở này sang cơ sở khác có thể thực hiện trên các bảng đơn hình (BĐH) Với ví dụ trên, ta có các BĐH như sau:

BCS x 4 x5 Hstd Tỉ số Ghi chú x1 x2 x 3

BCS x3 x5 Hstd Tỉ số Ghi chú x1 x2 x4

Thuật toán đơn hình

Để thiết lập các BĐH, ta theo các bước như sau:

Bước 1 Đưa hệ các ràng buộc (gồm m phương trình, n ẩn số) về một hệ rút gọn gồm m phương trình đối với m BCS biểu diễn qua (n−m) BTD Không làm mất tính tổng quát, giả sử m BCS đầu tiên là (x1, x2, , xm) và các BTD được kí hiệu là xm+1,xm+2, ,xn Sau khi viết lại biểu thức rút gọn của hàm L như là phương trình cuối cùng:

L + γm+1 xm+1 + γm+2 xm+2 + … + γn xn = γ0 ta lập BĐH đầu tiên như sau:

BCS xm+1 xm+2 xj xn Hstd Tỉ số x1 a1,m+1 a1,mr+2 a1,j a1,n b1 x2 a2,m+1 a2,m+2 a2,j a2,n b2

… xi ai,m+1 ai,im+2 … ai,j ai, n bi

… xm am,mr+1 am,mr+2 … am, j am, n bm

Bảng trên cho ta một phương án cực biên đầu tiên, đó là:

23 trong đó, ta đã gán các HSTD vào các BCS tương ứng, còn (n−m) BTD được cho bằng

Bước 2 Tìm cột chọn j = q theo điều kiện γq < 0, γq có GTNN và ở cột này phải có ít nhất một hệ số a iq dương Ta không quan tâm đến những cột có γq ≥ 0, bởi vì việc tăng các biến tương ứng chỉ dẫn tới giảm hoặc không thay đổi giá trị của hàm mục tiêu

Bước 3 Tìm hàng chọn i = p theo điều kiện là tỉ số giữa hai giá trị tương ứng ở cột hệ số bi và cột chọn q là nhỏ nhất, nghĩa là:

Như ở ví dụ trên cho thấy, điều kiện chọn hàng như thế sẽ bảo đảm cho các biến cơ sở mới có giá trị không âm

Giao của hàng chọn p và cột chọn q được gọi là phần tử chọn apq Khi có apq là phần tử chọn, ta hiểu rằng: cần loại xp ra khỏi BCS và đưa xq, hiện đang là BTD vào thay xp

Bước 4 Lập BĐH thứ hai (nên viết tiếp ngay vào bảng trước) ta đổi chỗ xp và xq cho nhau Thực hiện phép biến đổi tương đương các hệ số trong bảng thứ nhất (giống như phép bđtđ Gauss-Jordan), ta sẽ tính được các hệ số tương ứng trong bảng thứ hai

Cụ thể là: cò H BĐ trong p i a a

-a a a , a a a a 1 pq iq pj ij ij pq iq iq pq pj pj pq pq q j míi và míi míi míi

Bước 5 Dừng lại hoặc trở về bước 2 rồi lặp lại thuật toán đơn hình theo một trong các trường hợp sau đây: a) Trong BĐH, nếu còn có một hệ số đánh giá âm (hệ số này nằm ở hàng cuối cùng và chính là hệ số trong biểu thức rút gọn của hàm mục tiêu L), thêm vào đó, cột chứa hệ số này còn có ít nhất một hệ số aij dương, thì BĐH này chưa cho ta phương án tối ưu Cần trở về bước 2 rồi lặp lại các bước tiếp theo b) Nếu tất cả các hệ số đánh giá ở hàng cuối của BĐH đều không âm, bảng này cho ta nghiệm tối ưu, giá trị của L khi đó chính là GTLN Các giá trị bi trong cột HSTD của bảng cuối cùng này cho phép ta viết ngay được phương án tối ưu Bài toán QHTT đã được giải quyết c) Nếu có một hệ số đánh giá âm và cột chứa hệ số này gồm toàn các phần tử aij không dương, khi đó L không bị chặn trên, tức là trạng thái tối ưu không đạt tới được Ta có thể viết Lmax = +∞.

Ví dụ

1 Tìm min F = min (x1 − x2 + x3 + x4 + x5 − x6 ) thoả mãn các điều kiện sau:

Giải: Đổi bài toán về dạng tìm max L = max (−x1 + x2 − x3 − x4 − x5 + x6) và chọn các BCS là x4; x2; x5 rồi viết các số liệu đã cho vào bảng sau:

Cần nhớ rằng đây chưa phải là một BĐH (vì các hệ số đánh giá L ở các cột BCS x2; x4; x5 chưa bằng 0) Để có BĐH đầu tiên ta cần nhân các hàng BCS x4; x2; x5 theo thứ tự với (−1); 1; (−1) rồi cộng tất cả vào hàng L Như vậy ta sẽ có BĐH đầu tiên, trong đó phương án cực biên đầu tiên cho ta giá trị (−13) < 0 chứng tỏ là trong quá trình tìm max L, ta đã không đi từ số 0, mà “lùi” lại 13 đơn vị để sau đó tăng L lên cho tới GTLN (nếu có)

Xuất phát từ BĐH này, ta tiến hành thuật toán đơn hình Kết quả cho các BĐH :

Vậy GTNN cần tìm là Fmin = −5 ứng với nghiệm cơ sở là: (0; 5; 1,5; 0; 0; 1,5)

2 Tìm max L = max (0,67x4 − 0,33x5 + 3) thoả mãn các điều kiện sau đây:

Giải: chọn các BCS là x1; x2; x3 rồi viết các số liệu đã cho vào bảng sau

Nhìn vào BĐH ta thấy để cực đại giá trị của L ta phải chọn cột x4, nhưng không có tỉ số dương nào ở cột này để tìm hàng chọn p Vì vậy x4, và do đó L, có thể tăng vô hạn Vậy GTLN của hàm L không tồn tại, tức là trạng thái tối ưu không đạt tới được Ta có thể viết Lmax = +∞.

Một số vấn đề thường gặp

Lựa chọn cơ sở ban đầu

Vấn đề 1: Đảm bảo sự tồn tại cơ sở ban đầu sao cho các BCS không âm, các BTD bằng không khi các ràng buộc có dạng n a x j b i ; b i 0

Giải pháp: ta chỉ cần đưa vào các BCL (để loại bỏ sự chênh lệch giữa hai vế) rồi chọn các BCL làm BCS, các biến ban đầu làm BTD

Vấn đề 2: Khi sự lựa chọn cơ sở không hiển nhiên

Giải pháp: nên thêm vào các biến nhân tạo (BNT) cụ thể như sau

Thông thường, để lập BĐH đầu tiên, ta cần tính hạng ma trận các hệ số, sau đó chọn các BCS rồi biểu diễn chúng qua các BTD Với các bài toán phức tạp, việc làm trên đòi hỏi phải có kỹ năng tính toán chính xác Để tránh nhầm lẫn, ta thêm vào các biến mới gọi là BNT theo các bước như sau:

*) Viết lại hệ ràng buộc sao cho các hệ số hằng số bi không âm

**) Với các ràng buộc có dạng n a x j b i ; b i 0

∑ , (kể cả các ràng buộc có dạng đẳng thức) ngoài việc bắt buộc phải thêm các BCL với dấu trừ (−) ở trước để

“san bằng” hai vế, ta nên thêm vào các BNT y 1 , y 2 , …, y k Dĩ nhiên, ta sẽ phải giải một bài toán nhiều biến hơn, nhưng việc chọn cơ sở đầu tiên sẽ dễ hơn rất nhiều Đặc biệt, khi dùng máy vi tính để giải các bài toán QHTT, việc tăng số BNT không làm khó khăn thêm việc thực hiện thuật toán mà ngược lại, điều này làm dễ dàng hơn cho người lập trình

Khi dùng BNT, ta cần luôn luôn nhớ: giá trị các biến y 1 , , y 2 , …, y k đúng ra là bằng không Như vậy, ở BĐH cuối cùng, BNT không thể là BCS Để loại bỏ nhanh chóng các biến yk khỏi các cơ sở ở vòng lặp trước, ta chia quá trình giải thành 2 giai đoạn:

1 Giải bài toán phụ tìm GTNN của hàm mục tiêu P = y 1 + y 2 + … + y k hay

GTLN của hàm mục tiêu M = - P = – (y 1 + y 2 + … + y k ) với các điều kiện ràng buộc đã cho và các BNT y i được chọn là các biến cơ sở ban đầu GTNN của M là

0 vì các BNT cuối cùng phải nhận giá trị 0 và bị chuyển thành các biến tự do

2 Giải bài toán tìm GTNN của hàm mục tiêu L ban đầu kế thừa BĐH cuối cùng của giai đoạn 1 ( bỏ qua hàng hệ số của M và các cột hệ số của y i )

Bài toán đặt ra Bài toán chuẩn tương đương Ở đây, y là một BNT Việc đưa thêm BNT (còn gọi là “biến giả”) y kèm theo yêu cầu tìm max của hàm M ≤ 0 ta sẽ có thể nhanh chóng loại được BNT ra khỏi danh sách các biến cơ sở (khi không muốn bán một thứ gì đó, người ta thường nói giá thật cao; khi không muốn mua một thứ gì đó, người ta thường trả giá thật thấp, đây chính là ý tưởng của “phương pháp hệ số phạt M” mà người ta thường sử dụng khi dùng các BNT) Ngoài ra, nếu ở BĐH cuối cùng còn lại dù chỉ một BNT là biến cơ sở, người ta đã chứng minh là khi đó hàm mục tiêu không có GTLN

Sau đây, ta lập BĐH đầu tiên để giải ví dụ vừa nêu Để ý là, trong bảng dữ liệu ban đầu, ta thấy ngay nên chọn y và x4 là BCS Giả thiết hệ số M rất lớn sẽ đảm bảo được việc BNT y sẽ không phải là BCS trong BĐH cuối cùng, và do đó sẽ không xuất hiện trong biểu thức của hàm mục tiêu (nếu bài toán có lời giải xác định) Để tiện theo dõi, ta viết riêng dòng thứ 2 chứa các hệ số của M tiếp sau dòng L rồi áp dụng thuật toán ĐH Ta thấy cần thay x2 cho x4 để có cơ sở mới như trong bảng thứ hai

Dùng thuật toán ĐH một lần nữa đối với bảng thứ hai, ta thấy phải cho x1 vào hệ cơ sở thay cho y (Điều này rất hợp lý, vì y không thể là BCS, như ta đã phân tích ở trên) Khi đã loại y rồi, ta không cần tính các hệ số trong các bảng tiếp theo ở cột y và hàng M nữa (xem cột y bị gạch ở bảng thứ 3)

Ví dụ 2: Bài toán khẩu phần thức ăn đã chuẩn hóa: tìm GTLN của hàm mục tiêu

L = –6x1 – 8x2 thoả mãn các ràng buộc đẳng thức

Dễ thấy rằng hạng của ma trận ràng buộc bằng 3 (= số ràng buộc) Đưa thêm các BNT vào các phương trình ràng buộc

Giai đoạn 1: Đăt M = –(y1 + y2 + y3), biểu diễn yy qua các xi ở phương trình ràng buộc thứ i rồi cộng lại ta được y1 + y2 + y3 = 20 – (7x1 + 6x2 – x3 – x4 – x5) hay M = – (y1 + y2 + y3) = – [20 – (7x1 + 6x2 – x3 – x4 – x5)] hay M – 7x1 – 6x2 + x3 + x4 + x5 = –20

Ta có bảng ĐH đầu tiên với các biến cơ sở hiển nhiên là y1, y2, y3 x 1 x 2 x 3 x 4 x 5 hstd Tỉ lệ y 1 x 2 x 3 x 4 x 5 hstd Tỉ lệ y 1 5 2 –1 0 0 10 2 x 1 2/5 –1/5 0 0 2 5 y 2 1 1 0

M -7 -6 1 1 1 -20 M -16/5 -2/5 1 1 -6 y 1 y 3 x 3 x 4 x 5 hstd Tỉ lệ y 1 y 2 x 3 x 4 y 2 hstd Tỉ lệ x 1 -3/13 0 2/13 18/13 x 1 -1/3 2/3 2/3 y 2 2/13 –1 3/13 14/13 7 x 5 2/3 –13/3 14/3 7 x 2 1/13 0 -5/13 20/13 20 x 2 1/3 -5/3 10/3 30

Giai đoạn 2: Tìm GTLN của bài toán tìm GTLN của hàm mục tiêu L (biến đổi tiếp bảng ĐH trên nhưng bỏ đi hàng hệ số của M và các cột hệ số của y i )

Kết luận: Bài toán chuẩn có nghiệm tối ưu

X và giá trị Lmax = –26 hay bài toán ban đầu có Fmin = 26 ứng với nghiệm tối ưu x1= 3, x2 =1

Tìm cột chọn q: tìm phần tử am+1, q > 0 lớn nhất

Vấn đề: Khi các phần tử am+1, j > 0 đêu bằng nhau

Giải pháp: Chọn am+1, j > 0 đầu tiên

Tìm hàng chọn p: tìm p sao cho

Vấn đề: Có nhiều hơn một hàng i đạt min(bi /aiq )

Giải pháp: Chọn hàng i đầu tiên đạt min(bi /aiq )

Bài toán có vô số nghiệm

Nguyên nhân: tồn tại phương án cực biên thoái hoá, tức là tồn tại một ma trận cấp m: det(Am x m) < m Điều này thể hiện trên BĐH có một hệ số của BTD trong hàm muc tiêu bằng không Về ý nghĩa hình học, có hai đỉnh cực biên cùng là phương án tối ưu, do đó mọi điểm nằm trên đoạn thẳng nối hai đỉnh này đều là nghiệm tối ưu của bài toán QHTT

Ví dụ: tìm GTLN của hàm L = 6x1 + x2, thoả mãn cácràng buộc

Dễ thấy rằng nên chọn các BCS ban đầu là các BCL x3, x4, x5, còn x1, x2 là các BTD

Ta có các BĐH sau:

Từ BĐH trên ta thấy Lmax = 12 đạt được tại đỉnh cực biên (2; 0; 7; 0; 4)

Ngoài ra ta có thể chọn các BCS ban đầu là x1, x2, x5, còn x3, x4 là các BTD và viết lại các ràng buộc

2 1 và hàm mục tiêu L = 12 – 12/27x3 – x4 và thấy ngay rằng Lmax đạt tại đỉnh cực biên khác là (47/27; 14/9; 0; 0; 10/27) suy từ BĐH sau:

Sơ đồ khối và chương trình tính

Dưới đây là file dữ liệu của bảng đơn hình bên phải

In KQ Thêm BNT Đưa các BNT ra khỏi tập NCS

Tìm cột chọn q có không

// Pha 2: Giai BT QHTT chuan da biet cac bien co so va // bien tu do

// Tac gia: Nguyen Thi Vinh

#define nmax 100 typedef float matran[nmax+1][nmax+1]; typedef int mang[nmax]; int n, m; //Khai bao so an va so rang buoc void Doc_DL(int &m, int &n, matran a, mang c, mang t){ int i,j;

FILE *f1; char tenfile[31]; printf("Cho biet duong dan va ten file du lieu "); scanf("%s",tenfile); if ((f1=fopen(tenfile,"r"))==NULL){ printf("\n Khong the mo duoc file du lieu!"); getch(); exit(1);

} fscanf(f1,"%d%d\n",&n,&m); for (i=1;i Viết BTĐN của các bài toán sau: a) Tìm GTLN của hàm

L = (7x1 + 5x2) với các điều kiện ràng buộc sau đây:

L = (x1 −10x 2 +2x3 −x 4 +7x5) với các điều kiện ràng buộc sau đây:

2> Giải các BTVT cân bằng biết giá cước vận chuyển cho bởi các bảng sau:

3> Giải BTVT không cân bằng cho bởi các bảng giá cước vận chuyển sau:

4> Giải các bài toán QHTSTT sau: a) Tìm Lmax = max[4(1 + λ)x1 + 2x2] với các ràng buộc sau:

0 ≤ x1 ≤ 6; 0 ≤ x2 ≤ 8; 3x1 + 2x2 ≤ 10, với λ là một tham số thoả mãn điều kiện −1 ≤ λ ≤ 0 b) Tìm GTLN của hàm: L = 6x 1 + 5,5x 2 + 7x 3 + 8x 4 với các điều kiện ràng buộc sau:

Với k là tham số thoả mãn điều kiện: k > −1 c) Tìm GTNN của L(X) = x1+ x2 + x3 thoả mãn các điều kiện:

1 với λ, μ1, μ2, μ3 là các hằng số đã cho Đáp số a) Nếu −1 ≤ λ < −1/4, tức là khi 0 < C 1 = 4(1 + λ) < 3 thi` L max = 10

63 b) Khi −1< k < −1/3 GTLN L = 120(1+k) đạt được tại

Khi −1/3≤ k ≤ 1/7 GTLN L = 96 + 48k đạt được tại

Khi k > 1/7 GTLN L = 102+6/7 = 102,86 đạt được tại

Nếu λ = −2 thì bài toán đã cho không giải được

5> Giải các bài toán QHNTT sau đây a)

4 CHƯƠNG 4: GIỚI THIỆU BÀI TOÁN QUI HOẠCH ĐỘNG (QHĐ)

Trong phần này, ta sẽ xét một số bài toán quy hoạch trong đó yếu tố thời gian và sự có mặt một dãy các lựa chọn đóng một vai trò hết sức quan trọng, được gọi là các bài toán QHĐ Đặc điểm chung của các bài toán này đòi hỏi nghiên cứu các quá trình nhiều giai đoạn, bao gồm một dãy các quyết định, trong đó quyết định ở giai đoạn trước được dùng để điều khiển bước đi cuả các quyết định ở các giai đoạn sau và của cả bài toán

QHĐ khởi đầu từ giai đoạn cuối cùng của bài toán rồi lần ngược lên đến giai đoạn đầu tiên để tạo ra những quyết định tối ưu ở từng giai đoạn

Trong khi QHTT đã có các cách chuẩn hoá để lập công thức giải thì QHĐ không có cách tiếp cận chuẩn như vậy Thay vào đó, phương pháp QHĐ có bản chất đệ quy, tức là để giải các bài toán lớn, phức tạp, người chia chúng thành dãy các bài toán nhỏ hơn cùng dạng với nó rồi lưu trữ các lời giải này để phối hợp sử dụng lại khi giải những bài toán tổng quát hơn Để làm quen với QHĐ ta xét một vài ví dụ cụ thể, thông qua chúng để hiểu và vận dụng các nguyên lý và phương trình truy hồi của Richard

Bài toán tìm đường đi (lộ trình) ngắn nhất hoặc dài nhất

Một xe tải cần chở hàng từ thành phố A đến thành phố K giữa hai thành phố này có một mạng lưới đường bộ tuỳ chọn với các điểm giao nhau giữa các đường là B, C, …, I cho ở hình vẽ dưới đây Hãy tìm đường đi ngắn nhất từ A đến K

Giả sử mạng lưới được chia làm nhiều chặng, đánh dấu bởi các thời điểm 0, 1, 2, 3, 4 (Thời điểm 0 là thời điểm về đích, khi xe đến K Thời

65 điểm 4 là thời điểm xuất phát từ A) Việc chia chặng và đánh số các thời điểm tuỳ thuộc vào từng bài toán cụ thể và tùy theo cách phân tích của người giải quyết bài toán

Về mặt toán học, mạng lưới trên cho ta một đồ thị có hướng, có trọng số gồm 10 đỉnh và 18 cạnh Để đơn giản và phù hợp với hướng áp dụng trong thực tế sau này, ta chỉ xét loại đồ thị đơn giản, tại mỗi đỉnh không có đường vòng và giữa hai đỉnh chỉ có nhiều nhất một đường đi có độ dài đã biết Cần lưu ý là các khái niệm: “đường đi”, “độ dài”, “thành phố” ở đây được nêu lên để dễ hình dung; chúng có thể khái quát thành nhiều bài toán với nội dung và ý nghĩa vật lý khác nhau hoàn toàn

Bài toán tìm đương đi ngắn nhất được coi là một bài toán cổ điển đặt ra và giải theo nhiều cách Ta sẽ xét sau đây một trong các cách đó là dùng QHĐ

Giai đoạn 1 Đường đi có thể Đường đi ngắn nhất đến K Độ dài

Giai đoạn 2 Đường đi có thể Đường đi ngắn nhất đến K Độ dài

G GH(7),GI(1) GIK 5 Giai đoạn 3 Đường đi có thể Đường đi ngắn nhất đến K Độ dài

D DF(15),DG(13) DGIK 18 Giai đoạn 4 Đường đi có thể Đường đi ngắn nhất đến K Độ dài

Như vậy, đường đi ngắn nhất sẽ là: A−C−G−I−K với độ dài tổng cộng là 17 đơn vị

Nhận xét: Hoàn toàn tương tự, ta có thể xét các giai đoạn theo chiều ngược lại cũng như có thể dùng phương pháp này để tìm lộ trình dài nhất từ

Các nguyên tắc cơ bản của QHĐ

i> Đánh số các giai đoạn từ dưới lên: do đó có thể làm cho giai đoạn cuối tốt nhất mà không lo hậu quả, tức là giai đoạn này có tính chất ổn định Giai đoạn sau sẽ chỉ phụ thuộc vào giai đoạn trước (một cách đệ quy) ii> Thông số hoá bài toán: quá trình điều khiển tối ưu sẽ phụ thuộc vào các thông số đặc trưng cho kết quả ở bước trước

66 iii> Lồng vào một họ các bài toán, do đó bài toán đầu chỉ là một trường hợp riêng của họ các bài toán này Giải họ các bài toán này nhờ các thông số đặc trưng cho tới lúc nhận dược thông số của bài toán xuất phát thì dừng iv> Sử dụng nguyên lý tối ưu của Bellman : Dù trạng thái ban đầu và điều khiển ban đầu có dạng thế nào thì điều khiển tiếp theo cũng là tối ưu đối với trạng thái thu được trong kết quả tác động những điều khển ban đầu

Thiết lập bài toán theo QHĐ và các phương trình truy hồi của Bellmann 66

Thiết lập một bài toán theo QHĐ

Bước 1: Chia quá trình điều khiển làm nhiều giai đoạn nhờ các thời điểm n = 0; 1; 2; và đánh số bắt đầu từ giai đoạn cuối ứng với mỗi thời điểm n, cần xét đến tất cả các trạng thái của hệ có thể xẩy ra tại đó Trong bài toán tìm đương đi ngắn nhất nêu ở trên, thời điểm 0 có một trạng thái (K); thời điểm 2 có ba trạng thái (E,F,G), thời điểm cuối (n=4) có một trạng thái (A)

Trong các bài toán khác, ở thời điểm đầu và cuối có thể có một hay nhiều trạng thái khác nhau

Kí hiệu (n; j) để chỉ trạng thái j tại thời điểm n; C(n, j, i) là hàm giá chỉ “giá phải trả” khi ta chuyển hệ từ trạng thái (n; j) đến trạng thái (n+1; i)

Với các số liệu ở sơ đồ trên, ta có thể viết C(n, j, i) ứng với các trạng thái:

Bước 2: Xác định hàm trạng thái V(n,i)

Người ta gọi V(n; i) là độ dài lộ trình tối ưu đạt được khi ta đi từ trạng thái đầu tiên đến trạng thái (n; i) Trong sơ đồ trên với n = 0 ta có V(0; 1) = 0, với n = 1 ta có V(1;1) = V(0;1) + C(0;1;1) = 1,

V(1;2) = V(0;1) + C(0;1;2) = 4, với n = 2 ta có hai cách đạt tới trạng thái (2;1):

Theo định nghĩa trên, nếu tìm lộ trình ngắn nhất, ta phải lấy

V(2;1) = min(8;9) = 8, (nếu tìm lộ trình dài nhất, ta phải lấy V(2;1) = max(8;9) = 9)

Tương tự, ta có thể tính các giá trị khác của hàm trạng thái V(n;i).

Các phương trình truy hồi của R.Bellmann

Bellmann đã đưa ra nhiều nguyên lý, trong đó có nguyên lý sau: Một chiến lược tối ưu chỉ có thể bao gồm những chiến lược con tối ưu (Chiến lược ở đây còn có thể hiểu là lộ trình hay chính sách) Ý tưởng của nguyên lý trên cực kì đơn giản, rõ ràng và chính xác trong thực tế Trong bài toán tìm đương đi ngắn nhất, nếu lộ trình từ K đến A còn chứa một lộ trình con (từ trạm thứ (i−1), qua trạm thứ i, đến trạm (i+1)) chưa phải ngắn nhất, so với các lộ trình con khả dĩ tương ứng thì hiển nhiên là lộ trình này chưa phải tối ưu và người ta có thể tìm được một lộ trình mới tốt hơn

Bước 1: Lần lượt tối ưu hoá các lộ trình con để tìm ra một lộ trình tối ưu cho toàn bộ quá trình điều khiển Các phương trình cho phép ta xác định hàm trạng thái V(n;i) được gọi là các phương trình truy toán Một cách tổng quát, các phương trình truy toán (truy hồi) của Bellmann có dạng:

V(n; i) = min(max) [V(n −1; j) + C(n −1; j; i)] j ∈ J với j∈ J là tập các giá trị j 1 , j 2 , , j m , ứng với m khả năng có thể để đạt tới trạng thái (n;i)

Với bài toán cụ thể đang xét, ta lần lượt tính được:

Như ta đã thấy ở trên giá trị min này đạt được bằng 8 ứng với j = 1

Dễ dàng tính được V(2; 2) = 4 (ứng với j = 1) và V(2; 3) = 5 (ứng với j = 2) và so sánh các kết quả tìm được với đoạn đường ngắn nhất theo cách giải cổ điển ở phần trên Tương tự, ta tính được:

Theo các giá trị hàm trạng thái ở thời điểm n = 2 và các giá trị C(2; j; i) (i=1,2,3) đã biết Cụ thể, ta sẽ có:

V(4;1) = min[V(3;j) + C(3;j;1)] với j = 1, 2, 3 và ta sẽ có: V(4;1) = 17 đạt với j = 2

Vậy độ dài lộ trình ngắn nhất là 17 đơn vị

Bước 2: Xác định lộ trình tối ưu

Sau khi tính được hàm trạng thái theo các hệ thức truy toán của Bellmann, ta xác định lộ trình tối ưu như trong hình trên với quy tắc đơn giản như sau:

V(4;1) = 17 đạt với j = 2, thế thì phải chọn trạng thái trước (4;1) là (3;2) V(3;2) = 12 đạt với j = 3, thế thì phải chọn trạng thái trước (3;2) là (2;3) V(2;3) = 5 đạt với j = 2, thế thì phải chọn trạng thái trước (2;3) là (1;2) V(1;2) = 4 đạt với j = 1, trạng thái trước (1;2) hiển nhiên là (0;1) nghĩa là, chỉ số j * nào (∈ J) ứng với giá trị min(max) đạt được của V(n; i) sẽ giúp ta tìm được trạng thái trước đó: (n−1; j * ) Dựa vào quy tắc trên, ta tìm ra lộ trình ngắn nhất (dài nhất) đi từ trạng thái đầu tiên đến trạng thái cuối cùng

Trong bài toán trên, lộ trình tối ưu đi từ A đến K qua các trạng thái V sau:

Lập sơ đồ bài toán tìm đường đi ngắn nhất

Phương pháp thực hành trong QHĐ

Để tránh nhầm lẫn và đơn giản hoá các phép tính, ta có thể vẽ sơ đồ bài toán như ở trang trước và lập bảng như sau để giải bài toán trên Đầu tiên nên gạch bỏ các ô tương ứng với các trạng thái không có trong thực tế Sau đó ta điền các giá trị V(0;i) = 0 vào ô ứng với trạng thái ban đầu Trong bài toán đang xét, ở thời điểm đầu và cuối chỉ có một trạng thái Các bài toán sẽ xét sau này không phải luôn luôn như vậy

15+4 13+5 Để tiếp tục, ta cần tính giá trị hàm trạng thái theo các phương án có thể, rồi đánh dấu giá trị min(max) trong mỗi ô Cần lưu ý rằng mỗi ô đều có hai cột, cột thứ nhất ghi tập các giá trị J ứng với các phương án có thể, còn cột thứ hai ghi các giá trị có thể của hàm trạng thái Cứ làm như thế cho đến thời điểm cuối cùng và ta sẽ tìm được lộ trình tối ưu và biểu diễn nó bằng các mũi tên như trong bảng trên.

Một số ví dụ

1 Bài toán phân phối nguyên liệu: Tìm phương án tối ưu (đạt lợi ích cao nhất) để phân phối 4 tấn thép cho 3 cơ sở sản xuất I, II, III với bảng giá trị hàm lợi ích được cho như sau (dấu (−) dùng cho trường hợp không phân phối được):

Có bao nhiêu phương án tối ưu tương đương? Tại sao?

71 a) Đặt bài toán: Ta sẽ chọn các thời điểm n như sau:

0 phân phối xong 4 tấn thép cho cả ba cơ sở

1 phân phối xong cho cơ sở 2 và cơ sở 1;

2 phân phối xong cho cơ sở 1;

3 ứng với thời điểm chưa phân phối gì;

Gọi i là trạng thái còn tới i tấn thép chưa phân phối được với i là số nguyên và i

∈[0, 4] Khi đó, sơ đồ bài toán phân phối nguyên liệu có dạng như hình trang sau

Chú ý: theo điều kiện đã cho không tồn tại trạng thái (2, 0) vì cơ sở 1 không thể nhận 4 tấn thép cũng như từ trạng trạng thái (0, 0) không thể có mũi tên đi tiếp đến trạng thái (1, 0) vì theo đầu bài cơ sở III đòi hỏi ít nhất là một tấn thép a) Giải bài toán bằng phương pháp lập bảng và tính V(n, i)

Lợi ích lớn nhất là 18 đơn vị và có hai phương án phân phối tối ưu tương đương, đó là:

Phân 0 tấn thép cho cơ sở 1, lợi ích 0,

Phân 3 tấn thép cho cơ sở 2, lợi ích 12,

Phân 1 tấn thép cho cơ sở 3, lợi ích 6

Phân 1 tấn thép cho cơ sở 1, lợi ích 5,

Phân 2 tấn thép cho cơ sở 2, lợi ích 7,

Phân 1 tấn thép cho cơ sở 3, lợi ích 6

Sơ đồ phân phối thép theo phương pháp QHĐ

Số ghi trong vòng tròn chỉ số tấn phân phối

2 Bài toán lập kế hoạch sản xuất

Một xưởng đóng tầu cần đóng và giao lại 14 tầu thủy theo hợp đồng sau:

Các điều kiện cần thực hiện là: a) Đóng tầu và giao tầu đúng theo hợp đồng đã được ký kết b) Mỗi tháng xưởng chỉ làm được nhiều nhất là 4 chiếc tầu, tức là nếu gọi k là số tàu làm được trong một tháng, thì k phải nguyên và k ∈[0, 4] c) Trong xưởng không thể lưu kho quá 3 tầu, tức là nếu gọi i là số tầu lưu kho thì i phải nguyên và i ∈[0, 3] d) Đầu tháng, xưởng phải trả một số tiền lưu kho, tùy theo kế hoạch sản xuất trong tháng đó Cụ thể là, trả $1000 cho mỗi tầu lưu kho trong tháng nếu xưởng không đóng tầu trong tháng đó; còn nếu trong tháng xưởng có đóng tầu thì phải trả thêm vào số tiền lưu kho đó $4000 Như vậy, số tiền phải trả cho lưu kho sẽ là:

1000 × i nếu xưởng không sản xuất, tức k = 0,

(4 + i) × 1000 nếu xưởng có sản xuất, tức k > 0 e) Giá xây dựng một con tầu là $10 000 f) Đầu tháng hai và cuối tháng bảy không có tầu lưu kho

Lập kế hoạch sản xuất và bàn giao tầu thủy trong từng tháng sao cho tổng chi phí là nhỏ nhất

Bài giải Chọn mỗi tháng là một giai đoạn, thời điểm 0 là đầu tháng 2 còn thời điểm 6 vào cuối tháng 7 Mỗi thời điểm có nhiều trạng thái, trạng thái i ứng với i tầu lưu kho tại thời điểm đó Ta có hệ thức sau đây: j = i + k − d trong đó d là số tầu phải giao theo hợp đồng hàng tháng, j là số tầu lưu kho của tháng sau đó (ví dụ, (số tầu lưu kho ở đầu tháng ba) + (số tầu làm được trong tháng đó) − (số tầu phải bàn giao) = (số tầu lưu kho vào đầu tháng 4))

Vẽ sơ đồ của bài toán Dựa trên sơ đồ, ta giải bài toán trên bằng phương pháp lập bảng như sau: (trong bảng này ta tính từ phải qua trái)

1 Chú thích: Trong hình này, ở mỗi mũi tên đều có hai con số Số thứ nhất chỉ k (số tàu làm được trong tháng); số thứ hai ghi trong vòng tròn chỉ số tiền phải nộp lưu kho

Theo bảng trên ta tìm được kế hoạch sản xuất tầu thủy như sau:

Tháng Số tầu lưu kho

Số tầu cần sản xuất (k)

Cộng thêm với $140.000 để sản xuất 14 tầu, ta có chi phí tổng cộng nhỏ nhất là

Bài tập chương 4

1> Dùng lý thuyết QHĐ để tìm đường đi ngắn nhất từ A đến L theo sơ đồ sau a) Chỉ rõ các phương án tối ưu tương đương và độ dài đường đi ngắn nhất b) Nếu đường vào và ra khỏi trạm F bị cấm, hãy tìm đường đi ngắn nhất từ A đến

L không qua F Đáp số: a) Độ dài đường đi ngắn nhất là 22 đơn vị Có 3 phương án tối ưu tương đương:

I A-B-E-I-L II A-B-F-K-L III A-C-F-K-L b) Nếu đường vào, ra F đều bị cấm, đường đi ngắn nhất từ A đến L là A-B-E-I-L

2> Giá trị hàm lợi ích khi phân phối thép (tính theo tấn) cho 4 cơ sở A, B, C, D được cho theo bảng sau: (Dấu − ứng với khả năng không phân được)

3 20 24 16 18 a) Dùng quy hoạch động để lập phương án phân hết 4 tấn thép cho các cơ sở sao cho tổng lợi ích lớn nhất b) Nêu tất cả các phương án tối ưu tương đương (nếu có) Đáp số a) Tổng lợi ích lớn nhất là 36 đơn vị b) Có tất cả 4 phương án tối ưu tương đương:

Phương án

I

3> Bài toán cái túi (bài toán QHNTT với biến nhị phân): Một tên trộm đem theo một túi đựng được không quá 5 kg lẻn vào một nhà có 6 thứ lấy được Mỗi đồ vật có khối lượng và giá trị cho ở bảng dưới đây Hãy tính xem tên trộm nên mang đi những thứ gì để tổng giá trị là lớn nhất

Loại đồ vật Giá trị Khối lượng (g)

Giầy $15 500 Điện thoại di động $100 150

5 CHƯƠNG 5: QUY HOẠCH PHI TUYẾN (QHPT)

Phương pháp dò tìm cực trị địa phương của hàm một biến

Nội dung phương pháp lát cắt vàng (phương pháp bậc không)

Giả sử f(x) liên tục trên [a, b] và có ít nhất một điểm cực tiểu địa phương trên đoạn này Chia [a, b] thành 3 đoạn để thu nhỏ khoảng chứa điểm cực tiểu nhờ các điểm chia: a = x1 (1); x2 (1) ; x3 (1); x4 (1) = b

Như thế, nếự chia đều, ở mỗi vòng lặp saự, sẽ xét hàm đã cho trên một đoạn có độ dài bằng 2/3 đoạn ở vòng lặp trước

Ngoài ra, người ta nhận thấy chia đều không tốt bằng chia sao cho x 2 (1) và x 3 (1) cách đều hai đầu a, b: ( 2 1 , ) 3 1

Hơn nữa, người ta muốn chia [a; b] sao cho điểm x 2 (1 ) chia [ a; b ] theo tỉ lệ nào thì điểm x 3 (1) cũng chia [ x 2 (1) ; b ] theo tỉ lệ ấy

Thay (1) vào (2) rồi giải phương trình trên ta có ( 5 2)

Với cách chia như thế, ta tính được ở vòng lặp đầu tiên: a x2 (1) x3 (1) b δ1 δ1

(5.4) hay điểm x2 (1) chia [a, b] theo tỉ lệ 0,618

Chẳng hạn với a = 0, b = 1, ta có các điểm chia là

( 2 ở vòng lặp sau, ta sẽ xét hoặc đoạn [x 2 (1) ; x 4 (1) ] nếu f (x2 (1)) > f (x3 (1)) hoặc đoạn

[x 1 (1) ; x 3 (1) ] nếu f (x2 (1)) < f (x3 (1)) Mỗi đoạn cú độ dài bằng 0,618 đoạn trước (giảm đi khoảng 1,6 lần) ở vũng lặp thứ ba, ta sẽ chỉ cũn một đoạn cú độ dài bằng 0,618 2 đoạn đầu tiờn.

Thuật toán

Bước 1: Khởi đầu với [a, b] cho trước, i = 1, x1 (i) = a , x4 (i) = b

Bước 3: Nếự f (x2 (i)) < f (x3 (i)) ta thay [a; b ] bằng [x1 (i) ; x3 (i)];

Bước 4: Kiểm tra điều kiện hội tụ:

- Nếu x3 (i) - x2 (i) < ε→ lấy xmin là điểm x2 (i ) hoặc x3 (i) trên [a; b] mới rồi dừng

- Thuậtt toán dò tìm điểm cực tiểutrên đây hội tụ với độ chính xác ε>0 tuỳ ý, ngay cả khi hàm được xét không có đạo hàm tại điểm dò tìm và không phải là hàm lồi

- Độ phức tạp thời gian của thuật toán là tuyến tính Để giảm độ lớn khoảng tìm kiếm đi 10 lần, ta chỉ cần lặp 5 bước vì 1,6 5 = 10,48

- Nếu chưa biết đoạn [a, b] ban đầu, ta thêm bước ước lượng thô [a; b] Khởi đầu từ x0,chọn bước nhảy k0 để tính giá trị f(x0+k0) Thay đổi bước nhảy sau mỗi thử nghiệm thành công cho đến khi tìm được a < c < b: f(a) > f(c) và f(b) > f(c)

- Thuật toán này áp dụng được cho việc dò tìm điểm cực đại địa phương.

Ví dụ: Định vị điểm cực tỉểu của hàm f(x) = x 2 − x biết ε = 0,15

Lấy x0 = 0 và bước nhảy k0 = 0,5 → x1 = x0 + k0.= 0,5 Chọn k1 = 3k0 = 1,5

→ x2 = 2 ta tìm được ước lượng thô là đoạn [0; 2] chưa ít nhất một điểm cực tiểu Ở lần chia đầu tiên: x 1 ( 1 ) = 0 ; x ( 2 0 ) = 0 , 77 ; x ( 3 0 ) = 1 , 24 ; x ( 4 0 ) = 2

Khi đó f (0,77) = −0,18 < f (1,24) = 0,29 Vậy ở lần chia thứ hai, ta cần phải xét đoạn [0; 1,24] và phải chia nó bằng các điểm chia:

Tiếp tục dò tìm theo phương pháp trên ta được bảng dưới đây: a (i) δ (i) x 2 (i) x 3 (i) b (i) f(x 2 (i) ) f(x 3 (i) ) f(x 2 (i) )-f(x 3 (i) ) x 3 (i) -x 2 (i) < ε=0,15

Do f(0,47) < f(0,58), nên đoạn chứa điểm cực tiểu là [0,29; 0,58] Đến đây ta có thể dừng quá trình lặp vì x3 (4) – x2 (4) = 0,47 - 0,58 < 0,15 = ε cho trước Khi đó điểm đạt cực tiểu gần đúng là điểm chia trong của đoạn [0,29; 0,58] xmin ≈ x * = x2 (4) = 0,47 Để tăng độ chính xác của x*, ta có thể gán cho ε giá trị nhỏ hơn (và do đó số lần lặp sẽ tăng lên) y = x*x - x

/*Phuong phap lat cat vang tim cuc tieu cua ham f(x,y) = x^2-x tren doan [0, 2] */

{ float a , b , x2 , x3, k , epsilon , ss , fx2 ,fx3 ,xct ; float x[10]; int sbl, i ; // so buoc lap clrscr(); printf("NHAP CAC SO LIEU BAN DAU \n");

/* printf("CAN DUOI a="); scanf("%f",&a); printf("CAN TREN b="); scanf("%f",&b); */ printf("SAI SO epsilon="); scanf("%f",&epsilon); k = 5; x[0] = 0.; i = 1; x[i] = x[i-1] + k; do

} while (!((f(x[i-2])>f(x[i-1]))&&(f(x[i]) > f(x[i-1])))); a = x[i-2]; b = x[i]; printf("a = %6.2f, b = %6.2f",a, b); sbl = 1 ; printf("\n CAC KET QUA TRUNG GIAN \n" ); printf(" i a x2 x3 b f(x2) f(x3) saiso\n"); do

82 fx3 = f(x3); printf(" %2d %5.2f %5.2f %5.2f %5.2f %5.2f %5.2f %5.2f\n",sbl,a,x2,x3,b,fx2,fx3,fx3-fx2); if (fx2= epsilon); if (!(a-x2)) xct = x3 ; else xct = x2; printf("xmin = %6.2f voi so lan lap = %d \n",xct, sbl-1); getch();

Các phương pháp tụt dốc dò tìm cực trị địa phương của bài toán QHPT không ràng buộc nhiều chiều

Đặt vấn đề

Ý tưởng chung của các phương pháp tụt dốc dò tìm cực tiểu địa phương của hàm nhiều biến f(X) (ở đây X là một vectơ) là

• Chọn hướng dò tìm D i rồi dò tìm cực tiểu của hàm một biến f(X i+λDi) theo λ

• Thế Xi+1 = Xi + λ min Di

• Xét sự hội tụ: o Đạt yêu cầu: in Xi+1 và dừng o Chưa đạt yêu cầu: quay lại bước 2 o Vấn đề là chọn hướng dò tìm Di thế nào?

Phương pháp đường dốc nhất (Steepest Descents)

Nội dung phương pháp: Đây là phương pháp bậc nhất Chọn hướng cực tiểu dọc theo độ nghiêng lớn nhất, đó chính là vectơ đối của vectơ gradient tại f(Xi)

Hình ảnh trực quan dò tìm điểm cực đại địa phương bằng phương pháp đường dốc nhất Hình bên phải cho thấy véc tơ gradient chỉ ra hướng dốc nhất xuống đáy tại vị trí quan sát

Thuật toán: Trên thực tế, phương pháp đường dốc nhất được sử dụng dưới dạng thô Thay vì tìm λmin, λ được chọn sẵn và tính thử một bước Nếu f(x) tăng thì λ sẽ bị giảm đi một nửa Còn nếu f(x) giảm thì nó có thể còn xa mới đạt cực tiểu, vậy ta tăng λ lên 20% rồi lặp cho đến khi đạt độ chính xác theo yêu cầu Quá trình dò tìm sẽ là:

Bước 1: Chọn điểm xuất phát X1 và λ, gán i = 1, tính f(Xi)

Bước 2: Tính vectơ –∇f(X i ) Bước 3: Tính Xi+1 = Xi – λ∇f(Xi) và tính f(Xi+1) Bước 4: Kiểm tra f(Xi+1) = epsilon); printf(" xmin = %6.2f ymin = %6.2f va fmin=%6.2f sau %d buoc lap\n" ,xs,ys,f(xs,ys),sbl-1); getch();

5.2.3 Phương pháp gradient liên hợp (Conjugate Gradients):

Vectơ liên hợp: hai vectơ si và sj là liên hợp với nhau theo ma trận A nếu

+ Vậy hai vectơ này vuông góc nhưng không liên hợp với nhau theo ma trận

H 4 là ma trận Hessian của f(X)

Phương pháp gradient liên hợp là phương pháp bậc nhất, cho phép chọn hướng dò tìm tốt hơn phương pháp đường dốc nhất vì các thông tin thu được từ các dò tìm trước đó được sử dụng cho bước hiện hành:

D1 = –∇f(X1) và Di = –∇f(Xi) +λi Di-1 (5.6) với λi ) X ( f ) X ( f

Vậy hướng dò tìm Di phụ thuộc vào gradient ở bước hiện hành cũng như hướng dò tìm trước đó Di-1 với λi được xác định từ điều kiện hai hướng này liên hợp với nhau theo ma trận Hessian của f(X):

Di TH Dj = 0 khi i ≠ j (5.8) Đối với mặt bậc hai, các hướng dò tìm liên hợp thoả mãn (5.8) dẫn đến các liên hệ sau:

Thay (5.8) và (5.9) vào (5.6) (j = i –1) rồi giải theo γi ta nhận được công thức

(2) Ý nghĩa của phương pháp này là tiến hành dò tìm dọc theo các hướng đặc biệt sao cho gradient dọc theo hướng đó bằng không Trong Rn ta nhận được n hướng

(độc lập) mà đối với mỗi hướng này gradient bằng không, tức là đối với mặt bậc hai trong R n , phương pháp gradient liên hợp sẽ hội tụ sau nhiều nhất là n bước

Bước 1: Bắt đầu ở điểm X1, (i = 1) Tính ∇f (X1) và D1 = –∇f (X1)

Bước 2: Tìm cực tiểu hàm một biến f(Xi + λiDi) → λi min

Bước 3: Tính Xi+1= Xi + λi minDi

Bước 4: Tính ∇f(X i+1 ) và chọn hướng dò tìm liên hợp tiếp theo

Bước 5: Kiểm tra sự hội tụ |∇f(Xi+1)| < ε cho trước? o Đúng: In Xi+1 và dừng o Sai: Quay lại bước 2

- Phương pháp gradient liên hợp là một kĩ thuật dò tìm rất hiệu quả vì tốc độ hội tụ nhanh do các hướng dò tìm là thông minh (liên hợp với ma trận Hessian nhưng không bao giờ phải tính ma trận này)

- Phương pháp này chỉ cần 3 vectơ có độ dài n để lưu trữ và tính toán

- Trên thực tế không phải các mặt đều là bậc hai nên sau n bước lặp mà chưa hội tụ, các hướng dò tìm tiếp theo sẽ là đường dốc nhất

Tìm cực tiểu hàm f(X) = 3x 1 2 +4x 2 2 +5x 1 x 2 −3x 1 −10x 2 +10 biết ε = 0,1

Dùng phương pháp tìm cực tiểu hàm một biến, tìm điểm cực tiểu của hàm f(X1 + λD1) = f(1–8λ; 1–3λ) = 348λ 2 – 73λ + 9

Dùng phương pháp tìm cực tiểu hàm một biến, tìm cực tiểu hàm f(X2 + λD2) = f(0,2 – 3,3λ; 0,7 + 2,8λ) = 17,83λ 2 – 8,13λ + 22,82

Do f(X) là mặt bậc hai trong R2 nên việc dò tìm theo các hướng gradient liên hợp kết thúc sau 2 bước lăp Để đạt được độ chính xác theo yêu cầu, ta phải dò tìm bằng phương pháp đường dốc nhất ở các bước tiếp theo

Phương pháp gradient dò tìm cực trị địa phương của bài toán QHPT ràng buộc nhiều chiều

Một số khái niệm

Tìm cực tiểu của hàm C(x, y) = (x– 4) 2 + (y – 4) 2 thỏa mãn các ràng buộc sau:

Bằng trực quan hình học, ta thấy rằng: Đối với bài toán cực trị tự do thì tâm

(4, 4) là điểm cực tiểu và Cmin = 0 Đối với bài toán cực trị với ràng buộc dạng đẳng thức, chẳng hạn 3x + 2y , ta có thể sử dụng phương pháp nhân tử Lagrange hoặc đưa về bài toán tìm cực trị tự do của hàm một biến

) 3 x ( y =− + và tìm được điểm cực tiểu (x*, y*) = ⎟

64 Đối với bài toán trên, do hàm mục tiêu là phi tuyến nên thay vì dò tìm giá trị nhỏ nhất của C(x, y) trên miền ràng buộc bằng cách di chuyển các đường thẳng song

89 song như đối với bài toán QHTT, ta xét họ các đường tròn đồng tâm liên quan đến hàm C(x, y) Vòng tròn có bán kính nhỏ nhất tiếp xúc với biên của miền ràng buộc tại điểm (x*, y*) = ⎟

28 nằm trên đường biên của điều kiện ràng buôc thứ hai

Vậy giá trị cực tiểu của bài toán trên là Cmin = C ⎟

Nhận xét: i> Điều kiện để tìm vòng tròn có bán kính nhỏ nhất, tiếp xúc với biên nói trên là tiếp tuyến của vòng tròn đó tại tiếp điểm phải có độ nghiêng (hệ số góc) đúng bằng độ nghiêng của đường biên

−3) (5.10) Để tính độ nghiêng của tiếp tuyến với họ các vòng tròn trên, ta sử dụng công thức đạo hàm của hàm ẩn y theo đối x của

Giải hệ (5.10) và (5.11) ta nhận được điểm cực tiểu ⎟

28 nói trên ii> Nghiệm tối ưu của bài toán trên không nằm trên đỉnh cực biên mà nằm trên phần biên của miền chấp nhận được ứng với một ràng buộc nhất định

Bài toán QHPT có ràng buộc tổng quát:

Tìm min (hoặc max) của hàm f(X), X Rn (5.12) thoả mãn các ràng buộc sau: gi(Xi) ≥0 (≤0)∀i=1,m (5.13)

Nhận xét: Từ các tính chất của một hàm lồi, bài toán tìm min (max) chắc chắn có nghiệm khi f(X) là hàm lồi (lõm) và miền ràng buộc là lồi Việc tìm min của một hàm lõm (hoặc max của một hàm lồi) trên miền lồi thường phức tạp hơn

Hướng dò tìm chấp nhận được

Cho X* là một điểm thuộc miền ràng buộc (miền chấp nhận được)

Ω= ∈ n i X ≥ Hướng D được gọi là hướng chấp nhận được tại X* nếu thoả mãn điều kiện m 1, i 0, (X*) g

D T ∇ i ≥ ∀ = (5.14) Điều kiện (5.14) được thực hiện khi các hàm ràng buộc thoả mãn một trong các điều kiện sau:

- Các hàm ràng buộc là tuyến tính

- Các hàm ràng buộc là lồi và tồn tại điểm X: gi(X)≤0

- Các hàm ràng buộc là phi tuyến và∇g i (X*) là độc lập tuyến tính

Hàm Lagrange và điều kiện cần của cực trị địa phương

+ của bài toán (5.12), (5.13) được gọi là hàm Lagrange của bài toán trên

- Điều kiện cần (bậc nhất) của cực trị địa phương được phát biểu dưới dạng các điều kiện Kuhn-Tucker như sau:

Cho f(X), gi(X) là các hàm khả vi, X Ω là điểm cực trị của bài toán (5.12), (5.13) được dò tìm theo các hướng chấp nhận được Khi đó tồn tại vectơ nhân tử

2 1 y y y của hàm Lagrange L(X, Y) sao cho

(5.15’) Ý nghĩa của các điều kiện Kuhn-Tucker: đó chính là điều kiện cần của hàm Lagrange trong việc giải các bài toán cực trị ràng buộc bằng phương pháp giải tích cổ điển Đối với ví dụ trên, điều kiện Kuhn-Tucker được viết cho hàm Lagrange

L(X, Y) = (x– 4) 2 + (y – 4) 2 + z [6 – 2x – 3y] + t [–12 + 3x + 2y] là bốn điều kiện biên và điều kiện không âm của các biến ban đầu và các biến phụ trội (các nhân tử Lagrange)

28 , thỏa mãn hệ trên với (z*, t*) = ⎟

Nhận xét: Tuỳ vào đặc điểm của từng bài toán mà các điều kiện Kuhn-Tucker có thể trở thành điều kiện cần và đủ.

Phương pháp Gradient

Phương pháp này phụ thuộc vào gradient của hàm ràng buộc hoặc gradient của hàm mục tiêu hoặc cả hai như là hướng dò tìm có tỉ lệ biến đổi lớn nhất để tối ưu hóa hàm mục tiêu Giả sử bằng phép thử, ta tìm được điểm xuất phát thuộc miền ràng buộc Việc dò tìm được tiến hành theo hướng dốc nhất của hàm mục tiêu với bước di chuyển λ được xác định trước cho đến khi có một ràng buộc gi ≥ 0 bị vi phạm hoặc giá trị của hàm mục tiêu tồi đi, ta phải quay lại miền Ω để cải thiện giá trị của hàm ràng buộc hay của hàm mục tiêu tương ứng Nếu giá trị của hàm mục tiêu tồi đi, vectơ đối của gradient của hàm mục tiêu ở điểm dò tìm thành công cuối cùng được lấy làm hướng dò tìm tiếp theo với bước dịch chuyển λ Nếu có ít nhất một ràng buộc bị vi phạm, ta phải di chuyển về điểm trong miền chấp nhận được nhưng càng gần biên càng tốt Khi đó hướng dịch chuyển không còn theo qui tắc đường dốc nhất nữa mà vuông góc với chu tuyến của ràng buộc bị vi phạm với bước dịch chuyến s sao cho gi > 0 Khi điểm dò tìm đã nằm trong miền chấp nhận được, việc dò tìm theo hướng dốc nhất lại được tiến hành Việc dò tìm kết thúc khi điểm dò tìm chạm vào phần biên gi = 0 của miền Ω và các vectơ f∇ và ∇g i tại đó là song song với nhau, tức là khi g 1 f g f i

Bước 1: Chọn điểm X1 bất kì trong miền ràng buộc Ω, gán i = 1, λ1 = 0,5

Bước 2: Tính ∇f(X i ), nếu ∇f(X i ) =0 thì dừng, Xi là nghiệm, ngược lại

− ∇ là hướng dò tìm mới

Bước 3: Tính Xi+1 = Xi +λi Di

Bước 4: Kiểm tra xem Xi+1 có nằm trong miền ràng buộc Ω hay không

- Nếu X i+1 thuộc miền Ω và hàm mục tiêu giảm, quay lại bước 2 để lặp lại việc dò tìm với λi+1 tăng lên

- Nếu Xi+1 chạm vào phần biên của Ω ứng với ràng buộc gk(Xi+1) = 0 thì kiểm tra xem hai vectơ ∇f và∇g k tại Xi+1 có song song không

+ Nếu đúng thì quá trình tìm kiếm dừng, Xi+1 là nghiệm

+ Nếu không, ta lùi lại miền Ω theo hướng ∇g k (X i + 1 ) và tìm

Xi+1 mới = Xi+1 + s∇g k (X i + 1 ) với s được chọn sao cho gk(Xi+1 mới) > 0 rồi lặp lại bước 2 với λ i+1 giảm đi

- Nếu Xi+1 nằm ngoài miền Ω ứng với ràng buộc thứ k, gk ≥ 0 bị vi phạm, ta lùi lại miền Ω theo hướng ∇g k (X i + 1 ) và tìm

Xi+1 mới = Xi+1 + s∇g k (X i + 1 ) với s được chọn sao cho gk(Xi+1 mới) > 0 rồi lặp lại bước 2 với λi+1 giảm đi

Giải lại bài toán đã nêu ở phần đầu bằng phương pháp gradient với sai số ε = 0,05

Viết lai bài toán dưới dạng tổng quát:

Tìm cực tiểu của hàm f(x, y) = (x– 4) 2 + (y – 4) 2 thỏa mãn các ràng buộc sau:

1 f(X2) = f(X1+λD1) = f(1,48, 3,08) = 7,2 Vậy f(X2) < f(X1) Bước 4: Kiểm tra thấy X2 Ω vì g2(X2) = 1,4 > 0

Kiểm tra thấy X3 Ω vì g2(X3) = - 0,7 < 0 → Phải lùi lại miền Ω theo hướng

∇ vuông góc với ràng buộc bị vi phạm g2

( với s được chọn sao cho g2(X3 mới) > 0 → s > 0,195, chọn s = 0,20

Kiểm tra thấy X3 mới nằmtrên phần biên g2 của miền Ω vì g2(X3 mới) = 0,05 ≈ 0

Vậy ∇f và∇g 2 đồng phương, dừng quá trình lặp và được nghiệm tối ưu là

Các kết quả dò tìm được ghi lại trong bảng sau: i x y g 2 |g 2 | < ε s f f x ’ f y ’ ∇f ∇f Dùng phương pháp lát cắt vàng dò tìm điểm cực tiểu của hàm f(x) = (x – 100) 2 với độ chính xác ε = 0,1

2> Dùng phương pháp đường dốc nhất tìm điểm (x, y) sao cho hàm mục tiêu f(x, y) = min y

4 + + + → với độ chính xác ε = 0,1và (x1; y1) = (1; 3)

3> Dùng phương pháp hình học tìm cực tiểu của hàm f(x, y) = 4(x – a) 2 + 5(y – b) 2 sao cho các điều kiện sau đây được thoả mãn: x + y ≥ 1, x, y≥0 (với a, b là các hằng số đã cho)

4> Dùng phương pháp hình học tìm cực đại của hàm f(x, y) = 2x + y sao cho các điều kiện sau được thoả mãn:

5> Dùng phương pháp gradient dò tìm điểm cực tiểu của hàm f(x, y) = 3x2 – 2x – 5y 2 + 10y thỏa mãn các điều kiện sau

2 với độ chính xác ε = 0,1và điểm xuất phát (x1; y1) = (1; 2)

6 CHƯƠNG 6: HƯỚNG DẪN SỬ DỤNG CÔNG CỤ SOLVER TRONG MS- EXCEL GIẢI CÁC BÀI TOÁN TỐI ƯU

SOLVER là công cụ phần mềm giải bài toán tối ưu do Frontline Systems, Inc (USA) phát triển SOLVER chuẩn được cài đặt sẵn trong Microsoft Excel theo sự thoả thuận giữa Microsof Corporation và Frontline Systems, Inc Với SOLVER người dùng có thể giải các bài toán sau đây thông qua bảng tính EXCEL

• Giải các hệ phương trình tuyến tính, phi tuyến, các phương trình đại số bậc cao, siêu việt, hàm mũ

• Tìm các tham số của hàm giải tích xấp xỉ của tập dữ liệu thống kê, quan sát nhằm phục vụ cho việc tính toán dự báo

• Giải các bài toán tối ưu: QHTT, QHPT, QHN, …

Giới thiệu bộ công cụ SOLVER chuẩn trong MS-EXCEL

Một số khái niệm trong SOLVER chuẩn

SOLVER chuẩn và khả năng giải các bài toán tối ưu

SOLVER chuẩn gồm những công cụ cơ bản như phương pháp đơn hình giải các bài tóan QHTT, phương pháp nhánh & cận giải các bài toán QHN và phương pháp GRG (Generalized Reduced Gradient) giải các bài tóan QHPT trơn SOLVER chuẩn giới hạn cho những bài toán đến 200 biến điều khiển (BĐK) và cộng thêm 100 ràng buộc đối với bài toán QHPT Trong SOLVER chuẩn có ba loại báo cáo: báo cáo lời giải, báo cáo độ nhạy và báo cáo các giới hạn

Những định nghĩa cơ bản trong mô hình SOLVER

Mục đích chính của SOLVER là tìm nghiệm, nghĩa là tìm các giá trị cho các biến mà SOLVER đặt tên là “Changing Cells” trong mô hình Các giá trị này thoả mãn các ràng buộc (constraints) và làm cực đại hoặc cực tiểu hàm mục tiêu (objective function) mà SOLVER đặt tên là “Set Target Cell”

Mô hình thiết lập để dùng với SOLVER không khác gì so với mô hình trong bảng tính EXCEL nghĩa là gồm có các giá trị đầu vào “input”, các công thức để tính toán dựa trên input, các định dạng (formatting), …

Biến điều khiển và tham số (Decision Variables and Parameters)

Một số giá trị đầu vào có thể là hằng số, không thay đổi trong quá trình tìm nghiệm, chẳng hạn lãi suất, giá sản phẩm Ta gọi những giá trị này là tham số của mô hình Những giá trị đầu vào khác có thể thay đổi hoặc ta muốn điều khiển thay đổi trong quá trình tìm nghiệm gọi là các BĐK hay “Changing Cells” SOLVER sẽ tìm giá trị tối ưu cho những biến này

Hàm mục tiêu (Objective Function): Hàm mục tiêu (HMT) là công thức nằm trong ô ta muốn cực đại hoặc cực tiểu Ô này sẽ được chỉ định trong khung Set Cell

96 của hộp thoại “Solver Parameters” Hàm mục tiêu có thể là lợi nhuận nhiều nhất (tìm max) hay chi phí ít nhất (tìm min)

Có cả mô hình SOLVER không có HMT để tìm cực trị Khi đó khung Set Target Cell trong hộp thoại “Solver Parameters” tham chiếu đến ô có công thức =0 Trong trường hợp này SOLVER chỉ đơn giản tìm nghiệm thoả mãn các ràng buộc

Ràng buộc là quan hệ chẳng hạn như A1 >= 0 Một ràng buộc được thoả mãn nếu điều kiện qui định đúng trong một phạm vi sai số nhỏ Có sự khác biệt nhỏ giữa đánh giá số học và công thức lôgic TRUE và FALSE khi ta đưa vào ô Trong thí dụ này, nếu A1 là –0,0000001, công thức lôgic sẽ đánh giá là FALSE, nhưng với độ chính xác mặc định của Solver (default SOLVER Precision setting), ràng buộc sẽ được thoả mãn Trong SOLVER, ràng buộc được định rõ bằng cách cho ô hoặc các ô tham chiéu ở vế trái ví dụ A1 hoặc A1:A5, một dấu quan hệ (=) và một biểu thức ở vế phải Mặc dù SOLVER cho phép đưa bất kỳ biểu thức số học vào vế phải nhưng ta chỉ nên đưa vào đó hằng số hoặc tham chiếu đến ô có giá trị hằng số Một giá trị hằng số đối với SOLVER là một giá trị không phụ thuộc vào bất cứ BĐK nào Ví dụ:

- Một ràng buộc như A1:A5 Vế phải các ràng buộc có thể được đưa vào như những con số trong các ô khác hoặc trực tiếp đưa vào trong hộp thoại ràng buộc của Solver

Trong phạm vi cấu trúc này, việc định dạng các ô thể hiện BĐK và ràng buộc, sử dụng rất linh hoạt các công thức và hàm mẫu có sẵn trong Excel Ví dụ những công thức cần thiết cho bài toán QHTT có thể luôn luôn được dùng như hàm SUMPRODUCT Nếu mô hình được biểu diễn dưới dạng ma trận – vectơ thì ta có thể đặt tên các vectơ và dùng hàm SUMPRODUCT để tính vế trái của các ràng buộc.

Ví dụ

Sử dụng SOLVER giải lại bài toán QHTT sau

Một xưởng sản xuất làm ba sản phẩm: TV, casset, và bộ loa Mỗi sản phẩm được lắp ráp từ những phụ kiện có sẵn trong kho Các thông số được tóm tắt trong bảng sau

Chỉ tiêu phụ kiện cho mỗi loại sản phẩm Loại sản phẩm

Khung Đèn hình Loa Nguồn Bảng mạch Điện Tử

Số lượng phụ kiện có trong kho

Hãy tính chỉ tiêu sản xuất cho mỗi loại sản phẩm để tổng lãi thu được lớn nhất

Gọi số TV, casset và bộ loa cần sản xuất là x1, x2, x3 tương ứng, ta cần tìm GTLN

L = 75 x 1 + 50 x 2 + 35 x 3 (tổng lãi) thoả mãn các ràng buộc x1 + x2

Ngày đăng: 20/02/2024, 15:59

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

TÀI LIỆU LIÊN QUAN

w