我试图编写一个可以解决以下问题的MATLAB算法
var waitingResponses = [];
//joins new game (username,password)
app.post('/game/join', function(req, res) {
var username = req.body.username;
var password = req.body.password;
if(pendingJoinRequests.length) {
var waitingPlayerResponse = waitingResponses.shift();
waitingPlayerResponse.send('Game Started'+username);
res.send('Game Started');
}
else {
waitingResponses.push(res);
}
});
我问过这个问题here。虽然没有答案可以解决问题,但有些回复为我提供了如何自己回答问题的线索。有人向我建议这个问题是NP-Hard,但是因为我对复杂性类只有CS101的理解,所以我很难理解这个问题。
我怎么知道是否是这种情况?如果它是NP-Hard,我应该放弃尝试寻找解决方案吗?
答案 0 :(得分:0)
NP-Hard是一种说法在多项式时间内无法解决问题的方法。因此,要放弃这个问题,你必须证明你的问题在多项式时间内无法解决。 由于你的约束条件(1)和(3)基本相同,我对你的问题表达方式感到很困惑。在约束(2)中,它应该是一个不等式条件,因为你想要优化它,如sum()< = n。
subject to
0 <= x(i) <= 1 for all i (1)
sum(x)==n (2)
x(i) is either 1 or 0 for all i (3)
如果您想坚持使用Matlab,Yalmip是您可以考虑的选项之一。
答案 1 :(得分:0)
问题是一般的二次0-1问题,因此是NP难的。这个断言的来源是Pardalos & Jha (1992)。我从this answer了解了这篇论文,并提到了我提出的相关问题。
Pardalos,P。M.,&amp; Jha,S。(1992)。二次0-1编程中唯一性和局部搜索的复杂性。运筹学快报,11(2),119-123。答案 2 :(得分:0)
当parameterized为n时,您的问题为W[1] - 很难,从independent set缩小。
applies even if the entries of S are given中的unary。
S = adjacency_matrix +(number_of_vertices - 1)* identity_matrix
通过Gershgorin Circle Theorem,这样的矩阵S总是半正定的。