Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Chương 2: Giới thiệu về Tối ưu hóa và Lập trình

tuyến tính
2.0 Giới thiệu
Thế giới của chúng ta chứa đầy những nguồn tài nguyên hạn chế. Lượng dầu chúng ta
có thể bơm ra khỏi trái đất là có hạn. Diện tích đất dành cho bãi rác và chất thải nguy hại
bị hạn chế và ở nhiều khu vực đang giảm nhanh chóng. Ở mức độ cá nhân hơn, mỗi
chúng ta đều có một khoảng thời gian giới hạn để hoàn thành hoặc tận hưởng các hoạt
động mà chúng ta lên lịch mỗi ngày. Hầu hết chúng ta đều có một số tiền hạn chế để chi
tiêu khi theo đuổi các hoạt động này. Các doanh nghiệp cũng có nguồn lực hạn chế. Một
tổ chức sản xuất sử dụng một số lượng hạn chế công nhân. Một nhà hàng có một số lượng
hạn chế không gian có sẵn cho chỗ ngồi.
Quyết định cách tốt nhất để sử dụng các nguồn lực hạn chế có sẵn cho một cá nhân
hoặc một doanh nghiệp là một vấn đề chung. Trong môi trường kinh doanh cạnh tranh
ngày nay, việc đảm bảo rằng các nguồn lực hạn chế của công ty được sử dụng theo cách
hiệu quả nhất có thể ngày càng trở nên quan trọng. Thông thường, điều này liên quan đến
việc xác định cách phân bổ các nguồn lực sao cho tối đa hóa lợi nhuận hoặc giảm thiểu
chi phí . Lập trình toán học (MP) là một lĩnh vực khoa học quản lý nhằm tìm ra cách thức
tối ưu, hay hiệu quả nhất trong việc sử dụng các nguồn lực hạn chế để đạt được mục tiêu
của một cá nhân hay một doanh nghiệp. Vì lý do này, lập trình toán học thường được gọi
là tối ưu hóa .
2.1 Các ứng dụng của Tối ưu toán học
Để giúp bạn hiểu mục đích của tối ưu hóa và các loại vấn đề mà nó có thể được sử dụng,
chúng ta hãy xem xét một số ví dụ về các tình huống ra quyết định trong đó các kỹ thuật
MP đã được áp dụng.
Xác định hỗn hợp sản phẩm . Hầu hết các công ty sản xuất có thể sản xuất nhiều loại
sản phẩm. Tuy nhiên, mỗi sản phẩm thường đòi hỏi lượng nguyên liệu và nhân công khác
nhau. Tương tự như vậy, số lượng lợi nhuận được tạo ra bởi các sản phẩm khác nhau.
Người quản lý của một công ty như vậy phải quyết định sản xuất bao nhiêu mỗi loại sản
phẩm để tối đa hóa lợi nhuận hoặc để đáp ứng nhu cầu với chi phí tối thiểu.
Chế tạo. Các bảng mạch in, giống như các bảng mạch được sử dụng trong hầu hết các
máy tính, thường có hàng trăm hoặc hàng nghìn lỗ khoan trên chúng để chứa các thành
phần điện khác nhau phải được cắm vào chúng. Để sản xuất các bảng này, máy khoan
điều khiển bằng máy tính phải được lập trình để khoan ở một vị trí nhất định, sau đó di
chuyển mũi khoan đến vị trí tiếp theo và khoan lại. Quá trình này được lặp đi lặp lại hàng
trăm hoặc hàng nghìn lần để hoàn thành tất cả các lỗ trên bảng mạch. Các nhà sản xuất
Chương 2 Giới thiệu về Tối ưu hóa và Lập trình tuyến tính

