-----------------
ALGORITMO SIMPLEX para TI-89, TI-92, TI-92 Plus
----------------- v.1.2.2

Con opcin PASO por PASO


CONTENIDO
---------
- Compatibilidad
- Uso del programa
- Ejemplos
- Problemas conocidos
- Historia
- Crditos

COMPATIBILIDAD
--------------
El programa fue creado en una TI-89 HW1, AMS 2.03 y fue probado en AMS 1.00.
Tambin es completamente compatible con TI-92 y TI-92 Plus, funciona en todas
las versiones de ROM.


USO DEL PROGRAMA
----------------
Nota: Antes de archivar los programas ejectelos al menos una vez para que
se carguen ms rapidamente en las siguientes ocasiones; esto es para todos
los programas en lenguaje bsico.

El programa est compuesto por varios subprogramas, de los cuales NO TODOS
son necesarios.


* simplex()

Este programa llama a los distintos subprogramas segn sea necesario, as no
tendr que conocer la sintaxis de cada uno.


* simplxpp(mat,numvart)

Realiza simplex paso a paso sobre la matriz mat
numvart le indica al programa el nmero de variables artificiales, de no
existir debe ser 0.

El programa muestra el elemento pivote y las operaciones fila aplicadas.
Note que las operaciones indicadas no son aplicadas a una misma matriz, sino
que son aplicadas a la matriz que resulta de la operacin elemental anterior,
es decir a cada matriz se le aplica una sola operacin elemental, la matriz
mostrada es la que resulta de hacer un solo uno en la columna del elemento
pivote.

Nota: mat debe estar en forma cannica. Las letras z y w no se muestran.


* simplxsf(mat,numvart)

Muestra la solucin ptima (si existe) al aplicar simplex sobre la matriz mat.
numvart indica el nmero de variables artificiales, si no existen debe ser 0.

Nota: mat debe estar en forma cannica


* tsimplex()

Le ayudar a crear la tabla del simplex sin necesidad de indicar las variables
bsicas ni las artificiales.

La funcin z debe introducirse as: [x1,x2,...,xn,-z]
y de manera similar las restricciones: [x1,x2,...,xn,bm] indicando si es una
ecuacin o el tipo de inecuacin.

La funcin objetivo debe tener el mismo nmero de elementos que las
restricciones, as que primero determine el nmero mximo de variables xn
sin incluir variables bsicas o artificiales y de ser necesario introduzca
ceros para las variables correspondientes.

Las restricciones de tipo xi >= 0 no requieren ser includas.


EJEMPLOS
--------
Observacin:
 < significa <= (menor o igual que),
 > significa >= (mayor o igual que)


Ejemplo 1.

Min z = y - x + 1, sujeto a:

      -2x + y < 2
        x -2y < 2
        x + y < 5
         x, y > 0

Al usar tsimplex() (o seleccionando Crear tabla desde simplex()) introduzca:

Nm de restricciones: 3
Funcin Objetivo    : [-1,1,-1]
Problema            : Min

Restricciones
1: [-2,1,2]   <
2: [1,-2,2]   <
3: [1,1,5]    <

El programa crear la tabla:

           -2  1  1  0  0  2
            1 -2  0  1  0  2
            1  1  0  0  1  5
           -1  1  0  0  0 -1

llamada mat, con numvart=0

la solucin al problema es [4,1,9,0,0]

El valor de z se obtiene al evaluar esta solucin en la funcin z:
   z = -(4)+(1)+1 = -2


Ejemplo 2. (Variables artificiales)

Max z = -2x + y + 1, sujeto a:

         2x + y > 4
         -x + y < 4
        -3x + y >-15
         x      < 7
           x, y > 0

Num de restricciones: 4
Funcin objetivo    : [-2,1,-1]
Problema            : Max

Restricciones
1: [2,1,4]    >
2: [-1,1,4]   <
3: [-3,1,-15] >
4: [1,0,7]    <

tsimplex crear la tabla:
       2  1 -1  0  0  0  1   4
      -1  1  0  1  0  0  0   4
       3 -1  0  0  1  0  0  15
       1  0  0  0  0  1  0   7
       2 -1  0  0  0  0  0   1
      -2 -1  1  0  0  0  0  -4

con numvart=1

la solucin ptima en este caso ser: [0,4,0,0,19,7]

   z= -2(0)+4(1)+1 = 5


PROBLEMAS CONOCIDOS
-------------------
> Si tiene AMS 2.0x en su TI-89 debe desactivar el alpha-lock en cada
  cuadro de dilogo del tsimplex.
> Si la matriz es muy grande no podr visualizarla por completo en la
  pantalla PgrmIO, usando simplexpp.


HISTORIA
--------
> (v.2.0)
> v.1.2.2
  Errores ortogrficos corregidos.
  Corregida incompatibilidad con TI-92 (Agradecimiento a Juan Carlos Carvajal)
  Corregidos errores en algoritmo.
> v.1.2.1
  Algunos ligeros cambios.
> v.1.2
  Nueva interfaz, texto de ayuda actualizado.
> v.1.1
  simplex() corregido, ahora compatible con TI-92 Plus.
> v.1.0
  Primera versin, incompatible con TI-92, TI-92 Plus.


CRDITOS
--------
Creado por:

Esteban Richmond Salazar
papers@costarricense.com

Enveme sus comentarios, dudas o errores que encuentre relacionados con este
programa.