JijZept Tools Tools to Support Optimization Development Workflows

A SDK designed to quickly validate mathematical optimization workflows and streamline development processes including experiment management, visualization, and tuning.

pip install jijzepttools

Key Features

1

Blackbox Optimization

  • BOCS (Bayesian Optimization for Combinatorial Structures)
  • Optimization methods using Factorization Machine

import numpy as np
from jijzepttools.blackbox_optimization import BOCSWorkflow

# Prepare optimization target (X, y) data
X = np.random.binomial(1, 0.5, size=(100, 10))
y = np.sum(X, axis=1)

# Instantiate BOCSWorkflow
bocs = BOCSWorkflow(random_seed=42)

# Define blackbox function and solver
def blackbox_func(x):
    return np.sum(x)

def solver(instance):
    # instance is expected to contain QUBO and parameters
    # For simplicity, we return random spins here
    return np.random.binomial(1, 0.5, size=10)

# Run optimization with specified number of iterations
X_new, y_new = bocs.run(X, y, blackbox_func, solver, n_iter=5)
print("Final X:", X_new)
print("Final y:", y_new)
                
2

Workflow Management

Define intuitive node-based processing flows (DAG) and execute them consistently with state management using the WorkflowGraph feature


from jijzepttools.workflow.workflow import WorkflowGraph
import dataclasses

@dataclasses.dataclass
class MyState:
    counter: int = 0

def increment(x, state: MyState):
    state.counter += 1
    return x + 1

workflow = WorkflowGraph(MyState)

# Define Node 1 → Node 2 → END flow
workflow.add("process1", increment).add("process2", lambda x: x * 2)

# Execute with input value 5 and initial state
result = workflow.run(5, MyState())
print(result)  # => 12 (example)
                
3

Model Utilities

Provides useful tools for working with optimization models, such as functions to make binary and integer variables continuous, in cooperation with external libraries like JijModeling and ommx

4

Experiment Dashboard

Visualize and interactively analyze experiment results managed by minto


from jijzepttools.experimental.dashboard import dashboard
import minto

# Visualize experiment data managed by minto.Experiment
exp = minto.Experiment("my_experiment", auto_saving=False)
# After running some experiments and recording results...

# Interactively analyze dataframes using pygwalker
dashboard(exp)
                
5

Future Expansions

  • Addition of mathematical optimization algorithms such as column generation
  • Further enhancement of experiment management tools (Experiment Tracking, parameter management, visualization, etc.)
  • Strengthened integration with other optimization solvers and frameworks

Continuous feature expansions are planned to further streamline mathematical optimization development workflows.

View Detailed Documentation

Feel free to contact us

Expert staff with advanced optimization skills will answer your business concerns and questions.

Easy completion with just your email address and basic information.