• Aucun résultat trouvé

Assemblage de vins sous contraintes

N/A
N/A
Protected

Academic year: 2021

Partager "Assemblage de vins sous contraintes"

Copied!
11
0
0

Texte intégral

(1)

HAL Id: hal-02745194

https://hal.inrae.fr/hal-02745194

Submitted on 3 Jun 2020

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Assemblage de vins sous contraintes

Philippe Vismara, Remi Coletta, Gilles Trombettoni

To cite this version:

Philippe Vismara, Remi Coletta, Gilles Trombettoni. Assemblage de vins sous contraintes. 9. Journées Francophones de Programmation par Contraintes (JFPC 2013), Jun 2013, Aix-en-Provence, France.

356 p. �hal-02745194�

(2)

Actes JFPC 2013

Assemblage de vins sous contraintes

Philippe Vismara 1,2 Remi Coletta 1 Gilles Trombettoni 1

1 LIRMM, UMR5506 Universit´ e Montpellier II - CNRS, Montpellier, France

2 MISTEA, UMR729 Montpellier SupAgro - INRA, Montpellier, France {Philippe.Vismara,Remi.Coletta,Gilles.Trombettoni}@lirmm.fr

R´ esum´ e

En œnologie, l’assemblage consiste ` a m´ elanger plu- sieurs cuv´ ees afin d’obtenir un vin cible. Des progr` es dans l’analyse des arˆ omes permettent aujourd’hui de mesurer un ensemble de compos´ es chimiques influen¸ cant le goˆ ut d’un vin. Il devient ainsi possible de concevoir un outil d’aide ` a la d´ ecision pour le probl` eme suivant : ´ etant donn´ e un ensemble de vins cibles ` a produire, quelles quantit´ es doit-on pr´ elever dans chaque cuv´ ee afin de pro- duire des vins qui respectent des contraintes de concen- tration en arˆ omes, de volumes, de degr´ e alcoolique et de prix. L’article d´ ecrit la mod´ elisation de ce probl` eme sous forme d’une optimisation Min-Max (pour minimiser les

´

ecarts obtenus avec les concentrations souhait´ ees pour chaque crit` ere aromatique) sous contraintes num´ eriques lin´ eaires et quadratiques, et son traitement efficace avec le branch and bound ` a intervalles de Ibex.

Abstract

Assemblage consists in blending base wines in order to create a target wine. Recent advances in aroma ana- lysis allow us to measure chemical compounds impacting the taste of wines. This chemical analysis makes it pos- sible to design a decision tool for the following problem : given a set of target wines, determine which volumes must be extracted in each cuv´ ee to produce wines that satisfy constraints on aroma concentration, volumes, al- cohol levels and price. This paper describes the modeling of wine assemblage as a non linear constrained Min-Max problem (minimizing the gap to the desired concentra- tions for every aromatic criterion) efficiently handled by the Ibex interval branch and bound.

1 Introduction

L’assemblage est l’art de m´ elanger subtilement des vins de diff´ erentes parcelles et/ou de diff´ erents c´ e- pages, chacun apportant ses propres sp´ ecificit´ es. Le choix des assemblages ´ elabor´ es est g´ en´ eralement effec- tu´ e par des œnologues. Si la qualit´ e de leur travail est

in´ egalable, une limite forte dans le nombre de d´ egus- tations quotidiennes tient ` a la saturation des goˆ uts.

C’est pourquoi la soci´ et´ e Nyseos, qui nous a soumis ce probl` eme, propose des outils d’analyse chimique per- mettant de soulager l’œnologue d’une partie du tra- vail de d´ egustation. Ces outils analysent les arˆ omes d’un vin en mesurant un ensemble de compos´ es chi- miques qui influencent le goˆ ut du vin [6]. Il devient ainsi possible de concevoir un outil d’aide ` a la d´ ecision pour le probl` eme suivant : ´ etant donn´ e un ensemble de vins cibles ` a produire, quelles quantit´ es doit-on pr´ ele- ver dans chaque cuv´ ee pour produire des vins qui res- pectent des contraintes de concentration en arˆ omes, de volumes, de degr´ e alcoolique et de prix.

Moore et Griffin ont montr´ e que la concentration en arˆ omes d’un m´ elange de vins ob´ eit ` a des ´ equations lin´ eaires [10]. Cependant, d’autres imp´ eratifs d’assem- blage peuvent imposer des contraintes non lin´ eaires.

C’est notamment le cas pour la pr´ ediction de la cou- leur d’un vin cible en fonction de la couleur des vins de base. Mˆ eme si la mod´ elisation de cette contrainte n’est pas encore aboutie, nous savons d´ ej` a qu’elle ne sera pas lin´ eaire. Ce r´ esultat est d’ailleurs confirm´ e par d’autres ´ etudes [7]. Une autre difficult´ e provient du fait qu’il n’est pas possible de transvaser une trop faible quantit´ e de vin entre deux cuves ` a cause du vo- lume in´ evitablement perdu dans les tuyaux et du coˆ ut des manipulations. Comme nous le montrons dans l’ar- ticle, cela conduit ` a d´ efinir une contrainte disjonctive qui peut ˆ etre mod´ elis´ ee par des variables bool´ eennes ou des contraintes non lin´ eaires.

La principale ´ etude sur l’aide ` a l’assemblage de vin a ´ et´ e publi´ ee dans [7]. Les auteurs utilisent un r´ eseau de neurones pour d´ eterminer les quantit´ es devant ˆ etre extraites de chaque cuve de base afin de concevoir un vin respectant des crit` eres aromatiques pr´ ed´ efinis.

Dans cette ´ etude, les concentrations en arˆ omes n’ont

pas ´ et´ e mesur´ ees chimiquement mais ´ evalu´ ees gusta-

(3)

tivement par un panel de personnes (´ etudiants). Le r´ eseau de neurones est utilis´ e pour r´ ealiser une opti- misation multicrit` eres afin d’ajuster chaque arˆ ome. Il est ainsi difficile de comparer ce travail avec notre d´ e- marche dans la mesure o` u nous r´ ealisons une optimi- sation mono-crit` ere. Par ailleurs, [7] ne fournit aucune indication de performance (temps CPU).

Nous proposons dans cet article une mod´ elisation math´ ematique du probl` eme d’assemblage de vin. Le probl` eme se mod´ elise comme un programme non li- n´ eaire mixte (discret et continu) que nous transfor- mons en CSP num´ erique non lin´ eaire trait´ e par des m´ ethodes ` a intervalles. Pour minimiser, dans chaque vin cible, l’´ ecart entre les concentrations aromatiques souhait´ ees et celles obtenues, nous mod´ elisons ce pro- bl` eme d’optimisation ` a l’aide d’un Min-Max que nous parvenons ` a d´ ebarrasser de ses op´ erateurs valeur ab- solue et max. Le mod` ele a ´ et´ e particuli` erement ´ etudi´ e pour ˆ etre trait´ e efficacement par des m´ ethodes ` a in- tervalles. Nous montrons des premiers r´ esultats tr` es satisfaisants obtenus sur deux assemblages r´ eels.

2 Le probl` eme de l’assemblage de vins

Les ´ el´ ements permettant de d´ ecrire un probl` eme d’assemblage sont illustr´ es ` a la figure 1.

On dispose d’un ensemble de cuv´ ees de base, appe- l´ ees bases, num´ erot´ ees de 1 ` a B. On connaˆıt le volume vol b de chaque base b ∈ 1..B. Pour des raisons mat´ e- rielles, on ne peut pas toujours vider enti` erement un fond de cuve et l’on doit laisser un fond minimum not´ e s b (on a : 0 ≤ s b ≤ vol b ).

Toutes les bases sont analys´ ees afin de mesurer leur teneur en compos´ es aromatiques. Ces compos´ es sont num´ erot´ es de 1 ` a A et on notera c b,a la concentration en arˆ ome a dans la base b.

Un outil d’aide ` a l’assemblage doit permettre d’´ etu- dier globalement l’assemblage de plusieurs vins en pui- sant dans le mˆ eme ensemble de bases. On dispose donc d’un ensemble de vins cibles num´ erot´ es de 1 ` a W. Pour chaque vin w, on souhaite produire un volume de vin not´ e ˆ vol w . Ce volume peut cependant fluctuer jusqu’` a une borne maximale (resp. minimale) not´ ee vol + w (resp.

vol w ). Ces bornes permettent de ne pas produire un volume trop important pour ˆ etre vendu ou au contraire de garantir un volume qui a ´ et´ e command´ e. Au final, le volume V w du vin w devra ˆ etre le plus proche possible de ˆ vol w tout en respectant :

∀w ∈ 1..W, vol w ≤ V w ≤ vol + w (1) Chaque vin cible w ´ etant obtenu en assemblant du vin issu de plusieurs bases, on notera V w,b le volume de vin w provenant de la base b. Le volume total du

vol b

c b,a

a

b

w

vol + w

vol w s b

c + w,a a

ˆ c w,a

c w,a V w,b V w,1

V w

vol ˆ w

Figure 1 – L’assemblage de vins vin w est donc la somme de ces volumes partiels :

∀w ∈ 1..W, V w =

B

X

b=1

V w,b (2)

On doit veiller ` a ce que la somme des volumes soutir´ es dans une mˆ eme base b respecte les contraintes de vo- lume autoris´ e pour le surplus restant en fond de cuve.

On pose la contrainte :

∀b ∈ 1..B, s b ≤ vol b −

W

X

w=1

V w,b (3)

D’un point de vue pratique, il est impossible de sou- tirer un trop faible volume d’une cuve, notamment ` a cause du r´ esidu perdu dans les tuyaux. Si δ V d´ esigne ce volume minimal, on pose la contrainte disjonctive suivante :

∀w ∈ 1..W, ∀b ∈ 1..B, (V w,b = 0) ∨ (δ V ≤ V w,b ) (4)

En plus du volume souhait´ e, chaque vin cible est d´ e-

crit par un profil aromatique recherch´ e ` a l’int´ erieur de

plages bien d´ efinies. Pour chaque vin cible w, on no-

tera ˆ c w,a la concentration souhait´ ee en arˆ ome a. La

(4)

concentration minimale (resp. maximale) tol´ er´ ee sera not´ ee c w,a (resp. c + w,a ).

On peut donc exprimer le fait que la concentration C w,a en arˆ ome a du vin w doit ˆ etre comprise entre ces deux bornes : pour tout w ∈ 1..W et pour tout a ∈ 1..A, on a :

c w,a ≤ 1 V w

B

X

b=1

(V w,b . c b,a ) ≤ c + w,a (5) De mani` ere analogue, on peut imposer des contraintes sur la concentration en alcool ou le prix au litre des vins cibles. Ces caract´ eristiques peuvent ˆ etre consid´ e- r´ ees comme deux arˆ omes suppl´ ementaires.

3 Un mod` ele MINLP

Nous pouvons mod´ eliser le probl` eme de l’assem- blage de vin comme un programme non lin´ eaire mixte (MINLP). Nous verrons ` a la section 4 comment trans- former ce MINLP en un CSP num´ erique (NCSP) trait´ e par des m´ ethodes ` a intervalles. De ce fait, nous allons directement traduire les contraintes de bornes par des domaines born´ es, c’est-` a-dire des intervalles.

3.1 Variables

Pour tenir compte des contraintes sur le volume mi- nimum pouvant ˆ etre soutir´ e (cf. (4)), nous cr´ eons pour chaque vin w ∈ 1..W et chaque base b ∈ 1..B :

– une variable P w,b de domaine 0/1 et

– une variable V w,b 0 de domaine D(V w,b 0 ) = [δ V , min(vol + w , vol b )] repr´ esentant le volume trans- vas´ e de la base b vers le vin cible w.

(nous avons : V w,b ≡ P w,b . V w,b 0 . L’introduction de la variable 0/1 ´ evite la d´ efinition explicite de la contrainte disjonctive (4).)

Pour chaque vin w ∈ 1..W, nous d´ efinissons aussi une variable V w de domaine [vol w , vol + w ] repr´ esentant son volume (cf. (1)).

3.2 Contraintes

Le syst` eme de contraintes de notre MINLP est ainsi d´ efini :

– la contrainte de channeling (2) devient :

∀w, V w −

B

X

b=1

(P w,b . V w,b 0 ) = 0 (2.i) – la contrainte (3) sur les surplus est similaire :

∀b ∈ 1..B, s b ≤ vol b

W

X

w=1

(P w,b . V w,b 0 ) (3.i)

– pour am´ eliorer les performances, nous avons in- troduit une contrainte redondante par rapport ` a (3.i). Cette contrainte garantit simplement que le volume total des vins cibles est inf´ erieur au vo- lume total des cuves de base :

W

X

w=1

V w

B

X

b=1

vol b (6)

La r` egle (5) concernant chaque concentration en arˆ omes est d´ ecompos´ ee en deux contraintes o` u chaque partie a ´ et´ e multipli´ ee par le volume positif V w . On a donc, ∀w ∈ 1..W et ∀a ∈ 1..A :

pour la borne inf´ erieure, 0 ≤

B

X

b=1

V w,b . (c b,a − c w,a ) d’o` u :

0 ≤

B

X

b=1

P w,b . V w,b 0 . (c b,a − c w,a ) (5.i -) et pour la borne sup´ erieure :

0 ≤

B

X

b=1

V w,b . (c + w,a − c b,a ) d’o` u :

0 ≤

B

X

b=1

P w,b . V w,b 0 . (c + w,a − c b,a ) (5.i +)

3.3 Un Min-Max pour optimiser la qualit´ e des vins Dans l’assemblage de vins, le principal crit` ere de qualit´ e concerne les profils aromatiques. Cependant, il est tout ` a fait possible d’´ etendre les d´ efinitions qui vont suivre au degr´ e alcoolique ou au prix des vins cibles.

Nous avons vu que chaque vin cible w est carac- t´ eris´ e par un ensemble de concentrations souhait´ ees ˆ

c w,a pour chaque arˆ ome a mesur´ e. Pour optimiser la qualit´ e d’un vin w, nous pouvons minimiser la somme des diff´ erences entre chaque concentration ˆ c w,a sou- hait´ ee et la concentration C w,a obtenue (cf. (5)). De plus, nous voulons minimiser l’erreur maximale sur l’ensemble des vins cibles :

w∈1..W max Ω w (λ vol

w

. e vol

w

+ X

a∈1..A

(λ w,a . e w,a )) (7) o` u :

– Ω w est un param` etre indiquant l’importance du

vin w (on suppose Ω w ∈ [0, 1]). Il est ainsi pos-

sible d’accorder plus d’importance ` a certains vins

cibles, notamment ceux de grande qualit´ e.

(5)

– e w,a repr´ esente l’´ ecart entre la concentration sou- hait´ ee ˆ c w,a et celle obtenue C w,a .

– e vol

w

est l’´ ecart entre le volume ˆ vol w d´ esir´ e pour le vin w et le volume obtenu V w .

– λ w,a ∈ [0, 1] d´ efinit le poids de l’arˆ ome a pour le vin w et λ vol

w

∈ [0, 1] le poids accord´ e ` a son volume. Pour un vin w donn´ e, on suppose que λ vol

w

+ P

a∈1..A λ w,a = 1.

Tous les param` etres sont mesur´ es avec un certain taux d’erreur. ε a repr´ esente la marge d’erreur possible sur une mesure de l’arˆ ome a. Nous cherchons donc ` a minimiser l’´ ecart entre ˆ c w,a et C w,a dans la limite de la marge d’erreur ε a . En d’autres termes, si l’´ ecart entre la concentration souhait´ ee et celle obtenue est inf´ erieur au taux d’erreur, il sera consid´ er´ e comme nul dans la fonction objectif. La variable e w,a d´ ecrit donc l’erreur de concentration normalis´ ee pour l’arˆ ome a dans le vin w :

e w,a = max( |C w,a − ˆ c w,a | ˆ c w,a

− ε a , 0) (8) Nous pouvons d´ ecrire par une expression similaire l’´ ecart e vol

w

entre le volume V w obtenu pour le vin cible w et le volume souhait´ e ˆ vol w :

e vol

w

= max(

vol ˆ w − V w

vol ˆ w

− ε vol , 0) (9) Par rapport ` a la formule pr´ ec´ edente, la suppression de la valeur absolue signifie simplement que l’erreur n’est pas prise en compte si le volume V w obtenu est compris entre le volume souhait´ e ˆ vol w et le volume maximum autoris´ e vol + w . Cette r` egle est illustr´ ee par la figure 2.

w

vol + w

vol w V w

vol ˆ w

e vol

w

ε vol

Figure 2 – Visualisation de l’´ ecart e vol

w

sur le volume De fa¸ con classique pour un probl` eme de Min-Max, nous d´ efinissons une variable E ∈ [0, +∞] ` a minimiser, en respectant les contraintes suivantes :

∀w ∈ 1..W, Ω w (e vol

w

.λ vol

w

+ X

a∈1..A

(e w,a . λ w,a )) ≤ E (10) Suppression des op´ erateurs max et valeur absolue

Afin d’am´ eliorer les performances, nous avons cher- ch´ e ` a supprimer les op´ erateurs max et valeur absolue

du mod` ele pr´ ec´ edent. L’op´ erateur max peut ˆ etre d´ efini par :

e = max(x, y) ≡ e ≥ x ∧ e ≥ y ∧ (e = x ∨ e = y).

De plus, si la quantit´ e e doit ˆ etre minimis´ ee pour une raison quelconque, la derni` ere conjonction peut ˆ etre supprim´ ee, ce qui simplifie la d´ efinition de l’op´ erateur max. Nous pouvons appliquer cette simplification ` a l’´ equation (8). Puisque chaque λ w,a est positif, mini- miser E revient ` a minimiser chaque variable e w,a . On a donc, ∀w ∈ 1..W, ∀a ∈ 1..A :

((e w,a + ε a ) ˆ c w,a ≥ |C w,a − ˆ c w,a |) ∧ (e w,a ≥ 0) (11) La mˆ eme simplification peut s’appliquer ` a (9), ce qui donne, ∀w ∈ 1..W :

((e vol

w

+ ε vol ) ˆ vol w ≥ ( ˆ vol w −V w ))∧ (e vol

w

≥ 0) (12) Nous pouvons aussi supprimer l’op´ erateur valeur ab- solue qui s’exprime sous la forme d’un max :

e = |x| ≡ e = max(x, −x)

≡ e ≥ x ∧ e ≥ −x ∧ (e = x ∨ e = −x) Comme pr´ ec´ edemment, si la quantit´ e e doit ˆ etre mi- nimale pour une raison quelconque, nous pouvons rem- placer l’op´ erateur valeur absolue par deux in´ egalit´ es.

Cette simplification peut s’appliquer ` a l’´ equation (11).

Rappelons en effet que chaque variable e w,a doit ˆ etre minimis´ ee et notons que ˆ c w,a est toujours positif. Il s’ensuit, ∀w ∈ 1..W, ∀a ∈ 1..A, :

(e w,a + ε a ) ˆ c w,a ≥ 1 V w

.

B

X

b=1

(P w,b .V w,b 0 .c b,a ) − ˆ c w,a

(e w,a + ε a ) ˆ c w,a ≥ − 1 V w

.

B

X

b=1

(P w,b .V w,b 0 .c b,a ) + ˆ c w,a En multipliant chaque cˆ ot´ e de ces in´ egalit´ es par le vo- lume V w qui est positif, on obtient finalement trois cat´ egories de contraintes : ∀w ∈ 1..W, ∀a ∈ 1..A,

e w,a ≥ 0 (13)

V w .(e w,a +ε a + 1) . ˆ c w,a −

B

X

b=1

(P w,b .V w,b 0 .c b,a ) ≥ 0 (14)

V w .(e w,a +ε a −1) . ˆ c w,a +

B

X

b=1

(P w,b .V w,b 0 .c b,a ) ≥ 0 (15)

En cons´ equence, nous avons r´ eussi ` a supprimer de

notre mod` ele initial tous les op´ erateurs max et valeur

absolue. Bien que le r´ esolveur Ibex que nous allons

utiliser sache g´ erer ces op´ erateurs, les performances

seront am´ elior´ ees et ce mod` ele simplifi´ e peut ˆ etre mis

en œuvre dans d’autres r´ esolveurs.

(6)

3.4 Synth` ese : le mod` ele MINLP final

En plus des variables P w,b , V w,b 0 et V w d´ efinies ` a la section 3.1, nous avons introduit de nouvelles variables pour le Min-Max : une variable E ∈ [0, +∞], W.A va- riables e w,a ∈ [0, 1] (qui englobent la contrainte unaire (13)) et W variables e vol

w

∈ [0, 1] qui englobent la contrainte unaire (12).

En plus des contraintes (2.i), (3.i), (6), (5.i-), (5.i+) d´ efinies ` a la section 3.2, nous ajoutons de nouvelles contraintes pour le Min-Max : (10), (12), (14), (15).

La fonction objectif consiste simplement ` a minimiser la valeur de la variable E.

4 R´ esolution du MINLP par un B&B ` a intervalles

Le MINLP d´ etaill´ e pr´ ec´ edemment peut ˆ etre r´ esolu par n’importe quel r´ esolveur de MINLP [12, 2]. Ce- pendant, aucun d’entre eux n’est rigoureux. Cela si- gnifie qu’il peuvent ne pas trouver la meilleure solu- tion ` a cause d’erreurs d’arrondi de l’arithm´ etique en virgule flottante ` a certaines ´ etapes de la r´ esolution. ` A notre connaissance, un seul branch and bound (B & B) rigoureux ` a intervalles, nomm´ e IBBA [11], est dot´ e d’un m´ ecanisme simple de manipulation des variables int´ e- grales. Ainsi, comme :

– notre mod` ele d’assemblage de vins ne contient qu’un seul type de variables 0/1,

– le r´ esolveur ` a intervalles Ibex [5, 4] fournit un B & B tr` es efficace nomm´ e IbexOpt [13], et – les auteurs ont une bonne connaissance de Ibex, nous avons d´ ecid´ e de coder le MINLP sous la forme d’un NCSP, c’est-` a-dire un syst` eme standard de contraintes continues non lin´ eaires sur des nombres r´ eels. Pour cela, les variables 0/1 sont cod´ ees par des variables r´ eelles P w,b 0 de domaine [0, 1]. Afin de garan- tir que ces variables ne pourront prendre que la valeur 0 ou 1, nous ajoutons simplement la contrainte qua- dratique suivante :

∀w ∈ 1..W et ∀b ∈ 1..B, 4(P w,b − 1

2 ) 2 = 1 (16) Cela signifie que les contraintes disjonctives initiales, qui sont ` a l’origine des contraintes mixtes dans le MINLP, sont g´ er´ ees par des contraintes continues qua- dratiques dans le NCSP.

4.1 Optimisation globale sous contraintes par un B&B sur intervalles

Un probl` eme d’optimisation globale sous contraintes est d´ efini de la mani` ere suivante.

Definition 1 (Optimisation )

Consid´ erons un vecteur de variables x = (x 1 , ..., x i , ...x n ) de domaine [x] = [x 1 ] × · · · × [x n ], une fonction continue f : R n → R , des fonctions g : R n → R m et h : R n → R p . (Nous notons g = (g 1 , ..., g m ) et h = (h 1 , ..., h j , ..., h p ).)

Soit le syst` eme S = (f, g, h, [x]), le probl` eme d’opti- misation globale sous contraintes consiste ` a trouver

min

x∈[x] f (x) soumis ` a g(x) ≤ 0 ∧ h(x) = 0.

f est appel´ ee fonction objectif ; g et h sont des contraintes d’in´ egalit´ e et d’´ egalit´ e respectivement.

Notre optimiseur global (sous contraintes) IbexOpt [13] calcule un vecteur de nombres ` a virgule flottante x -minimisant 1 :

f (x) s.t. g(x) ≤ 0 ∧ (− eq ≤ h(x) ≤ + eq ).

Notons que les ´ egalit´ es h j (x) = 0 sont relˆ ach´ ees par des ´ equations “´ epaisses” h j (x) ∈ [− eq , + eq ], soit deux in´ egalit´ es : − eq ≤ h j (x) ≤ + eq . IbexOpt ga- rantit l’optimum global du syst` eme relˆ ach´ e, quoique eq puisse ˆ etre souvent choisi arbitrairement petit. (La plupart des optimiseurs globaux comme Baron [12] ou Couenne [2] ne peuvent fournir aucune garantie.)

Dans notre probl` eme de m´ elange de vins, nous prenons une constante 1 eq ´ egale ` a 1e-4 dans les contraintes d’´ egalit´ e (16). Un autre 2 eq est fix´ e ` a 1e-1 dans les contraintes d’´ egalit´ e (2.i). Cette incertitude correspond ` a un d´ ecilitre, soit moins que 0.1% des vo- lumes des vins cibles (au moins 500 litres).

Cela signifie que les volumes sont calcul´ es avec une approximation significativement meilleure que les er- reurs in´ eluctables faites pendant le m´ elange effectif, c’est-` a-dire les erreurs induites par les mesures et par la perte de mati` ere r´ esiduelle pendant le transvasement d’un vin d’une cuve de base ` a la cible 2 .

4.2 Op´ erateurs algorithmiques d’Ibex

IbexOpt est implant´ e en Ibex (Interval Based EX- plorer) et enrichit cette biblioth` eque en C++ d´ edi´ ee ` a la “r´ esolution” par intervalles [5].

IbexOpt suit un sch´ ema de type Branch & Contract

& Bound sur les intervalles [13] . Le processus d´ ebute avec une boˆıte initiale [x] subdivis´ ee r´ ecursivement par l’op´ eration de branchement. L’arbre est parcouru en meilleur d’abord, en s´ electionnant ` a chaque it´ eration

1. -minimiser f(x) signifie minimiser f(x) avec une pr´ ecision , c’est-` a-dire trouver x tel que pour tout y, nous avons f(y) ≥ f(x) − .

2. Notons qu’une prochaine version de Ibex permettra

de rigoureusement -optimiser une fonction objectif sous des

contraintes d’´ egalit´ es vraies (non relax´ ees).

(7)

la boˆıte de coˆ ut inf´ erieur le plus petit. Les op´ erations suivantes s’enchaˆınent sur chaque boˆıte (nœud) trait´ e : Brancher : une variable x i est choisie et son inter- valle [x i ] est d´ ecoup´ e en deux sous-intervalles. Les deux sous-boˆıtes produites subissent les deux op´ erations sui- vantes.

Contracter : un processus de filtrage contracte la boˆıte ´ etudi´ ee (c’est-` a-dire am´ eliore les bornes de ses intervalles) sans perte de solutions.