các bảng này sẽ được hưởng lợi từ việc xác định thứ tự khoan giúp giảm thiểu tổng
khoảng cách mà mũi khoan phải di chuyển.
Định tuyến và hậu cần . Nhiều công ty bán lẻ có kho hàng trên khắp đất nước chịu trách
nhiệm giữ cho các cửa hàng được cung cấp hàng hóa để bán. Lượng hàng hóa có sẵn tại
các nhà kho và số lượng cần thiết tại mỗi cửa hàng có xu hướng dao động, cũng như chi
phí vận chuyển hoặc giao hàng hóa từ kho đến các địa điểm bán lẻ. Một lượng lớn tiền có
thể được tiết kiệm bằng cách xác định phương pháp ít tốn kém nhất để chuyển hàng hóa
từ kho đến cửa hàng.
Kế hoạch tài chính . Chính phủ liên bang yêu cầu các cá nhân bắt đầu rút tiền từ tài
khoản hưu trí cá nhân (IRAs) và các chương trình hưu trí được miễn thuế khác không
muộn hơn 70,5 tuổi. Có nhiều quy tắc khác nhau phải được tuân theo để tránh phải trả
thuế phạt đối với những lần rút tiền này. Hầu hết các cá nhân muốn rút tiền của họ theo
cách giảm thiểu số tiền thuế họ phải trả trong khi vẫn tuân thủ luật thuế.

OptimizationIsEverywhere
Đi Disney World vào mùa hè này? Tối ưu hóa sẽ là người bạn đồng hành phổ biến của
bạn, lập lịch trình cho phi hành đoàn và máy bay, định giá vé máy bay và phòng khách
sạn, thậm chí giúp thiết lập sức chứa cho các trò chơi trong công viên giải trí. Nếu bạn sử
dụng Orbitz để đặt chuyến bay, một công cụ tối ưu hóa sẽ sàng lọc qua hàng triệu tùy
chọn để tìm giá vé rẻ nhất. Nếu bạn nhận chỉ đường đến khách sạn của mình từ
MapQuest, một công cụ tối ưu hóa khác sẽ tìm ra tuyến đường trực tiếp nhất. Nếu bạn
vận chuyển quà lưu niệm về nhà, một công cụ tối ưu hóa sẽ cho UPS biết nên đặt các gói
hàng lên xe tải nào, các gói hàng nên đến vị trí chính xác nào trên xe tải để chúng được
bốc dỡ nhanh nhất và người lái xe nên đi theo lộ trình nào để giao hàng hiệu quả nhất .
(Phỏng theo: V. Postrel, “Operation Everything,” The Boston Globe, ngày 27 tháng 6 năm 2004.)

2.2 Đặc điểm của các bài toán tối ưu


Những ví dụ này chỉ đại diện cho một vài lĩnh vực mà MP đã được sử dụng thành công.
Chúng ta sẽ xem xét nhiều ví dụ khác trong suốt cuốn sách này. Tuy nhiên, những ví dụ
này cung cấp cho bạn một số ý tưởng về các vấn đề liên quan đến tối ưu hóa. Chẳng hạn,
mỗi ví dụ liên quan đến một hoặc nhiều quyết định phải được đưa ra: Mỗi sản phẩm nên
được sản xuất bao nhiêu? Lỗ nào nên được khoan tiếp theo? Bao nhiêu sản phẩm nên
được vận chuyển từ mỗi nhà kho đến các địa điểm bán lẻ khác nhau? Một cá nhân nên rút
bao nhiêu tiền mỗi năm từ các tài khoản hưu trí khác nhau?
Ngoài ra, trong mỗi ví dụ, các hạn chế hoặc ràng buộc có khả năng được đặt trên các
lựa chọn thay thế có sẵn cho người ra quyết định. Trong ví dụ đầu tiên, khi xác định số
lượng sản phẩm cần sản xuất, người quản lý sản xuất có thể phải đối mặt với một lượng
Thể hiện các vấn đề tối ưu hóa toán học

nguyên liệu thô hạn chế và một lượng lao động hạn chế. Trong ví dụ thứ hai, mũi khoan
sẽ không bao giờ quay trở lại vị trí mà lỗ đã được khoan. Trong ví dụ thứ ba, có giới hạn
về số lượng hàng hóa mà một chiếc xe tải có thể chở từ một nhà kho đến các cửa hàng
trên tuyến đường của nó. Trong ví dụ thứ tư, luật xác định số tiền tối thiểu và tối đa có
thể được rút từ tài khoản hưu trí mà không bị phạt. Có thể có nhiều ràng buộc khác cho
những ví dụ này. Thật vậy, không có gì lạ khi các bài toán tối ưu hóa trong thế giới thực
có hàng trăm hoặc hàng nghìn ràng buộc.
Một yếu tố chung cuối cùng trong mỗi ví dụ là sự tồn tại của một số mục tiêu hoặc mục
tiêu mà người ra quyết định xem xét khi quyết định hướng hành động nào là tốt nhất.
Trong ví dụ đầu tiên, người quản lý sản xuất có thể quyết định sản xuất một số hỗn hợp
sản phẩm khác nhau với các nguồn lực sẵn có, nhưng người quản lý đó có thể sẽ chọn
hỗn hợp sản phẩm tối đa hóa lợi nhuận. Trong ví dụ thứ hai, có thể sử dụng một số lượng
lớn các mẫu khoan khả thi, nhưng mẫu lý tưởng có thể sẽ liên quan đến việc di chuyển
mũi khoan trong tổng khoảng cách ngắn nhất. Trong ví dụ thứ ba, có nhiều cách hàng hóa
có thể được vận chuyển từ nhà kho để cung cấp cho các cửa hàng, nhưng công ty có thể
sẽ muốn xác định tuyến đường giúp giảm thiểu tổng chi phí vận chuyển. Cuối cùng, trong
ví dụ thứ tư, các cá nhân có thể rút tiền từ tài khoản hưu trí của mình theo nhiều cách mà
không vi phạm luật thuế, nhưng họ có thể muốn tìm phương pháp giảm thiểu nghĩa vụ
thuế của mình.
2.3 Thể hiện các vấn đề tối ưu hóa bằng toán học
Từ phần thảo luận trước, chúng ta biết rằng các bài toán tối ưu hóa liên quan đến ba yếu
tố: quyết định, ràng buộc và mục tiêu. Nếu chúng ta có ý định xây dựng một mô hình
toán học của một bài toán tối ưu hóa, chúng ta sẽ cần các thuật ngữ hoặc ký hiệu toán học
để biểu diễn từng yếu tố trong số ba yếu tố này.
2.3.1 QUYẾT ĐỊNH
Các quyết định trong bài toán tối ưu hóa thường được biểu diễn dưới dạng mô hình toán
học bằng các ký hiệu X1, X2, . . ., xn. Chúng tôi sẽ đề cập đến X1, X2, . . ., xn là các
biến quyết định (hoặc đơn giản là các biến) trong mô hình. Các biến này có thể đại diện
cho số lượng sản phẩm khác nhau mà người quản lý sản xuất có thể chọn để sản xuất.
Chúng có thể đại diện cho số lượng hàng hóa khác nhau được vận chuyển từ nhà kho đến
một cửa hàng nhất định. Chúng có thể đại diện cho số tiền được rút từ các tài khoản hưu
trí khác nhau.
Các ký hiệu chính xác được sử dụng để biểu diễn các biến quyết định không đặc biệt
quan trọng. Bạn có thể sử dụng Z1, Z2, . . . , Zn hay các ký hiệu như Chó, Mèo, Khỉ để
thể hiện các biến quyết định trong mô hình. Việc lựa chọn sử dụng biểu tượng nào phần
lớn là vấn đề sở thích cá nhân và có thể thay đổi từ vấn đề này sang vấn đề khác
Chương 2 Giới thiệu về Tối ưu hóa và Lập trình tuyến tính

2.3.2 RÀNG BUỘC


Các ràng buộc trong một bài toán tối ưu hóa có thể được biểu diễn trong một mô hình
toán học theo nhiều cách. Ba cách chung để thể hiện các mối quan hệ ràng buộc có thể có
trong một vấn đề tối ưu hóa là:
Một ràng buộc “nhỏ hơn hoặc bằng”: f( X1, X2, . . . , Xn) ≤ b

Một ràng buộc “lớn hơn hoặc bằng”: f( X1, X2, . . . , Xn) ≥ b

Một ràng buộc "bằng": f( X1, X2, . . , Xn) = b

Trong mỗi trường hợp, ràng buộc là một số hàm của các biến quyết định phải nhỏ hơn
hoặc bằng, lớn hơn hoặc bằng hoặc bằng một giá trị cụ thể nào đó (được biểu thị bằng
chữ b ở trên). Chúng ta sẽ coi f( X1, X2, . . . . , Xn) là giá trị bên trái (LHS) của ràng
buộc và b là giá trị bên phải (RHS) của ràng buộc.
Ví dụ: chúng ta có thể sử dụng ràng buộc “nhỏ hơn hoặc bằng” để đảm bảo rằng tổng số
lao động được sử dụng để sản xuất một số lượng sản phẩm nhất định không vượt quá số
lượng lao động hiện có. Chúng tôi có thể sử dụng ràng buộc “lớn hơn hoặc bằng” để đảm
bảo rằng tổng số tiền được rút từ tài khoản hưu trí của một người ít nhất là số tiền tối
thiểu theo yêu cầu của IRS. Bạn có thể sử dụng bất kỳ số lượng các ràng buộc này để
biểu diễn một vấn đề tối ưu hóa nhất định tùy thuộc vào yêu cầu của tình huống.
2.3.3 MỤC TIÊU
Mục tiêu trong một bài toán tối ưu hóa được biểu diễn bằng toán học bởi một hàm mục
tiêu ở định dạng chung:
TỐI ĐA (hoặc TỐI THIỂU): f( X1, X2, . . . , Xn)

Hàm mục tiêu xác định một số chức năng của các biến quyết định mà người ra quyết
định muốn TỐI ĐA HOẶC TỐI THIỂU. Trong các ví dụ trước đây của chúng tôi, hàm
này có thể được sử dụng để mô tả tổng lợi nhuận liên quan đến hỗn hợp sản phẩm, tổng
khoảng cách mà mũi khoan phải di chuyển, tổng chi phí vận chuyển hàng hóa hoặc tổng
nghĩa vụ thuế của người về hưu.
Công thức toán học của một vấn đề tối ưu hóa có thể được mô tả trong định dạng chung:
TỐI ĐA (hoặc TỐI THIỂU): f0(X1, X2, . . . , Xn) 2.1
Theo: f1(X1, X2, . . . , Xn) ≤ b1 2.2
:
Fk( X1, X2, . . , Xn) ≥ bk 2.3
Xây dựng mô hình LP

:
Fm( X1, X2, . . , Xn) = bm 2,4
Biểu diễn này xác định hàm mục tiêu (phương trình 2.1) sẽ được cực đại hóa (hoặc cực
tiểu) và các ràng buộc phải được thỏa mãn (phương trình 2.2 đến 2.4). Các chỉ số được
thêm vào f và b trong mỗi phương trình nhấn mạnh rằng các hàm mô tả mục tiêu và các
ràng buộc đều có thể khác nhau. Mục tiêu của tối ưu hóa là tìm các giá trị của các biến
quyết định tối đa hóa (hoặc giảm thiểu) hàm mục tiêu mà không vi phạm bất kỳ ràng
buộc nào.
2.4 Kỹ thuật lập trình toán học
Đại diện chung của chúng tôi về một mô hình MP chỉ là như vậy - chung chung. Bạn có
thể sử dụng nhiều loại hàm để biểu diễn hàm mục tiêu và các ràng buộc trong mô hình
MP. Tất nhiên, bạn luôn nên sử dụng các hàm mô tả chính xác mục tiêu và các ràng buộc
của vấn đề mà bạn đang cố gắng giải quyết. Đôi khi, các chức năng trong một mô hình có
bản chất tuyến tính (nghĩa là chúng tạo thành các đường thẳng hoặc bề mặt phẳng);
những lúc khác, 20 Chương 2 Giới thiệu về Tối ưu hóa và Quy hoạch Tuyến tính chúng
phi tuyến tính (nghĩa là chúng tạo thành các đường cong hoặc bề mặt cong). Đôi khi, giá
trị tối ưu của các biến quyết định trong mô hình phải nhận giá trị nguyên (số nguyên);
những lần khác, các biến quyết định có thể giả sử các giá trị phân số.
Với sự đa dạng của các bài toán MP có thể gặp phải, nhiều kỹ thuật đã được phát triển
để giải các loại bài toán MP khác nhau. Trong các chương tiếp theo, chúng ta sẽ xem xét
các kỹ thuật MP này và hiểu rõ hơn về sự khác biệt của chúng và khi nào nên sử dụng
chúng. Chúng ta sẽ bắt đầu bằng cách kiểm tra một kỹ thuật gọi là lập trình tuyến tính
(LP), liên quan đến việc tạo và giải các bài toán tối ưu hóa với các hàm mục tiêu tuyến
tính và các ràng buộc tuyến tính. LP là một công cụ rất mạnh có thể được áp dụng trong
nhiều tình huống kinh doanh. Nó cũng tạo cơ sở cho một số kỹ thuật khác được thảo luận
sau và do đó, là điểm khởi đầu tốt cho cuộc điều tra của chúng tôi về lĩnh vực tối ưu hóa.
2.5 Một bài toán LP ví dụ
Chúng ta sẽ bắt đầu nghiên cứu về LP bằng cách xem xét một ví dụ đơn giản. Bạn không
nên giải thích điều này có nghĩa là LP không thể giải quyết các vấn đề thực tế hoặc phức
tạp hơn. LP đã được sử dụng để giải quyết các vấn đề cực kỳ phức tạp, tiết kiệm cho các
công ty hàng triệu đô la. Tuy nhiên, nhảy thẳng vào một trong những bài toán phức tạp
này sẽ giống như bắt đầu một cuộc chạy marathon mà chưa bao giờ ra ngoài chạy bộ—
bạn sẽ bị rối trí và có thể bị bỏ lại phía sau rất nhanh. Vì vậy, chúng ta sẽ bắt đầu với một
cái gì đó đơn giản.
Blue Ridge Hot Tubs sản xuất và bán hai mẫu bồn tắm nước nóng: Aqua-Spa và
Hydro-Lux. Howie Jones, chủ sở hữu và người quản lý của công ty, cần quyết định
Chương 2 Giới thiệu về Tối ưu hóa và Lập trình tuyến tính

