Skip to content

Digital Annealer

JijDA3Sampler

Bases: JijZeptBaseSampler

Sampler using third generation Digital Annealer.

__init__(token=None, url=None, proxy=None, config=None, config_env='default', da3_token=None, da3_url=None)

Sets Jijzept token and url and third generation Digital Annealer token and url.

If da3_token and 'da3_urlare not specified in the arguments, JijZept configuration file is used. Ifda3_tokenandda3_url` are specified in the arguments, that will be used as priority setting.

Parameters:

Name Type Description Default
token Optional[str]

Token string.

None
url Optional[Union[str, dict]]

API URL.

None
proxy Optional[str]

Proxy URL.

None
config Optional[str]

Config file path for JijZept.

None
config_env str

config env.

'default'
da3_token Optional[str]

Token string for Degital Annealer 3.

None
da3_url Optional[str]

API Url string for Degital Annealer 3.

None

Raises:

Type Description
ConfigError

if da3_token is not defined in the argument or config.toml.

sample_model(model, feed_dict, fixed_variables={}, inequalities_lambda={}, parameters=None, normalize_qubo=False, max_wait_time=None, sync=True, queue_name=None, **kwargs)

Sample using JijModeling by means of third generation Digital Annealer.

To configure the solver, instantiate the JijDA3SolverParameters class and pass the instance to the parameters argument.

Parameters:

Name Type Description Default
model Problem

Mathematical expression of JijModeling.

required
feed_dict dict[str, Union[Number, list, np.ndarray]]

The actual values to be assigned to the placeholders.

required
fixed_variables dict[str, dict[tuple[int, ...], Number]]

Dictionary of variables to fix.

{}
inequalities_lambda dict[str, int]

Coefficient of inequality. If omitted, set to 1. The coefficients of the equality constraints can be set from JijDA3SolverParameters.

{}
parameters Optional[JijDA3SolverParameters]

Parameters used in Ditital Annealer 3. If None, the default value of the JijDA3SolverParameters will be set.

None
normalize_qubo bool

Option to normalize the QUBO coefficient. Defaults to False.

False
max_wait_time int | float | None

The number of timeout [sec] for post request. If None, 60 (one minute) will be set. Please note that this argument is for the jijzept timeout and not for configuring solver settings, such as solving time.

None
sync bool

Synchronous mode.

True
queue_name Optional[str]

Queue name.

None
**kwargs

Digital Annealer 3 parameters using **kwargs. If both **kwargs and parameters are exist, the value of **kwargs takes precedence.

{}

Returns:

Name Type Description
JijModelingResponse JijModelingResponse

Stores minimum energy samples and other information.

Examples:

import jijmodeling as jm
from jijzept import JijDA3Sampler, JijDA3SolverParameters

w = jm.Placeholder("w", dim=1)
num_items = jm.Placeholder("num_items")
c = jm.Placeholder("c")
y = jm.Binary("y", shape=(num_items,))
x = jm.Binary("x", shape=(num_items, num_items))
i = jm.Element("i", num_items)
j = jm.Element("j", num_items)
problem = jm.Problem("bin_packing")
problem += y[:]
problem += jm.Constraint("onehot_constraint", jm.Sum(j, x[i, j]) - 1 == 0, forall=i)
problem += jm.Constraint(
    "knapsack_constraint", jm.Sum(i, w[i] * x[i, j]) - y[j] * c <= 0, forall=j
)

feed_dict = {"num_items": 2, "w": [9, 1], "c": 10}
inequalities_lambda = {"knapsack_constraint": 22}

sampler = JijDA3Sampler(config="xx", da3_token="oo")
parameters = JijDA3SolverParameters(penalty_coef=2)

sampleset = sampler.sample_model(
    problem, feed_dict, inequalities_lambda=inequalities_lambda, parameters=parameters
)

JijDA3SolverParameters dataclass

Manage Parameters for using third generation Digital Annealer.

Attributes:

Name Type Description
time_limit_sec int

Set the timeout in seconds in the range 1 ~ 1800.

target_energy Optional[float]

Set the target energy value. The calculation is terminated when the minimum energy savings reaches the target energy.

num_run int

Set the number of parallel trial iterations in the range 1 ~ 16.

num_group int

Set the number of groups of parallel trials in the range 1 ~ 16.

num_output_solution int

Set the number of output solutions for each parallel trial group in the range 1 ~ 1024.

gs_level int

Set the level of global search. The higher this value, the longer the constraint utilization search will search in the range 0 ~ 100. If set the 1way 1hot or 2way 1hot, it is recommended that 0 be set for gs_level.

gs_cutoff int

Set the convergence decision level in the constraint utilization search of the solver in the range 0 ~ 1000000. If 0, convergence judgement is off.

penalty_auto_mode int

Set the coefficient adjustment mode for the constaint term. If 0, fixed to the value setin penlaty_coef. If 1, the value set in penalty_coef is used as the initial value and adjusted automatically.

penalty_coef int

Set the coefficients of the constraint term.

penalty_inc_rate int

Set parameters for automatic adjustment of constriant term.

max_penalty_coef int

Set the maximum value of the constraint term coefficient in the global search. If no maximum value is specified, set to 0.

JijDA4Sampler

Bases: JijZeptBaseSampler

Sampler using Digital Annealer v4.

__init__(token=None, url=None, proxy=None, config=None, config_env='default', da4_token=None, da4_url=None)

Sets Jijzept token and url and fourth generation Digital Annealer token and url.

If da4_token and 'da4_urlare not specified in the arguments, JijZept configuration file is used. Ifda4_tokenandda4_url` are specified in the arguments, that will be used as priority setting.

Parameters:

Name Type Description Default
token Optional[str]

Token string.

None
url Optional[Union[str, dict]]

API URL.

None
proxy Optional[str]

Proxy URL.

None
config Optional[str]

Config file path for JijZept.

None
config_env str

config env.

'default'
da4_token Optional[str]

Token string for Degital Annealer 4.

None
da4_url Optional[str]

API Url string for Degital Annealer 4.

None

Raises:

Type Description
ConfigError

if da4_token is not defined in the argument or config.toml.

sample_model(model, feed_dict, fixed_variables={}, inequalities_lambda={}, parameters=None, normalize_qubo=False, max_wait_time=None, sync=True, queue_name=None, **kwargs)

Sample using JijModeling by means of fourth generation Digital Annealer.

Note that this sampler solve problems with using Azure Blob Storage, which is a feature of Digital Annealer v4, and there is no option not to use Azure Blob Storage.

To configure the solver, instantiate the JijDA4SolverParameters class and pass the instance to the parameters argument.

Parameters:

Name Type Description Default
model Problem

Mathematical expression of JijModeling.

required
feed_dict dict[str, Union[Number, list, np.ndarray]]

The actual values to be assigned to the placeholders.

required
fixed_variables dict[str, dict[tuple[int, ...], Number]]

Dictionary of variables to fix.

{}
inequalities_lambda dict[str, int]

Coefficient of inequality. If omitted, set to 1. The coefficients of the equality constraints can be set from JijDA4SolverParameters.

{}
parameters Optional[JijDA4SolverParameters]

Parameters used in Ditital Annealer 4. If None, the default value of the JijDA4SolverParameters will be set.

None
normalize_qubo bool

Option to normalize the QUBO coefficient and inequality constraint conditions. Defaults to False.

False
max_wait_time int | float | None

The number of timeout [sec] for post request. If None, 60 (one minute) will be set. Please note that this argument is for the jijzept timeout and not for configuring solver settings, such as solving time.

None
sync bool

Synchronous mode.

True
queue_name Optional[str]

Queue name.

None
**kwargs

Digital Annealer 4 parameters using **kwargs. If both **kwargs and parameters are exist, the value of **kwargs takes precedence.

{}

Returns:

Name Type Description
JijModelingResponse JijModelingResponse

Stores minimum energy samples and other information.

Examples:

import jijmodeling as jm
from jijzept import JijDA4Sampler, JijDA4SolverParameters

w = jm.Placeholder("w", dim=1)
num_items = jm.Placeholder("num_items")
c = jm.Placeholder("c")
y = jm.Binary("y", shape=(num_items,))
x = jm.Binary("x", shape=(num_items, num_items))
i = jm.Element("i", num_items)
j = jm.Element("j", num_items)
problem = jm.Problem("bin_packing")
problem += y[:]
problem += jm.Constraint("onehot_constraint", jm.Sum(j, x[i, j]) - 1 == 0, forall=i)
problem += jm.Constraint(
    "knapsack_constraint", jm.Sum(i, w[i] * x[i, j]) - y[j] * c <= 0, forall=j
)

feed_dict = {"num_items": 2, "w": [9, 1], "c": 10}
inequalities_lambda = {"knapsack_constraint": 22}

sampler = JijDA4Sampler(config="xx", da4_token="oo")
parameters = JijDA4SolverParameters(penalty_coef=2)

sampleset = sampler.sample_model(
    problem, feed_dict, inequalities_lambda=inequalities_lambda, parameters=parameters
)

JijDA4SolverParameters dataclass

Manage Parameters for using fourth generation Digital Annealer.

Attributes:

Name Type Description
time_limit_sec int

Set the timeout in seconds in the range 1 ~ 1800.

target_energy Optional[float]

Set the target energy value. The calculation is terminated when the minimum energy savings reaches the target energy.

num_run int

Set the number of parallel trial iterations in the range 1 ~ 16.

num_group int

Set the number of groups of parallel trials in the range 1 ~ 16.

num_output_solution int

Set the number of output solutions for each parallel trial group in the range 1 ~ 1024.

gs_level int

Set the level of global search. The higher this value, the longer the constraint utilization search will search in the range 0 ~ 100. If set the 1way 1hot or 2way 1hot, it is recommended that 0 be set for gs_level.

gs_cutoff int

Set the convergence decision level in the constraint utilization search of the solver in the range 0 ~ 1000000. If 0, convergence judgement is off.

one_hot_level int

Levels of 1hot constraints search.

one_hot_cutoff int

Convergence decision level for 1hot constraints search. If 0 is set, this function is turned off.

internal_penalty int

1hot constraint internal generation mode. Note that if 1way- or 2way 1hot constraints are specified to jijmodeling.Constraint, internal_penalty is set to 1 internally, regardless of user input.

penalty_auto_mode int

Set the coefficient adjustment mode for the constaint term. If 0, fixed to the value setin penlaty_coef. If 1, the value set in penalty_coef is used as the initial value and adjusted automatically.

penalty_coef int

Set the coefficients of the constraint term.

penalty_inc_rate int

Set parameters for automatic adjustment of constriant term.

max_penalty_coef int

Set the maximum value of the constraint term coefficient in the global search. If no maximum value is specified, set to 0.


Last update: 2023年5月24日