Borner : l’am´ elioration de la borne inf´ erieure est si- miliaire ` a une contraction (en consid´ erant une variable correspondant au coˆ ut de l’objectif) : la borne inf´ e- rieure garantit qu’aucune solution ne se trouve plus bas. L’am´ elioration de la borne sup´ erieure revient ` a trouver un point r´ ealisable de coˆ ut le plus bas pos- sible, de mani` ere ` a couper des branches de l’arbre de recherche de coˆ ut sup´ erieur.

Le processus d´ ebute avec une boˆıte initiale [x] et s’arrˆ ete quand la diff´ erence entre la borne sup´ erieure et la borne inf´ erieure atteint une pr´ ecision donn´ ee (- optimisation) ou encore quand tous les nœuds explor´ es atteignent une taille inf´ erieure ` a une pr´ ecision donn´ ee en entr´ ee.

A chaque nœud du B&B, IbexOpt appelle des op´ e- rateurs efficaces pour r´ eduire l’espace de recherche et am´ eliorer les bornes inf´ erieure et sup´ erieure de la fonc- tion objectif :

– L’algorithme de propagation de contraintes de r´ e- f´ erence (pour le continu) HC4 [3, 9] est d’abord utilis´ e pour contracter la boˆıte trait´ ee.

– Ensuite, l’op´ erateur algorithmique X-Newton uti- lise une forme de Taylor sur intervalles sp´ ecifique pour convexifier l’espace de recherche. Il contracte la boˆıte et am´ eliore la borne inf´ erieure [1].

– Deux algorithmes cherchent enfin ` a am´ eliorer la borne sup´ erieure en extrayant d’abord de mani` ere heuristique une r´ egion int´ erieure (ou enti` erement r´ ealisable) ne contenant que des points - solu- tions - satisfaisant les contraintes. D’o` u l’int´ erˆ et de relaxer l´ eg` erement les ´ equations. En simplifiant quelque peu, l’algorithme InHC4 est un algorithme dual de HC4 ; InnerPolytope est un algorithme dual de X-Newton.

