--- title: Formules description: Formules mathematiques de seuil WoT, criteres Smith et TechComm --- # Formules de seuil Glibredecision utilise un systeme de formules mathematiques pour determiner les seuils d'adoption des votes. Le mecanisme central est la **formule d'inertie WoT** qui impose une quasi-unanimite en cas de faible participation et converge vers une majorite simple a participation elevee. ## Formule principale -- Seuil WoT $$ \text{Result} = C + B^W + \left( M + (1 - M) \cdot \left(1 - \left(\frac{T}{W}\right)^G \right) \right) \cdot \max(0,\; T - C) $$ ### Variables | Symbole | Parametre | Description | Defaut | | ------- | ------------------- | ------------------------------------------------ | ------ | | $C$ | `constant_base` | Base constante additive (plancher) | 0.0 | | $B$ | `base_exponent` | Exposant de base. $B^W$ devient negligeable quand $W$ est grand ($0 < B < 1$) | 0.1 | | $W$ | `wot_size` | Taille du corpus des votants eligibles (membres WoT) | -- | | $T$ | `total_votes` | Nombre total de votes exprimes (pour + contre) | -- | | $M$ | `majority_pct / 100`| Ratio de majorite. 0.5 = majorite simple a pleine participation | 50 | | $G$ | `gradient_exponent` | Controle la vitesse de convergence de la super-majorite vers $M$ | 0.2 | ### Mecanisme d'inertie Le coeur de la formule est le facteur d'inertie : $$ \text{inertia} = M + (1 - M) \cdot \left(1 - \left(\frac{T}{W}\right)^G \right) $$ - Quand la **participation est faible** ($T \ll W$) : le ratio $T/W$ est petit, $(T/W)^G$ est proche de 0, donc l'inertie tend vers $M + (1-M) = 1$. Il faut quasiment l'unanimite. - Quand la **participation est elevee** ($T \to W$) : le ratio $T/W$ tend vers 1, $(T/W)^G$ tend vers 1, donc l'inertie tend vers $M$. La majorite simple suffit. ### Exemple de reference Avec les parametres `M50 B.1 G.2` et le vote de l'Engagement Forgeron v2.0.0 : - $W = 7224$ (membres WoT) - $T = 120$ (97 pour + 23 contre) - Seuil calcule : $94$ - Resultat : **adopte** (97 >= 94) ## Critere Smith (Forgerons) $$ \text{SmithThreshold} = \lceil \text{SmithWotSize}^S \rceil $$ Le critere Smith exige un nombre minimum de votes favorables de la part des membres Smith (forgerons) pour que certaines decisions soient valides. | Symbole | Parametre | Description | Defaut | | ------- | ---------------- | ---------------------------- | ------ | | $S$ | `smith_exponent` | Exposant pour le critere Smith | null (desactive) | Avec un exposant de $S = 0.1$ et 20 forgerons : $$ \lceil 20^{0.1} \rceil = \lceil 1.35 \rceil = 2 $$ Au minimum 2 votes favorables de forgerons sont requis. ## Critere TechComm (Comite Technique) $$ \text{TechCommThreshold} = \lceil \text{CoTecSize}^T \rceil $$ Le critere TechComm fonctionne de maniere identique au critere Smith mais pour les membres du Comite Technique. | Symbole | Parametre | Description | Defaut | | ------- | ------------------- | ------------------------------- | ------ | | $T$ | `techcomm_exponent` | Exposant pour le critere TechComm | null (desactive) | Avec un exposant de $T = 0.1$ et 5 membres TechComm : $$ \lceil 5^{0.1} \rceil = \lceil 1.17 \rceil = 2 $$ Au minimum 2 votes favorables de membres TechComm sont requis. ## Resultat final Un vote est **adopte** si et seulement si les trois conditions sont remplies simultanement : 1. `votes_for >= seuil_WoT` (formule principale) 2. `smith_votes_for >= seuil_Smith` (si critere Smith actif) 3. `techcomm_votes_for >= seuil_TechComm` (si critere TechComm actif) ## Parametres de mode (mode_params) Les parametres de formule sont encodes dans une chaine compacte pour faciliter la lecture et le partage. Format : une lettre majuscule suivie d'une valeur numerique. | Code | Parametre | Type | Exemple | | ---- | --------------------- | ----- | ------------ | | D | `duration_days` | int | D30 = 30 jours | | M | `majority_pct` | int | M50 = 50% | | B | `base_exponent` | float | B.1 = 0.1 | | G | `gradient_exponent` | float | G.2 = 0.2 | | C | `constant_base` | float | C0 = 0.0 | | S | `smith_exponent` | float | S.1 = 0.1 | | T | `techcomm_exponent` | float | T.1 = 0.1 | | N | `ratio_multiplier` | float | N1.5 = 1.5 | | R | `is_ratio_mode` | bool | R1 = true | ### Exemples - `"D30M50B.1G.2"` -- 30 jours, majorite 50%, base 0.1, gradient 0.2 - `"D30M50B.1G.2S.1T.1"` -- Idem avec critere Smith (0.1) et TechComm (0.1) - `"D60M66B.05G.3"` -- 60 jours, majorite 66%, base 0.05, gradient 0.3 ## Vote nuance En plus du vote binaire (pour/contre), Glibredecision supporte un vote nuance a 6 niveaux : | Niveau | Label | | ------ | ------------- | | 0 | CONTRE | | 1 | PAS DU TOUT | | 2 | PAS D'ACCORD | | 3 | NEUTRE | | 4 | D'ACCORD | | 5 | TOUT A FAIT | ### Regle d'adoption (vote nuance) Un vote nuance est adopte si : 1. Le nombre de votes aux niveaux 3, 4 et 5 (positifs) represente au moins `threshold_pct`% du total des votes. 2. Le nombre minimum de participants (`min_participants`) est atteint. Par defaut : `threshold_pct = 80%`, `min_participants = 59`.