Constraint formulation C++
回答済みHello,
I have these formulas that i want to add to my model as constraints.

The attempt so far is shown below.
int customers = 100;
int vehicles = 25;
void visit_once_constr(GRBVar*** x,GRBModel& model)
{
for (int k = 0; k < vehicles; k++)
{
for (int i = 0; i < customers; i++)
{
GRBLinExpr expr = 0.0;
for (int j = 1; j < customers; j++)
{
expr += x[i][j][k];
}
model.addConstr(expr == 1);
}
}
}
void arrives_at_depot(GRBVar*** x, GRBModel& model)
{
for (int k = 0; k < vehicles; k++)
{
GRBLinExpr expr = 0.0;
for (int i = 1; i < customers; i++)
{
expr += x[i][0][k];
}
model.addConstr(expr == 1);
}
}
void departs_from_depot(GRBVar*** x, GRBModel& model)
{
for (int k = 0; k < vehicles; k++)
{
GRBLinExpr expr = 0.0;
for (int i = 1; i < customers; i++)
{
expr += x[0][i][k];
}
model.addConstr(expr == 1);
}
}
void arrives_depart_same(GRBVar*** x, GRBModel& model)
{
for (int h = 0; h < customers; h++)
{
GRBLinExpr expr = 0.0;
for (int k = 0; k < vehicles; k++)
{
for (int i = 1; i < customers; i++)
{
expr += x[i][h][k] - x[h][i][k];
}
model.addConstr(expr == 0);
}
}
}
void pickup_delivery_same(GRBVar*** x, GRBVar** z, GRBModel& model)
{
for (int i = 0; i < customers; i++)
{
GRBLinExpr expr = 0.0;
for (int j = 0; j < customers; j++)
{
if (z[i][j].get(GRB_DoubleAttr_Obj) == 1)
{
for (int k = 0; k < vehicles; k++)
{
for (int l = 1, p = 1; l < customers && p < customers; l++, p++)
{
expr += x[l][i][k] - x[p][j][k];
}
model.addConstr(expr == 0);
}
}
}
}
}
void capacity_hold(GRBVar* y, GRBModel& model)
{
GRBLinExpr expr = 0.0;
for (int i = 0; i < customers; i++)
{
expr += y[i];
}
model.addConstr(expr <= 200);
}
void capacity_next_node(GRBVar*** x, GRBVar* y, const float_vec q,GRBModel& model)
{
for (int i = 0; i < customers; i++)
{
for (int j = 0; j < customers; j++)
{
GRBLinExpr expr = 0.0;
for (int k = 0; k < vehicles; k++)
{
if (x[i][j][k].get(GRB_DoubleAttr_Obj) == 1)
{
expr += y[i] + q[i];
}
model.addConstr(expr == y[j]);
}
}
}
}
void depart_arrival(GRBVar*** x, const matrix c_matrix, const vec_pair time_window, const float_vec arrival,float_vec depart,const float_vec service_time,GRBModel& model)
{
for (int i = 0; i < customers; i++)
{
if (i == 0)
{
depart[0] = 0.0;
}
else
{
depart[i] = std::max(arrival[i], time_window[i].first) + service_time[i];
}
GRBLinExpr expr3 = depart[i];
for (int j = 0; j < customers; j++)
{
GRBLinExpr expr1 = 0.0;
GRBLinExpr expr2 = arrival[j];
for (int k = 0; k < vehicles; k++)
{
if (x[i][j][k].get(GRB_DoubleAttr_Obj) == 1)
{
expr1 += depart[i] + c_matrix[i][j];
}
model.addConstr(expr1 <= arrival[j]);
}
model.addConstr(expr2 <= depart[j]);
model.addConstr(expr3 <= depart[j]);
}
}
}
The thing is when i run the code in another file in main.cpp the debugging stucks forever... I dont know where are the possible errors in the modulation.
Best Regards,
-
Hi Giorgos,
What exactly do you mean with debugging stucks forever?
Do you refer to the running time of the solver?
Note that you are modeling some VRP with time windows with 100 customers. This size is in general quite hard to solve with a compact model of the type you have.Best regards,
Mario0 -
Hello,
Well, the debugging process terminates but the model is infeasible and i dont know why. I guess it's something to do with the constraints but i cannot find it. I have added the constraints and the code but i cannot find any logical errors. Can you please spot the error?
Best regards.
0 -
Hi Giorgos,
To find the cause for infeasibility in general, here are a few suggestions:
- Write out the model to an LP file with model.write("model.lp") and look at the actually created variables and constraints.
- Start with a small instance of your problem since then it is easier to manually check the model.
- Follow the guidelines in this article.
Specifically to your model:
- I guess that arrival[i] and depart[i] are Gurobi variables. But you are using them as constants, e.g., in "depart[i] = std::max(arrival[i], time_window[i].first) + service_time[i];" You can only use them in Gurobi expressions.
- To model your logical expressions, you either need to linearize it by yourself (with Big-M constraints), or use indicator constraints.
0 -
Hello,
I have written the model in a file with extension .lp and i've tried to reduce the problem's complexity to a smaller one but i still cannot find the infeasibility reason...
depart[i] and arrival[i] are not Gurobi variables they are vector of floats. So that i can use the expression as i do in the code...
Is something wrong with the constraint's formulation? I really dont know...
Thanks in advance.
0 -
But if depart and arrival are no variables but constants what exactly is the sense of the constraints your are building with them in function depart_arrival()?
Did you follow the guidelines in the article to construct an IIS?
0 -
Do i have to add them as Gurobi variables? I am asking because i have to add the constraint 8 which involves xijk which is a gurobi variable but apart from depart[i] and arrival[i] are not.
Yes i have and the error appears to be in this constraint depart_arrival()
0 -
You need to at least introduce variables that represent the arrival or departure time at some customer. Those need be bounded by the time window and linked to the x_ijk variables.
A similar model can be seen in one of our Jupyter notebooks on a Technician Routing Problem.
0 -
Hello,
I have added the variables arrive and depart as GRBVars and also i have i have looked at the example Technician Routing Problem. I've also run the formulation with only 3 constraints but the results are the same. I have attached "model.ilp" file that was produced by the model.computeIIS() . I don't know what else to do...
0 -
\ Model (null)_copy
\ LP format - for model browsing. Use MPS format to capture full model detail.
Minimize
Subject To
R0: x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x = 1
R129: x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x = 1
R135: x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x + x
+ x + x + x + x + x + x + x + x + x + x + x = 1
Bounds
Binaries
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x
End0 -
As you should clearly see, you are using the same variable name for all variables. This of course is not very helpful for debugging. Please name your variables reasonably, then the IIS might make more sense for you.
0 -
Good morning,
I have changed the name of variables and found the error in constraints however now the model while computing the solution "stucks" here as the screenshot shows and i don't know why?

Best regards.
0 -
Hi Giorgos,
As I told you in the beginning, solving VRPs with models of the type you are using and 100 customers is extremely challenging. This is independent of the solver you are using.
You need to work on your model formulation and use advanced concepts like dynamic column and cut generation if you want to solve VRPs of that size and larger.
There is a huge amount of literature available on that topic but a first starting point might be the book:Toth, P., & Vigo, D. (Eds.). (2014). Vehicle routing: problems, methods, and applications. Society for industrial and applied mathematics.
0 -
Very well thank you for your time!
0
サインインしてコメントを残してください。
コメント
13件のコメント