Definisjon: En sammenligning mellom vanskelighetsgraden til problemer (algoritmisk).

Dersom vi legger til en ubetydelig mengde arbeid (som tar polynomisk tid) til et problem, , blir det resulterende problemet, , enten like vanskelig, eller vanskeligere. Dette er et veldig forvirrende begrep.


Bruk Altså hvis vi har et problem, , som kan reduseres til et problem, , kan vi skrive det slik:

Der er redusibilitetsrelasjonen.

Dette betyr at hvis vi har løsningen på problem , så kan vi lage en algoritme som finner løsningen på problem basert på løsningen av problem i Polynomisk tid.

Merk: Vi gjør et skille på Polynomisk tid og Superpolynomisk tid.


Eksempler

Redusering av et beslutningsproblem til et optimeringsproblem.

Gitt beslutningsproblemet A, og optimeringsproblemet B. A: I grafen , finnes det en sti mellom node og kortere enn ? B: Finn korteste sti mellom og i graf .

Da blir reduksjonsalgoritmen som følger

SolveA(G, u, v ,k):
	Let x be the shortest path from u to v given from Bellman-Ford
	
	return x<k

Første linje i pseudokoden tar tid, altså Polynomisk tid, og er en løsning på A. Vi bruker denne løsningen i siste linje i pseudokoden, som er løsningen på B. Vi kan derfor si at vi har redusert A til B.