SS_Logo

Maximizando la precisión: los parámetros en modelos de optimización en GAMS

Autor: Marcela María Morales Chávez / Portafolio: Scientific / Jue. 17 de Ago de 2023

Transcripción de este video

00:00:27:12 Software SOC. La empresa líder en la implementación de herramientas analíticas y software especializado en Latinoamérica, les da la bienvenida a esta sesión, la cual contará con el acompañamiento de Marcela Morales Chávez. Marcela es ingeniera industrial con más de 100 en investigación de operaciones y Estadística de la Universidad Tecnológica de Pereira. Candidata a Doctora en Ingeniería en la Universidad Nacional de Colombia como docente.

00:00:53:23 Investigadora de la Facultad de Ingeniería de la Universidad Libre Seccional Pereira. Se interesa en la modelación y optimización de sistemas de operaciones y logística. Ha sido investigadora invitada por la Universidad de Ciencias Aplicadas de Asia y por el MIT Z LC en España. Es investigadora activa y ha dirigido diversos proyectos de investigación y consultoría en temas relacionados con la investigación de operaciones y la optimización de cadena de abastecimientos y transporte.

00:01:18:23 Bienvenidos pues muy buenos días. Feliz de que nos encontremos nuevamente en estos espacios en donde hablamos de esos modelos de optimización, de cómo nos pueden ayudar a solucionar esos desafíos que tenemos en nuestras empresas. Hoy vamos a hablar sobre sobre cómo va, cómo vamos. Nos ayuda a calcular esos parámetros de entrada que son tan esenciales en los modelos de optimización que desarrollamos.

00:01:42:08 Entonces, el contenido de la presentación se va a resumir en tres puntos. ¿Primero vamos a hablar de esa importancia de sus datos de entrada, como influyen? ¿Qué pasa cuando no hacemos unas estimaciones correctas? Luego vamos a ver cómo Gans nos ayuda a disminuir los errores de cálculo y que funciones podríamos utilizar para poder calcular de mejor manera esos esos datos.

00:02:25:05 Y vamos a finalizar obviamente con un ejemplo en donde vamos a mostrar la utilización de un par de funciones que son las que vamos a ver hoy y vamos a analizar los resultados. Entonces vamos a empezar hablando de que son esos modelos de optimización, entonces vamos a decir que son herramientas matemáticas poderosas, pues nuestra comunidad sabe que la importancia que tienen esos modelos en el en la toma de decisiones cotidiana en nuestras organizaciones, sí que por lo general lo que hacemos es buscar objetivos, como minimizar costos, maximizar beneficios, minimizar tiempos, maximizar impactos positivos.

00:02:54:01 ¿Todo esto a partir de qué? Pues de las signación eficiente de los recursos de personal, maquinaria, inventario presupuesto. ¿Ahora, pero cómo funcionan esos modelos de optimización? Pues entonces esos modelos funcionan a partir de esos datos. De entrada es cierto que son los que van a determinar como la naturaleza de nuestro problema es toda esa información que contiene la empresa que necesitamos para poder tomar esas decisiones.

00:03:23:06 Entonces, estos estos parámetros pues van a definir el comportamiento a nuestros modelos y obviamente van a afectar los resultados. Son como los ingredientes de la red. Es cierto, en la medida que estos ingredientes sean de calidad y sean precisos, pues vamos a poder obtener unos resultados o una receta con mejor sabor. Es que en nuestro caso va a ser van a ser unos resultados confiables y con mucha validez.

00:03:53:10 ¿Entonces empezamos a pensar en que estos parámetros no son solamente números, cierto? Estos datos van a definir la naturaleza de nuestro problema y además nos van a mostrar cuáles son las restricciones que debemos tener en cuenta cuando estemos modelando nuestro sistema. Ahora, por ejemplo, si estamos hablando de un sistema de distribución de producto, pues los costos de envío me van a definir todo mi problema.

00:04:29:12 Cierto, también las capacidades de almacenamiento. ¿Qué pasaría? ¿Me están escuchando bien? ¿Hola, sí Marcela, sin problema es que escuchen retorno Ok, entonces qué pasaría si no tenemos bien calculado una capacidad de almacenamiento, unos costos de envío, cierto? ¿O por ejemplo, la demanda de los productos? Si tenemos errores o imprecisiones en estos datos, pues vamos a tener problemas a la hora de obtener los resultados de nuestro modelo, Pues vamos a decir que tenemos que esos parámetros son críticos porque configuran la esencia de nuestro problema.

00:04:55:02 Entonces vamos a hablar un poquito de cuál es el impacto, esos de que los parámetros sean incorrectos. Hablando de tres ejemplos puntuales, imaginemos la planificación de la producción. Entonces vamos a desarrollar una empresa que desarrollar un modelo de optimización que le ayude a planificar la producción de esa empresa. Entonces, uno de los datos de entrada así pues, va a ser la la va a ser la tasa de producción.

00:05:31:16 ¿Qué pasa si no tenemos o tenemos una tasa de producción imprecisa o incorrecta? Pues podemos hacer asignaciones irreales para los recursos disponibles. Cierto, Podemos tener una programación de producción inalcanzable y eso va a generar unos costos excesivos debido a la falta de eficiencia. Entonces, puede que nuestro modelo matemático esté muy bien formulado. Sin embargo, si los datos de entrada que le estamos suministrando al modelo no están calculados de la manera apropiada, pues el modelo, por mejor formulado que esté, no los va a generar las soluciones que nosotros esperamos.

00:05:57:13 Veamos otro ejemplo. Hablemos, por ejemplo, de la optimización de inventarios, que es uno de los temas que más requieren las empresas que manejan bienes. Entonces, si la tasa de demanda no está bien calculada y no tenemos unos pronósticos adecuados de la demanda, pues puede ocasionarnos sobre compra o escases de productos en el almacén, que sabemos que eso influye altamente en los costos.

00:06:32:14 Además en la satisfacción del cliente que también puede generar en ventas pérdidas. Cierto, entonces vemos cómo solo uno algunos parámetro puede influir drásticamente en nuestras soluciones. Y también sabemos que nuestros modelos de optimización no solamente tienen un parámetro de entrada, sino que tienen un conjunto. Es. Veamos otro ejemplo la planificación de rutas de entrega. Entonces, cuando vamos a planificar las rutas de entrega de una empresa, un operador logístico, entonces tiene que calcular muy bien esos tiempos de viaje y las restricciones de tráfico.

