minisat随机化变量选择在gcloud上不起作用

minisat随机化变量选择在gcloud上不起作用,gcloud,constraint-programming,sat,sat-solvers,Gcloud,Constraint Programming,Sat,Sat Solvers,每次运行miniat时,我都希望得到不同的解决方案。我可以使用miniat的“rnd seed”参数来实现这一点。它只是随机化变量选择,这样每次我都可以得到不同的解决方案。尽管这个参数在我的机器(Ubuntu16)上运行得很好,但在Ubuntu机器上运行的gcloud(谷歌云)上却不起作用 我想我遗漏了一小部分,但我不知道那是什么 注意:我不想将解决方案的协商反馈给minisat以获得不同的解决方案。我实际上需要随机选择变量 编辑:让我解释一下为什么我需要随机解决方案。我解决了很多SAT问题,通

每次运行miniat时,我都希望得到不同的解决方案。我可以使用miniat的“rnd seed”参数来实现这一点。它只是随机化变量选择,这样每次我都可以得到不同的解决方案。尽管这个参数在我的机器(Ubuntu16)上运行得很好,但在Ubuntu机器上运行的gcloud(谷歌云)上却不起作用

我想我遗漏了一小部分,但我不知道那是什么

注意:我不想将解决方案的协商反馈给minisat以获得不同的解决方案。我实际上需要随机选择变量

编辑:让我解释一下为什么我需要随机解决方案。我解决了很多SAT问题,通常这些SAT问题看起来很像。所以,如果我不能随机变量选择,我会得到很多我不想要的非常相似的解。因此,我实际上没有在同一个问题上运行miniat


编辑-2:@sascha想让我解释我所说的“工作”和“不工作”是什么意思。当我在电脑上运行cnf文件时,每次都会得到不同的解决方案。然而,当我在gcloud机器上运行相同的cnf文件时,我总是得到相同的解决方案

选项-rnd seed不会随机化分支变量选择。相反,它允许您为miniat使用的伪随机数生成器设置种子


分支的变量选择不涉及随机性,除非使用-rnd freq选项。传入介于0和1之间的浮点值。0表示没有随机性,1表示尝试在每个分支使用随机变量。这段代码只做了一次随机选择变量的尝试,大概是因为在任意大的优先级队列中搜索未设置的变量会非常昂贵。如果一次尝试失败,miniat将使用正常优先级队列进行分支。

这种方法可能根本无法保证。你真的确定这就是我要走的路吗?我也愿意接受其他建议。我所需要做的就是得到一个不同的解决方案。但不同的解决方案必须完全随机。我总是在我的机器和其他几个服务器上使用这种方法。它总是有效的。如果完全随机意味着:均匀抽样,那么你走错了路(它不会那样工作!)。你会发现一些(潜在的可怕的)信息。是的,我能理解。完全随机是可怕的:)我用错了词。让我纠正一下。我只需要用基本的随机化技术对变量选择进行随机化,而不是加密随机化。你似乎不明白我在说什么。你对SAT解算器、算法、NP硬度和co.了解多少。?你的工作有多科学?你所做的,会在很多问题上失败。但直到现在,甚至还没有一个真正的规范:统一采样,这是人们有时试图实现的一件事,与PRNG和cryptoPRNG无关。(CDCL)SAT解算器是启发式的,具有高度的偏见。变量选择并没有改变所有这一切(但有时看起来是这样的;当然,在这个问题上有很大的进展)。请阅读我的链接中提到的文章,并做到准确!由于某种原因,我无法访问我的gcloud帐户。一旦我再次连接,我将尝试让您知道结果。