SS_Logo

Optimización de la Producción: Secuenciación de Órdenes de Trabajo en GAMS

Autor: Marcela María Morales Chávez / Portafolio: Scientific / Mie. 11 de Oct de 2023

Transcripción de este video

00:00:31:14 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 Magíster 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:57:26 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 Austria 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:25:10 Bienvenidos Y bueno, en los días que bueno tenerlos otra vez acá. Lágrimas. Creo que la última vez que nos vimos en los voy un poquito a la tierra, pero ya estamos de regreso. Hoy vamos a hablar sobre la optimización de la producción, especialmente vamos a tocar el tema de la secuenciación. Si vamos a ser un ejemplo, vamos a mirar cómo lo desarrollamos, el CAM y vamos a analizar esas soluciones.

00:01:50:11 Entonces, bueno, el contenido, vamos a hacer una breve introducción a la programación de la producción. Si vamos a plantear el modelo matemático, esta vez quiero dedicarle un poquito más de tiempo a la formulación del modelo, para que quede muy claro que después de que tengamos ese modelo formulado es muy bondadoso, porque pasar del lenguaje matemático al lenguaje es supremamente fácil.

00:02:32:20 Vamos a decir que casi es copiar y pegar, pero luego vamos a mirar la programación y finalmente vamos a analizar los resultados del modelo. ¿Bueno, entonces por qué optimizamos la programación de la producción? Porque será importante, porque es que nos ayuda a tener una asignación eficiente de los de los recursos, llamémosle personal, máquinas, materias primas. Entonces, cuando tenemos esa asignación eficiente, pues logramos la minimización de los costos y vamos a lograr minimizar costos, minimizar desperdicio, ser más, reducir tiempos.

00:03:03:07 Entonces eso pues luego vamos a lograr que con los mismos recursos, teniendo una programación adecuada de maximice la producción. A veces pensamos que maximizar la producción es tener más recursos para poder generar más. En realidad podemos generar más utilizando los mismos recursos pero de manera más eficiente, y eso es lo que queremos lograr aplicando todos estos modelos de optimización con los mismos recursos, generar más resultados porque los estamos utilizando de una mejor manera.

00:03:26:07 ¿Ahora, qué más podemos lograr? Pues vamos a mejorar la calidad, porque si tenemos una asignación óptima, pues va a permitir que las máquinas estén con una programación adecuada, que los operarios estén haciendo lo que deben hacer, que la materia prima se utilice de la mejor manera, Entonces la calidad de nuestro producto va a ser mejor y eso va a redundar en la satisfacción de nuestros clientes.

00:04:01:24 También los modelos nos permiten adaptarnos a esas y a esas dinámicas que tienen las empresas y que tienen las demandas, sobre todo esa dinámica de la demanda que es cambiante, pues nos va a permitir que los modelos nos permiten adaptarnos fácilmente para poder generar nuevos planes de producción que nos permitan satisfacer esa demanda. Como ya les dije, también vamos a lograr reducir tiempo de producción y esos tiempos de producción pues van a hacer felices a nuestros clientes, porque entre más rápido le podamos entregar el producto al cliente, pues más satisfecho hasta B.

00:04:33:10 Ahora, entonces, podemos decir que esos modelos de optimización van a ayudar a nuestras empresas a que a operar de manera más eficiente, más rentable y adaptable. Recuerden que ahora estamos trabajando mucho la resiliencia, la resiliencia en las empresas de la resiliencia, en las cadenas de suministro, teniendo en cuenta que pasan miles de interrupciones. ¿Cierto? Entonces tenemos que ser capaces de abordar esas interrupciones, de abordar esas irrupciones de la manera más adecuada, de la manera más eficiente.

00:05:00:15 Entonces, no solamente vamos a ser rentables, sino que también vamos a ser más resilientes, lo cual es fundamental en la competitividad en nuestro mercado actual. Ahora, en particular, o sea, en producción, podemos hacer muchísimas cosas, pero es uno de los. Es un tema muy apasionante porque producción nos permite trabajar sobre varias ópticas. Hoy en particular vamos a hablar de la secuenciación de órdenes de trabajo y más adelante hablaremos de otras cosas.

00:05:27:05 ¿Entonces, qué es eso de la secuenciación de las órdenes de trabajo? ¿Es mirar cuál es el orden eficiente en el que las tareas deben llevarse a cabo? Sí, sí, tengo. Por ejemplo, en este caso puse cinco órdenes de trabajo. Entonces. ¿Cómo debería ser la secuencia en la que esas órdenes deberían ejecutar? ¿Teniendo en cuenta qué? Pues, teniendo en cuenta los tiempos de procesamiento de cada orden de trabajo.

00:05:53:16 Teniendo en cuenta que cuando normalmente las líneas de producción, cuando cambiamos de órdenes de trabajo se requieren hacer unos o se requiere unos ajustes de tiempo, unos tiempos de ajuste de máquinas. Entonces también tenemos que mirar si con base en esta información yo debería producir primero la orden de trabajo uno, luego dos, luego la tres, luego la cuatro de la cinco.

00:06:28:00 Ahora si pienso en que también tengo que tener en cuenta las capacidades de las máquinas y además tengo que tener en cuenta las fechas de entrega, porque es probable que aunque la orden que por ejemplo, la orden de trabajo dos o la orden de trabajo cinco tenga que entregarla primero que la orden de trabajo dos. Entonces, cuando empiezo a tener en cuenta toda esta información, pues es posible que yo diga no, en realidad yo no debería generar ni programar mi producción en este orden, en esta secuencia, sino que debería ser primero la tres, luego la cuatro, luego la uno, luego las dos y luego la cinco.

00:07:11:11 Entonces empezamos a notar que en realidad tenemos que tener en cuenta muchísimos información y hacer esos cálculos intuitivamente, pues sabemos que no es la mejor manera de lograrlo. Entonces lo que vemos es apoyarnos en nuestros modelos de optimización para que podamos tener en cuenta todas esas restricciones, todas esas características que tienen cada una de las órdenes, además de las restricciones y características que tienen nuestros sistemas en nuestros procesos de producción para poder definir la secuencia óptima que nos va a permitir entregar las órdenes de trabajo con el menor tiempo, con el menor costo y satisfaciendo todas las características y las necesidades de nuestros clientes.

00:07:42:12 También tenemos que tener en cuenta las prioridades del cliente. ¿Bueno, entonces, en qué nos ayuda? ¿O cuáles serían los resultados de poder de aplicar ese tipo de modelos de optimización en estas decisiones? Pues vamos a decir vamos a optimizar el tiempo de producción. Ya lo habíamos hablado de tal manera que cuando vamos a organizar las órdenes estos en los tiempos de preparación de máquinas, entre a orden, sean los menores, vamos a poder minimizar costos.

00:08:08:25 Ya dijimos, vamos a desmenuzar disminuir desperdicios en menor tiempo, menor costo. Si tengo bien programado las órdenes de trabajo, mis operarios también están bien programados. Entonces todo eso también me va a llevar a la minimización de costos. Voy a poder cumplir los plazos de entrega y en general voy a optimizar mis recursos, maquinaria personal, materia prima. Entonces vamos a ver todo esto.

00:08:43:19 ¿Cómo? Como nos vamos como a la práctica. Si vamos a empezar, vamos a hacer un ejercicio simple, pero que nos va a permitir visualizar como se manejan las órdenes de trabajo. Entonces una Una fábrica de automóviles tiene cinco órdenes de trabajo desde pequeño, con cinco órdenes no más. Sabemos que las empresas podemos tener muchísimas órdenes de trabajo, pero igual simplemente ese escalar lo vamos a hacer con cinco y ya luego cada uno lo puede visualizar con las órdenes de trabajo que maneja de sus empresas.

00:09:17:02 Ahora recuerde que si necesitan apoyo, pues software está presto para poderlos acompañar ahora, entonces tenemos esta fábrica de automóviles con cinco órdenes de trabajo para ensamblar los diferentes modelos de vehículos, cada uno con sus procesos especializados. Las máquinas en cada línea de producción es configuradas de manera específica para cada modelo de automóvil. Cuando se cambia un modelo a otro, hay un tiempo de ajuste necesario para reconfigurar las máquinas.

00:09:40:18 Los que les decía ese tiempo, ese tap, ese tiempo de arranque, ese tiempo de ajuste para pasar de una línea a otra, de una orden de producción a otra orden de producción. Vamos a decir que vamos a considerar un ciclo de trabajo cerrado. Eso es importante porque nos va a ayudar con las restricciones que se repite y vuelve a empezar como si fueran órdenes continuas.

00:10:11:18 ¿Ahora, qué significa eso? Es que si, por ejemplo, tuviéramos esta secuencia, primero la orden de trabajo uno, luego luego la tres, luego la cuatro, luego la, Así como va a decir siempre desde producción se seguiría en esta manera. ¿Cierto? En este sentido va a haber un ciclo cerrado. Entonces vamos a decir que según el ejercicio, tenemos un tiempo de ajuste para reconfigurar máquinas.

00:10:37:10 ¿Eso qué significa? Significa, por ejemplo, que si yo voy a hacer la orden de si vamos a hacer la orden de trabajo uno y inmediatamente después vamos a realizar la orden de trabajo dos, reconfigura las máquinas para que se adapten a la orden de trabajo. Dos. Después de que se ha hecho la uno tiene un tiempo, tiene un tiempo de tres unidades de horas.

00:11:10:03 Llámelo minutos, llámelo. Vamos tres unidades de tiempo. Ahora sí, después de la secuencia de la orden de trabajo dos vamos a hacer la orden de trabajo tres. ¿Pues nos está diciendo que el tiempo de preparación de las máquinas va a ser de cinco unidad? Si después de la tres seguimos con la cuatro. Nos está diciendo que se demora cinco unidades, reconfigurar las máquinas de reajuste, usar las máquinas y ver si lo vamos a hacer.

00:11:44:22 Después de la cuatro, la orden cinco se demoraría dos y así vamos a hacer después de la orden cinco. Recuerden que tenemos ciclo cerrado otra vez. Vuelve a la Orden uno, pues tendríamos una unidad de tiempo. ¿Entonces, simplemente para que entendamos la tabla, qué tal la tabla que nos está mostrando en esta matriz que nos está mostrando? Nos está mostrando cuánto es el tiempo que se demoran reconfigurar las máquinas o ajustar las máquinas dependiendo de qué orden de trabajo estoy haciendo y cuál sería la siguiente orden, la siguiente orden de trabajo que vamos a realizar.

00:12:10:00 Ahora pensemos en que dependiendo esta secuencia, pues estos tiempos de configuración o de ajuste de máquinas van a ser diferentes. Si en este caso nos da una un total de 16 unidades de tiempo. Ahora pues que otra configuración los demás o la configuración los de menos, los de 15 en los de 13, los de 20. ¿Qué es lo que estamos buscando?

00:12:37:15 ¿Cuántos? ¿O sea, cuántas posibles secuencias podrían haber? Sabemos que podrían haber mucho acierto y entre más órdenes de trabajo, pues van a haber más. Entonces, en realidad, qué vemos que queremos determinar cuál es la secuencia para realizar las órdenes de trabajo de tal manera que minimizamos el tiempo total de ajuste de máquinas. O mire que aquí no estamos trabajando sobre el tiempo de procesamiento dentro de cada orden de trabajo.

00:13:03:01 Yo sería otro modelo de optimización que podríamos hacer. Analicemos el tiempo de procesamiento de cada línea de producción y miremos si podemos y miremos cómo minimizamos ese tiempo de producción, por ejemplo, cómo minimizamos el desperdicio. Eso sería otro modelo. Por eso les digo que en producción podríamos hacer muchísimas cosas. Aquí lo que estamos haciendo es teniendo ya esos tiempos de procesamiento que están fijos.

00:13:32:11 ¿Cómo debería generar la planeación de la producción de tal manera que hacer los ajustes de las máquinas cuando paso de una línea a otra se tome el menor tiempo posible, entonces, qué es lo que vamos a encontrar o qué es lo que queremos que el modelo nos diga? A Quiero que el modelo nos diga cuál es esa secuencia de las de las órdenes de trabajo.

00:14:00:20 Entonces recuerden que en los modelos de optimización las variables de decisión son las incógnitas que necesitamos que el modelo nos diga. Entonces vamos a decir que yo quiero que el modelo me diga si después de la orden uno va a seguir la orden dos. Sí. Si es así, vamos a decir que nuestra variable nos va a dar un si no es así, esta variable nos va a hacer.

00:14:23:10 Dos. Vamos a definir una variable binaria de uno. Si después de la de la orden de trabajo uno sigue inmediatamente la orden de trabajo, si no es el caso porque la secuencia dice que no hay uno, es dos después de uno. Entonces pues esta variable nos daría cero. Y así como hacemos con esta, pues tendríamos que hacer con las otras.

00:14:59:27 ¿Ah bueno, dígame modelo por favor, si después de la orden uno entonces va a seguir la tres cierto? O dígame si después de la orden uno va a seguir la cuatro. En realidad tendríamos que todas mis variables serían si van a uno, si paso de la orden de trabajo. P A la orden de trabajo J o sea, tendríamos todas las combinaciones, tendríamos 1,2, 1,3, 1,4, 1,5, luego tendríamos 2,1, 2,3, 2,4, 2,5.

00:15:28:16 Miren que nosotros no tenemos 1,1, porque no tiene sentido decir que pasa el orden uno a la orden uno porque ya estoy en la orden uno, o sea que no vamos a tener pares de índices iguales. Yo lo puedo decir desde la orden dos a la orden dos, porque ya hice la orden dos, entonces yo puedo pasar de la orden uno a la orden dos o el orden uno a la orden tres o el orden uno a la orden cuatro o de la Orden uno a la Orden cinco porque tenemos cinco Orden.

00:15:52:15 Lo mismo va a pasar con el dos. Con la orden dos sube la orden dos Puedo pasar a la orden uno a la orden tres a la orden cuatro o a la Orden cinco. Entonces vamos a tener todas esas combinaciones excepto la Cuando la variable tiene los mismos índices, no voy a pasar de la Google a uno ni de la dos al lado, ni la tres a la tres, ni la cuatro, la cuatro, ni de la cinco a las dos.

00:16:16:13 Entonces ni variable para yo no poner toda esa lista de todas esas variables porque estamos haciendo optimización, pues entonces vamos a poner la forma general. Sí, y vamos a decir que esto va a ser 1XTJ y esta variable es una variable binaria que va a tomar el valor de uno si paso de la orden de trabajo P a la orden de trabajo J o mejor cero.

00:17:00:25 Si ese no es el caso, sino sino voy a hacer la uno y la orden de trabajo T y después la j. Ahora esto es otra de las ventajas que tiene, que tiene nuestro vamos. Y es que normalmente cuando generamos estos, estos modelos de optimización, hay algunos programas que nos exigen tener la matriz completa de que matriz algo vengan de la matriz tiene que tener específico o explícitamente cada una de las variables P, o sea que tendríamos todas 1,2, 1,3, 1,4, no con cinco, 2,1, 2,32 con 4,5 tendríamos que tener toda la lista explícita.

00:17:26:06 Gómez nos permite que le digamos oye, mi variable general es esta x j y solamente le tenemos que poner una a su lado y el yo sabe que por dentro va a generar todas estas combinaciones. Si A Bueno, entonces ya tenemos nuestra primera variable de sesión y es si se si se puede hacer la orden P y luego la orden J.

00:17:57:20 ¿Ahora qué otra variable vamos a tener? Ah, yo quiero que el modelo además de la secuencia o en realidad yo voy a generar, yo quiero que el modelo genere esa secuencia para que me minimice los el tiempo total de ajuste, pues vamos a crear una variable que se va a llamar F, la puede llamar como quiera, yo la llamé a F, la podemos llamar Z, la podemos llamar, yo me llamo Marcela, entonces la podemos llamar M, pero aquí la llamamos F, pues ese va a ser el tiempo total de ajuste.

00:18:23:11 Max Si, ese tiempo total que queremos que sea mínimo y vamos a decirle, vamos a especificar que esta variable x que creamos es una variable binaria, Esto es importante decírselo al modelo que vamos a ver en Gans, como se lo decimos, porque no tendría sentido que me diga por ejemplo X12 igual a tres que significan tres para esa x no tiene sentido.

00:18:55:13 Tenemos que decirle que esa variable solamente puede tomar dos valores el valor de uno o el valor de cero. Entonces eso solo decimos que esta variable es una variable binaria y tenemos nuestras incógnitas, tenemos nuestras variables de decisión. Ahora, como ya sabemos que esta variable es útil y vamos a utilizar estos dos índices para utilizar un índice que se llama T y un índice que se llama J para representar el número de órdenes de producción.

00:19:24:00 Cierto. Entonces de ahí es donde salen los índices de las variables, es donde salen los conjuntos. ¿Quiénes son los conjuntos? Los conjuntos van a ser esos índices que utilizamos en nuestras variables de decisión. Entonces, qué índices tenemos o qué conjuntos vamos a tener las órdenes de trabajo que las vamos a llamar como decir que vamos a crear un conjunto T en donde van a ir todas las órdenes de trabajo.

00:19:54:03 Entonces usted va a estar compuesto. ¿Por qué elementos? ¿Por T, uno por P, dos de tres, de cuatro y de cinco? Porque tenemos cinco órdenes de trabajo. Ahora recuerden que la variable nos devolverá con un momento y con la variable tiene p y tiene j y j. También va hacer referencia a las órdenes de trabajo. Entonces lo que vamos a decir es que creamos el primer conjunto que se llama T, que va a tener las cinco órdenes de trabajo y vamos a crear un alias sin alias.

00:20:15:22 Es como un gemelo, le vamos a crear un gemelo Até que van a ser esas mismas órdenes de trabajo y lo vamos a llamar J y vamos a ver cómo tal cual. ¿Me lo acepta la instrucción? ¿Me lo acepta? Siga. Sí. Entonces creamos un. Es como si creara dos conjuntos iguales. Pero para no tener que crearlos dos iguales.

00:20:45:29 Pues simplemente creó el primero. Le digo que se vaya a Marte y que este conjunto tiene cinco componentes, en este caso que son nuestras cinco órdenes de trabajo y que vamos a crear un gemelo y que en esto, en nuestros términos de damos se llama un alias y que ese alias que va a ser igualito a T lo vamos a llamar J y esto ahora después de crear, ya tenemos variables, ya tenemos conjuntos.

00:21:09:16 ¿Vamos a mirar cuáles son los parámetros de entrada y qué son esos parámetros de entrada, pues los datos que tenemos para poder hacer los cálculos que necesitamos, pues qué datos tenemos? ¿Con qué datos contamos? Solamente contamos con una, con una matriz o con una tabla de datos que es nuestra tabla de tiempo de ajuste. Max Cierto. Entonces este.

00:21:37:12 Este es de esta información. La llamé T de tiempo T de ajuste. La puede llamar como queramos. No hay problema. Lo importante es que digamos que está tiempo de ajuste es el tiempo de ajuste de las máquinas para pasar de la orden de trabajo. T a la orden de trabajo J Pues la idea es que utilicemos los índices que ya definimos anteriormente.

00:22:18:00 Entonces recuerden que por ejemplo, este tres es el tiempo que se demora en pasar de la orden de trabajo, que en este caso sería uno a la orden de trabajo J que en este caso sería dos C Entonces así definimos el nombre de nuestra información de entrada, que en este caso es esta tabla muy ahora entonces ya tenemos variables, ya tenemos conjuntos, ya tenemos los parámetros de entrada que en realidad si vemos, tenemos, o sea, es hasta ahora es muy sencillo el modelo, una variable, dos variables, la variable decisión más la variable de tiempo total.

00:22:48:08 Tenemos una tabla de tiempos de entrada. Veremos entonces cómo nos quedaría la función objetivo. Entonces en los modelos de optimización, En los modelos de optimización recordemos que hay tres componentes que siempre vamos a tener variables de decisión, función, objetivo y restricción. ¿Entonces, para qué queremos en contrar esa secuencia que son las las las incógnitas? ¿Para qué queremos encontrar esas variables?

00:23:16:08 ¿O con el fin de qué? Ah, pues queremos buscar minimizar el tiempo total, o sea, porque podemos er el tiempo total de ajuste, porque también podríamos minimizar costos, o podríamos decir, minimizar em, um desperdicio. Bueno, podríamos hablar de muchas funciones o que tiene los modelos de optimización en este caso en particular, queremos encontrar esa secuencia para minimizar esos tiempos de ajustes dentro de las máquinas.

00:23:49:23 ¿Visto entonces, cómo podemos definir en una ecuación esos tiempos de ajuste que miremos? Tenemos nuestra tabla, que es nuestra información de entrada. Entonces vamos a decir ok, pues yo quiero minimizar el tiempo de ajuste. ¿Qué tiempo de ajustes tenemos? Que si paso de la orden uno a la orden dos, tendré tres unidades de tiempo. Entonces este tres existirá si voy a pasar de la orden uno a la orden dos, o sea, si es PX es igual a uno.

00:24:09:17 Si en mi secuencia no voy a pasar de la orden uno a la orden dos es BX cero, entonces el tres se va a quedar porque cero por tres pues nos da seis, entonces tenemos que poner todos los posibles costos que vamos a tener para que cuando haga el modelo, cuando haga el cálculo, nos defina cuál va a ser ese tiempo.

00:24:43:28 Total vamos a tener que es tres por x1, dos más seis por x1, tres más siete por X14 más uno por x1 cinco. Teniendo en cuenta si esas secuencias van a estar, si van a estar en nuestra solución final, ahora tenemos más tiempos. Claro, tenemos el tiempo de si vamos a pasar de dos de la orden dos a la orden uno que sería dos de la orden dos a la orden tres que sería cinco de la Orden dos a la orden cuatro que sería tres.

00:25:09:11 Y si vamos a pasar de la Orden dos a la Orden cinco, que serían seis unidades de tiempo, entonces vamos a estamos pasando todos los datos de nuestra tabla, que son esos tiempos de ajuste a nuestra función de tiempo total. Lo mismo va a pasar con los datos si vamos a pasar de la Orden tres a cada una de las otras órdenes, y si vamos a pasar de la Orden cuatro o de la Orden cinco a cada una de esas órdenes.

00:25:31:15 Ahora recuerden que no estamos considerando pasar de la misma orden, de una misma orden a ella mismo. ¿Cierto? ¿Por qué? Pues aquí el tiempo sería cero. Aquí hay que tener cuidado, porque como estamos minimizando el tiempo, si nosotros agregamos la posibilidad de X11 va a decir pásese x del trabajo uno al trabajo uno, porque es el tiempo es cero.

00:25:57:26 O sea, no, no, no, no va a incurrir en tiempos de ajuste, pero en realidad no vamos a permitir esa, esa relación. Eso se puede hacer de dos maneras. Luego hacemos un ejemplo en el que incluyamos un número muy grande en esta diagonal principal, pero esta vez lo vamos a hacer de una forma diferente, porque ya lo hemos hecho en otras, en otras ocasiones con el número muy grande con esa M.

00:26:24:21 Entonces quería hacerlo de una manera diferente para que observen varias alternativas. Sí, ahora sí, de pronto no sabe cómo manejarlo. En la M también los invito a que en la página de South Park Shop busquen las grabaciones de nuestras sesiones anteriores y ahí va a estar todo explicado. Entonces, como no queremos aquí sólo se los lo lo mostré de manera explícita para que miremos cómo se construye esa función objetivo.

00:26:55:15 Sin embargo, pensemos en que las empresas tenemos muchísimas órdenes de trabajo. Entonces, escribir todo esto de manera explícita, pues es supremamente dispendioso. Entonces bloqueamos hacer, es que lo vamos a escribir con notas en matemática, entonces vamos a decir que esto o esto es igual a decir que vamos a minimizar F que es igual. Aquí si observamos estamos haciendo una doble sumatoria porque nos están variando los dos índices.

00:27:35:18 Mire que en cada fila, en cada fila, nos está variando el índice J y dentro de la fila los varía el índice J y cuando cambiamos de fila nos está variando el índice T, Entonces vamos a tener una doble sumatoria en P y en J. De quién. Mire que estamos multiplicando el tiempo de ajuste por nuestra variable. Entonces todo esto lo podría resumir solamente poniendo esto como Adams, le vamos a dar esta tabla de entrada, pues el yo sabe quién es el tiempo de ajuste y ya le hemos dicho quién es X.

00:28:05:23 Entonces él internamente nos va a hacer todo esto y no tendríamos que hacerlo de manera explícita. Acá lo estoy haciendo de las dos maneras para que veamos cómo pasamos de estos ecuaciones a esta forma más resumida. Listo. Y ahora, después de tenemos funcionó. ¿Qué sigue? Pues tenemos una serie de restricciones. En realidad no son tantas. ¿Cuál es nuestra primera restricción?

00:28:28:28 Vamos a pensar en que tenemos, por ejemplo, la orden de trabajo, un necesariamente después de la orden. Recuerden que tenemos ciclo cerrado. Entonces, necesariamente después de la orden de trabajo, uno va a seguir o la orden de trabajo dos o va a seguir la orden de trabajo tres o va a seguir la orden de trabajo cuatro o va a seguir la orden de trabajo cinco.

00:29:13:22 Una de esas va a seguir, pero sabemos que otra de todas va a seguir una. Entonces eso como lo decimos matemáticamente, pues muy fácil le vamos a decir mil x uno. O sea, después de la orden de trabajo uno puede seguirla dos o puede seguirla tres o puede seguirla cuatro o puede seguirla cinco. Pero de todas estas solamente se puede seleccionar una C y entonces sumamos todas las posibilidades y decimos que eso va a ser igual aún, porque necesariamente, como es una secuencia después de una de las de de de una orden de trabajo, necesariamente tiene que seguir otra.

00:29:34:25 Sí, y lo mismo vamos a hacer con cada una de las órdenes de trabajo. ¿Entonces, qué va a pasar con la orden de trabajo? Dos Pues después de la dos va a seguir o la uno, o a seguirla tres, o a seguirla cuatro o a seguirla cinco, Pero necesariamente de todas esas se tiene que escoger una. Lo mismo hacemos con la orden de trabajo.

00:29:53:14 Tres. Con la orden de trabajo cuatro y con la orden de trabajo cinco. Mire que van a las cinco, por ejemplo después de la cinco o a seguir la uno, o a seguirla dos, o a seguirla tres, o a seguirla cuatro. Recuerde que no estamos teniendo la relación entre ella misma de 5 a 5, ese no va a pasar.

00:30:18:03 Sí, entonces aquí también, de por más solicita. Pero en realidad en el modelo matemático no tendríamos que hacerlo todo. Sí, sí, sí. Tenemos participantes que ya manejan la notación de sumatoria. Pues no hay problema. Aquí lo estamos haciendo para los que apenas se están familiarizando con esta nueva notas. ¿Entonces, cómo hacemos para pasar esto a la notación de sumatoria?

00:30:51:17 Entonces, si observa, estamos diciendo estamos cada fila menos. Nuestra variables es la variable x TJ. Recuerden los índices P primero y J es pues si vemos cada una de estas filas observamos que la la el índice que está variando que estoy sumando es el índice J Mire que aquí esté en esta fila. C siempre vale uno y el que estoy sumando, el que estoy variando es la J, que aquí vale dos, aquí vale tres, aquí vale cuatro y aquí vale.

00:31:20:18 Sí. Entonces voy a decir que esta fila, pues es una sumatoria, una sumatoria en J. Porque la que estoy sumando. Pero miren que esto mismo lo repito cuando aquí es cuando te vale uno, pero aquí también sumo la J. Pero aquí ya tengo dos, aquí también sumo la J, pero quite vale tres aquí sumo la J, pero ya te que es el primer índice y vale cuatro.

00:31:53:02 Acá también sumo la J, pero el primer índice que este vale cinco. O sea que siempre estoy sumando la J. Sí, por eso tenemos la sumatoria en J. Pero quiero que esa misma sumatoria en J de esa variable que es igual a uno, la tengo que repetir para cada uno de los P. Cuando te vale uno sería esta cuando te vale dos, cuando te vale tres, cuando te vale cuatro y cuando te vale cinco, entonces le vamos a decir oye, necesito que me hagas esta sumatoria para cada uno de los pesos.

00:32:18:27 O sea que si tuviéramos, no sé, 25 órdenes de trabajo, pues no tendríamos que copiar explícitamente las 25, sino que simplemente le decimos a Gómez que nos haga la sumatoria en J y que dependiendo los T que tengamos nos lo haga para cada uno de los P. ¿Entonces él solo con esta formulita acá abajo nos va a replicar por dentro todas estas en este caso estas cinco ecuaciones, cierto?

00:32:46:15 Esa es una de las grandes ventajas que tenemos. Pónganse eso sería nuestra primera restricción. Eso sería en esta primera restricción que estamos que lo estamos diciendo aquí, que después de una orden de trabajo que posterior a ella, siempre hay una orden de trabajo también, si es que va a haber solamente una posteriori. ¿La Ahora, cuál sería nuestra siguiente restricción?

