00:00:07 Casos de uso potenciales de la programación diferenciable en las cadenas de suministro.
00:00:31 Aplicación de la programación diferenciable a las tiendas minoristas y las perspectivas de los clientes.
00:02:56 Propiedad revolucionaria de la programación diferenciable en la modelización del comportamiento del cliente.
00:06:05 Impacto de la programación diferenciable en las operaciones de almacén y en la previsión de la demanda futura.
00:07:11 Suavización de las curvas de envío del almacén con programación diferenciable.
00:09:38 La importancia de servir a los clientes a tiempo y su impacto en la cadena de suministro.
00:10:40 Papel de la programación diferenciable en la modelización de redes de cadena de suministro complejas.
00:13:01 Control de calidad e imperfecciones en los sistemas de producción.
00:14:17 Aplicación de la programación diferenciable para modelar incertidumbres en la industria farmacéutica.
00:16:00 Programación diferencial y sus ventajas en situaciones de datos dispersos.
00:17:41 Caducidad de patentes como ejemplo de aplicación de la programación diferenciable en la industria farmacéutica.
00:19:57 Aceptar la complejidad y abordar los impulsores clave del negocio a través de la programación diferenciable.
00:21:59 Equilibrar la simplicidad y la complejidad en modelos basados en los requisitos empresariales.
00:22:42 Programación diferenciable como una evolución del enfoque programático de Lokad, beneficios y oportunidades para los clientes.

Resumen

En este episodio de entrevista, el presentador Kieran Chandler y Joannes Vermorel, fundador de Lokad, exploran las aplicaciones y el impacto de la programación diferenciable en la gestión de la cadena de suministro. Los modelos tradicionales de series temporales tienen dificultades para modelar la canibalización y la sustitución, mientras que la programación diferenciable ofrece un enfoque centrado en el cliente, teniendo en cuenta los deseos y necesidades del cliente para una toma de decisiones mejor informada. Este enfoque puede conducir a una previsión de la demanda más precisa, una gestión de inventario y una optimización del almacenamiento. La programación diferenciable aborda los desafíos complejos de múltiples niveles y tiene en cuenta las imperfecciones de la producción, lo que la hace adecuada para diversas industrias. Vermorel enfatiza que la programación diferenciable permite a las empresas incorporar conocimientos especializados en los modelos de aprendizaje automático, lo que resulta en soluciones más precisas, eficientes y adaptadas a problemas específicos.

Resumen Extendido

En este episodio de la serie de entrevistas sobre programación diferenciable, el presentador Kieran Chandler y Joannes Vermorel, fundador de Lokad, discuten los posibles casos de uso y las consecuencias de aplicar esta tecnología a las cadenas de suministro, específicamente a las tiendas minoristas. La programación diferenciable tiene el potencial de mejorar la gestión de la cadena de suministro al abordar diversos problemas que los enfoques tradicionales de series temporales no pueden manejar de manera efectiva.

Uno de los problemas clave en la gestión de la cadena de suministro es el desafío de modelar la canibalización y la sustitución, que son particularmente significativas en industrias como el lujo, la moda rápida y la venta de alimentos. Los modelos tradicionales de series temporales tienen dificultades para tener en cuenta estos factores, recurriendo a menudo a soluciones improvisadas que son insatisfactorias y lejos de ser óptimas.

La programación diferenciable ofrece un enfoque fresco a estos problemas al centrarse en la perspectiva del cliente, en lugar de centrarse únicamente en el producto. Permite a los gestores de la cadena de suministro considerar factores como los deseos y necesidades de los clientes, así como su probabilidad de elegir o no elegir artículos de la gama actual y la disponibilidad de stock. Este enfoque centrado en el cliente proporciona una comprensión más precisa y matizada del entorno minorista, lo que conduce a una toma de decisiones más informada.

El aspecto revolucionario de la programación diferenciable radica en su capacidad para modelar las afinidades de los clientes hacia productos específicos en el catálogo. Este proceso procedural permite a los gestores de la cadena de suministro considerar diversos factores, como el hecho de que la novedad impulse las compras de los clientes y que los clientes habituales sean poco propensos a comprar el mismo producto nuevamente. Estos conocimientos pueden llevar a una previsión de la demanda y una gestión de inventario más precisas.

Por ejemplo, en un entorno de librería, es muy poco probable que un cliente que compra un libro compre el mismo título nuevamente en su próxima visita. Los modelos tradicionales de series temporales tienen dificultades para tener en cuenta este comportamiento, mientras que la programación diferenciable puede modelar directamente estas decisiones individuales de compra. Esto conduce a una comprensión más precisa de la demanda del cliente y del ciclo de vida de los productos.

La programación diferenciable permite a los gestores de la cadena de suministro modelar el comportamiento de los clientes que visitan la tienda regularmente, como aquellos impulsados por la novedad. Este enfoque puede ayudar a predecir qué tan populares serán los nuevos productos y cuándo disminuirá la demanda de los mismos. A diferencia de los modelos de series temporales, que se basan en formas indirectas de modelar estos patrones, la programación diferenciable ofrece una solución más directa y precisa.

Vermorel explica que la programación diferenciable permite modelar de manera más precisa el comportamiento del cliente en el punto de venta. Los modelos estadísticos tradicionales tenían dificultades para incorporar incluso conocimientos básicos sobre el comportamiento del cliente, lo que dificultaba su aprendizaje desde cero. La programación diferenciable, por otro lado, ofrece una forma más directa de comprender lo que está sucediendo en la tienda y se puede integrar fácilmente en modelos de aprendizaje automático.

En lo que respecta al almacenamiento, la programación diferenciable puede ayudar a optimizar y suavizar el flujo de productos. Los almacenes a menudo enfrentan problemas de capacidad de entrada/salida, y sería ideal poder realizar pequeños ajustes en los horarios de envío para evitar envíos en conflicto y reducir la necesidad de personal temporal. Las técnicas de optimización tradicionales tenían dificultades con este problema porque implicaba tanto aspectos de aprendizaje como de optimización. Sin embargo, la programación diferenciable puede manejar la gran cantidad de variables involucradas en este proceso, lo que permite optimizar el envío de millones de SKU y abordar efectos de interacción sutiles.

A nivel de fabricación, la programación diferenciable puede ayudar a abordar desafíos complejos de múltiples niveles. Los enfoques tradicionales tienden a centrarse en nodos específicos dentro de la cadena de suministro y buscan altos niveles de servicio para ciertos productos. Sin embargo, Vermorel argumenta que lo que realmente importa es si los productos terminados están disponibles para los clientes, lo que hace que gran parte de los pasos intermedios en la cadena de suministro sean irrelevantes. La programación diferenciable permite modelar de manera más precisa la compleja red de piezas y ensamblajes dentro de la cadena de suministro, lo que en última instancia ayuda a servir mejor y a tiempo a los clientes.

Además, la programación diferenciable puede ayudar a tener en cuenta las imperfecciones en el sistema de producción, como problemas de control de calidad. En industrias como la farmacéutica, donde los organismos vivos están involucrados en la producción de medicamentos avanzados, los lotes de producción pueden perderse debido a procesos biológicos. La programación diferenciable puede tener en cuenta estas pérdidas y ayudar a optimizar el proceso de producción en general.

Vermorel explica que la industria farmacéutica se enfrenta a altos niveles de incertidumbre debido a la naturaleza de sus procesos. Por ejemplo, si surge un problema en un lote de cultivos, es probable que se pierda todo el lote, lo cual es diferente de la industria automotriz, donde solo una pequeña fracción de las piezas puede fallar en el control de calidad. Los modelos tradicionales de aprendizaje automático pueden tener dificultades con este nivel de incertidumbre, ya que es posible que no tengan suficientes datos históricos relevantes para predecir los resultados con precisión.

La programación diferenciable ofrece una alternativa al permitir que las empresas incorporen su conocimiento del dominio directamente en el modelo de aprendizaje automático. Vermorel enfatiza que la programación diferenciable no se trata de arrojar grandes cantidades de datos a un sistema de IA, sino de aprovechar al máximo los datos escasos y valiosos. Por ejemplo, en la industria farmacéutica, el impacto de la expiración de la patente en el precio de los medicamentos es un fenómeno bien conocido. La programación diferenciable permite la incorporación de este conocimiento en el modelo, mejorando su precisión y eficiencia.

La versatilidad de la programación diferenciable la hace adecuada para diversas industrias, cada una con desafíos únicos. Vermorel utiliza el ejemplo del mercado de accesorios automotrices, donde la compatibilidad entre las piezas del vehículo y los modelos de vehículos específicos es crucial. Ignorar este aspecto en un modelo simplista podría llevar a resultados subóptimos, mientras que la programación diferenciable puede ayudar a capturar estos impulsores comerciales esenciales.

A pesar de la complejidad de la programación diferenciable, Vermorel argumenta que las empresas no deben evitar adoptarla. Si bien los modelos más simples pueden funcionar, a menudo lo hacen a expensas de la precisión y una comprensión exhaustiva del negocio. La programación diferenciable permite un enfoque más personalizado que puede abordar problemas y situaciones específicas.

La programación diferenciable representa una evolución del enfoque programático de Lokad para la optimización de la cadena de suministro. Permite a las empresas incorporar su conocimiento del dominio en sus modelos de aprendizaje automático, lo que conduce a una ejecución más eficiente y un mejor rendimiento en términos de precisión. La programación diferenciable ofrece a las empresas la oportunidad de revisar problemas existentes y desarrollar soluciones escalables que aborden mejor sus desafíos únicos.

Transcripción completa

Kieran Chandler: Hoy, vamos a concluir nuestra breve serie analizando un poco más algunos de sus posibles casos de uso y las consecuencias de gran alcance que esto puede tener cuando se aplica a una cadena de suministro. Entonces, Joannes, ¿cuáles son algunos de los problemas en los que podemos mejorar nuestro enfoque utilizando la programación diferenciable? Y comencemos tal vez con las tiendas minoristas, ya sabes, el punto de contacto con los clientes.

Joannes Vermorel: En este momento, prácticamente todo lo que se hace en la cadena de suministro se realiza desde la perspectiva de series temporales, donde tienes un producto y observas las ventas unitarias, la demanda que se compra o el servicio dependiendo del tipo de tienda que tengas. Obviamente, una tienda de aeroespacial no es lo mismo que una tienda de moda rápida, pero la idea es que el enfoque es más o menos el mismo desde la perspectiva de series temporales por producto. El problema con esta perspectiva, por ejemplo, es que cosas como la canibalización y la sustitución, que son muy fuertes en el lujo, la moda rápida o incluso la venta minorista de alimentos, son muy difíciles de modelar. En muchos casos, apenas existen. La programación diferenciable te brinda una forma de abordar directamente el problema desde la perspectiva del cliente, diciendo: “Bueno, tengo una población de clientes que entran a mi tienda y tienen deseos y necesidades, y van a elegir o no elegir cosas que se les presenten, considerando el surtido actual y la disponibilidad de stock en la tienda”. Eso es muy interesante porque, a través de algo como la programación diferenciable, podemos operar a un nivel que no es el nivel de una serie temporal sobre las referencias de productos enumeradas en la tienda. Podemos tomar la perspectiva del cliente, y eso es realmente revolucionario. Nuestra experiencia con la perspectiva de series temporales es que, por lo general, lo mejor que puedes hacer es simplemente aplicar cinta adhesiva a tus modelos numéricos para que no estén demasiado rotos cuando se enfrenten a la canibalización y la sustitución, pero no es muy satisfactorio. En el mejor de los casos, es cinta adhesiva.

Kieran Chandler: Entonces, tal vez hagamos un resumen de lo que hemos discutido en episodios anteriores. ¿Cuál es esa propiedad revolucionaria que mencionaste allí que hace que todo esto sea posible?

Joannes Vermorel: Con un enfoque de programación diferenciable, literalmente puedes modelar el hecho de que un cliente tiene una afinidad específica con cualquier producto de tu catálogo, y puedes escribir un proceso procedural para eso. Por ejemplo, digamos que tengo clientes que regresan a mi tienda, y tal vez esos clientes están motivados por la novedad. ¿Cómo modelo algo tan simple como que una vez que las personas entraron a mi tienda para comprar un libro, por definición, no van a comprar el mismo libro cuando regresen? Solo van a comprar otro título, no el mismo. Desde una perspectiva clásica de series temporales, es casi imposible tener en cuenta algo tan básico como eso, que un cliente recurrente que entra a tu librería una vez al mes no va a volver a comprar el mismo producto. Entonces, si ves un aumento repentino de la demanda de un libro, lo más probable es que la demanda se extinga por el hecho de que si todos tus clientes habituales compran este nuevo y popular libro, entonces, por definición, cuando regresen, no lo volverán a comprar. Obviamente, puedes modelar eso con una perspectiva de series temporales utilizando un efecto de ciclo de vida, donde introduces un nuevo producto, tiene un pico al comienzo del lanzamiento y luego la demanda solo disminuye. Pero esa es una forma muy indirecta de modelar el problema. Un enfoque mucho más directo es usar la programación diferenciable.

Kieran Chandler: Tu software te permite modelar con precisión lo que está sucediendo en la tienda de una manera mucho más directa de lo que era posible anteriormente. ¿Puedes explicar cómo esto cambia la forma en que se utilizan los modelos estadísticos en la optimización de la cadena de suministro?

Joannes Vermorel: Con la programación diferenciable, se vuelve más fácil incorporar ideas básicas sobre el comportamiento del cliente en los modelos estadísticos. Esto significa que los modelos no tienen que aprender todo desde cero sin ningún conocimiento empresarial, lo cual era una tarea difícil antes.

Kieran Chandler: ¿Cómo ayuda la programación diferenciable en el aspecto del almacenamiento en la cadena de suministro? ¿Se trata principalmente de predecir la demanda futura?

Joannes Vermorel: La programación diferenciable también puede ayudar con los desafíos a nivel de almacén, como suavizar el flujo de envíos. Los almacenes a menudo enfrentan problemas de capacidad de entrada y salida, y una solución es organizar inteligentemente los envíos para evitar colisiones y reducir la presión en las plataformas logísticas. Haciendo pequeños ajustes al horario de envío, las operaciones pueden ser más fluidas, más fáciles y más baratas de gestionar, reduciendo la necesidad de mano de obra temporal y la complejidad operativa que conlleva.

Kieran Chandler: ¿Fue difícil lograr este nivel de optimización con las técnicas existentes?

Joannes Vermorel: Con las técnicas existentes, era difícil combinar el aprendizaje y la optimización. Cuando tienes miles de productos y cientos de clientes, terminas con millones de variables para optimizar, y los métodos de optimización tradicionales no pueden manejar esta complejidad. La programación diferenciable permite una mejor optimización en estas situaciones, incluso con muchas interacciones sutiles, como la necesidad de enviar más productos a una tienda si está más cerca de quedarse sin stock.

Kieran Chandler: Tenías un ciclo de retroalimentación entre lo que decides, lo que pronosticas y, desde una perspectiva más tradicional, podríamos hacer esta optimización, pero era mucho más tedioso porque teníamos que hacer un análisis por etapas. Fundamentalmente, era muy difícil tener en cuenta todos esos ciclos de retroalimentación que existen en el sistema. Bien, y si damos el último paso atrás en esa cadena de suministro y miramos las cosas ahora desde un nivel de fabricación, ¿cómo nos ayuda la programación diferenciable con estos desafíos de múltiples niveles?

Joannes Vermorel: El punto es aún más agudo cuando se trata de la optimización de múltiples niveles. La mayoría de lo que está sucediendo en cada nodo individual es, de alguna manera, inconsecuente en el sentido de que es un artefacto. No te importa la disponibilidad de stock en puntos aleatorios de tu compleja red de piezas y ensamblajes que terminan como productos terminados. El único punto del gráfico que realmente importa es si estás sirviendo a tu cliente a tiempo, lo cual es solo una pregunta relevante para los productos terminados.

¿Qué pasa con todo el grafo de dependencias que tienes detrás? El hecho de que lo que está sucediendo en cada paso intermedio, este complejo grafo de dependencias donde tienes tu lista de materiales generando este grafo, es fundamentalmente irrelevante. Es un artefacto que solo importa desde la perspectiva de si estás, al final del proceso, sirviendo a tus clientes.

Por cierto, eso vuelve a mi crítica de DDMRP hace un par de semanas. Si puedes adoptar un esquema de puntuación binario en este grafo y decir que para ciertos nodos, quieres lograr un alto nivel de servicio, no importa tener un alto nivel de servicio para un producto si a tus clientes no les importa porque no están comprando ese producto. Lo único que les importa es si los productos terminados que estás vendiendo están disponibles o no.

La programación diferenciable te ayuda a modelar de manera mucho más precisa lo que está sucediendo en esta red. Tienes algunos pasos que pueden tener tiempos probabilísticos o no. Puede haber pasos donde tienes una cierta fracción del flujo que no pasa el control de calidad. Obviamente, si tienes una cadena de suministro perfecta, tendrás un control de calidad del 100%. Entonces, si tienes 100 artículos que necesitas suministrar, tendrás 100 productos terminados que fluyen después del paso de mecanizado. Pero a veces, tienes control de calidad, y tu sistema de producción es imperfecto, y puedes perder algunas cantidades.

Por ejemplo, en la industria farmacéutica, cuando tienen procesos biológicos muy avanzados, puedes perder un lote de producción porque es un cultivo de células para producir los medicamentos más avanzados. A pesar de décadas de esfuerzos, cuando trabajas con organismos vivos que producen los compuestos químicos que deseas extraer y que formen parte de tu medicamento, es muy difícil tener un proceso que sea completamente confiable al 100%. No es como el mecanizado en la industria automotriz.

Kieran Chandler: Entonces, ¿aquí es donde entra la idea de modelar esos resultados que no son completamente deterministas?

Joannes Vermorel: Sí, pero también el hecho de que puedes tener ideas muy específicas sobre el tipo de problemas que puedes tener. Por ejemplo, en la industria farmacéutica, si tienes un problema, lo más probable es que pierdas todo el lote de cultivos que tienes en la planta. No será como el mecanizado en la industria automotriz donde una pieza de cada diez mil no pasa el control de calidad. Si estás en la industria farmacéutica y tienes cultivos que generan ciertos tipos de compuestos químicos, puedes perder todo el lote si hay un problema.

Kieran Chandler: Eso cambia por completo el tipo de incertidumbre, y puedes intentar aprenderlo a partir de los datos, pero es difícil porque es posible que no tengas 20 años de datos relevantes. Estás haciendo el problema más difícil de lo que debería ser porque te gustaría poder expresar este tipo de conocimiento, la realidad física de tu negocio, directamente en el modelo. Entonces, el enfoque probabilístico es muy bueno, pero mi punto es, ¿qué tal si tienes un enfoque como la programación diferenciable donde puedes enmarcar los problemas que estás tratando de aprender para dirigir directamente tus algoritmos de aprendizaje automático hacia el tipo muy específico de incertidumbre que esperas encontrar porque conoces muchas cosas sobre tu red? Y puede ser un cambio de juego porque de repente necesitas muchos menos datos para ser súper eficiente.

Joannes Vermorel: Absolutamente. La verdadera virtud radica en esta idea de programación. Quieres, no es una IA a la que simplemente puedas arrojar datos y decirle que aprenda; esto es un poco lo contrario. Está diciendo que los datos son escasos y quiero ser muy preciso, pero necesito aprovechar al máximo los datos que tengo. Esto no es como Google tratando de analizar mil millones de páginas web; no tenemos datos infinitos. Los datos son escasos; hay datos erráticos y son muy valiosos porque no tenemos tantos puntos de datos. Así que realmente necesitamos aprovechar al máximo. Por ejemplo, si queremos volver a la industria farmacéutica y hacer pronósticos estratégicos muy perspicaces, está todo el tema de la expiración de patentes.

La expiración de patentes impulsa a las grandes farmacéuticas. Tienes un producto, un medicamento patentado, y luego cuando la patente expira, existe el riesgo de que los competidores entren en tu mercado a un precio más bajo y compitan contigo, obligándote a bajar tus precios también, lo que puede reducir significativamente tu margen. Esta cosa de la expiración de patentes es completamente obvia para cualquier persona familiarizada con la industria farmacéutica, y ha estado impulsando la innovación y la actividad de las grandes compañías farmacéuticas durante décadas. Si esperas que un algoritmo de aprendizaje automático redescubra por sí solo este mecanismo de expiración de patentes, eso es un poco insano. En cambio, la programación diferenciable es como una herramienta para los Supply Chain Scientists para decir, bueno, sé que tengo esta cosa de expiración de patentes. Lo que no sé es exactamente cuál es la probabilidad de que los competidores entren en la arena y compitan con nosotros con el precio. Y lo que no sé exactamente es cómo va a funcionar esto para nosotros si de repente tenemos que tener las cantidades que vendemos solo porque otros competidores entran y mantenemos todos los mismos costos fijos.

Si mantengo la misma capacidad de producción, entonces tengo muchos costos que son completamente fijos y no dependen de la cantidad que produzco, y por lo tanto, si tengo competidores que entran en el mercado, el efecto en mis márgenes puede ser completamente no lineal. Así que tienes razón; se trata completamente de poder modelar las ideas clave que son específicas de un sector a otro sector programándolas en el modelo de aprendizaje automático.

Kieran Chandler: Y el problema que muchas personas pueden tener con la programación diferenciable es que es bastante compleja en algunas partes. ¿A veces estamos usando un martillo para romper una nuez, y hay técnicas más simples que podríamos seguir usando?

Joannes Vermorel: Siempre puedes usar técnicas más simples, pero creo que la pregunta clave que los clientes deberían hacerse es si diriges una cadena de suministro compleja, ¿realmente puedes decidir ignorar la complejidad del negocio en el que estás operando? Por ejemplo, si estás vendiendo piezas de automóviles en una plataforma de comercio electrónico y estás atendiendo a propietarios de automóviles…

Kieran Chandler: ¿Realmente puedes ignorar los problemas que tienes, como las compatibilidades mecánicas entre vehículos y piezas? El hecho es que las personas que vienen a comprar piezas de automóviles en tu sitio web, los clientes reales no son esas personas, son sus vehículos. Entonces, el vehículo es el cliente final de esas piezas, y tienes en el núcleo de la demanda un problema de compatibilidad mecánica. Si tienes muchas piezas que son sustitutos perfectos porque todas son mecánicamente compatibles con algún vehículo, es un aspecto súper importante de tu negocio. Lo que estoy diciendo es que este es un ejemplo donde necesitas abrazar esto porque realmente es el núcleo de tu negocio. Un enfoque simplista que simplemente ignora el desafío de compatibilidad entre piezas y vehículos, que es completamente crucial cuando piensas en el mercado de accesorios automotrices, puede funcionar pero a expensas de ser increíblemente rudimentario en términos de negocio.

Joannes Vermorel: Estoy diciendo que en términos de martillo, no deberías estar usando tecnología sofisticada solo por el hecho de ser sofisticada. Lo que estoy diciendo es que si estás usando algo que simplemente ignora el impulsor clave de tu negocio, entonces cualquier modelo que tengas es increíblemente simplista, y no esperes que una solución numérica sofisticada o lo que sea realmente resuelva el problema comercial que tienes si tu receta numérica comienza por ignorar por completo este ángulo empresarial. Mi punto es que deberías ser lo más simple posible, pero no más simple de lo que realmente requiere tu negocio.

Kieran Chandler: Si concluimos hoy, anteriormente en Lokad, teníamos un enfoque muy programático. ¿Cuál es el gran cambio que nos está dando la programación diferenciable y cómo pueden adaptarse las empresas para aprovecharlo?

Joannes Vermorel: La programación diferenciable es de hecho más de lo mismo de este enfoque programático que ha sido el motor de Lokad durante mucho tiempo. Ahora es algo en lo que este enfoque programático se adentra en el núcleo de nuestra tecnología de aprendizaje automático. No solo era el núcleo de nuestra Plataforma de Big Data con mecanismos para procesar grandes volúmenes de datos, sino también filtrado simple, agregación y preprocesamiento típico, limpieza de datos, y así sucesivamente. Eso ya era completamente programático, pero el núcleo de aprendizaje automático era ligeramente rígido. Con deep learning, ya éramos mucho más flexibles que lo que teníamos con la generación anterior, pero es una nueva etapa. Para nuestros clientes, creo que es una oportunidad para revisar muchos problemas y situaciones en las que, en el pasado, habíamos hecho muchas “soluciones provisionales”. Cuando no tienes algo que sea flexible, tiendes a “solucionar” las cosas con trucos ingeniosos, pero no son naturalmente tan escalables como queremos que sean. Pueden ser un poco rudimentarios y aproximarse a la visión empresarial de manera subóptima. Aquí, es una oportunidad para revisar eso y hacer prácticamente lo mismo, pero de una manera más ágil en términos de ejecución y más eficiente en términos de precisión cuando contamos en euros o dólares el error, en términos comerciales.

Kieran Chandler: Genial, gracias por tu tiempo hoy. Eso es todo para nuestra miniserie sobre programación diferenciable. Volveremos la próxima semana con otro episodio sobre un nuevo tema, pero hasta entonces, gracias por vernos. Adiós.