Jij CPU SQA Sampler¶
JijSQASampler
¶
Bases: JijZeptBaseSampler
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. | 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 |
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])
sampler = jz.JijSASampler(config='config.toml')
response = sampler.sample_model(problem, feed_dict={'n': 5, 'd': [1,2,3,4,5]})
sample_qubo(qubo, constant=0, parameters=None, timeout=None, sync=True, queue_name=None, **kwargs)
¶
Sample using BinaryQuadraticModel by means of the simulated annealing.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
bqm | Union[cimod.BinaryQuadraticModel, openjij.BinaryQuadraticModel] | Binary quadratic model. | required |
parameters | JijSQAParameters | None | (JijSAParameters | None, optional): 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:
For cimod.BinaryQuadraticModel
case:
import jijzept as jz
import cimod
bqm = cimod.BinaryQuadraticModel({0: -1, 1: -1}, {(0, 1): -1, (1, 2): -1}, "SPIN")
sampler = jz.JijSASampler(config='config.toml')
response = sampler.sample(bqm)
sample_ising
and sample_qubo
methods. For Ising case:
import jijzept as jz
h = {0: -1, 1: -1, 2: 1, 3: 1}
J = {(0, 1): -1, (3, 4): -1}
sampler = jz.JijSASampler(config='config.toml')
response = sampler.sample_ising(h, J)
For QUBO case:
import jijzept as jz
Q = {(0, 0): -1, (1, 1): -1, (2, 2): 1, (0, 1): -1, (1, 2): 1}
sampler = jz.JijSASampler(config='config.toml')
response = sampler.sample_qubo(Q)