{"version":3,"sources":["webpack:///./routes/ottimizzazioneLineare.js","webpack:///./components/old/todo.css","webpack:///./components/OttimizzazioneLineare/Styles.less","webpack:///./components/old/plus.css","webpack:///./components/OttimizzazioneLineare/Unfeasible.js","webpack:///./components/old/timer.js","webpack:///./components/old/timer.less","webpack:///./components/Latex.js","webpack:///./components/OttimizzazioneLineare/Max.js","webpack:///./components/old/minus.js","webpack:///./components/OttimizzazioneLineare/Unbounded.js","webpack:///./components/OttimizzazioneLineare/Min.js","webpack:///./components/old/plus.js","webpack:///./components/old/todo.js","webpack:///./components/old/minus.css","webpack:///./components/Latex.css","webpack:///./contexts/LatexDefaultInline.js","webpack:///./components/Image.js"],"names":["r","String","raw","OttimizzazioneLineare","render","title","href","to","class","src","inline","Component","module","exports","props","style","unfeasible","children","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","dateTo","className","parts","milliseconds","seconds","minutes","hours","days","timeLeft","Math","floor","expired","unknown","count","text","remaining","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","undefined","alt","latex","max","Minus","minus","unbounded","min","Plus","plus","Todo","todo","createContext","target"],"mappings":"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","file":"route-ottimizzazioneLineare.chunk.0d083.js","sourcesContent":["import {Component} from 'preact'\nimport Split from \"../components/old/split\";\nimport Latex from \"../components/Latex\";\nimport Panel from \"../components/old/panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/old/todo\";\nimport Minus from \"../components/old/minus\";\nimport Plus from \"../components/old/plus\";\nimport Code from \"../components/old/code\";\nimport Timer from \"../components/old/timer\";\nimport Image from \"../components/Image\";\nimport Unfeasible from \"../components/OttimizzazioneLineare/Unfeasible\";\nimport Unbounded from \"../components/OttimizzazioneLineare/Unbounded\";\nimport Min from \"../components/OttimizzazioneLineare/Min\";\nimport Max from \"../components/OttimizzazioneLineare/Max\";\n\nconst r = String.raw;\n\nexport default class OttimizzazioneLineare extends Component {\n render() {\n return (\n
\n

Ottimizzazione lineare intera

\n \n \n

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

\n

\n Guardate i video qui!\n

\n
\n \n
    \n
  1. \n
  2. \n
  3. \n
\n
\n
\n \n \n

\n La funzione obiettivo è la funzione con valore noto sconosciuto:\n

\n

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

\n
\n \n

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

\n

\n {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`}\n

\n

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

\n \n Se {r`n = 3`}, allora:\n
    \n
  • {r`e_1 = (1, 0, 0)`}
  • \n
  • {r`e_2 = (0, 1, 0)`}
  • \n
  • {r`e_3 = (0, 0, 1)`}
  • \n
\n
\n \n Se la funzione obiettivo è z = 2w + 3x + 4y, il suo gradiente è {r`\\nabla z = (2, 3, 4)`}.\n \n
\n
\n \n \n
    \n
  • Solo equazioni
  • \n
  • Tutte le variabili maggiori di zero
  • \n
\n
\n \n
    \n
  • Equazioni e disequazioni
  • \n
  • Tutte le variabili maggiori di zero
  • \n
\n
\n \n
    \n
  • Equazioni e disequazioni
  • \n
  • Variabili con qualsiasi valore
  • \n
\n
\n
\n \n \n

\n Convertiamo ogni equazione {r`=`} in due disequazioni {r`\\leq`} e {r`\\geq`},\n

\n Why would you ever do that?!\n
\n \n

\n Convertiamo le disequazioni in equazioni aggiungendo una variabile slack.\n

\n \n {r`a \\leq 3`} diventa {r`a + s_1 = 3`}.\n \n
\n \n

\n Sostituiamo le variabili potenzialmente negative (unconstrained) {r`x_j`} con due variabili {r`x_j^+`} e {r`x_j^-`}.\n

\n \n {r`a \\in \\mathbb{Z}`} diventa {r`a^+ \\in \\mathbb{N}`} e {r`-a^- \\in \\mathbb{N}`}.\n \n
\n
\n \n \n

\n La funzione da minimizzare/massimizzare, tipicamente indicata con una {r`z`} al termine noto.\n

\n
\n \n

\n Le funzioni del sistema che non sono quella obiettivo.\n

\n
\n \n

\n Un modo per rappresentare sistemi in forma standard, anche noto come matrice equivalente completa del sistema.\n

\n \n Il sistema:

\n {r`\n \\begin{cases}\n 2000A + 1000B = z\\\\\n 1A \\leq 3\\\\\n 1B \\leq 3\\\\\n 2A + 2B \\leq 7\n \\end{cases}\n `}

\n Diventa in forma di tableau:

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
TNx_1x_2s_1s_2
z2000100000
31010
30101
72200
\n
\n
\n \n

\n Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu.\n

\n

\n La loro controparte sono le variabili fuori base.\n

\n

\n Un sistema lineare è risolto quando tutte le variabili originali (x_n) sono nella base.\n

\n
\n
\n \n \n

\n Un algoritmo per minimizzare/massimizzare efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan.\n

\n \n E' spiegato in modo semplice qui, e ci sono dei codici sorgenti di esempio qui.\n \n
\n \n
    \n
  1. Trasforma il sistema in forma standard.
  2. \n
  3. Trova tante variabili linearmente indipendenti quante siano le righe: esse saranno la base iniziale.
  4. \n
  5. Finchè ci sono variabili con coefficienti positivi/negativi nella funzione obiettivo:\n
      \n
    1. \n Scegli la prima variabile con coefficiente positivo/negativo nella funzione obiettivo: essa è la variabile entrante.\n Si potrebbe scegliere qualsiasi variabile, ma scegliendo sempre la prima possibile (Regola di Bland) ci si assicura che l'algoritmo termini.\n
    2. \n
    3. Trova la variabile di base (detta variabile uscente) tramite il rapporto {r`\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}`}: scegli la variabile con il rapporto minore, assicurandoti che esso sia positivo. Se tutti i rapporti sono negativi, allora il problema è .
    4. \n
    5. Riscrivi tutte le funzioni del sistema in termini della variabile entrante.
    6. \n
    \n
  6. \n
  7. I termini noti dei vincoli sono le coordinate del risultato, mentre il termine noto della funzione obiettivo è il valore minimizzato/massimizzato.
  8. \n
\n
\n \n

\n Se il problema è rappresentato in forma di tableau, allora esso è risolvibile applicando l'algoritmo di Gauss-Jordan, in aggiunta tenendo conto delle regole per la selezione delle variabili entranti e uscenti.\n

\n
\n
\n \n \n

\n Una soluzione con almeno una variabile di valore 0, dovuta a uno o più vincoli ridondanti.\n

\n

\n Senza Regola di Bland e in presenza di vincoli ridondanti si rischia di trovarsi a fare pivot infiniti.\n

\n
\n \n \n Ho risolto il problema 3 del file Ex_LP_testo con il Simplex:\n

\n \n

\n
\n
\n
\n \n \n

\n Un estensione del Simplex per permettere la risoluzione di problemi la cui origine non è una soluzione ammissibile.\n

\n

\n Prevede l'introduzione di un problema ausiliario, le cui variabili sono dette artificiali e sono solitamente rappresentate come {r`y_n`}.\n

\n \n E' spiegato in modo semplice qui.\n \n
\n \n
    \n
  1. Crea un nuovo tableau, aggiungendo variabili artificiali in modo da avere una base ammissibile.
  2. \n
  3. Sostituisci la vecchia funzione obiettivo con una nuova che minimizzi la somma di tutte le variabili artificiali.
  4. \n
  5. Fase 1: Risolvi il nuovo problema con il metodo Simplex.
  6. \n
  7. Se il Simplex termina con ancora variabili artificiali nella base, allora il problema è .
  8. \n
  9. Una volta che le variabili artificiali sono fuori base, elimina le loro colonne e la nuova funzione obiettivo.
  10. \n
  11. Riporta il tableau in forma base compiendo operazioni per azzerare i coefficienti delle variabili di base nella funzione obiettivo.
  12. \n
  13. Fase 2: Risolvi il tableau con il metodo Simplex.
  14. \n
\n
\n
\n \n \n

\n Una versione semplificata di un problema nella quale si ignorano uno o più vincoli.\n

\n
\n \n

\n Un rilassamento che permette di misurare di quanto i vincoli vengono violati.\n

\n

\n I vincoli vengono aggiunti alla funzione obiettivo assieme a un moltiplicatore, solitamente rappresentato con {r`u_n`}.\n

\n \n

\n Il sistema:\n

\n {r`\n \\begin{cases}\n z = 3 x_1 + 5 x_2\\\\\n 2 x_1 + 3 x_2 \\geq 12\\\\\n - x_1 + 3 x_2 \\geq 3\\\\\n x_1 \\geq 0\\\\\n x_2 \\geq 0\n \\end{cases}\n `}\n

\n diventa:\n

\n {r`\n \\begin{cases}\n z_{LR} = 3 x_1 + 5 x_2 + u_1 ( 12 - 2 x_1 - 3 x_2 ) + u_2 ( 3 + x_1 - 3 x_2 )\\\\\n x_1 \\geq 0\\\\\n x_2 \\geq 0\n \\end{cases}\n `}\n
\n
\n \n

\n Il sistema che massimizza/minimizza i moltiplicatori di rilassamento di un qualsiasi sistema, detto primale.\n

\n

\n Si dimostra che la sua soluzione (se esiste) è uguale alla soluzione del problema primale.\n

\n
\n \n

\n Possiamo trasporre il tableau e sostituire le variabili {r`x_n`} con variabili {r`u_n`} per ottenere il sistema duale!\n

\n

\n I maggiori e minori dei vincoli diventeranno maggiori e minori delle variabili e viceversa.\n

\n
\n \n
    \n
  • Se un problema ha una soluzione finita, allora anche il suo duale la avrà.
  • \n
  • Se un problema è , allora il suo duale potrà essere oppure .
  • \n
  • Se un problema è , allora il suo duale sarà certamente .
  • \n
\n
\n
\n \n \n

\n TODO: una complicata dimostrazione per dire varie cose. Probabilmente si riesce a saltare se non si dà l'orale...\n

\n
\n \n

\n Il teorema che dimostra l'equivalenza tra primale e duale.\n

\n

\n TODO: Anche qui c'è una lunga dimostrazione...\n

\n
\n \n

\n Il teorema che dimostra che il valore della funzione obiettivo del duale (di un qualsiasi tableau) è sempre minore o uguale/maggiore o uguale alla soluzione del corrispettivo primale.\n

\n

\n TODO: Dimostrazione cortina, ma sembra complicata.\n

\n
\n
\n
\n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unbounded\":\"unbounded__25UN8\",\"unfeasible\":\"unfeasible__2MuIF\",\"min\":\"min__3lPpn\",\"max\":\"max__1hxKl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plus\":\"plus__2u13i\"};","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"unfeasible\"}\r\n );\r\n}\r\n","import {Component} from 'preact'\nimport style from \"./timer.less\"\n\n\nexport default class Timer extends Component {\n constructor() {\n super();\n this.state = {\n \"now\": Date.now()\n };\n this.timer = null;\n }\n\n componentDidMount() {\n this.timer = setInterval(() => {\n this.setState({\"now\": Date.now()})\n }, 1000)\n }\n\n componentWillUnmount() {\n if(this.timer !== null) {\n clearInterval(this.timer)\n }\n }\n\n render() {\n let dateTo = \"Unknown date\";\n let className = style.timer;\n\n let parts = {\n milliseconds: \"?\",\n seconds: \"?\",\n minutes: \"?\",\n hours: \"?\",\n days: \"?\",\n };\n\n if(this.props.to) {\n dateTo = new Date(this.props.to);\n let timeLeft = dateTo - this.state.now;\n\n if(timeLeft > 0) {\n parts = {\n milliseconds: timeLeft % 1000,\n seconds: Math.floor(timeLeft / 1000) % 60,\n minutes: Math.floor(timeLeft / 60000) % 60,\n hours: Math.floor(timeLeft / 3600000) % 24,\n days: Math.floor(timeLeft / 86400000),\n };\n }\n\n else {\n parts = {\n milliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n };\n\n className += \" \" + style.expired;\n }\n }\n else {\n className += \" \" + style.unknown;\n }\n\n return (\n
\n
\n {parts.days}\n
\n
\n giorni\n
\n
\n {parts.hours}\n
\n
\n ore\n
\n
\n {parts.minutes}\n
\n
\n minuti\n
\n
\n {parts.seconds}\n
\n
\n secondi\n
\n
\n rimasti\n
\n
\n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"timer\":\"timer__K0K_h\",\"days\":\"days__vN3tf\",\"hours\":\"hours__3v0KX\",\"minutes\":\"minutes__vkYk7\",\"seconds\":\"seconds__3gJ99\",\"count\":\"count__1VV4k\",\"text\":\"text__khS4i\",\"remaining\":\"remaining__zUECg\",\"unknown\":\"unknown__af307\",\"expired\":\"expired__1rtHB\"};","import style from './Latex.css';\nimport {useContext} from \"preact/hooks\";\nimport LatexRenderColor from \"../contexts/LatexRenderColor\";\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\n\nexport default function(props) {\n\t// black, blue, brown, cyan, darkgray, gray, green, lightgray, lime, magenta, olive, orange, pink, purple, red, teal, violet, white, yellow\n\tlet renderColor = useContext(LatexRenderColor);\n\tlet defaultInline = useContext(LatexDefaultInline);\n\n\tlet is_inline;\n\tif(props.inline === undefined) {\n\t\tis_inline = defaultInline;\n\t}\n\telse {\n\t\tis_inline = props.inline;\n\t}\n\n\tlet inline = is_inline ? `\\\\inline` : \"\";\n\tlet equation = `${inline} {\\\\color{${renderColor}} ${props.children} }`;\n\n\treturn (\n\t\t{props.children}\n\t\t\t\n\t);\n}\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"max\"}\r\n );\r\n}\r\n","import style from \"./minus.css\";\nimport { Component } from 'preact';\n\nexport default class Minus extends Component {\n\trender() {\n\t\treturn {this.props.children};\n\t}\n}\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"unbounded\"}\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"min\"}\r\n );\r\n}\r\n","import style from \"./plus.css\";\nimport { Component } from 'preact';\n\nexport default class Plus extends Component {\n\trender() {\n\t\treturn {this.props.children};\n\t}\n}\n","import style from \"./todo.css\";\nimport { Component } from 'preact';\n\nexport default class Todo extends Component {\n\trender() {\n\t\treturn {this.props.children};\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"minus\":\"minus__2EaF0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n","export default function(props) {\r\n return (\r\n {props.alt}/\r\n )\r\n}\r\n"],"sourceRoot":""}