Quỵhoạch tuyếntính có thể đượcsử dụng để phân bố thời Trang 2 Hội nghị Khoa học trẻ ỉần 5 năm 2023YSC2023-ỈUHsinh trong cácvấn đề tối ưulà vềtính nguyên của các biến.Ví dụ, nếu bạn giả
Trang 1Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
YSC5.002
QUY HOẠCH TUYẾN TÍNH NGUYÊN VÀ ỨNG DỤNG TRONG THựC TẾ
}Khoa Công nghệ Thông tin, TrườngĐại học Công nghiệp Thành phổ Hồ Chỉ Minh
Hrinhnguyenhoangvu306@gmail.com
Tóm tăt Quỵ hoạch tuyếntính (QHTT) thuộclĩnh vực củabài toán tối ưu, chuyên khảo sát các vấnđềcó
ràng buộc và hàm mục tiêu ở dạng tuyến tính QHTT có thể được sử dụng để mô hình hóa và giải quyết nhiều vấnđềtối ưu trongcác lĩnh vực, chẳng hạn nhưtài chính,sản xuất, vận tải, lý thuyết hò chơi.Trên thực tế, nhiều bài toáncó dữ liệu đầu vào, kết quảđầurađềuở dạng sốnguyên vàđòi hỏi phải xử lý khó
khăn hơn sovới số thực, gọi là Quỵ hoạch nguyên Ở chủ đề nghiên cứu này, chúng tôi sẽ tìm hiểu về phươngpháp nhánh &cậnvà thuật toán lát cắtGomorỵ trong Quỵ hoạch nguyên,ứng dụngvào bài toán
xếp lịch, bàitoán phacắt vậttư, bài toán người giao hàng.Ngoài ra,nhóm cũng xem xét thêm vềbài toán Quỵ hoạch tuyến tính đa mục tiêu
Từ khóa Bài toán tối ưu,QHTT nguyên, Kỹthuật nhánh & cận, Látcắt Gomorỵ, Bài toán xếp lịch,TSP
INTEGER LINEAR PROGRAMMING AND ITS REAL APPLICATIONS
Abstract Linear programming (LP) belongs to the domain of optimization problems, specializing in investigating problems withconstraints andobjective functions inlinearform LPcanbe used tomodel and
solvemanyoptimization problemsin fields such as finance, manufacturing,transportation,game theory In reality, manyproblems have inputs, outputs in theform of integers and require more difficult processing than real numbers, which is called IntegerProgramming (LIP) In this research, we will learn about the
branch&bound method andthe Gomory's cut algorithm inLIP, and thenapply to dieschedulingproblem, die material cuttingproblem,anddie traveling salesman problemTSP In addition,we also considersmore
Keywords Optimization problem, Integerlinear programming, Branch & boundmethod, Gomory’s cut
algorithm, Scheduling problem, TSP
1 ĐẶT VẤN ĐÈ
Toiưuhóa là một vấnđề quan họng trong cuộcsống Chúngtathườngtìm cách tối ưu hóa thời gian, tiền bạcvà năng lượngđể đạt được mục tiêu của mình một cáchhiệu quả nhất TrongToán học và Khoa học máy tính, Quỵ hoạch tuyến tính là một phươngpháp tối ưuđược sử dụngrộng rãi đểgiảiquyết cácbài toán liên quan đến việc phân bổ tài nguyên,ngườigiaohàng, một cáchhiệu quả nhất Quỵhoạch tuyến tính
có thể giúp chúng ta tìm ra giải pháp tối ưu cho các vấnđề trong cuộcsống thựctế
Vídụ, một công ty có thể có nguồn lựchạn chế nhưnguyên liệu,laođộngvà thời gian Quỵ hoạchtuyến tính có thể đượcsửdụng để xácđịnhkế hoạchsản xuất tối ưu nhằm tốiđa hóa lợi nhuận dong khivẫn nằm dong giới hạn của các nguồn lực sẵncó.Tương tự, một dịch vụ giao hàng có thể sửdụng Quỵ hoạchtuyến tính để xác định tuyến đường ngắnnhất nhằm tiết kiệm thời gian vànhiên liệu Các tổ chức tài chính sử dụng Quỵ hoạch tuyếntính để xác định danh mụccácsản phẩm tài chínhcó thể cung cấp cho khách hàng Quỵ hoạch tuyếntính cũng có thể áp dụngvào cuộcsống cá nhân Ví dụ, một cá nhân có thể có thời gian
và tiềnbạc hạn chếcho các hoạt động giảihí Quỵhoạch tuyếntính có thể đượcsử dụng để phân bố thời
gianvà tiền bạc tối ưu nhằmtối đa hóa lợi nhuậndong giới hạn ngânsách Tuy nhiên, vấn đề được phát
Trang 2Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
sinh trong cácvấn đề tối ưulà vềtính nguyên của các biến.Ví dụ, nếu bạn giải quyết một bàitoán liên quan
đến việcsản xuất sản phẩm, số lượngsản phẩmsản xuất phải làmột sốnguyên
Quỵ hoạch tuyếntínhnguyên là một dạng đặc biệt của Quỵhoạch tuyến tính, đòi hỏi xử lý khókhăn hơn
do việc giới hạncácgiải phápchỉ ở cácsốnguyêncó thểkhiến cho khônggian tìm kiếm trở nên rất lớn và
phức tạp Chínhvìvấn đề này, nhómcủa chúng tôiđã nghiêncứu về các giải pháp đểgiải quyết vấn đề hên bằngphươngpháp nhánh &cận, cắt Gomorỵ, đơn hình.Vận dụng giảiquyết các bài toán xếp lịch,bài toán
pha cắt vậttư, bài toán người giao hàngvà các bàitập phổ biến khác
2.1 Thế nào là Quy hoạch tuyến tính?
Quỵ hoạchtuyếntính (LinearProgramming - LP) là mộtthuật toán nhằm tìm ra một kếhoạch hay phương
án tốt nhất từ vô số nhữnglựa chọn khác nhau Đây là bài toántối ưu, trong đó hàm mục tiêu (objective function) và các điều kiện ràngbuộcđều làtuyếntính Phươngántối ưu làphương ánthỏamãn được các mục tiêu đề ra,phụ thuộc vào các hạnchếvàràngbuộc Quỵ hoạchtuyếntínhgiúp giảiquyết nhiềuvấn đề
rất thực tiễn trong cuộcsống như: lập kếhoạch,xếp lịch, Đe giải quyết bàitoán,ta sẽ mô tả các ràng buộc
dưới dạng các biến sốthực khôngâm (đôi khi là sốnguyên) rồi sửdụng các thuật toán trong LPđể tìm phươngpháp tốt nhất Trongphần tiếptheo, ta sẽxemxét một số bài toán tối ưu trongthực tếvà cách tối
ưu của chúng bằng việclậpmô hình quỵhoạch tuyến tính
Với các biến số thực x2, , xn trong bài toán,ta lập ra hàm nhiêu biên/ (Zj xy, ,xn) có dạngC 1X1 +
C 2 X 2 + —h cnxntrả về kết quảlà sốthực (để đơn giản, ta ký hiệulàcó dạngf). Ta cần tìm giátrị lớn nhất hoặc nhỏ nhất của hàm này,tương ứng là f -> max hoặc f -> min.
2.2 Giói thiệu các bài toán phổ biến trong thực tế
o Không ít hơn 200gram chất bộtđường (carbohydrate)
o Không ít hơn 20 gramchất đạm (protein)
Phân tích Bàitoán dinh dưỡng được mô hìnhdưới dạngbài toán quỵhoạch tuyến tínhnhư sau:
Gọi các biến thực Xi, x2, x 3 , x 4 là so gram cà rốt, gạo,khoai tây và bột mì cần mua Ta cóhàmmục tiêu
là tổng sốtiền:
f = 50X] + 20x2 + 10x3 + 30x4
o Đảmbảovề hàmlượngđạm: 3ŨX] + 10x2 +20x3 + 50x4 > 20
o Ngoài ra còn có ràngbuộc không âm chocác biến: x lf x2 , x3, x4 > 0
Nhưvậy, bài toánquỵ hoạchtuyếntính cho dinh dưỡngsẽ là:
f = 50X] + 20x2 + 10x3 + 30x4 -> min
30ŨX] +400x2+400x3+ 500x4 > 200 300jq + 400x2 +400x3 + 500x4 > 200 x1,x2,x3,x4 > ữ,x r ,x 2 ,x3,x4 e R
Dạng bài sảnxuất: Một nhà máy thực phẩmsản xuất ra 4 loạisản phẩm vớichi phísản xuất là:
o Đũa tre: 5 triệu tân
o Tăm tre: 6 triệu tân
Trang 3Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
o Chânhương: 4.5 triệu/tấn
o Xiênthịt: 6 triệutân
Biết rằng đểsản xuất được 1 tấn củalần lượt các loại sảnphẩm trên thì nhà máy cầntiêu tốn nguyên liệu
vànhân côngnhư sau:
Tre (tấn)
Hương liệu (tấn)
Số giờ làmviệc
Giá bánra
(triệu/tấn)
Đũa tre
1.1 0.03
1
200
23
Tăm tre 1.5
0.06 2
300
36
1.4 0.04 2.2
220
26.5
Xiên thịt 1.2 0.04 2.1
240
30
Kế hoạch trong tháng tới nhà máycó 1000 giờlàm việc và tối đa 5 tan he,0.2 tấn hương liệu, 10 tấn than, nhà máy có vốnlà 25 hiệu đồng Hỏi nhà máy cần lập kếhoạch sản xuất nhưthế nào để tốiđa lợinhuận?
Phân tích. Giả định sảnlượng sản xuấtcủa mỗi loại lần lượtlà cácbiến thực xlf, x 2, x3 , x 4 Hàm mục tiêu:
f = (23 — 5)Xi + (36 — 6)x2 + (26.5— 4.5)x3 + (30 — 6)x4 = lSjq + 30x2 +22x3 + 24x4
- Đối vớiTăm tre: l.lx 1 + 1.5x2 + 1.4x3 + 1.2x4 < 5
- Đối với Hương liệu: 0.03;^ + 0.06x2 + 0.04x3 + 0.04x4 < 0.2
- Đối với Than: x 4 + 2x2+ 2.2x3 + 2.1x4 < 10
o Ràng buộcvề chi phí sản xuất: 5xt + 6x2 +4.5x3 + 6x4 < 25
o Ràng buộcvề số lượng: x4,x2, x3,x4 > 0
Nhưvậy, ta có bàitoán:
f = 18x1 + 30x2 + 22x3 +24x4 ->Min
l.lx 1 + 1.5x2 + 1.4x3 + 1.2x4 < 5
0.03X! + 0.06x2 + 0.04x3 + 0.04x4 < 0.2
x 4 + ix 2 + 2.2x3 + 2.1x4 < 10
5xt + 6x2 +4.5x3 + 6x4 < 25
x1,x2,x3,x4 > 0, x1,x2,x3,x4 6 R 2.3 Thế nào là quy hoạch tuyến tính nguyên?
Quỵ hoạch tuyến tính nguyên (Integer Linear Programming - ILP) là mộtphương pháp hong Quỵ hoạch
tuyến tính, hong đócác biến quyết địnhđược giới hạn trong tập hợpcác sốnguyên thayvìcácsố thực Với
ILP, chúngta cần tìmgiátrị của các biến nguyênsao chohàm mục tiêutuyếntínhđạtgiátrị lớn nhất hoặc
nhỏnhấtvàcácràngbuộc tuyến tínhđược thỏa mãn Các vấn đề quỵ hoạch tuyến tính nguyên thường được
sử dụng để giải quyết các bài toántối ưuvề lựa chọnvà phânbổ tài nguyên có số lượng hữu hạn Ví dụ, trong một bài toánvận tải, số lượng hàng hóa cần vận chuyển từmột kho đến một điểm đến có thể được biểu diễn bằng cácsố nguyên Khigiảiquyết bài toánnày bằng phươngpháp quỵ hoạch tuyến tính thông
thường, cácbiếnquyết định có thể cógiá trịlà số thực, nhưng khi sử dụngphươngpháp ILPthìcácbiến quyết định sẽ đượcgiớihạn phải là các số nguyên
ILPđược sử dụngrộng rãi trong nhiều lĩnh vực, bao gồmkinhtế học, sản xuất,quản lý chuỗi cung ứng, và
trong lập kế hoạch sản xuất vàphân bổ tài nguyên.Phương phápnày chophép giải quyết nhữngbài toán tối ưu hóa phứctạp, đòi hỏiphải xác định các ràng buộc nguyên và các giới hạn về các biến quyết định
Việc sử dụng phương pháp ILP giúp tối ưuhóa kết quả và tăng tính hiệu quảtrong việc quản lý và điều
phối các tài nguyên.Các dạng Quỵ hoạchnguyênphổ biến:
• Quỵ hoạchnhị phân: các biến nhận giá trị 0, 1(liên quan đến việc chọnhay không chọn)
• Quỵ hoạch nguyên không âm: các biến liên quan đếnbài toán thực tếthường phải không âm
• Quỵ hoạchhỗn hợp: trong bàitoán có thể có biến nhận giá trị nguyên, cóbiếnlàsốthực
Trang 4Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
2.4 Các ví dụ cho bài toán quy hoạch nguyên
từng dựán: trong một dự án xây dựng ta cần có kiến trúc sư, công nhân xây dựng, nhà thầu, quản lý dự
án,
Giả sử doanh nghiệp xâydựngp cầnxâydựngmột trung tâm mua sắm, doanhnghiệp hiện có Nnhân viên
và hiện đang cóM nhiệmvụthiếunhânviên, trong đó năng suất củamỗi nhân viên i trong từng nhiệm vụ
làkhác nhau, mỗinhiệm vụ cần có số nhân viên tốithiểu, mỗinhân viên không đảm nhiệm quá một số
lượngnhiệm vụ Giao nhiệmvụ cho Nnhân viênsao cho dự án đạtnăngsuất tốiđa
Phân tích Các cách phâncông này được biểu diễn thành ma trận A = [ũự] gồm N hàngvà Mcột, trong đó: N là số lượng nhân viên;M là số nhiệm vụ đangthiếunhân lựchiện tại; djj là năng suất làm việc của nhân viên thứ i ởnhiệm vụj
toi đa
ĐặtXịj là biến nhị phân,Xịj = 1 nếucông việcjđượcgiaocho nhânviên ivà Xịj = 0 nếu ngược lại (i = 1,2, ,N) Ci = 1,2, ,M) Ta có:
- Năng suất tối đa có thể đạtđược là:
N,M
f = a t j Xjj -> max i=l,j = l
Cácràng buộc:
- về số lượngnhân viên cầnthiết:2ỈÍ1 xij — bj (j — 1,2, , Af)
- về số nhiệmvụ tốiđa của từng nhân viên:X/=1Xij <Ci ạ = 1,2, ,AQ
Nhưvậy, vấn đềđã được đưa vềthànhmộtbài toánQuỵ hoạchtuyếntínhnguyên
phố, được đánh chỉ dấu từ 1 đếnn Anh ấybắt đầutừmột "thànhphốgốc" đượcđánh dấu là 0, điqua mỗi
thành phố khác trongsố n thành phố chính xác một lần, và trởvề thành phố 0 Trong quá trình đi lại, anh
ấy phải quay trở lại0 chính xáctlần, baogồm cả lần quaytro’ về cuốicùng (ở đâyt có thể thay đổi), và anh
ấy không được điquáp thành phố trong một chuyến đi:một chuyến đi, được hiểu làmột chuỗi các lầnthăm
các thành phố mà không dừng lại tại thành phố 0 Yêu cầutìm một lịchtrình nhưvậy để giảmthiểutổng khoảngcách mà nhân viên bán hàng đi qua
Phân tích Khởi tạo giá trịbiến:
- Xiị là biến nhị phân,ngườigiao hàng đitừthànhphố i đến thành phố j khivà chỉkhi Xiị = 1, ngược lại
- dịjlà khoảng cách đi từ thành phối đếnthành phố j
- Uị là thànhphố ilà thành phố thứUị trong một chuyến đi bao gồm thành phố i Như vậy vớiXjj = 1, ta
có Uj = Uị + 1
Vìgiảm thiểu tổngkhoảng cách mà nhân viên bánhàngđinênta cóhàm mục tiêu tuyến tínhnhư sau:
f = dijXij -> min
0 < i j < n
Cácràng buộc:
l,2, ,n)
- về số lần quay lạithànhphố gốc: x iQ = t
- về số lần thăm trong 1chuyến đi: Uị < p, (i = 1,2, , rì)
Trang 5Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH
- Nếut cố định, để bài toán tồntại giải pháp phải có ràng buộc tp > n, với t = 1 thi p > n.
Như vậy, vấn đề đã được đưa về thànhbài toán Quy hoạchtuyếntínhNguyên
2.5 Các khó khăn và kết quả mong muốn
Các thuật toán cơ bản củaQuyhoạchtuyếntính đều đua ra được lời giải tối ưu cho bàitoánquỵ hoạch
tuyến tính Tuy nhiên, kết quả của bài toán khônglàsố nguyên Điều này cóthểdẫn đến sự thiếu chính xác
trong kết quả, ảnhhưởng nhiều đến tính ứng dụng củanó
Giả sử nếu ta đang tối ưuhóaviệc đặt hàng trong một nhà kho vớicác mặt hàng khác nhau Ta muốn tối
ưuhóasao cho chi phí tống cộng là thấp nhất Ta xác địnhrằngsốlượngđật hàng củamỗimặt hàng phải
làmột sốnguyên không âm Nếu kết quảtối ưu cho số lưọngđặt hàng của một hoặc nhiều mặt hàng không phải là sốnguyên, ta sẽ phải đưara quyết địnhđể làm tròn lênhoặc xuống sốlượngđóđể đảm bảo rằng nó
là mộtsốnguyên.Nhưngviệc làm tròn sốnày có thể đẫn đếnthay đồi đăng kể trongchiphítồngcộngvà
không đảm bảo rằng thỏamãn tất cảcác điều kiện ràngbuộc của bài toán Do đó, việc giải quyết bàitoán
Quy hoạchtuyến tính nguyên sẽ trởnên khókhăn và đòihỏicácphương pháp khác nhau đểgiảiquyếtđịnh bài toán nguyên
Trước hết, tagiới thiệu quavề hai phương pháp quan trọng để giải bài toánQuy hoạchtuyếntính là Đơn
Gomory, và Kỹ thuậtnhánh & cận
3.1 Phương pháp đơn hình
Năm1947, nhà toán học George Bernard Danzig đưara phương pháp đơn hình: ý tưởng cơ bản là bắt đầu xét từ một phương án cực biên (phương án chấp nhận được), ta xem nó có là phương án tốt nhất haychưa,
nếuchưalàphươngán tốt nhất ta lầnlượtxét đến các phương án cực biên liềnkề saocho làm tăng giá trị
hàm mụctiêu Quá trinh tiến hành đến lúcthu được phương án tối ưuhoặc giá trị hàm mục tiêukhônghữu hạn
Hình 1: Ảnh mô tà bảng đon hình
ckl ckm ckm + 1 ck - ckn
z min/max Aki A Ị.
in Ak„ lỉm + 1 Ak„
Kv Ak„
Bước 1: Khởi tạo: thànhlậpphương án cực biên
dấu hiệu tối ưu Nếu phương án cực biên này là phương án tối ưu thi kếtthúc Ngược lại, nếu bài toán có phương án mói tốthon thì sang bước 3
Bươc 3: Xâydựng mộtphươngán cực biên mớisao cho giá trị hàm mục tiêulớn hơn hoặc bằng giá trị hàm
mục tiêu của phương án cực biên trước đó
Bước 4: Quay lại bước2: Tiếp tục quátrình kiểmtravà tìmkiếm lời giải tối ưu cho đến khi đạt đượclời
giải tối ưu
3.2 Phương pháp hình học
Phương pháp hinhhọc là mộtkỹ thuật trong lĩnh vực tối ưuhóasửdụngcác khái niệm hình học như đường thẳng, mặt phẳng, để thực hiệncác phép cách, phép vạchtrên không giannghiệm và kỹthuật hình học để giải quyết các bài toánquy hoạch tuyến tính Phương pháp nàykếthọpgiữa các yếu tố hình học và các
Trang 6Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH
ràngbuộc tuyếntínhtrongbài toán để tìmragiảipháp tối ưu Đây làmột cách tiếp cận trực quan và hiệu
quảđểgiảiquyếtbàitoánquy hoạch tuyến tính.Phương pháp này sử dụng cho bàitoán có hai biến
Hình 2: Ảnh minh họa phương pháp hình học
Dưới đâylà thuật toán cơ bản củaphươngpháphình học:
Bước 1: Chuẩn bịdữ liệu: Xác định các hệ số và ràngbuộc của bài toán quyhoạch tuyến tính
Bước 2: Vẽ đồ thị chobàitoán bằng cáchsử dụng các biến quyết định
Bước 3: Tìmtất cả các điểmcực biên, là các giao đỉểm giữa haiđường thẳng
Bước4: Thay giá trị củatọa độ các điểmcựcbiêntim được vào hàm mục tiêuvà so sánh
3.3 Phương pháp cắt Gomory
Phương phápcắtGomory làmột phươngpháppháttriển các ràng buộcmớiđể giải quyết các bài toán quy
hoạchtuyến tính nguyên.Phươngphápnày dựa trênviệc tạo racác ràng buộcmới từ các ràngbuộc hiện
có và tìmkiếm giải pháp tối ưucho bài toánmới
Hình 3: Ảnh mô tả phương pháp cắt Gomory Dưói đâylàcác bướccụthể để thực hiện thuật toán cắt Gomory:
Bước 1: Khỏitạo:
Giải bài toán quy hoạchtuyếntính ban đầuvà tim một lời giảinguyênxuấtphát (nếu có)
Lưutrữ giá trị nguyên tối ưulà giá trịtốtnhất hiện tại
Trang 7Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH
Kiểmtra xem lòi giảihiệntại có phải là lời giảinguyên tối ưukhông
Kiểm tratừngbiến trong lòi giải đểxác định xem có biếnkhông nguyênnào không
Nếu không cóbiến không nguyên, lòi giảihiện tại là lời giảinguyên tối ưu vàkếtthúc
Bước 3: Xácđịnhràng buộc cắtnguyên:
Chọnmột biếnkhôngnguyên trong lòigiảihiện tại
Xây dựngmột ràngbuộc cắt nguyên dựatrên giá trị củabiến chọn và cáchệsốcủa nótrong các ràng buộc
ban đầu
Ràngbuộc cắt nguyên có dạng: a-ịXỵ + a2x2 H -1-ữ-nx n — b> trong đó dị làcác hệ sốvàb là giá trị không
nguyêncủa biến
Bước 4: Thêm ràng buộc cắtnguyên:
Thêm ràng buộc cắtnguyên vào bàitoán Quỵhoạchtuyếntính ban đầu
Giải lại bài toánđể tìmlời giảimớivới các ràng buộc cắtnguyênđã thêm
Nếu lờigiải mới tốthơn lời giải tốt nhất hiện tại, cập nhật lòi giảitốt nhất
Quay lại bước 2 để kiểm tra lời giảimới
3.4 Phương pháp nhánh & cận
Phươngphápnhánh& cận: là một thuật toánđược sử dụng để giải các bài toán tối ưutổ hợp, bao gồm cả bài toánquy hoạchtuyến tính nguyên (DLP - Integer Linear Programming) Phương phápnày tìm kiếm không gian tìm nghiệm củabài toánmộtcách hệ thống bằng cách chia nhỏ không gian tim kiếm ban đầu thành cácphần nhỏhơnvà loại bỏ những phần không cần thiếtđể cải thiện hiệu suấtgiải quyếtbài toán
Hình 4: Ảnh minh họa phương pháp nhánh & cận
Cácbướcthực hiện thuật toán
Dưới đây là thuật toán cơ bảncủaphương pháp nhánh & cận:
Bước 1: Khởi tạo một bộ lòi giải tạmthời, thường làmột lời giảikhông tối ưu
Bước 2: Tính toán giá trịcủa hàmmục tiêu tại lòi giải tạmthòi
Bước 3: Kiểm traxem lời giảitạm thời có phải là lời giải tối ưu hay không.Nếu đúng, kết thúc thuậttoán Nếu không, tiếp tục bước 4
Bước 4: Chọn một biến nguyên trong lời giải tạm thời mà không phải làsố nguyên,phân chiakhông gian tim kiếm thành hai phần con, một phần conchứacác giá trị lớn hơn hoặc bằnggiá trị nguyêncủabiến được chọn, và mộtphầnconchứa các giá trị nhỏ hơn
Bước 5: Ápdụng thuật toán tìmkiếm tối ưu trên từng phần con đượcphân chia (cácvấn đề con)
Bước 6: Lặp lại bước 2 đến bước 5 cho đếnkhi lời giải tối ưu đượctìm thấy
Trang 8Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
3.5 về bài toán Quy hoạch tuyến tính đa mục tiêu
Quỵ hoạchtuyếntính đa mục tiêulàbài toáncó hai hoặc nhiều hàm mục tiêu,và ta cần tối ưutatcả chúng
đồng thời Nócó ứng dụng trong cáclĩnh vực đời sống một cách thiếtthực, vì rõ ràng nhiều lúc tacần phải tìm min, max cùng lúc nhiềugiá trị liên quan đến các đại lượngcần khảosát Trong khoảng 50 năm,đãcó
nếuxét quỵhoạch nguyên thì dạng tối ưu đa biến nàykhó tiếp cậnhơn Cácphươngpháp giải:
o Twơpharses-. giảitrước bài toán ứng với một hàm mục tiêu, sau đó thêm kết quả tìm đượcvào các ràngbuộcvà giải tiếp cho hàm mục tiêu còn lại
o Combining-, kết hợp hai hàm mụctiêu lại bởi một trọngsoalpha thích hợp Sauđó,giải cho từng giá trịalphathay đổi mộtkhoảngnhỏ; trêncơ sở đó chọn ra alpha tốt nhất Ta cũng có thể giải riêng bài toán ứng vớitừng hàmZ1, z2, ,Zk, được các giátrị di, d2, , dk, sau đó tasử dụng ý tưởngchung là gộp lại thànhmột hàm mụctiêuduy nhất và giải tiếp Cónhiềucáchđể gộp lại:
+ Chandra Sen: max z = tổngZi/|di| - tổng Zj/|dj|vớimax được lấydấu + cònmin được lấy dấu hừ
+ Trung bình điều hòa: đặt SL, ss bằngtổng cáchàmmục tiêu laymax vàlấy min, đặt Hmi, Hm2 =
hung bình điều hòa của các di(lay max) và di (lấy min) Khiđó ta có:
+ Trungbìnhbìnhphương: tương tự talấy cănbậchaicủa tổngbình phươngQmi, Qm2
Trongphần này,nhóm đãxâydựngthuật toán dựatrênphươngpháp nhánh cận kết hợp với thư viện PuLP
đểgiải một số bài toánđiển hình hênnền tảng Python Các mã nguồnnhómđã thựchiệncó thể xem tại
4.1 Dạng bài toán vận tải trong du lịch
Trong sa mạc, có những con lạc đà, loạicó mộtbướuvà có hai bướu, giúp vậnchuyển hàng hóa giữahai
thànhphốvới các thông tin như sau:
Có mộtđoàn du khách cần vậnchuyển ít nhất 1200kgvà trong kho có lượng cỏ khô dựtrữlà 31 bó,lượng
nước dựhữlà 80lít Tìm phương án thuêlạcđàđể tổng chi phí là ítnhất, vẫn đảmbảo cácràng buộcnêu
hên
Phântích Gọi cácbiến nguyên xt, x2 là sốlượnglạcđà mộtbướuvà lạcđà hai bướu
Hàm mục tiêu: f = 60xt + 100x2
o Du khách cầnvận chuyển ít nhất 1200kg: 140#! + 180x2 > 1200
o Trongkho hiệncólượngcỏ khôdựtrữ là 31 bó: 4x 1 +3x2 < 31
o Lượngnước dựtrữlà80 lít: 8xt + 10x2 < 80
o Ngoài ra còn có các ràngbuộc không âm: x , x 2 > 0
Nhưvậy, bài toánsẽcó dạngsau: xt,x2 > o,x1,x2 E z
f = 60xt + 100x2 ->min
140^!+ 180x2 > 1200
8;q +lồx 2 < 80
Trang 9Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH
max/min?: min
Number of variables = 2
Number of binding functions = 3
Objective function: 60 100
Binding function 1: 140 180 >= 1200
Binding function 2: 4 3 <= 31
Binding function 3: 8 10 <= 80
Binding condition of variable 1: 0 none
Binding condition of variable 2: 0 none|
The result for the objective function is 560.0
The value of the hidden x: [6 2.]
Time: 0.006988048553466797 (s)
4.2 Bài toán pha cắt vật tư
Có một sốthanhcốt thép dài 11,7m Để thi cônglắpđặtcốtthépđầm,cộtcho một tầng của một tòa nhà bê tôngcốtthép thì cầnphải có 210 đoạn dài2.1m; 161 đoạn dài2.9m; 176 đoạn đài 3.2m; 48 đoạn dài4.2m
Vậỵ nêncắtcốtthép như thế nào đểtốn ít thanh nguyên nhất?
Phân tích. Đầu tiên, với thanh 11.7m thi tasẽ cónhưngphươngáncá sau đây:
Các phương
án
Gọi Xị là sốthanhnguyên pha cắt theophương áni,Xi E z.Tacóhàm mục tiêu: f — Ỉ,i=i->19X Ì mỉ'n Các ràng buộc:
- Có 210 đoạn dài 2.1m: 0xx 4- 0x2 4 X3 4 0x4 4 0xs 4- 0x6 4- 2x7 4- 3x'g + x9 + XÍQ 4- 2X114- x12 4
2xi3 4- 4X14+0xX5 4-x16 4-2X17 4-4xtg + 5X19 >210
- Có 161 đoạn dài 2.9m:0X1 4“ x2 4" OX3 4” OXị + X5 4”2X6+ x7 4"0x8 4” ŨXg 4” X1O4 0X11 4 2X12 4
x13 4- 0X144- 4xxs 4- 3X16 4- 2X17 4- lx18 4- 0X19 > 161
- Có 176 đoạn dài 3.2m: x t 4- 0x2 40x3 4- 2x4 4 x5 4- 0x6 4-0x74-0x8 4-3x9 4- 2x10 4- 2X11 4%12 4
x13 4- X14 4-0xls 4- 0x16 4- 0x174-0x18 4- 0X19 > 176
- Có 48 đoạn dài 4.2m: 2%1 4 2x2 4- 2x3 4- x4 4- xs 4- x6 4-X~Ị4- x8 4-OXộ 4- 0x10 4- 0X11 4 0X12 4
0X13 4 0xi4 4- 0X15 4 0X16 4 0X17 4 0xi8 4” 0X19 — 210
Trang 10Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈUH
The result for the objective ftnrtion is 144.0 The value of "the variable x: Ị19 5 0 0 0 9 0 9.38 0 9 9 8.43 39 9 9 8 8.]
Tile: 8.832241773085347 (s)
Number of variables - 19
Number of binding functions
-Objective function: 11111
4
111 1 1 1 1 1 111 Binding function 1: 00 1 00 ©23 1 1 2 1 2 4 0 1 7 4 5 > /10
Binding function 2: 0 1 0 0 1 2 1 0 ©10 2 1 0 4 3 2 1 0 > - 161
Binding function 3; 100?! 0 0 0 3 2 2 1 1 1 © © 0 fl 0 >- 176
Binding function 4: Ĩ 2 1 1 1 1 I ©966606 0 0 6 0 >— 48
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
Binding condition of variable
1: © none 2: 0 none 3: 0 none 4: 0 none 5: 0 none 6: 0 none 7: 0 none S: 0 none 9: 0 none 10: 0 none 11: 0 none 12: 0 none 13: Ỡ none 14: H none 15: © none 16: 0 none 17: 0 none 18: 0 none 19: 0 nontfl
Như rây lời giải của bài toán sẽ là:
r-w-1 X
Tuy nhiên, có một đáp án khác cho bàitoánnày, đó là:
r-w- X
Hai lời giải trên tuy cho chúng tacùng một đáp sôlà 144 nhưngcó sự khác biệt vêsô lượng phương án lụa chọn, chứngtỏrằngkhôngnhất thiết phải có một phươngán tối ưu duy nhất
4.3 Bài toán rút ngắn dự án đầu tư
- Thời gianthực thi dự án là 12tuần
- Chi phírút ngắn làtối thiểu
Bảng mô tả công việc