import {Component} from 'preact' import Split from "../components/split"; import Latex from "../components/latex"; import Panel from "../components/panel"; import Example from "../components/example"; import Todo from "../components/todo"; const r = String.raw; export default class OttimizzazioneLineare extends Component { render() { return (

Ottimizzazione lineare intera

Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!

Guardate i video qui!

La funzione obiettivo è la funzione con valore noto sconosciuto:

{r`z = C_1 \cdot x_1 + C_2 \cdot x_2 + C_n \cdot x_n`}

Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce.

{r`\nabla f = \frac{\delta f}{\delta x_1} e_1 + \frac{\delta f}{\delta x_2} e_2 + \frac{\delta f}{\delta x_n} e_n`}

{r`e_i`} è la direzione della coordinata i-esima.

Se {r`n = 3`}, allora:
  • {r`e_1 = (1, 0, 0)`}
  • {r`e_2 = (0, 1, 0)`}
  • {r`e_3 = (0, 0, 1)`}
Se la funzione obiettivo è z = 2w + 3x + 4y, il suo gradiente è {r`\nabla z = (2, 3, 4)`}.

Un sistema è in forma standard quando ha:

  • Solo equazioni
  • Tutte le variabili maggiori di zero

Possiamo trasformare una disequazione in equazione introducendo variabili slack:

{r`3x + 2y \leq 15 \implies 3x + 2y + s_1 = 15`}

In seguito, possiamo riscrivere tutte le funzioni in termini delle variabili slack.

Si ottiene qualcosa come {r`z = -2 s_1 - 3 s_2 + 40`}.

Un modo per rappresentare sistemi in forma standard.

x y s_1 s_2
obj: 80 70 0 0
3 2 1 0
2 3 0 1

E' la matrice equivalente completa del sistema!

Riscrivendo in termini delle variabili slack, otteniamo:

x y s_1 s_2
obj: 0 0 -20 -10
1 0 {r`-\frac{3}{5}`} {r`\frac{2}{5}`}
0 1 {r`\frac{2}{5}`} {r`-\frac{3}{5}`}

Abbiamo appena applicato Gauss-Jordan, trovando la matrice inversa.

Insieme di n colonne lunghe n linearmente indipendenti.

Soluzione ottenuta dalla seguente formula:

  1. {r`A \cdot x = B`}
  2. {r`B \cdot x_B + F \cdot x_F = b`}
  3. {r`x_B = B^{-1} \cdot b - B^{-1} \cdot x_F`}

Dove:

  • {r`A`} è la matrice equivalente
  • {r`b`} è la colonna dei valori noti
  • {r`B`} è la matrice delle colonne della base
  • {r`F`} è la matrice delle colonne fuoribase
  • {r`x_B`} sono le incognite relative alla base
  • {r`x_F`} sono le incognite relative ai valori fuoribase
) } }