Skip to content

Instantly share code, notes, and snippets.

@reinderien
Last active November 13, 2023 21:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save reinderien/b1e084a3ca657aea38a67ed0d8e23691 to your computer and use it in GitHub Desktop.
Save reinderien/b1e084a3ca657aea38a67ed0d8e23691 to your computer and use it in GitHub Desktop.
Probit and transforming z-scores (price optimization)
# Based on https://stackoverflow.com/questions/77470565/probit-and-transforming-z-scores-in-gurobi-price-optimization
import numpy as np
import pulp
import pandas as pd
def make_distribution() -> tuple[
np.ndarray, # z scores
pd.Series, # probabilities
]:
distribution = {
-3.0: 0.00134989803163,
-2.9: 0.00191172318706,
-2.8: 0.00255513033018,
-2.7: 0.00328943185389,
-2.6: 0.00411565636173,
-2.5: 0.00499750254617,
-2.4: 0.00589875012553,
-2.3: 0.00677566432527,
-2.2: 0.00758899513659,
-2.1: 0.00830839268624,
-2.0: 0.0227501319482,
-1.9: 0.01439744676436,
-1.8: 0.01694742458357,
-1.7: 0.01927575795789,
-1.6: 0.02138602513441,
-1.5: 0.02320922075231,
-1.4: 0.02468234407296,
-1.3: 0.02574798628676,
-1.2: 0.02635515681939,
-1.1: 0.02648322768712,
-1.0: 0.158655253931,
-0.9: 0.13566606094638,
-0.8: 0.115069670221708,
-0.7: 0.09680048458561,
-0.6: 0.08075665923377,
-0.5: 0.0668072012689,
-0.4: 0.05479929169956,
-0.3: 0.04456546275861,
-0.2: 0.03593031911293,
-0.1: 0.02871655981669,
0.0: 0.5,
0.1: 0.97128344018331,
0.2: 0.96406968088707,
0.3: 0.95543453724139,
0.4: 0.94520070830044,
0.5: 0.933192798731,
0.6: 0.91924334076623,
0.7: 0.90319951541439,
0.8: 0.88493032977829,
0.9: 0.86433393905362,
1.0: 0.841344746069,
1.1: 0.81582322731288,
1.2: 0.78774581318061,
1.3: 0.75798570450511,
1.4: 0.72653065592704,
1.5: 0.69314716055995,
1.6: 0.65730019884867,
1.7: 0.61839905914769,
1.8: 0.57580633124096,
1.9: 0.52892412654495,
2.0: 0.47724986805182,
2.1: 0.42074060762631,
2.2: 0.35989164330376,
2.3: 0.29505515613991,
2.4: 0.22662735261643,
2.5: 0.15597429781556,
2.6: 0.08434363882874,
2.7: 0.01390377072986,
2.8: 0.00176703586613,
2.9: 0.00023288832156,
3.0: 0.00003167155677
}
# Flat arrays of the keys and values from the dictionary.
zscore, prob_values = np.array(tuple(distribution.items())).T
zscore_index = pd.Index(name='zscore', data=zscore)
prob = pd.Series(name='prob', index=zscore_index, data=prob_values)
return zscore, prob
def make_inputs(zscore: np.ndarray, prob: pd.Series) -> tuple[
pd.DataFrame, # demand_0
pd.DataFrame, # select_zscore
pd.Series, # coef
]:
idx = pd.RangeIndex(name='id', start=1, stop=6)
demand_0 = pd.DataFrame(
data={
'age': (0.805262, 0.775366, 1.313498, 0.919934, 0.904917),
'maritime': (True, False, False, True, False),
'express': (False, False, True, False, False),
'air': (False, True, False, False, True),
'percent_quotestage_1': (
0.728624, 0.987425, 1.083067, 0.353984, 0.529083),
},
index=idx,
)
# Select the zscore and its probability for every demand row based on a
# binary selection variable. By this method, the distribution can be
# arbitrary: non-linear and non-monotonic, so long as it's real. The
# resulting frame is an ndemand by nzscore-values matrix.
select_zscore = pd.DataFrame(
pulp.LpVariable.matrix(name='zsel', cat=pulp.LpBinary, indices=(idx, zscore)),
index=idx, columns=prob.index,
)
coef = pd.Series(
name='coef', index=(*demand_0.columns, 'price'),
data=(0.569396, -0.913858, -0.165595, 0.030166, 1.687747, -0.000523),
)
return demand_0, select_zscore, coef
def make_vars(
demand_0: pd.DataFrame,
zscore: np.ndarray,
prob: pd.Series,
select_zscore: pd.DataFrame,
coef: pd.Series,
) -> pd.DataFrame:
lp_vars = pd.DataFrame(
data={
# In the zscore expression, the first five terms are merged to one constant
# per demand row.
'fixed_factors': (demand_0 @ coef[demand_0.columns]).astype(float),
# zscore is modelled as an affine expression calculated here as the matrix
# product of all zscore selection variables and the zscore values vector.
'zscore': select_zscore @ zscore,
# Probability is the matrix product of the zscore selection variables and
# the distribution probabilities. No zscore selection implies a zscore <
# -3.4 and a probability of 0.
'prob': select_zscore @ prob,
# To get a binary value indicating whether the demand row is assigned, sum
# all of its zscore selection variables.
'assign': select_zscore.apply(pulp.lpSum, axis=1),
# Expected price is a free variable, later constrained based on assignment.
'expected_price': pulp.LpVariable.matrix(
name='expected_price', cat=pulp.LpContinuous, indices=demand_0.index,
),
},
index=demand_0.index,
)
# The last term of zscore is based on a decision variable. To extract an
# expression for the price, we calculate:
# zscore = coef[:-1]@demand_0 + coef[-1]*price
# price = (zscore - coef[:-1]@demand_0)/coef[-1]
lp_vars['price'] = (
lp_vars['zscore'] - lp_vars['fixed_factors']
) / coef['price']
return lp_vars
def bound_expected_price(
lp_vars: pd.DataFrame,
zscore: np.ndarray,
prob: pd.Series,
coef: pd.Series,
) -> pd.DataFrame:
"""
expected price <= price * prob
but price and prob are all affine expressions based on the zscore selection
decision variable.
price = (zsel@zscore - demand0@coef)/coef_price
eprice <= (zsel@zscore - demand0@coef)/coef_price * zsel@prob
<= zsel@( (zscore - demand0@coef)/coef_price * prob)
<= zsel@expected_price_bound
expected_price_bound is an ndemands x nzscores constant matrix of bounds
that, when selected, are the upper bound for the expected price.
"""
return pd.DataFrame(
data=(
zscore - lp_vars['fixed_factors'].values[:, np.newaxis]
) / coef['price'] * prob.values,
index=lp_vars.index, columns=zscore,
)
def make_problem(expected_price: pd.Series) -> pulp.LpProblem:
m = pulp.LpProblem(name='Optimize_Logistics_Prices', sense=pulp.LpMaximize)
m.objective = expected_price.sum()
return m
def add_constraints(
m: pulp.LpProblem,
lp_vars: pd.DataFrame,
select_zscore: pd.DataFrame,
expected_price_bound: pd.DataFrame,
cost: float = 117.00,
M: float = 10e6,
) -> None:
for demand_id, row in lp_vars.iterrows():
# The lower price constraint is only enforced if the demand row is
# assigned
m.addConstraint(
name=f'price_{demand_id}',
constraint=row['price'] >= cost - M*(1 - row['assign']),
)
# If the demand row is assigned, there is an upper bound on the
# expected_price of price * prob.
# If the demand row is not assigned, there is an upper bound of 0.
# No lower bound needs to be set because the expected price is a
# maximization objective.
m.addConstraint(
name=f'expprice_{demand_id}',
constraint=row['expected_price'] <= pulp.lpDot(
select_zscore.loc[demand_id, :],
expected_price_bound.loc[demand_id, :],
),
)
for i, row in select_zscore.iterrows():
# There must be at most one zscore selected per demand row.
m.addConstraint(
name=f'excl_{i}',
constraint=pulp.lpSum(row) <= 1,
)
def solve(m: pulp.LpProblem, lp_vars: pd.DataFrame) -> None:
m.solve()
if m.status != pulp.LpStatusOptimal:
raise ValueError(m.status)
affine_cols = ['price', 'zscore', 'prob', 'assign']
lp_vars[affine_cols] = lp_vars[affine_cols].map(pulp.LpAffineExpression.value)
lp_vars['expected_price'] = lp_vars['expected_price'].apply(pulp.LpVariable.value)
def main() -> None:
zscore, prob = make_distribution()
demand_0, select_zscore, coef = make_inputs(zscore, prob)
lp_vars = make_vars(demand_0, zscore, prob, select_zscore, coef)
expected_price = bound_expected_price(lp_vars, zscore, prob, coef)
m = make_problem(lp_vars['expected_price'])
add_constraints(m, lp_vars, select_zscore, expected_price, M=100e3, cost=6_500)
print(m)
solve(m, lp_vars)
pd.options.display.max_columns = None
pd.options.display.width = 200
print(lp_vars)
if __name__ == '__main__':
main()
Optimize_Logistics_Prices:
MAXIMIZE
1*expected_price_1 + 1*expected_price_2 + 1*expected_price_3 + 1*expected_price_4 + 1*expected_price_5 + 0
SUBJECT TO
price_1: - 100000 zsel_1_0.0 - 100191.204589 zsel_1_0.1
- 100382.409178 zsel_1_0.2 - 100573.613767 zsel_1_0.3
- 100764.818356 zsel_1_0.4 - 100956.022945 zsel_1_0.5
- 101147.227533 zsel_1_0.6 - 101338.432122 zsel_1_0.7
- 101529.636711 zsel_1_0.8 - 101720.8413 zsel_1_0.9
- 101912.045889 zsel_1_1.0 - 102103.250478 zsel_1_1.1
- 102294.455067 zsel_1_1.2 - 102485.659656 zsel_1_1.3
- 102676.864245 zsel_1_1.4 - 102868.068834 zsel_1_1.5
- 103059.273423 zsel_1_1.6 - 103250.478011 zsel_1_1.7
- 103441.6826 zsel_1_1.8 - 103632.887189 zsel_1_1.9
- 103824.091778 zsel_1_2.0 - 104015.296367 zsel_1_2.1
- 104206.500956 zsel_1_2.2 - 104397.705545 zsel_1_2.3
- 104588.910134 zsel_1_2.4 - 104780.114723 zsel_1_2.5
- 104971.319312 zsel_1_2.6 - 105162.523901 zsel_1_2.7
- 105353.728489 zsel_1_2.8 - 105544.933078 zsel_1_2.9
- 105736.137667 zsel_1_3.0 - 99808.7954111 zsel_1__0.1
- 99617.5908222 zsel_1__0.2 - 99426.3862333 zsel_1__0.3
- 99235.1816444 zsel_1__0.4 - 99043.9770554 zsel_1__0.5
- 98852.7724665 zsel_1__0.6 - 98661.5678776 zsel_1__0.7
- 98470.3632887 zsel_1__0.8 - 98279.1586998 zsel_1__0.9
- 98087.9541109 zsel_1__1.0 - 97896.749522 zsel_1__1.1
- 97705.5449331 zsel_1__1.2 - 97514.3403442 zsel_1__1.3
- 97323.1357553 zsel_1__1.4 - 97131.9311663 zsel_1__1.5
- 96940.7265774 zsel_1__1.6 - 96749.5219885 zsel_1__1.7
- 96558.3173996 zsel_1__1.8 - 96367.1128107 zsel_1__1.9
- 96175.9082218 zsel_1__2.0 - 95984.7036329 zsel_1__2.1
- 95793.499044 zsel_1__2.2 - 95602.2944551 zsel_1__2.3
- 95411.0898662 zsel_1__2.4 - 95219.8852772 zsel_1__2.5
- 95028.6806883 zsel_1__2.6 - 94837.4760994 zsel_1__2.7
- 94646.2715105 zsel_1__2.8 - 94455.0669216 zsel_1__2.9
- 94263.8623327 zsel_1__3.0 >= -94980.6652617
expprice_1: expected_price_1 - 740.33263086 zsel_1_0.0
- 1252.43179827 zsel_1_0.1 - 1058.79539234 zsel_1_0.2
- 866.62832537 zsel_1_0.3 - 676.619002662 zsel_1_0.4
- 489.592432293 zsel_1_0.5 - 306.510411263 zsel_1_0.6
- 128.464902537 zsel_1_0.7 + 43.3363210091 zsel_1_0.8
+ 207.592301397 zsel_1_0.9 + 362.939824403 zsel_1_1.0
+ 507.919480432 zsel_1_1.1 + 641.059511856 zsel_1_1.2
+ 761.771383844 zsel_1_1.3 + 869.075231754 zsel_1_1.4
+ 961.674846435 zsel_1_1.5 + 1037.61945803 zsel_1_1.6
+ 1094.45053931 zsel_1_1.7 + 1129.16619927 zsel_1_1.8
+ 1138.36210317 zsel_1_1.9 + 1118.39999578 zsel_1_2.0
+ 1066.42223139 zsel_1_2.1 + 981.005487398 zsel_1_2.2
+ 860.68777623 zsel_1_2.3 + 704.413306653 zsel_1_2.4
+ 514.629312862 zsel_1_2.5 + 294.414464464 zsel_1_2.6
+ 51.1917183744 zsel_1_2.7 + 6.84384163525 zsel_1_2.8
+ 0.946520510195 zsel_1_2.9 + 0.134777435877 zsel_1_3.0
- 48.0103505714 zsel_1__0.1 - 66.9408591439 zsel_1__0.2
- 91.5498955382 zsel_1__0.3 - 123.050911754 zsel_1__0.4
- 162.788319426 zsel_1__0.5 - 212.219842963 zsel_1__0.6
- 272.889992874 zsel_1__0.7 - 346.394455301 zsel_1__0.8
- 434.335784349 zsel_1__0.9 - 538.271449148 zsel_1__1.0
- 94.9136565468 zsel_1__1.1 - 99.4938882734 zsel_1__1.2
- 102.124879586 zsel_1__1.3 - 102.617573772 zsel_1__1.4
- 100.930729613 zsel_1__1.5 - 97.0912428108 zsel_1__1.6
- 91.1963725982 zsel_1__1.7 - 83.4211191671 zsel_1__1.8
- 73.6220991902 zsel_1__1.9 - 120.683922611 zsel_1__2.0
- 45.6626074009 zsel_1__2.1 - 43.1598767674 zsel_1__2.2
- 39.8298673654 zsel_1__2.3 - 35.8029086265 zsel_1__2.4
- 31.2882639134 zsel_1__2.5 - 26.5541513552 zsel_1__2.6
- 21.8523180419 zsel_1__2.7 - 17.4627667621 zsel_1__2.8
- 13.4309992498 zsel_1__2.9 - 9.74194806855 zsel_1__3.0 <= 0
price_2: - 100000 zsel_2_0.0 - 100191.204589 zsel_2_0.1
- 100382.409178 zsel_2_0.2 - 100573.613767 zsel_2_0.3
- 100764.818356 zsel_2_0.4 - 100956.022945 zsel_2_0.5
- 101147.227533 zsel_2_0.6 - 101338.432122 zsel_2_0.7
- 101529.636711 zsel_2_0.8 - 101720.8413 zsel_2_0.9
- 101912.045889 zsel_2_1.0 - 102103.250478 zsel_2_1.1
- 102294.455067 zsel_2_1.2 - 102485.659656 zsel_2_1.3
- 102676.864245 zsel_2_1.4 - 102868.068834 zsel_2_1.5
- 103059.273423 zsel_2_1.6 - 103250.478011 zsel_2_1.7
- 103441.6826 zsel_2_1.8 - 103632.887189 zsel_2_1.9
- 103824.091778 zsel_2_2.0 - 104015.296367 zsel_2_2.1
- 104206.500956 zsel_2_2.2 - 104397.705545 zsel_2_2.3
- 104588.910134 zsel_2_2.4 - 104780.114723 zsel_2_2.5
- 104971.319312 zsel_2_2.6 - 105162.523901 zsel_2_2.7
- 105353.728489 zsel_2_2.8 - 105544.933078 zsel_2_2.9
- 105736.137667 zsel_2_3.0 - 99808.7954111 zsel_2__0.1
- 99617.5908222 zsel_2__0.2 - 99426.3862333 zsel_2__0.3
- 99235.1816444 zsel_2__0.4 - 99043.9770554 zsel_2__0.5
- 98852.7724665 zsel_2__0.6 - 98661.5678776 zsel_2__0.7
- 98470.3632887 zsel_2__0.8 - 98279.1586998 zsel_2__0.9
- 98087.9541109 zsel_2__1.0 - 97896.749522 zsel_2__1.1
- 97705.5449331 zsel_2__1.2 - 97514.3403442 zsel_2__1.3
- 97323.1357553 zsel_2__1.4 - 97131.9311663 zsel_2__1.5
- 96940.7265774 zsel_2__1.6 - 96749.5219885 zsel_2__1.7
- 96558.3173996 zsel_2__1.8 - 96367.1128107 zsel_2__1.9
- 96175.9082218 zsel_2__2.0 - 95984.7036329 zsel_2__2.1
- 95793.499044 zsel_2__2.2 - 95602.2944551 zsel_2__2.3
- 95411.0898662 zsel_2__2.4 - 95219.8852772 zsel_2__2.5
- 95028.6806883 zsel_2__2.6 - 94837.4760994 zsel_2__2.7
- 94646.2715105 zsel_2__2.8 - 94455.0669216 zsel_2__2.9
- 94263.8623327 zsel_2__3.0 >= -97588.2980505
expprice_2: expected_price_2 - 2044.14902525 zsel_2_0.0
- 3785.18234409 zsel_2_0.1 - 3572.73510289 zsel_2_0.2
- 3358.05075221 zsel_2_0.3 - 3141.3553616 zsel_2_0.4
- 2923.01657252 zsel_2_0.5 - 2703.55948751 zsel_2_0.6
- 2483.67757374 zsel_2_0.7 - 2264.23702271 zsel_2_0.8
- 2046.27321853 zsel_2_0.9 - 1830.97832211 zsel_2_1.0
- 1619.44791696 zsel_2_1.1 - 1413.09229982 zsel_2_1.2
- 1214.77699265 zsel_2_1.3 - 1025.44992869 zsel_2_1.4
- 845.79841689 zsel_2_1.5 - 676.378092563 zsel_2_1.6
- 518.107123869 zsel_2_1.7 - 372.325270055 zsel_2_1.8
- 240.877791983 zsel_2_1.9 - 126.092408592 zsel_2_2.0
- 30.7147726257 zsel_2_2.1 + 42.5402379123 zsel_2_2.2
+ 91.2922765811 zsel_2_2.3 + 113.452391136 zsel_2_2.4
+ 107.905619672 zsel_2_2.5 + 74.4772263298 zsel_2_2.6
+ 14.9357899315 zsel_2_2.7 + 2.23606097178 zsel_2_2.8
+ 0.339233286772 zsel_2_2.9 + 0.0521896459715 zsel_2_3.0
- 122.89259353 zsel_2__0.1 - 160.633937374 zsel_2__0.2
- 207.760257475 zsel_2__0.3 - 265.947341592 zsel_2__0.4
- 336.996967981 zsel_2__0.5 - 422.803555494 zsel_2__0.6
- 525.310110449 zsel_2__0.7 - 646.453900365 zsel_2__0.8
- 788.103053197 zsel_2__0.9 - 951.986091411 zsel_2__1.0
- 163.972189416 zsel_2__1.1 - 168.218459349 zsel_2__1.2
- 169.266172872 zsel_2__1.3 - 166.980063481 zsel_2__1.4
- 161.451854648 zsel_2__1.5 - 152.858143173 zsel_2__1.6
- 141.460471078 zsel_2__1.7 - 127.613779197 zsel_2__1.8
- 111.165353448 zsel_2__1.9 - 180.007912629 zsel_2__2.0
- 67.3278445915 zsel_2__2.1 - 62.9491893195 zsel_2__2.2
- 57.4983118257 zsel_2__2.3 - 51.1846828666 zsel_2__2.4
- 44.3199154148 zsel_2__2.5 - 37.2862718314 zsel_2__2.6
- 30.4299484005 zsel_2__2.7 - 24.1256083907 zsel_2__2.8
- 18.4160713154 zsel_2__2.9 - 13.2619864373 zsel_2__3.0 <= 0
price_3: - 100000 zsel_3_0.0 - 100191.204589 zsel_3_0.1
- 100382.409178 zsel_3_0.2 - 100573.613767 zsel_3_0.3
- 100764.818356 zsel_3_0.4 - 100956.022945 zsel_3_0.5
- 101147.227533 zsel_3_0.6 - 101338.432122 zsel_3_0.7
- 101529.636711 zsel_3_0.8 - 101720.8413 zsel_3_0.9
- 101912.045889 zsel_3_1.0 - 102103.250478 zsel_3_1.1
- 102294.455067 zsel_3_1.2 - 102485.659656 zsel_3_1.3
- 102676.864245 zsel_3_1.4 - 102868.068834 zsel_3_1.5
- 103059.273423 zsel_3_1.6 - 103250.478011 zsel_3_1.7
- 103441.6826 zsel_3_1.8 - 103632.887189 zsel_3_1.9
- 103824.091778 zsel_3_2.0 - 104015.296367 zsel_3_2.1
- 104206.500956 zsel_3_2.2 - 104397.705545 zsel_3_2.3
- 104588.910134 zsel_3_2.4 - 104780.114723 zsel_3_2.5
- 104971.319312 zsel_3_2.6 - 105162.523901 zsel_3_2.7
- 105353.728489 zsel_3_2.8 - 105544.933078 zsel_3_2.9
- 105736.137667 zsel_3_3.0 - 99808.7954111 zsel_3__0.1
- 99617.5908222 zsel_3__0.2 - 99426.3862333 zsel_3__0.3
- 99235.1816444 zsel_3__0.4 - 99043.9770554 zsel_3__0.5
- 98852.7724665 zsel_3__0.6 - 98661.5678776 zsel_3__0.7
- 98470.3632887 zsel_3__0.8 - 98279.1586998 zsel_3__0.9
- 98087.9541109 zsel_3__1.0 - 97896.749522 zsel_3__1.1
- 97705.5449331 zsel_3__1.2 - 97514.3403442 zsel_3__1.3
- 97323.1357553 zsel_3__1.4 - 97131.9311663 zsel_3__1.5
- 96940.7265774 zsel_3__1.6 - 96749.5219885 zsel_3__1.7
- 96558.3173996 zsel_3__1.8 - 96367.1128107 zsel_3__1.9
- 96175.9082218 zsel_3__2.0 - 95984.7036329 zsel_3__2.1
- 95793.499044 zsel_3__2.2 - 95602.2944551 zsel_3__2.3
- 95411.0898662 zsel_3__2.4 - 95219.8852772 zsel_3__2.5
- 95028.6806883 zsel_3__2.6 - 94837.4760994 zsel_3__2.7
- 94646.2715105 zsel_3__2.8 - 94455.0669216 zsel_3__2.9
- 94263.8623327 zsel_3__3.0 >= -98108.505903
expprice_3: expected_price_3 - 2304.25295149 zsel_3_0.0
- 4290.45161665 zsel_3_0.1 - 4074.25172122 zsel_3_0.2
- 3855.07530101 zsel_3_0.3 - 3633.05619223 zsel_3_0.4
- 3408.47079429 zsel_3_0.5 - 3181.75709172 zsel_3_0.6
- 2953.52905401 zsel_3_0.7 - 2724.58472915 zsel_3_0.8
- 2495.90652079 zsel_3_0.9 - 2268.65246566 zsel_3_1.0
- 2043.84556604 zsel_3_1.1 - 1822.88385759 zsel_3_1.2
- 1609.0871082 zsel_3_1.3 - 1403.39688097 zsel_3_1.4
- 1206.37901274 zsel_3_1.5 - 1018.31081744 zsel_3_1.6
- 839.803170403 zsel_3_1.7 - 671.864245073 zsel_3_1.8
- 516.028275976 zsel_3_1.9 - 374.361537547 zsel_3_2.0
- 249.587340569 zsel_3_2.1 - 144.678220976 zsel_3_2.2
- 62.197732557 zsel_3_2.3 - 4.44093728129 zsel_3_2.4
+ 26.7665651636 zsel_3_2.5 + 30.6010031045 zsel_3_2.6
+ 7.7029392188 zsel_3_2.7 + 1.31683503861 zsel_3_2.8
+ 0.218082953146 zsel_3_2.9 + 0.0357138534395 zsel_3_3.0
- 137.831173443 zsel_3__0.1 - 179.325171519 zsel_3__0.2
- 230.943561151 zsel_3__0.3 - 294.454363444 zsel_3__0.4
- 371.750598683 zsel_3__0.5 - 464.813803767 zsel_3__0.6
- 575.666482654 zsel_3__0.7 - 706.314046396 zsel_3__0.8
- 858.677603416 zsel_3__0.9 - 1034.51980034 zsel_3__1.0
- 177.748972418 zsel_3__1.1 - 181.92861888 zsel_3__1.2
- 182.660477524 zsel_3__1.3 - 179.820012685 zsel_3__1.4
- 173.525473534 zsel_3__1.5 - 163.983321381 zsel_3__1.6
- 151.48787173 zsel_3__1.7 - 136.429962544 zsel_3__1.8
- 118.65501831 zsel_3__1.9 - 191.842709913 zsel_3__2.0
- 71.6499357084 zsel_3__2.1 - 66.897044182 zsel_3__2.2
- 61.0230656134 zsel_3__2.3 - 54.2532590017 zsel_3__2.4
- 46.9196554821 zsel_3__2.5 - 39.4272685889 zsel_3__2.6
- 32.1411366811 zsel_3__2.7 - 25.4548072525 zsel_3__2.8
- 19.4105647291 zsel_3__2.9 - 13.9642139934 zsel_3__3.0 <= 0
price_4: - 100000 zsel_4_0.0 - 100191.204589 zsel_4_0.1
- 100382.409178 zsel_4_0.2 - 100573.613767 zsel_4_0.3
- 100764.818356 zsel_4_0.4 - 100956.022945 zsel_4_0.5
- 101147.227533 zsel_4_0.6 - 101338.432122 zsel_4_0.7
- 101529.636711 zsel_4_0.8 - 101720.8413 zsel_4_0.9
- 101912.045889 zsel_4_1.0 - 102103.250478 zsel_4_1.1
- 102294.455067 zsel_4_1.2 - 102485.659656 zsel_4_1.3
- 102676.864245 zsel_4_1.4 - 102868.068834 zsel_4_1.5
- 103059.273423 zsel_4_1.6 - 103250.478011 zsel_4_1.7
- 103441.6826 zsel_4_1.8 - 103632.887189 zsel_4_1.9
- 103824.091778 zsel_4_2.0 - 104015.296367 zsel_4_2.1
- 104206.500956 zsel_4_2.2 - 104397.705545 zsel_4_2.3
- 104588.910134 zsel_4_2.4 - 104780.114723 zsel_4_2.5
- 104971.319312 zsel_4_2.6 - 105162.523901 zsel_4_2.7
- 105353.728489 zsel_4_2.8 - 105544.933078 zsel_4_2.9
- 105736.137667 zsel_4_3.0 - 99808.7954111 zsel_4__0.1
- 99617.5908222 zsel_4__0.2 - 99426.3862333 zsel_4__0.3
- 99235.1816444 zsel_4__0.4 - 99043.9770554 zsel_4__0.5
- 98852.7724665 zsel_4__0.6 - 98661.5678776 zsel_4__0.7
- 98470.3632887 zsel_4__0.8 - 98279.1586998 zsel_4__0.9
- 98087.9541109 zsel_4__1.0 - 97896.749522 zsel_4__1.1
- 97705.5449331 zsel_4__1.2 - 97514.3403442 zsel_4__1.3
- 97323.1357553 zsel_4__1.4 - 97131.9311663 zsel_4__1.5
- 96940.7265774 zsel_4__1.6 - 96749.5219885 zsel_4__1.7
- 96558.3173996 zsel_4__1.8 - 96367.1128107 zsel_4__1.9
- 96175.9082218 zsel_4__2.0 - 95984.7036329 zsel_4__2.1
- 95793.499044 zsel_4__2.2 - 95602.2944551 zsel_4__2.3
- 95411.0898662 zsel_4__2.4 - 95219.8852772 zsel_4__2.5
- 95028.6806883 zsel_4__2.6 - 94837.4760994 zsel_4__2.7
- 94646.2715105 zsel_4__2.8 - 94455.0669216 zsel_4__2.9
- 94263.8623327 zsel_4__3.0 >= -93896.5280572
expprice_4: expected_price_4 - 198.264028597 zsel_4_0.0
- 199.427284624 zsel_4_0.1 - 13.6115835315 zsel_4_0.2
+ 169.193802944 zsel_4_0.3 + 348.108250953 zsel_4_0.4
+ 522.116599809 zsel_4_0.5 + 690.075494476 zsel_4_0.6
+ 850.727295235 zsel_4_0.7 + 1002.72221494 zsel_4_0.8
+ 1144.64888186 zsel_4_0.9 + 1275.07296545 zsel_4_1.0
+ 1392.38379348 zsel_4_1.1 + 1495.08405564 zsel_4_1.2
+ 1583.5318866 zsel_4_1.3 + 1656.73414607 zsel_4_1.4
+ 1713.14147141 zsel_4_1.5 + 1750.22305814 zsel_4_1.6
+ 1764.87996658 zsel_4_1.7 + 1753.41926558 zsel_4_1.8
+ 1711.78842713 zsel_4_1.9 + 1635.80433359 zsel_4_2.0
+ 1522.56277757 zsel_4_2.1 + 1371.1774075 zsel_4_2.2
+ 1180.56804839 zsel_4_2.3 + 950.108451188 zsel_4_2.4
+ 683.726852074 zsel_4_2.5 + 385.854541284 zsel_4_2.6
+ 66.2653135058 zsel_4_2.7 + 8.75955095945 zsel_4_2.8
+ 1.1990034041 zsel_4_2.9 + 0.169113748896 zsel_4_3.0
- 16.877659688 zsel_4__0.1 - 27.987463423 zsel_4__0.2
- 43.2348193246 zsel_4__0.3 - 63.6409608411 zsel_4__0.4
- 90.3601469999 zsel_4__0.5 - 124.668544175 zsel_4__0.6
- 167.944986119 zsel_4__0.7 - 221.643144701 zsel_4__0.8
- 287.255160285 zsel_4__0.9 - 366.267385668 zsel_4__1.0
- 66.2022041152 zsel_4__1.1 - 70.9212822344 zsel_4__1.2
- 74.2105297108 zsel_4__1.3 - 75.8585262675 zsel_4__1.4
- 75.7687499069 zsel_4__1.5 - 73.9058573056 zsel_4__1.6
- 70.2988062506 zsel_4__1.7 - 65.0477856551 zsel_4__1.8
- 58.0132915028 zsel_4__1.9 - 96.0196581584 zsel_4__2.0
- 36.6551697799 zsel_4__2.1 - 34.9323647949 zsel_4__2.2
- 32.4841175849 zsel_4__2.3 - 29.4078541552 zsel_4__2.4
- 25.8702854734 zsel_4__2.5 - 22.0922151724 zsel_4__2.6
- 18.2861225873 zsel_4__2.7 - 14.6926549087 zsel_4__2.8
- 11.3584290179 zsel_4__2.9 - 8.27847339014 zsel_4__3.0 <= 0
price_5: - 100000 zsel_5_0.0 - 100191.204589 zsel_5_0.1
- 100382.409178 zsel_5_0.2 - 100573.613767 zsel_5_0.3
- 100764.818356 zsel_5_0.4 - 100956.022945 zsel_5_0.5
- 101147.227533 zsel_5_0.6 - 101338.432122 zsel_5_0.7
- 101529.636711 zsel_5_0.8 - 101720.8413 zsel_5_0.9
- 101912.045889 zsel_5_1.0 - 102103.250478 zsel_5_1.1
- 102294.455067 zsel_5_1.2 - 102485.659656 zsel_5_1.3
- 102676.864245 zsel_5_1.4 - 102868.068834 zsel_5_1.5
- 103059.273423 zsel_5_1.6 - 103250.478011 zsel_5_1.7
- 103441.6826 zsel_5_1.8 - 103632.887189 zsel_5_1.9
- 103824.091778 zsel_5_2.0 - 104015.296367 zsel_5_2.1
- 104206.500956 zsel_5_2.2 - 104397.705545 zsel_5_2.3
- 104588.910134 zsel_5_2.4 - 104780.114723 zsel_5_2.5
- 104971.319312 zsel_5_2.6 - 105162.523901 zsel_5_2.7
- 105353.728489 zsel_5_2.8 - 105544.933078 zsel_5_2.9
- 105736.137667 zsel_5_3.0 - 99808.7954111 zsel_5__0.1
- 99617.5908222 zsel_5__0.2 - 99426.3862333 zsel_5__0.3
- 99235.1816444 zsel_5__0.4 - 99043.9770554 zsel_5__0.5
- 98852.7724665 zsel_5__0.6 - 98661.5678776 zsel_5__0.7
- 98470.3632887 zsel_5__0.8 - 98279.1586998 zsel_5__0.9
- 98087.9541109 zsel_5__1.0 - 97896.749522 zsel_5__1.1
- 97705.5449331 zsel_5__1.2 - 97514.3403442 zsel_5__1.3
- 97323.1357553 zsel_5__1.4 - 97131.9311663 zsel_5__1.5
- 96940.7265774 zsel_5__1.6 - 96749.5219885 zsel_5__1.7
- 96558.3173996 zsel_5__1.8 - 96367.1128107 zsel_5__1.9
- 96175.9082218 zsel_5__2.0 - 95984.7036329 zsel_5__2.1
- 95793.499044 zsel_5__2.2 - 95602.2944551 zsel_5__2.3
- 95411.0898662 zsel_5__2.4 - 95219.8852772 zsel_5__2.5
- 95028.6806883 zsel_5__2.6 - 94837.4760994 zsel_5__2.7
- 94646.2715105 zsel_5__2.8 - 94455.0669216 zsel_5__2.9
- 94263.8623327 zsel_5__3.0 >= -96250.249266
expprice_5: expected_price_5 - 1375.12463301 zsel_5_0.0
- 2485.55771757 zsel_5_0.1 - 2282.76283823 zsel_5_0.2
- 2079.63273102 zsel_5_0.3 - 1876.63070278 zsel_5_0.4
- 1674.3590825 zsel_5_0.5 - 1473.56705277 zsel_5_0.6
- 1275.15256001 zsel_5_0.7 - 1080.1570706 zsel_5_0.8
- 889.752242005 zsel_5_0.9 - 705.218007315 zsel_5_1.0
- 527.836639308 zsel_5_1.1 - 359.049972019 zsel_5_1.2
- 200.55514209 zsel_5_1.3 - 53.3164676507 zsel_5_1.4
+ 81.6662987565 zsel_5_1.5 + 203.121639538 zsel_5_1.6
+ 309.340985541 zsel_5_1.7 + 398.131691552 zsel_5_1.8
+ 466.848492618 zsel_5_1.9 + 512.491197243 zsel_5_2.0
+ 532.256685986 zsel_5_2.1 + 524.092813776 zsel_5_2.2
+ 486.090469606 zsel_5_2.3 + 416.690844832 zsel_5_2.4
+ 316.606839273 zsel_5_2.5 + 187.333129742 zsel_5_2.6
+ 33.5397134562 zsel_5_2.7 + 4.60044116457 zsel_5_2.8
+ 0.650849222353 zsel_5_2.9 + 0.0945677340099 zsel_5_3.0
- 84.4684355734 zsel_5__0.1 - 112.557417559 zsel_5__0.2
- 148.129494201 zsel_5__0.3 - 192.623215944 zsel_5__0.4
- 247.60567353 zsel_5__0.5 - 314.747205768 zsel_5__0.6
- 395.786339713 zsel_5__0.7 - 492.485067996 zsel_5__0.8
- 606.575245254 zsel_5__0.9 - 739.697621738 zsel_5__1.0
- 128.536338801 zsel_5__1.1 - 132.953973802 zsel_5__1.2
- 134.814111119 zsel_5__1.3 - 133.953882996 zsel_5__1.4
- 130.396785032 zsel_5__1.5 - 124.242598237 zsel_5__1.6
- 115.668566572 zsel_5__1.7 - 104.937298333 zsel_5__1.8
- 91.9008673051 zsel_5__1.9 - 149.567126229 zsel_5__2.0
- 56.2108098568 zsel_5__2.1 - 52.7947436016 zsel_5__2.2
- 48.4321424113 zsel_5__2.3 - 43.2918674313 zsel_5__2.4
- 37.6330132075 zsel_5__2.5 - 31.7793228393 zsel_5__2.6
- 26.0285281068 zsel_5__2.7 - 20.7067193582 zsel_5__2.8
- 15.8580924287 zsel_5__2.9 - 11.455757017 zsel_5__3.0 <= 0
excl_1: zsel_1_0.0 + zsel_1_0.1 + zsel_1_0.2 + zsel_1_0.3 + zsel_1_0.4
+ zsel_1_0.5 + zsel_1_0.6 + zsel_1_0.7 + zsel_1_0.8 + zsel_1_0.9 + zsel_1_1.0
+ zsel_1_1.1 + zsel_1_1.2 + zsel_1_1.3 + zsel_1_1.4 + zsel_1_1.5 + zsel_1_1.6
+ zsel_1_1.7 + zsel_1_1.8 + zsel_1_1.9 + zsel_1_2.0 + zsel_1_2.1 + zsel_1_2.2
+ zsel_1_2.3 + zsel_1_2.4 + zsel_1_2.5 + zsel_1_2.6 + zsel_1_2.7 + zsel_1_2.8
+ zsel_1_2.9 + zsel_1_3.0 + zsel_1__0.1 + zsel_1__0.2 + zsel_1__0.3
+ zsel_1__0.4 + zsel_1__0.5 + zsel_1__0.6 + zsel_1__0.7 + zsel_1__0.8
+ zsel_1__0.9 + zsel_1__1.0 + zsel_1__1.1 + zsel_1__1.2 + zsel_1__1.3
+ zsel_1__1.4 + zsel_1__1.5 + zsel_1__1.6 + zsel_1__1.7 + zsel_1__1.8
+ zsel_1__1.9 + zsel_1__2.0 + zsel_1__2.1 + zsel_1__2.2 + zsel_1__2.3
+ zsel_1__2.4 + zsel_1__2.5 + zsel_1__2.6 + zsel_1__2.7 + zsel_1__2.8
+ zsel_1__2.9 + zsel_1__3.0 <= 1
excl_2: zsel_2_0.0 + zsel_2_0.1 + zsel_2_0.2 + zsel_2_0.3 + zsel_2_0.4
+ zsel_2_0.5 + zsel_2_0.6 + zsel_2_0.7 + zsel_2_0.8 + zsel_2_0.9 + zsel_2_1.0
+ zsel_2_1.1 + zsel_2_1.2 + zsel_2_1.3 + zsel_2_1.4 + zsel_2_1.5 + zsel_2_1.6
+ zsel_2_1.7 + zsel_2_1.8 + zsel_2_1.9 + zsel_2_2.0 + zsel_2_2.1 + zsel_2_2.2
+ zsel_2_2.3 + zsel_2_2.4 + zsel_2_2.5 + zsel_2_2.6 + zsel_2_2.7 + zsel_2_2.8
+ zsel_2_2.9 + zsel_2_3.0 + zsel_2__0.1 + zsel_2__0.2 + zsel_2__0.3
+ zsel_2__0.4 + zsel_2__0.5 + zsel_2__0.6 + zsel_2__0.7 + zsel_2__0.8
+ zsel_2__0.9 + zsel_2__1.0 + zsel_2__1.1 + zsel_2__1.2 + zsel_2__1.3
+ zsel_2__1.4 + zsel_2__1.5 + zsel_2__1.6 + zsel_2__1.7 + zsel_2__1.8
+ zsel_2__1.9 + zsel_2__2.0 + zsel_2__2.1 + zsel_2__2.2 + zsel_2__2.3
+ zsel_2__2.4 + zsel_2__2.5 + zsel_2__2.6 + zsel_2__2.7 + zsel_2__2.8
+ zsel_2__2.9 + zsel_2__3.0 <= 1
excl_3: zsel_3_0.0 + zsel_3_0.1 + zsel_3_0.2 + zsel_3_0.3 + zsel_3_0.4
+ zsel_3_0.5 + zsel_3_0.6 + zsel_3_0.7 + zsel_3_0.8 + zsel_3_0.9 + zsel_3_1.0
+ zsel_3_1.1 + zsel_3_1.2 + zsel_3_1.3 + zsel_3_1.4 + zsel_3_1.5 + zsel_3_1.6
+ zsel_3_1.7 + zsel_3_1.8 + zsel_3_1.9 + zsel_3_2.0 + zsel_3_2.1 + zsel_3_2.2
+ zsel_3_2.3 + zsel_3_2.4 + zsel_3_2.5 + zsel_3_2.6 + zsel_3_2.7 + zsel_3_2.8
+ zsel_3_2.9 + zsel_3_3.0 + zsel_3__0.1 + zsel_3__0.2 + zsel_3__0.3
+ zsel_3__0.4 + zsel_3__0.5 + zsel_3__0.6 + zsel_3__0.7 + zsel_3__0.8
+ zsel_3__0.9 + zsel_3__1.0 + zsel_3__1.1 + zsel_3__1.2 + zsel_3__1.3
+ zsel_3__1.4 + zsel_3__1.5 + zsel_3__1.6 + zsel_3__1.7 + zsel_3__1.8
+ zsel_3__1.9 + zsel_3__2.0 + zsel_3__2.1 + zsel_3__2.2 + zsel_3__2.3
+ zsel_3__2.4 + zsel_3__2.5 + zsel_3__2.6 + zsel_3__2.7 + zsel_3__2.8
+ zsel_3__2.9 + zsel_3__3.0 <= 1
excl_4: zsel_4_0.0 + zsel_4_0.1 + zsel_4_0.2 + zsel_4_0.3 + zsel_4_0.4
+ zsel_4_0.5 + zsel_4_0.6 + zsel_4_0.7 + zsel_4_0.8 + zsel_4_0.9 + zsel_4_1.0
+ zsel_4_1.1 + zsel_4_1.2 + zsel_4_1.3 + zsel_4_1.4 + zsel_4_1.5 + zsel_4_1.6
+ zsel_4_1.7 + zsel_4_1.8 + zsel_4_1.9 + zsel_4_2.0 + zsel_4_2.1 + zsel_4_2.2
+ zsel_4_2.3 + zsel_4_2.4 + zsel_4_2.5 + zsel_4_2.6 + zsel_4_2.7 + zsel_4_2.8
+ zsel_4_2.9 + zsel_4_3.0 + zsel_4__0.1 + zsel_4__0.2 + zsel_4__0.3
+ zsel_4__0.4 + zsel_4__0.5 + zsel_4__0.6 + zsel_4__0.7 + zsel_4__0.8
+ zsel_4__0.9 + zsel_4__1.0 + zsel_4__1.1 + zsel_4__1.2 + zsel_4__1.3
+ zsel_4__1.4 + zsel_4__1.5 + zsel_4__1.6 + zsel_4__1.7 + zsel_4__1.8
+ zsel_4__1.9 + zsel_4__2.0 + zsel_4__2.1 + zsel_4__2.2 + zsel_4__2.3
+ zsel_4__2.4 + zsel_4__2.5 + zsel_4__2.6 + zsel_4__2.7 + zsel_4__2.8
+ zsel_4__2.9 + zsel_4__3.0 <= 1
excl_5: zsel_5_0.0 + zsel_5_0.1 + zsel_5_0.2 + zsel_5_0.3 + zsel_5_0.4
+ zsel_5_0.5 + zsel_5_0.6 + zsel_5_0.7 + zsel_5_0.8 + zsel_5_0.9 + zsel_5_1.0
+ zsel_5_1.1 + zsel_5_1.2 + zsel_5_1.3 + zsel_5_1.4 + zsel_5_1.5 + zsel_5_1.6
+ zsel_5_1.7 + zsel_5_1.8 + zsel_5_1.9 + zsel_5_2.0 + zsel_5_2.1 + zsel_5_2.2
+ zsel_5_2.3 + zsel_5_2.4 + zsel_5_2.5 + zsel_5_2.6 + zsel_5_2.7 + zsel_5_2.8
+ zsel_5_2.9 + zsel_5_3.0 + zsel_5__0.1 + zsel_5__0.2 + zsel_5__0.3
+ zsel_5__0.4 + zsel_5__0.5 + zsel_5__0.6 + zsel_5__0.7 + zsel_5__0.8
+ zsel_5__0.9 + zsel_5__1.0 + zsel_5__1.1 + zsel_5__1.2 + zsel_5__1.3
+ zsel_5__1.4 + zsel_5__1.5 + zsel_5__1.6 + zsel_5__1.7 + zsel_5__1.8
+ zsel_5__1.9 + zsel_5__2.0 + zsel_5__2.1 + zsel_5__2.2 + zsel_5__2.3
+ zsel_5__2.4 + zsel_5__2.5 + zsel_5__2.6 + zsel_5__2.7 + zsel_5__2.8
+ zsel_5__2.9 + zsel_5__3.0 <= 1
VARIABLES
expected_price_1 free Continuous
expected_price_2 free Continuous
expected_price_3 free Continuous
expected_price_4 free Continuous
expected_price_5 free Continuous
0 <= zsel_1_0.0 <= 1 Integer
0 <= zsel_1_0.1 <= 1 Integer
0 <= zsel_1_0.2 <= 1 Integer
0 <= zsel_1_0.3 <= 1 Integer
0 <= zsel_1_0.4 <= 1 Integer
0 <= zsel_1_0.5 <= 1 Integer
0 <= zsel_1_0.6 <= 1 Integer
0 <= zsel_1_0.7 <= 1 Integer
0 <= zsel_1_0.8 <= 1 Integer
0 <= zsel_1_0.9 <= 1 Integer
0 <= zsel_1_1.0 <= 1 Integer
0 <= zsel_1_1.1 <= 1 Integer
0 <= zsel_1_1.2 <= 1 Integer
0 <= zsel_1_1.3 <= 1 Integer
0 <= zsel_1_1.4 <= 1 Integer
0 <= zsel_1_1.5 <= 1 Integer
0 <= zsel_1_1.6 <= 1 Integer
0 <= zsel_1_1.7 <= 1 Integer
0 <= zsel_1_1.8 <= 1 Integer
0 <= zsel_1_1.9 <= 1 Integer
0 <= zsel_1_2.0 <= 1 Integer
0 <= zsel_1_2.1 <= 1 Integer
0 <= zsel_1_2.2 <= 1 Integer
0 <= zsel_1_2.3 <= 1 Integer
0 <= zsel_1_2.4 <= 1 Integer
0 <= zsel_1_2.5 <= 1 Integer
0 <= zsel_1_2.6 <= 1 Integer
0 <= zsel_1_2.7 <= 1 Integer
0 <= zsel_1_2.8 <= 1 Integer
0 <= zsel_1_2.9 <= 1 Integer
0 <= zsel_1_3.0 <= 1 Integer
0 <= zsel_1__0.1 <= 1 Integer
0 <= zsel_1__0.2 <= 1 Integer
0 <= zsel_1__0.3 <= 1 Integer
0 <= zsel_1__0.4 <= 1 Integer
0 <= zsel_1__0.5 <= 1 Integer
0 <= zsel_1__0.6 <= 1 Integer
0 <= zsel_1__0.7 <= 1 Integer
0 <= zsel_1__0.8 <= 1 Integer
0 <= zsel_1__0.9 <= 1 Integer
0 <= zsel_1__1.0 <= 1 Integer
0 <= zsel_1__1.1 <= 1 Integer
0 <= zsel_1__1.2 <= 1 Integer
0 <= zsel_1__1.3 <= 1 Integer
0 <= zsel_1__1.4 <= 1 Integer
0 <= zsel_1__1.5 <= 1 Integer
0 <= zsel_1__1.6 <= 1 Integer
0 <= zsel_1__1.7 <= 1 Integer
0 <= zsel_1__1.8 <= 1 Integer
0 <= zsel_1__1.9 <= 1 Integer
0 <= zsel_1__2.0 <= 1 Integer
0 <= zsel_1__2.1 <= 1 Integer
0 <= zsel_1__2.2 <= 1 Integer
0 <= zsel_1__2.3 <= 1 Integer
0 <= zsel_1__2.4 <= 1 Integer
0 <= zsel_1__2.5 <= 1 Integer
0 <= zsel_1__2.6 <= 1 Integer
0 <= zsel_1__2.7 <= 1 Integer
0 <= zsel_1__2.8 <= 1 Integer
0 <= zsel_1__2.9 <= 1 Integer
0 <= zsel_1__3.0 <= 1 Integer
0 <= zsel_2_0.0 <= 1 Integer
0 <= zsel_2_0.1 <= 1 Integer
0 <= zsel_2_0.2 <= 1 Integer
0 <= zsel_2_0.3 <= 1 Integer
0 <= zsel_2_0.4 <= 1 Integer
0 <= zsel_2_0.5 <= 1 Integer
0 <= zsel_2_0.6 <= 1 Integer
0 <= zsel_2_0.7 <= 1 Integer
0 <= zsel_2_0.8 <= 1 Integer
0 <= zsel_2_0.9 <= 1 Integer
0 <= zsel_2_1.0 <= 1 Integer
0 <= zsel_2_1.1 <= 1 Integer
0 <= zsel_2_1.2 <= 1 Integer
0 <= zsel_2_1.3 <= 1 Integer
0 <= zsel_2_1.4 <= 1 Integer
0 <= zsel_2_1.5 <= 1 Integer
0 <= zsel_2_1.6 <= 1 Integer
0 <= zsel_2_1.7 <= 1 Integer
0 <= zsel_2_1.8 <= 1 Integer
0 <= zsel_2_1.9 <= 1 Integer
0 <= zsel_2_2.0 <= 1 Integer
0 <= zsel_2_2.1 <= 1 Integer
0 <= zsel_2_2.2 <= 1 Integer
0 <= zsel_2_2.3 <= 1 Integer
0 <= zsel_2_2.4 <= 1 Integer
0 <= zsel_2_2.5 <= 1 Integer
0 <= zsel_2_2.6 <= 1 Integer
0 <= zsel_2_2.7 <= 1 Integer
0 <= zsel_2_2.8 <= 1 Integer
0 <= zsel_2_2.9 <= 1 Integer
0 <= zsel_2_3.0 <= 1 Integer
0 <= zsel_2__0.1 <= 1 Integer
0 <= zsel_2__0.2 <= 1 Integer
0 <= zsel_2__0.3 <= 1 Integer
0 <= zsel_2__0.4 <= 1 Integer
0 <= zsel_2__0.5 <= 1 Integer
0 <= zsel_2__0.6 <= 1 Integer
0 <= zsel_2__0.7 <= 1 Integer
0 <= zsel_2__0.8 <= 1 Integer
0 <= zsel_2__0.9 <= 1 Integer
0 <= zsel_2__1.0 <= 1 Integer
0 <= zsel_2__1.1 <= 1 Integer
0 <= zsel_2__1.2 <= 1 Integer
0 <= zsel_2__1.3 <= 1 Integer
0 <= zsel_2__1.4 <= 1 Integer
0 <= zsel_2__1.5 <= 1 Integer
0 <= zsel_2__1.6 <= 1 Integer
0 <= zsel_2__1.7 <= 1 Integer
0 <= zsel_2__1.8 <= 1 Integer
0 <= zsel_2__1.9 <= 1 Integer
0 <= zsel_2__2.0 <= 1 Integer
0 <= zsel_2__2.1 <= 1 Integer
0 <= zsel_2__2.2 <= 1 Integer
0 <= zsel_2__2.3 <= 1 Integer
0 <= zsel_2__2.4 <= 1 Integer
0 <= zsel_2__2.5 <= 1 Integer
0 <= zsel_2__2.6 <= 1 Integer
0 <= zsel_2__2.7 <= 1 Integer
0 <= zsel_2__2.8 <= 1 Integer
0 <= zsel_2__2.9 <= 1 Integer
0 <= zsel_2__3.0 <= 1 Integer
0 <= zsel_3_0.0 <= 1 Integer
0 <= zsel_3_0.1 <= 1 Integer
0 <= zsel_3_0.2 <= 1 Integer
0 <= zsel_3_0.3 <= 1 Integer
0 <= zsel_3_0.4 <= 1 Integer
0 <= zsel_3_0.5 <= 1 Integer
0 <= zsel_3_0.6 <= 1 Integer
0 <= zsel_3_0.7 <= 1 Integer
0 <= zsel_3_0.8 <= 1 Integer
0 <= zsel_3_0.9 <= 1 Integer
0 <= zsel_3_1.0 <= 1 Integer
0 <= zsel_3_1.1 <= 1 Integer
0 <= zsel_3_1.2 <= 1 Integer
0 <= zsel_3_1.3 <= 1 Integer
0 <= zsel_3_1.4 <= 1 Integer
0 <= zsel_3_1.5 <= 1 Integer
0 <= zsel_3_1.6 <= 1 Integer
0 <= zsel_3_1.7 <= 1 Integer
0 <= zsel_3_1.8 <= 1 Integer
0 <= zsel_3_1.9 <= 1 Integer
0 <= zsel_3_2.0 <= 1 Integer
0 <= zsel_3_2.1 <= 1 Integer
0 <= zsel_3_2.2 <= 1 Integer
0 <= zsel_3_2.3 <= 1 Integer
0 <= zsel_3_2.4 <= 1 Integer
0 <= zsel_3_2.5 <= 1 Integer
0 <= zsel_3_2.6 <= 1 Integer
0 <= zsel_3_2.7 <= 1 Integer
0 <= zsel_3_2.8 <= 1 Integer
0 <= zsel_3_2.9 <= 1 Integer
0 <= zsel_3_3.0 <= 1 Integer
0 <= zsel_3__0.1 <= 1 Integer
0 <= zsel_3__0.2 <= 1 Integer
0 <= zsel_3__0.3 <= 1 Integer
0 <= zsel_3__0.4 <= 1 Integer
0 <= zsel_3__0.5 <= 1 Integer
0 <= zsel_3__0.6 <= 1 Integer
0 <= zsel_3__0.7 <= 1 Integer
0 <= zsel_3__0.8 <= 1 Integer
0 <= zsel_3__0.9 <= 1 Integer
0 <= zsel_3__1.0 <= 1 Integer
0 <= zsel_3__1.1 <= 1 Integer
0 <= zsel_3__1.2 <= 1 Integer
0 <= zsel_3__1.3 <= 1 Integer
0 <= zsel_3__1.4 <= 1 Integer
0 <= zsel_3__1.5 <= 1 Integer
0 <= zsel_3__1.6 <= 1 Integer
0 <= zsel_3__1.7 <= 1 Integer
0 <= zsel_3__1.8 <= 1 Integer
0 <= zsel_3__1.9 <= 1 Integer
0 <= zsel_3__2.0 <= 1 Integer
0 <= zsel_3__2.1 <= 1 Integer
0 <= zsel_3__2.2 <= 1 Integer
0 <= zsel_3__2.3 <= 1 Integer
0 <= zsel_3__2.4 <= 1 Integer
0 <= zsel_3__2.5 <= 1 Integer
0 <= zsel_3__2.6 <= 1 Integer
0 <= zsel_3__2.7 <= 1 Integer
0 <= zsel_3__2.8 <= 1 Integer
0 <= zsel_3__2.9 <= 1 Integer
0 <= zsel_3__3.0 <= 1 Integer
0 <= zsel_4_0.0 <= 1 Integer
0 <= zsel_4_0.1 <= 1 Integer
0 <= zsel_4_0.2 <= 1 Integer
0 <= zsel_4_0.3 <= 1 Integer
0 <= zsel_4_0.4 <= 1 Integer
0 <= zsel_4_0.5 <= 1 Integer
0 <= zsel_4_0.6 <= 1 Integer
0 <= zsel_4_0.7 <= 1 Integer
0 <= zsel_4_0.8 <= 1 Integer
0 <= zsel_4_0.9 <= 1 Integer
0 <= zsel_4_1.0 <= 1 Integer
0 <= zsel_4_1.1 <= 1 Integer
0 <= zsel_4_1.2 <= 1 Integer
0 <= zsel_4_1.3 <= 1 Integer
0 <= zsel_4_1.4 <= 1 Integer
0 <= zsel_4_1.5 <= 1 Integer
0 <= zsel_4_1.6 <= 1 Integer
0 <= zsel_4_1.7 <= 1 Integer
0 <= zsel_4_1.8 <= 1 Integer
0 <= zsel_4_1.9 <= 1 Integer
0 <= zsel_4_2.0 <= 1 Integer
0 <= zsel_4_2.1 <= 1 Integer
0 <= zsel_4_2.2 <= 1 Integer
0 <= zsel_4_2.3 <= 1 Integer
0 <= zsel_4_2.4 <= 1 Integer
0 <= zsel_4_2.5 <= 1 Integer
0 <= zsel_4_2.6 <= 1 Integer
0 <= zsel_4_2.7 <= 1 Integer
0 <= zsel_4_2.8 <= 1 Integer
0 <= zsel_4_2.9 <= 1 Integer
0 <= zsel_4_3.0 <= 1 Integer
0 <= zsel_4__0.1 <= 1 Integer
0 <= zsel_4__0.2 <= 1 Integer
0 <= zsel_4__0.3 <= 1 Integer
0 <= zsel_4__0.4 <= 1 Integer
0 <= zsel_4__0.5 <= 1 Integer
0 <= zsel_4__0.6 <= 1 Integer
0 <= zsel_4__0.7 <= 1 Integer
0 <= zsel_4__0.8 <= 1 Integer
0 <= zsel_4__0.9 <= 1 Integer
0 <= zsel_4__1.0 <= 1 Integer
0 <= zsel_4__1.1 <= 1 Integer
0 <= zsel_4__1.2 <= 1 Integer
0 <= zsel_4__1.3 <= 1 Integer
0 <= zsel_4__1.4 <= 1 Integer
0 <= zsel_4__1.5 <= 1 Integer
0 <= zsel_4__1.6 <= 1 Integer
0 <= zsel_4__1.7 <= 1 Integer
0 <= zsel_4__1.8 <= 1 Integer
0 <= zsel_4__1.9 <= 1 Integer
0 <= zsel_4__2.0 <= 1 Integer
0 <= zsel_4__2.1 <= 1 Integer
0 <= zsel_4__2.2 <= 1 Integer
0 <= zsel_4__2.3 <= 1 Integer
0 <= zsel_4__2.4 <= 1 Integer
0 <= zsel_4__2.5 <= 1 Integer
0 <= zsel_4__2.6 <= 1 Integer
0 <= zsel_4__2.7 <= 1 Integer
0 <= zsel_4__2.8 <= 1 Integer
0 <= zsel_4__2.9 <= 1 Integer
0 <= zsel_4__3.0 <= 1 Integer
0 <= zsel_5_0.0 <= 1 Integer
0 <= zsel_5_0.1 <= 1 Integer
0 <= zsel_5_0.2 <= 1 Integer
0 <= zsel_5_0.3 <= 1 Integer
0 <= zsel_5_0.4 <= 1 Integer
0 <= zsel_5_0.5 <= 1 Integer
0 <= zsel_5_0.6 <= 1 Integer
0 <= zsel_5_0.7 <= 1 Integer
0 <= zsel_5_0.8 <= 1 Integer
0 <= zsel_5_0.9 <= 1 Integer
0 <= zsel_5_1.0 <= 1 Integer
0 <= zsel_5_1.1 <= 1 Integer
0 <= zsel_5_1.2 <= 1 Integer
0 <= zsel_5_1.3 <= 1 Integer
0 <= zsel_5_1.4 <= 1 Integer
0 <= zsel_5_1.5 <= 1 Integer
0 <= zsel_5_1.6 <= 1 Integer
0 <= zsel_5_1.7 <= 1 Integer
0 <= zsel_5_1.8 <= 1 Integer
0 <= zsel_5_1.9 <= 1 Integer
0 <= zsel_5_2.0 <= 1 Integer
0 <= zsel_5_2.1 <= 1 Integer
0 <= zsel_5_2.2 <= 1 Integer
0 <= zsel_5_2.3 <= 1 Integer
0 <= zsel_5_2.4 <= 1 Integer
0 <= zsel_5_2.5 <= 1 Integer
0 <= zsel_5_2.6 <= 1 Integer
0 <= zsel_5_2.7 <= 1 Integer
0 <= zsel_5_2.8 <= 1 Integer
0 <= zsel_5_2.9 <= 1 Integer
0 <= zsel_5_3.0 <= 1 Integer
0 <= zsel_5__0.1 <= 1 Integer
0 <= zsel_5__0.2 <= 1 Integer
0 <= zsel_5__0.3 <= 1 Integer
0 <= zsel_5__0.4 <= 1 Integer
0 <= zsel_5__0.5 <= 1 Integer
0 <= zsel_5__0.6 <= 1 Integer
0 <= zsel_5__0.7 <= 1 Integer
0 <= zsel_5__0.8 <= 1 Integer
0 <= zsel_5__0.9 <= 1 Integer
0 <= zsel_5__1.0 <= 1 Integer
0 <= zsel_5__1.1 <= 1 Integer
0 <= zsel_5__1.2 <= 1 Integer
0 <= zsel_5__1.3 <= 1 Integer
0 <= zsel_5__1.4 <= 1 Integer
0 <= zsel_5__1.5 <= 1 Integer
0 <= zsel_5__1.6 <= 1 Integer
0 <= zsel_5__1.7 <= 1 Integer
0 <= zsel_5__1.8 <= 1 Integer
0 <= zsel_5__1.9 <= 1 Integer
0 <= zsel_5__2.0 <= 1 Integer
0 <= zsel_5__2.1 <= 1 Integer
0 <= zsel_5__2.2 <= 1 Integer
0 <= zsel_5__2.3 <= 1 Integer
0 <= zsel_5__2.4 <= 1 Integer
0 <= zsel_5__2.5 <= 1 Integer
0 <= zsel_5__2.6 <= 1 Integer
0 <= zsel_5__2.7 <= 1 Integer
0 <= zsel_5__2.8 <= 1 Integer
0 <= zsel_5__2.9 <= 1 Integer
0 <= zsel_5__3.0 <= 1 Integer
...
Result - Optimal solution found
Objective value: 1385.94715724
Enumerated nodes: 0
Total iterations: 0
Time (CPU seconds): 0.01
Time (Wallclock seconds): 0.01
Option for printingOptions changed from normal to all
Total time (CPU seconds): 0.01 (Wallclock seconds): 0.01
fixed_factors zscore prob assign expected_price price
id
1 0.774388 -2.7 0.003289 1.0 21.852318 6643.189162
2 2.138180 -2.0 0.022750 1.0 180.007910 7912.389829
3 2.410249 -1.0 0.158655 1.0 1034.519800 6520.551792
4 0.207384 0.0 0.000000 0.0 0.000000 396.528057
5 1.438380 -2.0 0.022750 1.0 149.567130 6574.341044
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment