An O(nlogn)O(n\log n) Algorithm for Single-Item Lot Sizing with a One-Breakpoint All-Units Discount and Non-Increasing Prices

Cet article propose un nouvel algorithme hybride de programmation dynamique résolvant le problème de dimensionnement de lots pour un article unique avec une remise all-units à un point de rupture et des prix non croissants en temps O(nlogn)O(n\log n), améliorant ainsi la complexité précédente de O(n2)O(n^2).

Kleitos Papadopoulos

Publié 2026-03-06
📖 5 min de lecture🧠 Analyse approfondie

Each language version is independently generated for its own context, not a direct translation.

Imaginez que vous êtes le chef d'une flotte de camions de livraison qui doit livrer des colis dans une ville étendue sur plusieurs jours. Votre objectif est simple : livrer tout le monde au meilleur prix possible, mais vous avez deux contraintes majeures :

  1. Le réservoir de carburant est limité (vous ne pouvez pas emporter une quantité infinie d'essence).
  2. Le prix de l'essence change tous les jours, et il y a une astuce : si vous faites le plein d'une certaine quantité (disons 100 litres), vous obtenez un super rabais sur tous les litres, pas seulement sur ceux au-dessus de 100.

C'est ce qu'on appelle le problème de "dimensionnement des lots" (Lot Sizing) avec une remise sur quantité.

Le Problème : La Course Contre la Montre (et les Prix)

Dans le passé, pour résoudre ce casse-tête, les ordinateurs devaient vérifier chaque possibilité à chaque étape. C'était comme si, pour chaque jour, vous deviez calculer le coût de chaque niveau de carburant possible (de 0 à 1000 litres).

  • Si vous avez 100 jours, l'ordinateur fait des milliards de calculs. C'est lent (O(n2)O(n^2)).
  • Imaginez essayer de trouver le chemin le moins cher dans une forêt en vérifiant chaque feuille de chaque arbre. C'est fastidieux.

La Solution : L'Intelligence des "Segments"

L'auteur de ce papier, Kleitos Papadopoulos, a trouvé une façon beaucoup plus intelligente de faire les choses. Au lieu de regarder chaque goutte d'essence individuellement, il regroupe les situations similaires en segments.

Voici l'analogie pour comprendre sa méthode :

1. Les "Segments" comme des Trousseaux de Clés

Au lieu de dire "J'ai 10 litres, ça coûte X", "J'ai 11 litres, ça coûte Y", l'algorithme dit : "Pour tous les niveaux entre 10 et 50 litres, le coût suit une ligne droite simple."
Il regroupe ces niveaux en un seul segment. C'est comme si vous aviez un trousseau de clés où une seule clé ouvre 40 portes différentes, au lieu d'avoir 40 clés séparées. Cela réduit énormément le nombre de choses à gérer.

2. L'Arbre de Décision (Le BST)

L'algorithme utilise une structure de données appelée "Arbre Binaire Équilibré". Imaginez un arbre généalogique très organisé où chaque branche représente une stratégie de remplissage du réservoir.

  • Quand le prix de l'essence change ou que vous avancez d'un jour, l'arbre se réorganise automatiquement.
  • Les branches qui sont devenues "inutiles" (trop chères) sont coupées et jetées.
  • Les branches qui sont devenues "meilleures" (moins chères) prennent la place des autres.

3. La Magie des "Seuils MV" (Les Feux Tricolores)

C'est le cœur de l'innovation. L'algorithme ne compare pas tout le temps tout. Il utilise des seuils de décision (appelés MV thresholds).

  • Imaginez un feu tricolore entre deux stratégies de conduite.
  • Si le prix de l'essence du jour est en dessous d'un certain seuil, le feu passe au vert pour la stratégie A (elle gagne).
  • Si le prix est au-dessus, le feu passe au vert pour la stratégie B.
  • Grâce à ces feux, l'ordinateur sait immédiatement quelle stratégie éliminer sans avoir à recalculer tout le trajet.

Pourquoi est-ce si rapide ? (O(nlogn)O(n \log n))

Dans l'ancienne méthode, si vous aviez 1000 jours, l'ordinateur devait faire des calculs pour chaque jour contre chaque autre jour (1000 x 1000 = 1 million d'opérations).

Dans cette nouvelle méthode :

  1. L'ordinateur ne garde que les stratégies essentielles (les segments).
  2. Il utilise l'arbre pour trouver rapidement les meilleurs seuils (comme chercher un mot dans un dictionnaire trié, ce qui est très rapide).
  3. Il élimine les mauvaises options instantanément grâce aux "feux tricolores".

Résultat : Pour 1000 jours, il ne fait que quelques milliers d'opérations au lieu d'un million. C'est comme passer de la marche à pied à la voiture de sport.

L'Analogie Finale : Le Supermarché Intelligent

Imaginez que vous devez faire vos courses pour un mois entier.

  • L'ancienne méthode : Vous vérifiez chaque jour, pour chaque article, si vous devriez l'acheter maintenant ou attendre, en comparant chaque combinaison possible avec chaque autre. Vous passez votre vie à faire des listes.
  • La nouvelle méthode : Vous avez un assistant très intelligent. Il vous dit : "Si le prix du lait est inférieur à 1€, achète-en pour 3 jours. Si c'est plus cher, attends." Il regroupe vos décisions par blocs logiques. Il ne regarde que les moments clés où les prix changent ou où les règles de rabais s'appliquent.

En Résumé

Ce papier propose un algorithme qui résout un problème complexe de gestion de stock (ou de carburant) en regroupant les options similaires et en utilisant des règles de décision rapides pour éliminer les mauvaises stratégies.

Au lieu de compter chaque grain de sable, l'algorithme regarde les dunes. Cela permet de trouver la solution optimale beaucoup plus vite que les méthodes précédentes, ce qui est crucial pour les entreprises qui doivent planifier des milliers de livraisons ou de productions chaque jour. C'est une victoire de l'intelligence algorithmique sur la force brute.