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)

Crea un modelo de Pyomo para ordenar los modos fermiónicos con el fin de minimizar los intervalos de excitación.

El modelo construye una permutación en la que a cada índice de modo original se le asigna exactamente una posición en un orden lineal. Para cada tupla de excitación de 2 y 4 modos, se minimiza el intervalo de posiciones ocupadas de acuerdo con el objetivo elegido.

Nota

La lista excitations se procesa previamente de la siguiente manera:

  • Los índices que aparecen dos veces dentro de la misma tupla se anulan
  • Las tuplas resultantes de longitud 0 o 1 se ignoran, por lo que no se impone ninguna restricción de distancia en el modelo de minimización resultante
  • Por lo tanto, solo se esperan tuplas posprocesadas de longitud 2 o 4
Consulte también

Para obtener un análisis y una explicación más detallados de los fundamentos de este preprocesamiento, véase la sección « III.B » de este artículo.

Parámetros

  • excitations (Sequence[tuple[int, int] | tuple[int, int, int, int]]) – una secuencia de tuplas de índices de excitación sobre índices de modos fermiónicos.

  • num_modes (int) – el número total de modos fermiónicos que hay que ordenar.

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

    el modo objetivo seleccionado. Puede tratarse de uno de los siguientes literales:

    • minmax: minimiza el intervalo máximo de excitación.
    • avg: minimiza la amplitud media de excitación.
    • multi: minimiza max_span + mix_delta * average_span.
  • mix_delta (float) – el peso de mezcla utilizado en el caso de objective="multi".

Devuelve

Un modelo de optimización Pyomo que codifica las variables de permutación, las variables de intervalo, las restricciones y el objetivo. Resuelve este modelo con un solucionador de Pyomo para obtener un orden optimizado.

Subidas

  • ValueError – si una tupla de excitación posprocesada tiene una longitud distinta de 2 o 4.
  • ValueError – si objective se elige una incógnita.

Tipo de retorno

pyomo.core.base.PyomoModel.ConcreteModel

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.