问题描述
我有一个背包填充类型的问题,我有很多候选项目,必须填写许多背包,直到我用完项目。 随着候选项目数量的增加,问题解决时间似乎急剧增加。 问题
似乎是n!/(n-k)! 。 选择的数量通常是4到6个项目。 在我的笔记本电脑上,从40个项目开始大约需要20秒, 从50个项目开始需要120秒。 不完全确定
需要多长时间200个项目(将尝试在一夜之间运行)。
I have a knapsack filling type problem where I have lots of candidate items and have to fill many knapsacks until I run out of items. As the number of candidate items goes up the problem solving time seems to go up drastically. Problem seems to be n!/(n-k)! . The number of choices are usually 4 to 6 items. On my laptop, starting with 40 items takes about 20 seconds, starting with 50 items takes 120 seconds. Not exactly sure how long 200 items would take ( will try running it overnight ).
微软求解器基础可以在MS云中运行吗?经济或快速还是更好的获得高性能机器? 解算器可以在nvidia cuda框架中运行吗? 应该考虑哪些其他策略
来更快地解决?
Can the microsoft solver foundation run in the MS cloud and would this be economical or fast or would it be better to get a high performance machine? Can the solver run in a nvidia cuda framework? What other strategies should be considered to solve faster?
推荐答案
我的印象是云如果您可以设法在可以并行处理的较小问题中解决个别问题,那么它只会帮助您。如果问题无法在单独的问题中被解决,那么抛出一台比现有机器强大一个数量级的机器,只能获得适度增加的问题。
My impression is that the cloud is only going to help you if you can manage to break an individual problem in smaller problems you can handle in parallel. If the problem cannot be broken in separate problems, then throwing a single machine which will be only an order of magnitude more powerful than your current machine will only gain a modest increase in the size of problems you can handle.
如果你可以将问题分解为可并行化的子问题,那将是一个不同的故事,因为现在你可以在你的问题中投入大量机器并行工作。
If you can break your problem into parallelizable sub-problems, that would be a different story, because now you can throw an army of machines at your problem, working in parallel.
希望有所帮助!
这篇关于解算器可以在Microsoft Cloud中运行吗?更快解决的策略?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!