00:07:07:00 ¿Qué pasaría? ¿Dónde había una estimación incorrecta de estos parámetros? Pues vamos a tener entregas tardíos, vamos a tener clientes insatisfechos y vamos a tener una pérdida de eficiencia en la operación de. Entonces empezamos a observar que definitivamente nuestros datos de entrada configuran toda la validez de nuestros, de nuestros resultados, de nuestros modelos de optimización. Entonces, no basta con que formulemos muy bien el modelo, tenemos que garantizar la precisión de esos parámetros de entrada.

00:07:38:08 ¿Ahora, sugerencias, eh? Para abordar esta esa calidad de los datos, pues tenemos que tener fuentes confiables. Si vamos a utilizar información secundaria, pues que sea una fuente muy confiable. Si no, vamos a hacer estimaciones directas, le sugiero que utilicemos todas las herramientas estadísticas que tenemos a nuestra disposición. También podemos utilizar la validación cruzada para comparar datos para mirar qué tan precisos están nuestras estimaciones.

00:08:05:03 Sí, y lo otro, que también es muy importante, es actualización regular. Nuestros datos se vuelven obsoletos. Entonces tenemos que estar actualizando los datos para que pues la calidad de la información que vamos a manejar sea muy, muy confiable. Ahora, después de toda esta prueba. Bueno, pues entonces vamos a ver un ejemplo, el ejemplo. Vamos a ver un ejemplo sencillo, un ejemplo de asignación de tareas.

00:08:47:08 El objetivo del ejemplo es mostrarles cómo podemos calcular esos parámetros de entrada utilizando un par de funciones, digamos, en realidad no nos da una diversas funciones y vamos a ver un par en particular. Entonces vamos a decir que nuestro ejemplo es la asignación de cuatro colaboradores a cuatro tareas. O sea, es un ejemplo típico de asignación. Vamos a decir que esos colaboradores tienen asociado un costo por hora y también tiene asociadas unas habilidades, pues cada cada colaborador se les.

00:09:17:12 Se les hace un test y tienen unas habilidades identificadas. Por ejemplo, el colaborador, uno de las cuatro habilidades que pueden tener o que es que tiene dos. El colaborador dos tiene tres tiene dos habilidades, el colaborador tres tiene tres y el colaborador cuatro tiene cuatro habilidades. Entonces tenemos asociados a los colaboradores costos y número de habilidades para desarrollar esas tareas.

00:09:49:10 Ahora, por otro lado, vamos a decir que las actividades tienen asociadas un número de horas, o sea, tiempo que se requiere para realizar esa actividad. Por ejemplo, la actividad dos se tarda ocho horas. La actividad cuatro se tarda seis horas. Si cada actividad tiene asociado un tiempo y además tiene asociado un puntaje mínimo que requiere para que tenga el colaborador que va a desarrollar esa actividad.

00:10:35:15 Entonces tenemos colaboradores, tenemos actividades, tenemos unos colaboradores que cobran por hora, tenemos unas actividades que tienen ciertas número de horas para realizarse, tenemos un número de habilidades que tienen los colaboradores y tenemos unos puntajes mínimos que requiere cada actividad para poderse desarrollar. ¿Qué más tenemos? ¿Qué más datos tenemos de nuestro ejemplo? Ahora nos están dando una tabla donde dice que si el colaborador tiene una habilidad va a tener un puntaje de cinco, que si el colaborador tiene dos habilidades, obtiene un puntaje de siete, que si tiene tres habilidades tiene un puntaje de diez y que si tiene cuatro más tiene un puntaje de 15.

00:11:06:08 Si vemos como estos datos no son proporcionales, simplemente es una tabla generada por la empresa. Es que esto nos va a permitir definir qué colaboradores pueden hacer cada una de las actividades de acuerdo con esos puntajes mínimos requeridos por la actividad. Ahora también nos dice que cada colaborador debe realizar una actividad y que cada actividad debe realizarse por un solo colaborador.

00:11:35:02 ¿Si eso van a ser restricciones que vamos a tener en cuenta en nuestro modelo, entonces cuál es? ¿Qué es lo que necesitamos hacer con toda esa información? Pues entonces nos dice OK, asigne los colaboradores a las actividades de tal manera que se cumplan con los requerimientos de los puntajes de cada uno. Solamente hago una actividad y además que se minimicen los costos.

00:11:59:09 Entonces aquí tenemos las tres como los tres aspectos fundamentales de un modelo de optimización que hemos hablado, de los que hemos hablado las sesiones anteriores y los que no han podido estar con nosotros. Recuerden que todos los videos están en nuestra página despacho. ¿Entonces, dónde los pueden? ¿Donde los pueden revisar? ¿Entonces, cuáles serán? ¿Son esos tres aspectos fundamentales?

00:12:33:03 ¿Tenemos primero decisiones? ¿Qué decisiones vamos a tomar? ¿Pues qué colaborador va a ser cada que actividad sea cada uno de los colaboradores? ¿Cuál actividad va a realizar? Cuál es nuestro, nuestro objetivo, nuestra función objetivo minimizar los costos. Sí. Y el tercer componente serían las restricciones. ¿Y qué restricciones tenemos? Pues tenemos restricciones de los puntajes mínimos y que cada colaborador pueda hacer exactamente una actividad y que cada actividad puesta no puede realizarse solo por un solo colaborador.

00:13:03:00 Entonces tenemos nuestro esquema. ¿Qué sigue? Empecemos entonces vamos a definir primeros maestros conjuntos. Entonces este ejemplo lo vamos a hacer, lo vamos a ir haciendo, vamos a ir pasando de la modelación, vamos a ir pasando de vez al 11 para irlo construyendo. Espero que todos tengan sus ganas. Oye, entonces vamos a empezar con nuestro primer bloque. Sabemos que nuestro primer bloque es el bloque de conjuntos.

00:13:38:23 En nuestro caso vamos a tener solo dos conjuntos, vamos a tener un grupo de colaboradores, un conjunto de colaboradores que lo voy a llamar C de colaboradores y vamos a tener otro conjunto, que es el conjunto A, que es del de actividades C Entonces voy a venir para acá, voy a pasar mi y me deja y voy a pasar mi un point por este lado y por favor continuemos.

00:14:17:05 Están viendo mi pantalla. Correcto, Marcela Muy bien, entonces vamos a empezar y vamos a decir OK, empecemos con el bloque de conjuntos. Y entonces qué dijimos que tenemos exactamente dos conjuntos. Recuerden que el bloque de conjuntos lo inicializamos con la instrucción SET y que vamos a definir dos conjuntos. Uno que lo llamamos colaboradores. Vamos a ingresar los datos directamente en él.

00:15:13:03 Vamos. Recuerden que la vez pasada lo hicimos desde el Excel, pero esta vez lo vamos a hacer desde acá. Entonces, colaboradores, vamos a decir que van a ser cuatro colaboradores, entonces digo que va a ser desde ese uno hasta hace cuatro. Sí, recuerden que en la función de este asterisco es que me inicia desde el primer elemento y me lo llevo a consecutivo mente hasta el último elemento que lo que yo defino que termine y vamos a definir el siguiente Espéreme, yo voy a poner esto un poquito más grande en aquí, yo creo que aquí, y vamos a definir otro conjunto que va a ser el conjunto, que son actividades y vamos a decir que

00:16:00:18 actividades va a ir desde a uno hasta A4C y recuerden también que siempre finalizamos con un punto y coma cada uno de los bloques. Entonces tenemos nuestro primer bloque conjunto fácil. ¿Entonces vamos a volver, miremos qué sigue, entonces vamos a mirar los parámetros de entrada, qué parámetros de entrada tenemos? Recuerden que este es el centro de este modelo C Entonces el primer parámetro que nos dieron nos dieron un costo por hora, costo por hora de cada uno de los colaboradores.

00:16:29:20 Como yo llamé al conjunto de los colaboradores. C Vamos a decir que tenemos un costo por hora. ¿El colaborador C Así que otro parámetro tenemos el número de habilidades de cada colaborador, cierto? Entonces sería lo llamé no habilidades. Supuse que sería el número de habilidades del colaborador C y se dato también nos lo dieron. Tenemos las horas requeridas para realizar cada una de las actividades.

00:16:54:06 Yo la llame horas actividad a que serán las horas requeridas para realizar la actividad A y el último parámetro que nos dieron fue el puntaje mínimo que se requiere para realizar la actividad que para realizar cada una de las actividades. Entonces esto es para los que nos dieron, vamos a entregarlos acá vamos y vamos a mirar qué pasa con estos datos.

00:17:38:14 Volvamos, lo vamos a ir montando a nuestro con y entonces para poder agregar bueno, vamos a decirle que vamos a hacer el bloque Parámetros parámetro de entrada que estoy poniendo mis comentarios. Recuerden que los comentarios los ponemos con el asterisco cuando está pegado el lateral izquierdo, entonces me permite poner comentarios porque todos nuestros modelos de estar bien documentados para que luego que lo vayamos a revisar pues recordemos que fue lo que programo ahora.

00:18:17:05 Es como ver el primer parámetro del que hablamos fue el costo costo por hora del colaborador C, ahora como es de costo por hora está en forma de vector, entonces vamos a utilizar la función Parameter que ya la hemos manejado y lo llamamos costo hora y dijimos que se va a variar en C. ¿Ahora, cuáles son los datos que tiene este parámetro?

00:18:52:21 Pues según la tabla de datos que nos da el ejercicio decía que Colaborador uno nos cobra diez unidades monetarias. La hora que el colaborador dos nos cobra 11 unidades monetarias, el colaborador tres ocho y el colaborador cuatro nos cobra nueve. Vamos a finalizar con un punto y coma. Ese sería el primer parámetro de entrada. ¿Ella no le está dando el ejercicio ahora, cuál es el siguiente?

00:19:44:12 El siguiente parámetro dice que es el número de habilidades. El número de habilidades del colaborador. Sé. Y entonces es que lo llamo. Lo llamé No habilidades que varía con el conjunto. Es porque para cada colaborador, pues ahí corresponde un número de habilidades diferente. Y vamos a decir entonces que bueno que eso también es un está en forma de Héctor, entonces le vamos a poner la función Parámetros y vamos a decir que Colaborador uno recuerden que acá no tiene, no tiene problema entre mayúsculas y minúsculas.

00:20:21:00 En realidad yo utilizo las mayúsculas y minúsculas, es por gusto propio, pero no, no tiene ningún problema con eso. Pero vamos a decir que el colaborador uno tiene dos actividades, dos habilidades perdón, que el color del colaborador dos tiene dos. También el colaborador tres tiene tres y el colaborador cuatro tiene cuatro. ¿Sí, bueno, cuál es el otro de los otros dos parámetros que teníamos?

00:21:09:15 O sea, es decir, que teníamos otro que se llama hora requeridas para realizar la actividad, la actividad porque tenemos varias actividades y que también está en forma. Héctor Por eso utilizamos para anotar y que la llamen horas actividad y que va a depender o que va a estar relacionado con cada una de las actividades. Por eso recuerden que es importante definir primero los conjuntos, porque luego cuando ponemos nuestros nuestros parámetros, pues vamos a llamar o a utilizar esos conjuntos.

00:21:49:12 ¿Desde aquí ya sabemos que este A es el conjunto que definimos que tiene cuatro actividades y ahora qué valores tiene? Entonces vamos a tener que la actividad uno requiere un punto hasta niveles de actividad tiene si requiere cinco horas, la actividad dos requiere ocho horas. La actividad tres requiere siete horas y la actividad cuatro requiere seis horas. Finalizamos con esto puntico.

00:22:24:22 Ahora, yo también podría poner solo un parámetro y poner todos los todos estos parámetros y poner un punto y coma solo al final. Pero la verdad a mí por organización me gusta acá parámetro ponerle su porque a veces uno empieza a combinar tablas y para metros de escalares, entonces ya es por organización del programador que lo define. Si le pone a cada uno su función de parameter o también podríamos simplemente quitarle ese punto y coma y dejar el parameter de acá arriba.

00:23:05:16 El que coge los datos, sí, pero la verdad a mi me parece más organizado de esta manera, sobre todo cuando quisiéramos mover las ubicaciones, organizar los datos en para visualizarlos como a nosotros nos parezca más sencillo. Ver ahora el último parámetro que nos da el modelo en el ejercicio, pero es el puntaje mínimo requerido para realizar la actividad.

00:23:34:09 Entonces vamos a decir que también es un parámetro. Recuerden que parameter es porque está en forma de vector, o sea que tiene una sola columna de datos también. Recuerden que también hablamos de cuando los datos están en forma de tabla, o sea que tienen varias columnas. Ya no utilizaríamos la función parameter, sino la función table, que ahorita más adelante la vamos a utilizar.

00:24:17:01 Entonces ese puntaje mínimo también va a depender de cada una de las actividades y nos está diciendo que la actividad uno requiere mínimo cinco unidades o cinco puntos. La actividad dos requiere mínimo diez. La actividad tres requiere mínimo seis. En la actividad cuatro requiere mínimo nueve. No. Entonces, hasta aquí eso son los datos que nos da el ejercicio.

00:25:23:21 ¿Ahora empecemos a analizar si es que necesitamos más datos, cierto? O como lo necesitamos. Entonces, si observamos, sabemos cuánto es el costo por hora de cada colaborador y también sabemos las horas requeridas para realizar cada actividad. ¿Pero en realidad, finalmente que necesita saber? Necesitamos saber cuánto me cuesta. Por ejemplo, este colaborador uno Si realizara esta actividad que se demora cinco horas después, intuitivamente decimos pues multiplique lo dicho, pues en este caso tendríamos que obviamente multiplicar, pues que este colaborador nos cobra diez que sí sé que si se hace esa actividad se demora cinco horas y así pues como cada una de las actividades, cierto, entonces tendríamos que hacer una multiplicación sencilla de cuánto costaría cada

00:26:05:06 uno de nuestros colaboradores para cada una de las actividades. Si ahora esto lo podríamos decir no, pues entonces calculo lo primero en Excel o a ver, calcule usted, ingrese el parámetro directo, pero también podemos ver que Games nos ayuda a hacer esos cálculos previos para poder llegar al al valor que necesitamos introducir en nuestro modelo de optimización. Ahora, acá es un ejemplo sencillo porque apenas tenemos cuatro, cuatro colaboradores y cuatro actividades, pero normalmente nuestras empresas, pues cuando vamos a asignar no solamente estamos hablando de personas, pero podemos asignar más recursos.

00:26:34:15 Bueno, entonces no solamente van a ser cuatro, sino que no por lo general manejamos una cantidad mayor, entonces pues la idea es que sigamos, lo puede hacer por nosotros. En nos evitamos tener que hacer estos cálculos en nosotros mismos, entonces tenemos un costo por hora que ya lo sabemos y tenemos las horas de cada actividad que necesitaríamos. Calcular el costo de cada colaborador.

00:27:19:05 Si realiza cada una de las actividades, nos vamos a crear un parámetro nuevo que es costo del colaborador. C Si realiza la actividad, entonces vámonos. Traigamos pues cómo el parámetro es falso del colaborador. C Si realiza la actividad.

00:27:49:15 Entonces vemos que no solamente voy a tener no solamente voy a tener una columna, voy a tener se filas número de colaboradores por a columnas, que sería el número de actividad como es esta en forma de tabla. Entonces ya no vamos a utilizar la función parámetro, sino que vamos a utilizar la función table, que ya la hemos venido utilizando en nuestros encuentros anteriores.

00:28:16:09 ¿Ahora, qué es lo nuevo aquí? ¿Como vamos a hacer un cálculo en tres parámetros, entonces primero tenemos estos y entonces lo que hemos visto en nuestras sesiones anteriores, entonces qué vamos a hacer? Primero tenemos que definir el parámetro, entonces vamos a definir, definir el parámetro nuevo que se llama costo y que ese costo va a depender del conjunto C y también va a depender del conjunto.

00:28:49:00 Ah sí, porque es el costo de cada uno de los colaboradores por cada una para cada una de las actividades. Entonces, primero lo defino para luego poder decirle acá que haga el cálculo, no lo puedo hacer al mismo tiempo, las dos cosas sí. Lo primero lo defino leo y el nombre. Le digo que es una tabla y luego copio exactamente el mismo nombre que ya definí y ahora sí le voy a asignar el valor.

00:29:32:14 ¿Y cuál va a ser el valor? Pues nosotros ya sabemos cómo calculamos ese costo. Entonces le decimos Gunz, necesito que usted tome por favor el costo por hora de cada colaborador que lo tenemos acá. Sí, y lo multiplique por las horas que se tarda cada una de las actividades y le damos punto y coma. Ahora miremos que digamos le voy a decir que me muestre, que me muestre ese costo.

00:30:07:08 No corremos aquí y digámosle que nos muestre. Entonces nos muestra el cálculo, que es el que nos muestra. Si el colaborador uno hace la actividad uno, pues cuesta cinco, entonces el colaborador uno hace la actividad dos cuesta 80. Si el colaborador uno hace la actividad tres cuesta 70. Y si el colaborador uno hiciera la actividad cuatro nos costaría 60.

00:30:36:01 Y hace el mismo cálculo para cada uno de los cuatro colaboradores con cada una de las cuatro actividades. Entonces, pues si fueran 50 por 50 o lo que sea, pues el automáticamente lo hace y nosotros solamente nos costo hacer este renglón de CaixaBank Sí. ¿Entonces, qué es? ¿Lo importante aquí? Es que definamos primero el parámetro y luego le asignemos la ecuación o el cálculo que queremos.

00:31:15:07 Así no funciona. Si lo hacemos así, diré sí. Si lo hacemos así, directo, vamos a generar un error. Entonces siempre nos pide primero definamos el parámetro y luego asignemos los valores que en este caso es nuestra acción. Muy bien, hasta ahí tenemos nuestro primer parámetro calculado a partir de los otros parámetros dentro. Miremos que más tiene este ejemplo para nosotros que es acá tenemos los datos que les acabo de mostrar que nos hizo DA y es digamos, observa todas.

00:31:47:16 Además de eso nos dice de acá, Colaborador tiene un número de habilidades, cierto, tiene un número de habilidades y por otro lado tenemos un puntaje mínimo que requiere cada actividad. Como analizamos es cómo tendría que tendríamos que hacer para poder saber o para poder generar la restricción. Porque un dato está el número de habilidades y otro dato está en el puntaje mínimo requerido.

00:32:24:13 Entonces observemos tenemos nuestros colaboradores con las habilidades, con el número de habilidades que tiene y tenemos las actividades con sus puntos menos, pero recuerden que también nos dieron una tabla que nos permite como fusionar cierto o relacionar esos dos valores. Entonces a ver, el colaborador uno tiene dos habilidades, como tiene dos va a tener un puntaje de siete y como tiene un puntaje de siete podría en teoría realizar o la actividad uno o la actividad seis.

00:32:50:10 Mire que la actividad dos y la cuatro no la podría realizar porque no le alcanza el puntaje mínimo. ¿Qué pasa por ejemplo con el con el colaborador? Cuatro. El colaborador cuatro tiene uno. Miremos mejor el tres. Por ejemplo el tres tiene tres a hay tres habilidades. Cuando tiene tres habilidades tiene puntaje de diez. Como tiene un puntaje de diez, entonces podría ser cualquiera.

00:33:40:07 Las actividades C Lo mismo pasaría con el cuatro, que sí tiene cuatro habilidades, tiene un puntaje de 15 y le alcanzaría para hacer cualquiera de las actividades. Entonces necesitamos que se tome cada una de las habilidades y de acuerdo con la tabla, miremos qué puntaje tiene cada colaborador y poder generar nuestra restricción de este puntaje. Mi C entonces también no podríamos hacer manual, pues este tiene dos, entonces póngale siete, ese tiene dos, póngale también siete, ese tiene tres, pongámosle de ese tiene cuatro, pongámosle 15 C, ahora sin embargo, pues es muy ineficiente y nos podemos equivocar y poner el número que no es.

00:34:10:07 Y sí son muchos recursos los que resignar, o muchas o esa tablita sencilla. Pero pensemos en que tenemos muchas más condiciones para poner esos puntajes, por ejemplo, si es la actividad, si es la habilidad uno, aquellos en las que lo hicimos por número de habilidades. Pero pensemos que cada que cada una de esas habilidades tenga por ejemplo un puntaje diferente, entonces si tiene la uno y la tres póngale tanto, pero si tiene la cuatro y la cinco, póngale tanto otro puntaje.

00:34:44:01 Entonces en la medida que empezamos a agregar más reglas de decisión, pues se vuelve más dispendioso calcular estos estos parámetros y como dijimos, pues tenemos que garantizar que se calcule de la mejor manera. ¿Entonces cómo lo podemos hacer desde Gans? Miremos qué vamos a hacer. Tenemos dos parámetros que ya conocemos, pero queremos crear uno nuevo. Ese nuevo que vamos a crear es el puntaje de cada colaborador.

00:35:19:12 Lo llamé Puntaje Colaborador. Sí, de acuerdo a las habilidades que tiene y cómo lo vamos a calcular con nuestra tablita. Entonces entendamos que lo que vamos a hacer allá, vamos a decirle. Veamos si el número de habilidades del colaborador seis es uno, que hay unas que necesitamos que le pongan, necesitamos que le ponga un cinco, Entonces es de nuevo parámetro que creamos, pues se llama puntaje colaborador.

00:35:56:04 Va a tomar el valor de cinco ahora, de lo contrario si no es uno, de lo contrario si el número de habilidades del colaborador es dos, entonces nuestro puntaje va a ser siete. ¿Qué es lo que dice nuestra tabla? Pero puede que no sea ni uno ni dos, pero le vamos a decir de lo contrario, si el número de habilidades es tres, entonces por favor póngale diez y ya solamente nos quedaría una opción.

00:36:31:03 De lo contrario, si no es uno, vino el dos y si no es tres, entonces hay falta el último. El último sería entonces póngale 15, de lo contrario puntaje colaborador sería 15. Lo voy a poner aquí porque no quiero que eso se de, si no es de puntaje va a ser igual a 15. No es que completo de una vez.

00:37:04:06 Muy bien, sí, Entonces si es si es una habilidad, este nuevo parámetro que estamos creando va a valer cinco. Si el número de habilidades es dos, el puntaje va a ser siete. Si el número de habilidades es tres, el puntaje va a dar diez, de lo contrario el puntaje o valer 15. Ahora necesitamos que él haga esto, que él haga esto mismo con cada uno de los colaboradores, que él evalúe.

00:37:30:11 Entonces que vaya y evalúe el número de habilidades que tiene cada uno de los colaboradores y le ponga el puntaje. Entonces yo le voy a decir o le vamos a decir que repita ese mismo análisis con cada colaborador. ¿Y cómo le decimos eso? Vamos a crear un bucle, vamos a crear un bucle donde le vamos a decir que coja a cada uno de los colaboradores y analice esto mismo.

00:38:10:23 Ok, entonces en términos narrativos esto es lo que vamos a hacer y vamos a mirar como lo hacemos. Deténganse y nos vamos para nuestro downs y vamos a crear nuestro nuevo parámetro. Miren que eso es para ese parámetro, no lo da directamente el el ejercicio así como tal, sino que nosotros a partir de los parámetros que tenemos lo vamos a crear, lo vamos a construir para poder generar nuestro modelo de optimización.

00:38:49:19 Entonces vamos a decir que este parámetro se llama puntaje del colaborador. Sí, de acuerdo a sus habilidades, como es un puntaje para cada colaborador, entonces va a estar de esta forma un puntaje para cada colaborador. Entonces vamos a utilizar la función parámetro. Entonces recuerden que dijimos siempre, siempre. Primero tenemos que definir el parámetro que vamos a crear para luego asignarle el valor.

00:39:29:22 Entonces vamos a crear, a crear el parámetro puntaje colaborador, que va a depender del conjunto C y le pongo el punto y coma. Recuerden que esto que yo pongo aquí que se ve como en grises o comentarios, esto no hace parte del código, sus comentarios para que sepamos qué es lo que estamos programando. Entonces definí el puntaje, definí el parámetro que se llama puntaje colaborador, le puse punto y coma y ahora sí vamos a empezar a crear ese análisis.

00:40:00:13 Entonces primero vamos a agregar los books, que es como le digo que haga eso mismo para cada uno de los colaboradores. Entonces para eso vamos a utilizar la función loop. Entonces que hace el loop, lo que va a hacer es que va a coger cada uno de los elementos del conjunto que ya le vamos a indicar y va a realizar lo mismo que allá después o dentro del paréntesis de su loop.

00:40:28:23 Y vamos a crear un paréntesis para loop. Aquí le vamos a poner punto y coma. Para finalizar y dentro del paréntesis le vamos a decir primero que conjunto, o sea que conjunto le va a repetir las sentencias del vamos a decir de eso, se lo va a repetir al conjunto. Sí, sí, es lo que vamos a decirle. Se lo repite, repito, se lo corta a cada uno de los elementos del conjunto.

