Starting December 25, 2025, JijZept AI is available as an invite-only beta. This article introduces the goals and design philosophy of JijZept AI, along with a hands-on demo.
If you want to try JijZept AI early, please join our waitlist on the LP page below! Just enter your email address to complete registration. We will send you an invitation code as soon as beta access becomes available.

Introduction
Mathematical optimization is a powerful tool for directly improving decision-making in areas such as production scheduling, logistics routing, and resource allocation. However, getting a problem to a "solvable" state in practice takes more time than expected. You need to understand the business requirements, translate constraints into mathematical models, implement them in code, run the solver, interpret the results, and iterate. This cycle significantly increases the overall lead time of optimization projects.

JijZept AI is an AI assistant developed with the goal of minimizing the time it takes for users to solve their optimization problems. Rather than magically automating the optimization computation itself, we focus on reducing the number of round-trips between modeling, execution, visualization, and verification, making the iteration cycle faster.
Common Bottlenecks in Traditional Workflows
Through daily work on optimization projects and conversations with many experienced practitioners, we've noticed that optimization projects often stall not due to capability issues, but because "work is fragmented." Mathematical model design, implementation, execution, and visualization are handled by different tools or team members, and even small specification changes require multiple handoffs. Typical bottlenecks include:
| Step | Why It Gets Stuck |
|---|---|
| Overall | Rework occurs, increasing back-and-forth |
| Formulation | Requires expertise, involves much trial and error |
| Execution | Solver configuration and "how far to solve" decisions are difficult |
| Result Interpretation | Building visualization and analysis takes effort |
Goals and Overview of JijZept AI
JijZept AI connects natural language requirements to modeling with JijModeling, execution with JijZept Solver, and visualization—all within a single conversation. In practice, it's more important to quickly create a draft model, validate it, and incorporate learnings into the next iteration than to create a perfect model from the start. JijZept AI aims to compress these iterations into shorter loops.

What JijZept AI Can Do
When you input an optimization problem in natural language, JijZept AI first formulates it and generates JijModeling code. During generation, the syntax and executability are automatically checked. Then, the generated model is passed to JijZept Solver for optimization computation, and the solution is presented to users as tables and graphs. Since optimization runs in the cloud, you can start the validation loop without setting up a local solver environment. The ability to "create a model," "run it," and "review and refine results" within a single chat reduces workflow fragmentation.
We also anticipate knowledge search for similar problems, as reusing similar models is common in practice. This is an area for future refinement, but we consistently prioritize faster iteration and reusability.
Why AI Is a Good Fit
The reason JijZept AI works as a service is not simply because LLMs are smart, but because the underlying infrastructure (JijModeling / JijZept Solver) built by Jij is designed to be "AI-friendly."
JijModeling: Separating Formulas from Data
Many modeling tools mix concrete values within mathematical formulas. While intuitive for humans, this makes it ambiguous for AI to distinguish "what is structure and what is data."
JijModeling separates formulas (problem) from data (instance_data). This allows AI to focus on generating the mathematical structure first, then inject data later. As a result, it becomes easier to create reusable models and facilitate verification. Additionally, since JijModeling is a Python-based "programming language" (Embedded Domain Specific Language) for describing mathematical models, AI can generate code with the same task intensity as generating Python code, and it's easier to verify the validity of AI-generated code.
JijZept Solver: Lowering the "Configuration Barrier" to Execution
Traditional solver operations often require problem-specific parameter settings and trade-off decisions between computation time and solution quality. JijZept Solver aims to provide an experience where optimization can be executed without fine-tuning. From the AI's perspective, running optimization computation becomes a simple "pass the model and get results" tool call, keeping the AI's context simpler.
To clarify, in real optimization scenarios, requirements like "how much time for what quality of solution" vary by project. JijZept AI doesn't eliminate this judgment—rather, it accelerates initial validation so you can move forward quickly and then dive into configuration and improvement discussions as needed.
Demo: Truck Loading Optimization for a Logistics Company
Now let's walk through solving a practical problem using JijZept AI. We'll use the loading plan for "Sakura Transport," a logistics company. The key point is that this isn't a simple knapsack problem—cargo combinations generate additional profit (or cost).
Actual JijZept AI Session

Problem Setting
Load 5 types of cargo (A-E) onto a truck with a maximum capacity of 2,000 kg. Each cargo has a weight and base profit, and combinations generate synergy profits (or costs).
| Cargo | Weight (kg) | Base Profit (10K JPY) |
|---|---|---|
| A | 400 | 120 |
| B | 600 | 180 |
| C | 300 | 90 |
| D | 500 | 150 |
| E | 700 | 210 |
Synergy profits are given in the following matrix, where negative values represent costs when cargo is transported together (e.g., requiring separate storage space).
| A | B | C | D | E | |
|---|---|---|---|---|---|
| A | 0 | 25 | 15 | 0 | -10 |
| B | 25 | 0 | 30 | 20 | 0 |
| C | 15 | 30 | 0 | 10 | 5 |
| D | 0 | 20 | 10 | 0 | 15 |
| E | -10 | 0 | 5 | 15 | 0 |
Step 1: User Inputs Requirements and Data in Natural Language
Enter the tables and assumptions directly in natural language in the chat. JijZept AI reads "what to maximize," "what constraints exist," and "what additional effects occur," then executes the formulation.
Actual Input Prompt
Sakura Transport wants to optimize the loading plan for a truck with a maximum capacity of 2000 kg, loading 5 types of cargo (A, B, C, D, E).
Each cargo has a base profit and weight, but transporting certain cargo combinations together generates additional synergy profits (e.g., fresh food with refrigeration equipment).
Cargo Data:
| Cargo | Weight (kg) | Base Profit (10K JPY) |
|------|----------|----------------|
| A | 400 | 120 |
| B | 600 | 180 |
| C | 300 | 90 |
| D | 500 | 150 |
| E | 700 | 210 |
Synergy Profit Matrix (10K JPY):
| | A | B | C | D | E |
|---|----|----|----|----|-----|
| A | 0 | 25 | 15 | 0 | -10 |
| B | 25 | 0 | 30 | 20 | 0 |
| C | 15 | 30 | 0 | 10 | 5 |
| D | 0 | 20 | 10 | 0 | 15 |
| E | -10| 0 | 5 | 15 | 0 |
Negative values indicate incompatibility costs (e.g., cargo A and E require separate storage spaces).
Find the loading plan that maximizes total profit (base profit + synergy profit).
Step 2: JijZept AI Generates a Mathematical Model
JijZept AI interpreted this as a Quadratic Knapsack Problem, formulating it with a quadratic term (synergy) in the objective function. The objective function is "sum of base profits" + "sum of synergies for selected cargo pairs," the constraint is capacity (total weight ≤ 2,000 kg), and decision variables are 0/1 binary for whether each cargo is loaded.
JijModeling Code Generated by JijZept AI:
import jijmodeling as jm
problem = jm.Problem("Quadratic Knapsack Problem", sense=jm.ProblemSense.MAXIMIZE)
# Placeholders
n = jm.Placeholder("n") # Number of cargo
W = jm.Placeholder("W") # Maximum capacity
p = jm.Placeholder("p", ndim=1) # Base profit
w = jm.Placeholder("w", ndim=1) # Weight
s = jm.Placeholder("s", ndim=2) # Synergy matrix
# Decision variables
x = jm.BinaryVar("x", shape=(n,))
# Indices
i = jm.Element("i", belong_to=(0, n))
j = jm.Element("j", belong_to=(0, n))
# Objective function: base profit + synergy profit
problem += jm.sum(i, p[i] * x[i]) + jm.sum([i, (j, j > i)], s[i, j] * x[i] * x[j])
# Constraint: within capacity
problem += jm.Constraint("capacity", jm.sum(i, w[i] * x[i]) <= W)

Step 3: JijZept AI Solves for the Optimal Solution
After creating the mathematical model, JijZept AI passed it to the solver for optimization. JijZept Solver computed and returned the solution. In this example, A, B, C, and E were selected, while D was not.
| Cargo | Weight (kg) | Base Profit (10K JPY) | Selected |
|---|---|---|---|
| A | 400 | 120 | ✓ |
| B | 600 | 180 | ✓ |
| C | 300 | 90 | ✓ |
| D | 500 | 150 | - |
| E | 700 | 210 | ✓ |
Numerically, the weight is 400+600+300+700=2,000 kg, exactly using the capacity limit, and base profit is 120+180+90+210=600 (10K JPY). Synergies are (A,B)=+25, (A,C)=+15, (A,E)=-10, (B,C)=+30, (C,E)=+5, totaling +65 (10K JPY), for a total profit of 665 (10K JPY). While D has a decent standalone profit of 150 (10K JPY), including D would require reducing other cargo, and considering synergy pairs, A, B, C, E yields higher profit.
This result matches the optimal value published in the LogiOR dataset (ground_truth = 665). This means JijZept AI correctly understood and solved this optimization problem with a zero-shot prompt.

Step 4: JijZept AI Visualizes and Validates Results
Finally, when asked to "visualize the results," JijZept AI displayed the optimal solution as a graph. Selected cargo is highlighted, and the capacity limit line is visible, reducing additional work needed to interpret results.

As this example shows, even for combinatorial optimization with synergies (profits/costs), you can move from requirements explanation to model generation, execution, and visualization within a single conversation.
Accelerating Validation with Human-in-the-Loop
The demo above showed how requirements input, model generation, solver execution, and visualization can proceed seamlessly. In practice, this flow runs as a human-in-the-loop process, iterating through generation→execution→visualization→refinement in short cycles to identify ambiguities and interpretation gaps early. JijZept AI's role isn't just "creating plausible drafts"—it shortens the round-trip to connect validation steps and nurture models that can support real decision-making.
Validation considerations can be organized into four areas. First, for the objective function, verify whether the "optimization direction" is properly defined—what KPIs to represent, how to set penalties and priorities. Second, for constraints, consider how much to express operational rules and exceptions, and how to distinguish hard constraints (must satisfy) from soft constraints (can relax situationally)—this significantly affects quality. Third, for input data, align granularity, units, and missing value handling, and document implicit assumptions. Finally, for results, beyond visualization, ensure you can explain "why this solution" through simple case consistency checks and sensitivity analysis.
The faster this validation loop, the fewer reworks downstream, and the closer you get to a plan that stakeholders can confidently adopt. JijZept AI powerfully supports this validation loop.
Future Outlook
JijZept AI is still under active development. We're exploring making it available as an MCP (Model Context Protocol) server for external AI services, and VSCode extensions for modeling assistance. While the roadmap may change, we plan to continue evolving the product to accelerate optimization computation workflows.