Les arbres AVL sont les arbres auto équilibrés les plus simples. C'est sans doute la partie qui a été la plus difficile à implémenter dans cet allocateur. Pour le reste, ce sont des principes plus simples, mais c'est vrai qu'ils ont été cumulés ici. C'était une parenthèse dans un projet qui n'avait rien à voir. Je l'ai un peu améliorée cet été et si ça rend service à d'autres comme toi, c'est parfait
L'heuristique fait de l'inférence bayésienne très basique (théorème de Bayes, au programme de terminale S je crois).
La "moyenne glissante gaussienne", dans le principe, c'est un calcul de moyenne banal : on pondère les valeurs x(t) par une gaussienne g(t) et on additionne le tout (à un facteur près, puisque la somme des coeffs doit valoir 1 dans une moyenne). On fait donc un produit de convolution discret (somme de
x(
t) x
g(T-
t) pour tout
t pris entre 0 et T).
A chaque instant T, pour éviter d'avoir à multiplier
x(
t) par g(
t-T) pour tous les instants
t précédents (ce serait hyper lent), il y a quelqu'un de génial qui a un jour découvert qu'on pouvait exprimer pas mal de produits de convolution discrets par une suite récurrente. L'outil qui permet de trouver la suite associée est la
transformée en Z. C'est comme les transformées de Laplace et de Fourier, mais sur les entiers naturels.
Manque de bol, une gaussienne n'admet pas de transformée en Z. On doit se contenter d'approximations. Deriche a été le premier à en proposer une, dont je me suis inspiré : on démontre facilement que (1+
alpha.t)^
n x exp(-
n.alpha.t) équivaut à exp(-
t²) lorsque
n -> +oo avec
alpha = sqrt(2/
n). En pratique, on limite
n, puisque le nombre de termes dans la suite récurrente est directement lié (il faut que le calcul de la moyenne reste rapide...). On doit donc abandonner l'idée d'un alpha unique. On développe (1+
alpha.t)^
n x exp(-
n.alpha.t) en un
polynôme x exp(-
n.a.t). On a alors
n+1 coefficients à deviner. Pour ça, on peut faire une descente de gradient (on minimise l'écart entre une vraie gaussienne et cette fonction approchée en se promenant sur une hypersurface de dimension
n, ça en jette comme ça mais c'est le même algo que pour minimiser une fonction classique à 1 variable, on remplace la dérivée par un gradient et la variable par un vecteur).
Il a proposé quelque chose de beaucoup plus précis en 1993, une somme de cosinus et de sinus pondérés par 2 exponentielles. Mon ordi optimise les coeffs depuis quelques semaines. C'est quasiment fini, ça se joue sur des micropoils de décimales.
Voilà pour la théorie !
Si tu es emmerdé par des bugs, je les corrigerai. On n'en a pas eu dans le projet qui l’utilisait en tout cas

Sur TI, le code prend quelques ko. À vérifier.
C'est quoi exactement ton projet ? Ca me dit quelque chose, tu dois avoir un topic quelque part...