00:41:00:06 Si le vamos a dar una coma y le vamos a indicar qué es lo que el va a repetir, entonces recuerden que dijimos que el que va a repetir va a repetir unos análisis del número de habilidades, digamos, decíamos allá si el número de habilidades es tanto completa, entonces ese si es es condicional. Luego lo utilizamos como la función if, como la función.

00:41:48:21 Y ya que estamos viendo, si ahora ponemos, si ponemos entre paréntesis, voy a poner este otro paréntesis acá también abajo donde va a finalizar nuestro if y vamos a mirar cuál es la condición que vamos a poner. Le estamos diciendo ese if, ese si es si el número de habilidades y ese número de habilidades ya lo definimos acá, si ya lo tenemos por acá, lo que hacemos es que el copiamos el nombre filtro para que nos quede igual y sí, número de habilidades de colaborador C es igual A1C es igual a uno y le ponemos una comida que esto sería como la sentencia o la condición.

00:42:19:02 ¿Entonces qué pasa si es igual a uno? Pues este puntaje colaborador, que es el que estamos creando, este puntaje colaborador va a ser igual a cuanto entonces dijimos, va a ser igual a cinco y le ponemos un puente como si el número de habilidades es igual a uno, le ponemos una coma y luego ponemos qué pasa si se cumple esta condición.

00:42:51:12 Así se cumple esta condición. Entonces en puntaje colaborador, por favor pónganos cinco. Si no tuviera unas condiciones, ahí terminaría. Pero resulta que tenemos otra condición, de lo contrario dijimos, de lo contrario si entonces ese es de lo contrario. En Gunz lo ponemos else y como viene una condición adicional, entonces le ponemos el if, entonces de lo contrario si, porque viene una condición adicional desde lo contrario.

00:43:22:16 ¿Así que si ese número de habilidades ya no es igual a uno, sino que es igual a que si es igual a dos, cierto? Desde aquí le pone si es igual a dos, entonces que nos tiene que poner el vamos a decir este puntaje es colaborador, pónganos siete, ahora hay termina, No, ahí no termina porque nosotros tenemos más condiciones.

00:43:58:02 ¿Ah ok, entonces tenemos otro, de lo contrario si entonces a copiemos lo de aquí mismo porque es la misma sentencia, cierto? ¿De lo contrario qué va a pasar? ¿Vamos a tener otro el if, que de lo contrario si el número de debilidades es igual a tres, que pasa si es igual a tres? Pues ya no nos ponga siete, pónganos diez y ya luego tendríamos de lo contrario mire que ya este de este último ya es el último.

00:44:25:12 Como es el último ya no tenemos, ya no vamos a tener. Otro es si no es ninguno de los anteriores, de lo contrario, si no es ni uno, ni dos ni tres. Sabemos que nuestras nuestras habilidades van de 1 a 4. Desde lo contrario, le vamos a decir que ese puntaje colaborador no va a ser igual a 15.

00:44:58:06 Mire cómo empezamos a encadenar nuestras condiciones. Entonces supongamos que tenemos, no sé, 50 colaboradores, 50 recursos, pues eso, hacerlo manual es supremamente dispendioso también pudiéramos utilizar un Excel, pero se lo podemos dar directamente, no habría problema ahí mucho mejor. Entonces aquí él va a hacer el análisis de ese parámetro de número de habilidades que ya lo tenemos en game y nos va a crear, es de nueve.

00:45:37:02 Entonces miremos a ver cómo los correos y deje por completo. Ah, pero esperen que no lo pedía. Aquí le voy a decir, muéstrenos el puntaje colaborador para que lo podamos observar. Corremos en el display, entonces aquí nos lo muestra usted nos dice el puntaje. El colaborador uno es de siete, el de colaboradores de siete le colaborador tres es de diez y el del colaborador cuatro es de 15.

00:46:12:10 Sí, Si tuviéramos más reglas de decisión, pues simplemente los programamos como hicimos estas y nos calcula automáticamente cuál sería ese nuevo parámetro con el que vamos a trabajar. Muy bien, entonces vamos acá y sigamos mirando. No es entonces nuestro modelo. Acá tenemos nuestro, nuestro, nuestro parámetro. Calcula Ahora ya tenemos parámetros. Entonces ahora vamos a las variables. ¿Entonces, qué variables de decisión tenemos?

00:47:02:17 Vamos a tener variables de decisión, una más, nuestra variable eco. Entonces vamos a tener una variable binaria. Sí, que va a ser x de a y va a tomar el valor de uno si se asigna, si se asigna el colaborador C a la actividad a cero. En caso contrario, una variable binaria y vamos a tener una variable que va a ser nuestra variable de costo total, que la vamos a llamar, no nos vamos a ir como estamos de tiempo, vamos a ir y la vamos a montar en nuestro en nuestro caso, entonces esto para que nos alcance el tiempo lo vamos a tomar de acá y vamos a copiar nuestro nuestras variables.

00:47:27:10 ¿Entonces cómo definimos las variables? Recuerde, iniciamos el bloque con la función variables y definimos tal cual como la definimos en la modelación. Le decimos X que depende del conjunto e sea el conjunto A y es una variable que significa uno desde el colaborador de la actividad, pero en caso contrario y tenemos la la variable f, que es el costo total.

00:48:07:01 Ahora también le tenemos que decir al modelo que esa variable x que es la variable x es una variable binaria. Sí, para que sepa que solamente puede tomar el valor de cero o de Ahora nos vamos otra vez a nuestro modelo matemático, tenemos nuestro bloque variable. Ahora vamos a ver nuestra función objetivo. Entonces la función objetivo. Dijimos que era minimizar costos y recuerden que nosotros ya tenemos nuestro parámetro calculado, ya sabemos cuánto nos cuesta cada uno de los colaboradores para realizar cada actividad.

00:48:53:14 Entonces sería 50. Si el colaborador uno hace la actividad uno, que sería X11 más 80. Cierto, si el colaborador uno hace la actividad dos por mí, también yo conecto esto 700 El colaborador uno hace la actividad tres. Ese se hace el colaborador uno. La actividad cuatro y así seguiría sumando cada uno de ellos. Entonces, en términos generales, le puedo decir que mi función objetivo es minimizar F, que es la sumatoria de ese, porque si sumando tanto en C como ENA y la sumatoria y nada de qué de mi parámetros costo sea multiplicado por mi variable, sea am.

