1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-23 08:24:20 +00:00
triennale-appunti-steffo/docs/route-OttimizzazioneLineare.chunk.60a71.js.map
2020-06-14 18:56:16 +02:00

1 line
No EOL
70 KiB
Text
Generated

{"version":3,"sources":["webpack:///./components/Elements/TablePanel.js","webpack:///./components/Elements/Example.less","webpack:///./components/Elements/Box.less","webpack:///./components/PageSpecific/OttimizzazioneLineare/Min.js","webpack:///./components/Rendering/Latex.less","webpack:///./components/PageSpecific/OttimizzazioneLineare/Finite.js","webpack:///./components/Elements/Todo.less","webpack:///./components/Elements/Section.js","webpack:///./components/Elements/Panel.less","webpack:///./contexts/LatexDefaultDisplay.js","webpack:///./components/Rendering/Latex.js","webpack:///./components/Elements/Timer.js","webpack:///../src/index.js","webpack:///./components/Elements/Todo.js","webpack:///./components/PageSpecific/OttimizzazioneLineare/Max.js","webpack:///./components/Layout/Split.js","webpack:///./components/Rendering/PLatex.js","webpack:///./components/Elements/TablePanel.less","webpack:///./components/PageSpecific/OttimizzazioneLineare/Styles.less","webpack:///./components/Elements/Example.js","webpack:///./components/Elements/Box.js","webpack:///./components/PageSpecific/OttimizzazioneLineare/Empty.js","webpack:///./components/PageSpecific/OttimizzazioneLineare/Unbounded.js","webpack:///./components/Elements/Timer.less","webpack:///./routes/OttimizzazioneLineare.js","webpack:///./components/Layout/Split.less","webpack:///./components/Elements/Panel.js","webpack:///./contexts/LatexDefaultInline.js","webpack:///./components/Rendering/BLatex.js"],"names":["props","class","style","tablepanel","children","module","exports","min","title","finite","createContext","LatexDisplay","Object","freeze","INLINE","inline","BLOCK","block","display","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","defaultDisplay","LatexDefaultDisplay","undefined","src","alt","latex","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","render","dateTo","className","parts","milliseconds","seconds","minutes","hours","days","to","timeLeft","Math","floor","expired","unknown","count","text","Component","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","Array","isArray","map","element","splitchild","split","splitparent","example","BoxColors","RED","red","ORANGE","orange","YELLOW","yellow","LIME","lime","CYAN","cyan","BLUE","blue","MAGENTA","magenta","DEFAULT","default","color","box","unfeasible","unbounded","r","String","raw","href","Provider","contents"],"mappings":"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","file":"route-OttimizzazioneLineare.chunk.60a71.js","sourcesContent":["import style from \"./TablePanel.less\";\n\nexport default function (props) {\n return (\n <table class={style.tablepanel}>\n {props.children}\n </table>\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"example\":\"example__9acWs\"};","// 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 style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.min} title={\"In problemi in cui il primale è di minimizzazione.\"}>{props.children ? props.children : \"min\"}</abbr>\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inline\":\"inline__1yl8V\",\"block\":\"block__fPiiB\"};","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.finite} title={\"I punti del poliedro sono finiti.\"}>{props.children ? props.children : \"finito\"}</abbr>\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__2IWIS\"};","import Split from \"../Layout/Split\";\nimport {Fragment} from \"preact\";\n\nexport default function (props) {\n return (\n <Fragment>\n <h2>\n {props.title}\n </h2>\n <Split>\n {props.children}\n </Split>\n </Fragment>\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"title__3ZVpg\",\"contents\":\"contents__20_NI\"};","import {createContext} from \"preact\";\n\nexport default createContext(null);\n","import style from './Latex.less';\nimport {useContext} from \"preact/hooks\";\nimport LatexRenderColor from \"../../contexts/LatexRenderColor\";\nimport LatexDefaultInline from \"../../contexts/LatexDefaultInline\";\nimport LatexDefaultDisplay from \"../../contexts/LatexDefaultDisplay\";\n\nexport const LatexDisplay = Object.freeze({\n INLINE: style.inline,\n BLOCK: style.block,\n})\n\nexport default function(props) {\n // black, blue, brown, cyan, darkgray, gray, green, lightgray, lime, magenta, olive, orange, pink, purple, red, teal, violet, white, yellow\n let renderColor = useContext(LatexRenderColor);\n let defaultInline = useContext(LatexDefaultInline);\n let defaultDisplay = useContext(LatexDefaultDisplay);\n\n let inline;\n if(props.inline === undefined) {\n inline = defaultInline;\n }\n else {\n inline = props.inline;\n }\n\n let display;\n if(props.display === undefined) {\n if(defaultDisplay === null) {\n display = LatexDisplay.INLINE;\n }\n else {\n display = defaultDisplay;\n }\n }\n else {\n display = props.display;\n }\n\n if(inline) {\n let equation = `\\\\inline {\\\\color{${renderColor}} ${props.children} }`;\n return (\n <img src={`https://latex.codecogs.com/svg.latex?${equation}`}\n alt={props.children}\n title={props.children}\n class={style.latex + \" \" + display}\n />\n );\n }\n else {\n let equation = `{\\\\color{${renderColor}} ${props.children} }`;\n return (\n <img src={`https://latex.codecogs.com/svg.latex?${equation}`}\n alt={props.children}\n title={props.children}\n class={style.latex + \" \" + display}\n />\n );\n }\n}\n","import {Component} from 'preact'\nimport style from \"./Timer.less\"\n\n\nexport default class Timer extends Component {\n constructor() {\n super();\n this.state = {\n \"now\": Date.now()\n };\n this.timer = null;\n }\n\n componentDidMount() {\n this.timer = setInterval(() => {\n this.setState({\"now\": Date.now()})\n }, 1000)\n }\n\n componentWillUnmount() {\n if(this.timer !== null) {\n clearInterval(this.timer)\n }\n }\n\n render() {\n let dateTo = \"Unknown date\";\n let className = style.timer;\n\n let parts = {\n milliseconds: \"?\",\n seconds: \"?\",\n minutes: \"?\",\n hours: \"?\",\n days: \"?\",\n };\n\n if(this.props.to) {\n dateTo = new Date(this.props.to);\n let timeLeft = dateTo - this.state.now;\n\n if(timeLeft > 0) {\n parts = {\n milliseconds: timeLeft % 1000,\n seconds: Math.floor(timeLeft / 1000) % 60,\n minutes: Math.floor(timeLeft / 60000) % 60,\n hours: Math.floor(timeLeft / 3600000) % 24,\n days: Math.floor(timeLeft / 86400000),\n };\n }\n\n else {\n parts = {\n milliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n };\n\n className += \" \" + style.expired;\n }\n }\n else {\n className += \" \" + style.unknown;\n }\n\n return (\n <div class={className} title={dateTo}>\n <div class={style.days + \" \" + style.count}>\n {parts.days}\n </div>\n <div className={style.days + \" \" + style.text}>\n giorni\n </div>\n <div class={style.hours + \" \" + style.count}>\n {parts.hours}\n </div>\n <div className={style.hours + \" \" + style.text}>\n ore\n </div>\n <div class={style.minutes + \" \" + style.count}>\n {parts.minutes}\n </div>\n <div className={style.minutes + \" \" + style.text}>\n minuti\n </div>\n <div class={style.seconds + \" \" + style.count}>\n {parts.seconds}\n </div>\n <div class={style.seconds + \" \" + style.text}>\n secondi\n </div>\n </div>\n )\n }\n}\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<import('./internal').Component>} */\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<any>} initialState\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} 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 {<T>(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 \"./Todo.less\";\n\nexport default function (props) {\n\tif(process.env.NODE_ENV === \"development\") {\n\t\treturn <span class={style.todo}>{props.children}</span>;\n\t}\n\telse {\n\t\treturn null;\n\t}\n}\n","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.max} title={\"In problemi in cui il primale è di massimizzazione.\"}>{props.children ? props.children : \"max\"}</abbr>\n );\n}\n","import style from \"./Split.less\";\n\nexport default function (props) {\n let children;\n\n if(Array.isArray(props.children)) {\n children = props.children.map(element => {\n return (\n <div class={style.splitchild}>\n {element}\n </div>\n );\n });\n }\n\n else {\n children = (\n <div class={style.splitchild}>\n {props.children}\n </div>\n );\n }\n return (\n <div class={style.split}>\n <div class={style.splitparent}>{children}</div>\n </div>\n );\n}\n","import BLatex from \"./BLatex\";\n\nexport default function (props) {\n return (\n <p>\n <BLatex>{props.children}</BLatex>\n </p>\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tablepanel\":\"tablepanel__1Wil3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unbounded\":\"unbounded__KZ9A2\",\"unfeasible\":\"unfeasible__9LnzW\",\"finite\":\"finite__3_e9S\",\"min\":\"min__3VEkp\",\"max\":\"max__BtCuw\"};","import style from \"./Example.less\";\nimport {Component} from \"preact\";\n\nexport default function(props) {\n return (\n <div class={style.example}>\n {props.children}\n </div>\n );\n}\n","import style from \"./Box.less\";\n\nexport const BoxColors = Object.freeze({\n RED: style.red,\n ORANGE: style.orange,\n YELLOW: style.yellow,\n LIME: style.lime,\n CYAN: style.cyan,\n BLUE: style.blue,\n MAGENTA: style.magenta,\n DEFAULT: style.default\n})\n\nexport default function (props) {\n let color = BoxColors.DEFAULT;\n if(props.color) {\n color = props.color;\n }\n\n return (\n <div class={style.box + \" \" + color}>\n {props.children}\n </div>\n );\n}\n","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.unfeasible} title={\"Il poliedro non contiene punti.\"}>{props.children ? props.children : \"vuoto\"}</abbr>\n );\n}\n","import style from \"./Styles.less\";\n\nexport default function (props) {\n return (\n <abbr class={style.unbounded} title={\"I punti del poliedro sono infiniti.\"}>{props.children ? props.children : \"illimitato\"}</abbr>\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"timer\":\"timer__3Z2pL\",\"days\":\"days__myhe2\",\"hours\":\"hours__3JUDn\",\"minutes\":\"minutes__24lD7\",\"seconds\":\"seconds__2vZ4f\",\"count\":\"count__chi9X\",\"text\":\"text__34ldC\",\"unknown\":\"unknown__3sT2P\",\"expired\":\"expired__zNiuP\"};","import Section from \"../components/Elements/Section\";\nimport Latex from \"../components/Rendering/Latex\";\nimport Panel from \"../components/Elements/Panel\";\nimport Example from \"../components/Elements/Example\";\nimport Todo from \"../components/Elements/Todo\";\nimport Timer from \"../components/Elements/Timer\";\nimport Empty from \"../components/PageSpecific/OttimizzazioneLineare/Empty\";\nimport Unbounded from \"../components/PageSpecific/OttimizzazioneLineare/Unbounded\";\nimport Min from \"../components/PageSpecific/OttimizzazioneLineare/Min\";\nimport Max from \"../components/PageSpecific/OttimizzazioneLineare/Max\";\nimport PLatex from \"../components/Rendering/PLatex\";\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\nimport TablePanel from \"../components/Elements/TablePanel\";\nimport Finite from \"../components/PageSpecific/OttimizzazioneLineare/Finite\";\n\nconst r = String.raw;\n\nexport default function(props) {\n return (\n <div>\n <h1>Ottimizzazione lineare intera</h1>\n <Section title={\"Informazioni\"}>\n <Panel title={\"Contatti\"}>\n <ul>\n <li><a href={\"mailto:stefano.novellani@unimore.it\"}>Prof. Stefano Novellani</a></li>\n </ul>\n </Panel>\n <Panel title={\"Archivio\"}>\n <p>\n Se sei uno <b>studente dell'Unimore</b>, puoi accedere all'<b><a href={\"https://drive.google.com/drive/folders/13q-E6LvXca9uo3sATMZxrhJClqMB0wJu\"}>archivio del corso su Google Drive</a></b>.\n </p>\n </Panel>\n </Section>\n <Section title={\"Esame\"}>\n <Panel title={\"Scritto\"}>\n <p>\n Uno scritto con tre domande:\n </p>\n <ul>\n <li>Progettazione concettuale e logica</li>\n <li>Formulazione interrogazione</li>\n <li>Una domanda tra:\n <ul>\n <li>Studio dato derivato</li>\n <li>Progettazione fisica</li>\n <li>Tecnologia database</li>\n </ul>\n </li>\n </ul>\n </Panel>\n <Panel title={\"Appelli\"}>\n <ol>\n <li><Timer to={\"2020-06-08\"}/></li>\n <li><Timer to={\"2020-06-25\"}/></li>\n <li><Timer to={\"2020-07-16\"}/></li>\n </ol>\n </Panel>\n </Section>\n <LatexDefaultInline.Provider value={false}>\n <Section title={\"Glossario\"}>\n <TablePanel>\n <thead>\n <tr>\n <th><abbr title={\"Vettore / matrice\"}>v</abbr></th>\n <th><abbr title={\"Elemento singolo\"}>s</abbr></th>\n <th>Significato</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><Latex>{r`\\mathbf{x}`}</Latex></td>\n <td><Latex>{r`x_i`}</Latex></td>\n <td>Incognite</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{s}`}</Latex></td>\n <td><Latex>{r`s_i`}</Latex></td>\n <td>Variabili slack</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{c}`}</Latex></td>\n <td><Latex>{r`c_i`}</Latex></td>\n <td>Coefficienti della funzione obiettivo</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{A}`}</Latex></td>\n <td><Latex>{r`a_{ij}`}</Latex></td>\n <td>Coefficienti dei vincoli</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{b}`}</Latex></td>\n <td><Latex>{r`b_i`}</Latex></td>\n <td>Termini noti dei vincoli</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{y}`}</Latex></td>\n <td><Latex>{r`y_i`}</Latex></td>\n <td>Incognite artificiali</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{u}`}</Latex></td>\n <td><Latex>{r`u_i`}</Latex></td>\n <td>Coefficienti di rilassamento</td>\n </tr>\n <tr>\n <td/>\n <td><Latex>{r`c_0`}</Latex></td>\n <td>Valore ottimo di un problema</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{x}_B`}</Latex></td>\n <td/>\n <td>Incognite in base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{c}_B`}</Latex></td>\n <td/>\n <td>Coefficienti della funzione obiettivo delle variabili in base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{B}`}</Latex></td>\n <td/>\n <td>Coefficienti dei vincoli delle variabili in base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{x}_F`}</Latex></td>\n <td/>\n <td>Incognite fuori base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{c}_F`}</Latex></td>\n <td/>\n <td>Coefficienti della funzione obiettivo delle variabili fuori base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{F}`}</Latex></td>\n <td/>\n <td>Coefficienti dei vincoli delle variabili fuori base</td>\n </tr>\n </tbody>\n </TablePanel>\n <TablePanel>\n <thead>\n <tr>\n <th>Simboli</th>\n <th>Significato</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><Latex>{r`\\mathbf{c}^T \\mathbf{x}`}</Latex></td>\n <td>Soluzione del problema</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{A} \\mathbf{x} = \\mathbf{b}`}</Latex></td>\n <td>Vincoli in forma standard</td>\n </tr>\n <tr>\n <td><Latex>{r`z(\\dots)`}</Latex></td>\n <td>Funzione obiettivo</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{u}^T \\mathbf{b}`}</Latex></td>\n <td>Soluzione del problema duale</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{u}^T \\mathbf{A} = \\mathbf{c}^T`}</Latex></td>\n <td>Vincoli del problema duale in forma standard</td>\n </tr>\n </tbody>\n </TablePanel>\n </Section>\n </LatexDefaultInline.Provider>\n <Section title={\"Le basi\"}>\n <Panel title={\"Funzione obiettivo\"}>\n <p>\n La funzione obiettivo è la funzione con valore noto sconosciuto:\n </p>\n <p>\n <Latex>{r`z = C_1 \\cdot x_1 + C_2 \\cdot x_2 + C_n \\cdot x_n`}</Latex>\n </p>\n </Panel>\n </Section>\n <Section title={\"Problemi di ottimizzazione lineare\"}>\n <Panel title={\"Cosa sono?\"}>\n <p>\n I problemi di ottimizzazione lineare sono problemi che cercano di <Min>minimizzare</Min>/<Max>massimizzare</Max> il valore di una <i>funzione obiettivo</i> le cui incognite sono sottoposte a un <b>sistema di <i>vincoli</i></b>.\n </p>\n </Panel>\n <Panel title={\"Funzione obiettivo\"}>\n <p>\n La funzione da <Min>minimizzare</Min>/<Max>massimizzare</Max>.\n </p>\n <p>\n Il vettore dei suoi coefficienti è detto <Latex>{r`\\mathbf{c}`}</Latex>, mentre quello delle sue incognite <Latex>{r`\\mathbf{x}`}</Latex>.\n </p>\n </Panel>\n <Panel title={\"Vincoli\"}>\n <p>\n Equazioni e disequazioni a cui devono sottostare le incognite perchè esse formino una soluzione valida.\n </p>\n <p>\n I loro coefficienti sono contenuti nella matrice <Latex>{r`\\mathbf{A}`}</Latex>, mentre i loro termini noti nel vettore <Latex>{r`\\mathbf{b}`}</Latex>.\n </p>\n </Panel>\n <Panel title={\"Valore ottimo\"}>\n <p>\n La <b>soluzione</b> di un problema, ricavabile dal prodotto <Latex>{r`\\mathbf{c}^T \\mathbf{x}`}</Latex>.\n </p>\n <p>\n Spesso, la funzione obiettivo è indicata con il nome <Latex>{r`z(\\dots)`}</Latex>.\n </p>\n </Panel>\n <Panel title={\"Poliedro\"}>\n <p>\n L'<b>insieme</b> che racchiunde tutte le <b>soluzioni ammissibili</b> di un problema.\n </p>\n <p>\n In particolare, il valore ottimo è un <b>vertice</b> del poliedro, detto <i>vertice ottimo</i>.\n </p>\n <p>\n Può essere <i><Finite/></i>, <i><Empty/></i> oppure <i><Unbounded/></i>.\n </p>\n </Panel>\n <Panel title={\"Gradiente\"}>\n <p>\n <b>Funzione</b> della funzione obiettivo che restituisce la direzione del suo aumento più veloce.\n </p>\n <p>\n <Latex>{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`}</Latex>\n </p>\n <Example>\n La matrice <Latex>{r`\\mathbf{I}`}</Latex> è la matrice identità.\n </Example>\n <Example>\n Se la funzione obiettivo è <Latex>z = 2w + 3x + 4y</Latex>, il suo gradiente è <Latex>{r`\\nabla z = (2, 3, 4)`}</Latex>.\n </Example>\n </Panel>\n </Section>\n <Section title={\"Forme di un problema di ottimizzazione\"}>\n <Panel title={\"Forma generale\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><b>Equazioni e disequazioni</b></li>\n <li><b>Variabili non vincolate</b></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} = b,\\quad \\mathbf{A'} \\mathbf{x} \\geq \\mathbf{b'} \\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n <Panel title={\"Forma canonica\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><b>Solo disequazioni</b></li>\n <li><b>Vincoli di non-negatività sulle incognite</b></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} \\geq b,\\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n <Panel title={\"Forma standard\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><b>Solo equazioni</b></li>\n <li><b>Vincoli di non-negatività sulle incognite</b></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} = b,\\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n </Section>\n <Section title={\"Conversioni tra le forme\"}>\n <Panel title={\"Standard e generale\"}>\n <p>\n Applica questa conversione a ogni equazione nel sistema:\n </p>\n <p>\n <Latex inline={false}>{r`a = b \\Leftrightarrow\n \\begin{cases}\n a \\leq b\\\\\n a \\geq b\n \\end{cases}\n `}</Latex>\n </p>\n <Example>Serve solo nella teoria per dimostrare che le forme sono equivalenti.</Example>\n </Panel>\n <Panel title={\"Canonica e standard\"}>\n <p>\n Aggiungi una <i>variabile slack</i> <Latex>{r`s`}</Latex> <b>non-vincolata</b> a ogni disequazione nel sistema:\n </p>\n <p>\n <Latex inline={false}>{r`\n a \\leq b \\Leftrightarrow a + s = b\n `}</Latex>\n </p>\n <p>\n <Latex inline={false}>{r`\n a \\geq b \\Leftrightarrow a - s = b\n `}</Latex>\n </p>\n </Panel>\n <Panel title={\"Generale e canonica\"}>\n <p>\n Sdoppia ogni variabile non-vincolata in due variabili con vincolo di non-negatività:\n </p>\n <p>\n <Latex inline={false}>{r`\\begin{cases}\n a = a^+ - a^-\\\\\n a^+ \\geq 0\\\\\n a^- \\geq 0\n \\end{cases}`}</Latex>\n </p>\n </Panel>\n </Section>\n <Section title={\"La forma standard\"}>\n <Panel title={\"Tableau\"}>\n <p>\n Un modo per rappresentare sistemi in forma standard, anche noto come <b>matrice equivalente completa</b> del sistema.\n </p>\n <Example>\n Il sistema:<br/><br/>\n <Latex inline={false}>{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 `}</Latex><br/><br/>\n Diventa il tableau:<br/><br/>\n <table class={\"right\"}>\n <thead>\n <tr>\n <th><abbr title={\"Termine noto\"}>TN</abbr></th>\n <th><Latex>x_1</Latex></th>\n <th><Latex>x_2</Latex></th>\n <th><Latex>s_1</Latex></th>\n <th><Latex>s_2</Latex></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><Latex>z</Latex></td>\n <td><Latex>2000</Latex></td>\n <td><Latex>1000</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n <tr>\n <td><Latex>3</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n <tr>\n <td><Latex>3</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n </tr>\n <tr>\n <td><Latex>7</Latex></td>\n <td><Latex>2</Latex></td>\n <td><Latex>2</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n </tbody>\n </table>\n </Example>\n </Panel>\n <Panel title={\"Variabili nella base\"}>\n <p>\n Variabili che hanno <b>tutti 0 e un solo 1</b> nella loro colonna del tableau.\n </p>\n <p>\n La loro controparte sono le <i>variabili fuori base</i>, che hanno qualsiasi altro valore.\n </p>\n </Panel>\n </Section>\n <Section title={\"Simplex primale\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un algoritmo per <Min>minimizzare</Min>/<Max>massimizzare</Max> trovare efficientemente <b>valore ottimo</b> di problemi di ottimizzazione lineare, derivato da Gauss-Jordan.\n </p>\n <p>\n Da esso si può anche ricavare un <b>vertice ottimo ammissibile</b>.<br/>\n C'è la possibilità che ne esistano anche altri: quello ottenuto dipende da come è stata effettuata la scelta delle variabili entranti.\n </p>\n <Example>\n 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>.\n </Example>\n <Example title={\"Esempio\"}>\n <p>\n <a href={\"https://i.imgur.com/1r405Mb.jpg\"}>Questa</a> è la soluzione passo per passo del problema 3 del file <a href={\"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716\"}><code>Ex_LP_testo</code></a>.\n </p>\n </Example>\n </Panel>\n <Panel title={\"I passi\"}>\n <ol>\n <li>Trasforma il sistema in <b>forma standard</b>.</li>\n <li>Trova tante variabili <b>linearmente indipendenti</b> quante siano le righe: esse saranno la <i>base iniziale</i>.</li>\n <li>Finchè ci sono variabili con coefficienti <Min>positivi</Min>/<Max>negativi</Max> nella funzione obiettivo:\n <ol>\n <li>\n <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/>\n <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>\n </li>\n <li>\n <b>Scegli</b> la variabile in base con il minor rapporto positivo <Latex>{r`\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}`}</Latex>.\n <aside>Se non sei riuscito a trovare nessuna variabile con un rapporto positivo, significa che il poliedro è <Unbounded/>.</aside>\n </li>\n <li><u>Pivot</u>: <b>riscrivi</b> tutte le funzioni del sistema in termini della variabile entrante.</li>\n </ol>\n </li>\n <li>Il poliedro è <Finite/>: i <b>termini noti dei vincoli</b> sono le coordinate del suo vertice ottimo, mentre il <b>termine noto della funzione obiettivo</b> è il valore ottimo.</li>\n </ol>\n <Example>\n È praticamente l'algoritmo di Gauss-Jordan applicato al tableau, con delle regole aggiuntive per la decisione delle variabili di pivot.\n </Example>\n </Panel>\n <Panel title={\"Soluzioni di base degenerata\"}>\n <p>\n Una soluzione con almeno una variabile di valore <Latex>0</Latex>, dovuta a uno o più <b>vincoli ridondanti</b>.\n </p>\n <p>\n Senza <b>Regola di Bland</b> e in presenza di vincoli ridondanti si rischia di trovarsi a fare pivot infiniti.\n </p>\n </Panel>\n </Section>\n <Section title={\"Metodo delle due fasi\"}>\n <Panel title={\"Metodo delle due fasi\"}>\n <p>\n Un estensione del Simplex per permettere la risoluzione di problemi la cui origine non è una soluzione ammissibile.\n </p>\n <p>\n Prevede l'introduzione di un <i>problema ausiliario</i>, le cui incognite sono dette <i>artificiali</i>.\n </p>\n <p>\n Il vettore delle incognite artificiali è solitamente chiamato <Latex>{r`\\mathbf{y}`}</Latex>.\n </p>\n <Example>\n 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>.\n </Example>\n </Panel>\n <Panel title={\"Procedimento\"}>\n <ol>\n <li>Crea un nuovo tableau, <b>aggiungendo variabili artificiali</b> in modo da avere una base ammissibile.</li>\n <li>Sostituisci la vecchia funzione obiettivo con una nuova che <b>minimizzi la somma</b> di tutte le variabili artificiali.</li>\n <li><u>Fase 1</u>: <b>Risolvi</b> il nuovo problema con il simplex primale.</li>\n <li>Se il Simplex termina quando ci sono ancora <b>variabili artificiali nella base</b>, allora il poliedro è <b><Empty/></b>.</li>\n <li>Una volta che le variabili artificiali sono fuori base, <b>elimina</b> le loro colonne e la nuova funzione obiettivo.<br/></li>\n <li>Riporta il tableau in forma base compiendo operazioni per <b>azzerare i coefficienti</b> delle variabili di base nella funzione obiettivo.</li>\n <li><u>Fase 2</u>: <b>Risolvi</b> il tableau con il simplex primale.</li>\n </ol>\n </Panel>\n </Section>\n <Section title={\"Rilassamento\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Una versione semplificata di un problema nella quale si <b>ignora la violazione</b> di uno o più vincoli.\n </p>\n </Panel>\n <Panel title={\"Rilassamento di Lagrange\"}>\n <p>\n Un rilassamento che permette di misurare <b>di quanto i vincoli vengono violati</b>.\n </p>\n <p>\n I vincoli, moltiplicati per <b>coefficienti di rilassamento</b>, vengono inseriti nella funzione obiettivo.\n </p>\n <p>\n Il vettore dei coefficienti di rilassamento solitamente è indicato con <Latex>{r`\\mathbf{u}`}</Latex>.\n </p>\n <Example>\n <p>\n Il sistema:\n </p>\n <Latex inline={false}>{r`\n \\begin{cases}\n z = 3 x_1 + 5 x_2\\\\\n 2 x_1 + 3 x_2 \\geq 12\\\\\n - x_1 + 3 x_2 \\geq 3\\\\\n x_1 \\geq 0\\\\\n x_2 \\geq 0\n \\end{cases}\n `}</Latex>\n <p>\n diventa:\n </p>\n <Latex inline={false}>{r`\n \\begin{cases}\n z = 3 x_1 + 5 x_2 + u_1 ( 12 - 2 x_1 - 3 x_2 ) + u_2 ( 3 + x_1 - 3 x_2 )\\\\\n x_1 \\geq 0\\\\\n x_2 \\geq 0\n \\end{cases}\n `}</Latex>\n </Example>\n </Panel>\n </Section>\n <Section title={\"Dualità\"}>\n <Panel title={\"Duale\"}>\n <p>\n Il sistema che <b><Min>massimizza</Min>/<Max>minimizza</Max> i moltiplicatori di rilassamento</b> di un problema detto <i>primale</i>.\n </p>\n </Panel>\n <Panel title={\"In termini matriciali\"}>\n <p>\n Possiamo <b>trasporre</b> il tableau e sostituire le variabili <Latex>{r`x_n`}</Latex> con variabili <Latex>{r`u_n`}</Latex> per ottenere il sistema duale!\n </p>\n <p>\n I maggiori e minori dei vincoli diventeranno maggiori e minori delle variabili e viceversa.\n </p>\n </Panel>\n <Panel title={\"Feasibility del duale\"}>\n <ul>\n <li>Se un problema ha una <b>soluzione finita</b>, allora anche il suo duale la avrà.</li>\n <li>Se un problema è <b><Empty/></b>, allora il suo duale potrà essere <Empty/> oppure <Unbounded/>.</li>\n <li>Se un problema è <b><Unbounded/></b>, allora il suo duale sarà certamente <Empty/>.</li>\n </ul>\n </Panel>\n </Section>\n <Section title={\"Un po' di teoria\"}>\n <Panel title={\"Lemma di Farkas\"}>\n <p>\n Una disuguaglianza lineare <Latex>{r`c_0 \\leq \\mathbf{c}^T \\mathbf{x}`}</Latex> è verificata da 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:\n </p>\n <PLatex>{r`\\mathbf{c}^T \\geq \\mathbf{u}^T \\mathbf{A}`}</PLatex>\n <PLatex>{r`c_0 \\leq \\mathbf{u}^T \\mathbf{b}`}</PLatex>\n <p>\n <Todo>TODO: Cioè?</Todo>\n </p>\n </Panel>\n <Panel title={\"Dualità forte\"}>\n <p>\n Il teorema che dimostra l'equivalenza tra primale e duale.\n </p>\n <p>\n Se uno dei due problemi è finito, la soluzione di uno coincide con la soluzione dell'altro.\n </p>\n <p>\n <Latex>{r`\\mathbf{c}^T \\mathbf{x} = \\mathbf{u}^T \\mathbf{b}`}</Latex>\n </p>\n <p>\n <Todo>TODO: Anche qui c'è una lunga dimostrazione...</Todo>\n </p>\n </Panel>\n <Panel title={\"Dualità debole\"}>\n <p>\n Il teorema che dimostra che il valore della funzione obiettivo del duale (di un qualsiasi tableau) è sempre <Min>minore o uguale</Min>/<Max>maggiore o uguale</Max> alla soluzione del corrispettivo primale.\n </p>\n <p>\n <Todo>TODO: Dimostrazione cortina, ma sembra complicata.</Todo>\n </p>\n </Panel>\n <Panel title={\"Condizioni di ottimalità\"}>\n <p>\n Il teorema che ci permette di passare dalla soluzione del duale alla soluzione del primale. <Todo>TODO: credo?</Todo>\n </p>\n <p>\n Si deriva combinando le seguenti condizioni:\n </p>\n <ul>\n <li>Ammissibilità del primale: <Latex>{r`\\mathbf{A} \\mathbf{X} \\geq \\mathbf{b}, \\quad \\mathbf{x} \\geq 0`}</Latex></li>\n <li>Ammissibilità del duale: <Latex>{r`\\mathbf{u}^T \\mathbf{A} \\leq \\mathbf{c}^T, \\quad \\mathbf{u} \\geq 0`}</Latex></li>\n <li>Teorema della dualità forte: <Latex>{r`\\mathbf{c}^T \\mathbf{x} = \\mathbf{u}^T \\mathbf{b}`}</Latex> (alla soluzione ottima)</li>\n </ul>\n <p>\n Ne risulta che una soluzione è ottima se e solo se:\n </p>\n <PLatex>{r`\\left( \\mathbf{c}^T - \\mathbf{u}^T \\mathbf{A} \\right) \\mathbf{x} = 0`}</PLatex>\n <PLatex>{r`\\mathbf{u}^T \\left( \\mathbf{A} \\mathbf{x} - \\mathbf{b} \\right) = 0`}</PLatex>\n </Panel>\n </Section>\n <Section title={\"Simplex duale\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un'estensione al Simplex primale che opera sul problema duale.\n </p>\n </Panel>\n <Panel title={\"Come funziona?\"}>\n <p>\n Funziona esattamente come il Simplex primale, ma opera sulle righe invece che sulle colonne, cercando di rendere <Min>positivi</Min>/<Max>negativi</Max> tutti i termini noti.\n </p>\n <Example>\n Significa che si possono moltiplicare tutti i valori di una riga per lo stesso numero e il risultato non cambia...?\n </Example>\n </Panel>\n </Section>\n <Section title={\"Analisi di sensibilità\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un procedimento che misura di <b>quanto può variare</b> il termine noto di un vincolo <Latex>{r`b_i`}</Latex> o il coefficiente della funzione obiettivo <Latex>{r`c_i`}</Latex> prima che la base degeneri. <Todo>TODO: verificare</Todo>\n </p>\n </Panel>\n </Section>\n </div>\n )\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"splitparent\":\"splitparent__3-wBs\",\"splitchild\":\"splitchild__begkX\"};","import style from \"./Panel.less\";\nimport Box from \"./Box\";\n\nexport default function(props) {\n\treturn (\n\t\t<Box color={props.color}>\n\t\t\t<h3 class={style.title}>\n\t\t\t\t{props.title}\n\t\t\t</h3>\n\t\t\t<div class={style.contents}>\n\t\t\t\t{props.children}\n\t\t\t</div>\n\t\t</Box>\n\t);\n}\n","import {createContext} from \"preact\";\n\nexport default createContext(true);\n","import Latex, {LatexDisplay} from \"./Latex\";\n\nexport default function (props) {\n return (\n <Latex inline={false} display={LatexDisplay.BLOCK}>{props.children}</Latex>\n );\n}\n"],"sourceRoot":""}