# Constraints that do not work together

Hello,

I wrote a model about Julia which contains 3 constraints. If I test one constraint at a time, each one works. But if I run the whole program, I get the following error message:

Has anyone had this problem before and would know where it could be coming from?

Hey @Zizilabg, do you mind sharing your code?
It would definitely help to know which packages you use besides `MathOptInterface`

1 Like
``````using XLSX
using JuMP
using Cbc
using DataFrames

# change working directory to the one containing this file
cd(@__DIR__)

ws=fichierDonnees["ELEVES"] # sĂ©lection de la feuille du fichier Excel (ws pour "Worksheet")

n=2
while !ismissing(ws[n,2]) # ismissing retourne true si la cellule est vide
global e=ws[n,1]
global n=n+1
end

ws2=fichierDonnees["SUJETS"]

l=2
while !ismissing(ws2[l,1]) # ismissing retourne true si la cellule est vide
global s=ws2[l,1]
global l=l+1
end

q = [0, 5, 20, 100, 1000]

p=zeros(e,s)
for i in 1:e, j in 1:s
if j==ws[i+1,4]
p[i,j]=q[1]
elseif j==ws[i+1,6]
p[i,j]= q[2]
elseif j==ws[i+1,8]
p[i,j]=q[3]
elseif j==ws[i+1,10]
p[i,j]= q[4]
else
p[i,j]= q[5]
end
end

TB=Model(optimizer_with_attributes(Cbc.Optimizer))

@variable(TB,x[1:e, 1:s],Bin)

@objective(TB, Min,sum(sum(x[i,j]*p[i,j] for j in 1:s) for i in 1:e))

@constraint(TB, contraintebase[i=1:e], sum(x[i,j] for j in 1:s ) == 1)

@variable(TB, y1, Bin)
@variable(TB, y2, Bin)
@constraint(TB, contrainte1a, y1+y2 == 1)
@constraint(TB, contrainte1b[j=1:s], sum(x[i,j] for i in 1:e ) >= 3*y1)
@constraint(TB, contrainte1c[j=1:s], sum(x[i,j] for i in 1:e ) <= 1000*(1-y2))

#contrainte 2
for j in 1:s
if ws2[j+1, 3] == 1
@constraint(TB, sum(x[i, j] for i in 1:e) <= 8)
else
@constraint(TB, sum(x[i, j] for i in 1:e) <= 12)
end
end

#contrainte 3
for i in 1:e, j in 1:s
if (ws[i+1,3]==1)
@constraint(TB, x[i,j]==1)
end
end

JuMP.optimize!(TB)

println()

for  i in 1:e, j in 1:s
if JuMP.value.(x[i,j])==1
end
end

``````

You need to check if the solver found a solution:
https://jump.dev/JuMP.jl/stable/manual/solutions/#Recommended-workflow

I wrote this:

``````if termination_status(TB) == OPTIMAL
println("Solution is optimal")
elseif termination_status(TB) == TIME_LIMIT && has_values(model)
println("Solution is suboptimal due to a time limit, but a primal solution is available")
else
error("The model was not solved correctly.")
end
println("  objective value = ", objective_value(TB))
if primal_status(TB) == FEASIBLE_POINT
println("  primal solution: x = ", value(x))
end
if dual_status(TB) == FEASIBLE_POINT
println("  dual solution: c1 = ", dual(c1))
end

``````

But got this error message:

``````LoadError: The model was not solved correctly.

``````

Yes, because your model doesnâ€™t have a feasible solution. Read the debugging guide I posted in your other question: Result index of attribute - #2 by odow

1 Like