Programowanie dynamiczne: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
m Anulowanie wersji 50875261 autora 81.190.226.226 (dyskusja), Potrzebne źródło
Przestawiłem parę słów w zdaniu w bardziej logiczny spos
Linia 1:
'''Programowanie dynamiczne''' jest techniką lub strategią projektowania [[algorytm]]ów, stosowaną przeważnie do rozwiązywania zagadnień [[optymalizacja|optymalizacyjnych]]. Jest alternatywą dla niektórych zagadnień rozwiązywanych za pomocą [[algorytm zachłanny|algorytmów zachłannych]]. Wynalazcą techniki jest amerykański matematyk [[Richard Ernest Bellman|Richard Bellman]], uhonorowany za to odkrycie medalem [[Institute of Electrical and Electronics Engineers|IEEE]] ([[język angielski|ang.]] ''medal of honour'') przez [[Institute of Electrical and Electronics Engineers|IEEE]] w [[1979]] roku.
 
Programowanie dynamiczne opiera się na podziale rozwiązywanego problemu na podproblemy względem kilku parametrów. W odróżnieniu od techniki [[dziel i zwyciężaj]] podproblemy w programowaniu dynamicznym nie są rozłączne, ale musi je cechować [[własność optymalnej podstruktury]]. Zagadnienia odpowiednie dla programowania dynamicznego cechuje również to, że zastosowanie do nich [[Atak brute force|metody siłowej]] (ang. ''brute force'') prowadzi do ponadwielomianowej liczby rozwiązań podproblemów, podczas gdy sama liczba różnych podproblemów jest wielomianowa.