title: Algorithme de Lloyd-Max
text: # Algorithme de Lloyd-Max
  
  En algorithmique et en traitement du signal, l’algorithme de Lloyd-Max est un algorithme qui permet de construire le quantifieur scalaire optimal. C'est donc une méthode pour quantifier un signal en une dimension de manière à minimiser la distorsion, mesurée par l'erreur quadratique moyenne.
  
  L'optimalité du quantifieur est assurée par deux conditions sur les niveaux de reconstruction et de décision, découvertes par Lloyd en 1957. Il fournit aussi un algorithme, qui permet de construire itérativement le quantifieur optimal. L'algorithme peut être étendu à la quantification de vecteurs (algorithme de Linde-Buzo-Gray).
  
  ## Historique
  
  L'algorithme fut développé par Lloyd en 1957, mais n'a pas été publié en revue scientifique. Il fut présenté à l'Institut de Statistiques Mathématiques et la seule version imprimée est un mémorandum technique des laboratoires Bell. L'algorithme resta donc peu connu pendant plusieurs années. Les résultats exposés dans le mémorandum furent redécouverts indépendamment par plusieurs chercheurs. Cependant toutes ces redécouvertes utilisèrent des dérivations différentes de celle utilisée par Lloyd, indispensable pour l'extension du théorème à la quantification de vecteurs et pour plusieurs procédures d'optimisation de quantificateurs.
  
  L'algorithme fut notamment redécouvert par Joel Max en 1960.
  
  ## Algorithme
  
  L'algorithme est initialisé par k points de l'espace d'entrée. Il itère ensuite la procédure suivante:
  
  * calculer le diagramme de Voronoï des k points
  * intégrer chaque cellule de Voronoï de manière à en déterminer le centroïde
  * chacun des k points est alors déplacé sur les centroïdes
  
  L'algorithme diffère de l'algorithme des k-moyennes au sens où ce dernier agit sur des données discrètes (par exemple un ensemble de points d'un espace vectoriel) alors que l'algorithme de Lloyd-Max peut être appliqué à des données continues (par exemple une densité).
  
  ## Conditions d'optimalités
  
  Un quantifieur scalaire peut se définir comme un ensemble d'intervalles de l'espace de départ, $[t_{k};t_{k+1}]$, où les $t_{i}$ sont appelés niveaux de décision. On suppose que le quantifieur possède $N+1$ niveaux de reconstructions $r_{k}$, et $N+1$ niveaux de décision $t_{k}$.
  
  Pour une source $x$ de densité de probabilité $p_{X}(x)$, les conditions d'optimalités sur les niveaux de reconstructions $r_{k}$ et de décision $t_{k}$ sont obtenues en minimisant l'erreur de reconstruction (appelée aussi distorsion) :
  
      $D=E\left[|x-{\hat {x}}|^{2}\right]$
  
  Les conditions d'optimalités sont alors données par :
  
  * $t_{k}={\frac {r_{k-1}+r_{k}}{2}}$ (1)
  * $r_{k}={\frac {\int _{t_{k}}^{t_{k+1}}xp_{X}(x)}{\int _{t_{k}}^{t_{k+1}}p_{X}(x)}}$ (2)
  
  ### Cas particulier
  
  Dans le cas d'une source uniforme : $p_{X}(x)={\frac {1}{t_{N}-t_{0}}}$, les conditions d'optimalités se simplifient :
  
      $r_{k}={\frac {t_{k+1}+t_{k}}{2}}$
  
  ce qui donne, en injectant dans (1) :
  
      $t_{k}-t_{k-1}=t_{k+1}-t_{k}=q=cste$
  
  Le pas de quantification $q$ est constant, et égale à $q={\frac {t_{N}-t_{0}}{N}}$. Les niveaux de reconstruction et de décisions sont alors régis par les règles simples :
  
  * $t_{k}=t_{k-1}+q$
  * $r_{k}=t_{k}+{\frac {q}{2}}$
  
  On retrouve le quantifieur scalaire uniforme, qui est donc optimal pour une source de distribution uniforme.
  
  