# NP

Published articles for NP.

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

## Zero-Knowledge: Definitions and Theory

DevFeed: [Zero-Knowledge: Definitions and Theory](<https://devfeed.tech/articles/zero-knowledge-definitions-and-theory-40403.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2016/09/19/zero-knowledge-definitions-and-theory/>)

Published: 2016-09-19T09:00:00Z

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>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [class](<https://devfeed.tech/topics/class.md>)

Tags: [graph-isomorphism](<https://devfeed.tech/tags/graph-isomorphism.md>), [np](<https://devfeed.tech/tags/np.md>), [permutation](<https://devfeed.tech/tags/permutation.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [theory](<https://devfeed.tech/tags/theory.md>), [zero-knowledge](<https://devfeed.tech/tags/zero-knowledge.md>)

### AI overview

This article explains definitions and theory behind zero-knowledge proofs. It contrasts graph isomorphism and 3-coloring protocols, focusing on their interaction between prover and verifier, cryptographic assumptions, transcript distributions, and simulation.

### Source excerpt

The next Monday, when the fathers were all back at work, we kids were playing in a field. One kid says to me, "See that bird? What kind of bird is that?" I said, "I haven't the slightest idea what kind of a bird it is." He says, "It's a brown-throated thrush. Your father doesn't teach you anything!" But it was the opposite. He had already taught me: "See that bird?

## 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.

## A problem that is not (properly) PAC-learnable

DevFeed: [A problem that is not (properly) PAC-learnable](<https://devfeed.tech/articles/a-problem-that-is-not-properly-pac-learnable-40356.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/04/21/an-un-pac-learnable-problem/>)

Published: 2014-04-21T10:00:16Z

Content type: tutorial

Language: en

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

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

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [boolean-satisfiability](<https://devfeed.tech/tags/boolean-satisfiability.md>), [classes](<https://devfeed.tech/tags/classes.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [computational-learning-theory](<https://devfeed.tech/tags/computational-learning-theory.md>), [learning-theory](<https://devfeed.tech/tags/learning-theory.md>), [logical](<https://devfeed.tech/tags/logical.md>), [math](<https://devfeed.tech/tags/math.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [misconceptions](<https://devfeed.tech/tags/misconceptions.md>), [np](<https://devfeed.tech/tags/np.md>), [np-completeness](<https://devfeed.tech/tags/np-completeness.md>), [pac-learning](<https://devfeed.tech/tags/pac-learning.md>), [reduction](<https://devfeed.tech/tags/reduction.md>), [rp](<https://devfeed.tech/tags/rp.md>)

### AI overview

This technical learning-theory article presents a standard example of a problem that is not learnable under the previously introduced PAC model, then explains how a more expressive hypothesis class changes that result. Its addendum clarifies that 3-term DNF formulas are not shown to be unlearnable under the standard PAC definition, only under the earlier restricted definition.

### Source excerpt

In a previous post we introduced a learning model called Probably Approximately Correct (PAC). We saw an example of a concept class that was easy to learn: intervals on the real line (and more generally, if you did the exercise, axis-aligned rectangles in a fixed dimension). One of the primary goals of studying models of learning is to figure out what is learnable and what is not learnable in the various models.

## 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.