La strat´ egie d’optimisation par d´ efaut de Ibex uti- lise comme heuristique de branchement (bissection) la variante SmearSumRel de l’heuristique de Kearfott ba- s´ ee sur la fonction Smear [8]. Les heuristiques de bran- chement SmearSumRel et SmearMaxRel sont d´ ecrites dans [13].

5 Exp´ erimentations

Nous avons mod´ elis´ e et r´ esolu plusieurs instances d’assemblage de vins. Nous verrons ` a la section 5.6

que notre d´ emarche a ´ egalement ´ et´ e valid´ ee par une s´ eance de d´ egustations r´ eelle.

Pour r´ ealiser l’optimisation, nous avons impos´ e une pr´ ecision =1e-4 sur le coˆ ut (objectif). Cette pr´ eci- sion est tr` es inf´ erieure au taux d’erreur a des outils chimiques de mesure des concentrations en arˆ omes. La mˆ eme pr´ ecision est impos´ ee sur la taille des solutions (boˆıte) : au dessous de cette taille, une boˆıte n’est pas

´

etudi´ ee (d´ ecoup´ ee) par le B & B ` a intervalles.

5.1 Les instances test´ ees

Nous avons mod´ elis´ e trois instances du probl` eme d’assemblage des vins. La premi` ere (WineBlending0) est une petite instance artificielle qui nous a permis de r´ egler le mod` ele MINLP/NCSP vu plus haut jusqu’` a l’obtention d’un temps de r´ eponse suffisamment ra- pide. L’instance WineBlending0 contient 21 variables et est r´ esolue en 0.18 secondes avec seulement 6 bran- chements par la strat´ egie par d´ efaut, ind´ ependamment de la pr´ ecision demand´ ee (1e-4 ou 1e-8).

Instance r´ eelle 1

La seconde instance (WineBlending1) est une ins- tance r´ eelle fournie par la soci´ et´ e Nyseos. Il s’agit de produire W = 2 vins cibles ` a partir de B = 7 vins de base, en prenant en compte A = 11 arˆ omes.

Le probl` eme Min-Max (section 3.4), contient 55 va- riables et 116 contraintes :

– 2 contraintes de channeling sur les volumes, – 7 contraintes de surplus pour les bases, – 44 contraintes de concentration en arˆ omes, – 49 contraintes li´ ees au Min-Max,

– 14 contraintes quadratiques mod´ elisant les contraintes disjonctives sur les volumes r´ ealistes.

Cette instance forme un syst` eme relativement im- portant pour un optimiseur global sous contraintes d´ e- terministe (exact).

Instance r´ eelle 2

La troisi` eme instance (WineBlending2) d´ ecrit l’as- semblage de W = 3 vins cibles ` a partir de B = 6 bases, en tenant compte de A = 7 arˆ omes.

Le probl` eme Min-Max contient 64 variables et 118 contraintes :

– 3 contraintes de channeling sur les volumes, – 6 contraintes de surplus pour les bases, – 42 contraintes de concentration en arˆ omes, – 49 contraintes li´ ees au Min-Max,

– 18 contraintes quadratiques mod´ elisant les

contraintes disjonctives sur les volumes r´ ealistes..

(8)

5.2 R´ esultats obtenus avec l’optimiseur par d´ efaut Tous les r´ esultats pr´ esent´ es dans cet article ont ´ et´ e obtenus sur un ordinateur portable MacBook de 2010 (Intel Core 2 Duo ` a 2.4 GHz).

Nous avons tout d’abord utilis´ e l’optimisateur par d´ e- faut d’Ibex avec une erreur de 1e-4 et un temps-limite de 5 minutes.

L’optimiseur atteint le temps-limite pour Wine- Blending1 et WineBlending2 tout en retournant des solutions relativement bonnes :

– pour WineBlending1, apr` es 5 mn de calcul et 7894 nœuds, une erreur de 0.002 est obtenue sur l’ob- jectif (c.-` a-d., l’erreur maximum E).

– pour WineBlending2, en 5 mn et 8520 nœuds, une erreur de 0.0054 est obtenue.

5.3 Analyse algorithmique

Les r´ esultats pr´ ec´ edents ont ´ et´ e obtenus en utilisant la strat´ egie par d´ efaut disponible dans Ibex et qui est bri` evement d´ ecrite ` a la section 4.2.

Nous avons ensuite d´ etermin´ e quelles options par d´ e- faut pouvaient avoir une influence sur la performance.

Cette analyse a ´ et´ e tr` es r´ ev´ elatrice.

Concernant l’aspect contraction (filtrage), l’op´ e- rateur de lin´ earisation sur intervalles X-Newton est

´

etonnamment contre-productif. ` A l’inverse, toutes les contractions sont r´ ealis´ ees par l’op´ erateur HC4 de pro- grammation par contraintes. Dans la mesure o` u le mo- d` ele d’assemblage de vins est majoritairement lin´ eaire, ce r´ esultat n’est pas intuitif. Nous n’avons pas encore suffisamment d’´ el´ ements pour en comprendre la cause.

A l’oppos´ e, nous avons fait une observation plus intuitive sur les r´ egions internes extraites dans la phase d’am´ elioration de la borne sup´ erieure. L’op´ era- teur InHC4, issu des principes de la programmation par contraintes, ne semble pas utile. ` A l’inverse, l’al- gorithme InnerPolytope (dual de X-Newton) s’av` ere crucial pour extraire un polytope int´ erieur de l’espace r´ ealisable. Sans cette fonctionnalit´ e, nous ne pourrions pas obtenir de r´ eponse de l’optimiseur.

La strat´ egie de branchement (bissection) est le se- cond crit` ere ayant une influence majeure sur la per- formance. Nous avons observ´ e que les heuristiques ´ el´ e- mentaires de bissection fournies par Ibex sont inef- ficaces ou peu performantes. L’heuristique largest- First, qui s´ electionne une variable de plus grande largeur, empˆ eche le B&B de trouver un point r´ ea- lisable pendant la recherche arborescente. L’heuris- tique roundRobin offre ´ egalement de mauvaises per- formances, sauf si nous modifions l’ordre statique des variables en nous inspirant de la premi` ere analyse pr´ e- sent´ ee ` a la section 5.4.

Seules les strat´ egies de la famille Smear fonctionnent bien : les approches historiques SmearMax et Smear- Sum [8] ; la variante SmearSumRel appel´ ee par l’opti- miseur par d´ efaut [13], et enfin la variante SmearMax- Rel qui joue un rˆ ole fondamental dans notre probl` eme d’assemblage de vins.

Partant de cette analyse, nous avons ´ elabor´ e une nouvelle strat´ egie. L’op´ erateur X-Newton a tout d’abord ´ et´ e d´ esactiv´ e, ce qui a permis d’am´ eliorer les performances d’un facteur 4 sur les deux instances r´ eelles. Nous avons ensuite compar´ e les quatre va- riantes de l’heuristique Smear. Le tableau 1 pr´ esente les r´ esultats obtenus.

WineBlending 1 2

temps cpu (s) > 300 57 SmearSum pr´ ecision 0.00014 1e-10

#nœuds 21880 4146

temps cpu (s) > 300 > 300 SmearSumRel pr´ ecision 0.0018 0.00017

