10
Cah. Nutr. Diét., 43, 6, 2008 303 diététique diététique UN OUTIL À DÉCOUVRIR EN NUTRITION HUMAINE : LA PROGRAMMATION LINÉAIRE Nicole DARMON 1 , Frédérique MOY 2 Comment concevoir, à partir d’une liste d’aliments de composition nutrition- nelle connue, une ration alimentaire qui convienne à des besoins nutrition- nels spécifiques ? Les logiciels diététiques actuellement disponibles sur le marché proposent des menus ou des plans alimentaires préalablement défi- nis ; ils permettent aussi de calculer le contenu en énergie et en nutriments d’un repas, d’une journée ou d’une semaine alimentaire, mais ils ne permettent pas de corriger les erreurs nutritionnelles dans la constitution de ces rations. Par ailleurs, l’analyse de la composition nutritionnelle des repas ou régimes composés par des spécialistes tels que les diététiciens montre que la plupart sont déficients en certains micronutriments et ne respectent pas la totalité des recommandations nutritionnelles. Alors, comment proposer à coup sûr la meilleure combinaison d’aliments ? La programmation linéaire (PL) est l’outil de choix pour résoudre ces problèmes. Disponible sous des logiciels usuels type Excel, elle permet d’optimiser une fonction linéaire constituée de variables soumises à un ensemble de contraintes, linéaires elles aussi. Son application la plus classique est l’optimisation d’un mélange de matières pre- mières permettant de fabriquer à moindre coût un produit de composition nutritionnelle voulue. En nutrition humaine, la PL permet de générer des rations qui respectent un ensemble de recommandations nutritionnelles tout en répondant à des critères d’acceptabilité et de réalisme. La programmation linéaire : pour quoi faire ? La PL est une méthode de calcul linéaire basée sur l’algo- rithme du simplex. Elle est très utilisée depuis plus d’un demi-siècle dans de nombreux secteurs de la recherche appliquée et de l’économie pour identifier les meilleures solutions possibles à des problèmes comportant de nom- breuses variables. Bien qu’historiquement liée à la nutrition, et plus précisément à la nutrition humaine – en effet, c’est en résolvant le problème de minimisation du coût d’une ration équilibrée posé en 1945 par le prix Nobel d’écono- mie George Stigler [1], que George Dantzig a illustré la méthode du simplex qu’il venait de découvrir [2] – la PL a paradoxalement été peu utilisée dans ce domaine. Sa pre- mière application en nutrition humaine a été la génération de régimes nutritifs à moindre coût [3]. C’est ainsi qu’a été calculé, par exemple, le montant de l’allocation de coupons d’aide alimentaire destinés aux personnes en difficulté aux États-Unis [4]. Cette technique a également été utilisée pour développer des indicateurs de sécurité alimentaire en Colombie [5] et formuler des menus de bon rapport qua- lité/prix dans le cadre institutionnel en Israël [6]. 1. Unité de Recherche en Nutrition Humaine, UMR Inserm 476/Inra 1260, faculté de Médecine de la Timone, 27, boulevard Jean-Moulin, 13385 Marseille Cedex 05. 2. Cabinet de diététique et nutrition, 24, rue du Dr Bonnet, 76290 Montivilliers. Correspondance : Nicole Darmon, à l’adresse ci-dessus. Email : [email protected]

Un outil à découvrir en nutrition humaine : la programmation linéaire

Embed Size (px)

Citation preview

Cah. Nutr. Diét., 43, 6, 2008 303

diététique

diététique

UN OUTIL À DÉCOUVRIR EN NUTRITION HUMAINE : LA PROGRAMMATION LINÉAIRE

Nicole DARMON1, Frédérique MOY2

Comment concevoir, à partir d’une liste d’aliments de composition nutrition-nelle connue, une ration alimentaire qui convienne à des besoins nutrition-nels spécifiques ? Les logiciels diététiques actuellement disponibles sur lemarché proposent des menus ou des plans alimentaires préalablement défi-nis ; ils permettent aussi de calculer le contenu en énergie et en nutrimentsd’un repas, d’une journée ou d’une semaine alimentaire, mais ils ne permettentpas de corriger les erreurs nutritionnelles dans la constitution de ces rations.Par ailleurs, l’analyse de la composition nutritionnelle des repas ou régimescomposés par des spécialistes tels que les diététiciens montre que la plupartsont déficients en certains micronutriments et ne respectent pas la totalitédes recommandations nutritionnelles. Alors, comment proposer à coup sûrla meilleure combinaison d’aliments ? La programmation linéaire (PL) estl’outil de choix pour résoudre ces problèmes. Disponible sous des logicielsusuels type Excel, elle permet d’optimiser une fonction linéaire constituée devariables soumises à un ensemble de contraintes, linéaires elles aussi. Sonapplication la plus classique est l’optimisation d’un mélange de matières pre-mières permettant de fabriquer à moindre coût un produit de compositionnutritionnelle voulue. En nutrition humaine, la PL permet de générer desrations qui respectent un ensemble de recommandations nutritionnelles touten répondant à des critères d’acceptabilité et de réalisme.

La programmation linéaire : pour quoi faire ?

La PL est une méthode de calcul linéaire basée sur l’algo-rithme du simplex. Elle est très utilisée depuis plus d’undemi-siècle dans de nombreux secteurs de la rechercheappliquée et de l’économie pour identifier les meilleuressolutions possibles à des problèmes comportant de nom-

breuses variables. Bien qu’historiquement liée à la nutrition,et plus précisément à la nutrition humaine – en effet, c’esten résolvant le problème de minimisation du coût d’uneration équilibrée posé en 1945 par le prix Nobel d’écono-mie George Stigler [1], que George Dantzig a illustré laméthode du simplex qu’il venait de découvrir [2] – la PL aparadoxalement été peu utilisée dans ce domaine. Sa pre-mière application en nutrition humaine a été la générationde régimes nutritifs à moindre coût [3]. C’est ainsi qu’a étécalculé, par exemple, le montant de l’allocation de couponsd’aide alimentaire destinés aux personnes en difficulté auxÉtats-Unis [4]. Cette technique a également été utiliséepour développer des indicateurs de sécurité alimentaire enColombie [5] et formuler des menus de bon rapport qua-lité/prix dans le cadre institutionnel en Israël [6].

1. Unité de Recherche en Nutrition Humaine, UMR Inserm 476/Inra 1260, faculté de Médecine de la Timone, 27, boulevard Jean-Moulin, 13385 Marseille Cedex 05. 2. Cabinet de diététique et nutrition, 24, rue du Dr Bonnet, 76290 Montivilliers.

Correspondance : Nicole Darmon, à l’adresse ci-dessus. Email : [email protected]

304 Cah. Nutr. Diét., 43, 6, 2008

diététique

En France, la PL a d’abord été utilisée pour tester la cohé-rence, la faisabilité et le coût des apports nutritionnelsconseillés (ANC) pour la population française [7, 8]. Il aainsi été démontré qu’il était impossible de couvrirl’ensemble des ANC pour l’adulte en consommant moinsde 1 500 kcal par jour (à moins bien sûr de recourir à dessuppléments ou à des aliments enrichis), et en dépensantmoins de 3,5 € par jour [9]. Plus récemment, la PL a étéutilisée pour élaborer des recommandations diététiquesspécifiques à l’aide alimentaire en France [10].Un article destiné aux pédiatres et aux autres profession-nels de santé concernés par l’alimentation infantile décritprécisément comment utiliser la PL pour concevoir uneration suffisamment dense en nutriments lors de la diver-sification alimentaire [11]. En effet, à partir de 6 mois,l’allaitement exclusif devient insuffisant pour couvrir latotalité des besoins du nourrisson, en fer et en zinc notam-ment. Il s’agit alors de déterminer les rations les mieuxadaptées compte tenu des ressources alimentaires dispo-nibles. Si de telles rations existent, la PL permet d’identi-fier aussi les moins onéreuses d’entre elles.La PL a également été utilisée pour identifier des mélangesd’huiles végétales nutritionnellement adéquats [12]. Eneffet, plusieurs études suggèrent que les recommandationssur les lipides sont particulièrement difficiles à respecter etsont parfois difficilement compatibles avec d’autresrecommandations. En particulier, il n’est pas facile d’avoirà la fois des apports élevés en vitamine E (12 mg/j sontrecommandés chez l’adulte), des apports suffisants enacide alpha-linolénique (oméga-3) et des apports modérésen acide linoléique oméga-6 (avec un rapport oméga-6/oméga-3 égal à 5 maximum). La mise en œuvre d’un trèssimple modèle de PL a montré que le mélange optimal lemoins cher était composé de 80 % d’huile de colza et20 % d’huile de tournesol [12]. L’utilisation de cemélange, maintenant conseillé dans le cadre de la restau-ration collective [13] est nutritionnellement compatibleavec l’utilisation parallèle d’un certain nombre d’autreshuiles pures, comme l’huile de noix et l’huile d’olive parexemple.

La programmation linéaire : quel est le principe ?

La PL est une méthode mathématique qui permet de trou-ver la meilleure solution possible à un ensemble d’équa-tions et inéquations linéaires (encadré 1). Appliquée à lanutrition, elle permet de résoudre un problème mathéma-tique complexe : identifier des combinaisons d’alimentsqui respectent un ensemble de recommandations nutri-tionnelles (fig. 1).L’exercice consiste, à partir d’une table de compositionnutritionnelle des aliments (et éventuellement de leur prix),à sélectionner une combinaison de ceux-ci respectant unensemble de contraintes. Les combinaisons d’alimentsobtenues peuvent ainsi constituer un repas, un panier,une journée alimentaire, ou une série de repas ou jour-nées alimentaires. Les contraintes introduites dans lesmodèles sont de deux types : – des contraintes sur les nutriments, basées sur les recom-mandations nutritionnelles, et qui garantissent la qualiténutritionnelle de la combinaison ;

– des contraintes sur les aliments, qui garantissent lastructure et l’acceptabilité sociale ou individuelle de lacombinaison d’aliments sélectionnée.Les contraintes sur les aliments sont aussi importantes quecelles sur les nutriments. En effet, si l’on cherche parexemple, à respecter tous les ANC au plus bas prix pos-sible, et que seules des contraintes nutritionnelles sontintroduites dans le modèle, l’ordinateur proposera unmélange très peu cher constitué de quantités importantesd’un petit nombre d’aliments d’excellent rapport qualiténutritionnelle/prix, tels que les lentilles, le foie de volaille,les sardines, l’huile de colza, le concentré de tomates, lechou vert, les pâtes et le lait. Bien que cette combinaisond’aliments réponde strictement aux contraintes nutrition-nelles imposées dans le modèle, elle ne peut pas êtreconseillée dans le cadre d’une alimentation équilibrée etvariée, car elle n’est pas socialement acceptable. Ainsi queSmith l’avait noté dès 1959 [3], s’il est aisé de concevoirdes rations nutritionnellement équilibrées à coût minimisé(les recommandations nutritionnelles et le coût des rationssont facilement convertibles en contraintes chiffrées), il estplus délicat de concevoir des rations qui aient une bonneacceptabilité sociale et gustative, car cela nécessited’objectiver les habitudes et préférences alimentaires parune série d’équations. Ceci justifie d’intégrer, dans lesmodèles de PL, des contraintes sur les aliments et lesgroupes d’aliments, en introduisant notamment une taillemaximale de portion pour chaque aliment, en limitant lapart respective de chaque groupe et sous-groupe d’ali-ments dans la ration modélisée, ou en interdisant lerecours à certains aliments trop rarement consommés ourefusés par certaines personnes pour diverses raisons.Ainsi, des exigences d’ordre nutritionnel, social, culturelou même économique, sont préalablement définies. Ellessont ensuite traduites sous la forme de contraintes chif-frées. L’optimisation consiste alors à identifier La combi-naison d’aliments qui répondra le mieux à un problèmedonné, tout en respectant l’ensemble de ces contraintesdans un souci de réalisme et de pertinence.

La programmation linéaire : comment faire ?

Une méthode de résolution graphique est possible tantqu’il n’y a que deux variables, c’est-à-dire deux aliments,mais dès qu’il y a plus de variables, il faut raisonner dansun espace contenant autant de dimensions qu’il y a d’ali-ments pouvant être utilisés. En pratique, la solution estimpossible à trouver sans l’aide d’un ordinateur. Heureu-sement, des logiciels simples sont actuellement disponibles etpermettent de résoudre rapidement ces problèmes en fai-sant appel à la programmation linéaire. Toutes lescontraintes nutritionnelles sont alors prises en comptesimultanément, y compris les plus difficiles à respecter. Larésolution de ce type de problème fait appel à l’algorithmedu simplex, intégré dans divers logiciels conviviaux, Excelnotamment, qui le propose à travers la fonction appelée« solveur » dans le menu déroulant de ses « outils ». Leschoses deviennent alors très simples : soit une solutionexiste et elle est disponible après quelques secondes decalcul par la machine, soit le problème est mathématique-ment infaisable et l’utilisateur est immédiatement prévenuqu’il n’y a pas de solution au problème qu’il a posé. Dans

Cah. Nutr. Diét., 43, 6, 2008 305

diététique

Encadré 1.Un peu de mathématiques !

L’objectif de la PL est de résoudre un système de plusieurs équations (ou inéquations) à plusieurs inconnues. Plus spécifiquement, il s’agit d’optimiser une fonction linéaire tout en respectant un ensemble de contraintes linéaires elles aussi.La fonction optimisée est appelée fonction objectif : y = ax1 + bx2+ cx3 …Optimiser y, c’est trouver les valeurs des variables xi qui permettent d’atteindre la valeur de y la plus faible (minimisation) ou la plus élevée (maximisation) tout en respectant des contraintes linéaires sur ces variables, du type :x1 > A ;x2 < B ; αx1 + βx2 + κ x3... < C …En nutrition : les variables xi sont les quantités d’aliments que l’on cherche, et qui seront introduites dans le panier modélisé à l’issue du processus d’optimisation.Optimiser y = ax1 + bx2+ cx3 …, revient à trouver La combinaison des aliments xi qui permet d’atteindre la valeur optimale de y (par exemple le prix minimum ou la quantité minimale de kilocalories) tout en respectant l’ensemble des contraintes qui ont été introduites dans le modèle (contraintes sur les nutriments, les aliments, le prix, le poids des rations, etc.).

Ainsi que le montre la figure 1, pour concevoir un modèle de PL, il faut :1. Disposer d’une liste d’aliments dont on connaît la composition nutritionnelle et éventuellement le prix, et pour lesquels on dispose d’informations sur la façon dont ils sont consommés (en particulier la portion maximale acceptable doit être connue pour chaque aliment de la liste). Cette liste d’aliments disponibles pour la modélisation constituera la liste des variables du modèle. Ces variables sont souvent appelées variables décisionnelles.2. Dresser la liste des exigences que l’on désire imposer au panier optimisé, en termes de qualité nutrition-nelle et d’acceptabilité gustative, sociale et/ou individuelle. Ces exigences seront traduites en contraintes chiffrées sur les nutriments et les aliments, puis introduites dans le modèle.3. Identifier précisément la question à laquelle on cherche à répondre. Cette question, qui constituera la fonction objectif du modèle, doit toujours être formulée en termes d’optimisation, c’est-à-dire soit une minimisation (par exemple, quelle est la quantité minimale d’énergie requise pour respecter toutes les contraintes du modèle avec les aliments disponibles ?) soit une maximisation (par exemple, quelle teneur maximale en un nutriment donné puis-je espérer atteindre dans le panier optimisé, compte tenu des ali-ments disponibles et des contraintes introduites).4. Une fois le modèle de PL conçu, l’optimisation indique s’il existe ou non une solution au problème posé, et, s’il en existe au moins une, identifie la meilleure d’entre elles. Par définition, le processus d’optimisation consiste à sélectionner la combinaison des aliments à introduire dans le panier modélisé pour atteindre la valeur optimale (maximale ou minimale) de la fonction objective choisie.

Figure 1.Représentation schématique du principe de la programmation linéaire.

ANC : Apports Nutritionnels Conseillés pour la population française.

BNM : Besoin Nutritionnel Moyen, correspond à 77 % des ANC.

Sélection des aliments à introduire dans le panier optimisé et de leurs poids :

Parfois, l’optimisation est impossible…

➢ Liste d’alimentsComposition nutritionnelle, prixDonnées sur la consommation de ces aliments

➢ Sur les nutriments :- Recommandations de type ANC, BNM

:- Recommandations basées sur les aliments, type PNNS- Habitudes alimentaires individuelles ou collectives (quantités max, taille des portions, équilibre entre groupes d’aliments…)

➢ Autres : prix, poids, énergie …

3. QUESTION POSÉE = fonction objectif

4. OPTIMISATION

1. ALIMENTS = variables

2. EXIGENCES = contraintes

-

➢ Sur les aliments :--

Prix minimal ? Énergie minimale ? Écart minimal avec un panier existant ou avec des « habitudes » identifiés ?

306 Cah. Nutr. Diét., 43, 6, 2008

diététique

ce dernier cas, les contraintes infaisables ou incompatiblesentre elles lui sont signalées.Pour comprendre « comment ça marche », le mieux est departir d’un exemple simple, comprenant deux alimentsseulement, ce qui permet de résoudre un même problèmetout d’abord de façon graphique, puis à l’aide de la PL.Un exemple simple est ainsi proposé dans l’encadré 2. Ils’agit d’identifier une collation nutritionnellement équili-brée pour une adolescente de 14 ans. Constituée decompote multi-fruits et de fromage blanc (à 20 % MG/MS) de compositions nutritionnelles connues, cette collationdevra apporter au moins 10 % des apports nutritionnelsconseillés (ANC) en fibres, en calcium et en vitamine C, etpas plus de 10 % des apports maximum tolérés (AMT) enacides gras saturés et en glucides simples ajoutés, dans unmaximum de 200 kcal (soit 10 % d’un apport énergétiquetotal (AET) de 2 000 kcal/j).Comme ce problème de PL ne comprend que deux ali-ments, il est possible de le résoudre aussi bien de façongraphique (encadré 3) qu’en faisant appel à la fonction deprogrammation linéaire appelée « solveur » dans Excel(encadré 4).Chaque modèle de PL répond à une question particulièreet doit donc être adapté en fonction des objectifs spéci-fiques recherchés. Ainsi, dans l’exemple de la collationcompote-fromage blanc, on peut imaginer, que cemélange soit proposé dans une petite gourde à emporteret que l’industriel choisisse, soit de communiquer sur le

bon goût de fruit de cette collation, soit sur un nouveaufromage blanc aromatisé aux fruits. Dans la premièrehypothèse, il faudrait introduire une contrainte qui imposeque la proportion de compote soit supérieure à celle dufromage blanc ; dans la seconde hypothèse, ce seraitl’inverse. L’industriel peut aussi introduire une nouvelledonnée : le coût de cette collation mixte. Quel est lemélange le moins cher qui respecte tout de mêmel’ensemble des exigences nutritionnelles ? L’industrielpourra aussi introduire des contraintes d’ordre technique,par exemple imposer une proportion minimale d’uningrédient donné, qu’on sait indispensable pour atteindreune texture convenable. Les contraintes les plus variéespeuvent être envisagées, du moment qu’il est possible deles exprimer sous la forme d’une équation linéaire1. Il estégalement possible d’utiliser le solveur pour connaîtrequelle teneur maximale ou minimale en un nutrimentdonné il est concevable d’atteindre, compte tenu desingrédients (i.e. variables) disponibles et des contraintesimposées. Il suffit de choisir la teneur totale en ce nutri-

Encadré 2.Un problème simple…

Nous cherchons s’il est possible d’obtenir une collation nutritionnellement équilibrée pour une adolescente de 14 ans en associant une compote multi-fruits avec du fromage blanc. Si c’est possible, nous cherchons quelle est la solution (c’est-à-dire la combinaison optimale des deux aliments) qui permet de respecter toutes nos exigences (i.e. les contraintes) pour la quantité d’énergie la plus faible (i.e. minimisation de l’énergie).Dans cet exemple, nous considérons que la collation ne doit pas dépasser 10 % d’un apport énergétique total (AET) de 2 000 kcal/j, tout en apportant plus de 10 % des apports nutritionnels conseillés (ANC) en fibres (ANC fibres=25g/j), calcium (ANC calcium = 1 200 mg/j) et vitamine C (ANC vitamine C = 110 mg/j), mais moins de 10% des apports maximum tolérés (AMT) en acides gras saturés (AMT AGS = 22 g/j) et en glucides simples ajoutés (AMT GSA = 50 g/j).Dans ce modèle :– les variables sont les quantités (que l’on cherche) de compote (Xc) et de fromage blanc (Xfb) dans le mélange optimisé;– les contraintes nutritionnelles sont les suivantes :[En c] Xc + [En fb] Xfb ≤ 200 kcal[Fib c] Xc + [Fib fb] Xfb ≥ 2,5 g[Ca c] Xc + [Ca fb] Xfb ≥ 120 mg[VitC c] Xc + [VitC fb] Xfb ≥ 11 mg[GSA c] Xc + [GSA fb] Xfb ≤ 5 g[AGS c] Xc + [AGS fb] Xfb ≤ 2,2 gavec :[En c] = kcal dans 1g de compote; [En fb] = kcal dans 1g de fromage blanc[Fib c] = g de fibres dans 1g de compote; [Fib fb] = g de fibres dans 1g de fromage blanc[Ca c] = mg de calcium dans 1g de compote; [Ca fb] = mg de calcium dans 1 g de fromage blanc[VitC c] = mg de vitamine C dans 1g de compote; [VitC fb] = mg de vitamine C dans 1 g de fromage blanc[GSA c] = g de glucides simples ajoutés dans 1g de compote; [GSA fb] = g de glucides simples ajoutés dans 1 g de fromage blanc[AGS c] = g d’acides gras saturés dans 1g de compote; [AGS fb]= g d’acides gras saturés dans 1 g de fromage blanc– les contraintes d’acceptabilité sont limitées à une seule contrainte dans ce modèle : que la quantité totale de la collation ne dépasse pas 200g, c’est à dire :Xc + Xfb ≤ 200 g

1 Une fonction Y de plusieurs variables X1, X2…Xn est dite linéaire si elle s’exprime de la façon suivante : Y = a0 + a1.X1 + a2.X2 … + an.Xn où a0, a1, a2 … an sont des constantes.De la même façon, une contrainte sur plusieurs variables X1, X2…Xn est linéaire si elle s’exprime ainsi : b1.X1 + b2.X2 + … bn.Xn ≥ b0 où b0, b1, b2 … bn sont des constantes.En fait, de nombreuses équations non linéaires pourront être facilement transfor-mées en équations linéaires par un changement d’expression approprié. Par exem-ple, [x/y ≤ d] n’est pas linéaire car il y a une inconnue au dénominateur), mais est équivalent à [x – dy ≤ 0], qui est linéaire.

Cah. Nutr. Diét., 43, 6, 2008 307

diététique

ment d’intérêt comme fonction objectif du modèle et demaximiser la fonction. De même, s’il n’y a pas de solutionà un modèle, parce qu’il est impossible, par exemple,d’atteindre la quantité requise en un nutriment protecteurou de rester en-deçà de la teneur maximale imposée pourun nutriment délétère, il est aisé de jouer avec ces valeurspour savoir à partir de quelle teneur en ces nutriments unesolution devient faisable.

La programmation linéaire : quelles limites ?

À partir de l’exemple très simple présenté dans lesencadrés 2 à 4, on peut voir à la fois tout l’intérêt de laPL mais aussi ses limites. Son intérêt réside non seule-ment dans sa capacité à résoudre des problèmes complexesmais aussi à indiquer de façon rigoureuse si oui ou non, il

est possible de respecter un ensemble de contraintesnutritionnelles dans un contexte alimentaire donné (listed’aliments disponibles, caractéristiques des aliments,acceptabilité, habitudes de consommations, portionsmaximales, etc.). Un autre intérêt majeur est sa capacitéà identifier sans faille les nutriments limitants, c’est-à-direles recommandations nutritionnelles les plus difficiles àrespecter pour un individu ou une population donnée,dans un contexte alimentaire donné. Cette puissance faitaussi, paradoxalement, sa faiblesse puisque, comme pourtoute modélisation, les résultats obtenus dépendent totale-ment de la pertinence des modèles et de la qualité desdonnées. Par exemple, dans notre exemple, si la teneuren fibres de la compote avait été arrondie à 0,02 g/g aulieu de considérer la teneur vraie de 0,025 g/g, le solveuraurait conclu à l’absence de solution mathématique auproblème posé. Ainsi, plus encore que dans le cadre de laprescription diététique classique, les résultats obtenus par

Encadré 3.Une résolution graphique.

Le problème défini dans l’encadré 2 est un problème à 6 (in)équations (nos contraintes) et 2 inconnues (nos variables aliments). Puisque ce problème n’a que 2 inconnues, il est possible de le résoudre graphi-quement, en dessinant un plan orthogonal où chaque axe représente les différentes valeurs possibles de chaque variable (fig. 2). On dessine ensuite les 6 droites correspondant aux 6 équations. Chacune de ces droites va séparer le plan en deux zones : une zone dans laquelle se trouvent les combinaisons qui respec-tent la contrainte (i.e. l’inéquation) correspondante et la zone des combinaisons qui ne la respectent pas. Pour chaque contrainte, la zone des combinaisons qui ne respectent pas la contrainte est indiquée en grisée sur la fig. 2. On voit qu’il ne reste qu’une petite zone non grisée, à l’intérieur de laquelle se trouvent l’ensemble des solutions possibles, c’est-à-dire toutes les combinaisons de fromage blanc et de compote qui respectent les 6 contraintes imposées. Il s’en est donc fallu de peu pour qu’il n’y ait pas de solution à ce problème. Par exemple, si nous avions exigé une quantité totale de mélange plus faible que 200 g, ou une quantité de glucides simples ajoutés plus faible que 5 g, ou encore une quantité de fibres ou de calcium plus élevée que 10 % de l’ANC, il n’y aurait probablement pas eu de solution. Ces contraintes sont appelées contraintes actives car elles influen-cent directement la zone de faisabilité, et les nutriments correspondants à ces contraintes actives sont appe-lés nutriments limitants. En revanche, les contraintes qui n’influencent pas directement la zone de faisabilité sont appelées inactives, car elles sont automatiquement respectées quand les contraintes actives sont res-pectées elles aussi. C’est le cas, dans notre exemple, de la contrainte sur les AGS et de la contrainte sur la vitamine C. Néanmoins, si nous avions choisi pour variables un fromage blanc à teneur plus élevée en matières grasses et une compote moins riche en vitamine C, ces deux contraintes seraient elles aussi pro-bablement devenues actives. Avec des aliments de moins bonne qualité nutritionnelle, il n’y aurait donc sans doute pas eu de combinaison capable de respecter l’ensemble des contraintes.

Figure 2.Exemple de résolution graphique d’un modèle de programmation linéaire à deux variables

(fromage blanc, compote).

308 Cah. Nutr. Diét., 43, 6, 2008

diététique

Encadré 4.Une résolution par PL, grâce au solveur d’Excel.

L’outil « solveur » de Microsoft Excel permet de résoudre des modèles de PL, même s’ils sont relativement complexes et contiennent un grand nombre de variables et de contraintes. Son principe de fonctionnement est présenté ci-après, à partir du même exemple simple de mélange compote/fromage blanc. Nous verrons comment, une fois le problème correctement posé dans une feuille Excel, l’activation de la fonction d’opti-misation permet d’identifier en moins d’une seconde la combinaison des 2 aliments qui respecte toutes les contraintes pour la plus faible quantité d’énergie possible.Les 2 variables et les 6 contraintes sont les mêmes que dans la résolution graphique, et la fonction objectif, qui permet d’identifier LA meilleure des solutions en réponse à une question donnée (ici, quel est le mini-mum d’énergie requis ?) est la suivante :Minimiser Y = [En c] Xc + [En fb] XfbAvec : [En c] = kcal dans 1g de compote ; [En fb] = kcal dans 1g de fromage blancPour résoudre un problème de PL avec l’outil solveur, il faut procéder en 3 étapes :Étape 1. Construction de la feuille Excel (fig. 3)La première étape consiste à introduire toutes les informations nécessaires à la modélisation dans une feuille excel. La feuille correspondant à notre exemple est représentée en fig. 3.Le haut de la feuille (plage A1:H3) comporte la table de composition des aliments que l’on souhaite utiliser comme variables de la modélisation. Pour chaque variable (fromage blanc à 20% et compote allégée dans notre exemple), la table doit indiquer les teneurs en énergie par g d’aliment comestible (C2:C3), ainsi que les teneurs en nutriments : sucres ajoutés (D2:D3), AGS (E2:E3), fibres (F2:F3), vitamine C (G2:G3) et calcium (H2:H3). C’est aussi dans cette zone que l’on peut indiquer les portions maximales acceptables pour chaque aliment (B2:B3 dans notre exemple)1.

En dessous de cette table de composition, il faut créer une zone de calcul qui permet de calculer le contenu nutritionnel d’une combinaison des 2 variables (plage A5:H8 dans notre exemple), ainsi que son poids total et son contenu énergétique. À partir du poids de chaque variable dans la combinaison (B6:B7), les teneurs en énergie et en nutriments sont calculées en introduisant les formules appropriées dans la plage (C6:H7). À ce stade, ce sont des valeurs arbitraires qui sont utilisées pour les poids de chaque aliment entrant dans la combinaison. Dans notre exemple nous avons choisi d’introduire 10g de compote et 10g de fromage blanc, et la cellule C6 indique l’apport énergétique de 10g de fromage blanc, calculé par la formule (B6*C2). Toutes les autres cellules de la plage de calcul C6:H7 sont calculées de la sorte.Enfin, une ligne « total combinaison » (ligne 8) est également créée. Dans les cellules C8:H13, la fonction somme permet de calculer le poids total de la combinaison (B8), son contenu énergétique total (C8), ainsi que les teneurs totales dans les différents nutriments de la table (D8:H8). Par exemple, la teneur totale de la combinaison en fibres est calculée grâce à la formule SOMME (F6:F7) dans la cellule F8.Enfin, sur les deux dernières lignes (10 et 11), on indique les valeurs des recommandations nutritionnelles. Les valeurs minimales exigées dans la combinaison en fibres, vitamine C et calcium sont indiquées en F10:H10, et les valeurs maximales à ne pas dépasser dans la combinaison en sucres ajoutés et en AGS sont indiquées en D11:E11. Contrairement à la zone de calcul précédente, ce ne sont pas des formules qui sont introduites ici, mais des valeurs absolues dérivées de recommandations officielles (voir plus haut).

