我试图标记一些numpy向量(matrixm),以便标签显示Pareto前沿索引。在
例如,非支配向量集(v0
)将用Pareto前沿指数0
标记,非支配向量集v1(v1=M-v0)将用索引1
标记,非支配向量的下一个集合/边界v2(v2=M-v0-v1)2
等,直到矩阵M的所有向量都被标记。在
我已经把一些测试用例放在一起,但是不管我提出什么,要么效率极低(目前不太在意),要么就是不起作用。在
mat1 = np.asarray([
[1, 2, 3, 4, 5, 7],
[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6],
])
calc_fronts(mat1) == [0, 1, 1]
mat2 = np.asarray([
[1, 2, 3, 4, 5, 7],
[1, 2, 3, 4, 5, 6],
[1, 22, 3, 4, 5, 6],
])
calc_fronts(mat2) == [0, 1, 0]
mat3 = np.asarray([
[1, 2, 3, 4, 5, 7],
[1, 2, 3, 4, 5, 5],
[1, 2, 2, 4, 5, 4],
])
calc_fronts(mat3) == [0, 1, 2]
mat4 = np.asarray([
[0, 2, 3, 4, 5, 7],
[1, 2, 3, 4, 5, 6],
[1, 22, 2, 4, 5, 6],
])
calc_fronts(mat4) == [0, 0, 0]
如果x中的每个a,y中的b:a>;=b中至少存在一个a且a>;b的向量x支配y。在
这是我的尝试:
^{pr2}$
这是我的一个相当繁重的尝试,希望能给你一些新的想法。但是要知道,创建了一个(m,m,n)temp数组(当
M
是(m,n)形状时)。在演示:
^{pr2}$相关问题 更多 >
编程相关推荐