Bài toán lập kế hoạch sản xuất tối ưu sử dụng công cụ Solver trong Excel để thực hiện tính toán chi tiết.( Lập kế hoạch sản xuất nước rửa tay diệt khuẩn sao cho tổng tiền lãi là lớn nhất ) Bài toán lập kế hoạch sản xuất nước rửa tay lấy ý tưởng từ thực tế trước tình hình dịch Covid19 đang hoành hành.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÀI TẬP LỚN MÔN HỌC: TỐI ƯU HÓA
Đề tài: Bài toán lập kế hoạch sản xuất tối ưu
( Lập kế hoạch sản xuất nước rửa tay diệt khuẩn sao cho tổng tiền lãi là lớn nhất )
Nhóm sinh viên thực hiện: 1 Ánh
Trang 2LỜI NÓI ĐẦU
Trong khoa học máy tính và toán học, bài toán tối ưu hóa là bài toán tìm kiếm lờigiải tốt nhất trong tất cả các lời giải khả thi Bài toán tối ưu hóa có thể được chia thành hailoại tùy thuộc vào việc các biến là liên tục hay rời rạc Bài toán tối ưu hóa với các biến rờirạc còn được gọi là một bài toán tối ưu hóa tổ hợp Trong một bài toán tối ưu hóa tổ hợp,chúng ta tìm kiếm một đối tượng như là một số nguyên, hoán vị hay đồ thị từ một tậphợp hữu hạn (hoặc có thể là vô hạn đếm được) Bài toán với các biến liên tục bao gồm bàitoán hạn chế và bài toán đa phương thức
Bài toán lập kế hoạch sản xuất nước rửa tay lấy ý tưởng từ thực tế trước tình hìnhdịch Covid-19 đang hoành hành Việc chăm sóc, vệ sinh cá nhân thường xuyên là vô cùngthiết yếu và đơn giản nhất để giúp bản thân tránh được dịch bệnh Để phòng tránh dịchbệnh, mỗi chúng ta nên tự ý thức đeo khẩu trang khi ở nơi công cộng, hạn chế đến nơiđông người và rửa tay bằng dung dịch sát khuẩn thường xuyên Bài toán đặt ra là vớilượng nguyên liệu có sẵn, phải sản xuất như thế nào mà số nguyên liệu cần để sản xuấtnước rửa tay không vượt quá số nguyên liệu có sẵn và tổng tiền lãi thu được phải là caonhất
Trang 3Mục lục
LỜI NÓI ĐẦU 2
I Giới thiệu bài toán 4
II Khảo sát dữ liệu 4
III Xây dựng bài toán 5
IV Thuật toán để giải bài toán 6
1.Bài toán quy hoạch tuyến tính tổng quát 6
2.Dạng chính tắc của bài toán quy hoạch tuyến tính 7
3.Thuật toán đơn hình 10
3.1.Tư tưởng của thuật toán 10
3.2.Bảng đơn hình 11
3.3.Thuật toán đơn hình 15
V Công cụ hỗ trợ giải bài toán 16
1.Xây dựng bài toán trong excel 16
2.Cài đặt Solver 18
3.Sử dụng công cụ Solver 19
4.Kết quả thu được: 24
Trang 5I Giới thiệu bài toán
Trước tình hình dịch Covid-19 rộng rãi, trên thị trường cũng xuất hiện hàngloạt các cơ sở sản xuất nước rửa tay phục vụ cho người dân trong việc sát khuẩnphòng chống dịch bệnh Nước rửa tay hay gel rửa tay khô là 1 loại cồn sát khuẩn cótác dụng tiêu diệt vi khuẩn Cái tiện ích của loại sản phẩm này là có thể dùng ở bất
cứ dâu mà không cần nước
Tuy nhiên các chuyên gia khuyên rằng nước rửa tay tuy tiện lợi nhưng khôngtiêu diệt được hoàn toàn vi khuẩn và lượng cồn trong nước rửa tay cũng có thể gây
ăn mòn da Do đó chúng ta không nên có lạm dụng nó thay vào đó nên rửa tay bằng
xà phòng
Nhiều cơ sở sản xuất vì lợi nhuận mà sản xuất nước rửa tay kém chất lượng Vìvậy nhóm chúng em đã tìm hiểu và lập bài toán này để đưa ra giải pháp tối ưu choviệc sản xuất nước rửa tay sao cho tiết kiệm chi phí sản xuất, phù hợp với tiêu chuẩncủa Bộ Y Tế mà tiền lãi lại hợp lý
II.Khảo sát dữ liệu
Theo tìm hiểu bọn em thấy rằng, để sản xuất nước rửa tay thì cần 1 số nguyên liệuchính như:
Cồn(Etanol)
Chất diệt khuẩn (Benzalkonium chloride)
Nước tinh khiết (Deionized water)
Gel nha đam
Với các nguyên liệu trên, để sản xuất nước rửa tay ta chia các nguyên liệu theo tỷ lệsau:
Cồn: 80%
Chất diệt khuẩn: 5%
Nước tinh khiết: 15%( đối với nước rửa tay); 10%(đối với gel rửa tay khô)
Gel nha đam: 10%
Trang 6III Xây dựng bài toán
Giả sử cơ sở sản xuất A cần sản xuất 2 sản phẩm là nước rửa tay và gel rửa taykhô Để sản xuất 2 loại sản phẩm này cần 4 nguyên liệu chính là: cồn, chất diệtkhuẩn, nước tinh khiết, gel nha đam Trong kho của cơ sở A có lưu trữ: 200 lít cồn,
15 lít chất diệt khuẩn, 30 lít nước tinh khiết, 15 lít gel nha đam Tiền lãi của nướcrửa tay là 60 triệu, của gel rửa tay là 75 triệu Chi phí vật tư cần thiết để sản xuấtđược cho trong bảng sau:
Sản phẩm
Để sản xuất 1 thùng 100 lít nước rửa tay cần:
80L cồn + 5L chất diệt khuẩn + 15L nước tính khiết
Để sản xuất 1 thùng 100 lít gel rửa tay khô cần:
75L cồn + 5L chất diệt khuẩn + 10L nước tính khiết + 10L gel nha đam.Gọi:
- x1 là số thùng “nước rửa tay” cần sản xuất, x1>=0
- x2 là số thùng “ gel rửa tay khô” cần sản xuất x2>=0
Khi đó:
- Số tiền lãi sản xuất “nước rửa tay” là 60*x1;
- Số tiền lãi sản xuất “gel rửa tay khô” là 75*x2;
- Để tiền lãi lớn nhất thì 60*x1 + 75*x2 đạt giá trị max
Ta viết được hàm mục tiêu như sau:
Trang 7IV Thuật toán để giải bài toán
Để giải quyết bài toán này ta sử dụng thuật toán đơn hình Trước tiên, chúng tacùng tìm hiểu xem thuật toán đơn hình là gì và cách sử dụng nó như thế nào
1 Bài toán quy hoạch tuyến tính tổng quát
Bài toán tổng quát của QHTT có dạng :
Để phân biệt tính chất của các ràng buộc đối với một phương án, ta làm quen vớihai khái niệm : ràng buộc chặt và ràng buộc lỏng
- Định nghĩa 1: Nếu đối với phương án x mà ràng buộc i thỏa mãn với dấu đẳng
Trang 8- Định nghĩa 2: Ta gọi một phương án thỏa mãn chặt n ràng buộc độc lập tuyến
tính là phương án cực biên Một phương án cực biên thỏa mãn chặt đúng n ràngbuộc gọi là phương án cực biên không suy biến, thỏa mãn chặt hơn n ràngbuộc gọi là phương án cực biên suy biến
- Định nghĩa 3: Một phương án mà tại đó hàm mục tiêu đạt cực tiểu ( cực đại )
gọi là phương án tối ưu Bài toán có ít nhất một phương án tối ưu gọi là bàitoán giải được, bài toán không có phương án hoặc có phương án nhưng hàmmục tiêu không bị chặn dưới ( trên ) trên tập phương án gọi là không giải được
Để nhất quán trong lập luận, ta xét bài toán tìm cực tiểu, sau đó ta xét cách đưa bàitoán tìm cực đại về bài toán tìm cực tiểu
Chuyển bài toán tìm cực đại về bài toán tìm cực tiểu: Nếu gặp bài toán tìm max,tức là :
thì giữ nguyên ràng buộc, ta đưa nó về dạng bài toán tìm min :
2 Dạng chính tắc của bài toán quy hoạch tuyến tính
- Xét bài toán QHTT như sau:
- Kí hiệu ma trận hàng c= (c1, c2,…,cn )1*n và các ma trận :
Trang 9
- Ta có bài toán ở dạng ma trận như sau:
f(x)= cx-> min với điều kiện {Ax=b ,x≥0}
và bài toán ở dạng véc tơ như sau: f(x)= cx-> min
- Đối với bài toán dạng chính tắc ta có một số tính chất và khái niệm quan trọngcủa phương án cực biên như sau :
Tính chất 1( Nhận dạng phương án cực biên ) : Phương án x của bài toán dạng
chính tắc là cực biên khi và chỉ khi hệ thống các véc tơ {Aj :xj > 0} độc lập tuyếntính Với giả thiết hạng[A] = 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
Định nghĩa 4: Ta gọi một hệ m véc tơ {Aj} độc lập tuyến tính bao hàm hệ thống
các véc tơ tương ứng với các thành phần dương của phương án cực biên x là cơ sởcủa phương án cực biên ấy, kí hiệu một cách quy ước là J, trong đóJ={ j: Aj nằm trong cơ sở } Một phương án cực biên không suy biến có đúng mthành phần dương, m véc tơ Aj tương ứng độc lập tuyến tính nên có một cơ sở duynhất, đó chính là các véc tơ tương ứng với các thành phần dương: còn đối vớiphương án cực biên suy biến thì có nhiều cơ sở khác nhau, phần chung của chúng làcác véc tơ tương ứng với các thành phần dương Như vậy khi nói phương án cựcbiên có cơ sở J, cần hiểu J có 3 nội dung sau:
- Số phần tử của J: |J|=m
- {Aj : j ∈ J }độc lập tuyến tính
Trang 10- { Aj : j ∈ J }⊃{ Aj : xj ∈ > 0}
Tính chất 2 ( Tính hữu hạn của số phương án cực biên ): Số phương án cực biên
của mọi bài toán quy hoạch tuyến tính đều hữu hạn
Tính chất 3 ( Sự tồn tại phương án tối ưu ): Nếu bài toán dạng chính tắc có phương
án và hàm mục tiêu bị chặn dưới trên tập phương án thì bài toán có phương án cựcbiên tối ưu Thật vậy, giả sử bài toán có các phương án cực biên là x1, x2, , xk
Đặt: f(x1) = Min f(xi); i = 1,k
Do tập nghiệm ( hay tập phương án của bài toán quy hoạch tuyến tính) của hệ ràngbuộc là một đa diện lồi, cho nên mọi nghiệm (phương án) x đều có thể phân tíchthành:
Suy ra:
Vậy x1 chính là phương án cực biên tối ưu
Đặc biệt : Một lớp quan trọng của các bài toán quy hoạch tuyến tính dạng chính tắc
là bài toán dưới đây gọi là bài toán dạng chuẩn :
Trang 11Trong đó bi ≥ 0 , (i=1,m) , nghĩa là bài toán dạng chính tắc có vế phải không âm vàmỗi phương trình đều có một biến số với hệ số bằng 1 đồng thời không có trong cácphương trình khác ( gọi là biến cô lập với hệ số bằng 1) Từ hệ phương trình ràngbuộc của bài toán dễ dàng suy ra một phương án:
X0 = (b1, b2, , 0, 0, , 0)
Đây chính là 1 phương án cực biên xuất phát có hệ cơ sở tương úng là:
Các bước giải bài toán chuẩn tắc:
Bước 1: chuyển bi ≥ 0
Bước 2: nếu ràng buộc có dấu bằng “≤” hoặc “≥” chuyển về dấu “=” 4
Bước 3: có bao nhiêu ràng buộc thì có bấy nhiêu vecto đơn vị (sắp xếp thành ma
trân đơn vị)
Cơ sở: Aj
Cực biên xuất phát: xj
Bước 4: tính giá trị: k=CjZjk -Ck.
Trang 12k ≥0 (f(x) -> max)
k ≤0 (f(x) -> min)
Thì phương án tối ưu: k<0 (f(x) -> max) phương án tối ưu
3 Thuật toán đơn hình
3.1 Tư tưởng của thuật toán
Nếu bài toán có phương án thì có phương án cực biên
Nếu bài toán có phương án tối ưu thì cũng có phương án cực biên tối ưu Số phương
án cực biên là hữu hạn
Do đó, ta có thể tìm một phương án tối ưu (hay một lời giải của bài toán) trongtập hợp các phương án cực biên Tập hợp này là hữu hạn Vì vậy Dantzig đề xuấtthuật toán đơn hình như sau:
- Xuất phát từ một phương án cực biên x0 Kiểm tra xem x0 có là phương án tối
ưu hay chưa Nếu x0 chưa phải là phương án tối ưu thì tìm cách cải tiến nó đểđược phương pháp khác là x1 tốt hơn x0 , tức là f(x1 ) < f( x0 ) Qúa trình nàylặp lại nhiều lần Vì số phương án cực biên là hữu hạn nên sau một số hữu hạnlần lặp ta sẽ tìm thấy phương án cực biên tối ưu
3.2 Bảng đơn hình
Giả sử x0 với cơ sở J là một phương án cực biên nhưng chưa phải là phương ántối ưu, khi đó ∀k ∉ J0 sao cho Δk <0 Giả sử s là một chỉ số trong các chỉ số nóik <0 Giả sử s là một chỉ số trong các chỉ số nóitrên: s ∉ J0 , Δk <0 Giả sử s là một chỉ số trong các chỉ số nóis>0
Theo thuật toán trên ta cần cải tiến x0 để nhận được một phương án cực biênmới tốt hơn Ta sẽ tìm một phương án cực biên mới x1 ứng với cơ sở J1 chỉ khác Jmột véc tơ : J1=(J0/r) ∪s , tức là ta đưa véc tơ As vào cơ sở thay cho véc tơ Ar bịloại ra khỏi cơ sở J Vì mọi thành phần ngoài cơ sở của một phương án cực biên đềubằng 0 nên phương án cực biên mới x1 có cơ sở J1=(J0/r) ∪s là:
Trang 13
Trong đó θ là một số dương sẽ được xác định sau sao cho x1 là một phương án cựcbiên
Tìm điều kiện của θ để x1 là một phương án: Để x1 là một phương án thì nó phảithỏa mãn các điều kiện buộc Ax=b và x ≥ 0
Ta thấy rằng với mọi θ , ta có:
Vậy với mọi θ thì ràng buộc thứ nhất thỏa mãn Ta chỉ cần tìm θ sao cho x1 ≥ 0 Cóhai trường hợp xảy ra:
Trường hợp 1: Nếu zjs ≤ 0 với mọi j ∈J thì x1 ≥ 0 với mọi θ > 0 và x1 là phương
án của bài toán Nhưng do Δk <0 Giả sử s là một chỉ số trong các chỉ số nóis>0 :
Như vậy hàm mục tiêu không bị chặn dưới trên miền ràng buộc Khi đó bài toánkhông có lời giải hữu hạn
Trường hợp 2: Nếu ∃ j∉ J0 để zjs > 0, số θ không thể lớn tùy ý, nó phải thỏamãn , zjs > 0 Giá trị θ lớn nhất chỉ có thể bằng min
Trang 14Nếu vượt qua miền đó sẽ có một trong các và x1 sẽ vượt ra khỏi miền ràngbuộc Giả sử cực tiểu trên đạt tại j = r Lấy thay vào phương trình trên ta được
Khi đó ta có :
Từ đó ta có x1 là phương án tốt hơn x0 nếu
Do đó x1 là phương án cực biên và J1 là cơ sở của phương án cực biên x1 Nhưvậy x1 là một phương án cực biên của bài toán ở trên ta đã tìm các thành phần củaphương án cực biên mới x1 cùng với giá trị hàm mục tiêu f(x1 ) thông qua các hệ
số khai triển zjk và các ước lượng trong cơ
sở J1 Như vậy chúng ta cần xác định các đại lượng 𝑧𝑗𝑘 1 vàΔk <0 Giả sử s là một chỉ số trong các chỉ số nói𝑘 1 trong cơ sở J1 Theo định nghĩa zjk và Δk <0 Giả sử s là một chỉ số trong các chỉ số nói𝑘 1 là các hệ số khai triển của véc tơ Ak tương ứng với cơ
sở J, J1
Trang 15Từ
Ta có :
Thay vào phương trình trên (**):
Vì {Aj, j∈J} độc lập tuyến tính nên từ (*) và (**) suy ra:
Trang 163.3 Thuật toán đơn hình
Bước xuất phát: Tìm một phương án cực biên x0 và cơ sở J0 tương ứng Tìm các
hệ số khai triển zij và các ước lượng Δk <0 Giả sử s là một chỉ số trong các chỉ số nóik
Bước 1: Kiểm tra dấu hiệu tối ưu Nếu thì Δk <0 Giả sử s là một chỉ số trong các chỉ số nóik ≤0 ∀ k∉ J0 thì x0 là phương án tối ưu.
Thuật toán kết thúc Nếu ∃ Δk <0 Giả sử s là một chỉ số trong các chỉ số nóik >0 thì chuyển sang bước 2
Bước 2: Kiểm tra dấu hiệu hàm mục tiêu giảm vô hạn: Với mỗi mà k∉ J0 mà Δk <0 Giả sử s là một chỉ số trong các chỉ số nóik > 0
thì kiểm tra các hệ số khai triển zij của cột Ak tương ứng: a Nếu có một Δk <0 Giả sử s là một chỉ số trong các chỉ số nóik > 0 màtất cả zij ≤ 0 ∀j ∈ J0 thì kết luận hàm mục tiêu giảm vô hạn trên miền ràng buộc.Bài toán không có lời giải hữu hạn Thuật toán kết thúc b ∀k ∉ J0 mà Δk <0 Giả sử s là một chỉ số trong các chỉ số nóik >0 đềutồn tại ít nhất một hệ số zij >0 thì chuyển sang bước 3
Trang 17Bước 3: Xác định cột xoay, dòng xoay, phần tử trục Chọn chỉ số s∉
J0 :Δk <0 Giả sử s là một chỉ số trong các chỉ số nóis=max{ Δk <0 Giả sử s là một chỉ số trong các chỉ số nóik>0,k ∉ J0 }, đánh dấu cột s là cột xoay
- Tìm chỉ số r đạt min:
Bước 4: Tính các trong cơ sở mới theo các côngthức trên Ghi nhận các kết quả trong một bảng mới Quay trở lại bước 1 Để nhậnđược bảng đơn hình mới từ bảng đơn hình cũ ta làm như sau:
Thay Ar bằng As, cr bằng cs + Chia các phần tử trên hàng xoay (hàng r) chophần tử trục zrs ta được hàng r mới gọi là hàng chuẩn Mỗi phần tử khác ngoài hàngxoay trừ đi tích của phần tử cùng hàng với nó trên cột xoay với phần tử cùng cột với
nó trên hàng chuẩn được phần tử cùng vị trí trong bảng đơn hình mới
V Công cụ hỗ trợ giải bài toán
Để giải quyết các bài toán QHTT phần mềm Excel cung cấp cho chúng ta một công cụkhá hữu ích là Solver
1 Xây dựng bài toán trong excel
Việc xây dựng bài toán trong Excel cũng tương tự như việc xây dựng bài toán khichúng ta tiến hành giải thủ công thông thường Sau khi phân tích đầu bài chúng ta cần
Trang 18viết được hàm mục tiêu và các ràng buộc của bài toán rồi tiến hành tổ chức dữ liệu vàobảng tính.
Thiết lập các giá trị trong Excel theo bài toán đề ra
Vât liệu trong kho: là số vật liệu còn lại trong kho của từng nguyên liệu
Tiền lãi: tiền lãi được để ra sau khi sản xuất và bán sản phẩm
Xây dựng bài toán
Gọi:
x1 là lượng SP1 cần sản xuất, x1>=0
x2 là lượng SP2 cần sản xuất x2>=0
Khi đó:
Số tiền lãi sản xuất “nước rửa tay” là 60*x1;
Số tiền lãi sản xuất “gel rửa tay khô” là 75*x2;
Để tiền lãi lớn nhất thì 60*x1 + 75*x2 đạt giá trị max
Ta viết được hàm mục tiêu như sau:
60*x1 + 75*x2 max
Trang 19Từ bảng chi phí ở trên ta có các ràng buộc sau:
Giả sử để sản xuất mỗi sản phẩm cần sản xuất 1 đơn vị sản phẩm
Khởi tạo giá trị đầu tiên của x1 và x2 tại ô B8 và C8 là 1
- Tại các ô D3, D4, D5, D6 là lượng vật liệu để sản xuất 1 đơn vị sản phẩm
Ví dụ: để sản xuất 1 đơn vị sản phẩm SP1 và SP2 cần 80 NL1 và 80 NL2 Suy
ra, giá trị tại ô D3 là : 80*1 + 80*1 hay B3*B8+C3*C8
- Giá trị tại ô D7 là tiền lãi khi bán 1 đơn vị sản phẩm SP1 và SP2
2 Cài đặt Solver
– Mặc định công cụ Solver không được cài đặt sẵn trong Excel
– Cài đặt công này trong phần Add-ins của Excel
– Các bước cài đặt: (dành cho phiên bản MS Office 2010, với phiên bản MS Office
2003 có thể tìm thấy trong cuốn giáo trình Tin học ứng dụng-HVTC)
+ Khởi động Excel
+ Vào File chọn Options
+ Trong cửa sổ Excel Options ta bấm chọn Add-Ins, sau đó bấm Go…