Skip to main content
IBM Quantum Platform

build_excitation_span_minimization_model

build_excitation_span_minimization_model(excitations, num_modes, *, objective='multi', mix_delta=0.1)

Crie um modelo Pyomo para ordenar os modos fermiónicos a fim de minimizar os intervalos de excitação.

O modelo constrói uma permutação na qual cada índice de modo original é atribuído a exatamente uma posição em uma ordenação linear. Para cada tupla de excitação de 2 modos e 4 modos, o intervalo das posições ocupadas é minimizado de acordo com o objetivo escolhido.

Nota

A lista excitations é pré-processada da seguinte forma:

  • índices que aparecem duas vezes na mesma tupla são cancelados
  • as tuplas resultantes com comprimento 0 ou 1 são ignoradas, não impondo, portanto, uma restrição de distância no modelo de minimização resultante
  • consequentemente, espera-se que apenas tuplas pós-processadas de comprimento 2 ou 4 sejam encontradas
Veja Também

Para uma discussão e explicação mais detalhadas sobre o raciocínio por trás desse pré-processamento, consulte a seção “ III.B ” deste artigo.

Parâmetros

  • excitations (Sequence[tuple[int, int] | tuple[int, int, int, int]]) – uma sequência de tuplas de índices de excitação sobre índices de modos fermiónicos.

  • num_modes (int) – o número total de modos fermiônicos a serem ordenados.

  • objective (Literal['minmax', 'multi', 'avg']) –

    o modo de objetivo selecionado. Isso pode ser um dos seguintes literais:

    • minmax: minimiza a amplitude máxima de excitação.
    • avg: minimiza o intervalo médio de excitação.
    • multi: minimiza max_span + mix_delta * average_span.
  • mix_delta (float) – o peso de mistura utilizado no caso de objective="multi".

Retorna

Um modelo de otimização Pyomo que codifica as variáveis de permutação, as variáveis de intervalo, as restrições e o objetivo. Resolva esse modelo com um solucionador do Pyomo para obter uma sequência otimizada.

Aumentos

  • ValueError – se uma tupla de excitação pós-processada tiver comprimento diferente de 2 ou 4.
  • ValueError – se objective for escolhida uma incógnita.

Tipo de retorno

pyomo.core.base.PyomoModel.ConcreteModel

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