số lượng mỗi loại bồn nước nóng sẽ sản xuất trong chu kỳ sản xuất tiếp theo của
mình. Howie mua vỏ bồn tắm nước nóng bằng sợi thủy tinh đúc sẵn từ một nhà cung
cấp địa phương và thêm máy bơm và đường ống vào vỏ để tạo ra bồn tắm nước nóng
của mình. (Nhà cung cấp này có khả năng cung cấp bao nhiêu vỏ bồn nước nóng tùy
theo nhu cầu của Howie.) Howie lắp cùng một loại máy bơm vào cả hai bồn nước
nóng. Anh ấy sẽ chỉ có 200 máy bơm trong chu kỳ sản xuất tiếp theo của mình. Từ
quan điểm sản xuất, sự khác biệt chính giữa hai mô hình bồn tắm nước nóng là số
lượng ống và nhân công cần thiết. Mỗi Aqua-Spa cần 9 giờ lao động và 12 feet ống.
Mỗi Hydro-Lux cần 6 giờ lao động và 16 feet ống. Howie dự kiến sẽ có 1.566 giờ lao
động sản xuất và 2.880 feet ống có sẵn trong chu kỳ sản xuất tiếp theo. Howie kiếm
được lợi nhuận 350 đô la trên mỗi Aqua-Spa mà anh ấy bán và 300 đô la trên mỗi
Hydro-Lux mà anh ấy bán. Anh ấy tự tin rằng mình có thể bán hết số bồn tắm nước
nóng do mình sản xuất. Câu hỏi đặt ra là Howie nên sản xuất bao nhiêu Aqua-Spa và
Hydro-Lux nếu muốn tối đa hóa lợi nhuận của mình trong chu kỳ sản xuất tiếp theo?
2.6 Xây dựng mô hình LP
Quá trình xử lý một vấn đề thực tế—chẳng hạn như xác định số lượng Aqua-Spa và
Hydro-Luxes Howie nên sản xuất—và biểu thị nó theo phương pháp đại số dưới dạng mô
hình LP được gọi là xây dựng mô hình. Xuyên suốt các chương tiếp theo, bạn sẽ thấy
rằng việc xây dựng mô hình LP là một nghệ thuật cũng như khoa học.
2.6.1 CÁC BƯỚC XÂY DỰNG MỘT MÔ HÌNH LP
Có một số bước chung mà bạn có thể làm theo để giúp đảm bảo rằng công thức của bạn
về một vấn đề cụ thể là chính xác. Chúng tôi sẽ thực hiện các bước này bằng cách sử
dụng ví dụ về bồn tắm nước nóng.
1. Hiểu rõ vấn đề . Bước này dường như quá rõ ràng đến nỗi hầu như không đáng
nhắc đến. Tuy nhiên, nhiều người có xu hướng nhảy vào một vấn đề và bắt đầu
viết hàm mục tiêu và các ràng buộc trước khi họ thực sự hiểu vấn đề. Nếu bạn
không hiểu đầy đủ về vấn đề mà bạn gặp phải, thì không chắc rằng cách trình bày
vấn đề của bạn sẽ đúng.
Vấn đề trong ví dụ của chúng tôi khá dễ hiểu: Howie nên sản xuất bao nhiêu
Aqua-Spas và Hydro-Luxes để tối đa hóa lợi nhuận của mình, trong khi sử dụng
không quá 200 máy bơm, 1.566 giờ lao động và 2.880 feet ống?
2. Xác định các biến quyết định . Sau khi chắc chắn mình đã hiểu vấn đề, bạn cần
xác định các biến số quyết định. Đó là, các quyết định cơ bản phải được thực hiện
để giải quyết vấn đề là gì? Câu trả lời cho câu hỏi này thường sẽ giúp bạn xác định
các biến quyết định thích hợp cho mô hình của mình. Việc xác định các biến quyết
định tức là xác định các ký hiệu X1, X2, . . . , Xn đại diện trong mô hình của bạn.
Chương 2 Giới thiệu về Tối ưu hóa và Lập trình tuyến tính

