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

push from pan, updated SGHSA method

parent 7bf503ea
No related branches found
No related tags found
No related merge requests found
......@@ -21,7 +21,7 @@ function myunpickle(filename)
end
function main_MIRSA(index_dict, deployment_dict, D, c, N, I, E, T_init, R, run, p)
function main_MIRSA(index_dict, deployment_dict, D, c, N, I, E, T_init, R, run, p, data_path)
index_dict = Dict([(convert(Int64, k), convert(Int64, index_dict[k])) for k in keys(index_dict)])
deployment_dict = Dict([(convert(Int64, k), convert(Int64, deployment_dict[k])) for k in keys(deployment_dict)])
......@@ -35,6 +35,7 @@ function main_MIRSA(index_dict, deployment_dict, D, c, N, I, E, T_init, R, run,
R = convert(Int64, R)
run = string(run)
p = convert(Float64, p)
data_path = string(data_path)
legacy_index = Vector{Int64}(undef, 0)
W, L = size(D)
......@@ -73,18 +74,18 @@ function main_MIRSA(index_dict, deployment_dict, D, c, N, I, E, T_init, R, run,
elseif run == "SGH"
R_init = 10
x_init, LB_init = Array{Float64, 2}(undef, R_init, L), Array{Float64, 1}(undef, R_init)
for r = 1:R_init
x_init[r, :], LB_init[r] = stochastic_threshold_greedy_algorithm(D, c, n, p)
end
LB_init_best = argmax(LB_init)
x_init_best = x_init[LB_init_best, :]
println("Initial solution computed. Starting LS.")
sample_size = 10
LB_init = myunpickle(joinpath(data_path, "objective_vector.p"))
x_init = myunpickle(joinpath(data_path, "solution_matrix.p"))
x_sol, LB_sol, obj_sol = Array{Float64, 2}(undef, R, L), Array{Float64, 1}(undef, R), Array{Float64, 2}(undef, R, I)
for r = 1:R
println(r, "/", R, "for", c)
LB_init_best = argmax(sample(LB_init, sample_size, replace=false))
x_init_best = x_init[LB_init_best, :]
x_sol[r, :], LB_sol[r], obj_sol[r, :] = simulated_annealing_local_search(D, c, n, N, I, E, x_init_best, T_init, legacy_index)
end
......
......@@ -128,6 +128,8 @@ if __name__ == '__main__':
params = siting_parameters['solution_method']['LS']
jl_dict = generate_jl_input(deployment_dict, site_coordinates)
path_to_sol = '10y_n560_k1_c' + str(args['c']) + '_GRED_STGH_p27'
path_to_init_sol_folder = join(data_path, 'output', path_to_sol)
import julia
j = julia.Julia(compiled_modules=False)
......@@ -139,11 +141,11 @@ if __name__ == '__main__':
criticality_data, c, params['neighborhood'],
params['no_iterations'], params['no_epochs'],
params['initial_temp'], params['no_runs'],
args['LS_init_algorithm'], args['p'])
args['LS_init_algorithm'], args['p'], path_to_init_sol_folder)
end = time.time()
print(f"Average CPU time for c={c}: {round((end-start)/params['no_runs'], 1)} s")
output_folder = init_folder(model_parameters, c, suffix=f"_LS_{args['LS_init_algorithm']}")
output_folder = init_folder(model_parameters, c, suffix=f"_LS_{args['LS_init_algorithm']}_quattro")
with open(join(output_folder, 'config_model.yaml'), 'w') as outfile:
yaml.dump(model_parameters, outfile, default_flow_style=False, sort_keys=False)
......
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