00:49:18:17 A ver, ahora vamos a ver, vamos a ver en la modelación que quiero que alcancemos en el tiempo establecido. Ya vamos a ver primero las ecuaciones que ya vimos, los parámetros, quiero el centro de este modelo y ahora los vemos directamente en Gauss. Ahora miremos entonces el bloque ecuación y nos dice que cada colaborador debe realizar una actividad y que cada actividad de realizarse por un solo colaborador.

00:49:45:11 Entonces vamos a decir vamos a hacer esta primero en todos, es que el colaborador uno no puede hacer o la actividad uno, la actividad dos o la actividad tres o la actividad cuatro. Bueno, ya sabemos que también el puntaje va a influir, pero el puntaje va a ir otra restricción. Por ahora podemos decir que él podría hacer todos estos actos, cualquiera de esas actividades, pero que solamente se le puede asignar una.

00:50:15:15 Lo mismo con el colaborador dos solamente se le puede asignar una actividad y lo mismo con el colaborador tres y exactamente lo mismo con el colaborador cuatro que pueden hacer o la actividad uno o dos, tres y cuatro, pero en total solamente se les puede asignar una sola. Como esas son variables binarias ganar cero o uno seis, entonces la que me dé uno es la que se va a asignar, las otras tendrán quedar cero.

00:50:45:00 ¿Cómo resumo yo estas ecuaciones? Entonces voy a decir que esto es la sumatoria en a sí, porque miren que estoy sumando las actividades, que es 123 y cuatro, que va a ser igual a uno y que esta ecuación me la repita tantas veces como colaboradores tenga. Por eso le digo que es para todo. Sé que pertenece al conjunto, así que nuestro conjunto de es el conjunto de colaboradores.

00:51:12:04 Ahora, aquí es cada colaborador se le asigna una sola actividad, pero también nos dijeron que para cada actividad también se realizar un solo colaborador, o sea, se realiza por un solo colaborador. ¿Cómo hacemos eso? Pues muy parecido. Pero ahora estamos diciendo que la actividad uno se puede realizar por el colaborador uno o por el colaborador dos o por el colaborador tres por el colaborador cuatro.

00:51:55:15 ¿Pero que es actividad solamente va a ser asignada o se le va a ser asignado un solo colaborador? Lo mismo va a pasar para la actividad dos. Para la actividad tres y para la actividad cuatro. ¿Cómo resumimos esto? Vamos a decir que es la sumatoria, pero ya la sumatoria no sé porque mire que estoy sumando los colaborador tres, que es el primer índice, el C y que me repita esta restricción tantas veces como actividades haya, además de esas dos restricciones que tenemos, las tenemos las restricciones del puntaje mil.

00:52:32:08 Entonces recuerden que tenemos unos puntajes, unos puntajes que calculamos que acabamos de calcular para cada colaborador y también tenemos en los puntajes mínimos que requiere cada actividad. Entonces vamos a decir que la activ que la actividad uno cierto, la actividad uno Sí, la base podría ser la cualquier colaborador. Sin embargo, tenemos que garantizar que el puntaje del colaborador que se le asigne sea mayor a el puntaje mínimo que requiere la actividad.

00:53:14:20 Entonces dice que la actividad uno requiere un puntaje mínimo de cinco, entonces tenemos el cinco y que el que se lo asigne tiene que ser mayor, tiene que tener un puntaje mayor. Así entonces nosotros ya sabemos que el colaborador uno le dio un puntaje de siete, que fue el que acabamos de calcular, este sería siete por la variable de si se asigna un colaborador uno a la actividad uno y luego sería que sería el puntaje el colaborador dos diez El puntaje el colaborador tres es 15 el puntaje El colaborador ahora es que se le asigne esta actividad, pues tiene que ser mayor a cinco.

00:53:43:04 Observamos que cualquiera lo podría hacer. Sin embargo. Pues es una restricción. Ahora lo mismo hacemos para cada una de las actividades en las de la actividad dos nos pide un puntaje mínimo de diez. Entonces ponemos el puntaje de cada uno de los colaboradores con sus respectivas variables, ya que sería para la actividad dos. Cierto para la actividad dos.

00:54:46:16 Para nuestra actividad dos. Lo mismo sería para la actividad tres, pero ya sería con seis y finalmente para la actividad cuatro, que sería con nueve, que es el puntaje que requerimos como mínimo que tenga el colaborador que va a realizar es activo. Si. ¿Entonces cómo resumimos esa restricción? Vamos a decir que sería una sumatoria en SE porque estoy sumando cada uno de los colaboradores, por que sería el puntaje de cada colaborador multiplicado por la variable y eso va a ser mayor o igual al puntaje mínimo que requiere cada una de las actividades y que me haga repetir esta restricción tantas veces como actividades tenga.

00:55:29:12 ¿Por eso qué le decimos a esto? Para toda actividad que pertenezca nuestro conjunto grande de actividades de entonces, como hemos hecho en Games, me voy a pasar para acá y lo vamos a ver en 15 y me voy a pasar por acá para poder se los mostraré completo. Aquí tenemos nuestro bloque de ecuaciones, recuerden que este bloque ecuaciones lo iniciamos con la función ecuación y tenemos primero siempre definimos la ecuación, recuérdenlo, siempre es un primero, siempre definimos la ecuación o la variable o el parámetro y luego le asignamos los valores.

00:55:55:20 O sea que vamos a definir que ecuaciones tenemos. La función objetivo tenemos la primera restricción que es una actividad por colaborador, la segunda restricción que es un colaborador por actividad. La tercera, que fue la última que hicimos, que fue el puntaje para realizar cada actividad después de que las mencionamos. Entonces empezamos a asignarle las ecuaciones o los valores.

00:56:23:22 ¿Entonces decimos que esa función objetivo es esa variable F igual a qué? Igual a la sumatoria en y en C y di que esa es una de las ventajas. Lo que decimos siempre de Gómez, que el lenguaje es supremamente parecido a nuestra fórmula. Siempre. Entonces la sumatoria en ahí se ve que en del costo multiplicado por la variable, recuerden que este costo fue el parámetro que calculamos.

00:56:54:03 Si luego tenemos la primera restricción que la activa una altura por colaborador. Le dijimos que la repita tantas veces como colaboradores tengamos y tenemos nuestra sumatoria y nada que multiplique de X, que va a ser igual a uno porque apenas se puede asignar uno. Lo mismo pasa en las actividades que solamente se les puede asignar un solo colaborador y finalmente tenemos el puntaje por actividad.

