Mitkä ovat polynomiajan algoritmit?


Paras vastaus

Google on ystäväsi: Ajan monimutkaisuus – Wikipedia

Polynomiaika

Algoritmin sanotaan olevan polynomiaika , jos sen käyntiaika on ylempi reunus polynomilausekkeella algoritmin syötteen koossa, eli T ( n ) = {\ displaystyle O (n ^ {k})} jollekin positiiviselle vakiolle k .

Ongelmat , joille on olemassa deterministinen polynomiajan algoritmi, kuuluvat monimutkaisuusluokkaan P , joka on keskeinen osa laskennallisen monimutkaisuuden teoriaa . Cobhamin väitöskirjassa todetaan, että polynomiaika on synonyymi termeille ”traktoitava”, ”toteutettavissa oleva”, ”tehokas” tai ”nopea”.

Joitakin esimerkkejä polynomiajan algoritmeista:

  • valintalajittelun lajittelualgoritmi n kokonaisluvut suorittaa {\ displaystyle An ^ {2}} – operaatioita joillekin vakioille A . Siksi se toimii ajassa {\ displaystyle O (n ^ {2})} ja on polynomi-aika-algoritmi.
  • Kaikki aritmeettiset perusoperaatiot (yhteenlasku, vähennyslasku, kertolasku, jako ja vertailu) voidaan suorittaa polynomiajassa.
  • Suurin osuvuus -kaavioissa löytyy polynomiajassa.

Voisin ehdottaa muutaman perinteisen tietojenkäsittelykurssin, kuten algoritmien käyttämistä tekstillä, kuten Johdanto algoritmeihin ( alias CLRS) jopa yksinkertainen tietorakenteiden kurssi, kuten Flonin ACM -artikkelissa Perusteinen CS-kurssi, joka yhdistää teoriaa ja käytäntöä ja joka käyttää Wulfin, Shawn, Hilfingerin ja Flonin klassista tekstiä Tietojenkäsittelytieteen perusrakenteet .

Vastaa

Jos jaamme polynomin p (x) jollakin polynomilla d (x), löydämme osamäärän q (x) siten, että p (x) = d (x) q (x) + r (x) missä r (x) on jäännösmme.

Oletetaan, että r (x): llä oli aste ≥︎ n, niin olisimme voineet modifioida siitä enemmän, koska d (x) on aste n, kunnes uusi r (x) ^ {*}: n tutkinto oli tiukasti alle d (x)

Sano, että meillä on p (x) = x ^ 4 + 1 ja d (x) = x ^ 2:

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

selvästi q (x) = x ^ 2

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

Nyt voisin mennä eteenpäin ja yrittää sanoa, että q (x) = x ja g et:

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

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

mutta emme sitä ollenkaan halua!

Tämä on analoginen kokonaislukujen jakamisen / lopun kanssa:

p = dq + r

7 = 2 \ cdot {3} +1 on oikea

7 = 1 \ cdot {3} +4 ei ole toivottavaa, koska emme jakaneet täysin jakajan kautta ja jätti suuremman r: n kuin piti olla.

Sama käsite pätee polynomeihin, mutta aste määrää, kun olet valmis:

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

tai et pienentänyt jäännöstä kokonaan vastaavuusluokan alimmaksi asteeksi modulo d (x), tai vähemmän mattoisin sanoin, voit oikeastaan ​​löytää koko polynomiluokan ekvivalentti, kun modifioit tietyllä polynomilla, mutta haluat pienimmän, jonka aste on jäänyt 0: n ja n-1: n väliin (mukaan lukien nämä päätepisteet).

10 = 7 = 4 = 1 ~ \ text {mod} 3, mutta vain yksi on kelvollinen lopputapa kokonaisluvun pitkälle jaolle!

x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2, mutta vain yksi on kelvollinen lopputapa polynomipitkälle jaolle!

Joten

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *