{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "cfd262a3-b18d-417a-a930-7ba5e8f48c57",
   "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}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 50 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 40 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 70 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} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 3 x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 12 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 20 x_{1} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 10 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 30 x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 230 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 100 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 80 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 120 x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1000 \\\\\n",
       "\\end{array} \\\\\n",
       "x_{1}, x_{2}, x_{3} \\geq 0\n",
       "\\end{array}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\begin{array}{l}\n",
       "\\begin{array}{lcrcrcrcl}\n",
       " \\max \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 50 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 40 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 70 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} 2 x_{2} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 3 x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 12 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu}  \\mspace{-6mu}&\\mspace{-6mu} 20 x_{1} \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 10 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 30 x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 230 \\\\\n",
       " \\mspace{-6mu}&\\mspace{-6mu} - \\mspace{-6mu}&\\mspace{-6mu} 100 x_{1} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 80 x_{2} \\mspace{-6mu}&\\mspace{-6mu} + \\mspace{-6mu}&\\mspace{-6mu} 120 x_{3} \\mspace{-6mu}&\\mspace{-6mu} \\leq \\mspace{-6mu}&\\mspace{-6mu} 1000 \\\\\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>\\(\\displaystyle \\frac{107660}{81}\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\frac{107660}{81}$"
      ],
      "text/plain": [
       "107660/81"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\left(\\frac{206}{27},\\,\\frac{109}{9},\\,\\frac{536}{81}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\left(\\frac{206}{27},\\,\\frac{109}{9},\\,\\frac{536}{81}\\right)$"
      ],
      "text/plain": [
       "(206/27, 109/9, 536/81)"
      ]
     },
     "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|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 & 2 & -3 & 1 & 0 & 0 & 12 \\\\\n",
       "{\\color{green}{s}}_{2} & 20 & -10 & 30 & 0 & 1 & 0 & 230 \\\\\n",
       "{\\color{green}{s}}_{3} & -100 & 80 & 120 & 0 & 0 & 1 & 1000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 50 & 40 & 70 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\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 & 2 & -3 & 1 & 0 & 0 & 12 \\\\\n",
       "{\\color{green}{s}}_{2} & 20 & -10 & 30 & 0 & 1 & 0 & 230 \\\\\n",
       "{\\color{green}{s}}_{3} & -100 & 80 & 120 & 0 & 0 & 1 & 1000 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 50 & 40 & 70 & 0 & 0 & 0 & 0\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[   B|  x1   x2   x3   s1   s2   s3| rhs]\n",
       "[----+-----------------------------+----]\n",
       "[  s1|   1    2   -3    1    0    0|  12]\n",
       "[  s2|  20  -10   30    0    1    0| 230]\n",
       "[  s3|-100   80  120    0    0    1|1000]\n",
       "[----+-----------------------------+----]\n",
       "[   Z|  50   40   70    0    0    0|   0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tipo='max'  # 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,[50,40,70] )  # vector de costos\n",
    "\n",
    "A=matrix(QQ,m,n,[   # coeficientes de las variables x's\n",
    "[1,2,-3],\n",
    "[20,-10,30],\n",
    "[-100,80,120]\n",
    "])\n",
    "\n",
    "b=matrix(QQ,m,1,[12,230,1000])  # vector de la derecha\n",
    "\n",
    "\n",
    "######################################################\n",
    "############### VARIABLES DE HOLGURA  ################\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",
    "t=matrix(ZZ,1,m,[0,0,0])\n",
    "\n",
    "colId=(4,5,6)\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "####################################################################\n",
    "############  HASTA AQUÍ LOS DATOS  ################################\n",
    "####################################################################\n",
    "\n",
    "\n",
    "\n",
    "load('https://sage.unex.es/501708/simplex2023CompletamenteManual.sage')\n",
    "\n",
    "#load('https://sage.unex.es/501708/simplex2023Auto.sage')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6ff9ac8f-ee1c-432f-8ca0-c10052bb4bf1",
   "metadata": {},
   "outputs": [],
   "source": [
    "cocientes(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "41090b45-842e-468b-bed4-644b8529005f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\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} & 3 & 1 & 0 & 1 & \\frac{1}{10} & 0 & 35 \\\\\n",
       "{x}_{3} & \\frac{2}{3} & -\\frac{1}{3} & 1 & 0 & \\frac{1}{30} & 0 & \\frac{23}{3} \\\\\n",
       "{\\color{green}{s}}_{3} & -180 & 120 & 0 & 0 & -4 & 1 & 80 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & \\frac{10}{3} & \\frac{190}{3} & 0 & 0 & -\\frac{7}{3} & 0 & \\frac{1610}{3}\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\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} & 3 & 1 & 0 & 1 & \\frac{1}{10} & 0 & 35 \\\\\n",
       "{x}_{3} & \\frac{2}{3} & -\\frac{1}{3} & 1 & 0 & \\frac{1}{30} & 0 & \\frac{23}{3} \\\\\n",
       "{\\color{green}{s}}_{3} & -180 & 120 & 0 & 0 & -4 & 1 & 80 \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & \\frac{10}{3} & \\frac{190}{3} & 0 & 0 & -\\frac{7}{3} & 0 & \\frac{1610}{3}\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[     B|    x1     x2     x3     s1     s2     s3|   rhs]\n",
       "[------+-----------------------------------------+------]\n",
       "[    s1|     3      1      0      1   1/10      0|    35]\n",
       "[    x3|   2/3   -1/3      1      0   1/30      0|  23/3]\n",
       "[    s3|  -180    120      0      0     -4      1|    80]\n",
       "[------+-----------------------------------------+------]\n",
       "[     Z|  10/3  190/3      0      0   -7/3      0|1610/3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(2,3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "76f12b75-0fec-4fe5-abb1-14b8bd0220bd",
   "metadata": {},
   "outputs": [],
   "source": [
    "#cambio(1,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "c015bb70-1d17-4d55-b0ed-ba7f3600a42f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\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} & \\frac{9}{2} & 0 & 0 & 1 & \\frac{2}{15} & -\\frac{1}{120} & \\frac{103}{3} \\\\\n",
       "{x}_{3} & \\frac{1}{6} & 0 & 1 & 0 & \\frac{1}{45} & \\frac{1}{360} & \\frac{71}{9} \\\\\n",
       "{x}_{2} & -\\frac{3}{2} & 1 & 0 & 0 & -\\frac{1}{30} & \\frac{1}{120} & \\frac{2}{3} \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & \\frac{295}{3} & 0 & 0 & 0 & -\\frac{2}{9} & -\\frac{19}{36} & \\frac{5210}{9}\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\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} & \\frac{9}{2} & 0 & 0 & 1 & \\frac{2}{15} & -\\frac{1}{120} & \\frac{103}{3} \\\\\n",
       "{x}_{3} & \\frac{1}{6} & 0 & 1 & 0 & \\frac{1}{45} & \\frac{1}{360} & \\frac{71}{9} \\\\\n",
       "{x}_{2} & -\\frac{3}{2} & 1 & 0 & 0 & -\\frac{1}{30} & \\frac{1}{120} & \\frac{2}{3} \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & \\frac{295}{3} & 0 & 0 & 0 & -\\frac{2}{9} & -\\frac{19}{36} & \\frac{5210}{9}\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[     B|    x1     x2     x3     s1     s2     s3|   rhs]\n",
       "[------+-----------------------------------------+------]\n",
       "[    s1|   9/2      0      0      1   2/15 -1/120| 103/3]\n",
       "[    x3|   1/6      0      1      0   1/45  1/360|  71/9]\n",
       "[    x2|  -3/2      1      0      0  -1/30  1/120|   2/3]\n",
       "[------+-----------------------------------------+------]\n",
       "[     Z| 295/3      0      0      0   -2/9 -19/36|5210/9]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(3,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "571fee72-89b9-4ddc-84ba-40f4759bc83f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[7.6296]\n",
       "[47.333]\n",
       "[    NO]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cocientes(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "1200be4b-9764-46c8-8519-a3f9b9ae61a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\(\\displaystyle \\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 & \\frac{2}{9} & \\frac{4}{135} & -\\frac{1}{540} & \\frac{206}{27} \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & -\\frac{1}{27} & \\frac{7}{405} & \\frac{1}{324} & \\frac{536}{81} \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & \\frac{1}{3} & \\frac{1}{90} & \\frac{1}{180} & \\frac{109}{9} \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & -\\frac{590}{27} & -\\frac{254}{81} & -\\frac{28}{81} & \\frac{107660}{81}\n",
       "\\end{array}\\right)\\)</html>"
      ],
      "text/latex": [
       "$\\displaystyle \\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 & \\frac{2}{9} & \\frac{4}{135} & -\\frac{1}{540} & \\frac{206}{27} \\\\\n",
       "{x}_{3} & 0 & 0 & 1 & -\\frac{1}{27} & \\frac{7}{405} & \\frac{1}{324} & \\frac{536}{81} \\\\\n",
       "{x}_{2} & 0 & 1 & 0 & \\frac{1}{3} & \\frac{1}{90} & \\frac{1}{180} & \\frac{109}{9} \\\\\n",
       "\\hline\n",
       " {Z_{ind}} & 0 & 0 & 0 & -\\frac{590}{27} & -\\frac{254}{81} & -\\frac{28}{81} & \\frac{107660}{81}\n",
       "\\end{array}\\right)$"
      ],
      "text/plain": [
       "[        B|       x1        x2        x3        s1        s2        s3|      rhs]\n",
       "[---------+-----------------------------------------------------------+---------]\n",
       "[       x1|        1         0         0       2/9     4/135    -1/540|   206/27]\n",
       "[       x3|        0         0         1     -1/27     7/405     1/324|   536/81]\n",
       "[       x2|        0         1         0       1/3      1/90     1/180|    109/9]\n",
       "[---------+-----------------------------------------------------------+---------]\n",
       "[        Z|        0         0         0   -590/27   -254/81    -28/81|107660/81]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cambio(1,1)"
   ]
  }
 ],
 "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": 5
}
