Hi @zling. Your project uses the GMP-AOA module to solve an MINLP problem. If I run the project, after loading the case file, then the AIMMS Presolver used by the GMP-AOA module concludes that the model is infeasible, and therefore CONOPT is not called. So I do not know how you obtained that CONOPT 4.1 related message.
The model is infeasible, that is, no feasibile solution exists. AIMMS will print an infeasibility analysis, in the listing file, if you switch on the Solvers General option ‘Display infeasibility analysis’.
The model only seems to be nonlinear because you are using the max() function in the definition of some of the variables. For example, you defined:
maxBPT = max(t,Energyflow('HPS','HPS-MPS',t))
This maxBPT variable is only used in the definition of the variable ccBPT:
ccBPT = (maxBPT*a('BPT'))+b('BPT')
The variable ccBPT is only used, with a positive term, in the objective variable, which you are minimizing. Instead of using the current definition of maxBPT you can therefore use the following constraint:
Constraint c_maxBPT {
IndexDomain: (t);
Unit: hour*kW;
Definition: maxBPT >= Energyflow('HPS','HPS-MPS',t);
}
If you use this constraint then in any optimal solution maxBPT will become equal to max(t,Energyflow('HPS','HPS-MPS',t)). The advantage of using this constraint is that you do not need the max() function, and if you apply this reformulation trick to all variables using the max() function then you can transform this model into a linear MIP model.
Note that reformulating the model as a linear model will not make the model feasible, but for an MIP model it is often easier to analyze infeasibilities. Moreover, solving an MIP model is often faster than solving an MINLP model, and by solving the MIP model you will find a global optimum while GMP-AOA might only find a local optimum (once the model is feasible).
Hi @zling. Your project uses the GMP-AOA module to solve an MINLP problem. If I run the project, after loading the case file, then the AIMMS Presolver used by the GMP-AOA module concludes that the model is infeasible, and therefore CONOPT is not called. So I do not know how you obtained that CONOPT 4.1 related message.
The model is infeasible, that is, no feasibile solution exists. AIMMS will print an infeasibility analysis, in the listing file, if you switch on the Solvers General option ‘Display infeasibility analysis’.
The model only seems to be nonlinear because you are using the max() function in the definition of some of the variables. For example, you defined:
maxBPT = max(t,Energyflow('HPS','HPS-MPS',t))
This maxBPT variable is only used in the definition of the variable ccBPT:
ccBPT = (maxBPT*a('BPT'))+b('BPT')
The variable ccBPT is only used, with a positive term, in the objective variable, which you are minimizing. Instead of using the current definition of maxBPT you can therefore use the following constraint:
Constraint c_maxBPT {
IndexDomain: (t);
Unit: hour*kW;
Definition: maxBPT >= Energyflow('HPS','HPS-MPS',t);
}
If you use this constraint then in any optimal solution maxBPT will become equal to max(t,Energyflow('HPS','HPS-MPS',t)). The advantage of using this constraint is that you do not need the max() function, and if you apply this reformulation trick to all variables using the max() function then you can transform this model into a linear MIP model.
Note that reformulating the model as a linear model will not make the model feasible, but for an MIP model it is often easier to analyze infeasibilities. Moreover, solving an MIP model is often faster than solving an MINLP model, and by solving the MIP model you will find a global optimum while GMP-AOA might only find a local optimum (once the model is feasible).
Hi @Marcel Hunting ! Thank you for your reply! I will try to solve the model again.
I would like to say sorry that I attached a wrong file in the post. Here I will attach the correct file which gives me the CONOPT related message. However, in my latest model, there is more non-linear functions existing and the listing file still gives me the infeasible sign for the HWH constraint.
Hi @zling. The new version of the model is also infeasible but the irreducible infeasibility set printed by CONOPT is not complete. Better would be to switch on the Solvers General options ‘Nonlinear presolve’ and ‘Display infeasibility analysis’ to get a complete infeasibility analysis.
Your model contains the constraint HWH(6):
Techflow(HW,6) = 0.800 * NGflow(HWH,6)
NGflow is a nonnegative variable and therefore this constraint implies that Techflow(HW,6) must be nonnegative. However, this contradicts the constraint HWB(6):
Techflow(HW,6) = -25630
@Marcel Hunting Thank you so much for your help!