Solving one-zero linear programming - ampl

I have a model about one-zero linear programming, when I use AMPL, I declare variables as binary type, but when I solved it, my results have many numbers not is 0,1.
var X{1..7,1..21,1..4} binary;
I think the type of variable: integer, binary not doing in AMPL
When I solved it, my results such as: X[1,5,6]=0.55555.

You should use a mixed-integer programming solver such as CPLEX or Gurobi to get an integer solution. The default AMPL solver is MINOS which relaxes integrality and issues a warning such as:
MINOS 5.51: ignoring integrality of 10 variables

Related

normal cdf and pdf functions in Pyomo

I am working on a mathematical model in pyomo. There are parameters that are based on a normal distribution. The input for these distributions is not a simple numerical number, but it's another parameter that is defined in pyomo.
I imported the Statistics package to use normal distribution but I get this error:
Cannot convert non-constant Pyomo expression (0 < s) to bool.
This error is usually caused by using a Var, unit, or mutable Param in a
Boolean context such as an "if" statement, or when checking container
membership or equality.
I found the answer. I share it here for others if they had the same question.
I think the easiest approach is working with python (Numpy ), generating whatever you want, then assigning it to pyomo objects. I tried this and it worked very well.

How can I get the properties of a Gurobi's Presolve model?

I have an integer programming problem with linear objective function and some quadratic constraints. When I use Gurobi to solve this problem, Gurobi uses Presolve to create a Quadratically Constrained Integer Programming model. Now, I would like to know if the objective function of the Presolve model is quadratic too.
Thanks in advance.
Gurobi will give you the presolved model with the method presolve on the model object. That object is a regular model object and you can query its attributes. The attribute isQCP is true if there are any quadratic constraints. The attribute isQP indicates that the model has a quadratic objective, but no quadratic constraints. The attribute NumQConstrs is a count of the number of quadratic constraints.
You can also use the printStats method to print the numbers or you could use the write method to write the presolved model to a file.
presolved_model = model.presolve()
print(presolved_model.IsQCP)
print(presolved_model.IsQP)
presolved_model.printStats()
presolved_model.write("presolved.lp")

What is the appropriate optimization method (algorithm) to solve such problems (Linear mixed-integer)?

I have this optimization problem:
In this problem, C_{i,k} is a matrix of binary values (i.e., 0 or 1) and w_i is a vector of integers, p_f is a probability, and \epsilon is a constant.
I understand that the problem is a linear mixed-integer problem. But I'm confused about the method or algorithm I should use to solve the problem, and how can I go further by doing convexity analysis.
Your inputs are appreciated.
Thanks a lot.
This is a 0-1 knapsack problem. This problem can be solved using either dynamic programming or branch-and-bound algorithm. For branch and bound, you could select any variable z_k, solve two subproblems with z_k equals to either 0 or 1. Each subproblem has the exact structure as the original problem.

What is the difference between Integer Quadratic Programming versus Mixed Integer Quadratic Programming?

I am new to the optimization problem of Quadratic programming.
In equation 8 of the following paper: here , there is an equation:
The authors state that this is an 'Integer Quadratic Programming (IQP)' formula.
Alternatively, in another website: here , there is the following equation which is described as a 'Mixed Integer Quadratic Programming (MIQP)' formulation:
From my perspective, both of the equations shown above are similar, with the only difference being that the MIQP formula has '1/2' included in it.
1) I am looking for an explanation on the differences between the IQP and MIQP
2) In addition, I am interested to apply quadratic programming to the assignment problem, thus, looking for any insight into which should be used (i.e., IQP vs. MIQP) and when.
Integer Quadratic Programming (IQP) implies there are no continuous variables in the model: all variables are discrete. Mixed Integer Quadratic Programming (MIQP) allows both discrete and continuous variables. If your model only has discrete variables it is both an MIQP and an IQP. All popular solvers are of the MIQP type, so I tend to use MIQP even if I don't have continuous variables. IQP as model type is not often used. I don't think this is really something to worry about.

what is the exact meaning of "First LP value" in SCIP solver, for a nonlinear convex model

I have solved using SCIP a convex mathematical model with binary variables, linear Objective function and a set of linear constraints amended with a single non-linear constraint making the model as a non-linear binary problem.
In the output file provided by SCIP, there is a term named as: First LP value and a value has been assigned to. I cannot figure out what is exactly the meaning of First LP value for my specific nonlinear problem ?? I appreciate any explanation in detail.
For solving nonlinear problems, SCIP solves linear programming relaxations (LPs) that describe an outer approximation of the feasible region. The first LP value is the value of the optimal solution to the initial LP that was solved at the root node, after presolving, but before any separation.