(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{"/fDt":function(l,i,n){"use strict";n.r(i),function(l){n.d(i,"default",(function(){return I}));var a=n("hosL"),e=n("lL4N"),t=n("OMhl"),o=n("HKwK"),u=n("PEwj"),s=(n("jXlC"),n("UEJU")),r=n("h7i1"),d=(n("3Gjt"),n("BSmf")),c=n("xY5u"),m=n("8YA6"),p=n("dIxp");let b,h,f,v,z,_,g,x,w,q,L,S,C,U,y,k,E,O,j,F,T,M,N,B=l=>l;const D=String.raw;class I extends a.Component{render(){return l("div",null,l("h1",null,"Ottimizzazione lineare intera"),l(e.a,{title:"Unimore"},l(o.a,{title:"Videolezioni su YouTube"},l("p",null,"Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!"),l("p",null,l("b",null,l("a",{href:"https://www.youtube.com/playlist?list=PLh93e8qjTszffkHNn-19CqUOhHFbhBlBh"},"Guardate i video qui!")))),l(o.a,{title:"Prossimi appelli"},l("ol",null,l("li",null,l(d.a,{to:"2020-06-08"})),l("li",null,l(d.a,{to:"2020-06-25"})),l("li",null,l(d.a,{to:"2020-07-14"}))))),l(e.a,{title:"Le basi"},l(o.a,{title:"Funzione obiettivo"},l("p",null,"La funzione obiettivo è la funzione con valore noto sconosciuto:"),l("p",null,l(t.a,null,D(b||(b=B`z = C_1 \cdot x_1 + C_2 \cdot x_2 + C_n \cdot x_n`))))),l(o.a,{title:"Gradiente"},l("p",null,"Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce."),l("p",null,l(t.a,null,D(h||(h=B`\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`)))),l("p",null,l(t.a,null,D(f||(f=B`e_i`)))," è la direzione della coordinata i-esima."),l(u.a,null,"Se ",l(t.a,null,D(v||(v=B`n = 3`))),", allora:",l("ul",null,l("li",null,l(t.a,null,D(z||(z=B`e_1 = (1, 0, 0)`)))),l("li",null,l(t.a,null,D(_||(_=B`e_2 = (0, 1, 0)`)))),l("li",null,l(t.a,null,D(g||(g=B`e_3 = (0, 0, 1)`)))))),l(u.a,null,"Se la funzione obiettivo è ",l(t.a,null,"z = 2w + 3x + 4y"),", il suo gradiente è ",l(t.a,null,D(x||(x=B`\nabla z = (2, 3, 4)`))),"."))),l(e.a,{title:"Forme di un sistema"},l(o.a,{title:"Forma standard"},l("ul",null,l("li",null,l(s.a,null,"Solo equazioni")),l("li",null,l(s.a,null,"Tutte le variabili maggiori di zero")))),l(o.a,{title:"Forma canonica"},l("ul",null,l("li",null,l(r.a,null,"Equazioni e disequazioni")),l("li",null,l(s.a,null,"Tutte le variabili maggiori di zero")))),l(o.a,{title:"Forma generale"},l("ul",null,l("li",null,l(r.a,null,"Equazioni e disequazioni")),l("li",null,l(r.a,null,"Variabili con qualsiasi valore"))))),l(e.a,{title:"Equivalenza di forma"},l(o.a,{title:"Da standard a generale"},l("p",null,"Convertiamo ogni equazione ",l(t.a,null,D(w||(w=B`=`)))," in due disequazioni ",l(t.a,null,D(q||(q=B`\leq`)))," e ",l(t.a,null,D(L||(L=B`\geq`))),","),l(u.a,null,"Why would you ever do that?!")),l(o.a,{title:"Da canonica a standard"},l("p",null,"Convertiamo le disequazioni in equazioni aggiungendo una variabile slack."),l(u.a,null,l(t.a,null,D(S||(S=B`a \leq 3`)))," diventa ",l(t.a,null,D(C||(C=B`a + s_1 = 3`))),".")),l(o.a,{title:"Da generale a canonica"},l("p",null,"Sostituiamo le variabili potenzialmente negative (unconstrained) ",l(t.a,null,D(U||(U=B`x_j`)))," con due variabili ",l(t.a,null,D(y||(y=B`x_j^+`)))," e ",l(t.a,null,D(k||(k=B`x_j^-`))),"."),l(u.a,null,l(t.a,null,D(E||(E=B`a \in \mathbb{Z}`)))," diventa ",l(t.a,null,D(O||(O=B`a^+ \in \mathbb{N}`)))," e ",l(t.a,null,D(j||(j=B`-a^- \in \mathbb{N}`))),"."))),l(e.a,{title:"La forma standard"},l(o.a,{title:"Funzione obiettivo"},l("p",null,"La funzione da minimizzare/massimizzare, tipicamente indicata con una ",l(t.a,null,D(F||(F=B`z`)))," al termine noto.")),l(o.a,{title:"Tableu"},l("p",null,"Un modo per rappresentare sistemi in forma standard, anche noto come ",l("b",null,"matrice equivalente completa")," del sistema."),l(u.a,null,"Il sistema:",l("br",null),l("br",null),l(t.a,null,D(T||(T=B` \begin{cases} 2000A + 1000B = z\\ 1A \leq 3\\ 1B \leq 3\\ 2A + 2B \leq 7 \end{cases} `))),l("br",null),l("br",null),"Diventa in forma di tableau:",l("br",null),l("br",null),l("table",{class:"right"},l("thead",null,l("tr",null,l("th",null,l("abbr",{title:"Termine noto"},"TN")),l("th",null,l(t.a,null,"x_1")),l("th",null,l(t.a,null,"x_2")),l("th",null,l(t.a,null,"s_1")),l("th",null,l(t.a,null,"s_2")))),l("tbody",null,l("tr",null,l("td",null,l(t.a,null,"z")),l("td",null,l(t.a,null,"2000")),l("td",null,l(t.a,null,"1000")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"0"))),l("tr",null,l("td",null,l(t.a,null,"3")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0"))),l("tr",null,l("td",null,l(t.a,null,"3")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1"))),l("tr",null,l("td",null,l(t.a,null,"7")),l("td",null,l(t.a,null,"2")),l("td",null,l(t.a,null,"2")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"0"))))))),l(o.a,{title:"Variabili di base"},l("p",null,"Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu."),l("p",null,"La loro controparte sono le ",l("i",null,"variabili fuori base"),"."),l("p",null,"Un sistema lineare è risolto quando tutte le variabili originali (",l(t.a,null,"x_n"),") sono nella base."))),l(e.a,{title:"Simplex"},l(o.a,{title:"Cos'è?"},l("p",null,"Un algoritmo per ",l(s.a,null,"minimizzare"),"/",l(r.a,null,"massimizzare")," efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan."),l(u.a,null,"E' spiegato in modo semplice ",l("a",{href:"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"},"qui"),", e ci sono dei codici sorgenti di esempio ",l("a",{href:"https://www.cs.cmu.edu/~15451-f17/handouts/simplexcodes/"},"qui"),".")),l(o.a,{title:"I passi"},l("ol",null,l("li",null,"Trasforma il sistema in ",l("b",null,"forma standard"),"."),l("li",null,"Trova tante variabili ",l("b",null,"linearmente indipendenti")," quante siano le righe: esse saranno la ",l("i",null,"base iniziale"),"."),l("li",null,"Finchè ci sono variabili con coefficienti ",l(s.a,null,"positivi"),"/",l(r.a,null,"negativi")," nella funzione obiettivo:",l("ol",null,l("li",null,l("b",null,"Scegli")," la prima variabile con coefficiente ",l(s.a,null,"positivo"),"/",l(r.a,null,"negativo")," nella funzione obiettivo: essa è la ",l("i",null,"variabile entrante"),".",l(u.a,null,"Si potrebbe scegliere qualsiasi variabile, ma scegliendo sempre la prima possibile (",l("i",null,"Regola di Bland"),") ci si assicura che l'algoritmo termini.")),l("li",null,"Trova la variabile di base (detta ",l("i",null,"variabile uscente"),") tramite il rapporto ",l(t.a,null,D(M||(M=B`\frac{termine\ noto}{coeff.\ variabile\ entrante}`))),": scegli la variabile con il ",l("b",null,"rapporto minore"),", assicurandoti che esso sia ",l("b",null,"positivo"),". Se tutti i rapporti sono negativi, allora il problema è ",l("b",null,l(p.a,null)),"."),l("li",null,l("b",null,"Riscrivi")," tutte le funzioni del sistema in termini della variabile entrante."))),l("li",null,"I ",l("b",null,"termini noti dei vincoli")," sono le coordinate del risultato, mentre il ",l("b",null,"termine noto della funzione obiettivo")," è il valore ",l(s.a,null,"minimizzato"),"/",l(r.a,null,"massimizzato"),"."))),l(o.a,{title:"Sotto forma di tableau"},l("p",null,"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."))),l(e.a,null,l(o.a,{title:"Soluzioni di base degenerata"},l("p",null,"Una soluzione con almeno una variabile di valore ",l(t.a,null,"0"),", dovuta a uno o più ",l("b",null,"vincoli ridondanti"),"."),l("p",null,"Senza ",l("b",null,"Regola di Bland")," e in presenza di vincoli ridondanti si rischia di trovarsi a fare pivot infiniti.")),l(o.a,{title:"Esempio"},l(u.a,null,"Ho risolto il problema 3 del file ",l("a",{href:"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716"},l("code",null,"Ex_LP_testo"))," con il Simplex:",l("p",null,l(c.a,{src:"https://i.imgur.com/1r405Mb.jpg"}))))),l(e.a,{title:"Metodo delle due fasi"},l(o.a,{title:"Metodo delle due fasi"},l("p",null,"Un estensione del Simplex per permettere la risoluzione di problemi la cui origine non è una soluzione ammissibile."),l("p",null,"Prevede l'introduzione di un ",l("i",null,"problema ausiliario"),", le cui variabili sono dette ",l("i",null,"artificiali")," e sono solitamente rappresentate come ",l(t.a,null,D(N||(N=B`y_n`))),"."),l(u.a,null,"E' spiegato in modo semplice ",l("a",{href:"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"},"qui"),".")),l(o.a,{title:"Procedimento"},l("ol",null,l("li",null,"Crea un nuovo tableau, ",l("b",null,"aggiungendo variabili artificiali")," in modo da avere una base ammissibile."),l("li",null,"Sostituisci la vecchia funzione obiettivo con una nuova che ",l("b",null,l(s.a,null,"minimizzi")," la somma")," di tutte le variabili artificiali."),l("li",null,l("u",null,"Fase 1"),": ",l("b",null,"Risolvi")," il nuovo problema con il metodo Simplex."),l("li",null,"Se il Simplex termina con ancora ",l("b",null,"variabili artificiali nella base"),", allora il problema è ",l("b",null,l(m.a,null)),"."),l("li",null,"Una volta che le variabili artificiali sono fuori base, ",l("b",null,"elimina")," le loro colonne e la nuova funzione obiettivo.",l("br",null)),l("li",null,"Riporta il tableau in forma base compiendo operazioni per ",l("b",null,"azzerare i coefficienti")," delle variabili di base nella funzione obiettivo."),l("li",null,l("u",null,"Fase 2"),": ",l("b",null,"Risolvi")," il tableau con il metodo Simplex.")))))}}}.call(this,n("hosL").h)},"3k98":function(l){l.exports={todo:"todo__1UVRh"}},"56OW":function(l){l.exports={plus:"plus__2u13i"}},"8YA6":function(l,i,n){"use strict";(function(l){var a=n("zCOL"),e=n.n(a);i.a=function(i){return l("span",{class:e.a.unfeasible},i.children?i.children:"unfeasible")}}).call(this,n("hosL").h)},BSmf:function(l,i,n){"use strict";(function(l){n.d(i,"a",(function(){return o}));var a=n("hosL"),e=n("EfTa"),t=n.n(e);class o extends a.Component{constructor(){super(),this.state={now:Date.now()},this.timer=null}componentDidMount(){this.timer=setInterval(()=>{this.setState({now:Date.now()})},1e3)}componentWillUnmount(){null!==this.timer&&clearInterval(this.timer)}render(){let i="Unknown date",n=t.a.timer,a={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){i=new Date(this.props.to);let l=i-this.state.now;l>0?a={milliseconds:l%1e3,seconds:Math.floor(l/1e3)%60,minutes:Math.floor(l/6e4)%60,hours:Math.floor(l/36e5)%24,days:Math.floor(l/864e5)}:(a={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},n+=" "+t.a.expired)}else n+=" "+t.a.unknown;return l("div",{class:n,title:i},l("div",{class:t.a.days+" "+t.a.count},a.days),l("div",{className:t.a.days+" "+t.a.text},"giorni"),l("div",{class:t.a.hours+" "+t.a.count},a.hours),l("div",{className:t.a.hours+" "+t.a.text},"ore"),l("div",{class:t.a.minutes+" "+t.a.count},a.minutes),l("div",{className:t.a.minutes+" "+t.a.text},"minuti"),l("div",{class:t.a.seconds+" "+t.a.count},a.seconds),l("div",{class:t.a.seconds+" "+t.a.text},"secondi"),l("div",{class:t.a.remaining},"rimasti"))}}}).call(this,n("hosL").h)},EfTa:function(l){l.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"}},IwNZ:function(l){l.exports={unbounded:"unbounded__3Q7MA"}},OMhl:function(l,i,n){"use strict";(function(l){var a=n("p7QU"),e=n.n(a),t=n("QRet"),o=n("8CDw"),u=n("wQ73");i.a=function(i){let n,a=Object(t.b)(o.a),s=Object(t.b)(u.a);return n=void 0===i.inline?s:i.inline,l("img",{src:`https://latex.codecogs.com/svg.latex?${`${n?"\\inline":""} {\\color{${a}} ${i.children} }`}`,alt:i.children,title:i.children,class:e.a.latex})}}).call(this,n("hosL").h)},UEJU:function(l,i,n){"use strict";(function(l){n.d(i,"a",(function(){return o}));var a=n("nhUl"),e=n.n(a),t=n("hosL");class o extends t.Component{render(){return l("span",{class:e.a.minus},this.props.children)}}}).call(this,n("hosL").h)},dIxp:function(l,i,n){"use strict";(function(l){var a=n("IwNZ"),e=n.n(a);i.a=function(i){return l("span",{class:e.a.unbounded},i.children?i.children:"unbounded")}}).call(this,n("hosL").h)},h7i1:function(l,i,n){"use strict";(function(l){n.d(i,"a",(function(){return o}));var a=n("56OW"),e=n.n(a),t=n("hosL");class o extends t.Component{render(){return l("span",{class:e.a.plus},this.props.children)}}}).call(this,n("hosL").h)},jXlC:function(l,i,n){"use strict";(function(l){n.d(i,"a",(function(){return o}));var a=n("3k98"),e=n.n(a),t=n("hosL");class o extends t.Component{render(){return l("span",{class:e.a.todo},this.props.children)}}}).call(this,n("hosL").h)},nhUl:function(l){l.exports={minus:"minus__2EaF0"}},p7QU:function(l){l.exports={latex:"latex__3zlIu"}},wQ73:function(l,i,n){"use strict";var a=n("hosL");i.a=Object(a.createContext)(!0)},xY5u:function(l,i,n){"use strict";(function(l){i.a=function(i){return l("a",{href:i.src,title:i.alt,target:"_blank"},l("img",{src:i.src,alt:i.alt}))}}).call(this,n("hosL").h)},zCOL:function(l){l.exports={unfeasible:"unfeasible__3QoOn"}}}]); //# sourceMappingURL=route-ottimizzazioneLineare.chunk.353b8.esm.js.map