Skip to content

Instantly share code, notes, and snippets.

@270ajay
Last active July 26, 2018 09:47
Show Gist options
  • Save 270ajay/e6ae5e206e07dfb0f810e31c90711956 to your computer and use it in GitHub Desktop.
Save 270ajay/e6ae5e206e07dfb0f810e31c90711956 to your computer and use it in GitHub Desktop.
Optimizing the packing of Suit Cases/Luggage using Mixed Integer Programming. Objective is to maximize the cost of items that can fit in the suitcases without exceeding weight restrictions.
import csv
import pulp #This contains LP Modeling and solver
#------------------------------------------------------------------------------------------------------
#GETTING & PREPARING DATA
#------------------------------------------------------------------------------------------------------
with open('InputItems.csv') as csvfile:
data = list(csv.reader(csvfile))
#-----------------------------------------------
#Storing Item data into a dictionary.
ItemId=[]
for i in range(1,len(data)):
ItemId.append(data[i][0])
ItemData = dict([(item,[]) for item in ItemId])
for j in range(1,4):
for i in range(1,len(ItemId)+1):
ItemData[ItemId[i-1]].append(data[i][j])
#------------------------------------------------
#Storing Checkin suitcase data in a dictionary
CheckInSuitcaseData = {}
for j in range(6,7):
for i in range(1,len(data)):
if len(data[i][5]) > 1:
CheckInSuitcaseData[data[i][5]] = data[i][j]
CheckInSuitcase = list(CheckInSuitcaseData.keys())
#--------------------------------------------------
#Storing Carryon suitcase data in a dictionary
CarryOnSuitcaseData = {}
for j in range(9,10):
for i in range(1,len(data)):
if len(data[i][8]) > 1:
CarryOnSuitcaseData[data[i][8]] = data[i][j]
CarryOnSuitcase = list(CarryOnSuitcaseData.keys())
#------------------------------------------------------
#Storing values of Checkin and Carryon allowance from the csv file
CheckInAllowance = float(data[0][12])
CarryOnAllowance = float(data[1][12])
AllSuitcases = []
AllSuitcases.extend(CheckInSuitcase)
AllSuitcases.extend(CarryOnSuitcase)
#------------------------------------------------------------------------------------------------------
#LP MODELING
#------------------------------------------------------------------------------------------------------
SPP = pulp.LpProblem("Suitcase Packing Problem", pulp.LpMaximize)
DecisionVar = pulp.LpVariable.dicts("Put",(ItemId,AllSuitcases),0,1,pulp.LpInteger) #Binary
SPP += sum([float(ItemData[item][1]) * DecisionVar[item][suitcase] for item in ItemId for suitcase in AllSuitcases])
#objective
for suitcase in AllSuitcases:
if suitcase in CheckInSuitcase:
SPP += pulp.lpSum([float(ItemData[item][0]) * DecisionVar[item][suitcase] for item in ItemId]) <= \
(float(CheckInAllowance) - float(CheckInSuitcaseData[suitcase])), "WeightCheckIn"+str(suitcase)
else:
SPP += pulp.lpSum([float(ItemData[item][0]) * DecisionVar[item][suitcase] for item in ItemId]) <= \
(float(CarryOnAllowance) - float(CarryOnSuitcaseData[suitcase])), "WeightCarryOn" + str(suitcase)
#Constraint1
for item in ItemId:
SPP += pulp.lpSum([DecisionVar[item][suitcase] for suitcase in AllSuitcases]) <= 1, "Atmost1suitcase"+str(item)
#Constraint2
SPP.writeLP("SuitCasePackingLPModel.lp")
SPP.solve()
#------------------------------------------------------------------------------------------------------
#PRINTING RESULTS INTO CSV
#------------------------------------------------------------------------------------------------------
with open("SuitcasePackingResults.csv","w",newline='') as file:
datawriter = csv.writer(file)
datawriter.writerow(['Suitcase','ItemName','ItemWeight','ItemCost','','','ItemIdToCheckIfAllItemsAreThere'])
for suitcase in AllSuitcases:
for item in ItemId:
if DecisionVar[item][suitcase].value() == 1.0:
datawriter.writerow([suitcase,ItemData[item][2],ItemData[item][0],ItemData[item][1],'','',item])
datawriter.writerow([""])
datawriter.writerow(['','UNASSIGNED ITEMS'])
for item in ItemId:
Count = 0
for suitcase in AllSuitcases:
if DecisionVar[item][suitcase].value() >= 0.5:
Count += 1
if Count < 1:
datawriter.writerow(["",ItemData[item][2],ItemData[item][0],ItemData[item][1],'','',item])
datawriter.writerow([""])
datawriter.writerow([""])
datawriter.writerow([""])
datawriter.writerow(['','','','','EmptyWeight','WeightAllowance'])
for suitcase in AllSuitcases:
if suitcase in CheckInSuitcase:
datawriter.writerow([suitcase,"","",'',CheckInSuitcaseData[suitcase],CheckInAllowance])
else:
datawriter.writerow([suitcase,"","",'',CarryOnSuitcaseData[suitcase],CarryOnAllowance])
datawriter.writerow([""])
datawriter.writerow(['You may calculate how much weight is remaining in each suitcase by doing:'])
datawriter.writerow(['WeightAllowance of the suitcase - EmptyWeight of the suitcase - sum of ItemWeight of items assigned to the suitcase'])
ItemId Weight Cost ItemName CheckinSuitcase Weight CarryonSuitcase Weight CheckInAllowancekg 23
item1 0.1 123 Ball GreyL 3 RedS 1 CarryOnAllowancekg 7
item2 1 23 Bat BlueL 3 Bag 0.5
item3 0.5 344 Camera
item4 1 221 Laptop
item5 0.1 34 Food
item6 1 72 Toothpaste
item7 0.5 105 Box1
item8 0.2 135 Box2
item9 1 177 Files
item10 0.1 193 Umbrella
item11 0.4 65 Dress1
item12 0.3 270 Dress2
item13 0.14 171 Dress3
item14 0.1 243 Dress4
item15 0.8 122 Dress5
item16 1.2 36 Dress6
item17 0.2 290 Dress7
item18 0.3 75 Dress8
item19 0.5 295 Dress9
item20 0.1 130 Dress10
item21 0.8 140 Dress11
item22 0.1 57 Dress12
item23 0.1 195 Dress13
item24 0.01 158 Dress14
item25 0.03 54 Dress15
item26 0.23 284 Dress16
item27 0.02 64 Dress17
item28 0.12 93 Dress18
item29 0.13 227 Dress19
item30 2.1 279 Dress20
item31 0.34 187 Dress21
item32 0.45 281 Dress22
item33 0.64 136 Dress23
item34 0.12 236 Dress24
item35 0.45 217 Dress25
item36 0.21 173 Dress26
item37 0.13 119 Dress27
item38 0.12 68 Dress28
item39 0.18 157 Dress29
item40 0.3 215 Dress30
item41 0.45 251 Socks1
item42 0.5 153 Socks2
item43 0.12 88 Socks3
item44 0.45 194 Socks4
item45 0.67 283 Socks5
item46 0.8 170 Socks6
item47 0.79 37 Socks7
item48 0.74 76 Socks8
item49 0.45 219 Socks9
item50 0.42 43 Socks10
item51 0.34 174 Socks11
item52 1.34 167 Socks12
item53 2 177 Socks13
item54 1 193 Socks14
item55 1.6 236 Socks15
item56 3 204 Socks16
item57 1.23 255 Socks17
item58 1.34 87 Socks18
item59 1.5 64 Socks19
item60 2 63 Socks20
item61 0.89 178 Gifts1
item62 0.57 102 Gifts2
item63 0.27 117 Gifts3
item64 0.03 157 Gifts4
item65 0.23 103 Gifts5
item66 0.69 139 Gifts6
item67 0.69 82 Gifts7
item68 0.99 154 Gifts8
item69 0.86 100 Gifts9
item70 0.23 134 Gifts10
item71 0.19 109 Gifts11
item72 0.72 92 Gifts12
item73 0.60 76 Gifts13
item74 0.14 186 Gifts14
item75 0.03 43 Gifts15
item76 0.57 139 Gifts16
item77 0.97 133 Gifts17
item78 0.58 109 Gifts18
item79 0.22 180 Gifts19
item80 0.05 59 Gifts20
item81 0.66 119 Gifts21
item82 0.28 188 Gifts22
item83 0.82 134 Gifts23
item84 0.43 144 Gifts24
item85 0.91 166 Gifts25
item86 0.50 198 Gifts26
item87 0.15 81 Gifts27
item88 0.85 129 Gifts28
item89 0.84 101 Gifts29
item90 0.57 74 Gifts30
item91 0.65 76 Gifts31
item92 0.04 197 Gifts32
item93 0.18 166 Gifts33
item94 0.59 161 Gifts34
item95 0.91 192 Gifts35
item96 0.84 103 Gifts36
item97 0.16 105 Gifts37
item98 0.83 174 Gifts38
item99 0.50 60 Gifts39
item100 0.15 171 Gifts40
Suitcase ItemName ItemWeight ItemCost ItemIdToCheckIfAllItemsAreThere
GreyL Food 0.1 34 item5
GreyL Umbrella 0.1 193 item10
GreyL Dress2 0.3 270 item12
GreyL Dress4 0.1 243 item14
GreyL Dress7 0.2 290 item17
GreyL Dress8 0.3 75 item18
GreyL Dress9 0.5 295 item19
GreyL Dress11 0.8 140 item21
GreyL Dress14 0.01 158 item24
GreyL Dress15 0.03 54 item25
GreyL Dress20 2.1 279 item30
GreyL Dress24 0.12 236 item34
GreyL Dress25 0.45 217 item35
GreyL Dress30 0.3 215 item40
GreyL Socks1 0.45 251 item41
GreyL Socks8 0.74 76 item48
GreyL Socks12 1.34 167 item52
GreyL Socks13 2 177 item53
GreyL Socks14 1 193 item54
GreyL Socks17 1.23 255 item57
GreyL Gifts2 0.57 102 item62
GreyL Gifts3 0.27 117 item63
GreyL Gifts5 0.23 103 item65
GreyL Gifts11 0.19 109 item71
GreyL Gifts12 0.72 92 item72
GreyL Gifts15 0.03 43 item75
GreyL Gifts17 0.97 133 item77
GreyL Gifts20 0.05 59 item80
GreyL Gifts25 0.91 166 item85
GreyL Gifts28 0.85 129 item88
GreyL Gifts29 0.84 101 item89
GreyL Gifts33 0.18 166 item93
GreyL Gifts35 0.91 192 item95
GreyL Gifts36 0.84 103 item96
GreyL Gifts37 0.16 105 item97
BlueL Camera 0.5 344 item3
BlueL Box1 0.5 105 item7
BlueL Files 1 177 item9
BlueL Dress1 0.4 65 item11
BlueL Dress5 0.8 122 item15
BlueL Dress13 0.1 195 item23
BlueL Dress17 0.02 64 item27
BlueL Dress19 0.13 227 item29
BlueL Dress21 0.34 187 item31
BlueL Dress23 0.64 136 item33
BlueL Socks2 0.5 153 item42
BlueL Socks4 0.45 194 item44
BlueL Socks5 0.67 283 item45
BlueL Socks6 0.8 170 item46
BlueL Socks9 0.45 219 item49
BlueL Socks10 0.42 43 item50
BlueL Socks11 0.34 174 item51
BlueL Socks16 3 204 item56
BlueL Socks18 1.34 87 item58
BlueL Gifts7 0.69 82 item67
BlueL Gifts8 0.99 154 item68
BlueL Gifts9 0.86 100 item69
BlueL Gifts10 0.23 134 item70
BlueL Gifts14 0.14 186 item74
BlueL Gifts18 0.58 109 item78
BlueL Gifts19 0.22 180 item79
BlueL Gifts22 0.28 188 item82
BlueL Gifts24 0.43 144 item84
BlueL Gifts26 0.50 198 item86
BlueL Gifts30 0.57 74 item90
BlueL Gifts34 0.59 161 item94
BlueL Gifts38 0.83 174 item98
BlueL Gifts39 0.50 60 item99
BlueL Gifts40 0.15 171 item100
RedS Laptop 1 221 item4
RedS Dress10 0.1 130 item20
RedS Dress16 0.23 284 item26
RedS Dress22 0.45 281 item32
RedS Dress27 0.13 119 item37
RedS Dress29 0.18 157 item39
RedS Socks3 0.12 88 item43
RedS Socks19 1.5 64 item59
RedS Gifts4 0.03 157 item64
RedS Gifts16 0.57 139 item76
RedS Gifts23 0.82 134 item83
RedS Gifts27 0.15 81 item87
RedS Gifts31 0.65 76 item91
RedS Gifts32 0.04 197 item92
Bag Ball 0.1 123 item1
Bag Toothpaste 1 72 item6
Bag Box2 0.2 135 item8
Bag Dress3 0.14 171 item13
Bag Dress12 0.1 57 item22
Bag Dress18 0.12 93 item28
Bag Dress26 0.21 173 item36
Bag Dress28 0.12 68 item38
Bag Socks15 1.6 236 item55
Bag Gifts1 0.89 178 item61
Bag Gifts6 0.69 139 item66
Bag Gifts13 0.60 76 item73
Bag Gifts21 0.66 119 item81
UNASSIGNED ITEMS
Bat 1 23 item2
Dress6 1.2 36 item16
Socks7 0.79 37 item47
Socks20 2 63 item60
EmptyWeight WeightAllowance
GreyL 3 23.0
BlueL 3 23.0
RedS 1 7.0
Bag 0.5 7.0
\* Suitcase Packing Problem *\
Maximize
OBJ: 171 Put_item100_Bag + 171 Put_item100_BlueL + 171 Put_item100_GreyL
+ 171 Put_item100_RedS + 193 Put_item10_Bag + 193 Put_item10_BlueL
+ 193 Put_item10_GreyL + 193 Put_item10_RedS + 65 Put_item11_Bag
+ 65 Put_item11_BlueL + 65 Put_item11_GreyL + 65 Put_item11_RedS
+ 270 Put_item12_Bag + 270 Put_item12_BlueL + 270 Put_item12_GreyL
+ 270 Put_item12_RedS + 171 Put_item13_Bag + 171 Put_item13_BlueL
+ 171 Put_item13_GreyL + 171 Put_item13_RedS + 243 Put_item14_Bag
+ 243 Put_item14_BlueL + 243 Put_item14_GreyL + 243 Put_item14_RedS
+ 122 Put_item15_Bag + 122 Put_item15_BlueL + 122 Put_item15_GreyL
+ 122 Put_item15_RedS + 36 Put_item16_Bag + 36 Put_item16_BlueL
+ 36 Put_item16_GreyL + 36 Put_item16_RedS + 290 Put_item17_Bag
+ 290 Put_item17_BlueL + 290 Put_item17_GreyL + 290 Put_item17_RedS
+ 75 Put_item18_Bag + 75 Put_item18_BlueL + 75 Put_item18_GreyL
+ 75 Put_item18_RedS + 295 Put_item19_Bag + 295 Put_item19_BlueL
+ 295 Put_item19_GreyL + 295 Put_item19_RedS + 123 Put_item1_Bag
+ 123 Put_item1_BlueL + 123 Put_item1_GreyL + 123 Put_item1_RedS
+ 130 Put_item20_Bag + 130 Put_item20_BlueL + 130 Put_item20_GreyL
+ 130 Put_item20_RedS + 140 Put_item21_Bag + 140 Put_item21_BlueL
+ 140 Put_item21_GreyL + 140 Put_item21_RedS + 57 Put_item22_Bag
+ 57 Put_item22_BlueL + 57 Put_item22_GreyL + 57 Put_item22_RedS
+ 195 Put_item23_Bag + 195 Put_item23_BlueL + 195 Put_item23_GreyL
+ 195 Put_item23_RedS + 158 Put_item24_Bag + 158 Put_item24_BlueL
+ 158 Put_item24_GreyL + 158 Put_item24_RedS + 54 Put_item25_Bag
+ 54 Put_item25_BlueL + 54 Put_item25_GreyL + 54 Put_item25_RedS
+ 284 Put_item26_Bag + 284 Put_item26_BlueL + 284 Put_item26_GreyL
+ 284 Put_item26_RedS + 64 Put_item27_Bag + 64 Put_item27_BlueL
+ 64 Put_item27_GreyL + 64 Put_item27_RedS + 93 Put_item28_Bag
+ 93 Put_item28_BlueL + 93 Put_item28_GreyL + 93 Put_item28_RedS
+ 227 Put_item29_Bag + 227 Put_item29_BlueL + 227 Put_item29_GreyL
+ 227 Put_item29_RedS + 23 Put_item2_Bag + 23 Put_item2_BlueL
+ 23 Put_item2_GreyL + 23 Put_item2_RedS + 279 Put_item30_Bag
+ 279 Put_item30_BlueL + 279 Put_item30_GreyL + 279 Put_item30_RedS
+ 187 Put_item31_Bag + 187 Put_item31_BlueL + 187 Put_item31_GreyL
+ 187 Put_item31_RedS + 281 Put_item32_Bag + 281 Put_item32_BlueL
+ 281 Put_item32_GreyL + 281 Put_item32_RedS + 136 Put_item33_Bag
+ 136 Put_item33_BlueL + 136 Put_item33_GreyL + 136 Put_item33_RedS
+ 236 Put_item34_Bag + 236 Put_item34_BlueL + 236 Put_item34_GreyL
+ 236 Put_item34_RedS + 217 Put_item35_Bag + 217 Put_item35_BlueL
+ 217 Put_item35_GreyL + 217 Put_item35_RedS + 173 Put_item36_Bag
+ 173 Put_item36_BlueL + 173 Put_item36_GreyL + 173 Put_item36_RedS
+ 119 Put_item37_Bag + 119 Put_item37_BlueL + 119 Put_item37_GreyL
+ 119 Put_item37_RedS + 68 Put_item38_Bag + 68 Put_item38_BlueL
+ 68 Put_item38_GreyL + 68 Put_item38_RedS + 157 Put_item39_Bag
+ 157 Put_item39_BlueL + 157 Put_item39_GreyL + 157 Put_item39_RedS
+ 344 Put_item3_Bag + 344 Put_item3_BlueL + 344 Put_item3_GreyL
+ 344 Put_item3_RedS + 215 Put_item40_Bag + 215 Put_item40_BlueL
+ 215 Put_item40_GreyL + 215 Put_item40_RedS + 251 Put_item41_Bag
+ 251 Put_item41_BlueL + 251 Put_item41_GreyL + 251 Put_item41_RedS
+ 153 Put_item42_Bag + 153 Put_item42_BlueL + 153 Put_item42_GreyL
+ 153 Put_item42_RedS + 88 Put_item43_Bag + 88 Put_item43_BlueL
+ 88 Put_item43_GreyL + 88 Put_item43_RedS + 194 Put_item44_Bag
+ 194 Put_item44_BlueL + 194 Put_item44_GreyL + 194 Put_item44_RedS
+ 283 Put_item45_Bag + 283 Put_item45_BlueL + 283 Put_item45_GreyL
+ 283 Put_item45_RedS + 170 Put_item46_Bag + 170 Put_item46_BlueL
+ 170 Put_item46_GreyL + 170 Put_item46_RedS + 37 Put_item47_Bag
+ 37 Put_item47_BlueL + 37 Put_item47_GreyL + 37 Put_item47_RedS
+ 76 Put_item48_Bag + 76 Put_item48_BlueL + 76 Put_item48_GreyL
+ 76 Put_item48_RedS + 219 Put_item49_Bag + 219 Put_item49_BlueL
+ 219 Put_item49_GreyL + 219 Put_item49_RedS + 221 Put_item4_Bag
+ 221 Put_item4_BlueL + 221 Put_item4_GreyL + 221 Put_item4_RedS
+ 43 Put_item50_Bag + 43 Put_item50_BlueL + 43 Put_item50_GreyL
+ 43 Put_item50_RedS + 174 Put_item51_Bag + 174 Put_item51_BlueL
+ 174 Put_item51_GreyL + 174 Put_item51_RedS + 167 Put_item52_Bag
+ 167 Put_item52_BlueL + 167 Put_item52_GreyL + 167 Put_item52_RedS
+ 177 Put_item53_Bag + 177 Put_item53_BlueL + 177 Put_item53_GreyL
+ 177 Put_item53_RedS + 193 Put_item54_Bag + 193 Put_item54_BlueL
+ 193 Put_item54_GreyL + 193 Put_item54_RedS + 236 Put_item55_Bag
+ 236 Put_item55_BlueL + 236 Put_item55_GreyL + 236 Put_item55_RedS
+ 204 Put_item56_Bag + 204 Put_item56_BlueL + 204 Put_item56_GreyL
+ 204 Put_item56_RedS + 255 Put_item57_Bag + 255 Put_item57_BlueL
+ 255 Put_item57_GreyL + 255 Put_item57_RedS + 87 Put_item58_Bag
+ 87 Put_item58_BlueL + 87 Put_item58_GreyL + 87 Put_item58_RedS
+ 64 Put_item59_Bag + 64 Put_item59_BlueL + 64 Put_item59_GreyL
+ 64 Put_item59_RedS + 34 Put_item5_Bag + 34 Put_item5_BlueL
+ 34 Put_item5_GreyL + 34 Put_item5_RedS + 63 Put_item60_Bag
+ 63 Put_item60_BlueL + 63 Put_item60_GreyL + 63 Put_item60_RedS
+ 178 Put_item61_Bag + 178 Put_item61_BlueL + 178 Put_item61_GreyL
+ 178 Put_item61_RedS + 102 Put_item62_Bag + 102 Put_item62_BlueL
+ 102 Put_item62_GreyL + 102 Put_item62_RedS + 117 Put_item63_Bag
+ 117 Put_item63_BlueL + 117 Put_item63_GreyL + 117 Put_item63_RedS
+ 157 Put_item64_Bag + 157 Put_item64_BlueL + 157 Put_item64_GreyL
+ 157 Put_item64_RedS + 103 Put_item65_Bag + 103 Put_item65_BlueL
+ 103 Put_item65_GreyL + 103 Put_item65_RedS + 139 Put_item66_Bag
+ 139 Put_item66_BlueL + 139 Put_item66_GreyL + 139 Put_item66_RedS
+ 82 Put_item67_Bag + 82 Put_item67_BlueL + 82 Put_item67_GreyL
+ 82 Put_item67_RedS + 154 Put_item68_Bag + 154 Put_item68_BlueL
+ 154 Put_item68_GreyL + 154 Put_item68_RedS + 100 Put_item69_Bag
+ 100 Put_item69_BlueL + 100 Put_item69_GreyL + 100 Put_item69_RedS
+ 72 Put_item6_Bag + 72 Put_item6_BlueL + 72 Put_item6_GreyL
+ 72 Put_item6_RedS + 134 Put_item70_Bag + 134 Put_item70_BlueL
+ 134 Put_item70_GreyL + 134 Put_item70_RedS + 109 Put_item71_Bag
+ 109 Put_item71_BlueL + 109 Put_item71_GreyL + 109 Put_item71_RedS
+ 92 Put_item72_Bag + 92 Put_item72_BlueL + 92 Put_item72_GreyL
+ 92 Put_item72_RedS + 76 Put_item73_Bag + 76 Put_item73_BlueL
+ 76 Put_item73_GreyL + 76 Put_item73_RedS + 186 Put_item74_Bag
+ 186 Put_item74_BlueL + 186 Put_item74_GreyL + 186 Put_item74_RedS
+ 43 Put_item75_Bag + 43 Put_item75_BlueL + 43 Put_item75_GreyL
+ 43 Put_item75_RedS + 139 Put_item76_Bag + 139 Put_item76_BlueL
+ 139 Put_item76_GreyL + 139 Put_item76_RedS + 133 Put_item77_Bag
+ 133 Put_item77_BlueL + 133 Put_item77_GreyL + 133 Put_item77_RedS
+ 109 Put_item78_Bag + 109 Put_item78_BlueL + 109 Put_item78_GreyL
+ 109 Put_item78_RedS + 180 Put_item79_Bag + 180 Put_item79_BlueL
+ 180 Put_item79_GreyL + 180 Put_item79_RedS + 105 Put_item7_Bag
+ 105 Put_item7_BlueL + 105 Put_item7_GreyL + 105 Put_item7_RedS
+ 59 Put_item80_Bag + 59 Put_item80_BlueL + 59 Put_item80_GreyL
+ 59 Put_item80_RedS + 119 Put_item81_Bag + 119 Put_item81_BlueL
+ 119 Put_item81_GreyL + 119 Put_item81_RedS + 188 Put_item82_Bag
+ 188 Put_item82_BlueL + 188 Put_item82_GreyL + 188 Put_item82_RedS
+ 134 Put_item83_Bag + 134 Put_item83_BlueL + 134 Put_item83_GreyL
+ 134 Put_item83_RedS + 144 Put_item84_Bag + 144 Put_item84_BlueL
+ 144 Put_item84_GreyL + 144 Put_item84_RedS + 166 Put_item85_Bag
+ 166 Put_item85_BlueL + 166 Put_item85_GreyL + 166 Put_item85_RedS
+ 198 Put_item86_Bag + 198 Put_item86_BlueL + 198 Put_item86_GreyL
+ 198 Put_item86_RedS + 81 Put_item87_Bag + 81 Put_item87_BlueL
+ 81 Put_item87_GreyL + 81 Put_item87_RedS + 129 Put_item88_Bag
+ 129 Put_item88_BlueL + 129 Put_item88_GreyL + 129 Put_item88_RedS
+ 101 Put_item89_Bag + 101 Put_item89_BlueL + 101 Put_item89_GreyL
+ 101 Put_item89_RedS + 135 Put_item8_Bag + 135 Put_item8_BlueL
+ 135 Put_item8_GreyL + 135 Put_item8_RedS + 74 Put_item90_Bag
+ 74 Put_item90_BlueL + 74 Put_item90_GreyL + 74 Put_item90_RedS
+ 76 Put_item91_Bag + 76 Put_item91_BlueL + 76 Put_item91_GreyL
+ 76 Put_item91_RedS + 197 Put_item92_Bag + 197 Put_item92_BlueL
+ 197 Put_item92_GreyL + 197 Put_item92_RedS + 166 Put_item93_Bag
+ 166 Put_item93_BlueL + 166 Put_item93_GreyL + 166 Put_item93_RedS
+ 161 Put_item94_Bag + 161 Put_item94_BlueL + 161 Put_item94_GreyL
+ 161 Put_item94_RedS + 192 Put_item95_Bag + 192 Put_item95_BlueL
+ 192 Put_item95_GreyL + 192 Put_item95_RedS + 103 Put_item96_Bag
+ 103 Put_item96_BlueL + 103 Put_item96_GreyL + 103 Put_item96_RedS
+ 105 Put_item97_Bag + 105 Put_item97_BlueL + 105 Put_item97_GreyL
+ 105 Put_item97_RedS + 174 Put_item98_Bag + 174 Put_item98_BlueL
+ 174 Put_item98_GreyL + 174 Put_item98_RedS + 60 Put_item99_Bag
+ 60 Put_item99_BlueL + 60 Put_item99_GreyL + 60 Put_item99_RedS
+ 177 Put_item9_Bag + 177 Put_item9_BlueL + 177 Put_item9_GreyL
+ 177 Put_item9_RedS
Subject To
Atmost1suitcaseitem1: Put_item1_Bag + Put_item1_BlueL + Put_item1_GreyL
+ Put_item1_RedS <= 1
Atmost1suitcaseitem10: Put_item10_Bag + Put_item10_BlueL + Put_item10_GreyL
+ Put_item10_RedS <= 1
Atmost1suitcaseitem100: Put_item100_Bag + Put_item100_BlueL
+ Put_item100_GreyL + Put_item100_RedS <= 1
Atmost1suitcaseitem11: Put_item11_Bag + Put_item11_BlueL + Put_item11_GreyL
+ Put_item11_RedS <= 1
Atmost1suitcaseitem12: Put_item12_Bag + Put_item12_BlueL + Put_item12_GreyL
+ Put_item12_RedS <= 1
Atmost1suitcaseitem13: Put_item13_Bag + Put_item13_BlueL + Put_item13_GreyL
+ Put_item13_RedS <= 1
Atmost1suitcaseitem14: Put_item14_Bag + Put_item14_BlueL + Put_item14_GreyL
+ Put_item14_RedS <= 1
Atmost1suitcaseitem15: Put_item15_Bag + Put_item15_BlueL + Put_item15_GreyL
+ Put_item15_RedS <= 1
Atmost1suitcaseitem16: Put_item16_Bag + Put_item16_BlueL + Put_item16_GreyL
+ Put_item16_RedS <= 1
Atmost1suitcaseitem17: Put_item17_Bag + Put_item17_BlueL + Put_item17_GreyL
+ Put_item17_RedS <= 1
Atmost1suitcaseitem18: Put_item18_Bag + Put_item18_BlueL + Put_item18_GreyL
+ Put_item18_RedS <= 1
Atmost1suitcaseitem19: Put_item19_Bag + Put_item19_BlueL + Put_item19_GreyL
+ Put_item19_RedS <= 1
Atmost1suitcaseitem2: Put_item2_Bag + Put_item2_BlueL + Put_item2_GreyL
+ Put_item2_RedS <= 1
Atmost1suitcaseitem20: Put_item20_Bag + Put_item20_BlueL + Put_item20_GreyL
+ Put_item20_RedS <= 1
Atmost1suitcaseitem21: Put_item21_Bag + Put_item21_BlueL + Put_item21_GreyL
+ Put_item21_RedS <= 1
Atmost1suitcaseitem22: Put_item22_Bag + Put_item22_BlueL + Put_item22_GreyL
+ Put_item22_RedS <= 1
Atmost1suitcaseitem23: Put_item23_Bag + Put_item23_BlueL + Put_item23_GreyL
+ Put_item23_RedS <= 1
Atmost1suitcaseitem24: Put_item24_Bag + Put_item24_BlueL + Put_item24_GreyL
+ Put_item24_RedS <= 1
Atmost1suitcaseitem25: Put_item25_Bag + Put_item25_BlueL + Put_item25_GreyL
+ Put_item25_RedS <= 1
Atmost1suitcaseitem26: Put_item26_Bag + Put_item26_BlueL + Put_item26_GreyL
+ Put_item26_RedS <= 1
Atmost1suitcaseitem27: Put_item27_Bag + Put_item27_BlueL + Put_item27_GreyL
+ Put_item27_RedS <= 1
Atmost1suitcaseitem28: Put_item28_Bag + Put_item28_BlueL + Put_item28_GreyL
+ Put_item28_RedS <= 1
Atmost1suitcaseitem29: Put_item29_Bag + Put_item29_BlueL + Put_item29_GreyL
+ Put_item29_RedS <= 1
Atmost1suitcaseitem3: Put_item3_Bag + Put_item3_BlueL + Put_item3_GreyL
+ Put_item3_RedS <= 1
Atmost1suitcaseitem30: Put_item30_Bag + Put_item30_BlueL + Put_item30_GreyL
+ Put_item30_RedS <= 1
Atmost1suitcaseitem31: Put_item31_Bag + Put_item31_BlueL + Put_item31_GreyL
+ Put_item31_RedS <= 1
Atmost1suitcaseitem32: Put_item32_Bag + Put_item32_BlueL + Put_item32_GreyL
+ Put_item32_RedS <= 1
Atmost1suitcaseitem33: Put_item33_Bag + Put_item33_BlueL + Put_item33_GreyL
+ Put_item33_RedS <= 1
Atmost1suitcaseitem34: Put_item34_Bag + Put_item34_BlueL + Put_item34_GreyL
+ Put_item34_RedS <= 1
Atmost1suitcaseitem35: Put_item35_Bag + Put_item35_BlueL + Put_item35_GreyL
+ Put_item35_RedS <= 1
Atmost1suitcaseitem36: Put_item36_Bag + Put_item36_BlueL + Put_item36_GreyL
+ Put_item36_RedS <= 1
Atmost1suitcaseitem37: Put_item37_Bag + Put_item37_BlueL + Put_item37_GreyL
+ Put_item37_RedS <= 1
Atmost1suitcaseitem38: Put_item38_Bag + Put_item38_BlueL + Put_item38_GreyL
+ Put_item38_RedS <= 1
Atmost1suitcaseitem39: Put_item39_Bag + Put_item39_BlueL + Put_item39_GreyL
+ Put_item39_RedS <= 1
Atmost1suitcaseitem4: Put_item4_Bag + Put_item4_BlueL + Put_item4_GreyL
+ Put_item4_RedS <= 1
Atmost1suitcaseitem40: Put_item40_Bag + Put_item40_BlueL + Put_item40_GreyL
+ Put_item40_RedS <= 1
Atmost1suitcaseitem41: Put_item41_Bag + Put_item41_BlueL + Put_item41_GreyL
+ Put_item41_RedS <= 1
Atmost1suitcaseitem42: Put_item42_Bag + Put_item42_BlueL + Put_item42_GreyL
+ Put_item42_RedS <= 1
Atmost1suitcaseitem43: Put_item43_Bag + Put_item43_BlueL + Put_item43_GreyL
+ Put_item43_RedS <= 1
Atmost1suitcaseitem44: Put_item44_Bag + Put_item44_BlueL + Put_item44_GreyL
+ Put_item44_RedS <= 1
Atmost1suitcaseitem45: Put_item45_Bag + Put_item45_BlueL + Put_item45_GreyL
+ Put_item45_RedS <= 1
Atmost1suitcaseitem46: Put_item46_Bag + Put_item46_BlueL + Put_item46_GreyL
+ Put_item46_RedS <= 1
Atmost1suitcaseitem47: Put_item47_Bag + Put_item47_BlueL + Put_item47_GreyL
+ Put_item47_RedS <= 1
Atmost1suitcaseitem48: Put_item48_Bag + Put_item48_BlueL + Put_item48_GreyL
+ Put_item48_RedS <= 1
Atmost1suitcaseitem49: Put_item49_Bag + Put_item49_BlueL + Put_item49_GreyL
+ Put_item49_RedS <= 1
Atmost1suitcaseitem5: Put_item5_Bag + Put_item5_BlueL + Put_item5_GreyL
+ Put_item5_RedS <= 1
Atmost1suitcaseitem50: Put_item50_Bag + Put_item50_BlueL + Put_item50_GreyL
+ Put_item50_RedS <= 1
Atmost1suitcaseitem51: Put_item51_Bag + Put_item51_BlueL + Put_item51_GreyL
+ Put_item51_RedS <= 1
Atmost1suitcaseitem52: Put_item52_Bag + Put_item52_BlueL + Put_item52_GreyL
+ Put_item52_RedS <= 1
Atmost1suitcaseitem53: Put_item53_Bag + Put_item53_BlueL + Put_item53_GreyL
+ Put_item53_RedS <= 1
Atmost1suitcaseitem54: Put_item54_Bag + Put_item54_BlueL + Put_item54_GreyL
+ Put_item54_RedS <= 1
Atmost1suitcaseitem55: Put_item55_Bag + Put_item55_BlueL + Put_item55_GreyL
+ Put_item55_RedS <= 1
Atmost1suitcaseitem56: Put_item56_Bag + Put_item56_BlueL + Put_item56_GreyL
+ Put_item56_RedS <= 1
Atmost1suitcaseitem57: Put_item57_Bag + Put_item57_BlueL + Put_item57_GreyL
+ Put_item57_RedS <= 1
Atmost1suitcaseitem58: Put_item58_Bag + Put_item58_BlueL + Put_item58_GreyL
+ Put_item58_RedS <= 1
Atmost1suitcaseitem59: Put_item59_Bag + Put_item59_BlueL + Put_item59_GreyL
+ Put_item59_RedS <= 1
Atmost1suitcaseitem6: Put_item6_Bag + Put_item6_BlueL + Put_item6_GreyL
+ Put_item6_RedS <= 1
Atmost1suitcaseitem60: Put_item60_Bag + Put_item60_BlueL + Put_item60_GreyL
+ Put_item60_RedS <= 1
Atmost1suitcaseitem61: Put_item61_Bag + Put_item61_BlueL + Put_item61_GreyL
+ Put_item61_RedS <= 1
Atmost1suitcaseitem62: Put_item62_Bag + Put_item62_BlueL + Put_item62_GreyL
+ Put_item62_RedS <= 1
Atmost1suitcaseitem63: Put_item63_Bag + Put_item63_BlueL + Put_item63_GreyL
+ Put_item63_RedS <= 1
Atmost1suitcaseitem64: Put_item64_Bag + Put_item64_BlueL + Put_item64_GreyL
+ Put_item64_RedS <= 1
Atmost1suitcaseitem65: Put_item65_Bag + Put_item65_BlueL + Put_item65_GreyL
+ Put_item65_RedS <= 1
Atmost1suitcaseitem66: Put_item66_Bag + Put_item66_BlueL + Put_item66_GreyL
+ Put_item66_RedS <= 1
Atmost1suitcaseitem67: Put_item67_Bag + Put_item67_BlueL + Put_item67_GreyL
+ Put_item67_RedS <= 1
Atmost1suitcaseitem68: Put_item68_Bag + Put_item68_BlueL + Put_item68_GreyL
+ Put_item68_RedS <= 1
Atmost1suitcaseitem69: Put_item69_Bag + Put_item69_BlueL + Put_item69_GreyL
+ Put_item69_RedS <= 1
Atmost1suitcaseitem7: Put_item7_Bag + Put_item7_BlueL + Put_item7_GreyL
+ Put_item7_RedS <= 1
Atmost1suitcaseitem70: Put_item70_Bag + Put_item70_BlueL + Put_item70_GreyL
+ Put_item70_RedS <= 1
Atmost1suitcaseitem71: Put_item71_Bag + Put_item71_BlueL + Put_item71_GreyL
+ Put_item71_RedS <= 1
Atmost1suitcaseitem72: Put_item72_Bag + Put_item72_BlueL + Put_item72_GreyL
+ Put_item72_RedS <= 1
Atmost1suitcaseitem73: Put_item73_Bag + Put_item73_BlueL + Put_item73_GreyL
+ Put_item73_RedS <= 1
Atmost1suitcaseitem74: Put_item74_Bag + Put_item74_BlueL + Put_item74_GreyL
+ Put_item74_RedS <= 1
Atmost1suitcaseitem75: Put_item75_Bag + Put_item75_BlueL + Put_item75_GreyL
+ Put_item75_RedS <= 1
Atmost1suitcaseitem76: Put_item76_Bag + Put_item76_BlueL + Put_item76_GreyL
+ Put_item76_RedS <= 1
Atmost1suitcaseitem77: Put_item77_Bag + Put_item77_BlueL + Put_item77_GreyL
+ Put_item77_RedS <= 1
Atmost1suitcaseitem78: Put_item78_Bag + Put_item78_BlueL + Put_item78_GreyL
+ Put_item78_RedS <= 1
Atmost1suitcaseitem79: Put_item79_Bag + Put_item79_BlueL + Put_item79_GreyL
+ Put_item79_RedS <= 1
Atmost1suitcaseitem8: Put_item8_Bag + Put_item8_BlueL + Put_item8_GreyL
+ Put_item8_RedS <= 1
Atmost1suitcaseitem80: Put_item80_Bag + Put_item80_BlueL + Put_item80_GreyL
+ Put_item80_RedS <= 1
Atmost1suitcaseitem81: Put_item81_Bag + Put_item81_BlueL + Put_item81_GreyL
+ Put_item81_RedS <= 1
Atmost1suitcaseitem82: Put_item82_Bag + Put_item82_BlueL + Put_item82_GreyL
+ Put_item82_RedS <= 1
Atmost1suitcaseitem83: Put_item83_Bag + Put_item83_BlueL + Put_item83_GreyL
+ Put_item83_RedS <= 1
Atmost1suitcaseitem84: Put_item84_Bag + Put_item84_BlueL + Put_item84_GreyL
+ Put_item84_RedS <= 1
Atmost1suitcaseitem85: Put_item85_Bag + Put_item85_BlueL + Put_item85_GreyL
+ Put_item85_RedS <= 1
Atmost1suitcaseitem86: Put_item86_Bag + Put_item86_BlueL + Put_item86_GreyL
+ Put_item86_RedS <= 1
Atmost1suitcaseitem87: Put_item87_Bag + Put_item87_BlueL + Put_item87_GreyL
+ Put_item87_RedS <= 1
Atmost1suitcaseitem88: Put_item88_Bag + Put_item88_BlueL + Put_item88_GreyL
+ Put_item88_RedS <= 1
Atmost1suitcaseitem89: Put_item89_Bag + Put_item89_BlueL + Put_item89_GreyL
+ Put_item89_RedS <= 1
Atmost1suitcaseitem9: Put_item9_Bag + Put_item9_BlueL + Put_item9_GreyL
+ Put_item9_RedS <= 1
Atmost1suitcaseitem90: Put_item90_Bag + Put_item90_BlueL + Put_item90_GreyL
+ Put_item90_RedS <= 1
Atmost1suitcaseitem91: Put_item91_Bag + Put_item91_BlueL + Put_item91_GreyL
+ Put_item91_RedS <= 1
Atmost1suitcaseitem92: Put_item92_Bag + Put_item92_BlueL + Put_item92_GreyL
+ Put_item92_RedS <= 1
Atmost1suitcaseitem93: Put_item93_Bag + Put_item93_BlueL + Put_item93_GreyL
+ Put_item93_RedS <= 1
Atmost1suitcaseitem94: Put_item94_Bag + Put_item94_BlueL + Put_item94_GreyL
+ Put_item94_RedS <= 1
Atmost1suitcaseitem95: Put_item95_Bag + Put_item95_BlueL + Put_item95_GreyL
+ Put_item95_RedS <= 1
Atmost1suitcaseitem96: Put_item96_Bag + Put_item96_BlueL + Put_item96_GreyL
+ Put_item96_RedS <= 1
Atmost1suitcaseitem97: Put_item97_Bag + Put_item97_BlueL + Put_item97_GreyL
+ Put_item97_RedS <= 1
Atmost1suitcaseitem98: Put_item98_Bag + Put_item98_BlueL + Put_item98_GreyL
+ Put_item98_RedS <= 1
Atmost1suitcaseitem99: Put_item99_Bag + Put_item99_BlueL + Put_item99_GreyL
+ Put_item99_RedS <= 1
WeightCarryOnBag: 0.15 Put_item100_Bag + 0.1 Put_item10_Bag
+ 0.4 Put_item11_Bag + 0.3 Put_item12_Bag + 0.14 Put_item13_Bag
+ 0.1 Put_item14_Bag + 0.8 Put_item15_Bag + 1.2 Put_item16_Bag
+ 0.2 Put_item17_Bag + 0.3 Put_item18_Bag + 0.5 Put_item19_Bag
+ 0.1 Put_item1_Bag + 0.1 Put_item20_Bag + 0.8 Put_item21_Bag
+ 0.1 Put_item22_Bag + 0.1 Put_item23_Bag + 0.01 Put_item24_Bag
+ 0.03 Put_item25_Bag + 0.23 Put_item26_Bag + 0.02 Put_item27_Bag
+ 0.12 Put_item28_Bag + 0.13 Put_item29_Bag + Put_item2_Bag
+ 2.1 Put_item30_Bag + 0.34 Put_item31_Bag + 0.45 Put_item32_Bag
+ 0.64 Put_item33_Bag + 0.12 Put_item34_Bag + 0.45 Put_item35_Bag
+ 0.21 Put_item36_Bag + 0.13 Put_item37_Bag + 0.12 Put_item38_Bag
+ 0.18 Put_item39_Bag + 0.5 Put_item3_Bag + 0.3 Put_item40_Bag
+ 0.45 Put_item41_Bag + 0.5 Put_item42_Bag + 0.12 Put_item43_Bag
+ 0.45 Put_item44_Bag + 0.67 Put_item45_Bag + 0.8 Put_item46_Bag
+ 0.79 Put_item47_Bag + 0.74 Put_item48_Bag + 0.45 Put_item49_Bag
+ Put_item4_Bag + 0.42 Put_item50_Bag + 0.34 Put_item51_Bag
+ 1.34 Put_item52_Bag + 2 Put_item53_Bag + Put_item54_Bag
+ 1.6 Put_item55_Bag + 3 Put_item56_Bag + 1.23 Put_item57_Bag
+ 1.34 Put_item58_Bag + 1.5 Put_item59_Bag + 0.1 Put_item5_Bag
+ 2 Put_item60_Bag + 0.89 Put_item61_Bag + 0.57 Put_item62_Bag
+ 0.27 Put_item63_Bag + 0.03 Put_item64_Bag + 0.23 Put_item65_Bag
+ 0.69 Put_item66_Bag + 0.69 Put_item67_Bag + 0.99 Put_item68_Bag
+ 0.86 Put_item69_Bag + Put_item6_Bag + 0.23 Put_item70_Bag
+ 0.19 Put_item71_Bag + 0.72 Put_item72_Bag + 0.6 Put_item73_Bag
+ 0.14 Put_item74_Bag + 0.03 Put_item75_Bag + 0.57 Put_item76_Bag
+ 0.97 Put_item77_Bag + 0.58 Put_item78_Bag + 0.22 Put_item79_Bag
+ 0.5 Put_item7_Bag + 0.05 Put_item80_Bag + 0.66 Put_item81_Bag
+ 0.28 Put_item82_Bag + 0.82 Put_item83_Bag + 0.43 Put_item84_Bag
+ 0.91 Put_item85_Bag + 0.5 Put_item86_Bag + 0.15 Put_item87_Bag
+ 0.85 Put_item88_Bag + 0.84 Put_item89_Bag + 0.2 Put_item8_Bag
+ 0.57 Put_item90_Bag + 0.65 Put_item91_Bag + 0.04 Put_item92_Bag
+ 0.18 Put_item93_Bag + 0.59 Put_item94_Bag + 0.91 Put_item95_Bag
+ 0.84 Put_item96_Bag + 0.16 Put_item97_Bag + 0.83 Put_item98_Bag
+ 0.5 Put_item99_Bag + Put_item9_Bag <= 6.5
WeightCarryOnRedS: 0.15 Put_item100_RedS + 0.1 Put_item10_RedS
+ 0.4 Put_item11_RedS + 0.3 Put_item12_RedS + 0.14 Put_item13_RedS
+ 0.1 Put_item14_RedS + 0.8 Put_item15_RedS + 1.2 Put_item16_RedS
+ 0.2 Put_item17_RedS + 0.3 Put_item18_RedS + 0.5 Put_item19_RedS
+ 0.1 Put_item1_RedS + 0.1 Put_item20_RedS + 0.8 Put_item21_RedS
+ 0.1 Put_item22_RedS + 0.1 Put_item23_RedS + 0.01 Put_item24_RedS
+ 0.03 Put_item25_RedS + 0.23 Put_item26_RedS + 0.02 Put_item27_RedS
+ 0.12 Put_item28_RedS + 0.13 Put_item29_RedS + Put_item2_RedS
+ 2.1 Put_item30_RedS + 0.34 Put_item31_RedS + 0.45 Put_item32_RedS
+ 0.64 Put_item33_RedS + 0.12 Put_item34_RedS + 0.45 Put_item35_RedS
+ 0.21 Put_item36_RedS + 0.13 Put_item37_RedS + 0.12 Put_item38_RedS
+ 0.18 Put_item39_RedS + 0.5 Put_item3_RedS + 0.3 Put_item40_RedS
+ 0.45 Put_item41_RedS + 0.5 Put_item42_RedS + 0.12 Put_item43_RedS
+ 0.45 Put_item44_RedS + 0.67 Put_item45_RedS + 0.8 Put_item46_RedS
+ 0.79 Put_item47_RedS + 0.74 Put_item48_RedS + 0.45 Put_item49_RedS
+ Put_item4_RedS + 0.42 Put_item50_RedS + 0.34 Put_item51_RedS
+ 1.34 Put_item52_RedS + 2 Put_item53_RedS + Put_item54_RedS
+ 1.6 Put_item55_RedS + 3 Put_item56_RedS + 1.23 Put_item57_RedS
+ 1.34 Put_item58_RedS + 1.5 Put_item59_RedS + 0.1 Put_item5_RedS
+ 2 Put_item60_RedS + 0.89 Put_item61_RedS + 0.57 Put_item62_RedS
+ 0.27 Put_item63_RedS + 0.03 Put_item64_RedS + 0.23 Put_item65_RedS
+ 0.69 Put_item66_RedS + 0.69 Put_item67_RedS + 0.99 Put_item68_RedS
+ 0.86 Put_item69_RedS + Put_item6_RedS + 0.23 Put_item70_RedS
+ 0.19 Put_item71_RedS + 0.72 Put_item72_RedS + 0.6 Put_item73_RedS
+ 0.14 Put_item74_RedS + 0.03 Put_item75_RedS + 0.57 Put_item76_RedS
+ 0.97 Put_item77_RedS + 0.58 Put_item78_RedS + 0.22 Put_item79_RedS
+ 0.5 Put_item7_RedS + 0.05 Put_item80_RedS + 0.66 Put_item81_RedS
+ 0.28 Put_item82_RedS + 0.82 Put_item83_RedS + 0.43 Put_item84_RedS
+ 0.91 Put_item85_RedS + 0.5 Put_item86_RedS + 0.15 Put_item87_RedS
+ 0.85 Put_item88_RedS + 0.84 Put_item89_RedS + 0.2 Put_item8_RedS
+ 0.57 Put_item90_RedS + 0.65 Put_item91_RedS + 0.04 Put_item92_RedS
+ 0.18 Put_item93_RedS + 0.59 Put_item94_RedS + 0.91 Put_item95_RedS
+ 0.84 Put_item96_RedS + 0.16 Put_item97_RedS + 0.83 Put_item98_RedS
+ 0.5 Put_item99_RedS + Put_item9_RedS <= 6
WeightCheckInBlueL: 0.15 Put_item100_BlueL + 0.1 Put_item10_BlueL
+ 0.4 Put_item11_BlueL + 0.3 Put_item12_BlueL + 0.14 Put_item13_BlueL
+ 0.1 Put_item14_BlueL + 0.8 Put_item15_BlueL + 1.2 Put_item16_BlueL
+ 0.2 Put_item17_BlueL + 0.3 Put_item18_BlueL + 0.5 Put_item19_BlueL
+ 0.1 Put_item1_BlueL + 0.1 Put_item20_BlueL + 0.8 Put_item21_BlueL
+ 0.1 Put_item22_BlueL + 0.1 Put_item23_BlueL + 0.01 Put_item24_BlueL
+ 0.03 Put_item25_BlueL + 0.23 Put_item26_BlueL + 0.02 Put_item27_BlueL
+ 0.12 Put_item28_BlueL + 0.13 Put_item29_BlueL + Put_item2_BlueL
+ 2.1 Put_item30_BlueL + 0.34 Put_item31_BlueL + 0.45 Put_item32_BlueL
+ 0.64 Put_item33_BlueL + 0.12 Put_item34_BlueL + 0.45 Put_item35_BlueL
+ 0.21 Put_item36_BlueL + 0.13 Put_item37_BlueL + 0.12 Put_item38_BlueL
+ 0.18 Put_item39_BlueL + 0.5 Put_item3_BlueL + 0.3 Put_item40_BlueL
+ 0.45 Put_item41_BlueL + 0.5 Put_item42_BlueL + 0.12 Put_item43_BlueL
+ 0.45 Put_item44_BlueL + 0.67 Put_item45_BlueL + 0.8 Put_item46_BlueL
+ 0.79 Put_item47_BlueL + 0.74 Put_item48_BlueL + 0.45 Put_item49_BlueL
+ Put_item4_BlueL + 0.42 Put_item50_BlueL + 0.34 Put_item51_BlueL
+ 1.34 Put_item52_BlueL + 2 Put_item53_BlueL + Put_item54_BlueL
+ 1.6 Put_item55_BlueL + 3 Put_item56_BlueL + 1.23 Put_item57_BlueL
+ 1.34 Put_item58_BlueL + 1.5 Put_item59_BlueL + 0.1 Put_item5_BlueL
+ 2 Put_item60_BlueL + 0.89 Put_item61_BlueL + 0.57 Put_item62_BlueL
+ 0.27 Put_item63_BlueL + 0.03 Put_item64_BlueL + 0.23 Put_item65_BlueL
+ 0.69 Put_item66_BlueL + 0.69 Put_item67_BlueL + 0.99 Put_item68_BlueL
+ 0.86 Put_item69_BlueL + Put_item6_BlueL + 0.23 Put_item70_BlueL
+ 0.19 Put_item71_BlueL + 0.72 Put_item72_BlueL + 0.6 Put_item73_BlueL
+ 0.14 Put_item74_BlueL + 0.03 Put_item75_BlueL + 0.57 Put_item76_BlueL
+ 0.97 Put_item77_BlueL + 0.58 Put_item78_BlueL + 0.22 Put_item79_BlueL
+ 0.5 Put_item7_BlueL + 0.05 Put_item80_BlueL + 0.66 Put_item81_BlueL
+ 0.28 Put_item82_BlueL + 0.82 Put_item83_BlueL + 0.43 Put_item84_BlueL
+ 0.91 Put_item85_BlueL + 0.5 Put_item86_BlueL + 0.15 Put_item87_BlueL
+ 0.85 Put_item88_BlueL + 0.84 Put_item89_BlueL + 0.2 Put_item8_BlueL
+ 0.57 Put_item90_BlueL + 0.65 Put_item91_BlueL + 0.04 Put_item92_BlueL
+ 0.18 Put_item93_BlueL + 0.59 Put_item94_BlueL + 0.91 Put_item95_BlueL
+ 0.84 Put_item96_BlueL + 0.16 Put_item97_BlueL + 0.83 Put_item98_BlueL
+ 0.5 Put_item99_BlueL + Put_item9_BlueL <= 20
WeightCheckInGreyL: 0.15 Put_item100_GreyL + 0.1 Put_item10_GreyL
+ 0.4 Put_item11_GreyL + 0.3 Put_item12_GreyL + 0.14 Put_item13_GreyL
+ 0.1 Put_item14_GreyL + 0.8 Put_item15_GreyL + 1.2 Put_item16_GreyL
+ 0.2 Put_item17_GreyL + 0.3 Put_item18_GreyL + 0.5 Put_item19_GreyL
+ 0.1 Put_item1_GreyL + 0.1 Put_item20_GreyL + 0.8 Put_item21_GreyL
+ 0.1 Put_item22_GreyL + 0.1 Put_item23_GreyL + 0.01 Put_item24_GreyL
+ 0.03 Put_item25_GreyL + 0.23 Put_item26_GreyL + 0.02 Put_item27_GreyL
+ 0.12 Put_item28_GreyL + 0.13 Put_item29_GreyL + Put_item2_GreyL
+ 2.1 Put_item30_GreyL + 0.34 Put_item31_GreyL + 0.45 Put_item32_GreyL
+ 0.64 Put_item33_GreyL + 0.12 Put_item34_GreyL + 0.45 Put_item35_GreyL
+ 0.21 Put_item36_GreyL + 0.13 Put_item37_GreyL + 0.12 Put_item38_GreyL
+ 0.18 Put_item39_GreyL + 0.5 Put_item3_GreyL + 0.3 Put_item40_GreyL
+ 0.45 Put_item41_GreyL + 0.5 Put_item42_GreyL + 0.12 Put_item43_GreyL
+ 0.45 Put_item44_GreyL + 0.67 Put_item45_GreyL + 0.8 Put_item46_GreyL
+ 0.79 Put_item47_GreyL + 0.74 Put_item48_GreyL + 0.45 Put_item49_GreyL
+ Put_item4_GreyL + 0.42 Put_item50_GreyL + 0.34 Put_item51_GreyL
+ 1.34 Put_item52_GreyL + 2 Put_item53_GreyL + Put_item54_GreyL
+ 1.6 Put_item55_GreyL + 3 Put_item56_GreyL + 1.23 Put_item57_GreyL
+ 1.34 Put_item58_GreyL + 1.5 Put_item59_GreyL + 0.1 Put_item5_GreyL
+ 2 Put_item60_GreyL + 0.89 Put_item61_GreyL + 0.57 Put_item62_GreyL
+ 0.27 Put_item63_GreyL + 0.03 Put_item64_GreyL + 0.23 Put_item65_GreyL
+ 0.69 Put_item66_GreyL + 0.69 Put_item67_GreyL + 0.99 Put_item68_GreyL
+ 0.86 Put_item69_GreyL + Put_item6_GreyL + 0.23 Put_item70_GreyL
+ 0.19 Put_item71_GreyL + 0.72 Put_item72_GreyL + 0.6 Put_item73_GreyL
+ 0.14 Put_item74_GreyL + 0.03 Put_item75_GreyL + 0.57 Put_item76_GreyL
+ 0.97 Put_item77_GreyL + 0.58 Put_item78_GreyL + 0.22 Put_item79_GreyL
+ 0.5 Put_item7_GreyL + 0.05 Put_item80_GreyL + 0.66 Put_item81_GreyL
+ 0.28 Put_item82_GreyL + 0.82 Put_item83_GreyL + 0.43 Put_item84_GreyL
+ 0.91 Put_item85_GreyL + 0.5 Put_item86_GreyL + 0.15 Put_item87_GreyL
+ 0.85 Put_item88_GreyL + 0.84 Put_item89_GreyL + 0.2 Put_item8_GreyL
+ 0.57 Put_item90_GreyL + 0.65 Put_item91_GreyL + 0.04 Put_item92_GreyL
+ 0.18 Put_item93_GreyL + 0.59 Put_item94_GreyL + 0.91 Put_item95_GreyL
+ 0.84 Put_item96_GreyL + 0.16 Put_item97_GreyL + 0.83 Put_item98_GreyL
+ 0.5 Put_item99_GreyL + Put_item9_GreyL <= 20
Binaries
Put_item100_Bag
Put_item100_BlueL
Put_item100_GreyL
Put_item100_RedS
Put_item10_Bag
Put_item10_BlueL
Put_item10_GreyL
Put_item10_RedS
Put_item11_Bag
Put_item11_BlueL
Put_item11_GreyL
Put_item11_RedS
Put_item12_Bag
Put_item12_BlueL
Put_item12_GreyL
Put_item12_RedS
Put_item13_Bag
Put_item13_BlueL
Put_item13_GreyL
Put_item13_RedS
Put_item14_Bag
Put_item14_BlueL
Put_item14_GreyL
Put_item14_RedS
Put_item15_Bag
Put_item15_BlueL
Put_item15_GreyL
Put_item15_RedS
Put_item16_Bag
Put_item16_BlueL
Put_item16_GreyL
Put_item16_RedS
Put_item17_Bag
Put_item17_BlueL
Put_item17_GreyL
Put_item17_RedS
Put_item18_Bag
Put_item18_BlueL
Put_item18_GreyL
Put_item18_RedS
Put_item19_Bag
Put_item19_BlueL
Put_item19_GreyL
Put_item19_RedS
Put_item1_Bag
Put_item1_BlueL
Put_item1_GreyL
Put_item1_RedS
Put_item20_Bag
Put_item20_BlueL
Put_item20_GreyL
Put_item20_RedS
Put_item21_Bag
Put_item21_BlueL
Put_item21_GreyL
Put_item21_RedS
Put_item22_Bag
Put_item22_BlueL
Put_item22_GreyL
Put_item22_RedS
Put_item23_Bag
Put_item23_BlueL
Put_item23_GreyL
Put_item23_RedS
Put_item24_Bag
Put_item24_BlueL
Put_item24_GreyL
Put_item24_RedS
Put_item25_Bag
Put_item25_BlueL
Put_item25_GreyL
Put_item25_RedS
Put_item26_Bag
Put_item26_BlueL
Put_item26_GreyL
Put_item26_RedS
Put_item27_Bag
Put_item27_BlueL
Put_item27_GreyL
Put_item27_RedS
Put_item28_Bag
Put_item28_BlueL
Put_item28_GreyL
Put_item28_RedS
Put_item29_Bag
Put_item29_BlueL
Put_item29_GreyL
Put_item29_RedS
Put_item2_Bag
Put_item2_BlueL
Put_item2_GreyL
Put_item2_RedS
Put_item30_Bag
Put_item30_BlueL
Put_item30_GreyL
Put_item30_RedS
Put_item31_Bag
Put_item31_BlueL
Put_item31_GreyL
Put_item31_RedS
Put_item32_Bag
Put_item32_BlueL
Put_item32_GreyL
Put_item32_RedS
Put_item33_Bag
Put_item33_BlueL
Put_item33_GreyL
Put_item33_RedS
Put_item34_Bag
Put_item34_BlueL
Put_item34_GreyL
Put_item34_RedS
Put_item35_Bag
Put_item35_BlueL
Put_item35_GreyL
Put_item35_RedS
Put_item36_Bag
Put_item36_BlueL
Put_item36_GreyL
Put_item36_RedS
Put_item37_Bag
Put_item37_BlueL
Put_item37_GreyL
Put_item37_RedS
Put_item38_Bag
Put_item38_BlueL
Put_item38_GreyL
Put_item38_RedS
Put_item39_Bag
Put_item39_BlueL
Put_item39_GreyL
Put_item39_RedS
Put_item3_Bag
Put_item3_BlueL
Put_item3_GreyL
Put_item3_RedS
Put_item40_Bag
Put_item40_BlueL
Put_item40_GreyL
Put_item40_RedS
Put_item41_Bag
Put_item41_BlueL
Put_item41_GreyL
Put_item41_RedS
Put_item42_Bag
Put_item42_BlueL
Put_item42_GreyL
Put_item42_RedS
Put_item43_Bag
Put_item43_BlueL
Put_item43_GreyL
Put_item43_RedS
Put_item44_Bag
Put_item44_BlueL
Put_item44_GreyL
Put_item44_RedS
Put_item45_Bag
Put_item45_BlueL
Put_item45_GreyL
Put_item45_RedS
Put_item46_Bag
Put_item46_BlueL
Put_item46_GreyL
Put_item46_RedS
Put_item47_Bag
Put_item47_BlueL
Put_item47_GreyL
Put_item47_RedS
Put_item48_Bag
Put_item48_BlueL
Put_item48_GreyL
Put_item48_RedS
Put_item49_Bag
Put_item49_BlueL
Put_item49_GreyL
Put_item49_RedS
Put_item4_Bag
Put_item4_BlueL
Put_item4_GreyL
Put_item4_RedS
Put_item50_Bag
Put_item50_BlueL
Put_item50_GreyL
Put_item50_RedS
Put_item51_Bag
Put_item51_BlueL
Put_item51_GreyL
Put_item51_RedS
Put_item52_Bag
Put_item52_BlueL
Put_item52_GreyL
Put_item52_RedS
Put_item53_Bag
Put_item53_BlueL
Put_item53_GreyL
Put_item53_RedS
Put_item54_Bag
Put_item54_BlueL
Put_item54_GreyL
Put_item54_RedS
Put_item55_Bag
Put_item55_BlueL
Put_item55_GreyL
Put_item55_RedS
Put_item56_Bag
Put_item56_BlueL
Put_item56_GreyL
Put_item56_RedS
Put_item57_Bag
Put_item57_BlueL
Put_item57_GreyL
Put_item57_RedS
Put_item58_Bag
Put_item58_BlueL
Put_item58_GreyL
Put_item58_RedS
Put_item59_Bag
Put_item59_BlueL
Put_item59_GreyL
Put_item59_RedS
Put_item5_Bag
Put_item5_BlueL
Put_item5_GreyL
Put_item5_RedS
Put_item60_Bag
Put_item60_BlueL
Put_item60_GreyL
Put_item60_RedS
Put_item61_Bag
Put_item61_BlueL
Put_item61_GreyL
Put_item61_RedS
Put_item62_Bag
Put_item62_BlueL
Put_item62_GreyL
Put_item62_RedS
Put_item63_Bag
Put_item63_BlueL
Put_item63_GreyL
Put_item63_RedS
Put_item64_Bag
Put_item64_BlueL
Put_item64_GreyL
Put_item64_RedS
Put_item65_Bag
Put_item65_BlueL
Put_item65_GreyL
Put_item65_RedS
Put_item66_Bag
Put_item66_BlueL
Put_item66_GreyL
Put_item66_RedS
Put_item67_Bag
Put_item67_BlueL
Put_item67_GreyL
Put_item67_RedS
Put_item68_Bag
Put_item68_BlueL
Put_item68_GreyL
Put_item68_RedS
Put_item69_Bag
Put_item69_BlueL
Put_item69_GreyL
Put_item69_RedS
Put_item6_Bag
Put_item6_BlueL
Put_item6_GreyL
Put_item6_RedS
Put_item70_Bag
Put_item70_BlueL
Put_item70_GreyL
Put_item70_RedS
Put_item71_Bag
Put_item71_BlueL
Put_item71_GreyL
Put_item71_RedS
Put_item72_Bag
Put_item72_BlueL
Put_item72_GreyL
Put_item72_RedS
Put_item73_Bag
Put_item73_BlueL
Put_item73_GreyL
Put_item73_RedS
Put_item74_Bag
Put_item74_BlueL
Put_item74_GreyL
Put_item74_RedS
Put_item75_Bag
Put_item75_BlueL
Put_item75_GreyL
Put_item75_RedS
Put_item76_Bag
Put_item76_BlueL
Put_item76_GreyL
Put_item76_RedS
Put_item77_Bag
Put_item77_BlueL
Put_item77_GreyL
Put_item77_RedS
Put_item78_Bag
Put_item78_BlueL
Put_item78_GreyL
Put_item78_RedS
Put_item79_Bag
Put_item79_BlueL
Put_item79_GreyL
Put_item79_RedS
Put_item7_Bag
Put_item7_BlueL
Put_item7_GreyL
Put_item7_RedS
Put_item80_Bag
Put_item80_BlueL
Put_item80_GreyL
Put_item80_RedS
Put_item81_Bag
Put_item81_BlueL
Put_item81_GreyL
Put_item81_RedS
Put_item82_Bag
Put_item82_BlueL
Put_item82_GreyL
Put_item82_RedS
Put_item83_Bag
Put_item83_BlueL
Put_item83_GreyL
Put_item83_RedS
Put_item84_Bag
Put_item84_BlueL
Put_item84_GreyL
Put_item84_RedS
Put_item85_Bag
Put_item85_BlueL
Put_item85_GreyL
Put_item85_RedS
Put_item86_Bag
Put_item86_BlueL
Put_item86_GreyL
Put_item86_RedS
Put_item87_Bag
Put_item87_BlueL
Put_item87_GreyL
Put_item87_RedS
Put_item88_Bag
Put_item88_BlueL
Put_item88_GreyL
Put_item88_RedS
Put_item89_Bag
Put_item89_BlueL
Put_item89_GreyL
Put_item89_RedS
Put_item8_Bag
Put_item8_BlueL
Put_item8_GreyL
Put_item8_RedS
Put_item90_Bag
Put_item90_BlueL
Put_item90_GreyL
Put_item90_RedS
Put_item91_Bag
Put_item91_BlueL
Put_item91_GreyL
Put_item91_RedS
Put_item92_Bag
Put_item92_BlueL
Put_item92_GreyL
Put_item92_RedS
Put_item93_Bag
Put_item93_BlueL
Put_item93_GreyL
Put_item93_RedS
Put_item94_Bag
Put_item94_BlueL
Put_item94_GreyL
Put_item94_RedS
Put_item95_Bag
Put_item95_BlueL
Put_item95_GreyL
Put_item95_RedS
Put_item96_Bag
Put_item96_BlueL
Put_item96_GreyL
Put_item96_RedS
Put_item97_Bag
Put_item97_BlueL
Put_item97_GreyL
Put_item97_RedS
Put_item98_Bag
Put_item98_BlueL
Put_item98_GreyL
Put_item98_RedS
Put_item99_Bag
Put_item99_BlueL
Put_item99_GreyL
Put_item99_RedS
Put_item9_Bag
Put_item9_BlueL
Put_item9_GreyL
Put_item9_RedS
End
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment