Qui livre combien de bois à qui, une fois les salaires calculés. Le proportionnel multiplie les convois, le minimal envoie parfois un grenier à l'autre bout de la carte. Voici les autres façons de faire, ce qu'elles valent, et celles qui méritent un essai.
Ce qu'on cherche à optimiser
Après le calcul de 18 h, chaque membre est soit un grenier (il produit plus que son salaire et livre l'excédent), soit un receveur. La distribution décide des paires grenier → receveur et des quantités. Cinq critères comptent :
Nombre de convoisChaque convoi est une action à faire et à coller sur le site. Moins il y en a, mieux c'est.
Trajet le plus longC'est lui qui fixe l'heure où le dernier receveur est servi, et qui bloque les ouvrières du grenier pendant l'aller-retour.
Volume × tempsLe bois en route ne sert à personne. La somme de quantité × durée mesure ce bois immobilisé.
StabilitéLivrer chaque jour aux mêmes personnes crée des habitudes et évite les erreurs de destinataire.
LisibilitéUn membre doit pouvoir comprendre pourquoi on lui demande de livrer untel.
Ce que le jeu impose
Durée. Le trajet dure 637 200 s × 0,9VA × (1 − e−d/350), où d est la distance entre les deux fourmilières et VA le niveau de Vitesse d'attaque de l'expéditeur (−10 % par niveau). La durée plafonne avec la distance : à d = 350 on est à 63 % du plafond, au-delà de 1 000 presque au maximum. Elle dépend donc aussi du grenier : un grenier rapide peut servir plus loin qu'un lent dans le même temps.
Capacité. Une ouvrière porte 10 + 0,5 × niveau d'Étable à pucerons. Les ouvrières du convoi quittent la récolte jusqu'au retour affiché par le message. Un grenier qui manque d'ouvrières pour tout livrer d'un coup attend leur retour avant le convoi suivant : c'est là que la distribution déborde sur le lendemain.
Entrepôts. Ce qui dépasse la capacité des entrepôts du receveur est perdu.
Sources : aide officielle (labo, constructions, divers), extensions Outiiil et ZzzelpScript, forum de Fourmizzz. Pas de limite trouvée au nombre de convois simultanés ; le côté expéditeur de la VA vient d'Outiiil, l'aide ne le précise pas.
Le résultat qui débloque tout
Répartir des excédents vers des besoins en minimisant un coût par trajet, c'est le problème de transport, un classique de recherche opérationnelle. Il a toujours une solution optimale qui utilise au plus greniers + receveurs − 1 convois, exactement la borne du minimal actuel. On peut donc tenir compte de la distance sans payer en nombre de convois.
Un exemple pour fixer les idées
Alliance fictive, temps de trajet inventés pour l'illustration. Trois greniers (G1 300 k, G2 150 k, G3 50 k) et trois receveurs (R1 250 k, R2 150 k, R3 100 k). R3 est isolé à l'ouest, seul G3 est proche de lui.
Grenier (excédent)Receveur (besoin)Les flèches indiquent la quantité et la durée du trajet
Minimal actuel plus gros vers plus gros
5 convoistrajet max 11 hvolume × temps 1 250 k·h
Avec la distance goulot minimal
4 convoistrajet max 7 hvolume × temps 850 k·h
Le proportionnel ferait ici 9 convois, dont deux de 11 h, pour 2 105 k·h. Le minimal ne regarde que les montants : G2 a encore 50 k quand il ne reste que R3 à servir, alors il traverse la carte. En regardant la distance, G2 sert tout R2 à côté de chez lui, et G1, plus central, complète R3.
Toutes les idées
Les deux systèmes actuels
1. Proportionnel
en place
Chaque grenier livre à chaque receveur une part de son besoin égale à sa part de l'excédent total.
Équitable et prévisible : tout le monde participe à tout.
Paires stables d'un jour à l'autre.
Greniers × receveurs convois : 10 greniers et 15 receveurs font 150 convois par jour.
Chaque grenier doit atteindre le receveur le plus lointain : on garantit le pire trajet.
Beaucoup de petits convois, et des arrondis à chaque ligne.
2. Minimal (glouton par montant)
en place
Le plus gros excédent sert le plus gros besoin, et ainsi de suite. Chaque étape solde au moins l'un des deux.
Au plus greniers + receveurs − 1 convois, souvent un seul par receveur.
Déjà codé, simple à expliquer.
Aveugle à la carte : une paire à l'autre bout du monde arrive au hasard des montants.
Les paires changent dès que l'ordre des montants change, donc presque chaque jour.
Tenir compte de la carte, simplement
Des variantes gloutonnes : faciles à coder à partir du minimal actuel, faciles à expliquer, mais sans garantie.
3. Plus proche d'abord
écarté au rejeu
On trie toutes les paires grenier → receveur par temps de trajet, et on sert les plus courtes d'abord, chacune pour le maximum possible.
Même borne de convois que le minimal : chaque étape solde un grenier ou un receveur.
Paires stables, car la géographie bouge peu.
Règle qu'un membre comprend : « tu livres ton voisin ».
Les derniers restes s'apparient avec ce qui reste, parfois très loin : le problème recule sans disparaître.
Peut faire pire que le minimal sur le trajet max dans les cas tordus.
4. Minimal avec rayon
Le glouton actuel, mais une paire n'est permise que si le trajet fait moins de T heures (par exemple 6 h). Si on bloque, on relâche le rayon.
Changement minime du code actuel.
Règle claire : « personne ne fait plus de 6 h ».
Le seuil se règle à la main et dépend de la carte.
Le glouton peut se coincer alors qu'une solution sous le seuil existait.
Les paires restent instables, comme le minimal.
Optimiser pour de vrai
Le problème de transport se résout exactement, et en un instant pour une alliance de quelques dizaines de membres.
5. Transport à coût minimal
à tester
Minimise la somme de quantité × temps de trajet sur tous les convois : le moins de bois possible sur les routes.
Optimal sur le volume × temps, avec au plus greniers + receveurs − 1 convois.
Les gros flux restent entre voisins.
Algorithme connu et documenté (flot à coût minimal), sans réglage.
Un petit reste peut encore traverser la carte : 10 k sur 11 h coûtent peu dans la somme.
« C'est l'optimum » s'explique moins bien qu'une règle simple.
6. Goulot minimal, puis coût minimal
favori
D'abord trouver le plus petit T tel que tout le monde peut être servi avec des trajets de moins de T ; puis, parmi ces paires, appliquer le coût minimal.
Attaque directement le problème : le pire trajet est le plus court possible, et on sait lequel il est.
Garde la borne de convois et l'optimalité du volume × temps sous ce seuil.
Pas de seuil à régler : la carte le donne chaque jour.
S'annonce simplement : « aujourd'hui, aucun convoi ne dépasse 5 h 40 ».
Deux étapes à coder (recherche du seuil avec un flot maximal, puis coût minimal).
Un membre vraiment isolé fixe le seuil pour tous, mais seules ses paires l'atteignent.
7. Coût fixe par convoi + temps
Chaque convoi coûte un forfait (l'effort de l'envoyer) plus son temps de trajet, et on minimise le total.
Le modèle le plus fidèle à ce que vivent les joueurs.
Un seul paramètre pour arbitrer entre « moins de convois » et « plus courts ».
Problème NP-difficile : il faut un solveur ou une heuristique.
Gain faible : les solutions 5 et 6 sont déjà à la borne de convois.
Le paramètre se règle à l'instinct.
S'organiser autrement
Des règles d'alliance plutôt que des algorithmes : elles parlent aux membres, mais demandent un calcul de rattrapage derrière.
8. Par région
On équilibre d'abord chaque région de la carte (celles déjà dessinées sur la page Alliance), puis seuls les soldes entre régions voyagent, par quelques convois entre les membres les plus proches de la frontière.
Très lisible : on livre dans sa région.
Les longs trajets se limitent à quelques convois choisis.
Une région de receveurs sans grenier rend les longs trajets inévitables.
Frontières arbitraires : deux voisins de part et d'autre ne se livrent jamais.
Un peu plus de convois que l'optimum.
9. Binômes stables
Chaque receveur a un ou deux greniers attitrés et proches, revus seulement quand l'alliance change. Le reste du jour (excédent ou manque) passe par un autre système.
Le plus stable : on livre toujours les mêmes personnes.
Crée du lien entre membres.
Les montants varient chaque jour : il reste un résidu à distribuer quand même.
Un grenier absent prive son binôme.
Revoir les binômes à la main à chaque arrivée ou départ.
10. Livraisons groupées pour les isolés
Un receveur loin de tout n'est servi qu'un jour sur deux ou trois, avec le cumul. Entre-temps, ce qu'on lui doit est suivi comme une avance.
Divise le nombre de longs trajets.
S'appuie sur le suivi des dettes qui existe déjà.
Le membre isolé attend son bois.
Un gros convoi demande plus d'ouvrières d'un coup.
Ne règle que le cas d'un isolé, pas les distances ordinaires.
11. Ordonnancement avec les ouvrières
On modélise les ouvrières de chaque grenier et les allers-retours, et on minimise l'heure d'arrivée du dernier convoi.
Le seul qui vise directement « tout livré avant le calcul suivant ».
Il faut le nombre d'ouvrières et les technologies de chacun : absents de l'export, à saisir et tenir à jour.
Problème d'ordonnancement lourd, difficile à expliquer.
12. Trois préférences
classeur ALLIANCE
La règle de l'onglet VENTILATION du classeur. Chaque receveur a trois greniers préférés, du plus proche au plus loin. Première passe : chacun prend ce qu'il peut chez sa préférence 1, dans l'ordre des lignes de MASTER ; puis préférence 2, puis 3. Une 4e passe sert le reste dans l'ordre des greniers.
Déjà connue de l'alliance, très lisible : « tes trois greniers, dans l'ordre ».
Pas plus de convois que le minimal, souvent un seul par receveur.
Stable : les préférences ne changent qu'avec la carte.
Ne regarde pas l'excédent des greniers : un petit grenier bien placé est la préférence de tout le monde, un gros grenier isolé de personne.
Le reste part dans l'ordre des lignes, sans regarder la carte.
L'ordre des lignes décide qui est servi de près.
Préférences saisies à la main : elles vieillissent (Zephira manque chez Tomtom et Spaceman).
Écartés
13. Proportionnel pondéré par la distance
écarté
Chaque grenier livre davantage aux receveurs proches.
Garde greniers × receveurs convois, le vrai défaut du proportionnel.
14. Relais
écarté
Un membre proche de l'isolé reçoit pour lui et lui fait suivre.
Deux convois et deux délais au lieu d'un, pour un trajet total au mieux égal.
Le relais porte une responsabilité qu'il n'a pas choisie.
Compléments, quel que soit le système
Les plus longs d'abord
complément
Afficher à chaque grenier ses convois du plus long au plus court, et lui conseiller de lancer le long dès le calcul.
Gratuit : rien ne change dans la répartition.
Les ouvrières du long trajet reviennent plus tôt.
Afficher le trajet
complément
Montrer la durée estimée de chaque livraison sur Mes livraisons et Salaires.
Le membre sait quand son bois arrive et peut s'organiser.
Rend visible pourquoi le système choisit tel destinataire.
Tableau comparatif
Notes relatives entre systèmes, sur une alliance de quelques dizaines de membres.
Système
Convois
Trajet max
Volume × temps
Stabilité
Lisibilité
Effort
1. Proportionnelactuel
G × R
le pire
élevé
bonne
bonne
fait
2. Minimalactuel
≤ G + R − 1
au hasard
moyen
faible
moyenne
fait
3. Plus proche d'abordglouton
≤ G + R − 1
le pire le 30
bon
bonne
bonne
faible
4. Minimal avec rayonglouton
≤ G + R − 1
≤ seuil si tenable
moyen
faible
bonne
faible
5. Coût minimaloptimal
≤ G + R − 1
un reste lointain possible
optimal
moyenne
moyenne
moyen
6. Goulot puis coûtoptimal
≤ G + R − 1
optimal
optimal sous le seuil
moyenne
bonne
moyen +
7. Coût fixe + tempsoptimal
au mieux
selon réglage
bon
moyenne
faible
élevé
8. Par régionorganisation
un peu plus
bon sauf région vide
bon
bonne
très bonne
moyen
9. Binômes stablesorganisation
un peu plus
bon
bon
la meilleure
très bonne
moyen
10. Groupé pour les isolésorganisation
moins de longs
inchangé
moyen
moyenne
moyenne
moyen
11. Avec les ouvrièresordonnancement
bon
optimal réel
bon
moyenne
faible
élevé + saisie
12. Trois préférencesclasseur actuel
≤ G + R − 1
le reste part loin
moyen
bonne
très bonne
faible
13. Proportionnel pondéréécarté
G × R
le pire
moyen
bonne
moyenne
faible
14. Relaisécarté
doublés
doublé
élevé
moyenne
moyenne
moyen
G = greniers, R = receveurs. Tous les systèmes sauf 1 et 2 ont besoin d'un temps de trajet par paire de membres : la formule du jeu, les coordonnées de l'export et la Vitesse d'attaque de chaque grenier.
Rejeu du calcul du 30 octobre
Le calcul de 18 h du 30 octobre, sans les deux membres arrivés ce jour-là. Mêmes niveaux, mêmes productions, répartis par chaque système. Les distances viennent des coordonnées de l'export de 17 h 03, les durées de la formule du jeu, avec la même Vitesse d'attaque pour tous les greniers.
Arrivants du jour exclus
Virloque et FrelonSacquet ont rejoint l'alliance le 30, à 16 h et 15 h. Le calcul de 18 h a compté toute leur production de la journée, alors qu'ils n'étaient là que depuis une à deux heures : à eux deux, 187 M d'excédent sur 303 M, ce qui faussait tout le reste. Le rejeu recalcule les salaires des 19 autres membres comme le fait le site, sans eux. Il reste 9 greniers, 10 receveurs et 182 M de bois à livrer.
Chaque niveau retire 10 % à toutes les durées.
Système
Convois
Trajet le plus long
Durée moyenne du bois en route
Receveur servi, en moyenne après
Receveurs à plusieurs greniers
Minimalsystème actuel
18
90,3 cases · Lazarius → Zephira, 3,5 M
8
Proportionnel
90
90,3 cases · Lazarius → Zephira, 0,27 M
10
Plus proche d'abord
18
80,8 cases · Stonotwo → Luluroro, 8,2 M
5
Trois préférencesrègle du classeur ALLIANCE
18
55,3 cases · Stonotwo → Chokapic, 37,3 M
4
Trois préférencesreste servi au mieux
18
55,3 cases · Stonotwo → Chokapic, 36,8 M
4
Coût minimal
18
55,3 cases · Stonotwo → Chokapic, 10,7 M
5
Goulot puis coût
18
40,7 cases · Stonotwo → adrien7870, 33,3 M
5
« Receveur servi » : pour chaque receveur, la durée de son convoi le plus long, moyennée sur les 10 receveurs. La durée moyenne du bois en route pondère chaque convoi par sa quantité.
GrenierReceveurLivraison, épaisseur selon la quantitéPlus de 45 casesReste, 4e passe (trois préférences)
Minimal 18 convois
Goulot puis coût minimal 18 convois
Trois préférences du classeur 18 convois
Trois préférences : qui est la préférence 1 de qui
Excédent du grenierBesoin des receveurs qui l'ont en préférence 1
Stonotwo44,26,9
Klin3x38,917,5
Autarcie29,326,0
Belgarion22,84,0
Tomtom13,10,0
Poussin1811,934,5
jflestum9,40,0
Lazarius7,015,3
EDMM5,677,9
En millions de bois. EDMM est la préférence 1 de 78 M de besoins pour 5,6 M d'excédent ; Stonotwo, le plus gros grenier, de 6,9 M seulement ; Tomtom et jflestum de personne.
Ce que montre le rejeu
Le minimal traverse la carte en diagonale. Lazarius, dans le coin sud-est, livre Zephira, à l'ouest : 90 cases. Tomtom, au sud-ouest, livre malzob et Luluroro à l'est. Stonotwo envoie ses 44 M d'un bloc à Chokapic, à 55 cases.
Le goulot remet chacun chez soi. Lazarius sert Luluroro, son voisin à 10 cases. Stonotwo sert Zephira puis adrien7870 et Spaceman, les receveurs les plus proches de lui. Le trajet le plus long passe de 90 à 41 cases (−55 %), le bois passe 37 % de temps en moins sur les routes, et chaque receveur a tout reçu 43 % plus tôt en moyenne.
41 cases, c'est le plancher du jour. Stonotwo est le plus gros grenier (44 M) et il est seul à l'ouest. Son seul receveur voisin, Zephira, ne prend que 6,9 M : le reste doit voyager au moins jusqu'au centre de la carte.
Cette fois, l'étape du goulot compte. Le coût minimal seul envoie 10,7 M de Stonotwo à Chokapic (55 cases), parce que c'est moins cher au total que de déplacer d'autres paires. Le goulot ramène le pire trajet à 41 cases (−26 %), pour 5 % de bois en route en plus, et les receveurs sont quand même servis plus tôt en moyenne.
Les trois préférences servent 61 % du bois, sans long trajet. Les trois premières passes livrent 110 M sur 182 M en 11 convois, le plus long à 23 cases. Elles sont très lisibles, et la plupart des receveurs ne reçoivent qu'un convoi.
Le reste traverse la carte. Les 72 M restants sont surtout chez Stonotwo, Klin3x et Tomtom. La 4e passe les sert dans l'ordre des lignes : Stonotwo envoie 37 M à Chokapic (55 cases), Tomtom livre Alcaz (55), Klin3x livre Luluroro (53).
Même un reste servi au mieux ne descend pas sous 55 cases. Les préférences ont déjà donné adrien7870, le receveur central, à Poussin18, Belgarion et Autarcie. Le goulot, lui, le réserve à Stonotwo (41 cases). La règle ne regarde pas l'excédent des greniers : EDMM est la préférence 1 de 78 M de besoins pour 5,6 M d'excédent.
L'ordre des lignes décide qui est servi de près. Quand un grenier est trop demandé, les receveurs du haut de l'onglet MASTER passent avant ; ceux du bas héritent du reste, souvent lointain.
Pas un convoi de plus. Minimal, plus proche d'abord, trois préférences, coût minimal et goulot font tous 18 convois, la borne greniers + receveurs − 1. Le proportionnel en fait 90.
Plus proche d'abord reste loin derrière. Il apparie bien les voisins, mais il ne reste à la fin que Stonotwo pour Luluroro, à l'autre bout de la carte : 81 cases.
La contrepartie. Le plus long trajet du goulot porte un gros convoi : 33 M de Stonotwo à adrien7870, donc beaucoup d'ouvrières absentes pendant l'aller-retour. Chokapic reçoit 4 convois (Tomtom, Poussin18, Belgarion, EDMM).
Avec les deux arrivants, les écarts allaient dans le même sens, mais le goulot ne gagnait que 2 cases sur le coût minimal. Leurs greniers, à l'est, servaient presque tout le monde. Limites : une seule journée ; même Vitesse d'attaque pour tous ; ouvrières et entrepôts non pris en compte ; la stabilité des paires d'un jour à l'autre ne se mesure pas sur un seul calcul.
Ce qui mérite d'être testé
Le rejeu du 30 octobre confirme l'analyse : tenir compte de la carte divise par plus de deux le trajet le plus long, sans un convoi de plus. Un système ressort nettement ; le deuxième est sa version simplifiée, le troisième la règle actuelle du classeur.
1
Goulot minimal, puis coût minimal
Le candidat principal. Il garantit que le trajet le plus long est le plus court possible, garde le nombre de convois du minimal et, sous ce seuil, laisse le moins de bois possible sur les routes. Le 30, cette garantie a compté : 41 cases au lieu de 55 pour le coût minimal seul et de 90 pour le minimal actuel, pour seulement 5 % de bois en route en plus que le coût minimal. Le seuil du jour est une information utile à afficher aux greniers.
2
Transport à coût minimal seul
Le même calcul sans l'étape du goulot, donc un peu plus simple à coder. Le 30, il a laissé Stonotwo livrer 10,7 M à 55 cases : bien mieux que le minimal, mais 14 cases de plus que le 1. Il ne vaut que si l'étape du goulot pose problème.
3
Trois préférences du classeur, en repli
La règle que l'alliance utilise déjà fait bien mieux que le minimal : 55 cases au lieu de 90, avec le même nombre de convois, et c'est la plus lisible. Mais elle ne regarde pas l'excédent des greniers : le gros grenier isolé hérite des receveurs que les autres n'ont pas servis, et même un reste servi au mieux ne descend pas sous 55 cases. Elle reste un bon repli si le goulot paraît trop opaque aux membres.
✕
Plus proche d'abord, écarté
Il apparie bien les voisins, mais sans regarder l'excédent des greniers. Le bois qui reste finit par traverser la carte : 81 cases.
La suite pour départager les deux
Une durée par grenier. Le rejeu suppose la même Vitesse d'attaque pour tous. La vraie se déduit d'un seul convoi collé (distance connue, durée lue dans le message), sinon on la saisit avec les autres niveaux. Les greniers rapides seront alors choisis en priorité pour les longs trajets.
Rejouer d'autres jours. Le 30 octobre est le seul calcul complet de la base, les quatre du 21 sont des essais. Rejouer chaque nouveau calcul pendant une semaine dira si le coût minimal laisse parfois un reste lointain.
Mesurer. Pour chaque jour : nombre de convois, trajet le plus long, durée moyenne du bois en route, et part des paires identiques à la veille.
Essayer en vrai. Le gagnant tourne une semaine comme distribution de l'alliance, avec la durée affichée sur chaque livraison et les plus longs listés en premier.