# np-hard

Published articles for np-hard.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## NP-hard does not mean hard

DevFeed: [NP-hard does not mean hard](<https://devfeed.tech/articles/np-hard-does-not-mean-hard-40418.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2017/12/29/np-hard-does-not-mean-hard/>)

Published: 2017-12-29T13:30:23Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [completeness](<https://devfeed.tech/tags/completeness.md>), [complexity-theory](<https://devfeed.tech/tags/complexity-theory.md>), [logic](<https://devfeed.tech/tags/logic.md>), [mario](<https://devfeed.tech/tags/mario.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [np-completeness](<https://devfeed.tech/tags/np-completeness.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [problems](<https://devfeed.tech/tags/problems.md>), [real-world](<https://devfeed.tech/tags/real-world.md>), [regular-languages](<https://devfeed.tech/tags/regular-languages.md>), [solve](<https://devfeed.tech/tags/solve.md>), [time](<https://devfeed.tech/tags/time.md>)

### AI overview

This article explains that NP-hardness is a worst-case mathematical property, not a claim that a problem is always difficult for humans or algorithms. Using Super Mario as an example, it shows how game levels can encode boolean logic and why solving the game in full generality would encompass hard computational problems, while ordinary real-world levels may still be solvable efficiently.

### Source excerpt

When NP-hardness pops up on the internet, say because some silly blogger wants to write about video games, it's often tempting to conclude that the problem being proved NP-hard is actually very hard! "Scientists proved Super Mario is NP-hard? I always knew there was a reason I wasn't very good at it!" Sorry, these two are unrelated. NP-hardness means hard in a narrow sense this post should hopefully make clear. After that, we'll explore what "hard" means in a mathematical sense that you can apply beyond NP-hardness to inform your work as a programmer.

## Boolean Logic in Polynomials

DevFeed: [Boolean Logic in Polynomials](<https://devfeed.tech/articles/boolean-logic-in-polynomials-40414.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2017/07/24/boolean-logic-in-quadratic-polynomials/>)

Published: 2017-07-24T09:00:38Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [polynomials](<https://devfeed.tech/topics/polynomials.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>)

Tags: [boolean](<https://devfeed.tech/tags/boolean.md>), [boolean-satisfiability](<https://devfeed.tech/tags/boolean-satisfiability.md>), [logic](<https://devfeed.tech/tags/logic.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [polynomials](<https://devfeed.tech/tags/polynomials.md>)

### AI overview

This tutorial shows how to represent Boolean logic formulas with polynomials by using multiplication for conjunction and 1 minus a variable for negation. It explains how the construction relates Boolean satisfiability to the hardness of multivariable polynomial root-finding and constrained polynomial optimization.

### Source excerpt

Problem: Express a boolean logic formula using polynomials. I.e., if an input variable $ x$ is set to $ 0$, that is interpreted as false, while $ x=1$ is interpreted as true. The output of the polynomial should be 0 or 1 according to whether the formula is true or false as a whole. Solution: You can do this using a single polynomial. Illustrating with an example: the formula is $ \neg[(a \vee b) \wedge (\neg c \vee d)]$ also known as

## Zero Knowledge Proofs for NP

DevFeed: [Zero Knowledge Proofs for NP](<https://devfeed.tech/articles/zero-knowledge-proofs-for-np-40402.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2016/08/01/zero-knowledge-proofs-for-np/>)

Published: 2016-08-01T08:00:53Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Zero-knowledge proof](<https://devfeed.tech/topics/zkp.md>), [zero-knowledge](<https://devfeed.tech/topics/zero-knowledge.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [circuit](<https://devfeed.tech/tags/circuit.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [graph-isomorphism](<https://devfeed.tech/tags/graph-isomorphism.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [np](<https://devfeed.tech/tags/np.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [one-way-functions](<https://devfeed.tech/tags/one-way-functions.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [random-number-generators](<https://devfeed.tech/tags/random-number-generators.md>), [variables](<https://devfeed.tech/tags/variables.md>), [zero-knowledge](<https://devfeed.tech/tags/zero-knowledge.md>)

### AI overview

This tutorial explains how zero-knowledge proofs extend beyond graph isomorphism to problems in NP, using cryptography to let a prover convince a verifier without revealing the secret knowledge behind the claim. It introduces examples including boolean formulas, subset sums, graph 3-coloring, and boolean circuits, and describes an implementation of a proof for graph 3-colorability.

### Source excerpt

Last time, we saw a specific zero-knowledge proof for graph isomorphism. This introduced us to the concept of an interactive proof, where you have a prover and a verifier sending messages back and forth, and the prover is trying to prove a specific claim to the verifier. A zero-knowledge proof is a special kind of interactive proof in which the prover has some secret piece of knowledge that makes it very easy to verify a disputed claim is true.

## The Many Faces of Set Cover

DevFeed: [The Many Faces of Set Cover](<https://devfeed.tech/articles/the-many-faces-of-set-cover-40382.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2015/05/04/the-many-faces-of-set-cover/>)

Published: 2015-05-04T09:00:00Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [approximation-algorithms](<https://devfeed.tech/tags/approximation-algorithms.md>), [expression](<https://devfeed.tech/tags/expression.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [np](<https://devfeed.tech/tags/np.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [programming](<https://devfeed.tech/tags/programming.md>), [regex](<https://devfeed.tech/tags/regex.md>), [regex-golf](<https://devfeed.tech/tags/regex-golf.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [set-cover](<https://devfeed.tech/tags/set-cover.md>)

### AI overview

This tutorial explains the set cover problem and connects it to regex golf. It shows how selected regular expressions can be combined to cover desired strings while avoiding unwanted matches, and notes that set cover is NP-hard, motivating approximation algorithms.

### Source excerpt

A while back Peter Norvig posted a wonderful pair of articles about regex golf. The idea behind regex golf is to come up with the shortest possible regular expression that matches one given list of strings, but not the other. "Regex Golf," by Randall Munroe. In the first article, Norvig runs a basic algorithm to recreate and improve the results from the comic, and in the second he beefs it up with some improved search heuristics.

## Hamming's Code

DevFeed: [Hamming's Code](<https://devfeed.tech/articles/hamming-s-code-40378.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2015/03/02/hammings-code/>)

Published: 2015-03-02T09:00:00Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Encoding](<https://devfeed.tech/topics/encoding.md>), [digital](<https://devfeed.tech/topics/digital.md>)

Tags: [coding-theory](<https://devfeed.tech/tags/coding-theory.md>), [compression](<https://devfeed.tech/tags/compression.md>), [computing](<https://devfeed.tech/tags/computing.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [error](<https://devfeed.tech/tags/error.md>), [errors](<https://devfeed.tech/tags/errors.md>), [finite-fields](<https://devfeed.tech/tags/finite-fields.md>), [hamming](<https://devfeed.tech/tags/hamming.md>), [hamming-code](<https://devfeed.tech/tags/hamming-code.md>), [hypercube](<https://devfeed.tech/tags/hypercube.md>), [information-theory](<https://devfeed.tech/tags/information-theory.md>), [linear-algebra](<https://devfeed.tech/tags/linear-algebra.md>), [linear-codes](<https://devfeed.tech/tags/linear-codes.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [reed-solomon-codes](<https://devfeed.tech/tags/reed-solomon-codes.md>), [solved](<https://devfeed.tech/tags/solved.md>), [transmission](<https://devfeed.tech/tags/transmission.md>)

### AI overview

This tutorial introduces Hamming codes as efficiently computable encoding schemes for detecting and correcting errors caused by noise during digital transmission. It defines a code as a subset of binary strings and relates codewords to an injective encoding function.

### Source excerpt

Or how to detect and correct errors Last time we made a quick tour through the main theorems of Claude Shannon, which essentially solved the following two problems about communicating over a digital channel. What is the best encoding for information when you are guaranteed that your communication channel is error free? Are there any encoding schemes that can recover from random noise introduced during transmission? The answers to these questions were purely mathematical theorems, of course.

## Parameterizing the Vertex Cover Problem

DevFeed: [Parameterizing the Vertex Cover Problem](<https://devfeed.tech/articles/parameterizing-the-vertex-cover-problem-40363.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/08/25/parameterizing-the-vertex-cover-problem/>)

Published: 2014-08-25T06:50:11Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [complexity-theory](<https://devfeed.tech/tags/complexity-theory.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [conferences](<https://devfeed.tech/tags/conferences.md>), [fixed-parameter-tractability](<https://devfeed.tech/tags/fixed-parameter-tractability.md>), [graph](<https://devfeed.tech/tags/graph.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [kernelization](<https://devfeed.tech/tags/kernelization.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [vertex-cover](<https://devfeed.tech/tags/vertex-cover.md>)

### AI overview

This article introduces fixed-parameter complexity and explains how fixing a small parameter can make some hard problems tractable. It focuses on kernelization and uses the vertex cover problem as a canonical example, though the supplied text ends before the kernelization method is presented.

### Source excerpt

I'm presenting a paper later this week at the Matheamtical Foundations of Computer Science 2014 in Budapest, Hungary. This conference is an interesting mix of logic and algorithms that aims to bring together researchers from these areas to discuss their work. And right away the first session on the first day focused on an area I know is important but have little experience with: fixed parameter complexity. From what I understand it's not that popular of a topic at major theory conferences in the US (there appears to be only one paper on it at this year's FOCS conference), but the basic ideas are worth knowing.

## An Update on "Coloring Resilient Graphs"

DevFeed: [An Update on "Coloring Resilient Graphs"](<https://devfeed.tech/articles/an-update-on-coloring-resilient-graphs-40362.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/07/14/an-update-on-coloring-resilient-graphs/>)

Published: 2014-07-14T10:00:51Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [Resilience](<https://devfeed.tech/topics/resilience.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>)

Tags: [boolean-satisfiability](<https://devfeed.tech/tags/boolean-satisfiability.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [research](<https://devfeed.tech/tags/research.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

The article updates a preprint on coloring resilient graphs, announcing its acceptance to the Mathematical Foundations of Computer Science 2014 conference and discussing additional resilience results. It contrasts resilient graph coloring with resilient SAT, where sufficiently resilient instances are either vacuous or NP-hard.

### Source excerpt

A while back I announced a preprint of a paper on coloring graphs with certain resilience properties. I'm pleased to announce that it's been accepted to the Mathematical Foundations of Computer Science 2014, which is being held in Budapest this year. Since we first published the preprint we've actually proved some additional results about resilience, and so I'll expand some of the details here. I think it makes for a nicer overall picture, and in my opinion it gives a little more justification that resilient coloring is interesting, at least in contrast to other resilience problems.

## Community Detection in Graphs -- a Casual Tour

DevFeed: [Community Detection in Graphs -- a Casual Tour](<https://devfeed.tech/articles/community-detection-in-graphs-a-casual-tour-40357.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/05/19/community-detection-in-graphs-a-casual-tour/>)

Published: 2014-05-19T10:00:32Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>)

Tags: [approximation](<https://devfeed.tech/tags/approximation.md>), [approximation-algorithms](<https://devfeed.tech/tags/approximation-algorithms.md>), [cliques](<https://devfeed.tech/tags/cliques.md>), [clustering](<https://devfeed.tech/tags/clustering.md>), [community-detection](<https://devfeed.tech/tags/community-detection.md>), [erdos-renyi](<https://devfeed.tech/tags/erdos-renyi.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [network](<https://devfeed.tech/tags/network.md>), [newman](<https://devfeed.tech/tags/newman.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [power-law-distribution](<https://devfeed.tech/tags/power-law-distribution.md>), [random-graph](<https://devfeed.tech/tags/random-graph.md>), [randomized-algorithm](<https://devfeed.tech/tags/randomized-algorithm.md>), [technical](<https://devfeed.tech/tags/technical.md>), [walktrap](<https://devfeed.tech/tags/walktrap.md>)

### AI overview

This introductory article examines community detection in graphs. It explains the informal idea of a community, why defining one precisely and usefully is difficult, and how the clique-based approach leads to computationally intractable problems, including the NP-hardness of finding the largest clique.

### Source excerpt

Graphs are among the most interesting and useful objects in mathematics. Any situation or idea that can be described by objects with connections is a graph, and one of the most prominent examples of a real-world graph that one can come up with is a social network. Recall, if you aren't already familiar with this blog's gentle introduction to graphs, that a graph $ G$ is defined by a set of vertices $ V$, and a set of edges $ E$, each of which connects two vertices.

## How theoretical computer science explains the complexity of puzzle games

DevFeed: [How theoretical computer science explains the complexity of puzzle games](<https://devfeed.tech/articles/want-to-make-a-great-puzzle-game-get-inspired-by-theoretical-computer-science-40351.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/03/17/want-to-make-a-great-puzzle-game-get-inspired-by-theoretical-computer-science/>)

Published: 2014-03-17T10:00:55Z

Content type: opinion

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [computational complexity](<https://devfeed.tech/topics/computational-complexity.md>), [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Mazes](<https://devfeed.tech/topics/maze.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [art-gallery-problem](<https://devfeed.tech/tags/art-gallery-problem.md>), [bin-packing](<https://devfeed.tech/tags/bin-packing.md>), [board-games](<https://devfeed.tech/tags/board-games.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [computer](<https://devfeed.tech/tags/computer.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [exp](<https://devfeed.tech/tags/exp.md>), [game](<https://devfeed.tech/tags/game.md>), [games](<https://devfeed.tech/tags/games.md>), [games-on-graphs](<https://devfeed.tech/tags/games-on-graphs.md>), [graph-coloring](<https://devfeed.tech/tags/graph-coloring.md>), [greedy-spiders](<https://devfeed.tech/tags/greedy-spiders.md>), [mario](<https://devfeed.tech/tags/mario.md>), [nintendo](<https://devfeed.tech/tags/nintendo.md>), [np](<https://devfeed.tech/tags/np.md>), [np-completeness](<https://devfeed.tech/tags/np-completeness.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [pancake-flipping](<https://devfeed.tech/tags/pancake-flipping.md>), [pspace](<https://devfeed.tech/tags/pspace.md>), [puzzle](<https://devfeed.tech/tags/puzzle.md>), [science](<https://devfeed.tech/tags/science.md>), [starcraft](<https://devfeed.tech/tags/starcraft.md>), [video-games](<https://devfeed.tech/tags/video-games.md>)

### AI overview

The article explains that NP-hardness in games describes worst-case computational complexity, not how difficult a game is for human players. It uses examples including Pokémon, Super Mario Bros., Candy Crush Saga, Pac-Man, Doom, Starcraft, Tetris, chess, checkers, and Go to discuss hardness results and practical algorithms.

### Source excerpt

Two years ago, Erik Demaine and three other researchers published a fun paper to the arXiv proving that most incarnations of classic nintendo games are NP-hard. This includes almost every Super Mario Brothers, Donkey Kong, and Pokemon title. Back then I wrote a blog post summarizing the technical aspects of their work, and even gave a talk on it to a room full of curious undergraduate math majors. But while bad tech-writers tend to interpret NP-hard as "really really hard," the truth is more complicated.

## On Coloring Resilient Graphs

DevFeed: [On Coloring Resilient Graphs](<https://devfeed.tech/articles/on-coloring-resilient-graphs-40346.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/02/21/on-coloring-resilient-graphs/>)

Published: 2014-02-21T08:45:39Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>)

Tags: [approximation-algorithms](<https://devfeed.tech/tags/approximation-algorithms.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graph-coloring](<https://devfeed.tech/tags/graph-coloring.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [greedy-algorithm](<https://devfeed.tech/tags/greedy-algorithm.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [research](<https://devfeed.tech/tags/research.md>), [resilience](<https://devfeed.tech/tags/resilience.md>)

### AI overview

An informal explanation of graph coloring, including why deciding 3-colorability is considered NP-hard and several graph properties that can make coloring problems easier. The article also announces the author's paper on resilient graphs.

### Source excerpt

I'm pleased to announce that another paper of mine is finished. This one just got accepted to MFCS 2014, which is being held in Budapest this year (this whole research thing is exciting!). This is joint work with my advisor, Lev Reyzin. As with my first paper, I'd like to explain things here on my blog a bit more informally than a scholarly article allows. A Recent History of Graph Coloring One of the first important things you learn when you study graphs is that coloring graphs is hard.

## Classic Nintendo Games are NP-Hard

DevFeed: [Classic Nintendo Games are NP-Hard](<https://devfeed.tech/articles/classic-nintendo-games-are-np-hard-40268.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2012/03/22/nintendo-np-hard/>)

Published: 2012-03-22T18:34:56Z

Content type: opinion

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>), [infoarena](<https://devfeed.tech/topics/infoarena.md>)

Tags: [complexity](<https://devfeed.tech/tags/complexity.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [donkey-kong](<https://devfeed.tech/tags/donkey-kong.md>), [games](<https://devfeed.tech/tags/games.md>), [mario](<https://devfeed.tech/tags/mario.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [metroid](<https://devfeed.tech/tags/metroid.md>), [np-completeness](<https://devfeed.tech/tags/np-completeness.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [paper](<https://devfeed.tech/tags/paper.md>), [pokemon](<https://devfeed.tech/tags/pokemon.md>), [video-games](<https://devfeed.tech/tags/video-games.md>), [zelda](<https://devfeed.tech/tags/zelda.md>)

### AI overview

The article explains research showing that generalized versions of several classic Nintendo games, including Mario Brothers, Metroid, Donkey Kong, Pokemon, and The Legend of Zelda, are NP-hard. Some are also classified as NP-complete or PSPACE-complete. It outlines reductions from 3-SAT using game-level gadgets for variables and clauses.

### Source excerpt

Problem: Prove that generalized versions of Mario Brothers, Metroid, Donkey Kong, Pokemon, and Legend of Zelda are NP-hard. Solution: http://arxiv.org/abs/1203.1895v1 Discussion: Three researchers (including Erik Demaine, a computer science professor at MIT famous for his work with the mathematics of origami) recently finished a paper giving the complexity of a number of classic Nintendo games (the ones I loved to play). All are proven NP-hard, some are shown to be NP-complete, and some are PSPACE-complete.