mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-24 08:54:21 +00:00
1 line
No EOL
77 KiB
Text
Generated
1 line
No EOL
77 KiB
Text
Generated
{"version":3,"sources":["webpack:///./components/Example.less","webpack:///./components/OttimizzazioneLineare/Styles.less","webpack:///./components/MenuList.less","webpack:///./routes/OttimizzazioneLineare/index.js","webpack:///./routes/OttimizzazioneLineare/00_Intro.js","webpack:///./components/OttimizzazioneLineare/Max.js","webpack:///./components/OttimizzazioneLineare/Finite.js","webpack:///./components/MenuList.js","webpack:///./components/OttimizzazioneLineare/Empty.js","webpack:///./routes/OttimizzazioneLineare/03_TeoriaDeiGrafi.js","webpack:///./routes/OttimizzazioneLineare/01_OttimizzazioneLineare.js","webpack:///./components/Fisica/Minus.js","webpack:///./components/OttimizzazioneLineare/Unbounded.js","webpack:///./components/OttimizzazioneLineare/Min.js","webpack:///./components/Fisica/Minus.less","webpack:///./components/Fisica/Plus.less","webpack:///./components/Example.js","webpack:///./components/ExampleBoxColor.js","webpack:///./components/Fisica/Plus.js","webpack:///./routes/OttimizzazioneLineare/02_OttimizzazioneLineareIntera.js","webpack:///./components/ExampleBoxColor.less"],"names":["module","exports","r","String","raw","title","href","props","class","style","max","children","finite","menulist","unfeasible","src","inline","color","ExampleBoxColor","className","minus","unbounded","min","example","plus"],"mappings":"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","file":"route-OttimizzazioneLineare.chunk.dee78.esm.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"red\":\"red__2y1B_\",\"orange\":\"orange__dD2kx\",\"yellow\":\"yellow__OEpwl\",\"lime\":\"lime__CVe41\",\"cyan\":\"cyan__26ZAg\",\"blue\":\"blue__LO7Xm\",\"magenta\":\"magenta__1Akee\",\"example\":\"example__2PzAa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"red\":\"red__UmOgB\",\"orange\":\"orange__1FTS8\",\"yellow\":\"yellow__3dJAV\",\"lime\":\"lime__3kPc-\",\"cyan\":\"cyan__11RpC\",\"blue\":\"blue__320AC\",\"magenta\":\"magenta__VPUPe\",\"unbounded\":\"unbounded__25UN8\",\"unfeasible\":\"unfeasible__2MuIF\",\"finite\":\"finite__2EP_f\",\"min\":\"min__3lPpn\",\"max\":\"max__1hxKl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menulist\":\"menulist__2Cmnq\"};","import Intro from \"./00_Intro\";\nimport OttimizzazioneLineare from \"./01_OttimizzazioneLineare\";\nimport OttimizzazioneLineareIntera from \"./02_OttimizzazioneLineareIntera\";\nimport TeoriaDeiGrafi from \"./03_TeoriaDeiGrafi\";\n\n\nexport default function () {\n return (\n <div>\n <h1>Ottimizzazione Lineare Intera</h1>\n <Intro/>\n <OttimizzazioneLineare/>\n <OttimizzazioneLineareIntera/>\n <TeoriaDeiGrafi/>\n </div>\n )\n}\n","import {Fragment} from \"preact\";\nimport {Section, Panel, BLatex, TablePanel} from \"bluelib\";\nimport Link from \"../../components/Link\";\nimport MenuList from \"../../components/MenuList\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Esame\"}>\n <Panel title={\"Contatti\"}>\n <ul>\n <li><Link href={\"mailto:stefano.novellani@unimore.it\"}>Prof. Stefano Novellani</Link></li>\n </ul>\n </Panel>\n <Panel title={\"Scritto\"}>\n <p>\n Esame digitale in 3 fasi:\n </p>\n <ul>\n <li>25 domande di teoria stile vero/falso</li>\n <li>2 domande a risposta aperta </li>\n <li>2 modelli matematici da rappresentare tramite GLPK/MathProg</li>\n </ul>\n </Panel>\n </Section>\n <Section title={\"Extra\"}>\n <Panel title={\"GLPK/MathProg/GMPL\"}>\n <p>\n Ti serve una mano anche in GLPK? <small>Che in realtà si chiama <b>GMPL</b>, ma vabbè...</small>\n </p>\n <p>\n Ho fatto una pagina apposta:\n </p>\n <MenuList>\n <li><Link href={\"/ottimizzazionelineare/gmpl\"}>GLPK/MathProg/GMPL</Link></li>\n </MenuList>\n </Panel>\n </Section>\n <Section title={\"Glossario\"}>\n <TablePanel>\n <thead>\n <tr>\n <th><abbr title={\"Vettore / matrice\"}>v</abbr></th>\n <th><abbr title={\"Elemento singolo\"}>s</abbr></th>\n <th>Significato</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><BLatex>{r`\\mathbf{x}`}</BLatex></td>\n <td><BLatex>{r`x_i`}</BLatex></td>\n <td>Incognite</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{s}`}</BLatex></td>\n <td><BLatex>{r`s_i`}</BLatex></td>\n <td>Variabili slack</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{c}`}</BLatex></td>\n <td><BLatex>{r`c_i`}</BLatex></td>\n <td>Coefficienti della funzione obiettivo</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{A}`}</BLatex></td>\n <td><BLatex>{r`a_{ij}`}</BLatex></td>\n <td>Coefficienti dei vincoli</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{b}`}</BLatex></td>\n <td><BLatex>{r`b_i`}</BLatex></td>\n <td>Termini noti dei vincoli</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{y}`}</BLatex></td>\n <td><BLatex>{r`y_i`}</BLatex></td>\n <td>Incognite artificiali</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{u}`}</BLatex></td>\n <td><BLatex>{r`u_i`}</BLatex></td>\n <td>Coefficienti di rilassamento</td>\n </tr>\n <tr>\n <td/>\n <td><BLatex>{r`c_0`}</BLatex></td>\n <td>Valore ottimo di un problema</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{x}_B`}</BLatex></td>\n <td/>\n <td>Incognite in base</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{c}_B`}</BLatex></td>\n <td/>\n <td>Coefficienti della funzione obiettivo delle variabili in base</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{B}`}</BLatex></td>\n <td/>\n <td>Coefficienti dei vincoli delle variabili in base</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{x}_F`}</BLatex></td>\n <td/>\n <td>Incognite fuori base</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{c}_F`}</BLatex></td>\n <td/>\n <td>Coefficienti della funzione obiettivo delle variabili fuori base</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{F}`}</BLatex></td>\n <td/>\n <td>Coefficienti dei vincoli delle variabili fuori base</td>\n </tr>\n </tbody>\n </TablePanel>\n <TablePanel>\n <thead>\n <tr>\n <th>Simboli</th>\n <th>Significato</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><BLatex>{r`\\mathbf{c}^T \\mathbf{x}`}</BLatex></td>\n <td>Soluzione del problema</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{A} \\mathbf{x} = \\mathbf{b}`}</BLatex></td>\n <td>Vincoli in forma standard</td>\n </tr>\n <tr>\n <td><BLatex>{r`z(\\dots)`}</BLatex></td>\n <td>Funzione obiettivo</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{u}^T \\mathbf{b}`}</BLatex></td>\n <td>Soluzione del problema duale</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\mathbf{u}^T \\mathbf{A} = \\mathbf{c}^T`}</BLatex></td>\n <td>Vincoli del problema duale in forma standard</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\lfloor x \\rfloor`}</BLatex></td>\n <td>Arrotondamento per difetto di x</td>\n </tr>\n <tr>\n <td><BLatex>{r`\\lceil x \\rceil`}</BLatex></td>\n <td>Arrotondamento per eccesso di x</td>\n </tr>\n <tr>\n <td><BLatex>{r`x - \\lfloor x \\rfloor`}</BLatex></td>\n <td>Parte frazionaria di x (se non è negativo)</td>\n </tr>\n </tbody>\n </TablePanel>\n </Section>\n </Fragment>\n )\n}\n","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.max}\n title={\"In problemi in cui il primale è di massimizzazione.\"}>{props.children ? props.children : \"max\"}</abbr>\n );\n}\n","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.finite}\n title={\"I punti del poliedro sono finiti.\"}>{props.children ? props.children : \"finito\"}</abbr>\n );\n}\n","import style from \"./MenuList.less\";\n\nexport default function(props) {\n return (\n <ul class={style.menulist}>\n {props.children}\n </ul>\n )\n}","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.unfeasible}\n title={\"Il poliedro non contiene punti.\"}>{props.children ? props.children : \"vuoto\"}</abbr>\n );\n}\n","import {Fragment} from \"preact\";\nimport {Section, Panel, ILatex, BLatex, PLatex, Todo, BaseLink, Image} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={<span>Terminologia dei grafi <Todo>TODO: migliorare</Todo></span>}>\n <Panel title={\"Grafo\"}>\n <p>\n Insieme di <b>nodi</b> <ILatex>{r`N`}</ILatex> e <b>archi</b> <ILatex>{r`E`}</ILatex> che li\n connettono.\n </p>\n <p>\n Può essere <b>diretto</b> se gli archi hanno una direzione.\n </p>\n </Panel>\n <Panel title={\"Nodi adiacenti\"}>\n <p>\n Nodi <b>connessi da un arco</b>.\n </p>\n </Panel>\n <Panel title={\"Arco incidente\"}>\n <p>\n Arco <b>connesso a un dato nodo</b>.\n </p>\n </Panel>\n <Panel title={\"Arco entrante o uscente\"}>\n <p>\n Un arco diretto che <b>termina</b> o <b>inizia</b> da un dato nodo.\n </p>\n </Panel>\n <Panel title={\"Grado\"}>\n <p>\n <b>Conteggio</b> degli archi incidenti di un nodo.\n </p>\n <p>\n Si può calcolare anche relativamente agli archi entranti o agli archi uscenti.\n </p>\n </Panel>\n <Panel title={\"Percorso\"}>\n <p>\n Sequenza di <b>archi consecutivi</b>.\n </p>\n </Panel>\n <Panel title={\"Connessione\"}>\n <p>\n Due nodi sono connessi se tra loro esiste <b>almeno un percorso</b>.\n </p>\n <p>\n Un grafo è connesso se tutti i suoi nodi sono connessi.\n </p>\n </Panel>\n <Panel title={\"Cicli e circuiti\"}>\n <p>\n Percorsi rispettivamente indiretti e diretti in cui l'inizio coincide con la fine.\n </p>\n </Panel>\n <Panel title={\"Grafo completo\"}>\n <p>\n Grafo in cui ogni nodo è connesso con ogni altro.\n </p>\n <p>\n Se diretto, contiene <ILatex>{r`n \\cdot (n - 1)`}</ILatex> archi; altrimenti, ne contiene la\n metà.\n </p>\n </Panel>\n <Panel title={\"Matrice di adiacenza\"}>\n <blockquote>\n Vedi <BaseLink href={\"/algoritmiestrutturedati\"}>Algoritmi</BaseLink>.\n </blockquote>\n </Panel>\n <Panel title={\"Lista di adiacenza\"}>\n <blockquote>\n Vedi <BaseLink href={\"/algoritmiestrutturedati\"}>Algoritmi</BaseLink>.\n </blockquote>\n </Panel>\n <Panel title={\"Taglio\"}>\n <p>\n Sottoinsieme di archi che connettono due sottoinsiemi di nodi.\n </p>\n <p>\n Può essere anche uscente o entrante; in tal caso include solo gli archi entranti o uscenti dal\n sottoinsieme.\n </p>\n </Panel>\n <Panel title={\"Sottografo\"}>\n <p>\n Sottoinsieme di nodi e archi di un grafo.\n </p>\n <p>\n Tutti gli archi di un sottografo possono connettere solo nodi all'interno di esso.\n </p>\n </Panel>\n <Panel title={\"Albero\"}>\n <p>\n Sottografo connesso e aciclico.\n </p>\n </Panel>\n <Panel title={\"Spanning tree\"}>\n <p>\n Albero che include tutti i nodi di un grafo.\n </p>\n </Panel>\n </Section>\n <Section title={\"Algoritmi con i grafi\"}>\n <Panel title={\"Prim\"}>\n <p>\n Crea uno spanning tree.\n </p>\n <ol>\n <li>Aggiungi l'arco di costo minimo all'albero.</li>\n <li>Finchè mancano ancora archi:\n <ol>\n <li>Trova tutti gli archi che aggiungerebbero un nuovo nodo all'albero.</li>\n <li>Seleziona l'arco di costo minore.</li>\n </ol>\n </li>\n </ol>\n </Panel>\n <Panel title={\"Ordine topologico\"}>\n <p>\n Trova l'ordine topologico di un albero.\n </p>\n <ol>\n <li>Ripeti finchè ci sono nodi nel grafo:\n <ol>\n <li>Assegna un numero sequenziale a un nodo senza archi entranti.</li>\n <li>Elimina il nodo a cui hai assegnato il numero.</li>\n <li>Elimina tutti gli archi incidenti sul nodo che hai eliminato.</li>\n </ol>\n </li>\n </ol>\n </Panel>\n <Panel title={\"Percorsi minimi in grafo diretto\"}>\n <p>\n Trova i percorsi di costo minimo in un albero.\n </p>\n <ol>\n <li>Trova l'ordine topologico dell'albero.</li>\n <li>Invece che provare ogni singola combinazione di nodi, prova solo i nodi che hanno un numero\n topologico maggiore di quello del nodo attuale.\n </li>\n </ol>\n <p>\n <Todo>TODO: forse spiegarlo meglio non farebbe male</Todo>\n </p>\n </Panel>\n <Panel title={\"Algoritmo di Dijkstra\"}>\n <blockquote>\n Vedi <BaseLink href={\"/algoritmiestrutturedati\"}>Algoritmi</BaseLink>.\n </blockquote>\n </Panel>\n <Panel title={\"Algoritmo di Ford-Fulkerson\"}>\n <Example>\n Trova il volume massimo di acqua che è possibile fare scorrere attraverso tubature con una data\n capacità.\n </Example>\n <p>\n Costruisci il grafo residuo e vedi se c'è un percorso che va dalla sorgente alla destinazione.\n </p>\n <p>\n <Image src={\"https://i.imgur.com/FJk44q0.png\"}/>\n </p>\n <p>\n <Image src={\"https://i.imgur.com/fzb6xz2.png\"}/>\n </p>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n","import {Fragment} from \"preact\";\nimport {Section, Panel, ILatex, BLatex, PLatex, Latex, BaseLink, Todo} from \"bluelib\";\nimport Min from \"../../components/OttimizzazioneLineare/Min\";\nimport Max from \"../../components/OttimizzazioneLineare/Max\";\nimport Example from \"../../components/Example\";\nimport Finite from \"../../components/OttimizzazioneLineare/Finite\";\nimport Empty from \"../../components/OttimizzazioneLineare/Empty\";\nimport Unbounded from \"../../components/OttimizzazioneLineare/Unbounded\";\nimport Plus from \"../../components/Fisica/Plus\";\nimport Minus from \"../../components/Fisica/Minus\";\nimport ExampleBoxColor from \"../../components/ExampleBoxColor\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Problemi di ottimizzazione lineare\"}>\n <Panel title={\"Cosa sono?\"}>\n <p>\n Problemi che cercano di <Min>minimizzare</Min>/<Max>massimizzare</Max> il valore di una <i>funzione\n obiettivo</i> le cui incognite sono sottoposte a un <b>sistema di <i>vincoli</i></b>.\n </p>\n <p>\n Spesso sono detti anche <i>problemi di <abbr title={\"Linear Programming\"}>LP</abbr></i>.\n </p>\n </Panel>\n <Panel title={\"Funzione obiettivo\"}>\n <p>\n La funzione da <Min>minimizzare</Min>/<Max>massimizzare</Max>.\n </p>\n <p>\n Il vettore dei suoi coefficienti è detto <Latex>{r`\\mathbf{c}`}</Latex>, mentre quello delle sue\n incognite <Latex>{r`\\mathbf{x}`}</Latex>.\n </p>\n <p>\n In genere, la funzione obiettivo è scritta in forma di <b>combinazione lineare</b> tra le <b>incognite</b> e i <b>coefficienti</b>:\n </p>\n <p>\n <Latex>{r`z(\\mathbf{x}) = c_1 \\cdot x_1 + c_2 \\cdot x_2 + \\dots + c_n \\cdot x_n`}</Latex>\n </p>\n </Panel>\n <Panel title={\"Gradiente\"}>\n <p>\n <b>Funzione</b> della funzione obiettivo che restituisce la direzione del suo aumento più\n veloce.\n </p>\n <p>\n <Latex>{r`\\nabla (f) = \\frac{d f}{d x_1} I_1 + \\frac{d f}{d x_2} I_2 + \\frac{d f}{d x_n} I_n`}</Latex>\n </p>\n <Example>\n La matrice <Latex>{r`\\mathbf{I}`}</Latex> è la matrice identità.\n </Example>\n <Example>\n Se la funzione obiettivo è <Latex>z = 2w + 3x + 4y</Latex>, il suo gradiente\n è <Latex>{r`\\nabla z = (2, 3, 4)`}</Latex>.\n </Example>\n </Panel>\n <Panel title={\"Vincoli\"}>\n <p>\n Equazioni e disequazioni a cui devono sottostare le incognite perchè esse formino una soluzione\n valida.\n </p>\n <p>\n I loro coefficienti sono contenuti nella matrice <Latex>{r`\\mathbf{A}`}</Latex>, mentre i loro\n termini noti nel vettore <Latex>{r`\\mathbf{b}`}</Latex>.\n </p>\n </Panel>\n <Panel title={\"Poliedro\"}>\n <p>\n L'<b>insieme</b> che racchiunde tutte le <b>soluzioni ammissibili</b> di un problema.\n </p>\n <p>\n Può essere <i><Finite/></i>, <i><Empty/></i> oppure <i><Unbounded/></i>.\n </p>\n <Example>\n Si chiama così perchè se si disegna su un piano cartesiano, esso forma una figura geometrica a\n più lati, ovvero un <a href={\"https://it.wikipedia.org/wiki/Poliedro\"}>poliedro</a>.\n </Example>\n </Panel>\n <Panel title={\"Valore ottimo\"}>\n <p>\n La <b>soluzione</b> di un problema, ricavabile dal\n prodotto <Latex>{r`\\mathbf{c}^T \\mathbf{x}`}</Latex>.\n </p>\n <p>\n In particolare, il valore ottimo è un <b>vertice</b> del poliedro, detto <i>vertice ottimo</i>.\n </p>\n </Panel>\n </Section>\n <Section title={\"Forme di un problema di ottimizzazione\"}>\n <Panel title={\"Forma generale\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><Plus>Equazioni e disequazioni</Plus></li>\n <li><Plus>Variabili non vincolate</Plus></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} = b,\\quad \\mathbf{A'} \\mathbf{x} \\geq \\mathbf{b'} \\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n <Panel title={\"Forma canonica\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><Plus>Solo disequazioni</Plus></li>\n <li><Minus>Vincoli di non-negatività sulle incognite</Minus></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} \\geq b,\\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n <Panel title={\"Forma standard\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><Minus>Solo equazioni</Minus></li>\n <li><Minus>Vincoli di non-negatività sulle incognite</Minus></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} = b,\\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n </Section>\n <Section title={\"Conversioni tra le forme\"}>\n <Panel title={\"Standard e generale\"}>\n <p>\n Applica questa conversione a ogni equazione nel sistema:\n </p>\n <p>\n <Latex inline={false}>{r`\n a = b \\Leftrightarrow\n \\begin{cases}\n a \\leq b\\\\\n a \\geq b\n \\end{cases}\n `}</Latex>\n </p>\n <Example>Serve solo nella teoria per dimostrare che le forme sono equivalenti.</Example>\n </Panel>\n <Panel title={\"Canonica e standard\"}>\n <p>\n Aggiungi una <i>variabile slack</i> <Latex>{r`s`}</Latex> <b>non-vincolata</b> a ogni\n disequazione nel sistema:\n </p>\n <p>\n <Latex inline={false}>{r`\n a \\leq b \\Leftrightarrow a + s = b\n `}</Latex>\n </p>\n <p>\n <Latex inline={false}>{r`\n a \\geq b \\Leftrightarrow a - s = b\n `}</Latex>\n </p>\n </Panel>\n <Panel title={\"Generale e canonica\"}>\n <p>\n Sdoppia ogni variabile non-vincolata in due variabili con vincolo di non-negatività:\n </p>\n <p>\n <Latex inline={false}>{r`\n \\begin{cases}\n a = a^+ - a^-\\\\\n a^+ \\geq 0\\\\\n a^- \\geq 0\n \\end{cases}\n `}</Latex>\n </p>\n </Panel>\n </Section>\n <Section title={\"Tableau\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un modo per rappresentare sistemi in forma standard, anche noto come <b>matrice equivalente\n completa</b> del sistema.\n </p>\n </Panel>\n <Panel title={\"Trasformazioni\"}>\n <p>\n Un tableau è un sistema di equazioni in <b>forma matriciale completa</b>.\n </p>\n <p>\n È possibile effettuare senza che cambi il risultato finale le seguenti trasformazioni:\n </p>\n <ul>\n <li><b>Moltiplicare</b> un'intera riga per una costante.</li>\n <li><b>Sommare</b> una riga a un'altra</li>\n </ul>\n <Example>\n Suona familiare? Sì, lo abbiamo fatto anche in Algebra Lineare.\n </Example>\n </Panel>\n <Panel title={\"Variabili nella base\"}>\n <p>\n Variabili che hanno <b>tutti 0 e un solo 1</b> nella loro colonna del tableau.\n </p>\n <p>\n La loro controparte sono le <i>variabili fuori base</i>, che hanno qualsiasi altro valore.\n </p>\n </Panel>\n <Panel title={\"Valore attuale\"}>\n <p>\n Il valore della funzione obiettivo che si otterrebbe se <b>tutte le variabili fuori base\n valessero 0</b>.\n </p>\n <p>\n Procedendo nella risoluzione (descritta in seguito) del tableau, questo valore aumenterà, fino a\n raggiungere il valore ottimo quando la risoluzione sarà completata.\n </p>\n </Panel>\n </Section>\n <Section>\n <Panel color={ExampleBoxColor} title={\"Un esempio\"}>\n <p>\n Il sistema:\n </p>\n <PLatex>{r`\n \\begin{cases}\n 1x_1\\ {\\color{Cyan} \\leq}\\ {\\color{Red} 3}\\\\\n 1x_2\\ {\\color{Cyan} \\leq}\\ {\\color{Red} 3}\\\\\n 2x_1 + 2x_2\\ {\\color{Cyan} \\leq}\\ {\\color{Red} 7}\\\\\n {\\color{Yellow} \\min}\\ {\\color{Green} 2000x_1 + 1000x_2}\n \\end{cases}\n `}</PLatex>\n <p>\n Diventa il tableau:\n </p>\n <table className={\"right\"}>\n <thead>\n <tr>\n <th><Latex>x_1</Latex></th>\n <th><Latex>x_2</Latex></th>\n <th><Latex>s_1</Latex></th>\n <th><Latex>s_2</Latex></th>\n <th><Latex>s_3</Latex></th>\n <th><abbr title={\"Termine noto\"}>TN</abbr></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>1</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>0</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>0</Latex></td>\n <td style={\"background-color: rgba(255, 0, 0, 0.1);\"}><Latex>3</Latex></td>\n </tr>\n <tr>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>0</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>1</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>0</Latex></td>\n <td style={\"background-color: rgba(255, 0, 0, 0.1);\"}><Latex>3</Latex></td>\n </tr>\n <tr>\n <td><Latex>2</Latex></td>\n <td><Latex>2</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>0</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>0</Latex></td>\n <td style={\"background-color: rgba(0, 255, 255, 0.1);\"}><Latex>1</Latex></td>\n <td style={\"background-color: rgba(255, 0, 0, 0.1);\"}><Latex>7</Latex></td>\n </tr>\n <tr style={\"background-color: rgba(0, 255, 0, 0.1);\"}>\n <td><Latex>2000</Latex></td>\n <td><Latex>1000</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>0</Latex></td>\n <td style={\"background-color: rgba(255, 255, 0, 0.2);\"}><Latex>0</Latex></td>\n </tr>\n </tbody>\n </table>\n <p>\n Con i seguenti elementi:\n </p>\n <ul>\n <li>\n <u style={\"color: #7dff7d;\"}>Funzione obiettivo</u>\n </li>\n <li>\n <u style={\"color: #ffff7d;\"}>Valore attuale</u>\n </li>\n <li>\n <u style={\"color: #ff7d7d;\"}>Termini noti</u>\n </li>\n <li>\n <u style={\"color: #7dffff;\"}>Variabili slack</u>\n </li>\n </ul>\n </Panel>\n </Section>\n <Section title={\"Simplex primale\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un algoritmo per trovare efficientemente il <b>valore ottimo</b> e le coordinate di un <b>vertice\n ottimo</b> in problemi di ottimizzazione lineare.\n </p>\n <Example>\n Ricordi <BaseLink href={\"/calcolonumerico\"}>Gauss</BaseLink>? Il Simplex è la stessa cosa,\n in cui però si cerca di <Min>minimizzare</Min>/<Max>massimizzare</Max> il termine noto della funzione obiettivo.\n </Example>\n <Example title={\"Esempio\"}>\n <a href={\"https://i.imgur.com/1r405Mb.jpg\"}>Questa</a> è la soluzione passo per passo del\n problema 3 del file <a href={\"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716\"}><code>Ex_LP_testo</code></a>.\n </Example>\n <p>\n Perchè sia possibile effettuare il Simplex è necessario che l'<b>origine sia nel poliedro</b>:\n pertanto, <b>non</b> è possibile che un problema risolto con il Simplex sia <Empty/>.\n </p>\n </Panel>\n <Panel title={\"I passi\"}>\n <ol>\n <li>Trasforma il sistema in <b>forma standard</b>.</li>\n <li>Trova tante variabili <b>linearmente indipendenti</b> quante siano le righe: esse saranno\n la <i>base iniziale</i>.\n </li>\n <li>Finchè ci sono variabili con coefficienti <Min>positivi</Min>/<Max>negativi</Max> nella\n funzione obiettivo:\n <ol>\n <li>\n <p>\n <b>Scegli</b> la prima variabile fuori base con\n coefficiente <Min>positivo</Min>/<Max>negativo</Max> nella funzione obiettivo: essa\n è la <i>variabile entrante</i>.\n </p>\n <aside><u>Regola di Bland</u>: Si potrebbe scegliere qualsiasi variabile come\n entrante, ma scegliendo sempre la prima ammissibile ci si assicura che\n l'algoritmo termini.\n </aside>\n </li>\n <li>\n <p>\n <b>Scegli</b> la variabile in base con il minor rapporto\n positivo:\n </p>\n <PLatex>{r`\\frac{b_i}{A_ik}`}</PLatex>\n <aside>\n Se non sei riuscito a trovare nessuna variabile con un rapporto positivo,\n significa che il poliedro è <Unbounded/>.\n </aside>\n </li>\n <li>\n <p>\n <u>Pivot</u>: <b>trasforma</b> tutte le funzioni del sistema in modo che abbiano 0\n nella colonna della variabile entrante, tranne nella riga della variabile uscente,\n in cui avrà 1.\n </p>\n </li>\n </ol>\n </li>\n <li>Il poliedro è <Finite/>: i <b>termini noti dei vincoli</b> sono le coordinate del suo\n vertice ottimo, mentre il <b>termine noto della funzione obiettivo</b> è il valore ottimo.\n </li>\n </ol>\n </Panel>\n <Panel title={\"Soluzioni di base degenerata\"}>\n <p>\n Una soluzione con almeno una variabile di valore <Latex>0</Latex>, dovuta a uno o più <b>vincoli\n ridondanti</b>.\n </p>\n <p>\n Senza <b>Regola di Bland</b> e in presenza di vincoli ridondanti si rischia di trovarsi a fare\n pivot infiniti.\n </p>\n </Panel>\n </Section>\n <Section title={\"Metodo delle due fasi\"}>\n <Panel title={\"Metodo delle due fasi\"}>\n <p>\n Un <b>estensione del Simplex</b> per permettere la risoluzione di problemi la cui <b>origine non\n è una soluzione ammissibile</b>.\n </p>\n <p>\n Prevede l'introduzione di un <i>problema ausiliario</i>, le cui incognite sono\n dette <i>artificiali</i>.\n </p>\n <p>\n Il vettore delle incognite artificiali è solitamente chiamato <Latex>{r`\\mathbf{y}`}</Latex>.\n </p>\n </Panel>\n <Panel title={\"Procedimento\"}>\n <ol>\n <li>Crea un nuovo tableau, <b>aggiungendo variabili artificiali</b> in modo da avere una base\n ammissibile.\n </li>\n <li>Sostituisci la vecchia funzione obiettivo con una nuova che <b>minimizzi la somma</b> di\n tutte le variabili artificiali.\n </li>\n <li><u>Fase 1</u>: <b>Risolvi</b> il nuovo problema con il Simplex primale.</li>\n <li>Se il Simplex termina quando ci sono ancora <b>variabili artificiali nella base</b>, allora\n il poliedro è <b><Empty/></b>.\n </li>\n <li>Una volta che le variabili artificiali sono fuori base, <b>elimina</b> le loro colonne e la\n nuova funzione obiettivo.<br/></li>\n <li>Riporta il tableau in forma base compiendo operazioni per <b>azzerare i\n coefficienti</b> delle variabili di base nella funzione obiettivo.\n </li>\n <li><u>Fase 2</u>: <b>Risolvi</b> il tableau con il Simplex primale.</li>\n </ol>\n </Panel>\n </Section>\n <Section title={\"Rilassamento\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Una versione semplificata di un problema nella quale si <b>ignora la violazione</b> di uno o più\n vincoli.\n </p>\n </Panel>\n <Panel title={\"Rilassamento di Lagrange\"}>\n <p>\n Un rilassamento che permette di misurare <b>di quanto i vincoli vengono violati</b>.\n </p>\n <p>\n I vincoli, moltiplicati per <b>coefficienti di rilassamento</b>, vengono inseriti nella funzione\n obiettivo.\n </p>\n <p>\n Il vettore dei coefficienti di rilassamento solitamente è indicato\n con <Latex>{r`\\mathbf{u}`}</Latex>.\n </p>\n <Example>\n <p>\n Il sistema:\n </p>\n <Latex inline={false}>{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 `}</Latex>\n <p>\n diventa:\n </p>\n <Latex inline={false}>{r`\n \\begin{cases}\n z = 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 `}</Latex>\n </Example>\n </Panel>\n </Section>\n <Section title={\"Dualità\"}>\n <Panel title={\"Duale\"}>\n <p>\n Il sistema che <b><Min>massimizza</Min>/<Max>minimizza</Max> i moltiplicatori di\n rilassamento</b> di un problema detto <i>primale</i>.\n </p>\n </Panel>\n <Panel title={\"In termini matriciali\"}>\n <p>\n Possiamo <b>trasporre</b> il tableau e sostituire le variabili <Latex>{r`x_n`}</Latex> con\n variabili <Latex>{r`u_n`}</Latex> per ottenere il sistema duale!\n </p>\n <p>\n I maggiori e minori dei vincoli diventeranno maggiori e minori delle variabili e viceversa.\n </p>\n </Panel>\n <Panel title={\"Feasibility del duale\"}>\n <ul>\n <li>Se un problema ha una <b>soluzione finita</b>, allora anche il suo duale la avrà.</li>\n <li>Se un problema è <b><Empty/></b>, allora il suo duale potrà\n essere <Empty/> oppure <Unbounded/>.\n </li>\n <li>Se un problema è <b><Unbounded/></b>, allora il suo duale sarà certamente <Empty/>.</li>\n </ul>\n </Panel>\n <Panel title={\"Variabili e vincoli\"}>\n <p>\n Variabili e vincoli del duale corrispondono rispettivamente a vincoli e variabili del primale.\n </p>\n <p>\n In particolare:\n </p>\n <table>\n <thead>\n <tr>\n <th><Min>Min</Min></th>\n <th><Max>Max</Max></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>Vincolo <ILatex>\\leq</ILatex></td>\n <td>Variabile <ILatex>\\leq</ILatex></td>\n </tr>\n <tr>\n <td>Vincolo <ILatex>\\geq</ILatex></td>\n <td>Variabile <ILatex>\\geq</ILatex></td>\n </tr>\n <tr>\n <td>Vincolo <ILatex>=</ILatex></td>\n <td>Variabile <b>libera</b></td>\n </tr>\n <tr>\n <td>Variabile <ILatex>\\leq</ILatex></td>\n <td>Vincolo <ILatex>\\geq</ILatex></td>\n </tr>\n <tr>\n <td>Variabile <ILatex>\\geq</ILatex></td>\n <td>Vincolo <ILatex>\\leq</ILatex></td>\n </tr>\n <tr>\n <td>Variabile <b>libera</b></td>\n <td>Vincolo <ILatex>=</ILatex></td>\n </tr>\n </tbody>\n </table>\n </Panel>\n </Section>\n <Section title={\"Un po' di teoria\"}>\n <Panel title={\"Lemma di Farkas\"}>\n <p>\n Una disuguaglianza lineare <Latex>{r`c_0 \\leq \\mathbf{c}^T \\mathbf{x}`}</Latex> è verificata da\n tutti i punti di un poliedro non-<Empty/> se e solo se esiste un\n vettore <Latex>{r`u \\in \\mathfrak{R}^m`}</Latex> tale che:\n </p>\n <PLatex>{r`\\mathbf{c}^T \\geq \\mathbf{u}^T \\mathbf{A}`}</PLatex>\n <PLatex>{r`c_0 \\leq \\mathbf{u}^T \\mathbf{b}`}</PLatex>\n </Panel>\n <Panel title={\"Dualità forte\"}>\n <p>\n Il teorema che dimostra l'equivalenza tra primale e duale.\n </p>\n <p>\n Se uno dei due problemi è finito, la soluzione di uno coincide con la soluzione dell'altro.\n </p>\n <p>\n <Latex>{r`\\mathbf{c}^T \\mathbf{x} = \\mathbf{u}^T \\mathbf{b}`}</Latex>\n </p>\n <p>\n <Todo>TODO: Anche qui c'è una lunga dimostrazione...</Todo>\n </p>\n </Panel>\n <Panel title={\"Dualità debole\"}>\n <p>\n Il teorema che dimostra che il valore della funzione obiettivo del duale (di un qualsiasi\n tableau) è sempre <Min>minore o uguale</Min>/<Max>maggiore o uguale</Max> alla soluzione del\n corrispettivo primale.\n </p>\n <p>\n <Todo>TODO: Dimostrazione cortina, ma sembra complicata.</Todo>\n </p>\n </Panel>\n <Panel title={\"Condizioni di ottimalità\"}>\n <p>\n Il teorema che ci permette di passare dalla soluzione del duale alla soluzione del\n primale. <Todo>TODO: credo?</Todo>\n </p>\n <p>\n Si deriva combinando le seguenti condizioni:\n </p>\n <ul>\n <li>Ammissibilità del\n primale: <Latex>{r`\\mathbf{A} \\mathbf{X} \\geq \\mathbf{b}, \\quad \\mathbf{x} \\geq 0`}</Latex>\n </li>\n <li>Ammissibilità del\n duale: <Latex>{r`\\mathbf{u}^T \\mathbf{A} \\leq \\mathbf{c}^T, \\quad \\mathbf{u} \\geq 0`}</Latex>\n </li>\n <li>Teorema della dualità\n forte: <Latex>{r`\\mathbf{c}^T \\mathbf{x} = \\mathbf{u}^T \\mathbf{b}`}</Latex> (alla soluzione\n ottima)\n </li>\n </ul>\n <p>\n Ne risulta che una soluzione è ottima se e solo se:\n </p>\n <PLatex>{r`\\left( \\mathbf{c}^T - \\mathbf{u}^T \\mathbf{A} \\right) \\mathbf{x} = 0`}</PLatex>\n <PLatex>{r`\\mathbf{u}^T \\left( \\mathbf{A} \\mathbf{x} - \\mathbf{b} \\right) = 0`}</PLatex>\n </Panel>\n </Section>\n <Section title={\"Simplex duale\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un'estensione al Simplex primale che opera sul problema duale.\n </p>\n </Panel>\n <Panel title={\"Come funziona?\"}>\n <p>\n Funziona esattamente come il Simplex primale, ma opera sul duale.\n </p>\n </Panel>\n </Section>\n <Section title={\"Analisi di sensibilità\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un procedimento che misura di <b>quanto può variare</b> il termine noto di un\n vincolo <Latex>{r`b_i`}</Latex> o il coefficiente della funzione\n obiettivo <Latex>{r`c_i`}</Latex> prima che la base degeneri.\n </p>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n","import style from \"./Minus.less\";\n\nexport default function (props) {\n return <span class={style.minus}>{props.children}</span>;\n}\n","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.unbounded}\n title={\"I punti del poliedro sono infiniti.\"}>{props.children ? props.children : \"illimitato\"}</abbr>\n );\n}\n","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.min}\n title={\"In problemi in cui il primale è di minimizzazione.\"}>{props.children ? props.children : \"min\"}</abbr>\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"red\":\"red__3phX0\",\"orange\":\"orange__1OSkI\",\"yellow\":\"yellow__2pQOr\",\"lime\":\"lime__3vRUg\",\"cyan\":\"cyan__1cBtG\",\"blue\":\"blue__1G1wb\",\"magenta\":\"magenta__3Wagv\",\"minus\":\"minus__2qLyv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"red\":\"red__ipSoq\",\"orange\":\"orange__1nmkj\",\"yellow\":\"yellow__353ge\",\"lime\":\"lime__3FW1E\",\"cyan\":\"cyan__2xhu7\",\"blue\":\"blue__3MvDe\",\"magenta\":\"magenta__i03ie\",\"plus\":\"plus__1eV4_\"};","import style from \"./Example.less\";\n\nexport default function (props) {\n return (\n <div class={style.example}>\n {props.children}\n </div>\n );\n}\n","import style from \"./ExampleBoxColor.less\";\n\nexport default style.example;\n","import style from \"./Plus.less\";\n\nexport default function (props) {\n return <span class={style.plus}>{props.children}</span>;\n}\n","import {Fragment} from \"preact\";\nimport {Section, Panel, ILatex, BLatex, PLatex} from \"bluelib\";\nimport Min from \"../../components/OttimizzazioneLineare/Min\";\nimport Max from \"../../components/OttimizzazioneLineare/Max\";\nimport Example from \"../../components/Example\";\nimport Empty from \"../../components/OttimizzazioneLineare/Empty\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Ottimizzazione lineare intera\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Particolari problemi di ottimizzazione lineare in cui le <b>variabili sono vincolate ad essere\n numeri interi</b>.\n </p>\n <PLatex>{r`\n \\mathbf{x} \\in \\mathbb{Z}^n\n `}</PLatex>\n <p>\n Spesso detti anche <i>problemi di <abbr title={\"Integer Linear Programming\"}>ILP</abbr></i>.\n </p>\n </Panel>\n <Panel title={\"Rilassamento lineare\"}>\n <p>\n Un rilassamento che rimuove il <b>vincolo di integrità</b> a un problema, trovando la sua <b>soluzione\n continua</b>.\n </p>\n </Panel>\n </Section>\n <Section title={\"Dal rilassamento alla soluzione\"}>\n <Panel title={\"Enumerazione totale\"}>\n <p>\n Un <b>modo</b> per passare dalla soluzione del rilassamento alla soluzione intera di un problema\n di ILP.\n </p>\n <p>\n Consiste nel calcolare la soluzione di ogni singolo punto incluso nel poliedro, e selezionare\n la <Min>minore</Min>/<Max>maggiore</Max>.\n </p>\n <p>\n Trova <b>sicuramente</b> la soluzione giusta, ma il costo computazionale è\n esponenziale <ILatex>O(n^k)</ILatex>!\n </p>\n </Panel>\n <Panel title={\"Arrotondamento\"}>\n <p>\n Un altro <b>modo</b> per passare dalla soluzione del rilassamento alla soluzione intera di un\n problema di ILP.\n </p>\n <p>\n Consiste nell'<b>arrotondare tutte le variabili al loro valore intero più vicino</b>, e\n calcolarne il valore ottimo.\n </p>\n <p>\n Funziona bene per valori grandi, ma più essi si avvicinano allo 0 più l'<b>errore diventa\n grande</b>.\n </p>\n </Panel>\n <Panel title={\"Piani secanti\"}>\n <p>\n Un altro <b>modo</b> ancora per passare dalla soluzione del rilassamento alla soluzione intera\n di un problema di ILP.\n </p>\n <p>\n Consiste nel tagliare il poliedro con nuovi vincoli (<i>piani secanti</i>) che <b>riducono le\n possibili soluzioni continue</b> ma non quelle intere.\n </p>\n <p>\n Per selezionare i vincoli, si usano i <b>tagli di Gomory</b>:\n </p>\n <PLatex>{r`\n \\sum_{j \\in F} \\left( \\left( a_{tj} - \\lfloor a_{tj} \\rfloor \\right) \\cdot x_j \\right) \\geq (b_t - \\lfloor b_t \\rfloor)\n `}</PLatex>\n <p>\n Per ogni valore noto frazionario si viene quindi a creare <b>una nuova variabile in base</b> e\n un nuovo vincolo formato dall'opposto di tutti i valori frazionari dei coefficienti fuori base.\n </p>\n <Example>\n <p>\n Il tableau:\n <table>\n <thead>\n <tr>\n <th><BLatex>{r`x_1`}</BLatex></th>\n <th><BLatex>{r`x_2`}</BLatex></th>\n <th><BLatex>{r`s_1`}</BLatex></th>\n <th><BLatex>{r`s_2`}</BLatex></th>\n <th><abbr title={\"Termine noto\"}>TN</abbr></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n </tr>\n <tr>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`3`}</BLatex></td>\n </tr>\n <tr>\n <td><BLatex>{r`\\frac{3}{2}`}</BLatex></td>\n <td><BLatex>{r`\\frac{1}{2}`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`\\frac{6}{5}`}</BLatex></td>\n </tr>\n </tbody>\n </table>\n </p>\n <p>\n Diventa:\n <table>\n <thead>\n <tr>\n <th><BLatex>{r`x_1`}</BLatex></th>\n <th><BLatex>{r`x_2`}</BLatex></th>\n <th><BLatex>{r`s_1`}</BLatex></th>\n <th><BLatex>{r`s_2`}</BLatex></th>\n <th style={\"background-color: rgba(255, 255, 0, 0.1);\"}><BLatex>{r`s_3`}</BLatex>\n </th>\n <th><abbr title={\"Termine noto\"}>TN</abbr></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td style={\"background-color: rgba(255, 255, 0, 0.1);\"}><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n </tr>\n <tr>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td style={\"background-color: rgba(255, 255, 0, 0.1);\"}><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`3`}</BLatex></td>\n </tr>\n <tr>\n <td><BLatex>{r`\\frac{3}{2}`}</BLatex></td>\n <td><BLatex>{r`\\frac{1}{2}`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`1`}</BLatex></td>\n <td style={\"background-color: rgba(255, 255, 0, 0.1);\"}><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`\\frac{6}{5}`}</BLatex></td>\n </tr>\n <tr style={\"background-color: rgba(255, 255, 0, 0.1);\"}>\n <td><BLatex>{r`-\\frac{1}{2}`}</BLatex></td>\n <td><BLatex>{r`-\\frac{1}{2}`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td><BLatex>{r`0`}</BLatex></td>\n <td style={\"background-color: rgba(255, 255, 0, 0.2);\"}><BLatex>{r`1`}</BLatex></td>\n <td><BLatex>{r`-\\frac{1}{5}`}</BLatex></td>\n </tr>\n </tbody>\n </table>\n </p>\n </Example>\n </Panel>\n <Panel title={\"Divide et impera\"}>\n <p>\n È possibile usare la tecnica <i>divide et impera</i> per rendere più efficiente l'<b>enumerazione\n totale</b>.\n </p>\n <p>\n Si divide il problema principale (trovare il valore ottimo di un problema di ILP) in più\n sottoproblemi (trovare il valore ottimo di un problema di ILP con una variabile impostata a un\n valore fisso).\n </p>\n <p>\n Si crea così un <b>albero</b>.\n </p>\n <p>\n È possibile <b>chiudere in anticipo</b> alcuni nodi dell'albero se il loro miglior possibile\n valore ottimo è inferiore a uno precedentemente trovato o se il loro poliedro è <Empty/>.\n </p>\n <p>\n È possibile utilizzare diverse <b>strategie di esplorazione</b> dell'albero:\n <ul>\n <li><b>depth-first</b>: permette di raggiungere immediatamente a una soluzione accettabile\n (ma non ottimale)\n </li>\n <li><b>best-first</b>: permette di raggiungere più velocemente alla soluzione corretta</li>\n </ul>\n </p>\n </Panel>\n <Panel title={\"Seca et impera\"}>\n <p>\n È possibile combinare il metodo dei <b>tagli secanti</b> con la tecnica <b>divide et\n impera</b> per raggiungere ancora più velocemente a una soluzione.\n </p>\n <p>\n Si effettuano <b>poche iterazioni</b> del metodo dei tagli secanti, e sul risultato di quelle\n iterazioni si applica il <b>divide et impera</b>.\n </p>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"red\":\"red__3r1Jz\",\"orange\":\"orange__2q18p\",\"yellow\":\"yellow__3cyw6\",\"lime\":\"lime__2GJfI\",\"cyan\":\"cyan__k_5Y_\",\"blue\":\"blue__ejrIP\",\"magenta\":\"magenta__1Zdi7\",\"example\":\"example__22j7L\"};"],"sourceRoot":""} |