In the attached photos,
V is a set of suppliers,
Vs is a set of undisrupted suppliers in scenario s (subset of V) and
Vs bar is a set of disrupted suppliers in scenario s (subset of V). Q, QB, z are 1st-stage decision variables, while QM and QB are 2nd-stage variables. The others are input data.
I have constraints where forall loop only applies to certain suppliers (disrupted or undisrupted suppliers), not the whole set V. I tried to represent this characteristic by using a binary input parameter dr[scenario][supplier] (dr[s][i] = 1 if supplier i is disrupted in scenario s; 0 otherwise), while still using set V.
Specifically, I multiply both sides of the constraints with (1 - dr) when only undisrupted suppliers are considered, and with dr when only disrupted suppliers are considered. For example, I'll have:
forall(s in scenario, i in supplier){
sum(k in product) (1 - dr[s][i]) * CAPC[i][k] * (Q[i][k] + QB[s][k][i]) <= (1 - dr[s][i]) * CAP[i];
}
Does the multiplication of parameter dr make sense or OPL CPLEX will automatically ignore these "dr" before solving (since they are identical in both sides of the constraint) and it will run for all element in V, which isn't what I want. If my approach is wrong, then how can I represent those constraints in OPL CPLEX?
I'm only a beginner so I'd appreciate it if anyone can help. I'll provide necessary files if you need them.
Best regards.
Giang Dang
------------------------------
#DecisionOptimization