你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-07 23:14:03 +08:00
Moved initialisation of fitness values list to inside optimisation loop as it should be cleared for every new iteration.
这个提交包含在:
@@ -81,7 +81,7 @@ def main():
|
|||||||
from user_libs.optimisations.taguchi import taguchi_code_blocks, select_OA, calculate_ranges_experiments, calculate_optimal_levels
|
from user_libs.optimisations.taguchi import taguchi_code_blocks, select_OA, calculate_ranges_experiments, calculate_optimal_levels
|
||||||
|
|
||||||
# Default maximum number of iterations of optimisation to perform (used if the stopping criterion is not achieved)
|
# Default maximum number of iterations of optimisation to perform (used if the stopping criterion is not achieved)
|
||||||
maxiterations = 20
|
maxiterations = 15
|
||||||
|
|
||||||
# Process Taguchi code blocks in the input file; pass in ordered dictionary to hold parameters to optimise
|
# Process Taguchi code blocks in the input file; pass in ordered dictionary to hold parameters to optimise
|
||||||
tmp = usernamespace.copy()
|
tmp = usernamespace.copy()
|
||||||
@@ -113,8 +113,6 @@ def main():
|
|||||||
levelsopt = np.zeros(k, dtype=floattype)
|
levelsopt = np.zeros(k, dtype=floattype)
|
||||||
# Difference used to set values for levels
|
# Difference used to set values for levels
|
||||||
levelsdiff = np.zeros(k, dtype=floattype)
|
levelsdiff = np.zeros(k, dtype=floattype)
|
||||||
# Fitness values for each experiment
|
|
||||||
fitnessvalues = []
|
|
||||||
# History of fitness values from each confirmation experiment
|
# History of fitness values from each confirmation experiment
|
||||||
fitnessvalueshist = []
|
fitnessvalueshist = []
|
||||||
|
|
||||||
@@ -124,6 +122,9 @@ def main():
|
|||||||
numbermodelruns = N
|
numbermodelruns = N
|
||||||
usernamespace['number_model_runs'] = numbermodelruns
|
usernamespace['number_model_runs'] = numbermodelruns
|
||||||
|
|
||||||
|
# Fitness values for each experiment
|
||||||
|
fitnessvalues = []
|
||||||
|
|
||||||
# Set parameter ranges and define experiments
|
# Set parameter ranges and define experiments
|
||||||
optparams, levels, levelsdiff = calculate_ranges_experiments(optparams, optparamsinit, levels, levelsopt, levelsdiff, OA, N, k, s, i)
|
optparams, levels, levelsdiff = calculate_ranges_experiments(optparams, optparamsinit, levels, levelsopt, levelsdiff, OA, N, k, s, i)
|
||||||
|
|
||||||
@@ -242,6 +243,10 @@ def main():
|
|||||||
if fitnessvalueshist[i - 1] > fitness['stop']:
|
if fitnessvalueshist[i - 1] > fitness['stop']:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
# Save optimisation parameters history and fitness values history to file
|
||||||
|
opthistfile = inputfileparts[0] + '_hist'
|
||||||
|
np.savez(opthistfile, dict(optparamshist), fitnessvalueshist)
|
||||||
|
|
||||||
print('\n{}\nTaguchi optimisation completed after {} iteration(s).\nConvergence history of optimal values {} and of fitness values {}\n{}\n'.format(68*'*', i, dict(optparamshist), fitnessvalueshist, 68*'*'))
|
print('\n{}\nTaguchi optimisation completed after {} iteration(s).\nConvergence history of optimal values {} and of fitness values {}\n{}\n'.format(68*'*', i, dict(optparamshist), fitnessvalueshist, 68*'*'))
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
|
在新工单中引用
屏蔽一个用户