1.3 Bài toán thực tế về quy hoạch tuyến tính 1.3.1 Bài toán lập kế hoạch sản xuất • Bài toán lập kế hoạch sản xuất là một bài toán trong đó doanh nghiệp hoặc nhà máy cần quyết định số lư
Trang 1KHOA KHOA HỌC ỨNG DỤNG
BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH – MT1007
ĐỀ TÀI: QUY HOẠCH TUYẾN TÍNH
Giảng viên hướng dẫn: TS Nguyễn Thị Hoài Thương
Lớp: L10 Nhóm: 13 Danh sách thành viên
STT Thành viên nhóm MSSV
1 Nguyễn Quang Mạnh 2412015
2 Nguyễn Nhật Toàn 2413532
3 Nguyễn Nhật Bảo Long 2411928
4 Nguyễn Phú Quân 2114551
5 Nguyễn Quang Vinh 2413979
6 Nguyễn Quốc Phương 2412786
TP Hồ Chí Minh, tháng 11/2024
Trang 2LỜI CẢM ƠN
Đầu tiên, cho chúng em xin gửi lời cảm ơn chân thành đến Trường Đại học Bách Khoa – ĐHQG TPHCM, đã đưa môn Đại số Tuyến Tính vào chương trình giảng dạy
Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn là cô Nguyễn Thị Hoài Thương
đã giảng dạy, truyền đạt cho chúng em kiến thức quý báu trong những ngày qua Trong suốt thời gian tham gia lớp Đại số tuyến tính của cô, chúng em tự thấy bản thân mình tư duy hơn, học tập càng thêm nghiêm túc và hiệu quả Đây chắc chắn là những tri thức quý báu, là hành trang cần thiết cho chúng em sau này
Bộ môn Đại số tuyến tính là một môn học vô cùng hữu ích, có tính thực tế cao, đảm bảo cung cấp
đủ nhu cầu thực tiễn cho sinh viên Tuy nhiên, do vốn kiến thức chúng em còn nhiều hạn chế cũng như còn bỡ ngỡ nên mặc dù đã cố gắng hết sức nhưng chắc chắn bài tập lớn Đại số tuyến tính lần này khó
có thể tránh khỏi những thiếu sót và vài chỗ còn chưa chính xác Kính mong cô xem xét, góp ý cho Bài tập lớn của chúng em được hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Trang 3Mục lục
1.1 Khái niệm 3
1.2 Lịch sử phát triển 3
1.3 Bài toán thực tế về quy hoạch tuyến tính 4
1.3.1 Bài toán lập kế hoạch sản xuất 4
1.3.2 Bài toán vận tải 5
1.4 Ứng dụng của bài toán quy hoạch tuyến tính 7
1.4.1 Lập kế hoạch sản xuất 7
1.4.2 Quản lý dự án 7
1.4.3 Vấn đề vận chuyển 7
1.5 Ưu – nhược điểm của quy hoạch tuyến tính 8
1.5.1 Ưu điểm: 8
1.5.2 Nhược điểm: 8
2 CHƯƠNG II CƠ SỞ LÝ THUYẾT VÀ THUẬT TOÁN 8 2.1 Tổng quát bài toán 8
2.2 Quy hoạch tuyến tính cho bài toán vận tải 9
2.2.1 Bài toán vận tải 10
2.2.2 Thuật toán 10
3 CHƯƠNG III PHẦN MỀM TỐI ƯU HÓA BÀI TOÁN VẬN TẢI 12 3.1 Bài toán đặt ra 12
3.2 Code 13
3.2.1 Phương án cước phí nhỏ nhất 13
3.2.2 Phương án Tây Bắc 14
3.3 Kết quả 15
Trang 41 Chương I TỔNG QUAN
1.1 Khái niệm
• Quy hoạch tuyến tính (Linear programming - LP) là một thuật toán nhằm tìm ra phương án tối
ưu (hoặc kế hoạch tối ưu) từ vô số các phương án quyết định Phương án tối ưu là phương án thỏa mãn được các mục tiêu đề ra của một hãng, phụ thuộc vào các hạn chế và các ràng buộc
• LP đề cập đến vấn đề phân bổ nguồn lực khan hiếm giữa các hoạt động cạnh tranh trong một phương thức tối ưu Quyết định tối ưu mang lại hiệu quả cao nhất, lãi gộp (Contribution Margin -CM) cao nhất hay doanh thu hoặc chi phí thấp nhất Mô hình LP gồm 2 thành phần:
– Hàm mục tiêu: Phải xác định mục tiêu cụ thể phải đạt tới
– Các ràng buộc: Các ràng buộc dưới dạng các hạn chế về sự sẵn có của nguồn lực hay thỏa mãn các yêu cầu tối thiểu Như tên gọi quy hoạch tuyến tính, cả hàm mục tiêu và các ràng buộc phải dưới dạng tuyến tính
Hình 1: Minh họa về bài toán quy hoạch tuyến tính
• Tại hình trên, vùng màu tím trên khối đa diện chính là vùng được xác định bởi đa tạp Bài toán quy hoạch tuyến tính là tìm một điểm trên khối diện mà tại đó điểm có giá trị cao nhất (hoặc thấp nhất) có thể
1.2 Lịch sử phát triển
• Phương pháp giải hệ phương trình truyến tính đã đã được tìm ra vào năm 1827 bởi Fourier Vì thế
nó có tên là phương pháp loại bỏ Fourier-Motzkin
• Năm 1939, một dạng bài toán quy hoạch tuyến tính tương đương với bài toán quy hoạch tuyến tính tổng quát được đưa ra bởi nhà toán học và kinh tế học Leonid Kantorovich, và ông cũng chính là người đề xuất phương pháp giải nó Trong Thế chiến thứ 2, ông được giao cho nhiệm vụ lập bảng
kế hoạch chi tiêu và thu hồi nhằm giảm chi phí cho quân đội và tăng tổn thất cho kẻ thù Công
Trang 5việc mà Kantorovich làm ban đầu bị lãng quên Cùng thời với Kantorovich, nhà kinh tế học người
Mỹ gốc Hà Lan T.C.Koopmans đã đưa ra các bài toán kinh tế cổ điển dưới dạng bài toán tuyến tính Kantorovich and Kôpmans sau đó cùng nhận giải Nobel kinh tế năm 1975 Năm 1941, Frank Lauren Hitchcook cũng đưa các bài toán vận tải dưới dạng phương trinh tuyến tính và đưa ra một đáp án rất giống với phương pháp simplex sau này Hitchcook qua đời năm 1957, và giải Nobel đã không được truy tặng
1.3 Bài toán thực tế về quy hoạch tuyến tính
1.3.1 Bài toán lập kế hoạch sản xuất
• Bài toán lập kế hoạch sản xuất là một bài toán trong đó doanh nghiệp hoặc nhà máy cần quyết định số lượng sản phẩm cần sản xuất trong một khoảng thời gian nhất định (ví dụ: tuần, tháng) sao cho lợi nhuận đạt được là cao nhất hoặc chi phí sản xuất là thấp nhất, đồng thời phải tuân thủ các giới hạn về nguồn lực như nguyên liệu, thời gian lao động, máy móc, và chi phí sản xuất
Các thành phần cơ bản của bài toán lập kế hoạch sản xuất
Biến quyết định (Decision Variables):
Là số lượng sản phẩm mà công ty quyết định sản xuất trong một khoảng thời gian
Ví dụ: x1, x2, , xn là số lượng các sản phẩm 1, 2, , n mà công ty cần sản xuất
Mục tiêu (Objective Function):
Mục tiêu thường là tối đa hóa lợi nhuận (hoặc tối thiểu hóa chi phí) Nếu mục tiêu là tối đa hóa lợi nhuận, hàm mục tiêu có thể được viết dưới dạng:
Z = c1x1+ c2x2+ · · · + cnxn
Trong đó:
• Z là tổng lợi nhuận (hoặc chi phí cần tối ưu hoá)
• c1, c2, , cn là lợi nhuận (hoặc chi phí) đơn vị từ mỗi sản phẩm
• x1, x2, , xn là số lượng các sản phẩm 1, 2, , n cần sản xuất
Ràng buộc (Constraints):
Các ràng buộc này thường đại diện cho những giới hạn về nguồn lực (nguyên liệu, lao động, máy móc, v.v.) Các ràng buộc có thể được mô tả bằng các bất đẳng thức tuyến tính Ví dụ:
a1x1+ a2x2+ · · · + anxn≤ b Trong đó:
• a1, a2, , an là lượng tài nguyên cần thiết để sản xuất một đơn vị sản phẩm x1, x2, , xn
• b là tổng tài nguyên có sẵn
Giới hạn không âm (Non-negativity):
Các biến quyết định không thể âm, tức là không thể sản xuất một số lượng âm của sản phẩm Do đó, phải có ràng buộc:
x1, x2, , xn ≥ 0
Trang 6Ví dụ
Một xí nghiệp dự định sản xuất hai loại sản phẩm A và B, các sản phẩm này được chế tạo từ 3 loại nguyên liệu I, II, III mà xí nghiệp có là 8, 24, 12 Số lượng các nguyên liệu cần để sản xuất một đơn vị sản phẩm A, B được cho ở bảng sau đây:
Nguyên liệu
Sản phẩm
I II III
• Cần lập một kế hoạch sản xuất, (tức là tính xem nên sản xuất bao nhiêu đơn vị sản phẩm từng loại) để lãi thu được là nhiều nhất Biết sản phẩm A lãi 3 triệu động cho một đơn vị sản phẩm, sản phẩm B lãi 5 triệu đồng cho một đơn vị sản phẩm
Giải
• Ta bổ sung các mô tả cần thiết để thiệt lập bài toán
Nguyên liệu
Sản phẩm
I II III Lãi/ 1 sản phẩm(triệu đồng) Cần sản xuất
Nguyên liệu hiếm có 8 24 12
• Gọi x1, x2là số lượng đơn vị đơn sản phẩm A, B cần sản xuất Điều kiện x1, x2≥ 0
Ta có mô hình bài toán
•
F (x)max= 3x1+ 5x2
• Các ràng buộc
2x1+ 5x2≤ 8 3x1+ 6x2≤ 24 4x1+ 3x2≤ 12
• Điều kiện: x1, x2≥ 0
1.3.2 Bài toán vận tải
Bài toán vận tải trong quy hoạch tuyến tính là một bài toán tối ưu hóa, trong đó mục tiêu là tìm cách vận chuyển hàng hóa từ nhiều nơi cung cấp (nhà máy, kho bãi) đến nhiều nơi tiêu thụ (cửa hàng, điểm bán) sao cho chi phí vận chuyển là thấp nhất mà vẫn đảm bảo nhu cầu của các điểm tiêu thụ được đáp ứng và lượng hàng từ các điểm cung cấp không vượt quá khả năng cung cấp
Các thành phần cơ bản của bài toán vận tải:
• m: Tổng số điểm cung cấp (điểm nguồn)
Trang 7• n: Tổng số điểm tiêu thụ (điểm đích).
• si: Khả năng cung cấp của điểm nguồn thứ i (i = 1, , m)
• dj: Nhu cầu tiêu thụ của điểm đích j (j = 1, , n)
• cij: Chi phí vận chuyển một đơn vị hàng hoá từ điểm nguồn i đến điểm đích j
• xij: Lượng hàng được vận chuyển từ điểm nguồn i đến điểm đích j
Mô hình hoá bài toán:
Hàm mục tiêu:
Min Z =
m
X
i=1
n
X
j=1
cijxij
Ràng buộc:
- Theo điều kiện về khả năng cung cấp:
n
X
j=1
xij ≤ si với i = 1, , m
- Theo điều kiện nhu cầu tiêu thụ:
m
X
i=1
xij ≤ dj với j = 1, , n
- Điều kiện biên: xij ≥ 0
Ví dụ:
Giả sử có hai kho hàng I và II lần lượt chứa 30 tấn và 40 tấn hàng Có 3 cửa hàng A, B, C có khả năng tiếp nhận lần lượt là 20 tấn, 25 tấn và 35 tấn Cước phí chở 1 tấn hàng từ kho cho bởi:
Kho hàng
Cửa hàng
• Tìm cách chở hàng thỏa mãn 2 yêu cầu
– Ít tiền nhất
– Giải toả kho
Giải
• Ta bổ sung các mô tả cần thiết để thiệt lập bài toán
Kho hàng
Cửa hàng
A B C Lượng hàng trong kho
Khả năng tiếp nhận 20 25 35
Trang 8• Gọi x1, x2, x3lần lượt là số tấn hàng chuyển từ kho I tới các cửa hàng A, B, C Điều kiện: x1, x2, x3≥ 0
• Gọi x4, x5, x6 lần lượt là số tấn hàng chuyển từ kho II tới các cửa hàng A, B, C Điều kiện:
x4, x5, x6≥ 0
Ta có mô hình bài toán:
•
F (x)min= 3x1+ 5x2+ 4x3+ 6x4+ 7x5+ x6
• Các ràng buộc:
x1+ x2+ x3= 30
x4+ x5+ x6= 40
x1+ x4≤ 20
x2+ x5≤ 25
x3+ x6≤ 35
• Điều kiện biên: xi ≥ 0, i = 1, 6
1.4 Ứng dụng của bài toán quy hoạch tuyến tính
Quy hoạch tuyến tính là một trong những công cụ quan trọng trong lý thuyết tối ưu hóa, có ứng dụng rộng rãi trong nhiều lĩnh vực để giải quyết các bài toán tối ưu hóa với các điều kiện ràng buộc Dưới đây
là một số ứng dụng nổi bật của quy hoạch tuyến tính:
1.4.1 Lập kế hoạch sản xuất
• Giúp xác định số lượng sản phẩm cần sản xuất sao cho tối đa hóa lợi nhuận hoặc giảm chi phí, trong khi sử dụng hiệu quả tài nguyên như máy móc, công nhân và nguyên liệu
• Ví dụ: Một nhà máy muốn sản xuất các loại sản phẩm với giới hạn về giờ làm việc của máy móc
và nhân công, và tối ưu hóa lợi nhuận
1.4.2 Quản lý dự án
• Phân bổ nguồn lực như thời gian, nhân lực và vật liệu để hoàn thành dự án đúng hạn và với chi phí thấp nhất
• Ví dụ: Phân công công việc trong một dự án xây dựng sao cho tổng chi phí và thời gian là tối ưu 1.4.3 Vấn đề vận chuyển
• Vấn đề vận chuyển: Tối ưu hóa chi phí vận chuyển hàng hóa từ các kho đến các điểm tiêu thụ, sao cho chi phí tổng cộng là thấp nhất
• Ví dụ: Tính toán số lượng hàng hóa cần vận chuyển từ nhiều kho đến các cửa hàng sao cho chi phí vận chuyển là tối thiểu
Trang 91.5 Ưu – nhược điểm của quy hoạch tuyến tính.
1.5.1 Ưu điểm:
• Tối ưu hóa hiệu quả: Giúp tìm ra giải pháp tốt nhất (tối đa hóa hoặc tối thiểu hóa) trong các bài toán có mục tiêu và ràng buộc rõ ràng
• Ứng dụng rộng rãi: Có thể áp dụng trong nhiều lĩnh vực như sản xuất, tài chính, logistics, quản lý nguồn lực
• Công cụ mạnh mẽ với các thuật toán giải nhanh: Các thuật toán như Simplex giúp giải quyết các bài toán lớn một cách nhanh chóng và chính xác
• Mô hình đơn giản: Dễ dàng xây dựng mô hình toán học với các phương trình và bất phương trình tuyến tính
• Tính chính xác và khả năng kiểm tra: Giải pháp luôn chính xác và có thể kiểm tra được, giúp ra quyết định đúng đắn
1.5.2 Nhược điểm:
• Yêu cầu tính tuyến tính: Quy hoạch tuyến tính chỉ áp dụng cho bài toán có hàm mục tiêu và ràng buộc tuyến tính Nếu bài toán có tính phi tuyến, phương pháp này không hiệu quả
• Khó xử lý biến phân rời rạc: Không phù hợp với bài toán yêu cầu các giá trị quyết định là số nguyên (ví dụ: chọn hoặc không chọn, số lượng sản phẩm phải là số nguyên)
• Không xử lý yếu tố không chắc chắn: Quy hoạch tuyến tính không thể xử lý được các yếu tố ngẫu nhiên hoặc không chắc chắn trong bài toán, như dữ liệu biến động hoặc thiếu chính xác
• Giới hạn trong mô hình phức tạp: Không thể giải quyết các bài toán tối ưu hóa phức tạp, như bài toán có cấu trúc phi tuyến hoặc nhiều yếu tố không tuyến tính
• Tính toán tốn kém với bài toán lớn: Với các bài toán có quy mô lớn và nhiều ràng buộc, việc giải quyết có thể tốn nhiều thời gian và tài nguyên tính toán
⇒ Quy hoạch tuyến tính là phương pháp ưu việt khi bài toán có tính chất tuyến tính rõ ràng, với những lợi thế về sự đơn giản, tính toán hiệu quả, tính chính xác và khả năng ứng dụng rộng rãi Các phương pháp khác thường phức tạp hơn hoặc chỉ phù hợp trong các tình huống đặc biệt, chẳng hạn như khi bài toán có tính phi tuyến, biến phân rời rạc hoặc không chắc chắn
2.1 Tổng quát bài toán
Một bài toán quy hoạch tuyến tính tổng quát bao gồm ba thành phần chính: hàm mục tiêu, các ràng buộc, và các biến quyết định Dưới đây là cách biểu diễn chung của một bài toán quy hoạch tuyến tính
1 Biến quyết định:
Giả sử chúng ta có n biến quyết định, ký hiệu là X1, X2, , Xn Những biến này thể hiện số lượng của các yếu tố cần tối ưu hóa (như số lượng sản phẩm sản xuất, mức tài nguyên phân bổ, v.v.)
Trang 102 Hàm mục tiêu:
Hàm mục tiêu là một hàm tuyến tính của các biến quyết định mà chúng ta muốn tối đa hóa hoặc tối thiểu hóa Hàm mục tiêu có dạng:
maximize (hoặc minimize) Z = C1X1+ C2X2+ · · · + CnXn trong đó:
• Z là giá trị của hàm mục tiêu cần tối ưu
• C1, C2, , Cn là các hệ số tuyến tính của các biến trong hàm mục tiêu (ví dụ như lợi nhuận, chi phí, v.v.)
3 Các ràng buộc:
Các ràng buộc là các phương trình hoặc bất phương trình tuyến tính giới hạn giá trị của các biến quyết định Giả sử chúng ta có m ràng buộc, mỗi ràng buộc có dạng:
Ai1X1+ Ai2X2+ · · · + AinXn≤ bi
với i = 1, 2, , m, trong đó:
• aij là các hệ số trong ràng buộc thứ i liên quan đến biến Xj
• bi là giới hạn (hay nguồn lực) của ràng buộc thứ i
Ngoài ra, còn có các ràng buộc không âm của biến quyết định:
Xj ≥ 0 với mọi j = 1, 2, , n
2.2 Quy hoạch tuyến tính cho bài toán vận tải
Xây dựng mô hình quy hoạch tuyến tính cho bài toán vận tải
1 Biến quyết định
Gọi Xij là số đơn vị hàng hóa vận chuyển từ điểm cung Si đến điểm tiêu thụ Dj Đây là các biến cần tìm trong bài toán
2 Hàm mục tiêu
Hàm mục tiêu là tổng chi phí vận chuyển, cần tối thiểu hóa:
minimize Z =
m
X
i=1
n
X
j=1
cijxij
3 Các ràng buộc
Để đảm bảo các yêu cầu về cung và cầu, ta có các ràng buộc sau:
Trang 11(a) Ràng buộc cung cấp: Tổng số lượng hàng hóa xuất từ mỗi điểm cung không vượt quá nguồn cung tại điểm đó:
n
X
j=1
xij ≤ ai với i = 1, 2, , m
(b) Ràng buộc tiêu thụ: Tổng số lượng hàng hóa đến mỗi điểm tiêu thụ phải đáp ứng đủ nhu cầu tại điểm đó:
m
X
i=1
xij ≥ bi với i = 1, 2, , n
(c) Ràng buộc không âm: Các biến quyết định xij ≥ 0 với mọi i và j, vì số lượng hàng hóa không thể là giá trị âm
2.2.1 Bài toán vận tải
Bài toán vận tải (Transportation Problem) là một bài toán tối ưu trong lĩnh vực quy hoạch tuyến tính, được dùng để tìm cách phân bổ hàng hóa từ nhiều điểm cung cấp (nguồn) đến nhiều điểm tiêu thụ (đích) sao cho tổng chi phí vận chuyển là thấp nhất Đây là bài toán điển hình trong việc quản lý chuỗi cung ứng và logistics
Cấu trúc bài toán vận tải
Các thành phần của bài toán vận tải
Giả sử chúng ta có:
• m điểm cung cấp (nguồn hàng), ký hiệu là S1, S2, , Sm, với số lượng hàng hóa sẵn có tại mỗi điểm là a1, a2, , am
• n điểm tiêu thụ (điểm đến), ký hiệu là D1, D2, , Dn, với nhu cầu hàng hóa tương ứng là
b1, b2, , bn
• Chi phí vận chuyển từ mỗi điểm cung Si đến mỗi điểm tiêu Dj là Cij (chi phí này có thể là chi phí trên mỗi đơn vị hàng hóa)
Mục tiêu là tìm ra số lượng hàng hóa cần vận chuyển từ các điểm cung cấp đến các điểm tiêu thụ sao cho tổng chi phí vận chuyển là nhỏ nhất và đáp ứng đầy đủ nhu cầu tại các điểm tiêu thụ cũng như không vượt quá khả năng cung cấp tại các điểm cung
2.2.2 Thuật toán
Các phương pháp giải bài toán vận tải
a/ Các phương pháp giải bài toán vận tải
Phương pháp cước phí thấp nhất
• Chọn ô có cước phí bé nhất Điền vào ô đó giá trị lớn nhất có thể