示例#1
0
def _(problem: Problem, simulator: BraketSimulator, shots, *args, **kwargs):
    if DeviceActionType.ANNEALING not in simulator.properties.action:
        raise NotImplementedError(
            f"{type(simulator)} does not support quantum annealing problems")
    ir = problem.to_ir()
    results = simulator.run(ir, shots, *args, *kwargs)
    return AnnealingQuantumTaskResult.from_object(results)
示例#2
0
def test_creation():
    problem = Problem(ProblemType.ISING,
                      linear={1: 3.14},
                      quadratic={(1, 2): 10.08})
    assert problem.problem_type == ProblemType.ISING
    assert problem.linear == {1: 3.14}
    assert problem.quadratic == {(1, 2): 10.08}
示例#3
0
def _(
    problem: Problem,
    aws_session: AwsSession,
    create_task_kwargs: Dict[str, Any],
    device_parameters: Union[dict, DwaveDeviceParameters],
    device_arn: str,
    *args,
    **kwargs,
) -> AwsQuantumTask:
    create_task_kwargs.update({
        "action":
        problem.to_ir().json(),
        "deviceParameters":
        DwaveDeviceParameters.parse_obj(device_parameters).json(),
    })

    task_arn = aws_session.create_quantum_task(**create_task_kwargs)
    return AwsQuantumTask(task_arn, aws_session, *args, **kwargs)
def _(
    problem: Problem,
    aws_session: AwsSession,
    create_task_kwargs: Dict[str, Any],
    device_arn: str,
    device_parameters: Union[dict, DwaveDeviceParameters,
                             DwaveAdvantageDeviceParameters,
                             Dwave2000QDeviceParameters, ],
    _,
    *args,
    **kwargs,
) -> AwsQuantumTask:
    device_params = _create_annealing_device_params(device_parameters,
                                                    device_arn)
    create_task_kwargs.update({
        "action":
        problem.to_ir().json(),
        "deviceParameters":
        device_params.json(exclude_none=True),
    })

    task_arn = aws_session.create_quantum_task(**create_task_kwargs)
    return AwsQuantumTask(task_arn, aws_session, *args, **kwargs)
示例#5
0
def problem():
    return Problem(ProblemType.ISING,
                   linear={1: 3.14},
                   quadratic={(1, 2): 10.08})
示例#6
0
def test__to_ir():
    problem = Problem(ProblemType.QUBO).add_linear_term(
        1, 3.14).add_quadratic_term((1, 2), 10.08)
    assert problem.to_ir() == ir.Problem(type=ir.ProblemType.QUBO,
                                         linear={1: 3.14},
                                         quadratic={"1,2": 10.08})
示例#7
0
def test_add_quadratic_terms():
    problem = Problem(ProblemType.QUBO)
    problem.add_quadratic_terms({(1, 2): 10.08})
    assert problem.quadratic == {(1, 2): 10.08}
示例#8
0
def test_add_linear_terms():
    problem = Problem(ProblemType.QUBO)
    problem.add_linear_terms({1: 3.14})
    assert problem.linear == {1: 3.14}