g*z 发帖数: 124 | 1 以知函数
(y1,y2,y3,y4,y5,y6,y7,y8)=f(x1,x2,x3,x4,x5,x6,x7)
变量x1,x2,x3,x4,x5,x6,x7为二进制数, x1,x3,x3,x4各有6比特,x5,x6各有3比特,x7
有7比特,所有变量一共37比特
计算结果y1,y2,y3,y4,y5,y6,y7,y8都是实数
函数f计算程序完成一次计算时间需要30秒左右
现在的目标是, 给定一组向量(z1,z2,z3,z4,z5,z6,z7,z8), 找出一组X, 使得
(y1-z1)^2+(y2-z2)^2+(y3-z3)^2+(y4-z4)^2+(y5-z5)^2+(y6-z6)^2+(y7-z7)^2+(y8-z8
)^2
尽可能的小,小于某个目标值
有什么合适的算法可以应用吗? 穷举法cost太高了。 | a****a 发帖数: 5763 | 2 你这函数啥特性都没,怎么弄算法阿
x7
z8
【在 g*z 的大作中提到】 : 以知函数 : (y1,y2,y3,y4,y5,y6,y7,y8)=f(x1,x2,x3,x4,x5,x6,x7) : 变量x1,x2,x3,x4,x5,x6,x7为二进制数, x1,x3,x3,x4各有6比特,x5,x6各有3比特,x7 : 有7比特,所有变量一共37比特 : 计算结果y1,y2,y3,y4,y5,y6,y7,y8都是实数 : 函数f计算程序完成一次计算时间需要30秒左右 : 现在的目标是, 给定一组向量(z1,z2,z3,z4,z5,z6,z7,z8), 找出一组X, 使得 : (y1-z1)^2+(y2-z2)^2+(y3-z3)^2+(y4-z4)^2+(y5-z5)^2+(y6-z6)^2+(y7-z7)^2+(y8-z8 : )^2 : 尽可能的小,小于某个目标值
| j*******o 发帖数: 34 | 3 试试先用普通的连续定义域的算法,极值啊,龙格库塔,牛顿,雅各布什么的。
然后映射到你的X上。可能用浮点数就可以了。 |
|