Hi All
I am learning Julia & JuMP by trying to solve the Kaggle Santa Klaus problem of the year. My current model of the problem is posted below. It does not seem fully legit. My question is to understand how I can mix julia operations on variables to handle complex constraints - see for example what I am doing with daily_occupancy which os not define as a variable at the moment.
Thanks
PS: any feedback on the code is welcome
using JuMP
using MathOptInterface
#=
using GLPK
model = Model(with_optimizer(GLPK.Optimizer))
=#
using Cbc
model = Model(with_optimizer(Cbc.Optimizer, logLevel=1, seconds=14400.0))
numchoices = 10
candidates = [Int for i=1:numdays]
for i in 1:nbfamily
for j in 1:numchoices
day = choices[j, i]
push!(candidates[day], i)
end
end
#X = Array{Bool}(undef, nbfamily, numdays)
@variable(model, X[1:nbfamily, 1:numchoices], Bin)
daily_occupancy = Array{Int}(undef, numdays)
for j in 1:numdays
daily_occupancy[j] = sum([value(X[i, j]) * familysize[i] for i in candidates[j]])
end
family_presence = [sum([X[i, j] for j in choices[:, i]]) for i in 1:nbfamily]
preference_cost = sum([var1[i, j] * X[i,j] for i in 1:nbfamily for j in choices[:, i] ])
@objective(model, Min, preference_cost)
for j in 1:numdays
@constraint(model, daily_occupancy[j] - daily_occupancy[j+1] <= 23)
@constraint(model, daily_occupancy[j+1] - daily_occupancy[j ] <= 23)
for i in 1:nbfamily
@constraint(family_presence[i] == 1)
for j in 1:numdays:
@constraint(daily_occupancy[j] >= mino)
@constraint(daily_occupancy[j] <= maxo)
optimize!(model)