扫码关注官方订阅号
现在一个吊扇有32个叶片,并且每个叶片质量不一样,因此其叶片的离心力矢量和会导致吊扇剧烈振动,现请教一个算法,如何用程序循环得出能够使得这些叶片的矢量和最小的组合?以javascript为例,目前项目需要,但苦苦冥思几天都难以破解,求智商高的达人
走同样的路,发现不同的人生
智商低禁入的意思呗。
因为你的问题正文不爽好几次了。会好好说话不?
长眼睛了就看看你自己的提问记录,快成SF公敌了。长点心反思反思会死吗?
这是背包问题的变种子集和问题并且是多维度的。我记得解法是伪多项式时间的动态规划。(解的量本身出现在时间复杂度表达式中,时间复杂度不纯是n的函数。)
伪多项式做起来是很啰嗦的,需要按照实际问题的规模,对重量本身做整数化、离散化处理才能做到。
或者也可以考虑用随机化算法(随机爬山法等),在合理的时间内慢慢爬一个不那么差的解。
补充1:
最后的解怎么算必须注意一下。不能非常单纯的只把矢量和作为解。因为这样做的结果就是:最优解是空集{},矢量和准确等于0。
{}
对付空集最优,也许可以用阶跃的方法加权(子集大小为0时给解加上+Infinity)。
+Infinity
还有其他问题,比如说所有扇叶一样大的时候,就只会找出两个对侧扇叶的解。对付这个,也许也可以把子集大小当作比较过程中的次要关键字——解一样大(或很接近)的时候多的比较好。
总之就是:多多少少需要把子集的大小,纳入解当中作为考虑。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
智商低禁入的意思呗。
因为你的问题正文不爽好几次了。会好好说话不?
长眼睛了就看看你自己的提问记录,快成SF公敌了。长点心反思反思会死吗?
这是背包问题的变种子集和问题并且是多维度的。我记得解法是伪多项式时间的动态规划。(解的量本身出现在时间复杂度表达式中,时间复杂度不纯是n的函数。)
伪多项式做起来是很啰嗦的,需要按照实际问题的规模,对重量本身做整数化、离散化处理才能做到。
或者也可以考虑用随机化算法(随机爬山法等),在合理的时间内慢慢爬一个不那么差的解。
补充1:
最后的解怎么算必须注意一下。不能非常单纯的只把矢量和作为解。因为这样做的结果就是:最优解是空集
{}
,矢量和准确等于0。对付空集最优,也许可以用阶跃的方法加权(子集大小为0时给解加上
+Infinity
)。还有其他问题,比如说所有扇叶一样大的时候,就只会找出两个对侧扇叶的解。对付这个,也许也可以把子集大小当作比较过程中的次要关键字——解一样大(或很接近)的时候多的比较好。
总之就是:多多少少需要把子集的大小,纳入解当中作为考虑。