• Aucun résultat trouvé

en nombres entiers et puis par programmation par contraintes. Ensuite, en Section 2.4 un deuxième modèle utilisant la recherche locale est présenté. Des algorithmes exacts et appro- chés sont aussi présentés. La NP-complétude du problème maître est prouvée en Section 2.5. Les résultats pour chaque approche sont fournis en Section 2.6.

2.2 Présentation du problème

La modélisation de ce problème a été introduite en 1999 par Le Pape et Baptiste [81]. Ce problème consiste à minimiser la quantité de matériels de corage requis pour le site, en faisant un choix approprié des banches aectées à chaque voile. Le planning exact d'ordon- nancement des voiles est calculé au préalable, c'est-à-dire qu'on connaît pour chaque voile le jour où il est érigé. On note D l'ensemble des jours où la construction doit être eectuée,

B l'ensemble des banches disponibles et V l'ensemble des voiles à couler. Pour chaque jour d ∈ D, on note V (d) ⊆ V l'ensemble des voiles qui doivent être coulés.

Voiles. Pour chaque voile v ∈ V , la longueur totale couverte par les banches allouées doit correspondre à la longueur attendue : elle doit appartenir à l'intervalle [ Lmin(v ), Lmax(v ) ]. La longueur Lmin(v )est généralement plus grande que la largeur du voile car des extrémités doivent être positionnées au bout du train de banches pour le fermer à l'aide de bouchons, assurant l'étanchéité du corage, mais grignotant une partie de la longueur couverte. Lmax(v) est bornée par la longueur maximale de ces bouchons ou par la position des voiles voisins. Quand un mur est positionné entre deux autres, la longueur du voile à couler est de longueur xe et on a donc Lmin(v ) = Lmax(v ). De tels voiles sont appelés murs bloqués. La Figure 2.2 illustre ces diérentes notations pour un voile à trois banches. Dans cet exemple, pour couler le voile v, on fait appel à trois banches et un unique bouchon, puisqu'une des extrémités est bloquée par un voile déjà existant.

Banches. Les trains de banches sont construits par assemblage de plusieurs banches de diérentes longueurs. L'épaisseur d'un voile n'est pas prise en compte. Le problème d'opti- misation des stocks ne se focalise que sur la recherche des vecteurs de couvertures à aecter à chaque voile. L'optimisation des séquences de banches est un autre problème traité indé- pendamment [16].

Chaque banche b ∈ B est dénie par sa stabilité qui peut être de trois types. Les stables pour les modèles avec des béquilles, résistants à des vents d'environ 80 km/h. Les neutres qui sont les banches ajustables et les petites. Les instables qui sont de tailles intermédiaires mais dans des matériaux plus légers. Pour chaque voile, le train de banches doit être stable, chaque banche stable étant capable de stabiliser deux banches instables. En d'autres termes, le nombre de banches instables ne peut pas excéder deux fois le nombre de stables (voir inégalités (2.4)). On note S ⊆ B (resp. I ⊆ B) l'ensemble des banches stables (resp.

12 Chapitre 2. Optimisation du stock de banches sur des chantiers de construction

voile v

banche voile fixe

bouchon

Lmax(v)

Lmin(v)

Figure 2.2  Un voile avec trois banches.

