{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Ejemplo de Klee-Minty \n",
    "## (The Simplex Method visits every vertex of the polyhedron)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 100 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 20 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 100 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 200 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 20 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 10000 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 100 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 20 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 100 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 200 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 20 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 10000 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}10000</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}10000$$"
      ],
      "text/plain": [
       "10000"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,10000\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,10000\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 10000)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}$$"
      ],
      "text/plain": [
       "dual"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 100 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10000 y_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 20 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 200 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 100 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 20 y_{3} \\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 100 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10000 y_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 20 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 200 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 100 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 20 y_{3} \\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}10000</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}10000$$"
      ],
      "text/plain": [
       "10000"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,1\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,1\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 1)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 20 & 1 & 0 & 0 & 1 & 0 & 100 \\\\\n",
       "{\\color{green}{s}}_{3} & 200 & 20 & 1 & 0 & 0 & 1 & 10000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 100 & 10 & 1 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 20 & 1 & 0 & 0 & 1 & 0 & 100 \\\\\n",
       "{\\color{green}{s}}_{3} & 200 & 20 & 1 & 0 & 0 & 1 & 10000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 100 & 10 & 1 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[    B|   x1    x2    x3    s1    s2    s3|  rhs]\n",
       "[-----+-----------------------------------+-----]\n",
       "[   s1|    1     0     0     1     0     0|    1]\n",
       "[   s2|   20     1     0     0     1     0|  100]\n",
       "[   s3|  200    20     1     0     0     1|10000]\n",
       "[-----+-----------------------------------+-----]\n",
       "[    Z|  100    10     1     0     0     0|    0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 1 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -20 & 1 & 0 & 80 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 20 & 1 & -200 & 0 & 1 & 9800 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 10 & 1 & -100 & 0 & 0 & 100\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -20 & 1 & 0 & 80 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 20 & 1 & -200 & 0 & 1 & 9800 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 10 & 1 & -100 & 0 & 0 & 100\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   s1   s2   s3| rhs]\n",
       "[----+-----------------------------+----]\n",
       "[  x1|   1    0    0    1    0    0|   1]\n",
       "[  s2|   0    1    0  -20    1    0|  80]\n",
       "[  s3|   0   20    1 -200    0    1|9800]\n",
       "[----+-----------------------------+----]\n",
       "[   Z|   0   10    1 -100    0    0| 100]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 2 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -20 & 1 & 0 & 80 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 200 & -20 & 1 & 8200 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 1 & 100 & -10 & 0 & 900\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -20 & 1 & 0 & 80 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 200 & -20 & 1 & 8200 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 1 & 100 & -10 & 0 & 900\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   s1   s2   s3| rhs]\n",
       "[----+-----------------------------+----]\n",
       "[  x1|   1    0    0    1    0    0|   1]\n",
       "[  x2|   0    1    0  -20    1    0|  80]\n",
       "[  s3|   0    0    1  200  -20    1|8200]\n",
       "[----+-----------------------------+----]\n",
       "[   Z|   0    0    1  100  -10    0| 900]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 4 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 20 & 1 & 0 & 0 & 1 & 0 & 100 \\\\\n",
       "{\\color{green}{s}}_{3} & -200 & 0 & 1 & 0 & -20 & 1 & 8000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -100 & 0 & 1 & 0 & -10 & 0 & 1000\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 20 & 1 & 0 & 0 & 1 & 0 & 100 \\\\\n",
       "{\\color{green}{s}}_{3} & -200 & 0 & 1 & 0 & -20 & 1 & 8000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -100 & 0 & 1 & 0 & -10 & 0 & 1000\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   s1   s2   s3| rhs]\n",
       "[----+-----------------------------+----]\n",
       "[  s1|   1    0    0    1    0    0|   1]\n",
       "[  x2|  20    1    0    0    1    0| 100]\n",
       "[  s3|-200    0    1    0  -20    1|8000]\n",
       "[----+-----------------------------+----]\n",
       "[   Z|-100    0    1    0  -10    0|1000]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 3 , 3 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 20 & 1 & 0 & 0 & 1 & 0 & 100 \\\\\n",
       "{x}_{3} & -200 & 0 & 1 & 0 & -20 & 1 & 8000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 100 & 0 & 0 & 0 & 10 & -1 & 9000\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 20 & 1 & 0 & 0 & 1 & 0 & 100 \\\\\n",
       "{x}_{3} & -200 & 0 & 1 & 0 & -20 & 1 & 8000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 100 & 0 & 0 & 0 & 10 & -1 & 9000\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   s1   s2   s3| rhs]\n",
       "[----+-----------------------------+----]\n",
       "[  s1|   1    0    0    1    0    0|   1]\n",
       "[  x2|  20    1    0    0    1    0| 100]\n",
       "[  x3|-200    0    1    0  -20    1|8000]\n",
       "[----+-----------------------------+----]\n",
       "[   Z| 100    0    0    0   10   -1|9000]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 1 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -20 & 1 & 0 & 80 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 200 & -20 & 1 & 8200 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & -100 & 10 & -1 & 9100\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -20 & 1 & 0 & 80 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 200 & -20 & 1 & 8200 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & -100 & 10 & -1 & 9100\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   s1   s2   s3| rhs]\n",
       "[----+-----------------------------+----]\n",
       "[  x1|   1    0    0    1    0    0|   1]\n",
       "[  x2|   0    1    0  -20    1    0|  80]\n",
       "[  x3|   0    0    1  200  -20    1|8200]\n",
       "[----+-----------------------------+----]\n",
       "[   Z|   0    0    0 -100   10   -1|9100]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 5 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -20 & 1 & 0 & 80 \\\\\n",
       "{x}_{3} & 0 & 20 & 1 & -200 & 0 & 1 & 9800 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & -10 & 0 & 100 & 0 & -1 & 9900\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -20 & 1 & 0 & 80 \\\\\n",
       "{x}_{3} & 0 & 20 & 1 & -200 & 0 & 1 & 9800 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & -10 & 0 & 100 & 0 & -1 & 9900\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   s1   s2   s3| rhs]\n",
       "[----+-----------------------------+----]\n",
       "[  x1|   1    0    0    1    0    0|   1]\n",
       "[  s2|   0    1    0  -20    1    0|  80]\n",
       "[  x3|   0   20    1 -200    0    1|9800]\n",
       "[----+-----------------------------+----]\n",
       "[   Z|   0  -10    0  100    0   -1|9900]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 4 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 20 & 1 & 0 & 0 & 1 & 0 & 100 \\\\\n",
       "{x}_{3} & 200 & 20 & 1 & 0 & 0 & 1 & 10000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -100 & -10 & 0 & 0 & 0 & -1 & 10000\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 20 & 1 & 0 & 0 & 1 & 0 & 100 \\\\\n",
       "{x}_{3} & 200 & 20 & 1 & 0 & 0 & 1 & 10000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -100 & -10 & 0 & 0 & 0 & -1 & 10000\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[    B|   x1    x2    x3    s1    s2    s3|  rhs]\n",
       "[-----+-----------------------------------+-----]\n",
       "[   s1|    1     0     0     1     0     0|    1]\n",
       "[   s2|   20     1     0     0     1     0|  100]\n",
       "[   x3|  200    20     1     0     0     1|10000]\n",
       "[-----+-----------------------------------+-----]\n",
       "[    Z| -100   -10     0     0     0    -1|10000]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "El problema es óptimo\n"
     ]
    }
   ],
   "source": [
    "tipo='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=3 #  número de variables x's\n",
    "m=3 #  número de restricciones (distintas de las de signo)\n",
    "\n",
    "c=matrix(QQ,1,n,[100,10,1] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0],\n",
    "[20,1,0],\n",
    "[200,20, 1]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[1,100,10000])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[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",
    "t=matrix(ZZ,1,m,[0,0,0])   # variables artificiales: \n",
    "                             # pon 1 si utilizas variable artificial en la fila i-ésima\n",
    "                             #     0 si no utilizas variable artificial en la fila i-ésima\n",
    "\n",
    "colId=(4,5,6) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023Auto.sage')\n",
    "\n",
    "#load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Ejemplos fallidos propuestos por las IA's"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "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": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 25 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 16 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 125 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 25 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 16 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 125 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}125</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}125$$"
      ],
      "text/plain": [
       "125"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,125\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,125\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 125)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{\\color{green}{s}}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 4 & 2 & 1 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{\\color{green}{s}}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 4 & 2 & 1 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  4   1   0   0   1   0| 25]\n",
       "[ s3| 16   4   1   0   0   1|125]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  4   2   1   0   0   0|  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tipo='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=3 #  número de variables x's\n",
    "m=3 #  número de restricciones (distintas de las de signo)\n",
    "\n",
    "c=matrix(QQ,1,n,[4,2,1] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0],\n",
    "[4,1,0],\n",
    "[16,4, 1]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[5,25,125])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[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",
    "t=matrix(ZZ,1,m,[0,0,0])   # variables artificiales: \n",
    "                             # pon 1 si utilizas variable artificial en la fila i-ésima\n",
    "                             #     0 si no utilizas variable artificial en la fila i-ésima\n",
    "\n",
    "colId=(4,5,6) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "#load('https://sage.unex.es/501708/simplex2023Auto.sage')\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 16 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 25 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 16 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 25 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}25</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}25$$"
      ],
      "text/plain": [
       "25"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,25\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,25\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 25)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}$$"
      ],
      "text/plain": [
       "dual"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 5 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 25 y_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 16 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 4 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 2 \\\\\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 5 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 25 y_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 16 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 4 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 2 \\\\\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}25</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}25$$"
      ],
      "text/plain": [
       "25"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,1\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,1\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 1)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 4 & 2 & 1 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 4 & 2 & 1 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  1]\n",
       "[ s2|  4   1   0   0   1   0|  5]\n",
       "[ s3| 16   4   1   0   0   1| 25]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  4   2   1   0   0   0|  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 1 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 9 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 2 & 1 & -4 & 0 & 0 & 4\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 9 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 2 & 1 & -4 & 0 & 0 & 4\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  1]\n",
       "[ s2|  0   1   0  -4   1   0|  1]\n",
       "[ s3|  0   4   1 -16   0   1|  9]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   2   1  -4   0   0|  4]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 2 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 5 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 1 & 4 & -2 & 0 & 6\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 5 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 1 & 4 & -2 & 0 & 6\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  1]\n",
       "[ x2|  0   1   0  -4   1   0|  1]\n",
       "[ s3|  0   0   1   0  -4   1|  5]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   0   1   4  -2   0|  6]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 4 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 5 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -4 & 0 & 1 & 0 & -2 & 0 & 10\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 5 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -4 & 0 & 1 & 0 & -2 & 0 & 10\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  1]\n",
       "[ x2|  4   1   0   0   1   0|  5]\n",
       "[ s3|  0   0   1   0  -4   1|  5]\n",
       "[---+-----------------------+---]\n",
       "[  Z| -4   0   1   0  -2   0| 10]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 3 , 3 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 5 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 5 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -4 & 0 & 0 & 0 & 2 & -1 & 15\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 5 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 5 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -4 & 0 & 0 & 0 & 2 & -1 & 15\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  1]\n",
       "[ x2|  4   1   0   0   1   0|  5]\n",
       "[ x3|  0   0   1   0  -4   1|  5]\n",
       "[---+-----------------------+---]\n",
       "[  Z| -4   0   0   0   2  -1| 15]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 5 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 5 \\\\\n",
       "{x}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -12 & -2 & 0 & 0 & 0 & -1 & 25\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 5 \\\\\n",
       "{x}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -12 & -2 & 0 & 0 & 0 & -1 & 25\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  1]\n",
       "[ s2|  4   1   0   0   1   0|  5]\n",
       "[ x3| 16   4   1   0   0   1| 25]\n",
       "[---+-----------------------+---]\n",
       "[  Z|-12  -2   0   0   0  -1| 25]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "El problema es óptimo\n"
     ]
    }
   ],
   "source": [
    "tipo='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=3 #  número de variables x's\n",
    "m=3 #  número de restricciones (distintas de las de signo)\n",
    "\n",
    "c=matrix(QQ,1,n,[4,2,1] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0],\n",
    "[4,1,0],\n",
    "[16,4, 1]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[1,5,25])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[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",
    "t=matrix(ZZ,1,m,[0,0,0])   # variables artificiales: \n",
    "                             # pon 1 si utilizas variable artificial en la fila i-ésima\n",
    "                             #     0 si no utilizas variable artificial en la fila i-ésima\n",
    "\n",
    "colId=(4,5,6) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023Auto.sage')\n",
    "\n",
    "#load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 1 \\\\\n",
       "{x}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 9 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & -2 & 0 & 12 & 0 & -1 & 13\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 1 \\\\\n",
       "{x}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 9 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & -2 & 0 & 12 & 0 & -1 & 13\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  1]\n",
       "[ s2|  0   1   0  -4   1   0|  1]\n",
       "[ x3|  0   4   1 -16   0   1|  9]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0  -2   0  12   0  -1| 13]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 8 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 25 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 16 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 125 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 8 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 25 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 16 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 125 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}250</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}250$$"
      ],
      "text/plain": [
       "250"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,125\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,125\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 125)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}$$"
      ],
      "text/plain": [
       "dual"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 5 y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 25 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 125 y_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 16 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 8 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 4 \\\\\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 2 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 5 y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 25 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 125 y_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 16 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 8 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 4 \\\\\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 2 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}250</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}250$$"
      ],
      "text/plain": [
       "250"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,2\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,2\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 2)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{\\color{green}{s}}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 8 & 4 & 2 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{\\color{green}{s}}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 8 & 4 & 2 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  4   1   0   0   1   0| 25]\n",
       "[ s3| 16   4   1   0   0   1|125]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  8   4   2   0   0   0|  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 1 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 45 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 4 & 2 & -8 & 0 & 0 & 40\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 45 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 4 & 2 & -8 & 0 & 0 & 40\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  0   1   0  -4   1   0|  5]\n",
       "[ s3|  0   4   1 -16   0   1| 45]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   4   2  -8   0   0| 40]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 2 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 2 & 8 & -4 & 0 & 60\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 2 & 8 & -4 & 0 & 60\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  5]\n",
       "[ x2|  0   1   0  -4   1   0|  5]\n",
       "[ s3|  0   0   1   0  -4   1| 25]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   0   2   8  -4   0| 60]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 4 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -8 & 0 & 2 & 0 & -4 & 0 & 100\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -8 & 0 & 2 & 0 & -4 & 0 & 100\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  5]\n",
       "[ x2|  4   1   0   0   1   0| 25]\n",
       "[ s3|  0   0   1   0  -4   1| 25]\n",
       "[---+-----------------------+---]\n",
       "[  Z| -8   0   2   0  -4   0|100]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 3 , 3 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -8 & 0 & 0 & 0 & 4 & -2 & 150\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 25 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -8 & 0 & 0 & 0 & 4 & -2 & 150\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  5]\n",
       "[ x2|  4   1   0   0   1   0| 25]\n",
       "[ x3|  0   0   1   0  -4   1| 25]\n",
       "[---+-----------------------+---]\n",
       "[  Z| -8   0   0   0   4  -2|150]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 5 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{x}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -24 & -4 & 0 & 0 & 0 & -2 & 250\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{x}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -24 & -4 & 0 & 0 & 0 & -2 & 250\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  4   1   0   0   1   0| 25]\n",
       "[ x3| 16   4   1   0   0   1|125]\n",
       "[---+-----------------------+---]\n",
       "[  Z|-24  -4   0   0   0  -2|250]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "El problema es óptimo\n"
     ]
    }
   ],
   "source": [
    "tipo='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=3 #  número de variables x's\n",
    "m=3 #  número de restricciones (distintas de las de signo)\n",
    "\n",
    "c=matrix(QQ,1,n,[8,4,2] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0],\n",
    "[4,1,0],\n",
    "[16,4, 1]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[5,25,125])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[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",
    "t=matrix(ZZ,1,m,[0,0,0])   # variables artificiales: \n",
    "                             # pon 1 si utilizas variable artificial en la fila i-ésima\n",
    "                             #     0 si no utilizas variable artificial en la fila i-ésima\n",
    "\n",
    "colId=(4,5,6) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023Auto.sage')\n",
    "\n",
    "#load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 5 \\\\\n",
       "{x}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 45 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & -4 & 0 & 24 & 0 & -2 & 130\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 5 \\\\\n",
       "{x}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 45 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & -4 & 0 & 24 & 0 & -2 & 130\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  0   1   0  -4   1   0|  5]\n",
       "[ x3|  0   4   1 -16   0   1| 45]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0  -4   0  24   0  -2|130]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 8 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 4 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 16 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 16 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 8 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 4 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 16 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 16 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}32</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}32$$"
      ],
      "text/plain": [
       "32"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,16\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,16\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 16)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}$$"
      ],
      "text/plain": [
       "dual"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 16 y_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 16 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 8 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 4 \\\\\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 2 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 16 y_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 16 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 8 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 4 \\\\\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 2 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}32</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}32$$"
      ],
      "text/plain": [
       "32"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,2\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(0,\\,0,\\,2\\right)$$"
      ],
      "text/plain": [
       "(0, 0, 2)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 4 \\\\\n",
       "{\\color{green}{s}}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 16 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 8 & 4 & 2 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 4 \\\\\n",
       "{\\color{green}{s}}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 16 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 8 & 4 & 2 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  1]\n",
       "[ s2|  4   1   0   0   1   0|  4]\n",
       "[ s3| 16   4   1   0   0   1| 16]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  8   4   2   0   0   0|  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 1 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 0 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 4 & 2 & -8 & 0 & 0 & 8\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 0 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 4 & 1 & -16 & 0 & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 4 & 2 & -8 & 0 & 0 & 8\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  1]\n",
       "[ s2|  0   1   0  -4   1   0|  0]\n",
       "[ s3|  0   4   1 -16   0   1|  0]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   4   2  -8   0   0|  8]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 2 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 0 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 2 & 8 & -4 & 0 & 8\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -4 & 1 & 0 & 0 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 2 & 8 & -4 & 0 & 8\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  1]\n",
       "[ x2|  0   1   0  -4   1   0|  0]\n",
       "[ s3|  0   0   1   0  -4   1|  0]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   0   2   8  -4   0|  8]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 4 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 4 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -8 & 0 & 2 & 0 & -4 & 0 & 16\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 4 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -8 & 0 & 2 & 0 & -4 & 0 & 16\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  1]\n",
       "[ x2|  4   1   0   0   1   0|  4]\n",
       "[ s3|  0   0   1   0  -4   1|  0]\n",
       "[---+-----------------------+---]\n",
       "[  Z| -8   0   2   0  -4   0| 16]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 3 , 3 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 4 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -8 & 0 & 0 & 0 & 4 & -2 & 16\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 4 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -4 & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -8 & 0 & 0 & 0 & 4 & -2 & 16\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  1]\n",
       "[ x2|  4   1   0   0   1   0|  4]\n",
       "[ x3|  0   0   1   0  -4   1|  0]\n",
       "[---+-----------------------+---]\n",
       "[  Z| -8   0   0   0   4  -2| 16]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 5 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 4 \\\\\n",
       "{x}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 16 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -24 & -4 & 0 & 0 & 0 & -2 & 32\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 4 & 1 & 0 & 0 & 1 & 0 & 4 \\\\\n",
       "{x}_{3} & 16 & 4 & 1 & 0 & 0 & 1 & 16 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & -24 & -4 & 0 & 0 & 0 & -2 & 32\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  1]\n",
       "[ s2|  4   1   0   0   1   0|  4]\n",
       "[ x3| 16   4   1   0   0   1| 16]\n",
       "[---+-----------------------+---]\n",
       "[  Z|-24  -4   0   0   0  -2| 32]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "El problema es óptimo\n"
     ]
    }
   ],
   "source": [
    "tipo='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=3 #  número de variables x's\n",
    "m=3 #  número de restricciones (distintas de las de signo)\n",
    "\n",
    "c=matrix(QQ,1,n,[8,4,2] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0],\n",
    "[4,1,0],\n",
    "[16,4, 1]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[1,4,16])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[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",
    "t=matrix(ZZ,1,m,[0,0,0])   # variables artificiales: \n",
    "                             # pon 1 si utilizas variable artificial en la fila i-ésima\n",
    "                             #     0 si no utilizas variable artificial en la fila i-ésima\n",
    "\n",
    "colId=(4,5,6) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023Auto.sage')\n",
    "\n",
    "#load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 2 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 25 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 125 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 2 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 25 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 125 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}$$"
      ],
      "text/plain": [
       "LP problem (use 'view(...)' or '%display typeset' for details)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}125</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}125$$"
      ],
      "text/plain": [
       "125"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(5,\\,15,\\,75\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(5,\\,15,\\,75\\right)$$"
      ],
      "text/plain": [
       "(5, 15, 75)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 2 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{\\color{green}{s}}_{3} & 4 & 2 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 4 & 2 & 1 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 2 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{\\color{green}{s}}_{3} & 4 & 2 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 4 & 2 & 1 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  2   1   0   0   1   0| 25]\n",
       "[ s3|  4   2   1   0   0   1|125]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  4   2   1   0   0   0|  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tipo='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=3 #  número de variables x's\n",
    "m=3 #  número de restricciones (distintas de las de signo)\n",
    "\n",
    "c=matrix(QQ,1,n,[4,2,1] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0],\n",
    "[2,1,0],\n",
    "[4,2, 1]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[5,25,125])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[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",
    "t=matrix(ZZ,1,m,[0,0,0])   # variables artificiales: \n",
    "                             # pon 1 si utilizas variable artificial en la fila i-ésima\n",
    "                             #     0 si no utilizas variable artificial en la fila i-ésima\n",
    "\n",
    "colId=(4,5,6) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "#load('https://sage.unex.es/501708/simplex2023Auto.sage')\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -2 & 1 & 0 & 15 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 2 & 1 & -4 & 0 & 1 & 105 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 2 & 1 & -4 & 0 & 0 & 20\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -2 & 1 & 0 & 15 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 2 & 1 & -4 & 0 & 1 & 105 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 2 & 1 & -4 & 0 & 0 & 20\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  0   1   0  -2   1   0| 15]\n",
       "[ s3|  0   2   1  -4   0   1|105]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   2   1  -4   0   0| 20]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -2 & 1 & 0 & 15 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -2 & 1 & 75 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 1 & 0 & -2 & 0 & 50\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -2 & 1 & 0 & 15 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & -2 & 1 & 75 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 1 & 0 & -2 & 0 & 50\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  5]\n",
       "[ x2|  0   1   0  -2   1   0| 15]\n",
       "[ s3|  0   0   1   0  -2   1| 75]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   0   1   0  -2   0| 50]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(2,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -2 & 1 & 0 & 15 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -2 & 1 & 75 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -1 & 125\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & -2 & 1 & 0 & 15 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -2 & 1 & 75 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -1 & 125\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  5]\n",
       "[ x2|  0   1   0  -2   1   0| 15]\n",
       "[ x3|  0   0   1   0  -2   1| 75]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   0   0   0   0  -1|125]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(3,3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 2 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -2 & 1 & 75 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -1 & 125\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{x}_{2} & 2 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & -2 & 1 & 75 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -1 & 125\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  5]\n",
       "[ x2|  2   1   0   0   1   0| 25]\n",
       "[ x3|  0   0   1   0  -2   1| 75]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   0   0   0   0  -1|125]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(1,4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 2 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{x}_{3} & 4 & 2 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -1 & 125\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 2 & 1 & 0 & 0 & 1 & 0 & 25 \\\\\n",
       "{x}_{3} & 4 & 2 & 1 & 0 & 0 & 1 & 125 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -1 & 125\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ s1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  2   1   0   0   1   0| 25]\n",
       "[ x3|  4   2   1   0   0   1|125]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   0   0   0   0  -1|125]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(2,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -2 & 1 & 0 & 15 \\\\\n",
       "{x}_{3} & 0 & 2 & 1 & -4 & 0 & 1 & 105 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -1 & 125\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {\\color{green}{s}}_{1} & {\\color{green}{s}}_{2} & {\\color{green}{s}}_{3} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 0 & 0 & 5 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & -2 & 1 & 0 & 15 \\\\\n",
       "{x}_{3} & 0 & 2 & 1 & -4 & 0 & 1 & 105 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & -1 & 125\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  s1  s2  s3|rhs]\n",
       "[---+-----------------------+---]\n",
       "[ x1|  1   0   0   1   0   0|  5]\n",
       "[ s2|  0   1   0  -2   1   0| 15]\n",
       "[ x3|  0   2   1  -4   0   1|105]\n",
       "[---+-----------------------+---]\n",
       "[  Z|  0   0   0   0   0  -1|125]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 10000 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 1000 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 100 x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{4} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 2 x_{1} \\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 100 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 10000 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 8 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{4} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1000000 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3}, x_{4} \\geq 0\n",
       "\\end{array}</script></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} 10000 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 1000 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 100 x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{4} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 2 x_{1} \\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} \\leq \\mspace{-6mu}&\\mspace{-6mu} 100 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 4 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 10000 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 8 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{4} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1000000 \\\\\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": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}2068000</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}2068000$$"
      ],
      "text/plain": [
       "2068000"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(1,\\,98,\\,9800,\\,980000\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(1,\\,98,\\,9800,\\,980000\\right)$$"
      ],
      "text/plain": [
       "(1, 98, 9800, 980000)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\texttt{El dual es:}}$$"
      ],
      "text/plain": [
       "dual"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 100 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10000 y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 1000000 y_{4} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 8 y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 10000 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\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} 4 y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 1000 \\\\\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 100 \\\\\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} y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3}, y_{4} \\geq 0\n",
       "\\end{array}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcrcl}\n",
       " \\min \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 100 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 10000 y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 1000000 y_{4} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} y_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 y_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 4 y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 8 y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 10000 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\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} 4 y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 1000 \\\\\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} y_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 100 \\\\\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} y_{4} \\mspace{-6mu}&\\mspace{-6mu} \\geq \\mspace{-6mu}&\\mspace{-6mu} 1 \\\\\n",
       "\\end{array} \\\\\n",
       "y_{1}, y_{2}, y_{3}, y_{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": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}2068000</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}2068000$$"
      ],
      "text/plain": [
       "2068000"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(8000,\\,800,\\,98,\\,1\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(8000,\\,800,\\,98,\\,1\\right)$$"
      ],
      "text/plain": [
       "(8000, 800, 98, 1)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{}$$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{===================================}$$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 2 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 100 \\\\\n",
       "{\\color{green}{s}}_{3} & 4 & 2 & 1 & 0 & 0 & 0 & 1 & 0 & 10000 \\\\\n",
       "{\\color{green}{s}}_{4} & 8 & 4 & 2 & 1 & 0 & 0 & 0 & 1 & 1000000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 10000 & 1000 & 100 & 1 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {\\color{green}{s}}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 2 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 100 \\\\\n",
       "{\\color{green}{s}}_{3} & 4 & 2 & 1 & 0 & 0 & 0 & 1 & 0 & 10000 \\\\\n",
       "{\\color{green}{s}}_{4} & 8 & 4 & 2 & 1 & 0 & 0 & 0 & 1 & 1000000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 10000 & 1000 & 100 & 1 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[      B|     x1      x2      x3      x4      s1      s2      s3      s4|    rhs]\n",
       "[-------+---------------------------------------------------------------+-------]\n",
       "[     s1|      1       0       0       0       1       0       0       0|      1]\n",
       "[     s2|      2       1       0       0       0       1       0       0|    100]\n",
       "[     s3|      4       2       1       0       0       0       1       0|  10000]\n",
       "[     s4|      8       4       2       1       0       0       0       1|1000000]\n",
       "[-------+---------------------------------------------------------------+-------]\n",
       "[      Z|  10000    1000     100       1       0       0       0       0|      0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 1 , 1 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 0 & 98 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 2 & 1 & 0 & -4 & 0 & 1 & 0 & 9996 \\\\\n",
       "{\\color{green}{s}}_{4} & 0 & 4 & 2 & 1 & -8 & 0 & 0 & 1 & 999992 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 1000 & 100 & 1 & -10000 & 0 & 0 & 0 & 10000\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{\\color{green}{s}}_{2} & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 0 & 98 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 2 & 1 & 0 & -4 & 0 & 1 & 0 & 9996 \\\\\n",
       "{\\color{green}{s}}_{4} & 0 & 4 & 2 & 1 & -8 & 0 & 0 & 1 & 999992 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 1000 & 100 & 1 & -10000 & 0 & 0 & 0 & 10000\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[     B|    x1     x2     x3     x4     s1     s2     s3     s4|   rhs]\n",
       "[------+-------------------------------------------------------+------]\n",
       "[    x1|     1      0      0      0      1      0      0      0|     1]\n",
       "[    s2|     0      1      0      0     -2      1      0      0|    98]\n",
       "[    s3|     0      2      1      0     -4      0      1      0|  9996]\n",
       "[    s4|     0      4      2      1     -8      0      0      1|999992]\n",
       "[------+-------------------------------------------------------+------]\n",
       "[     Z|     0   1000    100      1 -10000      0      0      0| 10000]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 2 , 2 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 0 & 98 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 9800 \\\\\n",
       "{\\color{green}{s}}_{4} & 0 & 0 & 2 & 1 & 0 & -4 & 0 & 1 & 999600 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 100 & 1 & -8000 & -1000 & 0 & 0 & 108000\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 0 & 98 \\\\\n",
       "{\\color{green}{s}}_{3} & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 9800 \\\\\n",
       "{\\color{green}{s}}_{4} & 0 & 0 & 2 & 1 & 0 & -4 & 0 & 1 & 999600 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 100 & 1 & -8000 & -1000 & 0 & 0 & 108000\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[     B|    x1     x2     x3     x4     s1     s2     s3     s4|   rhs]\n",
       "[------+-------------------------------------------------------+------]\n",
       "[    x1|     1      0      0      0      1      0      0      0|     1]\n",
       "[    x2|     0      1      0      0     -2      1      0      0|    98]\n",
       "[    s3|     0      0      1      0      0     -2      1      0|  9800]\n",
       "[    s4|     0      0      2      1      0     -4      0      1|999600]\n",
       "[------+-------------------------------------------------------+------]\n",
       "[     Z|     0      0    100      1  -8000  -1000      0      0|108000]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 3 , 3 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 0 & 98 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 9800 \\\\\n",
       "{\\color{green}{s}}_{4} & 0 & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 980000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 1 & -8000 & -800 & -100 & 0 & 1088000\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 0 & 98 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 9800 \\\\\n",
       "{\\color{green}{s}}_{4} & 0 & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 980000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 1 & -8000 & -800 & -100 & 0 & 1088000\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[      B|     x1      x2      x3      x4      s1      s2      s3      s4|    rhs]\n",
       "[-------+---------------------------------------------------------------+-------]\n",
       "[     x1|      1       0       0       0       1       0       0       0|      1]\n",
       "[     x2|      0       1       0       0      -2       1       0       0|     98]\n",
       "[     x3|      0       0       1       0       0      -2       1       0|   9800]\n",
       "[     s4|      0       0       0       1       0       0      -2       1| 980000]\n",
       "[-------+---------------------------------------------------------------+-------]\n",
       "[      Z|      0       0       0       1   -8000    -800    -100       0|1088000]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cambio( 4 , 4 )\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 0 & 98 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 9800 \\\\\n",
       "{x}_{4} & 0 & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 980000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & -8000 & -800 & -98 & -1 & 2068000\n",
       "\\end{array}\\right)</script></html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{r|rrrrrrrr|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} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 0 & 98 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 0 & 9800 \\\\\n",
       "{x}_{4} & 0 & 0 & 0 & 1 & 0 & 0 & -2 & 1 & 980000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & -8000 & -800 & -98 & -1 & 2068000\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "[      B|     x1      x2      x3      x4      s1      s2      s3      s4|    rhs]\n",
       "[-------+---------------------------------------------------------------+-------]\n",
       "[     x1|      1       0       0       0       1       0       0       0|      1]\n",
       "[     x2|      0       1       0       0      -2       1       0       0|     98]\n",
       "[     x3|      0       0       1       0       0      -2       1       0|   9800]\n",
       "[     x4|      0       0       0       1       0       0      -2       1| 980000]\n",
       "[-------+---------------------------------------------------------------+-------]\n",
       "[      Z|      0       0       0       0   -8000    -800     -98      -1|2068000]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "El problema es óptimo\n"
     ]
    }
   ],
   "source": [
    "tipo='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=4 #  número de variables x's\n",
    "m=4 #  número de restricciones (distintas de las de signo)\n",
    "\n",
    "c=matrix(QQ,1,n,[10000,1000,100,1] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0,0],\n",
    "[2,1,0,0],\n",
    "[4,2, 1,0],\n",
    "[8,4,2,1]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[1,100,10000, 1000000])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[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",
    "t=matrix(ZZ,1,m,[0,0,0,0])   # variables artificiales: \n",
    "                             # pon 1 si utilizas variable artificial en la fila i-ésima\n",
    "                             #     0 si no utilizas variable artificial en la fila i-ésima\n",
    "\n",
    "colId=(5,6,7,8) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023Auto.sage')\n",
    "\n",
    "#load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "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": 4
}
