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)

Construire un modèle Pyomo permettant de classer les modes fermioniques de manière à minimiser les intervalles d'excitation.

Le modèle construit une permutation dans laquelle chaque index de mode d'origine est affecté à une seule et unique position dans un ordre linéaire. Pour chaque tuple d'excitation à 2 modes et à 4 modes, l'étendue des positions occupées est minimisée en fonction de l'objectif choisi.

Remarque

La liste excitations est prétraitée comme suit :

  • les indices qui apparaissent deux fois dans le même tuple sont supprimés
  • les tuples obtenus, de longueur 0 ou 1, sont ignorés; par conséquent, aucune contrainte de distance n'est imposée dans le modèle de minimisation obtenu
  • Par conséquent, seules des tuples post-traitées d'une longueur de 2 ou 4 sont attendues
Voir aussi

Pour une analyse et une explication plus détaillées du raisonnement qui sous-tend ce prétraitement, veuillez vous reporter à la section III.B de cet article.

Paramètres

  • excitations (Sequence[tuple[int, int] | tuple[int, int, int, int]]) – une suite de tuples d'indices d'excitation sur les indices des modes fermioniques.

  • num_modes (int) – le nombre total de modes fermioniques à classer.

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

    le mode objectif sélectionné. Il peut s'agir de l'un des littéraux suivants :

    • minmax: réduit au minimum l'amplitude maximale d'excitation.
    • avg: réduit au minimum la durée moyenne d'excitation.
    • multi: minimise max_span + mix_delta * average_span.
  • mix_delta (float) – le poids de mélange utilisé dans le cas de objective="multi".

Retours

Un modèle d'optimisation Pyomo intégrant les variables de permutation, les variables de span, les contraintes et l'objectif. Résolvez ce modèle à l'aide d'un solveur Pyomo afin d'obtenir un ordre optimisé.

Augmentations

  • ValueError – si un tuple d'excitation post-traité a une longueur différente de 2 ou 4.
  • ValueError – si objective l'on choisit une inconnue.

Type de retour

pyomo.core.base.PyomoModel.ConcreteModel

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.