Programmazione lineare: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Aggiunto il template "F" |
||
(47 versioni intermedie di 22 utenti non mostrate) | |||
Riga 1:
{{F|matematica|febbraio 2024}}
La '''programmazione lineare''' (
Un problema è detto ''lineare'' se sia la ''funzione obiettivo'' sia i ''vincoli'' sono [[Funzione lineare|funzioni lineari]].
Questo significa che la funzione obiettivo può essere scritta come:
Riga 22 ⟶ 23:
Sono tutti quei problemi lineari che presentano al loro interno solo variabili continue, cioè variabili che possono assumere con continuità tutti i valori contenuti all'interno del loro dominio di esistenza.
Per questa classe di problemi esiste un algoritmo di risoluzione molto importante, chiamato
==Poliedri e geometria dei punti permessi==
L'insieme dei punti permessi dai vincoli di un problema lineare continuo forma un [[politopo]], un'intersezione di mezzi-spazi. Un esempio di problema lineare continuo è il seguente:
::<math>\begin{matrix}
\text{massimizza } & 2x_1 + x_2 + 3x_3\\
\text{soggetto ai vincoli: } & x_1 + x_2 + x_3 \leq 1\\
&x_1 \geq 0\\
&x_2 \geq 0\\
&x_3 \geq 0
\end{matrix}</math>
==Dualità dei problemi lineari continui==
Ad ogni problema di massimizzazione lineare corrisponde un problema di minimizzazione lineare con le seguenti proprietà:
* Se il primo problema ha una soluzione finita, allora anche il secondo problema ha una soluzione finita e i valori delle funzioni obbiettivo per le due soluzioni coincidono,
* Se il primo problema non ha alcuna soluzione, il secondo problema ha una soluzione infinita,
* Se il secondo problema non ha alcuna soluzione, il primo problema ha una soluzione infinita.
Dato il seguente problema di minimizzazione lineare (P1):
::<math>\begin{matrix}
\text{minimizza } &c^Tx\\
\text{soggetto ai vincoli: } &Ax \geq b\\
&x \geq 0
\end{matrix}</math>
dove <math>A</math> è una matrice <math>m \times n</math> con vettori riga: <math>a_1, ... , a_m</math> e <math>b</math> è un vettore in <math>\R^m</math>.
è possibile considerare una [[combinazione lineare]] delle righe di <math>A</math> per ottenere che per ogni vettore <math>y \in \R^m</math> che soddisfi: <math>A^Ty \leq c</math> e <math>y \geq 0</math>, ed ogni vettore <math>x \in \R^n</math> che soddisfi i vincoli di (P1):
<math>c^Tx \geq (A^Ty)^Tx = y^TAx \geq y^T(Ax)\geq y^Tb</math>
in particolare, questo dimostra che ogni soluzione al problema lineare (P2):
::<math>\begin{matrix}
\text{massimizza } &b^Ty\\
\text{soggetto ai vincoli: } &A^Ty \leq c\\
&y \geq 0
\end{matrix}</math>
ha un valore di funzione obiettivo minore di qualsiasi soluzione <math>x \in \R^n</math>. È infatti possibile dimostrare che se l'insieme delle soluzioni di (P1) non è vuoto e (P1) ha una soluzione finita, allora esistono un <math>x</math> e <math>y</math> tali per cui <math>c^Tx = b^Ty</math> che quindi sono ottimali.
==Problemi lineari interi==
Riga 33 ⟶ 73:
Per questa classe di problemi esiste un algoritmo di risoluzione molto importante, chiamato ''[[Branch and cut]]''. Questo algoritmo deve la sua importanza al fatto che è un metodo di risoluzione ''esatto''. Questo significa che permette di trovare la miglior soluzione ammissibile, qualora questa esista, che risolve il problema studiato.
== Note ==
<references/>
== Voci correlate ==
Riga 43 ⟶ 86:
* [[Branch and bound]]
* [[Branch and cut]]
== Altri progetti ==
{{interprogetto|preposizione=sulla|wikt=programmazione lineare}}
== Collegamenti esterni ==
* {{
* {{FOLDOC|linear programming|linear programming}}
{{Controllo di autorità}}
{{Portale|matematica}}
|