00:57:24:15 Tenemos la sumatoria en C del puntaje colaborador, que fue el que calculamos multiplicado por nuestra variable x y que eso nos va a dar mayor igual a el puntaje mínimo que requiere la actividad. Luego tenemos nuestro bloque solución que ya lo conocemos, en donde decimos que por favor resolución soluciones el modelo de asignación utilizando el solver E11 de los Solver que el utiliza para programación entero mixta.

00:58:13:01 Porque recuerden que nuestra variable es una variable binaria y que nuestra función objetivo va a ser minimizar esa función F, que es la función de costos. Entonces, cuando solucionamos nuestro modelo completo vemos nuestra solución. Entonces nos dice oh, esperen acá, veámosla desde nuestra presentación, pues es el modelo que acabamos de ver. Entonces nos dice que tuvimos una soluci que encontró la mejor solución posible.

00:59:02:06 No tuvimos gap. El gap es del 0% que la solución que encontró es la mejor. Y nos muestra entonces que valores como esa variable X entonces nos dice que el colaborador uno va a ser la actividad tres, que el colaborador dos va a hacer la actividad uno. Que el colaborador tres va a ser la actividad dos y que el colaborador cuatro va a ser la actividad cuatro y que si asignamos estos colaboradores de esta manera vamos a obtener un costo mínimo de 243 unidades monetarias, entonces estamos garantizando un mínimo costo cumpliendo con los requerimientos establecidos.

00:59:28:23 Bueno, entonces, como conclusión que podemos decir que la precisión de los parámetros de entrada, pues es pilar fundamental en la construcción de los modelos de optimización. Así que por un lado, pues tenemos que garantizar que esa recopilación de los datos tiene que ser de manera precisa y confiado. L de tal manera que podamos garantizar calidad y confianza en los resultados del modelo, ya que eso pues obviamente nos ayuda a mejorar la toma de decisiones.

01:00:20:08 Entonces ya sabemos es que las fuentes confiables que utilizamos todas las herramientas estadísticas para capturar la información que podemos utilizar, referencias cruzadas es que podemos, hay que tenemos que estar actualizando nuestros datos, pero que adicionalmente Gómez nos ayuda cuando tenemos que hacer cálculos con esos parámetros que capturamos del escenario de, pues de nuestras empresas. Cuando tenemos que hacer cálculos adicionales, pues GAM nos ayuda con varias funciones o vimos la función if y la función loop, pero pues tenemos muchas otras funciones que luego les vamos a compartir para que cuando hagamos esos cálculos podamos disminuir los errores y sea mucho más fácil para nosotros poder obtener esos datos con los que el modelo empieza a hacer

01:00:45:03 todos los pues a desarrollar su modelo de el modelo optimización y poder garantizar que nuestros resultados sean pues muy muy confiables, porque como dije inicialmente podemos tener un modelo muy bien formulado, pero si nuestras soluciones en si nuestros datos de entrada no son confiables, pues muy seguramente los resultados no lo será. Entonces pues eso es todo por hoy.

01:01:20:06 Muchas gracias. Espero que se hayan ido con la inquietud de practicar en sus games estas nuevas funciones. ¡Que hermosos! Perfecto Marcela, muchas gracias por tu presentación, tenemos algunas consultas, me las voy a ir leyendo para que puedas dar la respuesta por acá. ¿Mis preguntan para los parámetros se debería utilizar herramientas estadísticas para llegar a esos valores o se podría hacer una estimación de acuerdo a la experiencia de los participantes del proceso?

01:01:57:03 ¿Pues la verdad yo siempre recomiendo utilizar las herramientas de estadística, cierto? Obviamente hay algunos casos en que las experiencias, pues son irrefutables. Sin embargo, como ingenieros y aprovecho que hoy es el día del ingeniero, entonces feliz día para todos los que son ingenieros como ingenieros. La verdad me acojo mucho a utilizar herramientas estadísticas que nos permitan garantizar como es la confiabilidad y que entonces hacemos todo un diseño muestral para cuando necesitamos capturar datos así.

01:02:44:21 Sin embargo, pues recuerden que ya depende de cada uno tomar las decisiones cuando capturan la información. Pues creo que pues mil gracias a nuestros participantes por habernos acompañado la en la mañana de hoy. Muchas gracias profesora Marcela por todo, por acompañarnos también con el tema, pero también salí pero ya no volvimos a ah vale, perfecto. Y pues comentarles que efectivamente la grabación de ese evento la podrán encontrar ustedes en los próximos días dentro de la página de Facebook y cualquier pregunta inquietud que tengan, ya sea técnica o con respecto al software, nos pueden hacer, pueden hacerla llegar a los correos electrónicos que compartió Elisa al comienzo de la sesión o a través de nuestra página

01:03:15:13 web. Entonces pues voy a llevarla al suceso. Vamos a cerrar nuestro en este momento y les agradecemos a todos ustedes su asistencia. Una felicitar de que se muy bien y profe Marcela nuevamente mil y mil gracias por cualquier cosa nos escriben y le responderemos las preguntas. Perfecto muchísimas. Vale que estén bien. Chao chao. Para mayor información respecto al software o en temas relacionados, no dude en contactarnos a través del correo electrónico.

01:03:24:16 Entrenamientos arroba software guion shop, punto com o visitar nuestra página web Triple Ole o punto Software Guión Ya.com.

Maximizando la precisión: los parámetros en modelos de optimización en GAMS


En esta presentación exploraremos la importancia de realizar cálculos precisos para los parámetros de entrada en modelos de optimización con apoyo de GAMS. A través de ejemplos y casos de estudio, aprenderás técnicas y funciones prácticas para lograr resultados óptimos en tus modelos. Descubre cómo evitar errores comunes, optimizar el rendimiento y obtener soluciones precisas utilizando el software GAMS. Únete a nosotros y adquiere los conocimientos necesarios para impulsar la precisión y la eficiencia en tus proyectos de optimización.



Etiquetas relacionadas

  • Análisis de datos
  • Estadística
  • Logística

¡Comparte este video con tus colegas!

Compartir

Ver más

Cotizar
Próximos
Eventos

X

Mis cotizaciones:

Comentarios a tu solicitud:

Cotizar