Skip to content

Warm start is not functional yet #15

Open
@jkhamphousone

Description

@jkhamphousone

Providing a warm start with a set of ordered hubs (which implies a ring) is not functional yet.
See benders_rrsp.jl:

 if length(pars.warm_start) > 0
        # TODO: warm start currently in developpement
        warm_hubs = parse.(Int, split(pars.warm_start, "-")[1:end-1])
        @show warm_hubs
        y_warm = zeros(Bool, n)
        for i in V
            if i in warm_hubs
                set_start_value(y[i], true)
                y_warm[i] = true
            else
                set_start_value(y[i], false)
            end
        end
        x_warm = zeros(Bool, n, n)
        x′_warm = zeros(Bool, n, n)
        for i in V
            for j ∈ i+1:n
                set_start_value(x[i, j], false)
            end
        end
        for i ∈ 1:length(warm_hubs)-1
            set_start_value(x[mima(warm_hubs[i], warm_hubs[i+1])...], true)
            x_warm[mima(warm_hubs[i], warm_hubs[i+1])...] = true
        end
        for i ∈ 2:length(warm_hubs)-1
            if warm_hubs[i] in tildeV
                x′_warm[mima(warm_hubs[i-1], warm_hubs[i+1])...] = true
            end
        end
        if warm_hubs[end] in tildeV
            x′_warm[mima(warm_hubs[end-1], 1)...] = true
        end
        set_start_value(x[1, warm_hubs[end]], true)
        x_warm[1, warm_hubs[end]] = true
        set_start_value(λ, 0)
        set_start_value(offset, bar_offset)

    end

Ideally, the user could provide the following parameters and the ring as a warm-start:

	pars = SolverParameters(
		solve_mod = BranchBendersCut(),     # ILP, or BranchBendersCut
		F = 7,                              # total failing time F in days per year, see [`PhD manuscript`](https://theses.hal.science/tel-04319443)
		sp_solve = Poly(),
		o_i = 0,                            # opening costs
		s_ij = Euclidian(),                 # star costs
		r_ij = Euclidian(),                 # ring costs
		alpha = 3,                          # See [Labbé et al., 2004](ttps://doi.org/10.1002/net.10114)
		backup_factor = 0.01,               # backup_factor c'=0.01c and d'=0.01c
		writeresults = false,               # output results locally, html or no output ""
		plotting = false,                   # plot_results (to debug)
		tildeV = 100,                       # uncertain nodes set
                warmstart = [1,2,3,4,5,6,7,8,9,10]             # TODO: code it, here, a warm start of the 10 first nodes as a ring
		log_level = 1,                      # console output log_level
		redirect_stdio = false,             # redirecting_stdio to output file
		use_blossom = false,                # use blossom inequalities (not functional yet)
		ucstrat = true,                     # use user cut
	)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions