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.