Skip to content

Entorno en desarrollo activo: puedes notar cambios o funciones incompletas.

JAOT
Plataforma de optimización de código abierto

Rutas, turnos y presupuestos,resueltos con el mejor plan posible,y con el óptimo demostrado.

JAOT convierte tu problema en un modelo matemático, lo resuelve y demuestra que no existe una respuesta mejor. Puedes crear el modelo con el asistente de IA, partir de una plantilla de la comunidad o llamar a JAOT desde tu propio agente vía MCP.

Una plataforma de optimización para personas y para agentes de IA.

rutas · 48 paradas · SCIP
Primera solución 2092.6
Óptimo 452.6−78.4%
Óptimo demostrado
Longitud de ruta452.6
Distancia al óptimo0.00%
Nodos explorados843
Variables2304
Solvers de código abiertoMás de 100 plantillasMarketplace de modelos de optimizaciónNativo MCPVer en GitHub
La plataforma

Tres formas de optimizar

Crea un modelo con el asistente de IA, parte de un modelo de la comunidad en el marketplace o conecta tu agente de IA vía MCP.

Asistente de IA

Describe el problema con tus palabras. El asistente escribe el modelo matemático y JAOT lo resuelve.

«Planifica los repartos de la semana que viene: 4 furgonetas, 60 paradas, todas de vuelta a las 18:00.»

Marketplace de modelos

Explora los modelos que otras personas han publicado. Usa uno tal cual, bifúrcalo o publica el tuyo.

Fertilizer Mix Optimizer — agriculture

MCP para agentes de IA

Conecta Claude, GPT o cualquier cliente MCP. Un agente puede resolver problemas, bifurcar modelos del marketplace y escribir modelos versionados por su cuenta.

solve_with_template(template_id="fertilizer_mixing")

Asistente de IA
El asistente de JAOT escribiendo un modelo de optimización a partir de un problema descrito con palabras normales
Escribe el modelo una vez

Catorce líneas, sea cual sea el tamaño de los datos

JModel describe el problema con conjuntos y familias indexadas. JAOT representa las matemáticas antes de cargar ningún dato. El mismo código de abajo cubre una planta durante un trimestre o cuatrocientos productos durante un año, sin cambiar el modelo.

Lo que escribes

set PRODUCTS;set RESOURCES;set WEEKS; param margin{PRODUCTS};param usage{RESOURCES, PRODUCTS};param capacity{RESOURCES, WEEKS};param ceiling{PRODUCTS, WEEKS}; var build{PRODUCTS, WEEKS} integer >= 0; maximize contribution:  sum{p in PRODUCTS, w in WEEKS} margin[p] * build[p, w]; subject to plant{r in RESOURCES, w in WEEKS}:  sum{p in PRODUCTS} usage[r, p] * build[p, w] <= capacity[r, w]; subject to market{p in PRODUCTS, w in WEEKS}:  build[p, w] <= ceiling[p, w];

Lo que significa

max⁡∑p∈PRODUCTS,  w∈WEEKSmarginp buildp,w\max \quad \sum_{p \in \mathrm{PRODUCTS},\; w \in \mathrm{WEEKS}} \mathrm{margin}_{p} \, \mathrm{build}_{p,w}
∑p∈PRODUCTSusager,p buildp,w≤capacityr,w∀ r∈RESOURCES,  w∈WEEKS\sum_{p \in \mathrm{PRODUCTS}} \mathrm{usage}_{r,p} \, \mathrm{build}_{p,w} \le \mathrm{capacity}_{r,w} \quad \forall\, r \in \mathrm{RESOURCES},\; w \in \mathrm{WEEKS}
buildp,w≤ceilingp,w∀ p∈PRODUCTS,  w∈WEEKS\mathrm{build}_{p,w} \le \mathrm{ceiling}_{p,w} \quad \forall\, p \in \mathrm{PRODUCTS},\; w \in \mathrm{WEEKS}
buildp,w∈Z,  buildp,w≥0∀ p∈PRODUCTS,  w∈WEEKS\mathrm{build}_{p,w} \in \mathbb{Z},\; \mathrm{build}_{p,w} \ge 0 \quad \forall\, p \in \mathrm{PRODUCTS},\; w \in \mathrm{WEEKS}
7 productos × 6 recursos × 13 semanas91 variables · 169 restricciones
400 productos × 40 recursos × 52 semanas20800 variables · 22880 restricciones

Las mismas 14 líneas en los dos casos. Los datos fijan el número de variables y restricciones. El modelo no cambia.

Después de resolver

Los tres productos de mayor margen no entran en el plan

Un trimestre de una planta de electrónica de potencia, resuelto y con el óptimo demostrado. El plan no fabrica ninguna de las tres familias de producto con mayor margen por unidad. El componente al que todo el mundo culpa del cuello de botella termina el trimestre con casi la mitad de su stock sin usar. El análisis exacto muestra por qué.

Plan de producción del trimestre

22.410 unidades · SCIP, óptimo demostrado
  • Inversor de tracción de 800 V2450 € / unidad
    0 unidades
  • Unidad de gestión de batería1780 € / unidad
    0 unidades
  • Módulo de carga rápida CC1320 € / unidad
    0 unidades
  • Inversor solar de red960 € / unidad
    7460 unidades
  • Variador industrial740 € / unidad
    6290 unidades
  • Unidad de telemetría de flota410 € / unidad
    8660 unidades
  • Concentrador de sensores260 € / unidad
    0 unidades
Margen de contribución15.366.800 €

Qué se agota

  • Horas de línea SMTal límite
  • Horas de cámara de burn-inal límite
  • Microcontroladores de automoción112.570 sin usar
  • Módulos de potencia SiCal límite
  • Horas de test final7930 sin usar
  • Horas de barnizado3290 sin usar
  • Contrato de telemetría8660 entregadas, 3500 exigidas

Inversor de tracción de 800 V: 2450 € por unidad, y el plan no fabrica ninguno. Consume más de cada uno de los 3 límites agotados que cualquier otro producto, mientras quedan 112.570 microcontroladores de automoción sin usar, así que comprar más de eso no cambiaría nada. JAOT lee los dos datos de la propia solución con variables enteras, así que valen para el plan que vas a ejecutar.

Escenarios, medidos resolviendo de nuevo

Pregunta cuánto vale una unidad más de un límite. JAOT cambia ese límite, resuelve el modelo otra vez e informa de la diferencia real. Como vuelve a resolver el modelo con sus variables enteras, el número es exacto. Un precio sombra leído de la relajación lineal puede ser incorrecto para un modelo con variables enteras.

Decisiones agrupadas como las escribiste

La solución vuelve agrupada por los conjuntos y los índices de tu modelo. Cada resolución dice también cómo terminó: en el nodo raíz, tras ramificar o por el límite de tiempo.

Explicación en un clic

El asistente convierte el análisis en palabras normales. Solo usa los números de tu resolución.

Cuando no hay respuesta

Señala las dos reglas que chocan y descarta las otras cinco

Un cliente pide un trimestre de inversores de tracción que la línea no puede fabricar. Un solver responde «infactible» y te deja revisar el modelo entero. JAOT quita cada regla por turnos y vuelve a resolver hasta que solo queda la contradicción, así sabes dónde mirar.

Hasta dónde llega cada límite

7 reglas · 2 en el conflicto
  • Horas de línea SMT 7700 inversoresno es el problema
  • Horas de cámara de burn-in 5240 inversoresen conflicto
  • Microcontroladores de automoción 7900 inversoresno es el problema
  • Módulos de potencia SiC 6600 inversoresno es el problema
  • Horas de test final 6900 inversoresno es el problema
  • Horas de barnizado 6600 inversoresno es el problema
el contrato pide 6000

Solo hay horas de cámara de burn-in para 5240 inversores, y el contrato pide 6000. Los otros 5 límites quedan descartados por su nombre. Con 7600 más, el modelo se resuelve. Ese es el número que hay que llevar al cliente.

El conjunto exacto en conflicto

JAOT aísla el conjunto más pequeño de restricciones y cotas que no pueden cumplirse a la vez, y las resalta en la página de resultados.

Cómo arreglarlo, en palabras normales

Con un clic, el asistente nombra las restricciones en conflicto y propone un arreglo: qué cota ampliar o qué límite relajar.

Avisa cuando está estimando

Cuando un modelo es demasiado grande para un conjunto exacto en conflicto, JAOT lo dice y marca la explicación como heurística.

Elegir solver

El solver más rápido depende del modelo

JAOT trae SCIP, HiGHS, CBC, GLPK y JAOS. El orden cambia de un modelo a otro, así que JAOT ejecuta tu problema en todos ellos en las mismas condiciones y muestra qué hizo cada uno. Abajo, un trimestre de carga de cámaras de envejecimiento en la misma planta.

Tiempo total, escala logarítmica

1342 variables, 3558 restricciones
  • SCIPDemostró 17 cámaras
    10,86 s

    201 nodos, 73.617 iteraciones símplex

  • HiGHSDemostró 17 cámaras
    1,44 s

    1 nodo, 4214 iteraciones símplex

  • CBCDemostró 17 cámaras
    1,70 s

    776 nodos, 16.402 iteraciones símplex

  • GLPKSin tiempo
    59,92 s

    Demostró que ningún plan necesita menos de 17 cámaras, tras 44.838 nodos, y no encontró ningún plan

  • JAOSSin tiempo
    60,05 s

    Demostró que ningún plan necesita menos de 16,47 cámaras, tras 1332 nodos, y no encontró ningún plan

La escala es logarítmica: cada paso son diez veces el anterior, así que la longitud de la barra no es proporcional al número que tiene al lado.

HiGHS acabó primero. SCIP llegó a la misma respuesta 7,5 veces más lento. Con otro modelo el orden cambia, así que la única forma de elegir es medir.

GLPK y JAOS agotaron los 60 segundos y no encontraron ningún plan. Cada uno demostró una cota, que aparece en su fila: ningún plan necesita menos cámaras que esa. Una cota sigue siendo útil: te dice a qué distancia del mejor plan puede estar cualquier plan.

Todos los solvers recibieron el mismo límite de 60 segundos y los mismos 4 hilos, uno detrás de otro en un servidor de 12 núcleos. Los segundos solo son comparables dentro de esta ejecución.

Las mismas condiciones

El mismo límite de tiempo, la misma tolerancia de gap y el mismo número de hilos, en una máquina, una ejecución cada vez. Dos solvers a la vez competirían por los núcleos, y sus tiempos ya no serían comparables.

Una matriz entera

Cruza los conjuntos de datos de tu modelo con los solvers: los datos en las filas, los solvers en las columnas. Si tus datos cambian cada mes, el solver más rápido también puede cambiar, y la matriz lo enseña en una sola tabla.

La cota junto a la respuesta

Cada fila muestra la mejor cota que demostró el solver junto a la respuesta que encontró. En una ejecución parada por el límite de tiempo, la diferencia entre las dos te dice a qué distancia del óptimo puede estar la respuesta.

Hecho también para agentes de IA

Cualquier cliente MCP puede usar JAOT: Claude, GPT o tu propio agente. Puede crear un modelo, resolverlo, leer el análisis y publicar el resultado, con las mismas herramientas que usa una persona.

1

Descubrir

El agente encuentra JAOT vía MCP o en /.well-known/llms.txt

2

Autenticar

El agente envía una clave de API

3

Resolver

Crea el modelo, fija los parámetros y ejecuta el solver

4

Resultados

Lee la solución y el análisis en JSON

Herramientas MCP

Resolución de problemas

  • solve_problem
  • validate_problem
  • solve_multi_objective
  • list_available_solvers

Plantillas

  • list_templates
  • get_template
  • solve_with_template

E/S de ficheros

  • import_preview
  • import_and_solve
  • export_model
  • export_execution

Marketplace

  • list_catalog_models
  • get_catalog_model
  • get_catalog_model_schema

Proyectos de modelo

  • create_model_project
  • create_model_project_from_marketplace
  • update_model_project_draft
  • commit_model_version
  • list_project_versions
  • get_model_stats
  • solve_model_project
  • get_model_project
  • list_model_projects

Ejecución

  • execute_model
  • get_execution
  • get_execution_insights

Análisis

  • get_execution_exact_analysis
  • analyze_infeasibility
  • start_execution_scenario_analysis
  • get_execution_scenario_analysis

Comparación de solvers

  • compare_solvers
  • get_solver_comparison
  • compare_solvers_on_datasets
  • get_solver_comparison_matrix

34 herramientas, todas invocables por un agente

Funciona con Claude, GPT y cualquier cliente MCP

Quién usa JAOT

Equipos y empresas

  • Planifica rutas, turnos, producción o presupuestos con un solver exacto
  • API REST y MCP, para encajar con los sistemas que ya usas
  • Espacios de trabajo compartidos con roles y una biblioteca de modelos común
  • Claves de API, permisos por espacio de trabajo y límites de peticiones

Colaboradores y consultores

  • Publica tus modelos en el marketplace
  • Otras personas pueden bifurcarlos y construir sobre tu trabajo
  • Los modelos están versionados, así que una bifurcación apunta a una versión concreta
  • Mira cuántas veces se ha adoptado y ejecutado cada modelo

Estudiantes e investigadores

  • Crea un modelo con el asistente y lee las matemáticas que produce
  • Plantillas desde un primer LP hasta un MIP completo, con ejemplos resueltos
  • Cinco solvers de código abierto que puedes ejecutar sobre el mismo modelo y comparar
  • Gratis y de código abierto, y puedes instalarlo en tu propia máquina

Qué se modela con JAOT

Seis problemas habituales. Cada uno tiene una plantilla en el marketplace, o el asistente puede construirlo a partir de tu descripción.

102 plantillas en 34 sectores

Explorar el marketplace
  • Finance & Investment5
  • Logistics & Distribution5
  • Human Resources & Workforce4
  • Manufacturing & Production4
  • Aerospace3
  • Agriculture & Farming3
  • Chemical Engineering3
  • Construction3
  • Cutting & Packing3
  • Energy & Utilities3
  • Facility Location3
  • Food & Beverage3
  • Forestry3
  • General Purpose3
  • Government3
  • Healthcare & Nutrition3
  • Maritime3
  • Mining3
  • Network & Graph Optimization3
  • Pharmaceutical3
  • Railway3
  • Real Estate3
  • Retail & Commerce3
  • Supply Chain Management3
  • Telecommunications3
  • Transportation & Logistics3
  • Warehouse3
  • Water Management3
  • Advertising & Media2
  • Education & Academic2
  • Environmental & Sustainability2
  • Insurance2
  • Sports & Recreation2
  • Textile2

Rutas de vehículos

Una empresa de transporte reparte a 50 direcciones con 8 camiones. El modelo elige el orden de las paradas de cada camión para que la distancia total sea la mínima, dentro de la capacidad de cada camión y de las ventanas de entrega.

Desde el marketplace

Planificación de turnos

Un hospital asigna 120 enfermeros a tres turnos. El modelo respeta la disponibilidad de cada uno, las reglas de descanso entre turnos y el personal mínimo por turno.

Creado con IA

Asignación de presupuesto

Un equipo de marketing reparte 2 M€ entre 12 canales. El modelo pone el dinero donde el retorno esperado por euro es mayor, con un mínimo y un máximo por canal.

Creado con IA

Planificación de producción

Una fábrica planifica una semana de producción en 5 líneas. El modelo decide qué fabrica cada línea y cuándo, dentro del material, la mano de obra y las horas de máquina disponibles.

Desde el marketplace

Red de cadena de suministro

Un minorista elige dónde abrir almacenes para servir a 200 tiendas. El modelo compara el coste fijo de cada emplazamiento con el coste de transporte a cada tienda.

Desde el marketplace

Asignación de recursos

Una consultora asigna 80 consultores a 25 proyectos. El modelo casa las habilidades con lo que necesita cada proyecto y mantiene a cada consultor dentro de sus horas disponibles.

Creado con IA

Cómo funciona

Elige un punto de partida

Escoge una de las más de 100 plantillas, bifurca un modelo del marketplace, importa un fichero MPS, LP o JSON, o descríbele el problema al asistente.

Crea el modelo en el estudio

Escríbelo en JModel o coloca variables y restricciones en el lienzo visual. Carga tus datos en la pestaña Datos. JAOT muestra las matemáticas resultantes mientras trabajas.

Resuelve y lee el análisis

Ejecuta un solver o compara los cinco sobre el mismo modelo. Después lee qué restricciones están al límite y cuánto vale una unidad más, y exporta la solución.

Empieza a optimizar

Gratis y de código abierto. Crea una cuenta y resuelve un primer modelo hoy, o instala la plataforma entera en tu propio servidor.