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)