---
title: "Dynamic programming — Δυναμικός Προγραμματισμός"
source: "https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82"
wiki: "systems-analysis.info/int"
article: "Dynamic_programming_—_Δυναμικός_Προγραμματισμός"
language: "el"
categories:
  - "Category:Greek"
  - "Category:Operations research"
revision_id: 1741
wiki_created_at: 2026-09-06T22:53:18Z
wiki_modified_at: 2026-09-06T22:53:18Z
downloaded_at: 2026-09-07T22:47:31Z
---

# Dynamic programming — Δυναμικός Προγραμματισμός

**Δυναμικός Προγραμματισμός** (**ΔΠ**· αγγλ. *dynamic programming, DP*) — είναι μέθοδος επίλυσης σύνθετων προβλημάτων βελτιστοποίησης, που βασίζεται στη διάσπαση του αρχικού προβλήματος σε μια ακολουθία απλούστερων υποπροβλημάτων<sup>[\[1\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-bigenc-dp-1)[\[2\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-ru-wiki-dp-2)</sup>. Η μέθοδος εφαρμόζεται σε πολυβηματικές διαδικασίες λήψης αποφάσεων, όπου η βέλτιστη λύση ολόκληρου του προβλήματος μπορεί να κατασκευαστεί από τις βέλτιστες λύσεις των υποπροβλημάτων του.

Ο όρος εισήχθη από τον Αμερικανό μαθηματικό Ρίτσαρντ Μπέλλμαν τη δεκαετία του 1950<sup>[\[3\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-rechetnikov-dp-3)</sup>. Στο πλαίσιο αυτό, η λέξη «προγραμματισμός» χρησιμοποιείται με την έννοια του «σχεδιασμού» ή της «κατάρτισης βέλτιστου σχεδίου δράσης», και όχι με την έννοια της συγγραφής κώδικα υπολογιστή<sup>[\[4\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-en-wiki-dp-4)</sup>.

## Βασικές ιδιότητες και θεωρήματα

Η εφαρμοσιμότητα του δυναμικού προγραμματισμού σε ένα πρόβλημα καθορίζεται από την ύπαρξη δύο θεμελιωδών ιδιοτήτων.

### Αρχή βελτιστότητας του Μπέλλμαν

Κεντρική έννοια της μεθόδου είναι η **αρχή βελτιστότητας του Μπέλλμαν** (αγγλ. *Bellman's principle of optimality*). Αυτή ορίζει: ανεξάρτητα από την αρχική κατάσταση και την αρχική απόφαση, οι επακόλουθες αποφάσεις πρέπει να αποτελούν βέλτιστη στρατηγική ως προς την κατάσταση που προέκυψε από την πρώτη απόφαση<sup>[\[3\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-rechetnikov-dp-3)</sup>.

Με άλλα λόγια, οποιοδήποτε τμήμα μιας βέλτιστης τροχιάς είναι από μόνο του βέλτιστο. Αυτή η ιδιότητα επιτρέπει τη διάσπαση του συνολικού προβλήματος σε μια ακολουθία απλούστερων υποπροβλημάτων και την αναδρομική επίλυσή τους.

### Επικαλυπτόμενα υποπροβλήματα

Ενα πρόβλημα διαθέτει την ιδιότητα των **επικαλυπτόμενων υποπροβλημάτων** (αγγλ. *overlapping subproblems*) εάν κατά την αναδρομική επίλυσή του τα ίδια υποπροβλήματα εμφανίζονται επανειλημμένα. Ο ΔΠ επιτρέπει την αποφυγή επαναλαμβανόμενων υπολογισμών, αποθηκεύοντας τις λύσεις των ήδη συναντηθέντων υποπροβλημάτων (αυτή η τεχνική ονομάζεται memoization ή tabulation), γεγονός που αυξάνει σημαντικά την αποδοτικότητα σε σύγκριση με την αφελή αναδρομική εξάντληση.

## Εξίσωση Μπέλλμαν

Από την αρχή βελτιστότητας απορρέει η βασική αναδρομική σχέση της μεθόδου — η **εξίσωση Μπέλλμαν**<sup>[\[1\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-bigenc-dp-1)</sup>. Αυτή συνδέει την «αξία» (βέλτιστο κέρδος ή κόστος) της τρέχουσας κατάστασης με τις αξίες των επακόλουθων καταστάσεων. Στη γενική μορφή για ντετερμινιστική πολυβηματική διαδικασία με προσθετική αντικειμενική συνάρτηση έχει τη μορφή:

$$
V_{k - 1}(x) = \max\limits_{y \in U(x)}\{\varphi_{k}(x,y) + V_{k}(f_{k}(x,y))\}
$$

όπου:

- $k$ — ο αριθμός βήματος (από $m$ έως 1)·
- $x$ — η κατάσταση του συστήματος στο βήμα $k - 1$·
- $y$ — η ελεγχόμενη απόφαση που λαμβάνεται στο βήμα $k$·
- $\varphi_{k}(x,y)$ — το κέρδος (ή το κόστος) στο k-οστό βήμα·
- $f_{k}(x,y)$ — η συνάρτηση που ορίζει τη νέα κατάσταση του συστήματος·
- $V_{k}(s)$ — η βέλτιστη τιμή της αντικειμενικής συνάρτησης για το υποπρόβλημα που ξεκινά στο βήμα $k$ στην κατάσταση $s$.

Η εξίσωση επιλύεται διαδοχικά, συνήθως «από το τέλος», κινούμενη από το τελευταίο βήμα προς το πρώτο.

## Παραδείγματα εφαρμογής

- **Πρόβλημα συντομότερης διαδρομής σε γράφο**: Αυτό το πρόβλημα διαθέτει την ιδιότητα της βέλτιστης υποδομής, καθώς οποιοδήποτε τμήμα της συντομότερης διαδρομής είναι από μόνο του συντομότερο. Οι αλγόριθμοι Bellman-Ford και Floyd-Warshall αποτελούν κλασικά παραδείγματα εφαρμογής ΔΠ για την επίλυση αυτού του προβλήματος<sup>[\[5\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-mit-amp-5)</sup>.
- **Πρόβλημα σακιδίου (knapsack)**: Πρόβλημα βέλτιστης πλήρωσης σακιδίου περιορισμένης χωρητικότητας με αντικείμενα διαφορετικής αξίας και βάρους. Ο ΔΠ επιτρέπει την επίλυση αυτού του προβλήματος εξετάζοντας τα αντικείμενα διαδοχικά και υπολογίζοντας σε κάθε βήμα τη μέγιστη αξία για όλες τις πιθανές τιμές της εναπομένουσας χωρητικότητας.
- **Πρόβλημα κατανομής πόρων**: Κατανομή περιορισμένου πόρου (π.χ. επενδύσεων) μεταξύ πολλών έργων για τη μεγιστοποίηση του συνολικού αποτελέσματος.

## Περιορισμοί

Ο κύριος περιορισμός της μεθόδου είναι η **κατάρα της διαστασιμότητας** (αγγλ. *curse of dimensionality*) — όρος που εισήγαγε ο Μπέλλμαν για να δηλώσει την εκθετική αύξηση του αριθμού καταστάσεων και, κατά συνέπεια, της υπολογιστικής πολυπλοκότητας, με την αύξηση του αριθμού των μεταβλητών που περιγράφουν την κατάσταση του συστήματος<sup>[\[6\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-ru-wiki-curse-6)[\[7\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-utexas-ormm-7)</sup>. Αυτό περιορίζει την πρακτική εφαρμογή του ακριβούς ΔΠ για προβλήματα πολύ μεγάλης διαστασιμότητας.

## Συναφείς έννοιες

- Επιχειρησιακή έρευνα
- Θεωρία βέλτιστου ελέγχου
- Διαδικασία απόφασης Markov (στοχαστική γενίκευση)
- Εξίσωση Hamilton — Jacobi — Bellman (ανάλογο για συνεχή χρόνο)

## Παραπομπές

<sup>[\[1\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-bigenc-dp-1)</sup> <sup>[\[2\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-ru-wiki-dp-2)</sup> <sup>[\[3\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-rechetnikov-dp-3)</sup> <sup>[\[4\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-en-wiki-dp-4)</sup> <sup>[\[5\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-mit-amp-5)</sup> <sup>[\[6\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-ru-wiki-curse-6)</sup> <sup>[\[7\]](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_note-utexas-ormm-7)</sup> \</references\>

1.  <span id="cite_note-bigenc-dp-1">↑ <sup>[1.0](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-bigenc-dp_1-0)</sup> <sup>[1.1](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-bigenc-dp_1-1)</sup> <sup>[1.2](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-bigenc-dp_1-2)</sup> "Динамическое программирование". *Большая российская энциклопедия*. <a href="https://bigenc.ru/c/dinamicheskoe-programmirovanie-00423a" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-ru-wiki-dp-2">↑ <sup>[2.0](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-ru-wiki-dp_2-0)</sup> <sup>[2.1](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-ru-wiki-dp_2-1)</sup> "Динамическое программирование". *Википедия*. <a href="https://ru.wikipedia.org/wiki/Динамическое_программирование" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-rechetnikov-dp-3">↑ <sup>[3.0](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-rechetnikov-dp_3-0)</sup> <sup>[3.1](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-rechetnikov-dp_3-1)</sup> <sup>[3.2](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-rechetnikov-dp_3-2)</sup> Решетников А. Н., Коченков А. В., Пиров Д. М., Рябоконь Д. А. (2011). *Динамическое программирование. Примеры применения*. Учебное пособие, ННГУ им. Лобачевского (ВМиК). <a href="https://itslearningakarmazyan.files.wordpress.com/2015/09/dynamic-programming.pdf" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-en-wiki-dp-4">↑ <sup>[4.0](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-en-wiki-dp_4-0)</sup> <sup>[4.1](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-en-wiki-dp_4-1)</sup> "Dynamic programming". *Wikipedia*. <a href="https://en.wikipedia.org/wiki/Dynamic_programming" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-mit-amp-5">↑ <sup>[5.0](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-mit-amp_5-0)</sup> <sup>[5.1](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-mit-amp_5-1)</sup> Bradley S. P., Hax A. C., Magnanti T. L. (1977). *Applied Mathematical Programming*. Addison-Wesley. <a href="http://web.mit.edu/15.053/www/AMP-Chapter-11.pdf" class="external autonumber" rel="nofollow">[5]</a></span>
6.  <span id="cite_note-ru-wiki-curse-6">↑ <sup>[6.0](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-ru-wiki-curse_6-0)</sup> <sup>[6.1](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-ru-wiki-curse_6-1)</sup> "Проклятие размерности". *Википедия*. <a href="https://ru.wikipedia.org/wiki/Проклятие_размерности" class="external autonumber" rel="nofollow">[6]</a></span>
7.  <span id="cite_note-utexas-ormm-7">↑ <sup>[7.0](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-utexas-ormm_7-0)</sup> <sup>[7.1](https://systems-analysis.info/int/Dynamic_programming_%E2%80%94_%CE%94%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CF%8C%CF%82_%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82#cite_ref-utexas-ormm_7-1)</sup> Jensen P. A. (2004). *Dynamic Programming – Models*. Operations Research Models and Methods, Univ. of Texas. <a href="https://utw11041.utweb.utexas.edu/ORMM/models/unit/dynamic/index.html" class="external autonumber" rel="nofollow">[7]</a></span>
