Hva er polynomiske tidsalgoritmer?


Beste svaret

Google er din venn: fra Tidskompleksitet – Wikipedia

Polynomtid

En algoritme sies å være av polynomisk tid hvis kjøretiden er øvre avgrenset av et polynomisk uttrykk i størrelsen på inngangen for algoritmen, dvs. T ( n ) = {\ displaystyle O (n ^ {k})} for en positiv konstant k .

Problemer der en deterministisk algoritme for polynomtid eksisterer, tilhører kompleksitetsklassen P , som er sentralt innen beregningskompleksitetsteori . Cobhams avhandling sier at polynomtid er et synonym for «gjennomførbar», «gjennomførbar», «effektiv» eller «rask».

Noen eksempler på polynomiske tidsalgoritmer:

  • utvalgssorter sorteringsalgoritme på n heltall utfører {\ displaystyle An ^ {2}} operasjoner for noen konstante A . Dermed går den i tid {\ displaystyle O (n ^ {2})} og er en polynomialtalgoritme.
  • Alle de grunnleggende aritmetiske operasjonene (addisjon, subtraksjon, multiplikasjon, divisjon og sammenligning) kan gjøres på polynomisk tid.
  • Maksimum samsvar i grafer kan bli funnet på polynomisk tid.

Jeg kan foreslå å ta noen tradisjonelle kurs innen informatikk, for eksempel algoritmer som bruker en tekst som Introduksjon til algoritmer ( aka CLRS) til og med et enkelt datastrukturforløp som beskrevet i Flons ACM papir Et grunnleggende CS-kurs som forener teori og praksis som bruker Wulf, Shaw, Hilfinger og Flons klassiske tekst Fundamental Structures of Computer Science .

Svar

Hvis vi deler et polynom p (x) med noe polynom d (x), finner vi en kvotient q (x) slik at p (x) = d (x) q (x) + r (x) der r (x) er vår rest.

Anta at r (x) hadde grad ≥︎ n, så kunne vi ha moddert mer av den gitt d (x) er grad n til vår nye r (x) ^ {*} hadde grad strengere enn d (x)

Si at vi har p (x) = x ^ 4 + 1 og d (x) = x ^ 2:

x ^ 4 + 1 = x ^ 2q (x) + r (x)

tydelig q (x) = x ^ 2

x ^ 4 + 1 = x ^ 2 \ cdot {x ^ 2} + r (x) ⇒︎ r (x) = 1

Nå kunne jeg fortsette og prøve å si at q (x) = x og g et:

x ^ 4 + 1 = {x \ cdot {x}} ^ 2+ (x ^ 4-x ^ 3 + 1)

r (x) = x ^ 4-x ^ 3 + 1?

men dette er ikke det vi ønsker i det hele tatt!

Dette er analogt med divisjon / resten i heltall:

p = dq + r

7 = 2 \ cdot {3} +1 er riktig

7 = 1 \ cdot {3} +4 er ikke ønskelig da vi ikke delte helt gjennom vår divisor og la igjen en større r enn vi burde ha.

Det samme konseptet gjelder polynomer, men grad dikterer når du er ferdig:

\ text {deg} r ( x) text {deg} d (x)

eller du reduserte ikke resten til elementet av laveste grad i ekvivalensklasse modulo d (x), eller i mindre matte termer, kan du faktisk finne en hel klasse med polynomer ekvivalente når du modifiserer med et gitt polynom, men du vil ha den minste med graden klemt mellom 0 og n-1 (inkludert de endepunktene) som en rest.

10 = 7 = 4 = 1 ~ \ text {mod} 3, men bare en er et gyldig resten av tilfelle for heltall lang divisjon!

x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2, men bare en er det et gyldig resten tilfelle for polynomisk lang divisjon!

\ text {deg} r (x) text {deg} d (x)

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *