-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
coluna = optimizer_with_attributes(
Coluna.Optimizer,
"params" => Coluna.Params(
solver = Coluna.Algorithm.TreeSearchAlgorithm() # default branch-cut-and-price
),
"default_optimizer" => () -> Gurobi.Optimizer(env)
# "default_optimizer" => HiGHS.Optimizer # GLPK for the master & the subproblems
);
local mod3 = BlockModel(coluna)
println("===========================test================================================")
try
columns = [
(cover = [1, 0, 1], load = 1.2),
(cover = [0, 1, 1], load = 2.5),
(cover = [1, 1, 0], load = 0.5),
] # each is a "schedule" with a certain load
@axis(pschedule_axis, 1:length(columns))
cost_breakpoints = [0.0, 1.0, 2.0, 3.0] # x axis
cost_values = [0.0, 0.8, 1.2, 2.0] # y axis
n_bp = length(cost_breakpoints)
# model = BlockModel(coluna)
# # λ interpolation weights for each column's load
# @variable(mod3, λ[1:length(columns), 1:n_bp] >= 0)
# @constraint(mod3,λ in SOS2())
# # @constraint(mod3, λsfbm_corrections in SOS2(),base_name = "λsfbm_corrections in sos2 ,$pc, $frameno")
# #@variable(model, z[1:length(columns), 1:n_bp - 1], Bin) # SOS2-style selector
# @variable(mod3, select[1:length(columns)] >= 0) # weight of each column
# # Task coverage constraints
# @constraint(mod3, [t = 1:3], sum(select[j] * columns[j].cover[t] for j in 1:length(columns)) == 1)
# # Each column's cost interpolated via SOS2-style convex combination
# @variable(mod3, cost[1:length(columns)])
# @constraint(mod3,sos[1:length(columns)],sum(λ[j, i] for i in 1:n_bp) == select[j])
# @constraint(mod3,sos_2[j in 1:length(columns)],cost[j] == sum(cost_values[i] * λ[j, i] for i in 1:n_bp))
# λ interpolation weights for each column's load
@variable(mod3, λ[1:length(columns), 1:n_bp],upper_bound=1,lower_bound=0)
@constraint(mod3,sos_sum[i in 1:length(columns)],sum(λ[i,j] for j in 1:n_bp)==1)
println("999999")
# @constraint(mod3,λ[:,:] in SOS2())
#for i in 1:length(columns)
@constraint(mod3,constr123[i in 1:length(columns)], λ[i, :] in SOS2())
#end
println("99pppppppp")
# @variable(mod3, z[1:length(columns), 1:n_bp - 1], Bin) # SOS2-style selector
@variable(mod3, select[1:length(columns)] >= 0) # weight of each column
println("manoj45678")
# Task coverage constraints
@constraint(mod3, con1[t = 1:3], sum(select[j] * columns[j].cover[t] for j in 1:length(columns)) == 1)
# Each column's cost interpolated via SOS2-style convex combination
@variable(mod3, cost[1:length(columns)])
@constraint(mod3,sos78[j in 1:length(columns)],sum(λ[j, i] for i in 1:n_bp) == 1)
@constraint(mod3, sos_2899[j in 1:length(columns)],cost[j] == sum(cost_values[i] * λ[j, i] for i in 1:n_bp))
# @constraint(mod3,sos_3[j in 1:length(columns),i in 1:(n_bp - 1)],λ[j, i] <= z[j, i])
# @constraint(mod3,sos_4[j in 1:length(columns),i in 1:(n_bp - 1)],λ[j, i + 1] <= z[j, i])
# @constraint(mod3,sos_5[j in 1:length(columns)],sum(z[j, :]) <= 1)
@dantzig_wolfe_decomposition(mod3, decomposition, pschedule_axis)
@objective(mod3, Min, sum(cost[j] for j in 1:length(columns)))
optimize!(mod3)
File: C:\Users\manojkumar.ram\.julia\packages\BlockDecomposition\xVj1Y\src\checker.jl, Line: 197, Function: _check_dec_constr
File: C:\Users\manojkumar.ram\.julia\packages\BlockDecomposition\xVj1Y\src\checker.jl, Line: 114, Function: _check_annotation
File: C:\Users\manojkumar.ram\.julia\packages\BlockDecomposition\xVj1Y\src\checker.jl, Line: 76, Function: _check_annotations
File: C:\Users\manojkumar.ram\.julia\packages\BlockDecomposition\xVj1Y\src\decomposition.jl, Line: 21, Function: register_decomposition
File: C:\Users\manojkumar.ram\.julia\packages\BlockDecomposition\xVj1Y\src\BlockDecomposition.jl, Line: 76, Function: optimize!
File: C:\Users\manojkumar.ram\.julia\packages\JuMP\RGIK3\src\optimizer_interface.jl, Line: 575, Function: #optimize!#104
File: C:\Users\manojkumar.ram\.julia\packages\JuMP\RGIK3\src\optimizer_interface.jl, Line: 546, Function: optimize!
File: e:\G2_develop_19_05_2025\bcap_optimizer\bcapm_.jl, Line: 451, Function: #453
Metadata
Metadata
Assignees
Labels
No labels