Hi
I'm new to Decision optimization using Watson studio. I need to add a constraint by multiplying a Boolean variable & input data. I used following statement to create a binary decision variable
mdl.WareHouseOpenClose = mdl.binary_var_dict(Transport, lb=0, name='WareHouseOpenClose')
I need to create following constraint
Sum of TransportFlow from warehouse-OpenClose*FixedCost, OpenClose is a binary variable
So I Used following steps to read input & add constraint by multiplying it with WarehouseOpenClose binary decision variable
from docplex.mp.model import Model
mdl = Model(name='Transport')
df_FixedCost=inputs['FixedCost']
df_Supply = inputs['Supply']
df_TransportCost = inputs['TransportationCost']
df_FixedCost=inputs['FixedCost']
df_Supply['StockLevel'] = df_Supply['StockLevel'].astype(float)
df_FixedCost['FixedCost']=df_FixedCost['FixedCost'].astype(float)
WareHouseStatus = list(df_FixedCost.itertuples(name='WareHouseStatus', index=False))
Supply = list(df_Supply.itertuples(name = 'Supply', index=False))
Transport = list(df_TransportCost.itertuples(name='Transport', index=False))
mdl.WareHouseOpenClose = mdl.binary_var_dict(Transport, lb=0, name='WareHouseOpenClose')
mdl.TransportFlow = mdl.continuous_var_dict(Transport, lb=0, name='TransportFlow')
for s in Supply:
for w in WareHouseStatus:
mdl.add_constraint(mdl.sum(mdl.TransportFlow[a] for a in Transport if a.Warehouse == w.Warehouse)-(mdl.WareHouseOpenClose[a] for a in WareHouseStatus if a.Warehouse == w.Warehouse)*(w.FixedCost if a.Warehouse == w.Warehouse)<= s.StockLevel, 'ct_fixeCost_{0}'.format(w.Warehouse))
I'm getting Invalid syntax error for add constraint. Can you please help me understand what wrong I'm doing?
------------------------------
Niladri Chakraborty
------------------------------
#DecisionOptimization