00:33:14:03 Ya dijimos que posterior a ella va a haber una orden de trabajo, pero antes de ella pues también va a haber una orden de trabajo, entonces antes de ella puede estar, si estamos hablando de la orden de trabajo uno, pues antes de ella también puede ser la dos o puede estar la tres, o puede estar la cuatro, o puede estar las cinco C, Entonces tenemos que darle todas las posibilidades posterior, pero también le tenemos que dar todas las posibilidades anterior.

00:33:42:04 No es que antes de ella tenga la posibilidad de estar cualquiera de las órdenes de trabajo para que el modelo de pila específicamente cuál va a estar antes y cuál va a estar después. ¿Bueno, entonces cómo le decimos esto? Le vamos a decir mira, de antes de la orden de trabajo, uno puede estar la dos, que sería entonces X21 antes de la orden de trabajo uno puede estar la tres, que sería tres uno.

00:34:11:28 Antes de la orden de trabajo uno puede estar la cuatro, que sería entonces X41 y antes de la orden de trabajo uno también podría estar la cinco, que sería entonces X51, pero solamente puede estar una cierto, una antes y una después. Entonces vamos a decir que la sumatoria de todas esas posibilidades va a ser igual a uno. Y exactamente lo mismo vamos a hacer con las otras órdenes de trabajo.

00:34:36:17 Entonces como que ahorra dos veces antes de la orden de trabajo, dos puede estar la uno o puede estar la tres o puede estar la cuatro opuesta a la cinco, pero solamente va a haber una. También va a pasar lo mismo con la tres, va a pasar lo mismo con la cuatro y va a pasar lo mismo con la cinco, con que sea antes de la orden de trabajo cinco va a estar la puede ser la uno o puede ser la dos, o puede estar la tres o puede ser la cuatro.

00:35:03:04 Va a ver uno como pasamos a términos generales. Ah, bueno, pues entonces miremos otra vez quién está sumando acá es volvamos a tener la variable. ¿Entonces, quién suma? ¿O en cada una de las filas suma p8 más? J Pues si observamos aquí, te valemos, aquí te vale tres, aquí te vale cuatro, que este vale cinco. Entonces nuestra sumatoria va a estar en ti.

00:35:31:18 Y en esta fila miden que J se mantiene fija. J Siempre es uno en esta fila. J Siempre dos en esta fila. J siempre es tres y mis pares cuatro y en esta J siempre cinco. Entonces le vamos a decir que hacemos una sumatoria en T de la variable que va a ser igual a uno y que me repita eso para acá j c que me repita eso para cada uno de los cuatro.

00:36:06:25 Pues en realidad no tendríamos que escribir todo eso solamente con esta la podríamos hacer. Solo que esta vez que dice mostrarles el paso a paso para que los que no están acostumbrados, familiarizando y podamos entender más fácil los otros modelos que hagamos. Listo, ya tenemos nuestra segunda restricción. Nos falta solamente una. ¿Cuál sería nuestra última restricción? Nuestra última restricción dice que si existe la relación, si después de uno voy a ser dos, si después de la orden de realizar la orden uno va a ser la voy a realizar.

00:36:30:24 La Orden dos, pues entonces no voy a tener. O sea, si uno después de dos, dos ya no va a ir después de uno o si dos va después de uno, pues de a uno no va a ir después de dos. Sí voy a tener solamente una de las dos o uno a después de dos o dos va después de uno, pero no voy a tener las dos.

00:37:05:05 ¿Entonces, cómo digo eso? Le voy a decir que X12 más X21 va a ser menor o igual a uno, ahora menor o igual a uno, porque es posible que no haya ni 1,2 ni 2,1. ¿Es posible que haya, por ejemplo, 1,3 o que vaya 3,1 P Entonces puede que sea cero, puede que sea cero, pero lo que también sabemos es que Máximo va a ser un no me pueden dar, No sé, me puede dar las dos a la vez, cierto?

00:37:23:04 Uno después de dos o dos después de un tres. Por eso decimos que es menor igual a uno. Puede que no sea ninguno de los dos, pero si es alguno no puede ser. O sea, sí. Si es solamente, puede ser uno de los dos. No pueden ser los dos a la vez, que es dos. Lo decimos de esta manera.

00:37:51:23 Lo mismo va a pasar con 1,3 o tres. ¿Con uno pueden ser máximo uno lo mismo 1,4, 4,1, 1,5, 5,1 que tiene que ser máximo uno, pero no pueden dar, no me pueden dar los dos a la vez porque sería algo incoherente, cierto? Entonces ya lo hicimos con uno. Pues también tenemos que hacerlo con dos de dos, 2,1 porque no lo tenemos, uno que ya está acá, 2,1 y 1,2, pero ya seguiríamos 2,2.

00:38:30:04 No, no lo estamos trabajando, recuerde, entonces tendríamos 2,3 y 3,2 máximo uno, 2,4, 4,2, 2,5 y 5,2. Tenemos que hacer lo mismo con tres, pero ya 3,3. Con uno lo tenemos por acá, 3,2 lo tenemos por acá, o sea que solamente pongo 3,4 y 4,3 y, 3,5 y 5,3 ni con cuatro sería 4,5 y 5,4, porque los otros combinaciones de las tenemos y las del 50 también las tenemos inmersas 5,1, 5,2, 5,3 y 5,4.

00:38:54:08 Entonces esta relación también es explícita, pero en realidad como la podemos hacer, no la podemos hacer de la siguiente manera. Vamos a decir que recordemos nuestra variable x que tenemos x de j. Nos vamos a decir que x p, j más x jt porque mire que siempre estamos estamos intercambiando los índices. Aquí es J que sería uno, dos y tres.

00:39:20:27 Aquí sería JT porque intercambiamos dos índices. Entonces x t j más x JT va a ser menor, iguala uno y que me haga eso para todo T y para todo J que los combine todos. Pero mire que hay algo bien interesante en esta restricción. Miren que siempre la T, que es la primera, el primer índice es la T, el segundo índice es la J.

00:40:13:27 Siempre la T es más, es menor que la J12131415 Aquí es 23245343545. Siempre estamos trabajando con té menor a j P. Entonces eso lo tenemos que tener en cuenta cuando lo pongamos en game para que lo programemos de esa manera. Listo, y tendremos nuestra última restricción. ¡Wow! ¿Entonces el modelo en realidad, cómo quedaría? Nos quedaría nuestra función objetivo, nuestra primer orden, nuestra primera restricción, que es la orden de trabajo posterior a esa segunda restricción, que es la orden de trabajo anterior y nuestra última restricción, que es la relación entre como las parejitas que tenemos aquí.

00:40:47:20 C Entonces nos vamos para acá. AM Que ahora es un poquito por estos modelos, pero bueno, ya lo tenemos. ¿Liga me confirmas? ¿Estás viendo mi game? Sí, me pasó de pantalla. Sí señor. Ok, muy bien, entonces vamos a mirar, vamos a ver qué tal, cómo lo programamos allá, lo traemos acá. Entonces ya vimos en nuestras sesiones anteriores que UTI está diseñado o estructurado por nuestro modelo de games por bloques.

00:41:17:14 ¿Entonces primero tenemos el bloque de conjuntos que ya dijimos que eran los conjuntos para iniciar el bloque de conjuntos utilizamos la función set y decimos cuál es nuestro conjunto? No tenemos un conjunto T que se llama, que son los trabajos por ejecutar o las órdenes de trabajo y los vamos a definir en tres flash de T1 AT5, que podría ponerte 1,2 coma T 3,0 Gauss.

