Skip to main content
IBM Quantum Platform

DoWhileController

class qiskit.passmanager.DoWhileController(tasks=(), do_while=None, *, options=None)

GitHub

Bases: BaseController

Execute as tarefas fornecidas em um loop até que a condição do_while no conjunto de propriedades se torne False.

As tarefas fornecidas sempre serão executadas pelo menos uma vez e, na iteração do loop, todas as tarefas serão executadas (com exceção da definição de um estado de falha).

Crie um novo controlador de fluxo.

Parâmetros

  • options (dict[str, Any] | None) – Opção para esse controlador de fluxo.
  • tasks (Task | Iterable[Task])
  • do_while (Callable[[PropertySet], bool] | None)

Atributos

passes

Alias de tarefas para compatibilidade com versões anteriores.


Métodos

execute

execute(passmanager_ir, state, callback=None)

GitHub

Executar a tarefa de otimização para a entrada Qiskit IR.

Parâmetros

  • passmanager_ir (Any) – Qiskit IR para otimizar.
  • state (PassManagerState) – Estado associado à execução do fluxo de trabalho pelo próprio gerenciador de passes.
  • callback (Callable | None) – Uma função de retorno de chamada que é chamada a cada execução da tarefa de otimização.

Retorna

Qiskit IR otimizado e estado do fluxo de trabalho.

Tipo de retorno

tupla [ Any, PassManagerState ]

iter_tasks

iter_tasks(state)

GitHub

Uma lógica personalizada para escolher a próxima tarefa a ser executada.

A subclasse do controlador pode consumir o estado para criar um pipeline de tarefas adequado. O estado atualizado após a execução de uma tarefa será realimentado como o valor de "retorno" de qualquer instrução yield . Isso indica que a ordem de execução da tarefa só é determinada no tempo de execução. Esse método não tem permissão para alterar o objeto de estado fornecido.

Parâmetros

  • state (PassManagerState) – O estado do fluxo de trabalho do gerenciador de passagens no início da execução desse controlador de fluxo.
  • state (estado ) - o estado do gerenciador de passes após a execução da última tarefa que foi produzida. O gerador não precisa inspecionar isso se for irrelevante para sua lógica, nem atualizá-lo.

Lucros

Tarefa - Próxima tarefa a ser executada.

Tipo de retorno

Gerador* [Task*, PassManagerState, None]

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.