{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {===================================}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {===================================}$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {===================================}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {===================================}$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcrcrcl}\n",
       " \\max \\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}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 0 \\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} x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 15 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 12 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 3 x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 0 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3}, x_{4}, x_{5} \\geq 0\n",
       "\\end{array}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcrcrcl}\n",
       " \\max \\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}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 0 \\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} x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 15 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 12 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 3 x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 0 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3}, x_{4}, x_{5} \\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>\\(\\displaystyle 0\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle 0$"
      ],
      "text/plain": [
       "0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(15,\\,12,\\,0,\\,0,\\,0\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(15,\\,12,\\,0,\\,0,\\,0\\right)$"
      ],
      "text/plain": [
       "(15, 12, 0, 0, 0)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {===================================}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {===================================}$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {}$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {===================================}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {===================================}$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 2 & 15 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 2 & 1 & 12 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 2 & 3 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & 2 & 15 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 2 & 1 & 12 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & 2 & 3 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  x4  x5|rhs]\n",
       "[---+-------------------+---]\n",
       "[ x1|  1   0   0   1   2| 15]\n",
       "[ x2|  0   1   0   2   1| 12]\n",
       "[ x3|  0   0   1   2   3|  0]\n",
       "[---+-------------------+---]\n",
       "[  Z|  0   0   0   0   0|  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tipo ='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=5 #  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,[0,0,0,0,0] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0,1,2],\n",
    "[0,1,0,2,1],\n",
    "[0,0,1,2,3]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[15,12,0])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[0,0,0])  # 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=(1,2,3) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & -\\frac{1}{2} & 0 & \\frac{1}{2} & 15 \\\\\n",
       "{x}_{2} & 0 & 1 & -1 & 0 & -2 & 12 \\\\\n",
       "{x}_{4} & 0 & 0 & \\frac{1}{2} & 1 & \\frac{3}{2} & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & -\\frac{1}{2} & 0 & \\frac{1}{2} & 15 \\\\\n",
       "{x}_{2} & 0 & 1 & -1 & 0 & -2 & 12 \\\\\n",
       "{x}_{4} & 0 & 0 & \\frac{1}{2} & 1 & \\frac{3}{2} & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   x4   x5| rhs]\n",
       "[----+------------------------+----]\n",
       "[  x1|   1    0 -1/2    0  1/2|  15]\n",
       "[  x2|   0    1   -1    0   -2|  12]\n",
       "[  x4|   0    0  1/2    1  3/2|   0]\n",
       "[----+------------------------+----]\n",
       "[   Z|   0    0    0    0    0|   0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(3,4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & -\\frac{2}{3} & -\\frac{1}{3} & 0 & 15 \\\\\n",
       "{x}_{2} & 0 & 1 & -\\frac{1}{3} & \\frac{4}{3} & 0 & 12 \\\\\n",
       "{x}_{5} & 0 & 0 & \\frac{1}{3} & \\frac{2}{3} & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & -\\frac{2}{3} & -\\frac{1}{3} & 0 & 15 \\\\\n",
       "{x}_{2} & 0 & 1 & -\\frac{1}{3} & \\frac{4}{3} & 0 & 12 \\\\\n",
       "{x}_{5} & 0 & 0 & \\frac{1}{3} & \\frac{2}{3} & 1 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   x4   x5| rhs]\n",
       "[----+------------------------+----]\n",
       "[  x1|   1    0 -2/3 -1/3    0|  15]\n",
       "[  x2|   0    1 -1/3  4/3    0|  12]\n",
       "[  x5|   0    0  1/3  2/3    1|   0]\n",
       "[----+------------------------+----]\n",
       "[   Z|   0    0    0    0    0|   0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(3,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {===================================}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {===================================}$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {===================================}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {===================================}$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcrcrcl}\n",
       " \\max \\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}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 0 \\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} x_{4} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 2 x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 12 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 2 x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 3 x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 0 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3}, x_{4}, x_{5} \\geq 0\n",
       "\\end{array}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcrcrcl}\n",
       " \\max \\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}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 0 \\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} x_{4} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 2 x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 5 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} x_{2} \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 2 x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 12 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} x_{3} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 2 x_{4} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 3 x_{5} \\mspace{-6mu}&\\mspace{-6mu} = \\mspace{-6mu}&\\mspace{-6mu} 0 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3}, x_{4}, x_{5} \\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>\\(\\displaystyle 0\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle 0$"
      ],
      "text/plain": [
       "0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(5,\\,12,\\,0,\\,0,\\,0\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(5,\\,12,\\,0,\\,0,\\,0\\right)$"
      ],
      "text/plain": [
       "(5, 12, 0, 0, 0)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {===================================}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {===================================}$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {}$"
      ],
      "text/plain": [
       "salto"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle {===================================}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle {===================================}$"
      ],
      "text/plain": [
       "ry"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & -2 & 5 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 2 & 1 & 12 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & -2 & 3 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & 0 & 0 & 1 & -2 & 5 \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & 2 & 1 & 12 \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & -2 & 3 & 0 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[  B| x1  x2  x3  x4  x5|rhs]\n",
       "[---+-------------------+---]\n",
       "[ x1|  1   0   0   1  -2|  5]\n",
       "[ x2|  0   1   0   2   1| 12]\n",
       "[ x3|  0   0   1  -2   3|  0]\n",
       "[---+-------------------+---]\n",
       "[  Z|  0   0   0   0   0|  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#https://www.geogebra.org/calculator/zzyxbtjg\n",
    "\n",
    "#https://www.geogebra.org/calculator/ewdp74gu\n",
    "\n",
    "tipo ='max'     #   Problema de tipo max o min\n",
    "\n",
    "n=5 #  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,[0,0,0,0,0] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,0,0,1,-2],\n",
    "[0,1,0,2,1],\n",
    "[0,0,1,-2,3]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[5,12,0])  # vector de la derecha\n",
    "\n",
    "\n",
    "h=matrix(ZZ,1,m,[0,0,0])  # 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=(1,2,3) # posición de la matriz identidad\n",
    "\n",
    "\n",
    "    \n",
    "    \n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & -\\frac{1}{2} & 0 & 0 & -\\frac{5}{2} & -1 \\\\\n",
       "{x}_{4} & 0 & \\frac{1}{2} & 0 & 1 & \\frac{1}{2} & 6 \\\\\n",
       "{x}_{3} & 0 & 1 & 1 & 0 & 4 & 12 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & -\\frac{1}{2} & 0 & 0 & -\\frac{5}{2} & -1 \\\\\n",
       "{x}_{4} & 0 & \\frac{1}{2} & 0 & 1 & \\frac{1}{2} & 6 \\\\\n",
       "{x}_{3} & 0 & 1 & 1 & 0 & 4 & 12 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   x4   x5| rhs]\n",
       "[----+------------------------+----]\n",
       "[  x1|   1 -1/2    0    0 -5/2|  -1]\n",
       "[  x4|   0  1/2    0    1  1/2|   6]\n",
       "[  x3|   0    1    1    0    4|  12]\n",
       "[----+------------------------+----]\n",
       "[   Z|   0    0    0    0    0|   0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(2,4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & \\frac{1}{8} & \\frac{5}{8} & 0 & 0 & \\frac{13}{2} \\\\\n",
       "{x}_{4} & 0 & \\frac{3}{8} & -\\frac{1}{8} & 1 & 0 & \\frac{9}{2} \\\\\n",
       "{x}_{5} & 0 & \\frac{1}{4} & \\frac{1}{4} & 0 & 1 & 3 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{1} & 1 & \\frac{1}{8} & \\frac{5}{8} & 0 & 0 & \\frac{13}{2} \\\\\n",
       "{x}_{4} & 0 & \\frac{3}{8} & -\\frac{1}{8} & 1 & 0 & \\frac{9}{2} \\\\\n",
       "{x}_{5} & 0 & \\frac{1}{4} & \\frac{1}{4} & 0 & 1 & 3 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   x4   x5| rhs]\n",
       "[----+------------------------+----]\n",
       "[  x1|   1  1/8  5/8    0    0|13/2]\n",
       "[  x4|   0  3/8 -1/8    1    0| 9/2]\n",
       "[  x5|   0  1/4  1/4    0    1|   3]\n",
       "[----+------------------------+----]\n",
       "[   Z|   0    0    0    0    0|   0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(3,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[10.400]\n",
       "[    NO]\n",
       "[12.000]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cocientes(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "#cambio(2,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "#cambio(3,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{3} & \\frac{8}{5} & \\frac{1}{5} & 1 & 0 & 0 & \\frac{52}{5} \\\\\n",
       "{x}_{4} & \\frac{1}{5} & \\frac{2}{5} & 0 & 1 & 0 & \\frac{29}{5} \\\\\n",
       "{x}_{5} & -\\frac{2}{5} & \\frac{1}{5} & 0 & 0 & 1 & \\frac{2}{5} \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(\\begin{array}{r|rrrrr|r}\n",
       "{Basic} & {x}_{1} & {x}_{2} & {x}_{3} & {x}_{4} & {x}_{5} & {b} \\\\\n",
       "\\hline\n",
       " {x}_{3} & \\frac{8}{5} & \\frac{1}{5} & 1 & 0 & 0 & \\frac{52}{5} \\\\\n",
       "{x}_{4} & \\frac{1}{5} & \\frac{2}{5} & 0 & 1 & 0 & \\frac{29}{5} \\\\\n",
       "{x}_{5} & -\\frac{2}{5} & \\frac{1}{5} & 0 & 0 & 1 & \\frac{2}{5} \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   x4   x5| rhs]\n",
       "[----+------------------------+----]\n",
       "[  x3| 8/5  1/5    1    0    0|52/5]\n",
       "[  x4| 1/5  2/5    0    1    0|29/5]\n",
       "[  x5|-2/5  1/5    0    0    1| 2/5]\n",
       "[----+------------------------+----]\n",
       "[   Z|   0    0    0    0    0|   0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(1,3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "SageMath",
   "language": "python",
   "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.13.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