00:41:48:18 No me gnome no me ayuda a no perder mi tiempo porque lo estamos optimizando. Entonces con el asterisco simplemente ponemos que es desde C1 hasta C5 y vamos a crear el alias que como dijimos el gemelitos, entonces lo ponemos con la función alias, por eso se las puse allá tal cual, para que trajéramos la función de la misma manera que lo aceptáramos y decimos que vamos a crear un alias de P que se iba a llamar J, entonces es la que crea este otro conjunto.

00:42:17:06 El conjunto J también va a tener estos mismos elementos. Es igualito. Lo único es que uno se va a Marte y el otro se va a llamar J. Después del bloque conjuntos vamos a tener el bloque parámetros de entrada. Entonces hemos visto que los recibe varios tipos de de de datos. Cuando los datos vienen en forma de matriz o de tabla cierto, de matriz o de tabla, vamos a utilizar la función table.

00:42:40:00 Entonces tengo le ponemos el nombre a ya le dimos el nombre de T ajuste a M que va al yo la voy a dejar así. P Ajuste en realidad es ajuste, pero tengo que ajustarlo acá para que no me salga error de ajuste, que es el tiempo de ajuste para pasar del trabajo T al trabajo J que es tal cual como lo pusimos acá.

00:43:08:12 Y aquí vamos a poner la tablita. Si con los índices del conjunto del conjunto que acabamos de definir esos datos son mil, los podemos importar de Excel. También hemos hecho sesiones en las que lo importamos de Excel, así que también lo pueden buscar igual en sesiones posteriores. Lo vamos a volver a hacer así. Aquí lo estamos poniendo directamente en Luego vamos a tener el bloque de variables y desde el bloque de variables nos va a mostrar las variables de sesión.

00:43:34:20 Recuerden que definimos solo dos variables. En realidad este modelo es muy chiquito, pero vamos a ver que tienen algunas funciones especiales. Entonces tenemos X PJ que es el paso del trabajo al trabajo J cero en caso contrario y tenemos la función tiempo total, la que llamé F aquí la llamé tiempo total P pero también la podría llamar F, no tendríamos ningún problema.

00:44:00:17 Y vamos a decir que esa variable x es una variable binaria tal cual como lo pusimos allá. Es como se pone aquí normalmente. Si esa es la función que utilizábamos para poder decirle que esa variable es binaria, entonces ella sabe que, esa X solamente puede tomar el valor de uno o el valor de cero. Ahora vamos a crear nuestro bloque ecuación en las ecuaciones.

00:44:22:11 Primero hay que definir la ecuación como ponerle un nombre a la ecuación y luego ya le vamos a poner la ecuación como tal. ¿Entonces, qué nombre les puse yo a la función objetivo? Le puse tiempo P de tiempo total el tiempo total de ajuste para completar los trabajos fue el no le podemos poner el nombre que usted quiera.

00:44:42:08 Eso sí, no deje espacios. Mire que yo aquí para dejar el espacio puse un guión. Va desde aquí el nombre que quiera a cada una de las ecuaciones. Entonces esta para mí va a ser mi función objetivo. Donde le puse este nombre a la primera restricción, le puse repostería. ¿Por qué? Porque es el trabajo posterior que se va a realizar.

00:45:19:00 Si a la. A la segunda restricción le puse T anterior. Se le pueden poner el nombre que quiera. Solo tengan cuidado de no dejar espacio que del trabajo anterior que se realizará y a nuestra última reflexión, que son las parejitas, le puse relación, pero órdenes de trabajo relación T que sería la relación entre los trabajos. Después de darle los nombres vamos a poner un punto y coma y vamos a crear cada una de esas restricciones, cada una de esas ecuaciones.

00:45:45:08 Entonces vuelvo a llamar el nombre de la misma manera que lo puse acá arriba. Póngale control de control de porque a veces cuando lo volvemos a escribir se nos va la pala, la letra que no es y entonces ahí es donde empieza a generar los errores. Entonces copiamos aquí y lo pegamos tal cual el nombre. Y cuando ya vamos a poner la fórmula le agregamos dos punticos, damos dos punticos y empezamos a definir la fórmula.

00:46:08:17 Y mire que esta fórmula es tal cual como la que tenemos en Excel, entonces en Excel, perdón, la tenemos en el power point, lo tenemos en nuestro modelo matemático, entonces tenemos tiempo. ¿Total, que fue la variable que definí va a ser igual a qué? ¿Ah, bueno, cómo ponemos? Ya hemos visto, pero se los voy a recordar como ponemos en en Games el igual, el igual sería un igual.

00:46:41:00 Una que está ahí puede ir en mayúscula o en minúscula y otro igual. Si así ponemos el igual, entonces igual e igual ese es el igual, va a ser igual aquí. Entonces a mi me encanta mostrar esto, porque la verdad es que programar Games para mí es supremamente fácil porque lo hacemos muy rápido muchachos. O sea, la idea es que invirtamos el tiempo en pensar en el modelo matemático, en formularlo, pero que ya programarlo sea mucho más fácil.

00:47:17:08 Entonces si observamos acá, la voy a dejar así para poderle. Observemos, acá tenemos sumatoria en T y sumatoria en J de T ajuste, que es el tiempo por la variable. Si vemos en count tenemos sumatoria en P y en J, tal cual como lo pusimos allá, sumatoria antes en J. Ya les voy a explicar esto está bien J de ajuste de T ajuste que es el tiempo de la tabla el que definimos en la tabla multiplicado por la variable.

00:47:50:16 Si en realidad está igual porque tenemos en este caso este pedacito aquí adicional, en realidad es algo particular de este modelo. Recuerden que nosotros en el modelo, aquí en nuestra función objetivo, nosotros no definimos ni X11, ni X22, ni X33, ni X44, ni XXX55. Entonces tenemos que decirle al modelo que cuando genere esta secuencia, esta sumatoria no me tenga en cuenta.

00:48:14:23 Cuando T es igual a J, entonces eso lo vamos a decir así pues le decimos que esta sumatoria senté en J, pero le vamos a poner una condición de este condición, lo vamos a poner cuando vamos a poner una condicional, el if que utilizamos por allá en los otros, en los otros lenguajes. Para Gómez es el signo de pesos, es es como el ID en la condicional.

00:48:55:21 Si entonces va a ser esa sumatoria. Sí. Así que miremos acá la ordenada de este sí, recuerden que tenemos en los números tenemos los dos ordinales y los cardinales ordinales es como la posición de los números P Si la ordenada de P es igual a la ordenada de J que is, Pero necesitamos que esto no sea así, que si la ordenada de tres igual a la ordenada es guapa, no lo haga, Por eso le ponemos el pues va a ser esa sumatoria, si no es igual la ordenada de DT a la ordenada de J.

00:49:22:04 Si la sumatoria no tuviera ese problema no tendríamos que poner eso. Pero en realidad este problema, este problema me gusta porque me permite enseñarles estas otras cositas. ¿Entonces, qué pasa cuando tenemos una condición dentro de la función objetivo? Pues vamos, nos permite hacerla sin ningún problema. ¿Como qué? Cómo lo hacemos. ¿Le ponemos una condición? Entonces vamos. Tiene muchos recursos que nos permiten hacer ese tipo de ecuaciones mucho más fácil.

00:49:56:08 Entonces decimos la condicional, que es el signo de pesos y le decimos es la condición que está entre paréntesis. Sí, esa condición que está entre paréntesis es cuál te saca la sumatoria, si no es igual, si no es igual P y J, si no es igual T y J. ¿Si de quién? Pues de T Ajuste multiplicado por la variable que se es tal cual como lo tenemos ahora, como hacemos las restricciones entonces tenemos posterior.

00:50:30:28 Miren que en en nuestra ecuación tenemos que es una sumatoria en J igual a uno, igual a uno, y eso lo vamos a repetir en las preguntas. Y eso es, eso es igual a uno y lo vamos a repetir para cada P. Entonces donde le decimos que lo repita para cada T, le vamos a decir que lo repita para cada D aquí justo después del nombre y ponemos el nombre el mismo nombre que definimos arriba, lo ponemos después.

00:51:05:05 Después del nombre le decimos Bear. Me va a repetir esa restricción tantas veces como te halla y luego ponemos los dos punticos. ¿Entonces y esa restricción cuál va a ser? Va a ser lo que vimos acá. Sumado por J igual a uno. ¿Miren que esta sumatoria a J otra le ponemos la condición, hay otras, le ponemos la condición porque recuerden que no estamos trabajando las parejitas de uno y uno o dos y dos, tres y tres desde la sumatoria en J de qué?

00:51:37:01 De x, p, J igual aún de X, de J igual. Aún si no existiera esta condición se la voy a citar un momento. Sería sumatoria J de x, t j. Igual aún sería tal cual como la tenemos, tal cual como la tenemos acá. Sumatoria J x J. Igual aún si para cada de por qué este modelo tienen particulares o porque estamos sacando, no estamos teniendo en cuenta las parejas de ya mismo.

00:52:01:28 Si lo mismo va a pasar con la siguiente restricción que la llame anterior ya va a ser para cada J. Después ponemos los dos puntitos y va a ser la sumatoria con nuestra condición acá, que se la voy a quitar un minuto para que la veamos bien. ¿Sería sumatoria en T de quién? De x J igual a uno.

00:52:38:00 Entonces mire que pasarlo acá después de tenerlo formulado es supremamente fácil. Si con nuestra condición adicional, porque justo en este modelo no estamos considerando las parejas y tenemos nuestra última, nuestra última restricción que es la relación, y miren que que hay otra cosa interesante, la verdad es que a mi me gusta cuando los modelos tienen estas cositas porque nos permite observar herramientas diferentes, entonces miren que aquí estamos diciendo que esta suma estamos sumando estos dos, pero que cuando va a ser para todo te.

00:53:17:15 Mire que ya la restricción está en este T, en este para todo T y para todo J, que necesariamente P tiene que ser menor que J. Entonces le vamos a decir que lo haga para todos y para todos. J Sí, recuerden nuestra función condicional de de de Gómez, que es el signo de pesos si quieren, sin la orden A de T si la ordenada de T, o sea la ubicación de T si es 172 y tres, tres y cuatro por dentro dentro, pero la ubicación de T es menor que la ordenada DJ.

00:54:02:14 Si, pues para obtener la ubicación de los índices vamos a utilizar la función orden sí o sí. El ordinal de T es menor. Al ordenar le j ordenan a de quién dx p j más x jp y cómo ponemos el menor igual en GA, así como el igual es igual E vamos a decir que el menor igual es igual l igual de low Si entonces vamos a utilizar el menor igual en este caso que sería menor o igual a U y tenemos nuestras restricciones, todas nuestras ecuaciones objetivo y las tres restricciones.

00:54:47:12 Ahora quiero enseñarles otra cosita con ganas y es normalmente cuando nosotros corremos nuestro modelo, él nos saca, nos saca por defecto, nos saca tres, o sea, recuerda que que estas aquí están como resumidas, pero el por dentro lo que va a hacer es sacarnos todas las ecuaciones explícitamente. ¿Cierto? Normalmente saca solamente tres de cada una, las primeras tres, las otras no, pero en ocasiones nosotros quisiéramos, nosotros quisiéramos como modesto, pero nosotros quisiéramos ver más para ver si el modelo se está generando las ecuaciones que nosotros queremos.

00:55:23:19 Entonces, con esta función opción line grow, le decimos cuántas líneas queremos ver. Por ejemplo, en este el por defecto saca tres. En este caso yo le dije muéstreme diez, sí, muéstreme diez. Ahora sea el último. Lo que es el bloque es solución. Vamos a ver estas vías como nos los muestra en el bloque de solución. Entonces le vamos a decir que este modelo que lo llame secuencia, que lo llame secuenciación entre las normal mente ponemos hold.

00:55:57:00 Si, un hold así que significa que lo coja todo aquí quise mostrarles algo también, y es que yo puedo especificar al modelo que ecuaciones quiero que tome, porque a veces yo quiero probar una ecuación, a veces quiero sacar otra. Quiero que el modelo solamente lo ocurra con tres restricciones y no con cinco. ¿O sea, quiero empezar a hacer versiones del modelo, entonces yo le puedo decir al modelo cuáles ecuaciones quiero que corra, entonces implemente como, entonces como se hace eso?

00:56:27:00 Simplemente pongo entre el aislar, entre los enlaces, pongo el nombre de las ecuaciones que voy a incluir dentro de mi muelle. Entonces, por ejemplo, yo le dije incluya la función objetivo, incluya la restricción de posterior, incluida la restricción de anterior. Incluye la restricción de relación. En realidad yo las incluí todas. Yo pude haberle puesto eso. Hold Lo que pasa es que lo describí de esa manera para que ustedes observen que también yo podría.

00:56:52:01 Yo podría, por ejemplo, decirle corran sin esta última restricción, a ver que me da. Sí, pero yo en este caso quiero que lo corra completa. Entonces de esa manera podemos seleccionar que ecuaciones quiero que entren en la corrida y cuáles no, y le voy a decir que lo resuelva Sol, que lo resuelva usando programación entera mixta, porque recuerden que necesita variables binarias, sí, pero no vale, continua.

00:57:18:21 Podría hacerlo con programación lineal normal. Aquí vamos a utilizar programación la mixta, minimizando el tiempo total, que es nuestra variable, el F que definimos allá, que aquí lo llamamos tiempo total. Si ahora yo lo corro y me sale una solución, entonces habríamos hecho una solución por allá que nos daba. 16. El encontró que la menor secuencia nos da diez y ya lo vamos a ver.

00:57:51:22 Otra cosa que quiero mostrarles es que este ejercicio me permite mostrarles muchas cositas. Otra cosa que quiero mostrarles es antes de ir a ver los resultados. ¿Es que el normalmente, bueno, normalmente nos saca este archivo, cierto? Acá está esta, esta presentación acá quiero mostrarles que yo sé que ustedes están un poquito familiarizados con eso, pero quiero mostrarles lo de lo de esta, esta función, esta función de de generar más líneas de de resultado.

00:58:21:12 Entonces normalmente es que así es, lo que hace es empezar a a desmenuzarlo, a definir cada una de las ecuaciones que nosotros le pusimos. Entonces mire que lo hace tal cual como nosotros lo hicimos allá en forma explícita. Si nos dice para X, o sea para cada una de las P, como le dijimos, entonces nos va mostrando que en este caso apenas un cinco diga acá nos muestra cinco, normalmente muestra tres.

