Need help in resolving issue of Constraints of type MathOptInterface.VariableIndex-in-MathOptInterface.ZeroOne are not supported by the solver. When using Ipopt solver in Julia for BinPacking problem
#variables declaration
@variable(model, x[1:length(packages[!,:PackagingID]), 1:length(items[!,:ItemNumber]), 1:length(bins[!,:binID])], Bin)
@variable(model, c[1:length(packages[!,:PackagingID]), 1:length(bins[!,:binID])], Bin)
function item_rule(item)
return sum(x[i,item,k] for i in 1:length(packages[!,:PackagingID]) for k in 1:length(bins[!,:binID]))
end
function pack_rule(pack,bin)
return sum(x[pack,j,bin]*items.Weight[j] for j in 1:length(items[!,:ItemNumber]))
end
function pack_weight(pack,bin)
return c[pack,bin]*packages.MaxWeight[pack]
end
function binpack_rule(bin)
return sum(c[i,bin] for i in 1:length(packages[!,:PackagingID]))
end
#constaints
for j in 1:length(items[!,:ItemNumber])
A = @NLconstraint(model, item_rule(j) == 1)
end
for i in 1:length(packages[!,:PackagingID]), k in 1:length(bins[!,:binID])
B = @NLconstraint(model, pack_rule(i,k) <= pack_weight(i,k))
end
for k in 1:length(bins[!,:binID])
C = @NLconstraint(model,binpack_rule(k) <= 1)
end
#objectives
@NLobjective(
model,
Min,
(sum(c[i,k]*packages.PackageCost[i] for i in 1:length(packages[!,:PackagingID]) for k in 1:length(bins[!,:binID])) + sum(c[i,k]*bins.binNo[k] for i in 1:length(packages[!,:PackagingID]) for k in 1:length(bins[!,:binID])) ),
)
Here is the screenshot of the error I got: