C. Desivo
Problemas que resuelvo

¿Tu modelo de optimización da infactible o es demasiado lento? Te ayudo a que resuelva

§Trabajemos juntos →

Si tu modelo de optimización da "infactible", o corre durante horas sin cerrar el gap, el problema no suele ser el solver: es la formulación. Una regla que contradice a otra, un "big M" demasiado grande o un modelo correcto pero débil alcanzan, cada uno por su cuenta, para frenar en seco a un buen solver. Encontrar cuál de ellos es la mayor parte del trabajo, y es un trabajo que ya hice en modelos de scheduling, carga, ruteo y otros problemas combinatorios.

Por qué fallan los modelos

  • Infactible: dos o más restricciones no se pueden cumplir a la vez. Muchas veces es un problema de datos (una fecha de entrega anterior a la llegada de las piezas) o una regla escrita más estricta de lo que el negocio realmente necesita.
  • Demasiado lento: el modelo es válido, pero le da al solver poco con qué trabajar: cotas flojas, restricciones big-M, muchas soluciones equivalentes (simétricas) o un tamaño que crece más rápido que los datos.
  • Respuestas incorrectas: resuelve, pero el plan viola una regla que nadie dejó por escrito.

Formas de arreglarlo

Qué hace Sirve para Límites
Parámetros del solver y límites de tiempo Ajustar parámetros, aceptar un gap "suficientemente bueno" Modelos que ya son casi lo bastante rápidos No arregla una formulación débil
Encontrar las reglas en conflicto El análisis de conflictos del solver (un conjunto infactible irreducible, o IIS), o restricciones blandas con penalizaciones que muestran qué reglas se rompen "Infactible" sin ninguna pista de por qué Igual sos vos quien decide qué regla cede
Reformular Restricciones más ajustadas, menos big-Ms, ruptura de simetría, otro enfoque de modelado (p. ej., programación con restricciones para scheduling) Modelos lentos pero válidos Requiere experiencia en modelado
Descomponer o combinar métodos Dividir el problema, o usar una heurística alrededor de un solver exacto Instancias reales grandes Más código para mantener

Con qué trabajé

Modelos de programación entera mixta en OR-Tools, CPLEX y Gurobi; formulaciones en Pyomo y PuLP; programación con restricciones para scheduling; metaheurísticas (recocido simulado, búsqueda tabú, algoritmos genéticos) cuando un solver exacto no escala; e híbridos de ambos enfoques. El scheduler detrás de mi caso de la fábrica planifica 746 tareas en 8 bahías y 26 operarios.

Qué necesito de vos

El modelo (código o una descripción escrita), una instancia de datos que muestre el problema, y qué significa para vos "infactible" o "demasiado lento" (cuánto tiempo puede correr, qué tan buena tiene que ser la respuesta).

Cómo empezar

Escribime a cdesivo92@gmail.com con una breve descripción del modelo y de qué es lo que falla, o contratame en Freelancer.com si preferís los contratos y la protección de pago de la plataforma.