Co to są algorytmy wielomianowe?


Najlepsza odpowiedź

Google jest Twoim przyjacielem: z Złożoność czasowa – Wikipedia

Czas wielomianowy

Mówi się, że algorytm czas wielomianowy , jeśli jego czas wykonywania wynosi górną granicę przez wyrażenie wielomianowe w rozmiarze danych wejściowych dla algorytmu, tj. T ( n ) = {\ Displaystyle O (n ^ {k})} dla jakiejś dodatniej stałej k .

Problemy , dla których istnieje deterministyczny algorytm czasu wielomianowego, należą do klasy złożoności P , który ma kluczowe znaczenie w dziedzinie teorii złożoności obliczeniowej . Cobham „w tezie stwierdza, że ​​czas wielomianowy jest synonimem„ łatwego ”,„ wykonalnego ”,„ wydajnego ”lub„ szybkiego ”.

Kilka przykładów wielomianowych algorytmów czasowych:

  • algorytm sortowania przez wybór n liczby całkowite wykonuje operacje {\ Displaystyle An ^ {2}} dla pewnych stałych A . W ten sposób działa w czasie {\ Displaystyle O (n ^ {2})} i jest algorytmem wielomianowym.
  • Wszystkie podstawowe operacje arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie i porównywanie) można wykonać w czasie wielomianowym.
  • Maksymalne dopasowania na wykresach można znaleźć w czasie wielomianowym.

Mogę zasugerować kilka tradycyjnych kursów informatycznych, takich jak algorytmy wykorzystujące tekst, taki jak Wprowadzenie do algorytmów ( aka CLRS), nawet prosty kurs dotyczący struktur danych, taki jak opisany w Flons ACM papier Podstawowy kurs CS, który łączy teorię i praktykę , który wykorzystuje klasyczny tekst Wulfa, Shawa, Hilfingera i Flona Podstawowe struktury informatyki .

Odpowiedź

Jeśli podzielimy wielomian p (x) przez jakiś wielomian d (x), to znajdziemy taki iloraz q (x), że p (x) = d (x) q (x) + r (x) gdzie r (x) jest naszą resztą.

Załóżmy, że r (x) miał stopień ≥︎ n, wtedy moglibyśmy zmodyfikować więcej z tego, biorąc pod uwagę, że d (x) jest stopniem n, aż do naszego nowego r (x) ^ {*} miał stopień dokładnie mniejszy niż d (x)

Powiedzmy, że mamy p (x) = x ^ 4 + 1 id (x) = x ^ 2:

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

wyraźnie q (x) = x ^ 2

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

Teraz mógłbym śmiało powiedzieć, że q (x) = x i g et:

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

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

ale to wcale nie jest to, czego chcemy!

Jest to analogiczne do dzielenia / reszty w liczbach całkowitych:

p = dq + r

7 = 2 \ cdot {3} +1 jest poprawne

7 = 1 \ cdot {3} +4 nie jest pożądane, ponieważ nie podzieliliśmy w pełni przez nasz dzielnik i zostawiliśmy większe r niż powinniśmy.

Ta sama koncepcja dotyczy wielomianów, ale stopień dyktuje, kiedy skończysz:

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

lub nie zredukowałeś w pełni reszty do elementu najniższego stopnia w klasie równoważności modulo d (x), lub mówiąc mniej matematycznie, możesz w rzeczywistości znajdź całą klasę wielomianów równoważną, gdy zmodyfikujesz dany wielomian, ale chcesz, aby resztę stanowił najmniejszy, którego stopień jest ściśnięty między 0 a n-1 (włączając te punkty końcowe).

10 = 7 = 4 = 1 ~ \ text {mod} 3, ale tylko jeden jest prawidłową pozostałą wielkością w przypadku dzielenia liczb całkowitych przez długi!

x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2, ale tylko jeden jest prawidłowy przypadek reszty dla długiego dzielenia wielomianu!

Więc

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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *