{"version":3,"sources":["webpack:///./components/Example.less","webpack:///./components/old/todo.css","webpack:///./components/OttimizzazioneLineare/Styles.less","webpack:///./components/Elements/Box.less","webpack:///./components/old/timer.js","webpack:///./components/TablePanel.less","webpack:///./components/old/timer.less","webpack:///./components/Latex.js","webpack:///./components/Elements/Panel.less","webpack:///./components/example.js","webpack:///../src/index.js","webpack:///./components/OttimizzazioneLineare/Max.js","webpack:///./components/OttimizzazioneLineare/Finite.js","webpack:///./components/OttimizzazioneLineare/Empty.js","webpack:///./components/Elements/Box.js","webpack:///./components/OttimizzazioneLineare/Unbounded.js","webpack:///./components/old/split.css","webpack:///./components/TablePanel.js","webpack:///./components/OttimizzazioneLineare/Min.js","webpack:///./routes/OttimizzazioneLineare.js","webpack:///./components/Elements/Panel.js","webpack:///./components/old/todo.js","webpack:///./components/old/split.js","webpack:///./components/PLatex.js","webpack:///./components/Latex.css","webpack:///./contexts/LatexDefaultInline.js"],"names":["module","exports","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","render","dateTo","className","style","parts","milliseconds","seconds","minutes","hours","days","props","to","timeLeft","Math","floor","expired","unknown","class","title","count","text","remaining","Component","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","src","undefined","inline","children","alt","latex","example","getHookState","index","type","options","_hook","currentComponent","currentHook","hooks","__hooks","_list","_pendingEffects","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_reducer","_component","_value","nextValue","action","useEffect","callback","args","_skipEffects","argsChanged","_args","useLayoutEffect","_renderCallbacks","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","_factory","useCallback","context","provider","_id","_context","sub","value","_defaultValue","useDebugValue","formatter","flushAfterPaintEffects","afterPaintEffects","some","component","_parentDom","forEach","invokeCleanup","invokeEffect","e","_catchError","_vnode","hook","_cleanup","oldArgs","newArgs","arg","f","prevRaf","oldBeforeRender","_render","oldAfterDiff","diffed","oldCommit","_commit","oldBeforeUnmount","unmount","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","cancelAnimationFrame","setTimeout","window","commitQueue","filter","cb","max","finite","unfeasible","BoxColors","Object","freeze","RED","red","ORANGE","orange","YELLOW","yellow","LIME","lime","CYAN","cyan","BLUE","blue","MAGENTA","magenta","DEFAULT","default","color","box","unbounded","tablepanel","min","r","String","raw","OttimizzazioneLineare","href","Provider","contents","Todo","todo","Split","Array","isArray","map","element","splitchild","split","splitparent","createContext"],"mappings":"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","file":"route-OttimizzazioneLineare.chunk.3792d.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"example\":\"example__2PzAa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unbounded\":\"unbounded__25UN8\",\"unfeasible\":\"unfeasible__2MuIF\",\"finite\":\"finite__2EP_f\",\"min\":\"min__3lPpn\",\"max\":\"max__1hxKl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"box\":\"box__3cKyY\",\"default\":\"default__v-emJ\",\"red\":\"red__339Cz\",\"orange\":\"orange__24_8v\",\"yellow\":\"yellow__1Jo9W\",\"lime\":\"lime__34yV5\",\"cyan\":\"cyan__3RqLr\",\"blue\":\"blue__13Wnj\",\"magenta\":\"magenta__2tkzq\"};","import {Component} from 'preact'\nimport style from \"./timer.less\"\n\n\nexport default class Timer extends Component {\n constructor() {\n super();\n this.state = {\n \"now\": Date.now()\n };\n this.timer = null;\n }\n\n componentDidMount() {\n this.timer = setInterval(() => {\n this.setState({\"now\": Date.now()})\n }, 1000)\n }\n\n componentWillUnmount() {\n if(this.timer !== null) {\n clearInterval(this.timer)\n }\n }\n\n render() {\n let dateTo = \"Unknown date\";\n let className = style.timer;\n\n let parts = {\n milliseconds: \"?\",\n seconds: \"?\",\n minutes: \"?\",\n hours: \"?\",\n days: \"?\",\n };\n\n if(this.props.to) {\n dateTo = new Date(this.props.to);\n let timeLeft = dateTo - this.state.now;\n\n if(timeLeft > 0) {\n parts = {\n milliseconds: timeLeft % 1000,\n seconds: Math.floor(timeLeft / 1000) % 60,\n minutes: Math.floor(timeLeft / 60000) % 60,\n hours: Math.floor(timeLeft / 3600000) % 24,\n days: Math.floor(timeLeft / 86400000),\n };\n }\n\n else {\n parts = {\n milliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n };\n\n className += \" \" + style.expired;\n }\n }\n else {\n className += \" \" + style.unknown;\n }\n\n return (\n
\n
\n {parts.days}\n
\n
\n giorni\n
\n
\n {parts.hours}\n
\n
\n ore\n
\n
\n {parts.minutes}\n
\n
\n minuti\n
\n
\n {parts.seconds}\n
\n
\n secondi\n
\n
\n rimasti\n
\n
\n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tablepanel\":\"tablepanel__PkBWm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"timer\":\"timer__K0K_h\",\"days\":\"days__vN3tf\",\"hours\":\"hours__3v0KX\",\"minutes\":\"minutes__vkYk7\",\"seconds\":\"seconds__3gJ99\",\"count\":\"count__1VV4k\",\"text\":\"text__khS4i\",\"remaining\":\"remaining__zUECg\",\"unknown\":\"unknown__af307\",\"expired\":\"expired__1rtHB\"};","import style from './Latex.css';\nimport {useContext} from \"preact/hooks\";\nimport LatexRenderColor from \"../contexts/LatexRenderColor\";\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\n\nexport default function(props) {\n\t// black, blue, brown, cyan, darkgray, gray, green, lightgray, lime, magenta, olive, orange, pink, purple, red, teal, violet, white, yellow\n\tlet renderColor = useContext(LatexRenderColor);\n\tlet defaultInline = useContext(LatexDefaultInline);\n\n\tlet is_inline;\n\tif(props.inline === undefined) {\n\t\tis_inline = defaultInline;\n\t}\n\telse {\n\t\tis_inline = props.inline;\n\t}\n\n\tlet inline = is_inline ? `\\\\inline` : \"\";\n\tlet equation = `${inline} {\\\\color{${renderColor}} ${props.children} }`;\n\n\treturn (\n\t\t{props.children}\n\t\t\t\n\t);\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"title__3ZVpg\",\"contents\":\"contents__20_NI\"};","import style from \"./Example.less\";\r\nimport {Component} from \"preact\";\r\n\r\nexport default function(props) {\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n}\r\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array} */\nlet afterPaintEffects = [];\n\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\thooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\n\t\tafterPaint(afterPaintEffects.push(c));\n\t}\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\ttry {\n\t\t\tc.__hooks._list.forEach(invokeCleanup);\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {import('./internal').HookState}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater} initialState\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').StateUpdater} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._component = currentComponent;\n\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value[0] = nextValue;\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t\treturn (state._value = factory());\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\nexport function useErrorBoundary(cb) {\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.some(component => {\n\t\tif (component._parentDom) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._vnode);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tcancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (typeof window != 'undefined') {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\tif (typeof hook._cleanup == 'function') hook._cleanup();\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\thook._cleanup = hook._value();\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn !oldArgs || newArgs.some((arg, index) => arg !== oldArgs[index]);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"max\"}\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"finito\"}\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"vuoto\"}\r\n );\r\n}\r\n","import style from \"./Box.less\";\r\n\r\nexport const BoxColors = Object.freeze({\r\n RED: style.red,\r\n ORANGE: style.orange,\r\n YELLOW: style.yellow,\r\n LIME: style.lime,\r\n CYAN: style.cyan,\r\n BLUE: style.blue,\r\n MAGENTA: style.magenta,\r\n DEFAULT: style.default\r\n})\r\n\r\nexport default function (props) {\r\n let color = BoxColors.DEFAULT;\r\n if(props.color) {\r\n color = props.color;\r\n }\r\n\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"illimitato\"}\r\n );\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3dL9r\",\"splitparent\":\"splitparent__2H-vS\",\"splitchild\":\"splitchild__1B-Jt\"};","import style from \"./TablePanel.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n \r\n {props.children}\r\n
\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"min\"}\r\n );\r\n}\r\n","import {Component} from 'preact'\nimport Split from \"../components/old/split\";\nimport Latex from \"../components/Latex\";\nimport Panel from \"../components/Elements/Panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/old/todo\";\nimport Timer from \"../components/old/timer\";\nimport Empty from \"../components/OttimizzazioneLineare/Empty\";\nimport Unbounded from \"../components/OttimizzazioneLineare/Unbounded\";\nimport Min from \"../components/OttimizzazioneLineare/Min\";\nimport Max from \"../components/OttimizzazioneLineare/Max\";\nimport PLatex from \"../components/PLatex\";\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\nimport TablePanel from \"../components/TablePanel\";\nimport Finite from \"../components/OttimizzazioneLineare/Finite\";\n\nconst r = String.raw;\n\nexport default class OttimizzazioneLineare extends Component {\n render() {\n return (\n
\n

Ottimizzazione lineare intera

\n \n \n

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

\n

\n Guardate i video qui!\n

\n
\n \n
    \n
  1. \n
  2. \n
  3. \n
\n
\n
\n \n \n \n \n \n v\n s\n Significato\n \n \n \n \n {r`\\mathbf{x}`}\n {r`x_i`}\n Incognite\n \n \n {r`\\mathbf{s}`}\n {r`s_i`}\n Variabili slack\n \n \n {r`\\mathbf{c}`}\n {r`c_i`}\n Coefficienti della funzione obiettivo\n \n \n {r`\\mathbf{A}`}\n {r`a_{ij}`}\n Coefficienti dei vincoli\n \n \n {r`\\mathbf{b}`}\n {r`b_i`}\n Termini noti dei vincoli\n \n \n {r`\\mathbf{y}`}\n {r`y_i`}\n Incognite artificiali\n \n \n {r`\\mathbf{u}`}\n {r`u_i`}\n Coefficienti di rilassamento\n \n \n \n {r`c_0`}\n Valore ottimo di un problema\n \n \n {r`\\mathbf{x}_B`}\n \n Incognite in base\n \n \n {r`\\mathbf{c}_B`}\n \n Coefficienti della funzione obiettivo delle variabili in base\n \n \n {r`\\mathbf{B}`}\n \n Coefficienti dei vincoli delle variabili in base\n \n \n {r`\\mathbf{x}_F`}\n \n Incognite fuori base\n \n \n {r`\\mathbf{c}_F`}\n \n Coefficienti della funzione obiettivo delle variabili fuori base\n \n \n {r`\\mathbf{F}`}\n \n Coefficienti dei vincoli delle variabili fuori base\n \n \n \n \n \n \n Simboli\n Significato\n \n \n \n \n {r`\\mathbf{c}^T \\mathbf{x}`}\n Soluzione del problema\n \n \n {r`\\mathbf{A} \\mathbf{x} = \\mathbf{b}`}\n Vincoli in forma standard\n \n \n {r`z(\\dots)`}\n Funzione obiettivo\n \n \n {r`\\mathbf{u}^T \\mathbf{b}`}\n Soluzione del problema duale\n \n \n {r`\\mathbf{u}^T \\mathbf{A} = \\mathbf{c}^T`}\n Vincoli del problema duale in forma standard\n \n \n \n \n \n \n \n

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

\n

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

\n
\n
\n \n \n

\n I problemi di ottimizzazione lineare sono problemi che cercano di minimizzare/massimizzare il valore di una funzione obiettivo le cui incognite sono sottoposte a un sistema di vincoli.\n

\n
\n \n

\n La funzione da minimizzare/massimizzare.\n

\n

\n Il vettore dei suoi coefficienti è detto {r`\\mathbf{c}`}, mentre quello delle sue incognite {r`\\mathbf{x}`}.\n

\n
\n \n

\n Equazioni e disequazioni a cui devono sottostare le incognite perchè esse formino una soluzione valida.\n

\n

\n I loro coefficienti sono contenuti nella matrice {r`\\mathbf{A}`}, mentre i loro termini noti nel vettore {r`\\mathbf{b}`}.\n

\n
\n \n

\n La soluzione di un problema, ricavabile dal prodotto {r`\\mathbf{c}^T \\mathbf{x}`}.\n

\n

\n Spesso, la funzione obiettivo è indicata con il nome {r`z(\\dots)`}.\n

\n
\n \n

\n L'insieme che racchiunde tutte le soluzioni ammissibili di un problema.\n

\n

\n In particolare, il valore ottimo è un vertice del poliedro, detto vertice ottimo.\n

\n

\n Può essere , oppure .\n

\n
\n \n

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

\n

\n {r`\\nabla f = \\frac{\\delta f}{\\delta x_1} \\mathbf{I}_1 + \\frac{\\delta f}{\\delta x_2} \\mathbf{I}_2 + \\frac{\\delta f}{\\delta x_n} \\mathbf{I}_n`}\n

\n \n La matrice {r`\\mathbf{I}`} è la matrice identità.\n \n \n Se la funzione obiettivo è z = 2w + 3x + 4y, il suo gradiente è {r`\\nabla z = (2, 3, 4)`}.\n \n
\n
\n \n \n

\n Un problema con:\n

\n
    \n
  • Equazioni e disequazioni
  • \n
  • Variabili non vincolate
  • \n
\n {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\\}`}\n
\n \n

\n Un problema con:\n

\n
    \n
  • Solo disequazioni
  • \n
  • Vincoli di non-negatività sulle incognite
  • \n
\n {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\\}`}\n
\n \n

\n Un problema con:\n

\n
    \n
  • Solo equazioni
  • \n
  • Vincoli di non-negatività sulle incognite
  • \n
\n {r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} = b,\\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}\n
\n
\n \n \n

\n Applica questa conversione a ogni equazione nel sistema:\n

\n

\n {r`a = b \\Leftrightarrow\n \\begin{cases}\n a \\leq b\\\\\n a \\geq b\n \\end{cases}\n `}\n

\n Serve solo nella teoria per dimostrare che le forme sono equivalenti.\n
\n \n

\n Aggiungi una variabile slack {r`s`} non-vincolata a ogni disequazione nel sistema:\n

\n

\n {r`\n a \\leq b \\Leftrightarrow a + s = b\n `}\n

\n

\n {r`\n a \\geq b \\Leftrightarrow a - s = b\n `}\n

\n
\n \n

\n Sdoppia ogni variabile non-vincolata in due variabili con vincolo di non-negatività:\n

\n

\n {r`\\begin{cases}\n a = a^+ - a^-\\\\\n a^+ \\geq 0\\\\\n a^- \\geq 0\n \\end{cases}`}\n

\n
\n
\n \n \n

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

\n \n Il sistema:

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

\n Diventa il tableau:

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

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

\n

\n La loro controparte sono le variabili fuori base, che hanno qualsiasi altro valore.\n

\n
\n
\n \n \n

\n Un algoritmo per minimizzare/massimizzare trovare efficientemente valore ottimo di problemi di ottimizzazione lineare, derivato da Gauss-Jordan.\n

\n

\n Da esso si può anche ricavare un vertice ottimo ammissibile.
\n C'è la possibilità che ne esistano anche altri: quello ottenuto dipende da come è stata effettuata la scelta delle variabili entranti.\n

\n \n E' spiegato in modo semplice qui, e ci sono dei codici sorgenti di esempio qui.\n \n \n

\n Questa è la soluzione passo per passo del problema 3 del file Ex_LP_testo.\n

\n
\n
\n \n
    \n
  1. Trasforma il sistema in forma standard.
  2. \n
  3. Trova tante variabili linearmente indipendenti quante siano le righe: esse saranno la base iniziale.
  4. \n
  5. Finchè ci sono variabili con coefficienti positivi/negativi nella funzione obiettivo:\n
      \n
    1. \n Scegli la prima variabile fuori base con coefficiente positivo/negativo nella funzione obiettivo: essa è la variabile entrante.
      \n \n
    2. \n
    3. \n Scegli la variabile in base con il minor rapporto positivo {r`\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}`}.\n \n
    4. \n
    5. Pivot: riscrivi tutte le funzioni del sistema in termini della variabile entrante.
    6. \n
    \n
  6. \n
  7. Il poliedro è : i termini noti dei vincoli sono le coordinate del suo vertice ottimo, mentre il termine noto della funzione obiettivo è il valore ottimo.
  8. \n
