Skip to content

sos2 constraint not supported #105

@manojcentura

Description

@manojcentura
                            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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions