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
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)
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)
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
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)
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 DocumentationDetailed Documentation
View detailed usage and tutorials for each feature
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.