instables). Chaque banche b ∈ B est aussi décrite par sa longueur qui peut être ajustée entre deux longueurs [Lmin(b); Lmax(b)]. Seuls les plus petits modèles ont des longueurs ajustables (on note A ⊆ B l'ensemble des banches ajustables). Ces modèles ne peuvent être utilisés que dans les extrémités : on dénit M (v) comme le nombre maximum de banches de petite taille qui peuvent être utilisées par train pour le voile v (voir inégalités (2.3)).

De plus, on sait que certaines banches sont dites spéciales : leur utilisation doit être limitée le plus possible car elles compliquent les tâches d'assemblages. Soit S ⊆ I l'ensemble des banches spéciales. Leur longueur cumulée sur un voile est bornée par une constante Z spéciée par les ingénieurs méthodes (voir inégalités (2.5)).

Contraintes. Sur chaque voile v, l'utilisation d'un ensemble de banches lourdes H (v) (voir inégalités (2.6)) est à éviter. Les capacités limitées de la grue font que des contraintes de poids doivent être imposées pour chaque voile (la capacité diminue en fonction de la distance au pied de la grue). On note x(v, b) le nombre de banches de type b ∈ B utilisées pour couvrir le voile v ∈ V (on dit encore que x(v, b) est le vecteur couverture du voile

v). On dénit n(b, d) la quantité de banches de modèle b utilisées un jour d ∈ D et m(b)

la quantité de banches de type b ∈ B nécessaires sur le site, qui est déterminée par la quantité du jour le plus demandeur pour le modèle b ∈ B. Notons que n(b, d) et m(b) sont totalement déterminés par les vecteurs couvrants. Le problème est donc décrit par les contraintes suivantes. ∀ v ∈ V ,b ∈ B Lmin(b) × x(v, b) ≤ Lmax(v ) (2.1) ∀ v ∈ V ,b ∈ B Lmax(b) × x(v, b) ≥ Lmin(v ) (2.2)

2.2 Présentation du problème 13 ∀ v ∈ V ,b ∈ A x (v , b) ≤ M (v) (2.3) ∀ v ∈ V , 2 ×b ∈ I x (v , b) b ∈ S x (v , b) (2.4) ∀ v ∈ V , Lmin(v ) b ∈ B \ S Lmax(b) × x(v, b) ≤ Z (2.5) ∀ b ∈ H (v), x(v, b) = 0 (2.6) ∀ d ∈ D, b ∈ B,v ∈ V (d) x (v , b) = n(b, d ) (2.7) ∀ b ∈ B, max d ∈ D n(b, d ) = m(b) (2.8) Objectif. L'objectif de l'ingénieur méthode est de minimiser le coût de location du stock. Avec R(b) le coût de location xe d'une banche du modèle b ∈ B, cet objectif s'écrit sous la forme suivante :

min

b ∈ B

R(b) × m(b) (2.9)

Cependant, ce n'est pas le seul objectif poursuivi. En eet, on cherche à minimiser aussi le nombre total de banches inutilisées, car elles posent des problèmes de congestion d'espace sur le site pendant la construction. En eet, quand une banche ne sert pas à corer, le responsable de chantier doit trouver une place pour la stocker, ce qui va nécessiter du temps de grue pour la déplacer à cet endroit, voire d'autres engins de chantier. Il est donc primordial de minimiser ce type d'intervention et de maximiser l'utilisation quotidienne de tout le parc de banches. Ainsi, on introduit une pénalité P (b) pour chaque nouvelle banche an de modéliser cet objectif. Ce coecient est généralement plus grand pour les banches plus grandes qui sont encore plus diciles à déplacer et qui prennent beaucoup de place à stocker. De même, les coûts de location augmentent aussi avec la taille de la banche. On obtient ainsi la fonction objectif modiée 2.10. Modèle 1 : minb ∈ B R(b) × m(b) +b ∈ B, d ∈ D P (b) × ( m(b) − n(b, d) ) (2.10)

14 Chapitre 2. Optimisation du stock de banches sur des chantiers de construction

Comme l'objectif est de laisser la main à l'ingénieur méthode en lui proposant un outil d'aide à la décision, il peut arriver que l'utilisateur lui-même souhaite limiter la commande d'un des modèles en contrôlant le maximum pour chaque modèle. Par exemple, limiter le nombre de banches de petite taille peut permettre de diminuer les temps d'assemblage ou peut aussi modéliser une contrainte de stock disponible. On introduit Q(b) qui est le maximum de banches du type b commandées.

∀ b ∈ B, m(b) ≤ Q(b) (2.11) Nous considérons ici un ensemble de 36 instances issues de données réelles comportant jusqu'à 11 types de banches, 124 voiles et 14 jours. Ces données proviennent de 12 sites de construction d'Habitat Résidentiel. Nous présentons dans les sections suivantes les diérentes approches pour résoudre ce problème d'optimisation.