Mik azok a polinomi időalgoritmusok?


Legjobb válasz

A Google a barátod: Idő összetettsége – Wikipédia

Polinomiális idő

Egy algoritmus állítólag polinom idő , ha futási ideje felső korlátja egy polinom kifejezés az algoritmus bemenetének méretében, azaz T ( n ) = {\ displaystyle O (n ^ {k})} valamilyen pozitív konstansra k .

Problémák , amelyeknél létezik determinisztikus polinom időalgoritmus, a komplexitás osztályba tartoznak P , amely központi szerepet játszik a számítási komplexitáselmélet területén. Cobham tézise kijelenti, hogy a polinomiális idő a “traktálható”, “megvalósítható”, “hatékony” vagy “gyors” szinonimája.

Néhány példa a polinomiális idő algoritmusaira:

  • A kiválasztási rendezés rendezési algoritmus a n egész számok {\ displaystyle An ^ {2}} műveleteket hajtanak végre onst. A állandó esetén. Így idővel fut {O displaystyle O (n ^ {2})}, és ez egy polinomiális idő algoritmus.
  • Az összes alapvető számtani művelet (összeadás, kivonás, szorzás, osztás és összehasonlítás) polinomiális időben elvégezhető.
  • Az grafikonok maximális egyezései polinomidőben találhatók.

Javasolhatom néhány hagyományos informatikai tanfolyam elvégzését, például algoritmusok használatát olyan szöveg használatával, mint Bevezetés az algoritmusokba ( más néven CLRS) még egy egyszerű adatstruktúra-tanfolyam is, például Flon ACM papír Alapvető CS tanfolyam, amely egyesíti az elméletet és gyakorlatot , amely Wulf, Shaw, Hilfinger és Flon klasszikus szövegét használja A számítástechnika alapstruktúrái .

Válasz

Ha a p (x) polinomot elosztjuk valamilyen d (x) polinommal, akkor találunk olyan q (x) hányadost, hogy p (x) = d (x) q (x) + r (x) ahol r (x) a maradékunk.

Tegyük fel, hogy r (x) fokozata ≥︎ n volt, akkor többet modifikálhattunk volna belőle, mivel d (x) értéke n fok, amíg új r (x) ^ {*} fokozata szigorúan kevesebb volt, mint d (x)

Mondjuk, hogy p (x) = x ^ 4 + 1 és d (x) = x ^ 2:

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

egyértelműen q (x) = x ^ 2

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

Most folytathatnám, és megpróbálhatnám mondani, hogy q (x) = x és g et:

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

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

de egyáltalán nem ezt akarjuk!

Ez analóg az egész számokban történő felosztással / maradékkal:

p = dq + r

7 = 2 \ cdot {3} +1 helyes

7 = 1 \ cdot {3} +4 nem kívánatos, mivel nem osztottuk el teljesen osztónk által, és nagyobb r-t hagyott, mint kellett volna.

Ugyanez a fogalom vonatkozik a polinomokra, de a fok diktálja, ha kész:

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

vagy a maradékot nem redukálta teljesen a legalacsonyabb fokozatú elemre az ekvivalencia osztály modulo d (x), vagy kevésbé matyás kifejezéssel, valójában találjon egy teljes polinom osztályt ekvivalensnek, ha egy adott polinommal módosít, de a legkisebbet 0 és n-1 közé szorított fokkal (beleértve azokat a végpontokat is) szeretné megmaradtként megadni.

10 = 7 = 4 = 1 ~ \ text {mod} 3, de csak egy érvényes eset az egész hosszú osztás esetén!

x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2, de csak az egyik érvényes maradék eset a polinom hosszú felosztásához!

Tehát

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

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük