Skip to content

Jij Swap Moving Sampler

NHOT_CONSTRAINTS = typ.List[typ.Tuple[typ.List[int], int]] module-attribute

N-hot constraint indices.

x0 + x1 + x2 = 3 x3 + x4 + x5 = 1 -> [([0, 1, 2], 3), ([3, 4, 5], 1)]

JijSwapMovingSampler

Bases: JijZeptBaseSampler

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

Sets token and url.

Parameters:

Name Type Description Default
token str

Token string. Defaults to None.

None
url Union[str, dict]

API URL. Defaults to None.

None
proxy str

Proxy URL. Defaults to None.

None
config str

Config file path. Defaults to None.

None

Raises:

Type Description
:obj:`TypeError`

token, url, or config is not str.

sample_hubo(J, parameters=None, timeout=None, sync=True, queue_name=None, **kwargs)

The simulated annealing is performed for higher ordered unconstraind.

binary optimizations (hubo) with the linear constraint conditions. Note here that the linear constraint conditions are strictly satisfied.

Parameters:

Name Type Description Default
J Dict

Polynomial interactions.

required
parameters JijSwapMovingParameters | None

defaults None.

None
timeout Optional[int]

The number of timeout [sec] for post request. If None, 3600 (one hour) will be set.

None
sync bool

Synchronous mode.

True
queue_name str

queue_name.

None

Returns:

Type Description
JijModelingResponse

dimod.SampleSet: Stores minimum energy samples and other information.

Examples:

import jijzept as jz
sampler = jz.JijSwapMovingSampler(config='config.toml')
response = sampler.sample_hubo(J={(0,1,2,3,4): -1}, vartype="SPIN",
                               constraints=[([0,1], 0), ([2,3,4], 1)])

sample_model(problem, feed_dict, multipliers={}, fixed_variables={}, search=False, num_search=15, algorithm=None, parameters=None, timeout=None, sync=True, queue_name=None, **kwargs)

Sample using JijModeling by means of the simulated annealing.

Parameters:

Name Type Description Default
model Expression

Mathematical expression of JijModeling. The decision variable type should be Binary.

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

The actual values to be assigned to the placeholders.

required
multipliers Dict[str, Number]

The actual multipliers for penalty terms, derived from constraint conditions.

{}
fixed_variables Dict[str, Dict[Tuple[int, ...], Union[int, float]]]

dictionary of variables to fix.

{}
search bool

If True, the parameter search will be carried out, which tries to find better values of multipliers for penalty terms.

False
num_search int

The number of parameter search iteration. Defaults to set 15. This option works if search is True.

15
algorithm Optional[str]

Algorithm for parameter search. Defaults to None.

None
beta_min Optional[float]

Minimum (initial) inverse temperature. If None, this will be set automatically.

required
beta_max Optional[float]

Maximum (final) inverse temperature. If None, this will be set automatically.

required
num_sweeps Optional[int]

The number of Monte-Carlo steps. If None, 1000 will be set.

required
num_reads Optional[int]

The number of samples. If None, 1 will be set.

required
updater Optional[str]

Updater algorithm must be "swap moving" for now. If None, "swap moving" will be set.

required
timeout Optional[int]

The number of timeout [sec] for post request. If None, 3600 (one hour) will be set.

None
sync bool

Synchronous mode.

True
queue_name str

queue_name.

None

Returns:

Name Type Description
JijModelingResponse JijModelingResponse

Stores minimum energy samples and other information.

Examples:

import jijzept as jz
import jijmodeling as jm
n = jm.Placeholder('n')
x = jm.Binary('x', shape=n)
d = jm.Placeholder('d', shape=n)
i = jm.Element("i", n)
problem = jm.Problem('problem')
problem += jm.Sum(i, d[i] * x[i])
problem += jm.Constraint("one-hot", jm.Sum(i, x[i]) == 1)
sampler = jz.JijSwapMovingSampler(config='config.toml')
response = sampler.sample_model(problem, feed_dict={'n': 5, 'd': [1,2,3,4,5]})

sample_qubo(Q, parameters=None, timeout=None, sync=True, queue_name=None, **kwargs)

The simulated annealing is performed for binary quadratic models with.

the linear constraint conditions. Note here that the linear constraint conditions are strictly satisfied.

Parameters:

Name Type Description Default
Q Dict

The linear or quadratic terms.

required
timeout Optional[int]

The number of timeout [sec] for post request. If None, 3600 (one hour) will be set.

None
sync bool

Synchronous mode.

True
queue_name str

queue_name.

None

Returns:

Type Description
JijModelingResponse

dimod.SampleSet: Stores minimum energy samples and other information.

Examples:

import jijzept as jz
sampler = jz.JijSwapMovingSampler(config='config.toml')
response = sampler.sample_qubo(Q={(0,0): -0.5, (0,1): -1, (0,2): -1, (2,3): -1},
                               constraints=[([0,1], 1), ([2,3], 1)])

Last update: 2022年12月21日