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

jl gurobi time limits updated.

parent 68b641a3
No related branches found
No related tags found
No related merge requests found
......@@ -68,13 +68,16 @@ solution_method:
algorithm: 'SALS' #'GLS'
which_sol: 'rand' #'rand'
seed: 1
RGH:
set: False
c: [1, 106, 212, 318, 424, 530]
RAND:
set: False
c: [50]
no_iterations: 5
no_epochs: 2
no_runs: 9
seed: 2
c: [530]
no_iterations: 50
no_epochs: 100
no_runs: 1
seed: 1
#deployment_constraint: 'country'
deployment_vector: {'EU': {'wind_onshore': 530}}
......
......@@ -36,6 +36,13 @@ function main_call(index_dict, deployment_dict, D, c, N, I, E, T_init, R, run)
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 == "GRH"
x_sol, LB_sol = Array{Float64, 2}(undef, R, L), Array{Float64, 1}(undef, R)
for r = 1:R
println("Run ", r, "/", R)
x_sol[r, :], LB_sol[r] = randomised_greedy_heuristic(D, c, n)
obj_sol = ''
end
else
println("No such run available.")
throw(ArgumentError)
......
......@@ -172,11 +172,12 @@ elif parameters['solution_method']['HEU']['set']:
with open(join(output_folder, 'config_model.yaml'), 'w') as outfile:
yaml.dump(parameters, outfile, default_flow_style=False, sort_keys=False)
pickle.dump(jl_selected, open(join(output_folder, 'solution_matrix.p'), 'wb'), protocol=4)
pickle.dump(jl_objective, open(join(output_folder, 'objective_vector.p'), 'wb'), protocol=4)
pickle.dump(jl_traj, open(join(output_folder, 'trajectory_matrix.p'), 'wb'), protocol=4)
pickle.dump(jl_selected, open(join(output_folder, 'solution_matrix.p'), 'wb'))
pickle.dump(jl_objective, open(join(output_folder, 'objective_vector.p'), 'wb'))
pickle.dump(jl_traj, open(join(output_folder, 'trajectory_matrix.p'), 'wb'))
if c == parameters['solution_method']['HEU']['c'][0]:
pickle.dump(input_dict['criticality_data'], open(join(output_folder, 'criticality_matrix.p'), 'wb'), protocol=4)
pickle.dump(input_dict['criticality_data'], open(join(output_folder, 'criticality_matrix.p'), 'wb'),
protocol=4)
#if parameters['solution_method']['HEU']['which_sol'] == 'max':
# jl_objective_seed = max(jl_objective)
......@@ -205,6 +206,52 @@ elif parameters['solution_method']['HEU']['set']:
# jl_locations = retrieve_location_dict_jl(jl_selected_seed, parameters, input_dict, indices)
# retrieve_site_data(c, parameters, input_dict, output_folder, jl_locations, jl_objective_seed)
elif parameters['solution_method']['RGH']['set']:
custom_log(' RGH chosen to solve the IP. Opening a Julia instance.')
import julia
if not isinstance(parameters['solution_method']['HEU']['c'], list):
raise ValueError(' Values of c have to elements of a list for the heuristic set-up.')
jl_dict = generate_jl_output(parameters['deployment_vector'],
input_dict['criticality_data'],
input_dict['coordinates_data'])
jl = julia.Julia(compiled_modules=False)
from julia.api import Julia
fn = jl.include("jl/main_heuristics.jl")
for c in parameters['solution_method']['HEU']['c']:
print('Running heuristic for c value of', c)
start = time.time()
jl_selected, jl_objective, jl_traj = fn(jl_dict['index_dict'],
jl_dict['deployment_dict'],
jl_dict['criticality_matrix'],
c,
parameters['solution_method']['HEU']['neighborhood'],
parameters['solution_method']['HEU']['no_iterations'],
parameters['solution_method']['HEU']['no_epochs'],
parameters['solution_method']['HEU']['initial_temp'],
parameters['solution_method']['HEU']['no_runs'],
parameters['solution_method']['HEU']['algorithm'])
end = time.time()
noruns = parameters['solution_method']['HEU']['no_runs']
dt = (end - start) / noruns
print(f'Average time per run: {dt}')
output_folder = init_folder(parameters, input_dict, suffix='_c' + str(c) + '_GRH')
with open(join(output_folder, 'config_model.yaml'), 'w') as outfile:
yaml.dump(parameters, outfile, default_flow_style=False, sort_keys=False)
pickle.dump(jl_selected, open(join(output_folder, 'solution_matrix.p'), 'wb'))
pickle.dump(jl_objective, open(join(output_folder, 'objective_vector.p'), 'wb'))
pickle.dump(jl_traj, open(join(output_folder, 'trajectory_matrix.p'), 'wb'))
if c == parameters['solution_method']['HEU']['c'][0]:
pickle.dump(input_dict['criticality_data'], open(join(output_folder, 'criticality_matrix.p'), 'wb'),
protocol=4)
else:
raise ValueError(' This solution method is not available. Retry.')
......
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