Hello, I have the following model and want to solve it with column generation according to these instructions. Unfortunately, I am a complete coding newbie and wanted to ask if anyone would like to help me implement this model with column generation. I would be very grateful.
This is my code:
using JuMP
using Gurobi
using DataFrames
I_list = [1, 2, 3]
T_list = [1, 2, 3, 4, 5, 6, 7]
K_list = [1, 2, 3]
alpha=0.5
M = 10000
Max = 6
Demand_Dict = Dict(
    (1, 1) => 2, (1, 2) => 1, (1, 3) => 0,
    (2, 1) => 1, (2, 2) => 2, (2, 3) => 0,
    (3, 1) => 1, (3, 2) => 1, (3, 3) => 1,
    (4, 1) => 1, (4, 2) => 2, (4, 3) => 0,
    (5, 1) => 2, (5, 2) => 0, (5, 3) => 1,
    (6, 1) => 1, (6, 2) => 1, (6, 3) => 1,
    (7, 1) => 0, (7, 2) => 3, (7, 3) => 0
)
# Create the model
model = Model(Gurobi.Optimizer)
# Decision variables
@variable(model, slack[t in T_list, s in K_list] >= 0)
@variable(model, motivation[i in I_list, t in T_list, s in K_list], Bin)
@variable(model, mood[i in I_list, t in T_list] >= 0)
@variable(model, x[i in I_list, t in T_list, s in K_list] >= 0)
@variable(model, y[i in I_list, t in T_list], Bin)
# Objective function
@objective(model, Min, sum(slack[t, s] for t in T_list, s in K_list))
# Constraints for demand
for (t, s) in keys(Demand_Dict)
    @constraint(model, slack[t, s] >= Demand_Dict[(t, s)] - sum(motivation[i, t, s] for i in I_list))
end
# Constraints for i in I_list:
for i in I_list
    @constraint(model, sum(y[i, t] for t in T_list) >= 4)
 for t in T_list
        @constraint(model, mood[i, t] == 1 - alpha * y[i, t])
        @constraint(model, sum(x[i, t, s] for s in K_list) == y[i, t])
        @constraint(model, sum(x[i, t, s] for s in K_list) <= 1)
        for s in K_list
            @constraint(model, motivation[i, t, s] >= mood[i, t] - M * (1 - x[i, t, s]))
            @constraint(model, motivation[i, t, s] <= mood[i, t] + M * (1 - x[i, t, s]))
            @constraint(model, motivation[i, t, s] <= x[i, t, s])
		end
    end
    for t in 1:(length(T_list) - Max)
        @constraint(model, sum(x[i, u, s] for s in K_list for u in t:(t + Max)) <= Max)
    end
end
# Solve the model
optimize!(model)