You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于双准则的K候选解筛选算法优化:求线性复杂度方案

优化算法初始化阶段的种群筛选优化问题

背景

本场景针对优化算法(如差分进化)的初始化阶段,需要生成代表解参数的随机向量种群。我们正在设计比随机初始化更优的新方法,最终要从M个候选解中筛选出N个(通常M超过100,N取30)。

核心需求

筛选出的N个解需同时满足两个准则:

  • 最大化解间距离
  • 整体适应度表现更优(本算法中适应度值越低,解的性能越好)

当前方案及问题

当前采用全组合枚举法:生成所有N个解的组合,计算每个组合的总距离与总适应度,绘制帕累托前沿后从中选取解。但该方法在种群规模较大时运行速度极慢。

代码实现

import math
import itertools
import numpy as np
import matplotlib.pyplot as plt

from paretoset import paretoset


def distance_matrix(a):
    b = a.reshape(a.shape[0], 1, a.shape[1])
    dist = np.sqrt(np.einsum('ijk, ijk->ij', a-b, a-b))
    return dist

samples = np.random.random([10, 2])*10.0
fitness = [math.dist(p, [0,0]) for p in samples]
n_pop = 3

for s,f in zip(samples, fitness):
    print(f'{s}({f})')

# 筛选最优n_pop个分散点的附加代码
# 计算距离矩阵
dist = distance_matrix(samples)
print(f'{dist})')

# 计算所有组合的总距离与总适应度
aggregated_distances = []
aggregated_fitness = []
solutions = []
combs = itertools.combinations(range(len(samples)), n_pop)
print('main loop')
for c in combs:
    # 存储当前组合
    solutions.append(c)
    # 计算组合总距离
    agg_dist = 0.0
    for i in c:
        for j in c:
            agg_dist += dist[i][j]
    aggregated_distances.append(agg_dist)
    # 计算组合总适应度
    agg_fit = 0.0
    for s in c:
        agg_fit += fitness[s]
    aggregated_fitness.append(agg_fit)

aggregated_distances = np.array(aggregated_distances)
aggregated_fitness = np.array(aggregated_fitness)
solutions = np.array(solutions)

plt.plot(aggregated_distances, aggregated_fitness, 'o')

for s,d,f in zip(solutions, aggregated_distances, aggregated_fitness):
    print(f'{s} {d} {f})')

# 计算帕累托最优解
objective_values_array = np.vstack([aggregated_distances, aggregated_fitness]).T
print(f'{objective_values_array.shape}')
mask = paretoset(objective_values_array, sense=['max', 'min'])
print(f'{mask}')
print(solutions[mask])
plt.plot(aggregated_distances[mask], aggregated_fitness[mask], 'o')
plt.show()

问询

是否存在更优的实现方法?理想为线性复杂度方案,线性规划是否可作为解决方案?


内容的提问来源于stack exchange,提问作者mariolpantunes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:13:15