Trong ví dụ của chúng tôi, quyết định cơ bản mà Howie phải đối mặt là: Nên
sản xuất bao nhiêu Aqua -Spas và Hydro-Luxes? Trong vấn đề này, chúng tôi sẽ
để X1 đại diện cho số lượng Aqua-Spa để sản xuất và X2 đại diện cho số lượng
Hydro-Luxes để sản xuất.
3. Trình bày hàm mục tiêu dưới dạng tổ hợp tuyến tính của các biến quyết định
. Sau khi xác định các biến quyết định mà bạn sẽ sử dụng, bước tiếp theo là tạo
hàm mục tiêu cho mô hình. Hàm này thể hiện mối quan hệ toán học giữa các biến
quyết định trong mô hình là cực đại hay cực tiểu.
Trong ví dụ của chúng tôi, Howie kiếm được lợi nhuận 350 đô la trên mỗi
Aqua-Spa (X1) mà anh ấy bán và 300 đô la trên mỗi Hydro-Lux (X2) mà anh ấy
bán. Do đó, mục tiêu của Howie là tối đa hóa lợi nhuận mà anh ta kiếm được được
phát biểu một cách toán học như sau:
MAX: 350X1 + 300X2
Đối với bất kỳ giá trị nào có thể được gán cho X1 và X2, hàm trước đó sẽ tính
toán tổng lợi nhuận liên quan mà Howie sẽ kiếm được. Rõ ràng, Howie muốn tối
đa hóa giá trị này.
4. Trình bày các ràng buộc dưới dạng tổ hợp tuyến tính của các biến quyết định
. Như đã đề cập trước đó, thường có một số hạn chế về giá trị có thể được giả định
bởi các biến quyết định trong mô hình LP. Những hạn chế này phải được xác định
và nêu dưới dạng các ràng buộc.
Trong ví dụ của chúng tôi, Howie phải đối mặt với ba trở ngại chính. Vì chỉ có
200 máy bơm và mỗi bồn nước nóng cần một máy bơm, Howie không thể sản xuất
nhiều hơn tổng số 200 bồn nước nóng. Hạn chế này được phát biểu một cách toán
học như sau:
1X1 + 1X2 ≤ 200
Ràng buộc này chỉ ra rằng mỗi đơn vị X1 được sản xuất (nghĩa là mỗi Aqua-
Spa được chế tạo) sẽ sử dụng một trong số 200 máy bơm có sẵn—cũng như mỗi
đơn vị X2 được sản xuất (tức là mỗi Hydro-Lux được chế tạo). Tổng số máy bơm
được sử dụng (được biểu thị bằng 1X1 + 1X2) phải nhỏ hơn hoặc bằng 200.
Một hạn chế khác mà Howie phải đối mặt là anh ta chỉ có 1.566 giờ lao động
trong chu kỳ sản xuất tiếp theo. Bởi vì mỗi Aqua-Spa anh ấy xây dựng (mỗi đơn vị
X1) cần 9 giờ lao động và mỗi Hydro-Lux (mỗi đơn vị X2) cần 6 giờ lao động,
hạn chế về số giờ lao động được nêu như sau:
9X1 + 6X2 ≤ 1,566

You might also like