miércoles, 30 de noviembre de 2011

TECNOLOGÍA II: AIMMS

AIMMS

Es un sistema de programa de optimización, que permite  por medio de su tecnología de optimización  tomar decisiones complejas de forma más eficiente, con el fin de encontrar y analizar sus mejores soluciones.
Uno de los problemas que se pueden programar en esta herramienta son los problemas de transporte, por medio de un ejemplo se  observara la forma de resolverlo.
Descripción del problema
Desde dos plantas, se envían camiones de cerveza a cinco clientes durante un periodo de tiempo determinado. La capacidad de suministro de cada planta así como la demanda de cada cliente (medido en camiones de cerveza) son conocidas. Los costes de transporte de un camión cargado al desplazarse desde  una planta a un cliente también se conocen.
El objetivo es encontrar un plan de envíos con el mínimo costo  de acuerdo con el cual desplazar los camiones de cerveza de tal forma que se satisfaga la demanda y de manera que los envíos no excedan la capacidad de cada planta de cerveza.
Clientes plantas
Costo de transporte unitario
Madrid      Tarragona   Santander   Albacete     Sevilla
capacidad
Cáceres
297                  831           573                  504           264
47
Zamora
248                  694           344                  499           536
63
Demanda
31                     16              22                    12             28



Datos de entrada del problema de la cerveza
Declaraciones del problema:
Índices:
P  plantas
C  clientes
Parámetros:
Op oferta o capacidad de cada planta p
Dc demanda de cada cliente c
CTpc  coste unitario de transporte desde p a c
Variables:
Xpc  camiones transportados desde p a c
Z  coste total de transporte
Al ser solucionado y analizado, se desea obtener el menor costo de trasporte a las diferentes ciudades y además que se cumpla con la demanda, por lo tanto se obtiene lo siguiente.
Minimize:        pcxpc

Subject to:   
                        pc Op      p
                       
                        pc Dc    c
                            
xpc 0 p, c

Ya es de suponer que se tiene el programa de AIMMS instalado en el ordenador, por lo tanto se procede a introducir los índices:

1.     Abrimos la declaration section, haciendo doble clic en el icono.

Después de haber abierto la declaration se activaran los iconos en la barra de herramientas. Esto es con el fin de insertar el identificador estándar.

2.     A continuación se agregan el conjunto de plantas de la siguiente manera.

 Presiona el botón Set . Se crea un nuevo conjunto de árbol de modelo
 el nombre a colocar es “planta” y se prosigue a dar enter con el fin de confirmar.

3.     Declaramos  el índice p como un atributo del conjunto de plantas.
Entonces se abre la ventana realizando doble clic en el nodo “plantas”. Quedara de la siguiente manera.



Entonces declaramos el índice p.

Moviendo el cursor al campo “Index”, y se da clic en el campo vacio. Donde se procede a colocar la letra “p” y ce cierra la ventana presionando el icono  que tiene por nombre Check, commit and close.

3.     Ahora  se declaran el conjunto de clientes, a donde van los productos, a esta declaración se le denotara con la letra “c” de la misma forma que se declaro el conjunto de plantas con el índice “p”. el árbol va quedando de la siguiente manera.

4.     Ahora se procede a declarar los parámetros, se relaiza d ela misma forma en la que se declaran los conjunto “plantas y clientes”.

Entonces introducimos el parámetro de “oferta “. Se realiza de la siguiente forma:

Se presiona el icono de introducir un parámetro . En el árbol de modelo se abrirá un nuevo parámetro la cual se llamara “oferta (p)”  y se presiona enter para confirmar o registrar el nombre

El identificador p que esta dentro de el paréntesis es el indicador de oferta.

De la misma forma se realiza en el árbol un nuevo parámetro pero ahora es llamado “demanda(c)”

5.     Ahora se procede a declarar los parámetros, se relaiza d ela misma forma en la que se declaran los conjunto “plantas y clientes”.

Entonces introducimos el parámetro de “oferta “. Se realiza de la siguiente forma:

Se presiona el icono de introducir un parámetro . En el árbol de modelo se abrirá un nuevo parámetro la cual se llamara “oferta (p)”  y se presiona enter para confirmar o registrar el nombre

El identificador p que esta dentro de el paréntesis es el indicador de oferta.

De la misma forma se realiza en el árbol un nuevo parámetro pero ahora es llamado “demanda(c)”

6.     Se introduce el ultimo parámetro la cual es lo que se desea buscar, este se llamara “costo unitario Transporte” este parámetro es de dos dimensiones (P,c), se ingresa  con el siguiente nombre .”costo Unitario Transporte (p,c), por lo tanto el árbol de decisión queda de la siguiente forma.
Esta variable es utilizad apara dar el valor de la función objetivo.

7.     Se  ingresan las variables, es de la misma forma de ingresar los parámetros.

Se presiona el icono . Se creara una variable nueva en el árbol de modelo, la cual se

Llamara “Transporte (p,c)”   y se presiona enter para confirmar el nombre.

8.     Ahora se hace click ene le nodo de “trasporte” en el árbol . La ventana de dialogo resultante permite especificar el rango de valores que puede tener la variable “trasporte”.
En este caso se selecciona el “ standard Range” y “nonnegative”. Y se termina dándole click en ok


9.     Ahora se introduce la definición variable
sum[ (p,c), UnitTransportCost(p,c) * Transport(p,c) ]


10.     Introducimos las restricciones de oferta y demanda, cada una con su propia definición

Se realiza el mismo procedimiento de las variables con la única diferencia del icono en este caso se hace click en el icono


La restricción oferta
Restricción demanda, de esta forma quedara
11.     Seleccionar  la entrada ‘Mathematical Program’ mediante el icono . Se presiona el botón ok y se procede a escribir “planminimocostoTransporte”
12.     Se rellena  la ventana de características del programa 

13.     El asistente para la definición objetivo, requiere seleccionar una variable escalar. Se realiza de la siguiente forma

14.     Introducimos ahora los datos que nos brinda el problema.

Los datos del conjunto de plantas se ingresan de la siguiente forma.
Se abre la ventana de carácter del conjunto plantas y se presiona el botón Data
Mueve el ratón a la página de datos tal, se le da clic en el campo vacío en la parte superior de la pagina y se procede a escribe ‘Caceres’ como primer elemento del conjunto y enter.
luego  Zamora, enter y así sucesivamente con el resto de datos

15.     Se ingresan los elementos del conjunto clientes de la misma formas de el conjunto plantas,

16.     Ingresamos los datos que van relacionados con los parámetros.

Parámetro ‘Oferta’.
Abre la ventana de características del parámetro ‘Oferta’,
Presiona el botón Data ,
Mueve el raton a la primera celda y haz clic,
Escribe el numero 47,
Presiona la tecla Enter para registrar el primer valor,
Escribe el número 63,
Presiona la tecla Enter para registrar el segundo valor, y
Cierra la pagina de datos presionando el boton Close

17.     Ingresan los valores de los parámetros de demanda de la misma forma que se han ingresado los de la oferta  De esta forma se verán los datos.    
18.     Se procede a guardar el problema o cambios relazados mediante el icono  Check, commit and close

19.  Calculo de la solución

Ya obtenemos el resultado que nos ofrece el problema se introduce
Dos líneas de código dentro del cuerpo del procedimiento MainExecution que
Existe por defecto (y que esta vacío).
Hacer clic en la variable MainExecution en el árbol del modelo.

Es la solución del problema mostrado dando clic derecho, ventana emergente  y comando
Data.
El resultado obtenido es que Cáceres envía 6 unidades a Madrid, 12 Albacete y 28 a Sevilla.
Y Zamora envía 25 unidades a Madrid 16 Tarragona y 22 a Santander.

sábado, 19 de noviembre de 2011

TENDENCIAS II: TEORIA DE JUEGOS Y CADENA DE SUMINISTROS

Uso de la teoría de Juegos en la gestión de la cadena de suministro
Antes de hablar sobre el uso de la teoría de juegos y la relación que existe entre éste y la gestión de la cadena de suministro, hablaremos de sus respectivas definiciones.
La cadena de suministro es un subsistema dentro del sistema organizacional que abarca la planificación de las actividades involucradas en la búsqueda, obtención y transformación de los productos. La cual incluye la coordinación y colaboración de los socios del canal, o flujo de transmisión de los insumos o productos, sean estos proveedores, intermediarios, funcionarios o clientes. En esencia, la cadena de suministro integra la oferta y la demanda tanto dentro como fuera de la empresa. Por ello se habla de “cliente interno”, y de demanda y oferta interna, para establecer los pasos y acciones específicos en la cadena productiva. Además, incluye todas las actividades de gestión y logística y por ello está presente en cada fase del proceso. También permite una gestión efectiva y, a través de los flujos de información, mejora el servicio al cliente y de la cadena de Valor.
Mientras que la gestión de la cadena de suministro se refiere a las herramientas y métodos cuyo propósito es mejorar y automatizar el suministro a través de la reducción de las existencias y los plazos de entrega, es decir; hace referencia a la planificación, organización y control de las actividades de la cadena de suministro.
TEORÍA DE JUEGOS
Primero que todo definamos que es un juego. Un juego es una herramienta matemática que analiza las interrelaciones entre dos o más individuos, y busca un modelo de actuación óptimo; en otras palabras, no es más que un problema de toma de decisiones en el que participan dos o más individuos, ya sean decisores, jugadores, agentes, controladores, entre otros.
La teoría de juegos es un área de la  matemática aplicada que utiliza modelos para el estudio de interacciones en estructuras formalizadas de incentivos (los llamados juegos) y llevar a cabo procesos de decisión.
La teoría de juegos estudia la elección de la conducta óptima cuando los costes y los beneficios de cada opción no están fijados de antemano, sino que dependen de las elecciones de otros individuos, es decir, que aunque tiene algunos puntos en común con la teoría de la decisión, estudia decisiones realizadas en entornos donde interaccionan.
Tiene muchas aplicaciones como en la económica, en la ciencia política, en la biología, entre otras. Pero como se mencionó anteriormente, veremos cómo es su uso en la gestión de la cadena de suministro.

BITACORA II

BITACORA II
En esta bitácora explicaremos la clase que hemos dado en el tercer corte de investigación de operaciones II, básicamente el  temas está centrado en la teoría de colas.

Clase: Teoría de colas

El día 25 de Octubre comenzamos la clase leyendo un artículo sobre teoría de colas que el profesor había dado previamente en clases. Dicho artículo nos explicaba que existen tres métodos para analizar problemas con teoría de colas, los cuales son:

Análisis subjetivo

Análisis Matemático

Análisis con Simulación

Luego, el profesor procedió a explicarnos las partes de una cola que son: Fuente de entrada, sistema de cola y mecanismo de servicio.
Aquí mostraremos unas figuras que nos ilustran cuales son las partes de las colas y como es su funcionamiento:
 

 
 
Este grafico nos muestra los diferentes tipos de colas que pueden existir:
 
 
 Posteriormente, el profesor continuó con la explicación de los modelos Markovianos los cuales se caracterizan por tener la propiedad de pérdida de memoria. Después nos enseñó la notación de Kendall que está conformada por los siguientes factores:

Dist del número de llegada/Dist del tiempo de servicio/Numero de servidores: Disciplina de cola/Cant max de cola/Tamaño de fuente

Más tarde, definió los símbolos de dicha notación que son:

M: Markoviano (exponencial)

D: Constante (degenerada)

Ek: Elongación de parámetro k

G: General

S: Servidores

Entonces las colas pueden quedar como por ejemplo: M/M/1,    D/M/3,   M/G/1,  ETC.                      Las colas Markovianas se presentan cuando las entradas y las salidas son de tipo exponencial, dichas colas son una cadena de markov en tiempo continuo donde el número de  estados es el número de clientes en cola, en el tiempo t. El análisis de colas markovianas se hace en estado estable.

Terminología y notación  

L: Cantidad esperada de clientes en el sistema

Lq: Cantidad esperada de clientes en cola

W: Tiempo esperado de un cliente en el sistema

Wq: Tiempo esperado en la cola

Procesos de muerte y nacimiento

Salida de cliente: Muerte

Entrada de cliente: Nacimiento

Supuestos básicos
1.       Distribución de probabilidad del tiempo que falta para el próximo nacimiento es exponencial con parámetro lambda.
2.       Distribución de probabilidad del tiempo que falta para la próxima muerte es exponencial con parámetro miu.
3.       Los dos supuestos anteriores son mutuamente independientes ( puede nacer y morir al mismo tiempo)