Skip to content
Snippets Groups Projects
Commit 81a79718 authored by David Radu's avatar David Radu
Browse files

added random search w/ local search algorithm (single partition)

parent d2639ac3
No related branches found
No related tags found
No related merge requests found
using PyCall using PyCall
using Dates using Dates
using Random
include("optimisation_models.jl") include("optimisation_models.jl")
include("MCP_heuristics.jl") include("MCP_heuristics.jl")
...@@ -27,15 +28,32 @@ function main_MIRSA(index_dict, deployment_dict, D, c, N, I, E, T_init, R, run) ...@@ -27,15 +28,32 @@ function main_MIRSA(index_dict, deployment_dict, D, c, N, I, E, T_init, R, run)
x_sol, LB_sol, obj_sol = Array{Float64, 2}(undef, R, L), Array{Float64, 1}(undef, R), Array{Float64, 2}(undef, R, I) x_sol, LB_sol, obj_sol = Array{Float64, 2}(undef, R, L), Array{Float64, 1}(undef, R), Array{Float64, 2}(undef, R, I)
x_init = solve_MILP_partitioning(D, c, n_partitions, index_dict, "Gurobi") x_init = solve_MILP_partitioning(D, c, n_partitions, index_dict, "Gurobi")
for r = 1:R
println("Run ", r, "/", R)
x_sol[r, :], LB_sol[r], obj_sol[r, :] = simulated_annealing_local_search_partition(D, c, n_partitions, N, I, E, x_init, T_init, index_dict)
end
elseif run == "RSSA"
x_sol, LB_sol, obj_sol = Array{Float64, 2}(undef, R, L), Array{Float64, 1}(undef, R), Array{Float64, 2}(undef, R, I)
x_init = zeros(Int64, L)
ind_set = [l for l in 1:L]
n_while = n_partitions[1]
while n_while > 0
loc = sample(ind_set)
deleteat!(ind_set, findall(x->x==loc, ind_set))
x_init[loc] = 1
n_while -= 1
end
x_init = convert.(Float64, x_init)
t1 = now()
for r = 1:R for r = 1:R
println("Run ", r, "/", R) println("Run ", r, "/", R)
x_sol[r, :], LB_sol[r], obj_sol[r, :] = simulated_annealing_local_search_partition(D, c, n_partitions, N, I, E, x_init, T_init, index_dict) x_sol[r, :], LB_sol[r], obj_sol[r, :] = simulated_annealing_local_search_partition(D, c, n_partitions, N, I, E, x_init, T_init, index_dict)
end end
t2 = now()
dt = (t2 - t1)/R
println(dt)
else else
println("No such run available.") println("No such run available.")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment