DoWhileController
class qiskit.passmanager.DoWhileController(tasks=(), do_while=None, *, options=None)
베이스: BaseController[IR, IR]
속성 집합의 do_while 조건이 False 이 될 때까지 주어진 작업을 루프에서 실행합니다.
주어진 작업들은 항상 적어도 한 번은 실행되며, 루프가 반복될 때마다 모든 작업이 실행됩니다(오류 상태가 설정된 경우는 예외입니다). 이 컨트롤러는 입력 및 출력 적외선(IR)이 동일합니다.
새 플로우 컨트롤러를 만듭니다.
매개변수
- options (dict[str, Any] | None) – 이 플로우 컨트롤러의 옵션입니다.
- tasks (Task[IR, IR] | Iterable[Task[Any, Any]])
- do_while (Callable[[PropertySet], bool] | None)
속성
passes
이전 버전과의 호환성을 위한 작업의 별칭입니다.
메소드
execute
execute(passmanager_ir, state, callback=None)
입력된 키스킷 IR에 대한 최적화 작업을 실행합니다.
매개변수
- passmanager_ir (IR) – 최적화할 Qiskit IR.
- state (PassManagerState) – 패스 관리자 자체의 워크플로 실행과 관련된 상태입니다.
- callback (Callable | None) – 최적화 작업이 실행될 때마다 호출되는 콜백 함수입니다.
리턴
최적화된 키스킷 IR 및 워크플로 상태.
리턴 유형
튜플 [ IR_OUT, PassManagerState ]
iter_tasks
iter_tasks(state)
실행할 다음 작업을 선택하는 사용자 지정 로직입니다.
컨트롤러 서브클래스는 상태를 소비하여 적절한 작업 파이프라인을 구축할 수 있습니다. 작업 실행 후 업데이트된 상태는 yield 문의 '반환' 값으로 다시 피드백됩니다. 이는 작업 실행 순서가 런타임에만 결정된다는 것을 나타냅니다. 이 메서드는 지정된 상태 객체를 변경할 수 없습니다.
매개변수
- state (PassManagerState) – 이 흐름 컨트롤러가 실행되기 시작할 때의 패스매니저 워크플로우 상태입니다.
- 상태 - 마지막으로 산출된 작업을 실행한 후 패스 관리자의 상태입니다. 생성기는 로직과 관련이 없는 경우 이를 검사하거나 업데이트할 필요가 없습니다.
산출량
작업 - 실행할 다음 작업입니다.
리턴 유형
Generator [ Task [ Any, Any ], PassManagerState, None]