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` |
|
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 |
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 | False |
num_search | int | The number of parameter search iteration. Defaults to set 15. This option works if | 15 |
algorithm | Optional[str] | Algorithm for parameter search. Defaults to None. | None |
beta_min | Optional[float] | Minimum (initial) inverse temperature. If | required |
beta_max | Optional[float] | Maximum (final) inverse temperature. If | required |
num_sweeps | Optional[int] | The number of Monte-Carlo steps. If | required |
num_reads | Optional[int] | The number of samples. If | required |
updater | Optional[str] | Updater algorithm must be "swap moving" for now. If | required |
timeout | Optional[int] | The number of timeout [sec] for post request. If | 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 |
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)])