#nœuds 25864 24270

temps cpu (s) > 300 111 SmearMax pr´ ecision 0.0013 1e-10

#nœuds 25864 8851

temps cpu (s) 0.35 27.4 SmearMaxRel pr´ ecision 1e-10 1e-10

#nœuds 23 2048

Table 1 – Comparaison entre les diff´ erentes variantes de l’heuristique de branchement Smear. Chaque case contient 3 informations sur les r´ esultats obtenus pour une variante donn´ ee sur une des deux instances r´ eelles.

La premi` ere valeur indique le temps CPU (avec un temps-limite de 5 mn) ; la seconde valeur correspond

`

a l’erreur finale (1e-10 signifie que le denier appel ` a l’algorithme du simplexe r´ ealis´ e par InnerPolytope trouve une solution sans erreur (arrondie ` a 1e-10)) ; la troisi` eme valeur indique le nombre de nœuds de bran- chement.

Nous pouvons remarquer que SmearSum, et surtout SmearMaxRel, donnent de bons r´ esultats. C’est pour- quoi nous avons choisi SmearMaxRel pour notre pro- bl` eme d’assemblage de vins.

5.4 Vers une strat´ egie de branchement d´ edi´ ee

Nous avons ´ egalement ´ etudi´ e exp´ erimentalement

quelles variables ´ etaient s´ electionn´ ees dans diff´ erents

processus d’optimisation. Nous avons ainsi d´ etermin´ e

exp´ erimentalement que les variables P w,b et V w,b 0

doivent ˆ etre souvent s´ electionn´ ees alors que les va-

riables li´ ees ` a l’optimisation du Min-Max doivent l’ˆ etre

moins souvent. Nous avons donc ´ elabor´ e la strat´ egie

(9)

Figure 3 – R´ esultats obtenus pour WineBlending1 : les volumes des vins cibles (en bas) sont le r´ esultat de l’assemblage des vins de base (en haut).

d´ edi´ ee suivante :

– seules les variables mentionn´ ees ci-dessus peuvent ˆ

etre s´ electionn´ ees pour la bissection ;

– l’heuristique SmearMaxRel est appliqu´ ee au sous- ensemble de variables s´ electionn´ ees.

Cette heuristique d´ edi´ ee offre des performances ` a peine meilleures que SmearMaxRel (23 secondes contre 27 secondes sur WineBlending2). Nous avons bien sˆ ur besoin de plus d’instances pour mieux apprendre ` a par- tir des donn´ ees.

5.5 Les vins r´ esultats

La figure 3 pr´ esente la solution calcul´ ee pour Wine- Blending1. Les concentrations en arˆ omes (C w,a ) dans les vins cibles sont d´ etaill´ ees par W = 2 graphes radar

`

a la figure 4. Le fait que les lignes bleues (ˆ c w,a ) soient comprises entre les lignes vertes (ˆ c w,a −ε a et ˆ c w,a +ε a ) montre visuellement que la solution optimale est obte- nue sous le seuil de tol´ erance ε a .

Les concentrations en arˆ omes pour les vins cibles de l’instance WineBlending2 sont illustr´ ees par W = 3 graphes radar ` a la figure 5.

5.6 S´ eance de d´ egustation

Une premi` ere validation qualitative de notre travail a ´ et´ e r´ ealis´ ee en collaboration avec un œnologue. La soci´ et´ e Nyseos lui a demand´ e d’´ elaborer un vin cible en assemblant diff´ erents vins de base. Elle a ensuite ana- lys´ e le vin ´ elabor´ e afin d’identifier les concentrations souhait´ ees en arˆ omes ainsi que les concentrations dans les vins de base. Nyseos a alors soumis ce probl` eme d’assemblage ` a notre outil qui a propos´ e des volumes

`

a assembler diff´ erents de ceux choisis par l’œnologue.

Une d´ egustation en aveugle a enfin ´ et´ e r´ ealis´ ee sur les deux vins produits.

Bien que les deux assemblages soient significative- ment diff´ erents, l’œnologue n’a pas ´ et´ e en mesure de diff´ erencier les deux vins.

Cette unique exp´ erience n’est bien entendu pas suf- fisante pour valider la d´ emarche mais c’est un r´ esultat encourageant pour la pertinence de notre outil.

5.7 Un outil de configuration pour l’assemblage de vins

Les r´ esultats exp´ erimentaux sont encore pr´ elimi- naires et n’ont ´ et´ e obtenus que sur deux cas r´ eels. Ils sugg` erent cependant que la strat´ egie actuelle, ´ even- tuellement dot´ ee d’une heuristique de branchement d´ e- di´ ee, est efficace pour traiter la plupart des cas utiles en pratique. Par cons´ equent, pour mieux r´ epondre aux souhaits des clients, nous pouvons imaginer une utili- sation interactive de notre algorithme d’optimisation,

`

a l’int´ erieur d’un outil de configuration. L’utilisateur pourrait interagir avec le syst` eme via des graphes radar correspondant aux diff´ erents vins cible, comme ceux des figures 4 et 5.

Une fa¸ con de modifier un assemblage est d’augmen- ter (ou diminuer) le poids relatif Ω w d’un vin cible w. Un simple curseur sous chaque graphe radar per- mettrait par exemple de modifier cette valeur, ce qui entraˆınerait le recalcul d’une solution par l’optimiseur.

En suivant la mˆ eme id´ ee, l’utilisateur pourrait mo-

