optimizer
alo
alo
- dramkit.optimizer.alo.alo(objf, func_opter_parms)
蚁狮优化算法(Ant Lion Optimizer) ALO algorithm
Todo
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
base_funcs
TestFuncs
- class dramkit.optimizer.base_funcs.TestFuncs
Bases:
object
测试函数集,输入x须为np.array
- static ackley(x)
- static ackley2(x)
- static f1(x)
平方和
- static f10(x)
- static f11(x)
- static f12(x)
- static f2(x)
绝对值之和加上连乘
- static f3(x)
x[0]^2 + (x[0]+x[1])^2 + (x[0]+x[1]+x[2])^2 + …
- static f4(x)
最小绝对值
- static f5(x)
最大绝对值
- static f6(x)
- static f7(x)
- static f8(x)
- static f9(x)
- static griewank(x)
- static rastrigin(x)
- static rosenbrock(x)
- static schwefel(x)
- static sphere(x)
prod
- dramkit.optimizer.base_funcs.prod(it)
it中的元素连乘
boa
boa
- dramkit.optimizer.boa.boa(objf, func_opter_parms)
蝴蝶优化算法(Butterfly Optimization Algorithm) BOA
Todo
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数p: 全局/局部搜索转化概率power_exponent: a in BOA蝴蝶优化算法.pdf-Eq.(1)sensory_modality: c in BOA蝴蝶优化算法.pdf-Eq.(1)parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
BOA蝴蝶优化算法.pdf
cs
cs
- dramkit.optimizer.cs.cs(objf, func_opter_parms)
布谷鸟搜索算法(Cuckoo Search) CS algorithm
Todo
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数pa: 鸟巢被发现概率alpha, beta: Levy飞行参数parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
ga
ga
- dramkit.optimizer.ga.ga(objf, func_opter_parms)
遗传算法(Genetic Algorithm) GA(实数编码)
Todo
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数p_crs: 交叉概率p_mut: 变异概率n_top: 每一轮(代)保留的最优个体数parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
gwo
gwo
- dramkit.optimizer.gwo.gwo(objf, func_opter_parms)
灰狼优化算法(Grey Wolf Optimizer) GWO algorithm
Todo
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
GWO灰狼优化.pdf
hcpsoboa
hcpsoboa
- dramkit.optimizer.hcpsoboa.hcpsoboa(objf, func_opter_parms)
粒子群-柯西变异-蝴蝶混合优化算法
Todo
添加文中的cubic map随机初始化方法
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数p: 全局/局部搜索转化概率power_exponent: a in BOA蝴蝶优化算法.pdf-Eq.(1)sensory_modality: c in BOA蝴蝶优化算法.pdf-Eq.(1)parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
BOA蝴蝶优化算法.pdf
HPSOBOA粒子群蝴蝶混合优化算法.pdf
柯西变异和自适应权重优化的蝴蝶算法_高文欣.pdf
hho
hho
- dramkit.optimizer.hho.hho(objf, func_opter_parms)
哈里斯鹰优化算法(Harris Hawks Optimizer) HHO algorithm
Todo
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数alpha, beta: Levy飞行参数parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
HHO哈里斯鹰优化.pdf
hpsoboa
hpsoboa
- dramkit.optimizer.hpsoboa.hpsoboa(objf, func_opter_parms)
粒子群蝴蝶混合优化算法(HPSOBOA粒子群蝴蝶混合优化算法.pdf)
Todo
添加文中的cubic map随机初始化方法
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数p: 全局/局部搜索转化概率power_exponent: a in HPSOBOA粒子群蝴蝶混合优化算法.pdf-Eq.(1)sensory_modality: c in HPSOBOA粒子群蝴蝶混合优化算法.pdf-Eq.(1)parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
HPSOBOA粒子群蝴蝶混合优化算法.pdf
pso
pso
- dramkit.optimizer.pso.pso(objf, func_opter_parms)
粒子群优化算法(Particle Swarm Optimization) PSO algorithm
Todo
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数v_maxs: 自变量每个维度单次绝对变化量上界,list或数值,为list时长度应等于dimw_max: 惯性因子w最大值,w用于平衡全局搜索和局部搜索,w值越大全局寻优能力更强w_min: 惯性因子最小值w_fix: 若w_fix设置为(0, 1)之间的值,则惯性因子w固定为w_fix,不进行动态更新默认动态更新w时采用线性递减方法c1, c2: 学习因子parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
utils_heuristic
FuncOpterInfo
- class dramkit.optimizer.utils_heuristic.FuncOpterInfo(parms_func={}, parms_opter={}, parms_log={})
Bases:
object
保存函数参数及优化过程信息
- __init__(parms_func={}, parms_opter={}, parms_log={})
初始化目标函数和优化器信息
- Parameters:
parms_func (dict) – 目标函数信息,默认应包含’func_name’, ‘x_lb’, ‘x_ub’, ‘dim’
parms_opter (dcit) – 优化函数需要用到的参数信息,默认应包含’opter_name’, ‘popsize’, ‘max_iter’
parms_log – 寻优过程中控制打印或日志记录的参数,默认应包含’logger’, ‘nshow’
- property best_val
全局最目标优值
- property best_x
全局最优解
- property convergence_curve
收敛曲线(每轮最优)
- property convergence_curve_mean
收敛曲线(每轮平均)
- property end_time
结束时间
- property exe_time
优化用时(单位秒)
- set_best_val(val)
全局最目标优值设置
- set_best_x(x)
全局最优解设置
- set_convergence_curve(curve)
收敛曲线(每轮最优)设置
- set_convergence_curve_mean(curve)
收敛曲线(每轮平均)设置
- set_end_time(t)
结束时间设置
- set_exe_time(t)
优化用时(单位秒)设置
- set_start_time(t)
开始时间设置
- property start_time
开始时间
rand_init
- dramkit.optimizer.utils_heuristic.rand_init(popsize, dim, lb, ub)
自变量随机初始化
- Parameters:
popsize (int) – 需要初始化的种群数(样本数)
dim (int) – 自变量维度数,dim的值应与lb和ub的长度相等
lb (list) – 自变量每个维度取值下界
ub (list) – 自变量每个维度取值上界
- Returns:
pos – 随机初始化结果,形状为popsize * dim
- Return type:
np.ndarray
sort_population
- dramkit.optimizer.utils_heuristic.sort_population(population, fvals)
个体排序:按fvals值从小到大对population进行排序
- Parameters:
population (np.ndarray) – 所有个体位置(所有解)
fvals (np.array) – 所有个体值列表
- Returns:
population (np.ndarray) – 排序后的种群
fvals (np.array) – 排序后的个体值列表
woa
woa
- dramkit.optimizer.woa.woa(objf, func_opter_parms)
鲸鱼优化算法(Whale Optimization Algorithm) WOA
Todo
目前仅考虑自变量连续实数情况,以后可增加自变量为离散的情况
- Parameters:
objf (function) – 目标函数。注:须事先转化为求极小值问题
func_opter_parms (FuncOpterInfo) –
dramkit.optimizer.utils_heuristic.FuncOpterInfo
类, 须设置parms_func、parms_opter、parms_logparms_func为目标函数参数信息dict,key须包含:x_lb: 自变量每个维度取值下界,list或数值,为list时长度应等于dimx_ub: 自变量每个维度取值上界,list或数值,为list时长度应等于dimdim: 自变量维度数kwargs: 目标函数接收的其它参数parms_opter: 优化函数参数信息dict,key须包含:popsize: 群体数量(每轮迭代的样本数量)max_iter: 最大迭代寻优次数parms_log: 日志参数信息dict,key须包含:logger: 日志记录器nshow: 若为整数,则每隔nshow轮日志输出当前最优目标函数值
- Returns:
func_opter_parms – 更新优化过程之后的func_opter_parms
- Return type:
References
WOA鲸鱼优化算法.pdf