00:58:44:19 Acá nos estamos mostrando todas, porque yo le dije aquí que nos mostrara diez, pero es que apenas un cinco restricciones, pues mire que nos las muestra todas completas por dentro de lo que el hizo, que fue lo explícito que nosotros habíamos hecho. O sea, no, no hay necesidad de hacer igual si nosotros le damos la función en forma de sumatoria y el mire que por dentro nos va a mostrar qué fue lo que sea como de es, agregó.

00:59:19:02 Esa función, sí, esa ecuación. Y miren que por ejemplo tiene esta en la relación entre trabajo dos saco 123 456 789 y diez. Si no la sacó porque si no lo hubiéramos puesto de esa opción de diez, él nos hubiera mostrado solamente las tres primeras de cada una, las tres primeras de cada una. Normalmente uno con las tres primeras tiene poder revisar si si está haciendo lo que queremos, pero a veces cuando, cuando son los cambios, cuando los cambios se demoran más de tres, entonces pues no lo podemos observar.

00:59:46:29 Entonces por eso es bueno tener a la mano esta opción para que podamos pedir el número de líneas que queramos. Si ahora en la el también al final de este archivo, pues el mostrar la solución mire que nos va a mostrar aquí la variable x cuáles dieron uno y cuáles dieron ser. ¿Si y nos va a mostrar el tiempo total, cuánto fue?

01:00:15:29 En este caso fue diez. Pero hay otra manera de ver estos resultados que mi concepto es mucho más amigable, también los podríamos exportar aquí. Luego hacemos uno exportando los AC, pero en este caso vamos a crear con esta función. Lo que hacemos es generar, decirle que nos genere un archivo C con los resultados que queramos. Entonces yo le dije Ingeniero, hay un archivo que se llama que se va a llamar resultado, secuenciación.

01:00:49:20 Yo este nombre se lo puedo dar el nombre que yo quiera, sí, el nombre que yo quiero y eso sí le tengo que decir que es con una extensión junto GX, que son los archivos que Games genera con esta extensión junto que le damos el nombre que queramos y luego le ponemos punto GX, que es la extensión de los archivos que Games genera y le decimos que dentro de ese archivo, desde el archivo que acabamos de generar nos copie X y nos copie tiempo total es cuando hacemos la corrida.

01:01:17:12 Él nos genera en la en la carpeta que tenemos en nuestros modelos, nos genera un archivo igualito a la con misma canción que se llama Resultados secuenciación. El solito genera este archivo y cuando abrimos este archivo él no lo habría acá, aunque lo que acá yo lo tengo abierto es tenemos el archivo y aquí nos muestra los resultados.

01:01:46:07 Entonces miren que normalmente no nos lo muestra así, pero nos muestra los resultados así. Pero me permite, por ejemplo, que yo le diga muéstreme solamente las variables que dieron uno. Entonces aquí, llámelo, redoble, llegar, muéstreme, muéstreme en tiempo total me dice diez y entonces me permite con estos filtros. Muéstreme, por ejemplo, qué va a pasar con el trabajo uno.

01:02:07:29 Pues me permite filtrarlos aquí, aquí, aquí es porque es muy chiquita. ¿Los lo resultados, pero cuando tenemos resultados muy extensos, entonces me permite organizarlos? ¿Me permite filtrarlos? Sí. Entonces es mucho más fácil trabajar con estas tablas porque los puedo filtrar. Puedo decir que me muestre. Muéstreme los que normalmente están Plain. Muéstreme los que no se van a hacer.

01:02:38:04 Muéstreme los que vieron cero. Pero muy mucho los que dieron. Pero entonces es mucho más fácil trabajar con con este archivo que con el que normalmente es acá. Si quisiéramos exportar es con Excel, pues no podemos exportar desde aquí, aunque también lo podemos ver desde Game, pero desde aquí también lo podemos exportar. Si entonces le decimos exportar y nos va a aportar, sí, ahora, entonces miremos para allá.

01:03:06:01 Finalizar, que estamos por tipo de tiempo antes de venir y luego miramos las preguntas, vamos a mirar que entonces que nos dio esa solución, entonces tocó y tras en la tabla que nos dio allá, acá, entonces nos dice que antes de la orden de trabajo uno haga la cinco, después de la orden de trabajo uno haga la cinco después de la orden de trabajo, dos haga la cuatro que respete la orden de trabajo, haga la cuatro.

01:03:30:27 Después dé la orden de trabajo. Tres. Avalado después de la orden de trabajo. Tres. Avalados después de la orden de trabajo. Cuatro. Haga la uno. Después de la orden de trabajo cuatro. Haga la uno y después de la Orden de trabajo cinco. Haga la tres dos. Por orden de trabajo cinco. Hágala tres. Entonces esto sería la secuencia que a un menor tiempo de ajuste de máquina.

01:03:49:06 Si sumamos estos tiempos de ajuste de máquinas, vamos a tener que el tiempo de ajuste fue de diez unidades de tiempo. Recuerden que la que nosotros hayamos hecho si fuera primero uno, luego dos, luego tres de cuatro y luego cinco, nos daba 16. Y eso fue uno de tantos ejemplos que pudimos haber hecho. ¿Entonces qué estamos garantizando aquí?

01:04:30:18 Que este orden es el que tiene el mínimo tiempo total de ajuste. ¿Entonces lo que estamos garantizando entonces que podemos decir? Pues que los modelos matemáticos de secuenciación, esto es un ejemplo pequeño de verdad y secuenciación. Hay que hacer muchas variantes en la secuenciación de órdenes de trabajo e Es para que empecemos como a a explorar sobre estos temas que existen, estos modelos que nos ayudan a tomar decisiones, pero pues existen muchísimas, muchísimas variantes, podemos incluir muchísimos más datos, entonces es como un ejemplo para que nos introduzcamos en esta temática.

01:04:57:19 ¿Son esenciales estos modelos? Son esenciales en la producción, en la programación de la producción. Nos permiten qué pues operar de manera eficiente, nos permiten reducir, nos permiten reducir plazos en última instancia, pues ofrecer productos de servicios de alta calidad. Si ven que sí podemos reducir de 16 unidades de tiempo a diez unidades de tiempo, pues lo estamos haciendo todo, todo más rápido, lo podemos entregar al cliente más rápido.

01:05:23:29 Estamos reduciendo costos porque son horas de operario menos bueno, son menos, entonces definitivamente hacemos un mejor trabajo y podemos satisfacer a nuestros clientes de una mejor manera. Newton Entonces vamos con las preguntas. Lisa creo que por acá hay varias preguntas.

01:05:53:03 Bueno Marcela, muy buenas tardes, Muchísimas gracias por la. Por la CO o por el espacio. Hay una pregun

Optimización de la Producción: Secuenciación de Órdenes de Trabajo en GAMS


En este espacio, exploraremos la esencia de los modelos de optimización en la programación de la producción, destacando su importancia crucial. Presentaremos un modelo matemático para la secuenciación óptima de órdenes de trabajo, minimizando los tiempos de ajuste entre líneas de producción. Además, mostraremos cómo obtener soluciones precisas utilizando el poderoso software GAMS. A través de un ejemplo los participantes obtendrán una visión práctica y concisa de la aplicación de estos modelos, proporcionando herramientas tangibles para mejorar la eficiencia operativa de sus empresas.

Etiquetas relacionadas

  • Matemáticas
  • Metodología
  • Software

¡Comparte este video con tus colegas!

Compartir

Ver más

Cotizar
Próximos
Eventos

X

Mis cotizaciones:

Comentarios a tu solicitud:

Cotizar