【发布时间】:2017-08-06 06:54:28
【问题描述】:
我有以下目标要完成。 假设我有以下设置
1,2,3,4,5,6
然后是3个条件
the first number must be even
the second number must be odd
the sum of first 3 numbers must be 12
为了找到合适的集合,我的目标是生成随机集合并检查它们是否满足条件。
1,3,2,5,4,6 - 0 conditions
2,4,3,5,6,1 - 1 condition
2,3,4,5,6,1 - 2 conditions
4,5,3,2,6,1 - 3 conditions. All conditions met, this is our set
这是一个非常基本的示例,它将包含更多数据和更多条件。为什么我用这种方式来查找集合?因为有这么多规则将无法找到合适的集合,有时也无法找到满足所有条件的集合,因此我将进行验证,例如,允许满足 80% 以上条件的集合。
所以我想在多台服务器上处理这个,直到找到一个有效的集合。可能我会使用 Amazon s3 实例。
我正在研究 RabbitMQ 和 Celery,但据我了解,它们更像是队列设置,而不是并行处理。另外,我可能需要用 PHP 和 node.js 编写这个
我也想有一个主服务器和从服务器。从服务器将开始生成和验证集合,并将结果发送给使用 rabbit me 的主服务器。一旦找到集合,主服务器将关闭从服务器。
不确定这是否是正确的方法(专业和优化方面)
我应该使用什么软件?有什么好的方法来实现它?
谢谢!
【问题讨论】:
-
你确定不能只根据给定的规则生成有效的集合吗?
-
+1 @Cristy 的评论。此外,您需要所有正确的集合,只需要一个,还是需要一定数量的正确集合?这将对解决方案产生很大影响
-
@Cristy 有很多变量是不可能做到的。我们尝试过,其他人也尝试过,但它变得如此复杂。
-
@AlexBuyny 我可能会尝试找到更多。我可能会得到前 5 个结果,然后我们将选择最适合我们的集合。
标签: php node.js parallel-processing rabbitmq celery