\n \n È praticamente l'algoritmo di Gauss-Jordan applicato al tableau, con delle regole aggiuntive per la decisione delle variabili di pivot.\n \n
\n \n

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

\n

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

\n
\n
\n \n \n

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

\n

\n Prevede l'introduzione di un problema ausiliario, le cui incognite sono dette artificiali.\n

\n

\n Il vettore delle incognite artificiali è solitamente chiamato {r`\\mathbf{y}`}.\n

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

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

\n
\n \n

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

\n

\n I vincoli, moltiplicati per coefficienti di rilassamento, vengono inseriti nella funzione obiettivo.\n

\n

\n Il vettore dei coefficienti di rilassamento solitamente è indicato con {r`\\mathbf{u}`}.\n

\n \n

\n Il sistema:\n

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

\n diventa:\n

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

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

\n
\n \n

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

\n

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

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

\n Una disuguaglianza lineare {r`c_0 \\leq \\mathbf{c}^T \\mathbf{x}`} è verificata da tutti i punti di un poliedro non- se e solo se esiste un vettore {r`u \\in \\mathfrak{R}^m`} tale che:\n

\n {r`\\mathbf{c}^T \\geq \\mathbf{u}^T \\mathbf{A}`}\n {r`c_0 \\leq \\mathbf{u}^T \\mathbf{b}`}\n

\n TODO: Cioè?\n

\n
\n \n

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

\n

\n Se uno dei due problemi è finito, la soluzione di uno coincide con la soluzione dell'altro.\n

\n

\n {r`\\mathbf{c}^T \\mathbf{x} = \\mathbf{u}^T \\mathbf{b}`}\n

\n

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

\n
\n \n

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

\n

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

\n
\n \n

\n Il teorema che ci permette di passare dalla soluzione del duale alla soluzione del primale. TODO: credo?\n

\n

\n Si deriva combinando le seguenti condizioni:\n

\n
    \n
  • Ammissibilità del primale: {r`\\mathbf{A} \\mathbf{X} \\geq \\mathbf{b}, \\quad \\mathbf{x} \\geq 0`}
  • \n
  • Ammissibilità del duale: {r`\\mathbf{u}^T \\mathbf{A} \\leq \\mathbf{c}^T, \\quad \\mathbf{u} \\geq 0`}
  • \n
  • Teorema della dualità forte: {r`\\mathbf{c}^T \\mathbf{x} = \\mathbf{u}^T \\mathbf{b}`} (alla soluzione ottima)
  • \n
\n

\n Ne risulta che una soluzione è ottima se e solo se:\n

\n {r`\\left( \\mathbf{c}^T - \\mathbf{u}^T \\mathbf{A} \\right) \\mathbf{x} = 0`}\n {r`\\mathbf{u}^T \\left( \\mathbf{A} \\mathbf{x} - \\mathbf{b} \\right) = 0`}\n
\n
\n \n \n

\n Un'estensione al Simplex primale che opera sul problema duale.\n

\n
\n \n

\n Funziona esattamente come il Simplex primale, ma opera sulle righe invece che sulle colonne, cercando di rendere positivi/negativi tutti i termini noti.\n

\n
\n
\n \n \n

\n Un procedimento che misura di quanto può variare il termine noto di un vincolo {r`b_i`} o il coefficiente della funzione obiettivo {r`c_i`} prima che la base degeneri. TODO: verificare\n

\n
\n
\n
\n )\n }\n}\n","import style from \"./Panel.less\";\nimport Box from \"./Box\";\n\nexport default function(props) {\n\treturn (\n\t\t\n\t\t\t

\n\t\t\t\t{props.title}\n\t\t\t

\n\t\t\t
\n\t\t\t\t{props.children}\n\t\t\t
\n\t\t
\n\t);\n}\n","import style from \"./todo.css\";\nimport { Component } from 'preact';\n\nexport default class Todo extends Component {\n\trender() {\n\t\treturn {this.props.children};\n\t}\n}\n","import style from \"./split.css\";\nimport { Component } from 'preact';\n\nexport default class Split extends Component {\n\trender() {\n\t let title = null;\n\t if(this.props.title !== undefined) {\n title = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","import Latex from \"./Latex\";\r\n\r\nexport default function (props) {\r\n return (\r\n

\r\n {props.children}\r\n

\r\n );\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n"],"sourceRoot":""}