Figure 3.Construction de la feuille Excel contenant les informations nécessaires à la modélisation

(étape 1).

Cah. Nutr. Diét., 43, 6, 2008 309

diététique

Encadré 4.Une résolution par PL, grâce au solveur d’Excel. (suite)

Étape 2. Construction du modèle dans la boîte de dialogue du solveur (fig. 4)La deuxième étape consiste à ouvrir la boîte de dialogue du solveur pour y construire le modèle de PL. Toutes les caractéristiques du modèle doivent être indiquées au solveur : les variables, les contraintes, et la fonction objectif. Il faut tout d’abord se rendre dans l’onglet Outils de la barre d’excel et sélectionner Solveur2. Une fois dans la boîte de dialogue Paramètres du solveur, sélectionner Options, et une fois dans cette boîte de dialogue, cocher Modèle supposé linéaire3 et Supposé non-négatif4. Cliquer OK, ce qui permet de retourner dans la fenêtre Paramètres du solveur pour y entrer tous les paramètres du modèle, comme indiqué figure 4 pour notre exemple.

Tout d’abord, une Cellule cible à définir doit être choisie. Elle correspond à la fonction objectif du modèle. Dans notre cas, c’est la cellule C8, qui représente l’énergie totale de combinaison. Comme on cherche à la minimiser, il faut cocher Min.Il faut ensuite indiquer quelles sont les variables. Dans Cellules variables, introduire la zone contenant les variables décisionnelles (B6:B7 dans notre exemple)5. Ces cellules contiennent les variables décisionnelles que le programme pourra modifier à sa guise pour identifier LA combinaison qui respecte toutes les contraintes pour le moins d’énergie possible6.Il faut enfin définir les contraintes en utilisant l’option Ajouter, à droite de la fenêtre Contraintes. Cliquer sur cette option, ouvre la fenêtre Ajouter une contrainte dans laquelle les cellules soumises à une contrainte donnée sont indiquées. Dans notre exemple, la première contrainte consiste à limiter à 200 g maximum le poids total de la combinaison. Pour rentrer cette contrainte, dans la fenêtre Ajouter une contrainte on a indiqué la cellule B8 dans la fenêtre Cellule, on a choisi <= dans la boîte centrale7, et on a saisi la valeur 200 dans la fenêtre Contrainte. Cliquer ensuite OK, ce qui permet de retourner dans la fenêtre Ajouter une contrainte. La contrainte que l’on vient d’ajouter apparaît alors dans la fenêtre Contraintes. On peut alors ajouter une autre contrainte, en suivant le même processus. C’est ainsi que les autres contraintes ont été ajoutées. Tout d’abord les deux contraintes qui consistaient à maintenir le contenu total de la combi-naison en sucres ajoutés et en AGS en dessous des valeurs maximales recommandées (D8:E8 <= D11:E11), puis les trois contraintes qui imposaient des valeurs minimales à atteindre pour les teneurs en fibres, vitamine C et calcium (F8:H8 >= F10:H10).Une fois que toutes les caractéristiques du modèle sont spécifiées, il suffit de cliquer sur Résoudre pour obtenir le résultat de l’optimisation (fig. 4).

Figure 4.Introduction des paramètres du modèle dans la boîte de dialogue du solveur (étape 2).

310 Cah. Nutr. Diét., 43, 6, 2008

diététique

Encadré 4.Une résolution par PL, grâce au solveur d’Excel. (suite)

Étape 3. Résolution du modèle par le solveur (fig. 5)

Dans notre exemple, le solveur a trouvé immédiatement la solution optimale et l’indique par le message suivant : « le solveur a trouvé une solution satisfaisant toutes les contraintes et les conditions d’optimisa-tion ». La solution est directement indiquée dans les cellules (B6:B7). On peut en effet observer que les valeurs arbitraires initiales (10 g de chaque aliment) ont été remplacées dans la feuille par 90 g de fromage blanc et 100 g de compote, qui constituent donc LA solution optimale au problème posé. La quantité d’énergie minimale requise pour respecter toutes les contraintes avec ces deux aliments est de 161,7 kcal. Elle est indiquée dans la cellule cible de la fonction objective (C8).1 Le cas échéant, c’est aussi dans cette zone de la feuille qu’on indiquera le prix des aliments, si l’on est intéressé pasles aspects économiques. Le prix n’a pas été considéré dans notre exemple, mais si on souhaite l’introduire, il doit êtretraité de la même façon que les nutriments. C’est-à-dire, qu’il faut connaître le prix moyen de chaque aliment et l’intro-duire dans la table de composition, au même titre que les teneurs en différents nutriments. Cela permettra de calculerle prix total de la combinaison (de la même façon qu’on calcule sa teneur en un nutriment donné) et même de calculerle coût minimal, en choisissant le prix comme fonction objective.2 Il se peut que vous ne trouviez pas le « Solveur » dans la liste des « Outils ». Cela signifie que vous devez d’abord installercette fonction en sélectionnant « Macro complémentaire » dans la liste des « Outils », et en cochant la case« Complément solveur ».3 Il est indispensable de n’introduire dans les paramètres du solveur que des cellules contenant soit des constantes soitdes formules linéaires (voir note de bas de page n°1).4 Les variables, i.e. les poids des aliments introduits dans la combinaison optimale, ne doivent pas pouvoir prendre desvaleurs négatives, cela n’aurait aucun sens !5 Dans les modèles où les cellules correspondant aux variables ne sont pas contiguës sur la feuille, il faut les séparer pardes virgules6 Il est possible de spécifier jusqu’à 200 cellules variables. Les cellules variables doivent être associées directement ouindirectement à la cellule cible.7 Plusieurs types de relations peuvent être définies entre la cellule référencée et la valeur de la contrainte. Vous pouvezappliquer des contraintes à des cellules ajustables (modifiables), à la cellule cible ou à d’autres cellules liées directementou indirectement à la cellule cible.): <=, =, >=, ent ou bin. Quand on clique sur « ent », « entier » s’affiche dans la zoneContrainte. Ceci permet de résoudre des modèles de PL dont les variables sont exprimées en nombres entiers.

Figure 5.Résolution du modèle par le solveur (étape 3).

Cah. Nutr. Diét., 43, 6, 2008 311

diététique

PL sont extrêmement dépendants de la qualité des tablesalimentaires utilisées. Par exemple, un aliment dont lateneur en un nutriment limitant serait surestimée, ou sous-estimée, par la table de composition utilisée, serait injus-tement privilégié, ou au contraire discriminé, dans lesrations modélisées.Un autre facteur contribue à limiter l’application pratiquede la PL en diététique quotidienne : c’est le fait que lesaliments sélectionnés dans une ration modélisée sont pro-posés sous forme de grammages divers, parfois irréalistes(trop faibles ou trop élevés), alors que les « régimes » sonthabituellement prescrits sous la forme de portions entières,standard, d’aliments. Cette difficulté est cependant sur-montable. Ainsi, le problème des aliments introduits entrop grande quantité peut être facilement résolu en impo-sant à chaque aliment une taille de portion maximale, quipeut être égale à la portion standard ou à un multiple dela portion standard. En ce qui concerne le problème desaliments sélectionnés en trop petite quantité dans la rationoptimisée, on peut tenter de le résoudre soit en suppri-mant ces aliments de la liste des variables disponibles eten optimisant à nouveau, soit en supprimant ces alimentsde la ration modélisée et en estimant si la perte de nutri-ments associée à la suppression de ces petites quantitésd’aliments est nutritionnellement acceptable ou non. Si onjuge qu’elle est inacceptable, il faudra conseiller deconsommer l’aliment à une fréquence correspondant à laquantité introduite (si, par exemple, 14 g de saumon sontintroduits dans une ration journalière, cela revient àconseiller la consommation de 100 g de saumon parsemaine). De plus, il est possible avec le solveur d’Excelde résoudre des modèles dont quelques variables sontexprimées en nombres entiers (voir note de bas de pagen° 7 de l’encadré 4). C’est intéressant pour les alimentsqui sont surtout consommés sous forme de portion stan-dard, comme le yaourt par exemple. Il faudra dans ce casexprimer la composition nutritionnelle de ces alimentsnon pas par gramme d’aliment mais par portion d’ali-ment. Cependant, cela ralentit considérablement la réso-lution des problèmes, jusqu’à parfois les rendre insolublesquand cette contrainte « entier » est appliquée à un tropgrand nombre de variables.Enfin, il est possible de se procurer une version plus éla-borée de solveur, fonctionnant également sous Excel,mais nécessitant l’achat d’une licence auprès de la sociétéFrontline System, Inc. Alors que le solveur « de base »permet de travailler avec un nombre maximal de200 variables en nombres réels et quelques variables ennombre entiers, ce solveur professionnel appelé premiumsolver platform peut gérer des modèles contenant plu-sieurs milliers de variables en nombre réels, et de l’ordrede 200 variables en nombres entiers.

La programmation linéaire : pour mieux faire…

La PL est un outil puissant pour résoudre de façon rigou-reuse de nombreuses questions de nutrition humaine. Ellepermet l’analyse de situations alimentaires complexes etsuggère des solutions adaptées aux contraintes [14, 15].Elle participe à la recherche sur la faisabilité des recom-mandations nutritionnelles [16] et sur les déterminants deschoix alimentaires [17]. Elle permet de définir de façon

rigoureuse les recommandations basées sur les groupesd’aliments (Food-Based Dietary Guidelines en anglais)[18]. Elle s’avère également utile dans le contexte actuelde la définition de profils nutritionnels pour réguler l’accèsaux allégations nutritionnelles et de santé [19]. D’une part,elle participe à la validation du concept même de profilnutritionnel, c’est-à-dire la possibilité, à partir de lacomposition nutritionnelle d’un aliment, d’estimer sacapacité à favoriser, ou non, l’équilibre nutritionnel global[20, 21]. D’autre part, l’utilisation du solveur pourrait êtreutile aux industriels pour identifier rapidement des formu-lations capables de répondre aux exigences nutritionnellesqui seront bientôt définies à l’échelon européen.Elle offre aussi la possibilité de développer des approchesdiététiques nouvelles, quantitatives et personnalisées [22].Ainsi, dans le cadre d’une prescription personnalisée, laPL peut aider à proposer aux patients des menus ou jour-nées alimentaires au plus près de leurs préférences ethabitudes alimentaires. Ceci est possible en restreignant laliste des variables disponibles aux aliments acceptés parchaque patient, et en minimisant directement l’écart entrel’alimentation effective du patient (obtenue par interroga-toire) et le régime proposé par le programme. Ainsi, lerégime proposé est adapté au mieux aux habitudes et pré-férences du patient tout en respectant l’ensemble descontraintes nutritionnelles. Dans le cas où il n’y a pas desolution faisable, ceci constitue un argument fort pourexpliquer au patient l’intérêt de faire évoluer ses habitudesalimentaires en introduisant notamment dans son réper-toire alimentaire des aliments qu’il avait rejetés jusqu’’ici.Intervient alors le savoir faire du professionnel… il met àla disposition de son patient des astuces, des moyensadaptés à ses ressources pour finalement trouver des solu-tions en collaboration avec le patient. L’ordinateur est uneaide, l’humain reste indispensable… Outil performant,trop peu connu, la PL mérite vraiment qu’on s’y attarde.

Conflit d’intérêt

L’auteur déclare n’avoir aucun conflit d’intérêt en rapportau contenu de cet article.

Résumé

La programmation linéaire (PL) permet de concevoir, àpartir d’une liste d’aliments de composition nutritionnelleconnue, des rations alimentaires qui respectent un ensemblede recommandations nutritionnelles tout en répondant àun certain nombre d’exigences liées au budget, aux préfé-rences ou aux habitudes alimentaires. À travers la fonctionappelée « solveur » dans le menu déroulant de ses « outils »,le logiciel Excel permet de résoudre des problèmes de PL.Le principe de la PL et sa mise en application pratiquesont ici exposés de façon détaillée à partir d’un exemplesimple, basé sur deux aliments seulement. L’énumérationdes nombreuses utilisations possibles de la PL en nutritionhumaine met en évidence l’intérêt de cet outil pourprendre en compte l’aspect fondamentalement multifacto-riel des problèmes posés dans ce domaine, en particulierl’existence de nombreux aliments constitués de nombreuxnutriments et la grande diversité des comportements etdes contextes alimentaires.

Mots-clés : Modélisation – Recommandations nutrition-nelles – Contraintes – Budget – Acceptabilité.

312 Cah. Nutr. Diét., 43, 6, 2008

diététique

Abstract

Linear programming (LP) makes it possible to devise,from a list of foods of known nutritional composition,food rations which conform to a set of nutritionalrecommendations whilst satisfying various require-ments as regards cost, preferences and eating habits.Using the “solver” function in the “Tools” drop-downmenu, the Excel program can solve LP problems. Theprinciple of LP and its practical implementation areexplained here in detail using a simple example basedon just two foods. The listing of numerous possibleuses of LP in human nutrition illustrates the value ofthis tool to take account of the fundamentally multi-factorial aspect of the problems posed in this domain,in particular the existence of numerous foods made upof numerous nutrients and the wide diversity of humandietary behaviours and food availability contexts.

Key-words: Dietary modelling – Nutritional recommen-dations – Constraints – Food budget – Acceptability.

Bibliographie

[1] Stigler G.J. – The cost of subsistence. J. Farm Econ.,1945, 303-314.

[2] Dantzig G.B. – The diet problem. Interfaces, 2002, 20,43-47.

[3] Smith V.E. – Linear programming models for the deter-mination of palatable human diets. J. Farm Econ., 1959,31, 272-283.

[4] Foytik J. – Very low-cost nutritious diet plans designed bylinear programming. J. Nutr. Educ., 1981, 13, 63-66.

[5] Lareo L.R., Gracia B.N., Fajardo L. – From food basketto food security. The food factor in nutritional sur-veillance. Arch. Latinoam. Nutr., 1990, 40, 22-43.

[6] Sklan D., Dariel I. – Diet planning for humans usingmixed-integer linear programming. Br. J. Nutr., 1993,70, 27-35.

[7] Darmon N., Briend A. – Consommations alimentaires,ANC et modélisation : utilisation de la programmationlinéaire. In : « Apports nutritionnels conseillés pour lapopulation française. » Martin A. (ed), 3e édition édition.Lavoisier, Paris, 2001, 452-457.

[8] Darmon N., Briend A. – Équilibre nutritionnel et précaritésocioéconomique. In : « Apports nutritionnels conseilléspour la population française. » Martin A. (ed), 3e éditionédition. Lavoisier, Paris, 2001, 460-461.

[9] Darmon N., Ferguson E.L., Briend A. – Impact of a costconstraint on nutritionally adequate food choices forFrench women: an analysis by linear programming. J.Nutr Educ. Behav., 2006, 38, 82-90.

[10] Rambeloson Z.J., Darmon N., Ferguson E.L. – Linearprogramming can help identify practical solutions toimprove the nutritional quality of food aid. Public HealthNutr, 2008, 11, 395-404.

[11] Briend A., Darmon N., Ferguson E., Erhardt J.G. –Linear programming: a mathematical tool for analyzingand optimizing children’s diets during the complementaryfeeding period. J. Pediatr. Gastroenterol. Nutr., 2003,36, 12-22.

[12] Darmon N., Darmon M., Ferguson E. – Identification ofnutritionally adequate mixtures of vegetable oils by linearprogramming. J. Hum. Nutr. Diet., 2006, 19, 59-69.

[13] GEMRCN (Groupe d’Étude des Marchés de RestaurationCollective et de Nutrition), ministère de l’Économied.F.e.d.l.M.D.d.A.J.O.E.d.l.P. – Recommandation rela-tive à la nutrition. Recommandation du 4 mai 2007(N°J5-07), 2007, Collection marchés publics, nouvelleédition 2007, 1-69. http://www.finances.gouv.fr/directions_services/daj/guide/gpem/nutrition/nutrition.pdf

[14] Dewey K.G., Cohen R.J., Rollins N.C. – Informal Wor-king Group on Feeding of Nonbreastfed Children. WHOtechnical background paper: feeding of nonbreastfed chil-dren from 6 to 24 months of age in developing countries.Food Nutr. Bull., 2004, 25, 377-402.

[15] Ferguson E.L., Briend A., Darmon N. – Can optimalcombinations of local foods achieve the nutrient densityof the F100 catch-up diet for severe malnutrition? J.Pediatr. Gastroenterol. Nutr., 2008, 46, 447-452.

[16] Gao X., Wilde P.E., Lichtenstein A.H., Bermudez O.I.,Tucker K.L. – The maximal amount of dietary alpha-toco-pherol intake in U.S. adults (NHANES 2001-2002). J.Nutr., 2006, 136, 1021-1026.

[17] Darmon N., Ferguson E.L., Briend A. – A cost constraintalone has adverse effects on food selection and nutrientdensity: an analysis of human diets by linear program-ming. J. Nutr., 2002, 132, 3764-3771.

[18] Ferguson E.L., Darmon N., Fahmida U., Fitriyanti S.,Harper T.B., Premachandra I.M. – Design of optimalfood-based complementary feeding recommendations andidentification of key 'problem nutrients' using goal pro-gramming. J. Nutr., 2006, 136, 2399-2404.

[19] The European Parliament and the Council of the Euro-pean Union. – Regulation (EC) No 1924/2006 of theEuropean Parliament and of the Council of 20 December2006 on nutrition and health claims made on foods. Offi-cial Journal of the European Union, 2006, L 404, 9-25.

[20] Maillot M., Ferguson E.L., Drewnowski A., Darmon N. –Nutrient profiling can help identify foods of good nutritio-nal quality for their price: a validation study with linearprogramming. J. Nutr., 2008, 138, 1107-1113.

[21] Darmon N., Vieux F., Maillot M., Volatier J.L., Martin A.– Les profils nutritionnels permettent de classer les ali-ments en fonction de leur aptitude à favoriser l’équilibrenutritionnel global : résultats d’une approche par modéli-sation basée sur l’exemple du système SAIN, LIM. Nutr.Clin. Métab., 22 (Suppl. 1), S96.

[22] Maillot M., Vieux F., Ferguson E., Amiot-Carlin M.J.,Volatier J.L., Darmon N. – Modelling the feasibility ofnutritional recommendations at the individual level. Proc.Nutr. Soc., 2008, 67, E168.