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)
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)
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})