difier le poids λ w,a d’un arˆ ome a pour un vin w (par

exemple, via un menu contextuel apparaissant lorsque

le curseur de la souris se trouve sur l’axe correspondant

(10)

3MH A3MH 4MMP

2- ph´ enyl´ ethanol ac´ etate

d’hexyle

ac´ etate d’isoamyle

b- phenylethyl

ac´ etate

d´ ecanoate d’´ ethyle

hexanoate d’´ ethyle

octanoate d’´ ethyle

IBMP

3MH A3MH 4MMP

2- ph´ enyl´ ethanol ac´ etate

d’hexyle

ac´ etate d’isoamyle

b- phenylethyl

ac´ etate

d´ ecanoate d’´ ethyle

hexanoate d’´ ethyle

octanoate d’´ ethyle

IBMP

Figure 4 – Solution obtenue par notre mod` ele Min-Max sur les deux vins cibles de l’instance WineBlending1.

Chaque axe du graphe radar correspond ` a un compos´ e aromatique. La concentration obtenue C w,a (en bleu) doit rester comprise entre les limites impos´ ees par les bornes c w,a et c + w,a (en rouge) tout en restant le plus proche possible de la concentration souhait´ ee ˆ c w,a . Cette derni` ere est repr´ esent´ ee par les deux courbes en vert ˆ

c w,a − ε a et ˆ c w,a + ε a qui traduisent l’erreur de mesure tol´ er´ ee pour l’arˆ ome a correspondant.

du graphe radar), et l’outil d´ eclencherait une nouvelle optimisation. Enfin, une derni` ere possibilit´ e plus intru- sive serait de permettre le renforcement des concen- trations maximales c + w,a (ou minimales c w,a ) admis- sibles pour un arˆ ome a dans un vin w. L’utilisateur pourrait simplement s´ electionner une borne et notre syst` eme ex´ ecuterait deux optimisations afin de d´ eter- miner deux informations (en supposant que c + w,a a ´ et´ e s´ electionn´ ee) :

– la plus petite valeur de c + w,a possible (en respec- tant les contraintes),

– la plus petite valeur possible de c + w,a qui n’aug- mente pas l’erreur globale E.

6 Conclusion

Nous avons pr´ esent´ e dans cet article la premi` ere approche en programmation par contraintes pour r´ e- soudre le probl` eme de l’assemblage de vins. Ce pro- bl` eme peut ˆ etre mod´ elis´ e par un MINLP ou un CSP num´ erique supportant des contraintes disjonctives qui s’av` erent cruciales en pratique. Ces contraintes sont notamment li´ ees ` a des imp´ eratifs physiques sur le transfert d’un volume de vin entre deux cuves. Nous nous sommes attach´ es ` a d´ efinir un mod` ele Min-Max sans op´ erateurs max ou valeur absolue. Nous avons con¸ cu une strat´ egie d’optimisation de l’assemblage de vins qui permet d’obtenir, en quelques secondes, une

solution (sans erreurs sur les volumes ou les concen- trations) pour deux instances r´ eelles fournies par la soci´ et´ e Nyseos. Une s´ eance de d´ egustations r´ ealis´ ee avec un expert œnologue a permis de valider l’int´ erˆ et de cette approche. Ces r´ esultats encourageants per- mettent d’envisager l’utilisation de notre mod` ele dans un outil interactif de configuration d´ edi´ e ` a l’assem- blage de vins.

R´ ef´ erences

[1] I. Araya, G. Trombettoni, and B. Neveu. A Contractor Based on Convex Interval Taylor. In Proc. CPAIOR, pages 1–16. LNCS 7298, 2012.

[2] P. Belotti. Couenne, a user’s manual, 2013. www.coin-or.org/Couenne/couenne- user-manual.pdf.

[3] F. Benhamou, F. Goualard, L. Granvilliers, and J.-F. Puget. Revising Hull and Box Consistency.

In Proc. ICLP, pages 230–244, 1999.

[4] G. Chabert. Interval-Based EXplorer, 2013.

www.ibex-lib.org.

[5] G. Chabert and L. Jaulin. Contractor Program- ming. Artificial Intelligence, 173 :1079–1100, 2009.

[6] L. Dagan. Potentiel aromatique des raisins de

Vitis vinifera L. cv. Petit Manseng et Gros Man-

seng. Contribution ` a l’arˆ ome des vins de pays

(11)

2- ph´ enylethanol ac´ etate d’hexyle ac´ etate

d’isoamyle

b- ph´ enyl´ ethyle

ac´ etate

d´ ecanoate d’´ ethyle

hexanoate d’´ ethyle

octanoate d’´ ethyle

2- ph´ enylethanol ac´ etate d’hexyle ac´ etate

d’isoamyle

b- ph´ enyl´ ethyle

ac´ etate

d´ ecanoate d’´ ethyle

hexanoate d’´ ethyle

octanoate d’´ ethyle

2- ph´ enylethanol ac´ etate d’hexyle ac´ etate

d’isoamyle

b- ph´ enyl´ ethyle

ac´ etate

d´ ecanoate d’´ ethyle

hexanoate d’´ ethyle

octanoate d’´ ethyle

Figure 5 – Graphes radar obtenus pour l’instance WineBlending2.

Cˆ otes de Gascogne. PhD thesis, ´ Ecole nationale sup´ erieure agronomique (Montpellier), 2006.

[7] J. Ferrier and D. Block. Neural-network-assisted optimization of wine blending based on sensory analysis. American Journal of Enology and Viti- culture, 52(4) :386–395, 2001.

[8] R.B. Kearfott and M. Novoa III. INTBIS, a por- table interval Newton/Bisection package. ACM Trans. on Mathematical Software, 16(2) :152–157, 1990.

[9] F. Messine. M´ ethodes d’optimisation globale ba- s´ ees sur l’analyse d’intervalle pour la r´ esolu- tion des probl` emes avec contraintes. PhD thesis, LIMA-IRIT-ENSEEIHT-INPT, Toulouse, 1997.

[10] D. B. Moore and T. G. Griffin. Computer blen- ding technology. American Journal of Enology and Viticulture, 29(1) :50–53, 1978.

[11] J. Ninin, F. Messine, and P. Hansen. A Reliable Affine Relaxation Method for Global Optimiza- tion. Technical Report RT-APO-10-05, IRIT, 2010.

[12] M. Tawarmalani and N. V. Sahinidis. A Polyhe- dral Branch-and-Cut Approach to Global Optimi- zation. Mathematical Programming, 103(2) :225–

249, 2005.

[13] G. Trombettoni, I. Araya, B. Neveu, and G. Cha-

bert. Inner Regions and Interval Linearizations

for Global Optimization. In AAAI, pages 99–104,

2011.

Références

Documents relatifs