启发式算法经典例题,算法式和启发式举例

首页 > 教育 > 作者:YD1662024-05-15 11:14:45

模拟退火算法

模拟退火算法用于多元函数优化

1.定义问题

demo_func = lambda x: x[0] ** 2 (x[1] - 0.05) ** 2 x[2] ** 2

2.运行模拟退火算法

from sko.SA import SA sa = SA(func=demo_func, x0=[1, 1, 1], T_max=1, T_min=1e-9, L=300, max_stay_counter=150) best_x, best_y = sa.run() print('best_x:', best_x, 'best_y', best_y)

3.画出结果

import matplotlib.pyplot as plt import pandas as pd plt.plot(pd.DataFrame(sa.best_y_history).cummin(axis=0)) plt.show()

启发式算法经典例题,算法式和启发式举例(5)

蚁群算法

蚁群算法(ACA, Ant Colony Algorithm)解决TSP问题

from sko.ACA import ACA_TSP aca = ACA_TSP(func=cal_total_distance, n_dim=num_points, size_pop=50, max_iter=200, distance_matrix=distance_matrix) best_x, best_y = aca.run(

启发式算法经典例题,算法式和启发式举例(6)

免疫优化算法

from sko.IA import IA_TSP ia_tsp = IA_TSP(func=cal_total_distance, n_dim=num_points, size_pop=500, max_iter=800, prob_mut=0.2, T=0.7, alpha=0.95) best_points, best_distance = ia_tsp.run() print('best routine:', best_points, 'best_distance:', best_distance)

启发式算法经典例题,算法式和启发式举例(7)

人工鱼群算法

def func(x): x1, x2 = x return 1 / x1 ** 2 x1 ** 2 1 / x2 ** 2 x2 ** 2 from sko.AFSA import AFSA afsa = AFSA(func, n_dim=2, size_pop=50, max_iter=300, max_try_num=100, step=0.5, visual=0.3, q=0.98, delta=0.5) best_x, best_y = afsa.run() print(best_x, best_

想要学习更多算法类开源项目?点击下方了解更多前往 Gitee 看看。

上一页12末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.