mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-26 09:54:19 +00:00
Update
This commit is contained in:
parent
a8f811c614
commit
cf05b04e75
30 changed files with 270 additions and 95 deletions
2
docs/bundle.b01bd.css → docs/bundle.1e4c7.css
generated
2
docs/bundle.b01bd.css → docs/bundle.1e4c7.css
generated
|
@ -1 +1 @@
|
||||||
*{box-sizing:border-box}body{background-color:#0d193b;color:#a0ccff}body,h1,h2,h3,h4,h5,h6{font-family:Arial,sans-serif}h1,h2,h3,h4,h5,h6{margin-top:4px;margin-bottom:4px;color:#fff;font-weight:400;text-align:center}h1{font-size:xx-large}a{color:#00caca;text-decoration:none}a:hover{color:#0ff}a:active{color:#a0ffff}iframe,img{max-width:100%;max-height:300px;border-radius:4px}code,pre{font-family:Consolas,SFMono-Regular,Liberation Mono,Menlo,monospace;font-size:14px}blockquote{color:#a0ccff;border-left:3px solid rgba(160,204,255,.2);background-color:rgba(160,204,255,.05);padding:4px 4px 4px 8px;margin:8px 0}input[type=password],input[type=text]{color:#a0ccff;background-color:#0d193b;border:1px solid rgba(160,204,255,.1);border-radius:4px;padding:4px;font-size:medium}input[type=password].disabled,input[type=password]:disabled,input[type=text].disabled,input[type=text]:disabled{color:grey;background-color:#1f1f1f;border-style:dotted;cursor:not-allowed}button{color:#a0ccff;background-color:#0d193b;border:1px solid rgba(160,204,255,.1);border-radius:4px;padding:4px;font-size:medium}button.hover,button:hover{background-color:rgba(160,204,255,.1);border:1px solid #a0ccff;color:#a0ccff}button.active,button:active{background-color:hsla(0,0%,100%,.2);border:1px solid #fff;color:#fff}button.disabled,button:disabled{color:grey;background-color:#1f1f1f;border-style:dotted;cursor:not-allowed}hr{border:1px solid rgba(160,204,255,.2);margin-top:24px;margin-bottom:24px}table{border-spacing:0;border:2px solid rgba(160,204,255,.1);background-color:rgba(160,204,255,.05);border-collapse:collapse}table tbody td,table tbody th,table thead td,table thead th{padding:4px;border:1px solid rgba(160,204,255,.1)}table thead{background-color:rgba(160,204,255,.1);color:#fff}li{margin:10px 0}p:first-child{margin-top:0}p:last-child{margin-bottom:0}b{color:#fff}.copyright__E8xyG{margin-top:8px;color:#fff;text-align:center;font-size:x-small}
|
*{box-sizing:border-box}body{background-color:#0d193b;color:#a0ccff}body,h1,h2,h3,h4,h5,h6{font-family:Arial,sans-serif}h1,h2,h3,h4,h5,h6{margin-top:4px;margin-bottom:4px;color:#fff;font-weight:400;text-align:center}h1{font-size:xx-large}a{color:#00caca;text-decoration:none}a:hover{color:#0ff}a:active{color:#a0ffff}iframe,img{max-width:100%;max-height:300px;border-radius:4px}code,pre{font-family:Consolas,SFMono-Regular,Liberation Mono,Menlo,monospace;font-size:14px}blockquote{color:#a0ccff;border-left:3px solid rgba(160,204,255,.2);background-color:rgba(160,204,255,.05);padding:4px 4px 4px 8px;margin:8px 0}input[type=password],input[type=text]{color:#a0ccff;background-color:#0d193b;border:1px solid rgba(160,204,255,.1);border-radius:4px;padding:4px;font-size:medium}input[type=password].disabled,input[type=password]:disabled,input[type=text].disabled,input[type=text]:disabled{color:grey;background-color:#1f1f1f;border-style:dotted;cursor:not-allowed}button{color:#a0ccff;background-color:#0d193b;border:1px solid rgba(160,204,255,.1);border-radius:4px;padding:4px;font-size:medium}button.hover,button:hover{background-color:rgba(160,204,255,.1);border:1px solid #a0ccff;color:#a0ccff}button.active,button:active{background-color:hsla(0,0%,100%,.2);border:1px solid #fff;color:#fff}button.disabled,button:disabled{color:grey;background-color:#1f1f1f;border-style:dotted;cursor:not-allowed}hr{border:1px solid rgba(160,204,255,.2);margin-top:24px;margin-bottom:24px}table{border-spacing:0;border:2px solid rgba(160,204,255,.1);background-color:rgba(160,204,255,.05);border-collapse:collapse}table tbody td,table tbody th,table thead td,table thead th{padding:4px;border:1px solid rgba(160,204,255,.1)}table thead{background-color:rgba(160,204,255,.1);color:#fff}li{margin:10px 0}p:first-child{margin-top:0}p:last-child{margin-bottom:0}b{color:#fff}abbr{cursor:help}aside{margin:4px 0;padding:4px;font-size:smaller;background-color:rgba(160,204,255,.05);border-radius:4px}.copyright__E8xyG{margin-top:8px;color:#fff;text-align:center;font-size:x-small}
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":[],"names":[],"mappings":"","file":"bundle.ca0cc.esm.js","sourceRoot":""}
|
{"version":3,"sources":[],"names":[],"mappings":"","file":"bundle.5531a.esm.js","sourceRoot":""}
|
4
docs/bundle.f6a31.js → docs/bundle.c81be.js
generated
4
docs/bundle.f6a31.js → docs/bundle.c81be.js
generated
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
docs/index.html
generated
2
docs/index.html
generated
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Appunti Web</title><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="apple-touch-icon" href="./assets/icons/apple-touch-icon.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#a0ccff"><link rel="shortcut icon" href="/favicon.ico"><style>*{box-sizing:border-box}body{background-color:#0d193b;color:#a0ccff;font-family:Arial,sans-serif}</style><link href="/bundle.b01bd.css" rel="preload" as="style"></head><body><script type="__PREACT_CLI_DATA__">{"preRenderData":{"url":"/"}}</script><script nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" src="/bundle.ca0cc.esm.js" type="module"></script><script nomodule="" src="/polyfills.700d1.js"></script><script nomodule="" defer="defer" src="/bundle.f6a31.js"></script><link rel="stylesheet" href="/bundle.b01bd.css"></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Appunti Web</title><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="apple-touch-icon" href="./assets/icons/apple-touch-icon.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#a0ccff"><link rel="shortcut icon" href="/favicon.ico"><style>*{box-sizing:border-box}body{background-color:#0d193b;color:#a0ccff;font-family:Arial,sans-serif}</style><link href="/bundle.1e4c7.css" rel="preload" as="style"></head><body><script type="__PREACT_CLI_DATA__">{"preRenderData":{"url":"/"}}</script><script nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" src="/bundle.5531a.esm.js" type="module"></script><script nomodule="" src="/polyfills.700d1.js"></script><script nomodule="" defer="defer" src="/bundle.c81be.js"></script><link rel="stylesheet" href="/bundle.1e4c7.css"></body></html>
|
|
@ -4,15 +4,15 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||||
"url": "/assets/icon.png"
|
"url": "/assets/icon.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "f6a318cdb017950fbd70",
|
"revision": "c81be89465a11802b97d",
|
||||||
"url": "/bundle.b01bd.css"
|
"url": "/bundle.1e4c7.css"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "f6a318cdb017950fbd70",
|
"revision": "c81be89465a11802b97d",
|
||||||
"url": "/bundle.f6a31.js"
|
"url": "/bundle.c81be.js"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "069b562e730807a92486cb63b3fd886f",
|
"revision": "95f28afb38171527f631a6da0e329e65",
|
||||||
"url": "/index.html"
|
"url": "/index.html"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -72,12 +72,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||||
"url": "/route-mingwinstall.chunk.5a95a.css"
|
"url": "/route-mingwinstall.chunk.5a95a.css"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "0d0835c574dff04dedbe",
|
"revision": "de78c38519cc0539fa61",
|
||||||
"url": "/route-ottimizzazioneLineare.chunk.0d083.js"
|
"url": "/route-ottimizzazioneLineare.chunk.88bb6.css"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "0d0835c574dff04dedbe",
|
"revision": "de78c38519cc0539fa61",
|
||||||
"url": "/route-ottimizzazioneLineare.chunk.ce59d.css"
|
"url": "/route-ottimizzazioneLineare.chunk.de78c.js"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "675260c6a85b3fa1af79",
|
"revision": "675260c6a85b3fa1af79",
|
||||||
|
@ -100,7 +100,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||||
"url": "/sw-debug.js"
|
"url": "/sw-debug.js"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "282974af009cd3a95c1d5fe7f3bcb17e",
|
"revision": "f172b765140d5e0d31ba1df2f421e0d6",
|
||||||
"url": "/sw-esm.js"
|
"url": "/sw-esm.js"
|
||||||
},
|
},
|
||||||
{
|
{
|
|
@ -4,15 +4,15 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||||
"url": "/assets/icon.png"
|
"url": "/assets/icon.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "f6a318cdb017950fbd70",
|
"revision": "c81be89465a11802b97d",
|
||||||
"url": "/bundle.b01bd.css"
|
"url": "/bundle.1e4c7.css"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "f6a318cdb017950fbd70",
|
"revision": "c81be89465a11802b97d",
|
||||||
"url": "/bundle.ca0cc.esm.js"
|
"url": "/bundle.5531a.esm.js"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "069b562e730807a92486cb63b3fd886f",
|
"revision": "95f28afb38171527f631a6da0e329e65",
|
||||||
"url": "/index.html"
|
"url": "/index.html"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -72,12 +72,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||||
"url": "/route-mingwinstall.chunk.5a95a.css"
|
"url": "/route-mingwinstall.chunk.5a95a.css"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "0d0835c574dff04dedbe",
|
"revision": "de78c38519cc0539fa61",
|
||||||
"url": "/route-ottimizzazioneLineare.chunk.ce59d.css"
|
"url": "/route-ottimizzazioneLineare.chunk.88bb6.css"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "0d0835c574dff04dedbe",
|
"revision": "de78c38519cc0539fa61",
|
||||||
"url": "/route-ottimizzazioneLineare.chunk.f48cc.esm.js"
|
"url": "/route-ottimizzazioneLineare.chunk.9a772.esm.js"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"revision": "675260c6a85b3fa1af79",
|
"revision": "675260c6a85b3fa1af79",
|
2
docs/push-manifest.json
generated
2
docs/push-manifest.json
generated
|
@ -1 +1 @@
|
||||||
{"/":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-home.chunk.008cd.esm.js":{"type":"script","weight":0.9},"route-home.chunk.81f93.css":{"type":"style","weight":0.9}},"/apprendimentoSistemiArtificiali~route-ottimizzazioneLineare":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9}},"/apprendimentoSistemiArtificiali":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali.chunk.8dc12.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.2ca12.css":{"type":"style","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9}},"/basiDiDati":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-basiDiDati.chunk.1c7f7.esm.js":{"type":"script","weight":0.9},"route-basiDiDati.chunk.e409b.css":{"type":"style","weight":0.9}},"/calcoloNumerico":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-calcoloNumerico.chunk.d6955.esm.js":{"type":"script","weight":0.9},"route-calcoloNumerico.chunk.4d04d.css":{"type":"style","weight":0.9}},"/fisica":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-fisica.chunk.953ff.esm.js":{"type":"script","weight":0.9},"route-fisica.chunk.598fe.css":{"type":"style","weight":0.9}},"/mingwinstall":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-mingwinstall.chunk.24a27.esm.js":{"type":"script","weight":0.9},"route-mingwinstall.chunk.5a95a.css":{"type":"style","weight":0.9}},"/ottimizzazioneLineare":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-ottimizzazioneLineare.chunk.f48cc.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.2ca12.css":{"type":"style","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9},"route-ottimizzazioneLineare.chunk.ce59d.css":{"type":"style","weight":0.9}},"/statistica":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-statistica.chunk.8a057.esm.js":{"type":"script","weight":0.9},"route-statistica.chunk.4bfa5.css":{"type":"style","weight":0.9}},"/vldigeometria":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.ca0cc.esm.js":{"type":"script","weight":1},"route-vldigeometria.chunk.76957.esm.js":{"type":"script","weight":0.9},"route-vldigeometria.chunk.96070.css":{"type":"style","weight":0.9}}}
|
{"/":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-home.chunk.008cd.esm.js":{"type":"script","weight":0.9},"route-home.chunk.81f93.css":{"type":"style","weight":0.9}},"/apprendimentoSistemiArtificiali~route-ottimizzazioneLineare":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9}},"/apprendimentoSistemiArtificiali":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali.chunk.8dc12.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.2ca12.css":{"type":"style","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9}},"/basiDiDati":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-basiDiDati.chunk.1c7f7.esm.js":{"type":"script","weight":0.9},"route-basiDiDati.chunk.e409b.css":{"type":"style","weight":0.9}},"/calcoloNumerico":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-calcoloNumerico.chunk.d6955.esm.js":{"type":"script","weight":0.9},"route-calcoloNumerico.chunk.4d04d.css":{"type":"style","weight":0.9}},"/fisica":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-fisica.chunk.953ff.esm.js":{"type":"script","weight":0.9},"route-fisica.chunk.598fe.css":{"type":"style","weight":0.9}},"/mingwinstall":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-mingwinstall.chunk.24a27.esm.js":{"type":"script","weight":0.9},"route-mingwinstall.chunk.5a95a.css":{"type":"style","weight":0.9}},"/ottimizzazioneLineare":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-ottimizzazioneLineare.chunk.9a772.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.2ca12.css":{"type":"style","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9},"route-ottimizzazioneLineare.chunk.88bb6.css":{"type":"style","weight":0.9}},"/statistica":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-statistica.chunk.8a057.esm.js":{"type":"script","weight":0.9},"route-statistica.chunk.4bfa5.css":{"type":"style","weight":0.9}},"/vldigeometria":{"bundle.1e4c7.css":{"type":"style","weight":1},"bundle.5531a.esm.js":{"type":"script","weight":1},"route-vldigeometria.chunk.76957.esm.js":{"type":"script","weight":0.9},"route-vldigeometria.chunk.96070.css":{"type":"style","weight":0.9}}}
|
2
docs/route-ottimizzazioneLineare.chunk.0d083.js
generated
2
docs/route-ottimizzazioneLineare.chunk.0d083.js
generated
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
.latex__3zlIu{display:inline-block;vertical-align:middle}.todo__1UVRh{border:1px solid #ff0;border-radius:2px;padding:1px;background-color:#000;color:#ff0}.minus__2EaF0{color:#7d7dff}.plus__2u13i{color:#ff7d7d}.timer__K0K_h{display:grid;text-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:start;margin-top:8px;margin-bottom:8px;grid-template-columns:80px 80px 80px 80px 50px}.days__vN3tf{grid-column:1}.hours__3v0KX{grid-column:2}.minutes__vkYk7{grid-column:3}.seconds__3gJ99{grid-column:4}.count__1VV4k{grid-row:1;font-size:xx-large;color:#fff}.text__khS4i{grid-row:2;font-size:small}.remaining__zUECg{grid-column:5;grid-row-start:1;grid-row-end:3}.unknown__af307,.unknown__af307 .count__1VV4k{color:#ff7dff}.expired__1rtHB,.expired__1rtHB .count__1VV4k{color:#ff7d7d}.unbounded__25UN8{color:#7d7dff}.unfeasible__2MuIF{color:#ff7d7d}.min__3lPpn{color:#7dffff}.max__1hxKl{color:#ffbb7d}
|
.latex__3zlIu{display:inline-block;vertical-align:middle}.todo__1UVRh{border:1px solid #ff0;border-radius:2px;padding:1px;background-color:#000;color:#ff0}.minus__2EaF0{color:#7d7dff}.plus__2u13i{color:#ff7d7d}.timer__K0K_h{display:grid;text-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:start;margin-top:8px;margin-bottom:8px;grid-template-columns:80px 80px 80px 80px 50px}.days__vN3tf{grid-column:1}.hours__3v0KX{grid-column:2}.minutes__vkYk7{grid-column:3}.seconds__3gJ99{grid-column:4}.count__1VV4k{grid-row:1;font-size:xx-large;color:#fff}.text__khS4i{grid-row:2;font-size:small}.remaining__zUECg{grid-column:5;grid-row-start:1;grid-row-end:3}.unknown__af307,.unknown__af307 .count__1VV4k{color:#ff7dff}.expired__1rtHB,.expired__1rtHB .count__1VV4k{color:#ff7d7d}.unbounded__25UN8{color:#7d7dff}.unfeasible__2MuIF{color:#ff7d7d}.finite__2EP_f{color:#7dff7d}.min__3lPpn{color:#7dffff}.max__1hxKl{color:#ffbb7d}.tablepanel__PkBWm{margin:4px;width:calc(100% - 8px)}
|
36
docs/route-ottimizzazioneLineare.chunk.9a772.esm.js
generated
Normal file
36
docs/route-ottimizzazioneLineare.chunk.9a772.esm.js
generated
Normal file
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":[],"names":[],"mappings":"","file":"route-ottimizzazioneLineare.chunk.f48cc.esm.js","sourceRoot":""}
|
{"version":3,"sources":[],"names":[],"mappings":"","file":"route-ottimizzazioneLineare.chunk.9a772.esm.js","sourceRoot":""}
|
2
docs/route-ottimizzazioneLineare.chunk.de78c.js
generated
Normal file
2
docs/route-ottimizzazioneLineare.chunk.de78c.js
generated
Normal file
File diff suppressed because one or more lines are too long
1
docs/route-ottimizzazioneLineare.chunk.de78c.js.map
generated
Normal file
1
docs/route-ottimizzazioneLineare.chunk.de78c.js.map
generated
Normal file
File diff suppressed because one or more lines are too long
23
docs/route-ottimizzazioneLineare.chunk.f48cc.esm.js
generated
23
docs/route-ottimizzazioneLineare.chunk.f48cc.esm.js
generated
File diff suppressed because one or more lines are too long
2
docs/sw-esm.js
generated
2
docs/sw-esm.js
generated
|
@ -1,4 +1,4 @@
|
||||||
importScripts("/precache-manifest.097656f7b3d3f849be5cd65abd2c2890.esm.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
importScripts("/precache-manifest.5f80324d6166c774475519c520b11298.esm.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
||||||
|
|
||||||
!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s="idKB")}({idKB:function(){self.__precacheManifest=[].concat(self.__precacheManifest||[]);const e=e=>"navigate"===e.request.mode;workbox.routing.registerRoute(({event:t})=>e(t),new workbox.strategies.NetworkFirst({cacheName:workbox.core.cacheNames.precache,networkTimeoutSeconds:5,plugins:[new workbox.cacheableResponse.Plugin({statuses:[200]})]})),workbox.precaching.precacheAndRoute(self.__precacheManifest,{}),workbox.routing.setCatchHandler(({event:t})=>e(t)?caches.match(workbox.precaching.getCacheKeyForURL("/index.html")):Response.error())}});
|
!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s="idKB")}({idKB:function(){self.__precacheManifest=[].concat(self.__precacheManifest||[]);const e=e=>"navigate"===e.request.mode;workbox.routing.registerRoute(({event:t})=>e(t),new workbox.strategies.NetworkFirst({cacheName:workbox.core.cacheNames.precache,networkTimeoutSeconds:5,plugins:[new workbox.cacheableResponse.Plugin({statuses:[200]})]})),workbox.precaching.precacheAndRoute(self.__precacheManifest,{}),workbox.routing.setCatchHandler(({event:t})=>e(t)?caches.match(workbox.precaching.getCacheKeyForURL("/index.html")):Response.error())}});
|
||||||
//# sourceMappingURL=sw-esm.js.map
|
//# sourceMappingURL=sw-esm.js.map
|
||||||
|
|
2
docs/sw.js
generated
2
docs/sw.js
generated
|
@ -1,4 +1,4 @@
|
||||||
importScripts("/precache-manifest.4c3e7a8015e5e75e77ad3c23bfc02e4c.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
importScripts("/precache-manifest.22351ee38f908b83770dd4695e22d466.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
||||||
|
|
||||||
!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s="idKB")}({idKB:function(){self.__precacheManifest=[].concat(self.__precacheManifest||[]);const e=e=>"navigate"===e.request.mode;workbox.routing.registerRoute(({event:t})=>e(t),new workbox.strategies.NetworkFirst({cacheName:workbox.core.cacheNames.precache,networkTimeoutSeconds:5,plugins:[new workbox.cacheableResponse.Plugin({statuses:[200]})]})),workbox.precaching.precacheAndRoute(self.__precacheManifest,{}),workbox.routing.setCatchHandler(({event:t})=>e(t)?caches.match(workbox.precaching.getCacheKeyForURL("/index.html")):Response.error())}});
|
!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s="idKB")}({idKB:function(){self.__precacheManifest=[].concat(self.__precacheManifest||[]);const e=e=>"navigate"===e.request.mode;workbox.routing.registerRoute(({event:t})=>e(t),new workbox.strategies.NetworkFirst({cacheName:workbox.core.cacheNames.precache,networkTimeoutSeconds:5,plugins:[new workbox.cacheableResponse.Plugin({statuses:[200]})]})),workbox.precaching.precacheAndRoute(self.__precacheManifest,{}),workbox.routing.setCatchHandler(({event:t})=>e(t)?caches.match(workbox.precaching.getCacheKeyForURL("/index.html")):Response.error())}});
|
||||||
//# sourceMappingURL=sw.js.map
|
//# sourceMappingURL=sw.js.map
|
||||||
|
|
7
src/components/OttimizzazioneLineare/Empty.js
Normal file
7
src/components/OttimizzazioneLineare/Empty.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import style from "./Styles.less";
|
||||||
|
|
||||||
|
export default function (props) {
|
||||||
|
return (
|
||||||
|
<abbr class={style.unfeasible} title={"Il poliedro non contiene punti."}>{props.children ? props.children : "vuoto"}</abbr>
|
||||||
|
);
|
||||||
|
}
|
7
src/components/OttimizzazioneLineare/Finite.js
Normal file
7
src/components/OttimizzazioneLineare/Finite.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import style from "./Styles.less";
|
||||||
|
|
||||||
|
export default function (props) {
|
||||||
|
return (
|
||||||
|
<abbr class={style.finite} title={"I punti del poliedro sono finiti."}>{props.children ? props.children : "finito"}</abbr>
|
||||||
|
);
|
||||||
|
}
|
|
@ -2,6 +2,6 @@ import style from "./Styles.less";
|
||||||
|
|
||||||
export default function (props) {
|
export default function (props) {
|
||||||
return (
|
return (
|
||||||
<span class={style.max}>{props.children ? props.children : "max"}</span>
|
<abbr class={style.max} title={"In problemi in cui il primale è di massimizzazione."}>{props.children ? props.children : "max"}</abbr>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,6 @@ import style from "./Styles.less";
|
||||||
|
|
||||||
export default function (props) {
|
export default function (props) {
|
||||||
return (
|
return (
|
||||||
<span class={style.min}>{props.children ? props.children : "min"}</span>
|
<abbr class={style.min} title={"In problemi in cui il primale è di minimizzazione."}>{props.children ? props.children : "min"}</abbr>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,10 @@
|
||||||
color: @red;
|
color: @red;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.finite {
|
||||||
|
color: @lime;
|
||||||
|
}
|
||||||
|
|
||||||
.min {
|
.min {
|
||||||
color: @cyan;
|
color: @cyan;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,6 @@ import style from "./Styles.less";
|
||||||
|
|
||||||
export default function (props) {
|
export default function (props) {
|
||||||
return (
|
return (
|
||||||
<span class={style.unbounded}>{props.children ? props.children : "unbounded"}</span>
|
<abbr class={style.unbounded} title={"I punti del poliedro sono infiniti."}>{props.children ? props.children : "illimitato"}</abbr>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
import style from "./Styles.less";
|
|
||||||
|
|
||||||
export default function (props) {
|
|
||||||
return (
|
|
||||||
<span class={style.unfeasible}>{props.children ? props.children : "unfeasible"}</span>
|
|
||||||
);
|
|
||||||
}
|
|
9
src/components/TablePanel.js
Normal file
9
src/components/TablePanel.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
import style from "./TablePanel.less";
|
||||||
|
|
||||||
|
export default function (props) {
|
||||||
|
return (
|
||||||
|
<table class={style.tablepanel}>
|
||||||
|
{props.children}
|
||||||
|
</table>
|
||||||
|
);
|
||||||
|
}
|
6
src/components/TablePanel.less
Normal file
6
src/components/TablePanel.less
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
@import "../styles/constants.less";
|
||||||
|
|
||||||
|
.tablepanel {
|
||||||
|
margin: 4px;
|
||||||
|
width: calc(100% - 8px);
|
||||||
|
}
|
|
@ -140,3 +140,15 @@ p:last-child {
|
||||||
b {
|
b {
|
||||||
color: @accent;
|
color: @accent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abbr {
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
|
||||||
|
aside {
|
||||||
|
margin: 4px 0;
|
||||||
|
padding: 4px;
|
||||||
|
font-size: smaller;
|
||||||
|
background-color: @plus;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
|
@ -9,11 +9,14 @@ import Plus from "../components/old/plus";
|
||||||
import Code from "../components/old/code";
|
import Code from "../components/old/code";
|
||||||
import Timer from "../components/old/timer";
|
import Timer from "../components/old/timer";
|
||||||
import Image from "../components/Image";
|
import Image from "../components/Image";
|
||||||
import Unfeasible from "../components/OttimizzazioneLineare/Unfeasible";
|
import Empty from "../components/OttimizzazioneLineare/Empty";
|
||||||
import Unbounded from "../components/OttimizzazioneLineare/Unbounded";
|
import Unbounded from "../components/OttimizzazioneLineare/Unbounded";
|
||||||
import Min from "../components/OttimizzazioneLineare/Min";
|
import Min from "../components/OttimizzazioneLineare/Min";
|
||||||
import Max from "../components/OttimizzazioneLineare/Max";
|
import Max from "../components/OttimizzazioneLineare/Max";
|
||||||
import PLatex from "../components/PLatex";
|
import PLatex from "../components/PLatex";
|
||||||
|
import LatexDefaultInline from "../contexts/LatexDefaultInline";
|
||||||
|
import TablePanel from "../components/TablePanel";
|
||||||
|
import Finite from "../components/OttimizzazioneLineare/Finite";
|
||||||
|
|
||||||
const r = String.raw;
|
const r = String.raw;
|
||||||
|
|
||||||
|
@ -39,6 +42,91 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
</ol>
|
</ol>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Split>
|
</Split>
|
||||||
|
<LatexDefaultInline.Provider value={false}>
|
||||||
|
<Split title={"Glossario"}>
|
||||||
|
<TablePanel>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><abbr title={"Vettore / matrice"}>v</abbr></th>
|
||||||
|
<th><abbr title={"Elemento singolo"}>s</abbr></th>
|
||||||
|
<th>Significato</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{x}`}</Latex></td>
|
||||||
|
<td><Latex>{r`x_i`}</Latex></td>
|
||||||
|
<td>Incognite</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{s}`}</Latex></td>
|
||||||
|
<td><Latex>{r`s_i`}</Latex></td>
|
||||||
|
<td>Variabili slack</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{c}`}</Latex></td>
|
||||||
|
<td><Latex>{r`c_i`}</Latex></td>
|
||||||
|
<td>Coefficienti della funzione obiettivo</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{A}`}</Latex></td>
|
||||||
|
<td><Latex>{r`a_{ij}`}</Latex></td>
|
||||||
|
<td>Coefficienti dei vincoli</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{b}`}</Latex></td>
|
||||||
|
<td><Latex>{r`b_i`}</Latex></td>
|
||||||
|
<td>Termini noti dei vincoli</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{y}`}</Latex></td>
|
||||||
|
<td><Latex>{r`y_i`}</Latex></td>
|
||||||
|
<td>Incognite artificiali</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{u}`}</Latex></td>
|
||||||
|
<td><Latex>{r`u_i`}</Latex></td>
|
||||||
|
<td>Coefficienti di rilassamento</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><Latex>{r`c_0`}</Latex></td>
|
||||||
|
<td>Valore ottimo di un problema</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</TablePanel>
|
||||||
|
<TablePanel>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Simboli</th>
|
||||||
|
<th>Significato</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{c}^T \mathbf{x}`}</Latex></td>
|
||||||
|
<td>Soluzione del problema</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{A} \mathbf{x} = \mathbf{b}`}</Latex></td>
|
||||||
|
<td>Vincoli in forma standard</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`z(\dots)`}</Latex></td>
|
||||||
|
<td>Funzione obiettivo</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{u}^T \mathbf{b}`}</Latex></td>
|
||||||
|
<td>Soluzione del problema duale</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><Latex>{r`\mathbf{u}^T \mathbf{A} = \mathbf{c}^T`}</Latex></td>
|
||||||
|
<td>Vincoli del problema duale in forma standard</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</TablePanel>
|
||||||
|
</Split>
|
||||||
|
</LatexDefaultInline.Provider>
|
||||||
<Split title={"Le basi"}>
|
<Split title={"Le basi"}>
|
||||||
<Panel title={"Funzione obiettivo"}>
|
<Panel title={"Funzione obiettivo"}>
|
||||||
<p>
|
<p>
|
||||||
|
@ -62,12 +150,6 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
<p>
|
<p>
|
||||||
Il vettore dei suoi coefficienti è detto <Latex>{r`\mathbf{c}`}</Latex>, mentre quello delle sue incognite <Latex>{r`\mathbf{x}`}</Latex>.
|
Il vettore dei suoi coefficienti è detto <Latex>{r`\mathbf{c}`}</Latex>, mentre quello delle sue incognite <Latex>{r`\mathbf{x}`}</Latex>.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
Si può ricavare la sua soluzione, detta <i>valore ottimo</i>, dal prodotto vettoriale <Latex>{r`\mathbf{c} \times \mathbf{x}`}</Latex>, scritto solitamente in forma matriciale come <Latex>{r`\mathbf{c}^T \mathbf{x}`}</Latex>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Spesso, la funzione obiettivo è indicata con il nome <Latex>{r`z(\dots)`}</Latex>.
|
|
||||||
</p>
|
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel title={"Vincoli"}>
|
<Panel title={"Vincoli"}>
|
||||||
<p>
|
<p>
|
||||||
|
@ -77,6 +159,25 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
I loro coefficienti sono contenuti nella matrice <Latex>{r`\mathbf{A}`}</Latex>, mentre i loro termini noti nel vettore <Latex>{r`\mathbf{b}`}</Latex>.
|
I loro coefficienti sono contenuti nella matrice <Latex>{r`\mathbf{A}`}</Latex>, mentre i loro termini noti nel vettore <Latex>{r`\mathbf{b}`}</Latex>.
|
||||||
</p>
|
</p>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel title={"Valore ottimo"}>
|
||||||
|
<p>
|
||||||
|
La <b>soluzione</b> di un problema, ricavabile dal prodotto <Latex>{r`\mathbf{c}^T \mathbf{x}`}</Latex>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Spesso, la funzione obiettivo è indicata con il nome <Latex>{r`z(\dots)`}</Latex>.
|
||||||
|
</p>
|
||||||
|
</Panel>
|
||||||
|
<Panel title={"Poliedro"}>
|
||||||
|
<p>
|
||||||
|
L'<b>insieme</b> che racchiunde tutte le <b>soluzioni ammissibili</b> di un problema.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In particolare, il valore ottimo è un <b>vertice</b> del poliedro, detto <i>vertice ottimo</i>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Può essere <i><Finite/></i>, <i><Empty/></i> oppure <i><Unbounded/></i>.
|
||||||
|
</p>
|
||||||
|
</Panel>
|
||||||
<Panel title={"Gradiente"}>
|
<Panel title={"Gradiente"}>
|
||||||
<p>
|
<p>
|
||||||
<b>Funzione</b> della funzione obiettivo che restituisce la direzione del suo aumento più veloce.
|
<b>Funzione</b> della funzione obiettivo che restituisce la direzione del suo aumento più veloce.
|
||||||
|
@ -235,10 +336,10 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
</p>
|
</p>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Split>
|
</Split>
|
||||||
<Split title={"Simplex"}>
|
<Split title={"Simplex primale"}>
|
||||||
<Panel title={"Cos'è?"}>
|
<Panel title={"Cos'è?"}>
|
||||||
<p>
|
<p>
|
||||||
Un algoritmo per <Min>minimizzare</Min>/<Max>massimizzare</Max> efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan.
|
Un algoritmo per <Min>minimizzare</Min>/<Max>massimizzare</Max> trovare efficientemente <b>valore e vertice ottimo</b> di problemi di ottimizzazione lineare, derivato da Gauss-Jordan.
|
||||||
</p>
|
</p>
|
||||||
<Example>
|
<Example>
|
||||||
E' spiegato in modo semplice <a href={"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"}>qui</a>, e ci sono dei codici sorgenti di esempio <a href={"https://www.cs.cmu.edu/~15451-f17/handouts/simplexcodes/"}>qui</a>.
|
E' spiegato in modo semplice <a href={"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"}>qui</a>, e ci sono dei codici sorgenti di esempio <a href={"https://www.cs.cmu.edu/~15451-f17/handouts/simplexcodes/"}>qui</a>.
|
||||||
|
@ -256,17 +357,20 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
<li>Finchè ci sono variabili con coefficienti <Min>positivi</Min>/<Max>negativi</Max> nella funzione obiettivo:
|
<li>Finchè ci sono variabili con coefficienti <Min>positivi</Min>/<Max>negativi</Max> nella funzione obiettivo:
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
<b>Scegli</b> la prima variabile con coefficiente <Min>positivo</Min>/<Max>negativo</Max> nella funzione obiettivo: essa è la <i>variabile entrante</i>.
|
<b>Scegli</b> la prima variabile fuori base con coefficiente <Min>positivo</Min>/<Max>negativo</Max> nella funzione obiettivo: essa è la <i>variabile entrante</i>.<br/>
|
||||||
<Example>Si potrebbe scegliere qualsiasi variabile, ma scegliendo sempre la prima possibile (<i>Regola di Bland</i>) ci si assicura che l'algoritmo termini.</Example>
|
<aside><i>Regola di Bland</i>: Si potrebbe scegliere qualsiasi variabile come entrante, ma scegliendo sempre la prima ammissibile ci si assicura che l'algoritmo termini.</aside>
|
||||||
</li>
|
</li>
|
||||||
<li>Trova la variabile di base (detta <i>variabile uscente</i>) tramite il rapporto <Latex>{r`\frac{termine\ noto}{coeff.\ variabile\ entrante}`}</Latex>:<br/> scegli la variabile con il <b>rapporto minore</b>, assicurandoti che esso sia <b>positivo</b>.<br/> Se tutti i rapporti sono negativi, allora il problema è <b><Unbounded/></b>.</li>
|
<li>
|
||||||
<li><b>Riscrivi</b> tutte le funzioni del sistema in termini della variabile entrante.</li>
|
<b>Scegli</b> la variabile in base con il minor rapporto positivo <Latex>{r`\frac{termine\ noto}{coeff.\ variabile\ entrante}`}</Latex>.
|
||||||
|
<aside>Se non sei riuscito a trovare nessuna variabile con un rapporto positivo, significa che il poliedro è <Unbounded/>.</aside>
|
||||||
|
</li>
|
||||||
|
<li><u>Pivot</u>: <b>riscrivi</b> tutte le funzioni del sistema in termini della variabile entrante.</li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li>I <b>termini noti dei vincoli</b> sono le coordinate del risultato, mentre il <b>termine noto della funzione obiettivo</b> è il valore ottimo.</li>
|
<li>I <b>termini noti dei vincoli</b> sono le coordinate del risultato, mentre il <b>termine noto della funzione obiettivo</b> è il valore ottimo.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<Example>
|
<Example>
|
||||||
È praticamente l'algoritmo di Gauss-Jordan applicato il tableau con delle regole aggiuntive per la decisione delle variabili di pivot.
|
È praticamente l'algoritmo di Gauss-Jordan applicato al tableau, con delle regole aggiuntive per la decisione delle variabili di pivot.
|
||||||
</Example>
|
</Example>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel title={"Soluzioni di base degenerata"}>
|
<Panel title={"Soluzioni di base degenerata"}>
|
||||||
|
@ -287,7 +391,7 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
Prevede l'introduzione di un <i>problema ausiliario</i>, le cui incognite sono dette <i>artificiali</i>.
|
Prevede l'introduzione di un <i>problema ausiliario</i>, le cui incognite sono dette <i>artificiali</i>.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Il vettore delle incognite artificiali è solitamente chiamato <Latex>{r`\mathbf{y}`}.</Latex>
|
Il vettore delle incognite artificiali è solitamente chiamato <Latex>{r`\mathbf{y}`}</Latex>.
|
||||||
</p>
|
</p>
|
||||||
<Example>
|
<Example>
|
||||||
E' spiegato in modo semplice <a href={"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"}>qui</a>.
|
E' spiegato in modo semplice <a href={"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"}>qui</a>.
|
||||||
|
@ -297,11 +401,11 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
<ol>
|
<ol>
|
||||||
<li>Crea un nuovo tableau, <b>aggiungendo variabili artificiali</b> in modo da avere una base ammissibile.</li>
|
<li>Crea un nuovo tableau, <b>aggiungendo variabili artificiali</b> in modo da avere una base ammissibile.</li>
|
||||||
<li>Sostituisci la vecchia funzione obiettivo con una nuova che <b>minimizzi la somma</b> di tutte le variabili artificiali.</li>
|
<li>Sostituisci la vecchia funzione obiettivo con una nuova che <b>minimizzi la somma</b> di tutte le variabili artificiali.</li>
|
||||||
<li><u>Fase 1</u>: <b>Risolvi</b> il nuovo problema con il metodo Simplex.</li>
|
<li><u>Fase 1</u>: <b>Risolvi</b> il nuovo problema con il simplex primale.</li>
|
||||||
<li>Se il Simplex termina con ancora <b>variabili artificiali nella base</b>, allora il problema è <b><Unfeasible/></b>.</li>
|
<li>Se il Simplex termina quando ci sono ancora <b>variabili artificiali nella base</b>, allora il poliedro è <b><Empty/></b>.</li>
|
||||||
<li>Una volta che le variabili artificiali sono fuori base, <b>elimina</b> le loro colonne e la nuova funzione obiettivo.<br/></li>
|
<li>Una volta che le variabili artificiali sono fuori base, <b>elimina</b> le loro colonne e la nuova funzione obiettivo.<br/></li>
|
||||||
<li>Riporta il tableau in forma base compiendo operazioni per <b>azzerare i coefficienti</b> delle variabili di base nella funzione obiettivo.</li>
|
<li>Riporta il tableau in forma base compiendo operazioni per <b>azzerare i coefficienti</b> delle variabili di base nella funzione obiettivo.</li>
|
||||||
<li><u>Fase 2</u>: <b>Risolvi</b> il tableau con il metodo Simplex.</li>
|
<li><u>Fase 2</u>: <b>Risolvi</b> il tableau con il simplex primale.</li>
|
||||||
</ol>
|
</ol>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Split>
|
</Split>
|
||||||
|
@ -339,7 +443,7 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
</p>
|
</p>
|
||||||
<Latex inline={false}>{r`
|
<Latex inline={false}>{r`
|
||||||
\begin{cases}
|
\begin{cases}
|
||||||
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 )\\
|
z = 3 x_1 + 5 x_2 + u_1 ( 12 - 2 x_1 - 3 x_2 ) + u_2 ( 3 + x_1 - 3 x_2 )\\
|
||||||
x_1 \geq 0\\
|
x_1 \geq 0\\
|
||||||
x_2 \geq 0
|
x_2 \geq 0
|
||||||
\end{cases}
|
\end{cases}
|
||||||
|
@ -350,10 +454,7 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
<Split title={"Dualità"}>
|
<Split title={"Dualità"}>
|
||||||
<Panel title={"Duale"}>
|
<Panel title={"Duale"}>
|
||||||
<p>
|
<p>
|
||||||
Il sistema che <b><Min>massimizza</Min>/<Max>minimizza</Max> i moltiplicatori di rilassamento</b> di un qualsiasi sistema, detto <i>primale</i>.
|
Il sistema che <b><Min>massimizza</Min>/<Max>minimizza</Max> i moltiplicatori di rilassamento</b> di un problema detto <i>primale</i>.
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Si dimostra che la sua soluzione (se esiste) è <b>uguale</b> alla soluzione del problema primale.
|
|
||||||
</p>
|
</p>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel title={"In termini matriciali"}>
|
<Panel title={"In termini matriciali"}>
|
||||||
|
@ -367,15 +468,20 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
<Panel title={"Feasibility del duale"}>
|
<Panel title={"Feasibility del duale"}>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Se un problema ha una <b>soluzione finita</b>, allora anche il suo duale la avrà.</li>
|
<li>Se un problema ha una <b>soluzione finita</b>, allora anche il suo duale la avrà.</li>
|
||||||
<li>Se un problema è <b><Unfeasible/></b>, allora il suo duale potrà essere <Unfeasible/> oppure <Unbounded/>.</li>
|
<li>Se un problema è <b><Empty/></b>, allora il suo duale potrà essere <Empty/> oppure <Unbounded/>.</li>
|
||||||
<li>Se un problema è <b><Unbounded/></b>, allora il suo duale sarà certamente <Unfeasible/>.</li>
|
<li>Se un problema è <b><Unbounded/></b>, allora il suo duale sarà certamente <Empty/>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Split>
|
</Split>
|
||||||
<Split>
|
<Split title={"Un po' di teoria"}>
|
||||||
<Panel title={"Lemma di Farkas"}>
|
<Panel title={"Lemma di Farkas"}>
|
||||||
<p>
|
<p>
|
||||||
<Todo>TODO: una complicata dimostrazione per dire varie cose. Probabilmente si riesce a saltare se non si dà l'orale...</Todo>
|
Una disuguaglianza lineare <Latex>{r`c_0 \leq \mathbf{c}^T \mathbf{x}`}</Latex> è verificata da tutti i punti di un poliedro non-<Empty/> se e solo se esiste un vettore <Latex>{r`u \in \mathfrak{R}^m`}</Latex> tale che:
|
||||||
|
</p>
|
||||||
|
<PLatex>{r`\mathbf{c}^T \geq \mathbf{u}^T \mathbf{A}`}</PLatex>
|
||||||
|
<PLatex>{r`c_0 \leq \mathbf{u}^T \mathbf{b}`}</PLatex>
|
||||||
|
<p>
|
||||||
|
<Todo>TODO: Cioè?</Todo>
|
||||||
</p>
|
</p>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel title={"Dualità forte"}>
|
<Panel title={"Dualità forte"}>
|
||||||
|
@ -400,6 +506,24 @@ export default class OttimizzazioneLineare extends Component {
|
||||||
<Todo>TODO: Dimostrazione cortina, ma sembra complicata.</Todo>
|
<Todo>TODO: Dimostrazione cortina, ma sembra complicata.</Todo>
|
||||||
</p>
|
</p>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel title={"Condizioni di ottimalità"}>
|
||||||
|
<p>
|
||||||
|
Il teorema che ci permette di passare dalla soluzione del duale alla soluzione del primale. <Todo>TODO: credo?</Todo>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Si deriva combinando le seguenti condizioni:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Ammissibilità del primale: <Latex>{r`\mathbf{A} \mathbf{X} \geq \mathbf{b}, \quad \mathbf{x} \geq 0`}</Latex></li>
|
||||||
|
<li>Ammissibilità del duale: <Latex>{r`\mathbf{u}^T \mathbf{A} \leq \mathbf{c}^T, \quad \mathbf{u} \geq 0`}</Latex></li>
|
||||||
|
<li>Teorema della dualità forte: <Latex>{r`\mathbf{c}^T \mathbf{x} = \mathbf{u}^T \mathbf{b}`}</Latex> (alla soluzione ottima)</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Ne risulta che una soluzione è ottima se e solo se:
|
||||||
|
</p>
|
||||||
|
<PLatex>{r`\left( \mathbf{c}^T - \mathbf{u}^T \mathbf{A} \right) \mathbf{x} = 0`}</PLatex>
|
||||||
|
<PLatex>{r`\mathbf{u}^T \left( \mathbf{A} \mathbf{x} - \mathbf{b} \right) = 0`}</PLatex>
|
||||||
|
</Panel>
|
||||||
</Split>
|
</Split>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue