{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "9bc055d8",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/lib/python3/dist-packages/sage/misc/remote_file.py:46: DeprecationWarning: ssl.SSLContext() without protocol argument is deprecated.\n",
" content = urlopen(req, timeout=1, context=SSLContext())\n",
"/usr/lib/python3/dist-packages/sage/misc/remote_file.py:46: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated\n",
" content = urlopen(req, timeout=1, context=SSLContext())\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
"\\begin{array}{lcrcrcrcrcl}\n",
" \\max \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 150 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 350 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 250 x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 500 x_{4} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 3 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 5 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 6 x_{4} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 260 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} x_{1} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{2} x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{4} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 102 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 2 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 3 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{3}{2} x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{5}{2} x_{4} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 200 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} x_{1} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 13 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 10 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 10 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} x_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 7 \\\\\n",
"\\end{array} \\\\\n",
"x_{1}, x_{2}, x_{3}, x_{4} \\geq 0\n",
"\\end{array}$$"
],
"text/plain": [
"LP problem (use 'view(...)' or '%display typeset' for details)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}18800$$"
],
"text/plain": [
"18800"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(13,\\,11,\\,10,\\,21\\right)$$"
],
"text/plain": [
"(13, 11, 10, 21)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
],
"text/plain": [
"salto"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}$$"
],
"text/plain": [
"dual"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
"\\begin{array}{lcrcrcrcrcrcrcrcl}\n",
" \\min \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 260 y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 102 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 200 y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 13 y_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10 y_{5} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10 y_{6} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 7 y_{7} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 3 y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 150 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 5 y_{1} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 3 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} y_{5} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 350 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 4 y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{2} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{3}{2} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} y_{6} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 250 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 6 y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{5}{2} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} y_{7} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 500 \\\\\n",
"\\end{array} \\\\\n",
"y_{1} \\geq 0,\\ y_{2} \\geq 0,\\ y_{3} \\geq 0,\\ y_{4} \\leq 0,\\ y_{5} \\leq 0,\\ y_{6} \\leq 0,\\ y_{7} \\leq 0\n",
"\\end{array}$$"
],
"text/plain": [
"LP problem (use 'view(...)' or '%display typeset' for details)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}18800$$"
],
"text/plain": [
"18800"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(70,\\,20,\\,0,\\,-80,\\,0,\\,-40,\\,0\\right)$$"
],
"text/plain": [
"(70, 20, 0, -80, 0, -40, 0)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
],
"text/plain": [
"salto"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\ \\ \\ Fase\\ I}$$"
],
"text/plain": [
"FI"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {\\color{red}{t}}_{4} & {\\color{red}{t}}_{5} & {\\color{red}{t}}_{6} & {\\color{red}{t}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & 3 & 5 & 4 & 6 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 260 \\\\\n",
"{\\color{green}{s}}_{2} & 1 & 0 & \\frac{1}{2} & 4 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 102 \\\\\n",
"{\\color{green}{s}}_{3} & 2 & 3 & \\frac{3}{2} & \\frac{5}{2} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 200 \\\\\n",
"{\\color{red}{t}}_{4} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 13 \\\\\n",
"{\\color{red}{t}}_{5} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 10 \\\\\n",
"{\\color{red}{t}}_{6} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 10 \\\\\n",
"{\\color{red}{t}}_{7} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 7 \\\\\n",
"\\hline\n",
" {W_{ind}} & -1 & -1 & -1 & -1 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 40\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7 t4 t5 t6 t7|rhs]\n",
"[---+-----------------------------------------------------------+---]\n",
"[ s1| 3 5 4 6 1 0 0 0 0 0 0 0 0 0 0|260]\n",
"[ s2| 1 0 1/2 4 0 1 0 0 0 0 0 0 0 0 0|102]\n",
"[ s3| 2 3 3/2 5/2 0 0 1 0 0 0 0 0 0 0 0|200]\n",
"[ t4| 1 0 0 0 0 0 0 -1 0 0 0 1 0 0 0| 13]\n",
"[ t5| 0 1 0 0 0 0 0 0 -1 0 0 0 1 0 0| 10]\n",
"[ t6| 0 0 1 0 0 0 0 0 0 -1 0 0 0 1 0| 10]\n",
"[ t7| 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 1| 7]\n",
"[---+-----------------------------------------------------------+---]\n",
"[ W| -1 -1 -1 -1 0 0 0 1 1 1 1 0 0 0 0| 40]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cambio( 4 , 1 )\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {\\color{red}{t}}_{4} & {\\color{red}{t}}_{5} & {\\color{red}{t}}_{6} & {\\color{red}{t}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & 0 & 5 & 4 & 6 & 1 & 0 & 0 & 3 & 0 & 0 & 0 & -3 & 0 & 0 & 0 & 221 \\\\\n",
"{\\color{green}{s}}_{2} & 0 & 0 & \\frac{1}{2} & 4 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 89 \\\\\n",
"{\\color{green}{s}}_{3} & 0 & 3 & \\frac{3}{2} & \\frac{5}{2} & 0 & 0 & 1 & 2 & 0 & 0 & 0 & -2 & 0 & 0 & 0 & 174 \\\\\n",
"{x}_{1} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 13 \\\\\n",
"{\\color{red}{t}}_{5} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 10 \\\\\n",
"{\\color{red}{t}}_{6} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 10 \\\\\n",
"{\\color{red}{t}}_{7} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 7 \\\\\n",
"\\hline\n",
" {W_{ind}} & 0 & -1 & -1 & -1 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 27\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7 t4 t5 t6 t7|rhs]\n",
"[---+-----------------------------------------------------------+---]\n",
"[ s1| 0 5 4 6 1 0 0 3 0 0 0 -3 0 0 0|221]\n",
"[ s2| 0 0 1/2 4 0 1 0 1 0 0 0 -1 0 0 0| 89]\n",
"[ s3| 0 3 3/2 5/2 0 0 1 2 0 0 0 -2 0 0 0|174]\n",
"[ x1| 1 0 0 0 0 0 0 -1 0 0 0 1 0 0 0| 13]\n",
"[ t5| 0 1 0 0 0 0 0 0 -1 0 0 0 1 0 0| 10]\n",
"[ t6| 0 0 1 0 0 0 0 0 0 -1 0 0 0 1 0| 10]\n",
"[ t7| 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 1| 7]\n",
"[---+-----------------------------------------------------------+---]\n",
"[ W| 0 -1 -1 -1 0 0 0 0 1 1 1 1 0 0 0| 27]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cambio( 5 , 2 )\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {\\color{red}{t}}_{4} & {\\color{red}{t}}_{5} & {\\color{red}{t}}_{6} & {\\color{red}{t}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & 0 & 0 & 4 & 6 & 1 & 0 & 0 & 3 & 5 & 0 & 0 & -3 & -5 & 0 & 0 & 171 \\\\\n",
"{\\color{green}{s}}_{2} & 0 & 0 & \\frac{1}{2} & 4 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 89 \\\\\n",
"{\\color{green}{s}}_{3} & 0 & 0 & \\frac{3}{2} & \\frac{5}{2} & 0 & 0 & 1 & 2 & 3 & 0 & 0 & -2 & -3 & 0 & 0 & 144 \\\\\n",
"{x}_{1} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 13 \\\\\n",
"{x}_{2} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 10 \\\\\n",
"{\\color{red}{t}}_{6} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 10 \\\\\n",
"{\\color{red}{t}}_{7} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 7 \\\\\n",
"\\hline\n",
" {W_{ind}} & 0 & 0 & -1 & -1 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 & 17\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7 t4 t5 t6 t7|rhs]\n",
"[---+-----------------------------------------------------------+---]\n",
"[ s1| 0 0 4 6 1 0 0 3 5 0 0 -3 -5 0 0|171]\n",
"[ s2| 0 0 1/2 4 0 1 0 1 0 0 0 -1 0 0 0| 89]\n",
"[ s3| 0 0 3/2 5/2 0 0 1 2 3 0 0 -2 -3 0 0|144]\n",
"[ x1| 1 0 0 0 0 0 0 -1 0 0 0 1 0 0 0| 13]\n",
"[ x2| 0 1 0 0 0 0 0 0 -1 0 0 0 1 0 0| 10]\n",
"[ t6| 0 0 1 0 0 0 0 0 0 -1 0 0 0 1 0| 10]\n",
"[ t7| 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 1| 7]\n",
"[---+-----------------------------------------------------------+---]\n",
"[ W| 0 0 -1 -1 0 0 0 0 0 1 1 1 1 0 0| 17]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cambio( 6 , 3 )\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {\\color{red}{t}}_{4} & {\\color{red}{t}}_{5} & {\\color{red}{t}}_{6} & {\\color{red}{t}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & 0 & 0 & 0 & 6 & 1 & 0 & 0 & 3 & 5 & 4 & 0 & -3 & -5 & -4 & 0 & 131 \\\\\n",
"{\\color{green}{s}}_{2} & 0 & 0 & 0 & 4 & 0 & 1 & 0 & 1 & 0 & \\frac{1}{2} & 0 & -1 & 0 & -\\frac{1}{2} & 0 & 84 \\\\\n",
"{\\color{green}{s}}_{3} & 0 & 0 & 0 & \\frac{5}{2} & 0 & 0 & 1 & 2 & 3 & \\frac{3}{2} & 0 & -2 & -3 & -\\frac{3}{2} & 0 & 129 \\\\\n",
"{x}_{1} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 13 \\\\\n",
"{x}_{2} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 10 \\\\\n",
"{x}_{3} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 10 \\\\\n",
"{\\color{red}{t}}_{7} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 7 \\\\\n",
"\\hline\n",
" {W_{ind}} & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 7\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7 t4 t5 t6 t7| rhs]\n",
"[----+--------------------------------------------------------------------------+----]\n",
"[ s1| 0 0 0 6 1 0 0 3 5 4 0 -3 -5 -4 0| 131]\n",
"[ s2| 0 0 0 4 0 1 0 1 0 1/2 0 -1 0 -1/2 0| 84]\n",
"[ s3| 0 0 0 5/2 0 0 1 2 3 3/2 0 -2 -3 -3/2 0| 129]\n",
"[ x1| 1 0 0 0 0 0 0 -1 0 0 0 1 0 0 0| 13]\n",
"[ x2| 0 1 0 0 0 0 0 0 -1 0 0 0 1 0 0| 10]\n",
"[ x3| 0 0 1 0 0 0 0 0 0 -1 0 0 0 1 0| 10]\n",
"[ t7| 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 1| 7]\n",
"[----+--------------------------------------------------------------------------+----]\n",
"[ W| 0 0 0 -1 0 0 0 0 0 0 1 1 1 1 0| 7]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cambio( 7 , 4 )\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {\\color{red}{t}}_{4} & {\\color{red}{t}}_{5} & {\\color{red}{t}}_{6} & {\\color{red}{t}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 3 & 5 & 4 & 6 & -3 & -5 & -4 & -6 & 89 \\\\\n",
"{\\color{green}{s}}_{2} & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & \\frac{1}{2} & 4 & -1 & 0 & -\\frac{1}{2} & -4 & 56 \\\\\n",
"{\\color{green}{s}}_{3} & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 3 & \\frac{3}{2} & \\frac{5}{2} & -2 & -3 & -\\frac{3}{2} & -\\frac{5}{2} & \\frac{223}{2} \\\\\n",
"{x}_{1} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 13 \\\\\n",
"{x}_{2} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 10 \\\\\n",
"{x}_{3} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 10 \\\\\n",
"{x}_{4} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 7 \\\\\n",
"\\hline\n",
" {W_{ind}} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 0\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7 t4 t5 t6 t7| rhs]\n",
"[-----+-----------------------------------------------------------------------------------------+-----]\n",
"[ s1| 0 0 0 0 1 0 0 3 5 4 6 -3 -5 -4 -6| 89]\n",
"[ s2| 0 0 0 0 0 1 0 1 0 1/2 4 -1 0 -1/2 -4| 56]\n",
"[ s3| 0 0 0 0 0 0 1 2 3 3/2 5/2 -2 -3 -3/2 -5/2|223/2]\n",
"[ x1| 1 0 0 0 0 0 0 -1 0 0 0 1 0 0 0| 13]\n",
"[ x2| 0 1 0 0 0 0 0 0 -1 0 0 0 1 0 0| 10]\n",
"[ x3| 0 0 1 0 0 0 0 0 0 -1 0 0 0 1 0| 10]\n",
"[ x4| 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 1| 7]\n",
"[-----+-----------------------------------------------------------------------------------------+-----]\n",
"[ W| 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1| 0]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"El problema de la fase I es óptimo y Wopt=0. Por tanto, el original es factible\n",
"Preparemos el cuadro inicial de la fase II\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\ \\ \\ Fase\\ II}$$"
],
"text/plain": [
"FII"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 3 & 5 & 4 & 6 & 89 \\\\\n",
"{\\color{green}{s}}_{2} & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & \\frac{1}{2} & 4 & 56 \\\\\n",
"{\\color{green}{s}}_{3} & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 3 & \\frac{3}{2} & \\frac{5}{2} & \\frac{223}{2} \\\\\n",
"{x}_{1} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 13 \\\\\n",
"{x}_{2} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 10 \\\\\n",
"{x}_{3} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 10 \\\\\n",
"{x}_{4} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 7 \\\\\n",
"\\hline\n",
" {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 150 & 350 & 250 & 500 & 11450\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7| rhs]\n",
"[-----+-----------------------------------------------------------------+-----]\n",
"[ s1| 0 0 0 0 1 0 0 3 5 4 6| 89]\n",
"[ s2| 0 0 0 0 0 1 0 1 0 1/2 4| 56]\n",
"[ s3| 0 0 0 0 0 0 1 2 3 3/2 5/2|223/2]\n",
"[ x1| 1 0 0 0 0 0 0 -1 0 0 0| 13]\n",
"[ x2| 0 1 0 0 0 0 0 0 -1 0 0| 10]\n",
"[ x3| 0 0 1 0 0 0 0 0 0 -1 0| 10]\n",
"[ x4| 0 0 0 1 0 0 0 0 0 0 -1| 7]\n",
"[-----+-----------------------------------------------------------------+-----]\n",
"[ Z| 0 0 0 0 0 0 0 150 350 250 500|11450]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cambio( 2 , 11 )\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & 0 & 0 & 0 & 0 & 1 & -\\frac{3}{2} & 0 & \\frac{3}{2} & 5 & \\frac{13}{4} & 0 & 5 \\\\\n",
"{\\color{green}{s}}_{7} & 0 & 0 & 0 & 0 & 0 & \\frac{1}{4} & 0 & \\frac{1}{4} & 0 & \\frac{1}{8} & 1 & 14 \\\\\n",
"{\\color{green}{s}}_{3} & 0 & 0 & 0 & 0 & 0 & -\\frac{5}{8} & 1 & \\frac{11}{8} & 3 & \\frac{19}{16} & 0 & \\frac{153}{2} \\\\\n",
"{x}_{1} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 13 \\\\\n",
"{x}_{2} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 10 \\\\\n",
"{x}_{3} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 10 \\\\\n",
"{x}_{4} & 0 & 0 & 0 & 1 & 0 & \\frac{1}{4} & 0 & \\frac{1}{4} & 0 & \\frac{1}{8} & 0 & 21 \\\\\n",
"\\hline\n",
" {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -125 & 0 & 25 & 350 & \\frac{375}{2} & 0 & 18450\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7| rhs]\n",
"[-----+-----------------------------------------------------------------+-----]\n",
"[ s1| 0 0 0 0 1 -3/2 0 3/2 5 13/4 0| 5]\n",
"[ s7| 0 0 0 0 0 1/4 0 1/4 0 1/8 1| 14]\n",
"[ s3| 0 0 0 0 0 -5/8 1 11/8 3 19/16 0|153/2]\n",
"[ x1| 1 0 0 0 0 0 0 -1 0 0 0| 13]\n",
"[ x2| 0 1 0 0 0 0 0 0 -1 0 0| 10]\n",
"[ x3| 0 0 1 0 0 0 0 0 0 -1 0| 10]\n",
"[ x4| 0 0 0 1 0 1/4 0 1/4 0 1/8 0| 21]\n",
"[-----+-----------------------------------------------------------------+-----]\n",
"[ Z| 0 0 0 0 0 -125 0 25 350 375/2 0|18450]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cambio( 1 , 9 )\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{5} & 0 & 0 & 0 & 0 & \\frac{1}{5} & -\\frac{3}{10} & 0 & \\frac{3}{10} & 1 & \\frac{13}{20} & 0 & 1 \\\\\n",
"{\\color{green}{s}}_{7} & 0 & 0 & 0 & 0 & 0 & \\frac{1}{4} & 0 & \\frac{1}{4} & 0 & \\frac{1}{8} & 1 & 14 \\\\\n",
"{\\color{green}{s}}_{3} & 0 & 0 & 0 & 0 & -\\frac{3}{5} & \\frac{11}{40} & 1 & \\frac{19}{40} & 0 & -\\frac{61}{80} & 0 & \\frac{147}{2} \\\\\n",
"{x}_{1} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 13 \\\\\n",
"{x}_{2} & 0 & 1 & 0 & 0 & \\frac{1}{5} & -\\frac{3}{10} & 0 & \\frac{3}{10} & 0 & \\frac{13}{20} & 0 & 11 \\\\\n",
"{x}_{3} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 10 \\\\\n",
"{x}_{4} & 0 & 0 & 0 & 1 & 0 & \\frac{1}{4} & 0 & \\frac{1}{4} & 0 & \\frac{1}{8} & 0 & 21 \\\\\n",
"\\hline\n",
" {Z_{ind}} & 0 & 0 & 0 & 0 & -70 & -20 & 0 & -80 & 0 & -40 & 0 & 18800\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7| rhs]\n",
"[------+----------------------------------------------------------------------------+------]\n",
"[ s5| 0 0 0 0 1/5 -3/10 0 3/10 1 13/20 0| 1]\n",
"[ s7| 0 0 0 0 0 1/4 0 1/4 0 1/8 1| 14]\n",
"[ s3| 0 0 0 0 -3/5 11/40 1 19/40 0 -61/80 0| 147/2]\n",
"[ x1| 1 0 0 0 0 0 0 -1 0 0 0| 13]\n",
"[ x2| 0 1 0 0 1/5 -3/10 0 3/10 0 13/20 0| 11]\n",
"[ x3| 0 0 1 0 0 0 0 0 0 -1 0| 10]\n",
"[ x4| 0 0 0 1 0 1/4 0 1/4 0 1/8 0| 21]\n",
"[------+----------------------------------------------------------------------------+------]\n",
"[ Z| 0 0 0 0 -70 -20 0 -80 0 -40 0| 18800]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"El problema es óptimo\n"
]
}
],
"source": [
"tipo='max' # max o min\n",
"\n",
"n=4 # número de variables x's\n",
"m=7 # número de restricciones (distintas de las de signo)\n",
"\n",
"c=matrix(QQ,1,n,[150,350,250,500] ) # vector de costos\n",
"\n",
"A=matrix(QQ,m,n,[ # coeficientes de las variables x's\n",
"[3,5,4,6],\n",
"[1,0,0.5,4],\n",
"[2,3,3/2,5/2],\n",
"[1,0,0,0],\n",
"[0,1,0,0],\n",
"[0,0,1,0],\n",
"[0,0,0,1]\n",
"])\n",
"\n",
"b=matrix(QQ,m,1,[260,102,200,13,10,10,7]) # vector de la derecha\n",
"\n",
"\n",
"h=matrix(ZZ,1,m,[1,1,1,-1,-1,-1,-1]) # variables de holgura: \n",
" # Pon 1 si va sumando, \n",
" # -1 si va restando y \n",
" # 0 si no hay variable de holgura.\n",
"#######################################################\n",
"\n",
"\n",
"\n",
"load('https://sage.unex.es/501708/simplex2023Auto.sage')\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "f7f09020",
"metadata": {},
"source": [
"El carpintero pretende adquirir simultáneamente madera y tela.\n",
"\n",
"Para ello resolvemos el problema doble paramétrico $\n",
"\\mathcal{P(\\lambda,\\mu)}: \\quad max \\;\\; \\text{z(x)},\\quad \\text{s.a.:} \\quad Ax=b+\\lambda b_{1p}+\\mu b_{2p}, \\quad x\\geq 0\n",
"$\n",
"\n",
"Dado que queremos adquirir madera y tela, los dos parámetros han de ser no negativos"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "7c54b7d7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrrrr|rrr}\n",
"{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {b} & {b_1} & {b_2} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{5} & 0 & 0 & 0 & 0 & \\frac{1}{5} & -\\frac{3}{10} & 0 & \\frac{3}{10} & 1 & \\frac{13}{20} & 0 & 1 & \\frac{1}{5} & -\\frac{3}{10} \\\\\n",
"{\\color{green}{s}}_{7} & 0 & 0 & 0 & 0 & 0 & \\frac{1}{4} & 0 & \\frac{1}{4} & 0 & \\frac{1}{8} & 1 & 14 & 0 & \\frac{1}{4} \\\\\n",
"{\\color{green}{s}}_{3} & 0 & 0 & 0 & 0 & -\\frac{3}{5} & \\frac{11}{40} & 1 & \\frac{19}{40} & 0 & -\\frac{61}{80} & 0 & \\frac{147}{2} & -\\frac{3}{5} & \\frac{11}{40} \\\\\n",
"{x}_{1} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 13 & 0 & 0 \\\\\n",
"{x}_{2} & 0 & 1 & 0 & 0 & \\frac{1}{5} & -\\frac{3}{10} & 0 & \\frac{3}{10} & 0 & \\frac{13}{20} & 0 & 11 & \\frac{1}{5} & -\\frac{3}{10} \\\\\n",
"{x}_{3} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 10 & 0 & 0 \\\\\n",
"{x}_{4} & 0 & 0 & 0 & 1 & 0 & \\frac{1}{4} & 0 & \\frac{1}{4} & 0 & \\frac{1}{8} & 0 & 21 & 0 & \\frac{1}{4} \\\\\n",
"\\hline\n",
" {Z_{ind}} & 0 & 0 & 0 & 0 & -70 & -20 & 0 & -80 & 0 & -40 & 0 & 18800 & 70 & 20\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 x3 x4 s1 s2 s3 s4 s5 s6 s7| rhs rhs1 rhs2]\n",
"[------+----------------------------------------------------------------------------+--------------------]\n",
"[ s5| 0 0 0 0 1/5 -3/10 0 3/10 1 13/20 0| 1 1/5 -3/10]\n",
"[ s7| 0 0 0 0 0 1/4 0 1/4 0 1/8 1| 14 0 1/4]\n",
"[ s3| 0 0 0 0 -3/5 11/40 1 19/40 0 -61/80 0| 147/2 -3/5 11/40]\n",
"[ x1| 1 0 0 0 0 0 0 -1 0 0 0| 13 0 0]\n",
"[ x2| 0 1 0 0 1/5 -3/10 0 3/10 0 13/20 0| 11 1/5 -3/10]\n",
"[ x3| 0 0 1 0 0 0 0 0 0 -1 0| 10 0 0]\n",
"[ x4| 0 0 0 1 0 1/4 0 1/4 0 1/8 0| 21 0 1/4]\n",
"[------+----------------------------------------------------------------------------+--------------------]\n",
"[ Z| 0 0 0 0 -70 -20 0 -80 0 -40 0| 18800 70 20]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"b1p=matrix(QQ,m,1,[1,0,0,0,0,0,0]); b2p=matrix(QQ,m,1,[0,1,0,0,0,0,0]); param2b(b1p,b2p)"
]
},
{
"cell_type": "markdown",
"id": "7b6d065e",
"metadata": {},
"source": [
"¿Para qué valores de los parámetros $\\lambda$ y $\\mu$ es óptimo este cuadro?"
]
},
{
"cell_type": "markdown",
"id": "81e1cb96",
"metadata": {},
"source": [
"Resolvamos el sistema de inecuaciones: \n",
"$$\n",
"1 + 1/5\\lambda -3/10 \\mu \\geq 0 \\\\\n",
"14 + 1/4 \\mu \\geq 0 \\\\\n",
"147/2 - 3/5\\lambda + 11/40 \\mu \\geq 0 \\\\\n",
"13 \\geq 0 \\\\\n",
"11 + 1/5\\lambda -3/10 \\mu \\geq 0 \\\\\n",
"10 \\geq 0\\\\\n",
"21 + 1/4 \\mu \\geq 0\\\\\n",
"\\lambda \\geq 0\\\\\n",
"\\mu \\geq 0\n",
"$$\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "9c7e1c00",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 2 graphics primitives"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = var('x'); y = var('y')\n",
"region_plot(\n",
"[\n",
"1 + 1/5*x -3/10*y >= 0,\n",
"14 + 1/4* y >= 0, \n",
"147/2 - 3/5* x + 11/40*y >= 0,\n",
"11 + 1/5*x -3/10*y>= 0,\n",
"21 + 1/4*y >= 0,\n",
"x >=0,\n",
"y >= 0\n",
"]\n",
" , (x,0,300), (y,0,300),\n",
" incol='lightblue', bordercol='gray', plot_points=200)"
]
},
{
"cell_type": "markdown",
"id": "eec8bd20",
"metadata": {},
"source": [
"https://www.geogebra.org/calculator/nttcje4t"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "3d5601e1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{rr}\n",
"\\frac{1}{5} & -\\frac{3}{10} \\\\\n",
"0 & \\frac{1}{4} \\\\\n",
"-\\frac{3}{5} & \\frac{11}{40} \\\\\n",
"0 & 0 \\\\\n",
"\\frac{1}{5} & -\\frac{3}{10} \\\\\n",
"0 & 0 \\\\\n",
"0 & \\frac{1}{4}\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ 1/5 -3/10]\n",
"[ 0 1/4]\n",
"[ -3/5 11/40]\n",
"[ 0 0]\n",
"[ 1/5 -3/10]\n",
"[ 0 0]\n",
"[ 0 1/4]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show(b[:,[1..2]])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "e2a16e83",
"metadata": {},
"outputs": [],
"source": [
"bb=b ## Hacemos esto para no tener problema con la siguiente celdilla en el caso de que tuviéramos que ejecutarla varias veces"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "2fc35648",
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
"\\begin{array}{lcrcrcl}\n",
" \\max \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 70 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 20 x_{2} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{5} x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{3}{10} x_{2} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{4} x_{2} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 14 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\frac{3}{5} x_{1} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{11}{40} x_{2} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} \\frac{147}{2} \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 0 \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 13 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{5} x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{3}{10} x_{2} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 11 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} 0 \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 10 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{4} x_{2} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 21 \\\\\n",
"\\end{array} \\\\\n",
"x_{1}, x_{2} \\geq 0\n",
"\\end{array}$$"
],
"text/plain": [
"LP problem (use 'view(...)' or '%display typeset' for details)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}14950$$"
],
"text/plain": [
"14950"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\frac{893}{5},\\,\\frac{612}{5}\\right)$$"
],
"text/plain": [
"(893/5, 612/5)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
],
"text/plain": [
"salto"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}$$"
],
"text/plain": [
"dual"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
"\\begin{array}{lcrcrcrcrcrcrcrcl}\n",
" \\min \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 14 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{147}{2} y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 13 y_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 11 y_{5} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10 y_{6} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 21 y_{7} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{5} y_{1} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{3}{5} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{5} y_{5} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 70 \\\\\n",
" \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\frac{3}{10} y_{1} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{4} y_{2} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{11}{40} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} \\frac{3}{10} y_{5} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} \\frac{1}{4} y_{7} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 20 \\\\\n",
"\\end{array} \\\\\n",
"y_{1}, y_{2}, y_{3}, y_{4}, y_{5}, y_{6}, y_{7} \\geq 0\n",
"\\end{array}$$"
],
"text/plain": [
"LP problem (use 'view(...)' or '%display typeset' for details)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}14950$$"
],
"text/plain": [
"14950"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(250,\\,0,\\,200,\\,0,\\,0,\\,0,\\,0\\right)$$"
],
"text/plain": [
"(250, 0, 200, 0, 0, 0, 0)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
],
"text/plain": [
"salto"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
],
"text/plain": [
"ry"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & -\\frac{1}{5} & \\frac{3}{10} & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\\\\n",
"{\\color{green}{s}}_{2} & 0 & -\\frac{1}{4} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 14 \\\\\n",
"{\\color{green}{s}}_{3} & \\frac{3}{5} & -\\frac{11}{40} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & \\frac{147}{2} \\\\\n",
"{\\color{green}{s}}_{4} & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 13 \\\\\n",
"{\\color{green}{s}}_{5} & -\\frac{1}{5} & \\frac{3}{10} & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 11 \\\\\n",
"{\\color{green}{s}}_{6} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 10 \\\\\n",
"{\\color{green}{s}}_{7} & 0 & -\\frac{1}{4} & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 21 \\\\\n",
"\\hline\n",
" {Z_{ind}} & 70 & 20 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 s1 s2 s3 s4 s5 s6 s7| rhs]\n",
"[------+--------------------------------------------------------------+------]\n",
"[ s1| -1/5 3/10 1 0 0 0 0 0 0| 1]\n",
"[ s2| 0 -1/4 0 1 0 0 0 0 0| 14]\n",
"[ s3| 3/5 -11/40 0 0 1 0 0 0 0| 147/2]\n",
"[ s4| 0 0 0 0 0 1 0 0 0| 13]\n",
"[ s5| -1/5 3/10 0 0 0 0 1 0 0| 11]\n",
"[ s6| 0 0 0 0 0 0 0 1 0| 10]\n",
"[ s7| 0 -1/4 0 0 0 0 0 0 1| 21]\n",
"[------+--------------------------------------------------------------+------]\n",
"[ Z| 70 20 0 0 0 0 0 0 0| 0]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cambio( 3 , 1 )\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {b} \\\\\n",
"\\hline\n",
" {\\color{green}{s}}_{1} & 0 & \\frac{5}{24} & 1 & 0 & \\frac{1}{3} & 0 & 0 & 0 & 0 & \\frac{51}{2} \\\\\n",
"{\\color{green}{s}}_{2} & 0 & -\\frac{1}{4} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 14 \\\\\n",
"{x}_{1} & 1 & -\\frac{11}{24} & 0 & 0 & \\frac{5}{3} & 0 & 0 & 0 & 0 & \\frac{245}{2} \\\\\n",
"{\\color{green}{s}}_{4} & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 13 \\\\\n",
"{\\color{green}{s}}_{5} & 0 & \\frac{5}{24} & 0 & 0 & \\frac{1}{3} & 0 & 1 & 0 & 0 & \\frac{71}{2} \\\\\n",
"{\\color{green}{s}}_{6} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 10 \\\\\n",
"{\\color{green}{s}}_{7} & 0 & -\\frac{1}{4} & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 21 \\\\\n",
"\\hline\n",
" {Z_{ind}} & 0 & \\frac{625}{12} & 0 & 0 & -\\frac{350}{3} & 0 & 0 & 0 & 0 & 8575\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 s1 s2 s3 s4 s5 s6 s7| rhs]\n",
"[------+--------------------------------------------------------------+------]\n",
"[ s1| 0 5/24 1 0 1/3 0 0 0 0| 51/2]\n",
"[ s2| 0 -1/4 0 1 0 0 0 0 0| 14]\n",
"[ x1| 1 -11/24 0 0 5/3 0 0 0 0| 245/2]\n",
"[ s4| 0 0 0 0 0 1 0 0 0| 13]\n",
"[ s5| 0 5/24 0 0 1/3 0 1 0 0| 71/2]\n",
"[ s6| 0 0 0 0 0 0 0 1 0| 10]\n",
"[ s7| 0 -1/4 0 0 0 0 0 0 1| 21]\n",
"[------+--------------------------------------------------------------+------]\n",
"[ Z| 0 625/12 0 0 -350/3 0 0 0 0| 8575]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cambio( 1 , 2 )\n"
]
},
{
"data": {
"text/html": [
""
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrrr|r}\n",
"{Basic} & {x}_{1} & {x}_{2} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {\\color{green}{s}}_{4} & {\\color{green}{s}}_{5} & {\\color{green}{s}}_{6} & {\\color{green}{s}}_{7} & {b} \\\\\n",
"\\hline\n",
" {x}_{2} & 0 & 1 & \\frac{24}{5} & 0 & \\frac{8}{5} & 0 & 0 & 0 & 0 & \\frac{612}{5} \\\\\n",
"{\\color{green}{s}}_{2} & 0 & 0 & \\frac{6}{5} & 1 & \\frac{2}{5} & 0 & 0 & 0 & 0 & \\frac{223}{5} \\\\\n",
"{x}_{1} & 1 & 0 & \\frac{11}{5} & 0 & \\frac{12}{5} & 0 & 0 & 0 & 0 & \\frac{893}{5} \\\\\n",
"{\\color{green}{s}}_{4} & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 13 \\\\\n",
"{\\color{green}{s}}_{5} & 0 & 0 & -1 & 0 & 0 & 0 & 1 & 0 & 0 & 10 \\\\\n",
"{\\color{green}{s}}_{6} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 10 \\\\\n",
"{\\color{green}{s}}_{7} & 0 & 0 & \\frac{6}{5} & 0 & \\frac{2}{5} & 0 & 0 & 0 & 1 & \\frac{258}{5} \\\\\n",
"\\hline\n",
" {Z_{ind}} & 0 & 0 & -250 & 0 & -200 & 0 & 0 & 0 & 0 & 14950\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[ B| x1 x2 s1 s2 s3 s4 s5 s6 s7| rhs]\n",
"[-----+-----------------------------------------------------+-----]\n",
"[ x2| 0 1 24/5 0 8/5 0 0 0 0|612/5]\n",
"[ s2| 0 0 6/5 1 2/5 0 0 0 0|223/5]\n",
"[ x1| 1 0 11/5 0 12/5 0 0 0 0|893/5]\n",
"[ s4| 0 0 0 0 0 1 0 0 0| 13]\n",
"[ s5| 0 0 -1 0 0 0 1 0 0| 10]\n",
"[ s6| 0 0 0 0 0 0 0 1 0| 10]\n",
"[ s7| 0 0 6/5 0 2/5 0 0 0 1|258/5]\n",
"[-----+-----------------------------------------------------+-----]\n",
"[ Z| 0 0 -250 0 -200 0 0 0 0|14950]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"El problema es óptimo\n"
]
}
],
"source": [
"\n",
"tipo='max' # max o min\n",
"\n",
"n=2 # número de variables x's\n",
"m=7 # número de restricciones (distintas de las de signo)\n",
"\n",
"c=matrix(QQ,1,n,[70,20] ) # vector de costos\n",
"\n",
"A=-bb[:,[1..2]]\n",
"\n",
"b=bb[:,0] # vector de la derecha\n",
"\n",
"\n",
"h=matrix(ZZ,1,m,[1,1,1,1,1,1,1]) # variables de holgura: \n",
" # Pon 1 si va sumando, \n",
" # -1 si va restando y \n",
" # 0 si no hay variable de holgura.\n",
"#######################################################\n",
"\n",
"\n",
"\n",
"load('https://sage.unex.es/501708/SAGE/simplex2023Auto.sage')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "07e54a1e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "f5c65c59",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.5",
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}