3 ms·
NP-completeness doesn't say anything about the difficulty of a specific instance of a given problem. It's trivial to construct CNF formulas that are solvable in
by algorias 13y ago
NP-completeness doesn't say anything about the difficulty of a specific instance of a given problem. It's trivial to construct CNF formulas that are solvable in polynomial time, for example.
An algorithm that is able to determine for every Zelda level, in polynomial time, whether or not the exit can be reached from the start is something quite different. As shown in this paper, this would imply that the same algorithm can solve every instance of every problem in NP efficiently, a.k.a. answer the million dollar question.
A cleaner way of stating the results of the paper would be: "The puzzle mechanics of Zelda are NPC". This statement is harder to misread, though I wouldn't hold my breath given the extreme illiteracy concerning theoretical computer science prevalent even among programmers with a degree, never mind the internet.
- Dylan16807 13y agoZelda is not simply a single instance of a static puzzle with a well-defined solution, it has code creating things dynamically. The title implies that the NP-complete problems are part of the actual gameplay. If you're only looking at mechanics you can pick nearly any game with movement and pull out traveling salesman.
- chipsy 13y agoI had this argument with my brother too, who is a mathematician. He was able to enjoy it on its own terms, I wasn't. As he concluded, "they couldn't solve an interesting problem, so they solved an uninteresting one instead." And from a certain stance, these fabricated problems do hold a bit of interest, especially when you consider how many mathematicians go out of their way to be impractical. Referencing the games confuses their work more than anything else, though.
- algorias 13y agoA straight up implementation of TSP (I assume you mean the decision variant) needs some kind of door that shuts with a timer. How do you plan to encode arbitrary graphs? This poses a challenge for 2d platformers. In case of any 2d game, how do you encode non-planar graphs? You would need some kind of teleportation device. A graph with few edges and large edge values will also be problematic if you plan on keeping your input size polynomial (in |V| and |E|), as you'd need a widget capable of encoding an arbitrarily long edge in constant map space. Once you have solved all the above problems, feel free to write a paper about it ;).
- Dylan16807 13y agoThose features are nice but unnecessary. Just use planar graphs. Then you don't have to enforce single-visiting either. Limited scrolling will bound the longest edges but you don't need arbitrary edges. Only problems of a limited size will be able to fit in the limited memory of the game but that's still NP-complete over what does fit.